aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/async/eratosthenes/doc/eratosthenes.rst33
-rw-r--r--examples/async/eratosthenes/eratosthenes.pyproject2
-rw-r--r--examples/async/eratosthenes/eratosthenes_asyncio.py134
-rw-r--r--examples/async/eratosthenes/eratosthenes_trio.py (renamed from examples/async/eratosthenes/eratosthenes.py)18
-rw-r--r--examples/async/eratosthenes/requirements_trio.txt (renamed from examples/async/eratosthenes/requirements.txt)0
-rw-r--r--examples/async/minimal/doc/minimal.rst33
-rw-r--r--examples/async/minimal/minimal.pyproject2
-rw-r--r--examples/async/minimal/minimal_asyncio.py40
-rw-r--r--examples/async/minimal/minimal_trio.py (renamed from examples/async/minimal/minimal.py)32
-rw-r--r--examples/async/minimal/requirements_trio.txt (renamed from examples/async/minimal/requirements.txt)0
-rw-r--r--examples/axcontainer/axviewer/axviewer.py4
-rw-r--r--examples/bluetooth/btscanner/device.py7
-rw-r--r--examples/bluetooth/btscanner/main.py3
-rw-r--r--examples/bluetooth/btscanner/service.py2
-rw-r--r--examples/bluetooth/btscanner/ui_device.py2
-rw-r--r--examples/bluetooth/btscanner/ui_service.py2
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/App.qml99
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/BluetoothAlarmDialog.qml (renamed from examples/bluetooth/heartrate_game/qml/BluetoothAlarmDialog.qml)7
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/BottomLine.qml (renamed from examples/bluetooth/heartrate_game/qml/BottomLine.qml)0
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/Connect.qml (renamed from examples/bluetooth/heartrate_game/qml/Connect.qml)68
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/GameButton.qml (renamed from examples/bluetooth/heartrate_game/qml/GameButton.qml)12
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/GamePage.qml (renamed from examples/bluetooth/heartrate_game/qml/GamePage.qml)18
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/GameSettings.qml (renamed from examples/bluetooth/heartrate_game/qml/GameSettings.qml)11
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/Main.qml71
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/Measure.qml (renamed from examples/bluetooth/heartrate_game/qml/Measure.qml)93
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/SplashScreen.qml (renamed from examples/bluetooth/heartrate_game/qml/SplashScreen.qml)19
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/Stats.qml (renamed from examples/bluetooth/heartrate_game/qml/Stats.qml)17
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/StatsLabel.qml (renamed from examples/bluetooth/heartrate_game/qml/StatsLabel.qml)1
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/TitleBar.qml (renamed from examples/bluetooth/heartrate_game/qml/TitleBar.qml)32
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/images/bt_off_to_on.png (renamed from examples/bluetooth/heartrate_game/qml/images/bt_off_to_on.png)bin6143 -> 6143 bytes
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/images/heart.png (renamed from examples/bluetooth/heartrate_game/qml/images/heart.png)bin2664 -> 2664 bytes
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/images/logo.png (renamed from examples/bluetooth/heartrate_game/qml/images/logo.png)bin31915 -> 31915 bytes
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/qmldir14
-rw-r--r--examples/bluetooth/heartrate_game/connectionhandler.py38
-rw-r--r--examples/bluetooth/heartrate_game/devicefinder.py31
-rw-r--r--examples/bluetooth/heartrate_game/devicehandler.py46
-rw-r--r--examples/bluetooth/heartrate_game/deviceinfo.py4
-rw-r--r--examples/bluetooth/heartrate_game/doc/heartrate_game.rst2
-rw-r--r--examples/bluetooth/heartrate_game/heartrate_game.pyproject27
-rw-r--r--examples/bluetooth/heartrate_game/heartrate_global.py28
-rw-r--r--examples/bluetooth/heartrate_game/main.py16
-rw-r--r--examples/bluetooth/heartrate_game/qml/App.qml83
-rw-r--r--examples/bluetooth/heartrate_game/qml/main.qml63
-rw-r--r--examples/bluetooth/heartrate_game/qml/qmldir1
-rw-r--r--examples/bluetooth/heartrate_server/heartrate_server.py9
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Characteristics.qml121
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Devices.qml121
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Dialog.qml48
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Header.qml25
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Label.qml16
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Main.qml31
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Menu.qml55
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Services.qml115
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/assets/busy_dark.pngbin0 -> 1130 bytes
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/qmldir10
-rw-r--r--examples/bluetooth/lowenergyscanner/characteristicinfo.py87
-rw-r--r--examples/bluetooth/lowenergyscanner/device.py278
-rw-r--r--examples/bluetooth/lowenergyscanner/deviceinfo.py34
-rw-r--r--examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.pngbin0 -> 72365 bytes
-rw-r--r--examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.rst11
-rw-r--r--examples/bluetooth/lowenergyscanner/lowenergyscanner.pyproject7
-rw-r--r--examples/bluetooth/lowenergyscanner/main.py27
-rw-r--r--examples/bluetooth/lowenergyscanner/serviceinfo.py64
-rw-r--r--examples/charts/audio/audio.py3
-rw-r--r--examples/charts/callout/callout.py44
-rw-r--r--examples/charts/chartthemes/README.md2
-rw-r--r--examples/charts/chartthemes/main.py46
-rw-r--r--examples/charts/chartthemes/ui_themewidget.py4
-rw-r--r--examples/charts/donutbreakdown/donutbreakdown.py4
-rw-r--r--examples/charts/legend/legend.py9
-rw-r--r--examples/charts/memoryusage/memoryusage.py2
-rw-r--r--examples/charts/modeldata/modeldata.py5
-rw-r--r--examples/charts/percentbarchart/percentbarchart.py8
-rw-r--r--examples/charts/pointconfiguration/chartwindow.py156
-rw-r--r--examples/charts/pointconfiguration/doc/pointconfiguration.pngbin0 -> 34991 bytes
-rw-r--r--examples/charts/pointconfiguration/doc/pointconfiguration.rst144
-rw-r--r--examples/charts/pointconfiguration/pointconfiguration.py17
-rw-r--r--examples/charts/pointconfiguration/pointconfiguration.pyproject3
-rw-r--r--examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.rst12
-rw-r--r--examples/charts/pointselectionandmarkers/pointselectionandmarkers.py27
-rw-r--r--examples/charts/pointselectionandmarkers/pointselectionandmarkers.pyproject2
-rw-r--r--examples/charts/pointselectionandmarkers/utilities.py12
-rw-r--r--examples/charts/qmlpolarchart/qmlpolarchart.py4
-rw-r--r--examples/corelib/ipc/sharedmemory/dialog.py2
-rw-r--r--examples/corelib/ipc/sharedmemory/ui_dialog.py2
-rw-r--r--examples/corelib/settingseditor/settingseditor.py70
-rw-r--r--examples/corelib/threads/mandelbrot.py22
-rw-r--r--examples/datavisualization/graphgallery/axesinputhandler.py101
-rw-r--r--examples/datavisualization/graphgallery/bargraph.py276
-rw-r--r--examples/datavisualization/graphgallery/custominputhandler.py177
-rw-r--r--examples/datavisualization/graphgallery/data/layer_1.pngbin0 -> 34540 bytes
-rw-r--r--examples/datavisualization/graphgallery/data/layer_2.pngbin0 -> 10553 bytes
-rw-r--r--examples/datavisualization/graphgallery/data/layer_3.pngbin0 -> 7119 bytes
-rw-r--r--examples/datavisualization/graphgallery/data/license.txt77
-rw-r--r--examples/datavisualization/graphgallery/data/maptexture.jpgbin0 -> 352922 bytes
-rw-r--r--examples/datavisualization/graphgallery/data/oilrig.obj2322
-rw-r--r--examples/datavisualization/graphgallery/data/pipe.obj330
-rw-r--r--examples/datavisualization/graphgallery/data/raindata.txt158
-rw-r--r--examples/datavisualization/graphgallery/data/refinery.obj2330
-rw-r--r--examples/datavisualization/graphgallery/data/topography.pngbin0 -> 395504 bytes
-rw-r--r--examples/datavisualization/graphgallery/doc/graph_gallery.webpbin0 -> 95552 bytes
-rw-r--r--examples/datavisualization/graphgallery/doc/graphgallery.rst11
-rw-r--r--examples/datavisualization/graphgallery/graphgallery.pyproject18
-rw-r--r--examples/datavisualization/graphgallery/graphgallery.qrc13
-rw-r--r--examples/datavisualization/graphgallery/graphmodifier.py395
-rw-r--r--examples/datavisualization/graphgallery/highlightseries.py94
-rw-r--r--examples/datavisualization/graphgallery/main.py50
-rw-r--r--examples/datavisualization/graphgallery/rainfalldata.py125
-rw-r--r--examples/datavisualization/graphgallery/scatterdatamodifier.py151
-rw-r--r--examples/datavisualization/graphgallery/scattergraph.py128
-rw-r--r--examples/datavisualization/graphgallery/surfacegraph.py265
-rw-r--r--examples/datavisualization/graphgallery/surfacegraphmodifier.py643
-rw-r--r--examples/datavisualization/graphgallery/topographicseries.py57
-rw-r--r--examples/datavisualization/graphgallery/variantbardatamapping.py67
-rw-r--r--examples/datavisualization/graphgallery/variantbardataproxy.py100
-rw-r--r--examples/datavisualization/graphgallery/variantdataset.py39
-rw-r--r--examples/datavisualization/qmlsurfacegallery/datasource.py99
-rw-r--r--examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.rst9
-rw-r--r--examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.webpbin0 -> 100206 bytes
-rw-r--r--examples/datavisualization/qmlsurfacegallery/main.py39
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SpectrogramData.qml1545
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceHeightMap.qml227
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceOscilloscope.qml430
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceSpectrogram.qml272
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/heightmap.pngbin0 -> 638731 bytes
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/main.qml57
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.pyproject10
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.qrc5
-rw-r--r--examples/datavisualization/qmlsurfacegallery/rc_qmlsurfacegallery.py39967
-rw-r--r--examples/datavisualization/surface_numpy/doc/surface_numpy.rst2
-rw-r--r--examples/dbus/listnames/listnames.py3
-rw-r--r--examples/dbus/pingpong/ping.py5
-rw-r--r--examples/dbus/pingpong/pong.py2
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/ColorDialogDelete.qml71
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/ColorDialogEditor.qml139
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/ColorView.qml381
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/Main.qml62
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/ServerSelection.qml241
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/UserMenu.qml139
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/qmldir7
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/Button.qml48
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/CMakeLists.txt54
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/Popup.qml27
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/TextField.qml22
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/UIStyle.qml29
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/qmldir5
-rw-r--r--examples/demos/colorpaletteclient/abstractresource.py24
-rw-r--r--examples/demos/colorpaletteclient/basiclogin.py100
-rw-r--r--examples/demos/colorpaletteclient/colorpaletteclient.pyproject21
-rw-r--r--examples/demos/colorpaletteclient/colorpaletteclient.qrc17
-rw-r--r--examples/demos/colorpaletteclient/doc/colorpaletteclient.rst79
-rw-r--r--examples/demos/colorpaletteclient/doc/colorpaletteclient.webpbin0 -> 28034 bytes
-rw-r--r--examples/demos/colorpaletteclient/icons/close.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/delete.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/dots.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/edit.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/login.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/logout.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/ok.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/plus.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/qt.pngbin0 -> 2963 bytes
-rw-r--r--examples/demos/colorpaletteclient/icons/qt_attribution.json14
-rw-r--r--examples/demos/colorpaletteclient/icons/testserver.pngbin0 -> 6803 bytes
-rw-r--r--examples/demos/colorpaletteclient/icons/update.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/user.svg4
-rw-r--r--examples/demos/colorpaletteclient/icons/userMask.svg3
-rw-r--r--examples/demos/colorpaletteclient/main.py33
-rw-r--r--examples/demos/colorpaletteclient/paginatedresource.py278
-rw-r--r--examples/demos/colorpaletteclient/rc_colorpaletteclient.py1098
-rw-r--r--examples/demos/colorpaletteclient/restservice.py53
-rw-r--r--examples/demos/documentviewer/abstractviewer.py185
-rw-r--r--examples/demos/documentviewer/doc/abstractviewer.py.rstinc25
-rw-r--r--examples/demos/documentviewer/doc/documentviewer.pngbin0 -> 22897 bytes
-rw-r--r--examples/demos/documentviewer/doc/documentviewer.rst13
-rw-r--r--examples/demos/documentviewer/doc/jsonviewer.py.rstinc11
-rw-r--r--examples/demos/documentviewer/doc/mainwindow.py.rstinc11
-rw-r--r--examples/demos/documentviewer/doc/viewerfactory.py.rstinc3
-rw-r--r--examples/demos/documentviewer/documentviewer.pyproject14
-rw-r--r--examples/demos/documentviewer/documentviewer.qrc42
-rw-r--r--examples/demos/documentviewer/images/copy.png (renamed from examples/widgets/mainwindows/mdi/images/copy.png)bin1338 -> 1338 bytes
-rw-r--r--examples/demos/documentviewer/images/copy@2x.pngbin0 -> 2219 bytes
-rw-r--r--examples/demos/documentviewer/images/cut.png (renamed from examples/widgets/mainwindows/mdi/images/cut.png)bin1323 -> 1323 bytes
-rw-r--r--examples/demos/documentviewer/images/cut@2x.pngbin0 -> 2888 bytes
-rw-r--r--examples/demos/documentviewer/images/document-open-recent.svgzbin0 -> 4656 bytes
-rw-r--r--examples/demos/documentviewer/images/go-next-view-page.pngbin0 -> 1125 bytes
-rw-r--r--examples/demos/documentviewer/images/go-next-view-page@2x.pngbin0 -> 2312 bytes
-rw-r--r--examples/demos/documentviewer/images/go-next-view.pngbin0 -> 990 bytes
-rw-r--r--examples/demos/documentviewer/images/go-next-view@2x.pngbin0 -> 1830 bytes
-rw-r--r--examples/demos/documentviewer/images/go-next.svgzbin0 -> 5473 bytes
-rw-r--r--examples/demos/documentviewer/images/go-previous-view-page.pngbin0 -> 1119 bytes
-rw-r--r--examples/demos/documentviewer/images/go-previous-view-page@2x.pngbin0 -> 2067 bytes
-rw-r--r--examples/demos/documentviewer/images/go-previous-view.pngbin0 -> 1010 bytes
-rw-r--r--examples/demos/documentviewer/images/go-previous-view@2x.pngbin0 -> 1875 bytes
-rw-r--r--examples/demos/documentviewer/images/go-previous.svgzbin0 -> 5690 bytes
-rw-r--r--examples/demos/documentviewer/images/help-about.svgzbin0 -> 7056 bytes
-rw-r--r--examples/demos/documentviewer/images/magnifier.pngbin0 -> 1006 bytes
-rw-r--r--examples/demos/documentviewer/images/magnifier@2x.pngbin0 -> 2249 bytes
-rw-r--r--examples/demos/documentviewer/images/open.png (renamed from examples/widgets/mainwindows/mdi/images/open.png)bin2073 -> 2073 bytes
-rw-r--r--examples/demos/documentviewer/images/open@2x.pngbin0 -> 1017 bytes
-rw-r--r--examples/demos/documentviewer/images/paste.png (renamed from examples/widgets/mainwindows/mdi/images/paste.png)bin1645 -> 1645 bytes
-rw-r--r--examples/demos/documentviewer/images/paste@2x.pngbin0 -> 2782 bytes
-rw-r--r--examples/demos/documentviewer/images/print.pngbin0 -> 678 bytes
-rw-r--r--examples/demos/documentviewer/images/print2x.pngbin0 -> 931 bytes
-rw-r--r--examples/demos/documentviewer/images/qt-logo.pngbin0 -> 1483 bytes
-rw-r--r--examples/demos/documentviewer/images/qt-logo@2x.pngbin0 -> 1933 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-fit-best.pngbin0 -> 1067 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-fit-best@2x.pngbin0 -> 1692 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-fit-width.pngbin0 -> 905 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-fit-width@2x.pngbin0 -> 1724 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-in.pngbin0 -> 952 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-in@2x.pngbin0 -> 2100 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-original.pngbin0 -> 946 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-original@2x.pngbin0 -> 2005 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-out.pngbin0 -> 940 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-out@2x.pngbin0 -> 1971 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-previous.pngbin0 -> 946 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-previous@2x.pngbin0 -> 2049 bytes
-rw-r--r--examples/demos/documentviewer/jsonviewer/jsonviewer.py396
-rw-r--r--examples/demos/documentviewer/main.py37
-rw-r--r--examples/demos/documentviewer/mainwindow.py178
-rw-r--r--examples/demos/documentviewer/mainwindow.ui272
-rw-r--r--examples/demos/documentviewer/pdfviewer/pdfviewer.py204
-rw-r--r--examples/demos/documentviewer/pdfviewer/zoomselector.py54
-rw-r--r--examples/demos/documentviewer/rc_documentviewer.py5135
-rw-r--r--examples/demos/documentviewer/recentfilemenu.py34
-rw-r--r--examples/demos/documentviewer/recentfiles.py159
-rw-r--r--examples/demos/documentviewer/txtviewer/txtviewer.py144
-rw-r--r--examples/demos/documentviewer/ui_mainwindow.py230
-rw-r--r--examples/demos/documentviewer/viewerfactory.py114
-rw-r--r--examples/designer/taskmenuextension/doc/taskmenuextension.rst6
-rw-r--r--examples/designer/taskmenuextension/registertictactoe.py2
-rw-r--r--examples/designer/taskmenuextension/tictactoe.py14
-rw-r--r--examples/designer/taskmenuextension/tictactoeplugin.py3
-rw-r--r--examples/designer/taskmenuextension/tictactoetaskmenu.py2
-rw-r--r--examples/examples.pyproject3
-rw-r--r--examples/external/matplotlib/widget3d/widget3d.py6
-rw-r--r--examples/external/matplotlib/widget_gaussian/widget_gaussian.py7
-rw-r--r--examples/external/networkx/doc/networkx.rst2
-rw-r--r--examples/external/opencv/webcam_pattern_detection.py4
-rw-r--r--examples/external/scikit/staining_colors_separation.py4
-rw-r--r--examples/graphs/2d/hellographs/HelloGraphs/Main.qml153
-rw-r--r--examples/graphs/2d/hellographs/HelloGraphs/qmldir2
-rw-r--r--examples/graphs/2d/hellographs/doc/hellographs.rst51
-rw-r--r--examples/graphs/2d/hellographs/doc/hellographs.webpbin0 -> 60020 bytes
-rw-r--r--examples/graphs/2d/hellographs/hellographs.pyproject3
-rw-r--r--examples/graphs/2d/hellographs/main.py22
-rw-r--r--examples/graphs/3d/minimalsurfacegraph/doc/minimalsurfacegraph.rst4
-rw-r--r--examples/graphs/3d/minimalsurfacegraph/main.py54
-rw-r--r--examples/graphs/3d/widgetgallery/axesinputhandler.py100
-rw-r--r--examples/graphs/3d/widgetgallery/bargraph.py272
-rw-r--r--examples/graphs/3d/widgetgallery/custominputhandler.py177
-rw-r--r--examples/graphs/3d/widgetgallery/data/layer_1.pngbin0 -> 34540 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/layer_2.pngbin0 -> 10553 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/layer_3.pngbin0 -> 7119 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/license.txt77
-rw-r--r--examples/graphs/3d/widgetgallery/data/maptexture.jpgbin0 -> 352922 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/narrowarrow.meshbin0 -> 15420 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/oilrig.meshbin0 -> 69728 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/pipe.meshbin0 -> 4760 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/raindata.txt158
-rw-r--r--examples/graphs/3d/widgetgallery/data/refinery.meshbin0 -> 75216 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/topography.pngbin0 -> 395504 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/doc/widgetgallery.rst11
-rw-r--r--examples/graphs/3d/widgetgallery/doc/widgetgallery.webpbin0 -> 93150 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/graphmodifier.py391
-rw-r--r--examples/graphs/3d/widgetgallery/highlightseries.py94
-rw-r--r--examples/graphs/3d/widgetgallery/main.py41
-rw-r--r--examples/graphs/3d/widgetgallery/rainfalldata.py125
-rw-r--r--examples/graphs/3d/widgetgallery/scatterdatamodifier.py149
-rw-r--r--examples/graphs/3d/widgetgallery/scattergraph.py121
-rw-r--r--examples/graphs/3d/widgetgallery/surfacegraph.py256
-rw-r--r--examples/graphs/3d/widgetgallery/surfacegraphmodifier.py641
-rw-r--r--examples/graphs/3d/widgetgallery/topographicseries.py57
-rw-r--r--examples/graphs/3d/widgetgallery/variantbardatamapping.py67
-rw-r--r--examples/graphs/3d/widgetgallery/variantbardataproxy.py100
-rw-r--r--examples/graphs/3d/widgetgallery/variantdataset.py39
-rw-r--r--examples/graphs/3d/widgetgallery/widgetgallery.pyproject29
-rw-r--r--examples/gui/analogclock/main.py93
-rw-r--r--examples/gui/rhiwindow/doc/rhiwindow.rst49
-rw-r--r--examples/gui/rhiwindow/doc/rhiwindow.webpbin0 -> 38466 bytes
-rw-r--r--examples/gui/rhiwindow/main.py80
-rw-r--r--examples/gui/rhiwindow/rc_rhiwindow.py319
-rw-r--r--examples/gui/rhiwindow/rhiwindow.py420
-rw-r--r--examples/gui/rhiwindow/rhiwindow.pyproject5
-rw-r--r--examples/gui/rhiwindow/rhiwindow.qrc8
-rw-r--r--examples/gui/rhiwindow/shaders/color.frag15
-rw-r--r--examples/gui/rhiwindow/shaders/color.vert17
-rw-r--r--examples/gui/rhiwindow/shaders/prebuilt/color.frag.qsbbin0 -> 1035 bytes
-rw-r--r--examples/gui/rhiwindow/shaders/prebuilt/color.vert.qsbbin0 -> 1131 bytes
-rw-r--r--examples/gui/rhiwindow/shaders/prebuilt/quad.frag.qsbbin0 -> 1023 bytes
-rw-r--r--examples/gui/rhiwindow/shaders/prebuilt/quad.vert.qsbbin0 -> 982 bytes
-rw-r--r--examples/gui/rhiwindow/shaders/quad.frag11
-rw-r--r--examples/gui/rhiwindow/shaders/quad.vert10
-rw-r--r--examples/installer_test/hello.py2
-rw-r--r--examples/location/mapviewer/MapViewer/Main.qml460
-rw-r--r--examples/location/mapviewer/MapViewer/forms/Geocode.qml42
-rw-r--r--examples/location/mapviewer/MapViewer/forms/GeocodeForm.ui.qml136
-rw-r--r--examples/location/mapviewer/MapViewer/forms/Locale.qml45
-rw-r--r--examples/location/mapviewer/MapViewer/forms/LocaleForm.ui.qml116
-rw-r--r--examples/location/mapviewer/MapViewer/forms/Message.qml21
-rw-r--r--examples/location/mapviewer/MapViewer/forms/MessageForm.ui.qml69
-rw-r--r--examples/location/mapviewer/MapViewer/forms/ReverseGeocode.qml38
-rw-r--r--examples/location/mapviewer/MapViewer/forms/ReverseGeocodeForm.ui.qml103
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteAddress.qml105
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteAddressForm.ui.qml160
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteCoordinate.qml41
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteCoordinateForm.ui.qml136
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteList.qml50
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteListDelegate.qml42
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteListHeader.qml47
-rw-r--r--examples/location/mapviewer/MapViewer/helper.js44
-rw-r--r--examples/location/mapviewer/MapViewer/map/MapComponent.qml497
-rw-r--r--examples/location/mapviewer/MapViewer/map/MapSliders.qml282
-rw-r--r--examples/location/mapviewer/MapViewer/map/Marker.qml64
-rw-r--r--examples/location/mapviewer/MapViewer/map/MiniMap.qml78
-rw-r--r--examples/location/mapviewer/MapViewer/menus/ItemPopupMenu.qml19
-rw-r--r--examples/location/mapviewer/MapViewer/menus/MainMenu.qml122
-rw-r--r--examples/location/mapviewer/MapViewer/menus/MapPopupMenu.qml30
-rw-r--r--examples/location/mapviewer/MapViewer/menus/MarkerPopupMenu.qml38
-rw-r--r--examples/location/mapviewer/MapViewer/qmldir27
-rw-r--r--examples/location/mapviewer/MapViewer/resources/marker.pngbin0 -> 752 bytes
-rw-r--r--examples/location/mapviewer/MapViewer/resources/marker_blue.pngbin0 -> 3523 bytes
-rw-r--r--examples/location/mapviewer/MapViewer/resources/scale.pngbin0 -> 98 bytes
-rw-r--r--examples/location/mapviewer/MapViewer/resources/scale_end.pngbin0 -> 93 bytes
-rw-r--r--examples/location/mapviewer/doc/mapviewer.rst14
-rw-r--r--examples/location/mapviewer/doc/mapviewer.webpbin0 -> 79588 bytes
-rw-r--r--examples/location/mapviewer/main.py75
-rw-r--r--examples/location/mapviewer/mapviewer.pyproject33
-rw-r--r--examples/macextras/macpasteboardmime/macpasteboardmime.py90
-rw-r--r--examples/macextras/macpasteboardmime/macpasteboardmime.pyproject3
-rw-r--r--examples/multimedia/audiooutput/audiooutput.py34
-rw-r--r--examples/multimedia/audiooutput/doc/audiooutput.rst2
-rw-r--r--examples/multimedia/audiosource/audiosource.py55
-rw-r--r--examples/multimedia/audiosource/doc/audiosource.rst2
-rw-r--r--examples/multimedia/camera/camera.py493
-rw-r--r--examples/multimedia/camera/camera.pyproject11
-rw-r--r--examples/multimedia/camera/camera.ui497
-rw-r--r--examples/multimedia/camera/camera_mobile.ui504
-rw-r--r--examples/multimedia/camera/doc/camera.pngbin63404 -> 0 bytes
-rw-r--r--examples/multimedia/camera/doc/camera.rst6
-rw-r--r--examples/multimedia/camera/doc/camera.webpbin0 -> 11666 bytes
-rw-r--r--examples/multimedia/camera/imagesettings.py56
-rw-r--r--examples/multimedia/camera/imagesettings.ui123
-rw-r--r--examples/multimedia/camera/main.py17
-rw-r--r--examples/multimedia/camera/metadatadialog.py86
-rw-r--r--examples/multimedia/camera/ui_camera.py232
-rw-r--r--examples/multimedia/camera/ui_camera_mobile.py251
-rw-r--r--examples/multimedia/camera/ui_imagesettings.py94
-rw-r--r--examples/multimedia/camera/ui_videosettings.py178
-rw-r--r--examples/multimedia/camera/ui_videosettings_mobile.py176
-rw-r--r--examples/multimedia/camera/videosettings.py167
-rw-r--r--examples/multimedia/camera/videosettings.ui213
-rw-r--r--examples/multimedia/camera/videosettings_mobile.ui207
-rw-r--r--examples/multimedia/player/player.py26
-rw-r--r--examples/multimedia/screencapture/doc/screencapture.rst42
-rw-r--r--examples/multimedia/screencapture/doc/screencapture.webpbin0 -> 53592 bytes
-rw-r--r--examples/multimedia/screencapture/main.py20
-rw-r--r--examples/multimedia/screencapture/screencapture.pyproject3
-rw-r--r--examples/multimedia/screencapture/screencapturepreview.py162
-rw-r--r--examples/multimedia/screencapture/screenlistmodel.py38
-rw-r--r--examples/multimedia/screencapture/windowlistmodel.py30
-rw-r--r--examples/network/blockingfortuneclient/blockingfortuneclient.py27
-rw-r--r--examples/network/downloader/downloader.py3
-rw-r--r--examples/network/fortuneclient/fortuneclient.py28
-rw-r--r--examples/network/fortuneserver/fortuneserver.py20
-rw-r--r--examples/network/googlesuggest/googlesuggest.py3
-rw-r--r--examples/network/threadedfortuneserver/threadedfortuneserver.py10
-rw-r--r--examples/networkauth/redditclient/redditmodel.py2
-rw-r--r--examples/networkauth/redditclient/redditwrapper.py3
-rw-r--r--examples/opengl/contextinfo/contextinfo.py16
-rw-r--r--examples/opengl/hellogl2/doc/hellogl2.rst14
-rw-r--r--examples/opengl/hellogl2/glwidget.py272
-rw-r--r--examples/opengl/hellogl2/hellogl2.py440
-rw-r--r--examples/opengl/hellogl2/hellogl2.pyproject2
-rw-r--r--examples/opengl/hellogl2/logo.py101
-rw-r--r--examples/opengl/hellogl2/main.py58
-rw-r--r--examples/opengl/hellogl2/mainwindow.py29
-rw-r--r--examples/opengl/hellogl2/window.py110
-rw-r--r--examples/opengl/textures/textures.py16
-rw-r--r--examples/opengl/textures/textures.pyproject2
-rw-r--r--examples/opengl/threadedqopenglwidget/renderer.py2
-rw-r--r--examples/pdf/quickpdfviewer/main.py2
-rw-r--r--examples/pdfwidgets/pdfviewer/rc_resources.py (renamed from examples/pdfwidgets/pdfviewer/resources_rc.py)0
-rw-r--r--examples/pdfwidgets/pdfviewer/ui_mainwindow.py10
-rw-r--r--examples/qml/editingmodel/doc/editingmodel.rst4
-rw-r--r--examples/qml/editingmodel/main.py2
-rw-r--r--examples/qml/editingmodel/model.py13
-rw-r--r--examples/qml/referenceexamples/adding/adding.pyproject5
-rw-r--r--examples/qml/referenceexamples/attached/attached.pyproject3
-rw-r--r--examples/qml/referenceexamples/attached/doc/attached.rst12
-rw-r--r--examples/qml/referenceexamples/coercion/coercion.pyproject3
-rw-r--r--examples/qml/referenceexamples/coercion/doc/coercion.rst35
-rw-r--r--examples/qml/referenceexamples/default/default.pyproject3
-rw-r--r--examples/qml/referenceexamples/default/doc/default.rst30
-rw-r--r--examples/qml/referenceexamples/grouped/doc/grouped.rst17
-rw-r--r--examples/qml/referenceexamples/grouped/grouped.pyproject3
-rw-r--r--examples/qml/referenceexamples/methods/methods.pyproject3
-rw-r--r--examples/qml/referenceexamples/properties/birthdayparty.py41
-rw-r--r--examples/qml/referenceexamples/properties/properties.pyproject6
-rw-r--r--examples/qml/referenceexamples/valuesource/doc/valuesource.rst20
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/People/Main.qml (renamed from examples/qml/referenceexamples/adding/example.qml)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/adding.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/doc/adding.rst (renamed from examples/qml/referenceexamples/adding/doc/adding.rst)6
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/main.py (renamed from examples/qml/referenceexamples/adding/main.py)10
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/person.py (renamed from examples/qml/referenceexamples/methods/person.py)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/Main.qml16
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/advanced1-Base-project.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/birthdayparty.py46
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/doc/advanced1-Base-project.rst57
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/main.py33
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/person.py41
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/Main.qml (renamed from examples/qml/referenceexamples/coercion/example.qml)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/advanced2-Inheritance-and-coercion.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/birthdayparty.py46
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/doc/advanced2-Inheritance-and-coercion.rst62
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/main.py (renamed from examples/qml/referenceexamples/coercion/main.py)16
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/person.py (renamed from examples/qml/referenceexamples/coercion/person.py)15
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/Main.qml (renamed from examples/qml/referenceexamples/default/example.qml)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/advanced3-Default-properties.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/birthdayparty.py (renamed from examples/qml/referenceexamples/default/birthdayparty.py)15
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/doc/advanced3-Default-properties.rst40
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/main.py (renamed from examples/qml/referenceexamples/default/main.py)16
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/person.py (renamed from examples/qml/referenceexamples/attached/person.py)15
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/Main.qml (renamed from examples/qml/referenceexamples/grouped/example.qml)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/advanced4-Grouped-properties.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/birthdayparty.py (renamed from examples/qml/referenceexamples/grouped/birthdayparty.py)15
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/doc/advanced4-Grouped-properties.rst39
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/main.py (renamed from examples/qml/referenceexamples/grouped/main.py)21
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/person.py (renamed from examples/qml/referenceexamples/grouped/person.py)43
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/Main.qml (renamed from examples/qml/referenceexamples/attached/example.qml)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/advanced5-Attached-properties.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/birthdayparty.py (renamed from examples/qml/referenceexamples/valuesource/birthdayparty.py)35
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/doc/advanced5-Attached-properties.rst51
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/main.py (renamed from examples/qml/referenceexamples/attached/main.py)16
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/person.py (renamed from examples/qml/referenceexamples/valuesource/person.py)15
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/Main.qml (renamed from examples/qml/referenceexamples/valuesource/example.qml)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/advanced6-Property-value-source.pyproject (renamed from examples/qml/referenceexamples/valuesource/valuesource.pyproject)3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py (renamed from examples/qml/referenceexamples/attached/birthdayparty.py)40
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/doc/advanced6-Property-value-source.rst43
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/happybirthdaysong.py (renamed from examples/qml/referenceexamples/valuesource/happybirthdaysong.py)20
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/main.py (renamed from examples/qml/referenceexamples/valuesource/main.py)16
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/person.py (renamed from examples/qml/referenceexamples/default/person.py)15
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/People/Main.qml (renamed from examples/qml/referenceexamples/binding/example.qml)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/binding.pyproject (renamed from examples/qml/referenceexamples/binding/binding.pyproject)3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/birthdayparty.py (renamed from examples/qml/referenceexamples/binding/birthdayparty.py)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/doc/binding.rst (renamed from examples/qml/referenceexamples/binding/doc/binding.rst)0
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/happybirthdaysong.py (renamed from examples/qml/referenceexamples/binding/happybirthdaysong.py)4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/main.py (renamed from examples/qml/referenceexamples/binding/main.py)14
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/person.py (renamed from examples/qml/referenceexamples/binding/person.py)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/extended/doc/extended.rst (renamed from examples/qml/referenceexamples/extended/doc/extended.rst)0
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/extended/example.qml (renamed from examples/qml/referenceexamples/extended/example.qml)0
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/extended/extended.pyproject (renamed from examples/qml/referenceexamples/extended/extended.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/extended/main.py (renamed from examples/qml/referenceexamples/extended/main.py)0
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/People/Main.qml (renamed from examples/qml/referenceexamples/methods/example.qml)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/birthdayparty.py (renamed from examples/qml/referenceexamples/methods/birthdayparty.py)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/doc/methods.rst (renamed from examples/qml/referenceexamples/methods/doc/methods.rst)0
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/main.py (renamed from examples/qml/referenceexamples/methods/main.py)12
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/methods.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/person.py (renamed from examples/qml/referenceexamples/adding/person.py)3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/People/Main.qml (renamed from examples/qml/referenceexamples/properties/example.qml)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/birthdayparty.py (renamed from examples/qml/referenceexamples/coercion/birthdayparty.py)2
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/doc/properties.rst (renamed from examples/qml/referenceexamples/properties/doc/properties.rst)12
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/main.py (renamed from examples/qml/referenceexamples/properties/main.py)12
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/person.py (renamed from examples/qml/referenceexamples/properties/person.py)3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/properties.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml/chapter1-basics/app.qml (renamed from examples/qml/tutorials/extending/chapter1-basics/app.qml)3
-rw-r--r--examples/qml/tutorials/extending-qml/chapter1-basics/basics.py (renamed from examples/qml/tutorials/extending/chapter1-basics/basics.py)4
-rw-r--r--examples/qml/tutorials/extending-qml/chapter1-basics/chapter1-basics.pyproject (renamed from examples/qml/tutorials/extending/chapter1-basics/chapter1-basics.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter1-basics/doc/chapter1-basics.rst107
-rw-r--r--examples/qml/tutorials/extending-qml/chapter2-methods/app.qml (renamed from examples/qml/tutorials/extending/chapter2-methods/app.qml)3
-rw-r--r--examples/qml/tutorials/extending-qml/chapter2-methods/chapter2-methods.pyproject (renamed from examples/qml/tutorials/extending/chapter2-methods/chapter2-methods.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter2-methods/doc/chapter2-methods.rst36
-rw-r--r--examples/qml/tutorials/extending-qml/chapter2-methods/methods.py (renamed from examples/qml/tutorials/extending/chapter2-methods/methods.py)4
-rw-r--r--examples/qml/tutorials/extending-qml/chapter3-bindings/app.qml (renamed from examples/qml/tutorials/extending/chapter3-bindings/app.qml)3
-rw-r--r--examples/qml/tutorials/extending-qml/chapter3-bindings/bindings.py (renamed from examples/qml/tutorials/extending/chapter3-bindings/bindings.py)4
-rw-r--r--examples/qml/tutorials/extending-qml/chapter3-bindings/chapter3-bindings.pyproject (renamed from examples/qml/tutorials/extending/chapter3-bindings/chapter3-bindings.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter3-bindings/doc/chapter3-bindings.rst54
-rw-r--r--examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/app.qml (renamed from examples/qml/tutorials/extending/chapter4-customPropertyTypes/app.qml)3
-rw-r--r--examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject (renamed from examples/qml/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/customPropertyTypes.py (renamed from examples/qml/tutorials/extending/chapter4-customPropertyTypes/customPropertyTypes.py)9
-rw-r--r--examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/doc/chapter4-customPropertyTypes.rst73
-rw-r--r--examples/qml/tutorials/extending-qml/chapter5-listproperties/app.qml (renamed from examples/qml/tutorials/extending/chapter5-listproperties/app.qml)3
-rw-r--r--examples/qml/tutorials/extending-qml/chapter5-listproperties/chapter5-listproperties.pyproject (renamed from examples/qml/tutorials/extending/chapter5-listproperties/chapter5-listproperties.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter5-listproperties/doc/chapter5-listproperties.rst47
-rw-r--r--examples/qml/tutorials/extending-qml/chapter5-listproperties/listproperties.py (renamed from examples/qml/tutorials/extending/chapter5-listproperties/listproperties.py)13
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/piechart.py (renamed from examples/qml/tutorials/extending/chapter6-plugins/Charts/piechart.py)3
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/pieslice.py (renamed from examples/qml/tutorials/extending/chapter6-plugins/Charts/pieslice.py)7
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/plugins.png (renamed from examples/qml/tutorials/extending/chapter6-plugins/Charts/plugins.png)bin5014 -> 5014 bytes
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/app.qml (renamed from examples/qml/tutorials/extending/chapter6-plugins/app.qml)2
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/chapter6-plugins.pyproject (renamed from examples/qml/tutorials/extending/chapter6-plugins/chapter6-plugins.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/doc/chapter6-plugins.rst26
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/doc/plugins.png (renamed from examples/qml/tutorials/extending/chapter6-plugins/doc/plugins.png)bin5014 -> 5014 bytes
-rw-r--r--examples/qml/tutorials/extending/chapter6-plugins/doc/chapter6-plugins.rst21
-rw-r--r--examples/qml/usingmodel/doc/usingmodel.rst2
-rw-r--r--examples/qml/usingmodel/usingmodel.py48
-rw-r--r--examples/qml/usingmodel/view.qml12
-rw-r--r--examples/quick/models/objectlistmodel/doc/objectlistmodel.rst2
-rw-r--r--examples/quick/models/objectlistmodel/objectlistmodel.py6
-rw-r--r--examples/quick/models/stringlistmodel/doc/stringlistmodel.rst2
-rw-r--r--examples/quick/models/stringlistmodel/stringlistmodel.py2
-rw-r--r--examples/quick/painteditem/doc/painteditem.rst2
-rw-r--r--examples/quick/painteditem/painteditem.py10
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py37
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/demo.qml2
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py13
-rw-r--r--examples/quick/scenegraph/openglunderqml/main.py2
-rw-r--r--examples/quick/scenegraph/openglunderqml/squirclerenderer.py3
-rw-r--r--examples/quick/scenegraph/scenegraph_customgeometry/doc/scenegraph_customgeometry.rst7
-rw-r--r--examples/quick/scenegraph/scenegraph_customgeometry/main.py152
-rw-r--r--examples/quick/scenegraph/scenegraph_customgeometry/main.qml34
-rw-r--r--examples/quick/scenegraph/scenegraph_customgeometry/scenegraph_customgeometry.pyproject3
-rw-r--r--examples/quick/shared/Button.qml2
-rw-r--r--examples/quick/shared/CheckBox.qml2
-rw-r--r--examples/quick/shared/FlickrRssModel.qml2
-rw-r--r--examples/quick/shared/Label.qml2
-rw-r--r--examples/quick/shared/LauncherList.qml4
-rw-r--r--examples/quick/shared/SimpleLauncherDelegate.qml2
-rw-r--r--examples/quick/shared/Slider.qml2
-rw-r--r--examples/quick/shared/TabSet.qml2
-rw-r--r--examples/quick/shared/TextField.qml2
-rw-r--r--examples/quick/shared/images/qt-logo.pngbin6208 -> 13596 bytes
-rw-r--r--examples/quick/shared/shared_rc.py3169
-rw-r--r--examples/quick/window/doc/window.rst4
-rw-r--r--examples/quick/window/main.py7
-rw-r--r--examples/quick/window/rc_window.py335
-rw-r--r--examples/quick/window/window.pyproject2
-rw-r--r--examples/quick/window/window_rc.py328
-rw-r--r--examples/quick3d/customgeometry/main.py6
-rw-r--r--examples/quick3d/proceduraltexture/ProceduralTextureModule/Main.qml188
-rw-r--r--examples/quick3d/proceduraltexture/ProceduralTextureModule/app.qrc6
-rw-r--r--examples/quick3d/proceduraltexture/ProceduralTextureModule/qmldir2
-rw-r--r--examples/quick3d/proceduraltexture/doc/proceduraltexture-example.webpbin0 -> 5166 bytes
-rw-r--r--examples/quick3d/proceduraltexture/doc/proceduraltexture.rst12
-rw-r--r--examples/quick3d/proceduraltexture/gradienttexture.py105
-rw-r--r--examples/quick3d/proceduraltexture/main.py30
-rw-r--r--examples/quick3d/proceduraltexture/proceduraltexture.pyproject9
-rw-r--r--examples/quickcontrols/contactslist/Contact/ContactDelegate.ui.qml82
-rw-r--r--examples/quickcontrols/contactslist/Contact/ContactDialog.qml45
-rw-r--r--examples/quickcontrols/contactslist/Contact/ContactForm.ui.qml72
-rw-r--r--examples/quickcontrols/contactslist/Contact/ContactList.qml70
-rw-r--r--examples/quickcontrols/contactslist/Contact/ContactView.ui.qml36
-rw-r--r--examples/quickcontrols/contactslist/Contact/SectionDelegate.ui.qml17
-rw-r--r--examples/quickcontrols/contactslist/Contact/qmldir7
-rw-r--r--examples/quickcontrols/contactslist/contactlist.pyproject10
-rw-r--r--examples/quickcontrols/contactslist/contactmodel.py116
-rw-r--r--examples/quickcontrols/contactslist/doc/contactslist.rst15
-rw-r--r--examples/quickcontrols/contactslist/doc/qtquickcontrols-contactlist.pngbin0 -> 23581 bytes
-rw-r--r--examples/quickcontrols/contactslist/main.py28
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/Main.qml185
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/app.qrc15
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons.qrc14
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/app_icon.svg2
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_closed.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_open.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/generic_file.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/globe.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/info_sign.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/light_bulb.svg43
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/qt_logo.svg26
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/read.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/resize.svg6
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/About.qml93
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Colors.qml23
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Editor.qml160
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/FileSystemView.qml156
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenu.qml45
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenuBar.qml177
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/ResizeButton.qml23
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Sidebar.qml138
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/WindowDragHandler.qml16
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qmldir11
-rw-r--r--examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.rst52
-rw-r--r--examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.webpbin0 -> 47416 bytes
-rw-r--r--examples/quickcontrols/filesystemexplorer/editormodels.py116
-rw-r--r--examples/quickcontrols/filesystemexplorer/filesystemexplorer.pyproject29
-rw-r--r--examples/quickcontrols/filesystemexplorer/main.py48
-rw-r--r--examples/quickcontrols/gallery/+Material/ToolBar.qml (renamed from examples/quickcontrols2/gallery/+Material/ToolBar.qml)0
-rw-r--r--examples/quickcontrols/gallery/ToolBar.qml (renamed from examples/quickcontrols2/gallery/ToolBar.qml)0
-rw-r--r--examples/quickcontrols/gallery/doc/gallery.png (renamed from examples/quickcontrols2/gallery/doc/gallery.png)bin23828 -> 23828 bytes
-rw-r--r--examples/quickcontrols/gallery/doc/gallery.rst (renamed from examples/quickcontrols2/gallery/doc/gallery.rst)2
-rw-r--r--examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-drawer.png (renamed from examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-drawer.png)bin15428 -> 15428 bytes
-rw-r--r--examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-menu.png (renamed from examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-menu.png)bin15953 -> 15953 bytes
-rw-r--r--examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-welcome.png (renamed from examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-welcome.png)bin18513 -> 18513 bytes
-rw-r--r--examples/quickcontrols/gallery/gallery.py (renamed from examples/quickcontrols2/gallery/gallery.py)2
-rw-r--r--examples/quickcontrols/gallery/gallery.pyproject (renamed from examples/quickcontrols2/gallery/gallery.pyproject)1
-rw-r--r--examples/quickcontrols/gallery/gallery.qml (renamed from examples/quickcontrols2/gallery/gallery.qml)57
-rw-r--r--examples/quickcontrols/gallery/gallery.qrc (renamed from examples/quickcontrols2/gallery/gallery.qrc)0
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20/back.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20/back.png)bin146 -> 146 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20/drawer.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20/drawer.png)bin123 -> 123 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20/menu.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20/menu.png)bin123 -> 123 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@2/back.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@2/back.png)bin184 -> 184 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@2/drawer.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@2/drawer.png)bin126 -> 126 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@2/menu.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@2/menu.png)bin158 -> 158 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@3/back.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@3/back.png)bin227 -> 227 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@3/drawer.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@3/drawer.png)bin130 -> 130 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@3/menu.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@3/menu.png)bin193 -> 193 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@4/back.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@4/back.png)bin246 -> 246 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@4/drawer.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@4/drawer.png)bin131 -> 131 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@4/menu.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@4/menu.png)bin223 -> 223 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/index.theme (renamed from examples/quickcontrols2/gallery/icons/gallery/index.theme)0
-rw-r--r--examples/quickcontrols/gallery/images/arrow.png (renamed from examples/quickcontrols2/gallery/images/arrow.png)bin319 -> 319 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrow@2x.png (renamed from examples/quickcontrols2/gallery/images/arrow@2x.png)bin476 -> 476 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrow@3x.png (renamed from examples/quickcontrols2/gallery/images/arrow@3x.png)bin611 -> 611 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrow@4x.png (renamed from examples/quickcontrols2/gallery/images/arrow@4x.png)bin758 -> 758 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrows.png (renamed from examples/quickcontrols2/gallery/images/arrows.png)bin458 -> 458 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrows@2x.png (renamed from examples/quickcontrols2/gallery/images/arrows@2x.png)bin699 -> 699 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrows@3x.png (renamed from examples/quickcontrols2/gallery/images/arrows@3x.png)bin942 -> 942 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrows@4x.png (renamed from examples/quickcontrols2/gallery/images/arrows@4x.png)bin1211 -> 1211 bytes
-rw-r--r--examples/quickcontrols/gallery/images/qt-logo.pngbin0 -> 2849 bytes
-rw-r--r--examples/quickcontrols/gallery/images/qt-logo@2x.pngbin0 -> 4936 bytes
-rw-r--r--examples/quickcontrols/gallery/images/qt-logo@3x.pngbin0 -> 7254 bytes
-rw-r--r--examples/quickcontrols/gallery/images/qt-logo@4x.pngbin0 -> 9505 bytes
-rw-r--r--examples/quickcontrols/gallery/pages/BusyIndicatorPage.qml (renamed from examples/quickcontrols2/gallery/pages/BusyIndicatorPage.qml)2
-rw-r--r--examples/quickcontrols/gallery/pages/ButtonPage.qml (renamed from examples/quickcontrols2/gallery/pages/ButtonPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/CheckBoxPage.qml (renamed from examples/quickcontrols2/gallery/pages/CheckBoxPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/ComboBoxPage.qml (renamed from examples/quickcontrols2/gallery/pages/ComboBoxPage.qml)5
-rw-r--r--examples/quickcontrols/gallery/pages/DelayButtonPage.qml (renamed from examples/quickcontrols2/gallery/pages/DelayButtonPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/DelegatePage.qml201
-rw-r--r--examples/quickcontrols/gallery/pages/DialPage.qml (renamed from examples/quickcontrols2/gallery/pages/DialPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/DialogPage.qml (renamed from examples/quickcontrols2/gallery/pages/DialogPage.qml)8
-rw-r--r--examples/quickcontrols/gallery/pages/FramePage.qml (renamed from examples/quickcontrols2/gallery/pages/FramePage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/GroupBoxPage.qml (renamed from examples/quickcontrols2/gallery/pages/GroupBoxPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/PageIndicatorPage.qml (renamed from examples/quickcontrols2/gallery/pages/PageIndicatorPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/ProgressBarPage.qml (renamed from examples/quickcontrols2/gallery/pages/ProgressBarPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/RadioButtonPage.qml (renamed from examples/quickcontrols2/gallery/pages/RadioButtonPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/RangeSliderPage.qml (renamed from examples/quickcontrols2/gallery/pages/RangeSliderPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/ScrollBarPage.qml (renamed from examples/quickcontrols2/gallery/pages/ScrollBarPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/ScrollIndicatorPage.qml (renamed from examples/quickcontrols2/gallery/pages/ScrollIndicatorPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/ScrollablePage.qml (renamed from examples/quickcontrols2/gallery/pages/ScrollablePage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/SliderPage.qml (renamed from examples/quickcontrols2/gallery/pages/SliderPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/SpinBoxPage.qml (renamed from examples/quickcontrols2/gallery/pages/SpinBoxPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/StackViewPage.qml (renamed from examples/quickcontrols2/gallery/pages/StackViewPage.qml)9
-rw-r--r--examples/quickcontrols/gallery/pages/SwipeViewPage.qml (renamed from examples/quickcontrols2/gallery/pages/SwipeViewPage.qml)4
-rw-r--r--examples/quickcontrols/gallery/pages/SwitchPage.qml (renamed from examples/quickcontrols2/gallery/pages/SwitchPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/TabBarPage.qml (renamed from examples/quickcontrols2/gallery/pages/TabBarPage.qml)4
-rw-r--r--examples/quickcontrols/gallery/pages/TextAreaPage.qml (renamed from examples/quickcontrols2/gallery/pages/TextAreaPage.qml)2
-rw-r--r--examples/quickcontrols/gallery/pages/TextFieldPage.qml (renamed from examples/quickcontrols2/gallery/pages/TextFieldPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/ToolTipPage.qml (renamed from examples/quickcontrols2/gallery/pages/ToolTipPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/pages/TumblerPage.qml (renamed from examples/quickcontrols2/gallery/pages/TumblerPage.qml)0
-rw-r--r--examples/quickcontrols/gallery/qmldir (renamed from examples/quickcontrols2/gallery/qmldir)0
-rw-r--r--examples/quickcontrols/gallery/qtquickcontrols2.conf (renamed from examples/quickcontrols2/gallery/qtquickcontrols2.conf)0
-rw-r--r--examples/quickcontrols/gallery/rc_gallery.py4410
-rw-r--r--examples/quickcontrols2/gallery/images/qt-logo.pngbin1301 -> 0 bytes
-rw-r--r--examples/quickcontrols2/gallery/images/qt-logo@2x.pngbin2611 -> 0 bytes
-rw-r--r--examples/quickcontrols2/gallery/images/qt-logo@3x.pngbin4155 -> 0 bytes
-rw-r--r--examples/quickcontrols2/gallery/images/qt-logo@4x.pngbin5916 -> 0 bytes
-rw-r--r--examples/quickcontrols2/gallery/pages/DelegatePage.qml170
-rw-r--r--examples/quickcontrols2/gallery/rc_gallery.py7855
-rw-r--r--examples/samplebinding/CMakeLists.txt5
-rw-r--r--examples/samplebinding/doc/bindings.h.rstinc2
-rw-r--r--examples/samplebinding/doc/bindings.xml.rstinc31
-rw-r--r--examples/samplebinding/doc/samplebinding.pyproject1
-rw-r--r--examples/samplebinding/doc/samplebinding.rst23
-rw-r--r--examples/scriptableapplication/CMakeLists.txt5
-rw-r--r--examples/scriptableapplication/doc/scriptableapplication.rst6
-rw-r--r--examples/scriptableapplication/mainwindow.cpp60
-rw-r--r--examples/scriptableapplication/mainwindow.h6
-rw-r--r--examples/scriptableapplication/pythonutils.cpp10
-rw-r--r--examples/scriptableapplication/pythonutils.h4
-rw-r--r--examples/serialbus/can/main.py1
-rw-r--r--examples/serialbus/can/mainwindow.py20
-rw-r--r--examples/serialbus/can/sendframebox.py4
-rw-r--r--examples/serialbus/can/ui_canbusdeviceinfobox.py2
-rw-r--r--examples/serialbus/can/ui_canbusdeviceinfodialog.py4
-rw-r--r--examples/serialbus/can/ui_connectdialog.py4
-rw-r--r--examples/serialbus/can/ui_mainwindow.py6
-rw-r--r--examples/serialbus/can/ui_sendframebox.py6
-rw-r--r--examples/serialbus/modbus/modbusclient/mainwindow.py4
-rw-r--r--examples/serialbus/modbus/modbusclient/modbusclient.pyproject2
-rw-r--r--examples/serialbus/modbus/modbusclient/settingsdialog.py2
-rw-r--r--examples/serialbus/modbus/modbusclient/ui_mainwindow.py12
-rw-r--r--examples/serialbus/modbus/modbusclient/ui_settingsdialog.py4
-rw-r--r--examples/serialport/terminal/mainwindow.py2
-rw-r--r--examples/serialport/terminal/settingsdialog.py5
-rw-r--r--examples/serialport/terminal/ui_mainwindow.py4
-rw-r--r--examples/serialport/terminal/ui_settingsdialog.py4
-rw-r--r--examples/spatialaudio/audiopanning/main.py2
-rw-r--r--examples/speech/hello_speak/doc/hello_speak.rst16
-rw-r--r--examples/speech/hello_speak/doc/hello_speak.webpbin0 -> 25432 bytes
-rw-r--r--examples/speech/hello_speak/hello_speak.pyproject5
-rw-r--r--examples/speech/hello_speak/main.py20
-rw-r--r--examples/speech/hello_speak/mainwindow.py134
-rw-r--r--examples/speech/hello_speak/mainwindow.ui267
-rw-r--r--examples/speech/hello_speak/ui_mainwindow.py211
-rw-r--r--examples/sql/books/bookdelegate.py13
-rw-r--r--examples/sql/books/books.qrc3
-rw-r--r--examples/sql/books/bookwindow.py16
-rw-r--r--examples/sql/books/images/star-filled.svg1
-rw-r--r--examples/sql/books/images/star.pngbin782 -> 0 bytes
-rw-r--r--examples/sql/books/images/star.svg1
-rw-r--r--examples/sql/books/main.py2
-rw-r--r--examples/sql/books/rc_books.py142
-rw-r--r--examples/sql/books/ui_bookwindow.py2
-rw-r--r--examples/statemachine/eventtrans/eventtrans.py57
-rw-r--r--examples/statemachine/eventtrans/eventtrans.pyproject3
-rw-r--r--examples/statemachine/factstates/factstates.py89
-rw-r--r--examples/statemachine/factstates/factstates.pyproject3
-rw-r--r--examples/statemachine/moveblocks/doc/moveblocks.pngbin0 -> 4532 bytes
-rw-r--r--examples/statemachine/moveblocks/doc/moveblocks.rst10
-rw-r--r--examples/statemachine/moveblocks/moveblocks.py222
-rw-r--r--examples/statemachine/moveblocks/moveblocks.pyproject3
-rw-r--r--examples/statemachine/rogue/rogue.py14
-rw-r--r--examples/statemachine/trafficlight/doc/trafficlight.pngbin79 -> 4786 bytes
-rw-r--r--examples/statemachine/twowaybutton/twowaybutton.py33
-rw-r--r--examples/statemachine/twowaybutton/twowaybutton.pyproject3
-rw-r--r--examples/texttospeech/hello_speak/hello_speak.py73
-rw-r--r--examples/texttospeech/hello_speak/hello_speak.pyproject3
-rw-r--r--examples/uitools/uiloader/uiloader.py4
-rw-r--r--examples/utils/pyside_config.py16
-rw-r--r--examples/webchannel/standalone/ui_dialog.py2
-rw-r--r--examples/webenginequick/nanobrowser/BrowserDialog.qml2
-rw-r--r--examples/webenginequick/nanobrowser/BrowserWindow.qml90
-rw-r--r--examples/webenginequick/nanobrowser/quicknanobrowser.py13
-rw-r--r--examples/webenginewidgets/markdowneditor/main.py2
-rw-r--r--examples/webenginewidgets/markdowneditor/mainwindow.py7
-rw-r--r--examples/webenginewidgets/markdowneditor/markdowneditor.pyproject3
-rw-r--r--examples/webenginewidgets/markdowneditor/resources/index.html2
-rw-r--r--examples/webenginewidgets/markdowneditor/ui_mainwindow.py2
-rw-r--r--examples/webenginewidgets/notifications/notificationpopup.py4
-rw-r--r--examples/webenginewidgets/simplebrowser/browser.py69
-rw-r--r--examples/webenginewidgets/simplebrowser/browserwindow.py500
-rw-r--r--examples/webenginewidgets/simplebrowser/certificateerrordialog.ui133
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/COPYING1
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/dialog-error.pngbin0 -> 1645 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/edit-clear.pngbin0 -> 1682 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/go-bottom.pngbin0 -> 1263 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/go-next.pngbin0 -> 1219 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/go-previous.pngbin0 -> 1200 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/process-stop.pngbin0 -> 1927 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/qt_attribution.json24
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/text-html.pngbin0 -> 1759 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/view-refresh.pngbin0 -> 2024 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/AppLogoColor.pngbin0 -> 6113 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/ninja.pngbin0 -> 1671 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/rc_simplebrowser.py1391
-rw-r--r--examples/webenginewidgets/simplebrowser/data/simplebrowser.qrc16
-rw-r--r--examples/webenginewidgets/simplebrowser/doc/simplebrowser.rst179
-rw-r--r--examples/webenginewidgets/simplebrowser/doc/simplebrowser.webpbin0 -> 67542 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/downloadmanagerwidget.py51
-rw-r--r--examples/webenginewidgets/simplebrowser/downloadmanagerwidget.ui104
-rw-r--r--examples/webenginewidgets/simplebrowser/downloadwidget.py109
-rw-r--r--examples/webenginewidgets/simplebrowser/downloadwidget.ui78
-rw-r--r--examples/webenginewidgets/simplebrowser/main.py45
-rw-r--r--examples/webenginewidgets/simplebrowser/passworddialog.ui121
-rw-r--r--examples/webenginewidgets/simplebrowser/simplebrowser.pyproject6
-rw-r--r--examples/webenginewidgets/simplebrowser/tabwidget.py241
-rw-r--r--examples/webenginewidgets/simplebrowser/ui_certificateerrordialog.py87
-rw-r--r--examples/webenginewidgets/simplebrowser/ui_downloadmanagerwidget.py76
-rw-r--r--examples/webenginewidgets/simplebrowser/ui_downloadwidget.py86
-rw-r--r--examples/webenginewidgets/simplebrowser/ui_passworddialog.py96
-rw-r--r--examples/webenginewidgets/simplebrowser/webpage.py29
-rw-r--r--examples/webenginewidgets/simplebrowser/webpopupwindow.py53
-rw-r--r--examples/webenginewidgets/simplebrowser/webview.py294
-rw-r--r--examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py239
-rw-r--r--examples/webenginewidgets/tabbedbrowser/browsertabwidget.py212
-rw-r--r--examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.pngbin37147 -> 0 bytes
-rw-r--r--examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.rst58
-rw-r--r--examples/webenginewidgets/tabbedbrowser/downloadwidget.py111
-rw-r--r--examples/webenginewidgets/tabbedbrowser/findtoolbar.py62
-rw-r--r--examples/webenginewidgets/tabbedbrowser/historywindow.py66
-rw-r--r--examples/webenginewidgets/tabbedbrowser/main.py358
-rw-r--r--examples/webenginewidgets/tabbedbrowser/tabbedbrowser.pyproject5
-rw-r--r--examples/webenginewidgets/tabbedbrowser/webengineview.py56
-rw-r--r--examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.png (renamed from examples/webenginewidgets/simplebrowser/doc/simplebrowser.png)bin51615 -> 51615 bytes
-rw-r--r--examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.rst8
-rw-r--r--examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py (renamed from examples/webenginewidgets/simplebrowser/simplebrowser.py)2
-rw-r--r--examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.pyproject3
-rw-r--r--examples/widgetbinding/CMakeLists.txt7
-rw-r--r--examples/widgetbinding/dialog.py3
-rw-r--r--examples/widgetbinding/doc/widgetbinding.md (renamed from examples/widgetbinding/README.md)8
-rw-r--r--examples/widgetbinding/doc/widgetbinding.pyproject10
-rw-r--r--examples/widgetbinding/wigglywidget.cpp12
-rw-r--r--examples/widgets/animation/animatedtiles/animatedtiles.py27
-rw-r--r--examples/widgets/animation/animatedtiles/animatedtiles.pyproject3
-rw-r--r--examples/widgets/animation/appchooser/appchooser.py2
-rw-r--r--examples/widgets/animation/appchooser/appchooser.pyproject2
-rw-r--r--examples/widgets/animation/easing/easing.py14
-rw-r--r--examples/widgets/animation/easing/images/qt-logo.pngbin5149 -> 0 bytes
-rw-r--r--examples/widgets/animation/easing/ui_form.py16
-rw-r--r--examples/widgets/animation/states/states.py2
-rw-r--r--examples/widgets/animation/states/states.pyproject2
-rw-r--r--examples/widgets/codeeditor/codeeditor.py104
-rw-r--r--examples/widgets/codeeditor/codeeditor.pyproject3
-rw-r--r--examples/widgets/codeeditor/doc/codeeditor.pngbin7759 -> 0 bytes
-rw-r--r--examples/widgets/codeeditor/doc/codeeditor.rst9
-rw-r--r--examples/widgets/codeeditor/main.py15
-rw-r--r--examples/widgets/desktop/systray/window.py8
-rw-r--r--examples/widgets/dialogs/classwizard/classwizard.py6
-rw-r--r--examples/widgets/dialogs/classwizard/classwizard.pyproject3
-rw-r--r--examples/widgets/dialogs/classwizard/listchooser.py2
-rw-r--r--examples/widgets/dialogs/findfiles/findfiles.py184
-rw-r--r--examples/widgets/dialogs/findfiles/findfiles.pyproject3
-rw-r--r--examples/widgets/dialogs/standarddialogs/standarddialogs.py122
-rw-r--r--examples/widgets/dialogs/trivialwizard/trivialwizard.py2
-rw-r--r--examples/widgets/draganddrop/draggabletext/draggabletext.py5
-rw-r--r--examples/widgets/draganddrop/draggabletext/draggabletext.pyproject3
-rw-r--r--examples/widgets/effects/lighting/lighting.py3
-rw-r--r--examples/widgets/gettext/doc/gettext.rst7
-rw-r--r--examples/widgets/graphicsview/anchorlayout/anchorlayout.py2
-rw-r--r--examples/widgets/graphicsview/collidingmice/collidingmice.py16
-rw-r--r--examples/widgets/graphicsview/collidingmice/collidingmice.pyproject2
-rw-r--r--examples/widgets/graphicsview/diagramscene/diagramscene.py129
-rw-r--r--examples/widgets/graphicsview/diagramscene/diagramscene.pyproject2
-rw-r--r--examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py53
-rw-r--r--examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject2
-rw-r--r--examples/widgets/graphicsview/elasticnodes/elasticnodes.py20
-rw-r--r--examples/widgets/imageviewer/imageviewer.py2
-rw-r--r--examples/widgets/itemviews/address_book/adddialogwidget.py4
-rw-r--r--examples/widgets/itemviews/address_book/address_book.py15
-rw-r--r--examples/widgets/itemviews/address_book/addresswidget.py5
-rw-r--r--examples/widgets/itemviews/address_book/tablemodel.py4
-rw-r--r--examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py26
-rw-r--r--examples/widgets/itemviews/dirview/dirview.py1
-rw-r--r--examples/widgets/itemviews/editabletreemodel/mainwindow.py2
-rw-r--r--examples/widgets/itemviews/fetchmore/fetchmore.py4
-rw-r--r--examples/widgets/itemviews/jsonmodel/jsonmodel.py7
-rw-r--r--examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py3
-rw-r--r--examples/widgets/itemviews/stardelegate/stardelegate.py12
-rw-r--r--examples/widgets/itemviews/stardelegate/stareditor.py3
-rw-r--r--examples/widgets/itemviews/stardelegate/starrating.py6
-rw-r--r--examples/widgets/layouts/basiclayouts/basiclayouts.py5
-rw-r--r--examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py10
-rw-r--r--examples/widgets/linguist/doc/linguist.rst7
-rw-r--r--examples/widgets/linguist/linguist.qrc4
-rw-r--r--examples/widgets/linguist/main.py4
-rw-r--r--examples/widgets/mainwindows/application/application.py79
-rw-r--r--examples/widgets/mainwindows/application/application.pyproject2
-rw-r--r--examples/widgets/mainwindows/dockwidgets/dockwidgets.py76
-rw-r--r--examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject2
-rw-r--r--examples/widgets/mainwindows/mdi/images/new.pngbin852 -> 0 bytes
-rw-r--r--examples/widgets/mainwindows/mdi/images/save.pngbin1187 -> 0 bytes
-rw-r--r--examples/widgets/mainwindows/mdi/mdi.py112
-rw-r--r--examples/widgets/mainwindows/mdi/mdi.pyproject2
-rw-r--r--examples/widgets/mainwindows/mdi/mdi.qrc10
-rw-r--r--examples/widgets/mainwindows/mdi/mdi_rc.py608
-rw-r--r--examples/widgets/painting/basicdrawing/basicdrawing.py27
-rw-r--r--examples/widgets/painting/basicdrawing/basicdrawing.pyproject2
-rw-r--r--examples/widgets/painting/concentriccircles/concentriccircles.py9
-rw-r--r--examples/widgets/painting/painter/painter.py8
-rw-r--r--examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.rst34
-rw-r--r--examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.webpbin0 -> 8556 bytes
-rw-r--r--examples/widgets/rhi/simplerhiwidget/examplewidget.py135
-rw-r--r--examples/widgets/rhi/simplerhiwidget/main.py35
-rw-r--r--examples/widgets/rhi/simplerhiwidget/rc_simplerhiwidget.py163
-rw-r--r--examples/widgets/rhi/simplerhiwidget/shader_assets/color.frag.qsbbin0 -> 738 bytes
-rw-r--r--examples/widgets/rhi/simplerhiwidget/shader_assets/color.vert.qsbbin0 -> 1091 bytes
-rw-r--r--examples/widgets/rhi/simplerhiwidget/shaders/color.frag10
-rw-r--r--examples/widgets/rhi/simplerhiwidget/shaders/color.vert16
-rw-r--r--examples/widgets/rhi/simplerhiwidget/simplerhiwidget.pyproject4
-rw-r--r--examples/widgets/rhi/simplerhiwidget/simplerhiwidget.qrc6
-rw-r--r--examples/widgets/richtext/orderform/orderform.py24
-rw-r--r--examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py4
-rw-r--r--examples/widgets/richtext/textedit/main.py2
-rw-r--r--examples/widgets/richtext/textedit/textedit.py45
-rw-r--r--examples/widgets/tools/regularexpression/regularexpressiondialog.py39
-rw-r--r--examples/widgets/tutorials/addressbook/part1.py5
-rw-r--r--examples/widgets/tutorials/addressbook/part2.py7
-rw-r--r--examples/widgets/tutorials/addressbook/part3.py7
-rw-r--r--examples/widgets/tutorials/addressbook/part4.py21
-rw-r--r--examples/widgets/tutorials/addressbook/part5.py26
-rw-r--r--examples/widgets/tutorials/addressbook/part6.py41
-rw-r--r--examples/widgets/tutorials/addressbook/part7.py48
-rw-r--r--examples/widgets/tutorials/cannon/t10.py6
-rw-r--r--examples/widgets/tutorials/cannon/t11.py6
-rw-r--r--examples/widgets/tutorials/cannon/t12.py6
-rw-r--r--examples/widgets/tutorials/cannon/t13.py6
-rw-r--r--examples/widgets/tutorials/cannon/t14.py9
-rw-r--r--examples/widgets/tutorials/cannon/t4.py2
-rw-r--r--examples/widgets/tutorials/cannon/t5.py2
-rw-r--r--examples/widgets/tutorials/cannon/t6.py2
-rw-r--r--examples/widgets/tutorials/cannon/t7.py2
-rw-r--r--examples/widgets/tutorials/cannon/t8.py6
-rw-r--r--examples/widgets/tutorials/cannon/t9.py6
-rw-r--r--examples/widgets/tutorials/modelview/2_formatting.py2
-rw-r--r--examples/widgets/tutorials/modelview/3_changingmodel.py1
-rw-r--r--examples/widgets/tutorials/modelview/6_treeview.py1
-rw-r--r--examples/widgets/tutorials/modelview/7_selections.py1
-rw-r--r--examples/widgets/widgets/charactermap/characterwidget.py4
-rw-r--r--examples/widgets/widgets/charactermap/mainwindow.py2
-rw-r--r--examples/widgets/widgets/digitalclock/doc/digitalclock.rst2
-rw-r--r--examples/widgets/widgets/tetrix/tetrix.py49
-rw-r--r--examples/widgets/widgetsgallery/main.py1
-rw-r--r--examples/widgets/widgetsgallery/widgetgallery.py20
-rw-r--r--examples/xml/dombookmarks/dombookmarks.py69
-rw-r--r--examples/xml/dombookmarks/dombookmarks.pyproject2
-rw-r--r--examples/xml/dombookmarks/frank.xbel230
-rw-r--r--examples/xml/dombookmarks/jennifer.xbel82
897 files changed, 91277 insertions, 15281 deletions
diff --git a/examples/async/eratosthenes/doc/eratosthenes.rst b/examples/async/eratosthenes/doc/eratosthenes.rst
index fdb095a91..56e9f391b 100644
--- a/examples/async/eratosthenes/doc/eratosthenes.rst
+++ b/examples/async/eratosthenes/doc/eratosthenes.rst
@@ -1,18 +1,21 @@
-Async examples
-==============
+Async "Eratosthenes" Example
+============================
The Python language provides keywords for asynchronous operations, i.e.,
"async" to define coroutines or "await" to schedule asynchronous calls in the
event loop (see `PEP 492 <https://peps.python.org/pep-0492/>`_). It is up to
packages to implement an event loop, support for these keywords, and more.
-One such package is `trio`. Since both an async package and Qt itself work with
-event loops, special care must be taken to ensure that both event loops work
-with each other. trio offers a dedicated `low-level API
+The best-known package for this is `asyncio`. asyncio offers an API that allows
+for the asyncio event loop to be replaced by a custom implementation. Such an
+implementation is available with the `QtAsyncio` module. It is based on Qt and
+uses Qt's event loop in the backend.
+
+`trio` is another popular package that offers a dedicated `low-level API
<https://trio.readthedocs.io/en/stable/reference-lowlevel.html>`_ for more
-complicated use cases such as this. Specifically, there exists a function
-`start_guest_run` that enables running the Trio event loop as a "guest" inside
-another event loop - Qt's in our case.
+complex use cases. Specifically, there exists a function `start_guest_run` that
+enables running the Trio event loop as a "guest" inside another event loop -
+Qt's in our case, standing in contrast to asyncio's approach.
Based on this functionality, two examples for async usage with Qt have been
implemented: `eratosthenes` and `minimal`:
@@ -30,13 +33,7 @@ implemented: `eratosthenes` and `minimal`:
boilerplate code is essential for an async program with Qt and offers a
starting point for more complex programs.
-Both examples feature:
-
-1. A window class.
-2. An `AsyncHelper` class containing `start_guest_run` plus helpers and
- callbacks necessary for its invocation. The entry point for the Trio guest
- run is provided as an argument from outside, which can be any async function.
-
-While `eratosthenes` offloads the asynchronous logic that will run in trio's
-event loop into a separate class, `minimal` demonstrates that async functions
-can be integrated into any class, including subclasses of Qt classes.
+While `eratosthenes` offloads the asynchronous logic that will run in
+trio's/asyncio's event loop into a separate class, `minimal` demonstrates that
+async functions can be integrated into any class, including subclasses of Qt
+classes.
diff --git a/examples/async/eratosthenes/eratosthenes.pyproject b/examples/async/eratosthenes/eratosthenes.pyproject
index 8ea189b3c..f0de627ef 100644
--- a/examples/async/eratosthenes/eratosthenes.pyproject
+++ b/examples/async/eratosthenes/eratosthenes.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["eratosthenes.py"]
+ "files": ["eratosthenes_trio.py", "eratosthenes_asyncio.py"]
}
diff --git a/examples/async/eratosthenes/eratosthenes_asyncio.py b/examples/async/eratosthenes/eratosthenes_asyncio.py
new file mode 100644
index 000000000..c5d7fc2fe
--- /dev/null
+++ b/examples/async/eratosthenes/eratosthenes_asyncio.py
@@ -0,0 +1,134 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import (Qt, QObject, Signal, Slot)
+from PySide6.QtGui import (QColor, QFont, QPalette)
+from PySide6.QtWidgets import (QApplication, QGridLayout, QLabel, QMainWindow, QVBoxLayout, QWidget)
+
+import PySide6.QtAsyncio as QtAsyncio
+
+import asyncio
+import sys
+from random import randint
+
+
+class MainWindow(QMainWindow):
+
+ set_num = Signal(int, QColor)
+
+ def __init__(self, rows, cols):
+ super().__init__()
+
+ self.rows = rows
+ self.cols = cols
+
+ widget_central = QWidget()
+ self.setCentralWidget(widget_central)
+
+ layout_outer = QVBoxLayout(widget_central)
+
+ self.widget_outer_text = QLabel()
+ font = QFont()
+ font.setPointSize(14)
+ self.widget_outer_text.setFont(font)
+ layout_outer.addWidget(self.widget_outer_text, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ widget_inner_grid = QWidget()
+ layout_outer.addWidget(widget_inner_grid, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ self.layout_inner_grid = QGridLayout(widget_inner_grid)
+ k = 1
+ for i in range(self.rows):
+ for j in range(self.cols):
+ box = QLabel(f"{k}")
+ self.layout_inner_grid.addWidget(box, i, j, Qt.AlignmentFlag.AlignCenter)
+ k += 1
+
+ self.set_num.connect(self.set_num_handler)
+
+ @Slot(int, QColor)
+ def set_num_handler(self, i, color):
+ row = int((i - 1) / self.cols)
+ col = (i - 1) - (row * self.cols)
+ widget = self.layout_inner_grid.itemAtPosition(row, col).widget()
+
+ font = QFont()
+ font.setWeight(QFont.Bold)
+ palette = QPalette()
+ palette.setColor(QPalette.WindowText, color)
+ widget.setFont(font)
+ widget.setPalette(palette)
+
+
+class Eratosthenes(QObject):
+
+ """ This Sieve of Eratosthenes runs on a configurable tick (default
+ 0.1 seconds). At each tick, a new subroutine will be created
+ that will check multiples of the next prime number. Each of
+ these subroutines also operates on the same tick. """
+
+ def __init__(self, num, window, tick=0.1):
+ super().__init__()
+ self.num = num
+ self.sieve = [True] * self.num
+ self.base = 0
+ self.window = window
+ self.tick = tick
+ self.coroutines = []
+ self.done = False
+ self.loop = None
+
+ def get_tick(self):
+ return self.loop.time() + self.tick
+
+ async def start(self):
+ self.loop = asyncio.get_event_loop()
+ asyncio.create_task(self.update_text())
+ while self.base <= self.num / 2:
+ await asyncio.sleep(self.tick)
+ for i in range(self.base + 1, self.num):
+ if self.sieve[i]:
+ self.base = i
+ break
+ asyncio.create_task(self.mark_number(self.base + 1))
+ while sum(self.coroutines) > 0:
+ await asyncio.sleep(self.tick)
+ self.done = True
+
+ async def mark_number(self, base):
+ id = len(self.coroutines)
+ self.coroutines.append(1)
+ color = QColor(randint(64, 192), randint(64, 192), randint(64, 192))
+ for i in range(2 * base, self.num + 1, base):
+ if self.sieve[i - 1]:
+ self.sieve[i - 1] = False
+ self.window.set_num.emit(i, color)
+ await asyncio.sleep(self.tick)
+ self.coroutines[id] = 0
+
+ async def update_text(self):
+ while not self.done:
+ await asyncio.sleep(self.tick)
+ if int(self.loop.time() + self.tick) % 2:
+ text = "⚙️ ...Calculating prime numbers... ⚙️"
+ else:
+ text = "👩‍💻 ...Hacking the universe... 👩‍💻"
+ self.window.widget_outer_text.setText(text)
+
+ self.window.widget_outer_text.setText(
+ "🥳 Congratulations! You found all the prime numbers and solved mathematics. 🥳"
+ )
+
+
+if __name__ == "__main__":
+ rows = 40
+ cols = 40
+ num = rows * cols
+
+ app = QApplication(sys.argv)
+ main_window = MainWindow(rows, cols)
+ eratosthenes = Eratosthenes(num, main_window)
+
+ main_window.show()
+
+ QtAsyncio.run(eratosthenes.start(), handle_sigint=True)
diff --git a/examples/async/eratosthenes/eratosthenes.py b/examples/async/eratosthenes/eratosthenes_trio.py
index 5fb2a35be..89d3d1ce6 100644
--- a/examples/async/eratosthenes/eratosthenes.py
+++ b/examples/async/eratosthenes/eratosthenes_trio.py
@@ -61,7 +61,7 @@ class MainWindow(QMainWindow):
widget.setPalette(palette)
-class Eratosthenes():
+class Eratosthenes(QObject):
""" This Sieve of Eratosthenes runs on a configurable tick (default
0.1 seconds). At each tick, a new subroutine will be created
@@ -69,6 +69,7 @@ class Eratosthenes():
these subroutines also operates on the same tick. """
def __init__(self, num, window, tick=0.1):
+ super().__init__()
self.num = num
self.sieve = [True] * self.num
self.base = 0
@@ -119,14 +120,12 @@ class Eratosthenes():
class AsyncHelper(QObject):
- trigger_signal = Signal()
-
class ReenterQtObject(QObject):
""" This is a QObject to which an event will be posted, allowing
Trio to resume when the event is handled. event.fn() is the
next entry point of the Trio event loop. """
def event(self, event):
- if event.type() == QEvent.User + 1:
+ if event.type() == QEvent.Type.User + 1:
event.fn()
return True
return False
@@ -135,16 +134,17 @@ class AsyncHelper(QObject):
""" This is the QEvent that will be handled by the ReenterQtObject.
self.fn is the next entry point of the Trio event loop. """
def __init__(self, fn):
- super().__init__(QEvent.Type(QEvent.User + 1))
+ super().__init__(QEvent.Type(QEvent.Type.User + 1))
self.fn = fn
- def __init__(self, entry=None):
+ def __init__(self, worker, entry):
super().__init__()
self.reenter_qt = self.ReenterQtObject()
self.entry = entry
- def set_entry(self, entry):
- self.entry = entry
+ self.worker = worker
+ if hasattr(self.worker, "start_signal") and isinstance(self.worker.start_signal, Signal):
+ self.worker.start_signal.connect(self.launch_guest_run)
@Slot()
def launch_guest_run(self):
@@ -183,7 +183,7 @@ if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainWindow(rows, cols)
eratosthenes = Eratosthenes(num, main_window)
- async_helper = AsyncHelper(entry=eratosthenes.start)
+ async_helper = AsyncHelper(eratosthenes, eratosthenes.start)
# This establishes the entry point for the Trio guest run. It varies
# depending on how and when its event loop is to be triggered, e.g.,
diff --git a/examples/async/eratosthenes/requirements.txt b/examples/async/eratosthenes/requirements_trio.txt
index e2cc10204..e2cc10204 100644
--- a/examples/async/eratosthenes/requirements.txt
+++ b/examples/async/eratosthenes/requirements_trio.txt
diff --git a/examples/async/minimal/doc/minimal.rst b/examples/async/minimal/doc/minimal.rst
index dcab2fe29..54f847ea9 100644
--- a/examples/async/minimal/doc/minimal.rst
+++ b/examples/async/minimal/doc/minimal.rst
@@ -1,18 +1,21 @@
-Async examples
-==============
+Async "Minimal" Example
+=======================
The Python language provides keywords for asynchronous operations, i.e.,
"async" to define coroutines or "await" to schedule asynchronous calls in the
event loop (see `PEP 492 <https://peps.python.org/pep-0492/>`_). It is up to
packages to implement an event loop, support for these keywords, and more.
-One such package is `trio`. Since both an async package and Qt itself work with
-event loops, special care must be taken to ensure that both event loops work
-with each other. trio offers a dedicated `low-level API
+The best-known package for this is `asyncio`. asyncio offers an API that allows
+for the asyncio event loop to be replaced by a custom implementation. Such an
+implementation is available with the `QtAsyncio` module. It is based on Qt and
+uses Qt's event loop in the backend.
+
+`trio` is another popular package that offers a dedicated `low-level API
<https://trio.readthedocs.io/en/stable/reference-lowlevel.html>`_ for more
-complicated use cases such as this. Specifically, there exists a function
-`start_guest_run` that enables running the Trio event loop as a "guest" inside
-another event loop - Qt's in our case.
+complex use cases. Specifically, there exists a function `start_guest_run` that
+enables running the Trio event loop as a "guest" inside another event loop -
+Qt's in our case, standing in contrast to asyncio's approach.
Based on this functionality, two examples for async usage with Qt have been
implemented: `eratosthenes` and `minimal`:
@@ -29,13 +32,7 @@ implemented: `eratosthenes` and `minimal`:
boilerplate code is essential for an async program with Qt and offers a
starting point for more complex programs.
-Both examples feature:
-
-1. A window class.
-2. An `AsyncHelper` class containing `start_guest_run` plus helpers and
- callbacks necessary for its invocation. The entry point for the Trio guest
- run is provided as an argument from outside, which can be any async function.
-
-While `eratosthenes` offloads the asynchronous logic that will run in trio's
-event loop into a separate class, `minimal` demonstrates that async functions
-can be integrated into any class, including subclasses of Qt classes.
+While `eratosthenes` offloads the asynchronous logic that will run in
+trio's/asyncio's event loop into a separate class, `minimal` demonstrates that
+async functions can be integrated into any class, including subclasses of Qt
+classes.
diff --git a/examples/async/minimal/minimal.pyproject b/examples/async/minimal/minimal.pyproject
index 97ff6dbc5..b4b1a3f80 100644
--- a/examples/async/minimal/minimal.pyproject
+++ b/examples/async/minimal/minimal.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["minimal.py"]
+ "files": ["minimal_trio.py", "minimal_asyncio.py"]
}
diff --git a/examples/async/minimal/minimal_asyncio.py b/examples/async/minimal/minimal_asyncio.py
new file mode 100644
index 000000000..a6c4708b3
--- /dev/null
+++ b/examples/async/minimal/minimal_asyncio.py
@@ -0,0 +1,40 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt
+from PySide6.QtWidgets import (QApplication, QLabel, QMainWindow, QPushButton, QVBoxLayout, QWidget)
+
+import PySide6.QtAsyncio as QtAsyncio
+
+import asyncio
+import sys
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self):
+ super().__init__()
+
+ widget = QWidget()
+ self.setCentralWidget(widget)
+
+ layout = QVBoxLayout(widget)
+
+ self.text = QLabel("The answer is 42.")
+ layout.addWidget(self.text, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ async_trigger = QPushButton(text="What is the question?")
+ async_trigger.clicked.connect(lambda: asyncio.ensure_future(self.set_text()))
+ layout.addWidget(async_trigger, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ async def set_text(self):
+ await asyncio.sleep(1)
+ self.text.setText("What do you get if you multiply six by nine?")
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ main_window = MainWindow()
+ main_window.show()
+
+ QtAsyncio.run(handle_sigint=True)
diff --git a/examples/async/minimal/minimal.py b/examples/async/minimal/minimal_trio.py
index 1769a2dfc..5ae19fa36 100644
--- a/examples/async/minimal/minimal.py
+++ b/examples/async/minimal/minimal_trio.py
@@ -13,10 +13,10 @@ import trio
class MainWindow(QMainWindow):
- def __init__(self, async_signal):
- super().__init__()
+ start_signal = Signal()
- self.async_signal = async_signal
+ def __init__(self):
+ super().__init__()
widget = QWidget()
self.setCentralWidget(widget)
@@ -32,7 +32,7 @@ class MainWindow(QMainWindow):
@Slot()
def async_start(self):
- self.async_signal.emit()
+ self.start_signal.emit()
async def set_text(self):
await trio.sleep(1)
@@ -41,14 +41,12 @@ class MainWindow(QMainWindow):
class AsyncHelper(QObject):
- trigger_signal = Signal()
-
class ReenterQtObject(QObject):
""" This is a QObject to which an event will be posted, allowing
Trio to resume when the event is handled. event.fn() is the
next entry point of the Trio event loop. """
def event(self, event):
- if event.type() == QEvent.User + 1:
+ if event.type() == QEvent.Type.User + 1:
event.fn()
return True
return False
@@ -57,16 +55,17 @@ class AsyncHelper(QObject):
""" This is the QEvent that will be handled by the ReenterQtObject.
self.fn is the next entry point of the Trio event loop. """
def __init__(self, fn):
- super().__init__(QEvent.Type(QEvent.User + 1))
+ super().__init__(QEvent.Type(QEvent.Type.User + 1))
self.fn = fn
- def __init__(self, entry=None):
+ def __init__(self, worker, entry):
super().__init__()
self.reenter_qt = self.ReenterQtObject()
self.entry = entry
- def set_entry(self, entry):
- self.entry = entry
+ self.worker = worker
+ if hasattr(self.worker, "start_signal") and isinstance(self.worker.start_signal, Signal):
+ self.worker.start_signal.connect(self.launch_guest_run)
@Slot()
def launch_guest_run(self):
@@ -99,15 +98,8 @@ class AsyncHelper(QObject):
if __name__ == "__main__":
app = QApplication(sys.argv)
- async_helper = AsyncHelper()
- main_window = MainWindow(async_helper.trigger_signal)
- async_helper.set_entry(main_window.set_text)
-
- # This establishes the entry point for the Trio guest run. It varies
- # depending on how and when its event loop is to be triggered, e.g.,
- # at a specific moment like a button press (as here) or rather from
- # the beginning.
- async_helper.trigger_signal.connect(async_helper.launch_guest_run)
+ main_window = MainWindow()
+ async_helper = AsyncHelper(main_window, main_window.set_text)
main_window.show()
diff --git a/examples/async/minimal/requirements.txt b/examples/async/minimal/requirements_trio.txt
index ae0d704f0..ae0d704f0 100644
--- a/examples/async/minimal/requirements.txt
+++ b/examples/async/minimal/requirements_trio.txt
diff --git a/examples/axcontainer/axviewer/axviewer.py b/examples/axcontainer/axviewer/axviewer.py
index abc0599e5..bcd4c2714 100644
--- a/examples/axcontainer/axviewer/axviewer.py
+++ b/examples/axcontainer/axviewer/axviewer.py
@@ -7,7 +7,7 @@ import sys
from PySide6.QtAxContainer import QAxSelect, QAxWidget
from PySide6.QtGui import QAction
from PySide6.QtWidgets import (QApplication, QDialog,
- QMainWindow, QMessageBox, QToolBar)
+ QMainWindow, QMessageBox, QToolBar)
class MainWindow(QMainWindow):
@@ -25,7 +25,7 @@ class MainWindow(QMainWindow):
fileMenu.addAction(exitAction)
aboutMenu = self.menuBar().addMenu("&About")
- aboutQtAct = QAction("About &Qt", self, triggered=qApp.aboutQt)
+ aboutQtAct = QAction("About &Qt", self, triggered=qApp.aboutQt) # noqa: F821
aboutMenu.addAction(aboutQtAct)
self.axWidget = QAxWidget()
self.setCentralWidget(self.axWidget)
diff --git a/examples/bluetooth/btscanner/device.py b/examples/bluetooth/btscanner/device.py
index 02fc53f0b..c75f5b8a1 100644
--- a/examples/bluetooth/btscanner/device.py
+++ b/examples/bluetooth/btscanner/device.py
@@ -3,7 +3,7 @@
from PySide6.QtCore import QPoint, Qt, Slot
from PySide6.QtGui import QColor
-from PySide6.QtWidgets import QDialog, QListWidgetItem, QListWidget, QMenu
+from PySide6.QtWidgets import QDialog, QListWidgetItem, QMenu
from PySide6.QtBluetooth import (QBluetoothAddress, QBluetoothDeviceDiscoveryAgent,
QBluetoothDeviceInfo, QBluetoothLocalDevice)
@@ -46,7 +46,7 @@ class DeviceDiscoveryDialog(QDialog):
item = QListWidgetItem(label)
pairing_status = self._local_device.pairingStatus(info.address())
if (pairing_status == QBluetoothLocalDevice.Paired
- or pairing_status == QBluetoothLocalDevice.AuthorizedPaired):
+ or pairing_status == QBluetoothLocalDevice.AuthorizedPaired):
item.setForeground(QColor(Qt.green))
else:
item.setForeground(QColor(Qt.black))
@@ -123,7 +123,8 @@ class DeviceDiscoveryDialog(QDialog):
items = self._ui.list.findItems(address.toString(), Qt.MatchContains)
color = QColor(Qt.red)
- if pairing == QBluetoothLocalDevice.Paired or pairing == QBluetoothLocalDevice.AuthorizedPaired:
+ if (pairing == QBluetoothLocalDevice.Paired
+ or pairing == QBluetoothLocalDevice.AuthorizedPaired):
color = QColor(Qt.green)
for item in items:
item.setForeground(color)
diff --git a/examples/bluetooth/btscanner/main.py b/examples/bluetooth/btscanner/main.py
index bf8f596a3..a54a862a2 100644
--- a/examples/bluetooth/btscanner/main.py
+++ b/examples/bluetooth/btscanner/main.py
@@ -5,8 +5,7 @@
import sys
-from PySide6.QtCore import Qt
-from PySide6.QtWidgets import QApplication, QWidget
+from PySide6.QtWidgets import QApplication
from device import DeviceDiscoveryDialog
diff --git a/examples/bluetooth/btscanner/service.py b/examples/bluetooth/btscanner/service.py
index 73e174b82..31df8a9ea 100644
--- a/examples/bluetooth/btscanner/service.py
+++ b/examples/bluetooth/btscanner/service.py
@@ -1,7 +1,7 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import Qt, Slot
+from PySide6.QtCore import Slot
from PySide6.QtWidgets import QDialog
from PySide6.QtBluetooth import (QBluetoothAddress, QBluetoothServiceInfo,
QBluetoothServiceDiscoveryAgent, QBluetoothLocalDevice)
diff --git a/examples/bluetooth/btscanner/ui_device.py b/examples/bluetooth/btscanner/ui_device.py
index 0740afa7a..b443b2bc2 100644
--- a/examples/bluetooth/btscanner/ui_device.py
+++ b/examples/bluetooth/btscanner/ui_device.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'device.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.3
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
diff --git a/examples/bluetooth/btscanner/ui_service.py b/examples/bluetooth/btscanner/ui_service.py
index fc1f45fef..ccc36677a 100644
--- a/examples/bluetooth/btscanner/ui_service.py
+++ b/examples/bluetooth/btscanner/ui_service.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'service.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.3
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/App.qml b/examples/bluetooth/heartrate_game/HeartRateGame/App.qml
new file mode 100644
index 000000000..db6aa7145
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/App.qml
@@ -0,0 +1,99 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import HeartRateGame
+
+Item {
+ id: app
+
+ required property ConnectionHandler connectionHandler
+ required property DeviceFinder deviceFinder
+ required property DeviceHandler deviceHandler
+
+ anchors.fill: parent
+ opacity: 0.0
+
+ Behavior on opacity {
+ NumberAnimation {
+ duration: 500
+ }
+ }
+
+ property int __currentIndex: 0
+
+ TitleBar {
+ id: titleBar
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ currentIndex: app.__currentIndex
+
+ onTitleClicked: (index) => {
+ if (index < app.__currentIndex)
+ app.__currentIndex = index
+ }
+ }
+
+ StackLayout {
+ id: pageStack
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: titleBar.bottom
+ anchors.bottom: parent.bottom
+ currentIndex: app.__currentIndex
+
+ Connect {
+ connectionHandler: app.connectionHandler
+ deviceFinder: app.deviceFinder
+ deviceHandler: app.deviceHandler
+
+ onShowMeasurePage: app.__currentIndex = 1
+ }
+ Measure {
+ id: measurePage
+ deviceHandler: app.deviceHandler
+
+ onShowStatsPage: app.__currentIndex = 2
+ }
+ Stats {
+ deviceHandler: app.deviceHandler
+ }
+
+ onCurrentIndexChanged: {
+ if (currentIndex === 0)
+ measurePage.close()
+ }
+ }
+
+ BluetoothAlarmDialog {
+ id: btAlarmDialog
+ anchors.fill: parent
+ visible: !app.connectionHandler.alive || permissionError
+ permissionError: !app.connectionHandler.hasPermission
+ }
+
+ Keys.onReleased: (event) => {
+ switch (event.key) {
+ case Qt.Key_Escape:
+ case Qt.Key_Back:
+ {
+ if (app.__currentIndex > 0) {
+ app.__currentIndex = app.__currentIndex - 1
+ event.accepted = true
+ } else {
+ Qt.quit()
+ }
+ break
+ }
+ default:
+ break
+ }
+ }
+
+ Component.onCompleted: {
+ forceActiveFocus()
+ app.opacity = 1.0
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/BluetoothAlarmDialog.qml b/examples/bluetooth/heartrate_game/HeartRateGame/BluetoothAlarmDialog.qml
index 0be61e4f8..3687b1331 100644
--- a/examples/bluetooth/heartrate_game/qml/BluetoothAlarmDialog.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/BluetoothAlarmDialog.qml
@@ -5,6 +5,9 @@ import QtQuick
Item {
id: root
+
+ property bool permissionError: false
+
anchors.fill: parent
Rectangle {
@@ -51,7 +54,9 @@ Item {
wrapMode: Text.WordWrap
font.pixelSize: GameSettings.mediumFontSize
color: GameSettings.textColor
- text: qsTr("This application cannot be used without Bluetooth. Please switch Bluetooth ON to continue.")
+ text: root.permissionError
+ ? qsTr("Bluetooth permissions are not granted. Please grant the permissions in the system settings.")
+ : qsTr("This application cannot be used without Bluetooth. Please switch Bluetooth ON to continue.")
}
GameButton {
diff --git a/examples/bluetooth/heartrate_game/qml/BottomLine.qml b/examples/bluetooth/heartrate_game/HeartRateGame/BottomLine.qml
index caebc307e..caebc307e 100644
--- a/examples/bluetooth/heartrate_game/qml/BottomLine.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/BottomLine.qml
diff --git a/examples/bluetooth/heartrate_game/qml/Connect.qml b/examples/bluetooth/heartrate_game/HeartRateGame/Connect.qml
index d9ebbdc51..ca8ef2923 100644
--- a/examples/bluetooth/heartrate_game/qml/Connect.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/Connect.qml
@@ -1,10 +1,18 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+pragma ComponentBehavior: Bound
import QtQuick
-import Shared
+import HeartRateGame
GamePage {
+ id: connectPage
+
+ required property ConnectionHandler connectionHandler
+ required property DeviceFinder deviceFinder
+ required property DeviceHandler deviceHandler
+
+ signal showMeasurePage
errorMessage: deviceFinder.error
infoMessage: deviceFinder.info
@@ -12,17 +20,16 @@ GamePage {
Rectangle {
id: viewContainer
anchors.top: parent.top
- anchors.bottom:
- // only BlueZ platform has address type selection
- connectionHandler.requiresAddressType ? addressTypeButton.top : searchButton.top
- anchors.topMargin: GameSettings.fieldMargin + messageHeight
+ // only BlueZ platform has address type selection
+ anchors.bottom: connectPage.connectionHandler.requiresAddressType ? addressTypeButton.top
+ : searchButton.top
+ anchors.topMargin: GameSettings.fieldMargin + connectPage.messageHeight
anchors.bottomMargin: GameSettings.fieldMargin
anchors.horizontalCenter: parent.horizontalCenter
- width: parent.width - GameSettings.fieldMargin*2
+ width: parent.width - GameSettings.fieldMargin * 2
color: GameSettings.viewColor
radius: GameSettings.buttonRadius
-
Text {
id: title
width: parent.width
@@ -34,40 +41,43 @@ GamePage {
text: qsTr("FOUND DEVICES")
BottomLine {
- height: 1;
+ height: 1
width: parent.width
color: "#898989"
}
}
-
ListView {
id: devices
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.top: title.bottom
- model: deviceFinder.devices
+ model: connectPage.deviceFinder.devices
clip: true
delegate: Rectangle {
id: box
- height:GameSettings.fieldHeight * 1.2
+
+ required property int index
+ required property var modelData
+
+ height: GameSettings.fieldHeight * 1.2
width: devices.width
color: index % 2 === 0 ? GameSettings.delegate1Color : GameSettings.delegate2Color
MouseArea {
- anchors.fill: parent
+ anchors.fill: parent
onClicked: {
- deviceFinder.connectToService(modelData.deviceAddress);
- app.showPage("Measure.qml")
+ connectPage.deviceFinder.connectToService(box.modelData.deviceAddress)
+ connectPage.showMeasurePage()
}
}
Text {
id: device
font.pixelSize: GameSettings.smallFontSize
- text: modelData.deviceName
+ text: box.modelData.deviceName
anchors.top: parent.top
anchors.topMargin: parent.height * 0.1
anchors.leftMargin: parent.height * 0.1
@@ -78,7 +88,7 @@ GamePage {
Text {
id: deviceAddress
font.pixelSize: GameSettings.smallFontSize
- text: modelData.deviceAddress
+ text: box.modelData.deviceAddress
anchors.bottom: parent.bottom
anchors.bottomMargin: parent.height * 0.1
anchors.rightMargin: parent.height * 0.1
@@ -93,23 +103,31 @@ GamePage {
id: addressTypeButton
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: searchButton.top
- anchors.bottomMargin: GameSettings.fieldMargin*0.5
+ anchors.bottomMargin: GameSettings.fieldMargin * 0.5
width: viewContainer.width
height: GameSettings.fieldHeight
- visible: connectionHandler.requiresAddressType // only required on BlueZ
+ visible: connectPage.connectionHandler.requiresAddressType // only required on BlueZ
state: "public"
- onClicked: state == "public" ? state = "random" : state = "public"
+ onClicked: state === "public" ? state = "random" : state = "public"
states: [
State {
name: "public"
- PropertyChanges { target: addressTypeText; text: qsTr("Public Address") }
- PropertyChanges { target: deviceHandler; addressType: AddressType.PUBLIC_ADDRESS }
+ PropertyChanges {
+ addressTypeText.text: qsTr("Public Address")
+ }
+ PropertyChanges {
+ connectPage.deviceHandler.addressType: DeviceHandler.PUBLIC_ADDRESS
+ }
},
State {
name: "random"
- PropertyChanges { target: addressTypeText; text: qsTr("Random Address") }
- PropertyChanges { target: deviceHandler; addressType: AddressType.RANDOM_ADDRESS }
+ PropertyChanges {
+ addressTypeText.text: qsTr("Random Address")
+ }
+ PropertyChanges {
+ connectPage.deviceHandler.addressType: DeviceHandler.RANDOM_ADDRESS
+ }
}
]
@@ -128,8 +146,8 @@ GamePage {
anchors.bottomMargin: GameSettings.fieldMargin
width: viewContainer.width
height: GameSettings.fieldHeight
- enabled: !deviceFinder.scanning
- onClicked: deviceFinder.startSearch()
+ enabled: !connectPage.deviceFinder.scanning
+ onClicked: connectPage.deviceFinder.startSearch()
Text {
anchors.centerIn: parent
diff --git a/examples/bluetooth/heartrate_game/qml/GameButton.qml b/examples/bluetooth/heartrate_game/HeartRateGame/GameButton.qml
index 3ce9d66fd..8e8760102 100644
--- a/examples/bluetooth/heartrate_game/qml/GameButton.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/GameButton.qml
@@ -2,7 +2,6 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
-import "."
Rectangle {
id: button
@@ -14,10 +13,9 @@ Rectangle {
property color pressedColor: GameSettings.buttonPressedColor
property color disabledColor: GameSettings.disabledButtonColor
- signal clicked()
+ signal clicked
- function checkColor()
- {
+ function checkColor() {
if (!button.enabled) {
button.color = disabledColor
} else {
@@ -31,10 +29,10 @@ Rectangle {
MouseArea {
id: mouseArea
anchors.fill: parent
- onPressed: checkColor()
- onReleased: checkColor()
+ onPressed: button.checkColor()
+ onReleased: button.checkColor()
onClicked: {
- checkColor()
+ button.checkColor()
button.clicked()
}
}
diff --git a/examples/bluetooth/heartrate_game/qml/GamePage.qml b/examples/bluetooth/heartrate_game/HeartRateGame/GamePage.qml
index 25a5bb3d1..249f94186 100644
--- a/examples/bluetooth/heartrate_game/qml/GamePage.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/GamePage.qml
@@ -2,10 +2,9 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
-import "."
Item {
- anchors.fill: parent
+ id: page
property string errorMessage: ""
property string infoMessage: ""
@@ -13,23 +12,14 @@ Item {
property bool hasError: errorMessage != ""
property bool hasInfo: infoMessage != ""
- function init()
- {
- }
-
- function close()
- {
- app.prevPage()
- }
-
Rectangle {
id: msg
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
height: GameSettings.fieldHeight
- color: hasError ? GameSettings.errorColor : GameSettings.infoColor
- visible: hasError || hasInfo
+ color: page.hasError ? GameSettings.errorColor : GameSettings.infoColor
+ visible: page.hasError || page.hasInfo
Text {
id: error
@@ -40,7 +30,7 @@ Item {
font.pixelSize: GameSettings.smallFontSize
fontSizeMode: Text.Fit
color: GameSettings.textColor
- text: hasError ? errorMessage : infoMessage
+ text: page.hasError ? page.errorMessage : page.infoMessage
}
}
}
diff --git a/examples/bluetooth/heartrate_game/qml/GameSettings.qml b/examples/bluetooth/heartrate_game/HeartRateGame/GameSettings.qml
index f265b73c3..0fe854609 100644
--- a/examples/bluetooth/heartrate_game/qml/GameSettings.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/GameSettings.qml
@@ -41,14 +41,11 @@ Item {
property real buttonRadius: buttonHeight * 0.1
// Some help functions
- function widthForHeight(h, ss)
- {
- return h/ss.height * ss.width;
+ function widthForHeight(h, ss) {
+ return h / ss.height * ss.width
}
- function heightForWidth(w, ss)
- {
- return w/ss.width * ss.height;
+ function heightForWidth(w, ss) {
+ return w / ss.width * ss.height
}
-
}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/Main.qml b/examples/bluetooth/heartrate_game/HeartRateGame/Main.qml
new file mode 100644
index 000000000..e26f9b004
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/Main.qml
@@ -0,0 +1,71 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+import QtQuick
+import QtQuick.Window
+import HeartRateGame
+
+Window {
+ id: wroot
+ visible: true
+ width: 720 * .7
+ height: 1240 * .7
+ title: qsTr("HeartRateGame")
+ color: GameSettings.backgroundColor
+
+ required property ConnectionHandler connectionHandler
+ required property DeviceFinder deviceFinder
+ required property DeviceHandler deviceHandler
+
+ Component.onCompleted: {
+ GameSettings.wWidth = Qt.binding(function () {
+ return width
+ })
+ GameSettings.wHeight = Qt.binding(function () {
+ return height
+ })
+ }
+
+ Loader {
+ id: splashLoader
+ anchors.fill: parent
+ asynchronous: false
+ visible: true
+
+ sourceComponent: SplashScreen {
+ appIsReady: appLoader.status === Loader.Ready
+ onReadyChanged: {
+ if (ready) {
+ appLoader.visible = true
+ splashLoader.visible = false
+ splashLoader.active = false
+ }
+ }
+ }
+
+ onStatusChanged: {
+ if (status === Loader.Ready)
+ appLoader.active = true
+ }
+ }
+
+ Loader {
+ id: appLoader
+ anchors.fill: parent
+ active: false
+ asynchronous: true
+ visible: false
+
+ sourceComponent: App {
+ connectionHandler: wroot.connectionHandler
+ deviceFinder: wroot.deviceFinder
+ deviceHandler: wroot.deviceHandler
+ }
+
+ onStatusChanged: {
+ if (status === Loader.Error)
+ Qt.quit()
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/Measure.qml b/examples/bluetooth/heartrate_game/HeartRateGame/Measure.qml
index c434d5114..48e84e762 100644
--- a/examples/bluetooth/heartrate_game/qml/Measure.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/Measure.qml
@@ -2,49 +2,49 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
+import HeartRateGame
GamePage {
id: measurePage
+ required property DeviceHandler deviceHandler
+
errorMessage: deviceHandler.error
infoMessage: deviceHandler.info
- property real __timeCounter: 0;
+ property real __timeCounter: 0
property real __maxTimeCount: 60
property string relaxText: qsTr("Relax!\nWhen you are ready, press Start. You have %1s time to increase heartrate so much as possible.\nGood luck!").arg(__maxTimeCount)
- function close()
- {
- deviceHandler.stopMeasurement();
- deviceHandler.disconnectService();
- app.prevPage();
+ signal showStatsPage
+
+ function close() {
+ deviceHandler.stopMeasurement()
+ deviceHandler.disconnectService()
}
- function start()
- {
+ function start() {
if (!deviceHandler.measuring) {
- __timeCounter = 0;
+ __timeCounter = 0
deviceHandler.startMeasurement()
}
}
- function stop()
- {
- if (deviceHandler.measuring) {
+ function stop() {
+ if (deviceHandler.measuring)
deviceHandler.stopMeasurement()
- }
- app.showPage("Stats.qml")
+ measurePage.showStatsPage()
}
Timer {
id: measureTimer
interval: 1000
- running: deviceHandler.measuring
+ running: measurePage.deviceHandler.measuring
repeat: true
onTriggered: {
- __timeCounter++;
- if (__timeCounter >= __maxTimeCount)
+ measurePage.__timeCounter++
+ if (measurePage.__timeCounter >= measurePage.__maxTimeCount)
measurePage.stop()
}
}
@@ -56,22 +56,23 @@ GamePage {
Rectangle {
id: circle
anchors.horizontalCenter: parent.horizontalCenter
- width: Math.min(measurePage.width, measurePage.height-GameSettings.fieldHeight*4) - 2*GameSettings.fieldMargin
+ width: Math.min(measurePage.width, measurePage.height - GameSettings.fieldHeight * 4)
+ - 2 * GameSettings.fieldMargin
height: width
- radius: width*0.5
+ radius: width * 0.5
color: GameSettings.viewColor
Text {
id: hintText
anchors.centerIn: parent
- anchors.verticalCenterOffset: -parent.height*0.1
+ anchors.verticalCenterOffset: -parent.height * 0.1
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
width: parent.width * 0.8
height: parent.height * 0.6
wrapMode: Text.WordWrap
text: measurePage.relaxText
- visible: !deviceHandler.measuring
+ visible: !measurePage.deviceHandler.measuring
color: GameSettings.textColor
fontSizeMode: Text.Fit
minimumPixelSize: 10
@@ -81,33 +82,33 @@ GamePage {
Text {
id: text
anchors.centerIn: parent
- anchors.verticalCenterOffset: -parent.height*0.15
+ anchors.verticalCenterOffset: -parent.height * 0.15
font.pixelSize: parent.width * 0.45
- text: deviceHandler.hr
- visible: deviceHandler.measuring
+ text: measurePage.deviceHandler.hr
+ visible: measurePage.deviceHandler.measuring
color: GameSettings.textColor
}
Item {
id: minMaxContainer
anchors.horizontalCenter: parent.horizontalCenter
- width: parent.width*0.7
+ width: parent.width * 0.7
height: parent.height * 0.15
anchors.bottom: parent.bottom
- anchors.bottomMargin: parent.height*0.16
- visible: deviceHandler.measuring
+ anchors.bottomMargin: parent.height * 0.16
+ visible: measurePage.deviceHandler.measuring
Text {
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
- text: deviceHandler.minHR
+ text: measurePage.deviceHandler.minHR
color: GameSettings.textColor
font.pixelSize: GameSettings.hugeFontSize
Text {
anchors.left: parent.left
anchors.bottom: parent.top
- font.pixelSize: parent.font.pixelSize*0.8
+ font.pixelSize: parent.font.pixelSize * 0.8
color: parent.color
text: "MIN"
}
@@ -116,14 +117,14 @@ GamePage {
Text {
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
- text: deviceHandler.maxHR
+ text: measurePage.deviceHandler.maxHR
color: GameSettings.textColor
font.pixelSize: GameSettings.hugeFontSize
Text {
anchors.right: parent.right
anchors.bottom: parent.top
- font.pixelSize: parent.font.pixelSize*0.8
+ font.pixelSize: parent.font.pixelSize * 0.8
color: parent.color
text: "MAX"
}
@@ -140,13 +141,25 @@ GamePage {
smooth: true
antialiasing: true
- SequentialAnimation{
+ SequentialAnimation {
id: heartAnim
- running: deviceHandler.alive
+ running: measurePage.deviceHandler.alive
loops: Animation.Infinite
alwaysRunToEnd: true
- PropertyAnimation { target: heart; property: "scale"; to: 1.2; duration: 500; easing.type: Easing.InQuad }
- PropertyAnimation { target: heart; property: "scale"; to: 1.0; duration: 500; easing.type: Easing.OutQuad }
+ PropertyAnimation {
+ target: heart
+ property: "scale"
+ to: 1.2
+ duration: 500
+ easing.type: Easing.InQuad
+ }
+ PropertyAnimation {
+ target: heart
+ property: "scale"
+ to: 1.0
+ duration: 500
+ easing.type: Easing.OutQuad
+ }
}
}
}
@@ -163,13 +176,15 @@ GamePage {
height: parent.height
radius: parent.radius
color: GameSettings.sliderColor
- width: Math.min(1.0,__timeCounter / __maxTimeCount) * parent.width
+ width: Math.min(
+ 1.0,
+ measurePage.__timeCounter / measurePage.__maxTimeCount) * parent.width
}
Text {
anchors.centerIn: parent
color: "gray"
- text: (__maxTimeCount - __timeCounter).toFixed(0) + " s"
+ text: (measurePage.__maxTimeCount - measurePage.__timeCounter).toFixed(0) + " s"
font.pixelSize: GameSettings.bigFontSize
}
}
@@ -182,10 +197,10 @@ GamePage {
anchors.bottomMargin: GameSettings.fieldMargin
width: circle.width
height: GameSettings.fieldHeight
- enabled: !deviceHandler.measuring
+ enabled: !measurePage.deviceHandler.measuring
radius: GameSettings.buttonRadius
- onClicked: start()
+ onClicked: measurePage.start()
Text {
anchors.centerIn: parent
diff --git a/examples/bluetooth/heartrate_game/qml/SplashScreen.qml b/examples/bluetooth/heartrate_game/HeartRateGame/SplashScreen.qml
index 23f71f08f..2f9ac1b3f 100644
--- a/examples/bluetooth/heartrate_game/qml/SplashScreen.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/SplashScreen.qml
@@ -2,33 +2,20 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
-import "."
+import HeartRateGame
Item {
id: root
- anchors.fill: parent
property bool appIsReady: false
property bool splashIsReady: false
-
property bool ready: appIsReady && splashIsReady
- onReadyChanged: if (ready) readyToGo();
- signal readyToGo()
-
- function appReady()
- {
- appIsReady = true
- }
-
- function errorInLoadingApp()
- {
- Qt.quit()
- }
+ anchors.fill: parent
Image {
anchors.centerIn: parent
- width: Math.min(parent.height, parent.width)*0.6
+ width: Math.min(parent.height, parent.width) * 0.6
height: GameSettings.heightForWidth(width, sourceSize)
source: "images/logo.png"
}
diff --git a/examples/bluetooth/heartrate_game/qml/Stats.qml b/examples/bluetooth/heartrate_game/HeartRateGame/Stats.qml
index b818e85e4..22cdd5365 100644
--- a/examples/bluetooth/heartrate_game/qml/Stats.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/Stats.qml
@@ -2,8 +2,12 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
+import HeartRateGame
GamePage {
+ id: statsPage
+
+ required property DeviceHandler deviceHandler
Column {
anchors.centerIn: parent
@@ -18,9 +22,9 @@ GamePage {
Text {
anchors.horizontalCenter: parent.horizontalCenter
- font.pixelSize: GameSettings.giganticFontSize*3
+ font.pixelSize: GameSettings.giganticFontSize * 3
color: GameSettings.textColor
- text: (deviceHandler.maxHR - deviceHandler.minHR).toFixed(0)
+ text: (statsPage.deviceHandler.maxHR - statsPage.deviceHandler.minHR).toFixed(0)
}
Item {
@@ -30,23 +34,22 @@ GamePage {
StatsLabel {
title: qsTr("MIN")
- value: deviceHandler.minHR.toFixed(0)
+ value: statsPage.deviceHandler.minHR.toFixed(0)
}
StatsLabel {
title: qsTr("MAX")
- value: deviceHandler.maxHR.toFixed(0)
+ value: statsPage.deviceHandler.maxHR.toFixed(0)
}
StatsLabel {
title: qsTr("AVG")
- value: deviceHandler.average.toFixed(1)
+ value: statsPage.deviceHandler.average.toFixed(1)
}
-
StatsLabel {
title: qsTr("CALORIES")
- value: deviceHandler.calories.toFixed(3)
+ value: statsPage.deviceHandler.calories.toFixed(3)
}
}
}
diff --git a/examples/bluetooth/heartrate_game/qml/StatsLabel.qml b/examples/bluetooth/heartrate_game/HeartRateGame/StatsLabel.qml
index cd5cda5be..0ea4249a7 100644
--- a/examples/bluetooth/heartrate_game/qml/StatsLabel.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/StatsLabel.qml
@@ -2,7 +2,6 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
-import "."
Item {
height: GameSettings.fieldHeight
diff --git a/examples/bluetooth/heartrate_game/qml/TitleBar.qml b/examples/bluetooth/heartrate_game/HeartRateGame/TitleBar.qml
index b7de77c4b..016a44358 100644
--- a/examples/bluetooth/heartrate_game/qml/TitleBar.qml
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/TitleBar.qml
@@ -1,50 +1,54 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+pragma ComponentBehavior: Bound
import QtQuick
-Rectangle {
+Rectangle {
id: titleBar
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.right: parent.right
- height: GameSettings.fieldHeight
- color: GameSettings.viewColor
property var __titles: ["CONNECT", "MEASURE", "STATS"]
property int currentIndex: 0
signal titleClicked(int index)
+ height: GameSettings.fieldHeight
+ color: GameSettings.viewColor
+
Repeater {
model: 3
Text {
+ id: caption
+ required property int index
width: titleBar.width / 3
height: titleBar.height
x: index * width
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
- text: __titles[index]
+ text: titleBar.__titles[index]
font.pixelSize: GameSettings.tinyFontSize
- color: titleBar.currentIndex === index ? GameSettings.textColor : GameSettings.disabledTextColor
+ color: titleBar.currentIndex === index ? GameSettings.textColor
+ : GameSettings.disabledTextColor
MouseArea {
anchors.fill: parent
- onClicked: titleClicked(index)
+ onClicked: titleBar.titleClicked(caption.index)
}
}
}
-
Item {
anchors.bottom: parent.bottom
width: parent.width / 3
height: parent.height
- x: currentIndex * width
+ x: titleBar.currentIndex * width
- BottomLine{}
+ BottomLine {}
- Behavior on x { NumberAnimation { duration: 200 } }
+ Behavior on x {
+ NumberAnimation {
+ duration: 200
+ }
+ }
}
-
}
diff --git a/examples/bluetooth/heartrate_game/qml/images/bt_off_to_on.png b/examples/bluetooth/heartrate_game/HeartRateGame/images/bt_off_to_on.png
index 5ea1f3f06..5ea1f3f06 100644
--- a/examples/bluetooth/heartrate_game/qml/images/bt_off_to_on.png
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/images/bt_off_to_on.png
Binary files differ
diff --git a/examples/bluetooth/heartrate_game/qml/images/heart.png b/examples/bluetooth/heartrate_game/HeartRateGame/images/heart.png
index f2b3c0a3e..f2b3c0a3e 100644
--- a/examples/bluetooth/heartrate_game/qml/images/heart.png
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/images/heart.png
Binary files differ
diff --git a/examples/bluetooth/heartrate_game/qml/images/logo.png b/examples/bluetooth/heartrate_game/HeartRateGame/images/logo.png
index ea0af7e00..ea0af7e00 100644
--- a/examples/bluetooth/heartrate_game/qml/images/logo.png
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/images/logo.png
Binary files differ
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/qmldir b/examples/bluetooth/heartrate_game/HeartRateGame/qmldir
new file mode 100644
index 000000000..2baa74a92
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/qmldir
@@ -0,0 +1,14 @@
+module HeartRateGame
+App 1.0 App.qml
+BluetoothAlarmDialog 1.0 BluetoothAlarmDialog.qml
+BottomLine 1.0 BottomLine.qml
+Connect 1.0 Connect.qml
+GameButton 1.0 GameButton.qml
+GamePage 1.0 GamePage.qml
+singleton GameSettings 1.0 GameSettings.qml
+Measure 1.0 Measure.qml
+SplashScreen 1.0 SplashScreen.qml
+Stats 1.0 Stats.qml
+StatsLabel 1.0 StatsLabel.qml
+TitleBar 1.0 TitleBar.qml
+Main 1.0 Main.qml
diff --git a/examples/bluetooth/heartrate_game/connectionhandler.py b/examples/bluetooth/heartrate_game/connectionhandler.py
index 5bd7bfbb2..7bf60bbc5 100644
--- a/examples/bluetooth/heartrate_game/connectionhandler.py
+++ b/examples/bluetooth/heartrate_game/connectionhandler.py
@@ -5,13 +5,16 @@ import sys
from PySide6.QtBluetooth import QBluetoothLocalDevice
from PySide6.QtQml import QmlElement
-from PySide6.QtCore import QObject, Property, Signal, Slot
+from PySide6.QtCore import QObject, Property, Signal, Slot, Qt
-from heartrate_global import simulator
+from heartrate_global import simulator, is_android, error_not_nuitka
+
+if is_android or sys.platform == "darwin":
+ from PySide6.QtCore import QBluetoothPermission
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "Shared"
+QML_IMPORT_NAME = "HeartRateGame"
QML_IMPORT_MAJOR_VERSION = 1
@@ -22,14 +25,14 @@ class ConnectionHandler(QObject):
def __init__(self, parent=None):
super().__init__(parent)
- self.m_localDevice = QBluetoothLocalDevice()
- self.m_localDevice.hostModeStateChanged.connect(self.hostModeChanged)
+ self.m_hasPermission = False
+ self.initLocalDevice()
@Property(bool, notify=deviceChanged)
def alive(self):
if sys.platform == "darwin":
return True
- if simulator:
+ if simulator():
return True
return (self.m_localDevice.isValid()
and self.m_localDevice.hostMode() != QBluetoothLocalDevice.HostPoweredOff)
@@ -46,6 +49,29 @@ class ConnectionHandler(QObject):
def address(self):
return self.m_localDevice.address().toString()
+ @Property(bool, notify=deviceChanged)
+ def hasPermission(self):
+ return self.m_hasPermission
+
@Slot(QBluetoothLocalDevice.HostMode)
def hostModeChanged(self, mode):
self.deviceChanged.emit()
+
+ def initLocalDevice(self):
+ if is_android or sys.platform == "darwin":
+ error_not_nuitka()
+ permission = QBluetoothPermission()
+ permission.setCommunicationModes(QBluetoothPermission.Access)
+ permission_status = qApp.checkPermission(permission) # noqa: F821
+ if permission_status == Qt.PermissionStatus.Undetermined:
+ qApp.requestPermission(permission, self, self.initLocalDevice) # noqa: F821
+ return
+ if permission_status == Qt.PermissionStatus.Denied:
+ return
+ elif permission_status == Qt.PermissionStatus.Granted:
+ print("[HeartRateGame] Bluetooth Permission Granted")
+
+ self.m_localDevice = QBluetoothLocalDevice()
+ self.m_localDevice.hostModeStateChanged.connect(self.hostModeChanged)
+ self.m_hasPermission = True
+ self.deviceChanged.emit()
diff --git a/examples/bluetooth/heartrate_game/devicefinder.py b/examples/bluetooth/heartrate_game/devicefinder.py
index c69f8ab89..e581d12ec 100644
--- a/examples/bluetooth/heartrate_game/devicefinder.py
+++ b/examples/bluetooth/heartrate_game/devicefinder.py
@@ -1,18 +1,22 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import sys
from PySide6.QtBluetooth import (QBluetoothDeviceDiscoveryAgent,
QBluetoothDeviceInfo)
from PySide6.QtQml import QmlElement
-from PySide6.QtCore import QTimer, Property, Signal, Slot
+from PySide6.QtCore import QTimer, Property, Signal, Slot, Qt
from bluetoothbaseclass import BluetoothBaseClass
from deviceinfo import DeviceInfo
-from heartrate_global import simulator
+from heartrate_global import simulator, is_android, error_not_nuitka
+
+if is_android or sys.platform == "darwin":
+ from PySide6.QtCore import QBluetoothPermission
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "Shared"
+QML_IMPORT_NAME = "HeartRateGame"
QML_IMPORT_MAJOR_VERSION = 1
@@ -36,20 +40,33 @@ class DeviceFinder(BluetoothBaseClass):
self.m_deviceDiscoveryAgent.finished.connect(self.scanFinished)
self.m_deviceDiscoveryAgent.canceled.connect(self.scanFinished)
#! [devicediscovery-1]
- if simulator:
+ if simulator():
self.m_demoTimer.setSingleShot(True)
self.m_demoTimer.setInterval(2000)
self.m_demoTimer.timeout.connect(self.scanFinished)
@Slot()
def startSearch(self):
+ if is_android or sys.platform == "darwin":
+ error_not_nuitka()
+ permission = QBluetoothPermission()
+ permission.setCommunicationModes(QBluetoothPermission.Access)
+ permission_status = qApp.checkPermission(permission) # noqa: F821
+ if permission_status == Qt.PermissionStatus.Undetermined:
+ qApp.requestPermission(permission, self, self.startSearch) # noqa: F82 1
+ return
+ elif permission_status == Qt.PermissionStatus.Denied:
+ return
+ elif permission_status == Qt.PermissionStatus.Granted:
+ print("[HeartRateGame] Bluetooth Permission Granted")
+
self.clearMessages()
self.m_deviceHandler.setDevice(None)
self.m_devices.clear()
self.devicesChanged.emit()
- if simulator:
+ if simulator():
self.m_demoTimer.start()
else:
#! [devicediscovery-2]
@@ -82,7 +99,7 @@ class DeviceFinder(BluetoothBaseClass):
@Slot()
def scanFinished(self):
- if simulator:
+ if simulator():
# Only for testing
for i in range(5):
self.m_devices.append(DeviceInfo(QBluetoothDeviceInfo()))
@@ -113,7 +130,7 @@ class DeviceFinder(BluetoothBaseClass):
@Property(bool, notify=scanningChanged)
def scanning(self):
- if simulator:
+ if simulator():
return self.m_demoTimer.isActive()
return self.m_deviceDiscoveryAgent.isActive()
diff --git a/examples/bluetooth/heartrate_game/devicehandler.py b/examples/bluetooth/heartrate_game/devicehandler.py
index 421102b28..df34052b8 100644
--- a/examples/bluetooth/heartrate_game/devicehandler.py
+++ b/examples/bluetooth/heartrate_game/devicehandler.py
@@ -10,7 +10,7 @@ from PySide6.QtBluetooth import (QLowEnergyCharacteristic,
QLowEnergyDescriptor,
QLowEnergyService,
QBluetoothUuid)
-from PySide6.QtQml import QmlNamedElement, QmlUncreatable
+from PySide6.QtQml import QmlElement
from PySide6.QtCore import (QByteArray, QDateTime, QRandomGenerator, QTimer,
Property, Signal, Slot, QEnum)
@@ -20,12 +20,11 @@ from heartrate_global import simulator
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "Shared"
+QML_IMPORT_NAME = "HeartRateGame"
QML_IMPORT_MAJOR_VERSION = 1
-@QmlNamedElement("AddressType")
-@QmlUncreatable("Enum is not a type")
+@QmlElement
class DeviceHandler(BluetoothBaseClass):
@QEnum
@@ -62,7 +61,7 @@ class DeviceHandler(BluetoothBaseClass):
self.m_demoTimer = QTimer()
- if simulator:
+ if simulator():
self.m_demoTimer.setSingleShot(False)
self.m_demoTimer.setInterval(2000)
self.m_demoTimer.timeout.connect(self.updateDemoHR)
@@ -99,27 +98,27 @@ class DeviceHandler(BluetoothBaseClass):
self.clearMessages()
self.m_currentDevice = device
- if simulator:
+ if simulator():
self.info = "Demo device connected."
return
# Disconnect and delete old connection
if self.m_control:
self.m_control.disconnectFromDevice()
- m_control = None
+ self.m_control = None
# Create new controller and connect it if device available
if self.m_currentDevice:
# Make connections
#! [Connect-Signals-1]
- self.m_control = QLowEnergyController.createCentral(self.m_currentDevice.getDevice(), self)
+ self.m_control = QLowEnergyController.createCentral(self.m_currentDevice.device(), self)
#! [Connect-Signals-1]
self.m_control.setRemoteAddressType(self.m_addressType)
#! [Connect-Signals-2]
- m_control.serviceDiscovered.connect(self.serviceDiscovered)
- m_control.discoveryFinished.connect(self.serviceScanDone)
+ self.m_control.serviceDiscovered.connect(self.serviceDiscovered)
+ self.m_control.discoveryFinished.connect(self.serviceScanDone)
self.m_control.errorOccurred.connect(self.controllerErrorOccurred)
self.m_control.connected.connect(self.controllerConnected)
@@ -167,7 +166,8 @@ class DeviceHandler(BluetoothBaseClass):
#! [Filter HeartRate service 2]
# If heartRateService found, create new service
if self.m_foundHeartRateService:
- self.m_service = self.m_control.createServiceObject(QBluetoothUuid(QBluetoothUuid.ServiceClassUuid.HeartRate), self)
+ self.m_service = self.m_control.createServiceObject(
+ QBluetoothUuid(QBluetoothUuid.ServiceClassUuid.HeartRate), self)
if self.m_service:
self.m_service.stateChanged.connect(self.serviceStateChanged)
@@ -183,14 +183,16 @@ class DeviceHandler(BluetoothBaseClass):
@Slot(QLowEnergyService.ServiceState)
def serviceStateChanged(self, switch):
if switch == QLowEnergyService.RemoteServiceDiscovering:
- self.setInfo(tr("Discovering services..."))
+ self.info = "Discovering services..."
elif switch == QLowEnergyService.RemoteServiceDiscovered:
- self.setInfo(tr("Service discovered."))
- hrChar = m_service.characteristic(QBluetoothUuid(QBluetoothUuid.CharacteristicType.HeartRateMeasurement))
+ self.info = "Service discovered."
+ hrChar = self.m_service.characteristic(
+ QBluetoothUuid(QBluetoothUuid.CharacteristicType.HeartRateMeasurement))
if hrChar.isValid():
- self.m_notificationDesc = hrChar.descriptor(QBluetoothUuid.DescriptorType.ClientCharacteristicConfiguration)
+ self.m_notificationDesc = hrChar.descriptor(
+ QBluetoothUuid.DescriptorType.ClientCharacteristicConfiguration)
if self.m_notificationDesc.isValid():
- self.m_service.writeDescriptor(m_notificationDesc,
+ self.m_service.writeDescriptor(self.m_notificationDesc,
QByteArray.fromHex(b"0100"))
else:
self.error = "HR Data not found."
@@ -209,9 +211,9 @@ class DeviceHandler(BluetoothBaseClass):
# Heart Rate
hrvalue = 0
if flags & 0x1: # HR 16 bit little endian? otherwise 8 bit
- hrvalue = struct.unpack("<H", data[1:3])
+ hrvalue = struct.unpack("<H", data[1:3])[0]
else:
- hrvalue = struct.unpack("B", data[1:2])
+ hrvalue = struct.unpack("B", data[1:2])[0]
self.addMeasurement(hrvalue)
@@ -234,7 +236,7 @@ class DeviceHandler(BluetoothBaseClass):
@Slot(QLowEnergyCharacteristic, QByteArray)
def confirmedDescriptorWrite(self, d, value):
if (d.isValid() and d == self.m_notificationDesc
- and value == QByteArray.fromHex(b"0000")):
+ and value == QByteArray.fromHex(b"0000")):
# disabled notifications . assume disconnect intent
self.m_control.disconnectFromDevice()
self.m_service = None
@@ -245,7 +247,7 @@ class DeviceHandler(BluetoothBaseClass):
# disable notifications
if (self.m_notificationDesc.isValid() and self.m_service
- and self.m_notificationDesc.value() == QByteArray.fromHex(b"0100")):
+ and self.m_notificationDesc.value() == QByteArray.fromHex(b"0100")):
self.m_service.writeDescriptor(self.m_notificationDesc,
QByteArray.fromHex(b"0000"))
else:
@@ -259,7 +261,7 @@ class DeviceHandler(BluetoothBaseClass):
@Property(bool, notify=aliveChanged)
def alive(self):
- if simulator:
+ if simulator():
return True
if self.m_service:
return self.m_service.state() == QLowEnergyService.RemoteServiceDiscovered
@@ -302,6 +304,6 @@ class DeviceHandler(BluetoothBaseClass):
self.m_sum += value
self.m_avg = float(self.m_sum) / len(self.m_measurements)
self.m_calories = ((-55.0969 + (0.6309 * self.m_avg) + (0.1988 * 94)
- + (0.2017 * 24)) / 4.184) * 60 * self.time / 3600
+ + (0.2017 * 24)) / 4.184) * 60 * self.time / 3600
self.statsChanged.emit()
diff --git a/examples/bluetooth/heartrate_game/deviceinfo.py b/examples/bluetooth/heartrate_game/deviceinfo.py
index 4ea08628f..5fd5c3270 100644
--- a/examples/bluetooth/heartrate_game/deviceinfo.py
+++ b/examples/bluetooth/heartrate_game/deviceinfo.py
@@ -25,13 +25,13 @@ class DeviceInfo(QObject):
@Property(str, notify=deviceChanged)
def deviceName(self):
- if simulator:
+ if simulator():
return "Demo device"
return self.m_device.name()
@Property(str, notify=deviceChanged)
def deviceAddress(self):
- if simulator:
+ if simulator():
return "00:11:22:33:44:55"
if sys.platform == "Darwin": # workaround for Core Bluetooth:
return self.m_device.deviceUuid().toString()
diff --git a/examples/bluetooth/heartrate_game/doc/heartrate_game.rst b/examples/bluetooth/heartrate_game/doc/heartrate_game.rst
index 0a0938cad..9d190d991 100644
--- a/examples/bluetooth/heartrate_game/doc/heartrate_game.rst
+++ b/examples/bluetooth/heartrate_game/doc/heartrate_game.rst
@@ -1,6 +1,8 @@
Bluetooth Low Energy Heart Rate Game
====================================
+.. tags:: Android
+
The Bluetooth Low Energy Heart Rate Game shows how to develop a
Bluetooth Low Energy application using the Qt Bluetooth API. The
application covers the scanning for Bluetooth Low Energy devices,
diff --git a/examples/bluetooth/heartrate_game/heartrate_game.pyproject b/examples/bluetooth/heartrate_game/heartrate_game.pyproject
index e4c40874a..94b7e3978 100644
--- a/examples/bluetooth/heartrate_game/heartrate_game.pyproject
+++ b/examples/bluetooth/heartrate_game/heartrate_game.pyproject
@@ -6,17 +6,18 @@
"devicehandler.py",
"deviceinfo.py",
"heartrate_global.py",
- "qml/main.qml",
- "qml/App.qml",
- "qml/BluetoothAlarmDialog.qml",
- "qml/BottomLine.qml",
- "qml/Connect.qml",
- "qml/GameButton.qml",
- "qml/GamePage.qml",
- "qml/GameSettings.qml",
- "qml/Measure.qml",
- "qml/SplashScreen.qml",
- "qml/Stats.qml",
- "qml/StatsLabel.qml",
- "qml/TitleBar.qml"]
+ "HeartRateGame/qmldir",
+ "HeartRateGame/Main.qml",
+ "HeartRateGame/App.qml",
+ "HeartRateGame/BluetoothAlarmDialog.qml",
+ "HeartRateGame/BottomLine.qml",
+ "HeartRateGame/Connect.qml",
+ "HeartRateGame/GameButton.qml",
+ "HeartRateGame/GamePage.qml",
+ "HeartRateGame/GameSettings.qml",
+ "HeartRateGame/Measure.qml",
+ "HeartRateGame/SplashScreen.qml",
+ "HeartRateGame/Stats.qml",
+ "HeartRateGame/StatsLabel.qml",
+ "HeartRateGame/TitleBar.qml"]
}
diff --git a/examples/bluetooth/heartrate_game/heartrate_global.py b/examples/bluetooth/heartrate_game/heartrate_global.py
index 7d95f1299..de5c37ac3 100644
--- a/examples/bluetooth/heartrate_game/heartrate_global.py
+++ b/examples/bluetooth/heartrate_game/heartrate_global.py
@@ -1,6 +1,30 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
+import os
import sys
-simulator = sys.platform == "win32"
+_simulator = False
+
+
+def simulator():
+ global _simulator
+ return _simulator
+
+
+def set_simulator(s):
+ global _simulator
+ _simulator = s
+
+
+is_android = os.environ.get('ANDROID_ARGUMENT')
+
+
+def error_not_nuitka():
+ """Errors and exits for macOS if run in interpreted mode.
+ """
+ is_nuitka = "__compiled__" in globals()
+ if not is_nuitka and sys.platform == "darwin":
+ print("This example does not work on macOS when Python is run in interpreted mode."
+ "For this example to work on macOS, package the example using pyside6-deploy"
+ "For more information, read `Notes for Developer` in the documentation")
+ sys.exit(0)
diff --git a/examples/bluetooth/heartrate_game/main.py b/examples/bluetooth/heartrate_game/main.py
index a101a05bf..3cb4f0672 100644
--- a/examples/bluetooth/heartrate_game/main.py
+++ b/examples/bluetooth/heartrate_game/main.py
@@ -3,19 +3,18 @@
"""PySide6 port of the bluetooth/heartrate-game example from Qt v6.x"""
-import os
from pathlib import Path
import sys
-from argparse import ArgumentParser, Namespace, RawDescriptionHelpFormatter
+from argparse import ArgumentParser, RawDescriptionHelpFormatter
-from PySide6.QtQml import QQmlApplicationEngine, QQmlContext
+from PySide6.QtQml import QQmlApplicationEngine
from PySide6.QtGui import QGuiApplication
-from PySide6.QtCore import QCoreApplication, QLoggingCategory, QUrl
+from PySide6.QtCore import QCoreApplication, QLoggingCategory
from connectionhandler import ConnectionHandler
from devicefinder import DeviceFinder
from devicehandler import DeviceHandler
-from heartrate_global import simulator
+from heartrate_global import set_simulator
if __name__ == '__main__':
@@ -27,7 +26,7 @@ if __name__ == '__main__':
parser.add_argument("-s", "--simulator", action="store_true",
help="Use Simulator")
options = parser.parse_args()
- simulator = options.simulator
+ set_simulator(options.simulator)
if options.verbose:
QLoggingCategory.setFilterRules("qt.bluetooth* = true")
@@ -43,8 +42,9 @@ if __name__ == '__main__':
"deviceFinder": deviceFinder,
"deviceHandler": deviceHandler})
- qml_file = os.fspath(Path(__file__).resolve().parent / "qml" / "main.qml")
- engine.load(QUrl.fromLocalFile(qml_file))
+ engine.addImportPath(Path(__file__).parent)
+ engine.loadFromModule("HeartRateGame", "Main")
+
if not engine.rootObjects():
sys.exit(-1)
diff --git a/examples/bluetooth/heartrate_game/qml/App.qml b/examples/bluetooth/heartrate_game/qml/App.qml
deleted file mode 100644
index 1eb532021..000000000
--- a/examples/bluetooth/heartrate_game/qml/App.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright (C) 2022 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import QtQuick
-
-Item {
- id: app
- anchors.fill: parent
- opacity: 0.0
-
- Behavior on opacity { NumberAnimation { duration: 500 } }
-
- property var lastPages: []
- property int __currentIndex: 0
-
- function init()
- {
- opacity = 1.0
- showPage("Connect.qml")
- }
-
- function prevPage()
- {
- lastPages.pop()
- pageLoader.setSource(lastPages[lastPages.length-1])
- __currentIndex = lastPages.length-1;
- }
-
- function showPage(name)
- {
- lastPages.push(name)
- pageLoader.setSource(name)
- __currentIndex = lastPages.length-1;
- }
-
- TitleBar {
- id: titleBar
- currentIndex: __currentIndex
-
- onTitleClicked: (index) => {
- if (index < __currentIndex)
- pageLoader.item.close()
- }
- }
-
- Loader {
- id: pageLoader
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.top: titleBar.bottom
- anchors.bottom: parent.bottom
-
- onStatusChanged: {
- if (status === Loader.Ready)
- {
- pageLoader.item.init();
- pageLoader.item.forceActiveFocus()
- }
- }
- }
-
- Keys.onReleased: (event) => {
- switch (event.key) {
- case Qt.Key_Escape:
- case Qt.Key_Back: {
- if (__currentIndex > 0) {
- pageLoader.item.close()
- event.accepted = true
- } else {
- Qt.quit()
- }
- break;
- }
- default: break;
- }
- }
-
- BluetoothAlarmDialog {
- id: btAlarmDialog
- anchors.fill: parent
- visible: !connectionHandler.alive
- }
-}
diff --git a/examples/bluetooth/heartrate_game/qml/main.qml b/examples/bluetooth/heartrate_game/qml/main.qml
deleted file mode 100644
index 44d824faf..000000000
--- a/examples/bluetooth/heartrate_game/qml/main.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright (C) 2022 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import QtQuick
-import QtQuick.Window
-import "."
-import Shared
-
-Window {
- id: wroot
- visible: true
- width: 720 * .7
- height: 1240 * .7
- title: qsTr("HeartRateGame")
- color: GameSettings.backgroundColor
-
- required property ConnectionHandler connectionHandler
- required property DeviceFinder deviceFinder
- required property AddressType deviceHandler
-
- Component.onCompleted: {
- GameSettings.wWidth = Qt.binding(function() {return width})
- GameSettings.wHeight = Qt.binding(function() {return height})
- }
-
- Loader {
- id: splashLoader
- anchors.fill: parent
- source: "SplashScreen.qml"
- asynchronous: false
- visible: true
-
- onStatusChanged: {
- if (status === Loader.Ready) {
- appLoader.setSource("App.qml");
- }
- }
- }
-
- Connections {
- target: splashLoader.item
- function onReadyToGo() {
- appLoader.visible = true
- appLoader.item.init()
- splashLoader.visible = false
- splashLoader.setSource("")
- appLoader.item.forceActiveFocus();
- }
- }
-
- Loader {
- id: appLoader
- anchors.fill: parent
- visible: false
- asynchronous: true
- onStatusChanged: {
- if (status === Loader.Ready)
- splashLoader.item.appReady()
- if (status === Loader.Error)
- splashLoader.item.errorInLoadingApp();
- }
- }
-}
diff --git a/examples/bluetooth/heartrate_game/qml/qmldir b/examples/bluetooth/heartrate_game/qml/qmldir
deleted file mode 100644
index 5e0d2b540..000000000
--- a/examples/bluetooth/heartrate_game/qml/qmldir
+++ /dev/null
@@ -1 +0,0 @@
-singleton GameSettings 1.0 GameSettings.qml
diff --git a/examples/bluetooth/heartrate_server/heartrate_server.py b/examples/bluetooth/heartrate_server/heartrate_server.py
index f98cc6fe8..abbf4eb7f 100644
--- a/examples/bluetooth/heartrate_server/heartrate_server.py
+++ b/examples/bluetooth/heartrate_server/heartrate_server.py
@@ -39,8 +39,8 @@ if __name__ == '__main__':
char_data.setUuid(QBluetoothUuid.CharacteristicType.HeartRateMeasurement)
char_data.setValue(QByteArray(2, 0))
char_data.setProperties(QLowEnergyCharacteristic.Notify)
- client_config = QLowEnergyDescriptorData(QBluetoothUuid.DescriptorType.ClientCharacteristicConfiguration,
- QByteArray(2, 0))
+ client_config = QLowEnergyDescriptorData(
+ QBluetoothUuid.DescriptorType.ClientCharacteristicConfiguration, QByteArray(2, 0))
char_data.addDescriptor(client_config)
service_data = QLowEnergyServiceData()
@@ -66,8 +66,9 @@ if __name__ == '__main__':
value = QByteArray()
value.append(chr(0)) # Flags that specify the format of the value.
value.append(chr(current_heart_rate)) # Actual value.
- characteristic = service.characteristic(QBluetoothUuid.CharacteristicType.HeartRateMeasurement)
- assert(characteristic.isValid())
+ characteristic = service.characteristic(
+ QBluetoothUuid.CharacteristicType.HeartRateMeasurement)
+ assert characteristic.isValid()
# Potentially causes notification.
service.writeCharacteristic(characteristic, value)
if current_heart_rate == 60:
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Characteristics.qml b/examples/bluetooth/lowenergyscanner/Scanner/Characteristics.qml
new file mode 100644
index 000000000..bd3ccbfcb
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Characteristics.qml
@@ -0,0 +1,121 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+import QtQuick
+
+Rectangle {
+ id: characteristicsPage
+
+ signal showServices
+ signal showDevices
+
+ width: 300
+ height: 600
+
+ Header {
+ id: header
+ anchors.top: parent.top
+ headerText: "Characteristics list"
+ }
+
+ Dialog {
+ id: info
+ anchors.centerIn: parent
+ visible: true
+ dialogText: "Scanning for characteristics..."
+ }
+
+ Connections {
+ target: Device
+ function oncharacteristics_pdated() {
+ menu.menuText = "Back"
+ if (characteristicview.count === 0) {
+ info.dialogText = "No characteristic found"
+ info.busyImage = false
+ } else {
+ info.visible = false
+ info.busyImage = true
+ }
+ }
+
+ function onDisconnected() {
+ characteristicsPage.showDevices()
+ }
+ }
+
+ ListView {
+ id: characteristicview
+ width: parent.width
+ clip: true
+
+ anchors.top: header.bottom
+ anchors.bottom: menu.top
+ model: Device.characteristicList
+
+ delegate: Rectangle {
+ required property var modelData
+ id: box
+ height: 300
+ width: characteristicview.width
+ color: "lightsteelblue"
+ border.width: 2
+ border.color: "black"
+ radius: 5
+
+ Label {
+ id: characteristicName
+ textContent: box.modelData.characteristic_name
+ anchors.top: parent.top
+ anchors.topMargin: 5
+ }
+
+ Label {
+ id: characteristicUuid
+ font.pointSize: characteristicName.font.pointSize * 0.7
+ textContent: box.modelData.characteristic_uuid
+ anchors.top: characteristicName.bottom
+ anchors.topMargin: 5
+ }
+
+ Label {
+ id: characteristicValue
+ font.pointSize: characteristicName.font.pointSize * 0.7
+ textContent: ("Value: " + box.modelData.characteristic_value)
+ anchors.bottom: characteristicHandle.top
+ horizontalAlignment: Text.AlignHCenter
+ anchors.topMargin: 5
+ }
+
+ Label {
+ id: characteristicHandle
+ font.pointSize: characteristicName.font.pointSize * 0.7
+ textContent: ("Handlers: " + box.modelData.characteristic_handle)
+ anchors.bottom: characteristicPermission.top
+ anchors.topMargin: 5
+ }
+
+ Label {
+ id: characteristicPermission
+ font.pointSize: characteristicName.font.pointSize * 0.7
+ textContent: box.modelData.characteristic_permission
+ anchors.bottom: parent.bottom
+ anchors.topMargin: 5
+ anchors.bottomMargin: 5
+ }
+ }
+ }
+
+ Menu {
+ id: menu
+ anchors.bottom: parent.bottom
+ menuWidth: parent.width
+ menuText: Device.update
+ menuHeight: (parent.height / 6)
+ onButtonClick: {
+ characteristicsPage.showServices()
+ Device.update = "Back"
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Devices.qml b/examples/bluetooth/lowenergyscanner/Scanner/Devices.qml
new file mode 100644
index 000000000..6e5e85a52
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Devices.qml
@@ -0,0 +1,121 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+import QtQuick
+
+Rectangle {
+ id: devicesPage
+
+ property bool deviceState: Device.state
+ signal showServices
+
+ width: 300
+ height: 600
+
+ onDeviceStateChanged: {
+ if (!Device.state)
+ info.visible = false
+ }
+
+ Header {
+ id: header
+ anchors.top: parent.top
+ headerText: {
+ if (Device.state)
+ return "Discovering"
+
+ if (Device.devices_list.length > 0)
+ return "Select a device"
+
+ return "Start Discovery"
+ }
+ }
+
+ Dialog {
+ id: info
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ ListView {
+ id: theListView
+ width: parent.width
+ clip: true
+
+ anchors.top: header.bottom
+ anchors.bottom: connectToggle.top
+ model: Device.devices_list
+
+ delegate: Rectangle {
+ required property var modelData
+ id: box
+ height: 100
+ width: theListView.width
+ color: "lightsteelblue"
+ border.width: 2
+ border.color: "black"
+ radius: 5
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ Device.scan_services(box.modelData.device_address)
+ showServices()
+ }
+ }
+
+ Label {
+ id: deviceName
+ textContent: box.modelData.device_name
+ anchors.top: parent.top
+ anchors.topMargin: 5
+ }
+
+ Label {
+ id: deviceAddress
+ textContent: box.modelData.device_address
+ font.pointSize: deviceName.font.pointSize * 0.7
+ anchors.bottom: box.bottom
+ anchors.bottomMargin: 5
+ }
+ }
+ }
+
+ Menu {
+ id: connectToggle
+
+ menuWidth: parent.width
+ anchors.bottom: menu.top
+ menuText: {
+ visible = Device.devices_list.length > 0
+ if (Device.use_random_address)
+ return "Address type: Random"
+ else
+ return "Address type: Public"
+ }
+
+ onButtonClick: Device.use_random_address = !Device.use_random_address
+ }
+
+ Menu {
+ id: menu
+ anchors.bottom: parent.bottom
+ menuWidth: parent.width
+ menuHeight: (parent.height / 6)
+ menuText: Device.update
+ onButtonClick: {
+ if (!Device.state) {
+ Device.start_device_discovery()
+ // if start_device_discovery() failed Device.state is not set
+ if (Device.state) {
+ info.dialogText = "Searching..."
+ info.visible = true
+ }
+ } else {
+ Device.stop_device_discovery()
+ }
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Dialog.qml b/examples/bluetooth/lowenergyscanner/Scanner/Dialog.qml
new file mode 100644
index 000000000..75e82642a
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Dialog.qml
@@ -0,0 +1,48 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: dialog
+ width: parent.width / 3 * 2
+ height: dialogTextId.height + background.height + 20
+ z: 50
+ property string dialogText: ""
+ property bool busyImage: true
+ border.width: 1
+ border.color: "#363636"
+ radius: 10
+
+ Text {
+ id: dialogTextId
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ anchors.topMargin: 10
+
+ elide: Text.ElideMiddle
+ text: dialog.dialogText
+ color: "#363636"
+ wrapMode: Text.Wrap
+ }
+
+ Image {
+ id: background
+
+ width: 20
+ height: 20
+ anchors.top: dialogTextId.bottom
+ anchors.horizontalCenter: dialogTextId.horizontalCenter
+ visible: parent.busyImage
+ source: "assets/busy_dark.png"
+ fillMode: Image.PreserveAspectFit
+ NumberAnimation on rotation {
+ duration: 3000
+ from: 0
+ to: 360
+ loops: Animation.Infinite
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Header.qml b/examples/bluetooth/lowenergyscanner/Scanner/Header.qml
new file mode 100644
index 000000000..c95385dd3
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Header.qml
@@ -0,0 +1,25 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: header
+ width: parent.width
+ height: 70
+ border.width: 1
+ border.color: "#363636"
+ radius: 5
+ property string headerText: ""
+
+ Text {
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.fill: parent
+ text: header.headerText
+ font.bold: true
+ font.pointSize: 20
+ elide: Text.ElideMiddle
+ color: "#363636"
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Label.qml b/examples/bluetooth/lowenergyscanner/Scanner/Label.qml
new file mode 100644
index 000000000..e31156740
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Label.qml
@@ -0,0 +1,16 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Text {
+ property string textContent: ""
+ font.pointSize: 20
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: "#363636"
+ horizontalAlignment: Text.AlignHCenter
+ elide: Text.ElideMiddle
+ width: parent.width
+ wrapMode: Text.Wrap
+ text: textContent
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Main.qml b/examples/bluetooth/lowenergyscanner/Scanner/Main.qml
new file mode 100644
index 000000000..88600bace
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Main.qml
@@ -0,0 +1,31 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+
+Window {
+ id: main
+
+ width: 300
+ height: 600
+ visible: true
+
+ StackLayout {
+ id: pagesLayout
+ anchors.fill: parent
+ currentIndex: 0
+
+ Devices {
+ onShowServices: pagesLayout.currentIndex = 1
+ }
+ Services {
+ onShowDevices: pagesLayout.currentIndex = 0
+ onShowCharacteristics: pagesLayout.currentIndex = 2
+ }
+ Characteristics {
+ onShowDevices: pagesLayout.currentIndex = 0
+ onShowServices: pagesLayout.currentIndex = 1
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Menu.qml b/examples/bluetooth/lowenergyscanner/Scanner/Menu.qml
new file mode 100644
index 000000000..ef69c895e
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Menu.qml
@@ -0,0 +1,55 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: menu
+
+ property real menuWidth: 100
+ property real menuHeight: 50
+ property string menuText: "Search"
+ signal buttonClick
+
+ height: menuHeight
+ width: menuWidth
+
+ Rectangle {
+ id: search
+ width: parent.width
+ height: parent.height
+ anchors.centerIn: parent
+ color: "#363636"
+ border.width: 1
+ border.color: "#E3E3E3"
+ radius: 5
+ Text {
+ id: searchText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.fill: parent
+ text: menu.menuText
+ elide: Text.ElideMiddle
+ color: "#E3E3E3"
+ wrapMode: Text.WordWrap
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ search.width = search.width - 7
+ search.height = search.height - 5
+ }
+
+ onReleased: {
+ search.width = search.width + 7
+ search.height = search.height + 5
+ }
+
+ onClicked: {
+ menu.buttonClick()
+ }
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Services.qml b/examples/bluetooth/lowenergyscanner/Scanner/Services.qml
new file mode 100644
index 000000000..70326242e
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Services.qml
@@ -0,0 +1,115 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+import QtQuick
+
+Rectangle {
+ id: servicesPage
+
+ signal showCharacteristics
+ signal showDevices
+
+ width: 300
+ height: 600
+
+ Component.onCompleted: {
+ // Loading this page may take longer than QLEController
+ // stopping with an error, go back and readjust this view
+ // based on controller errors
+ if (Device.controller_error) {
+ info.visible = false
+ menu.menuText = Device.update
+ }
+ }
+
+ Header {
+ id: header
+ anchors.top: parent.top
+ headerText: "Services list"
+ }
+
+ Dialog {
+ id: info
+ anchors.centerIn: parent
+ visible: true
+ dialogText: "Scanning for services..."
+ }
+
+ Connections {
+ target: Device
+ function onservices_updated() {
+ if (servicesview.count === 0)
+ info.dialogText = "No services found"
+ else
+ info.visible = false
+ }
+
+ function ondisconnected() {
+ servicesPage.showDevices()
+ }
+ }
+
+ ListView {
+ id: servicesview
+ width: parent.width
+ anchors.top: header.bottom
+ anchors.bottom: menu.top
+ model: Device.servicesList
+ clip: true
+
+ delegate: Rectangle {
+ required property var modelData
+ id: box
+ height: 100
+ color: "lightsteelblue"
+ border.width: 2
+ border.color: "black"
+ radius: 5
+ width: servicesview.width
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ Device.connectToService(box.modelData.service_uuid)
+ servicesPage.showCharacteristics()
+ }
+ }
+
+ Label {
+ id: serviceName
+ textContent: box.modelData.service_name
+ anchors.top: parent.top
+ anchors.topMargin: 5
+ }
+
+ Label {
+ textContent: box.modelData.service_type
+ font.pointSize: serviceName.font.pointSize * 0.5
+ anchors.top: serviceName.bottom
+ }
+
+ Label {
+ id: serviceUuid
+ font.pointSize: serviceName.font.pointSize * 0.5
+ textContent: box.modelData.service_uuid
+ anchors.bottom: box.bottom
+ anchors.bottomMargin: 5
+ }
+ }
+ }
+
+ Menu {
+ id: menu
+ anchors.bottom: parent.bottom
+ menuWidth: parent.width
+ menuText: Device.update
+ menuHeight: (parent.height / 6)
+ onButtonClick: {
+ Device.disconnect_from_device()
+ servicesPage.showDevices()
+ Device.update = "Search"
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/assets/busy_dark.png b/examples/bluetooth/lowenergyscanner/Scanner/assets/busy_dark.png
new file mode 100644
index 000000000..3a1059531
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/assets/busy_dark.png
Binary files differ
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/qmldir b/examples/bluetooth/lowenergyscanner/Scanner/qmldir
new file mode 100644
index 000000000..0adf6fb19
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/qmldir
@@ -0,0 +1,10 @@
+module Scanner
+typeinfo scanner.qmltypes
+Characteristics 1.0 Characteristics.qml
+Devices 1.0 Devices.qml
+Dialog 1.0 Dialog.qml
+Header 1.0 Header.qml
+Label 1.0 Label.qml
+Main 1.0 Main.qml
+Menu 1.0 Menu.qml
+Services 1.0 Services.qml
diff --git a/examples/bluetooth/lowenergyscanner/characteristicinfo.py b/examples/bluetooth/lowenergyscanner/characteristicinfo.py
new file mode 100644
index 000000000..42bde8753
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/characteristicinfo.py
@@ -0,0 +1,87 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtBluetooth import QLowEnergyCharacteristic, QBluetoothUuid
+
+
+class CharacteristicInfo(QObject):
+
+ characteristic_changed = Signal()
+
+ def __init__(self, characteristic=None) -> None:
+ super().__init__()
+ self._characteristic = characteristic
+
+ @Property(str, notify=characteristic_changed)
+ def characteristic_name(self):
+ if not self.characteristic:
+ raise Exception("characteristic unset")
+ name = self.characteristic.name()
+ if name:
+ return name
+
+ for descriptor in self.characteristic.descriptors():
+ if descriptor.type() == QBluetoothUuid.DescriptorType.CharacteristicUserDescription:
+ name = descriptor.value()
+ break
+
+ if not name:
+ name = "Unknown"
+
+ return name
+
+ @Property(str, notify=characteristic_changed)
+ def characteristic_uuid(self):
+ uuid = self.characteristic.uuid()
+ result16, success16 = uuid.toUInt16()
+ if success16:
+ return f"0x{result16:x}"
+
+ result32, sucess32 = uuid.toUInt32()
+ if sucess32:
+ return f"0x{result32:x}"
+
+ return uuid.toString().replace('{', '').replace('}', '')
+
+ @Property(str, notify=characteristic_changed)
+ def characteristic_value(self):
+ # Show raw string first and hex value below
+ a = self.characteristic.value()
+ if not a:
+ return "<none>"
+
+ result = f"{str(a)}\n{str(a.toHex())}"
+ return result
+
+ @Property(str, notify=characteristic_changed)
+ def characteristic_permission(self):
+ properties = "( "
+ permission = self.characteristic.properties()
+ if (permission & QLowEnergyCharacteristic.Read):
+ properties += " Read"
+ if (permission & QLowEnergyCharacteristic.Write):
+ properties += " Write"
+ if (permission & QLowEnergyCharacteristic.Notify):
+ properties += " Notify"
+ if (permission & QLowEnergyCharacteristic.Indicate):
+ properties += " Indicate"
+ if (permission & QLowEnergyCharacteristic.ExtendedProperty):
+ properties += " ExtendedProperty"
+ if (permission & QLowEnergyCharacteristic.Broadcasting):
+ properties += " Broadcast"
+ if (permission & QLowEnergyCharacteristic.WriteNoResponse):
+ properties += " WriteNoResp"
+ if (permission & QLowEnergyCharacteristic.WriteSigned):
+ properties += " WriteSigned"
+ properties += " )"
+ return properties
+
+ @property
+ def characteristic(self):
+ return self._characteristic
+
+ @characteristic.setter
+ def characteristic(self, characteristic):
+ self._characteristic = characteristic
+ self.characteristic_changed.emit()
diff --git a/examples/bluetooth/lowenergyscanner/device.py b/examples/bluetooth/lowenergyscanner/device.py
new file mode 100644
index 000000000..09108cf69
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/device.py
@@ -0,0 +1,278 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import warnings
+from PySide6.QtBluetooth import (QBluetoothDeviceDiscoveryAgent, QLowEnergyController,
+ QBluetoothDeviceInfo, QBluetoothUuid, QLowEnergyService)
+from PySide6.QtCore import QObject, Property, Signal, Slot, QTimer, QMetaObject, Qt
+from PySide6.QtQml import QmlElement, QmlSingleton
+
+from deviceinfo import DeviceInfo
+from serviceinfo import ServiceInfo
+from characteristicinfo import CharacteristicInfo
+
+QML_IMPORT_NAME = "Scanner"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@QmlSingleton
+class Device(QObject):
+
+ devices_updated = Signal()
+ services_updated = Signal()
+ characteristic_updated = Signal()
+ update_changed = Signal()
+ state_changed = Signal()
+ disconnected = Signal()
+ random_address_changed = Signal()
+
+ def __init__(self, parent=None) -> None:
+ super().__init__(parent)
+ self.devices = []
+ self._services = []
+ self._characteristics = []
+ self._previousAddress = ""
+ self._message = ""
+ self.currentDevice = DeviceInfo()
+ self.connected = False
+ self.controller: QLowEnergyController = None
+ self._deviceScanState = False
+ self.random_address = False
+ self.discovery_agent = QBluetoothDeviceDiscoveryAgent()
+ self.discovery_agent.setLowEnergyDiscoveryTimeout(25000)
+ self.discovery_agent.deviceDiscovered.connect(self.add_device)
+ self.discovery_agent.errorOccurred.connect(self.device_scan_error)
+ self.discovery_agent.finished.connect(self.device_scan_finished)
+ self.update = "Search"
+
+ @Property("QVariant", notify=devices_updated)
+ def devices_list(self):
+ return self.devices
+
+ @Property("QVariant", notify=services_updated)
+ def services_list(self):
+ return self._services
+
+ @Property("QVariant", notify=characteristic_updated)
+ def characteristic_list(self):
+ return self._characteristics
+
+ @Property(str, notify=update_changed)
+ def update(self):
+ return self._message
+
+ @update.setter
+ def update(self, message):
+ self._message = message
+ self.update_changed.emit()
+
+ @Property(bool, notify=random_address_changed)
+ def use_random_address(self):
+ return self.random_address
+
+ @use_random_address.setter
+ def use_random_address(self, newValue):
+ self.random_address = newValue
+ self.random_address_changed.emit()
+
+ @Property(bool, notify=state_changed)
+ def state(self):
+ return self._deviceScanState
+
+ @Property(bool)
+ def controller_error(self):
+ return self.controller and (self.controller.error() != QLowEnergyController.NoError)
+
+ @Slot()
+ def start_device_discovery(self):
+ self.devices.clear()
+ self.devices_updated.emit()
+ self.update = "Scanning for devices ..."
+ self.discovery_agent.start(QBluetoothDeviceDiscoveryAgent.LowEnergyMethod)
+
+ if self.discovery_agent.isActive():
+ self._deviceScanState = True
+ self.state_changed.emit()
+
+ @Slot(str)
+ def scan_services(self, address):
+ # We need the current device for service discovery.
+ for device in self.devices:
+ if device.device_address == address:
+ self.currentDevice.set_device(device.get_device())
+ break
+
+ if not self.currentDevice.get_device().isValid():
+ warnings.warn("Not a valid device")
+ return
+
+ self._characteristics.clear()
+ self.characteristic_updated.emit()
+ self._services.clear()
+ self.services_updated.emit()
+
+ self.update = "Back\n(Connecting to device...)"
+
+ if self.controller and (self._previousAddress != self.currentDevice.device_address):
+ self.controller.disconnectFromDevice()
+ del self.controller
+ self.controller = None
+
+ if not self.controller:
+ self.controller = QLowEnergyController.createCentral(self.currentDevice.get_device())
+ self.controller.connected.connect(self.device_connected)
+ self.controller.errorOccurred.connect(self.error_received)
+ self.controller.disconnected.connect(self.device_disconnected)
+ self.controller.serviceDiscovered.connect(self.add_low_energy_service)
+ self.controller.discoveryFinished.connect(self.services_scan_done)
+
+ if self.random_address:
+ self.controller.setRemoteAddressType(QLowEnergyController.RandomAddress)
+ else:
+ self.controller.setRemoteAddressType(QLowEnergyController.PublicAddress)
+ self.controller.connectToDevice()
+
+ self._previousAddress = self.currentDevice.device_address
+
+ @Slot(str)
+ def connect_to_service(self, uuid):
+ service: QLowEnergyService = None
+ for serviceInfo in self._services:
+ if not serviceInfo:
+ continue
+
+ if serviceInfo.service_uuid == uuid:
+ service = serviceInfo.service
+ break
+
+ if not service:
+ return
+
+ self._characteristics.clear()
+ self.characteristic_updated.emit()
+
+ if service.state() == QLowEnergyService.RemoteService:
+ service.state_changed.connect(self.service_details_discovered)
+ service.discoverDetails()
+ self.update = "Back\n(Discovering details...)"
+ return
+
+ # discovery already done
+ chars = service.characteristics()
+ for ch in chars:
+ cInfo = CharacteristicInfo(ch)
+ self._characteristics.append(cInfo)
+
+ QTimer.singleShot(0, self.characteristic_updated)
+
+ @Slot()
+ def disconnect_from_device(self):
+ # UI always expects disconnect() signal when calling this signal
+ # TODO what is really needed is to extend state() to a multi value
+ # and thus allowing UI to keep track of controller progress in addition to
+ # device scan progress
+
+ if self.controller.state() != QLowEnergyController.UnconnectedState:
+ self.controller.disconnectFromDevice()
+ else:
+ self.device_disconnected()
+
+ @Slot(QBluetoothDeviceInfo)
+ def add_device(self, info):
+ if info.coreConfigurations() & QBluetoothDeviceInfo.LowEnergyCoreConfiguration:
+ self.update = "Last device added: " + info.name()
+
+ @Slot()
+ def device_scan_finished(self):
+ foundDevices = self.discovery_agent.discoveredDevices()
+ for nextDevice in foundDevices:
+ if nextDevice.coreConfigurations() & QBluetoothDeviceInfo.LowEnergyCoreConfiguration:
+ device = DeviceInfo(nextDevice)
+ self.devices.append(device)
+
+ self.devices_updated.emit()
+ self._deviceScanState = False
+ self.state_changed.emit()
+ if not self.devices:
+ self.update = "No Low Energy devices found..."
+ else:
+ self.update = "Done! Scan Again!"
+
+ @Slot("QBluetoothDeviceDiscovertAgent::Error")
+ def device_scan_error(self, error):
+ if error == QBluetoothDeviceDiscoveryAgent.PoweredOffError:
+ self.update = (
+ "The Bluetooth adaptor is powered off, power it on before doing discovery."
+ )
+ elif error == QBluetoothDeviceDiscoveryAgent.InputOutputError:
+ self.update = "Writing or reading from the device resulted in an error."
+ else:
+ qme = self.discovery_agent.metaObject().enumerator(
+ self.discovery_agent.metaObject().indexOfEnumerator("Error")
+ )
+ self.update = f"Error: {qme.valueToKey(error)}"
+
+ self._deviceScanState = False
+ self.devices_updated.emit()
+ self.state_changed.emit()
+
+ @Slot(QBluetoothUuid)
+ def add_low_energy_service(self, service_uuid):
+ service = self.controller.createServiceObject(service_uuid)
+ if not service:
+ warnings.warn("Cannot create service from uuid")
+ return
+
+ serv = ServiceInfo(service)
+ self._services.append(serv)
+ self.services_updated.emit()
+
+ @Slot()
+ def device_connected(self):
+ self.update = "Back\n(Discovering services...)"
+ self.connected = True
+ self.controller.discoverServices()
+
+ @Slot("QLowEnergyController::Error")
+ def error_received(self, error):
+ warnings.warn(f"Error: {self.controller.errorString()}")
+ self.update = f"Back\n({self.controller.errorString()})"
+
+ @Slot()
+ def services_scan_done(self):
+ self.update = "Back\n(Service scan done!)"
+ # force UI in case we didn't find anything
+ if not self._services:
+ self.services_updated.emit()
+
+ @Slot()
+ def device_disconnected(self):
+ warnings.warn("Disconnect from Device")
+ self.disconnected.emit()
+
+ @Slot("QLowEnergyService::ServiceState")
+ def service_details_discovered(self, newState):
+ if newState != QLowEnergyService.RemoteServiceDiscovered:
+ # do not hang in "Scanning for characteristics" mode forever
+ # in case the service discovery failed
+ # We have to queue the signal up to give UI time to even enter
+ # the above mode
+ if newState != QLowEnergyService.RemoteServiceDiscovering:
+ QMetaObject.invokeMethod(self.characteristic_updated, Qt.QueuedConnection)
+ return
+
+ service = self.sender()
+ if not service:
+ return
+
+ chars = service.characteristics()
+ for ch in chars:
+ cInfo = CharacteristicInfo(ch)
+ self._characteristics.append(cInfo)
+
+ self.characteristic_updated.emit()
+
+ @Slot()
+ def stop_device_discovery(self):
+ if self.discovery_agent.isActive():
+ self.discovery_agent.stop()
diff --git a/examples/bluetooth/lowenergyscanner/deviceinfo.py b/examples/bluetooth/lowenergyscanner/deviceinfo.py
new file mode 100644
index 000000000..35a568821
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/deviceinfo.py
@@ -0,0 +1,34 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtBluetooth import QBluetoothDeviceInfo
+
+
+class DeviceInfo(QObject):
+
+ device_changed = Signal()
+
+ def __init__(self, d: QBluetoothDeviceInfo = None) -> None:
+ super().__init__()
+ self._device = d
+
+ @Property(str, notify=device_changed)
+ def device_name(self):
+ return self._device.name()
+
+ @Property(str, notify=device_changed)
+ def device_address(self):
+ if sys.platform == "darwin":
+ return self._device.deviceUuid().toString()
+
+ return self._device.address().toString()
+
+ def get_device(self):
+ return self._device
+
+ def set_device(self, device):
+ self._device = device
+ self.device_changed.emit()
diff --git a/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.png b/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.png
new file mode 100644
index 000000000..29f41deb4
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.png
Binary files differ
diff --git a/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.rst b/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.rst
new file mode 100644
index 000000000..a0c574350
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.rst
@@ -0,0 +1,11 @@
+Bluetooth Low Energy Scanner Example
+====================================
+
+.. tags:: Android
+
+A Python application that demonstrates the analogous example in Qt
+`Bluetooth Low Energy Scanner <https://doc.qt.io/qt-6/qtbluetooth-lowenergyscanner-example.html>`_
+
+.. image:: lowenergyscanner.png
+ :width: 400
+ :alt: lowenergyscanner screenshot
diff --git a/examples/bluetooth/lowenergyscanner/lowenergyscanner.pyproject b/examples/bluetooth/lowenergyscanner/lowenergyscanner.pyproject
new file mode 100644
index 000000000..7e0cfa3d9
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/lowenergyscanner.pyproject
@@ -0,0 +1,7 @@
+{
+ "files": ["main.py", "device.py", "deviceinfo.py", "serviceinfo.py", "characteristicinfo.py",
+ "Scanner/Main.qml", "Scanner/Menu.qml","Scanner/Header.qml",
+ "Scanner/Characteristics.qml", "Scanner/Dialog.qml", "Scanner/Services.qml",
+ "Scanner/Label.qml", "Scanner/Devices.qml", "Scanner/assets/busy_dark.png",
+ "Scanner/qmldir"]
+}
diff --git a/examples/bluetooth/lowenergyscanner/main.py b/examples/bluetooth/lowenergyscanner/main.py
new file mode 100644
index 000000000..ec12f99e7
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/main.py
@@ -0,0 +1,27 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the bluetooth/lowenergyscanner example from Qt v6.x"""
+
+
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import QQmlApplicationEngine
+
+from device import Device # noqa: F401
+from pathlib import Path
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ engine = QQmlApplicationEngine()
+ engine.addImportPath(Path(__file__).parent)
+ engine.loadFromModule("Scanner", "Main")
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ ex = QCoreApplication.exec()
+ del engine
+ sys.exit(ex)
diff --git a/examples/bluetooth/lowenergyscanner/serviceinfo.py b/examples/bluetooth/lowenergyscanner/serviceinfo.py
new file mode 100644
index 000000000..cddffe663
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/serviceinfo.py
@@ -0,0 +1,64 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtBluetooth import QLowEnergyService
+
+
+class ServiceInfo(QObject):
+
+ service_changed = Signal()
+
+ def __init__(self, service: QLowEnergyService) -> None:
+ super().__init__()
+ self._service = service
+ self.service.setParent(self)
+
+ @Property(str, notify=service_changed)
+ def service_name(self):
+ if not self.service:
+ return ""
+
+ return self.service.service_name()
+
+ @Property(str, notify=service_changed)
+ def service_type(self):
+ if not self.service:
+ return ""
+
+ result = ""
+ if (self.service.type() & QLowEnergyService.PrimaryService):
+ result += "primary"
+ else:
+ result += "secondary"
+
+ if (self.service.type() & QLowEnergyService.IncludedService):
+ result += " included"
+
+ result = '<' + result + '>'
+
+ return result
+
+ @Property(str, notify=service_changed)
+ def service_uuid(self):
+ if not self.service:
+ return ""
+
+ uuid = self.service.service_uuid()
+ result16, success16 = uuid.toUInt16()
+ if success16:
+ return f"0x{result16:x}"
+
+ result32, sucesss32 = uuid.toUInt32()
+ if sucesss32:
+ return f"0x{result32:x}"
+
+ return uuid.toString().replace('{', '').replace('}', '')
+
+ @property
+ def service(self):
+ return self._service
+
+ @service.setter
+ def service(self, service):
+ self._service = service
diff --git a/examples/charts/audio/audio.py b/examples/charts/audio/audio.py
index 14026e897..8ba0b20c5 100644
--- a/examples/charts/audio/audio.py
+++ b/examples/charts/audio/audio.py
@@ -6,8 +6,7 @@
import sys
from PySide6.QtCharts import QChart, QChartView, QLineSeries, QValueAxis
from PySide6.QtCore import QPointF, Slot
-from PySide6.QtMultimedia import (QAudioDevice, QAudioFormat,
- QAudioSource, QMediaDevices)
+from PySide6.QtMultimedia import QAudioFormat, QAudioSource, QMediaDevices
from PySide6.QtWidgets import QApplication, QMainWindow, QMessageBox
diff --git a/examples/charts/callout/callout.py b/examples/charts/callout/callout.py
index 3de00b8df..622938d16 100644
--- a/examples/charts/callout/callout.py
+++ b/examples/charts/callout/callout.py
@@ -4,8 +4,8 @@
"""PySide6 port of the Callout example from Qt v5.x"""
import sys
-from PySide6.QtWidgets import (QApplication, QGraphicsScene,
- QGraphicsView, QGraphicsSimpleTextItem, QGraphicsItem)
+from PySide6.QtWidgets import (QApplication, QGraphicsScene, QGraphicsView,
+ QGraphicsSimpleTextItem, QGraphicsItem)
from PySide6.QtCore import Qt, QPointF, QRectF, QRect
from PySide6.QtCharts import QChart, QLineSeries, QSplineSeries
from PySide6.QtGui import QPainter, QFont, QFontMetrics, QPainterPath, QColor
@@ -42,37 +42,37 @@ class Callout(QGraphicsItem):
# establish the position of the anchor point in relation to _rect
above = anchor.y() <= self._rect.top()
- above_center = (anchor.y() > self._rect.top() and
- anchor.y() <= self._rect.center().y())
- below_center = (anchor.y() > self._rect.center().y() and
- anchor.y() <= self._rect.bottom())
+ above_center = (anchor.y() > self._rect.top()
+ and anchor.y() <= self._rect.center().y())
+ below_center = (anchor.y() > self._rect.center().y()
+ and anchor.y() <= self._rect.bottom())
below = anchor.y() > self._rect.bottom()
on_left = anchor.x() <= self._rect.left()
- left_of_center = (anchor.x() > self._rect.left() and
- anchor.x() <= self._rect.center().x())
- right_of_center = (anchor.x() > self._rect.center().x() and
- anchor.x() <= self._rect.right())
+ left_of_center = (anchor.x() > self._rect.left()
+ and anchor.x() <= self._rect.center().x())
+ right_of_center = (anchor.x() > self._rect.center().x()
+ and anchor.x() <= self._rect.right())
on_right = anchor.x() > self._rect.right()
# get the nearest _rect corner.
x = (on_right + right_of_center) * self._rect.width()
y = (below + below_center) * self._rect.height()
- corner_case = ((above and on_left) or (above and on_right) or
- (below and on_left) or (below and on_right))
+ corner_case = ((above and on_left) or (above and on_right)
+ or (below and on_left) or (below and on_right))
vertical = abs(anchor.x() - x) > abs(anchor.y() - y)
- x1 = (x + left_of_center * 10 - right_of_center * 20 + corner_case *
- int(not vertical) * (on_left * 10 - on_right * 20))
- y1 = (y + above_center * 10 - below_center * 20 + corner_case *
- vertical * (above * 10 - below * 20))
+ x1 = (x + left_of_center * 10 - right_of_center * 20 + corner_case
+ * int(not vertical) * (on_left * 10 - on_right * 20))
+ y1 = (y + above_center * 10 - below_center * 20 + corner_case
+ * vertical * (above * 10 - below * 20))
point1.setX(x1)
point1.setY(y1)
- x2 = (x + left_of_center * 20 - right_of_center * 10 + corner_case *
- int(not vertical) * (on_left * 20 - on_right * 10))
- y2 = (y + above_center * 20 - below_center * 10 + corner_case *
- vertical * (above * 20 - below * 10))
+ x2 = (x + left_of_center * 20 - right_of_center * 10 + corner_case
+ * int(not vertical) * (on_left * 20 - on_right * 10))
+ y2 = (y + above_center * 20 - below_center * 10 + corner_case
+ * vertical * (above * 20 - below * 10))
point2.setX(x2)
point2.setY(y2)
@@ -90,7 +90,7 @@ class Callout(QGraphicsItem):
def mouseMoveEvent(self, event):
if event.buttons() & Qt.LeftButton:
- self.setPos(mapToParent(
+ self.setPos(self.mapToParent(
event.pos() - event.buttonDownPos(Qt.LeftButton)))
event.setAccepted(True)
else:
@@ -127,7 +127,7 @@ class View(QGraphicsView):
self._chart = QChart()
self._chart.setMinimumSize(640, 480)
self._chart.setTitle("Hover the line to show callout. Click the line "
- "to make it stay")
+ "to make it stay")
self._chart.legend().hide()
self.series = QLineSeries()
self.series.append(1, 3)
diff --git a/examples/charts/chartthemes/README.md b/examples/charts/chartthemes/README.md
index 806e391d2..1b1ab51f7 100644
--- a/examples/charts/chartthemes/README.md
+++ b/examples/charts/chartthemes/README.md
@@ -3,7 +3,7 @@
To generated the file `ui_themewidget.py`, the following
command need to be executed:
-`pyside6-uic themewidget.ui > ui_themewidget.py`
+`pyside6-uic themewidget.ui -o ui_themewidget.py`
Also, if you modify the UI file, then you would need
to run the previous command again.
diff --git a/examples/charts/chartthemes/main.py b/examples/charts/chartthemes/main.py
index 8b023f927..5787710ca 100644
--- a/examples/charts/chartthemes/main.py
+++ b/examples/charts/chartthemes/main.py
@@ -7,7 +7,7 @@ import sys
from PySide6.QtCore import QPointF, Qt
from PySide6.QtGui import QColor, QPainter, QPalette
from PySide6.QtWidgets import (QApplication, QMainWindow, QSizePolicy,
- QWidget)
+ QWidget)
from PySide6.QtCharts import (QAreaSeries, QBarSet, QChart, QChartView,
QLineSeries, QPieSeries, QScatterSeries,
QSplineSeries, QStackedBarSeries)
@@ -27,7 +27,7 @@ class ThemeWidget(QWidget):
self.value_max = 10
self.value_count = 7
self.data_table = self.generate_random_data(self.list_count,
- self.value_max, self.value_count)
+ self.value_max, self.value_count)
self.ui.setupUi(self)
self.populate_themebox()
@@ -41,8 +41,7 @@ class ThemeWidget(QWidget):
# Pie Chart
chart_view = QChartView(self.create_pie_chart())
- chart_view.setSizePolicy(QSizePolicy.Ignored,
- QSizePolicy.Ignored)
+ chart_view.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
self.ui.gridLayout.addWidget(chart_view, 1, 1)
self.charts.append(chart_view)
@@ -70,10 +69,10 @@ class ThemeWidget(QWidget):
self.ui.antialiasCheckBox.setChecked(True)
# Set the colors from the light theme as default ones
- pal = qApp.palette()
+ pal = qApp.palette() # noqa: F821
pal.setColor(QPalette.Window, QColor(0xf0f0f0))
pal.setColor(QPalette.WindowText, QColor(0x404044))
- qApp.setPalette(pal)
+ qApp.setPalette(pal) # noqa: F821
self.update_ui()
@@ -271,26 +270,7 @@ class ThemeWidget(QWidget):
chart_theme = self.charts[0].chart().theme()
if chart_theme != theme:
for chart_view in self.charts:
- if theme == 0:
- theme_name = QChart.ChartThemeLight
- elif theme == 1:
- theme_name = QChart.ChartThemeBlueCerulean
- elif theme == 2:
- theme_name = QChart.ChartThemeDark
- elif theme == 3:
- theme_name = QChart.ChartThemeBrownSand
- elif theme == 4:
- theme_name = QChart.ChartThemeBlueNcs
- elif theme == 5:
- theme_name = QChart.ChartThemeHighContrast
- elif theme == 6:
- theme_name = QChart.ChartThemeBlueIcy
- elif theme == 7:
- theme_name = QChart.ChartThemeQt
- else:
- theme_name = QChart.ChartThemeLight
-
- chart_view.chart().setTheme(theme_name)
+ chart_view.chart().setTheme(theme)
# Set palette colors based on selected theme
if theme == QChart.ChartThemeLight:
@@ -320,20 +300,10 @@ class ThemeWidget(QWidget):
options = self.ui.animatedComboBox.itemData(idx)
if len(self.charts):
- chart = self.charts[0].chart()
- animation_options = chart.animationOptions()
+ animation_options = self.charts[0].chart().animationOptions()
if animation_options != options:
for chart_view in self.charts:
- options_name = QChart.NoAnimation
- if options == 0:
- options_name = QChart.NoAnimation
- elif options == 1:
- options_name = QChart.GridAxisAnimations
- elif options == 2:
- options_name = QChart.SeriesAnimations
- elif options == 3:
- options_name = QChart.AllAnimations
- chart_view.chart().setAnimationOptions(options_name)
+ chart_view.chart().setAnimationOptions(options)
# Update legend alignment
idx = self.ui.legendComboBox.currentIndex()
diff --git a/examples/charts/chartthemes/ui_themewidget.py b/examples/charts/chartthemes/ui_themewidget.py
index 231813a67..711615b3e 100644
--- a/examples/charts/chartthemes/ui_themewidget.py
+++ b/examples/charts/chartthemes/ui_themewidget.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'themewidget.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.3
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -64,7 +64,7 @@ class Ui_ThemeWidgetForm(object):
self.horizontalLayout.addWidget(self.antialiasCheckBox)
- self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer)
diff --git a/examples/charts/donutbreakdown/donutbreakdown.py b/examples/charts/donutbreakdown/donutbreakdown.py
index 7cf6a36a1..9111d4aac 100644
--- a/examples/charts/donutbreakdown/donutbreakdown.py
+++ b/examples/charts/donutbreakdown/donutbreakdown.py
@@ -6,7 +6,7 @@
import sys
from PySide6.QtCore import Qt, Slot
-from PySide6.QtGui import QColor, QFont, QPainter, QScreen
+from PySide6.QtGui import QColor, QFont, QPainter
from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtCharts import QChart, QChartView, QPieSeries, QPieSlice
@@ -38,7 +38,7 @@ class MainSlice(QPieSlice):
class DonutBreakdownChart(QChart):
def __init__(self, parent=None):
super().__init__(QChart.ChartTypeCartesian,
- parent, Qt.WindowFlags())
+ parent, Qt.WindowFlags())
self.main_series = QPieSeries()
self.main_series.setPieSize(0.7)
self.addSeries(self.main_series)
diff --git a/examples/charts/legend/legend.py b/examples/charts/legend/legend.py
index f1929547d..5417a940f 100644
--- a/examples/charts/legend/legend.py
+++ b/examples/charts/legend/legend.py
@@ -7,7 +7,8 @@ import sys
from PySide6.QtCore import Qt, QRectF, Slot
from PySide6.QtGui import QBrush, QColor, QPainter, QPen
from PySide6.QtWidgets import (QApplication, QDoubleSpinBox,
- QFormLayout, QGridLayout, QGroupBox, QPushButton, QWidget)
+ QFormLayout, QGridLayout, QGroupBox,
+ QPushButton, QWidget)
from PySide6.QtCharts import QBarSeries, QBarSet, QChart, QChartView
@@ -206,10 +207,8 @@ class MainWidget(QWidget):
def update_legend_layout(self):
legend = self.chart.legend()
- rect = QRectF(self.legend_posx.value(),
- self.legend_posy.value(),
- self.legend_width.value(),
- self.legend_height.value())
+ rect = QRectF(self.legend_posx.value(), self.legend_posy.value(),
+ self.legend_width.value(), self.legend_height.value())
legend.setGeometry(rect)
legend.update()
diff --git a/examples/charts/memoryusage/memoryusage.py b/examples/charts/memoryusage/memoryusage.py
index d0bf842e5..3ba42368e 100644
--- a/examples/charts/memoryusage/memoryusage.py
+++ b/examples/charts/memoryusage/memoryusage.py
@@ -54,7 +54,7 @@ def get_memory_usage():
legend = f'{command} {memory_usage}%'
result.append([legend, memory_usage])
- result.sort(key = lambda x: x[1], reverse=True)
+ result.sort(key=lambda x: x[1], reverse=True)
return result
diff --git a/examples/charts/modeldata/modeldata.py b/examples/charts/modeldata/modeldata.py
index 646021037..0e36f7770 100644
--- a/examples/charts/modeldata/modeldata.py
+++ b/examples/charts/modeldata/modeldata.py
@@ -9,7 +9,7 @@ from random import randrange
from PySide6.QtCore import QAbstractTableModel, QModelIndex, QRect, Qt
from PySide6.QtGui import QColor, QPainter
from PySide6.QtWidgets import (QApplication, QGridLayout, QHeaderView,
- QTableView, QWidget)
+ QTableView, QWidget)
from PySide6.QtCharts import QChart, QChartView, QLineSeries, QVXYModelMapper
@@ -101,9 +101,6 @@ class TableWidget(QWidget):
self.mapper.setModel(self.model)
self.chart.addSeries(self.series)
- # for storing color hex from the series
- seriesColorHex = "#000000"
-
# get the color of the series and use it for showing the mapped area
self.model.add_mapping(self.series.pen().color().name(),
QRect(0, 0, 2, self.model.rowCount()))
diff --git a/examples/charts/percentbarchart/percentbarchart.py b/examples/charts/percentbarchart/percentbarchart.py
index cfb11800a..9f70c0328 100644
--- a/examples/charts/percentbarchart/percentbarchart.py
+++ b/examples/charts/percentbarchart/percentbarchart.py
@@ -21,11 +21,11 @@ class MainWindow(QMainWindow):
set3 = QBarSet("Mary")
set4 = QBarSet("Samantha")
- set0.append([1, 2, 3, 4, 5, 6])
- set1.append([5, 0, 0, 4, 0, 7])
+ set0.append([1, 2, 3, 4, 5, 6])
+ set1.append([5, 0, 0, 4, 0, 7])
set2.append([3, 5, 8, 13, 8, 5])
- set3.append([5, 6, 7, 3, 4, 5])
- set4.append([9, 7, 5, 3, 1, 2])
+ set3.append([5, 6, 7, 3, 4, 5])
+ set4.append([9, 7, 5, 3, 1, 2])
series = QPercentBarSeries()
series.append(set0)
diff --git a/examples/charts/pointconfiguration/chartwindow.py b/examples/charts/pointconfiguration/chartwindow.py
new file mode 100644
index 000000000..36b10aa16
--- /dev/null
+++ b/examples/charts/pointconfiguration/chartwindow.py
@@ -0,0 +1,156 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Selected Point Configuration Example from Qt 6.5"""
+from PySide6.QtCore import QPointF, Slot
+from PySide6.QtGui import QColor, QIcon, QPainter
+from PySide6.QtWidgets import QMainWindow, QLineEdit, QLabel, QComboBox
+from PySide6.QtWidgets import QCheckBox, QWidget, QGridLayout, QHBoxLayout
+from PySide6.QtCharts import QLineSeries, QXYSeries, QChart, QChartView
+from typing import Union
+
+
+PointConfig = QXYSeries.PointConfiguration
+
+
+class ChartWindow(QMainWindow):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.setWindowTitle("Chart")
+ self._series = QLineSeries(self)
+ self._series.setName("Customized series")
+ self._series.setPointsVisible(True)
+ self._series.append([QPointF(0, 7), QPointF(2, 4),
+ QPointF(3, 5), QPointF(7, 4),
+ QPointF(10, 5), QPointF(11, 1),
+ QPointF(13, 3), QPointF(17, 6),
+ QPointF(18, 3), QPointF(20, 2)])
+
+ selected_point_index_label = QLabel("Selected Point: ")
+ self._selected_point_index_lineedit = QLineEdit()
+ self._selected_point_index_lineedit.setReadOnly(True)
+ self._selected_point_index_lineedit.setStyleSheet(
+ "background-color: rgba(0, 0, 0, 0); border: 0px")
+
+ color_label = QLabel("Color: ")
+ self._color_combobox = QComboBox()
+ color_strings = ["red", "orange", "yellow", "green", "blue",
+ "indigo", "violet", "black"]
+ for color_str in color_strings:
+ self._color_combobox.addItem(QIcon(), color_str, QColor(color_str))
+
+ size_label = QLabel("Size: ")
+ self._size_combobox = QComboBox()
+ for size in [2, 3, 4, 6, 8, 10, 12, 15]:
+ self._size_combobox.addItem(QIcon(), str(size), size)
+
+ label_visibility_label = QLabel("Label Visibility: ")
+ self._label_visibility_checkbox = QCheckBox()
+
+ custom_label_label = QLabel("Custom Label: ")
+ self._custom_label_lineedit = QLineEdit()
+
+ self._series.clicked.connect(self._select_point)
+ self._color_combobox.activated.connect(self._set_color)
+ self._size_combobox.activated.connect(self._set_size)
+ label_vis_checkbox = self._label_visibility_checkbox
+ label_vis_checkbox.clicked.connect(self._set_label_visibility)
+ clabel_lineedit = self._custom_label_lineedit
+ clabel_lineedit.editingFinished.connect(self._set_custom_label)
+
+ self._chart = QChart()
+ self._chart.addSeries(self._series)
+ self._chart.createDefaultAxes()
+
+ chart_view = QChartView(self._chart)
+ chart_view.setRenderHint(QPainter.RenderHint.Antialiasing)
+
+ control_widget = QWidget(self)
+ control_layout = QGridLayout(control_widget)
+ control_layout.setColumnStretch(1, 1)
+
+ control_layout.addWidget(selected_point_index_label, 0, 0)
+ control_layout.addWidget(self._selected_point_index_lineedit, 0, 1)
+
+ control_layout.addWidget(color_label, 1, 0)
+ control_layout.addWidget(self._color_combobox, 1, 1)
+
+ control_layout.addWidget(size_label, 2, 0)
+ control_layout.addWidget(self._size_combobox, 2, 1)
+
+ control_layout.addWidget(label_visibility_label, 3, 0)
+ control_layout.addWidget(self._label_visibility_checkbox, 3, 1, 1, 2)
+
+ control_layout.addWidget(custom_label_label, 4, 0)
+ control_layout.addWidget(self._custom_label_lineedit, 4, 1)
+
+ main_widget = QWidget(self)
+ main_layout = QHBoxLayout(main_widget)
+ main_layout.addWidget(chart_view)
+ main_layout.setStretch(0, 1)
+ main_layout.addWidget(control_widget)
+ self.setCentralWidget(main_widget)
+
+ self._select_point(4)
+
+ @Slot(QPointF)
+ def _select_point(self, point: Union[QPointF, int]):
+ try:
+ index = (self._series.points().index(point.toPoint()) if
+ isinstance(point, QPointF) else point)
+ except ValueError:
+ # Do nothing if the place that was clicked on wasn't a point.
+ return
+
+ self._series.deselectAllPoints()
+ self._series.selectPoint(index)
+ self._selectedPointIndex = index
+ self._selectedPointConfig = self._series.pointConfiguration(index)
+ selected_point = self._series.at(index)
+ selected_index_lineedit = self._selected_point_index_lineedit
+ selected_index_lineedit.setText("(" + str(selected_point.x()) + ", "
+ + str(selected_point.y()) + ")")
+ config = self._series.pointConfiguration(index)
+
+ color = config.get(PointConfig.Color) or self._series.color()
+ size = config.get(PointConfig.Size) or self._series.markerSize()
+ labelVisibility = (config.get(PointConfig.LabelVisibility)
+ or self._series.pointLabelsVisible())
+ customLabel = config.get(PointConfig.LabelFormat) or ""
+
+ combobox_value_list = [
+ (self._color_combobox, color.name(), color),
+ (self._size_combobox, str(size), size)
+ ]
+ for box, value_str, value in combobox_value_list:
+ if box.findData(value) < 0:
+ box.addItem(value_str, value)
+ box.setCurrentIndex(box.findData(value))
+
+ self._label_visibility_checkbox.setChecked(labelVisibility)
+ self._custom_label_lineedit.setText(customLabel)
+
+ @Slot(int)
+ def _set_color(self, index: int):
+ spc = self._selectedPointConfig
+ spc[PointConfig.Color] = self._color_combobox.currentData()
+ self._series.setPointConfiguration(self._selectedPointIndex, spc)
+
+ @Slot(int)
+ def _set_size(self, index: int):
+ spc = self._selectedPointConfig
+ spc[PointConfig.Size] = self._size_combobox.currentData()
+ self._series.setPointConfiguration(self._selectedPointIndex, spc)
+
+ @Slot(bool)
+ def _set_label_visibility(self, checked: bool):
+ spc = self._selectedPointConfig
+ spc[PointConfig.LabelVisibility] = checked
+ self._series.setPointConfiguration(self._selectedPointIndex, spc)
+
+ @Slot()
+ def _set_custom_label(self):
+ spc = self._selectedPointConfig
+ spc[PointConfig.LabelFormat] = self._custom_label_lineedit.text()
+ self._series.setPointConfiguration(self._selectedPointIndex, spc)
diff --git a/examples/charts/pointconfiguration/doc/pointconfiguration.png b/examples/charts/pointconfiguration/doc/pointconfiguration.png
new file mode 100644
index 000000000..791698587
--- /dev/null
+++ b/examples/charts/pointconfiguration/doc/pointconfiguration.png
Binary files differ
diff --git a/examples/charts/pointconfiguration/doc/pointconfiguration.rst b/examples/charts/pointconfiguration/doc/pointconfiguration.rst
new file mode 100644
index 000000000..ffe865d5e
--- /dev/null
+++ b/examples/charts/pointconfiguration/doc/pointconfiguration.rst
@@ -0,0 +1,144 @@
+.. role:: py(code)
+ :language: python
+
+Selected Point Configuration Example
+====================================
+
+This example shows how to configure individual points of a :py:`QLineSeries`.
+
+.. image:: pointconfiguration.png
+ :width: 90%
+ :align: center
+ :alt: Line chart with controls for configuring selected points
+
+Features demonstrated
+~~~~~~~~~~~~~~~~~~~~~
+
+In this application you will learn how to:
+
+* Select a series of points on click
+* Override the configuration for the following properties of specific points:
+
+ * Color
+ * Size
+ * Label visibility
+ * Text format of the label
+
+Subclass QMainWindow
+~~~~~~~~~~~~~~~~~~~~
+
+Create a subclass of :py:`QMainWindow` to contain the chart and controls.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 16
+ :lines: 16-18
+
+Create a line series
+~~~~~~~~~~~~~~~~~~~~
+
+Create a :py:`QLineSeries` containing the points to plot. Give it a name and make the points
+visible.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 20
+ :lines: 20-28
+
+Create the point configuration controls
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Now, create controls to configure the color, size, and label visibility attributes of a point.
+
+#. Create an associated label for each control, so the user knows what the control does.
+#. For the color and size, use a :py:`QComboBox`, populating it with a variety of colors and size
+ choices.
+#. Create the final two controls. Create a :py:`QCheckbox` to control the visibility of the selected
+ point, and a :py:`QLineEdit` to allow the user to provide a custom label for it.
+
+.. note::
+ Do not set initial values for any of the controls, as a point will always be selected showing
+ its current settings.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 31
+ :lines: 31-52
+
+Populate the controls upon selecting a point
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Add the logic to set the current control values depending on the chosen point. Note that the whole
+series value is used if there is no customization for a selected point. In this case, if the series
+is set to show blue points, a blue color value will be shown in the color combobox.
+
+Perform some actions upon clicking on the lineseries. Look up the point clicked on and remove the
+prior point selection. Finally, select the point that was clicked on. This makes the point larger to
+indicate its selection. The current selected point's index and :py:`PointConfigurations` are saved
+to a member variable for later use.
+
+Query the :py:`PointConfigurations`, and use those to find the matching indices in the combo boxes.
+Set the current indices of the comboboxes to the corresponding values you looked up. Similarly,
+look up the values in :py:`PointConfigurations`, and update the checkbox and line edit controls.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 54
+ :lines: 54
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 97
+ :lines: 97-132
+
+Provide the logic to configure the selected point
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Now that the controls are populated with some values, add logic to do something when the value
+changes. Connect the control signals and the logic, to configure the selected point based on the
+chosen values in the controls. You can do this by setting the :py:`QXYSeries::PointConfiguration`
+value that is associated with the control, to the :py:`m_selectedPointConfig` and
+:py:`PointConfigurations` member variables, and call :py:`QXYSeries::setPointConfiguration`.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 55
+ :lines: 55-60
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 140
+ :lines: 140-156
+
+Create the chart and lay out the controls
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Finally, create the chart and its view, add the series to the chart, create the layout of the
+window, and select an initial point.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 62
+ :lines: 62-95
+
+In our entrypoint file `pointconfiguration.py`, instantiate the :py:`ChartWindow`, resize it, show
+it, and start the event loop.
+
+.. literalinclude:: pointconfiguration.py
+ :linenos:
+ :lineno-start: 11
+ :lines: 11-17
+
+You now have a fully functioning application that demonstrates how to customize individual chart
+points.
+
+Usage
+-----
+To use this example, click any point you'd like to customize, change any of the comboboxes and
+checkboxes controlling the individual point color, size, label visibility. You can customize the
+label text in the line edit at the bottom.
+
+There are three special formatting strings for the label that you can use: ``@pointX``, ``@pointY``,
+and ``@index``. These are replaced with the x value, y value, and index of the point, respectively.
+More information about that can be found in the documentation for
+`QtCharts.QXYSeries.pointLabelsFormat`_.
+
+.. _`QtCharts.QXYSeries.pointLabelsFormat`: https://doc.qt.io/qtforpython/PySide6/QtCharts/QXYSeries.html#PySide6.QtCharts.PySide6.QtCharts.QXYSeries.pointLabelsFormat
diff --git a/examples/charts/pointconfiguration/pointconfiguration.py b/examples/charts/pointconfiguration/pointconfiguration.py
new file mode 100644
index 000000000..d8c90d2df
--- /dev/null
+++ b/examples/charts/pointconfiguration/pointconfiguration.py
@@ -0,0 +1,17 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Light Markers Points Selection example from Qt v6.2"""
+import sys
+from PySide6.QtWidgets import QApplication
+
+from chartwindow import ChartWindow
+
+
+if __name__ == "__main__":
+
+ a = QApplication(sys.argv)
+ main_window = ChartWindow()
+ main_window.resize(640, 480)
+ main_window.show()
+ sys.exit(a.exec())
diff --git a/examples/charts/pointconfiguration/pointconfiguration.pyproject b/examples/charts/pointconfiguration/pointconfiguration.pyproject
new file mode 100644
index 000000000..c53d798be
--- /dev/null
+++ b/examples/charts/pointconfiguration/pointconfiguration.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["pointconfiguration.py", "chartwindow.py"]
+}
diff --git a/examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.rst b/examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.rst
index cf8b9a264..e8776daf8 100644
--- a/examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.rst
+++ b/examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.rst
@@ -18,7 +18,7 @@ Creating the chart and its elements
We start by creating a series, filling it with the data, and enabling the light marker and point selection features.
It is important not to set points visibility to :py:`True`, because light markers functionality is an independent feature and setting both would result in undesired behavior.
-.. literalinclude:: ../../../../examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
+.. literalinclude:: pointselectionandmarkers.py
:linenos:
:lineno-start: 20
:lines: 20-42
@@ -26,7 +26,7 @@ It is important not to set points visibility to :py:`True`, because light marker
Then we create the :py:`QChart`, the :py:`QChartview` and the control widget with its layout to arrange customization elements.
-.. literalinclude:: ../../../../examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
+.. literalinclude:: pointselectionandmarkers.py
:lineno-start: 44
:lines: 44-53
:emphasize-lines: 1,6,9
@@ -36,7 +36,7 @@ Creating UI for configuring the chart
The next step is where we create user interface elements that allow customizing the chart, including setting light marker and selection marker images.
-.. literalinclude:: ../../../../examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
+.. literalinclude:: pointselectionandmarkers.py
:linenos:
:lineno-start: 54
:lines: 54-57
@@ -44,7 +44,7 @@ The next step is where we create user interface elements that allow customizing
We create the label for the marker selection combobox and fill the combobox with the items. We then provide functionality to the combobox, allowing the user's selection to set the desired light marker image. As light markers are enabled and disabled by setting a valid QImage or setting an empty :py:`QImage()`, we need to make sure that if the user does not wish unselected points to be displayed, we do not actually set the light marker image.
If checking isn't performed, a new :py:`QImage` will be set as the light marker and unselected points will be visible even though it has been switched off.
-.. literalinclude:: ../../../../examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
+.. literalinclude:: pointselectionandmarkers.py
:linenos:
:lineno-start: 59
:lines: 59-67
@@ -52,14 +52,14 @@ If checking isn't performed, a new :py:`QImage` will be set as the light marker
Almost the same procedure applies to the selected point light marker and line color. The only difference is that there is no need to check the visibility of unselected points as it doesn't affect the functionality.
-.. literalinclude:: ../../../../examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
+.. literalinclude:: pointselectionandmarkers.py
:linenos:
:lineno-start: 70
:lines: 70-85
A small difference comes with changing visibility of unselected points. As it was mentioned before, making light markers invisible is achieved by setting the light marker to an empty :py:`QImage()`. That is why, depending on checkbox state, selected point light marker is set to an empty :py:`QImage` or to the light marker extracted from the current index of the corresponding combobox.
-.. literalinclude:: ../../../../examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
+.. literalinclude:: pointselectionandmarkers.py
:linenos:
:lineno-start: 88
:lines: 88-97
diff --git a/examples/charts/pointselectionandmarkers/pointselectionandmarkers.py b/examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
index 4f9540d42..df7b61687 100644
--- a/examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
+++ b/examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
@@ -7,7 +7,8 @@ import sys
from PySide6.QtCore import Slot, QPointF, Qt
from PySide6.QtCharts import QChart, QChartView, QSplineSeries
from PySide6.QtGui import QPainter, QImage
-from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QGridLayout, QComboBox, QCheckBox, QLabel, QHBoxLayout
+from PySide6.QtWidgets import (QApplication, QMainWindow, QWidget, QGridLayout,
+ QComboBox, QCheckBox, QLabel, QHBoxLayout)
import utilities as Utilities
@@ -20,12 +21,12 @@ if __name__ == "__main__":
marker_size = 20.
series = QSplineSeries()
series.append([QPointF(0, 0),
- QPointF(0.5, 2.27),
- QPointF(1.5, 2.2),
- QPointF(3.3, 1.7),
- QPointF(4.23, 3.1),
- QPointF(5.3, 2.3),
- QPointF(6.47, 4.1)])
+ QPointF(0.5, 2.27),
+ QPointF(1.5, 2.2),
+ QPointF(3.3, 1.7),
+ QPointF(4.23, 3.1),
+ QPointF(5.3, 2.3),
+ QPointF(6.47, 4.1)])
series.setMarkerSize(marker_size)
series.setLightMarker(Utilities.default_light_marker(marker_size))
series.setSelectedLightMarker(Utilities.default_selected_light_marker(marker_size))
@@ -66,16 +67,16 @@ if __name__ == "__main__":
char_point_combobox.addItems(["Red rectangle", "Green triangle", "Orange circle"])
char_point_combobox.currentIndexChanged.connect(set_light_marker)
-
@Slot(int)
def set_selected_light_marker(index):
- series.setSelectedLightMarker(Utilities.get_selected_point_representation(Utilities.selected_point_type(index), marker_size))
+ series.setSelectedLightMarker(
+ Utilities.get_selected_point_representation(
+ Utilities.selected_point_type(index), marker_size))
char_point_selected = QLabel("Char point selected: ")
char_point_selected_combobox.addItems(["Blue triangle", "Yellow rectangle", "Lavender circle"])
char_point_selected_combobox.currentIndexChanged.connect(set_selected_light_marker)
-
@Slot(int)
def set_line_color(index):
series.setColor(Utilities.make_line_color(Utilities.line_color(index)))
@@ -84,11 +85,12 @@ if __name__ == "__main__":
line_color_combobox.addItems(["Blue", "Black", "Mint"])
line_color_combobox.currentIndexChanged.connect(set_line_color)
-
@Slot(int)
def display_unselected_points(checkbox_state):
if checkbox_state:
- series.setLightMarker(Utilities.get_point_representation(Utilities.point_type(char_point_combobox.currentIndex()), marker_size))
+ series.setLightMarker(
+ Utilities.get_point_representation(
+ Utilities.point_type(char_point_combobox.currentIndex()), marker_size))
else:
series.setLightMarker(QImage())
@@ -96,7 +98,6 @@ if __name__ == "__main__":
show_unselected_points_checkbox.setChecked(True)
show_unselected_points_checkbox.stateChanged.connect(display_unselected_points)
-
control_label = QLabel("Marker and Selection Controls")
control_label.setAlignment(Qt.AlignHCenter)
control_label_font = control_label.font()
diff --git a/examples/charts/pointselectionandmarkers/pointselectionandmarkers.pyproject b/examples/charts/pointselectionandmarkers/pointselectionandmarkers.pyproject
index 499a3bd3c..8c394457c 100644
--- a/examples/charts/pointselectionandmarkers/pointselectionandmarkers.pyproject
+++ b/examples/charts/pointselectionandmarkers/pointselectionandmarkers.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["pointselectionandmarkers.py", "utilities.py", "markers.qrc", "rc_markers.py"]
+ "files": ["pointselectionandmarkers.py", "utilities.py", "markers.qrc"]
}
diff --git a/examples/charts/pointselectionandmarkers/utilities.py b/examples/charts/pointselectionandmarkers/utilities.py
index 6b96d6e26..b27a2542b 100644
--- a/examples/charts/pointselectionandmarkers/utilities.py
+++ b/examples/charts/pointselectionandmarkers/utilities.py
@@ -4,7 +4,8 @@
from PySide6.QtGui import QImage, QPainter, QColor
from PySide6.QtCore import Qt
-import rc_markers
+import rc_markers # noqa: F401
+
def rectangle(point_type, image_size):
image = QImage(image_size, image_size, QImage.Format_RGB32)
@@ -15,9 +16,11 @@ def rectangle(point_type, image_size):
painter.end()
return image
+
def triangle(point_type, image_size):
return QImage(point_type[3]).scaled(image_size, image_size)
+
def circle(point_type, image_size):
image = QImage(image_size, image_size, QImage.Format_ARGB32)
image.fill(QColor(0, 0, 0, 0))
@@ -32,6 +35,7 @@ def circle(point_type, image_size):
painter.end()
return image
+
_point_types = [("RedRectangle", rectangle, Qt.red),
("GreenTriangle", triangle, Qt.green, ":/images/green_triangle.png"),
("OrangeCircle", circle, QColor(255, 127, 80))]
@@ -40,12 +44,15 @@ _selected_point_types = [("BlueTriangle", triangle, Qt.blue, ":/images/blue_tria
("LavenderCircle", circle, QColor(147, 112, 219))]
_line_colors = [("Blue", QColor(65, 105, 225)), ("Black", Qt.black), ("Mint", QColor(70, 203, 155))]
+
def point_type(index):
return _point_types[index]
+
def selected_point_type(index):
return _selected_point_types[index]
+
def line_color(index):
return _line_colors[index]
@@ -53,6 +60,7 @@ def line_color(index):
def default_light_marker(image_size):
return rectangle(_point_types[0], image_size)
+
def default_selected_light_marker(image_size):
return triangle(_selected_point_types[0], image_size)
@@ -60,8 +68,10 @@ def default_selected_light_marker(image_size):
def get_point_representation(point_type, image_size):
return point_type[1](point_type, image_size)
+
def get_selected_point_representation(point_type, image_size):
return point_type[1](point_type, image_size)
+
def make_line_color(line_color):
return line_color[1]
diff --git a/examples/charts/qmlpolarchart/qmlpolarchart.py b/examples/charts/qmlpolarchart/qmlpolarchart.py
index f12e6f5e8..6391fc305 100644
--- a/examples/charts/qmlpolarchart/qmlpolarchart.py
+++ b/examples/charts/qmlpolarchart/qmlpolarchart.py
@@ -8,8 +8,8 @@ from pathlib import Path
import sys
from PySide6.QtQuick import QQuickView
-from PySide6.QtCore import Qt, QUrl
-from PySide6.QtWidgets import QApplication, QMainWindow
+from PySide6.QtCore import QUrl
+from PySide6.QtWidgets import QApplication
if __name__ == '__main__':
diff --git a/examples/corelib/ipc/sharedmemory/dialog.py b/examples/corelib/ipc/sharedmemory/dialog.py
index c374f0119..134900047 100644
--- a/examples/corelib/ipc/sharedmemory/dialog.py
+++ b/examples/corelib/ipc/sharedmemory/dialog.py
@@ -90,4 +90,4 @@ class Dialog(QDialog):
def detach(self):
if not self._shared_memory.detach():
- self.ui.label.setText(tr("Unable to detach from shared memory."))
+ self.ui.label.setText(self.tr("Unable to detach from shared memory.")) # noqa: F821
diff --git a/examples/corelib/ipc/sharedmemory/ui_dialog.py b/examples/corelib/ipc/sharedmemory/ui_dialog.py
index 035b60d68..2cd544f40 100644
--- a/examples/corelib/ipc/sharedmemory/ui_dialog.py
+++ b/examples/corelib/ipc/sharedmemory/ui_dialog.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'dialog.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.3
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
diff --git a/examples/corelib/settingseditor/settingseditor.py b/examples/corelib/settingseditor/settingseditor.py
index b1b4dbe0e..f87a2f4b5 100644
--- a/examples/corelib/settingseditor/settingseditor.py
+++ b/examples/corelib/settingseditor/settingseditor.py
@@ -7,14 +7,20 @@
import sys
from PySide6.QtCore import (QByteArray, QDate, QDateTime, QDir, QEvent, QPoint,
- QRect, QRegularExpression, QSettings, QSize, QTime, QTimer, Qt, Slot)
+ QRect, QRegularExpression, QSettings, QSize, QTime,
+ QTimer, Qt, Slot)
from PySide6.QtGui import (QAction, QColor, QIcon, QIntValidator,
- QDoubleValidator, QRegularExpressionValidator, QValidator)
+ QDoubleValidator, QRegularExpressionValidator,
+ QValidator)
from PySide6.QtWidgets import (QAbstractItemView, QApplication,
- QCheckBox, QComboBox, QFileDialog, QDialog, QDialogButtonBox, QGridLayout,
- QGroupBox, QHeaderView, QInputDialog, QItemDelegate, QLabel, QLineEdit,
- QMainWindow, QMessageBox, QStyle, QSpinBox, QStyleOptionViewItem,
- QTableWidget, QTableWidgetItem, QTreeWidget, QTreeWidgetItem, QVBoxLayout)
+ QCheckBox, QComboBox, QFileDialog, QDialog,
+ QDialogButtonBox, QGridLayout,
+ QGroupBox, QHeaderView, QInputDialog,
+ QItemDelegate, QLabel, QLineEdit,
+ QMainWindow, QMessageBox, QStyle, QSpinBox,
+ QStyleOptionViewItem, QTableWidget,
+ QTableWidgetItem, QTreeWidget, QTreeWidgetItem,
+ QVBoxLayout)
class TypeChecker:
@@ -160,7 +166,7 @@ class MainWindow(QMainWindow):
@Slot()
def open_inifile(self):
file_name, _ = QFileDialog.getOpenFileName(self, "Open INI File",
- '', "INI Files (*.ini *.conf)")
+ '', "INI Files (*.ini *.conf)")
if file_name:
self.load_ini_file(file_name)
@@ -175,7 +181,8 @@ class MainWindow(QMainWindow):
@Slot()
def open_property_list(self):
file_name, _ = QFileDialog.getOpenFileName(self,
- "Open Property List", '', "Property List Files (*.plist)")
+ "Open Property List", '',
+ "Property List Files (*.plist)")
if file_name:
settings = QSettings(file_name, QSettings.NativeFormat)
@@ -185,8 +192,8 @@ class MainWindow(QMainWindow):
@Slot()
def open_registry_path(self):
path, ok = QInputDialog.getText(self, "Open Registry Path",
- "Enter the path in the Windows registry:",
- QLineEdit.Normal, 'HKEY_CURRENT_USER\\')
+ "Enter the path in the Windows registry:",
+ QLineEdit.Normal, 'HKEY_CURRENT_USER\\')
if ok and path != '':
settings = QSettings(path, QSettings.NativeFormat)
@@ -196,56 +203,46 @@ class MainWindow(QMainWindow):
@Slot()
def about(self):
QMessageBox.about(self, "About Settings Editor",
- "The <b>Settings Editor</b> example shows how to access "
- "application settings using Qt.")
-
- def create_actions(self):
- self._open_settings_act = QtGui.QAction("&Open Application Settings...",
- self, shortcut="Ctrl+O", triggered=self.openSettings)
-
- self._open_ini_file_act = QtGui.QAction("Open I&NI File...", self,
- shortcut="Ctrl+N", triggered=self.openIniFile)
-
- self._open_property_list_act = QtGui.QAction("Open macOS &Property List...",
- self, shortcut="Ctrl+P", triggered=self.openPropertyList)
+ "The <b>Settings Editor</b> example shows how to access "
+ "application settings using Qt.")
def create_actions(self):
self.open_settings_action = QAction("&Open Application Settings...",
- self, shortcut="Ctrl+O", triggered=self.open_settings)
+ self, shortcut="Ctrl+O", triggered=self.open_settings)
self.open_ini_file_action = QAction("Open I&NI File...", self,
- shortcut="Ctrl+N", triggered=self.open_inifile)
+ shortcut="Ctrl+N", triggered=self.open_inifile)
- self.open_property_list_action = QAction("Open macOS &Property List...",
- self, shortcut="Ctrl+P", triggered=self.open_property_list)
+ self.open_property_list_action = QAction("Open macOS &Property List...", self,
+ shortcut="Ctrl+P",
+ triggered=self.open_property_list)
if sys.platform != 'darwin':
self.open_property_list_action.setEnabled(False)
self.open_registry_path_action = QAction(
- "Open Windows &Registry Path...", self, shortcut="Ctrl+G",
- triggered=self.open_registry_path)
+ "Open Windows &Registry Path...", self, shortcut="Ctrl+G",
+ triggered=self.open_registry_path)
if sys.platform != 'win32':
self.open_registry_path_action.setEnabled(False)
self.refresh_action = QAction("&Refresh", self, shortcut="Ctrl+R",
- enabled=False, triggered=self.settings_tree.refresh)
+ enabled=False, triggered=self.settings_tree.refresh)
- self.exit_action = QAction("E&xit", self, shortcut="Ctrl+Q",
- triggered=self.close)
+ self.exit_action = QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close)
self.auto_refresh_action = QAction("&Auto-Refresh", self,
- shortcut="Ctrl+A", checkable=True, enabled=False)
+ shortcut="Ctrl+A", checkable=True, enabled=False)
self.auto_refresh_action.triggered[bool].connect(self.settings_tree.set_auto_refresh)
self.auto_refresh_action.triggered[bool].connect(self.refresh_action.setDisabled)
self.fallbacks_action = QAction("&Fallbacks", self,
- shortcut="Ctrl+F", checkable=True, enabled=False)
+ shortcut="Ctrl+F", checkable=True, enabled=False)
self.fallbacks_action.triggered[bool].connect(self.settings_tree.set_fallbacks_enabled)
self.about_action = QAction("&About", self, triggered=self.about)
self.about_Qt_action = QAction("About &Qt", self,
- triggered=qApp.aboutQt)
+ triggered=qApp.aboutQt) # noqa: F821
def create_menus(self):
self.file_menu = self.menuBar().addMenu("&File")
@@ -508,7 +505,7 @@ class SettingsTree(QTreeWidget):
# The signal might not be connected.
try:
self.itemChanged.disconnect(self.update_setting)
- except:
+ except Exception:
pass
self.settings.sync()
@@ -531,7 +528,6 @@ class SettingsTree(QTreeWidget):
key = ancestor.text(0) + '/' + key
ancestor = ancestor.parent()
- d = item.data(2, Qt.UserRole)
self.settings.setValue(key, item.data(2, Qt.UserRole))
if self.auto_refresh:
@@ -703,7 +699,7 @@ class VariantDelegate(QItemDelegate):
value = editor.value()
else:
value = self.value_from_lineedit(editor, model, index)
- if not value is None:
+ if value is not None:
model.setData(index, value, Qt.UserRole)
model.setData(index, self.display_text(value), Qt.DisplayRole)
diff --git a/examples/corelib/threads/mandelbrot.py b/examples/corelib/threads/mandelbrot.py
index b8cab06ef..4689813d4 100644
--- a/examples/corelib/threads/mandelbrot.py
+++ b/examples/corelib/threads/mandelbrot.py
@@ -30,7 +30,7 @@ INFO_KEY = 'info'
HELP = ("Use mouse wheel or the '+' and '-' keys to zoom. Press and "
- "hold left mouse button to scroll.")
+ "hold left mouse button to scroll.")
class RenderThread(QThread):
@@ -53,7 +53,8 @@ class RenderThread(QThread):
self.abort = False
for i in range(RenderThread.colormap_size):
- self.colormap.append(self.rgb_from_wave_length(380.0 + (i * 400.0 / RenderThread.colormap_size)))
+ self.colormap.append(
+ self.rgb_from_wave_length(380.0 + (i * 400.0 / RenderThread.colormap_size)))
def stop(self):
self.mutex.lock()
@@ -132,7 +133,8 @@ class RenderThread(QThread):
if num_iterations < max_iterations:
image.setPixel(x + half_width, y + half_height,
- self.colormap[num_iterations % RenderThread.colormap_size])
+ self.colormap[
+ num_iterations % RenderThread.colormap_size])
all_black = False
else:
image.setPixel(x + half_width, y + half_height, qRgb(0, 0, 0))
@@ -221,7 +223,7 @@ class MandelbrotWidget(QWidget):
if self.pixmap.isNull():
painter.setPen(Qt.white)
painter.drawText(self.rect(), Qt.AlignCenter,
- "Rendering initial image, please wait...")
+ "Rendering initial image, please wait...")
return
if self._cur_scale == self._pixmap_scale:
@@ -250,10 +252,10 @@ class MandelbrotWidget(QWidget):
painter.setPen(Qt.NoPen)
painter.setBrush(QColor(0, 0, 0, 127))
painter.drawRect((self.width() - text_width) / 2 - 5, 0, text_width + 10,
- metrics.lineSpacing() + 5)
+ metrics.lineSpacing() + 5)
painter.setPen(Qt.white)
painter.drawText((self.width() - text_width) / 2,
- metrics.leading() + metrics.ascent(), text)
+ metrics.leading() + metrics.ascent(), text)
def resizeEvent(self, event):
self.thread.render(self._center_x, self._center_y, self._cur_scale, self.size())
@@ -302,7 +304,7 @@ class MandelbrotWidget(QWidget):
delta_y = (self.height() - self.pixmap.height()) / 2 - self._pixmap_offset.y()
self.scroll(delta_x, delta_y)
- @Slot(QImage,float)
+ @Slot(QImage, float)
def update_pixmap(self, image, scale_factor):
if not self._last_drag_pos.isNull():
return
@@ -317,15 +319,13 @@ class MandelbrotWidget(QWidget):
def zoom(self, zoomFactor):
self._cur_scale *= zoomFactor
self.update()
- self.thread.render(self._center_x, self._center_y, self._cur_scale,
- self.size())
+ self.thread.render(self._center_x, self._center_y, self._cur_scale, self.size())
def scroll(self, deltaX, deltaY):
self._center_x += deltaX * self._cur_scale
self._center_y += deltaY * self._cur_scale
self.update()
- self.thread.render(self._center_x, self._center_y, self._cur_scale,
- self.size())
+ self.thread.render(self._center_x, self._center_y, self._cur_scale, self.size())
if __name__ == '__main__':
diff --git a/examples/datavisualization/graphgallery/axesinputhandler.py b/examples/datavisualization/graphgallery/axesinputhandler.py
new file mode 100644
index 000000000..7f721d4aa
--- /dev/null
+++ b/examples/datavisualization/graphgallery/axesinputhandler.py
@@ -0,0 +1,101 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum
+from math import sin, cos, degrees
+
+from PySide6.QtCore import Qt
+from PySide6.QtDataVisualization import QAbstract3DGraph, Q3DInputHandler
+
+
+class InputState(Enum):
+ StateNormal = 0
+ StateDraggingX = 1
+ StateDraggingZ = 2
+ StateDraggingY = 3
+
+
+class AxesInputHandler(Q3DInputHandler):
+
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+ self._axisX = None
+ self._axisZ = None
+ self._axisY = None
+ self._speedModifier = 15.0
+
+ # Connect to the item selection signal from graph
+ graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ def setAxes(self, axisX, axisZ, axisY):
+ self._axisX = axisX
+ self._axisZ = axisZ
+ self._axisY = axisY
+
+ def setDragSpeedModifier(self, modifier):
+ self._speedModifier = modifier
+
+ def mousePressEvent(self, event, mousePos):
+ super().mousePressEvent(event, mousePos)
+ if Qt.LeftButton == event.button():
+ self._mousePressed = True
+
+ def mouseMoveEvent(self, event, mousePos):
+ # Check if we're trying to drag axis label
+ if self._mousePressed and self._state != InputState.StateNormal:
+ self.setPreviousInputPos(self.inputPosition())
+ self.setInputPosition(mousePos)
+ self.handleAxisDragging()
+ else:
+ super().mouseMoveEvent(event, mousePos)
+
+ def mouseReleaseEvent(self, event, mousePos):
+ super().mouseReleaseEvent(event, mousePos)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+
+ def handleElementSelected(self, type):
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ self._state = InputState.StateDraggingX
+ elif type == QAbstract3DGraph.ElementAxisYLabel:
+ self._state = InputState.StateDraggingY
+ elif type == QAbstract3DGraph.ElementAxisZLabel:
+ self._state = InputState.StateDraggingZ
+ else:
+ self._state = InputState.StateNormal
+
+ def handleAxisDragging(self):
+ distance = 0.0
+ # Get scene orientation from active camera
+ ac = self.scene().activeCamera()
+ xRotation = ac.xRotation()
+ yRotation = ac.yRotation()
+
+ # Calculate directional drag multipliers based on rotation
+ xMulX = cos(degrees(xRotation))
+ xMulY = sin(degrees(xRotation))
+ zMulX = sin(degrees(xRotation))
+ zMulY = cos(degrees(xRotation))
+
+ # Get the drag amount
+ move = self.inputPosition() - self.previousInputPos()
+
+ # Flip the effect of y movement if we're viewing from below
+ yMove = -move.y() if yRotation < 0 else move.y()
+
+ # Adjust axes
+ if self._state == InputState.StateDraggingX:
+ distance = (move.x() * xMulX - yMove * xMulY) / self._speedModifier
+ self._axisX.setRange(self._axisX.min() - distance,
+ self._axisX.max() - distance)
+ elif self._state == InputState.StateDraggingZ:
+ distance = (move.x() * zMulX + yMove * zMulY) / self._speedModifier
+ self._axisZ.setRange(self._axisZ.min() + distance,
+ self._axisZ.max() + distance)
+ elif self._state == InputState.StateDraggingY:
+ # No need to use adjusted y move here
+ distance = move.y() / self._speedModifier
+ self._axisY.setRange(self._axisY.min() + distance,
+ self._axisY.max() + distance)
diff --git a/examples/datavisualization/graphgallery/bargraph.py b/examples/datavisualization/graphgallery/bargraph.py
new file mode 100644
index 000000000..7938a5ca1
--- /dev/null
+++ b/examples/datavisualization/graphgallery/bargraph.py
@@ -0,0 +1,276 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from graphmodifier import GraphModifier
+
+from PySide6.QtCore import QObject, Qt
+from PySide6.QtGui import QFont
+from PySide6.QtWidgets import (QButtonGroup, QCheckBox, QComboBox, QFontComboBox,
+ QLabel, QPushButton, QHBoxLayout, QSizePolicy,
+ QRadioButton, QSlider, QVBoxLayout, QWidget)
+from PySide6.QtDataVisualization import (QAbstract3DGraph, QAbstract3DSeries, Q3DBars)
+
+
+class BarGraph(QObject):
+
+ def __init__(self):
+ super().__init__()
+ self._barsGraph = Q3DBars()
+ self._container = None
+ self._barsWidget = None
+
+ def barsWidget(self):
+ return self._barsWidget
+
+ def initialize(self, minimum_graph_size, maximum_graph_size):
+ if not self._barsGraph.hasContext():
+ return False
+
+ self._barsWidget = QWidget()
+ hLayout = QHBoxLayout(self._barsWidget)
+ self._container = QWidget.createWindowContainer(self._barsGraph,
+ self._barsWidget)
+ self._container.setMinimumSize(minimum_graph_size)
+ self._container.setMaximumSize(maximum_graph_size)
+ self._container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._container.setFocusPolicy(Qt.StrongFocus)
+ hLayout.addWidget(self._container, 1)
+
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+
+ themeList = QComboBox(self._barsWidget)
+ themeList.addItem("Qt")
+ themeList.addItem("Primary Colors")
+ themeList.addItem("Digia")
+ themeList.addItem("Stone Moss")
+ themeList.addItem("Army Blue")
+ themeList.addItem("Retro")
+ themeList.addItem("Ebony")
+ themeList.addItem("Isabelle")
+ themeList.setCurrentIndex(0)
+
+ labelButton = QPushButton(self._barsWidget)
+ labelButton.setText("Change label style")
+
+ smoothCheckBox = QCheckBox(self._barsWidget)
+ smoothCheckBox.setText("Smooth bars")
+ smoothCheckBox.setChecked(False)
+
+ barStyleList = QComboBox(self._barsWidget)
+ barStyleList.addItem("Bar", QAbstract3DSeries.MeshBar)
+ barStyleList.addItem("Pyramid", QAbstract3DSeries.MeshPyramid)
+ barStyleList.addItem("Cone", QAbstract3DSeries.MeshCone)
+ barStyleList.addItem("Cylinder", QAbstract3DSeries.MeshCylinder)
+ barStyleList.addItem("Bevel bar", QAbstract3DSeries.MeshBevelBar)
+ barStyleList.addItem("Sphere", QAbstract3DSeries.MeshSphere)
+ barStyleList.setCurrentIndex(4)
+
+ cameraButton = QPushButton(self._barsWidget)
+ cameraButton.setText("Change camera preset")
+
+ zoomToSelectedButton = QPushButton(self._barsWidget)
+ zoomToSelectedButton.setText("Zoom to selected bar")
+
+ selectionModeList = QComboBox(self._barsWidget)
+ selectionModeList.addItem("None", QAbstract3DGraph.SelectionNone)
+ selectionModeList.addItem("Bar", QAbstract3DGraph.SelectionItem)
+ selectionModeList.addItem("Row", QAbstract3DGraph.SelectionRow)
+ sel = QAbstract3DGraph.SelectionItemAndRow
+ selectionModeList.addItem("Bar and Row", sel)
+ selectionModeList.addItem("Column", QAbstract3DGraph.SelectionColumn)
+ sel = QAbstract3DGraph.SelectionItemAndColumn
+ selectionModeList.addItem("Bar and Column", sel)
+ sel = QAbstract3DGraph.SelectionRowAndColumn
+ selectionModeList.addItem("Row and Column", sel)
+ sel = QAbstract3DGraph.SelectionItemRowAndColumn
+ selectionModeList.addItem("Bar, Row and Column", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionRow
+ selectionModeList.addItem("Slice into Row", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionItemAndRow
+ selectionModeList.addItem("Slice into Row and Item", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionColumn
+ selectionModeList.addItem("Slice into Column", sel)
+ sel = (QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionItemAndColumn)
+ selectionModeList.addItem("Slice into Column and Item", sel)
+ sel = (QAbstract3DGraph.SelectionItemRowAndColumn | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi: Bar, Row, Col", sel)
+ sel = (QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionItemAndRow
+ | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi, Slice: Row, Item", sel)
+ sel = (QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionItemAndColumn
+ | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi, Slice: Col, Item", sel)
+ selectionModeList.setCurrentIndex(1)
+
+ backgroundCheckBox = QCheckBox(self._barsWidget)
+ backgroundCheckBox.setText("Show background")
+ backgroundCheckBox.setChecked(False)
+
+ gridCheckBox = QCheckBox(self._barsWidget)
+ gridCheckBox.setText("Show grid")
+ gridCheckBox.setChecked(True)
+
+ seriesCheckBox = QCheckBox(self._barsWidget)
+ seriesCheckBox.setText("Show second series")
+ seriesCheckBox.setChecked(False)
+
+ reverseValueAxisCheckBox = QCheckBox(self._barsWidget)
+ reverseValueAxisCheckBox.setText("Reverse value axis")
+ reverseValueAxisCheckBox.setChecked(False)
+
+ reflectionCheckBox = QCheckBox(self._barsWidget)
+ reflectionCheckBox.setText("Show reflections")
+ reflectionCheckBox.setChecked(False)
+
+ rotationSliderX = QSlider(Qt.Horizontal, self._barsWidget)
+ rotationSliderX.setTickInterval(30)
+ rotationSliderX.setTickPosition(QSlider.TicksBelow)
+ rotationSliderX.setMinimum(-180)
+ rotationSliderX.setValue(0)
+ rotationSliderX.setMaximum(180)
+ rotationSliderY = QSlider(Qt.Horizontal, self._barsWidget)
+ rotationSliderY.setTickInterval(15)
+ rotationSliderY.setTickPosition(QSlider.TicksAbove)
+ rotationSliderY.setMinimum(-90)
+ rotationSliderY.setValue(0)
+ rotationSliderY.setMaximum(90)
+
+ fontSizeSlider = QSlider(Qt.Horizontal, self._barsWidget)
+ fontSizeSlider.setTickInterval(10)
+ fontSizeSlider.setTickPosition(QSlider.TicksBelow)
+ fontSizeSlider.setMinimum(1)
+ fontSizeSlider.setValue(30)
+ fontSizeSlider.setMaximum(100)
+
+ fontList = QFontComboBox(self._barsWidget)
+ fontList.setCurrentFont(QFont("Times New Roman"))
+
+ shadowQuality = QComboBox(self._barsWidget)
+ shadowQuality.addItem("None")
+ shadowQuality.addItem("Low")
+ shadowQuality.addItem("Medium")
+ shadowQuality.addItem("High")
+ shadowQuality.addItem("Low Soft")
+ shadowQuality.addItem("Medium Soft")
+ shadowQuality.addItem("High Soft")
+ shadowQuality.setCurrentIndex(5)
+
+ rangeList = QComboBox(self._barsWidget)
+ rangeList.addItem("2015")
+ rangeList.addItem("2016")
+ rangeList.addItem("2017")
+ rangeList.addItem("2018")
+ rangeList.addItem("2019")
+ rangeList.addItem("2020")
+ rangeList.addItem("2021")
+ rangeList.addItem("2022")
+ rangeList.addItem("All")
+ rangeList.setCurrentIndex(8)
+
+ axisTitlesVisibleCB = QCheckBox(self._barsWidget)
+ axisTitlesVisibleCB.setText("Axis titles visible")
+ axisTitlesVisibleCB.setChecked(True)
+
+ axisTitlesFixedCB = QCheckBox(self._barsWidget)
+ axisTitlesFixedCB.setText("Axis titles fixed")
+ axisTitlesFixedCB.setChecked(True)
+
+ axisLabelRotationSlider = QSlider(Qt.Horizontal, self._barsWidget)
+ axisLabelRotationSlider.setTickInterval(10)
+ axisLabelRotationSlider.setTickPosition(QSlider.TicksBelow)
+ axisLabelRotationSlider.setMinimum(0)
+ axisLabelRotationSlider.setValue(30)
+ axisLabelRotationSlider.setMaximum(90)
+
+ modeGroup = QButtonGroup(self._barsWidget)
+ modeWeather = QRadioButton("Temperature Data", self._barsWidget)
+ modeWeather.setChecked(True)
+ modeCustomProxy = QRadioButton("Custom Proxy Data", self._barsWidget)
+ modeGroup.addButton(modeWeather)
+ modeGroup.addButton(modeCustomProxy)
+
+ vLayout.addWidget(QLabel("Rotate horizontally"))
+ vLayout.addWidget(rotationSliderX, 0, Qt.AlignTop)
+ vLayout.addWidget(QLabel("Rotate vertically"))
+ vLayout.addWidget(rotationSliderY, 0, Qt.AlignTop)
+ vLayout.addWidget(labelButton, 0, Qt.AlignTop)
+ vLayout.addWidget(cameraButton, 0, Qt.AlignTop)
+ vLayout.addWidget(zoomToSelectedButton, 0, Qt.AlignTop)
+ vLayout.addWidget(backgroundCheckBox)
+ vLayout.addWidget(gridCheckBox)
+ vLayout.addWidget(smoothCheckBox)
+ vLayout.addWidget(reflectionCheckBox)
+ vLayout.addWidget(seriesCheckBox)
+ vLayout.addWidget(reverseValueAxisCheckBox)
+ vLayout.addWidget(axisTitlesVisibleCB)
+ vLayout.addWidget(axisTitlesFixedCB)
+ vLayout.addWidget(QLabel("Show year"))
+ vLayout.addWidget(rangeList)
+ vLayout.addWidget(QLabel("Change bar style"))
+ vLayout.addWidget(barStyleList)
+ vLayout.addWidget(QLabel("Change selection mode"))
+ vLayout.addWidget(selectionModeList)
+ vLayout.addWidget(QLabel("Change theme"))
+ vLayout.addWidget(themeList)
+ vLayout.addWidget(QLabel("Adjust shadow quality"))
+ vLayout.addWidget(shadowQuality)
+ vLayout.addWidget(QLabel("Change font"))
+ vLayout.addWidget(fontList)
+ vLayout.addWidget(QLabel("Adjust font size"))
+ vLayout.addWidget(fontSizeSlider)
+ vLayout.addWidget(QLabel("Axis label rotation"))
+ vLayout.addWidget(axisLabelRotationSlider, 0, Qt.AlignTop)
+ vLayout.addWidget(modeWeather, 0, Qt.AlignTop)
+ vLayout.addWidget(modeCustomProxy, 1, Qt.AlignTop)
+
+ self._modifier = GraphModifier(self._barsGraph, self)
+
+ rotationSliderX.valueChanged.connect(self._modifier.rotateX)
+ rotationSliderY.valueChanged.connect(self._modifier.rotateY)
+
+ labelButton.clicked.connect(self._modifier.changeLabelBackground)
+ cameraButton.clicked.connect(self._modifier.changePresetCamera)
+ zoomToSelectedButton.clicked.connect(self._modifier.zoomToSelectedBar)
+
+ backgroundCheckBox.stateChanged.connect(self._modifier.setBackgroundEnabled)
+ gridCheckBox.stateChanged.connect(self._modifier.setGridEnabled)
+ smoothCheckBox.stateChanged.connect(self._modifier.setSmoothBars)
+ seriesCheckBox.stateChanged.connect(self._modifier.setSeriesVisibility)
+ reverseValueAxisCheckBox.stateChanged.connect(self._modifier.setReverseValueAxis)
+ reflectionCheckBox.stateChanged.connect(self._modifier.setReflection)
+
+ self._modifier.backgroundEnabledChanged.connect(backgroundCheckBox.setChecked)
+ self._modifier.gridEnabledChanged.connect(gridCheckBox.setChecked)
+
+ rangeList.currentIndexChanged.connect(self._modifier.changeRange)
+
+ barStyleList.currentIndexChanged.connect(self._modifier.changeStyle)
+
+ selectionModeList.currentIndexChanged.connect(self._modifier.changeSelectionMode)
+
+ themeList.currentIndexChanged.connect(self._modifier.changeTheme)
+
+ shadowQuality.currentIndexChanged.connect(self._modifier.changeShadowQuality)
+
+ self._modifier.shadowQualityChanged.connect(shadowQuality.setCurrentIndex)
+ self._barsGraph.shadowQualityChanged.connect(self._modifier.shadowQualityUpdatedByVisual)
+
+ fontSizeSlider.valueChanged.connect(self._modifier.changeFontSize)
+ fontList.currentFontChanged.connect(self._modifier.changeFont)
+
+ self._modifier.fontSizeChanged.connect(fontSizeSlider.setValue)
+ self._modifier.fontChanged.connect(fontList.setCurrentFont)
+
+ axisTitlesVisibleCB.stateChanged.connect(self._modifier.setAxisTitleVisibility)
+ axisTitlesFixedCB.stateChanged.connect(self._modifier.setAxisTitleFixed)
+ axisLabelRotationSlider.valueChanged.connect(self._modifier.changeLabelRotation)
+
+ modeWeather.toggled.connect(self._modifier.setDataModeToWeather)
+ modeCustomProxy.toggled.connect(self._modifier.setDataModeToCustom)
+ modeWeather.toggled.connect(seriesCheckBox.setEnabled)
+ modeWeather.toggled.connect(rangeList.setEnabled)
+ modeWeather.toggled.connect(axisTitlesVisibleCB.setEnabled)
+ modeWeather.toggled.connect(axisTitlesFixedCB.setEnabled)
+ modeWeather.toggled.connect(axisLabelRotationSlider.setEnabled)
+ return True
diff --git a/examples/datavisualization/graphgallery/custominputhandler.py b/examples/datavisualization/graphgallery/custominputhandler.py
new file mode 100644
index 000000000..0402be607
--- /dev/null
+++ b/examples/datavisualization/graphgallery/custominputhandler.py
@@ -0,0 +1,177 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum
+from math import sin, cos, degrees
+
+from PySide6.QtCore import Qt
+from PySide6.QtDataVisualization import (QAbstract3DGraph, Q3DInputHandler)
+
+
+class InputState(Enum):
+ StateNormal = 0
+ StateDraggingX = 1
+ StateDraggingZ = 2
+ StateDraggingY = 3
+
+
+class CustomInputHandler(Q3DInputHandler):
+
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._highlight = None
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+ self._axisX = None
+ self._axisY = None
+ self._axisZ = None
+ self._speedModifier = 20.0
+ self._aspectRatio = 0.0
+ self._axisXMinValue = 0.0
+ self._axisXMaxValue = 0.0
+ self._axisXMinRange = 0.0
+ self._axisZMinValue = 0.0
+ self._axisZMaxValue = 0.0
+ self._axisZMinRange = 0.0
+ self._areaMinValue = 0.0
+ self._areaMaxValue = 0.0
+
+ # Connect to the item selection signal from graph
+ graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ def setAspectRatio(self, ratio):
+ self._aspectRatio = ratio
+
+ def setHighlightSeries(self, series):
+ self._highlight = series
+
+ def setDragSpeedModifier(self, modifier):
+ self._speedModifier = modifier
+
+ def setLimits(self, min, max, minRange):
+ self._areaMinValue = min
+ self._areaMaxValue = max
+ self._axisXMinValue = self._areaMinValue
+ self._axisXMaxValue = self._areaMaxValue
+ self._axisZMinValue = self._areaMinValue
+ self._axisZMaxValue = self._areaMaxValue
+ self._axisXMinRange = minRange
+ self._axisZMinRange = minRange
+
+ def setAxes(self, axisX, axisY, axisZ):
+ self._axisX = axisX
+ self._axisY = axisY
+ self._axisZ = axisZ
+
+ def mousePressEvent(self, event, mousePos):
+ if Qt.LeftButton == event.button():
+ self._highlight.setVisible(False)
+ self._mousePressed = True
+ super().mousePressEvent(event, mousePos)
+
+ def wheelEvent(self, event):
+ delta = float(event.angleDelta().y())
+
+ self._axisXMinValue += delta
+ self._axisXMaxValue -= delta
+ self._axisZMinValue += delta
+ self._axisZMaxValue -= delta
+ self.checkConstraints()
+
+ y = (self._axisXMaxValue - self._axisXMinValue) * self._aspectRatio
+
+ self._axisX.setRange(self._axisXMinValue, self._axisXMaxValue)
+ self._axisY.setRange(100.0, y)
+ self._axisZ.setRange(self._axisZMinValue, self._axisZMaxValue)
+
+ def mouseMoveEvent(self, event, mousePos):
+ # Check if we're trying to drag axis label
+ if self._mousePressed and self._state != InputState.StateNormal:
+ self.setPreviousInputPos(self.inputPosition())
+ self.setInputPosition(mousePos)
+ self.handleAxisDragging()
+ else:
+ super().mouseMoveEvent(event, mousePos)
+
+ def mouseReleaseEvent(self, event, mousePos):
+ super().mouseReleaseEvent(event, mousePos)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+
+ def handleElementSelected(self, type):
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ self._state = InputState.StateDraggingX
+ elif type == QAbstract3DGraph.ElementAxisZLabel:
+ self._state = InputState.StateDraggingZ
+ else:
+ self._state = InputState.StateNormal
+
+ def handleAxisDragging(self):
+ distance = 0.0
+
+ # Get scene orientation from active camera
+ xRotation = self.scene().activeCamera().xRotation()
+
+ # Calculate directional drag multipliers based on rotation
+ xMulX = cos(degrees(xRotation))
+ xMulY = sin(degrees(xRotation))
+ zMulX = xMulY
+ zMulY = xMulX
+
+ # Get the drag amount
+ move = self.inputPosition() - self.previousInputPos()
+
+ # Adjust axes
+ if self._state == InputState.StateDraggingX:
+ distance = (move.x() * xMulX - move.y() * xMulY) * self._speedModifier
+ self._axisXMinValue -= distance
+ self._axisXMaxValue -= distance
+ if self._axisXMinValue < self._areaMinValue:
+ dist = self._axisXMaxValue - self._axisXMinValue
+ self._axisXMinValue = self._areaMinValue
+ self._axisXMaxValue = self._axisXMinValue + dist
+
+ if self._axisXMaxValue > self._areaMaxValue:
+ dist = self._axisXMaxValue - self._axisXMinValue
+ self._axisXMaxValue = self._areaMaxValue
+ self._axisXMinValue = self._axisXMaxValue - dist
+
+ self._axisX.setRange(self._axisXMinValue, self._axisXMaxValue)
+ elif self._state == InputState.StateDraggingZ:
+ distance = (move.x() * zMulX + move.y() * zMulY) * self._speedModifier
+ self._axisZMinValue += distance
+ self._axisZMaxValue += distance
+ if self._axisZMinValue < self._areaMinValue:
+ dist = self._axisZMaxValue - self._axisZMinValue
+ self._axisZMinValue = self._areaMinValue
+ self._axisZMaxValue = self._axisZMinValue + dist
+
+ if self._axisZMaxValue > self._areaMaxValue:
+ dist = self._axisZMaxValue - self._axisZMinValue
+ self._axisZMaxValue = self._areaMaxValue
+ self._axisZMinValue = self._axisZMaxValue - dist
+
+ self._axisZ.setRange(self._axisZMinValue, self._axisZMaxValue)
+
+ def checkConstraints(self):
+ if self._axisXMinValue < self._areaMinValue:
+ self._axisXMinValue = self._areaMinValue
+ if self._axisXMaxValue > self._areaMaxValue:
+ self._axisXMaxValue = self._areaMaxValue
+ # Don't allow too much zoom in
+ range = self._axisXMaxValue - self._axisXMinValue
+ if range < self._axisXMinRange:
+ adjust = (self._axisXMinRange - range) / 2.0
+ self._axisXMinValue -= adjust
+ self._axisXMaxValue += adjust
+
+ if self._axisZMinValue < self._areaMinValue:
+ self._axisZMinValue = self._areaMinValue
+ if self._axisZMaxValue > self._areaMaxValue:
+ self._axisZMaxValue = self._areaMaxValue
+ # Don't allow too much zoom in
+ range = self._axisZMaxValue - self._axisZMinValue
+ if range < self._axisZMinRange:
+ adjust = (self._axisZMinRange - range) / 2.0
+ self._axisZMinValue -= adjust
+ self._axisZMaxValue += adjust
diff --git a/examples/datavisualization/graphgallery/data/layer_1.png b/examples/datavisualization/graphgallery/data/layer_1.png
new file mode 100644
index 000000000..9138c710a
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/layer_1.png
Binary files differ
diff --git a/examples/datavisualization/graphgallery/data/layer_2.png b/examples/datavisualization/graphgallery/data/layer_2.png
new file mode 100644
index 000000000..61631ae8b
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/layer_2.png
Binary files differ
diff --git a/examples/datavisualization/graphgallery/data/layer_3.png b/examples/datavisualization/graphgallery/data/layer_3.png
new file mode 100644
index 000000000..066ffbe75
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/layer_3.png
Binary files differ
diff --git a/examples/datavisualization/graphgallery/data/license.txt b/examples/datavisualization/graphgallery/data/license.txt
new file mode 100644
index 000000000..749daf31f
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/license.txt
@@ -0,0 +1,77 @@
+License information regarding the data obtained from National Land Survey of
+Finland http://www.maanmittauslaitos.fi/en
+- topographic model from Elevation model 2 m (U4421B, U4421D, U4422A and
+ U4422C) 08/2014
+- map image extracted from Topographic map raster 1:50 000 (U442) 08/2014
+
+National Land Survey open data licence - version 1.0 - 1 May 2012
+
+1. General information
+
+The National Land Survey of Finland (hereinafter the Licensor), as the holder
+of the immaterial rights to the data, has granted on the terms mentioned below
+the right to use a copy (hereinafter data or dataset(s)) of the data (or a part
+of it).
+
+The Licensee is a natural or legal person who makes use of the data covered by
+this licence. The Licensee accepts the terms of this licence by receiving the
+dataset(s) covered by the licence.
+
+This Licence agreement does not create a co-operation or business relationship
+between the Licensee and the Licensor.
+
+2. Terms of the licence
+
+2.1. Right of use
+
+This licence grants a worldwide, free of charge and irrevocable parallel right
+of use to open data. According to the terms of the licence, data received by
+the Licensee can be freely:
+ - copied, distributed and published,
+ - modified and utilised commercially and non-commercially,
+ - inserted into other products and
+ - used as a part of a software application or service.
+
+2.2. Duties and responsibilities of the Licensee
+
+Through reasonable means suitable to the distribution medium or method which is
+used in conjunction with a product containing data or a service utilising data
+covered by this licence or while distributing data, the Licensee shall:
+ - mention the name of the Licensor, the name of the dataset(s) and the time
+ when the National Land Survey has delivered the dataset(s) (e.g.: contains
+ data from the National Land Survey of Finland Topographic Database 06/2012)
+ - provide a copy of this licence or a link to it, as well as
+ - require third parties to provide the same information when granting rights
+ to copies of dataset(s) or products and services containing such data and
+ - remove the name of the Licensor from the product or service, if required to
+ do so by the Licensor.
+
+The terms of this licence do not allow the Licensee to state in conjunction
+with the use of dataset(s) that the Licensor supports or recommends such use.
+
+2.3. Duties and responsibilities of the Licensor
+
+The Licensor shall ensure that
+ - the Licensor has the right to grant rights to the dataset(s) in accordance
+ with this licence.
+
+The data has been licensed "as is" and the Licensor
+ - shall not be held responsible for any errors or omissions in the data,
+ disclaims any warranty for the validity or up to date status of the data and
+ shall be free from liability for direct or consequential damages arising
+ from the use of data provided by the Licensor,
+ - and is not obligated to ensure the continuous availability of the data, nor
+ to announce in advance the interruption or cessation of availability, and
+ the Licensor shall be free from liability for direct or consequential
+ damages arising from any such interruption or cessation.
+
+3. Jurisdiction
+
+Finnish law shall apply to this licence.
+
+4. Changes to this licence
+
+The Licensor may at any time change the terms of the licence or apply a
+different licence to the data. The terms of this licence shall, however, still
+apply to such data that has been received prior to the change of the terms of
+the licence or the licence itself.
diff --git a/examples/datavisualization/graphgallery/data/maptexture.jpg b/examples/datavisualization/graphgallery/data/maptexture.jpg
new file mode 100644
index 000000000..ae5d66ebe
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/maptexture.jpg
Binary files differ
diff --git a/examples/datavisualization/graphgallery/data/oilrig.obj b/examples/datavisualization/graphgallery/data/oilrig.obj
new file mode 100644
index 000000000..c3b6ea570
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/oilrig.obj
@@ -0,0 +1,2322 @@
+# Blender v2.66 (sub 0) OBJ File: 'oilrig.blend'
+# www.blender.org
+v 0.057462 2.272318 -1.170324
+v 0.057461 8.181165 -0.128434
+v 0.055540 2.268930 -1.151111
+v 0.055539 8.177776 -0.109221
+v 0.049849 2.265673 -1.132637
+v 0.049849 8.174520 -0.090747
+v 0.040608 2.262671 -1.115611
+v 0.040608 8.171517 -0.073721
+v 0.028172 2.260039 -1.100687
+v 0.028172 8.168886 -0.058798
+v 0.013019 2.257880 -1.088440
+v 0.013018 8.166726 -0.046550
+v -0.004270 2.256275 -1.079339
+v -0.004271 8.165121 -0.037450
+v -0.023029 2.255287 -1.073735
+v -0.023030 8.164133 -0.031846
+v -0.042539 2.254953 -1.071843
+v -0.042539 8.163799 -0.029953
+v -0.062048 2.255287 -1.073735
+v -0.062048 8.164133 -0.031846
+v -0.080807 2.256275 -1.079339
+v -0.080808 8.165121 -0.037450
+v -0.098096 2.257880 -1.088440
+v -0.098096 8.166726 -0.046550
+v -0.113249 2.260039 -1.100687
+v -0.113250 8.168886 -0.058798
+v -0.125685 2.262671 -1.115611
+v -0.125686 8.171517 -0.073721
+v -0.134926 2.265673 -1.132637
+v -0.134927 8.174520 -0.090747
+v -0.140617 2.268930 -1.151111
+v -0.140618 8.177776 -0.109222
+v -0.142538 2.272318 -1.170324
+v -0.142539 8.181165 -0.128434
+v -0.140617 2.275706 -1.189536
+v -0.140618 8.184552 -0.147647
+v -0.134926 2.278963 -1.208011
+v -0.134927 8.187810 -0.166121
+v -0.125685 2.281965 -1.225037
+v -0.125686 8.190812 -0.183147
+v -0.113249 2.284597 -1.239960
+v -0.113250 8.193443 -0.198071
+v -0.098095 2.286757 -1.252208
+v -0.098096 8.195602 -0.210318
+v -0.080807 2.288361 -1.261308
+v -0.080807 8.197207 -0.219419
+v -0.062047 2.289349 -1.266912
+v -0.062048 8.198195 -0.225023
+v -0.042538 2.289683 -1.268804
+v -0.042539 8.198529 -0.226915
+v -0.023029 2.289349 -1.266912
+v -0.023030 8.198195 -0.225023
+v -0.004270 2.288361 -1.261308
+v -0.004271 8.197207 -0.219418
+v 0.013019 2.286757 -1.252207
+v 0.013018 8.195602 -0.210318
+v 0.028172 2.284597 -1.239960
+v 0.028172 8.193443 -0.198070
+v 0.040609 2.281965 -1.225036
+v 0.040608 8.190812 -0.183147
+v 0.049850 2.278963 -1.208010
+v 0.049849 8.187810 -0.166121
+v 0.055540 2.275706 -1.189536
+v 0.055539 8.184552 -0.147646
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.961940 0.308658
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.990393 0.597545
+vt 0.915735 0.222215
+vt 0.961940 0.691342
+vt 0.853553 0.146447
+vt 0.915735 0.777785
+vt 0.777785 0.084265
+vt 0.853553 0.853553
+vt 0.691342 0.038060
+vt 0.777785 0.915735
+vt 0.597545 0.009607
+vt 0.691342 0.961940
+vt 0.000000 0.500000
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.038060 0.691342
+vt 0.009607 0.597546
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.308659 0.961940
+vt 0.222215 0.915735
+vt 0.084265 0.222215
+vt 0.146447 0.853554
+vt 0.084266 0.777786
+vn 0.995185 -0.017020 0.096528
+vn 0.956940 -0.050408 0.285877
+vn 0.881921 -0.081857 0.464235
+vn 0.773009 -0.110162 0.624758
+vn 0.634397 -0.134231 0.761264
+vn 0.471397 -0.153144 0.868523
+vn 0.290285 -0.166171 0.942402
+vn 0.098018 -0.172812 0.980066
+vn -0.098022 -0.172812 0.980065
+vn -0.290285 -0.166171 0.942402
+vn -0.471392 -0.153145 0.868526
+vn -0.634399 -0.134231 0.761262
+vn -0.773009 -0.110162 0.624757
+vn -0.881923 -0.081857 0.464231
+vn -0.956941 -0.050407 0.285873
+vn -0.995185 -0.017021 0.096528
+vn -0.995185 0.017021 -0.096529
+vn -0.956940 0.050407 -0.285875
+vn -0.881920 0.081858 -0.464238
+vn -0.773015 0.110160 -0.624751
+vn -0.634391 0.134232 -0.761268
+vn -0.471394 0.153144 -0.868524
+vn -0.290288 0.166171 -0.942401
+vn -0.098006 0.172812 -0.980067
+vn 0.098019 0.172812 -0.980065
+vn 0.290285 0.166171 -0.942402
+vn 0.471401 0.153144 -0.868521
+vn 0.634393 0.134232 -0.761267
+vn 0.773011 0.110161 -0.624755
+vn 0.881922 0.081857 -0.464233
+vn -0.000000 0.984796 0.173713
+vn 0.995185 0.017020 -0.096527
+vn 0.956941 0.050407 -0.285872
+vn -0.000011 -0.984808 -0.173648
+vn 0.995185 -0.017020 0.096529
+vn 0.956940 -0.050407 0.285875
+vn 0.881920 -0.081858 0.464237
+vn 0.773011 -0.110161 0.624755
+vn 0.634396 -0.134231 0.761265
+vn 0.471389 -0.153145 0.868527
+vn 0.290287 -0.166171 0.942402
+vn 0.098019 -0.172812 0.980065
+vn -0.098021 -0.172812 0.980065
+vn -0.290282 -0.166171 0.942403
+vn -0.471402 -0.153144 0.868520
+vn -0.634395 -0.134232 0.761265
+vn -0.773010 -0.110161 0.624756
+vn -0.881922 -0.081857 0.464234
+vn -0.956940 -0.050408 0.285875
+vn -0.995185 -0.017020 0.096527
+vn -0.956940 0.050408 -0.285876
+vn -0.881921 0.081857 -0.464236
+vn -0.773009 0.110162 -0.624757
+vn -0.634391 0.134232 -0.761269
+vn -0.471398 0.153144 -0.868522
+vn -0.290282 0.166171 -0.942403
+vn -0.098016 0.172812 -0.980066
+vn 0.098018 0.172812 -0.980065
+vn 0.290287 0.166171 -0.942402
+vn 0.471399 0.153144 -0.868522
+vn 0.773014 0.110161 -0.624751
+vn 0.881921 0.081857 -0.464236
+vn -0.000000 0.984812 0.173622
+vn -0.000000 0.984812 0.173623
+vn -0.000000 0.984801 0.173685
+vn -0.000000 0.984814 0.173615
+vn -0.000000 0.984810 0.173634
+vn -0.000000 0.984808 0.173649
+vn -0.000000 0.984806 0.173660
+vn -0.000043 0.984788 0.173763
+vn -0.000000 0.984797 0.173710
+vn -0.000000 0.984805 0.173661
+vn -0.000000 0.984810 0.173635
+vn -0.000000 0.984810 0.173637
+vn -0.000000 0.984802 0.173683
+vn -0.000000 0.984814 0.173611
+vn -0.000000 0.984800 0.173689
+vn -0.000000 0.984800 0.173690
+vn -0.000000 0.984801 0.173686
+vn 0.000005 0.984810 0.173637
+vn 0.956941 0.050407 -0.285873
+vn -0.000000 -0.984818 -0.173587
+vn -0.000007 -0.984807 -0.173654
+vn -0.000000 -0.984808 -0.173648
+vn -0.000027 -0.984801 -0.173685
+vn -0.000004 -0.984807 -0.173652
+vn -0.000010 -0.984800 -0.173693
+vn -0.000020 -0.984817 -0.173596
+vn -0.000013 -0.984810 -0.173638
+vn -0.000001 -0.984807 -0.173650
+vn -0.000005 -0.984808 -0.173646
+vn -0.000002 -0.984808 -0.173648
+vn 0.000002 -0.984808 -0.173649
+vn 0.000001 -0.984808 -0.173649
+vn -0.000011 -0.984809 -0.173642
+vn -0.000004 -0.984808 -0.173646
+vn -0.000001 -0.984808 -0.173648
+vn -0.000002 -0.984808 -0.173649
+vn -0.000006 -0.984808 -0.173649
+vn 0.000004 -0.984808 -0.173648
+vn 0.000000 -0.984808 -0.173649
+vn -0.000004 -0.984807 -0.173650
+vn 0.000005 -0.984808 -0.173646
+vn 0.000003 -0.984808 -0.173647
+vn 0.000008 -0.984805 -0.173663
+s off
+f 1/1/1 2/2/1 4/3/1
+f 3/1/2 4/2/2 6/3/2
+f 5/1/3 6/2/3 8/3/3
+f 7/1/4 8/2/4 10/3/4
+f 9/1/5 10/2/5 12/3/5
+f 11/1/6 12/2/6 14/3/6
+f 13/1/7 14/2/7 16/3/7
+f 15/1/8 16/2/8 18/3/8
+f 17/1/9 18/2/9 19/4/9
+f 19/1/10 20/2/10 21/4/10
+f 21/1/11 22/2/11 23/4/11
+f 23/1/12 24/2/12 25/4/12
+f 25/1/13 26/2/13 27/4/13
+f 27/1/14 28/2/14 29/4/14
+f 29/1/15 30/2/15 31/4/15
+f 31/1/16 32/2/16 33/4/16
+f 33/1/17 34/2/17 35/4/17
+f 35/1/18 36/2/18 37/4/18
+f 37/1/19 38/2/19 39/4/19
+f 39/1/20 40/2/20 41/4/20
+f 41/1/21 42/2/21 43/4/21
+f 43/1/22 44/2/22 45/4/22
+f 45/1/23 46/2/23 47/4/23
+f 47/1/24 48/2/24 49/4/24
+f 49/1/25 50/2/25 52/3/25
+f 51/1/26 52/2/26 54/3/26
+f 53/1/27 54/2/27 56/3/27
+f 55/1/28 56/2/28 58/3/28
+f 57/1/29 58/2/29 60/3/29
+f 59/1/30 60/2/30 62/3/30
+f 48/5/31 52/6/31 50/7/31
+f 63/1/32 64/2/32 2/3/32
+f 61/1/33 62/2/33 64/3/33
+f 1/8/34 3/9/34 63/10/34
+f 3/4/35 1/1/35 4/3/35
+f 5/4/36 3/1/36 6/3/36
+f 7/4/37 5/1/37 8/3/37
+f 9/4/38 7/1/38 10/3/38
+f 11/4/39 9/1/39 12/3/39
+f 13/4/40 11/1/40 14/3/40
+f 15/4/41 13/1/41 16/3/41
+f 17/4/42 15/1/42 18/3/42
+f 18/2/43 20/3/43 19/4/43
+f 20/2/44 22/3/44 21/4/44
+f 22/2/45 24/3/45 23/4/45
+f 24/2/46 26/3/46 25/4/46
+f 26/2/47 28/3/47 27/4/47
+f 28/2/48 30/3/48 29/4/48
+f 30/2/49 32/3/49 31/4/49
+f 32/2/50 34/3/50 33/4/50
+f 34/2/17 36/3/17 35/4/17
+f 36/2/51 38/3/51 37/4/51
+f 38/2/52 40/3/52 39/4/52
+f 40/2/53 42/3/53 41/4/53
+f 42/2/54 44/3/54 43/4/54
+f 44/2/55 46/3/55 45/4/55
+f 46/2/56 48/3/56 47/4/56
+f 48/2/57 50/3/57 49/4/57
+f 51/4/58 49/1/58 52/3/58
+f 53/4/59 51/1/59 54/3/59
+f 55/4/60 53/1/60 56/3/60
+f 57/4/28 55/1/28 58/3/28
+f 59/4/61 57/1/61 60/3/61
+f 61/4/62 59/1/62 62/3/62
+f 48/5/63 54/11/63 52/6/63
+f 46/12/64 54/11/64 48/5/64
+f 46/12/65 56/13/65 54/11/65
+f 44/14/65 56/13/65 46/12/65
+f 44/14/66 58/15/66 56/13/66
+f 42/16/66 58/15/66 44/14/66
+f 42/16/67 60/17/67 58/15/67
+f 40/18/67 60/17/67 42/16/67
+f 40/18/68 62/19/68 60/17/68
+f 38/20/68 62/19/68 40/18/68
+f 38/20/69 64/21/69 62/19/69
+f 20/22/70 24/23/70 22/24/70
+f 16/25/71 20/22/71 18/26/71
+f 16/25/72 24/23/72 20/22/72
+f 36/27/69 64/21/69 38/20/69
+f 34/28/73 64/21/73 36/27/73
+f 2/9/74 64/21/74 34/28/74
+f 4/8/75 2/9/75 34/28/75
+f 4/8/75 34/28/75 32/29/75
+f 6/10/76 4/8/76 32/29/76
+f 6/10/76 32/29/76 30/30/76
+f 6/10/68 30/30/68 28/31/68
+f 8/32/68 6/10/68 28/31/68
+f 10/33/73 8/32/73 28/31/73
+f 10/33/67 28/31/67 26/34/67
+f 12/35/77 10/33/77 26/34/77
+f 12/35/78 26/34/78 24/23/78
+f 14/36/79 12/35/79 24/23/79
+f 16/25/80 14/36/80 24/23/80
+f 1/4/32 63/1/32 2/3/32
+f 63/4/81 61/1/81 64/3/81
+f 19/7/82 15/11/82 17/6/82
+f 41/31/83 37/29/83 39/30/83
+f 3/9/84 5/21/84 63/10/84
+f 45/23/85 41/31/85 43/34/85
+f 45/23/86 37/29/86 41/31/86
+f 49/22/87 45/23/87 47/24/87
+f 49/22/84 37/29/84 45/23/84
+f 49/22/84 35/28/84 37/29/84
+f 49/22/84 33/27/84 35/28/84
+f 49/22/84 31/20/84 33/27/84
+f 55/36/88 51/26/88 53/25/88
+f 59/33/89 55/36/89 57/35/89
+f 61/32/90 55/36/90 59/33/90
+f 63/10/91 55/36/91 61/32/91
+f 63/10/92 5/21/92 55/36/92
+f 5/21/93 7/19/93 55/36/93
+f 7/19/94 9/17/94 55/36/94
+f 29/18/95 25/14/95 27/16/95
+f 31/20/96 25/14/96 29/18/96
+f 49/22/97 25/14/97 31/20/97
+f 49/22/98 23/12/98 25/14/98
+f 9/17/93 11/15/93 55/36/93
+f 11/15/99 13/13/99 55/36/99
+f 13/13/100 15/11/100 55/36/100
+f 15/11/101 19/7/101 55/36/101
+f 19/7/102 21/5/102 55/36/102
+f 21/5/103 23/12/103 55/36/103
+f 23/12/104 49/22/104 55/36/104
+f 49/22/105 51/26/105 55/36/105
+v 0.053672 2.252534 1.125439
+v 0.053673 8.161380 0.083549
+v 0.051751 2.255921 1.144652
+v 0.051751 8.164768 0.102762
+v 0.046060 2.259179 1.163126
+v 0.046061 8.168025 0.121236
+v 0.036819 2.262181 1.180152
+v 0.036820 8.171027 0.138262
+v 0.024383 2.264812 1.195075
+v 0.024384 8.173658 0.153186
+v 0.009229 2.266972 1.207323
+v 0.009230 8.175818 0.165433
+v -0.008059 2.268577 1.216423
+v -0.008059 8.177423 0.174534
+v -0.026819 2.269565 1.222028
+v -0.026818 8.178411 0.180138
+v -0.046328 2.269898 1.223920
+v -0.046327 8.178745 0.182030
+v -0.065837 2.269565 1.222027
+v -0.065836 8.178411 0.180138
+v -0.084596 2.268577 1.216423
+v -0.084595 8.177423 0.174534
+v -0.101885 2.266972 1.207323
+v -0.101884 8.175818 0.165433
+v -0.117038 2.264812 1.195075
+v -0.117038 8.173658 0.153186
+v -0.129475 2.262181 1.180152
+v -0.129474 8.171027 0.138262
+v -0.138716 2.259179 1.163126
+v -0.138715 8.168025 0.121236
+v -0.144406 2.255921 1.144651
+v -0.144406 8.164768 0.102762
+v -0.146328 2.252534 1.125439
+v -0.146327 8.161380 0.083549
+v -0.144406 2.249146 1.106226
+v -0.144406 8.157992 0.064337
+v -0.138716 2.245888 1.087752
+v -0.138715 8.154735 0.045862
+v -0.129475 2.242886 1.070726
+v -0.129474 8.151732 0.028836
+v -0.117038 2.240255 1.055802
+v -0.117038 8.149101 0.013913
+v -0.101885 2.238095 1.043555
+v -0.101884 8.146942 0.001666
+v -0.084596 2.236491 1.034454
+v -0.084595 8.145337 -0.007435
+v -0.065837 2.235502 1.028850
+v -0.065836 8.144349 -0.013039
+v -0.046328 2.235169 1.026958
+v -0.046327 8.144015 -0.014931
+v -0.026819 2.235502 1.028850
+v -0.026818 8.144349 -0.013039
+v -0.008059 2.236491 1.034455
+v -0.008059 8.145337 -0.007435
+v 0.009229 2.238095 1.043555
+v 0.009230 8.146942 0.001666
+v 0.024383 2.240255 1.055803
+v 0.024384 8.149101 0.013913
+v 0.036819 2.242886 1.070726
+v 0.036820 8.151732 0.028837
+v 0.046060 2.245888 1.087752
+v 0.046061 8.154735 0.045863
+v 0.051751 2.249146 1.106226
+v 0.051752 8.157992 0.064337
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.308659 0.961940
+vt 0.222215 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 0.990393 0.402455
+vt 1.000000 0.500000
+vt 0.853553 0.146447
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.691342 0.038060
+vt 0.777785 0.084265
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.146447 0.853554
+vt 0.084266 0.777786
+vt 0.038060 0.691342
+vt 0.308658 0.038060
+vt 0.402455 0.009607
+vt 0.146446 0.146447
+vt 0.222215 0.084265
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.009607 0.597546
+vt 0.000000 0.500000
+vn 0.995185 0.017020 0.096528
+vn 0.956940 0.050408 0.285877
+vn 0.881921 0.081857 0.464236
+vn 0.773010 0.110161 0.624756
+vn 0.634396 0.134232 0.761265
+vn 0.471397 0.153144 0.868523
+vn 0.290283 0.166171 0.942403
+vn 0.098018 0.172812 0.980066
+vn -0.098018 0.172812 0.980066
+vn -0.290285 0.166171 0.942402
+vn -0.471398 0.153144 0.868522
+vn -0.634392 0.134232 0.761268
+vn -0.773007 0.110162 0.624759
+vn -0.881923 0.081857 0.464231
+vn -0.956941 0.050407 0.285874
+vn -0.995185 0.017021 0.096528
+vn -0.995185 -0.017021 -0.096529
+vn -0.956940 -0.050408 -0.285877
+vn -0.881921 -0.081857 -0.464236
+vn -0.773008 -0.110162 -0.624758
+vn -0.634391 -0.134232 -0.761269
+vn -0.471388 -0.153145 -0.868528
+vn -0.290288 -0.166171 -0.942401
+vn -0.098006 -0.172812 -0.980067
+vn 0.098021 -0.172812 -0.980065
+vn 0.290285 -0.166171 -0.942402
+vn 0.471402 -0.153144 -0.868520
+vn 0.634392 -0.134232 -0.761267
+vn 0.773010 -0.110161 -0.624755
+vn 0.881922 -0.081857 -0.464233
+vn -0.000356 0.984796 -0.173717
+vn 0.995185 -0.017020 -0.096527
+vn 0.956941 -0.050407 -0.285872
+vn -0.000005 -0.984808 0.173646
+vn 0.995185 0.017020 0.096529
+vn 0.956940 0.050407 0.285875
+vn 0.881920 0.081858 0.464237
+vn 0.773011 0.110161 0.624755
+vn 0.634396 0.134231 0.761264
+vn 0.471389 0.153145 0.868527
+vn 0.290292 0.166171 0.942400
+vn 0.098013 0.172812 0.980066
+vn -0.098019 0.172812 0.980065
+vn -0.290283 0.166171 0.942403
+vn -0.471400 0.153144 0.868521
+vn -0.634396 0.134232 0.761264
+vn -0.773010 0.110161 0.624756
+vn -0.881922 0.081857 0.464234
+vn -0.956940 0.050408 0.285876
+vn -0.995185 0.017020 0.096526
+vn -0.995185 -0.017021 -0.096530
+vn -0.956940 -0.050407 -0.285875
+vn -0.773009 -0.110161 -0.624757
+vn -0.634390 -0.134232 -0.761269
+vn -0.471399 -0.153144 -0.868522
+vn -0.290282 -0.166171 -0.942403
+vn -0.098018 -0.172812 -0.980066
+vn 0.098018 -0.172812 -0.980065
+vn 0.290287 -0.166171 -0.942402
+vn 0.471399 -0.153144 -0.868522
+vn 0.634393 -0.134232 -0.761267
+vn 0.773014 -0.110161 -0.624751
+vn 0.881921 -0.081857 -0.464236
+vn -0.000114 0.984812 -0.173626
+vn -0.000002 0.984808 -0.173648
+vn -0.000054 0.984802 -0.173678
+vn -0.000008 0.984808 -0.173648
+vn -0.000004 0.984808 -0.173647
+vn -0.000107 0.984836 -0.173487
+vn -0.000015 0.984812 -0.173622
+vn -0.000013 0.984820 -0.173580
+vn -0.000001 0.984809 -0.173639
+vn -0.000044 0.984787 -0.173766
+vn -0.000047 0.984804 -0.173672
+vn -0.000051 0.984803 -0.173676
+vn -0.000050 0.984803 -0.173675
+vn -0.000006 0.984799 -0.173697
+vn -0.000037 0.984791 -0.173743
+vn -0.000244 0.984806 -0.173659
+vn -0.000025 0.984806 -0.173659
+vn -0.000168 0.984823 -0.173560
+vn -0.000013 0.984812 -0.173624
+vn -0.000088 0.984819 -0.173584
+vn -0.000036 0.984813 -0.173618
+vn 0.000016 0.984808 -0.173645
+vn 0.000005 0.984808 -0.173650
+vn 0.000006 0.984807 -0.173650
+vn 0.000005 0.984808 -0.173649
+vn 0.000002 0.984808 -0.173648
+vn 0.000003 0.984807 -0.173650
+vn 0.000005 0.984804 -0.173667
+vn 0.956941 -0.050407 -0.285873
+vn -0.000005 -0.984808 0.173649
+vn -0.000001 -0.984818 0.173592
+vn -0.000000 -0.984808 0.173648
+vn -0.000006 -0.984808 0.173646
+vn -0.000001 -0.984808 0.173648
+vn -0.000002 -0.984808 0.173648
+vn -0.000001 -0.984806 0.173661
+vn -0.000000 -0.984805 0.173663
+vn -0.000000 -0.984810 0.173635
+vn -0.000000 -0.984810 0.173634
+vn -0.000000 -0.984807 0.173653
+vn -0.000000 -0.984807 0.173650
+vn -0.000000 -0.984808 0.173647
+vn 0.000000 -0.984807 0.173651
+vn -0.000000 -0.984807 0.173649
+vn -0.000000 -0.984810 0.173637
+vn 0.000000 -0.984806 0.173659
+vn -0.000001 -0.984805 0.173664
+s off
+f 65/37/106 66/38/106 68/39/106
+f 67/37/107 68/38/107 70/39/107
+f 69/37/108 70/38/108 72/39/108
+f 71/37/109 72/38/109 74/39/109
+f 73/37/110 74/38/110 76/39/110
+f 75/37/111 76/38/111 78/39/111
+f 77/37/112 78/38/112 80/39/112
+f 79/37/113 80/38/113 82/39/113
+f 81/37/114 82/38/114 83/40/114
+f 83/37/115 84/38/115 85/40/115
+f 85/37/116 86/38/116 87/40/116
+f 87/37/117 88/38/117 89/40/117
+f 89/37/118 90/38/118 91/40/118
+f 91/37/119 92/38/119 93/40/119
+f 93/37/120 94/38/120 95/40/120
+f 95/37/121 96/38/121 97/40/121
+f 97/37/122 98/38/122 99/40/122
+f 99/37/123 100/38/123 101/40/123
+f 101/37/124 102/38/124 103/40/124
+f 103/37/125 104/38/125 105/40/125
+f 105/37/126 106/38/126 107/40/126
+f 107/37/127 108/38/127 109/40/127
+f 109/37/128 110/38/128 111/40/128
+f 111/37/129 112/38/129 113/40/129
+f 113/37/130 114/38/130 116/39/130
+f 115/37/131 116/38/131 118/39/131
+f 117/37/132 118/38/132 120/39/132
+f 119/37/133 120/38/133 122/39/133
+f 121/37/134 122/38/134 124/39/134
+f 123/37/135 124/38/135 126/39/135
+f 68/41/136 66/42/136 70/43/136
+f 127/37/137 128/38/137 66/39/137
+f 125/37/138 126/38/138 128/39/138
+f 65/41/139 67/42/139 69/44/139
+f 67/40/140 65/37/140 68/39/140
+f 69/40/141 67/37/141 70/39/141
+f 71/40/142 69/37/142 72/39/142
+f 73/40/143 71/37/143 74/39/143
+f 75/40/144 73/37/144 76/39/144
+f 77/40/145 75/37/145 78/39/145
+f 79/40/146 77/37/146 80/39/146
+f 81/40/147 79/37/147 82/39/147
+f 82/38/148 84/39/148 83/40/148
+f 84/38/149 86/39/149 85/40/149
+f 86/38/150 88/39/150 87/40/150
+f 88/38/151 90/39/151 89/40/151
+f 90/38/152 92/39/152 91/40/152
+f 92/38/153 94/39/153 93/40/153
+f 94/38/154 96/39/154 95/40/154
+f 96/38/155 98/39/155 97/40/155
+f 98/38/156 100/39/156 99/40/156
+f 100/38/157 102/39/157 101/40/157
+f 102/38/124 104/39/124 103/40/124
+f 104/38/158 106/39/158 105/40/158
+f 106/38/159 108/39/159 107/40/159
+f 108/38/160 110/39/160 109/40/160
+f 110/38/161 112/39/161 111/40/161
+f 112/38/162 114/39/162 113/40/162
+f 115/40/163 113/37/163 116/39/163
+f 117/40/164 115/37/164 118/39/164
+f 119/40/165 117/37/165 120/39/165
+f 121/40/166 119/37/166 122/39/166
+f 123/40/167 121/37/167 124/39/167
+f 125/40/168 123/37/168 126/39/168
+f 66/42/169 128/44/169 126/45/169
+f 70/43/170 66/42/170 126/45/170
+f 72/46/171 70/43/171 74/47/171
+f 70/43/172 126/45/172 74/47/172
+f 126/45/173 124/48/173 74/47/173
+f 122/49/174 120/50/174 118/51/174
+f 124/48/175 122/49/175 118/51/175
+f 114/52/176 118/51/176 116/53/176
+f 124/48/177 118/51/177 114/52/177
+f 108/54/178 112/55/178 110/56/178
+f 104/57/179 108/54/179 106/58/179
+f 102/59/180 108/54/180 104/57/180
+f 100/60/181 108/54/181 102/59/181
+f 76/61/182 74/47/182 78/62/182
+f 78/62/183 74/47/183 80/63/183
+f 96/64/184 100/60/184 98/65/184
+f 96/64/185 108/54/185 100/60/185
+f 92/66/186 96/64/186 94/67/186
+f 90/68/187 96/64/187 92/66/187
+f 88/69/188 96/64/188 90/68/188
+f 86/70/189 96/64/189 88/69/189
+f 82/71/176 86/70/176 84/72/176
+f 74/47/190 124/48/190 80/63/190
+f 124/48/191 114/52/191 80/63/191
+f 114/52/192 112/55/192 80/63/192
+f 112/55/193 108/54/193 80/63/193
+f 108/54/194 96/64/194 80/63/194
+f 96/64/195 86/70/195 80/63/195
+f 86/70/196 82/71/196 80/63/196
+f 65/40/137 127/37/137 66/39/137
+f 127/40/197 125/37/197 128/39/197
+f 127/43/198 65/41/198 125/46/198
+f 83/52/199 79/51/199 81/53/199
+f 97/60/200 93/57/200 95/59/200
+f 99/65/200 93/57/200 97/60/200
+f 103/67/201 99/65/201 101/64/201
+f 103/67/202 93/57/202 99/65/202
+f 105/66/203 93/57/203 103/67/203
+f 115/71/199 111/70/199 113/72/199
+f 115/71/204 109/69/204 111/70/204
+f 117/63/205 109/69/205 115/71/205
+f 117/63/206 107/68/206 109/69/206
+f 119/62/207 107/68/207 117/63/207
+f 119/62/208 105/66/208 107/68/208
+f 121/61/208 105/66/208 119/62/208
+f 123/47/200 105/66/200 121/61/200
+f 125/46/209 105/66/209 123/47/209
+f 125/46/200 65/41/200 105/66/200
+f 105/66/200 65/41/200 93/57/200
+f 65/41/210 69/44/210 93/57/210
+f 69/44/209 71/45/209 93/57/209
+f 93/57/200 71/45/200 91/58/200
+f 91/58/211 71/45/211 89/54/211
+f 71/45/212 73/48/212 89/54/212
+f 73/48/211 75/49/211 89/54/211
+f 89/54/208 75/49/208 87/56/208
+f 75/49/213 77/50/213 87/56/213
+f 87/56/207 77/50/207 85/55/207
+f 77/50/214 79/51/214 85/55/214
+f 79/51/215 83/52/215 85/55/215
+v 1.116865 2.257815 -0.125221
+v 0.074976 8.166661 -0.125221
+v 1.136078 2.261203 -0.123300
+v 0.094188 8.170050 -0.123300
+v 1.154552 2.264460 -0.117609
+v 0.112663 8.173306 -0.117609
+v 1.171578 2.267462 -0.108368
+v 0.129689 8.176309 -0.108368
+v 1.186502 2.270094 -0.095932
+v 0.144612 8.178940 -0.095932
+v 1.198749 2.272254 -0.080778
+v 0.156859 8.181100 -0.080778
+v 1.207850 2.273858 -0.063490
+v 0.165960 8.182705 -0.063490
+v 1.213454 2.274846 -0.044730
+v 0.171564 8.183693 -0.044730
+v 1.215346 2.275180 -0.025221
+v 0.173456 8.184027 -0.025221
+v 1.213454 2.274846 -0.005712
+v 0.171564 8.183693 -0.005712
+v 1.207850 2.273858 0.013047
+v 0.165960 8.182705 0.013047
+v 1.198749 2.272254 0.030336
+v 0.156859 8.181100 0.030336
+v 1.186502 2.270094 0.045489
+v 0.144612 8.178940 0.045489
+v 1.171578 2.267462 0.057926
+v 0.129689 8.176309 0.057926
+v 1.154552 2.264460 0.067167
+v 0.112663 8.173306 0.067167
+v 1.136078 2.261203 0.072857
+v 0.094188 8.170050 0.072857
+v 1.116865 2.257815 0.074779
+v 0.074976 8.166661 0.074779
+v 1.097653 2.254427 0.072857
+v 0.055763 8.163274 0.072857
+v 1.079178 2.251170 0.067167
+v 0.037289 8.160016 0.067167
+v 1.062152 2.248168 0.057926
+v 0.020263 8.157014 0.057926
+v 1.047229 2.245536 0.045489
+v 0.005339 8.154383 0.045489
+v 1.034981 2.243377 0.030336
+v -0.006908 8.152224 0.030336
+v 1.025881 2.241772 0.013047
+v -0.016009 8.150619 0.013047
+v 1.020277 2.240784 -0.005712
+v -0.021613 8.149631 -0.005712
+v 1.018384 2.240450 -0.025221
+v -0.023505 8.149297 -0.025221
+v 1.020277 2.240784 -0.044730
+v -0.021613 8.149631 -0.044730
+v 1.025881 2.241772 -0.063490
+v -0.016009 8.150619 -0.063490
+v 1.034981 2.243377 -0.080778
+v -0.006908 8.152224 -0.080778
+v 1.047229 2.245536 -0.095932
+v 0.005339 8.154383 -0.095932
+v 1.062152 2.248168 -0.108368
+v 0.020263 8.157014 -0.108368
+v 1.079178 2.251170 -0.117609
+v 0.037289 8.160016 -0.117609
+v 1.097653 2.254427 -0.123300
+v 0.055763 8.163274 -0.123300
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.000000 0.500000
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.146447 0.853554
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.308659 0.961940
+vt 0.222215 0.915735
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.009607 0.597546
+vt 0.084265 0.222215
+vn 0.096528 0.017020 -0.995185
+vn 0.285876 0.050408 -0.956940
+vn 0.464235 0.081857 -0.881921
+vn 0.624757 0.110162 -0.773009
+vn 0.761264 0.134232 -0.634396
+vn 0.868521 0.153144 -0.471400
+vn 0.942403 0.166171 -0.290283
+vn 0.980066 0.172812 -0.098018
+vn 0.980066 0.172812 0.098018
+vn 0.942403 0.166171 0.290283
+vn 0.868521 0.153144 0.471399
+vn 0.761264 0.134232 0.634396
+vn 0.624757 0.110162 0.773009
+vn 0.464235 0.081857 0.881921
+vn 0.285876 0.050408 0.956940
+vn 0.096527 0.017020 0.995185
+vn -0.096528 -0.017021 0.995185
+vn -0.285875 -0.050407 0.956940
+vn -0.464235 -0.081857 0.881921
+vn -0.624754 -0.110161 0.773012
+vn -0.761268 -0.134232 0.634391
+vn -0.868524 -0.153144 0.471394
+vn -0.942401 -0.166171 0.290288
+vn -0.980066 -0.172812 0.098010
+vn -0.980065 -0.172812 -0.098018
+vn -0.942402 -0.166171 -0.290285
+vn -0.868521 -0.153144 -0.471401
+vn -0.761266 -0.134232 -0.634394
+vn -0.624751 -0.110161 -0.773014
+vn -0.464236 -0.081857 -0.881921
+vn -0.173717 0.984796 0.000356
+vn -0.096527 -0.017020 -0.995185
+vn -0.285873 -0.050407 -0.956941
+vn 0.173648 -0.984808 -0.000011
+vn 0.285874 0.050407 -0.956940
+vn 0.464237 0.081858 -0.881920
+vn 0.624752 0.110161 -0.773013
+vn 0.761267 0.134232 -0.634393
+vn 0.868524 0.153144 -0.471394
+vn 0.942402 0.166171 -0.290287
+vn 0.980065 0.172812 -0.098019
+vn 0.980065 0.172812 0.098019
+vn 0.942402 0.166171 0.290287
+vn 0.868524 0.153144 0.471394
+vn 0.761267 0.134232 0.634393
+vn 0.624752 0.110161 0.773013
+vn 0.464237 0.081858 0.881920
+vn 0.285874 0.050407 0.956940
+vn -0.096529 -0.017021 0.995185
+vn -0.285874 -0.050407 0.956940
+vn -0.624758 -0.110162 0.773008
+vn -0.761268 -0.134232 0.634392
+vn -0.868523 -0.153144 0.471397
+vn -0.942402 -0.166171 0.290284
+vn -0.980066 -0.172812 0.098018
+vn -0.980065 -0.172812 -0.098021
+vn -0.868521 -0.153144 -0.471400
+vn -0.761267 -0.134232 -0.634392
+vn -0.624756 -0.110161 -0.773010
+vn -0.464234 -0.081857 -0.881922
+vn -0.173640 0.984809 -0.000036
+vn -0.173648 0.984808 0.000040
+vn -0.173648 0.984808 0.000002
+vn -0.173650 0.984807 -0.000020
+vn -0.173652 0.984807 -0.000031
+vn -0.173635 0.984810 0.000027
+vn -0.173649 0.984808 -0.000009
+vn -0.173641 0.984809 0.000007
+vn -0.173650 0.984807 -0.000006
+vn -0.173640 0.984809 0.000006
+vn -0.173660 0.984806 -0.000014
+vn -0.173675 0.984803 0.000050
+vn -0.173675 0.984803 0.000049
+vn -0.173767 0.984787 -0.000044
+vn -0.173767 0.984787 0.000044
+vn -0.173642 0.984809 0.000000
+vn -0.173677 0.984803 0.000052
+vn -0.173717 0.984796 -0.000357
+vn -0.173646 0.984808 0.000005
+vn -0.173645 0.984808 0.000007
+vn -0.173703 0.984798 -0.000011
+vn -0.173684 0.984802 -0.000003
+vn -0.173667 0.984805 0.000002
+vn -0.173671 0.984804 -0.000015
+vn -0.173656 0.984806 -0.000026
+vn -0.173637 0.984810 0.000008
+vn -0.173643 0.984809 0.000005
+vn -0.096528 -0.017020 -0.995185
+vn -0.285872 -0.050407 -0.956941
+vn 0.173648 -0.984808 -0.000000
+vn 0.173647 -0.984808 0.000006
+vn 0.173647 -0.984808 0.000005
+vn 0.173652 -0.984807 -0.000009
+vn 0.173645 -0.984808 0.000005
+vn 0.173653 -0.984807 -0.000007
+vn 0.173643 -0.984809 0.000006
+vn 0.173652 -0.984807 -0.000003
+vn 0.173643 -0.984809 0.000004
+vn 0.173651 -0.984807 -0.000002
+vn 0.173650 -0.984807 -0.000001
+vn 0.173647 -0.984808 0.000000
+vn 0.173649 -0.984808 0.000000
+vn 0.173652 -0.984807 0.000001
+vn 0.173642 -0.984809 -0.000003
+vn 0.173653 -0.984807 0.000003
+vn 0.173642 -0.984809 -0.000004
+vn 0.173655 -0.984806 0.000007
+vn 0.173641 -0.984809 -0.000008
+vn 0.173658 -0.984806 0.000013
+vn 0.173645 -0.984808 -0.000007
+vn 0.173654 -0.984807 0.000007
+vn 0.173646 -0.984808 -0.000004
+s off
+f 129/73/216 130/74/216 132/75/216
+f 131/73/217 132/74/217 134/75/217
+f 133/73/218 134/74/218 136/75/218
+f 135/73/219 136/74/219 138/75/219
+f 137/73/220 138/74/220 140/75/220
+f 139/73/221 140/74/221 142/75/221
+f 141/73/222 142/74/222 144/75/222
+f 143/73/223 144/74/223 146/75/223
+f 145/73/224 146/74/224 148/75/224
+f 147/73/225 148/74/225 150/75/225
+f 149/73/226 150/74/226 152/75/226
+f 151/73/227 152/74/227 154/75/227
+f 153/73/228 154/74/228 156/75/228
+f 155/73/229 156/74/229 158/75/229
+f 157/73/230 158/74/230 160/75/230
+f 159/73/231 160/74/231 162/75/231
+f 161/73/232 162/74/232 163/76/232
+f 163/73/233 164/74/233 165/76/233
+f 165/73/234 166/74/234 167/76/234
+f 167/73/235 168/74/235 169/76/235
+f 169/73/236 170/74/236 171/76/236
+f 171/73/237 172/74/237 173/76/237
+f 173/73/238 174/74/238 175/76/238
+f 175/73/239 176/74/239 177/76/239
+f 177/73/240 178/74/240 179/76/240
+f 179/73/241 180/74/241 181/76/241
+f 181/73/242 182/74/242 183/76/242
+f 183/73/243 184/74/243 185/76/243
+f 185/73/244 186/74/244 187/76/244
+f 187/73/245 188/74/245 189/76/245
+f 132/77/246 130/78/246 134/79/246
+f 191/73/247 192/74/247 129/76/247
+f 189/73/248 190/74/248 191/76/248
+f 129/77/249 131/78/249 191/79/249
+f 131/76/216 129/73/216 132/75/216
+f 133/76/250 131/73/250 134/75/250
+f 135/76/251 133/73/251 136/75/251
+f 137/76/252 135/73/252 138/75/252
+f 139/76/253 137/73/253 140/75/253
+f 141/76/254 139/73/254 142/75/254
+f 143/76/255 141/73/255 144/75/255
+f 145/76/256 143/73/256 146/75/256
+f 147/76/257 145/73/257 148/75/257
+f 149/76/258 147/73/258 150/75/258
+f 151/76/259 149/73/259 152/75/259
+f 153/76/260 151/73/260 154/75/260
+f 155/76/261 153/73/261 156/75/261
+f 157/76/262 155/73/262 158/75/262
+f 159/76/263 157/73/263 160/75/263
+f 161/76/231 159/73/231 162/75/231
+f 162/74/264 164/75/264 163/76/264
+f 164/74/265 166/75/265 165/76/265
+f 166/74/234 168/75/234 167/76/234
+f 168/74/266 170/75/266 169/76/266
+f 170/74/267 172/75/267 171/76/267
+f 172/74/268 174/75/268 173/76/268
+f 174/74/269 176/75/269 175/76/269
+f 176/74/270 178/75/270 177/76/270
+f 178/74/271 180/75/271 179/76/271
+f 180/74/241 182/75/241 181/76/241
+f 182/74/272 184/75/272 183/76/272
+f 184/74/273 186/75/273 185/76/273
+f 186/74/274 188/75/274 187/76/274
+f 188/74/275 190/75/275 189/76/275
+f 130/78/276 192/80/276 134/79/276
+f 192/80/277 190/81/277 134/79/277
+f 190/81/278 188/82/278 134/79/278
+f 188/82/279 186/83/279 134/79/279
+f 186/83/280 184/84/280 134/79/280
+f 184/84/281 182/85/281 134/79/281
+f 182/85/282 180/86/282 134/79/282
+f 180/86/283 178/87/283 134/79/283
+f 178/87/284 176/88/284 134/79/284
+f 176/88/285 174/89/285 134/79/285
+f 174/89/286 172/90/286 134/79/286
+f 170/91/287 168/92/287 166/93/287
+f 170/91/288 166/93/288 164/94/288
+f 148/95/289 152/96/289 150/97/289
+f 140/98/290 144/99/290 142/100/290
+f 172/90/287 170/91/287 164/94/287
+f 134/79/291 172/90/291 164/94/291
+f 136/101/292 134/79/292 138/102/292
+f 134/79/291 164/94/291 138/102/291
+f 162/103/293 160/104/293 158/105/293
+f 162/103/294 158/105/294 156/106/294
+f 146/107/295 152/96/295 148/95/295
+f 146/107/296 154/108/296 152/96/296
+f 144/99/297 154/108/297 146/107/297
+f 140/98/298 154/108/298 144/99/298
+f 138/102/299 164/94/299 140/98/299
+f 162/103/300 156/106/300 154/108/300
+f 164/94/301 162/103/301 140/98/301
+f 162/103/302 154/108/302 140/98/302
+f 192/74/303 130/75/303 129/76/303
+f 190/74/304 192/75/304 191/76/304
+f 131/78/305 133/80/305 191/79/305
+f 133/80/306 135/81/306 191/79/306
+f 135/81/305 137/82/305 191/79/305
+f 137/82/307 139/83/307 191/79/307
+f 139/83/308 141/84/308 191/79/308
+f 141/84/309 143/85/309 191/79/309
+f 143/85/310 145/86/310 191/79/310
+f 145/86/311 147/87/311 191/79/311
+f 147/87/312 149/88/312 191/79/312
+f 149/88/313 151/89/313 191/79/313
+f 151/89/314 153/90/314 191/79/314
+f 153/90/305 155/91/305 191/79/305
+f 155/91/315 157/92/315 191/79/315
+f 157/92/305 159/93/305 191/79/305
+f 159/93/316 161/94/316 191/79/316
+f 161/94/305 163/103/305 191/79/305
+f 163/103/305 165/104/305 191/79/305
+f 165/104/317 167/105/317 191/79/317
+f 167/105/317 169/106/317 191/79/317
+f 169/106/318 171/108/318 191/79/318
+f 171/108/319 173/96/319 191/79/319
+f 173/96/320 175/97/320 191/79/320
+f 175/97/321 177/95/321 191/79/321
+f 177/95/322 179/107/322 191/79/322
+f 179/107/323 181/99/323 191/79/323
+f 181/99/324 183/100/324 191/79/324
+f 183/100/325 185/98/325 191/79/325
+f 185/98/326 187/102/326 189/101/326
+f 191/79/327 185/98/327 189/101/327
+v -1.178897 2.277600 -0.129009
+v -0.137008 8.186446 -0.129009
+v -1.159685 2.274212 -0.127088
+v -0.117795 8.183058 -0.127088
+v -1.141210 2.270954 -0.121397
+v -0.099321 8.179801 -0.121397
+v -1.124184 2.267952 -0.112156
+v -0.082295 8.176799 -0.112156
+v -1.109261 2.265321 -0.099720
+v -0.067371 8.174168 -0.099720
+v -1.097013 2.263161 -0.084566
+v -0.055124 8.172008 -0.084566
+v -1.087913 2.261557 -0.067277
+v -0.046023 8.170403 -0.067277
+v -1.082309 2.260568 -0.048518
+v -0.040419 8.169415 -0.048518
+v -1.080417 2.260235 -0.029009
+v -0.038527 8.169081 -0.029009
+v -1.082309 2.260568 -0.009500
+v -0.040419 8.169415 -0.009500
+v -1.087913 2.261557 0.009259
+v -0.046023 8.170403 0.009259
+v -1.097013 2.263161 0.026548
+v -0.055124 8.172008 0.026548
+v -1.109261 2.265321 0.041702
+v -0.067371 8.174168 0.041702
+v -1.124184 2.267952 0.054138
+v -0.082295 8.176799 0.054138
+v -1.141210 2.270954 0.063379
+v -0.099321 8.179801 0.063379
+v -1.159685 2.274212 0.069069
+v -0.117795 8.183058 0.069069
+v -1.178897 2.277600 0.070991
+v -0.137008 8.186446 0.070991
+v -1.198110 2.280987 0.069069
+v -0.156220 8.189834 0.069069
+v -1.216584 2.284245 0.063379
+v -0.174695 8.193091 0.063379
+v -1.233610 2.287247 0.054138
+v -0.191721 8.196094 0.054138
+v -1.248534 2.289878 0.041702
+v -0.206644 8.198725 0.041702
+v -1.260781 2.292038 0.026548
+v -0.218892 8.200884 0.026548
+v -1.269882 2.293643 0.009259
+v -0.227992 8.202489 0.009259
+v -1.275486 2.294631 -0.009500
+v -0.233596 8.203477 -0.009500
+v -1.277378 2.294964 -0.029009
+v -0.235489 8.203811 -0.029009
+v -1.275486 2.294631 -0.048518
+v -0.233596 8.203477 -0.048518
+v -1.269882 2.293643 -0.067278
+v -0.227992 8.202489 -0.067278
+v -1.260781 2.292038 -0.084566
+v -0.218892 8.200884 -0.084566
+v -1.248534 2.289878 -0.099720
+v -0.206644 8.198725 -0.099720
+v -1.233610 2.287247 -0.112156
+v -0.191721 8.196094 -0.112156
+v -1.216584 2.284245 -0.121397
+v -0.174695 8.193091 -0.121397
+v -1.198110 2.280987 -0.127088
+v -0.156220 8.189834 -0.127088
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.096528 -0.017020 -0.995185
+vn 0.285876 -0.050408 -0.956940
+vn 0.464236 -0.081857 -0.881921
+vn 0.624756 -0.110161 -0.773010
+vn 0.761265 -0.134232 -0.634395
+vn 0.868521 -0.153144 -0.471400
+vn 0.942403 -0.166171 -0.290282
+vn 0.980065 -0.172812 -0.098021
+vn 0.980066 -0.172812 0.098018
+vn 0.942402 -0.166171 0.290285
+vn 0.868522 -0.153144 0.471399
+vn 0.761265 -0.134232 0.634395
+vn 0.624756 -0.110161 0.773010
+vn 0.464235 -0.081857 0.881922
+vn 0.285876 -0.050408 0.956940
+vn 0.096527 -0.017020 0.995185
+vn -0.096528 0.017020 0.995185
+vn -0.285876 0.050408 0.956940
+vn -0.464234 0.081857 0.881922
+vn -0.624758 0.110162 0.773008
+vn -0.761264 0.134231 0.634396
+vn -0.868524 0.153144 0.471394
+vn -0.942401 0.166171 0.290288
+vn -0.980066 0.172812 0.098014
+vn -0.980066 0.172812 -0.098014
+vn -0.942403 0.166171 -0.290281
+vn -0.868522 0.153144 -0.471398
+vn -0.761268 0.134232 -0.634392
+vn -0.624751 0.110161 -0.773014
+vn -0.464236 0.081857 -0.881921
+vn 0.173717 0.984795 -0.000357
+vn -0.096527 0.017020 -0.995185
+vn -0.285874 0.050407 -0.956940
+vn -0.173648 -0.984808 0.000011
+vn 0.285874 -0.050407 -0.956940
+vn 0.464237 -0.081858 -0.881920
+vn 0.624755 -0.110161 -0.773011
+vn 0.761264 -0.134231 -0.634396
+vn 0.868524 -0.153144 -0.471394
+vn 0.942402 -0.166171 -0.290287
+vn 0.980066 -0.172812 -0.098013
+vn 0.980066 -0.172812 0.098013
+vn 0.942402 -0.166171 0.290287
+vn 0.868524 -0.153144 0.471394
+vn 0.761264 -0.134231 0.634396
+vn 0.624755 -0.110161 0.773011
+vn 0.464237 -0.081858 0.881920
+vn 0.285874 -0.050407 0.956940
+vn -0.096529 0.017021 0.995185
+vn -0.285874 0.050407 0.956940
+vn -0.464235 0.081857 0.881921
+vn -0.624756 0.110161 0.773010
+vn -0.761269 0.134232 0.634391
+vn -0.868522 0.153144 0.471398
+vn -0.942403 0.166171 0.290282
+vn -0.980066 0.172812 0.098018
+vn -0.980065 0.172812 -0.098019
+vn -0.942402 0.166171 -0.290285
+vn -0.868521 0.153144 -0.471400
+vn -0.761267 0.134232 -0.634392
+vn -0.624756 0.110161 -0.773010
+vn -0.464234 0.081857 -0.881922
+vn 0.173640 0.984809 0.000036
+vn 0.173648 0.984808 -0.000041
+vn 0.173648 0.984808 -0.000002
+vn 0.173650 0.984807 0.000019
+vn 0.173652 0.984807 0.000031
+vn 0.173635 0.984810 -0.000027
+vn 0.173649 0.984808 0.000009
+vn 0.173641 0.984809 -0.000007
+vn 0.173650 0.984807 0.000006
+vn 0.173641 0.984809 -0.000005
+vn 0.173660 0.984806 0.000014
+vn 0.173629 0.984811 -0.000011
+vn 0.173638 0.984810 -0.000005
+vn 0.173649 0.984808 0.000001
+vn 0.173659 0.984806 0.000005
+vn 0.173636 0.984810 -0.000002
+vn 0.173683 0.984802 0.000007
+vn 0.173611 0.984814 0.000000
+vn 0.173649 0.984808 0.000000
+vn 0.173635 0.984810 0.000001
+vn 0.173681 0.984802 -0.000008
+vn 0.173674 0.984803 -0.000006
+vn 0.173644 0.984808 0.000007
+vn 0.173666 0.984805 -0.000005
+vn 0.173677 0.984803 -0.000016
+vn 0.173633 0.984810 0.000028
+vn 0.173518 0.984831 0.000143
+vn 0.173638 0.984810 0.000022
+vn -0.096528 0.017020 -0.995185
+vn -0.285872 0.050407 -0.956941
+vn -0.173648 -0.984808 0.000000
+vn -0.173647 -0.984808 -0.000006
+vn -0.173648 -0.984808 -0.000002
+vn -0.173647 -0.984808 -0.000003
+vn -0.173652 -0.984807 0.000009
+vn -0.173645 -0.984808 -0.000005
+vn -0.173652 -0.984807 0.000005
+vn -0.173644 -0.984809 -0.000005
+vn -0.173652 -0.984807 0.000003
+vn -0.173643 -0.984809 -0.000004
+vn -0.173650 -0.984807 0.000001
+vn -0.173680 -0.984802 0.000024
+vn -0.173592 -0.984818 0.000023
+vn -0.173693 -0.984800 0.000010
+vn -0.173644 -0.984808 -0.000000
+vn -0.173638 -0.984810 0.000013
+vn -0.173653 -0.984807 -0.000003
+vn -0.173644 -0.984808 0.000011
+vn -0.173646 -0.984808 0.000007
+vn -0.173645 -0.984808 -0.000007
+vn -0.173651 -0.984807 0.000003
+vn -0.173649 -0.984808 0.000000
+vn -0.173648 -0.984808 0.000001
+vn -0.173647 -0.984808 0.000002
+vn -0.173640 -0.984809 -0.000005
+vn -0.173647 -0.984808 -0.000001
+s off
+f 193/109/328 194/110/328 196/111/328
+f 195/109/329 196/110/329 198/111/329
+f 197/109/330 198/110/330 200/111/330
+f 199/109/331 200/110/331 202/111/331
+f 201/109/332 202/110/332 204/111/332
+f 203/109/333 204/110/333 206/111/333
+f 205/109/334 206/110/334 208/111/334
+f 207/109/335 208/110/335 210/111/335
+f 209/109/336 210/110/336 212/111/336
+f 211/109/337 212/110/337 214/111/337
+f 213/109/338 214/110/338 216/111/338
+f 215/109/339 216/110/339 218/111/339
+f 217/109/340 218/110/340 220/111/340
+f 219/109/341 220/110/341 222/111/341
+f 221/109/342 222/110/342 224/111/342
+f 223/109/343 224/110/343 226/111/343
+f 225/109/344 226/110/344 227/112/344
+f 227/109/345 228/110/345 229/112/345
+f 229/109/346 230/110/346 231/112/346
+f 231/109/347 232/110/347 233/112/347
+f 233/109/348 234/110/348 235/112/348
+f 235/109/349 236/110/349 237/112/349
+f 237/109/350 238/110/350 239/112/350
+f 239/109/351 240/110/351 241/112/351
+f 241/109/352 242/110/352 243/112/352
+f 243/109/353 244/110/353 245/112/353
+f 245/109/354 246/110/354 247/112/354
+f 247/109/355 248/110/355 249/112/355
+f 249/109/356 250/110/356 251/112/356
+f 251/109/357 252/110/357 253/112/357
+f 196/113/358 194/114/358 198/115/358
+f 255/109/359 256/110/359 193/112/359
+f 253/109/360 254/110/360 255/112/360
+f 193/113/361 195/114/361 255/115/361
+f 195/112/328 193/109/328 196/111/328
+f 197/112/362 195/109/362 198/111/362
+f 199/112/363 197/109/363 200/111/363
+f 201/112/364 199/109/364 202/111/364
+f 203/112/365 201/109/365 204/111/365
+f 205/112/366 203/109/366 206/111/366
+f 207/112/367 205/109/367 208/111/367
+f 209/112/368 207/109/368 210/111/368
+f 211/112/369 209/109/369 212/111/369
+f 213/112/370 211/109/370 214/111/370
+f 215/112/371 213/109/371 216/111/371
+f 217/112/372 215/109/372 218/111/372
+f 219/112/373 217/109/373 220/111/373
+f 221/112/374 219/109/374 222/111/374
+f 223/112/375 221/109/375 224/111/375
+f 225/112/343 223/109/343 226/111/343
+f 226/110/376 228/111/376 227/112/376
+f 228/110/377 230/111/377 229/112/377
+f 230/110/378 232/111/378 231/112/378
+f 232/110/379 234/111/379 233/112/379
+f 234/110/380 236/111/380 235/112/380
+f 236/110/381 238/111/381 237/112/381
+f 238/110/382 240/111/382 239/112/382
+f 240/110/383 242/111/383 241/112/383
+f 242/110/384 244/111/384 243/112/384
+f 244/110/385 246/111/385 245/112/385
+f 246/110/386 248/111/386 247/112/386
+f 248/110/387 250/111/387 249/112/387
+f 250/110/388 252/111/388 251/112/388
+f 252/110/389 254/111/389 253/112/389
+f 194/114/390 256/116/390 198/115/390
+f 256/116/391 254/117/391 198/115/391
+f 254/117/392 252/118/392 198/115/392
+f 252/118/393 250/119/393 198/115/393
+f 250/119/394 248/120/394 198/115/394
+f 248/120/395 246/121/395 198/115/395
+f 246/121/396 244/122/396 198/115/396
+f 244/122/397 242/123/397 198/115/397
+f 242/123/398 240/124/398 198/115/398
+f 240/124/399 238/125/399 198/115/399
+f 238/125/400 236/126/400 198/115/400
+f 236/126/401 234/127/401 198/115/401
+f 234/127/402 232/128/402 198/115/402
+f 232/128/403 230/129/403 198/115/403
+f 230/129/404 228/130/404 198/115/404
+f 228/130/405 226/131/405 198/115/405
+f 226/131/406 224/132/406 198/115/406
+f 224/132/407 222/133/407 198/115/407
+f 222/133/408 220/134/408 198/115/408
+f 220/134/409 218/135/409 198/115/409
+f 218/135/410 216/136/410 198/115/410
+f 216/136/411 214/137/411 198/115/411
+f 214/137/412 212/138/412 198/115/412
+f 212/138/413 210/139/413 198/115/413
+f 210/139/398 208/140/398 198/115/398
+f 208/140/414 206/141/414 198/115/414
+f 206/141/415 204/142/415 198/115/415
+f 204/142/416 202/143/416 200/144/416
+f 198/115/417 204/142/417 200/144/417
+f 256/110/418 194/111/418 193/112/418
+f 254/110/419 256/111/419 255/112/419
+f 195/114/420 197/116/420 255/115/420
+f 197/116/421 199/117/421 255/115/421
+f 199/117/422 201/118/422 255/115/422
+f 201/118/423 203/119/423 255/115/423
+f 203/119/424 205/120/424 255/115/424
+f 205/120/425 207/121/425 255/115/425
+f 207/121/426 209/122/426 255/115/426
+f 209/122/427 211/123/427 255/115/427
+f 211/123/428 213/124/428 255/115/428
+f 213/124/429 215/125/429 255/115/429
+f 215/125/430 217/126/430 255/115/430
+f 237/136/431 233/134/431 235/135/431
+f 247/141/432 243/139/432 245/140/432
+f 241/138/433 237/136/433 239/137/433
+f 241/138/434 233/134/434 237/136/434
+f 251/143/435 247/141/435 249/142/435
+f 251/143/436 243/139/436 247/141/436
+f 219/127/437 221/128/437 223/129/437
+f 219/127/438 223/129/438 225/130/438
+f 233/134/439 229/132/439 231/133/439
+f 241/138/440 229/132/440 233/134/440
+f 255/115/437 251/143/437 253/144/437
+f 255/115/441 217/126/441 251/143/441
+f 251/143/441 217/126/441 243/139/441
+f 219/127/442 225/130/442 227/131/442
+f 217/126/443 219/127/443 227/131/443
+f 243/139/420 217/126/420 227/131/420
+f 241/138/444 243/139/444 229/132/444
+f 243/139/445 227/131/445 229/132/445
+v -3.858562 2.027707 3.871576
+v -3.858562 2.027707 -3.907549
+v 3.920563 2.027707 -3.907549
+v 3.920563 2.027707 3.871576
+v -3.858562 2.306528 3.871576
+v -3.858562 2.306528 -3.907549
+v 3.920563 2.306528 -3.907549
+v 3.920563 2.306528 3.871576
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+vn -1.000000 0.000000 0.000000
+vn 0.000000 0.000000 -1.000000
+vn 1.000000 -0.000000 0.000000
+vn 0.000000 0.000000 1.000000
+vn 0.000000 -1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+s off
+f 261/145/446 262/146/446 257/147/446
+f 262/145/447 263/146/447 258/147/447
+f 263/145/448 264/146/448 260/148/448
+f 264/145/449 261/146/449 257/148/449
+f 257/145/450 258/146/450 259/148/450
+f 264/145/451 263/146/451 262/148/451
+f 262/146/446 258/148/446 257/147/446
+f 263/146/447 259/148/447 258/147/447
+f 259/147/448 263/145/448 260/148/448
+f 260/147/449 264/145/449 257/148/449
+f 260/147/450 257/145/450 259/148/450
+f 261/147/451 264/145/451 262/148/451
+v 2.043798 0.024218 -3.001008
+v 2.043798 2.024218 -3.001008
+v 2.238889 0.024218 -2.981793
+v 2.238889 2.024218 -2.981793
+v 2.426482 0.024218 -2.924888
+v 2.426482 2.024218 -2.924888
+v 2.599369 0.024218 -2.832478
+v 2.599369 2.024218 -2.832478
+v 2.750905 0.024218 -2.708115
+v 2.750905 2.024218 -2.708115
+v 2.875268 0.024218 -2.556578
+v 2.875268 2.024218 -2.556578
+v 2.967678 0.024218 -2.383692
+v 2.967678 2.024218 -2.383692
+v 3.024584 0.024218 -2.196099
+v 3.024584 2.024218 -2.196099
+v 3.043798 0.024218 -2.001008
+v 3.043798 2.024218 -2.001008
+v 3.024584 0.024218 -1.805918
+v 3.024584 2.024218 -1.805918
+v 2.967678 0.024218 -1.618325
+v 2.967678 2.024218 -1.618325
+v 2.875268 0.024218 -1.445438
+v 2.875268 2.024218 -1.445438
+v 2.750905 0.024218 -1.293901
+v 2.750905 2.024218 -1.293901
+v 2.599369 0.024218 -1.169539
+v 2.599369 2.024218 -1.169539
+v 2.426482 0.024218 -1.077129
+v 2.426482 2.024218 -1.077129
+v 2.238889 0.024218 -1.020223
+v 2.238889 2.024218 -1.020223
+v 2.043798 0.024218 -1.001008
+v 2.043798 2.024218 -1.001008
+v 1.848708 0.024218 -1.020223
+v 1.848708 2.024218 -1.020223
+v 1.661115 0.024218 -1.077129
+v 1.661115 2.024218 -1.077129
+v 1.488228 0.024218 -1.169539
+v 1.488228 2.024218 -1.169539
+v 1.336691 0.024218 -1.293902
+v 1.336691 2.024218 -1.293902
+v 1.212328 0.024218 -1.445439
+v 1.212328 2.024218 -1.445439
+v 1.119919 0.024218 -1.618326
+v 1.119919 2.024218 -1.618326
+v 1.063013 0.024218 -1.805919
+v 1.063013 2.024218 -1.805919
+v 1.043798 0.024218 -2.001009
+v 1.043798 2.024218 -2.001009
+v 1.063013 0.024218 -2.196100
+v 1.063013 2.024218 -2.196100
+v 1.119919 0.024218 -2.383693
+v 1.119919 2.024218 -2.383693
+v 1.212330 0.024218 -2.556580
+v 1.212330 2.024218 -2.556580
+v 1.336693 0.024218 -2.708116
+v 1.336693 2.024218 -2.708116
+v 1.488229 0.024218 -2.832479
+v 1.488229 2.024218 -2.832479
+v 1.661116 0.024218 -2.924888
+v 1.661116 2.024218 -2.924888
+v 1.848710 0.024218 -2.981794
+v 1.848710 2.024218 -2.981794
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.098018 0.000000 -0.995185
+vn 0.290285 0.000000 -0.956940
+vn 0.471397 0.000000 -0.881921
+vn 0.634393 0.000000 -0.773011
+vn 0.773011 0.000000 -0.634393
+vn 0.881921 0.000000 -0.471398
+vn 0.956940 0.000000 -0.290285
+vn 0.995185 0.000000 -0.098017
+vn 0.995185 0.000000 0.098017
+vn 0.956940 0.000000 0.290285
+vn 0.881921 0.000000 0.471397
+vn 0.773011 0.000000 0.634393
+vn 0.634393 0.000000 0.773011
+vn 0.471397 0.000000 0.881921
+vn 0.290285 0.000000 0.956940
+vn 0.098017 0.000000 0.995185
+vn -0.098018 0.000000 0.995185
+vn -0.290285 0.000000 0.956940
+vn -0.471397 0.000000 0.881921
+vn -0.634394 0.000000 0.773010
+vn -0.773011 0.000000 0.634393
+vn -0.881922 0.000000 0.471396
+vn -0.956941 0.000000 0.290283
+vn -0.995185 0.000000 0.098017
+vn -0.995185 -0.000000 -0.098018
+vn -0.956940 -0.000000 -0.290286
+vn -0.881921 -0.000000 -0.471398
+vn -0.773010 -0.000000 -0.634394
+vn -0.634392 -0.000000 -0.773012
+vn -0.471396 -0.000000 -0.881922
+vn -0.098016 -0.000000 -0.995185
+vn -0.290283 -0.000000 -0.956941
+s off
+f 265/149/452 266/150/452 268/151/452
+f 267/149/453 268/150/453 270/151/453
+f 269/149/454 270/150/454 272/151/454
+f 271/149/455 272/150/455 274/151/455
+f 273/149/456 274/150/456 276/151/456
+f 275/149/457 276/150/457 278/151/457
+f 277/149/458 278/150/458 280/151/458
+f 279/149/459 280/150/459 282/151/459
+f 281/149/460 282/150/460 284/151/460
+f 283/149/461 284/150/461 286/151/461
+f 285/149/462 286/150/462 288/151/462
+f 287/149/463 288/150/463 290/151/463
+f 289/149/464 290/150/464 292/151/464
+f 291/149/465 292/150/465 294/151/465
+f 293/149/466 294/150/466 296/151/466
+f 295/149/467 296/150/467 298/151/467
+f 297/149/468 298/150/468 299/152/468
+f 299/149/469 300/150/469 301/152/469
+f 301/149/470 302/150/470 303/152/470
+f 303/149/471 304/150/471 305/152/471
+f 305/149/472 306/150/472 307/152/472
+f 307/149/473 308/150/473 309/152/473
+f 309/149/474 310/150/474 311/152/474
+f 311/149/475 312/150/475 313/152/475
+f 313/149/476 314/150/476 315/152/476
+f 315/149/477 316/150/477 317/152/477
+f 317/149/478 318/150/478 319/152/478
+f 319/149/479 320/150/479 321/152/479
+f 321/149/480 322/150/480 323/152/480
+f 323/149/481 324/150/481 325/152/481
+f 268/153/451 266/154/451 270/155/451
+f 327/149/482 328/150/482 265/152/482
+f 325/149/483 326/150/483 327/152/483
+f 265/153/450 267/154/450 327/155/450
+f 267/152/452 265/149/452 268/151/452
+f 269/152/453 267/149/453 270/151/453
+f 271/152/454 269/149/454 272/151/454
+f 273/152/455 271/149/455 274/151/455
+f 275/152/456 273/149/456 276/151/456
+f 277/152/457 275/149/457 278/151/457
+f 279/152/458 277/149/458 280/151/458
+f 281/152/459 279/149/459 282/151/459
+f 283/152/460 281/149/460 284/151/460
+f 285/152/461 283/149/461 286/151/461
+f 287/152/462 285/149/462 288/151/462
+f 289/152/463 287/149/463 290/151/463
+f 291/152/464 289/149/464 292/151/464
+f 293/152/465 291/149/465 294/151/465
+f 295/152/466 293/149/466 296/151/466
+f 297/152/467 295/149/467 298/151/467
+f 298/150/468 300/151/468 299/152/468
+f 300/150/469 302/151/469 301/152/469
+f 302/150/470 304/151/470 303/152/470
+f 304/150/471 306/151/471 305/152/471
+f 306/150/472 308/151/472 307/152/472
+f 308/150/473 310/151/473 309/152/473
+f 310/150/474 312/151/474 311/152/474
+f 312/150/475 314/151/475 313/152/475
+f 314/150/476 316/151/476 315/152/476
+f 316/150/477 318/151/477 317/152/477
+f 318/150/478 320/151/478 319/152/478
+f 320/150/479 322/151/479 321/152/479
+f 322/150/480 324/151/480 323/152/480
+f 324/150/481 326/151/481 325/152/481
+f 266/154/451 328/156/451 270/155/451
+f 328/156/451 326/157/451 270/155/451
+f 326/157/451 324/158/451 270/155/451
+f 324/158/451 322/159/451 270/155/451
+f 322/159/451 320/160/451 270/155/451
+f 320/160/451 318/161/451 270/155/451
+f 318/161/451 316/162/451 270/155/451
+f 316/162/451 314/163/451 270/155/451
+f 314/163/451 312/164/451 270/155/451
+f 312/164/451 310/165/451 270/155/451
+f 310/165/451 308/166/451 270/155/451
+f 308/166/451 306/167/451 270/155/451
+f 306/167/451 304/168/451 270/155/451
+f 304/168/451 302/169/451 270/155/451
+f 302/169/451 300/170/451 270/155/451
+f 300/170/451 298/171/451 270/155/451
+f 298/171/451 296/172/451 270/155/451
+f 296/172/451 294/173/451 270/155/451
+f 294/173/451 292/174/451 270/155/451
+f 292/174/451 290/175/451 270/155/451
+f 290/175/451 288/176/451 270/155/451
+f 288/176/451 286/177/451 270/155/451
+f 286/177/451 284/178/451 270/155/451
+f 284/178/451 282/179/451 270/155/451
+f 282/179/451 280/180/451 270/155/451
+f 280/180/451 278/181/451 270/155/451
+f 278/181/451 276/182/451 270/155/451
+f 276/182/451 274/183/451 270/155/451
+f 274/183/451 272/184/451 270/155/451
+f 328/150/482 266/151/482 265/152/482
+f 326/150/483 328/151/483 327/152/483
+f 267/154/450 269/156/450 327/155/450
+f 269/156/450 271/157/450 327/155/450
+f 271/157/450 273/158/450 327/155/450
+f 273/158/450 275/159/450 327/155/450
+f 275/159/450 277/160/450 327/155/450
+f 277/160/450 279/161/450 327/155/450
+f 279/161/450 281/162/450 327/155/450
+f 281/162/450 283/163/450 327/155/450
+f 283/163/450 285/164/450 327/155/450
+f 285/164/450 287/165/450 327/155/450
+f 287/165/450 289/166/450 327/155/450
+f 289/166/450 291/167/450 327/155/450
+f 291/167/450 293/168/450 327/155/450
+f 293/168/450 295/169/450 327/155/450
+f 295/169/450 297/170/450 327/155/450
+f 297/170/450 299/171/450 327/155/450
+f 299/171/450 301/172/450 327/155/450
+f 301/172/450 303/173/450 327/155/450
+f 303/173/450 305/174/450 327/155/450
+f 305/174/450 307/175/450 327/155/450
+f 307/175/450 309/176/450 327/155/450
+f 309/176/450 311/177/450 327/155/450
+f 311/177/450 313/178/450 327/155/450
+f 313/178/450 315/179/450 327/155/450
+f 315/179/450 317/180/450 327/155/450
+f 317/180/450 319/181/450 327/155/450
+f 319/181/450 321/182/450 327/155/450
+f 321/182/450 323/183/450 325/184/450
+f 327/155/450 321/182/450 325/184/450
+v -2.014818 0.007922 0.998641
+v -2.014818 2.007922 0.998641
+v -1.819728 0.007922 1.017856
+v -1.819728 2.007922 1.017856
+v -1.632135 0.007922 1.074762
+v -1.632135 2.007922 1.074762
+v -1.459248 0.007922 1.167172
+v -1.459248 2.007922 1.167172
+v -1.307712 0.007922 1.291534
+v -1.307712 2.007922 1.291534
+v -1.183349 0.007922 1.443071
+v -1.183349 2.007922 1.443071
+v -1.090939 0.007922 1.615958
+v -1.090939 2.007922 1.615958
+v -1.034033 0.007922 1.803551
+v -1.034033 2.007922 1.803551
+v -1.014818 0.007922 1.998641
+v -1.014818 2.007922 1.998641
+v -1.034033 0.007922 2.193732
+v -1.034033 2.007922 2.193732
+v -1.090939 0.007922 2.381325
+v -1.090939 2.007922 2.381325
+v -1.183349 0.007922 2.554211
+v -1.183349 2.007922 2.554211
+v -1.307712 0.007922 2.705748
+v -1.307712 2.007922 2.705748
+v -1.459248 0.007922 2.830111
+v -1.459248 2.007922 2.830111
+v -1.632135 0.007922 2.922521
+v -1.632135 2.007922 2.922521
+v -1.819728 0.007922 2.979427
+v -1.819728 2.007922 2.979427
+v -2.014819 0.007922 2.998641
+v -2.014819 2.007922 2.998641
+v -2.209909 0.007922 2.979426
+v -2.209909 2.007922 2.979426
+v -2.397502 0.007922 2.922521
+v -2.397502 2.007922 2.922521
+v -2.570389 0.007922 2.830111
+v -2.570389 2.007922 2.830111
+v -2.721926 0.007922 2.705748
+v -2.721926 2.007922 2.705748
+v -2.846288 0.007922 2.554211
+v -2.846288 2.007922 2.554211
+v -2.938698 0.007922 2.381324
+v -2.938698 2.007922 2.381324
+v -2.995604 0.007922 2.193731
+v -2.995604 2.007922 2.193731
+v -3.014818 0.007922 1.998640
+v -3.014818 2.007922 1.998640
+v -2.995604 0.007922 1.803550
+v -2.995604 2.007922 1.803550
+v -2.938698 0.007922 1.615957
+v -2.938698 2.007922 1.615957
+v -2.846287 0.007922 1.443070
+v -2.846287 2.007922 1.443070
+v -2.721924 0.007922 1.291534
+v -2.721924 2.007922 1.291534
+v -2.570388 0.007922 1.167171
+v -2.570388 2.007922 1.167171
+v -2.397501 0.007922 1.074761
+v -2.397501 2.007922 1.074761
+v -2.209907 0.007922 1.017856
+v -2.209907 2.007922 1.017856
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.098017 0.000000 -0.995185
+vn 0.881921 0.000000 -0.471397
+vn 0.634393 0.000000 0.773010
+vn 0.471396 0.000000 0.881922
+vn -0.881920 -0.000000 -0.471398
+vn -0.634393 -0.000000 -0.773011
+vn -0.471395 -0.000000 -0.881922
+s off
+f 329/185/484 330/186/484 332/187/484
+f 331/185/453 332/186/453 334/187/453
+f 333/185/454 334/186/454 336/187/454
+f 335/185/455 336/186/455 338/187/455
+f 337/185/456 338/186/456 340/187/456
+f 339/185/485 340/186/485 342/187/485
+f 341/185/458 342/186/458 344/187/458
+f 343/185/459 344/186/459 346/187/459
+f 345/185/460 346/186/460 348/187/460
+f 347/185/461 348/186/461 350/187/461
+f 349/185/462 350/186/462 352/187/462
+f 351/185/463 352/186/463 354/187/463
+f 353/185/486 354/186/486 356/187/486
+f 355/185/487 356/186/487 358/187/487
+f 357/185/466 358/186/466 360/187/466
+f 359/185/467 360/186/467 362/187/467
+f 361/185/468 362/186/468 363/188/468
+f 363/185/469 364/186/469 365/188/469
+f 365/185/470 366/186/470 367/188/470
+f 367/185/471 368/186/471 369/188/471
+f 369/185/472 370/186/472 371/188/472
+f 371/185/473 372/186/473 373/188/473
+f 373/185/474 374/186/474 375/188/474
+f 375/185/475 376/186/475 377/188/475
+f 377/185/476 378/186/476 379/188/476
+f 379/185/477 380/186/477 381/188/477
+f 381/185/488 382/186/488 383/188/488
+f 383/185/479 384/186/479 385/188/479
+f 385/185/489 386/186/489 387/188/489
+f 387/185/490 388/186/490 389/188/490
+f 332/189/451 330/190/451 334/191/451
+f 391/185/482 392/186/482 329/188/482
+f 389/185/483 390/186/483 391/188/483
+f 329/189/450 331/190/450 391/191/450
+f 331/188/484 329/185/484 332/187/484
+f 333/188/453 331/185/453 334/187/453
+f 335/188/454 333/185/454 336/187/454
+f 337/188/455 335/185/455 338/187/455
+f 339/188/456 337/185/456 340/187/456
+f 341/188/485 339/185/485 342/187/485
+f 343/188/458 341/185/458 344/187/458
+f 345/188/459 343/185/459 346/187/459
+f 347/188/460 345/185/460 348/187/460
+f 349/188/461 347/185/461 350/187/461
+f 351/188/462 349/185/462 352/187/462
+f 353/188/463 351/185/463 354/187/463
+f 355/188/486 353/185/486 356/187/486
+f 357/188/487 355/185/487 358/187/487
+f 359/188/466 357/185/466 360/187/466
+f 361/188/467 359/185/467 362/187/467
+f 362/186/468 364/187/468 363/188/468
+f 364/186/469 366/187/469 365/188/469
+f 366/186/470 368/187/470 367/188/470
+f 368/186/471 370/187/471 369/188/471
+f 370/186/472 372/187/472 371/188/472
+f 372/186/473 374/187/473 373/188/473
+f 374/186/474 376/187/474 375/188/474
+f 376/186/475 378/187/475 377/188/475
+f 378/186/476 380/187/476 379/188/476
+f 380/186/477 382/187/477 381/188/477
+f 382/186/488 384/187/488 383/188/488
+f 384/186/479 386/187/479 385/188/479
+f 386/186/489 388/187/489 387/188/489
+f 388/186/490 390/187/490 389/188/490
+f 330/190/451 392/192/451 334/191/451
+f 392/192/451 390/193/451 334/191/451
+f 390/193/451 388/194/451 334/191/451
+f 388/194/451 386/195/451 334/191/451
+f 386/195/451 384/196/451 334/191/451
+f 384/196/451 382/197/451 334/191/451
+f 382/197/451 380/198/451 334/191/451
+f 380/198/451 378/199/451 334/191/451
+f 378/199/451 376/200/451 334/191/451
+f 376/200/451 374/201/451 334/191/451
+f 374/201/451 372/202/451 334/191/451
+f 372/202/451 370/203/451 334/191/451
+f 370/203/451 368/204/451 334/191/451
+f 368/204/451 366/205/451 334/191/451
+f 366/205/451 364/206/451 334/191/451
+f 364/206/451 362/207/451 334/191/451
+f 362/207/451 360/208/451 334/191/451
+f 360/208/451 358/209/451 334/191/451
+f 358/209/451 356/210/451 334/191/451
+f 356/210/451 354/211/451 334/191/451
+f 354/211/451 352/212/451 334/191/451
+f 352/212/451 350/213/451 334/191/451
+f 350/213/451 348/214/451 334/191/451
+f 348/214/451 346/215/451 334/191/451
+f 346/215/451 344/216/451 334/191/451
+f 344/216/451 342/217/451 334/191/451
+f 342/217/451 340/218/451 334/191/451
+f 340/218/451 338/219/451 334/191/451
+f 338/219/451 336/220/451 334/191/451
+f 392/186/482 330/187/482 329/188/482
+f 390/186/483 392/187/483 391/188/483
+f 331/190/450 333/192/450 391/191/450
+f 333/192/450 335/193/450 391/191/450
+f 335/193/450 337/194/450 391/191/450
+f 337/194/450 339/195/450 391/191/450
+f 339/195/450 341/196/450 391/191/450
+f 341/196/450 343/197/450 391/191/450
+f 343/197/450 345/198/450 391/191/450
+f 345/198/450 347/199/450 391/191/450
+f 347/199/450 349/200/450 391/191/450
+f 349/200/450 351/201/450 391/191/450
+f 351/201/450 353/202/450 391/191/450
+f 353/202/450 355/203/450 391/191/450
+f 355/203/450 357/204/450 391/191/450
+f 357/204/450 359/205/450 391/191/450
+f 359/205/450 361/206/450 391/191/450
+f 361/206/450 363/207/450 391/191/450
+f 363/207/450 365/208/450 391/191/450
+f 365/208/450 367/209/450 391/191/450
+f 367/209/450 369/210/450 391/191/450
+f 369/210/450 371/211/450 391/191/450
+f 371/211/450 373/212/450 391/191/450
+f 373/212/450 375/213/450 391/191/450
+f 375/213/450 377/214/450 391/191/450
+f 377/214/450 379/215/450 391/191/450
+f 379/215/450 381/216/450 391/191/450
+f 381/216/450 383/217/450 391/191/450
+f 383/217/450 385/218/450 391/191/450
+f 385/218/450 387/219/450 391/191/450
+f 387/219/450 389/220/450 391/191/450
+v -2.001621 -0.021814 -3.021079
+v -2.001621 1.978186 -3.021079
+v -1.806530 -0.021814 -3.001864
+v -1.806530 1.978186 -3.001864
+v -1.618937 -0.021814 -2.944958
+v -1.618937 1.978186 -2.944958
+v -1.446051 -0.021814 -2.852548
+v -1.446051 1.978186 -2.852548
+v -1.294514 -0.021814 -2.728185
+v -1.294514 1.978186 -2.728185
+v -1.170151 -0.021814 -2.576649
+v -1.170151 1.978186 -2.576649
+v -1.077741 -0.021814 -2.403762
+v -1.077741 1.978186 -2.403762
+v -1.020836 -0.021814 -2.216169
+v -1.020836 1.978186 -2.216169
+v -1.001621 -0.021814 -2.021079
+v -1.001621 1.978186 -2.021079
+v -1.020835 -0.021814 -1.825988
+v -1.020835 1.978186 -1.825988
+v -1.077741 -0.021814 -1.638395
+v -1.077741 1.978186 -1.638395
+v -1.170151 -0.021814 -1.465508
+v -1.170151 1.978186 -1.465508
+v -1.294514 -0.021814 -1.313972
+v -1.294514 1.978186 -1.313972
+v -1.446051 -0.021814 -1.189609
+v -1.446051 1.978186 -1.189609
+v -1.618937 -0.021814 -1.097199
+v -1.618937 1.978186 -1.097199
+v -1.806531 -0.021814 -1.040293
+v -1.806531 1.978186 -1.040293
+v -2.001621 -0.021814 -1.021079
+v -2.001621 1.978186 -1.021079
+v -2.196712 -0.021814 -1.040293
+v -2.196712 1.978186 -1.040293
+v -2.384305 -0.021814 -1.097199
+v -2.384305 1.978186 -1.097199
+v -2.557191 -0.021814 -1.189609
+v -2.557191 1.978186 -1.189609
+v -2.708728 -0.021814 -1.313972
+v -2.708728 1.978186 -1.313972
+v -2.833091 -0.021814 -1.465509
+v -2.833091 1.978186 -1.465509
+v -2.925501 -0.021814 -1.638396
+v -2.925501 1.978186 -1.638396
+v -2.982406 -0.021814 -1.825989
+v -2.982406 1.978186 -1.825989
+v -3.001621 -0.021814 -2.021080
+v -3.001621 1.978186 -2.021080
+v -2.982406 -0.021814 -2.216170
+v -2.982406 1.978186 -2.216170
+v -2.925500 -0.021814 -2.403763
+v -2.925500 1.978186 -2.403763
+v -2.833090 -0.021814 -2.576650
+v -2.833090 1.978186 -2.576650
+v -2.708727 -0.021814 -2.728186
+v -2.708727 1.978186 -2.728186
+v -2.557190 -0.021814 -2.852549
+v -2.557190 1.978186 -2.852549
+v -2.384303 -0.021814 -2.944959
+v -2.384303 1.978186 -2.944959
+v -2.196710 -0.021814 -3.001864
+v -2.196710 1.978186 -3.001864
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.471398 0.000000 -0.881921
+vn -0.634393 0.000000 0.773010
+vn -0.881921 -0.000000 -0.471397
+vn -0.773009 -0.000000 -0.634395
+vn -0.634393 -0.000000 -0.773010
+s off
+f 393/221/484 394/222/484 396/223/484
+f 395/221/453 396/222/453 398/223/453
+f 397/221/491 398/222/491 400/223/491
+f 399/221/455 400/222/455 402/223/455
+f 401/221/456 402/222/456 404/223/456
+f 403/221/485 404/222/485 406/223/485
+f 405/221/458 406/222/458 408/223/458
+f 407/221/459 408/222/459 410/223/459
+f 409/221/460 410/222/460 412/223/460
+f 411/221/461 412/222/461 414/223/461
+f 413/221/462 414/222/462 416/223/462
+f 415/221/463 416/222/463 418/223/463
+f 417/221/464 418/222/464 420/223/464
+f 419/221/465 420/222/465 422/223/465
+f 421/221/466 422/222/466 424/223/466
+f 423/221/467 424/222/467 426/223/467
+f 425/221/468 426/222/468 427/224/468
+f 427/221/469 428/222/469 429/224/469
+f 429/221/470 430/222/470 431/224/470
+f 431/221/492 432/222/492 433/224/492
+f 433/221/472 434/222/472 435/224/472
+f 435/221/473 436/222/473 437/224/473
+f 437/221/474 438/222/474 439/224/474
+f 439/221/475 440/222/475 441/224/475
+f 441/221/476 442/222/476 443/224/476
+f 443/221/477 444/222/477 445/224/477
+f 445/221/493 446/222/493 447/224/493
+f 447/221/494 448/222/494 449/224/494
+f 449/221/495 450/222/495 451/224/495
+f 451/221/490 452/222/490 453/224/490
+f 396/225/451 394/226/451 398/227/451
+f 455/221/482 456/222/482 393/224/482
+f 453/221/483 454/222/483 455/224/483
+f 393/225/450 395/226/450 455/227/450
+f 395/224/484 393/221/484 396/223/484
+f 397/224/453 395/221/453 398/223/453
+f 399/224/491 397/221/491 400/223/491
+f 401/224/455 399/221/455 402/223/455
+f 403/224/456 401/221/456 404/223/456
+f 405/224/485 403/221/485 406/223/485
+f 407/224/458 405/221/458 408/223/458
+f 409/224/459 407/221/459 410/223/459
+f 411/224/460 409/221/460 412/223/460
+f 413/224/461 411/221/461 414/223/461
+f 415/224/462 413/221/462 416/223/462
+f 417/224/463 415/221/463 418/223/463
+f 419/224/464 417/221/464 420/223/464
+f 421/224/465 419/221/465 422/223/465
+f 423/224/466 421/221/466 424/223/466
+f 425/224/467 423/221/467 426/223/467
+f 426/222/468 428/223/468 427/224/468
+f 428/222/469 430/223/469 429/224/469
+f 430/222/470 432/223/470 431/224/470
+f 432/222/492 434/223/492 433/224/492
+f 434/222/472 436/223/472 435/224/472
+f 436/222/473 438/223/473 437/224/473
+f 438/222/474 440/223/474 439/224/474
+f 440/222/475 442/223/475 441/224/475
+f 442/222/476 444/223/476 443/224/476
+f 444/222/477 446/223/477 445/224/477
+f 446/222/493 448/223/493 447/224/493
+f 448/222/494 450/223/494 449/224/494
+f 450/222/495 452/223/495 451/224/495
+f 452/222/490 454/223/490 453/224/490
+f 394/226/451 456/228/451 398/227/451
+f 456/228/451 454/229/451 398/227/451
+f 454/229/451 452/230/451 398/227/451
+f 452/230/451 450/231/451 398/227/451
+f 450/231/451 448/232/451 398/227/451
+f 448/232/451 446/233/451 398/227/451
+f 446/233/451 444/234/451 398/227/451
+f 444/234/451 442/235/451 398/227/451
+f 442/235/451 440/236/451 398/227/451
+f 440/236/451 438/237/451 398/227/451
+f 438/237/451 436/238/451 398/227/451
+f 436/238/451 434/239/451 398/227/451
+f 434/239/451 432/240/451 398/227/451
+f 432/240/451 430/241/451 398/227/451
+f 430/241/451 428/242/451 398/227/451
+f 428/242/451 426/243/451 398/227/451
+f 426/243/451 424/244/451 398/227/451
+f 424/244/451 422/245/451 398/227/451
+f 422/245/451 420/246/451 398/227/451
+f 420/246/451 418/247/451 398/227/451
+f 418/247/451 416/248/451 398/227/451
+f 416/248/451 414/249/451 398/227/451
+f 414/249/451 412/250/451 398/227/451
+f 412/250/451 410/251/451 398/227/451
+f 410/251/451 408/252/451 398/227/451
+f 408/252/451 406/253/451 398/227/451
+f 406/253/451 404/254/451 398/227/451
+f 404/254/451 402/255/451 398/227/451
+f 402/255/451 400/256/451 398/227/451
+f 456/222/482 394/223/482 393/224/482
+f 454/222/483 456/223/483 455/224/483
+f 395/226/450 397/228/450 455/227/450
+f 397/228/450 399/229/450 455/227/450
+f 399/229/450 401/230/450 455/227/450
+f 401/230/450 403/231/450 455/227/450
+f 403/231/450 405/232/450 455/227/450
+f 405/232/450 407/233/450 455/227/450
+f 407/233/450 409/234/450 455/227/450
+f 409/234/450 411/235/450 455/227/450
+f 411/235/450 413/236/450 455/227/450
+f 413/236/450 415/237/450 455/227/450
+f 415/237/450 417/238/450 455/227/450
+f 417/238/450 419/239/450 455/227/450
+f 419/239/450 421/240/450 455/227/450
+f 421/240/450 423/241/450 455/227/450
+f 423/241/450 425/242/450 455/227/450
+f 425/242/450 427/243/450 455/227/450
+f 427/243/450 429/244/450 455/227/450
+f 429/244/450 431/245/450 455/227/450
+f 431/245/450 433/246/450 455/227/450
+f 433/246/450 435/247/450 455/227/450
+f 435/247/450 437/248/450 455/227/450
+f 437/248/450 439/249/450 455/227/450
+f 439/249/450 441/250/450 455/227/450
+f 441/250/450 443/251/450 455/227/450
+f 443/251/450 445/252/450 455/227/450
+f 445/252/450 447/253/450 455/227/450
+f 447/253/450 449/254/450 455/227/450
+f 449/254/450 451/255/450 455/227/450
+f 451/255/450 453/256/450 455/227/450
+v 2.021592 0.003623 1.016610
+v 2.021592 2.003623 1.016610
+v 2.216682 0.003623 1.035825
+v 2.216682 2.003623 1.035825
+v 2.404276 0.003623 1.092731
+v 2.404276 2.003623 1.092731
+v 2.577162 0.003623 1.185141
+v 2.577162 2.003623 1.185141
+v 2.728699 0.003623 1.309503
+v 2.728699 2.003623 1.309503
+v 2.853062 0.003623 1.461040
+v 2.853062 2.003623 1.461040
+v 2.945472 0.003623 1.633927
+v 2.945472 2.003623 1.633927
+v 3.002378 0.003623 1.821520
+v 3.002378 2.003623 1.821520
+v 3.021592 0.003623 2.016610
+v 3.021592 2.003623 2.016610
+v 3.002378 0.003623 2.211700
+v 3.002378 2.003623 2.211700
+v 2.945472 0.003623 2.399293
+v 2.945472 2.003623 2.399293
+v 2.853062 0.003623 2.572180
+v 2.853062 2.003623 2.572180
+v 2.728699 0.003623 2.723717
+v 2.728699 2.003623 2.723717
+v 2.577162 0.003623 2.848080
+v 2.577162 2.003623 2.848080
+v 2.404275 0.003623 2.940490
+v 2.404275 2.003623 2.940490
+v 2.216682 0.003623 2.997396
+v 2.216682 2.003623 2.997396
+v 2.021592 0.003623 3.016610
+v 2.021592 2.003623 3.016610
+v 1.826501 0.003623 2.997395
+v 1.826501 2.003623 2.997395
+v 1.638908 0.003623 2.940490
+v 1.638908 2.003623 2.940490
+v 1.466021 0.003623 2.848079
+v 1.466021 2.003623 2.848079
+v 1.314485 0.003623 2.723716
+v 1.314485 2.003623 2.723716
+v 1.190122 0.003623 2.572180
+v 1.190122 2.003623 2.572180
+v 1.097712 0.003623 2.399293
+v 1.097712 2.003623 2.399293
+v 1.040807 0.003623 2.211699
+v 1.040807 2.003623 2.211699
+v 1.021592 0.003623 2.016609
+v 1.021592 2.003623 2.016609
+v 1.040807 0.003623 1.821519
+v 1.040807 2.003623 1.821519
+v 1.097713 0.003623 1.633926
+v 1.097713 2.003623 1.633926
+v 1.190123 0.003623 1.461039
+v 1.190123 2.003623 1.461039
+v 1.314486 0.003623 1.309502
+v 1.314486 2.003623 1.309502
+v 1.466023 0.003623 1.185140
+v 1.466023 2.003623 1.185140
+v 1.638910 0.003623 1.092730
+v 1.638910 2.003623 1.092730
+v 1.826503 0.003623 1.035825
+v 1.826503 2.003623 1.035825
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+s off
+f 457/257/484 458/258/484 460/259/484
+f 459/257/453 460/258/453 462/259/453
+f 461/257/454 462/258/454 464/259/454
+f 463/257/455 464/258/455 466/259/455
+f 465/257/456 466/258/456 468/259/456
+f 467/257/457 468/258/457 470/259/457
+f 469/257/458 470/258/458 472/259/458
+f 471/257/459 472/258/459 474/259/459
+f 473/257/460 474/258/460 476/259/460
+f 475/257/461 476/258/461 478/259/461
+f 477/257/462 478/258/462 480/259/462
+f 479/257/463 480/258/463 482/259/463
+f 481/257/464 482/258/464 484/259/464
+f 483/257/465 484/258/465 486/259/465
+f 485/257/466 486/258/466 488/259/466
+f 487/257/467 488/258/467 490/259/467
+f 489/257/468 490/258/468 491/260/468
+f 491/257/469 492/258/469 493/260/469
+f 493/257/470 494/258/470 495/260/470
+f 495/257/471 496/258/471 497/260/471
+f 497/257/472 498/258/472 499/260/472
+f 499/257/473 500/258/473 501/260/473
+f 501/257/474 502/258/474 503/260/474
+f 503/257/475 504/258/475 505/260/475
+f 505/257/476 506/258/476 507/260/476
+f 507/257/477 508/258/477 509/260/477
+f 509/257/478 510/258/478 511/260/478
+f 511/257/494 512/258/494 513/260/494
+f 513/257/489 514/258/489 515/260/489
+f 515/257/490 516/258/490 517/260/490
+f 460/261/451 458/262/451 462/263/451
+f 519/257/482 520/258/482 457/260/482
+f 517/257/483 518/258/483 519/260/483
+f 457/261/450 459/262/450 519/263/450
+f 459/260/484 457/257/484 460/259/484
+f 461/260/453 459/257/453 462/259/453
+f 463/260/454 461/257/454 464/259/454
+f 465/260/455 463/257/455 466/259/455
+f 467/260/456 465/257/456 468/259/456
+f 469/260/457 467/257/457 470/259/457
+f 471/260/458 469/257/458 472/259/458
+f 473/260/459 471/257/459 474/259/459
+f 475/260/460 473/257/460 476/259/460
+f 477/260/461 475/257/461 478/259/461
+f 479/260/462 477/257/462 480/259/462
+f 481/260/463 479/257/463 482/259/463
+f 483/260/464 481/257/464 484/259/464
+f 485/260/465 483/257/465 486/259/465
+f 487/260/466 485/257/466 488/259/466
+f 489/260/467 487/257/467 490/259/467
+f 490/258/468 492/259/468 491/260/468
+f 492/258/469 494/259/469 493/260/469
+f 494/258/470 496/259/470 495/260/470
+f 496/258/471 498/259/471 497/260/471
+f 498/258/472 500/259/472 499/260/472
+f 500/258/473 502/259/473 501/260/473
+f 502/258/474 504/259/474 503/260/474
+f 504/258/475 506/259/475 505/260/475
+f 506/258/476 508/259/476 507/260/476
+f 508/258/477 510/259/477 509/260/477
+f 510/258/478 512/259/478 511/260/478
+f 512/258/494 514/259/494 513/260/494
+f 514/258/489 516/259/489 515/260/489
+f 516/258/490 518/259/490 517/260/490
+f 458/262/451 520/264/451 462/263/451
+f 520/264/451 518/265/451 462/263/451
+f 518/265/451 516/266/451 462/263/451
+f 516/266/451 514/267/451 462/263/451
+f 514/267/451 512/268/451 462/263/451
+f 512/268/451 510/269/451 462/263/451
+f 510/269/451 508/270/451 462/263/451
+f 508/270/451 506/271/451 462/263/451
+f 506/271/451 504/272/451 462/263/451
+f 504/272/451 502/273/451 462/263/451
+f 502/273/451 500/274/451 462/263/451
+f 500/274/451 498/275/451 462/263/451
+f 498/275/451 496/276/451 462/263/451
+f 496/276/451 494/277/451 462/263/451
+f 494/277/451 492/278/451 462/263/451
+f 492/278/451 490/279/451 462/263/451
+f 490/279/451 488/280/451 462/263/451
+f 488/280/451 486/281/451 462/263/451
+f 486/281/451 484/282/451 462/263/451
+f 484/282/451 482/283/451 462/263/451
+f 482/283/451 480/284/451 462/263/451
+f 480/284/451 478/285/451 462/263/451
+f 478/285/451 476/286/451 462/263/451
+f 476/286/451 474/287/451 462/263/451
+f 474/287/451 472/288/451 462/263/451
+f 472/288/451 470/289/451 462/263/451
+f 470/289/451 468/290/451 462/263/451
+f 468/290/451 466/291/451 462/263/451
+f 466/291/451 464/292/451 462/263/451
+f 520/258/482 458/259/482 457/260/482
+f 518/258/483 520/259/483 519/260/483
+f 459/262/450 461/264/450 519/263/450
+f 461/264/450 463/265/450 519/263/450
+f 463/265/450 465/266/450 519/263/450
+f 465/266/450 467/267/450 519/263/450
+f 467/267/450 469/268/450 519/263/450
+f 469/268/450 471/269/450 519/263/450
+f 471/269/450 473/270/450 519/263/450
+f 473/270/450 475/271/450 519/263/450
+f 475/271/450 477/272/450 519/263/450
+f 477/272/450 479/273/450 519/263/450
+f 479/273/450 481/274/450 519/263/450
+f 481/274/450 483/275/450 519/263/450
+f 483/275/450 485/276/450 519/263/450
+f 485/276/450 487/277/450 519/263/450
+f 487/277/450 489/278/450 519/263/450
+f 489/278/450 491/279/450 519/263/450
+f 491/279/450 493/280/450 519/263/450
+f 493/280/450 495/281/450 519/263/450
+f 495/281/450 497/282/450 519/263/450
+f 497/282/450 499/283/450 519/263/450
+f 499/283/450 501/284/450 519/263/450
+f 501/284/450 503/285/450 519/263/450
+f 503/285/450 505/286/450 519/263/450
+f 505/286/450 507/287/450 519/263/450
+f 507/287/450 509/288/450 519/263/450
+f 509/288/450 511/289/450 519/263/450
+f 511/289/450 513/290/450 519/263/450
+f 513/290/450 515/291/450 519/263/450
+f 515/291/450 517/292/450 519/263/450
diff --git a/examples/datavisualization/graphgallery/data/pipe.obj b/examples/datavisualization/graphgallery/data/pipe.obj
new file mode 100644
index 000000000..6ccbb2860
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/pipe.obj
@@ -0,0 +1,330 @@
+# Blender v2.66 (sub 0) OBJ File: 'cylinder.blend'
+# www.blender.org
+o Cylinder
+v 0.000000 -1.000000 -1.000000
+v 0.000000 1.000000 -1.000000
+v 0.195090 -1.000000 -0.980785
+v 0.195090 1.000000 -0.980785
+v 0.382683 -1.000000 -0.923880
+v 0.382683 1.000000 -0.923880
+v 0.555570 -1.000000 -0.831470
+v 0.555570 1.000000 -0.831470
+v 0.707107 -1.000000 -0.707107
+v 0.707107 1.000000 -0.707107
+v 0.831470 -1.000000 -0.555570
+v 0.831470 1.000000 -0.555570
+v 0.923880 -1.000000 -0.382683
+v 0.923880 1.000000 -0.382683
+v 0.980785 -1.000000 -0.195090
+v 0.980785 1.000000 -0.195090
+v 1.000000 -1.000000 -0.000000
+v 1.000000 1.000000 -0.000000
+v 0.980785 -1.000000 0.195090
+v 0.980785 1.000000 0.195090
+v 0.923880 -1.000000 0.382683
+v 0.923880 1.000000 0.382683
+v 0.831470 -1.000000 0.555570
+v 0.831470 1.000000 0.555570
+v 0.707107 -1.000000 0.707107
+v 0.707107 1.000000 0.707107
+v 0.555570 -1.000000 0.831470
+v 0.555570 1.000000 0.831470
+v 0.382683 -1.000000 0.923880
+v 0.382683 1.000000 0.923880
+v 0.195090 -1.000000 0.980785
+v 0.195090 1.000000 0.980785
+v -0.000000 -1.000000 1.000000
+v -0.000000 1.000000 1.000000
+v -0.195091 -1.000000 0.980785
+v -0.195091 1.000000 0.980785
+v -0.382684 -1.000000 0.923879
+v -0.382684 1.000000 0.923879
+v -0.555571 -1.000000 0.831469
+v -0.555571 1.000000 0.831469
+v -0.707107 -1.000000 0.707106
+v -0.707107 1.000000 0.707106
+v -0.831470 -1.000000 0.555570
+v -0.831470 1.000000 0.555570
+v -0.923880 -1.000000 0.382683
+v -0.923880 1.000000 0.382683
+v -0.980785 -1.000000 0.195089
+v -0.980785 1.000000 0.195089
+v -1.000000 -1.000000 -0.000001
+v -1.000000 1.000000 -0.000001
+v -0.980785 -1.000000 -0.195091
+v -0.980785 1.000000 -0.195091
+v -0.923879 -1.000000 -0.382684
+v -0.923879 1.000000 -0.382684
+v -0.831469 -1.000000 -0.555571
+v -0.831469 1.000000 -0.555571
+v -0.707106 -1.000000 -0.707108
+v -0.707106 1.000000 -0.707108
+v -0.555569 -1.000000 -0.831470
+v -0.555569 1.000000 -0.831470
+v -0.382682 -1.000000 -0.923880
+v -0.382682 1.000000 -0.923880
+v -0.195089 -1.000000 -0.980786
+v -0.195089 1.000000 -0.980786
+vt 0.289718 0.879351
+vt 0.288367 0.438844
+vt 0.330714 0.438714
+vt 0.332066 0.879221
+vt 0.370605 0.438592
+vt 0.371956 0.879099
+vt 0.406505 0.438482
+vt 0.407857 0.878988
+vt 0.437036 0.438388
+vt 0.778904 0.000000
+vt 0.780256 0.440507
+vt 0.749725 0.440601
+vt 0.748373 0.000094
+vt 0.713824 0.440711
+vt 0.712473 0.000204
+vt 0.673934 0.440833
+vt 0.672582 0.000326
+vt 0.631586 0.440963
+vt 0.630235 0.000456
+vt 0.588409 0.441095
+vt 0.587057 0.000588
+vt 0.546061 0.441225
+vt 0.544710 0.000718
+vt 0.506171 0.441348
+vt 0.504819 0.000841
+vt 0.470270 0.441458
+vt 0.468919 0.000951
+vt 0.439739 0.441552
+vt 0.720545 0.882916
+vt 0.719194 0.442409
+vt 0.755094 0.442299
+vt 0.756446 0.882806
+vt 0.794985 0.442176
+vt 0.796336 0.882683
+vt 0.837333 0.442046
+vt 0.838684 0.882553
+vt 0.881861 0.882421
+vt 0.880510 0.441914
+vt 0.924209 0.882291
+vt 0.922857 0.441784
+vt 0.964099 0.882168
+vt 0.962748 0.441662
+vt 1.000000 0.882058
+vt 0.717842 0.441552
+vt 0.719194 0.882058
+vt 0.681942 0.441662
+vt 0.683293 0.882169
+vt 0.642051 0.441784
+vt 0.643403 0.882291
+vt 0.599704 0.441914
+vt 0.601055 0.882421
+vt 0.556526 0.442046
+vt 0.557878 0.882553
+vt 0.514179 0.442176
+vt 0.515530 0.882683
+vt 0.474288 0.442299
+vt 0.475640 0.882806
+vt 0.438388 0.442409
+vt 0.097872 0.879939
+vt 0.096520 0.439433
+vt 0.128403 0.879846
+vt 0.127051 0.439339
+vt 0.164303 0.879735
+vt 0.162952 0.439229
+vt 0.204194 0.879613
+vt 0.000000 0.197605
+vt 0.008423 0.155257
+vt 0.000000 0.240783
+vt 0.246541 0.879483
+vt 0.245190 0.438976
+vt 0.202842 0.439106
+vt 0.438388 0.878895
+vt 0.438388 0.001045
+vt 0.998649 0.441552
+vt 0.439739 0.882916
+vt 0.024947 0.115367
+vt 0.048935 0.079466
+vt 0.079466 0.048935
+vt 0.115366 0.024947
+vt 0.155257 0.008424
+vt 0.197605 0.000000
+vt 0.240782 0.000000
+vt 0.283130 0.008423
+vt 0.323021 0.024947
+vt 0.358922 0.048935
+vt 0.389453 0.079466
+vt 0.413441 0.115367
+vt 0.429964 0.155257
+vt 0.438388 0.197605
+vt 0.438388 0.240783
+vt 0.429964 0.283130
+vt 0.413441 0.323021
+vt 0.389453 0.358922
+vt 0.358922 0.389453
+vt 0.323021 0.413441
+vt 0.283130 0.429964
+vt 0.240783 0.438388
+vt 0.197605 0.438388
+vt 0.155257 0.429964
+vt 0.115367 0.413441
+vt 0.079466 0.389453
+vt 0.048935 0.358922
+vt 0.024947 0.323021
+vt 0.008423 0.283130
+vn 0.000000 0.000000 -1.000000
+vn 0.000000 0.685690 -0.727866
+vn 0.142003 0.685690 -0.713889
+vn 0.195074 0.000000 -0.980773
+vn 0.278542 0.685690 -0.672475
+vn 0.382672 0.000000 -0.923856
+vn 0.404370 0.685690 -0.605213
+vn 0.555559 0.000000 -0.831446
+vn 0.514664 0.685690 -0.514664
+vn 0.707083 0.000000 -0.707083
+vn 0.605213 0.685690 -0.404370
+vn 0.831446 0.000000 -0.555559
+vn 0.672475 0.685690 -0.278542
+vn 0.923856 0.000000 -0.382672
+vn 0.713889 0.685690 -0.142003
+vn 0.980773 0.000000 -0.195074
+vn 0.727866 0.685690 0.000000
+vn 1.000000 0.000000 0.000000
+vn 0.713889 0.685690 0.142003
+vn 0.980773 0.000000 0.195074
+vn 0.672475 0.685690 0.278542
+vn 0.923856 0.000000 0.382672
+vn 0.605213 0.685690 0.404370
+vn 0.831446 0.000000 0.555559
+vn 0.514664 0.685690 0.514664
+vn 0.707083 0.000000 0.707083
+vn 0.404370 0.685690 0.605213
+vn 0.555559 0.000000 0.831446
+vn 0.278542 0.685690 0.672475
+vn 0.382672 0.000000 0.923856
+vn 0.142003 0.685690 0.713889
+vn 0.195074 0.000000 0.980773
+vn 0.000000 0.685690 0.727866
+vn 0.000000 0.000000 0.999969
+vn -0.195074 0.000000 0.980773
+vn -0.142003 0.685690 0.713889
+vn -0.382672 0.000000 0.923856
+vn -0.278542 0.685690 0.672475
+vn -0.555559 0.000000 0.831446
+vn -0.404370 0.685690 0.605213
+vn -0.707083 0.000000 0.707083
+vn -0.514664 0.685690 0.514664
+vn -0.831446 0.000000 0.555559
+vn -0.605213 0.685690 0.404370
+vn -0.923856 0.000000 0.382672
+vn -0.672475 0.685690 0.278542
+vn -0.980773 0.000000 0.195074
+vn -0.713889 0.685690 0.142003
+vn -1.000000 0.000000 0.000000
+vn -0.727866 0.685690 0.000000
+vn -0.980773 0.000000 -0.195074
+vn -0.713889 0.685690 -0.142003
+vn -0.923856 0.000000 -0.382672
+vn -0.672475 0.685690 -0.278542
+vn -0.831446 0.000000 -0.555559
+vn -0.605213 0.685690 -0.404370
+vn -0.707083 0.000000 -0.707083
+vn -0.514664 0.685690 -0.514695
+vn -0.555559 0.000000 -0.831446
+vn -0.404370 0.685690 -0.605213
+vn -0.382672 0.000000 -0.923856
+vn -0.195074 0.000000 -0.980773
+vn -0.142003 0.685690 -0.713889
+vn -0.278542 0.685690 -0.672475
+s 1
+f 1/1/1 2/2/2 4/3/3
+f 3/4/4 4/3/3 6/5/5
+f 5/6/6 6/5/5 8/7/7
+f 7/8/8 8/7/7 10/9/9
+f 9/10/10 10/11/9 12/12/11
+f 11/13/12 12/12/11 14/14/13
+f 13/15/14 14/14/13 16/16/15
+f 15/17/16 16/16/15 18/18/17
+f 17/19/18 18/18/17 20/20/19
+f 19/21/20 20/20/19 22/22/21
+f 21/23/22 22/22/21 24/24/23
+f 23/25/24 24/24/23 26/26/25
+f 25/27/26 26/26/25 28/28/27
+f 27/29/28 28/30/27 30/31/29
+f 29/32/30 30/31/29 32/33/31
+f 31/34/32 32/33/31 34/35/33
+f 33/36/34 34/35/33 35/37/35
+f 35/37/35 36/38/36 37/39/37
+f 37/39/37 38/40/38 39/41/39
+f 39/41/39 40/42/40 41/43/41
+f 41/44/41 42/45/42 43/46/43
+f 43/46/43 44/47/44 45/48/45
+f 45/48/45 46/49/46 47/50/47
+f 47/50/47 48/51/48 49/52/49
+f 49/52/49 50/53/50 51/54/51
+f 51/54/51 52/55/52 53/56/53
+f 53/56/53 54/57/54 55/58/55
+f 55/59/55 56/60/56 57/61/57
+f 57/61/57 58/62/58 59/63/59
+f 59/63/59 60/64/60 61/65/61
+f 4/66/3 2/67/2 6/68/5
+f 63/69/62 64/70/63 1/1/1
+f 61/65/61 62/71/64 63/69/62
+f 3/4/4 1/1/1 4/3/3
+f 5/6/6 3/4/4 6/5/5
+f 7/8/8 5/6/6 8/7/7
+f 9/72/10 7/8/8 10/9/9
+f 11/13/12 9/10/10 12/12/11
+f 13/15/14 11/13/12 14/14/13
+f 15/17/16 13/15/14 16/16/15
+f 17/19/18 15/17/16 18/18/17
+f 19/21/20 17/19/18 20/20/19
+f 21/23/22 19/21/20 22/22/21
+f 23/25/24 21/23/22 24/24/23
+f 25/27/26 23/25/24 26/26/25
+f 27/73/28 25/27/26 28/28/27
+f 29/32/30 27/29/28 30/31/29
+f 31/34/32 29/32/30 32/33/31
+f 33/36/34 31/34/32 34/35/33
+f 34/35/33 36/38/36 35/37/35
+f 36/38/36 38/40/38 37/39/37
+f 38/40/38 40/42/40 39/41/39
+f 40/42/40 42/74/42 41/43/41
+f 42/45/42 44/47/44 43/46/43
+f 44/47/44 46/49/46 45/48/45
+f 46/49/46 48/51/48 47/50/47
+f 48/51/48 50/53/50 49/52/49
+f 50/53/50 52/55/52 51/54/51
+f 52/55/52 54/57/54 53/56/53
+f 54/57/54 56/75/56 55/58/55
+f 56/60/56 58/62/58 57/61/57
+f 58/62/58 60/64/60 59/63/59
+f 60/64/60 62/71/64 61/65/61
+f 2/67/2 64/76/63 6/68/5
+f 64/76/63 62/77/64 6/68/5
+f 62/77/64 60/78/60 6/68/5
+f 60/78/60 58/79/58 6/68/5
+f 58/79/58 56/80/56 6/68/5
+f 56/80/56 54/81/54 6/68/5
+f 54/81/54 52/82/52 6/68/5
+f 52/82/52 50/83/50 6/68/5
+f 50/83/50 48/84/48 6/68/5
+f 48/84/48 46/85/46 6/68/5
+f 46/85/46 44/86/44 6/68/5
+f 44/86/44 42/87/42 6/68/5
+f 42/87/42 40/88/40 6/68/5
+f 40/88/40 38/89/38 6/68/5
+f 38/89/38 36/90/36 6/68/5
+f 36/90/36 34/91/33 6/68/5
+f 34/91/33 32/92/31 6/68/5
+f 32/92/31 30/93/29 6/68/5
+f 30/93/29 28/94/27 6/68/5
+f 28/94/27 26/95/25 6/68/5
+f 26/95/25 24/96/23 6/68/5
+f 24/96/23 22/97/21 6/68/5
+f 22/97/21 20/98/19 6/68/5
+f 20/98/19 18/99/17 6/68/5
+f 18/99/17 16/100/15 6/68/5
+f 16/100/15 14/101/13 6/68/5
+f 14/101/13 12/102/11 6/68/5
+f 12/102/11 10/103/9 8/104/7
+f 6/68/5 12/102/11 8/104/7
+f 64/70/63 2/2/2 1/1/1
+f 62/71/64 64/70/63 63/69/62
diff --git a/examples/datavisualization/graphgallery/data/raindata.txt b/examples/datavisualization/graphgallery/data/raindata.txt
new file mode 100644
index 000000000..d95589219
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/raindata.txt
@@ -0,0 +1,158 @@
+# Rainfall per month from 2010 to 2022 in Northern Finland (Oulu)
+# Format: year, month, rainfall
+2010,1, 0,
+2010,2, 3.4,
+2010,3, 52,
+2010,4, 33.8,
+2010,5, 45.6,
+2010,6, 43.8,
+2010,7, 104.6,
+2010,8, 105.4,
+2010,9, 107.2,
+2010,10,38.6,
+2010,11,17.8,
+2010,12,0,
+2011,1, 8.2,
+2011,2, 1.6,
+2011,3, 27.4,
+2011,4, 15.8,
+2011,5, 57.6,
+2011,6, 85.2,
+2011,7, 127,
+2011,8, 72.2,
+2011,9, 82.2,
+2011,10,62.4,
+2011,11,31.6,
+2011,12,53.8,
+2012,1, 0,
+2012,2, 5,
+2012,3, 32.4,
+2012,4, 57.6,
+2012,5, 71.4,
+2012,6, 60.8,
+2012,7, 109,
+2012,8, 43.6,
+2012,9, 79.4,
+2012,10,117.2,
+2012,11,59,
+2012,12,0.2,
+2013,1, 28,
+2013,2, 19,
+2013,3, 0,
+2013,4, 37.6,
+2013,5, 44.2,
+2013,6, 104.8,
+2013,7, 84.2,
+2013,8, 57.2,
+2013,9, 37.2,
+2013,10,64.6,
+2013,11,77.8,
+2013,12,92.8,
+2014,1, 23.8,
+2014,2, 23.6,
+2014,3, 15.4,
+2014,4, 13.2,
+2014,5, 36.4,
+2014,6, 26.4,
+2014,7, 95.8,
+2014,8, 81.8,
+2014,9, 13.8,
+2014,10,94.6,
+2014,11,44.6,
+2014,12,31,
+2015,1, 37.4,
+2015,2, 21,
+2015,3, 42,
+2015,4, 8.8,
+2015,5, 82.4,
+2015,6, 150,
+2015,7, 56.8,
+2015,8, 67.2,
+2015,9, 131.2,
+2015,10,38.4,
+2015,11,83.4,
+2015,12,47.8,
+2016,1, 12.4,
+2016,2, 34.8,
+2016,3, 29,
+2016,4, 40.4,
+2016,5, 32.4,
+2016,6, 80.2,
+2016,7, 102.6,
+2016,8, 95.6,
+2016,9, 40.2,
+2016,10,7.8,
+2016,11,39.6,
+2016,12,8.8,
+2017,1, 9.4,
+2017,2, 6.6,
+2017,3, 29,
+2017,4, 46.2,
+2017,5, 43.2,
+2017,6, 25.2,
+2017,7, 72.4,
+2017,8, 58.8,
+2017,9, 68.8,
+2017,10,45.8,
+2017,11,36.8,
+2017,12,29.6,
+2018,1, 19.8,
+2018,2, 0.8,
+2018,3, 4,
+2018,4, 23.2,
+2018,5, 13.2,
+2018,6, 62.8,
+2018,7, 33,
+2018,8, 96.6,
+2018,9, 72.6,
+2018,10,48.8,
+2018,11,31.8,
+2018,12,12.8,
+2019,1, 0.2,
+2019,2, 24.8,
+2019,3, 32,
+2019,4, 8.8,
+2019,5, 71.4,
+2019,6, 65.8,
+2019,7, 17.6,
+2019,8, 90,
+2019,9, 50,
+2019,10,77,
+2019,11,27,
+2019,12,43.2,
+2020,1, 28.8,
+2020,2, 45,
+2020,3, 18.6,
+2020,4, 13,
+2020,5, 30.8,
+2020,6, 21.4,
+2020,7, 163.6,
+2020,8, 12,
+2020,9, 102.4,
+2020,10,133.2,
+2020,11,69.8,
+2020,12,40.6,
+2021,1, 0.4,
+2021,2, 21.6,
+2021,3, 24,
+2021,4, 51.4,
+2021,5, 76.4,
+2021,6, 29.2,
+2021,7, 36.4,
+2021,8, 116,
+2021,9, 72.4,
+2021,10,93.4,
+2021,11,21,
+2021,12,10.2,
+2022,1, 8.6,
+2022,2, 6.6,
+2022,3, 5.2,
+2022,4, 15.2,
+2022,5, 37.6,
+2022,6, 45,
+2022,7, 67.4,
+2022,8, 161.6,
+2022,9, 22.8,
+2022,10,75.2,
+2022,11,21.8,
+2022,12,0.2
diff --git a/examples/datavisualization/graphgallery/data/refinery.obj b/examples/datavisualization/graphgallery/data/refinery.obj
new file mode 100644
index 000000000..ed90c3619
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/refinery.obj
@@ -0,0 +1,2330 @@
+# Blender v2.66 (sub 0) OBJ File: 'oilrefinery.blend'
+# www.blender.org
+v -2.719012 -0.196783 4.805554
+v -2.719012 -0.196783 -4.824533
+v 2.730989 -0.196783 -4.824533
+v 2.730989 -0.196783 4.805554
+v -2.719012 0.012961 4.805554
+v -2.719012 0.012961 -4.824533
+v 2.730989 0.012961 -4.824533
+v 2.730989 0.012961 4.805554
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+vn -0.577349 0.577349 0.577349
+vn -0.577349 0.577349 -0.577349
+vn -0.577349 -0.577349 0.577349
+vn 0.577349 0.577349 -0.577349
+vn 0.577349 -0.577349 -0.577349
+vn 0.577349 0.577349 0.577349
+vn 0.577349 -0.577349 0.577349
+vn -0.577349 -0.577349 -0.577349
+s 1
+f 5/1/1 6/2/2 1/3/3
+f 6/1/2 7/2/4 3/4/5
+f 7/1/4 8/2/6 4/4/7
+f 8/1/6 5/2/1 1/4/3
+f 1/1/3 2/2/8 3/4/5
+f 8/1/6 7/2/4 6/4/2
+f 6/2/2 2/4/8 1/3/3
+f 2/3/8 6/1/2 3/4/5
+f 3/3/5 7/1/4 4/4/7
+f 4/3/7 8/1/6 1/4/3
+f 4/3/7 1/1/3 3/4/5
+f 5/3/1 8/1/6 6/4/2
+v -1.384247 1.252743 0.422195
+v -1.384247 2.069450 0.422195
+v -1.303725 1.252743 0.430041
+v -1.303725 2.069450 0.430041
+v -1.226298 1.252743 0.453279
+v -1.226298 2.069450 0.453279
+v -1.154941 1.252743 0.491015
+v -1.154941 2.069450 0.491015
+v -1.092396 1.252743 0.541799
+v -1.092396 2.069450 0.541799
+v -1.041066 1.252743 0.603679
+v -1.041066 2.069450 0.603679
+v -1.002925 1.252743 0.674278
+v -1.002925 2.069450 0.674278
+v -0.979437 1.252743 0.750883
+v -0.979437 2.069450 0.750883
+v -0.971507 1.252743 0.830548
+v -0.971507 2.069450 0.830548
+v -0.979437 1.252743 0.910214
+v -0.979437 2.069450 0.910214
+v -1.002925 1.252743 0.986818
+v -1.002925 2.069450 0.986818
+v -1.041066 1.252743 1.057417
+v -1.041066 2.069450 1.057417
+v -1.092396 1.252743 1.119298
+v -1.092396 2.069450 1.119298
+v -1.154941 1.252743 1.170082
+v -1.154941 2.069450 1.170082
+v -1.226298 1.252743 1.207818
+v -1.226298 2.069450 1.207818
+v -1.303726 1.252743 1.231055
+v -1.303726 2.069450 1.231055
+v -1.384247 1.252743 1.238902
+v -1.384247 2.069450 1.238902
+v -1.464769 1.252743 1.231055
+v -1.464769 2.069450 1.231055
+v -1.542196 1.252743 1.207818
+v -1.542196 2.069450 1.207818
+v -1.613554 1.252743 1.170082
+v -1.613554 2.069450 1.170082
+v -1.676099 1.252743 1.119298
+v -1.676099 2.069450 1.119298
+v -1.727429 1.252743 1.057417
+v -1.727429 2.069450 1.057417
+v -1.765570 1.252743 0.986818
+v -1.765570 2.069450 0.986818
+v -1.789057 1.252743 0.910214
+v -1.789057 2.069450 0.910214
+v -1.796988 1.252743 0.830548
+v -1.796988 2.069450 0.830548
+v -1.789057 1.252743 0.750882
+v -1.789057 2.069450 0.750882
+v -1.765570 1.252743 0.674278
+v -1.765570 2.069450 0.674278
+v -1.727428 1.252743 0.603679
+v -1.727428 2.069450 0.603679
+v -1.676098 1.252743 0.541798
+v -1.676098 2.069450 0.541798
+v -1.613553 1.252743 0.491015
+v -1.613553 2.069450 0.491015
+v -1.542196 1.252743 0.453279
+v -1.542196 2.069450 0.453279
+v -1.464768 1.252743 0.430041
+v -1.464768 2.069450 0.430041
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.096985 0.000000 -0.995286
+vn 0.287455 0.000000 -0.957794
+vn 0.467486 0.000000 -0.884001
+vn 0.630338 0.000000 -0.776321
+vn 0.769672 0.000000 -0.638440
+vn 0.879812 0.000000 -0.475321
+vn 0.956070 0.000000 -0.293137
+vn 0.995081 0.000000 -0.099061
+vn 0.995081 0.000000 0.099061
+vn 0.956070 0.000000 0.293137
+vn 0.879813 0.000000 0.475321
+vn 0.769672 0.000000 0.638440
+vn 0.630338 0.000000 0.776321
+vn 0.467486 0.000000 0.884001
+vn 0.287455 0.000000 0.957794
+vn 0.096986 0.000000 0.995286
+vn -0.096986 0.000000 0.995286
+vn -0.287456 0.000000 0.957794
+vn -0.467486 0.000000 0.884001
+vn -0.630338 0.000000 0.776321
+vn -0.769673 0.000000 0.638438
+vn -0.879812 0.000000 0.475322
+vn -0.956071 0.000000 0.293135
+vn -0.995081 0.000000 0.099059
+vn -0.995081 -0.000000 -0.099061
+vn -0.956070 -0.000000 -0.293138
+vn -0.879812 -0.000000 -0.475322
+vn -0.769671 -0.000000 -0.638441
+vn -0.630337 -0.000000 -0.776322
+vn -0.467484 -0.000000 -0.884001
+vn -0.000000 1.000000 0.000000
+vn -0.096985 -0.000000 -0.995286
+vn -0.287454 -0.000000 -0.957794
+vn 0.000000 -1.000000 -0.000000
+s off
+f 9/5/9 10/6/9 12/7/9
+f 11/5/10 12/6/10 14/7/10
+f 13/5/11 14/6/11 16/7/11
+f 15/5/12 16/6/12 18/7/12
+f 17/5/13 18/6/13 20/7/13
+f 19/5/14 20/6/14 22/7/14
+f 21/5/15 22/6/15 24/7/15
+f 23/5/16 24/6/16 26/7/16
+f 25/5/17 26/6/17 28/7/17
+f 27/5/18 28/6/18 30/7/18
+f 29/5/19 30/6/19 32/7/19
+f 31/5/20 32/6/20 34/7/20
+f 33/5/21 34/6/21 36/7/21
+f 35/5/22 36/6/22 38/7/22
+f 37/5/23 38/6/23 40/7/23
+f 39/5/24 40/6/24 42/7/24
+f 41/5/25 42/6/25 43/8/25
+f 43/5/26 44/6/26 45/8/26
+f 45/5/27 46/6/27 47/8/27
+f 47/5/28 48/6/28 49/8/28
+f 49/5/29 50/6/29 51/8/29
+f 51/5/30 52/6/30 53/8/30
+f 53/5/31 54/6/31 55/8/31
+f 55/5/32 56/6/32 57/8/32
+f 57/5/33 58/6/33 59/8/33
+f 59/5/34 60/6/34 61/8/34
+f 61/5/35 62/6/35 63/8/35
+f 63/5/36 64/6/36 65/8/36
+f 65/5/37 66/6/37 67/8/37
+f 67/5/38 68/6/38 69/8/38
+f 12/9/39 10/10/39 14/11/39
+f 71/5/40 72/6/40 9/8/40
+f 69/5/41 70/6/41 71/8/41
+f 9/9/42 11/10/42 71/11/42
+f 11/8/9 9/5/9 12/7/9
+f 13/8/10 11/5/10 14/7/10
+f 15/8/11 13/5/11 16/7/11
+f 17/8/12 15/5/12 18/7/12
+f 19/8/13 17/5/13 20/7/13
+f 21/8/14 19/5/14 22/7/14
+f 23/8/15 21/5/15 24/7/15
+f 25/8/16 23/5/16 26/7/16
+f 27/8/17 25/5/17 28/7/17
+f 29/8/18 27/5/18 30/7/18
+f 31/8/19 29/5/19 32/7/19
+f 33/8/20 31/5/20 34/7/20
+f 35/8/21 33/5/21 36/7/21
+f 37/8/22 35/5/22 38/7/22
+f 39/8/23 37/5/23 40/7/23
+f 41/8/24 39/5/24 42/7/24
+f 42/6/25 44/7/25 43/8/25
+f 44/6/26 46/7/26 45/8/26
+f 46/6/27 48/7/27 47/8/27
+f 48/6/28 50/7/28 49/8/28
+f 50/6/29 52/7/29 51/8/29
+f 52/6/30 54/7/30 53/8/30
+f 54/6/31 56/7/31 55/8/31
+f 56/6/32 58/7/32 57/8/32
+f 58/6/33 60/7/33 59/8/33
+f 60/6/34 62/7/34 61/8/34
+f 62/6/35 64/7/35 63/8/35
+f 64/6/36 66/7/36 65/8/36
+f 66/6/37 68/7/37 67/8/37
+f 68/6/38 70/7/38 69/8/38
+f 10/10/39 72/12/39 14/11/39
+f 72/12/39 70/13/39 14/11/39
+f 70/13/39 68/14/39 14/11/39
+f 68/14/39 66/15/39 14/11/39
+f 66/15/39 64/16/39 14/11/39
+f 64/16/39 62/17/39 14/11/39
+f 62/17/39 60/18/39 14/11/39
+f 60/18/39 58/19/39 14/11/39
+f 58/19/39 56/20/39 14/11/39
+f 56/20/39 54/21/39 14/11/39
+f 54/21/39 52/22/39 14/11/39
+f 52/22/39 50/23/39 14/11/39
+f 50/23/39 48/24/39 14/11/39
+f 48/24/39 46/25/39 14/11/39
+f 46/25/39 44/26/39 14/11/39
+f 44/26/39 42/27/39 14/11/39
+f 42/27/39 40/28/39 14/11/39
+f 40/28/39 38/29/39 14/11/39
+f 38/29/39 36/30/39 14/11/39
+f 36/30/39 34/31/39 14/11/39
+f 34/31/39 32/32/39 14/11/39
+f 32/32/39 30/33/39 14/11/39
+f 30/33/39 28/34/39 14/11/39
+f 28/34/39 26/35/39 14/11/39
+f 26/35/39 24/36/39 14/11/39
+f 24/36/39 22/37/39 14/11/39
+f 22/37/39 20/38/39 14/11/39
+f 20/38/39 18/39/39 16/40/39
+f 14/11/39 20/38/39 16/40/39
+f 72/6/40 10/7/40 9/8/40
+f 70/6/41 72/7/41 71/8/41
+f 11/10/42 13/12/42 71/11/42
+f 13/12/42 15/13/42 71/11/42
+f 15/13/42 17/14/42 71/11/42
+f 17/14/42 19/15/42 71/11/42
+f 19/15/42 21/16/42 71/11/42
+f 21/16/42 23/17/42 71/11/42
+f 23/17/42 25/18/42 71/11/42
+f 25/18/42 27/19/42 71/11/42
+f 27/19/42 29/20/42 71/11/42
+f 29/20/42 31/21/42 71/11/42
+f 31/21/42 33/22/42 71/11/42
+f 33/22/42 35/23/42 71/11/42
+f 35/23/42 37/24/42 71/11/42
+f 37/24/42 39/25/42 71/11/42
+f 39/25/42 41/26/42 71/11/42
+f 41/26/42 43/27/42 71/11/42
+f 43/27/42 45/28/42 71/11/42
+f 45/28/42 47/29/42 71/11/42
+f 47/29/42 49/30/42 71/11/42
+f 49/30/42 51/31/42 71/11/42
+f 51/31/42 53/32/42 71/11/42
+f 53/32/42 55/33/42 71/11/42
+f 55/33/42 57/34/42 71/11/42
+f 57/34/42 59/35/42 71/11/42
+f 59/35/42 61/36/42 71/11/42
+f 61/36/42 63/37/42 71/11/42
+f 63/37/42 65/38/42 71/11/42
+f 65/38/42 67/39/42 71/11/42
+f 67/39/42 69/40/42 71/11/42
+v 1.365790 1.252743 0.402799
+v 1.365790 2.069450 0.402799
+v 1.446312 1.252743 0.410646
+v 1.446312 2.069450 0.410646
+v 1.523739 1.252743 0.433883
+v 1.523739 2.069450 0.433883
+v 1.595097 1.252743 0.471619
+v 1.595097 2.069450 0.471619
+v 1.657642 1.252743 0.522403
+v 1.657642 2.069450 0.522403
+v 1.708972 1.252743 0.584284
+v 1.708972 2.069450 0.584284
+v 1.747113 1.252743 0.654883
+v 1.747113 2.069450 0.654883
+v 1.770600 1.252743 0.731487
+v 1.770600 2.069450 0.731487
+v 1.778531 1.252743 0.811153
+v 1.778531 2.069450 0.811153
+v 1.770600 1.252743 0.890818
+v 1.770600 2.069450 0.890818
+v 1.747113 1.252743 0.967423
+v 1.747113 2.069450 0.967423
+v 1.708972 1.252743 1.038022
+v 1.708972 2.069450 1.038022
+v 1.657642 1.252743 1.099902
+v 1.657642 2.069450 1.099902
+v 1.595097 1.252743 1.150686
+v 1.595097 2.069450 1.150686
+v 1.523739 1.252743 1.188422
+v 1.523739 2.069450 1.188422
+v 1.446312 1.252743 1.211660
+v 1.446312 2.069450 1.211660
+v 1.365790 1.252743 1.219506
+v 1.365790 2.069450 1.219506
+v 1.285269 1.252743 1.211660
+v 1.285269 2.069450 1.211660
+v 1.207841 1.252743 1.188422
+v 1.207841 2.069450 1.188422
+v 1.136484 1.252743 1.150686
+v 1.136484 2.069450 1.150686
+v 1.073939 1.252743 1.099902
+v 1.073939 2.069450 1.099902
+v 1.022609 1.252743 1.038021
+v 1.022609 2.069450 1.038021
+v 0.984468 1.252743 0.967422
+v 0.984468 2.069450 0.967422
+v 0.960981 1.252743 0.890818
+v 0.960981 2.069450 0.890818
+v 0.953050 1.252743 0.811152
+v 0.953050 2.069450 0.811152
+v 0.960981 1.252743 0.731486
+v 0.960981 2.069450 0.731486
+v 0.984468 1.252743 0.654882
+v 0.984468 2.069450 0.654882
+v 1.022609 1.252743 0.584283
+v 1.022609 2.069450 0.584283
+v 1.073939 1.252743 0.522403
+v 1.073939 2.069450 0.522403
+v 1.136485 1.252743 0.471619
+v 1.136485 2.069450 0.471619
+v 1.207842 1.252743 0.433883
+v 1.207842 2.069450 0.433883
+v 1.285269 1.252743 0.410646
+v 1.285269 2.069450 0.410646
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn -0.879812 0.000000 0.475321
+vn -0.956071 0.000000 0.293136
+vn -0.956070 -0.000000 -0.293137
+s off
+f 73/41/9 74/42/9 76/43/9
+f 75/41/10 76/42/10 78/43/10
+f 77/41/11 78/42/11 80/43/11
+f 79/41/12 80/42/12 82/43/12
+f 81/41/13 82/42/13 84/43/13
+f 83/41/14 84/42/14 86/43/14
+f 85/41/15 86/42/15 88/43/15
+f 87/41/16 88/42/16 90/43/16
+f 89/41/17 90/42/17 92/43/17
+f 91/41/18 92/42/18 94/43/18
+f 93/41/19 94/42/19 96/43/19
+f 95/41/20 96/42/20 98/43/20
+f 97/41/21 98/42/21 100/43/21
+f 99/41/22 100/42/22 102/43/22
+f 101/41/23 102/42/23 104/43/23
+f 103/41/24 104/42/24 106/43/24
+f 105/41/25 106/42/25 107/44/25
+f 107/41/26 108/42/26 109/44/26
+f 109/41/27 110/42/27 111/44/27
+f 111/41/28 112/42/28 113/44/28
+f 113/41/29 114/42/29 115/44/29
+f 115/41/43 116/42/43 117/44/43
+f 117/41/44 118/42/44 119/44/44
+f 119/41/32 120/42/32 121/44/32
+f 121/41/33 122/42/33 123/44/33
+f 123/41/45 124/42/45 125/44/45
+f 125/41/35 126/42/35 127/44/35
+f 127/41/36 128/42/36 129/44/36
+f 129/41/37 130/42/37 131/44/37
+f 131/41/38 132/42/38 133/44/38
+f 76/45/39 74/46/39 78/47/39
+f 135/41/40 136/42/40 73/44/40
+f 133/41/41 134/42/41 135/44/41
+f 73/45/42 75/46/42 135/47/42
+f 75/44/9 73/41/9 76/43/9
+f 77/44/10 75/41/10 78/43/10
+f 79/44/11 77/41/11 80/43/11
+f 81/44/12 79/41/12 82/43/12
+f 83/44/13 81/41/13 84/43/13
+f 85/44/14 83/41/14 86/43/14
+f 87/44/15 85/41/15 88/43/15
+f 89/44/16 87/41/16 90/43/16
+f 91/44/17 89/41/17 92/43/17
+f 93/44/18 91/41/18 94/43/18
+f 95/44/19 93/41/19 96/43/19
+f 97/44/20 95/41/20 98/43/20
+f 99/44/21 97/41/21 100/43/21
+f 101/44/22 99/41/22 102/43/22
+f 103/44/23 101/41/23 104/43/23
+f 105/44/24 103/41/24 106/43/24
+f 106/42/25 108/43/25 107/44/25
+f 108/42/26 110/43/26 109/44/26
+f 110/42/27 112/43/27 111/44/27
+f 112/42/28 114/43/28 113/44/28
+f 114/42/29 116/43/29 115/44/29
+f 116/42/43 118/43/43 117/44/43
+f 118/42/44 120/43/44 119/44/44
+f 120/42/32 122/43/32 121/44/32
+f 122/42/33 124/43/33 123/44/33
+f 124/42/45 126/43/45 125/44/45
+f 126/42/35 128/43/35 127/44/35
+f 128/42/36 130/43/36 129/44/36
+f 130/42/37 132/43/37 131/44/37
+f 132/42/38 134/43/38 133/44/38
+f 74/46/39 136/48/39 78/47/39
+f 136/48/39 134/49/39 78/47/39
+f 134/49/39 132/50/39 78/47/39
+f 132/50/39 130/51/39 78/47/39
+f 130/51/39 128/52/39 78/47/39
+f 128/52/39 126/53/39 78/47/39
+f 126/53/39 124/54/39 78/47/39
+f 124/54/39 122/55/39 78/47/39
+f 122/55/39 120/56/39 78/47/39
+f 120/56/39 118/57/39 78/47/39
+f 118/57/39 116/58/39 78/47/39
+f 116/58/39 114/59/39 78/47/39
+f 114/59/39 112/60/39 78/47/39
+f 112/60/39 110/61/39 78/47/39
+f 110/61/39 108/62/39 78/47/39
+f 108/62/39 106/63/39 78/47/39
+f 106/63/39 104/64/39 78/47/39
+f 104/64/39 102/65/39 78/47/39
+f 102/65/39 100/66/39 78/47/39
+f 100/66/39 98/67/39 78/47/39
+f 98/67/39 96/68/39 78/47/39
+f 96/68/39 94/69/39 78/47/39
+f 94/69/39 92/70/39 78/47/39
+f 92/70/39 90/71/39 78/47/39
+f 90/71/39 88/72/39 78/47/39
+f 88/72/39 86/73/39 78/47/39
+f 86/73/39 84/74/39 78/47/39
+f 84/74/39 82/75/39 80/76/39
+f 78/47/39 84/74/39 80/76/39
+f 136/42/40 74/43/40 73/44/40
+f 134/42/41 136/43/41 135/44/41
+f 75/46/42 77/48/42 135/47/42
+f 77/48/42 79/49/42 135/47/42
+f 79/49/42 81/50/42 135/47/42
+f 81/50/42 83/51/42 135/47/42
+f 83/51/42 85/52/42 135/47/42
+f 85/52/42 87/53/42 135/47/42
+f 87/53/42 89/54/42 135/47/42
+f 89/54/42 91/55/42 135/47/42
+f 91/55/42 93/56/42 135/47/42
+f 93/56/42 95/57/42 135/47/42
+f 95/57/42 97/58/42 135/47/42
+f 97/58/42 99/59/42 135/47/42
+f 99/59/42 101/60/42 135/47/42
+f 101/60/42 103/61/42 135/47/42
+f 103/61/42 105/62/42 135/47/42
+f 105/62/42 107/63/42 135/47/42
+f 107/63/42 109/64/42 135/47/42
+f 109/64/42 111/65/42 135/47/42
+f 111/65/42 113/66/42 135/47/42
+f 113/66/42 115/67/42 135/47/42
+f 115/67/42 117/68/42 135/47/42
+f 117/68/42 119/69/42 135/47/42
+f 119/69/42 121/70/42 135/47/42
+f 121/70/42 123/71/42 135/47/42
+f 123/71/42 125/72/42 135/47/42
+f 125/72/42 127/73/42 135/47/42
+f 127/73/42 129/74/42 135/47/42
+f 129/74/42 131/75/42 135/47/42
+f 131/75/42 133/76/42 135/47/42
+v -2.345663 0.025178 -0.194338
+v -2.345663 0.025178 -0.594338
+v -1.345663 0.025178 -0.594338
+v -1.345663 0.025178 -0.194338
+v -2.345663 1.525178 -0.194338
+v -2.345663 1.525178 -0.594338
+v -1.345663 1.525178 -0.594338
+v -1.345663 1.525178 -0.194338
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+vn -1.000000 0.000000 0.000000
+vn 0.000000 0.000000 -1.000000
+vn 1.000000 -0.000000 0.000000
+vn 0.000000 0.000000 1.000000
+s off
+f 141/77/46 142/78/46 137/79/46
+f 142/77/47 143/78/47 138/79/47
+f 143/77/48 144/78/48 140/80/48
+f 144/77/49 141/78/49 137/80/49
+f 137/77/42 138/78/42 139/80/42
+f 144/77/39 143/78/39 142/80/39
+f 142/78/46 138/80/46 137/79/46
+f 143/78/47 139/80/47 138/79/47
+f 139/79/48 143/77/48 140/80/48
+f 140/79/49 144/77/49 137/80/49
+f 140/79/42 137/77/42 139/80/42
+f 141/79/39 144/77/39 142/80/39
+v 1.364119 0.019809 -0.205019
+v 1.364119 0.019809 -0.605019
+v 2.364120 0.019809 -0.605019
+v 2.364120 0.019809 -0.205019
+v 1.364119 1.419809 -0.205019
+v 1.364119 1.419809 -0.605019
+v 2.364120 1.419809 -0.605019
+v 2.364120 1.419809 -0.205019
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+s off
+f 149/81/46 150/82/46 145/83/46
+f 150/81/47 151/82/47 146/83/47
+f 151/81/48 152/82/48 148/84/48
+f 152/81/49 149/82/49 145/84/49
+f 145/81/42 146/82/42 147/84/42
+f 152/81/39 151/82/39 150/84/39
+f 150/82/46 146/84/46 145/83/46
+f 151/82/47 147/84/47 146/83/47
+f 147/83/48 151/81/48 148/84/48
+f 148/83/49 152/81/49 145/84/49
+f 148/83/42 145/81/42 147/84/42
+f 149/83/39 152/81/39 150/84/39
+v -1.384247 0.015116 3.993316
+v -1.384247 0.015113 -0.006684
+v -1.189157 0.034331 3.993316
+v -1.189157 0.034328 -0.006684
+v -1.001564 0.091236 3.993316
+v -1.001564 0.091234 -0.006684
+v -0.828677 0.183646 3.993316
+v -0.828677 0.183644 -0.006684
+v -0.677140 0.308009 3.993316
+v -0.677140 0.308007 -0.006684
+v -0.552777 0.459546 3.993316
+v -0.552777 0.459543 -0.006684
+v -0.460368 0.632432 3.993316
+v -0.460368 0.632430 -0.006684
+v -0.403462 0.820025 3.993316
+v -0.403462 0.820023 -0.006684
+v -0.384247 1.015116 3.993316
+v -0.384247 1.015113 -0.006684
+v -0.403462 1.210206 3.993316
+v -0.403462 1.210203 -0.006685
+v -0.460368 1.397799 3.993315
+v -0.460368 1.397797 -0.006685
+v -0.552777 1.570686 3.993315
+v -0.552777 1.570683 -0.006685
+v -0.677140 1.722223 3.993315
+v -0.677140 1.722220 -0.006685
+v -0.828677 1.846586 3.993315
+v -0.828677 1.846583 -0.006685
+v -1.001564 1.938995 3.993315
+v -1.001564 1.938993 -0.006685
+v -1.189157 1.995901 3.993315
+v -1.189157 1.995899 -0.006685
+v -1.384247 2.015116 3.993315
+v -1.384247 2.015113 -0.006685
+v -1.579338 1.995901 3.993315
+v -1.579338 1.995898 -0.006685
+v -1.766931 1.938995 3.993315
+v -1.766931 1.938993 -0.006685
+v -1.939818 1.846585 3.993315
+v -1.939818 1.846583 -0.006685
+v -2.091354 1.722222 3.993315
+v -2.091354 1.722220 -0.006685
+v -2.215717 1.570685 3.993315
+v -2.215717 1.570683 -0.006685
+v -2.308127 1.397799 3.993315
+v -2.308127 1.397796 -0.006685
+v -2.365032 1.210205 3.993316
+v -2.365032 1.210203 -0.006685
+v -2.384247 1.015115 3.993316
+v -2.384247 1.015112 -0.006684
+v -2.365032 0.820024 3.993316
+v -2.365032 0.820022 -0.006684
+v -2.308126 0.632431 3.993316
+v -2.308126 0.632429 -0.006684
+v -2.215716 0.459545 3.993316
+v -2.215716 0.459542 -0.006684
+v -2.091353 0.308008 3.993316
+v -2.091353 0.308006 -0.006684
+v -1.939816 0.183645 3.993316
+v -1.939816 0.183643 -0.006684
+v -1.766929 0.091236 3.993316
+v -1.766929 0.091233 -0.006684
+v -1.579336 0.034330 3.993316
+v -1.579336 0.034328 -0.006684
+v -1.384247 0.619839 -0.156215
+v -1.307133 0.627434 -0.156215
+v -1.232982 0.649928 -0.156215
+v -1.164645 0.686455 -0.156215
+v -1.104746 0.735612 -0.156215
+v -1.055589 0.795511 -0.156215
+v -1.019062 0.863848 -0.156216
+v -0.996568 0.937999 -0.156216
+v -0.988973 1.015113 -0.156216
+v -0.996568 1.092227 -0.156216
+v -1.019062 1.166378 -0.156216
+v -1.055589 1.234715 -0.156216
+v -1.104746 1.294614 -0.156216
+v -1.164645 1.343771 -0.156216
+v -1.232982 1.380298 -0.156216
+v -1.307133 1.402792 -0.156216
+v -1.384247 1.410387 -0.156216
+v -1.461361 1.402792 -0.156216
+v -1.535512 1.380298 -0.156216
+v -1.603849 1.343771 -0.156216
+v -1.663748 1.294613 -0.156216
+v -1.712905 1.234715 -0.156216
+v -1.749432 1.166377 -0.156216
+v -1.771926 1.092227 -0.156216
+v -1.779521 1.015113 -0.156216
+v -1.771925 0.937999 -0.156216
+v -1.749432 0.863848 -0.156216
+v -1.712905 0.795510 -0.156215
+v -1.663747 0.735612 -0.156215
+v -1.603849 0.686455 -0.156215
+v -1.535511 0.649928 -0.156215
+v -1.461360 0.627434 -0.156215
+v -1.384247 0.605419 4.159918
+v -1.304319 0.613291 4.159918
+v -1.227463 0.636605 4.159918
+v -1.156632 0.674465 4.159918
+v -1.094548 0.725416 4.159918
+v -1.043596 0.787500 4.159918
+v -1.005736 0.858332 4.159918
+v -0.982422 0.935188 4.159918
+v -0.974550 1.015116 4.159918
+v -0.982422 1.095044 4.159918
+v -1.005736 1.171900 4.159918
+v -1.043596 1.242731 4.159918
+v -1.094548 1.304815 4.159918
+v -1.156632 1.355766 4.159918
+v -1.227463 1.393626 4.159918
+v -1.304319 1.416940 4.159918
+v -1.384247 1.424813 4.159918
+v -1.464175 1.416940 4.159918
+v -1.541031 1.393626 4.159918
+v -1.611863 1.355766 4.159918
+v -1.673947 1.304815 4.159918
+v -1.724898 1.242731 4.159918
+v -1.762758 1.171900 4.159918
+v -1.786072 1.095043 4.159918
+v -1.793944 1.015115 4.159918
+v -1.786072 0.935187 4.159918
+v -1.762757 0.858331 4.159918
+v -1.724897 0.787500 4.159918
+v -1.673946 0.725416 4.159918
+v -1.611862 0.674465 4.159918
+v -1.541031 0.636605 4.159918
+v -1.464174 0.613291 4.159918
+v 0.006492 3.927105 -3.525056
+v 0.006492 4.374522 -3.525055
+v 0.050135 3.927105 -3.520757
+v 0.050135 4.374522 -3.520757
+v 0.092102 3.927104 -3.508027
+v 0.092102 4.374522 -3.508027
+v 0.130778 3.927104 -3.487354
+v 0.130778 4.374522 -3.487354
+v 0.164678 3.927104 -3.459533
+v 0.164678 4.374522 -3.459533
+v 0.192499 3.927104 -3.425632
+v 0.192499 4.374522 -3.425633
+v 0.213172 3.927105 -3.386956
+v 0.213172 4.374522 -3.386957
+v 0.225902 3.927105 -3.344990
+v 0.225902 4.374522 -3.344990
+v 0.230201 3.927105 -3.301347
+v 0.230201 4.374522 -3.301347
+v 0.225902 3.927105 -3.257704
+v 0.225902 4.374522 -3.257703
+v 0.213172 3.927105 -3.215737
+v 0.213172 4.374522 -3.215738
+v 0.192499 3.927105 -3.177061
+v 0.192499 4.374522 -3.177062
+v 0.164678 3.927105 -3.143161
+v 0.164678 4.374522 -3.143161
+v 0.130778 3.927105 -3.115340
+v 0.130778 4.374522 -3.115340
+v 0.092102 3.927105 -3.094666
+v 0.092102 4.374522 -3.094667
+v 0.050135 3.927105 -3.081937
+v 0.050135 4.374522 -3.081936
+v 0.006492 3.927105 -3.077638
+v 0.006492 4.374522 -3.077638
+v -0.037151 3.927105 -3.081937
+v -0.037151 4.374522 -3.081936
+v -0.079118 3.927105 -3.094666
+v -0.079118 4.374522 -3.094667
+v -0.117794 3.927105 -3.115340
+v -0.117794 4.374522 -3.115340
+v -0.151694 3.927105 -3.143161
+v -0.151694 4.374522 -3.143161
+v -0.179515 3.927105 -3.177061
+v -0.179515 4.374522 -3.177062
+v -0.200188 3.927105 -3.215737
+v -0.200188 4.374522 -3.215738
+v -0.212918 3.927105 -3.257704
+v -0.212918 4.374522 -3.257704
+v -0.217217 3.927105 -3.301347
+v -0.217217 4.374522 -3.301347
+v -0.212918 3.927105 -3.344991
+v -0.212918 4.374522 -3.344990
+v -0.200188 3.927105 -3.386957
+v -0.200188 4.374522 -3.386957
+v -0.179515 3.927104 -3.425633
+v -0.179515 4.374522 -3.425633
+v -0.151694 3.927104 -3.459533
+v -0.151694 4.374522 -3.459533
+v -0.117794 3.927104 -3.487354
+v -0.117794 4.374522 -3.487354
+v -0.079117 3.927104 -3.508027
+v -0.079117 4.374522 -3.508027
+v -0.037151 3.927105 -3.520757
+v -0.037151 4.374522 -3.520757
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.853553 0.853553
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.500000 0.000000
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.777785 0.084265
+vt 0.853553 0.146447
+vt 0.084265 0.222215
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.038060 0.308659
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vt 0.146447 0.853554
+vt 0.990393 0.597545
+vt 0.084266 0.777786
+vt 0.038060 0.691342
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.009607 0.597546
+vt 0.000000 0.500000
+vt 0.915735 0.222215
+vt 0.009607 0.402455
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vn 0.098018 -0.995185 0.000001
+vn 0.290285 -0.956940 0.000001
+vn 0.471397 -0.881921 0.000001
+vn 0.634393 -0.773010 0.000000
+vn 0.773010 -0.634393 0.000000
+vn 0.881921 -0.471397 0.000000
+vn 0.956940 -0.290285 0.000000
+vn 0.995185 -0.098017 0.000000
+vn 0.995185 0.098017 -0.000000
+vn 0.956940 0.290285 -0.000000
+vn 0.881922 0.471396 -0.000000
+vn 0.773010 0.634393 -0.000000
+vn 0.634393 0.773011 -0.000000
+vn 0.471397 0.881921 -0.000001
+vn 0.290284 0.956941 -0.000001
+vn 0.098017 0.995185 -0.000001
+vn -0.098017 0.995185 -0.000001
+vn -0.290285 0.956940 -0.000001
+vn -0.471397 0.881921 -0.000001
+vn -0.634394 0.773010 -0.000000
+vn -0.773011 0.634393 -0.000000
+vn -0.881922 0.471396 -0.000000
+vn -0.956941 0.290283 -0.000000
+vn -0.995185 0.098017 -0.000000
+vn -0.995185 -0.098018 0.000000
+vn -0.956940 -0.290286 0.000000
+vn -0.881920 -0.471398 0.000000
+vn -0.773010 -0.634394 0.000000
+vn -0.634393 -0.773011 0.000000
+vn -0.471395 -0.881922 0.000001
+vn -0.239975 -0.023636 -0.970491
+vn -0.098017 -0.995185 0.000001
+vn -0.290283 -0.956941 0.000001
+vn -0.210907 0.173086 0.962060
+vn 0.152975 0.186400 -0.970492
+vn -0.023635 -0.239975 -0.970491
+vn -0.152975 0.186400 -0.970492
+vn 0.239975 -0.023636 -0.970491
+vn -0.212662 -0.113672 -0.970491
+vn 0.069999 0.230752 -0.970492
+vn 0.113670 -0.212663 -0.970491
+vn -0.212662 0.113670 -0.970492
+vn 0.230752 0.069998 -0.970492
+vn -0.152975 -0.186401 -0.970491
+vn -0.023636 0.239974 -0.970492
+vn 0.186400 -0.152976 -0.970491
+vn -0.239974 0.023634 -0.970491
+vn 0.186401 0.152974 -0.970491
+vn -0.069998 -0.230753 -0.970491
+vn -0.113670 0.212662 -0.970492
+vn 0.230753 -0.069999 -0.970491
+vn -0.230752 -0.069999 -0.970491
+vn 0.113670 0.212662 -0.970491
+vn 0.069998 -0.230753 -0.970491
+vn -0.186401 0.152974 -0.970491
+vn 0.239975 0.023634 -0.970492
+vn -0.186400 -0.152976 -0.970491
+vn 0.023635 0.239974 -0.970492
+vn 0.152975 -0.186401 -0.970491
+vn -0.230752 0.069998 -0.970492
+vn 0.023636 -0.239975 -0.970491
+vn 0.212662 0.113670 -0.970492
+vn -0.113670 -0.212664 -0.970491
+vn -0.069999 0.230751 -0.970492
+vn 0.212663 -0.113671 -0.970491
+vn 0.271524 0.026743 0.962060
+vn -0.210906 -0.173085 0.962060
+vn 0.026743 0.271524 0.962060
+vn 0.173086 -0.210906 0.962060
+vn -0.261089 0.079201 0.962060
+vn 0.026743 -0.271523 0.962060
+vn 0.240621 0.128616 0.962060
+vn -0.128614 -0.240621 0.962060
+vn -0.079201 0.261090 0.962060
+vn 0.240621 -0.128614 0.962060
+vn -0.271524 -0.026742 0.962060
+vn 0.173087 0.210907 0.962060
+vn -0.026742 -0.271523 0.962060
+vn -0.173087 0.210907 0.962060
+vn 0.271524 -0.026742 0.962060
+vn -0.240621 -0.128615 0.962060
+vn 0.079201 0.261090 0.962060
+vn 0.128614 -0.240621 0.962060
+vn -0.240621 0.128616 0.962060
+vn 0.261089 0.079202 0.962060
+vn -0.173086 -0.210906 0.962060
+vn -0.026743 0.271524 0.962060
+vn 0.210907 -0.173085 0.962060
+vn -0.271524 0.026743 0.962060
+vn 0.210907 0.173087 0.962060
+vn -0.079201 -0.261088 0.962060
+vn -0.128615 0.240622 0.962060
+vn 0.261089 -0.079200 0.962060
+vn -0.261089 -0.079201 0.962060
+vn 0.128615 0.240622 0.962060
+vn 0.079201 -0.261088 0.962060
+vn 0.098012 0.000001 -0.995185
+vn 0.290289 -0.000001 -0.956939
+vn 0.471395 0.000001 -0.881922
+vn 0.634385 0.000001 -0.773018
+vn 0.773012 -0.000001 -0.634391
+vn 0.881922 -0.000001 -0.471395
+vn 0.956942 -0.000000 -0.290279
+vn 0.995184 -0.000000 -0.098022
+vn 0.995184 0.000000 0.098020
+vn 0.956940 -0.000000 0.290285
+vn 0.881922 0.000001 0.471395
+vn 0.773012 0.000001 0.634391
+vn 0.634398 0.000001 0.773007
+vn 0.471395 -0.000001 0.881922
+vn 0.290289 0.000001 0.956939
+vn 0.098010 -0.000001 0.995185
+vn -0.098033 0.000001 0.995183
+vn -0.290269 -0.000001 0.956945
+vn -0.471412 0.000001 0.881913
+vn -0.634385 -0.000001 0.773018
+vn -0.773012 0.000001 0.634391
+vn -0.881922 0.000001 0.471395
+vn -0.956942 0.000000 0.290279
+vn -0.995184 0.000000 0.098022
+vn -0.995184 -0.000000 -0.098020
+vn -0.956939 0.000000 -0.290289
+vn -0.881922 0.000001 -0.471395
+vn -0.773003 0.000001 -0.634402
+vn -0.634398 -0.000001 -0.773007
+vn -0.471395 0.000001 -0.881922
+vn -0.098032 -0.000001 -0.995183
+vn -0.290292 0.000001 -0.956938
+vn 0.098017 -0.995185 0.000001
+vn 0.881921 -0.471396 0.000000
+vn 0.881921 0.471397 -0.000000
+vn 0.634394 0.773010 -0.000001
+vn 0.471396 0.881922 -0.000001
+vn 0.290285 0.956940 -0.000001
+vn -0.098018 0.995185 -0.000001
+vn -0.881920 -0.471399 0.000000
+vn -0.239974 -0.023636 -0.970491
+vn -0.210907 0.173087 0.962060
+vn 0.000000 -0.000003 -1.000000
+vn 0.152975 0.186400 -0.970491
+vn 0.239975 -0.023635 -0.970491
+vn -0.212662 -0.113674 -0.970491
+vn 0.069998 0.230752 -0.970492
+vn 0.113671 -0.212663 -0.970491
+vn -0.212664 0.113668 -0.970491
+vn 0.230752 0.069998 -0.970491
+vn -0.023635 0.239974 -0.970492
+vn 0.186401 -0.152975 -0.970491
+vn -0.239974 0.023635 -0.970492
+vn 0.186400 0.152975 -0.970491
+vn 0.230753 -0.069998 -0.970491
+vn -0.230753 -0.069998 -0.970491
+vn -0.186400 0.152974 -0.970492
+vn 0.239974 0.023635 -0.970492
+vn -0.186400 -0.152975 -0.970491
+vn 0.023635 -0.239975 -0.970491
+vn 0.212664 0.113668 -0.970491
+vn -0.113670 -0.212663 -0.970491
+vn -0.069998 0.230752 -0.970492
+vn 0.212662 -0.113674 -0.970491
+vn -0.210905 -0.173086 0.962060
+vn -0.261089 0.079200 0.962060
+vn 0.026743 -0.271523 0.962061
+vn 0.240622 0.128615 0.962060
+vn 0.240621 -0.128615 0.962060
+vn -0.271523 -0.026743 0.962060
+vn 0.271523 -0.026743 0.962060
+vn 0.079200 0.261090 0.962060
+vn 0.128615 -0.240620 0.962060
+vn -0.240622 0.128615 0.962060
+vn 0.261089 0.079200 0.962060
+vn -0.173085 -0.210906 0.962060
+vn 0.210906 -0.173086 0.962060
+vn -0.271524 0.026742 0.962060
+vn -0.079200 -0.261088 0.962061
+vn -0.261089 -0.079200 0.962060
+vn 0.079200 -0.261088 0.962060
+vn 0.098033 -0.000001 -0.995183
+vn 0.290269 0.000001 -0.956945
+vn 0.634398 -0.000001 -0.773007
+vn 0.995184 -0.000000 0.098022
+vn 0.956942 0.000000 0.290279
+vn 0.634385 -0.000001 0.773018
+vn 0.471412 0.000001 0.881913
+vn 0.290269 -0.000001 0.956945
+vn 0.098032 0.000001 0.995183
+vn -0.098012 -0.000001 0.995185
+vn -0.290289 0.000001 0.956939
+vn -0.471395 -0.000001 0.881922
+vn -0.634398 0.000001 0.773007
+vn -0.995184 0.000000 -0.098022
+vn -0.773012 -0.000001 -0.634391
+vn -0.634385 0.000001 -0.773018
+vn -0.098010 0.000001 -0.995185
+vn -0.290272 -0.000001 -0.956944
+vn 0.000000 -1.000000 -0.000019
+vn -0.000002 -1.000000 0.000007
+vn 0.000001 -1.000000 -0.000000
+vn -0.000027 -1.000000 -0.000008
+vn -0.000009 -1.000000 -0.000001
+vn -0.000005 -1.000000 0.000000
+vn -0.000003 -1.000000 0.000001
+vn -0.000002 -1.000000 0.000001
+vn -0.000001 -1.000000 0.000001
+vn 0.000000 -1.000000 0.000001
+s off
+f 153/85/50 154/86/50 156/87/50
+f 155/85/51 156/86/51 158/87/51
+f 157/85/52 158/86/52 160/87/52
+f 159/85/53 160/86/53 162/87/53
+f 161/85/54 162/86/54 164/87/54
+f 163/85/55 164/86/55 166/87/55
+f 165/85/56 166/86/56 168/87/56
+f 167/85/57 168/86/57 170/87/57
+f 169/85/58 170/86/58 172/87/58
+f 171/85/59 172/86/59 174/87/59
+f 173/85/60 174/86/60 176/87/60
+f 175/85/61 176/86/61 178/87/61
+f 177/85/62 178/86/62 180/87/62
+f 179/85/63 180/86/63 182/87/63
+f 181/85/64 182/86/64 184/87/64
+f 183/85/65 184/86/65 186/87/65
+f 185/85/66 186/86/66 187/88/66
+f 187/85/67 188/86/67 189/88/67
+f 189/85/68 190/86/68 191/88/68
+f 191/85/69 192/86/69 193/88/69
+f 193/85/70 194/86/70 195/88/70
+f 195/85/71 196/86/71 197/88/71
+f 197/85/72 198/86/72 199/88/72
+f 199/85/73 200/86/73 201/88/73
+f 201/85/74 202/86/74 203/88/74
+f 203/85/75 204/86/75 205/88/75
+f 205/85/76 206/86/76 207/88/76
+f 207/85/77 208/86/77 209/88/77
+f 209/85/78 210/86/78 211/88/78
+f 211/85/79 212/86/79 213/88/79
+f 204/85/80 202/86/80 242/88/80
+f 215/85/81 216/86/81 153/88/81
+f 213/85/82 214/86/82 215/88/82
+f 193/85/83 195/86/83 269/88/83
+f 246/89/47 248/90/47 247/91/47
+f 180/85/84 178/86/84 229/87/84
+f 154/85/85 216/86/85 217/88/85
+f 194/85/86 192/86/86 237/88/86
+f 170/85/87 168/86/87 224/87/87
+f 208/85/88 206/86/88 244/88/88
+f 184/85/89 182/86/89 231/87/89
+f 160/85/90 158/86/90 219/87/90
+f 198/85/91 196/86/91 239/88/91
+f 174/85/92 172/86/92 226/87/92
+f 212/85/93 210/86/93 246/88/93
+f 188/85/94 186/86/94 234/88/94
+f 164/85/95 162/86/95 221/87/95
+f 202/85/96 200/86/96 241/88/96
+f 178/85/97 176/86/97 228/87/97
+f 216/85/98 214/86/98 248/88/98
+f 192/85/99 190/86/99 236/88/99
+f 168/85/100 166/86/100 223/87/100
+f 206/85/101 204/86/101 243/88/101
+f 182/85/102 180/86/102 230/87/102
+f 158/85/103 156/86/103 218/87/103
+f 196/85/104 194/86/104 238/88/104
+f 172/85/105 170/86/105 225/87/105
+f 210/85/106 208/86/106 245/88/106
+f 186/85/107 184/86/107 232/87/107
+f 162/85/108 160/86/108 220/87/108
+f 200/85/109 198/86/109 240/88/109
+f 156/85/110 154/86/110 217/87/110
+f 176/85/111 174/86/111 227/87/111
+f 214/85/112 212/86/112 247/88/112
+f 190/85/113 188/86/113 235/88/113
+f 166/85/114 164/86/114 222/87/114
+f 249/92/49 250/93/49 280/94/49
+f 169/85/115 171/86/115 258/87/115
+f 207/85/116 209/86/116 276/88/116
+f 183/85/117 185/86/117 265/87/117
+f 159/85/118 161/86/118 253/87/118
+f 197/85/119 199/86/119 271/88/119
+f 153/85/120 155/86/120 250/87/120
+f 173/85/121 175/86/121 260/87/121
+f 211/85/122 213/86/122 278/88/122
+f 187/85/123 189/86/123 266/88/123
+f 163/85/124 165/86/124 255/87/124
+f 201/85/125 203/86/125 273/88/125
+f 177/85/126 179/86/126 262/87/126
+f 215/85/127 153/86/127 280/88/127
+f 191/85/128 193/86/128 268/88/128
+f 167/85/129 169/86/129 257/87/129
+f 205/85/130 207/86/130 275/88/130
+f 181/85/131 183/86/131 264/87/131
+f 157/85/132 159/86/132 252/87/132
+f 195/85/133 197/86/133 270/88/133
+f 171/85/134 173/86/134 259/87/134
+f 209/85/135 211/86/135 277/88/135
+f 185/85/136 187/86/136 265/88/136
+f 161/85/137 163/86/137 254/87/137
+f 199/85/138 201/86/138 272/88/138
+f 175/85/139 177/86/139 261/87/139
+f 213/85/140 215/86/140 279/88/140
+f 189/85/141 191/86/141 267/88/141
+f 165/85/142 167/86/142 256/87/142
+f 203/85/143 205/86/143 274/88/143
+f 179/85/144 181/86/144 263/87/144
+f 155/85/145 157/86/145 251/87/145
+f 281/85/146 282/86/146 284/87/146
+f 283/85/147 284/86/147 286/87/147
+f 285/85/148 286/86/148 288/87/148
+f 287/85/149 288/86/149 290/87/149
+f 289/85/150 290/86/150 292/87/150
+f 291/85/151 292/86/151 294/87/151
+f 293/85/152 294/86/152 296/87/152
+f 295/85/153 296/86/153 298/87/153
+f 297/85/154 298/86/154 300/87/154
+f 299/85/155 300/86/155 302/87/155
+f 301/85/156 302/86/156 304/87/156
+f 303/85/157 304/86/157 306/87/157
+f 305/85/158 306/86/158 308/87/158
+f 307/85/159 308/86/159 310/87/159
+f 309/85/160 310/86/160 312/87/160
+f 311/85/161 312/86/161 314/87/161
+f 313/85/162 314/86/162 315/88/162
+f 315/85/163 316/86/163 317/88/163
+f 317/85/164 318/86/164 319/88/164
+f 319/85/165 320/86/165 321/88/165
+f 321/85/166 322/86/166 323/88/166
+f 323/85/167 324/86/167 325/88/167
+f 325/85/168 326/86/168 327/88/168
+f 327/85/169 328/86/169 329/88/169
+f 329/85/170 330/86/170 331/88/170
+f 331/85/171 332/86/171 333/88/171
+f 333/85/172 334/86/172 335/88/172
+f 335/85/173 336/86/173 337/88/173
+f 337/85/174 338/86/174 339/88/174
+f 339/85/175 340/86/175 341/88/175
+f 284/92/39 282/93/39 286/94/39
+f 343/85/176 344/86/176 281/88/176
+f 341/85/177 342/86/177 344/87/177
+f 281/92/42 283/93/42 343/94/42
+f 155/88/178 153/85/178 156/87/178
+f 157/88/51 155/85/51 158/87/51
+f 159/88/52 157/85/52 160/87/52
+f 161/88/53 159/85/53 162/87/53
+f 163/88/54 161/85/54 164/87/54
+f 165/88/179 163/85/179 166/87/179
+f 167/88/56 165/85/56 168/87/56
+f 169/88/57 167/85/57 170/87/57
+f 171/88/58 169/85/58 172/87/58
+f 173/88/59 171/85/59 174/87/59
+f 175/88/180 173/85/180 176/87/180
+f 177/88/61 175/85/61 178/87/61
+f 179/88/181 177/85/181 180/87/181
+f 181/88/182 179/85/182 182/87/182
+f 183/88/183 181/85/183 184/87/183
+f 185/88/65 183/85/65 186/87/65
+f 186/86/184 188/87/184 187/88/184
+f 188/86/67 190/87/67 189/88/67
+f 190/86/68 192/87/68 191/88/68
+f 192/86/69 194/87/69 193/88/69
+f 194/86/70 196/87/70 195/88/70
+f 196/86/71 198/87/71 197/88/71
+f 198/86/72 200/87/72 199/88/72
+f 200/86/73 202/87/73 201/88/73
+f 202/86/74 204/87/74 203/88/74
+f 204/86/75 206/87/75 205/88/75
+f 206/86/185 208/87/185 207/88/185
+f 208/86/77 210/87/77 209/88/77
+f 210/86/78 212/87/78 211/88/78
+f 212/86/79 214/87/79 213/88/79
+f 202/86/186 241/87/186 242/88/186
+f 216/86/81 154/87/81 153/88/81
+f 214/86/82 216/87/82 215/88/82
+f 195/86/187 270/87/187 269/88/187
+f 245/95/47 248/90/47 246/89/47
+f 244/96/47 248/90/47 245/95/47
+f 234/97/47 236/98/47 235/99/47
+f 234/97/47 237/100/47 236/98/47
+f 234/97/47 238/101/47 237/100/47
+f 229/102/47 231/103/47 230/104/47
+f 228/105/47 231/103/47 229/102/47
+f 219/94/47 221/106/47 220/107/47
+f 219/94/47 222/108/47 221/106/47
+f 218/92/47 217/93/47 219/94/47
+f 217/93/47 248/90/47 219/94/47
+f 248/90/47 244/96/47 219/94/47
+f 219/94/47 244/96/47 222/108/47
+f 244/96/188 243/109/188 222/108/188
+f 222/108/188 243/109/188 223/110/188
+f 223/110/47 243/109/47 224/111/47
+f 243/109/47 242/112/47 224/111/47
+f 242/112/47 241/113/47 224/111/47
+f 241/113/47 240/114/47 224/111/47
+f 224/111/47 240/114/47 225/115/47
+f 225/115/47 240/114/47 226/116/47
+f 240/114/47 239/117/47 226/116/47
+f 226/116/47 239/117/47 227/118/47
+f 239/117/188 238/101/188 227/118/188
+f 227/118/188 238/101/188 228/105/188
+f 228/105/47 238/101/47 231/103/47
+f 238/101/47 234/97/47 231/103/47
+f 234/97/47 233/119/47 232/120/47
+f 231/103/47 234/97/47 232/120/47
+f 230/88/189 180/85/189 229/87/189
+f 216/86/85 248/87/85 217/88/85
+f 192/86/86 236/87/86 237/88/86
+f 225/88/190 170/85/190 224/87/190
+f 206/86/191 243/87/191 244/88/191
+f 232/88/192 184/85/192 231/87/192
+f 220/88/193 160/85/193 219/87/193
+f 196/86/194 238/87/194 239/88/194
+f 227/88/195 174/85/195 226/87/195
+f 210/86/93 245/87/93 246/88/93
+f 186/86/196 233/87/196 234/88/196
+f 222/88/197 164/85/197 221/87/197
+f 200/86/198 240/87/198 241/88/198
+f 229/88/199 178/85/199 228/87/199
+f 214/86/98 247/87/98 248/88/98
+f 190/86/99 235/87/99 236/88/99
+f 224/88/200 168/85/200 223/87/200
+f 204/86/201 242/87/201 243/88/201
+f 231/88/102 182/85/102 230/87/102
+f 219/88/103 158/85/103 218/87/103
+f 194/86/202 237/87/202 238/88/202
+f 226/88/203 172/85/203 225/87/203
+f 208/86/204 244/87/204 245/88/204
+f 233/88/107 186/85/107 232/87/107
+f 221/88/108 162/85/108 220/87/108
+f 198/86/109 239/87/109 240/88/109
+f 218/88/205 156/85/205 217/87/205
+f 228/88/206 176/85/206 227/87/206
+f 212/86/207 246/87/207 247/88/207
+f 188/86/208 234/87/208 235/88/208
+f 223/88/209 166/85/209 222/87/209
+f 250/93/49 251/90/49 280/94/49
+f 251/90/49 252/91/49 280/94/49
+f 252/91/49 253/89/49 280/94/49
+f 253/89/49 254/95/49 280/94/49
+f 254/95/49 255/96/49 280/94/49
+f 255/96/49 256/109/49 280/94/49
+f 256/109/49 257/112/49 280/94/49
+f 257/112/49 258/113/49 280/94/49
+f 258/113/49 259/114/49 280/94/49
+f 259/114/49 260/117/49 280/94/49
+f 260/117/49 261/101/49 280/94/49
+f 261/101/49 262/100/49 280/94/49
+f 262/100/49 263/98/49 280/94/49
+f 263/98/49 264/99/49 280/94/49
+f 264/99/49 265/97/49 280/94/49
+f 265/97/49 266/119/49 280/94/49
+f 266/119/49 267/120/49 280/94/49
+f 267/120/49 268/103/49 280/94/49
+f 268/103/49 269/104/49 280/94/49
+f 269/104/49 270/102/49 280/94/49
+f 270/102/49 271/105/49 280/94/49
+f 271/105/49 272/118/49 280/94/49
+f 272/118/49 273/116/49 280/94/49
+f 273/116/49 274/115/49 280/94/49
+f 274/115/49 275/111/49 280/94/49
+f 275/111/49 276/110/49 280/94/49
+f 276/110/49 277/108/49 280/94/49
+f 277/108/49 278/106/49 279/107/49
+f 280/94/49 277/108/49 279/107/49
+f 257/88/115 169/85/115 258/87/115
+f 209/86/210 277/87/210 276/88/210
+f 264/88/117 183/85/117 265/87/117
+f 252/88/118 159/85/118 253/87/118
+f 199/86/211 272/87/211 271/88/211
+f 249/88/212 153/85/212 250/87/212
+f 259/88/213 173/85/213 260/87/213
+f 213/86/122 279/87/122 278/88/122
+f 189/86/123 267/87/123 266/88/123
+f 254/88/214 163/85/214 255/87/214
+f 203/86/215 274/87/215 273/88/215
+f 261/88/126 177/85/126 262/87/126
+f 153/86/127 249/87/127 280/88/127
+f 193/86/128 269/87/128 268/88/128
+f 256/88/216 167/85/216 257/87/216
+f 207/86/130 276/87/130 275/88/130
+f 263/88/217 181/85/217 264/87/217
+f 251/88/218 157/85/218 252/87/218
+f 197/86/219 271/87/219 270/88/219
+f 258/88/220 171/85/220 259/87/220
+f 211/86/221 278/87/221 277/88/221
+f 187/86/136 266/87/136 265/88/136
+f 253/88/222 161/85/222 254/87/222
+f 201/86/223 273/87/223 272/88/223
+f 260/88/139 175/85/139 261/87/139
+f 215/86/224 280/87/224 279/88/224
+f 191/86/141 268/87/141 267/88/141
+f 255/88/142 165/85/142 256/87/142
+f 205/86/225 275/87/225 274/88/225
+f 262/88/144 179/85/144 263/87/144
+f 250/88/226 155/85/226 251/87/226
+f 283/88/227 281/85/227 284/87/227
+f 285/88/228 283/85/228 286/87/228
+f 287/88/148 285/85/148 288/87/148
+f 289/88/229 287/85/229 290/87/229
+f 291/88/150 289/85/150 292/87/150
+f 293/88/151 291/85/151 294/87/151
+f 295/88/152 293/85/152 296/87/152
+f 297/88/153 295/85/153 298/87/153
+f 299/88/230 297/85/230 300/87/230
+f 301/88/231 299/85/231 302/87/231
+f 303/88/156 301/85/156 304/87/156
+f 305/88/157 303/85/157 306/87/157
+f 307/88/232 305/85/232 308/87/232
+f 309/88/233 307/85/233 310/87/233
+f 311/88/234 309/85/234 312/87/234
+f 313/88/235 311/85/235 314/87/235
+f 314/86/236 316/87/236 315/88/236
+f 316/86/237 318/87/237 317/88/237
+f 318/86/238 320/87/238 319/88/238
+f 320/86/239 322/87/239 321/88/239
+f 322/86/166 324/87/166 323/88/166
+f 324/86/167 326/87/167 325/88/167
+f 326/86/168 328/87/168 327/88/168
+f 328/86/169 330/87/169 329/88/169
+f 330/86/240 332/87/240 331/88/240
+f 332/86/171 334/87/171 333/88/171
+f 334/86/172 336/87/172 335/88/172
+f 336/86/241 338/87/241 337/88/241
+f 338/86/242 340/87/242 339/88/242
+f 340/86/175 342/87/175 341/88/175
+f 282/93/39 344/90/39 286/94/39
+f 344/90/39 342/91/39 286/94/39
+f 342/91/39 340/89/39 286/94/39
+f 340/89/39 338/95/39 286/94/39
+f 338/95/39 336/96/39 286/94/39
+f 336/96/39 334/109/39 286/94/39
+f 334/109/39 332/112/39 286/94/39
+f 332/112/39 330/113/39 286/94/39
+f 330/113/39 328/114/39 286/94/39
+f 328/114/39 326/117/39 286/94/39
+f 326/117/39 324/101/39 286/94/39
+f 324/101/39 322/100/39 286/94/39
+f 322/100/39 320/98/39 286/94/39
+f 320/98/39 318/99/39 286/94/39
+f 318/99/39 316/97/39 286/94/39
+f 316/97/39 314/119/39 286/94/39
+f 314/119/39 312/120/39 286/94/39
+f 312/120/39 310/103/39 286/94/39
+f 310/103/39 308/104/39 286/94/39
+f 308/104/39 306/102/39 286/94/39
+f 306/102/39 304/105/39 286/94/39
+f 304/105/39 302/118/39 286/94/39
+f 302/118/39 300/116/39 286/94/39
+f 300/116/39 298/115/39 286/94/39
+f 298/115/39 296/111/39 286/94/39
+f 296/111/39 294/110/39 286/94/39
+f 294/110/39 292/108/39 286/94/39
+f 292/108/39 290/106/39 286/94/39
+f 290/106/39 288/107/39 286/94/39
+f 344/86/243 282/87/243 281/88/243
+f 343/88/244 341/85/244 344/87/244
+f 283/93/245 285/90/245 343/94/245
+f 343/94/245 285/90/245 341/107/245
+f 285/90/42 287/91/42 341/107/42
+f 287/91/42 289/89/42 341/107/42
+f 289/89/42 291/95/42 341/107/42
+f 291/95/246 293/96/246 341/107/246
+f 293/96/247 295/109/247 341/107/247
+f 335/110/248 331/115/248 333/111/248
+f 295/109/247 297/112/247 341/107/247
+f 297/112/247 299/113/247 341/107/247
+f 335/110/249 329/116/249 331/115/249
+f 299/113/247 301/114/247 341/107/247
+f 335/110/250 327/118/250 329/116/250
+f 301/114/247 303/117/247 341/107/247
+f 335/110/251 325/105/251 327/118/251
+f 303/117/42 305/101/42 341/107/42
+f 335/110/252 323/102/252 325/105/252
+f 305/101/42 307/100/42 341/107/42
+f 335/110/253 321/104/253 323/102/253
+f 307/100/42 309/98/42 341/107/42
+f 335/110/253 319/103/253 321/104/253
+f 309/98/254 311/99/254 341/107/254
+f 335/110/254 317/120/254 319/103/254
+f 311/99/254 313/97/254 341/107/254
+f 315/119/254 317/120/254 335/110/254
+f 313/97/254 315/119/254 341/107/254
+f 315/119/254 335/110/254 341/107/254
+f 335/110/42 337/108/42 339/106/42
+f 341/107/42 335/110/42 339/106/42
+v 1.365790 0.015116 4.001092
+v 1.365790 0.015113 0.001092
+v 1.560881 0.034331 4.001092
+v 1.560881 0.034328 0.001092
+v 1.748474 0.091236 4.001092
+v 1.748474 0.091234 0.001092
+v 1.921361 0.183646 4.001092
+v 1.921361 0.183644 0.001092
+v 2.072897 0.308009 4.001092
+v 2.072897 0.308007 0.001092
+v 2.197260 0.459546 4.001092
+v 2.197260 0.459543 0.001092
+v 2.289670 0.632432 4.001092
+v 2.289670 0.632430 0.001092
+v 2.346576 0.820025 4.001092
+v 2.346576 0.820023 0.001092
+v 2.365790 1.015116 4.001092
+v 2.365790 1.015113 0.001092
+v 2.346576 1.210206 4.001091
+v 2.346576 1.210203 0.001091
+v 2.289670 1.397799 4.001091
+v 2.289670 1.397797 0.001091
+v 2.197260 1.570686 4.001091
+v 2.197260 1.570683 0.001091
+v 2.072897 1.722223 4.001091
+v 2.072897 1.722220 0.001091
+v 1.921361 1.846586 4.001091
+v 1.921361 1.846583 0.001091
+v 1.748474 1.938995 4.001091
+v 1.748474 1.938993 0.001091
+v 1.560881 1.995901 4.001091
+v 1.560881 1.995899 0.001091
+v 1.365790 2.015116 4.001091
+v 1.365790 2.015113 0.001091
+v 1.170700 1.995901 4.001091
+v 1.170700 1.995898 0.001091
+v 0.983107 1.938995 4.001091
+v 0.983107 1.938993 0.001091
+v 0.810220 1.846585 4.001091
+v 0.810220 1.846583 0.001091
+v 0.658683 1.722222 4.001091
+v 0.658683 1.722220 0.001091
+v 0.534320 1.570685 4.001091
+v 0.534320 1.570683 0.001091
+v 0.441911 1.397799 4.001091
+v 0.441911 1.397796 0.001091
+v 0.385005 1.210205 4.001091
+v 0.385005 1.210203 0.001091
+v 0.365790 1.015115 4.001092
+v 0.365790 1.015112 0.001092
+v 0.385005 0.820024 4.001092
+v 0.385005 0.820022 0.001092
+v 0.441911 0.632431 4.001092
+v 0.441911 0.632429 0.001092
+v 0.534322 0.459545 4.001092
+v 0.534322 0.459542 0.001092
+v 0.658685 0.308008 4.001092
+v 0.658685 0.308006 0.001092
+v 0.810221 0.183645 4.001092
+v 0.810221 0.183643 0.001092
+v 0.983108 0.091236 4.001092
+v 0.983108 0.091233 0.001092
+v 1.170702 0.034330 4.001092
+v 1.170702 0.034328 0.001092
+v 1.365791 0.649119 -0.167860
+v 1.437192 0.656151 -0.167860
+v 1.505850 0.676978 -0.167860
+v 1.569126 0.710800 -0.167860
+v 1.624587 0.756316 -0.167860
+v 1.670104 0.811778 -0.167860
+v 1.703925 0.875053 -0.167860
+v 1.724752 0.943711 -0.167860
+v 1.731785 1.015113 -0.167860
+v 1.724752 1.086515 -0.167860
+v 1.703925 1.155173 -0.167860
+v 1.670104 1.218448 -0.167861
+v 1.624587 1.273910 -0.167861
+v 1.569126 1.319426 -0.167861
+v 1.505850 1.353247 -0.167861
+v 1.437192 1.374075 -0.167861
+v 1.365790 1.381107 -0.167861
+v 1.294389 1.374075 -0.167861
+v 1.225731 1.353247 -0.167861
+v 1.162455 1.319426 -0.167861
+v 1.106993 1.273910 -0.167861
+v 1.061477 1.218448 -0.167861
+v 1.027656 1.155173 -0.167860
+v 1.006829 1.086515 -0.167860
+v 0.999797 1.015113 -0.167860
+v 1.006829 0.943711 -0.167860
+v 1.027656 0.875053 -0.167860
+v 1.061478 0.811777 -0.167860
+v 1.106994 0.756316 -0.167860
+v 1.162456 0.710800 -0.167860
+v 1.225731 0.676978 -0.167860
+v 1.294389 0.656151 -0.167860
+v 1.365791 0.605024 4.157856
+v 1.445795 0.612904 4.157856
+v 1.522726 0.636241 4.157856
+v 1.593625 0.674137 4.157856
+v 1.655769 0.725137 4.157856
+v 1.706769 0.787281 4.157856
+v 1.744666 0.858181 4.157855
+v 1.768002 0.935111 4.157855
+v 1.775882 1.015116 4.157855
+v 1.768002 1.095121 4.157855
+v 1.744666 1.172051 4.157855
+v 1.706769 1.242950 4.157855
+v 1.655769 1.305094 4.157855
+v 1.593625 1.356094 4.157855
+v 1.522726 1.393991 4.157855
+v 1.445795 1.417328 4.157855
+v 1.365790 1.425207 4.157855
+v 1.285786 1.417327 4.157855
+v 1.208855 1.393991 4.157855
+v 1.137956 1.356094 4.157855
+v 1.075812 1.305094 4.157855
+v 1.024812 1.242950 4.157855
+v 0.986915 1.172051 4.157855
+v 0.963579 1.095120 4.157855
+v 0.955699 1.015115 4.157855
+v 0.963579 0.935110 4.157855
+v 0.986916 0.858180 4.157855
+v 1.024812 0.787281 4.157856
+v 1.075812 0.725137 4.157856
+v 1.137956 0.674137 4.157856
+v 1.208856 0.636240 4.157856
+v 1.285786 0.612904 4.157856
+vt 0.000000 0.000000
+vt 0.450363 0.000088
+vt 0.519265 0.025135
+vt 0.412277 0.001462
+vt 0.592585 0.072108
+vt 0.660664 0.134431
+vt 0.714751 0.214466
+vt 0.755741 0.304410
+vt 0.778531 0.401983
+vt 0.781786 0.502742
+vt 0.147188 0.142771
+vt 0.050179 0.306373
+vt 0.093406 0.218681
+vt 0.765337 0.602148
+vt 0.019781 0.402090
+vt 0.729413 0.696327
+vt 0.000089 0.500905
+vt 0.680707 0.782826
+vt 0.000088 0.601389
+vt 0.627360 0.858268
+vt 0.022810 0.698277
+vt 0.566443 0.918999
+vt 0.063602 0.787572
+vt 0.501474 0.962949
+vt 0.119962 0.865210
+vt 0.436606 0.989270
+vt 0.188187 0.927714
+vt 0.377255 0.998855
+vt 0.263175 0.972402
+vt 0.336538 0.999912
+vt 0.208578 0.081678
+vt 0.280064 0.037078
+vt 0.344761 0.010798
+vn 0.634394 -0.773010 0.000000
+vn 0.773010 -0.634394 0.000000
+vn 0.773010 0.634394 -0.000000
+vn 0.634394 0.773010 -0.000000
+vn -0.956941 0.290284 -0.000000
+vn -0.995185 0.098016 -0.000000
+vn -0.881921 -0.471398 0.000000
+vn -0.634392 -0.773011 0.000000
+vn -0.075085 -0.247523 -0.965968
+vn -0.199427 0.163668 0.966148
+vn -0.121931 0.228117 -0.965969
+vn 0.247522 -0.075086 -0.965968
+vn -0.247522 -0.075086 -0.965968
+vn 0.121931 0.228117 -0.965969
+vn 0.075085 -0.247523 -0.965968
+vn -0.199948 0.164091 -0.965968
+vn 0.257414 0.025352 -0.965968
+vn -0.199947 -0.164093 -0.965968
+vn 0.025353 0.257414 -0.965969
+vn 0.164092 -0.199947 -0.965968
+vn -0.247522 0.075085 -0.965969
+vn 0.025353 -0.257415 -0.965968
+vn 0.228118 0.121931 -0.965969
+vn -0.121931 -0.228119 -0.965968
+vn -0.075086 0.247521 -0.965969
+vn 0.228118 -0.121932 -0.965968
+vn -0.257414 -0.025354 -0.965968
+vn 0.164092 0.199946 -0.965969
+vn -0.025353 -0.257415 -0.965968
+vn -0.164092 0.199946 -0.965969
+vn 0.257415 -0.025354 -0.965968
+vn -0.228117 -0.121932 -0.965968
+vn 0.075086 0.247521 -0.965969
+vn 0.121931 -0.228119 -0.965968
+vn -0.228117 0.121931 -0.965968
+vn 0.247522 0.075085 -0.965969
+vn -0.164092 -0.199947 -0.965968
+vn -0.025353 0.257414 -0.965969
+vn 0.199947 -0.164093 -0.965968
+vn -0.257414 0.025352 -0.965968
+vn 0.199947 0.164091 -0.965968
+vn 0.256746 0.025290 0.966148
+vn -0.199428 -0.163666 0.966148
+vn 0.025287 0.256747 0.966148
+vn 0.163666 -0.199428 0.966148
+vn -0.246880 0.074890 0.966148
+vn 0.025287 -0.256746 0.966148
+vn 0.227526 0.121615 0.966148
+vn -0.121615 -0.227526 0.966148
+vn -0.074890 0.246880 0.966148
+vn 0.227525 -0.121615 0.966148
+vn -0.256745 -0.025287 0.966148
+vn 0.163667 0.199428 0.966148
+vn -0.025287 -0.256746 0.966148
+vn -0.163667 0.199428 0.966148
+vn 0.256746 -0.025287 0.966148
+vn -0.227525 -0.121615 0.966148
+vn 0.074890 0.246880 0.966148
+vn 0.121615 -0.227526 0.966148
+vn -0.227526 0.121615 0.966148
+vn 0.246880 0.074890 0.966148
+vn -0.163666 -0.199428 0.966148
+vn -0.025287 0.256747 0.966148
+vn 0.199428 -0.163666 0.966148
+vn -0.256746 0.025289 0.966148
+vn 0.199427 0.163668 0.966148
+vn -0.074892 -0.246879 0.966148
+vn -0.121615 0.227526 0.966148
+vn 0.246879 -0.074890 0.966148
+vn -0.246879 -0.074890 0.966148
+vn 0.121615 0.227526 0.966148
+vn 0.074892 -0.246879 0.966148
+vn -0.199428 0.163666 0.966148
+vn 0.000000 -0.000004 -1.000000
+vn 0.247522 -0.075085 -0.965968
+vn -0.199947 0.164092 -0.965969
+vn 0.257414 0.025353 -0.965969
+vn -0.199947 -0.164092 -0.965968
+vn 0.228120 0.121929 -0.965968
+vn -0.121931 -0.228118 -0.965968
+vn -0.075085 0.247521 -0.965969
+vn 0.228117 -0.121935 -0.965968
+vn -0.257414 -0.025353 -0.965968
+vn 0.164092 0.199947 -0.965969
+vn 0.257415 -0.025353 -0.965968
+vn -0.228117 -0.121935 -0.965968
+vn 0.075085 0.247521 -0.965969
+vn 0.121932 -0.228118 -0.965968
+vn -0.228120 0.121928 -0.965968
+vn 0.199947 -0.164092 -0.965968
+vn -0.257414 0.025353 -0.965969
+vn 0.199946 0.164092 -0.965969
+vn -0.000004 0.000009 1.000000
+vn 0.000001 -0.000000 1.000000
+vn -0.000029 -0.000009 1.000000
+vn -0.000010 -0.000001 1.000000
+vn -0.000005 0.000001 1.000000
+vn -0.000003 0.000001 1.000000
+vn -0.000002 0.000001 1.000000
+vn -0.000001 0.000001 1.000000
+vn 0.000000 0.000001 1.000000
+vn 0.256746 0.025287 0.966148
+vn -0.074891 0.246880 0.966148
+vn 0.227529 -0.121610 0.966148
+vn -0.256746 -0.025287 0.966148
+vn -0.227529 -0.121610 0.966148
+vn -0.256746 0.025287 0.966148
+vn 0.199428 0.163666 0.966148
+vn -0.074889 -0.246879 0.966148
+vn 0.074890 -0.246879 0.966148
+s off
+f 345/121/50 346/121/50 348/121/50
+f 347/121/51 348/121/51 350/121/51
+f 349/121/52 350/121/52 352/121/52
+f 351/121/255 352/121/255 354/121/255
+f 353/121/256 354/121/256 356/121/256
+f 355/121/55 356/121/55 358/121/55
+f 357/121/56 358/121/56 360/121/56
+f 359/121/57 360/121/57 362/121/57
+f 361/121/58 362/121/58 364/121/58
+f 363/121/59 364/121/59 366/121/59
+f 365/121/60 366/121/60 368/121/60
+f 367/121/257 368/121/257 370/121/257
+f 369/121/258 370/121/258 372/121/258
+f 371/121/63 372/121/63 374/121/63
+f 373/121/64 374/121/64 376/121/64
+f 375/121/65 376/121/65 378/121/65
+f 377/121/66 378/121/66 379/121/66
+f 379/121/67 380/121/67 381/121/67
+f 381/121/68 382/121/68 383/121/68
+f 383/121/69 384/121/69 385/121/69
+f 385/121/70 386/121/70 387/121/70
+f 387/121/71 388/121/71 389/121/71
+f 389/121/259 390/121/259 391/121/259
+f 391/121/260 392/121/260 393/121/260
+f 393/121/74 394/121/74 395/121/74
+f 395/121/75 396/121/75 397/121/75
+f 397/121/261 398/121/261 399/121/261
+f 399/121/77 400/121/77 401/121/77
+f 401/121/262 402/121/262 403/121/262
+f 403/121/79 404/121/79 405/121/79
+f 408/121/263 406/121/263 440/121/263
+f 407/121/81 408/121/81 345/121/81
+f 405/121/82 406/121/82 407/121/82
+f 385/121/264 387/121/264 461/121/264
+f 437/121/47 439/121/47 438/121/47
+f 384/121/265 382/121/265 428/121/265
+f 360/121/266 358/121/266 415/121/266
+f 398/121/267 396/121/267 435/121/267
+f 374/121/268 372/121/268 422/121/268
+f 350/121/269 348/121/269 410/121/269
+f 388/121/270 386/121/270 430/121/270
+f 364/121/271 362/121/271 417/121/271
+f 402/121/272 400/121/272 437/121/272
+f 378/121/273 376/121/273 424/121/273
+f 354/121/274 352/121/274 412/121/274
+f 392/121/275 390/121/275 432/121/275
+f 348/121/276 346/121/276 409/121/276
+f 368/121/277 366/121/277 419/121/277
+f 406/121/278 404/121/278 439/121/278
+f 382/121/279 380/121/279 427/121/279
+f 358/121/280 356/121/280 414/121/280
+f 396/121/281 394/121/281 434/121/281
+f 372/121/282 370/121/282 421/121/282
+f 346/121/283 408/121/283 409/121/283
+f 386/121/284 384/121/284 429/121/284
+f 362/121/285 360/121/285 416/121/285
+f 400/121/286 398/121/286 436/121/286
+f 376/121/287 374/121/287 423/121/287
+f 352/121/288 350/121/288 411/121/288
+f 390/121/289 388/121/289 431/121/289
+f 366/121/290 364/121/290 418/121/290
+f 404/121/291 402/121/291 438/121/291
+f 380/121/292 378/121/292 426/121/292
+f 356/121/293 354/121/293 413/121/293
+f 394/121/294 392/121/294 433/121/294
+f 370/121/295 368/121/295 420/121/295
+f 441/122/49 442/123/49 472/124/49
+f 361/121/296 363/121/296 450/121/296
+f 399/121/297 401/121/297 468/121/297
+f 375/121/298 377/121/298 457/121/298
+f 351/121/299 353/121/299 445/121/299
+f 389/121/300 391/121/300 463/121/300
+f 345/121/301 347/121/301 442/121/301
+f 365/121/302 367/121/302 452/121/302
+f 403/121/303 405/121/303 470/121/303
+f 379/121/304 381/121/304 458/121/304
+f 355/121/305 357/121/305 447/121/305
+f 393/121/306 395/121/306 465/121/306
+f 369/121/307 371/121/307 454/121/307
+f 407/121/308 345/121/308 472/121/308
+f 383/121/309 385/121/309 460/121/309
+f 359/121/310 361/121/310 449/121/310
+f 397/121/311 399/121/311 467/121/311
+f 373/121/312 375/121/312 456/121/312
+f 349/121/313 351/121/313 444/121/313
+f 387/121/314 389/121/314 462/121/314
+f 363/121/315 365/121/315 451/121/315
+f 401/121/316 403/121/316 469/121/316
+f 377/121/317 379/121/317 457/121/317
+f 353/121/318 355/121/318 446/121/318
+f 391/121/319 393/121/319 464/121/319
+f 367/121/320 369/121/320 453/121/320
+f 405/121/321 407/121/321 471/121/321
+f 381/121/322 383/121/322 459/121/322
+f 357/121/323 359/121/323 448/121/323
+f 395/121/324 397/121/324 466/121/324
+f 371/121/325 373/121/325 455/121/325
+f 347/121/326 349/121/326 443/121/326
+f 347/121/178 345/121/178 348/121/178
+f 349/121/51 347/121/51 350/121/51
+f 351/121/52 349/121/52 352/121/52
+f 353/121/255 351/121/255 354/121/255
+f 355/121/256 353/121/256 356/121/256
+f 357/121/179 355/121/179 358/121/179
+f 359/121/56 357/121/56 360/121/56
+f 361/121/57 359/121/57 362/121/57
+f 363/121/58 361/121/58 364/121/58
+f 365/121/59 363/121/59 366/121/59
+f 367/121/60 365/121/60 368/121/60
+f 369/121/257 367/121/257 370/121/257
+f 371/121/181 369/121/181 372/121/181
+f 373/121/182 371/121/182 374/121/182
+f 375/121/183 373/121/183 376/121/183
+f 377/121/65 375/121/65 378/121/65
+f 378/121/184 380/121/184 379/121/184
+f 380/121/67 382/121/67 381/121/67
+f 382/121/68 384/121/68 383/121/68
+f 384/121/69 386/121/69 385/121/69
+f 386/121/70 388/121/70 387/121/70
+f 388/121/71 390/121/71 389/121/71
+f 390/121/259 392/121/259 391/121/259
+f 392/121/260 394/121/260 393/121/260
+f 394/121/74 396/121/74 395/121/74
+f 396/121/75 398/121/75 397/121/75
+f 398/121/261 400/121/261 399/121/261
+f 400/121/77 402/121/77 401/121/77
+f 402/121/262 404/121/262 403/121/262
+f 404/121/79 406/121/79 405/121/79
+f 406/121/263 439/121/263 440/121/263
+f 408/121/81 346/121/81 345/121/81
+f 406/121/82 408/121/82 407/121/82
+f 387/121/327 462/121/327 461/121/327
+f 436/121/47 439/121/47 437/121/47
+f 427/121/47 429/121/47 428/121/47
+f 427/121/47 430/121/47 429/121/47
+f 421/121/47 423/121/47 422/121/47
+f 420/121/47 423/121/47 421/121/47
+f 411/121/47 413/121/47 412/121/47
+f 411/121/47 414/121/47 413/121/47
+f 410/121/47 409/121/47 411/121/47
+f 409/121/47 440/121/47 411/121/47
+f 440/121/47 439/121/47 411/121/47
+f 439/121/47 436/121/47 411/121/47
+f 411/121/47 436/121/47 414/121/47
+f 436/121/328 435/121/328 414/121/328
+f 414/121/328 435/121/328 415/121/328
+f 435/121/47 434/121/47 415/121/47
+f 434/121/47 433/121/47 415/121/47
+f 433/121/47 432/121/47 415/121/47
+f 432/121/47 431/121/47 415/121/47
+f 415/121/47 431/121/47 416/121/47
+f 416/121/47 431/121/47 417/121/47
+f 417/121/47 431/121/47 418/121/47
+f 418/121/47 431/121/47 419/121/47
+f 431/121/328 430/121/328 419/121/328
+f 419/121/328 430/121/328 420/121/328
+f 430/121/47 427/121/47 420/121/47
+f 420/121/47 427/121/47 423/121/47
+f 427/121/47 426/121/47 423/121/47
+f 426/121/47 425/121/47 424/121/47
+f 423/121/47 426/121/47 424/121/47
+f 382/121/265 427/121/265 428/121/265
+f 416/121/329 360/121/329 415/121/329
+f 396/121/267 434/121/267 435/121/267
+f 423/121/268 374/121/268 422/121/268
+f 411/121/269 350/121/269 410/121/269
+f 386/121/330 429/121/330 430/121/330
+f 418/121/331 364/121/331 417/121/331
+f 400/121/332 436/121/332 437/121/332
+f 425/121/273 378/121/273 424/121/273
+f 413/121/274 354/121/274 412/121/274
+f 390/121/275 431/121/275 432/121/275
+f 410/121/276 348/121/276 409/121/276
+f 420/121/333 368/121/333 419/121/333
+f 404/121/334 438/121/334 439/121/334
+f 380/121/335 426/121/335 427/121/335
+f 415/121/336 358/121/336 414/121/336
+f 394/121/337 433/121/337 434/121/337
+f 422/121/338 372/121/338 421/121/338
+f 408/121/283 440/121/283 409/121/283
+f 384/121/284 428/121/284 429/121/284
+f 417/121/339 362/121/339 416/121/339
+f 398/121/340 435/121/340 436/121/340
+f 424/121/341 376/121/341 423/121/341
+f 412/121/342 352/121/342 411/121/342
+f 388/121/343 430/121/343 431/121/343
+f 419/121/290 366/121/290 418/121/290
+f 402/121/291 437/121/291 438/121/291
+f 378/121/292 425/121/292 426/121/292
+f 414/121/344 356/121/344 413/121/344
+f 392/121/345 432/121/345 433/121/345
+f 421/121/346 370/121/346 420/121/346
+f 442/123/49 443/125/49 472/124/49
+f 443/125/49 444/126/49 472/124/49
+f 444/126/49 445/127/49 472/124/49
+f 445/127/49 446/128/49 472/124/49
+f 446/128/347 447/129/347 472/124/347
+f 447/129/348 448/130/348 472/124/348
+f 468/131/349 466/132/349 467/133/349
+f 448/130/348 449/134/348 472/124/348
+f 468/131/350 465/135/350 466/132/350
+f 449/134/348 450/136/348 472/124/348
+f 468/131/351 464/137/351 465/135/351
+f 450/136/348 451/138/348 472/124/348
+f 468/131/352 463/139/352 464/137/352
+f 451/138/348 452/140/348 472/124/348
+f 468/131/353 462/141/353 463/139/353
+f 452/140/348 453/142/348 472/124/348
+f 468/131/354 461/143/354 462/141/354
+f 453/142/49 454/144/49 472/124/49
+f 468/131/354 460/145/354 461/143/354
+f 454/144/355 455/146/355 472/124/355
+f 468/131/354 459/147/354 460/145/354
+f 455/146/355 456/148/355 472/124/355
+f 468/131/355 458/149/355 459/147/355
+f 456/148/355 457/150/355 472/124/355
+f 457/150/355 458/149/355 472/124/355
+f 458/149/355 468/131/355 472/124/355
+f 468/131/49 469/151/49 472/124/49
+f 469/151/49 470/152/49 471/153/49
+f 472/124/49 469/151/49 471/153/49
+f 449/121/356 361/121/356 450/121/356
+f 401/121/297 469/121/297 468/121/297
+f 456/121/298 375/121/298 457/121/298
+f 444/121/299 351/121/299 445/121/299
+f 391/121/300 464/121/300 463/121/300
+f 441/121/301 345/121/301 442/121/301
+f 451/121/302 365/121/302 452/121/302
+f 405/121/303 471/121/303 470/121/303
+f 381/121/357 459/121/357 458/121/357
+f 446/121/358 355/121/358 447/121/358
+f 395/121/359 466/121/359 465/121/359
+f 453/121/307 369/121/307 454/121/307
+f 345/121/308 441/121/308 472/121/308
+f 385/121/309 461/121/309 460/121/309
+f 448/121/310 359/121/310 449/121/310
+f 399/121/360 468/121/360 467/121/360
+f 455/121/312 373/121/312 456/121/312
+f 443/121/313 349/121/313 444/121/313
+f 389/121/314 463/121/314 462/121/314
+f 450/121/315 363/121/315 451/121/315
+f 403/121/316 470/121/316 469/121/316
+f 379/121/317 458/121/317 457/121/317
+f 445/121/318 353/121/318 446/121/318
+f 393/121/361 465/121/361 464/121/361
+f 452/121/362 367/121/362 453/121/362
+f 407/121/363 472/121/363 471/121/363
+f 383/121/322 460/121/322 459/121/322
+f 447/121/323 357/121/323 448/121/323
+f 397/121/324 467/121/324 466/121/324
+f 454/121/325 371/121/325 455/121/325
+f 442/121/364 347/121/364 443/121/364
+v 0.000000 0.010026 -4.301087
+v 0.000000 4.010026 -4.301087
+v 0.195090 0.010026 -4.281873
+v 0.195090 4.010026 -4.281873
+v 0.382683 0.010026 -4.224967
+v 0.382683 4.010026 -4.224967
+v 0.555570 0.010026 -4.132557
+v 0.555570 4.010026 -4.132557
+v 0.707107 0.010026 -4.008194
+v 0.707107 4.010026 -4.008194
+v 0.831470 0.010026 -3.856658
+v 0.831470 4.010026 -3.856658
+v 0.923880 0.010026 -3.683771
+v 0.923880 4.010026 -3.683771
+v 0.980785 0.010026 -3.496178
+v 0.980785 4.010026 -3.496178
+v 1.000000 0.010026 -3.301088
+v 1.000000 4.010026 -3.301088
+v 0.980785 0.010026 -3.105997
+v 0.980785 4.010026 -3.105997
+v 0.923880 0.010026 -2.918404
+v 0.923880 4.010026 -2.918404
+v 0.831470 0.010026 -2.745517
+v 0.831470 4.010026 -2.745517
+v 0.707107 0.010026 -2.593981
+v 0.707107 4.010026 -2.593981
+v 0.555570 0.010026 -2.469618
+v 0.555570 4.010026 -2.469618
+v 0.382683 0.010026 -2.377208
+v 0.382683 4.010026 -2.377208
+v 0.195090 0.010026 -2.320302
+v 0.195090 4.010026 -2.320302
+v -0.000000 0.010026 -2.301088
+v -0.000000 4.010026 -2.301088
+v -0.195091 0.010026 -2.320302
+v -0.195091 4.010026 -2.320302
+v -0.382684 0.010026 -2.377208
+v -0.382684 4.010026 -2.377208
+v -0.555571 0.010026 -2.469618
+v -0.555571 4.010026 -2.469618
+v -0.707107 0.010026 -2.593981
+v -0.707107 4.010026 -2.593981
+v -0.831470 0.010026 -2.745518
+v -0.831470 4.010026 -2.745518
+v -0.923880 0.010026 -2.918405
+v -0.923880 4.010026 -2.918405
+v -0.980785 0.010026 -3.105998
+v -0.980785 4.010026 -3.105998
+v -1.000000 0.010026 -3.301089
+v -1.000000 4.010026 -3.301089
+v -0.980785 0.010026 -3.496179
+v -0.980785 4.010026 -3.496179
+v -0.923879 0.010026 -3.683772
+v -0.923879 4.010026 -3.683772
+v -0.831469 0.010026 -3.856659
+v -0.831469 4.010026 -3.856659
+v -0.707106 0.010026 -4.008195
+v -0.707106 4.010026 -4.008195
+v -0.555569 0.010026 -4.132558
+v -0.555569 4.010026 -4.132558
+v -0.382682 0.010026 -4.224968
+v -0.382682 4.010026 -4.224968
+v -0.195089 0.010026 -4.281873
+v -0.195089 4.010026 -4.281873
+v 0.000000 4.270857 -3.619825
+v 0.062183 4.270857 -3.613700
+v 0.121975 4.270857 -3.595562
+v 0.177081 4.270857 -3.566108
+v 0.225381 4.270857 -3.526469
+v 0.265020 4.270857 -3.478168
+v 0.294475 4.270857 -3.423063
+v 0.312612 4.270857 -3.363270
+v 0.318737 4.270857 -3.301088
+v 0.312613 4.270857 -3.238905
+v 0.294475 4.270857 -3.179112
+v 0.265020 4.270857 -3.124007
+v 0.225381 4.270857 -3.075707
+v 0.177081 4.270857 -3.036068
+v 0.121975 4.270857 -3.006613
+v 0.062182 4.270857 -2.988475
+v -0.000000 4.270857 -2.982351
+v -0.062183 4.270857 -2.988475
+v -0.121975 4.270857 -3.006613
+v -0.177081 4.270857 -3.036068
+v -0.225381 4.270857 -3.075707
+v -0.265020 4.270857 -3.124007
+v -0.294475 4.270857 -3.179113
+v -0.312613 4.270857 -3.238906
+v -0.318737 4.270857 -3.301088
+v -0.312612 4.270857 -3.363271
+v -0.294474 4.270857 -3.423064
+v -0.265020 4.270857 -3.478169
+v -0.225381 4.270857 -3.526469
+v -0.177080 4.270857 -3.566108
+v -0.121975 4.270857 -3.595562
+v -0.062182 4.270857 -3.613700
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.098017 0.000000 -0.995185
+vn 0.290285 0.000000 -0.956940
+vn 0.471396 0.000000 -0.881922
+vn 0.634394 0.000000 -0.773010
+vn 0.773011 0.000000 -0.634393
+vn 0.881921 0.000000 -0.471397
+vn 0.956940 0.000000 -0.290285
+vn 0.995185 0.000000 -0.098017
+vn 0.995185 0.000000 0.098017
+vn 0.881921 0.000000 0.471397
+vn 0.773011 0.000000 0.634393
+vn 0.634394 0.000000 0.773010
+vn 0.471396 0.000000 0.881921
+vn 0.290285 0.000000 0.956940
+vn 0.098017 0.000000 0.995185
+vn -0.098018 0.000000 0.995185
+vn -0.290285 0.000000 0.956940
+vn -0.471397 0.000000 0.881921
+vn -0.634394 0.000000 0.773010
+vn -0.773011 0.000000 0.634393
+vn -0.881922 0.000000 0.471396
+vn -0.956941 0.000000 0.290284
+vn -0.995185 0.000000 0.098016
+vn -0.995185 -0.000000 -0.098018
+vn -0.956940 -0.000000 -0.290286
+vn -0.881921 -0.000000 -0.471398
+vn -0.773010 -0.000000 -0.634394
+vn -0.634392 -0.000000 -0.773012
+vn -0.471397 -0.000000 -0.881921
+vn -0.357332 0.933314 -0.035195
+vn -0.098015 -0.000000 -0.995185
+vn -0.290282 -0.000000 -0.956941
+vn 0.227786 0.933314 0.277558
+vn -0.035193 0.933314 -0.357332
+vn -0.227786 0.933314 0.277558
+vn 0.357332 0.933314 -0.035194
+vn -0.316663 0.933314 -0.169261
+vn 0.104230 0.933314 0.343600
+vn 0.169260 0.933314 -0.316664
+vn -0.316664 0.933314 0.169260
+vn 0.343600 0.933314 0.104230
+vn -0.227785 0.933314 -0.277559
+vn -0.035194 0.933314 0.357332
+vn 0.277558 0.933314 -0.227786
+vn -0.357332 0.933314 0.035194
+vn 0.277558 0.933314 0.227786
+vn -0.104229 0.933314 -0.343600
+vn -0.169260 0.933314 0.316663
+vn 0.343600 0.933314 -0.104230
+vn -0.343600 0.933314 -0.104230
+vn 0.169260 0.933314 0.316664
+vn 0.104230 0.933314 -0.343600
+vn -0.277558 0.933314 0.227786
+vn 0.357332 0.933314 0.035194
+vn -0.277558 0.933314 -0.227786
+vn 0.035194 0.933314 0.357332
+vn 0.227786 0.933314 -0.277558
+vn -0.343600 0.933314 0.104230
+vn 0.035194 0.933314 -0.357332
+vn 0.316664 0.933314 0.169260
+vn -0.169260 0.933314 -0.316664
+vn -0.104230 0.933314 0.343600
+vn 0.316664 0.933314 -0.169260
+vn -0.357332 0.933314 -0.035194
+vn -0.035195 0.933314 -0.357332
+vn -0.316664 0.933314 -0.169260
+vn 0.169261 0.933314 -0.316663
+vn -0.227786 0.933314 -0.277558
+vn -0.357332 0.933314 0.035193
+vn -0.104230 0.933314 -0.343600
+vn -0.169261 0.933314 0.316663
+vn 0.035195 0.933314 -0.357332
+vn -0.169259 0.933314 -0.316664
+s off
+f 473/154/365 474/155/365 476/156/365
+f 475/154/366 476/155/366 478/156/366
+f 477/154/367 478/155/367 480/156/367
+f 479/154/368 480/155/368 482/156/368
+f 481/154/369 482/155/369 484/156/369
+f 483/154/370 484/155/370 486/156/370
+f 485/154/371 486/155/371 488/156/371
+f 487/154/372 488/155/372 490/156/372
+f 489/154/373 490/155/373 492/156/373
+f 491/154/155 492/155/155 494/156/155
+f 493/154/374 494/155/374 496/156/374
+f 495/154/375 496/155/375 498/156/375
+f 497/154/376 498/155/376 500/156/376
+f 499/154/377 500/155/377 502/156/377
+f 501/154/378 502/155/378 504/156/378
+f 503/154/379 504/155/379 506/156/379
+f 505/154/380 506/155/380 507/157/380
+f 507/154/381 508/155/381 509/157/381
+f 509/154/382 510/155/382 511/157/382
+f 511/154/383 512/155/383 513/157/383
+f 513/154/384 514/155/384 515/157/384
+f 515/154/385 516/155/385 517/157/385
+f 517/154/386 518/155/386 519/157/386
+f 519/154/387 520/155/387 521/157/387
+f 521/154/388 522/155/388 523/157/388
+f 523/154/389 524/155/389 525/157/389
+f 525/154/390 526/155/390 527/157/390
+f 527/154/391 528/155/391 529/157/391
+f 529/154/392 530/155/392 531/157/392
+f 531/154/393 532/155/393 533/157/393
+f 524/154/394 522/155/394 562/157/394
+f 535/154/395 536/155/395 473/157/395
+f 533/154/396 534/155/396 535/157/396
+f 473/158/42 475/159/42 535/160/42
+f 538/158/39 537/159/39 539/160/39
+f 500/154/397 498/155/397 549/156/397
+f 474/154/398 536/155/398 537/157/398
+f 514/154/399 512/155/399 557/157/399
+f 490/154/400 488/155/400 544/156/400
+f 528/154/401 526/155/401 564/157/401
+f 504/154/402 502/155/402 551/156/402
+f 480/154/403 478/155/403 539/156/403
+f 518/154/404 516/155/404 559/157/404
+f 494/154/405 492/155/405 546/156/405
+f 532/154/406 530/155/406 566/157/406
+f 508/154/407 506/155/407 554/157/407
+f 484/154/408 482/155/408 541/156/408
+f 522/154/409 520/155/409 561/157/409
+f 498/154/410 496/155/410 548/156/410
+f 536/154/411 534/155/411 568/157/411
+f 512/154/412 510/155/412 556/157/412
+f 488/154/413 486/155/413 543/156/413
+f 526/154/414 524/155/414 563/157/414
+f 502/154/415 500/155/415 550/156/415
+f 478/154/416 476/155/416 538/156/416
+f 516/154/417 514/155/417 558/157/417
+f 492/154/418 490/155/418 545/156/418
+f 530/154/419 528/155/419 565/157/419
+f 506/154/420 504/155/420 552/156/420
+f 482/154/421 480/155/421 540/156/421
+f 520/154/422 518/155/422 560/157/422
+f 476/154/423 474/155/423 537/156/423
+f 496/154/424 494/155/424 547/156/424
+f 534/154/425 532/155/425 567/157/425
+f 510/154/426 508/155/426 555/157/426
+f 486/154/427 484/155/427 542/156/427
+f 475/157/365 473/154/365 476/156/365
+f 477/157/366 475/154/366 478/156/366
+f 479/157/367 477/154/367 480/156/367
+f 481/157/368 479/154/368 482/156/368
+f 483/157/369 481/154/369 484/156/369
+f 485/157/370 483/154/370 486/156/370
+f 487/157/371 485/154/371 488/156/371
+f 489/157/372 487/154/372 490/156/372
+f 491/157/373 489/154/373 492/156/373
+f 493/157/155 491/154/155 494/156/155
+f 495/157/374 493/154/374 496/156/374
+f 497/157/375 495/154/375 498/156/375
+f 499/157/376 497/154/376 500/156/376
+f 501/157/377 499/154/377 502/156/377
+f 503/157/378 501/154/378 504/156/378
+f 505/157/379 503/154/379 506/156/379
+f 506/155/380 508/156/380 507/157/380
+f 508/155/381 510/156/381 509/157/381
+f 510/155/382 512/156/382 511/157/382
+f 512/155/383 514/156/383 513/157/383
+f 514/155/384 516/156/384 515/157/384
+f 516/155/385 518/156/385 517/157/385
+f 518/155/386 520/156/386 519/157/386
+f 520/155/387 522/156/387 521/157/387
+f 522/155/388 524/156/388 523/157/388
+f 524/155/389 526/156/389 525/157/389
+f 526/155/390 528/156/390 527/157/390
+f 528/155/391 530/156/391 529/157/391
+f 530/155/392 532/156/392 531/157/392
+f 532/155/393 534/156/393 533/157/393
+f 522/155/428 561/156/428 562/157/428
+f 536/155/395 474/156/395 473/157/395
+f 534/155/396 536/156/396 535/157/396
+f 475/159/42 477/161/42 535/160/42
+f 477/161/42 479/162/42 535/160/42
+f 479/162/42 481/163/42 535/160/42
+f 481/163/42 483/164/42 535/160/42
+f 483/164/42 485/165/42 535/160/42
+f 485/165/42 487/166/42 535/160/42
+f 487/166/42 489/167/42 535/160/42
+f 489/167/42 491/168/42 535/160/42
+f 491/168/42 493/169/42 535/160/42
+f 493/169/42 495/170/42 535/160/42
+f 495/170/42 497/171/42 535/160/42
+f 497/171/42 499/172/42 535/160/42
+f 499/172/42 501/173/42 535/160/42
+f 501/173/42 503/174/42 535/160/42
+f 503/174/42 505/175/42 535/160/42
+f 505/175/42 507/176/42 535/160/42
+f 507/176/42 509/177/42 535/160/42
+f 509/177/42 511/178/42 535/160/42
+f 511/178/42 513/179/42 535/160/42
+f 513/179/42 515/180/42 535/160/42
+f 515/180/42 517/181/42 535/160/42
+f 517/181/42 519/182/42 535/160/42
+f 519/182/42 521/183/42 535/160/42
+f 521/183/42 523/184/42 535/160/42
+f 523/184/42 525/185/42 535/160/42
+f 525/185/42 527/186/42 535/160/42
+f 527/186/42 529/187/42 535/160/42
+f 529/187/42 531/188/42 533/189/42
+f 535/160/42 529/187/42 533/189/42
+f 537/159/39 568/161/39 539/160/39
+f 568/161/39 567/162/39 539/160/39
+f 567/162/39 566/163/39 539/160/39
+f 566/163/39 565/164/39 539/160/39
+f 565/164/39 564/165/39 539/160/39
+f 564/165/39 563/166/39 539/160/39
+f 563/166/39 562/167/39 539/160/39
+f 562/167/39 561/168/39 539/160/39
+f 561/168/39 560/169/39 539/160/39
+f 560/169/39 559/170/39 539/160/39
+f 559/170/39 558/171/39 539/160/39
+f 558/171/39 557/172/39 539/160/39
+f 557/172/39 556/173/39 539/160/39
+f 556/173/39 555/174/39 539/160/39
+f 555/174/39 554/175/39 539/160/39
+f 554/175/39 553/176/39 539/160/39
+f 553/176/39 552/177/39 539/160/39
+f 552/177/39 551/178/39 539/160/39
+f 551/178/39 550/179/39 539/160/39
+f 550/179/39 549/180/39 539/160/39
+f 549/180/39 548/181/39 539/160/39
+f 548/181/39 547/182/39 539/160/39
+f 547/182/39 546/183/39 539/160/39
+f 546/183/39 545/184/39 539/160/39
+f 545/184/39 544/185/39 539/160/39
+f 544/185/39 543/186/39 539/160/39
+f 543/186/39 542/187/39 539/160/39
+f 542/187/39 541/188/39 539/160/39
+f 541/188/39 540/189/39 539/160/39
+f 550/157/397 500/154/397 549/156/397
+f 536/155/429 568/156/429 537/157/429
+f 512/155/399 556/156/399 557/157/399
+f 545/157/400 490/154/400 544/156/400
+f 526/155/430 563/156/430 564/157/430
+f 552/157/402 504/154/402 551/156/402
+f 540/157/431 480/154/431 539/156/431
+f 516/155/404 558/156/404 559/157/404
+f 547/157/405 494/154/405 546/156/405
+f 530/155/432 565/156/432 566/157/432
+f 506/155/407 553/156/407 554/157/407
+f 542/157/408 484/154/408 541/156/408
+f 520/155/433 560/156/433 561/157/433
+f 549/157/410 498/154/410 548/156/410
+f 534/155/434 567/156/434 568/157/434
+f 510/155/435 555/156/435 556/157/435
+f 544/157/413 488/154/413 543/156/413
+f 524/155/414 562/156/414 563/157/414
+f 551/157/415 502/154/415 550/156/415
+f 539/157/416 478/154/416 538/156/416
+f 514/155/417 557/156/417 558/157/417
+f 546/157/418 492/154/418 545/156/418
+f 528/155/419 564/156/419 565/157/419
+f 553/157/420 506/154/420 552/156/420
+f 541/157/421 482/154/421 540/156/421
+f 518/155/422 559/156/422 560/157/422
+f 538/157/436 476/154/436 537/156/436
+f 548/157/424 496/154/424 547/156/424
+f 532/155/437 566/156/437 567/157/437
+f 508/155/426 554/156/426 555/157/426
+f 543/157/427 486/154/427 542/156/427
+v 0.609274 0.018251 -1.901238
+v 0.609274 0.018251 -0.682690
+v -0.609274 0.018251 -0.682690
+v -0.609274 0.018251 -1.901238
+v 0.609274 1.236799 -1.901237
+v 0.609273 1.236799 -0.682690
+v -0.609274 1.236799 -0.682690
+v -0.609274 1.236799 -1.901238
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vn 1.000000 -0.000000 0.000001
+s off
+f 569/190/42 570/191/42 571/192/42
+f 573/190/39 576/191/39 575/192/39
+f 569/190/438 573/191/438 574/192/438
+f 570/190/49 574/191/49 571/193/49
+f 571/190/46 575/191/46 572/193/46
+f 573/190/47 569/191/47 572/192/47
+f 572/193/42 569/190/42 571/192/42
+f 574/193/39 573/190/39 575/192/39
+f 570/193/48 569/190/48 574/192/48
+f 574/191/49 575/192/49 571/193/49
+f 575/191/46 576/192/46 572/193/46
+f 576/193/47 573/190/47 572/192/47
diff --git a/examples/datavisualization/graphgallery/data/topography.png b/examples/datavisualization/graphgallery/data/topography.png
new file mode 100644
index 000000000..9349cdb31
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/topography.png
Binary files differ
diff --git a/examples/datavisualization/graphgallery/doc/graph_gallery.webp b/examples/datavisualization/graphgallery/doc/graph_gallery.webp
new file mode 100644
index 000000000..694b4f294
--- /dev/null
+++ b/examples/datavisualization/graphgallery/doc/graph_gallery.webp
Binary files differ
diff --git a/examples/datavisualization/graphgallery/doc/graphgallery.rst b/examples/datavisualization/graphgallery/doc/graphgallery.rst
new file mode 100644
index 000000000..5ebefc56a
--- /dev/null
+++ b/examples/datavisualization/graphgallery/doc/graphgallery.rst
@@ -0,0 +1,11 @@
+Graph Gallery
+=============
+
+
+Graph Gallery demonstrates all three graph types and some of their special
+features. The graphs have their own tabs in the application.
+
+
+.. image:: graph_gallery.webp
+ :width: 400
+ :alt: Graph Gallery Screenshot
diff --git a/examples/datavisualization/graphgallery/graphgallery.pyproject b/examples/datavisualization/graphgallery/graphgallery.pyproject
new file mode 100644
index 000000000..8022aea9b
--- /dev/null
+++ b/examples/datavisualization/graphgallery/graphgallery.pyproject
@@ -0,0 +1,18 @@
+{
+ "files": ["axesinputhandler.py",
+ "bargraph.py",
+ "custominputhandler.py",
+ "graphgallery.qrc",
+ "graphmodifier.py",
+ "highlightseries.py",
+ "main.py",
+ "rainfalldata.py",
+ "scatterdatamodifier.py",
+ "scattergraph.py",
+ "surfacegraph.py",
+ "surfacegraphmodifier.py",
+ "topographicseries.py",
+ "variantbardatamapping.py",
+ "variantbardataproxy.py",
+ "variantdataset.py"]
+}
diff --git a/examples/datavisualization/graphgallery/graphgallery.qrc b/examples/datavisualization/graphgallery/graphgallery.qrc
new file mode 100644
index 000000000..6df5703df
--- /dev/null
+++ b/examples/datavisualization/graphgallery/graphgallery.qrc
@@ -0,0 +1,13 @@
+<RCC>
+ <qresource prefix="/">
+ <file>data/raindata.txt</file>
+ <file>data/layer_1.png</file>
+ <file>data/layer_2.png</file>
+ <file>data/layer_3.png</file>
+ <file>data/refinery.obj</file>
+ <file>data/oilrig.obj</file>
+ <file>data/pipe.obj</file>
+ <file>data/maptexture.jpg</file>
+ <file>data/topography.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/datavisualization/graphgallery/graphmodifier.py b/examples/datavisualization/graphgallery/graphmodifier.py
new file mode 100644
index 000000000..e8d94ee96
--- /dev/null
+++ b/examples/datavisualization/graphgallery/graphmodifier.py
@@ -0,0 +1,395 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+from math import atan, degrees
+import numpy as np
+
+from PySide6.QtCore import QObject, QPropertyAnimation, Signal, Slot
+from PySide6.QtGui import QFont, QVector3D
+from PySide6.QtDataVisualization import (QAbstract3DGraph, QAbstract3DSeries,
+ QBarDataItem, QBar3DSeries,
+ QCategory3DAxis, QValue3DAxis,
+ Q3DCamera, Q3DTheme)
+
+from rainfalldata import RainfallData
+
+# Set up data
+TEMP_OULU = np.array([
+ [-7.4, -2.4, 0.0, 3.0, 8.2, 11.6, 14.7, 15.4, 11.4, 4.2, 2.1, -2.3], # 2015
+ [-13.4, -3.9, -1.8, 3.1, 10.6, 13.7, 17.8, 13.6, 10.7, 3.5, -3.1, -4.2], # 2016
+ [-5.7, -6.7, -3.0, -0.1, 4.7, 12.4, 16.1, 14.1, 9.4, 3.0, -0.3, -3.2], # 2017
+ [-6.4, -11.9, -7.4, 1.9, 11.4, 12.4, 21.5, 16.1, 11.0, 4.4, 2.1, -4.1], # 2018
+ [-11.7, -6.1, -2.4, 3.9, 7.2, 14.5, 15.6, 14.4, 8.5, 2.0, -3.0, -1.5], # 2019
+ [-2.1, -3.4, -1.8, 0.6, 7.0, 17.1, 15.6, 15.4, 11.1, 5.6, 1.9, -1.7], # 2020
+ [-9.6, -11.6, -3.2, 2.4, 7.8, 17.3, 19.4, 14.2, 8.0, 5.2, -2.2, -8.6], # 2021
+ [-7.3, -6.4, -1.8, 1.3, 8.1, 15.5, 17.6, 17.6, 9.1, 5.4, -1.5, -4.4]], # 2022
+ np.float64)
+
+
+TEMP_HELSINKI = np.array([
+ [-2.0, -0.1, 1.8, 5.1, 9.7, 13.7, 16.3, 17.3, 12.7, 5.4, 4.6, 2.1], # 2015
+ [-10.3, -0.6, 0.0, 4.9, 14.3, 15.7, 17.7, 16.0, 12.7, 4.6, -1.0, -0.9], # 2016
+ [-2.9, -3.3, 0.7, 2.3, 9.9, 13.8, 16.1, 15.9, 11.4, 5.0, 2.7, 0.7], # 2017
+ [-2.2, -8.4, -4.7, 5.0, 15.3, 15.8, 21.2, 18.2, 13.3, 6.7, 2.8, -2.0], # 2018
+ [-6.2, -0.5, -0.3, 6.8, 10.6, 17.9, 17.5, 16.8, 11.3, 5.2, 1.8, 1.4], # 2019
+ [1.9, 0.5, 1.7, 4.5, 9.5, 18.4, 16.5, 16.8, 13.0, 8.2, 4.4, 0.9], # 2020
+ [-4.7, -8.1, -0.9, 4.5, 10.4, 19.2, 20.9, 15.4, 9.5, 8.0, 1.5, -6.7], # 2021
+ [-3.3, -2.2, -0.2, 3.3, 9.6, 16.9, 18.1, 18.9, 9.2, 7.6, 2.3, -3.4]], # 2022
+ np.float64)
+
+
+class GraphModifier(QObject):
+
+ shadowQualityChanged = Signal(int)
+ backgroundEnabledChanged = Signal(bool)
+ gridEnabledChanged = Signal(bool)
+ fontChanged = Signal(QFont)
+ fontSizeChanged = Signal(int)
+
+ def __init__(self, bargraph, parent):
+ super().__init__(parent)
+ self._graph = bargraph
+ self._temperatureAxis = QValue3DAxis()
+ self._yearAxis = QCategory3DAxis()
+ self._monthAxis = QCategory3DAxis()
+ self._primarySeries = QBar3DSeries()
+ self._secondarySeries = QBar3DSeries()
+ self._celsiusString = "°C"
+
+ self._xRotation = float(0)
+ self._yRotation = float(0)
+ self._fontSize = 30
+ self._segments = 4
+ self._subSegments = 3
+ self._minval = float(-20)
+ self._maxval = float(20)
+ self._barMesh = QAbstract3DSeries.MeshBevelBar
+ self._smooth = False
+ self._animationCameraX = QPropertyAnimation()
+ self._animationCameraY = QPropertyAnimation()
+ self._animationCameraZoom = QPropertyAnimation()
+ self._animationCameraTarget = QPropertyAnimation()
+ self._defaultAngleX = float(0)
+ self._defaultAngleY = float(0)
+ self._defaultZoom = float(0)
+ self._defaultTarget = []
+ self._customData = None
+
+ self._graph.setShadowQuality(QAbstract3DGraph.ShadowQualitySoftMedium)
+ theme = self._graph.activeTheme()
+ theme.setBackgroundEnabled(False)
+ theme.setFont(QFont("Times New Roman", self._fontSize))
+ theme.setLabelBackgroundEnabled(True)
+ self._graph.setMultiSeriesUniform(True)
+
+ self._months = ["January", "February", "March", "April", "May", "June",
+ "July", "August", "September", "October", "November",
+ "December"]
+ self._years = ["2015", "2016", "2017", "2018", "2019", "2020",
+ "2021", "2022"]
+
+ self._temperatureAxis.setTitle("Average temperature")
+ self._temperatureAxis.setSegmentCount(self._segments)
+ self._temperatureAxis.setSubSegmentCount(self._subSegments)
+ self._temperatureAxis.setRange(self._minval, self._maxval)
+ self._temperatureAxis.setLabelFormat("%.1f " + self._celsiusString)
+ self._temperatureAxis.setLabelAutoRotation(30.0)
+ self._temperatureAxis.setTitleVisible(True)
+
+ self._yearAxis.setTitle("Year")
+ self._yearAxis.setLabelAutoRotation(30.0)
+ self._yearAxis.setTitleVisible(True)
+ self._monthAxis.setTitle("Month")
+ self._monthAxis.setLabelAutoRotation(30.0)
+ self._monthAxis.setTitleVisible(True)
+
+ self._graph.setValueAxis(self._temperatureAxis)
+ self._graph.setRowAxis(self._yearAxis)
+ self._graph.setColumnAxis(self._monthAxis)
+
+ format = "Oulu - @colLabel @rowLabel: @valueLabel"
+ self._primarySeries.setItemLabelFormat(format)
+ self._primarySeries.setMesh(QAbstract3DSeries.MeshBevelBar)
+ self._primarySeries.setMeshSmooth(False)
+
+ format = "Helsinki - @colLabel @rowLabel: @valueLabel"
+ self._secondarySeries.setItemLabelFormat(format)
+ self._secondarySeries.setMesh(QAbstract3DSeries.MeshBevelBar)
+ self._secondarySeries.setMeshSmooth(False)
+ self._secondarySeries.setVisible(False)
+
+ self._graph.addSeries(self._primarySeries)
+ self._graph.addSeries(self._secondarySeries)
+
+ self.changePresetCamera()
+
+ self.resetTemperatureData()
+
+ # Set up property animations for zooming to the selected bar
+ camera = self._graph.scene().activeCamera()
+ self._defaultAngleX = camera.xRotation()
+ self._defaultAngleY = camera.yRotation()
+ self._defaultZoom = camera.zoomLevel()
+ self._defaultTarget = camera.target()
+
+ self._animationCameraX.setTargetObject(camera)
+ self._animationCameraY.setTargetObject(camera)
+ self._animationCameraZoom.setTargetObject(camera)
+ self._animationCameraTarget.setTargetObject(camera)
+
+ self._animationCameraX.setPropertyName(b"xRotation")
+ self._animationCameraY.setPropertyName(b"yRotation")
+ self._animationCameraZoom.setPropertyName(b"zoomLevel")
+ self._animationCameraTarget.setPropertyName(b"target")
+
+ duration = 1700
+ self._animationCameraX.setDuration(duration)
+ self._animationCameraY.setDuration(duration)
+ self._animationCameraZoom.setDuration(duration)
+ self._animationCameraTarget.setDuration(duration)
+
+ # The zoom always first zooms out above the graph and then zooms in
+ zoomOutFraction = 0.3
+ self._animationCameraX.setKeyValueAt(zoomOutFraction, 0.0)
+ self._animationCameraY.setKeyValueAt(zoomOutFraction, 90.0)
+ self._animationCameraZoom.setKeyValueAt(zoomOutFraction, 50.0)
+ self._animationCameraTarget.setKeyValueAt(zoomOutFraction,
+ QVector3D(0, 0, 0))
+ self._customData = RainfallData()
+
+ def resetTemperatureData(self):
+ # Create data arrays
+ dataSet = []
+ dataSet2 = []
+
+ for year in range(0, len(self._years)):
+ # Create a data row
+ dataRow = []
+ dataRow2 = []
+ for month in range(0, len(self._months)):
+ # Add data to the row
+ item = QBarDataItem()
+ item.setValue(TEMP_OULU[year][month])
+ dataRow.append(item)
+ item = QBarDataItem()
+ item.setValue(TEMP_HELSINKI[year][month])
+ dataRow2.append(item)
+
+ # Add the row to the set
+ dataSet.append(dataRow)
+ dataSet2.append(dataRow2)
+
+ # Add data to the data proxy (the data proxy assumes ownership of it)
+ self._primarySeries.dataProxy().resetArray(dataSet, self._years, self._months)
+ self._secondarySeries.dataProxy().resetArray(dataSet2, self._years, self._months)
+
+ @Slot(int)
+ def changeRange(self, range):
+ if range >= len(self._years):
+ self._yearAxis.setRange(0, len(self._years) - 1)
+ else:
+ self._yearAxis.setRange(range, range)
+
+ @Slot(int)
+ def changeStyle(self, style):
+ comboBox = self.sender()
+ if comboBox:
+ self._barMesh = comboBox.itemData(style)
+ self._primarySeries.setMesh(self._barMesh)
+ self._secondarySeries.setMesh(self._barMesh)
+ self._customData.customSeries().setMesh(self._barMesh)
+
+ def changePresetCamera(self):
+ self._animationCameraX.stop()
+ self._animationCameraY.stop()
+ self._animationCameraZoom.stop()
+ self._animationCameraTarget.stop()
+
+ # Restore camera target in case animation has changed it
+ self._graph.scene().activeCamera().setTarget(QVector3D(0.0, 0.0, 0.0))
+
+ self._preset = Q3DCamera.CameraPresetFront.value
+
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPreset(Q3DCamera.CameraPreset(self._preset))
+
+ self._preset += 1
+ if self._preset > Q3DCamera.CameraPresetDirectlyBelow.value:
+ self._preset = Q3DCamera.CameraPresetFrontLow.value
+
+ @Slot(int)
+ def changeTheme(self, theme):
+ currentTheme = self._graph.activeTheme()
+ currentTheme.setType(Q3DTheme.Theme(theme))
+ self.backgroundEnabledChanged.emit(currentTheme.isBackgroundEnabled())
+ self.gridEnabledChanged.emit(currentTheme.isGridEnabled())
+ self.fontChanged.emit(currentTheme.font())
+ self.fontSizeChanged.emit(currentTheme.font().pointSize())
+
+ def changeLabelBackground(self):
+ theme = self._graph.activeTheme()
+ theme.setLabelBackgroundEnabled(not theme.isLabelBackgroundEnabled())
+
+ @Slot(int)
+ def changeSelectionMode(self, selectionMode):
+ comboBox = self.sender()
+ if comboBox:
+ flags = comboBox.itemData(selectionMode)
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionFlags(flags))
+
+ def changeFont(self, font):
+ newFont = font
+ self._graph.activeTheme().setFont(newFont)
+
+ def changeFontSize(self, fontsize):
+ self._fontSize = fontsize
+ font = self._graph.activeTheme().font()
+ font.setPointSize(self._fontSize)
+ self._graph.activeTheme().setFont(font)
+
+ @Slot(QAbstract3DGraph.ShadowQuality)
+ def shadowQualityUpdatedByVisual(self, sq):
+ # Updates the UI component to show correct shadow quality
+ self.shadowQualityChanged.emit(sq.value)
+
+ @Slot(int)
+ def changeLabelRotation(self, rotation):
+ self._temperatureAxis.setLabelAutoRotation(float(rotation))
+ self._monthAxis.setLabelAutoRotation(float(rotation))
+ self._yearAxis.setLabelAutoRotation(float(rotation))
+
+ @Slot(bool)
+ def setAxisTitleVisibility(self, enabled):
+ self._temperatureAxis.setTitleVisible(enabled)
+ self._monthAxis.setTitleVisible(enabled)
+ self._yearAxis.setTitleVisible(enabled)
+
+ @Slot(bool)
+ def setAxisTitleFixed(self, enabled):
+ self._temperatureAxis.setTitleFixed(enabled)
+ self._monthAxis.setTitleFixed(enabled)
+ self._yearAxis.setTitleFixed(enabled)
+
+ @Slot()
+ def zoomToSelectedBar(self):
+ self._animationCameraX.stop()
+ self._animationCameraY.stop()
+ self._animationCameraZoom.stop()
+ self._animationCameraTarget.stop()
+
+ camera = self._graph.scene().activeCamera()
+ currentX = camera.xRotation()
+ currentY = camera.yRotation()
+ currentZoom = camera.zoomLevel()
+ currentTarget = camera.target()
+
+ self._animationCameraX.setStartValue(currentX)
+ self._animationCameraY.setStartValue(currentY)
+ self._animationCameraZoom.setStartValue(currentZoom)
+ self._animationCameraTarget.setStartValue(currentTarget)
+
+ selectedBar = (self._graph.selectedSeries().selectedBar()
+ if self._graph.selectedSeries()
+ else QBar3DSeries.invalidSelectionPosition())
+
+ if selectedBar != QBar3DSeries.invalidSelectionPosition():
+ # Normalize selected bar position within axis range to determine
+ # target coordinates
+ endTarget = QVector3D()
+ xMin = self._graph.columnAxis().min()
+ xRange = self._graph.columnAxis().max() - xMin
+ zMin = self._graph.rowAxis().min()
+ zRange = self._graph.rowAxis().max() - zMin
+ endTarget.setX((selectedBar.y() - xMin) / xRange * 2.0 - 1.0)
+ endTarget.setZ((selectedBar.x() - zMin) / zRange * 2.0 - 1.0)
+
+ # Rotate the camera so that it always points approximately to the
+ # graph center
+ endAngleX = 90.0 - degrees(atan(float(endTarget.z() / endTarget.x())))
+ if endTarget.x() > 0.0:
+ endAngleX -= 180.0
+ proxy = self._graph.selectedSeries().dataProxy()
+ barValue = proxy.itemAt(selectedBar.x(), selectedBar.y()).value()
+ endAngleY = 30.0 if barValue >= 0.0 else -30.0
+ if self._graph.valueAxis().reversed():
+ endAngleY *= -1.0
+
+ self._animationCameraX.setEndValue(float(endAngleX))
+ self._animationCameraY.setEndValue(endAngleY)
+ self._animationCameraZoom.setEndValue(250)
+ self._animationCameraTarget.setEndValue(endTarget)
+ else:
+ # No selected bar, so return to the default view
+ self._animationCameraX.setEndValue(self._defaultAngleX)
+ self._animationCameraY.setEndValue(self._defaultAngleY)
+ self._animationCameraZoom.setEndValue(self._defaultZoom)
+ self._animationCameraTarget.setEndValue(self._defaultTarget)
+
+ self._animationCameraX.start()
+ self._animationCameraY.start()
+ self._animationCameraZoom.start()
+ self._animationCameraTarget.start()
+
+ @Slot(bool)
+ def setDataModeToWeather(self, enabled):
+ if enabled:
+ self.changeDataMode(False)
+
+ @Slot(bool)
+ def setDataModeToCustom(self, enabled):
+ if enabled:
+ self.changeDataMode(True)
+
+ def changeShadowQuality(self, quality):
+ sq = QAbstract3DGraph.ShadowQuality(quality)
+ self._graph.setShadowQuality(sq)
+ self.shadowQualityChanged.emit(quality)
+
+ def rotateX(self, rotation):
+ self._xRotation = rotation
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPosition(self._xRotation, self._yRotation)
+
+ def rotateY(self, rotation):
+ self._yRotation = rotation
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPosition(self._xRotation, self._yRotation)
+
+ def setBackgroundEnabled(self, enabled):
+ self._graph.activeTheme().setBackgroundEnabled(bool(enabled))
+
+ def setGridEnabled(self, enabled):
+ self._graph.activeTheme().setGridEnabled(bool(enabled))
+
+ def setSmoothBars(self, smooth):
+ self._smooth = bool(smooth)
+ self._primarySeries.setMeshSmooth(self._smooth)
+ self._secondarySeries.setMeshSmooth(self._smooth)
+ self._customData.customSeries().setMeshSmooth(self._smooth)
+
+ def setSeriesVisibility(self, enabled):
+ self._secondarySeries.setVisible(bool(enabled))
+
+ def setReverseValueAxis(self, enabled):
+ self._graph.valueAxis().setReversed(enabled)
+
+ def setReflection(self, enabled):
+ self._graph.setReflection(enabled)
+
+ def changeDataMode(self, customData):
+ # Change between weather data and data from custom proxy
+ if customData:
+ self._graph.removeSeries(self._primarySeries)
+ self._graph.removeSeries(self._secondarySeries)
+ self._graph.addSeries(self._customData.customSeries())
+ self._graph.setValueAxis(self._customData.valueAxis())
+ self._graph.setRowAxis(self._customData.rowAxis())
+ self._graph.setColumnAxis(self._customData.colAxis())
+ else:
+ self._graph.removeSeries(self._customData.customSeries())
+ self._graph.addSeries(self._primarySeries)
+ self._graph.addSeries(self._secondarySeries)
+ self._graph.setValueAxis(self._temperatureAxis)
+ self._graph.setRowAxis(self._yearAxis)
+ self._graph.setColumnAxis(self._monthAxis)
diff --git a/examples/datavisualization/graphgallery/highlightseries.py b/examples/datavisualization/graphgallery/highlightseries.py
new file mode 100644
index 000000000..b5495b422
--- /dev/null
+++ b/examples/datavisualization/graphgallery/highlightseries.py
@@ -0,0 +1,94 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QPoint, Qt, Slot
+from PySide6.QtGui import QLinearGradient, QVector3D
+from PySide6.QtDataVisualization import (QSurface3DSeries, QSurfaceDataItem, Q3DTheme)
+
+
+DARK_RED_POS = 1.0
+RED_POS = 0.8
+YELLOW_POS = 0.6
+GREEN_POS = 0.4
+DARK_GREEN_POS = 0.2
+
+
+class HighlightSeries(QSurface3DSeries):
+
+ def __init__(self):
+ super().__init__()
+ self._width = 100
+ self._height = 100
+ self._srcWidth = 0
+ self._srcHeight = 0
+ self._position = {}
+ self._topographicSeries = None
+ self._minHeight = 0.0
+ self.setDrawMode(QSurface3DSeries.DrawSurface)
+ self.setFlatShadingEnabled(True)
+ self.setVisible(False)
+
+ def setTopographicSeries(self, series):
+ self._topographicSeries = series
+ array = self._topographicSeries.dataProxy().array()
+ self._srcWidth = len(array[0])
+ self._srcHeight = len(array)
+ self._topographicSeries.selectedPointChanged.connect(self.handlePositionChange)
+
+ def setMinHeight(self, height):
+ self. m_minHeight = height
+
+ @Slot(QPoint)
+ def handlePositionChange(self, position):
+ self._position = position
+
+ if position == self.invalidSelectionPosition():
+ self.setVisible(False)
+ return
+
+ halfWidth = self._width / 2
+ halfHeight = self._height / 2
+
+ startX = position.y() - halfWidth
+ if startX < 0:
+ startX = 0
+ endX = position.y() + halfWidth
+ if endX > (self._srcWidth - 1):
+ endX = self._srcWidth - 1
+ startZ = position.x() - halfHeight
+ if startZ < 0:
+ startZ = 0
+ endZ = position.x() + halfHeight
+ if endZ > (self._srcHeight - 1):
+ endZ = self._srcHeight - 1
+
+ srcProxy = self._topographicSeries.dataProxy()
+ srcArray = srcProxy.array()
+
+ dataArray = []
+ for i in range(int(startZ), int(endZ)):
+ newRow = []
+ srcRow = srcArray[i]
+ for j in range(startX, endX):
+ pos = srcRow.at(j).position()
+ pos.setY(pos.y() + 0.1)
+ item = QSurfaceDataItem(QVector3D(pos))
+ newRow.append(item)
+ dataArray.append(newRow)
+ self.dataProxy().resetArray(dataArray)
+ self.setVisible(True)
+
+ @Slot(float)
+ def handleGradientChange(self, value):
+ ratio = self._minHeight / value
+
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.black)
+ gr.setColorAt(DARK_GREEN_POS * ratio, Qt.darkGreen)
+ gr.setColorAt(GREEN_POS * ratio, Qt.green)
+ gr.setColorAt(YELLOW_POS * ratio, Qt.yellow)
+ gr.setColorAt(RED_POS * ratio, Qt.red)
+ gr.setColorAt(DARK_RED_POS * ratio, Qt.darkRed)
+
+ self.setBaseGradient(gr)
+ self.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
diff --git a/examples/datavisualization/graphgallery/main.py b/examples/datavisualization/graphgallery/main.py
new file mode 100644
index 000000000..4b57b85dd
--- /dev/null
+++ b/examples/datavisualization/graphgallery/main.py
@@ -0,0 +1,50 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt DataVisualization graphgallery example from Qt v6.x"""
+
+import os
+import sys
+
+from PySide6.QtCore import QSize
+from PySide6.QtWidgets import QApplication, QMessageBox, QTabWidget
+
+from bargraph import BarGraph
+from scattergraph import ScatterGraph
+from surfacegraph import SurfaceGraph
+
+
+if __name__ == "__main__":
+ os.environ["QSG_RHI_BACKEND"] = "opengl"
+
+ app = QApplication(sys.argv)
+
+ # Create a tab widget for creating own tabs for Q3DBars, Q3DScatter, and Q3DSurface
+ tabWidget = QTabWidget()
+ tabWidget.setWindowTitle("Graph Gallery")
+
+ screen_size = tabWidget.screen().size()
+ minimum_graph_size = QSize(screen_size.width() / 2, screen_size.height() / 1.75)
+
+ # Create bar graph
+ bars = BarGraph()
+ # Create scatter graph
+ scatter = ScatterGraph()
+ # Create surface graph
+ surface = SurfaceGraph()
+
+ if (not bars.initialize(minimum_graph_size, screen_size)
+ or not scatter.initialize(minimum_graph_size, screen_size)
+ or not surface.initialize(minimum_graph_size, screen_size)):
+ QMessageBox.warning(None, "Graph Gallery", "Couldn't initialize the OpenGL context.")
+ sys.exit(-1)
+
+ # Add bars widget
+ tabWidget.addTab(bars.barsWidget(), "Bar Graph")
+ # Add scatter widget
+ tabWidget.addTab(scatter.scatterWidget(), "Scatter Graph")
+ # Add surface widget
+ tabWidget.addTab(surface.surfaceWidget(), "Surface Graph")
+
+ tabWidget.show()
+ sys.exit(app.exec())
diff --git a/examples/datavisualization/graphgallery/rainfalldata.py b/examples/datavisualization/graphgallery/rainfalldata.py
new file mode 100644
index 000000000..18d6de8d7
--- /dev/null
+++ b/examples/datavisualization/graphgallery/rainfalldata.py
@@ -0,0 +1,125 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from pathlib import Path
+
+from PySide6.QtCore import QFile, QIODevice, QObject
+from PySide6.QtDataVisualization import (QBar3DSeries, QCategory3DAxis, QValue3DAxis)
+
+from variantbardataproxy import VariantBarDataProxy
+from variantbardatamapping import VariantBarDataMapping
+from variantdataset import VariantDataSet
+
+
+MONTHS = ["January", "February", "March", "April",
+ "May", "June", "July", "August", "September", "October",
+ "November", "December"]
+
+
+class RainfallData(QObject):
+
+ def __init__(self):
+ super().__init__()
+ self._columnCount = 0
+ self._rowCount = 0
+ self._years = []
+ self._numericMonths = []
+ self._proxy = VariantBarDataProxy()
+ self._mapping = None
+ self._dataSet = None
+ self._series = QBar3DSeries()
+ self._valueAxis = QValue3DAxis()
+ self._rowAxis = QCategory3DAxis()
+ self._colAxis = QCategory3DAxis()
+
+ # In data file the months are in numeric format, so create custom list
+ for i in range(1, 13):
+ self._numericMonths.append(str(i))
+
+ self._columnCount = len(self._numericMonths)
+
+ self.updateYearsList(2010, 2022)
+
+ # Create proxy and series
+ self._proxy = VariantBarDataProxy()
+ self._series = QBar3DSeries(self._proxy)
+
+ self._series.setItemLabelFormat("%.1f mm")
+
+ # Create the axes
+ self._rowAxis = QCategory3DAxis(self)
+ self._colAxis = QCategory3DAxis(self)
+ self._valueAxis = QValue3DAxis(self)
+ self._rowAxis.setAutoAdjustRange(True)
+ self._colAxis.setAutoAdjustRange(True)
+ self._valueAxis.setAutoAdjustRange(True)
+
+ # Set axis labels and titles
+ self._rowAxis.setTitle("Year")
+ self._colAxis.setTitle("Month")
+ self._valueAxis.setTitle("rainfall (mm)")
+ self._valueAxis.setSegmentCount(5)
+ self._rowAxis.setLabels(self._years)
+ self._colAxis.setLabels(MONTHS)
+ self._rowAxis.setTitleVisible(True)
+ self._colAxis.setTitleVisible(True)
+ self._valueAxis.setTitleVisible(True)
+
+ self.addDataSet()
+
+ def customSeries(self):
+ return self._series
+
+ def valueAxis(self):
+ return self._valueAxis
+
+ def rowAxis(self):
+ return self._rowAxis
+
+ def colAxis(self):
+ return self._colAxis
+
+ def updateYearsList(self, start, end):
+ self._years.clear()
+ for i in range(start, end + 1):
+ self._years.append(str(i))
+ self._rowCount = len(self._years)
+
+ def addDataSet(self):
+ # Create a new variant data set and data item list
+ self._dataSet = VariantDataSet()
+ itemList = []
+
+ # Read data from a data file into the data item list
+ file_path = Path(__file__).resolve().parent / "data" / "raindata.txt"
+ dataFile = QFile(file_path)
+ if dataFile.open(QIODevice.ReadOnly | QIODevice.Text):
+ data = dataFile.readAll().data().decode("utf8")
+ for line in data.split("\n"):
+ if line and not line.startswith("#"): # Ignore comments
+ tokens = line.split(",")
+ # Each line has three data items: Year, month, and
+ # rainfall value
+ if len(tokens) >= 3:
+ # Store year and month as strings, and rainfall value
+ # as double into a variant data item and add the item to
+ # the item list.
+ newItem = []
+ newItem.append(tokens[0].strip())
+ newItem.append(tokens[1].strip())
+ newItem.append(float(tokens[2].strip()))
+ itemList.append(newItem)
+ else:
+ print("Unable to open data file:", dataFile.fileName(),
+ file=sys.stderr)
+
+ # Add items to the data set and set it to the proxy
+ self._dataSet.addItems(itemList)
+ self._proxy.setDataSet(self._dataSet)
+
+ # Create new mapping for the data and set it to the proxy
+ self._mapping = VariantBarDataMapping(0, 1, 2,
+ self._years, self._numericMonths)
+ self._proxy.setMapping(self._mapping)
diff --git a/examples/datavisualization/graphgallery/scatterdatamodifier.py b/examples/datavisualization/graphgallery/scatterdatamodifier.py
new file mode 100644
index 000000000..7c16ef7b9
--- /dev/null
+++ b/examples/datavisualization/graphgallery/scatterdatamodifier.py
@@ -0,0 +1,151 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from math import cos, degrees, sqrt
+
+from PySide6.QtCore import QObject, Signal, Slot, Qt
+from PySide6.QtGui import QVector3D
+from PySide6.QtDataVisualization import (QAbstract3DGraph, QAbstract3DSeries,
+ QScatterDataItem, QScatterDataProxy,
+ QScatter3DSeries, Q3DCamera,
+ Q3DTheme)
+
+from axesinputhandler import AxesInputHandler
+
+
+NUMBER_OF_ITEMS = 10000
+CURVE_DIVIDER = 7.5
+LOWER_NUMBER_OF_ITEMS = 900
+LOWER_CURVE_DIVIDER = 0.75
+
+
+class ScatterDataModifier(QObject):
+
+ backgroundEnabledChanged = Signal(bool)
+ gridEnabledChanged = Signal(bool)
+ shadowQualityChanged = Signal(int)
+
+ def __init__(self, scatter, parent):
+ super().__init__(parent)
+
+ self._graph = scatter
+
+ self._style = QAbstract3DSeries.MeshSphere
+ self._smooth = True
+ self._inputHandler = AxesInputHandler(scatter)
+ self._autoAdjust = True
+ self._itemCount = LOWER_NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = LOWER_CURVE_DIVIDER
+ self._inputHandler = AxesInputHandler(scatter)
+
+ self._graph.activeTheme().setType(Q3DTheme.ThemeStoneMoss)
+ self._graph.setShadowQuality(QAbstract3DGraph.ShadowQualitySoftHigh)
+ self._graph.scene().activeCamera().setCameraPreset(Q3DCamera.CameraPresetFront)
+ self._graph.scene().activeCamera().setZoomLevel(80.0)
+
+ self._proxy = QScatterDataProxy()
+ self._series = QScatter3DSeries(self._proxy)
+ self._series.setItemLabelFormat("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel")
+ self._series.setMeshSmooth(self._smooth)
+ self._graph.addSeries(self._series)
+
+ # Give ownership of the handler to the graph and make it the active
+ # handler
+ self._graph.setActiveInputHandler(self._inputHandler)
+
+ # Give our axes to the input handler
+ self._inputHandler.setAxes(self._graph.axisX(), self._graph.axisZ(),
+ self._graph.axisY())
+
+ self.addData()
+
+ def addData(self):
+ # Configure the axes according to the data
+ self._graph.axisX().setTitle("X")
+ self._graph.axisY().setTitle("Y")
+ self._graph.axisZ().setTitle("Z")
+
+ dataArray = []
+ limit = int(sqrt(self._itemCount) / 2.0)
+ for i in range(-limit, limit):
+ for j in range(-limit, limit):
+ x = float(i) + 0.5
+ y = cos(degrees(float(i * j) / self._CURVE_DIVIDER))
+ z = float(j) + 0.5
+ dataArray.append(QScatterDataItem(QVector3D(x, y, z)))
+
+ self._graph.seriesList()[0].dataProxy().resetArray(dataArray)
+
+ @Slot(int)
+ def changeStyle(self, style):
+ comboBox = self.sender()
+ if comboBox:
+ self._style = comboBox.itemData(style)
+ if self._graph.seriesList():
+ self._graph.seriesList()[0].setMesh(self._style)
+
+ @Slot(int)
+ def setSmoothDots(self, smooth):
+ self._smooth = smooth == Qt.Checked.value
+ series = self._graph.seriesList()[0]
+ series.setMeshSmooth(self._smooth)
+
+ @Slot(int)
+ def changeTheme(self, theme):
+ currentTheme = self._graph.activeTheme()
+ currentTheme.setType(Q3DTheme.Theme(theme))
+ self.backgroundEnabledChanged.emit(currentTheme.isBackgroundEnabled())
+ self.gridEnabledChanged.emit(currentTheme.isGridEnabled())
+
+ @Slot()
+ def changePresetCamera(self):
+ preset = Q3DCamera.CameraPresetFrontLow.value
+
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPreset(Q3DCamera.CameraPreset(preset))
+
+ preset += 1
+ if preset > Q3DCamera.CameraPresetDirectlyBelow.value:
+ preset = Q3DCamera.CameraPresetFrontLow.value
+
+ @Slot(QAbstract3DGraph.ShadowQuality)
+ def shadowQualityUpdatedByVisual(self, sq):
+ self.shadowQualityChanged.emit(sq.value)
+
+ @Slot(int)
+ def changeShadowQuality(self, quality):
+ sq = QAbstract3DGraph.ShadowQuality(quality)
+ self._graph.setShadowQuality(sq)
+
+ @Slot(int)
+ def setBackgroundEnabled(self, enabled):
+ self._graph.activeTheme().setBackgroundEnabled(enabled == Qt.Checked.value)
+
+ @Slot(int)
+ def setGridEnabled(self, enabled):
+ self._graph.activeTheme().setGridEnabled(enabled == Qt.Checked.value)
+
+ @Slot()
+ def toggleItemCount(self):
+ if self._itemCount == NUMBER_OF_ITEMS:
+ self._itemCount = LOWER_NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = LOWER_CURVE_DIVIDER
+ else:
+ self._itemCount = NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = CURVE_DIVIDER
+
+ self._graph.seriesList()[0].dataProxy().resetArray([])
+ self.addData()
+
+ @Slot()
+ def toggleRanges(self):
+ if not self._autoAdjust:
+ self._graph.axisX().setAutoAdjustRange(True)
+ self._graph.axisZ().setAutoAdjustRange(True)
+ self._inputHandler.setDragSpeedModifier(1.5)
+ self._autoAdjust = True
+ else:
+ self._graph.axisX().setRange(-10.0, 10.0)
+ self._graph.axisZ().setRange(-10.0, 10.0)
+ self._inputHandler.setDragSpeedModifier(15.0)
+ self._autoAdjust = False
diff --git a/examples/datavisualization/graphgallery/scattergraph.py b/examples/datavisualization/graphgallery/scattergraph.py
new file mode 100644
index 000000000..ffcd428ee
--- /dev/null
+++ b/examples/datavisualization/graphgallery/scattergraph.py
@@ -0,0 +1,128 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, QSize, Qt
+from PySide6.QtWidgets import (QCheckBox, QComboBox, QCommandLinkButton,
+ QLabel, QHBoxLayout, QSizePolicy,
+ QVBoxLayout, QWidget, )
+from PySide6.QtDataVisualization import (QAbstract3DSeries, Q3DScatter)
+
+from scatterdatamodifier import ScatterDataModifier
+
+
+class ScatterGraph(QObject):
+
+ def __init__(self):
+ super().__init__()
+ self._scatterGraph = Q3DScatter()
+ self._container = None
+ self._scatterWidget = None
+
+ def initialize(self, minimum_graph_size, maximum_graph_size):
+ if not self._scatterGraph.hasContext():
+ return -1
+
+ self._scatterWidget = QWidget()
+ hLayout = QHBoxLayout(self._scatterWidget)
+ self._container = QWidget.createWindowContainer(self._scatterGraph, self._scatterWidget)
+ self._container.setMinimumSize(minimum_graph_size)
+ self._container.setMaximumSize(maximum_graph_size)
+ self._container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._container.setFocusPolicy(Qt.StrongFocus)
+ hLayout.addWidget(self._container, 1)
+
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+
+ cameraButton = QCommandLinkButton(self._scatterWidget)
+ cameraButton.setText("Change camera preset")
+ cameraButton.setDescription("Switch between a number of preset camera positions")
+ cameraButton.setIconSize(QSize(0, 0))
+
+ itemCountButton = QCommandLinkButton(self._scatterWidget)
+ itemCountButton.setText("Toggle item count")
+ itemCountButton.setDescription("Switch between 900 and 10000 data points")
+ itemCountButton.setIconSize(QSize(0, 0))
+
+ rangeButton = QCommandLinkButton(self._scatterWidget)
+ rangeButton.setText("Toggle axis ranges")
+ rangeButton.setDescription("Switch between automatic axis ranges and preset ranges")
+ rangeButton.setIconSize(QSize(0, 0))
+
+ backgroundCheckBox = QCheckBox(self._scatterWidget)
+ backgroundCheckBox.setText("Show background")
+ backgroundCheckBox.setChecked(True)
+
+ gridCheckBox = QCheckBox(self._scatterWidget)
+ gridCheckBox.setText("Show grid")
+ gridCheckBox.setChecked(True)
+
+ smoothCheckBox = QCheckBox(self._scatterWidget)
+ smoothCheckBox.setText("Smooth dots")
+ smoothCheckBox.setChecked(True)
+
+ itemStyleList = QComboBox(self._scatterWidget)
+ itemStyleList.addItem("Sphere", QAbstract3DSeries.MeshSphere)
+ itemStyleList.addItem("Cube", QAbstract3DSeries.MeshCube)
+ itemStyleList.addItem("Minimal", QAbstract3DSeries.MeshMinimal)
+ itemStyleList.addItem("Point", QAbstract3DSeries.MeshPoint)
+ itemStyleList.setCurrentIndex(0)
+
+ themeList = QComboBox(self._scatterWidget)
+ themeList.addItem("Qt")
+ themeList.addItem("Primary Colors")
+ themeList.addItem("Digia")
+ themeList.addItem("Stone Moss")
+ themeList.addItem("Army Blue")
+ themeList.addItem("Retro")
+ themeList.addItem("Ebony")
+ themeList.addItem("Isabelle")
+ themeList.setCurrentIndex(3)
+
+ shadowQuality = QComboBox(self._scatterWidget)
+ shadowQuality.addItem("None")
+ shadowQuality.addItem("Low")
+ shadowQuality.addItem("Medium")
+ shadowQuality.addItem("High")
+ shadowQuality.addItem("Low Soft")
+ shadowQuality.addItem("Medium Soft")
+ shadowQuality.addItem("High Soft")
+ shadowQuality.setCurrentIndex(6)
+
+ vLayout.addWidget(cameraButton)
+ vLayout.addWidget(itemCountButton)
+ vLayout.addWidget(rangeButton)
+ vLayout.addWidget(backgroundCheckBox)
+ vLayout.addWidget(gridCheckBox)
+ vLayout.addWidget(smoothCheckBox)
+ vLayout.addWidget(QLabel("Change dot style"))
+ vLayout.addWidget(itemStyleList)
+ vLayout.addWidget(QLabel("Change theme"))
+ vLayout.addWidget(themeList)
+ vLayout.addWidget(QLabel("Adjust shadow quality"))
+ vLayout.addWidget(shadowQuality, 1, Qt.AlignTop)
+
+ self._modifier = ScatterDataModifier(self._scatterGraph, self)
+
+ cameraButton.clicked.connect(self._modifier.changePresetCamera)
+ itemCountButton.clicked.connect(self._modifier.toggleItemCount)
+ rangeButton.clicked.connect(self._modifier.toggleRanges)
+
+ backgroundCheckBox.stateChanged.connect(self._modifier.setBackgroundEnabled)
+ gridCheckBox.stateChanged.connect(self._modifier.setGridEnabled)
+ smoothCheckBox.stateChanged.connect(self._modifier.setSmoothDots)
+
+ self._modifier.backgroundEnabledChanged.connect(backgroundCheckBox.setChecked)
+ self._modifier.gridEnabledChanged.connect(gridCheckBox.setChecked)
+ itemStyleList.currentIndexChanged.connect(self._modifier.changeStyle)
+
+ themeList.currentIndexChanged.connect(self._modifier.changeTheme)
+
+ shadowQuality.currentIndexChanged.connect(self._modifier.changeShadowQuality)
+
+ self._modifier.shadowQualityChanged.connect(shadowQuality.setCurrentIndex)
+ self._scatterGraph.shadowQualityChanged.connect(self._modifier.shadowQualityUpdatedByVisual)
+ return True
+
+ def scatterWidget(self):
+ return self._scatterWidget
diff --git a/examples/datavisualization/graphgallery/surfacegraph.py b/examples/datavisualization/graphgallery/surfacegraph.py
new file mode 100644
index 000000000..d42f496f9
--- /dev/null
+++ b/examples/datavisualization/graphgallery/surfacegraph.py
@@ -0,0 +1,265 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from surfacegraphmodifier import SurfaceGraphModifier
+
+from PySide6.QtCore import QObject, Qt
+from PySide6.QtGui import QBrush, QIcon, QLinearGradient, QPainter, QPixmap
+from PySide6.QtWidgets import (QGroupBox, QCheckBox, QLabel, QHBoxLayout,
+ QPushButton, QRadioButton, QSizePolicy, QSlider,
+ QVBoxLayout, QWidget)
+
+from PySide6.QtDataVisualization import (Q3DSurface)
+
+
+def gradientBtoYPB_Pixmap():
+ grBtoY = QLinearGradient(0, 0, 1, 100)
+ grBtoY.setColorAt(1.0, Qt.black)
+ grBtoY.setColorAt(0.67, Qt.blue)
+ grBtoY.setColorAt(0.33, Qt.red)
+ grBtoY.setColorAt(0.0, Qt.yellow)
+ pm = QPixmap(24, 100)
+ with QPainter(pm) as pmp:
+ pmp.setBrush(QBrush(grBtoY))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ return pm
+
+
+def gradientGtoRPB_Pixmap():
+ grGtoR = QLinearGradient(0, 0, 1, 100)
+ grGtoR.setColorAt(1.0, Qt.darkGreen)
+ grGtoR.setColorAt(0.5, Qt.yellow)
+ grGtoR.setColorAt(0.2, Qt.red)
+ grGtoR.setColorAt(0.0, Qt.darkRed)
+ pm = QPixmap(24, 100)
+ with QPainter(pm) as pmp:
+ pmp.setBrush(QBrush(grGtoR))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ return pm
+
+
+def highlightPixmap():
+ HEIGHT = 400
+ WIDTH = 110
+ BORDER = 10
+ gr = QLinearGradient(0, 0, 1, HEIGHT - 2 * BORDER)
+ gr.setColorAt(1.0, Qt.black)
+ gr.setColorAt(0.8, Qt.darkGreen)
+ gr.setColorAt(0.6, Qt.green)
+ gr.setColorAt(0.4, Qt.yellow)
+ gr.setColorAt(0.2, Qt.red)
+ gr.setColorAt(0.0, Qt.darkRed)
+ pmHighlight = QPixmap(WIDTH, HEIGHT)
+ pmHighlight.fill(Qt.transparent)
+ with QPainter(pmHighlight) as pmpHighlight:
+ pmpHighlight.setBrush(QBrush(gr))
+ pmpHighlight.setPen(Qt.NoPen)
+ pmpHighlight.drawRect(BORDER, BORDER, 35, HEIGHT - 2 * BORDER)
+ pmpHighlight.setPen(Qt.black)
+ step = (HEIGHT - 2 * BORDER) / 5
+ for i in range(0, 6):
+ yPos = i * step + BORDER
+ pmpHighlight.drawLine(BORDER, yPos, 55, yPos)
+ HEIGHT = 550 - (i * 110)
+ pmpHighlight.drawText(60, yPos + 2, f"{HEIGHT} m")
+ return pmHighlight
+
+
+class SurfaceGraph(QObject):
+
+ def __init__(self):
+ super().__init__()
+ self._surfaceGraph = Q3DSurface()
+ self._container = None
+ self._surfaceWidget = None
+
+ def initialize(self, minimum_graph_size, maximum_graph_size):
+ if not self._surfaceGraph.hasContext():
+ return False
+
+ self._surfaceWidget = QWidget()
+ hLayout = QHBoxLayout(self._surfaceWidget)
+ self._container = QWidget.createWindowContainer(self._surfaceGraph,
+ self._surfaceWidget)
+ self._container.setMinimumSize(minimum_graph_size)
+ self._container.setMaximumSize(maximum_graph_size)
+ self._container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._container.setFocusPolicy(Qt.StrongFocus)
+ hLayout.addWidget(self._container, 1)
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+ vLayout.setAlignment(Qt.AlignTop)
+ # Create control widgets
+ modelGroupBox = QGroupBox("Model")
+ sqrtSinModelRB = QRadioButton(self._surfaceWidget)
+ sqrtSinModelRB.setText("Sqrt and Sin")
+ sqrtSinModelRB.setChecked(False)
+ heightMapModelRB = QRadioButton(self._surfaceWidget)
+ heightMapModelRB.setText("Multiseries\nHeight Map")
+ heightMapModelRB.setChecked(False)
+ texturedModelRB = QRadioButton(self._surfaceWidget)
+ texturedModelRB.setText("Textured\nTopography")
+ texturedModelRB.setChecked(False)
+ modelVBox = QVBoxLayout()
+ modelVBox.addWidget(sqrtSinModelRB)
+ modelVBox.addWidget(heightMapModelRB)
+ modelVBox.addWidget(texturedModelRB)
+ modelGroupBox.setLayout(modelVBox)
+ selectionGroupBox = QGroupBox("Graph Selection Mode")
+ modeNoneRB = QRadioButton(self._surfaceWidget)
+ modeNoneRB.setText("No selection")
+ modeNoneRB.setChecked(False)
+ modeItemRB = QRadioButton(self._surfaceWidget)
+ modeItemRB.setText("Item")
+ modeItemRB.setChecked(False)
+ modeSliceRowRB = QRadioButton(self._surfaceWidget)
+ modeSliceRowRB.setText("Row Slice")
+ modeSliceRowRB.setChecked(False)
+ modeSliceColumnRB = QRadioButton(self._surfaceWidget)
+ modeSliceColumnRB.setText("Column Slice")
+ modeSliceColumnRB.setChecked(False)
+ selectionVBox = QVBoxLayout()
+ selectionVBox.addWidget(modeNoneRB)
+ selectionVBox.addWidget(modeItemRB)
+ selectionVBox.addWidget(modeSliceRowRB)
+ selectionVBox.addWidget(modeSliceColumnRB)
+ selectionGroupBox.setLayout(selectionVBox)
+ axisGroupBox = QGroupBox("Axis ranges")
+ axisMinSliderX = QSlider(Qt.Horizontal)
+ axisMinSliderX.setMinimum(0)
+ axisMinSliderX.setTickInterval(1)
+ axisMinSliderX.setEnabled(True)
+ axisMaxSliderX = QSlider(Qt.Horizontal)
+ axisMaxSliderX.setMinimum(1)
+ axisMaxSliderX.setTickInterval(1)
+ axisMaxSliderX.setEnabled(True)
+ axisMinSliderZ = QSlider(Qt.Horizontal)
+ axisMinSliderZ.setMinimum(0)
+ axisMinSliderZ.setTickInterval(1)
+ axisMinSliderZ.setEnabled(True)
+ axisMaxSliderZ = QSlider(Qt.Horizontal)
+ axisMaxSliderZ.setMinimum(1)
+ axisMaxSliderZ.setTickInterval(1)
+ axisMaxSliderZ.setEnabled(True)
+ axisVBox = QVBoxLayout(axisGroupBox)
+ axisVBox.addWidget(QLabel("Column range"))
+ axisVBox.addWidget(axisMinSliderX)
+ axisVBox.addWidget(axisMaxSliderX)
+ axisVBox.addWidget(QLabel("Row range"))
+ axisVBox.addWidget(axisMinSliderZ)
+ axisVBox.addWidget(axisMaxSliderZ)
+ # Mode-dependent controls
+ # sqrt-sin
+ colorGroupBox = QGroupBox("Custom gradient")
+
+ pixmap = gradientBtoYPB_Pixmap()
+ gradientBtoYPB = QPushButton(self._surfaceWidget)
+ gradientBtoYPB.setIcon(QIcon(pixmap))
+ gradientBtoYPB.setIconSize(pixmap.size())
+
+ pixmap = gradientGtoRPB_Pixmap()
+ gradientGtoRPB = QPushButton(self._surfaceWidget)
+ gradientGtoRPB.setIcon(QIcon(pixmap))
+ gradientGtoRPB.setIconSize(pixmap.size())
+
+ colorHBox = QHBoxLayout(colorGroupBox)
+ colorHBox.addWidget(gradientBtoYPB)
+ colorHBox.addWidget(gradientGtoRPB)
+ # Multiseries heightmap
+ showGroupBox = QGroupBox("Show Object")
+ showGroupBox.setVisible(False)
+ checkboxShowOilRigOne = QCheckBox("Oil Rig 1")
+ checkboxShowOilRigOne.setChecked(True)
+ checkboxShowOilRigTwo = QCheckBox("Oil Rig 2")
+ checkboxShowOilRigTwo.setChecked(True)
+ checkboxShowRefinery = QCheckBox("Refinery")
+ showVBox = QVBoxLayout()
+ showVBox.addWidget(checkboxShowOilRigOne)
+ showVBox.addWidget(checkboxShowOilRigTwo)
+ showVBox.addWidget(checkboxShowRefinery)
+ showGroupBox.setLayout(showVBox)
+ visualsGroupBox = QGroupBox("Visuals")
+ visualsGroupBox.setVisible(False)
+ checkboxVisualsSeeThrough = QCheckBox("See-Through")
+ checkboxHighlightOil = QCheckBox("Highlight Oil")
+ checkboxShowShadows = QCheckBox("Shadows")
+ checkboxShowShadows.setChecked(True)
+ visualVBox = QVBoxLayout(visualsGroupBox)
+ visualVBox.addWidget(checkboxVisualsSeeThrough)
+ visualVBox.addWidget(checkboxHighlightOil)
+ visualVBox.addWidget(checkboxShowShadows)
+ labelSelection = QLabel("Selection:")
+ labelSelection.setVisible(False)
+ labelSelectedItem = QLabel("Nothing")
+ labelSelectedItem.setVisible(False)
+ # Textured topography heightmap
+ enableTexture = QCheckBox("Surface texture")
+ enableTexture.setVisible(False)
+
+ label = QLabel(self._surfaceWidget)
+ label.setPixmap(highlightPixmap())
+ heightMapGroupBox = QGroupBox("Highlight color map")
+ colorMapVBox = QVBoxLayout()
+ colorMapVBox.addWidget(label)
+ heightMapGroupBox.setLayout(colorMapVBox)
+ heightMapGroupBox.setVisible(False)
+ # Populate vertical layout
+ # Common
+ vLayout.addWidget(modelGroupBox)
+ vLayout.addWidget(selectionGroupBox)
+ vLayout.addWidget(axisGroupBox)
+ # Sqrt Sin
+ vLayout.addWidget(colorGroupBox)
+ # Multiseries heightmap
+ vLayout.addWidget(showGroupBox)
+ vLayout.addWidget(visualsGroupBox)
+ vLayout.addWidget(labelSelection)
+ vLayout.addWidget(labelSelectedItem)
+ # Textured topography
+ vLayout.addWidget(heightMapGroupBox)
+ vLayout.addWidget(enableTexture)
+ # Create the controller
+ modifier = SurfaceGraphModifier(self._surfaceGraph, labelSelectedItem, self)
+ # Connect widget controls to controller
+ heightMapModelRB.toggled.connect(modifier.enableHeightMapModel)
+ sqrtSinModelRB.toggled.connect(modifier.enableSqrtSinModel)
+ texturedModelRB.toggled.connect(modifier.enableTopographyModel)
+ modeNoneRB.toggled.connect(modifier.toggleModeNone)
+ modeItemRB.toggled.connect(modifier.toggleModeItem)
+ modeSliceRowRB.toggled.connect(modifier.toggleModeSliceRow)
+ modeSliceColumnRB.toggled.connect(modifier.toggleModeSliceColumn)
+ axisMinSliderX.valueChanged.connect(modifier.adjustXMin)
+ axisMaxSliderX.valueChanged.connect(modifier.adjustXMax)
+ axisMinSliderZ.valueChanged.connect(modifier.adjustZMin)
+ axisMaxSliderZ.valueChanged.connect(modifier.adjustZMax)
+ # Mode dependent connections
+ gradientBtoYPB.pressed.connect(modifier.setBlackToYellowGradient)
+ gradientGtoRPB.pressed.connect(modifier.setGreenToRedGradient)
+ checkboxShowOilRigOne.stateChanged.connect(modifier.toggleItemOne)
+ checkboxShowOilRigTwo.stateChanged.connect(modifier.toggleItemTwo)
+ checkboxShowRefinery.stateChanged.connect(modifier.toggleItemThree)
+ checkboxVisualsSeeThrough.stateChanged.connect(modifier.toggleSeeThrough)
+ checkboxHighlightOil.stateChanged.connect(modifier.toggleOilHighlight)
+ checkboxShowShadows.stateChanged.connect(modifier.toggleShadows)
+ enableTexture.stateChanged.connect(modifier.toggleSurfaceTexture)
+ # Connections to disable features depending on mode
+ sqrtSinModelRB.toggled.connect(colorGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(showGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(visualsGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(labelSelection.setVisible)
+ heightMapModelRB.toggled.connect(labelSelectedItem.setVisible)
+ texturedModelRB.toggled.connect(enableTexture.setVisible)
+ texturedModelRB.toggled.connect(heightMapGroupBox.setVisible)
+ modifier.setAxisMinSliderX(axisMinSliderX)
+ modifier.setAxisMaxSliderX(axisMaxSliderX)
+ modifier.setAxisMinSliderZ(axisMinSliderZ)
+ modifier.setAxisMaxSliderZ(axisMaxSliderZ)
+ sqrtSinModelRB.setChecked(True)
+ modeItemRB.setChecked(True)
+ enableTexture.setChecked(True)
+ return True
+
+ def surfaceWidget(self):
+ return self._surfaceWidget
diff --git a/examples/datavisualization/graphgallery/surfacegraphmodifier.py b/examples/datavisualization/graphgallery/surfacegraphmodifier.py
new file mode 100644
index 000000000..68499fac8
--- /dev/null
+++ b/examples/datavisualization/graphgallery/surfacegraphmodifier.py
@@ -0,0 +1,643 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from math import sqrt, sin
+from pathlib import Path
+
+from PySide6.QtCore import QObject, QPropertyAnimation, Qt, Slot
+from PySide6.QtGui import (QColor, QFont, QImage, QLinearGradient,
+ QQuaternion, QVector3D)
+from PySide6.QtDataVisualization import (QAbstract3DGraph, QCustom3DItem,
+ QCustom3DLabel,
+ QHeightMapSurfaceDataProxy,
+ QValue3DAxis, QSurfaceDataItem,
+ QSurfaceDataProxy, QSurface3DSeries,
+ Q3DInputHandler, Q3DCamera, Q3DTheme)
+
+
+from highlightseries import HighlightSeries
+from topographicseries import TopographicSeries
+from custominputhandler import CustomInputHandler
+
+
+SAMPLE_COUNT_X = 150
+SAMPLE_COUNT_Z = 150
+HEIGHTMAP_GRID_STEP_X = 6
+HEIGHTMAP_GRID_STEP_Z = 6
+SAMPLE_MIN = -8.0
+SAMPLE_MAX = 8.0
+
+AREA_WIDTH = 8000.0
+AREA_HEIGHT = 8000.0
+ASPECT_RATIO = 0.1389
+MIN_RANGE = AREA_WIDTH * 0.49
+
+
+class SurfaceGraphModifier(QObject):
+
+ def __init__(self, surface, label, parent):
+ super().__init__(parent)
+ self._data_path = Path(__file__).resolve().parent / "data"
+ self._graph = surface
+ self._textField = label
+ self._sqrtSinProxy = None
+ self._sqrtSinSeries = None
+ self._heightMapProxyOne = None
+ self._heightMapProxyTwo = None
+ self._heightMapProxyThree = None
+ self._heightMapSeriesOne = None
+ self._heightMapSeriesTwo = None
+ self._heightMapSeriesThree = None
+
+ self._axisMinSliderX = None
+ self._axisMaxSliderX = None
+ self._axisMinSliderZ = None
+ self._axisMaxSliderZ = None
+ self._rangeMinX = 0.0
+ self._rangeMinZ = 0.0
+ self._stepX = 0.0
+ self._stepZ = 0.0
+ self._heightMapWidth = 0
+ self._heightMapHeight = 0
+
+ self._selectionAnimation = None
+ self._titleLabel = None
+ self._previouslyAnimatedItem = None
+ self._previousScaling = {}
+
+ self._topography = None
+ self._highlight = None
+ self._highlightWidth = 0
+ self._highlightHeight = 0
+
+ self._customInputHandler = None
+ self._defaultInputHandler = Q3DInputHandler()
+
+ ac = self._graph.scene().activeCamera()
+ ac.setZoomLevel(85.0)
+ ac.setCameraPreset(Q3DCamera.CameraPresetIsometricRight)
+ self._graph.activeTheme().setType(Q3DTheme.ThemeRetro)
+
+ self._x_axis = QValue3DAxis()
+ self._y_axis = QValue3DAxis()
+ self._z_axis = QValue3DAxis()
+ self._graph.setAxisX(self._x_axis)
+ self._graph.setAxisY(self._y_axis)
+ self._graph.setAxisZ(self._z_axis)
+
+ #
+ # Sqrt Sin
+ #
+ self._sqrtSinProxy = QSurfaceDataProxy()
+ self._sqrtSinSeries = QSurface3DSeries(self._sqrtSinProxy)
+ self.fillSqrtSinProxy()
+
+ #
+ # Multisurface heightmap
+ #
+ # Create the first surface layer
+ heightMapImageOne = QImage(self._data_path / "layer_1.png")
+ self._heightMapProxyOne = QHeightMapSurfaceDataProxy(heightMapImageOne)
+ self._heightMapSeriesOne = QSurface3DSeries(self._heightMapProxyOne)
+ self._heightMapSeriesOne.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyOne.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ # Create the other 2 surface layers
+ heightMapImageTwo = QImage(self._data_path / "layer_2.png")
+ self._heightMapProxyTwo = QHeightMapSurfaceDataProxy(heightMapImageTwo)
+ self._heightMapSeriesTwo = QSurface3DSeries(self._heightMapProxyTwo)
+ self._heightMapSeriesTwo.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyTwo.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ heightMapImageThree = QImage(self._data_path / "layer_3.png")
+ self._heightMapProxyThree = QHeightMapSurfaceDataProxy(heightMapImageThree)
+ self._heightMapSeriesThree = QSurface3DSeries(self._heightMapProxyThree)
+ self._heightMapSeriesThree.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyThree.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ # The images are the same size, so it's enough to get the dimensions
+ # from one
+ self._heightMapWidth = heightMapImageOne.width()
+ self._heightMapHeight = heightMapImageOne.height()
+
+ # Set the gradients for multi-surface layers
+ grOne = QLinearGradient()
+ grOne.setColorAt(0.0, Qt.black)
+ grOne.setColorAt(0.38, Qt.darkYellow)
+ grOne.setColorAt(0.39, Qt.darkGreen)
+ grOne.setColorAt(0.5, Qt.darkGray)
+ grOne.setColorAt(1.0, Qt.gray)
+ self._heightMapSeriesOne.setBaseGradient(grOne)
+ self._heightMapSeriesOne.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ grTwo = QLinearGradient()
+ grTwo.setColorAt(0.39, Qt.blue)
+ grTwo.setColorAt(0.4, Qt.white)
+ self._heightMapSeriesTwo.setBaseGradient(grTwo)
+ self._heightMapSeriesTwo.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.white)
+ grThree.setColorAt(0.05, Qt.black)
+ self._heightMapSeriesThree.setBaseGradient(grThree)
+ self._heightMapSeriesThree.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ # Custom items and label
+ self._graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ self._selectionAnimation = QPropertyAnimation(self)
+ self._selectionAnimation.setPropertyName(b"scaling")
+ self._selectionAnimation.setDuration(500)
+ self._selectionAnimation.setLoopCount(-1)
+
+ titleFont = QFont("Century Gothic", 30)
+ titleFont.setBold(True)
+ self._titleLabel = QCustom3DLabel("Oil Rigs on Imaginary Sea", titleFont,
+ QVector3D(0.0, 1.2, 0.0),
+ QVector3D(1.0, 1.0, 0.0),
+ QQuaternion())
+ self._titleLabel.setPositionAbsolute(True)
+ self._titleLabel.setFacingCamera(True)
+ self._titleLabel.setBackgroundColor(QColor(0x66cdaa))
+ self._graph.addCustomItem(self._titleLabel)
+ self._titleLabel.setVisible(False)
+
+ # Make two of the custom object visible
+ self.toggleItemOne(True)
+ self.toggleItemTwo(True)
+
+ #
+ # Topographic map
+ #
+ self._topography = TopographicSeries()
+ file_name = os.fspath(self._data_path / "topography.png")
+ self._topography.setTopographyFile(file_name, AREA_WIDTH, AREA_HEIGHT)
+ self._topography.setItemLabelFormat("@yLabel m")
+
+ self._highlight = HighlightSeries()
+ self._highlight.setTopographicSeries(self._topography)
+ self._highlight.setMinHeight(MIN_RANGE * ASPECT_RATIO)
+ self._highlight.handleGradientChange(AREA_WIDTH * ASPECT_RATIO)
+ self._graph.axisY().maxChanged.connect(self._highlight.handleGradientChange)
+
+ self._customInputHandler = CustomInputHandler(self._graph)
+ self._customInputHandler.setHighlightSeries(self._highlight)
+ self._customInputHandler.setAxes(self._x_axis, self._y_axis, self._z_axis)
+ self._customInputHandler.setLimits(0.0, AREA_WIDTH, MIN_RANGE)
+ self._customInputHandler.setAspectRatio(ASPECT_RATIO)
+
+ def fillSqrtSinProxy(self):
+ stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+
+ dataArray = []
+ for i in range(0, SAMPLE_COUNT_Z):
+ newRow = []
+ # Keep values within range bounds, since just adding step can
+ # cause minor drift due to the rounding errors.
+ z = min(SAMPLE_MAX, (i * stepZ + SAMPLE_MIN))
+ for j in range(0, SAMPLE_COUNT_X):
+ x = min(SAMPLE_MAX, (j * stepX + SAMPLE_MIN))
+ R = sqrt(z * z + x * x) + 0.01
+ y = (sin(R) / R + 0.24) * 1.61
+ item = QSurfaceDataItem(QVector3D(x, y, z))
+ newRow.append(item)
+ dataArray.append(newRow)
+ self._sqrtSinProxy.resetArray(dataArray)
+
+ @Slot(bool)
+ def enableSqrtSinModel(self, enable):
+ if enable:
+ self._sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
+ self._sqrtSinSeries.setFlatShadingEnabled(True)
+
+ self._graph.axisX().setLabelFormat("%.2f")
+ self._graph.axisZ().setLabelFormat("%.2f")
+ self._graph.axisX().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self._graph.axisY().setRange(0.0, 2.0)
+ self._graph.axisZ().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self._graph.axisX().setLabelAutoRotation(30.0)
+ self._graph.axisY().setLabelAutoRotation(90.0)
+ self._graph.axisZ().setLabelAutoRotation(30.0)
+
+ self._graph.removeSeries(self._heightMapSeriesOne)
+ self._graph.removeSeries(self._heightMapSeriesTwo)
+ self._graph.removeSeries(self._heightMapSeriesThree)
+ self._graph.removeSeries(self._topography)
+ self._graph.removeSeries(self._highlight)
+
+ self._graph.addSeries(self._sqrtSinSeries)
+
+ self._titleLabel.setVisible(False)
+ self._graph.axisX().setTitleVisible(False)
+ self._graph.axisY().setTitleVisible(False)
+ self._graph.axisZ().setTitleVisible(False)
+
+ self._graph.axisX().setTitle("")
+ self._graph.axisY().setTitle("")
+ self._graph.axisZ().setTitle("")
+
+ self._graph.setActiveInputHandler(self._defaultInputHandler)
+
+ # Reset range sliders for Sqrt & Sin
+ self._rangeMinX = SAMPLE_MIN
+ self._rangeMinZ = SAMPLE_MIN
+ self._stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ self._stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(SAMPLE_COUNT_X - 2)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(1)
+ self._axisMaxSliderX.setMaximum(SAMPLE_COUNT_X - 1)
+ self._axisMaxSliderX.setValue(SAMPLE_COUNT_X - 1)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(SAMPLE_COUNT_Z - 2)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(1)
+ self._axisMaxSliderZ.setMaximum(SAMPLE_COUNT_Z - 1)
+ self._axisMaxSliderZ.setValue(SAMPLE_COUNT_Z - 1)
+
+ @Slot(bool)
+ def enableHeightMapModel(self, enable):
+ if enable:
+ self._heightMapSeriesOne.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesOne.setFlatShadingEnabled(False)
+ self._heightMapSeriesTwo.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesTwo.setFlatShadingEnabled(False)
+ self._heightMapSeriesThree.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesThree.setFlatShadingEnabled(False)
+
+ self._graph.axisX().setLabelFormat("%.1f N")
+ self._graph.axisZ().setLabelFormat("%.1f E")
+ self._graph.axisX().setRange(34.0, 40.0)
+ self._graph.axisY().setAutoAdjustRange(True)
+ self._graph.axisZ().setRange(18.0, 24.0)
+
+ self._graph.axisX().setTitle("Latitude")
+ self._graph.axisY().setTitle("Height")
+ self._graph.axisZ().setTitle("Longitude")
+
+ self._graph.removeSeries(self._sqrtSinSeries)
+ self._graph.removeSeries(self._topography)
+ self._graph.removeSeries(self._highlight)
+ self._graph.addSeries(self._heightMapSeriesOne)
+ self._graph.addSeries(self._heightMapSeriesTwo)
+ self._graph.addSeries(self._heightMapSeriesThree)
+
+ self._graph.setActiveInputHandler(self._defaultInputHandler)
+
+ self._titleLabel.setVisible(True)
+ self._graph.axisX().setTitleVisible(True)
+ self._graph.axisY().setTitleVisible(True)
+ self._graph.axisZ().setTitleVisible(True)
+
+ # Reset range sliders for height map
+ mapGridCountX = self._heightMapWidth / HEIGHTMAP_GRID_STEP_X
+ mapGridCountZ = self._heightMapHeight / HEIGHTMAP_GRID_STEP_Z
+ self._rangeMinX = 34.0
+ self._rangeMinZ = 18.0
+ self._stepX = 6.0 / float(mapGridCountX - 1)
+ self._stepZ = 6.0 / float(mapGridCountZ - 1)
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(mapGridCountX - 2)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(1)
+ self._axisMaxSliderX.setMaximum(mapGridCountX - 1)
+ self._axisMaxSliderX.setValue(mapGridCountX - 1)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(mapGridCountZ - 2)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(1)
+ self._axisMaxSliderZ.setMaximum(mapGridCountZ - 1)
+ self._axisMaxSliderZ.setValue(mapGridCountZ - 1)
+
+ @Slot(bool)
+ def enableTopographyModel(self, enable):
+ if enable:
+ self._graph.axisX().setLabelFormat("%i")
+ self._graph.axisZ().setLabelFormat("%i")
+ self._graph.axisX().setRange(0.0, AREA_WIDTH)
+ self._graph.axisY().setRange(100.0, AREA_WIDTH * ASPECT_RATIO)
+ self._graph.axisZ().setRange(0.0, AREA_HEIGHT)
+ self._graph.axisX().setLabelAutoRotation(30.0)
+ self._graph.axisY().setLabelAutoRotation(90.0)
+ self._graph.axisZ().setLabelAutoRotation(30.0)
+
+ self._graph.removeSeries(self._heightMapSeriesOne)
+ self._graph.removeSeries(self._heightMapSeriesTwo)
+ self._graph.removeSeries(self._heightMapSeriesThree)
+ self._graph.addSeries(self._topography)
+ self._graph.addSeries(self._highlight)
+
+ self._titleLabel.setVisible(False)
+ self._graph.axisX().setTitleVisible(False)
+ self._graph.axisY().setTitleVisible(False)
+ self._graph.axisZ().setTitleVisible(False)
+
+ self._graph.axisX().setTitle("")
+ self._graph.axisY().setTitle("")
+ self._graph.axisZ().setTitle("")
+
+ self._graph.setActiveInputHandler(self._customInputHandler)
+
+ # Reset range sliders for topography map
+ self._rangeMinX = 0.0
+ self._rangeMinZ = 0.0
+ self._stepX = 1.0
+ self._stepZ = 1.0
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(AREA_WIDTH - 200)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(200)
+ self._axisMaxSliderX.setMaximum(AREA_WIDTH)
+ self._axisMaxSliderX.setValue(AREA_WIDTH)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(AREA_HEIGHT - 200)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(200)
+ self._axisMaxSliderZ.setMaximum(AREA_HEIGHT)
+ self._axisMaxSliderZ.setValue(AREA_HEIGHT)
+
+ def adjustXMin(self, min):
+ minX = self._stepX * float(min) + self._rangeMinX
+
+ max = self._axisMaxSliderX.value()
+ if min >= max:
+ max = min + 1
+ self._axisMaxSliderX.setValue(max)
+
+ maxX = self._stepX * max + self._rangeMinX
+
+ self.setAxisXRange(minX, maxX)
+
+ def adjustXMax(self, max):
+ maxX = self._stepX * float(max) + self._rangeMinX
+
+ min = self._axisMinSliderX.value()
+ if max <= min:
+ min = max - 1
+ self._axisMinSliderX.setValue(min)
+
+ minX = self._stepX * min + self._rangeMinX
+
+ self.setAxisXRange(minX, maxX)
+
+ def adjustZMin(self, min):
+ minZ = self._stepZ * float(min) + self._rangeMinZ
+
+ max = self._axisMaxSliderZ.value()
+ if min >= max:
+ max = min + 1
+ self._axisMaxSliderZ.setValue(max)
+
+ maxZ = self._stepZ * max + self._rangeMinZ
+
+ self.setAxisZRange(minZ, maxZ)
+
+ def adjustZMax(self, max):
+ maxX = self._stepZ * float(max) + self._rangeMinZ
+
+ min = self._axisMinSliderZ.value()
+ if max <= min:
+ min = max - 1
+ self._axisMinSliderZ.setValue(min)
+
+ minX = self._stepZ * min + self._rangeMinZ
+
+ self.setAxisZRange(minX, maxX)
+
+ def setAxisXRange(self, min, max):
+ self._graph.axisX().setRange(min, max)
+
+ def setAxisZRange(self, min, max):
+ self._graph.axisZ().setRange(min, max)
+
+ def setBlackToYellowGradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.black)
+ gr.setColorAt(0.33, Qt.blue)
+ gr.setColorAt(0.67, Qt.red)
+ gr.setColorAt(1.0, Qt.yellow)
+
+ self._sqrtSinSeries.setBaseGradient(gr)
+ self._sqrtSinSeries.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ def setGreenToRedGradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.darkGreen)
+ gr.setColorAt(0.5, Qt.yellow)
+ gr.setColorAt(0.8, Qt.red)
+ gr.setColorAt(1.0, Qt.darkRed)
+
+ self._sqrtSinSeries.setBaseGradient(gr)
+ self._sqrtSinSeries.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ @Slot(bool)
+ def toggleItemOne(self, show):
+ positionOne = QVector3D(39.0, 77.0, 19.2)
+ positionOnePipe = QVector3D(39.0, 45.0, 19.2)
+ positionOneLabel = QVector3D(39.0, 107.0, 19.2)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.red)
+ file_name = os.fspath(self._data_path / "oilrig.obj")
+ item = QCustom3DItem(file_name, positionOne,
+ QVector3D(0.025, 0.025, 0.025),
+ QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 45.0),
+ color)
+ self._graph.addCustomItem(item)
+ file_name = os.fspath(self._data_path / "pipe.obj")
+ item = QCustom3DItem(file_name, positionOnePipe,
+ QVector3D(0.005, 0.5, 0.005), QQuaternion(),
+ color)
+ item.setShadowCasting(False)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Oil Rig One")
+ label.setPosition(positionOneLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionOne)
+ self._graph.removeCustomItemAt(positionOnePipe)
+ self._graph.removeCustomItemAt(positionOneLabel)
+
+ @Slot(bool)
+ def toggleItemTwo(self, show):
+ positionTwo = QVector3D(34.5, 77.0, 23.4)
+ positionTwoPipe = QVector3D(34.5, 45.0, 23.4)
+ positionTwoLabel = QVector3D(34.5, 107.0, 23.4)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.red)
+ item = QCustom3DItem()
+ file_name = os.fspath(self._data_path / "oilrig.obj")
+ item.setMeshFile(file_name)
+ item.setPosition(positionTwo)
+ item.setScaling(QVector3D(0.025, 0.025, 0.025))
+ item.setRotation(QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 25.0))
+ item.setTextureImage(color)
+ self._graph.addCustomItem(item)
+ file_name = os.fspath(self._data_path / "pipe.obj")
+ item = QCustom3DItem(file_name, positionTwoPipe,
+ QVector3D(0.005, 0.5, 0.005), QQuaternion(),
+ color)
+ item.setShadowCasting(False)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Oil Rig Two")
+ label.setPosition(positionTwoLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionTwo)
+ self._graph.removeCustomItemAt(positionTwoPipe)
+ self._graph.removeCustomItemAt(positionTwoLabel)
+
+ @Slot(bool)
+ def toggleItemThree(self, show):
+ positionThree = QVector3D(34.5, 86.0, 19.1)
+ positionThreeLabel = QVector3D(34.5, 116.0, 19.1)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.darkMagenta)
+ item = QCustom3DItem()
+ file_name = os.fspath(self._data_path / "refinery.obj")
+ item.setMeshFile(file_name)
+ item.setPosition(positionThree)
+ item.setScaling(QVector3D(0.04, 0.04, 0.04))
+ item.setRotation(QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 75.0))
+ item.setTextureImage(color)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Refinery")
+ label.setPosition(positionThreeLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionThree)
+ self._graph.removeCustomItemAt(positionThreeLabel)
+
+ @Slot(bool)
+ def toggleSeeThrough(self, seethrough):
+ s0 = self._graph.seriesList()[0]
+ s1 = self._graph.seriesList()[1]
+ if seethrough:
+ s0.setDrawMode(QSurface3DSeries.DrawWireframe)
+ s1.setDrawMode(QSurface3DSeries.DrawWireframe)
+ else:
+ s0.setDrawMode(QSurface3DSeries.DrawSurface)
+ s1.setDrawMode(QSurface3DSeries.DrawSurface)
+
+ @Slot(bool)
+ def toggleOilHighlight(self, highlight):
+ s2 = self._graph.seriesList()[2]
+ if highlight:
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.black)
+ grThree.setColorAt(0.05, Qt.red)
+ s2.setBaseGradient(grThree)
+ else:
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.white)
+ grThree.setColorAt(0.05, Qt.black)
+ s2.setBaseGradient(grThree)
+
+ @Slot(bool)
+ def toggleShadows(self, shadows):
+ sq = (QAbstract3DGraph.ShadowQualityMedium
+ if shadows else QAbstract3DGraph.ShadowQualityNone)
+ self._graph.setShadowQuality(sq)
+
+ @Slot(bool)
+ def toggleSurfaceTexture(self, enable):
+ if enable:
+ file_name = os.fspath(self._data_path / "maptexture.jpg")
+ self._topography.setTextureFile(file_name)
+ else:
+ self._topography.setTextureFile("")
+
+ def handleElementSelected(self, type):
+ self.resetSelection()
+ if type == QAbstract3DGraph.ElementCustomItem:
+ item = self._graph.selectedCustomItem()
+ text = ""
+ if isinstance(item, QCustom3DItem):
+ text += "Custom label: "
+ else:
+ file = item.meshFile().split("/")[-1]
+ text += f"{file}: "
+
+ text += str(self._graph.selectedCustomItemIndex())
+ self._textField.setText(text)
+ self._previouslyAnimatedItem = item
+ self._previousScaling = item.scaling()
+ self._selectionAnimation.setTargetObject(item)
+ self._selectionAnimation.setStartValue(item.scaling())
+ self._selectionAnimation.setEndValue(item.scaling() * 1.5)
+ self._selectionAnimation.start()
+ elif type == QAbstract3DGraph.ElementSeries:
+ text = "Surface ("
+ series = self._graph.selectedSeries()
+ if series:
+ point = series.selectedPoint()
+ text += f"{point.x()}, {point.y()}"
+ text += ")"
+ self._textField.setText(text)
+ elif (type.value > QAbstract3DGraph.ElementSeries.value
+ and type < QAbstract3DGraph.ElementCustomItem.value):
+ index = self._graph.selectedLabelIndex()
+ text = ""
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ text += "Axis X label: "
+ elif type == QAbstract3DGraph.ElementAxisYLabel:
+ text += "Axis Y label: "
+ else:
+ text += "Axis Z label: "
+ text += str(index)
+ self._textField.setText(text)
+ else:
+ self._textField.setText("Nothing")
+
+ def resetSelection(self):
+ self._selectionAnimation.stop()
+ if self._previouslyAnimatedItem:
+ self._previouslyAnimatedItem.setScaling(self._previousScaling)
+ self._previouslyAnimatedItem = None
+
+ def toggleModeNone(self):
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
+
+ def toggleModeItem(self):
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
+
+ def toggleModeSliceRow(self):
+ sm = (QAbstract3DGraph.SelectionItemAndRow
+ | QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionMultiSeries)
+ self._graph.setSelectionMode(sm)
+
+ def toggleModeSliceColumn(self):
+ sm = (QAbstract3DGraph.SelectionItemAndColumn
+ | QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionMultiSeries)
+ self._graph.setSelectionMode(sm)
+
+ def setAxisMinSliderX(self, slider):
+ self._axisMinSliderX = slider
+
+ def setAxisMaxSliderX(self, slider):
+ self._axisMaxSliderX = slider
+
+ def setAxisMinSliderZ(self, slider):
+ self._axisMinSliderZ = slider
+
+ def setAxisMaxSliderZ(self, slider):
+ self._axisMaxSliderZ = slider
diff --git a/examples/datavisualization/graphgallery/topographicseries.py b/examples/datavisualization/graphgallery/topographicseries.py
new file mode 100644
index 000000000..350edcb4f
--- /dev/null
+++ b/examples/datavisualization/graphgallery/topographicseries.py
@@ -0,0 +1,57 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QImage, QVector3D
+from PySide6.QtDataVisualization import (QSurface3DSeries, QSurfaceDataItem)
+
+
+# Value used to encode height data as RGB value on PNG file
+PACKING_FACTOR = 11983.0
+
+
+class TopographicSeries(QSurface3DSeries):
+
+ def __init__(self):
+ super().__init__()
+ self._sampleCountX = 0.0
+ self._sampleCountZ = 0.0
+ self.setDrawMode(QSurface3DSeries.DrawSurface)
+ self.setFlatShadingEnabled(True)
+ self.setBaseColor(Qt.white)
+
+ def sampleCountX(self):
+ return self._sampleCountX
+
+ def sampleCountZ(self):
+ return self._sampleCountZ
+
+ def setTopographyFile(self, file, width, height):
+ heightMapImage = QImage(file)
+ bits = heightMapImage.bits()
+ imageHeight = heightMapImage.height()
+ imageWidth = heightMapImage.width()
+ widthBits = imageWidth * 4
+ stepX = width / float(imageWidth)
+ stepZ = height / float(imageHeight)
+
+ dataArray = []
+ for i in range(0, imageHeight):
+ p = i * widthBits
+ z = height - float(i) * stepZ
+ newRow = []
+ for j in range(0, imageWidth):
+ aa = bits[p + 0]
+ rr = bits[p + 1]
+ gg = bits[p + 2]
+ color = (gg << 16) + (rr << 8) + aa
+ y = float(color) / PACKING_FACTOR
+ item = QSurfaceDataItem(QVector3D(float(j) * stepX, y, z))
+ newRow.append(item)
+ p += 4
+ dataArray.append(newRow)
+
+ self.dataProxy().resetArray(dataArray)
+
+ self._sampleCountX = float(imageWidth)
+ self._sampleCountZ = float(imageHeight)
diff --git a/examples/datavisualization/graphgallery/variantbardatamapping.py b/examples/datavisualization/graphgallery/variantbardatamapping.py
new file mode 100644
index 000000000..50bdefa6a
--- /dev/null
+++ b/examples/datavisualization/graphgallery/variantbardatamapping.py
@@ -0,0 +1,67 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Signal
+
+
+class VariantBarDataMapping(QObject):
+
+ rowIndexChanged = Signal()
+ columnIndexChanged = Signal()
+ valueIndexChanged = Signal()
+ rowCategoriesChanged = Signal()
+ columnCategoriesChanged = Signal()
+ mappingChanged = Signal()
+
+ def __init__(self, rowIndex, columnIndex, valueIndex,
+ rowCategories=[], columnCategories=[]):
+ super().__init__(None)
+ self._rowIndex = rowIndex
+ self._columnIndex = columnIndex
+ self._valueIndex = valueIndex
+ self._rowCategories = rowCategories
+ self._columnCategories = columnCategories
+
+ def setRowIndex(self, index):
+ self._rowIndex = index
+ self.mappingChanged.emit()
+
+ def rowIndex(self):
+ return self._rowIndex
+
+ def setColumnIndex(self, index):
+ self._columnIndex = index
+ self.mappingChanged.emit()
+
+ def columnIndex(self):
+ return self._columnIndex
+
+ def setValueIndex(self, index):
+ self._valueIndex = index
+ self.mappingChanged.emit()
+
+ def valueIndex(self):
+ return self._valueIndex
+
+ def setRowCategories(self, categories):
+ self._rowCategories = categories
+ self.mappingChanged.emit()
+
+ def rowCategories(self):
+ return self._rowCategories
+
+ def setColumnCategories(self, categories):
+ self._columnCategories = categories
+ self.mappingChanged.emit()
+
+ def columnCategories(self):
+ return self._columnCategories
+
+ def remap(self, rowIndex, columnIndex, valueIndex,
+ rowCategories=[], columnCategories=[]):
+ self._rowIndex = rowIndex
+ self._columnIndex = columnIndex
+ self._valueIndex = valueIndex
+ self._rowCategories = rowCategories
+ self._columnCategories = columnCategories
+ self.mappingChanged.emit()
diff --git a/examples/datavisualization/graphgallery/variantbardataproxy.py b/examples/datavisualization/graphgallery/variantbardataproxy.py
new file mode 100644
index 000000000..f69ebaf80
--- /dev/null
+++ b/examples/datavisualization/graphgallery/variantbardataproxy.py
@@ -0,0 +1,100 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot
+from PySide6.QtDataVisualization import QBarDataProxy, QBarDataItem
+
+
+class VariantBarDataProxy(QBarDataProxy):
+
+ def __init__(self):
+ super().__init__()
+ self._dataSet = None
+ self._mapping = None
+
+ def setDataSet(self, newSet):
+ if self._dataSet:
+ self._dataSet.itemsAdded.disconnect(self.handleItemsAdded)
+ self._dataSet.dataCleared.disconnect(self.handleDataCleared)
+
+ self._dataSet = newSet
+
+ if self._dataSet:
+ self._dataSet.itemsAdded.connect(self.handleItemsAdded)
+ self._dataSet.dataCleared.connect(self.handleDataCleared)
+ self.resolveDataSet()
+
+ def dataSet(self):
+ return self._dataSet.data()
+
+ # Map key (row, column, value) to value index in data item (VariantItem).
+ # Doesn't gain ownership of mapping, but does connect to it to listen for
+ # mapping changes. Modifying mapping that is set to proxy will trigger
+ # dataset re-resolving.
+ def setMapping(self, mapping):
+ if self._mapping:
+ self._mapping.mappingChanged.disconnect(self.handleMappingChanged)
+
+ self._mapping = mapping
+
+ if self._mapping:
+ self._mapping.mappingChanged.connect(self.handleMappingChanged)
+
+ self.resolveDataSet()
+
+ def mapping(self):
+ return self._mapping.data()
+
+ @Slot(int, int)
+ def handleItemsAdded(self, index, count):
+ # Resolve new items
+ self.resolveDataSet()
+
+ @Slot()
+ def handleDataCleared(self):
+ # Data cleared, reset array
+ self.resetArray(None)
+
+ @Slot()
+ def handleMappingChanged(self):
+ self.resolveDataSet()
+
+ # Resolve entire dataset into QBarDataArray.
+ def resolveDataSet(self):
+ # If we have no data or mapping, or the categories are not defined,
+ # simply clear the array
+ if (not self._dataSet or not self._mapping
+ or not self._mapping.rowCategories()
+ or not self._mapping.columnCategories()):
+ self.resetArray()
+ return
+
+ itemList = self._dataSet.itemList()
+
+ rowIndex = self._mapping.rowIndex()
+ columnIndex = self._mapping.columnIndex()
+ valueIndex = self._mapping.valueIndex()
+ rowList = self._mapping.rowCategories()
+ columnList = self._mapping.columnCategories()
+
+ # Sort values into rows and columns
+ itemValueMap = {}
+ for item in itemList:
+ key = str(item[rowIndex])
+ v = itemValueMap.get(key)
+ if not v:
+ v = {}
+ itemValueMap[key] = v
+ v[str(item[columnIndex])] = float(item[valueIndex])
+
+ # Create a new data array in format the parent class understands
+ newProxyArray = []
+ for rowKey in rowList:
+ newProxyRow = []
+ for i in range(0, len(columnList)):
+ item = QBarDataItem(itemValueMap[rowKey][columnList[i]])
+ newProxyRow.append(item)
+ newProxyArray.append(newProxyRow)
+
+ # Finally, reset the data array in the parent class
+ self.resetArray(newProxyArray)
diff --git a/examples/datavisualization/graphgallery/variantdataset.py b/examples/datavisualization/graphgallery/variantdataset.py
new file mode 100644
index 000000000..752bc3887
--- /dev/null
+++ b/examples/datavisualization/graphgallery/variantdataset.py
@@ -0,0 +1,39 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Signal
+
+
+class VariantDataSet(QObject):
+
+ itemsAdded = Signal(int, int)
+ dataCleared = Signal()
+
+ def __init__(self):
+ super().__init__()
+ self._variantData = []
+
+ def clear(self):
+ for item in self._variantData:
+ item.clear()
+ del item
+
+ self._variantData.clear()
+ self.dataCleared.emit()
+
+ def addItem(self, item):
+ self._variantData.append(item)
+ addIndex = len(self._variantData)
+
+ self.itemsAdded.emit(addIndex, 1)
+ return addIndex
+
+ def addItems(self, itemList):
+ newCount = len(itemList)
+ addIndex = len(self._variantData)
+ self._variantData.extend(itemList)
+ self.itemsAdded.emit(addIndex, newCount)
+ return addIndex
+
+ def itemList(self):
+ return self._variantData
diff --git a/examples/datavisualization/qmlsurfacegallery/datasource.py b/examples/datavisualization/qmlsurfacegallery/datasource.py
new file mode 100644
index 000000000..aca2a6ab8
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/datasource.py
@@ -0,0 +1,99 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from math import sin, pi
+
+from PySide6.QtCore import QObject, QRandomGenerator, Slot
+from PySide6.QtQml import QmlElement
+from PySide6.QtGui import QVector3D
+from PySide6.QtDataVisualization import QSurfaceDataItem, QSurface3DSeries
+
+
+QML_IMPORT_NAME = "SurfaceGallery"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class DataSource(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_index = -1
+ self.m_resetArray = None
+ self.m_data = []
+
+ @Slot(int, int, int, float, float, float, float, float, float)
+ def generateData(self, cacheCount, rowCount, columnCount,
+ xMin, xMax, yMin, yMax, zMin, zMax):
+ if not cacheCount or not rowCount or not columnCount:
+ return
+
+ self.clearData()
+
+ xRange = xMax - xMin
+ yRange = yMax - yMin
+ zRange = zMax - zMin
+ cacheIndexStep = columnCount / cacheCount
+ cacheStep = float(cacheIndexStep) * xRange / float(columnCount)
+
+ # Populate caches
+ self.m_data = []
+ rand_gen = QRandomGenerator.global_()
+ for i in range(0, cacheCount):
+ cache = []
+ cacheXAdjustment = cacheStep * i
+ cacheIndexAdjustment = cacheIndexStep * i
+ for j in range(0, rowCount):
+ row = []
+ rowMod = (float(j)) / float(rowCount)
+ yRangeMod = yRange * rowMod
+ zRangeMod = zRange * rowMod
+ z = zRangeMod + zMin
+ rowColWaveAngleMul = pi * pi * rowMod
+ rowColWaveMul = yRangeMod * 0.2
+ for k in range(0, columnCount):
+ colMod = (float(k)) / float(columnCount)
+ xRangeMod = xRange * colMod
+ x = xRangeMod + xMin + cacheXAdjustment
+ colWave = sin((2.0 * pi * colMod) - (1.0 / 2.0 * pi)) + 1.0
+ rand_nr = rand_gen.generateDouble() * 0.15
+ y = ((colWave * ((sin(rowColWaveAngleMul * colMod) + 1.0)))
+ * rowColWaveMul + rand_nr * yRangeMod)
+
+ index = k + cacheIndexAdjustment
+ if index >= columnCount:
+ # Wrap over
+ index -= columnCount
+ x -= xRange
+
+ row.append(QSurfaceDataItem(QVector3D(x, y, z)))
+ cache.append(row)
+ self.m_data.append(cache)
+
+ @Slot(QSurface3DSeries)
+ def update(self, series):
+ if series and self.m_data:
+ # Each iteration uses data from a different cached array
+ self.m_index += 1
+ if self.m_index > len(self.m_data) - 1:
+ self.m_index = 0
+
+ array = self.m_data[self.m_index]
+ newRowCount = len(array)
+ newColumnCount = len(array[0])
+
+ # Copy items from our cache to the reset array
+ self.m_resetArray = []
+ for i in range(0, newRowCount):
+ sourceRow = array[i]
+ row = []
+ for j in range(0, newColumnCount):
+ row.append(QSurfaceDataItem(sourceRow[j].position()))
+ self.m_resetArray.append(row)
+
+ # Notify the proxy that data has changed
+ series.dataProxy().resetArray(self.m_resetArray)
+
+ @Slot()
+ def clearData(self):
+ self.m_data = []
diff --git a/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.rst b/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.rst
new file mode 100644
index 000000000..4be2d738c
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.rst
@@ -0,0 +1,9 @@
+Surface Graph Gallery
+=====================
+
+Surface Graph Gallery demonstrates three different custom features with
+Surface3D graphs. The features have their own tabs in the application.
+
+.. image:: qmlsurfacegallery.webp
+ :width: 600
+ :alt: Surface Graph Gallery Screenshot
diff --git a/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.webp b/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.webp
new file mode 100644
index 000000000..82a43a84e
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.webp
Binary files differ
diff --git a/examples/datavisualization/qmlsurfacegallery/main.py b/examples/datavisualization/qmlsurfacegallery/main.py
new file mode 100644
index 000000000..7b980bc17
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/main.py
@@ -0,0 +1,39 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt DataVisualization qmlsurfacegallery example from Qt v6.x"""
+
+import os
+import sys
+from pathlib import Path
+
+from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+from PySide6.QtDataVisualization import qDefaultSurfaceFormat
+
+from datasource import DataSource # noqa: F401
+import rc_qmlsurfacegallery # noqa: F401
+
+
+if __name__ == "__main__":
+ os.environ["QSG_RHI_BACKEND"] = "opengl"
+ app = QGuiApplication(sys.argv)
+
+ viewer = QQuickView()
+
+ # Enable antialiasing in direct rendering mode
+ viewer.setFormat(qDefaultSurfaceFormat(True))
+
+ viewer.engine().quit.connect(QCoreApplication.quit)
+
+ viewer.setTitle("Surface Graph Gallery")
+
+ qml_file = Path(__file__).resolve().parent / "qml" / "qmlsurfacegallery" / "main.qml"
+ viewer.setSource(QUrl.fromLocalFile(qml_file))
+ viewer.setResizeMode(QQuickView.SizeRootObjectToView)
+ viewer.show()
+
+ ex = app.exec()
+ del viewer
+ sys.exit(ex)
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SpectrogramData.qml b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SpectrogramData.qml
new file mode 100644
index 000000000..6e1b57228
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SpectrogramData.qml
@@ -0,0 +1,1545 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Item {
+ property alias model: dataModel
+
+ ListModel {
+ id: dataModel
+ ListElement{ radius: "0"; angle: "0"; value: "50"; }
+ ListElement{ radius: "0"; angle: "5"; value: "54.3578"; }
+ ListElement{ radius: "0"; angle: "10"; value: "58.6824"; }
+ ListElement{ radius: "0"; angle: "15"; value: "62.941"; }
+ ListElement{ radius: "0"; angle: "20"; value: "67.101"; }
+ ListElement{ radius: "0"; angle: "25"; value: "71.1309"; }
+ ListElement{ radius: "0"; angle: "30"; value: "75"; }
+ ListElement{ radius: "0"; angle: "35"; value: "78.6788"; }
+ ListElement{ radius: "0"; angle: "40"; value: "82.1394"; }
+ ListElement{ radius: "0"; angle: "45"; value: "85.3553"; }
+ ListElement{ radius: "0"; angle: "50"; value: "88.3022"; }
+ ListElement{ radius: "0"; angle: "55"; value: "90.9576"; }
+ ListElement{ radius: "0"; angle: "60"; value: "93.3013"; }
+ ListElement{ radius: "0"; angle: "65"; value: "95.3154"; }
+ ListElement{ radius: "0"; angle: "70"; value: "96.9846"; }
+ ListElement{ radius: "0"; angle: "75"; value: "98.2963"; }
+ ListElement{ radius: "0"; angle: "80"; value: "99.2404"; }
+ ListElement{ radius: "0"; angle: "85"; value: "99.8097"; }
+ ListElement{ radius: "0"; angle: "90"; value: "100"; }
+ ListElement{ radius: "0"; angle: "95"; value: "99.8097"; }
+ ListElement{ radius: "0"; angle: "100"; value: "99.2404"; }
+ ListElement{ radius: "0"; angle: "105"; value: "98.2963"; }
+ ListElement{ radius: "0"; angle: "110"; value: "96.9846"; }
+ ListElement{ radius: "0"; angle: "115"; value: "95.3154"; }
+ ListElement{ radius: "0"; angle: "120"; value: "93.3013"; }
+ ListElement{ radius: "0"; angle: "125"; value: "90.9576"; }
+ ListElement{ radius: "0"; angle: "130"; value: "88.3022"; }
+ ListElement{ radius: "0"; angle: "135"; value: "85.3553"; }
+ ListElement{ radius: "0"; angle: "140"; value: "82.1394"; }
+ ListElement{ radius: "0"; angle: "145"; value: "78.6788"; }
+ ListElement{ radius: "0"; angle: "150"; value: "75"; }
+ ListElement{ radius: "0"; angle: "155"; value: "71.1309"; }
+ ListElement{ radius: "0"; angle: "160"; value: "67.101"; }
+ ListElement{ radius: "0"; angle: "165"; value: "62.941"; }
+ ListElement{ radius: "0"; angle: "170"; value: "58.6824"; }
+ ListElement{ radius: "0"; angle: "175"; value: "54.3578"; }
+ ListElement{ radius: "0"; angle: "180"; value: "50"; }
+ ListElement{ radius: "0"; angle: "185"; value: "45.6422"; }
+ ListElement{ radius: "0"; angle: "190"; value: "41.3176"; }
+ ListElement{ radius: "0"; angle: "195"; value: "37.059"; }
+ ListElement{ radius: "0"; angle: "200"; value: "32.899"; }
+ ListElement{ radius: "0"; angle: "205"; value: "28.8691"; }
+ ListElement{ radius: "0"; angle: "210"; value: "25"; }
+ ListElement{ radius: "0"; angle: "215"; value: "21.3212"; }
+ ListElement{ radius: "0"; angle: "220"; value: "17.8606"; }
+ ListElement{ radius: "0"; angle: "225"; value: "14.6447"; }
+ ListElement{ radius: "0"; angle: "230"; value: "11.6978"; }
+ ListElement{ radius: "0"; angle: "235"; value: "9.0424"; }
+ ListElement{ radius: "0"; angle: "240"; value: "6.69873"; }
+ ListElement{ radius: "0"; angle: "245"; value: "4.68461"; }
+ ListElement{ radius: "0"; angle: "250"; value: "3.01537"; }
+ ListElement{ radius: "0"; angle: "255"; value: "1.70371"; }
+ ListElement{ radius: "0"; angle: "260"; value: "0.759612"; }
+ ListElement{ radius: "0"; angle: "265"; value: "0.190265"; }
+ ListElement{ radius: "0"; angle: "270"; value: "0"; }
+ ListElement{ radius: "0"; angle: "275"; value: "0.190265"; }
+ ListElement{ radius: "0"; angle: "280"; value: "0.759612"; }
+ ListElement{ radius: "0"; angle: "285"; value: "1.70371"; }
+ ListElement{ radius: "0"; angle: "290"; value: "3.01537"; }
+ ListElement{ radius: "0"; angle: "295"; value: "4.68461"; }
+ ListElement{ radius: "0"; angle: "300"; value: "6.69873"; }
+ ListElement{ radius: "0"; angle: "305"; value: "9.0424"; }
+ ListElement{ radius: "0"; angle: "310"; value: "11.6978"; }
+ ListElement{ radius: "0"; angle: "315"; value: "14.6447"; }
+ ListElement{ radius: "0"; angle: "320"; value: "17.8606"; }
+ ListElement{ radius: "0"; angle: "325"; value: "21.3212"; }
+ ListElement{ radius: "0"; angle: "330"; value: "25"; }
+ ListElement{ radius: "0"; angle: "335"; value: "28.8691"; }
+ ListElement{ radius: "0"; angle: "340"; value: "32.899"; }
+ ListElement{ radius: "0"; angle: "345"; value: "37.059"; }
+ ListElement{ radius: "0"; angle: "350"; value: "41.3176"; }
+ ListElement{ radius: "0"; angle: "355"; value: "45.6422"; }
+ ListElement{ radius: "0"; angle: "360"; value: "50"; }
+ ListElement{ radius: "5"; angle: "0"; value: "49.3844"; }
+ ListElement{ radius: "5"; angle: "5"; value: "53.7422"; }
+ ListElement{ radius: "5"; angle: "10"; value: "58.0668"; }
+ ListElement{ radius: "5"; angle: "15"; value: "62.3254"; }
+ ListElement{ radius: "5"; angle: "20"; value: "66.4854"; }
+ ListElement{ radius: "5"; angle: "25"; value: "70.5153"; }
+ ListElement{ radius: "5"; angle: "30"; value: "74.3844"; }
+ ListElement{ radius: "5"; angle: "35"; value: "78.0632"; }
+ ListElement{ radius: "5"; angle: "40"; value: "81.5238"; }
+ ListElement{ radius: "5"; angle: "45"; value: "84.7398"; }
+ ListElement{ radius: "5"; angle: "50"; value: "87.6866"; }
+ ListElement{ radius: "5"; angle: "55"; value: "90.342"; }
+ ListElement{ radius: "5"; angle: "60"; value: "92.6857"; }
+ ListElement{ radius: "5"; angle: "65"; value: "94.6998"; }
+ ListElement{ radius: "5"; angle: "70"; value: "96.369"; }
+ ListElement{ radius: "5"; angle: "75"; value: "97.6807"; }
+ ListElement{ radius: "5"; angle: "80"; value: "98.6248"; }
+ ListElement{ radius: "5"; angle: "85"; value: "99.1942"; }
+ ListElement{ radius: "5"; angle: "90"; value: "99.3844"; }
+ ListElement{ radius: "5"; angle: "95"; value: "99.1942"; }
+ ListElement{ radius: "5"; angle: "100"; value: "98.6248"; }
+ ListElement{ radius: "5"; angle: "105"; value: "97.6807"; }
+ ListElement{ radius: "5"; angle: "110"; value: "96.369"; }
+ ListElement{ radius: "5"; angle: "115"; value: "94.6998"; }
+ ListElement{ radius: "5"; angle: "120"; value: "92.6857"; }
+ ListElement{ radius: "5"; angle: "125"; value: "90.342"; }
+ ListElement{ radius: "5"; angle: "130"; value: "87.6866"; }
+ ListElement{ radius: "5"; angle: "135"; value: "84.7398"; }
+ ListElement{ radius: "5"; angle: "140"; value: "81.5238"; }
+ ListElement{ radius: "5"; angle: "145"; value: "78.0632"; }
+ ListElement{ radius: "5"; angle: "150"; value: "74.3844"; }
+ ListElement{ radius: "5"; angle: "155"; value: "70.5153"; }
+ ListElement{ radius: "5"; angle: "160"; value: "66.4854"; }
+ ListElement{ radius: "5"; angle: "165"; value: "62.3254"; }
+ ListElement{ radius: "5"; angle: "170"; value: "58.0668"; }
+ ListElement{ radius: "5"; angle: "175"; value: "53.7422"; }
+ ListElement{ radius: "5"; angle: "180"; value: "49.3844"; }
+ ListElement{ radius: "5"; angle: "185"; value: "45.0266"; }
+ ListElement{ radius: "5"; angle: "190"; value: "40.702"; }
+ ListElement{ radius: "5"; angle: "195"; value: "36.4435"; }
+ ListElement{ radius: "5"; angle: "200"; value: "32.2834"; }
+ ListElement{ radius: "5"; angle: "205"; value: "28.2535"; }
+ ListElement{ radius: "5"; angle: "210"; value: "24.3844"; }
+ ListElement{ radius: "5"; angle: "215"; value: "20.7056"; }
+ ListElement{ radius: "5"; angle: "220"; value: "17.245"; }
+ ListElement{ radius: "5"; angle: "225"; value: "14.0291"; }
+ ListElement{ radius: "5"; angle: "230"; value: "11.0822"; }
+ ListElement{ radius: "5"; angle: "235"; value: "8.42681"; }
+ ListElement{ radius: "5"; angle: "240"; value: "6.08315"; }
+ ListElement{ radius: "5"; angle: "245"; value: "4.06903"; }
+ ListElement{ radius: "5"; angle: "250"; value: "2.39979"; }
+ ListElement{ radius: "5"; angle: "255"; value: "1.08813"; }
+ ListElement{ radius: "5"; angle: "260"; value: "0.144029"; }
+ ListElement{ radius: "5"; angle: "265"; value: "-0.425318"; }
+ ListElement{ radius: "5"; angle: "270"; value: "-0.615583"; }
+ ListElement{ radius: "5"; angle: "275"; value: "-0.425318"; }
+ ListElement{ radius: "5"; angle: "280"; value: "0.144029"; }
+ ListElement{ radius: "5"; angle: "285"; value: "1.08813"; }
+ ListElement{ radius: "5"; angle: "290"; value: "2.39979"; }
+ ListElement{ radius: "5"; angle: "295"; value: "4.06903"; }
+ ListElement{ radius: "5"; angle: "300"; value: "6.08315"; }
+ ListElement{ radius: "5"; angle: "305"; value: "8.42681"; }
+ ListElement{ radius: "5"; angle: "310"; value: "11.0822"; }
+ ListElement{ radius: "5"; angle: "315"; value: "14.0291"; }
+ ListElement{ radius: "5"; angle: "320"; value: "17.245"; }
+ ListElement{ radius: "5"; angle: "325"; value: "20.7056"; }
+ ListElement{ radius: "5"; angle: "330"; value: "24.3844"; }
+ ListElement{ radius: "5"; angle: "335"; value: "28.2535"; }
+ ListElement{ radius: "5"; angle: "340"; value: "32.2834"; }
+ ListElement{ radius: "5"; angle: "345"; value: "36.4435"; }
+ ListElement{ radius: "5"; angle: "350"; value: "40.702"; }
+ ListElement{ radius: "5"; angle: "355"; value: "45.0266"; }
+ ListElement{ radius: "5"; angle: "360"; value: "49.3844"; }
+ ListElement{ radius: "10"; angle: "0"; value: "47.5528"; }
+ ListElement{ radius: "10"; angle: "5"; value: "51.9106"; }
+ ListElement{ radius: "10"; angle: "10"; value: "56.2352"; }
+ ListElement{ radius: "10"; angle: "15"; value: "60.4938"; }
+ ListElement{ radius: "10"; angle: "20"; value: "64.6538"; }
+ ListElement{ radius: "10"; angle: "25"; value: "68.6837"; }
+ ListElement{ radius: "10"; angle: "30"; value: "72.5528"; }
+ ListElement{ radius: "10"; angle: "35"; value: "76.2316"; }
+ ListElement{ radius: "10"; angle: "40"; value: "79.6922"; }
+ ListElement{ radius: "10"; angle: "45"; value: "82.9082"; }
+ ListElement{ radius: "10"; angle: "50"; value: "85.855"; }
+ ListElement{ radius: "10"; angle: "55"; value: "88.5104"; }
+ ListElement{ radius: "10"; angle: "60"; value: "90.8541"; }
+ ListElement{ radius: "10"; angle: "65"; value: "92.8682"; }
+ ListElement{ radius: "10"; angle: "70"; value: "94.5375"; }
+ ListElement{ radius: "10"; angle: "75"; value: "95.8491"; }
+ ListElement{ radius: "10"; angle: "80"; value: "96.7932"; }
+ ListElement{ radius: "10"; angle: "85"; value: "97.3626"; }
+ ListElement{ radius: "10"; angle: "90"; value: "97.5528"; }
+ ListElement{ radius: "10"; angle: "95"; value: "97.3626"; }
+ ListElement{ radius: "10"; angle: "100"; value: "96.7932"; }
+ ListElement{ radius: "10"; angle: "105"; value: "95.8491"; }
+ ListElement{ radius: "10"; angle: "110"; value: "94.5375"; }
+ ListElement{ radius: "10"; angle: "115"; value: "92.8682"; }
+ ListElement{ radius: "10"; angle: "120"; value: "90.8541"; }
+ ListElement{ radius: "10"; angle: "125"; value: "88.5104"; }
+ ListElement{ radius: "10"; angle: "130"; value: "85.855"; }
+ ListElement{ radius: "10"; angle: "135"; value: "82.9082"; }
+ ListElement{ radius: "10"; angle: "140"; value: "79.6922"; }
+ ListElement{ radius: "10"; angle: "145"; value: "76.2316"; }
+ ListElement{ radius: "10"; angle: "150"; value: "72.5528"; }
+ ListElement{ radius: "10"; angle: "155"; value: "68.6837"; }
+ ListElement{ radius: "10"; angle: "160"; value: "64.6538"; }
+ ListElement{ radius: "10"; angle: "165"; value: "60.4938"; }
+ ListElement{ radius: "10"; angle: "170"; value: "56.2352"; }
+ ListElement{ radius: "10"; angle: "175"; value: "51.9106"; }
+ ListElement{ radius: "10"; angle: "180"; value: "47.5528"; }
+ ListElement{ radius: "10"; angle: "185"; value: "43.195"; }
+ ListElement{ radius: "10"; angle: "190"; value: "38.8704"; }
+ ListElement{ radius: "10"; angle: "195"; value: "34.6119"; }
+ ListElement{ radius: "10"; angle: "200"; value: "30.4518"; }
+ ListElement{ radius: "10"; angle: "205"; value: "26.4219"; }
+ ListElement{ radius: "10"; angle: "210"; value: "22.5528"; }
+ ListElement{ radius: "10"; angle: "215"; value: "18.874"; }
+ ListElement{ radius: "10"; angle: "220"; value: "15.4134"; }
+ ListElement{ radius: "10"; angle: "225"; value: "12.1975"; }
+ ListElement{ radius: "10"; angle: "230"; value: "9.2506"; }
+ ListElement{ radius: "10"; angle: "235"; value: "6.59522"; }
+ ListElement{ radius: "10"; angle: "240"; value: "4.25156"; }
+ ListElement{ radius: "10"; angle: "245"; value: "2.23744"; }
+ ListElement{ radius: "10"; angle: "250"; value: "0.568195"; }
+ ListElement{ radius: "10"; angle: "255"; value: "-0.743465"; }
+ ListElement{ radius: "10"; angle: "260"; value: "-1.68756"; }
+ ListElement{ radius: "10"; angle: "265"; value: "-2.25691"; }
+ ListElement{ radius: "10"; angle: "270"; value: "-2.44717"; }
+ ListElement{ radius: "10"; angle: "275"; value: "-2.25691"; }
+ ListElement{ radius: "10"; angle: "280"; value: "-1.68756"; }
+ ListElement{ radius: "10"; angle: "285"; value: "-0.743465"; }
+ ListElement{ radius: "10"; angle: "290"; value: "0.568195"; }
+ ListElement{ radius: "10"; angle: "295"; value: "2.23744"; }
+ ListElement{ radius: "10"; angle: "300"; value: "4.25156"; }
+ ListElement{ radius: "10"; angle: "305"; value: "6.59522"; }
+ ListElement{ radius: "10"; angle: "310"; value: "9.2506"; }
+ ListElement{ radius: "10"; angle: "315"; value: "12.1975"; }
+ ListElement{ radius: "10"; angle: "320"; value: "15.4134"; }
+ ListElement{ radius: "10"; angle: "325"; value: "18.874"; }
+ ListElement{ radius: "10"; angle: "330"; value: "22.5528"; }
+ ListElement{ radius: "10"; angle: "335"; value: "26.4219"; }
+ ListElement{ radius: "10"; angle: "340"; value: "30.4518"; }
+ ListElement{ radius: "10"; angle: "345"; value: "34.6119"; }
+ ListElement{ radius: "10"; angle: "350"; value: "38.8704"; }
+ ListElement{ radius: "10"; angle: "355"; value: "43.195"; }
+ ListElement{ radius: "10"; angle: "360"; value: "47.5528"; }
+ ListElement{ radius: "15"; angle: "0"; value: "44.5503"; }
+ ListElement{ radius: "15"; angle: "5"; value: "48.9081"; }
+ ListElement{ radius: "15"; angle: "10"; value: "53.2327"; }
+ ListElement{ radius: "15"; angle: "15"; value: "57.4913"; }
+ ListElement{ radius: "15"; angle: "20"; value: "61.6513"; }
+ ListElement{ radius: "15"; angle: "25"; value: "65.6812"; }
+ ListElement{ radius: "15"; angle: "30"; value: "69.5503"; }
+ ListElement{ radius: "15"; angle: "35"; value: "73.2291"; }
+ ListElement{ radius: "15"; angle: "40"; value: "76.6897"; }
+ ListElement{ radius: "15"; angle: "45"; value: "79.9057"; }
+ ListElement{ radius: "15"; angle: "50"; value: "82.8525"; }
+ ListElement{ radius: "15"; angle: "55"; value: "85.5079"; }
+ ListElement{ radius: "15"; angle: "60"; value: "87.8516"; }
+ ListElement{ radius: "15"; angle: "65"; value: "89.8657"; }
+ ListElement{ radius: "15"; angle: "70"; value: "91.535"; }
+ ListElement{ radius: "15"; angle: "75"; value: "92.8466"; }
+ ListElement{ radius: "15"; angle: "80"; value: "93.7907"; }
+ ListElement{ radius: "15"; angle: "85"; value: "94.3601"; }
+ ListElement{ radius: "15"; angle: "90"; value: "94.5503"; }
+ ListElement{ radius: "15"; angle: "95"; value: "94.3601"; }
+ ListElement{ radius: "15"; angle: "100"; value: "93.7907"; }
+ ListElement{ radius: "15"; angle: "105"; value: "92.8466"; }
+ ListElement{ radius: "15"; angle: "110"; value: "91.535"; }
+ ListElement{ radius: "15"; angle: "115"; value: "89.8657"; }
+ ListElement{ radius: "15"; angle: "120"; value: "87.8516"; }
+ ListElement{ radius: "15"; angle: "125"; value: "85.5079"; }
+ ListElement{ radius: "15"; angle: "130"; value: "82.8525"; }
+ ListElement{ radius: "15"; angle: "135"; value: "79.9057"; }
+ ListElement{ radius: "15"; angle: "140"; value: "76.6897"; }
+ ListElement{ radius: "15"; angle: "145"; value: "73.2291"; }
+ ListElement{ radius: "15"; angle: "150"; value: "69.5503"; }
+ ListElement{ radius: "15"; angle: "155"; value: "65.6812"; }
+ ListElement{ radius: "15"; angle: "160"; value: "61.6513"; }
+ ListElement{ radius: "15"; angle: "165"; value: "57.4913"; }
+ ListElement{ radius: "15"; angle: "170"; value: "53.2327"; }
+ ListElement{ radius: "15"; angle: "175"; value: "48.9081"; }
+ ListElement{ radius: "15"; angle: "180"; value: "44.5503"; }
+ ListElement{ radius: "15"; angle: "185"; value: "40.1925"; }
+ ListElement{ radius: "15"; angle: "190"; value: "35.8679"; }
+ ListElement{ radius: "15"; angle: "195"; value: "31.6094"; }
+ ListElement{ radius: "15"; angle: "200"; value: "27.4493"; }
+ ListElement{ radius: "15"; angle: "205"; value: "23.4194"; }
+ ListElement{ radius: "15"; angle: "210"; value: "19.5503"; }
+ ListElement{ radius: "15"; angle: "215"; value: "15.8715"; }
+ ListElement{ radius: "15"; angle: "220"; value: "12.4109"; }
+ ListElement{ radius: "15"; angle: "225"; value: "9.19499"; }
+ ListElement{ radius: "15"; angle: "230"; value: "6.2481"; }
+ ListElement{ radius: "15"; angle: "235"; value: "3.59272"; }
+ ListElement{ radius: "15"; angle: "240"; value: "1.24906"; }
+ ListElement{ radius: "15"; angle: "245"; value: "-0.765063"; }
+ ListElement{ radius: "15"; angle: "250"; value: "-2.4343"; }
+ ListElement{ radius: "15"; angle: "255"; value: "-3.74597"; }
+ ListElement{ radius: "15"; angle: "260"; value: "-4.69006"; }
+ ListElement{ radius: "15"; angle: "265"; value: "-5.25941"; }
+ ListElement{ radius: "15"; angle: "270"; value: "-5.44967"; }
+ ListElement{ radius: "15"; angle: "275"; value: "-5.25941"; }
+ ListElement{ radius: "15"; angle: "280"; value: "-4.69006"; }
+ ListElement{ radius: "15"; angle: "285"; value: "-3.74597"; }
+ ListElement{ radius: "15"; angle: "290"; value: "-2.4343"; }
+ ListElement{ radius: "15"; angle: "295"; value: "-0.765063"; }
+ ListElement{ radius: "15"; angle: "300"; value: "1.24906"; }
+ ListElement{ radius: "15"; angle: "305"; value: "3.59272"; }
+ ListElement{ radius: "15"; angle: "310"; value: "6.2481"; }
+ ListElement{ radius: "15"; angle: "315"; value: "9.19499"; }
+ ListElement{ radius: "15"; angle: "320"; value: "12.4109"; }
+ ListElement{ radius: "15"; angle: "325"; value: "15.8715"; }
+ ListElement{ radius: "15"; angle: "330"; value: "19.5503"; }
+ ListElement{ radius: "15"; angle: "335"; value: "23.4194"; }
+ ListElement{ radius: "15"; angle: "340"; value: "27.4493"; }
+ ListElement{ radius: "15"; angle: "345"; value: "31.6094"; }
+ ListElement{ radius: "15"; angle: "350"; value: "35.8679"; }
+ ListElement{ radius: "15"; angle: "355"; value: "40.1925"; }
+ ListElement{ radius: "15"; angle: "360"; value: "44.5503"; }
+ ListElement{ radius: "20"; angle: "0"; value: "40.4508"; }
+ ListElement{ radius: "20"; angle: "5"; value: "44.8086"; }
+ ListElement{ radius: "20"; angle: "10"; value: "49.1333"; }
+ ListElement{ radius: "20"; angle: "15"; value: "53.3918"; }
+ ListElement{ radius: "20"; angle: "20"; value: "57.5519"; }
+ ListElement{ radius: "20"; angle: "25"; value: "61.5818"; }
+ ListElement{ radius: "20"; angle: "30"; value: "65.4508"; }
+ ListElement{ radius: "20"; angle: "35"; value: "69.1297"; }
+ ListElement{ radius: "20"; angle: "40"; value: "72.5902"; }
+ ListElement{ radius: "20"; angle: "45"; value: "75.8062"; }
+ ListElement{ radius: "20"; angle: "50"; value: "78.7531"; }
+ ListElement{ radius: "20"; angle: "55"; value: "81.4085"; }
+ ListElement{ radius: "20"; angle: "60"; value: "83.7521"; }
+ ListElement{ radius: "20"; angle: "65"; value: "85.7662"; }
+ ListElement{ radius: "20"; angle: "70"; value: "87.4355"; }
+ ListElement{ radius: "20"; angle: "75"; value: "88.7471"; }
+ ListElement{ radius: "20"; angle: "80"; value: "89.6912"; }
+ ListElement{ radius: "20"; angle: "85"; value: "90.2606"; }
+ ListElement{ radius: "20"; angle: "90"; value: "90.4508"; }
+ ListElement{ radius: "20"; angle: "95"; value: "90.2606"; }
+ ListElement{ radius: "20"; angle: "100"; value: "89.6912"; }
+ ListElement{ radius: "20"; angle: "105"; value: "88.7471"; }
+ ListElement{ radius: "20"; angle: "110"; value: "87.4355"; }
+ ListElement{ radius: "20"; angle: "115"; value: "85.7662"; }
+ ListElement{ radius: "20"; angle: "120"; value: "83.7521"; }
+ ListElement{ radius: "20"; angle: "125"; value: "81.4085"; }
+ ListElement{ radius: "20"; angle: "130"; value: "78.7531"; }
+ ListElement{ radius: "20"; angle: "135"; value: "75.8062"; }
+ ListElement{ radius: "20"; angle: "140"; value: "72.5902"; }
+ ListElement{ radius: "20"; angle: "145"; value: "69.1297"; }
+ ListElement{ radius: "20"; angle: "150"; value: "65.4508"; }
+ ListElement{ radius: "20"; angle: "155"; value: "61.5818"; }
+ ListElement{ radius: "20"; angle: "160"; value: "57.5519"; }
+ ListElement{ radius: "20"; angle: "165"; value: "53.3918"; }
+ ListElement{ radius: "20"; angle: "170"; value: "49.1333"; }
+ ListElement{ radius: "20"; angle: "175"; value: "44.8086"; }
+ ListElement{ radius: "20"; angle: "180"; value: "40.4508"; }
+ ListElement{ radius: "20"; angle: "185"; value: "36.0931"; }
+ ListElement{ radius: "20"; angle: "190"; value: "31.7684"; }
+ ListElement{ radius: "20"; angle: "195"; value: "27.5099"; }
+ ListElement{ radius: "20"; angle: "200"; value: "23.3498"; }
+ ListElement{ radius: "20"; angle: "205"; value: "19.3199"; }
+ ListElement{ radius: "20"; angle: "210"; value: "15.4508"; }
+ ListElement{ radius: "20"; angle: "215"; value: "11.772"; }
+ ListElement{ radius: "20"; angle: "220"; value: "8.31147"; }
+ ListElement{ radius: "20"; angle: "225"; value: "5.09551"; }
+ ListElement{ radius: "20"; angle: "230"; value: "2.14863"; }
+ ListElement{ radius: "20"; angle: "235"; value: "-0.506752"; }
+ ListElement{ radius: "20"; angle: "240"; value: "-2.85042"; }
+ ListElement{ radius: "20"; angle: "245"; value: "-4.86454"; }
+ ListElement{ radius: "20"; angle: "250"; value: "-6.53378"; }
+ ListElement{ radius: "20"; angle: "255"; value: "-7.84544"; }
+ ListElement{ radius: "20"; angle: "260"; value: "-8.78954"; }
+ ListElement{ radius: "20"; angle: "265"; value: "-9.35889"; }
+ ListElement{ radius: "20"; angle: "270"; value: "-9.54915"; }
+ ListElement{ radius: "20"; angle: "275"; value: "-9.35889"; }
+ ListElement{ radius: "20"; angle: "280"; value: "-8.78954"; }
+ ListElement{ radius: "20"; angle: "285"; value: "-7.84544"; }
+ ListElement{ radius: "20"; angle: "290"; value: "-6.53378"; }
+ ListElement{ radius: "20"; angle: "295"; value: "-4.86454"; }
+ ListElement{ radius: "20"; angle: "300"; value: "-2.85042"; }
+ ListElement{ radius: "20"; angle: "305"; value: "-0.506752"; }
+ ListElement{ radius: "20"; angle: "310"; value: "2.14863"; }
+ ListElement{ radius: "20"; angle: "315"; value: "5.09551"; }
+ ListElement{ radius: "20"; angle: "320"; value: "8.31147"; }
+ ListElement{ radius: "20"; angle: "325"; value: "11.772"; }
+ ListElement{ radius: "20"; angle: "330"; value: "15.4508"; }
+ ListElement{ radius: "20"; angle: "335"; value: "19.3199"; }
+ ListElement{ radius: "20"; angle: "340"; value: "23.3498"; }
+ ListElement{ radius: "20"; angle: "345"; value: "27.5099"; }
+ ListElement{ radius: "20"; angle: "350"; value: "31.7684"; }
+ ListElement{ radius: "20"; angle: "355"; value: "36.0931"; }
+ ListElement{ radius: "20"; angle: "360"; value: "40.4508"; }
+ ListElement{ radius: "25"; angle: "0"; value: "35.3553"; }
+ ListElement{ radius: "25"; angle: "5"; value: "39.7131"; }
+ ListElement{ radius: "25"; angle: "10"; value: "44.0377"; }
+ ListElement{ radius: "25"; angle: "15"; value: "48.2963"; }
+ ListElement{ radius: "25"; angle: "20"; value: "52.4563"; }
+ ListElement{ radius: "25"; angle: "25"; value: "56.4863"; }
+ ListElement{ radius: "25"; angle: "30"; value: "60.3553"; }
+ ListElement{ radius: "25"; angle: "35"; value: "64.0342"; }
+ ListElement{ radius: "25"; angle: "40"; value: "67.4947"; }
+ ListElement{ radius: "25"; angle: "45"; value: "70.7107"; }
+ ListElement{ radius: "25"; angle: "50"; value: "73.6576"; }
+ ListElement{ radius: "25"; angle: "55"; value: "76.3129"; }
+ ListElement{ radius: "25"; angle: "60"; value: "78.6566"; }
+ ListElement{ radius: "25"; angle: "65"; value: "80.6707"; }
+ ListElement{ radius: "25"; angle: "70"; value: "82.34"; }
+ ListElement{ radius: "25"; angle: "75"; value: "83.6516"; }
+ ListElement{ radius: "25"; angle: "80"; value: "84.5957"; }
+ ListElement{ radius: "25"; angle: "85"; value: "85.1651"; }
+ ListElement{ radius: "25"; angle: "90"; value: "85.3553"; }
+ ListElement{ radius: "25"; angle: "95"; value: "85.1651"; }
+ ListElement{ radius: "25"; angle: "100"; value: "84.5957"; }
+ ListElement{ radius: "25"; angle: "105"; value: "83.6516"; }
+ ListElement{ radius: "25"; angle: "110"; value: "82.34"; }
+ ListElement{ radius: "25"; angle: "115"; value: "80.6707"; }
+ ListElement{ radius: "25"; angle: "120"; value: "78.6566"; }
+ ListElement{ radius: "25"; angle: "125"; value: "76.3129"; }
+ ListElement{ radius: "25"; angle: "130"; value: "73.6576"; }
+ ListElement{ radius: "25"; angle: "135"; value: "70.7107"; }
+ ListElement{ radius: "25"; angle: "140"; value: "67.4947"; }
+ ListElement{ radius: "25"; angle: "145"; value: "64.0342"; }
+ ListElement{ radius: "25"; angle: "150"; value: "60.3553"; }
+ ListElement{ radius: "25"; angle: "155"; value: "56.4863"; }
+ ListElement{ radius: "25"; angle: "160"; value: "52.4563"; }
+ ListElement{ radius: "25"; angle: "165"; value: "48.2963"; }
+ ListElement{ radius: "25"; angle: "170"; value: "44.0377"; }
+ ListElement{ radius: "25"; angle: "175"; value: "39.7131"; }
+ ListElement{ radius: "25"; angle: "180"; value: "35.3553"; }
+ ListElement{ radius: "25"; angle: "185"; value: "30.9976"; }
+ ListElement{ radius: "25"; angle: "190"; value: "26.6729"; }
+ ListElement{ radius: "25"; angle: "195"; value: "22.4144"; }
+ ListElement{ radius: "25"; angle: "200"; value: "18.2543"; }
+ ListElement{ radius: "25"; angle: "205"; value: "14.2244"; }
+ ListElement{ radius: "25"; angle: "210"; value: "10.3553"; }
+ ListElement{ radius: "25"; angle: "215"; value: "6.67652"; }
+ ListElement{ radius: "25"; angle: "220"; value: "3.21596"; }
+ ListElement{ radius: "25"; angle: "225"; value: "5.55112e-15"; }
+ ListElement{ radius: "25"; angle: "230"; value: "-2.94688"; }
+ ListElement{ radius: "25"; angle: "235"; value: "-5.60226"; }
+ ListElement{ radius: "25"; angle: "240"; value: "-7.94593"; }
+ ListElement{ radius: "25"; angle: "245"; value: "-9.96005"; }
+ ListElement{ radius: "25"; angle: "250"; value: "-11.6293"; }
+ ListElement{ radius: "25"; angle: "255"; value: "-12.941"; }
+ ListElement{ radius: "25"; angle: "260"; value: "-13.885"; }
+ ListElement{ radius: "25"; angle: "265"; value: "-14.4544"; }
+ ListElement{ radius: "25"; angle: "270"; value: "-14.6447"; }
+ ListElement{ radius: "25"; angle: "275"; value: "-14.4544"; }
+ ListElement{ radius: "25"; angle: "280"; value: "-13.885"; }
+ ListElement{ radius: "25"; angle: "285"; value: "-12.941"; }
+ ListElement{ radius: "25"; angle: "290"; value: "-11.6293"; }
+ ListElement{ radius: "25"; angle: "295"; value: "-9.96005"; }
+ ListElement{ radius: "25"; angle: "300"; value: "-7.94593"; }
+ ListElement{ radius: "25"; angle: "305"; value: "-5.60226"; }
+ ListElement{ radius: "25"; angle: "310"; value: "-2.94688"; }
+ ListElement{ radius: "25"; angle: "315"; value: "-5.55112e-15"; }
+ ListElement{ radius: "25"; angle: "320"; value: "3.21596"; }
+ ListElement{ radius: "25"; angle: "325"; value: "6.67652"; }
+ ListElement{ radius: "25"; angle: "330"; value: "10.3553"; }
+ ListElement{ radius: "25"; angle: "335"; value: "14.2244"; }
+ ListElement{ radius: "25"; angle: "340"; value: "18.2543"; }
+ ListElement{ radius: "25"; angle: "345"; value: "22.4144"; }
+ ListElement{ radius: "25"; angle: "350"; value: "26.6729"; }
+ ListElement{ radius: "25"; angle: "355"; value: "30.9976"; }
+ ListElement{ radius: "25"; angle: "360"; value: "35.3553"; }
+ ListElement{ radius: "30"; angle: "0"; value: "29.3893"; }
+ ListElement{ radius: "30"; angle: "5"; value: "33.747"; }
+ ListElement{ radius: "30"; angle: "10"; value: "38.0717"; }
+ ListElement{ radius: "30"; angle: "15"; value: "42.3302"; }
+ ListElement{ radius: "30"; angle: "20"; value: "46.4903"; }
+ ListElement{ radius: "30"; angle: "25"; value: "50.5202"; }
+ ListElement{ radius: "30"; angle: "30"; value: "54.3893"; }
+ ListElement{ radius: "30"; angle: "35"; value: "58.0681"; }
+ ListElement{ radius: "30"; angle: "40"; value: "61.5286"; }
+ ListElement{ radius: "30"; angle: "45"; value: "64.7446"; }
+ ListElement{ radius: "30"; angle: "50"; value: "67.6915"; }
+ ListElement{ radius: "30"; angle: "55"; value: "70.3469"; }
+ ListElement{ radius: "30"; angle: "60"; value: "72.6905"; }
+ ListElement{ radius: "30"; angle: "65"; value: "74.7047"; }
+ ListElement{ radius: "30"; angle: "70"; value: "76.3739"; }
+ ListElement{ radius: "30"; angle: "75"; value: "77.6856"; }
+ ListElement{ radius: "30"; angle: "80"; value: "78.6297"; }
+ ListElement{ radius: "30"; angle: "85"; value: "79.199"; }
+ ListElement{ radius: "30"; angle: "90"; value: "79.3893"; }
+ ListElement{ radius: "30"; angle: "95"; value: "79.199"; }
+ ListElement{ radius: "30"; angle: "100"; value: "78.6297"; }
+ ListElement{ radius: "30"; angle: "105"; value: "77.6856"; }
+ ListElement{ radius: "30"; angle: "110"; value: "76.3739"; }
+ ListElement{ radius: "30"; angle: "115"; value: "74.7047"; }
+ ListElement{ radius: "30"; angle: "120"; value: "72.6905"; }
+ ListElement{ radius: "30"; angle: "125"; value: "70.3469"; }
+ ListElement{ radius: "30"; angle: "130"; value: "67.6915"; }
+ ListElement{ radius: "30"; angle: "135"; value: "64.7446"; }
+ ListElement{ radius: "30"; angle: "140"; value: "61.5286"; }
+ ListElement{ radius: "30"; angle: "145"; value: "58.0681"; }
+ ListElement{ radius: "30"; angle: "150"; value: "54.3893"; }
+ ListElement{ radius: "30"; angle: "155"; value: "50.5202"; }
+ ListElement{ radius: "30"; angle: "160"; value: "46.4903"; }
+ ListElement{ radius: "30"; angle: "165"; value: "42.3302"; }
+ ListElement{ radius: "30"; angle: "170"; value: "38.0717"; }
+ ListElement{ radius: "30"; angle: "175"; value: "33.747"; }
+ ListElement{ radius: "30"; angle: "180"; value: "29.3893"; }
+ ListElement{ radius: "30"; angle: "185"; value: "25.0315"; }
+ ListElement{ radius: "30"; angle: "190"; value: "20.7069"; }
+ ListElement{ radius: "30"; angle: "195"; value: "16.4483"; }
+ ListElement{ radius: "30"; angle: "200"; value: "12.2883"; }
+ ListElement{ radius: "30"; angle: "205"; value: "8.25835"; }
+ ListElement{ radius: "30"; angle: "210"; value: "4.38926"; }
+ ListElement{ radius: "30"; angle: "215"; value: "0.710441"; }
+ ListElement{ radius: "30"; angle: "220"; value: "-2.75012"; }
+ ListElement{ radius: "30"; angle: "225"; value: "-5.96608"; }
+ ListElement{ radius: "30"; angle: "230"; value: "-8.91296"; }
+ ListElement{ radius: "30"; angle: "235"; value: "-11.5683"; }
+ ListElement{ radius: "30"; angle: "240"; value: "-13.912"; }
+ ListElement{ radius: "30"; angle: "245"; value: "-15.9261"; }
+ ListElement{ radius: "30"; angle: "250"; value: "-17.5954"; }
+ ListElement{ radius: "30"; angle: "255"; value: "-18.907"; }
+ ListElement{ radius: "30"; angle: "260"; value: "-19.8511"; }
+ ListElement{ radius: "30"; angle: "265"; value: "-20.4205"; }
+ ListElement{ radius: "30"; angle: "270"; value: "-20.6107"; }
+ ListElement{ radius: "30"; angle: "275"; value: "-20.4205"; }
+ ListElement{ radius: "30"; angle: "280"; value: "-19.8511"; }
+ ListElement{ radius: "30"; angle: "285"; value: "-18.907"; }
+ ListElement{ radius: "30"; angle: "290"; value: "-17.5954"; }
+ ListElement{ radius: "30"; angle: "295"; value: "-15.9261"; }
+ ListElement{ radius: "30"; angle: "300"; value: "-13.912"; }
+ ListElement{ radius: "30"; angle: "305"; value: "-11.5683"; }
+ ListElement{ radius: "30"; angle: "310"; value: "-8.91296"; }
+ ListElement{ radius: "30"; angle: "315"; value: "-5.96608"; }
+ ListElement{ radius: "30"; angle: "320"; value: "-2.75012"; }
+ ListElement{ radius: "30"; angle: "325"; value: "0.710441"; }
+ ListElement{ radius: "30"; angle: "330"; value: "4.38926"; }
+ ListElement{ radius: "30"; angle: "335"; value: "8.25835"; }
+ ListElement{ radius: "30"; angle: "340"; value: "12.2883"; }
+ ListElement{ radius: "30"; angle: "345"; value: "16.4483"; }
+ ListElement{ radius: "30"; angle: "350"; value: "20.7069"; }
+ ListElement{ radius: "30"; angle: "355"; value: "25.0315"; }
+ ListElement{ radius: "30"; angle: "360"; value: "29.3893"; }
+ ListElement{ radius: "35"; angle: "0"; value: "22.6995"; }
+ ListElement{ radius: "35"; angle: "5"; value: "27.0573"; }
+ ListElement{ radius: "35"; angle: "10"; value: "31.3819"; }
+ ListElement{ radius: "35"; angle: "15"; value: "35.6405"; }
+ ListElement{ radius: "35"; angle: "20"; value: "39.8005"; }
+ ListElement{ radius: "35"; angle: "25"; value: "43.8304"; }
+ ListElement{ radius: "35"; angle: "30"; value: "47.6995"; }
+ ListElement{ radius: "35"; angle: "35"; value: "51.3783"; }
+ ListElement{ radius: "35"; angle: "40"; value: "54.8389"; }
+ ListElement{ radius: "35"; angle: "45"; value: "58.0549"; }
+ ListElement{ radius: "35"; angle: "50"; value: "61.0017"; }
+ ListElement{ radius: "35"; angle: "55"; value: "63.6571"; }
+ ListElement{ radius: "35"; angle: "60"; value: "66.0008"; }
+ ListElement{ radius: "35"; angle: "65"; value: "68.0149"; }
+ ListElement{ radius: "35"; angle: "70"; value: "69.6842"; }
+ ListElement{ radius: "35"; angle: "75"; value: "70.9958"; }
+ ListElement{ radius: "35"; angle: "80"; value: "71.9399"; }
+ ListElement{ radius: "35"; angle: "85"; value: "72.5093"; }
+ ListElement{ radius: "35"; angle: "90"; value: "72.6995"; }
+ ListElement{ radius: "35"; angle: "95"; value: "72.5093"; }
+ ListElement{ radius: "35"; angle: "100"; value: "71.9399"; }
+ ListElement{ radius: "35"; angle: "105"; value: "70.9958"; }
+ ListElement{ radius: "35"; angle: "110"; value: "69.6842"; }
+ ListElement{ radius: "35"; angle: "115"; value: "68.0149"; }
+ ListElement{ radius: "35"; angle: "120"; value: "66.0008"; }
+ ListElement{ radius: "35"; angle: "125"; value: "63.6571"; }
+ ListElement{ radius: "35"; angle: "130"; value: "61.0017"; }
+ ListElement{ radius: "35"; angle: "135"; value: "58.0549"; }
+ ListElement{ radius: "35"; angle: "140"; value: "54.8389"; }
+ ListElement{ radius: "35"; angle: "145"; value: "51.3783"; }
+ ListElement{ radius: "35"; angle: "150"; value: "47.6995"; }
+ ListElement{ radius: "35"; angle: "155"; value: "43.8304"; }
+ ListElement{ radius: "35"; angle: "160"; value: "39.8005"; }
+ ListElement{ radius: "35"; angle: "165"; value: "35.6405"; }
+ ListElement{ radius: "35"; angle: "170"; value: "31.3819"; }
+ ListElement{ radius: "35"; angle: "175"; value: "27.0573"; }
+ ListElement{ radius: "35"; angle: "180"; value: "22.6995"; }
+ ListElement{ radius: "35"; angle: "185"; value: "18.3417"; }
+ ListElement{ radius: "35"; angle: "190"; value: "14.0171"; }
+ ListElement{ radius: "35"; angle: "195"; value: "9.75857"; }
+ ListElement{ radius: "35"; angle: "200"; value: "5.59852"; }
+ ListElement{ radius: "35"; angle: "205"; value: "1.56861"; }
+ ListElement{ radius: "35"; angle: "210"; value: "-2.30048"; }
+ ListElement{ radius: "35"; angle: "215"; value: "-5.9793"; }
+ ListElement{ radius: "35"; angle: "220"; value: "-9.43986"; }
+ ListElement{ radius: "35"; angle: "225"; value: "-12.6558"; }
+ ListElement{ radius: "35"; angle: "230"; value: "-15.6027"; }
+ ListElement{ radius: "35"; angle: "235"; value: "-18.2581"; }
+ ListElement{ radius: "35"; angle: "240"; value: "-20.6017"; }
+ ListElement{ radius: "35"; angle: "245"; value: "-22.6159"; }
+ ListElement{ radius: "35"; angle: "250"; value: "-24.2851"; }
+ ListElement{ radius: "35"; angle: "255"; value: "-25.5968"; }
+ ListElement{ radius: "35"; angle: "260"; value: "-26.5409"; }
+ ListElement{ radius: "35"; angle: "265"; value: "-27.1102"; }
+ ListElement{ radius: "35"; angle: "270"; value: "-27.3005"; }
+ ListElement{ radius: "35"; angle: "275"; value: "-27.1102"; }
+ ListElement{ radius: "35"; angle: "280"; value: "-26.5409"; }
+ ListElement{ radius: "35"; angle: "285"; value: "-25.5968"; }
+ ListElement{ radius: "35"; angle: "290"; value: "-24.2851"; }
+ ListElement{ radius: "35"; angle: "295"; value: "-22.6159"; }
+ ListElement{ radius: "35"; angle: "300"; value: "-20.6017"; }
+ ListElement{ radius: "35"; angle: "305"; value: "-18.2581"; }
+ ListElement{ radius: "35"; angle: "310"; value: "-15.6027"; }
+ ListElement{ radius: "35"; angle: "315"; value: "-12.6558"; }
+ ListElement{ radius: "35"; angle: "320"; value: "-9.43986"; }
+ ListElement{ radius: "35"; angle: "325"; value: "-5.9793"; }
+ ListElement{ radius: "35"; angle: "330"; value: "-2.30048"; }
+ ListElement{ radius: "35"; angle: "335"; value: "1.56861"; }
+ ListElement{ radius: "35"; angle: "340"; value: "5.59852"; }
+ ListElement{ radius: "35"; angle: "345"; value: "9.75857"; }
+ ListElement{ radius: "35"; angle: "350"; value: "14.0171"; }
+ ListElement{ radius: "35"; angle: "355"; value: "18.3417"; }
+ ListElement{ radius: "35"; angle: "360"; value: "22.6995"; }
+ ListElement{ radius: "40"; angle: "0"; value: "15.4508"; }
+ ListElement{ radius: "40"; angle: "5"; value: "19.8086"; }
+ ListElement{ radius: "40"; angle: "10"; value: "24.1333"; }
+ ListElement{ radius: "40"; angle: "15"; value: "28.3918"; }
+ ListElement{ radius: "40"; angle: "20"; value: "32.5519"; }
+ ListElement{ radius: "40"; angle: "25"; value: "36.5818"; }
+ ListElement{ radius: "40"; angle: "30"; value: "40.4508"; }
+ ListElement{ radius: "40"; angle: "35"; value: "44.1297"; }
+ ListElement{ radius: "40"; angle: "40"; value: "47.5902"; }
+ ListElement{ radius: "40"; angle: "45"; value: "50.8062"; }
+ ListElement{ radius: "40"; angle: "50"; value: "53.7531"; }
+ ListElement{ radius: "40"; angle: "55"; value: "56.4085"; }
+ ListElement{ radius: "40"; angle: "60"; value: "58.7521"; }
+ ListElement{ radius: "40"; angle: "65"; value: "60.7662"; }
+ ListElement{ radius: "40"; angle: "70"; value: "62.4355"; }
+ ListElement{ radius: "40"; angle: "75"; value: "63.7471"; }
+ ListElement{ radius: "40"; angle: "80"; value: "64.6912"; }
+ ListElement{ radius: "40"; angle: "85"; value: "65.2606"; }
+ ListElement{ radius: "40"; angle: "90"; value: "65.4508"; }
+ ListElement{ radius: "40"; angle: "95"; value: "65.2606"; }
+ ListElement{ radius: "40"; angle: "100"; value: "64.6912"; }
+ ListElement{ radius: "40"; angle: "105"; value: "63.7471"; }
+ ListElement{ radius: "40"; angle: "110"; value: "62.4355"; }
+ ListElement{ radius: "40"; angle: "115"; value: "60.7662"; }
+ ListElement{ radius: "40"; angle: "120"; value: "58.7521"; }
+ ListElement{ radius: "40"; angle: "125"; value: "56.4085"; }
+ ListElement{ radius: "40"; angle: "130"; value: "53.7531"; }
+ ListElement{ radius: "40"; angle: "135"; value: "50.8062"; }
+ ListElement{ radius: "40"; angle: "140"; value: "47.5902"; }
+ ListElement{ radius: "40"; angle: "145"; value: "44.1297"; }
+ ListElement{ radius: "40"; angle: "150"; value: "40.4508"; }
+ ListElement{ radius: "40"; angle: "155"; value: "36.5818"; }
+ ListElement{ radius: "40"; angle: "160"; value: "32.5519"; }
+ ListElement{ radius: "40"; angle: "165"; value: "28.3918"; }
+ ListElement{ radius: "40"; angle: "170"; value: "24.1333"; }
+ ListElement{ radius: "40"; angle: "175"; value: "19.8086"; }
+ ListElement{ radius: "40"; angle: "180"; value: "15.4508"; }
+ ListElement{ radius: "40"; angle: "185"; value: "11.0931"; }
+ ListElement{ radius: "40"; angle: "190"; value: "6.76844"; }
+ ListElement{ radius: "40"; angle: "195"; value: "2.5099"; }
+ ListElement{ radius: "40"; angle: "200"; value: "-1.65016"; }
+ ListElement{ radius: "40"; angle: "205"; value: "-5.68006"; }
+ ListElement{ radius: "40"; angle: "210"; value: "-9.54915"; }
+ ListElement{ radius: "40"; angle: "215"; value: "-13.228"; }
+ ListElement{ radius: "40"; angle: "220"; value: "-16.6885"; }
+ ListElement{ radius: "40"; angle: "225"; value: "-19.9045"; }
+ ListElement{ radius: "40"; angle: "230"; value: "-22.8514"; }
+ ListElement{ radius: "40"; angle: "235"; value: "-25.5068"; }
+ ListElement{ radius: "40"; angle: "240"; value: "-27.8504"; }
+ ListElement{ radius: "40"; angle: "245"; value: "-29.8645"; }
+ ListElement{ radius: "40"; angle: "250"; value: "-31.5338"; }
+ ListElement{ radius: "40"; angle: "255"; value: "-32.8454"; }
+ ListElement{ radius: "40"; angle: "260"; value: "-33.7895"; }
+ ListElement{ radius: "40"; angle: "265"; value: "-34.3589"; }
+ ListElement{ radius: "40"; angle: "270"; value: "-34.5492"; }
+ ListElement{ radius: "40"; angle: "275"; value: "-34.3589"; }
+ ListElement{ radius: "40"; angle: "280"; value: "-33.7895"; }
+ ListElement{ radius: "40"; angle: "285"; value: "-32.8454"; }
+ ListElement{ radius: "40"; angle: "290"; value: "-31.5338"; }
+ ListElement{ radius: "40"; angle: "295"; value: "-29.8645"; }
+ ListElement{ radius: "40"; angle: "300"; value: "-27.8504"; }
+ ListElement{ radius: "40"; angle: "305"; value: "-25.5068"; }
+ ListElement{ radius: "40"; angle: "310"; value: "-22.8514"; }
+ ListElement{ radius: "40"; angle: "315"; value: "-19.9045"; }
+ ListElement{ radius: "40"; angle: "320"; value: "-16.6885"; }
+ ListElement{ radius: "40"; angle: "325"; value: "-13.228"; }
+ ListElement{ radius: "40"; angle: "330"; value: "-9.54915"; }
+ ListElement{ radius: "40"; angle: "335"; value: "-5.68006"; }
+ ListElement{ radius: "40"; angle: "340"; value: "-1.65016"; }
+ ListElement{ radius: "40"; angle: "345"; value: "2.5099"; }
+ ListElement{ radius: "40"; angle: "350"; value: "6.76844"; }
+ ListElement{ radius: "40"; angle: "355"; value: "11.0931"; }
+ ListElement{ radius: "40"; angle: "360"; value: "15.4508"; }
+ ListElement{ radius: "45"; angle: "0"; value: "7.82172"; }
+ ListElement{ radius: "45"; angle: "5"; value: "12.1795"; }
+ ListElement{ radius: "45"; angle: "10"; value: "16.5041"; }
+ ListElement{ radius: "45"; angle: "15"; value: "20.7627"; }
+ ListElement{ radius: "45"; angle: "20"; value: "24.9227"; }
+ ListElement{ radius: "45"; angle: "25"; value: "28.9526"; }
+ ListElement{ radius: "45"; angle: "30"; value: "32.8217"; }
+ ListElement{ radius: "45"; angle: "35"; value: "36.5005"; }
+ ListElement{ radius: "45"; angle: "40"; value: "39.9611"; }
+ ListElement{ radius: "45"; angle: "45"; value: "43.1771"; }
+ ListElement{ radius: "45"; angle: "50"; value: "46.1239"; }
+ ListElement{ radius: "45"; angle: "55"; value: "48.7793"; }
+ ListElement{ radius: "45"; angle: "60"; value: "51.123"; }
+ ListElement{ radius: "45"; angle: "65"; value: "53.1371"; }
+ ListElement{ radius: "45"; angle: "70"; value: "54.8064"; }
+ ListElement{ radius: "45"; angle: "75"; value: "56.118"; }
+ ListElement{ radius: "45"; angle: "80"; value: "57.0621"; }
+ ListElement{ radius: "45"; angle: "85"; value: "57.6315"; }
+ ListElement{ radius: "45"; angle: "90"; value: "57.8217"; }
+ ListElement{ radius: "45"; angle: "95"; value: "57.6315"; }
+ ListElement{ radius: "45"; angle: "100"; value: "57.0621"; }
+ ListElement{ radius: "45"; angle: "105"; value: "56.118"; }
+ ListElement{ radius: "45"; angle: "110"; value: "54.8064"; }
+ ListElement{ radius: "45"; angle: "115"; value: "53.1371"; }
+ ListElement{ radius: "45"; angle: "120"; value: "51.123"; }
+ ListElement{ radius: "45"; angle: "125"; value: "48.7793"; }
+ ListElement{ radius: "45"; angle: "130"; value: "46.1239"; }
+ ListElement{ radius: "45"; angle: "135"; value: "43.1771"; }
+ ListElement{ radius: "45"; angle: "140"; value: "39.9611"; }
+ ListElement{ radius: "45"; angle: "145"; value: "36.5005"; }
+ ListElement{ radius: "45"; angle: "150"; value: "32.8217"; }
+ ListElement{ radius: "45"; angle: "155"; value: "28.9526"; }
+ ListElement{ radius: "45"; angle: "160"; value: "24.9227"; }
+ ListElement{ radius: "45"; angle: "165"; value: "20.7627"; }
+ ListElement{ radius: "45"; angle: "170"; value: "16.5041"; }
+ ListElement{ radius: "45"; angle: "175"; value: "12.1795"; }
+ ListElement{ radius: "45"; angle: "180"; value: "7.82172"; }
+ ListElement{ radius: "45"; angle: "185"; value: "3.46394"; }
+ ListElement{ radius: "45"; angle: "190"; value: "-0.860686"; }
+ ListElement{ radius: "45"; angle: "195"; value: "-5.11923"; }
+ ListElement{ radius: "45"; angle: "200"; value: "-9.27928"; }
+ ListElement{ radius: "45"; angle: "205"; value: "-13.3092"; }
+ ListElement{ radius: "45"; angle: "210"; value: "-17.1783"; }
+ ListElement{ radius: "45"; angle: "215"; value: "-20.8571"; }
+ ListElement{ radius: "45"; angle: "220"; value: "-24.3177"; }
+ ListElement{ radius: "45"; angle: "225"; value: "-27.5336"; }
+ ListElement{ radius: "45"; angle: "230"; value: "-30.4805"; }
+ ListElement{ radius: "45"; angle: "235"; value: "-33.1359"; }
+ ListElement{ radius: "45"; angle: "240"; value: "-35.4795"; }
+ ListElement{ radius: "45"; angle: "245"; value: "-37.4937"; }
+ ListElement{ radius: "45"; angle: "250"; value: "-39.1629"; }
+ ListElement{ radius: "45"; angle: "255"; value: "-40.4746"; }
+ ListElement{ radius: "45"; angle: "260"; value: "-41.4187"; }
+ ListElement{ radius: "45"; angle: "265"; value: "-41.988"; }
+ ListElement{ radius: "45"; angle: "270"; value: "-42.1783"; }
+ ListElement{ radius: "45"; angle: "275"; value: "-41.988"; }
+ ListElement{ radius: "45"; angle: "280"; value: "-41.4187"; }
+ ListElement{ radius: "45"; angle: "285"; value: "-40.4746"; }
+ ListElement{ radius: "45"; angle: "290"; value: "-39.1629"; }
+ ListElement{ radius: "45"; angle: "295"; value: "-37.4937"; }
+ ListElement{ radius: "45"; angle: "300"; value: "-35.4795"; }
+ ListElement{ radius: "45"; angle: "305"; value: "-33.1359"; }
+ ListElement{ radius: "45"; angle: "310"; value: "-30.4805"; }
+ ListElement{ radius: "45"; angle: "315"; value: "-27.5336"; }
+ ListElement{ radius: "45"; angle: "320"; value: "-24.3177"; }
+ ListElement{ radius: "45"; angle: "325"; value: "-20.8571"; }
+ ListElement{ radius: "45"; angle: "330"; value: "-17.1783"; }
+ ListElement{ radius: "45"; angle: "335"; value: "-13.3092"; }
+ ListElement{ radius: "45"; angle: "340"; value: "-9.27928"; }
+ ListElement{ radius: "45"; angle: "345"; value: "-5.11923"; }
+ ListElement{ radius: "45"; angle: "350"; value: "-0.860686"; }
+ ListElement{ radius: "45"; angle: "355"; value: "3.46394"; }
+ ListElement{ radius: "45"; angle: "360"; value: "7.82172"; }
+ ListElement{ radius: "50"; angle: "0"; value: "3.06162e-15"; }
+ ListElement{ radius: "50"; angle: "5"; value: "4.35779"; }
+ ListElement{ radius: "50"; angle: "10"; value: "8.68241"; }
+ ListElement{ radius: "50"; angle: "15"; value: "12.941"; }
+ ListElement{ radius: "50"; angle: "20"; value: "17.101"; }
+ ListElement{ radius: "50"; angle: "25"; value: "21.1309"; }
+ ListElement{ radius: "50"; angle: "30"; value: "25"; }
+ ListElement{ radius: "50"; angle: "35"; value: "28.6788"; }
+ ListElement{ radius: "50"; angle: "40"; value: "32.1394"; }
+ ListElement{ radius: "50"; angle: "45"; value: "35.3553"; }
+ ListElement{ radius: "50"; angle: "50"; value: "38.3022"; }
+ ListElement{ radius: "50"; angle: "55"; value: "40.9576"; }
+ ListElement{ radius: "50"; angle: "60"; value: "43.3013"; }
+ ListElement{ radius: "50"; angle: "65"; value: "45.3154"; }
+ ListElement{ radius: "50"; angle: "70"; value: "46.9846"; }
+ ListElement{ radius: "50"; angle: "75"; value: "48.2963"; }
+ ListElement{ radius: "50"; angle: "80"; value: "49.2404"; }
+ ListElement{ radius: "50"; angle: "85"; value: "49.8097"; }
+ ListElement{ radius: "50"; angle: "90"; value: "50"; }
+ ListElement{ radius: "50"; angle: "95"; value: "49.8097"; }
+ ListElement{ radius: "50"; angle: "100"; value: "49.2404"; }
+ ListElement{ radius: "50"; angle: "105"; value: "48.2963"; }
+ ListElement{ radius: "50"; angle: "110"; value: "46.9846"; }
+ ListElement{ radius: "50"; angle: "115"; value: "45.3154"; }
+ ListElement{ radius: "50"; angle: "120"; value: "43.3013"; }
+ ListElement{ radius: "50"; angle: "125"; value: "40.9576"; }
+ ListElement{ radius: "50"; angle: "130"; value: "38.3022"; }
+ ListElement{ radius: "50"; angle: "135"; value: "35.3553"; }
+ ListElement{ radius: "50"; angle: "140"; value: "32.1394"; }
+ ListElement{ radius: "50"; angle: "145"; value: "28.6788"; }
+ ListElement{ radius: "50"; angle: "150"; value: "25"; }
+ ListElement{ radius: "50"; angle: "155"; value: "21.1309"; }
+ ListElement{ radius: "50"; angle: "160"; value: "17.101"; }
+ ListElement{ radius: "50"; angle: "165"; value: "12.941"; }
+ ListElement{ radius: "50"; angle: "170"; value: "8.68241"; }
+ ListElement{ radius: "50"; angle: "175"; value: "4.35779"; }
+ ListElement{ radius: "50"; angle: "180"; value: "9.18485e-15"; }
+ ListElement{ radius: "50"; angle: "185"; value: "-4.35779"; }
+ ListElement{ radius: "50"; angle: "190"; value: "-8.68241"; }
+ ListElement{ radius: "50"; angle: "195"; value: "-12.941"; }
+ ListElement{ radius: "50"; angle: "200"; value: "-17.101"; }
+ ListElement{ radius: "50"; angle: "205"; value: "-21.1309"; }
+ ListElement{ radius: "50"; angle: "210"; value: "-25"; }
+ ListElement{ radius: "50"; angle: "215"; value: "-28.6788"; }
+ ListElement{ radius: "50"; angle: "220"; value: "-32.1394"; }
+ ListElement{ radius: "50"; angle: "225"; value: "-35.3553"; }
+ ListElement{ radius: "50"; angle: "230"; value: "-38.3022"; }
+ ListElement{ radius: "50"; angle: "235"; value: "-40.9576"; }
+ ListElement{ radius: "50"; angle: "240"; value: "-43.3013"; }
+ ListElement{ radius: "50"; angle: "245"; value: "-45.3154"; }
+ ListElement{ radius: "50"; angle: "250"; value: "-46.9846"; }
+ ListElement{ radius: "50"; angle: "255"; value: "-48.2963"; }
+ ListElement{ radius: "50"; angle: "260"; value: "-49.2404"; }
+ ListElement{ radius: "50"; angle: "265"; value: "-49.8097"; }
+ ListElement{ radius: "50"; angle: "270"; value: "-50"; }
+ ListElement{ radius: "50"; angle: "275"; value: "-49.8097"; }
+ ListElement{ radius: "50"; angle: "280"; value: "-49.2404"; }
+ ListElement{ radius: "50"; angle: "285"; value: "-48.2963"; }
+ ListElement{ radius: "50"; angle: "290"; value: "-46.9846"; }
+ ListElement{ radius: "50"; angle: "295"; value: "-45.3154"; }
+ ListElement{ radius: "50"; angle: "300"; value: "-43.3013"; }
+ ListElement{ radius: "50"; angle: "305"; value: "-40.9576"; }
+ ListElement{ radius: "50"; angle: "310"; value: "-38.3022"; }
+ ListElement{ radius: "50"; angle: "315"; value: "-35.3553"; }
+ ListElement{ radius: "50"; angle: "320"; value: "-32.1394"; }
+ ListElement{ radius: "50"; angle: "325"; value: "-28.6788"; }
+ ListElement{ radius: "50"; angle: "330"; value: "-25"; }
+ ListElement{ radius: "50"; angle: "335"; value: "-21.1309"; }
+ ListElement{ radius: "50"; angle: "340"; value: "-17.101"; }
+ ListElement{ radius: "50"; angle: "345"; value: "-12.941"; }
+ ListElement{ radius: "50"; angle: "350"; value: "-8.68241"; }
+ ListElement{ radius: "50"; angle: "355"; value: "-4.35779"; }
+ ListElement{ radius: "50"; angle: "360"; value: "-9.18485e-15"; }
+ ListElement{ radius: "55"; angle: "0"; value: "-7.82172"; }
+ ListElement{ radius: "55"; angle: "5"; value: "-3.46394"; }
+ ListElement{ radius: "55"; angle: "10"; value: "0.860686"; }
+ ListElement{ radius: "55"; angle: "15"; value: "5.11923"; }
+ ListElement{ radius: "55"; angle: "20"; value: "9.27928"; }
+ ListElement{ radius: "55"; angle: "25"; value: "13.3092"; }
+ ListElement{ radius: "55"; angle: "30"; value: "17.1783"; }
+ ListElement{ radius: "55"; angle: "35"; value: "20.8571"; }
+ ListElement{ radius: "55"; angle: "40"; value: "24.3177"; }
+ ListElement{ radius: "55"; angle: "45"; value: "27.5336"; }
+ ListElement{ radius: "55"; angle: "50"; value: "30.4805"; }
+ ListElement{ radius: "55"; angle: "55"; value: "33.1359"; }
+ ListElement{ radius: "55"; angle: "60"; value: "35.4795"; }
+ ListElement{ radius: "55"; angle: "65"; value: "37.4937"; }
+ ListElement{ radius: "55"; angle: "70"; value: "39.1629"; }
+ ListElement{ radius: "55"; angle: "75"; value: "40.4746"; }
+ ListElement{ radius: "55"; angle: "80"; value: "41.4187"; }
+ ListElement{ radius: "55"; angle: "85"; value: "41.988"; }
+ ListElement{ radius: "55"; angle: "90"; value: "42.1783"; }
+ ListElement{ radius: "55"; angle: "95"; value: "41.988"; }
+ ListElement{ radius: "55"; angle: "100"; value: "41.4187"; }
+ ListElement{ radius: "55"; angle: "105"; value: "40.4746"; }
+ ListElement{ radius: "55"; angle: "110"; value: "39.1629"; }
+ ListElement{ radius: "55"; angle: "115"; value: "37.4937"; }
+ ListElement{ radius: "55"; angle: "120"; value: "35.4795"; }
+ ListElement{ radius: "55"; angle: "125"; value: "33.1359"; }
+ ListElement{ radius: "55"; angle: "130"; value: "30.4805"; }
+ ListElement{ radius: "55"; angle: "135"; value: "27.5336"; }
+ ListElement{ radius: "55"; angle: "140"; value: "24.3177"; }
+ ListElement{ radius: "55"; angle: "145"; value: "20.8571"; }
+ ListElement{ radius: "55"; angle: "150"; value: "17.1783"; }
+ ListElement{ radius: "55"; angle: "155"; value: "13.3092"; }
+ ListElement{ radius: "55"; angle: "160"; value: "9.27928"; }
+ ListElement{ radius: "55"; angle: "165"; value: "5.11923"; }
+ ListElement{ radius: "55"; angle: "170"; value: "0.860686"; }
+ ListElement{ radius: "55"; angle: "175"; value: "-3.46394"; }
+ ListElement{ radius: "55"; angle: "180"; value: "-7.82172"; }
+ ListElement{ radius: "55"; angle: "185"; value: "-12.1795"; }
+ ListElement{ radius: "55"; angle: "190"; value: "-16.5041"; }
+ ListElement{ radius: "55"; angle: "195"; value: "-20.7627"; }
+ ListElement{ radius: "55"; angle: "200"; value: "-24.9227"; }
+ ListElement{ radius: "55"; angle: "205"; value: "-28.9526"; }
+ ListElement{ radius: "55"; angle: "210"; value: "-32.8217"; }
+ ListElement{ radius: "55"; angle: "215"; value: "-36.5005"; }
+ ListElement{ radius: "55"; angle: "220"; value: "-39.9611"; }
+ ListElement{ radius: "55"; angle: "225"; value: "-43.1771"; }
+ ListElement{ radius: "55"; angle: "230"; value: "-46.1239"; }
+ ListElement{ radius: "55"; angle: "235"; value: "-48.7793"; }
+ ListElement{ radius: "55"; angle: "240"; value: "-51.123"; }
+ ListElement{ radius: "55"; angle: "245"; value: "-53.1371"; }
+ ListElement{ radius: "55"; angle: "250"; value: "-54.8064"; }
+ ListElement{ radius: "55"; angle: "255"; value: "-56.118"; }
+ ListElement{ radius: "55"; angle: "260"; value: "-57.0621"; }
+ ListElement{ radius: "55"; angle: "265"; value: "-57.6315"; }
+ ListElement{ radius: "55"; angle: "270"; value: "-57.8217"; }
+ ListElement{ radius: "55"; angle: "275"; value: "-57.6315"; }
+ ListElement{ radius: "55"; angle: "280"; value: "-57.0621"; }
+ ListElement{ radius: "55"; angle: "285"; value: "-56.118"; }
+ ListElement{ radius: "55"; angle: "290"; value: "-54.8064"; }
+ ListElement{ radius: "55"; angle: "295"; value: "-53.1371"; }
+ ListElement{ radius: "55"; angle: "300"; value: "-51.123"; }
+ ListElement{ radius: "55"; angle: "305"; value: "-48.7793"; }
+ ListElement{ radius: "55"; angle: "310"; value: "-46.1239"; }
+ ListElement{ radius: "55"; angle: "315"; value: "-43.1771"; }
+ ListElement{ radius: "55"; angle: "320"; value: "-39.9611"; }
+ ListElement{ radius: "55"; angle: "325"; value: "-36.5005"; }
+ ListElement{ radius: "55"; angle: "330"; value: "-32.8217"; }
+ ListElement{ radius: "55"; angle: "335"; value: "-28.9526"; }
+ ListElement{ radius: "55"; angle: "340"; value: "-24.9227"; }
+ ListElement{ radius: "55"; angle: "345"; value: "-20.7627"; }
+ ListElement{ radius: "55"; angle: "350"; value: "-16.5041"; }
+ ListElement{ radius: "55"; angle: "355"; value: "-12.1795"; }
+ ListElement{ radius: "55"; angle: "360"; value: "-7.82172"; }
+ ListElement{ radius: "60"; angle: "0"; value: "-15.4508"; }
+ ListElement{ radius: "60"; angle: "5"; value: "-11.0931"; }
+ ListElement{ radius: "60"; angle: "10"; value: "-6.76844"; }
+ ListElement{ radius: "60"; angle: "15"; value: "-2.5099"; }
+ ListElement{ radius: "60"; angle: "20"; value: "1.65016"; }
+ ListElement{ radius: "60"; angle: "25"; value: "5.68006"; }
+ ListElement{ radius: "60"; angle: "30"; value: "9.54915"; }
+ ListElement{ radius: "60"; angle: "35"; value: "13.228"; }
+ ListElement{ radius: "60"; angle: "40"; value: "16.6885"; }
+ ListElement{ radius: "60"; angle: "45"; value: "19.9045"; }
+ ListElement{ radius: "60"; angle: "50"; value: "22.8514"; }
+ ListElement{ radius: "60"; angle: "55"; value: "25.5068"; }
+ ListElement{ radius: "60"; angle: "60"; value: "27.8504"; }
+ ListElement{ radius: "60"; angle: "65"; value: "29.8645"; }
+ ListElement{ radius: "60"; angle: "70"; value: "31.5338"; }
+ ListElement{ radius: "60"; angle: "75"; value: "32.8454"; }
+ ListElement{ radius: "60"; angle: "80"; value: "33.7895"; }
+ ListElement{ radius: "60"; angle: "85"; value: "34.3589"; }
+ ListElement{ radius: "60"; angle: "90"; value: "34.5492"; }
+ ListElement{ radius: "60"; angle: "95"; value: "34.3589"; }
+ ListElement{ radius: "60"; angle: "100"; value: "33.7895"; }
+ ListElement{ radius: "60"; angle: "105"; value: "32.8454"; }
+ ListElement{ radius: "60"; angle: "110"; value: "31.5338"; }
+ ListElement{ radius: "60"; angle: "115"; value: "29.8645"; }
+ ListElement{ radius: "60"; angle: "120"; value: "27.8504"; }
+ ListElement{ radius: "60"; angle: "125"; value: "25.5068"; }
+ ListElement{ radius: "60"; angle: "130"; value: "22.8514"; }
+ ListElement{ radius: "60"; angle: "135"; value: "19.9045"; }
+ ListElement{ radius: "60"; angle: "140"; value: "16.6885"; }
+ ListElement{ radius: "60"; angle: "145"; value: "13.228"; }
+ ListElement{ radius: "60"; angle: "150"; value: "9.54915"; }
+ ListElement{ radius: "60"; angle: "155"; value: "5.68006"; }
+ ListElement{ radius: "60"; angle: "160"; value: "1.65016"; }
+ ListElement{ radius: "60"; angle: "165"; value: "-2.5099"; }
+ ListElement{ radius: "60"; angle: "170"; value: "-6.76844"; }
+ ListElement{ radius: "60"; angle: "175"; value: "-11.0931"; }
+ ListElement{ radius: "60"; angle: "180"; value: "-15.4508"; }
+ ListElement{ radius: "60"; angle: "185"; value: "-19.8086"; }
+ ListElement{ radius: "60"; angle: "190"; value: "-24.1333"; }
+ ListElement{ radius: "60"; angle: "195"; value: "-28.3918"; }
+ ListElement{ radius: "60"; angle: "200"; value: "-32.5519"; }
+ ListElement{ radius: "60"; angle: "205"; value: "-36.5818"; }
+ ListElement{ radius: "60"; angle: "210"; value: "-40.4508"; }
+ ListElement{ radius: "60"; angle: "215"; value: "-44.1297"; }
+ ListElement{ radius: "60"; angle: "220"; value: "-47.5902"; }
+ ListElement{ radius: "60"; angle: "225"; value: "-50.8062"; }
+ ListElement{ radius: "60"; angle: "230"; value: "-53.7531"; }
+ ListElement{ radius: "60"; angle: "235"; value: "-56.4085"; }
+ ListElement{ radius: "60"; angle: "240"; value: "-58.7521"; }
+ ListElement{ radius: "60"; angle: "245"; value: "-60.7662"; }
+ ListElement{ radius: "60"; angle: "250"; value: "-62.4355"; }
+ ListElement{ radius: "60"; angle: "255"; value: "-63.7471"; }
+ ListElement{ radius: "60"; angle: "260"; value: "-64.6912"; }
+ ListElement{ radius: "60"; angle: "265"; value: "-65.2606"; }
+ ListElement{ radius: "60"; angle: "270"; value: "-65.4508"; }
+ ListElement{ radius: "60"; angle: "275"; value: "-65.2606"; }
+ ListElement{ radius: "60"; angle: "280"; value: "-64.6912"; }
+ ListElement{ radius: "60"; angle: "285"; value: "-63.7471"; }
+ ListElement{ radius: "60"; angle: "290"; value: "-62.4355"; }
+ ListElement{ radius: "60"; angle: "295"; value: "-60.7662"; }
+ ListElement{ radius: "60"; angle: "300"; value: "-58.7521"; }
+ ListElement{ radius: "60"; angle: "305"; value: "-56.4085"; }
+ ListElement{ radius: "60"; angle: "310"; value: "-53.7531"; }
+ ListElement{ radius: "60"; angle: "315"; value: "-50.8062"; }
+ ListElement{ radius: "60"; angle: "320"; value: "-47.5902"; }
+ ListElement{ radius: "60"; angle: "325"; value: "-44.1297"; }
+ ListElement{ radius: "60"; angle: "330"; value: "-40.4508"; }
+ ListElement{ radius: "60"; angle: "335"; value: "-36.5818"; }
+ ListElement{ radius: "60"; angle: "340"; value: "-32.5519"; }
+ ListElement{ radius: "60"; angle: "345"; value: "-28.3918"; }
+ ListElement{ radius: "60"; angle: "350"; value: "-24.1333"; }
+ ListElement{ radius: "60"; angle: "355"; value: "-19.8086"; }
+ ListElement{ radius: "60"; angle: "360"; value: "-15.4508"; }
+ ListElement{ radius: "65"; angle: "0"; value: "-22.6995"; }
+ ListElement{ radius: "65"; angle: "5"; value: "-18.3417"; }
+ ListElement{ radius: "65"; angle: "10"; value: "-14.0171"; }
+ ListElement{ radius: "65"; angle: "15"; value: "-9.75857"; }
+ ListElement{ radius: "65"; angle: "20"; value: "-5.59852"; }
+ ListElement{ radius: "65"; angle: "25"; value: "-1.56861"; }
+ ListElement{ radius: "65"; angle: "30"; value: "2.30048"; }
+ ListElement{ radius: "65"; angle: "35"; value: "5.9793"; }
+ ListElement{ radius: "65"; angle: "40"; value: "9.43986"; }
+ ListElement{ radius: "65"; angle: "45"; value: "12.6558"; }
+ ListElement{ radius: "65"; angle: "50"; value: "15.6027"; }
+ ListElement{ radius: "65"; angle: "55"; value: "18.2581"; }
+ ListElement{ radius: "65"; angle: "60"; value: "20.6017"; }
+ ListElement{ radius: "65"; angle: "65"; value: "22.6159"; }
+ ListElement{ radius: "65"; angle: "70"; value: "24.2851"; }
+ ListElement{ radius: "65"; angle: "75"; value: "25.5968"; }
+ ListElement{ radius: "65"; angle: "80"; value: "26.5409"; }
+ ListElement{ radius: "65"; angle: "85"; value: "27.1102"; }
+ ListElement{ radius: "65"; angle: "90"; value: "27.3005"; }
+ ListElement{ radius: "65"; angle: "95"; value: "27.1102"; }
+ ListElement{ radius: "65"; angle: "100"; value: "26.5409"; }
+ ListElement{ radius: "65"; angle: "105"; value: "25.5968"; }
+ ListElement{ radius: "65"; angle: "110"; value: "24.2851"; }
+ ListElement{ radius: "65"; angle: "115"; value: "22.6159"; }
+ ListElement{ radius: "65"; angle: "120"; value: "20.6017"; }
+ ListElement{ radius: "65"; angle: "125"; value: "18.2581"; }
+ ListElement{ radius: "65"; angle: "130"; value: "15.6027"; }
+ ListElement{ radius: "65"; angle: "135"; value: "12.6558"; }
+ ListElement{ radius: "65"; angle: "140"; value: "9.43986"; }
+ ListElement{ radius: "65"; angle: "145"; value: "5.9793"; }
+ ListElement{ radius: "65"; angle: "150"; value: "2.30048"; }
+ ListElement{ radius: "65"; angle: "155"; value: "-1.56861"; }
+ ListElement{ radius: "65"; angle: "160"; value: "-5.59852"; }
+ ListElement{ radius: "65"; angle: "165"; value: "-9.75857"; }
+ ListElement{ radius: "65"; angle: "170"; value: "-14.0171"; }
+ ListElement{ radius: "65"; angle: "175"; value: "-18.3417"; }
+ ListElement{ radius: "65"; angle: "180"; value: "-22.6995"; }
+ ListElement{ radius: "65"; angle: "185"; value: "-27.0573"; }
+ ListElement{ radius: "65"; angle: "190"; value: "-31.3819"; }
+ ListElement{ radius: "65"; angle: "195"; value: "-35.6405"; }
+ ListElement{ radius: "65"; angle: "200"; value: "-39.8005"; }
+ ListElement{ radius: "65"; angle: "205"; value: "-43.8304"; }
+ ListElement{ radius: "65"; angle: "210"; value: "-47.6995"; }
+ ListElement{ radius: "65"; angle: "215"; value: "-51.3783"; }
+ ListElement{ radius: "65"; angle: "220"; value: "-54.8389"; }
+ ListElement{ radius: "65"; angle: "225"; value: "-58.0549"; }
+ ListElement{ radius: "65"; angle: "230"; value: "-61.0017"; }
+ ListElement{ radius: "65"; angle: "235"; value: "-63.6571"; }
+ ListElement{ radius: "65"; angle: "240"; value: "-66.0008"; }
+ ListElement{ radius: "65"; angle: "245"; value: "-68.0149"; }
+ ListElement{ radius: "65"; angle: "250"; value: "-69.6842"; }
+ ListElement{ radius: "65"; angle: "255"; value: "-70.9958"; }
+ ListElement{ radius: "65"; angle: "260"; value: "-71.9399"; }
+ ListElement{ radius: "65"; angle: "265"; value: "-72.5093"; }
+ ListElement{ radius: "65"; angle: "270"; value: "-72.6995"; }
+ ListElement{ radius: "65"; angle: "275"; value: "-72.5093"; }
+ ListElement{ radius: "65"; angle: "280"; value: "-71.9399"; }
+ ListElement{ radius: "65"; angle: "285"; value: "-70.9958"; }
+ ListElement{ radius: "65"; angle: "290"; value: "-69.6842"; }
+ ListElement{ radius: "65"; angle: "295"; value: "-68.0149"; }
+ ListElement{ radius: "65"; angle: "300"; value: "-66.0008"; }
+ ListElement{ radius: "65"; angle: "305"; value: "-63.6571"; }
+ ListElement{ radius: "65"; angle: "310"; value: "-61.0017"; }
+ ListElement{ radius: "65"; angle: "315"; value: "-58.0549"; }
+ ListElement{ radius: "65"; angle: "320"; value: "-54.8389"; }
+ ListElement{ radius: "65"; angle: "325"; value: "-51.3783"; }
+ ListElement{ radius: "65"; angle: "330"; value: "-47.6995"; }
+ ListElement{ radius: "65"; angle: "335"; value: "-43.8304"; }
+ ListElement{ radius: "65"; angle: "340"; value: "-39.8005"; }
+ ListElement{ radius: "65"; angle: "345"; value: "-35.6405"; }
+ ListElement{ radius: "65"; angle: "350"; value: "-31.3819"; }
+ ListElement{ radius: "65"; angle: "355"; value: "-27.0573"; }
+ ListElement{ radius: "65"; angle: "360"; value: "-22.6995"; }
+ ListElement{ radius: "70"; angle: "0"; value: "-29.3893"; }
+ ListElement{ radius: "70"; angle: "5"; value: "-25.0315"; }
+ ListElement{ radius: "70"; angle: "10"; value: "-20.7069"; }
+ ListElement{ radius: "70"; angle: "15"; value: "-16.4483"; }
+ ListElement{ radius: "70"; angle: "20"; value: "-12.2883"; }
+ ListElement{ radius: "70"; angle: "25"; value: "-8.25835"; }
+ ListElement{ radius: "70"; angle: "30"; value: "-4.38926"; }
+ ListElement{ radius: "70"; angle: "35"; value: "-0.710441"; }
+ ListElement{ radius: "70"; angle: "40"; value: "2.75012"; }
+ ListElement{ radius: "70"; angle: "45"; value: "5.96608"; }
+ ListElement{ radius: "70"; angle: "50"; value: "8.91296"; }
+ ListElement{ radius: "70"; angle: "55"; value: "11.5683"; }
+ ListElement{ radius: "70"; angle: "60"; value: "13.912"; }
+ ListElement{ radius: "70"; angle: "65"; value: "15.9261"; }
+ ListElement{ radius: "70"; angle: "70"; value: "17.5954"; }
+ ListElement{ radius: "70"; angle: "75"; value: "18.907"; }
+ ListElement{ radius: "70"; angle: "80"; value: "19.8511"; }
+ ListElement{ radius: "70"; angle: "85"; value: "20.4205"; }
+ ListElement{ radius: "70"; angle: "90"; value: "20.6107"; }
+ ListElement{ radius: "70"; angle: "95"; value: "20.4205"; }
+ ListElement{ radius: "70"; angle: "100"; value: "19.8511"; }
+ ListElement{ radius: "70"; angle: "105"; value: "18.907"; }
+ ListElement{ radius: "70"; angle: "110"; value: "17.5954"; }
+ ListElement{ radius: "70"; angle: "115"; value: "15.9261"; }
+ ListElement{ radius: "70"; angle: "120"; value: "13.912"; }
+ ListElement{ radius: "70"; angle: "125"; value: "11.5683"; }
+ ListElement{ radius: "70"; angle: "130"; value: "8.91296"; }
+ ListElement{ radius: "70"; angle: "135"; value: "5.96608"; }
+ ListElement{ radius: "70"; angle: "140"; value: "2.75012"; }
+ ListElement{ radius: "70"; angle: "145"; value: "-0.710441"; }
+ ListElement{ radius: "70"; angle: "150"; value: "-4.38926"; }
+ ListElement{ radius: "70"; angle: "155"; value: "-8.25835"; }
+ ListElement{ radius: "70"; angle: "160"; value: "-12.2883"; }
+ ListElement{ radius: "70"; angle: "165"; value: "-16.4483"; }
+ ListElement{ radius: "70"; angle: "170"; value: "-20.7069"; }
+ ListElement{ radius: "70"; angle: "175"; value: "-25.0315"; }
+ ListElement{ radius: "70"; angle: "180"; value: "-29.3893"; }
+ ListElement{ radius: "70"; angle: "185"; value: "-33.747"; }
+ ListElement{ radius: "70"; angle: "190"; value: "-38.0717"; }
+ ListElement{ radius: "70"; angle: "195"; value: "-42.3302"; }
+ ListElement{ radius: "70"; angle: "200"; value: "-46.4903"; }
+ ListElement{ radius: "70"; angle: "205"; value: "-50.5202"; }
+ ListElement{ radius: "70"; angle: "210"; value: "-54.3893"; }
+ ListElement{ radius: "70"; angle: "215"; value: "-58.0681"; }
+ ListElement{ radius: "70"; angle: "220"; value: "-61.5286"; }
+ ListElement{ radius: "70"; angle: "225"; value: "-64.7446"; }
+ ListElement{ radius: "70"; angle: "230"; value: "-67.6915"; }
+ ListElement{ radius: "70"; angle: "235"; value: "-70.3469"; }
+ ListElement{ radius: "70"; angle: "240"; value: "-72.6905"; }
+ ListElement{ radius: "70"; angle: "245"; value: "-74.7047"; }
+ ListElement{ radius: "70"; angle: "250"; value: "-76.3739"; }
+ ListElement{ radius: "70"; angle: "255"; value: "-77.6856"; }
+ ListElement{ radius: "70"; angle: "260"; value: "-78.6297"; }
+ ListElement{ radius: "70"; angle: "265"; value: "-79.199"; }
+ ListElement{ radius: "70"; angle: "270"; value: "-79.3893"; }
+ ListElement{ radius: "70"; angle: "275"; value: "-79.199"; }
+ ListElement{ radius: "70"; angle: "280"; value: "-78.6297"; }
+ ListElement{ radius: "70"; angle: "285"; value: "-77.6856"; }
+ ListElement{ radius: "70"; angle: "290"; value: "-76.3739"; }
+ ListElement{ radius: "70"; angle: "295"; value: "-74.7047"; }
+ ListElement{ radius: "70"; angle: "300"; value: "-72.6905"; }
+ ListElement{ radius: "70"; angle: "305"; value: "-70.3469"; }
+ ListElement{ radius: "70"; angle: "310"; value: "-67.6915"; }
+ ListElement{ radius: "70"; angle: "315"; value: "-64.7446"; }
+ ListElement{ radius: "70"; angle: "320"; value: "-61.5286"; }
+ ListElement{ radius: "70"; angle: "325"; value: "-58.0681"; }
+ ListElement{ radius: "70"; angle: "330"; value: "-54.3893"; }
+ ListElement{ radius: "70"; angle: "335"; value: "-50.5202"; }
+ ListElement{ radius: "70"; angle: "340"; value: "-46.4903"; }
+ ListElement{ radius: "70"; angle: "345"; value: "-42.3302"; }
+ ListElement{ radius: "70"; angle: "350"; value: "-38.0717"; }
+ ListElement{ radius: "70"; angle: "355"; value: "-33.747"; }
+ ListElement{ radius: "70"; angle: "360"; value: "-29.3893"; }
+ ListElement{ radius: "75"; angle: "0"; value: "-35.3553"; }
+ ListElement{ radius: "75"; angle: "5"; value: "-30.9976"; }
+ ListElement{ radius: "75"; angle: "10"; value: "-26.6729"; }
+ ListElement{ radius: "75"; angle: "15"; value: "-22.4144"; }
+ ListElement{ radius: "75"; angle: "20"; value: "-18.2543"; }
+ ListElement{ radius: "75"; angle: "25"; value: "-14.2244"; }
+ ListElement{ radius: "75"; angle: "30"; value: "-10.3553"; }
+ ListElement{ radius: "75"; angle: "35"; value: "-6.67652"; }
+ ListElement{ radius: "75"; angle: "40"; value: "-3.21596"; }
+ ListElement{ radius: "75"; angle: "45"; value: "5.55112e-15"; }
+ ListElement{ radius: "75"; angle: "50"; value: "2.94688"; }
+ ListElement{ radius: "75"; angle: "55"; value: "5.60226"; }
+ ListElement{ radius: "75"; angle: "60"; value: "7.94593"; }
+ ListElement{ radius: "75"; angle: "65"; value: "9.96005"; }
+ ListElement{ radius: "75"; angle: "70"; value: "11.6293"; }
+ ListElement{ radius: "75"; angle: "75"; value: "12.941"; }
+ ListElement{ radius: "75"; angle: "80"; value: "13.885"; }
+ ListElement{ radius: "75"; angle: "85"; value: "14.4544"; }
+ ListElement{ radius: "75"; angle: "90"; value: "14.6447"; }
+ ListElement{ radius: "75"; angle: "95"; value: "14.4544"; }
+ ListElement{ radius: "75"; angle: "100"; value: "13.885"; }
+ ListElement{ radius: "75"; angle: "105"; value: "12.941"; }
+ ListElement{ radius: "75"; angle: "110"; value: "11.6293"; }
+ ListElement{ radius: "75"; angle: "115"; value: "9.96005"; }
+ ListElement{ radius: "75"; angle: "120"; value: "7.94593"; }
+ ListElement{ radius: "75"; angle: "125"; value: "5.60226"; }
+ ListElement{ radius: "75"; angle: "130"; value: "2.94688"; }
+ ListElement{ radius: "75"; angle: "135"; value: "5.55112e-15"; }
+ ListElement{ radius: "75"; angle: "140"; value: "-3.21596"; }
+ ListElement{ radius: "75"; angle: "145"; value: "-6.67652"; }
+ ListElement{ radius: "75"; angle: "150"; value: "-10.3553"; }
+ ListElement{ radius: "75"; angle: "155"; value: "-14.2244"; }
+ ListElement{ radius: "75"; angle: "160"; value: "-18.2543"; }
+ ListElement{ radius: "75"; angle: "165"; value: "-22.4144"; }
+ ListElement{ radius: "75"; angle: "170"; value: "-26.6729"; }
+ ListElement{ radius: "75"; angle: "175"; value: "-30.9976"; }
+ ListElement{ radius: "75"; angle: "180"; value: "-35.3553"; }
+ ListElement{ radius: "75"; angle: "185"; value: "-39.7131"; }
+ ListElement{ radius: "75"; angle: "190"; value: "-44.0377"; }
+ ListElement{ radius: "75"; angle: "195"; value: "-48.2963"; }
+ ListElement{ radius: "75"; angle: "200"; value: "-52.4563"; }
+ ListElement{ radius: "75"; angle: "205"; value: "-56.4863"; }
+ ListElement{ radius: "75"; angle: "210"; value: "-60.3553"; }
+ ListElement{ radius: "75"; angle: "215"; value: "-64.0342"; }
+ ListElement{ radius: "75"; angle: "220"; value: "-67.4947"; }
+ ListElement{ radius: "75"; angle: "225"; value: "-70.7107"; }
+ ListElement{ radius: "75"; angle: "230"; value: "-73.6576"; }
+ ListElement{ radius: "75"; angle: "235"; value: "-76.3129"; }
+ ListElement{ radius: "75"; angle: "240"; value: "-78.6566"; }
+ ListElement{ radius: "75"; angle: "245"; value: "-80.6707"; }
+ ListElement{ radius: "75"; angle: "250"; value: "-82.34"; }
+ ListElement{ radius: "75"; angle: "255"; value: "-83.6516"; }
+ ListElement{ radius: "75"; angle: "260"; value: "-84.5957"; }
+ ListElement{ radius: "75"; angle: "265"; value: "-85.1651"; }
+ ListElement{ radius: "75"; angle: "270"; value: "-85.3553"; }
+ ListElement{ radius: "75"; angle: "275"; value: "-85.1651"; }
+ ListElement{ radius: "75"; angle: "280"; value: "-84.5957"; }
+ ListElement{ radius: "75"; angle: "285"; value: "-83.6516"; }
+ ListElement{ radius: "75"; angle: "290"; value: "-82.34"; }
+ ListElement{ radius: "75"; angle: "295"; value: "-80.6707"; }
+ ListElement{ radius: "75"; angle: "300"; value: "-78.6566"; }
+ ListElement{ radius: "75"; angle: "305"; value: "-76.3129"; }
+ ListElement{ radius: "75"; angle: "310"; value: "-73.6576"; }
+ ListElement{ radius: "75"; angle: "315"; value: "-70.7107"; }
+ ListElement{ radius: "75"; angle: "320"; value: "-67.4947"; }
+ ListElement{ radius: "75"; angle: "325"; value: "-64.0342"; }
+ ListElement{ radius: "75"; angle: "330"; value: "-60.3553"; }
+ ListElement{ radius: "75"; angle: "335"; value: "-56.4863"; }
+ ListElement{ radius: "75"; angle: "340"; value: "-52.4563"; }
+ ListElement{ radius: "75"; angle: "345"; value: "-48.2963"; }
+ ListElement{ radius: "75"; angle: "350"; value: "-44.0377"; }
+ ListElement{ radius: "75"; angle: "355"; value: "-39.7131"; }
+ ListElement{ radius: "75"; angle: "360"; value: "-35.3553"; }
+ ListElement{ radius: "80"; angle: "0"; value: "-40.4508"; }
+ ListElement{ radius: "80"; angle: "5"; value: "-36.0931"; }
+ ListElement{ radius: "80"; angle: "10"; value: "-31.7684"; }
+ ListElement{ radius: "80"; angle: "15"; value: "-27.5099"; }
+ ListElement{ radius: "80"; angle: "20"; value: "-23.3498"; }
+ ListElement{ radius: "80"; angle: "25"; value: "-19.3199"; }
+ ListElement{ radius: "80"; angle: "30"; value: "-15.4508"; }
+ ListElement{ radius: "80"; angle: "35"; value: "-11.772"; }
+ ListElement{ radius: "80"; angle: "40"; value: "-8.31147"; }
+ ListElement{ radius: "80"; angle: "45"; value: "-5.09551"; }
+ ListElement{ radius: "80"; angle: "50"; value: "-2.14863"; }
+ ListElement{ radius: "80"; angle: "55"; value: "0.506752"; }
+ ListElement{ radius: "80"; angle: "60"; value: "2.85042"; }
+ ListElement{ radius: "80"; angle: "65"; value: "4.86454"; }
+ ListElement{ radius: "80"; angle: "70"; value: "6.53378"; }
+ ListElement{ radius: "80"; angle: "75"; value: "7.84544"; }
+ ListElement{ radius: "80"; angle: "80"; value: "8.78954"; }
+ ListElement{ radius: "80"; angle: "85"; value: "9.35889"; }
+ ListElement{ radius: "80"; angle: "90"; value: "9.54915"; }
+ ListElement{ radius: "80"; angle: "95"; value: "9.35889"; }
+ ListElement{ radius: "80"; angle: "100"; value: "8.78954"; }
+ ListElement{ radius: "80"; angle: "105"; value: "7.84544"; }
+ ListElement{ radius: "80"; angle: "110"; value: "6.53378"; }
+ ListElement{ radius: "80"; angle: "115"; value: "4.86454"; }
+ ListElement{ radius: "80"; angle: "120"; value: "2.85042"; }
+ ListElement{ radius: "80"; angle: "125"; value: "0.506752"; }
+ ListElement{ radius: "80"; angle: "130"; value: "-2.14863"; }
+ ListElement{ radius: "80"; angle: "135"; value: "-5.09551"; }
+ ListElement{ radius: "80"; angle: "140"; value: "-8.31147"; }
+ ListElement{ radius: "80"; angle: "145"; value: "-11.772"; }
+ ListElement{ radius: "80"; angle: "150"; value: "-15.4508"; }
+ ListElement{ radius: "80"; angle: "155"; value: "-19.3199"; }
+ ListElement{ radius: "80"; angle: "160"; value: "-23.3498"; }
+ ListElement{ radius: "80"; angle: "165"; value: "-27.5099"; }
+ ListElement{ radius: "80"; angle: "170"; value: "-31.7684"; }
+ ListElement{ radius: "80"; angle: "175"; value: "-36.0931"; }
+ ListElement{ radius: "80"; angle: "180"; value: "-40.4508"; }
+ ListElement{ radius: "80"; angle: "185"; value: "-44.8086"; }
+ ListElement{ radius: "80"; angle: "190"; value: "-49.1333"; }
+ ListElement{ radius: "80"; angle: "195"; value: "-53.3918"; }
+ ListElement{ radius: "80"; angle: "200"; value: "-57.5519"; }
+ ListElement{ radius: "80"; angle: "205"; value: "-61.5818"; }
+ ListElement{ radius: "80"; angle: "210"; value: "-65.4508"; }
+ ListElement{ radius: "80"; angle: "215"; value: "-69.1297"; }
+ ListElement{ radius: "80"; angle: "220"; value: "-72.5902"; }
+ ListElement{ radius: "80"; angle: "225"; value: "-75.8062"; }
+ ListElement{ radius: "80"; angle: "230"; value: "-78.7531"; }
+ ListElement{ radius: "80"; angle: "235"; value: "-81.4085"; }
+ ListElement{ radius: "80"; angle: "240"; value: "-83.7521"; }
+ ListElement{ radius: "80"; angle: "245"; value: "-85.7662"; }
+ ListElement{ radius: "80"; angle: "250"; value: "-87.4355"; }
+ ListElement{ radius: "80"; angle: "255"; value: "-88.7471"; }
+ ListElement{ radius: "80"; angle: "260"; value: "-89.6912"; }
+ ListElement{ radius: "80"; angle: "265"; value: "-90.2606"; }
+ ListElement{ radius: "80"; angle: "270"; value: "-90.4508"; }
+ ListElement{ radius: "80"; angle: "275"; value: "-90.2606"; }
+ ListElement{ radius: "80"; angle: "280"; value: "-89.6912"; }
+ ListElement{ radius: "80"; angle: "285"; value: "-88.7471"; }
+ ListElement{ radius: "80"; angle: "290"; value: "-87.4355"; }
+ ListElement{ radius: "80"; angle: "295"; value: "-85.7662"; }
+ ListElement{ radius: "80"; angle: "300"; value: "-83.7521"; }
+ ListElement{ radius: "80"; angle: "305"; value: "-81.4085"; }
+ ListElement{ radius: "80"; angle: "310"; value: "-78.7531"; }
+ ListElement{ radius: "80"; angle: "315"; value: "-75.8062"; }
+ ListElement{ radius: "80"; angle: "320"; value: "-72.5902"; }
+ ListElement{ radius: "80"; angle: "325"; value: "-69.1297"; }
+ ListElement{ radius: "80"; angle: "330"; value: "-65.4508"; }
+ ListElement{ radius: "80"; angle: "335"; value: "-61.5818"; }
+ ListElement{ radius: "80"; angle: "340"; value: "-57.5519"; }
+ ListElement{ radius: "80"; angle: "345"; value: "-53.3918"; }
+ ListElement{ radius: "80"; angle: "350"; value: "-49.1333"; }
+ ListElement{ radius: "80"; angle: "355"; value: "-44.8086"; }
+ ListElement{ radius: "80"; angle: "360"; value: "-40.4508"; }
+ ListElement{ radius: "85"; angle: "0"; value: "-44.5503"; }
+ ListElement{ radius: "85"; angle: "5"; value: "-40.1925"; }
+ ListElement{ radius: "85"; angle: "10"; value: "-35.8679"; }
+ ListElement{ radius: "85"; angle: "15"; value: "-31.6094"; }
+ ListElement{ radius: "85"; angle: "20"; value: "-27.4493"; }
+ ListElement{ radius: "85"; angle: "25"; value: "-23.4194"; }
+ ListElement{ radius: "85"; angle: "30"; value: "-19.5503"; }
+ ListElement{ radius: "85"; angle: "35"; value: "-15.8715"; }
+ ListElement{ radius: "85"; angle: "40"; value: "-12.4109"; }
+ ListElement{ radius: "85"; angle: "45"; value: "-9.19499"; }
+ ListElement{ radius: "85"; angle: "50"; value: "-6.2481"; }
+ ListElement{ radius: "85"; angle: "55"; value: "-3.59272"; }
+ ListElement{ radius: "85"; angle: "60"; value: "-1.24906"; }
+ ListElement{ radius: "85"; angle: "65"; value: "0.765063"; }
+ ListElement{ radius: "85"; angle: "70"; value: "2.4343"; }
+ ListElement{ radius: "85"; angle: "75"; value: "3.74597"; }
+ ListElement{ radius: "85"; angle: "80"; value: "4.69006"; }
+ ListElement{ radius: "85"; angle: "85"; value: "5.25941"; }
+ ListElement{ radius: "85"; angle: "90"; value: "5.44967"; }
+ ListElement{ radius: "85"; angle: "95"; value: "5.25941"; }
+ ListElement{ radius: "85"; angle: "100"; value: "4.69006"; }
+ ListElement{ radius: "85"; angle: "105"; value: "3.74597"; }
+ ListElement{ radius: "85"; angle: "110"; value: "2.4343"; }
+ ListElement{ radius: "85"; angle: "115"; value: "0.765063"; }
+ ListElement{ radius: "85"; angle: "120"; value: "-1.24906"; }
+ ListElement{ radius: "85"; angle: "125"; value: "-3.59272"; }
+ ListElement{ radius: "85"; angle: "130"; value: "-6.2481"; }
+ ListElement{ radius: "85"; angle: "135"; value: "-9.19499"; }
+ ListElement{ radius: "85"; angle: "140"; value: "-12.4109"; }
+ ListElement{ radius: "85"; angle: "145"; value: "-15.8715"; }
+ ListElement{ radius: "85"; angle: "150"; value: "-19.5503"; }
+ ListElement{ radius: "85"; angle: "155"; value: "-23.4194"; }
+ ListElement{ radius: "85"; angle: "160"; value: "-27.4493"; }
+ ListElement{ radius: "85"; angle: "165"; value: "-31.6094"; }
+ ListElement{ radius: "85"; angle: "170"; value: "-35.8679"; }
+ ListElement{ radius: "85"; angle: "175"; value: "-40.1925"; }
+ ListElement{ radius: "85"; angle: "180"; value: "-44.5503"; }
+ ListElement{ radius: "85"; angle: "185"; value: "-48.9081"; }
+ ListElement{ radius: "85"; angle: "190"; value: "-53.2327"; }
+ ListElement{ radius: "85"; angle: "195"; value: "-57.4913"; }
+ ListElement{ radius: "85"; angle: "200"; value: "-61.6513"; }
+ ListElement{ radius: "85"; angle: "205"; value: "-65.6812"; }
+ ListElement{ radius: "85"; angle: "210"; value: "-69.5503"; }
+ ListElement{ radius: "85"; angle: "215"; value: "-73.2291"; }
+ ListElement{ radius: "85"; angle: "220"; value: "-76.6897"; }
+ ListElement{ radius: "85"; angle: "225"; value: "-79.9057"; }
+ ListElement{ radius: "85"; angle: "230"; value: "-82.8525"; }
+ ListElement{ radius: "85"; angle: "235"; value: "-85.5079"; }
+ ListElement{ radius: "85"; angle: "240"; value: "-87.8516"; }
+ ListElement{ radius: "85"; angle: "245"; value: "-89.8657"; }
+ ListElement{ radius: "85"; angle: "250"; value: "-91.535"; }
+ ListElement{ radius: "85"; angle: "255"; value: "-92.8466"; }
+ ListElement{ radius: "85"; angle: "260"; value: "-93.7907"; }
+ ListElement{ radius: "85"; angle: "265"; value: "-94.3601"; }
+ ListElement{ radius: "85"; angle: "270"; value: "-94.5503"; }
+ ListElement{ radius: "85"; angle: "275"; value: "-94.3601"; }
+ ListElement{ radius: "85"; angle: "280"; value: "-93.7907"; }
+ ListElement{ radius: "85"; angle: "285"; value: "-92.8466"; }
+ ListElement{ radius: "85"; angle: "290"; value: "-91.535"; }
+ ListElement{ radius: "85"; angle: "295"; value: "-89.8657"; }
+ ListElement{ radius: "85"; angle: "300"; value: "-87.8516"; }
+ ListElement{ radius: "85"; angle: "305"; value: "-85.5079"; }
+ ListElement{ radius: "85"; angle: "310"; value: "-82.8525"; }
+ ListElement{ radius: "85"; angle: "315"; value: "-79.9057"; }
+ ListElement{ radius: "85"; angle: "320"; value: "-76.6897"; }
+ ListElement{ radius: "85"; angle: "325"; value: "-73.2291"; }
+ ListElement{ radius: "85"; angle: "330"; value: "-69.5503"; }
+ ListElement{ radius: "85"; angle: "335"; value: "-65.6812"; }
+ ListElement{ radius: "85"; angle: "340"; value: "-61.6513"; }
+ ListElement{ radius: "85"; angle: "345"; value: "-57.4913"; }
+ ListElement{ radius: "85"; angle: "350"; value: "-53.2327"; }
+ ListElement{ radius: "85"; angle: "355"; value: "-48.9081"; }
+ ListElement{ radius: "85"; angle: "360"; value: "-44.5503"; }
+ ListElement{ radius: "90"; angle: "0"; value: "-47.5528"; }
+ ListElement{ radius: "90"; angle: "5"; value: "-43.195"; }
+ ListElement{ radius: "90"; angle: "10"; value: "-38.8704"; }
+ ListElement{ radius: "90"; angle: "15"; value: "-34.6119"; }
+ ListElement{ radius: "90"; angle: "20"; value: "-30.4518"; }
+ ListElement{ radius: "90"; angle: "25"; value: "-26.4219"; }
+ ListElement{ radius: "90"; angle: "30"; value: "-22.5528"; }
+ ListElement{ radius: "90"; angle: "35"; value: "-18.874"; }
+ ListElement{ radius: "90"; angle: "40"; value: "-15.4134"; }
+ ListElement{ radius: "90"; angle: "45"; value: "-12.1975"; }
+ ListElement{ radius: "90"; angle: "50"; value: "-9.2506"; }
+ ListElement{ radius: "90"; angle: "55"; value: "-6.59522"; }
+ ListElement{ radius: "90"; angle: "60"; value: "-4.25156"; }
+ ListElement{ radius: "90"; angle: "65"; value: "-2.23744"; }
+ ListElement{ radius: "90"; angle: "70"; value: "-0.568195"; }
+ ListElement{ radius: "90"; angle: "75"; value: "0.743465"; }
+ ListElement{ radius: "90"; angle: "80"; value: "1.68756"; }
+ ListElement{ radius: "90"; angle: "85"; value: "2.25691"; }
+ ListElement{ radius: "90"; angle: "90"; value: "2.44717"; }
+ ListElement{ radius: "90"; angle: "95"; value: "2.25691"; }
+ ListElement{ radius: "90"; angle: "100"; value: "1.68756"; }
+ ListElement{ radius: "90"; angle: "105"; value: "0.743465"; }
+ ListElement{ radius: "90"; angle: "110"; value: "-0.568195"; }
+ ListElement{ radius: "90"; angle: "115"; value: "-2.23744"; }
+ ListElement{ radius: "90"; angle: "120"; value: "-4.25156"; }
+ ListElement{ radius: "90"; angle: "125"; value: "-6.59522"; }
+ ListElement{ radius: "90"; angle: "130"; value: "-9.2506"; }
+ ListElement{ radius: "90"; angle: "135"; value: "-12.1975"; }
+ ListElement{ radius: "90"; angle: "140"; value: "-15.4134"; }
+ ListElement{ radius: "90"; angle: "145"; value: "-18.874"; }
+ ListElement{ radius: "90"; angle: "150"; value: "-22.5528"; }
+ ListElement{ radius: "90"; angle: "155"; value: "-26.4219"; }
+ ListElement{ radius: "90"; angle: "160"; value: "-30.4518"; }
+ ListElement{ radius: "90"; angle: "165"; value: "-34.6119"; }
+ ListElement{ radius: "90"; angle: "170"; value: "-38.8704"; }
+ ListElement{ radius: "90"; angle: "175"; value: "-43.195"; }
+ ListElement{ radius: "90"; angle: "180"; value: "-47.5528"; }
+ ListElement{ radius: "90"; angle: "185"; value: "-51.9106"; }
+ ListElement{ radius: "90"; angle: "190"; value: "-56.2352"; }
+ ListElement{ radius: "90"; angle: "195"; value: "-60.4938"; }
+ ListElement{ radius: "90"; angle: "200"; value: "-64.6538"; }
+ ListElement{ radius: "90"; angle: "205"; value: "-68.6837"; }
+ ListElement{ radius: "90"; angle: "210"; value: "-72.5528"; }
+ ListElement{ radius: "90"; angle: "215"; value: "-76.2316"; }
+ ListElement{ radius: "90"; angle: "220"; value: "-79.6922"; }
+ ListElement{ radius: "90"; angle: "225"; value: "-82.9082"; }
+ ListElement{ radius: "90"; angle: "230"; value: "-85.855"; }
+ ListElement{ radius: "90"; angle: "235"; value: "-88.5104"; }
+ ListElement{ radius: "90"; angle: "240"; value: "-90.8541"; }
+ ListElement{ radius: "90"; angle: "245"; value: "-92.8682"; }
+ ListElement{ radius: "90"; angle: "250"; value: "-94.5375"; }
+ ListElement{ radius: "90"; angle: "255"; value: "-95.8491"; }
+ ListElement{ radius: "90"; angle: "260"; value: "-96.7932"; }
+ ListElement{ radius: "90"; angle: "265"; value: "-97.3626"; }
+ ListElement{ radius: "90"; angle: "270"; value: "-97.5528"; }
+ ListElement{ radius: "90"; angle: "275"; value: "-97.3626"; }
+ ListElement{ radius: "90"; angle: "280"; value: "-96.7932"; }
+ ListElement{ radius: "90"; angle: "285"; value: "-95.8491"; }
+ ListElement{ radius: "90"; angle: "290"; value: "-94.5375"; }
+ ListElement{ radius: "90"; angle: "295"; value: "-92.8682"; }
+ ListElement{ radius: "90"; angle: "300"; value: "-90.8541"; }
+ ListElement{ radius: "90"; angle: "305"; value: "-88.5104"; }
+ ListElement{ radius: "90"; angle: "310"; value: "-85.855"; }
+ ListElement{ radius: "90"; angle: "315"; value: "-82.9082"; }
+ ListElement{ radius: "90"; angle: "320"; value: "-79.6922"; }
+ ListElement{ radius: "90"; angle: "325"; value: "-76.2316"; }
+ ListElement{ radius: "90"; angle: "330"; value: "-72.5528"; }
+ ListElement{ radius: "90"; angle: "335"; value: "-68.6837"; }
+ ListElement{ radius: "90"; angle: "340"; value: "-64.6538"; }
+ ListElement{ radius: "90"; angle: "345"; value: "-60.4938"; }
+ ListElement{ radius: "90"; angle: "350"; value: "-56.2352"; }
+ ListElement{ radius: "90"; angle: "355"; value: "-51.9106"; }
+ ListElement{ radius: "90"; angle: "360"; value: "-47.5528"; }
+ ListElement{ radius: "95"; angle: "0"; value: "-49.3844"; }
+ ListElement{ radius: "95"; angle: "5"; value: "-45.0266"; }
+ ListElement{ radius: "95"; angle: "10"; value: "-40.702"; }
+ ListElement{ radius: "95"; angle: "15"; value: "-36.4435"; }
+ ListElement{ radius: "95"; angle: "20"; value: "-32.2834"; }
+ ListElement{ radius: "95"; angle: "25"; value: "-28.2535"; }
+ ListElement{ radius: "95"; angle: "30"; value: "-24.3844"; }
+ ListElement{ radius: "95"; angle: "35"; value: "-20.7056"; }
+ ListElement{ radius: "95"; angle: "40"; value: "-17.245"; }
+ ListElement{ radius: "95"; angle: "45"; value: "-14.0291"; }
+ ListElement{ radius: "95"; angle: "50"; value: "-11.0822"; }
+ ListElement{ radius: "95"; angle: "55"; value: "-8.42681"; }
+ ListElement{ radius: "95"; angle: "60"; value: "-6.08315"; }
+ ListElement{ radius: "95"; angle: "65"; value: "-4.06903"; }
+ ListElement{ radius: "95"; angle: "70"; value: "-2.39979"; }
+ ListElement{ radius: "95"; angle: "75"; value: "-1.08813"; }
+ ListElement{ radius: "95"; angle: "80"; value: "-0.144029"; }
+ ListElement{ radius: "95"; angle: "85"; value: "0.425318"; }
+ ListElement{ radius: "95"; angle: "90"; value: "0.615583"; }
+ ListElement{ radius: "95"; angle: "95"; value: "0.425318"; }
+ ListElement{ radius: "95"; angle: "100"; value: "-0.144029"; }
+ ListElement{ radius: "95"; angle: "105"; value: "-1.08813"; }
+ ListElement{ radius: "95"; angle: "110"; value: "-2.39979"; }
+ ListElement{ radius: "95"; angle: "115"; value: "-4.06903"; }
+ ListElement{ radius: "95"; angle: "120"; value: "-6.08315"; }
+ ListElement{ radius: "95"; angle: "125"; value: "-8.42681"; }
+ ListElement{ radius: "95"; angle: "130"; value: "-11.0822"; }
+ ListElement{ radius: "95"; angle: "135"; value: "-14.0291"; }
+ ListElement{ radius: "95"; angle: "140"; value: "-17.245"; }
+ ListElement{ radius: "95"; angle: "145"; value: "-20.7056"; }
+ ListElement{ radius: "95"; angle: "150"; value: "-24.3844"; }
+ ListElement{ radius: "95"; angle: "155"; value: "-28.2535"; }
+ ListElement{ radius: "95"; angle: "160"; value: "-32.2834"; }
+ ListElement{ radius: "95"; angle: "165"; value: "-36.4435"; }
+ ListElement{ radius: "95"; angle: "170"; value: "-40.702"; }
+ ListElement{ radius: "95"; angle: "175"; value: "-45.0266"; }
+ ListElement{ radius: "95"; angle: "180"; value: "-49.3844"; }
+ ListElement{ radius: "95"; angle: "185"; value: "-53.7422"; }
+ ListElement{ radius: "95"; angle: "190"; value: "-58.0668"; }
+ ListElement{ radius: "95"; angle: "195"; value: "-62.3254"; }
+ ListElement{ radius: "95"; angle: "200"; value: "-66.4854"; }
+ ListElement{ radius: "95"; angle: "205"; value: "-70.5153"; }
+ ListElement{ radius: "95"; angle: "210"; value: "-74.3844"; }
+ ListElement{ radius: "95"; angle: "215"; value: "-78.0632"; }
+ ListElement{ radius: "95"; angle: "220"; value: "-81.5238"; }
+ ListElement{ radius: "95"; angle: "225"; value: "-84.7398"; }
+ ListElement{ radius: "95"; angle: "230"; value: "-87.6866"; }
+ ListElement{ radius: "95"; angle: "235"; value: "-90.342"; }
+ ListElement{ radius: "95"; angle: "240"; value: "-92.6857"; }
+ ListElement{ radius: "95"; angle: "245"; value: "-94.6998"; }
+ ListElement{ radius: "95"; angle: "250"; value: "-96.369"; }
+ ListElement{ radius: "95"; angle: "255"; value: "-97.6807"; }
+ ListElement{ radius: "95"; angle: "260"; value: "-98.6248"; }
+ ListElement{ radius: "95"; angle: "265"; value: "-99.1942"; }
+ ListElement{ radius: "95"; angle: "270"; value: "-99.3844"; }
+ ListElement{ radius: "95"; angle: "275"; value: "-99.1942"; }
+ ListElement{ radius: "95"; angle: "280"; value: "-98.6248"; }
+ ListElement{ radius: "95"; angle: "285"; value: "-97.6807"; }
+ ListElement{ radius: "95"; angle: "290"; value: "-96.369"; }
+ ListElement{ radius: "95"; angle: "295"; value: "-94.6998"; }
+ ListElement{ radius: "95"; angle: "300"; value: "-92.6857"; }
+ ListElement{ radius: "95"; angle: "305"; value: "-90.342"; }
+ ListElement{ radius: "95"; angle: "310"; value: "-87.6866"; }
+ ListElement{ radius: "95"; angle: "315"; value: "-84.7398"; }
+ ListElement{ radius: "95"; angle: "320"; value: "-81.5238"; }
+ ListElement{ radius: "95"; angle: "325"; value: "-78.0632"; }
+ ListElement{ radius: "95"; angle: "330"; value: "-74.3844"; }
+ ListElement{ radius: "95"; angle: "335"; value: "-70.5153"; }
+ ListElement{ radius: "95"; angle: "340"; value: "-66.4854"; }
+ ListElement{ radius: "95"; angle: "345"; value: "-62.3254"; }
+ ListElement{ radius: "95"; angle: "350"; value: "-58.0668"; }
+ ListElement{ radius: "95"; angle: "355"; value: "-53.7422"; }
+ ListElement{ radius: "95"; angle: "360"; value: "-49.3844"; }
+ ListElement{ radius: "100"; angle: "0"; value: "-50"; }
+ ListElement{ radius: "100"; angle: "5"; value: "-45.6422"; }
+ ListElement{ radius: "100"; angle: "10"; value: "-41.3176"; }
+ ListElement{ radius: "100"; angle: "15"; value: "-37.059"; }
+ ListElement{ radius: "100"; angle: "20"; value: "-32.899"; }
+ ListElement{ radius: "100"; angle: "25"; value: "-28.8691"; }
+ ListElement{ radius: "100"; angle: "30"; value: "-25"; }
+ ListElement{ radius: "100"; angle: "35"; value: "-21.3212"; }
+ ListElement{ radius: "100"; angle: "40"; value: "-17.8606"; }
+ ListElement{ radius: "100"; angle: "45"; value: "-14.6447"; }
+ ListElement{ radius: "100"; angle: "50"; value: "-11.6978"; }
+ ListElement{ radius: "100"; angle: "55"; value: "-9.0424"; }
+ ListElement{ radius: "100"; angle: "60"; value: "-6.69873"; }
+ ListElement{ radius: "100"; angle: "65"; value: "-4.68461"; }
+ ListElement{ radius: "100"; angle: "70"; value: "-3.01537"; }
+ ListElement{ radius: "100"; angle: "75"; value: "-1.70371"; }
+ ListElement{ radius: "100"; angle: "80"; value: "-0.759612"; }
+ ListElement{ radius: "100"; angle: "85"; value: "-0.190265"; }
+ ListElement{ radius: "100"; angle: "90"; value: "0"; }
+ ListElement{ radius: "100"; angle: "95"; value: "-0.190265"; }
+ ListElement{ radius: "100"; angle: "100"; value: "-0.759612"; }
+ ListElement{ radius: "100"; angle: "105"; value: "-1.70371"; }
+ ListElement{ radius: "100"; angle: "110"; value: "-3.01537"; }
+ ListElement{ radius: "100"; angle: "115"; value: "-4.68461"; }
+ ListElement{ radius: "100"; angle: "120"; value: "-6.69873"; }
+ ListElement{ radius: "100"; angle: "125"; value: "-9.0424"; }
+ ListElement{ radius: "100"; angle: "130"; value: "-11.6978"; }
+ ListElement{ radius: "100"; angle: "135"; value: "-14.6447"; }
+ ListElement{ radius: "100"; angle: "140"; value: "-17.8606"; }
+ ListElement{ radius: "100"; angle: "145"; value: "-21.3212"; }
+ ListElement{ radius: "100"; angle: "150"; value: "-25"; }
+ ListElement{ radius: "100"; angle: "155"; value: "-28.8691"; }
+ ListElement{ radius: "100"; angle: "160"; value: "-32.899"; }
+ ListElement{ radius: "100"; angle: "165"; value: "-37.059"; }
+ ListElement{ radius: "100"; angle: "170"; value: "-41.3176"; }
+ ListElement{ radius: "100"; angle: "175"; value: "-45.6422"; }
+ ListElement{ radius: "100"; angle: "180"; value: "-50"; }
+ ListElement{ radius: "100"; angle: "185"; value: "-54.3578"; }
+ ListElement{ radius: "100"; angle: "190"; value: "-58.6824"; }
+ ListElement{ radius: "100"; angle: "195"; value: "-62.941"; }
+ ListElement{ radius: "100"; angle: "200"; value: "-67.101"; }
+ ListElement{ radius: "100"; angle: "205"; value: "-71.1309"; }
+ ListElement{ radius: "100"; angle: "210"; value: "-75"; }
+ ListElement{ radius: "100"; angle: "215"; value: "-78.6788"; }
+ ListElement{ radius: "100"; angle: "220"; value: "-82.1394"; }
+ ListElement{ radius: "100"; angle: "225"; value: "-85.3553"; }
+ ListElement{ radius: "100"; angle: "230"; value: "-88.3022"; }
+ ListElement{ radius: "100"; angle: "235"; value: "-90.9576"; }
+ ListElement{ radius: "100"; angle: "240"; value: "-93.3013"; }
+ ListElement{ radius: "100"; angle: "245"; value: "-95.3154"; }
+ ListElement{ radius: "100"; angle: "250"; value: "-96.9846"; }
+ ListElement{ radius: "100"; angle: "255"; value: "-98.2963"; }
+ ListElement{ radius: "100"; angle: "260"; value: "-99.2404"; }
+ ListElement{ radius: "100"; angle: "265"; value: "-99.8097"; }
+ ListElement{ radius: "100"; angle: "270"; value: "-100"; }
+ ListElement{ radius: "100"; angle: "275"; value: "-99.8097"; }
+ ListElement{ radius: "100"; angle: "280"; value: "-99.2404"; }
+ ListElement{ radius: "100"; angle: "285"; value: "-98.2963"; }
+ ListElement{ radius: "100"; angle: "290"; value: "-96.9846"; }
+ ListElement{ radius: "100"; angle: "295"; value: "-95.3154"; }
+ ListElement{ radius: "100"; angle: "300"; value: "-93.3013"; }
+ ListElement{ radius: "100"; angle: "305"; value: "-90.9576"; }
+ ListElement{ radius: "100"; angle: "310"; value: "-88.3022"; }
+ ListElement{ radius: "100"; angle: "315"; value: "-85.3553"; }
+ ListElement{ radius: "100"; angle: "320"; value: "-82.1394"; }
+ ListElement{ radius: "100"; angle: "325"; value: "-78.6788"; }
+ ListElement{ radius: "100"; angle: "330"; value: "-75"; }
+ ListElement{ radius: "100"; angle: "335"; value: "-71.1309"; }
+ ListElement{ radius: "100"; angle: "340"; value: "-67.101"; }
+ ListElement{ radius: "100"; angle: "345"; value: "-62.941"; }
+ ListElement{ radius: "100"; angle: "350"; value: "-58.6824"; }
+ ListElement{ radius: "100"; angle: "355"; value: "-54.3578"; }
+ ListElement{ radius: "100"; angle: "360"; value: "-50"; }
+ }
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceHeightMap.qml b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceHeightMap.qml
new file mode 100644
index 000000000..8213c5747
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceHeightMap.qml
@@ -0,0 +1,227 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtDataVisualization
+
+Rectangle {
+ id: heightMapView
+ color: surfacePlot.theme.windowColor
+
+ required property bool portraitMode
+
+ property real buttonWidth: heightMapView.portraitMode ? (heightMapView.width - 35) / 2
+ : (heightMapView.width - 40) / 3
+
+ Item {
+ id: surfaceView
+ anchors.top: buttons.bottom
+ anchors.bottom: heightMapView.bottom
+ anchors.left: heightMapView.left
+ anchors.right: heightMapView.right
+
+ //! [1]
+ ColorGradient {
+ id: surfaceGradient
+ ColorGradientStop { position: 0.0; color: "darkgreen"}
+ ColorGradientStop { position: 0.15; color: "darkslategray" }
+ ColorGradientStop { position: 0.7; color: "peru" }
+ ColorGradientStop { position: 1.0; color: "white" }
+ }
+ //! [1]
+
+ Surface3D {
+ id: surfacePlot
+ width: surfaceView.width
+ height: surfaceView.height
+ aspectRatio: 3.0
+ //! [2]
+ theme: Theme3D {
+ type: Theme3D.ThemeStoneMoss
+ font.family: "STCaiyun"
+ font.pointSize: 35
+ colorStyle: Theme3D.ColorStyleRangeGradient
+ baseGradients: [surfaceGradient] // Use the custom gradient
+ }
+ //! [2]
+ shadowQuality: AbstractGraph3D.ShadowQualityMedium
+ selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndRow
+ scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeft
+ axisX.segmentCount: 3
+ axisX.subSegmentCount: 3
+ axisX.labelFormat: "%i"
+ axisZ.segmentCount: 3
+ axisZ.subSegmentCount: 3
+ axisZ.labelFormat: "%i"
+ axisY.segmentCount: 2
+ axisY.subSegmentCount: 2
+ axisY.labelFormat: "%i"
+ axisY.title: "Height (m)"
+ axisX.title: "Longitude 175.x\"E"
+ axisZ.title: "Latitude -39.x\"N"
+ axisY.titleVisible: true
+ axisX.titleVisible: true
+ axisZ.titleVisible: true
+
+ //! [0]
+ Surface3DSeries {
+ id: heightSeries
+ flatShadingEnabled: false
+ drawMode: Surface3DSeries.DrawSurface
+
+ HeightMapSurfaceDataProxy {
+ heightMapFile: ":/qml/qmlsurfacegallery/heightmap.png"
+ // We don't want the default data values set by heightmap proxy, but use
+ // actual coordinate and height values instead
+ autoScaleY: true
+ minYValue: 740
+ maxYValue: 2787
+ minZValue: -374 // ~ -39.374411"N
+ maxZValue: -116 // ~ -39.115971"N
+ minXValue: 472 // ~ 175.471767"E
+ maxXValue: 781 // ~ 175.780758"E
+ }
+
+ onDrawModeChanged: heightMapView.checkState()
+ }
+ //! [0]
+ }
+ }
+
+ Item {
+ id: buttons
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: 10
+ height: heightMapView.portraitMode ? surfaceGridToggle.implicitHeight * 3 + 20
+ : surfaceGridToggle.implicitHeight * 2 + 15
+ opacity: 0.5
+
+ Button {
+ id: surfaceGridToggle
+ anchors.margins: 5
+ anchors.left: parent.left
+ anchors.top: parent.top
+ width: heightMapView.buttonWidth // Calculated elsewhere based on screen orientation
+ text: "Show Surface\nGrid"
+ //! [3]
+ onClicked: {
+ if (heightSeries.drawMode & Surface3DSeries.DrawWireframe)
+ heightSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
+ else
+ heightSeries.drawMode |= Surface3DSeries.DrawWireframe;
+ }
+ //! [3]
+ }
+
+ Button {
+ id: surfaceGridColor
+ anchors.margins: 5
+ anchors.left: surfaceGridToggle.right
+ anchors.top: parent.top
+ width: heightMapView.buttonWidth
+ text: "Red surface\ngrid color"
+ //! [4]
+ onClicked: {
+ if (Qt.colorEqual(heightSeries.wireframeColor, "#000000")) {
+ heightSeries.wireframeColor = "red";
+ text = "Black surface\ngrid color";
+ } else {
+ heightSeries.wireframeColor = "black";
+ text = "Red surface\ngrid color";
+ }
+ }
+ //! [4]
+ }
+
+ Button {
+ id: surfaceToggle
+ anchors.margins: 5
+ anchors.left: heightMapView.portraitMode ? parent.left : surfaceGridColor.right
+ anchors.top: heightMapView.portraitMode ? surfaceGridColor.bottom : parent.top
+ width: heightMapView.buttonWidth
+ text: "Hide\nSurface"
+ //! [5]
+ onClicked: {
+ if (heightSeries.drawMode & Surface3DSeries.DrawSurface)
+ heightSeries.drawMode &= ~Surface3DSeries.DrawSurface;
+ else
+ heightSeries.drawMode |= Surface3DSeries.DrawSurface;
+ }
+ //! [5]
+ }
+
+ Button {
+ id: flatShadingToggle
+ anchors.margins: 5
+ anchors.left: heightMapView.portraitMode ? surfaceToggle.right : parent.left
+ anchors.top: heightMapView.portraitMode ? surfaceGridColor.bottom : surfaceToggle.bottom
+ width: heightMapView.buttonWidth
+ text: heightSeries.flatShadingSupported ? "Show\nFlat" : "Flat not\nsupported"
+ enabled: heightSeries.flatShadingSupported
+ //! [6]
+ onClicked: {
+ if (heightSeries.flatShadingEnabled) {
+ heightSeries.flatShadingEnabled = false;
+ text = "Show\nFlat"
+ } else {
+ heightSeries.flatShadingEnabled = true;
+ text = "Show\nSmooth"
+ }
+ }
+ //! [6]
+ }
+
+ Button {
+ id: backgroundToggle
+ anchors.margins: 5
+ anchors.left: heightMapView.portraitMode ? parent.left : flatShadingToggle.right
+ anchors.top: heightMapView.portraitMode ? flatShadingToggle.bottom
+ : surfaceToggle.bottom
+ width: heightMapView.buttonWidth
+ text: "Hide\nBackground"
+ onClicked: {
+ if (surfacePlot.theme.backgroundEnabled) {
+ surfacePlot.theme.backgroundEnabled = false;
+ text = "Show\nBackground";
+ } else {
+ surfacePlot.theme.backgroundEnabled = true;
+ text = "Hide\nBackground";
+ }
+ }
+ }
+
+ Button {
+ id: gridToggle
+ anchors.margins: 5
+ anchors.left: backgroundToggle.right
+ anchors.top: heightMapView.portraitMode ? flatShadingToggle.bottom
+ : surfaceToggle.bottom
+ width: heightMapView.buttonWidth
+ text: "Hide\nGrid"
+ onClicked: {
+ if (surfacePlot.theme.gridEnabled) {
+ surfacePlot.theme.gridEnabled = false;
+ text = "Show\nGrid";
+ } else {
+ surfacePlot.theme.gridEnabled = true;
+ text = "Hide\nGrid";
+ }
+ }
+ }
+ }
+
+ function checkState() {
+ if (heightSeries.drawMode & Surface3DSeries.DrawSurface)
+ surfaceToggle.text = "Hide\nSurface";
+ else
+ surfaceToggle.text = "Show\nSurface";
+
+ if (heightSeries.drawMode & Surface3DSeries.DrawWireframe)
+ surfaceGridToggle.text = "Hide Surface\nGrid";
+ else
+ surfaceGridToggle.text = "Show Surface\nGrid";
+ }
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceOscilloscope.qml b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceOscilloscope.qml
new file mode 100644
index 000000000..a5ff8acd9
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceOscilloscope.qml
@@ -0,0 +1,430 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtDataVisualization
+//! [0]
+import SurfaceGallery
+//! [0]
+
+Item {
+ id: oscilloscopeView
+
+ property int sampleColumns: sampleSlider.value
+ property int sampleRows: sampleColumns / 2
+ property int sampleCache: 24
+
+ required property bool portraitMode
+
+ property real controlWidth: oscilloscopeView.portraitMode ? oscilloscopeView.width - 10
+ : oscilloscopeView.width / 4 - 6.66
+
+ property real buttonWidth: oscilloscopeView.portraitMode ? oscilloscopeView.width - 10
+ : oscilloscopeView.width / 3 - 7.5
+
+ onSampleRowsChanged: {
+ surfaceSeries.selectedPoint = surfaceSeries.invalidSelectionPosition
+ generateData()
+ }
+
+ //![1]
+ DataSource {
+ id: dataSource
+ }
+ //![1]
+
+ Item {
+ id: dataView
+ anchors.bottom: parent.bottom
+ width: parent.width
+ height: parent.height - controlArea.height
+
+ //! [2]
+ Surface3D {
+ id: surfaceGraph
+ anchors.fill: parent
+
+ Surface3DSeries {
+ id: surfaceSeries
+ drawMode: Surface3DSeries.DrawSurfaceAndWireframe
+ itemLabelFormat: "@xLabel, @zLabel: @yLabel"
+ //! [2]
+ //! [3]
+ itemLabelVisible: false
+ //! [3]
+
+ //! [4]
+ onItemLabelChanged: {
+ if (surfaceSeries.selectedPoint == surfaceSeries.invalidSelectionPosition)
+ selectionText.text = "No selection";
+ else
+ selectionText.text = surfaceSeries.itemLabel;
+ }
+ //! [4]
+ }
+
+ shadowQuality: AbstractGraph3D.ShadowQualityNone
+ selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndColumn
+ theme: Theme3D {
+ type: Theme3D.ThemeIsabelle
+ backgroundEnabled: false
+ }
+ scene.activeCamera.cameraPreset: Camera3D.CameraPresetFrontHigh
+
+ axisX.labelFormat: "%d ms"
+ axisY.labelFormat: "%d W"
+ axisZ.labelFormat: "%d mV"
+ axisX.min: 0
+ axisY.min: 0
+ axisZ.min: 0
+ axisX.max: 1000
+ axisY.max: 100
+ axisZ.max: 800
+ axisX.segmentCount: 4
+ axisY.segmentCount: 4
+ axisZ.segmentCount: 4
+ measureFps: true
+ renderingMode: AbstractGraph3D.RenderDirectToBackground
+
+ onCurrentFpsChanged: (fps)=> {
+ if (fps > 10)
+ fpsText.text = "FPS: " + Math.round(surfaceGraph.currentFps);
+ else
+ fpsText.text = "FPS: " + Math.round(surfaceGraph.currentFps * 10.0) / 10.0;
+ }
+
+ //! [5]
+ Component.onCompleted: oscilloscopeView.generateData();
+ //! [5]
+ }
+ }
+
+ //! [7]
+ Timer {
+ id: refreshTimer
+ interval: 1000 / frequencySlider.value
+ running: true
+ repeat: true
+ onTriggered: dataSource.update(surfaceSeries);
+ }
+ //! [7]
+
+ Rectangle {
+ id: controlArea
+ height: oscilloscopeView.portraitMode ? flatShadingToggle.implicitHeight * 7
+ : flatShadingToggle.implicitHeight * 2
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.right: parent.right
+ color: surfaceGraph.theme.backgroundColor
+
+ // Samples
+ Rectangle {
+ id: samples
+ width: oscilloscopeView.controlWidth
+ height: flatShadingToggle.implicitHeight
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.margins: 5
+
+ color: surfaceGraph.theme.windowColor
+ border.color: surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 4
+
+ Row {
+ anchors.centerIn: parent
+ spacing: 10
+ padding: 5
+
+ Slider {
+ id: sampleSlider
+ from: oscilloscopeView.sampleCache * 2
+ to: from * 10
+ stepSize: oscilloscopeView.sampleCache
+
+ background: Rectangle {
+ x: sampleSlider.leftPadding
+ y: sampleSlider.topPadding + sampleSlider.availableHeight / 2
+ - height / 2
+ implicitWidth: 200
+ implicitHeight: 4
+ width: sampleSlider.availableWidth
+ height: implicitHeight
+ radius: 2
+ color: surfaceGraph.theme.gridLineColor
+
+ Rectangle {
+ width: sampleSlider.visualPosition * parent.width
+ height: parent.height
+ color: surfaceGraph.theme.labelTextColor
+ radius: 2
+ }
+ }
+
+ handle: Rectangle {
+ x: sampleSlider.leftPadding + sampleSlider.visualPosition
+ * (sampleSlider.availableWidth - width)
+ y: sampleSlider.topPadding + sampleSlider.availableHeight / 2
+ - height / 2
+ implicitWidth: 20
+ implicitHeight: 20
+ radius: 10
+ color: sampleSlider.pressed ? surfaceGraph.theme.gridLineColor
+ : surfaceGraph.theme.windowColor
+ border.color: sampleSlider.pressed ? surfaceGraph.theme.labelTextColor
+ : surfaceGraph.theme.gridLineColor
+ }
+
+ Component.onCompleted: value = from;
+ }
+
+ Text {
+ id: samplesText
+ text: "Samples: " + (oscilloscopeView.sampleRows * oscilloscopeView.sampleColumns)
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ color: surfaceGraph.theme.labelTextColor
+ }
+ }
+ }
+
+ // Frequency
+ Rectangle {
+ id: frequency
+ width: oscilloscopeView.controlWidth
+ height: flatShadingToggle.implicitHeight
+ anchors.left: oscilloscopeView.portraitMode ? parent.left : samples.right
+ anchors.top: oscilloscopeView.portraitMode ? samples.bottom : parent.top
+ anchors.margins: 5
+
+ color: surfaceGraph.theme.windowColor
+ border.color: surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 4
+
+ Row {
+ anchors.centerIn: parent
+ spacing: 10
+ padding: 5
+
+ Slider {
+ id: frequencySlider
+ from: 2
+ to: 60
+ stepSize: 2
+ value: 30
+
+ background: Rectangle {
+ x: frequencySlider.leftPadding
+ y: frequencySlider.topPadding + frequencySlider.availableHeight / 2
+ - height / 2
+ implicitWidth: 200
+ implicitHeight: 4
+ width: frequencySlider.availableWidth
+ height: implicitHeight
+ radius: 2
+ color: surfaceGraph.theme.gridLineColor
+
+ Rectangle {
+ width: frequencySlider.visualPosition * parent.width
+ height: parent.height
+ color: surfaceGraph.theme.labelTextColor
+ radius: 2
+ }
+ }
+
+ handle: Rectangle {
+ x: frequencySlider.leftPadding + frequencySlider.visualPosition
+ * (frequencySlider.availableWidth - width)
+ y: frequencySlider.topPadding + frequencySlider.availableHeight / 2
+ - height / 2
+ implicitWidth: 20
+ implicitHeight: 20
+ radius: 10
+ color: frequencySlider.pressed ? surfaceGraph.theme.gridLineColor
+ : surfaceGraph.theme.windowColor
+ border.color: frequencySlider.pressed ? surfaceGraph.theme.labelTextColor
+ : surfaceGraph.theme.gridLineColor
+ }
+ }
+
+ Text {
+ id: frequencyText
+ text: "Freq: " + frequencySlider.value + " Hz"
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ color: surfaceGraph.theme.labelTextColor
+ }
+ }
+ }
+
+ // FPS
+ Rectangle {
+ id: fpsindicator
+ width: oscilloscopeView.controlWidth
+ height: flatShadingToggle.implicitHeight
+ anchors.left: oscilloscopeView.portraitMode ? parent.left : frequency.right
+ anchors.top: oscilloscopeView.portraitMode ? frequency.bottom : parent.top
+ anchors.margins: 5
+
+ color: surfaceGraph.theme.windowColor
+ border.color: surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 4
+
+ Text {
+ id: fpsText
+ anchors.fill: parent
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ color: surfaceGraph.theme.labelTextColor
+ }
+ }
+
+ // Selection
+ Rectangle {
+ id: selection
+ width: oscilloscopeView.controlWidth
+ height: flatShadingToggle.implicitHeight
+ anchors.left: oscilloscopeView.portraitMode ? parent.left : fpsindicator.right
+ anchors.top: oscilloscopeView.portraitMode ? fpsindicator.bottom : parent.top
+ anchors.margins: 5
+
+ color: surfaceGraph.theme.windowColor
+ border.color: surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 4
+
+ Text {
+ id: selectionText
+ anchors.fill: parent
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ text: "No selection"
+ color: surfaceGraph.theme.labelTextColor
+ }
+ }
+
+ // Flat shading
+ Button {
+ id: flatShadingToggle
+ width: oscilloscopeView.buttonWidth
+ anchors.left: parent.left
+ anchors.top: selection.bottom
+ anchors.margins: 5
+
+ text: surfaceSeries.flatShadingSupported ? "Show\nSmooth" : "Flat\nnot supported"
+ enabled: surfaceSeries.flatShadingSupported
+
+ onClicked: {
+ if (surfaceSeries.flatShadingEnabled) {
+ surfaceSeries.flatShadingEnabled = false;
+ text = "Show\nFlat"
+ } else {
+ surfaceSeries.flatShadingEnabled = true;
+ text = "Show\nSmooth"
+ }
+ }
+
+ contentItem: Text {
+ text: flatShadingToggle.text
+ opacity: flatShadingToggle.enabled ? 1.0 : 0.3
+ color: surfaceGraph.theme.labelTextColor
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ background: Rectangle {
+ opacity: flatShadingToggle.enabled ? 1 : 0.3
+ color: flatShadingToggle.down ? surfaceGraph.theme.gridLineColor
+ : surfaceGraph.theme.windowColor
+ border.color: flatShadingToggle.down ? surfaceGraph.theme.labelTextColor
+ : surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 2
+ }
+ }
+
+ // Surface grid
+ Button {
+ id: surfaceGridToggle
+ width: oscilloscopeView.buttonWidth
+ anchors.left: oscilloscopeView.portraitMode ? parent.left : flatShadingToggle.right
+ anchors.top: oscilloscopeView.portraitMode ? flatShadingToggle.bottom : selection.bottom
+ anchors.margins: 5
+
+ text: "Hide\nSurface Grid"
+
+ onClicked: {
+ if (surfaceSeries.drawMode & Surface3DSeries.DrawWireframe) {
+ surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
+ text = "Show\nSurface Grid";
+ } else {
+ surfaceSeries.drawMode |= Surface3DSeries.DrawWireframe;
+ text = "Hid\nSurface Grid";
+ }
+ }
+
+ contentItem: Text {
+ text: surfaceGridToggle.text
+ color: surfaceGraph.theme.labelTextColor
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ background: Rectangle {
+ color: surfaceGridToggle.down ? surfaceGraph.theme.gridLineColor
+ : surfaceGraph.theme.windowColor
+ border.color: surfaceGridToggle.down ? surfaceGraph.theme.labelTextColor
+ : surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 2
+ }
+ }
+
+ // Exit
+ Button {
+ id: exitButton
+ width: oscilloscopeView.buttonWidth
+ height: surfaceGridToggle.height
+ anchors.left: oscilloscopeView.portraitMode ? parent.left : surfaceGridToggle.right
+ anchors.top: oscilloscopeView.portraitMode ? surfaceGridToggle.bottom : selection.bottom
+ anchors.margins: 5
+
+ text: "Quit"
+
+ onClicked: Qt.quit();
+
+ contentItem: Text {
+ text: exitButton.text
+ color: surfaceGraph.theme.labelTextColor
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ background: Rectangle {
+ color: exitButton.down ? surfaceGraph.theme.gridLineColor
+ : surfaceGraph.theme.windowColor
+ border.color: exitButton.down ? surfaceGraph.theme.labelTextColor
+ : surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 2
+ }
+ }
+ }
+
+ //! [6]
+ function generateData() {
+ dataSource.generateData(oscilloscopeView.sampleCache, oscilloscopeView.sampleRows,
+ oscilloscopeView.sampleColumns,
+ surfaceGraph.axisX.min, surfaceGraph.axisX.max,
+ surfaceGraph.axisY.min, surfaceGraph.axisY.max,
+ surfaceGraph.axisZ.min, surfaceGraph.axisZ.max);
+ }
+ //! [6]
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceSpectrogram.qml b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceSpectrogram.qml
new file mode 100644
index 000000000..cedb9850a
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceSpectrogram.qml
@@ -0,0 +1,272 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtDataVisualization
+
+Rectangle {
+ id: spectrogramView
+ color: surfaceGraph.theme.windowColor
+
+ required property bool portraitMode
+
+ property real buttonWidth: spectrogramView.portraitMode ? (spectrogramView.width - 35) / 2
+ : (spectrogramView.width - 50) / 5
+
+ SpectrogramData {
+ id: surfaceData
+ }
+
+ Item {
+ id: surfaceView
+ anchors.top: buttons.bottom
+ anchors.left: parent.left
+ anchors.right: legend.left
+ anchors.bottom: parent.bottom
+
+ ColorGradient {
+ id: surfaceGradient
+ ColorGradientStop { position: 0.0; color: "black" }
+ ColorGradientStop { position: 0.2; color: "red" }
+ ColorGradientStop { position: 0.5; color: "blue" }
+ ColorGradientStop { position: 0.8; color: "yellow" }
+ ColorGradientStop { position: 1.0; color: "white" }
+ }
+
+ ValueAxis3D {
+ id: xAxis
+ segmentCount: 8
+ labelFormat: "%i\u00B0"
+ title: "Angle"
+ titleVisible: true
+ titleFixed: false
+ }
+
+ ValueAxis3D {
+ id: yAxis
+ segmentCount: 8
+ labelFormat: "%i \%"
+ title: "Value"
+ titleVisible: true
+ labelAutoRotation: 0
+ titleFixed: false
+ }
+
+ ValueAxis3D {
+ id: zAxis
+ segmentCount: 5
+ labelFormat: "%i nm"
+ title: "Radius"
+ titleVisible: true
+ titleFixed: false
+ }
+
+ Theme3D {
+ id: customTheme
+ type: Theme3D.ThemeQt
+ // Don't show specular spotlight as we don't want it to distort the colors
+ lightStrength: 0.0
+ ambientLightStrength: 1.0
+ backgroundEnabled: false
+ gridLineColor: "#AAAAAA"
+ windowColor: "#EEEEEE"
+ }
+
+ //! [0]
+ Surface3D {
+ id: surfaceGraph
+ anchors.fill: parent
+
+ Surface3DSeries {
+ id: surfaceSeries
+ flatShadingEnabled: false
+ drawMode: Surface3DSeries.DrawSurface
+ baseGradient: surfaceGradient
+ colorStyle: Theme3D.ColorStyleRangeGradient
+ itemLabelFormat: "(@xLabel, @zLabel): @yLabel"
+
+ ItemModelSurfaceDataProxy {
+ itemModel: surfaceData.model
+ rowRole: "radius"
+ columnRole: "angle"
+ yPosRole: "value"
+ }
+ }
+ //! [0]
+
+ //! [1]
+ // Remove the perspective and view the graph from top down to achieve 2D effect
+ orthoProjection: true
+ scene.activeCamera.cameraPreset: Camera3D.CameraPresetDirectlyAbove
+ //! [1]
+
+ //! [2]
+ flipHorizontalGrid: true
+ //! [2]
+
+ //! [4]
+ radialLabelOffset: 0.01
+ //! [4]
+
+ //! [5]
+ inputHandler: TouchInputHandler3D {
+ rotationEnabled: !surfaceGraph.orthoProjection
+ }
+ //! [5]
+
+ theme: customTheme
+ shadowQuality: AbstractGraph3D.ShadowQualityNone
+ selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndColumn
+ axisX: xAxis
+ axisY: yAxis
+ axisZ: zAxis
+
+ aspectRatio: 1.0
+ horizontalAspectRatio: 1.0
+ scene.activeCamera.zoomLevel: 140
+ }
+ }
+
+ Item {
+ id: buttons
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: spectrogramView.portraitMode ? (polarToggle.height + 10) * 3
+ : polarToggle.height + 30
+ anchors.margins: 10
+
+ //! [3]
+ Button {
+ id: polarToggle
+ anchors.margins: 5
+ anchors.left: parent.left
+ anchors.top: parent.top
+ width: spectrogramView.buttonWidth // Calculated elsewhere based on screen orientation
+ text: "Switch to\n" + (surfaceGraph.polar ? "cartesian" : "polar")
+ onClicked: surfaceGraph.polar = !surfaceGraph.polar;
+ }
+ //! [3]
+
+ Button {
+ id: orthoToggle
+ anchors.margins: 5
+ anchors.left: polarToggle.right
+ anchors.top: parent.top
+ width: spectrogramView.buttonWidth
+ text: "Switch to\n" + (surfaceGraph.orthoProjection ? "perspective" : "orthographic")
+ onClicked: {
+ if (surfaceGraph.orthoProjection) {
+ surfaceGraph.orthoProjection = false;
+ xAxis.labelAutoRotation = 30;
+ yAxis.labelAutoRotation = 30;
+ zAxis.labelAutoRotation = 30;
+ } else {
+ surfaceGraph.orthoProjection = true;
+ surfaceGraph.scene.activeCamera.cameraPreset
+ = Camera3D.CameraPresetDirectlyAbove;
+ surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
+ xAxis.labelAutoRotation = 0;
+ yAxis.labelAutoRotation = 0;
+ zAxis.labelAutoRotation = 0;
+ }
+ }
+ }
+
+ Button {
+ id: flipGridToggle
+ anchors.margins: 5
+ anchors.left: spectrogramView.portraitMode ? parent.left : orthoToggle.right
+ anchors.top: spectrogramView.portraitMode ? orthoToggle.bottom : parent.top
+ width: spectrogramView.buttonWidth
+ text: "Toggle axis\ngrid on top"
+ onClicked: surfaceGraph.flipHorizontalGrid = !surfaceGraph.flipHorizontalGrid;
+ }
+
+ Button {
+ id: labelOffsetToggle
+ anchors.margins: 5
+ anchors.left: flipGridToggle.right
+ anchors.top: spectrogramView.portraitMode ? orthoToggle.bottom : parent.top
+ width: spectrogramView.buttonWidth
+ text: "Toggle radial\nlabel position"
+ visible: surfaceGraph.polar
+ onClicked: {
+ if (surfaceGraph.radialLabelOffset >= 1.0)
+ surfaceGraph.radialLabelOffset = 0.01;
+ else
+ surfaceGraph.radialLabelOffset = 1.0;
+ }
+ }
+
+ Button {
+ id: surfaceGridToggle
+ anchors.margins: 5
+ anchors.left: spectrogramView.portraitMode ? (labelOffsetToggle.visible ? parent.left
+ : flipGridToggle.right)
+ : (labelOffsetToggle.visible ? labelOffsetToggle.right
+ : flipGridToggle.right)
+ anchors.top: spectrogramView.portraitMode ? (labelOffsetToggle.visible ? labelOffsetToggle.bottom
+ : orthoToggle.bottom)
+ : parent.top
+ width: spectrogramView.buttonWidth
+ text: "Toggle\nsurface grid"
+ visible: !surfaceGraph.orthoProjection
+ onClicked: {
+ if (surfaceSeries.drawMode & Surface3DSeries.DrawWireframe)
+ surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
+ else
+ surfaceSeries.drawMode |= Surface3DSeries.DrawWireframe;
+ }
+ }
+ }
+
+ Item {
+ id: legend
+ anchors.bottom: parent.bottom
+ anchors.top: buttons.bottom
+ anchors.right: parent.right
+ width: spectrogramView.portraitMode ? 100 : 125
+
+ Rectangle {
+ id: gradient
+ anchors.margins: 20
+ anchors.bottom: legend.bottom
+ anchors.top: legend.top
+ anchors.right: legend.right
+ border.color: "black"
+ border.width: 1
+ width: spectrogramView.portraitMode ? 25 : 50
+ rotation: 180
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "black" }
+ GradientStop { position: 0.2; color: "red" }
+ GradientStop { position: 0.5; color: "blue" }
+ GradientStop { position: 0.8; color: "yellow" }
+ GradientStop { position: 1.0; color: "white" }
+ }
+ }
+
+ Text {
+ anchors.verticalCenter: gradient.bottom
+ anchors.right: gradient.left
+ anchors.margins: 2
+ text: surfaceGraph.axisY.min + "%"
+ }
+
+ Text {
+ anchors.verticalCenter: gradient.verticalCenter
+ anchors.right: gradient.left
+ anchors.margins: 2
+ text: (surfaceGraph.axisY.max + surfaceGraph.axisY.min) / 2 + "%"
+ }
+
+ Text {
+ anchors.verticalCenter: gradient.top
+ anchors.right: gradient.left
+ anchors.margins: 2
+ text: surfaceGraph.axisY.max + "%"
+ }
+ }
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/heightmap.png b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/heightmap.png
new file mode 100644
index 000000000..02f41230a
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/heightmap.png
Binary files differ
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/main.qml b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/main.qml
new file mode 100644
index 000000000..2d0b82dba
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/main.qml
@@ -0,0 +1,57 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ id: mainView
+ width: 1280
+ height: 1024
+ visible: true
+
+ property bool portraitMode: width < height
+
+ TabBar {
+ id: tabBar
+ width: parent.width
+
+ TabButton {
+ text: "Height Map"
+ }
+
+ TabButton {
+ text: "Spectrogram"
+ }
+
+ TabButton {
+ text: "Oscilloscope"
+ }
+ }
+
+ StackLayout {
+ anchors.top: tabBar.bottom
+ anchors.bottom: parent.bottom
+ width: parent.width
+ currentIndex: tabBar.currentIndex
+
+ SurfaceHeightMap {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ portraitMode: mainView.portraitMode
+ }
+
+ SurfaceSpectrogram {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ portraitMode: mainView.portraitMode
+ }
+
+ SurfaceOscilloscope {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ portraitMode: mainView.portraitMode
+ }
+ }
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.pyproject b/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.pyproject
new file mode 100644
index 000000000..afe8c179b
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.pyproject
@@ -0,0 +1,10 @@
+{
+ "files": ["datasource.py",
+ "main.py",
+ "qmlsurfacegallery.qrc",
+ "qml/qmlsurfacegallery/SpectrogramData.qml",
+ "qml/qmlsurfacegallery/SurfaceHeightMap.qml",
+ "qml/qmlsurfacegallery/SurfaceOscilloscope.qml",
+ "qml/qmlsurfacegallery/SurfaceSpectrogram.qml",
+ "qml/qmlsurfacegallery/main.qml"]
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.qrc b/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.qrc
new file mode 100644
index 000000000..92f0f054b
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/">
+ <file>qml/qmlsurfacegallery/heightmap.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/datavisualization/qmlsurfacegallery/rc_qmlsurfacegallery.py b/examples/datavisualization/qmlsurfacegallery/rc_qmlsurfacegallery.py
new file mode 100644
index 000000000..510c18aa0
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/rc_qmlsurfacegallery.py
@@ -0,0 +1,39967 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x09\xbf\x0b\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x02\x00\x00\x00\x02\x00\x10\x06\x00\x00\x00\xa4\xe8\x08\xb9\
+\x00\x00\x01niCCPicc\x00\x00(\x91u\
+\x91;K\x03A\x14\x85\xbf$J$F,\xb4\x08b\
+\xb1E\x14\x0b\x85\xa0 \x82\x8d\xc6\x22M\x90\x10#\xf8\
+j\x925\x0f!\x8fe7A\x82\xad`c\x11\xb0\x10\
+m|\x15\xfe\x03m\x05[\x05AP\x04\x11;{_\
+\x8d\x84\xf5\x8e+D$\x99e\xf6~\x9c\x99s\x999\
+\x03\xeeh^/Xm!(\x14\xcbf<\x12\xd6\x16\
+\x16\x974\xef\x0bn<\xf8\x080\x99\xd4-c:\x16\
+\x8b\xd2r|\xde\xe1R\xf5vD\xf5j\xbd\xaf\xe9\xe8\
+\x5cM[:\xb8:\x84\xc7u\xc3,\x0bO\x09G\xd7\
+\xcb\x86\xe2m\xe1^=\x97\x5c\x15>\x14\x1e6\xe5\x80\
+\xc2WJO9\xfc\xac8\xeb\xf0\xbbb3\x11\x9f\x01\
+\xb7\xea\xa9e\xffp\xea\x0f\xeb9\xb3 <$\x1c,\
+\xe4+\xfa\xefy\xd4M\xfc\xe9\xe2\xfc\x9c\xd4>\x99\xfd\
+X\xc4\x89\x10F#E\x855\xf2\x94\x19\x91Z\x94\xcc\
+\x9a\xfbB?\xbeYJ\xe2\xd1\xe5oP\xc5\x14G\x96\
+\x9cx\x87E\xadH\xd7\xb4\xd4\x8c\xe8i\xf9\xf2TU\
+\xee\xff\xf3\xb42c\xa3Nw\x7f\x18\xda\x9fl\xfbm\
+\x00\xbc;P\xaf\xd9\xf6\xd7\x91m\xd7\x8f\xc1\xf3\x08\x17\
+\xc5\x86\xbf$9M|\x88^kh\xc1\x03\xe8\xde\x84\
+\xb3\xcb\x86\x96\xda\x85\xf3-\x08<\x18I3\xf9#y\
+d\xba3\x19x=\x85\xaeE\xe8\xb9\x01\xdf\xb2\x93\xd5\
+\xef:'\xf7\x90\xd8\x90'\xba\x86\xbd}\x18\x94\xfd\xdd\
++\xdf\xe3.g\xfd\x87\xf3\xce\xbb\x00\x00\x00\x09pH\
+Ys\x00\x00\x0b\x11\x00\x00\x0b\x11\x01\x7fd_\x91\x00\
+\x00\x02\xcbtEXtRaw profi\
+le type exif\x00\x0aex\
+if\x0a 334\x0a4578\
+6966000049492a00\
+080000000a001201\
+0300010000000100\
+00001a0105000100\
+0000\x0a860000001b0\
+10500010000008e0\
+0000028010300010\
+0000002000000310\
+1020020000000\x0a96\
+0000003201020013\
+000000b600000046\
+4703000100000001\
+0000004947030001\
+000000\x0a140000006\
+987040001000000d\
+e000000039002001\
+3000000ca0000000\
+000000000000000\x0a\
+0000000000000000\
+000000006461726b\
+7461626c65206461\
+726b7461626c652d\
+322e342e\x0a322d312\
+e666332373230313\
+83a30343a3036203\
+0373a32383a30360\
+0323031383a30343\
+a\x0a30322031343a34\
+393a343600050003\
+9002001300000020\
+0100000490020013\
+0000003401\x0a00000\
+1a00300010000000\
+100000002a004000\
+1000000000800000\
+3a00400010000000\
+008\x0a000000000000\
+323031383a30343a\
+30322031343a3439\
+3a34360032303138\
+3a30343a3032\x0a203\
+1343a34393a34360\
+0\x0a22\xf6\xfb\x00\x00\x00ZtEXtRa\
+w profile type i\
+ptc\x00\x0aiptc\x0a \
+26\x0a50686f746f736\
+86f7020332e30003\
+842494d040400000\
+0000000\x0a\xc7\xd1i\xdc\x00\x00\x17U\
+tEXtRaw profile \
+type xmp\x00\x0axmp\x0a \
+ 2928\x0a3c3f78706\
+1636b65742062656\
+7696e3d22efbbbf2\
+22069643d2257354\
+d304d7043656869\x0a\
+487a7265537a4e54\
+637a6b633964223f\
+3e0a3c783a786d70\
+6d65746120786d6c\
+6e733a78\x0a3d22616\
+46f62653a6e733a6\
+d6574612f2220783\
+a786d70746b3d225\
+84d5020436f72652\
+0\x0a342e342e302d45\
+78697632223e0a20\
+3c7264663a524446\
+20786d6c6e733a72\
+64663d2268\x0a74747\
+03a2f2f7777772e7\
+7332e6f72672f313\
+939392f30322f323\
+22d7264662d73796\
+e74\x0a61782d6e7323\
+223e0a20203c7264\
+663a446573637269\
+7074696f6e207264\
+663a61626f75\x0a743\
+d22220a202020207\
+86d6c6e733a74696\
+6663d22687474703\
+a2f2f6e732e61646\
+f6265\x0a2e636f6d2f\
+746966662f312e30\
+2f220a2020202078\
+6d6c6e733a786d70\
+3d22687474703a\x0a2\
+f2f6e732e61646f6\
+2652e636f6d2f786\
+1702f312e302f220\
+a20202020786d6c6\
+e733a65\x0a7869663d\
+22687474703a2f2f\
+6e732e61646f6265\
+2e636f6d2f657869\
+662f312e302f220a\
+\x0a202020746966663\
+a595265736f6c757\
+4696f6e3d2230202\
+f2030220a2020207\
+46966663a\x0a585265\
+736f6c7574696f6e\
+3d2230202f203022\
+0a20202074696666\
+3a526174696e673d\
+22\x0a31220a2020207\
+46966663a5261746\
+96e6750657263656\
+e743d223230220a2\
+02020746966\x0a663a\
+4f7269656e746174\
+696f6e3d2231220a\
+202020746966663a\
+5265736f6c757469\
+6f6e\x0a556e69743d2\
+232220a202020746\
+966663a446174655\
+4696d654f7269676\
+96e616c3d2232\x0a30\
+31383a30343a3032\
+2031343a34393a34\
+36220a202020786d\
+703a4d6f64696679\
+446174\x0a653d22323\
+031383a30343a303\
+62030373a32383a3\
+036220a202020786\
+d703a4372656174\x0a\
+6f72546f6f6c3d22\
+6461726b7461626c\
+65206461726b7461\
+626c652d322e342e\
+322d312e\x0a6663323\
+7220a20202065786\
+9663a44617465546\
+96d654f726967696\
+e616c3d223230313\
+8\x0a3a30343a303220\
+31343a34393a3436\
+220a202020657869\
+663a446174655469\
+6d65446967\x0a69746\
+97a65643d2232303\
+1383a30343a30322\
+031343a34393a343\
+6220a20202065786\
+966\x0a3a436f6c6f72\
+53706163653d2231\
+220a202020657869\
+663a506978656c58\
+44696d656e73\x0a696\
+f6e3d22323034382\
+20a2020206578696\
+63a506978656c594\
+4696d656e73696f6\
+e3d22\x0a3230343822\
+2f3e0a203c2f7264\
+663a5244463e0a3c\
+2f783a786d706d65\
+74613e0a202020\x0a2\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020\x0a20202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+\x0a202020202020202\
+0202020202020202\
+0202020202020202\
+0200a20202020202\
+020202020\x0a202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20\x0a2020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+02020202020\x0a2020\
+2020202020202020\
+2020202020202020\
+0a20202020202020\
+2020202020202020\
+2020\x0a20202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020\x0a20\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020\x0a202020202\
+02020202020200a2\
+0202020202020202\
+0202020202020202\
+020202020202020\x0a\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20202020\x0a2020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0\x0a202020200a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020\x0a20202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020\x0a202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020200a2020\x0a202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+02020\x0a2020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20202020202020\x0a2\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0200a20202020202\
+0202020\x0a20202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+\x0a202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020202020\x0a202020\
+2020202020202020\
+2020202020202020\
+0a20202020202020\
+2020202020202020\
+20\x0a2020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+02020202020\x0a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020\x0a20202020202\
+02020202020200a2\
+0202020202020202\
+0202020202020202\
+0202020202020\x0a20\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020\x0a202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020202020202020\x0a\
+20202020200a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20202020\x0a2020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0\x0a20202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020200a20\x0a20202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020\x0a202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020202020\x0a202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0200a20202020202\
+02020\x0a2020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20202020202020\x0a2\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020\x0a20202020\
+2020202020202020\
+2020202020202020\
+0a20202020202020\
+2020202020202020\
+\x0a202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020202020\x0a202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20\x0a2020202020202\
+02020202020200a2\
+0202020202020202\
+0202020202020202\
+02020202020\x0a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020\x0a20202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020\x0a20\
+20202020200a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020\x0a202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020202020202020\x0a\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020200a\x0a2020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0\x0a20202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020\x0a20202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0200a20202020202\
+020\x0a202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020202020\x0a202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+02020\x0a2020202020\
+2020202020202020\
+2020202020202020\
+0a20202020202020\
+20202020202020\x0a2\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020\x0a20202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+\x0a202020202020202\
+02020202020200a2\
+0202020202020202\
+0202020202020202\
+020202020\x0a202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20\x0a2020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+02020202020\x0a2020\
+20202020200a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020\x0a20202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020\x0a20\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020\x0a0a2020202\
+0202020202020202\
+0202020202020202\
+0202020202020200\
+a3c3f787061636b\x0a\
+657420656e643d22\
+77223f3e\x0a\xc0$8\x8d\x00\x00 \
+\x00IDATx\xdal\x9d\x09\xfc}c\xf5\xfd\xcf\
+=\x9f\xaf\xa9\x102\x961*CHR\x1aQ!4\
+ \xa4\xfe\x84\x92BR\x9a34\xaa\x90\xa2R2K\
+E%\xa59%D\xb32f(d\x88\xa4R\xa4\x10\
+\x9f{\xfe{=g\xbd\xf7\xf3t\x7fY\xafW\xa7{\
+\xbf\xf7s\xef\x19\x9ea\x0fk\xaf=\xe9\xd7\x0fl0\
+\x0c\xc3[\x84\xae\xeb\x9eT\xd0\xf5\xb7\x04n\x8d\xe3\xf7\
+\x84x\xff\xa9\x05]wxA\xd7m\x1d\xd8\xaa\xeb&\
+\x8b\x0bq\xdcS\x88\xcf\x7f2\xf0\x89x\xfdx\xa1\xbe\
+?\xb7\x9f\x10\xc7{\x03\xf7\xc4\xf1\xf1B|\xfe?B\
+|\xdf\x5cA7<B\x88\xe3\xdf\x84x\xff\x8c\x82\xae\
+\xbb\xb6\xa0\x1b\xde\x108\xa0\xeb\xe6\x97\x13\xe2\xf5MB\
+\xfc\xfba\x81C\xe3\xf7\xde!\xc4\xfbk\x07\xd6\xe9\xba\
+\xe9\x0f\x84\xf8\xfc\xc5B|\xee\x98\x82nr\xa6\x10\x9f\
+\xfb\xb3\x10\xef\xef^\xd0\x0d\xaf\x17\xe2\xf5F\x05\xddd\
+%!\xde\xff\xa1\x10\xef\x9fX\xd0\x0d\x9f\x09\x1c\x1f\xaf\
+?\x158.\x8e\xa7\x17t\xc3YB\xbc\xbe\xb0\xa0\xeb\
+\xfe\x15\xb8/\x8e\x8f.\xe8\xbaG\x14t\xdd\x82\xc0B\
+~\x7f\x99\xf8\x9d\xff'\xc4\xeb/\x05\xbe\x1c\xaf_\x1f\
+\xd8'^oU\xd0u\xaf)\xe8&o\x17\xe2\xf5\xb6\
+\x05\xdd\xe4#B\x1c\x1f\x16\xe2\xfd\x9f\x16t\xfd\xb7\x84\
+8^-\xc4\xfb\x9f\x0b\xc4\xf9M\xae\x17\xe2\xf8\x9b\xc0\
+e\xf1\xfe\x9f\x0a\xba\xe1C\x81x\xae\x0f\x7f=pn\
+\xbc~\xa3\x10\x8f\xe5f!>\xff~!>\xff\x86\x82\
+n\xb2A`\xfd:^\xe2Z\x16*\xd7sEA7\
+\x1c(\xc4q#!\xde_\x22\xb0d\x1c\xfb\x82n\xf2\
+b!^\xbeY\x88\xdf\xd93\xb0G\xbc>^\x88\xcf\
+\xadT\xd0u\x7f/\xe8\xba?\x17t\xdd\xda\x05]\xf7\
+\x98\x82\xae[\xb1\xa0\x9b\xbcG\x88\xe37\x85x\xff;\
+\x05\xdd\xe4P!^\xafU\x90\xef\x0f\x8f\x13b|\xfc\
+E\x88\xe3M\x81?\xc4\xbf\x7f(\x10\xf7\xa1_A\x88\
+\xbf\xbfT\xf0\xf8:\xac>\xe7\xee\xc6\x82\xae[\xb8\xa0\
+\x1bv\x0c\xbc,^\xff$pI\xfc\xdd7\x84\xf8\x9e\
+\xdf\x0a\xf1\xfa\xf7\x81\x1b\xe2xo \xc6\xff\xe4\x12\xc1\
+\xf3j\x938\xde]\xd0u\xf7\x14t1\x06\x84\xae\xfb\
+zA\xd7\xed\x15\x88y\xd4\xed\x1axE\x1c\x97*\x18\
+\xc7\xd1\x828\xfe\xa3\xa0\xeb\xee\x0f\xfc\xdb\xf3i\x81_\
+\xdf\x1f\xc7\xdf\x05\xae\xf7\xf7\xc5\xf3\xed~\x148\xdf\xcf\
+-\xce\xbf{ZA\xd7\xad_\xd0u\x8b\x17\xe4|\x9c\
+^\x15\xb82^\x7f]\x88\x7f\xbf\xb7\xa0\xeb\xaf\x10\xe2\
+\xfd\x1b\x02q?\x1e^$\x10\xdf7\xbf\xbf\x10\xef\x1f\
++\xc4i^#\xc4i\x9d%\xc4\xdf\x7f\xbc\xa0\xeb\xdf\
+(\xc4\xfd\xb8.\xa0qy\xa7\xd0\xcc\x93\x87\x0a\xban\
+\xd1\xc0\x22\xbe\xdf:.V\xd0u\xdf\x0b|7~g\
+W!\x8e\x9b\x07\xb6\x88\xf7\x9f\x13xv3\xee\x1e\x0c\
+<\x10\xc75\x0a\xba\xc9A\x01\xadw'\x05b>O\
+.\x08h\xbe\xbe\xbb\xa0\x9b\xbcQ\x88\xd7o,\xa8\xf3\
+n\xaf\x82.\xbe[\xa8\xf3v\xff\x82n\xf2*!^\
+?\xa3\xa0\xebV.\xa8\xe3\x99q\xbbCA7Y[\
+\x88\xf3\xbeF\xf0\xf8\xf9I\x1c\xbf[\x90\xf7\xb9\xac\xb7\
+[\xd7\xef\x9d|tr\xf4\xe4\xe88\x9e%\xc4\xfbG\
+\x16t\xdd\x0b\x0b\xba\xee\xca\x82\xae\xbb\xaa\xa0\xeb\xd6)\
+\xe8\xba\xe7\x16\xc4\x0f\x16\xe4}\x9e<[\xa8\xebJ\xb7\
+EA\xd7\xad;\xfe\xdd\xe4I\x93\xf5\xcb|\x7fuA\
+\xae\x97\xdd\xa7\x0b\xba\xe1\x09B\x1c\xdf,\xc4\xfb?/\
+\xc8\xf5\xa5[\xa1\xa0\x9b\xbcB(\xdf3\xde\xc7\xa9\xcf\
+\x83\xf1\xff\xef\x82\xfa\xdfS\x0a\xba\xc9\xc7\x85x\xfd\x89\
+\x82\xbc\x1f\x93\x97\x8c\xebH\xb7]\x81\x9e\x8b\x9e|\xfd\
+\xbb\xf5}\xde\xeb\x16t\xdd\xe3\x0b\xban\xe3\x82\xfaw\
+\x8b\x16t1F\xca|\x99\xbc`\xb2\xe5d\xcbx\xbd\
+gA7\xd9_\xa8\xcf\xb9;\xb0@\xbf\x1f\x88\xd7\x9b\
+\x17\xd4\xfb\xef\xef\x9d\xbcH\x88\xd7/(\xa8\xf3\xcc\xeb\
+\xe6d-!^\xafZ\x90\xebY\xdc\x17\xa1\xeb\xee(\
+\xa8\xffy^\x96}\xe5_u\x9f\xca\xeb\xe1:\xd9o\
+\xe6\x0br\xdd\x8d\xbdF\xc8\xf18y\xac\x10\xafW+\
+\xe8\xba\xc7\x15\xd4\xf5\x92\xf5\xd6\xdf\x9f\xe3d\x9b\x82\xae\
+\xdb\xb1\xa0\xeb^T\xd0M\xb6\x11\xfe\xc7\xf5z]\x99\
+<W\x88\xd7O(\xe8\x86\xcf\x09^\x9f~\xd7\xcc\x9f\
+\xffWP\xe7\xdf;<\xff\xf6+\xe8\xba\x0d\x0b\xba\xc9\
+*B\xf3\x5c}\x1e\xb1F\x0au~\xfdUh\xe6\x15\
+\xf3l\xd9\x82\xfc\xfda'!\xfe\xee\x85B\xbc\xff\xac\
+\x82.l\x8bC\x8b}\xa1u\xea\xba8~Fh\xd6\
+\xff/\x09\xf1\xfa\x07\x05u\xfdb\x1d\xf0\xfd\x9c,/\
+\xd4\xe77\xfcEh\xc6\xff\xec\xf3\xfacA\xd7]]\
+\xd0u\x7f)\xa8\xe3e\xd3\x82n\xb2\x89\xd0\x9c/\xf7\
+\xfdy\x05\xddd[\xa1\x0e\xa3\xe1\x83B\xfc\x9f_\x15\
+t\x93\xa7\x0aq\xbcI\x88\xe3\x89B]\x7f\xca\xfe\xf5\
+\xfbx\xfd\xd8\x82<\xaf\xc9\x0f\x858\xde#\xd4\xfdw\
+\xb2\xb1\x10\x971'\xc4\xebM\x85\xf8\xdd\xd7\x08\xf1\xfe\
+\x1b\x84f<\xb1\x1e\xbeZ\xa8\xfb\xda\xf0~\xa1\xaes\
+\xfd\xe1B\xbc\xffV!\xa6\xc9\xa7\x848\xfeT\x88\xcf\
+m.\xc4\xbf\x9f\x22\xc4\xe7_*\xc4\xfb\x1b\x0aq|\
+\x9dP\xc7\xe9\xe4\x0fB\x1cw\x10\xe2\xef\x8e\x12\xe2\xf7\
+\xcf+\xe8\xfaW\x09q\xbcJ\x88\xcf=K\x88\xe3\xc2\
+B\x1cO\x11\xbc\xcf,\x11\x7f\xff2!\x8e\xdf\x11\xe2\
+\xfd\xcf\x16\xc4\x07\x0b\xba\xfeOB\x1c\x17\x11\xe2s\xdf\
+\x17\xe2x\xaa\x10\x1f{\x8b\x10\xfb\xe4:B\x1c\xd7\x14\
+\xe2\xef\x8f+\xe8\xba\xdf\x16\xa4}0\xf9\x8bP\xc7\xeb\
+d9!\x8e7\x0b\xf1\xb9\xd7\x17t\x93\xcf\x09\xf59\
+L^.\xc4\xf1\x0e!\x8e_\x17\xe2\xf8S!\xfe\xee\
+\x90q\xbc\xa7]\xf7\xd7\x82\xfc;\x9eWwCA\x1d\
+\xdf\xef\x15\xe2\xfa\x8e\xec\x8f\xe8\x8f(\xebSY\x87\x87\
+\x03\x84\xffZ?\xdfX\xd6\xcf\xed\x03z>K\x05\x96\
+\x8e\xbf{\xa5\x10\xd7}\x9a\x10\xaf\x9f$\xc4\xbf\x7f:\
+\x10\xd7?\xbdQ\x88\xf7/\x0c\x5c\x14\xef_\x13\xf8m\
+c\xf7\x9d]\xd0\x0d\xe7\x0e\xdf\x18\xc2\xfe\x9a\xbfi\xfe\
+\xc6\xf9\x18\xcf\xc3/\x85\xf8\xdc\xb2B\xbc~\xa9\x10\xaf\
+\xbf,\xc4\xeb\xaf\x08\xf1\xf9\xc5\x84j\xc7\xcd\x1d\x1d\xf8\
+X\xbc>:\xf0\xd1\xf8\xdc\x0e\x81\x1d\xab\xdf0\xf9\xae\
+\x10\xc7\xa7\x09q~\xbf\x16\xe2\xf3o/\xe8\x86O\x0a\
+q\xdcF\x08\xfb\xe8\xc6\x87oz8\xce\x7f\xfen!\
+\xae\xe3\xb9B\xfc\xfdmB\x19\x7fG\x0e\xb1\x8f\x0f\x97\
+\x0fW\x0caWM\xdf$\xc4\xeb\x95\x86\x15\x87\x15\xeb\
+\xfa\xd3\x1f\xd2\x1f\xda\x1f\xda\xcc\x8b+\xc3\x0e\x8b\xfd~\
+\xee`!\x8e\xe7\x0aq\xbcZh\xfc\x9d\xfd\x848\xbf\
+\x8f\x15t\xc3'\x84\xf8\x9d\x95\x84z\x9f\xfa\x0d\x848\
+\xde,\xc4\xdf\x7fL\xa8\xf6\xc1\xf0\x1e!\x8e\xdf\x12\xe2\
+\xdf\xff&\xc4\xef\x1d/\xc4\xdf\xbd+\xf0\xce\xba\x9eO\
+\xee\x16\xe2\xf3\xff\x16\xe2\xfa\xbf'x\xb9\x9b\xd4\xfb1\
+\x7f\xab\x10\xc7\xd5\xe6W\x9f\x8f\xfdhz\x8b\x10\xc7\xd7\
+\x09q\xff\xe2\xee\xe9\xfeM\x97\x11\xe2\xf5o\x84\xf8\xfc\
+zB|\xffK\x848\xae'T\xfb\x95u~\xf8\xa8\
+\x10\x9f?P\x88\xd7\xff\x10\xe2\xf8\x07!\xbe\xf7.!\
+\xfe\xfd$!^?R\x88\x7f\x7f\xa5\x10\xaf\x9f \xc4\
+\xf1\x22\xa1\xfa\x8b\x93\xb7\x0a\xf1\xfa\xe3B\x1c\x9f+\xc4\
+\xef\xbe\xb2\xa0\x1b\xf6\x10\xe2\xb8\xb4\x10\xc7\xa3\x85\xf8\x9e\
+\x9f\x0bu\xde\x16;\xfa\x86jG\x0c\x8f\x15\x8a?|\
+\xf7\xa0\xfb\xb7\xa6\x10\xc7e\x848./\xc4\xf1b!\
+\x8e\x8b\x08q\xec\x858.%\xd4}cx\xbe\x10\xc7\
+#\x84Xf'\xc7\x08\xf1\xc0\x96\x0a\xe8\xc4v\x09\xec\
+\x1c\xc7\xcd\x02\xb1\x90N\xff,\xc4\xbf\x7f-pN\x1c\
+\x9f/T\xc3\xa8{s\xe0\xa08\xbe\xa7\xa0\xeb\xde\x16\
+\x88\x81\xdf\xbf?\xf0\xbe\xb8\xb0\x07\x04\x1b\xd4\x07\x14\xc3\
+\xea\x05\xc5\xb0z_A7\xf9\xac\xd0\x18L\x9f\x12\x9a\
+\x05\xf4\xd2\x82n\xd8X\x88\xf39Y\xb0\x81\xb3\xac\x07\
+\xf6\x17\xe3\xf5\x22\x05\xb9\x00t;\x05\xb8\x8e\xcd\xe2s\
+O\x16\xe2x\xa0`\x07@\xe7\xbdsA7\x5c&\xc4\
+\xf7\xffM\xa8\x06$\x0b\xef\xe4\x00!>w\xb0\xe0\x09\
+\x1f\x1b\xeepx\xe0C\xd5\x10H\x87E\xe6\xdb\xbc\x17\
+N}\xdf]\x81\xbf4\x86\x81\xb6Q9\x02\xcb\x15t\
+\xc3\xcdB|\xefk\x03\xfb\xd8q\x8a\x85c\xb2W \
+\x06N\xf7\x92\x82\xea\x08`\x88\xe30~\xab \x7f\x7f\
+\xf2.!^\xdf\x1e\xf8c\xdd\xf8\xba}\x03\xfby\x83\
+\xfb~s>\x17\x07b\xc1\xeb\xe7\x03\x0f\xc7\xe9\xdf&\
+\xc4\xf1\xb7BL\xec\xcf\x07\xceh\x0c\xf1w\x15t\xdd\
+*\x05ixN6\x13\xea\x82<}\x99P\x0d6\x02\
+(\xc5\xbc\x99\xb3!\xf2\x01;\x0e\xb1\xd0Mo\x16\xe2\
+\xef\xef\x17\xaa\x81\x91\x86.\x86\x92\x17\xb0\xee\x97\x059\
+>\x86\xdf\x0a\xf1w\x8f\x11\xea\xc2\x9c\x86\xb6\xc7S\x1a\
+\xc0\x1a\x17\x1b\xd9 }|\x0dpLO\x17\xe2\xdf\x17\
+\x11<n\xc3\xa0\x1d~.T\x03\x05C`8T\xb0\
+\x01\x13\x8e\xcdp\x92\x10\xc7O\x0b\xf1\xfe\x8aB\xfc\xdd\
+A\x05]\xf7\xcd\x82\xea0\xe0\xd0\xcb\xad\x94\x01\xb7f\
+A7\x1c#T\xc7q\xf2\x15\xa1\x06$&\xcb\x08\xf1\
+\xb9\x7f\x0a\xf1\xfe}\x01\x8e\xffr\xe0\xe4\xce\xc6\xd1\xc7\
+\xc1\x7fTA587(\x18\x0d\xd6M\x9b\x00\xd8\xef\
+\x02\xbf\xaf\x06\xd0\xfc\x1f\x85\xf8\xf7\x97\x16t\xc3aB\
+\xbc>\xab`4T\xaf\xaa\xef\xf7\xdf\x14\xe2\xf8B\xa1\
+\x1a\xe4\x93\x1b\x85x\xffA\xa1\x09\xa8\x10\xd0\xe093\
+\x9f\x1e.\xa8\xe3UnR8\x94\xe1\xdc/Y\xaeC\
+\x8e\xfc\xc9\x9eg\x0a\x14\xfd\xa1\xa0\xdeW\xdf\xcfb\x16\
+?\xdd\xeb\xd5a\x8dc\x8f\x03\xf7\xfb\x82j\xd8`p\
+\x110\xc1\x00\xb6A\x97\x8e\xeesF\xc7s\xb8Hh\
+\x0c\x22?\x9f\x5c\x9f\x1c8\xe0{\x86\xef\x0a\x8dCr\
+~A\x0d\xfc<\xb1\xa0\xeb\x96.\xc8\x00F\xf7\x9f\x82\
+\x5c''/\x13\xe2\xfdo\x17t1\x06\xfeY\xc6\xc1\
+\x83\x05\xd5\x91\xc4\x81\xe0>\x12\x18\xb8\xae\xa0:\x16K\
+\x16\xd4\x00\xe1\xe9\xc3iC\x18d\xdd\xea\xfe}\xee\x83\
+\x03\xc3\xc3\x9eB\xbc\xfebAu\xfc\x19gv\xf8x\
+\xae\xc3\x1b\xc7\x00a\x19\xa7\xf7\xd5\x000\xffM\xd6\x15\
+\xea\xb8g\x83\x9e|d\xf2\xe1\xc9\x87\x1bGg\xf6:\
+}\x9fs\xbe\xd9A\xca@%\xe3\x1f\x07\x9c\xe7\xc3}\
+^\xd4\xcfI\xa3\xe4\xe9\xe5z\x85z?p\xccl\x10\
+\x97\xf5\xf5\xf6&\xd0\xc6\xba\xe0u#\x03*\x04\xac\x96\
+/P\x80|\x5c\x8f\xf8~\x1cv\xef\x079^x\x8d\
+!N\x00\x80\xd78\xee\x9c?\x0e\xbc\x9fO\x9e\x07\x01\
+\x8e\xe5\xe3\xdb\x96/\x81\xa9UJ`\x8a\x80\x10\x01*\
+\xfe\x9e\xefs\x00 \xd7O\xe6\x11\xe7A\x00vU;\
+\xe2/\xea^\xdc\xbd\xb8y\xde\x9b\x14\xa4\xe3\x94\x81%\
+\x1bd\x93\xa7\x08\xcd\xba\xca\xbc'\x80\xe5ue\xf8\xd8\
+hXM\xee\x9a\xfcy\x22\xc3\xfb`\xc1\x81m96\
+\xbb\x0a\xcd|g=\xd9\xbb\xa0\x9b,!\xc4\xf7\xbcO\
+\xa8\xf3\xa7{dA\xae\x7f$,J \xf8C\xcd\xfd\
+!\xc0pKA\xd7mY\x90\xe3{\xb2\x8f\xd0\x04\xaa\
+\x09\xdc\xb1\xbe\xb3\xae\xedT\x90\xf3p\xb2\x9d\x10\xaf\xff\
+VP\xc7\xb1_\x0f\xbf\x17\x9aytk\xc1\xff\x1d\x1f\
+\x1cy.\xfc;\xe3\x83\xeb`\xfc\x12(a\xfc:\xb0\
+6\xfcXh\xe6\xe1\xb7\x848^)T\x87\x83u+\
+\x1dK\x1cN\xd6O\x02X'\x15t\x93\x0f\x095\x10\
+\x98\xf6\x95\xef\xc7\xe4;B\x1c\xe7\x85\xe6\xb9\xd9A\xc7\
+\x91e\x9d\xc6n\x9c|_\x88\xcb\xfa\x82\x10\xaf\x1f\x14\
+\xaa=\xd0=\xb3\xa0\x1b\xd6\x12\xe2\xdf?/\xc4\xf1\xe7\
+B\x1c\xaf\x15\xea\xfa\xdbo*\xc4\xe7\xcf\x13\xe2\xfds\
+\x0bj`\x87@\x05\x81E_\xefd\x0f\xa1\x09\xc01\
+?9\xdeY0\xee#?\x8a\xcf\x9f \xc4\xef\xbdG\
+\x88\xdbu\x87\x10\xbf\xbb\x9bP\x03l\xc3\xf1B|n\
+_!\xde\xbf\xa8\xa0\x06\xe6N(\xe8\x86\xbd\x84r?\
+\xce\x9b\xc4yO.\x17\xaa\xdd\xd2\xbd\xbc \xbfw\xb2\
+\x91\x10\xc7\x7fO\xfe5\x09;a\xf2\xf7\xc9?&\xff\
+(\x09\xa81\xb0p\xca\xe4\xe4\x89\xf6\xd3\x97y\xbc:\
+\x90]\x12?\x1b4\xf6\xfbaBcO\xed5\xce\x9f\
+\x92x9\xac\xd9odU<\xa3<\xe7o\xeb9\x87\
+\xfb\x7f@\x09\xec)0\xf3\xe4&\xd0\xf7W\xa1>G\
+\x02\xc6\xfd\xef\x03\x0a\x10\xee\x22\xf8s1?&{\x07\
+\x94\x18[T\x88\xe3\xd3\x85\xb8\x1f\x0b\x09\x8d#.;\
+Jv\xeb\xf3\x03/\xa8\xeb5\x81\xb1\xbc\xef\xbf(\xe8\
+\xa6w\x0b\x1e\xb7\xb1\xdfLv\x0a\x84\x9f0\xbdX\x88\
+\xd7\x87\x08\xcd}\xb4\x1fR\x022q\xfe\xc3s\x84\xf8\
+\xfcW\x85x}\xe4\xe8\xd8\xf7{\xf5{\xf6{\x95\xf3\
+9Vv\xdd\xdcT(\xeb\xc0\xb6Z\x07J\x00R\xfe\
+\xc8\xb6\x81\xed\x8a\xbdw\xb6\xec\xbd\xe9\xbdB\x13\xd8^\
+M\x88\xef{\xaa\x10\xc7'\xf6O\xe8c\xbd\xee\xaf\x13\
+\xe2\xb8_`\x7f'X\xc2\x9e\xed\xb7\x0c\xbc\xc0v\x9b\
+\x1c\xe4\xe5\x84\x12h\xb8\x5c~O\xff\x11!^?Z\
+\xa8\x81\xda2_\xce\xf0\xeb\xb8\x9e\xc9q\x01\xf9g\xbb\
+\x07v\xf3}8\xd8\x89\x90x\xdd\xdf\x1f\x08\x07\xbf?\
+Z\x88\xdf{k\xc1\x98\xa0{o\xfc\x9d\xfe\x8b\x7f\x9f\
+\x1c)\xc4\xe7\xbe/x\xbc^\x11\xc7\x7f\x0a%\x10y\
+\xa3\x02\x918\xf6\x93\xe7\x0bN\xb8\xc6\xef?\xfcG!\
+\xee\xdf\xe1s\x1f\x9a\xfbP\xb1\x13\xcbz>\xfd\xab\x10\
+\xbf\xf3\x8d1\x00$\xab\xa5\xd8-\x04\x00n\x15\xea\xfa\
+?\xddU\x88\xe3;\x85\xban\xe1\x87\xf6\xbb\x0b\xf1w\
+/\x12\xe2\xdf\x7fV\xd0\x0d_\x14\xe2\xdfw\x14\xea|\
+\x18\x1e%\xd4\xf5q\xd8^h\xd6\xed\xf7\x16t\xc3\x17\
+\x84\xf8\x9d\x7fx\xde9\x81\x87\xdf6,*T{p\
+\xf8\xc5\x18\x98\x196\x14\x9a\x04\x9d\xed\xfe\xe1SB]\
+\xc7\x09(t\xeb\x15t\xc3\x8b\x85\xea\xcf\x0e\xaf\x12b\
+[\x223\xdf}2\xa0H\xeaq\x81OW\x03xr\
+\x9fP#\x8e\xc3S\x84\xb8\xf1\xd7\x0a6\x80\x7f\x1a\xef\
+\xff)p\xa77\xd0X\x08'7\x08q\x83\xee\x0a\xfc\
+\xa5q\xd4\xed\xb8ff\x84\xcc*\x06*\x99\xb4?\x8f\
+\x1b\xfd\xf0\x9b\xc0\xaf\xe3\xf8\xa4\xc0\xfa%2)\x8c\xdf\
+w\x967\xa8o\xdb\xa0\xd7\x8d\xbdR\x88\xeb\xd8N\xf0\
+\x82ya\x9c\xc7K\x848\xfeMp\xc4q)o\x14\
+q=\xf3\x9b\x08\xd5!b\xc3\xe3\xc1\x0d\x8f\x17\x1aC\
+mZrW\xa3\xa3q\xb3#\xe2\xb75\x99\x19\x1cs\
+\x99\x01\xf7T\x87\xb7<\xb6G\xfa\xb8D\xdd\xb8'O\
+\x0chA\x7f\x7fA\xd7=9\xb0\xa1\x07\xecm\x8e0\
+\xbd\xa5\x1a\x08i \xc3\x5c\xd8T\xa8\x91\xf9a\x15!\
+~v\x9d\xc0\xba\x8e\xb4n\xef\x88\xf4\xf1\x8dA+s\
+iig\xba\x7f\x15\xcfu/\xc1\x91\xa5\x15\x9a\x8d\xf8\
+\x09\x81\xc7\x97\x8d\x22\x10\xef\x9f\x1c\xf8u\x93qfC\
+R~f\x7f3\x17\xc2@\xea\xd7\x0d\xc4\x00\x9c\x9e%\
+\xc4\xdf?C\x88\x7f?5\xa0\x0d\xe6u\x81\xd8\xd8\xa7\
+\xb7\x0a\xcd\xc4{t`\xd9&\x83\x22\xf3l}g|\
+\xbfg\x87h\x99\x86\x99\x82AO\xc6\xc7\x91\xcc\xe1w\
+B\x8dPvG\x14\x8c\x0e\x9a\xae\xe7\xc7\x81\x8b\xea\x06\
+;\xfd\xb2\x10\xff\xfe\xc3\x82\x1ai\xfb\x9aP\x03\x0b8\
+ \xc3g\x85\x1aY\xce\x0c\x9ex&\xb1\xe1L_\x1a\
+\x88\xfb><O\x88\xdf\xd9B\x88\xcfo%\xc4\xf1\x9d\
+\x82\x0d\x9d\x9b\x1c@{[\x9d\x8f\xc3&Bc\x10c\
+@\xfcD\x88\x7f\xff\x95\xd0\x18\x5c8\xc4\x18\xb6\xc5\x8a\
+\xf3\x82\xf7Pu@\xca\xe8\xfc\x87\xc7\xd3\x7f\xbc@>\
+\xda\x8e\xc3\xca6 \x17u\xa6\xe4\x85\xce\x00j\xa3\xd9\
+:\x10\xaf\xa7?\x0e\x5c\xd40=\x14!\x8d\x8dz8\
+.\xf0\xf7j\xf0\xf6\xdb\x091\xae\xae\x09\x5c\xeb\xf9w\
+w3\x8e\xff\x14\xb8\xb3:\x068zi0\xe1\x10\x5c\
+RP\xe7\x1f\x0e;\x86\x89\x22\xe8Z`o\x0a\xfc\xa1\
+\x99\x0f\xca\x7f\xe9~\x7fB0c\xe6\x88&\x10\xf5\xd5\
+\x82qa\xffy\xe3\xa8\x11H!S.\xb3u\xc5\x99\
+y\xd3200|\x19\x9f\xce\xb4\x0e'\x0a\x8dA\xfe\
+\xf4\xd1\xb1\x9cl-4\x99Vg\xbe\x87\x1f\x09\xcd:\
+H\xe6\xce\xcc\x1e\x02!d\xb8\x14\x86,\x81H\x05n\
+wi\xee\x0bL\x03;\x00d\xf82\xb0\xf1\xe4\x82\x1a\
+\x88 \xa3a\x03*\x1d\x85\x9a\x19\x7f\xa00(pp\
+n.\xa8\x8e\x1b\x99U\x02/|\x8e\xc0\x9f\x0d\xe1\xe1\
+j\xa1\xf9<\xeb%\x0e\xa8\xef+\x0c0\x0c\xad\x5cO\
+\xef\xb1cU\xc7\xf7\xc4\xe3{\x0c\x14q\x9e0\x0bx\
+\x9e8H8\xb4\x18\xb2\x18\xec\x04\x18q\xc8\x09\x18p\
+\xfe8R80\xdc_\xbe\xb7ev-h\x02\xc2\x9c\
+\xa73\x849~\x16\xf3\xe7q\xd8\x18\xd7\x1c\x09\xf80\
+n\xf8\x1e\xde\xe7{\xc8`;\x10\x1b\x8ex\xa09_\
+\xaek);\x90\xcb\xfb\xfcWu\xe0\xf61\x0e\xe4p\
+\xff\x09\xe8\xc2\x94YO\x88\xd7\x9b\x15T\xc7\x9eu\x99\
+@\xc1\xaa\xfe=\x02C\xcc\xcb\xc7\x09\x0d\x93\xcd\x0eY\
+\x8c\xe1\xf1y\x11\xd8d_x\xda\x180 s\x9d\x8e\
+\x0b\xe3p\xf7\xeeU\xdd\xab\xca\xdf\x8d\x0e\x07\x19L2\
+\xeb\xdc'\xec\x95W\x0bM\xc6\x9b@\x17\xd7I\xa6\x9c\
+\xf5\x86\x00\x08\x8e\xdd\xb9B\x0d8\x93@\xc8\x00\x01\xe7\
+\x09\x03\x83@\x96\x03\xd3\xc90a\x1cb\xe7\x10H \
+\x90\x84\xa3\xc4z\xe7\xc0c\xd9w\x9fP\x03\xa1\xc3-\
+B\xe3\xc0\xb0\x1f1N\x19O\x9c\x07\xe3\x93\x80\x19\xcf\
+\xd5\xf6\xc0p\x88P\x1d\xf54To+\xa8\x01P\x98\
+\x06\xcex\x93\xe9\xcd@\x0b\x81-3\xa2\xb0\xef&\xa7\
+\x095@\x90\xbf\xcb\xbeurAW\xd2\x14\x0aD\xec\
+R\xd0M\xde \xd4\xc4G\xda/$xl\xc0O~\
+-4\x0c\x133!\x92\xb1\xe0@\xcc\xf4\xa8\xe9G\xa7\
+\x1f-\x0c\xcd3\x873\xff/S#\x03\x5cfL\x11\
+\xb8f=\x18~ 4L\x81\x1b\x85\xf8\xdcs\x84x\
+\xffv!\x8eW\x0b\xf1\xefw\x09q\xfc\xb0P\x99\x91\
+\x19\xd0\x86\x09\xe9\xbf\xeb\x97\x16\xe2<\x8f\x16\xe2\xef\xee\
+\x17\xe2\xf8k\xa1:\x16\x939\xa1\x99\x970raz\
+\xdd\xe1\x80\x0e\xeb\x9c\x1d\xe9\xee\xb5\x05u\xdd8\xb3\xa0\
+\xeb~S\xa0\xbf+\x01[\x98-i/y\xbe\xe58\
+\xfcR\x81\xe6Aa\xc8\x95@\xc8\x065\x13\x9e\xeb\xd0\
+\x17\x848\xef\xf7\x0a\x0dC\xd3vO^?\x81Z\x07\
+\x9e\xfb3\x85x\xff\x8c\xc0\xe7\xe2\xb5\x18\xca\xeb\xdb\x1e\
+|t\x0d\xccL^)\xd4u\xbc0Z\xe3:&\x0b\
+&\x0bM\x16*\x0e\xdbvr\xa0s\x1fv\xa6zz\
+| \xae\xaf\xbf\x5c\xa8\x7f7\xdd/\x10\xf6\xdf\xf0\x01\
+!\xde_Lh\x02SO\x12\xe2\xef\xee\x0e\xc8\xbe\xd9\
+\xa7\xa0\xeb_.x]\x8b\xf5kX# f\xe9\xe2\
+B\xfc\xdd\xf1B\xc3|{\xf1\x18 -\x09\xd5\xb0'\
+\xfb\x03\xc3A?\xb0\xb9/\x0e@\x0c\xf7\x08\xf1\xfe#\
+'\x8f\x98<\xb2I\xfc9`>\xb7\xc6\xdc\xeas\xab\
+\x97\xf1\x7f\xa9\xc6\x7f\xffE!\x8e\xab\x08q|D`\
+\xb1\xca\xbc\xee?\x15\x10\x13\xe1\xee1\x93<]U\xa8\
+\x89\x83\xcc\x98\xbfS\x88\xdf\xf9h\xe0\xa8\xca\xb8\x81\x11\
+\x94\xf7c\xf7\xc9\xab&\xbb\xd7\xc0\xebd\x8d\x80\xce\xe7\
+p!\xfe\xee\x12\xa12a\xcb*'\xa6\xed\xd7\x84&\
+\x10\xf7f!\xfe\xfd\x94\x80\xd6\x81\xdd\x02\xbb7\xeb\xbd\
+\xd71Y\xe9\x93\x1f\xc7\xf9\x9d!\xc4\xdb\xfb\x8f\xd75\
+l=\xbcpxa\xc9\x9c\x17;\x7fx\x97P\xe7\xf7\
+\xe4\x16\xa1\xee\xab\xd8\xf3\xdd7\x0a\xf2\xf3\x0a\x9b)p\
+\xd6//\xc4\xebO\x0a\x95\x114\xbf\xb6P\xe7O\xff\
+a\xa1I\xac\xfe\xb8\xa0\x9b\x1e.4\xfb\x8c\xfd\x0d\x12\
+\xc70\x02&\xab\x0bN\xf8\xbe\xd6\xcc\xd5\xcd\x1b\xc6\x02\
+\x89\x11\xaf?0\x0daD\xe1O0\xef\x0bC\xe6\xd3\
+%P\x1e\x98I\x84+\x80\x87\xfd\xb7\xe8\x18\x18\xc1\xee\
+Y\xd0o#xb\xcbA;?\xf0\xa3\x86\x1a/\xb7\
+\xe3\x8aZ\x0a0l)\xc4\xfb_)\xe8\xfaW\x07\xf6\
+\xf4B\xf4\xc1\xc6\x00\xc5\xb0~\xb8l\xf5\xdd\xe4b\xc1\
+\x14\xdf?UG\xbbPw_Q\x1d\xc9\x12\xd1\xdb\xbb\
+Yhp\x8c\xe5\xb8\x9e\x10\xaf\xff#4\xd4\x1bE\x86\
+\x9egj\xf4\xcb+u#\x9c\xd3_\x17\x07U\x03\xeb\
+TS\x85\xae\xa9\x1bIy\x80\xb1\x81O\x7f\x2283\
+\xf7\x9cf!!\x83\xee\xeb\x1c\xd6\x15\x1a\x03l4;\
+s`\x0f\xb7\x09\x1ex?l\x1e \x11}\x0cD\x16\
+`\x0c$9\x02[9\x92{\xa2\xef\xbf6&-\xbb\
+\xbb5\x0b4\x81\x08/\xa8ix`\xe0]\x5c\x90\x9f\
+\x9b?U\x88\xef\xfbR \x9e\xeb\xdc\xa3\x03\xcb\xd6\x88\
+h\xb9;\x976\x99\x8a\xe7\x17\xd4\x0c\xde5\x05\x95\xea\
+&C\xe3\xb1\x0d\xf3C\x81\x95\x1f\x9b\xa2\x7fw\xe3\xf8\
+B\xfd$S\xa9xS8\xb2\x93?\x0a\x0dUK\xcb\
+\xe0\x8b\xaa\xe1Y(XrL\xb6\x0f\xc4\x06;}\xaf\
+\x10\xcf\xe9\x1b\x81sM\xbd?\xadR\xc9\xd2@\xc0\xa1\
+\xe5{L\xa5&\xe3<\xec\x1fPF\xff\xc5\x81\x17\xd5\
+Hnn\x98.-\x99\x5c\x18\xb8\xa8P\xd7\x8e\x14u\
+-KbD\xac>\xaa\xc9\xa0\x10\xa01E5)\xad\
+\x1e'\xe9\x08\xaa\xd0@\x1b\xe2i\x05\xdd\xb0\x85`\xc7\
+\xf9\xc7.\xd9P\xa0\xe9\xe8@\x18&\xfd1\x81c\x1b\
+J\xe9\x9dB|\xfe\x8a\xc0\xe5MF\xfe\xaa\xc0\xfaM\
+\x09\x88\x032\x93\x87\x84f\xfcjC\x89y:\xfc=\
+\xf0\x0f\x07\x02\xa6vD\x16\xaf\xa5'\x19\x18\xc0a\xc1\
+P\x95\xfb4m2\xac\xbb\x16\xd4\xd2\x86\xe3\x02Zp\
+\xfe\x15\x88q>\xfcG0\x05rG\xcf\xefi\x13H\
+\x83zl\x0a}R\xca\xa0N^%4\x062\x0e\x13\
+\x0e\xce[\x02\x075%\x130b4\xdaoqfr\
+\xad\x9a\x11*\xc4V\x19\xe0\x1f(\xe8\xba\x0f\x17\xa4#\
+?\xd9Qh\x1c\x1bJ$n*\xf8\xbf\x8c\x08\x98\x1b\
+8\x86\x8c;(\xeb0\x01<o\xd2q\x83a\x81c\
+\xe2y\x9a\x94H2\xaad$\x1d\xe1f}\xc8\xcc7\
+\x19T\x0c\xf3\xcb\x0a\xba\xe1\xb5B\xcd\xd4\xa4\xa1\x0c\xd3\
+\xc0\xeb\xc4\xff\xf9\x1e\x9e+\xa5#~\x8da\x9b\x01-\
+\x1c\x0fJ\xb20\xf8q`\x1c(K\x07\x86\x00\x00\xdf\
+\x8bC\xc5\xf5a\x083O\xa0\x92SR\x01%\x1d\x87\
+\x91\x801\x81\x90W\xd9\x01$\x90A\xe6}\x86A\x10\
+\xef\x8d\x81\x05\x02\x0c\xfc>\x9f\x9b]\x8fW\xf0\xf3t\
+\xc4\x9c\x00\x09\xd4\xe1\x5c\x1fW1C\x82\xe7\x89\xc3\x86\
+\xe3\xc4\xf8\xbd\xdf\xe3b\x11\xcf+2\xde.)K\xe6\
+\x05\x86\x0e\xf3n\xd6\xe1\x9f\xcd\xf02\x1f8\xe2x\xad\
+\x14\x86\xf4JM@\x89\xd2\x13\xd6e\xc6+\xaf\xed@\
+\xc7\xff\xff\xef\xd2\x14\x98\x03<\x87\xb5<>\x1f\xe5\xfb\
+\xc4\xdf\xdb\xf1\x9f\xac)4\x19q\x02\x09\xfc\xde\xecy\
+\x93I'\x90r\xa7\x03E\xecs~\xeeiX\xcd\x8f\
+\x01\xaf\xc9\x11B\x1d\x9fY:\x80Ck\x87\x83\xe7\x06\
+E\x1cG,3\xe8\xa6d\x931\xa4\xc4\x10*6\xcc\
+\xa6\x0c8\x11\xa8\x94CrF\xb3?R\xf2`\x870\
+\xc7\x17\x81/\xef+\xc98\xe3z\x19\xb7\xbe\xde\x5c\xf7\
+\xae/\xa8L \xe6\x0f\xe7\x8d\xc3d\x0aw\x06\x0e\x08\
+\xc0\xf0\xbc\x19\xd7\x04\x1a\x9d1\xcdL\x9c\x1d\xf3\xe1:\
+!^\xbfI\xa8\xcf%\x03\x93\xd8\x13^\xd7\xb0\x7f\xd8\
+\x173\xf3\xe9\x0c}R\xe7Y'\x090\xba\xc4\x80u\
+53y\x944\x10\xe0\xe1?J\x8b\xee*\x183\x8e\
+\xc75\x8c7373\xb0\xea\xf9\x97Txg\x10s\
+\x9d\xf2\xfa\xdf\xdf\xd8\xdf\xd0\xdfP\x99\x04\x19X\x87\xd2\
+L\xa9\xc1\x16\x82)\xdf\xe1\x88\xf7+\x0a\xb6C\x9fX\
+\x1d\xf2\xc9\xf3\x84\xe6y\x12\xd8r@\x03\xa6\x1e\x0eS\
+\xae\x1f\x94\x04\xb0n\xd8\x10\xa7T\x90\x92\xaa\xe9\x1aB\
+\x0c\xff\xc5\x85&\xe3\xb8s\xbfK\x1f\xcfsn\xa1\xb9\
+\x05s\x0a\xb0?VhJe=n\xc8\xe4\x92 \xe9\
+\xdf*\x94\x80\xd48nOv\x86\x9f\x84\xdaW\x85\xba\
+\xaf\x10p\xcf\xd2\x0e3U&\x87N\x0eQI%\x01\
+;\xc6\x7f\x7f\x8aP\xc7\x19\xf6U2\x13?X0\x96\
+\x86<\xa5qx_V &B\xa02i\xd2A\xff\
+\x95\x10\xaf7\x16\x9a\xf9\xe9}@\x85Z\xb2s\xf2<\
+\x7f!\xb8T\xf8\x0d5\xf00\xfd\x86P?\xd7\x7f[\
+\xa8%\xc3\xa5$\xed\xd5\x85\xa2=&|\xee\x0b\xc4y\
+\xf7\xe7\x08~\xfe*Yz\xa4PK\xc0\xfa\xef\x06\xbe\
+\xe3\x0cq\xdc\x9f\xe9ZB\xc346\xf3\x88\xf1\xd0o\
+.\xc4\xe7\xf7\x16\xe2\xf5fB\x1c\x0f\x16\xecx+P\
+\xb5\x82PK\x03\xca:8_\xec\x94\xebU\xaaTJ\
+C\xe2w\xfa\xc3\x84Z\xda\xdbO\x848\xfe\xb9\xbf\xab\
+\xffsI\xa8\x95\xf93y\xfd\xb8\x9e\xce\xffE\xa8T\
+s\xee{\x7f\xa0P\xfd>2\xde\x04\xe0\xfb\xd7\xf6{\
+\xf7ag\xe8\x7f\xfb\xbdK\xa6\xff\xdf\xbd\x02\x90\xc7N\
+\x8e\x99\xc8n=\xb8 \xa9\xf0$(\xf3\xfc\xbd\xcfQ\
+z3=Uh\xe6\x85\x19 \xc3O\x02J\xf4\x5c\x1e\
+\xb8\xa2\xb1\x1f>\x13\xb3B\x81\x9b?\x08\xf1\xb9k\xc7\
+\xf5\xab\xdfA(\xfe\xc3\xd9\xc3\xd9\xc51\x1e)\xee\xb7\
+\x0b\xd5\xbe\xa2\xd4\x88\x00\x04\xd4\xfd\xe2\xbf\xbe\xba\x09<\
+R\xf2\xed\xf5`~c\xa1\x09\x08{\xbf\xeb\x97\x11j\
+\xc0\x0b\xea\x7f\xda{0\x7f\x18\xdf\xfe\xde\xc99B\x9c\
+\xc7\xc7\x85\xf8\xbbg\x0a\xcd:\x8f]\x00C\xca\xf6\xcd\
+\xb0\xf8\xb0\xc4\xb0D3\xfe\x1dX\xc8\x12e\xec\x083\
+G\xb3\x94\x8d\x12\xd55\xc5)\x89\xf7\xbf=\x06\xa0X\
+\xf7\x17P\xab\xd1]P0F\xc0\xde\xefZ\x82E\xeb\
+\x864\xf9Z \x16\x88\xfe\x03B]\xc0'\xaf\x09\xec\
+\xed\xe3kl\xa8\xbf\xa5F\x10K\x04\xf8T3f'\
+\xb5\xe6\xb6\xd4\xd2\xec\xe0\x0d\xe6g\x95\x22?|[\x88\
+\xdf9U\x88\xf7\x8f*\x18k\xa6\x16v\x84m\xf5:\
+\x01\xc7\x82\xb6\xb8\xa1\xcf\x11\xe2\xff\xbf\xb3\xa0R\x89\x88\
+LB\xc5\xd36:\xf1Bwy5\xf8\x0a\xb5\xed\xcc\
+\x86\x0a\x8f6\x81)`\xc3\x05B\x1c\x7f*4\x86;\
+\x19\x0f\x99k\x8b7\x11^2\xafd\x84\xf4x\x16k\
+\x1c\x1b\x1e\x98\x03\x0a\x93\xfd\x02\xfb\xda\xe1\x8e\x813\xf9\
+\x91\xd0d\xe8Lm\x1f.\x14*\xc5(\xa9ho.\
+\xe8\xfa\x93\x02'\xfa\xba\x9edF\x84j\xb4\x9f%\xb8\
+\xf6\xfeE\x0d\x15s\x8f\x82\xcc\xa0\x94\x89\xffb?\x97\
+_4\x1b\xb6\xdc\xde\xf7\x99\xe2\xbf\xb9k\x17\xefj\x22\
+\xf1\x04\x08\xb4\xdd|\xb5\xb9n\xe5A~a\xc7~\xfb\
+\x1a\xe9\xa5\xa6+\x0dp&\xbc\x0d\x9d\x92\xe1<\xb9:\
+\xcc\xc3\xf5\x82\x1d\x8e\xf3\x9b@\xcb*#\x955)\xe5\
+\x8e\xc8\x97\x85\xe4'\xd5\xa0)\x11\xfc\xf3\xe28\x17\xe8\
+=\xe1\x96\xac\x99\xcc\xa4\x98;\xb33\xb9L\xb0A\xbe\
+p\xfd\xfd4\xa8\xf8\xbc#\xba%<\xa0\xd2\x87\x9f\x09\
+M\xc4\xfd\xfb\x01\x05\xce\x96\x15\xaa\xc17\x1c\x14\xd0<\
+9*p\xa4\x1d\xb9\xbd\x9b\x0c\x89\xe6_\xfc\xee\xf4-\
+BCa\xf5\xc6^\x22\x8a\xefvd^\xd4\xaf[\x03\
+\xe1\x90\xf5\xab\x07V\xf3u\xdd\xd2\x18Vh\x02\xb4\x14\
+\xd1E=^\xff\xd30Z\xc8\xa0\xca\x9d\xfb\xab\xc7\xdd\
+5\x0d\xb5\xfc3\x05\xdd\xe4\xec\x91\x9aVj\x0f\xb7i\
+\xa8\x85\x8a\xe8\xca\x00<6pL\xad\xc5-T\xb8s\
+\x1a\x03\xf3\x1d\x81\xb7\x9b\x01\x12\x1b\xd3\xf0n\xc1\x86\xec\
+c\x1d\xe8\xb8\xba\xa1L9P8y\x9f\xd0\xdc\xdfs\
+\x02_k\x1c\x0e\x22\xc8\x94P\xec\x1b\xd8\xaf\xc9\x94\x98\
+2\x8cv@\xd9\x00\xef\xb7c\xbf\x9e\xcf\xfb\x13f\xd2\
+\xdcn\x83\xea\x9e\xff\x919\xf1BM\xe9\x10\x06k\x1a\
+\xfa\xdcg\x1ce\x1c\xa3\x99\x8c1\x86t:H|\x0e\
+\xe6\x81\x0dh4H\xd2\xe1\x22`\xc3\xe7\xaf2C\xe4\
+J;\xd8P\xcf\x09\x1cQ\x9b\x8d\x03M\xa6\x9b\xf3\xc4\
+\xe1\xb0\x03_\xa8\x81\x977\x0e4\x19M\x1c\xdd\xd9L\
+!\xd7O\x00\x80\x00(\x0e-\xb5\xcc\x94\x06\xc0\xdc\x81\
+:J\x06\x97\x1ao\x0c<gz\xb2v\x94LHr\
+\x94\x1d\x8a%\x10\xe3\x80\xe6\xf0W3\x08\x08x\xdcd\
+\x87\xc0\x01\x9a0 J\xa00\x19\x0f\xd6:pX\xb7\
+n\xc8<\x17\x02\xbf\x04t\xd1\xa4\xf1}JF\x963\
+\xefa~\xdc1\xdc\xd1d\x8cq\xf0q\xb4gK\x0a\
+\xb8_\x5c\x0f\xcf\x1fC\x82\xdfo\xe7\xf3\x5c\xf3\xef\x9a\
+\xdds\xcd\xba\xcb\xfa\xc4}!\xe0\xc3y\xc0@X4\
+_\x8fG\x02\x0f<w4X\x06\xff\xee\xbc\x99F\x18\
+(\xfc\x1e\xe3\x88\xfb\xc6\x91\xdf\xe1\xbe\xb1_<S(\
+\xd7=\x06\x9e\xae\x18k^\xe3i\x8c\x0e\xee\xeb\xc7u\
+!\x03\xaf0\x9f\x9cH\xa0\x04m8AhJ\x03\xc9\
+t\xe3H\xc2`s\xa65\x99D3\xdaB\xa5\xd4n\
+\xaf&q\xc0\xbcb\xbd@\xa3\xc0\x19\x9b\x9cG\x07\x14\
+\xd4y\xcd\xfe\xcesa= P\xc5\xf7\x9b\xd1\x93\xa5\
+\x0c$\x1a\x5c\x1b\x9a\x01t\x9e\x07\xf7\x97\xf9\x85\x03\xcd\
+\xef\xe2\x80BQ\xd7\xfa|v\x93\x01\xa3d\xcf\x06d\
+\x96\x92y]O\x86\x04\x993J\x13\x9c)c\xddG\
+;\x07\x0d\x9f\xa4\xce;\xa3\x99\x81\x1c2`\xac\x97\x94\
+\x1c\xf8\xf7\xfa\x17\x08M`\xd9L\xd3\xc2 ;\xae\xd6\
+\xb2N\xae\x10\x9aRQJ>\xbe'4\x01\x18\xf6%\
+S\xfb\xd9w\x92\x19\xa0}6\xec\xc8\xe9\x97\x84F\xb3\
+\x81\x00\xb1\xed\xc6\x0c\xe0\xd8\xf1\xc8\x8c\xb03\xfb\xfd\xf6\
+B\xb3\xfe\xbb\xa6\xb70\x1aO\xad\xeb\x18\x0cV\x02\xba\
+\x99\xf8p\x060\x03\xa0\x0e@S\x221\xf7~!^\
+\x7f{\xa4\xca\x0fK\x06\x96\xa8\x01\xb6\xe9?\x84:\xee\
+Hl\xcd-,4%\x01\x8b\x095\xf1\x00\xd3\xa5\xdf\
+J\x1c\xbe&\xf0\x8aF\x84\x994I\x81&as\xdf\
+\xe4\x9fz.\x93\xa5\xc7\x1a}\xd6\xd3~5\xc1\x0c\xbf\
+m\xbd/\xad\xe5L\xf0\x1aM\xa0E\x0c\xc9\x13\xbcO\
+*11\x08U\xeb\x00m\x95Ld\xe8\xfbc\x1cO\
+\x1e%\xc4\xf7\xaf\xec\x8c\xb6\x7f/)\xce\xd2\xec\xb9\xa0\
+>\x17\xb4\xb0\xba7\x15\xd4@\xfb\xb3\x85R:\x14\xa8\
+\x19_\x18\x17\xe9\xf7L\x05\xd7\x5c?\xa6ahz\x1e\
+1N\xd1\xba\xa1t\x04\x06\xc2p\xba\x10\xc7\x95\x85\xf2\
+\xfe\x86\x85\x99pI\xacW\x97\xd4\xe7R\x12=\xc74\
+\xa5,f\xaa\x10\x08\x98\xbc\x7f\xf2\x01im\x0d\x87\xc7\
+|<\xbcaz\xb8\x94\x8a}w\xeeD\xa1j&`\
+Gf\x86~g\xa1P\xe9\x0b\xb3\xb4P\xef\x87\x9a\xa8\
+!\x90\xd8\xffY\xa8\x99\xefx\xf8\x93i\xec?\xc3\x06\
+Be:\xe4\xba\xe0@\x11\x09\xd2\xf4\xb3\xd0L\xf2z\
+\x91\xda\x18\xb6\xefr^\xa1\xddc\xe6N\xffz\xa1\xda\
+\x0fs\xaf\x15\x1a\x06\xcd\xb5r\xf5\xeb\xfa\xd4/\x17\xe7\
+\x19\xeb\xdd\xf4\x15B\xbc\xfe\xbc\x10\xaf\x0f\x12\xe2\xf5\xc5\
+B|~\x09;\xcc\xd6\xa8\xc9R\x22\xdb+\x99\xd0\xc0\
+\x0f\xb3?\x09cl~?\xa1\xd9w<?\x17\xbcY\
+\xa8\x9f\x9f.&T\xca>\x1a$h\x5c\xa5\x7fe\x06\
+\xcd\xf4\xf9BS\xdahG\x9d\xda\xfed\x90R\xfa\xbe\
+\xb9\xe7\xaf\x03\xcf\x19\xa0\xc4~\xb2_UJF\xb6m\
+\x02&0\xdc`f\xc3\xe0\xdaM\xa8\x01\x9b\x05Y3\
+\xee\xccY\xd6\xc4zC!\xe3^\xcc\x80\xbf\xd5\x8c^\
+\x19\xf0\xa7\xd5\xc8x\x7f\x93\xd0d\xa6M\x89@T+\
+E\xecN\x17*Eo\xfa\xf9\xc0\x19\x0dE\x86\x08\xbe\
+\x1f8\xd4\x9b\x1cp\xa6fL\xaf\x0e\x5cU)A%\
+\xf2\xf6\xf88\x9e\x1bP\x04\xe4\x92\xc0O\xea\x86S2\
+9\x1b\x98\xd2vuS\xebj\xc7\xb9\x10\xfc$J\xf6\
+\x03!\x8eg\x0b\xb5v\x02\xb1\x102\xbeY\x13\x82\xe3\
+\x81\x01\xd7R\xb1\x97h\x0c9\x0c>2\xa1\x18tD\
+\xec\xe7K\x8c\xaf~\xee\x1d\x05cFZ\x0e\xe2\xdb\x02\
+o\xb7#z]#J\x08\xe5\xca\xe29\xfd/\x84Z\
+\x1b\x0c\x05m\xfe\xc5\x82\x17\xf6\x98\x00\xfd\x1e\x81=]\
+K\xb4\xba'\xdc_*\xf5y\xeeY\x81x\xfe\xd3K\
+\x85\x1a\x99\xce\x0d\x95ZI\x0c\x13\xf1\x0a\xde\xe6\x88\xf6\
+z\xcd\xf5\xb8\xb6\xbe\xdc\xbf/Y<\xe4\xbd\x8e\x9c\xdf\
+\xe8\x8d\xff\xde\xa6\xa6\xdf\x99\x0dD7R\xbcI\xf1\xb9\
+\x977\x94J3\x02\xa0n\xe6\xe7Mi$r\x0cU\
+\x06q\x90\x9c\x08\x04N\xccP\xc9\xcc$\x99\x03\xf1\x1c\
+\xf6\xf0B\xbdECE\xc60\xc3\xc0\xe69R\xdaa\
+\x0a?\xa2\x8c\xb1q.\xad\x8d\x93\xccI\xa1\xf8}4\
+>w|@\x06\xd5\x1f\x85Z\xb2PF\xe3\x9b\x9aq\
+c\xc7\x87\xeb#b\x9a\x19\x08gN\x87\xc7\x08\xcd\xb8\
+\xb0#\x9b\x11Bg\x84\x8a\xb9\xb8l\xe3@\xe2Hp\
+=\x18\xfc0C\x10\xdf\x93\xb9\xb3\xb6\xc5\x82\xbe\xe6\x85\
+\xf1\x02\xff\xce\xb1\xa6\x9c=\xd2\xf3G\xf3qC!\x8e\
+\x87\x08^\x98\xd6\xa8T\xbc\xfe\x8f\x81\xdb\x9b\xf9\xee\x0d\
+\x0a\x06\x12\x9a\x1b\xa5\x86\xf1\xf96\x84T[ur\xe0\
+\xa4\xa6\x14E\xcb\xeb\xab\x5c\xfa!\x83\xec!\xc15X\
+\xdf\xa9b1\x04\x16\xc8p\x94\x8d\xf8\xe3M\x86W\xee\
+\xb22\x1c\xcf\x09<\xb7\x89\xc4z>'#\xca\xcc\x9f\
+\xd4\xa8 \xc2\xca\x7f\x18\x94\xdc_\xc6+\x99O6r\
+3\x0cRD\xc7\xa3\x03g\xda\x00\x00 \x00IDA\
+T\x1a%\xf9<\xc8\xf0\xe1\x98\xf3|pHg\xa9\xeb\
+\xfc\xdd\x06\xa6\x02cX#\xaa\xc6F\x8caL\xc6\x92\
+\xcc=\xcf\x9bL$\x0e#G\xce\x07\x07\x9e#\xd4i\
+2\xdf0\x95\xc8\x9c.\xef\xdaf\xe6\x09\x81\x07\xd6I\
+\x1ci\x076Sl\x94@\x14\x8e\x18Tm2\xea\xdc\
+_\xae\x83\xdf\xc7\xb0f\x9d\x85\xe9\xc3:\xb5\x9c\xd7k\
+6\xc8\x7f\xdb1\xa3\xb4\xe0\xaf>_\xae\x97\xeb#P\
+\xb8\x84\xbfga;x\x94\x82\x10\xf8\xe5\xf8\xa0\xcf\xff\
+\xfe\xff\x0eL\xa4#\xc8\x7f<_\x02(\x5c\x17\xfb\x0a\
+\xdf\x87C\xc9\xdf\xcf\x9c\x1f\x0et\xb7\xf2$ m\x03\
+_?\x06\x0e\x8e$\xe3\xe7\xb1\x0eD\xc0h\xc0p\xa0\
+\x14E%}\x7f*\x06\xe8\x18\xd8\xe0\xbe\xe1\xd0\xce9\
+p\x81c\xcf\xf8$\x80\xc1\xefr\xbf\xec\xe8S\xc3\x9c\
+\x01\xd5}F\x87\x9aZ\xf2\xd8\x03J\xe65\xd79j\
+\xfba\x18p\x1d$ \xac\xf12\x5c*4\x06\xb3\x19\
+\x88\xc9`C\xbb\x06\xad\x12D\xff\x10\x11\xde\xad\xa0\xee\
+\x03v\xe4\x93\xa9\x04\xf3\x8b\x00\x94?\x9f\x01a\xe6#\
+\xf7\x91\x8c<\x81\x10\xc6!\x19\x1ag\x92\x93b\xcf8\
+\x80\xb9C@\x86\xe7O \x8d\xff\x18'\xcc+\xce\xa7\
+\xfc\x17\xc7%\x85Fkf6\xb0A\xc9\xc0\xe5\x05U\
+\x94\x96\xf3\xe7|)\xf5\xe0|\x18\x87\x18\xd6d\xfcN\
+\x15j\x0d\xff\xe4\xddB\x13\x88\xf9dA&t\xb2\xe6\
+\x15\x11A\x07*(m\x839\x97\x99.\x05\x84\xafj\
+\x02Z\xde\xcf\xfa/\x0b\x0d\x03\xd3\xcf\x89R\xc2\xcc\xc8\
+\xd9\xb0\x9e0?\x10\xbb\xb3C@-o\x7f\xa5\xd0\x94\
+\xfeYL+k\xde\xa1\xc2\xc3\x84\x84\x11c\xc6jf\
+\xf6)\xedD#A\xfb\xcas\x9a\x92\x85\x19&L^\
+\xb7\xd7i\x18X\x198p\xc0\x1b\xb1/\x9ew\x8az\
+9c\x8c\xb8 \xd73\xfd\xeb(r<|}8w\
+8\xb7\xde'D\x18\xb1[\x9979\xdf\xcc\x14\x0dw\
+\xef\xec\xe2\xf0\xc9/\x9c\xfa\xb9\x86\xe3\xd0?9\xb0a\
+Mx\xa4\xd6\xcf\xc9\x01i\x1f}9\xf0\xa5\x22^\xb7\
+\x92\xec\x92\x9c\xbf\xb2\xc6\xbf\xe5\x0c\xfc\xb7\x1c\x00\x7fr\
+\xa1\xee/PiC\xff\x0f\xa1\x8a\x01O\xbe(\xc4\xfb\
+\xcf\x12\xaa=\x95\x14}S\x9fS\xf4\x99\x80\x1a\x09\x02\
+\x97\xfaM\xbf(4\x0e*\xb5\xd7f\xac\x14\x06\xc9]\
+\xb6\xef7kJ\x81\xbd\xcf\x13\xc8\x1a\x9e.T\xe6\x1b\
+\xa5#\xd4\xfa\xf7\xef\x10\x9ca\xde\xb70tJ\xc9T\
+\x11\x7f\xbe\xb7\x9e?\x01\x80\x0c\xa4|6p|\xad\xed\
+\xc7\x01/~\xd1+\xab\x88\x1e\xeb\x07\x01\xb0\xb9\x0f\x06\
+>\xd0\x94N\x98)\x05\xb5>\x03\x18\xb6[\xfbc\x85\
+jW\x92\xc9\x0e\xb7\xf2yr,'\xd7Y\x13\xc3\xf6\
+'L\x0a\xd6\x89\x14\xc5\x95H\xf9\xeb\x9b\x80\xaa\xed\xe6\
+\x14\xf1\x84i\xe5@\x22\x9aX\xb9na_\xc1\xa4\xb5\
+\x1fI\x00c\xeeIB\xa5\xceO\xf7\x0e\xbc\xd6\x09\xa0\
+\xf7V\xc6Ow\x82\x7f\xc7\xa5ZE\x1c\xf2\xc2R\xca\
+\xf0\x8e\xe1\x1d\x8dx\xf1[\xccL\x22\xc1aQF\x98\
+\x07\xdc\x8f\xf9+\x84\x1a\xb0!\x90\xb1\xe0.\xa1&d\
+\xa7_\x11\x9a\xf5\x91\xc0*\xf7\x85}\x92\xc0\x9dJ\x81\
+_Z\x030\x8cO\xc4;S\xc4\xcf\x22\xf2Y\xeb\xef\
+@\xd6d\x18\xe7\x9ff\xb1\xe61%\xec\xe9\x9fa\x1f\
+\x11\x80&\x80\xcf>\x89\x7f\xff\x08\xa1\x8e\xa3\x05\xd3\xc7\
+\x05\xd6\xac\x86\x1b\x17@$\xa5\xd4\xd8\x7f\xd3T\x8b\x1d\
+\x1burjR\xbd!\xf6[\x05\xb6\xac\x99\xb6T\x93\
+u\xedA\x7f\xa3P#)\xf3\x9f\x17\xe2\x82\xde\x14x\
+s\x15\xa3\xe9\xbf.4\x91<\xc4q0,>_\x90\
+5\xf9\xa8\xb8\x17\x91\x8d\xa3\x9a\x08\xa1\x22t\xd7\xd5\xc0\
+\x02\x0bwN$m\x1f\x9bV\x8a[\x7f\xa2\xd0|\x1e\
+*\x91\xa8\xbao0\x83\xe0\x94fC\xc6\xc0\xc2\x01W\
+\xad\xa3\x1c\x9c3]c\xf6\x98R]\xf9\xdf\xb5\x9f\x8f\
+jj\xac\xb5\x0d\xafh\x83x\x0dO\xa0\x1b\x9a\x81C\
+dR\x11\xf75\x1c\xd9\xfeYQ\xff\xfe\xa8(\xe3\xb9\
+ 9b\xde\xffNp\x06\xfc\xb9\xa6~\x87\x834}\
+\xa5P\xd5?Kw\x84\xb5kM\xdb\xdc\xf7\x05\xd7\xe8\
+\xfd\xc1\x99P9\xf8/\x15\xbc@?\xc5b\x87\x87{\
+\x00-\xd6P\xfc8\xae\x93j\xe1%`\x93\x861\x19\
+92<\x12\x8dyOu\xdcp\x5c\xfag\x0a\xcd\xc6\
+\xa8\xa7xlU\xcf,|\x85\xe7\xd5\x8cZ\x89\xe4\xbe\
+\xb3vMP\x85_q\xac\xad\xd6<<Yhj&\
+?R0f\xe4\xbf\xdf08d\xee]\xd9P\x85N\
+\x12,\x0e\xb9\xd3\xffpH(q\x10\xd1\xef$;\xf6\
+\x07\xd5\x88\xb6j\xad\x8a\xe1\xb1o\xb7oat\x10\x11\
+wf\x90\xae\x07hU\x14\x02\xe7\xda\x8d:+\x813\
+\x0c:G\xe2s^\x11Y5U6k\xddM\xb1\xd4\
+\xb2W\xee\x0b\x0e\xa1\x99\x1e%p\xf6\x89\x86\x89a\xca\
+|\x8eO\x0cI28\x94\xb8`\x10\xa2aA\x80\x07\
+\x0d\x06o\x14\xd4\x1a\xa2>;\xbf\x96\x10\xc7\xbb\x848\
+~G\xa8\xd4\xa3\xac\x15uf&U\x8c\xad\xe1\x80X\
+M:\xa8V\xf1\xe7s0t\xca\xba\xb3\x95\xc5\x16\x8f\
+\xab\x81\xbd\x12i}^\xcd\x80\xcc}<pL-\xb5\
+)\xa5!\xfb5]*\x5c\xaa\xd2\x9f\x17\xf8A\x93\xf9\
+C\x8d\x9cL\xa7\x0d>\xba\x91PJT\xf2\x1d\xfb6\
+\x0e\xfe\xaa\xa5\xca\xba\x8aC\xaa\xc4\xe4\xc2\xff\x9b\xa1\xcb\
+L=\x86\xea\xac\x03H\xc0\x8d\x80\x0f\x01\x056P\x07\
+\x0c\x932}\xe6\xe8\xe0L> 4\x06\x0e\x86\x11]\
+0\xdc\x9d!\x0dj\xc67\x94\xddY\x8a=\x0e,\x01\
+\x22\x8ev\xbc\xd3\x91b\xbd\xbe\xcd\xa5\x1dw\x8d\xe2p\
+1\x07F\xc7\x0dG\x86\xdf\xe5\xf3\x5c/\x0e\x8b\xafK\
+\xe1\x9e\x12\xf0\xf9\xb03<;\x8d\x94\xba\xb2J\xad\xdf\
+8\xfe\xae\x9d\xcc\xef%p#\x0d\x99\xdf4L&J\
+8x\x9e\x5c7\x0e8\xe3\x8d\xf9d\xc6NR\xaf\xc9\
+\xb8\xae\xef\x12\x11\x1cR\x1c\xab5\xbc\x9e/\x95\x19\xfb\
+q&\xddmQ\xb7;Fj\xe2dc\xd7\xe4\xa1\xce\
+k\xcab:nP\xbbYG\x09`p\xbf\x08\x10\xf2\
+\xfb\x04\xb4\xef\x1a\xafw\xf8\xa5\x03\xc9\x8c'\xff}\x96\
+v\x10\x00!\xf0\x81c\xc7\xfb\xbc\xae%\x12\xe3\xbe\xc4\
+\xfa\xfcX;\xb88\x860\x19Xwz_7\xdfC\
+i\x02\xf7\x97\xcc\xf2%\xa6\xbcS\x8aC\x86\x88\x0c3\
+\x94G\x0c\x1cJ3\xc8\xfcZ\xc4\x17Q5\xba\xb4\x90\
+\x01\xcb.\x05d\xec\xa1\xf6\xdb\xde\xc8y\xc3>F`\
+\x0b\xc6\x933\xe7\x19X@\x14\x98\x12\x222d0\x22\
+p\xfc\xb9_\xad\x86\xc8\x0a\x8dc\xf16\xa1\x11y\x12\
+Si\xdf*&\x97b\xa2\xb6w\xf2\xbc\xb1\x83Pw\
+\xe7:\xbd\xae\xa3\xbd\x94\x8e\x11\x8e)\x812S])\
+\xad)\x89\x85\xb7\xd5\xfb7\xbc]\xa8\xf6\x05\x0c\x99\xa4\
+\xd8;\xf0\x8a#I\xcd0\xcc\xae\xec\x0aE\xcd0\xb5\
+\xf8\x94\xf2\xd0]\xc1\xf3\x16GLRt\x12\xa3K\x06\
+\x10\xe2\x9d\x048\x9d\xa8IQ`g\xc0RlX\xda\
+U\xc75\xccP\x97|e-\xba\xd7'\xc6\x0d\x8c\x8f\
+~\x7f\xc1\x19w1\x13\xde.T\x07`\xfe\xa5B\x93\
+\x91ti\x1e\xf3\xb4\x7f\x86\xd0$0\xf6\x09\xf7}\x9f\
+\x12 ?_\x99\xc3\xcc\xa8S\x0b\xce\xbe\x07\xc3\x10j\
+4Z\x0e\x0e\xd4\x10\xc8\xc9\xae4\xae\xfdG\xdb)\xc5\
+7\xb9o\xce\xb0\x22:F\xa6yn\xb3\xb9-\xe6\xb6\
+(\xf6\xd2X\xdb\xbd\xa1\xd7\xad\xab\xc7\xc0S\xbfN\xbf\
+v\xbf\xb6\xed\x8b\x0f\x15{o\x14E~\xd4h\xaf\x92\
+\x10\xe4\xf7\xd3N\xf6\xf5\x10\x80\x81\xa1\x9b\x19\xd8\x05\x82\
+\xa9\xd4\xef\xab\x09\x8f\xbc\xcf\x1f\x14\x1a\xbb\x95\xee\x08\xaf\
+\x10\x1a\xc7\xdb\xeb\x17\xf3\xaf\x7f\xba\xd0dD\x11\x9d\xc6\
+N\xa3\xe6\x99\x84\x87\xd7+\x15\x80\x94\x12\x10\x023\x8c\
+\x0b\x18\x99t\xe3 `\xe5\xc0*\xf6\x09L\x10J\xee\
+$E[\xc4h\xb1\x9b\xcc\x04%\x91\x81\x98sa\xf6\
+\xaa\x06\xff4\xa1R\xd8S\xc3\xc3L\xd8\xb9\xc3\x84\x86\
+\xb1\x8a\xfd\xbec`\x87*\xa2\x87\xdfP2\xf1g;\
+\x91\xb7G\xc9\x9c\xef3\xb7\x8f5\xd7\xee\xaa\xb5\xf2\xb9\
+\xbe\xa1\xb5\x86x\x9c\xed\xa2\xcc\xc0\x7f\xad\xa0ja \
+\xce\xe9\xc0i>\x0f\xec!\x07\xc4R\x94\x12\x11r\xd6\
+7\x07\xbc\x92Q\x8b\xe8:\x99k\xec\x0a\x98\x1aJ\xd8\
+^R\x03 \xd9E\xee\x22\xa1\x96\x80\x97p\xc3\xc5%\
+\x10Q\xbabM\xbe;\x06B\x18\x97\xd3\xf3\x84F$\
+\xf4h\xfbK\x94\x14z\x1d\xc9y\xe4\x00\x06\x8c\x19j\
+\xed\xe7.\x14*C\x22\xb5\x13\xd6\x13\x1a\x8d<\xcf\xd3\
+~U\xa1\xfaW\xf3\xef\x12\x9a\xfd\xca\xe3\x94\xd2\x16\x12\
+v\xd3\xcb\x85\xf8\xf7\x1f\x08\x0d\xf3\x11\x0d\x02T\xff\xad\
+\xbdG\x80\x98\xeb$\x01W$\xf1\x97mJy^\xe9\
+D\x0fv\x01\x81\x7f\xec\x0dw\x7fX0_\xd0\x88\x1b\
+\xbc,\xb0\x93\x1d\x04\x22\xc1M\xadV\x8a=hB\xae\
+kuN\x89\xfdm\x18x\xb2\xa9\xf4_\xaa\xea\xa3\x85\
+\xa2\xf3[Gp%\xce\xf7F!N`\xc5\xc0J\x8d\
+\xe1\xa6\xb8\xe9\xdf\x9b\xda\x19u'\xf8x#\x22\xe1L\
+Q:z\xd4\xe2\xc9=Y\xd3\xd4\xab\xe5\xacZ\xfe;\
+g|_\xeaH\xda\xfa^H\x16r\x0d\xdc\x8b\x9b\xc8\
+-T\x1c\xd7N\xf7\x87\x04\x0e\xb6\xaa\xe2q\xdeh_\
+\xe7\x8d\xfaG\x8d\x01\x0b\x85\xd75H\xd9\x06Nf@\
++\x06$s\xed\xee\xc6\x90C\xd4A\x94\xd1\xf5\x9a\x8c\
+\xaf\xcc\xcf;\x1bU{\x89\x1e>\xa9\x1a\x00y\xbf\xe5\
+\xe0?\xdb\x8e\xe2\xc5U\x1c\x8e\xae\x04%\x12\xfb\x8df\
+\x83\xf4\x86C\xe6\x19f\x04T\xbe\x129^\xde\x14\xc9\
+;j\xedv\x96R\xdc\x1a\xb8\xcd\xb5\x5c\xf7Zd\xe2\
+\xe3\xae!;\xa91<0\xb0i\x0f\x83\xda\xb6\x03-\
+P\xba\xb2;\x82k\xc2\xb2\x14\x83.\x02mfw\x0f\
+G\x9a7\xaa\x14\xafT\xf7t$v\xd8Y\xa8\x14\xcf\
+\xa2N\xfa\xaaF\xfd\xfe\x00\xab\xcd\x22\xfa\x85\xd8\x9c\xdb\
+\x91\x143\xe4\xf6\x1a\xe8*\xc4\xc5\xeb\x9bZ\xbd\xc7\x94\
+j\xd9\xae\x94V\xf5.\xadX\xd7\xaa\xef\xcfm\xa8\xcd\
+d\xc0\x9e\xd9\x15jk1Lnm\x0cXg\xc0\x93\
+\xd9q\xbe\xd0d\xf0\xa9\x09\x872\x8ecmjd\x1a\
+t\xcepN\xf7\x0a\xbc\xbaj_`\xb8\x12\x81\xcd6\
+\x8f\xd4V\xb9\xe6,3\xd6\x88Xq\x1d\x18\xbe\xb4\x93\
+\x83\x19\x83X%\xe7E\x86\x03\x911g\x88K\xe0'\
+\xc6\xf3\xdc\x87\x03\xf1\x9c\x16~\xb9\xd0u\x0f]\x16\xb8\
+\xdc\x8e\xb6\x022[\x09U\xcb\xa2PxOl6\x8c\
+\xe3\x0b\xc6\x1a\xdd\xc5j)\x08\xf7/\x03\x93\xa8E\xb3\
+~\xac\x5ct\xcdG\x83\xf6\xad5\xa3\x5c\xdc\x93G4\
+\x81\x90c\x85\xa6\xc4\xe8\xdf%\x07<\xd6\x00\x9f\xe7H\
+\xfe\xd9\xd5\xf0\xe8\xff\x2245\x88n/X\xbac\xc4\
+\xba8\xddMh\xb4O\xa0\xe6*\x7fuz\xd5V\xa1\
+\xcd\x10\x99\x93b\x86m\xf8?(\xdb8l\xac3\xac\
+\x1b\x18\xc2\xd4\xaamg\x11Uj\xe8\x8ew$\x9c\xf6\
+]\xd4\x5c:\x90\x97\xcf\xf5\x0b\x05c\xe9\xc49\xcd\xef\
+\xb0A\x10\x00\x22\x10\x85\xe3\x80\x16\x80\xc5\xa9r\x1c0\
+.\xa8\x1d\xad\x19\xe6\xb1\x96\x9c\xf3_m\x86\xf2~\x7f\
+f\xdeG\xc7\x86L\xb6\x1d\x9f\xac\xcd\x84z\x8e\x83\x8d\
+\xe3\xed\xccU>g\x07d\xc9\x08\xcf:\xae\xa8\xfff\
+\x1b+\x1cr\x1bZ\xaaLU\xa03\x19\x04d\xb0\x09\
+\xf4\x92\xc1\xe6y\xcd\x8a\x01\xf2\xb9\xe5\x8a\xce~\x0d\xe8\
+\x10H!`\xbe\x905>\xac\x02\x9c\x0c\x03\x07&\xf3\
+|\x10\xc5\x83YF\xa9\x05\x01\xe8Y\xc6\x00\x0e,\xf7\
+\x93\xf3\x9f\xc9\x14g\xe6\xdd5\xcd\xf9\xbc\x08\x84 \xba\
+DI\x06\x8c>\x02N\x04\x04\xd9?\x11-$\xd3\x0d\
+\xa3m\xce\xf7\xe9\xdf\xceD\xf0\xdcv\xf0~\xb1\xd0(\
+\xd6\x95\x7fO\xe0\x09*;\xe3\x84\xf1\x87\xd6\x01\x8c\x1d\
+2\xf1\xcc;gZr\x1da\x1f\x22`A\x00\x82\xcc\
+\x08\xcf\x8f\xeb\xe6\xbc\x09D\xf1\xfb\x04\xb8DE\xbd\xb6\
+\xa1\x92B\xe5F\xa4\x0e\x06\x0f\xf7\x89\xef\xa1\xeb\x85\x19\
+\x0a\x19x&\xa0F@\x89\x0c)\xa2\x9d\xa8\xd3\xb3.\
+\xc3L\xe0>\xe38:\x13Dms\x06<x>\xac\
++\x04\xe8]c\x8d\xa1\x9aZD\x94H\xc0\x0cp)\
+g\x8eO\x07:21@w\x1d\x98\x80\xb4\xc7\xf5\xbe\
+\x0d\xc3\x02;\xa2\x7f\x82\xd0\xa8\xf9\xbb\xd693a\xcc\
+w\xb4\x0e\x9c\x89\xce\xfbf\xf5m\x02^\xa9\xe1\xe0\x9a\
+\xfb\x92\xa8\x1f\x9a\xee\x09t\x01\xf0\xbc\xe8\x97\x15b\xbd\
+^Q\xa8\x863\x8e`\xd1\xb49\xae\x99\x17\xbe\x9e\xb9\
+\xcd\x85\xf8\xbb\xf3\x85\xe6{i\xe3hM\xac\xacyv\
+\xe2\xa80\xd9\xceo\xf6)w\xc9\x22\x81C\x80\xab\x88\
+\x10\xff\xb8\xd1\x10B\x03\xc3\x0e\x01\x0c\x14\x02\x1f\xc3\xcf\
+\x84\xca\x8cL\xe6\x04L\x83\xdd\x85\xb2\xbe\x96q\xdd\xff\
+](v\xc7X\xe2\xb0\xbd\x03\xd0n\x9f9y\xd5d\
+\xb7\xf2y\x02i3%\x17y=~\x1e\xc9\x90\xb5\xda\
+|I\x98\x9cX\xed\xa3lGm\xbb\xa7P\xed\x97i\
+\xb44\xfc\xb9\xb9\xad\x85\xca\xb4-\x99\xec\x0fV-\x01\
+\xc6u\xaes\xd8\xa3\x88P\xc2\x08v\xbb\xc9\x5c\x17\xb0\
+\x07X7\xe4^\xfe\xb8\xaa\xea\xe7z\xeay7\x7f\xbe\
+\x10\xbf\xfb9\xa1\xe9Z\xc2\xfd\xf78\xa3\xe46\xd5\xd9\
+-\xfa\x99]:\x10\x01\xf5\xfe\x09c\x05\xcav\xa9\xfd\
+\x97\x03\xf8&\xa1\xc9\xa4\xfb\xf9\xe2\xc0\xf6\xffO(v\
+\xf9\xd8\xf6\xef_\xa3\xfdW2\xbd\xbf\x1a\xcf[\xebr\
+\xbfg\xbf\xa7J\x9ba\x08\xa3\xf1\x10n\xeb\x05s\x17\
+4Z_0\x1e\xd0\xcex\x9d\xd00k\x09\xb4\x8b\xa9\
+\xb1R\x0dL&\xe3\xf9\xb7B\xc3 B\xd4\x8e\xf5\x03\
+\xfb\xc3\x81\xde\x0c\xc4P\xda\x82\x86\x07\xfb\xaa\x03\xaf)\
+\x02\x8a\x06\x05\x9a\x220\xb5H\xc0x\xdd\xcb\xc0\x9dk\
+\xf9\xfb\x8d\x84\x1a\xc0\xcc}L\xcad\x175\x89%\x12\
+/$F\xcc(\xc9\xc0*\xed\xdb\xad\x19C \x17U\
+\xfd\xe9R\x82E\x22\xf7\xab\xcc\xca\xd2\xee\xfe\x93\xd5/\
+\x9e\x7f\xa3P\xdb\xf6%#\xc2\x09E\x12\xe1\xf8\x1d\xc3\
++\x84f\xfd\xa7\xbd\xb1\xd7\xefR\x22|\x90\x19\xaf*\
+\x85^Nh\xba}\x9ca\xc6\x1c\x09\xc9\x99\x80J\x8a\
+\xfd\x12\xf0\xbd~,\xc9\x1a\x0e\x1b\xdb7\x92\x10_P\
+\xc4[>\xea\xfe\xeb\x9fm\x1c!\xab\xc2\x16\xca\xc2\x83\
+\xd5\xf1*\x8e\xdf)5\x92W\x22\xbe\x8f\xac\x91\xe7\x8c\
+\xd0\x98\xf2_\x02\x08r\xfc\x8f\x11\xe2Fm\x14x\x8a\
+k~\xdf\xe5\x85\xe6x;\xee\xd77T;-\x1f\xdb\
+[Tl\xa7JUO\x913\x89\xb9\xedT\xfb\xbcg\
+\x0d\xa63\xed\xc3\xf9\x81X0\xa7\xdf\x16\x1cq\xfdM\
+\xcd\x10\xb3\x91\x946\x1a\x1b\xd7\x9a\xe7r\x9b\xaemT\
+K]3Q\xa8:\xab\xba\x86|A\xb3\x10\xd4\x8c\xd0\
+\x98\xa9C\x85\xde\x9a\x01i0Zm_\xdb\xbb\xae\xa3\
+\x98U/o\xda\x92\xc8<\xfc\x89\xcf\xfb\xfc\x86rN\
+\xad\xc8G\x02G\xd4\xb6|I\xbd\xb3\x18\x1e\x14\x98t\
+\x00\xdc/=#\xa4\x1a\xf8g6\x22gD\xd4yn\
+\x22\xc0\xbc\xc1\x13\xf5w\xcd\x80R\x18a\xe3\xaa\xd6_\
+*h\x7f\xdb\x046\xc8L\x91\xb1\x12!\xe6\x99Mm\
+\x99\x0c\x8e\xd7VC\xa9\x94v\x1c\xee\xc8\xd4j\x8d&\
+\x03\x99h2\xa4vx\xcb\x06\xfaPm\x8f\x98\x86\x1f\
+\x06#\x8e\x8e\x0d\xcaau\xa1NL\x16^\xa8\xef)\
+\xd6\xc1\x02\x80\x03\x83\xa3\xa2\xb8\xd9\xae\x9e\xe8\xafp\x06\
+\xe4iM\xa4\x93\x0c#\xea\xf2\xd4&Bm]q\x5c\
+\xb8\xa1\xf2\x14j\xe4i\xb5\xf4$3%\xd4~\xcb\xad\
+{r\xb3\xc0\x8ai\xd2\xf4\xd7.\xcf\xe7F/\xe8\xef\
+pF\xf7\xcdM \xc9m\xb4\xb2+\x01\xa5\x0e\x22\xbe\
+\x9dT\x033h\x06dd\xd7\x14:(r\xd2\xcc-\
+\x1b$\xdfK\x86\x0a\xed\x0c\xb9\x0fKy\x83|ZC\
+]\x84\xf1\xe1R\x81\x22:\xf9\xa5\xd8\x88\xf6\x0d\xecW\
+\xc5\xfb\xe6/\x10j\xe43\xe79\xf3Bn\xd2\xef\x9b\
+\x0c\xb03\xcc\xd4\xfcO\xd7\x16\x1a&\x8bD\xacb\xbd\
+\x98\xfeB\xf0\xc6\xf3\x81\x86\xba\xe9\xfb_\x02z\x876\
+mJ\xe9Z\x01E\x9e\xcc\xba\xa9\xb8sG\x05\x8et\
+\x0d\xd71\x8d\x06\x0a\x91t\x8bT\xf6W\x0b\xf1;\xeb\
+\x076p\x8d\xdcyM;\x1bk\xa0\xa4\xba\xae(\x81\
+\xaf\xab\xf38\xfb8\xd3\x9fW\xa2C\xf75\xb5\xd1l\
+\x98t\x7f\x80\x92K\x0d\x1bbT\xa8q\x93y\x84\x1a\
+\x8e\xa1\x83csLA\xd5Z\x80\x11C-?\xda\x1b\
+\x8e\xc4\xff\x17\x13d\xd2\x04\x0a\xa0\xfc\xcdvi\xc0\xe1\
+ 3\x05\xf3\x05\xc7\x8b\x80\x11\x0e3\x1b\xf6\xacX\x22\
+*\xf38t\xd4\xd4QZ\x81c\xc6|\xc4\xc1E\x8b\
+\x85\xf9\xc9\xfd\xe3\xbep\x1e\x884\x22\xd2\xb6\xa1KP\
+\xae2Un\x05\x1b\x9c\x5c\x9f\xef\xdf\xf0\x07\xb7iE\
+\x93\x80L\x07*\xf7d,q\xf8\xe9G\xed\xda\xd0\xd4\
+\x22\xf8\x8d\x03%8\xbed\xca\x9f9\xce\xdf\xcc|\x93\
+\xf1f}\xc2\xa1\xe7yP\x92\xc0k\x8e\x18\xccd\x9e\
+\xb9\xcf8\xee\xce\xd8\x0f\xf7\x0aE5}d\x22p\xdf\
+\x08\xac0\x1e\x09\xec\xe2\xb0\xf2\xbc\xf9<\xbf\x0b\x13\x80\
+@\x0c\xed\x15\xb7\xb2cK@\x1a\x8a$\xea\xef\x18\xea\
+\xb4\xa3\xa3\x04kVC\x82q\xcc~\xcb\xf3\xc4\xb1\x9d\
+}\x0e8\xda\x88:B\xd1\xc7\xa1&P\xc2ys\x7f\
+q\xe0\xd1v\x81\x9a\x0f\xd3\x84\x8c\x0a\x94O\xfa\xd8S\
+SM\x00\x03&\x05\x8e\x8f\xc4^\x8f\xae\x01N\xba\xc7\
+\xe4}!\x93O \x09\xe6\x8e\x1d\x84,\xf1 \xf1@\
+\xdb9\xdbY\xfd\x01B|\xee\xf3BS\xd3N\xc0\x83\
+\xeb\xc7\xb0\xc6Q\xc1Q%\xe3f\x07\x9fu\x9avR\
+\xf4\x03'\x03\x0b3\xa0$\x80~_3\xda\x19\xe8\xb7\
+vC\xb6G$\xa0M\x80\x9fqC\x89\x11\x94aw\
+\x0d \xa3X\xda\x97)\xc1\xf24\xa1\xd1l\x82\x09\xe7\
+\x92\xa6\xcc\x98Y\x0483\xe8\xf4\xd3\xa6\x1d/\x0c?\
+\xd6=\xec3\xc6\x1f\x19wj\xca\x1d@'\xd3\xdd]\
+XP\x1d\xf2\xff'\xd4\xccaf<\x11\xa9\xa6\x16\xdb\
+\x9a\x00\xe9\x18b\x97\xd9\xc1Kf\xab\xb5\x09R\x9c\xdb\
+\xa5\x97\xb1+\x94\xf5c\xb2\xec\xe4\xd1\x93X7\xe6\x1f\
+\x12\x1aqW\x07\x00\xe8\xdf>\xf9\x99\xb5\x10L\xdd\xce\
+\x006\xed'\x1f=\xce\xcf\xc9\xf2\x93\x15&+4\xf6\
+<\xf64\x01!\xaf\xa3\xb4\xffN&\xaf\x026o\xaf\
+]G\xb2\xcd/\x8e\x17\xe3\xca\x9aF\x88\xc1a\xa7\xcf\
+=J\xa8\x99\xd6\xb9\x85\x84\xc6>r\x22/\x197\x1f\
+\x14\x9a\xc0\x98\xf7\xeb\xd2F\xf103:\xf6l\xec\x11\
+\x18E0\xde\x1cX-%\xa2\x87V\xf1\xef\xd2~\xfa\
+\xcd\x8d=\xc3<P\xe6~\xff*\x86J \x0a\x87\x9f\
+n6\xd3\xdf\x0b\x0d\xf3\x85\x12\x13T\xee\xd1*0\xf3\
+x\xee\x19B}\x9f}\xab\xff\x91\x10\xc7\xc7\x08\x8d\xe6\
+\xcf\xdf\xc7\xbf\xebO\xe8?\xdb\x9fP\xec\x96W\x88i\
+X\x02\x13\xd3x\x7fQ!\x8e_\x12\xe2\xf8-\xa1\xb6\
+\xb3\xa4F?KV\xcc\x8c\xa1\x0d\xdc\xf4=B\xadM\
+\xcf\x92Q\xb4T`6\xd0\xbf^\xa5\x98K\x96\xb6t\
+\x81\xa6\xfd0\x81\x04\xb7\x11M\xad'\xfc\x02\x12J$\
+,m\xff\xa6=N`\x93\x92Ni\x0a\x1cX\x03r\
+\x93G\x0aq]?\x14JB\xe9\xc9bnf\xbb\xc7\
+\xcfZc\x01\x06\xc9\xda\x93uT\x12\xaa\x82N\x95t\
+N\xf7\x11jW0\xb4<R\xc3\x03m\x11\xdb\xaf\xd3\
+\x9f\x0b\xf1\xef\xdf\x13\x1a\xf1j\xcfg\x18\x03\xd3\xcf\x08\
+q\x5cW\xa8\xeb\x5cv\x071S\x08\x8d\x1aJ\x93\x93\
+\x81F\xe9\x8d\xedq\x98`$\x8c\xa6\xaf\x11*u\xbf\
+?T\x16m\xf5?I\x98\x0c\xab\x8d~O\xb1/?\
+R\xfdc\xfc\xf6,\xe1p\x22\x08\xe6\xd6\x82\xcc\xa4~\
+5\x10\x06\xcb\xf4N\xa1R\x882\x83\x04\xf5\x10\xaa\xc7\
++\x0b\xc9\xa0\xf6s\xf7\xc2[nL\xd3V\xa5h\x08\
+<Tk\xfaK\xad\xc3%\xa6\x90\xbc\xd7\xb5>w9\
+R\xff\x84\xa6\xc4\x80\xf6\x1dV\x11-bh\x075\x91\
+u;\xb2\xfd\xe3\x85F\x15\xd65\x19D~\xca\x06\xfd\
+\x1cGN\xf6l\xc4\xefdF\xdf\xda\x88\xc9\x11)\xc7\
+\xb1%\xe3&\xb7t\xc9\x86:\xae\xb8v\x13\xf1\xa3\x1d\
+WqK\xb7i\xdab\xb5\xfd\xb6\x1b\x11\x9f\xb2|/\
+\xe3\x09\xf1$\x7f\xcfS\x9a\xc8;\xbf\x8b\xa3\x8b\xe1\xe5\
+\x08|\xaa\x15\xd3\x0f\x14\x95u;h\x85\x9a\xf7\xc7\xa6\
+V\x10\xb5}\xfa\x1c\xbb\x9fg\xa1\xa2\xbf\xa9YX\xc5\
+\x8c\xd8\xae\xa9\xc9\xb5\x88^\xb6\xd7\x83bIM\xf8\xdd\
+%\x87V7>\xa8w|\x9e\x80\x8c\xa4\x96>W#\
+oe\x83\x10\x13\xe1\x9c\xc0W\xabCU\x88/\xbb7\
+\xd4KD\xc7L\x91O\x0a\x0f\x86\x185pn\xcf\x97\
+\x8e\x09\xa2\x17\x04&\x10\xf1\xa0\xa6\x8e>\xc1\xce\x88\x0f\
+\x0f\x0aM&\x9e\x0c\x9c#\xf5\xc3>BS\x8b7\xeb\
+\x10Q\x03\xa4\xb3\xdb\xba\x06\x12\xb26Tw\xe5M\xce\
+t\xec\xed\x80\xcd\x01M\x00\xc0\x19\xe3\xe1\xa3\x81\xa3\x9a\
+\x08\xaaE\x18\xb3\x96\x8d\xffd\x8e\x1c\xe8Z\xaf\x8f\x94\
+6([\xab\x0d\x0a\x863\xfd]K%\xf7u\xb5\x8d\
+&\x99\xb0\xb2p\xc7}\x9d{\xa1P7\xd2T#\xb5\
+\xa3H\x068\xa9nD\x94qLp\xe8\x08\x10\xc9\xcd\
+X\xaef(\xc9l\xccm#Tq&\x1c\xd0\xdc\xe0\
+$N\xb7m\x93\x016e;\xef\xaf\xdc\xb5\xab=\xfe\
+\x7f\x10\xeb\xc0\x9b\x848\x9e$\xd4\x8d\xbb_(\xb0\xa0\
+\xa1\xa2k\x16=\xa5\x89 K<\x8c\x8di\xd7Zb\
+DF\xa5\xacWk6L\x02\x1c \x8br\x16\xf5\xf1\
+\x9bj\xbb\x98\x22z\xf4\xb8\xa6\xcd\x92\xcc\xc2\x8b\x1a\x87\
+\x93\x0d\xc5\x1b\x7f\x1a\xf2h5\xbcg\x8c\xc4f\x0d\x1c\
+\x0c\x15\x1c\x5c\x1cXJ}^.4L\x8fM-^\
+G\x0d6mn\xa0(\xda\x00AT5\xd7mod\
+\xd9n\x90\x1ad\xd6w\x98\x028J\xac\xb7P\x1d\xc9\
+\x98\xcefR\xc9\xd0:\xb3\x94\x19i\x1c5j\xff\xc9\
+\xe4\xf3w|\xefB35\xf5\xccc\x1cD\x1cF\xda\
+\x95A%$\xa0\xeb\xccu\xb63\xa4\xd6\x92u\x00G\
+\x10\xc6\xce\xe5\xce\xa8\xaem\x87\xef\xa9#\xc5o\xb8\xcd\
+\x9f\xb7c\x90bh\x9c7\x22=\x04f\xd1. \x03\
+L{1\x02\x22\xa6\xa2\x0e\x9f\x11\x1a\x83\x88\xfb\xea\xfb\
+\x93\x86\xc5\xc56\xa0l\xb8$\x93\x8c\x80\x01\x01\x89\x9b\
+\xc7\x80D\x06\x22Xo\xb9>\x02\x008\xc40\x22f\
+\xbe\xa7hK\xcf7\x8e\xd8\x9f\x1d\xf8\x80\xc9B\xa0\x95\
+\xe7\xcd\xe7\xb8>\xd6\xe3\xd9n7\xcc\x83\x8d\xed\xe0\xba\
+]%\xea\xea\x19P\xf3\xfd\xc8\xdaf~\x97\xe7\x8ec\
+N@\xa6\xddW\x1f\xd18\xfa\xec\x9bP\xf1\xc9\xc8\xc1\
+\xf0\xf3\xb8\xcc\xd2+D\xea(eA\x9c\x96\x0c\xaa\xc5\
+\x03\x93A\xe0\xcfS\xeb\x9e\xf7\x85\xe7\x89\xc3\x01#\x80\
+\xf5\x9d\x00\x03\x99i\xabK\xe7s!\xf3\x8b\xc1\xbdo\
+A\x15%\xf4\xef$U\xd7\x99\xf3\xfe\x16\xa1Ryi\
+\xdf\x96]\x0d\xa8\xb9%\xa0\x8ah\x1c\xea\xef\x88Ty\
+\x1d\xcc\x1atg\xfe\xcb~\xf4\xd1Z\xcb_\xda\x9f\xdd\
+]\xdb\x82\xcdm,T\xb1b\xa8\xce)\xb6J{G\
+\xd7\x8e\xf3{\xa9\xf5\x04\xd5\xda\xb5\xfe\x99y&c\x8e\
+F\x80E\xde\xf2~\xe3H\x10XQ\xc2\xea[M \
+\x80\xc0\xb5\xd7\xa9\xec\x92\x82\x88\xa1\x997\xa5=\xf2:\
+M\xfb>k \x94\xb6\xc5\xebV\xa6^\xda\x01\xf4\xd1\
+F\x1b\xe2\x97B#*\xea>\xef)\x0ag\xc7\x81}\
+\x8fv\xbf\x19P\xa6\xdb\xd5\xfb\x1c\x08_\xcc\x8c\x0eJ\
+\xb5X\x17^\xe9\x92\x81C\xfc\xbe\x1d\xe2,\x91e\xbe\
+[\xbb%\x1dzg\xee\xb3v~k\xab\xee\x93\x18\xc0\
+A7e\xb8\xff\x8d\x10\xaf\x1f\x10j\x09j\xb6\x05D\
+\xb4m\x93\xc0S\x9b\x8c\xad)\xda\x04\xa4JI\xc7=\
+M{c\x1c\x1c3\x15\xfa\x07\x84\x18?/\x10\xe2x\
+\x8e\x10\xef\xff[\xa8\x0c\xad\xfeUB\x93\x89\xb6\x88_\
+\x8a\xce\xe1h\xcbQT)\xde\xaeBc\xef\x99A\xc5\
+>\xcb|\x98\xee\x14\xd8\xb9\xd4\xba_W\x02\x09\xda\xa5\
+Ow\xa9\xca\x0d\x8d\xb6\x00\xdd\xc6\xdc\xd6\x8e@\xcb\xf4\
+sB\x1cw\x17\x9a\x0c\xf8\x03c\x89b\xf7\xce\xc2\xb5\
+H\x95yJ\x88\xfa\xd3\x85r\xbf\x8a]\xd4\xdf\xdb\xdf\
+\xd3\xdf\xd3$\xba<\x1e`\xcad;8\xdbAE\xfc\
+|\x8d\xa6\x1b\x03b\x8c\xb7\x0bq\xfc\xa9P\xdbY\xcf\
+m*T\x91E\x02\xc1h\x82\x11\xc8\xc8\xc0\x8cKP\
+\xd0\x94\xc8\xf5\xca\xcc9\x1c\xe2d\xb2\xc1\x08\xb4vU\
+\xee\xb7\x88Pz>\xe4\xbc\xc5_B\xab\xeb\x8dB\xe3\
+\xdf\x10\x90s\x1b\xe7\x5cG\x19\x7f\x9a\xd7o\xaf\x8c\x8f\
+\xfe\xafB\xb5\xb3\xfaw\xf7\xef\xea\xdf]KT\x11u\
+\x0fo\xa8\xb4Q' :\xbc\xc6v\xbf\xfc]\x8d\xfb\
+K\x85\xa6\xab\x92\x03\x18\xb3%v\xfd'\x84\x1a\xc0\x9d\
+\xbfq\xfe\x86\xf9\x1bJ\x80\xbft\xa3\x91\x04\xb7\xd6\xe3\
+,AwbVR\xc0\x12\x03\xee\x97\x14\x9a\xd2r\x97\
+ng\x00\xd2\xfb\x1a\xe3*K\x82aD\x118e\x9f\
+s\x02'\xdb\x8c:\x00\xc2\xfe:,?\xfa\x01\x8c{\
+\xbaW\xa0iBI\xc3\x82\xb2\xcc\xacYo$5,\
+\xd3\xeb\x03\xbfk\xfa\x89\xb2`\xc9,\xbc\xa3\xc9\x148\
+C_\xdc\xc6k\xea\x09L\xdf,\xd4\xccr\xb6]\xa1\
+-\x0e\xb5$,HP\xc0lxN\x17\x0e,\xe2\x08\
+\xc7\xb7,\x96v\xbb7\xf2\x95\x1b\xca:\x91x\xd4_\
+\xc9\xec\xc8L\xb9\xcf\x06\xe2!^8?])\x90\x19\
+\xb9\x85\x12B\xa6\x04\x03N\xee\xf7V\xce\xa8\xfc\xb9\xd6\
+\x94g&\x16\x03\xc3\x86A:\xb4\xdc\x07j31\xf4\
+0leF\xaeP\x0d\xb1\xcc\x94H\x93\xf1\xdd\x0d5\
+\x92v:D\xa6Q\x93E\xdd\xd7\xfd\xeb\xc9\x90\xa6\xb8\
+\x0cTA\xf7\xf1\x1c6\x0bl\xde\xd4\xc4IleA\
+\xd3\x16\xd1\x13\x0b\x114\x98\x17dT\xb3V_\xdfw\
+\xb4'\xec=M\xc6\x0d\xf1\x152\x5c\xf7\x94\xaa\xd21\
+\xa0\xb1Ac\xe8\x10\x98\xa1=\x8e7\xeeBI\xda\xa7\
+R\xf9S-\x98L\x16\x19\x1fS\xa9\xf3\xbe\x92\xa9\x86\
+)\x81aK\x06\xf4\xe1\xb1m\x0a]#\xb2\x0f\xbc\xc7\
+\x19\x0bK\x96\xa4\x10Iw7\x0bjd\xd2q\xa2\xdf\
+&\xed\xa6PU\xe6\xf9\xc8-^\xb9\x11AB\xfd\xdb\
+\x8ex\x8a\x22*?p\xb8\x17\xfe\xcf4\xcc\x1ajL\
+ioG\xcd\xa4\xfa\x85\xae\xd6\x04\xce`\x0a\xe0(R\
+\xaaC\xa0\x80\xdae\x8b@&u\xf2\x0d\x05c\xe6\xe7\
+\xd7.\xa5Q\xc0a\xdf\xc0~n\x97yJ\xa5\xd2\xd1\
+\xa74\x0d5\x85\xe3\x96\xb6A\xbcV\xd3W\x9e\xc0\x95\
+\xdc\xbd\x8d\x9a\x8c\x19\xe2R\x88\xf8\xfc,\xf0S\xdf\xaf\
+;L%\x7f\xa0\xc9\x84\xa1\xa2\x0c#\xc8\x94\xd6\x128\
+\xfc\x90)k\x7f\xa9\xd4\xac\xec\x9b\xba\xe2P(\x9d\xd3\
+]\xa7\xbb\x96\x86 l,\xce\x9c\xa0MBD9)\
+\x82lTb\x12\x5c\xdbP4\xcd\xd8(\x99\x90C\xbc\
+\xa0\x7f\xb2\xc9xB\xc5&@\xa7\xe7\xfe\xf4\xa6\xe6\x90\
+\xf1@\xa0\x88\xfb\x83\xe3\xa3\x0c\xe8\xeb\x1c\x91\xdf\xaba\
+n\xa0\xc2\x8d\xea9\x19o\xda\x0b\x9a\xea\x95\x869T\
+=\xab\xfbg\xe6\xe5\xd9\xe3<\x8c\xed\xbd\xb4\xf9If\
+\x0d\x1b1\x19F\x1b\xb8\xe9\x00!\x8av\xb5k\xde\x1f\
+9f42\xc0\x85\x03\xcc\x865\x1b\x18 \xb3\x8f\xe3\
+\x87X&G\xd6\x0b\x1cG\xe65\x14dj\x0f\xa1\xb4\
+\xd9\x01Ss\x1f\x05\xa6\xc3\xb8\x1a\x19I\xa6\xb6M\x8e\
+\x14\x9a\x00\x06\x8e\xa9\x1d\x83\xac\xf9\xc5\x91Z\xd2\xf7\xa1\
+j+\x8cZ\x00[\xd8At\xc6 \xd7\x17\xb7\x9fK\
+\xad\x01;\xa4\x999w;\xb5\xac!$pH\x06\x14\
+\xb5v\xd61\x02:\x04D\xc8\xc8n\xee\x80\xf4/=\
+.-R\x97m\xee\xc88s_\x09\x08\xb0\x0e\xe0\xd8\
+3.Y\x07g\xdbz>\xa7 3\x8f\xf99\x98\x01\
+<\xd7{}\x1f\xa1jb(\xb2>-\x9a\x81\xb91\
+phC\x22U\xa0\xab\x06\xc0\xb8>\xad\xeaL8\xe3\
+\x1a\xcd\x0bS\x8e3\xa3K[W\xda\xe01\xae\xb8N\
+\x02\x0c\x5c\xa7\xe7W\xb6+\xa4\x16\x9f\xfd\x86\xb6\x92d\
+\xe8\x09\x98\xfb:2p\xccz@\x80\x83q\x89\x08\xa1\
+E\xb5\xd2\xc1\xc7niER\x17m\x1c6\x18E\x88\
+nV\xad\x85\xc28\xc8\x9aw\xc4\x0b1\xcc\xd0\x0aA\
+\x9d\x9f}\x15\x83\x9f}\x05\xa6\x9f\xd6\xed}\x9b\xf6g\
+\xee\x823\x1c(4\x01m\xdb\xb1\x8c\xa3T\x9bF\xd4\
+\x17\xd1A\xdaxAY\xa5?;\xed\x0e\x9dy\xed/\
+\x12j\xff\xf3\xa4l\xbb\x0d\xed\xf0\x5c\xa1\xa9}\xb7\xbd\
+\x91\x81n\xb4\x80\xe4\x80]\xd7\xac+\xacS\x88E\xbb\
+\xb42_\xab\x0b\xd5\xd7\x9a\xd2$\xb4\x22HL\xb0>\
+?\x22\xbb[\x8c\xcf\x85\x80\x90k\xf4\xfb\xd7\x08U\x8c\
+\x90\xf3\x08\x07\xe2\xdd}k\x7f\x11\xc0\xfcn\xc1X\x92\
+zL\x93(\x82\xba\xec\x0c\xb7\xf6\x1f\xed@\xa5[\xcd\
+\xae\x8d\x88\x17\xe7\xe5\xf10\xf7b\xa1\x19\xc7n\xb3\x99\
+\x81\x0b\xd6\x05\xda8~I\xaeLeT\xa5\x03lQ\
+\xaf\xe9[\x85\x1a \xa6KP\xb6\xb9\xdb\xd1\xd4\xe9E\
+\x02\x8b:atUc\xff\x99\xb1\x9a\x1aF\xfb\x09\x0d\
+\x93G\x0e\xe2\xad\x1e\x97_\xae\x01\x11j\xf6s\xbc\xc8\
+Aa\xdf\xbf\xac:\xe6\xc9L 3\xfd$\xa1\x06\x02\
+RK\xc0\xed\xd8\xfa\xef\x07\xbe\xe7\xe5c\xa8\xfb[?\
+\x0d\xcc[\xd4v\xf7\xfa{\xa54A\xe3\xf0>\xc1\x81\
+\xef/4\xe3\xc4\xcf}\xbam`;\xd7f\xbf\xc3\xcf\
+m\x07\x07\xbe\xc2.\x99\xdf[h2\xb7b\xf0\xfd\xd5\
+\x09\x89\xcb\x1a\x86$\x0e\xd6jBe\xfc\x0c\x8b\xc7<\
+^\xbciog\x86\xd6\xdc\xcb\x848\xfe]\xa8\xa5*\
+s\xb7\x08\xf1\xfa3Bu\xb8\x931C\xbfx\xdf\x9f\
+\x14)e\x9e\xda\xde\x87I@\x0d\xfa\xdc\x01B\x0d\xd4\
+\xd1\x15\xaa$.~`\x86d\xac\xab\xd3\xfd\x85F\xdb\
+\xc3\xe3\x0am0\x02\xb2\xf3_\x16\x9a\xf6\x8e\xf6/\xb2\
+\xa4\xce\xe3\x10\x0d\x85,\xc5\xb0=\x95\x19~\x12\x0a\xac\
+\x8b\xccK\xec#4a\xe8\x16\x80\x08\xa5\xdbzf;\
+p\xe6\xb1\x99G\xa9\xcda\xe6m\x06.~\x17~\xde\
+\xef\x0as\xe3WE\x1c\xd6\xcc\x9ba\x8faOi\x8a\
+\x0d\xab\xfa\xf9!Z\xec\x00=\xdd\x10\x94\x16\x9c\xca>\
+\xfd\xe6\xf0M\x8d\xdb\xe93\x84\xba_\xa0\xb1\xb4\xd0[\
+\x84\xea\x98\x13\xf8I\xc7\x9cu\x97\xd7\xb4\x1d5\x83\x02\
+qT\xec\xd9\xd4\x5c\xf0~\xd8\x1f*T\xa6+\xdd\xdc\
+\x92a\xeeD\x88z\x8aId<\x19\xb6\x04\x0a7q\
+\xc2n\xb6$\xce\xe3k\x01\x8e=\x14\x09\x22\xc0\xfd{\
+\x85F5Z\xee\xf1\xa3\xff\xab\xed\xd4HI\xa5o\xb5\
+\xb6\xcf\x7f\xdba\xfaf5\xbc2S!\xb7\xec/M\
+\xc6\xdc\x86\xe7\xf4*\xa1\xe9;)\xca\xc4\xa3\xaa\x8ao\
+\xa1N\x9chG\xf7\x83\x1e\xf8\xbf\xb2C\xfd\xa8f\xc3\
+\xbb\xba\xc8\x9a\xa4\xeau\x99\xf0\xba\xd1G\x08M-(\
+mfN\x15\x5c{\xfd\xc6\xa6]\x96)\xffe\xc3\xbb\
+\xa6\x89\x04\x91!\xa3V\x9d~\xe3l\x08\xca\xd3}\xa9\
+vG\x80\x82\x0f\xb5%\x1d*Ixm\xdbdP\xe9\
+\xcbND\x8d\x0c\x96\xcf\x03C\x05\xd5Z2\xd1\x99\xa9\
+\x90Y\x7fi-!H\xb1A\xda\x87Y\xcb\x80\x0c\xa8\
+D\xea\xfaOy\x03;\xd4\x86\xcdskMU\x1a\x84\
+f.\xe4\x02\xe4\x8c\xff\xf4\xd7\x82\xa97\xaa\x91\x9e\x13\
+\x9a\xda>\x99\xafg6\x99\x1aT\xc5\xb9O\x18\x88\xa6\
+\xe6\xa5h\x05\x14\x15\x8b\x9cQ\xeb\x82\xa1B\xdbH\xda\
+0e\xad\x19\xa2v8dP\x99\xa1\xc8\x98\xba5\xbd\
+D\xa8\x91\xe7\xecc\xeb\xc0@fb\xa0J]R\xe4\
+\xa9j\xe6\x00\xaa\x18\x222g\x8d\x1bs\x96R\x90)\
+G\x0cH\xee\xc2\x83\x8d\x18$\xfd@\xe9\xbb\x8c#\x02\
+\x95\x99\x05\xd1%\x11\xa9\x81\xe1\xf6\x7f\xa5 `\x07\x0f\
+\xc7I\x93Qu\xc6\x9a.\x0bi\x88iA\xd9\xccZ\
+\x19gV1\xc1\x22*\xb3c\x15{\x1aN\x0b\x9c\xea\
+y\xb3G5\x9c\xb2\x9b\x82\xc5-\x11\x09J\x87\x06f\
+\x8c\x08\xdbOl2\xac\x18`3\x0es\xa1\x8a\xed\xd4\
+\x18\xe6.U\xa1;B\xd6\x1a\xbb\xedb1\xecN4\
+\xd5\x0e\xf5\xecs\xab\x036\xff*!\x8e[\xceoY\
+2\xb01\x1b\x0ac\xc5\x19\xaf\xb9\xfb\x04S\xc7\x16o\
+2\x85v\x10X\x1f\xa6\x1b\x09U\x84'\x03\x01\x16+\
+\xa5\xa4)\xcf\x9fZ]\xc63\x99J\x02\x880@P\
+\xf3\xa5\xd6\xdb\x1bwi\xabxum\xbbH\x89G\x09\
+\x00\xa8\x84\xe1\x85\x82\x19\x05\x174j\xf9O,z\xc2\
+\xa3Cti\xed\xdaA\x7fh\x1c\x02\x15<h\xc3\x80\
+:?<y4DY\x07'\xbfuF\xed\x9d\x0e\x00\
+\xcc\xb6\xd1\xa3\xef\xf7\x8d\xee\x13\xfc43\x0dp\x90\x18\
+\xb7\xb3\x86;\x8e\x13\xf7\xd9\x8c\xa3\xcc\xe4\xcf\xdc\x9ft\
+\xb4y\x0d\x05\x10j;%\x1bdX9>wtd\
+\x93\x09@\xad1\xd4k4Ip\xfc\x9c1\x8d\xddh\
+T'\xa6F\x9au\x9cZ\xd3\x17\xf8\xb9\xce\x062p\
+\x04p\xa0\xb7\xb2c\xb2\x93\x1dXJ\x9dh\xcf\xc8\xdf\
+s?\x09\x88\x11\xf8\xa6D\x80\xf7a\xba\xfd\xca*\xf6\
+\xd6\xce\xc9\x80\xc6\x9a\x0e\x18\xc0\x98\xc0\xb1\x1e<.V\
+u\xdbA\x1cu\x8f\xbbt\x80`\x08\x90\x09\xa2+\x0f\
+\x0e,\xcf\x95\xffp\xbcy>\xa8\xf8s?h\x1b\xf8\
+\x1f3}p\xf0\x08(1.\xec\xd8dI\xc7:N\
+$D\x90En\x00\x00 \x00IDAT\xe0 \x93\
+\xc9\xc5\xe1A\x9c\x11\x11M\xf6]J \x18W\x8c#\
+\x02\x16\xb3j\xf8d\xf2ad\x10P&PB\xad*\
+\xf3\x83\xf9\xc9\xf3 \xc6\xfdGs\x01\xc3\x89\x12\x01\
+\x18\x09<g\xc6/\x06-\x81\x5c\x02`\xec\x87\xdcW\
+\xa8\xe6\x88\xe2\xcd\xda\x09<?\x1b\xc2\xd9\xd7\x19\x06\x02\
+\xfb'\xd4c\xdbqY\xd2\x87\x8a\xb7\x99n\x94\xf4M\
+\x0f\x15\x9a\xb6o\xdcg\x02B\x04*px\xc98\xf1\
+\xfc1\xe4\x99\xd7\x88V9#\xcb~\x99\xe2\xc8V?\
+O\x8d\x10\xaf\x9b\x94\xaee\x00\x87\x8c\x1f\x0c\x01\x02 \
++\x8c\x19\xed\x0c\xf41n-\x9e\x98\xe3\x81qB \
+\x16\xad\x14\xda\xa2\xe1\x00X\xfc+\x03\xffn\xfb5\xbd\
+L(\x99\xd9\x80\xb5Z\x9e\xdc\x94BQ2\x86\xc6\x08\
+%\xae[\x8c]\x82R\xbc\x9aR\x10\x07\xf2\xb2\xbb\x82\
+\xe7\xd9\xf4\xb3B\xb5\x9fK\x89\xda!\x0dCTb\xcc\
+77\xa5\x85\xb4_s\xcdn\xbf\x93\x10\xe7\xbd\x9b\xd4\
+\x8e\x1a\xad%\x07\x22'\x878p}|Q\x85\x91\x9d\
+rf\x09 \xb8\xfbV)-x\xa1K;\x96\xaf\xf6\
+\xc2\xdcg\x04\x8b\x9e\xddi{\xe8\xcbM\xad:\xfd\xe2\
+\xcd\x14\xa0\x06:\x19p\xcc\x7f\xf6{?W\x02\x0a8\
+L\xd9\x0f\x9d\xb6\x8a\x1f\x13j\x1f\xfa\xb9#\x02\x1f\x89\
+\xd7\xd7\x08q<(\xa0\xf6\xd6\x0b\x0b\x0d\x93@\x09\x05\
+1\xf7\xd6\x09\xac]\xd5\xdf\x8bF\xc7\xcd\x0d\x93\xd5v\
+\xcc\xf4\xf5\x81\xd75\x22\xd7Z\x87\x9eo;\xfe{\x1e\
+g\xcb7\xed\xe3hc(\xbbS\x01\x9e\x9b\x0276\
+\x8cQJ\xd6\xd8\xf7`\x08[\x1c\x8fn\x12h\x0b\xf4\
+\xcb\x09q}{\x09\x95\xa2\x8f\x06B\x964\xfby\xd0\
+\x86\xb8\x7f\x91\xd0d\x8c)\xad\xf1|\x831\x00S\xa1\
+\x7f] \xfc\xb8\xb9\xd3\x85x}m\xe0\x9a&\xb0e\
+\x07t\xfe\xd7B\xd3u\xc9\x8c\xc1\xf9\x0f\x0b\x0du\xdc\
+\x89\xc3\x14\x99\xa4v\x9f.\x1d\xd8\xcd\x88\x96\xef\x224\
+\xe2t\x94\x1c\xc3\xc4\xa3\xeb\x93\xa9\xee$\xba2\x00B\
+\xc6\xdf%8\x1c\xfb\x1f\x0b\xb5-t2\x84\x95\xe6\xfc\
+h\xd1z\x1b\x03n$v\x9c\xb0\x9d\xff\xacP\xb7\xb7\
+\x98=E\xe3.\xbbn\xbdsL\xe4M\x7f:\x96\x84\
+d[\xd8\xd8\xcd\xfb~\xf4\xa3\xb4^\x96\xd2\xef\xb9j\
+\xc7/\xb4\xa5P\x19f$\x1c\xa6\xef\x14\xe2\xf8\x5c\xa1\
+\xfa\x99\xc9\xc8D\xd4\xdc\x097\x98\xd3\xe9\xd7\xa0\x11B\
+\xb79\x97t\xa1=2=K\xa8\xed\xa7c5[u\
+X\xb5)y^_\xa8\x0e\xff\xb0\xe5\xf0\x82\xe1\x05U\
+\xfba\xfa\x80P\x03+\x0b\x1e\xdeC\xa8\x0f`\xee\x15\
+\x81W\xdaQ9\xb0\x1a|\xd3\xad\x03[\xd5\x05\x87H\
+'\x14p\x22\x94\xa5&\xe7=\x0d\xd5Y\xa2\x1f\x93\x86\
+\xb2\xa9m\xff\xa0\xf8\xbe\x17\x09q\xbcHhT\x10\x9d\
+\x09L\xea\x9e(\xea\x87\xdbP[\xb2j\x00h{V\
+i@y\x90\xcb9\xf2\xbc\x99\xd5,\xcfi\xc4^4\
+,\x7f\xd4\x88\xb6(\x22uL\xad\x15\x87\xcaE\x1b\x12\
+\x22\x9d\xb9\xe1)oz@\xb3\xa0S\xa3F&m\xaf\
+Q\x8d\xb2\xa8\x89^\xe9\x05i\xdd\xa6?\xf8L\xc6:\
+\x0d\x1e\x0cz2bP`g\xdbn!\x0ahm\x00\
+\xc4(\xfas\x02_mD\xcc\xacf\x9e5PD\xd0\
+\x5c\xb3Z\xa8x\xf3M\x17\x04\x07\x0cJ\xcd\xcf\xaf\x9b\
+\x09e\xc7.\x0dc(\xde6\x10\xfaw\x09v<\xc2\
+\xb1\x9c>%\xb0Q\xd3\x1d@\xf7\xe3\xd5\xb5\x8d^\xb6\
+}\xbc\xa8\xc8s\x8c\x11\xc6\xf3\x9a\xda!j\x1aQ\x19\
+\xe5\xfa\xa9='\x03\x8d\xa1\x8a*3\xa2G8`\xb4\
+w\xe25\x94xe\xf2?\xd9\x881\xb9F<\x0d,\
+\x1b\x16\x99I1u\xbf\xd4v\xaf\xdf8\x18|\xafx\
+2g\xd46s\xa8\xfag\x7fN\x99?\x9fn\xfa\xc8\
+\x13\xc9%\x83Fw\x03\xf59^\xb4aX\xc0(\x80\
+\x02\xa58\xe3/+\xc59E\x5cl\xb0$\xe5O\xf7\
+qGg\xce~\xda\xb4\xf5\xa1\x06\x92\xfb\xa9e\xfal\
+\xcf\x9f_\xd7\xbe\xa1e\xde>\xae\xd66f\xad)\x0b\
+\xb7\xc6\xc9\xcf\x9a\xb6J0_\xa8\xd1\xc5\x00\xc7@'\
+cI\xc6\x0e\x83\x0d\xc7\xc0\xedVp\x04\xb2\xc6\x18G\
+k\xb6\xff\xb5\xb5\x22\xfa\x87\x85X\x9f\x1e\x16jF.\
+\xfb\xf7:2\x9a\x01\x08\xcd\xceGW\xeaf\xd9\xb8c\
+\xe1\x83\x91Z\xda\xca\xbc\xa6\xf6/\x9e?O\xa8\x06I\
+\xa9\xd5\xfae#\x0ed\xad\x84\xa4(c\xf8\xe3\xc02\
+\x7f\x09\xa0\xfcCh\xd4\xc7\x11\x17\xa2\x7f0\xed\x06\xd1\
+dP[\x9f\xef;\x00\xb2h\x13\xd8\xa4}\xa1x\x02\
+\xcf\xf6|~Eet\x94\xd2\x84\x1b\x1af\x84\xdb\xb7\
+)\x0cY\x02\x91\xb4\xb3Q\xf7\x8d\xc3\x1aG\xc8\xaa\xbf\
+\xb3\x22>\xe9\x08p\xff\xef\xb1c\xc4|\xe1\xfeR\x0a\
+@m/\x99o\x0cc\x98\x03\xb3\x99k\x1cX\x1c8\
+;&\xa81\xe7x\x85\xfa\xc6\xbc\x9aQQ\xcf\x8c;\
+\xb5\x86\x1bYm\x17*2T<\xc43\x09T{\xfc\
+*\xacU\x02[\x1be&b\x0cX<\xd1\x8e\xcdR\
+v\xe8`.\x10\xe8X\xd8\x19p\x02'8P\xac\x0f\
+8\xa28&\x8c{\xd6/\x02G\xd4\xa0\xc3\x0c \xb3\
+B;\xbb\x8d\xec\xc0\xdee\xc7\x91\xef\xc3\x90\xe2~\xb0\
+\x0f\xf1\x1f\xcf\x97\xfd\x86Zpgt'\xab\xb9\xbf0\
+\xe2\x898N\x9d\xaf\xe3\x11~\xeen\xfb\x17f\xfc\xe8\
+\xd8\xe1\xd8\xe2\xd03_\xd9\xbf\xc8\x18\xe2\xd0\xbd\xd5\x22\
+r\x04n\xce\xf7\xf7\xb2.`@\xa3\x92\x8cf\xc4L\
+\xd7\x89,\xc5!#\x0dU\x1e\x87\x9b\xf5g\xb6\x9b\x05\
+%D\xb3\x22\x80\x9c/Z\x06<?\x9e\xe7\xacH%\
+%\x0e\x1c\xb9~\xbe\xbf\x8a?\x8e\x8e\x00\xeb\x01\x812\
+\xd6C\x9e\x1b\x0c!\x12\x0a0\x83,6\x06E4\x0d\
+}\x1cqS\x9b3@\x82\x88.\xf3\x0c\xd1M\x1b\xd0\
+\xd9\xc6\xd1\x99\xde,-\x80\xe2\x8d\x03\xed\xfb\x98\xea\xe5\
+h\x1f\xe0\xb0;0\x02\xf3\x08\xc3yz\x8aP\x990\
+\x04R\x93Y@\xc9\x04\x14c\x02\x0e\xdcG\xba\x18\xfc\
+Ih\xc4\xba(5\x83\xb1\x84=\xe8\xe7\x98\x19R\xd6\
++\xe6\x11\xf3\xd4%j\x04Dg\xdb\xf6\xd2\xb6\x0e\x8a\
+7\xccCj\x83\xa7\x0f\x0bu\xfd\xa0\xe6\x18\x839\x1d\
+)\xd6m\x07\x1a\xb3\x9d+\xfd\xedi3\x87\xd6\x0bm\
+.Y\x7f\xcch\x18\x8e\x11\x1a\xca\xbd\xbf?\xdb\xee\x99\
+\xe9\x14\xab\xdc\xd8%\xe7\xe3\xe3x\xe8\x9f\xedL\xb5\x03\
+\x03j\xb6W4\x1b\xa4Mp~\xd36q6c,\
+;\xeb\x81\x869\x06\x95\x1f1=\xfd\xfd\x0f\x9a@*\
+\x81\x1a3LJ u\xafb\xe7\xae[j\xac?;\
+9\xbe\x88\x05r\xbfa\x12\xbak\x0a\xd7\x01E\x9f\x84\
+Q\xbf\x98P\x13[\x880\xf6k\x09q\xdc+\x10v\
+\xce\xdcu\x81k\xad1\xb0MQQ\xbf\xac\xbf\xcc\x81\
+\x85\xfd\x8b\xddvoy.\xbfw \xddm\xc1\xbb\xef\
+:\x80D\xe9\xa6\xa4\xeb\xe2>\xce\xfd[\xa8\xd3\x9c\x80\
+\xcc\xc3\x7f\x08\xdc\x5c5\x96\xc8\xe4N\xb7\x12\x9c\xe0;\
+\xabq\xe0H\xd8\xcctgR\xa1\x85J-\xf0\x83\xfa\
+}\x84j\xb7\xcc=S\x88\xf7\xe7\x85F\x14\xd0vf\
+\xb6\xc5<G\xb0#\xbba\x93\x00\xb3\x86J\x8eG\xba\
+')Q\x14\xebK\x7f\x87\x10\xbf\xf3)\xa1j\x04\x94\
+\xdd\xe9\xa1Xv\xcf\x0e|\xb52\xa7\x0b\xf3(\xec\x82\
+\xe9\xb1B\xd3\xae\xda]5\x86\xcb\x85F\xb4\x0e\x87\xdf\
+\x89.\x02,\xc9xc\xfff?d\x7f\x81\x89\xc6\xba\
+\x08%\x9fL\xb85s\x10}O\xcd\x0d\x18\xe8\x94\x22\
+\xd1f\xd1\xfePQ\x90Z\xaa\xe9\x0a\xa6UaAm\
+C\xad4F\xb1\x8fl\x1fr\xbf\xa7\x07O\x0f\x99\x1e\
+\x5c\x12dE\x14\x19Fr:\xea\xeb\x08\x95\xa1\xca\xfc\
+-\xcd-\x86\x9aaG\x83 \x99\x8a\x88\xeeA\xd1\x87\
+\x82\x7f\xb4\xd00\xfc\x16\x17j\xc065?l\x0f\xd0\
+\xce:\x03\xe3\x88\x99\xd2\x16^\xa2\xf3;\x16m\x94\x91\
+Y\xbf\xbf\xbb\xa7x?\x8c\xd5\xa0\x88:\x22\x96\xaf0\
+\x80\x02\x01Y\xfac\x7f{ARK\x9c\x99(\xea\xf3\
+\xeb{\xa0\xbf\xaa&\xa0\xa8\xad(5g\xcf\xf3\xc4\xd8\
+2N\xe8mB\x131\x959\xf9<\xb7\x0d\xdc\xde*\
+\xa0K7b\x1c\xceX\x91\xf9,\x81\x85\xad\xab\xe1\x80\
+h\x02\xe2Ve\xe3\xb8\xbd:j\xd3\xd7\x06\xf6q\xa4\
+5\x16\xae\xe9\xce\x8177\x11\x1dj\xd8\x94\x01\xdd\xa2\
+\xd6(\x0d\xff\x12\xe2\xf3\xbb\x085#S\xdc\xd0\x1d\xc7\
+\x1a9Q\x18\x87G\x09\xcdFd\x039\xd5\xbbU!\
+{T\xdd(\xe6\x8f\x08\x1ci\xea\xc6\xc7\xdc\x86\xe5\xa5\
+6\xa0\x1f\xd1\x18\xcc\xfc7+\xda4[\x03CM6\
+\xb55\xce\x081 \xc9hM7\x16\x1c\x09\x85\xea\xfd\
+\xd3\xea\xb8\xa4\xba\xbb\xc5\xd6R\x04\xc5\xed$\x8a8\xde\
+\xe6M\x04\x17\x8a:\x86\xd4\x0eE\xaf\xb9\x9e?\xaa\x96\
+\x04`\xce\x0d|\xbdR\xfe\xa6?\x10L\xa9\xbb\xbe\xf4\
+\xad\x0c4\x94\x5cQZOo\xd4}\x9dQ\xcf~\xc1\
+\xa8\xf5c\xc0\xdf_tl\xab\xa3\xb0q\xa9&M\xd1\
+\xb44h\xe8\xff\xae\xda\xce+\x1a\x91#g\x82\xe9>\
+Q\x22\xd8\xff\xaa\x0eIR!Y\xb0\xc8\xf0a \x9d\
+W\x90\xed_\x92\xaaL\x1f`\x166\xa8\xa1\xca\xc3\xad\
+\xee\xf3\xdc\xbf\xd1$0\x93\xa2P\xcd\xaf\xab\x91\xbd\xa4\
+\xea+@ql-Y(\xee\xd3\x16\xb5v(\x032\
+\xb4\xef\xc2p\xc6\xf0#@\xf2@!IW\x07\x15\xc7\
+\x0b\x91D\xfa\xfbB-\xa7\xf6\x5c\x01\x84\x1f\xd76x\
+\xa9\xceLD_\x92-W4\x8e\xe8L\xa6(3f\
+d0p\xd8\xfc\xef\xd9\x16\x13\xd1\x13\x0c8j\xcdq\
+,\xa1\xca\xe2\xe8\xd8aJ1\x22\x8d\x0fQ\xa2\xce\x12\
+\xeayL\xb7\x0f\xbc\xd4L\xa1S\x1a\x11\xc8\xfb\x8an\
+\xfb\xb8@/\xa8\x86\xde\xfc\x0f\x85f>\xba]\x0f\x91\
+\xe5\xe9\x0f\x03?hT\xf2\x1dX\x99;3pV\xa3\
+\xd6\xbat\xb6y\x1b\xff\xc3\xb1c\xbcb\xc0\xc2\x18A\
+|\x0a\x87\x10\xd5lg\xae\x93\xf2\x8a\xf8\xa3\xbao\xdc\
+\xda\x04\xb6\x1c8\xcd\x8c\xb3)\xa3\x88\x01N\xcf\x0e\x88\
+1\xf5\xc7\xc0mu\x1cS\xf3K@ox\xc0\x19\x8c\
+\xfb\xff\xbb]^\xaeC\xbc\x86Ic\x0d\x96\xf8\xeb\xb1\
+\xc6\x0f\xc7\x87\x8c&\x0e\xc2\x03BS\xc3\x8a\xe1=+\
+\xf2\xc7q\x96A\x81\xe36\xd3\xf6)\x03\x14\x04N\xd7\
+\xb3\xc6\x08%(8,\x8f\xb7cf\x07\x11m\x93l\
+\x0b\x07\xf5\x1d\x03d\x1bS\xd1\xc9d>\xd5\x8e\x15\xa5\
+J+X\x05\x9f\x8c7\x01\x00\xe6\x15L\x05\x02\xb5\xdc\
+7\x0c\x1d>\xc7|\xe1\xfd\xd9\xae\x0f\x9d\xdbmb@\
+\xc1\x08\xb8l4\xbc\x92Y\xc0\xfcX\xc3\x8e=\x8e,\
+\xe7\xc7\xbc\x81b\x8f\x88\x1c\xa5\x22W\xda\x81\x7f\xa2K\
+(6\x18\xfb#\x87\xdb3\xaaX\xa3\xae\xbe\x9c\xd7\x19\
+\xae\xf7\xb1f4PBA`\x01\xc7\x9a\xf3@\x5c\xd0\
+*\xc7\x93\xddG\x06[\x5c\xd3x\x9f\x08\xc8\x12\xe0\xb0\
+\xd8X\xee\x83\x94~\xf0\xfd\x1e\x17\xd9\xf6\x16f\x15\xd7\
+I\x00\x82q\xc1k\x98'8\xfc\x8cC\xd6K\x1ch\
+\x9e\x1b\x8c7\x1cr\x1c\xf5Yf\x0a\xf3\x96}\xc2\x0e\
+S\xaa\x93\x1f 4]\x09h\xf3E@\xc4\xf73U\
+\xed\x09\xd4\xa2\x15@&\xf7m\x05\xb5m\x9c\xfb\xa1\xe7\
+uQ\xb2\x00u\x1f\xea,\xf7\x0f\xed\x16gls\x9d\
+\x22\x83\xee\xb6\x80i\x86\xb8_x\x8a\x9b\xb9\xf4\x8d\xf6\
+o\xa5M\xf3\x9b\x5c;\xbdSS\x02g5pD\xef\
+\xfa\xdd\x85\xca`\xa0\xado\x8a\xe0\xb9[@\xb69\x84\
+\xe1G\xc0\x0aU~\x98t\x04 \x08\x98\x10x\xf1\xbe\
+L\x00\x99\xd2\x89\xd4\x0eb?&\xc0\x03C\xcf\x99\xe7\
+d\xa0\xc1X pC\x89\x155\xe3\xbb\x8f\x19vJ\
+W\xb3{\x08%\x01\xbe\x0f\x04>q\x5cR\x0d\xdf\x09\
+\x0e\x98\x828\xbaY\xbbo\xc3>\x13U\xde\xa7\xb3F\
+\xdbbk\x93M\xdcm\xe1\x81\xd1NC\x141f\xe9\
+2\x12\x03\x84\x91\x073\x8e\x80\x055\xd2\xfd?\xfb{\
+\xfb\x7f\xd6\x1a{D\xe62\xa0F\x80\x8e\x12AY%\
+76L)\xf614\x17V\xf4}<~dzd\
+I\x8a\xd5\xde\xb3$\xc0%\xb9\xfd\x15B\x1c\x97\x10\xea\
+\x91\xda\xfe\xd4\x96\xf8m\xe0\xaa\xdaUl\xee_\x818\
+\xdf\xb9\xd7\x09q|\x87P\x98\x00\x8b\xf4\x8b4\xf3\x00\
+\xbb\x19F\xd1\xda\xbe\x9e\xd3\x9d\xa1\xb6=K&=\x19\
+,\xce\xd4\x17\xffa\xe7:\x0f)]\x9e\x9e&\xc4}\
+]Kp\x09N\xac\xd7\xfd/\x84\x9a\xc1V%\xbfj\
+\xf9\xa1\xd4\xf7/\x10ji\xea\xdc\x09B\x0d<\xcc\xfd\
+Xh\xbaN\x90@\xa5\x9b\x03%\xad\xacO\xee\xaa\x81\
+&\x00\x01'\xb4\xbf`\x0c\xd0U\x8c.I\xa5k\xe3\
+\xa4\xae\xcf\xf3\xb7\x07\xc2\x9e\x9c\xff\x8f\x10\xc7K\x858\
+\xef\x8b\x03a\xa7N\x0f\x13\x9c \x89\xbf\x1b>$\xc4\
+\xf1\xa9B]?a(g\x04\x05\xff\x11Qm\xf7\x97\
+\xcfy\xcd:5\xdbE\x86\xf1\x86\x9d\xe7u(\xed\x1b\
+\x02J\x0e\xa0\xa5*\xbe\x13\xcf\x19h\xfc\xce8\x1f\x0b\
+#\xf2\xcf\xa5\xf6}yu5C\xdc\xaf\x04 \xffX\
+\xbbi%\xa3\x05\xf1\xf4\x05c{\xcbd\xb29\x91E\
+\xe9B2MZ\xcd\x09\xf9\x89\xf7\x08q\xbf\xbe!4\
+\xeb:\xa5\x0fh\x09\x10\x00vi[j#\xd0\xc5\xc5\
+\xf3 \x13X\xb6\xcf\xb3\xed\xa6\xc5])\xd5`\x9e\x93\
+8\x9f\xbe\x5ch\xc4\x9d}\xff\xb2\xa4\x94v\x99ow\
+\x89\xbd\xed\x83\xfe\x1f\x82J\x00\x14\xb1|k\xbc\xf1\x14\
+\xa1\x0e\x98\xe9w\x85\x86r#\x8a\xce\x9b\x1aq\x17\xf7\
+\x1f\xcd\xda\xea3\x02\x9f\xb7\x1a\xec\xe5\xa6\x1c*C\xb5\
+\xb2\x10\xdfw\x9d\xe0\x1a\x19M\xac\xa5\x84\xaa\x92\x9c\xd4\
+1;\xce\x85:vO\x13)B\x8cb\xcd\xc0ZM\
+\xed\xbb6\xaa\xb7Y$P\x91\xab\xa3\x84\xaa\xba\xcb\x86\
+\x94\x14\xdbe\x85\xba\xe1\x16\x0d\xcf\xdf\x8fb)R_\
+-\x22\x18\xcf\xab\x19\xee\x14\xaf\xb3\x0ac\x11/;\xbf\
+\xb9~\xff{j\x1ch\xb8~\xc5\x8e\xd1?L!|\
+\xb82\x02\xb2\x0d\x9b)\xef\xc3O\x03?3%q\xb3\
+\xc6`\xc6\x00\xff\xa6P)\x8d\xc33\x84\xda\xc7\x1b\xb5\
+\xd9\xac%<L\x8d\x1e\x9a\xc8\xba6\xa8%\x9b\xf6\x1f\
+\xd4N\xab_\xfc;\x1a\xaa\x19\x1b\x01\xda\x092O\x1f\
+\xb2\xc1\xbaP\x93\x11A\x9d\xdd\x94\xa3\xe2F\xee\xd6\x88\
+8\xca\xfc\xd9\xac\xd9@l\x80\xa5\xe8\x13\x99bJ\x03\
+0\x90\xdd\x8e\xafd\xceok\xc4\x05a\x8e\xc0\xe4\x90\
+y\xff\xcc\xccWU\xaa\xa0\xfb2\x0f\x7f\x13\x9a\xdf\x85\
+\x02\xe8\xf6xI\xcd\xc4\x80'\x92[\xdb\xa9\x8d\xd49\
+\x18\x01\xa6\xa2O?\x10\xf8\xa0\xef\xefa\xf5\xbe\x95v\
+v\xea\x87\xfa\xc3\x82*\xb2dC15\x11,\x86X\
+\x0c\x8c\xc3\x1a\x03\xbbU\xa5\xbe\xd7\x0b\xfc\xb3\x9an\x0a\
+\x94\x86H\xa3\xe0\xe6&R\x8a\xe1(B\xfb3*5\
+)k`\x15\x97\x96\xe3\xff\xf5\xc0\xb9\x8dCi\xf1\xcd\
+2\xce_P7\xbaR\x02\xf2\xce\x86\xf2J\x86\xc5\x0b\
+Ff\xeai\x13)\xb3\xec\x8fM\xcd\xae\x88\xb6\xdb5\
+\xe7A\xc6\x86\xdaM\x02\x0f\x18\xc8\xb35\xb7\x88\xae\x99\
+\xd2\x9a\x81'\x1c'S!\xfb\xef\x0a6\xf46\xf7\xb8\
+\xf9S\x15\xc3\xca\xd2\x0f\x8b\xbcL\x8f\x10\x9an\x01\xdb\
+\x0a\x95\x02\x08\x13\x82R\xa5\x22\x9a\xf7\xad\x1a\x98*\xeb\
+\xd5)~}pU\xeb\xcd6`8~\x5c\x0f\xcc\x88\
+{J\xee\xbc\x1a\xe6\x04\x14(\xf9\x802\x88x\xdf\xd7\
+\x85*\x9e\x18\xe6\xfb\xc8\x88\xf9\xb2#\xee\x04\xb6h\xd3\
+\xb6\x92\x99K\xcb\x8c\xaa\xd0j\x96\xa8v1I\xdd\xc3\
+Q\x22\x93J\xd7\x805\xac\x96~\xf7h`d\xff\xe3\
+*\x0a7:\xa68\xea\x04rn\x97\x0aKq\x10G\
+\xc7\x98\x0d\x1e\xd5v\x02O\x88\x04\xe1\xb00\x7fy\x8e\
+\xb3\x19s~\x8f\xf1\x86\x03H\xc6\x99\xef\x81\xb2\xef\x9a\
+\xd5\xac!\xc7\xc0\xc0A\xc3a\xc3a\xc6\xe0x\x9c\x1d\
+A2\xfc\x1b\xd8\xe1\x82\xe2\xec\x00@\xb6\xdf\x83:\xbe\
+\xb2\xbf\x87u\xea\x9f\x0e\x94\xe0A9\x10X4j\xfe\
+\xd8\x88\xf1\x91\x19\xe6zp`0\x08\x08|\xfd\xdb\xa5\
+s\x0f\xbad\xe8\x9f\xff]\x83\x9f\x19S\xee\xf7\x90\x99\
+\xfa\xf1~.>\x93Y'\xa3\x8e\xa8\x1b\x816\xd6c\
+\x9e\xab\xefC\xd6\x9c\xf3\x9c\xd0\x9e\xb9\xcd\xe2b\x0f\xf9\
+9\xad\xe8\xfb\xcb\xfd\x84\x81\x80\xc3\xcc\xf7r\xde\xd7\x9b\
+9\x05\x85\x9a\xf6D\xd4\xf4\xe3pS\xf3\xc9<b\xdd\
+d?B\x9d\xdb\x99\xb5\x1c\xa7\xcc3\x028P\xe8Y\
+\x17)]\xf4\xf7\xa4\xc3NM&\x8e.\xed\x99\x10\x0f\
+e=\x9a\xcd\xe8\x13\xc8\x83\xb9F\x80\x94\x92 \xc67\
+\x01\x09\xd6w\xe6!j\xff\x94b0~\xac2\x9f\x81\
+\x14\xae\x1b\xc3\xd7\xa2\xbf\xd9%\xc0m<\xe9R\x94\xeb\
+-\xb5\xf2\xec\xcb\xdcW\xff\x97\xb5\xf7\x88\xeda\xb7\xa9\
+6|\x91Z\x13\x9f\xf3\x88\xf1d\x87\x9b\xe75\xfd\x99\
+PkW\x93\x89\xe6u\xa1\xbfM\xa8m\xbaH\x00\x91\
+q\x86\xa9D\x89g\xee\xc3\xb4\x1dd|p\x1e.\x09\
+\xccR\x1e\x18T\xebX\xe5\x9b\xf6\xc0v\xd4\x929\x08\
+\xf3\x095\x7f\x18\x090\xa1\xd0\x8e\xa2\xab\x07\xf3\x92\x12\
+\x1d;\xe8\xc3K\x05k]\xc5}\xee\xb7\x13\x1aQ\xae\
+s\x0b\x92\xe9\x98\x01\x01;\xd8I\x81\xb7\xfdH\xc68\
+\x99-t\x07\x80\xf2LI\xa4\x03\x0dq.c\xe2\xe5\
+\x0bV\x95w\x805\xdc\xeb\x9f\x15\x07\x9b\x8c\xa8\x13<\
+\xfdI\xfd\x89\xfdI\x95\xb9\x86C\x89=\xa5\xf6q\xfd\
+\x9e\x16o<\xbf2\xff\xcaj\xbaSM\xe8@\xa9\xef\
+\x97\xefW\xe8W(\x89\xb8\xa2\xb9\x85FR\x96\x9c8\
+PD\x0d9\xddq\xd0\xb6\xc2\xf1.\x09\xa7-j;\
+\xc6\xb9o\x0aq\xdc*\xb0\xa5\xdb\xd8)\x91\xb8\x94\x10\
+\xef\xdf\x13\x88uv\xc1K\x85\x12\xc8(5\xfea\xfb\
+\x8c\xe3\x06\x87\x13\xaa\xbf3\xd7\xb1\xbb\x17FJ\xb8\x8b\
+%p\x95\xf7\xd1\x89\x92\xfe\xb3B\x0d\x8c\x11`-\x0c\
+\x87\x98\xff\xf3\xd7\x06\xae\xa9\x7f\x87Z~\xc9\xa0nY\
+\xdb\xc5e;U\x9e\x9b\x19\xact\xe7\x22\x83\x9dm\x84\
+\x1d8@\x0ba\xee&\xa1y\xfe\xee\x1aT\x1c\xd5\x7f\
+6v\xa1V\xf3\x0d\xcdt\x9co\xda22\x8f\x950\
+]\xa2i[h*y)P\x8a\xbf\x9f\xdfX\x88m\
+vC\xc1\x1a\x08a\xd7\xcc/*\xd4qM\x80o\xfa\
+\x04\xa1\xb67\xc6O\xc8\xb6\xe4.\x85\x81Y+\x9e\xb8\
+JZ\x8b\x18\xde\xe9\xcd\xbe\xcb\xbaAi\x8f\xed\xae\xb4\
+\xb7Y')\xfd\x84\xc1C\x89\x9aK\x0c\x98o\xb4\x8d\
+f\x9d\xcbnPV\xb3/\xa3\xe2\x9c\xca\x88\xcc\x92b\
+=\xe5e\x9a\xf5\x19\xbb\x0b\xad4\x02\xdc$4\xcc\xc4\
+\x99\xfb\xbc\xd0\xac\x8f\x88\xfe\x92yw\x80\x84\xbf\x83\x01\
+D\xc9U\x7f\xa6P\x13\xce0:)q\xc2?K\x11\
+a\x07\xd2\xfa\xdd\x84\xc24\x1f\xb5\xa8\x9c\xc8\x19\xbe,\
+\xc4\xf7=Jh\xb4\xee\x08(\xfa\xbe\x17f\xf1\x22\xb5\
+\x04 \xb5\x0b\x5c\x22\x90\xfb\xbc\xfd\xcc\x05)\xf2!\x15\
+\xcc\xdf7b3\xb4\xaf`\x81\xa46B\x0e\xef\x17\xdc\
+\x0f\xf4\xbc*\xeaQ\x22\x9c?1u\xe5\xabu\xc3L\
+\xc7\xfc\xf3B\x9c\xe0\xb3\x05gLW\xad\xe2O\xb9\x01\
+\xdb\x00\x98\xae\x1cX\xa5\x11a\xf3\x065\xdd \xb0a\
+#J\x82A\x085\xc5\x8e\x13\x19tT\x0f\xd3\xb0\xd8\
+\xb04~\xaa\x0b\xbe\xa9N\xd3\xf3\x84&R\x8ex\x1a\
+\x14|\x05*>\xd7\xa8pS\xd3\xa4Z\xe6\x13\xaa\x98\
+\x08\x91\xaalo\xc7F:q\xa6\x07*\x9f3\x94Y\
+\x9a \xd1\x8d\x9fx\xa3\xdc\xba\xa16\xa2n\xed\xb6#\
+\xd9\xe7\xd8\x14\x94\xe9\xf7\x84F\x9c\xcf\x0eb\xbf\xb6P\
+\xdb\x9a 2H\x0dy\xf6K\xf7\x82\x9f}u1\xc4\
+\xa9q$\xd3\x8b\xe1I\xbbD\x0c\x0c\xee\x93)q\xd9\
+\xc5\x81\x1a@\x8b\xf4\xd0\xc6#\xfb]Ce\x87\xca\x88\
+\xc1L\x86\xccm\xf8\x0aQ\xf9\xeb\x8eDn\xdcd\xe2\
+Qq5\x93\x83\x80HR*i\x0bEf\x0015\
+D\x9cpX\xa0\x0c\x12 X\xa3\xe4\xd8jF\xce\xed\
+\x89bc=I\x1b+\x19\x91T\xf9\xd5\xf8{\xa27\
+\xf4\x7f5\x01\x00\xb9\x0b\xcb6\xf7\x03\x95x\xd4\xa5a\
+0X=5\xb5#\x16-9\xbd\x1a\xe1\xf4\xb8\xce\xfb\
+\xa5\x8a\xac\x8f4\xed\xf80\x88\xe9nA-\x95\x99#\
+\x85\x8a\xf7\x8c\xe6<\xe8F\xa0\xd2\x97_U5\xfbt\
+@\x15\xb9\xff\x85\x19'j\xbbw\x86\xe0R\x8f\x8d\x1b\
+\x86\x06\xb5\x8e^X\xb3\xf4\x84L\x16\x869\x94]\x98\
+\x05\xccgD\x900\xb4\xb9\x0e\x02M3\xea\xdfY;\
+l1\xcfb`\xad\xe0.%\xdb;S\xf1\xcb\xeaH\
+\xd0\xc5\x22\xdbG9c\x95\xfdd\x1dq\xe65\x81\x82\
+\xec.\xe1\x12\x90l\xc3\xa2\xf6|\xcf\xb0\xdd>i4\
+(p`)\xa1a\x1c\xbb\x04!)Y\x9e\xbf9o\
+\xc8\xac\xa0=\xe2\xf9\x91\x01\xab\x83L%\x85\xe2\xe9.\
++0G2\x12\xed\xc0^:\xa88$\xa6~f\xa0\
+\xd1\x0e|\xdc\x83BM\x13\x91\xb3\x88\xe3\xb1>\xc1\xfc\
+a\xfe1\xdfy\xdf\x81?)\x18\x94u\x88\xf6\x938\
+8<GJf\xb8\x0f8\x888x\x1cq\x18q\x84\
+p\xe0\xe8?O-/\xe3\xc0\xf79\x0dgD6q\
+\xe0\xf9=\xaf\xcf\xc3n\x16yE\xac\x0f\x87tu\x07\
+\x028_\x18\x05\xb4_$\x83\x88\xa6\x05%/\x04$\
+X\x0fi'H\xe0\x87@\x08\x0e\xcdl\xa9\x03\xf7\x01\
+Q<\xa8\x8dd&q\xd4\xcc\xa4\xc8\xfbO\xe9De\
+\x0c\xfc7\xd5\xdf\xcc\x874\xc8]\xda0\xb9\xc6\xed\xb2\
+\x10\xb5\xc5\xc0\xe2|q\xe4=\x8f\x09L\xd3\x86,E\
+\xb4\x1e43\xc3%\x01E\x02t\xad\xaa\x1a\x9d\x06\xdc\
+,\x93\x04\x03\xd6\xdf3|\xd3\x14\xe9\xb3\x1dp\xe0\xfe\
+\xe1\x80\x10\x18\x83Z\xcd|'sO\x00\x83}\x9b\xeb\
+`\x9f$PD\x97\x12\xd6u\xd6%\xba\xc8@\xc1\xf6\
+\xfd\x82\xea\x9b\xa5$P.\x19w\xfcGF\x19\x86\x0a\
+\x9a9\xccc\x98%h\xfb\xb0\xfe\xb1\x9f2>1\x80\
+\xb9\xff<\x17;\xbc\xc90\xb3\x83\x9a\x09\x01\xe67\x01\
+\x09\xae\xd7\x86]\x06N\xd1\xc2 0\xc6\xe7``\xf9\
+9SR\x96*\xed\xb4-\xf5\xb0\xcb\xfbB[@2\
+JP_\xad\xe6\x9d5\xc2\x87\x9bi\xe6\xc4H\xffM\
+\xa1)i\xa0=(\x81\x0b\x07\xc4\xd2^r\xe0\x09\xca\
+l\xda\x9d8\xeaN PR\x90\xeb\x9c\x9fk\xb6\xe5\
+sw\x99\x0c0\xd2\xf6\x0e\x0a<\xe3\x16\xa6\x90\xa9\xea\
+\xb9\xdeP\x93\xeb\x8c`\xa1\x16\xbf\xab\xc9\x0c\x92\x115\
+C\x81\x1a\xectH\xcdd\xca\xcc?\xeb:L\x10\xaf\
+\x0f\xf4/\xcfL\xb0\x1d\x8d\x5c\x0f\x9c!Uz\xab0\
+x~g\xfb|{\xefw\x88:\x93I\xdf\xa5\xdf\xb9\
+\xdf\xa5\x96\xa8f\x02H\x09\x80\xafW\xe6\x5c\x8a\xf12\
+n=\xae\x19\x0f\xa8\xc8\xc7\xb7\x05\x9aD\xdb\xc2.M\
+Xb\x1cg\xa9j\xef\x80gR\xd3mG\xf5\xef\x14\
+\xe2\xb8\xc2\x18@\xe8\x1f'\xc4r\xf6\xb5@\xf8\x07s\
+G\x0a\xb1<\xbeC\x88\xd7\x0f\x04b\x1f\x9a\xdbH\x88\
+\xf7\xaf[p\xfd\x82\xebK\x9b\xeeM\xfaMJ\xe2\xa4\
+$^\xa6\xebN\xd7\x9b6\xe3\x95e6\x19!/\x19\
+\x036\xa9\xe9\xc2z\x84v\x11\xf3\x08\x11n3\xdb2\
+\x90\xf2\xf8\xc0ZU\xdc\x94n9\xd3G\x06\x16\xaf%\
+\x9c\x94hN~+Tf\x06\xa5f\xfd\x09B\x15\x9d\
+\xe4<i3<7\x1f\x98z\x1f{c\xd3\x1e\x95\xae\
+\x18jk\xf9\x89f\xfd3\xf3\x98\x12\x85\x9c\xc7\xfe}\
+J\x1f\xd0X\x9b\x1f\x848\xde\x16\x88}\x7f\xfe'\x01\
+\x89\x1d\xfeM\x88\xe3_\x85\xaa\xfaO\x00\x0d\x8d\x90\xe1\
+\x09B\xbc\xbeV(\x81\xb5\xadK;M\x89\x8ao\xd6\
+hRA\x91\xa7\xcb\x85\x13\x1d\x88\xd8&\xc3\x08\x11<\
+\xd6_\x18|\xec\xa7\x8cG\x9e\x8b\xa9\xf1\x940e\xf7\
+$4\xe4lOR:\xc8\xfb\xd3\xd7\x05$*\xfe\xc9\
+\xc0\xa7\xec\x17|\xa2R\xee\xb3$\xf4x!\x8e\x0bL\
+\xe1G\x84\xcfL\x81\x05_\x11j \x19\xd1\xf8l\xf3\
+\x8d\x08\xa2\x03\xb3\xd4\xfe\xa7\x08\x1f\xf6\x17\x0cY\xdb\x1b\
+\x94f%\x03\x00F\x94\xbbQM_)\xc4\xf1\x8a\xe9\
+U\xd3+\x0a\x93~\xfb^\xf6\xe9\xb3\x84\xbaN\xf4\x8f\
+\x16*3\x98nO)^\x8e\xbd\xc1:\xfb<\xa1a\
+\xb8\xbfy\x0c\x1c,\xa0\x0f\xe4\xe4\xd8\xc0'\x1a5\xc9\
+\xb3\x02g\x9a*\xb1\xbfO\xfc\x8eF\x1c\x8b\xf61\xee\
+\x9bX\xdav\xec\xde\xb4\xb3\x121\xf3%^X\x97\xae\
+\x0bhn\x0cn\x1f\x83\x18W\xd6\xce\xda\x91\xe3FM\
+W\x11\x1a\x83\xd1\x8eYYhbbMO\x08\x9c\xd8\
+\xf4\x97\xf4\x06\x93\xfdpq\xe8\xdd\xbe\x09F\x02\x1b0\
+\x0bhnlVQ\xcd\x81\x89\x1a\xf2\xbaB\xedwZ\
+*.\xf6\xab*\xb0\xb4\x07,\xe2}\xbb7\xeda\x9c\
+\xe1\xa7V\xbf\x10f\xff\xde\x18H\x97\x97\x86T\xe3\xfd\
+i\xfbT\x93\x11\x98\x15\xa5\x82z\xceu\xc1\x90\xf0y\
+\x97\x92\x84#\x1a\xca\xb4\xda$>\xc1\x22\x80\x17W\xc7\
+ix\x8d\x1ab\xd4\xda\xb7\xb2\xa0\xde\xed\x8c\xcb\xf2\x8d\
+c\xf0\xcf\x92\xf3\xaa\x01\x0b\x9f\x7fR\x5cT\x1b\xf5E\
+\x1b6\x1b\xd76r%B~w#bGm\xb0\xdb\
+\x9a!\xd6\x98\x19a\x22\x85\x1e\x17e;\x95\xe3\xf9\x06\
+\xa1\xd6\xde\xd3\xef7kz5\xbe6m\x22|\xa6r\
+g\x0d\x95ksX\xc8\xf3y\x13\x81\xa4\xcd\x8a\xfbn\
+2NR\x8cKg\xbdwe\x18\x14&L,\xd8\xd3\
+\xef\x0bM\xa9\x82\xb6\xeb\xfd\x9d\xe9\xff|S\xcbc*\
+Q\xce\x0b\xb9\x03s6@_S3|\xa9f\xec6\
+N\xa5\xa4\xe4\x98\xc6\xf0t\xa0%3(\xd4pS\xab\
+O\xbbG\x8d\xaa;\xff\x87\xda8\x1b \x94P\x18\x02\
+te\xc0\xb0\xc2\xb0P\xb7\x84wz\xdc\xab\xc4\xe2c\
+\x81\xa3\x9dI\xb9\xd6\x0e\xcfM\x95\xf27\xec/T\x83\
+))\xd7\x22\xee\x1e\xed\x88\xf5\x95\x8dcD\x06p\x86\
+Y\x12\x8e\xea\xed\xea\xf6\x91\x8e%\xf3\x90\xffh{\xe4\
+\xeb\x0aGo7-\xcc\x5c_v\xc3\xc0\x11C\xcd\x9b\
+\xeb\x94\xc8\xd2-\x0d\x05\xd9\xe3r\xeeE\x81\x17\xbb\x8d\
+\xe2\xb2\xb5\xc6\x0c\xf1\xad\xf9\x9f\x0b\xa6\xd2\xc7\xfd\x9b[\
+\x5ch2Yd\xbe\xa9\xb9\xc6\xc1d\x03\x80\x1a\xc7s\
+p\xc0 )\xda\xeb\x8f\x94\xec\x98;#\x15\x16\x07\xc8\
+\x8egf\xa6\xb9O\xa6\xe6\x0f\xff\x11\xca\xf7\x97\xf10\
+\xb9^\xa8\x99d6\xf2\xd2\xc3\xe3\xe8J\xbd\xa5\x9fw\
+:zP\xf48o\x9e\x0b\xeb\x8c\xd7\xd7\xac\xc1g\xfe\
+\xa3m\xe0L\x0a\xa2j\xd9\xbe\x0b\x87\x0dG\x06\x86\xc9\
+\xac\x83\xcb\xb8`\x9d\xe7>!\x9e\x87AO@\xc2\x99\
+\xb7t\xf8X/\x11\x01\x223\xb0\xa6\x1d-\xda\xa0\xe1\
+\x80\xe0\x181\xbf8?\x18J\x04\xae\xc8\xa8c\xc0\xf3\
+\x1f\xf7WmWok\xd6K\x1ca(\x9c0\x9d\xb8\
+.\xaes\x99\x19\xad\x05\xda\xa7Z\xb5;\x9c\xdb\xf1\xfe\
+\xe3H\xf2w\xb4\xed[\xc8\x8e(\xe3\x06Q!\x02>\
+g\x09M\xc9\x11\x19U\x02P<\xd7\x9dG\x87;\xdb\
+\x0e\xdd\xe2y\xb3\xc4\x8c\xd6\x00\x8e\xffzv\xa8\x09\xbc\
+P\x0a\x80#\x8b\xa3K\x06\x9c\x00\xc2\x9d\xcd~\xd7\x9e\
+\x9f\x03\x8ai0\xc2\x18b\xde\xcf\xb6\xf5#\x93\xce\xbe\
+\xc2sw\xe0\x1bfHf\x9cp\xa4\x09\xe0\xb0\x1e2\
+\xee\x08\x5cc01\x0e\x08,\xc04\xe0~9C\x94\
+\x01\x22\x1c\xe0\xd9\xc0\x10\xa2\x82\xbc\xcfx`\x9c\xc0l\
+\x80\x99\xc0\xf9QC\x8a\xfa>\xcc+\x02\xd73\x9a\x02\
+\x048\xa8\xd5\xcd\x80\xac\x1d\xbf,i\x81\xe9\xe0\x8c_\
+\x06\x0e(5`\xbft\xa0rxXhJ+\x11\x01\
+s\xdb\xe8\xb4{\xb8\xbf\x88\xd0\xc9\x8e<\xb6f\xe2\x87\
+=\x85&p\xc1\xf5\x93\xa1\xa3d\x85\x92K\xaf3\xa9\
+a\x80\xbdIi\xa4\xed:J\x0a\xd2qw\x00<\xc5\
+\x99\xd1\xf6\x81\x09J\x80\x87R\x03\x02\x02\x88\x85:\xf0\
+W\xda\xbe.\x5c\x19\xa9\xdc\xc7\xd2\x85\xe6\xaf\xd5\xee\x83\
+B\x9e\x99g\xd7\x80S\xfb\x9b]\xadX_`\xcaQ\
+zJM=T\xee\x7f\x8d%\x1b)\x1a\xe8\xfd\x9d\xae\
+8\x19\xe8\x10\xd3\xf6\x8c\x9a1\xcc.Bn_\x97\x9a\
+5\x04N\x10\x15\x94&\xc1\xdfM\x19\xffOC\xe9'\
+@\x06\xb3\xc4\x9a\x13\xfd\x05B\xa3A@?v\xec \
+\xd7\x96'\xf3\x81\xdf\xa1\xe6\x7fe\xa1\xe9\xb2\xf0\xff\x84\
+J\x91\xc7\x81ASj\xee4!\x8e\x8f\x12\xaa\xbd:\
+]i,\x91\x98_F(\x81\xf9\x92\x89\xceu\xc2\x0c\
+\xbb\x0c\xec \x9a\xe8@\xca\xf0uw\xfb`>\xb2\xaf\
+\xb0\xbf\xad\xe0\xc0\xd4\xadf:+\x10\xf0v3\xe3\xe2\
+yO7\x0flVE\xc1\xd1\xe0)\xcc\x86\xb0\x17\xe6\
+.\x14\x9a\xb6\xbf\xae!\xcf\x00\xc5S\x85\xf8\xdc\x8f\x02\
+\xe7WM\x80\xfeoB\x1c\x7f\x228\xf0\xbdBS\xa2\
+C\x97\x0c\x02\xac\xb2j\xdfS\x19\x17\xd9\xe6\x92\x92\xec\
+\xd2&!\xee\xd3\x1b\x02\xb1\xcf\xcd\xdf\x1b\x10E}\x87\
+\xc0\x8e\xb5\xcb\xc1\xfc\x1b\x85x\xffCB\x1c\x9f*4\
+\x894w\x8f\x9a\x1e,4\x0c\x98m\xdd\x05\x81\x0c=\
+m7\xcd,a=\x8f}k,m2\x13\x82\x1a\xff\
+d0\xe1\x87\x99Y\x90\x091\xfc13\x9a\xd3>s\
+\x02\x0e\xd1s\xa8\xfd\xd3\xe3\x85\xe6\xb8\xb8\x10\xc7E\x02\
+\x8bZ\x03 \xf6\xed\xe9\xda\x82\xc5\xde\x0fh\x18\x82\xd7\
+\x8c\xdd\xda\xe8f\x92\x94\x7f\x07\xaa\xb2\x84\xd7\xdaO\xd3\
+\xd5\x043\x0cb\xdeN\x0f\x12\xaa\x9d\x19\xfbb\x09\x84\
+\xf5\xaf\xee\xf7\xee\xf7.\x81\x86\x22j\x9fZ\x06\xfe\x9e\
+L\x1c:\xe0\x96b\xa4\xbe\xcf\x99Hp\xc2\x9d\xae\x12\
+\xd9\x9e\x14\xc6\x815\x02\xf2h&Aa*\x7f\xa0\x8e\
+\xb3\x14\xb34\x83b\xfa<\xa1\xfa]\x0b\x0a1\xef\x92\
+\xc6Qr\xdfs\x0c\xdaRs\xfd\xc5\x1a\x99\xa3]B\
+\xd6\xa2\xb8\xf6-\xfb4*\xe2\xf9\x08/\xe0w6\x81\
+\x02e\x16\x7fV#\x8a\xfd\xf5B\xbd`nhq(\
+Ntd\xf8-52B\x97\x80\xa4\xb4r\xe1P\xbe\
+q\xb8q\xf0]\xfb9\xbdOh6D\x02\x0do\x10\
+\xe2\xdf\x1f\x14\x9a~\xb9<(6:j\xf0\xbc!O\
+\xdf/\xc4\xf9\x1f\x1b8\xc6T`\x22\xeao\xa9m\xed\
+J@\xe0\x06g\xe0\xd7j\xfa\xa4cp\xb8\xa6=3\
+\x0d6\x10Jm\x09m\xa6\xb6k\x0cG\xa8\xa1l(\
+d\xba\xde'4\x22e^@\xe6\xaf\x08\x5cY3\xda\
+E\xa5\xf6\xdc:\xa1\x8a\x99\xb4K\xd3^\x8d6x\xa2\
+4\x1d\xd1t'\xc0@e\xe2(_\xd7{\xe3X\xcf\
+bx\xdf\xab\x0c\x90t\xc0\xa5\x96\xbbI\xd3\x1d\xc0\x8e\
+\xd2\xf0\x91\xc0\x116\xd0\xb6\xb1\xd8\xd1s\x9a\xe7\xa2\x08\
+\xec\xe3\x1b\xd5}\xa8\xb88\xb4r\xabo\xa8j\xc8\x94\
+\x9e\x94\xf1\xf0\x9f&0`\x83\x99H4\x14\xa6,}\
+\xa0\xed\x94)\x98\x887\x96\x85\xeb-M\x9fz2\xe5\
+\xd4\xa2\x8a\xa0\xf8\x1bS\x1b\xc3\xa0\x99^#\xd4\x8c6\
+\x0b+\x94\xb2B4\xba\xdc\x01\x8d/4\x0e\xa1\xbb\x03\
+@iL\x83S\x9f\xbf\xb2\x8aK\xa6\x18 \x81\xa3\xc7\
+\x16\xd2Rm\xb3\xa8\xeda\x0b\x07\x186\xf4B|f\
+\xf3\x9c\xe9\xd6\xe1q\x97\x8e\x9bF\xfb\xb7\x1a\x11\x1b\x8d\
+\xf3\xbb\x1a\x06\x82\xdbj\x15u\xda\x97\xd5>\xb0\xc3\xc1\
+\x81C\x1aq&\xab\xe4\x97\xca\xa7\xc3\xea\xb8-\x19\xa2\
+W\x981tf\xe3\x18\xf0\x1cq\x8c0\x90\xc9\xe8\xcd\
+\x1a\xccd\x88i\xaf\xe9\xee\x15\xb9\xc1\xbeV\xa8\xcfw\
+:/4\x11e\x98\x05\xd4\x10[\x13#\x1dW\x9e\x93\
+\xae\xe6\x14\xafwgU\x11?\xd6\x8f\xa2\x1e\xbd\xb27\
+\x96\x8dj\xade:f*D\xf9v\xfd\xbe,\xd9Q\
+d\xfe\xfb\x8e\xc0n\xe1\xeb\xfe]S\x13J\x86\x10G\
+\x97@\x02\x06\x0aG\xda\xd09\xf2\x8c\x01\x9f\x11\xe9\x97\
+\x8d\xd4\xb4\xcc\x8cQ\xa2\x80\xa3\x8d#c\xc7\x19-\x90\
+T\xe9&\xc0\xd8\xdb1\x82\xb1\xc1s\xa6\xb4\x04J.\
+\x0e\x9d\x19M\xa9v\xbb\xdfHqf\x9ce\xa6\x94\xd2\
+\x1b\x1c\x98Y\xed\x04\xb4\x04n\x11\x1aF\x00\xcc$\x18\
+I\xa8\x9b\xbbt,U\xd4m #V\x96\x149\xfe\
+n\xb6\xcd\x10\x22h\x0b|\xbd|\x9e\xff(aA\x85\
+\x9cL>\x8e\xa33\xf0\xc94\xc2\xb1!3\xcf\xe7\x99\
+\xef8<<o(\x85\xa8\xf7\xe3\xa0P\xcb\xbe\x823\
+\xca\x18\xae\xb7\xbb\x14\x80\xf1\x86C\xc6\xdfc\x88\xd9\xc1\
+\x9bl\x22\xd4Lc~/\xe7\xc9\xb8z\xba3\xe5;\
+\x8f\xe2\xa7\xe9 \xcf\x06\xa0\xff\xe9\xf1\xc3\xf5\x13\x18`\
+>;\x80\x94\x0e\x05\x0c\xa1]\xec\x90\x9bi\x93\xda\x04\
+Oww\x09\xba\xaep\x9d\xb4\xa3D+\x80\xcc\x12\xdf\
+\x8f6\x04\x14\x7f2\xeed\xfc)\x1dc\xfc\xc3\x1c\xe0\
+<\xd9\xc7hS\xe7@A\xb6\x05d\xfd!`\xc2\xfa\
+A\xe0\x8a@\x14\xbf\xcb\xfe\xc8>\xceu0\xee`\x92\
+\xcd\xb4\xbd\xcc\x92\x10\xb4/\xf8\x1d\x98\x04\xec\x87f\xfe\
+d\x0d:\x0e\x0c\xf7I\xed\x87\xcf\xa9\xe2\xb59\xbfp\
+\x8c\x98\x1fd\xc2a\xba\xc1Xb\x9c;\x90D&3\
+\xdb\x819\xa0;=_\x88\xe3\x8f\x84f\xdc\x13\x08s\
+\x02\x82\x80=L\x86\xc9\xb7\x85\xc6\x8e\xf1u\xa76\x89\
+K\x032\xd3I\x00\x86D\x87K\xeb2\xb0H\xf7\x1d\
+\xd6K\x021\x88&\xc2\x1c\xa0t\x0d\x11;i#i\
+?8\xb9\xa0vS q\x84\xf8\x1a\xe2\xb90&\xe8\
+\x12D\x17\x17k\x5cd&\xd3\x01\xac\xc9\xc7\x84\xc6>\
+u\xe0\xa3_Sh\xf6;\xdf/\x12g07\xfao\
+\x8c\xd4\xf0\xb0nF18\xdf\xb7\xc2DXx\x80X\
+Y\x00\x00 \x00IDAT\xa8\x88\x90\x9d^D\x04\
+\x0f\x0ck\xe5\xc0\xf8\xfc\xc9\xfd)\xfd\xc9M`\x19\xc7\
+\xd7\x8c\xcfd\xf4:\x00\xc86\x9a\xf6\x0e\x81\x12\xef\xb3\
+h;\xa5\x18\x1a\x8e\x98\x03\xa6\xfd.B\xadyOq\
+G\x02\xbd\x1e\xef\xfdiB]\xa6\xfa5\x848\x9e+\
+\xc4\xf1W\x81_Z\xdd\xff w\x15\x10\x93\xe2\xd3B\
+-\x95(\x19\xf7\x98W\xf3\xe5?'\xac^cM\xa1\
+/\xd6R\x8b\xfe=\xfda\xbd\xec\x8e\xcbGJ|\xce\
+\xb3*6:\x06dY\x87\x19W\xb3\x81>\x18Y\x0a\
+`\x0c\xd5n#PT\xc4\xd1_\xe1\xf6k\x176%\
+\x17\xe7\x09\xf1\xfa(\xa1f\xa23\xf0\xb1\x81\x10\x7f\x7f\
+\xaf\x10\xc7+\x84x\xff\xedB\xbc~Z\xe0\xe9\xcd\xfc\
+\xd6jqSe\x80\x16&\xf6\x85\x0dCK\x8e\x9e4\
+\xcd>-\xc4\xe5\x1d\x168\xb4q\x84\xaf\x0c\x84\xbd7\
+\xbdS\x88\x7f\x7f\xa5\x10\xc7M\x85\xaa\xd55=P\xb0\
+v\xd0\xd9\x0dS\xeb]c\xe0|8W\x88\x7f\xff\xe4\
+\xf4S\xd3O\x95}y\xec\xe6f\xa6\xd6\xe4&\xa1)\
+\xd9a?x\xae\x19t\x94\x98\xd1\x0d\xce\x09\xa2\xdc\x1f\
+)\xd1\x85\xb9A\xa9\x13\x01m\xd69\xaf\x9f0\xb9)\
+M\x98\xae \xd4\x00\xc6\xb4\xfc\xe7D\xdf\x05\x8d\xa80\
+% ^\xef\xfa\xaf\x08e\xfd/\xa5\xac\x94\x84\xc7\xa8\
+\x1b\x19\xca\xfb\x8e\x01>ya\xf2\xc3\xc2\xaa\x1a\x03\xa6\
+\xde\xf7\xa6_\x11\xfeG\xb7\x9fgX\xcb\xe9\xe9\xa3f\
+\x07m2\xe3\xfe\x05*#;\xbb\xed\xd9\x1fJ\xa6\x11\
+%%\xbf\x13\xe2\xf3\x1f\x12j\x22l\xfai\xa12\x14\
+\x86k\x85f\x7f\xc3?\xc4\xee% O\xc0\xdd\xf6Y\
+\x96L\xdb\xefX0\xf7X\xa1RhKfI\x22\x03\
+\xdf\x14\x1aq\x1b\x1b\xe8\x88r *V\x22X\x97\xc4\
+\xf1i\x81M\xbc\x80\xc4\xdf\xcd\xbf6 *\xc6\xa6B\
+\xd3\xb7\xd7\x91\xcb\x127\xff\x90#\x8e\xc7V*\x04\xb5\
+He\x1b\xbd\xa7\xc9\x94\xb3Qy\xa2\xa8\xf9\xc1\xd0\xb6\
+\xfbA\x84\xc8\x8e{\xb6\xf9{\xadP\x1d\xfe\xacIt\
+$\x0b\x03?\xcf\x8fL,j\x8d/\x11\xea\xef#&\
+X6\xbce\x9bZT\x8b\xf7\x14\xb3\xea\x85\xde\xd0\xdb\
+\x9a@(\x88\x18\xd0\x18,\x12\x97x\x8c5\x02\xaeh\
+\x0cNU\xc4\x1d\xd4dZ\x18p\x18`\x18\x0e\x18 \
+\x18\x10LH\xfaMZ\xad\xbe\xb8\x0b\xbb4\x01\x19\xa9\
+\x8e\x7f\xaf\xa9\x0dw)D\xa1\xf4\x1c_\xdb\x92\xa4\xc8\
+\xd6L\x09E\xc9\x88=\xa69?\xc5\xf1^\xd3\xdc/\
+J\x1dh\xe3\xe7\xbe\xa2Y\x83.\xb1\xc4\xed\xab\xb8d\
+\xb6iTD\xfb\x5c\x1b\xbasM7\x02\x0c#\xf7\x9b\
+g\xa2\x10\xa9\xef7\x0e<\xb5D\x8cW\xd2\xc2\x80\xa3\
+\x9e5\xd5\x16\x83\xcc\x80\x0f;\x22m\x8f\xa4B\xbd\xba\
+k\x04\xdf\xd3,\xb8\x16_D\x1c\x86\xbe\x9c%\xdf\xf4\
+\xd5&\xd2\xb6z!\x17\x8fb-\x8b\xd5\x9a\xb1\xec\x1a\
+A\xe6`\xe9Q\xb543\xaaL\x5c(\xfc\x94\x8e\xe0\
+\xa8x\x5c\x11yDK \xfbg\x93\xe1\xb3\x18S\xd9\
+\x18\x97jj\xc9TJ\xf1\xf2F\xc4\x0f\xc6\x80\x19\x1d\
+\xd9\xe7\xda\x91\xd9\xfc\xfd\xb6\x7f8\xdf\x7fxU\xe5/\
+\xf9\xca\xf5\x9a\x8d\x8a>\xe0\x88\xd8\xc9px\xaf\x03|\
+7\xd4.\x10\xb9\xf1\xe2 ap\xf3{3\x8c\x80\xfc\
+<\x0c\x1a^\xcf\x96\xba\x1c8\xd6\xa2\xcd_ \xc4\xf1\
+\xa2\xc0\x85M\x9b\x1bj^1Xl\x08\xb2`\x12\xc0\
+,\xee\xc1\x92\xb5\x04\xa5|\xfe*\xaf\x17\x07\xd7\xc0\xd4\
+\xf4\xc3\x82\xdb\xae\xadnC\xe1\xd2\x1a\xb0!\x10I\xbf\
+V\xfa4\x17q\xba\x0f\xd4\xf5-#\xe7\x18\x86oq\
+\xe4\xdc\xe2\x89)\x86\xc3\x86xX\xc1\xd8N\xf0\xb7E\
+{\xa4PRq\x94J\x80\xed#\x8d\x83C\xc9\x903\
+p\x88Q\xa2^\x9b\xaa\xcd\xd4&\xdbPM\xed\x11\xc4\
+sp\xb8p$Y\x7fX\x9fY\x87\xc8\x80\xc3P1\
+\xe3')\xcf\x18h\xb3\x8e2\x81\x0a\x02?0\xaf\x9c\
+\xd9L\x07\x12G\x0e\xcd\x0ej\xa0\xc9\xd8S\x1b\x8fv\
+\xc1G\xad\xbeKD\x9fL$b@t\xd7p\xe0!\
+\x0dy\x1c8\xce\x87\x00\xd6\xac\xa8+\xeb1\x19d\x1c\
+|\x02\x15f\x08d\x0d0\x06\x03\x81\x8f\xfb\x1c\xf8\xe2\
+w\xf8w\x1cP(\xe9\x7fs\xe0\x97\xcf\xe1P\x91Q\
+\xf9\xa4k\xda\xb7\x1ck\xe5s\x1c\xf0\xbc\x9e\x94\xa5\x0e\
+#\x93d\x1d\xefKw\xf8>3\xde\x9e=yV\xd1\
+ \xa1V\xf0\xcf\xbe\x0f\xeeFP\xc4V\xaf\xacmj\
+\xf3ys_\xa9\x01E\xfb\xe0Y\xa6\xa2\xb3\x8f\x901\
+\xc6PAm\x9c\xdazD\xa50\xcc\x19'8\xee<\
+\x07\x9e7\xfb(\x99t\x02\xec\x04\x8e\xb9n\x184h\
+\xeb\xa0\x16\x0eC\x08m\x1e\x98C\xec7\x16\xe1J\x06\
+\x1b\xe7E\xf7\x0b\x8b\xbe\xa5x\xa3\x03\xe9i\xb8R\xba\
+G\x89\x09\x8c\x09\x07\x8cS;\x02G\x9d\xf5\xd0\xe3 \
+\xc5_\x11\xcdb\x9c\xe1a1^\x18'3\xa5\x8b)\
+zgM\x9b\xfe*\xa12\xe2`\xc6\xa4\xb8\xa13\xfb\
+\xec[YzF\x09\x9d\xcf{\xeeJ\xa1\xee\xf3\xa8\xde\
+C\xb5%\x83H\x89'\xed)q0s|;\x00\x9d\
+\xcf\x151J(\xc20I\xd8\x0fa\xfc`G\xa1}\
+\x80x\xa0\xdb\x83\xe6\xbai\x11\xac\xd4N\x81\x01\x888\
+\xd6\xfb\x85\xba/d\x1bM\xf6W\xaf\x0f\xe98;q\
+\x90\x09\x02(\xfe{\x98\x91\x80x\xb0)\xe4%\x83\xbc\
+y\xdc\xf7w\x0b\xcd:G\x1b\xc8\xf7\x9ab\xbf\xc6\xa8\
+UE\x06>\x1d\xf2U'\xabLV\xad]\x14\xa4y\
+\xaf\x80mR\xa4iK\x88v\x04Z:\xd6H\xe8O\
+\x16,Z\xf8\xf9\x86\x09J@\x00\xc6\x08\xed\xf9,\xba\
+[\xbaC]ZK\x07\x8a\xb6\xd7eu<f\xe6\xda\
+\xa5\xc2\xdc\xcf\xd2\x1e\xf0\x13\xee;\x7f^\x15\x09\x9f{\
+k\xe0-M)\xc2\xb6\x81\xed\xaa#\x1c\xd7\xb9\xaa\xae\
+3\x99Q\x882\x8aA\xfb\xd3*\x82\x97\x19hu\x93\
+\x7f}\xe3\xb8^\xe5y\xe6\xeb\xc6\x81+\xcdt/\xf8\
+\xbf%!\xb9n\xc1\x88\x84\xf9\xe5\x80S\xc9\xb8\xaeW\
+\x19\xb2\x19\x90F\xdcPb\x8a+5\xdd\x9c\xccL\xa4\
+\xdd2\xed\x1d\x8b\xc8\xe1\xdf\x1a\x0d\x80\xfbF-\x83\xfe\
+\xc5B\xbd?hu\xd1\x16/\x03zt\xb3\xf1\xbe4\
+\xfd\x93P\x03$\xd3\x87\x84\x9ax\x9a\xffQ@\xf6\xcf\
+o\x858>[\xa8\xf6\xcat)!\x8e\xcf\x17\xe2\xb8\
+\xab\xd0\xa8\xd9\xaf?l0lP\xc5\x15\xe5\x0d\x14\xaa\
+\xbc\xed\x86\x0c\xec\x120\x87\xc9\x09C\x0a\x86&\xeb'\
+\xf6\x01\xa5\x81\x94x\xd1\xe6\xce%\x08\x04\xea\xb0\xaf\x08\
+\xa0\xa1\xc54,,\x14\xca\xfe\x02\x89:\x17\xbe\xf1S\
+\x8a\xbdr]\x09\xacq\x9fd'H|\xfe\xba\xc0\xb5\
+M`\xd0\x8c\x82\x5c\x97\xfcz\x18\x86\xa9\xba\x9f\xf4/\
+\xec\xb7\x16\xb3;\xed\xfd\x7f\x09\xf5\x98\xfb\x03L\x1c\xc4\
+\xd3\xbd.\xf4_\x10j7\x05\xecj4Y21M\
+I/\x0cE;\xe4iG\xc0\x00 q\xc7>\x8a&\
+\x8c\x13\xdeY\x9a\xfb\x18\xa1\xb61-b\x88w\xd5D\
+\xfdp\x89\xd0h\x0f\xd8oG$y\xc1\x82\x0b\x031\
+`\xa6\xc7\x08\xee\x17}d\xa9\xb5\x098\x92xCm\
+G\xc6\x89\xce] TC\x00\xf5\xfe\xf2\x80\x162\x95\
+\xe4\xdb\xb5\x8d^R\xd9\xa8\xd5\xa7\x96\x9b\x08\xa3k\x93\
+\x8ac\xbfZS+.\x07^\xa2\x0a\x8b\x8c\xea\x9fD\
+\x88\xa6w\x09M\xdf_\xfa\x9c\x7fK\xa8\x0e\xd7\xf0\x1c\
+\xa1N\xec\x14ya\x03\xc5\xd0sM8\x01\x83tD\
+\xc8\x9ca\xc0\xd2-\x01\x15[j\xe2\xdd\xee\x0b\x91\xbe\
+\xacm'@\xb0W\xc1\x18\xc0\xd8\xa5\xe9[\x8f\xe8\x9c\
+\x22\xe2'\xf9zVi\xda \xe2X\xcd:\xfc\x18\x0a\
+\xd4\xc6B\x01$\xd3iGlxl`eG\xc4\xb4\
+@\xde%4T\x7fD\x9b\x5c\xbb\x9d\x0e%\x06\x05\x94\
+J\xce\xc3\x94\x1d\x9eg\x19P\xe1\xd8Lo\x17j\x0d\
+]\xb61s\xa6$\xc5\x17\x9dYf\x81H\xaa&\x91\
+,\x0c\x166pO\x90\xd2\x85a\xa3\xa6]\xd4\xf1E\
+\x87v\x0cT\xec\xdcD\xe4\xd5\x1e\xe5\xbef\x83~\x96\
+\x0dZk\x03\x94\xcc\xfd2\xa6\xfc\x7f\xb9\xc9l\xf2|\
+P\x9d\xa7\xd6~l\x90U\x1d.\xdd\xe7\xcb,\xceq\
+\x7f\xad\xfd+\x99\xa9'\xd9 \xffn5\xe8\xb4\x9c\x96\
+\xfe\xa423_\xd0D\xa0\xe5\x06-\xeb@\xc8\x0e\x8d\
+h\x17\x1b\x11\x11<(\xa1\xb3\xfd\xaf1\x8c\xc9\xf8X\
+\x84\xafP:?\xebZ\xac\xaf\xd90\x7fT\xb30k\
+\xf44}\xa3\xb9\xce\xd4\x22p\xbb\xbc\xb2\xbc_\xd7\xd4\
+n\xaa\x9b\xc2\xd5\x16\xf3\xfb`\xa3V\x8a\x88\x98F\xf3\
+V\x16):\xa4R\x01\xb3$\x02G\x84q\x8b\x05\x82\
+#3\xeb\x08\xf2>\x1b7\x814\x07\x90\xd8\x88\xd3`\
+\xf4\xfd\xcbZ8\x19\x0c\x8flD\xaaD\x19\xdd\xcb5\
+T\x8b6\xed\x0d\xb5\xb1\xcaA\xfcxA\xcd \x8aH\
+~b\x15#e\xe3\xa1\x06}\xbao`?\x8b%]\
+\xd0\xb4\xe3\x84\xf2\x8aJ\xb1\xf23\xe7\xdaqX\xa4\xd1\
+\xb6\x80\xda\x8f\xe1E\xd7\x0c2\xd5\xdc\x07\x1cY\x0c\x11\
+\x1b\xa6j:Z\x1c1\xb7u!\x80\xa4n\xb8e\xbc\
+!\x1e\xc7\xf8\x86\x12\x8a\xe1hQ\xb5\xec'\x8b\x81E\
+\x9bF\xb4,\x08\x5c\x11 ]\xdd\xf3\x0fG\x9c\x8c'\
+\xeb)\xbf\x87\xc3\xc6s\xa5\xf6\x92\x00\x80\xe7\xf1\x84\xc0\
+&\x9f\xe3y\x13\x00b\x9c\xccR\xa31\xcc-F\x16\
+\xe6\xd2H1\x5c\xca\x06\xdd\xdd6L^\xe8\x1awS\
+m\xb3+\xc6\x8b\x85\xc6\xe0\xc2\xf0\xc7\xd1\x22r~\x91\
+\xd08\x04\xa8\x87\xcf\x96.\x90\xf9CT\xd1\xafS\xd3\
+\x00\x87\x15J;\xf3|\x15g\x84g5P\x16qF\
+\x99\xee\x06\xeb\xfb5L\x99\x85\xfc\xb9\xc5\x1c\x90\x98\xb3\
+c\x0b\x93\x0b\x8d\x06\xfes\xa0V\x92\xa5\x851\x06\xe5\
+y;\xa18X\xa3\x9a\xf8\x17\xc6.=Y\x02\xc5\xf3\
+\xc1a[\xcf\xf3\x90\x00\x06\x81\xbbZ\xa3\xfe\xdf\x8e\xfa\
+\xec\x11\x83\x86\xfd\x94qB\x09\x0a\xeb?\xeb6\x81u\
+\x02\xcd\xacwPF\xd9\xaf\x10\xdb\xa4T\x80\x84\x01\x81\
+\x01\x02\xf0d\x06\xa1\xdcC\xb1\xe5\xfc\xb0\x0f\x18\x87P\
+\xf5\xd9\xa7\xb0#L%\xc7 \x83\xc1Q\xc4|7o\
+\xda:\xfeFh\xdaV\x92\xa1f?\xa7Fy\xb6d\
+\x00m S\xf1\xa1\xd6g\xa0\x04*;\x19[;\x0c\
+\x88\xafe \x8a\xf9\xc3\xfc\xa7\xdd\xae\x03\x89P\xd1s\
+\xde\xda\x8ea=\xc2a\xce\xae\x22n\x07K\x86\xba\x7f\
+\xa5P\xb56\xfa=\x84&\xb0\xc0u\x11\x90`|\xc3\
+\x04p\xdb\xbc\x1cg|\x9e.\x03\x888\xc24uf\
+\x9b\xf55\xd5\xf7\xdd\xde/\xf7E\xda\xefZ+\x84y\
+\x98\xed\xf5hOL\xc9\x9f)\xcb\x93\xc3F\xc7 3\
+\xff\xb6W\xe9J\xc5\xba\x90\x99S\x18\x04\xa8\xdf/j\
+\xd10\x8b\xa51^\xa6_\x17\x9a.\x01\x16\x7fK\xc7\
+\xc5\x0ep\x9e\xe7\xce\xa3]\xd3\x7f\x5ch\x02\x15\x9c7\
+\xd7G\xc9\x00%\x22\xb4O\xc5a\x97\xc3/\xd5\xf9\xe7\
+\x0a\x0d\xf3\xc0v \x8e\x00]h\xfa?\xf47\xf5\x7f\
+\xa8\xed$\xb3-\xdfK\x84Z\x22A7\x9f\x0cl9\
+PF\xdb\xef\x92\xb0\x95c\xf5\xc4@<\xe7\xfe\xa7B\
+,S\xcf\x12\xe2x\xb1\x10\xc7\x1f\x04~X\xb4A\x8a\
+\xf8!\xf353\xc6\x04|dg\xdf\xe5y\xfc\x09'\
+t\xda\xbe\xf0\xacG\xec\x1b\x0f\xd8~g\xbc\xc1\xd0!\
+\x80\xc7:\x8a\x9d\x0f\xe3\xc3bz\xfdzB\xcdT\x93\
+\xd9O\xd5\x7f\xab\xbfg\xc0\xcc\xe3\x12F\x22\xdd\x0d\x8a\
+\x9d\xf5\xda\xa64@\xeb\xed\x8b\xaa\x18`i\x078m\
+4\x9bHh\xe27\xc0 \x22\x00\xef\xcc\xf1\xf4t!\
+\xcek\x1b!\xcc\xa5O\x05\x8e\xab\xe2~\xf3\xe7\x0a\xf1\
+\xb9/\x08\x0dE\xfeB\xa1a6R;\x7f\xa9P\xc5\
+\x90\xb3=/\x8e*\x22\x9d\x94\xe8\xa8\xf4r\xb7\xa6\xdd\
+\xa3\xc7U\x06\xc8g\x18<Y\x8aD\xc9\x12\xa2\xe9\x04\
+\x8e\x09\x04S\x02\xec}9\xf7\x05\x18\x06\xec\xbb\x9f\xeb\
+N/%\x17\xee\xc6\xd1?(T\x06{\xb6\xb9v\xe0\
+w\xfa\xee\xc0\xc1M\xdbRg\xd4\xe9j\x80\xdd\x08\xc3\
+ \x99\x91R\xda\xda\xa4&\xbahG\xcd<\xa6\x04\x07\
+\xad\x84\xc2\x90=\xb8\xd1\xe4qiJ\xceG'x\xb1\
+\xaf\x92QD\xa2\xc4\x01\xcd\xe9\x07\x85\xea\xe7\xf2\xfc\xb2\
+\xe4\xd3vJ\x11\xcf|k=\xbf\xe9\x1eB--\xa5\
+\xb4\xe7\xbf\xda\x98\x7f\xaeik\x88\xc1;w\x92\x10\x03\
+\xe7\xd4\xc0)\xd5\xa1\xcf\x09\x86\xe1\x82c\xa9@A,\
+\xd0\xc3\x1a\x81\xd5\xab#3\x7f\xb2P#LDL\xfb\
+e\x02K7\x13\xcf\x11\xb8\xd2\xb7\xf2\xf6Z\xcb2\xbc\
+P\x88\x7f\xbe%ps\x15\xf9K\xaa\xefj\x81\xd5\x1b\
+J\xde\xef\x0bi*k\xb0\x0a5?6\xc6\xf9\x1d\x84\
+&\x93M\xe4\x1f\x91#G\xb8\x88T\xa6*\xa43\x8b\
+\xd9\x9d\x00\x87\x1bj\xae\x88\xd5'T*{\x19\xe6\xb7\
+6\x03\x13\x95I\x22\xbcLhe\xa4/m\x1c'j\
+\x5c\x1e,\xfa\xcf\xe3\xef~\xe5\x7fPX\xfd\xc0\xfau\
+\x84\xb8/\xb7\x09Ul\x22\x17`2|\xb4\xc9\x802\
+\x8c8\x84\xa9\xf5\x88\xbcd\xfb\x22D\x1b\xed\xb8g_\
+j\xda\xe78\xf2\x98\x0e\x17\x86\xc5\xacc\x8a\xa1\x81\x98\
+\x93\xc7\xcd\xf08\xc1\x99\xba\x9d\x1aG\x15J\xbd\x99\x16\
+\x19\xc1\x87\x22\x89a\xe6Z\xdd\xf2|O\xae5h\xb4\
+\xc7KJ\xb4k\xd3\x99hi`\xa9\x00a_\x07\x88\
+\x9avr\xc5\xcc\xbb\xb1a\x84PS.\x83\xed\xb2J\
+\xd1\xce~\xb9\xa7\x8e\xaa\x9c\xe5y=P\xdb\xc3\x95|\
+\xd1-\xf5~\x94\xcc\xc9\xe9\x8da\xabQv\x8b\x17\xf0\
+]\x1b\xf1:Q`7mJ \xe4f\xed\xdfd\xac\
+D\xb1\x5c\xd7\x86\xc3\xb9\xde\xd8\xee\xf6\xc6||\xd3\xee\
+\x8e\xebd\xa3\x9b\xad\xa5V\x98e\x05G\xca/n\x0c\
+$JR\x9c\x89\xcb\x00\x12\xdd\x15\x88\x8c\xd3\xaf\xd9\x06\
+H\xa9Uz\x89\xc5jNm\xda\x15i\xa1[\xa9\x19\
+\xff\x9c\x07\x8e\x01\x14H6\x5c2Yl\x18\xcc3\xce\
+\x9b\xcc\xd6b\xa9v>~\x9e\xd2\x99\xa7\x16\xdd\xf6j\
+0\xdb!\xc5A\xa3\xc6.kF\xa9u%\x13\xcb\xb8\
+\x125\xf4\xd2f\x01\xa6\xcb\x02*\xc6_\x15\xaa\x08e\
+2\x7fd~\xfe\xdc\xb5\xcbg4\xb5lP\xa7\xc90\
+\xb9\xbbB\xaa\x05\xdb\xe1J\x95\xe6o\x8c}\x8a'\x7f\
+\x18k(q`3c\x89a\xc3}\xc3 \xfe\xac\x99\
+J\x1e\xbf\xc3\xd7L\x05\xb6\xd6D\xf6\x97\xe69\x10P\
+$\xc3\xed\x083\x0c\x0aD\x1333Bf\x9d\x08\xfe\
+\xd2v\x906vfx[g\x02`\xb0\x90Y!\xc3\
+\x09c\x88}\x83\x0d\x08\xc7\x98\x00\xc26\xa6\x0c\xce2\
+\x03\xf8<%OO\xb1X\x22\x0e\x1fm\xa8\xa8-D\
+{\xe1\xf9n#\xf4x\x8b\xa9y\x9f\x98|w\x14W\
+\xccu\x9a\xf5\x8e\x8c4\xed\x16aZ`\xb8`\xa0\xa0\
+\xe9\xe1\x1a\xbet\x18y>d@\x08\xe0@AG\x94\
+\x0d\x07\xf6\x19v\xb40\x88L\xd5O\x87\x94\xc0\x00\x0e\
+7b\xaa3b\x81)\xca\xb7\xe2\x8ca4\xdbg\x9e\
+\xefc~\x91a\x80b\x0e\x85\x1c\xcd\x0e\xda\xf5Yu\
+\xb8\xf4\xfd~u\xe3X/\xed\xfb\xc1}q\x807\x1d\
+m\x02\xb9\x04d\xc9`\xef\xee\xcc>\x99\x5c\xf67D\
+\x00yM\xe0k\x96q\x01\xf3\x87\x00\x00\xe3\x0c\xc7\x95\
+\xfd\x02q7\xf6E\x98\x00\x04\x00\xe8b\xe3\x006\xfb\
+cR\xfa\xa9\xe1g\xbd\x22\xb3\xea\xf6N\x19\x18\xb3\xca\
+r^\x1fZ6\x04*Y\xc7\x19\x9f\x18\xb0\x8c\xb7\xd9\
+\x12\x02\x9e\x1f\xfb(\xf3\x9d\xfb\xc58#S\xef\xfd3\
+\xfb\xb8\xa3\x0a\x8e!n\xd1\xe4\xdcg\xdfU {d\
+\xa3b\x8f\xa8\xc9\xef\x0eUu~r\xb7P\xed!J\
+\xac\xb8\xbf)z\xea}a\xb8_h\x984\xd8Q^\
+\x8f\xfbU\x84JmM1J\x02\x03\xb3]``\x02\
+\xb0.\x13\x00\xa2\xa6\x1e\xc6\x1f\x01@\x972\xd0\xd7>\
+\xd7o\x02\xcd\xdc?\xee3\xed \x19\xafP\x8d\xa9\x85\
+\xa7-\x18j\xee\xdcW\xd7\x1e\x13\x18e~\xf5\x97\x0b\
+\x95)\x156\xc6\xb8OZ\xa3\x88@I\xe1\x8d\x899\
+\xb6\xd2\xd8\x97\x9b\xef\xcb\xef\xdf\xc5\xd4\xef\x03,\xfa\xb7\
+\xe9h\x17\xa0\x9eO{\xbd\xfe\xefBcObw\xf1\
+|(q\xb5\xe8q\x09t/\xec\xd2\xd0\x13\x9a\xf7a\
+\x18\xd0?\xde\x0e\x5c\x7f\xb6Pk\xff\xa1\xae\xd3\xc5\xa1\
+\x94\x98Ok\x89%m\xca`\x0ad\xe0AZ\x01\xb2\
+\xd7O\x14\xe2\xf8\xc8@\xcc\xdf~\xaf\x80\xc4\x01\x17\x04\
+\x94@\xdcG(\xbf\xb3\xa1~'\xb5@\xec\xf8\x8bO\
+W\x18\x08\xb7\x0a\x8d=\xee\x12\xa2~{\xa1h\x1a\x94\
+q\x99\x01K\x18#\xd8\xa9\xb3\xdd\x84\x98_\xecs\xec\
+3\x04\x066\xf3>\xe9\x12\x97\xbc\x1ft\xb5p{\xc5\
+\xc2\xfcX\xbci\xc3\x87\x06\x01\x1aX\xd6L\x88\xab+\
+\xd7\x87]\x94\x22\x8d\xba\xff\xdb4\xed2\xe9^\xe2\xf5\
+'\xbbf9\xd0\x95\xe2|'\x07N\xaa\xf6\xfc\xf4/\
+\x823\xc0\x0aL\x1d)\x84\x19u\x92\x10\xaf\x7f-\xc4\
+\xe7\xdf(\xc4\xeb\xa3\x85\xcaH\xcc\xd2N\xf9U\xab\xd5\
+\xf5\x8e\x92\x8b\xec\x9aB\xcd\xbe\xc2e\xdf\xaf\x0eha\
+\x84]\xd5\x94\xdap?\xbc.\xe68\xf3\xfa\x92\x22\xbb\
+\xeb[\x83\x87\x00\xeb\xdb\xc6\x00\x5c\xae\xe7\x04\x10\xd0*\
+\xb1F\x09Z\x12\xc9du\xe9v\x8a\x04\x22\xda\xe8\xfb\
+P4\x9d\x96\xf3\xfa\xda\xbb\xcd\xb3\x18\x1e\x1f\x11\x9aR\
+\x87\xe3\x84&\xa1\xe2\xae\x11\x88i\xa6\x1dH\x06\xfeS\
+\x92\x19t\x1b\xea\xed\xebu&#\xd8\xfb.\x9a\x1d\xe9\
+Wz_MQ\xc0\xf7\x0b\x0d\xc3|K\xa1&\x88a\
+\x1c\xa7\xb6\xc6\xb5B\x0d<\x90pf\xfc\xc3\xf8\xa1[\
+AjFQ\xda\x0f\x13\xd2\xf6\xf5\x02\x22\xec\xfd3\x02\
+\x9b6'\xe6vZ\x19\x11\xd6\x02\xff}?\xc8\xbf\x99\
+*}h\xadA\x9c\xae\x1eX\xcd\x19\xe7\xc7X\xc4\xec\
+\xe3\xa6\xea\xbc\xaeRi\xcb\xc2\xfe\xcc\xa6\x16\x0b\xd1.\
+(\xe8\xdaX\xe8O=4\xff\x8eX\x9b\xdb}\x91!\
+\xed\x9f'\xc4\xe7\xfe\x13x\xa8\xf6\xfb&b\x8c\x98\x17\
+\xb5(\x19\x09d\x83g\xa0A\xdd\xb2XB\xff\x0a\xa1\
+f\xd4\x93\x82\x22\xaa\xe8\xcdM\x1b\x18\xb9\xe7\xa75\xea\
+\xe6P e\x0e^mG\xfa@O\xac\xb5K\xdb\x8c\
+7\x89\xaa\x8c(\x0cb6\xf4\x87\xcc\xf6rn'\x91\
+\x1b\x943Xs+\x04\x96\xaf\xfdK\xb3m\xde\x0cU\
+-\xd5f\xadZ\x9b\xfdeU;\xa4\x0d\xe5{B\xa3\
+\x8e\x8e\xa1B\xfb9\x0c\x15\x22\xd9\x88\xed\xe0\xd8\xb2\xc0\
+\xe2\x90\xd0g\x5c%\x18\x9b6\xb5\xa9\x18\xb88j8\
+$\xf4;&\xd3\x80:\xfb\xd9BS\xf3gqJ6\
+\x1a\xda\x9c\x90\x89%s[\xf2J\xab9\xc2\xb8\xbe#\
+\xfaok\x0c/\xa8\xea\xaa\xe9\xffE-=@$\xa8\
+\x8c\x8aE\xbc\xc1\x1d\xd78\xe6\xd4\x18\xd2V\xc8\x91\xf2\
+\xe1D\xa1\xd9@T\x9b~pC\xc5V\x84tw?\
+\x87?\xd46D\x88M\x16\xf3\xfe1\xa6Tm\xfb?\
+\xc4\xc5,\xeaQ\xcc\x1aQ\xe6v\x15*\xa5\xa9{k\
+\xe0m\xce\x84\xada\x03q\xde\x01\x81\xfbg(\xca\x0b\
+\x9a\xcc\x0a\xbf\x8b\xf8\x9b\xdc\x84\xbf6\x1b'\x1b$\x01\
+\x00\xae\x8f\xcc\x9c\x0d\xafak\xa1a\xd0(\x9f\xa3\x8d\
+\xe3\xedB\xa3j\xcb\xef\xf09\x1c{\x1cz6^\x0c\
+|\xfe\xe3\xfdY\x0d\x0a\xda\x90\x9az9\xdc x\x1c\
+>\xa1F6\xfbo\x0bV\xf1\x7f\xb5\x99\x03\xef\xaf\x86\
+t1\x98\xbe\xe6\xf6d?n\xc4\xa0\xe4\xee\xde\xe1\xdf\
+[\xaa\xe9S\xabR\x99[<\x8e>SE\xd3R\xe3\
+\x83\x00\x0c\x8e\x82\x98M\x87\xd5\xee i0AA\xb5\
+\xe3S\x98\x15W5\xeb%L\x0d\xbe\x8f\xfb\x85!\x83\
+C\x83AJ\x00\xcd\x19\xedt\xe8p\x94\xe9\x9b\x0d\xa5\
+\x16\xc7\x14\x87\x95\x0d\xf8\xc8\xc9Q\x93\xa3\x9a\xdfc\xbe\
+\xc2\x80\x22C\xb7O\xe9#Q)\xf8dTq,Q\
+\xc1\xdePh\x0c{\xd4\xe6a\xf0 \xfeEf\x1c\xc6\
+\x11\x0e\xafE\xf7\x10;\xcc\xfb\x82c\xb8\xda\x7f\xf7\xa3\
+\x87\xda\x96\xbfg-\x94B\x14|J\x13\x98$ \x81\
+\xc3\x8dax\x85k\xf4\x99\xa7\xdc\x7f\x02:8\x9ck\
+\xd9\xa1\x86i@\xc6\x89\xfb@&\x83Zx\x0c\x1e\xfe\
+~\x033?p\x98\xb9\x8f\xb3\xcc\x80\xf5\xed@\x9a\xd2\
+\x9a\xef3OX\xd78r\x1d\xdcG\x1c,\x1cw2\
+tP\xcd\xa9A\xc7\xf1$ C_m\xc6\xc1\xd3F\
+\xad\x8c\xec\xaf\xbd\xc0\xeb>\x81\x1f\xee\x0f\xa2\x8a\x04\x9a\
+\xac\x1e\x9f\x81\x22\xfe\x9d\x00\x0f\x01\x0aJ=`.\xe0\
+8\xe1\x88C\x85d\xbf\xe6\xba\x08\x90P\xaa`\xed\x8b\
+\x14\xcfd\xff\x82i\xf7\xff){\x13\xb0\xed\xc6\xea\xfd\
+\xff\xbd\xf7\xf3\x92\xccs\x99\x87\xc8L2\x94yxe\
+(\x92!\x222\x95\xc8,\xf9\x16R*S\x86\x92(\
+Q2K\x99I\xc9P$2Ef\x09\xa1\x0cEe\
+\x0a\xb9\xf7\xfe_k\xed\xf3\xb3\xaee\xfb}\xff\xbf\xe3\
+\xf7\xac\xe3\xe8\xe9\xf1>\xc3}\xef}\xed\xebZ\xeb\x5c\
+\xe7:OF\xac\xd8\x07\xd1p@\x0bF\x89\x11*\xf4\
+\xb1\x0eq\xe5@\x04\x12M\x1b(\xfe\xa2\xc6\x8e\xd6\xb1\
+H\xeb\x0a\xc0A\xeb!\xb96\xf4\xeb\x95\x19z\xae\x1f\
+\xf7\x83}\x17f#\xccIu\xfcC\xab\x88\x112\x98\
+\x0fJX\xc3M\xe0\xbb\x12\xcb\x85\xa1v\x8c\x9e\xef'\
+\xfa\x86E\x88\x85\xf2{a\x22\xf0\xdcp\x7f\x19\xc9\x80\
+\xe2\xbd\xa7E\x02V5\x22\x14\xe73\xb6Y*\xc8Q\
+A\x8f\xf7\x095X\xcfK\x88?2S\xfek\x8b\xf4\
+\xba\xb8oC\xc6\x03\x1dtF\x98\xe8x}F\xfb\x93\
+F\x04\x02\xf0D\x5c\x8dQ\x22F\xd5\xa4Q\x12\xf6j\
+\xb2\xef\xe3~\xc7H&\xcf\x11\x22~r\x81j\x1f\xb6\
+H\xfb\x0f\xe2}bj\xd08\x09f\xe9\xfc\x02 \xa4\
+\x95R~\xbb\xff\xbdI\x07*\x1f2\xa6\xc9G\x92;\
+\x03\xb6\x820\xc5`B \xea(\x06\x17\xa3\x0f\xcd\x9c\
+%\xe6\xa8\xd4c\xa8\xca\xa3wJK\x05\xc6\x81Fn\
+\xa3\x83\x0d\x83\x05&\xc4\xab\x12%T^\x886B\x88\
+\xfe\xe1K\xae\x0e&\x00\x91\xdb\x98}R\x9d\x5c+\x9c\
+\xb7(\xb1\xb9\x98\x00V\x10\x1fkQ>\x9fU\xe2\xec\
+\xa4\xe5$7\x01\xb4\xbe`\x04L|g\xe2\xc4\x89\x13\
+\x9d\xb9u\xb8\x8d8\x96\xdc\xa6\x1f\x8d\xb9E\xf7\xeb\xe0\
+\xde\xe6\xb0\xdbO\xb6\x7f\xac\x07\x18\xc9\xcc\x82\xb3o\xb2\
+O\x0f\xf3\x8c\xc5\xa51\x02\x83G\xfb_)\xf7|\x94\
+\xc3<\xa7\x5c\xab\xe9=.+[\x19\x1b\xf8\xb5\x8b\xca\
+O\x01\xd7\xdch\x91FDpe\xd09\xef\x05\xdd\xa4\
+\xb4^4\x92\xeb\x1dg\x1bi\x9aO#\x11\xbfQ\xfe\
+\x84\x86\x0e\xeeR\xcf\xfbPX0\x19c\x14\x8c\xd1Z\
+5\xa4P\xbd\x8f\xc2_\xe2\x9a\xa1\xa9\xc6h\x13v\xc4\
+4\x0e\xe4REG\xdb\x0b\xca-\x94/\xfd6i\xda\
+\xa0-e\xfb\xc1Y\x12\x7f\x9cO\xc0\xdd\x91\x95Y\x1b\
+\xe7\x09b\xb5\xd4\x950n\x01v9w\xb5O\xa0\xa1\
+\x11\xea\xff\xb2\xb5\x0d\xfb\xcf[,*\x00\x8c\xa8}\xd8\
+\x96^oQ\x1b\xc3L\xbe\xb8f\x831\xdd?Sb\
+\xd7\xc4\x8c\xd4\xbe\xd8lf\x91\x18\xcd\xbf\xedn2*\
+}\xbb\x89Er_b\xd4R\x8d\xc9\xd8\x97\x10\x87\xae\
+\x1a\x01\xbd\xc6\x09L\x13\xfd\xbd\x89C,\xca\xaf\xb9\xd7\
+\x22\x01\x1d\x1a)\xe8\x0e\xb1H\xae\x14P\xff\xe5\xae\xd7\
+m\xa3\x86/\x22\x8e\x02<\x10sD#.\x5co\x10\
+\xfbU\xdd6y\xbck\x89\xcfj\xb6\xeb\x09QS.\
+O\x94P\x9b\xdcx(\xd9\x14\x99\x1d\xcc\xe1\xc9\x16P\
+\xb3\xb7\xf1\xf5\x19\x12+Q\x079f\xd1\xcdOs\xfb\
+\xb4\xe1\xaaS\x05\x02\xc9\xacdP]%\xf6\x16\x07\x87\
+\x95\xd7\x97'\xb5U-\xc0\xf0M\xd5L\xb6/\xe3Y\
+S\xe2\xae\x0b\x1a\x1b9\x880\x1d\x0cf\xd4E\xf1\xa5\
+S\x88_)T9f\xc0\x99\xcd\x0a?W\xc4\x08u\
+\x90\x052%\xaac\x88;\x0d\xc5\x92\x84\xecFbA\
+B\x01\x85\x17\xb5c6~\xd9\x0d\xc6,\xd1\xe1%\xbe\
+\xa1\xce\xf1\xeeJ WL\xb3x\x86\xf8\x94\x03\xa7\xfd\
+P\x89\xf5\x93\xbd\x8f\xcd\x92?\x9afY\xb0\xc9\x9a\xcf\
+\xc9\xa8\xfd\xac\xe6\xa6\x9a-\xfb@\x7f0{Bh\xe5\
+\xef\x7fS\xe1F\xc1\xa8\x0f3\x891\xb1\x1aG~\x7f\
+\x90\x12|\x8d\x16D\x87Y\xfe\xc9!\x12Da\xc4\x01\
+\x04U\x8aY56\x88\xbf\xf9\xb4\xea\xa4\xf6!\x8b\xaa\
+N\xdbMWbZ\xad\x93\xb9\x92\x88\x8f\x0a\xf6\x98\xdd\
+\xd2\xc1\x1en\x166S\xf7\xb4w^K\xa8\xa0> \
+\x15\x8a\x96~\xdeW\x0b\x17\x80-6\x9a@\xbeE\x19\
+u;\x96{\xebHG\xac[\xeb'>+1\x92_\
+$\x91.\xcd6y?douz\x9e\xa9*\xd3\xae\
+!0%=G\x96V\xaf\x95\xec\x86\xa0H\xea\xbaD\
+\xe2\x0be\x9b\xc2\x0d\xf1@\xa8\xfc\xc6<X9\x15\x84\
+\x96v\x1c(\x00\xe4\xe5\x94`\xd3\x89\xe7\xb3D\xd3\xba\
+\xdbJ\xdc^\xdd\x1f\xba\x1f\x9485u\xc0,]\xff\
+\xa3DJ\xeeO\x00\x1e\xeb\x9fN\x16@\x10\x072\x09\
+(\x9d\x0d\x0a\x1a\xbe\x0f\xc6\x0f\x1f<_*\xdc\xd1\x98\
+\x08q'\xa947\x9f\xb7(\xeb\xe6\xbe\x12\xf7\xaa@\
+}]\x9d\xb2\xf3\xd3z\xc6\xc5CT\xf0P\xbfF#\
+B\xb3e\xae\xaa\xbf\xa8\xd6\x97\x01usZT\xa6\x12\
+\x09\x9f\xdba\xbd*\xaa\xfd\x87\xc4L\x98/Q\xc1\x8e\
+\x10\xe3\x05\x7fVf\xbbIH\xf4~\xa1\x00\x07\x80\x82\
+x\x0e\x09\xa0\xd4k\x1d.\xed\xd2l\x1b*\xda\x88\x0d\
+~K\xa3A\xb3C\xc1WGli\xd962S\xcb\
+\xbe\x08\xf0\x02@@A\x0b0@!\xc2\xc6\x02P\x84\
+:?\x05\x0f\x9d\x16>8\xe8\x19q\xe13\xfb\x1d\x9d\
+\x90m\xa52<\x04Fx]\xec\xb3\x14\x92\xdcGD\
+\xe7\xde\xa7\xdf\x03\xa3\x08 \x80\x04\x83\x82\xf2\xce^3\
+%l\x8a\xa6\xd3\xef\x99cp\x9d\xd8\xb7)\xdc\xb8N\
+\x14lPU\x01\xaa\xb8_0#:]\x07\xae\x0b\x05\
+,\xc0\x00*\xe6\x00\x03\x00\xd5\x14\x86\xec'\x00 \x14\
+\xfe</\x5c\x17\xf6e\x802\xf6\x05\x9ek\xcdr\x93\
+p\xcb\x9c\xd6\xaeg\x7f\xfe\x080\x0f\xea\xe9\x05*\x08\
+yn\xff\xadQ\x87/[\xa4\xf5\xc5u~\x87\xd6/\
+v\x87\x14\xc2\xa2(\xc7\xc8\x01\x851L\x88\x05\xfb\x19\
+\xe8H\xb8X\xbf\xf2\x1d\x8f\x19R\xedk\xa1\x0d\x03\xe0\
+\x83\xfd(3\xaa\xf8\xc1\xebs\x00|\x14\x9e\xd22\x88\
+Q\x04\xf6\x19\x18\x04\xd8\xf1Q\x103\x03?|N\xf9\
+9\x9e\x0b:\xf6\xac{\x5c\x1c\xe8\x08\xb1~`\xc8\x0c\
+\xef+\x9fa\x8c\xa8\xb1\x10Ty\xae'\x098bx\
+\x5c_\x01\x16\xe5\x0c\xdf\xcc\x81(\xf6y\xed\xdf\xa1N\
+O'\x1e\xc0G\xeb1\xect5\xeb\x1f\x057\xcc:\
+1\x0bB-[\x05w\x88\xfd\xc1\x1c\x02`\xb9\xcb\x22\
+1n\xf4\x5ct'Y\xa4\xd7\xc7\xe8\x056`\xa2\xa0\
+\x87\x88\x17\xeb\xdc\xb4+\x96\xa8\xcc\x9a(\xfc%Z\x1a\
+\xef\x0fF\x98\x12\xed\xa0P\x03\x94\x00\xcc\xf1\x1c3\xa2\
+\x80?\xbcF>b\xddp_\x01\xfc\x04\x88\xfb\xcc\xfb\
+\x89\xf5\xdc\x8eQ\x0d\xa8\xfcz\xff>\x1awp\x1a\xfd\
+\xa2\xb0\x96MZ\xb3Q\x89\x0f\xa7Q@\x89\xfb\xc5\x08\
+\x864\x8c\xa2\x83,\xf10\x00v\x18z\xa1\xc9 `\
+\xc6]\x8b\xf6\xa9\xdaPA\xb1\xc6n\xce\xf2\xcaS\x13\
+u]*\xfd\x91\x87I#\x8a\xd7\xdf\x5ck!F\xc1\
+\x15\xc9\x06P.0\x00\x0b\xf8\xb7\xfb`\xed=U\xa4\
+8|\xce\x9b\x92\xf7MN\xa3W\x88\x8e3\x1b\x0e\xe5\
+\x1e\xb7\x1a\x1a=\x8cv\xf1\x1c.\xac\xfd\x99\xfd\x94u\
+\xc2\xbe\x0c\xe04\xf7[\xed6\x83\xd9\xa6\xef\x0ff\x85\
+F\xca\xe2<A$\x16\xfbo[o\x89rM!\x1b\
+\x8c\x17\xed\x8b&Mh\xe2\x84\xcd\xdf-\x12S\xc8\xca\
+\xe1\x9d\xd5()\xeb\xb6\xbd\xd4\xa2|}\xb8E\x15\xbd\
+5\x18\xc7\x80\x9cR{\xf8\xe8u\x8c\xd0\x92\xffm\xe5\
+']?\xdazlu\xc3\x020ln\xb0\xa8\xa3\xb0\
+P\xc7i,\xc1\x14v\xb7\xc0q\xb5\x03\x8f\xc2\x1f\x17\
+5\xf2C\xbb\x1a3\xd4s\x0e\xbb9\xe3c\x1bs\xc0\
+\x81\xbb\xdf\xa4\x06\x10\xe2\xbf\x88\xed\x22\x16,M\x11\xf2\
+\x09\xf2\xf8\xb8\xbf\x02\xc2)\xfc\x9b\xa9,\xea\xfe\xd0|\
+\xc5\x221\x17T/F\xe7\x1c\xe0\x98\xbcR\xeb\xc0G\
+\x00\x0e\xaa\x8c\x96\xf1\xbf,t>N\xa9\x00\x16n\x1a\
+1*5k_Ob\x93\x8d\x0bA\xb7V\x7f\xbd\x10\
+S\xc6\x0d\xa4\xbb\xdb\x22\x89H3\xaaaZ\x03mm\
+\xe4\x9a\xb9\xa5\xdb[^h\x91\x18\x02j\x04\xc7\x88\x11\
+\x0d\x09\xec\x15W\xb5H\xe7\xfc\x14\x89\xbd\xb2?\x93\x07\
+`\xb3M~\x86\xbb\x97\xdc3\xba\x03,\xcc\x06pe\
+\x8bZ\x90\xbb\x0a\xec\x94:\x93\x1f\xaa\xa2:p}2\
+\xe2\xdf\xea<\xa5\xc4\xc0G\x02\x8eR\xe7ow\x89\xb3\
+\x9d,\x11\x82\x1b\xabm\x1f\x22hQ\x00#\x96`\x94\
+\x97\xdd\x92\xa8\x08\x89\x1aTrT\x12\x95\xd0\xb0\xc1p\
+A\xc3\xa6\xcc\xd2\xc4\xbf&\x15X\xeb\xf8\xde\x9a\x12\x15\
+\xa8\xfe:X\xc2\x16G_\xc7\x8c\x18b\x22\xb2]k\
+\xee\xb3\xa8\xcc\x05\x90\xdf8\xe8D\xd9\x0d\x9fj\x12Y\
+!\xae\x81\xa4CU\xa5SfH\xe5\x0cB\xb4\x8e\x94\
+\xc8\xc73\xc9^\x88\xce\x1f\x0f\xbe\x12\x04\x1f\x09X\xbc\
+R\xce\xcd\xc4\xc4\xed\xcd4\x13\xe7\xb3\xc8;\x95\xdb\xf3\
+\xbe\x12\xcbi\x86\xa4\xfc\x9dv#\x8b\xf2\xf3\xcf\x96x\
+&Q?\xa1..\xe5S\x9e\xd1\x19vB\xcdu}\
+A\xee\x1b\xe6\x90RJ\xa2\xc3,\xad\xc4j\xd8@\xc3\
+7W\xd4Z\x1e\xc0\x185@e\x5c\xc8\x1e\xea\xc3t\
+\x04\xba\xf5-\x92(\x8c(;1\x8aa\x0f\xd0\xcf\x92\
+-\x90\xa5#\xbb\xa6\x83\x00\x0d\x02\xd9\xf8\x8c\xe6\xb3H\
+j\xe3t\x84\xe9\x14|\xcbK\xa5\xb7\x8b+\xa2\xc6\x0f\
+%\x91Y<:>t\xce\xd5\x81\xf7\x02\xffK\xa2\x8a\
+n^7j\xec$\x9d(|y\xda`\x17\xf0\x9ef\
+\xbd.\x00\x0b\x06p]\x94\x90T+\x17?\x91\xfe\xbe\
+\x11\x95\x7fU;\xd3\x91P\xd2\xc1A\x84\x8fY*D\
+GH\x9c\xf9\x18\xce\xa2\xf2\xf3k\xba\xaek\x0f\xbc<\
+\xa8\xbfsRu1\x08w\x87}K\xecS\x91lT\
+\xb5Aj\x11)\x8c\xc2\x06\xca\xaf\xdc:\x82*M\x02\
+\xd9\xbaNk}\x1dP\xb3I\xc0\x00\x04\x10yA\xdd\
+\x1a\xd7\x05\x98G:\xd8}Fv\xeb\xea_\xed\x89\xe1\
+\x9f\xc5d\x99:%\x9a\xd80B\xa5E$\x09\x9b\x1e\
++/6L\xcc\x06\xb4QVs\xb9\xb3(d@\x82\
+\xd9G\xa2\xd3r\x87\x00D:\x5c \xb7\xeco\xea\xf8\
+\xbc\x8d\xfa\xcf\xa8\x07\x94x>S\xa8=\xa9D\x9eD\
+EL\x99P{F\xc5\x1d\x86\x12\x1d-f\x0d\xe9\xd0\
+S\xf8P\x98R\x88\x90\xf0\xc0\x88\xe1\xb9\xa0\xb0\xa4\x90\
+'qB\xe4\x8d\xd7\xc7L4\xa24\xcc2Ci\xd6\
+\xc1\x1b\x85\xe1\x07\x85\x98\xf3\xf7\xe9\xf42\x8a\x85H\x11\
+\xb6\x98\xd8v}C\xa2;\xf8\xf4B%Fl\x0f\x91\
+4\x0a6\x18`P\xe7)\xf8y\x9f|\xa6S\xcd\xeb\
+\x07\x10Y@\x80\xc6\xa0\x83\xd1Q\xa8N\xd1\xdf\xe5\xf9\
+z\xf1\xad\x22o\xe5\x1e\xf7\xeb\x98\xebI\x82:\xd4\xf8\
+\x80\x8a>\x9c\xc9\x07\xa8\xe0\xba\xeb|\xe0\xdc\x8e\xce\x11\
+\x94u\x00\x81\xa5\xf5\xbed\x83U\x8a\xca^<\x8c}\
+\x85\xf3\xf1\x8e~\x86=f\xb6\x17\x16\x83\xe3b%$\
+\x97wWtW$\x0a0\x85\xc8\x03J\x5c\x00`\xa1\
+\xe8\xf2|\xa3A -\x8ax\x9d\xb8sP(\xf3\xdf\
+\xb9\x1e\x00\x89\x00.\x14T\xbc_\x5c\x05\xf8=t\xe6\
+\x01\xa4\x958\xb1\xfeH\xec\xc2F\x94\x113:\xeb\x9c\
+\x03\x8c*\xb0>(\xec\x87\xf7\x01\xc0\x94\xe7\x93\xfd\x8a\
+D\x8c\xf7\xc1\xf7s\xee\xf2{\x19\x99\xa2S\xa4s-\
+\x18\x87\xf2\x9fg\xbdG\xc2\x0b\xc5\x1e \xeec\x936\
+\xf5\xe7\xe8\xb2I\x97\xfaH\xca\xd0\xa6P\x89e\x8c\x08\
+\xe0\xde\xa3\x99p\xce\xe3H$\x01\xc0T\x98#\x1a\x1a\
+\x22\xb2\xf8^\x03\xac\xe9\xfa3*\x1a\xc0\x04\x8d\x074\
+\x05\xe8D\xf3\x9c\xea\xe7\xa0\x18G\xc3\x87B\x8e\xf7\xc5\
+9\xc2\xba\xa3\xf0\x97\xd6O\xacc\x01\x85t\xb6c\xbf\
+\x11C\x09F&\xcc\x85\xd8\x7f\x19\x0d\xa4@\xc4\x8e\x10\
+\xe6\x8fD-G\xaf\x1b\xf74u\xda\xe8L\xdf\xdb\xfb\
+\xb3\xc7\xc8\xa7\xa8\xf7\xb1O1#\xfc\xf0\xe8!\x1fm\
+@\xcb\x04w-=\xa7q\xdd\x008\x10u\xb5\xaf\x8e\
+Q'z\xbe4j\xa6\xf7\xd5\xcce2u\xe5\xf3+\
+\xbd\xe8\x5c0I\x11{\x05\x08\xa4\xc1$\xe0q4\xb6\
+\xd0\xc8\xee\xac\xd5\xae\x99\xc24\x1a76\x227\x9b\x18\
+\x9f+\xd7\xd1\xbb\xd1l%fO\x14p\x1b\xed<Z\
+\x0c\xc9C\xd2y0\xa1\xfdF>\xef00\xdam,\
+R#\x83<\x8e\x02\x91\xba\x00\xd7/\xa9\xc7\x87\xe8,\
+\x8c&\x80$\xec\x00eG\x17\x80\x1f\x0cV\x1a\x82\xec\
+\xb3\xe4\xb1\xc6p>\xd4\x1b\x1b\xbeOyg}S\xcd\
+\x96oT\x0b\xdcfG\x0bu\x86?Z\x99\xd4\xe1\x82\
+\xf0u\x8b\xf2\xf9:\x0b\x9d\xc7\xbfP^[\x0a\xd6\xf1\
+%\x16u\x7fj\xd6(\xb1\xba\xec\x0e\x97\xa9\x7f\xc7\xeb\
+\x9b\xe3\xd5\x01>35:\x11+V\x9e\xd3\xfc\xd1\xa2\
+jV\xb1\xcf\xc2(6I?\x17\xf53\xad\xa7\xd7\x93\
+&\x17\x0dM\xb9\xc1\x05\xc5\x1f\xca\xfa\xbb}\xd8\xac\x17\
+?\x9c[\x0d\x92r=\xc7W\x8f\x7f5\xbe\xa6\x02\x08\
+02\xdb\xc9\x16\xaa\xcf\xee\xa9\xa3\x0c\xceP\x99SZ\
+]/%Qr\x0ac\xb9v%\x91\x04\xa5\x00\x00 \
+\x00IDAT\xc1\xd8\x86\x91\xd1\xecfQ5\x0d\x10\
+\xe5k\x0f\xb4(\x9f\xb7\xb4H\x0d\x18\x18,<\xe7Z\
+_\x00\x1e\x91?Z6a\xdaQ?\xb6\xa8\xe7A{\
+]{\xbd\xb9\x9d\xc4\x88\x18\xe75\xa3\xdd\xb8l\xe8y\
+q\x8f\xafs\x9cA\xe0\xee\x0f\xec\x8b\xcd\x8f,\xdc\xfd\
+\xce\xcfEl\xfa`8\xb7\xbf\xb0Hns0\xad\xd6\
+\xb7Hu&\xe7\x81\xeco\x01\xdc`\x9cF\xc3\x0cq\
+Z\x01\xed\xa1\xe9@}\x85(\xbf\x80\xd0\xc9\xcd\xf7-\
+\xb4\xc1/.5\xe0\xf3\xcbstx\x89\xb2\xe15k\
+\x97XK\x09\xf5\xae\xba\xc0\x86|~\xb0\xc49*P\
+~\xa6\xd9\x8dU\xaa\x1f\xa8?p\xb7\xa4\x19j\x1b\x01\
+\xb8OH\xa6Q_\xffa\x91(vB8\x9b\xd7J\
+\xfcGue\x97\x0aNl\x13$\xaa\x81\x8d\x88\xbf\x8d\
+\xed\x92\xd8\xdas\xaeW\x5c)\x81\x88\x14JT.:\
+|3X\x88Jww\xb2\x01\xe2\x00U\xa2\x85j'\
+\x0f\xc8\xf8\x0b\x16\xe5\xfb\x17\xb1H\x07%\x89\x17\xe2K\
+$\xac\x88\xef\x98\x1d\xda\xb9I\xdc\xc4\x883[\x88\xb2\
+\xb9\x8c6\xfe5\xea\xeb\x84\xda\xe2\x9d\xe7yj\x87\xca\
+\xf1\x89F\xc8|Y\x98\x13G[H\xcc\xe7\x91\xbaa\
+\xbbd\xc7\x01\xda\xa0v\x90\xbf\xfa\xdfj\xc78\x00\x09\
+:\x00\x03_\xf2H\xbc\x85<\x05\x15\x13\xaa*\x1f\x1c\
+\xcc$0\x5c?\x0a6\xa8\x98 V:X\x83\xda\x88\
+J/\x07\x83D\xea\xd8\x18\xbawY$\xca\x13H\x98\
+\x18\x0ea\xdf\xc2\x86\x82\x1a\xf3\x0a%\xde_5\x1a\xfc\
+\x81<*\xbd>\x0ag:.v\x9co\x9c\x00\xa4g\
+\xdc\xe8,\x0a\xeb@\x04\xb9\x1evL\xec\xa4\x82\xf7\x97\
+U\x8c\xc4;\xf7\xebU\x119\xff\xed\xb3%\x17\x04%\
+\x86\xcc*\x85X\x9eF^\xbcLx)%4\xf8\xf3\
+\x8a\x1a\xe8e\xdb\xfbE\xd5:!\xcd\x9e\xa3M`w\
+c\x8e\xa4fOaC\x87[\x1b#\xf6\x95\xfej\x9e\
+O\xf6\x7ft\x16\x11?\x14\xc0\x12H\xa4\x10\xe2\xb8\x1f\
+t\xc6,\xed}\xf3\xed3\xdc\xe1\xf7Mg\x03`\x08\
+\xb7\x08+\xff\x7f\x9c\xa8r\xd8\xe71;j\xeb\xf5\xe9\
+\x94\x90\x01p\xd0\x01`\xdd1\xa2B\xa1B\xe2\xcf\xba\
+\xc2\x1d\x83\xf5\x0e5\x1e?\xeb\xe1\xac-\x0c\x0a\x89\x83\
+6\xdf)qB\x12K5`k%%\xd0\xc7if\
+\xf6\x85\x94\xa8P0\x90\xa8.\xa8\xd7I\xa7\x1214\
+l\x9cP\xdfG\xd3\x82D\x86\xc2\x91\x0e\xb8\xee\x03#\
+6\x01\x90\x22\xd6\xa3Y\xdfx\x1d\xd8\xf2,\xaf\x82\x7f\
+Y\xfd}\x12m:\xb0P\xf6\xa1\xdcBY\xa3S\x06\
+\xe3\x82Y\xf4!C\x83\xce*\x9d\x03\xd6\x11\x1dY\x00\
+\x05\x0a#F\x10\xb0\xb3#A\xdd^\x89\x19\x8c\x15\xf6\
+\x89\x1d\xfaN\x8b\x0f\xba\x8c+\x80\xd4mf\xe1\x08\xfc\
+\xfe\xdd\xfeNQ\xec\xfd\xc8\xcf\xeaGA\xa2\x03\x0fP\
+\x81\x8f.L3\xdd\x9f\x10O\x83*Jgp\xe8V\
+\xc0\xbfS\xf81\x8a@a\xae\x9f\x1bq\xff6\xd4\xfd\
+\x9fV\x85$\x14z\x0a\x7fu\xd4\xa3\xd0b}\xb2N\
+\xb8\x8e$\xae\x14\xc0\x009P\xbe\xe9\x88S@\x0e\xc4\
+\xf0\x02@\xbaW\xd7}9\xfd~\xdc\x00\xd8\xefI\xb8\
+)\xa0)\xe8\xf9\xbd\x1b\xa8\xb3\x8e(\x22\xb6|7\x0b\
+\x98\xc1\xfd\x80\x0e\xfe\xe5= \x1d\xeb\x85\xdf\xcf\xb9\xce\
+\xcc6\x1dqf\xf9q\x0d`\xa4\x02\x8a5v\xb7\x00\
+\x95<\xff\x14\xda\x14\xb8\x00\xd3Cf\x00\xd7S\x1d\xfc\
+\x00\xfaQ\xc5\xe7:Q\xc8\xf3\xfcR@\x0fmK\xf9\
+L\x82\xc8\xf3\xfa\xfc\xa0S\xc9\xba\xe7\xdf\x01\xf6\xd8o\
+\xe8X\x0a\x10\x88\xe7\x11\x00\x82\xd9xD\xdf\x10\xd1\xc5\
+\xb5\x88\x19\xd2\xed-\xea(\xdd\xd0\xf7<\xdc=\x04\x10\
+\xd2\xb9Fk(\x80\x00\x1a!\x9a\xcd\x8e\xf5DC\x03\
+\xb7\x05\x014P\xaeaP\x06P\x87\xe83\xef\x1f\x95\
+z:\xdb0?\xc4\x1c\x8a\x8e;\xa2\xa3\x7f\x18\xdd\xe9\
+\x9d-\xf6%\x0a\xc93\x05\x1cc{*\x002\x00\x0a\
+\x18\x09\x00\x0e\x5c7\x1a@\xacC\x9es\xd4\xc9\xc5H\
+\x88\xc6\xd1\x1b}\x81_\x0a\xf5^|\x10q\xe7\xf5\xfb\
+\xd1\x92\xd1\xae\x1aI|\x97\xecX\xf7\xec\xfd\xc6\x99\xa9\
+6\x85\x17\xd3x\x89BG\xf7%\xd4\xfd\xc54h>\
+kQ\xfb\x08\xcd\x0c\x16if\x1ff\xa3\x95e{$\
+1F\xc4\x01\x19Y\x98K\xa2c_\xed\xc5\xb5c\x04\
+\x00\xf7\x1b\x98 b\x944\x17YT\xf1\xdb\x98\xe5V\
+\x1e\x08\x10\x17\x9aHV\xe0\xcf\x96\xa8\xeb0l\xa1@\
+#\x8e\xcc\x88+b\x81v?\xaeH\xfb\xcc&\x02\xf6\
+x\x0eu\x0eO\xfc\xc4\xa2<~\xebZT\x86m\xe4\
+\x9fz\xae\xc2\x06\x8ds\x9d\xfd\x80|\x0eF\x12\xcfe\
+\xb5\xdf\xec\x81T\x00\xd7\x99t\xff9\xef\xf9\xb8W\x7f\
+O\xfb\xae\x9f\xb7\x0f'@G\xf9fh\x0eQ\xe8I\
+s,\xec\x0f\xffj\xa1\x91\xc4\x9fW\x17+f\xb4\xbb\
+\xf7X\xd4\xc6[\xfb\x84E\xb9\x0e\x8b\x970\x17\x87\xdb\
+-\xaa\x86\x046t\xde\xd0z^\xf7q\x7f16\xce\
+\xa9\xfb\xa43\xb5\xbf\x91\x98\x03\xca\x07\xba\xb5-\xea\xa8\
+t\xeco\xec\xab\x8c\xa4I\xf3\xc7G\x87\xbe\x99\x0aO\
+\x8d\x1a\x07\x05\xff\xe0\xee\xa0\xce\xdc\xd4\xce\xb7(\xf7\xed\
+S\x16U\x84\x1a`\xb6y\xae\xc4\xb3U{\xa3\xfb\x9b\
+EuI\x09\xc6.\xa3\x8d4py\xfe\x10\xaf\x94\xab\
+H\xac\x1b\xd9\x82\xc6~\xa2\xe7\x9c\x9f\x0b\xa6\x87\x00\xf0\
+\x00F4\x12\x18\xb3\xf1\xac\x1f12\x9by\x9a\xb9\x9b\
+y\xea~G\x1dF\x03\xd0GKw\xa9u\xec\xa4\xbb\
+\x04\xcc\xe2\xe6\x84\x96\x00\x8d[\xf6=\xecoeG\x1d\
+\x9a+\x8c\xfa\xa15\x84h\xacD)C\x9b\x8a\x91 \
+\x00a\xd6?@\xb2\x98I\xb1\xdf\x92\xef\x88!\xd1m\
+eQ\xeb\xdf\xc9\x13]\x896%\x8c\xb2\xe7\x0b\xb1/\
+Q\xe8\x18\x0dpU\xd0E+\xf2\xe5\x22o\x0b%\x11\
+\x09\xc4\xcaD\xddF\x8d\xd1\xed\x1d\xf6\xaf\x94\xa3@n\
+\xd5\xb1n\xce\xb5\xa83x\x88\x88 \xda\xc0\x02\x0c*\
+\x0a\xb6g \xbdP\xb8\xa1\xcc\x910\xb0\xe1\xe9\xc2S\
+\xc8\xb5\xab\x96\xb0\x8e\xfdk%^\xaf\xa2\x1b\xd1\xc1f\
+\xc6\x0ej\xdc3%\x9eN\x85\x9c\x0a\x838\xc0\xd9P\
+\x10\xc7\xa3\xf0\x9f\xc3\xa2\xceDcK\x17\xa3\x14\x88\xda\
+\x882\xd6\x9caQE\xdeL\x93\xd9T\x99\xdb\xad-\
+\x12\xd2\xb7\xb5E\xa5\x98\x84\x1a$\xbfO\x07Ol\xec\
+\xa2${9X\xde_\xbb\xb7E\x15\xc9\x9bX\xa7\xc4\
+\xda\x091\xd5\x0c\x09T\xb1\xee\x93%\xb6M\xbe\xee\x9b\
+\x0a\x89W'#\x16\xb0\xaeC\xd8\x1fa\xb3%\x8aS\
+0$\xec\xbf\xef\x97\xc4\x9a\xa0\x0e\xdbv\xfd\x8a4(\
+\xdeY\xa95\x00\x1et\x1a\xdc\xd6\xe8_I\x85\x9e\x84\
+C\xae\x13\xddZF\xd2\x11\xb0\xf1\xfb\xf4\xa0P@Z\
+\xbf\xe4\x9a\xa42\xfd\xe2\xa4\x9e\xd9\x22\xb1\x1c\x7f\x9c\x96\
+H\x896\xd4^\x831\xa6O\x94A\xc4\x1d\x99)\x94\
+\xc8\x8fo4\xf7VW\x02D\xff\xda3-\xd2\xac.\
+\xeb\x88\x02\x82\x03\x8c\xaf\xc5\x14\x80\x92\x1evE\x06\xac\
+mX\x0b\xd1P\xf7\x17\xe0\xe6\x1b\xec\xd3\x89\xaaMA\
+J\x82Kb\xba\x80\xf70\xe3`\xf2\xd5N\x81\xfd\xbc\
+f\xcb?\xaa\x02{\xe5j\x03\x19\x85\xa8:\x1f~=\
+\xafV\xc7\xe5\xb1\x0a\xc4\x8d\x0e\xb4H#\x0b\x96\xc6\xad\
+\xad\xf5u\x95\x00\x9c%R\xc7\x0d\xea\x16\x1b2\x85\xcf\
+\x8d\x1e\x01T\xbe\xcd\xaf\x1c`\x8a\xce\x1a\x05\x98\xa8\xc3\
+\xc1\x10`\x9d)\xa1f\x96+\x18$$\xb6P\xed\x8d\
+ZuW\x02$\xe80\xd2q\xad\xb3\xd2\xae\x16\xeb\x09\
+\xd4\x0aId\x94N\xa6\x0a\xd3`\x1a\x90p\xb0.\xa1\
+\xcaQ\x10q\xff)$\x06~\xcf\xc1\x08\xe1:!\xbe\
+\xc8\x8c?\x85\xc3C\x02n\x9e\x96+\xc0\x83*\x90`\
+00\xa2%\x9b\xc9H\xf8\xe9p\x92X3\xbb\x0f\xe3\
+\x85\x8e?\xc0\x1e@\x13\x85\x16\x1d\x18:\xce\x14x\x14\
+L\xeb*\xa1\xa7\xd0\xc7\xf7~\xfb\x04@MJ@\xc5\
+Q\xd2*Q\xa1\x0e\xb2\x8dZ7\xf6A\x91H@5\
+6\xd1\xa4\x1f&\x86\x046S\x8c\x88\xa1\xee\x8ev\x0a\
+\xeb\x0dj\xe9<J\x1c\xb9\x9e\xac/\xbe\x06\x10\x18\x8c\
+L\x04@\xc0\xfad\xa6\x9c\xeb\xc8u\x1av\x90)\xb4\
+\x87\xb6w\x00\xad\xcc\x86\xd3\xf1\xa6\x00\xe6:\xf1}\x00\
+L\xac\xa7%\x82\x8a\x0e\xc3\xa1\xdf\x7fH\xc8\xe9\xc8#\
+>\x89\xcb\xc0\xdf\xb5O\xd01\xe1\xf9\x04pc6{\
+Uup5\xe2\x15\xaf\x9fu1\xb0\xa7\x0d\xa0\x03`\
+\x11&\x06\x056\x1f\xbc\x7f\xf6a\xce[\xa8\xef0\x15\
+\xe4\x8b\x1d#Z$N\x14x\xacW\x80\x16\x98E\x9c\
+_\x00\x8f0\xc3x\xdd\x14\x8a\xdc\x17~\x0f\x80\x86\x12\
+\xcc\xd0\xbc\xe1<\xe3\xf5\x92\x88\xf1\xbe\x00\x00\xf8\xfb\xfc\
+w\x9es\x12r\x89\x9dE\xc1\xaa\x82*\xee+\xeb\x8a\
+<C\x85X\xec\xa3\x12k\x0b\xa0\x80N23\xb8\xe4\
+5\xa2\x04\x87=\x1f\xe7\x1a.\x0b0\x02\x00\x16a0\
+\xb2\xdf`\xf7\x0b\x93\x08F\x96\x18\x9e\x14L\xe1\x9a\x80\
+K\x12\xa3\x150\x1a\x10\x9b\x06`\xa6\xd0\xc7\xb5Cj\
+\xfe\xd8\xc21\xf2\x14\xd7\x01\x86\x1b\x80\x0f\x9d\x5c\x18\x0e\
+\xa8_\xe3\xc2@!\x0f\x93\x02[FQ\x98\xc3\xed\x08\
+\xb1@\x9e;\x1a$\x8c\x8al\xdck\xaf0\x02\x16\xd7\
+\xb5\xed)\xbf\xdds\xbd+\xc8h?1\x0d$\xd6g\
+\xe5\xb0\xbb((\xefuF\xe6\xb3I\xcb\x09\x95\x7f\xec\
+k\xa5\xae\x1f#\x91\x001\xda\xe7`\x9c\xe1\x96\xd5\xfc\
+\xc5\xc2\x7f\xdeG\x12\x9aU\x9b\xd5\x9a\xd5\x92\x06\x80f\
+\xf8q/ \x7fD\x94\xaey\xc5\xb8\x03\xe5\xf3\xd9\x16\
+U|\xcc\xdd\x82fN~\xf5\xb2\x07n\xd6\xb1(\xff\
+~\x8d\x85l\xf4\x96H\x22\x8a\xdb\xfaPWe\xdc-\
+\xa4}V\xeb\x06\xb7\x95\xe6q\x8br|O\xb6(\xb7\
+\xf9\x02\x8b\xf2\xef\xabY\x94\xcf\xb3Z\xa4}\x97\xe7\x93\
+\xfb\xce\xf3\xce\xbf\xf3|\xb1\xbf\xd2\xe9oB\x0c\xd0\x81\
+\xbe\xee~\x8b\xaa\xe1\xc4\xc8o;\xafE\x1d\x8d\xe9\x96\
+1\xa3<1P\xbf\x9fFE\xc4\xb4\xa3\x01\x1a#V\
+\xaaG\xda\xf7\x96XT\x0d\xc0=\xc5\x5c;1\x15\xde\
+z\x0e|\xb0\xa3\xbc\xef\xf1\x11\xe3#\xec|w\xea\xfe\
+\xeb\xca\xaf\x17O\xfb\x04v\xdaZ\xaf<W\xed\xad\x16\
+U\x9c9\x0ae\xb4\xae4\xc2\x13\xe7\x15\xfb\x13\x9dc\
+\xe5\x8fq\xae\xc0<Q\xa1\x1d\x05\xa5\xb4y\x9a\x99,\
+j=0^\xcf\x225$\xb4\xff \x1a:>\xac\x84\
+\x89I\xaf\x5cb\xa54\xfa!\xf1L\xc45\xd9W\xdd\
+\xde{\x85\xda@E\x0b\xab\xfd\x9cE\xd5V\x88N\xb8\
+\x0a\xeb\x10\x05\xbd\x5c\xdal0\xf2\x0e\xe95#\xc8\x07\
+\x9b\xab\x9b_6W'Qi\xed\xaf!\x0a\x88\xd6\xc7\
+\xef\xda\x9b\xdb\xdf\xd5\x06M\xb8\xbbl\xd4\x8b\xd63\xba\
+\xdd\x9d.&\xc1\xe1=\x00\xc3\xef\x09\xfbx1P\xdb\
+\xed-\xca\xe7U,\xca\xe7u-\xea:\xec\xd6\xb5\xa8\
+\xa3j\x00,\xcc\xf0\xc7\xf3\xc0H\x02\x9a\x0e4T\xc9\
+\xb38'a\x9c\x92G\xeb<\x99<q|\x89\xe3\xf4\
+\x03/k&i\xff\x8at\x84H\xc4\xe1\xbd\x08\x87#\
+\x8a\xaf\x09\xe1\xb8&\xfd\x01:\xa3Ph\x8dR\xb4b\
+\xa5\xe2\xc6\xc8\x00v\x1eP1\x85\xb4;rX\x16z\
+\xf3\x94Ey\xc3kY$\x0a\xcc\xfe}\x87\x071\x1b\
+\xa7\xd8\xbfOb'\xdf\xd0\x0c\xf9\x86\xd5/\x91B4\
+\x10Hfom\xf6j\xcb4\xc3m\x92l'\xa7\x99\
+>\x10ku(\x9c\xda\xb2\x86\xfcmgH\xe2g\x14\
+\x12\x14\xfe\x14\xa6:`\xa06E\xe2 1AD\xca\
+@$\xc3\xb6L\x052\xb3\xe0\x81\xdc*\x91\x09\x11\x19\
+\x89\x10uWY\xa4\xd9}\xa9\x5c\xc2(\x08j\xa4\xa8\
+Z\x8e\xdc\xceZg\xb6\x1dh95\xa9\xe2\x82(!\
+*\xa6\x19\xb0\x10\xf7\xb2\xc7\xeb\xab\xe9\xfeM\xeb=\xad\
+\xdai\xa1\xa0\x04q\xb7\x83s\xd9D\xd1\x87b\xcfA\
+k\x08\xd7\xbf\xeb\xccx$(zp\x9d\xd1\xb1L\xa2\
+\xcaa\xcbax\xffz.\xca\xe2T\x9b\xe8\x88IE\
+\xdf\xb5$\x9eHb~\x96f\xbd\x98\xc4#\xed\xaf?\
+%1\xbf\xf5*`\xe5e\xddN\xa9p\x84\xb2n}\
+\x93\xd7\xd2\x8c\x22\xef\x97\x02C\x88jt\xac\x10{4\
+\xaa\xde\x9a)\xa1\xc2\xaf\x1a\xb5d(\x93\xd81\xe13\
+\xaaD\xc6\xa9X\x17\xa6\x0d\x185U\x15\x94^\x90>\
+\x9c\xa8\xab\x1c\xb4\xdc\x7f:\xe6\x00\x0c\xbc~\x0aO\xdb\
+\xfe\xa7M\x9d'\x0a\x141QP\x19\x05\x90qm\xdb\
+\x13$\x9a\xb5\x87\x00\xb2{*\x95(F5\x00b\x10\
+A\xa1\xa0\xd2\x7f\xc7\x9626$=\xffa\xa7E\xe7\
+\x9e\xc4\x92\x82\x83\x84\xdc~\xdb{t\xf0\xcf\x96^?\
+\xeb\x80\xcf\x1c\xf4\xbc\x7ff \xd5\xa9@L%:\xd1\
+l\x98$\xb0h4@\xb1\xc3.\xd0\xf0\xe1\xad\x92Z\
+\xfa\xcd\x16i\x84C#\x01\xa3[dK\xc5\xac\xe5\xd0\
+\xae\x8c\xe7\x85\x8e%\x89>\xd7\x8b\x0e\xa9^\x1f\xb3a\
+!\xa6&D8\x98\x0b\x07\xcb\x1f\x99N\x1e\x087\x9d\
+M:\xd8\x03\x15\xe4\xd1Z\x12=\x1a\x88\xd4\x04e\x99\
+\xef\xe7\xe7I\xb0\xa0\xa4\xf3:)\xa8\xf1/\xc6\x06\x11\
+\x0a7L\xa0\xa9\xa3\x03\xde\x17r+\xaape\x04d\
+c=G\x00:\xaco\xcd\xd6\x86\x98\xd7\xa5\x16i}\
+\xbc.`kk\x89\x1f\xbd\xbb\xef\xc8\xc5\x08\x8a\xd4\xf9\
+c\xd6\x93\xce8\x85?\xc0\xe9\x82\x9aI\xa5\x80%Q\
+\xeaT\x90\x0eE,\xf9\x1a\x9fq\xb4f(\xf0\x87\x9d\
+xD\x04)XT\x80\x8f\x16\xd3\xe8\xc5\xf2z\xdf\x14\
+\x9a\xaco\x98\x08C\x80p\xb8^\xe8t\x91\xc0q\x0e\
+,\xadB\x86\xf5\x07\x00\xb3\x8e\x0af:\xafhR\xf0\
+}\xfc~\x98\x14\xcc\x9e\xc3\xb0C\xadZ\x1dN\x1f\x90\
+\xd9\xd0\x81\xb0~\x04N\xb3\xe9\xdd\xa3\x16\x89\xa1\x86\xc8\
+\xd6\xed\x16\x89\x9aL>A\xa2\x82\xed%\x8c)\xf2\x01\
+;\xc7~\x90\x00\x1c\x00&\x0ad~\x0f\xfb\x10\xc0'\
+L\x81\x7f\x0c\x80\x0d\x0a<\x18A\xac{\x006:\xd0\
+\xdc\x17\xae\x0b\x05=\x85;\xeb\xfa\x7f\x1b\xa9b\xbd\xf0\
+\x99\xff\xce\xf7\xf3\xdc!\xbe{\xa0G\x14\xde\xd1\xd1#\
+\xb1'O\x80a\xc5:\x11\x80G\xe1\x12\x059\x00&\
+\x85\x04\xcf5\x1a\x0bbF\xf1{\xbc\xf1\xf1L\xeax\
+*!\x0e1D\x0aw\x98\x04\xa8x\xc3La\x94\x8a\
+\x0e;\x1a-\x14d\xfc}Q\xf7\xb1/E\xec.\x00\
+\x04\x0a\x14\xd9=G\xe1\xbb\x8bFK\x8d\x82{vz\
+\x1f<\x070\x97h\xc0\xa0\x09\x80F\x06\x94{\x15 \
+\x01\x9c\xdc\xa6\xd1,:\xcd\xaf\x8a\xb1\xc1,\xf2\x02\x16\
+\x1aa\xd8Qn2\xb79E\xd8\x81\x92v\xe3^,\
+\xcc\x15\xb4\x1eJ\x9d=\xec\xc9n\xb6\x13\x22u\x5c\x19\
+M\xc0u\x09\xea\xb2\x18\x1e\xa3\xe9-\x92\xba?\xfb\x06\
+\xb6\x82\xaf\x88\xf2,\x1bB\xb43\x9a\x13\x9b\xef6\xdf\
+\xad\x0cE\xf6\xcd\xa0Hk\xbfjf\xb6(\x9f\x8f\xb0\
+H\xdf\xc7\x08\x8a5\x026N\x22{4\x98\xa4\x0d\x80\
+\x8bSs\x89\x85\xf2\xdf\x07t\xbf\x9eL\x9aK\xac\x9f\
+mz\x80#\xc4\xc6\xb5\x7f\xb4\xc7[\xd4Q\xcd\x89S\
+,\xaa\xb8\xdbxM\x8b\xb4/s\x9f\x07\x8c\xa8`\xd8\
+`\x03,\xfb\xc2\xe8\x00\xb3\x8f\x92\xef1\xca\xbc\x94E\
+u\xdb\x8a\xcfK\x97XJ\xfe\xea''\xbb7\xe5m\
+\x009\xb1\xcf\x7f\xdfcR\xbb\xafE\x9d\xc5\xf7\xf2\xf4\
+\xb0Tx\xb3\x8fk_q%\xb4'{5\xfd\xf6\x13\
+U4\xda\x19\xd7\xab(/?+\xed\x130\xb5l4\
+cQ\x01Z\xdfO\xa2\xb7\x00\x94f{\xfd\xd3\xc4\x84\
+F\xcc\xda\x00\x8de\x12\xe3\x89\x06&..*\x98y\
+\x9d\xde\xd8+\xd7\xaf\x9d\xda\xa2j;\xc0\x9c\x998\xc7\
+\xa2\xfc\xba\xfb-\xea\xfe\x01s\xb2y\xccBnl\x17\
+hf\xfe\xae\xc4\xd4D$\x15\xcd\x0c\xdcTlv\xfd\
+\xa2\xba\x8f4\xe7[\xd4\xe7\xaa}\x9fE\x02\x98\x19\xf1\
+\xd8Q\xe2\xb7{K<S\xa3_\x88\xbc\xfb\xe8\xc0\x16\
+\xa91-\x17\x87\x18a\xa4\xbe;\xa7\xef\xe4w\xbf\xeb\
+\xf3\xbdv\x0f3\x82.\x9f\xffeQ>\x1feQ>\
+oeQ>\xff\xc7\xa2\xdaE\x86+\x81\xce;\xdc\x84\
+hx#\xd6H\x9d\xc2}!\x8f!\x7f\xa2\x0e\x0e\x9b\
+\xf5\x8d\xc5\x5c\x06`\x95\x8b\x1e\x9a'0\xd5\x038\xd8\
+\xcd\xa2\x024\x93\x9b\xcfYh\xe6`\x83t\xe1vw\
+c\x93H|\x9d\x02k\x08\xcd\xafJ\x5c\x9d\xec\xa6\xbe\
+bQ\xfe\xfbq\x16u\xa3\x09\x11$:\x22\xd6\xaf\xda\
+Q3\xc8W\x0aA3\x11\xad\xebK\xe4\x91\x00S\x0f\
+\xfehEd\xbc\x83\xf8\x85J\x05\x0e\xd18!nP\
+\xf7\x9dr\xf8L\x12\x8d\xa2 \x1b\xaaQ2\xbb%\xb5\
+G\x90\xad\xee\xeb%\xbe\x96\xd4\xf3u!\xbby-R\
+\xa1\x07\xc0@\x82%\xcaJs\x8fE\x15\x03!\xc1\x80\
+\x02\x1d\x22\x89l\xbc\x9a}\x0b[\x09D\x12\x0d\x81\xfb\
+p\x12?\x91zs\xbb\x9eE\x9d\x8dr\xc4y1\xcd\
+\x0c\xadY\xc5\xff\x9c\x82\xb4EE\xd2'\x96+\xb1l\
+]\xd8>\xb22J\x07\xb2\x89\x86\x1d\xa2\x04g\xddt\
+0\xd3Q\xa2\xd3\xba\xa0\x93\x98\xfb\x8e\xcb\xcf\x93H\x9e\
+(\xe71s\x8b\xbd!\xd4Z\xb4\x10\x98\x09\x94]\x07\
+\x9d\xa2\xee\xb8\x12\xc7\xa6B\x99\xebj\xfd\x8f\xcf\xd7\xd9\
+}\xc4\xf4\x9c\xf2t\x80\x90\xd4\xcf\xa5\x0e$3\xc6\x86\
+\x9c\xad\x93(\xfcPJ\x01x\xa0\xc6S\xc8h\xa3v\
+\xa6\xc1\xfe\x02\x94\x8eH\x09\x12H\xb7\xf5ooJ\x94\
+\x22\x12J\x0a-\xa3^~*\x15F\xeah\x8d\xce\xb3\
+H\x9d)\xd9\xa4\xc4\x01@\xc2MB#J\x97\xf7W\
+~\x91\xb4 (\xcc\x04\xc0\x80\xb43\xdb\x88{\x853\
+q\xe6W\xa1tAz\x0e)$x\xdf\xa8\xdc\xa3j\
+\xbb\xb5\xec\x88,}\xdf\xa0\x02'~,\xcd+\xe0\xea\
+\x0c\xcd@\x1d\x9c\x80\x93\xc1l\xbe'\xea\xd7J\x141\
+ift\x8bY$\x0d\x04;~gIL\x0b\x9e\x17\
+\xcdb\x91\x7f\xfbO\x9f\x96Drdw\xe5\xef\xea\xd9\
+\xb4\xce@\xdc\xe9\x5c\xf3\xfb\x10\x9f\xe4`&\xd1\xd7\xba\
+\x8c\x19/\x0eb\xee\x1f\x05\x9cM,o\xdew\x84\x1c\
+\x882\xd1\xd2\xbfK\xec\xc7\xd4Y\xa7*Q\xd6\xd5x\
+\xc5\x12+U\xe0\xaf\x99\xb0H\x09\x0f\xd7\x9d\x83\x1b\xca\
+<*\xcaPr\x01.Hp(\x84H \x0f\xeb\xef\
+s\x14pt\x22\x19\x11\xa0P\x19\xfa\xe6\xf2\x9c\xd0\xd1\
+\x9fS\x85*\xdf\xcf\xf7)\x01\x0f\xe0\x84\x91\x1auF\
+\xd9\xf7\xa3\xf3B\x81\x0b\xf5\x0c\x00f(\xf2\x86\x18*\
+\x9d\x19\x0a1\xae\x0b\x94\xd0\x05\x05H\x22>\x06`\x06\
+\x90B\xa1:\x9d\x0ef\x15\xcc\xa3\x85\xfb\x99\xb8nw\
+\x0bO\xfc\xfaB\x00\xfb3f\xbb\x8f\x16\xb0\xbd\xaa:\
+x\xcc\xa0\x03\x04\x1d.\xe0\x0fC\xccw\xbcu\xd68\
+\xd6;\xc0(\x89\x13\x05\xdc\xd0\xb5\x82\x82\x8c\xf5\xb5\xb4\
+\x00\x1c\x00\x00\xd6\x1b\xd4T\x12S~\x0f\xfb\x16\xe72\
+_\x93\x98\x0c;\xdc\xfc^F\xa3\xa0\x92\xa3e@\x82\
+\x8c\x1b\x01\x80\x1b\xa2y\xecS\x14\xea\xa8\xf8\xb3\xdf]\
+&F\x11\xee\x0d\xcc\x90\xea\xfbJz\xd5\xdb\xeeJ\x84\
+3\x00a\x00J\x18\x09\x88K\x8a\xa1\x16\xf7\x09m\x08\
+\x00\x0d\x0a:\xce\x07\x12[\xb4]\xe8`k\xd4/\x9e\
+\x03\x5c}\xf6\x95:8\xbf\x8f\x8e1\xee5\xec\x1bC\
+\xcd\x0b\xf2\x07\xee/\x80*\xb6\x92\x9a\x89~\x9b\x16\x00\
+\xe7&\xe7(\x801\xee.\xff\xb6H\xa3\x82C\xb7\x0d\
+\x9e\x0b\xde'\x00)\x0d\x00\xc4\xf9\xd4\xc1\x0dW\x10\x9e\
+W\x18L\x88\xb2r\xbd\xa5\x12\x1e\x85\x12\x7f\x97\xd7\xcf\
+\x7f\xe7\xbc\xa7\x03M\x87S\xa2r\xc1\xa8D\xbb\xc9\x98\
+\x85\xaf\xd4s4:\x8c\xeah\x06\xb3H\x9d\xd5\xa0\xf8\
+\x02dr\xce\x8a\xd9\x14\xee*P\xd1\xcf\x94\x8d\xd6\x85\
+\xa2\xc0J\xdd>\x98NO\xca\x05I\xcc\xa5\xb8.\x00\
+\xec0\xdf\xf8\xa0\xa0\xd0\xb9\x1c\x85\xf6\xde\x16\xc9\x0d\xe0\
+\xd5\xde\x8d\xc0;\xf5W8\xe0\xe1\xf9\x14\x0d\x89\xe88\
+\x9b\xad\xe7\x07T\x00\x1f\x95\xf2\xc1\x9d-\xd4\xc8X\xd6\
+\xc5\xa3\xefp\xed\x17\xf6W\xf6\x1b\x80\x0f\x80\x1e=O\
+!\xce\x0c\x10\xda\xb9\x8c\xe8\xdb\xed\xd1`\xae\xca\xdd\xa0\
+\xd9\xa1\xc4\x8e\xcaC\xe7M\xd4i\xa8\xc3\x88\xf5\xe9}\
+\xe0\xea\x10\xb3\xccZ'q\x1d\x18a\x00\xe0\xe6|\xc2\
+\xed\xe3+\x1a5\x90\x98\x9b\xff\x9eV\xe2\x83\xe5z6\
+\xef\xb2(\x9f/\xb3\xd0\xb9\xb0Y\xb2\xfb~\xbfE\xfa\
+y\x8d>F\xa1&\xfb\xc3\xe6\x02\x8b\xba\x0f\xb7\xfbX\
+$7(:\xcd\x14\xf80\x1f\x07\x94\xea\xd8\xbf\xdf\x10\
+\xf0w\xa1\x1aN\x9a\x89w\xbb\xbdC*\x100\xfe[\
+\x89\xa7U\xd0\xbd\x9a4\x078G\xed\xb9x\xa5\xda\x05\
+\xfah\xe3\xa6\xb5@n\xdfi\x91\x00{\xcee\xf6c\
+\xb4\x94\xd8wu\x1f)\xd8\xb1\xff\xe3\xdc\xf4uvD\
+\xda\xef\xd9\xd7\xd4\x90t\xbb:S\x91\xbf\xd7\xa2\xbc\xfe\
+\xf3-\xd2\xfa\xe2\x5ca\x9f\x03 \x83\xd9B#\x80|\
+\x00\xdbw\x15\xae\xed^\x16\xe5\xeb-K|\x5cL\xdb\
+\xb5\x94\xaf\x8dR>+\x00\x86\xd7\x8f\xf6W\xd7X$\
+[e+h\xf7\xab\xb3\xf5\xbc\x8f\xf6<\x8b\xf2\xfaW\
+\xb3\xa8Z\x04\xcd\xbe\x16\x89!\x84\xa6\xcb\xc9\x16I;\
+\x83\xfa\x0e\xfbP\xde\xa7\xf6\x15\x17\xb3\xbe-1\xd3,\
+kyo\xd2\x04\x01(\x84Q\x0es\xc0\xf6\x8be\x93\
+m\xf3\x7f\xfas\x91u\xd7\xfe\xd5\xa2\xce\xf6\xa3\x85\xe0\
+\x0cj\xd3,\xf8\x81E\xf9\xfaE\x0b\x01J\xdfKy\
+\x13\xfb\x0aL\x22F9v\xb0H\x0ds\xdc\xc6`\x16\
+\x08\x18\xb6\x81\x0c\x1f\xc9\xb8\xdb\x22\x9d\x93_\xb2\xa8.\
+\x11\xed/-\x0c\x000\x95l\xf3\xd5|_\x89\xe5\xb5\
+\x81\x7f\xb3v8\xc2'\x967n\xa2qk\xa6\xd9+\
+(,\xa6\xf1\xbaoZ\xa8\xcc`\xc9\x87\x9c\x03\xcc\x91\
+\xfe=\xd3\xcc\xb9\x10\xa9p\x19X\xdeB\x1d\xde\x07j\
+\xa1\x8f\xedAP\xcf\xec\xb6\x5cY)\xed\x88T\xc4\x06\
+\x0f\xe5\x85\x8e\xa4\xf5y\xf6I\x9d\x0d\xc3[\xd7|\xbb\
+\xe8J$:\xcc\xa4j\x83\x0b\xea\x1a\x89\x02\x141\x90\
+qu\xa8\xc3\xdd\x00*\xb8\x16| \x5c\x14t\x02\x12\
+\xf0\x0b\x85\xf2\x1f\x88\xbe\x18\x0bP[\x83\x8a\xa6\x0e\xa5\
+\x8b n\xac\x8e\xc5\xa6\xa9\x83EB\xcb\xfb\x145f\
+\xe2X\x0b-\xd4R\xa0\xb4\x9b\x97\xd8L>\xa1w&\
+\xbfID\xc3X\x88t\xbaDq\xf6ta\xb1\xd4\xb9\
+\xa4 &A&\x91\xc8v\x88\xf7%f\x81:\xd9a\
+\xa3AbGa\xc0\x06\x82\xf8\x8e]\x9f\xf7\xaa#\xd3\
+h\xf6\xfd[\xe9@\xa7\xb01%\x86\xa3S\xc7\x075\
+_;X\x8e\xa9.\x17\x0e\xb8\xbcPE\x17\xbb\xd3-\
+\x125\x10\x00\xa2q\x92X_x\xd8H\xc6\x0d%~\
+\x93:\xae\x96\xd6\xcf\x94\x9e\x07ulB=\x97\x99b\
+\xc4l\x10}D\xab\x80\x11\x13\xfc\xc7?\xef\xd1\xdf\xc7\
+M\x92\x9d\x08\x1b#\xd4q\x12\x1f\xec\xfd\xb8\xce\xac+\
+\xa8\x980B8(P\x13g}S\xc0m\xe0S\xbd\
+\x95\x9a\xc7\x01e\xc7\xe3\x9b\xe9\xa0X\xc8I{5\xa1\
+}\xd9e\xd5\xfa\x02pE%\x06\xf3%q\x12Kc\
+\x0d\x19=\xc5\x22\xd9dN\x1b\x85\xdb\xf2\x9e\x98\xea\xbe\
+\xa2\xce\x1f\x07:\x14Q\x0a\x1fi!DA\xc0\xba\xe2\
+\xfeS\x80\x82\x00\xd3\x91\xa6\x90!!E\xdd\x1f\xd5f\
+D0a\xf0\xe8y\x0c\xbb\x19\xb9G4\xd34\xd3\xd8\
+\xfdnV.aL\xa0\xf9J\xcc\xaf\x8e\xda\x0eu\xc4\
+\xc9p\xe1v\xb7\xf2}\x8b\x97X\x22%LBdG\
+;I\xd5<6<\x15\x9a$\xe4<\x0f\xda\x1fB\xad\
+w\xe5n%\xa7\xcc\xe1\xe3\x0aBB\xe7q\xa8\xb2\x0f\
+\xb5~I\xcdh\xd3)\xe1\xb3:\xb3\xf1\x9c\xf3st\
+\xd4)\xa4H8\x99\xed\x96Hg\x00)\xcc\x88\x03\xac\
+\x22\xe6\x85\xd6\xc6\x14\x01p$\xba\x14\xca\x00Zo\xe8\
+\xefi\x16s\xb4\xb8D\x13I,\x01\xccT\x10\xc5\x81\
+\xce:}\xb3G\xea\x01r\xc2W{\x16\x15\xe0hT\
+`\x83\xb7\x87l\xdfx\x8ex]0?\xd4i\x8bQ\
+%f\xeb\x01\xd0\xd0\xf0\x80\x8a\xccz\x04\xd0\x91vK\
+\x14\xd6\x148uv\xbf\xbf\xfe\x88\xf2\xa1\xa9\xc0s\xc6\
+\xf3\xcc\xdf\xa3C\xcasGA\xfa\xa6\x9eO\xbef=\
+\xf0|1\x0a\xc0\xfd\xe6>\xd3i4\x97\x97\x95\x93(\
+\x1f\x1d}l\x02)\xf0\x19\x15@\xecp\xee\xb7\x02\x0d\
+a\x1f\xbb\x9d\xd6\xd3n\x12\xdf\xd4\xfd\x0b\xa6\x1f3\x9d\
+\x14\x82\xa8\xb1C\x01\xc5\xa6\x17\x15n\xd6\x07\x80\x07\xe7\
+\x10\x14~\xf6Oftu?\xc2\xa6TbW\xb1\xef\
+i\x1f\x09@D\xcc\x0f\x12\xb7p'\x00\xb0\x81\xb9G\
+\xa7\x9f\xd7\x81\xf8\xe4S\x16i\xbds\xbd\xb9\x8f\x00;\
+C&\x09\xf7\x8b\xe7\x83\xcf<\x17\x88\xc0\xf2\xfa$\xfe\
+\x85[R\x14\xe0\x12\x8dB\xd59\x80 \x18}\x8c4\
+\xa1\x95\x01\xc5Y\xfbY\x14\xf80v\xc8O\x18)\xe0\
+<DlQL\x86\x103\x85Q\xc9l:#L\xda\
+\x87\x11\xeb\x0d\xd7$\xde\x1f\xe72\x80 \xe7=\xa3\x05\
+\xba\xceQh\xdd\xd0\x03\xa0A\xe5GT\x92}\x87\x0e\
+\xa8lP\x01\xc6C\x9c\x99\x99[\xa8\xfePd\x19\xc1\
+\x03\x98\x03H\xd6\x88N\xd9\xa5{\xc0\x17_s1I\
+C<Ov\x85\x88\x8e\xc1\xe4\x8b\xf7c\xbc\xd9\x9d]\
+\x8co.\x13Mc=#\x82\x16\x0d\x02\x13o~\xfc\
+\xed\x85o\x00\xf70\xdd\x00\xa0\xb8o\x88\x90j\xf45\
+Fa/p\xdf\x8e\x9a\xbf\xd3\xa9\x97k\x00\xfbg\xd8\
+\x14\xa2\xc1\x00\x00g\x1a\x0a'Wm#_\x85{&\
+1a\xcb\xf6\xb2\xbb\x09\xcf\x15\x00\x0c\xc0\x8d\xfd\xbd\xa9\
+\xf4|\xac\xae\xfde\xfdT\x08\xaf\xd3\x03\x08\xe4\xd5f\
+\xfe\xed\xf6\xdfg\xf7\x0c\xe2f\xb7f\xf7f\xf74J\
+\xa7Q\xcf\xd0HX\xcb\xa2l\x8b\xcfZT\x06\x22\xe7\
+G7\xa1BS\xcf\xcf\xa4\xdb\xd5\xd1\x05\xd0\x15@\x87\
+=^;\xb3E\xf9\xdc\x94\x18\xd5\x11\x0e\xec\xd9\xdcm\
+\xe7x\xa9\xbe\xaf\x90\xc4\x13aB[y\xfd?\xd2F\
+\xb8\xa8v\xbccTv\xe86\x02\xf3\x08f\xa6\x0dB\
+= \xfb\xe8\xed\x92\xad\xaf\xe5\x9d7$\xbbc\x01B\
+\xdd\xea\x16)\x8f\xb3\xbbwP\x02\xe6\xc4\xc8\x88\xfa\x04\
+{MD\xec`:\x91\xb7\xa2\xe1\x80K\x04\xcc-\x8d\
+V\xb5?\xb4P\xdd\xf3\x99\xda\xd8\xec\xde\xd1\xf5y{\
+\xc9\xc6\xda\xfb\xea9\xe5#\xd6\xab\xa6\xc6\x0f\x05\xaf\xf6\
+iw\xff\x1e\xd5\x91\xea\xf6A\x8b\xb2=\xeelQ\xfe\
+\xfb\x89\x16\xe5\xbf\xefj\xa1\x11\xe5r\x9e6\x7f\xb3\xd0\
+\xeb\xdb6i\x95HD04\xe7\xd0\xf2@\xd4\x18f\
+\x11\xdf\x07\x93\x88s\xc8\x9e\xea\xdf'\xa6\xa2\x00\x8ch\
+D\x88ql\x9ew6\x8a\x84\x06]7s7SW\
+\xf6\xa3\xf6j\x8b\xf2\xdf\xbfd\x91\xf295&\xdb\xc7\
+-\xaa\xa6Qw\x84E\xbd\xff\xb8\x010*\xc1H\x0c\
+Lo\x80T\x5c\x9f\xb0\x9f\xc5\x85 \x80[\xce)\x8d\
+63\x0a\xd2-dQ\x1b\xc1\xcd\xe5\x166\x02\xb0m\
+\x89O\x0a\xc9z)\x15\xe8\xf8~\x9bM\xda\xa3\xda\xe8\
+'%\xa4\x93\xc2\x81\x82\x88\x04\x12\x84\x8d\x02_\x07\x80\
+\x8b],\x92\x16\xaa=@sk\x83\xd9+Q`\xf1\
+\x8f5\xad\x81E\xaaXX\xa8$R\xd0[\x19\xbeH\
+\xb2wA\x03\x80DF\xa2#a\xeb`\x94\x92\x83R\
+!\xc6,\x96\xdd\x90u5\xbb\xf3\x98\xcftld*\
+\x9f\x91\xb8\xd1\xe1\xa23:\xd9e\x9c\xaax!\x05\x8f\
+\xec\xd6\xa2S\xc9\x8c:\xbe\xae\xf6}\x0b\xa7\x19\xbc\xa9\
+\x9d\x0c\xdbSd7I33R\xb1\x0f\x9fU\xd9\x8c\
+\x05\x83\x011\x1f\x89\x82D!b\x84\xb5;R\x02c\
+\xe9\xde\xb2\xa9\xd3\x22;\x97\xc93\x94(\x07\xc3\x9b\xd7\
+YhCYA\x1b\xde\xb8\xaa[Fb\x0c\xd2Ia\
+DG\x82\xce*\xcc\x06:\xfd$p \x88*\xd4\x02\
+y\xd3F\x16\xa3\x0d\x88S\xac\xd4\x178\x01\x1c1*\
+\xb0\x8bE\x12\x81\xd4\xc6\x18~\xbfl\xac\xc3Y\xca%\
+\x5c\xde*T\xe1q\x99\x08D\x13;\x12\xad\x83\x10\x81\
+\x84\xfa\xcf\xf5\x83\xda\xcal\xb1\x1d\x1bs&\xdb44\
+)\xe4n\x11\xc8$\x14h>\x03,\x90\xc8b\x8b\xc4\
+\xdf\x83B\x8c\xe8\x19H,T6\x80/\x01\x0a\xce\x9c\
+8.\xa9\xc3\xbe\xc3\xb7\xe2\x0a\x14\x90\x90Bm\xe7\xf5\
+2\xfb\xcd\xba@\xd4\x85DM\xdf\xcfhJ \xd5\xbc\
+?5\xe6\x83B\x8b\xe8\x89f4\xf1\x89\xf5\x8dg\x86\
+\xda\xd1rdu\x1f1S>\x97\xd6\x07\xe2\x870\x02\
+\x10\xc3S\xa7\x0c\x8d\x8a\x98AS\xe2\x14#\x03l\xe4\
+t\x9c\x11\xdf\xe4\xbaQ\x00a\xb3&\xf1#\xa8\x98q\
+ \xd3\x01%\xd1\x82\xf2&;\x97\x98\x9dT\x22\xe8\x94\
+<\xd3t\xb8\xb8\xc4\xa5\xd5.\xd5g\xf6\xfe\x9b\xb4%\
+`\xda\xcc(ui\x0aO>\xb8?\x00\x1a\xbc?F\
+\x14>\xa8Y\xeb\xcb4rD\x87\xb7\xda\xeb\xf5w\x84\
+B\x9a\xfd\x17\x86\x09\x00\xca\xd2\x83\x99o\x80L:\xc5\
+\x88\xb9\xd1\xc1$\xd3\xa239\xa4.\x03\x5c\x90\x08\x92\
+\xd0\xac! \x06uy(\xe8\x14\x1az=\x1ch\xce\
+3y1\xd9\x13\xce(@gkQ\xa0\xe9,\xffN\
+#\x15\x00\x8e$\xech\xc3h_\xef\x1e\xef\xa9\xe6\xa5\
+\xe8\xec\x0b\x7f\x0a0\xd61\x9dRD\xb9\xd8\xb7x>\
+\xb1\x17\x03\x10\x86A\x04\xd3\x82\xf5\x0c\xa3@\xfbN0\
+\xa0x=\xfc]\xc4\xab\xae.O\xef\xd5\x09\xc8\x00X\
+\xe0\xbepp\x03h\xf1z\xe8$\xf3\xef<7\x8d\x00\
+>>\xb8\xfe\xdc\x1f\xf6C\x0a\x09\x80\x0a\xf9h\xc7:\
+b\x9f\xe1\xfa\xf0z\xd8/(8>\xa8B\x8au\xc7\
+\xfe\xb2\x87\x00N\x12I\xee3TR\x00I\xb4#\x18\
+!P\x22\x12@=\xfb,\x80%\xd4x\xc4\x93\xd0<\
+\x00H\xe1\xdfQ\x9dgF\x1e\xa0\x90N+\xef\x8b\x91\
+>i\xdb\x8c\x0e\xb3H\xa3'\x9c\x1b\x03\xb1\xc8\x00b\
+(\xe8\x07\xf6Rq_\x86\x00\x0d@\x0c\x0d\x09\xf9\x86\
+\xbf\xcd^\x12\xe6\x00\xbf\x8f\xe7C\x09^$\x8c\x00\x15\
+Ut\xaa\xbf\x8e0\x95\x00\xea\x863\xf1\x00\xebh\xf9\
+\xe0\xb2\x035\x9fs\x80\xf5H>\xc7\xf5@\x13\x87\xe7\
+\x8b\x8e\xbe\xcd\x82\xcf\x92\x98\x06\x8c8\x02|\xb1\xee\xd1\
+2`\x1f\xe2\xf5\xc0LP\xc7\x9c\xd1\xce\xa0\xfc\x03\xf4\
+L[\x9e\xbai\x13 \xc0\xfa\x16P\x12\x9aM\xec[\
+z\xfd\xe1W\x8fz\xbd\x80!\xce{\x98\x01!n\x06\
+\xb3\x80\x11\x12\x0a3\x00\x02]\xbff\x97f\xe7f\x97\
+\xda\x90q\xd5\xef\x87\x5cC\xc3\xddrb\x9d\x0bX\x0b\
+@\x017\x1a\xec\xff\x00p\xcc\xed\xe8\xa9\x04\xfc\xfdz\
+\xd2\xf5\xfe\xba\xecu^\x5c\xcf\xd5\x10\xf1\x83\x11v\x8d\
+G}~\xc5\xa8\x8d<\x85\x06\x90\xec\x1e\x11\xa7\x8b\x91\
+\x01^\x97\xce\xc3\x18\x8d\xa2\xf1\xc1(\x88e\xe3?\xa9\
+\x85\xa0\x8b\x0f\x9e\x98\xee\x1f\x004\xfb\x01ZB\xf6\xee\
+\xb7L6\xd7\xac#\xb9\x10\x05S\x0b\xe0\x1e\xc0F\x85\
+[{y{E{E\x02J)l\x19\xb5\x10\xb30\
+\xecw\xd5\xa1\xedf)%\xd9\xcci\xa4\xf6\x98\x1e\xc8\
+o\x7fn\x91\xf6\xdf\xab\xc5 \xd6\xf30>\xb9\xc4I\
+\xe5\xfb\xce\xb2\xa8\x94\xf2\xf6\x81\x12\xf7'{n\xce\x0d\
+l*9gy\x1f0m\x18\x89f?`\xdf\xe6\x83\
+\xaf\xf9l\xa7\xe9\xd45_\xc4f\x8f\xfd\xb1\xdb\xda\x22\
+=\xf7\x9c\xcb\xb6{\xcc\x9d\xf2e\xcd\x8c#\xc69\xb1\
+\x8dEbD\xca\x95\xab\xfd\x93EZ_\x8b\xca\xdd\x81\
+\x06\xe2\xcf\xe4\xee$Q_\x1av\xed\x89%\xca\xebj\
+\xae\xb2(_\xcf_\xa2\xe4K\xed?\xdb\x7f\x1a\x03\x9b\
+\x86%\xd71\xa8\xee\xa8\xecK+\xa5\xbd\xb9\xc4-\x02\
+\xd0\xca\xb9>\x9e\xc1\xa2v\xa8\xc3\xc6R6\xce\xe3\x8f\
+ZT \x10\xbb\xca\x89\x17,\xd2\xe8\x8cF7\x01\xb8\
+\x9b\x15-\xca\xcf\xdff\x91\xf65\x80i\xc4\xaf\x87#\
+_0\xfc\x00Fi\x10\xc10WC\x01m\x9d\x00\x22\
+\x00\xf2\xb0\xed\x94f\x07\xf5Oh}\xe8\xf5\xb6{Z\
+\xd4\xeb\x14\x8c\x01i\x0c\x84\xab\x09\x22\x9c\xda?\xbam\
+,\x12\x03@#\xbb0W\x00\x22\x18Y\x0f\xd7\x07\x98\
+q\xd2\x8e\x98<q\xe3\xc4\x8d\xe6\x17i\xe5\xa5#\xf0\
+\xf8\xb4\x0b\xa9\xe7Br`6\x1b\x940\xea\xcer\x16\
+\xd5F!\x10$\x1dX\xa3\xab,\x12Bh\x85\xe5U\
+R\xb3?B\x05\xd7%uf\x0c*\x1e\xb3\x19tD\
+G_-qX\xf2\xbb\xd7\x06\x17\x08\xc91%\xbe)\
+\xea\xf9\xa1\xa9\x83~VO\x1d\x0b\x9b\x1a\x0ac:[\
+v<\xdd+\xb1\x98]\x92\xed\x07\xea\xf3F\xfd\x9f\xa7\
+v\x88\x9d\x82\xb1\x93DYN\xa8T\x91f[\x8b$\
+\x82G\x02\xa2\xd9\xd7\xe6N\x8b\xf2\xef\xa7X\xa4\x05\xc6\
+\x81\xa8\x03\xb8=\xcd\x22!VJ\x9c\xfc\x803\xe4\xf8\
+n\x8b\xf2}\xabY\x08\x19\xbcQ~\xa9fK\xf8\xa8\
+\x85\x0a\x9fW\xabx\x06\xf7\x87\x82\x04{\x96\xc9\x1bZ\
+\x94\x07\xe3\x14\x8b\xf2\xf3\xd7Z\x94\x7f\x9f[*\xb2\x1c\
+\x14\x1c\xf4$Rt\x16\x11\xaba\xe6\x11\xad\x07\x0eb\
+:\xcdl\x8c$\xec6\xe2\xb1i\x02|\xb0s\xd9\xd3\
+\x22i+\x90\x10Q0\x91h\xf1\xdf--\x9f\x92\x0a\
+K:\xe8<\x98\x88\xf2\x19\xb0\xf3\x17=@7\xa9S\
+2K\xa2\x84YZ?M\xdd\x10\xdcgs5%p\
+\xefL\x94|\xde\x17\x07\xbb\xd9ZMI\x14Xu\xbc\
+\xbb\xf9-\xca\xd7\xa7y\x84}Z\xd8\x10\x810\xeeW\
+b_Q\xeb\xcf\x12\xa0\xb6AJ\xd4\xd9x\xe8\xac0\
+\xd3J\xa1\x88\xb8\x133\xb8:\xb8\xfd@\xbb&\xd9\xec\
+q\xddu t~L=\xe4\x00\x00 \x00IDA\
+T_+qXr\xcb\x009\x84\x0a%*f\xa8\xb5\
+b\xbbh}\xb4ES\x02&\xd5\x7ffw\x83\x8a\x8b\
+\xda2\xa3\x15\x87Z\xa4\xf5\x0e\xe5\xb4\xd3T5\x893\
+\xafS\x07Pt`\xe9\xccaCG\xe2\xc3\xc1K\x07\
+\x8d\xc2\x89\xbf\xc3\xc1\x0b@D'\x90\x04\x8d\xaf\xf5\xf3\
+\xa1\xc1@\xe1\x0e\xb5\x8e\x8e\x01~\xbf\x7f\xb0H\xb6}\
+Z\x1fP\xb4\xb0\xd1A\xec\xc5\xfa\x18\xde\xc9 a\xa2\
+0\xe4\xf5\xa1\x82\xcf\x86\xcfAD\xc24\x83\x12\xa3\xf5\
+\xfa\x99\xbd\x10\xa5\xa33\xfc_\xbd\x7f\x0exTu\x1f\
+\xeb\xed\xaf\xba\x07\xd4\xf9\xfb\xb8\x0a3\x0a\x13\xd4\xc6\xf1\
+\xe1\x1e\xd8\xaaE\xa1EA\xa1\x0ert\x0eX7P\
+Ty?\x88\xec1Z\xc0l6@\x18\x1d;f\x81\
+y\x9e\xd1\xc88D#DR\xd9\xf6\xe3\xf9\x9d\xa90\
+gT\x85\x0e-\x00\x0b\x00\x14be\xacS\xf6!\x18\
+%$\x94tn\x07>\xedQ\x90\x0d\x0br\x12\xb5\x0c\
+0.\x914\x0a\x10O\xc2\x95\x83B\x9a\xdf\xcb\xdf\xf9\
+~/\x1e\x05\xb5/\xec*\x11\xdf\x83\xd9\xc0g\xae3\
+\x092\xcc\x22\xd6\x13\xf7g\xe8\x83\x0d\x90\x02p\xc1\xba\
+\xa2\x80\xa5\x10C\xccl\x8br~o\x91\x003:\xc9\
+\x00\xaeh%\x00 \xb1Np=\xa0@G3\x88\xeb\
+L\xe7\x94\xf5%\x80.\xd4\xc4\xe9\xfc\xd2\x19\x06\x00\xe5\
+\xfdp\xfd\x01|\x01\x08x\xdfC\x9bD\xfe\x9d\xf7K\
+\xc1\x0d\xa3\x81\xd7\xcd\x07\xe71\xfb\xc9P\xbd\x9f\x02P\
+\xd7%\xc4\xde\x00\xd0\xa0\xb2\xf35\xf7\x8d\xe7\x93\xe7\x82\
+u\xce\xbe\xc3\xba\xe0\xf3\xc0\xe5!\x18\x1a:\x17B<\
+R\xf9E\xcc\xee\xe2B\x04\xb5\x9e\xc4\x95s\xe2\x89\xb7\
+\xda\x83F\xa3\x04 \x0c\xc0\x90F\x07\xee-6\xa3\xfb\
+\x93\xf4s\xba.\x01\xd0\xf3>\x99\x15\x96\xd8+\x89o\
+\xdc7\xce!\x0a\xd2\x81J{\x88&\x92\xe8\xc2(\xd1\
+\xf9I\x9e\x15\x05\x15\xc0\x0c\x00\x13\x0d!\xd9\xc9\x06\xa5\
+\x16\xcd\x80=\xc5\xf8A\xb3@\x85#\xa3\x9a\xa3\x95\xb4\
+\xff\xfdT\x0d\x86I}\xa7\x8b\xc2\x8bYt(\xf91\
+\xaaj\x1d\xee\x89\x04 j\xf4\x81\x11\xb7pC\xa00\
+\xd7z\x0a\x86 \xb6\x83\x00\xef*\xec\xba\xf7ZT@\
+\xdf_\xc7\xb1\x09\xc8#\xdfb\x1d\x098\xe8\x9e\xb5H\
+\xebH\x9d\xcd(\xf0\xef\xb2\xa8yH\x8c\xfe\x92\x9f\xc2\
+D\x12S\xa5\xbb\xa9\xc4\xef\xb4\x8e\xee\xad\xf9u\xd8\x1d\
+Z^\xfe\x95\xb4\xfe3p\xb9`\xda\xcf\x00\xba`N\
+\x01d\x89\xea\x1e\x00<\xcf'\xcf\xcbOzf$\xb6\
+ehY\xc0$\x89\xdf\x8f}7v\xe0\xe4\x91\xfby\
+L\x1a\xdf7\xbew|O-\xe8c\xc4P3\xe5\xd8\
+\xc8\x8dW\xb6\xa83\xfbt\x9e\xa3\x11\xf1\x0e\xcf\x04B\
+l\x93Y\xedvQ\x0b\x8d\xe2\xae\x91\xa8\xe50r\xc8\
+\xeb\xfeo\x1fC\xad\x9d\xe1\xf3\xa9s\xc5\xed\xbdw\xac\
+uK0\xa5`\xe8P\x00K3g\xe2,\x8b$\x96\
+\xc7u\xf9\xa1EbfJ43\x1a(\x5c\xe7\xd9\xfb\
+}\xba\x9b\xd6\xa22\x8d\xd1\x02\x08\xc6\xad\x1a\x7f\xe3[\
+-\xaa\xa89\xe2\xf0\xce8\xde\xbc6Z\x1c\xf8z\xa2\
+\xe6\x9d\xdd\x9b\x16\x127\xffD\xcd\xeb\xc9o\x11\x85\x0f\
+\x9bJ\xb9. f>\xb1\xafE\x02,\x04$\x84\x8b\
+\x98\x00J\xdf=\xcf\xad\xb6\xf5!f+w4\xb4\xb5\
+\x82\xe1\xa0\x82:F\x9b\x8cw;Q\x81\x00\x1b\x90\xf7\
+\x11y\xea-4\x8f\xc8Ot\x1e\x86X\xf1\x1d\x16U\
+\xdc\x92\xbc\xc6\xf3\xf2\xaf\xa5|\x8a|\xf3\x10\x8bZ\x07\
+\xd0\xa0n\xff`Q\xbe\x9el\x91\x18\x05j\x80S\xb7\
+\x927s}i|vsX\x18\x00P.\xdb\xe4}\
+\x95\x18\xce\x95\xd4\xa6\xf5\xc02\xd3oR\x22&&\xe2\
+}\xb6M\x13\xd5\xd6\x8e\xdb\xb9\x13\x22+q\xbd\x00\x0e\
+L|\xe6\xe4:{\xdd\xdei\x91\x12,\x10-\x12y\
+|\xb5I\xa04\xbb\x126kP\xc7%R\xe8\xb3\xf9\
+\xeb\xa4\x19\x1a\xa9\xcb7\xcbY\xa4\x8e\x1e\x1dW\xcd4\
+\xbb\x88\xc7A:h~Xg\x15\xb1cq\xcaK9\
+\x80\xda\xdb-*\x82\xcf\xac\x09j\xa9\xcc\xee6\x97Z\
+\xa4\x0e\xba\x16@\xb8'<m\x91\x0aIu\x8aa\x08\
+\x8c\xbfT\xe2\x8b\x15\xe9\xeb\xf6.\xb1\x8f\x90\xfa\xf3\xb5\
+\xb1/\x94\xc4XlC\x9aZ\xd4\xbe\xb2Q\xb4_-\
+q\x98\xae\xe7\x1f\xea\x81\xda\x1cc\x91\x0a\x1b\x1d\x9c\xce\
+\xc0\xe9\xeaA\x88\xbf&\xa3\x16\x13\x17Z\xa4\x83^v\
+vo\xeb\x14\x81\x98#\xde\x81\x0a:\x9d1[\xf0\xb7\
+\xa7\xef\xa73E\x82\x82\xcd\x13\x89\x1f\x89\xc1\x1d\x16\xd2\
+|\x98,`\xea\xc0:+\xe6\xe5\xfa\xef\x92\x8d\x9e:\
+\xfe\x0eDm\x96\xd4\xa8E-\x8f\x83S\xd4yG\x8c\
+\x0fN\xb6\x7f\x5c\xb7_\xaaS\xc7\xc1j\x22%\x7f\xac\
+L\x91\xe8,\xe7Bj\xa9\x84\x84\xc3\x08\x00I\x97\xb8\
+f$\xect\xd4\x1e(\xf1`\xb2\xe5\xa3\xb0\x15\x15\x19\
+\x95\xcf@\x94\xf1\xab\xe5\xefb\xcfF'\x16@\x00\x84\
+\x92\xc2\x81\x04\x0d\x8d\x08\x9b\x05\x9c\xb9\x8aAzg\xfd\
+\xbc$\xe6D\x02\x8d\xd8\x1a3\xec$\x92\xf6\xbf\x7f\x11\
+\x93\xe3\xcfi\xc6\x97D\x88D\xd4\xd2\xff\x8f%*\x1b\
+*\xd9F\xf5\xdd9\x01C$\x84$\x10t\xa4\xb0A\
+\xc4\xed\x031\x1a\x00!6X\xf6\x0f\xb49H H\
+\xdc\x87\x9dSf\xc1D\x0d\x0d&\x0b\x076\xd7\x0b\xf5\
+\xfe\xb9\xf4{^V\xc7qK\x01@\xacC;>/\
+O\xa3\x06:\x10C\x93\xe1\xb7\x96J\xa5D\x96\xd7\xc3\
+s@\xa7\x89\xaf\x87vi$\xec\xd2&\x89\x02n(\
+:\xa6\xc4\x98\x99\xdd\xa0\xa2#J\xb7F\xbf\xae\xe2\xef\
+P \x0f\xfd\xd5\xe9\x882\xbbO\x82N'\xf7t\x8f\
+\xca\x18@m\x17\x17\x99Mu\x00B5\x97\x1d\x1f\xee\
+'q\xbfHTan\xf0:\xb2\x1b\xc8\xab\x09\xb0\xa5\
+ \xa4\xd3D\xa2\x02\xe0C\x81\xc2u\xe6y\xa3\xa3\x8b\
+h\xa3i7|9=\xc7\x14\xc2<_<7C\xcd\
+\x0c\x123~\x1f\x94f\xee\x1f\x85\x12\x7fw+\x01\xb8\
+\x1f\xd1,/\xcc\x08\x89\x11\x06\x85\x9e\x82\x9e\x02\x96\xfb\
+\x0f\x85\x97u\xc8zf?f\x1f\x80Q4\xb0\x0b\x84\
+\x0a\xfb\x96Y\xe5\x0f\xfa\xe7\xfe\xfe^\xd9w\xe2\xe2>\
+\xac\xee\xaf\xb0\xbe~\x18\x00W\x8by\x04#\x107\x0d\
+\xee\x1b\xfb\x0f\x89\x0fL\x1b\x0a9:\xc0\x00\xdaP\x8e\
+y]\x14\xe0\xack\xfe;\xe2h\x14\xfa\xdcw\x80\x09\
+\x98w\x14\xd0\x9cK\xec\xfbC\xd7\x04\x18\x1d\xbc?\x0a\
+^\xee\xff\xd0\xe5\x80\xcf\xb8\x15)\xa1\x8d\x9f\xa3\xf0\xe1\
+\xef\x02\x00P\xf0 2Ga\x05P1\xd4\xe4\x18\xaa\
+\x93\xb3\xeeX\x07\x8cZ\xc2p@\xa3H\xbe\xdbPs\
+\xa1\xc6\x8e\xb6\xb1\xf0\x8eR\xdf1\xff\xa7\x80\x0d\xecw\
+\x19\x19`\xffd\xdd\xe1z\xc2\xa8\x01\x80:\xb6\xbb\x12\
+]\x0c\x11\xe2C,\x92-\x17\x89+\xf7o\xe8\x22\x82\
+\x08*\xd7\x1b\xea-3\xfa\xac_\xee\x97\xc4\x1e\xa3@\
+F\xfb\x88\x19|D\x07\xb9\xdf\x02\x88\xe2\xf5\x0b@\x0d\
+Q,\xdd\xf7\xd8\x87\x98\xb5?\xc2\x22\xd9\xe9a\xf7\x8b\
+*\xfbSV\xaah\xa6\x7f\x97Dq\xb7<\xf0{I\
+T\x91u\xcc\xf9\x040\x09u\x1d\x11c\x007~\x0f\
+\xda/\x00\x5ch?p\xdd\xb1\xcbe\xd6\x99s\x90\xeb\
+\x81\xa8\xdb\xcd&+\x98\xce\x89aa\xce\x88\xd3\x0b\x16\
+uD54u,\xcb\xfe\x82\x80\x85\xc5\xd4\xe0X/\
+\x8d \xb2o\xe3\xc2#q\xe2X\xefhc\x08h\x88\
+\xfbC#\x84\xd1\x12\xce\x0d\x00A\xd6\x03\xcf\x05u\x80\
+\x0a[/\xd4\x8e~\x8b\xf8\xac\x03\x1f\xed\x07-\x9c\x02\
+\xed#\xc3\x93\xf6\xea}\xeb\xf9{\xede\xed\xa5\xc6\xcc\
+\xb3\x09\xfcqy\x8e\xc6w\x8e\xeft\x15u\xeb\xe4/\
+[5J\xda\x8d,\x9c\xca\xed\xcc\x01w\x1d\xbb\xb6\x9e\
+\xbb\xb8_\xf9\xd5\x5cN\xcf\xcb{\x93\xcf\xba\xf2\xb4\xf1\
+\x89\x16)\x0f\x02\xe8\x07\xe0\xf8\x7f\xfd\x18\xba\x17\x00d\
+\xb3\x0f\x00@\xc3teTD\x80*\xeej1\x92\xad\
+\xbalb\x17\x8b\x9a?\xc04p)9+\xec\xf7\xb2\
+\xca\xa3\x16\xc6Q\xb8\xeed\x91\x006\xd6\xb11y\xaf\
+\xae#)\x00[\xedo,\xca\xf7\xff\xbdw\xc10\xaf\
+*c\x1e\xc4\xb9}\xc8\xa4\x83\xad\xfei\x17\xb4(\x97\
+\xe9:\x8b\xaa\x15\xe0\x00\xf1\xecu\xbd\x86\xab\x85\x5cI\
+\x9a\x19-\xca\xcf\xdfeQ\xae\xff\xbf,\xaa\x0b\x00\xa3\
+\xe4\xde\xe6\xbd\xb7\x16\xf2!\xea\xceH\xc2=\x16\xb5\x01\
+\x8bh\x9e\xf1O\x8c\x81\xc2\xfak\x8fl\x8fj\x8fL\
+\xa3\x0d\xb2e\x8fsF\x0d\xc4`(\x98\x16\xc3\x855\
+\x8f\xee\x96\xb6(?\xff-\x8b\xf2\xefG[\xd4\xfc\xbe\
+]\xd2\xa2\x02\x8f\x13\x0bYT\x174\xc4\x00i\x1c\xc0\
+|\x8a\x11I\xd5\xbf^\xafX\xa3x\xc5v\xa5v\xc5\
+\xb4\xfeh\xf0\xf1|\xa9\xd17ybC\x0bu\xce\xdf\
+\x102\xf7\xb1\xe4O\xb9\xbe\xf7b\xfa\x82\xf2\xd8J=\
+\x89B\xf9\xe0\x12\x07\xa9#\x7fCU\xc5\xc6\x97\xd1\x11\
+\x17\xb3\x11\xf9\x98E\xda \x99\xa5\xd3\xacG\xa8R\xa3\
+\xce\xbf\xa6(U\xd6G\xfc^\xba\x00P%\xce\xb6H\
+\x94\x15f\x96\x85\x04c/\xd4<jQ\x91\xebn\xb6\
+\x12\xb3KDd\xefD\xb9\xd7B\x8f\xd1\x051\x12\x10\
+\x87A=1:\x85\x1c`\x88\xdb\x09\x81A=\xd5\xd5\
+P/N\x94\x90\x1f[\xd4\xd9\xb7@\x88--\xdaR\
+\xb6\x8b\x9b\xa6\x07\xc7\x10\xe0\xa9u .P\x0bS\x9f\
+\x0d\xffzM@A\xbab&R*\xb6\xa3\xeb-R\
+\xe2>\xa4\xee\xe2w\xb9\x8c\x85\xec\xb2N\x93\xdax\xb9\
+\xcf\xedgK\xec*\xf1\xc7\xef\xe8}\x1c\xa8\xdf\xb3X\
+*P`p\xacd\xa1\xaf?P7\xb0\x10\xb3\xc9\x85\
+\xea\xbb\x12\xa0!\xd1\xc0\xf6t\x8b\xd4!b\x86t7\
+\x9f*\xad\x85\x08\x8c\x0d({\x9799\xba\x17\x93\xda\
+$Q\xe94\xaa\x81x\xa0oD\xcf\xd5\xeb\xe8\x0f\xe4\
+R\xea\x04\xae\x9aDn`&\x18\xa1u\xeb4\xa3\xa3\
+Y,f\xddP\xe9\x0f\xea\xe2V\x9e\xf2\xd7Y`\x80\
+\x03f\x12e\xaf\x17\xeb\x0013!\xb2\x14>!\xfa\
+\x81\x8d\x0bbTP-)\x04\xa0\xc0\xe2v\xc1L%\
+\x89\x1d3\x89\x14\x08\x00k\x1c\xc4\xb8<\x90\xc8\x03\xe4\
+\xa1%a\x8c\x9f\xafV\xd5\xd1\x98M\xe7\xa0\xa7\x83+\
+\xb5~F9B$\x12W\x05\x12\x7f\xeb\x102\x8b;\
+9\x15n$*o\xfaTs\xa8.\x87\xdb\x073\xfa\
+tR@\x90I\xe8\xb1\x8d\xc2\xbd\x83\x02\x8d\xce3\x05\
+\x1d\x07)\xeb\x90\x0e8\x9dc\x12\x1a\xae\xd7\xa2\xea\xb0\
+\x00\x88\xc0\xc8XL\x07\xef\xc3\x93\xfed\xeb\x82\xd9e\
+s\x7fv\xffg\x13\xf3\xfcT\x9d\xe5\x9at\x82Te\
+\x87\xcc\x04\x0a[D\xbfx\x9e\x00D(\xf0\x87\x22]\
+\x14&$v\x00\x0a\xac\x07\xd4\xa1w\x97\x9d\xdf.J\
+,\x97\xd3u\x06\xb0#\xa1\x1a\xfa\x99s}(D(\
+@\xb4N\x03\xf8 Q%\xf1\xa5c\x81\xfa\xf7R\xda\
+?\xa7\xea\xd5\x97c\xfd\xc0p\xa1@\xc2\xae\x95uM\
+G\x83\x84\x07\xbb+\x12\x1ff\xfa\x01\x90(\x14y?\
+t\x08\xb9\x8e0L\x1e\xed\x19\x11\xd1\xa9\xe7\xbaq?\
+f\xea5=\xa2\x90\xa3\x90\xa6\xf0\xa3\xe0\xa6C\xfa\x82\
+EZWt\xe8\x18\xa9XM\xcf7\xcc(\x80?F\
+\x07\x00\x82y\x7f\xac\xbba\xc1\xc4\xfa\xa5@\x9c1\x98\
+.\xfd\xeb\x1fv\x90x\xfe\xe7\x1d\x88\x02~@\xfb4\
+\x22\x8e\x00u\xac\x1b\xce\x8fi\x94\x90?\xaf\x0e8\xc0\
+\x06\xd7\x91\xebC\x07\x92\xaf\x87\xa3&t\xf4\x00\x82`\
+*\xd1I\xa1\xb0\xa7\xe3-UjO\xe3\xf7L\x9do\
+^/\xcf!\x0c\x05\x98^\x00\x00\x00Hz]AE\
+\x07\xe0\xa0\x13G\x01\xcf\xeb\xa4`\xe5\xf7s\xfdXO\
+|\xe6\xef\xc0\x80\xe0\xfe\x01\x00 *\xa8\x8eq\x00V\
+t\x98X\x8f\xc3\xe7\x9b\xcf\xcc\xb63j\xc7\xdf\xe19\
+'q\x83\xa2\x8f\xe8\xad\xa8\x9fF\xc1m\xff\x99\xf2\x1d\
+\x01\xe8\x01\x10Jk\x06[L\x98\x0c$\xc0\xd1a\xe7\
+\xfdp\xbdpc\xe1\xfa\x08\xf0\xed>`Q\x81\xe3\xd1\
+s\x16iT\x93<\x8f\xeb\xcf\x08\x1fb\x8d\x00j\x9c\
+o<\xb7\x14\x84<\xff0C`\x92\xa8\xc0\x0d\xf1H\
+F\xda`\xc8\xa83\x1c\x7f\x87\x04\x98\xd1\xb6)\x16\xb5\
+\xa3\xd9m$U~i\xeeD\xdeJ\x1e2\x1e\xbd\xe9\
+\xe2x\x9a\xd1v\x8d\x8c\x8d\x120\xcb>\xde\xba\xa1\x5c\
+\xd5\xba\x00\xe8\xd2\xbe\x18\xeePt\xaeQ\x1b\xe7\xfd\xa9\
+\x10\x87I\xd1=\xda=\xe6\xa3L3:\x07\xcc\x80\xea\
+^-}N\xd9V\xca\xd5\x80}\xd1x\x7f\xce\xfc\xdb\
+F\xa3S\x00*\xb8y\xbdwp\x9e1\xf2\xc6\xebP\
+\x81\xefbp\x07\xa6Q\x0c\x98\x1bjX5\x9bXT\
+ )\xa8\xda[\x95\xb0|r\xda\x12\xa5\xe0n~W\
+\xe2\xe6\xc4\xc0E\x94\x0f&\x06\xcf\x01\x00\x14\xaeXf\
+\xcb\xfdZe\xa2\x96\x9c\xe5-#\x95\x88\xca\xb5\xeb[\
+H\x9c\xf6\xf1*\x1e\xe9\xbb\x98=\x17\x07\x94\xf8\xbc\xec\
+\xd6\xca\xf5\x1a/X\xe2\x84\xba\xdf\xf8\xc8\xd6\x93\x89r\
+\x8d\xc87ZR\xec\x9b\x06O\xfd&10\xf5>\xd0\
+\xe6\xe1\xf7\xb5OXT@\xc9\xab\x903\xdf2\xaaW\
+\x9ddF\xff?\x85?\xdf\xcfy\xc3\xf3\xc3\xb9\xc7h\
+\x86\xfd\xef\xaf\x92\xeb\x06\xe7\x99\xd6ch\xd4\xb0\x7f\x90\
+GP\xd8\xab\x91\xd9\xb9\x0f\xbc3-z-\x06l\xb7\
+i\xdc0R\x80h\xa6\x80W\xea\x95x\xbelWz\
+.im\xb0\xff\xe1\xae\xa0|v|\x89\x85\x8f\x92\xb8\
+\xebFy\xba\xfc\xf9\x0aJ\xbb\x18\xe2\x9c{\xcd\xc2\x16\
+\xe5\xb2\x1ck\x91\xc4:\xcd^}\xf6\xeaF\xd5,]\
+b)\xd5\x8fwH\x9c\xef?\xbe>\xdc.8\xb4\xa6\
+,\xcb\xbe\xac\xe6\x93\xed\xd1\x16U\xbc\xba}\xa6u\xd7\
+\x02\x1fu\x9a\xc5m\xfa\xdc.\xbe\xfd\x86\x85\xab\xfc\x7f\
+\xbc\xfd\xb83 |\xdf,U\xf2\xc2\xdd\xc2I\x13\x8d\
+}L\xfbhh\xbci\xa4\x13\xa0\xb1\xbb\xdc\xa2|\xfd\
+m\x8b\xe4&\xa1\x8e\xbf)\x0b\x98\xb6\x00\x0c\x8a\xd0$\
+`\xb4@.\x09\xa1\x09\xa0\xce~4\x02/\x18\xfd\xc4\
+\xf61FXaB\xb4\x1bXT\x1b\xc7\xc9\x13gX\
+\x08\xc1Y&\xd9\xe2ic53\x13\xb33\xe1\x06:\
+\x85\xbc<P\xcd\x9fK<*\xf5{S\x9b\xdc\xb3\xc4\
+\x1eu\xc3\xe8\xb6\xb2\xa8\x94\x22:\x93P9\x98E\x09\
+5S\xbb\xa1s\x0a1\x7f\xb7\x0e\xdcE\x94\x8f\x8eR\
+\xe1b\x0b\xd7l1\x0e\xb3\xa8\xc8J\x14|\x96V\xcc\
+U\xc5O\x02i\xe1\xc1\x95ob\xf8\xc3\x1b^\xf6?\
+\x89j%\x11\x95\xf6E\x8btcU\x00\xa0F\x19\x1b\
+0\x89\x1b\xf6xP.\xce-q\x9e\xece\xbeS\x11\
+#\x9bH\xb1\x0e\xf9h\xba\x12&6\xe5\x1fI\xadU\
+\x07\x97\x03\x1b\x1b\xa4\xc4\x0c\x11\x0b\x89\x18\xf9\xef3\x06\
+\xc4\xefK\xdcRm\xfc\x9a+-\xd2\xfd\xa4\xb3E\xc7\
+\x9d\x04[\xf77\xec\x15\xad\xa0\x9aRm\xef\xda\xeb-\
+4\xab\xf2-m\x84\xd7\xc9^\xe6\xd3J\x80V\xd4\x8c\
+\xdd;\xa5\xc5\xf0\x89\x94Pq\x80\x0fm\x92\xd8\xd0H\
+4\x84\xd86\xb3Y\x94\xbf{\x83E\xed\xa0b\x1f\x83\
+\x0b\x84\xe3X\xb7\xd7\xc4\xc7\xc5\x88\xee\xd4F3N\xeb\
+\xa0\x0b\x92y\xbf\xe1\xd2\xe1\x01\xb94\x95\xdb[\xd2\xeb\
+\xa5\xc0\xb02d\xaeDYf\xe3\x10\xf0\xe5\x00\xd4/\
+\x85D~]\xd4\xb4o\xab3\xb6\x8b:\x0d\xcb\xa5\x84\
+\x11\xb5\x5c\x15\x8a\x81\xbc\x7fF\x09\x0d\x9a\x0e?\x92_\
+9\x07\x0d\xaf\x83\x19\xa5:\x13\xd9\x1f\x0c|\xf05\x85\
+\x1a\x9faV0\x83GB JY\xa8\xba3r\x22\
+\xa4\xbf\xbb\xc2\x22]G^\xbf\x89J\xed\x90\xc4\x07\x01\
+\xa0\x8c\xa9\xb2W\xd5\x92\xf02\xeb\xcfi\x9dq\xc0S\
+\x90\x930Qx\xd9\xf14\xbd\x00\xa3\x17%r\x97f\
+\x1cA4\x19\xe9\xf1>\xef\x0b\xe9~\xf2~\x1e\xb3H\
+\xe2Utx\xf9LG\x8d\x83\x92\xc2\x11\xaa\xe8\xb2\x12\
+\x07\xe3y&a\x1aR\xe17\xe8\x13\xe0\xf2=\xbd\xa8\
+\xd7k\xfdA\x03\xa0\x03\xa2\xee\xd4\xc5U\xe4\xcf\xbaI\
+RG\x1f&\xf2\xc3Yz\xee\x13\x85\x08\x858\x09\x13\
+\xef\x83\xc2\x13\xe0\x80\x02\x90\xce\x01\xeb\x9a\xe7N@K\
+t`x_\x14(\xfc<\xaf\x0b\x7f\xf6\xe1\xba\xe3:\
+\xc0\x94@E\xfdI1D\x98\xe5\xff\x84\xb4YX\xcf\
+\x9c\x03\xd8\xb6\xf1\xfe\x18\x89\x01\x08\xe2\xfeP\x80\xa3\x1e\
+/@\xab{\xd8\xe2\xed\x80*@D\x07\x15\x92\x82P\
+\xda\x08\xdd\x83\xfd\xc8Fh*\xdc\xa7}\x1d\xe0c.\
+=o\x00\x13\x88\xc5\xc1\x88\xe0\xf5\x02T\xaf-\xfbD\
+\xc4%\xffj\x91(\xe2\x00\xafZgQ\xe02\x1a\x01\
+\x801\x18\x81\x8b\xf7\x0f\xc5\x19\xa6\xcf\x0b\xa2\xa63\x92\
+\xd2\x85KA_0\xa1\x0e<\xa3E\x02\xf6\x00|\x00\
+\x04\xe8L1CJ!)\xb1!\xb7/]\xa3\x8e\x9e\
+\x04ev\xa0\xcd\x12\x94y\xd6\x01\xaa\xf6tDx\x9f\
+\xac\x17\xee\x07\x1dC\xe5\x09\x01t\x00\xa8\xc3 \xe0\xfa\
+r\x1dY\xaf<\x1f\xfc^\xce7\xd69\x00\x01\x0cE\
+\x0a~\x12`\x9e\x03f\x9e\x87Z\x08\xecW\x009\x88\
+\xadQ0\xb1\x1e\xe8\xa82\xfa\xc7\xeb\xe3~\xb1^x\
+N\x87#\x0d\xbc^\x9eo\x9e/\xfe\x9d\xd7\xc1z`\
+\x7f@\xdb\x80\x06\xca\x16\x16U\x8d\x9bB\x9b\xbc<\x5c\
+b\xbe\xdd'\x8a\x00\xf2t\xba\x18\xc9\xeb\xce\xb0HT\
+u\x1a\x14P\x849\x0f\xd9\x7f\x00\xf4\x18\x99`D\x04\
+{Bf\xa49\x07~-\xc0\x90\x8e2\xd7{hs\
+\xc9\xba\xe2<\xe6\xeb\x5cHMJ\xa2\xa3\x88J2\x8a\
+c3\xea\xdfM\x14f12c\x04SZJ\xa3{\
+z\xcax\x8cl\xaa\x93\x1fv\xb6\x9c\x9f\x9b\x8f6s\
+\xc0\x8eB+\x03\xb5\xb3\xa4\xfdR\x8d\x8d\xa1\x9dfh\
+\x5c\x1c\xee\x11\xa3\xb4\xe1f%1\xc5\xb8\xbf\x96\x9d\xac\
+\xea\xf9\xedW\x9b\xaf\xaa\xe1\xb1\x933iz\x8d\x8c\x0d\
+{\xcd\x87\xd0\x80R\xa3\xce\x14\xae\x5c\xe3\x8aF\x0f\xfb\
+\xee\x90I\x05\xa3P\xfb\x0b\xb3\xda\xa3?[T\x8d\x81\
+\x98iV~\xd5\xfc\xac\xc4OS\x87V\x80I\xf3\x8c\
+E\xf9\xbcT\x89%\xf5u\x02R\x9a\xdd,\xbc\xb1\xe1\
+3\xf9\xee\xde\xb4G\xd5~\xb1j\xc2\xea\x89\xc8\x07Y\
+\xd7\xe4!b\x9cu\x17Y\x94\xcf_\xb0(\xaf\xfb\x0b\
+%\x0e\xa8\x9d^\x0a\xc4\xc8\xf3\xb5o\xb5\x7f\xb1\xa8\x05\
+:y\x033\xf00\x11h,b\x9b\x1d\xcf\xe1\xe4\x9e\
+\xf2\xed\xab\xfa\x1d\xc9\x9f]\x8d\xcbf\x8aE:\x9fa\
+\xc2\x18\xdcv^\xea\xbc\x02|\xb2~\xb2\x06R\x9b\xf2\
+\x02\xf2\x1a\x18X\xbc\x0e\x5c2l\xa6\xdbF\xb0\x0f(\
+\xf1\xf9d\x1bg\x1a\x0d\xa93\x1f\xf9\x93\xae[\x14\xfe\
+\xc6<}\xa02\xa2\xc9\xaf\x18\xa9\xa6\xd1\xd0\xeegQ\
+\xfe\xfb;-\xaa;N)w]L\xce\x1bv?N\
+\x14{Q\xeb\xfd\xd5\xbf\x91\xc435B<\xfaE?\
+\x12\xdem+5|\x019\xa3'z\x86\x0dnsn\
+\x97wLe\x04\xb7\x7f\xb4\xa8@\x80k,\xbd\xe1b\
+\x91&\x17i\xf5\xdc\xacV\xcf\xf9\xbf\xbf'Q\xf19\
+\x1f\xacZ\xb8\xb3\x02\x02>\x90\xf4\xa0\xc4\xd1\x0fM\xae\
+\x03G\xb6G\xb4G\x88)p\xab\xdf\xe7)\x96\xd7\xc7\
+\xe8)\xf9\x89\xc4\xb6\xa9\x8f\xca_/\x91FE\xd4H\
+bD\xab}\xd5\x22\x15\xe24l\xa9\xc7h\xd8\xdc,\
+\x8d#\xad\x87\xb0_\x95\x0dh4&\xb9\xaf\x1a\x15\x82\
+\xa9\x85\xa6\x06\xaf\x83F\x1a\x0c\x0bF\xbd\x01\x16\xda\xbf\
+Y\x94\xe5\xed\xb3\xef_I\x9dK\x9b\x15\xb0N\xdc\x0c\
+%\x8cb\xb1\x80E-D}\xb6\xe4;\x9a\xb58+\
+!\x1dt:QY%\x81\xbc\xdaI\x84\xfd\x83\xb1b\
+\xa2pq@\x9bt\xcd\x13IdL\x9dH\x17\xef\x9b\
+\xa6R\x80\x9bY-\xca\xdf\xdd\xb5\xc4g\xd3\xec\x09\x94\
+^\xfc\xd1M\xedp\xc1\xd4)\xa3\xd3A\x81\xa3\x19\x0a\
+\x1f%\xd8-\xa9eB\x09\xa6s\x07E\xcc\xd4P\x7f\
+\x91\x0e@|\xea\x99\xb5\x95\x9d\x9a#\xbe\x0b\xd4\xd9\x12\
+f\xcf|\x96\xee|1\x03.\xeb\x0bW?\xc0\xcb\xfb\
+\xb5B\x12\x91?\x12\xa1\xe6\x07%N\xad\x1d\x15\x9f]\
+Z\xbe\x8a\x08\x22\xd6\xd3>U\xe2I\x8d(\xdc\xa1Q\
+\x83+\xd2\xf5\xa5#\x03u\x9b\x83\x0aj\x1c\x07\xbe\x12\
+\xff\xe6 \x8b\xf2\xdf\xd7\xb0(\x0b\xe6+\x16\xe5\xf7\xcf\
+eQ\xf6\xab\xed-\x92\xd8\x10\x05\xbef\xe5#\xf1\xa3\
+S9\xf0\x1b\x7f\x0b@\xf3\xaeTh\xf1!\xe4\xd0\x99\
+\x0b\xd7%\x91Iu\xf8\xc3\xae\x0d\x1b?\x12`:A\
+lp\xf7X\xa4\xdfO\x82O\xe2\x22@\xc0\xaf\xd3g\
+\xd2\xf7!\xbef3\xef\x97\xe9 \xbc!!\x9cV\xf6\
+}(\x15\x06\xd8/\xa9\x00@\xdc&\x0a\x17Q\xc2\xa1\
+\xde#\xc6\x13\x94AQ\x81\xbb?\x0f\xd4]\xd9\xb0m\
+`\xe3\x80:\xb2\x12\x1d&f\x97\x958u\xa7X$\
+J\x1d\xb3\xda\xcc\x8c\xd2A\xe4\x80e\xd6\x1e\x86\x05\xd7\
+\x0f\xea5\x09&\x0c\x0e\xcd\x94\x81\xb4\xc6L\x1a\xcf\x03\
+\xd7g\x01\xd7\x09\xefg\xf1\xeeI##\xccxI\xdd\
+6\xee\x03\xaa\xd8F\x1c\xde41)\x04\xc8\xf9\xdd\xfc\
+`\xfa{\x88\xb6 z\xc5\x07\x88'j\xcf\x880\x92\
+\x88\xe3&\xf1\x1eQU\xd5y\xea~\xd9\x1f\xf8\x91\x18\
+\x91\x882#LaA\xc1B\xe7IL\x97(<m\
+\xe2\xfc\x8b\xa9 \xd0~\xe2\x00\xd9\xca\xa9\x83H\xc2O\
+\xe7\x8b\xce+\xeb\x93\xaf\xd9\xb7H\x04\x86\xea\xee\x14\x14\
+J8\xcc\xb5\xde}\xeb)0(\x08\x11G\x03h\xe1\
+\x00\xd3lv\x142$.\xcc\xea\xf2\xfcr\x9fH\xe0\
+\xe9\xf0\xd3\x89\xe0~PXA\xc5]A\xb6|k\xab\
+\x03\x0b\x05\xbc\xd3>\xc0z\xd4\xf5\xa2\xa3\x18\xcf/\x80\
+\x156\x87\x8c\xa2\xd0A\xe6~\xc9\xdd\xa4\xac\xc9\x1e \
+m$\xa2\xb9\x87\x12\xa9\xfdu\x9d\xd0xP\xe7 4\
+G$\xb2\x16\xfb\x99\xba2!\xd6\x06\xe3\x86\xeb\xc6u\
+\xe1\xfa>\xab\x8e?\xeb\x0f\xea1\xeb\x87\x02\x8e\xfbO\
+\xc2G\x02\x888\xdc\xba\xbaN<\x87$.\xdc_\xdc\
+d$\xf6\x13\xfb\x0d\xeb\x02\x80kn\xdd\x7f\x12I\xd6\
+\xd5k\xfaw\x0a\x81\x7f\x8a\xb1\xc1}\xe5\x9cf\xfd\xd0\
+\xf1\xc7mb5\xad\x13>(\xd4x\xdft\xe8Q?\
+\xe7\xb9\xa1\xb3OG\x9c\xfd\x92Bm\x0e%\xfe\x9au\
+\xe4y\x0d\xc6\x0f\x80\x00\x9dh\x80\x0c\xdd\x87\xf8\xbd\x14\
+\xde\x14\xfe<\xaf\x00Kt\xd2\x19\xb9\xe0\xf5\x02\x90\xb0\
+\x1e\xf9=0\x1a`\x08P\xa8\x92X\x03\xe8\xa0M\xc2\
+\xdf\x19h\x05\x04\x00@\x02\x0f\xf0\x02\x80\xc1\xfd\x1b\x8a\
+\xe3q\xff`\x06\x0d\x01N\x18,s\x84hf\x7f?\
+\x10\xe9\xc3\xbe\x18_\xe9S\xe4\x86\xc0\xeb\xa0\xb0\x00\x98\
+G\xbc\x91\xe7\x8e\x82\x9b\xfda`/\x1a\xb3\xf0\x8c\xde\
+A\xf1\xe69\x19\xaa\x9d\xf3~\x01\x00\x01\xba\x00\x88\x00\
+hX\x7f\xfc]^\x1f>\xe6\x88\x17b\xcf5\xd4x\
+A$\x99\xce\xfd\xa3\x16\xf52\xd31#\x8f,\xd9Y\
+\xef\x0b\xae\x91\x00(\xef\xccN\x87\x98\x1e\xebC\xa3\xa8\
+!\xce\x86\x98`e\x10\xf5\xf7\x97\x84^j\xea!\xfa\
+\xf7#\x8b\x048\x01\xec0z\xa1Q\x00\xb4\x85\xc2\xed\
+\x84\xfd\x15\xa0QLT\x801\x0a]\xe7[|\xd2;\
+\x8d>\x03\x1d\xf7\x85\xf3D\x00C\x88\xc0=bQ\xaf\
+7\xb6qa\xa7&\x8d\x83ff\x0b\x89\x8a\x1d$\xf1\
+\xb5\xf2\xfa\x9a\xc3K\x1c\x91\x80\x01s\xc7Y9\x8d\x0c\
+\xa31\xf0\x9f\xe6\xb5\xe6\xb5T\x98\xcc Ur\xa8\xe7\
+\x8c\x8e-\xac\x86\xc9\x0f\xa5\xfd\xa0F\x18\x8d\x1e\xdc\x03\
+\xba\xcd,\xaa\xe6\xd0\xf8\x5c\x8b\xcaH\x81\x09\xc3\x08,\
+n\x1d\xdd\xd8B\xa3\x88\x8fh\x04 \x8d<\xc6(\xd6\
+\xc0\xb6\x93\x82\x16\xd7#/\xac\xee\xaf\x8cFw\xfd\xd9\
+\xbd\x8a\xa47g\x968\xab\xee\x0f0\x9f\xdb\xa7-\xd2\
+\xa8\x07@=\xf9'\xebL\xf9\x0dL\xe2\xb0\xd9\xd4\xba\
+rf\xb0Q\xf7\xbfkQG+aNE>xv\
+\xef[\x1f\xf9\x1c\xe7\x19\xa2\xaa0Q\x94/\x05#F\
+\x8c\x80\xf6I\x0b\xd5\x19v\xfd\xae\xe9\x9f?\x1f\x01(\
+\xfbI{\x9bE\xaa\x83p\x1bA\xa3\xe0b\x8f\x00\xee\
+]\xbc\xf1\xd6\xba\x1e\xa3\xb1\x0c\x93\x82}\xf4\x89\xde\xad\
+\xab\xe4\x96\xde\xa0\xc5N\xb3}G;M\xfb\x0e\x7f}\
+\x93\xed\xf5\x85\xed4\xee\x0f\xeb\x97|\xccF\xb8\x0fm\
+\xbe\xdc\x1c\xea\xf5\xe3\xb4\xd6\x98\x0c\xdb\xd55GkX\
+}\xd5\x9dP\xd6\xdd\xb7=?\xdf\xdeG6u\xfd\xbb\
+\x0fw\x1f\xe9\xca\xfdj7\x93;\x9a\x01,\x07$\xfb\
+V:\xeck\xc9\x85ML\x98\xf6\x04\x8b*b\x1e\x9f\
+%\xa2\x8d8p\x8c\x1c\xa8a\xdd-jQ\xf3\x05\x1a\
+\x1b!B\xcfH'#\x18h\x04\x88\x89\x19\xdat\x97\
+X\x94\xcf\xff\xb5(\xafg\x06\x8bj\xb7\x1eL\x19\xdd\
+'\x98\xaa0\x82'\xc7\x8c\x82\x15\xd6\xbb\xd6\x99m\x17\
+\xb5\xda^H\xf1\xa2B\x98N*\x9f\x9f,Q\xdeP\
+\xbb\x8d\x85D\xf8\x8eI\xb6(\x88\xf01\x0b#q4\
+\xefxOWg#\x9c\xf2\xb1\xad\x1e\xac\x974\xeb\xb4\
+I\xf5\x93\xf4\x82x\xadj\xdf\xe6\x1d\xc8\x9d4\xabq\
+j\x9a\x89\xa2\x90Q\x82\xcc,OP\x82)\xb8\xee\x9c\
+\xd4\x8bl\x192\xf7p\xa2@\xf3\x80\x98d\xdc\x16\x89\
+\xda\x05\x90\x01\x92\xab\x83!T\xf9\xf1\xdb\xd5L\x90\x11\
+\xb0\xfc\x80\xb2\xce\xc2\xf2RY\xfcBU_\x8d\x04\x06\
+\xe6\x816\x82f\xfb\x12\xdb\xa9\x83\xf4T\x9den\xce\
+\xb2H\x05<\x075v\x1e\xa2\x96\xfa\x01pF\x05\x1c\
+\x1cy\xfdIJDP\x09%1\x82\x92\x8d\xbf6\x05\
+\x92\xf5\xd3~\xdcoL.\xe68\xadE\x12\x9f\xe0A\
+\xb3\x19\xaf\xbb\xf5ss\xa4\xc4nyw\xe4\xae\x1b\x1a\
+\x09\x00}x\xbe&\xe1\xa1\x10\xe2\xfa\xeb\xfb\xdc\xbf\xf3\
+OI\x85\xdf\xde\xc5|B\xb4oK\x09/\x05\xbb\x89\
+\xf6\xad\xaa\x99\xb3\xeb\x12\xe5\x11\x0a?\x89\xa4\xd4\xe6c\
+vt\x03\xef\xe5\xf6\xc8\xfe*5A\xf6\x8e\xc9\xe7\x85\
+\xf0~G?7)Q\xe38\xb0\xe8\x10\x19\xf0\xb4P\
+\xfa=t\xbaI\x18I\xec8\xc8\x11}\x93X\x09\x9d\
+\x8cP\xf1\xe7\x01GT\x0f\xd1D\x12OT\xa0\xb9\xce\
+P \xa1\xfa\x91\xf1\xd0\xd9\x1dRWI\x98H\x1c)\
+\xd09H\xce\xf4\xa8*\xdd\x9a\xc1\x0c\xd1\x1eQ\x9dC\
+]\xf4$\x8b\xca@\x89\xd1\x13\x0a^fn\xe5~\x81\
+\xedK\x14\x18V\xa6>\x98:!$2\xd83\xd2!\
+\x5c\xc7\x8d\x83jA5d\x92\x80\xbc\x93\xe8\xaf\xa2\x91\
+\x11\x12L\x12\xfe\xe7\xd4i\xe1\xf9\xb8M\xf6@t6\
+\xb1E\x03@ \xd1f\xdd\xcd\xa7\x19U!\xb6\x00I\
+\x01pd\x9b\xd2+\x9cZy\xb7\x17\xa8\x88\x8a\xf1w\
+I\x1c\x01\xd2(\xf8\xe9\xcc\x92\x00\xf3~I\xe4\x00\xbe\
+H )\xd4\xf9\xbd\xdco\x18\x0c\xfc\x1e\x12k\xde\x17\
+\x80\x02\x85\x0a\xb3\xd5\xec\xdbP\x9c\xb9\xae\xbc\xfe\x87\x05\
+,P@\xfeY3\xf0\x00\xb10\xa3\x00\xf4\x98q\x05\
+8\xd8\x5c\x00\xc4\x14u\x80\x19\xe5X]\xcf\x0b\x05\xa1\
+\x80\x04\x9fM_#\x15\x98\xa8\xf1\x22\xaa\x89\xe8\x1c\xeb\
+\x9e\xeb\xc8\xfb\xe7z\xd1\xb1d\x16z\x07\x0b\xdfG\xfa\
+\xfd\xf5\x15]w\x804\x0a\xf8eU\xd0/\xae\xaf)\
+\xf4\xb8\x1f\xf3\xab\xe0\x05H\xe1\xba\xf2}\x03\x0ar\xdc\
+w\x9e_\xad\xa7(\xa0T\xa0\xc5>\x05\xa0\xb7\x9dF\
+\xcf\xee\x90\xa6\x8d\xf6\xcd\x0ej \xe7\x0b\x05+\x85=\
+\x94_\x00\x80\x09\xbd\x1e\x0a\x16\xd67\xeb\x87\xf7\xaf\xd1\
+\x9a\xb0[CD\x11F\x1c3\xff\x00At\xc8)\xc0\
+\x00 \x87\x858\x7fo\xa0u0\x9c\x01\x8f\xf3\x92\xeb\
+\x08\x00\x8a8\x1e@\x16\xf7\x89\xfd\x80s\x8eQ\x00:\
+\xf8\x14\xf44\x1e\xb8N\x83\xc25D1y\xbd\x00\x10\
+h \x00\xfc!\xf68\xb0\x19\x0c\x80g\xe8\xde@\x01\
+,\x11\xde\xb0\xbb\xd3\x8c\xec\xdb\xd6/#%\x9c\xff\x1a\
+a\x09\xcd\x09\xde/\x05'\xbf\x97N!\xe7\x22\x80\x89\
+F\xe6\xba\xaf[$\x1bP\x9d\x97\xb8\xact\xcfY\xa4\
+\xc2\x9f<K\x1d\xfd(\xe4\xd4\x89\x8b\xc2J\x85\x83\xdb\
+\xeb\x1e\xf5\x7f\x10\xfd\xe5>1\x1a@A\xc2\xa8\x07\x00\
+.\xe7\x85\xce\xcf\xe8\xcc\x8a\x82\x1c6\x89\xd8\xa4\xe2\xea\
+\xa0\xf7\x1f#\x97\x1a\x19\xe4<rW\xa6\x7f'\xe0\x81\
+YiD\xf2\xa6\xb2H\xb3\xff\xfb\x8d\xf65-\xa9\xf8\
+y\x89\xa8\xc5\xfd\x87\x99\xc2}\xe19c\x9fb\xa4L\
+\xfb^\xcc\xb23\xaa \x8d\x83\x18\x01\xe4y\x84\x11\xc7\
+s\x05\xe0\xc7\xfaD\xab\x00*\xb0\x80\xf3\x92}^\xeb\
+#\x00\x14\x987\xe9|e_\x22_\x12\xc5\xbe;\xd6\
+\xa2lOKZ\xa4\x0e&\xeb\xde\xfa\x8c\xbf\xaab\x9d\
+\xcdM\x16e\xfb\xf8\x80E\xea\xf4\x9f[\xc2\x0a\xfe\xa9\
+J\x94\xf5\xdc\xbc\xd1\xfc\xb7\xf9\xafkR\xb8\xe6\x95\xdb\
+\x8b\xbf\xafjP9%\xdf\xea\x8a\xeb-\xaa\x96D\xbc\
+\xdf\xe9\xb4\x1f\xa0-tt?r\xe6L\xd7\xdf';\
+\x5c;\xb5oMZ\x01\xe4!\xd2\xa4pw\x9e\x8b+\
+\x83\x18\xdfyo'\x1e\x99\x00M\xee\x9b\xed\xe6\xaf%\
+{\xe3Q\xf8\x1d\xbdu\xc4\xca\xb2\x87\x7f\xa8!uE\
+\xd5Lp~\xc6>\xe5\xef~\xbd\xc4\xd7\x92f\x9a\xb5\
+\x0d\x1e\xab#\xd3\x8c\x08z{\xf1\xb3\xe9\xf9\xb6\xacc\
+\xf3*b\x1b\xccek\x1b\xed]5\xcb\xba\xed-\xf4\
+\xfc\x8dTP.\x93f\xf4W\xb0H\x05\xe7\xab\xbd\xbd\
+bw\xa6Ey}7Z\x94\xcf\x1f\xb0\xa8\xf7\xa1\xdd\
+\xcb\xa2\x8a/G\xa7]\xc0\x1a\x8c\x0c\x0a\xcb(\xc0\xc5\
+\xd4m_\xb6H6v\xaa\x93\x10}\xf4N\xf9lU\
+C\x00& 3\xf1\xa5\xfcu\x86^\xf71\x8d\x16\xe8\
+\xba\x94*\xf3\x13\xad\xd5=7I\x5cz\xe1~\x7f\xef\
+\xbe\xdd\x8bB\x86M\xfa\x9a=sm\xe2+\x13_\x9d\
+\xf8J\xb5\xa7\x87\xea\xce\x08n\x8c(\xdcY\x9e\xaa;\
+S\xbe\x84\xb6\xc9\xcf\xba\x9fv?\xf5\xc2\xf9C\xed\x87\
+\x1cp\xeb5\xe7h \x03x\x00\xd0\x8b)E\x03\x95\
+Q\x01\xf2\xc0\xe8\xecK|4\xdc\x9d\x10sE\xac\x0f\
+\xcd\x0c\x80!\x98/0\x0c\xc4\xa8\xc7.>\xbe\x9f\xba\
+E\xf6\xed\xe1n# \x17\xbb?\xb7\xab\xb4\x11\x87\xd5\
+-R_\xd6\xffO\x97\x90/\x12a+\x03\xce\xd2\xc6\
+h\x1d\xb3\xc5K\x94\xc4\xba\xfd\xb1EB(\xb0\xe1\xb0\
+\x99\xa0K\xca\x1f<\xdb\xa2\x22j\xdd\x1f,*\xb5\xd7\
+\x91'C\x1cO)aj\xc8\xffc\xa1\x855OE\
+\x10\xf1\x97uQ\x89i\x12U\xde:\x22\xdb\x09A<\
+1m\x5c\xa8\xc0\xda\x03\x96\xd4\xb8\xd9\xf0\x1d\x07\xb7\x0d\
+i\xb1\x12\xbb\xcb\xf7s\x96J\xe9\xf7\xf4cN\x15B\
+\x0f'M\x80\xeb{[\x16\xc3\x87\xdc6L\x09\x1a3\
+G1\xabt\x97\xa7\xfa\xf1\x80\xfa,\xd0\x91*\x9c?\
+\x946^Q\x88\x02i5U\xcbV\xa3\x02'\xd6\xce\
+T\xfb1\x8bJ\x85\xe4\xdf\xe3\xe0\x87R&?\xfb\xb0\
+\xf1\x91\x1ag \xedtd\x86\x859\x1d):`\xf6\
+_\xff\xd5'\xa8\xdd\xc6o9X|\xb6\xac\x9b\xce\xa2\
+n\x00>cx{Jx-m\x5c)\xf9\xc4\xbe\xe1\
+\xe4\xdb\xa0N\xc5\x8c\x9cm\xb4o\xa4\x84\x14\x8a\xbb\xa5\
+\xfb\xcbW\x15\xd9\xb7\x89\xa1A\x99\x11\xe5:\xec\xb98\
+\x00\x0cQ\xb3\x91\x91\xa9,\x12\x83\xc3\x80\x8c\xe9\xaa\xdf\
+.\xf79f\xf5x`\x1a\xef!V\xca\xab!\xf1\x1f\
+J\xcf\x85\x1d8\xb7kf|\xef\xd4\xa9\xc3\xff\x95\x8e\
+\x18\xa2B\xa2\xd6\xb3\xd1a\xc3\x18\x1f\xd2j`\x1dA\
+\xe5\x8b\x99\x1f:\xdf\x14\x000;\xbe\xe1Q)\xb4\xa2\
+6r\x9f\x82\x89\xc0\xfd%\xb1'\xd1%A\xe7\xf9\xbc\
+I\x22uP\xb3\xa18C\xa5D\xb4L\xae\x0a!\x0e\
+\xba}\x8f\xa0\xba\x1d\xe6\x95\x02\x12\xee\xac\xeb:f\xa5\
+\xe5\xc7M\xe7\x86\x023\xec\x1feG\xe2\x89\xe9\xd7\xaa\
+Ha\x88\xd8\x00l \x0ei\x14\xf6\xa5\x05\xc4\x1c\x9f\
+(\x97$>\x03\x95\xfb(T(,\xeeT\x82\xc7l\
+\x96\xb9h\xfc\xc8;\x05O\xdaL\xa0=\xb5\xde\xc1\x87\
+*\xac\x84\xc2\x81\xcfL}~D\x89\xa8\xdc\x1cB\x04\
+U\xc8\x7f)\x7f\x16t\x9b\xa5\xdf\x8cn\x1c\xdd\x98\xdc\
+\x1c(\x1c\x99\xad\xa5\xa0\x1a\x8e\xca\x00\x1c\xf1\x99\xe7\x81\
+\x7f\xa7\xb0\x00H\xe33\x05\x13\xc0\x07\xeb\x88\x82\x88\x19\
+t\x0a.:\x9e\x00)\x9a\x15\x8eB\x10\x00\x82\xc2\x04\
+1Q\xc4\xc8~\xddS\x07G\xa7\x8dN\x1d\x9d\xea\x85\
+n\xff\x5c\xc3\x08\xe2\xefT\xaau\xaf\xe6\xcf\x8c6\x05\
+\x22L\x00\xbe\x0f1\xc8y\xd5\x99\xd4\xcc^h\x8a\xe8\
+9\x08\xdb9:\xa7\x00(\xac{\x127\xdd\x1f(\x8f\
+Q\xb8q}\xfe3\xe8\x94\xf3|/\xa5u\xc4s\x88\
+\xe8\x99\xee\x07\x9d\xc9\x00r(\xf0)\xbc\xb0\x05d\x96\
+\x16\x8d\x04\xc4\xe1\x00<T0\x86h##*\xec\xdf\
+\xbc\x9e\xa9\xb5\x1e\xf0\x11\xdfD\xf7g\x0e\x15\x8c\x14\xb6\
+\x88\xdf\xf2\xfe\x07\xfe\xd7\xd1\xf1F\xec\x91\xc2\x17\xa0q\
+\x0b\xad\x13\x15Z!\xfe\xa7\xd7\x1b\xfb\x05\x22\x9d\x12\x9f\
+\x8bu\x03@\xce\xeb\xa7\x00\x07P\xe2y\x84\x09\xc4\xfa\
+\xe5\x83\x0e8\x8c\x04\xde?Ti\xbe\x9f\xe7\x9c\x02\x9d\
+\x11\x0c\x80\x00\xae#\x85%\xaf\x03\xc6\x09\xae\x16\x88S\
+\xc1da\xbfd\xdf\x01\xd0`\x1fD\x8b\x84u\xcc\xfa\
+\xe1|\xe5\xf5\xd2y\x87A\x02\xd3\x03;b\x0aJ\xde\
+'\xcf\x0b\xfb\x04\xda#\xac_l\xf8pg\x18\xba\xa1\
+(1\x8c\x91\x00\xf6\x0d\xd6\xb5\x0a\xdf\xf6\x97\x16I\xe3\
+\xe8\xe3\x16\xe5\xeb\xe7-\x92\xcd1\x9f\xf5\x9c5\x1f\xb1\
+(?\xff\x13\x8bdK\xab}\x1ef\x98\xf5\x89\xcd\xa6\
+\x0b\xc3+\x8bu\x00\x00 \x00IDAT !D\
+!\x07#+\x01\x9cp\x7f\x10k\x06\x18\xd0yA\x03\
+)\x0a\x12\x15.\xbc\xbe`@\x90\xcf\xb1?\xb2\xde\xea\
+z\xe9\x19\xab\x17Z\xa4u\xb6\xfd\xa4\xed&m\xe7@\
+t\x0fx\xe3f#f\x5c0S\xb8\x7f\x88\x17\xa2\x85\
+\x02\xe0\x0f\xb3\x89\xc2\x1b\x8d\x035\xa4\xb0\xefm/\xb4\
+(\xd7in\x8bJ\xc1\xf6\x91\x81\xe3\x95\xf7N\xad\xeb\
+\xb1ou\x9b\xa11\x83\x06I\xe4}\xea\x1c\x97w\xef\
+\xee\x0d\xe1\x92\xa5\xef\x0b\x80_yc\xa8\xb9\xcb\xa7\xbd\
+y\xafErO\x12c\x22\xec\x13\xb5_5\xff\xb4\xa8\
+6p\x88\xb35\xd7Z\x94\xcf\xbfl>\xdd\x94<\xa5\
+Y\xdc\xa2|^\xbe\x07\x00|\xd6\xfb\xcd\xdaHh\xff\
+k\x91\xd4\xd6Ea\x86I\x5c\xeeN\xaf\xb6/\xfbG\
+\x1f5\xdc\xdb;\xf0\x9e\x1f7\xf7\xda\xf0q\xf9=\xe7\
+\x978/\x89\x8ek4\xcc\x1b\x0dfG\xbc^\x89)\
+\xda\x17\x96H\x9dT\xdb-\x9f\xae\xcc\xc5\xc8O9\x87\
+i\x5c\xf1\xfc\xd09\xb7\x11\xa9\xd5\x93M\xb2\xc1;7\
+\xab\xe3~\x8e\xdc\x7f\x8c\xe2\xfe\x19\x0b\x01 \xef\x17\x80\
+z\xbe\x00\x93s\xb5o-Q\x1b\xae<_\xa3\xfb,\
+\xca\xcf=aQ\xeb\x87\xf1\xcb\x16U\xfc\x131[g\
+>|0\x01s\xdco\xb9xt\xb3[H\xab\xad\xdc\
+\xcfv\x07\x8b\xf2y\xa9v\xe9\xd6D\xe96\xb4\xa8\xda\
+\x02\xcd5\x16\xb5nb$\x97\xe7\x1ej:\x05\xfe\xf8\
+=\x16I\xf4[#\x1a\x00\x101j\xc1\xa8\xcdi\xce\
+\xf1\xa8\x0d.\xf2b\x8d\xeb\xa2\x92\x8f\xe8(*\xff\x14\
+\xc41\xb2\xb6\xbe\xf2G\xe5\xfb\x00u\xe5\xbb\x1d\xc8\x88\
+\x86\xed\xda\xfd>\xd8]h\x914V.\x96\xe6\x09\xf5\
+\xcf\xfd}}\x81\xcb\x85\x99\x09\x9b\x06\x07#\x10\xdd\x97\
+,R\xbeB^\x84\xb6\x09\x1ah\xecg\xd4\x036j\
+\xfc\xfb\xb4~`\xbeq\x1e\xb0\xdf\x03\x00\xa2\x91DC\
+\xfb4\x8b4\x82\x07\x83\x8b\xbfO^)\x9bRFs\
+\xd8\x97\xf8\xf9\xee \x8b\xaa\x01\x03Cf\xf2x\x9b\x12\
+\x9f(\xf5\xc2\xea%VS\xe1g\xc8\xe0\xde\x16\x15\xe1\
+\x852\x83\xfd\x80\x1f\x1c\xfb$\x7f{u\xbc\x9a],\
+d\x0f\xb6\xa7\xec\xe9\xfe,d\xf9\xef\xa2\xa0_Q\x1f\
+Hf\xdf\xbds?S\xedl7G\xf5\x08\x18\x85\x0f\
+j\x9ba\xf7!\x1b\x83\xf6g\x16z\xc3\xbf\x16\x95e\
+\xbaJ\x19g\xe3\xa3\xb0v\xc6\xc2\xb1\x95b\xed\x05\xc4\
+j\xa9\xf01\xdb\xb8\xc7\x85\xb8l\x9d\x80\x00l$@\
+\xc6\xd9\xd8Uha\xff\x11\x9dR:nt\x0aP)\
+\x17%\x16[\x13/\x5c\xdf+\xea\xe9|\xc9\xf7\xdcf\
+\x0b\x17\x97\xd6\xc1W\xa5b\xfdhb(\x90P\xda\x04\
+\xc8\x01Iu\x9e\x0e\x01\x08;j\xbeP\xecH,\x98\
+\x85\xb1\x89\xb0\xab\xd2lX\x9e\x95_\xbdj)8p\
+\xf3\xc14\xc3B\xc2b<\x89\xf3\x92\x8d\x0f\xef\x1f*\
+,\x9d!:\x8d\xcc\xd4S\xa0R\xb0I\x84\xcfg\x7f\
+\xd6\xab\x00Bw\xabE*\x5cE\xbd\xa3@ea\x87\
+\x88\x91\x1e$\xc4K\x1c1[@\x09\xea\xb6\xe9\xfdQ\
+\x18J\xf3\x80\x8d\x1eQ\x0eG6\x0f\xd3A\x7f}\xa2\
+\x06\x22:g\xe9\xd4\x7f\x12\x83\xc2\xc4\x816P\xa7\xf1\
+\xb6\x94\xb8\x91\xe82\x0b\x86\xdd\x0f\x0c\x00\x0a\x00f\x0c\
+\xf5}\x1c\xc0A\xbd\x16\xb0\x83\xcaitBPy\x15\
+\x85\xd1\xf0KC0\x03I\xa4\x93F\x01C\xa2O\xa7\
+\x11Ua|\x9b)\x0c\x04$\x18\x0fg\xb4VJ4\
+\x95\xb8\x19L\xe6@\x99\x8d\xc8\xfc2!\xbc\x1ch\x02\
+\xfaB\x95\x9d\x11#\x00\x01\x18(P\xed\x04\xa0\x05#\
+\x04;R:~\x14\x166\x81uDb\xf6\xd0\xd9\xc5\
+v\x8cDs\x17=w$\xea\x02\xc4\x98\xd5\x0eU\x7f\
+\xee\x0f\x85\x05\x88<\x9dc\xa8\xfd\xec\x03\xdc\xc7m\xfb\
+\x19\xf7\x10!E|\x14\xfb%K\xccfq\xaa\xa0\x1f\
+8n{\xf3dE\xf8\x83\x02I\xe2N!\xcasA\
+\xa1F!\xcdg\xd6\x1b\x94E\x0a\xac\xe1h\xc5PD\
+\x8c\x7f\x87\x09\xa1D;\x00\x14\x0a\x18\x12bF\x08H\
+\xa0\xb9>0K\xa6\x8f\xc2\xad\x7f\xbd/\xe8\xe7\xe8\x5c\
+\xd2\xf1\xe6yc=\xc2\x80Q\x87!\xd6\x1f\x89'\xd4\
+D\x183\xd8\xc4m\xac\x83\x0f\xe0\x84\xebC\xc1Ea\
+\x01\xb3e\xea\x81H\x1e\x0c\x05u\x06\xa1\x86\xc6\xeb\xe2\
+~C\xed\x9f\xa4\xc2\x19U\xf2\xa1\x8f;\x1f\x14z\x14\
+\x96c1\x90\xea\xec}\x0fD\x00\xb0P\xa0\x03x0\
+\xd2\xc2u\xe6\xf5\xb3/\xd2\xb1$Q\xe0\xf9d\xdd\x00\
+P\xb2\x1fl\xa1\x02\x15\xea>\x80\xc8\x90\xa1\x80\x9d+\
+\xa3\x0bb\x98E\x82\xf1\x90\x18\x04\x14\xd2\xec\xdf\xdc\x7f\
+\xc4\xcd\x10[\xc3F\x8a\x8e\xda\xb0\xb3\x0f3G\xf6\xa2\
+Q0\xb1\xaeY\xa7\x00\x16\xec7\xbc/\x0a<\x15\x0c\
+A\x85G\xeb\x82\xc4\x8c\xeb\xc8\xf5f\x1d\xf1\xdfu.\
+\x85\xeb\x0c\xfb\x08\xe2\xa7\xac?\xee'\xaf\x1f&\x19\x00\
+<@\x1c\x8c/\x0aX\x18h\xc3\xf5H\xa7\x89\xdf\x87\
+x&\xef\x0f&\x12\xf7\x8b\x9f\x1b\x00X\x01\x88\xd3\x19\
+Vg=\x12j\xce_\x00*\xa8\x9f\x14\xe8<\xc70\
+\xfbD\xd9\x85J\xca\x08]4`\xf0\x9f\xb6\xf3m\xc3\
+*\x1a\x08\xb3\x87\x04\xbd9\xc7\xa2v\xbe\xe8\xc8N\xac\
+oQ\xf3\x9e\x00\x92\xd8\xb7Y\x8f\xacOFJO\xed\
+\x01E\xd7\x18\x9a&\xd9\x98\x0d\x00\x8f\xe8\xec\xb3\xaf\x91\
+\xf7\x00\xf0\xc1x\xe2\xbe\xf0\xf9x1\xf9`6\xa1\xb9\
+\xc1\xe8\x96\x18k\xa3\xbf[${Q\xdcD\x18\xa1\xe4\
+\xbc\x16\xd3\x13m\x89\xb0I\xc65\x05W\x03\xb4-\x00\
+\xb6y\xfe)\xa0\xe8\x08\xb2.3\x83p\x89\xb4n\xd0\
+\x0eR\xc7\x17_ql\x11\xbb%,j\xa1\x1a\x22\xcb\
+\xda\x7f\x9a\x93-R\x1e\xa4\xbf\x07\xf0\x1e\x8c>\xe5\xc3\
+\x91\xafK#\xa4y\xc4\xa2\xdc\xdf='\xf6\x9a\xd8\xab\
+\x8e\x0a\xd08jn\xb7(\xff\xfe\xa3\x89\xd3'N\xaf\
+\xc0\xb3\x8b\x05\x96\xeb<^\xc7\xa2\xbc\xaew[xA\
+\xdc\xef\x0f\xd3\xf6@\x0f3\xe4\x88\xa5\x8d\xcf\xb1H\x22\
+\xc2bl1#\xdd\xech\x91\xf6\xe3u}\x88\xac\x07\
+\xca>\xaa\xce\xeb\x99\xa9\xb1e\xf7\xcf\x98\x8eg\x958\
+3\xe5\x81\x5co>\xa6sNB\xbf\xef\xcf^\x0bw\
+\xbf\xdf\x1fO\xe2\xd9j$x\x03\xe0\xc3\x95a\x81\xcf\
+;\xeb\xc2G\x04\xce\xac\x85`s\x80E\x15\xc3\x0d\xdb\
+`ij\xb4\xef\xb7H#\x9f\xba\xdf\xce\x88\xbd#\x89\
+@\xba\xadW\xf9\xfc7\x8b\xf2s\xd3Z$\x9fy\xec\
+\xe7\xee\xb7\xa8\x0c\x00\xf6\xeb\xe6\x8e\x12w&@S\x7f\
+\xbf\xf9\x90\x85\xae\xfb\xd4\x15\xa8iglgjg\x12\
+ \xb7\xa3D\xf4\xac\x00?\xae\xc4\xf1\xa2\xfe\x7f\xb9\x8a\
+uv\x9bu\x9b\xdb\xe8\x06\xf5K\xe4C\xe4;\x02\xfc\
+b\xd4[\xb6\xc8\xe3\xc5-\xaa\xabI\xb7\x98l2a\
+\x840\x1a'F\xe9\xf8!\x8b\x04\x0c2Z\x8b\xb6\xc7\
+\xbd}\xa1o\x92\xe1\x0e\xa0*\xcf\xa1P\x0e;p\xec\
+$a\xe8\xa2\xb5\xa2\xd1\x8b`\x0a!\xee\xc9\xc8\x0e\xe7\
+\x0e\xf9*\x0d\x16\x18\x93\xb2\xad\x8cs\x89\xbc\x0c;W\
+\x80\x001\x0eB\xa3\xe5\x8b\x16u\x7f\x03\x10k\xb7\xb6\
+H\xdaS\x9f\xb1\xa83\xfe\xd1\xa0`\x1f\x92\xe8:y\
+\xd7\xe4v\x8b\x12[\xea\x85\x95\x02p\xf2\xcfK\x5cY\
+\x0b\x82\x98a`\xb6\x1e\xb1%\xcd\x9895\x7f\xc7d\
+\xdbe\xe9\xc9{\x92\x18\x8cu^\xffRg\xa0\xb4N\
+\xfbY\xd9\xa3\x12\xa2Mag3Y7:\x05\xe6\xa8\
+\xe6(?h|\xf63\x0e2!9\xd8\x01\x06EK\
+b+\xcc@\xb4/XT\xe4+f\xb2\xb4a`\xff\
+\x85\x9d\x9fi9\x9a\x9a\xa3#p\xf7W&\x82\xa7\x0b\
+\xefK\x89\x90\x11\xbb\x8eI\xb6\x12\xd6\xd1_\xa7\xfe\x9e\
+\xe8\xd0\xa2\xae\x0a\x22,\xdf\xf48\xf0\x00\x06\xec\x989\
+\xbd\xce\xc6\xd3\x11\xe0\x80\xc1..\xa8\xd7F\xf5\xd99\
+\x8d\x0eha\x07\xf5G\xa2 \xe1_k\x85\xf2IJ\
+D\xe7\xa9\xe20\xe1\xab\xca\x8c\x8b(\x83\xed\xa1\x16\xd5\
+\xc7\xbd\xf9\xb2E\xf9=\xafY$f\x85:\x8d\xdd\xb5\
+\xa2\x9eq\xb0\x82\xa4\x028(\xf1\x09\x11,\x0ed;\
+\xae7\xd3&\xbbdJ\x1c)\x5c\xec\xa7\x16\x162\xba\
+\xb5f\x95\x0eVG\xe0}I\x95<\xdb\xfa|6\xd9\
+\xfd\xecg$\xbeDA\xda\xa5\xc4\xa7\xab\xcd\xcf\xe8\x8c\
+\x12g\xa6N\x0f\x0f\xa2fcB<\xe9\xc3%6\xd2\
+\xfb\x9d'%`\xa8\x9eZZ\xf6p-\xbc\x11\xc9\x0c\
+\x84O\xa3$n'\xf3\xc9\x94\xf83sO\xa1\x85\x8d\
+\x8b\xf1o\x9eJ\x22}/YT\x84/:;tx\
+)(\xb6\x91\xe8\x1a\x1de\xee\x07\x1f\x1cll0$\
+\xce\x5co\x80\x22\x00\x85%%\x16G\x225P\x8d/\
+\xab\xab/\x88\xd6\xd1\xfd|\x5c\x14CD\x01I\xf0\xe9\
+\xac\x81\x80\xaa\xc3\x14\x05\xb4\x12\x97\x10\x93a\x04\x81N\
+\x1b\xeb\x02qCQ\xf4\xa3\x00\x80\xe9\xb1\xb5\xd4\xe4\xf7\
+\x90\x8a\xf8v=\xc55:\x95\x14\x98\x0090J\x8e\
+\xeb\x81\xbd\xb2\xfd\x9fj\xb6\x88q q\xfdH(\x94\
+(\xb1q2\xb2\xe0\xa3K\x9bV\xca\x19\xeb\xda\x13\xa7\
+\xc7\xaaHX\x14\x9e\xa2\xeaE!\x07\xe0@\x87\x0a\x04\
+\x99B\x81B\x12\x8a>\xb3\xcf\xac/\xae\x0f\x85)\xaf\
+\x1f@\x81Q\x15Q]\x83B\x8f\xfb\x81\x9e\xf3\xe8\xa0\
+\x22j\xc6\xf3\x0b\xd5\x16Q&\x00\x1b(\xd9s\x89\x01\
+\x85\xc8\x11\x85\x0b=\x14\x80Bl.\x01xx\x9d0\
+'(\xb0)\xa4x?\x14\x8et\xba6U\xa2\x7f\xad\
+\xc4pl4\xed\xe4\xf4}\xac\x0b\x0a\xa9\xa1\xa6\x02\xf6\
+z\xcb\x88\x1a\xde\x85B\xf3[_/?\xc7\xfb\xa1@\
+\xe1\x83\x02D\x1d~\x12\xafX7R\xeb\x8e\x82\x11\xc6\
+\x0e\x0c\x86\xaf\xf7@\xdeh/\xf9\x94S \xf2\xfe9\
+o\xb8\xef\x14\xeaC\xf18\xbef\xdd0\x12\x04\x00\x09\
+ \x03PB\x82BG\x18\xe6\x02\xea\xff\x14\xee\xbc\x0f\
+\xbe\x8f\xc2\x0b\x15j~/\x1d\xf8\xe1>Aa\xcf\x8c\
+-b\xa3C\x8d\x8da\xa7\x9c\xfbDg\x06`\x8aB\
+M\xcf\x83\xdb\x90>\x92D\xd6x\x9d\xec\xcf\xbcO\xf6\
+7\x00d\x0a|\xa8\xfdP\x8d\xb1\xf1\x04p\xe2u\x0e\
+\x199\xec\x9f\x5co\x00\x1e\xedC\xf1>\xb8\xae\xec{\
+\xaco\xde\xb7^o\xa8\xf0s\xfe\xd0`\x98g \xda\
+\xc8u\xd1u\x88\x8e1\xebI\xf77(\xfe<?\xd8\
+:#\xd6\xc7\xeb\x22\x01\xe5\xfem\xd7w\xc0\xe3|a\
+\xc4\x84\xbf#\xfb-\x12\xe1`&j?\x02\x80\x08\xd5\
+oT\xbd\xa5)\xd4\x9ck\xe1\xa3t\xbd\x0f\xfd\x8f\x9b\
+3\x1a\xcbon\xb5\xa8\x0d\x13\x0agf\xa0\x83\x81&\
+q\xb7p\x9f\xd1y\x106X\xdc\x87\xb3\xd5i\xdc[\
+\x9a;C\xdbSfno\xe9\xdd\xaa\x82\x92\xcd\xf5\x15\
+\xb3,\x5c\x81`\x22P\xc8hV7\x1a1\xec\xe3\x8c\
+\x8eq\xbe\x03p\x90\xf8\xd3\xd9c\xe6\x1f\x9fs\x89\x1c\
+G\x87\x0f\x8d#D\x8diL\x180\xf3\xc7\xca$h\
+\x16\xb1Hy\xb3\xd9m\x9f\xe4@x\x7fn\xee\xd9k\
+_\xc1\xf4h\xb6\xb3H\x1dH\xe5O>\xd3_\xf6\xa5\
+fc\x8b\xf2\xf9N\x8b\xaa\xb92\xfak\x89\xa7\xa4\x11\
+1w\xb2\xe5\x86\x19\xb0W\xaf\xa5\xd0\xfc\xd4\xa2\xdeg\
+\x0aG\x80\x82r\xea\xbf`\xe7~{\x88E-\xd8\xc3\
+\x96\x12\x00\x82\x0e\xb9\x80W\xf2\xf9\x18\x11\xa1\x01\xb2\xbc\
+\xc4\x96\xadM\xf0\xa5\x9a\xdf\xb3\x8dG\x1eM\x07\x15f\
+\x00n]h~Y\x03\xe9Ki\x9f\xef\x5c\xad&\x18\
+\xa1\xb1\x9f\xb1OM\xef\xd0w\xed\xf0j4\x94\xdf\xeb\
+\xa3\x1e\xdf\xac\xd7\xcf\x1b\x83\xb7W\xc0\xb4\xdd\xcc\xa2\xfc\
+\xfaO\xf7L\x09\x18\xc4\x9c[\xcd\x84\x85^\xcfLj\
+\xb8\x95\xef\x1f?h\x91\x80m\xfd{h\xe1\xcc\xe8~\
+\x11}\x01\xb8ke\xb2\x063\x80\xce\xaf\x18\x0e\xcdI\
+\x02\x80\xd8\x17h\x10\xfdat\x97\xe55\xe47\xa1\xf9\
+A}5_\x89y\xab\x9a?\xeel\xcdi\x16\x12?\
+?7\x01\x0f\xd3X\xd4<v4\x9b\x98\xa7*\xf0a\
+\xc4D\xe7]\x9a\x00\x00\x1a1\xa2\xfe\x98:\xf2\xd7Y\
+\xc5Q~\xffU\x16\xe5\xf3\xe5\x16\x89)\xa2Q\xda\xf6\
+u\x0b\xd5\xad\x0b\xa5\xfc\x96\x8e9u\x08\x00+\x85>\
+\x8d\x01\x1a5r\xe5\xe2\x1c\xb76\x975\xba\x10\xcbD\
+\xeb \xb4e\x10\xdf\xe4\xfc!\xcfdT\x91sGy\
+W\xf7O\x8b\xf2yz\x8b\xe4\x22%\x11\xc1\x00n\x96\
+\xb1\xa8\xee\x0e\xe6E\xe0n\x04\x87K\x5cS\xef3D\
+6\x05(\xc3\x1c\x1f=eQ\x81N\xf6\xf1\xc9\xf8\xbf\
+\xfb\xcc\xc9QB\xc4\xceR\xe7\xb5\xfc\x82\xf6\x7f,t\
+\x81\xca\x06\xd8<T\xe2\xc1:\xeb\x143\x0d'\x94\xf8\
+N-\x88\x021\xb7\xcb\xbcv\x9aQ\xb0\x0d\xfb\xcdd\
+\x8b\xa4\xff\x0e\xa5\xbbY\xdb\xc2g\x8a\xa6\xb6\x99\xa2I\
+\x8b\xca\xb6\xe35\x89\xf3\xe9@s\xea\xfc\xd8\xc5%\xdc\
+6\x10f\x00\x89Q\xfbs\x0b!\xb6\x8f\xa4\x1b.\x0a\
+T\xb3\xa7E\xa2\x94hF\xc6}-\xaf\xa93<\xdd\
+\xd6\x16\xe9FZ:\xfc\xd3\x84\xa8\xebzEg\x90N\
+\x03\x1b\x09\xb3Mt8\xf1i%\xf1\xb7\xe3\xfc\xef\xe9\
+\xa0\xb2\xf4\xfc\xa0$\xf6\x06\xb5\xe8\xf9\x12\xffH\x07\x88\
+?!i\xe6\x9a\x85\x0c\xa2KAH\xc2MB\xc0\xdf\
+5\x9c\xf8f\xa9\x95\x97\xc4\xb2\x9d\xbb\xc4<5\xb1k\
+\xee\xb3H\xd4\x16\x0e\xdc7,*\xf0\xe3\xfd\xf0\xcf\xa9\
+\x03<K\xd5R\xf0\xce\xc1\xcdU#\xc2\xef\xca\xac)\
+\xc16\xf3\xab\x13\x12\x02\xfe\x82\xeb\x5c\xd7\xf5\x03\x15p\
+\xe87\x0dE\x99\xdf7\xb0ab#\x84\x0aI\xa2\x12\
+\xa2\x1b$\xb6\xcc\xf0\x91\xd8\x81\xac\xf3\xf5@\x8d\xfc-\
+bF\xd3+\xb1{A\xf7\xef\xf9T0X\xfa}c\
+*\xd0\x999\x92\x88M$\xd8\xd8\xb5\xc0p\xa0\x03\x01\
+\x85\x1f\xaa\x9e]\x9d\x0d\xd3\x0c!\x09)\x850\x14V\
+\x0a\xc5\x8c\x5cO\x97\xde/\x05\x03b\x90CQ2f\
+\x0c\xf1\x1d'1\x1c\x8a:2r\x01p\xf1\x0d=W\
+_\xd7\xfa`T\x81\xe7\x0d\xed\x0a\x0a3\x18\x14K\xa9\
+\xc3F\xa1\xaf\x99\xe5nu\x8b\xb4nI\xfc\xb1;\x84\
+\xe2\xcb\xcf\xcd\xa1B\x83\x91\x90Oj_A=\x9e\xce\
+\x0d\xb6\x7ft\xbc\x87\xd4z\x12\xb7O\xf5\x14\xcf\x98\xc1\
+\x86\xa1A\xa7\x95\xf5\xf0\x8c\xc4\xa9p\x15\x01\x00\xb0\xbb\
+\xb0PJ\xf8~\xde\x03\xab\xae\xa9\xb2C:8\xf8}\
+\xac\x07\xee\x03\x00!\x09-bj&:\xb4h*\x10\
+\x87\x85?\xeb\xf3\x7f\xb3\x19\x1b\x02q\xf2AF;$\
+:\xa80M(T\xee\x1a\x8cL\xa0v\xcf\xbe \x0a\
+p\xec;\x00[\x9a\x8d\x0d\xf1N\xd6\x11\x14xQj\
+\xbb\x0b\xc4XY1\xec\xd9z`J\xc8yP\x94O\
+\x11@#\x0d\x81\x00*H\xcc\xb4\xceP\xb3\x8f\xc4f\
+\xf8\x5c3\x0a\xc1\xeb\x1f\xfa\xaes\x1d)\x94\xe8\xb4\x03\
+\xd0\xf0\xdc\xb0?p]\xd1N\xe0\xbe\x928\xb2\xfey\
+N\x95\xc0\x8evR'\x94\xce9\x7f\x9f\xe7\x15Q?\
+\xd6\x03\x9d\x04:\x0b\x14\xdc\x5cW\x0aE\x0af\xdcc\
+\xa0\xb4\x02\x00p=\x00\xf2o\xec~kTYW;\
+\xdf\xcc;\xc4}\x81\x89+\x80f\x8d\xdf\xc6L\x01\x08\
+\xd2\xccy\xbc.\xdc\x0d\xb07c\xd4\x81\x82\x93\xfb\xc5\
+\xeb\xe5z\xb1\x1f*1\x0cqKFBH\xd0\x87j\
+\xff\x8c\x8a0\x03\xcf\xfe\xc2s\x8aK\x01\x9d-:\xf6\
+\x8c\x00\xe0\x06\xc0,\xb6\xf6\xe1\x10{\xe5}S\xd8\x03\
+l\xb0\x9e$\xbe\x15#\x10\x00\xab0i\xb8N\xecW\
+\xbc\x1ffH\xd5I\xef\x0e\xb5\xa8\x1d\xe6\x00\xb2\x11\xe7\
+\xa3\xc0gF\x9f\x11\x1c\xd9.\x07\xd0\xc7>\x01\x80\xc7\
+\xf5\xe6z\x0d\x00\x9bx\x0e`\xea\xf1\xfe$\x16\xccG\
+\x14\xca4.\xd4i\x06@\xe762s\xdc\xfc\xc4\xa2\
+|\xbe\xc0\xa2\xee;\xd8\x0aO\xbcdQ\xbe\xfe\xb6E\
+\xf9\xfc/\x8b\xc4\xb4\xa2\xf0\x05\xc0%\xcf\xd2\xf5t7\
+\x22c\x9a>hQG\xc0F'\xf4\x0c\xbe` 1\
+\x0b,J1\x0c?Fd\xba\x9d\xad5\x90\x9e\x8b\xc7\
+$\xf6jZJ?M\x8d\x17\x152\xa8h\xd3\xc1\xc7\
+\xe5)\xd6\x89\xaeO\xd8\xe7b\x03\xaa\xf3\x80B\xa7\xd9\
+\xd2\x22\xcdR\xab\xf0\x88\xf7\xaf\xdf3\xba\xb7\xc4=\xe9\
+\xf3M\x16R\xdd_*\xb9\x1cH{\xa5\xb9NT\xfc\
+\x17,R\xbe\xc9z\xbb\xa8\xa7\xd67wY\xd4B\xaf\
+Y\xde\xc8\xfa\xd5m\x07\xc0\x11M\x07\xa7\x16?\xe3\x14\
+}\xcf\x8fc\xd4\xf4$\x8d\xb2J\x8bkb\x1f\x8b$\
+\xea\xab\xbc\x19\x0au7\xd9\xa2|>\xde\xa2\xfc\xfb\xd1\
+\x1e\xf5\xfcf6Z\x8cZ\xaeK\xbb\x9d\x85\xef\x0f^\
+\x10\xa1\x0d\xd5|\xb2D9\xef\xdb\xcb,\xca\xbfon\
+\x91F\x99\x0c\xc0\xf8[\xa5\xfe\xb3\xde\xa1\xc6\xc7:\xb1\
+Sx\x86\xc4\xa4\x1d\x8aV/\xe9\xc3#U\xa3\xe1\x15\
+\x1fv\xeb\xf3\xce\xc55\x8a\xf9\xfd\xda\x10\xa0S\x1c#\
+\xa6bH\xfb\xe8\xcauR\xbb\xfff\x1a\x15\x93\x9d\x22\
+\x85h\xf3\x19\x0b\x89\x0c\xda}=\xce\x22u\xbe\xad\x81\
+\xf7\x9d:\x83\xee\xd7\xbf\xec\x1f\xcd\xb1\x16\xe9\x1cS\x1e\
+\xd5\x1en\x91\xdc\x1d\x00\xd28\xe7\xb5\x0eGo\xf6\x80\
+\x1a\x1a\x04\x8c$P_\x8d/\xb5(\xbfo%\x8bd\
+\x17\xc9>\x83k\x94\x5c%\x9am-\x12\xf5\xdeN\xa7\
+W5\xea\xba\xa0F/\x9f\xf2\x02}\x7fW\xb3\xdf\xb9\
+op\x8e\x1f\x1b?>~L\xf6~6\xaap\xaeE\
+\x15\xbbk\x8eh\x8elL\x8d\xff\x98\xfe:\x8eo\x1c\
+\xffv\xfc[\x1f)\xf7\x91\xd2(\x90\xc5D\x8aQf\
+\xfd<*\xf9Q\xe0\x93\xd7NmQ\xb5\xd6\xd08\x88\
+\x86\xb8\x0a\xf3``a\xaf\xcdh$@\x22y\x18\xcc\
+.\x80\x1a>\xab\x9e\xa1\x11\x1d\xe2\xec\x00\x160\x7f\x11\
+s\x04\xb8P\x1d\x11\xf6\xc4h\xf5 \x82\xcf\xfb\x82\x19\
+\xads$\xc4!\xd1(\xd1\xc7d?\xe6@\xd2\xca\x82\
+\xe9\xe6)1\xaf\x16\xe6\xbc\xd5\xc7\xb3;\xcf\xa2~\xcd\
+\x86\xde=kQ\xa9\xd6\x14\xcc\xbe\xd1\x9e\x90\xc4Ul\
+\xe2\xf9D\xbd\x81\x0bk\xe1\x1d\x1d\xc1\x95\x06\xe2K\xe7\
+H\x84\x8f\x0e\xf5\xa2\xbdmM\x88\xfb\xa1\x1a\xfcY\xd9\
+\xa9\x91\xa01{\x88]\x02\x88\xc8Z\xae\xdfXU\xd9\
+A\x12u\xa1\x9b\xe9-*\xa0\x01\x82\x84\xca\xb7?h\
+\xa7T{\x0c:h\xcc\xce\x05\x93A\x0fd\xb7O\x89\
+}E\xe1\xf8h-\x00\xdaK,\xaa\xea\xaak\x0bd\
+*\xb6\x1d+G\xeb\xf7\xef\xab\x07%\xabR\xab\xe0e\
+\xa1\xf2>\xdf\xd2\xf1\xffn:\xd0)\xf8\xa0\xfe\x01T\
+p\xb0\x1bB\xfaCu\x8e\xef\x13\xb3\xe0Si\x06M\
+\xc8Y\xbc>\xa8i\x86\xc7_\x91(\xd4\x00\x19$\xac\
+VF\xed\xa8\x07\xe97\x89j\x05\x22\x8eJ-\x9d$\
+\xa88zP\x83zf\x07\xecw+u>\x0a%\x5c\
+ (\x5cHx\xe8\xccS\x90\xa3\x0e\x8c\xff\xab4)\
+\x82\x0a\xc3\x08\x8af\x9b\xa2p\xa0\x80\xe5`P\x07\x9e\
+\xfb\x13L\x87{\x5c\x87\xbc\xce\xdc\xd8,\xff\x22\x09A\
+\xbc\xc5\xa2\xda\xdc\xb9\x1d\xe0\x8e\xc9V\x90\x0e&\xa2P\
+\xc6p\xf9Y\xb5\xd5\xe3uF!L\xc2\x0d\xd5R?\
+\x1fTy6\xfe\xa1/:\x05\x00\xe2`\x14\x06C\x9b\
+\xa0\xd7U\xf0p\x9d\xe9L\xf2\x81\xdd\x98(\xc1\xdd\x99\
+JT\xe5c\x8a/i\x00UP\xe4\xb1\x89\x82\x22\x8f\
+O:\xafk+\x012\xea\x9c\xc00\x8a\xfbHB?\
+\x14q\xfa\x96\x12:41\x98\x09'A\xd3A\x14\xf6\
+f\x8c\x88\xeck\x91\x12Y\x0a\x14\x98\x06\x006$\xcc\
+\xba\x0et\x14\xda\x7f\xf6\x0c\xa3\x18\x91\xe2\xc3\xf8>k\
+$\x9fY\x1dD\xa3\xcb\xfaQ\x9a(\xb0)\xd0\x866\
+\x85\x1c\x1c\xd8\xd11sN'\x93B\x8b\xd7\xcb\x81C\
+AJ\xa2\x0f\xa2\xaf\xfb\x12\x07\x15\xcf\x11#J|\xc6\
+\x1e\xebs\x16\xe9@\xc7.\xf4\x06\x8bDu\xbb\xad\xbf\
+O\xa3\xf7\xea`\x07\xc0\x9c\xa2D\xeei=\xd7\x009\
+\x88\xdd\x89Z\x1d3\xbc\xbb[T-\x88\x18\xe1\x90\xbf\
+x\x00\xa8$\xb2wJ\xb4R\xda1\xd1\xf9WA\xe0\
+\x13\x997\xa7\xeb\xfa_\x15\xd4<\x17\x88\x8b\xa9p\x8a\
+\x8e\xf0\xd0\xdf\x9eQ*^?\x859\x9d\xdf\xa1\x06\xc3\
+\xb03\xcf\xfd\xe1<\x22a`t\x8c\x0ff\xd4\xe9\x1c\
+P8N\xa5\xdf\xcf\xfb\x00\x90\x18\xf8x\xc7l2\x7f\
+\x17\xbfsu\x0eb\x7f\xe5\xfdq\x1ePh\xce\xaa\x9f\
+\x9b]\x14\xff\x99Th\xb3\x0f\xf2}\xec#\xec\x17\xa8\
+r\x93\x17\xe0\x02\xc4\xbfsn\xbfn\x91\xc4\xf8X'\
+\xfc^\xbe\x9f\xfd\x8d\xf7\xc9\xf7Qh\xf3\xfeTh\x8d\
+\xa6\xb6\xa8T\xedxNaD\x91\x1f0c\xcfu\x87\
+\x914\x04$\x00\xe2\xb8\x8f\xfc;L\x00:\xbd\x5c\x7f\
+:\x80\xfc~\x984t\x82\xb1m\x1a\x020<\xd7\xda\
+\xaf\x01\xc8\x00\x22\x10\xe1\x0a;S\x00\x0d\x0a_\x80M\
+\xee\xe3\x90\xe1\xc19\xc8\xb9\xcc\xfb`\x1f\xe7\xbf\xf3>\
+\x99\xc5\xa7\x10\xe2\x1c\xe0\xfe\xf0wt\x1f\x981\xc6\x0e\
++\xfe\x1d\xf1Af\x90e3\xd8\xeek\xe1\x09\xfb\x11\
+\xa6\x1a\x1f\x0c((\xaf*\xd0\x99\x95\xed^*\xef\xff\
+\xa5tnc\xff\xac\xc25\x12c\x9e;\x80\x0f\x00f\
+iR\x04\x10\x03s\x85\xfd\x1b\xfbi\xe5\x1be\xf7\xf1\
+\xfd\xae\xfb\x81\x00F\xfd\xben\xc9n\x89n\xc9Z\xc0\
+\xf9,\xf9z\xe9y\x86)b\xab\xf5\xf5t\x1ek6\
+\xdb;\xfb\x7f\xab\xe2\x89\x88\xe9\x85]&\x22\x810G\
+\x18\x09 \xafa\xbf\xe2\xfd\x02\x88 \xca+FF\xf3\
+\x07u\xec\x95/5\xdf\xb3\xa8L7F\x03\x83z\x8d\
+\xf6\x94\x98\x17\xc1\xe0P\x03\xccyc\xcf\xaa\xe3k\xe2\
+\xdew\x97\xb8+\x8d\xb4\x19\xc0\xbf\xabw\xf0wjv\
+\xaa\x1d\xc6f\x15\x0bgp\xecg\xe2\x89\x14\xf6a?\
+\xa6Y\xeavm\x8b\xd4\xf1%\x7f\xd9W?\xc7\xf3C\
+\x9e\xc3\xec\xb8\x9e/l\xe5X\xee\xa8\xb0\x07\xe0\xceh\
+\x1b\xcc\x12D\xaa)\xf0\xa4\xc1\x15\x1aP\xe6rt\xb0\
+\x98\xac\xd7\x0a\x18\xba#\xe5\x1d\x14\xc80\xe4\xa4Q\xd4\
+\xfd\xc3\x22\xd9\x7f\xcb\x162\xf2v\xb3\xff\xdd\xb8\x8a\xa7\
+c\xef\xe8L\x8d\x93\xabxx0\x8f`\x94\xb0\x9e\x10\
+a\xfe\xa1\x85:\xf1\x1f\x11P\xf0\x8a\x1a\xa9o\xd4\xfa\
+\xcaGd\x9eI\xd7G\x80\x01\x85#u\x1b\xdaS\x01\
+\x98\xb2OiD\xc7]\xc8~PE\xd2G_\xb7p\
+\x9b\xbc\x12\xa9\x11\xc4\xc8/L sA[P\xeb\xd2\
+\xdc!\x8e\xb1H\xf6\xe5\x88\x013Ja\xab\xff\xb8\xe4\
+w/u|oD\xce\xed\xcc\xde\xdf8\xb3\xd7\xcc\xc6\
+W*\xff\xfd\xf7\xed-\xed\xef\x9d\x09\xf0\x97\xeeq\xdf\
+'{\x8d\x81\x8f\xb4\x1b\xb7\x1b{C\xd4\x81\x8dv\x0d\
+\x8b\xca\x5c\x1e\xff\xdc\xa2\xfc\xf7\xc7,\xca\xe7\xdfZ$\
+\xc6\xa9\x5c\xe2\xb0\xf5\xa3!\x09s\x1cf\x14\x8d\x1b\xf2\
+\xc6`B\xcb\x15.\xce1\x98k\xe4\x8f\x8c\xcc\xea\x9c\
+\x84\xa1\x0d0\x16\x8d\x01\x802]\x87\x10\xdfe\x7f\x00\
+\x00\x00\x08e]k$\x12w\x90\xeei\x8b\x04T\xb0\
+/\xa3}\xc4\x08\x9f\x98\x0b\x93\x0d\x97\x1a]\xa1\x03n\
+\xa7:\xdb\xec\x89\xc5\xda\x15Yr*\xf5\xbd\xc9\xf7\x9c\
+\x05g\x1b\xdb\xacu\xc3u5\xd8\xc9U\xed\x11d#\
+f\xb5\x86\xea\xd3\xea\x80\xc4\x02\x01y\xfe\x86:\xa0/\
+*\x118P\x08\x0b3\xa0 \x1b\x12k\x88\x84m3\
+'AU\x04\xdd6\xb8y\x93\x1b\x81\x12j/\x08\xd6\
+\xd4\xec\xf5\x07ja\xd8N\xd3\xdbMx\x9a\xbaT\xa5\
+b{\x9a\xf1CQ\xe2nHH8\x1d^\x0aX\x00\
+\x10%<\xf8\x81G\x87P\x88_\x88i\xd8\x0c\xcb\xab\
+J\xd8l#?\xb0\xc4\x17\xd2\x8c\xb9]\xd5\xa5Sg\
+QbtQ\xc8\xa9\x03\x07\x05\x8c\x8e\x8b\x1f\x98\x17'\
+*\xb6\xa5\x93SU\x0a\x97?\x88s\xa6\x8e\x81\xa5\x05\
+\xf3\x89\xca{t\x15?\x0cdV\xe27!j\xc1\x86\
+*[\x96H$\xe8\xd4\xbf\xe0S\xc1\x01$\x85\xcf;\
+\x09\xb4\x95\x1d\xab\xa5\xef\xb7m\x7fKQ\xa7v\xab>\
+\x9fl\x9c\x91\x10\x90\x10\x1a\x8f\xe1/I\x85w\xc2\xf5\
+\xad\xeb\x07\x22/Pu\xf9\xbd\xa8\x1f#\x92\xc5\xbfO\
++\xdb\x10\x8d\xbcx\x1fy\x1b\x1d\xe0\xdfO\xd41\xec\
+\xc4H\xdc\x7f\xee=\xde\xaa\x1e+\x9bA\x80\x9dP\x83\
+7\xcd\x85\xfb\xabMS|p\x1fy\x9f$^b\x16\
+\xe0\x1f\x1a\xe2n<\xc0\xf6\xf4\xccZ;U\xae\x96|\
+\x95\x90\xfbU\x92h&\xe2I\xd8\x9f!\xfa\x07s\x84\
+\xce\x1a\x85\xf7\xe3\xb2\x9b\xda^\x07\x13T\xe4\xa1X\x17\
+\x89\xd5\x06bp\xec\x22\x0d\x01fi)\x5c\xd9\xa8H\
+|WT\xc7\x09f\x07\x9d\x89\xabz\x9f\xd8\xe8\xc4C\
+]\xa5\x83J'\xe8\x86~#n\xd6\x95\xff.\x1b)\
+\x1dLD\xcd\xa0\xb8\x8b\xb2l\x12JF-\x85\xaa\x0d\
+%\xb7\xdb\xd2\x22u\xfe\xf0\xbf\xde<f\xa9\xfd\xf9\x01\
+\xc1n\xf7\xb0\xf0\x19\xbfc\x8c\xea\xc7\xcc(\xf6\xa9\xa3\
+\xfbK<\x90\x12EFL\xce\x97\x8a\xfa5\xda\xc8\x97\
+\x11\x03\x82\x82\x7f`\xeb\x15\x08/\x05?\x9dC\xb4\x22\
+(\xf4\x87>\xd9P\xc6)l\xa1V2{\xcd\xf3\xcf\
+\xac:\x94n\x18[ \xc40d4c\x18\x9d6\x0a\
+\xa6\x07\xb4nqK\xa1\x00\xbbO\x09\xebw<l\xff\
+\xee;\xa0\xd3\xab\x83:\xf3\xc0\xf7\x9c\x9984\x22\x98\
+E\x1654(\xb7\x02:\x82\x0aO\x22\xa2\xeb\xeb\xf7\
+\xe3\x18\x7f\xff=\x13\x86\x82\x86N3\x0c\x90\x0d\x04H\
+\xf1\xf7)\xa0(\xb4I\xfc\x86\xae%C\xad\x01\x0a\xd2\
+\xa1z=\x00\xb6\x5c\x14\x82q\xc1u\xa5\xc3\x0aE\x98\
+\xdf\xcb\xeb`\x1f\x05p@\x93\x00\xe0\x94\x82\x0b\xe0g\
+i1\xa0`\x86\x00\xd0\x01\xa4PX\xb3\x0e\xf9\xbd0\
+Q\x00\x06x}\xeb\x8b\xc9C\xc7\x06\xa6\x9fF@\xfc\
+|:0i\xde\xf0\xdc\x02\xd4\xf0\xfb\xd8'\xd8_\xd8\
+\xd7(\x88\x01\x14\xb8\xde\xac\x7f\xee\xeb\x10P\xe1\xba2\
+R\x87V\x01\xfb\x05\xae\x22t\xfc\xd9/x\x0eu\x8e\
+\xc5\x0c6\x05\x22n\x17\xd9\xb5\xa6K\xf9\x09@0Z\
+ Ki4\x0a\xc6\x15\xcf\x0d\xf7\x9b\x19w\xf2\x11\x18\
+$C`C\xcfqh\xb7\xa0qD\x81O\xbe\xc0\xf7\
+S\x08\x92`\xb2^\x00\x8c\x86\x8c.\x80\x0a>\x0f\xdd\
+>`Xp?\x18\x1d\x03\x10\x1c^\x07\x189\x88\x0f\
+j?\x0a\xc0W\x85\x1aT\xd8\xee\x1c\x8b\xd4\xd1f\x1f\
+\x95h-\xf7\x19U\xea\xb0\x9b\xc5\xceS#S\xcd\xf5\
+\x16i}pn\xec\xebQ\x99@\xbco:\xaa\x88\x9d\
+\x92\xb7\x00\xa8(a\x1f\xfd\xcc\xc2\xd7U\xcf\x848]\
+#\xaahC\x8c{\x80\xdf\xd5\xd7\x0fN\x14{\xd6%\
+\xcf#\xe2\x8c\xb8\x15\xec\xa7B\x16\x0d\x1b\xbd_\xd7\xde\
+Y!i\xb7\xa0\xe2MG\x8f\xfb\x8e\xc8 \xc0\x07n\
+\x01\xf6t\x99\x16\xc3\x0a\x16\xaeM\xf0\xdc\xe89\x07\x14\
+\x5c\xd3gb\xbf\x89\xfd'\xf6O\xae90\xad\xa0\x98\
+\xcb\xce\xba\xf9\x83E\x05$b\xff2f\xebO\x12\x10\
+\xcd\xf5f\xffD\xfcS\x0c\x0a\x18\xb8\xcd\xa6\x16)\xdf\
+\x9d\xb6\x17\x8bn\xff\xda\xcf \x8f\x9f\xb0H\xbe\xe4\xa6\
+\x09V\xf2\xb5v\xab\x1e\x18\x9ft\xbc\x0a\xc9\x07{\x7f\
+z\xf3\x02s\xe0\x7f\x06\x8dji]\xc0\xc8\x9b\x98\xc1\
+\xc2\x99|=CvE\xe7\x8e\x85F\x02\xda\x06\xe3\x0b\
+J\xfcT\x9d\xfe\xd9\xd49\xbf\xa5\xfc\xdd\xd5,\x92+\
+\x82:\xf2\xe12A\xdeK~\x89\x88\xb5\xad\x92Eu\
+_>\x9a\xdck\x04\x18D'\x97\xfd\x84\xf3\x90\xfd\x17\
+qu\xcb\xdeV\x16\x13a\xc5\xa4q\xb1\x85Er\x17\
+\xc2}A\xa2|\xcd\xdfK\x94\xfb\xdd~\xc9\xa2\x8e\xc4\
+\x85\xdb\x85i\xae\x95\xbc\xa4\xd9\xa2\xc4\xe6I\x1c\x0f\x80\
+}\x15\x8b\xf2\xf5\x8c\x16u\xff\xc0\x1d\xc4\xdd\xbd\xeeJ\
+\x0d\x00\x01\x10\xe3\x95,\xca\xe79,\xca\xdf\xbf\xd6\xa2\
+\xe6-a\xa7\x0b\xd3\x1b-,\xd6\x91:\xd8\xc6\xe76\
+F7\x22u!\xfe.\x00h\xbc\x90E}\x8e\x9b\x19\
+,\xd2\xf3z\x91\xc9B\xd6\xe7\xac}\xb3\xc4\x7f\xbd`\
+\xef]]\xce\xed\xbf\xaf9\xbd\xf9QS\x9ec\xd3\xf0\
+7\x15\x7f\x1a14\x5c\xb0\xd9\x1eMX\x94\xaf\xe7\xb5\
+\xa8\xccRf\xe7\xa3N\xc3V\x15\xf7*\x9d\x07\xb8\x9e\
+t\x9f\xb7\xa8\xfbR\xf7m\x8b\x94\x9f\xa1\xad\x85k\x1b\
+\xa3R\xec\xef\xe4Y0Ui,\xa8p\x0f\xa0X\x00\
+B\x8c\x0e\x08\x90\x8c\xd1\x88\xcbz\xad\x8cp_\x80\xe1\
+\xc2}\x92=a\x9cK:\x17&\xc7\xec\x89Q-\x96\
+\xa9\x17\x1e\x8aH\xfb\x90EE*\xbae-\x92\xea\xb6\
+\xde8\x9d\x08?\x00\x96\x11B\xf6|\xea\x5c!:$\
+\x0aSP\x03\xf5\xc0t\xa7KD\x83\x04\xfc{\x93N\
+.a\xa2\x13\xae\x92\x1e\x88)\xb3\x8d\x1cL\xcc<B\
+E\xb1\xf4\xc5f\x9a.\xb2H\x88\x9fl\xea\xa0J\xf8\
+\xc2?\xa2&(\xed5%~%$\xab,\xc4\xe6\xcf\
+%\x1e\xa9b\x83Na:H\x1b\xf8,\x1aU(\xef\
+w|G\x89;S\x87M\x89\x823\x02\x1eI\xb3:\
+Pl\x8e\xb5H\xa2>$N\xcc|\xd9c\xf9l\xda\
+8\x94 y\x87`\xb9\x94\xb8Jt\x8c\x19j\xef\x14\
+\x1f*J\xd8\xc3\xa9@}\xdc\xa7\xb3\xab\xfd \x9di\
+\x89g8\x85y\xe6\x94h0\xa3b\xe9\xe4\xfb\x93\x98\
+\x8d\xdd\x8d\xef\xa5\x84V\x9d\xf1n\x06\x0bQ\xe8\xfe\x99\
+^\x1f\x1d-D[H\xf4H\xa0\x17\xf5\xe1\x8e\xaa\x15\
+a\x0b}\xa5Z8\x04\xa2\xaf\x83>~nHi\x97\
+\xbd_t\xfe'\xbb,YMlH\x98Wpc\xb1\
+Zh\x98}\xc8\xbeJxV\x97H\xdc\xe2\xc9\x95\x80\
+\x9f\x13\x02\xe8\xa2u\xbfJ\x9d\x7fKw\xceN\x89\x07\
+\xa2\x8c\xbc.\x12y\x12\x05\x00\x10F\x04(\xdc\xa6x\
+\xcf\xb4_\x17\xc7U\x04\xdc\xdd\x016Q!\xdf\xaa\xb0\
+]\xb5jX8\xd3\xe3d\xcd\x90\xfe\xb1\x1e \xcc\xc6\
+FAo\xa2Y\xe7%\xa0C\x8c\x87\xa0\x1eC1R\
+\xa1\x13\xd4\xf7\xf5\xd4\x09\x07x\xa03\xcasGA\xa6\
+\x8d\xd34\xfc\x9db7\xa4\xfa\x7f\xb6\xb7W\x09{(\
+(\xe2\x00\x0a\x5c/\xd9\xb0 \xfe\x14\xb6l\x88S\x82\
+8\x8b\xc1C\x81\x12\xb3\x8a7J\xb5\xb9np\xfd\x06\
+,\x847\x12P\x1d\xdc\xa1\xea:\xec \x91\x08\x93\xb8\
++\xe1\xa3C\x80jrwfw\x86\xfb/\xeb\xf9\x22\
+\xf1r\x11\xae\xcd\xff\x0f\xea\xfe$\xe8\xb8\x07L\x93\x9e\
+\x83E\xd3u%\xc1\x1c\xce\x9eS8\xc2\xec\x18\xda\x01\
+\x06\x07W\xff\x9d\xeb\xcb\xf7g\x1b\xa3\xbfW;\xb9\xe8\
+\x84k\xe4\x08\xdb\x9cQc\x91\x5c\x1b\xa0\x1e\xeb\xf7\x84\
+\x8b\x84f\xd8B\xcb\x02\xff_\xec\x10\xdf\xad\x8e$L\
+\x1d\xa9\xea\x8f\xe6\xecgQqW\x88\x82\x84\xc2\x98\xce\
+.\xfb\x86\x0a\x13f\xfd\xe2}\x22\xd2\x87\xf8\x19\xd7\x83\
+\xf7\x89\x98\x1b\x0c\xaa\xeb\x94x\xcb\x8d\x00\x80-\x12g\
+(\xdb\xec3\xfc}\xee\xdf\xd0u\x81\xeb\xcc\xfd\x81\xf9\
+\xb2Hy\x8e\x16\xf1Bo\x15\x07l\xf8=\xbf\x97-\
+\x984X\x82\x82M\xe7}\xb6\x81\x8d\x1c\x85*\xf7\x91\
+\xc4\x8auu\xb7\x98$tz)\xe0\xf8=\xdcw\x12\
+}:et,\x00\x0e\x18\xf1\xd2>\x12\x94F\xf6s\
+\xfe\x1e\x056\xd4y\xec\x91\x00\x16\xb1g\x04\x10\xc1\xc7\
+\x9dYw\xf2\x00\x0a7\xf6\x17\x00\x1b\x98\x03\xf87k\
+\xf6:l\xe5p\xb7Q>\x10\x1d4u\x94c\x14\x83\
+\xd7\x0f\xb07\x04\x04\xd8\xaf\xc9O\xd87\x86n9z\
+.C<\x15`\x90D\x1fQA\xf6\x0f\x00G\x0aI\
+%\xfe0h\xa2\xe3F\xe1\x0e\xf0\x04\xf3\x88}\x98\xeb\
+\xcb9\xc2u\xa4!\xc1\xeb\xa5\xb0`}\xb2\x0eY?\
+\x00\xafhh0\xca\xc0\xbeC\xc7\x1f`\x8f\xfd\x98u\
+M\x01\xc8z\xe7zR\xc8J\xf5?F\xf1x?\xda\
+\xe7\xa1\xdeG\x1e%\x0as\xb8X0\xab\xfdi\x8b\xb2\
+\x8d\xddj\x91Dp\x11=\xbdb\xe4\x8d\xaaf_\x8b\
+\xc4\x98\x80J\xce\xfeN\xe7\x17\xe0\x8e\x91\x0f\xe5Y\x14\
+J\xa3y\xc5\x98\x9cI\x85\xd4\xf4\x16>\xa2p\x82\x8d\
+(Ph\xc79\xc0z@[d8\xc2\xc5~\x8d\xd6\
+\x0c\xda\x0c\xd8\x06\xc3$\xb1\xb4\xfe\x9a\x04 \xb1\xdf\xf3\
+\xbc\xa8P\x18\xfdJ\x22\xb9\xd6?\xfdk\xb2\xbbF\x8c\
+Z\x8d\x8c\x18iC\xf3\x05\xca1\xf9\x05#\xa9\x14R\
+:\xffh\xb89\xd0<\x87\xd6\xc3{k>\xc8\xc8C\
+\x9c\xd7\x96\xdd\x1e\x22J\xf4\xd7\x5c\x1c\xb9\xcf\xbb\xb1\xe3\
+T\x81\xd5\xfe\xd4\xa2l\x9f\x9f\xb3(_/iQ>\
+\xdfbQ>\xbf\xd4\xbe\xd8\xbe\x98T\xec\x8d)\xbbO\
+}^q\xcb\x22\x0fq\xb7\xb0R\xc0M\xcciQ\xc5\
+\x09\x9b\x7f5\xffn\xfe-\xa6\xd9\xb3.Z\xbe\x8f\xad\
+\x8bv\xbd\x12Sj\xc3\x87\xc2\xad]\xb9\xc4J\xcac\
+K\xde\xd4\x9eT\xe2d1;\xcf\xd0\xb9\x95\x0a\xcc(\
+\xdc^t\x08\xbb\xcf?\xf3\xb92\xc9\xafA\xd8\x18{\
+\xfe\xfb\xef\x04\xd0\x01\xbc\xd9\xee9]m\xe0\xc1 h\
+\x16-Q\xaews\x7f\x89\x07\xca\xfb\x9b\x5c\xa2\xac\xd7\
+\x89\xebJ\x5c\x9f\xc4U\xad\xff\xfb\x19ox\xack\x0d\
+\x0f\xaf\xd3\x96\xaa\xb3\xf64d\x9b\xffXT\xf1\xf2n\
+9\x8b\xc4\x5c\xc5\xc6\x15\x1bT]\x07\xec?'\xe6\xb7\
+\xa8\x0d\xb07\xd7\xb2\xa8\x00N\xfbi\x8b\xf2\xf5^\x16\
+\xe5\xf3<\x16uT,\x5c\x11`l\xc0@\x163\x93\
+B\xdb\xed\x7f\xa7\xf8z\xe9\xed\x91ar\x9ef\x914\
+\x93\x18\xe9\xc6e\x03;M5l\xbaW\xbb\xffX\xe3\
+\xb4\xbc*w[h'l\xb6\xc1}\xee]\xbc/\x18\
+-0I`|\xd3PQ\xbe\x19Lq\x89\xcb\x92o\
+\x02p\x07\xa3L\x8c\xb8\x00.\x18U\x8510j\x15\
+5\x00\x00 \x00IDAT\xb4\x91EuK\xe3\x1c\
+\xf0\x91\x90\x8f\xd6\xf3\x13fT\xd4\x7f0A\x19\x85f\
+\xbf\xa5\xe3\xcf\x88\x0c\x8dB=\xd7\x8c\xc6tw\xf5\x9d\
+\xfdp-@\xc3\x85|\xe9b\x8b\x9a\xef\xa3\x91\xd0\xcd\
+eQ\xb6uW\xff_C\xd4\xa2;dw\xb3p\xea\
+\xe4)1D\x15\xd6%\xee\x0e\xafT\x08TR]T\
+\xed\xc7\xc9\xb6\xe4u\x8b\xb20?h\x91\x90X\x10x\
+\x00\x04>8\xe0TP\xb6_\xb6H\x22\x09\x8f[\xa4\
+\xd9\xd5\xc9\x16\xf5\xe0\xa2s\x14\xe2p\x87\x96\xf8\xb2\x90\
+\xa7w\xa4Y\x09\xc4\x88T \xc7\x0c\x9d=\x16F\xb1\
+\xf9\xaaEJ$U\x90\xa2\x0a\x19\x08/6a\xbbj\
+\x04\xe1$\x8f\xfe\xe0:\xa8\x22\xfbns\xf1\x17Qs\
+\xac\xd3\xf9J\x89\x97\x93\x0a&\x9dh\xa8FP\xc0X\
+\xb0$\xa2\xb6,fNb\x82\xda\xd8\x19\xa1hV.\
+\xb1\x92\x12\xf7\x09\x8df<\x936\x22\x1d\x5c\xed}%\
+\xeeO\x89\xff\xd6\x16\xc9f\x8b\xfb\xadY!\x12\x8d\x98\
+Q\xb2m\xe3\xa4\xda\xb9\xa3#\x10~\xc6\xd6W\xfam\
+\xea|\x93P\xffo>\xe5\xcc\xb0\x92@X\xfa\xf2\xae\
+D\xf9\xce\xef{\x9c\x12i\x0a\xffI\x12\xf2\x22\xa1\xe5\
+\xfb\xa0fUj{u?\xb8\xbf\x8a9\xa2\xe9\x10\x7f\
+\x87\x03\xdd~\xdb+:\x80\x9fN\x07\xf6p\xd6g`\
+\xb7\xe7\x22;s\x8a\x0a\xf9\xbc\x00\x80\xbf\xbd\xa5\xa3\xe7\
+\xc0B \xfbv\x8co\xa7<}\x94D\xa9\xa4*\x0c\
+r\xeb\x04\xb45j\xc7\xdf\x13\x96\xe9R\x81\x88\xb6\x03\
+\x0c\x07\xd6\x13\x89\xb5\xbd\xfa\x05\xa4&\xfa\xa5\x9a\xd0\xc4\
+\xac\xde\x9f\x94P^)\x0d\x02\xee\x0b\x09\xbb\x12\xe0\xb8\
+\xcft\xb4X\xbf$\x9c\x00H\x00'B\xd6\x0dVs\
+\x1b-4 (\xf0X\x1ft\xf4\xb8\xef\xcf\x0b\x00\xfb\
+\xa3\x0e\xe2\xe7d;z\xa9\xec\x01\x19)\xe0}\xc2\x04\
+!\x01\xe6\xf9\xe5\xfe\xf0\xf9%%pt\x8a\xe84K\
+\x14%\x80\x1f\x0ar\x12\xab\x07<z\x9f\xd8\x0b\xd2L\
+ \x1dy\xbd\xdff\x0d\x8b\xda\x81\xe9\xb6\xb3p\xa6\x8e\
+\x03\x111\xa2\xc0\xef\x87\xb2\xcb\xba\x1d\x8a\x01\x06\xd7Q\
+\x09\xe7p\xdd\x0d\x811\x12?(\xdc\xd81\x0a\xf0\x8b\
+\x82\x0aM\x13\x0e\xb6\x13-\x92\xed\xf1\xbb-\xd2\x08\x0b\
+\x85\xfd\x83\xba\x0eGZ$F\x01\x149f\xf07\x1b\
+0(\x18!zM\xea\xd5Ok\xe4\x86\x82\x88\xf7\xad\
+\xd1\x81\xeev\x8b\xf2s;\xa8\xc0\xa3 \xe1us}\
+\xa0\xf6\xe2~\xc1u\x00p\x85\xf9\xc0\xcc\xbb\x0a\x90\x18\
+\xada\xc4A\x89b\x9c+\x00\x0cC;\xd2\xb9T\xb0\
+\xf2\xdf\x01\xa4Y\xd7\x1c\xd07u\xbf\xf3\x82\x98\xd1\x9c\
+\x17t?\x00\x86\xee\xe9;\xba\xa1\xa1CaMBO\
+\xe1\xff~\x15\xa8<\x1fh\xe7l\xaduDg\xffI\
+\xeds3*\x81@\x9b\x81\x84\x02 \x80\xc2\x91u\xbd\
+\xaa\x183\x9b\x8a\x8a\x08U\x1e`_\x00\x1b\xd4Q(\
+\xd6\xccRFg\x95D\x0b7\x16\x0a\x22\x0aB\x9eG\
+\x15\x9e1\xf3\x0c\x00\xc2\xa8\x05\xfb5#\x1f$H$\
+T\xccr\x03\xa4S\x90Q\xb8\xa2\xbd\xa2\xc2\x1e[\xce\
+\xd8\xb7\x01<\x86.\x08\xba.\x01h\xf1\xdcq\x1e\xf0\
+\x9cr_\x00L\x00\x16$\x82\x19b\xc7:\x97\xbb\xfb\
+-\xca\xd7_\xb4\xa8\x89{0_\x00\xce\x00$\xe8\xf4\
+\xf3\xc1\xbe*\x00(\xf6a\x98j\x03\x8ax\x00b\xd8\
+O\x02\xfc0\xfa\xc0\xfba\x9f\xe59\xe2\xdf\x01D\xd8\
+W9_\xe8(+\xdf\xc1F\x0f\xc6C\x88\xe0\x0a\x08\
+A-<\xee7~\xe1/\xf6\x05`h\xf9\xe8\xf9\x99\
+x\xd9\xa2R\xe7c\x94E\xeb\x8c\x06\x0b\xcc\x82\xf6\xd7\
+\x16I\xb4n~\x01\x88\xabh?\xa6\xa1\xc1:d\x84\
+\xe3Cb\x8c\x08\x18`\xfdE\x07\x16\xd5\x7f\xd6\x09\xeb\
+\x8f\xeb\xc6u\x06\x00\xc2\x87[\xcc\x98\x002\xb9\xbf0\
+(\x01\x12p\x11\x00\xc8\xe4u\xc2P\xa2\x01fO\xf5\
+2I\xb4\x0f\xd5qc\x98\xdd\x9fl\xfb(T\xb9O\
+\xd8T\xcb\x8e:\xf6s1\x00\xe2\xbe\xcb\xc6\xd0\x0b\x9a\
+/*_\xbb\xac\x02\x93\xed>\x16\xe5X\xfa\x95E-\
+\xa8\x9b\x93J|\xd7)\xd8\x0e\x14Sp\xe0\xff>^\
+\xda\xa2\xaa\xf6\x8f\x17\xee;\xbb\xed\xd9\xedY\xedYU\
+\x0c\x99\x11\xd6\xf6\xdf\x16\xca\x9f\xbf\x9b\x1ab\xca\xa7\x11\
+'d\xbdL\xdc4\xf1\xf4\xc4\xd3\x15\xa0\x99|\xb6E\
+\xf9}3\xf6T\xf2\xf6\xca\xf6\x8a\xb6\xe4\x9d\xe3\xcf\x8f\
+\xf7\x1f\xef/u\xfa\xeb*\x85?(\xe7V\x98mR\
+\x01\xc1\xee\xa8\x12G\xd6\xd1\x0a4\xb2\xc2\xb5F\xf6\xe0\
+\x88Q\xfa\xee\xf9wQ\xae\x9f\xa9\x00\x02nd\x8c\xc8\
+\xc0\x88\xc1E\xab\xd9\xabD\xc9[&6\xb3(\x9f\xbf\
+^\xc2F9\xe6\xb7\xa8\xf9\x95kg}S#A\xaf\
+H\x93\xa2\xe4\x1d\xcdZ\x16\xd5>\xdaa\x9ds\x95\xb7\
+\xaf.&\xe2\x9b>\xc2\xb2\xa4\xb9@D\x87\xd9\xfa\xcd\
+?\xd0y\xffBbB\x92\xe7sn!\xce'\xf1\xcf\
+h$Y\xc3l\xbf\xea\xde\x13\xccN\x18\xa2\xfbN\xda\
+\xd7\xeb\xa2\xf2t\xb8;\xd4\x0e%v\xac*\xf4\xf1\x1c\
+\xab\x10\x1e\x1dV\xea\xac\xc3*\xa5\x1d\xc6b\xec\xc7\xd2\
+V\x89\xe7\x06\xe0\x12\xe6\x8c\xf5\xc1\xad!\xf9P\xcfL\
+\x8c\xbaN#\x80\xdd\xa5\x16\x95\xfa\x8e-!\xa3\xa5\xd1\
+A?U\xa3?\x14\xd8\x00\xaa\x1a\x95\x0e\xd7(\xf2\x7f\
+\x1a\xb3\xaa\x97\xba]-\x12\x13\x1c@\x00`\x12qU\
+iS\xf0\xf7\x22O\x82\xd1N\xfeN\x1d3t\xa3\xe0\
+>\xe0>\x22 'F\x0a\xc4\x80\x0b\xf1@\x18\xf8\xfa\
+\xfb\xedi\x16\x15\x10\xc0\xfder \xe8\x96>\xdb\x8c\
+\xc4\xbd\x16\xd5\xa6\xcbm\xf5\xa6\xad\x05]t\xee\xb9A\
+P\xbf@\x14\x95g\xc4\x8c\x9cDBB\x94c\xb1\xfe\
+F\xc5\x02\xa6\xb3\xc0A\xf4\xb5\xbe\xc0ow\xb1\xf0\x0b\
+\xd7S\xcc\xa7S'b\x1a\xef\x9d\xc5lJ\xcch \
+\xd6\xa5\x0e\xc7\xe8\x9d%\xca\xf7O\xde\xd4\xa2\xde\xc8\xae\
+\xe9F]\xe3Z\x07\xf3\x9a\x9f\xbd\x8b.,\x9c\xd4\x85\
+\x8d\xd2^nT\xdb\x95h\xabofPO\xb6\xb4(\
+_O)\xb1\x9e\x10\xd7[\xb5\xe0wH\xd4\x9d\xd9-\
+\xd4\xa1?\xae.\xd0\xe6R\x8b\xe4\x17n.\x09OH\
+\xfd\xf4<%\x02S\xd2\x02\xd0\x03\xcbl\x96\xcf\x88_\
+\x94:!$l\xcc6\x93\xb0\xdbrzR\x07\xe9\xcb\
+u\xe6&\x0e\x04\xa8\xec\xccB1s\x82\xf8\x9e\xa8\xbd\
+$\x1cA\xe9\xb6\xf4\xefH\x01\x0b\xf3V\xb1\xc1@\xf2\
+\xad\x90\xf8\xae\x0e\xf6\xc7\x13\xb2M\x07\x8b\xbfo\xb3p\
++\xa8`\x5c?\x1d\x94\x1c\xb0\xf1\x8d\xfdr\x8a\x02\x88\
+\xcf\x14L\xfc\xbb\x95Eo\xe8@}\xa9n\xd0\xc1\x0c\
+\x00\xb9\x9d\xd3\xf5\xb9\xab\xf8\x9e\xc4\x199(\x822O\
+BKBd\xb8\xee\xe3\xa9\x93O\x82\xa8\xc2$\xfc\xe9\
+\x99A\xe3~\x92\x80\xa0\x06\xcd\xac\xb2i\xdd\x9f\x91D\
+\xac\x84\xc4F\x81C\xc2L\xe7\x9b\xc2\x00\x0a$\x1b'\
+\xc0\x9c\xa8\xdetp#\xf1\x070\xd3\x81\xe9\xe2 \x07\
+'\xcd\x03%`\xf1\x5cO\xd6s8\xbc\x0f\xa8y\xd3\
+\xe9\xa2\xe0\xc3>\x05j.\x14\xf6]U8\xa0\x0eO\
+'\x81\xe7\x9cY~\x00\x0a\xd4\x96\x11!$a\x07h\
+\xa0\x00d\xc6\x13q<Q\xe8\xe2>\xb1\x9f\x0cG\x16\
+(D(|^\x1a\xd8\x00\xf2}\x00\x00\x5c\x7f\x0aT\
+\xae\x13\x9dK\x12C\x01J!\xc6\xa3\x91\x1a\xf7\x91\xbe\
+)\x15\x8e0A\xd8\xe0y=C\xffy\xae\x07\x1dB\
+^/\x07\x13\xc81\x1b\xed\x0cA\xad\xef\x9f/\x0a\x15\
+\x00\x1c\xfe\x9d\xe7\x05\xea\xb0\xc4\xfd\xbc?1]*\x14\
+\xc4,*\x09U\x89\xd4)\x04\xb8{@\x05,~\xf4\
+\x02F\x02x\x81\xa9\xc5\xfeE!\x0d\xd3D\x00@|\
+\xbf:\xf1Q\xc0\xe1\x1e\xc0}\xff\xab\x0a\xc3\x1b\xd4\x09\
+xE\xd7\x89\xceY\xd5*\xe8\xff}q\x8dJ \xaa\
+9|\xdf\x14L\xea\xc4\xc7\x08\x04#M*0c\x9f\
+\xa1\x00\xa3 \x02\xf8\xa5C\x0b \x83\x88\x18\x056\x9d\
+l\x12}D\xe7V\x97\x16\x05\x85$n\x0a\x1bj\x96\
+\x9c\xd7M\xa7\xf5\x93\xea\x04\x89\xe1\x16\x22\x9b\x5c\xb7\xe1\
+,7\xeb\x7f\x0euN\xd7U'Zb\xba\xb1cN\
+h\xff\xfa\xa3\xd6\xf7\xb7\xd4YDS\xe1]\x16\x09x\
+\xa0 \xa2`e\x1d\xa2)\x03\xd5\x10M\x13\x5c3\xd0\
+\xde\xa0\xf3\x04\xa3\x80\xf5\x0a`\xc5\x07\xfb\x0e\xdf\x07p\
+;`\xe6\x84\x9f7\x1dn\x0aG\xee\x13\xebv\xc8p\
+ \xc1\xa4 \x04\xb0d\xc6\x17@\x9c\xfd\x8c\x82\x89\xf5\
+O\xc7\x1fM\x03\xa9;s\xfeGB'`4:\xd5\
+\x9ay\xe6\x1c\x8du\xc6\xba\xe7\xef\xb0\xeex\xbe\xf9w\
+\x0aP\xc4\x15\xe7\xb5\xa8@@h\x22\x00\xac\xd3\xe9\x82\
+aA\xa2\xceu\xe7\xfa\x00`rN\xd1\xa9\x86\xc2\x0c\
+\xf5\x7f!\x01\xb8\x1f\xd0\xe8\x82\xec]cF\x19\xb1B\
+\xa8\xf96;~we\x0e\x91G\xb6\x1f\xb6H\x0c\xc6\
+G,*\xb3\x10\x8a93\xbc\xc1\xd8\xc0\xfeJ\x85H\
+0+\x04D\xb67[\x94\x9f\xfb\x93\x85\x03\x13;\x8d\
+v\xaa\xcc \xef\xbc\xce\xe4\xc0\x88S\xa0G\x93ds\
+hy\xe2;kg9D,\xd9oy\x9e\xb8\x8e\xba\
+\xaeP\xafC\x93\x8a\xeb\x89f\x12\x9d\xcc\x17,\xd2\xbe\
+*Fj\x88\x8d!J\xb7\x8b\xc4\x08\x01\xc2\xec\xe9\xdf\
+\xba\xee\xc3h(\x04\xe0\xa4\x828T\xf3\xe9\xc0O\xb1\
+\xa8\xd7\xa99\xd1\xa2\xaa\x8c\x9bK\xba\xf9\xa4\x87{\x8e\
+(\xd9\x9e\xbf\xad\xaf\xbc\xe4\xac\x0a\x9cza\xffj\xd2\
+t\xb8\xad\xc4\xed\xe5\xf3\xfc\xed\x02\xed\x02uv\x1a`\
+\x82\x11\xb9\xf1\xce\xe3\x9d\xc6\xe5\xfa\x8fW\xb4(\x9fw\
+\xb4\xa8\xd4\xe7v\xfd\x12\xe5~\xb7\x8b\x94x\x8fT\xfa\
+OO\xcf\xa1\xe5\x87\xcb\xd7\xbcd\xfc\x98E\x1d\x09l\
+\x1e\xb4(\xc7\xf6\x0b\x16.z\xf8|\xf3|e$\x22\
+\xb2:\xbe||\xd9\xf8\xb2J\xd1w\x95\xf9\x92\xaf\xb6\
+\xc7\x978.\x89I3\xcaG=@\xe3\x0c\xbbS\xcd\
+\xcc\x87\x0d\x1c\xfb\x9ee5\x97\xa4\x82\x91Q\x00\x98\x03\
+0:\x04,5\x7f-\xf1\x94\xdb\x9c\xbb\xcbY\xf3R\
+\x89\x97+\xe0\xf2\xe6\x89%\xb2\xb8\x9f\x01\xd2S\xd5\x19\
+|\xbf\x9e+\xa4}\xda\x18\xa1\xe5zN\xdcm\xa1\x02\
+\xf3\x07\x95\xb1\xd8~\xab\xc4\xf1iv\x5cL\x8f\x10\xaf\
+\xe4}\xd2\x81V\xbe\xe1\xe2\x89\xe5<l\xae\xb0H\xe2\
+\x90\xb8\xbdAYG\x9c\xf9\x88\xd1\x11h\xd5\x98v\xc0\
+\xa4\xbd\xdc\x87\xa3\xd6\x05\x02\xa4\xa2\xf1\xa5\xba%4\x8a\
+t\xde5\x17[HSn\xc1\xa4\x15BCIv\xa4\
+\xcd\xbbK\xcc\xa5Q\xce\xb2\x0e\x9bKJ\x5c\xec\xd4\xff\
+\xb2\xb2<\xef\xe9\x99\xdd\xcf\xb4O\xb7O\xa7\x86\x88\xf2\
+\x91\xd1\xa3\x16\xe5\xe7\x96\xb0p\x8d\x81\xdf\x9b\xc6\x00#\
+\x8f\xc1`F\xcc\x98\x86)\xdaw\x00\xd8\xd2>\xe8\x0e\
+\xb0Hj\xff\xec\xa74>y\xbf\x00\xd2\x88B\xeee\
+Q\x1b)aW\xc8\xf9\x8aH\xa8\xae\x9f\x03UG%\
+Q?\xf2\x17\x8d\x1c\xb9f\xdc\x02)\x7f\xd3y\x02\x13\
+\x01\xed%\xae\xc7d\xa7\xee\xfd\xb6\xda;x\xf9qo\
+U\xfd\x8c\x04Y\x88!\xea\x90Qx\x83\x88\x89j\xc9\
+\xc1\x14o\xf8}\xa2\xe45\xfd\x81\x16\xa2Y$x\xcc\
+\x06Rp!\xde\x05\xb3@\x072\x1b| v\xa20\
+\x90H\xa26\x0f0\x10\xe2_\x0bH\x9cB\xb6e\xe3\
+S\xc6\xdf\x1b\x7f\xaf|\xfe\x93\x85~O\xd9\xd8\xdbE\
+K,\xa2\x0d\xad\x1c\xe0\xe3\xab,\xca\xd7\xdf\xb6\xa8\xae\
+\x08\xddW,*5\xc7\xa5\xec~X7\x10\x07Tv\
+P\xe1\xf0G\xa9l\x7f\xae2\x0bH\x1cB\x14\x06j\
+!\x08<H\x10\x1dM+\xb3n\xa8b\x83\x14\xcc\x81\
+x\x9d\xe0Q\x0b\x08\x12P:(\xf8\xfd\xfe\xbc\xc4\x95\
+\xb5\x00\x0d_\xc9\xc1\xec`\xcc\xe2Au\xa4\xc3\xb5\xb4\
+\xebs\xf7\x1d\x97\x97\xea:\x89\xbfC\xc1\x89\x0d\xa4\x0a\
+\xedH\x5cHl\xf0\xbb\xa5\x83\x84\xe6\x01@\x82!\xa6\
+\xcb)a\xdc(Q\xa8,\xed{=!\xe6\xc3N(\
+\xd4|\x80\x00\xeb\x03\xfe7i\x1b0+F\xa1H\x01\
+\xa2\x02\x1b\xcd\x81\xe8\xac\x88r\xe4n\x07;T\x86H\
+$d\x14f\x1c\xfc\xfc]\x12}\x00\xaaa!\x82_\
+\xbc\xb4*B\xa4\x87\x8e\x1d\x14^:TJ\xec\x02\xa9\
+\x05\xf1\xa7\x80\xe5\xfd\x93\xf8\xa2J~\x89l\x94@\xd4\
+\xa1\x98R\xe8A\xdd\xc4v\xef\x17\x121\xba\xbb?\xc0\
+F\xdb\xa8\xb3\xc7\xdf\xa3\x80\xe2\xa0`\xe6U\xbe\xc1\xd1\
+\xc1\xfa\x83D\xe6\x98m\x84\x0aI!\xc1: \xf1\xc4\
+V\x90N-\x09\x96f\xd3B\x9c\x87\x0e)#\x10\xea\
+@\xc5\xfbg]\x000\xf0w(\xec)$\xf8\x0c@\
+\x80F\x06\x08/\x14J\x00#6j\xa8\x8a\x9aqw\
+$y\xe3\x0a\xe4\x84\x0d\xd0!\x16\x89j\x89\xc8\x0b\x09\
+\x03\x85\xf9\xf0u\x93\xf8\xe9@\xc5\xbe2\xd4\xc8)\xa4\
+)4y}t\xa2`4@]\xe5~PH\xf1\xfd\
+\x14\xc0<\xd7\x88\xcd\xa1\xc2\xafB\xa1{\xc8\x22\xb9}\
+<\xa9}\x09\xa6\x08\xd7\x99\xeb\xcb\xef\xa3\xc0`?\x93\
+\xb8\x5c\x88{\x22\x0a)\x91\xbfX\x1f\xac\x07~\x9eQ\
+\x1d\x12*\x9e\x9f\x97\xb5\xee\x05@ z\xe4\xfc\x96\xbe\
+c\xd93+\xd8w(\xe0Y\x0fU\x0b\xc3\xedtB\
+D\x16 \x83\xfb\xc0\xf7\xcf5P\xe3\xd7\xef3\xf3(\
+g\xd2\xc8\xb5 \x00\x01\xf6a\xee\x13\xeb\x1b1\x5c(\
+\xb3\x14\x92\x8cT}L#\x12\x88\xd7q\x9dP\x11g\
+\xe6\xf4\xfd\x12a\xe5\xba\xb3.\x00\x02(\xd0\xb1]|\
+L\xe7\x88f\xfbc4\x8cN1\xb3\xfe\xcc\xd0C\x19\
+f\xa4\x8duJ\x01L\xc7\x9d\x82r0[\x1e\x14h\
+\x98r\x14\x94$`\x5cg\x9eC\x18\x1b\xac\x17\xc4\x0d\
+Q\xed\x17\xe3a\xe8\x17\x1f\xf6\xc3\x02*\x9ci\xf7D\
+jL\xd0\x11\xe5\x9c\x182\xc1\xd0\xd4\x00x\xe6<\xa0\
+\xf0\xe6\xef\xf0\xfc!\xc6\xc4\xf3\xc6~F'l\xa0)\
+\x13\xfe\xdchX@\xc5\xe5\xfdr\x1d\x01@(\xeca\
+\xe8p\x7f\x01\x22\xd1@\x18h~\xc4\xba\x03\xd0\xe0}\
+\xf1\xfd\x14\xae\xfcw\x9e\x87!@\xa8\xf5\x1a\xebA\x85\
+V\x00\x13\x03w\x87r\x86\xf4\x0d\x1e\xfc\xcd\xa5j\xcf\
+\x88T\xbc_\x18\x94\x88\xef\x01P\x88)\xd2.a\x91\
+\xee\xa3iK=]\x01\x85\xb0\xf9\xe3\xfd\x9eiQ\xb5\
+\x18\xbc3\xfb\xa7d[\xf8C\x89\xb4\xfe\xa3}\xbe5\
+f\xe4\x8d\xcd\x0d\xcd\x0d\x15\xb0\x88\x91\xc3O\x08\xe8\xc1\
+\x1el\xce^\x13)\xf2Y\xee#\xfb\x0e\xc0\x14\xd7\x03\
+\x06\xa6\xed\xef\x9b\xaa\xc0:\xbb\xee\xaf\x01\xf00\x82&\
+ >\xfe;\xfb%bo\xb2\xf3\x0b7\x1e\x1b\xa9]\
+31)\xd9\x8fX?\x14\x08jx\xb5\xdf\xb1H\x85\
+\x81\xc4m\xdd\x9d\xa9\xac\xe3\xf6]\x16i4C\x8c\x0c\
+F\x9f&f\xb3\xa8\x05H\xfb/\x8br\xfd\xbeP\xe2\
+\x80J\x91\xc6\xdeq\xbc\xecx\x99\xb1\xed{\xcf\xf5Z\
+\x04<\xf7\xe1\x13\x7fF\xfb\xe3\xd6F\x88g\xb5(\x9f\
+O/a\xb3\xd9_(a\xbf\xefG\xfd\xc8oh\x15\
+!\x06\xae\x82\xa7\xd9\xc7\xa2|\xffT\x16\xca\xfb\xb7P\
+\xa1\xf3\xc5j\xfb\xeb6y\x1f\xab\xa3\xaa\xcdJ\x16\xb5\
+P\x8a\x82U#\xa7\x00F\x883:\xcf\xf6\xb0j\x93\
+\xcb\xc8\x82ky}B\xfb\xc7\xd9\xe9y\xe19\x22\xcf\
+%\x0f\xb3\x8e\xf4)\x89\x81\xacu\xeab|\xc7V\xdb\
+?gP\x9c$m\x88\xb2\x0e\xc6\xaf[\x94?\xf3/\
+\x8b\xf2\xf5\xaa\x16j\x80\x94\x82p\xe2\xa2\x12f{>\
+\xb3E\xb9\xfdM\x89Qe\x0a4_+Q^\xff\xc4\
+-%n\xd6\x88v\xd9\xaf\xde\xfc\x99\x85D\xa9\xdf\x93\
+Da\x8d\xdfye\x1d\xc9l^)a\xae\x1d3\x97\
+(\xf9\xfb\xc4\xfa\x16:\x0fnJ\xaa\xfb\xdc\x8f\xcfZ\
+$-\x08F\xba\xb1'\x06P\xa5p\xbe\xbc\xbb\xc2f\
+\xd3K\xd6\xe6\xef\x17\x863#\x0e!.\x8cf\xd3@\
+\xe3(F\xcb\x94G\xd1\xa8l\x9e\xb3\xa8\x1d\xf7\xf6'\
+\x16\xeew\xff\xff\xd1u&\xf0\xfa\x8e\xd5\xfa\xff\xbd\xcf\
+\xde\xe6\x14\xa1\x84$C\x93d*B4\xa7\x92)\xa5\
+9\xaaSrtL\x91\x06BQ\xa44\xf9'\x84\xca\
+p4\x09\x8d\x12'\x94\xa9S*\x94\x063\x91!\xf3\
+\xfc\xdb\xcf\xfb\xbf\xaf\xfb\xb9\xbe\xeb^\xbf\x87\xb3\xd7\xe7\
+\xf4\x9e\xed\xb7\xf7~\xdf\xe7y\xee{\xddk]\xebZ\
+\xd7\xaa\xcc\xd2~\xd3~\xb3~\xb3\x0aP\x0e\xad\x05f\
+\x9e\xcf|NV\xc5\x03\x8b\x95\xd7\x83dmZ\x09\xf9\
+i\x8cU\x7f\xae,i\x0d\xa1\xf1ff\xeb\xf4\xf3\xb2\
+\x94\xb8\x1b\x00\xe5y\xc1\x5c\x9f\xbeW\xd6\x18`\x93/\
+\xca\x1a\xa0\xc41\x1e\x95{\x9f\xa7\xd3\xb7\xcb\xca\xeb\xd6\
+\xb2T\x18\xa3\xa5\x92\xf8T\xe3\x1f\xdf\xef\xb1\xe5\xafo\
+\xf9%\x85>\x0a\x85\xddkd-n\x98\x9d\x7f\xa9\xac\
+|\xff\x1dY\xeby\xe8\xfe[V^\x17\x93\x95\xd7\x03\
+\x8b}\xaa\xcdI\xad\x07\xf0{\xec\xb0\x9e\xd9(;\x04\
+\xb4\x92\xd8\x93c)o_U\x09\xe3\xc0\xe3@\x06a\
+e\xfc\x0e\x15#\x1c&\x81\x08=\x95V/E%\x11\
+\xd5\xfd\xa0\xdcx\x1cG$\xae\xfc=T\xa3\xbf\x22\xab\
+\x0edPou\xe5\xb8\xff`\xb1\xb2\xa0\xe7n)\xf6\
+\xaf\xf2z\x98\xacQ\xa5I\xf8\xabh\x84\xc4\x0d\x9fS\
+\xec\xd9\x09I\xb28Vw@\xb1\xfd\xdb\xc1V\x0f\xc6\
+uS\xaf\x96{\xcf\x02!\x07\x10P`\xb8p\x13\x99\
+\x09\x0a\x8e\xdf\x17D'\xe6\xd3\x9b\x1a^\xc7\xc2\x5c\xe1\
+\x80\xf6/\x06\x1avI\xe3j\xa0\x80\xbd\xba\x92\xde4\
+\xdec\xbeD[b\x9c\x1c*\x95,(\x02F\x0a\xef\
+f\x80DO\x93\xd2\xe1\x8b} \xf6\xa6p\x1f\xdfD\
+T\xf8;Q!U:\xf1\xc2t`\xa2\xa6O\x80\x0c\
+\xd0A\xc5\x95\x00V\x84\xa575@\xa5\x12s\xfeb\
+\xc7\xb0QJ\x10\xec\xa0\x22@Z\xc7sa\xf9|P\
+\x16=\xce\xa3\x1e0\xff6e\xf1}\xa92\x04 \x00\
+\xd0\x00\x15T\xe2\x8d\x1b&\xb1,O\x83\x08\xe0J\xc7\
+\xc0\xf3R\xa5h<\x0e\x90\xbfO\x80\xc8\xd8%\xe6\x85\
+\x22vI/>\x22U\x00\x02T\xc8\xe9\xa5\xa2\x87\x8b\
+uM`B`\xcc\xbe3U,TsW\x1f*\xd2\
+\x22\xb0Uj\x96\xd6\xcd\xe5\xa9g\xd8s\x96\xa7\xff\xcf\
+ckp\x1cN\xbc&\x1f\x1b\x00!\x0d\x0b\xab\xe3\xc2\
+\xf8\xfb8 \xa8\xa9\xe3y\xcc\xf4\xee\xa3\x16\x0d\x83\xc0\
+\xa2D\x91p\x8f\xc6\xa5\x05\xa0\x82\x98\x9fZ\x8b\xbe\xd5\
+\x10\xd9\xa0\xfe2\xae\xd4SH\xe2\xef\x92\x98\xce\x8b\x1e\
+\xf9\x05+\xd1\x06\xaa\xa2\xd2\x87\xda<\x15%(U\xa8\
+\xe5\xf3\xea@\xad\x7f\xb8\x7f\xa8/\xcf\x7f\xbaa\xb1\x0d\
+\xda\x18L\x00\xa0\x1ah-\x9f\x12n\x1f\x84\x8c\xf5)\
+\xabf\xd0\x1c\xb8V\xdc\x9f\x0aD\x0c\x89*\x81\x04\x95\
+\x7f\x90_z\x87\xa9\x14C\x99\xa6\xf2\x8d:4\xaa\xbe\
+\xf4\xac\xe1ga\x948q\x0eJ$_\x04\xf2T\x96\
+npe\x9a\x9e;\x00O\x80\x8a\xdb\x0c|\xcd\xf7\xfa\
+\xfb?\xd4\xd3C,\x0c\x80a\x5cy$a\x19'\xb0\
+|\xf1\xb9\x09t\xd9w0$\x16\x1f\xae;\xa8\xfb\x8c\
+M\x85\xca\x87\x96\x00\x0c\x0b\xee+\x89.\x89<\xa2<\
+s\x0e\xb0Q\xeb\xe7\xf3\x00\x98\xf9\xefDE\x1b\xaa9\
+\xfb\x88\xc0\x10\xc0\x9c\x84\x12\x00\x81J\x0b\xcf\x0d\x00\x8a\
+\xe7~\x8b\xfd \xfbz\xac\xfd\x00p~\x8d\x81\x80\x11\
+\xa3*\xee#\xad\x08w\x9a\xd2\x89J\xbf\xb5b\x82\xda\
+\xefJJ\xb4\x0c\x01\x18A\x8d\x06\x90c\x9fr\x1d|\
+.\xf6\x05\xfe\x8dV\x0f\xc4\x07I\xc4\xb9/\x9c\xf7\x00\
+\x14<\x17*Y\x88\xe71\x06\x15\xbfG\xcb\x03\xaa\xe6\
+\x1a\xd3{VJ09_x?\x12_\xee\x0f@\x0c\
+\x89\x99\xb5\x08\x18\x9b\xc6:\x08\xbf\xcb\xef\xe3\xc7\xa8@\
+\x03\xd8\xc0\x8c\xf8D\xb5\xf6{T~\x9c\xa0\x85\x16\x0b\
+@>\x00\xc8\xf8\x95iH\x00D\x5c7\x00\x00\xe7\x08\
+\xf7\x91\xf5\x02\xb3\x88\xeb\xc3\xef\xf1\xbc\xc6S\x0b\xb8\xcf\
+T\xf2G\x9a\x15Am\x85\x99\xc2\xf5\xb3N\x01\x0aF\
+\xe3s\xa1\x96\xc7T\x1d\x8b=O\x9f.K\xf1\x84\x13\
+\x22\xa6!\x05\x03\xd1\xbd\xc8\x04\xd6TB97f\x0e\
+\x96%j=\xe7 \xd3\x03,f\x1b\x01\xb5\x03\xf2r\
+\xea\x0dL\x0b\x8b\x14\xf6\x7f\x93\x15?\xfcfY\x9af\
+\xc0\xba=|\xf2\x85\xba?X\xdf\xe3i\x1f\xf8\x8f+\
+\xab\xfci\xeb1\xd6*<>\x8ds\xb4\xfa{\xc4\x11\
+*\xbc\xfc4\xb5\xdc\xc1\x9c\xa0@\xa5\xb8R\xff\xfd\xf6\
+bw\xa4\x02\x96\x98\x11W\xa58\x8c8\x81)L\xd6\
+X\xe9?%\xab\x89V\x15\x01\xebw\x95\xa5\x16\x0a\xb7\
+\x18E+\x81\xb5\x00\xaa\xc6\xd5Ui\x0c\xb6\x19\x1au\
+\x0a\xd8\x8a\x89\xca,-\xafr\x8e\xcd]]\xec\x9a\x14\
+\x8f\xd1C\x0d0v\xae5\x01\x983\xce\x18\xf1\xfde\
+N\xacUi]X\xd6\xc6\xe51\x1d*\x80sW\xbe\
+\xfb\x9f\xcb\x5c \xbc\xda\xda@G'@\x91\x0a\xad\x99\
+!\x95\xb1;m\x09\x14\xe7Bh\xfd\x18\x80\xef\xd6\x93\
+%&\xe8\xa6\xc56k\xaa\xfe\xc1\xac\x15\xdc\xb9\xaa\xc7\
+s\xee\xe78\xf5\x16\x03\x05{\xa5)B:\x1dR\xab\
+\x5c\xfd\xfd5[\xe1\xa8N\x91\xf8T\x13\xfdc\x0a\xc6\
+\xfc\xbf\x14\xfbs\xb9\xaf\x07\xca\xca\xf7\xef.\xb6\x83\xef\
+\xf3\xd5m\xaa\x03\xc0\x05\xda*5/\xd9\xa7\x1c\xef\xb7\
+\x14\x93\xf6\xc1\x8fd\xadu\xa9\xfft\xb1\x92\xd0\xce?\
+AV\xbe\xdflH\x84+\x93\xe3!\xc7\x95\xe5\xfc\x98\
+9\xa1\xd8\x89\xa9\xb2\x7fK\xb1rnt{\xc8\x1a\x95\
+\x9cu\xdd\xed +\xbf\xb7\xa2\xac\xf5\xc0S \x0d\xf1\
+B\xa6A\xc1LR\xc1s-3E\x8fI\x80\x19\xe2\
+\xe5\x12\xbf|gJp\x01\xba`\xf0\xa2\x89\xe68\xa3\
+\x02\x1e\x9fjZ(\xfd\xd1\xb2\xf2\xfd\xf2\xb2Z\xc8}\
+V\xbfF\xa5\xbaW\xb1?\x00\xean[Y\xd3\x14\x98\
+<8y`\xf2@J\xe4\x9d\xffNO\x94\xa5\xf5\xef\
+1\xe90\xce\x82b\x8f\x86\x1a\x1ah\x14\xfa\x0c\xec\xb1\
+\x9e\x83\x89a\xb1S\x0a!\xd1\x0a\xe4\xd6S\xf6\xf1\xe4\
+FY\xd3&B|74\xa8\x18\xcf\x8b\x18;\xf1\xde\
+\xbe\xd5b\xdcy\x9c\xefh\x86\x90g1m\xc2\x80\xd6\
+\xec#\xbf\x95\xb5\x1b?\xb3\x8a\xac\xdc\xb0\x97\x14S \
+p\xcd\xe4\x9a\xba\x015\xceNcF\xbeQ\xec\xd8\xd4\
+\x13h\xa4qr\x99l\x01\x11\xbc\xe1\x00\xa4\xe2I\x82\
+\x89\xaa\xae\xa9\xc1\x88: \xf2\x12\x14\x0c\x02?\x02-\
+(\x84\x88:y\x8cF\xad\x7f\x7f%\xa9TSi3\
+\xe5tz\x86\xac\xa9\x22B\x81\xaaj\xa4\xe5\x01\xccm\
+Zl\xb3D1r\x05\xb0{\xa8\xd8\x83m|au\
+\xec[&\xb1(S\xecA\xec+\x02\xb9\x87\xb5\x14.\
+u \xf9{\x07,\xbfp\xaf\xf5\xe7\x1c\xd0\xbc\xe3\xb1\
+\x01P\xd5\x18\xd8%\xf5*\xb9\x07\x88D9\xc6o\xf9\
+\xba\x22\x11\x82\x8aL\xa0\xa2\xf0\xf3\x19\xee\xa9\x7f^\x0a\
+\x10\x10\x7fB[\xe0Eu\xc0\xc6\xb0A\x96M\x22Y\
+\x04:8 Z\x09\x08\x0cT/\xff|\xa2\x980\xd6\
+\xac\xab\xfa\xbd\x0d\xc1\xa3RB@\xc2\x5c\xd5;kh\
+:\x042\xf7\xa4\x80\x9e\x05\xeaV\x94Z\x07\xde\xd0\x14\
+\xc3\xe3R\x05{^u\x06C\xa2\xf6\xb24\x06\x11\xf1\
+5\xee\x03\xea\xf1\x1e#\xd8\xbd\xa5\xd8\xf6\xe9\x00C\xb4\
+\xc5\x89N \xebT~\x00XV\xa8\x13\xb9[\xaf\x9c\
+\xe0\xa3}\xd2\x18\x10\x07*\x04\x14\x81,C\xcd\xe1\xfa\
+\xa9\xfc\xf1<H\xa8\x08,\xa88\x90pp\xbd0\x02\
+H\xb4\xc6c\x9b\xf8\x9e\x83\x91\x00\x86@\xd1\xc0\x1bL\
+\x98\xa8p\x8d\xc5\xcc\x00\xc6\xa8\xe4\xb9\xd2\x1f\x0e\xe7[\
+C\x00\x17\x81+\x95\x1c~\x9f\xcf\x01\xf5t4\x9e.\
+Z\x0c\xd0z\x00x\x81j\xca\xba!A\x84Z\x86\xd8\
+\x14\xff\xbe\x93\x03\x0e\x023\x9e\x1b_|\xcf\xf8\xb7I\
+P\x9e\x87\xcfI \x0b \x83\xd8\x14\xe35\x09\xe0\xb8\
+\x9e\x03<\xb7\xd5j\xdf\xb4&\xd5\xf4\xf2\xb7\x0e\x08\xf6\
+l\x22\x8d\x04\xfc\xfd\xcbei\xbey\x8dP\x1a\xe3'\
+\xe6\xe3:a\xd21Y\x13.*\xd0$L0/\x1a\
+%~h%\xe0\xf9\xb6qw\xc3\xfd\x86\x91\xc3\xdf\xa1\
+rE\xa2\xcaz\xe4\xa0\xc5\xff\x5c<\xb4\xc4DE\xfa\
+v\x03\x18\xcb9Q\x18S\xcdy%\xa1%Q\x19\xab\
+\xe4\x03\xfc\xd0\xdaa\xa6O$\xac\xe3\xe7F\xe2\x8f_\
+\xe3\xf9\xb1?\x00\x10\xa9dz\x1dQ\x09\x0cF\x01=\
+\xae\x8c\xbf!\xd1A\xbc\x12?\xce:\xc4?R\x01\xa4\
+\xe2\xcd\xf5\xf1\xf9\xd0\xfa\xa0\xb2\x04\xc0\xc5\xbee?p\
+\xdf\xc7S\x02x\xe5\xf3\xf3\x5c\xa1\xb8\xf3\xfcF\xfb7\
+\xe6\x88\xd3\xaa\x04\xf3\x81D\x85\xe7\xf1D\xaf\xef\xd5\xbd\
+\x8f\x00D\xae\xf0\xdf\xe7}\xf8\xa2B\x8c_\xe2\x8bJ\
+\x0e\x8c\x1f\x9e/\x15J\x03n1\xa5\x04?\x86\x7f@\
+e\x1aus\xfc\x13\xeb\x94\xc4\xd4\x00d\xa85\x93\xe8\
+\x22\x86g5\xf78\xdf\xe9\x85&\x81\xe7\xf9\x91\x90\xa0\
+]\x84\x08\x1f\x15~\xee\xf7HT/\x98\x5c\xacW\x18\
+A\xa3\xeb\x86\xea\x19q\x08\x89:\xf1\x06\x01\xe0\xb8\xd7\
+\x1e\x86#\x09\x99\xc7\xfc\xc5\x94\x0c\x9e\xef\xb8\xd5f\xec\
+\x1fI\xf8\xa1\xa4\x8f5^Xo$\xee<'O;\
+\x89\xf5\x0f\xb0\x0c\x00\x00P\xc0:\x1a\x7f\x1e\xde\x17&\
+\xc8\xa6\x9e\x86\xb0\xd4@\xa9\x0f\xe6\x00j\xed\xa6\xc6W\
+\xaa\xf5[[\x0fph0I\x9b\xe9\x93M\xbc\x91\xf1\
+~\x04\xde\x04\xce\x00\x010\x1d\x03x\xe1|3p\x10\
+~\xd2\x81nT\x92\x11\xa1\xa5\x80\xe1\xca#ZN\xfd\
+F\xfd\xc6\xbd\xa6\x0c\xbcM\xd6T\xb2KX}Q\x0d\
+\xac\xa9\xf8\xa2=A\xaf\xefs\xcb)\xf1\xdc\xd6\x8a\x8a\
+(X]\x9f\x7fm\x9a2q\xdf\x10\xdf\xb5\x06D\x00\
+B\xac;\xcey\xad61_>[\xec\x10\xbf\xef\x99\
+\x09(\xd0X\xbe/\xa4\xb1^\xee\xb9\xa7\xd7\xb9&~\
+\x9f\xaeS\x0b\xea\xfc\xef\xc9\xf5\x83\xc6Tq\xb2\x93\xe9\
+$M\x9b\xb0\xb6\x0a\x09\x5c\xb4\x06B\x116\xf5\x9aq\
+i1\xb6\x98x\xce\x9f3\xa6\x11Yki\xb2\xa8\x06\
+G\x97\xfbyn\xf7\xab\xeeW\xc9\xff~\xb3\xd8\xf1)\
+.\xb3\xd8ue \xec\xdf\xa6EE<\xcb~3P\
+\x15\xe7\xa3\x18\x12\xa7\xb7qu\xd3\xe3\xa6\xc7j|u\
+\xff3Y\x15o\xfc\x8a\xc4\x1bc\xce\xbb\x00z\xc5\x8f\
+\x0f\x0c\x89^\xb7\x8c\xcc-\xb4?HZ\x06\x12#\xfc\
+\x84E\x02\xcb\xcf\xeb\xd3\xeb\xf3#\xe6\x16s\xd5\x1f\x90\
+9\x81;+M=\x90&\xc5\xc9\x09\xf0\x81\x0aN\x02\
+\x89\xa6\x82\xc5\xd4\xfb#\x8b}\xad2U\xea\xe7W\x83\
+\xc2\x9c\x80\x9bo\x0e\x8c\x89\xb9]\x8bi\xdd\xdf#K\
+\x05Ck\x13\xcc]Z\xec\x0f\xe5\xf57\xb2&\x96J\
+K.\xd4\xf4\xfe\x1d\xb2\xf2sw\xca\x9ch\xbe\xd1\x9a\
+W\xdfM\xd3}\x0c\x0c\xa1M4\xf9\x9c\xcc\xd4\xfd\xd7\
+Z[\xac\xc4s\xb3[\xc8Z+Z\xbf\xb8\xac\xb8\x85\
+\x0dd)\xd1\xf4\xf9\x17\xbd\xffJ\xacOI\xe2\xce\x8c\
+\xbb\x84A\x05\xf3\x17?\xa0}\xb6S\x12uW\x99\xec\
+\xc7I\xcc\xf1v\x99[8\x0eOS\x15\xdc\x82[\xbc\
+\xcf&u*\xc2>\x83&G\xb7\xae\xac]\xe7\xf4\x0b\
+Co\xfe\xe4\x0f\x93K\x95\xa7u{u\x1f\xe8\xca\xbe\
+\x9e\xae,k-\xb4L\x85\xc3\x8f\xd6\xd6\x90g\xa6\xf1\
+\x8e\xa7\x95}wZm-\xbf\xb1j\x04\xc0\xcc\x02\x10\
+wkPh'8\x8e\xee\xd7\x955`l\xfa9Y\
+*Dy\xba\x5c\xf9\x9c\xc5j+\x85\xac\x15v\xfd\xf3\
+\xd3\x83d\xa9P\xc6\x14\x0b\x12|\x17\xd2CS\x04\x86\
+\x94\x99\x08\x00\xd6\xb3,@\x0e\x0az\x0c\xe7>%3\
+\xd5V\x88\xe1\x96\xdd\x965\xf1tb\xc4\xc6D\xbdu\
+r\x8e,\x05x8:/\x8c\xe9\xaa\xb2F\x95\x0b\xaa\
+5\x07\x0bTG\x1f\xa8!\xd2D\xc5\x80\x83\x89y\xeb\
+\xa26\xfc+\xa9\xfe\xd2\x82@\xe5\x89\x0a$\x08\xa7\x03\
+\xf0~1Yy\xddZV^\x9f(KcM^Y\
+\xec\x15I\x15\xfbO\xb2\xf2s\xc7\xcaRbwN\xd5\
+\x93\x1e*\x17\xefi\xa2d\xd5a\x96\xef\xbb\xbf\xc8\xca\
+\xf7?\x95\xb5\x0az\xf7\x02Y\x13)\x8cJ\x9f\xe6R\
+.\x9f(\x83\xcc\x99U\xfaq@j18W\xe6\x8a\
+\xf4\xc7Gsx\x7f\x91zO\xe8Q\xa7\xf7\xcc\xd7Q\
+\x91\xf6\xed\x13\xd5roY\x13m\xac\x14\x1b\x89s|\
+\xb2Zk5p@C\x85T\x04ZQsB[@\
+\xe1B\x0e@\x00jX\xa0\xaaPj\x03\xdeQ\xecv\
+'\x0a\x8b\xa6\x84\x0c\x86\x00\x89\x9f\x16\xf4\xc9\xed\xf3\xd5\
+\xe3xek\x13\x9c\xd4\xa81\x11\x08x\xfa\x03=m\
+q\x80\xd2\x1bz|\xb1o\x96\xef7\x94=N\xc0\xca\
+\x98\xc4\x85j\xcd2\x02\xd5\xa0b\x9b\x22\x16cD8\
+\x00\xe8\xe1\xe1@\x87bl\xb1\x8e\xda\xf3\xf3\x86\x14\xc0\
+#\x0e\xe2@,z\xfb]Q\xa3\xb209S\x96*\
+-\xd6&\x08\x87\x0fPFB\x08c\x06Q0\xa8\xb9\
+T\xc2\x08\xf4\xc7j\xf3P\x94\xa9\xc0]\xe9q\x96\xfb\
+\x0e\x81\xc4\xbc\xdd,\xb6g\xf5\xf4\xe9e\xd3\xcb5\x0e\
+4\x0e\xecqk\x01\x89\x0b\x89\x0d\xeb\xe6\x1a\x8f\x17\xa4\
+\x07w\x91\x91\x0a>\xbd\xd5\x88\xa6\xb9R\x1e\x09\x16\x81\
+7\x89?\xaf\x04\x84\x5c'\xea\xfa$bp}Hx\
+\xf17#Q\xb2\xe8\x89t\xe2@`E\x8bM\xffR\
+\x99\xd7\xcb\xed\x0ex?\x96\x12\x1b\xf6\x8bD\xb2\xa4\x85\
+\xf2\x97a\xac\x11~k\x81\x16\x01\x05\x1c\xa7\xc9\x9a\xf8\
+T\x09C\xdf\xda\xbd5\x8d\xcd\x82*\x8d\xdf\xf3\xf3\xab\
+\xfb\xe7\x8e\x94\xe8\x22Nh5\xfd\xb8\xffT\xf4H\xa4\
+Hx\x01\xf2X\xaf\x04r\xbe/\x04H\x93\xe7\x98\x0a\
+\x0c\xa5\x9e}:V\xbdG\x83\x04\xa6\xd6\xd2V\x1b\x7f\
+\xdb\x88\xba\xcd\xf3\xe6\xfe;\xb1'\x90e*@\x00\x00\
+$\xdc$60k\xeeu\x02\xb4\x9a\x9f[S\xd1\x1e\
+\xc6\xf6\xc0\x5ca>;\x00\x02@2\xc0\x15\xd7O+\
+\x8c_\xa9\xd8E\xe2D\xe2HO?c\xcfhY\x03\
+\xf0\xa2\xe5\x8d\xc4\x93J:\xe3\x1c\x19\x17\xb7\xae\x03\x5c\
+(\xee\x00|\x00\x03k\x8c\xae\x0b\xff\x04\xc5\x1c@\x89\
+\xd6\x18\x127\xee/L\x11\xae\xdfL\x0d\x02\x9ar\xba\
+\x0f-`\xb4\xcc\xb1\x8e\xa8$\xe0'\xd8\xbfP\xd3\xe9\
+y\xa6\x02\xcc\x983\x004\x00\x1bZ\xc1\xb8\xbf\xf8\x05\
+\xc6\x9b!\xce\x87\x96\x88\x03\xa5\x9a\xf8|\xf6qz\xf8\
+Q\x81flR\x88\x0c\xf9\x8bs\x8c\xe9\x05\xacG*\
+\xa5\x8c\xef\xc3\xefs\x9f\xc7\xaa\xcb\xac/\xd6+\x00!\
+\x9f\x93\x0a\xbf\x81\x5c\xce\xf9\x10\xff\x05\x90\x00H@T\
+\xcb\xa2u\x8f\xf9\xe2\xf9\x8e+\xed\xe3\x9e}\xfc\x22\x00\
+*@\x02Z/\xa3i%\xf1s\x00\x09$\xfc\xdc\xd7\
+1\xc3\x81W\xde\x17\xff\x01\xb3\x0b\x7f\x0dS\xf3\x9f\xd6\
+\xca@t\x998\xc5@\x87\x1a\xcf\x94\xa8E\xc2\x89\xe8\
+\xd4\x05n\xb9\xa1\xb5\x93u\xe3\xf8\x0cjtL\x8b\x80\
+\x19\x00u\x96\x0a\x9d\xc5\xbb\x1e\xd3\xaaxl\xb5\x88\xe3\
+\x02 \xdb\xdf\x00.\x80\xe8\x98)\x03\xc3\x8f\x7f\xd7\xac\
+\xa4K\x1a#&(\xd4\xdf\x99~\xb72d\x7f3\xef\
+\x82z\xee\x02\x04\x1e809#\xf1\xe3\xf9\xa3Qc\
+\xd1\xc4\x10\x7f\x84\xf9h`\x8e\xc2Q\x95&\xdc\xdc\xeb\
+ys\x17.\xbe\x9aZ[h!\xf0z\x9a\xfeD\xd6\
+\xa8\xe0\x95b\x7f|\xeb\xcd\xeev\xec\xde\xd3\xbd\xa7&\
+F\xb5\xa2\x1d@\x9c\xfdI\xff\xdf\xb2\xb4\xcf\x01\x9c`\
+Hy\xfa@-\xf8\x1c\xde>\x17\xbd\xca\x93\xb3e\xb5\
+\x95b\xa0\xe2\xab\x02[\xd6]\x7f\xa6,1\x0a^&\
+K\x15T(\xd10\xaf\x96\xac\x03\xffb\x0a\x03\xe7h\
+\x00q\xbe\x9e\xb9\xabd\xad\xd2=YD\x90C9N\
+\xf6\x92%M\x09\x8f\xb3\x8b\x8a\xb2\x99x\x93\xff\x19\xf2\
+\x93\x997\xc8\xca\xe7\xfc\xba\xcc\x80\xdc\xbd\x1e\xb7wv\
+[\xd7\xfdY2'l\xeb\x19 xa\x12\x93\xddL\
+\xd6\xc6MS\xa1g\x0aB\x8d\xe3N\xb0\xc6\xc1\xeai\
+|\xa8\xcaeG\x94\xff\xfe\xd3b%!\x9c;\xba\xd8\
+1\xfe\x9c\xe5\xbc\x9e\xfb\x8e\xac\xfc\xfb)\xb26\x06\x93\
+\x04y\xee3\xb2\xd6\xd21s\xb6\xac\x01\x0c\xf3\x8e\xae\
+60\x17\xca}\x9c\xdbW\xd6(\xf2\x93\x13eil\
+\xa5\xef\xd7\xccke\x16\x07\xbc\xb9\x8d\x1d\x9c\xdd\xa3\xd8\
+\x9e\xe5\x18\xb9FV\xfe\xfb\xbe23\x08NHc\xc0\
+\xad\xfd\x83\xb6[\xec\xdb\xf5d\xe9\xf9\xc0\x0c\xa7\xf0\x8b\
+\xa8\xe8\xf9\xb2$6\xcc\xb9\xef\xf5\xd9\xdfY\xac\xf8\xd3\
+\xb9\xf7\x17\xfb\x0f\xc7\xd7j\xb18Q\xd6\x80^\xcdj\
+\xab\x8c\x0f\xaf\xe3\xee\x9cr\xff\xceI\xe2\xa1\x1f\x92%\
+f\x0e\xf1\x9b\xcf\x85\xe9\x7f\xbb\xd5\xc5yX\xf4\xdc#\
+\xe6\xfc\xe3\x81\xb9;]\xbf\x5c\xd7\xfa\xb5\x05\xf4[\xb5\
+\x85\xd6~5\xb4i(p\x9b\x91\x82\xb6\xde\xdcF\xb2\
+\x96\xc7\xf5\xd7\xcb\xd2\xb4\x10\x0ad0i6\x97\x95\xd7\
+w\xcb<\xa5c\xe9\xd4\xaaJ\x8b\xee\x989F\x5c@\
+\xa1\xde\xe7\x14Lx\x80\xc0\xd9\xa8\xd0\x10\x08\xe8\xb6/\
+\xdaD\xe0B\x1d[\x04\xd8/\xa7\x8a)cx\x8c\xe8\
+F \xc4\x07B\xd5\xdfT8\x10\xb4Z_9\xa3\xa9\
+/3\xa7\x92\x84\x11\x04\x98\xf7\xef6\xe86\xec6L\
+\x0e\xd0\xd4\x0b\x1c~\xa8)\x82\xb4\xd3\xebG\xe0\xe2\x83\
+\xb9\xaa\x8f\xbe\xdd\x14\xfbK=\xaf\xb1\xdc\xf0\xc9\xef\x8a\
+\x95\xc0\xaa\xdb\xbf\x98\x02\xf8\xff\x92\xb5\x83-\xe6\xb6\x1b\
+\x88\x80\xe2\x16\xe2`\x04\x0a\x88\xa90F\x0dU`\x07\
+z\x95\x02\xa4\x04^\x80lodi5\x07N\x7ft\
+\x00\xf2P\xea%BD\xc9*\xed\x93\x0b\x8a\xfd\xa6\xf5\
+\x06E%\xc0\x09\x09\xad\x00\xf5\x0b\xfd\x18:\x00\x00 \
+\x00IDAT\x98_\xa5\x8d\x1d\x99\xeeT\xec\x83N\
+\xc0\xaen\x01g\xfd\xbb\x9f\xf7X\xb8S,N\xb4\x86\
+\x1d\xcd\x0f\x9d\xe0\x1d\x96\x90:*\xe7\xcc\x11V\x05\xec\
+\xa3\xa6B\xed\x96TSu,\xae\x98z\xe4\xe8i\x14\
+As\x97\xa4\xb2\x0a@\xa4\x9f\x7fz\x1b\x1fY\xd7\xc7\
+\x8fSb\xe2y\xac\xa8\x1a\xd7\xe7\x91\x03{\x02\x1d\x10\
+f_wP\xc48\xf0\x01D\xc6=}\xe3\xb1}|\
+\x91x\x11`q@B\xfd'\x91\xf1\x01\x16\x07\xbb\x08\
+\x8a\xa7$Q1\x01\x04\x1fJ\x08:b\x98\xbe/8\
+\xeaP\x01\xf6\x81\x1a\x01?\x0c_\x07PPb\x99\xf7\
+\x19\x07\x10j\xfe0r<\xe7\xb4\xdc\x8b\x81\x22\x0b\x85\
+\x97\x8a\xd2\xb8\xb2I\xa5\x19Q\xc2\xa3\x07\xc4\x16\xa4\xb1\
+\x1cw\xc3x\x11\xee\xa7\x11\xfe\x10=d\xba\x07\x15i\
+\x12s\x1c,\xcf\x87\xfb:f0\x10x\xaf\xe4\xca\xe0\
+:\xbe\xdf\x88\x021_z\xf4\x9c&c`\xc3\xe2/\
+\x15\xceY(Q\xd5\xb9N>?\x80\x00=\xe5$P\
+$B\xbc\x0f\xc8\xfe\x9e\xb2\xe4\xa8\xd5\x00\xb1Mb8\
+\xa0b\x8b\xb8'\xaa\xd0\xbe/1\xc5\xe4\xca\x0a\xb1\xcc\
+\x9b>KV>\xc6?d\x0d\xd0\xea>&k\x95\xac\
+r\x5c\xd6\xf1\xaaQ\x81\x05`\xf2\xd8\x9dHP\xb8\x9f\
+0\xa7x\x85\xc9\x81\xba9\x01\xbe\xf7_\x88\xd2P\x99\
+\xa5w\xef\xb8\xe9\xf1\xb5rC\xa2O\xe2\x04\xc5\x1f\x11\
+4*l$0$\xcc\xf8a>/-([\x89K\
+\x96\x18a$J?\x1a\xa8n\xf1\x1c\x00h\xd8\xa7\x1c\
+lO\xb0\xe8\xe6\xfa\xd6N\xe1kf\xd43=\x9e\xeb\
+\xce\x7f\xa7\xf2L\x85\x16?\x01\xf5\xdf\x15\xf8\x08P\x01\
+T\xe9A\x06\xf83\x90W\xc5\xab\xbe\x99\x18T\xf8#\
+\xee\x17\xeb\xb3it\x0c\x15\xd7\xa7;\xf1\x22!\xc3\xdf\
+\xc1\xd4\xe0yp\xce\x90P\xf3<\xf0[c\xa6\xc1\x22\
+#qF\xc612\x86\xc8@T\x883\xb9\x12\x15\xad\
+6\x00=\xfc\x1ec0\x0d \xc74\x07\xee#\xfb\x8a\
+\xe7\xce}\xa7\xf2\xee\xcf\x11\xd3/<\xe5$Z\xe3\xe8\
+\xfdd*\x08\xd7\x0f\x10\x8c\x96\x8a\xc7!E\x82\xcb\xb9\
+D\xa5\x96\xfb\x87\xc6\x81\xd7}h)\x00\xc0\xd0\xcb\x0e\
+p\xe0\xf1\xc5\xf1\xfb\x8b\x8c\x00D\xae\x93\x16-\xce3\
+Wf\x02X\xa0\xf2\xc3:\xc3\x7f\x10\x88\x8d\xd7!\xcf\
+\x0b\xe0\x96\xf7\x1d1u\x10\x15\x8d\xfd\x0f\x83\x85V\x94\
+\xf1\xdf\x85a9\x16/d\xfdQ\xf1G\xdc\x0fjx\
+n\xd5{Bb\xc4\xc0\xa4\xf3\xf8\xd8\xc9\x8fd\xad\xd5\
+\xb1\xaa\x8d?\xaf\x01\xde\xc4\x8b\x00\x07\x01\xccx_\xd1\
+\xea\x10Tk\x18\x04P\x88a\x10Hd\xf9\x95\xed9\
+\x91H\xf6o\xea\xb7\xeb\xb7s\xcb\xe5\x01\xa9B\xec\xf9\
+\xe5\x00c1\xa5\x00\xe6\x00@\x92\xe3\xd2\xc9k\xed7\
+\x11=6\xd0;\xdd\xc0\xad]k\x0f-\x85\x11\xbf\xee\
+:\xddm\xbak\x02F\x008\xe8\xe9\xb56MM\x18\
+\x0emT{*z\x88\xe4q\xbe\x87\xff\xf4\x14\xa2\x10\
+C;\xbeZ0H\xa3'\x18\xbf\xedx\x93\xcaw$\
+*\xeb\xc8\xca}\xf9\x89\xac\xae\x8b\xe1|\xbb\xde\xadm\
+N\x1c(\xc4!\x8e\xd8\x9f*K\xeb\x0f\x86\x15\x05\xa6\
+\xd1xP\xe2\xc6\xda\xf3\xfcj\x17\xda\xce\xf4}\xfa{\
+\x8b\x7fk\xa5\xf2\xb0\xd6*C\x81+Z\x16(\x08 \
+>\x0d\x13U\xd1\xc1\xfdml\xdc\xdc\x89\xb2T\xb0q\
+\x82\x88V\x91V\x83\xd6C0E\x10#'\xe1\x06\xd0\
+\x00\xe83\x80\xd1\xad\x22k\x15o\xd6}L\x1f\x83\xe2\
+\xaf\xdd\xbf\x82\x13\xb0w\xb5\x16\xdc\x0a+\xbe\xb4\x15B\
+\xfa\x17\xc8\xca\xeby\xc5\xceoS1\xa6k\xca\xdas\
+\x85r\xdf\x1f&+\xd7w\xa6\xac\x01\x97\xfd{d\xe5\
+\xbf\x9f,+\xbf\xffAYc\x00\x07\xf0\xeb\x04\xb0_\
+J\xd6\xc6\xed\xf1\xfcx\xde\xfd3e\x89!\xe7\xfc\x06\
+\x80;\xc4\x1d\xcf\x915\xc0kf\xefb{\x95\xfb\xb4\
+b\xb1\x15\xd2\xf5\x98\x92^\xc7\xa6\x97\xf3{fSY\
+\x13\xd3\xec\xdf%+\xaf\xdf.\xf6-\xe7K\xe5\xdc\xe9\
+>'\xab\xad\xd1US\x85u\xcb44\x18\x02\x93\xef\
+\xc9Z\xc2==X\xd6\xe2\x0c\x12\xf2\x99[\x8a\xddl\
+\xbfqQ\x12\xe3\xf4X\xda\xdar\xfd\x9f1#LZ\
+\x18\xcbT-\x8ce\xfae\xfbe\xeb\x98\xbf\x9a\x00\x87\
+\x9fC<\x98\xef\x7fi\xa6\xcd\x16\xb2\xf2z\xf9P\xf8\
+*9\xe6\xa0\x81d\x86\x11\x8c\x80\x00\x94\xcc<\xe9_\
+$+\xcf\xf1xYe\xca\x0d\x85;\x8b\xef\x92/v\
+\xaf\x93\x95\xd7\x8f\xc8R\xa1g]Y\xf9;o\x90\xa5\
+i\x06\xb4v\x03 \x1b\xe0dj\x03b\xb3\xd1:\x8e\
+v\x81\xa7<\xd1*\xc1\x98\xc8\xd9\x99cd\xa97I\
+\xbd\xa0\xafk\xbd\xbeQ\xd9'\xb1t\xe2\x1e\x81\x08\xd4\
+f\xc4^@\xde\xe8\x8d6\x82\x13H\xe8\xae2\xff\xf7\
+\x07SO\x04\x14D\x85\xad\x7f3\x02\xbejM|\xaa\
+\x08D\xf4\x08\xffg\x1d\xa8\xd5\x0eV\xa8'\xa8p\xd2\
+\xe3\xea\x84\xad\xdf\xbeX9 \xe6\x16\x97\x95\xefg\x8b\
+\xcd$q\x04(0 \xaeT\xec\x9d\xc0\xd7V\x80\x87\
+\x9c\x80]\x98\x0ezS\xe9k\xaf\xe4\xf3\xeb8\x8a\xbf\
+j\x83B\x8d\x8cq2\xa8\xb5\xaa\x92\xfd\x11\x03\x1b\xff\
+\x9d\x0e\xe2\x8b\xab\x1eu\xa3\xe6\xaa\x03R\x94\xeb\x93\x8a\
+\x89qq\x9e\xac\x01 \xa1Z\x0a\x85\x9e\x00\x5ca\xf6\
+\x15)\x90yR\x9d,\x1d\x1a\x0d\xf5\xa0|\x93\x1d\xcd\
+V\xe9\xf3\xeb\xef\x9f\xeb\xc4\xfc\xd3\xe9 \x82JB\xe2\
+\xfb\x8djA\x89\x078\xa8a\xdb\xb1\x0e\xd0>\xe7\x03\
+\xf1\xa4$N\x84\x88\x93\x13\xc0Z!{UC\x98+\
+\x95\xfe\x07\x0e\x84\xd6w\x82\xfa\x5cW~?\xd3z\x80\
+\x18[REm\x96N\xd3'\xbe/k\x95STA\
+CL\x92\xdeW\xc6+\x8e\xe7z\x13\xb0\x12p\x13\xd0\
+\x12\xc0q0R\xe1$@1\xd2Y\xe7\xf3\x1e\xd0(\
+;\xf5\xf5\xf0$\x12\xc3\xfcW\xc4\x1e\xd9\x90\x88\x22\xb1\
+\x8fH\xccA\x00\xf9\x1c\x04\xfa\x00\x11$h\x1c\xc0J\
+\xb3_\x91\x0e\x98\x9f\xc9Ro\xbc\xe7\x1dG K\xa0\
+\x08\xd5\x96\xc0\x90\xbf\x0fE\x18 \xe0\xd3\x03`3=\
+\xc9\xbdQ\xa6\x86\xab3\xae\xf6\xc61\xbf\xfc\x01'\xa0\
+$\xeeTD\xa9\x941\xbd\x80\xeb%\xb1\xf2\xc1+m\
+f\xa93Ge\x8e\x84\x9e\xfb\xcf\xcfm\xe0\x84\xa9U\
+<\x17L\xfc\x16\xf1+\x81\xf1\x03\x06$\xe6F@@\
+\x9b\xf3\xbe\xa0\xd8\xd3\x98\xba\xeb\x04\xb5\xfb\x81\xccc\x7f\
+n\xb6(\xe0\xae\x06\xf0.o\x07\xf0\xe4\x22Y\x0a\xd8\
+\x01v\xa8\xec\x93x\x1c/+\xfe\xa8\x93\xb51C\xfd\
+-\xb2\xb2<\xbf \xab\xcf{\xf8\x1c\x00B\xac[\x98\
+T{O?2\x1d\x0e\x8e\x05\x01\x1e\xaf\xf3\xa8L\x02\
+\xbc@ME\xec\xcf\x07G\xecW*c\xec{\x80]\
+*\x91hX0u\x85\xc4\xcf\x89\xf4\xf4\xd7\xf6\xd7h\
+\x13 \xb6\xb5\x9a\xa9t\x8c\xe1\xa3\xb2\xc8\xfb\x91(\xc3\
+\xe4h\xd3\x0d\x86\xc0me\xafS\xfc\x1b\x89\x0d~\x94\
+\xd6%*\xd5T\x829\x87\xa8<\xa3\x15\xc1\xfa\x02\xa0\
+0\xd53\x80-Zt\xf0\xcb\x00x\xe3qp\xdbU\
+k\x95\xff\xf7T{\xac&\x00\xcf\x07\xe0m\xc9\x05\xa7\
+\x83\x04\x85\xd0\x81]T(\x9e\xe9D\x90\x16\x1e\xf6+\
+\xfb\x08\xa0\x8d\xfb\xc04\x18k\xc9D/\xff\xdd>_\
+I\x08\x8e\x19\xc4\xd2*\xe5\xf9\xa2\x04\xc0\xc10\xd8[\
+\x96\x12u\xcfiFl(\xc4:\x09\xb4I\xac\x01\xae\
+I\x94\xadE\x12\xfe\xd5\xeb&\xfe\x1d\xc6\x9f\xc7\xe7=\
+\xa6\x05\x82\xc4\x94\xe7\x81\x1f\xa1E\x01\x00\x85\x9f\x1b\x8f\
+S\x84\x91\x888!@%@\x81\x03\xc6H\xc49\x0f\
+\x08\xb0\x00X\xf0\xcb0I\x98\x1aD\xeb\x17\xefG\xa2\
+\x01\x00\x06\xb0\xca~t\xa0\x1cc\xb6\xd8\x97\xbc/\x00\
+\x1b\xfb\x91\xd6'\xf65\xc07\xfe\x8a\xcfI<\xc4\xfe\
+\xe6~\xb0\x0e9\xbf\x00P\x00\x1a\xa8\xa0\xf3>\xec;\
+\x12'\xc65\x03\xec\xa2\xa1B\xc1\xc8\xccG\x02\xdf\xe9\
+\x0a\xb2\xa4\x0d\xc0t$\xd4\xee=_{r\x84,M\
+\x87aN\xbd\xc5\xf0\xea\x14\x95_\xa7\x0a\x1c\x14\x5c\xb7\
+\x9cT\xd1\xea\xa77\x95\xfd\xee\xe5\xb2t\xae\x18\xa8\x0d\
+\x111\xb4#\xd0\x8e\xb1\x96T\x95\xf6\xdd\xa21bB\
+D\x99}\xf4q3\xe1\x5cp\x9a\xb7\x89\xe7k;!\
+\x801;\xfd\xd1\xd0jZ\xf7\xc9\xb1\xe9\xfe\xc1,\x13\
+\xd0\xb5{b,\xd2\xaa\x82f\x12\xfb\xba1\xd7\x86/\
+\xfb;\xe2\x85~}Yy=\xbb\xd89\x0d\x18\x89}\
+\xee\xf5\x1e=\xc8P\x86\x9fm\xed*\xae\xcf~\xb7\xdb\
+U\x96\x00\x02\x8b\xea\xc5z5P\x00\x10P{\xfb/\
+N\xe2\x89\x9c\x97wW\x0f3\x00\xd1\x0f\xb8\xd2\xfd\x95\
+&z\x88\xf6\x14\xa2jL%\x88q\xbe$\xb0\x22\xbc\
+\xef\xd6\xe2sZwaT\x05\xf3\xe8\xb7\xb2\xea\xbf+\
+c\xacD#\xf5zg\xce\x9e9g\xe6\x9c\xb4\xde\xf1\
+3\xdc\xdf\xa3\x06\x7f\xa4\x99\x01uj\xc0F\xc3y\xd1\
+o\xddo\xd5o\xd5\xd6em\x85{US\xe1\xa7%\
+!(\xe0\x9ev\x82h\x5c\xffZY\x13c\xec\x0f\x94\
+Um\xa5b\xe9y\xc3h5 \xdbo$+\xaf\xcf\
+\x96\x95\xd7?\xcaZ\x22\x1d\x15v\x0a\xa4G\x96\xf7=\
+\xb2NIX\x7f\xb2^\xaa\x04\xe3\x1f\xa0z;\x81\x0c\
+\xc6\xa8\xc7Rv\x1b\xcbZ\xe2\xaf!\x8d\x1a\xd3\x18@\
+6\xeb\xd5\xc0\xcc\xcca\xb2\xf2zA\xb1\xdf\xb4\x84\x14\
+\x863=\xf8\x01p9>\x88q\xc8n\xcd\xea\xb6\x97\
+\x95\xd7\xef\x0db{\xa1\xa1\xa6\x82\xe8\xb4\xf6\xe4\x17k\
+yB\xbf\xa9\xac\xbc\xfeBV\xde\xffE\xb2\xc4\xf4\x91\
+\xe6\xd9\x87\xca\xe7\xff\xb2\xaci\x8a\xf4\x8f\xca\x0c\x1c|\
+\xc6\x85\xdb\xbf\xd9\x7f\xa8\xb5e\xa5~E\x89\xdd\xf7\x97\
+\xf4\x17\xf7\x97\xa4\x96j\xc4\x8e\x19\xe7\xb7\xdaP\xa0\xad\
+\x85\x9b\xeb\x1au\x7f\xfa$\x8b\xfb\xbdNV\xfe\xfb\x7f\
+\xc8\x12\x13\xc8c\xbb\xd1@\x89<\xd3\xadA\xc1t2\
+\x10\x07\xd0\x05S\x05@5Z\xbf\xaf\xb3V\x14LE\
+\xe7aL\x11A\xbb\xa2\x02lOm\x0cE4A\x22\
+\xae\xf1s\x85\xb92]F\xc6\xd0\xaf\x85,B\x22U\
+\xc9\xabeM\xd5\xb5R\xd6\xd7NsD9\x089\xb0\
+\xe8\x9d55:\xe6\x84#\x9a\xe4\xc0!\x02H#\x89\
+PM\xe3\xc2\xa0`#\xa2c\x87\x1f\x07[\xee\x1d\x9d\
+K\x01\x854\x10\x7f\xd4\xc6\x1b\xd4q/\xe5\x00\x98;\
+W\xd6\xc4_\xfa3d\xed\xf3\xa9c\xa9\xf6,}]\
+V^\x97.\xf6\xe4\x16\xc0\x93X2\xb7\x16\xc4\xae\x8a\
+\xf5\x1d\xe1\x84k\x093\x1e.\xb7H\xd1\x97\x5c\xa9W\
+\x05\xf6\x0aY\x1ao\xa3^\xc6mS\xa2\x03\xc5\xcc\x95\
+\x95\x1a\xf6\xea`\xbd\xab\xd8\x9dIS\x81\x00\x85@\x94\
+\xc4\x85\x0a\xa6p\xd1\xbbR\x85\x8fV\x0a*\x93\xa6T\
+\xd3[\x83X\x0e\xa2\x8a\x88\x93\xd4\xf0x='`\xaf\
+w \xb7u\xdbhQ\xb1{\xb4vW\x07RK\x8f\
+vm\x0dxER\xb3\xe7y\x19p\x08\x0a\xb2\xdc\xfd\
+nv\xd0\xab4\xf1\xc2\x18\xaf\xa7\x0e\xaf\x0f{\x83\xbd\
+\xb61\x12\x82\xf1 \x82\xd8~Im\xf5\xdeb\xf7\xb9\
+W\xe8\xa7\x89\x8ahjS\x8c+a\xbd@y[x\
+\x94(\x12P\xa1\xe6\xcf\x17\x01\x1d-\x0d\x92b\xdc\xb7\
+1G\xa8\x04EBt|\xd5!\x0d*V\x88SB\
+\xf9s\xc5\x88\xb1\x22\xd1\xaab\xeas\x04\x22PXa\
+\xd4\x00\x5c\xb8\xa2P\xc3\xd2\xc5S \xcb\xdca\xa8\x9a\
+$\x88?w\x0f?s\xbeI\x1cH\xa0\x08\x985v\
+g\xbd\x84 ;\x81@\xdc\xb1{\xb5,\xcd5\xfd\xb0\
+,\xb5r\xdf\xe5\x00\x1dF\x80U^#\x01B}\x1e\
+\xa0\x81/*\xc7+\x8d*\xa2P\xb5\x09h\x09\x8c\x08\
+l\xa9\xfc\xb1\x1f\xf8\xbb<g*\xe2\xbd? \xff\xce\
+}d\x1c\x1d\xbfO`\xef\xca\x22\x95C\xaesr\xf9\
+\xb0\x1f\xa5\x892\xb9\xc6\x89\xdc\xd3\x0c\xacm\xdf\x1cv\
+\xf8\x97\xff\x95\xa5\x00\x1c\xa0\x14\x7f\xe6\xfb\xd2\xbdLV\
+>\xe6[d\xb5\x02\xb5\x81zQ\x09\x5c\x03\xc8\xfaL\
+\x1d\xb4\xd3Z~H\x88\xd8\x17$p\xf8\x09\xf6!\x09\
+5\xd4p\x00\x01\xaf\xff\x10+\x03h\x22\xb1%\xe0\xa2\
+\x02D\xc0O\x02\x06\xe5\x8c}\x01\x95\x96\x04\x8e^\xe8\
+\xfb\xfc\x1c\x00T\xbc\x9e\x03\x08@\x94\x0c\x00\x00\xa0\xca\
+\x80\xc1\xbcE\xbc\x1e\x00>x\xae\x5c\xbf\x13\xf9hY\
+x\x97\xf7!c%\x11M\xe4>\xb0\x8e8p}\x80\
+\xc69\xc4~\xc3?0\xd5\x03Q\x1dT\xbb\x05\xd0\x9e\
+\xd4^\x03p\x80\xba\xceu\x90\x90\xa0w\xc0\xfa{\xd0\
+\x956\xc6*\xd2KN\x02\xc69\xbb\x96\x03\xbf\xf3\x9c\
+0\xae\xe1J\x17\xc0\x0b\xf7\x8du\xccu\xb2o\x1as\
+`\xf8\xf9\xeb\xfc|\xf0\x83T\xd6h)\xe2\x8b\xf3\xc5\
+\x8c\x98P\x0d\x87Z\x8d\x1f\x82\xf9\xc4s\x01\xd0\x01@\
+\x84a\x02\xd5\x1f\x06\x18\xd4\xdcKd\x0d\x10\x0b@\x09\
+\xbf\xcb\xe7\xa4w\x95\x84\x01\xe0\x85\x96!\x18\x01\xdc\x0f\
+\x98<\x00\x12\x8c\xe9Cdx<\x1epk3Sx\
+\xee\xec3\xfc\x19\xeb\x1f?\xcfs&\x0e\xe2\xbaa~\
+y\x8aF\xb4\x8a\xe0(a\xd0\x01$3\xe5\x82\xeb\x84\
+\xfaO@OK\x17\xfbr\xccP\x80I\x80_\xe1\x95\
+\xf7\xe1\xfe\x90\x00\xb1\xae`hX\xcc5*\xf5\xf8\xdf\
+\xb1\x16\x09Tz31`F\xc2\xd0 \x9e\xab=\xdf\
+\xdfl\x0c\x9a(\x88\xd0\x92\xc2\xfaF4\x98\x0a0b\
+\x8c\x16\xf5\x8b\xf1\x8a0\xe2\xb8\xcfT\xea\x1f\x925\xa0\
+\x0c\xe6Aw\xb2,\x89*\xfa\xfe\x13\xcf\x05\xe3\x07\x8d\
+\x18W\xa8\xfb\x07dI\xc3\x07\xc6\x1ab\xc2\x16m\x9e\
+\xb7\xa8\x01!*\xe5\x8d\xd16|\x0f\x90\x87\xf6\x06\xfb\
+\x82\xe7\x98\xfc\x83\xa6\x1cT@\xf9\xfe4\xa5\xe0\xc1\xea\
+\x19Z\xab\xa5\x135\xc6\x04\x8aX.j\xf9\xf4c\x9e\
+\xe2\x84\xd6\x86+\xd9\x88\xf8\xc1P\xaa\xe3\xf6^\xd3\xfc\
+\xfb\xf4\xa8\xe9\xd75%\x00@\xa4\x9e7\x1b\xb4\xca}\
+\x8c-\xe4\xf33\xde\xd3\xaa\xfd\xf8\xfb\xfe\x8ab\x7fv\
+O\xf6m\xfew=\xf7+eNP\x16J\x00\xd1\xf6\
+\xc5\xde\xe2x\xf72\x03\xa5;\xba\xa2\xfc\x93\xf2w\xee\
++v\xbf\xcf\xe1\xf5\x92?\x82I\x81?\x15\xcf\xaa\xdc\
+\x97G\x7f%3C\xf1\xd3\xaduD\xb3\xae\xf4\xf7f\
+\xd7\x93\xa58\x94\xf1\x81\xaf\xef\xb6\xe8\xb6h\xfb@C\
+\xf74v\xafVj\x8fk\xe2\xa2u=\x7f\xdfb\xe8\
+\xa74\x80s\xfe'eNP7s\xe5\x5c\x14\xfc\xff\
+,V\xfcJ\xbfm\xb17\xa6\xca;\xf1\x11\xccL\xc7\
+\xa50^\x00X\xe7\xf6\x979\xe1=\xab\x01i\xcc\xad\
+\xa7\x90XV\xcb-UT\x1d\x064s\xea\xd1P!\
+\xce\x90\xb7\xfd\xbe\xa7B|\xdd\xadh\xcb\xb5\xfd\xd6\xdf\
+/KL\x00\x8063R\xfb\xdde\xe5\xfa\x97,\xa6\
+\x16\xe9\xfbe\x1e\xb3Y\xe2\x85\xee\xe9\xb2\xa4\xe5\xa1\xa9\
+\x06G%\xe0\x92V14^\x0c$N\xf6\x18\xa65\
+\xcc\xbcL\xd6\xce[Z\x82\xb8\xee\xf1xa\xf2\xb7n\
+9Y\x9dn6\x8c[=\xdfLr\xe5m\x17\xb6\x16\
+\x87\x10\x09w\xc3X\xd5\x86(\xfb\xbd\xdf\xb2\x1f\xeeg\
+Y\xc5\x15\x00\xa4\xa5\x0a@\xd6qS\xff-Y\xa2\xde\
+\x8bI\xfd\x81&\xe2\x18LP\xe2\xaee\xbcO|N\
+\xb2o\xd1\xa0\xa0\xe0\x01\x13#4O\xf8\xfejY\x13\
+\xed\x0d\xd1P\xa6l\xc0\x9c#\xee\xf1z\x88\xbc\x8c\xcf\
+\xe1\xc2m\xb4\xc6\xfb\xdc\xac\xfbo\xfb\xa4\x85\xb7\x84\xac\
+\xec\x93~/\x99\x1d\xdf\xd7\x0c\x04\xdc\xde\xe6\xd8\xa3\x9a\
+9\xe9d\x09\xf1#\xe0\xc3Q\x80 sPy\xfc\x5c\
+\x1c\x1c\x0e\xb0\xe3`T:pY:\xb0,\x0eR\xf1\
+\xec\xc5\x12\x82\xca\xdcozZA\xa4\xa1FKl\xe2\
+\x97F\xfa\xd4\xd3\xff\xaab\xafn\xea\x94\xfd\xf3e\xe5\
+\xe7^j\x0a3\x88\x94\xaf\xab{\x85\xac,\xc8U\x8b\
+\xad\xe6\x05{z\xfb{\x1c\x00\x8c\x9d\x08\x15\xd3\x01\xb8\
+j\xe2\x7f\xac4\xc6\xf21f\xe9m2\x8b\xc0|\xac\
+\xa97\xf6?\x92%\x91,o\xb0\x08<\xb8o\x1c\xf4\
+\x04x]\x1d\xa8\xd8\x1e\xb8\xc5\x10C\xccES\x0a\x9e\
+\x93T\x9aI\xa4\x14\x06m\xe9\x00\xfd\x9a\xa6\x8a_\xd3\
+\xcc\x1dR\xe5\x0b\x86\x07\x81\x96\x08\x85\x9b\xa5y\xa6\x12\
+9\xfc\x9d\x13\x8dg4\xd5\xe6:\xdf\xf6\xe5\x8d\xb9Q\
++\xe3\x9fL\x15\x14u\x80\xee\xe8@\xa8w`\xfc\xa4\
+\xa4&O\x02{C\x1d8\xb6\xe08\x91kR\x02!\
+\x02\xd8i\x9e\x0fzXR\xb5\xf6}\xae\x9d\xea\xff\x93\
+\xd6%\x81\x14\x89&\xf7\x91\xfb\xca\x83#\xc0\xe0\x15\x0a\
+*\xaa\xf8hV\x00\x94\xacSk\xddA\xc5D\xe58\
+\x02g\x9e\x93\xb4\x08\xcej\x07@\x8c?\xa3w\x8e\xde\
+\x22\x90\x5c\x02.\x98\x13P\x93i\xbd!\xf1\xe5\xb9\x12\
+P\xc1\x80\x81:I\x00n\x11\xad\xb2K\x06\xca8\xf7\
+i<?\x9e\x0a\x8f{\xed\x99J\x11\xefC\xcb\x0e-\
+-P\xb5\xe8m\x04\xc8\xa0%\xc6\x22686\x18\x0a\
+\x8c\xa3\x09\xa6\x09\x152\xd63\x898\x15Fz\xb1\x01\
+,\x08\xf0\xa9P\xf3\xfcp\x8c\xff^P\x84\xac\xc29\
+\x8f<N\xc0\xf6o'>\x00\x06T\xde<\xde&\xa8\
+gP\xe8K80\xfd^\xd2h0\xe54Z\x7f\x98\
+\xae\xe0\x041\x02n*f\xcco\x87*\xce\xbe\x81\xb2\
+j\x04<\x90c;j\x12\xa6\xe9\x9fem\xdcN\x8c\
+\xf5\xa1\xd2H\xcb\xcdW\xccd\xd2\xfe\xdb?!\xe6\x00\
+pT\xfeH\x10\xdc\xaa\x10\x0c\xa3\x8d<\xe7\xfbEN\
+\x1c\xf0\xeb$\x0c\xbc:\x80\x8a\xdeR\x9f\x07\x01\xc4R\
+i\xe4y\xe2\xbfiM\xb0\xdf\x0f* \xe3\xc7X\xdf\
++\xf9uU'DO6@A\x02D@\x08\xc0D\
+\xab\x0b\xeb\x95\xf5B\x22\xcc\x17Tx\x80\x0f\xa6q\xe4\
+\xde\xd7\x7f&\xbf\xc1z\xa1e\x89\x04q<F\x8d\xcf\
+5\x16S\x03\x10\xa1G\x9e\xb1\xb5ny\x88\xf1I\xac\
+\xd3\xa5]\xd1g\xfd\xb6\x0a\xf1\x00\x80\xdc5TP\xcb\
+\xb3\x1f\xf6\xf7\xb3\xad\xd1B\xe2\xcc>\xc6\x0f\x8d[$\
+\xb8o\x00i'\xba\x22J\xe0Ao3\x81\x1c\x8c\x07\
+\x07\xe20\xec\xba\xcde\x8d\x0a\x1e\xadM<\xc7\x83\xaa\
+\xb5}\x0d\x80\x83_\x22\xe1\xe6\xfe\xa3%\x02\xc3\x8e\x82\
+\x01Tq\x9e+\xad\x02P\xba\xdfR\xad}N\xce\x1b\
+\xfc\x18\x006\x80\x05S\x05\xd0\xb6\x01\xa0\x03\xd8\x1a\x89\
+?Fe\x88\xb1\x88h\x000u\x03\x80\x87\xe7\x8e\x1f\
+\x82\xc1\xc0\xb9\xc3\xe7\xe7|\xe1\xdc73lz\x8f,\
+]/\xcc\x15\x12vZ\xa9\xf0\xd70l\xa8\xfc\xf2>\
+h\xc2\xb0\xeeaT\xc1\x9ca}0\xc6\x15\xa0\x96i\
+@\xcc\xdb\xe6\xfa`\x84\x01\x08Z\x84-D\xde,r\
+F\xc0\x09\x15\xbd\xff\x89,M\x070 \x0a\xa34\xc6\
+\xc7\xda\x0fNv\x92\xb5\xd6\x93H\x90\x1aSr8\xff\
+\xbc~\xa6\x9b\xc8\xda\xf9S{\xb47H\x89\xb4\x13\x8b\
+n+Y\xbd\xce\xea\xa7\xd0\x04*i\xee\x9d\xb5\xd0\xa2\
+\x02\xc2\xbd)^\xd8\xdc\x816\xefg\xed\x9b\x00FX\
+\xc7$\xf4\x00\x82{*\xb5I\xad&h\xf7\xd0\x22\xcb\
+\xb8]\xa6\x0e(mz\xb7[\x14\x0eh\xad\x1b\x88\xf3\
+\x85x\x98\x13\xb3\xea\x8d\xd6l\x1a0\xd3Gd\xadu\
+\xa7\xff\xad,\xb5`\x9a*\xcf8\xc5\xe9B\xb2\x94 \
+\xd0\x8a`\xb1\xe7\xee\xdca\x5cbI\x92\x87\xfd\xc4:\
+m\x95\xf3\x9a`Vf\xe1\xadi\xba\xc2\x1e\xc5vw\
+\xc5\xba\x9c\xe7\xdd\x05\xc5.l\x0cH\x12\xd8JI^\
+\xd9j\xe5\xfb%F-c\xdc\xde*K\x15X\xd6)\
+\xcc\x22\xd5/wj\x0c\xab\xc9\xc9\xb2\x928\x1f,3\
+\xb0\xf7!\xf7N\xbf\xb9\x01\x1a\xddu\xb2\x16\x17N\xd7\
+\xd6\xa0\xbc\xf2{/\x92\x15\xb7{\xa0\xac\xbc\xff\x0d\xc5\
+\xaeO\x22\x95bBo\xd1\x00\xcazj\xfd\xc3q\x04\
+\xea\xef\x9a3\xffgY\x9bB\x10q;\xe3\xb7=\xe6\
+-\xce]\x98\xd2\x8e\xd3\xfa\x17\xca\xca\xf7_\x97%1\
+G\x8b\x0d\xa2\xb1\x16L5O\x1b\xa8<\x92#[+\
+ami\xfer\x02\x9c\x94%} \x9d\xef\xde7\xfd\
+\x0a\xb2\xb4\xcf\x9f#K\x1am\x06V\xbb\x17\xcb\xfc\xbc\
+>\x91\x00{\x154\xcb\xfe\xe8\xd6\x90\xd5uS,i\
+I\xc1@e\xda\x18\x22\xd4\x8ec\x18\xd3\x18c\x5c\xcd\
+<`\xcc5\xfb:\xce3\x0a\x1aP\xf3\xf9{\xd6\x5c\
+\x08\x00\xc2\xad\x15\xdd\xf7d\x89IG\x8b\xb8\x0b\x16\x15\
+h\xba\xd7\x05\xbf\x0d\xccx\xd9\xda\xf7\xefK-/\xeb\
+\xb6\x91\x95\xef\xd7\x92\xd5)\x08\xef\xd6\x14\x04\xc4?\xfb\
+O\x16\xdb\xafNO\xb8yrK\xd2\xf4\xb2\xff\x91\xb4\
+\xa0\xc4\x05C\x1b\xc1L\x10\xb4\x9a\xfa\x8f\xcb\xda99\
+=\xc1q\xe5W\xcd\x8c\x82)\xeas\x98V\x92`\x0e\
+P\x80\xf3\xd4\x93\x10=\xa55\x01\xe6\x8f\x19\x050*\
+\xa25\xde\xe3\xc5gg~[\xac,\xf0\x99\xf5eV\
+K\x7fk\x13Q\xc3\xc1\x82\x0cu\xcf\x92%\x00\x80\xc0\
+\x0e\xaa+\x01\xaa\x11\xc8\x10\xd3\xe2\x80\x06\x18`\x83\xe3\
+hp\xac\x88\x1e\x89\xb0xg\x9b\xdb\x19\x891\xa23\
+P\xacM\x81\xebO\x90\xa5J\xb8{\xeag\xb6*\xb6\
+\xb5ES~\xecJ\xcf%\x0d!\xee\x8e\x965\xf1\x18\
+\x0e:\x1cmM/\xca\xe7\xeb~_LcD~.\
+k\xe3\x02cN+j\x9d\xee\x0d\x8b\x83\x1cuZS\
+\xc5#P\xa4\xd5\x81\xf9\xa6k\xd7\xae\xb3V\x01@#\
+\x1b`D\xe1\xe1\xa3>\xe8\x17O\x09,\x14@z\xd9\
+\xa8\xf80\xe6\xcf\x88t\x9dK\xfeJ\x8f\x93y\x8f\x03\
+\x92g7\xca\xd3\xf4\x18Y\xa2\xf03~\x86\xc4\x94\x8a\
+\x8a`\x80\x0f\xba7qu/\xec\xaf9\x10Z2\x05\
+r\xae\xa4\xd7\xb1\x167\xd9\x01>\xbbi;0\xbd!\
+\xc4s\xc4s\xf8D\xeb\xa9\x8a^S\xdd\xbd/&&\
+\x04cQ\x10a\x13\xa1\xed*o\x84\xc3,Bt\x9a\
++*\x0f\xa7\xf7\xa5\xa2D\xa5\x7f\x1c s\x1fy\x1d\
+\xab\xeeC\xdd\xe5\xdf\xa9(\x13h!Z3\xa6\xf2\x13\
+0\xd2\xa3O\xe0\xc0\x1c`>\x17\x00\x01\x15H\xf6\x83\
+\x9f'-\x10\xfc\xf7\xa8\xecP\xa9\xa0\xd2\xe1J\xa5:\
+\xb8\xd5\xc3=]N\xd6\xc6\xde!\xca\x14\x22d\x8c\xbf\
+c\x5c\x10\xbd\xc0\x000P\xab\x09\x989\xc8\xe8!e\
+z\x07\xf7\xe7\x0aW\xfa?W\xadU&\xdc\x9b\x14*\
+\xeb\xf4\x18\x93`\x92\xa0;\xc1\x0f\xd5m*&\xdc\xd7\
+5\x1c\x10\xbe\xc0@\xe3\x93\x1c\x10\x93\xf8_\xed\xfbJ\
+\xc2\xf4\x90+\xaew\x9a\x02}\x87\xfd\x15\x8c\x05\xa8\x82\
+/w\xaf\xfe\x86\x1e\xfbbUhM/\xae\xf3\x8b?\
+\x22k\xf3^\xd1.\xe9\x9e+k\x0c\xa6@\xe4\xf1\x0b\
+\xecC*\xe2\xa8\x95\x1b\xd1\x9d\xfcQV^\x7f)K\
+\x95y\xc4\x9d~%k\x1a\x18\x01\x80\xb2\xcfI\x94\xb6\
+4\xd5\x91\x96\xa8QE\xbbR7/IL\x00(\xcb\
+\xf8e*W\xb7\x0d\xf7'\x02L*\xe8T\xae\xe9\x85\
+\x7f\xa2?\xcf\xfeV\xaf\x050s@\x11L\x13\xd61\
+\xfe\x1e\xc6\x02\x81\x0a\x00\x0e\x94\xfcq\x85\x12`f\x15\
+\x8f\x01\xa3\xc5\x84\x00\x06J\xb7\xbf\x8fs\x88\xde_\xf6\
+'\xcc\x16\x03)!\xe6J\xe2\x0f`\xca\xe7\xc6\xbf\xb2\
+\xcf\x01\xe6\xe8\xc9\x87a\xc3X9z\xdc\x09Tx\x8e\
+TB\xb9\xdf\xacs\xc4_-\xe6\x15\xc0\x02\xeb\x91\xde\
+u\xceC\x184|\xcf\x9c\xe0[\xcd8a\xfc\x1e\x09\
+>\x09\x0b\x00\x09~\x86\x04\x92\xd6\x98qk\x89\x01\x0d\
+\x02\xa2\x00X\x99\x0e\x81H\x17\xe2\x85\xa8v\x03\xe8y\
+\x7f\x87\x88/\xe2y<O\xee7~\x8e\xeb\x82\x89\xe0\
+\x02B\x04\xaeP\xaf\xf1G\x9c\x9f\xac'\x12uD\xc4\
+\x9c\x801O\x9eV\xb1\xc7\xdcW>\x17\x05\x0b\x98?\
+\xf8UZ\x02\xd0\xf2\x81\xba\x0b \x0b @\xc2O\xa2\
+\x0c\x03\x8d\x84\x18\xa0i\xcc\xbcb\x9dx=Dk\x0d\
+\xe7\x03\xcf\x8f\x9fG\xe4\x18\xbf\x08\x90\xcd~\xa1E\x85\
+\xcfA\x1ca\xf1\xc5x~\x9c{\x00\x06T\x0c\x098\
+\xf7\x90\xb5\x84\x09Q\xe5\x00\x14\x1d\xef!\xf6\x17\x89-\
+\xc0\x0d\x22^\x06\x14b\x9c\x95[C\xbb\x8f\xcaR\xc1\
+\xc4\xd3\x81\xd4HY\x81\x0c\x03'\x01\xfc\xd2R\x03p\
+\x8af\x80?gP\xb1\xedw\xfb}e\xe5}>#\
+kqM\xf7\xce\xee]\xdd\xbb\xda4\x12\x98,\xa1\x81\
+\x00\x90\x03\x80t\xf3\x00\xc0\x95\xf4m\xa0p\x7f\xd7\xe3\
+\x07)\xec \x9el\x8d\x06\xc1\x09\x02\x14\x00\xd0\xa0<\
+\x07@\x0c\xa3\xd3\xf1D\xa5\xe2n\xea\x82\xc0\x81\xcdO\
+\x00\xa0\x04\xa3\xccbz0f\xfa\xcde\xad\x95\x801\
+\xdd\x95*|\xad{\xeb\xf5\xfa\x91b\xfb\x18\x10\xba\xd1\
+=\xc0\x9a\x86tZ\xb1\xd3\x0d\xd0K\xfc\xee\xf2b:\
+\x1fv\x94%\xd1C\xbe\xa7\x02\xaa\x96\xb7\xddZ\xafs\
+\xbd\xff\xbb\xbb\x95bM\xb7f>9\x89\xf6*\x8d\xff\
+\x9a\xd7\xd1\xafZ+P0\x1fU?\xfdR\x02\x16\xd1\
+B\x020\xc4O\xe2\xcf=\x07\x1e\x8a|\xf7z\x995\
+\x00\xde\xe4\x96\x80r\xbe\xcdm K-\x02\x024\xb6\
+\xafcx?\xd0\xedT\xc5\xbc\xbf\xd1\x7f\xa3l\x9f\xa7\
+\xcb\x9a\xfa~\xe5\x07\xbc\xad\xfc\xdc\x1bd\xe5\xf5RY\
+\xf9\xf7\x97\xc9R\xc1\x8b\xd6\x075\xcel\xe7\xf1v\xdf\
+hb\xd05\xc1\xbc\xaf='T\xf9c\xba\x97\xc7]\
+r]s7\xc9R+\xa0+\xc85A\xfc\x84\xcf\xb5\
+w$m\x09\xfb\xdf(P\x98y\x16\x7fw<\xa5g\
+\xc4Tb\x8c\xe0\xf4\xd9\xb2\x06\x0c\xf5w\xc9\xda\x98\xbb\
+\xb9\xbf\x15\xfb\xab\xc77\xea\xf9\xce\xc8R>\xa3<\xe7\
+\x95\xee]\xdf'1\xd88/a\xea\xb8ue\xba\xb3\
+\xac\x8d\xcd\x0bF\xb5\x99Y3{\xc8\x1a\x03=\xb4B\
+\x5c\x80#^e\x0c \x15\xfa\x9a\xaf\xbe%i)\xbd\
+`\x00x\x10}'\xae\x8d\xa9efZ\xd5\xc2\xdb;\
+\x92\x1f6pV\xb5\xe0t\xff\x7f/K\x15|\xb7$\
+\xa1\xf5\x11S\x9f\x0c\x98D\xeb\x84\xfdJw\x92\xcc\xf7\
+\xfb\xa3Mk&\xb4\xbb\x1c\xc7\x01 M\xce\xb3\x08\xa2\
+\xc5\xffh\xad\x83\xda\x1f\xfe\x8fV63\xb8\xa3%\xd5\
+\xad\x04\xd1*\xe5\xfd\x18\xf97\xadG\x88\xc5:\x9e\x9c\
+\x9dY\xa6\xd8\xb2\x0e\xf0\xcbB\xe9/,vAZ\xb8\
+\xf4\xf2\x9a\xea\xd8?W\xd6({\x93C\x8b\x1d\xe2\x84\
+\xe6\xda\x84\xa4S\xd9%\xd0\xe7\xa0\x1c\xf5\xf4>F\xac\
+\x89J'\x01\xc2\x15u\x80Q\xcc\x7f\x0d\x11\x04\xd5#\
+\xcfMcIP\xe5\xf7\xc1\xd0\xad$K\x7f\x8f^I\
+\x85\xbb+\xa4\x8a\x98\xc7H\x04E\x0a\x86\x82\x03U\xe6\
+X\x82\xc4\xa0\x96No\x10T\xfeH\x9c\xb8~\x0eP\
+\x02\x0a\x11\x8b\xbeej\xf5\xef\x12\x80\xe2\xb9\x9c\x11\x88\
+@\x05\x1c\x7f\x8d\x13~\x0e*\x02:*RPnN\
+\xab6\x1c\xa8\xf7\xa59\xc0\xa8\xb7z\xded\x1c\xb4P\
+\xcaI\xe0\x95\xa6\xecl$\xee)\xe9y\xcdT\x19\x8b\
+\xc1A?\xd8D#kEt\x97\xc7I\x88=n0\
+\x0eZ4\x1cD\x90?\xaa\xf5\x94\xa2\xb2\x0f\x05/D\
+\xec6\xaf\x98\xfc\xd0\xcbt\x8f\x1d\xf5[R\xc5\xd2\x1a\
+\x08\x88\x13E/\x93\xa4^\xf6I@\xc0\xff\x95x\x8c\
+\xd5\xe4A\x1ey%@\xe3>\x8d\x81\x03\x02;\xae\x9b\
+J\x0b\x01\x15\x15(\x03DAu\xf7\xcf\xa3=\x81\xca\
+q$n\x00^~\x0d\xd5c\xae\x03\x11*\xc6\x0bQ\
+\x19\x87jv\x9f\x19%\x88\xe6\x98\x9a\xc9\xba\xa7w\x90\
+\xc44*\x15T\xb2H\xfc\x99\xbf<\x9ew\xcez\xe5\
+\x95\xbfc&JTFQu'P\xf5<c\x026\
+\x9e{<\x17\xa8\xca\xacs\x12\x93\xd6\xc3?\xbc\xba\x87\
+:\xde\xcf\x15\xd4\xe9\x1f\xddR\xc3\xcfs\xbf\xa8\x94\xe3\
+gxn\xab8\x91\xb2\xbat\x7fC\x7fc_~n\
+n\xe5\xb9\xa7\xcf)@\xb8t8\x08\xa6\xaf.\xf6\xaa\
+\xa4\x9d\xc1XN\x02\x15\x85g\xf7%J\x9d{]\x01\
+n@\x5c\x03\xa8[\xdb\x81\xfe\xf2\xa6\x98\xee;$L\
+\xdd\xee\xb2\xf2\xbe\x1b\xaa&\x91\xc6\xb6p\x1d_\xa8\x16\
+\x07J9\x16\x87\xb9\xf0\x04\xe0P\xf9I\xac`8\x00\
+\xe49Q@\xcc'~\x1e\x04\xdf\x88:=\xe3\x01\x18\
+9\x00\x8b^\xc4\xdb<7yC\xfb7*\xcc\x00\x0a\
+\xf8%\x12\x8d\xc5\xfd\xca\xf70#|\xc0G\xa5\x87u\
+L%\x9a\x84\xe7\x05\xae\x80R\xd1\xa4BJ\xa2F+\
+\x02\xeb\x93\xfdL\xe0\x030\x83\x16\x08\x00\xc0\x85\xd5\xda\
+\xd8\xc3\xa7z]\x900\x8f[T\x9ef\xa0\x8b\xfd\xc9\
+\x94\x1a\x00\x02\xee3\x80\x8a\xcf\xbd`z :\xc7:\
+D\xe3a)?\x07\x80\x16Z\x03,\x1a\x14\x092\x94\
+o\xfe>\x09>\xfe\x0c\x06\x0e\x09\x1f\xc0-\xe7,c\
+\x02\x0d\x98\xc5\xf8G\xa8\xfdhh\x90\xe0\xe3\xd7\xa8\x04\
+\x22RD`\xa3\xd6\xb7/'\xe6\x18\xcf\xcf\xd4\xd6\x08\
+h\x00HhQ\xe2\xbe\xc3\x8c\x00\x18\xa4\xa5\x0a\xff\x83\
+\x86\x88\xcf\xd9H\x8cI\xd8\x00\x1e\x01@\x19\xcfhF\
+YP\xc8\xb9o\x00\xa6T\xb4\x01\xd0^\xe1}\x04\xc0\
+\xc6\xf4\x1a~\x1f@\x13?\xc99\x89\x9f\xf1~\x8b\x96\
+>\xce%\x80\x03S5c\xca\x0f\x80/\xad\x03\x14R\
+\x00\x00`\x0c\x00\x88\xd2*\x03`\xca\xfa\xc3?\xd2\x02\
+\xe1\x0ad\xfc<\xeb\xc4T\xf7X_\xf8\x05\xfc6@\
+\x1f\xfe\xcd\x9a\x0c\x91({\x9aET\xe6\xfd\xfc\xe2\xbc\
+\xa6\xa2\x8fX#T~\xbe\xdc{\x1f\xeb\xc8qJ\xb7\
+~\xb1\x17\xd6\xe7W\xf7\xa3:\xe5%\x0a\x19\x00\x01@\
+\x0b\xfe\xc1\x0c\x87\x08\xcc]\x09\x86A0\xf9\x88\x9f\xff\
+k\xfc|\x88\x93>>\xb4\x02N\x0e\x19\xa6M\x94\xdf\
+\x1ez\x8e\x19+\xf9\xa5\xc9\x17\xc5\xfc\x8a\x96:\xfc\x22\
+SGx^\xde?\x11\x0f\xbed\xb2\x89\x80\xbd\xc9\xa6\
+\xe5\xff\xdb\xb4\xfe\xfdCj<\x8c\xbf\x06\x08\xa4\x02n\
+\xa0Si\xa8\x12Q\x9es\x8c\x19Tk\xc2\xa3\x15@\
+\x1a*\x7f\x0f\xba\xd5\xc1\xf3\xec\xfbGd\xed<\xa9c\
+\xec\xf6KLM\x9d\x02%^\xefN\x90\xf9>=h\
+\xbfwj\xf9\xfd\x93eM$q\xe6\xdd\xc5vh\x0c\
+TD\xf0\xe2\xe7(\x8c9.A\x14\x0e&k\x05:\
+\x94\x80]$+\xdb\xe1\xb8b\xc7\x1a\xf8\xb9\xbbi~\
+1\xed%\xe6\xbbs>1\xbd\x0a\x11@\xdd\xf5\xa5\x1c\
+gM[\x02\x1b\x05\x0a\xb5\xb0\xedd\x80\xe3#\xdeO\
+\x7f5\x10\xf0\xc6\xc6h\xe8W)\xf6\xcc\xb4\x0f.\xb2\
+\xbfq\x9c\xdc\x1d,3\x80u\x82[\x87\x8b\xbf\x9f\xf9\
+\xbe\xacQ\xbd+\x10\xbe\xbc\x99\x0e\xc5o\xf5/\x96\xa5\
+VM\xaf\x1f*\xcd\x91\xf0Z\x1b\x80\xc4\x17 \x8d\x96\
+\xe4(0\xa0\x1d\x80\x88\x9c\x99X1v\xda\x8chu\
+\x9eW\xed+\x80_\xff~\x15\xd7\xfePj\x01\xc0\xcf\
+\xc3@\xb0\x8a<\xc0um\xd9\xb8\xa3\x16jWV\xa1\
+\xb6\xdfr\xe8\xe9\x9f\xffKY\x8d\x1b\xefSKm\xff\
+J\x99[\x08\xca\xdf\x9dYRV^O*v\xa2\xb5\
+\x18>Z\xc7?\x16+o\xfbLY\x9az\x84\xb8\xe0\
+\xfbeI\xfb\x01\x0d\x103\xc5\x82\xf9l\xa0\xb6[^\
+V^w\x93\x95\xf7\xbbTV~\xee!Y\xf9{_\
+\x945F\x01\xad\x16\xd1\x22a\xd1j4\x18`\x90\xa3\
+\xd1\x85h2b\xb8\x0b\x88\x0d/^\xcf\x93\xa7V@\
+\xd9\xe7\x0e\x05\xed`\xf8\xea4\x5c\xa6iQ\x90\x98\xa3\
+e\x10\xfe\x1b \xc4\xe7SLo\xc2\x8fJ3N\xa2\
+\xf27\xc9\xca\xf5\xee'\xab\x85\xb2\x03\xaa\x88\x9f[\x04\
+\xeay\xbcH\xf5\x13\xc3\xd8{\xdf\xa7h\xd1u\xab\x0c\
+@\x1d~\x85B8\xff\x9dV\x80\xf0\xd3\x8ekf\xe7\
+\xee\x97\xa5\xb1%\xeea\x9f\xbdX\xd6\x10\xda\xb95\x8b\
+\x89J\xf0\xc1be\x03V\xc0j\xda\x10\x13\xc6\x1aT\
+\x8ax\xea\x1d\x06!\x0cuZW\xd4\xa3\x82\xc5A\x84\
+\x9a=\x8e\x93\x1b\x08`@\xa0\xe3\x03\xa1\x22B\xe7\xf8\
+ \xf9\x91)f\xbfm\x09Z\x04\x5c\x88\xafA\x15\x04\
+ad\xac\x18\x07$=\xf3$z\x8b\xd4[\x1f\xea\x98\
+c\x84\x89\xf9\xdf\x1c@Au\x85\x0a-\x22\xe9\xcd\x9e\
+gyP\xeaE\x81\xd2\x85\xa8\xe1Sk\xc8\xd9\x02\x1a\
+>\x9f\xae\xfe\xe1\x84\xf4s\x1fH\x8c\xe8\x99\x13\xd5V\
+\x01\xd9U\xb2DA&\xc1!\xa1\x13\xe1\xec]i^\
+$H\xa6\x17>\x80NE \x0ft\xc0\xf9\xefD)\
+\xbc\xab\xd6L\x87\xbf\xfb\xd4$.\x22\xe0\xe5l\xff\xbd\
+=S@B@d\xb1\x9d*&\xf3\xc6\xc6\x90 \xc0\
+\xab\x07\xca\x8aI\xf5\xd8\xbdv\x9a\xd2\xa99\x9dU}\
+\xfd\xc3\xa9r\xc4\xdcP\xfd\x9dW\xa7\x96\x8d\x83\x8b}\
+&U|\x08\xd8\xe9\xe9G\xdd\x1b\xaa\xe5R\x1eW6\
+\x16\x03\xe4\xfe\x02\xa8\x8c\xef#\x01\x1b\x01\xc2Xu|\
+,2\x08\xf0E\x02J@\xc2\xdfCd\x8b\xdeXD\
+\x1d\xa1\x90R\x09\xf0\x1c\xd4\xa8\xd8\x91\x90\xd3c\xca\xfe\
+]\xdd\xaa\xd1\xae\x04N\x7f=\xfc\xded\xc7\x01i\x8d\
+\xebG\xb4\xcc\x81\xe4\xf4\xf5\x83\xa8I\x85\x8b\xeeK\xa2\
+I|^*\xb4\xacS\x00\x12\xdewSW8\xe9\xb1\
+\xdd\xcc\x01\xb6\xa9\xf6\x93\xcb&\x7f\x9a\xe4\xb9\xee\xb4\xf6\
+@\x05\xb7*\xeb\xe4\xe7\x83\x08'\x95\xb3H\x10\xb9\x7f\
+\x00dPC\xd9/\xcfw\xcb\x80[2\xa2\xb2\xfa7\
+'h<\x9f\xa7\xdb\x8f\xd8\xbfTuX\x05d\x17\x08\
+\xfaL\x07\xf4\xf1C\xcf#L\x0a\x00-\x10\xe7\xa0 \
+\x8f\x81\x1f\xaf\x97\x00~\xech\x83\xea\xee\xd6\x89@\xe6\
+\xf1\x7f\xf4rZ\x0d\xb7;\xae;\xb6;\xb6j8\x9c\
+\xa9q=eO\xd7\x8a\xc9tcY\x02(\xa9,q\
+\xf0 \xc6\x07\xf2;Jd\xa3\xd2\xe8@=\x126\xa8\
+\x97P\xe0\xbf\xe4V\xa6\x97\x0f\x09\x9a\x08\x89u\xfe\xf1\
+\x87\x07\xea]\x09\xb83\x99\xd1\x00\x00 \x00IDA\
+TB\x86\xb19gY\xc4\x15\x91F\xa8\xff\xdc\x17\x9e\
+O{\x1d\xd6\x13\xeb\x8a\xff\xce>\xc2\xff\xc3\x5c@\x8d\
+\x1f\xca\xb4U\x9e\xe3~\xb3\xdfH\xa8Y_<_\x8f\
+\xf1\x8c^R\x18\x19\xcc\xf7v\x0f^$Z$\xaa\xde\
+\xffA\x85\x07`Y\xce\xfe\x80\xfb\xc4\x5c\xee6>q\
+`@\x90@s\xce\xf9s\xc68>\xd4\xe3\xc7\x00\xae\
+\xafcz\xce\xd0J\x11\xad\x16P\xeb\xd9\x87\xe3\xe9\x0b\
+0[8'a\xcc\x00\xc8,i\x00\x97\xcf\x0f\xa0\xe0\
+D\x8ei\x00\xb1~\xbf<\xb4\xc2\x04\xb0\xc2\xf5R\x91\
+\xa7\xd2\xcb\xef{\xccR\x9c\x87$L|\x1eZ\xb3H\
+\xe8\xacq\x12\xad1\x00;\xf8[\xf6+\xc03\xf1\x03\
+\x14~\x18\x15\xdcg\x9e\xbb)\xb6!\xf6H!\x02`\
+\xde\x09t\x88E\x22r\xc9\xcfA\xe5\x04\x10 \xa1\xa6\
+\xb7\xd4\x00O\xf4\x84\x8f4\x91\x82R\xef\xc2C\xa8Y\
+\xfb|\x06\xc8\x8d\x0a\x1e\xd4s\x12\xfaq\xaf\xf8\x98y\
+F\xa5\x1f\xe0\x11Q73\x05b<+\xe7 T\x7f\
+\xefK*\xf2A\xa5]^\x96\xa8\xebPI\x01f\x00\
+x\xf9b\x8a\x10\xa2_\x06\x06#Pf\x9c\xb0\xc5\x0e\
+#.d:\x12\xbd\xff\x88\x00\xean^Rn\xdf\x93\
+eiZ\xc0\xc7d\x09(\xf4<\xeb\xd00\xf2X\xdc\
+\xd0X\xb2\x08\xd8\xe4fS\xfc\xad\xb5\xd4-3\xb4\xb2\
+j\xf8\xa5\xc6_\x16\xaf<Lyr\xaf\xf7d\xdf\xc9\
+'\xc44\x0c&\x1b\xfb\xe6\x86*\x979\x8c\x95]\xb4\
+\xee\xff-\xaa\x88\x1b\x80\x90\x01\x9bnqY\x03\x0e\xa2\
+\x12\x87\xb85\xeb\xd8\xfbAu\xf9\x9a\xb8\x9eW\xce\xe5\
+\xf3*\xc0\xfb\xbe\x0a\xf0\xbew\xde\xfb\x04\x8cW>\xe8\
+vi^\xfa\xab\x07\xa6X\xb4\x04\xb8r;\xf9\xe1\xe4\
+4i#\xf5\xc7\x94\x80\xff\x98\xeaG\x9fP\xfd\xbb\xf7\
+S\x15g;&\xcd\x93\x97\xd4\xa2\xc4\x15\xaf\x94\x95\x8f\
+\xf5[Y\xebI\x9f\xdb\xbd\xd8n\xa9\xc5\x0f\x0d\x054\
+/\xa8\x1c\xba\xc0\x82_\xedo+v\xab[b'I\
+\xa4z\x9da\x8aB\x8d\x026{\x9c\x02\x0b\xf1\xa1\xfc\
+\xc6\xc9)\xdea\xff\xf3=~Y\x22\x8a\xbb\x1a\x088\
+1%\x9aP\xaba*\xbb\x82][\xd1\xca\xb91w\
+\x84\xac|\x7f\xa6,%\x98\xef\x96\x950mgYj\
+\xc1p\xabg\xff\xd5b_q\xbe\xb3\xb3[\x7fE\xfd\
+>QV^\xaf*vu\xea\xf5wkTP\xb4\xa1\
+l\xc3\xc4\xb4\xa8*\x9a\x0bsg\xcb\xca\xef\x1f!K\
+\x95\x7f'\xe8\xa1\xb5d\xa0\xa3\xc2_\x9b4FK\xc4\
+O0\xaa9/\x0d\xbcT\x8d\xb3\x85S\x01\x08\xa6\xad\
+f\x8ei\xac\xf9>\x03\xa31\x80tZ\x17\xcc\xe0\x98\
+\xbfD\xb1'\xb4J1\x0c\xa0\xd8\xcf\xde\x7f\x144\x02\
+\x88\xb2\xe6\x16\x22u1\xb5\x8a\x96\x1dku\xc0\x98\xe8\
+6\x91\x95\xcf\xb3\xd5 \xc2\x18\xe3\xb2%\x0e\xfe\xfd\xc6\
+\xb8F{)\x00\x1d\xceUZ\x87i\xa9tKR\x95\
+$\xff\x5c\x1bw\x07\xe3\x8b\xa9\x0aq\x0e\x01\xe0HS\
+\xe4\xe1&j-\x1eM\x9d\xda\xe4\xf8\x9c\x16\x88\x18/\
+~\x92\x81G\x9f3\xdd\x86C\xcbD\x7f\xf60\x1d!\
+\xce#\xd6;\x8c\xc1\xfde\xe5\x9f\x8f\x95\xb5\xd6\x05\xf2\
+\xbc\xda\xaa\xa4\xe7>\x9d\xceM\xa7\x95)\xf1y1%\
+\xc8\xb7\xc8\xa7\xa6o\x95%1q\x17\x88\xf1{\xd1:\
+\xfafY\xcbK\x03\xb82\x80=;\xf7lY\xb9\x80\
+Cd\xe5\xf5\xeeb\xf7\xb4\xc4cn\xa7bk\xb6^\
+\x86\x995d\x0dI\xa8\x22\x05\xb75\x84\x86@!\xc6\
+k\xd0\x13\x0f\x05H\x89\xcc\xaf\x13\xf5\x02\x04]\x84\xbe\
+\x87\xd2\x81\x8e#&\x80@\x95\xf4'\xb24\x86\xd0\x89\
+8\xa2u<\xf0\xc9&\xc56N\xe2\x09\x00\x00\x88\xcd\
+i[\x9c\xda\xc6\xd7\x04\xd2hJEP\x97\xa1\x92x\
+\xcc\x09\xe2\x16U\xbd\xf59\xad%\x82^+\x02K4\
+\x13\xea\xf8\x8bCM\xc5{\x8f\x03\xf4\xdf\xa5\xc0\x86\x8a\
+2\x81\xa0\xc5\xf1\x22\x10\xd6\xff\xde;\x02\x00\x16K\x09\
+\xac\x91\xd2\xaa6y\xb3\x13\x84\x8dR\xe5\x07@\xe2\xd5\
+\xf5(i\x81\xb2\xeaKW&j\x13c\x8e\x1c\xc0L\
+?Tl\x97T\xd1\xa2B\xf1\xb4Z\x03\xf3\x0c\xb6$\
+\x86F@\xf4\xae*\xc3\xd5>7\xbf\x7fT\xd5_\x1d\
+*\xf5?\xf6\xf5.\x9d6\x98z\xa0\x8e\xb4\xa6\xc2\x87\
+\xd3\xe7g,%\x0c\x06Q\xdc_\xe7\x8a\xcc\xa1i\xcc\
+\x9a\x0e\x92\x13\x13\xc5\x13\x80\x87\x04g\xd4\x1b\xcc\x1c\xe5\
+\xc9\xe2\xb2\x14\xe0@\xb1\xe5z\x11;c\x8e5\x95+\
+~n\xacj?\xa6\x0c\xc3@\xe1s\xf0\xbc\xa9H\xf1\
+{$\x18\x04\x0c8\x10\xc6\x16\xd1\x12\x81\xc3#\xb1C\
++\x80\xeb\x83y\x01\xd5\xdb\xbd\x8f\xd3S\x06d9\xa8\
+L\xcc]mc\xdf\x86\x84\xd7\x09\x8a\xea\xdd\xaaxw\
+SA}\xadr\x1a\x95E\xd6#\x15\xd3+\x9dh\xc3\
+\xdcy\x91)\xef>XK\x98X{~\x03\x01v\x0f\
+pqG\xb5W\xa9^\xf3<\xcfY\xbe\xa0\xde\xaf\x01\
+\xc0@\xc5\x14\xc6\x04\x15\x7fDb\xb8\xdf\x88z\x110\
+\xd0;\xc5\x01J\xa2\xe6\x83\x0a\xf5n\xc6\xee\xf4\xf3\xad\
+\x1e\xeb\x04\xbb\xff\x8b\xac9\xe6noY\x0a\xacIp\
+\xa1&\xc3\x94B<\xd0\xea\xaf\xd1\xe3\xcc\xe7\xe4s\x93\
+\xc01f\xed\x06kLx=T\x84~\xe5\x8a\xc8\xd7\
+\x1e\xd5\x120\x9e\xa7\x80\x91u\xa7\xa1\x9e\xd2V\xe8\xf7\
+W7ZK<5\xa4\xa9&\x00\xac\x03\xf6;\x01\x13\
+\x880\x89$\xe3\xd2\x1cpO\xb7\x92%\xf14\xc6\xb4\
+\xbd\xca\x951\x80\x0f\x12OZ)\x98n\xc1\x9c\xe6\xb5\
+\x87q?\x8f\x99\xbe\xf0\x88\x01\x0f\xee\x07TnZ4\
+\x00l\x00F\xe8U\xe7\xf7\xa94[\x03\x02\x11\xb5\xc9\
+\xdbe\xcd\x8f\xd2SIE\x93\x0a3Z\x18\x95W\xf6\
+\xe7\x94@qP\xf3>\x88\x03\xd1\x0a\x81\x98\x1d\x01\x03\
+Z\x10T\xf4\xe91\xfd\xb4\xac\x9d7\xe1\x8f\xf8\xfbT\
+\xfc\x10y\x04\x98!\xc1\xc7?\xc0\x88A\x95\xff'f\
+l\xaci*\xb8\xc7)\xc5\xe7\xbfcA\xc6Ah\x0a\
+\x00\x00\x18\xb0\x09\xa6\x06\xc07\xda*\x7ft\x0b\xc4\x86\
+\xae0C5t\xe2\x15\xcc\x15\x98h\xae\x08\x12\xe0\x02\
+,\x87X\x98\x99?\xb4\xca\x84\xf6\x07\xe2\xac\x9coT\
+\x84I\x0c\xad\xad\x11\x0c/\x98l\xf83\xc6\xdf\x91\xa8\
+\xa2\x0a\x0e\xb0\x8c&A\x03>\x06\xc6\x03\x15}k\xa2\
+\xc0L\x88\xca2\x95pT\xd9\xb9~\xc4\x09\xdd\x22\x02\
+\xe0\x16\x09--\x07\xa6dF\xc5\xc7LB\x18T\x8c\
+qE\xbc.zz\xf1O\x9c\xff\x00\xbb\xb4,\xd0J\
+\x08\xb3\x85V\x0azc\xed\x0fb<\x19\x89-\xf7\xd1\
+\xfb\x18\x06e\x88\x89\x22\xde\xe8\xb1h!\x86\x88\xb6\x09\
+\xe3\xfe\xce\xb1\xd8\x16\x1a\x180:\x19\xbb\xc5\xfd\x1b\xf7\
+\xc6\x03p\x03\xac\x00\xf0\xf1\x5cLi\x8f}c\xa0\xa4\
+\xc6m\x9b\xb4\x96\xb1\xf0?\xfc\xbe\x19d1\x1e\xd6\x9a\
+UT\x22)\xf8tw\xc9\xca\xeb\x85\xb2:N\xbaV\
+\x14\x89\x1b\xa3\x00s\x8f\xe3A*\xd2\x9c\xcb\x9cc\x00\
+3\x00PhI\x1cSM\x8c\xd8\xe7\x89\x11\xdb\x9f\xda\
+\xffP\xe3\xf4\x82:\x7f\xfe\x90\xe0\x87\x7f\x04\x00t\x0b\
+YIS\x07\x112\xff\xbd\xe9?\xcdPb?\xc3L\
+\xb0Xu\x144\x88#\xa0~\xd32\xf0O\x17j\x0e\
+\xf24\x9a\x8b'\x97\xa8B?9\xc4\x0c]\xb7\xceF\
+\xbc\xe3\xf54\xb7\xb2,\x89]2\x0d\xcc\xf7\x9d\xc4\x8b\
+y\xeb\x9c\xc7\xd3O\xc8\xda~\xea\xb6\x96\xb5\xa9U\xb5\
+\x85g\xefF\xcd\x9f\x5c%\xf3\xfaX\xab1\x12k\x81\
+\xec\xd3\xbe\xcf\xb7\xb4xr\xac\x81\x02\x93\xa0N\x13{\
+\x7f\x8b\xb3\xfb\xabei\x8a\x04\xad\x02{\xcb\x5c\xf9,\
+\xeb\xbe\xbfYfq\xf3\xed\x5ca\xfel\x9a\xb7.\xd1\
+\xc5\x97\xb5\xeb\x9a{_\xb1rn\xcc\xedZ\xec\xbfL\
+\x09\xbf\xb42\xf3\x8a\xf9\xdfKB9\xf7\x5cY\xf9\xef\
+k\xcbR\xc2\xefs4Z(\xa8\xc8\x02\x04\xac4h\
+\xfd\xc4\xb8u\xfd\xfb]I\xec\x94\xb8\x91\x04\x1d\xff\xc0\
+\xb9\x0e\x00h\xff\x18\x09\xaa\xee\xc2\xc9\xa9\xd0\xc8>\xa3\
+\x80\x22%\x83\xbfW?}\xac\xfct\x9d&\xf1\xcbT\
+\xa8\xa0`\xe7\xc2\xcb\xec\xbd\xb2\xd6\x8a\xd8\xbdM\x96\x0a\
+tg\x0c\xd3/\xd8\x1f\xb4h\xa0\x05\x14\xd3\x1f<\x86\
+\x0e\xc6C\xc4\x8f_\xad\x16\xadV\xd3\xf5e-\x9f\x00\
+p\x99y\x9a\xac\xfc\xf7SdM[\x22\x98\xdc\x9c\xaf\
+^7\x01\x04\xb0\xbf\xa0\xc4\xbb\x90\x16\xa2\x91:\xdf\x1f\
+mq\x17\xe7=L.5\x84\xaa%4\xe22\xad\xef\
+\xf3k\xa1\xa0\x8a?\x97\xa8\xe0\x0d5.p\x1c\xd3m\
+9h\x8eL\xe7Kv\xb0\xbc.*+\xd7\xb1\x8d,\
+\x89\xdbs\x1ey\xbcj0\x15_\xaa\x81\xdb\xce\xbf>\
+\xd4\xceM\x18%\xc1\xf06\xa5\x1f\xa6\x15\xf9\xc1\xf4M\
+23H\xf6i\x80^\x8c\xb3\x07p\xb6?\x9a\xad\x14\
+\x9e7\x1b\x11\xdf\xc4\x88By\x00\xf37+\xb6w\x1a\
+\x17r\x9c\xac\xbc>ZLj\x8a\xaf\x90\xb5\xb9\xf4\x8c\
+\x0d\xec\xbe,\xab\x08\xef \x22\xb6\xddp\x90Be\x8d\
+q\x1a\xae\x18D B\x02CbL\x8f4\x07\x22\x81\
+4\x01!\x01\xb4\xc2\x84O\xa5\x0a<\x09*\x09$\xa2\
+!\xa8\xf7+-\xbb1\x89\xe5\xb9\x92\xd4/Wl\xd9\
+:\xe6\xa1X\x13\xbb\xa1W\x04UV*\xf3\xd1\x1bg\
+D\x9a\x0d\xdb=UV{\x8e\xde/\x11\x88\x0a\x8c<\
+l\xf1\x87\xeb\xfd\xa0\xe7\xf9@[$\xf5\xf6\x83\xe0\xa8\
+wp\xbd\x14\x08R\x01\xbe\xaf\xd8\xbd)\xa0_d@\
+\xa6\xa7;\xc8\xca\xebwe\xe9`\xe4}5\xefq\x1d\
+\x1fXG\xbb\xa2vnbR(\xa0\xf9S\xaa\xa8B\
+\xc1\x04\x81|G\xb1w&Q8z\x0bgj(\xd9\
+*\xe1T^\xa0\xf4\xa8\xae\xf2\xa2\xf6{\xb5G\xee\xae\
+\xa6\xc6\x8b\xfav$\xa4\x0a\xa8VO\xea\xf9$r\x1e\
+\x1f\x19\xe2Y\xaf\x97\x99\x99\xf0Oo\xf4\xaf\xb4\x8a\x22\
+\xa2sQac\xbdP\x09a\x1c\x1bb\x19\xb7\xcaR\
+B\x0d\xb6\x01\x02\x8e\x03\xe5:\xe9I\x04\x08\x18\x8f\xab\
+\x22p\xa3g\x9e\xca\x0a\x01\x1b\x07<\x89\x0f\xeb\x9e1\
+eOv\xc5\x1b\xea\xe0Mn\xc5\xa1\xb7\x97W\xf6\xcd\
+\xe6n5`\xbe:\xbd\xad\x00iTzN7\xf5\x87\
+J\xdeW\xe7\x1d1\xef\x88$\x0ar\xdb\x10HE\xa0\
+\xe5\x80\xa3\xce\xb5-\x07z\xf7VY:x\xfa\x18C\
+5Tr\x17v\xc0Ge\xf1\x02\xdf\x1fD\xcd\xb8^\
+*\xd0\xfb8AC\xcd\xfb\x83C\xa2\x80Hb<\x8f\
+\x87]\xf1g?\x8c+\xbeK\xfb`\xa42\xc6\xfd!\
+p\xe3>\xda!\xf6[\xcbZ\xe04\xf7\xde\xb9\xf7\xcc\
+\xedh\x95\xd477\x84=\x10ZU\x8e\xde\xeb\xc0\xf2\
+E\xa9b\x08\x85\xd8\x22.\xb4\x06\xcd\xfb\x7f\xd5\x1a\xc0\
+b\xca~\xf4>\x12H\x13\x80s\xb0s\xbd\xbeO\xd3\
+?\xbbr\x8d\xd8\x97{\x9c'O\x1a\x80\xbf\xfe\xba\xfe\
+\xda\xfe\xda*\x16X5\x1e\xa8p\x22\xfe\x12\x091\x01\
+\xc4\x8e^\xb7\xf3\x9dXSy_\xc9@\xcb\x97\x06Q\
+\xa7\x98\xa3\xcc\xfa%\xd1\xbf\xd1\xea\xe6\x00\xac\x9b\xfa\xe0\
+%\xc1\xc2\xff\xf2\xc5XW\xd6\xc3\x18X\xbb\xcd\xda\x16\
+7\x0c\xeb\xbb\xec\xfe\xda\x9b\x1b\xe3\xea\x00\x04\x00\xc2\xa0\
+\x9eC\xad\xde\xc9@\x01\x95V*\xd0\x00\xb1\xf4\xfaA\
+\xc9\x86:}\xa2\x01\x1c\x807*\xb8\xac\xab\x7f9\xf0\
+D\xcb\x02\x15l3*\x02\x80rb\xc48\xd0h\xf9\
+\xa1BHb\xcb~\x221\xe7\x00\xe6\xfc\x22\xf0p\x82\
+\x18\x8c\x03\xf67\xf7\x91\x84\xea\x85^\xe7k\x1b\xf0b\
+\x9f\xd3R\x86h\xe0\xc3\x0bR\x10\xcb\x9a\x1d\x18\x13\x04\
+\xd67x\xfdQ\xe9\xbd\xc1\x01\xe2\xbb\xec\x8f\x98#\xce\
+9L\x8f<\xbd\xfehY\xf0\xfc/\xa9\xd6\x12w*\
+Sh\x85\xd0B\xc2\xcf\x01\x0c\x93\x10\x9282w\x9e\
+\x9f\x87\xa9F\x05\x1f\x00\x88J4\xad\x0b\x8c\xade\xbd\
+\x03\xa4\x22\x8e\xc9~\xa05\x81\x00\x0c&\x01-\x06G\
+\x0c~\xb12\xca\x0eN\xe7\xfa\x13en\xfd\x9b]\x80\
+:>0%\xb8\x8f^\xaf\x22\x9a\x8bj>\xfd\x8a,\
+\x8d\xa5\xf3<\xed`r\xe1\xaf`\xc0\xa1\xde\xdc\xa6a\
+\x0c\x1a\x00N|\x831\xc1~\xa3\x90\x02s\x01m\x17\
+\x03!\xc1\xf8c\xfdS\x89e\xfd\xe1W\x01\xac\x09\xc8\
+\x11\x09\xc5\x1f0\x8e\x8a\xf3\x0b\xbfu\xe7HL\x95\xf3\
+\x92u\x86\x1ff\xddS\x91D\xcc\xce\xbd\xdf1-\x80\
+\xb1\xcc\xb4\x1a\xf0\x05\xf3\x8e\xc2\x10~\x1d\x00\xc5\x0c\xa6\
+\x10/\x84\x1a}\xe9\x00\xdc\x84\x18\x1b\xeb\xcb\xef\x83\x98\
+]0,\xe8I\x7f\xbb\xac\x02O5\xfe\xac\x95\xe7o\
+\xa7\xf8G\x0d\x0d\xdfn\x95\xb9h\x153\xd58\xee\x13\
+\xe7\x22\xf7\xc7\x95\xca\x00V\x1c\xef2\x16o\xccl)\
+\xe9h\x1dC8\xf9O\x9f\x8f\xdb\x0f\xc0\x22c\xbeb\
+\x1d\xbf\xc9S\x1c\x9eo\x7f\x86h\x1f\xd3;\x00xi\
+%x}\xb1\xd7\x19\xc0~m\xa2`k*\x96\xc4\xe5\
+V\x96\xa5q\xb1\x8e\x97\xe95'\x11\xeb\xee,v\x97\
+\x81\x9b\x97\xb4J=-3\x01\xcc\xa3e\x856\x0e\x9a\
+N|?\x12_\x0e\xcd\x16\xdf_\x98kQ\xc1d\x1d\
+C\x91\x17#\xe1\xcfml\x1e\xe3\xeax\xa5b^\x81\
+\x8c\x93\xaa&\xc4;\xbbw\xa4\xf3\xdcLV\x18\x1cs\
+\xcb\xc9\xca\xef\xd7\xaf\xf2\xfdg\x8b}\xc6\x8c\x87\xdbR\
+\x8b\x9f\x99S\xd3\xfbe\xe5\xdfO\x92\xa5\x84\x1fQG\
+\x8b\xf7Eb\xcc\x7fwO|\x85g\xf6\xf19\xb7\x92\
+\x19a+\xa5)\x06LU\xb3\xe8'\xd4\xfc8\x9fY\
+_\xb4\x5c\xdaO\x0a\xee\xae\x807\xcc-3\xe0j\xab\
+\xf7\x85m\xea\xd9\xb4~\xb5\xb1{\xdd\x12\xb2\xf2\xba\x87\
+\xac\xfcw\x8b\xc5\x87\x06\x05\xa2\xce0\x1d\x10\xa5\x83\x19\
+\xf2\xa0\xac|?+Kb\x87n\xe5\xa0\xe0U\xc5\xf4\
+>\xd9\x0a\x12T\xac\xa3\x92\xfd\x17Yk\xb1\xe8\xfe*\
+K\x1a\x03\x9c\xef\x00c\xdc\x0f*\xden\xadAS\x09\
+&Ve\xactID\xd1\xccX\xc4\xe3+C\xeb \
+'\xf0\x8b%F\x0e~^Zh\x1fp!\xfc\xf4\xc7\
+\xfa\xc1\xe99\x03\x03=\x18\xd9\xc4\x01\xb4B\xb2\xde\xf9\
+\xbc\x14\xc8\xd108\xc4\xc0\xc9\xae\x03S\x22\x18\x9b\xb4\
+\xc6yjB\xf8a\x0a-\xe4\xc9\xf6\xef\xec\xff\x88\xbb\
+\x88\xc3\x0dx\xceN\xdf&k=\xa1\x88\xa8\x89\x88+\
+*n\xf7;YK\xc4\xfaMdi\xec\x8a\x91\xc1\xd9\
+\xb7\x14\xdb>\xa9{rps\x10A\xcd%\x81#p\
+\xa0\xc7\x1a\x11\xa3\x91\xaaw [TZ9\xb08 \
+I\xa0\x08T\xa0\xf2\x9b\xa2\x16T\x19\xc6\xc1\x8d\xa8v\
+P\x9dy\x7f\xc6\x7f\xd4\x05\xbb\xbe+\xc5\xf7\xa4\x8a\xc5\
+\xbd\xb5+lH$\xbf\xdaz\xfb@j\x11\x1f\xea\xce\
+.vN\xa3\xd0T\x04g\xbe\x03\xe1\x7f\xa7\x84q\x9e\
+GD\xfd\xb3b\xb8m\xa1\xa8\xde\xf6\x0aW\x0c\xaf\xf4\
+\x01\xb9bJXq\x90:\xa8\xde\xd6\x02\x15\x10\xd9\xe8\
+\x85'\xa1\xf0\xc6\x9a^'s\xef\xc8\xaf\xad\x12\xb9\xa6\
+[?~\xd3z\xc9b|\xa3\x13\x98P]\x07\x90!\
+ \x85\xa2\xa7\xe7\xbbY\x0aL\x10\x1f23\x8c\xc49\
+\xe6KS\x01\x84\xea\xe8y\x9c\x118s \xdbaM\
+\xfeQ\xec\xef\xde\x88\x87\xda\xe1\xec\xe9\xca\xdc\x1b\xd2\x18\
+I\x85Qy\xac\x18\x0e\xd1Hs\x00Q\x1ak\xf9\xb3\
+T\xc1`c\x908\xd0RA\xab\x05\x95>\x12M*\
+\x11P[\xa9\x8c\x11\xa08 \x8b\x0a\x0c\xbf\x17\xcd\x8d\
+\x06\x1a\x9em\xca0\x07%\x8c\x15;\x8a\x12\x06\x0f\x15\
++\xf7\x043\xd6/*l$\xd4\xa88\xc3\xe4`\xec\
+\x12\xeb\x8c\xe76\x16\x1d\x04\xc0\x80\x81\x80(\x14\x09\x06\
+\x94\xfe\x9d=V\x0e\x8d\x02\x12\x1eS+\xab\xb6\xef~\
+\xe9\xef\xb0_i\xbd\x00\x98\xe9\x86\x9e\xee\xe9\x83\x06\xe6\
+vt\x8f/\x15SWB+\xe0u_J\xccpp\
+$\xfe\xec\x93e\x5c\x89\xa7\x17\x1c\x87:\x1a\x97\x05\x93\
+\xa7\xdf\xb1\xdf\xa1/\xebr\xee\xca\xb9\xbf\xcc\xfd\xb9\xcd\
+s\xae\xc7\xc5\x99\x09\xe8\xfc\x85,\x89\xf7]T\xbb\x08\
+\x9b\xba\xad\x03\x90\xa0\x8c3~\x13\xb5n\x12\x1bT\x97\
+\xa9<\xe2\xb0\xf1C$lT\xd0XG\x5cg\x13g\
+\x1b\x12V\x07\xf2L/\x01\xd9\x0d\x86\x80E\xb9\xa0\x9a\
+\xc5}\xfa\xb5\x13D\xf6-\x01(\xbd\xcd;X\xed\x1c\
+\x80\x8b\xc4\x98\x96\x0b\xc4\xc5\x10\x89\xfb\xcd\xf4\xd7br\
+\x85\xdff}\xf99@\xa5\x9c<\xdfs\xe2\xd9\xcf\xe3\
+V\x003\x02\xa6\x17\x0e\x09\xf0\xbc\xd5\x9d0\xd2\x93\x8c\
+\x9f\xe7\x003sg\xde\xa5na1e/\x80\x00\x8f\
+\xcb\x8a\xf7\xd9\xb7Z\xbb\xdf\xf4\x90\xd3B@\xe2I@\
+y\xfbHto\x11\x7fn\xc6\xd3\xa2\x9d\x00@\xe91\
+\xa8L7(\xa7U\x0d\xf4&G\x0dbA\x01\x98H\
+U\xfa\xf5\x8f\xd3\x1a\x04\xb0\xc8t\x82?\xcaR\x22\xc0\
+}\xf5}/\xa7\xc9 v\xf7FS\x85\x01\x16\xa9\x80\
+\x10XpN\xf2\xca\x14\x05\x12\xbdk<\x9d\x00F\x07\
+~\xe1~\xafG\x00\x05*R\x04\xca\x00\x95\x87\xcbR\
+\x22\x89:<\xeb\x85\xcf\xc3\xe7\x07\xf0b\x1f\x03p\x00\
+|\x03\xdcdm\x9c\x97'f\x0d\xe3+\x1d\xf8E\xa2\
+\xcb\xbeG]\x1d\xf1@\x12^*_\x88\x93!\xa6G\
+\xa5\x9fq\x99^'1\x1e\xd7\x22\x92\xa1\x0a\xce|z\
+\x07\xa4TnP\x91\xa7\x02\x0d\xd0\x17\xa2\x5c\x00\xae0\
+j\xdc\xbbN\x02\x10S\x11\xdc\x9b\x1a\x8c\x22\x18FT\
+\xa4\x193\xc9y\x06 \x82(!\xe7\xe9hJEP\
+\xed\xa9\xc4SIf?p\xfe\xc2\x08\xe2\x5c\xf9\x95,\
+1*h}\xf08\xe8\xc9#\xb2\x14?!\x86'\xcd\
+\xa4\xe77\xa0\x04\xd5\xfd\x00>\xf1\x03\xee]\xa5g~\
+2_\x96\xee\xf3-\xb2\xc6\x80\x98\x1c(k\xe3\xb4`\
+\xa6\x10\xb8\xc3\xacB\xb3\x04\xd1\xc1~QY+,<\
+F\x95\x9f\xf5L\xcb\xdbY%\x9a;\xcb\xbd\xd8'{\
+\x9e\xfa:ID\xf5K\xb5\x19K\xfe\xed\xbaZ\xd0\xf9\
+\xe6\x90\x08\x85&\x04\xd7\x87()\x15[\xe2\x1a\xd6\x1b\
+\xcc\x0b\xf6\x0b\xf1\xe5XS\x88\xf8\x16`\xff#f\xbc\
+l$K~\x8bx\xebR3l\xec\xdf\x83\x81\xf4c\
+\x8bs\xeem\x8d\x84?\x98\x92\xacsQ\x89\xdf\xf6\xb2\
+\xf2z\xb1,%\x12T\xa2\x0d4t\x1f\x93\x95\xbfs\
+\x83\xcc\xcf\xe5\x00\xf7H\x7f+\xadGZ\xda\x10]|\
+T\xe69\xe6\xc7\xa6\xdeeD2Y\x7f\x8b.\xe8o\
+C4\xd1\xe3\x05c\xda\x95\x80\xa3\xfdRK\x0dj\xe8\
+\xe7\xd7\xc1p!\xc6W\xa7\x04|\xa6\xc5\xbf3\xef,\
+V\x12\xff\xfe\xb3\xb2\xd4;\x0f\x13o\x0bY\xa3\xfe\xcf\
+\xedS\xec\xa3\xad\xf7\xbc\x7f\x8a\xac1\xcf\x00\xf8\xa0\x96\
+\xf7\x8b\xc8R\x82L%Z\x12y\xbfo\xad\x111\x0e\
+\xfd\x01\x99\x81\x90\x9f$\x7f\xcb\x98l\xf7\xa2O\x97\x96\
+=\x8eVT\xd6V[8\xc5\x17\xc4?\x9c\x070\x93\
+\xa8\x043>\xee[\xd5\xa2eER\x99\x12\xcb\x84I\
+L\xe5\x7f\xeek\xb2\xd4:\xe2\xe9?Q\xa16s\x12\
+M/\xb4*\x00D\x88\x17\xa3\xf5\xe9\x013\xdch=\
+d\xfc\x22\xf19\xd3B`\x90A\x81WAs\xed4\
+>\x14?vz\xb5v\xbd\xac\x1f\xf2LZ\x0e\x0d\xa8\
+\xd7\x02\xe4mfj\xfd\xad\xdd\xd7\x004\x94\x88\xaf\x9d\
+\xae\xcf\x00b\x7fY11\x03\xae-\xfb_q\xed\x07\
+\xe7\x0d-\x05\xa7\x96\xa8\xfd\x87)^\xb48u\x00V\
+\x00\xb9f\x96\x05@c\xc0\x10\xad\x04\xc4 \xfb\xbd\x06\
+\x06\x8b\x84\x05\x14\x06\xc2\xa0\x88iz\xb4Fr\xbe\xf0\
+\xbe\xf8\x09\x80JO\xcd\x89\x16\x15\xb7\xc2\x10\x0f\xcfN\
+?%K\x07\x9b\xd5\xa8gn\x96\x95\xd7Ed\x16\xd7\
+\xf9\xa8\x1d\xf9Umn\xf8\xe472o\xbc_\xa7\x83\
+\x1a$\x19\xca\xea\xb5\xee\xa9\xa0r\xe6\x03K\x1dY\xb5\
+'\xcb\x94\xaa\xb2HP\xfb\x1dz\x8e\xf8{\x8cS\xf2\
+\x83\x0e\xe4\x87\x1eu\xe1\xf6_u\x8f\xd3_[%.\
+\x90X\x16\x00\x22I\x12_\xb8\xb1\x1d\xa4\xdd\xa2\xc5\x16\
+q\x85\xe0\x9d\x8dj\x1d\x94\x11\x90\x19Q\x88?\x99\x10\
+yW\xb8Q\x0d\xad\xdau%\xc1\xeb\xee+v\x7f\x1a\
+{\xe5\xf9\xf1!b\xc7x\xb8\xbbk\xcd+\x00\x8c\xa0\
+J\x9e*s\xa0\xb9b\xa2\x82\xab\xb7nq;\xfe,\
+\xdeu\x9b\xcc\x94\xab\xff\xf5\x81\xbf\x8d)+\xe7\xb6\x00\
+\x14\xd5\xcf\x10=s\x0fW\xb7\x91\xcc\x95\xef\xd9\x14\x88\
+\x90Pq\x1d\x1c\x08\x8c\xf3\x13\x91\xecyI,\x10\x00\
+\x00\xe4\x92\x80\x0f\xea3\x81!\x07\x1c\x01*\x81\x08\x1b\
+\xd6\x89\x0a\x81U\x046T\x9eD\x5c\xbd:\x05\x8eL\
+\x87\xe0\xef\xf2\xf3$\xba\x88\x97\x19\x91\xa8\xaa\xa0K\xfa\
+\xbe\xdd\x9e\x1c\x07\x01\xe3\xfcA\x8c\x87i\x09\x91\x98\xb9\
+rS\xc7Dn\xd5\xae\x07\xcd\x89\xb8\x1e\x1c0\xc8 \
+\xea\xc6\x1b\x0f\x14\xc7\xe8\xad\x85\x8a8\xee\xf9\x1c\xcf\xc1\
+\xa6\xb5\xe6 W\xa6\xa0(\xd2\xda\xc2\xd8+\x12\x7fZ\
+\x17`\xc2\xe0 \xb8\xff\xf4\xdc\x12\xc0SAr`L\
+%9\x0ef\x9e\x0b\x07\xc7x\xac\x18\x154T\xdb\xdd\
+\x02\x13=\xa7\x04\xa8T\xc8\x96\x19\x12'\x0d\xaf\xa9\x07\
+$Z\x00F\xd2#\xf1'0j\x15\xda\xc1\xe1C\x8d\
+f<\xe1\xce\x06\xfaPW\xf7\xf4\x90~qY\xd50\
+y\x9e4L\xe6\xd6\x91\xf9s\x96\xeb\xec\x96\x92\xb5\xfd\
+A\xa0Y\xd6\xd2\x00\x18\xde\xe9D\xc5\xbd\x90\x91\xf0\x13\
+H\xe3p\x11\xe1\x22\xd0#\xd1\x03`b\xfd\x90\xf0Q\
+\xd9\xe5\xbe\x90\x98\xb3nI\xf8\x9e\xe1\x9e7\xd6\x0b\x00\
+\x03\xd3 \x1c\xf0\xc1\xf0(a\xea\x00\x98\x22\x1e\xb9\xee\
+\xe0\xa7Y\x7fQ\x11\xd8b\x00j\xa6\xe7Z}\xda\xfe\
+\x80\x1e\xd1\xf0\xb7\x88\xdc\xc1\xfc \x11\x07(\xf3\xc19\
+y\xad\xd7\xdd\xe6^W[\x1a\x08\x22\xf0\xa7\x22\x0d\xb0\
+\xc1\xba\xf6\xd4\x81X\xff \xe4\xf4\xf8QI\xe4\xf3\xd0\
+Kw\x9a,U\xcc\xd9\x87\x0e\xd4'+\xc9\xd2\xe7\xa6\
+\x85a\x1b\xcf=wkL\x00\x02\xdcw\x00<\x9e\x07\
+\xbf\xcf\xba\xa3G\xde\x09O\xac\x03\x18\x0e\x5c\x0f\x15O\
+\xd4\x91\xf1+<o\x12b\x02\x03\xae\xbf\x05.\x03\x13\
+\x8e\xf5B\xa0\xcf\xfd\xe1>\xf2=\x9f\x97\xf7!\x91\xe6\
+\xf7\xd9\xe7\x9c\x87\x04\x06\x9c7\x00y0/\xfe\xec\x84\
+\x0a\x00\x03\xea8\xc0\x0a\x14|\x8b\xfa\xc5\xb8<\xfe\x9d\
+i\x01<\x7fZ\x97\x00@\xb9\x9f\xb4:p\xffY\x17\
+\x5c\x1f\xd7\xc5z\xc7\xdf\xe3\xf7\x00\x22y\x7f\xc4V\xd9\
+\xafo\x90%@\x8eWW \xa3\xb5\x8ai\x07\xee\x95\
+G\xdc\xb0\xdbW\xd6\x18=Q\xa9\xc6_ Fg\xd5\
+\xf1\xa8(1\xd7\x19\xea?\xd3\x89\x18\x0b\x05\x00@\x9c\
+2\x12\x8f\x0d?B\xeb\x03\x14\x7f\xdf\xd7\x88\x8b\x0c\xa4\
+Db\x00\xc0\x83X\x94)\xdb\xdd\x9a\xb2\xd4\x92\x09\xa5\
+\x1d\xe0\xc4\xaa\xd3q\x0e\xe2g\xbcNI\xe0\x02\xf00\
+\xf0\xc5\xe7\x00\xb0c\x9cW$~\x8e\xefB,\xf0\x1d\
+\x93\xb7\x8bA\xd2\xed,k\xea\xf9T\xfc\x10\x0b$\xae\
+\x8c\x16\x14\xd4\xe0\x99F@\xa2C+\xd0\xba\xd3\xf5\xa6\
+\xeb\xd5\x8a\xed\x5c?\xd7Z9#\xa1f=\xfcy\x88\
+s\xe7]\xe8\xb8\xe0r\x9f\xa3\xbb\x9a\xf9\x888\xe63\
+\x9d(\x99\x112\xfd\xa6\xb5`\x0e\xb0&\x04\x0c\x15Z\
+\x0d\x0d\x18\x06C\xc3\xf1S\x00\xbfh)\x00\xf4\x03\x8c\
+\xc1L\xa4\xb5n$\x0299y`p\xd0\xf2\x19\x1a\
++\xacc\x9e\xb7\xcf\xbd`\x90\x90 \xc2\xb0\xf3>\x08\
+\x80F\xad\x00K\xa4\xc2\x0e\x15\xc3]d\xe5>\x1e7\
+L\xbf\xe1\xbc\xa4\x22\xccz\xaa\xf1\xe9\x0f\x123\xc4@\
+\xf6\xdc\xde\xb2\xf2z\xb7\xac\x02\xed\xc5Z\x05\x99\x02A\
+\x88\x02\xc2`\x19\xc5}\xa1\xdd\xf4h\x95El\x00\xac\
++\xe9Q(pBCoz\xe5\x1f\x1dP\xdew\xa3\
+b%!\x9d{H\x96\x00]I\x80\xbe\xd9\xf7}\x83\
+$\xe2&\x0d\x8b\x95k+\xe0|\xb5\x02\xd6\xc4\xb7\xfc\
+\xbd\xb9%d\xa9\x82\xef\x02\x1a\xf7'\xa6Z]?\x8c\
+\xaf&\xa1\xa7e!\x80:\x18o\xff1$\xc8\xe3\x9e\
+\xee\xba\x1a/L\x0c3\x18\xad\xd6\x96QYG\x9a$\
+\x15\xbeZ)\x8d{F\xfcT\xe7\xe0\xba\xcd\xdfDO\
+9cFa\x1e\xb9\xa0\x16\x22\xd0\x88\xed\xc2\xcc^E\
+\xe6\xf8\xe9\x90r\x9d;\x14{w\x02<\xce\x1a\xb4\x80\
+\xfa\xef\xca\x1a\xd0\x01#\xbc\xbf_V^\xbf&K\xe2\
+\xbb\x14b,\x0eX\xee\xd5pN\x09~>\xcf\x8c\xa0\
+\xdb\x1b\xd3\xb2~\xbe\x97\xa6\xb8\xd6-\xe7U\xecq;\
+3\xd1\x1fM\x9aJ\x06\xd6\x82\x89i\xd1\xf5\xba\x9af\
+\x13@\xe9\xe3\x87\xe9Ku\xba\xc5\xee\x89\x993.\xd8\
+!\xbax\xaa,\xad\xd7[\xcb\xe9\xa5\xf8D|\x86\x13\
++\x00rU\x05@$\xd6\xb8Te\x5c\x08\xea\x8aV\
+\x86`\x14\x01\x94\xc3h\xe2\x9c\xa6\x10g\xff\xde-3\
+h\xa2\xb0O\x00>\xfa?\xc8\x92\x86\x91\x99@\xd3%\
+d\x09\xa84\x13\x8f1\x920<h\x11 \x9e\x9c\xad\
+\xc7OyP3\x9f\x91\x957>E\x96(\x18N\x90\
+f>$s p\xb0\x1d\xc6\xf5\xad\xe7\xa7\xbb\xbd\xd8\
+\x1di\xdc\x00\x010\x81;\x81\x8d\x13\xc4\xa0\xce\x19\x81\
+\x0a\xc7\x0ee\xf0\x0c\xf7\xa0\x9dj\xca\xd8\x8a\xd3\x15\xa6\
+\xa2\x80\xben\x10+\x83\xea\x15\x95\xae+k\x17r\xab\
+\xf8\x10\xf8\x8cU\x83I\xac@HT?X\xbf\x89\xa5\
+\xc4\xc2R\x82\xb7\xa5\xc7_\xccz\x9cZ9H\xfa{\
+di\xfe9@\x80)\x19\x95z\xfe\xe2\xe4pH\x9c\
+-\x9eW\xb7\xdf\x0f\x9c8?'\xa9$#VH\x80\
+\xbds\xad\xb96\xca\xa4\xa6\xee\xfe\x8f)v\xb7z#\
+\xfe\x22U\xa2\xa1\xc0\xe9 yUSU\x8d\x05\xe1\x8d\
+&)\xb6J\xf9\x87z\xa5N\xbe\xef\xa6\xfb\xe7\xc0\x8e\
+\xa9\x10\x8c#\x8cy\xee\x8c\xcb\xa2bN\x80Lk\x83\
+\xb6\xf9L\x0a\xf4\xf8w\x168\xaf\xfc>\x09\xfb\xa8b\
+[\xd7\xdf\x92\x0d\xd9\x8c)\x00\x0e`Ce\x98\x80\x9d\
+\x80\x92\xca?\x015\xda\x01\x88\xc9\x19\x88\xa9\xd4\xa4\x85\
+\xd2\xe7E\x85\x96\x84\x9dV\x0aW\x1c\x1e36\x8a\xeb\
+\x82\x82\x87Z5b\x858\x10\xfe\x1e\xe3\xfc\xe8\x0dE\
+d\x8a\x04\x9a\x0a\x1b\x81\x0e\x07=\xeb\x98\xfb4\x12\x13\
+\x0b\x00\x08Q?\xd6\x03\x01%\x15B*B\xee\x01\x8c\
+\x0a;-\x0b\x88A9\xe1\x8f\x84\x00FB$\xdcC\
+\xa59\xc4\xa6\x00X\xfe\xe1u\xbe\xb2\xc5\xccf\x1d\xb0\
+3\xfdaT\xb9W\xc7[\x05\x06\x5c\x09\x88\xc0\x93\xca\
+\xe0hn;\x0e\xb3\xa4+U\xfd\xb4\xb8\xf9\xe1~#\
+\x02\xb4\x8d[X\x105tO\xfd\xdc\xa2\xb2\xa6\xde\x0b\
+\x15\xae[]\x96\xc4\xab\x08 \x8e\x1c\xa8X1\xee\xed\
+\x02W*\x8e\x96%&\x11\x15\x1f*\xc1\x88\xbfY\xd5\
+?\xc4\xdc\xae3\xf0IE\x1dF\x06\xeb\x1f\xffh\xcd\
+\x03\xd4\x88#\xe1\xa3\x02\xb4\x81\xd7\x13@\x0b\x09\x13~\
+\x96qhT\xf2I\x04\xf9y\x1f<\x11`\xb0_\x98\
+\x82\xb0\xbb,\xcd\x03\xf6\xc1^\x82\x83\xe1y\xd2kM\
+\x80K\xe5\x81\xca\xf7A\x03\xb2\x1f\xc0\xd8e\xc3\xfd\x9b\
+\x1e\xe9V\x0f\xc4;\xd1\x06 \xd1\x03 d\x9d\x8f{\
+\x16\xdbX\xbd!0\xc4?\xfe\xc9\x7f\x1f\xb5\x5c\xee\x17\
+\xbd\xe9h\x03\xaco\x00\xc4\x15\xf3rzUj\xf6\xbc\
+\xaf\x0e-K\xa1\xbe\x0f\xe0\x000\xc3z\x04\x00\xc3\xaf\
+\x90\xb0\x93X\x00\xacA=\x7fJ\x88\xec-\xa0i\x00\
+\xd0Be *\xd0\xfc\xdd\xf1\x98\xbe%G\xa2\xb0\x04\
+\xc6\xb4\xc8\xf1>\x8f\xf8>\x8e)\xd6\x00x\x00\xb2\x00\
+\xb9\x00\x87$x\xdcw\x00\x89\xd6\x9a20\xbbV\x97\
+\xa5\x8a)\xeb\xcd\xcf'\x9e'\xd4\xf9\xa3dI\xcc\x0d\
+U~z\x16]9\x8a\xca\x8f\xcf\x13\xa8\xb1\x11\x17\x00\
+4\xd3B\xc34\x0c\xa8\xe9\x00\x12h\x04q\x1f\xf1\xdb\
+$\xfe\x00\xd9\xf8m\xe2\x0fZ\x02N\xb5\xb6\xc9\xa5\x1e\
+\xc7\xf9\xe2\xa1u\xac\xfb/Y{\x9f\xee}\xb2V\x19\
+\xef\x0e\x94\xb5\xc2I\x00\xd3n\xad#\xe1\xa7\xb2\x0ae\
+\x17q\xab\x98{\xed^\xd6\x98J\xc1xK\x985\xc4\
+)\x9e^\xc0\x98\xd7hy\xa0E\x88\xe9\x1d\x00\xbcP\
+\x82\x1d?\xc0h\x0b\xb5n\x9fS1F\x93\xd6%\x89\
+\xf5n\x9b\x00-\xfc\x9b\xaf;\x0a\x0dN\x18B|\x0f\
+Uk\x8f\x07d]\xd0:\x06\x034\x12~*\xfbf\
+\x12\xc4\x94\x02\xd6\xb9\xf7q\xcc\xb7g\xdd\xd2\xf3\xec\xc4\
+/\x98\x9cL-\x00xp+\x22=\xbc\xd3MeI\
+T\xd3\x14\xf6h\x91\x00\xd8\xe6\x9cw\x0bK\xc4\x0d\xbf\
+\xaa\xd6\x98^0\xd6\xbe\xeb\x04\x84V?\xee\xbf\x01{\
+\xc6\x8e\x86\x86\x08~\x0a\xe6\x0aL\x15\xcei\x80\x01\xdf\
+\x8f\xc9\xca\x83\x86\x04\xcf%\x18.hV\xb0\x9f\xa0\x1a\
+\xd3B\xc7\x17\x0c\x0e\x0a$\xf2*OJ\xc0\x0e\xccU\
+\xc6\xd0\xfa\x5c\xe8\x97\x95\x19 \xfc\xdft\x9f=\xd5*\
+\xc60\x8bwP\xce\x9b\xfe\xd6b\xfa\xbd\x17\xc8\x8a[\
+\x7fPf\x00\xbe\xf8\x9d\xfe\xcb2OCxFz\x9e\
+<o\xceA\xbe\x1f\x8f\xb3c=\xc3\x08p\x22\x1e\x9a\
+`\xf6#\x8co\xebw*\xa6\x8a\xfc\x1d\xb2\xd6\xa2\x1a\
+\x9aBy|\xe5\x16>\xef\x8es\x5c]\xeeC\xff\x22\
+Yy\xfd\xa8\xac\x15&(,D\x02\xdf*\xc6\xcf\xaf\
+\x05\xc2Y\xe7\x0b\x1a'\x5c\xfc\x88$\x86%2<\xdd\
+e\xe8\xe9\x8es\x85\xe7\x0c\xb3\x0e\x06\x82\x12\xf5\xef\xba\
+%w\x8d\x94\xb8*j[bH\x8c\x05(\x03\xd4D\
+\x1c\xc2\xf9o`*\xb4\xcdx\xfe$\x9a\xee!\x0f\x0d\
+\x06\x0a\x8f\x1e\xfb:\xf9\xb7\xac\xed\x93\x99\xd5\x8a\xad\x9a\
+\xe2\xd47{\x8a\x8a\xe3t\x186\xfd\x9e\xb2\xf2\xba\xb1\
+\xac\xb5L\xc3\x5c\x88s\x85\xf8\x89\x96\xde\xef\x0f\x8c\xeb\
+\xcaC<\xcc\xd3\x16voya\x14\x0e\x19\xc7z\xcb\
+\xe4_b\x06\xf1\xf9\xbb\xf3dI\xc4\x91iW\xe4\x0f\
+\x14\x10\x88\x1b\x00\xe0\x04{\xbe$\xb5T\x90\xb8_X\
+\xa1\xc1h\x15\x8fx\x1cq[\xfc\xe2}\x95+\xd7\x80\
+3Oo\xa8i\xff7jaz\x81\xf8+Z\x9d\xcd\
+\x9c\x09\x0d\x03D\xcf\x9d?t/\x97\xa5q\x81\xe4\x19\
+.tw\xcf\x93U\x8d\x81\xf9b\x94WF\xc2e\xad\
+\xb0C\xbe\xc7\xb4<\x80\x03\xa6$\x04\x00\xe4\x96\xd8\xd9\
+\x99\xdf\x15+\x1b\xbc;W\xd6z\x85@\x12+B\xae\
+\xf1Tg\xc8\xca\xeb\x03\xb2$\xa6BO\x02\xaa\xb0\xcb\
+\x0dc\x0e\xa2\xb7\xe9[~ \xa64\x06\x82\xf7,W\
+P\x9c\xf8T1\xc1[\xebX\xb3A\xfd\x95\x0a\x85\x03\
+\x19\xa8%!z\xc2\x81\x0e%\x0e\x0a\xf4\xf3k\x17\xd4\
+pp\xae\xfa8\x22T#u\xf5\xd8\x90\x04\x16\x1e\xe7\
+0\xb9\xbb\xd8=iN#\xe3\x0e\x1dP\xf4?-\xf6\
+\x93VA\xe0\xf3\x87\xa35\x95:(>\x97W\xac9\
+(\x97\xf5\x81\xbf\xb7%\xe2\xb5\xd2\xbdHZ\xf0>\xf0\
+\xa3\xd7\x07q+Wd\xa2\x07\xec\xce\x1aj\x0e\x1b\xf7\
+\xae\x8ad\xefZ\xc5\x9a\xec0C\x8cQ\x9a\xcb;4\
+\xca\x1d\xea\xd7\xfd\xf92S\xc9\xd7Nc\x92\x08\xa8x\
+\xbe\x04$\xee\x81\x89V\x02([$\xf0\x88\xff\xd1#\
+\x8b\x18\x05\xe3\x10q|\x1c|lH\xbe`j\x80\xfc\
+2_\xdc\xaa\xa3QI\xb1\x18c$\x0c0AH\xb8\
+\xd9\xf0\x0e\xac\xeb|\xdckR\xe0JO\x19b\x800\
+Q\xa8hA\x9d\x83\xb2C\x85\x9c\xc0\x92\x0a:\xe2L\
+c5j\x1c\x05\x07>\xaf\x7f\xb0\x88\xd8O\x07\x95\xfa\
+\xb2\xda\x87\xf1~P\xf7\x11\x97\x22\xa1\xa0\xf2K\x22\x07\
+e\xd4j\xf1q\xfd\x04\xa0\x04\xbc \xbb$\x94$\x0c\
+\x00\x01T0\xff\x8fy\xb1\xa1\xea\xee\xa9 \x81h#\
+\xdaCe\xc4\x89cTT\xd9W\xab:Q\x22\x81'\
+\xe1\xa3\x02\xca~l\xd3\x1a\x86\xff>N\x0c\xd9\xaf$\
+\x84T\xf8\x8dDG\xc0\x0a\xd0\xe7\xc4\xa1?^V\x0f\
+\xe2\xaa\xba\x0b\xc3\xa8;R\x96Tm\x0f4\x95l\xd7\
+j-0\x1bWN\xa9\xb8\xf0\xbc\x99\x7f\xce\xbc\xf9u\
+\xfd{Pva:ld\xb5\xf1\xf1z\xe0z\x11\xc5\
+\x1b\x8f\xcf\xa4\x22\xc2s\xa1R\x07\xd0\x03\xf0\xc5\x01\x84\
+\xda=\xfb\x80J\xaf\xefgP\xca9\xa0P\xd5\xff\x9d\
+\xacQ\x97\xfb\x9deM\xac*\xb4\x07n\x19\xe6Y\xc7\
+~`\xbd\xb1\x9fy_\x00\x0b\x98'\x00\x9c\xd6\xde\xe0\
+\xa0B\xec+\xd4\xefG\xe3\x1a\xa1|\xce\xb3\x16A\x09\
+\x82\x87\xfd\xdc(}\x83\xdfy\xb2\x13\xf4\xe7\xf9\xb9l\
+k\xf16\x80;\xa8\xf2\xf8\x0b\xf6\x05\x80\x1d\x95%\xc6\
+\xbf\xb2\xce\x08DG\x00eT\xa09\x7fH\xdc\xf9\x5c\
+\xec\x7f\x02\x00D-y\xce\x88\xb8\xb1\x0e\xf8}\x12}\
+\xf6\x1f\x01/@\x11\xc0\x04\xc0\x0d\xfb\xec\xb7\x9e\xfap\
+\x8a,U\x0eQK&!\xe1}X7\xae\x10L\x0e\
+\x93%\xffB\xc5\x1e\xbf\x0c`Ek\x0f\x94Y'\x8c\
+\x000\xf8\x89\xb8\x0fT\x98\xb9\xefP\xd0\xa1,\x02\xf4\
+!&\x07\x00J\xa0\x0eu\xd2@f\xa8\xc2\xd3R\xe4\
+V\xb8\x10\xdf\xe3\x1c\x02\xd8\xa0\xb2\xc9\xab\x81\xccH\xa0\
+\xdd\xda4\xd9\xc5\x15\xea;,&\x87\x98 \xf7\x07\xf5\
+ik\xd7Do\xec|Y\x13\xc3\x8a\xfdm\xbf\x1d\xd3\
+%\x1cp\xf7\xb3\xb2T\x09\xc7/\xd3b\xc7\xfd`\xbd\
+\xd1\x02\x81\xff\xe7\x95y\xd0\xec/\xae\x8f\x00\xfdh3\
+)\x01j8\x1f8\xb7\xddR\x19cv\xcd\xd4\x8c}\
+\xee\xb1\xb2|ND\xb4B\xed\xdfS\x92\xa2\x22m\x8a\
+?\xe2\x8e\x00\xd7\xdd\xe7e\x89\x99a\x0d\x84\x00\x80\x19\
+w\x06\xb0\xea\xf5\x11-\x9fh\x1f1\xee\x8d\x1e~\xfc\
+\x0e\x0cC*\xed\xd6\xfc\x898\x03\x7f\xce\xd4\x0f\xe2\x18\
+(\xc5\xee\xfd\xe7\x9c\x0f\xc6\x01\xe3vi\xa9\x84\x81\xe0\
+\x1e\xdd\xf0\x9f$\x90h\xec\xc0\xd0\x80\xfa\x8f\xa8\x22\xf1\
+\x02}\xd0R^\x00\x00 \x00IDAT\xda\x13\xdc\
+O\xd6!\xe7\x0a\x00\x00\x05\x0bS\xc4\x038'n\x81\
+\x81\xe11\xb4\x93\xf9\x93G\xd5:Q|\xca\xeb\xab_\
+9y\xdeIU\x04\xee\xc8b_K\xe3\x17\xef\xab)\
+\xcbP\xb1\xbf\xbe\x8d\xc1c\xfdv\xd7\x15\xbb\xd6\x09\xda\
+\xc7\x93h\xa0\xa7\xd9\x84\x06\x06\xa2\x94\xf6\xa35\x01\x16\
+\xb3\xee\xf9\xb2\xb2\xce\xd7\x94\x95\xef\x0f\x90\x95\xef\x1f\x90\
+5?\x11\x15j*\xa0|q\xee\xb3n\x89'y%\
+^\xa0u\x12f(\x05\x17\xc1\x09\x7fjq^\x7fh\
+\xb1C\xdc\xd3\xfd\xe5&\xc6\x16\xe2\xe1\xb4\xc6\xac[O\
+\xeeV\xa0\xf3:\xedO\x90\x95\xd7g\xc8Z\xde\x82h\
+\xea\xf4\x8d\xb2\xf2\xba\xc2P\x98\x8cVg'\x94\xfd\xa7\
+\xfb\x83\xfaO\xb7\x82I\xad \xff\xd0\xf9\xcb\xda\x89\xe9\
+\x01s\x16\x0a\xbb>\xdd\xe1\xe5\xe7\x96/\xf6\x94\xa4\xc5\
+\x80H\x1f\x22\xbe\xac?\x00^\x80i\xce\x1f\xfc<\x22\
+\xda\xf6\x03Q\x91wO;-\x01\x11\x0f[\x1c9\x98\
+J\xcb\x0d\x1aC\xfd\xa9\xb26>/\xd4\xe8\xc9\xcf\x10\
+\xd5\xb38n\xb4\xf4\xaed-\x03\x98\xdb\xc4mLi\
+\x01`\xf79^5\xc7\xde\xd1Z1\x829\xe6\xfc\x07\
+ r\xbay\xf9\xdc\x9b\xd7)\x18\xc7h\xdaE\xb7\x96\
+\xac\xb5\xc2L\x7f\xe0\x8a\xbd\x192q]\xb4\xc6\x18\xf0\
+\x02x\x8e\xfb/\xef\xbb\x9c[\xd8\xf7J~\x15M\x11\
+\xe2|\xfc\xb1\xc4\x84\xaf\xa8\xe7H\x15O\x9d\x1ej\xe0\
+\x1dF\x01\xfe\x97VO\x80;\x18\xd9\x8b\xcb\x1e\x87\xa9\
+N\xc1\x9a\xf7\xe7<\x06\xf0f*\xd5\x8b\x87\xe9\x03c\
+\xd1\xd2\xda\xbaT\xce\x85\xfe\xbfd\xe5\xfb\x8ddMs\
+E\x12\x85\x12)\x9c\xad\xaa\xffw\xb7\x1b0\xb9ZV\
+\xf6\xe1\xfa\xb2\xf2\xba\xb1,Uvp\xa4\xd6\x08\x88\x00\
+\x90\x079\x1a\x0f\x16\xd4W\xc6\xf78\xe0\x10a\xa5\x02\
+\x0cS\xb7DCI\xf5\x02\xa7\x07$(Z\xa8\x80\xbb\
+b\x17\x95m6\xc0R\xb5f1 \xc0\xab%\xc7\x0a\
+\xf5\xd5=\xa9\x11\x80\x10\xe8\xc8\x0d\xfd\xd3\x89\xf7r\x0b\
+\x88&\x0d\xc0\xc4^\xc3\xd8\xab\x10\xa7\x10\xd5fm\xab\
+\x9a\xfe#\x89\x80\xe9`|F\x12I\x22\xb1!\xb0\xd5\
+\xf6}B\xa2\xcc\x1f^\xadU\x1e\xfd}\x88\xa5 \x92\
+\xa44\xfcii\xac\xa0\x81\x91\x8aS\xffG\x0bX\xba\
+\x17\x14[;9f\xa8Cr\x0bB\xc4\xf7+\xf6\xc9\
+\xa4\x06\xec\x0an\xed\x89\xdb\xbfQE\x82\x8a\xa7\xb4\xe3\
+Y\xa9'|$\xe2\x12=ht\xb4\x03\xb8\xb4\x04g\
+\x08`\xef\xa9:\xbb\xc3\xc2}z\x0aXH\xecH\xb0\
+X'\x88by\x81\xc6\xb8\x11Z\x02\x1c\xa8\x90\xb8\xc7\
+F\xe1\xe0\xa02\xca+\x94|\x0eR\x124\x8fK\x0b\
+\xb1@\xad\x96\x15R 9\xa2\xacGB\xc0\xf5\x11\xa0\
+\x8d\xc7\x91\x01\xa0@\xfd\xa5\x92<\xeeMb\x9d\x918\
+q B\x89m\x22m\xc3:B\xccj4g>\x1c\
+\x06j\xe2\xccM\x1fO?\xe0s\x13\xa0s_\xf8\x5c\
+\x5c\x1f\xcf\x05\xe4\x94\x9f\xff@\xb5F-\xe5@d\xbf\
+\xfb\xbf\xd3\x1a\x14\x08\xfd3\xfdy8\xc89\xc0\x1d\x00\
+#\x06\x15\xfbd^\xe8b\x0c\xcf\x8b\xfb\x01\x15\x9f\xcf\
+\x87z9\x00\xe0#fFx\xdc^\xff\xdd\xfe;\xfd\
+w\x92\xe6\x08j\xf7G\x0f\xbd\xd9\x93o\x0c\x22\x7f\x11\
+H\xe2`IH\xb9/L1x\xf70F\x11*\x1f\
+\x15\xfbH\xfc\xdb\x9c\xf8\xc1\xef\xb0\x9e\xf9\xfc$rT\
+b\xc7\xc0\x08\x00\x0d\xcf\x89\x9f#\x01\x03\x10b\xddA\
+=\xe5`D\xdc\x12\xbf\xe1\xf57\xfd\x97\xac|\x7f\xf0\
+\xa0\x0e\x1d\x89\x0a\x80\xd6.\xb2\xf2:\x19Z6&\xbf\
+p/\xec\xf7\x87\xc4,\xc6\xf7\xec+Ks\xdc/1\
+\xc5\xf4\x89N,Q5G\xd4\x8b\x16\xb1-\x87sc\
+\xfa:SjQ\xfdv\xaf.\xeb5\x12Q\xf6\x11\xcf\
+\xf9\xd6Ak`\xfac\xbf\x0f\xfb\x11\xa6\x0a\xda\x1c$\
+D$\xba\xac{\xcf\x03\x8fJ5\x94k\xf67@\x17\
+\x0c\x0e\xf6\x05~\x05\x00\x86\xe7\x04pI\xc0E\x85\x96\
+\xc4\x0d\xff\xc1\xfamT\xfda?\xf3w\x01*aR\
+\x80\xf4\xf3=\x8c\x04\xfc#\xe3\x91~\xeb\x16\x07Z\x89\
+\xb8O\x97ZTn\x0dO\x19\x80\xa1\xe6\x96\xbb\xa8\x10\
+\x1b\xc0\x8bJ;\x9a\x0f\xec#\xc6\x8aB-\x86\x91\xc0\
+\x18EWb\xe2\xba\xb8?TH\xd1\xe2\xe1\xf7\x01.\
+`\xc2\xd1\x8bO%\xca\x0c\x9e:\xcd\xe7\xc3)1\xf3\
+>\x8d\xfb\x0dpB+\x1c\x1a\x00\xe3\xca1\x81\x16_\
+\xb4\xd2\xb82\x1c\x09\x1a\x7f\xd7\xe7a0L\x00\x0a\xa0\
+\xae\xbb7\x9f) U\xf4\xec\xceT\xb93\x80\x11c\
+\x5c\x99\xba\xe3\xf3%\xa6'p\x1e\xc0l@\xf4\xef\xab\
+2'lG\xa6s\x8cx\x8a\xcf\xcb\xfa!n\xb1\xff\
+\x8b\xc4\xd3\xfe\x8b\xfb\x19\xfe\x0b\xa6\x1f\x9f\x0b\xb1)\xc6\
+\xac\xb2\x7f\x00v8\xef\xcd0\x88\xebv\x01h\xb2\x93\
+\xac\x8d\xcd\x0b\xad%W\xec'7\xca\xd2\xb4\x06\xaf\x8b\
+\x10+f:\x07\xf3\xb9Ip\xd0|\x82\x99\x86v\x91\
+\x03\xf7h\xf9d\xff3\xa5\xc1Z\x14\xf1\xbc\x1c\x97r\
+_\xa35\x81\xfd\xed\xc0<\xc4\x85\x89\xa7\x08\xd4at\
+\x22B\x08\xa3\xd4\xf1i\x8c\xbbE\xc3\xc0\xad\x22q>\
+\x8e\x81&\xfc4\xad*\xb4\x90\xd1\xaa\x02\xd0\xcc\xfa@\
+#\x80V\xd9\x8b\xecg\x1fZ\x90\xe93\xd9v\xb2\x8d\
+\x80\xef\xee\x17\xdd\x99\xdd\x99\x89a\xe8\xca\x1f\x22\xc9\xb5\
+a\xf7\xea\xe6\xa7\x00\xc0\xbb\x97\xc9\xca\xeb\xb6\xb2\x16\xb7\
+N..v\x91\xf3\x80\xab,>vH\xd3\xca\x917\
+\xae\xfeX\xfe\xa5\xf8\x83\xb9w\x17{\x97+\x9a[5\
+\x8av$\xdc\xc4\x0f\x9c\xaf\x00\x8d0\x99\xb4\xda\xbb$\
+*\xcd\xfa'\xae\x19\xfbS\xc6\xbb2\x9d\xc5\xeb\xb0\x8a\
+\xf1\x1d\x97\xee\x13\xe7\x8c\x19\x07\xa8\xf6\x93\x98\xc6zA\
+\xac\x93x\x99\xfb\xef\xf3\x18\x11\xe4\xe8M7\xd3d\xba\
+\x86,\x8d[\xa6\xd5\x11\xb18\xf2\x224y\xce\xd4@\
+\xdfZ0\x19\xc69J3`\xe7\x06\xfc\x85\xba\xbd4\
+\x05\x04Xt\xb2\xd4\x1a\xed\xd7P\x91\xf7>%?\x99\
+\xf7\xfejm\x1c\xa9\xe3\xda\x92(o\xaeD9\x98\xaa\
+P\xfd_*Kby\x87\xcb\x1a`\x87\x86\x06\xad\xcf\
+\xac\xc7\xca\x88\x9eIq\x15\xe7\x15\xe7.~\x9f\xd6A\
+\x9e\x07\xf1\xad\xb5%\xf0\x07\xc10|\x8a\xe3H\xf6#\
+S\x9b^!K@\x1e\x001\xef\xff\xderz\xbd7\
+M]:x\xf0+\xc1\xf0Z\xd5\xe73\xd4{\xb4-\
+(\xb4\x1eT\xe7f4-\x12\xb7\xb4L7\x93\xb5\xd6\
+\xde(\xe4\xbe\xb7\xbec0\x16\x22^{\xb1\xef/\xaa\
+\xfb\xf8a\x18\x92\x007\xf6/0\x15\xc4g\x15\xa3\x15\
+\x0d\x84\x88\xf3\xc8+\x0c\xbc\x87\x9fg?\x99A\xc7\xfa\
+\x86i\xd7\xfdZV\xd6\xed\x99\xb2\xf2\xfdN\xb2\xf2\xfd\
+A\xb2T\x18\xf5:\x9d\x0dj\xcf]\xb2\xf2\x0b\xfb\xc9\
+\xca\xeb\x07\x8a\xed\xd4\x02\xf5@$\xe9-\xf0\x02\xa9H\
+\xca\xd9M\x0c\xa4\x0e\xe3\xdb:Q\x1f\xf6\x90\xa5\x1eN\
+D\xe3\x9e\xe6^:T\xe1\xe9aX\xc7\x94\x05DD\
+\xdc\xb3\xd4\xbdFV.\xe4g\xb2T\xd9f,\x02\x07\
+?\xd4k\x1c\x0c\xa2$,D\x12\x1b\x90\xa5_Z\xf4\
+E\x14\xb9\xab\xd3\x01K%\xce\x95\xce\xe8\xd5\x86j#\
+Gy\xb1U\x88\x9f\x9c*\xb2\x04\xe8\x04R KP\
+\xf9\xd5a\xb2\xa5\xd5\xa2\xdf\x92>\x8f\xd2\x84\x07Rb\
+\x808\x0d\xad\x0eP\xd8\x08\x1c\xe8\xed\xd7\xdc\xddG\xda\
+\x98\xbd\x8a\x9b\xdf\xf08\x14s\xf7\x82\x05\x00\x02\xa5\xd7\
+\xe3~\x22\x11\xa3\xf7J8\xf71Is\x80\x84F\x1d\
+\xd7\xe7>NBI\x05V\xb8\xe3\x9a\xa9B\x8a\xf8\x15\
+\x88\x1a\x09\x12\x9f\x83J/\x07\xfbx\x9e7\xaf\x044\
+\xcc\xa35P\x11\x22@\x04HcF\x02\x7f\x7f\x5cy\
+~Ju9\x0d\xa9<i@\xceC\xe4\xc7S\x15B\
+\x9c\xc9\x9f\x03\xe6ET\x0aH\xdc\x08\x849\xb8IH\
+x\xbeT\xec\xb8o\x1c\xfc\x00%he\xdchUt\
+\xde\x97}C \x05\xf0\xc5\xfd \xa1\x00\xd8\xe0\x95\x1e\
+R>\x1f\xef\xc7\xbe\x18\xf7\xd8r_p\x10<o\xbe\
+XG\xcc\xd1&ac\x8c\x8e+^\x04p\xdd\x16\xb2\
+\x94\xe8P\xa9\xe5s\xd3\xea\x81\x1a3\x08m\x16\xdb\xbc\
+7}O\x05u\xa1\xa0\xbe/\xb0\x1e\x10\x01\xeaOq\
+\xe2\x0f\xd5\xf0\x9e\xe1\x80\x8a\xc0\xeb\x1c\x8b6\xfe\xc5\x94\
+i\x9e\x13~\x03\x84\x95\xc4\x8e\xfbK\x85\x86\x04\x9bu\
+I\x22\x08p\x00\x10\xc0}n\xe3\xef\x86\xf5\xc7\xfa$\
+\x11\x07 \xe09\xf1\xca\x81J\xc5\x9a\x8a6\xe3\xcbF\
+\x8c\x90\xa8\xa0r=\x04\xa8\xf8_\x02Q\xf6\x03\x89\x19\
+\xfb\x90\xca\x13\x81\xef|\xff\x1c\xd3\x22\xa8\xb8\xfb:\x11\
+7R\xa3T\x9d\x86\xb2\x82+\xe3\xa8?\xc3\xd4\x809\
+\x82\x16\x02\x0c\x0b\xf6\x05\x22\xaa\x04\xd2|\xce\xeb\x9d\xf8\
+\x92\x08MF\xaa\xb9\x9e\xbb\x1d\x88<\x81;\xd4z\xee\
+\x13L\x14\xfc\x94[U\xa2\x97\x15`\x80\x8a\x09\x95}\
+\x12D(\xfe\x046\x04\x0e\xe3q\x9en}\x09\xed\x01\
+\xce\x0f\xd6\x13\x95yD;\xc7\x95\xdb%F\xea\xc0\xac\
+\x17D\xf9\xa8\x10\xff\xcb\x81\xbe\xc7\x86Qq\x8a\xfd\xf2\
+\xe4\x05[\x16\xc2\xff\x22\xf6\xc8zp\xc0X\x13\x89m\
+\x12\xf0\xfa\xb3\x12\xa8\xfe\xbc\x02\xeb\x83\x98#\x8c\x0d\xa8\
+\xb6\xec\x03\xd65\xd7\xcf:f]\xe1?\x00\x06\xa0\xee\
+\x12\x90\x92\xc0Q\x89\x010<I\x96\xe6\xda#\x06\x89\
+\x0a2\xfe\x84\xd713\x82J\x08-\x11P\x5c\xff)\
+KL/\xee7@,\xd73\x1a\xcb\x1a\x0c\x03*\xcf\
+\xc4\x03\xfe\xbe\xff\xbb,M?\xbaD\xd6\x00\x00\x02\xbf\
+\xfe`Yy}\x9d\xac\x89=\x866\x0c\xad\x12\x04\xd4\
+\x00\xab\x00|\xf4\xb6\xe2\x1f<\x96\x15\x8d\x22\x98<5\
+\x1ex8\xf9m\x12\x1aT\xe1\x19_i\xa6YPM\
+\x99\x06\x03\xa5\xdc\x15t\xc4\xa7\x08\xfc\xa3\x95\x89D\x0c\
+\xcd\x8d+d\x89\x8a\xfd\x83\xa1bX\xeeq=\x97a\
+n\x226\x16\xadl\xa8\xf8\xb3\xcf]`\x8a)Q\x8c\
+\x81D}\x9b\xa9N\x8c[5%;\x98\x00\x14\xaa(\
+\xcc\xb8G\xb8\x8a\xd4};1\x19\x99v\x84H4\xcc\
+6\x18^\x00p/1\x80\x06#\x821\xcf\x9f\x96%\
+\x80\x80\x04\xdfc\x94#!\x03\x80\xe3s\xe1\x97\xcc\x08\
+\x88\xc0\x9e\xf5\x8c\x08\xaa\xef'L\x8d`\xf4<\xd7\x89\
+%\xef'\xad\x9d<~\x91u\xcd\xdf\xe3}\xfe.+\
+\xc7\xe6\xac\xac\x89\xbdU\xa6\xef:\x0d\x88\xed\x96)V\
+\xe2\xcdn\xffb\xeaE^G\xd6\x18\xb6\x8c\xb7\xebW\
+.\xf6\x0ck\xb1\x9c\x9a\xc6\xc11\xfd\xc3\xcc\x83\x0a\xdc\
+\xfc\xb11\x0b\x22\x01\xb5\x08Y\xf5\xa2s\xc9\x7f,T\
+O\xf8\xd6z\xc1~$^\xe1\xfc\xc2\x9f\x03(\xa2y\
+\xe3u\xddm +\xaf\xcf)\xa6q\x87\x87\xc8\xca\xdb\
+\xad k\xad=\x8c\xf5d\x0aChjX5\xbeR\
+\xd2\xf7hs\xeb\xe3y!\x9eg\x80\x9d\xeb\x0fF\x00\
+\x895\xe3\x00\xaf\x95ld\x03\x0a\xa8\xac\xe3\xaf\x00\xce\
+c\xba\x14\xe7\xd1\xaeU\x9d\xa2\xed;\xf2\x19\xaf_\x18\
+\x05\x91\x9f\x19\xa0\xa7\xf5$\x98[\xe38\x1d\xe6\x9bE\
+\x0cI\x98C\x5c\x8ex\xd6q\xc5t/Y\xb9\x1f\xeb\
+\xc8R\x01\x90\xb8\x96)1T\xb6\xd1\x96q\x8b\xc9t\
+gY\x8aOh\x95B\x8b\x00\xa0\x9b\x16\x01\x80S\x9f\
+/1N\xd1L\xf0\xf0\x9b\xce\x03\xe6\x8e\x97\xd5\x96\xa4\
+\x01\xd8\xb9\xd2\xadY+\xba\x10\x06\xa3a\x1bY\x02\xa8\
+\x10\xe3\xe4|%n#\xcf\xb2\x98i9\x05\xcf\xac\x14\
+{M\xc3x\xae\x9f\xe3\x9dI\xb4\x91\xe9JT\xf2\xcd\
+\xacBs\xac_W\x96\xc6m{:A\x9c\xf3\x14,\
+`\xf0\xa2}\xe0\xb85\x0a0\x14\x0a`\xc8\xffd`\
+\x12\xc7\xbar\xfe\x10\xe7/\xadD\xb40\xb0\x7f\x0cT\
+\xce\x82\x14\xd2\xc3\x05\x22\xde\xbf\xb2\xd8\xab\x92z7c\
+\xe08\xa0|\x00\xa1\xba\x19\xd4\xe9/9\x90c,\x1c\
+\xbdEV\x1d\x0e\xd1/.\xe08\xcf\xcd\xfc\x9d+\x9a\
+l\x1c\xa8\x11 \x82\xa8\x9c\xba\x075\xe6-\xb3\x00\xf9\
+\x5c\x04\xf2 \xa2\x88\xc1 \x8a\xc2\x18!\x02\x04\xcf\xb3\
+\xaf\x89\xfcR\x0ex\xceJ\x89\x1aH\xad\xeaH\xafJ\
+\x15p!\xe1%\x00\x98\xf9Y\xb1\x9fZ;\xe1;\x8d\
+:E\x022]M\xd6z\x81\xc2\x81h\xf9\x7f\xd2\x81\
+\xfeR\xeds0f0\x1c\x1eH\x9f\x10\xd9k\xd2\xc1\
+\xec\xb1\x18\xb1Q\xe5F.\xf7\xc1\xfa\x88\x11\xa4\x0d|\
+\x1d\xcbx\xe3?\xab1%\xa2E@\x22F\xf7\xa7^\
+L!\xb9op/\xe9i\x89\xb2\xe6y\x9b\xf4\x84E\
+o7\x09\x10\x09\xb7\xb6\xdb\xf2)P\x5c\xb2v\xb3\xb6\
+\xc4\x92\x0d\x06\xc2\xcb\xf7M\xe4j\xa0\xfc3\xff\x96\x03\
+\x8du\xc0\x02\x86\x92\xcbAA@N\x825f\x00P\
+Q\x00\xc9\xbb\xdf=<\xfaW\xee\xf36M\xed=z\
+'-6\x16\x07\xae\x03\xb1\x18\xb7f\x8a\x5cTF9\
+\x88\x09\xc0Ab\xff\xe9uh\x91\xa1H\xf08\xa8a\
+\x02PA\xa3\xc24N\xd8qT$\xa8\x04\xaeTN\
+\xf9w*\xc7T&\x01\x04\xc6Te\xee\x13\x8e\x85\x7f\
+'0\xa6\xe5\xc0\x15\xc7\xea\x08\xcfL\xaa\xd9\x88\x0a\x19\
+\xa8\x8a\x9eM\x0e\xaa~\xa4\xda\xcf\xd8@&!\x00\xe8\
+\xc0\x08@,\x94\xc4\x94D\x19\xa0\x82\xcf5\x9e\x16a\
+\xeaw\x00$\xf8\x03\xd6\xddk\x1c B\x11\x85\xca\xce\
+81zaW\x1b\xb5.p@\xbb\xf2\x11\xef\xc7:\
+$\xe1'\x91\x03\x08h\x89\xebp\x9f\xf9y\xee\x03\x15\
+'\x127\x02~\xd4\xc7\x01l\xf8\xef\x04\x04\x5c?s\
+i\xcd\x08\x09\x11EZs\xf89\x9eg\x0e\xb0\x16z\
+\x9ci\x03\xfc\x1c\xefG\x0b\x03\x15?Z\x1dH\xe4\x9e\
+\xee9\xc67Y\x9c\x92J\x22\xf7\x8d\xc0\x0d@\x95\x8a\
+\xbd\x81\xa3h\xe9\x82\xf2g\xa4=\xb4=`x\x90\xf8\
+\xb3^\xf0wTX\xb8\x8f<\x971\x93\xa3\x89\x0d\x0e\
+?\xe7\x04\xba\xf2\xbe2\x00I`D\xa5\xf9u\xde\xef\
+\xaf4%\xdc\x81Y\xf8]\x00\x0c\xee\xe3\x9c\xfd\xcc\xb8\
+\xe5\x8c\xc0`\x0c\xa8Q\x11\x81J\xc8\xb4\x11\x9e'\xc0\
+\x03\x80)\xfe\x91\xe7\x0e\xe0\xc2\xe7\x05h\x80)d\x06\
+FP\x17\xf1K\xac+\x12I\x80#\xfc\xfcMC\x05\
+7z\xcc9_\xa9\xa8\xf9\xfa\x83)\xe6\xde\xc2\x08`\
+ie2\xc3,\x02\x17\x00\x11\x9f\xcb!\xb6I\x82\xcb\
+4\x05\x98pT\x80>>\x8cA\x8b\x04\x1c\xff\xe8s\
+9\xd4\xe0I\x84]\x89\x0f\xe0\x82\x84\x9f\xf5\xc0\x1c{\
+\x80Z\xd6'@+q\x0d\x9a#\x04\x9e\x0e\xdc\xe6.\
+\x97\x95\xbf\xbb\xf50v\x15\xca|\x00(\x16\xd3\x9c~\
+T\xd6ZY\xa8PE\xa5\x8a\x8a\x8f\x81\xf8\xb8\xbeq\
+\x02\x07@\xcc9@\xab#\xc0 ~\x0bj3\xad\x12\
+$\xa0\xd6\x84\x08J\xb7\x13\xe1\xa8\xc4!B\xe6@\xb6\
+_E\xd6\x80\x84\xc0\xe5\xa9\x10R\xf8\xa0\xa5\xc8\xfe\x15\
+\xf1\xd0\xa0\xbc\xef\xe68\xc5c\xa8\xa6\x0b\xcb\x9a\x08q\
+T\xcc\xd1\x14\xe2\xfes\x9d\x8c\xfb4\x03pr\xbc,\
+M/\x01\xa0\xe1\xdfy\xff\xfa\xd5\xb4\xa9b\x9d\xb3/\
+\xf7\xb7\x88\xdf\xff\xca\x92\x08\x1c\x15a\x18\x99hI\x10\
+\x17\xc3\x1c@d\x17J?c\x05\x89\xeb\xd0Z1\xb3\
+\xaaj\xef\xff(1\x03\x010\x10q\xfc\xe1\x00p\x04\
+@M\xe1\xcb\x22\xd0\xd1\x1ak\xed\x9e\xf0\x0f\xc4u\xbc\
+\x9fD\xf1\x9e\xe5\xf8\xe4}\xa90\xe2\xb8w\xe6nY\
+qC\x1f/\xf61\x03\x0b]z^~\x0e\x9d\xbe$\
+b\xbd\x9a\xac\xbc\xae,kq\x0eL\x01\xa8\xf6\xb4r\
+L\xbe K~\x99\xf8G\xebd\xd3\xd4\xb2j\x805\
+Z\xb0\xd8\x7f\xc4\x9f|n\xc7w\xd1\x9aE<\xc1\x17\
+\x09\x1a\xfb[u\xd3MM\x11/~\xaa;VV\x1e\
+\xfb\xcfe\x0d`\x8b\x04\x8c\xfc\x81\xf5k\x11\xcc\x10]\
+sB\x15\x8c\x86\xb5\x8a\xa9\x10\xb9b\xb1\x95Z\xa1\x8f\
+\xcf\x0b`\x10\x09<~U\x05%U\xf4\xd7+&\xf5\
+\xf67\xc8\x92\x06\x0a\x09#\xe7\x01q\xb3\x99E\x8c\xd7\
+\x0b&3\x22n0'\xdc\x02\x0c\xa3\x00F0\x15\xec\
+\xd0\xac\xa0\xf2\xcd\xfd&.V\xe1\xeb\xc4v\x1e\xa3\xd1\
+\x11Zn\xe2\x1f\xbd\xa3\x8e\xa5;D\xa2\x80s\xdf\x96\
+\xb5\xfc\xac{\xb6\xac\xe5y1\xf5\x83qx?7\xa0\
+,\x98\xf6\xee\x04\xc8\x9aq\x01\x90 %\x80\xca\xc0p\
+\xfe\x17\xf1?q\x09cT\x17\x91\xb5)+\xf1\x1c\x01\
+\x94\x99^\x02#U\x1a\x1f\xa7\xf8\xfc\xd9\xb8\x15Ha\
+\xacP\x08 ?\x8b\xf3\xc7\xf1VLqP\xbd\xffs\
+U\x04\xbeN\x9f\xd0\xd0\xc9\x0a\xb0\x18\xa0\xec\x0f\x935\
+f\x95\xa4\x13%\x9e\xd8?Q\xd6\x80O\xc6/\xe2\xf7\
+\x03\x00EC\xc4q{L\xcdc\xfc<@\xfb\xef\xbd\
+\x0f\x00\xbe)H\xf9z\x83yF<\x84?\x05x\xe1\
+|q\x5c=\x8b8D\xa5\xb8\x94\x0d9\xf7{Y\x1b\
+C1\xbbF\xb1\xd5\xbd\x91~\xe6\x03\xf6\xe0\x14H\xb3\
+1\xaf\xa9)\xbe\x12\xa1z0w\xcf\x92\xa5\x0a\x00\x89\
+\x9dEc\xe2 #\xc1\xd8g8H\x83*\xf1\xb3\xc1\
+\xe1N\x9ffD\x8d\x00\x98\x0b\xe3d\x22@\x02!#\
+\xd0\x81\xfa\x06\xb5Ju\x9f\xbf=\xce\x18(\x02b\xfd\
+\xd5ERk\xc3\xadU\xe7\xb1U\xb4u\x5c\xed\xd4\x10\
+\x1b\x1cc\xf7\xa7b\x97\xa7\x1b\x0f\x02\x0a\xb2DE\xc9\
+*\xb4\x15\xc7\xbe\xcc\x81\xd8R^\xe8\x0b'\xc7g\x04\
+4\x02F\xdd\xa5\x8f$G\xc1\xc1c\x15\xfc\x9a\xe6\xdc\
+\x93\x025*\xe1PIF\xbd\xac\x15\xf1M\xe3\xd2j\
+%\xe2\x0f>\xf8\xce\xf3\x01\xf7\xda\x94\xa8P9\x80\xb2\
+#7\xf2\xd3\x84\x14\xe2\x88U9xwBp\x01\x08\
+\xa8TB\x81\x06\xf1\xe59\x92(\xf1\xf9\xe8\x8d$P\
+]b\xa4rM\xc2\x82\x03\xe3\xdf\xf9\xe2\xfa\xf9\xfc|\
+1u\xc2-$$D\xa1)\xa04#3\x0dTw\
+\xbb7\xdd_\xe66\x13\xa8\x90\x10\xa0F\xeey\xc9\xb4\
+\xbaD\x02\xe6\x0ad\xa8\x01\x8f{z\xb9.(\xb2n\
+\x19\x80\xe2\x1f\xe2\x90$\xf8\xfc>\x09\x0d\xc8\xa1\xd7\x7f\
+0\x08\xac\x92\x1b\x0e\x80\x96\x1c\x0e\x18\x00\x18\x80\x15\x18\
+4$\x1a\x0by\xfd=\xe8\x04\x0a*\xfc\xffx<\xcb\
+yV\xc5\xa6'\xebk\xb2T\xc9\xda\xdc\xe2\x81\xf4@\
+\xb3\x9e\xf9<<\x7f\x12S\x12a\x10Q\x80\x0c\x128\
+\xa8\xc8T\xaa_8T\x06\x99\xc3\xdeo(K\x88\xec\
+\x0bSo\xdc\xaaiZ\x09-C\xa8k\xa3\xbeL\xaf\
+2~\x86\x0a\x10\xefK`\xc3}\x02\xf0\x22\xf1G\x1d\
+\x9e\xde6\x1c\xf6\xa8\xf5!\xae\x1b\x80\x83\x84\xb9\x01.\
+Cb\xb2\xe9h\xfd\xd3\xd21\x9e.\xc1\xbf\xc3\xb8!\
+!\xe0\xef\xf3\xc5\xba\x19\xa9\xaa\xc7z \x81\x04X\x01\
+@\xe2\xb9m\xec\x03\x84\x8a\xd2\xf5\xb2\xe4\x97Pe\xe7\
+}\xa8\xc8Q9\xb3\x9f\x8e\x9eZ\x80Z'\xa81\xfd\
+\x81\xdeq\x02\x10>\xef\x83\x1e\x17\xfbbW\x1e\xb8o\
+\xecK4)`>l\xeb\xc0\x1f\xed\x94+-\xbe\xf9\
+E\x8f\xaf{\x9e\xcf\x0b\xae\x9b\xfb\x0a0\x0c\xd0\x91\xb5\
+V\xeeL~~<\xc5\x81\x00\xcd\xd7\x01`\x1a\xc0\x00\
+\x14g3e\x00\xce\xe2~\xb5V\x81\xc5\xaa\xffB#\
+\xe2\xef\xbe\xbfwx?\x00l\x9b:8y\x9f+\xc3\
+L\xa1\xa0\x82\xc0}\x04`\x18k\x13\xf0\x5c\x11\xdd%\
+\x11\x80)F\xc2D\x02\xc3\xbe\xf585T\xa8\xe3<\
+\x07@\x84\xa9\xf4!\x8b^\xd12H\x0b\x02\x15)\xfe\
+>\xcc'\xc6|9\x91b\x9ew\xa8;#\xd6\xc6y\
+\x8e\xffG\x85\x9b)\x10\xb4\x10\xf8\xfd\x18\xdbY[\xe0\
+\xf6k\x14\xf4\xf8\xde\x15\x94`\xe8Q\x81F\xc5\x7f\x8f\
+\x81\xb2\xdb\xcf\xc8\x92v\x0aTbM\xcdY\xa8U\xac\
+\xa6\xef\x94\x95\x9f?Y\x96\x0a\x10\xcc=\x87!HK\
+\x1b\x09%\xe7 \xfb\x19?\x01P\x0c\xa0Ib\xc5\x94\
+ \xc6\xf6\xc1\x10\x82i\xc3\xd8@\xc6(\xd2\xe3\xee\x8a\
+V\xfc}\xd65\xaa\xe3fh\x00\x0c\xc4\xf9\xe3\x0a|\
+h\x05\xb0\x8f\xddZ\xd5\xed%\xabZ\x0a\xc5\xdayN\
+\xe50\x12\x12W\xfeb_\x03\xb8\x1a`B\xa4XJ\
+R\xd2\x92\x8aV\x15\x12h\xf6+\xbf\x87\x9f\x1b\x03\xab\
+\xacw\xe2B\xd6/\xaf\xacK\xb5r^\xd5z\xea\xa3\
+E\x86\x96\x0e\xaf\xe7\x00V\x5c\x88\x8a\xb1\x8e[\x0e\x0c\
+\xa8\xaa\xb1\xb4c\xf9\xfe?\x87^\xe0\x00\xde8w\xd9\
+g\x8c9\xfc\xd1@]\x9fw\xb0\x99\x0a\x0f\xc9\xd2T\
+\x00\x18\x15h\x0e8\xce.^\xa5\x8e[\x8e\x96/I\
+E\xefl\xe0\xee\xa6\x94\x08\xf9}\x18\xdb6{h\xb1\
+\x92\xc0uGt\xff\xaf;\xa2\x89\xc1N\xae\x955\xd1\
+\xeaH\xfc\x17\x96\x95\xd7{d\xe5u\x1bY\xea=g\
+\x9d\x11\xcf\x01\xbcn^O\xfe\xc6\xa4\xa0\xd5\x0c\xb5v\
+Z\x7f\xce\x95,\xaa\x0br\xe7\xa7\xfdDA\x07\xff@\
+!\x04\xbf\x0b\xb0\x8a\xd8\xab\xc7\xbeNv+\xb6\xbb\xb5\
+\xbb\xca>\xe9\xd6-V>\xcf\xcc\x8d\xb2\xf2k\x87\xcb\
+\xdazG\x9c3Z\x00\xad\xbeN\x1c\x11\x8c\x00\xce\x13\
+1\x06>\x9b\xf2\x13\x00M\xb4\xd0`v\xc0\xec\x22\xee\
+%1c\xda\x17\x85\x1e\x18ehe\xb9\x87~b\xcd\
+\x9b\xd0\x10\xf1\xf9L\x02\x1e\xe3\xd5\x89C87\xec\xa7\
+k\xaf\xf7\x8b\xd3\xb4\x0f\xee\x97\xb5\x12\xa2\xd5\x81\xd6\x22\
+\x8b|\x87V\x04\xcc`\x8f\xfb\xac\x0c\x87r\xde\xcc_\
+\xaf\xd8\xfam\xddu\x97\xcb\xca\xba\xdaEV\xee\xf3\xa6\
+23.J\x9c4\xf3\x17Y;\xa7\xfa\xcde\x0d\x00\
+\xe9\xffT\xec\x8f\xc9?\xb1\x9e9GO\x9f\x9e1=\
+=\xc5Q\xecc\xc6n\xbb\x00U{\xf8u\xde<\x5c\
+\xec\x11\xb7\x06\xdf\x97Z\xd5\xd4\xf0tT\xca\xeb\x88o\
+\x897Q\xd3\xf78\xbe`,\xc2\xdcf]\xc3\xfc\xeb\
+jI\x22\xfe\xbd\xbfTV^/\x19\xc6g\xc6\xf4\x83\
+\x83\xad\x95\xf0d\x8b \x22\x8a\xebV$z\xf2\x83\xe1\
+\x84V\x13\xcc\xa6\xeddu\xdd\x0f\x09\xfe\xb7\xcd8\xf9\
+\xbc?'-\x10\xb4\x88\x18\xa0\xa4U\x0a\xad\x87:\xee\
+\xf0\xf6\xf4=\xd3#|\xae\xce\xf6\xd7\x17\xbb\xcec\xd1\
+\x9eh\xa4\xaa$\x883\xbf\x95\x95\xef\x9f++\xfb\xf1\
+PYSy\xed\xbe_\xec{\x8dj\xd5\xfd\xad\x98(\
+F\x87\xcbZOD\x04\x1aT\x96\x5ci\x08\xb1\x9e{\
+=\xff\x18\xf1\x97/Y,\x86\xca\xddQ\x16_qb\
+\x17c\xac@\xb6\xd9p\x04:\x1c\xa08\x0e\x02~*\
+R,\x00*RPT|\xa3B\x0d\x9e\x04\x89\xc0\xdb\
+\x81W\xb7\x99\xaci%\x84\x08\x8c\xc7mM_a\xf5\
+K\x8b\xa3E\xaf\x9e)z1\x16\x04\x04^j\x8eY\
+\xedt\xdcK\xbad\x1d\x08\xd5\x0e\xea\xd7\xd4\xae\xd6&\
+z\x22\x07\xf8\x1f\xad\x872\xd4\x1e\xe5v_\x96\x00\x05\
+\x90p\x85\x89\xaf\xf7A\xb8d\x9a\xab*q\x96\x0bS\
+`K\x22\xc4F\x01\x89\xbb\xa9\x86\x90C\xe0}\xa9\xa9\
+W\xb7\xa6@\x98\xfb\xc5\xc1G\xe2D\xa2\x04r=\xd2\
+\x8c\x08\xc0\x80u\xf2\xc4\x91\x0a\xf68\x91\x22\x00\xa4B\
+\xd2\x8d(\xc2\x8bE\xa5y\xc1\x0a\xecH\x5c\x0b\x87\x1b\
+\xe2\x198\xde%*yq@T_\x9d\x98\x18$\x92\
+\x00_\x888\x01,\xd1\xf3\xcfu\xdchG\xcf:d\
+\x9d\x92\xf8\x8e\xe7cC\x85b\xbd\xb3/<\xee\xac\xfc\
+\xdf\x00\x04p\x00\xb0\xbfx>P+u\xc0\x9e\x9bZ\
+Apd$\xb4T\xc4\xc6\xe3\xce\xa8\xb8s\xffY\x87\
+<\xa7\xcd-\x8e\xf81\x07\xb4\xde\x9f\xa1N\xcc\x81\x04\
+0\xc1z\x1aU0\x03\xe0!\xd1\xe79\x8d\xc5\x02\x9f\
+\xe0\xe7\xb9\xb2\x13S\x00\xb5\xbbL1w\x80=\xbdm\
+\x10\x05\x9b.7]v\xbal\x13A\x81z\xa9\xf0H\
+\x01R \xfd\xaeh\x05`C\xe2\xc3>\x01\xe8a\xff\
+zJBP\x89Y\xaf$\xee\x5c\x1f\xfe\x88}\xc0\xf5\
+6\x06\xc4p?y\xee\xdco\x98\x040;xN\xdc\
+O\xfe\x0e\xd7O\x00\xcc\xfb\xe3Oy\x9e\xf8\x0b\xd6\xc9\
+HD)\xd6\x0d\x9f\x87\xf7g\x1d\xb3\xdf\xd8g/w\
+\xa5\x8c\xfd\xc2\xb4\x03Zc`\x86,lf\x8e+\xa4\
+A\xe9C\xfc\xebR\xf7\xbcy\x8c\xe4daY\xabd\
+\xd5\xb1<\xbb%J#L\x0d\xfb\x91\x10\x11\xa2\xc2\x87\
+\xca\xf1\x9c\xaf\xef\x22\x1f\x8c\xa7[|\x91\xfb@\xc0\xc6\
+\xd4\x0c\x8b\x98\xc5}c?\x93P\xb2?\xc6\x95~\x98\
+\x09\xack\x02\x14\x80h\xee\x17\xfe\x87\xbfC\xeb\x0c-\
+\x00\xbc/\x80\x0b\x09\xd8u\x03U4\xfc\x03\xbd\x94\xf4\
+\x8aR9\xe39]o\xffB@\xf9\x90\x01\x85\xe5\xfd\
+\xb9\x10\x1d\xda\xd8\xf7\x03\x95y\xab\xdd\x878\x1b~\x9a\
+J\x01\xfb\x97}\x89_\xa2\x82c5{\x12ST\x8e\
+\x11\xb9\x0d1E\x12_Z?\x00\xc29\x9f\x01\xea\x01\
+\x0e\x10\x85\xa30p\xb9,\x9d\x03|\x0e\x0a\x17$\xf4\
+VS\x0e`wEY\x13mD$\x13\x8a6\xcc\x82\
+h\xdd\x03\xf8\xb1_\x9a\xbeH\x96\xce\x033\x16\xbb\x03\
+d\xe5\xf5PYK\xdc\xe8I&\xd1\xed\xef\x9651\
+\xc3\xe8\x19\xc6\xdfyL\xefc\xc6\x1e\x8e\xa7Opn\
+\xf8\xdfc\xff9~\x08\xca\xbe\x03\xfe\xc9\xdbdi]\
+\xf2\xf7\xf0s\xac+\xd6\x05b\x9c\x9c\xcf\x9c\x8f\xec\x13\
+\x8b\xce\xc5zu \x1c-\x01NX\xe7>\x22K\x89\
+\x1e\xad<\x88\xb4\xa11\x010A\xaf\xbc\xa9\xe9\xb4\x8c\
+\xa1!\x10\x00!\x091\x00\x15@-\xeb\x14\xaa\xb0[\
+\x89\xa6\xff\x18\xa6\x1d\x94\xf7\x1cT\xcf\xdd;\x1c\xa2\x87\
+\xecG\x0a\x1b\xc7{\xbc\x9f\xcf\xcd\xe8\x09\xbf\xc8b\x89\
+\xd7{\xcc\x1d\xe7\xb9\x0b+q\xae\xe2\x9fH\x88\xa9\xfc\
+\xb2\xdf-:X\xaey\x00\x0c\xdc\xeb\x1d\xad\x04L\x8f\
+BL\x89\xa9<\xcf\xb0\xfa\xff'\x07\xed\xa6\x10\xfd\xb3\
+\xbfd\x1dwGwGuG'\xc6\x81\xcf1\x12\xf8\
+\x99=\x8a\xed^\x13\xff#\x94\xf8w\x8b\xc9Rk/\
+\xad#\xbe?\xddU\xb2\xd6\xcb\x8c\xe8e0-\x98\x02\
+CK\xd1\xcf\x8a\xa9b\xfbCY\xd2\xb8P|\xf8\xbb\
+\x16g\x06p\xa9\xde\xe8\xafy\xbf\x1e\xe8D\xea4\x8b\
+\x04\x9e\x94\x00\x01\xa5y\xe7\xa4\x84\xc8\x0c\x9fH\x00\x89\
+\x97\x5c\x01\x9d\xee-\xf3}=\xb3i0\x04#\xc4\x0c\
+\xda\xee4Yc\xba\xf4K\xcb\x1a%<D\xb7\x19c\
+\x0e\xc3j\xedy/\xa8\xeb\xdfS\x22*\xe3m3'\
+\xee\xf2O\x9f\xaa\xd6\x18\x85j\xf1}k\x8a\x03\xb6\xad\
+\x1c\xc5\xf6\xe5\x02aLs2#\x88\xb1\xec\xe1\x8f\x10\
+\xb3\xa4\xf0\x07\xc0\xc5}\xa0\xc7\xdc\x8c\x8c\xd0:\x81\x91\
+j\x7f\x5c\x12\xea\xd3kB\x0d\x83\x86\xf5\x8c_\x86!\
+\xa0\xf2\xedn\x1e\xdbX\xeeg\x7f\x9d\xaci\x08\x01\xd0\
+u\xaf\x92\xa5|\xc5\x1a5\x008!*\xcf\xf8I\x17\
+\x86\xe6\xfe$+\xff\xbec\xb1\x1d\x5c\x01\xdf'\x15\xb8\
+\xce\x1c\x9e_L7q\xc2\xdc_)KL\x00k\x96\
+\xd5\xa8v\xddv\x1e#zW\xb3\xcc\xf7\xa5\xf1\x98\x1e\
+K\x1d\xfb\x93q\xc2h\x92\x00\xac\x90\xf8\x9b9\x11\xfe\
+\x96}\x8fX\xa2\x01\x838w)dH\x8b\xe2\xd8\x9a\
+O/\xa91\xe3\xa1\xa5\xe0V\xab\xe9\x93d\xe9\xdc\x87\
+A\xf7cY\x02\xeeiy\xf3~*\xff:\x00\xd5\xc4\
+\x03f\xb2\x85\x98\xaa\x81\xb0\x88W\x88O\xc6\xcca\x98\
+\xf0\xbe\xdf\xb3\x8f\xfe\xbaXIh\xba\xede\x8d\xe2L\
+O\xdb\xdc\xb1\xb2\xd6\xa3\xdf\x9d/k\xf3\x1ek\x05\xed\
+5>\x08\x1fN\x95\x15\x16*\x1f\x84J\x13\x1fh\x89\
+\xd1<c\x025\x02]\x90Zz\xe9\xa0\x06s\x03H\
+\xa4\xa8T\x8dE\xd5\x9c\x80\x86X\x10\xbd\x81\xfc]~\
+\x9e^{*2\xae,Ee\x98\xca\xf1\xb1\x83hX\
+\x8c\xb1\xd9S\x96\xd4\xad\xa1\xf8\xb1\xa1AJ\xa1D*\
+A\xda\xdb\x01\xee\xae\x89\xba\x81\xba\xb7(^\x8b9\xd0\
+\x5c\xe8q\xe6\xc9\xf3\xb9U\x1f|\x89\x11\xc1C\xbdp\
+\xf7\xac\x88S\x1d\xc3\xd5m'K\x0c\x87<\xf6p\x15\
+#?\xbb\xa4\x8a\x02\xbd\x7f\x9arphzn$\x0c\
+\x04\x06 \xba8\x1c\xf7\xb0\x84*\xac\x91\xac\xaa\xca\xbe\
+\x8d[&^\x93\x02\x07\x9e\xff\xa8W=\x12)\x1c\xe5\
+\xb8W\x9d@\x9a\xfb\xc0I9\x06\x00\xf8\xef\xac\xab\xf1\
+\xf8\xac\xb1\xb8\x1c\xd7G@\x84\xb6\x03st9`\x8c\
+\xb0174*E\x04\xa2TRI\xc0\x09\xb8@2\
+\xa16\xd3\x1bH\x22\x82\x9a\xf3X\xf4\x8c\xdf'\x01d\
+?\x08\xe1\xd4\xcf\xdd2\x04\x06\xf1\x5c\xc7j\xe2\xfc>\
+\xf7m\xac\xa6\xcf}\xa3\x92D\x22D\xc5\x13\xd18\xa8\
+\xf9\xf44\xaf\xe0\x04\x07`\x8f\xdbiq\xcd\xa0\x1c\x7f\
+\xc5\x07'b'h&p\xfd\x5c\x0f\x01\xae\x01\xc0\xa8\
+\x84\x12\x10\xf3\xfc\x96\xf1\xf5\xade\xad\x12\x8f%+\xe1\
+\xfdJ\xd3\x95\xd2x\xcac\x5c\x99\xa4\x07\x8aD\x8e\x0a\
+\x0e\xd4rz\xabLm\x8f^P\x12w\x9e\x07\x0c\x00\
+>/\x81\x19\x013=\xe8\xf8\x11\xee?\xeb4(\xfd\
+^\xef\xfc\x1d\xfe\x1d\x80\x81D\x89\x03\x01\xa4\x9b\xdf\xc7\
+/\xf2\xb9\xa8\xa4\xd3\xeb\x0e\xe3\x09\xc0\x8d\xbf\xc3\xfd\x04\
+\x00\x18\x8dQ\x8a}\xc1+\xfb\x06\x00\x82\xf77\x13\xa4\
+\x1c{\x15\x80\x8a\x04\xce\xbd\xb1\xe5\x9a\x06\x91\xb5]\xdc\
+\x0a\xc3sc\x1a\x0a\x07.\xfbd93%\x18s\x89\
+_h\x0c\x88\x01\x80\xe1z\x08\xd8\x01*\x18\xafJ@\
+\xf46k\xb3\x1c\xe6J\x0c\xd4Q\x03\xba!\x8a\xc9\xb8\
+J*%\xecK\xa8v\x16\x8f\x0cm\x0a\xe6|CQ\
+\xe6\x00e\xdf\x03P\xb1n\xf0sc\x15k>\xf7\xa2\
+1\xb5`X\xcf\x00\x06\xf89\xfc.\xc0\x10=\xcfh\
+\xd5x\xdf\x86\xfa\xbd\xc7\x9c\x95$}h\x89\x000?\
+\xcf\x89\xcf\xf9N\xbc>`\x0a(\xe7\xa5\xdfWu\x12\
+UJ&\x9f\xb7\x96\x07\x00\x07\xfe\x9e\xdee\xc6\x832\
+\xd6\xd2T\xd7\x002\x18\xe3\xe9}\x8b\x98]P\x86\x11\
+cb\xbe;\xcc\x08\xc4\xfb\x08HG\x94w4P\x04\
+\xdb\xd5\xca&\xd4U*Y\xc7\xc8Z\xc55\x00=\x80\
+\x8cQ\x5c\x11\xad\x83\x8c\x89b\x5c!\xfe\x12\xe0\x8fq\
+p\xbe\xefq\xbd0\x9dD\xb5U\xef\xff\x1a\xb2tn\
+\xd1\x13\xecD\xbf\xbfJV^\xb7\x905M\x99\x98z\
+\x80\xa6\x10\xeb\x08\x7f\xc3\xe7\x1e\xabF\xab\xc2\xb9[\xaa\
+,\xf3<\xd9o\xec\x1fZ/\xcdp\x88\xfd@A\x82\
+\xf1Z\xf8+\xfc\x0a\x09;\xdaM<7\xb7D\xc4\xb4\
+\x15\x12\x06\xfc\xb4\xe3\xb1\x18\xb7\xe7\x82Q\xfc}\x98I\
+\x88\x95\x19\x10B\x8b\x22\x12\x04\xf7b\xc7\xbe\x008\xc0\
+?\xf1\x9ch\x8d\x81\x89D/2\xaa\xdb\x1e\xbbI\xbc\
+\x17S\x1c8\x9f\xcc `\xaa@$\xe8\xbe\xdf\xccK\
+\x9f|\xc1cn\x01F\xc7\x0c5\xf6\xb7\xd7[\xec\x07\
+\x00\x01\xd6\xd3[\xfc\x9c\xd1\x0a\xc0\xbfp?\xcf1c\
+\xf4\x8ffX@\xa5~T\xd6\xe2#\xee\x1f\xa2\x87\xdd\
+\xd9\xb2\x94hY\xcb\x09?5\xb3L\xb1\xe2g\xba_\
+\xc9\xaa\x98\xf7&3\x9b\xd4\x84}\x10I\xb4\xd6\x06\x9a\
+\x08\xb5\x15\xf4\x81\xf2\xf3O\x90\xb5\xb8\x16\x06\x06-~\
+hb\x88\xff'\x06`\xbd\xaaO\xa4\xfb\x01\x10rc\
+-}\x04E\x9d\xefk\x1c\xbc\x97\x0b\x14\xe7%\xca\xb3\
+[iP\xcd\xaf\xa7\xe5\x92\xe9|$\x1e\x22\xe1D\xf3\
+\x83u!\xaf\xbat\x02\x86Hh\xedG\xbb\x13\x8a\x9d\
+X\xee\xc3f\xb2\xb2/\xd7\x96\x95\xe3\xf02Y\x8b\x9f\
+\xa7\x1f\x93\xa5\xc4\x9f\xb8\x978\x81s\xdb\x09\xfd\xf4\xa9\
+\xb2\x14\x0f\xc0\x5c#\x1ed\xea\x97\x19\x190\xa5\x19\x1f\
+\x18\x0c+~\x0f?\x0e\xd0OK\x17\xe2\xe7\xfb\xc9\xd2\
+\xfd\xe0\xfc\xe0|\xa0\xc2\xcf}\xc2/\x00\xc4\x22&\x8b\
+\x06\x09\xfb\xc6\xd7[\x13\xd4\xf2w\xfb\xd5ei\xdc&\
+\x9a1\x06z\xa2\x10\x8bX\xb8V\xfd\xb6i\x1a\x8c\xfd\
+F\xb7\x94\xac\xbc>$k\xf1J\xbf\x81\xac\x8d'\x0d\
+\xffI\x85\x9a\x160\x18\x17\x00H\x1eW\x08\xd3-\x0a\
+\x97\xf8\x15\xb7\xd6\xd4\xb1\xcf\x1b\xb5\xc26\xe3H\xa3\x10\
+\x06p\x04\xe3\x89\x028\xad\x89\xc4\x91\xb4\x80\xd3\x9a@\
+\xab\xce\xbe\x1e'\xce4\x04\xc6'\xc3\xe4\xa5\xa5\x8eq\
+\xd9\xc4ULm\x82!G\xdeB~J+\x18q\x02\
+\x85\x1e\xfc\x1e\xf1\x1b\xe3\x1f\x01\xea)\xe0\x11Ws\x9e\
+3\xf6\x94\x021\xd3x\x9cW\xcf\xce?\xb5Xy\xa0\
+3\x8b\x16+\x09\xc3\xcce\xb2\xf2>+\xc9R\xe5\xff\
+\x9b2\xab\x07~\xb6\xfc\xdc\xf5\xb2\xd6sT\x1d\xe0Z\
+I$\xea\xc9\xeeyg\xfe)\x07\x16\xa2M\x04x\xfe\
+\xe0\xa11\xb0\xa7\x91+\x90f\xabP\x87\x18\x10\x89\xeb\
+X4\x0b\xe4\x1fut6 \x01$\x158\x0el\x0e\
+\x9a\xb1\x88\x10\x15}!\xb0+\xbb\x02{IB\xa4\xa1\
+\xfap\x1d\xa6D\x065R\x14\x97-S/\xa1\x1fH\
+\xa58\xfe\xd5\x1b\xfe\x8c\xa4\xaa\xcf\xf5,\x5ckg-\
+\x10\xc7\xa1\xfa\xfe\x90p\xd7\x80\xe4\xd6\x14x\x91\x00\x80\
+\xac\xb3\x90Pw\xa6W^\x01\xf7\xf2\xfe\xf9\xb5S%\
+\x87\xb9\xf4$V\x8c\xcb\x03\x81\x84*\xcd\x81E\xe2\x8c\
+\xaa\xb0\x91\xcc\xe8\x01\xd3v\xd9#\xddg^qD$\
+\xda$\xfe<\x07\x1c\x16\xaf\xe3J>\xcfo\x5c\xd1'\
+\x80\xe1se\xe6\xc4\x92\xe9\xfbq\xef3\x81:\x89\x11\
+\xeb\x80\xcf\x09\xb5\x90\x8a\x1f\xad\x1d\xff\x17P\xc1+\xeb\
+\x8d\xf7\xf1}\xc4\xe1\x86F\x06\x22W\x88\xfb\x8c\x81\x1e\
+\x02;\xee\x07\xef\xc7\x86'P'\xf1Xo\xa4F?\
+\xbe\xff\x5c/T#\xc6\xe8\x100\x93\xf0\x13(\xdd\xe7\
+\x80\x87\xbf\xc7A\xe8\xb9\xf1\x91\xd0\x22\xcaG\x82\xc4\xe7\
+\x80\x027R\xef\x8d\xe7\xc8\xf5>d\xc6\x02\xda\x0c\xac\
+;\x12C\xc6\x16\x02\xcc@\xf5E\xfc\x09\x91\xab\xed<\
+'\x9b\x03\xe8\xbf\x86@Y\xfc\x8d\xca\xe0\xf8\x9c)a\
+\xb4\xc6\xe0(\x11g#Q\xe4\xa0\xc1\x8f\x90\xa2\x1fk\
+8\x00\x00 \x00IDAT\xc0\x93\xe8\xb1\x1e\xe9E\
+\x1fk+\xb0\x1ey~\xe3\x0a1\xeb\x82\xfbJ\xef\x1f\
+\x013=\xde\x00\x92\x1c\xec\x8c\xabd\xdfp P\x09\
+\xe6~\xe1\xa7\x1a\xb3c\x00\xb8\x1e\x1e\x89`\x128\xf1\
+9Y\x1f\xb4\xe2\xd0kJ\xa0\xb1\x8e\xd7\x19\xbd\xd3\xa8\
+b\x1b@\x8a\x04\x87\xfd\x8d\x0a8\xd7?\x06\xaa\xf0\x9f\
+\x00\x0d<g\xe6j\x83T\x83\xb0\xaf\xe4\xf5~\xb1\xb5\
+9\x98\x02\x82&\x0b\x955\x0eP\x12\x1f\x18\x1bh\x98\
+\xb87\x1b\x86\xc1t{Y\x12\x932p\x15\x09)\x9a\
+1\x04\xa2\x00+\x5c\x07\xfb\x82\xfb\xcaAL \x07`\
+\xcd\x1cfz\xd8\xd9\x97\xb4P\xb0\x7f`\x84@u\xc7\
+\x0f\xd1R\xe1\xca`$\xaaW91\xbeo\xc1V\x9a\
+\xe99\xb2\x06\x5c\x07S\x82D\x93}\xd6\x12\x90\x81\xb9\
+\x04\xe3\x85\xf7\xe1\x1c\xe1\xf9 \xd2G\x85\x89s\x131\
+U\x18n\x9c\x93\xac{\x12#ZtX\xff\xf85Z\
+\xc9\xa8\xf4\xd2B\x07\x90N\x02\xc6y\xe9\xebAC\x22\
+\xe65sN9\x11\x0e\xff\x0e\x85\x98\xbf3\xbe\xff\xec\
+C\xee\x0b\xfb\x88\x0a\xcd*\xb2\x16\x18\xd7\xe99\x9fL\
+\x22\xa4N\x1c\xea\xf8\xae\xe5\x1bP\x83\x1fa\xee\xf3\xf4\
+m\xb24\x8d\x82B\xc0\x98\xcaN\xc0\x08S\x82\x84\x1b\
+*9\x00\xa0E\xecHd'7\xcb\xd2}C\xe4\x19\
+\xe6\x1a\xbd\xa6\x00\xf9\xd66\x89\xeb\x81\x1aLB\xc3\xf9\
+\x83\xdf\xc3\xdf\xf0\x5c\x89\xdf\x10\x85\xc5\x0fR\x98\xa1\x10\
+\xe3\x04\x92\xf5\x1d-\x09\x00+\x8c}\xb4\x9f\x88\x1ey\
+\xde\x0f\x7f\x8d\x7f\x01\x88E\xec\x8f\xa9F\xd6.\x08\xea\
+\xfa\xaa\xb2t=L;\x00\x88\x07\xc8\xa65\x07\x0d\x00\
+\x80Fzn\xff\xe9\xc2\x12\xf7\x83\xfd\x82?\xa4E\x81\
+V9D|\x8f\x1a\xe2\xc2\x18+\x0c\x00\xb4\x9f5t\
+~5\xbc\x1f-+1\x86\xfa5\xc3\xb9\xa5N\xfdZ\
+\x99\xdfX\xd64\x85\xba?\xc8\xdcZ\xb8m\x03,\xab\
+\xaa\xff6\xad\x05W\x1d\xfd\xb5\xa7\x7f\x93n\xa3n\xa3\
+:\xce\xf5\x16\xcdQ\xd7PW\x8duE\xfc;\x18\x07\
+\x16\x81\xed\xd6\x97%m\x04\x8b[\xa2\x89\x10\xads\xc7\
+\x17\xfbf\xd2\xe4`\x0a\x16\xeb\x18\x7f\x06c\xc7\x0c\x1f\
+\xfen\x8cw40\xc3X\xed\xda:\xf2\xe14}\x84\
+s\x95\xf8\x08\xff\xeas\xabV\x98?\xeas\x5c\xd7q\
+\xb0\xac\xfc\xf3\x13\x8b=\xa9\xb5\x0a\x86F\xd0\xce\xd5\x04\
+\x0c\xbe\xafj&<0\xf4\xfeGB\xcc\xf93\x1e\xd3\
+\xf8\xe5\xda\xd5/\x0d\x9c:\xbd\x22\xfe\x1e\x00\xa5\x81\xb4\
+\xfe\xcd\xb2VAf=LW/\xb6F\x9a\xa6\xa4\x82\
+\xe1\xef\x1fG\x9b\x89x\x94\x82\x05\x22n|\x0e\xfc8\
+\xad\x87;xJ\x11T\xf0S=\x06\x8f\xf3\x871\x80\
+n5\x08\xe0uT\x11\x0e&\x96{\xfc5Dy\x9a\
+\xc5\x85\x9dh\xcf](3\xe0\xb3\x89\xfd\xf5\xde\xed|\
+\x008\x98\xbdGV^\xbf++\xeb\xaa\x97\xa5B\xab\
+\xc5>\xab\xc6\xc2Z\x09`g\xdc\xeb\x81\xb2\xd6z\x05\
+\xf3\x86\xeb\x83i\xd1\xef\x22K\x0c2\x18A\x16o\x9c\
+\xbbCf\x06\xfbif\xee\x1e\xee\xeb\x5c,Q\xf2i\
+I\xf3\xef\xc5t\x07?\x87\xe9b\xc3\xcfG^@\xbc\
+?\x9eN\xc5\x98\xdco\xc8\x92x\xac\xfdo\x9cS\xf6\
+\x8f\xd3\x13d\xedza\x04L\xcc\xfc\x8dx\xcdL\xaf\
+\x88\x7f\x01\xd2\x01\x1eX\xaf\xc4\xddL\x7f\x22OF\x0b\
+\xcd\xf9\xc8lE\xc2\xbf\x9e\x90k\xf5\xc0\xbc89\xd6\
+%e\xcd\x91\xd2\xfb1\xb3g\xb1\xb2Agn)V\
+\x1cIw_\xb1\xfb\x9bXZ%\xd2/\x9bT1\xdd\
+\xfb\x15\x89>\xbd\x8a\xdc8\xa83W\x0f\x88\xed\xbc\x0d\
+\x5c\xc1\xe6\x82M\xa5\x88\x0a\xff\x98*\xef\x85\x1ebb\
+\xf4\xf6\x8d{[Ix\xf8}\x02LzJ\xf9\x9e\xf7\
+\x01\x89'!u\xafWl\xc4'\x06\xd2=$\x08\x0a\
+g\x97M\xa2a\xf4<\x92x0\xeeD\xe1,j\xe1\
+K\xa4\xcfCb\x85\xca\xae\x10\xb9\xf2}\xbfc\xb1\x1d\
+\xda\xbc\xd2\xda\x83wd\x9b\xa20\xf9\x85\x06x\xa5V\
+\x03*\xbd8\x124\x0c@\x16\x1dXD\xcf\xb6)\x8e\
+\x0bP\xb3N\xf7s\xd9(!\xd8$r\xcc\xd3\xa4\x17\
+\x90\xf1\x1d\x04v<\x97\x11\x12\x19bb\xfc\x1c\x09\xc2\
+\xb8b:\x9e\x8f=\xae\xe4?2\x9a\x1bO%\x1f\x07\
+\xcaA1\x06\x02\x08d\xc6\x89\x0f\x81=\xeb\x04*\x0d\
+\x8e\x93^R\x1c-\x09\x18\x89 \x01\x0f\xe2i[\x99\
+\x02\xcd\xba\xe1\xefB\xc5\xe49\x93@\xf0\xef ~c\
+\xc6\x0c\x81\x10\x0c\x04>7\x81\x0c\x89,\x89\x1b\x9f\x87\
+\xbfO\xa0\xed\xae\xaf\x18\xb3H\xcf8\x011_\xecK\
+\xeeo\xa3\xee/0\xfd!\xc4\xbbx\x7f3B\xa8\xb4\
+\xc5\xf3\x07Ph=\xff\xc3~\x03p3\xc50z\xa8\
+\x19\xff\x08\xe0aF\x0b\x22>Q\x01\xbec\xd4B@\
+`m\xb1\xc1\x98_O\x02\x0a\xf3\x82\x96\x06T\xe0\xb9\
+\xbf\xe3\xb1m\xdcG\xee\x0f\xc0\x13\x9f\x8b\xe7\xc4\xf3\xe0\
+`f\xbc\x1c\x0c\x19\x0e\x0a\xff\x5c\x8c\xb5b}p\x9f\
+\xa8\x00\xf3\xbc\xa0\x9e\x81<\x938\x8f)\xfb$\x06\x00\
+8\xcb:`&\x01\x02\x00`\xdfp\x1d\x0d\xc8\x19\xf6\
+\x17\x81\x1b\x95\x1c\x10\xf3\xd6\x0a2\x04\x1c\xee\xd1}\x8c\
+_\xe5:\xf9\x9e\x7f\x87\x92\xees!\x9e\x07\xfb\x9e\xfb\
+\x0c\xe00\xee\x89F\xd4\xcc\x81VP\x9d\x09\xa8\xe9\xa9\
+\xb6\x0at0Z,\xca\xc3\xbc_\x0e\xd4P\xe1\xdd\xd8\
+\xfbgm\x8bSmj\xa0\xc0\x14\xf2x\xae$\xb60\
+\x97H\x98\x00t\xf0\x17\x8cC\xf4\x98L\x11Ek\xc5\
+\x1b\xcd\x15z\xf7\x11M\xe4\xf7x\x9e\xec7\x00\x07\xee\
+\x8f\xf7qhm\xbc\xcf\x81\xab\xf7C\x09\xa7\x07\x06\x06\
+\x15#\xfe\xfe\x19\xf6\xe3$\xb8\x1b\x9a\x91\xf1T\x03\x9d\
+0\x0dXo\xacC>\x0f\xda\x02$6n\x19\x8b\x7f\
+g\xda\x0d\xbd\xc7T\xaa\x01\x1cHp\x01\x0a`:\x00\
+\x8c\xd2\xd2A\xa5\x84s\x97@\xd6\x89s\x14\x12\xf0\x7f\
+P`9\xafI\x5cal\x90P\x03tS\xc9\xbfH\
+\x96\x12\x13S\xc4c\x1e4\x011\x80:\xeb\xd0\xc0\x05\
+\xe3\x80\x03\xc8\xe0y\xf1y\x0d\x00\xe0\xe7\xa7/\x915\
+q\xc0\x18G\x05\x05\xd5\xad\x09\xe17\x10\xf7Cc\x89\
+\xb9\xe3h\xc2\xd0\xb2\x00\xd04\xae\xfc\xd0\xda\xf8)Y\
+\xab\x80\x93\x00\x03\x80\x01\x9c\x02l0E%\x0a=\x04\
+\xb2\x04\x9e$\x08\xf8\x0b\xa8\xaa\xac\x17*\xa3\xde\xef!\
+\x8e\xfb\xa5!a\xa2\xd7\x9e\xb8\x12*5\x158\xa8\xf0\
+\x01\xb4\xa3\x11E\xcb(\xe2j\x00\xf4\xf8W\x8f\x8bF\
+|\x0c\xd1<\xfcW<W\xc6\xc0\xa2\x9d0V\xe9\xc7\
+o\xd0\x92\x82\xff\xbf`\xf8<%\x1c\x1f\x98ln\xb9\
+\xa0\xe5\x83\x0a'\x14\xee\xd0\xba8`\x98\x96\x15\x94y\
+W\x90IX\x00\xb4'o\x91\xd5\xcf\x7fS\xfd\xfcn\
+)\x89D\x1d\x11@?\xc7\xee\x11Yy\xbd\xb6\xd85\
+f\xb2\x94\xf8\xab\xfb\x8d\xac\xbc>(K\xef\xf3\xe8d\
+\xfed~\x15I\xac\x89{\xb7\x87,i,H\xfcz\
+\xe94.\x11\x06\x82\xa9\xd7\x00\x121.\x13\x86\x8e\x00\
+\xea5\x0d|\xbc\xd9\xfb\xfd\x07\xe9y\xab\xb0\xb1Jj\
+eT<|~\xeb\xd5G\x15>\xa62\x00\xbc\x11w\
+X\xe4n\xba\x93\xac\x01>16\x8d\x9f\xa3\x90\x02\x00\
+$\xa6\xe1;\xd2t\x14E\xeb;\x18H8\xc5\xf1\xc6\
+\xfdI\x9b\xe6\x8dn\xfd;\xd1=\xf0\xb7;\xde\xbbt\
+\xfa\x87\xaa\x8d\x05C\xc4\xfb\xa0\xf6\xa6\x9f\x91\x98Y\xd6\
+\x0e`\xddN/\x94%\xbf\x0a0,i\xb9/\xa6\x96\
+\x86\xb7\xca\x1c?-\xd3Z\xdf\x1e\xd3\xdaI\x8f\xba*\
+\xdd\x17<\x8ef\xd2X\xdb\x07\x91E\x8bf\x060o\
+\x7f\x15\x00\x0d-\xc8h\xdc\xd0\xba5\x9a\xc6\x15-\x05\
+\xb9p0i\x05\xdd\xb9[\x8a\xdd\xdc\xc4\x0ek~W\
+\xce\xa7n-Y\xdb\xdf\xfd\xb7e\xc9\x8f\x00\xd4\x13\xef\
+3u\x87<\xd0\x9aY\x93\xc5\x5c\xa8B\x84\xdb\xd3\xdf\
+\xba\x8f\xcb\xca\xdf]\xb2X*\xc0\xc54\x063\x0bb\
+\x8a\x89\x01\x89\xca\x18\xdb%\x15R)\xd0\xaa\xe2\x7fS\
+\x8a\x97}\xdeGO\xff\x1a\xd3gU\xe0\xe6\x8ar\xba\
+_\x91Z\x04\xacM\x13\xfbG-1?k\x00\x02\xe7\
+P\xb4,\xecR\xad\x9d\x1b\xf8\xefq\x81\x01\xa6\xc4\xe9\
+\xb2\xf2\xfb\xf5+\x01f\xdeg\x01l\xb9\x95\x89s\x8e\
+\xe9\x13\xe4\xab\xd3\x0de\x8d\xa9\x85\x08\xeb\xec\xccJ\xb2\
+\xe4\xd0\x8d\xf00O\xb4;XV^_+s<T\
+\x16\xc0\xcci\xc5\xa4\x05\xf0sY\xaa\xd0\x1b)\x9a\x1e\
+\xee\x1e\x09z\xa1\xcew\x8f \x08\x05\x0f\x9e\x8a5\x88\
+*\x09+=\xfeT\x0a\xa9ts\xd0\x83\x00B\xed$\
+@\xe5\x80\x22p\x22A#\xe0\x1c\x8f\x09\x04q\xe2}\
+\xd9`cuu\x02(\x0e\x22(\x18\xc8h\x10(s\
+}\x88\xc4Y\xdc(\x1c\x06\x81\x967P\x0d\xd8\xd7O\
+\x95S\xfe\xdd\x0e\xa4\xf6\x14n\xda\x00\x8a\xee\xa5\xc5^\
+\xd6\x02\x9f\xda3wS\x0a\x0cH\x80\xa0\x12\x13\xe8P\
+\xd1\xca\x81\xde2\x0e\xd8WN\x01D\xa6\x1c?\x94*\
+\xccT\x9c\x99\xc7\x89\xa3\x80\x1a5\xa6^\x8e\x02\xf9\x10\
+\xf7\x03\x89\xe29\xf1:\xaa\x80\xc6\xf3#\xc0\xe0\xdf\x09\
+\xc8\xd98\xe3qq\xfcw\x12\x19\xfe\x1e@\xc0\xf8\xfd\
+\xc6\x22\x82\xfc\x1d\xee\x03\xdf\xa3\x0aM\x22A\x80\xcd\xdf\
+\x81\xe1\xc2\xbaF\xed\x7f5'6P\xca\xa8\x88h\xbc\
+\xe2bI\x14\x8a\x84\x92J3\xf7\x93\xe7\xc7\xba\xe2\xf3\
+\x93(R\xb1E\xdc\x90}\x82\x86\x03\xeb\x9f\x04\x96\xfb\
+J`\xc7\xc1A\x22\xcb\xfd\x18\x8f\x8b\xe3k4m \
+*\xac$d\xa8'\xbb'\xb1\xa4A\xc3\x81\x88\x98 \
+\x0e\xee\xfeQ\xe0J\x82\xf1\xde!\xb1\x99\xf7V\x8b\xca\
+\x9da\xca\xb6\x11\xe2\x18G\xf3=Y\xedE\xad\xf3r\
+c\xae\xea\xc6\xb2\xea\x97\xea|\xe4\x10\xbd\xa2\xb2\xee\x9e\
+\xe0\x00ZH\xa8\xf1\x1fm\x9c\xda\xe0/\xd8G<g\
+\x02u*U\x88-\xa2\x02\xce\x9cr\x9e\x13\xc89\x15\
+=(\xa0\xb4&\x99\x92\x17\xd4l\x8f\xcf\x89u\xf4*\
+W\xae\x16s@J\x02\xc5\xd73\xfd\xdc\xf8\xfb\x00\x02\
+\xac\x1f\xe6\x9b?\xe4\xc4\xdfbz!N\xf7\xa4Q\xcb\
+\x15~\x0f\x00\xe1\x0dN\x84\x08HX/\xbc\x0f\x95\x1b\
+\x12\x96%\xfcw\xd6\x0bm\x96\xe1\xfe=#Z\x80\x86\
+\xfd\x0f\x10@K\x03\xf7\xd1\xcf%\x02w\xb4:<\xd7\
+;\xa8\x8aP\x1d9?x~\xf8\x07\xfc+\xe3\xb7\xd8\
+/\x8c\x93\x84\x22\xfa\x0f':kYD\xf3\xf3\xaeD\
+25\xe2\x8cA\xf3f\xb2\xe3\xd0{\x0f\xf5\xbc\xf6\xac\
+\x9e\xd8(\xb9\x8fa\x800\x06\xd1\xbd{\x93W\xca\xda\
+X?\x12.\xee\x8fN\x81z\x0e\xf0\x1cXg\xdcg\
+\x06\xc5X\x84-\xc4\x9a\xa8\xc4Q1G\xf5\xd9\xfb6\
+\xe6\x9d\xa3\xd9\xb1\xa5\x99\x1b\x88\x92\x92\x90ZS#\xd6\
+;\x81\x90[8\x98\x0f\x1d- \xfc;~\x89\xfd\x04\
+ \x00\xf0\x83H\x11S\x04\x0c\xcc\x87\xff$\x01g\x7f\
+\xd3\xbaA\x05\x18?\xc4T\x96o\xc9\x12\xe3\xc3\xef\x17\
+c\x81\xf9b\x9f\x8c[+\xa0\x96\xd3sk\xd1\xa7\x18\
+C\x09\xc0\xf9?\xee\x09=\xcb\x018\x01\x15S\x04`\
+\x14\x18\x90\x8a\x16E*{PlaJ8\xe0Bu\
+:\x98\x07c\x91\xc5q+\x17~\x84u=\x12\xaf\x0d\
+q:*\x90\xc4/\x004_\xb7F\x0b\x89\x16L\x0c\
+Zt8o\x00TaX\xb92\x07\x83\x84\xd6\xc6\x10\
+}\xe4\xdca\xcc$\xeb\x9e\xcf}@\xb5V\xf9f]\
+Q\x800\x155\x18\x1fL\x95q\x85;(\xbdh\x81\
+\xb8\xf5\x01\xd1D\xb4\x9b\x02\x18\xa5g\x1b\x00\x01\x00\x08\
+\xa6\x0cq\x0f\x89\x06\xfe\x1dM\x01\x12\x1e\xa8\xfc\xf8\x07\
+\x005z\xec\xcdl\x09\x7f\xc4>\xe4\xdf?oM \
+\xc4\xe5(\x08\x00\xacx=\xe1\xcf\x19G\xd7\xfd\xb8\xfb\
+Q\xf7\xe3\xa6\xa5\x13b\x81\x88\xda\xfd\xfe\xff\xd3u\xe6\
+\x81\xbeN\xd5\xff?\x9f\xe7s\x90y,S\x92y\x9e\
+\xe7\x88\x1bQ(\x15\xd2\xa0RJQ*\xc3\xb7B\xc6\
+&*S\xa2_D)\x92\xa1\x22\xc9\x18R\x91P)\
+T\x86\x0a\xa1\x14\xc9,\xf7\x9e\xe7\xf9\xad\xb5\xf7\xfb\xb5\
+\xf6>\xfbr\xd6\x1f\xcf\xfd\xdcs>\x9f\xcf\xf3\xeca\
+\xed5\xbc\xd7{\xb9\xd8u.\x939K\xd7\x83\xee\xd3\
+&6n\xdd\xf9&\xe7\x95\x84Pw|wBg\x0e\
+gw\x9f\x87\x0a\x0a\xa2\x81\xf6\xc5\xdd\xa9.U\x80\x81\
+\x80\xc0\xdf]JF\xbf;\xd0\xa5 \x03\x82\x14R\xfb\
+(\xf6\x8d\xaf\xbe\xbfU]\xa8\x08\x08\x110U\xe2/\
+\x95^\xfdT\x99\xfe\xc3\xca\xeb@\x94\xea\xfc\xe1\xf7\xc9\
+\xca}\xa0p\x8e$}{\x5c\x09\x18\xa4\x84\x97\x07T\
+\xcfs\x91\x1d\xe2\x19\xe15\x5cL}\xechb\xebk\
+\xea.\x93\xbb\xed\xffwp\xa9\xbas\xdd\xad\x00\xb1\x90\
+9\xfc\x7f\xb0\xb4+Q\x12\xc8I\xda?\xb2\x1f\xf1'\
+\xf0#(9\xfc\xa6K\xd5v\xd3\x91\x89\xd7W\x5c\x06\
+\x04~\xf1'\xb0\x83\xb0\xb7\xb0;\xd9O\x90\xdd\x92\xc0\
+\xe2\xff\xeb\xeeX\xb3\xaa\x00<\xe7\xb22\xcdQ\xeb\x0e\
+\xd2\x0c;\xc7w\xff\xba\x95\x1f\xc59\xd6\xb6A&0\
+\xc1\xf7\x93H\xd8\x22\x15\x03N\xf43\x5cJ\x0d\xfe\xd4\
+\xee.v\x9b_s\xa9\x02]\x9fp)\xed\x04i\x93\
+\x17\xed8IX\xd0\xd6\xf1\x00A\xd7\xe5\x07v\x1fw\
+\xb1\xf7o\xe4R\xbay\xa4D\xb5\x07\x04\xbf\xedb\xbf\
+\x7f\x87K\xf1[\x86\x0d]\xec\xff?\xe8R\x90\x84\xd8\
++\xc3k\x87mS\x80\x96s\xeac\xb9T{\xd8e\
+\xd8\xd5\xc9\xf8\xfag\xfbg\xfag\xaa\x80\x08]\x1c(\
+\xf1x\xd6\xa5$`\xa2\xc4\x11=sF\x92\x89\xfe{\
+.%\xa0A\xd7\x89h\xa7\x0d\x17\x1d\xfe\x04\xc8:q\
+\x8d\x11\x80\x8ev\xaa*u\x05\x11\x10\xedVu%\xa0\
+N\xe9\x1a$\xa7\xc3\xa5.f\xd6u\x8f\x9a<Rj\
+\xdb\x89\xd4$\xb5\xbe\xbd\xd8H\xcd \x1f\xff\xc2\xc46\
+\xfc\xf8\x5c\x93\xf3*\xf6Z\x22G8\x1e\x90>q\xa0\
+\x89<- UD\xce\x81\xa6\xb0\xb09\xa8\x81\xbc\xe2\
+8\xab-\xc3\xe8\x11\x97\x04\xe1\xb8xtq\xd5\xae\xf0\
+\xda\xfe\x9a\xfe\x9at\x00d\xc8\x1f\x8a\x1f\xc7\x07\x87\x03\
+\x08#\xd0T&\x86\x0c\xef\xad9\xe2\x17\x99\x05\x1cW\
+2F\x8a\xa4E\xa4\x1c\xc3\x0a\xe8e\xd3n.\x99\xd9\
+OW\x1b\x14\x87\x99\x03\x85\x83\x8b\x9a\x0c\xc6\x0f\xc3\xca\
+\xdd>\x7f\xde\xe7Mf\x8a\xfc\xe2\xc4\x0a\xfa\xe22(\
+R\xf5\xa6\xca0\xc7\xd1\xc3\x11\xc7pg#\xe3\x80s\
+\x1f\xca\x18\xc3\x12\x19\x07%\x19@\x0c9\x0c1\x02!\
+\x1c\xe8m$\xd2\xb7\xe9\x9cU\x84K\x81\x1a8\x12\x02\
+\x0a\xc8\xe7\xb5\xed\xb1P\x008\x22<\x17\x0a\x12\xc3\x86\
+\xf7\xe1\xa8\x03\x0dE\x81\xf2\xfd(,\x9e\xab!\x81\x8c\
+\xd7\xfc\x1d\xdf\x8b\xc2{\xaeq\x5c\x99g\x14iK\xd2\
+\xa6\xc0L@\xb0\x08\x80}X\x06\x82\x0cz \xef\xb1\
+\x8f\xf8\xfe\xb6\x0f<\xf7\xc9~\xe25\x81\x0e\x9e\x9b\xdf\
+\xe30\x10\x90ZC\x81\x80\x15\x14xX\x5c\x99\xdb%\
+\xb5NP4\x0b+`\xb3\x8a\x1cG\x9e\xb3%\xe7\xe3\
+\xffyM\x80\x82\xd7m\xdf\xd9y\x9b\x92\x06\x02\x0d\xcc\
+#\x0e\x84\xc8\xaeF\xef\xcc\x81\x04\xa7\xd6qr\x9d\xfe\
+\xd0\xfe\xb0\xfe0A\xe7VL\x90\xad\xb9\x13d\xeb\xef\
+\x99{\xc0_\xa5\xd7\x8a\xa0w{\xb9\xd8u\xb3\x0c\x99\
+\x0c\x83\x97\xf1A/45v\xb1\x1eA$@\x9a\xc6\
+\xf3MFW\x84\xbc\x0e8\x80q|(\x95\xd9E\xe3\
+\xf3\x06\x05.9H\xf9;\x1cU\xf6;z\x11\xc3\x87\
+\xda]\x22\xe4\xdb\xab6\x97yW\x86\xc2\x9c\xc3|\x85\
+\xc3\x03\xe4\x07\x19[\x10*d\xcc0\xd0Y/\x90\xe6\
+\xe1\x88\x13px\xb2Aj\x80\xf4\xa0\xd6\x96\xfb\x07I\
+\x81\x01D \xe5\x9fQ\x9b\x99\xd7\xcd\xaa\xd2gM\x0d\
+z8\x10K\xabkB\x838\xc0P\x0d\x83^\xfa>\
+H\xf0\xc4\xc2\x1dl\xf1\xca\xdcE\x86\x1d\x12B\xba\x13\
+\xc0\xaa\xffD\x95a\x1aW\xc8\x03\xb8ZD\x1e\x95\xcc\
+Y\xcf\xb0\x1d\xe1Re\xb8e`\x0fG\xb8T$t\
+\xd4L\x13\xd0\xc1\xc1\x13\x09h\x18\x82\x04J\x18\x0f\x95\
+VDmcY\x97\x99\x9bf=\x05\x06(\x05S\xe6\
+\xd1\xcc\xd0\x94\xe1\x8d\x1f2\xb6_LEz^S\x99\
+!\xe0\x0fd\x03:\xd65\xa5.\x94\xce\x10\xe0e\xfe\
+\xd9\xa7 d\xc8\xa4\xc9\xa1\x8b\xfd\xc3z'p\xc3y\
+@\xe6\x9c\xc0-\xe7:$p\x94((\x90\x17\x99\x0f\
+\xd6\x15\x19x\x0c`X\xd7y?\x01L\xd8\xa3aK\
+g|\xe8\x82B\xcd-\xfb\x16;\x03H?5\xe02\
+\xe8\x87s\x5c\xaa\xfb\xf8\x81J\x0c\x8e\xcam\xecf\xdb\
+Gm7\x96o%)\x06\xbd\xec\xa0h\x1b\xc9|\x13\
+\xa0\xe7\x9c\xe2\xdc\x80\xb3\x87q#\xe0\x8e\x1d\x02\x17\x0b\
+d\x5cj\x0b\x17\x8e<z\x19\xc7\x82\xf7s\x8e\x80\xc0\
+#\xa3\x09\xf7\x91j\xbf#C%\xfd1|\xc4\xa5\x82\
+\x96r~\xa2\x1f\x987\xee\x1f\x12U\x90\x1e\xecs\xf4\
+*\xeb\x93s\x02G\x85\xe7\xe6\xdc\xe2\xfd\x9c\xeb\xdc'\
+Pt\x05\xd2\xb0\xbf\xc2\x11G\x0f\xe2\x90\xc2\x82\xce\xfb\
+i\xd7\xa8y\x0a\xf2;\xa0\xc5\xeaj\x12\x01\xb6\x9b2\
+r\xc5>-w!\xd0~\xa6}e \x09\x18\x1f\xba\
+\x02\x5c9\xba\xca\x91\x98\xc1\xaa\x8e\xfd\xbb\xad\xb8\x15T\
+\xe2\x14,\xfcW\x8e\xae\x18]Q!0\xf9|9\x10\
+\xdd\x95.v\x9d\xe1b\xd7_\x9a\x98\x03\xd9m\xebR\
+e\xfa\x150\x8b\xbf_\xb0\x9b\xbfs\xbd}E\xfe\xfc\
+\xeew.v\xfd\xb1K\xe58)q\xd0=\xeeR\xd5\
+\xfeK\xffR\x22\x80\xa3\xc1\xba\xeb\xb61\xd9Z\xa4p\
+\xb7U\xdc\x14\xd4\xfeS\x1a@\xbbo\xf44\xfb\x05;\
+\x9d6\xe4\xd2\xd7\xc9.zV$\x9c\x1bW\x01s\x12\
+\x5c\xe8\x9d\x9f\xb8\x94\xf3r|\xb1\x8bJ`l\xfd\xf7\
+?u)\x1cA\xfd\x19.\xb6\x1c\xefu\xb1\xd7\xeft\
+\xa9\xfa\xa8\xaf\xae\x8c-\xe7\x01\x082\x02{$\xfc@\
+\x9e\x9c\xefR\x95H\xb5\xe7\x03\x080\xd6\x1d,\xf0\xe6\
+\xbd8W\x03\xa4\x8e\xe1\x00cg`\xa7\xa0\xefZ\x92\
+\xe4\xb6\x1d2v \xf6\xaa\xef\xaa\xb9\xab\xf3\x9b\xfd\x04\
+\xc2\x82.\x0c\x90\xb8\xaa-^:\xb5\xee\x94\xfe\xa88\
+\xa0@\xce\xc4\xb9\xc4\xfd\xf0\xb9:\x97\x87\x99\xc3,\x0f\
+\x94\xf4s\x99\xd8\xfb\xa6\x1et)%>\xec\xaf\x84\x14\
+\x7f\xaa\x04\xf0\xfb\x1b]*\x8e\x02\xf4\x02\xfa\xe6\xff\xe5\
+\x00\xe6p\xb9\xf4(\xa4\xb5 \xc8!\x0bT\xa0#!\
+Z\x16)\xebw\xd8\xde%!\xb42\xe2a\xeda\x9d\
+a\xed\x0a\x19\xf0\x97 \x0d\xcd\x81a\x10|7\x0c\xd7\
+\x0f\xd7\xa7\xf6\xa5\xa9m)\xac\xfc\xfdo]*\xc4\xe1\
+TF\xd8\xa0\xff8_\x03\x01E\xa9\x95\xda\x09\x06r\
+\xef\xa9\xcc\xc1\x13\x89J\xb8WN\x19\x9d<:\xf9\x05\
+\xdaN+A\x8e\xde\xeb/v\xa9H#\xe5\xd8G@\
+W\x89\xd9\x08\x14\xb0N87E\xd68Idr\xbc\
+\xa7\x89;\xfa\x1f11\xc3\xa0\xfb\x9c\x8b\xbd\xbe\xda\xc4\
+\x0e\x90\xf1..\xf6\xff\x0b\xb8\xd8\xf5L\x17\xb5\x0f\xdc\
+\xb3\xf4\x85\x0e\xa8\x17\xa4\x16@\xd8\xe8\xa7Hf\x98\x03\
+\x84\x0c\x16\x10K \xcd\x1c\x90\xb4e\xa1\xc6\x8d\x1a_\
+eL\xbb\x0b3\xab\xa7)\x9bd\xf0\xf4\xff\xe8\x1f\xea\
+\x1f*mq\x80\xe4D\x86\x94\x88/\x1c\x04\xf4\x01\xa5\
+\x06\x9e\xbe\x9282@R\x98P \xa7\x18\xbc\xdaP\
+v8\xe4\x83`Q\x1dh\x90\xf9\xb11=\x1e\xb7L\
+\x05\x11\xa3\xcf25z@w\x81\xa6-\x95h\xd72\
+4\xee\xd0\x12\x89\xec\xf7p\x91B\xe8*2!2\xc9\
+\x18bm\xbb16.\xa45\x18v\xeb\x85\xa1\x99 \
+i\x01\xb1\xc2\xc0\xc1 \xe1\xe0\xe7\xfbpH\xc8\x08\xf1\
+\xfd\xf3\xa4FVE\xd1s\xe0/\x98r\x8d\xb1\xe1\xa2\
+]\x1a\x0e7\x07>\x06(\xf7\x0d\xd2\x03\x85\x06\x22\x04\
+\x83\x8a\x80\x07\x0a\x94u\xc3k\x02\x0ad\xb6\x1b\x12\xba\
+(I@\xe1\xb0!\xb9/\x0c\x986@\xc1\xf8b\xf0\
+\x0b\xaa\x15\x07\x08\x0a\x93\xcf\xa3\xf6\x17E\xdc\xf61'\
+\xa2J \x80\xc89\xb5\xb8\xec\x1b2N\xf4\xc7\xc5\xd1\
+.}\xdc\xf3|\xb1\xbeY_\xabg\xf6{S2\xf9\
+ c\xfe\x0aK}\x1eW\x0c7\x02Qm\x0d\x7f\x8b\
+\x90\xe1\xc0b\xbe\x96U\xc9\x0d%?\xac\xf7\x8d\xe5(\
+\xbeU\xb5\x92\x04\xa0\xd6Um?\x810JK\x08L\
+\x9d\xe4b\xeb\xfe\x97\xfd/\xfa_Tz\x05\x96j\x19\
+L\xdd)\x8a4/\x9f\xa1\x9c\x18\x0c\x03\xfd\xb1\xd9\x17\
+8\xc68>\x5cq\x10q\xec\xdb\x1a\xc6\xf6\xff\xdb\x1f\
+\x1cz\x1c\x14\xfe\x0eC\x9cu\xc1\xfaE/`\xf8\x12\
+\x10e\xde@Dl\xa1ZW\x02C8F\xf77\xa5\
+K >\x08\xac\xf09\xfc\x7f\x1b\xd8\x1a\xe40\xccO\
+`P\x81\xa1G\x07\x93j]\xb2\xeeh\xab\xb8\x8e\x02\
+K\xcbh\x9e\xf9\x7f\x9e\x9b\x83\x86\xf5\x8e\xa3\xbfA\x90\
+p\xe5\x80\x22z\x05RI\xd6\x1b\x81+\xd6\x0b5\xb6\
+\xec7\x1c0\xfaw\x93YWf6\x1cl\x0c6H\
+\x08\xb9?\xd6\xb3\xe6'\x1c+2\x83\x18<\x9a\xcf\x08\
+\x5c\x92i%P \xd6y\x1c\xc9@$\x90y\xa1\xb4\
+\x04}!\xe4A\xf4\xa7\x07\xd2N\x86X\xe7R8 \
+m;F\xf4\xd0\x9fT\x13\x0e\xe4T\x86\x0c\x90\xf3@\
+\xe2\xa0G\xd6H\x18\x83\xdc^p\xee\xf4\xfc\xd3K|\
+\xc8\x5c\xa1\x97\xe8\x86@\x00\xa3%%\xc5\x91\x042M\
+\x00\x8d}\xc5zC\x8fc(Rs\xaa\xcf\x1d\xb4\xce\
+\x82\x05\xfd\xe4l\xf8D\xa0L\xf6@dd\xa9ed\
+\x1ea\x1b\xe7\xdc pOf\x06\x88=\x86\xb8\xec\x87\
+\xb6\xe6=HJ\x85\x88\x08\x88\xfc)\xaa\xd9\xbc_\xe3\
+\xc3y\xc3\xfd\xb1\xcf0\xc4Y\xa7\xdc\x0f\x08\xbe\xad]\
+\xaa>\xf1\x8c\x0b\xfb\x99\xf5\xc9zd\xfe\x09\x5c.\xd6\
+\x94\xcc\xa0\xb7y?\xfa%\xc8b\xb5?@b\x10\x98\
+\xe0|`}\xcb\xd1'\xc3N\xed|\xf4\xa5&@\x84\
+\xe3\xc1\xfcQ\x1a\xc8yJ\xc9\x06\x08R\xf4,dW\
+J\xac\xc4>\xe5\xf9\xd9\xcf\x9c\xbb\x04\xa0@\xc2\xb5\xfb\
+\x16\xc8-\x01@J\xa9\xd4\x0f<j\xc7UZ5:\
+\xdd\xa5\xd2c\xd8\x11Z\xc7\xe1\xe8\xca\x0e!\xd1\x032\
+\xcb\xdd\xf8\xe4\xc8\xd3f\x11\xd2X\xe9\x95\xd1\x0f\x5c*\
+\xc3\xfc\xdc\x9c\x81\xf6\xbc\xbbg\xde\xe3\xfc\xa2\xa4M$\
+\xcb\x04RMKm\xe4z*m\xafQ\xd5\x8eP\x99\
+\xec\xd4o\xde\xe6\xb5[\xd7\xc4\xf4Hw\x92\x89\xd9\xcf\
+\xdd\x8f\x5c*\xe4\xed\xad.\x85D-\xb5\xbf[/\xd9\
+\xc5&v\xfd\x8c\x8b\x02\x07\xb6\xee\xbb\xf7\xbb\x88\x85\xfd\
+\xbd\x05\x99\xda\x1dm\xe2H\x84\xbf\x9bx\x00\xed\x09\x93\
+\xc7\x05Y\xfe\xb0\xf6\xf1?\x0b\xab~\xf7\xa0Kio\
+7:\xdb\xe4\xac\xd2\xe6\xda\x9b\xa0y\x1b\xb4\xd8'\xae\
+]7\xa9\xf6\x8b3\xab\x5cW\xb5\x97tN\xa2\xb9+\
+n+\xdar{W\x89\xef+\xc0\xf0\x11\x05|N.\
+$\x92\xdd,\x13\xd3\x8b\xe37\x9a\xbcA\xe3w\xae\xd9\
+\x0b'\xb9\x94D\xcc\xb0\x90\xc9\xc2\xd5\xeb9]*\xf6\
+zJ\x0c\xe8\x06\x00),v3\xed\x99\x09\x5cB\xce\
+\x09\xf9\x22\xfb\x9f.+\x90\x8c\xc2E\x03\xf2\x09N\x80\
+)\x93\xbe\xeab\xd1\x96\x1ccO\x11\xd0\x03\x11\x86}\
+\xc6\xfe\xa1+\x97\xdf\xe5c/P\x92C)\x02\x01r\
+\xda\xdc\xb1\xbf9'I\xcc\xd0\xd5\x0bD\x11\x88N\xda\
+q*\xa1\x11,\xf8 \xa1~`^\x91;\xf4?7\
+;\xed\xe7v\xfd\xb0\x8b]\xdf\xe8b\xc7\xd7\xf5.\xd5\
+\xfc\xee&?L\xcf\x17\x10w\x95FP+?\xec\xa3\
+\xcc5\x89f\x905$H\x08\xb4\xa1G\x1c\x7fuN\
+!\xb3'\xc0\xc99o\xaf\x12y.\x19\xf0\xe0 \xd8\
+7\x07<\x1dO\x9a\x10\xa5\xffq\xa9\xba;\xc8\xef\x8b\
+v\x81 Ep\xa8\xe9\xd2\x81\x9f\x89}O\xdbj\xe9\
+-j\xfc\xa3\xbb\xc9~.\xd5y\xfd\x1b\x9d[+\x0f\
+\xab\x0c\xab\xa4\xef\xcd\x88\xeb\xcbTb&\x92\xee\xb0?\
+\x84\xd4\x0f\xfd\xcf:\xe2\x5c\xe6\x1c\xe7\x5c\x04\xe1 \xbb\
+a\x92\xda\xfe\xf1\xe1&\x1eI\xdb\xc4dS\xb5\xbb9\
+B\x8e\xf1\x0a\x15\xc4A\x8a\xcd\xdc\xf0\x04\x09\x8a6h\
+,X\xda)\x1c\x95k\xa0\xc20\xa0\x9f\xe5\xd1R\x0c\
+\xb7\x88\xe4\xe81\xb57\x02\xa2\xd6\x90\xf5E\x1b\x069\
+\x9aQ\xd3\xc2\x06\xa0\xf6\xf5\xcc\x0c\xfd\xe8\xd6q\xb1\x85\
+\xf7v\x97\xca\x10\xe3\x00W\xfb\x99\xc8\xcc\x91\x11#r\
+OF\x0b\xee\x00\x0e^ m\xf4}%c\x05\x94\x96\
+\x03\x86L\xc3c\xe9\xc9\xf2\x81\xbdH\x05\xf9\xc5!\xa1\
+\x86\x94\x80\x07\x10<2ku\xe9\xc2\xa2\x15\x19\x08\x07\
+5\x10CH\xfe8\xd0\x88\xf0s\xff\x18\xfe\x5c1,\
+9`y>\xd8XA&\xe0\xb8\xcb\xa1\x8evt\x90\
+D\x89t&\xa0\xb0\xd4\xc6\xd3\xe7\xd7\xbf\x0d\xe8\x14\xa4\
+h\xf3\xca@\x5c\xadB\x1c\x00\x01\x06\xaa\x8d\x83\x84\xc1\
+\xd9\xf6\x83's\x07\x04\x9b\x9aT\x0c\x026.\x8e\x1b\
+\xd7\xb6K\x00\x06\x11\xdf\xd3r\x0fp\x1f|\x1f\x1b\x94\
+\xbf'\xb3\xc4k\x14\xe9\xab\xa3]H\x0e\xb0\x00}\xc6\
+\xc1!\x82\xcb}Q\xc3\x8a\xa2g=\x92\xd1\xc1\x00\xc2\
+Q\xa4\x84\x80\xfd\x82\x83\xc1\xbc\x92q\x07\xf2\xfer)\
+$\xa0\xe8\xcc;\xf73\x97\xf6\x1bH\x16\xba^\xec)\
+C\xebM\x0a\xccuA\xbe\x98\xef\x0b\x87\x04\x87ok\
+\x05\x80\x1e\x13\xf4\xf8\x04)6\xe6\x0d\x05\x8e\xc3\x81\xe3\
+M\xe6\x80\xc0\x92j\x93\xfb\x03]R\xdb\xa0\x5c\xf3\x84\
+#\x84\xa3\xf4\x1fu\xe38O\x91xA@\xa3\xe6\x1e\
+\xf6\xd3m5\xdf[4\x9c\x088\x9a8\xee\x8c\xe3<\
+M\x17\x09\xe6\x89yc]\xb0\x8e\x98/\xf6\x1b\x0e\xd0\
+\xbc\xc1\xce\x9d\xd77\x0e\x13\xeb\x0e\xc8\xf5#\x22\x9da\
+?\xc3Z\x0eR\x83\x03\x8fZ\xf5\xe7e\xe0\xffQ}\
+iQ\xf0\xac[\xd5\xe8G\xa6\x82\x0c;5\xdfCt\
+\xfe\xcd?\xa5\xefx>0\xfe%}\x89\xe1\x5c\xb7\x0f\
+\xddqv\xee\x8b\x08$\xb2\x7f\xd0\xdf\x04xq \xd7\
+W\xa0\x80u\xdc\xb2\x14c\xf8\xd3\x9f[\x08\x0c3\xe7\
+3iQ)A\x99\x9eA\xdc:\x97H\x04\xbb<d\
+\x5c\x9bM\x0f,\xc4}\xb2\x8fyn\x02\xcf\xb4[k\
+\x1c\xda@\x8c\x11a\xc7\xd1\xc1\x11\x06\x12\x0ak1\xf3\
+\xc88`X\x11\xd0\xe0\xf9\x09\xb0\x82\xb0\x00\xfaLF\
+\x14}\x85\xdef\xdf\xdc\xa0\xd22J\x0b@\x1e\xb0\x9f\
+\x18O\x1cUH '\xf3\xfa\x8d~\xd3\xb4\xf3d?\
+\xf0\x03\x22\x85>\xdb\x90\xa3\x91i\x85E\x1d\x04\x13\xfb\
+\x8d\xc0 \x0e0\x99\x14jL1L\xd0\xe7\x04j\xd1\
+\xaf\xacW\x12\x08\xac\x1b2\xb6\x9ck\x9c\xdb\xaa!\x8f\
+\x0c\x14\xdc\x08p\x10\x00\xf9o\xdb8\xb2\x9f\xe9\xeb\x8c\
+AD @\xe4\x9b\xd1\xae\x89\xcc5\x06fS\xa2E\
+\xadtp\xf6\xd0V\x8e\xe7\xa5=\x94\xce\xc90\xfc \
+\xb1C\x9f\xe0(\x80\xf0 @\xc4\xef1\xf0ZR\x5c\
+\xd61\xe4U\xe2T\x08\xa4\x01\x01Z\x91\xa9E\xbbV\
+\xe6\x89@#\x90sA\xbd\xfb\x8b\x5c*G\x88\x92F\
+\xd9\x01 \xd78\xc7i\x17\x18\x886>\x9fyd]\
+\xa3\x97\x09lS\xb2\xd2 \xc4b]c_\xd2\x95\x81\
+\xdaiA\xcaI\x08E\x1b=Am\xe9\xda3z\xca\
+\xa5r\x00\xc8\x1ccWB\x8a\x88\xbe\x82\x03@\x86?\
+\xec\xe1\xa3GF\x8f\x8e\x1eM\xb5\xf8\xf7\x8e\xeeM\xf7\
+\x9d\x1d\x90KU\xdaI\x8d\xbf \xf5\xddR.\xea\xd2\
+\xe1\x0e\xdf\xa3\xfe\x09\xa9\x1d\xd9\xc8\xdb\x91\x05\xb4\xff>\
+\x97\xd2\xa7\x9c\x9a\xfc\xeei\x93\xa7\x0a\xfb\xff\xf8\xb5.\
+\xf6\xff\xab\xbb\xc8\xe1>\xbb\x04\x22@48\xd7\xbf\xb3\
+\xfd\x8f\xb7u)\xf3\x1d\x81\x83\x1f\xba\xd8\xff\xff\xd6\xa5\
+@\xa6\x816GI\x81C\xff\x0f\xa8\xe6\x07\xee\x15\xed\
+\xaf\x08d@&LB\x0b\xae\x8c\xc5r;\xdei\xf6\
+\xe3\x8d\xa5\x96}\xd8\xc0\xc5\xde\x7f\x9a\xc9\xa9:_'\
+\xe5P\xbdA\xa5C\xa7\x97\xaeR\x09\xa9lz\xa3;\
+\xc6\xe4h\xbb\xce\xd3e$\xc2\x8cn\xc6\xd8\xdb\x15\x1e\
+\xe4b\xeb\xf6\xc7&\x97\x94>\xf0\xd4\xfa'\xc4\xc3o\
+*\x12H\x02\xdf\xd8\x1d\x90vC\xba\xd9p\x82\x0d\x7f\
+w\xa9\xb8*H\x884$\xa6\xb1\x8e\xa4\xd7\xa9\x05\xef\
+\x9fs\x11\xe7\xc6r\xa56>\xbe\x8fs\x16\xbdA\xc9\
+\xa9\xec\xd9\x18g\xec\x07\xde\x87\xfd\xc1\xb9\xde\x92R\x13\
+\x98\xe0\xbcu7\xf6\xfc\xca\xdf\xe1|yy\xa2\xd9-\
+\xf6,\x8e=\xcfI\x00\x0e\xce0\xe9\xb1\xd4\x0e\xb4K\
+\xa4\xb3\xd7:\xe9,~\xd2\xd46.\xda\x0f\x0f\x97\xda\
+\xf8\xd4.}\xbd\x84\x94\xc8\x014\x95z\x07\xa2N\xdd\
+\xe6\xd0;\xe8uj\xdd\x03\x89\xa8@\xa69\xca&U\
+\x02\x0e\x0e\x0a\x95\x98\xe1/\x05\xc9\xa5'\xfc\x96P\xf7\
+\x9bcK\x00\xad_\xd6\xc5\xae\xffu)\xdd@\xa2\xbd\
+\x1e\xf6\xa1\xc8e\x87\xf7\xb9T\x01\x0d!\x13b\x7f\x90\
+PV\x00\x1a\xfb\xb5[\xc9E\xed\xdfgU]$\x80\
+\xf2\xab\xad_\xc2\x03l[\x05p~+\x7f\x99v\xc9\
+K\xba\xd8\xf5\xf5.\x85+'\xec\x1e\x12\x15\x0a\x84\xd0\
+&3J\xb9T\xd279y\x88\x8b\xfd\xe3b\x13;\
+\x00\xbb#\x5c\x0a\xf9_@\xab\x9cd\xe5\xc1\x8a=q\
+\xa9|\x03\xb6I]\x0a+/\x90H\x91\x98\x04\x1b0\
+\x13\x04\xa4\x13\x83\x85\xdah\x0cl\x22`8\x16\x18\x16\
+l\x0cH\x85\xd8\x08 \x0c\xbe\x99\xfb/\x86\x03\x8dC\
+\xc6\xfb\x81\xae\xb7m\x99\x88\x98\xcb\x80\x8e\xdaD\x0e\xac\
+6\x10@\xc6\x9b\xbe\xcddR\x0eU-*\x11\xf09\
+\x12?z\xa9\xf1\xa7V\x8c\x0dD\xed%\x91\x22\x9e\x8f\
+\xe7bc\x02y\xc21\x9fP\x16\xe7\x8f\xc9\x05\xc8\x91\
+\xc4)E\xbe\xce\xae\x22\xffd\x00\xc9\x90s\xff(,\
+\xbe\x07E\xd1\xd6\xd4s\x80\xc3\xcd\xd0:\xce 3\x9c\
+|\xf0\xca\x8a\xed\x12\x12\xa3\xf5\xf3FOf\xe8\x8a\x95\
+\x82\x823\x80\xcf\xe3\x80\xb8=C\xbe\xc3`\xe0\xf7\x9e\
+\xdfXJ\x99\xa0u\xaa\xfb\xd5s\x05\xb9\x93\x02=q\
+\xb0S\xa3\xae\x0c^(J\xd8\xee\xa9\xc1'B\x8d\x03\
+\x85#\xc38\xb5\xedV\xc8\xb80\xbe@ew\xcb5\
+N\xe1\xb0\x1d\x97KW\xda6-A\x96G-\x11\xbf\
+g\xfe\xc9\x9c\x12\xe9\xe55\x86'\x99J,\x1e\x0e\xaa\
+\xb6\x8d\x17\x9f\xcb8r\xc0\xb0\x9e\x89\x5c\x92\x99j3\
+\xfd\xf4\xf9\x85\xf5\x9b\xef\x9fW\x06(5\xe2\xb0\xb2\xff\
+?\xf5\xcf\xbd]\xfb\x80\xdar\xd8\xd5q,\xee\x16b\
+B\xec\xff\x91!T\xa9\xcf\xf0\x86a\xc7a\xc7R\xab\
+e\xc7_\xceHo\x9e\x03n\xd4\x80E)\x11\xfb\x94\
+\xf1c?\xe3P\xe2\xe0\x13 a|\xd8W8\x86@\
+\xfe\xd4\xd6\xb0r\xf0\xf3\xf8\x92A\x95#e{ \x8f\
+/\xe4\x86BPD\x8dd[\xebN\xa0\x0f\x07\x0d\x07\
+\xf0\x1f\xd9A\x89\x80\x1a\x0e\xe4\x10\xa5\x17\xf9y`\xe1\
+_\xb4!i\xc3\x81c\xff.\xa3\xff/H\x97\xfc\xf7\
+\x046\xf9\x7f~p(\xda\xf5\xc4\xe7\xb5\x90C\x90)\
+\xeb(3K\xad?\x99}\x1c\x16\x1c-\x02E\xec\x97\
+\xb6}+\xf7\xc3\xe7n\xe1R\x90\x06\xec\x93\xe1\xaf\x22\
+\xf5\xe1@\xbdZ\x19I\xbaR0\xef\xe8u\xb5\x8f\x0c\
+\xa4\x11\x90A\xf4!\xf3\xcb~\x07\xb1#R\xcc\x11\x19\
+X\xe9i\xa0{A\xe6J\x86\xf7B\x97\xcaq!\xe0\
+L\x00\x17h0\x8e\x17\x01\x07\xc8d1(\x80\x5c\xd3\
+\x1f\x9d\x80\x11\xfa\x87\x8c\x0ez\x8au\x0dd\x1e\xb2?\
+\x0c\xb7\xb6?\xf4\x09.e\xbf\x0d\xe7\x0e\xe7\x0d\xe7\xa5\
+\x1a\xef\x9c)e~\x09\xf4\xa8\xadk\x04\xee0\x18\x09\
+\x9ci?\x07\xc2\x0e\x87\xb6\x0d$\xb0\x0e\x98\x1fe\x9e\
+\xa2\xf6\x9b\xf3\x1f\xbdC\x80E\xe7l\xd4\x80\x03\x11%\
+\x10\x0e\x8b\xb2 \xf0\xa3\xbd\x5c*G\x04\xf6p\xd6\x03\
+\xe7J\xdbv\x0f\xe4\x0d\xb5\xa2\x94\x026m\x1c\x03)\
+B\xcd>\x9c\x1d\x82\x86\xc6|S\x8b\x0e\xa2\x82\x80\x12\
+\x81\x0f\xf6C\xdb\xde\x96@>\xfd\xaai\xcbG\x80\x04\
+{\x80\xfd\x89\xded\x1d\xaa\xfft\x90\x9b\xc1\xad\x00\xe2\
+\x0e\x87]\xfd\xc0\x03\x11\x01rE\x08>2}\xdd\x01\
+.\xf6\xfb\xc7]L\x1f\xff\xce\xa52x\xd1_\xd4\x0e\
+\x8b|q\xb8\xdc\xa5B\xd8\x11 \xc1Ab\xbe\xd1\x87\
+\x04\xc4xN\x02{\xb0\x9b\xcb\x91\x1f\x7f\xda\xc5\xee\xeb\
+F\x17\xbb\xbe\xcd\xc5\xae\xfb\xb8\x14{r8\xd4\xa5\x94\
+\xa6p\xbeu\xbf\xeen\xean\xaa\xba\x15\xc1\x8d\xa0\xcc\
+\xbd\x19\xcd\xf9\x5c\xc5^\x5cM]%n\x1f\xdd1\xba\
+]\xf6\xed\x85%\xa0\xd0}\xc8%\x05\x0e\xd7O\x81C\
+\xb8_\xe6\x1a\xcd92\xbb\xaf\xbb\xd9\xbe\xef\xe6D\xaa\
+wU\x22\xd5\xc3\x01\x91\x9e\x0f\xc7]]]\xbaK\x5c\
+\x94\xc8\xf9J\xe9\xb3N\xdb=st_\x93J\x004\
+/\xc9\x11>\xa6|.m\xbc\xbb\xa3\x5cl\xbc\xaes\
+)\xeb\xb6;\xdc\xc5\xae_t\xa9X\xfd\xef6\xb9\xab\
+ \xa7\xc6\xab\x9b\xacV!o\xc4i\x11\xe7\x81\x87\xdb\
+\xce\xd7\xbc8\xb2\xe3\x8f.\x85\x9c:\x85\xe7w\x93C\
+\xb2\x93\xf4\xe7\xfe\x82\x22\x9b\xdd\xdf\x9fn\xf2\x8d\x12\xc0\
+#\xf1\x13\x01\x03\xa0\xd5Bp$\xfb\xc3\xec\xda\xc9c\
+\x5c\xec\xd7\x9b\xce\xb1\xe9\xe4W\xb3~\xec8O\xcc\x11\
+\xec\xd76YK\xed\x05\x7fVu\xe7\x82,M\x0e&\
+\xf37\xdeg\xbc\xf7x\xef\x84pH\xfahj]\x17\
+\xfb\xbb\xcf\xb9\x14Dnt\x03\xc2A\xdb\xc3\xa5 \xb7\
+\x22p\x88~\xc7\x0fZ\xd6\xc5\xee\xeb'&\x97\xda\xf5\
+&\x97R\x8b>\xccp\xa9J#@6b\x0f\xab\x8b\
+H\xe8q\xb8\x81\xb0#[}\xfc\xf3\xbd[\x00\x00 \
+\x00IDAT\xc6\xf9\x09'\x07v\x22%Y\x9c\xff\
+\xb4kuR\xbc\xc3\x8b^\x8a@\xb6\xec\xa4\xe0v\x02\
+\xc9@b\x03.3\xec-\x0f\xb7\xefR\xb1\xcb/\xe7\
+\xa2@\xcc\x8fU\x0a\xf0\x90\x10j\xbb\xab$\xc5\xf4\xc3\
+\xf8\xc4\xf1\x09c\x9f\x97\xf7\xba\x94\xf9\x1f\xde\xe5b\xd7\
+\x1d\x5cJ\xbb\xdeTzm\xfb\xd6\x0b\xbe\xbd\xe4;\x91\
+k\xbe\xbf\x0aH\xeb\xef\x935\xf6TU\xfa\xa7@h\
+pk\xa8\x1d\xde\xe8\xec\xbc\xae\x82\xf4\xf2,\x97\xc2\xd5\
+\x11\x88\x04\xcd\x7f\xbf\xa7K\xc5U\x01\x17\x1a\x09:\x10\
+\x88G\xbb\x94\xf5\x11\xe7\xa2\xd6c\x94j\xc2]D\x8d\
+?\x09sHT=a<C\xed\xde\x8f\xa9\x10\xb3\x94\
+\x88\xaaK\x10~z\x04~I\x08a_\x90\xf0\xd6\xb9\
+\xde-\xecR\xce\xd5\xc9\xc9\xcbL./d\x7f\x01\x81\
+\xc2\x81\xdb15|\x0a\x04@D\x1cvv\xa9\x147\
+Pc\xaf\x09\xfaCU\xd3$\xd2\xad\xe1\xa5.UD\
+\x91\x8c\x0b\x90\xb6\x85\x1a\x08\xb6\x22.A\x0aD\x06\xbd\
+\xed\x0f\xcf\xc1H\xc4L$\x1b\xc1\xd6\xfa\xfd\x1c\xc9\x89\
+\x83\x9b@\x00\x06\x0f\x99\x00>\x87\x0d\xc3\xc1\xcd\xfda\
+\x08c\x90\xf1\xf7\xc3\xd0\x0f}z\x9d\xb9\x0f`!\xc6\
+\xf0\xa1?\xe61.%\x10\x10\x07 \x86(\xf7\x83\xc1\
+\x82A\xeen\xdd\xb8B\x08`\xf0y>\xe8\xfe\xca\x80\
+\x85\x84\x85\x83\x99\x88:\x8e\x10W\xfe\x1eG\xbe\xadm\
+&3\x03\x04H\x99@j[hO\x11\xe3BFC\
+\xfd\x98\xe3s\xc5z\x1a\x8e,\x1b\x87\xc0\x82\x9bG\x7f\
+\xaa\xda!\xe2pCf\xc2x?\x94\x1a\xf0LxE\
+\x8e\xd7\xe4\x84\xe1\x87\xe1@\xc4\x15\x03\x93\x0c\x11\x81+\
+\xd5\xf8\x0d\xffp\xa9\xe6\xed\xc5\xfat\xb7\xac\xecm\xcd\
+:\x8avK\x05\x8a@\x82\x88\x0d6\x02<\x04\xa20\
+\xfc\x80\xd6\x92\x81\xe7\x80\xa2\xcd\x18\xe3\xc2\xfa\x84\xbcC\
+\x91\xd0\xe8KN\x84\x0f\x85\xce\xfcaX\xb2>[\x12\
+\x17\x9e\x17\xa8\xa92]p\x7fDd\x1c\x07\x92L3\
+\x81\x00HM\x22\xd5\xd2\xb4O:T\x91q\x0co\x1c\
+(\xbeO\x06?5y\x13\xdf\x16\x09\x97\x0c\xb6a\xd5\
+\x0cy\x9a\xfa\x94K\x82:\xe5\xc0\x0d\x01\x13\x1cu\x22\
+\xf5\xec\x17\x10$8zm\x1b\xc6\xa5\xe4\xf0\x07\xb2G\
+\x08&\x02\x028~\xb4\x13\x82\xcc\x946\xa4\xcf\x08\xc2\
+9\x9f\x02\xa2 &\xd0?\xfd\xf4~\xe3\xf1y8\xe6\
+\xec\x13\xbe\x8f}\xc8z#\xb3\xfbG\xb1\x19\xa3\xe7V\
+S`\x10\x04\x85\xa0a\xb4\xa9\x83\xdc.\x0c\x14\xda\xcc\
+\xb1n\x97\xd7\xfc\xe3h\x13h\xe45z\xb6-i\xe0\
+\xfb\x88x3\x8e\xa5\xbdf\xd6\xbf \x0dp\xec\xd7j\
+J \x9e\x8a.\x12y\x1d\xf1\xfc\xfc=\xe3\x83\x835\
+g6\x9c!\xa9Ky\xb3\xaa\xbf\xad\x99\xb9Y\xff\x80\
+\xf0a]\xf3<\xdc'\xa4\x87\x8bMo/\x18\xcf\x8f\
+!\xc3\xfb\xd9/\xd1\x86N\xdf\xff)\x1d\xe0:G\xe2\
+\xdc\xc2\x81\x01:z\x80K\xd2o9CIm%\xcf\
+\x85\xa3{R\xaeI\x1e\xed\xaf\xbf\xa7f\x9d\xbf\xc7\xa0\
+\x22@A\xe6\x06\xbd\xc3\xf5cIJ\x86\x94@\xb7P\
+\x1d\xc3\x0f\xe5\xd0}L\xd0R\x0c6\xf4\xe3\xbb\x05Q\
+\x85l\x13\x07\xee\x1fB\xf0\xa9\x14g8\xd7\xa5\xea\xcf\
+\x0d\x1b7\xdc\x0cd\xce\x84\x94\xc0@\xf5B\xa3Tj\
+D\xc0\x15\xfd\xa7\xc0h\xd4\xc4\x1e#\xae\x02\xceA\xf4\
+(\x01h\xd61\x81\x0eX\xdcaU\x07\x91\x87A$\
+\xc3\x1bC\x8e6x\xd1N\x13\xf2`\xf4\x17\xe7\x1d\xc8\
+=2\xfd$ \xf8\x81\xc5\x9c\xfe\xe4-90\xac\xdb\
+p!\xf0\xfb\x96$\xb1\x85\xf2c\xc7\xa0\x97a\x19\xef\
+\xb3=\x11z\x00\x88,\x81\x1cAFc\xbc\x09L\xf1\
+\xb9\xb0\x86\xabv\x99\x0cyjO\xfc\x86\x8a\xc4\x8fD\
+\x0c%\x02r@\x82d\x91L\x96\xda\x0a\x86\xa3\x07t\
+\x98R\x02\x02J\x87\xb8\x14\xb2/\x1c\x90\xe1\x22\x17\xfb\
+\xff_\xbbTH\x0ew\xff\xf6\xd4z{s!\xc3\xf3\
+\x8a\xda\xc4Z\xaf\xf5=y\x89\x8b\x99\x03_p\xb1\xd7\
+\xcb\xbb\xd8\xf5M&oN\x99\xfa\xcfz\xa6\xbe\xdf\xd0\
+\xa5jC\xfd\xa7\xcc!5\xde\xc9\xc5\x86w\xb9\xee\x95\
+\xddr\x15\xc7\xd4\xab\xd4^Z\xf6A:\xf5\xe7K\xfb\
+,sE\xbdk\xb4\xfb\xc8\xd6K\x7f\xac\xc9q\x82\xb4\
+\x7f\xbe8\xb8\x9cs\x9e\x8fvG<\xed\xabw\x97R\
+\x96p4@ \x089\xda\xdd\xe1R\x10\x93\x09j\xef\
+\xe4\xce\xdb\x9b8\xcb\xf9\xd3\x19\xa2\x1cm\xf8\xd6\xb4\xfd\
+d\xeb\xb7{\xb2{\xaa\xb3}\xd1\xfd>\xb7\xff#\x93\
+\x18$k\xf7fd\xc2x_\x97\xd2\x15`|\xb0\x8b\
+\xbd\x9e\xd7d\x9eR\x8a\xd1}\xd0d\xafb\xd7\xa7p\
+\x93;\x08S.BVnX\x10!\xc1e\xa0\xf3*\
+\xba?\x81\xbc\xf3R\xbc\xcfT\xc8\x1f\x87\xd8\xcf\xa1Z\
+g\x87\x5c\xcf\xe5\xa2Z\xe9]+\x04\x8f\xce\xdd~\x17\
+\x97\xaa\x9b\x95\xdf\xa7\xe9\xd9\xee\xaf.6\xdf\xeb\x99\xac\
+\x9f\x03\x19\xe3#\xf4\xbd\xa6Wf\x9d\xe4bv\xc3Z\
+&\xceJ\x7f\x98\x8b\xfa\xb9\x7f\xa0\x04n\xba\xbb\x5c\xec\
+s\xbe\xeab\xdfw\xafKI\xf8%;\xc4\xf5\xc8\x11\
+&f\xc7\xf5\xffv\xa9j\xb6\x0fw)\x8eZ\xb4\x87\
+\xd3\xb9\xd1_\xe7R!\xe4\xb0K=l{\x9f\x02.\
+\xbf\xd6y\xb3p\xd5\xf6\x12;\x1b.\x09\xff\xfb\xbfU\
+\x01J\x10Lm),\xe73W\xfc\x16\x02\xd4\x04l\
+\x08\x9c\x12\xa0\xa4k\x82\xba\x01\x108\x0c(9v8\
+\xed\xe5@4+\x00B \x98Z\xf4\x140\xf9|5\
+N\xb4=\x15\xd9)m\xe49/\xbd`\xdbK\xb6G\
+\xdfqI\x81\xe2;R y+\x97R\xe2\x0c\xd2\x07\
+$VJ0\x9eQ\x91\xa9\x1ei\xf2\x19=\xcf\xf2\xc5\
+\x91\x86\xacu\x98t\xa9Hhu\x1e\x81,\xc4\x9e\x0c\
+\xae\x8d\xf7w\x1f\xe8>P\xd9?\x9c\x03B\xc6&N\
+\x8a\x8dJ@5\x02\xa2\x8c/$\xa6\x22'\x0d;\xed\
+bq\xd6i\x1cG\xbdK\x95\xa8U\xe9\x0ez2\x10\
+c\x0aDE\xe9\x1b%(\x04\x9c\x84\x84\x18^\xe3R\
+\xd9\xff\x5c\xd1\xcf$\xfaT\xba\x03w\x05\xe4\xc5\x93\x1c\
+\x04\x90\xacD\x9b22\x85Z8\xd1\xb6\x83\x0c\x0d}\
+U\xd9\xc82P\x9c2\xc17>\xed[\x82d\x81Z\
+\xa9\x05\x5c*C\xb0\xcd\xb8\xe2\xb8\x12\xe9b\xc1\xb3!\
+\xd8(<(\x99^j\xb1/\xce\x0bd66l\x22\
+#L0\x078\x06\x07\x06\x08\x7f\xdf\xb2\xf1\x12ik\
+ \xb4\xa3\xb93)\x0a\xb5$\x01\xb9\xe4g\xe7\xd4h\
+$?\xdf\x22UdN\x19\x87\xa8Ao\xdao\x04\xa4\
+\xd0k\xc8\x9e*\xa5\x00Q\xdb\xcc\x06Y\xddd59\
+,wV$A\xb0\xce\xb6,\xef\xf4K\x86\x8c\x8f\xef\
+\x85\x9c\x09h>\xe3\x83\xa3\xf5\xca\x06\xca\xce\xef\x99\x17\
+\xd6K\x9b\xe1\xc3q\xe0\xb9i\xe3\xc4\xfb\x99\x7f\x0c\xa7\
+\x96m\xfc\xe9\xc4\x17\x9f\x0d\xf6\x05+h2\xf3\xd6\xf6\
+\x87n3\xde@\xe1\xc9\xb8c\x90\xce\x1d\x19\xdd\xfc}\
+\xed\xf7\xf2{\xd6\x01\x90g\x1c\x7f\x90-\xb0\x19\xab&\
+\x8d\x12\x8f0lq\xf0\x08\x80\x10 !\xd3\x85a\x0f\
+\xa4\xabmS\x08k\xfd\xffd\x08\x03\x09\x22\xf0\xc2~\
+\xe4>\xf9|\x0cN\xe6\x0bG\xa7\x81\xdcF\xad-\x11\
+`\xe6\x0b\x03\x99y\xe2\xfd\xac\xcf\x16\xc2\xcb\xf3\xa28\
+q\x04\x9f\x0e\x08r\x1e_J\x09nT kQE\
+\xd6\xd7\x14\x0b\xb8 `\xa1\xb0\xc79C0z\xd0\xa5\
+Z/@\xb0\xc9\xb8\xa3\x8f\xc8\xf0\x97>\xe3\xf9\xbe\xa9\
+E\x07\xa1\xb3\xae \xd2\x05\xb2?\x1d\xe1\xc1\xba\x81\x0c\
+p\x0b=\x1fl\xfcs6\x81\x00\x1c\xb8E\xe4\xf0\xe3\
+\xb8\xe0\x80\xb6\xd0l\x1cP^\xe3(0\x9e\x931\xae\
+Y/\xfd;\xef\xb3\x08\x84\x88{\x84R\x10\x0e\xf2\x08\
+d\xac\xaa>\xe1\xafQ \x0a}\xb8\x8e\xee\x8b\x80k\
+\xe3\x80\x049\xe0\xac&S\xd9\x96\xc2\xcc\x17\xfb,\xcf\
+\x07\xe3\xcax\xb2\x8f\x1e\x96\x01#\x87\xde\xb4N\x22\x9f\
+\x89\xc0\x0c\x01\x12\xf4\xc3\xbaM\x17\x8c\x06\xea\x0c\xb7K\
+\xf4\x09\xf6\x8c\xcfu\xd3H3\xa7#$xn\x02\xba\
+ \xcf(1\x83,p\xef\x04\xea\xf5\x1a\xe7\x8b<\x93\
+\x9e\x1c\xe4=+\x04\x8b\xd6W\xec7\xa0\xa1@\xdca\
+\x07\xbf \x93@\x85^\xc5a\xdaH\x81?\xf4\x22\x19\
+N\x1cjJ\xe8\xc8\x9c\xa3\xc7a\xf9\x87dM\xeb\x0c\
+\x08o\x9cK\xcc\x1f\x089\xf6=\xa5Qb\x01\x1em\
+\xa7L0$\xa5\x04\x94O\x14\xb9\x12dUr\xc8\x82\
+\x1c\x0f=\xcf9\xadL{p#\x80\xc8b>0\x1c\
+)\xd5R[\xaa0L!o\x12\x89Y\xb4\x19\xa3\x9d\
+\x1a\xedE\x19?\xf4\x07\xfb\x9fy\x05\xea\xc8}\xc0\xca\
+\x0c\x92\x8f\x00\x09\xf6\x06z\x95\xf3\x86\xf3\x00$\x00\x06\
+9v\x02\xeb\x8fq\xa6d\x8b}\x80\xa3\x0b\xf9$\xa5\
+p\xdc\x1f\x81X\xf4\x15\xf6\x0f\xf6\xc6\x8b\xb5\xb7%\xd3\
+\x8f^\xc1\xeea}p\x0e\x80\x10#\xa0D\xa0@\x10\
+\xf1\x080C\xfe\xa5\xda\xd7\xd0\xfb\x0aXC\xa2J\x86\
+<\x12)\x22}\x1b]\xeeRq\xb5\xa0\x0f8\xdf\x08\
+\xfc*@K\x8022o\x94\x06\x08\xd2\x9f\xc8\xc1\xae\
++\xac\xe0\xa3\x9b]\x0a\x1b=dus\xcc\xe5b\xd3\
+p\xe6\x9c\xdf\x9e\xd3\x0c\xe5\xc9\x03Ml\xddM\xde\xea\
+\x92 \xc4\xc9\xc1\xf3\xfco\xbfv*\x193I\xdc3\
+\xefv\xee\x99\xf1\xa4\x8b]\x7f\xed\x22v{g\x11\xff\
+l\xff\x99\xde\xc9\x1f\xd73YW\xa5\x01\x97&R\xb7\
+\x9c9\x13\x89c\xb0\x9a\x8fMl\x7f\xf5\xe9\xa7 \xb2\
+F\xffqI]\xaeL\xaa};\xd3\xa5\xd4\xdc\x93Q\
+\xeff\x9ax\x1b\xbf%M\x96\xa8\xc6W\xa4\x5c\x90\x0b\
+v\xcf\xb8\xa4\xfe\xf1;x\xff\xf8\xeeS.v\xdd\xd0\
+\xc5\x9e\xe7\x18\x97\x82\xecI\xb5\xfb\xb6.\xc7s\xba\xd8\
+\xeb\xff\x98<j\xaf_c\xe2\xc8\x81?\x9b\xdc)\x92\
+S\x9b\x87n1\x93E\x0b\xb4<!G\xbe&\x12\xbb\
+\x1f\x08\x09|\xa4\xc8\xb7\xffU\xd8\xde\x87\xedL^\xa7\
+D\xd6A\x9a\xbfO\xcaq>\xa2\xca0+\xb3\x0d'\
+C\x22\xe7\x04B\xef\xe4l\xbb\xbb\xd8\xf5\x9d.\xf6}\
+?u\xb1\xdf\xdfi\xe2\x81\x9b\xaf\x9a\x9cl\xff\xbf\x84\
+\x8b2\xa7\xcb\x96.?S;\xb9\xd86\x9e\xd3\xc4\xf6\
+\xcf\xacG\x5c*v\x7f]APL\x1e\xedb\xf3\xf7\
+g\x97*\xd0&\xe4P\xca<\xdb\xfd\xcc\xfa\xacK\xd5\
+G^\xdf\x17\xfaG\xf6\xcdp\x8dK\xc5V\xafLl\
+p\x9a\x10\xf8\x11\xa7\x03\x09\x91\xa9\xf9L\xe6/\xfb4\
+\x90\x0f8xB\xb4\x06\xc2\xa7%\xefE\x0f\xb7\x81J\
+\xec`\xces\xba\x85\x88\x8bax\x85K!A\x8dD\
+\x14v\xb22\xc5\xc3\xcf\x5c\xaav\xee\x9c\x97\xaa!o\
+\xa1\xf8\xa3K\x5c\x14 9\xact\x0dI\xf8\xbc\xab\x0b\
+\x07F?\xe9\xa2\xe7\x9f\xafp\xc8\xd1\xddb\xd8\xd6E\
+\xfe\xe3\x9cr\xe4M\xcf\xd8.5\xa9\xce\xc7u\x02\x09\
+\x99K\xabi;\x0d\x82\x18\x8e7\x10\x7f\xb4\x8f\xde\xc6\
+\xa58\xee\xa6\x05/KzpE\xd9_\x9a\xef\xd1\x12\
+\xd9\x1f\xa3\x1b\x06\xf6Uw\x83\x8b\xbd\xffQ\x97D2\
+mb\xaf\x8fr\xb1\xeb\xd2.%@M\x80#J\x05\
+(\x9dV@5\xce\x19\xda\xb3\x1e\xecb\x9f\xf3\xcd\xfe\
+\x8c\xfe\x9b\x05\x01\xc2}\x0f\xf7\xb9\xa8\xe4b\x5c!$\
+6v\xa9\x90\x7f\x90(S\x0aG @\xe3\x11\x1c*\
+\xb2\x17&#\xb2\xeb\xddY?[ d\x89,\xe7\xfa\
+\x0a\xb2\x04d\x9a\x08\xa0j\xd4\x88t\x069\x84\xa0\x13\
+q\xa0\xabf1&\x10\xd6Z\x0e\xfaU\x04\x11\x03\x11\
+\xc0\xc1\xd2\xb2\xea\x13\x09{zz\xadr\xb4M\xf8\x83\
+\x02\x00\x0f\x88\xcd\x91\x8d\xc3\xb5e\x83\xe7\xa0\xe5\x80\xc6\
+\x10m\x91\x058<\xbcf\x03\x92\x19xrxbx\
+\xa2D\x80\xc2\x90\xc7\x80%#\xe8\x95\x86\xd7T\x86\xac\
+j\xbd\xc20i\xa1\xffd\xbe\x9cTb\xd9\xc2)\x10\
+\x91\x7f\x91\xa3\x04\x0b\xfa\xca\xeaS)\xe8\xcb\xe8\xf3.\
+\x95\xa2\xa0\xc4a59\x06dDy>=\x17\x90\xb1\
+\xe8;\xdad*X\x07d\xe4\xc3p\xc2\xc1\xc1\xf1\xc1\
+\x11\xc7\xe0\x13\x09`\x18\xfas'W*\x1bXsT\
+\xcf\xed\xb3\x0e\xe9\xde\xa8RP\xccSS\xf3\x18\xeb\x84\
+\xf9\xe45\xf3\xc0\xb86P\xcb\x88\x9cb8\xb7?-\
+$\x9eu\x84c\x01\xf4\x1cE\x03\x09\x22%\x01d\xc2\
+d\xe0\x0d\xb7\xb8T\x1b\x9f\x00\x16\x8a\x98qc\x1c\xa8\
+\x0d~\x87\x02r\x1f\xd0\xb8\x11\x00\x11\x04(\xf6\x07\x0e\
+0\x19D \xe88z\xcc\x0f\xeb\x92u\xc7\xf3c\xf0\
+\xce\xd1te\x18\xeb\xf7\xb3\x22\xc28\xad;@@\x90\
+\xee\xcd\x07Z\xe5H\xe6\xbfg\x1c\x19\xef\x7f+\x92\x0d\
+\x94\x94\xff\x87M\x17\x87\x91q\x14\xab.5d\xb3\xb5\
+qBo\xac\x11\xed\xe6r\xa6\x99\xf5\xa2k\xb0\x9f\xf3\
+~\xc6\x9b\xf1P\xad~\xea\xbd\xf1H\xa5'\xb8?\x02\
+ m\x80\x86\xf5\x08r\x83\xfd\x86cO@\x8c\x00\xc4\
+\x12.\x15G\x00\x81\xb7\x87\x84P)\x86F>\xd0\xc9\
+8\xf3\xf9\x1fT&\x9a\xcc.\x99k\x0cl~\x08\xc8\
+P{_\xc8F\xe9\xe3\x9e\x1d\xf0\x97\xe8ypD\x0a\
+\xe48?7\xe4\x90\x8c\x07\xeb\xf3\x95\xd1\xd6/;d\
+\xd4\xda\x03\x81\xd7s\x04+;\x19R2\xdbp\x12\x94\
+@M\xfe|\x10.\xccc\x8b\xf8\xc2\x11b\xdc1\x08\
+\xe6\xabJ\x86\x96\xae\xf6\x1f\xa5W \x87\xf6IR\x02\
+w\x18\xde\xbb\xdaA\xbfk\x05i?[\x99d\xc6\x99\
+\x1f\xbe\x8fL\x0a$\x97\x0a\x9c\x0d7\xb9T\x88\x19\xd6\
+\x8d\x904m-t<?\xfb\x85\x83\x9a\xcf\xa5\xb6p\
+\x7fqj0?p\xad\xa0\xdf(\xbd\x82\xac\x8cs\x80\
+vz\x9a\x9f\xe86\x00\xcb\xb4\x02\x1cd8b\x9d=\
+\xa4+\xeb\x8b6^\x90\x18RR@)\x0e\x99/\x9e\
+\x97\x92?J\xa2\xd8g e\xd8W\x18\xb6\x9c\xefB\
+\xb2`\x88F{5J\x0f8\x7f\xd1_ jh\x17\
+\x09\x09\x13z\x95\x80\x1e\xf7\x85>\xc7\xc0&1\xc0k\
+\xf4)\x81\x01\x0c~J\xcd@\x1aQ\x0aH`\x88\xf5\
+\xc5\xf7\x12\xf8c~\x09\xc8r\x1f\xf34\x81D\xf4f\
+\xdfp\xac\xa0?\xc9\x006\x9c1\x01\xd5\xa5\xbf\xb7\xec\
+*\xd6y\x90\xfa\xa2\x07e\xb7E\xa9\x11\xe7\x0c,\xeb\
+ \x18\x09$\x81\xa4\xfb\x9dK\xc9\xa8\xd1v1\xd9!\
+\x17\x94\x0c\x5c\x909\xc29\xf0\x99\xdc\xad\x026\xf9\xe8\
+\xb2\xa1y&C\x96\xba\x1d=_A\xe2W\x107\xd5\
+\xf7\xc7?\x18\x9bC:\xfe\xb3\x8b]/p\xb1\xdf\xef\
+\xeeb\x7f\xbf\x90Kr\x80\xefw\x078\xad\xb6w\x96\
+\xee\x1d\xdd\xd6.\xf6\xbe\xef\x99\x9cS>\x9f6\xa3$\
+X\x12I\xdf1\xc5!\xa7fv\xd6F&\x1b+\xf0\
+r[\x0a\x14\x5c\xe2\x1c\x02\xc3n\xc3[\x87\xdd*\xbd\
+\xa7@=\x0e%\x08\x8e\xeec.v}\x8d\x8b\xec\xbe\
+\x85*\x96\xfd\x9f\xbbTzh\xb9\x9c\xa8 \xc3:^\
+\xc4\xa5 \x91\xba_\xb8\x94\x00\xcfxG\x97R\xe3?\
+\xbe\xc1\xc43\xffW\xb8\xd8ud2Q\xec\xc1\xee/\
+.\x1a\x1fs\xf0\xbb\xed\x5cJf\x90\x8c{\xe2\xfc8\
+\xa9B\xb8\x89l\x8d~\xea\xd8\x15\xa3\x83\x14x\xdbJ\
+\x81\xe6\xa3s;\xb7\xe8\x9a5\xe5R\x91\xeb\xfd\xd1\xa5\
+ M\xfa\x9d\x5c\x8a=\xd7\x1dgr|E2\xe8L\
+\x0b\xb6\x8e\xfb\x7f\x99\xd8\xfe\x9c\xba\xd9\xe4\xa6B*7\
+5\x97\x89\xed\x9f\xfe\x87.j\x87vL\x090D&\
+[P\xf5D\xd2x\xbc\xfc\x91\x7f$V\xf8\xb5\x9d\x15\
+~\xea:\x17\x1b\xaf\xbd\x5cJ&\x172\xbbhK\x0b\
+\x17\x06\xf6\xefC\xd3\x91S =(a\x18\xff\xdb\xa5\
+\xea7\xff)\x17\xbb\x8f=M\xdeo\x9f\x7f\xb6\x8b\xfd\
+\xff\xa2.U\xe0\x8fDL\xcb\x85\xd5\x96\x02q\x1e\xb4\
+H\x02\xecQ\xecV\x10\x9e\xd8\xcd\x9c\xb7\x0b7\xf6!\
+\xa5^tK\x91cN\xdbp\x9e\x0b\xc7\x94\xd2\xcd \
+C\xa7\xfd\xae'*< \xf7%\x17{\xce\xad]l\
+\x9c\x8fq\xb1\xdb>\xd9\xe4\x94\xc2\xf1\x00r\x0b\xbf\xa3\
+\xff\x90Kq|\xa34\x8d\x80\xaf\x12!\xc1\xa5\x00i\
+\xefJ.v\xdd\xc2\xe4\xd5\x0aD\xfc\xb4\xb2\x17\xe1J\
+Q\xe6<\xd8\xf6)M~\xa3J\xf6\x84\x04\xed\xfe\xd1\
+=\xd4=T\xbd_\xfe\x0c\xdd\xf2(I\x1dv\xce\xa5\
+`S\xbfw)\x1c\x1f\x046\x03\x11\x88\x1d*\x04\x1c\
+\xddW\xa2\x0d\xe5+\x86eS\xa0\xe6\x8c\x89o:\x97\
+\x89\xe9\x99\xdd\x5c\xcf\x0c\xeb\xb8\x94s\x1dr\xec8\x7f\
+A\xe4\xb1n\xf0\x03\xb0\xa7pk\x08\x00k\xddN\x12\
+\x19\x0b\x88\xbc/\x9b\xad\x05\x99~\xa8\x90\x12\x8c\xaew\
+\xa9jL\x04\xf1\x8fH4\xb5\x0bDt\xc90+#\
+6|c8m8\xad:\x10Y\xd0m\xdb7\x0eh\
+\x1cG&L\x11\xb30T9\xa81d\x80\xdc``\
+\xe8 5\xf7$E\xdc\xed\xb8\xcb\xb5}|.\xdf\x87\
+\x01\xcb\x01\xdc\xb0D\x87A\x8e\x83D\x06[\x90Cj\
+L\xa8\xed\xa1v2\xfa\xa9Rb\xc0\xfb\xd9\xb8\x18\xb4\
+8\xaam\xfb>\xfe\x0e\x83G$)\x91\xf1\x84\x95\xd7\
+\x7f\xfb\xb0\x22|\xcb\x14\xa8\x0d\xed\x87\xc2Pc\x01\xe3\
+\x90`\x80r_ (0\xc4XH\xdc\x0f\x8e\x8aX\
+(\x83\xc5\x95\xf1$\xa3\x01\xd4\x88\xcf\xc5\xc0##V\
+\xf7\xeb\x1eU\x86N\xdb\xd7\x94qY9\xd1\xe8\x94Z\
+B\x02\x17\x18D\x5c\xdbZ\xe6\x86\xed\x7f\xb6\xf9\xc4Q\
+k\x91\x17\xdcO\x0b\xf5\xe49y.\x029 \x0b \
+\xbf\xe4\xf9q4!W$\xf2\xc6\x81\x81\x01\xc8\xfd\xf1\
+\xbc(b\xd6\xc3'\x94i\x83$\x0c\xc7J\xf3\x1b,\
+\xd7\x94\x1e`(\xe3\xe0\x89\xf5?\xbaX\xd0\xae\x84\xf1\
+\xa4\xcd\x16\x01;\x1c\xab\x96\x84\xecY=w\x1b\x10\xe1\
+\xef\x80\x5c\xe3XO\xc6<\xe6\xe7\x80}Y\x86Q\xff\
+K\x17\xbb^\xedRj\xe4p\xc0G\xdf\x1d\x9d3:\
+\xa7 \x89\x22\xa3\xd8\x90\x7fFF\x95\x8c'H\x0d\xe6\
+\x85\xbf{\x95\x14\xe1\x1aZ\xffkOw\xe4\xc2`G\
+\xaf\xcc\xd1d\xf89(\xf9\xc11E\x1f\x11\x81g\x1f\
+1\xef\x04\xdc@\xc8\x90\x89&\xd0\xa2}N\x86\xc8\xcc\
+\xa3;\x86;\xca>\x8c\x8c?\xfb\xefI\x97\x8a\x8c\x94\
+}\xcczc}\xf3\x5c8\xac\xec\xfb\xf5\xb4>\xc8P\
+\xce'\x07\xb2\x94\xc2d\x87\x9f\x1f\x0c\xc0\xa5\xa6\xcfc\
+\x18\x12\xac[\x1c\xad&\xa0\x1a\xf7O\xc0`\x039\x8a\
+8p8\xfa\xe8a\x22\xd8\xca\x04F\xc9\x08\xfa\x8b\xef\
+\xa3\xb4\x04.\x02\x1cP\x02\xae8\xda\x94\xe2\x10\x08P\
+;\xa28\xaf\x80\xe8)\xe3\x11\x0e\xf3v\x0a\xec\xb1\xde\
+\xd1\x8b|?\xeb\x85\xe7b\x1e\xe1\xd4\xa0\xd6\x1f}\xc6\
+9\xc7:\xc5QD\xdf\x10\x98d\x1e\xb9\x7f\xc85g\
+\xe8\x0a\xc4\x13n\x01\x02. \x8a\x04\xe9\x8f\xf6\x85\x94\
+\x1a\xd1\xe7\x9c\x1aE\xce%\x022\xaccuw\xa0t\
+. \xf68\xc8d\x92\x1db\xbbW\xf9\x9c\xd0/\xac\
++\xc8\xdepL1\x10q8_\xebR!\xa9\xd0\xe3\
+\x18\xb0*\x99\x8aR\x04q3` b\x8f\xc4\xe7\xea\
+\xb9\x81\xa0\x064\x9es\x80\xfb\xa7\xa6\x16\x07\x98\xf9c\
+\x9e\xb8\x0fH\x04\x09\xb8\x92yg_\xd1\x85B\xf7\x15\
+\xf3\xc5\xfe\x03\x91\xc2\xba\xe5\xf5\x8b@\xffc}\xb4\xe7\
+\x0c\xe7\x145\xa3\xd8\x03\x04\xe4\xb1\xb3\xc8|\xf1}\x0a\
+\x00\x04w\x105\xc6\x04\xfa\xa9Y\x06\xda\xcd9\xcd\xfd\
+s\x9f|\x0em\xf3d\xff\x8d\xe6u\xa9J, \xcd\
+\x84,\x9aR\x0c\x10\x18 \x83@\x00\xd0\xbe\x0e\x16{\
+\xcd7\x19=\xba2\x8c\xde#\xa8\xfcm\xa3\xdbS-\
+>\x19-\xfa\xb2_\xe8R!F.K|\xd9\x13\xdd\
+[LvVBc\xe9\x0a\xfa\xfe'\x97\xe4x\xec\x9c\
+\xda\x86\xfdg\xf4h\xca\xe0\x93\xc1\xfd\x9eK\x15\x7f\xf9\
+\xb4\xc9\xc1\xa5\xe4\xb2\x9fr\xb1\xebR.%\x13L\xc9\
+\x02\x01\xeb\xee\x1a\x13s\x18\xbb\xdf\x98\xdc\xa2\xbe\xf0g\
+$\xce\x81s\x9d\xa5\x9e\xda`2u\xdd\x9b]\x12\x02\
+ q\x03t\x87u\x87:\x19\x1fvd\xf7/\x17\xbb\
+~\xc2\xc5\xae\xb7\xaa\x14`\x7f\x17[\xbe\x0f\xb9\xd8\xf5\
+\x19\x17\xbbnib\xfb\xba{\x9f\x8b]\xd7r\x11\xc4\
+\xdf\xec\xe2\xee\xeb.e\xf9\x8d\xae\xcd\xed\xda\xba[\xba\
+\x9b\x13w\xc1<y~\xe9\xfa\x10\x8e\xe0\xf1B\x0a\x81\
+\x00\xa2\x84B\xfe\xc3\xb0\xd4\xb0\xf4\xb0t\xca\xc0\xe7\xb6\
+\xbd*\xbd\x1c\xfe$\xc7\xdf\xd9\xf8\xed\xfc\xe8\x7ffr\
+]\xe9v\x15\xa5\xb1?J\x18\xac\xc8\xf0C\x92\x96\x1c\
+|\x1b\x97\xa9k\x5c\xec\xf53\xb9/{\xe2`\xb9\xa8\
+\xaa\x95^2Y\x1c9\xe3z\x8f\xecu'3\xdd\xc4\
+dS\x9d\x1bs\x89\xfc\xf0L\xb1\xf8_b\xe3\xf5w\
+\x97R\xdb\xdd}\xd4\xc5\xbe\xe76\x97\xaao\xfd\x99.\
+%c\x1c%4JTu\xfb\xb9\xd8\xe7-\xe3b\xaf\
+wq\xa9\x1cS\x12v^\x02\xe0\x8e\xf1\xdf\x5c\xec\xba\
+\x99K\x15h\x1428JWY\x90\xe8'\xf4\x00?\
+\x9c\xc7p\x8f\xb8\x95\xbca!S\xe4\xef\x03!D\xb7\
+\x1c\x02\xbe\xecO\xf4!z\xc8\xc3zg\x95qNZ\
+\xa2\xe6\x08\x12\x12\x14Hy\xea\x9d\xe2%0\xf7\xb9\xd8\
+\xf3\xef\xeab\xb7\xbf\xbf\x8b=\xe7/r7\xa7\xa9\xcf\
+\xba\x08\xe1\xf6\xdaJ\xafp_\xee\x8e\x7f\xacB\x1e\x1c\
+\xe8R\xd91\xd8\xcfpSA2\x8f\xa3\xec\xb8\xb1}\
+J\xfb]\xec\xaenK\x97\x0a\x09t`\x7f\x80\x93M\
+\xdb\x18\x9d\x91\xc6i)\x9d\xefp\xee\xfcJ\xe7)m\
+HAv\xa8\xf4oX\xc3%\xd9\x99\xd9\x9eQ\xa9\xf6\
+\xd4\xbe.\xd5yK\x80\x9e\xc4\x04m\x8cE\xa6;l\
+\xeaR\x95\xd4Q\x12\xc08+\x803\xec\xebR\xcd3\
+\x5cVt\xb1\xc1^\xe2|\xc0\x8e\x22\x90r\xa9\xba\x09\
+\x88\x13c2\xda\x1c\x88\xc4 \xfaR\x02\x1d\xdb:\xf1\
+,\x17\x92\x05\xc8ND\x9e\x10\x11\x06\x1c\x01\x22\x14N\
+\xdaple\xe0\xe1H\xa0q\x0a\xf4{z-\x0b\x06\
+8\x07\x12\x0b\x94\xff\xe7{8\x18\xd9\x08D\xc6\x81\xa4\
+Q{J\xcd*\x06<\x8eK[C\x83\x03\xc8\xfd\x91\
+Ya\xa15\x192\xa00dhb!p\xd0z\x85\
+\xe2\x11\xda\x88\x1bW\x91u>\x07\x83\xe0eM--\
+\xbf'@\xc2}p\x7fM\xc6\xc7\x1cD\x97\x02E{\
+\xc0\xa5\xaa\xd9\x81TEmn\xd2\xc2\xdf\xaf\xfa>\xc6\
+\x8d\xf1\xc6`\xc2\x00\xc01\xc00\xe0\xef|\xd4fU\
+\x0e\x16\x8e+\xef\x1f\xa7\xdcq\x9e\xaf\x97\xbd@\xc9\x05\
+\x08\x80\x16Z\xcc\xfcR\xdb\xed\x19\x9dWT\x8e\x0c\x86\
+7\x8e3\xdf\xdb\x92\xde1N\xfc\x1d\xdf\xd3\x06\x90\x08\
+\xb4\xb4\x99\xff\xb6\xa6\xe6\x7f\x91!\xcf\xef\xc7\xd0b\x1e\
+\xf8\x1e\xd6\x19\xed\xd1\x88\x8c\xb7\x19&2B</\x99\
+K\x0cc\xf6\x15\xed\xae\xa8a\xa5\xe6T\xec\xbd\x91\xd1\
+\xc3`\xa5K\x00\x19a)P\x1c\xfe0\x18q\xd8h\
+\xeb\xb4p\x03\xf1/\xfbq\xba!\xfa\x9c\xee_\x88\x00\
+\xd8L\xa3$\x80\xf7\x91\xc9\x22\x80\xc7A\xc6\xf3\x081\
+\x13\xed\x82\xd4\x07\xd5\x8c\x88l\xd0\xb3\x1eX\xa7\x04\xf6\
+\x08\xa00\xee\x1c\x5cp3\xac(\xf24\x1cA~\xcf\
+\xfaYC\xaf\x97\x97!O&W\xe3\x12%0\x04\x16\
+p|Y_@\xec\x17t\xa9\xf4\x01\xed\xf3X\xff\x8c\
+\xef\xaar\x88V\x09\xa4A^\xaf\x93Q\xe2\x92\xc7\x15\
+\x88?\xed\x1a\xd1C\x18\xe8\x1a\xc7`\xa5\xe7\xc0a\x1d\
+q\xc5\xb1\xe0\xbea+W\x9b\xcfh_\xca\xc1)\xb2\
+\xbc\xb8\x1f\xf4\x1dW\x1c\x11>\x1f\x07\xaf\xe9\x07\x1e\xed\
+\xcb(9\xd8X\x0e\x11\xeb\xb8\xd4L\x13\x88\xc8\x81\x10\
+\x026dV\xd7T@cs\xb5_\xddZ\xb5\xd0\x7f\
+\xca\x07\x1e,\xf6\xd1\xc6\x90\xfd\xc9\xfc\xe2X\xcb\xb1\x0d\
+G\x83Z\xe6\xe7\x5c\xaauJ\xa6\x84}H\xa6\x1a=\
+\xc3xr\x10\xb3.8\xbf^,`\xcb\xfc\xb1\x8ey\
+\xcd\xbc\xe0\xe8\x13P\x11\xf9\xdb\x88\xf1\x95\x81\x10\xdd9\
+\x08\xb4+\x90\x15\x8e?\x012j\xfd\x80\xa0\x8b\xdc*\
+\xda,\xa2\xe7y>\xee\xbf\x09T\x86\xa1B\xa9\xc5\xdb\
+\xa7g\x1c\x22\xc0\x81\xbd 2\xab \x8b\xa5\x16\x92\x12\
+\x05\xf4%\xe3\xab\xf3#\xb8}\x08\x10p\x7f\x04\xd8\x19\
+/H~EV\x17\xed\xa8 \xb9;\xcb\xa5\x186\x11\
+h\x83\xd4\x0eR\xbc\xb6\x0b@\xdb\x8f\x9c\xf5\xd0\xb6k\
+E\xcf\x13\xd8\xc4@nIb[N\x89v_\xbeX\
+\xed\x7f\x8btD\x8fb\xf7\x90\xd9\xc3\x8eb\xbdq\xde\
+\x80\xf4Q\x00\x9a\x9am\x0c\xcd\x80\xe4\xca\x9e\x1b\xdd\xe8\
+R9\xde\xd8K\xe8\x03\x90\x02j35\xfa\xabKU\
++N \x96\x925\xc8\xab>\x99$\xba\x18\x04y\x9c\
+\xb8q\x08\x90D\xa0\x1a\xbd \xc4\x02\x8eRtG\x02\
+\x11\xb6\xa2JP\x17p\xb1\xeb=&wW\xec\xd9:\
+\xe7S\x1b\xbb\xa3\x15\x18}\x83\x1c\xf1\x0b\x04U~\x95\
+H\xf2\xde*\xf2\xbd\x1f\x9a\xda\x9e\xc7d\xee\x12\x98\x0f\
+GV\xfa\x8c\xc0\xfa\xe4\xb5\x93?\x9b4\xc7x|\xe3\
+\xf8Wc\x1b\xd7\xa9\x03M\xcc\xf1\x9dZ\xda\xc5\xae\xcf\
+\xb9T\xed\xf4D\xc2\x97\xf6\xcf&\x05\x82\x1e\x19~!\
+\xc0F\xffv)$\x868\xf8 x\xba\x7fv\x0fw\
+\x0fK-\xd8\xbe\x19\x1f\xe9\xa2\xae\x01\xdeO\xfd\x02\x17\
+\xbb^\xedb\xbf\x7f\x9d\xc9vv]\xd4\xc4\xd6Y\xf7\
+\x05\x17{\xbd\x83\x8b\xbd\xbe\xd8\xc4\x1c\xf4\xf1q\xe3\xe3\
+\xc7\xe6\xa8\x8d\xcf\x1b\x9f;>\xd7\xfe\xbf\xf7\xbeg\x22\
+E\xfbnB\x1a\xbc\xcb\xb9\x0fF\xc7\xba\xd88\xac\x92\
+\xb9y\x86U]\x0a\xe2#j\x89\xaf\xce~\x80\xb9\x13\
+G\x0eG\x16\x04\x15\xd0o2\xff\xfd\xd7]\xec:\xb7\
+K\xb1OFK\xe6\xf1\xe8?\xe0Rj\xd1\x13\xd9\xdb\
+\xb5\xca\x8c\xdb\xf3\xf4\xf3\xba\x94\xcf\xa5\xb6?\x02\xb4 \
+\xb0\x1c:\xfd\xb0\xb8R>^e\xec\xf779\xa0@\
+\xd3\x93\x9b\xf6\xae\xd4>\xf8\x94\xce\x1c\xd6\xc9\x7f\x9b<\
+\x92\x02!\xd7\x8e\xae)v\xf2\xf0?\x13\xfb\xfc\xa9\x95\
+L\xec\xbc\xed\x17wQ\xe9\xc8z\x85$\x8f\xf1\x18_\
+\xebRu\x81P \xb8\xff\xa6KA\x18L\xdd6u\
+\xfb\xd4\xed\xf6z\xe1\xf1Bc\x0f\x88<f\xf2\xdf*\
+\xc1\xaa\xee\x14\x9c\xf7QZ\x85\xdeB?<\x9aR&\
+\x85{\x81\xdaq\xd9Y\x01A'\x80\xa8~\xf7)\x03\
+>\xa3*\xb1\x82\xa3\x8a\x92n\xce\x07\x02\xdf\xe2\x9eI\
+\xf6\xde\xcc\x0a\x19\x87\xbeUm~p\xafQr\x80=\
+\xaes\xb0\xdf\xc2\xc4\xf4\xd5\xac\xcd]J`mr\x0f\
+\x17u\x05\xb8\xa8:O\xb9\x0f\x10I\xba_\xd6e \
+\x02\xe4\x00\x13\x98\x05\x89\x17m\xd5E\x06\x19\xa5\x9d^\
+\xb2\xe3m1W5Y-!U\x92\x1dK\xa9\x823\
+\x848GH\x9c#\xcc3\x09U\x10\x07\x04\x1c \x9f\
+\x85+H\xdd\x88\xfa\x95]\x0a\x07KpZ\x09\xf9\x13\
+\x81kq\xb6\x04\xb7\x1e\x1cZ\x90\xbc\x1e\x99\xf7\x17\x9c\
+\x01a\xff\xb2\x1e(\xa9#\xe1\x82\x9dABE\x89\xe3\
+\xe13.%Q=ID3\x0e\x1a\xfa\xb8;@\xeb\
+\x97e\xc0\xe8C\x9f\x1c\xcc\xbfW\x03\x8ba\xce\x01O\
+\x06\x88\x09d\x01a\xa8\x91A\xc1\xf0l#\xe0@\xfc\
+9\xa89(18\xf9\x1c\x0eJ2\xffD\xe8i\x97\
+\xf0\xb0\x22^\xcf\xfb\x16\xaej\xe9P\x18-d\x1c\x07\
+\x87\xfb\x05Z\x88#\xc9\x01\x8f\xe3\x0e$J\xfd=c\
+\x81\xd5\xb5\x7f\xcbW\x0e\x08\xfd\xa1\xa9\xe9\x06\xba\x8c\xa1\
+If\x01\x83\x91H\x1f\x8ek\xdb\x1e\x0eC\x85\xc0\x02\
+\xd0?\x1c\x14A\xc8\x02\x22\x82\x01^C\xf0\xe7\xae\x1c\
+_\x1c\xc86\xb3\x85aHF\x13\xe8\x0dl\xdc\x18n\
+s\x04;\xfa\xfc\xe1\x00-\xa5\xf9\xea\xab\xf1oI\xd1\
+\xc8\xa4\x8b\x04,\x1cJ\xd6\x05\x06S;\x0fdR\x99\
+'\x0c\xaf\xd60c\xa3\xf0y86\x8c+\xeb\x8c\xf1\
+n!\xec\x5c\xa9\x11_D\x9f\x8f\xe2\xc3\x90\x11yX\
+dfUC\x18\x8a\x09\x96TJ;0\x0c\x197\x9e\
+K\x8a4Q\x1b}&\x19b\xa9\xcf}d\xea\x89L\
+r%\x03\x86\xa3\x07\xc9\x12\xb5\xb0G\xe9\xfdj\x8f\x14\
+\x01\xaaB\x9a6\x9d\x04\x8e}\x81\xa3\x0f\x04\xf61\x97\
+\xcaPm\xa1\xb4\x18\xd2\x5cY\xaf\xecg\xf6)\x1c\x09\
+\xaa\xa1\xec\xde\xedb\xcb\xfaH\x97D\x9e\x92\x0f 2\
+\x83\xbf\xcc\xa5\x02\x01\x09.\x0ep\x0e<q?\x132\
+\x8c\xe7iH5\xf9;\xf6[\xc3\xf1\x11]#\x18?\
+H#\xef\x13\x89\xd6\xa2\x0a\x98\xc0i\xc0\xfa\x9d\xa1\x8c\
+\xab\x90\x02Q\xab\xcd:b\x9d\xad\xd3d\xdcQ\xccm\
+\x17\x12\xc6\x09\x84\x02\xdf\xc3\xfa~H\xfbgi\xbd\x9f\
+\xda\xfb\xd5\x95QF\xef\xb2O8\x10@B\xbcV%\
+\x22d*q\x1c\xe8\xe6\xf0\xfc\xf4\x92\x98\x88\x1c;\x89\
+\xd3SU\xed2\xf7\x03I+\x10\xea\x95B\xefe}\
+\xd1\xd6@\xa3\xbf\xa9\x85^_\x01\x895a\xdfW\xe0\
+\x80\xf9a\x7fp\xbe(3\x1d\x99`A\xd1\xc3A\x06\
+\x8aK\xa9\x01\x81m2\xe3\x04Z\x818\xb2\xcf\xdbL\
+\xec<\xd1\xbeqz{\xc26\xa0\xd8\x04\x84BOp\
+ \x13\xf0n\x91\x22\xcc\x0b\xc8\x10\x1c\xcb9\xc4\xfa\xbe\
+\xb1>\x1f\xa4\x00z\xa6\xe5\xf6 \xc0\xf4j\xf5iF\
+\xef`8\x08i\xe1\x15\xbf)\x10x\xa7\x90a\xd4\xf4\
+7\xc8\xad\xd1\xea\xba\x1f\x02coU;E\xf4\x1a\x99\
+d>\x9f\xc0\x10\xfb\x1a\x87\xb0\x09\xb4S\xfaD\xadh\
+\x90\x0e\xa27q\xb4\xc9\xf8\xc3M\x80#J\xffx2\
+<\x22\x0d\xe5\x9cB\xbf\x0d\x07\xb9T\xf7\xd5\x94\xc2D\
+M<\x082\x02*\x9c\x87\x9c\xff\x9c\xa7\x9c\xaf\x90B\
+2\xfe-+\x7f\xcb\xc1\xc0|7\xf3\x14]\x04@\xec\
+\xa0\x07\xda\xd2C\xba\x91\x88}?2b\x04N\x9cM\
+\xfd\xa7U\xcd9\xa5E@\x8f\xff\xe6R\x05D(\xfd\
+\x91#\x1a\xe4\x7ft\xf1Q[\xbc@\x960\xbf8\xf6\
+\xd8\x01\xe8Y\x91\xbe\x81D\xf2|\xafg|!\xaf\x8a\
+\xcfc\x9c4\xcfN\xb1\xe5$[v\x17\xa9\x94d\xfc\
+\xe3\xf1%c\xcf\xbc\xde\xedR2\x851\x1e?K\xe2\
+\xf3\x90\xecRs\x7f2\x09\xe3KR\xd1R\x86\xec\x7f\
+\xb1\x04\x0e\xbb\x97\x98\xcc\x95\xdb\xc39\xd9]\x90\xe3\xdd\
+\xe6R9\x9cd~\xd5\xdd\x86\xc0/\x99r\x90!Q\
+b d\xc10\xff0\xdf0\x9f\xfa\x8a?]\x91\x16\
+\xca\x90\x1f>\xeb\xa2\x00\xfe6\xd5\xb9\x8f\x01.{,\
+j\xc4\x09\xc8\x93Q\xd4\xdf\xd3\x0d\xc0\xdc\xc7%;'\
+'{\xde\xa5\xd4\xc2w\xdfv\xb1\xebS.6~\xe7\
+\x98\xd8s\x8c\xefp\xb1\xebL\x13[\x97\xdd\xbfM\xec\
+\x1c\x1a\x1f\xeab\xd7\x8f\x8f\xf7\x1b\x9bC\xdb\x9d\xe4b\
+\xaf\xd7w\xd1\xfb\xcfId\xa5\xb9\xa4W\xec\xfe\xc1\xe9\
+\xa0\x04S\x94\xee\xaa\xb4\xc7{\x12xW\x02[+I\
+O\x0c\xdfp\xb1s\xfc\xe3.%P;\xbc\xcc\xa5\xd4\
+LO\xdd\xe4R\xda\xfc&\x0a\xb8;\x8a\x83\xd7\x9f\xe6\
+RH\x11\xfbg]*\xf26\x95\xf8D;p2\xce\
+p\xa9\xac\x94\xdb.\x0e\x9f4\xf9D!\xeb\x0bR8\
+\xbaR}<\x93\xa4\x8e741\xbb\xa0\xbb\xd2\xe4*\
+{\xfd-\x17\xfb\xfb=]\xa4'n\xab\xfa\xda?\xe4\
+R\x1c\xc4@(\x81\x90\xa1=\xa5\xc80\xfbK]\xec\
+\xef\x9eu)vv\xb7`\xb7@\xb7@E\xb6\xa8\x12\
+\x98\xe4PB\xa6\xfb\xb2\xaa\xb4\x09\x07\x8e.\x1b\xe8'\
+\xae\xea\x0aF\xe0-\xb8i\xd4\xbf>\xec1X\xe1\xd5\
+\x05#\x120B^L|1II@Rj$R\
+\xbf@\x92\x81\xb8\x81\x04\x94\xd2\x10\xfc\x05\x1cU\x95\x08\
+\xc0\xfd\x90J\x1e\xec\xfe\xfa\xed\x5cl=\xfc\xd3\xa5\xb4\
+\x09\x87\xa3\x22\xe1\x86\xb6\xabJl\x95 \x0a\xa45\xdc\
+u\xe2\xf0\x19\xbe\xe8R!\xd9i\x0f\x0b\xd7\xc4<.\
+\x85l09\xd4GT\xf6\xa2\xec\xb6\xd1\xbc\xa3\xf9=\
+\x91\x91\xdaa\xda>\xedOu)vh\xb0\xfdS\xea\
+\x03i\xa9\xba\xb1\xd1m\x03V\xfe\xa0\x8c\xd3\xfe\x09D\
+\xcb\xe7]*\xfbH\x01\x84T\xba\xb0E\x15\xd8f>\
+@\x962\x1e@\xfe\xf1\xd7\xc4\xe5\x13\x88\xa8\xeb\x5c*\
+;\x8dv\xae\xd8\x15:g&\x1dp\xea\x90\xd3\xa4\xc8\
+\xae\x93\xa1\xb7\x90j\xfb\x0f\xd0\xc1|k\xb5\x80ql\
+h\xbb\x03\xc4\x90\x05\x83\xe2\xe7\xda\x92\x93\xf1\xd3\x1a`\
+\x1c\xa4\x1c\xc4,\xd86\x03\xc3\xdfah\xc1\xdeK\xa4\
+Dm#\xc2\x10'0\xc0\xfb8\xc8p\x80\xb8/\x0c\
+\x176\x14\x11.\x1c\x11\x1cV\xd8\x8b\xd5/\xb6[\xce\
+\xc5&\xf4\xfb.\x15\xb4\x92\x8d\x02\xc9\x1f\x99L\x0c\xdd\
+\xe5\x1bC\x19C\x93\x88\x19\x0e3\xcf\x8d\xa3-\x07\x8b\
+L\x0fP\xf0\xc8\x98\xc3\xc2\x0b2\x80Z\xd2\xafd\x16\
+\xea\x08\xc0`\xc0`\xa8\xe0 Q~\xaf\x8c!\x0a.\
+\x0c\x01\xc6\x81\xf1\xe3sph\x16O\xd5\xe7\xa5\xdd\x05\
+\x5c\x0dj\xc7\x17l\xdf-r@\x1b\xdc\xbbS\xa7\xfe\
+\xd4\x04\x90\xb8\xbf\x17\xab\xd5\xe7>0\xdc[\xe8?\xf7\
+\x8d\xa3\xd5:r\xac\x9f\x86<%\x02Z\x8c?\xd0Q\
+):\xef*\x9b\xfa\xca\x92\xd9\x10t\x90\x03=U\xf0\
+T\xac\xa5|\xee\xe8\xed\xca\x10\xee\xa2}\xb1\x80\xd6\x1f\
+\xdf\x87\xc1\xf6\x85\x0c\x1d\xa2\x16)\x02:\x94x@z\
+B\xdf]\xb1\xe8GFU\xed\x19a_\x0eES\xcf\
+\xd3\xe2/\xd0\x17\x1e\x03\xfai=\xf7\xb3M{H\x1c\
+~\xf6\x17\x01\x14\x22\xd28\x04m[C\x91\x94D\xbb\
+\xc8S\xd5\x86\xe9\xee\xd1=\xa3{\xd2\xba\x98c\xe4\x5c\
+\x09or\x99\xbd\xdfz\xac[\x1c)\xf6I\x09`L\
+/\xe5@\xff\xf0w\xeco\x0crj\xb4q8q\xb4\
+p,p\xe8\x09s\x0f\x86\xde\x00\x00 \x00IDA\
+T4\xf1~\xee\x83\xc0RK*\xf6\xb8\x02\x93@\xe7\
+_\x1e\xd0\xf8\xbc\xdf\x97n\x10\x05C@\xeds`\x8f\
+\xfbg\x9d2_\x7f\xd5:e\xdd\xc2\xc2O{\x18\x22\
+\xbf\xcc+\xc8\x02\xf6\x19m\xfa\x80f\xe3\x80\xf2=\x90\
+3R\xf3\x0f\xa4\x17\x07\x0c\xbd%\x96l\x02.\xa3\x1d\
+\xa4\xb7\xb6\xd2x\xb4\x819JR\xe8\x9e RG\x1b\
+\xf3\xec\x08m\xa0\xbf_]\xaf[\xc7\xb7\xe5j\xa1&\
+\x99\xb6f\xe8'\xc6\xa9t\xbd\xc8\xdf\xc7\xb8\x120F\
+\xaf\xf0w\x9c\x07m\xcd5\xf3\xc9\xf8\xac\x91\xee\xd0\xd7\
+\xcdRi\xdd\xf0}m\x86\xbbm\x7f\xc8<\xb3N\xf8\
+;\xe6\x05\x87\x14\x87\x90\xfb\x05\xe9\xb3\xbdK\x09\xb8\x8f\
+\xf6\x13\xd9(P\xea\xad5?t\x89\x81\xdc\xedM\x99\
+\x84-J\x11T*G\xfb\x1f\x02\xad\xa6]rI\x19\
+\xef\xc7A\x05A!2\xb7p\x18\xc9\xe0*0\x13P\
+zJ\x02\xc9t\xb3/\x19\x07\xf4\x00\x99\x1c\x02\x98@\
+\xfeqXi;\xa8\x80M\x90\xba\x011\xe5\xfe\x14\xe0\
+\x89>\xcd@\xf2\xe5\xe8F\xa6\x032+\xf6\xab \xbb\
+\xd4\xc2G\xa0\x98\xc0?%\x85\xed>\xc7\x8ei\x03F\
+\xb3\x824s:\xc2\x91\x9aO\x0ce\x02=\x9cg-\
+)(\xb5\xb3p\x18\xb0\x1e\xd8\x07p\xed\xa0W\xdb@\
+\x04\xfb\x0c\x12g\x101<\x1f\xe7\x0a}\xb4)\xf9\x22\
+\x80\x00+7\x01\x10\xed\xb3\x80<\xd3}\x85q\xa6;\
+\x06\xa5(\xf4\xdd\x96A\xcc\xdfw\xbfv)dx\xe3\
+\xe5\xc6+\x8c\xedy\xc7\x0f\x8e\x1f\x18\xdb91y\xef\
+\xe4}\x93\xf7\xa5\x9a\xe8\xf4{\xfb\xee\x9c\x89<8\xb3\
+k\x8fN\xcb\xdc\x04\xe3[\xc67\x8fo\x16\xbb\xfd\x0d\
+v\xfd\x8a\x8b]\xe73\x99\xb7r\x88OqI\x1c\x02\
+&\xc5A\xe8\x8ew\xa9J\xe9\xe0\xda\xa0\xdd\x9d\x90p\
+\x09\xaao\xeb\xd8\x9b\x06z\xdb@\xd6m\x7f\x82K\x09\
+\xa8\xb2\x8d\xd3k\xd3KS\x87\x98\x1c\x5c\x8d\x03\x99~\
+\x05d`\xff&\xe3\x0f\xa7B*Ux\x8b]Ov\
+\xa9\x02\x18\xe2\x0c\xe8\xce09\xbd\x90\xf5u'\xba\xd8\
+s>lb\xebu\xbc\x85\x8b\xc8\x0e\xe7H]\x02~\
+\xdf\x99\x1d<\xb9\xae\xf3\xe6\xdb\xeb{\x5c\xec\xf7\x0f\xd8\
+\x88{\x89\xc0\xb6.v\xfd\x8b\x8b\xfd\xfe@\x17\xbb^\
+\xebE\x0bU`c\xc1\xcc\xad\xe0M\x02\xbdM\xa0\x9d\
+\xfdYo\xaa\xdbI\x04\xe2\xef\xce\xeb\x12.\xac\xfe\x93\
+.v\x9d/g\xec\xfb\xbd\xfb}z\xaf\xe1\xdf\xcf\xa5\
+\xd8\xf7\xb1N\x9crq\x8f\xe4\xb8%{:\xa0\xdb\xda\
+\xbf\x89;\xe2q\xb5;|e\xc5\x19\xe1\xa5\x5cn\x0f\
+;\xe3\xc0\xe7U\x1a\xf4\xabJ\x7f\xc2!E`\x0d\x84\
+\x8a\x1c\xb3n+\x97R\xeb\x9f\xba\x04\xdcY\xf6\x99\x87\
+{<\xe0\xd3\xff\xc8\xe4\xe2\xd2\x9dat\x8dKY?\
+\x01\xc9\x96?\xe2\x85\xce^\xeaL\x89\xc8\xd4\xc6.\xf6\
+\xfa>\x17\xbb\x1e\xeeb\x7f\xb7\xbcK\xd5.\x5c\xa5\x1e\
+\xc9A\x9dQ\xb1\xc47\xa4\xc1A\xfa{\x94K\xa57\
+\xc5\x09\x05\xe9bp,a\xaf\x11x\xf7R\x15\xaf5\
+\x7f\xb5Ku\xfe\xb9\xd6\xfdy\x95\x08\xd6\x02\x0fRB\
+\xf44]4\xd4.9\xec|\xf4?v \x09E/\
+\x94\xb8J\xed\x1e}}\xbe\xc2\xc5>f#\x93\x0d\x13\
+\x04\xfeYG\xf6\xf4\xd7f\xc4G\x22\xaf\xfcO)i\
+\x1a>\xe8R\x02=p\xa0\x0d\x97\xe4\x00\x07d\xa1\xf1\
+\x1c\x04\x92E&=\xec\xea\x92\xc6\xfd\x884\xee\xff\xb2\
+\xe7\xc9\xf6w\x0eps^\xd1u\xe9R\xf9}\xb4\xe3\
+\xbdJHw!\x0b\x13G\xc5q\xa5{\x8f3\x04$\
+\x8e\x00\xad\xaf\xf0\xf3\x18\x0fqP0\x8e\xfd\xbb]*\
+\x04\xac\xbahEW\x088\x8a@\xb8\x89\xec=\xba\x1c\
+\x80l\xa0\x04\x85\x80\xec\xaf]JI\xd0\x08\xf2\x0f\xfc\
+[!?\x83\x9bC\x08\x8a\xc9 \x13\xa2f^\x10\xbb\
+D\xf6pF\x951\x80uY%\x02\xfdq.\x05b\
+\x17,\xb1\xaa\x89\x87\xe4\x09R\x93\xc8\xc0\xb4\x90H2\
+\x0e\x1c\xac\x05r\x9d\x1d6&\xb6\x85\xca\x11p\x00r\
+\x09yW[\xbb\xcd\x06@c\xc3\xfe\x0c\x84R\x06\xef\
+p\xd7p\xe7pge`\xab\x8d\xd0\xc4O\x92\x04T\
+.\xfa\xea\x12iW\xbb\x87\xd92F<'\x0e$\xbf\
+\xc7\x80ac\xe3\x80p\x9d\xbb!\xe5\x22\x03\xc6}a\
+\xa0R\xe3A\xed%\x06\x16\x99b\x22}d\x5c08\
+\xdbZg\xc6\x1dC\x81\xef%\x90\x81\xa1\x8c\xa3\x0dR\
+\x83@\x0d\xf3H\x8d\xb7j\xe9\xc2\x00!\xa3\xa8\xda\xbe\
+\xd9H\xe8\x08\x80\xbcX\xd7\x05\xe6\x0f\xc7\xfc\xc5H\xff\
+\xda\x8c6\x8e\x1f\xcf\xfd/\x05\x8c\xe8\xe7\x8ea\xc5\xe7\
+\xe38\xe1\x003.(\x08\x9e\xf7ne<\x99WH\
+\xb2Dv4\xf1{\x19P8\xcc\x8f5\x90N2\xa6\
++\xc8!\xdcD\x19(J\x0cFz~\x14;\x99Z\
+2\xf8d\xec\xa8\xf1U\xbfh\xa0H\xc3\xfa.U\x06\
+\x17\x12(\x027\xecsA\x12CA0\xef%\x00\x90\
+Yd\xff'\x04\xcd\xe3M\x7fx\x0cQ\x02(\xac?\
+\x0e\x10\xa0\xbbwj_a\xf8\xd3\x0da\xb2A>0\
+?d\xe2\xc5\x86<!(\xe2\x88\xf9\x01\xc2\xce>#\
+\x13\xda\x92l\xcd7\x1dz\x16\xa4\x85\x9d\x14\xe3\xda\xca\
+<c\xe8\xb3\x0e\xe7\x0ch~~N\x9e\x17\x87\x8f}\
+\x8cC\xca\xfa\xc0 G\xef\x94n\x08\xf9\xbe\x96\xd5:\
+\x01\xea\xce}\xb2\xce\xdaR\x18\xf6;\xeb\x1e\x88\x1f\x91\
+\x5cJ\x1eh\x17\xb6O\xa2K*\x8e>\x99U\x02\xa5\
+-\xd7\xc9DS\xdbO`ba=\x0f\xcf5\x7f\x90\
+\xf0e\x07\x16=\xcex\xf0\x9c\xcc#\x88'\xa0n\xd4\
+\xbc\xb1\xdf:A\xeeW\xd5\xe7\x13\x18i \xfcaX\
+`\x888\xf4\xf7\x9ej\x9eq\xb0 5# \x86\xbe\
+\xc4\xd1\x87]\x996n\xd7&)dy8x\x04\x9c\
+q\xd4\xd1\x8f v\x166Gn\xe1*P\xda\xdcG\
+\xcc\xe3\x7f\x14\x00\xa0t\x86\xf1[P\xf3\xcd\x0f\xfa\x89\
+u\xdc\xd6\x90\xf3\xb9\x9c\x87\xb4u\xc4\x01\x03\xe9#\x88\
+~\x8c\xdfV\xca\xe4\xbeYl\xed\xbb\xaa6\x9c\x8c\xb7\
+\xf4\xe6h\x17e(\xc9$\xf0\xfd\x94\xc4\x10\x88\x159\
+R8\xfe\x90\x19\x12\xa0\xf8\xa5K\xe5h3n<\x1f\
+\xfb\x81y\xa0F\xdfI\xc6\xbeZ\xd8\xe6c\x1f\x13X\
+\x84\xe3A\xf3\x14\xed\xe9\xbe\xecb\xaf\xcfv\xa9\x12\x11\
+\x04\xa8pT\x81\x04S\x1b,\xfdI\x066\x0cT\xd6\
+3\xfb\x85\xf9\x07\x19 h\xbc\x17\x16\xa5\xd2\x22 \xb2\
+mw\x8f\xb6t\x0e\xae\x16\xb5\xad\x0c\xc7\x9e\x1f\xf4m\
+K\x12\xc8<\xa0\x8f\xf8\x1e\xba\xf7\x00\x91\x17\x947\xf6\
+5\xe3Nw\x18!.\xd8G\x04\xa8\xa3v\x9b\xf9T\
+;\xc5\xe8k\x0d\x12\x80\xc0\x14\xe7+\x995\xd6\x19\xf7\
+#\xfd\x1c\x19?A\x8d\xbb7\xb8TPw'=\xdb\
+3\x91f\xa5\xda\xea\xf1\xb1.\xf6\xfa\xe0\xee\x90\xee\x90\
+\xd2\xben\xf4\x97\x1c\x10\x9e\xd81\xb7\xa5#\xa1\x91j\
+\xea\xcd\xf1\x1ao\xe7\xa2\x1av\xb3;\xc7\x9b\x9a\xd8x\
+\x8d\xdf\xe3b\xd7\xde\xc5~\x7f\xb7\x8b\xbd?\x19\xac\x95\
+\xa3+\xd2\xbb\xd0\xb3Z\xff\x90\xd5\xc5\xf9\xe5\xe6\xfb\xb7\
+R\x00\xe24\x87\xfe\x8e\xcfsI\xc8\x05\x1333W\
+s)\x01\x06\x1cZ2\xcd\x11\xb0\x874Q]\x01R\
+\xb3\xe6\xbf%\xc76\xb5\xdf\x8d\xda\xfc-\x5c\xaaL\xff\
+\x1f\x5c\xec\xfa%\x97\x0a\xe1\xf06\x13\xbb\xdf\xee \x13\
+\x9b\xbf\xf1\xa7]J\x09\x84\x03\xfc\x1d\xe2\x9f\xb8\x07~\
+#D\x80}\xefx\xdd\xf1:\xe3u\x0a\xa9\xa0}\xfa\
+m\x9d\xcd\xd3\xf8\xfe\xf1\xbdco\x1f\xd8\xb9\x14\x88:\
+\xdfO\x02,\xda\xc4\xb1\xff\xc5\xc5@\x80\x08;\xa3\xbb\
+\xce\xc5\x96M\x9a\x08\xbb\x9e\x95I\xee\xa6\xaet\xb1\xe7\
+\xbe\xc8\xa5\xb4%3\xdd\x90\xed8\x1c\x14\x91\xc6%d\
+\xde*\xe2\x98\xb8\xb5\xe2\xb8\xf00\xdd?*\xbduR\
+j\xb0Z \xee8\xce\xca\x88\xe2\xe8F\xc9\xc8\x85I\
+Jf\xd5\xc3\xaa^z\xb0b\xe6,\x18\xdd\xed)\x09\
+{\xfdM\x17\xbb\xff\x83\x5c\xec\xfe/p\xb1\xff\xffs\
+n/\x19\xa4zJ0R\xfa2|\xcd\xc5\xde\xf7\x0a\
+\x17{\xdf\xeb]\xec\xf5J.\x15\x0b\xfd\xef\x5c\x12\x99\
+\xeb\xa1\xee\x7fu\xbbuo\xef\xde\x96X\xdd7rV\
+w\xc8\x12\xc3\xf1\xa6\x14\x10;\x8e\xf5K\xbbb>\x0f\
+\xbb\x9d@4z\x18\xbf\x88q\xf2\xc0\xcb\xfb\xaa\xcf\xa3\
+\x14h\xaa\xe9\xfe\x83\xbd\x8f\xbd\xf7\xc4t;0\xe1\x80\
+\x9e\xccz9\x9d\xbb \x10\xfe\xcf\xa5 m \x9b\x8d\
+\x80\xa82\xe2\xfd\xab\xfa\xcd\xfbWi\xfe7\xd3s\xee\
+\x5ce\xc4\x95\xc1\xef\x7f\xd3\xff\xb6\xffM:g^\x97\
+\xce\x99\x0d2\xc7\x01\xe4\x8c\xdd\xee\xdd;\x1d\xb1\x93\xec\
+\xb6\xa7K\x80\xa5?\xc7%\xb5u|\xc4\xdb:\x0e+\
+9]z\xc5%B\xbb>\x05\x06\xb9\xefaM\x97j\
+\x5c\xbe\x90\xc9-'N\xcb\xf3\x9eJ\x8av\xab\xba\x04\
+a\x071\xee\xe8m\xcd\x1b%.\xe8\x05Jb\xa2\xb4\
+\xe9\x89\x1c@\x0b\x92>\xec;\x12\x1d[\xba\x94R\x9c\
+a\x19\x97\xca\x9f\x12)\xed\xd4).\x95\x1dO C\
+\xdd]\xe2\xdcS\xa9\xc2d\x90\xd5apbp\x91\xf1\
+W\x86\x9f\xda\xb2\xa8)!\x02\xff\x1e\x97r\x03\xc1\xe6\
+\xba\xa2K\xe5\xe8\xb5l\xbcs6\x19\x1a\x0cm\x1cu\
+\x0c\xe2\x17#ik\xc9\x03q(8\xd0[\xd2\xbd\xd2\
+\xf6)\xf7S\x17ti\xe2\xa7b+f\xe3\xb0\xe1\x16\
+\x0dhlVP\x18F\x22\xb7 3\x96\xda\xa2lW\
+\xb1\x02\xbb9\xb0xe\x10\xf0|\x18\xa6\xdc?\x19E\
+2\x8e\x8c\x17\xdd\x05 sh\xb9\x100T0\x00`\
+\x09o\xdb\x88\x01\x19\x144+\xfa/\xd3\xa6F\x11\xea\
+\x98g\x0c\x122^8\x86-y\x1eW\xe6\x11\xb2/\
+\xfa\xa7\xb7%\x04\x18\xb2|.\x9f\xc7\xfd\xae\xd6@\x98\
+[.\x006\x16\x0b\x97\xf1h\xd7C\xd3\xb79\x22\x9e\
+\x9b*\xe3\xd1\x92\x1c\xa9\xcf}@\xc9Z\x87\x86\xef'\
+\xa3\xb6\x8dj\xf3\x05\xbd\x1e\xdd\xe2R \x861\xae\x9b\
+\xa8v\x96\xe7d\x9dr\xff|\x0f\xd0(j\xb3yn\
+\xc6\x8f\xf1!`\x04\x02\x84\xfd$\xc3\x9a\x8c\x05\xac\xe5\
+\xc3\x15\x19\x22\xd6\xff\xd1\xa5b\xd1W\x0d\x13\x90\xd6\xd9\
+ \xf5\xcc\xff\xac\xa6\xf6\x9f}\xc9x3\xef\xa5\xad`\
+v(\x19_j(\x15\xd9\x8c\x03\x87\xfd\xf5\xcf\x86-\
+\x9f\x83\x05C\x1b(3\x19N2g\x1b\xeb\xa0\xc2\xc1\
+l\xdb\xe7\xb1\xefYg\xb0\xfa\x83\xb4a\x5c\x17R\xa0\
+\x89\xfd\xd7r9\x90\xb1\x9fz\x11\xbd\xc4\xfb(\x89\xf1\
+\xcc\xc4\xb2\xd5\xba\x83J\x02\x08/\xddS\xd8\x0f\xb4\x13\
+\x5c\xb8\xa9\x09\x9e\xaf\xe1*\xe1\xe0\x06Q\xa1\xcf\x0f\x12\
+P\xc6\x9f@\xdf\x0eb\xc9]Y\x01\xaf;\x04\xc9\x06\
+:\xc6\xdf\xf3\xb9 \x14\xf8\xbeU\xb5\x0f[\x87d\xe1\
+x\xdfth3\xefc\xffQz\xb4\x9cK\xe5\xd8\xe2\
+0\xb0n\x97\x94\xc34\xd1\x8c'\x07\x1e\x8e?\xf3F\
+\xa0S\xa4Y\x91qn\xba\xb4DF\x17G\xe8W\xaa\
+\x81T\x89V\xb0\x93\x9f\x9edb8\xc1\xa5\xd4\xeaE\
+)\x08\xfb\x16=J[+H\xc7v\xd0\xfa\x81\x8c\xa8\
+\x04J\xb2\xbed\x1f\x10\x00\xe4\xff\xdb\xcc8\xe7\x02\xeb\
+\x022\x9f\x0d\xd4\xa5\x81\xf5F\x00\xe7\x12\x05\xa21l\
+\xc5B\x1d\xed\xef\xd6\xc9\xf3\x90\x02\x15\x8b\xa4s-\x19\
+\xc2\xd1\xf7\x1dv\xfd\xaf\xb8T\xfa\x06\xf6j\xda\x1b6\
+d\x8c\x91\xd9\x10\x99\x1b}\xe8c\xddQ\x22\xa4\xccW\
+ -T3\x1a\x1c\x19J$\x00\x91mI\xe9\xe2\x1c\
+@_\xe2\x00\xb7\xe3I@\x8c}\xder\x0c\xb1\xde\x19\
+7\xf4\x83\xf4\x0c\x81\x83\xe0\x08Q\x005\xda}\xe2\x00\
+cX\xb1\x0e\x99'\xcekJk \xb9c\xff\xb3\x1f\
+(\x85\x223\xc89\xc3>g\xbd\xb7\x01\x0c\xf6Iq\
+\xc4s@l[\x9d? 1\x08\xd0|9I\xb1/\
+(\xc5@_\x83\x00A\x8f|$I\xe1\x8a\xa1\xcb\x02\
+$\x9ar\xc4F{\xbaT\xe3\x04\xb2\x87uI\xcd0\
+\xed,\xe1\x0c\x10\xf9\x22\x1c\x03a_\x12\x00&PL\
+\x80\x90nH\x07\x9b;\xe0\x19\xf4\x1bF\xd7\x8fn\xa8\
+\xda\xe6\xfd\xd3\xc5\xae\xeft\xb1\xe5t\xaf\x1c\xd6\xed]\
+\xec\xff\x17w\xb1\xeb\xeb\x5c\xaa\x0c\xfa\xe7]J \xa4\
+\xfb\x8eK\xb1c\xa9\x91'\xc05\xbc\xd1\xc5\xae\x9fw\
+Q\xa9\xc0\xb7JW\x00\x02\xa7\xd4\xdc{^\xdc3\xe3\
+N\xd5\xe7d}S\x9b\xb9\xd82\x5c\xd1E\x99\xc7\xb7\
+&\x0e\x92wx\xc6\x95\x00J\xea\x22pIu.\x00\
+\xb1\xa7\xe6[\xa56\xc9Q\xd8\xabd\xaa\xbb\xf5M<\
+\xa3\xff\x9cK\xf5\xfc\xfec\xfb\xab{\xb5\xc9\x96)\xa0\
+b\x92\xba\x00\x5c9\xbe\xb2\x04L\xc6\x9b\x8d_5\xb6\
+y\x1d\x7ft\xfc\xb1\xf1\xc7R\xad\xfa\xd5c\xe7\x0ex\
+\xa5\x8b]\xaf\xd6ko\xbf\xf7\xd5\xd2m\x81\xf5\x9f2\
+\xdd\x1f\x91=yz\x15\xe0\x82\xdd_z\xa5\xbf\xc0\xc5\
+\xee\xe3#.6.\x17M]8uaY\x17S\x9f\
+v\xa9\x02\x98\x0a@\x0d\xff\xcf%!Z/w\x84e\
+*={\xba8\x80\xd8\xc7Q\x82q\xa8\x8b\xfd~5\
+\x93\xd5K\xa6yx\xab\x8b\xc8\xd5\x9e\xadJU\xe00\
+ 3\xaaq\xef/31{\xa9\xdb\xd9d\x97\xc2\xa9\
+\x94\xb8\x0c\x9c\x8d\xfe\x13.v\xdf+\xb8\xd8\xeb\xbf\xba\
+T\xed\xfb\xd8\xaf8\xbe\xca\x0cGI\xc4\xaa.v\xed\
+\x5c\xec\xba\xa2\x8b]\xd7tQ\x00|\xb9\x82\xe4\xea\xb6\
+q\xb1\xdf\x7f\xc1\xc5\xae?u\xa98\xd987\x94\xe8\
+\x0b\xb28\xda\xc0\xe1'4d\xe8\xf1\xb3A*\x0e+\
+mY\xb5/\xa3F\x9d\x12!\xf4i\xd3n=>\x9f\
+\x1f\xb3\xdaR\xc9\xae}\x8a\x93`\x06'\x0c\xe7\x82\xc8\
+\xe6\x12\x82e\xee\x120\x0e\x92C\x05\x96\xa6\xde\xe5b\
+\xaf?j\xeb\xcc\xf6c\xf7\x80\x8b\xdd\xfe)&vn\
+\xf7\x7fr\x11\xf7\xd4\xac\xd2&\xaf{\xb9KBv\x5c\
+\xe9\xc8\x0e\xa0\xf8\xe1\x7f\x1dgV\xf6qi\xbe^\xea\
+\xf3\xd5?\xdf?\xd7?\x97\x90\xb3\x09\x01e\xa7Q\xb2\
+\x0b\x86\xe3e\x0f\xc8\xbe\x81\xe3a\xe2\x80\x89\xfdM\xbc\
+]en\xbb\xae\x80r\x94*k\xfcFO\xaa\x94G\
+]\xf3\xba\xaf\xbaT\xfb[\xa5U\xc3\xcb]\xd4^\xf3\
+\x91\x120\x0cd\x03$\xeb\x90\xcb\xbf\xde\xa5\x94\x0c\x10\
+\x10\x8dR\x08\xb8\x1e\x14x\x02\x01\xcfz#p\x10\xed\
+\x14\xef\x97\x1f!\x7fk\x92\x8d\xca\x82\x07z\xcb\x86K\
+%\x02\xb7W\x07\xbf\xa0\x08\x01\x11\x84t\xe6G.j\
+'\xf8\xb9\xca \xc7\xf1/\x06`>\x90q\x84X\xa0\
+d\x0a\xda\xfe\xe2m\xed]\xcb\x9a\x8c!C\xbfa!\
+\x0e \x0b\x01Z\x1c\xed\xb0 \x97\xe1 \xfb\x81jd\
+Z2 \x0evX\xd3\x81Z~Rl\xa5\xb0\x9es\
+`\xaa\xfbA\x04D`\xddT\xe6*\x0c\x0c\x0c\x16\x9e\
+\x93\x83z\xb1\xc8\x14fvj!\x14\xbcwA\xea^\
+\xc08\xb1\x119P\x89P\xd1n\x09E\x00k\xa4 \
+\xd7@\x86\x9c[=\xb1\xabC\xce\xc3x2\x1e\xa5\xa6\
+:\xff\x90\x99g\xde\x80\x1c\xc3j\x8fACD\xad%\
+\xe5\x22\xe3\xc8\xf3\xb6\x19N\xc6C\x7f\x1f\xb5\x92M\xff\
+e\x1c\xaa\x80B2\x0e\x81\xc5\xd3\xb5pJL\xef\xf2\
+\x00\x14\x1fGWP\xc7\xd1{]\xd2:\xcf\x11W \
+\x88@\xf6w\xce\x90\xd9\xd1_\x5c\x0a\xf41\xe6\xf3\xf0\
+\xdc\xff\x16\xf2\x9c0\xa4pP\xc9\xb0b\xb0bp\xab\
+V2H\x1b\x87\x08\x14\xe5\xe7\x12\xfbh\xf4m\xe5\xfd\
+\x18\xc4\x8c\xb3\x9e\xa7{\xa5Ku@=\x9f9;\x82\
+\xbc\x13\xf2\xbd#u\xbf_R&\x8d\x0c=\x99\xac\x99\
+\x0ax\xfdW\xdfC\xe6\x9fu\xc0}\xb4\xeb\xe5\x9fB\
+R\xc8\xe0\x85\xeb\x82\x8c_\x05\x99\xce\xf3\xcak\xd0z\
+d\xfa0\xd0Uk\x15\x7f\x87\xe3O\x86\x0c}B`\
+\x0fC\x92\x80\x01\xefk!\xd8\x94\x5c\xe0\x10\xc3\xe9\xc0\
+\xf3\xad\xd4\xd4|\x13\x00l \xdd ,\xc2@F\xcf\
+\xe1\xa8C\xe6\x03\xcb:\x8e5\xeb\x9dq\xe4\xa0\xc2A\
+d\xbd\xb0O\xe04\x99h\xc8\xbf\xb8\x1f\xde\xcf8.\
+\x22d\x07\x11z2\x16\x04\xea\xe0 ! \xd2\xe8\x9d\
+p|\xda\x1ae\x10> G\xb8\xff\x12P\xc8\xeb\x97\
+\xdan\x9078N-\xa7\x08\xdf\xdb\x06\x16\xb9\x82\x18\
+`]\xca\x81#\x13\x1b\x19}\x02\x088:d2\x09\
+,\x01\x85\xfcV\x86\xe4Q+\x18\x8e\x17\x90A\x05\x5c\
+\xc9\xe8\x85\x01\x15H\x80\xcc\xd6;1S\x90x\xd6\x0f\
+\xeb\x92\xf9m\xfb\xcb\xb7\xfa\xae\xb4{\xcd\xe7\x0c\x9c\x00\
+\x8c+\xa5/\x8c\xd7}\x82\xca\xc3!B\x06]H\xbd\
+p\xac\x81\x86\xde\x9eko\xbd\x89\x9a\xb7Q\xc3a\x8c\
+\x1f\x1cK\xd61\xb5\xca\xb4A\x02\xe1\xa0k\x04\x18\xbd\
+6\xd8\x03/\xfbg\x83(\xd6;\x81H\xda\xce\xa2\xb7\
+\x09\x00\xa1\xf79\xafT\x93:\x9c\xecR\x05X\x09 \
+\xd3\xee\x89\xd2;\x02\x11\xad\xc3N\xe0\x92\x008\xdf\xc3\
+O\xddm\xa6&\x7fe]\x80\xb0\x22\xd0\xc0z\xe5\xbc\
+`?2o\x0d\xf7\x03\x19\xe3\xd1\x96.\x95^\xc6\xc1\
+\xa5\xa4\x00\xbb\x86\xd7\xac+8\x12\xe4\xf8\x04$\x9ay\
+\x87\xd3bF\x86\x94C\xae\x1cv\x89\xce\xf9\xa8\xfdW\
+\xe2%\x10V\xecG\xf4\x9f\x10\x9c\xb1\xff9\x0f8/\
+9\xaf8\xbf\xf8\x1e\xe6\x81\xf5\x00\x12BvQ\x8c/\
+\x01[\x91\x11w\x1b\xb8\xd8\xeb?\xb9T\x089\xda\x13\
+*\x83\xd5_\xd5_\xd9_\x99X\xb5S;i\x0c\xec\
+n_\x97\x921\xeb^\xef\xa2\xef_\xbej\x83\x09\x02\
+\x0d}\xc6\xba$@\xc1z\x04zN@\x5c\xfa;e\
+\xc6\x8e\xad \xb8\xf3'\xccN\x0e\x80\x98}\xd3\x7f\xc3\
+\xc4\xec\xa7\xfe\xbb.U\xed\xae\xec\x90\xc9\xf4c\xc3p\
+\x8dK\xb1#\xa7\xd60YS\x01\xc8KJ\xc6;\xba\
+i\x894.\xf4\x15\x01+\xf4\x868\xa4(U#\x81\
+\xd3\xad\xe3\x22(\xb5\xe9\xeb\xeeH\x93#t\xfe\x9bA\
+?\xfe\xd2\xf8\xcbc{\x8e\xf1\x9c.v\x7f\xfb\xb9T\
+\x8e\xfd\x9b\xc6o\x1c\xdbz\x19\x1f2>x|\xb0\xbd\
+\xef\x98\xee\x8b\x9d\xe9\xc3\xc9\xd7\xbb\xd8\xf5\x13.\xc5\x81\
+\xa7\xa4\xa1\xbf\xc1\xa5*!\xc2Q~\x97\x8b\xfd\xfe\x08\
+\x17\xbb\xfe\xd3\xa58\x1c\x04\xc8\xcd+\xeb\xa6\xba\xca\x7f\
+\xd0:\xeb\xf7r)\x01\x1a\x12j\xc3\xa9\xc3\xd7\x87\xaf\
+\x17\xc4-\xa5\x81\x81p\x84\x8c\x8d\xc4\x82\x17\x8c|\xba\
+\x82\x8a\xc3\xfe\x0e\x97\x84\x12.p\x12\xf4W\xb8\x14\x04\
+\xc6\xd4~.e\xfc#`\xec\x14\xab{\x15\xd24j\
+\xeb\xe9g\x1f\x81\x00\xce\xc3#\xb2}e\xd6j.\x89\
+\xd8\xb9\xdf\xa5\xb7\xf1\xea?\xda\xef\xdb\xef[\x1c\xb7~\
+\x1b\x17\x05P\xe6N%\xc7\x97\xa6\xd2\x8a\xf3G\xe7%\
+rE\xe9\xdbDR\xb7jq\xa4\xfb\xb5\x5c\xaasV\
+\xf75\x1bb\x9a\x04h\x1d\x00\x18*;\x08\x0e\xa4\xdb\
+\xd5]C\x89& \xf3 W\xe2s[\xff\x83\xef\x81\
+\xfc\x95\x92i\xcek\xd8\xe6\xc9h\xbb\xd7\xf4\xc9*\xa1\
+\xe2i\xd7+\x12w\xc2-^J\x0b\xa7B\xff\xfb\xfe\
+\xb6\xfe\xf7\xd2O\xbfJ\xa5\x18\xf3{)\xc6 \xfd2\
+q_\xee\x22\xc1<\x80\xd0\x18->Z\xc2\x03\x0a\xdd\
+\x1a.)\xd0\xd3\xa5@\x0f\x01\xcf\xb9R\x7f\xa3\x89\xe1\
+\xe3.\x15\x87\x90\xfc\x16\x12\x17\xa3o\xab\x14\xea\x8a\xac\
+G#\xa0D\xdbJ!\xdf\xa3\x9d%\xdc\x02\xaft\xb1\
+\xeb\xd8\xa5\xea\xb6\x22\xae\x96\xee1\x17O$\xb8\xd8u\
+k\x97\xaa\x14@\xc8\xfa\xf8>\xb5'\x8c\xd2i\x05\xbc\
+\x08\xb0E\x00\x9dR-\x05\x82 _\xecNu\xb1\xbf\
+\x7f\xdc\xc5\xae\xefs\xb1\xeb\xfd.\x051:IM\x7f\
+\xca\xd3\xfdA\x07\xed\xda\x85\xe4\x0e\xd6T\x1c\x11ws\
+\xdc\xd1\x19\x0ep\xa9\x0c\x1a\xa0\x06@\xc0\xc9(\xb5\xed\
+\x9b0\x00\xf9\x7f\x0cY\x0c\xedv\x81\xb5$e\x18\x88\
+d\x020$Y\xa8\xd4\xb4\x11!\x7f\x9f \xfa@\x87\
+1\xc8\xc9\xf4o\xd0\xb4\x8f*\x8en>\xf0\x80\xca\x01\
+\xc1\x86-\x97\xfe\x97\x9d\x0e@\x0cf\xee\x0f\x85\x8e\xa3\
+\x04\xb4\x91\x0d\xd0\xb6\xbf\xc3\x90'\x13B \x006w\
+E\xde\x82l\x83\x1aJ\xa0P\xf4]\xe6\x8a!\x0a\xa9\
+\x0f\xed\x02\x059!#\x1d\x10N\x0cY\xeeS\xcfA\
+\xdf\xca\xe0\x1a\xe0>\x19o\x0c\x5c\x0c\x1b\x0c\x1d\x02\x00\
+\x0480\x90p\x18Z\x92$\x0c\x0b\x0c\x90\x06\xb2\x1c\
+m\x9dd`Q\xcbE\x0dW\xcco\xe1\xa0\x98\x1ex\
+`\x5cqp0\xfc \x89\xa2\xdd\x15\x86\x03\x8aR\x1b\
+4jh\xbf%\x83Xl\xca\x13o\x14I\x14\x9f\x8f\
+C\x82CE\xc0D\x19\xcc\x80rA\xa2\x09B\x05\xc5\
+\xf9\xdf\xa6mbK\x02\x89\x81\x09\xc4\x9d@\x87\xda\xed\
+\x8d\x9e\x15\xcb9\x06\xef\xce\xfa>\x22\x7f\xd7)\x92\x0c\
+\x82\x84\xb6'\xa5Ow\x1e/J\x12\xc8\xfc\x94Z\xf1\
+<\xae\xdc/\x90'\x1cr\xf4\x81\xfe~\xb4\xb6H#\
+/\x16)\x0d\x81\xb6g\xb4\x7f\xe1V\xe0\xa0\x80c\x83\
+}\xc8\xe7\x13\x98#\xd0\xb7\xaeJx0\x5cY\xbf\x18\
+\xea\x1cX\xada\x05\xb4\x9f\xdf\xcf\xdb\x90L\x82\x1c!\
+\xc3\xc78\xa2\x9f0\xa8qpX\xc7d\x84\x19\x07\xee\
+\xb7-\xe1i2\x89\xb1\x7fp\xb0\xe1\x0c\x81\x0c\xecW\
+\xb9\xedY\xdcw\xc9\x94N\xaf=&\x93\xca\xbe\x84|\
+j\x0b\xad; \xfc\xb0\xe4s? o\xd0_d\xe6\
+\xd8\x8f\xadC\x044\xb8E^\xb0N\x19\x1f\x9e\x13G\
+\x9e\xd7\xb0\xcc\xe3\xf0\xb2\x8e\xd0\x1b|\x1f\xfb\x93\xf7\x13\
+\xa0!0\x07\x19\xa9H\x9e\x220 dK\x94pi\
+\x1c\xcc-N%\x02\xb0\xdb\x0foq\xa9\x02\xde\x1f\xcb\
+m~\xc2\x90\xc1\x80\xc2\xa1\xa0T\xe8\xd1\xa6}-\xeb\
+\x85v\x84\xba\xcfh\xe74\xa7\xf4S\xe9\x12\x92\x03\x07\
+@_\xd13<'\xeb\x01\x03\x8f+\xeb\x90\xf5F&\
+\x06h?\xe4\x86\xec\xef\x96\x14\x92\x92\x89\xf5]*=\
+L&\x1f\x07\x8f\xb6Ep\xc8P\xf3\xaa\x0ce|.\
+W\xf4\x14\xfb\x10\xfd\xa0\x9a\xd4\xd8\xef\xcc+\xaf1\xcc\
+A\xbc\x894,J3p\xec\x80\xf4\x02\xcdf_<\
+\xe0R\x05 x\x1fvC\x13`\x8c\x80M\xc3I\x12\
+\xfb\xba\x81\xb6\xce\x96h\xc0\x0e\xe1|\x84\xd3D%\x0c\
+QK\xce~\xe0\xef[\x04\x03\xeb\x1aD\x05\x01'j\
+\xef\x99\xafF\x1f\xc5:D\x9f\x11H\x11\x046\xb8b\
+>\xe0b\xd79r\xe2#\xd5P\xff\xb7b\xfb\xa66\
+\x95s\xaa\xe9\x9e\x13z\x8f\xfe\xe9*\x85\x08\x12HH\
+\xd7\x18ou\x1b\xa2\x14\x89\xe5\xc0\xfe\x18}\xce\xa5d\
+\xea\xa2;\x84\xec0\x1c\xbc\xfe\xf4\xfe\x8c\xfe\x8cT\x1b\
+\x9f~\x1f,\xf2*\xed\x012\x9b\x02\xe7\x97T\xe4f\
+\xe8\x1d\x91\x9a\x05'\x8eX\xd3\xe9\xfa\x81\x03M\xf7\x96\
+\xe8&\xa1\xc4\xc9\xe8_.e\x7f\xf5w\xb8\xd82\xf8\
+\x8d\x89\xdd\xcf\xack\x5c*\xc3\x9d\xf3M\x81\xaf\x94p\
+\xb3\xf3d\xfc\x88\x8b\xce\x1b;\xb7\xa6\xd2O!-\x8c\
+n>\x9c?p3P\x1aFb\x0dD\x93?\xe5\xf9\
+Um\xbe\x90\x19\x89\xdbi\x0f\xfb\xde\xd3L\x1c\x92\xfc\
+\xa9\xee \xcf\xfcwou\xb1\xfb\xd8\xdcE]\x01\x16\
+Mdw\x1b8\xd9\xdd\xe4\x07\x5c\xec\xf5\xf3.v]\
+\xd9\xc5\xae7\xb9\xd8\xef\x7f\xe9\xa2\x12\x8e7\xca\xe1\xdf\
+Um??\xa8\x80\xd0\xdbJ\xe6\x9e\x9a\xe6\xfei\x97\
+\xf2X\xe6\xf0\x9a\xd8\xf3o\xe4R!\xaedo\x0d\xdf\
+u\xb1\xef\xd9\xd0\xa5j\x87\xf6U\x17{\xff[\x5c\xd2\
+y\xf82?\x0fG\x0f\x8e\x1e\x1ay\x00\xf8R\x93\x9f\
+\x08\xc2\xfe\xdeJ\xcf\xa0\xaf9\xa7p\x8c\xc5\xf9\x01\xa4\
+\x9f\xb6\x8dm\xc2\xb1\xdf\xde\xa5B\x9e\xa4\x1f\x95\xb8|\
+\xd9^?cbz\xa5\xdf\xc4\xa5\xca\xd0\x1e\x90\xbb\x0b\
+\xf4\x1f\xea\xf7N}\xeb\xe10\x92\xbe\x1c\xbe\x97\x03\xb4\
+\xfd;\xfbw\xf4^{\x7f\xb8\x8b2\xbd\x9e \x9c\xc3\
+\xc5\xae{\xb8\xccN\x82NiH$rT\xc2\xd6/\
+\xebR\x91|c\xff\xa0\xaf8\x9f\xf0G\xf8\x7f^3\
+Q\xd8\xdfBf\xe1p\x82\x94\x0b}\x86\xdf\xc3\xb9\x83\
+\xff\xa4v\xe4\x90\x04F\xd7\x02\xb8\x08|\x16~$\xae\
+\x9e\xf3J\xa00\xf4\xd1:\x89&9\xbe\xbf\xdf\xb1\xdf\
+\xa1\xb7u?u\xb2K\xe1\xb2\x9a8kXwX7\
+\xed\xeb\xb5\x9d$1H&O\x18\x8e\x1b\x8eK\xa5>\
+\x89c\xc3\xc3m)\xe0&\xce\x8c\xd1N*\xd1\x11\x87\
+C\x0a\x98\xd9\xba\x9d\xfa\xca\xd4\x89S'Vd{$\
+\x9cH0\x92x\xc3>\x85\xec]\xe71\x01\x81@\x04\
+,\xe7R\x02\x01Q\xb2I\xfbG\xb9A\xc3\xc1.\x15\
+\x22\x8b\x92m\xce'\xceaJ\xc6H,h\xdf\x04\xb2\
+\x80\xf3\x81R[!\xcc\x08\xc0Q*\xdc\xdd\xe9R\xda\
+\x16\x8e\xfe\xe7R\x12\xc3\x93a\xf8\xb9\xd9\xba\x82\x0e\xc4\
+\x99U\xbf^E\x1e\xa8\x95\x00\xaa\x10\x90f\x22\xb1\xfc\
+\xccj \xd9\x1c\x84\xdc0\x86\x00\x0f\x86a\xc3\x86\xe4\
+\x80\x03\x22\x8c\x82o#\xdam-8\x9f\xc3\xf7\x11h\
+ \xa3A;\x07\x19@\xb1@\x95A\x1f}M\xed\x82\
+ppq\xc4\x94I\xaf\xda+\xe5\x88\x92\x1cmj\x96\
+\xcc\x09\xdcQ,\xce\xd9\xc0\xe6\xe0nkE\xa3\xf1\xaa\
+NJ\xfe\x9f\x03\x19G\x82\xf1\x02\x02N\xa6H\x91\xc9\
+ I\x11Dmx\x9d\x8b Q\xabU\x0e\x0a\xe3\xe8\
+\x05\x0a{T\x5c\x06\x8aD\x8e\xfe\xcf\xa5\xaa\xe1c\x1c\
+q\xfc8\xc8iO\x07\xf9\x13\x10\x18\xc6\x1f\xa8w\x0b\
+!-}\xe4\xb3a\xc6\xfcq\x80\xe2\xf0\xbcH?\xf7\
+0\xfc\xf9\x7f)\xfc\x80\xac\xe2X\xb0\x810\xdcp(\
+\xb8\x12\xf1\x84\xd4\xac\xf4{\xcf\xcf+\x88}\xb4\x19#\
+CF\x86\x85\x0c\x0d\xec\xb8b=\xa6}[d\xf0q\
+XQ\x90\x9a\xef \xa7\x84\x84M\x9c\x08\xa9=\xcd\xfe\
+\x15T\x08Cl\xa1L\xc23\xc4:W{\xa560\
+0D\x17\x8bi\xed\xc2\xc80\xd8\xb7\xe6\x03\xef\xdd2\
+<T#\x1b\xe4Z\xbb\xe7\xfe\xc5)\xec\xb7v5\x1e\
+\xb4ck\xc979H\xb8\x8f\xa2\xb8\xf2z\x99\x8c~\
+\xe2\xd9\xc1\xc5\x90g\x9ex?\xfb\xecr)^\x1c\x19\
+\x0er\x9e\x8f\xf9\xc3\x01c~\xa9u\xdfL\x81\x1f\xd6\
+]A*L\xafU\xc7\xc0' \xd4~\x0f\x0e85\
+jm\xe0\x83y\xe0\xfe\xd9\xaf-\x09f\xeb`\xa3'\
+\x19W\x0e\x5c2q8b|\x0f\x08\x06\xc6mi\xe9\
+I\x02\x15m)\x02\x7f\xa7\xcf\x89\x9a\xe3\xb7\xb8T\x19\
+\xdf\xb6\xf6\x9c}\xc8<-'\x8e\x02\x05\xfc\x22 \xca\
+\xef_\x16\xe4\x99\xd3Y\xe8\xdb6\x98\x8c\x0f\xcf\x03\xd4\
+\x19\xd2\xc5\x977d\x818\x92\x18,\xac\xa7\xcdc^\
+s\xa0\x81\xcf\xe3\xf3\x09\xf4\xe2\x98\x10\xc8\x83\x15\x98\xd2\
+'g\x15~\xfd\x0b\x04\x84p\x04\x951\x1d\x0eq\xa9\
+\x10_W\xb9L\xeb\xc2\x90\x1d\xd7\xa27\xb2!\x85\x9e\
+'\xe0\xad\x12\x07\xe7vN\xa5\x1a Vp\xf4\x997\
+\xf6\xd5\x02\xe1\xf0\xe5\xfd\x80#M\x0d:\xddc\x80\x0c\
+\xa3Wi\x13\xd8\xb6\xa5k\x1d\xd7\xb6\xed\x1c\xe7\x09\xe7\
+$W\xf6#\xe3\x08D\xf7\x80$e\xbe)\x85\x83\xd3\
+\xa5A\xbe\xc4~\x00\x99\xf6D\x90\x87\xe5\xcc4\x08\xbc\
+\x96{\x84\xf9\xc7\xd1\x17\x19 \x8e\xc2\xe8\x0a\x97\x8aC\
+\x05\x0e\x02\xda\x15\xe2\xb0R\x02@\x17\x01\xc81\xe1R\
+Q\xdb\xc4\xd4\xdf\xfd\xd3\x05\xd95[I!\xe74\xfa\
+\x81}\x0cD\xb6\xe1<\xa1Ma\xac\x07\xdeO \x9d\
+\xf3\x93\xf9\xa5\xb4D\x08?\x90\x94\x81P\xe0\x1c\xe1{\
+i\xd7J_l%`\xa2\xa6\xf4)\x17\xfb\xda\xbd]\
+*\xf2c\xc8\x81U\x03J\xa0\x95L} N@\xf0\
+\xc9\xa0\x8f\x92\x14\xaf\xc1^\xb3r\x94?\xecR\xc8\xa7\
+\x22#,\xa4#\x065\x88\x9a\xc8\x8c\xbd\xd6\xa5\xea\x06\
+\x81]\x06\xc2LH\x15X\xb0\xfb3M\xbe\xa5q\xbe\
+W\xd0\xefg\xaa\xf9\x01\xe1t\xaa\x8b]\xdf\xebRj\
+\xaf\xbbe]\xaavn\x82\xa8GFY\x0eUt\x0d\
+\xf1Q\x7f\xa0\xfa\xfe\x93\x5cl;=\xe9b\xd7\xdf\xba\
+\x94@\x04\x01\x08\x90\xb1\xb4\xc7$\xf3\x96j\xf4\x0f*\
+\x01\x9a ]\x04\x91#\x04F\x04\x5c\x08\x0c\x09a3\
+\xfa\xa4\x8b]\xff\xe9b\xd7;\x5c\x8a\xfd\x1al\xf3\xf4\
+[\x17\xf4\xbf;\xcc\xa5p\x1d\xa4\xd2\x80W\x17\x8e\x05\
+ \xff\x93\xafvIm\xe8L\xec\xef\xfe\xeab\xafg\
+\x98\x98\x9d<^\xcb\xc4\xe6\xbd\xdb\xc3\xe4=\xf6\xdc\xf7\
+\xb8\xbc\x00w\x82\xf6\xd1\xd4z&\xeb\x17\xc7}\xea\x19\
+\x17\xfb\xfd\xdf]\xec\xf3\xbe\xedR\xde\x9fX\xf7\xbd\x9b\
+\xc0\xa5\xdde\xdde\xf6\xbe\x03\x5c\x8a=\x982\xbaK\
+$G?;Hp\x8ba\x17\xe2Q)1\x97\xda\xdf\
+}\xbe@\xfdC\xcf\xa0O\xc8\x94*0\x94\xba\x04|\
+\xb2p\x13\xa4R\x80\xcb*.\x07!\xe7\xba\x95]*\
+\x12GA\xf4\xbb\x85\x5c\xd2\xf3\x1f\xea\xcf\x1f\x9cI\x0b\
+\xbb\x14\xbd\x15\xebM\xa5k\xc3\xb2&\xbe\x1f63\xd9\
+<A\xcbM*\x0e\x84\xb7\xb9T\xddG\xe0.\x12R\
+\xb4;\xdf\xa5\xe8\x81\xd4fn%\x05\x18\x9f\xd0\xf9\xf9\
+\x8a\x17\xc8\xdc\xb7\xed\xcd\x094p\x0e\xc9\x11%P\xe5\
+\xee\xb6;\xdc\xa3\xad]J\xe9q\xacg\x02\x9b\xee\xe6\
+\xdeQH\xd1\xa3$A\xafS\xe1\xd9u\x1a\xff\x85J\
+\x82g\xb8\xd8\xa5\x90>\x9a\x8d\x92\xf5\x10\x01\xf43\x5c\
+*?K\xa59\x13\xeb\xa8\xfd\x9e\x02\x15\xfd\xae\xfd_\
+\xfa\xbf\x14\xbb>\x1c\xff\xef\xe4\x92\xd8\xe0\x8e\xa0t\xea\
+\x80L\xa2\x0b\xb2%j\xea\xa5\xbf\xf1\x0bG\x8f\xbbT\
+v\x10\xe3)\xff\x8f\xd2;\xda\xe3\xb6\xe4\xc1\x04.\xe3\
+J\x1bl%\x06c\x9c\x14\xe0\xee\x7f\xedRu[\x00\
+\xd9\xa6\x80O\x04\x16\xa4wc}s\xbe\xea{\xa3\xa4\
+\x98n\x01$F\x95\xe0\xa3d\x8a\xd2\x92\xc9p\xf0<\
+\xf2\xb5i\xd5\xee\x83ZIA\x11\xa2\x8f2\x0a\x9cH\
+\x09_\xa4\x83\xd9\xbbpz\x0d\xc3h#\xb5\xaf\xc1`\
+\xc5\xf0ljn\xa3\x7f4\xed\x0a\xa8\x81 b\xdeF\
+\xac0\xe0[G\xa4m\x17\x87\x81I\x9fH2\xe9\xb0\
+\xd6\x0a\xfa\x1dl\x8a\x18\x22\x18^\x184l\x10j\x1a\
+\x89\x84\x911\x85\x95\xdd#B\xdfy\x81\x0c)\x06n\
+Kr\xd7\xb2~\xb7]\x130\xecpl0\xd4\xa8\x95\
+>\xc6\xa5\xca(\xfb\xf1\xb1r\xa9\xf9\x08C\x15\x92:\
+'\xb39\xadrtwr\xb1\xeb\x81.U-\x0d\x90\
+a2R\x8c?\xe3L\x06\x0e\x84\x05\x11\xa8\x1b\x94\xa9\
+\xe4\xfb Y\xc4\xd1\x1a\x9a\x9ac\x22\x8b\x18\xc8\x18\xf8\
+<\xf7\xe6\x22\xbb\xdbA,\xd8\xcf\x092yr\x8e\x10\
+\x87!\xc5xq\xbf8\x10\x18\xa6l\x00\x0cg\x0c\x1e\
+\xd6\xa1\x22\xf2\xc1vM[=\x90\x00\x22\x8d\x09\x05\xb3\
+\x99\xa0\xff\xaf\x94\x03:\x11\x08\x8fl\xb0a\xd0\x80\xd0\
+ \xd3\xc48R\x13\xbb\x82Kql\xa3\x7f\xbd\x02j\
+D2'~\x19\x10\xef\xdc\x1f\x9by`\xfd`\x10=\
+\xd1|/\x07\x87\x14\xde\xf0\xc3\xe1\xc2\xe1\xc2\x0a\xc9\x22\
+Cv8Q\x0al#E\x1e\xb7\x14\xe4\x94\xf5\x0d\x17\
+\xc0\xcc\x06\xb2\xac\x0c\xd3\xf0\x9c8$\x80\xe2\x13\x90\x82\
+\xb4MH\x83\x08\xd8`\xf8\xd1^\xe6u\x19\xf2\x17%\
+Fr\xb4\xc2`SM\x1d\x9c\x0b\x91\x81&\xe2\xad\xee\
+\x11\xb1\x0e\xb8\x12\xd8d\xffPJ\xf2\xa8K\xb5\xae\x0a\
+i\xe4\x0b\x22\x01\xc20C\x7f5d\xa2\xe1\xc01\xef\
+CC\xae\x87c\x05\x92\x05\xc7\x1fG\x8c}\x00\x12\x03\
+\x16~\x02\xb0:\xa8B\xef\xe1\xe0\xe9\xf7\x90\x02F\x09\
+\x04\xdf\xaf6\x8b\x11Pd\x7f\xa0gxn\xf6\xcb\x8a\
+\xdaO\xe8+\x0c-8\x05\x96lJY@\x00\xe0\xa0\
+\xc2a\x82\x81H@\x84\xbf\xc3\x01+\x5c\x0c\xf9{\xdb\
+\x1a\xeb\xc5\xa3\xbda&\x19\xd3\xf9\x10\x19\xdfeR\x1f\
+\x82\xa2\xa7)\x8d\xb8G\x86\x1e\xfaf\xed&\xa0E \
+\x84\xfd\x82\xe3\x06\x17\x06\x81A\x22\xfe\xbf\xc8%\x06\xe6\
+^\xe5L\xa7\xa0\xe7\xf1\xc3\xf9\xc3\xfd\x82\xf8iK\xdf\
+\xe6\x0d\x8e\x07JO\xa6\x9f\x03M\x09[b\x90Y\xbc\
+\xe2R\xa06\x1c\x87\x9fu\xff\xc6$%\x00\x02\xfb\xbb\
+\xce\x83\xe1\x1d\xb9fq\xf4Y\x97i%.y>\x9b\
+\xee/\xb1?\x951\x8b\x80k\xc3~O\x065\xceA\
+\xd6\x17\xfb\x84\xf1`\xdd\x97\xf5\x95k\xce\xd5\xfe,\xd8\
+\xa5\xa5\xb7\xc2Q\x07\xf1\xc08b\x80\xe1\x10\xb3\x0f\x98\
+_\x10\x0c\x1a\xbf@\x86}\xc9\xa5\x22\xcd\xa4\x04\x86\x0c\
+0\xed\x92\xeet\xa9\xd6gId\xe4u\x02\xf2\x0e\x04\
+\x1c\x5c\x17 d\xb0\x83p\xb8y~\xe6\x1fC\x9es\
+\xaf\xb4\xb7\xcb\x01\x04^\x8b\xdb!\x0cMj\xafAF\
+\x81\xf0!a\x81\xbe\xa4\xff\xb6J\x10c\x1d\x82(\x80\
+\xbcY\xed\xbe\xa2+\x10\xc8O\x025\xdc?]\x10\xb0\
+\x1f\xb6\xc9\xedC\xc3\xde\x80\x04\x91\xf5\xc6\xfb\x09\xbc\xa8\
+\x04t\xf8\x9eKA,F\x86Jm\xe2b=(\xf3\
+n\xee{\xe2\x96\x1a\xfe\xe6\xa2\xfe\xef\x8b\xe9\xd4\xbb\xb9\
+\x22\x05\xd3\xb9\xd9\xff\xcf\xa58*\x04\x1c\xbaI\x13\xdb\
+\xef\x93\xaf5\xd9\xa6*\xf58!I\x94\xaaF\x97\x08\
+\xffT\xb3\x7f\xfa\x9f\xbb\xc8\x007\xfbg\xea\x07.\xb6\
+\x0cVq\xb1\xd7wO\xdd5uwU\xbb\xad\x0c\xdf\
+\xe8g.\x09\xb2\xfd\x87\xd1\x1f\xca\xbe\x1b\xff\xc3\xc5\xee\
+\xe7*\x97\xd4F\xd0\xa4B\xa2A\xceL)\x87\x02D\
+\xd1E@\xd0\xf9\xd1\xd5.\x85\xc4\xd1\x9b\xc7\xa5\xf6q\
+\x8e\xac\xf8|E\xf28G\xee\xae\x14m\x0f\xc5\xfd\xd1\
+\xfd\xa8\xbb\xa8\xbb\xa8t\x15\x18?\xe4b\xe3\xb3\xb7\x8b\
+\xbd\xde\xc9\xc5~\xbf\xb6\x89\x9d\x17\x93+\xb9\x14\xe4@\
+7\xafK\x95\xe1\x04\xfa\xbf\xb2\xc9JE\xbf&D\xe4\
+\xaf\xfc\x10\xb7~\x00\x00 \x00IDATl\x9c\x96\
+0YR\x19m[g\xddw]l\xdcvr)\xed\
+\xfa\xa2\xa4\xf2\xf9L\x8e\x18\xa5H\xcahG7\xab\x0f\
+\xa9t\xd3\xb5\xcd\xba\xb2\xcf~T\xe9\xb1\xdf\x9a\xfc\xae\
+\x22\xa9$ \xb0\x86Ke\xcf\xc2\x96\x8e\xe3\x7f\xae\x8b\
+}\xcf\xde.v\x7f\xdft\xa9\xfc\x199\xd8\xa3G]\
+\x0agV\xb7\x9aK\xe1\x9a\x88\xfe\xed\xf7\x0cw\xa7\x00\
+\x18d\xcc\x0b\xba\x14\x0e\xb5\xe4\xf0],\xfd\xb6i\xa5\
+\xd7\x95\xa9\x8dRL\xf9-Q\x0a\xb1P\x86\xbc\xc7\xb8\
+\xe9<\x84\x1b\x03\x08>\xe4\x82\xe1 \xa2/\x17j\xc8\
+g\xb1K\xc8@\xc3\x0d#\xbd\x99\xd2C\xdf\xaf\x02\xb6\
+\x9c\x07\xe28 \xb1\x00R#\xf4\xd8oS\xb1b\xf1\
+\xdb\x0a\x82+\xfbWp\x02\xfc\xc8E\x09\x9f\xdf'\x7f\
+$\xdf\x07\xe4\xb6\x0ax\xc1I@\x06}\xe2\xba\xac'\
+\xa36\x1f\xfbL\x08\xa4\xfek.\x95=\xbd\x88\xec\xa1\
+/g\xd2\xca\x08\xc0*\x90\x94\xba\xdc\x1dX\xda\xb7\x0f\
+\x1fr\xa9\xdaI\xa2?\xb1_\xa4?\xc2\xdf;\xde\xa5\
+\xf2;\xf17\xb1\xc39\xdf\xf17<<\xe3\x5c\x14\xfb\
+\xb8TH\x02\xba\xd8\xe8\x1c\x8b6\x8f\xac\x0f\xba\xdb\xb1\
+\xce\xe8\x02\x80_\xa1\x00B\x94\xc8\x80h@\x8f\xe3\xcf\
+c\xcf\xab\x04k\xf4\xa0\x8b\x93\x00\xfe[\x0a\x18r%\
+\xb1|R\x9b\x16\x06\x1ed1\x8a\xa8\xd0\xff4\x0e\x04\
+\x0c\x01jr0\xc4\xda\xbe\xb8D\xa4!{\x22\xc3\x02\
+;1\x11Q\x1c\xef\x864\x89\xbe\xd4\xb1\xb0q\xac8\
+`_\xda\xd4\xe6\xe3\xa8\xe2(\xb7d68\x10\x18\xfe\
+d\xf0\xda6c|\x0f\xf7\x05\xd9\x0e\xfd\xd29\x10\x9b\
+Z\xc1T\x121_\xd5\x7f\x94\xf7s\x104\xfd6\xe3\
+s\xdb\xf6\x84m \x05\xe8?\xedA\x9cT\xc2\x15\xd5\
+\xd7]*CVmJ\xec\xb7\x89\x8d7\x10\x01\x18V\
+Z\xa0\xb1p0\xd0q$1\xcc\x19W\x0e|21\
+\xd4|\x03Yi\xdb[\xa1\x10p<0\x8c00\xc9\
+,cp\x91y\x80c\xe0\xebb[UI\xcal\x01\
+\x04\x0cM\x0c\x1f \xbd_\x16{\xfc\x8f]\x0a\xebe\
+d\xf8\xa4\x00\xa2o1\x8e*}\xe0\x15\x18\x09\xc7\xe0\
+&9\xe0\xab\xca\xd0-\xb5\xb9\xd3H\xc2&f\xe6\xda\
+\xfbx\x1e\xfe\xbf\x85\x9a\xe2P\xb3\xfe\x8f\x17\x07\x02\xec\
+\xfe2\xbcb<q\x1c\xc6M@\xac\xed#\x0f\xe4\x1c\
+6r\x0cV\x14\x1e\xef\xbbG\x08\x05\xd8M\x89\xe82\
+\xbe\xcc?\x8a\x83\xc0\x8e\x1c\xff@T,\xab\x8c1\xeb\
+\x92\xd2\x15\xb1\xbfG\x84\x14EJF\x91\x0c*\x07\x00\
+}\xedic\xa8q\x08\xd222#\xe7\xb9T\x90\xe4\
+\x1d\xe5\x98\x81<\xc0 !\x93\x8fC\x1b\xf3\xa3yX\
+[\x0er\xe1\x12\xc9\x0ek\xbb\xefZ\xc8\xfe\xbcMw\
+\x012\xe3@\xec\x9f\xd2z\xffO\x9e\x87\xd1\xcb\xe5\xf0\
+\xb3N[r12\xe2\x1c\xcc8\xac8\xec@\x8e\x99\
+_\xf4\x10\xa4top\xa9\x22\xc6\xcc/\x08\x08 \xe7\
+\x04\xda\x16\x94\xbe\xa0\x1d\x1f\x9f\xc7\xbe\xc4\x91c\xdc\xc8\
+l3\x0e\x1c\xbc\x94b\xb0\xef\xd1\x9b\xdcwCv6\
+\x9bc\xc4\xb83\x9e8\xfcd\xe4\xb8\x0f \xb1\xb4e\
+\x04qC@\xf0\xd1\xe1\x91\xe1\x91\xb4\xbfr\xc6!\x90\
+\x0e#\x93d\x88\xe4\xe7c?\xc1\x15\xa0\x0cs\xb4C\
+T_h\x0c\x8a\x84\x83\xab!\x94\xfc\xa0\xbf\x09\xf8\xb0\
+o\x08D\xe0\xc83\x0e\xbc\xe699\xb7Xo/\xd1\
+:b\xbd\x956\x8fy]\xa1\x1fp\xb8\x97\x9d\xde\xce\
+1\x02\x02b\xe1\x1f\xbdf4c4\xa3\xaa\xe1\xc4\x90\
+c]\xa1O\x08\x8cR\x22\x06\xd4\x9e\xefe\xbf\xa0\xbf\
+!\x95}$\x8fw \x00\xda\xd2\x05\xda\xd9AVI\
+\xe0\x95\xc0\x9f\xf4\xcd\xe8\xe3.2\x1c\x7f[\xd5\x9cS\
+:F\xe9\x14\xa4\xa0\xcc\x0b\x10T\x02a\x22\xc7\x22\xa3\
+\x14\xc8)9\x9cA\x92\x08\xc2J\x7f\x0f\x97\x0bH\xa8\
+(\xc9\x92C\x0f\xf7A\xcc\x0b\xdfK\xe6Y\x19\xbe0\
+\x5c\xc9\xbcP\xc2\xc6<s\xdeB\xdex\x9fK\x15\xf8\
+\x90\xbd\x13\x06%\x5c\x17_q\xa9\xceQ\xd6\xd99f\
+\x86\x9fS\xb5Cs\xd6\xf2\xbb\xcb>\x8cZs\x9d\x9f\
+\x81,@/\xc29\xa3\xf3\x97ZX\xb8w\xc8\x84\x11\
+ \x09D\x02\xfa\xf7\x02\x97j^\x05\xb5\x8es\xf4\x90\
+\xdc\xbe/2\x86\x22\xb1\x8an\x0f\xe8?!\xe9fC\
+\x0c\x90)\x03\x22\x8c\xde\xd2\xb9\xde\x7f\xc7E\xe7\xa7g\
+\xbc\x1e\xcbl\xfa\xd1\xc7[\xed\x0c\xfb\xfd]J\x17\x80\
+\xe1 \x97b\xafF-\xf7<&\xde\xaen~\x93\x05\
+\x8a\xe31\xebf\x17\xbb\xde\xe3\x92\xc8\xdbVr\xf26\
+\x02\xd2A~(\xfd\x11\x81J\x87\xca\xefU\x02ZQ\
+\xba(C<j\x82\x05}\x0f\x04&\x01=\x029 \
+>\xfct\xfc{\x09\xdc\x8c\xba\x5c\xdb\x0cky\xf7\x1e\
+\xcf\xd1\x97\x12\x04;5\x8f\xf4sst\xd7\xe8N'\
+)\x04\xc9\xe4T\x84NF\x18\xf7\xe5\x88V\xef\x9ap\
+\xa6\x89\x8d\xd7dob\xe34~\xca\xe4\xc9\x8a}}\
+\x0e\x97\xc4\x19`R8U\xfa\x97\xbaT\x0e#\x81\x9f\
+\x1b]\xec~n0\xb9\xbep9t\x97u\x97w\x97\
+\x97\x9amj\xfeS\xf3\x81qi\xdf\x09GBB\x80\
+9\x12i\x7fel\xbd\x14\xf9\xfbb\xfd?\xa9\xb2\xa3\
+\xd0\xdb\xe8\x03\xd8\xed)\x15\xfd\xb0\x8b]7u\xa9\x10\
+\xac\x0a\x0c@\xc2F\xdb\xbe\xa8i'p$Gv|\
+\x82K)\xa9\xe9~\xe6b\xef?\xcc\xc5\xde\x7f\xa3K\
+\xc5-\x01\xa4\x1e\x84\xa7j\xf0#0\x86c+\x84J\
+\x946=\xe6R\x12SQ\xaa\x06\x87\x15\xfa\x92\xf3^\
+z\xa9{\xadK\xc5.\xef]\x0f^\xa6sg\xbe\xaa\
+\xfd'z\x14\xc7\x90\xfd\x05\x94\xdfqE\x07*p1\
+\x7f\xc5Q\xd1t\x0d\xe3<\xa6\xb4\x22Y\x93w5%\
+\xc2\xcfU\xfaeKq\xb68e\xe9\xb1\x1a\xd7{\x0a\
+\x09yp\xc0\xfcx\xe2\xe2D\x96\xf9\xdf\xd1\xe3>\xce\
+\x90\xfd\xd9\xd9\x97\xfd6\x02\xb2B\xf8\x85\xffD7\x06\
+\xf4\x08\xe3\xce\xba \x80.\xbf\x08\xbd1\xfc\xd0\xc5\xae\
+ov)\xddF\xe0r\x08=\x07B\x1a2F\xec \
+\xc6\x87\x8c<\xf3\xc2\xf9\x8c\xde\xfe\xf5\xc4\x8d)\xc0\xfb\
+\x88i\xcbG\xab\xf6\xc5\xd8\xc3\x04v\x17s\xb1\xdfo\
+\xe3R\x05Z\xd4\xc6=\x12H\xb2\xa7\x86\xb9\x5c\xaay\
+\x90}C\x17\x84\xf8\x7fJ\x1c\xf8>!\xcb&\xbb\x13\
+s?\xd5\xe17\xc3-\xc3-\xb6\x80\x0e\xec\xff\xaf\xff\
+\xbf*\xc2\x8c\xa3\xf6\x91\xa8\xd9\xc8\x03\xa2\xda\xf7`\xf5\
+%#K{\x0c\x1cL\x0c\x18\x02\x09@L1\x08\x18\
+H\x16\x18\x86\x04\xaf\xc9\xc4\x93A\xa3\x86\x91\x85\xd0\x90\
+\xe4E\xdb)\xbe\x1fh\x9b\x22m\xe18b\x10ax\
+\xf3\x03\xb4\x94L\x07\xf7\x03i\x0f\x19\x85\xd2\x9e#\x93\
+\x18\xa9Oq\xd4\x8a\x108p\xf3\xaf&\x11\xe2\xff1\
+(\xc8 p%\x92\xce\xb8\xf0\xfd\x18\xd4\xfc4}\xdd\
+\xa9!\x1b\x9e\xca\xac\xa7\x13\x7f\xca\x07p\xb0\xf9\x12!\
+\x95A\xd3-\xda-\xd6y\xad\xdb1\xfd\xd1\xfd\xd1\xd5\
+\x02'\xb0\x80\xc1\xca}\x14\xc37/h\xc6o\xc1\x86\
+\x15\x1bC\x15\x07\x87\x0d\x8ac\x02\xf2\xe3\xc8\xd1Q\xa3\
+\xa3\xaa\xcc\xcdE9C\x0d\xa4p\xe2t\xb5m\x02\xba\
+(\xb2\x99p\xa4qHJiA\x86\xce\x83<!\x82\
+'R\xa9(e\xd1\xc6\x0e\x03I\x99\xa2\x89\xf7\xc8\xa1\
+\xc41\xa1\xbd\xe3\xa1\x19ZJ_\xdc\x08@q\x00=\
+\xabq\xb9[\x86\xde\xe3:@\xf8=\x064?\x04B\
+\x18W\x1c\xf63\x93\x14r,\xdd\x8f\x1d\xd7\xd3j\x8b\
+c\xdc\xdbL\x15\x01\x85B\x0e\x98\x1d\x97\xf9\xa3=[\
+~?\x810\xd6\xd3\x1f\x15\xb0\xc3\xb1B\xc1\x11\x00\xe0\
+\xfe\xf8~\xde\x87c\x83\xc3\xc0\x15G\x95\xe7\xc4\xf1\xd2\
+\xe7D\xa6\x91\x880%\x17\xecC2f\x1a\x8f(\x15\
+\x11\xe9bD\x88U\x1b\x1f\xa4wd\xf0p4\x09\xec\
+\xd1\xb7\x1e\xd252\xe4\xadc\x8f\xa1\xcf\x01\x86\xe3\xcc\
+\xefQ\xe8M@.\x10LtOy\x5c5\xe9Z/\
+\xb3e\x86q\x98pp\xdb.)\xec;\xd6\xcf\x13\x0d\
+\xb2\xa0!\xc7\x8c\xf1\xc6\xd1\xe0\xef\x09,\xac\xa8\x80\x0a\
+\x0e\x1b\x0e`\x1b0\xe0\xb9\xb9?\xee\x9b}\x8c\x83\xce\
+\x01\xc4\xfc\xe3H\xa2_\xd7\x8cq\xa2\xcbA\x0e\xa8,\
+&\xfdG\x86\x9b\xfd\x84\x01\x00'\x00\x07.\x19^\xbe\
+\x87}\xce\xf3\x82D\x92\xe1\xe0\xdc\xd4\x89\x9d\x1aD\xdb\
+\x5c\x81\xa4\xc8\xe7\x07\x19V\x90\x03\x07M|*\x19@\
+2 G[\x89\xccmoE\xc8a\xe3\x87\x04M\x99\
+\xe7\x80\x08\x92I\xbdI\x9f{[d\x80\xf3\xbe\xe6\xfc\
+\xe1\xfcd\xfe\x9b}\x14\xeb\x87uE\xa0\x9c\xf7\xf3\x1a\
+\xc7\x98\x9aa\x05*c\x7fAJ\x8b~\xa0F\xfd<\
+\x97\xca!\xe7\xf3\x08,\x11@DO\x11\xc0\xe7\xbch\
+\xcfK\xa0\xeb '\xe06a\x1d\x81\xec\xb9%\xdb\x13\
+\xe1\xe8ch2\x1e\xec\xd3\x16\x09\x82^\xe45\xfb\x8e\
+\xc0\x1c\x060$S@)9\x8fe\x88%\x87\xe1\x07\
+\x85\xf4-\x02\xc3\x7fP\xa6\x162(\x1cy\xc8\xa0\xa8\
+\xd5&\x83\x82>\xc51 P\x8f~a\x9d\x91\xf1\x22\
+ C\xc9\x92\x0c/\xa0\xeaQ\x9b,\xbd\x16\x88$\xd5\
+h\x02\x15\x1f>\xe5R\xd9I\x04D\xa8\xa1\x87\x05\x5c\
+dT\xd1\x8d\x84@\xdc\xeeIJ)\x842\xc8\x04H\
+\x80\x96\x86\x1dBF\x1br\xba\xa3\x92\x04\xc9Yd\xd0\
+\xe0\xc4\xe1}\xd8!\xacC\xc8\x05)\xb5\xa1\x9f\xb5\x0c\
+^\x02\x15\xe1\xf8\xab&6\xba\x11\xfdM\xe7\x0e\x89&\
+e\xc4\xbb\x7f\xb9\xa4vz\x89\xec\xb0\xbb\xc2\xc5^\x7f\
+\xc3\xa5\xb4\x1d\x84,\xb0{\xda\xc5\xaeoq\xb1\xebG\
+s\xfbA\x02+S_p\xb1\xeb\x86.\xa5?{\x7f\
+\xb7\x8b\x1d\x17\xbb\x98\xecl\xaf\x7f\xe0R8\x01@\x8c\
+F\xa2\x85\xf3\x97sR\xa5(\xfd\xe6.f`_\xef\
+R\xd9\xbf\x90\xd71?B6L\xfc0\xc9l\xe7d\
+*\x9dZ\xa2\x04V\x022N&\x12\x92g\x91\xa8\x11\
+\xf0\x8a@\xf9U\x19B=:9\xb7\xddD\xdf\x8c\xfe\
+lr\x97\x90\xb0{\x94\xd2\x11\x1c\xf3Y\x17\xb8T\xec\
+\xe3b7\x1f_\xefRJ \xba\x15\x5c\x0a\x07\x04\xf3\
+\x0a\xfb}\xf7a\x17\xbbn\xe6R\x10\x11\x90\xd9\xc11\
+\x12$l\xfa\x9e\x18\x0f\xce\x15\xf4?H.2\xddn\
+}=[\x1c\x9aac\x17\xfb\xfc\xb3s\xfbA2\xc6\
+ty0\xe7\xd6%\x1c\xed\xfeK.\xd5z$\x13.\
+\x92l\x10#\x04f\xba\xf7\xb8\x94\x92,\x90\x0b\xb4M\
+\x1c^6\xbc49\xdep\x19\xe9\xbcN\x88\xce\x9f\x08\
+\xea\xbe\xa5\xf4\xf2\xf9\x05Q\x11\xdcdd\xeei?N\
+\xb7\x05\x9012\x03\xa2\x14\x0b\xa4\xad\xecwJ+\x86\
+\xce\xc5\x9eo\x17\x93]\xedz\xb5K\xe1\xc6\x89@\x1e\
+\x88WJ\xa8\xcc\x8a\xf1\xb6\x8eI\x0b\x9dUe\xecA\
+\xac\x90\xe0\x81\x04\x1b\xfd\xc4\xb9\x06R\x0e\x04 \xb5\xf0\
+\xc7\xaaV\x9f\xc0\xe6\xb5\x13?K\xfa\x87\xf3eK\x05\
+\xfa\xe1\xf2VIK\xffc\x97*\x90py.\x05\xa3\
+\xa6\x9fqr\xef!!\x5c\xe9B%\x84Y\xb4\xf7d\
+\x7f\xe2O\x12\x08\xdc\xc0\xa5:\xdf \x81\x14\x97A\xec\
+\xf3Ed\xbf\x80\x84$\xd0\x09\xf7\x88\x10#Ui_\
+\xb6\xa7(y8C\xfb\xf4:\x91\x17\xab\xa4\x8a\x04\xd9\
+\xb0\x88\x8b]\x97t\xa9\xce{\xec=\x02\x00\xefT\xc9\
+ncoG\x89 \x88lq\x14\xb4m\xcd\xe1Lb\
+_M\xda\xf6\xbbvtm\x95I\xc1\x00TM7\xfd\
+K\x03jH\xdff&\x9c\x88\xfa\xf6\x19R\x1bd_\
+d\xb2\x89\x90\x93\xd9\xc1\x00h\xdby1psD\x1f\
+\xeel\xe8\xb5\x869\x86\x00P\x0f\xd8\x801\xecDR\
+\x135\x9b\x18\x12\xbc\x8f\x1d\x84\xe1\x03T\x83\x81\xe6\xf5\
+\x5c\xd3\xa1\xb8\xb3\xf5\x01o9\x09\x94a\x0eV`\xa0\
+\x8aD\xbc1hy~\xbe\x87\xf6D\xd4\x02\xc2\x96\x8b\
+c\xd0@\xc7g\xeb\x17^8\x06\xf2k \xc4\x18V\
+(L\xda\xc8\x956\x8cy\x9c\x97\xd7\xf8S\x93\xa66\
+)\x18&\xe1\xf03^\x0d\x1bz8R\xdc\x17\x06\x1b\
+\x99\x8b\x16RH\xed\xfc\xfe9\x12\xc5\xf3\x8e\x0eT$\
+\x9c\xcc,\x11X\x19\x22\xb0\x09\xc7\x81\xcb\x86\x04\xd2\xfe\
+\x17!\x128\xa0\x09`\xe9 \x19\x9d\xebR\x22\xe7m\
+\x1bC\xfa\xf3F\xa0I\xeb5\xfas\xaa\x96-\x10\x10\
+(\x14\xc6\x07\x83\x9a+\xf3\x8fF\xc3\x91i3Ct\
+\x8bP\x1f\xdd\xb8o\xad\x1bS\x18\x99\xd4\x8c\x0cs\xdb\
+7\x9e\x0c\xff\x5c\x19\x02\x18\x0e?\x0a\x02\x05\xdb:\xa0\
+\x8b\x86B\x03z\x9e\xd7?\x06$\xa51\x04p\xd87\
+8\xa8\xec\x7f\xfa\xc7S\x93\x8f\x03\xaau\x12\xdd,h\
+k\xa9\xf6\x8b\x81\x04z\xa9KE\xa6%\xd2\xcd\x18o\
+\xf4\x03\xfb\x8d\xcf\x07\x22\x0b\xd9\x9a\xc8I\x03\x11@\x1b\
+?\x1c\x0d\x1c\x1c\xde\xdf\xe8!\xa0\xc9\xf1\xfc/\x9d\xde\
+V\xd0\xcc\xeb\x8cXzYC\x8a\x07\xf7\xc13y}\
+G\xc0\x86\xfd\xde\x06Hp\xacy\xae\xb5\x148C\xaf\
+.02q\xc5\x9d\xd9bM\x07\xe6u\x02\xc2\x81\x03\
+\x8cuE\xe0\x87yb\x9fKoFf\x12\x03\x83\x0c\
+%\xf3H \x01\xfd\xc6:!\x80\x00g\x015\xfc\x04\
+.\xd0\xdf \xaa\xd03\x9b\xa8m\xd9by^g\xab\
+1G\x9f\x13\x98{k\xae\x9d\x0dC\x82\xf5\x88\xfeC\
+\x9f\xf0\xdc\xdcoC\xaeH\x86\xc3\x9bUy\xbb\xaap\
+\x14\xd1C|?5\xce M\xc8\xb8\xbdC\x08.\x1c\
+o\xee\x1bG\x0eR ^S\xe3\xa8\x80\x07\x10N7\
+\xa7G{T\xf36\xc7\xf4\xae\x06\x81|c\xff\xe1\x18\
+\xb7\x99\x7f\x02b\x04lh?\xb7\x99j\xde\x09\xbc\xa0\
+\x7f\xe7\x97>F\xaf\x10\xc0\xc3Q\xc3\x10\xa8k7\xff\
+X\xd5n\xca`\xe0\x9c\x07\xf2N\x06n\xb66\x95\x1a\
+'j\x1c#\xb0\x0f)\x15\xeb\x93\xf5\xc1\xfac\x9d\xb5\
+\x5c&\xe8E\xd6-\x9f\x07\xb2N$\x87\x01e\xa74\
+\x86\xae\x01\xd4\xa4\xc3\xf2N\xcd8\x0e*\xe4p\xd4\xa4\
+\xb3\xbf(\x09|\xd8\xa5BL\xc0i\xc3\xfd\x82x\xe3\
+\xf9\xdb\xd28\x9e\x83\xf1n\xdbi\xb1\x9e\xb0\x1f\x18\x17\
+\xf6\x19\x08\x01\x10\x09\xdaO\x11`\x81Tl?\x97\x94\
+\xa81)}\xb6\xfb[]\xec\xf8\xda\xde\xa5\xdaG \
++\x04\xfd\x0c\x03\xfeY\x97\x8a\x95\x1e\xc8\xb5\xb8\x92\x22\
+\x00D\xa9\x18\x9c\x09 2\x84\x14\x0d\x0e\x1f\x02\x0a\x9c\
+O\xac[>\x8f\x00\xa7^\x939M\xb5\xd0\x9b%\xb2\
+\xaf\x94\xa9\xa6\xe6\x1aGs\xbc\x83\x8b]g\xb9\xd8\xef\
+\x8f\xc8\xac\xf7\xde\xc3\xc6\x03\xf7p~t\xcf\xba\xd8\xdf\
+]\xecb\xd7K\x5c\xcax\x90 \xc11\xef\xf7q\xb1\
+c\xe2\x10\x17\xbb\xee\xecb\xd3\xf5\x0b\x17\xfb\xfd\x94\x8b\
+\xdd\xdfF\xb9/{\xd2\xfaK\xe89\xaf\xa9\xdac\xb2\
+.\xb0\xe7d\xbf&\xf2\xb7\xef\x95\xeeK\xdd\x96.%\
+3=\xba\xdf\xa5\x94nE\xbft\xec\x1e\xec[/\xb9\
+\xfdq\x09\xf8\xa5\xf6\x84\xdfV\xe0\xe3t%*\xde_\
+!5\xd0w\xd8\xe5\xd8;B<\x85]\xb2|\xb2\xfc\
+J@\x8b.\x1dz\xae\xf1f.v\xdf\x9fs\xb1\xd7\
+K\xbaT\xfb\x82\xf5\x0d\x02T\xe7\xbc\xa7_\x12\x19\xa5\
+\x07\x1a2\xa2v\x93t?\xb7\xd8\xa7\xdfR\x10@\xc3\
+\x12.6\xce\xeb\xf4\xeb\xf6\xeb\xdau9\x97\xc4\x02\xff\
+{g\x81\x1f\xfe\xe7\x92\xec\xbbLF\x87\x03\x0aWP\
+KzK\x97\x94#M\x8e\x10\xd2\xe6~9\xc0\xce\xc2\
+?\xb8\xd8\xff\xbf=\x97hL]\xefb\xff\xbft\xbf\
+T\xbft\x95q\x87\xd5\x9fq\x02\xb1\x84]\xaf\xd7\xfd\
+\xc1.%\xc1\xd9\x9d\xe8R\x05,@`\xc1\xf2~\xbf\
+\xd93\xf7\x97\xae\x07 Ab_\x93\xf9\xa7\x0d\x9dw\
+_\xbb\xa3\xea\x9a!\xb29\xdaM\xe3\xb8\x03!\x8fn\
+l\xf2\xc3h\x8b\xe9i6O\xb4M-\xeeb\xdf\x7f\
+\x91K\x09$\x05\x02\x8eu\x03\x898\xe7,\xe3\xec\x9c\
+\xf3\xa7T\x81\xe5\xe5\x86\xe5\xbd$$\xe1>>+d\
+\xed\xae\x15\xb7\x15]5\xd0\x8f\xb4\x8d\xdf\xd6\xa5\x8c\xdb\
+\xb0\x93H\x13\xbf+2\xd1-\xcc\x9f\xdb\xa2to\x1b\
+\x9d\xe4R9\xc6\xdc\x97\xf4O\xb4c\x86\x94\x14\xfb\xe4\
+\x01\xf9U\xe2T\x18Vw\xa9\x90*\xea\x06\x14\xf6\x80\
+\xf4\xf0\xd4\xcf]l\xfc\x16q)\x0e\xf5\xe8t\x97\x14\
+\xf8Hv\x06\x1c9\xc3\x8e.)\xc0aR\xd8\xfc\x03\
+\xd2\x0f\xe9\xe4a\xea\xbaF\xdbE\xe9\xd3@&\xab;\
+X \x15H0\xc1\xc5\xa3\xc0\x957\x1b\xf4v\x83\x11\
+\x88W\x005\xb8\xedd\xa6\x07W\x8b\xec\x06\x90X#\
+\xd9\x97p\xc6M\x0e\xcf\x8a}S\xd0+j\xc5\xa9\x11\
+\x88\x03\xf6\x09\x19\xd0\x18~\x1a\xc8\x80\xca\x893 \x22\
+<D\xbay0\xa0.\x18(-I\x1f\x07\xe7\x7f\x83\
+\x85<ol\x0eL\x0eJ\x0cg\x22\xcc8\xa4D\x9e\
+\x08\x04\x90\xf1\xe1\x00nI\x05g6\x19\xc1\xb6\xb6:\
+\xfaj\xe9\xffu\x80\x13A\xef\x1fvI\x0a3C\x0b\
+A\x1a`\xb8\x12\xd0\xc0@\xc3\xb0\xa4\xb6\x83\x85J\x0d\
+\x0d\x8e%\x11t\x0c\x1f\x0cr\xee\xa35<\xb8\x7f\xc8\
+\x86\xe6\xd7\x04S3K\xfb \xc6\x95\x9a\xc0\x07\xb2\x83\
+5z\xb3jztP\xd9\x1c\xc0\xd2>\xbd\xff;\x81\
+\x19\x0c\xd4\x1a\xe1\xb0\xc84\xc7<C\x83\xa9\xa9\xc7q\
+\x05z\xfd\xc1\xdc~b\xf4d&!\x22\x82\x1f\xf3\xa1\
+\x08h@\x7f\xf8\x1e\xda\x22\xa9\x7ff\x188dh\xe5\
+\xf8D\x04\x19\x03\x8b>\xe1\xd7\xe6@W\x04dX?\
+d\xf6h3\xc8s\xb3^\x98\x1f\x1c\x0e\x1c|\x14#\
+\xd7\x87u\x90\xb2O0hAF\x80\x84i\xc91\xc9\
+\xd0\xe0\xa8\xb1>8h\xd9\x17\xa5_<$n90\
+\x05i\xca\xa3\x22\x7f\x03\x92M\x80\x88\x1ad\x1c\x00\x9e\
+\x87\xf5L\xad\x14\xf3*\x12\xcf\xe1a\xb1\xc1\xde v\
+\xf1{\xf5>\xf6\x1b\x861\x99G\xf63\xdf\x83AD\
+D\x9bv{Oj\x5c!\xb7\x13\xe7\x81\x99C\x89\xcc\
+\x88\x80\xd10\x9fK\xe50\x11\xc1T` \xc6\x0b\xc7\
+n[\xd5\x02\xbfJH\x00\x1c\x09A\xf2\x86\x87\x5c*\
+R\xa0e\xe5\x90q\x00\x82\x5cYE\xf3\x84\xe3P2\
+\xe2y\x1f\xb3~Xw\xf35\xe3\x8b\xfe\xc0am\xd9\
+\xf1\x09\x00P[O\x86\x9e\xfbx\xa9\xd6\xed\x84\x0c\x7f\
+>\x97\xf1\xe6y1\xb4\xf9!`J\xc0\x8d\xfd\x06\x99\
+\x1e\xb5\xd5\xe8G\x1cN\xd69?m{@\x02\xa0-\
+\xf4\x1c\xc7\x15G\x05\xb2\xa0m\x95\x19\xa5D\x03\xbd\x80\
+\xfe\xe0\xfe\x0bYc\xfe\x1e\xb8&0H\xf9^\xf6=\
+dd\x18\x00 \xb2~\xedR\xad\xb3\xf7\x069N\xde\
+\x87\xcc#\x86\x19\xe3I\x06M\xfd\xeb\xa3\xe4H\x0e\xfb\
+p\x85j\xf1\xe8\x06Cw\x1b\x05\x90 \xf5\xb4\xd3.\
+\xb3\x89?!\xc7\x9a\xfbc\x9d\xff7J\x04\xf2\xcf\xe2\
+\xd3K]f\xe3\xaa\xe0\xbck\xb8\x05\xc2!f|\xd1\
+'\x85Lq:\x19j\x83\x14\x8a\xb6\xb8p5p\x9f\
+\x04f\xe1\x86Q&et\xb6KUS\x8f^9:\
+IY\x8f\x0a\x8c\x04\xf9\x16\x06\xba\x02M\x81\xe8\x12k\
+w +\xd0\xbb\xea\xd3\x1d\xeb\xb7-\x09\xc3\x8e\xa0\x9d\
+\xa3\xce\xff`\xcd&\xe3/\xae\x83\xfe^\x97* D\
+\xd7\x1c\x02\xbb<?mgov)\x5cG\xa17Y\
+\x7ftC\x82C\xa8\xe5\xee\x00\xf9\xa3\x1a\xcd\xd8\x97\x9c\
+#\x9c\xcb 6\xd8\x87\x9c\xc7\xacw\x10k\xd4\x9a\xca\
+\x01\x0f\xd2>A\xdb\xe3sh\xb7\xcc\xfa\x96\x83D_\
+m\x90T\x01\xad\xc5\x0e\x012\x0d)2\x8e\xbf\x0c\xf4\
+x\x1f\xe77\x9f\xafq\x80\xf4xt\xb8\x8b\xbd\xfe\x9d\
+K\xa9UO\xbb\xf2\xf9\x8aC\x07\xfdG\xbfj9v\
+ -pX\xcc\xad=stfr\x80s\x17\x8e\xef\
+\xaa]\x1c\x86\xb4\xef\xd3S\xab\x0c\xb9\xb8\x03\x12$\xbe\
+\xabX\xfd\x09D\x82t\x83\xfbE\xc8:\xec\x8a\xfe1\
+\x97R*0\xb5\x8c\x8b]\x175Y\xac\x22\xbb\x96\x9e\
+\x0b\xfb\x01\xfd\xdevq\x02\x81z\xf8\xe80\x1f\x97\xc4\
+\x95\xbf[U\xf3K\x80\x96\x9aj\xe6\x9b\xae\x00p\x11\
+}\xdaE\xf3qT\x81R\x8f\xd6u\x112u\xa1\x8a\
+#\xc0\x0d\xfd}\x12;\xfee\xa3\xcb\x8a\xdd\x88\x83g\
+\xdf\xbe\xf7\xb0wI\xbc\xd0\xc5`\xd8\xcd\xa5 yR\
+\x8d\xbe\x97 \x5c\xe4R \xee\x89Sa\xb2pF\x10\
+\x18\x09{\x08\x87\xea\x92\xccY\xd4\xcfr\xb1\xeb\x87M\
+>R\xb8\x00\x22\xe3\xae~\xee\xc3\x02\x99\x13a\xf4\xdd\
+\xdc\x96\xba;\xd0\xc5\xae7u7w7'\xe4P\xe2\
+0\xa043%b\x1e\xaf\xd8\xdf\xbd\xcd\xdfYj[\
+\xb7K\xa9\xf9O\xda\xe9\x98\x8a\x94\x8f\x12\x94\xcf\xba\xd8\
+\xf7\xcf\xe5\x92>/\xd9{\x89$\xf9\xea\x12\x88b~\
+\xfa\xc5\x5c*=(G\xbb\xff\x9eKB\xce\x9a\xd8\xf5\
+A\x97\xea\xdc\x94\x9e\x8bqS\xb7\x84\xf0\x0f \x11W\
+\x89G?v\xa9\xda\xda\x02Q\x07)\x83\x9e\xe3\xbc\xd0\
+\xf9\x1d\xa4x\x94\xa6\xe2/\x10\xe0%\x00\xce\xeb!\xd1\
+E\xe7}yk5>\x90\xdf>\x9dB\xd6Yoo\
+ \xfd>\xb72\xcf'&\xae\x80<\x0f:/\x03\xa9\
+L\x89\x9e\xb8\x14R\x0d\xfb\x15\xd2\xd7\xbf(\x89\x98\x80\
+\xeccw`\x17Sr\x0e\xb2E\xa5C\x11x\x81\x04\
+\xf3w.\x85\xe5\x1e$\xf6\xf0\x01\x97\xaa\xfd:\xf3\xa0\
+\xf3\xa2{\xbfK\xd5\xbe\xcf\xdb\xdd\xbb=\xbbk\x92(\
+\xd9\x89\xae\x22*1\xe9\xe7u\xa9\xc8>\x85\x04\xc0\x0e\
+\x89R+\x10, \x02\xc5)\xd0\xdf\xe2Ru\xa9\xc0\
+\xbfA_\xc8\xbe\x8f\x80\xef\x97\x93\x94\x80-\xe7\xba\xec\
+\x96H\x0ccW\xe1\xffi]\x10h\x80#`X\xd3\
+\xa5j/\xa8\x80\x1b\xfe6\xc8\x83\xc9a\x17\x97\xc2b\
+\x0aK\xae7E\xf2\xb6H\xa1H.\xcc\xb5\x12\x90\x9e\
+\xd1w8\xa0\x0a\x18$z\x7f\x1c\x94@Mq\x5cY\
+8\x04\x12\x980\x0e\xc2\xb6\xadTa\xa9\xce\x07\x11\x86\
+)\x19\xbd\x16rN\x86\x8f\xcf\xc3\xc0\xc5\xf0\xe4>p\
+lQ\xe8m`\x00C\x84\xd7\x90\x14RS\x01) \
+\x8e\x1f\x06\x17\x8e\xfd\xb8i\x0f\x88\xc1\x01k\xb1\x16`\
+</\x19\x00\xa0\x93D~8 \x88\xa0\xb7\xed\x10i\
+C8%\x83i2\xa0\xdf\xd9\x80\xe1\xe0\xc7\x91\xc4\xe0\
+\x83\xb4N\x86\x06\xb5\xee\xc3\x05.\xf6\xfa\xa7.U\xa6\
+\xa9E\x1c`\xa0\xb6\xf3A\x7f`\xd5\xec\xd0\x06(\xc6\
+\xffje\xe8\xa9\x8dC!4,\xcc\x90\xae\xc4\x0f\x0e\
+\x03\x8eH\x9bI\x85\xbd\x1a\x882\x9156\x0a\xdf\x8f\
+\x83)\xb6\xf48\x98q\xb8\x9f\x0c\xe8u~\x9e6\xb3\
+\xffb\x01\x80\xffM\xcfl\xcf\xc6vN`\x08\x85\xdc\
+f\xd6Yo\x04\x8200\x04\x99\x8e\x8c4\xeb\x05G\
+\x81y\xc6\xe1,db\xf9\xf7\xac?\xc6\x8f\xfd\xa1\x0c\
+\xc3\xf0\x8c \xd8\x1b\xabt\x02\xc7\x19\x16s E\xca\
+\xf4\xc5\xf3\xe2\xc0\xb6\xb5\xf2d\x96K\xc9K\xae=\x9d\
+\x91!\x82q\x7fdN\x04\xa1r\xfcBB0\xd0%\
+\xe1V\x97*c\x07\xab\xfb\x9f\x85\x04\x99K\x0e\xc8V\
+\x0a\x98\x00!c\x7f\x01E\x07\xda\xabLZ@f\x81\
+\xc2\xb6z\x08=\xc3\xebv\xdd\xb5\xfa\xa6iW\x19\xf3\
+F\x80\x07\xc7\x86u\xc8>\xa6\xdd\x1edo\xe8K\xbe\
+\x9f@O\x09\xb8L'\x8bc=3\xde\xac#\x02\x88\
+\xac\xa3M\xe5p@F\xc3\x81\x02\xf2\x82\x9a[8\x05\
+hG\xd5\xb6\xf1\x049\xd0\xd4tGI\x07\x91\xebw\
+\x09\xda\xbarD\xe23\xc7C\xdbF\xb1\xad\x89'\x00\
+\x85\xdef\x7f\xb0\x8e\x19\x9f\xb6\x16Q\xe7\x10\xa5W@\
+\xa9\x87\x8f\xe4\xdaO\xf6M\xb4\xd5\x02\x99A\x09\x8a\x1c\
+\xdcp\xb4v\xd3\xb9V\xda\x94\xe6}L\xcd>\xc82\
+\xae\x8fF\xdb\xda\x1cX\xe0J@\x82\xfbm\x11T\x0b\
+4\xac\xff\x5c\xd9G\x04\x06U\x9b\x1d\xebt\x9ef\xdc\
+@\xd2(\xd0\x15\x81\x0e\x1ct\xf4*\x10Y\xd5\xe8\xc6\
+>\x07\x99\xc7\xfc@\x06\x87!&\xf2\xa7(M\xe2|\
+'\x80\x8a\x83N\xdb@X\xf5\xd5m\xa4\xdf\xd5\xa5\xb2\
+/\xe0ra\x1fAFG\x7fp\x9d3a\x98\xa1O\
+Y\x8f\x05y\x93\xd7\xdf\x0e.\xa5v;\xf6\x19\xc8C\
+2\xd4\xf4\xa9\x177\x08\xedc9g\xc8\x0cF\xffp\
+j\xb0\xd1\x9f\xaaY\x0f.\x0a~\xb0\x1f\x18\xaf\xb6\x0b\
+\x03\xcf\xd9\x06\x001\xe8\x09\xa4\x01\xa1g\x1d(\xd0\x18\
+\x08\x008\x1axn\x9ds\xce\xec\xe3\xdc>QKN\
+F\x8bs\x0aD\x10z\x05=\xd5\xb2\x84\xb7]\x9a\xb8\
+o\x90\x15\x94\xd0\x11\xb8\xe0\x1c\xc2\xa1\x01\xa1A\x1b1\
+JA\x09\x08Q\xe3\x8e!+\xa4\xd5\xf01\x97\x921\
+\x04\xb2\x0bD\x9a6s)\x93\xbd\xa9\x12\x00\xff\xae \
+\xf4 Q\xc4\xf90\xa8[\x0e\x19\xd3\xf1\x87\x5c\xaa\x00\
+\x81\x02X\xfd{]\xec\xfaC\x17\xbb^\xecR>\x07\
+\xf26\xb85\xa8\x15\xa6V=J\xce\x08tP\x12\xc2\
+\x95@\x95\x1c\x93~+\x17\x1b\xfe\xbd\x5c\xaa\xc0\xc2\x8c\
+\xcc\xd9A)\xe2\xe8.\xaf\xde\xaf\x12\x19\x90\x06+\xd0\
+\x92\xac\xe9m*\xbb\x16.\x12\xf6;\xc8$\x90\x08{\
+gr3\x1b\xe5\x5c\xf2r\xbdKA\x1c\xa6\xcf\xb5s\
+\xb6\xff\x82K\xc5e\xa0\xfd\x14\x5c_\x9c\xfb\x0a\xb0t\
+?t)\x99\xc6~n\x17\x8d\xff\xcc\x92\x11\xc5\xf1\xea\
+/u\xb1\xeb\xbf\x5c\xec\xfa~\x97\x14\xd0\xcf\x89*8\
+8\x08\xf8\x82<\xfa`\xfe\xffT\xaa\xe3\x8e\xf8\xd7M\
+N\x95#~\x8e\x1c\xf0\x87J\xc9A\xca\xac\x1eZJ\
+h\x22\xd0A\xffu\x95\xa2P\xf3\x1d\x19bq\x05\x04\
+\xe2E\xa4\xd6\x81\x1cy\xbe\x9f\xd9\xdbsu;\xb9\xa4\
+\xb6\x95&\xb6\xdd?=u\xe8\xd4\xa1)\xf0\x96JT\
+\xbb\x0f\xb9\xa4\x04\x97I!M'\xa1\xda\xcdp)\xdf\
+\x9f8\x95\xe6,\x81,j\xfdi\xab\x18\xe7\x01\xf3\x0b\
+\xd2\x03{\x9c\xda}\xc8\xe4@\x1e(\xd0\xc89\xdf\xbd\
+\xdb\xc5\xfen\x19\x17e\xe2_\xab\x84H\xdd\x16\xd5\xdd\
+\xd5[\x12'\x5c\xee\x92Fi\xd3k\xe4\xc7\xb1\xde\x09\
+\xc82^\x90\x5c\xfe\x5c\xac\xff\xd8\x09\xe8Q\xbaam\
+\xe2Rq\xb5\x80|\xe5\xdc\x86\xbb\x85\xf3\x826\xa4\x0a\
+L\x0d+\x0d+\x0efGO\xad\xeaRuw\xf0.\
+\x10\x9f\xab\xec.\xda\x9c+p\x10\x1c%$td\xcf\
+\x0c\x1ft\xb1\xeb\xd9.\xc5qv\xc6\x09/!\x83#\
+'Hc\xb5\x1f\x82L\xb6\xe1\x5c!a\x0e\x02\xa3\xff\
+\x91K\x09\x04E\xe0\x06}\xcc\xf9I\xfba\xb8j \
+\xa3\xa4$V\xe7\xe9lve\xc3E\x12\xed6\xd1_\
+\x9c\xeb\xe8gJ\x0d\x94\xf0\x9c\x1c]\xa7\x0d\x8e\xe1p\
+\xb7\x0c\xf3\x1d\x15\x09\x86\xa4\x866f\x22\x91\x18\xb6\x12\
+\xdb\xbc2\x8c\xd1/\x98\x08F\x1b\xc9\x87\xac\x0e\xc5\x06\
+\x14\x8c\x9a\xf9\xd6\x81j\xdbcq@a\xd0\xf0\x03d\
+\x17\x83\x8a\x00\x03\xedsP\x94\x1c\xc8\x1cx\x18P\x1c\
+\xcc\x8d#F\xad7\xa4\x0c\xf1\xc3\x86;\xd3%\x19\x94\
+9\xb3\x8f\xc3\x07b\x82\xcf\xe7~9\xf8\x81B\xf2w\
+,\x04\xba\x15\x90\xe9\xc2\xa1\x03\xaaL@\x01\xc7\x036\
+v \xc3d\x84\x01.\xc8\xd0177C\xf9\xdbv\
+K\x8c\x07\xcfM\xa6\x83\xb6Y8@\xcc'\xf3\xc8\xfb\
+\x04Y\x0e\x87\x81\xbf\x7fI\xbe\xef\xd1/\xb4\xae\xa8\x8d\
+\xa1\xcd\x1a\x8e\x1e\x86U[z\xc1k2+:\xd0\x83\
+\x93\xa1\x0d\xd80\xee Ip\xb4!\xa3\x12\xc4.j\
+\x0cY\x17(<\x0cu\x1c\x0f^\xe3\x80\xf0\x9a\x80\xc9\
+\xa32\xac\x08x0\xae\xcc/\x0a\x9b\xd7\x9a\xc70D\
+\xd5\xb6o\xf8k\xae\xe9\x8aq}\xb2\x098\xb0\xfe\x17\
+hJW\x0a\xa4:\xff?\x0a`i\xcd\xc3*A\xda\
+G\xa6\x19\x12\xb1\xac\x90\xa9\x89\x17iY\xd4 \xc3\xa6\
+\xcdz$\xc2O[B2w\xdc\x17\x8e\xc8\xc2\xd3\x1d\
+\x91xn\x1c]2\xff\xd4F\xffV\x11\xd1{Ez\
+B\x1bBe\xd8Q\xc4\x94lP\xb3\x16\xdc\x0b\xb7\xe8\
+\xfd(@\x1c\xf45\x14Q\xe6\xe0A\x81\xb2\x8f\xe0\xf6\
+ #F\x04\x9a\xfdT\xfa\xd5Oc\xc1\xb7c*\xaf\
+\xbbmd\xd81\xbf8$m\x97\x8f\xe0z\xc8\xa54\
+\x13\xea\x8ab\xf7\x9a3\x828l+\xbbT\xfb\x9b\xcf\
+\xe5\xf5\xcb\xc3\xf1\xcc\x07=\xeb}\xe1\x18O\x02CY\
+?\x12\xf8\xe35\x075\x8e\x10\x19z\x10\x00@\xf0\xe9\
+C\xce:\x84\x03\x04\xbd\xdav'a\x9f\xe3H3\x0e\
+ \x01vV\xc6w%\xedCj\x00\x9fS\xe6O]\
+\x22b^\xda\xee0\xec\xa7\x96s\x04=\xc4\xdf\xf1\x03\
+\xf9\x17\x19\x08\xfa\xec\x92\x99\xc0\x81\x82T\x8c\xe7\xa2\x96\
+\x9e\xee(dj\x80Bn\xd1\xf4\xe3\xd6y\x18\x8e\x11\
+\xc86X\xdc\xd1\xab\x18\xca\x9c\x7f\xe8\xb5\x96\xb3\x83+\
+\x0e+\xe7\x1b\xdd4\xda\xd2\x0d~\xcf\xfc\xc2\xa9\xc0\xbc\
+0\x9e\x94\x1c\xf0\xfd\x04\xda@\xfepN\x82Hc|\
+\xd9OmF\x9av|\xb0\x0f7m\xf0\x80\xb2\xa2\x1f\
+\xa2\x1b\xc5\xb1I\x0aI\x9f\x0c\x93\x84\xc4\xed+\x08\xbf\
+j\xa0i\xb3\x15\xa4\x84\xe8]\xc6\x93\xd7\x90\x91\x02m\
+\x16\xa9Q\xd4\xee\x93\xc0\xa0}+$m@DU\xbb\
+I\xe6?\x1c0\x95\x0cD\x00\x00\x87\x9c\x8c-%G\
+\xcat\xc6\xba\xe2\x9c\x98c:\x09i\x04l\xd8\xcf\x9c\
+[\xcc7\xe7\x02\x01k\x12\x02\xd2\xc3\x90\x14\xc6\xff3\
+\xef\x94\xa2`/i\x9ep4\x03qA\x80W\xec\xd0\
+\x18\xd0\xa17`\x97\xa6\xf4\xe3:\x97\x8a$\x0dVl\
+wH\xef\xaa\xd6\x19\x81]\xc84!\x1b~\xd0Em\
+\xd4fV\xf7\xcby\x86\x03\x00\x12\x8b\x00\x9b\x0c^\xda\
+\x04\x0e\xe9\xc7\x86\xeb*\x93+U\x82:\xab\xd8a@\
+\xcd\xfb\x1d]\x14\xb8\xbf\xdd>~\x09\x97\xe2`w7\
+\xba\x94\x8c\x7fw\x89K\xe12H$i\x8bW]\x05\
+\x9cE\xfd\xd6*\xa3\xf6S\x17\xfb\xfb}]*\xfd\x80\
+\x1eB_C\x86{\xe2\xe8\x84\x14`\xd8w\xe2\xa3\xa9\
+\xc4\x11\xc83\xc8\x03\x91jGi%\x06:v\x8b\x02\
+$I\xfblX\x9d+ \x0b\x04A\x8f\x9a\x7f\xbaR\
+\xa8\xe4m\xb8W\xe4\x92\x22\xa5\x1d\x1e\xc9\xdf3\xfc7\
+g\xde\x09\xfc\xc5\xfb=\xa1g\x0eM\x7fe\x7fE\x7f\
+\x85\x8d\xcfc.%`\xdb\xcdt\xa9\xce}8K\x14\
+`\x8f\xcf\x13d>H,\x9d\x99\xe2\xbd\x85[ \x05\
+\xe8\xb6\xaf\x1c\x19\x91I\xe2\xb0\xcf\xfc\xc6\xcc\xd3g\xda\
+\xfd\xf4\xeft1\xc7nS\x97\xd4\xceq\x99~\x99\x02\
+UN\xee\xcb\x8d\xa5\xcb\xd5\xf0-\x97\x12\xb8\x80\xf4\xac\
+\xbf\xd9\xa5 \x1b\x02\xda\xff5\x97*@DW\x03\xee\
+\xff\xe5.e|\xa2\x0b\x8f\x07`m\x7f\xf6\x9b\xf4\x1b\
+\xf7\x1b\x97\x80\xc44\xfb}y\xad\xc7\x1dJ&vt\
+\xbbK9\xefFo\x1b\xed\x96\x906pm\x80(\x13\
+\x227%`6\xad\x90\x08 \xdcD\x1a\xc8\xf8E\x06\
+\x9b\xcc?5\xef\x90x\x13\x00T&:\x102B\xec\
+t\xefpQ\xa9\xc5\xadZ\x97_\xaf\x02\xf8Br\xdb\
+\x19\x92\xcf}!0\x02QM\xc92%\x0a\xd8\x19\x9c\
+#\x0469\x8f\x08\xf0\x92qW\x09\x00\xdc\x02\xa3\xa3\
+]\xca\xfa\x09\x12n\xc8\xef8g)Q\xfeJ.\x09\
+ \xb0\xd2\xbf\xc4\xc5\xae\xbb\xb9T\xfbE]K\x86s\
+\x5c*\x07\x1a\x12I \xf5*9\x8dR8\x05\x0e\xfb\
+S\x5cR\x09\xc2W\xfd\xfbB\xafC\xd6H\xc2A\x1c\
+\x11a\x97\x81$P\xc25\xc8\xa8\xf5\xfdp\x94\xf4\xfb\
+\xbaT\x01v\xb5%\x0d\xfb\x02\x8e\x078\xef\xb0\xb3\xf0\
+_(\x15\x82\xab\x0c{\xecSI\x82\xc4|\x10)9\
+\xa4\x93\xb4\x19$\xe0:\x19\xec\xe0\x22\x91\x18\xd6v)\
+\x19\xd0\xa8\xc5\xe5\xc10\x00`\xe5\x17\xb4\x86\xc8\xe7\xe8\
+9\x97*\x92\xcd\x0dsp\x00A\xa3\x8f/\x91\x0bm\
+\xe88h\x880c\xf8\xe0x\xe2\xd0s\x90\xe1\xc0\xb7\
+}\xbe1\xbc8p1 \xc8H\xb5\xd0\xdc\xb6\xc6\x9e\
+\xcc\xa7\x22\xda\x91)\xc1\xb1\xc7P\x92\xe3\x16\x19T\x0c\
+66\x02\xb5\x96\x90\x14\x91!'\xb3\xc5\xc2\xe1\xb9\x18\
+7\xbe\x87\x83\x00\x03\x1f\xd2\xbf\x85\xb5\xb0p\xa4[\x92\
+@e\x9eF\xaf\x10t\x14vr\xa0\xc1b\x93\x1f\x9e\
+\x96c\x85A\x0a\xb4\x10\xb2\x1f\x91\xa1\xc4}q`\x95\
+\x8ct>\xe8\xa9\xf5\xdbX\x06\xf4CM?\xe3\xc6\xc0\
+\x8dy\xc6\xa1mK1\xc8\xa4<\xd9\xacC\x0e\x226\
+V\xd3N)HR\xf8\x7f\x91\xf8\xd1\xee$\x90\x10\xd4\
+\xc82\x8fm\xbf\xf9bx\xe2\xf0O/!)P\xde\
+\xec\xe8\xb4\x88\x04\x90 \x18:8N\xd4\x94\xd3]\x00\
+\xc3p\x0d\x19\x8cK\xc8\x91n\xfb\xac/\xa3+\x86\x07\
+\xb5O\xb4\xa3\x22\xf0\xb1\xbc\xd6\x0b\x8e-\xf7\xb3\x922\
+\xce@yq\x10\xf8\x9eW4dw\xed\xef\xf9<\xf6\
+\x17\xf7\x05)\x0a\x81\x88\x95\xb5Oz)J\xda\x01\x12\
+0\xc0p]6Jc\xb2#N\xe0\x08\xc3\x9au\xd2\
+@q\xe3\xbe\xd8O(|\x1c\x0a\x91\xabD\xc6\xbb\xd5\
+#\x059\x93\xf5\xc3\x0a\xd1\x86.\x8f\x1bz\x8a\xbf[\
+A\xe3\xca8\x12\xe8@A\xaf\xad\x9a\x7f\xc6\xa9t\x0d\
+\xc9\x0e\xc4\xdf\xc4\xbe\x8b!\xccs\xe1\x882\xae\xdc'\
+\xfb\xbdm\xdf\x87CL\xe0\x8f\xcc0\xef\x03\xd2\xa7\x0c\
+O<\x1f\xf7\xcb~\xc3!\xc1\x80o\xbb\x0fP\xf3\x0f\
+B\xe0\x99\x5c\x22f\xfa&#&(\xf9@o\x81p\
+ye\x03A\x87\xd3@\xeb#H\xc4\x084\xb7P\xeb\
+\xc2\x8e\x9f\xff\x1f=\x0d)\x1d\xfb\x0d\x07\x9d}CI\
+\xc78\x90P\x99{\x02\xc3U\x86v\x046\x97\x94\xde\
+e^\x81&\xcbQ\x8a}\xdf\x96n\x81dS`)\
+\x90&{\xab\xa4\x09R$\x1c\x04\xf6\xc7\x5c\x0di#\
+%\x08\xec#\x9e\xb3EBp\x1f\xec\xe7\xf9\x90\x7f\x9d\
+\x86\x00\x00 \x00IDAT5O\xe8\x93\x05\xf5\xf7\
+\xf3h\xbc\x98o\xf4\x14\xa5 \x9c?8\xfe 90\
+\xd0\x96\x88\xf1\xc8\xeb\x9b\xf5(\xe8\xe2p\xb3\x8b\xbd\xfe\
+b\x92b\xe8\x11Pa>Xg\x04\xb8\xfe\xe8R\xda\
+\xed2\xbe\xf4\xfb\x0e\xb6{ja\xc5\xf5\x12\xe3\x84>\
+k\x90M\x818\x81U\x1d\x12b\x90l\xc7\xaa\xfb\x0b\
+\x06\xb8\xb7'\xbb\xb1\x82\xb8c\x7f\x10\x98\xd6yM\xc6\
+&\x02\x00df\xd4\x066X\xecA*\x90\x91\xa36\
+\xb9\xe56\xe0\xbe\xe1x\xa1t\x89\x1azJ\xf1h\xe3\
+I7\x0f\xce\x0d\x90\x018\x1a\xecs\xe6\x93s\x8c@\
+\x025\xfdp \xe00\x0a\xe1\xd9\xaf\xe7R\x02\xa0p\
+\x1et\xefr\xa9\xce{ebG\xbb\xbbT\xdf\xcbz\
+e}\xa2'\xa5\xc7@\xf4E{7\x05T\xe0\x90\xc2\
+\xbe\x8c\xcc\x9e\x0cq\x07\xfe'\xe8?}\xde\xdf\x93d\
+b8\xd4\xc5\xee{g\x93]J . \xb3\x90\x09\
+\x8b\x141e\x167\xad\xfa\xaf\x0b\xe9\x05rl|\xac\
+K!\x0f\x0c\x07\xd0k\xfc7\x12\xd2\xe1\xa4\x8a\x1b\x02\
+\xc8<m\xb0or\xa9\xec\x0a\x10\x1ap\x0b\xfd\xdcS\
+\x1ev\x9d\x1a\xf5\xa3\xa9*\xb0\x09'\x15\xf6)v\x1e\
+$\x8b\xca\x94G \x11\xc7\x0e\x83~\xadtB\x96\xf5\
+G@\xe8\xe7)\xd7ZJ%\xbf\xa3\x12\x8d\xa3\xd4\xde\
+PPt\xbaT\xf1\x9c\xf4\xa9\xef\xcf\xea\xcf\xee\xcf\x12\
+\xa2\xf5[\x85\x04nx\x8d\xc9\x8c\xaa\xdb\xc7=.\xe5\
+\xdc\xeeg\xb8\xd8uK\x17A\xfd?\xac\xf6\x88ki\
+\x9dyM\xff/M\xae\xd7s\xacU\x05<(\xc5\x11\
+)\xa5\xb9)\x9f\x18>a\xe6\xe77]L}o\xee\
+b\xaf/\x9fu\xd9\xac\xcb\xecsvp\xb1\xebv.\
+B\xeax\xc6~}\x93\xf5\x14Pz\xb0\x22\xfd\x93\xe3\
+H\xb7\x86\xe0\x12\x00\xb9\xf4z\xd3\xde\xaf\xaf\x02t \
+w\xb0\x1f\x95!On\x99#\x0cN39U\xa5\x0b\
+\x7f.\xe3\x11\x01\x03'\xf1;!\x8d\xdf!>~S\
+_q\xb1\xc7\x5c\xd7\xa5iw\xf8|97\x02J\xee\
+\x89S\xe7`\x9be2\xb3J\x88\x82\xe4\xa0\x9b\x01v\
+\x14\xdc\x13 k\xd07$&\xd7r\xa9\x02\x80B@\
+@\x02\x9b\xf6\xe5\xd3\xba>\x9b\xda\xdc\x9a\x884\xd2\x91\
+\x11K\x9b\xd8s\xf5\xcf\x9a<W\xd8\xe8\xd1\xffQZ\
+L\x89\x81\x1c\xd8\x084s\xce\x88\xd4|8\xdc\xa5\xf2\
+\xdf8\x978\xbf!{\x94~\x01\xf9\x10]\x0b@\xd4\
+\xe8\xfb!q\x1d_0>\x7f|~\x85\xe4\x9b\xdb\xc5\
+\xaes\xbaT\x08_\xc6GH\xe6p\x88\xf7t\xa9\xda\
+ \x8a\x14\x16\xbd\x14m\xba\x85\x00\x22`\xd0\x92\x80\xc6\
+\xfbH\x00\x80\xbc\xe4\x5c?>I!\xa3\xd5\xf9\xc9\xb8\
+Wd\xdcY\xaf\xc3\xbd\x82>\xe0|\xe59\x15\xc8\x8a\
+\xee{\x90\x0c\x0a9\x1ez\x99\xf9\x87d\xf0\xe1\x9c\x88\
+\x0a\x84\x95\xd6\xefd,\x1cg\xaf|i\x82@\xe4Z\
+\x9a\xfdtP2A\x90UPS\x87\xc3\x0fTg\xa4\
+\x8d\x8d\x82\xc7`\xc3\x90\xc6A\x84\xf5\x94\xda\xcf\xa6v\
+\x1b\x85\x16\x99\xc9\xc6\xb0\x0b\xb2\x0c\x14*\x861\x0e,\
+\x06$\x0e\x17\x7f\xc7\xe7\xb4\x91z\xae,P\x0cx\x02\
+\x1e\xd4 \x11Q\xa1-\xc75\x0a\x84p\xf0cP\x03\
+e\xc2p\x07*\x8a\x02\xc4\xb0\xc1\xf0R[.\x9b\xdc\
+lP\xb7\x19I\x1c\x05\x22\x92d\xdcqX\xda~\xe3\
+,\xf8\xb6\xc6\xb3\x1d'j\xe3_\x91k\xc9\x86\xbf\x89\
+\xa4\x8d\x0c!\xb5\x9e@\x08q\xc8\x81\x88\xb2 a\x9b\
+\xa4\xcd\x10l\xd3p\x0f\x10\xf9\xe5\xe0\xc3\x11\xe2~_\
+\xe4>q<\xc2\xe0d\x83\xd1\xfd\x01(+\x86oc\
+`\x8f\xde\xeeR\x91sA\x8aA\xdbF6*m\xe8\
+\x88\xa4>\x903\x19\xa6\x8cr\x06\x9c\xf5\x01{95\
+\x98@\xe0\x99\x87\xa5\x9b\xc0\x06\x10e\x1cn\x1c\x1f2\
+\xf2m{\xb1y\x1b\x08?\x86\x17\x0e6\x0eE\xeb\xf8\
+\xe3\xa0\xb0n\x96\x0bv\xfb\xbc~Xg(\x1a^/\
+\xd9\x04\x1ap\xc8\xb9?\xf6\x11\x81\xac\xa6\x1dXDZ\
+\x96\x8buH\xa0 \xbf\x06\xf1\xa3L]\xd4T\x82,\
+\xe0\xfd@CU\xe3\x18\x90\xb3\x15\xa7;h\xc1.\xfe\
+Q\x97\x0a)@\xdb\xa0}\x05E}\xa3\x22\xd9@\x9c\
+i\xab\x82#\xc3\xfdc\xa0\x83\xe0YT\xfa\x88\x00\xd3\
+R\x22\xbd\xdb:\xda1\x12\x08\xc8\xe3\x0ft\x1fC\x1d\
+\xc3\x9dv\x8d\x90\xf6-\xaey\xbc_\xfb\x88}\xcd\xbc\
+a\xe8\xb5\x9c\x02\x18\xb8\xcc3\x07&\xe3\xc7:a\xbe\
+8X\xe8\xb3~\xbf\xcb\x0b@\xee\xdbvm\xe8k\xb8\
+\x0dX\x0f@\xba\xf7Pm\xdb\xee*Eb\x1c\xe0\x96\
+`\x1cy\x1f\x01\x1e\xee\x8f\xc85\xff\xcf\xbc\xb7\x01\x00\
+\xf4\x01\xfa\x94@\x5c\xdb\xee\x8e\x089\x19k\xe6\x13=\
+\x8fc\x04\x8b\xf8\x17\x5c*h\x1d\x81:\xf4!\xe3\x89\
+\xe3N\x9b$\xf4;\x86\x0d\xe7\x03$H^{\xbak\
+\xa5\xef)]\x01*\xcd~\x049\x04d\x9e\xe7\x22p\
+\x81^E/\x13X\xc7\xf1x\xb5\x1c^\xf4\xc5\xff\xa7\
+\xeb\xcc\xe3\xfe\xab\xc6\xf5\xff\xdd\xfb\xf9j\x90\xe6\x12\xa5\
+\xa44*eh<\x9aPH\xa6$\x89\x83d\x88\x92\
+\xccc$\xe31\x97\x83\x06\xa5\x10\xca\x9cC\xe6\x0c\xfd\
+\x0a\xc7pB8'\xa5L9\x14\xe1D\xd2g\xef\xdf\
+\xba\xd7\xba\xde\xd7Z\xcf\xfa\xf2\xdc\x7f|^\xcf\xf4\xf9\
+\xec\xbd\xf6\x1a\xee\xe1\xba\xaf\x8bD\x01\xe3(\xf2\xc9\xb4\
+k\xe5\xca\xea\xb0\xb1\x11k\xe5\x1c`\x9c\xef\xa9q\xe3\
+\xf3\xf8\x7f\x9e\x1f\xfb\x16dZT\x9a\xc4J\xefD\xbe\
+\xa0\xd7\x96\xe7\xfaLXC\x1a\x8a\x9a\x0d-\x07\xaa\xf8\
+R\xf1B\xae\x0c5\x05\x1c$\xb3\xec3\xcfI0\x11\
+h\xa1\xeeC@\xcc\xba\xa32\x04\x87\x06\x81=\x81\x1a\
+\xcf\x19\x88%\x895\xf6\x19]7\x95\xbf\xe1=a\xcd\
+~\x83\xea\x03\xd0o%\x1e\xdc\xb3\xca\xfb2\xcfYG\
+$\xca\x814\xd3\xd2F/\xf0\xc6]\x22\x8d\xf5\xcf}\
+\xd1;\x0a\xe4_\x019\xady\x0e\xe4\xd5\xc3?\x9e\x10\
+\xd6<\x0f\xc6\xe5OaM@\xc1zS\xa2\xdf\x10{\
+d\xe2N\x0ak\xb8\x0a:5\x22\xd4\x15|>\xe1\x9f\
+p\x9e\xc4\xe8\xee\xac\xfd`\xd3\xa6\xd0sKa\xefw\
+E\xf4\xeb\xc3%\xc3%\x95\xdc\x17\x04\xc7\xfc\x16!E\
+`\x93\xdfj\xdaz\xda\xba\xfaQ\xb95\xf5\xb8\xdc#\
+\xfc\x9a\xe8\x11\x1e_\x17\x96\xc9r\x935\x89\x83\x8b\xa7\
+\x8b\xa3\x02\xbc\xf4\xf0\xa5\x87g\xb2-\x0a:\xe2\xc2\xa0\
+\x22?m2\xdd~\xda$C\xde\x0bK<\x89\x10\xf6\
+\x01\x90d\xf8\x8f d\xbf\xb9\xe2\xa4P\x13\xca\xba\xf2\
+/\xac\xb2c\x1e\xbf-3\x06\xaf\x9c\x9f\xdb6\x9c\x0e\
+\x90\x7f\x81\x80U@\xee\xd7\xfb\x845\xe3\x1b\xf5\xf2\x13\
+\x9aVP\xb8\x1ehy\x11y\xa9\x13\x1f\x22\xc9t\xa0\
+\xb3\xc1\xbc\xe1\xbc\xa1\x02\xcc[+\x9b:-\xac@\x82\
+\x17\x7f\x0ak8!\xb4\x9f/.\x0ekz\xfd#A\
+\x90\xae{\xbaO\xb2}\xaaL \xe4}\xd3\xdd\xc2\xd2\
+\xff\xad\xbfXo\x11\x5cY{\x855Pk\xe4\xc6u\
+?\xe3\xbf\x96\x04T&u|c\xfa\xfb_\x84e\x92\
+\xbd\x17Ni\x5co\xfd\x5c\xb2\xcf\xa6\xf7\xfbq\xb2\x14\
+\x80/\x1e\x16\xa6\x8a\xe6\xb6\xcd<;<\xb3.\xac\x88\
+tB$\x14\xd8?\xa7c\xc2\x1a\x04\x12dzb\x8f\
+\xa7%\xc5\x1cX\x8f\xcd'\xdd\x8a\x88\x86\x82\xcd\x9f\xf9\
+\x04\xf2\x87\x806\xc5K\xb7\xcf\xbf?1\xfd\xfe\xc4\xcc\
+A\xb0S\xc4M\x04\xa2\xd3\xbd\xa7{M\xb1n\xbf\x19\
+\xd6\xb0\xb4\x93\xa8\x84\x03#\xd4o6\xa8\x814\xb2\xe5\
+\xf3\xeb\xc2\x1a\xff\x9b\xf3S$}9\x80=J\x01\xe2\
+\xee\xcd\xb9\xc7~&\x04\xcf\xbcFXz\xdfk\x0b\xc7\
+\xd2\xd2na\x151\x93\xfd\xf7s*\x82\x9b\x8ay&\
+\x9bK\xfe\xde\xe2\x1ea\xe9\xe7\x8f\x09k\xce\x01\xceE\
+\xe2\xa3Ou\xe4\xef\x22\x05u\x82\xad\x0f\xf8\xe1\xfa:\
+F\x1c\x15\x04\xda\x22a\x05\x8ao\x7f\x9e\x96a\xb1\xe1\
+\x8f\x0f)\xad\x18\x0e\xccu\xae.\x9e\x18\x96>.C\
+\xca\x1a\xf9k\x12\x8c$\xf6\x9e\x93\x05\x0f\x8d\x94`\x9c\
+\xd2sK\xd6\x9c#\x90\x96S\xc8\xc4\x9f\xa2 \xb0\xbe\
+\xb9\xad\x8a\x7f\x8c\x1c!\xea\x09\xec\x1b :h\x81\x80\
+\x8b\x06\x7fF\xf1\x92\x13\x0b\x92owbN\x89\xe9\xe1\
+\xdf\xc3\x9asG~\xc7xdX\x93\x00\xc2/W\x8b\
+\xed\xf4\xac\xb0&\xb1\xadB\xf4\xca\xe9\x82\xe9\xfc\xe9\xfc\
+\xdas\x9aY4Ojz\xe3\xe8\xfd\xe3\x86\xc5bh\
+H\x1d\xe4\x138\xec8\xb4T\x14\x80\xe4\xd2K\xa1\x8a\
+\x80\xd9.\xe5\xc8\x1b\x22\x0e\xe4\x0a\x87\x0c\x88\x9d\x0er\
+\x1f\xf4:\x10\xe6\xab\xc2\x9a@\x90\x03\x8bLH\x0f%\
+\xed\xd9\x8c\xf9\x9e\x83\x11\x08\x9cz\xd3\xd2\xe4(\xa4<\
+\xbfR\x80\x88\xbe\xe4\x1bT\x11\xc1\x81\xc2A%\xf1\x81\
+#K%\x09\x87\xa0\xd3\xd3\xc61r\x85\x9b\xf7\xe9I\
+\x0b\xd7\xb3Nt\x09Tp 8xq\xb8\xf9\xfb^\
+'\xbeo\xc9\xa0\x12E%fC\x05J\x22\x07\xb4\x03\
+\x80C\xc2\xfb\x108\xf3\xc5\xb8\x13\xb8\x9fV\x0eVC\
+wpt\xff&\xd6\xca\x93K\x86:C\x05o\xad\x90\
+0_7\xcf\x8b\x05\x87C\xd9\xabDp@\xaee(\
+z\x09\xf8\x80V\xa3\x9b\xca\xfb\x80\x5c\xd1|2+}\
+E\x02\x94\x0d\x14Y/\x1c2\xcd\xeba;\xbdo\x9d\
+\xdf%0\x06\x01\xb1\x81e\xcf\xca|\xd28\x93\xb02\
+\xa9\x12\x09\x9b>\xe0\xc3Q_\xd7\xea\x04\xcbz\xf9\x0d\
+\x15%\x80\xa1\xf2\xba\xb5\x03\x7f\x12\x11%Q\xc0\xfc\x00\
+\xa2x;\xe9\xa2\x03\x95\xbfs\xd7\x22@`\xcau\x91\
+p\xa8\xf3\xa5$N\xd0G'\xe0\xa2\xf2\x7f\x17!M\
+z\x87\x10\x96vUd\xe9\xb5v\x02\xea\xe0B\x02\xb5\
+\xe2\xf5J8=\xa8@\x1a\x87o\x87\xd5\x1e2\xff\x1f\
+d\x5c\x1f,\x1b\xa9\x13l;(P\x00\xa9\xd3\x93\xd8\
+\xf1=\xf7\xcb\xfe\xa0\x0d\xd8\xad4\x04B\xbbjc\xde\
+^\x81\xfdV\xee\xd1^\x8e\xb0\xe8\xf7=\xc6\x95u\xc1\
++-:\xbd\xae;\x0e>d\x87}\x00\xc4\xfe\xc9u\
+Qq\xe4}{U\x11\x12\x85TJy?\xb8<H\
+T\x10\xd0\x92\xa0`\x1f'QK\xa0\x08\x04\x90\xbf\x17\
+bc\xd8^\xc8- \xf8\x5c_\x8f\xf0a\xdfc\x9e\
+s=\xbd\xbc)\xcf\xa9o\xc9b\xdf!\xa1\xa4V \
+d\x91\xbc\xbf\xb0\xfe$\x8f\xe6J\x1a\x09K9\x18\x90\
+\x8e\xad\x02\xe5SF\x1eG5\xd7\xd7\xbe\x9e\x1d\xc7\x22\
+\xd3D\xc2\x8f\xf9\x8c*\x02\x09*\x1c\x17%&\x816\
+z\x1d\x03\xcd\x95\xfe4\xe7\x84\x91\x1c\x9csTZu\
+^\xcd\x97\x96@\xdc\xe7&\xe3B\xc2\x14\x87L\x09\x86\
+\xf9bA_\xe1\x86!au@\x81\xba\xaf\x82\x80\x22\
+Pf\x9f\x04qA@NK\x1dH\x07\x90\x14\x82\x1e\
+:\xc0'@\xe6>\xf8\x1cHMQ\xdb\x10\xb7\x87\xd7\
+-r[\x225\xb3\x0c\x17\xd7\xd3\xf5:z}1O\
+@\xbeh>Paw\x85\x87\x04\x8f\xa0\xa8A9\x16\
+\xa4cN\xe4@zH\xe0\xc3\xfa\x84|\x91JM\xc7\
+\x86\xbf\xe2\x99\xd9\x9c\xf8\x1f\x9e\x1c\xd6\xac\x1f*\x8bT\
+t\xf0gX\x0f\xc8\x12\x82\x04c\xdfd\x1d3~ \
+\xd3\xb4>\x87_\x84\xd5@\xc1\xaf\xc8\xa8!\xf3\xa6\xeb\
+\x19~\x1d\xd6|>-]:\x7f\x91I3+\xf7G\
+\xc3*\x09\x97\xc7\x9d\x04\x07\xcfM\x95\xe8\xe1)a\x99\
+s\xa3\xa8o\xd0\xb3\x0b\x82\x00\xa4\x06-\x0d@\xe9E\
+\xfe5\xfdz\xban\xba.s,\x14\x16\xf0\xdf\x15r\
+\xbf\xf9w*\x04}*L=\xc9\x97\xd7\xf1\xb2z\x95\
+\xfc\x89q\xb7d\xf7\x96?y^\x91\x9f\xcb=\xc9\xc9\
+{\x89J\x97Uu\x08\xb05\xafs\xefz\xf2\xdf\xa6\
+''{\x8a\xd6\xf7\x06M\xe2\x91\x84\x13=\xcf\xd2\xa7\
+\xcf\xabz\xfd\x8a`1\x19\x19\x10\xff\xd8\xb5w\xa9\x89\
+\x87\xe9\xada\xe9\xba\xce\x0fk\x90\x0fp,\xa8\xe5\xc7\
+\x09\xd9hm\xf8~\xe3\x07\xd2\xb2Q:$VL'\
+%{Ez==\xd9\x19\xe9}o\x1d\x17\xe3\xa2\xd1\
+\x0fW\x01e^7,\xb7X\x94\x9f+\x110\xdd6\
+\xac\xe9\xa5\x8e\xb0\xe0\xe3\x15\xe12>/L\x88\xa1\xdd\
+\x9a\x84\xdeR\xb2\x95\xe9\xffw\x0bK\xaf7'K\xfb\
+Pt\xc8O\xc9\xbf\x5c\x9c\x1b\x96{\xfe/\xca=\xff\
+'\x86\xa5\x9f?7,\xbd.\xa5\xcb\x1c3\xb26?\
+\xdf\xf9\xff\x89|S\xfb\xdex\xd0x\xe0x`\x93\xb8\
+\x12\x92l^+\xd9\x9a\xea\xd9?\x22\xbd\xef\xb6a\xe9\
+\xf5\xf6a\x0d\x99\x9d\xf6\x19\xef\xb3\xda\xc7 \x1b%\x01\
+\x91U\x02\x92\x1f;\xef\x1dV+\xc1\x0e\xc0\xf6\x98w\
+\x0f\xffb~\x948\x04H\xa8\xfct\xbe2*\xf1\x86\
+\xa8\xabU(\xcd\xaa}b^AF\x98N\x8d\x5cy\
+\x1d.\xd7~\xa7\xd6\xba\xf1}a9\xb1\x9e\xd5bR\
+ \x9bL\x88\x89Kj\xa0\x0eg\x85\x11\x22\xb4\xc4\xea\
+\xba\xedw|=\xd3\xf3\xd5\xd6\x15z\xea\xe5'\xcd\xcf\
+\x0bk\x0ajR\xcdZz~\x98\xc8[wh\x0av\
+:?\xc7\x1b\x93\xfdA\xfbw\xda\xcf\x16\x7f\x0e\x13\x99\
+\xfb\xb3r\xc2\xe4\xa4\x8c4!\xf1\xad\xc2\x9f\x11:\xf8\
+\x0dB\xf4\xf8\xbc\xa1\xe0|qXs\xbe\xe3wr\xae\
+\xb1\xff\xc2E\x072\x0b\x7f\x5c\x09\xe1\xf1\xcba\x95<\
+u\xba{\x98T\x0b\xdeY\xd7\xbb\x91,\xfa\xb9\x13\x8e\
+\x22\x11\x9ew\x09K\xff\xff\xb8\xb0\x1a\xe7\x0c+\xc3\xd2\
+\xeb\xcf\xc2*\xb9#\x08\x16#1\xd4\x0aa\xff\x01\x99\
+@\xfc`q\xc8\x98\xb3@\x1c\x13F\xf4\xb0\xbf\xa2&\
+wyX\x13G2. 1(D\x13g\xe1\xc7*\
+\xce\xf0>\xa9\x82\xf1puX\x13\x07\xcb\xbf_\xe9\x89\
+s\xab\xa0\x01\x0a\xa8}\x10\xe0\x00\xc8\x11\xa7w\xce\xec\
+\xc8\x8f\xd3F\x7f\xbc\x10\x03\x5c(\x818\x0e.=\xa8\
+\xcf-={Y\x1ed\x8fF\xf6\x0b=\xccK\x04\xd5\
+F\x96\x04y66B\x1c\x0c*!T\x9ep(\xf9\
+9\x01#\x99~\x1c\xd8\xfe\x95\xff\xe3\xfd\xe9\x11\x91c\
+\x09\xeb\xad\x07\x8eJ#=\xe4< \xde\x0f\x87\xa5\xef\
+\xb1g\x22\x100m\xaa\x80n\xa3\xe5\x81ZZl\xc5\
+a\xbaX\x10\x10\x0e\x5c\x1c\x03\x1c\x1a\xbe\xef\x1do\x02\
+\xe2^&\xac\xd7\x8b\xff\xbd\xc9\xab\xca\xf3\xc2\xb1\xbdK\
+\xe1|p@N/\xd0\xff\x0a\xcax\x85\xc8\xe0\x08\x10\
+\xe8)\xa7'}(=G\xab\xe8{\xe3p\x7fTd\
+\x92\x82VZ'\x1a\xc7\x88\x0d\x01\x08,\xa4'$\x22\
+\x08\x9cp\xf8\x91\xd7\xa2RJ\x85\x85\x80\x0c\xb6i\x02\
+H\xe6\x03\x19~>\x0fG\x87\x85\xb4\x97\xc9\xe4J\xa5\
+\x16(\xce\x9dL\x16W\x129$dz\x96s6\xb0\
+-\x84\x00@\xde\x90\xe7G\xe0N@\x06t\x96\xd6\x06\
+\xee\x8f\x84\x12\x0ebOV\xb7\xa5+\xf7\xb0\x8a\x97\xf5\
+@\xc5\x90\xebA6\xb1\x0f\xb4\x08\x84\xf9\x1c\x12)\xe2\
+\xfe\xf0\xfcb\xfe0\xefzr\xbb\x1a(\x97\xeb\x02Q\
+\xc0\xbc\xa7uew\xe9\xb6C\xb2\xb8W\xe9YZ\xf1\
+\xc8\xe2\xf8\x0c<g\x1c02\xa3\x0a0\xe6\x9d\xc4\xba\
+\xbb\x93\xe6/\xeb\xf0+\xeaU\x86\xbb\x83\x00\xb8\x93\x8b\
+\xf3x\xa1\x82@b\x84\xca\x1dr\x86\x8c/?\x07y\
+\x01\x1b;$P$:I\xdc\xf1\xcaxq\xf0\xb1.\
+y?*\xf0p~\x90\xd0\xe1\xef\xd8\xd7\x18\x07\x12:\
+\xbbj\x1e!sH\x82\x80\xc0z\xd3NF\xef\x16\xb1\
+r\xef\x98\x9bLje\x1c\x92\xd1{\x09\x12\x0e\xf2\x81\
+V&zvq(\x98\x97\xdc7\x81\xcf\xde\xca\xf8\xef\
+\xa7u\xc0\xf3f\x1c\xe0R`}\xf6\x88+\xe6'\xfb\
+v\xdf\xaa\xc1+\x7f\x0f\x99\xaa\x12b\xee\xf5\xc41\x90\
+.\xb3\x13\xcb@\xf1\xd8\x1fa\x07\x07\xc1\x06\xf9\x12\xfb\
+\xa2d\x96\xe6\xb3\xc2\x9a\xd6)z\xe2\xf5<,?)\
+N\x13*H\xc3\x8da\xcb\xe4j\xcb>\xf6\x13%2\
+\x7f+$\x00\x8e\x00\xd7OK\x09\xc8\x12\x02q\x90\x03\
+\x90\x94\x02\xe1\xa72D\x80\xe8\xde'}\xb1\x7f@\x0e\
+\xfb]\xf5jV\x0e\x8f\x9c\xb8\xce\xac\xcd\x9fm\xe4t\
+\xe9\x01%a,\xe8\xbc\x03\xe1Wd\xabH1\xf6\x01\
+\xce\xdb\xfe\xfcc_\x05I$Gx\xb8!\xac\xa9t\
+\xabb\x04\xbb;\xdc\x01+\xce\xc9V+\xb1\x90z\x92\
+0c>\x92(\x84d\x89@\x5c\x89\x8b\xf1~aM\
+\xe5\x05R@z,Y/\x9c\x0f\x9cG$\xe2@p\
+\x81\x8c\x81\xdc\x96\xfb\x15d\x132+C\xff/\x0ck\
+\xe6\xb1\xc6\xd5\xa4Q$@\x08\x90IT3n$\x12\
+\x98O\x9ck\xac\x17\x12\xf2$dI\xdc\xb3\x9f\xd0r\
+\xb6V\xd9\xe7\x80\xcc[&\xee\xa2\xc2\x1eo\x16r\xce\
+W\xd4#\xa4/\xbf\xe2\xeclU'\x9b\xeb\xc7\x7f\x82\
+;\x84\xf3\x96\xca\x9e\xce\xb7\xe9\xff\x85\xa5\xe7\xb0cX\
+\xfa~\x9b\xb0\x86\x9c\xf5\x16q\x84\x88\x1c\x0c\xb9+\x9f\
+\x17;\x8b\x9cK\x85'\x1c\x7f#\xc7\x84<\x18\x1f\x1c\
+V\xd9\xd9AD\x98\xecM\xac\xfc\xf4\xd0\xe7^\xdft\
+\xaeL\x8f\x0dk\x12w$\x5ch=\x80\x9c\xecp\xf5\
+r?8w\xdf\x17\x88\xf5a\x0d\xb9\xe0\xa3\xc3\xaa_\
+3~<,}\xff\xb1\xb0\xa6r\xca\xf9\xab\xe7k\x12\
+2\xf5\xea:\xb0\x8c\x00\xee\xb9\x95\xac0;\xf8\x0f\xd1\
+\xfd_\xdc@\xaa\xe5\x97\x86\xdaz\xe8\xad\xbb\xf2\x8a\x8a\
+\xc2\x03\xe6\x83\xe6\xf4\xbax~X\xe3WJ\x85\xc7\x9c\
+\x17w\xc8X\xc7\x15\x8b\x8f\x86i\xff\xfc\x85\x127\xaf\
+PE\xf1t\x91\x1aF\x8bIz\xd7\xe8\xe9\x9e\x1e\x94\
+,\x8dG\x16\x09H\xe7\xd0\xad\x07\x845\xaa\x00\xc1\xe9\
+\xf0\x85,\xbfw\xe9\x22\x05>\x8b\xc3\x17\x8fZ\xa4s\
+h\xfazXC\xce\xf7\xd8\xb0\xca-4<\x7fxA\
+\x96i\xd5\xfcrO<\x09**\xab\x1b\x16\xa4\x03\xf2\
+\x98$\xea\xe6\x07\xcd\x07\xcf\x0fj*\xb4p\x9a(\xf0\
+7\xf2b\x9d0\x15\x86~VI\x13\xc7\xfd\x92\xed\x9b\
+\x03\xdb\x7f\x8f\xc0\xd6\xec\xf0*hN\xa7\x86\xa5\xdf\x8f\
+a\x0d\xa7\xc5\x16\xc9\xee\xdc \x9d\xf0\x1f\xa3\xf1\xe3\xa4\
+\xe4^\xbf1\xac\xc6?K\xcf\x08\xab\xe3\x8fZ\x83\xa1\
+\xe3\x04\x94\xdc\xef\x9d\xc3\x1ardZ\x11ay\x07!\
+\x09\x87\x0d\x88&Z\x91~/\x15.\xb8sD\x0a\xe7\
+\xfdS\xfb\x87[+\xe5g\xa5\xb0{\xa7\x8c\xc4:U\
+-3\xc4m\xa8X\xe0\xa7\xe9}|\x1e\xbf(\xac\xf1\
+\xab8oA\x04|\xae\x93_\x85\xfc\x12\xf9\xd1\xb3\xc2\
+j\xc5\xdfH\x12\x10V\xc8\x99\xa2B\xa7\xf1\xf2\xdf\xa9\
+7\x1e5:'z\xd4\x13\xcf~>\x9e\x14\x96\x9e\xeb\
+\xf9\xa50>\xdd\x18\xd6\xac#\x917\xbaUR-\x09\
+\xf6\x97P\xa3\xc0Oy\x84T\xd6\xe4Gq\xee\xa4\xfb\
+\x0ds\xe2\x10d\x83\xf7u\xe2n\xf9+\xe6J \x11\
+\x85\xcc\x22\xf1\x83Z_\xddJ\x0f\x12\x83sX\x9c<\
+\xf3>a\x95\xf4r\xe5\xf4\xb30Ah\x0eo2\xff\
+zc\x1ft@R\xa5S>\xdcQ\x99\x85\x13\x0b\xb9\
+\x84\x03v\x1c\x93^\xf7\x96\x0a\xe3\xf6\xcb\xf5\xb7\x9d\x09\
+\x87\xcd\x97\x03\x13\x87\x82\xca\x19\x81\x1a\x818d@L\
+p*\xdal\xac\xc8,\xc8\xc1YE\xbe\x8e\x80\x80W\
+\xc8-\xc4&9\xff\xb72\x88\xf4\x1a\x13\x08\xd1KN\
+\xc2`G\xf7n\x97\xfbd\xc0qt\x09\x04\xf8|\x1e\
+0\x15Vt\xdc\xa9l\x91A\xfe{\x17@\x10@\x8b\
+Tl\xd8W\x0b\x13\xc7\x0f\x87\x8f\xf7\xc5\xe1 Pg\
+\xc1\x11\xf03\x0e}\xcf+\x81?\x8e\x22_r\xa4\xed\
+(.-\xd7\xb7v\xc0\xb2Iq\xb8V\xac/\xb6\xdf\
+\xf7\xabGH\x8e\xdb\xf8\xd8\xb0\x7f\xc0\x8a\x8d#\xc3x\
+s\x1d\xf4\x9a\xd2J\xc0u\xd3r\x00\xa9`O\xcaF\
+@\xf4\x05\xe9\x9a^\xd7\x91\xfc\xe1\xd8\xe1Pk\x836\
+\xe4V\x95\xe8U*\xc6\xbc\x12\xe8p\xff\x5c\x17\x07\x0d\
+\xf3\x83\xcf]\xd7=\xce%a\xb4\x86\xe6\x89\x02N;\
+\xa28x\xbd<X\xaf\xcf\xce}V\x8e\x80\xa2\x13\x0e\
+\xd9`O.F\xe5\xacrO\x94\xeb\xa9d\x83%\x10\
+\x03\xd1\xc2<\xed[\x02\xfa\x1ez\x90\x01pBle\
+\xce\x81\xe2\xf0s\x1d=\xa9\xd16\xda/\x1e\xa7\xcf\x83\
+\xa4\xf1:U\xf0y>\xf4\xbcq0\x10\xf0s?\xcc\
+g\x024 \xd6\xcc/\x12:\xda_\xd2g\x96\xca\xf0\
+\xff\xc9qg\x03%\xd1C \xc0s\x95L\x9f\xbfg\
+\xbcye|\x14\x88\xbb\xe5\x80\xde\xcc^\xae\x92\xc0\x9f\
+V\x12\x1c\x03\x02\xaam\xad\xfb\x0e\x22\xa3|\x0e\xdc\x10\
+K\xe66)-W \x88n\x0ck\xfe^\x9c\x0f\x19\
+y\xf37\xcd\xb3-re W\x0cW\x9c_t\xd1\
+M\xea$\x16t\xef\x07\x1cp\xccK\x02\x03\xc8\x82\xd8\
+/\xd8\xef\xd9\xe7\x987\xec\xcf\xaa\xec\xfa>y\xae\xfd\
+<c\xffb\x9f%\xb1\xda\xb3\x96s\xb0\x91\x18d\x9d\
+t\x09X'\xdeh\xe1\xe88\x04\x02H\x9c\x91f\x8f\
+Sk\x1b=tr\xe4-C\xc5y\xd5\xabvp\xfd\
+\xcc\x17\x1d\xe8v\xf0!c\xe2\xbe\xfb\x00\xb9Gp\xe9\
+\xfa\xac2C\xcf\xbb\xa0\xde\xf4r\x92\xf17\x1b}\xd7\
+{\xef}\x02\x15\x0c\x02\xd1s\xe4\x18\xec/\xf9\xb7\x83\
+\xc4\xc9\x80*\x0a\x95\x0b\xc8\x13/\x0ckz\xe6\xd1%\
+\x8e^\xd1\xf3\x9b\xf3\x8d\xd66\x106$.\xd8'\xe8\
+\x15\x15\xe4\xd6-\x04T@\x19\x1f\xc6\x93\x04\x19\xfb4\
+\x90gA\x9c\x0d\xb1\xa6\xa7\x9fs\x03\x87+\x02\xb4\xc3\
+\x9bJ\x0a\x0e\x1a\x09\x04~\xce~\x00\x9b<\xcf\x8d\xf3\
+\x87\xeb\xc1\x9f \x81)\x04\x84\xfd\x14z\x9a\xa5\x7f\xed\
+\xfd\x00\xffI\xf2\x84\xf6\x13h\xa9 \xc0\x94\x1e\xbc{\
+K!)\xd58\xba\xb2)\xb6}H\xf2|>\xea\xb9\
+L?\x0dK\x97\xb3GX\xb3\xef\xca\xb1\x1c\x8e\x0dk\
+\xd4%@p\xca1\xf4:\x87\x5cJ\xfb\xae[>I\
+\xa4q\xfe\xb1\xee\x94\xa0\x19_\x13\xd6\xe8\xc1\x13\xf02\
+\x8eJLPq3\xb94\xad&\xb4\x1c\x02Q\x95\xc3\
+nd\xce\x1e\xf3\x9e\xd1\xe3o\x92f\xf5\xa8\xe7\xf3f\
+\xab\xaa\xeb\xed\x84%\x09\x0fZ\x16hyx_\xb2\xf7\
+\xd6\xca{\xaeX\xbe\xb3\xceS\xb3\xb3S\x89\x07a\xa4\
+s2\xf7b_Y\x13P\xd9\x11\x7f\x83\x02\xea\xeb\x1a\
+\x99B\x02'\xfe\x8f\xc0\x5c=\xc3\xe8\x92\xcf\xeb\x855\
+\xbd\xba\xb7\x0d\xcb\xfa\xf4\x9be}\xfa\xebs\x13\x91+\
+\xb7\xe3\x97\xc2\x14\x08=\xaf\x92\xe4M\xfbJe\xe0\xf3\
+a\x15\xb2M\xa5\x1f?\xcc,\xe1\xec\xe7\x22o\x05\x12\
+\xed\xbf\xe7\x9ce_\x06\x01\x0c\x92D\x01x\x86\xbc\x07\
+\x92`\xd3\xb0t\x0c<-,}\xff\xd5\xb0\xf4z\xdb\
+\xc5Z\x8b\xb5r@\x98[\x13&\xf9\xd7\x8b\xa7,\xee\
+\xb2H\xf3p\xf1\x9fa\xb9\xf7\xfb\xff\xa2\xf7;\x1a>\
+\xa2\xe5\xc3\xba\xea\xf2\x87\xed\x97\xffWX\xfa\xbbG\x84\
+5\xaa\x06\x90\xbd\xc1\xb9\xa0\x16^TnH8\x01\xe9\
+7\xb4z\xff\xb0:\xcf\xe7\x13\xc3\x9aV\x10Z\xa2\xc6\
+y)\xe4\xd4\x16\xfb,\xf6]\xec\xa3y\xf4\xbe\xf4\xfd\
+\xea\xc9\xd6\x90L\xe1\x9f*\xeb\xbc\x03;!XQ\x05\
+`\x7f\xe79\x0co\x0dk\xb8\x01T\x99\x1e?\x9c\xec\
+#\xb5P\xb5\xf8^X\xc3\xc9\x05\xf9^\xdce\xa8_\
+\xec\x1e\x98\x85\xdcR\xf5\xd6\xdcR\x85\x0a\x85Z/-\
+sJ\x05\x99\xc0:Hp\xcf\x14g\xc4\x13\x1a\xc4\x16\
+\x88k\xc9\xbc/\xfd!,\xdd\xf7\xcf\xa7k\xa7\x9f\xe7\
+y\x9a\x11\x19N;\xe3\xdf\xb1\xef\x9d\x1eV\xa1\xec \
+\x1e\x9c\x98\xa05\x8f\x04\x18* wU\xef=\xdc=\
+\x82\xf0\xa7]#\x93\xd0\xba\x00\x0d\xb91-\xd1 \xc8\
+\x85\x18B\xf5`\xf1?a\x95,\xd0\xfb\x01\xfb>2\
+\xad\xa84l\x17V\xf7_\xcb\x84~9\xac\xb6\xa0\xf2\
+\x7fp\xc7\xf8\x9c\xa4\xc5C\xe4\x80\xe6d\xe2\x1c\xac-\
+\xd4%N\x90L:\xc8{#\xeb\xa8\xf0s\x8eR\xe8\
+\xc1\x8fP\x8b\x82U.X'j=p\xcb\x0f\xac\xff\
+\xb4\x0cQ\xe0V\x82a\xa5\xa1\x1a@\x19_\x95\xcdz\
+\xeb\xc3Q\x82\x1e\x12H\x08Ba\x994zx\x81D\
+r\x80\x13\x00p \xe2\xe8\xdd\x22GN\x90p;|\
+8<\xea\x11\xb3\xec\xc9\xda\x0aL8\xf0\xaa\xcer\xf9\
+|2\x99\x22\x1dse\x0c6e6r\xa0\x92\x04\x9c\
+=K?\x09\x04\xa0}\x9fZq\xe1\x8a\x0b\x9b@\x83\
+\x84\x02l\x8d8r@pY\x008\xb88D\xb5\x92\
+^\x1ed\x1f\xd0\xe1\xe8*\x83Obe\xbeV\xba\xc2\
+@B\x09(q\xb4\x098q|\x09\xe46wE\xbe\
+\x8c\x1b\xf7\x8b\x03M\xa5\x80q\xec[&x\xce\xdc\x07\
+\xff_\x138\xe5\xf9r\xddT@\x19\x07\x9e;\x90O\
+ \xb7\x04j\xf4\xd6p\x1f\x04lT:\x84\x0c\xf0}\
+Q\xd1\xe0 \xc2\x01\xd7+\xa4=\xae\xa4\xc21@%\
+\xa5\x97M\xe1z{\xf6rHG\xee\xf7\x8f\xe5|V\
+QO\x00\xc2K\xcb\x01\x15=\xb1!\xbb\xf2\xdcC(\
+q\x04I\x04\x5cU\x1cO\xb8\x07\x86C\xe4\x98nc\
+\x9d\xf8\xf2\xf9\xb7\xeft\xc2\x99oTxPI\xb8\xa3\
+\xe5\x01\xcb\xf3\xc7\x81%\xe0\xe0z\x08\xd8y\xce<w\
+\xe6Q\x9f(\xebT\x0d\xfc\xf7\xbd\x1e2\xd0\xf8m\xdc\
+\x22\xb1L/\xdb\xd7\xcf\xdf3\x0fp\xb4\x08\xb4HD\
+\x92!\x16\xdb\xb7\xff\x9e\xcf\xa5\xf5\xe4]\x85\x1cex\
+KX\xed\x095\xb4\x97\x83m;\xedG\xe8\xb3\xb3N\
+\x19\xcf^\x06\x10\x84\x09\x15G\x02\x96\xdb/\x97e\x84\
+4\xcf\xe3Y{\xafK%N\xf3\xc7\xc8\x0a\x90\x0e \
+;x%\x91@\xa5\xb2\x92-.CR8\x00\xa3\x92\
+Mb\x8e\x80\x9cJ\x1c$~r\x88]\xe9a\xffd\
+\x9f$ \xea\x03\xdc\xbe5\xa4_/\xdaOL\xba\xc3\
+>\xca\xfe\xda\xcb\x9e1?\xd6s\xab\x0b\x08\x942\x9e\
+ U\x18?HK\x7f\xa5}\x9e\x04pC^\x99\x9f\
+K\xfa\xabp0}\xff\xc8\x10\xa2\xae\xb2k\x09LL\
+Z\xa4@\xd8\xba\xe7\xc8\x84Q\xf9\xfc\xb2 \x8a\xec\x93\
++\xf2\xec-\xec\xfb\x1be\xc8c!\x19|\x82\xc8\xb6\
+\xe8%T\x0f\xaa\xf73*\xc6b\x9bw\xe2\x8d\xc4B\
+\xbf\xde8/\x81N\x02A~S\xd1\x09\x1e^=\xbc\
+fxM\xc3\x06\xff\xddN\x15\x03n\x06\x12b?\xd6\
+u\xc05#N\x82\xa0\xfe\xca\x09\x01%\xbe\xdc\x22@\
+\xc2\x15n\x1eZ\x14\xa4\xc6\xe1\x96,\x05\x02\xee\xa1\x15\
+b\xc2\x0e\xb4>\x7fxIX\x85\xcc:\x81\xc0<\x13\
+\x99\x91\xd7\x17\xc8\x04q\xb7\xd0\x22f\xae!t\xde9\
+\x87@\x100\xaf\x14\x00X\x95\x08\xce!!_\xf8\xbd\
+\xf5\xebi\x09`?\xe9 \xa8N\xf0p\xbd$\xb6^\
+\x14\xd6\xac\x13HG\xf1G\x98Wb\xdfv\xcf+\x15\
+L\xce\x0fU\xc8\xcc\xa1\x80z\x02\xfb\x05PzZ<\
+\xe8\x0d\x15il\xf2\xcf\x9e4<\xa9\xee[Vk \
+1\xf1\xb8\xb0\xf4\xf3C\xc3\x9aqS%m|iX\
+\xfa\xbb+\xc3j\x82\xc5\xaaO\x92\xf3\xcb\xbd\xee/h\
+\x10\x22$V\x19\x07\x15\x90\x86\x13\xc3\xd2\xeb\x8b\xc3\x1a\
+\xfd\xfaw\x87U$\xd1\xb8ZX\x83<R\xa5\x1e5\
+\x88\xe1\x8a\xb0\xca\xc90\xfc\xb28\xe8&UC\x15\xe0\
+\x03\xc3y\xc3yZ\xbf\xa74\x09\x08\x12\x07\x90 \xbe\
+\xb0\xf4\x94g\xd2\xbe\x0b\xc4:\x1e\x01\xf9\x09\xc9\x9e\xdd\
+\x9cOpp@^\xc6<\x06\xa1\x019\xa6*in\
+\xedc\xfd\xd1\x9a*rls\x10)A\xe4\x1e}U\
+b\xf9\x1e\x16\xf3\xf1\x05a\xb5e C\xb9\xa3\xf2\xb8\
+g\xb2=\xaa\xbc\xdd\xe2\xacd\xefV\xe0\x92>o\xbc\
+9\xacB\xab\x17{\x87U\xe4\xc3\xb8^XrGW\
+\x86\xe5\x80\xa5p\x00\xfc ,\xfd\xfdg\xc3\xd2\xef\x8f\
+\x0bk\xe6;\xfb\xa7\xd61\x9c\x0d\x9cG\xd3Ya\xe9\
+\xff\x9f\x1d\x96\x8e\xe7\x1f\xdc\xfa\xc3[S\x80\xb3\xd8R\
+\x01\xfeU\x8b\xab\x17WW\x19\xc5\xe9\x80\xe9KS\x9a\
+W\xd3!\xd3'\xa6O\xa4\xbf\x7fVX\xfa\xbb\xcf-\
+.Z\x5c\x94\x03\xec}\x16\xf7I\xafg'\x0b\x99\xbd\
+\xeb\xc2\xd2\xff\xdf&L\xfe\xdc/EF\x97\xe6\xc3\xe2\
+\xaea\x95\x04\x105\x01\xc8\x0a\xe1\xc2q\x85_\xeb\xc7\
+l\xfb\xea\x0d\xcf\xad\xbd\xcfiz\xfd\x85|\x99\x9e\x9e\
+\xec\x18\xb5\x80\x5c*\xb6\xff\x14\xef,vJ\xb6sm\
+\x85\xe0\xfdB\xd3(su\x049\xe9;\xb3lq\xb2\
+\xba\xaf\x84\xb6A\xa8\x1b\x90\xc8\x1e\xb7\x0fk\xe4I!\
+/\xdd9\xd9\xdd\xab_a\xb9[\xa9\x1d\xd8\x8f|\xc9\
+\x8a\x17gd\xc0\xdb\xb5\xaf\x05\xa2,\x90T\x9f\x1b>\
+;|\xbe9GiQc\xfe)\xd14\xbc\x22lU\
+u!Z\x88\xc6\xe3\xc2\xd2\xeb\xd3\xc3\xd2}\x9f\x1fV\
+\xcf\xb7\xe9\xd5\xd3k\xa6W7H\x04Z\x9a(\x5c\x92\
+\xf8%\xee!\xf1\xa2\xbfw\xdc#\xbf-\x9dWE5\
+H\xeb6\xf9H\xa5\xa5\xe8\xcc\xb0\x86;\x89V^d\
+\x8c\xe5\x17.=i\xe9\xa8\xa5\xa3\xd2u}5\xac\xb6\
+\xd6L\x07\x8652\xa5T\xd6!_\xc5/=*[\
+Ex\x08\xb9\xc4}@\x1e\xba8:\xac)L\x22\xbb\
+\xc8~N!\xe1\x05a\x0d7\x00\x09~\x12\x9e\xa8\xe0\
+\xc8\xdf\xcbH\x9a\x07U9\xf6y\xf7\xb0\xf4zTX\
+s}\xf8\x9f\x22\xfb\x9c~\x10\xd6 e\x98\xef\xa8^\
+\xa0\xb2\xa2D\x15\x89\x81\x95\xab\xc8\x01I\xae`x\x7f\
+X<\x10M\xe0[t\xb0\xe3\x00\x90ic`\xd4\xbb\
+\x07B\xc0\x10\x12H\x18\x9e\x9e\xad:\xfe\x7f\xefz\x89\
+\xe9\xc1f\x22R\xc1\x10\xc9\x91\xa1\xba\xab)\x00\xbb\xb5\
+\xfc\x7fz\x9cEfk\x90\xe7F\x8f2\xac\xea\x1cx\
+T&z\xf2'z\x01\x91\xa7\x91^\xa2\xf5O\xd7Q\
+\x82B\xbd\xd5\x86\xb2<\xdfd\x86%\xb0\xc2\x11\x80,\
+\x87\x80\x00Hv\xcf=\x00\xb4\x97J5\x81\x0d=\xdb\
+r\xbc\x9c\x08!\x01\xc0\x83\xc7Q\xe4\xb5\x0f\xf0p\x90\
+\xf9\xba\xb9\xd3\xa7\xe6\xfdx\xe5\xb9\x10\x10\xb1`\xf9\xea\
+\xe5\xa2\x08\x84\x81\xf8\x02\xb9&\xb0!\xe0\x15\xd9\x8c\xc9\
+\x97\xdc\xc3_t\xab\xd3\xa4/\x0e\x1f\xcfe\xabR!\
+pE\xa6o\xd1\xe8d\x02\xfd\xca\xfd\xe9\xf99qB\
+\x80\xc1x\xe3xS\x09DN\x8aD\x03\x81\x18\x81\x1e\
+\x95\x0e>\x1f\xe4\x01\x9c\x00\xf4V\xb3q\xe2\xb0\x91\xf0\
+\xe1\xfe\xc9\xe0\xf1\xbc\x18?\x02\x96\x9f)\x00\xfe\xa9 \
+\xa8\xf4\xa0\xd3\xd3\x0f\xf4\x9b\xc0[\x9c\x0dCO\xe2U\
+\xf5\xc1\xcbu\xf7\x95U\xc6\x83\xbf\xeb\xa0\xd7&\xdf$\
+\xa1\xc3\xf3b~\x11\x902\x8f\x09`Ht\x91\xc8\x03\
+\xca\x8cc\xceuB\xb6\xa8\x8a\x88[\x0e\x80\x9e3\xff\
+\x08\xbc\x98\x87\xeb:\xa1Q\xae\xf3\xa5a\xe9\x15\xb9\xbd\
+w\x15\xb2\x13\xb7\x22\xf0y$\x80`K\xa7\x82\xf17\
+\xbd?\x01u\x87\xb00y#\x010\xf3\x87\xd6\x8f\x9e\
+\xeb\x03\x87\x89\x84\x00\x81>\xf3\x9a\xf9HBi\xe7\xae\
+\xb5\x046m*q\xa8\x890~=g\xc4\x0a\xefw\
+\xe5>\xe8\x19\xa6\x82\xcf<\xfd\xd7\x12\x00\x18\x12M\xa0\
+\xcd\xfa\xe2\x15\x19H\xd6)\xc8\x88Nf\xd0\x81?\xbd\
+k\xb0\xee+\xd0p\x00D\xe0\xde\xf5T\xfb\xbe+b\
+\xa8\x8c#\x88\x032\xfa\x8c+\x81\xd3\x8f$;\x04\xe4\
+]\xf7\x99\xd5\xc1o)\x15\xe2\x8c`\xebHN=\xbe\
+\xc8c\xb2\xfe\xb5n#|\x8a\x00\x8aJ\x89\xd5\x0a\xf6\
+Ka\xe6~\xe2\x02\xf8Z\x93\xb1\xe7z/\x13\xc9\x1a\
+\xec\xebb\x03\x9f\xf6\x9a\xf6\x9e\xf6n\x1c\x0a\xe63r\
+\x98$\xa2@\xb6\x81\xa0\x814\x92\x00\x93\x84\x8e\x02\xef\
+\xe1\x85\x0a\xb4\x80\xd0\x93\xd8>D\x09\x02\xf6\xdbo\x15\
+d\xcd\xfc\x08A\x15i\xa1c\xff\xe1\x5c\xe6\xfd\xd9\xdf\
+\xfe\xa2}]\x10\xd9U8\x0d\x90\xe5\xa4B\xcc\xbc\xe0\
+\xf9\x8b\xec\x0a\x08}\xa4)r\xa2B\xe4\xc1~\x1e\xf8\
+\x0f$~\xf9\x9eu&\xa8\xbd+\xd6\xb0\xe5\x8b\xd5\x9b\
+V\x01?g\xe6\x13\xf3\x8e\xfdN\x15<\xc8\xed\xdc\xba\
+!\xc7\xd2\xa4\xb0p \xb0\x0fV\xce\x8e\xb2\xce\xa84\
+\x91`\xe6s\xf1[t\xee\xb8\xc2F\xc0\x08r\x12\xd9\
+\xafC$K(\xb5\x08;\xae\xec\xe7$\x0c\x8e/\xc8\
+\x93\xf9\xf4\xb0\xe6yK'\xde\xa4z\x97\x865\xb2\x86\
+r<\x1d\x80\xc3\xb1\xc3\xb8~$[M\x903/a\
+\x9b\xa6%\xe2\xc3a\x15I\xe0\x0a=\x15E\x12< \
+\x09.J\x81\xc6g\x1b\x7f\xaa\xce\xa7\xb2\xef\xf1w\x9f\
+\x0b\xab\x9c\x01\xb4R\x01\xd9\x85\xfb\xc9\xb2e\x7fV\x0b\
+\xc0wJ\xcb\x02\x05&\x10\x1d\x96\x9f\x8c\x1e\xeb\xcb\x1b\
+6s\xe4\xd5T\xe1\x9b~\x14V+\x90\x04\xecp[\
+\xe5\xde\xf5\xbf7\xa4\x89\xb4\xaa2\x0f\x94\x80\x8e\xc6\xc7\
+\xdc\xfa\x08\x07\x0b\xf3\x19\xce\x83\x18\xf7\x975\x95EZ\
+S>!\x15\x09%T\x18\xdfUZ\x1d\xa9X\xc3f\
+\xae\x0a\xf1\xf4\x86do\x14d\xfb\x0f\x0dR\x8bD\xd1\
+\xc5\xb9Y\xd4\xe4y\x8b\x93\x17\xaf\x5c\xbc2}\xff\xb9\
+\xe9\xb3Sz.\xe3\xe9\xe3\x19\xe3\x19\xe9x\xbe9\xac\
+I\xc4*\x813~z\xfc\xcc\xf8\x99:\xde\xd3\xa7\xc3\
+r\xc0\x92\x91A\xc3\xe1%\xf0\x04bN/\xb19\x0f\
+6.\xe4\xe1\x8b\xbf/n]\xa4\xf9v\xebFa\xe9\
+\xf5\x98\x82\x04\x98\x1e\x12\x96^\xff7,\x8fc\xde\xc7\
+\xa7-\xc3\xd2\xff\xdd\xae \x04R\xb8\xff\x9e\xc5{\xd2\
+\xeb_\x16\x7f]\xa4y3\xfdG\xb2t\x1d\xd3\xf7\x93\
+\xa5\xc0f\xda(\xd9\x86\x15\xa2o$\xae\x0aJ\xd3\x97\
+\xc3\xc4Ips\xe5\x04qeTPp\xcb\xafA\xe6\
+\x19\x89\x95\xbdj\xeb\xc5\xf4\xe6\xb0\xda\xea\x94\x13E\xe9\
+9,n\x08K\xbf\xbf(,\x93\x1c&K\xdf\xdf1\
+\xacA\xc8\x80p\xd2<\x1f\xaf\x08\xab\xfb\xf5\xf8\xea0\
+\x91\x8a?O=\xfd\xd7Tr\xfbEbf\x00\x00 \
+\x00IDAT\xc2\xf9\xc8\x82\xdc\xc8=\xf5\xc5?-\
+\xad\xa8\x14\xce\x90\x8b\xa4`r\x8e\xd4\xdb\xbeV\x0a\x1e\
++\xbe\xa8\xc2\x17~\xf0\xffh\x7f\x15\xe2\xcf\xb2\xac\x92\
+\xf1sb\x0f\x99\xbc\x9d\xac\xcaT\x10O:'\x88{\
+\x86?\x86\xa5\xfb\xb80,W\xc4\x8f\xcb\xa4\xccBD\
+\xb1_\xd0\x22D\x22\xc1\x01,~\x10\xf1\x9f\x10D\xe6\
+Tx\xb8z\xda)\xf0\xbd\xa3\xac\xd3\xe1a\x92\x8fG\
+\xf6\x8e\x02'-IZ\xb7i7\xca-M\xe3\x0da\
+U\x1e\x95\x16\x9e\xc5\x97\xc2\xaaZ\xc0\xb0[\xf1;\x87\
+kJ\x8f?2\xb5^g\xf8\xcb\xf8+\x90\x89Je\
+d\xf1\xd6\xb0\xa6\xf7^\x88dZ\xc1\xc6\xcd\xc2\x9a\x16\
+\x00de\x85\xe8\xb2Z\x02\xc8oH\x0d\x89+@\xa6\
+\xdf.\xacI\x84A\xca\xa9B\x17\x85{suP\x00\
+C\x15\x07\xa4<\x85\xf0/\x94\x84\xf3J\x027tQ\
+\x81\xa8\xe1\xa0\x0f\xd7\x8a\xe4a;A\xd4?*y\x0d\
+\xe4\x0f\x04}\x1c>\x1f\xd6\x04b\x04\x8a\x1c\xa48b\
+\x7f3\x02\xa08\x88@:9\x90T\xf9H\x8f;\xf7\
+N8p\xdf[\x1b\xaa\xd8\xd8I\x04\xb8\xc27u\xec\
+\xc6\xd7j \xbe+\xf6\xf1\xef\x08\x82\x01\xc4\x0f\x07G\
+= ^0Tnp\x88\x0f\x16\x14\x9c\x1eM\xd4\x0a\
+6\x0f\xc1\x8c\x7f\xe0\x10 [\x07$\xe8nr\x1c\xaa\
+L[q\xe8\x09\xa4p\xe0\x09\xa4\x08D\xb8\x0f9\xd0\
+\xd6WVF\xcc\x95< \xecT\x08!\x8d\x03zK\
+\xc0Le\x03y\x08A\xa9|\xfd8\xdc\x9bv\xac\xf3\
+\xfc\x9c\x03\x9d/\x02\x02\xae\x0b\xfdfH\xb8X88\
+d\x8c\x0f\x0b\x7f\xed\x02QY\xb1q\xe9\x0d\xce\xd7\x1a\
+\xb7\xfd=\x1dP\xcc\x1f\x02o\x1c\x0c\x02\xe7\x9e=\x9b\
+\x89\x8f\x8c\xcfm\x86d\xc1A\xa0\xdf3\xbe@\xec\xb9\
+.\xe6%,\xa4<\x1f\x91b\xba\xb2\xde\xcbt\xed\xa9\
+\x84\x01\x09&*\xc78\xfe\x1d\xd9_\xa8\xc9.\xe3|\
+`\xbe\xdf$5\x85+$[tMA~8\x93\xda\
+\xf7\x82\x93 \x22\xc0\xfd\xab\xc9\xf9\xca<\xaa\xac\xec\xc5\
+\x81\xe970H\xc9\xf8y\xcf\x12O\xa0L\x8b\x02\x09\
+\x16\x1c\x22\xee\xff.\xcbe\xf3L\xa2\xc7\xfbP\xf9&\
+\x90$\x91\xc08\x12\x90\x12\xd0\xe1\x08s\xfd$\x92H\
+\xa0\x00=\xbf\xb0 s\x82\x02*H\xa0\xe8\xb96\xcb\
+\xbf\xe4\x02\x93\x1b\x99\xbe\x1ah=\x89/z\xdeq\x8c\
+\xf9\x5c\x12\x17\xb4PTR?Z\x01\xca\xfa\xdd\xa1\xeb\
+\xf5\xef\x03Y\xe6\x0f\x01/\x07\x1e\xeb\x99\xf1\xa0\xc7\x18\
+\xe8\xf2\xbd\x14\xf8w:\xf5\xe93J\xc0\xba\xadU\x06\
+\xca\xf8\xf1\xdcI\xcc\x11P\xfdN\x0e%\x08\x8f-u\
+\x1d\xf4\x92_#\xc84\x09\x1e\xd6\x0f\xefCe\x8f\x8c\
+<-\x09TZ\xa9t\xe2\x88\x90\x08\x22\x90\xa2w\x8d\
+@c\x83N\xdd\x04\x07\x14\xa8 \xfb\x14\xfb\x17\xcf\x8b\
+\xf9\xa2\xebNaS\xe9\x15\x96\xce\xb2\x7fO\x02R\xba\
+\xbffA\x86d\x87u\xcez\xe4\xfca\x7f\xe1\xbcQ\
+\xaf%\x5c!\xc3ea50BN\xca$x\xcf.\
+\x88\x94\xa0\xac\x0a\xd2*\x93'}e\xbc8zs\xcd\
+9\xc2\xf3\x00\xc1\xc2\xba\x00\xe9\xa0Dv\x1a\xfb\xb2?\
+\xb2\xbf\xb1\x9e\x09\x90!\x93C}E\xbd\x97\xc3\xb9\x05\
+Jo\xbdv\x9e+\xeb\x94\xc0\xef{:\xff\xbe/d\
+\xcd\xd7\xd5\x03\x8e\x83\x87\xbc\xd0\x17\xb2U\x07\x9b\xf3\x19\
+(\xbez\xc5qp\xe6O\x845l\xee\x01)\x8d\x96\
+\x803\xb3\x99m\xd8\xbd\xda\xc8q\x81$\x04\xc2\xcf>\
+\xc3\xfcb>\xa0\x93\xad\x8a\xb2\x11A\xac?\x90Z@\
+,U\xb1v\x02\x0f\x95\x019\x8eV\x13\x00\x92\xae\x8a\
+\xaa\xfd\x0c\x12\xc3\x9f-\x81-\x09\x22s\x1f\xf4\x884\
+H0U\xe1\xb6^6\xdc%\x82\xda\x0f_)\xfb\x15\
+\xe76\xe7\xa6I\x85Y\xef\x90T\xbd7\xacI\x0c~\
+:\xacAf\xaaB\x8e\x03\x0dTw\xb8)\xac\xe9\xf5\
+W\xa0c\x87\x93\xfd\x95\xc4\x05\x8e=\xc8KU\xa8\x9c\
+\xd8R\xa5\xdd\x5c\x05\x90_A\xea|\xdf\xe1\x80\xe1\x80\
+&\x01#r?\xd6\xcf\xf0\xe6\xb0\x06\xe9AA\x08\x84\
+\x0b\x8e.~\x06\xf3\x82\x16\xc8\x1e)\xc9\xf3\x16\xc9o\
+\x1a\xf533\xb2\x80\xeb\x97\xdf5\xbd(\xac&\xa2@\
+\xe0\xc0-`U\x84\xae\xe7\xd6\xea\x1bpS\xf1=\xcf\
+C\x5c\x13\x86`s\x1f$\x06h\xed\x90\x9f\xe8D.\
+\xfb#\xad\x06\xe2\xfe0\x99\xa9\xf6\x85\xf9\xa1a\x0d9\
+c\x84m\xe77\xeaGJ\x0c\xd1cNO\x7fh\x18\
+\x04\xc4wziX\xda\x87\xde>\x9e:\x9e\x9a^\xbf\
+>^2^R9y\x8c\xd4y\x5cX]\xaf\xe3z\
+\xe3\xbac\xf2+\xc6O\x96\xc0\xce\xeb\xff\xd7\xe5s\xc7\
+-\xc6\xcd\xc7\xcd+\x97\xcc\xbce\xa9\x84\x0e?\x08K\
+\xd7q\xdf\xb0\xb4\x9dm\x1a\x96\xbe?!\xac\x92\xffM\
+?L\xf6\x83\xdc\x03\x7fR\xc8\x1f.^\x15\x96~\xfe\
+\xa7\xb0\xf4\xbaqX\xfa\xf9^\xc9\xd2|\x98\xce\x0e\xab\
+\x15\xfb\xe9\xc5a\xb5^F`\xe7\xc0[\xfb&2\x88\
+\xd3\x16\xa5\xd2\xee\x8a\xbeHA\xb3\x9c\xe2%5\x00w\
+\xe0\x84\x0e|<\xef\xaf7\xad\x02\xb0\xc6\xd3R!\xce\
+\x02\x12K\x96\x8f\xa5P\xc5yJ\x1c\xa5\x96\x1d\xd6\xad\
+e\xdb:\xe4\x07\x5cR\xc3Aj\xed\xda%\x9d\xc2\xbb\
+6\x9cV\xb4\xdcA\xd6\x0b)%\x88\xd9(c\xfeg\
+n=+r\x86JX\x0d\xbb\xa4\xf8c\xe7\xba\xce\xe1\
+H\xe0\xb9\x19\xd2N\x82\x98\xf7\xa7\xd5F\xef\xe3\x02\xa9\
+\xd6\xbd\x03v\xd6\xa5\xfc \xbf\x1f\xf1\x13r\x97\xf4\x0a\
+\xb0\x1e\xb4\xae\xdd\xb3~\xaaz\xe0{\xd2b\xbdN\xbf\
+\x0dK\xf3\xf0\xec\xf1=\xe3{\x1a\xce\x11\xd6\x93\xe2\x99\
+\x14\x86?lH\xcf#\xcd\xe6\xb5\xc7\xb5\x9by\xfcq\
+\xb5\x16\x89\xab`\xf1\xf1\xb0<.y\xff\x9f>\x1f\x96\
+\xbe\xffbX\xe5`\xb0_\x85\xbf\x8a\x7fCbZH\
+\x8a\x9c(zKmm\x1b\x06\xf9\x9f\xf2\xd7MnK\
+\xab\xd7/\xc3j o\x8e%\x9d\x1f\x90\xe5Z\xfeS\
+\xfe\xc3\xf4?a\xe9u\x8f0!\x98N\xa8-D\x8e\
+g\x88\x97\xd8\x8f!\xcf&!\xaf\xb8v\xa5\x1f<\x10\
+w6<\xc8't0\xcd\x9f-\xa4)\xd6\xa3\x04\x1a\
+tZ\xe9\xf5\x00\xdaa\xc7J\xba\xaf\xe9\xb0.\x99%\
+\xa0\xf5\xc8d}[\x0e%\x81\xdc\xd3\xd4;\xce\xc1N\
+%\x82\x03\x1f\xc7\x91\x0c\x15\x07\x03\x8e-\x99T\x02\x10\
+M\x8ca;\xc9b\xa9\x87p\x95\x1ea\x02LX\xa3\
+\xa90\xf4\x95\xe5*3U\x0e\xba}5\x91\x99\xd98\
+\xfa8\xa68jb#uf\xb9\xef)\xa72K\x00\
+A@Dee+\x91g\xdd[\x0f\x16\x07\x09G\x12\
+\xa8=$[d\xc6\xd80\x18\x0f\x02\x06\x1c\x00\x1cr\
+*\xd5\x04B\x82b\x0e\xfc?\x8e\x0e\x1b\x1b\xf7G@\
+\x84\xde,\x07)\x15\x19*\xe2}\x8f2\x15Y\x1c?\
+\xc6\x97\xfb\x10\xa4\xde\xa4D\x04n\x04(\x04\xa2l\x14\
+\xb0@\xa3\x06\x81#rs\x81\xde\xcd\xbf\x14\x84\x1by\
+B6\x04\x1c\x89\xfb(\xb1\x049XE\x16\x94/\xee\
+\xf7\x9f\xe9\x95s=\x04\xce\x04\x84$nh\x11 q\
+\xc3s\xe6\xff%\xff\xe7\x0a*\x8e\xfa\xa4yu\xb1z\
+\x89y\x8e\x0a\x18S\xb8[\xa0\x9e\x1b,\x9fG\x86\xec\
+2\x1fy\xee\xb7\xd1sf\xddl\xea\xc0\xb5|\xcf<\
+\x5cky\xcf\xab\xe7\x07\xe3\xcd\x17=W\xcc;6v\
+\x02k^I\x14\xb0\xde@\x1a<\xacl\xd4v\x84\xea\
+\x81U\xa0\xdaT\xbc\xc5\xde\x0dI\x8d\xdf\x87\x84\x08\xaa\
+$r\xf8-s\xb4\x8e\x11\x0f%\xd1\xf2W\xcd3\xe6\
+\x07\x95VH\xfd\xf8<\xb1\xdc\xbb\xe7\xbeS\x83p\x80\
+E%\x0e\xa8>\xfbV\x9fX`\x7fc\xdd\x91\x18\x90\
+\xfc\xa0\xc9{ \x19#1\xb0\xbb\xd6\xfb.j\x09`\
+\x5c\xa8\x1c\xffQ\x10\x7f\xd6\xc7\x0d\xea\x89\x85d\x8eq\
+\x16\xc9\x16\xcf\xd1\x01\x1c\x88\x0b\x12-\xeco@\xcb\xe1\
+&\xb9P,\xdc\x1fT\x8f\xe5\xf7\x04-\x87U_\x01\
+\x95\x0f*\x9e7\xfb$\xf3g\xf3\xe5\xf3\xc2\x1c\x08 \
+\xbd6\xb3\xcce\xf9\xff\xd5;9@\x90\x22\x04\xac\xd2\
+O7\xf2\xe4\xe7\xdaO \x9d}j\xa9\xc0\xa4\xbd\xb4\
+\xfc\xbfHr<\xdeo,\x90z\xdf\xe7\x05a\x8d\xbe\
+\xae \xcd\xc8\xfd\x0d\x7f\x0bK\xafo\x1fN\x1dN\xad\
+\xec\xeb\x96\xe3\xd1z\x82[\xc0*2\x90\xd9A\x22)\
+\x07\xc5\x15{\x02~\xf6A\xf6E\xf6\x15\x02oz\x5c\
+!\xc1\x83u\x19\xf9:8\x0bh\xc9\xa3\x07\x132\xc4\
+\xeb\x95H\xd9Y\xf7O\xc0\x0c\xbb\xbf\x10\x7fT\xc8\xad\
+\x06$\xd99W\x0e8\xef\xf0\x1bHhQ)\x05I\
+AB\x86\x96\x1e\xe6\x05\x95QZ\x14@D\xe0\xc8B\
+\xe6H\xeb\x18\xfb\x1e\x90O\xceSA;\xad\x22\xc3y\
+JK#\xe7 \x01=PL\xf5\x98C\xce\xe4\xf1\xa5\
+\xe5\x00\xc8\xaa\xb8\x02\xcc\x89\x00\xfb\xfe\xf3\xc3\x9aD\x00\
+\xd0|\xc6\x99\xfb\xe2\xf3u\xce\xc011\xee\x1f\xd6$\
+6qd\xc5\xc5\xe0\xdey\xe6\x95\xf6\x9b\xf1\xa9a5\
+\x01\x05R\xc5\x15t\xb5\xb0\x0c\xef\x0bk\xcek\xb8\x12\
+H\xbc\xe0\x182\xae\xb0\xcb?*\xac\x16\x0c\xd0\x8d6\
+DV\x8e#\xeaPN\xf8(\x11\x8b>\xb8\x11B \
+\x0a \xf5\xfb\xef\xb0\x069\xaa}{\xde7\xac\x09\xfc\
+i\x85 \x01t[]\xa7\xfc\x22\xcb4^\x93\xc2\xe9\
+p\xc0\xcf\x0f\xcb=\xec\xcf\xcd\x10\xee\xef\x87^@E\
+(\x8dw\x0dk\xceC\xa0\xc9$\xe4HT\xe1\xd8\xf7\
+\xe4\x98J<!\x03\xed\x849\xe7\x82\xaek\xfah\xb2\
+\xf4\xdc\xc6\x0f$;\xaf.\x13\x93\x93)\x81\xe3}H\
+\xfb\xb2+\xea\x14.X\x1f\xf8_\xb7dLk\xa9<\
+^][\xbarO\xf3\xea\xb528\xbd$,}\xfe\
+\x05\xc9>\x9c\x03\x9b\x17\xcf/\xae\xe7\xff\xe2\xeea\x92\
+\xef\xbb\x8f\x02\xf2t\xde\x8e\x97\x85\xa5\xd7\xcdS\x88\x9f\
+\xf6\xe5\xf1YENr~JX=\x17\xc6\xe3\xd3o\
+\x9e\xd5@\x9eA\xea\xe8>\xa6}\xc2j\xef\xff\xad\xcf\
+\x0b\xcb\xc7\xdf\xbcH\x031\xbd}:uz{&\xfb\
+\xcb-0\xf3\x99e\xdf\x9a>\x14&\x08\xff{\xd3\xcf\
+\xf7K\x96\xd6\xc7\xe2\xc8d\x81\xe0\x88\x82\xecT\x13\x02\
+Nx\xa8\xd2L\x0f?\xad+T\x80\xa9\xe0Nw\x0e\
+K\xaf\x0f\x9b\x1e>=\xbc\xf9|8\x19\xa4\x02cd\
+\xde\x9ds\xaadE\xfcu\xfc\xfdtfX=w\xa6\
+\x0f\x84U\x12\xd8\x1c\xe5\x9c\xd3\xcc+\xb8\x12bV\xbd\
+[\x09\x8cck\xc58#\x99\x02a\xf3\x8e\xb0\x9a\xb8\
+c\xfd\x99\x83\xe2\xaba\xcd\xfbQ\x80C^\x0f\xce\x82\
+\x1bJ\xeb]\x9e\x07k\xe58.C\xcd\x87o\x0f\xdf\
+\x1a\xbe\x95\xf7\xe3Ry\x96\x1c\x9c\x13IW\x865\x15\
+iTN\x04q\xf7\xbe\xa8\xd6\x8dy\xed\xb0Z\xa0r\
+B\xe0\x1di\xd5\xbe\xa3\xb6.L\xaf\x0f\xcb\xe3\x9d,\
+\xdd\xe7\xbe\xe3>\xe3>9\xe1Qd\x0du^\xcc\x0f\
+,\xdc\x15+\x0e-~\xb7\xc9\xd6Ah\xca?6\x97\
+\x92\x12\x99A5\x19d\x93i7.\xdc)\x14\xdc(\
+,\xfe\xb7\x12\xb9\x22\xb7\x1c\xfe^\x90P\xe3\x1aaM\
+\x8b\x1e~\xce\xeb\x0b'BhY\x04rdqc\xb2\
+?4~\xae\x12w \x8e\xec'\xc1)\xf2\x95\xb0\x8a\
+\x8c\xb3\x5c\xa2\xae\x9f\x04\x98\xcf%Z.\xe5\xff\x0c\xef\
+\x0a\xab*\x06\xc3ua\xcd}\xc1\xbd\x03\xa7\x89\x0a\xf6\
+\xe6\x06\xfa\xd7\xb0\x86;\xe0\xaeaM\xcb\x9e\xae\x9f\x02\
+\xd9\xb0oXz}eX\xcb\x01\x10\xee\xc8\xdd+\x14\
+\xc9=\xd4\xc8\x99\xa9\xb7\x88\x89:n\x1b\xd6T|\x99\
+0l\x94\x1c\x80\x0aX\x0d\x85\x10\x89\x9d\x03;\x1cj\
+z\x9d\x098q\x88q\xd8\xc9lTHq\x09\xa0\xe0\
+\x22\xa8\xa4\x81e\x83\x06j\x8c^\xbc2?\xdc\x87\x1d\
+P6r\x0d\xb8Io q\xc2\x11S 8\xbf\xb5\
+dzL\xa6\xd0\x93T\x91P`BR\x09\xe3~\x99\
+@\x04\x9a]\xafq\xff\xe0}\xff\xdc7\x15g\x02f\
+\x02\x10\xc6\x91\xf1\xa3\xc2\xccA\x8f\x83\x09\xfb\xb9\xee\xdf\
+\xac\xa0@\xbf\xb7\x94C\xb7\x9d\x0e\xa0\xbb,\xd7uw\
+`\xd3'd\xa8T\xf1\xda\xe9{\x9b\x14\x87\x80\x1dH\
+\x0c\x01R'\x9f\x06\x14\xda\x08\x0d\xc6\x8f\x80\x96\xf1e\
+\xbc9\xe0;\xf6{\x02M/x2\xf5d\xf2\x91\xfb\
+xA\xc9\xf8;\x10&\xe1\x80\x0a\x02\xcf\x91D\x13\x8e\
+:\x09\x1b\xae\x03d\x8b^\x91m\x01\xfai\xc7\x86q\
+]M\x09\x06Z[H\x10\xf1\xfe 8p\x08p\xb8\
+\x81h\xa9\x95\xa2\x91\xbb+\x8e0\x01\x14,\xe07i\
+}\xdc\xacyJ\xe0\xb1\xbe*\xdf\xa85T\xa8yy\
+\xbf5\xbbD\x00\x8e%\xeb\xad\x7f~ S\x08\xech\
+E\xc0\xf1\xa4b\xac/\xeb\xd6\xf3\x9c\xfb\x84\x14\x07\x17\
+z\xb0\xb4X(\x01\xe1\x16\x19\xee\x87\xf9Ab\xa3\x92\
+\xcc-\xe7\xb4\xc0q\x07\xa9C\x80\x0dB\x83\xfba\xdd\
+\xf5\xe4^T\xae\xf9}\xc7\x09\xe0\xff\xaf\xf2\x8ee^\
+\xd1b\xa0\xfbv\x22\xaf&\x16\xcaz\xa2\xf2wo\x91\
+\x82\x11p\xb1\xbf\xd1;wO\x05X\x7fT+\x0b\xf3\
+\x96\x0ar\xa7\x0e\x92{\x0b[\xb2C\xd6/\xd7\x89\x03\
+\xac\x80n \xc0\xdeM\xc8\x04\xe6\xe5\xea\x9a\x97 '\
+\xa8\xacRY\xa4\xd7N\xebr\xd8R\xe3\xb5\x89\xf67\
+\xc6\x0dDE\xdf\xd2\xc4\xe7\xe2\x98\xffR\xad2$\x02\
+\xf6\xd4\xfdBvx\xb5\xa0y@\x96\xa9 |\x5c\x09\
+d\xe6\x1d\x01)\x15\x14\x12\xd6\x90\x07J\x8f\xda=\xee\
+_\x0ak\xe4~\x9e\x92\xcd\xa4NpxP\xc1\x98/\
+\x94\xfe\xef\x01r\xdc\x08\xf4\x95X\x9b\xaf.\x89J\xef\
+7\xc8/\xf5\x88\x11d\x83\x08\xbc\x09,\xd9\x07\xd8\xcf\
+\xb7\xed\x10S\xecO$\xe8$\x8b\xe7\xf5\xa1\x80\xdf\xe7\
+\x03\x89=\xc8x\x91\x9f\xdaZdL\xf8\x01\xb4\x8a\xf4\
+\xdc&\xbc\x92P\xa0Bt\x87\xb0&\xe1\x8bl\x1c=\
+\xe3$b\xa9HP\xc9\xe3|d<\x80T\x13\x88S\
+I\x139\x96[\x05@\x8ep_\xaa\xfc\xbb%\x11\xa4\
+\x22=\xaf8\xbe\xacG\x91K\x19Q\xc8\xef\x09\x10A\
+\xda\xe1\x90\xf3\xdc \xcb\x22\xc1\xc0\xf9GB\x02\xf6|\
+\xae\x8b}[\xf3\xca\xe4`O\x08k\xf6\x03\xf6?\x12\
+t\xf8\x1b\xa8\xd7\x90h\x87\xb3\x89\xe7,\xc4\x859>\
+\xd8\xafy\xce \x14t\x9eY\xed\x89\xf3P~\xce\xf4\
+\x99\xb0\x06Q\xf0\x9d\xb0\xea\x1f\xd2B\x01\xe7\x0d\x89\x01\
+?7\x1c]\xf6\xb9\x0b\x0b\x82e\xde5,\xbd\xde3\
+\xac\xfa/\xd6\xb9\xa6\x22\xfd\x8c\xb0\x9c\x18,\xea8\xaf\
+\x15;\xbf\x12\xe6\xf3\xed\xe7M\xe6\x22\xff\xf6\xd2 I\
+$\x81\x93\xdc\xef#\xc3\x01\x1f\x1f?>a||\xae\
+\xe8}!*z\x86\xfe+\xa0qO>\xf7\xafqr\
+k\x08~\x16\xa4\x8d\x14\x02\x18?\xf6aZ\x00H|\
+\xc4\xec8\xa0V\x04M&\x07r\x0d$\x01\xba\xe4 \
+K\xf0\x9f!\x97\x04\x89J!)8\x05N\xae\x95\xc9\
+\xe9\xa6d\x7f\xa9\x89\xbe,\xb3{O]\xf7v\x9aG\
+\xf7\xa8\xad\x09\xa1%\x10\x09\x92\xf1\xc4\xf1e\xe3\xcb2\
+\x19_fi_\xfaT\xa9\xd8\xd2\xcb>\xde\x14\xd6\x90\
+**\x91\x01\xd9\x99\xf5\xe2!\xe5\xc4\xffD\xed\xe1\x81\
+a\xe9\x98\xdds\xb1\xc7b\x8fJ\x0e\xb8x|Xn\
+M:4\xc8\xcdrE\xfe\xe8\xfa\xf7\xb9\x15\xe3\xd6Z\
+Q_\xbc(\xac\xa9x\xae\x0ckT\x05D\xceF\xa5\
+\xde\xbd\xf8\x0f\x0ek*\xb6\xf2\xb7P\x19\x98\x1e\x93\xec\
+\xb1BV|\xb8&\x00P\x0f2\xbb\xba\x12\x81Yf\
+\xf1\xf4F\xf5\x02\x7f\x9c}\xef\xbf$3\xa8\xb8a8\
+T\xac\xef1\x1f\x7f\xd2$\x1a9\x8fE\xc2\x97O\xb3\
+_6\x1c\x04G\x87U.\x19\xc7]\x92q\x04\xd9\xe4\
+y\xc1<\xfcyN}W\xff\x0e\xff&\xca\xa7_Q\
+b\xe2\xda\xec?\x172\xc9\x08\xb7\x1f\xde\xf8Uj\x01\
+\x22\xb1\x0a\x12,\xcb.\xae\xd5\xc8I\x92\xd0&1J\
+\x82\x92\x16V\xfcq\x15\xd2\xe6S\xe7S\xe6t\x1e.\
+\x9e\x1e\x96\xc6\xe1\x12\x05\xd0\xb4h>\xa2\xa8\x08\xa5\xd1\
+.2\x87\x8c\x0b\xe7\x14\x09\x19\xad\xafy\xa3\xb0\xcc\xe9\
+P\xfc\xe9\x1f\x0f?\x1a~\xd4\xb4BQ\x08F\xc5\x85\
+}\xf9\xa3\xa5\x90=\x9c]T\x04\xc6{\x8e\xf7\x18\xef\
+\xd1\xf89BF\x8c\x9b\x845\x15{\xb5\x089\x11F\
+\xc2R\x85\x87y\xcb0q>\x1c\xd9\xa8\xa5 \xd7\xf8\
+:%<\xf0\xdfAx\xb1\x1fk\xdff\x9d\x8d\xdf\x08\
+kZ@\xf1O\xe1J\xc0_B\x95G\x09v\xd6\xbf\
+\xfd&\x12\x11jq\x98\xafK~\xd8uu\xfd\xb0\x0f\
+\x11\xbf\xaf\xcc\xe1\xcbuM\xe0/\x92\xa4\x10\x05\x0cY\
+@\x93\xc0\x04\xdbh\xe8\xcd\xfeoXC\x1a\xf81\xf5\
+8\x1dXdF ;p/\xd7%aM\x00\xf9g\
+\x05J\x04\x90@\x15\xd9i\x08,\xa8@\x12H\xf0\xf7\
+L\x10\x02\x056b\x02+\x06\x18\x87M\xec\xa9F\x00\
+h\xe2:p\x80]\x1c\x15\x03\x02qz\x80D\xc6\xe0\
+\x1e\x8a\xf7)\xb3\xd2C\xf7qX9(8\xf0\x09@\
+\xf8=\x0b\x94\xff\xe7~\xeeb\xf9\xb4r\x80\x120\xb0\
+\xc0\xf8\xff^\xd7\x9c\x80\xado-\xc0\xe1e\x1cq\x18\
+\xb9>\xe4\x88H\x84\xb0\xe0\x08\x18\xa8d\x13xp}\
+\x8cO\xdf\x12\x80\x03F\xa0\x0cD\x06\x12\x1c*\x91\xf4\
+\xdeJ\xdf\xd3\xad\x03\xdc\x07\x09\x1590FNt,\
+\xdaF\x14\x10x\xa3+\x8f#B/\x91\x1c8\xb3\x7f\
+\x92\xa89C\xf3\xfa\x8b\x82\x14_\xa3L\x9f\xa0Qp\
+H\xa4p\xa2$\x90p\xc0\x09\xb0@8\xc0\xda\x8c\x03\
+\xce\xf3\x02:\xfb\x8b\x120\xb9'Gd.v\xe0\x08\
+\xfc\xa8\x10\xe3\x00\xe2\xc83O\x98\xdf\x90g2\xffI\
+\x14\x91\xf8\xa1\x92\xba\x99\x9e#\x95\xec\x0d\x9d\x18\xa0\x85\
+b\xb9c\xc8\xbc\xe0:\xeak\x99\xdf\xfc\xdfh\x16\xfa\
+\xf2\xb9\xac7\x1cN*\xcf\xa8T\x10h\xe2p\xd2K\
+\xc9\xe7\xf1\x9c!Y\x02Z\xce<f=0\x8f\x19\x9f\
+\xae\xf7\xde\x5c\x00\x8c\x03\xe3\xcb}o\xd4\xb1\xae\xab\x15\
+\x02\x9dWo\xa0=\xd2e\x9d\x8e\x14\x93\xf5\xcc\xfad\
+\x1dn\xdc\xc9y\xb2~hY\x12R\xc3=\xee=Y\
+*\x81\xdd\xe6&\x1d,\x013\x15!\x02\xc9\x8d\x8ch\
+(\x89\x0e\x022\x02\xa7\x9e\xdb\xa3'\xf5\xe3>:\x99\
+\xd6UTRp\x08\x1eZ\x10\x18vX\x09\xfcAp\
+\xc1j\xbb\x85\xd6/\xd7\xbf\x87\x10\x06\x90\xf7\x09\xc9\xe0\
+\xfbe|x\x9e</\x9e\x03\xeb\x9d\xf9\xces\xe4>\
+\xf8;Hq\x94 \x1e\xef>\xee2\xeeR\xa1\xb9\x04\
+\xa2\xf3\xe1\xaa\xb0\xc8A\x1c>$(3\xe4\x9a\x90\xde\
+\x89\xd4\x8e@\x03\xd9\xdaa\xddR\xc9\x9c\xef\x1c\xe0\xdb\
+\xec@\xe6\xc0`\xf8BX\xf3\xfe\xff\x22\x9dq\x10\x06\
+<'\x12\x85[:QV\x10t@\xdbqX\x81^\
+\xc2\x91A&\x9f\xc4\x05\xcf\xf5\x06}\xff)AW\x91\
+!\x84]\x99\xe7\xd8\x93\x5c\xf2\xbcI$2?p\xe0\
+@h\xc0\x12\xcf>\x8e\x83\x8b\xcc\x93\xa0\x9bpqX\
+\xf6\x8dD-\x8e\x18\xf3\x8cD\x13\xf3\x98\x8a\xae\xe4\xa8\
+V!\xe3\xe5\xfai\xa1:@PsH\x00\x19W\xc8\
+\xfdT\x88\xc8\x81\xd0\xbd\x1a\x84\x17\x0e\x938\x0c\x9c\xe8\
+f>\x01\xcd\xe6\x8b\x96\x13\xa0\xea$(\xa8\xf0i\x1f\
+4\xc4\x9b\xfb\x8a\xdd\xfe\xc7\xda\xe7\xbf\xd2\xf4\x94\xcb\xff\
+\xb1\xea\x01\xd7\xab\x04\x94I\xf1N\x0f\xab\x90\xe1\xe9U\
+a\x0d\xa2\x0bY,\xd8\xd1\xb7\x0dK\xff\xf7\xd0\xb0\xf4\
+\xf7\x87\x865\xe7)\x01-\x88\x05 \xb9J\xe4\x80\x94\
+\xa27\xdf\x05\x0f\x129\xccCU\xf6\xc7\xb7\x855\x90\
+\x5c>\x0f\xc8\xeavRo\x11r\x93\x04\x87+\xa8\xaf\
+-P|\xcb^\x8a\xe4\xd5\x95p8&\x90\xb3\x82d\
+O\xfa\xdd\xc8_M\xaf\x0ek\xce\x11\xa0\xd6\x82\xee\xae\
+\xf8\x90\x12g\x82n\x8f\x8f\x0fK\xbf?\xb9@\xc33\
+9\xdb;\x1a\xf92A\x94}\x0e\x03\xed\xe7\xfc\xad\xf2\
+\xcce}\xe2\x7f\xd1\x9a\xa2\x84aN\xc4o\x5c\xc7\xc1\
+\x812,\xec\xc8\xc4\xd1\x92\x01\xfb9\x15_q\x14\xf8\
+\x5c\xd5~\x04\x22w\xfeC\x988\x18^\x9e\xc6a\xf7\
+d\xbb5\xbd\xe5g&;#\xfd|\xfd\xb0F\x1e\xf0\
+\xea\xcc\x02\xe2\xca\xf6\xf8\xbd\xb0\xf4\xba\xf7\xb8\xd7\x18-\
+0\xf7+\xd0\xff\xe1\xf8\xe2\x8f\x0d\xaf(\xa4\x95\xc9\xdb\
+\x7f\xe0\xfc\xc0:\xbfS\xe0\x94\xacQ?\xd8.,\xfd\
+\xfc\xfc\xb0\xca\x012\xdf+,\xbdn6o:G\xe0\
+\xff\x8e0\xb1\xd8\x7fW\xa4\x81g\x0b\xb9\xf1!\xf9\xe1\
+\xdf\xaddk\xd3)a\xe9u\xb5\xb0\xf4\x7f\xa7\x85\xa5\
+\xef\xbf\x1bV\x03\xfd\xe9\x8a\xb0\x8a\x80\x9a\x9e\x11&Y\
+\xc2\x83\x9a}\x0f\x9d\xf4\x977r\x87i_\x98\xbe\x1d\
+V\x11\xac \xbd\x88\x0f\xac.\xa5u\x1c\xb8\x92\xe0\x10\
+HO\xe9\xf1\xf99)\x01h\xf5\x18%z\xe6\xe7\x97\
+\x9ezsyD\xef\xfb\x13\xd5c\xff\xb1F\xf6Z\xad\
+\x8a\xc8;\xa2\x06\xe1\xf7\x95J\x84\x13\x947\x875\xad\
+9\xe7\x86)\xbeyw\x8eS\x0aG\x8a\xce\x1d'\xd4\
+@\xbc\x89\xd3&\xfb\xfb\xdb62\x93$\xcc\x89\x93D\
+f\x98e\x1e\xf7\xab\x89\x00\x07\xac\x90\xca\xa1\xbe\x10\x08\
+\x84\xe0FxEX\x83\xac9\xb2\xacc\xcb}\x8ae\
+\xdf$\x92\xb4\xce\xd0z\x85\x7f\xa8\x02\xad\x13\xc7\x92\xe5\
+u\x02V=\xf2\xd3\xef\xc3\xeax8\xe1MB@d\
+\xb6\x90\x5c\x9a3J\x89\xda\x9e#eX=\xac\xee\xc7\
+ N\xa7\xed\xc3\xd2\xf7;\x845\x89y\xd4Uh\x11\
+&\xf1\xdb\x15\xc6\x8c8\x80;\x87\x04\x838\x1f\xf0W\
+\xe7?\x875-\xe7 \xb6\xe0\x1cxEX\xdd/\xfc\
+\xf7$b\xe0\x82\xe1|#n\xd0<\xa3\xc5\x85\xfd\x01\
+\xb2\xcc\x95\xd9\x8d\xda\xae\xd1+\x94\xec\xcc\xbc\x94ll\
+z\xc2\x90\xab\x80\x95\x15\x88\x9f*8\xf3\xf1\xea\xfdX\
+s9\x14zzbX\xee\xbd\xca\x99\xeea\xcd\xb0\x86\
+\xbd\x1c\x08\xb1\x1cYC>\x08$\xd1\x13\xc7!\xe7 \
+\xe6k\xcb\xaer\x22V\xc5\xf9\xeeaM/\x0f\x193\
+X\xa0\x81\xa2A\x8a\xa1^F\xff\xfe[\xfa\xfb+\xd5\
+\x1bvA\x81\x9a\xad\xc2*\xdf\xbf\xe2`CjE@\
+\x0ad\xb9\x0f\xa4\x80\xfa\xd3\x03\x82#\xcex\xd0K\x0a\
+4\x8eq\xe9H\x03W!+\xc3\xc1a\xdc\x98\x98\x1c\
+0}\xcfx\xafS\xce\xfb\x12\x98\xe0\xe8p\x7f8j\
+\x04\xc4\xbc\x0f\x89\x04\x0eP G\xaa\xe4\x0d\x8f\x94\xa3\
+O+\x03\xd7M\x00M\x82\x84\x84\x07\x81\x1e\x01\x86\x02\
+\x5cCS\xf9=\x15^*\xfa\xf7\x14D\x94\x8c*\xe4\
+!$J$s4\xfc:\xacV&\xa3\xb3.z\xeb\
+\x1cX\xd0\xdaB\x02\x8b\x83\x05r\x0e6, \xe1\x90\
+\x10m\xa3\xc0\x97\x0a\x1e\xe4\x94pM\xe0\xc8\x12 \x13\
+\xb8\xf2\xbc\x08\xe8\x18\x07*\x9f\xf4d\x12\x08\xf4\xd7\x85\
+\x0a@'/\xb6\x0a7\xc1\x86\x1dBd\xe5rY)\
+\xbf\xf2\xf9\xbcV\xf9\xbf\xf2\xfc\xb9\x8e^\x85B\x10\xf7\
+\x14\xbc\x16$\x8f2\xd4\xc3c\x86#\x86#r\xc2\xad\
+\x90o\x02\x1d\xddT*\x22B$\xcdO\x0bk\xe4\xbb\
+\x08\xf8\xb8/\xd8\xf2\xd7\xd6\x86\xf7\xcfZ\x0f\xb8_\xc6\
+\x87W\x12#\x9b:QB\xa0^\x9eCeg/\xeb\
+\x95\xfb'`b\xbe\x92P\xea\xd5>X\xe7\xf4\xf6\xd1\
+\x93\xccz\xea\x11?\x1bu*\x1c\x8cs\xaf\xae@\xa0\
+\xccu\xf4\xb2\x93<\x17\xd6;\xeb\xbc\xbfn\xf6\x078\
+\x07H\xb8\x10x\x91X%\x91\xca:\xa3\x22I\xa5\xff\
+\xc6\xe2\x98:\xc1\x87#]I&\xcb\xbad\x9cAr\
+q\x1f \x99v\xea\xb8R\xb4\xaf \x1b\x96\x82\xdd\x92\
+\xe8\xa0\xd2\xf1'\xed;\x90\xda\xc1\x0e~\xb0\xa0\xe3\xbb\
+\x94\x8c{\x0a\x1f\xf2\xcfA:\xd1\xbboy\xb8\xa7\xaa\
+\xa2q\xb4\xf6\x07!r\x5c\xa9c\x5c\xce.\x0e\x92+\
+\xac\xec\xf7 \xe8\x84\xa4Y\xf1I\xa9\xc7\x10\x08s\xbf\
+T~\xefR\xc8!\xc7\x93\xc6W\x8e\xaf\xcc\xe7U!\
+\xfda^\x9c H\xbb\x12\x0f\xc9M\xc8\x15\x02\xb7\xc4\
+\xb1/\x93\x88\xa1\xa7\x1fN\x9b7\x95\x0a\xd6\xf0`A\
+\xb7\xd9g\x98W\x90\xb2\xa1\xfa\xc0\xfcC.\x90q\xe2\
+s\x80\x90\xab\x97\xd0\xf2V\xec\xd3\xcc7Z\x1c\xa8\xb8\
+\x83\xc0\xc0\xc1\xe3\x5c#\x01\x00\x92\x84\xf9\xc59B\x82\
+H\x81\xa0\xd7?\xeb\x85\xfb\xe1}@.@\xf6\x07\x07\
+\xc0\xd1a\x0d)\xef\xdf\xc3\xea\xab\xaf\x07\x7f\x82\xf5\x02\
+\x14]\xa4\xc5V-\x00\xaaO\xab\x02\x8e\x9azz\x8d\
+P\xfaSXsNS\x01\x06aB@\xce\xfbPx\
+QEn\xfczXu\x94M\xf2D\x02\x88\x16\x10\xb8\
+\x9b\xd4\xe3lG\x0fD\x0e\x88;\x12\x1cBD\xd0\x0b\
+m\xd9azpYoj\xe5!\x91D\x02\xc3\xe4S\
+\xe15\xbdC\xbd\xafkV\x7f\x03r0 \xa6\xd10\
+\x1a-\xa3&\xff\x13g\x01dW\xe6V`\x9fD\xed\
+\x01\x0e\x09d\x10\x15\xe0\x81\xf8t`\xb2\xa4\x80\xfaN\
+J$\xbe\xa9\xcc\xcf\x14\xcc\xe5s{\x18J\x01\xca\xe7\
+3\xfe\x1f\xe4iT\x0c\x09\x00HdE/\xf1\xe5R\
+%\xf8t\x13\x80\x91\xf0a\xde\xb2\xbe\xdb\x1e\xff\xab\x1b\
+\xae\x09Z4\xe8\xf5\x95\xea\xc8\xbcSX\x93\xa0\x02\xc9\
+\x06i\x9d^\xa73\xc2\x1an\x92s\xc3\xd2\xcf\x9f\x16\
+\x96\xe6\xc9\x91\xc9\x1e+2\xc076*\x02\xf7\x09K\
+\xdf\xef\x1aV9\x01r\xcb\xd2\x81\xe9\xfb\x13\xc2\x84\xb0\
+H\xf3{<9\xd9\xab\xe4\x07\xfdJP\xee\x1f4q\
+\xc0\x0bS@\x9b\xe6\xeb\xd2\x1b\x92\xc5\xbe\xf2\x9bd\xd7\
+\xe5u\x96\xe7kz\x0e+\xe7\x95\x95#b\xf1\xac\xc5\
+\xf1\x8b\xe3+Y^\x96){\x94*\xef)\xe0Xl\
+\x16\xd6\x90\x1c^\x1c\xa6\x0a}\xe8\xae_\x1a\xd6\xb0\xf9\
+\xff.,\xbd\xfe!,\xfd\xdd\x9d\xc2D\xde\xb7g\xc3\
+\x09\xb0s\x98X\xfb\xd3}M\x7f\x0bkz\xa5c\x1d\
+}\xadQ\x05P`\xc8\xf3%!A\xa2g\xde;,\
+C\xbd_\x93\xa1\xdeW\x85e\xb5\x85\xbf\x86\xda\x82\x91\
+!*\xa0\xa2{\xef}\xe0\xb0\xe1\x91\x99\xa4\x15\xc4\xd0\
+:\xb9\x94\xe0\x8a;\xd7\xe7\x16(T\x8f\xa4\x1a\xc3\xfe\
+\x92\xef\xff\xb79\xa1S\xc8D\xffs\xf8VF*)\
+\x80u\xe25\x0a\x1c\x1b5\x90u\xe6\xeb#\x95\x10\xdc\
+%\xa7\xe0\xeb\xb9K\xeb\x14\xaa(T\xfaAz\xab\xd5\
+;\x93B~\xa6\xf1?P\xc1\xb8>\xad\xe3\xb4\xbfM\
+\x8f\x0aS\xeb\xc6~y~\xdfm\xbe[\xc3^\xafB\
+2\xd0x\x12\x17\x9c\xf7\xb4\x0e\xb8\xd5\x8f\xd6q\xd6'\
+q\x1d\x5c\x08JT\x0ek\x84Ud\x87\xcf\x87#\x84\
+\xcc\xbaX\xe4\xa6 \x16\xe0j\x11\xf2g\xfcqXM\
+$8\xa0f\x7f\xe0|\x97\x1ci\xfa\xcc\xd2\x1a\x0eb\
+\x97\xdez\xd4HP)\xe8\xc8\xcb\xa3\x11'Zq\x98\
+\x97F\x90td\xf4\x9e\xcfJp\x8eO\x0cK\xef{\
+\xaaZ\x0e!\x17\x14\xa7\x8a\xc9\xe8A\x98\x81\xa0\x83\xab\
+\x89\x96f\xed{\xe3\xb3\xc3jk\xd3\xb4mXrW\
+yPf#\x94\x1ep\xde\xc0\xeeW\x1d\xa5\xf1\xfda\
+\xd5q\x07\xa2\x9f\xb6\xe7\x02Q\xa0RE\x80\x08\xf4\x17\
+\xf2\x99;\xda\xe1.\x90\x9c\xc3\xd4s\xa6\xff\xa3B\x0b\
+\x99\x98{L\xd6\xea*\x90L\x0c\x0eN\xde\x9fJ!\
+\x15~\xb8\x0a\x80X\x01\x8d`\xc2p\xf03P@\xfe\
+\x80z\xc0\xca\x88\x03\xc3\xdf\xe3p\x13x\xf5\xbd\xd2\xff\
+\xac\xe2\x86C\xcc\xcf{\x9dk\xbe\x18'\xc8\xadT\x89\
+q\x82\x82\x00\x92\x89\x86\x03F\xe0E\x00\xcf\xf5\xf1\xfe\
+\x04\x02T\x0c\xb9^\xfe\x9e\x00\x02\x87\x0b\x87\x91\x83\x0e\
+Vq \xe7\x04\x08=\xb2\x00\x19\x1d\xf5\x10\x92\x00\x18\
+\xf8\xbcC\xbb\xc0\x1e\x07\xbb\x977\xdc\xb4c\xb1W\xe0\
+\xe1\x8d\x0d\x07\x11\xa8w%3+\x81\xf3y\x82J2\
+\x9e]/\xa9\x1d%A\xbf\xdd\xd3E\xc0\x8f\x1e\xb1\x1c\
+<\xf7\x9c\xfeY\xb2g?\x97\xa3LB\x88\xf1\x83%\
+\xfe\xc1\xea\x95\xe3\xb9\x93\xf1\xa7\xb7\x90\x0d\x83\x96\x0c \
+\xf8p\x0f,\xba\x9e{\x1c\xfe-4\xcf\x09\x18\x98O\
+w\xec\x02\xda\x8a\x00X.\xf3\x88\x0c\x99\x02a\xabU\
+P\x91\xe5\xb9\xf3\x1c\xac\x8bf\xc5\xd7\xf2\xc5\x06\xc9\xf3\
+\x81<\x8e\xder\xb8!p\x90\x18\x076>%F\x0c\
+ab_\xd1\xf8:!\x89\xba\x88\x12\x85\xd6U\xe5\xfa\
+n\xa3W\xe6\x13\x81\x0b\xebn\xfdNn\x0e\xd2B\xc8\
++\x098\xfa\x04J\xdf\x9aCB\x0f\x92@\xe6-\xfb\
+R\xaf\xe6A\x85\x92@\x89\xeb\xe3\xba\xea\xf3@6\xb0\
+<\xc7\x9a`Y^\xe1\xe7~I4\xe9\xe0q\xef(\
+\x9f\xd7'\x00x\xed\x11V\x04FT\x08\xd8\x07\xba\x16\
+\x1a\x07r;v\xaa*J\xbc\x0e\xebi\x1cA\x00\x81\
+\x18\xe2\xff\x80\xee\xc3-A\x80/H\x9c\xb99p\x84\
+p4\xb4\x9e\xd0\xbbw\xe5\x90\xf1=G\xfb5\x89Q\
+\x9e\x17\xfb\x90X\xf5\xa9<Z\xee\xed\x06\x05f\xcc\x93\
+\xf7\xca\xe1\xf8\x92\xde\xe7\x0b+>\xbf\xe2\xf3\xcd\xbc\xa6\
+\x82\xa4\xf5kH'\x09N\x02AU\x0e\xdd\xd3\x07w\
+\x03\xc8#z\xfc\xbeP\xc8rS\x98\x9c+A\x5c\x97\
+\xf7w\x9e;\xad4\xef\xcf\xe6\xcc\xbf\xe7)\xe3\x8c\x9e\
+7\x90NA\xeb\xddz\x04\xb7\x08\xe3N\xef:\xa4\xa7\
+<O\xd8\x94\x0f\x0fk\x12\x0a\x82(:\xd1\x01[4\
+\xeb\x86\xc0\x1dGW\xf7\xe9\xf3\x18\xf9\xa3\xc7\x865\xef\
+\xcf\xbeE\x05W\xe7\xb5\x11X\xda\xcf\xdc\xb2B\xc2\x98\
+\xfb@\x8e\x12.\x06q6X\x9d\x02\x84\xa2zAM\
+\xfa\xa6\xf1t\x0f\xf3Y\x05\x1a\xeay\xd3Cl\xa9p\
+\xa3j\x10\xbb\xd9\xbe\xba\xff\xe0*8\xaf\xc8\xd0\xad\x82\
+\xb4\xc0OQ\xc5*\x00\xab\x19\xb2J\x8f'\x10U\xe9\
+~;\xb0\x04\x89\x82\xa3\xac\xca\x94\x91e8z\xd2a\
+'\x81\xe2\x9eaU\x8e\x8c\xc0T\x05\xdd\x89?\xfc-\
+*\x88\xcc\x1f\x0a\x07 \x0d\xde\x15V\xc7kz|X\
+e7\xf7~DB\x09\x1ds\xa9\xbf\x80\xe8\xa2rE\
+>\xd9\x15=\xc6K\xad\x99TF\x8dp\x10k\xbe\xd5\
+\x12\xf6(\x89J\xe4\xab\x8c<R\xe5\xd2\xea\x02?W\
+o\xb0\x12/\xd3N\xd3\xdd\xa7\x9d3)\xe2\xb7\xa3\x85\
+\xc1\x15\xfac\xc2\x9a\x8a^\x88r\xbdV\xeaO_m\
+\x12\xbb\xec\xeb\x22\xa1\xc5\x01\xcf\xd7{|&wL\xa6\
+\xd6\xa0 9|dXs]T\x1c/\x96,%\x5c\
+\x0aj\x8d\xf0\xfe\x87\xca\x82X\xd9I|N\xf7Lv\
+\xaf\xba\x9e\xc6;\x84\x09\xd9\xb4\x89\xa0\xec\x17T\xae\x00\
+C\xe3E\x22\xe8B\x1d\xfa\xe4\x22K\x1c?\x17\xa6\x04\
+\xcdg\xd5B\xf2\xd0\x86\xb3\x04\xce.\xf9A\xd3\x7f\x85\
+5\xe4\xbb\x91\x08\xf8Mz\x9f]\x92E\xa1meI\
+\x04L{\x86)\xe0?B\x01\xf8\x9eM /\x19\xbc\
+\xdcbrQe\xe1'\xb13\xed\x15V\x91Z\xd3\xe7\
+\xc2jez\xf1\xcd\xb0\xaaF\xe1\x16\x01\xb5\x06\x80\x1c\
+\x99\x8e\x0d\x13t=\xcd\xab\xe9\xd4\xb0\xf4\xff\xe7\x845\
+\xfb\xeb\xee\x99m\xa7\xb2\xd4k\x1f\x9dw\x0bk\x10\x18\
+$hD\xa2\x98\x19<\x9e)Y\xcc\xb3\x1a\xbf\x13\x12\
+\xd552\x8dr=\xd7D\xc6\x9a\xc7i\xa9iI\xd6\
+\xfb\x0d\x1f\x0fk\xfc}}~\x0eg\x8fXVY/\
+$}\xc8\x9b^\x95\x9b\xdf|^#\x03:\xbc0\x9a\
+\xcc\x94\xc0\x88\xf3\xef\xe9i\xbe?\xbd&x\x86\xff\x08\
+\x13\x09\xe9\x09J \xa5\xc0y\xfaKXs\x9fwO\
+'Y\x90\x08\xae\x11\xd6\x90U\x22+'R^#*\
+\xde,u\x0a\xed\xcf\xe6\x10Pk8\x81\xff\xf8\x8b\xb0\
+\x7f\xd0\xf2M\x5c\xc3}\xb2_!\xd3\x0bB]q\x1c\
+\xfb\xe7\xfc\xc4\xb0\xccQ\x90\xcf=\xfb/ \x1d\x9e\xaa\
+\x82\x92\xb8\x95|]\xb4~\x883\xc2\x5c\x04 \xcf\xc4\
+]2\xdf\xbb [V\x9c\x94\xcd\x08#\x90;p\x91\
+\xb8\xd2O\x22\x08yS\x91\x92\x83\x1c0bI\xad\x86\
+\xb4\x80\xd1r0\xbd3\xac\xee\xabFh\x81<\x96,\
+.d\x92\xf6\x13\x1e\x14\x96\x91\x8a\xa5\x90\xc9~+\xe4\
+\xd1\xf8\xdfa\x95<{\xe5\xb4N\x98\x02\xbf\x83\x9a\xcc\
+P\x5c\xd6A\x15\xb2\xea\xca\xa3\x02n\xf4l\xe7\xe7\x84\
+5\x0e\xdd\x13\xc32\x99M\x99\xd0@\xe9D\xae4\xaf\
+^&\xd2|HX\x03a\x10\xa9\x02\x95\x0f\x07@@\
+\xee$\x03\x03T\x90L\xa0\xa1\xfb8&\xea\x95c\x83\
+wEC\xec\xff\x967\x04\x02\x09\xd4J\x99q\xcbK\
+\xa1B\xf0\xfbN\xbf\x17\xb2@\x1cz&Z\x9f\x00p\
+j\x126\x98\xae\xb2\xca\xef\x81\x8a\xc8\x81\x1fv\xd3\xcf\
+qhUQC\x87\x95^=\xeb\xf4\xa2j\xd0\xb3\xf7\
+\xf7\xf2\x7f$.\x08\x08\x09\xf8\xe8e\x02\xc2B\x05\x9f\
+\x0a\x09?\xc7\xe1\xe5\xbaq\x00q\x04\xb8O\x1d\x9c\xee\
+\xfd\xc3\xf1\x00\xc2\x83c\xb8q\x07\xc9\xae*\x08\xe5\xe7\
+\x7f^^\xe1v\x00\xfeDqN\x08b\x04\xb4\x9b\x8c\
+\xe0*\x89\x15*\xb3@\x1a\x05\xed\xb1.:\xbd\x8au\
+~\x95\x00\x83\xc4\x02\xd0I\xaeS\xd7O`\xe2\xe7\x8f\
+\x03u\xaed\xbb\xe8%E\x9f\x19\x19+\x02\x16X\xbd\
+\x8f\x95\xee6\x01I\xafn@\xa0\x8d\xc3\xc4s\xee9\
+\x19\x18O~\xcfk\x8f\x04`\xbcD\xceDB\xce\xef\
+\x87\xdc\xde:\xe6\x00(\x9f\x8f\x83\x0cG\x03\x89 m\
+\x88\xee\xed\x05\xba\xb4\x8f6t6p \xa2p\x13\xfc\
+\xbdKH\xe1\x98k\x1d\xf8@\xe6>@\xa0\xf0\xf7\x82\
+8z\xddl-\x84\x05\x810\x0e\xdc\xad\x1aO\xd6\x1d\
+\x01;\x09,\xc6}]%\x0a\xd6\xb1\x9cb\x09\xcc\x91\
+\xf5\xdbL*\x0e\xcc_\x1c\xfd\x0a\xdd/\xeb\xb5\x22\x08\
+J\x80\xc3\xbe\xc0|\xe4{\xd6\x0d\xd7\xc3\xf8\xf2\xc5u\
+wj\x18\xc3\x86g\xe1\x1b\xb4\x00\x00 \x00IDA\
+T\xc3\x069Q\xb4W\x0a\xaf\xf7jd\xeb\xb8_\xee\
+\x9f\xff\xa3R>\xfb}\x97\xcb\xe4\x01\xc1'\xa0d\x1e\
+p=\xcc\x9f\xadSX\xbeu\xc3\x81\xb0\xa5d\x1e\xc9\
+\xcc\xab7\xde$>\xdc\x1f\x09\x00\x9e;\x09\x18\x10\x11\
+\x04 \x0bH4p\x9d$^H\x08\x09\xda\xe8\x8a\
+\x09\xfb\x17\xdf\x7fM\xbd\xe5[\xc9\xa1f\xbd\x13hQ\
+\xc1\xe7\xf9)\xe1\xb4\xe2R%VoY\xaeNC\xc5\
+\xc0\xd0=z5A\xf6p?\xec\xcf\xb0\xbf_T\xc8\
+\xa8\x86#Ke:\xb9/\x19A\xe7\xdf\xab\xe7\xdc\xf3\
+IH%C7un\xce\xcf\x98\x8f\x0d\x12)_\xc7\
+zy\xa6F\xa5\xf1\xe8\x5ci|^X\x03\xa9\x94Z\
+\x84\xc9G\x91\xc3\x03\xd2\xcfyI\x82\x8e\xfd\x9es\x82\
+\x04\xe9\x96\x9d\xdc%\xd0r\x12\xd0\xcc7\xa0\xf7Jh\
+:\xb0$!\x00\x84Q\xbd\xbdV\xeb \xc0\x80\xfcN\
+\xbd\x94\x8c;dS\xf4\x86:\x90a\x9er.\x01u\
+\xa6\xf2\xa5\x00\xc7\x8eZ\x87\xd4\x98\xcf\x09K\x7f\xf7\xbd\
+\xb0\x06\x09\xc6\xf8@\x96)h\xaf\xe5<Q\x17A\x9f\
+\xfe\xc2d\x9f\xac\x85\x03\x07\x94\xcc\x7fd9\xe1\x9e!\
+A\xa3\x82\x82\x11\x0a\xf4\xde\x83h\xe0yh?Dm\
+\xc1\xeb\x84\xf5Ae\x0c\xd2bA\x7fM\x06H\xeb\x1c\
+\x10w \xa2\xa8\x1b\x90\x80f?B\x0e\x90}\x8a}\
+\x91\xfc\xaf*|\xe6\xc6\xf8\xf7\xb0\x06r\xac\x9e~\xb3\
+\x9c+p\x1f\x8eW`\xff-\x91P\x0dJ\x04\xc0\xed\
+\xa1\xcf\x9b\xbe\x19V\x13\xe1\xae\xd0\x92H9F\x88\x0c\
+\xb5\x0e\x9a\xfcPj\x07\xc3\x0daM\xc2\xe4\xc0rn\
+#\xeb\xb5\xe2\xa9\xda\x9f \xfd|\xca\xf0\xe4\x9c0\x80\
+\x8c+\xfc\xdc;\xaag\xfe\xe5u\xbf\x19\xbf\x13V\x03\
+\xff\xf1\x9c\xc2Bnr\xc3\x08\xe0\xef\xa5\xe7v\xd7\xea\
+p\x0fO\xd5|\xa2\xb0\xb4[\xf1\x7f\xec\xd0\xe3/\xb0\
+_\x93\x98UB\xc2\x15ez\x87\x85\x80#\xf0\x9a\xd6\
+Lv[\xa9k\xdc\xa3\x814\xc7\xa8&\x7fp\xda4\
+\xd9f\x95L3\xaf\xcb\xf7\xd6\x04\xe5tR\xb2H\xcc\
+\xfc,\xd95Um\x00\x8e\x1dH-Aj\x8co\x0f\
+]\x81\x9a\xb0\x1f7\x0e\xab\xbd\xd9\xd3\xa3\x93\xa5\x00j\
+\xf1o\xc9^\xdf\xb0\xf7\xff&\xd9\xff\xa6\x9f\xff),\
+\xbd^\x1aV+\x90\xf3\xc7\xc3$w\xf8\x86F.P\
+l\xf2 \x8e\x9c\x08\x10\x07\xd9\xf4\xc8\xb0\xda#\xcd\xfe\
+\x82\xfaCP\xc5M\x0f.\xea\x01\x81d\x98\xceK\xb6\
+z\xd3\xdb.R>\xfbc\xac\xa3\xeb\xb2\xeeAE\xc6\
+}8\x85\xed\x1f\xae\x90\xf2\xfc\xbe\x077\xe3\x86\xfa\x80\
+\xb8\x19\xfc|u^\xa2\xe6\x04\xb2f\xde>\xaci\xb5\
+\xa1\xc7\xfd\xc0\xb0\xda\xda\xc3\xbeA\xab2\xadf\xde\x07\
+(\x04\xe8\x5c\x1b\x1e0<0X\xde\xdd\xbbN\xe1\xe4\
+\xeb\xd1}\x9f9\x96~\x14\x1cK\xb9\xa5\xf9\x82\xf4\xba\
+U\xb2\xad\xeb~\xe28I\xe70d\xc1\xf3\xe6\xf3\x16\
+\xf3\xe6M\x0b\x8b\xe2+\xd4K\xe6\x1d\x0b4\x1eN\xaf\
+\xd0F\x0bu4\xc8\x04\xb3l\xe3\xd55\x81\xc3\xb9\xe0\
+\xfd\x02D\xd3\xcf\x8a\x0c\x9f[\x04\x88W8\x97\xd4\xbb\
+\x8ez\x85\xfdd%\xb4M\xa6)\xe4\x91[\xbcY_\
+Z\xff\xc8e\xfa\x1c\xe1\xbcg\xbf\xa3pA\xdc\xa9\x04\
+3$\xc0&I$\x0eR\x02}\xd8!\xac~\xbe\xcf\
+%\xb8\x9c\xf0\xd3 OV\xc2\xd3\x08\x18\x15\xe2\xf3\xba\
+^\xb3Q/9B\x88YZ\xc6\xe0Z\x12R\xc5~\
+\x01\x85H\xb5\x0c\x9a\xd4\x96\xb8\x1a\xd2~\xc9\xad\x92\xd8\
+[\xe9\x03\x18H\xf5\x83\x8b\xae0\x99\x056\x22\xbf\xa1\
+\x1c\x80\xf9\x93\xa5bA/vf\x1fM\x13k|\xf7\
+x\xd6xV>0KF\xe2\x8f\xea\xd5\xc6\x91\xa0\xb2\
+-2\x9ea\x13\x05\x12\x87I.h\xad\x02\xe95$\
+\x83\xde\xc9\x0e\x82;\xbf:\xacf\xf6\xe9\xb9\x815\xdc\
+PA2\xffb\xa5uO_\xdf\xcbL\xa0\x014K\
+\x0e\x92{\xbc\xb5\xb1\xcf\xf7\x0bk\x1cu\x1c\xfe\xdas\
+Y\x02,\xe9\xb4\xfb@\xef{\xa6\xfb\x8d_\x99\xa8\x15\
+\x7f\x14\x09\x04\x13\x9c\xc0\x82\x85\xcf\x01\xac^6;b\
+\x04\xcaJ\xd8\xd03g\x87\x8e\x09\xcb}\xb2\xb0\x08\x04\
+H\x0c\xd0SM\xef!\x09\x17Z3\x08\x0c\xa8`\xe2\
+(\xf6\x90P\x02\x07\xee\x0fG\x9d\x9f3n\x04X|\
+\x1e\xf7S9\x12\xca\xb8\x92\xd8\x00\x02L\xc5\x18\x95\x0a\
+\xdd\xaf[J\xa88\xe3\xe0@:G\x85\xbaG\xac\xfc\
+\xc5$y\xe5\xb9P\x91%P\xec\xf5\xbc\x97\xf4\xbe<\
+\xdf\x07\x16\xe4Dt\x88\xe5\x1e\xb1wg\xabP\xf5\xcf\
+\xab\xd7\xf2Y+NXqB\x03\xb5\x14\xeb\xb3U\x0c\
+\x80\x0a\x13\xa0\xf7\x81+\xf7\xd5\x8f#\xcf\x83u\xd6\xc9\
+B:sH\x05\x9b\xdf#\x17\xc78\xdc\xcer|%\
+!\xb3\xa6e\x01K\x00\xc7<g\x5c\xa9$\xf29T\
+\xa0p\xc4{\xf6o\xde\x8f\x9e\xdf\x9e\xbc\x93\xf9\xc3\xbc\
+\xa2\xf2Eb\x92yA\xa6\xf5\xeeRC\xf8\xad\x1c^\
+\xde\x87\xf1 a\xc0\x81R+\xf3e\x1d\xf6\xad&=\
+\x07\x02?g\xfc\xfbD\x0c\x01\x1c\xf3\x80\xeb&Q\x04\
+Y -,\xeb\xff\x13$P\x9f\x08\xe0\xb5\xe7\xf0X\
+d\xc1\xd3U\xe5\x06Y\x7f\xdc\x1f\x09\xb4?+\x01p\
+k\xd7Z\xc3\xf8\x938\xa27\x1c\xc4\xc3\x0a\xcd;\x12\
+A\xac?^90\x81\x5c\x8b%\x1dh\x9c+\xc6<\
+?\x12U\xcc\xbb^5\x02G\x17\xc8<\x89\x08\x12\x14\
+\xb0\xc3\xab\xd2\xe7\xca4\xf3\x0e\xe4\x17*6\xb0\x97\xd7\
+\x16\x8a\x22\xe3\x8a\xbc!\xad\x0a\xcc'*7@\xfe\xb8\
+N\x12\xa5\x82f\x9a\xcd\x9b\x042\x10v\xd8z\xd5\xfb\
+Ke\xdc\x15m\x12\xd4\x8c\x03\xcf\x15\xe8v\xd7\x1a2\
+\x1f\xa5\x844\x99\x7f\x90j\xb4\x06\x11@\x80,\x80\xbc\
+\x90u\x01B\x8a@\x9b}\x84\x8a4\x10\xf15L\x16\
+Z\xe6G\xdf\xe2\x03\xc9/P\xd1\x80\xf4\x1e\xde\xcc\xa3\
+\x8e\xdc\x8e\xcf3\x1b=\x0e\x0f\x10\xebC\xc3\x1a\xf99\
+X\xd6Q\x91\x90\x7f\xc1y`\xf9$\xed\xa7\xc3\xab\xc3\
+\x1a\xc4\xe23\xc2\x9a\x84\x03-uJ\xc0\x98\xecI\xe4\
+^&u\xe4\x8bD6\xfa\xcb\xb4\x94D%\xf8k\x8d\
+j\x80*.\xae\x18\x83\xdc\x82\xdc\x15RB\x10 $\
+\x8c\xd4\xbb=\x1c\x1a\xd6\xfc?\x0e<\x08\x11\xe61z\
+\xdf\xb4d\x00\x99\xc7\x0fa\xff'\xe1#n\x0es\xea\
+P\x19\x14\xe9\xa1\xa1\xb58\x88T8\x8f\x0c\xab\xc8\x09\
+\x93\x08rN#W\x88\xe3\x0aW\x12\xeb\x83\x0a<\x09\
+\x0f\x90\x83 (\xe0\x80@F\xf5\xf6\x1d\xd7\x13r\x9d\
+\xc8m\x01]\x05\xfa\xaf\x0a\xe8\xb0\x08K\xd3\xf2\x94\xb0\
+\x06i\xc0:Vet\xfeTX\xf3\x9c\x80\xe2\xbf\xbc\
+\xf8\x99\xe1\x95\x86_:\x1c\x93\x02\xf3cj\xa5\x9eu\
+\xb0tyX\xfa\xbb\x9f\x84\xa5\x9f_\x19&\xf9\xac\x83\
+D>\xf9;\x05\xdc\xbb\xd4\x80\xc3\x09\x04d\x1a%\xdf\
+\x95\xfe\xbb\xc8r\xdeX\xce\x1f\xfckd\x08\xddzH\
+\x05\x9f\xc4\xba*\x8an\xd1 \x90\x96\xfbfU\x01Z\
+M\x08\xe0\xa2b~H\xd3\xc2\x82\xc3\x1f~\xc4\xfaj\
+\xe5\x88\x04\xfb\xdb\xb3\xad\x18?\x1c&h\xf1\xeaM+\
+\x0b\xdc%\x90=\xaa\x85azaXeC\x1f\xdf\x18\
+V9\x052\xd2\xe3\xa4\xb4\xfc^\x90,\xed\x93\xd3m\
+\xc3\xd2\xeb\xdd\xc3\xd2\xebFaJ<\xc4\xdfm\x1fV\
+\xe5\xc7\x89#\x16\xdb\x845\x01\xa2\x90\x14\xf4.\x1bZ\
+.(?\xad\x0fTN3\xb7\xc3)9p\xdd|.\
+d\xc6Y%!\x87u\xe7\xd6\x0a,-\x0b\xe9\xd3\x0b\
+\x92\x22\xc8\x5c\xaf\x92\xffs;\xf9\x11k5-VB\
+\xdcL;\x85\xa5\xfb\xbe\x7fX\xe6\x06\xb8<\xb7\x8c\xfc\
+.,\xfd|\xbfq\xdfq_q\xc9\xbc\xaa\xd9\xf7A\
+f!\x1b\xd8\x9f\xef\xf8I\x92\xf54\xd2\x07\x84\xb3\xce\
+k\x12\xa5T\xd2\x81\x98\xbbe\xf5\xdd\xe2\x04\xd8o\xde\
+?C\xf2\x15\xc7\xe5}\xef\x8b\x0a\x10\xdf\xd7\x9c\xaf\xa8\
+\x80(\xe19?\x22L\xfb\xe1s\xf2\xfe\xb1\x8c\xf4\xda\
+\xa4\x84 \xe34O8\x17\xa6\xd3\xc2\xd2\xf7\xc7\x96\xc4\
+\xb5Uu`\xff\x07I!\x84\x8b\xe5L\x95\xd0\xf4:\
+~rX\xb3\xafp\x0e\x83\xec\xa2\xb5\x97s\x10$\x1b\
+\x89W\xceo\x12\xdd\xc4A\xda\xcf\xddb\x0a\xb2\x82}\
+\x8c\x04\xb4 \xf9V[\xe0\x1cb_\xe3s\xf1ch\
+\xf9\xea9j@\xd6\x91\xf0\xc5\x1fU\xa2a\xfc{\x98\
+\x12e\xbfi\x906p\xce\xa9\xd00\xde&,s\x9b\
+e\xf2D\xfb]p\xf2\x88\xab\x0e\xe4\xde\xf0\xb2\xb0J\
+\xbajd\x1c\xe4\xc7\xf2\x87W2A]\xd1\x13\xa4\x05\
+2\x1d2\xbf\x8b\xaf$\xbbX\x13w\xb5\x0ae\x1bo\
+)70\x8e\xe3\xd2\xb8\xd4d\xba\xf7\xd3@\xd0c\x83\
+^0\xa43@\xa2#\x13\xb5U\xfe\xbc\x22k\xc4\x8d\
+\xb0@8\x10\x80x\x90\x98\xb8U:\xf2\x90\xb3\x10\xd8\
+\x03=\x11\x94\xcc7.\xc8\x8d\x03L&\x12\xec\xbad\
+J\x94@ \xc3m\xb6g\xf5\x9e[v\x01\xc7\xadr\
+\x11 +V*cL\xc8\xcd\xdd\xbb^&0\x01[\
+Gb\xb6J@D\x86\x1f\x07\x95\xc0\x8e@\x83\x9ev\
+U0<1\x09t!\x83 \xfa'=\xcc8(\
+v\x00\xf9\x5c\xbe\x90Q\xa2\xa2\xc0F\xc5\xf3\xe1{\xee\
+g\xd5\x0adqX\x09\xfc:\xfdy\x07\x8ad\xe4\x08\
+\x8c8\xf1z\x99D \xa0\xfc\x1dd\x86 \x00\x08\x18\
+\x18o\xae\x8b\x80\xfd6\x1d\xc4\x19\x87\x9cy\xc1s@\
+e\x82J\xf0\xc6&],\x0e\x0d\x0e5\x09\x8c{\x8a\
+|\x0a\xc7\xacSi0i\xe1\x9d\x04-:K\xba\xd1\
+\x17\xa8\x95\x05\xb9Km\x0c@\xab\xc8 {\x1c\x99\x1f\
+}\x22\xa6\x0f\xf8\xbb\xef\xcdEA\xe0\x8a\xa3G\x00X\
+\x13\x1ce~VY\xc0\x92\x08`\x1c\xbb\x83\x8b^b\
+2\xa4\x0e\xa4\xa8\xb42\xce\x04\xac\xbd<\x1e\xe3\xce\x06\
+M@\xa5\xd6\x13\x1cg\x07tr`h\x11\x22C\xea\
+\xd6\x8a\x83\xb5qn\xd0\xb1\xbe\x03U&\x11\xc0\xfc\xec\
+U%\x98wK\x0a\x84\xfa\x84G\x9f\x10\xbaS\xde\x19\
+j \xcb> (\xec2y\xa1;7\x7f\xc7s\xc0\
+\xa1\xef\xc7\x99@\x8c\xf1\x22\xa0\xd0\xf5\x0d\xc7k\x5cI\
+\x0c\xb2\x1e\xb8\x9f?\x99\x1b\xa0\xbcV\xce\x8f2\xaf\x91\
+\x99\xe4\xbev6I[IX\xad\xa1J\x1a\xfbF'\
+7i\x886\x09\x0e\xe6%=t|\x1e\x812\xe3\xc5\
+\xbeX\xa1\xfa\xe5\xf3\xe9%\x86\x0b\x00\xce\x07\xc6CH\
+'Wp\x1f\x1f\xd6\xf48C\xaeF \x01\xcb<\xeb\
+\xe3\x00A1\xd9\x8f;=b'\xb24\x8e\x86\x9e\x0b\
+\x92\xe8\x00\x8e\xfd\x87\xc0\x11D\x96 }\x0e\xe8Hd\
+p_\x1c\xe8\x90\xea\xa9\xf2\xe5J\x10\xe4cr\xe0\xe7\
+\xb7\x97J\x8e\x13\xd8$\x00\x80\xbe?\xba@\xe9\xa9\x00\
+\x0c\xfb\x97@&\x1d\xf7E?\x9c\x80B\x8e\xc7\xf0\x89\
+\xb0f\xdf\x22\x90\xc3q\xe19\xb3oP\x01\xb96\xac\
+\xd1w&\x11\x03t\x99\xc0\x10\xd29\xf4\x86\xa5\x1e\x80\
+l\x9d\xe7\xb3*>\x90\xdd\xc1:m\x87O\x8e%\xac\
+\xd4^\x7f\xecK\xf4<\xf2=\x08 \xc8Uq\xb4\xa9\
+\x14q~\xf1\xfcXg\xcc\x17\x90#8f \x96\xe8\
+Q'\xa1\x89\xae3l\xdc\xc8\xa1A\x06\x07\x0b<\x89\
+\x00\xa0\xe0$>!\xa3\xfdT\x91\xd5t\xeb\x80\xee\xc7\
+\xad\x11\xc86Q\xc1#a\xcb\xfcd\xfe\xa1\x8a G\
+o\xc5\x19\xd9*R\x8eu\x0ab\x03\x12/\xe4\xfe\x98\
+G\xc8j*\xa1f2V\xc6Q\xe4\x92n\xc1\x83d\
+\x8b\xfd\x8b/\xd6\xa9 \xcf\xc3qRg\x10\x22\xc7\x01\
+0\x08\x0a\xc8*\x95\xc8\xb1\xcc\xd5ea\xcd\xb9\x05\x89\
+4\x01\xce[\x85\x94yb\x81\xccZ}\x01\x04\xd1#\
+\x0aRe|zQ\x11X\xdaj\xe9.K[\xe5\x9e\
+\xf9\xc7\x8c)p\x1a?\x12V\xfd\x85\xe1'a\xe9\xe7\
+\xaf\x08\xab\xb2ly\x97\xde\xbc\xe1F\x08\xae\x84s\xb4\
+\x0f\xfdO-\x94\xe1\xe7\x0e\x7f(\x90\xda\xf1\x9ba\xe9\
+\xf5~a\x0dK?\x09\x02\x9d\xe7\xe9\xef\x935\xe4e\
+T\xfaN(\x05\x02\xf6)*\xf1VM \xd1J\xa5\
+\xef\xe5a5@\x079\xb2t^X#\xbfH`\xa9\
+sw\xda7\xac\x92z\xbbe(\x90\x0f\x0f\xd7\xb9\x12\
+\x9f\xf7\x8ddq?w\x0e\x93\xde\xfc\xb7C= \xd9\
+\x85\x22+}Km9X\xdc%,\xbd\x1e\x97\xec\x99\
+\x8d,\xdc9a\x15\xe2\x9f+\xf2\xe75\x15\xeb!\xac\
+\xe9\x99\xbe6\xac\xf1S\x05\xb1\x9eN\x0e\xab\xdc\x18\xe8\
+\xbf\x87\x18^&I\x0c\xae\x8a\x95\x19\x91\x165\xdf\x8a\
+\xdc\x85\xcb\xa4\x93\x95\xcel\xed\xaf\xad\x88\x11\x9f;B\
+\xcc\xa5\xb0\xf6\xd1\xf3\xa3W\xd5U\x9fn\x9a\xfeo\xfa\
+\xbf\xba^\xc7\x8b\xc3\xe4\xef\xa5sa<*\xac\xfa+\
+\x9c\xffFv\x90\xa0c\xdf\xc5o\xa4G\x5c\xe3\xec}\
+\x9f\xfd\x93D1q\x16\xaa \xfb\xe7\x13nU\xee\xa8\
+\xcd\xb2@m$>\xde\x96\x13\x1f\xc4c\x82\x8a\xa3v\
+\x90\xc7\xef\xf7BH\xdc6'\x942B\xdb\xc8\x04\xa9\
+e\x00\x99\xb7\xba\xce\x13t\xddBH8\xa1\xa5}\xd6\
+q\x9b\x90+\xfc~\xfaxX%\xd7\x1e_\x1a\x96^\
+\xff5\xac\xe1h\x03y\xccx\x11\xa0\xe3\xef=5,\
+}\xff\xf4\xb0f\xbf\xa2\x95\xe9\x820qe\xbc\xa9A\
+\x9c\xcb\xefuk!\x09\x00*\xf7\xf8\x07\xa5\x14R \
+\xfc1\xaf>\xaf\x16AZ\x11\xf8\x7f%l,G\x0d\
+\xe9<\xe7+H&\xe2 \x90\xe6 \x8b\x1e\x12V\x13\
+\xdd\x90b\xe2\x9fL\x9b\x855\x1cu\xf8\xc9\xda\x07\x90\
+\xc1\xb4|:\xfb\xa5\x90\xb3\xc3\x1b\xc2\xa4&\xf2\xaa\x8a\
+P^9n\x93\xec\xae5P\xc9$.q \x9c\x1e\
+\xd6\x0c\x5c\xd4\xc5\x0flz\xd7\x22\xc0\x5c+g\xa6w\
+\xcfrL:`V\xecY6\xe2\xe9\xdf\xc2\x9a^\xe3\
+\xfb+\x909\xbb@\xa2\xdcRL&\x1f\xfd`6\xe6\
+[\xc2\xaa\xe3o}E-\xe0L\x82rd&\xa3\xc8\
+\xfa\xd7\xf3\xf3\xc2\x9aJ\x16d\x17@y\x16\x1d\xa4\x96\
+\x85D\x85\x16G\x85\x83\x14h\xa5\x10\x01&c\x10\xa4\
+\x0a\x92Ao\x0c=)\x1f\x07$\x01@\xcf\xa2O\x80\
+\xdaC\xe0\xfb^]\xde\xbf\x97]\xa3\xa7d\xab\xe4*\
+\xbe\xbd\xe91BFF\x90{\xcb\xb4\x10\x80\xe18\x01\
+\xd5\x07*J+\x84\xc6\xd3\x8eb\xad\x14\x97@\x91\x09\
+\xcdu\x12\xa0\xe0\x98\xdcl\xe8u\x09\xa8\x08\xb8\xfa\xde\
+b\x02\xa9>\xd0\xe1:\xd7t\x8bE\x19O\xc6\x11\xc7\
+Z\xdf\x1b\xca\xdf\xcb\xb1\xf5j\x0a\xabw\x90k\xde\x97\
+\xeb\xe8\x03\xc0>\xd0#\x90\x10\xb9\xdf\xb0\xaez\x9fa\
+)\x07\xa2\xce\xfd\x901\x95\x1c\x9a{\xcey_\xa0\x95\
+\x90\x14\x09\xe2\xe4\x03\x00]\xed+\xc2\x1a\x07\x93\x8d\x84\
+\xe7A\xc0\x8f\xa3\xdc\xb1\xd3;\xf0\xaf\xac\xf4\xcb\x10\x01\
+\xcd\xfd\x11\xf8/g\xb9'@\xed\x13I\xac\x1f\x1ca\
+\x021Z=\xf8\xbc\x1e\xb1@\xa0J\x85\x91\xfbE5\
+\x81\xcfEfK\x19\xf0\xe1\xf2RYq\x06\x1fh+\
+\xefK &\x99\xd14Z\xa52G\x02\x80\xc4\x96\xe6\
+\xe3\xfc\xd7\xd2;o\xd6p\xd6/\xaf|1/\xb9\xff\
+\xd5:\xce\x81ur\xd3Dm%!\xf0\xef\xc9\xfe\xba\
+\x04A\xb3\x1e{u\x81\xe5\x89)\xf6\x05\x1cb\xd6\xcf\
+\xb1\xfa9\x81(\xef\xc7\xf5s\xbf\xbc\xfe\xad\x93\x7f\xec\
+\xc9\x06\xe1\xc4\xd8C\xf2z\x907.-\xaf\xa0\xfb:\
+!\x01T\x85\xca\xe4\xae<7Z\x03\xfa\x84\x81\x02\x0e\
+\xe6\xdd\xfc\xd3\xf9\xaa\xdc\xfb\xbdQ`\xa6\xfe\xc1\xfe\xcd\
+~%\x884\xac\xd7\x1c\xf8\x86\xb4\xf7\xfb\x0a\xf3\x8cD\
+\x03\x95q*+\x04*\xf4\xf4\xb3?\xd3\xeb\x0bI\x1e\
+\x08\x06\xce7\xd6\x0d\x89\x0d\x05\xc0\x96\xa7T`\xe0\xde\
+{*\xe8\xb4\x02\xd1[-R\xb9\xf9\x84\xb0\xda\x83\xe8\
+\xc4!\x07\xb6\x1c\x1d\xd6\x89\xc9\xeeph\xa9\xf0\x22O\
+\x88\xac\xe6\xf7\xc3\xfeA\xe2\x10\xe8 \xcf\x99}~\x8d\
+\xe5-\x1a\xac\x1bW>\xa8x\x03\x95\x87$\x0f]x\
+\x12\x80$\xa4\xd8\x07\x08\x94 [S\xc5\xc2dW \
+1@\xfa\x91\x18\xa6\xc2K\x80\xaeJ \x89n\xab5\
+p?\x11\xa8|\xa3Q\x17\xa0\xc5D\x0e\xa79i\x9e\
+\x95\xad\xb6vu\x888\xeb=\xd3z\x82l\xa0\x1cy\
+'\x22;9'\xce7s\xd4(\x91c\x95\x11\xc6\x0f\
+.\x00\xf5\xe0:\x11\xf3\xd4lU\x85\x80\x00\x99^X\
+\x12g\xf8+bcg\x1ft\x22\x8e\xf5\xc6z\xa70\
+@b\x8c\xc2\x85\xc8\xb1\xecH\xabu3\xbc\x89\xf0'\
+\x9c\x90\xe0\xbc\x07\xb2\x8f#\xde9\xb2.\xe8\x88t\xd9\
+\xe4\x7f\xb4N\xf1\xf9\x8c7\xeb\x96\xd6\x12\x9e3\xe7\x13\
+\xdc\x1a\xa8\xc2\xa8\xe7\xd6\x05\x0b\xcei\x15r\x96\x9e\x17\
+\x96^\xef\x9b,\xf9\x99K\xd7.]\xb3\x94\xce\xdf\x95\
+\x17\x84\xa5m\xee\xbba\xe9z>\x98\xec\x03BJ<\
+\xbf\xcaw\x01i\x9e^\x13\xd6\xb4D\xc4\xa7>\xb3I\
+D\x07\xe2\xe3_\xea\xbcX\xda1\xac\x09\x1c@>\xa9\
+\xb0\x84J\xc3\xf0\x97\xb0\xf4\xfd;\xc3\x9a\x96\x16\xedk\
+\x04.\x04\x14\x11v\xe6\xc0\x13\xf2M\x91!\x92`\x84\
+\x9c{\xf1\x9a\xb0L^\x9c\xd5I\xc6K\xc2\xd2\xdf\xfd\
+6\xac\x06\x0c$\x86\x08\xe08\xa7\xdc\x8a\x0b2\xe5\x11\
+9\x85\xe2\xf57~)\xac\xb2\xf9\x8f\xbb\x875\xfe:\
+\x88\x85@\x8a\x1c(\xd5\x87\x08`~\x16\x96\xfeo\xdf\
+\xb0\xf4\xfd\x07\xc3\xd2\xeb&a\xb5W\x1f\x12J\x10\x02\
+\xf8\xd5\xd3=\xc2j\x80\xef\x0a\xb1\x90\xa8Y\x8e\xfb\xad\
+\xaa8\x9f^e\x05-\xd3\xf6\xed\xd2r2?'=\
+\xd7\xe74=\xeb@\xd3!3\x85\xf3\x8b\x8a0\x15{\
+\x90n\x14\xa6\x14\x07\x0d\xd7\x15\xe4\x06H\x80\xb4V\xcb\
+\xfc\x87\x93\xec\xb6\x19;Z\xfd\x13\xfe\x9f\x80^\x89@\
+T(<\x0f\xe0N\xa1B\x0d\xf4\x1fRL\x10\xa5\x8a\
+\x7f\xdcRp\xd3\xfc\x97\xf9\xa6z^\x9a\x14\x94\x82\xe8\
+\x1b2=f<\xdf\x0f\xe5\xe7\xbb~.i9q\xc4\
+\xfeNAe\xde#\xac&\x00L\xaa\x87\x8a\x92\x12\xda\
+)\xda\xca\xec\xf6\xf3\x0ft\xce\xc0\x91\x06\x92\x8f\x96&\
+\xf6Y\xceg\xad\xe3\xe9\xb1a\xe9\xf5\x98\xb0\xb4\x8e\xfe\
+_X\x13\xb0\xfeOA\xd0\x18!\xa6\xf1p\xe1W\xef\
+\x0b\x84\x9eD\xdc|r\x09p\xcd-\xa2}q\xfa\x8f\
+\xb0\xca\x91`n\x18\x9d\x8fN\xc8\x0b)\xe5}\x8b\x02\
+4\xf3\x83\xc0\x9b\x00^\xfb\xa4\xfd\x11\xfcc\xce3H\
+\xe6Y\xbf\xa8}p\xde\xf2E\xdc\xa9\xf3a|nX\
+Z?\x1f\x0f\xab$\x94&\xe1\xe7\x5cB.\x12\xb2T\
+\xc8\xc2\xf1?\x84\xf0\x22>\xb6\xcc\xaf\xe4/W\xe6\xca\
+\xc4!\xd5\x81s\x8f<\xd0`\xa0\x16d\x92\x81\xce<\
+4,]\xe0\x9b\xc3\x1a\x9dX*\xd3T6\xc4B9\
+\xdc\xbed\xb2\xe7I\xf2\x82Tn\xc5\x8ak\x16Y\x91\
+\x0e\xc2r\xebL\x90\x1c\xd1\x00b\x05\xd4\xc6=\xa7d\
+:\x08\xfcp(\x98\x888@\x04\x1a\x1c\xd4\x0a|\xe7\
+\x0f\x845\x0e\x802J\xfe\xff?/\xaf\xa0\x85HJ\
+\xf4\x88QY3i\x04\x81\x19\x9f\xc7\x17\x13\xbf\xd7\x7f\
+\x875\x99\x83\x9c\xeb\xe7\x80\xe4\x80\xe5 \xe7\xfd\xc9`\
+\x02\xc9_C=\x84@e\x08\x94\x09\xe8\xd9\xa8\xa9\x0c\
+\xec\xdfU\xc2p\xf8\xc8DS\x81\xe3\xe7\x04 8\xbc\
+\x5c?\x81U'\xd7d\xd6\xf4Y\x074\xe4x\xfc\xdd\
+zrP\xd6\xd0\xfd\xf1s\x12\x1b80|\x0e\x81.\
+\x8e\xb7 \xc9\xc3:b\xdb\xef+\xac}\xab\x01\xe3I\
+@\xb0\xa6+\xfb\xcb+\xafSG\xba\xc7s\xa3\xc2\x0f\
+B\x06\xd5\x09A\xfe]\xe9\xe4\xfak\xe0X\x02\x11\x91\
+Z\xa6\xf7(\xf7\x03\xd4\x9eV\x0b\xe9\x13\xbbBM\xcb\
+\x05\xbd\xb2\xdf19^\x99\x87\xcc\x07\x12C\xd7w\x09\
+\x01\xc6i6\x87F\x19_\x02\xbe\x1e1PU\x01\x96\
+\xb3\xd0\xdf\xb6k\x81\xe0\xe7\x04T<o\xa0P|\x91\
+p\x83\x13\x84\x0a\x16\x89\x068/\xe8\xf1\xe5~x.\
+\x8cw\xf4b\x9e\xd8@\x9e\xc4\x96\xeeD_\xafgN\
+b\x00\x08\x18\xe3\xc9<e]\x02\xa5C6\x90Lo\
+\xcf\x8d\xc1}\xf3|I\x10\xb1\xc1\x13H\xf3\xda\x93\xfc\
+1>\xbd\xbc'\xaf\x04\xec$\x04\xd8\xdf\xd6\x97\x1a\x08\
+\xff\xd7\xcf\xef\xcd\xddJP>\x87V\x03\x12D$\xda\
+ \xbb\xbb^\xfb\xc5_;\xd9N\x0et\xde\xb7\x97\x9b\
+T\xcf\xaae\xf2\xd8\x0f\xef)\xb2\xc7{\xa8U\x89\xc0\
+\x80\xc0\x8fu\xc4\xf7T\x8cY?8\xfc\xb7+\xeb.\
+\xd4\xabs\x02\x06G\xe9^B\xf0\xdcK\x9f\xcf\xbc\x04\
+Z\x0c\xa4\x98\xfd\x8e\xfdL\xcf\xd7\x90e\x10_\x90\xc7\
+]\x22D\x00\xa4\xae\x04\xc4\xf4T\xab\x22\xec\xf5H\x80\
+M\x22\x95\x00\x9f\x84\x0b\x01\xcf)E\xefx\x15\xae\x0a\
+\xc8\x8c\x94P0I\x1d\x8e\x1e\x15\x5cX\xe6\xf9\x7f\x12\
+2\x8f*\xc8\xb5a=A\x81\x1f(Y.\xc9\x07:\
+\xb0&0\x22Q\x80\x0c/\x15oZ\xe2@\x18\xf1\xc5\
+\xff\xb3~\x99\xbf\x8c\x8bt\xc9\x1d\x08C\x16\xd9s\xc4\
+P\xa9\x14T\xd2\xc8\x03*\x95\xccWz\xa3qhE\
+\xce\xeb@\x13G\x91\xf5G\x22F\xbd\xafN\xd4\xd0\xb3\
+/d\x82\x13\x18 \x0e\x98g \xe34\xdf\x90\x1b4\
+\x97\x11\xeb\x07\x04!\xf3\x88\x0a\xbcX\xca\x9d g\x9e\
+\x90\xd8\xe2:p\xe0\x99/$\xeaT\xd9q\x80\x0fR\
+\x01\x84\x08\x0e=\x8e*\xadi$^h\xb9\x04\xba\xcf\
+\xfe\xd3\xb7\xe2\xe0\x00*qo\x99Q\xf4\xe3o\x0ak\
+*\xccp\x01@2\xc8\xcfa\xb5f\xfeSyd\xbd\
+\x82\xe8\xe2\xfa\xfe\x16\xd6$\xf48wi\x15A\xd6L\
+\x15U\x93\xb8B\xeeL\x8b\x0a\x85\x03\x12\x95<\x7f\xfc\
+\x02\x10M\xbc\x8f\xa0\xd6\xb4\x02\x8c\xf9+\xbd>y|\
+\xca\x98\xfc\xc1\xa5W'K\x01\xc0\xca\xd3W\x9e\xb62\
+z\xd5\x7f\x15VI\xd6\xf0\x87\xa6\x9f\x875\x95s\xf6\
+\x0b\x15R\x5c\xc9\xa4\xb5G-\x16\xe3\xab\xc2\xd2\xeb\x9e\
+a5\xe16\x1e\x10\x96\xde\xff\xa5a5 \x98\x1e\x16\
+\x96\xae\xeb\xdea\x0d\xf9\x9c\x12Q\xc8\x84\xb9\x12\xaeu\
+\xee^u\xce;\xed\x8f\xf3\xfea\xe9}\x1f\x17\x96^\
+\xaf\x0bkZ\x01\x1e\x19VU\x04\xbc^\xa9|Bn\
+\xacs\x12\xd2@#\xfa@(\xe8\xb9Nw\x0c\xab\xd7\
+=\xfe[X\xd3R\xa1\x00k\xbc.\xd9\xaf\xd5\xba\x11\
+\xbd\xf8\xe7\x87\xa5\xd7\x13\xc3\x84\x088\xae\xb6\xe2\xcc\xb7\
+\x0f\xab\x09\xaa\xe9\x01a\xe9\xe7\x7f\x0a\xab\xa4\xcc\xd3\x1f\
+\xc3\xd4\xf2\xfb\x1a\x15V\xae\xc9\xec\xf7\xa5\xe2{P\x91\
+'\x87\x0c\x17\x7f<s\x84m^\x0b(\xf4\xfc\xf3\xb9\
+\x1e\xdf\xed\xe7\x1d\xa2'?\xfd4\xb7\x22\x984\x0d\xe4\
+\x0e\x89{Z\x84\xd87!7\xe5}\xb6\x09\xab\x15\xf3\
+\x14\x03\x1d\x95\xe3 \xc8\xedP\x0b\x089\xf5\xb8\xcf\xb5\
+\xc3\x9a}Hr~^\xef\x0a\x08\x81l\x83\xb0\xb0\x8c\
+$=\xf1O\x08,L\x1a\xa7o\x85\xa5\xef\xd7\x09\xab\
+-W\xec\xe3\xf37B\xd0\xbai\xfd\xe1\xfcRBz\
+>8\x85\xfc\x077\x5c\x1f\xfa\x1c\x10\x10\xa8,\xa0&\
+\xe2sE\x05_\x12N\xe3\xab\xc3\x1a\x0e\x01\xc9\x8d\xc2\
+\x09b\x045\xe4\x92\xff\x12\x96\xb6\xb1G\x84\xa5\xef\xdf\
+\x12V\x0b\xbcN0S\xc8\xd2\xbed\xee\x07\xe2\xa0\xbb\
+\xc8\x9f\x02\x91\xb5I\xf9\xfb\xf4\xe9\xe5\x5c\xe2\xfc\x15B\
+\xd1\xd7\x01\xa2\x8b\xfd\x1f?Dq\x88\xb9\xe4\x1e\x1f\xd6\
+\x14\x22P!P\x02\xb1\x97W\xefUU@\x00\xcf\x9f\
+\x0ck\x12\xdc\xc4i\xab\x855~\xcc\x14\x96\xf6\x8dw\
+\x84\xa5\xf5\xb3kX\x1a\x9f5\xc2\x1a9uHHA\
+^j\x7f\x9f_\x18\xd6\xa8U<6[-\x0c\xaau\
+m%\x0b=8\x22\x83%\xd2\xf2|\x0f+\x99\xeca\
+\x1b\xf5T\x8b\xd5\xdc,\xfa\xf4N\x90I!\x83\xab\x8c\
+\xdaxKX%WJ\xcb\xa2@@\xc8\xe0\x8b\xe4\x08\
+(ap\xaafVU\x91\xc6\x8c\x0f\x0a\xab=\x9d\x86\
+\xb0\xed,y?\xd4\x0b\xa8\x5cI\xa6\xd0\x0e0z\xb7\
+8F\xb0\xec\x02M!\xc0\x22p\xe0\x80\xc7\x81%\x80\
+\xe0 \x95\x9c\x857\x08\x02\x81\x1e\xd2Le\x80\xc0\x86\
+\x9f\xd7\x00\xb8\x04\xdaLh Gl\xd48\xe0}\x80\
+\xca\xe7\x81` \xb0\xe1\xf7\x04\x12\x1c\xa8\x04\x8c\xc8\xf0\
+\xfd*\xac!\xa7\xfbgPp\x02(\x1c\xd1\x9ee\x9e\
+\xc0\xb8W\x13`\xc1P\x89\xe8{I{\x0e\x02\xde\x87\
+@\x87\xf7\xe1\xef\xd8\x18\xb9\x1f6b\x16\xda\xea\x96\xff\
+[\xc6%\xb0Je{\x0b\x93\xb3-\xd7\x11\xef+\xdc\
+8\x92\xb0's}\x04\x86\xbd\x5c\x1a\x8e>\x81\x5c\x0f\
+-\x97\xac\xe0\xc0\xfdq\x1f\xdc?\xf3\xe4\x0fz\x8e\xc8\
+\x04B\xf6vH\x81\x0c\xcf\x1f+\x99\xc9\xf9\xda\x120\
+\xbb\xb2Mb\x05y4*1\x1d\xbb<\x1b\xa4\x1dY\
+\xee\x87\xf9\xd4'\xa8\x18O\x02[\xe6-\xe3\xc3\xfd\x00\
+U\xc4a\xa3\xb2\x8a\x1a\x00\x88\x1a\x1cG\xfe\xff*\x05\
+F\xe8\xec.\x94\x91\xed\xd5\x06\x08H\xa8\xd8\x9f\xa9\x0c\
+\xa7\xf6\x1b\x93\xba\xe9\xf3,\x97I\xa6\x9d\xf5\xdes\x01\
+\xe0H\x93p`<\xa8\xb0\x01u\x85K\x82qb}\
+\xf0\xc5\xfcf\x9cj\x82i99hG\x1e\x99\xe6@\
+Y\xe7p\xa1@\x96\xc9\xf8\x10`2_\xd8\x1fz\xc4\
+\x10\xfb4\xe4\x95\xf4@\xc31@\x0b\x00\x89\x8f\x1b;\
+\x19\xbd^\x96\xad\x92#\x96\xfd\xe4\x00\xbd\x1f\x10\xf6\xbb\
+)1\x08\xb9#\x01\x83\x90Q\xc9\xc1\xf8F8\x18\xae\
+8=vx\x5c\x0e\x98\xd7\xcd\x18\x89Z\xd1'\xe1\xb2\
+\xb9\xd6\x11\xea\x00$\x5c`\xa9\x17\xeb\xb79)\x18\xd7\
+o\xa9B@\x80{\xb0\x02\xb2\xcb\xd4\xd2\xc5}T\xe4\
+V&\x0b\xb3\xec\x1a\xe3\x08\xd2\x00\xc7\x98\xcf%a\xd0\
+\xcf{\x90.\x04.\x82\x02\x9a\xfc\x8f\x962\x9e\xfb\xf1\
+\xd9\x9c\x90@7\xdb\xa4\x998\x16B\x00!;h\x84\
+@\x9fPT%\xd4\x09j\xd6\x01$\xbb@MI\xc0\
+\x83< !\xce\xfe\xc8\xbc\x02\xa9A\x85\x15\xc7\x85\xc4\
+=\xbd\x8b\x90\x1b\x1d\x1c\xd6\xc8\xa2\xa9\xc7\x9fJ\x92\x0b\
+\x05\xec\x03|.PUz\xd3\x85\xf4\x19\xef\x18\xd6\x5c\
+\x17\xfb\xa9\x90<\xc3\xab\xc2\x9a\x16<dd\xe9\xb1\x87\
+\xa4Q\x15\x22'.\x08p\xa8\x94\xd3{)\x0e \x12\
+\x0e\x96yT\x22\xd1\x89\x09\xe6\xa9\x10\x0a\x86^\xc3\xb2\
+O\x02\x9euE\xc5\x8a\x16\x0f\x1cd\x90\x19$ \x98\
+\xafp2\xc01D%\x07G\x14()\xd7C\x22\x89\
+\x9e{\x0a\x01\x9c#]\xeb\x14\x89U\x12\xfe\xeeI\xd7\
+\xfbA\xb6E!\x07\xc4\x83\x11\x97p\xf1p\x8e\xc9\xe1\
+\xf6\xbc\xebX\xb8\xad\xb2\xc4>J\x8f)\x01\x13\x10c\
+\xc9\xca\xd1\xf2@\xa01\x5c\x1e\xd6\xec\xbf<\xd7O\x86\
+5\x08\x06\xfc\x12%Z\x8cD\x01\xa1\x0a\xf2P\x95\xf8\
+\xe9{a\x15\xe9B`\xb98+,\xfd\xfe#\xc9>\
+\x9a^/\x9b\xbe1]\xd6$\xbc\x8e\x10\xeb\xfa\x96Y\
+\xcf\xa7\xa8\xc2\xa4y:\x1e\x12\x96\xfe\xfe\xea\xb0t,\
+\xbc<\xd9\x89\x0dT^\x1d\x22\xc3i\xc3\xe9\xc3iY\
+\xbe\xf3uY\xe7\x1brO\x91L;`Wo/\x1c\
+\x16\xf3\xc9aM\xc0F\xef1\xa4\xa7\xb5U4\xaf\xd3\
+\xe9\xfa\xb0\xf4\xe3\xdb\xcd\xb9\xc7\xddP~U\xb8\xa7\xe7\
+\x84\xd5\xd6M\x90Z\xf8\x89f?\x17\xb4\xdb\xe4\xaej\
+\xc9D_\xdd\xea\x1d\x90+\xaa\x90\xe6\x04\x95\x10z\xe3\
+\xf6a\x95]\x1c\xa8\xfb\xf4\xda\xb0\x5cQ\xce\xfb\xc7\xb4\
+\xcd\xb4\xdd\xb4]\x83\xe4\xd0~k\xfd\xf9k\xc2\x9aq\
+\x88\x806\x9d\x1f\xd3\xe7\xc3\x1ad\xa4\xf6Sz\xa6\xb3\
+\x8a\xc3\xeb\x1a\xbf_\xaa\x22|\x8eI%\xd1]\xbf1\
+\xcd\x87\x1b3\xd7\xd8\x9f\x82k\x0c.\x02'\xaei%\
+e\xde\x91\xf8\x12\x1b\xfc\xbc\x87\xb8\x08\xc4\xddd\xb9Z\
+Z3\x0e\x9b\x0f\x9d\x0f\xab- n]V\x05z\xfe\
+qX\x83$\xbec\x9ei\x05\x09\xf4\xb4\xa6R\x1b\xf5\
+\xfc\xff($\xcb\xb95\x19.\x15\x10\x14Q\xf9=3\
+#)\xce\xcer\x9e \xd6>\xa6\xf3\x0e\xd2r\xad\x13\
+\x17^t\x8eM\xe7O\x17D\xa2\x06\xe40\xea\x0bN\
+\x8c\x82d\xd0y9\xbf\xad$FM\x8a\x8a\x1f\xa6\xfd\
+\x84\xe7f2O\x91D\xce\x1b\xeaU\x09\x99 g\x9c\
+\xe2~>\x14\x96\xbe\x7fpXZ\x9f\x97\x87\xa5\xd7\x1f\
+\x85U\xe4,\xe7\x80\xb9+h\xf9\x15\x996\xad\xe3\x90\
+\x81\xa2>\xe2\xf5%\x049\x81\xf1\xfc\xd7\xb0\x86#\x00\
+\x84\x12\xe3\xa5\xfd\x9b\x84\x1e\x81\xf5\x8a\x1fh\x9f%\xae\
+\x84\xe3\x00Yp\x90f\x14\xae\x89c\x84(\x9a\x0f\x08\
+\xab\x08\x10\xfb\xa5\xc8\x97\x93\x10'\x91\xac\xfb_\xda7\
+\xac\x16>\x16{\x84\xa5q{cX\xc35D\xa1\x1b\
+\x7f\x80\xf3L\xad\xf0T\xfe\xf1/Vz\xc2\x130\x5c\
+1\xffp\xfea\xd3\x0byM\xc9\xb4\x03e\x1b\xce+\
+\x08\x01o\x00;\xe9\x03\xdeR*\x1b\xf3/\x0a9\xc7\
+\x8a\xe7\x94\x03`\xfc\xd5\xf8\xcb\xf1\x97\x19\xea\x98!V\
+\xcex\x0b\xc2>\xbc=\xac\x92\x9e\x8d\xc7\x865P;\
+2Q\xd7\x14\xf2\x08zF`\xc9d\xe3\xf3\x03Pf\
+\xc8\xa4&\xca,\x03\xe9d\x02:3\x82|\x15\x95\x0c\
+X\xa37P%\xae\x97\xd1\xa3bB\x00A I\xe0\
+\xfa\xcf \xc3=\x0bx\xff\xff8B[/\x0f\x10\xfc\
+~=\x19\x5c\xa7\x0f\xef\x00\x90\xca\xb2\xc8i\xfcw\x04\
+B8\xbe\x04\x00}\x80\xcfu\x10`\xaegv\xf4\xe2\
+\xd8\xe2\xd8\xf5:\xf0\xdc/\x01r\x7f\xddd\xf2\x090\
+\x91\xcb[[\xef\xcb\xf82>=$\x15\xb6m\x12\x0c\
+<\x07\x1c\x8f>\xa0\xe7z\xf9\xff-,[V\xc8\xf5\
+\xf8=\x89\x82:\xae% \xdau9ty\x15\xb27\
+\x10\x11\xdb)@#\x90\xf9k'\xdf\x06[8\x0e.\
+\x89&\x9e\x0b\x89&\x1cX\x02W\xc6\x97\xbf\xe7}\xfa\
+^\x22\xee\x9bqe\x1e\xf4=\xfc\xbf\x90cN\xeb\x03\
+\xf7\xbfqW\x09f>\xf52\x81\xfc\x1e\x121\x91\x18\
+\x99,\x0b\xb6nz\x80\x090\xb8.z\x85\xaf\x90#\
+\xab\x9e\xb3\xe4L\x17\xb9-\xc6\x0b\xc7\x9a@\x9e\xd6\x08\
+\x05T+\xfeS\x1b4\xcf\x9d\x00U\x15J68X\
+m\xdd\xcbM\xa2\xa6'\xc5\xe4~\x91\xb3B\xad\x80\xc0\
+\x9b\xebg^\xe1x\xaf\xbb\xbc\x85\xc4\x9c\x1b\xac/\xc6\
+\x97\xff\xab\xe4\x8c\xa5U\x00\x88\x19\xfb/\xf7\xb3\xfer\
+\xf5\x01\x8f{\x8f\xc8\xa1\xc7M\x07\x8eI\xddX\x7f\xcc\
+\x1b\xe6#\xf3\x82\x84\x11\xef\xc7\x01\xc1\xfd\xa2~\x01\x9b\
+<\x09\x0a8]\xd8/\xb9n\xe6)\xeb\x17\xce\x15\xe4\
+\xa4jkS\x19o\x05\xd2\xc1Y<4\xa4aYW\
+\xf8\x86&\x00\x11\xd2\xc0\xf3\xfc\xfbe\xfe\xcc\xa7\x855\
+\xef\xf78s\xbf\x94\xc0\x9d\x84.\xeb\x8a@\xf0\x80\xb0\
+\xea(:!\xa6D\xd6*\x95cd\xe2@h\x11\xc0\
+\xe2\x10\xb2\xfe\x09\xb4!E\xe2\x8b\xfd\x0925D`\
+`_\x072\xa9}\x01rY*d&\x03\xa4\xb2+\
+\x04\x82Y\x89O\x0b\xab,\xf1\xf4\xbc\xcf\xa7\x865\x88\
+5Z\x5c\x80\xb0\xaag\x1c21\x07\xfcz\xa5b\xe3\
+D\x19\x89M*_@\x9d\xd5\xf3\xe9^fz\xf3\xa9\
+\xa0\xe20\xe3p\xe0O\xfcKX\xf5\x1f\xfc\x1c\xd4\x03\
+ku\x04\x90\x1aJ\xac\xd0\x1b\x8e\x0c\x99\xd9\x9f\xa9x\
+S\xb1c\x7f\x04\xaa\xa9\xe7FB2\x93\xb8\xed\xda\xb0\
+\xfb\x93\xa0d\x9f\xb95\xd3\x83F\xcb\xc8\xa7\xb3l0\
+\x8e\x22\xe7\x12\x9c\x00\xac7\xcei\xf6->\x97\x96(\
+\xe6/\xbf\xffj\xb6\x1a\xd8\x92\xf0\xa0\xf7\x9c@\x0fh\
+*\xfb$d\x90@\x94\xfb\x16\x1f\xd4\x808\xaf\x14x\
+\x8e\x0f\x08k\x0a-\x22\x97\xf3\xfa\xc7\xd1d|D\x92\
+\xe8\xf9\x85\xaa\x83\xc61\xcb\xaaEb\xeb\x9ba\xcd\xfe\
+\x22\xee\x17\x12B\xf4\xee\x03i\x85\xe3\xc2\xf2b@\x94\
+Ap\x22;)\xc7\xdd\x0e1\x01\x0f\xd0]\x05\x1e\xc8\
+\xbe\x0d[\x86\xa5\xfb<\xa1\xe8\x5cO\x1b\x84\xc9\x11\xfe\
+U\xb3\xae\xf4\xbe\xd3\x13\xa6'NO\xc8\x81\xfc\xcf\x22\
+\x90\x9fv\x9cv\x98v\xc8\xe4\x81'\x0c'4\xfb\x1a\
+\xebS\x10\xe8\xf9\xa2\xe4\xf0_T\x0b[\x99\x9cp\xaa\
+\xc8\x92\xac[\xff\x98\x06\x09CbZ\x81\xd5\xe2\x0da\
+\x8d\xda\x14l\xe8\xa8Y!\xaf\xa6\x80\xdc\x89!\xf6U\
+\xce\x91\xafK\xcd\xe2S\x05\xea\x9d\xfd\xdd3\x9a\xc4<\
+\x097\x0aWT\x9c\xd7\x0fk\x12S\xf4@G\xcf|\
+\x83\xe8\xa3\x17\x1f\x92A\x17\x10P\xe9 \x91\x06\x22\x88\
+\x0a\xb5\xe4y\xc7\xeb\xc3\xd2x\xbc)\xacQ/\x10y\
+\xdc\xf4\xd2\xe9e\xd3\xcb\xaa\xac\xdc\xfc\xcb\xb0\x1c n\
+\x98\xd5\x04V\x0b\xab\x08\x9c\x5cynH\x04\xf13\xa8\
+\x98\x9a\x9bDr\x9d\x90\x03\x9a#@\x5cJ\xf9\xf3V\
+\xcf\x09\x98\xdf\xe4\x04\xcc\x86\xb9$T\x13\x02\xdf+,\
+\xf6YT\xef\xaa\xe6\x1c\x14\x07\xd4|\xc9r\x92R\xab\
+\x9b\xa8\xf2?\xfdB\x88\x92\xf7\x85\xe5\xc0-\x93/B\
+\xeai\x88\xfdNaRC[=\x07\xe2G\xe6\x842\
+\xfe\xc9\x8d:\xb7\x88O\xd2\xd3\xcf\xc8\x87\xf44\xb3|\
+\xa8\xfc\xa8\xe9\x03\xc9\xceK\xaf\xef\x0e\xab\xfa\xf1T\xe2\
+\xbd\xef\xcb?\x81\xe3a~\xd3\xfc\xe6\xcc\x8d\xa6\xfd\x1b\
+\xd2?\x12*\xc4?.\x0c\x90x$\xc1\x82\xbf\xfes\
+\xb5\xb8*\xb1Fb\x86\xd6\xa5\xf9\xd2\xb0\xc6\x1f\xa4\x02\
+\xfd\xadR vK\xccZa\xf5\x9c\xa5\xb5b\xfad\
+Xz=:,\x17\xa4\x93ed\xcb\x99\x81lYz\
+\xd4\xd2aK\x8fj\x0a\x9a\x14\xa2\x95\xe8\xb7\xec(-\
+L$\xbeYO$\x0e\xd4J\xe3\xc4\x16\x85eZ\xc7\
+V\x0fK\xafW*\xa1t\x83\xb8\x12 \x83\xa7 L\
+\x02\x17.\x12Z\x88(x\xe8\x9c\xa1E\xcc$\xc6 \
+\xc7@rA\x9e\xd8\xcbl\xabek\xe9\xdc\xb0\xba^\
+\x17(/\x83\xa4\x00\x00 \x00IDAT\x9f\x0cK\
+\xe3r\x9f\xb0\x9a\xb0wK\x19q\xc7\x9fsI\xc8\x85\
+L\xd4\x0aV\xce\x7f\x09K?8\xb7\x90+e1\x8c\
+/7,\x96\xc8\xed|\xb8\x1c\xec\xc3\xfb\xd4\x22 \xb9\
+3W\x0aDzC/\x85\xc9\x1f$\xc32\xfe:\xac\
+\xe9\x85\xbcNP0\xf5\xb8\x8d\x8f\x0bK\xef\xa3\x0c\xcf\
+\x0a\xaeK,\x9b\xe9\xb0(\x10\xad7\x97\x0c\xbb3\xd9\
+\x1c\xb8\xb0\xf7S9\x81\xe4\x86^G\x1d\xb4\xe3\x11a\
+\xb5\xc7\xca\xfa\xca\x04`\x0a<\x9d\xa1\xe4\xe7@PI\
+@\xec#\x87\x98\xdeXX\xc5\xfbJ>\x0e=\x8e0\
+\x89\x80\xfe\x8b\x19\xdbA\xa1]\xb1\xea\xe5\xb9\xb8\xcf\x9e\
+3\x80\x0a\x0c\x19|2\x99\xff\x0c*\xcf\x04\xa3\x22\xcd\
+u\xb3p\xb8nz\x18\xa98r_\x04n\x04\xb4@\
+\x85\xd9\xd0 \x1dc\xe1\xd1\x22\x00\x94\xf7n\x9a\xa0\xbd\
+\xa3\xc4}\x12`\x11\xb8\xf3\xbe \x02z\xf95\xc6i\
+-\xb3\xd8\x17\xc7sC%t\xfa@\x97\x00\x98\xff\xeb\
+{\xe9\xfb\x80\x0a\x87\x0fh\xec\x1d\x04q\xaf\xe4\x86%\
+\xf1\xa1\xf1\x9boR\xcf\xdd\xa1\x22\x85\xda\xca\xad\x00\xe5\
+zyn\x8c7\x8e&H\x0098\xee\x81\x82\xfc\x8e\
+^\xf3\xae\xe7\xdf\x01.\x95*]\x97\xafc;\x05t\
+<7z\x95z\x04\x05\xe3\x0c\x84\xedd\xf5\x9a\x9e&\
+R\xa3\x90\xc1\xba\xb0\x81\xf6j\x83vE\x06\xe83\x99\
+U6\xc4_\x0a\xe2FB\x03G\x18\x87\x9f@$\xc8\
+y^\xd7\xe8\xcf\x92\xa09N\x154A~\xcd\xba\x0a\
+\xfb\xf7\xfeau\xdf\x98\xaf.\x19\xfa\xe4\xae\xe7\x9f{\
+\xa3\x07\x1a\xfb\xc2\xb0\xe6\xb9\x82\xa4\xe1y\xe3X1\xbf\
+\x987\xacK\xc6\xab\x92)\x92\xb0*\x7fO\x8f?H\
+%\x90?\xbc?\x95/\x1cO\x9e\xc3\xda\xcb\xd9\xf7\xc9\
+\xa8\x9b\xac\x86\xf5\x0a\xd4\xff:e~I\xc8AV\xc9\
+u\xdd\xa4\x9f\xa3W\xcc\xfa\xe0>D\x02\x98fU\x09\
+\x8cXW$4\x80\xc6q\xa00\xef\xa8|\x03!%\
+\xd0\x06\xeaJbA\xf7cd\x082mp\x91\xbc\xb2\
+\x90\xd8\x98T\x88q\xe1:Q?Q\x02\xda\x883\xf6\
+S8P\x0e-\x10X\xefG\xccs\xe6\x97\xe6\xa3\x13\
+D\xea\xb5\xf7~\xda\xb7|\xb0>\xa9\xc4\xf2>$\x16\
+ G\xfdg\xea\x1b<WH\xdcX\xa7\xb0\xa0\xd3\xfb\
+\xab\xf3\xce=\xe5\x04\xcc\xdf\x0e\xab\xec\xe6\xd6\x15V\xab\
+\x9cU|\xa8\x1ch\xfeX%\x07V`H\xed\x18\x0f\
+z\xb0\xd9\xdf \x13\x02\x12\xce\xfe\x85\x83\xcd\xdfi\xdd\
+\x1aq'\x99A'\x92t_\x995\xfd\xfa\xa6\xc5\x81\
+\xf9Cb\x84J0\xe4\x898\x8a \xc9\x94\x18@\xf6\
+\xc8\xac\xe7\xc8\x1a\xbe)\xac\x81@\xe2\xa8r~\x00\xa5\
+e_\xc6\x81%\x90\x22\xf1\xc1\xb9F\xe2\x8f\x8a\x90\x12\
+]n\xfd \xf1\x8d^\xbb\xb8\x1b|n\xf3\xf7\xf8A\
+\x22\x9fB\xb5\xc0\x95\x5c\xe63\xd7\x09\xb7\x01\x9c\x0az\
+\xde&\xc7\xa3W\x9b\x0a\xa3\x02\x9dF\xed\xa3$h\xd8\
+\xc7\xb9o\x02n!s\xa2a'Zv,\xcf\x07\xeb\
+?l\xd2\xc8\xeai>\x83\x802B\x94J\xbd\x10&\
+T0\xcd\xd1\xf4\xfa\xb0\xf4\xfb\x97f\xab\xa4\xcaj\xe1\
+\xc2\xc1w\xc0\x0bb\x09d\x0e\xd7KK\xa5>g\xba\
+2\xacQo \xc1\x04\xa7\x84\x90\x02\xf3\xdd\xe6\x1d\xe7\
+\xb4\x9fN\xe3\xb44-eG>\xf72OO*\x01\
+\xc4\xf4\x8e\xe9\x9d\xd3;\x1a\xbf\xef A\xb5\xa9@\xcb\
+\xd1_q\x8ed\xfb(T\x9d\x22\x84\x13\xf2bQ\xc9\
+\x8d\x9e\xfbM\xc3\x1a\x993\xb1\x97\xcfw\x0d\xab\x01\xf7\
+\xe2\xc5a\xe9\xf3\x7f\x1d\xd6TV!\xc3\x84\xdb\x8a}\
+V\x5c%\xc3\xeb\xc2r\x22\xa5$\xea 1e\xff~\
+\xbb\xe4\xd8\x1e\x92\xec\xa1U%g\xde7\xac\x22h\xcc\
+\xa5\xf0iq\xa0|7\xed~\xdf\xad\x15\xf7\x9c0<\
+\xa5\xf1\x1bT\x015\xd9\xe39\xc9\xd3?\xb7\x22f-\
+\x0f\x18\x89\xa1s\xb4\x9e#`\xbb\x7fX\xd3\xba\x07\xc4\
+[\x15}*\x95\xf3\x19a\xb5\xb7\x7f: L\xc8\xa7\
+\xd3\xd2\xf7\x17\x85\xa9\x95\xe1\xb0\xdaj\x8cz\x80\xe3\x07\
+Z-h5\x91\x1a\x06\x05\x0az\xdb\xa7\xf7O\xe7E\
+@>?h>8\xeb\xa3\xa3\xff.6z\xcb\xbeA\
+\x8e\xa7\xca\xba\xfdD\xce!\x05\x90 \xb6,3\x87\x8e\
+\xbb\xc8L\xf3\xeeqTm\xe12\xeb?\xfe\xd0}s\
+\x13WE\x223\xdf)\x8ch?\x81\x83\xcd\xfb\xba\xb8\
+\xa7\xe6O\x84\xfeZF\xd4\x94\xfb?C\x5cm\x9a\xc7\
+\xc36J\xa8*13\xbd<\xac)\xe8\xa0\xa2#\xb2\
+Es!P\xb0\x01\xe9\x0aW\xca6:\xbf\xa9\xeck\
+^\x85\x98`\xde\xdf\xd42\x04\xb4\x9d\xf5\x89\xdc\x9c\xa1\
+\xe8\x04\xc2j\x89\x82\x03\x85^\x7f\xc6i\xf8iX\xf5\
+w\x16\xab\x85U\xf2\xc7\xb4'\xfe$s\xc6\x893g\
+\xdc*\xac\x92o\x9a\xd3\x84\xde|\xc8\xf8\x94@\x9d\x9f\
+\x15\xd6\xa8\xd9\x90\x08\xd1\xbcHgTI\xdc\xbdr>\
+)T-\xb2\xbfy\x9c\x0a\xe3W42\xbe$\xb2\xe1\
+L\xa0\x15P\xf3\xd0\xad;\xa88\xe0\xefP\xa1\xa7@\
+A\x01D\xe7\xa0\xfd7\xfc\x1a\xfcd\xd6\xa5\x12\xa2\xe3\
+}\xc2\x1a\xe4\x90\xfc\xe0\xe9\xe9aM\x9c\xaas\xc5q\
+E @o\xaa\xd7\xb52\x0f\xc8\xf1\x95\xe4\xcf\x8e\x85\
+\x06\x22sHn\xd6\xe8]\x22;\xc1\x81K\xe6R\x99\
+].\x90\x03\xc5\x95\x91g\x97\x96\x81q\xf3\xb0\x06\xba\
+\x80\xde\xa1*\x89\x832\xfb\xf3&%1`\x99\x88\xd3\
+tPA\x82\x82\x9c\xd0\xd6a5\xf3gvhA\xab\
+9\xa8\xed`\x90\xb0\x90\x83\x92\xb7\xb7s\x1b\x1dr\xc8\
+FX\xe0\xf4\xb8\xca\x91r\xa5C\x15lg\xa0\x08 \
+\x81\x90\xe2\xe8\xe1\xd0s\xf0\xf3 z\x07\x93\x83\x1c\x07\
+\x8dJ\x93KG\xeaE\xdb%\xac\x09\x98u\xf0#\xe3\
+a\x96\xe9\x1f\x16$\x87\xa1\x87\x04.8\xaa}/8\
+\x0esO\x22\xc6\xf7=KyeK-\x09\x08\xae\x9b\
+\xdfs\xdf8\xc2\x04pT^\xf9|2s\x04\x22L\
+|\x0e$\x1cQ\xc8\xf4p\xd4z\x92?\xde\x07\xb6~\
+\xee\xb7\xca\xd8-\xcf\xa8UR<\x028\x9e\x132p\
+\xe5~\xf9\x9c{\x97\x03z\xb8s\x09\xc8\x1d\xa0m\xad\
+\xcf\xbd\x93\xde\x0f\x12=\xd8\xda\x0f\xd7\xfc\xa0BE\xe5\
+\x90u\xc5\xf3\x07\xba\xd5'\x88\x94\x08\xb1\xec\x8bHn\
+\x1a\x9dT\xe4$K\xc2\x87\xc4\x0f\xefK\xcf\xfbj\x82\
+\xf0\xb1\xc1\x93@\xc1\xb1\xefU\x1c\xa8\x18\x13\xf0\x80p\
+\xc0\xa1\xa0\xd2\xc6<\xd8A\x07\xe5.J\x00\xf1\xbcq\
+\xb4\x09\xbc@\x0eQ\xd1b\x1f\xf9Z\xa9\x8c%\xf7\xa2\
+l\xd8\xb4\x18\x10H\x02\x9d\x16\x04\x98\xcc\xbe\x1d_e\
+\xa4\xcd\xd1\xc0< \xa3Nb\x8c\x0a\x08\x1b-d\x95\
+\xac3\xe6\x07\xcf\x89J4\xf3\x85q\xa0\x95\xa7\xaf\xe4\
+\xab\xc2\xefW\xe6?\xeb\x81}\x81u\xc8\xef\xf9\xbc\x1d\
+\x93C\xb5\xa3\x12Kwh\x02x\x02\x10\xe65\x092\
+\xd8\xfc\x17ZWT\xe4\x99G\xfc\x1f\xf3\xfa&\xabH\
+\x94}\x08\xd9R*\xdd\x90l\x82t\xe8\x13\x22z?\
+#q\xe0 \xa0\xe2\xc0<\x07)@`D\xe5\xf1\x01\
+\xea\xf5\x06\x1a\xad\x84\xc0\xfc\x91\xb0f\xbeu:\xf4\x03\
+-#\xec7\xecG\x04\x0e\xa8\xc7l\xa7y\xf8\x13\xbd\
+\xcfo5O\xf9{\xcb\xae:!Rz\xf5\xe4\xc8{\
+?Gu\x01\xb9\x22\xc8{\x08t{\xa8(\x01\x0d\x89\
+$\xc6\x8fy\xf5\xf7n\x9e\xd1r@\x22\x03\xf2\xba_\
+\x85U21Wd\x15\xf0:\x91\xc4\xb9H\xef<\xe7\
+\x14\xbd\x8c \x89\x90I=\xa9848LV_!\
+1\xa1s\xd0\x15L\xc6\x8b}\x02\x920Z\xffXO\
+\xb4F\xb0\xaf0\xaf\xd9G\x84\xc4\x0b\x08\xeb\xf0\xa2\xc6\
+\xa1&a\x034\x1c\xfdi\x91\x82\x99\xfc\x0e\x99;\x12\
+\x0e\xcc\x7f\x12y*8\xb8\x15\x82s\x80\xcf\x11d\x12\
+\xdde\xb7\x080\xee@=\x91\xcb\xa2r\xcd\xf5\x22K\
+\x88_\x01b\x8ey-\x88\xbd\x13c\xac\x07\xf4\x96I\
+\x88\x80D\x02)\xa7q\xf2~\x08\x92\x04\xe4\x22\x9f\xc3\
+<\x05Q\x83\x03\xc9\xf9\xdc\xefgp\xc8<'\xac\x16\
+H\x80\xdc\xe2p\x12\xb8\x8f\xff\x1e\x96\x1d\xc5\x82\xe8\xf8\
+Y\x91\xb7\x1b\x9f\x19\xd6\xc8,\x0bb:\x5c\x13V\xe5\
+\xe2\x98\x87\x86X\x83\x10\xa1\xe2GB\x82\xfd\x8f\x80\x9b\
+\xc0\x03\xa4\x04\x01\x02\x81\xc8K\x94HP\x8b\x8a\xfd=\
+\xc8\xb6\xe0\x86\xe1~\x05\x85\x9f\xfe\x10\x96\xf7E\x12z\
+9\xc1\xe8@\x09\xb26\xce7\xe6\x19\xa4\x95ps\xc0\
+9\xb1R\xfb,\xe7\xccQ)\xc0{R-\x1cAJ\
+\x96\xcf\xa3\x8b\xe5\xc8G\xe0\xf9\x8d\xb0\xf4\xbauX\xd3\
+\xa2\xc6~\x81\xdfE\xc2\x1c\xd9>\x91|9a\xce|\
+z\x8f\x10\x22\x9a'\x96\x1b\xa55\x16\xa8{$\x04\x1e\
+\xd2\xf8\x0d\xff\xa9\x84\x12\x15J\x12\x99J\xb4\xa2\xdf\xee\
+D=$u\xa8E\xb0\xfe)\xe4\xb4$\xe0m\x82\x9a\
+\x9ef*\xa0\xec\xd3\xda\x1f\xa6\xb7\x85U\x84Rn\xc1\
+\xf8\x88\x12e\xe9yL\xbf\x0f\xab\x08\x138\x04\xdc:\
+q\xef\xb0\xc6\x7fT\xa2\x04\xb2SC\xb5\xa3\xe5\xf8R\
+%\x80vW+\xc2k\x9b\x0a\xfc\x0d\x22\x0d\xd7\xba\x9b\
+/+\x95j\x12>Fh\xf4\xb2\xc0\xec'\x9coJ\
+\x14\x12_P\x81\x9d\xee?\xddoJ\xcfq\xdck\xdc\
+{\xdc\xabA\x0a\xc1\x05\x82\xdf\x06y0\xfe\xe9\xbb$\
+\xcf\x09\xe9*\xfe\x0b\xe7\xca\x7fI%F\xac\xffN<\
+=@\xdc0\x17\xcb\x9f\x92\x1f`\x0e\x08\x90R\xdb\x17\
+\xbf\xd9\xad;B\xbay\xdc\xf0o\xee\xab\x04\xd5\xeen\
+\xc1\xa35\x8f\xf3\xbc<_\x90\x10\xac_HvQ%\
+`>qNrN\xe1\x97t\xad\x9e\xa8q\x90\xe0\x5c\
+:.\xac\xb6.\xddzaX\xe5\x94\x98~\x1cV\xc9\
+\xef\xa6\xdd\xc3\x1a2S\xc8\xb5EZ:|$\xac\x99\
+\x9f \xbe8\xaf\x1e_\x10I\xf3\x0b\xe7\x17\xcc1.\
+w\x0c\xcb\x09\xa5\xe7d\xc4+\x09\x85\xe7\x865\x89[\
+Z\x06\x08\xd4!Ie}sN\xe2\xff\xb2\x0f\xc01\
+\xc28\xd0\xc3\x0fW\x0f\xfb<\xf1\x1c\xdc\x16$ZI\
+\x10\x1f\xaf\xd6y!\xc8\xc6\xc7\x86\xa5i\xf0\x8a\xb0\xf4\
+\xf7w\x08k\x0a\xe6\x9cS\x9a\xc7+s\x8f\xca\x19M\
+F\xf8m\x05B\x09\x94\xc0\x10?6\x9a\xaf\x08Rs\
+\x99z>\xd1W\x06\xea%\xa8\xc2\xb8GXC\xb6\xa5\
+\x00\x85\x03s\xfc\xd1x\xc5x\xc5\xb2\x8aU\x81 )\
+\x93\xe4\x1e\x0b9x\xc3+\xc3\xea\x0d\xa1\x13\xeb\xcc9\
+P@m`\x0e\xd4\xb9aA>L\x9a\xa6\x9e\xeb\xe1\
+\xbd\x05\xe26?\xbf<xo\x94\x1c\xb0 \x0c\x800\
+S!\xbe\x8f\x0e\xac\xbb\xca\xe1\xeb+\xf1\x04\xce,p\
+6\x12\xbep\x90\xf8\x1c*\xc0\x1c\x98|\x0e\x5c\x028\
+\x8eT\x0e\xa8\xe8\xb3\x01\xe3H\xe3H\x12\xa0r\xb0\xf6\
+l\xf6\x04\xce\x04\x18\xfc=\xf7A%\x8c\xcf[\xb7C\
+ \xf0>\x04\xc8d\xb4\xb8/6\xd0\x9el\x8e\xc0p\
+\xd08t\xba\xeb\xae\xf4\xd3\x12\x8e*\x01\x15m^\xb9\
+>\xbe\xe8]\x86\x0c\x04h#\x81\x07\x0b\xbd\x97#$\
+P\xabdx%\x00\xa4\x92O@\x08\xf4\xe9N\xee\xc5\
+.\x7f\xcf\xfbR)\xeeU\x1d\x18gz\xecv\x15\x19\
+#\x7f\xa7\xca\xec\xfc\x8b\x02\x85s\x22\x89\xcf%@\xa4\
+\x05b\xbf\xd0\xe9hz\xc9A\x12\xdcF\xf3\x85\xe77\
+w2oT\xbex^=[+\xf7\xcf\x86\xcf\xf8p\
+=lP\xdfV\xe5\x90\x0a\x22\x1b\xdf7\xb5\x11\xbeX\
+\xbdR\xcc\x13Xv\xa9`!\xcfF\x86\x92\xc4\x07\xd0\
+\xf4O\x17\x87\x93J\xc1*\xbd\xca\x90\x0bj\x1c\xe6S\
+\x04y&\xd0\x03b\xbfw\xc9\xd0z\x1c\xd8\xf8A\xa0\
+\x10(\x138\xf7-6\xdc\xff\x0ebe\x07\xf2\xd8\xb7\
+\x8c\xec\xa4\x8a&\x15\xf3~\xbeS\xa9\x22`f\xdd\xf2\
+\x5cy.$\x14\xb6)2BF^\x80\xc4\xe0\xfd8\
+\xa8\xfb\xe7\xc5x\xf3EbC\x9c\x00\xee\xe1\xaf\x1c\x06\
+\xe5~\xd7_\xce\xb2\xef\xfd\x92\x84\x04\xfb\x03\xa4\xa5 \
+O8\xd8\xe9\xe5\x87,\xb0\xaa\xaf\x14\xf9\xb5\x83\x86\x03\
+\x83\x1d\x1a2X\xc6\x89\x160\xab<\xe0p\x83\x08a\
+\x1c\x09\xe8\x90\x19b>\xb3?\x82\xc4\xe1\x80\xa7\xb2\xf6\
+p\xe9\x19\x03\x0d$\x00g\x9d\xb2\x0f\x00\x9dV\xc0m\
+\xe8\xa2\x1c\x09#R\xc4\xcemu\x18\x02g\xd6\x13\x0e\
+\x13\xe3eN\x119<\xec\xf3\xea\x89\xb6\x9c\x10\xad3\
+\x0ap}\xee\xaa\x07\xd4dl\x90?\xb1\xde\x90\x9b\x13\
+\xa4\xdd\xe4B\xaa\xd4BZf\x1d`\x12\x0e\xcck\xd6\
+\xd1\x05aM\x22\x8f\x04\x22\x81>\xfb:\x90h\x91\x18\
+\xc2\xcdc\x12<\xe65\xf3\x92@\x9bq\xa6\x15\xef\x8d\
+a\xcd\xbe\x02\x00\xee\xd6\xb0\xe6\xfap\x98\x09\x8cq8\
+\x816S!\x83l\x10d\x01\x09\x82^\xb6\x94s\x89\
+\xc0\xe1\xc4\xb0\x8a\x18\xf2\xf3\x02\xf1\xc8\xdf\xf3s\x027\
+\xc8\x0b\x95\x88tK\x07\xe4M8\xb2\x0a\xd8![j\
+\x0a!\xb9R\xeb\xc0N\x95^\xb3w\x0b\xbaoy\xbb\
+^n\x0f\x7f\x00y4Ap\xdd\xaa\xc5>\x8d\x0a\x0d\
+\xa4r\xaa|\xe30\x82\xf80\xc9\x1f\x9c\x19\xaal\xe1\
+\xd8\x0f7\x87\xd5\x04\x9fU\x0dh5\x94\xfcbr/\
+Kb\x00\xbf\xe8\xc9\xea\x8de^\xf0\x05\xd2\x86\xc4/\
+\xfb \xf3\x85\xf3\xe02\xf5\xe4\x0ba4}-\xacV\
+\x8e\x8d$\x82\x8c\x0c2\xccmE\xc6\xf6\x18\x91\x9d\xb1\
+\xfe:96\xcb=\x0b\xa1\xe1s\x9au\xcc\xbc\xe1\xf5\
+\xd7j1\xfde\xe1R\xca\xdcB[4\xe7\x80H\xa9\
+s%\xfc~\xe9u\xffd\x07\x08\x8a\xfe\x15\xb5.\x9d\
+^[x\xf2\xa7\xecQ\xe5\x01\x8d`\xe5\xfa\xd4\x22a\
+d\xdd\x81z>\x1a\xffq\xff\xb0\xaaw\x7f\xeb\x0b\xc2\
+\x1a.\x16\xd8\xc7Qu\x90\xff\x8c\x9fe\x84\xab\x12)\
+V\x1d \x80\x01aG\xeb\x13\xfe\x02\x95a\x90E\x92\
+\x17u\xcb\x00=\xed/\xd2s\x81\x84X\xad\x1b\xe8\xab\
+\xbb\xf2\x0a\x097~7\x88\x10\xe6\xefea\x15Q2\
+=/\xacI\xb4Fa\xf1\xd9\xd9\xbf\xf8V\xf8\x17&\
+\xe1S\xab\xce\xfc\xe7\xb0\xf4\x7f/\x09K\xdf/\xcd\xe3\
+<6\xf1\xcc\xa3U\x09\x069\xa5\x8a\xae\xfd~\xf6s\
+\xce\x0d\xfcR%\x0c-;\xae\x02\xd5\xe2!a\x81\xb8\
+\x1a\x8f\x1e\xd3\xfc_y\xf6\xd2YKg7\xf2\x9a\x04\
+\x8c$b\xd4\xd23\xdfm\xdei\xbe[\xd3\xc2\xa1\x82\
+\xa4[b\xe0\xa8\xe8\x902\xf3\xa6%P\xf5sg]\
+\xe9\xfc\x85l\x90y\x04'A\xda\xcbK\xe0\xbeR\xad\
+\x84J\xbc\xa4g[Z-9\xc79\x1f\xd9_{\x84\
+/\xadJB\x8a\xd1\x12\xe1\xb8\x01\xee\x01\xf6\xa1+\xc3\
+2\x02\xe7\xa0 o$1`\xf2\xc9\x13\xd4\x8a\x03\xb2\
+M-k\xe3\xd5a\x99\x83!Ym\xf5\x9e\xde\x19\xd6\
+\xac\x7f\xb8\xdd\xd8g@\xdc\xc0e\x22\x04\x84\xb9\x8a\x94\
+\xd04\x89\xbd\xf6w\x12\x0c.@\xb0\xbf\xe2\x7f\xd1\xd3\
+\xaf\x16\x16'<Q;\xd2\xba\xe0\xf7Y]o\xdf\xa6\
+`\xcbs\x05\x19)u\x1f'\xdex\xfeje\x01\xd2\
+\xef\xe7\x04\x17\x0b\x7f\x8fz\x8c\xb8;H\xf4\xb3^|\
+\xbe\xe0\x07i~\xaf\x1c\x8f\x18\x1f3>\xa6\xc9L\xbd\
+\xa7@\xa0\x86\xef\x85UGo:n:v:6?\
+\xd8\xe2\x10(\x83\x92\x96}&g\xe0\xc1\x8d\xfb\x845\
+=\x83\xca\x94\x8d{\x96\x84\x00\xf2R\xe3\xfd\xc6\xfb\x8f\
+\xf7od>\xd8\xf8p\x00\x91\x07\xa4\x95\xe0>a\x0d\
+\x84\x8c\x0d\xea\x18A\x1c\xb6\xd5\x86\xc0\xc2\xe5\xfa\xc8\xc4\
+\xb3\x91\xe1x\x00\xa5\xdaQ\x13\x9b\x00\xe1\x8b\xd21'\
+\x90\x97\x03c\x99!\xc9\xbb8S\xa3\x9e\xd3\x99\xc0]\
+\xd0\xd2UH\xc7p\x5c\x15\xb8\xb219q\xd1\xcbV\
+qpQ\x99\xa7\x97\x07Y\xb8\x03\xe5X\x93\x91T\x86\
+2m2e\xe2\xff\xebr\x08\xb1_9p7XN\
+\x167l\xa2\x1e\xd8Q\x9f\x87\xe3\xf3\x17\xb3\x87\x97\xef\
+\xef\xb4\x1c\x11\xe2J\x1d\xd7O\x80\xde\xcb\xfb\xf1\xf9\x04\
+P\x8c\x87\xb8\x16\x06\x1c\xfe\xad\xb5\xb1\xe8\xf3pp\x8d\
+\x08\xc0\xc1\xeb\x03\x81\x95\x9d>=\xbd\xc4l\x5c}O\
+\xf6Z\x1d\x19 \x15\x0a\xae\x93\x8d\x9f\xbf\x93\xfa\x80\x03\
+\x1d\x1cf\xfe\x0f\xb2A\x1c\x9e\xdb/\x87\x86\x0f[\x0b\
+Z\x0d\x14\x96\xe7\x80\xfa\x04\xad*T\xb6\xd8X\x04\xfd\
+\xf2\x01\xc4\xfd\x90!\xe4\xb9\xac\xdd\x91\xa91\xfe\xbc2\
+nd\xb2\xa9\xf4j\xa3w\xe2\x85\xe7N\xa6\x9d\xf9G\
+%\xff+\xaa\xd4\x830!1\x07\x14\x89\xbfg\x9c\xa9\
+\xe0s\xb0\xb1NpT\x7f\xa5\xfb\xa5\x82t\x98zr\
+AR\x90A\xa5b\xa3\xca]\x0a\xd3\xca\x81\xf7QA\
+By\x1e\xac\x87u\x9c\xb0)\xcf\x93\xeb!\x80\x221\
+\xa0\xbfsk\x0b\x0e1\xf3\x94\xff'\xe0\xc5\xf1 \xc0\
+`\x1d\xf0<\xd9\xc76ubi\xb9\xfc\xe2\xa6\x1d2\
+\x80D\x0f\xefG\xc0\xd4C\xf0{\xd2I\x0e&\xb8J\
+\xea\xbc\xa3w\xb1\xdc/\xc8\x17\xd6)\xbf\xe791\xff\
+Idq\xfd|.\xdc\x08\x1c\x80 ,\xee\xa8\xeb\xdf\
+K\x10J\x1c\x03t\xd7\xef+\xd9WH\xfa:\xae\x19\
+\x93\xc6\xf1E\xa0G\xab\x15\xe3\xc180^\x8c\x0f\xaf\
+<G\xf61\x02\xb2+$+\xa9\xdf\xbbR,\xd2B\
+'\x18ha \xe1A\x22\x84\xf9N@\xca\xc1\x8f\x5c\
+%\xf3\x92\xf5\xd5\xaf;\x1c\x10\xd6\x11\x7f\x0f)\x18=\
+\x80\xb4\xb0\xc0B\x0ey l\xec\xcc?=\x8fPW\
+\xcf\xfa\xea\x92\x993$\xf7\x03a\x8d\x83(\xf6a\x02\
+>\xf7^CN\xc4:\xc0\xa1\x87\x0bA\x95n\xcb-\
+\xf1\xbcH\x08\xd0\xc3N\xc5\x87u-\x07\xcc-*T\
+8 Yd\x9e\xe1(AbxeXu\x84M\xf2\
+\x07\x92A\xea\x0c\xae\x94\xf7j' \x9c\xe0\x0e\x80\xa5\
+\x9f\xfd\x02r<\xc8\x16I\xec\xb0\xbe9\xb7\x08\xd0\xd9\
+7\x98\x87\xcc?\xfe\x9ey\xc2~\xc3:c_'1\
+\xc4~\x8d\xdc\xa4\x1cB\xab\x17\x89\xe5\xdb\xf2L8\xa6\
+\xf2k\xe8\xdd\xf6\xba\xa2\x12\xdb\xab\xb6P8`<\xd8\
+'\x98\xc7 \x80\x088PY\x01\x22\x8e\xfe\xb8\x1cn\
+\xb3\x84\xd3zG\x0b\x04\xfe\x91\x12!F\x04\xc0\xa5@\
+\x80\x8a\x0a\xc7\xdeJ8AvJ\xe2\x10\xc85\xe7\x18\
+-\x03$\xb0\xdf/\x99B\x05\xec\xf3aa\x8dz\x82\
+\x12\x86\x86\xdc*Q\x0aY\xa3\x11=\xb4\xae@\xf2\x88\
+?\xc0\xbe\xd7s\xfb\xf4\xaaH\xf8=\x90(_] \
+\xe3\x9e\xaf\xea\xdd\x1e\xae\x0d\x96\xac\x9a\xc0\x0bu\xf8\xac\
+\x93\x9e\xc2\xdb\x8cT\x884\xcb\xfb\xb4^\x03\xb9\xf6\x82\
+Rh\xa2\xa5'\xefj\x9b\xd4\x0a:\xef3\xben|\
+\xfd\xf8\xba\xaa\xee\x92\xb9X\xd2\xbc\x1b?\x9e,\xcd\xa3\
+\xf1ya\xb5\xa5\x83\xc0\xd2\xe4b\xec;\xccc*\xb5\
+\x0a\x14,;\x0a\xc2\x92\x1eq\xb1\xe5\x83\xfc\xc8\xde\xc0\
+\xa8\x02\xe1!U\xad\xc02h\xb4\x8aD\xef\xf9\xef*\
+[\xfd\xbc}\x98\x02\x9d@\x1e}!\xd9\xe7\x9b\x1ee\
+%@\xf2U]\xd3\xc8\xf8\x12\xc8\xa2\xf2\xc2\xfc\x5cd\
+v\x8e8\xff\xbf\x9f\xcf\x7fZ\x9c\x02\xe1wcV\x01\
+\xc8\x5c\x1d\xb4\xde8@\xbe%\xacQ[\xd8\xaf\xb4H\
+XN\x0f\x8e\x0d\xceE\xd6/\x09[\x026\x90I\xf8\
+\x1f\xe2\x06\x01\xc9B\xa5\x1a$\xda\xf4\xbd\xc53\x17\xcf\
+\x0c\xf2\xc2B\x92\xb7\xf4\xac\xa5\xe3\x97\x82\xdc|\xedq\
+\x9dq\xed\xdck\x7fc\xf4\xdaO\xe7\x95^\xfe,\xbe\
+\xf8\x88|_\xaf\x8a\xfb\xa2\x05\xd22t\x92\xa94R\
+O\xfb@DQ\x11G-^\xa2V\x937\x84\xd5\xc0\
+\x9as&=\x9d\xcc\x956\x1c\xaaD\xfb\x8b\x94`\xa5\
+\xe5\x04\x04\x15\x1c>\xec\xdbB0\xb9\xa2\x0f\x12\x90D\
+\x92\x12\xe6\xd36a\x95l\xdc\xe72\xe3\xca>\x0e\x87\
+\x0f\xe7\x10\x88R\xfe^\xd7C\xeb\x8f\x11i\x8a\xa7H\
+\x80\xa5O)\xad\xb0\xf7--\x87\xf3\x8b\xc2\x9a\x84\xca\
+1aMBD\x09dC\xffI\xf4R@\x10\xa9\xa8\
+[\xf1H\xd4\xe8\xf7\xe3Qa\xe9\xef~\x1e\x96\xae\xef\
+\xec\xb0&\xb0\x86K\x062D\x9dCV?\x11B\xdb\
+\x09g\xe2G!\x92\x9cP\x22\xf1\x8c\x1f\xa1\x04\x0c\xfb\
+\xf2\xbcwX=?\xbd_k>\xd0\x8a\x82\xbf\xb6\xf4\
+\xa7\xb0\x9a\x98Z\xec\x1dV\xb9]V\xce\x1f\x9a?8\
+\x7f\xb0!\x97\xd1\x06\x99n\xef\xac\xe9\xac\xe6\xc0\xa7\x82\
+\xa9\x9eI\xd8\x09\xc7W\x8e'\x8f'7\x10\xfe\xdbJ\
+\x0f\x1a\xc8<\x99\xbb\xafL_\x9d\xbeZu\x80\x87\xdd\
+K\xc0\xe3\x84\x01\xbd\xf7\xe81R\xf1 \x80\xd6\x04\xa4\
+\xc7\xce\x19y\xe48 \x1b\x02\xdaG\x05\x9e\x83\x1d\xc7\
+@=\xe1>89\xa0\xe8myKX\x03\x19$@\
+\xe0 \xe4`\xa5\x17N\x1bJ\x86\x01\xc7<\xbeR\x07\
+\x08\x99z2aT\x1c\x99\xe8\xda\xa0\xdd\x8bJ\x22\x80\
+/\x02\x8b\xf5\xcc\xea]\xde\x07\xc4\x04\xd0?\xde\x17\x07\
+\xa1\xd7y_\xaf\xd3u\xefI\xde\x08\xfcz\xf9\xb3\xbe\
+\x82\xc5\xe7\xf0>\xbd\x9e8\x8e\xc7_\xacRP\x12 \
+kwd\x88@X\x91\x87\xdbX\x01\xe9\xf6\xcb\xd9\xcd\
+\xfd\xf7\x1c\xd8U\x05\xa1\xdc?*\x00$\x02z\xd9:\
+\xbeg<p\xa4\xb9\xfeJ\xe2V*\xf5=)\xa0*\
+\xb6\x03\xff\xcfu\xe1\x00\x12\x881nlt\xf4^+\
+ 3D|\x97\xae\x87z39r\xb3\x9e\xf7\x8df\
+\xf3/\x99<*\x1c\x0a\x1c\x0c\xfd'#\xcb+\xf3\x81\
+\x80\x88\xe7\xd6W\x84\x19\x179f\xae\xf4\xd0\xda\xa3\x84\
+\x94\x0f>\x02\x182\x94\xcf\x08k>\x97\x0a\xbe\x0en\
+2\xc9i\xce\x17d\x06\xe3\x81#\xd2\xb5&\xd0\xb2c\
+$\x01\xf2%\xef\xd2\x01A/\x9f2\xc6vH\x08\x5c\
+\x808\xf3\x5cup\xbbRO\xa0\x0e\x14\x9dq\xa7\xf2\
+J\xa5\xe3=+\xceYqN\xf3\xfe\x04\xd2$\xd4\xee\
+\x1a\xd6\x1cT$N\x98\x0f\xec3}\x02\x09\x04\x0a\xf3\
+\x9c\x8c:\x81\x01\x8e<\xeb\xb3\x7f~\x92\x05\xf4\xef\xb9\
+\x1ed\xb7\xf8\x1c\x12\x1e\xbd\x9a\x81\x900\xec\xd3\xae0\
+q\x803\xdfY\xbf\xec\x17\xec#\xe8\xd1\xabw\xd8P\
+\xc4\x0d;D\x0c\x09\xa4\x87)`\xe5z\x1e*\xc4\x06\
+\xcf\x05n\x00\xee\x9f\x00\x0a\xc8-\x09VA\xcd\xed\x08\
+\xb2\xcf\x90H#\xe1\x01\xc2\x06\xb2\xb9N\xf7\xde\xbd\xd7\
+\xe8\xf7\xd2Z@\x82\x199 9\xbe\xc3\x93\xc3\x1a\xc8\
+\x1d\x89V\x02q\x02(t\xbeI\x1c\x90(`~\xb0\
+\xce\xb8n\xf6\x19\xf6/\x02\xc2\xef\x86\xd5\x16\xb8y\xcd\
+\xb0\x86m\x98\x04\x19\x08\x12\xb1%;\xc1\xad\xdf\x83H\
+\xe0\xdcr\xc5\x9e\xff\x87K\x84\x00\x94\x9e}Z\xdex\
+\xce\x92U#\xe02K\xbd\xc8\xe0\xbc\x0f\x89\xb3\xc0\x8e\
+\x0a\xe7!\x81\x96\xa0\xc9Fx\x90x\xef\xe5\x08\xe9\x0d\
+?,\xac!g\xfcqX\x93\x90\xa0B\x8b\x83E\x82\
+\x99\xef\xf5\xbc\xa6\xdf\x84e\x07{\xedp\xb0\x0d\xe9^\
+\xb3\x93\x9be|\x80t\xb3~70gGy\xe5\xfc\
+\x00i\x86\xc3\xc8<\xe8[\xf8DZJ/)\xb2s\
+F\x90|\xb0\xf8Y\xc3Ea\xd5\xff0y)Pl\
+*V\xecs\xac\xcf\x1eYB\xe2\x98\xfd\x05u\x0a\xd6\
+9\xeb\x8a\xd61A\x86\xed\x88\xab\xe7t\xde`^\x7f\
+\xde \xcbv}=\xcbv\xb1/w=\xc4\x90-\x8f\
+o\x09\xab\x88J\xee\x07.\x86\x08\x13\xb3\xac4\xaa\x01\
+\x8c\xafH\x02\xad6%ROH\xd6\x5c\x99\xd4>\x06\
+\xd9V\xda\xcb\xf2yK\xa1\x88^\xe19\x7f5\xa4e\
+\x14\x8c\xd4\xdbm\xa4\x02\xfb2\x09PZB\xe8U\x87\
+\xc3\x06\xee\x0b\x12Z\xf4\xce\x82\xb0|FI\xbc!C\
+=\xfc~\xb8!\xcbJ\xc2\x96\x0fWM\xf2\xfe2i\
+XT\x84Oi\xc8\x02\x95\x80\xc8\x1c\x1e\x9f\xce2\xc6\
+\xeb\x04\x84\x1e\xbfr|wXC\x82\x1dH\xc1]3\
+\xb2\xe9\xc3\x81l\xe2\xfa\x96>\x17\x96\xfe\xee\xf9a\xe9\
+\xf9<9\xacV.\x9d\x08\xe9\xb9\x80\x98\xbf\xc8\x5c\xde\
+PHW\xf1_\xe0\x0e\xb0\xce{\xb4\x06\xa7\xf57\x1f\
+\x15\xa6yv\x07!a\x7f\xd8\xec\x13\xb1\x0b\xdc\xdc\xb4\
+\xac\x02\xf5.\xa5\x89\xca\xad\x10\xb3)\x05\x8a\xe3E\xc9\
+>#2\xbctnL\xdb\x86\xd5\x0a:HA\x93\xd3\
+\xe9sr \xff\xb7\xbc\xde\x0b2\xe0\x9c`-K\xaf\
++\xc3j\xe2>\x98 \x82\x0b\xc2\xef\xb3\x8d8\x19v\
+/\x88a\xff=\x01\xacT\x13|n\xb2/\x5c\xae\xc4\
+\xa1\x02\x5c\xef\xbb\xb4<)\x91\x19\xdafY\xddL\xff\
+7\x1d\x18\x96IVs+\xd1\xf4\xbb\xe9\xfa\xe9wY\
+\x8d\xe4)\xa1F\xb2\xf4\x9d\xa5o/}\xa7i\xc1\xb9\
+!,\xfd\xdd9\xd3{\xa6s\xaa\x1a\x87I\xf66\x0e\
+\xab\xc8j\xab\x91\x89\x83\x0d\x0e\xa3q\xb3\xb0\xfa\xf9\xd3\
+\xcb\x0aT\xdej@g\xcb\xcf\x01\xb1\xc7\xf9\xa5ua\
+.\x1b\xce)Z<\xd9\xbfP\xa7\xc1\xff\x83tQ\x08\
+\x03'|\xc4\x81\xe1\xf8\xaa\x22\x12\xcb>\xc0>\x05I\
+\x1d\x09J\xf9\xdd\xc8\x5cBj;\xbd9\xac\xcaB\x1a\
+)\xfc\xdfBZ\xe1\x87\xc2\x0d\x83:\x0d\xf2\x86\x92+\
+uO>~1\xf7)\x7f\xd0\x091\xce\x0d\xe6\x81\x12\
+\x0f\x90\x13:\xc1xtX\x93\x88B\x9d\x02$\x0d\x09\
+\xfb\xdd\xc2j|\x87\x1c \x88P\xd4*\x1cO\xa0\xb6\
+\xc0~M\x02\xac\xe7|\xa1\x85\x16N\x0c\x12YpM\
+p\xce#\x17x^Xm)\x9c_\x16\x16\x09\x00\xb1\
+ :\xa3J\xe6\x9e\x00\x5co0\x1e\x1a\x96^\xd7\x1b\
+\xd7\x1f\xd7o28\xc8\x8a\x88\xbdt\x9e\xca\xc6l\xa8\
+\x1c\x13K\x13\xc6\x90EM\x18C\xf6q$TaG\
+\xff\x97@{xyaE\x9dO,\x17\x9e\x06\xbbd\
+z\x1e<\x1f2\x1f\xd2T\x16\x09T\x99X\x9bvP\
+mz\xc3\xa8t\x1f\x91\xadB\xf2\xa8@\xfcP\x07\xd4\
+\xd3\xe4\xd8H\xee\x89^4\xf7\xb2\xdeY\x07\xcb\xd5\xca\
+\xb0v\x07\xf4*\xd0x\x12\x00\x1d\xe9\x9d\xc9\xdd\xc8\x90\
+\xf2\xff|\xe1\xc0\xe0\x98\xf0>T:j\x00_\x1c\xe3\
+M;h\xfbz]\xe0\x8e\x03\xcd+\xff\xc7\x81\xc9\xf5\
+\xf1\xf7=\xb4\xbc\x87\x1e\xe3\xa0\xac\xae\x0d\x86\x84\x05\x09\
+\x04*\xf3\xf4\x9e\xf2|\xee\xd4A\x9a\x81\xd6\xf7\x8e\x18\
+\x01\x0b\x81&\x90\xef\xa1#Q\xe4~\xf8\x7f\x1cp\xc6\
+\x87\x00\x87\xf7\xe3\xfdq\xb4\x08x\xb9\x9f\x9d;28\
+*\x05[,\x0f\xf4}\xff\xbd<\x1b\x81(\x89\x03\xee\
+\x9b\xca\x03\xe3\xcc\xf3\x06as\x83\x0epU\xfaQ\xb1\
+p\xc2\x0brL6Z\xde\x87\xe7A\xc0\xbd\x9a\xbe'\
+\xc1\xa0\x9exC\x00A\x12\xd0sHB\xa5'\xb1\xd4\
+s\x9c\xaf/\x1bqP\x84\xe6\x84\x192B\xcc\x875\
+:\x19<\xe6\xcb\xffi\xe3\xe2\xbe\xd8g\xbe\xac\x8a\xd7\
+\xbbU\xa1|In\x22\xa8=\xaf@\x8fq\x88\xab\xdc\
+aI$\xed)\xfdl\x02T\x05\x22\xdeO`aW\
+\x0f\xae7\xdcst \xd2\x12\xc4\x01\xd5\x93@\xe28\
+\xe2 \x90P \x80\xfd\x9b\x9e\x9b\x12R\x96\x0f\xac-\
+\x04\xe5y\xf3\xff$\x22\x80\xb6\xf7\xf2\x9a\xac\x97\xbft\
+\x1b>\x01\x07\xd7G\xc0\xcf\xfb\xf3~ F\x98o\x5c\
+?\xcf\x91\xc4\x01\xf3\x8f\x04\x03\x95A\x91N6\xe4\x84\
+$\xaeJ\x02\x83u\xca\xfb\x91\x88\xa5e\x81\xde\x5c\x1c\
+m\x02\x7f*+\x5c\x0f\xe4\x7f\x04\x0e\xaa\xac\xd1\xbb\xec\
+\xc0\x90\xe7\xc2x\x12h3\xdf\x81\xbe\x09\x11e\xd9X\
+\xee\x87\x00[=\xf0\xab$BIt\x91P\xc5\xc1\xc1\
+a\xa6\xe2\xaf\xd6\x15#\x09T\xa9\xa3\xa7\xd2${T\
+\x82\xa9`s\xb0\x13\xb0J\x8f\x98\xc0\xcd\x95zTj\
+\x90MR%\xcf\x95}\xf6\x9f\x1ei\xc5zg\xdd\xea\
+\x95\xca!l\xda&\xc5\x15d\xdf\xd0\xdd\x0f\x865\xb2\
+pBH\x0ck\x85\xd5\x84`\x864\xef_Y\xad\x9d\
+\xb8\xa3\x95\x00\xd5\x19\xf61\xd6\x09j\x15\x82\x80\xdaQ\
+\xa3b\xaf\x8a\x93\x03I\x90\x87\xea1\xe7\xf3\x9c\xb0\x04\
+IB\xeb\x04\xd0\xda^N\x97\x9ej\x15\x1c\xbc\xff\xa3\
+&\xc2u\xc1\xf1\xf0\xe1\xb0\x0aE6y\xde;\xc2\xaa\
+\xac\x99[\x18\x94@\x04\x81A\xe0nr(8-\xe4\
+\xe8\x12\xe8\xb9\xb2\xc78 \xc3\x07\xf7\xc4?\xe3\x8c\xe0\
+\x5c\xa6r\x09i\x15\xbf\xefZ\xee\x90\x01\xb4#\xca\xfc\
+\xa2BG\xc5?\xd8\xe4?U{\x81\xa7\x8f\x86U\xbd\
+\xfb\x9e\xabd\xfanX\xfa\xfdk\xc2\x1a\xae$X\xc0\
+U\x91s\xef\xf1O\x87\xab\x86\xab2;xnuH\
+\xf7\x5cZr\x1e\xa8\xfdasU\xe6I\x90+q1\
+\xee\x1e&\xf6\xfd\xcfV\xd2VH]\xe7\x1d\xc2j@\
+7}.\xac\xe1Z\x00\xb1\xc0<\xc4\x11\x06\xf2\xbb\xa6\
+\x0aU\xf4,\x93\xa0@\x9eZ\x15AZ\xf6\x92\xff\x99\
+L\x1c\x09?k\xe6\xc5S\xc3\xaa\xce\xbdI+c=\
+l\xdb\xa8o(\xc1\x98\x0bX\x87V\xc4\xc7\xf8_a\
+\xe9\xf5Ia\xe9\xf5\x83a\xb9\xf5\xe2\xaf\xb9\xf5B\xf3\
+m\xbc4,M\xdb3\xc32\x826Y\x0e\x1c\xcf\xc9\
+\x81#\xc8&\x9d#n\xfdy[n\xea-\x81\xf8\x1a\
+\xcd\xba\xea\x0a\x03\x99\xa5\x7f=\xed\xd3\x0f\xca\x90\xf4\xbb\
+\xe5@\x1a\x96~\xf6e]\x0f=\xd2&1\x04!\x84\
+\xdf\x8f:I\xcc\xd3\x90[<\xb6 \x88M\xc2\xa6\xca\
+\xf9\xe2\xaa\xb0\xf4\xfbg\x845\xea%p!\x10\x88m\
+\x9b1\xbe\xe5\x1c\xd8\xa8\x81L\x8b\x13\xc2\xec\xfa\xbc\xfe\
+U$\xe2buw \xads\xcd\xbd\xdc:'\xe9%\
+\xf7y\xcc>\xc6\xdfS\xa8\xa3\xa2K\x8b\xb2\x12\x95~\
+\x0eb\xe1g\xff\x89F\x80h\x05\x18\xb7\x0c\xcb\x89\xde\
+5\x22\xd1;\xde#,\xbd~1,\xfd\xdfI\x85\x04\
+\x17\x84\xd2t\xe3\xf4\xc7)\xf6\xdd\x87\x85\xd5V\x8f\xf9\
+0\x91\xdc\xbe~\xc5kW\xbc\xb6\x22\xdd\x86SJ\xcb\
+\x98\xb9K\xe0.\xa2\xc0#RL\xfb\x81\x14\x14H\x10\
+\xd2*\x02).r\x8ap-A\xb2\x08\xa4_\xc8\x02\
+\x07\xfc:?\x1c\x88R\x00\xa5@\x85_\xae\x16\xa8\xd0\
+\x96\xcb\xc8\x19\xd4%8\xdfH\xe4)@\x9do\x0e\xab\
+r\x8b>G5\xdf\xacB@\x01G\x88\x22d\x02\xcd\
+\x09\xa0\xc4\x10~\x9f\x11\xab \x8dD\xe2\xe9\x82\x16\x88\
+\x19\x02{\x10{\xf8\xc9\xfc^\xe7\xb9\xf7?\x91\x1b\x92\
+\x18\xc8d\x96\xe9z\xa7/\x845\xea $\xd2\x19W\
+\xb8=H\xb8\x93\xc0\xe7\xdc\xc2_\xe1\x95\x04\x9f\x12o\
+$\xdc\xe1\xb00\xb9\xf0}\xc3j\x0b\xa3\xe7\xbbd/\
+W\x22[ar\x18\x91\xccY?Wr{\xe8\x88N\
+\xbf\x0d\xab\xac\xd3\xc3\xa5\x85\xa5\xd4\xd0\xa6s\x8b\xbe.\
+\x15\x05d\x0f\xcc*\xca\xc1K\x0f?\xbd\x9d,\xb8\xd7\
+\x8b\xad\x17\x1d\xdc\x8f\x09*&VMC<\x09\x04\x04\
+qE\xef\xd1\x0e.\x8e*\xfa\xd1\x15\xda\x5c\x02\x92\xfa\
+{U\x08D2uw\x914\xdcO\x99t\x1c9\x02\
+\x19*h\xb0\xd1\x9e\xa1\x04\x86\x0e\x10\x07\xbedDI\
+L\x90\x08\xc0\xa1\xed\xf5\xe7q\xe8{v\xff\x1e\x11 \
+\x07\x8f\x851\xec\x18\xd68\xb0\x04\xc6wR\xa0J\xc6\
+\x0c\x84A\xad\xec/\x87\x00\xf3=\x0ef\xcfF^\xe5\
+\xbc\xcau\x11\x88p\xbd\xbd\x1c \x13\x97\x16\x8a\xc8x\
+\xaf\xf3\x0f \x8c8\x18\x5c/\x01v\x0f\xc5\x07\x82O\
+\xcf2\xf7\xf1\x0b\x05\x86\xf4r\xf7$a\x8c+\xd7C\
+\x00\xc2F\xdf\x8d\xab\xff\x8f\xe7\xc3\xff\x13`\xf5\x81\x1b\
+=\xcd@!\xf9\xbf\xca\x0a_\x10\x05\xdc7\xf7Gb\
+\x80\xfbg<\xa98\xf5\xec\xce|.\x5c\x00\xf7\x16\xe9\
+\xda\xef\xba\x04\x00\xf7\xa3\x0d8\x85\xf9eC\xfe_\xad\
+\x17\xc8K\x80F\xe18r\x1d8\xd8$\xc4hM8\
+J\xec\xd8\xcc\x0f6@2\x91|>\x81,\xf3\x8a\xe7\
+\xc4\xfd\xb0\x1e\x08\xac\xd8P\xa9\xac\x22\xaf\x83\xfc\x16?\
+\xe7\x8bD\x12\xad!\x87\x8b#\x00hqGn\x88\xfc\
+\x95\xc9\xeb \x03\xc5\x91>7,\xbd~Il\xe4G\
+\xab\x12\x0c\x04^d\xa2\x9e\xd7\xaa\x88\x0f@sY\xcf\
+\xac\x03\x02b\xae\x83\xe7\xcf\x01G\xc0N\xe5u\xf3\xb0\
+\xe6\xef\x98o}\xef8\x89\x90\xfe\xb9\x11\xc8\xd7\x84@\
+y_\xc82{\x8e\x07>\x87\xf9\xa4\x9f\x0f\x1b\xab\x05\
+\x88\x04\x05\x09\x00\x02\xda\xbdU\xd9\xe7\xbaIpm\xbe\
+\x1c\x81\xd1\xb3\xa1\x1bR\xc8>\xd2\xcb)\x02\xd9\xe3\x80\
+\x05\x99\xc1\xf8\xf7H\x9e~\xdd2>\x04\xa28@\xe2\
+l\xa1W\xd0dLp\xa2\xb0\xde\xd8\xa7\xa9$\xf0\xfe\
+\xacO\xa0\xfb\xd7[m\xa1\xfc\xbd\xa0\xf6\x96/#\x11\
+\x80\x1e|\xa7\x0a@\x8f\xa39-D\xc2d\x88>\x89\
+\x00\xc9\xe2\xfa\xbe\xf9\x5c\xe6\x19\x90^z\xa5\xd9\xf7I\
+\x04\xd0J@\x0f1\x15t*\x9bj\x1d02\x87D\
+\x9b\xe4\xd8,\xebI+\x0c\x1c;$\x86\x80\xea\x02Y\
+d\xfc\xe1\xd8!1A\xa5\x9c@\x9cy\xce|`\xfe\
+\x8a\xdbcxPXE&X_\x9a\xeb\x84\xf3\x00\x08\
+%r\x92G\x85\xd5q3D\x99\xca.\xd0o \xac\
+\x8c\x1f\xfe\x06\xbd\xf0\x1a\xbf\xe4>\x1d\x1d\x0e\x94+\xd2\
+\xbd<)\x15#\x90\x82T\x92\xe9\xa5\x16w\x89\xa1\xe2\
+ \x86X\xf7\x8c\x0f\xcf\x95s\x96V\xa9\x9e{\x83q\
+\xe2<Tb\xd7\xf3\x8c}\x97q\x22q\xc0>\xcc|\
+g\xdd\xa2z\xc2\xf5J\xf7{\xda-,m;\x0f\x0c\
+K\xdf_\x15\x96\xbe?>\xac\xb9\x0e\xeds\x86\xfe>\
+5,\xfd\xddqaY\xfe-W\xec\xf07\xc6]\xc2\
+r%\xab8\xb8j\x85\x83\xe5\xdbrw\xaa\xb8\xd2\xdb\
+\x0a\xa2b|BX\x03\xe1\xbeg\xd1ag>\x84\xa8\
+\x5c\xc8\xca\xa5\xa0$\x07\xb6\xaed3/\xbb\x16\x8e\xe1\
+\xba\xb0\xa60E\xc2\x9e\xf1|\xb4\x0aBR\x9b\xf2\xf3\
+\xc7ox\xb3\x02 !\x8b\xa6\xad\xc2\xea\xfcA\x06\x8f\
+\x84\x18\x1c\x0f\x19\x7f\xf4\xa3\x9a\xd0\x83|\x91\xfbs@\
+(Y\xb4\xff\xcf\xd9}@\xebvV\xe5\xe2b\xb0\xab\
+p\x00\x00 \x00IDAT?\xdfw\x0e-\x09%\
+\x90\x0e\x04\x08!@ J\xa4#\xd2U\xe0J\x95+\
+*\x17\x81K\xb9\xb4 \x5c\x04\x85\xa0\x22\xc5\xcb\xa5I\
+\x09$\xd2\x8b Mz\xbf M\x8aH\xe8E\xca\x15\
+\x03\xa1*\x04I(\x92\xb3\xd7\xba\xef\x5ck\xfe\xe6Z\
+\xfb=0\xfec\xfc\xf7\x1cg|c\xef\xb3\xf7\xf7\xad\
+\xf5\xae\xb7\xcc\xf2\xcc\xe7\xd9\xfe lITl\x7f'\
+\xac\xbd\x1e\x13\xb6R\xdbJ\x95\xad*\xd8e\x0f\xfd\x14\
+\xe0\xfe\xd1J\xbe\x114X\x81)\xf7\x87\x89\xd4\xfb\x91\
+\xe9\xbf\xbe3\xcf\x8b_\xca\xc2\xdb=Wr\x81\xd9\xb3\
+]\x85B\xad\x03\x99P\x12@\x17\xb9\xb6\xcad\xe8\xce\
+\x9f\x95\x09\x89\x93\x17$\xe1\xf0\xdf\xc3\xda\xebC\xc2V\
+\x15d\x81\x9a\x84$}\xf3\xf0\x16\x90\x11\x1f\xbcp5\
+ \xed\x14h\x95\x8a\x8cud\xff\xce\xf9_\xadD*\
+\xad\x10\x06\x898(\xa4\x9e\xbf\xf3>\x02N\xad9\xb8\
+< Ep\x1d%\xc4}xuX[.\xbf\x1b\xd6\
+\x9e\xdb\xd9\xdbol\xdb8m\x1e\x16\xb6\xcc\xfb\xcd\x9b\
+\xc2\xda\xff\xbf!lE~\x9c\x89\xca\x22\xf3\xe4\x97\xbe\
+-!\xf2H=\x1f\x9c-\x5c\xfc6\xe4p\x19H\xd6\
+\xfaHH\x7f%rB\xe5-\x02\xe0\x87M\xb6\xf8\x1b\
+\x10r\xde\x0f7\x87\xf5\xcf\xafq=)cW\xaa(\
+H\x0a3\xa1Pq\x8f\x84|\xdeo\xc5\x0b\xdeW\xa0\
+\xdd'\xf0S\x9e\xd7\xbc\x93\x18/\xe4\xc6)\xa9\x0a%\
+\xe1 \xa1\xac\xf5;\x03\xec\xed\x83\xc3\x968\xb6\x12\x18\
+\xc8_\xb5\xb2\xde4l\xb9o\xf2\xa3%7\xaf\xd0\x01\
+1\xcf\x9f\xc5\x1d\x92\x08\x02\x9c)\xc5\x89\xa1\x95\x03\xa7\
+\x85DJ\x22(\x04\xfc\xc3W\xc3V-A\xff6#\
+\x8e\xaa\xe53\xb9\x81*\xc1\x9c~L\x15\xe2\xf2yn\
+>\x1a\xb6\x923\xbcX\xd8\x0ay\x98q\xe3\xbe\x22\x7f\
+\xf9l\xd82q\xb6\xcf\xde\x9e\xbe=}\xa9D\x15{\
+\xa4\xc0;\xa1\xfd\xe3\x1b\xe7\xcc\xc9\xe6U\xb3\xdc\xcf\xf6\
+\xcc\xb0\x85\x9cg\xf3\x83\xb0\x15\x99\x89\x07F\x87\xd1\xc2\
+s\xe1\x99\xc9\xda\xf3\x8d$\x07\xf9A:8}`\xca\
+\xc1O\xd6\xe4\xcd\xf4\xb5Z\x98\x0e\xc2\x7f\x9b\xaf\xb7\x85\
+As\xc5\xb3\xff*\xb2\x9f\xf1\xfc\xf1\xfc\xe9}g\xa8\
+\xe8{&[\x06\x98\x1e3\xc7:\x91\x03\xd5\x83\x91\xfa\
+\xa8\xb5\x80\x90\x06r\xd4\x04@\x0el\x01\x81\x83\xbb\xaf\
+\xf0\xf7r\x7f*\xba\x16\x94\x0c\x90\x03\xca\xf7\x9e\x0f\xc7\
+\xf0\xc8\x84\xd4\xb9\x7f\xbd}\x99!\xab\x80\xb9\x97\xc1\x02\
+\x91\xb9d\xa9\x07\xec\xd6)_z\xef\xe7\xc0\xd9\xfb$\
+\xb9XA\x8f92\x02\x0e\x8e\xb1\xe7(\xa0\xeft\x89\
+k\xa3\x11\x88\x0a8.\xda\x91\xf3\x19?\x01\xa9\xeb\x17\
+\xf8\x08\xdcl\xe4\x1c{\xad\x08H\x02\x91\xa2]*\x03\
+\xa4^\x07\xbe\xef\x91\xce\xfb)\x08\xa6\xdf\xe7px~\
+\x1c1\xd7\xd1\xc9\x0bV\xe2\xa0'a\xb4\xa1\x81\xcc;\
+\xb8\xdco\xaf\x1a\xe1\xef=\x17*\x047\xc9\x8aLB\
+)\xeb\xf7A\x97;(y\x05J\x9e\x97\x9e\xde\x13'\
+\xb6\x8cXWs \xa2\xd5\xc6\xfcv\x9f\xc6\xc9<1\
+\x8fl\xf8\xdf\xc8\x83\xf5\xf3\xb9!\xea\xfdG\x8ev\xfe\
+D_W\x09\xa3B:\x18_\xd7\xa5\x15$\xd9i\x8b\
+\x5c\xc9|3\x9f\xcc\x03\xcf\xc5\xb8\xeaa\xccJs\xb1\
+\xefJ8`O\x7f\xdf\xf8\xfe\x80\xc6V\x05H\x00{\
+\xe3\x5c\xbf>\xcfs\xed\x13N\xfe_`\x992\x90m\
+\xfb\x9d*EE\xce\xd6'\xbcz\x15\x0d\xbd\xec\x09\xdd\
+\x94\xb9\xafJl\x07!;\x80D\xf2r\xd5\xbb\xbf\x8b\
+\xa4\xb0\xf63*\x0e\x02s=\xba*\xffz\x7f\x7fm\
+s\xc3\xcd\x0dW\xa4~\xae\xb3O\x1c\xd8\xdf$\x10\xac\
+\xbf>\x80Ohc\xad[\xbf\xd7\xb1\xaa\x1f\x90\x18\xb4\
+O\xda\xe7\x05h\xd6\x07\x84A&\x8c%\x02\x8a\x05\x5c\
+\x8f\xa3\x1e\xdf$\x0f*(0v\xf8\x84\x10V\x0b\x98\
+\xfd[ 'S\xafb\x92-+\xd5:\x80\xdc\x96\xca\
+\x80\x046\xe4Y\xb2\x90\xd7\x81\x0d\x91#q\xc6\x01\xc3\
+Z\x0c\x09\x03\xa9 !\x06!d>AJX\xbf\x09\
+\xe9.\xc4\x9d\x0a\xa9\x04\xa3\xcf\xbb\xe7L\xde&\x00\xe7\
+\xe0Wb\x02\x19\x9f\xf5j~%D\xb6*\xb0\xf9\xf9\
+8\x05\xa8\xd1l\xfe#lE^\x84\x9c\xcd\xf5x\xc5\
+2\x8f\x0c\x0fd59w\xb0\x1eo\xbe\x18\xb6\xe8f\
+o\xce\x0b[H\xfe\x8a\x0c\x98\xde\xb2\xe7\xe7\x1cp~\
+\xe9E?f\xc2\xa0\xadU^\xe6V.\x15V\x0e3\
+\xa8(\x07\x16)^B>+a\xe3\x5cV8\x10\xb8\
+\x18',\xf4\x1cKH\x0d\x09\x17\xfb\x81\xc2\x09\x07\xd9\
+:\xb1\xafZ\xef\x02t\x08\x86\x9c\xb7\xd5\xf3\xef\xef\xf4\
+\xf6*\xc0$\xe9\xe2\xf0\xb1\xb0\x15\xc4\xfc\xb6a\x0b\x92\
+g\xfb'a\xcb\xbapN\x17\xc9\xabu\x9f\xe7\xd3p\
+\x85\xb0\xa9\xd5a\xba\xdf\xed\xbb\xb3\xe2\x99\x81\xd0\xa46\
+u\x8d\x09R\xff\xfd\x80\xd4\xefy\xfb\xbc.\xa7^\xe5\
+;\xaeZf\xbe\xb69+zo\x05<S\xc5\xee\xcd\
++\x7f+\x0b\x1f\xe3\xaf\x86-\x89\xa1\xba\xcf\x8bL<\
+\xf6\xb3\xca\xc2\xff\x9e\xfc\x9f\x19\x01\xe0y\xbc1\x03\x13\
+\xbd\xbb\x12\x02\x02\xe0l1\x1d\xef\x92\xd0\xe4\xbb\x0fw\
+\x1b\x82\xdb\xea\x7f\x86\xb5\xd7W\x84\xb5\xbf\xdb\x86\x05\x09\
+s\xb3C\x96sl\xfb\xf0\xb0\xf6z\xe1\xedE\xb6\x11\
+\xd0\xff\x8f\xb0U\xe0\x7fDX{\xcc\x0f\x08[*\x89\
+\x9eC\xb5\xa4\x22\xffr\x9f\x89D(\xa4\x95\xf5\xd3'\
+\x06s\x9f\x1e\xde\x19\xb6\xd2\xa7\x17\x18\x04\x02\xe7\xed\xb9\
+\x1e\xf6N\x09\xf1fK\xc5\xb5Z-\xf8\xc5\xe423\
+~\xa8\x0aj\xb6\xfa\x8cO\x0a[Uf\xbd\x0f\xd5\x84\
+\xef\x86\xadZRb|\xdf\xbc\xb4\x00\x8e7\x1c\x7f-\
+8\xbf6\x9f\xdb|>T&\xf4^G\x1a!\x90\x0d\
+*\x9b\x95\xf0$\xc7\x97:\xea\x850V\xa1\x85\x0c\x94\
+\x98\xc0u\x80\x83\x05\x09a&J\x8bL\xce\xf9vN\
+\xb5h\xeeVGR\xc1\x15\xf8f\xeb\x18y\xc2\xe1\xb1\
+amY\xde9lJt\xdezJt\x22\x9d\xcd\xc4\
+\xd6\xf6ra+\xbf,\xff\x7f{\xabf\x91\x90\xfb\xfa\
+p\xf6p\xf6\xc2u\xb6\xb9\xd6\xbc\xcf\x8c\xc7\xa7\x0a\xda\
+;\xe7^\xf9\xe1\x9c\xe1\x07\x81\x1c\xa8\xb8\x0ai\xe1\xf9\
+\x19\xdf|b\xb7\x9a@%n\xc5\x17\xf6Y\xc8%-\
+K\xe2\xb6\xf4\xa7\x8a\x15\x1f\xe9\x1f\xbfOb\x16\x22\xef\
+\xc6a\x0bbK@]\x95x\x81\xac\x04\xca\xa5\xc3V\
+\xe7\x82s\xc9>\xa8\x80\x85K\x0d\xb7\x8d\x00\x19\xc2<\
++\xe1\x15@g\x22\xac\xe4\xab\x9d\x03\xfcS\x85<\x08\
+\x97$\xe9\xab\xc4=\xff*\xfd\x17\xad\x0a5\x1f\x9c/\
+\x12E\x17\x08\xdb\x85\x80\x9d\xf7\xe9\xfc\xbc\xcdk\xc3V\
+\xad\xe0\x12&Z\xafN\x09[\xfc\xa4\x22\xe9\xa72\x97\
+\x09\xe3\xf1\x0f\xc2V\xeb9\x13\x1c\x9b\x1f\x87-q\x98\
+\xc4g!:2\xa1\xb9o\xfb\xeba\xab\x8d\x92\x0c\x9f\
+7J\x08\xa5\x8d\xa8\xa0\xc0ge\xaf\xd8\xff\x98'\xca\
+\xf6{\xdb\xefo\xa3'\xeaEa\xab\x03Se\xceA\
+Ln\x88l\xd3w\xe7\x8d\x0a\x89F[\x84\x139\x8e\
+\x00\xa1\x1cR\x01\xaa\x83\x95\xe3\xa2\xc2\x9c\xd0\xc1\x82\xf8\
+&[1\xc7\xa0\x1e\xf8\x22\x9f6W\x00\xfe%\x0f\x10\
+\xbd2\xef\xcd\x0d\x8ec'\xa0\xe2h\xba\x8e\x94\xcf\xaa\
+\xcc\xe2?\x87\xb5\xef\xffb\xd6K/\x12\x09\x99h\x8e\
+\x82L\xb2\x8c\x9b\x0a=\x92-\x88\x03\x8e\xb4@\xd8u\
+HXX\xb0&\x96\xfb\xf2y9\xae-\xd8\x9a\x03\xb4\
+\x0b\xe4DO\xb9;\x1b\xfa\xe6R\xd9S\xcb\xa1\xf6>\
+\xff\x91\xef#\x90\xeb\x17\x22\x87\xdcu\xf5\xd0w\x0b\xa6\
+W\x1f\xe8\x13\x00\xde\xcf\xe7\x08\xa4\x04\xe8\xde\xaf\xabX\
+V\xcb\x82\xe7`\xdc\xfa\xdex\x01\xdf\xa1\xc5\xb2>C\
+U]G/\x93\x96=\x89\xf59\x02\x0e\x0e\x96\xfb\xe4\
+\xa0\xc9\x18\xf7\x95}\xbfo\xdep(\x1d\xc8}E\xd4\
+\xef\xf7\xcfY\xafgB\x0b\xf5\x92V@\xec\xfd\xfb\xde\
+\xe3\x1eI\xd2\x93\xbey\x1e\xd6\x81\xf1r}\xaeG/\
+\xd8G\xdb\xf6\xfc\xd1\xe9\xba~:%\x04_\x1f\xb6J\
+d\x1c\x9b,\xf7\xc7\xe5\xfc\xf6\x5c\xfa\x96\x04\x01\xceY\
+Y\xd1\xfevVT\xf5\xd2\x9a\x87\xc6Y\x8f,6T\
+\x8e\xb4\x0a\xda\xc1\xdd}s@\xcd\x17\x01(r\xc9\x9f\
+\xe4\xfdr\x1cA\xa8<\xcf\xbe\xe5\xa5\x93\xa5\x1c?3\
+\xf7\x9ao\xfe(\x1dX\xf3\xe3\xc4\xaeU\xc4\xfc:\x90\
+Ev\x9eW\x10\x04\xfe\xce\xf5\x1d\x9b\x01o\x17\xb0W\
+B\xcd|\xb9tG\xc6\xb9\xc8\xdb\xcd\xeb\xd7>\xd9\xf7\
+\xa2\xcb\xac\x1f\x15\xb6J\x90\x80N\xdb\x9f \x19\x1c\xf8\
+*G\x09\xdd\xad\xca\xa2y\x8fL\x07\xeb\xb9\x0a2\xee\
+\x18\x157\xeb\xc3z\x17\xf8Xo\xf6\x0d\x9f\xafr)\
+Qf?\xbcd\xa9_\xcc\xf3\xcb\xfed|$0\xcc\
+\xeft4\xabW\x9b>1]u\xf7! \xec[\xb7\
+\xacW\xe3(\xd1\xe0\xf7\xec\xbb\xbe\xe70\xfa|\xf35\
+\x13\x07%\x9b\x88\xec\xcau\xdb\xafr\xfd\x1a\xcf\xcd7\
+\xc3\xdauog\x16k\xbd\xb9\x95(\xe1\xc0\x9c\x16\xb6\
+\x0a\xfc\x05\xe8\xae\x17w\x86V;\x88\x18\xba\xedz\x08\
+\xd3a/h|\x22\xdc\xc6\xc7\x86-\x01xq\x05\xe0\
+\x8a0\xff\xcd\x87d\xf7'\x17\xc7\xf1\xc1\x15\xc0a\xc7\
+\x01P\xdcA\xd6\xa7yi\x1dSE\xb0>\x90\x11\x0a\
+\x9c\xc9\xe4f%m|V\xd8\xaa\xa2\x9f\x8e\x1a\x081\
+\xe4C9\xde\xe9\x88n\x86\xb0\xf6\xfa\xbe\xb0\xa5\x05d\
+\xf3\x94\xb0\xd5\xbcH\x7f\xa6d\x02q\x19D\x00x\xd1\
+U\x82\xce\xfc\x16phY\xc2\x99\x012/\x01\xab\xd7\
+\xd8\xf9\x08\xb9\xd0q\xb3\xd4\xf3\x17\xc8&\xe2\xb2\xf6?\
+\xbfo\xdej}\xb2~:9\xdd\x82\xc6\xa7\xbfT\xac\
+\xe8\x99`S\xb1u_\xdbg\x86\xb5\x9f?!\xac}\
+\x7f\xbf\xb0U\x85\xf8\x83a\xed\xe7w\x0e[\x91\x94%\
+\xf9\xf2\xf6\xf9\xdb\x17l\x9f\xbf ?\xb6\xb7\xdd\xdef\
+{\xdbU\x8bG\xb6^\x16\x12%[&*\xd08g\
+\xf3\x83P\xa9\xc2B/\xc1\xd5\xc2\xf7\xa9\xc7\xba\xed\xb1\
+'M\xfb,h\xef\x97\xf6|q\x92\xcb\x94 \xa3N\
+\xf1\xd3\xb9\x97\x7f\x229\xbd|r\x19\xdcf\x15p?\
+i|\xe2\x14\xd0\xe6x\xe3\xe8A\xe6\x87K\xa9\x10)\
+\xe76k\xd7\xb3\xbdWX{\xbdqX{\xfd\xd3\xed\
+\x9fm\xff\xac\xbd\x1e\xbd=j{\xd4R\xe9\xdf\xfb\xe7\
+a\x0b\x22@a\x01\x12\xb7X\xcf/\x11\xd6^/\x14\
+6\xb1\xda7[\x90O\x85\xbc\x05E\xbf\xfa\xa4S3\
+\xaby\xb5\xf3k\xb8oX{=)li%\x19\xef\
+\x1a\xb6\xf2[\xa9p\x5cpj\x22,\xa4H%\x12!\
+\xb5\xf8q\xd8\xd3O\x0e[\xb1\xfd\xe7\xfe^-S\xb8\
+U\xb2\xe5\xa5\xb8/\xa8\x04dK\x81^\xf7`\xa8\x18\
+\x0f\x9d\xe6\xf5\x1d\xa6ym^jM\x00\x0d\xbf}r\
+}i\xf1\x11\x90#\x83|j\x22:\x9c\x93\x12o\xfc\
+\x0d\x09\x5c\x89C\xeb\x14\xe2\xcb\xefe\xc5\xb7\x12\x04\xfc\
+\xb5L\x9c\x96,\xe5\x17\xc2\xda\xf2{o\xd8\x82|\xd8\
+\xfc\xe7\xac\xaaa\x1eU\xe2\x8c\xbf\xfb\xb1N\xb6q\x93\
+\xfeG\x16<phl\xcf\x09K\xee\x80\x17.-\xd9\
+\x9b\x7f\x0c[q<P\x0f@\x12\xf9\xd2\xb0\x15\x82\x19\
+\x17\x0c\x8e\x97Te\x90\xd8\xaa\xf3\x1fie\xfa\x9d\xe3\
+\x95\xc3\x96s\xb5\xd4d\x04\xf2\xb8\x18\xf2\xbc@\xe2^\
+\x88\xb7W\x86\xad\x10\xa6\x10{o\x0b[z\xf6\x0bq\
+\x91\xfb\xaa\xc4q!E\x9c\x9fT#\xfc\x5c\xab\x00?\
+B\x02\x02\x09\xa1\x84P\xcaK\xf7H\x9f\xe2\xdc\xb1\xbf\
+\x9a\xe7\xfc\x0c\xfb*?F\xa5=\xe5H\x8b\xec\x94?\
+!q\x81D\xf2)a\xab^}\x9c-\xa9\x22#\xf1\
+R\x9d\xd7\xa0\xfd\x107\xc95 Q'\x9e\xae\xd6%\
+\xad\xa89>\x90 \xc3\x05\xc3\x16\x12\xc3}2\xf22\
+\xe0U)\x01%\xca\x03\xba [ >X\x88O\x9f\
+\xa1E\xe3fvLJ\xc6\xa1\x93a(\x92&\x01\xc0\
+\x13'\x8b\x80f\xae\xf4\xffCn,\x1c\x08\x07\x94\x85\
+* E\xea\xe7\x81\x80^\xa4LK\x0bC&\x96\xcc\
+\xf1\x0a\xe3q\xe3q\xab\x80I\xe6\xab\x87\xe8\xfb\xb9\x0a\
+\xf2\xe7S\xc7\xd6\xc4!S\x81}\xf3&\x99\x819\x22\
+\x0ff\x5c\x08)+\xd8&\xe9\xd4\x9b\x83\xc4\xa6\xa0\x8f\
+\x02z\x89\x00\x0e\x9f@\x81\x03*C\xcf\xc1\x16`,\
+\xf2]\xf3\x86`\x22\xf6r\x82*S\xdf\xce\x04\x009\
+\xbb\x85\xd5\x7f\xfe\xfd\x0c\x00\xc7o\x8f\xdf\x19\xbf\x93\xba\
+\xe3G\xae\x1c\xea\x85\xe5|~\x15`z>}@\x91\
+P\x9d\x03\xe4\xf0$\x00\xfa\x1e\x96\xbe\xc2yx\x97(\
+\x00\xf9WY\xeee\x07q\x07\x08\xd8\x05DH\x90d\
+2\x05\xc8\xf4\xcf{H\xa5q\xefI\xa0zD\x82\xfb\
+\xf1s\xd7\xcfA\x15\xd8\x90\x85\xbcB\x06R\x02o\x89\
+\x15\x9f\xef R\xf9\xec\x13#\x1cu\x15J$}\x1c\
+d\x81\x9b\xc4\x96y\xe1\xfd\xfa\x04\x80q\xd4\xfb\xa5\x02\
+\x05\xfa\x9a,\xa5\xd5+\x94\x81\xf7\xc6\xc1g\x5cT\x18\
+\xcd\xcf\x5c'\xe3Y\x01\xf6K\x19\xbb\xe3W\xeb\xe1B\
+\x9d\xec^r\x00\x04\x07\xeeTQ\xf8\x5cB\xdam\x94\
+\x1c^\x09\x0e\xe3\xe5\xe7\xc8<\xbd_\xdf#\xef>\xfb\
+\x04\xc0\xd52\xd0\xf6w\xe69\xddj\xf3[\xc5O\xaf\
+o/\xeb\xf2w\x99\xb1\xd6\xfa\x00\x0ag^\x0a\xf8\x8d\
+\xaf\x80U/\xeaR\x91G\xb67\x07\xaa\x12Q\xd9\xc3\
+\xbf9!+\xf3\xee[\xc0`<!s\xdc\xa7\xc0\x1d\
+9\x1f\xc7\xc4}\xfa\xde}Z\x87=R\xc2~\xfaK\
+I\xee\x07!\xe0 \xec\x02\xb2\x0aXzRL\xef\xeb\
+9\xf6\xefo\x5c\xfa}\xc1}\x80\xf4k\xf5\xe8e\xb2\
+\xec+\xee\xe7\xe0\x8e\xc3\xa4K\x9cV\xe0\xd0\x93dB\
+\xb0Pw\xc1a`\xbe\xdbO\xed\xb3*\xb1\xc9\x16\x5c\
+\x95~\xeb\xaeWo\xe9\xb9\x5c\x04\xf8\x028\x816y\
+\xc1t\x84U\xf6j\x1f\xb3\x0e\xcc;\xf3(\x1d\xd7\x82\
+\x94^'91\x9c_\x12A\x90\x0f\xa0\xd0zN3\
+\xc0/\xb5\x1dd\x84\x02\xd2\xfb\x86-\x8e/RS\x90\
+\xe2z\xde\xf99\xa1\x22\x1f:\xf2\x9b\xf7\x84-\x15\xb5\
+\xcd\x18\xb6\x0al\x12\x82Z\x0e\xa9y-\xa1\x9aH\x07\
+=\xd6*NE\xda\x8b\xcd?+e\x85\xdc +\x09\
+\x19 \xc0\x16\xb8\xf0G\x92%\xba\xad\xb3\x13\xa2W[\
+\xe5V\x82\xa8Z\x15$\x08U`\xb2PR\xd7\x83s\
+!+.\x15\xe8\xe3J\xb0\xcf\xdbW I\xa8\x01\xe8\
+\xd1\x87\xe8\xe1\xdfH\x8c\x99\xa7\xb9\xcf\x15\x99\x94\x04\x96\
+\xf5\x05\xf9\xe3\xb9C$:\xdf@\xaaU\x92\x916B\
+\x08hY\xf8\xcb\xd9\x7f\xd9\xdc`s\xfd)\xf1\xf4\xe1\
+\xb0\x05)'\xc0\xa8\x80\x0er*\xe75\xf6n~\xa2\
+\xe7\x8e\xfc\xaa\xa0\xc8\x17\x8b\xae\xf3\x89\xdc\xed?\xc7\xd5\
+\xf97\xc9<\x1f\xb9\xf4\xcc\xab\x10n\xbe\x12\xb6\xf2\x07\
+!A\xf4\xc8_+l\x22_\x9bZR\xb7\xef\x0c\x9b\
+*\x89\xcf\x98*\x89\xf6\x05\xeb\x9a\xc3\x1fu\xc1\x87&\
+\xf9\xe6\xa9\xab\x96\x04\xfb\x9du\x96\xeaX\x85\x88yg\
+X{}~\xd8\x82\x90\xc1v\xbf\xf7ia\x0b\xb4{\
+{bX\xfb\xf9\xad\xc2\xda\xf7\xf7\x09k\xafw\x0ak\
+?\xffL\xd8*\x81\x93\xebF\x8b\x01$\xc5p\xd1\xb0\
+\xf6\xfa\xd1\xb0v=\xb7\x0e[\x0av\xdbW\x87\xad\xe4\
+\x05s=\xf1\xbf\x87\xc3\xc3:({$\xca\xcel\xf6\
+\xf1\x1c\x9fKM\x89\x92/M\x1c(\xb1j6\xab\x80\
+\xdey\x09\x91\x94\x15P\xebX\xe5sz\xdd\x97\x81\xe6\
+\xdf-\x1c\x1aUq\xfe\xcc\xc4\xb2\xb5\x04j\xb1*o\
+\xb2R!yP\xca\xca\x9d\xd7\xfc\x9e\xf3R\x1d\xe2o\
+\x96y=^?lE\x8el\x9dY\x0f\xfc&r\xc2\
+\xe7\xcc\xfeq\x05\xf8X\xd43\xe0,\xa4\x00\x7fH\x81\
+\xa3\x93\x1f\xad\x02\x93\x16\x1a\x9c\x1e\xce\x09\x09\xe5L\x90\
+L\x1d\x1am\xfe\xef\x9c\x17\xb6\x92\xa9\xcd\x1e\xed\xbd\xd7\
+\xdc{\xad\xbd\xd7\x9a\xae\xfb\xcaq\xdd\xed\xfb_\xd9{\
+\xcd\x05A=\x1e\x14\xb6\xa8\xa7\xe12\x80\x00\xa9\x02b\
+\xae\xdf\xed\x0b\xc2\x96\x80~\xe7\x0ea+\x7f2\xf7\xaf\
+\xe2\x80\xf2\xfc\xc8\xa2\xde-l\x85\xf0\xc9}\xb3\x10\xdc\
+T\xaa\xee\x16\xb6\xe2\xca\xb1.\xf9\xc1\x12\x0f\xce\xd7\xdc\
+o\x86G\x87\xad\x10\x028$\xecw\x90\xd3H\x02\x91\
+\xee\xbdz|\xd5T0>\xbd\xad\x8a\xd3\x97\xf7\xad\x16\
+\x09\x09l\xe7n\xb60\xd4|\xd2b\x92\xcf\xb5Z\x0e\
+\xf9\x9d\x12\xee\xe4\x12\xb5\x84\x0b\xd0\x15\xc2 kA\xe9\
+\xf3\xb5*\xf6\xd4p\xf8\xdfZ\xbb\xf8_\x90#\xf9\xbe\
+5?\xb5 \x22\xc9\xe5\xb7 \x93\x85\xec\xe1?\xe5y\
+P\xc8\xa4,\xe8\x0ew\x0a[\xf9c\xc8\x8e\x13\x112\
+\xbc*\xac}\xff\x92\xb0\xb8}=w\xbf\x9a\xd0\xce\xd3\
+\x12\xd2r\xcd\xf9 \xd9\xfe\xd7\xb0\xf6\xff\x17JR\x85\
+\x0b&\xbbo\xb2t\xd7F\xa9\x87#\xd9\x1b\x8b\xdc\xc1\
+\xc0YH&\xc49\xc5R:\x07\x04\x0fK\x96F$\
+g\x99!\xd9<.\xa1k\xef\xcb^\xc5\xec\xd9\x93\x99\
+\xc7\xa6\x89\xdd|\xfchf\xe68>\x16\xae\x0a\x88\xc0\
+E\x85\xdf\x80Z\xb8\x87\xef\xae\xec\x97\xbc\x1b\x87V\x86\
+\xeb\x9a\xa9GIV\x22\x1d\xf8\xa0\xd4\x99\xa0P\xc8\xc5\
+8n\x0e\x92\xcbv\xbd\xee\xbd\xc3,\xe02\x91]w\
+\xafK\x9b\xf7\x87\x1c\xa7*\x98K\x02`FHp\xac\
+\xbc\xcf\xcfvW\x98\xaa\xc5\xe1\xbc|\x1f\x89\x0e\x0e-\
+\x87\xb5g\x95\xedI\x01\x05`}\xc0)\xd0\xeeU\x09\
+\xfa^y\x01\xb6\x00\xea\xb0\xac\x98r\xf8\x0f\xee\xd8\xfa\
+\x8f\xee*\x86\x02*\xf2q\x02*\x07=\xdd\xe4d\x13\
+E\x92U\x81\x87\x83\xe3\xd2E\x1a\xb9\xbb\xe5A\xa2\x03\
+\x22A\x85\x91c\xb1\xc8\xf4\xcd\xf3\xc6\xff{\x9e\x0e(\
+\xf3\xb2\xef\x8d_\x02\xbb\xd9Aq\xd0x\x8e^%\x88\
+\x04\x94\xe6\x97\x0a\xa3y-\xd1\xd5\xab\x00\xf4\x09\x03\x99\
+\xe7\x84:M={Se>Yy\xff-I\x11\x0f\
+\x09[U\xa2\x04\x82\xc7\xe7\xabu\xf6\xc3ju\x99\xef\
+{'\xef\x97:\xc0\xf9\xf9\xba\xc8\x0c\xce\x1b0\xb5\x08\
+\x0e\xb4\xc0\xc9k\xb2\xf17'y\x17\xd9U\xb1\xfd~\
+'\x13Y\xa0\xd0\xc6]\x0b\xc9\xafd\xc5\x15$\x8e\xbc\
+\x8c\xf9\x9f\x07b9` ct\xce\xb3\xa2\x1a\xc0\xd4\
+\x09\x9ajC\xb7\xaf\x19\x0f\xcf\xd7\xbc6\x0f{\x12I\
+\xaf~\xae\xd2-q\xc0\xa1\x17(\xda?\xac\x9b\x9e[\
+@b\xc7>\xe0@u\x1d=)\xa6u\xe4\xe7\x02o\
+=l\xd7\xcb\xcc\xbc\xc4\x83u\xe8\xf3\x5c\x8f\x04\x8b\xdf\
+\xb3\xafPA\x90\x18\x14PI\x04\xf8\xbb\x8e\xe4\xa6Z\
+r\x8c\x8f\x1ej\x89'\xe3\xec\xf3\x97V\xa2\xf9\xef!\
+\x1b\xfc\xdc>\xc6!\x04\xd1\xc7\x8a\x8f\xdd\xd9+\x15\x00\
+2\x9c\xbe\xacG\x10\xfc\x0eARz\xf6\x99(/\xc7\
+\xd6~\xe6\xb9\x80\x8cz\x0ez-\x91\x85%\x84\xbd\x10\
+\x17y\xde\x81\xbc\x96\x1a\x87\xdeu\xe3\x9c\x0eU%:\
+p\xd2\x80\x18\xbe3l\x85\x88\xc3\xbd\x91*?\xc5>\
+M\x068\x03\xe8\x0a\xa4%dpj\xa8\xbc\xab\x10\xe9\
+\xd9O\xc7\xba\xae+\x11W\xdb\xdb\x85\xad\xe4\xa6\xb4P\
+\xbd#l\xb5\xef\xe4\xfcF\x12U\xfb\xbe\xc0\x01\x19c\
+\x06\x94\xdbC\xc2\x96\xf1+\x19\xc5DL\xd5\xf5|\xa9\
+=\xbd/M\xbd\xa4O\x9bz\x98\xcd?\xfb\x16\xc4\xa0\
+\xf3\xca\xfe\x9c\x5c\x02\x95x1\xff\x04\xd0\xf6\x87\xac\xac\
+o\x1e\x11\xb6Knv\xba~\xf7Y\x0e\xb5\x84\x82D\
+\x15\xe4\x85\x04'\x87\xcf\xf9e\xbe\x99\xf7\xce+j\x0a\
+\xf7Kv}\x09$\xe4\x878\x16T\xe82\x11T\x01\
+zVbk\xbe]\xaf}\xea\xf5\x96\xc4O\xf3\xbf\x1e\
+\x1f\x1c\x12\x9b\xd7\x84--\x19*\x90%\xc3\x08I\x82\
+\xb4V\xa2 [K\x0b\x22+@\xd0B\xfa\xd2\x94\xb1\
+Lu\x93Jt\x87\x97\xf1\xef+\x04\xd1\x7f\x0d[%\
+\x9c\x05\x80\xfcM=\xb3\x123\xc1\xb01\xb7\x94>}\
+B\xa2^m:\x99+1\x05\x1a\x5c\x10e*S8\
+\x95pW\xa4:I!\x0c\xc8|\x1d>\x95,f?\
+\xb8\x9d\x13\xdbk\x87M\x95\xfd\xa3\xa7\xca\xbe\xc0\x7f\xfa\
+Z\xc8\xfe\xf6\x1e\x11\xd6\xbe\xffjX{M\x04n\xa9\
+\xbbd\x80;\x5c$\xacm\xa7\x7f\x1e\xd6\xbe?2l\
+\x22\xbd\xbbo\x90\xde\xed|'l!q\xe4G@\x18\
+ln4\xbf\x1fu\x8c\xfd/\x0bK\xc8\xf6\x09\x0bY\
+\xdeT\xb7\xbe\xd7\xaau\x167\xce\x07fU\x88\xe9T\
+>x\x09\x90\x8b,oM\x96\xdb\xe6\xf9xR\xd8\xaa\
+'\xde\xba\x13\x08>o\xcf\xf3\xdb\xbf\xaaT\x8eO\x08\
+[\xed\xeb\xce\xeb\xd7e\xcbS\x9e{\x02\xec\x22\xdfV\
+\xa8K\xe8\x7fq\x13$\xd2\xa7\xe2\x90_\x0e[\xf5Z\
+\xd3]\x7fT\x16:\x91\xc0=6\xe7a\x06D\x85X\
+\x960\x94\x18N\xce\x22\x95\xfd\x22O\x04\x05\xe7\xffB\
+\xf6!\x97\xbbTX{^\x0f\x0f\xfb9\xe3rJ\x06\
+\x8c/K\x8e\x93\x1bmn\x1cz\xf1{\x1f\x1b6\x91\
+)>$\xc8\x14'\x7f\xf7\xe8\x15\xa9\xe1]\xe7y?\
+\xbe|F\x80\x14y\x9e^\xf0L@@dW\xc2\x10\
+\xd2!9\xdb \x98*1\xa0\xf5#\xef\x7f\xbb7l\
+\xf9\x5c\x81\xeax\xf4x\xccx\xcc\x8a\xad\x1e\x02\xe1\xdb\
+a+\xd2\xc4n]\x97z\x87\xb8)Y\xee!W*\
+\xd1O\x8d\x22\xc9>\xa7\xf4\xdc#W\xe3l\x9f\xcc\xc4\
+\x83\x04v!\xd2\xb4vf|$\x81o\xbd\x17y\xa9\
+sR\xc5\xde\xfe\xaf\x05-\xd9\xf3+\xd1\xe1\xbc\xf7{\
+\x0a\xaf\x9dL\xaa\x04s\xddo\x92r\x8e\x97\x0c[\xfd\
+}\x22\x91\xc67\x86\xad\xfc\x1d\x89\x02\x81>yO-\
+5)\xdf\x8b\x5c\x12\x97\xcf\xf0\xb4\xb0%qZ\xf2\x81\
+>\x17\xd2.\x13\xe5\xfb\xca\xd1\xca\x1e\xe1\xed\xa3\xc3\x16\
+]\xc5P\xf7\x9cdOb#}\xfa\xe4 \xcf\x99\xa0\
+\x0c\xe4A\xfa\xc6G\xcd,\xb2\x9b\xdf\xc8\x83\xc0\x01\x8a\
+L\xc3@A\x00|&+\x7f\x1e\xa8\xcc0=Od\
+\x09\xe4\xac\xfee\xf3\xd5\x89}U/\x9b\x03\xf5s\xd9\
+C\x99\xbdV2\xf1 &EV\x947\x5c\x9f\xe7+\
+U\x06\x86O\x86\xad\x02o\x0e\xca\x95C\x81uqt\
+\xc6\xf3g\x88GA\x80\xc8d\xbc-\xc9\x03e\x94z\
+\x12\xbd\x0bvds\x02\x05\x81Z\xcfB\xdd\x93|\x99\
+0\x12\x05}\x82C\x85j\x81\x02\x0b\xc8\xe6\xf7\xe7\x90\
+\xfc,\xff\xceu\xe0\x048,l\xe5\xe0,\xf3bF\
+.\x08\xb4=W\x99`*\x06\x99\x89%oQ\x01\xbf\
+@\xd3u\xf7\xf2g]@SH\x84K\xef\x96S\xab\
+@\xbcc\xeb_\xf5:\xcf\x95Z\x01\x87\x003U\x1f\
+\x82\x8a&\xc8h*\x13*\x90u_\x02\xe3\xcb\xec\x0e\
+\xcc*\xe0\xf7<{\x12\xc0K\x96\xac\xe2\xaeDF\x05\
+\x22\x02{\xe3\xe0K`\xebs\x91\xbcI\x90I\x9c\x09\
+,\xe8(s\x88%\x82\xf4\x86\xa7\xfcQ\xdd\x9f\xf9 \
+\x81#1\x93\x0ee\xb5\x80\xb8?\x10P\x8e\xa0\x84\x8f\
+\xf5\x22P\x13x.=T\xbb9 \x04\x80\xcb\xeb\xfc\
+\x1c\xfa\xca\xab\xbf\x97\x980?\xce\xcbV\x81\x8e\xf3b\
+\xb3\xe8\x7f\xcf\x8e\x02(\xa6\x04 $\x8f\xe7)\xf03\
+O\xccc\x81\x09\xf6[:\xb9zw\x91\xec\x19G\xd7\
+\xd7\xabG\x98w\xc6Y\x00\xdd\x07\xa6\xe6\xbbu,!\
+\x90\x0e|A\xdb\xfd\xbf\x84*\x07\xdf<\xeb\xe5(\xbd\
+\x7f\xae\x93\xb6OM\x95\xcc\x03z\xee\x05\xec\xe4\xe4\xc8\
+R\xf6\x01\xb8\xf9~\xb5t\x80\xc99I4\x19W\x10\
+9\x89\x0a\x09T\xd7\x8fK\x82|\xa2D\x86\xbfW\xc1\
+U\xa9\xe60\xd9\xdfz\x928\xfb\x83\xfb\xd1\x13\xac\x95\
+\xc7\xf8\x1a\x17${\x9e\x8f\xf9\x0fz/1-\xd1\xac\
+\x82$\x01\x9c\xebp\xf3\xa8\xb0\xd5\xbe\xec\xf9\xda7\xac\
+g=\x80\xd6\xa5\xeb\xe4Pph\xfe\xcbd\xcbx.\
+\xbd\xc9\xf3:\xf0\xbc\xcd[\xea\x15\x09\x99\xac}\x01w\
+\x05\xe4\x85u\xe69\xe0\x16\xc0*\x9c\x81Y\x05\x80_\
+\x9al\xe9\xd1\x17\xb8_\xba\x10Us\x00\x9eP\xc4\x92\
+\x11L\xa8f\xf5.J\x88J\xa4\xe0\x04\xd1#l\x9d\
+%$\xb1*\xeb\x1c\x18\x81 \xd5\x15\xec\xffy\xaeT\
+\x8f\x7fn\x1b\x9e{q\x07pD\xd3\xb1\x04\x9d-d\
+\x00\xa8\x7f\x92N\x8d\xff6~wJ\xfc\xfee\xd8\xaa\
+E\x81\xfc#\xe8>\xe4\x056\xf3\xec=\xae\x0a:G\
+5\x11\x92E\x02e\xbd\xa8\xe4 \xc5\xb4\xce\x1e;\xd9\
+Bv\x08\x99 \x01$\xe0\xf4\xff\xd6\x05\xf2(\xd0U\
+\xf3\x03\x02'I\x08\xc9;i\xbd)N\x09\xd0y\xf3\
+HOi\xde\x97\xcf\xc3\xa1\xd4F\xef\x1e\xd3\xf89\x8f\
+\x93+h\xfb\x8c\xb0\x05\xb9\x81d\x0b\x07S\x91\x8f\x9d\
+\x19\xb6\xa885o\xecG\x9b\x1f\xad \xeaY\xa9\xd4\
+2\xb6\xf9\xd5\xb9\xc5e<;\xd5\x09\x90k\xe5y\xb2\
+=2l\x95\xb0J?\xae\x85\x17gG\x80\x11\x1d\xe1\
+A.W\x81khM\xdcr\x9e\x8f\xc3\xa7\x16\xd6\x7f\
+\xf2cSe\xefBK\x0f\xfe\xf8\xadf\xdf\xce\xeb\xff\
+\xe7e~o\x9f\x1d\xb6\x92k\xfb\xc7f\x91\x08\xf8\xbf\
+\xcd\xbe\x92\x81\xe6\xdf-r\x80S\x0f\xf7\xb1K/\x7f\
+\x0b\xc4\x9b\xadX\xde3\x10#\xfb&\xb1F_\x1e\xa2\
+\x86\x0a\xc8\xf0\xa3\xb0\xb6\xbc/\x18\xd6\xbe\xbf^\xd8\xc4\
+z~n\xb0\x9e#\xd1V\xd1\xdb\x9e\x1d6%\xc4&\
+\x12A\xfb\xc1xlX\x92\xdd\xfd\xd7\x85\xdc\xb1d\xb7\
+%\x06\x9ds\xc7M,5\xf3:}K&$\x9e\xba\
+\x0a\xb0%\x02\x04$\xf6\x9f\xdc\xdf\xa6\x8a\xe6_\xaf\xd6\
+\xf9\x99\xcd;>s%\xa7\xa7\xf2\xee\xef\xed\x1b\xce\x7f\
+\xea\x14?\xcd\x0a4rG\xf2\x86\xcf\x9e\x13\xa8\xc5\x1d\
+$!\x98\x5c\x06%#\x8b\xac\xd0y\xa0\xd2\xfdga\
+K\x8bCq\x15d\xc0W\x81X\x22tJ\xe6\x0dT\
+^\xe1\xd3|\xe4_Hh\x19O\x09\x15*\x01\xd9z\
+Q\xad\x08\xb8\x86 \x8c\xa9\xb3<zF\xa0l\x0fk\
+\xd6\xce\xb3\xed\xc7\xc3\xda\xfb\x1e7^qB4'\xb7\
+G\xed\x83\x12FO\x0f[!$\x12z_\x89M\xad\
+i^\xb5H\x90\x15\xcc\xb8\x03\x92\x0a\xa9_\xc9o^\
+|F\xec\x14\x87\xc2asb\xc3\xfc\xaa\x04v&\x08\
+\x0b\xc1\x93\x08\xae\xe2\x1cJ.%\xb2\x99\xe3\xef\x8cw\
+\x8eD@\xc9\xf5\x8a\x7f\xb4@\x19_\x9c\x00\x02\xfc\x94\
+\xfb\x93\xe0\x94\x80\x1d\x9e\x15\xb6\xb4\x82\x17y\x1f\xff\x94\
+\x0c\xe6\xc9a\xab\x84\xfc\x13&[\xb8\x0f\xa8\xf4\xbc(\
+l\xb5\x8f;\xf7\xad\x17H/H\x01\x85\x9cT\x05*\
+\x84\x83\x04u\x16\xf2\x0aq\x97d\xd7\xc5\x8d\xc0\x8f\xe1\
+7H\x04\xa4?Q\x9c\x07\x19\x87H\x5c)|\xd59\
+ \xde\x86\xa8p\xce\xe0\x0c\xca\xeb\xdb\xb7\xb9i\xf6f\
+\x9a\x002\x9e\x02l\x8e\xb5\x89\x83\x04\x8c\x03\xfb\xbc\xb0\
+\x09\x025\xf5\xfc\xb7e>\x07\xeez\xb2%\x00\x04\x9c\
+d\xc9\xbc\x9f\x80Bo\x9f\x8c\x9b\x80\xddA\x9a\x0b\xbb\
+\xa0\x86{s\x22>,'\xe0\x19)\x17\xf4\xee\xcd\xbb\
+6\xef\x9a\xa0\x19\x93C\xb1\xf9\xbb\xb0\xa9E\xa1\xd9J\
+\x871Ih\x86\xd7\x86\xad\x0et\x0e3\x07%\x1d\xd3\
+\xf1\xaf\xc3V\xbdSw\x9f!0\xed\xf1\xce$\x80\x06\
+\x9cC\x9a\xe3)cX\x95\x93\x0bg@(\xd1\x80S\
+!\x17Z\xf5\x86\x0a`\xfb\x8a\xb1\xbf\xb3a\xfa\xb9\xf1\
+\x15pr\xa09\xa6\x17-\x16\xfd>\xe0\x9e\x03U\x8e\
+\xeb\xe5J\xdenv\xd8U\xb2\xaf]\xba\xca\xbbe\xa8\
+8$\x12\x0f\xbe\x16\xc4\xc1\xfc\xff{r\x01\xaa\xf4\x1e\
+\x99\x01\x0cV\xfbC\x93\x8b@\xe2\xa0\x87\xda\x1fY\x9c\
+\x01\xbb[\x05\x04\xaed\xab\xdc\x87\xcf\xf9i\x92\x81\x09\
+\xf0T\xf0\x8c\x9b\xca9R9\xe3\xe8\xfd\x05~\x02\x00\
+\x8e\xf2\xd1\xd5\x1a\x80]}\xfe}\xe3\xec9\xf5d#\
+;%C\xb9;!\xe0\x80\x12\x90\x08|A\xb0\x8dC\
+'/\x89\x9c\xb26N\x096\xf7\xd9\xcf\x1f\x9f?\xfc\
+\x82\xc0\xbc\x0fp]\xb7\xe7\x22\x90\x13\x90\xda\x08{R\
+H\xdf\xf7\x08\x14\x09\xa7\x8b'\xc9\x1f.\x11\x89\x86^\
+\xfe\xaa\xe7D0\xbe\x121\xae[\x85lY'\xdb]\
+\xaa\x16\x9e\x9b\xde>\xe3\x93rE\x9b}\xf3\xbeS\xfa\
+\xc32\xe6\x10G8J\xfa^s\x01\xba\x0a\xe9\x89\x99\
+@\xc9\xc4e!<\x04\xa2\xbd\x8c\xdf\x9531\x81M\
+\xdf|K\xb2\x9f6\xe7v\xf5T\xd7AzL&n\
+\xcc\xbfk\x94\x5c\xdf\x9c@\xf0\x9a\xeb\x17\xd4\xb9\x02\x0b\
+\xfb\xdc\xd5s}\x9f\x98\x89\x09\xebG\xe0\xae\xb7\xda\xbe\
+d\xdce\xe0U\xb2A\xa1\xeds\x02y\x9f\xe7\xd5~\
+\x02\xea\x8d\xd4\xc6\xbcr\x00z\xce\x90/9/\x8b\x05\
+\x1ed\xd3x\xf5\x89\x17\xf3\xd8\xfe#\x11*`\xcfs\
+\xa9\x12\xca\x10\x00z\x11U6d\xfc\xcd?\xf3\xa6C\
+\x1e\x1c\xc0\x92\x0c\xda\x8d\x9cR\x00\xa9\x92\x99\x0e($\
+RA\xb0A\xfe\xad;\x90s\x81L\xf6\x12\x8e/\x0b\
+[\xfd\xbe}\x01\x17\x80\x8al\xf6zr\xbc@\xa7K\
+\x16\xcd\xf5a\xc9G\xc6{\xc9\xdc\x8f\xb5<\xa8\xb0d\
+\xe5\xaa\xc8\xce\xba\x9eE\x09\x06\x90\xe1H\x8bGb\xbc\
+\x02\xc5|\xce\x9b;\x84\xad \xeb=\xb9)\xce\x06-\
+OH(3\xc0\xdc\xf3\xbc\xc9\x16\x9dd\x90QPT\
+\xf3\x1f9_\x160\xaa\x17\x93_C\x15\xc1\xfc\xc8\xe7\
+\x5c\x89\x81t\x10\xeb{\x95.\x89\x0d\xcf\x15\xf2\x08\x12\
+@K\x07.\x86L\xc8PU\xaa}\xc3z\x83\x8c\x91\
+\x18\xe0\x00Z\x07\xf6_\xdf\xdbW\x9d/\x9e\x1bR\xe4\
+\x94#\xac\x04\x01H8N\x02\x011\xb9,r\x9cd\
+z\x91Cg\x0fz\xb5p\xbc%\x94\xec'\x07yJ\
+\xb4oo\x16\xb6\xdc\xd7\xe6Ka\x0bwK%\x16~\
+\x18]\xf1\x13\xc4~j=\xa9\xfb\xf4w\x99\x88\xb2\xcf\
+\xb6\xddm\xf6K\x9e\x93\x9cP\xb9\x8f\x0f\xd7\x19\xae;\
+\xb4\xc0v8*l\xea\xe1\xfd\x8b\xe8\xe1\x1d\xce\x0c\xcb\
+\xefON\xc7\xfc7V\xf2\x5c\xc1\x16\x1f\x1c\x0e?\xca\
+\x02\x11\x8e\xab\x98\x17!\x9f\xf6\xae\xd9o\xac\xc2\x07\xbd\
+\xf2\x5cW\xa5\x83\x9e\xdfo\x8fov\xa5\x85\xa5^\xc5\
+q\xf3\xf9\xb0\x05I0q\x01\xc4}\xbf=l\xd5\x92\
+J6\x0f\x8bz\x06\x8e;\xe7\x84\xb5\xfb\xb9AX{\
+}e\xd8J\x06.\x03\x86\xe1Fa\xcb\xbe\xbb}D\
+X{\xfd_a\xed}>\x10\xd6~\xef6\xcdn\xbb\
+\x90\xff\x09\xc8\xc6\xcb\x87\xadH %\x04\x91\x94f+\
+\x0a\xa4\x9cD\xd1\xf0\xb6\xb0\x15\x8b>\x92\xdeXeC\
+\xce\xf3\xbbg\xc5\xfcsK\x8bi%\x04\x044\x12\xa9\
+\xe9\xef\x0b\xc4\xab\x90a\x7f\xbd\xf2\xee\xc4\xe8\xd4\xaap\
+\xe6\x0a\x01\x95\x09\x80\x0a\xb0\xac\x7f\x09Q\xfe\x84\x82\x86\
+\x04\x03y\xd4\xdc?\xaa\x15I\xaf\xb9\xc0/+\xad\x05\
+5\xb7\xde\xbc_\xaa/H\xe4T\xe2\xe0\x0da\xab\xeb\
+\xccxfxn\xd8\xb2nJ\x0d\xe1[a\x8b\xbf\x87\
+\x8cs\xef\xd5\xc3\xa6D\xc0\x99\x91\x08\x18\x1e\x1f\xb6p\
+\x9a\x90q\xe7\x97\x14G\xcc\x85\xe7V\xae\x22}\xeb\x0b\
+\xa0Z\x1d\xc8\x89J\x0c\xe3v\x00\xf5\x7fM\x226>\
+\x9c\x5c\x05Ib\x8c\x1bd<!l!\xad\xacsX\
+! \x91I\xc5%\x03\xf1a_\x7fL[\xaf\x8fY\
+\xc9\xfe\xf1g=G~\x8a\xf3\xde9\x85\xf3\x04\xe7M\
+&d u\xac3ji\x95@\xf7~\x89\x84\xc3\xa5\
+S\xfb{r\xd5\xd5\xb9\x95\xdcEU\xf0\x15o\x90U\
+\xa5&\x90\x88\xa4J\xe4\xf3?p!\xf1w\xa8\xe3(\
+@$b\x03R\xa4\x12\x0a\xe2H\xe3\x80\x9b#\xfd\xa5\
+hp\x9f\x12B\xb9\x1e\xca_A\xceI\x05\x88\x1a\x13\
+dK&\x9c\x14\x00\xf7\xd5\xc1\xa5\x97\x1d\xa9\x17vs\
+\x95d\x1bUBn\xda\xa6=g\xda\xde5\xcbgU\
+\x00\xf8\xd9t\xa0RW\xb6 \x16\x0e\x5c\x07\xb5\x8c\x8b\
+J\x9bD\x80\x0dI@\x8e}R\xc0\x94\x1b\xc6\xf0\xc2\
+\x99\xc4\x00\x84\xb1M\xdaI\x9e\xa7\x12\x06I\xc2\xd3\x0e\
+\xc3\x99\xf4\xce\xc6g\xa1\x0a\x04dn\x0c\x90\xca?\x08\
+!R\x8f\x9c\x98HG\x0a\xc2\xf2\xc9$\x0f\xe2\x88\xf7\
+\x95\xd3owr\x80K%s\x97LT9\xba\x028\
+\x1b`O\x96'\xa0\xe3p\x0aplL^\xfd\xdcD\
+\x5cz~\xe7\xc0\xce\xf7\xfe\xffb]e]`'\xe0\
+9\xa7\xc8\x0cwU\xac6\x17\x0a[\xfd\x9d\x0a\xa7\x8d\
+\xc0\xfb\xef\xcb@\x8d\xdc`\x92\xb7m.\x95\xc8\x83\xbe\
+\xc2)\x00]\x90\x02\xf3\xf5^2\x03m\x01\xf7\xa1\xf5\
+\xf3\xddl\xfd\xa0\xfc\xfb;\x15\x05\x01\x88/\xefO\x1e\
+\xd2\xf8\xee\xdd4\x9b\x16\xfc\x1cXy_\xbd\xfd\x97\xdf\
+]Y-\xc7\x1b\x92\xc2}\xf4\x09\x80\x9eL\x12\xcb\xbf\
+\x83O\xaf\xae\xca\x0f\xc7C\x00\xc5Q\x16\x90\xa8$\x9a\
+?\xe6\x99y\xe4\xf3\xdd'D\x01YF\xeb\xaeoE\
+\x10p\xfe\x22\x15\x84#\xa7&\x89%\x00\x94h\xf2z\
+P~\xae\xef\xfbD\x15\xbd_=\xc5Hk\xf6\xe58\
+\xb9\xae\xde\xf1u\x1f\xbe\x97x\x83\x5c\xb1\x9e\xc8\x05y\
+?\xa4\x91*\xb0\x12O\xf7\xca\x80\xe4\x83\x9b\xd37\xa7\
+/\x0e\x1dR\xcfj\x19\xf9\x9b\xb0\x15\xd9\x8fqr\x7f\
+\xb9O\xe2R\xd8\x93-,-h\x9e\x03\x8b\x05a2\
+\x8f+h\xaf\x96\x88C;\xf2\xc9c\xf2\xf7\xf4\x0e\x83\
+\x90\x1b\xffkdF\xb7\x9b\x7f\x95\xb8t\x10\x090\xfa\
+\xc0\x1b\xd4\xec\xe4\x0c\xacN\x9a\x1d\xf6\xe6\xf4\xcdPd\
+\xd0\xdb\x9e\xac\xce\xe7I\x90\xf9\x5c\x01\x97\xf1\xf7yZ\
+\x03\xf2\xf3\x0a9 #\x0d\x99!\xe1\x00\xa9\xd0\xb7\x22\
+y_\xa4m2\xffZ\x1f\xc8\xbd\x99/\xf6/\xeb\xcd\
+\xf9$\x11\xc3\xa1\xcc\xe7[\x08\x1cP\xe0\xecq\xaeu\
+d]I49\x17\xedw\xf6\x8f\xb4\xe7\x8f\x00\x00 \
+\x00IDAT\x17\x09\x02\x89E\xfb\xb4\xf1\xc9\x0a}\
+A\xe1\xb1\xf2#\x9f\xd3\xcb\xae\xc2\x94\x9f\x87\x5c\xacZ\
+\xe3\xb00\x93\xbds\x0ejI\x01Y4n\x12OZ\
+<\x04.\x9f\x0a[U\xecO\x9f\xd7A\x05h \xa2\
+\xd6k\x92\x9d\xf1\x17\xb6o\x0a[\xcd\x07\x89z\x10W\
+\x09\x0a\x88\x08\xeb\xcf\xf3\xe1\xb0\x08@\xf4\xb8s\x5c\x91\
+\xf3Y\xdf}B\xf0\x83\x13{\xd0\xb2n8\x86\x19\x80\
+\xd6z\xe1pi\xfdIG\xaa\x1c?\xd7)`W)\
+\xe7\x07d \xbayq\xd8RiC\x06\x87\xfcW\xe0\
+]\xff\x7f\x9f\xb0\x9f#\xf3\xd9\xab\xfb\xd8\x7f\xbd\xf6\xa4\
+\xbb\xd6\x1d\x04\x0c\x84\x8d\xf5\x9cj\x1aUaO\x84H\
+\x05\xe0\x107\xae\x0b\xe4\xfci\x93-\x81\x7f\x06~U\
+\x91\x04}G\xe6\xf6\xe6\x94-{s\xd8\xaa\x95\x80l\
+tV\xeapKm\xae\x90\xb2\x7f\x12&\x0a=\xd4&\
+\x92,\xba\xc8\x15\x93\x1b\xaa*\x94\xd1\xbb{\xe5,\x90\
+4\xffq8$\xac\xbd\xfeF\xd8\x12H\x8e\x87\xce\xac\
+\xeb\xe5o\xdd![#\x04\xe6Y\x09\xdc^7,\xf7\
+\xdd\xf3W\x09 \xe3\xec|%\x9f\x97\xe4[\xe5\xa7~\
+q\xfe<\xba\xef\xdb\xe7\x84\xb5\xdf\xfbl\xd8\x8a\xc4,\
+\x03\xc8Rs\xd6\xe2a\xdf\x00)O\x12<r\x8a;\
+\xbf\x1e\xd6^\x9f\x12\xd6\xfe\xff\x9ba\xa9\x06\xd2\xfc\xe1\
+a\x7fX{=o8wh\xef\xb3\xf7!a\xcb\xba\
+\x1e\xde\x1a\xd6\xfe\xfe\xd7\xc22\xf0o\xf3}\xe7\x86a\
+K\x00Y\x89@\x89\xeb$[\x9c\xe6o\xfb\xbd\xed\xe7\
+\x9a\xc5\xf5\xfd\xcd\xdc\xa21\xbc>li5\xaa\xc2Y\
+\xb6Z\x8c\x0fL\xb2\xbdOg\xc5\xf1j3\xf9`q\
+Q\xf4\xdc;\x90\xa3\xcf\xcd\x96\x82\x07\xa5\x9f\x9f\x89\xb2\
+\x82n\xfff\x22k\x04\x94H\x81o\x11\xb6jI\xb0\
+\xdf(LI\xf4R\x99r\x1e\xf1k\xac?\x09\x04\xa4\
+xZ}\xecW\xfc+\xeb\xcc~\xa4\xb5\x0a\x87\x80\x9e\
+\xee\x94g\xac\x8a\xb5\xf1\xf8\xdc\x84y\x8e}\xeeV\xb1\
+\xcf\xed\x9c\x1f\xb6\x14nv\x1e\x11\xb6p\x94l>\x9d\
+\xfb\xf3\x85\x12\xb1\xf2\xb8\xb0\xf6\xfa\x97aK\x05\xbby\
+\x05\x132ts\x81\xcd\xbe\xcd\xbe\x95\xec\xdcC3\xc1\
+\x94\xe7B!0\x9c\xb7\xf6O\xfb\xa6\xf5\x96\x89\xa6\x92\
+\xb7\xcd\x00s\xb8n\xd8\x8al/\xfd\xd2\xf1\xcda+\
+\xb2JjU\x10\x10\xc9-W\x09l~\x0f\x95\x9d|\
+\x9f\xcd\xdf\x86-\xcf\xb9H\x00\x0f\x0d[U\xb2%\x5c\
+\xb58\xd9\xdfS\x9e\x152i|U\xd8J&3\xcf\
+\x99b\xdb\x97p\x95\xf0\xc8\xf8\xafd\x84%Hp<\
+@\x92\xa4\x7f\x05a^\xe7\x9d\x96\x90T\xc3(\x99B\
+\xfb;\x7f\x8c\x9f!\xc1J&4\x0b\x0d\xc3#\x9b\x9d\
+\x9a\xf3\xe9\xd4U\x5cJ-)\x03\xfbJ4\xdd+l\
+\x85\x80\x11\xff\xdek\xb2\x85l?\xe3\x89\xcd\xa9aK\
+\x22b_\xb1}\xea\x0dP\x99\xc7\xca\xf9\xfeY\x06\x0b\
+\xb9\x87\x0cU\xbb\xec\xe9\x80@\x8aR\x03\xf9\xa5\xacD\
+\xca\xf0\xe8\xb95Q^9\xcb\x05\xd6@p\xd0\xf4.\
+\xeby\xc0j\xe8\x81\x90\xb7\xc9@A\x22bs\xf3\xcd\
+-6\xb7X\x12\x0b\xc3\xe3\xc2\xa6\x8dbf\xfd\xbd~\
+B\xa7\xf5\x8a\x18\xb0\xff6\xdee\xbc\xcbJG\xbd\xef\
+\xf1N\x07\xb5z9@4~7'\x029 \x88\x08\
+\x0e\xa6\x8d\xae\x97u;\x10\x1a=\xbf\xba\x7f\x99f=\
+\xfd\x1c\x98\x9e\xcd\x9ec\x00\xca\xe1\xe0\xe6\xf8s8\x05\
+\x1c\xbe\xf7\xda\xb7\x22\xf8r\x1f?)V\xf8y\xe2~\
+\xbft\xd0\xe7\xfb\x11\xf0,\xba\xf3\xb3Cf#9\xba\
+\x83\xec\xf72x}\xa5X\xa2\xc2\xef;\x88{9\xb7\
+\x8be\xa0\xe9}T\x04\xf5\x0c\x9f\xd0\xb1\xef\x0b\xd0]\
+\xaf\xc0\xfe\x82]\xa5\xdbxtdb\x1b\xe3u\x8d|\
+]\x10\x14\xf3\xfbs\xac\x05hX7\xfb\x0a\xa4q\xea\
+\xbf@\xf7\xb1\xd8\x22\xd5\x91\x81|{\xd8\x0a\xf1\x02\xf2\
+|\x8d\xdc\xb8\x8e\xefd\xac\xcc\x13\x81\x87u\xdc'V\
+ \x0d\xb2g\xbe2\x9ad!\xdd'G\xb4W\x05X\
+#M.\xb8\x9a\xdf\xbd\x8ce\x1f\xb0\xef\xdd\xddrR\
+\xef\x03\x02\xec\xfe\xb2\xf5\xa1zA\x05`\x10 \x12m\
+\xd6\x9b\xc0L\x22B@\xea`p}\xc8/\x93\xbcS\
+%\xb66\xec\x83\xc3\x16\xa8l\x91re\x806\x1e\x1f\
+\xb6b\xbd\xa5\xff\xcd\xa1p?\xbe\xbfi\xca\x1c]8\
+9\x05\x04\x00\x12`*\x8e\xd6\xb3y\xe2>z\xb2L\
+\xf7\xa5\x02\x7f\x5c\xa9\x06\xcc\x81\x81\xcc\xb6@\xa9\xe7\x04\
+ [&\xf0\xe6\xd0\xe3\xc2\xb8E\x92\xd5t\xc8\x81z\
+\xb5\xbf\xf4\x81\xbe\x80\xfd*\xd9*\x85c\xa5k\x99\xd9\
+\xdc(l\x15`A\xd4\xb8\x1f\xbd\xe4\xc6\x1d\x04\xd0}\
+\x9aO\x19@V\x0f\xb5\x80R \xb9$\x80\xe6uo\
+\x9eH \xf7\xadOO\x0e[\xad\x97.p\xd5\xcbX\
+\xad!\xe6\x1bG\xc6\xab\x0aL:\xf4*\xc0\x1c\xa8\xcd\
+\x1b\xc2V\xfb\xbd\x96\x07\xd7o\x9dI \xd8\xef\x13r\
+\x0a\xf2+\x10\xad\xc4E\x9e\xd3u\xbd\xd4hT\xda$\
+\x06p}\xa8\xc4p\x04U\xa6%\x18!2\x8c\xa3D\
+\x84^\xf2D\x0c \x93\xdb\x9c\x12\xb6\xb0V\x97\x1et\
+/K\xa9\x87?\x1d\xb8\xea\x11%\x13l=e\x00X\
+\xdf/$\x9e3\x92%\xcf\x97\xf1=y~r\xf8\x1f\
+9\xd9B\xb2%q\x97\x08\x1f\xe3X\xb2H'\x87-\
+\xe7V%\x06@s\xf3\xfd\xc6\xe4B\xa9V\x87\xc3w\
+\xef\x1f\x15\xd0\x9a\xcf\xf6\xabL\xe4\x16t\x1f\xc4_b\
+\xcb\xbc\xec\xce\x1d\x95\xc8\x15bp>\x7f\x14*\xec\x0f\
+\x12]\xf6}\xfe\x93J\x97\xe7\xa57>\xc9\xaa\xaa\xa5\
+\x83\x0a\x82\x9e}\x5c\x06\xe6\x83u`~K0?7\
+\x91\x17\xd6\x97\xdf\xc7u\x91z\xda-\x88\x9a[A\xcc\
+\x1f\x95/\xfe\x84\xf9\x99\x10\xe5\xf1\xfea\x0b\xf7\x80\x9e\
+\xf2\xf1\x90Y'{\xfc?s\xa1ix\xdf\xf0\xde\xe1\
+\xbdS\xe5s\x82\xc2\x16\x99\x17\xd9\xd6\x8f\xcc\x08\xd4\xe0\
+\xf0\x8f\xfdas\xc2|\xaelN\x9f\x03\x86\xcd\x8fg\
+\xb6\xff\xf1\xe6\xe3\xcd\xc6\x9b'\x82\xf5\xb9\xb9\x8fEK\
+\xc2\xf9a\xab\x96 \xaa\x09\xa0\xbbO\x1a\x9f<>9\
+\xcf\xe5\xf3\x97^\xf6\xe1\xa1a\xe9'\x1d\x92\x88\xc9k\
+/\x85\xa6\xed\xdf\x87-\x5c;\xc3\x07\xc3\x96\xfb\xdc\xff\
+\xafa\xcd-|f\xd8\xaaw\xf8\xac\xb9uqxI\
+\xb3\x97&\x19\xe0qK@\xb1=\xa3\xd9\xe9\x0brm\
+\xe7\xe3a\xed\xfd\xbe\x11\xd6^\x8f\xdb\x7f\xc5\xfd\xed<\
+\x18.6\x5ct\xb8\xd8\xa2\x1aP\xe4\xa3\x09\x05&\x13\
+\xb6\xef.a\x0bg\xc7\xf0\xe2f/Z\xed\x8f\xe6[\
+\xee\xb7\xc3\x19\xc3\xe9\xc3\xe9\x0b\x82r\xbc\xf7\xec_\xeb\
+i\xaf\x16*\x01t&\xbc\xb5:\xecy\x5crC\xe8\
+\xb9\xcf\x02\xe0&\x0b0\x13\xe7\xc1}W\x88b\xeb\xe6\
+\xdd\x93-\x09\x1c\xa4\xe5\xc8\xfb\x92\xdd}\xfcl\xb6\x0a\
+d\x0bN\xf9w\x99\xa8\x1b\x1f\x1a\xb6*<jaJ\
+\xc4B\xbd\x1f\xce\x01\x05\x19\xeb![\x07j\x7f\xb3\x9f\
+\x0b\xbc_\x95\x01\xd8\x0fr\x1d\xf1\xa3\xee\xd8v\x8d;\
+N\xac\xec\x17\x0aV\xf6\xaa\xa0[\x9foM\xa4\xcd\x95\
+\x92\xa44\x13\xdc-\xda\xb9y\xc4;S\xa2\xf4\xe8\x15\
+WK&\x00&\xa4\xcb?\xac\xfc\x9ag\x84\xadZ%\
+r?+?\xc09D\xb5C\x8bD\xfa=\xc3\xdb\xc3\
+V\xa4\xad\x0a\xbe\xc8W\x15p\x12\x09Pjo\x02|\
+l\xf7*\xe1X\xf0_\x1c\xb6R\x9dC\x1ey\xef\xb0\
+\xd5\xf3\xd5\xb2\x9a-\x0f\x9b?\x0e[\xcd\x17\xad\xa0Z\
+\xbb\xf2\x1c\x94p\xf0\xf9\x10?5\xff3\x01Wq_\
+r\xeb \xd5\xab\xe7\xc9/\xcb@_+O\x15\xb6\xb5\
+,A\xe0\x0a\xf4\x9d\xa3\xe6\x89s\x9c\xea\x83sC\xa2\
+\x1d\xc7T\x5c\xc7\xfdV\xa4\xdc\x89\x5c\xaf\xfd(\xc2\xfa\
+{\xae\xd4.\x14b\xd3\xcf\x1b\x7f-lu\xbfT\x5c\
+ /\xf8U\x99\xf0\xd97\xfcE\xd8\xc4:9\xf7\xba\
+ee^&\x0b\x17@\x91\xebX\x98\xb9a\x8f_H\
+\x87\xc3\x03\xe3\xe8\xea\x99QA\xa7\x02\xe0`\xd1\x13)\
+@\xd0\x1b\xe3`\xe1P\xe8=rpx oH\xb2\
+\x90g\xcc\x99\xb6\xe1]a\xab\x07\x97,\xd6\xedf\xa7\
+\x83p<:lE\x22\xf2\xb1\x84\x92p@{\x96X\
+\x15\xa2d\xbb\xac\xde\x9bk\x8d\xd7\x1c\xaf\xb9\xeai\xe4\
+P\xaa\xf0z\xed\x03\x7f\x99e?_z\xd4wC\xfd\
+9~\x9d\x0c\x5c9\x8e\xfe\x7f\x7f\xd7\xcb\xefU@\xe1\
+}{\x997\x1b9\xc7I\xc0xHUn\xe7\x00N\
+\x85\x93c\xba\xdc\xdf.\xb6\xf9\xf1\xab\xc9\xfe\x9e\x07m\
+=\xcf\xa3\xba\x1et\xe3\xe0}\xfaq\xf3\x5c{\x08\xba\
+@\xe8\x12]\x02`\xbb\xbb\x85\xa2\x12\x14\xfe\xbf'7\
+\xe3H\xf5\x01\xad\xe7\xbe\xb7\x90\x09\xf38H<\xfc\x22\
+\xf24\xdf\x9b\xef\x1d\xe9S\x8d\xa3\xcf\xed\x13?\xae\x9b\
+\xc3\xe8\xc0@\xe2\x22s\x9e\x19\xe9\xe8m\x1co\xb9\xf4\
+\x94\x15\xc4\xd7\xe7\x8f\xf9\xbc\x91\xf0y\xfe\x0e\xcc\x0bu\
+\x89\x17\x01~&\x08\xc6\x1f\x86\xadz\xd2\xad7\xf3\xc0\
+|4\x1e\xc7\x14\xc2bw\x8b\x81\xf1\xf5<.U\x9c\
+\x01\xf38H4\x19\xbf\x1e\xa2\xad\xf5\x81\x83\xae\x85h\
+\x7f\xce\x7f\xe4\x8c\x1c2\x07\xb4yv\xad\x16n\x5c+\
+\x03\xf1c\xa6\x83sV\xe1p0\xffcB\xa9|\x8e\
+q\x14x\x99/\xe9\xb0T\x0f\xb0\x0ab&\xe8@\xd6\
+*\x100\x8f\x04\xda\xc6C\xc2\x02\xd4Yo\xb7J\xaa\
+\xc4\xd5\x05;\x92\xcf>\x81g\xbc$r\x1c\xdc\x0b\x19\
+\xe3\xbc\x8feE\xba*\x97\x02\xbd\x9el\xd0\xf8\xfef\
+\xd7\xeb\x0f\xba\x8e}_o\xb3q\xe9\x10\x06\x95`\xe0\
+P@\x1c\x08\x08 \xc9\x92k\xa5\xc6A\x82F\xa2B\
+\x02H\xe5\x05\x843+\x22\x05\x1d\xf7~\xa0\xdf\x1c\xc3\
+\x85\x0bd7Y\xa2y\xdb#\xa3\xfa\xfd\xd2z\x10p\
+\xe6\xf9T\x01\x0d\x87CK\x80\xfd\x82,T&\xa6\x8b\
+\xab\xc3\xc1\xee<R\x11\xe2\x18\xd1iOhp\xed\x03\
+\x02%\x15\x99\xdb\x87\xad\xa0\x8f\xf6\xb7\x84\xa6\xd6\xd7\xb9\
+%c;\x05\x5c\xc5\xea\x9c$o\x95@\x91\xc0\xe8\xb9\
+\x19\xb2BY\xfa\xe7\xf6?\x151\xac\xf5\xd9\x1b\x8f\x1c\
+\x18\x19^\x91t\xe9\xadO\x99\xbf\x92\xcf\xfbd\xd8\xaa\
+\x92\x97\x5c1\x95\xe8\xe6\xd0\x98\xaf]K@q\x93\xdc\
+:[\x17\xee0#\x1d&\x08\xeb\xdf\xad\x0a\x16\xd9K\
+]\xbd\x90*\x81*\x9d\x8f\x0b\xfb9-\x85\xb8\x0dT\
+\xfc$\xf2\xde2\xd9R\x11N2\xa7\xda\x97R\xf7\x9c\
+\x5c\xb2\x82A\xed\xf3\x0a#*\xd5\xd9\xbb\x5c\xb2\x81\x89\
+\xac)D\x08\x88'\xd6t\xeb\x9b\xbf\x01\xf1d\xde:\
+\xcf\xb5\x86\xa4\xaex\x15Z\xb4\x18\xe6\xfe\xbe\xbdt\xd8\
+J=B\x020\xd9\xab\xb1\xd9\x17\x8bvrGT/\
+\xad\x0a\x98\xca\x98\xfd\xe4\x01a\xab\xf3\x11R\x06\xb7S\
+\xca\x01\xd6~)\x10\x00\x9dE\xae\x1c*\x00G-\x15\
+<\xf2]\xc3U\x87\xab\x0cW\x99X\xd5\xdbW\xfb\xff\
+?\x0c[\x02\xb7R\xaf\xd2\xf2\x97\x09\xf9\xa0\xb6\x9e*\
+\xda\x1f\x0dk\xbfw\xc4xd\xa8\x0c\x08d&D\xe8\
+\x8bV\xad\x9eI\x16\xb7\xbdj\xd8J\xeeO\xe2(\x9e\
+\xdb]W2m*n\xfc\xca\xae\x95\xa4Z>r\x1e\
+\x15d8+\xd8\xfb\xcf\x0dk\xafW\x09k\xf7w\xf1\
+\xb0%`\x1a~\xdc\xac\xbd\xcf\xce\xdb\x9a\xbd}J\x80\
+4k\xdb\xcf\xd7\xc2\x16\xff(\xc4\xe0B\x0en\xf8\xa5\
+\xb0\xf6\xfb\xcfm\xf6\xbc\xf6\xfa\xb8fm\x1e\x0d\xb7\x0b\
+[\xed\xcf*\x93\xe9Wn\x8fm\xd6\xce\xc9}\xa75\
+\x0b5\x83\x83\x9b\xb5}r\xe7\x91a\xabu\xfc\xbd\xb0\
+\x15K\xba\x9e\xf0\xe4p@\xea8\xfedVI\x19?\
+>\x93\xad\xa9@\x8f\x7f\x9c\xf1\x84\xc0Hb\xe0\xd5s\
+\x05\xbez\xd2s\x1f(\x0e\x03\x90\xee\x9b\x86M$\xdc\
+\x93\x1f^\x88d\x091\xfb[\xfaI\x854\xb6\x0f\xab\
+\xec\xe6:\xd1\xbb\xafE(f\xc74?@\xebq\x0a\
+d\x01\xb3\xf6]~Y\xb6dT<#~\xc2A\xf0\
+\xa7\x99\xb8\xe3g\xa7?\x05Q<\xfc[\xd8\x8a[\xe1\
+Va\xabV\x98\x1b\xceH\x9d\xcd#\xe6B\xe8\xf6\xdf\
+\x9b}oJ\xbc\xce\x9c\x1e)S\xb9y\xc8\xac\xbe\xa6\
+\x05\xa5\x12\xb8\xfc\x07\xaa.\x10\x14\xe4\xea$~\xdd\x17\
+\xf5\x15H\x02\xeb\x12WB\xca\xdd\xd5\xef%4\xbe\xf6\
+\x07\xfe\x8f\xf3&\x13'ER\xf7\xea\xb0\xa5\xa5B\xe2\
+\xac\x02U\x09\x95L\xc4T!\x8c\xea\x02\x15\x07\x89\x1a\
+\xadO\xc9\xfdU\x055Hs\xfe)d\x9c}\xdby\
+\x9a\xe4}\xf5\xbc\xccG\x89%\x89g~\xa0VA\x09\
+\xa7\xdc/\x90jN$\x9bWZ\xfc\x08H\x81\xbao\
+-\xbe\xea\x80\x7f\x10\xb6B\xc8gKI\xc5{\x89\x94\
+\x1a\x9e\x19\xb6\x1a\x9f\xf4?$f\xca\x9fr\x9e\xbb\x0f\
+\x09\xdc\xf4\xef*\xc1\x91\xe3\xb9O\x86\x8d^\xe6\xe6\x8c\
+\xb0\x05\xea\x04\x19\xb0}\xf5\xf65\xdb\xd7,z\xe96\
+\xd0\xe1O\xc3\x16H\x9a\x8c~\xe9u~ \x11\x042\
+D\x09\xd5\xd8\x1e\x17\xb6\xb0\x14\x0e\xaf\x08[\x91\x16\x91\
+}Ih]\x05V\x90\x03\xff\x94z\xce)\x8bQ\xba\
+\x8e\xb7I\xa8U\x06\xf8\xe3c\x93\xc4#\xa1n\xe58\
+\x0a\x18\x12*^:\xdd\x1ci,\xfey\x80M\xe9\x86\
+\xd7\xa7N\xec\xe5~\x0e\xdb\xbd\x09\xcf\xd1\xf4\xbd\x05\xe8\
+\xc0\xee\xd9\xf39\x0a&j\xcf\xbe\xdf\xb3\xa1\xf7$\x86\
+\xde\xc7\xc1\x83<NE\xb6\x97\xa5\xea\x02yl\xd7\xe5\
+\xb8\xf6\xf2a^/T\x95\xf2\xf99\x08H\xf6\x1f\xc0\
+\xf2>__\x7f\x1f\xfd\xab\xfb6.\xae\xf3\x17\x91\xc4\
+-\xad\x0a\xf3\xebA]\xcbC\xaf\x12`\xfc{V\xff\
+\xee\xf7\x0e \xf9\x13H[P\x1cA\xa4\x84}\xa2\xa8\
+\x0f\xf0\xfb\xfb0\xde\xc5f\xd5\xc99z?\x891-\
+\x00\x09\xbdE\x86Y:\xdb\xc8}\xde?\xbeo|\xdf\
+\xaa%\xa2\x83\xd6\xe3\x9a\xd8\x5c:\xa1\xd1\xc6\xfd\xdcL\
+\x04\x99'\x1cL\x09\x9dt\xd4\x8a#\x02\xa9\xa2\x00C\
+\x22Ib\xa1O8m\xf3\xfb^\xd5@@\xe1\xcbu\
+\xee/\x04\xcd\xec\x90\xa8\xd4sl{\xbd{\xf3A\xc5\
+\xcbF\xa7w\xf7:\x9b\xebNPW\xac\xac T\x02\
+fH\xa2\xcc\xc4VO\xb9\xc0\xb4oe\xd0*\xc4Q\
+\x7fI\xd8\xea9q\xfc\xba\x16\x8b\xca\xb4\x0a\x9cA\x93\
+qQ\xc8\xc8r\x14\x7f\xd4A\xd4\xb1ks\xb4\x1c\xd4\
+k\xf6\xe5\x8b\xaf\x02^\x95x\x09\x9c_\xc9\x80\xfc\xa4\
+\xfc;\x07\xb3\x0a\xfeU\xbb\xd6\x00=\xd6*\x8f \xff\
+\x0e\x14\x09\x1f-b=\xa7\x80\xc4@\xdf\x8a\xd1sb\
+X\x17\xb8\x0c \x07\x5c\x9f\xfd\x97\x0a\x0b\xb232D\
+zg}\x0e$\x83\xca\xaa\xf1\xe0\x10\xf6\xbd\xd2\xd6k\
+\xbf.%\x80$z\xbe?\xcb\xb8\x16\xd9)\xc7\xd9:\
+8\xa8T.f\xf9\xa0\xe4\x94)9\x22\x89\x1a\x09\x82\
+\x84\xd2r \xaa\xe2*`\xcf\x84@}\x81\xfa\x99W\
+\x02c\x01\xa0\xf1\xf1|\xbaD\xe2\xe6\x8da\x8bLa\
+\xc9\xf7\xea1\xec\xa0\xc8\x95\x80!c$\x81\x91-x\
+\xa1^\x1d\xfa\xd5\xb8\x016\xff-l\xd5\xcb\xab\xd2g\
+\x1e@d\xe8\xa5\xd6\x0b\xeb\xf9\xfb^ \x90\xbcu\
+& \xb4Z\xb9N\x09*\x09)\x8e\xd9\x036\xf7\x9f\
+\x02O\xcfS\xeb\xa0J8Y%\x15\xf6\x94\xdf*\xee\
+\x07\x09$\xeb\x9cz\x86\xe7,P}j\xd8*az\
+\xbf\xb0U\x82\xc8\xba4\x7f\xcd?\xf3\x13\x92\x11ya\
+B\xc4\x03\xbf\x18\x15\xbd\xd2\xd5F\x92\xa9\xa2\x05:n\
+\xdf\xf3%1\x06\x19\x94\x0eq\xc9A\xea\xfd<.\x11\
+jZ\xbe$h \x07!@\xb56I@A\xea\x08\
+\x14\x05V\x02\x99?\x9a\x1d\xef\x16vO2V\xc3\x1b\
+\xc2\xda\xf6\xff\xe2\xb0i~O\xd0\xd6\xf1\xd19\xde\xd9\
+\xe3?>!+\xf6\xf6{\x89\x8b\xbfN\xa4\x04\xc7\xf9\
+\x90\x19\x91\xd5\xd6\xca4\xfe;\x7f\xb8\xf3\xa0\x9d\x07\xad\
+\x02\xe8T\xc5(\xae\x11\xfb\xb0}\xf5\xb7\xf3\xe7\xc9\x05\
+$\xa0\x1b\xef:C\xa7\xdb\xe8O\x15\xc8*\x80\xdd4\
+lQ/\xb0_hq\x9c\x10=\x81 \xd9\x1f\xb6\xf4\
+`\x97\x1a\x15\xff7\xb9\xb36O\x0b[\xf6i\xd0|\
+\x95\xcf\xe1\xbe\xc3\xfd\x866\x7f\xf6?|\xff\xc3\xf6\xb7\
+q\xdc\xff\x9efm\x1f\x18~-,\xb9'\x9e\x9d\x01\
+|\xdbO\x86\xe7\x84\xb5\xf1\xbdZ\xd8\xa2b\x80\xdb\xa0\
+*\xb6\xcf\x08[H\xad\x87\x0b\x84\xadH\xf4n75\
+y\xcd\xf7w\xd0j\xbeh)\x89\xa7\xbe\xe2~\xb8\xc0\
+\xad\xc2\x16\xb5\x82\xfd_i\xf6\xe5\xf4_\xf6.\xc8\xae\
+\xe2&xiXr\xe8<\xbc}\x7f\xcd\xe1W\x86\x16\
+\xa8\x0f\xff\xab\xd9_N\x81\xd8\xdcj#\xc1\xf1\xfa\xe1\
+u\xc3\xeb\xa6\xc0nJ\xa8\xef\xf9\xab\xb9\x108\xfe\xe1\
+\xf8\xa0\xf1A+\x9d\xf3T{\xa8\x9e{\xe4iY\xf1\
+\xac\xf3\xb8\x83XW\x01)\xcf\xb3\xea\xe5\x075'\xc3\
+F\xc7]\xc1\xd3>\x96\x01Th\xff\x84\xfaO\xb1\xb9\
+''X\xb5pe%Xa\xa0d\xd5%\xf2$\xc4\
+\x9c\xa3\x10B7\x0f[\xa9d\xe4>\xb6s\xc7\xb0$\
+\x99l\x01\xff\xf6y\xdb\xe7o\x9f?\x91\x94\x9e\x16$\
+\xa5Z\x00J\xaeO@k\xffr\x9eJ\xd4\xe7\xfc\xb6\
+\xff\x15\xb7FOf\x98\xe7Z%:%\xb8\xec?\xf6\
+\x03\x89a\x15\xefL\x0cO\xa4\x9a\xdfZ\xed\xbfy~\
+A\x1e\x8c\xaf\x08k\xaf\xb7\x0d[\xb5\x1c\xe4\xfeS-\
+7\xce9\xfe\x1brUd\x8d\xc9\xd1Td}\xe4k\
+U\xe6\x131e\xdf\xad\xe7\x22 \xc6\x05\x93\x89\xa1I\
+\xf5\xe2\x03\x07\x92Tno\x11\xb6\xda\xb73\x01U\xa4\
+\xf0\xe6%\xf5\x0b*\x00\xc9-\xa0%\xc2\xfeN\x85\xa8\
+\xfc\xfeDLV\x8b\x06\xa8\xbfy\xf5\x86\xc9j\x9d\x0e\
+\x8f\x09k\xbf\x7f\xc1\xb0U\xe2%\x13\x92Z\xe8\xc4\xad\
+Z\xd0\x86\x7f\x0fk\x7f\xf7\xddD\xa6\xe6\xfe\xb6\xaf\x16\
+\x90\x83\xf9\x83\x09\xed\xf8B\xd8\x04y\x98{\xde\xae5\
+\xf7p\x0e\x87\x0d\x97\x1a.\xb5\x90C\xb4A\x992\x17\
+\xa5\xfbKn\xe1\xb5In\x90d@\xb5\xd1\xdc%\x1d\
+\x07\x0e\xa2J\xe3i)\x9bq\xed\xac\xb0\xbf9e\x86\
+\xd2A\xe0`!\xadk\x1by\xb3%3U\xac\xcd \
+\xe8\x02\x1c\xad\x0d_H\xc8\x07\x07\x92c\x81\xd4\x8eC\
+\xd7W&S\x06\xa8&H\xca\x88\x1c@Z\xd5\x07\xfe\
+\x1c\x00\xff\xcf\x11\x15\xf0\x08\xe8\x05R\x16\x96\xeb\xe2\x80\
+X\x08^{\xf9>Pn\xba\x91\x97\xe9\x02\xbe>0\
+\xed\xc9\x02\x0fJ\xc7\x08d\xf2\x8a\x19@\xe8\xb9w\x9d\
+\x1ceP|\x0e\xbc\xc4A\x1f(x\xbe\xc7T\x00\xbe\
+\x9b\xdc/9\x1a\x9a3>\x07\xda\x17\xe8\x10\x01\xae\xb3\
+oi8\xb8\x12\x10\xb3c\xbc\xb4\x08\xecN\x10,\x95\
+\xfa\x99\xd5\x9a:\xc1R\xd9\x9f\xef\xefJE\xb66;\
+\x9c\x17\xcf\xbf\x830\x108^\xbe\xcb\xb0\x09\xb8Tr\
+\xfb^\xf7.\x90\xab\xca_\x92\x8b\x94c\x0a\x82\xfa_\
+\xc2\x96\x8aR\xf5R\x09\x80U\x8a9\xcc\x1f\xcc\x84A\
+\x9fhr\xdfy}\xa3\x0a\xd7Uw\xb7\x8e\xd4k\x8f\
+\x14\x90\x18\xf1\x5c{Vz\xf3\xb9o\xe9X\x12K\xf3\
+s\xf3<\x8d\x8b\xc0L\xe2\x06\xe7B\x9f\x100n\x12\
+Z?\xad\x0a\xee\xbc>\xcdG\x19P=\xe5~\x8fC\
+\xaf\x92\x9c\x07X\x05\xdeH.\xb5\xb8x^=\x0b\xbf\
+\x80Oe4\xe7O\x91\xad\xf8\xbd\xdc\xa0+#\x9d\x99\
+\xee\x22m\xd1\x8b\xaa\xe2\xd7#' 3\xbe\x93\xcf\xf5\
+CYiV)8/lE2\xd6\x93\x80\x19\xdf\x85\
+\xab\x01\xb9\xe6\x8c\xbc\xe8\xd4\x07\x0a\xa9C\x9f\xd6\xbc?\
+\xae#\xfd\xf4\xbc\xfd\x5c\x05\xfe\xb2\x89\xa8P)\x17\x88\
+K\xc4\xf4-\x03\xae\xcb\xfc\xb2\xdfw2\x94+r\xcd\
+]\xaa\x07EFGV\x8f\x83\xcf\xb1\x91\x18CJ\xb8\
+p(\xcc\xaf\x1c@\xfb\xfa\xd2\xba4\x8f\x9f\xfdQ\xe0\
+\x93\x81\xc4\xe6\xaea+\xd2(\x07\xb7}Z\xe2\x15\x92\
+J+\x86D\x12d\x8e\xd6\x01\x90g\xac\xc3\x99\xf1G\
+\xc2$\x81Q\xec\xc4Z\x1d\xf4\x98[w\xe6\x1d\xc4\x85\
+\xf9\x0b\xd2\xe8:\x04\x88\x1ca\xfa\xee \xe1\x1c\x05\x01\
+z\xd7\xa3\xce\xe1\xadD\x96\xf5\x84\xcb!\xd9\xf5\xf7|\
+s\xcf\xb7&\x08y\xc8\x03_p\x95\xb8S\xf9M\xb9\
+%\xac\xcf\x95\x88\x17\xb8\xd9\x07=\xf7\x94\xf3\xad\xeb\x96\
+\x001\xce8\x17\xfc\xbe\xc0\x15\x021+\xe5%\xfb\xe5\
+\xef\x8cG\x9e+\x15\x80\xf3K\xbe:\xab\x0c\x15\xf9\xa0\
+y\xa3\xe7>\xa1\xdb\xc5v\xadEA\x22f\x91\x81\x9d\
+\x13\x13\xf7\x0e[Z\xbbJV\xef\x063\xeb}\xcd?\
+\x09\x03\x15\xafd\x8dFRV\x89\x0a\xeb\xcbz\xc4\xad\
+a\x1c\x15J x\x12R\xbc9'\x0b2*w\x02\
+\xf9\x84H\x1f\x80\xe8r~\x187\xe4`\xfc\x8f,\x84\
+T\xe5\xfe\xcc\xec\x89N\xc8\xf4\xf0\x88\xb0\xb6\xbc\xbf\x12\
+6\x91h\xcd\x81\xc7\xb3fdF\x9b\xf3\xf3\xef\x93k\
+\xfb_\xa9\xd2\x94\xf7Q\x15\xbe\x5cG\xc3Y\xc3\xd7\x86\
+\xaf\xad\x00\x94\xb8!\x90@R=0N\xc8\xc2|I\
+\x8c\x81@?t\xee-n\x81\xe7\x9c\xb0\xb8\xd3\xf6\xb7\
+\xb7\xbf\x9d--\x0fJ\xff\xe0\xb0Uk\xc1\xc1S\xc9\
+k\xcf&\xfd\x95\xed\x83\xc2\xda\xf7\x17\x09[ZLJ\
+\xf60\xb996\x9f\x0b[X\xe5!Tw\x8e\x0a[\
+\x02\xd1\x9d\xdb\xec\xfc\xd6\xcem\xda\xeb=\xc3\xda\xef\xfd\
+\xe7\xf0\xb3\xa1\x9d\x7f\xc3?\x86\xb5\xd7\xbb\x0fw\x1b\xee\
+>\xed\x9b!\x9c\xbdg{\xf7\xb0\x15\xd7P\xa4a\xfe\
+h\x09\xbc\x87/5\xfbr\xea\xcf\xefYUV\x83\xf2\
+\xec\x15+\x04\x93}4{\xab\x91\xfc\x8d\xe7\x87\xb5\xeb\
+\xf9\x5cX\xfb\xbc\x9f\x86-\xf2\xb8{_\x106\xb1\xd5\
+?:\x12_\xc3k\x9a\xbd:\xa1\xca!w\xf8\xb7a\
+\xed\xe7-\xac\x0f\xce\x80\xed\x09a\xed\xfdN\x0d\x9b\x10\
+t\xe7M\x08:$\xbbI\x82;~i\xde_\xab\xf5\
+\xcf>\xea<q^\xea)O\x16\xf8\xa0\x10\x0e\x12\xe1\
+\x10\xe5\x0eY\xee\xe1\xf8\xb0\xa5\x85b\xf3\xa4\xb0\x15{\
+\xbf\x96\x0e\xfe\x0a.\x1c\xd0u\xc8\x98\x5c\xbf\xa0\xf4\xfe\
+_\xc1\xa0\x85\xad3\xf9\xf8\xf3\xe7y\xe8~\xaa\xd0)\
+\x81\x8b\xd4\xdc9\xe0\x9c\xb3_\xe7\xfbJ\xf0Tko\
+\xca\xc1\xee\xfcRX\x1b\xc7Wn_\xb5\x0d\xb5\x87{\
+\x87\xad\x10\xd8Y\x81/\x84r\xb6\xa0\x95\xdf\x99P\xfd\
+\xe2*\xe0\x879\xb7U\x9e\xc9[j\xa5R1Fr\
+\xee\xab'\x81N\x84\x93B\xec\xf8\xb1v=\x1f[\xdd\
+\x1f\xd2s\xa4\x91\x10\x16W\x0c[!\x0d \x04\xb5\xb4\
+iIP\x902Oq\x99\x90\xeb\xe57\x8b\x17$&\
+p\x04\x91\x19\xcc\xfd\xba\x90E8\x01\xb4<\xe4\xf9\xe8\
+\xba\xb4\x88\x0c\xef\x08[q\xe58\xffR\xed\xa0\xd8\xf9\
+SVq\xbcLX{\xbdZ\xd8\x92p\xd7Z:\xfe\
+\x9f\xb0\x95Z\xc3\xa3\xc3V\xad\x19\xfc\x02\xdf\x9f1\xd9\
+\xa2.\x96\x09\xfd\xf1=a\xed\xfa\x1e\x15\xb6 \x9e\xc6\
+\xcf\x87\xad\x10e9\x8e\x85\xf42n\x89\xa0\xd9W=\
+\x5c\x060\x0f\xde\x92\xc3x^\xf6\xc0n\xb3w\xe2\xed\
+Y\x11Gz\xe6 |\xc2\x0c\xd5\x1a\xdf5\xdf`\xe9\
+L\xaa\x5cd%\xaa2P \x8egg\x8f%\xf2\x17\
+\x0e\xda+\xe7\x03\xab*+z\x83\xf3\xc6k\xa1\x09\x14\
+\xf2\x01\x9a\xd86\x86\xcd!3;\xfc\xf8\xb3\xb0)\x80\
+\x9a+\x15*\xd9\x1c9\x81\x87q0P\xc8\xfe\x9e\x96\
+r\x1a\x1cI\x07\xfe\x02I\xdf-wg|.\x9b\x81\
+\xa7\x03\x96\x03\xdfC\xf4;\x19\xbf\x82dc\x81\x97Q\
+S\xa9\x12\x98z\x1f\xba\xa9z\x16\xe9\xd9\xf6\x88\x81\xbe\
+\x12w\x81\x8e\x0b\xe0g\x1d\x1b;\xf6~\xbf/\xe0\xe0\
+\xc0\x18?\xf7\x9f\x08\x91r\xdc:\xc8r\x05\x96W(\
+Y\xb1\xb9\x82qdAw\xe7\xf1\x95\x90\x11`v\x88\
+\x86\xe6n6[\x1d\x10}\xe5\xb6\xeb\xad<\xa0%`\
+Q\x17\x98\x13\x13*)\xc6\xd5\xfdq\x88\xfc\x1d]y\
+\x89\x16\xf7'\xa0\xceyT\x9c\x11z\x84d\xaes^\
+\xd6\xbc\xcd\x80\xb8z\xd1d\x12e*9\xba\x9fJ\xe8\
+QB\x1c\x0f\xa8\xb4r\xfc9\xa4*\xf8\xe6\xe9\xb5\xd3\
+\x81T\x19G\x82\xd2\x93H\x82X\x1f\x9b\x95]\x01\x87\
+J\xaf\xf5\xec\xf3\xc9\xc7\xf9;?\xbfH\xd7J\xd2W\
+\xac\xfb\x16\x93\x85\x8bb7i[\x9f\x10\xfaf:\xb0\
+\x027\x0e\x1e\x87\xd5\xbcR\xd1Fv\xa5\x82\xc8\xe1\xf6\
+\xa5b `U\xf9\xd4\x93~\xdb\xec5\x97Q\xd6\x03\
+\xf6\x9e\x84\x00\xfeM\xb2\xb1\x83\x84zMh^\x91\xab\
+z.\xae\xdb\xf3\xefI!%E\xf4l\xab\xd4\xa9\xc8\
+\x09\xe8;\x95\x86\x22\xe3t\xfdH2\xcd\x0f\xf3\xdb<\
+\xe1\x88\xf4d\xa3=gD\xdf\xe3/\x10\xe9\x112\xd6\
+\x8d\xc0\x5c\x8b\x81y\xd3\xa9\x18\x1c o\xd8\x7f\xbe\xfb\
+\xb3~\xed\x93\x9e\x97\x04\x84@\x18\xf7\x80\xc4\x85\xfb\xec\
+HT+ag]\xe3^\xd1;\x8f\xecKE;\xbf\
+\xaf^r\x15P\xfb\xb5\xca@B\xeb\x0a\xaa.\x81\x84\
+\x15\x1f9\xa4\x00\x15\xf9Q\xca\x12V\x22\xde}\xf5\xe3\
+\x81\x0c7\x03\x9c\xda\xdf\xcd\x1b\xfb\x9d\xf5\x9a-u\xe3\
+\x0d\xc3\x16\x12\xa3\x92A\x14\xe8\xda\xaf\xfe5[\xb9p\
+c\xe8\xd1\x7fa\x9b\xef/\x5cz\x16+1B6\xef\
+A\x01FM=\xed\xc7\xae\x1c9=\xc6H\x992\x81\
+R\xac\xc5\xe9\xc0\x96<cB\xac\xab\x12\xa6'\x12\x22\
+E\xe2\xc5\x97\xf1U\xf1\xb2\x7fe\xc0\xadB\x7f@\xab\
+\x8e\xf9\xab\x92O\x0f\x9d\x83\x99\xac\xd5\xe5@ZwH\
+\xf6\xe8BCrh\x99\x10\xa0 \x13\x04\x99\xfe`\xd8\
+\xaa\xa2o\x1f2\x9f\xfd\x9d\x96\xa3TU*\x12\xab\xac\
+\x1c\x19\xc7\x9a\xefZ\x1a\xc8AB\x5c\xe4~#QY\
+\xa4\x84\xd6\x1d\xe4T\x07\x01?\xa0\xd2\xaf\xe2\x86\x0cL\
+\x00\xa1\x17\xd5\xfc\xbcm\x8e\x93\xc4\xb1J#\xf9e\xc8\
+\xa7t\x5c\x87o\x86M\x95\xdd\x19\x82\x8f\xf5[\xcb\x1b\
+\xff&\xf7\xf5\x16\xfe\x9f5\x9c\xb5\xe2nzy\xd8R\
+\x81\xafu\xce\x0f\xea\x91>?\xcb\xf9\x9d\xf2YE\xe6\
+\xfc\xfalq\xfdqB\xd5\xa35\xe0\x88\xe9\xfb\x1fM\
+\x95\xec\xac\xc4\x0b\xb4\xb7\xbf\x1b\x96\x89\x94W\xae\x0aR\
+T\x14\x12)\xb7yM\xd8R\x09\x1dN\x0ek\x8f\xf9\
+\xd2am\xb9\xeek\xd6\xce\xbb\xe1\x87\xcdZ\xa0\xbb\xf3\
+\x93\xb0\xf6zR\x0b\xf4N\x9a*\xe6\xd7\x9c*\xe6\xd9\
+\x0a\xd0\xc2\xaf\xbbD\x00\xb6\xbdx\xd8\xd4J0\xcb\xf3\
+\x81\x0a\xc7n\x12\x01\xe0\x9d\x9b\xb5\xeb\x1bn\x19\xb6\x82\
+\xfcKL\x1f:\xb1\x17-\xfbZ&\xc4\xb6\xf7\x09[\
+\x10]\xc3\xdb\xe6\x9e\xef\xe1\x92a\x89\x0c\x0a\xae\x81\x8b\
+\x86--\xc0\x9b\x977k\xeb`\xdf\xa7\xc2\x16\xff{\
+x@\xb36O\x87\xc76k\xebx\xe7\xeb;g\xef\
+\x9c=\xcd\x9b\x99\xa3\x84\x0e\xbb\x04\xd7u\xe7\x80n|\
+q`2\xda\xdf\x9d\xda\x02\x9aSS\xf7\xfd\xd4\xa9\xf5\
+\xf17\xc7\xdf\x9c\x10{\x93?\x15\xb8\x82)\xae\xa0\x1e\
+\x90\x05\x95\x8a\x072\xf0\x84(\xaeD\x0e\x84\x8f\xf3\x84\
+<f&r\x04b\xb5\xff:\x9f\xf8\x15o\x9d\x0b\x92\
+\x0a\x8fm\x8f\x99\x12\xffZa\xaar}\xd7\x84\xbc\x7f\
+d^'\xa5\x92@\xee\xd0\xba\xef\xb8c\xac\xeb\xe1\xd8\
+\xb0%\x81\x84Ls\xe7\xdb;\xdf\xdai\xf3i\xfb\xc0\
+\xed)\xdbSVr\xe77\xca\x9e\xef\x84\x92\x17\x09\xa1\
+un\x1dS\x01@\xa6\x07:o\x7fN\xd5\x82\xcd\xeb\
+\xc2V\xd0\xff}so~\xc9&\xa6\xaaY\x15({\
+\xae\x93\xc7\xedy\xfc\x84\x80K\xc8=9\xbej\xa1\x13\
+\xf8&\xc9_A\xf5\xb5T\x08\x90\xbd\x7f\xb2\xf5CP\
+\x14b\x83\x9f\xb9\xb7\xe3T\xb2/A\x82!\xf7\xcb\xf3\
+{\xfb;aK\x22l<(lEj\x98\x89\xea\xe1\
+\xb4\xb0\x85|\x97\xac\xa9Dg\xc9\xe4jq\xc8\x84q\
+\xcdC\xfb\xb1\x04u\xb6\x14h\xa1\xa9\x16@\x85\x9d<\
+\xf7\xa6\xc4\xd9\xebV\xfbm\xfa\x0f\xc3\x1b\xc3V\xfb\x1b\
+\x04\x83D\xe9\xa7\x86Y\xf6T\x8b\x87V\xb3'\x86\xad\
+\x12=\x12\xf0\x19\xf7\xec+9$,\xae\xc7V\x85l\
+\xaeD\xeb\xcdOH\xf2\xe6z\x99I\xc8\x9e\x11d@\
+\x95!N\xe8\xd5x\x93\xb0E\x16f\xcf\xf3\x12\xea\xf5\
+\xe1\xec\x05\xd2#\x04\x9aD\x96(e\xfblPzb\
+\xb0\x04\xef\xb9ff\x06o\x99\x15\x1f\xbd\x95Y\xf9\x92\
+\xa95\x00\xe3\xfb\xe6\x16\x84\xe6\xb4\xcd\x0bY\xa0\xea\xc0\
+\xd0K\xac\x02N\xf6Af\xe6r\x99\xe9\x03-\x91\x99\
+\xec+\x97\x02\x7f\x01b\xea\xdc\x96\xa3|lGN\xc6\
+!\xefI\xcb\xf4\xce\xaa|q\x9c}\x8e\x83\xda\xf7\xc7\
+\x94\x0c\xdd\x1c\xf0-dq\xf3Fv\x95t\x94\xae\xd8\
+\x91\x87\xf9<\xd7K\x1f\xdc\x02r\x80b\xd17\x1fT\
+\xa0\xb5x\xfc\xcb\xdcsS\xbd\x9c\xe4\x03Ud9\x18\
+=Y\x9c\x0a\xcbRa\x9f\x03\xec\xc3:\x99?\x81@\
+_q\x96\xb8\xe8\x91\x01~\xafW3\xf0\xff\xee\xef@\
+\x88\xff\xee\x00\xe5R\x9d\xca\x80\x00\x02\xd4\xd8\x01\xe1\xf3\
+s\x1d\xe9A\xad\x8c\xa7\x8dYo\x12d\x8au&p\
+\x11\xc8r\xf8\xdd\x1f\x12\x14\x09!H\x86\xa5\xe7y\xbe\
+\x0e\x09\x17\xf3\x07t\xffZ\xd9\xeb+\xd1\xd1C\xd2!\
+j\x04\xdc\x12e\xdf\xcd\xfb\xe4\xa0v\xc8\x82=d\x8e\
+8\xe2'\x97\xae\xfc\xfc<\xfb@\xce\xdf\xf7H\x10\x8e\
+c\x06\xb0\x95\xa8\x13\xd8`\xe3\xde\x97,\xb7\x99\xe1,\
+5\x0a,\xff\x0e6\xcfYba\x09\xac\xe7\xf9\xe7y\
+\xaa$\xaa4Z\x87X\xd2\x7f9l\x15(\x81Bg\
+\x06z\x14\x00<'+kY\x19\xc4\x19\xa2B\xc5a\
+m{\xd9\x5cI\xcc\x80\xe0\x80\x84\x88u\xa9R\x8f\x9b\
+\x00$\xcc\xb8\x19\x7f\x89/\xf3\xdcW\xdfz\x01\xa9\xa3\
+r\x9f\xd7Q\xf7k\xdf\x90h\x00\xb1\xeed\x1b\xebs\
+\x05\xf4\xc6\xcf|\xea\xf6\xa1J \xf8\x7f\xfb\x11\x96c\
+\x95P\xf3\xbfC\x9a\xd4<\xf7w\xf6#\xcf\xd1~d\
+?7~d\x0b%,\x5c\xb7\xeb\xa3\x22`\xfd\xe7z\
+,H\xbb\xfd\xcd\xba\xc3\xc2-1 \x11\xcbA\xc1\xae\
+\x0b\x81\xe6\xfd\xcd3\x89(l\xf3\xaeC\x85<I\x9a\
+@\xa4K\xf6\x07\x19n&&\x8a\xb4M\x0fkB)\
+\x8bC\xc1|A.\x9a\xdc9\xc8\xdf\xea\xfdA\xe1\xb3\
+B^\xa4JY\xf9\x0a\xe0m@o\x9d#-\x5c\xff\
+\xf8Db\xe8\x1c\x17 \xaa$^u\x12\x90\x5c*\xe5\
+\x90\x05\x02s\xf3\x0f{\xf8\xcb\xc3\x16}\xef\xaad\xab\
+4g\x82\xb2\xd6\x1fdG\xcf\xc2m^)`H\xe0\
+\xa9\xf8\xbc3l\xc5\xee-\xa0\xcfV\xc1\x0a\x9c\x9d\xa3\
+\x90\x8b\xb9~\x8b\x95ZB\x16\x02\x82:\x86\x04\xb0\xf7\
+u\xbf\xc8\xfep/`\xc3\xb6?Y\x17\xbe\xecS\xce\
+I\x88\xadL,\x14\xc7\x89yg\xdc{yQ$\x94\
+\xd9\xcaY\xac\xf4I\x0eW$\x86\xbd\x1c\xac\x00\xc7\xb8\
+\xe2@\xc8\xf5\x04\xf9\xa8\x02Lf\xac\xfc5\x8e\xf17\
+R6,\x1dt\xec\xfbu\x1d\x0f\x08k\xcf\xff\x98\xb0\
+\xf6z\x5c\xd8J.\xadOPr\xe0\xf5\xfef\xa0U\
+~\x0a\xc7\xdb\xfe\x91\x15\xd6J$eA\xaa\x10G\xaf\
+\xcf\x9e\xdd\xf47\xc9A\x0fO\x0a[\x10$\x93\xca\xc1\
+\x9b\xd3\xcf\xb8\xc0\x22\x9f8\x1c\x1d\xd6\xb6\x9bC\xc2\x16\
+5\x8f\x9aw\x9e\x7f\xae\xeb\xe1\x13\xc3'\x87\xe6p\xef\
+?4\xac\xbd\xfe}\xb3\x16\x88\xef\x5c.l\x0a\x8c\x9b\
+\xb5\xdf\xbb[\xb36_wn\xb4s\xe3\x9d\x1b/\x15\
+\x5c~r\x9d?\xfc\xbe\x0f\xef\xf9P\x04VTi\xa6\
+\xe7\xf3\xfe)@\xfc\xf6N\x0b\xecw\xbe\x13\xb6\xba\x9e\
+\x9e\xa4\x8c\x0aP\xb6\xaeL$\x80\xf7\xc8\xd6\xa5\xc7\xb7\
+\xeb|\xca\xfe'\xef\x0f]\xf9\xdfo\xf6{9\xbfo\
+\xdb\xe2\xac\x1b4\xfb\xd5\xdcn\xc7%\x01\xb3\xf7\x1ba\
+\xed\xe7O\x0fk\xaf\xef\x0ak\xd7q\xaf\xb0)\x90\x9c\
+\x90p\xdb\xb7\x86\xb5\xeb\xfd\x5cX{\xffK\x87\xa5|\
+\xe8\xdb\x17\x12\xb8\xed]\xb7\xffm{\xd7\x05\x011\xfe\
+t\xfc\xcf\x90q\x1b\xaf\x9b\xb2\xa2g\xcc\xd0\xfbBJ\
+\x99\xc7\x89\xd4\xda~\x22l\x9a?\x13Re\xd8\x0e\x9b\
+!\xd6\xc5c\xc2\x96\x02b\xcd\xafdK\xaf\xdej-\
+7\xbdZ\x87\xf3]\xc2\xca\xf9\xad\xf5\xc0~\xf4\x959\
+\xf0\xaey->\xb1\xbe\x9c/\x02V\xfel\x9e{\x13\
+B\xe5\xa1\x13\xf9\xde\xdb&\xf2\xbd\x5c\xb7;w\x0ak\
+\xf7\xf7\x94\xed\x93\xb7\xed:\xf6\xder\xef\xad\xf6\xdej\
+j\xc1\x9a\xce\x9f\xe1\xaf\xc2V\x094\xbd\xee\xd6\x09R\
+\xc4\xacPC\x9a\xf2\x1b\xa9\xcfT\x81\xca\xf9\xff\xcdi\
+e\x07\xd2g\xe6 \xe1\xbf\xda7\xf9\x1bW\xcb\x02\x87\
+\xf1#\x0b\x9c\xfbF!\x9520&K\x0b\xf1Q\x5c\
+7\x12\xecZ\xc4\xecO\x12\xee\xbd\xba\x19\xe4T\x22\xcd\
+$ \xab\xf5\x0a\xf7\x8c}\x7f\x8d\x9c\x09\x19\xf8\xdf\x0d\
+[%\xc83\x81?|1l\x91\xcb\x1b~;lu\
+>\xa5:\x12\xee\x08\x89\x1ar\xee\x15\x0f\x0b\xfc\xb3U\
+\xa8\x12\x1e\x99H\xad\xd62\xe4\x8f)\xc7\x8aS\xa7\xe6\
+\xb9\x04\x8a\xf3\xe5\x9f\xc2\x96\xfd\xa9\xe4\x1f/\x1d\xb6b\
+\xff\x87\xfc\xc2e#\x81\x9b\xfb\xd7\xbe\xf1\x98\xb0Uf\
+\x8aC\x91\xbdiErs\xf7\xb0i\x80\xe6\xca\x83\x1b\
+\xcc\xbf\x1b.:\xcb\xb3\xd8h\xf54\xd7\xc2{\xd2\xf8\
+\xc4\xf1\x89\xab\xc0H\x86\x18[-\xee\x00\x07\x81\x1e\x15\
+\xac\xebH{\x12Z\xab\xa7\x0b\xe4\xaa\xc8\x06_\x95\xf2\
+\x0c\xcf\xc9J\xdc\x0d\xf3\x80\xe0(\xcb\x80r8,\x18\
+\x95\xe7\xac0\x8e_\x9c\xc9\x1aZ\xf86g\xfc\x0c\x1c\
+G|\xdf\xcf\x878\x17\xe9\x98\x83A\xe0/\xc0t\xc0\
+\xa9\xa4r\xf8\x05\xee\x02K=<}\x0bAG\xe6U\
+\x81)\x87\xc4\xf82\xee={\x00\x00 \x00IDA\
+T]\xb4X\xfbg\x07\x9eCjc\x13\xf8\xab\xc8\xbb\
+\xde%\x00\x9e\x1dy\x90x\x99\xb6^\xae\xc8}\x81~\
+/z\xees\xe0\xd8s\x1c\xec\xef~n\x1c]_\x17\
+\x98T\xa0(p_\x02\x0c\xbd\xf8\xf3\xdf-d\x81s\
+ l\x836\x0e=y\x9f\x9f\x0b z\x16}\xefc\
+\x9c\x04P\xae\xc3\x179\x9b\x94\x17)}]\xe48H\
+>\xb0\xfc\x9f\x9b\x1b?\xb2>\xf3\xa7\x87x\xf6\xaa\x04\
+\x1c\x1b\xcf\x7f\x91\xc9\xdb-\x13i\x1c\xfc\xfdE:2\
+\xc2^\x85\x81\x83~\xfd\xfc\xfb\xef'\xa4\xdeu\xd9x\
+=o=\xcf\xd9[\xd96\xc3\xf9y]5\xe7\xa3\xcc\
+l\x0f\xc1\xee\x12:\xc5\xbd\xe0\xf7\xb0\xb9r\xfc\xcd7\
+\xd7k| b\x0e\xcd^&\x09\xa4K\xe4>\xf1\xc3\
+\x84 \x83\x90e\xe5\xb1Z\x05<?H\x08Pk\x95\
+\xdb\x932\x10\x95\x18\x80\x04\x10\xd8\xf8\xfd;fB\xed\
+S\xd9\xdb\x8a\x94\xca\xfc\xe5\xb0y^\xafM\x07\xf4\xf1\
+\xf3\xbe\xb7y\xe6,\x7fU\xe3\xa3\xa2\xe7\x00S\xb1\xe0\
+\xe0\x22m\xf3\x1c!j$\xa4\xbc\xcfO2\x91\x03I\
+\xe0\xc04O\xbaDCU\xcc=\x9f\x9d.\xe1\xe79\
+X7=\xbb{\xdf\x12C\x0d\xc3\xfb.\x9f?'\xa6\
+<\x87t\xec\x8b-W\xe2\xa5\x97\x09\xf4>\x9e\xb3\xc0\
+\xbd'9\xb2N|\xbe\xf7\xfdE\x88\x05\xf3T\x80\xe0\
+s:\xce\x95B\xa0i\x11 \xaf\x97P\xf7J\x10\xc8\
+\xb0s\x9c\xac/\xef\xaf\xe2\x83\x94\xcez\x02\x99\xe7\xb0\
+\xd9\x8f\xf2y\xd6\xba\x87\xd8\xf1\xf9}\xa2\xc5:\xf2e\
+\x5c\x8c\x13$\x82\x1eX\xe4tz@Ads\x1d\x16\
+\xa2\xe1O7\x8f\x9a\x10~Z\x05\x04\xc2>\xef'\x13\
+k\xc7\xa2\x8b\xacB\xab\xe2-\x81\x95\x0e\xe0\xf6!a\
+K\xa2\xa18\x09\xb2\xc2V\xe7\xac\xf5\x97\xe4\x83*8\
+E&\x07\xc9a\xfc$\xbc\xb2\x17\xb6H\xbb\xac\x0b\xad\
+\x84 \xa4Y\xd9\x06\xed/\xc4\x16\x08fV\x9c=\xff\
+\xf1\xb1a+\xb2;\xf3\xc5s\xe6\xd8\x1b\xe7$\xaf2\
+\x9f+1\xc8A\xe6H\xf6\xe7\xb6\xe7o\x1e\x22\xa7K\
+\xf2\xa8\xda\xa7\xf2\xf9W\xe5\x0e\x84;\x9fo\xb1u'\
+\x89^U\xa2$\xf0\xec\x83T\x22r^\x91U+\x88\
+\xab\x84Q\x8e\x87\x84\x03\xd98\xfa\xf5U\xc1\x7f\xe5L\
+z7<!l\x99\xbf\xc8\xbe\x86{\x84\xadzi{\
+\xd9C\xfe\x81\xc4:DU\x9fP\xccDe\xf9\x7fd\
+\xaf2@+\xa4\xc6\x90\xfb\x99y\xa2\x92\xeb\xf3\x93\xeb\
+J\xaf\xf9p\xfd\xe1\x06\xc3\x0d&\xd9\xc2Y\x8d\xe0\x9b\
+\xe37b}\x0f\x7f\xd6\xac\xad\x83\xe1\xa3\xcd\xfeqE\
+b\x89\xec2\xb90\x86?\x0ek\xdb\xe8\xd7\xc2\xda\xed\
+<\xb3\xd9i\xed\xfbk\x87\xb5\xd7c\xc3&\xc8\xff\xbd\
+\x02\xf2\xbfs\xfa\xce\x19;g\xb4\xbf;j8r8\
+r:_\xe6s\x09)\xe3\x8dg\xc8\xb9\x04\xf8\x9e\x07\
+\xef\xf9\xc3 \xb7\x0bJ\xc4 E\x9c\x0a]\x9fm\xef\
+\xf3\xfd\xb0\xf6\xf3O\x87M\xf3\xed\xee\xd3|\xe3\xa7w\
+-Wz\x87\xa7\xf7\x0dD\xc2Aa\xed}\xfe$\xac\
+\xbd>#,\x03\x8e\x9b/\xe4\x82\xdb\x0b\x87\xb5c\xe1\
+\x8cf\x7f\x9d\xe4\x9d\xa7,rt{\xef\x12\xb6\xb0\xd1\
+O\xd0\xe9@H]\xb5\xd9\x95\xb3\x92\xdc\xe2\x89\xfd\xdf\
+l\xf6\x8d\x9c\xb7\xb7^U\x9c\xb3\xf06\xec\x84\xb5\xd7\
+\xcf\xb4\xfb\xf9\xcc\xd4z|\xf8pX\x22\x0c\x1e\xb0\x82\
+F\xbf*+\xc4X\xfe\x13\xca\xbe}\xdd\xf6\xb5\xdb\xd7\
+.j,\xc3\xa1aK\xe2\xa5H\x09o\x10\xd6~\xef\
+\xb9a\xabD@&L \x90\xc6\xff\x11\xb6\x9c\x87\xa5\
+[O\xbf\xdd\xbe\xc5\xff\xc0I\x81\xe3E\x22\x0f\x89\xdc\
+Bn<\xcfw~\xf3\x87\xa6\xe6\xce=\xedn\x9b\xad\
+8\xc8\xd2_\xdd\x1e\x13\xb6\xb4\xf8\x14\xa2\x05d\x1c\xa7\
+K\x06\xd8\xa5\xaaq\x9b\xb0\x05\x09S\xac\xf6\x12\xd3\xfc\
+=\x95e\xf1\x00\x0e\x80Ll\x97\x1c\xb2u\x0b\xe9|\
+\xbf\x99E\xbf\xc8\xac\x91(\x92[\xcd\xeb)\xa4\xf2\xdd\
+\xc3v=\xc79P\xb5\x7fgo\xfd\xf8\xc8\xb0\x95_\
+.aj\x7fT\xd1\xa6o\x0f\xf1E&\x90,i\xb4\
+\xac<z\xd5\xda\x00\xe1\x96\x89\xedBvv\x05\x8b\xe1\
+\x22a\xed\xf7\xcf\x09k\xaf\x8f\x9b9\xe5\x9cC\xb5\xcf\
+\xe3\xe4xE\xd8\xea\xb9\xf2\x17\xb3\xc5\xac\xf6Q\xa4\xb7\
+\xce'_\xfc@-d\x12\xce\xd9bT\x05E\xe3\xe2\
+\x1c\xa32\xa4\xa58U\x13\x86\xf3\xc2\xda\xff\x7f8l\
+%o\x9c\xf1\xc1\xbe\xa9\x87\xe75\x0bD\x0e\xc4\xaf\x0e\
+p$8\x17M9\x96$u)\x87,u\xa3\xabw\
+M\xe6\xab;\x90K\xc6\x06\xa9C\xf6\xe2o\x9e\x1f\xd6\
+^\xcf\x0a\x9b2\xef\xf3\x00\xfeCf<d\x9e\xb2\xd7\
+\xa62\xe9d9\xb0\xa6\xcb\xb0-z\xc33\xeben\
+\x00\xe5\x00\x0a\xec\x16=hd\x80\xf3A\xfb\xc2\xb97\
+p\xb8y\xd8\x94\x19\x9d7\x96\x1eZ\xca\xb1\xea+\xc3\
+W\xca\x8a\xa8\xdf\xe3 \x1b\xaf\xee\xef+\xb0P\x01s\
+\x9d\xbdLVO2\xc8!\xe5\x88\x82\xe6\xe4AZ\xd7\
+\xe3\xe0\xe3\xc8\x9bp\xae\xc3\xfb\x1dV=\xc3t\xc5w\
+Ch\x05\x00=\x19[\xdf\x1a\xd0\x07\x9c\xfd\xab\xbf\xef\
+I\x0a9R\xae\xc3\xfd\xcbPBD\x1c]\x09\x8c\xf9\
+\xff\x8f\xec \xcb\x87\xe7\xdf;\xe8d\xfc8>>O\
+%\x059\x0bG!9\x11*@\x10\xc0d&2\xa8\
+\xf7&\xf2=\x1bef\xf8\x8a\x5c\x83\xdc$\x872I\
+/k\xde\x0a\xb0\x04\x22\xee\xf3\xca9\xbf\x0e\xeb\xf4\x88\
+\xb7\x1dy\xa0\xf1\xebe\xf6~\x91Z\x82\xdf\xf7\xd5\xcb\
+\xe7\x19\x07\x95|=q\x1c\xb2\x83:\x8e\x8c\x9fud\
+\x8e\x9e\x9b\x00\xf2\xb8\x0cxO\xc8\x04\x17\x12\xc6\xac0\
+o\x5c\x8fye\x9c\x8dGO>\xd9\xb5\xe4l.\x9b\
+\x19\xe1\x8b\xcc\xec\xce5\xffA\xace\xa6\x1d\xc0\xee\xc3\
+x88\x04b6j\xfb\xd5e;Y=Pa\x08\
+\xa1\x93\x93\x1d\xdf\xbc\x930\xd0\x9bH\x0f\x17k\xae\xc0\
+4\x1d\xae\xf1\x88$-\xb5/\x1a7\x15\x81\xbe7^\
+\xe0\x0c\xf2-qh\xbd!\xfb\xfbYAy\xe7\xc0\xbd\
+\xaf\x90\xbb\x7f\x09L\xf2\x95z\xe8\xed\x9b\xbd\xfcf\x0f\
+\xd9\x17\xa8\x80,wrj\xd5\x82`\xdf\xeae\x0d=\
+g\x08\x86LpT\xab\x06n\x82\xbeU\xa1S!\xa8\
+\xf1PY0^\xf6\x0f\x09\x0e\x9c\x10\xf6_\x8e\x96\xfb\
+t\x9d>\xa7'k5_\xf4\xf0[\xc7\x12\x04\xd9\xdb\
+W\xe7\x8f\xfd\xd6\xfbH\x00X/\xf6A\x95\x14\xfb/\
+rZ\x01\x99\xf7\xf1w\x9e\xa7uh\x1c\xa85\xe8q\
+\xf7\x9c\xcc\xeb\x84\xe4\x17I\xd2\x92\x98\x9e\xc7\xd7x\x98\
+\x7f\x12\xe4\x09\xbd\xe48n\x1f\x10\xb6\x04J\xe5\x18\x93\
+o\xc3Z\x0d\xc1\xc7aLv\xfdb\xe5W9\x0e\x08\
+\xf1\xcbW\xec\xcbzU\x13\xd2[\x8e)\x99&\xfb\x07\
+\xd2\xa7\xdco\x8b\xbc,\x13n\xe3{\xc3V\xc8\x06\xa4\
+Q\xfc\x04$x\x09\xed,H'\xb2M_Y9u\
+\x9d\x158j\xa9H\xb6\xef\xd2\xb7\xf7\x9c{\x8e\x9e\x84\
+\xc0Vb\x8a\xe3/A\x99d\x93EB\xdc\xed\xbb\x85\
+\xac\x93P4\x8f{\xce\x1fd~\x89$+R\xb6O\
+\x84M\x95\xc3f\xab}\x15r\xa2C\xd8\x15\x1b:\x99\
+.\xeb\xc8}Y_z\xa9\xd3\x91\x1d\xf7\x85\xb5\xbf\xff\
+lX{=3l\x09\xcc\x90\xd9\x8e\xb7\x0e[\xcd{\
+\xfb\x80\xc2\x84s\x0d\xe2\xa1\x93W\xae\xf1\xcc\x1e\xf0j\
+\xa9\xd0\xa2\x02\x9a\x8f\xb4\xf2\xdc\xb0\x15\xc2\x0e\xa4X \
+\x06\x19\x8a\xebC\xab\xc0u\xc6k\x8f\x81\xf4\xbaPX\
+:\xfa\xefh\xe3\xf9\xbcf\xed\xff\xb77ov\xb3D\
+\xf0<s\x09\xb4[ \xdf\xac\xbd\xbe9\xac\xbd^\xa7\
+Y\x0b\xe8w>\x15\xd6\xbe\xbfv\xfb>\xb8\xb4\xf6\x87\
+\xb5\xd7\x8f\x0fg\x0eg\xae\xf4\xc9?\x9b\xa4\xa3\x90\xae\
+\xb9_\xb7pe\x22kV\x19\xdc\xff\x82\xb0e\xfc\x14\
+\xda\x86S\x86\x07\x0d\xa7,rg\xdb\xdf\x0aK$\xe8\
+U\x16r\xb1\xed%\xc2\x96\xf3~\xe7]a\xed}\x7f\
+o\xff\xef\xef\xff\xfd\x89l\xec\xb1\xc3c\xa7\xf96\xed\
+\xf7\xc3\xf1\xc3\x95\xa2\xb7~\xef\x0d\xf7\xfe\xea\xde\x1b.\
+\x01\xef\x14\x88\xbe\xa9\xfd\xff\xd5\xc3\xda\xff\xdf&\xac\xbd\
+\x9e\x14\xd6>\xe7\xe1a\x0b\xa4y\xfc\x9d\xf1\xce\xd1R\
+\x1b\xe9\xefH\x80\xef\x1c\x1e\xb6\xf4\x82W\xa2+\x13|\
+\x95H\xc8\x84\xce\xe6\xc2\x9b\x8bD\xcb\x85\xc0\xc6\xfe\xe4\
+y\x8e\xc3\xdc\xfb?\xfc(l\x95\xb8\xcbV\x18\x81\xd2\
+\xce\x0d\xc3\xda\xef\x1d\x11\xd6^\xcf\x9c\x9fC\xcd+H\
+\xdf<\x1fB\xfc1\xe4\x1f\xedC\xde\x17\xf7\x86}\xa7\
+\xd4k\xf4\xa2;7\xb4b \x13w\x8e\x08\xa4!\x90\
+T\x90\xa9\x8e\xbcln1T\xe1\xdf91lE\x9a\
+\xaa\xb7;\xcfG\x1c\x0e\x12y\xf5\xa5\x22\xcf?\xc9x\
+a\xe2\x8a\x18W\xd7\x9bqY\xf9\xafZ\x09\xae\x5cH\
+b-\x9e?\x9f\xec\xfc\xc7SJ88\x0c\xce\xdd\xac\
+\xc9\xa6%\x98\x15\x90 \xd2\xb4\xd0\xe1.P\xa9\xe6\x17\
+\xe4\xbe\x5c$\xba]!\xaaHh\xed\x17\xd8\xf9!\x02\
+\xbe\x11\xb6:\x17\xb3\xe0[q\x17\x95\x88l\xd9\xac\x8a\
+;\x84lr\xddT\x02#\x11]\xf6\xa1\x22%Uq\
+\xb7\xaff\x1c@\x1d\xa6Z\xf8z\xb2F\xf2\x80\x99\x10\
+!\xfbW\xa4\x89\xb8V\x04\xf6Tf \xdb\xb4\x14\x92\
+[\x14W\x7f(li\xd5\x1b\xbe\x1c\xd6~\xfe\x99\xb0\
+e\xbe\xed\x9b\xf4\xaf\x0fZ\x05B\x97\x9cj\xaa\xf3\xc6\
+u\x9d\x95\xee5G\xe7\xec\x1c\xe8\x0f'\x09\x19]\xf1\
+ \x1b\xb9\xce\xaag\x0e\xdbh|\xf7\x1bKOH\x91\
+\xa5`\x91FFC&\xe5\x113\x0b\xe7\xe6\xd9\x9bg\
+\x05\xdb\xe5\x9e\x87OV\x07\x94\x83\xc4FV=x*\
+R\x0e8\x10\xad\xcf\xe6B\xf3\xe5\xa0!\x13\xc8\x91\xcd\
+\x8c\xee\xb4\xc1?o%[\x86\x15\xb9\x0f\x089\xe6W\
+H\xd2\xbcd\xdb]\x05\xd0\xbb!m^\xfb\x00\xdf\xf5\
+\xa8Ps\x94{\x99\xba\xde\xf1\xef\xd9\xd8\xf5\xc6bs\
+\xd7\x03\x92\xba\xcd\xf5y*\x15\x02?\x995\x8e\xe6\x85\
+\xf2\xbe9\xc8] T\xe3+\x80?lw\xc0]\xdf\
+\xf7?\xbfx\x05\xa6\x12\x05\xbbe\xb9\xbaJ\xde\x0a\xca\
+>;F\xc6M\xa0a\x9c/\x93\x8e\xbb\xc0F\x00\xdd\
+\xf5\xfe\x96\xcc\x1aG\x80\xa3\xcba\xfa^B\xbb\xb0\xaf\
+_x\xee\x0d+y\xa9\xec\xedi\xee\xc0\xc4\xbe)C\
+\x5c\x89\x17\xef\xfb\xda\x84\xdc\xa9\xacef\xbb\x9e\x97\xe7\
+ \xc0r\xff?\xde\xcd\x01q\x80J\x02G\xdd8\xd9\
+x\xcd\x17P\xee\xa3\xb2\xb2.\xa1d\x1c\x04\x80C\xc9\
+\x05\xce\xc8\x05*\x10\x10?*\xa7\x1c?\xf3\xd2\xf3\x92\
+`\xe9\x11\x1f\x92\x14\x17-\xce\x84\x199\xa1buh\
+&\x16\xae\xd69\x92\xae\xd3<\xeb9&\x042\x9e\xa3\
+\x8d\x5c\x80\x96\x95\xab\xcd\xf5\xc2V\xfb\xc4?\x84M\xc8\
+\x8d\xd9A\xbeF\x06\xca>W`g\x1dX\x17 g\
+=\xf9\xa6\xe7\xfb\xd5\x5cg;9\x8e\x90? \xbf\x12\
+\x16\xf4m\xc9\xed\x90\xd5\xd2\xcb+\x01\xa17\xf0\xc4\x1c\
+o\x8e\xbeu\xd6\xb7\xca\x18/\xf3\x9e\x0a\x84\xf1p`\
+\x9b'\x12D\xd6M\xbf\x1f\xd9\xa7\x04\x86\x1cr\xd7K\
+N\x10\x14\x15D\xff\xeaa\xabJmO\xe2\xa7\x82\x0f\
+a\xe2\xf7\x91\xf9\xe5:(rF?\xf7\xf9}\xe2@\
+&\xdc\xb9!Q\xe5\xf3\xac\xff\xaee\xa7\xee\x8f\x03\x83\
+C$[_j\x5c\xac\xcf\x9e\xd3D`\x99\xfbi\xed\
+\x83\x17)2\xcby\x1eH\x10\x9b/\x9e\x9f\xca\xbfu\
+\xed\xf9\x99\xe7\xa0\xb9\xa0\xe6\xf6\x03\xf2S\x1c\x19$t\
+K\xc2r\xfe\xdc\xabw\x88\x15\xf7k\xdd\xe3\x94I6\
+\xeab\xa3O\xc8c\xe9\xce\xdf&\xb9.\xfc\x9dy\x08\
+q\x97\x8ee9\xaa\x09\xa1\x86 \xc3a\xe0{\xfa\xe2\
+\xdbw\x86-\x81\xd7\xe4\xdf\x8c+\xb2\xba\xd4\x1fW\xa1\
+\xd6*P:\xc9\xb9OVK\x07\xc7\x0c\xb9\x17\x88\xb8\
+\xd6\x85,(\x14\xc7PV\x14\x0b\xc9\x01\x91\x90\x95\xfe\
+\x9aOd\x8b\xd3o\xd8<\x22l\xe5\x18C\xe4\x81T\
+\xdb\x97\xcd\x1b\xf3HeZ\x05\x9d*\x84\x0a\x17\xc8p\
+\xb64BV\x16\x09\x97\xc4\xac\xc2\x01\xb26\xf3\xbaW\
+]\xc1Q\x91\x15\x9e\xfayBFUR\x8b\xdc\xea\x90\
+\xb0UkH&\xf0\xb6\xcf\x0c[\xdd\x0fD\x06\xf9,\
+\xfb_\x9ek\x02\xa6r\xc0\xed\x83\xd9Z!p\xab\xd6\
+\xcd\xcb\x15\xd9\xef\xbc. \xb0\xec\x0f\x17\x0f[\x05\xfa\
+\xc9Iq@\x0b\x97\x04\xaf\xc0\x0at\x16BU\xa2(\
+U\x0f6\x1f\x0d[!F\xf2\xbe .+\x10\x00M\
+N\x96\xf5\x82d_\xac\xd9\xc5\x97\x04\x12\xd6u\xbd\xda\
+\xd3\xae}\x95\x89\xad\xfd\xfb\xd1\xdb;\x91\xf0}i\xc5\
+\xde\xff\xcb\xcd\xae\x91\xc8\x81v\x1d\x81/\x08\x84\xc1p\
+d\x06\x9eGf\xe5\x9f\xbf\xe0\xdc\xe5\xc7\xbc/\xc7\xfb\
+k3\x19\xe2\xf9\x1fo\xf6\x89I\x8d\xe6\xa5\x93\x1a\xcd\
+\xf9\x93@\xee\x9e\xcd\x8f6?\xde\xfch\xd5j\x98\xe7\
+\x80\x82\xc5\xe6\xff\x86\xb5\xe7|\xff\xb0e\xdc\x86\xb3\xc3\
+\xda1{\xca\xfe\x07\xedo\xebg\xe7w\x9b\xfd\xceD\
+\xe6\xf8'\xc3\x9f,,\xe2\x9b/g\x0b\x10\xbf#\x0b\
+*\xdb\xff\x1e\xd6~\xff\xc1\xcdZ`\xb4\xf3\xfba\x13\
+\xe4\xf9\xfd\x01y\xde\xfb\x94\xbdO\xdd\xfb\xd4\xe9\xfc\x9d\
+\x10L\xc3#g\x92\xc8\xe2\xf6H\xa4\xf0\xd4rp\x97\
+\xf6\xfa\x7f\xc3V\xdc\x15\xe6O\xb2\xb3\xeb\xbd\xde~b\
+\xfb\xc9\x80\xfa\x8f'\x85\xadz\xba3@*\x92@$\
+\xa4\xd9B\xb0\xbd\xf1\xf6F\xdb\x1bM\x95\xf1\x89\xebc\
+\xff\xb7\x02\x8b\xd0>\xf7\x89aS\x02\xe5\x94H\xa0T\
+b\x95\x1c\xa1\xe7O} \xc9[\x0b\xe1\x99\xfbC\x91\
+\xf6fKV\xcd\xe3\xdc\x8f\xaa7>\xb9P\xaa\xb5L\
+`K.4[^\x86\x0f\x86-\xfb\xe0\xce\xa3\xc2\x96\
+\xb8\xa8Z\x952\x00\x1e\xf7\x87\xad\x02b\xeb,+\xc5\
+\xb5\x8f)h\xe5\xf5Nr\x85\x7f\xba\xf2\x83\x90\x01j\
+\xd1\xe2\x07\xf6\x85;_~~\xb1\x22\xd1>z\xfa\x7f\
+\xeb\xd6\xfdI\x94\xf2? \xbcN\x0d\x9b\xe2\xbff\xab\
+\xf7\xe1\x0f8?%R|\xe5\xfb\xd5}\xe4\xfeP\xfb\
+\xb7\x16,\xfb)\xbf_k\x99\x049\xce\x98\xac\xf4W\
+\x0b\xd4\xed\xc2V\xad\x88\xfc\xb0\x94\x1fm\xeb\xa2\xd9\xd2\
+\xc22\xdc6l\x85\x88\xca\xc4\xb6\x96\x81\x92\x8b\x94\xe0\
+G\xb2\x0b9qb\xd8\x12oTk\x87\xc2\x88\xe7\xa9\
+`\x00\xf9\x0e\xd9\x81\xf3A\x81\x22\x13\xe6\xd4I\xc6\xe3\
+\xc2\xda\xff\xbfp\xb2=\xfb\xa6\xc0\xfe\x0f\x97@g8\
+8lu\x83\x09a\xdb\xd5\x93~\xcc*\x83E\xd7\xfa\
+\xf4\xb0U\xcf\xe3\xbf\x86\xb5\xd7o\x87\xb5\x0f\xbed\xd8\
+\xea`~B\xd8\x0az\xc1\x01=1\x1f\xf8\x91\x9d\xa3\
+\xc5\x91\xe58#\x93xG\xd8j\xe2\xea\xfdH\x07d\
+\xfcx\x1e\xf4_\xc9\x00h\xe9\xe1\x9c\x02\xa0\xcd\x1dg\
+\xb9\x1c\x10\x9f\xe1\xaaa+9\x90\xbeB\xbe\x04\xaa\xf3\
+\xfb\x09\xe4\x8a\xdd\xbe\x93\xbd\x12X/r_\xb3ce\
+\x02\x088\x04h\x1c@\xef#\x83\xd6\x07\xd2\x07u$\
+k\x16\x9aqR\x19\xb8H&F,\xd8\xa5\xc25;\
+\x0a]\x0fd}\xaf\x07\xdd\xfb\xa9\x9c\x5c*lE\xf6\
+wT:>W\xee\x10\x12^9\xfa\xe4\xc9T\xdc\xdc\
+O\x9f\x00p\x9d\xcb\xfd\xcc\x8e\x0f\x07\xa2GR\x5c\xa6\
+\xc8\xfbv\xf5\xf0WE\xc5\xcf\x91?JXas\xe7\
+\xc0\xbc*\x1d\xb3\xaf\xa7\xbe\xe9C\xc2&\x07~\xde\xb0\
+\xbe\x9b\xcf\xe1\xba\x09!\xc2Fl\xc1q\x90\xfe%\x1d\
+\xf4\x9cw\xf5\xbc9\x88}+\x85\x8a\x90y\x22`X\
+T$\xe6y\xd7'4\xfaW\x81\xc9\x02q\x9e7<\
+\xad\x22\x1c\x8b\x1e\x0am~\x9bg\xe6\xe5Q\xf9\xf9I\
+\xdeY\x90\xfdN\xc6\xad6~\x01\xb1\x1eC\xb2S\x1c\
+X\x094\x1b\xbb\xebv=\xfe\xdf|\xebH\x15\xeb\xfa\
+]_\x7fpZ\xffzhU\x88o\x90\x99\xd6+v\
+\xdc\x17\xc6K\xa5\xce\xc1\xad\x22\xee\xb9x\x0e\xe4l\x90\
+\x8b\x0a\x1c\xacG\xad>\xb86r\x7f\xa8\x0c\xb0\x83\xcc\
+\x97u\xe0>>\x97\xac\xb9\xd6\x05\xe8?\xe8\xb7\xe7/\
+\x81\x04\xd1\xd2;\xd6\xc6G\x85\xf0\xf2aS\x0f\xdc\x1c\
+\xf8\xe8\x91\xc7.\xdf\x91F\x1ePYv\xf0H\xd08\
+H\x05\xbc\xae\xcf\xfb\x18/l\xb9\x12\x08\xb8\x05\x1c\xa4\
+\xdeGbS\xcb\x83\x80\x16\xb2\x0a\xb9\xa4\xf1R\xe9\xee\
++\xf7\xe6\x95\xc0\xbak\xd1)\x92D\x9f\x03\x8am\xff\
+4\xcf\x8c\xa3})\xd7o\xc9\xaaI\x18\xf9=\xbd\xf3\
+d|\xec_^\x9d7\x12Y\x12\xd5\xe6?\xf6z\xf3\
+\x80\x83\xc6\xf1\x95h\xb4\xdfH\xf4e\xc5\xbd\xce\x0d\x89\
+z\x15q\xe3\x9b\x0e\x96\xf9S\x9c\x02\xc8\x87\xfc\xdc9\
+\xea\xb9\xa9,e@\x5c\xb2ww\x0b[\xc9\x91\xaa\x5c\
+Z\x9f\xa0\x98\xd9\x8bn\xbc\xb7\xef\x09[\xfc\x81\x0a\xf4\
+\xa9\xd9&\xc7I\x05b\xd6\xaf\x16\x9cl\xc1*d\xa2\
+^J\xebR\xef4\x07*Y\xfek<=O\xf3\x15\
+\x9b\xbdV\x87LLT\x81\xe2\xfc\xb0Ub\x80\x03\x9f\
+=\xf2\xa0\x9f*e\xc5)@\x7f\xdc\xfa\xb4\xff9\xcf\
+\xf2\x9c(\xce%\xc8!dM\x0a(\xd6\x89\xf9\x06\xf1\
+'\x91\x85e\xbbC\xe8U\xa5\xff\xa5\xf3u\x8f\x97\x99\
+{B\xeb\xfc&[H\xdd(\xf5\xd0\x87\xb7\x85\xb5\xbf\
+\x7fT\xd8\x92H)Y\xaf\x94\xf9\xaa}Z\xcf\xbcD\
+\xc2\xa7\xc3&Y\xc0f+\xfd\xeet\xb4\xabu\x22\x11\
+;\xd5\xeaul\x87\xb8\x92\xe0\xeae\x8b\xf9'Z`\
+\xb2u\xa4\xe6\xad\x16\xb2\x9b\xce\x1cN\xe5Ov-1\
+\x10\xa1\x10\xaf\xdb\xbf\xdf\xbew\x9a\x97/\xdb\xfcMT\
+\x98\xb7\x97\x0f[Ayq\x1d%\x99\xdb\xf8\xeba\xed\
+\xb8\xfbFX\x92\xd9=u\x81\xd6V\x0b@\x90\xfb5\
+\x07|\xe7\xf7Z@\xfc{\xed\xe7\xe7\x0f\xfb\x87\xf3\x93\
+\x1c\xef\xb1SBn\x86\x12g\xa5\xbe\xe6\x97\xfd\x5c\xe2\
+#\xc7o\xe7\x01ay=\x17\x9e\xd6\xe5\xdc\xb3\xfc\x81\
+\xb0v\xdd\xa7\x86\xb5\xd7K\xefm\xd6^?\xb9yj\
+\x5c\xcf\xe6\xb4\xcd37\xa7-\xa4q\xf61\x89\xff\xe1\
+;a\xed\xfd\xdf\xb8\xf3\xa6\x9d7\xb6\xd7'\xef<i\
+\xe7\xc9K \xd9\xc2\xf4\xb9\xd7\xf9\xc4L\xe4{\xee\x0f\
+\x0e\xe5\xf9\xf6\xfb\xef\x0c[\xe4\x1f'N\x85'.\x88\
+\x87\xeds\xc2\xda\xebM\xc2\xda\xe3|W\xd8\x12\x08\xef\
+\xfd\xfd\xb0\xdcG\x9e\x91\x89\xb0?\x9fz\xff\x7f:\xf5\
+\xfegE|J\xc4\x5clE\xca\xadU\xf9\x8c\xcd_\
+\x87ly\x91\x0af\xa1RBl|M\xd8J\xee\xed\
+>\x09\xe5\xff\x8fL\xd4\xe6y\xb5sB\xd8\x12 b\
+W\x1f\x0f\x0d[*\xb881\xaa \x94l\xeau.\
+%\xfb\x7f\xa9\x90\xbcbn\x89\xa9\x84\xd5\xd7\xab\x80:\
+'\xd6 \xc7\x04\xc6\xce\x7f\xe7J~\xfex\x85\xb0\x15\
+\xb9c&2\xb7\x9f\x0c[\xf9\xbbZ\x9a\xb3\xc7\xbd\x10\
+\xab\xceq\x9c\x04\xceK\x90\xfbS\xc6\x07M\xfb\xb5\x04\
+e\x22\x8a6\xaf\xccu`\xdf\x1c\xbbV\x1d\x09\xc7\x1e\
+9\xa7\x10\xa2\xd0\x221\xce\xaf\xa2\x92\xe4\x1c\xce@8\
+\xc4CC>\xb4Z\xa9\x1e\x18\xb6\xf2\xf3p\xb1]\xaa\
++|\xf0{$Z\xb5\xdc\xe6\xfeZ\xf7\xeb\xba\x15L\
+\x05\xd4\x0a'Z\xab\xb2\xa2>^;l\xa56\x91\xeb\
+F\xa2\x8d\x9ca\x15\x16\xec\x9b\x12O\x7f\x1b\xd6^O\
+\x0d[!-\xb5<j\xc1\xd6Z\xa2\xd5$\x9f\x03\x95\
+\x1a\xfb\xc4\xf0\xb9\xb0\xc5\xff,\xb9b\x09\x0b\x1c,T\
+|$\xd6\x93\x9c\x94_a\x1d\xed\xdb\xfb\xf4\xb0\x0c\x84\
+\xda\xc6:|\xb8\xd9GV\xf2\x15\x0e2\x15\x8a\x18\xa6\
+\x90Izu\xd8\x92a\xdd\xf3\xf7\xe9\xc8<>\xe5\x86\
+R\x07\x15\x04i\xb8g\xd8\xaa\x07\xd1\x031\xe1\xc9u\
+e%\xaf \x0c&\x96\x0c\x10\x9dE\x01\xba\xccyB\
+\xfdJ\xf71\x07|s\xaf<X>6\x93\xd2TF\
+\x0b\xd4\x05I\x8d\x0d\xe6\x88\xb0\xd5D\xb5p\x04\x0c\x97\
+Jhy\xb2\xbf\x96\x03*\x90\xef\x039\x81\x95\x05n\
+!\x80.\xab,\xf5=\xb4\x02\xf1\x1e\xa2i\xe2\xfb\x5c\
+\xdfs|\xf5\xe4p\xd0\xaf\x96\x07l\xcf\xaa}\xe1N\
+\x0e\x8bCk\xbc\xf7\xe5\xf7\x99\x88\xa8\x0d\x86\xa3\xd7\xb3\
+T\x0bL8\xf4\x02\x09\x95\x1b\x15A\x07\xb3JU\xd7\
+Jq\x80\x9c\x1e$F\x0fI\xbeL\xc7\xa9\xd0\xb7,\
+\xf8{\x0eT\xea\xac\x17T\x9f\x03\x05\x92\x03z\x9b\x95\
+\x93J\x10x~\xc6\xdfs\xfdjn\x18*6\xde'\
+!9\xe5\xb0\xf4\xec\xf9\x02F\xf3\xff\x90z\x1e\x12K\
+\x12+sEE\xe5T\x00\xd9\xb7\xa0\xf4\xad$\xd7N\
+\x08\xda\xe5s\xde{^*n6\x1c\x7fo^H\xac\
+\x98\xbf\xa96P\x95\x19\x81\x8b\xe7\xdc\xb7r\x5c\xa0\x10\
+\x01\xbb\xe7\xad@\xa8W)\xf0y\xae\x1f\xe9\xdb\x22\xab\
+\x89\xc5y\x97*\x00(~\xf5\x5c[\xa7\x0eV\x09B\
+\xf7\x07Ji\x1c\xcc\x9fN\xfe\xae\x02'\x81e/\x93\
+\xd8\xabu@\x94p\xd8\xae\x99\x81\x86\x8ae\x06P\xe3\
+_$\xbb0\xc4T\xdfb 0\xf19\xa0}2\xd8\
+\x1cC\x01\xdd\xa2\xea0\x07j\x10\x16\xd6\xc7!E\x82\
+8?\x17=\xa5\x02\x00\x81\x1dH\xdaBR\xba\xbbe\
+\xe9\x17\xb1\xf5\x0b\xf0\xfbu\x8b\xcbDK\x80\xf5.\x90\
+\x158x\xed\x910 \xc88\x1e\xcc7\x95\xe0\x8ek\
+\xa0\xae\x0f2\xc0\xbe\xd9\xc9\xbd\xd5\xf3r\xf0\xab\xa4\xba\
+>\xf7\xe5|)5\x8c\xbcO\x0e\x86\xca\x81\xf5\xe1\xfb\
+tH\x8a\xa4O\xc0\x82\x5c6e\x9a*\x11!!b\
+\x7f&\x0f\xe5z9Z\xe6\x1f\x84\x80\x04\x97\x80_\xe5\
+\xc0\xfcH\x87\xaf\xde\xd7\xb8q\xacT\xd4\x04\x96\x9eK\
+\x87\xb8(\xae\x13\x10E\xeb\x9c\xc3\xa4\xa5\xa9G*\xe5\
+<(\xc4\x02v\xe9t\x90Ad\x83Rw\x22\xd5\xc5\
+\x92O\x7f]\x85\xd6\x97}\xc29a\x5c\xb3\xd7\xbb*\
+\xbdY@\xc0B\x1dLD\xc1E4\x1e\x1d\xb6jU\
+\xc0.m\xbf3\xbe\xce\x01\xe73\xf9.\xd0r\xdfK\
+\xc8\xeb\xdd\xa7\x16\xe0\xdcH\x96\xed\xea\xb1\xa4\x1a\x22\xf1\
+d|\xb2rX\x89g\xd7An\x14\x04Y\xc0 \xb1\
+\xcco\x90P\xb0\x1fr\x18U\xb4\x12\xd2\xba\xfd\xc1\xf6\
+\x9c\xed9I\x02{\xadUA\x06\x92\x04\xb2E \x93\
+\xe4\xb5\xc3\x1d\xc3Vd\xa5\xc8O\xd3\xe1\xdc<&l\
+\x95\xb0 \x8b\x98\x05\x17H\xb2\xf1\x85a\xab\xf1\xb1\x9e\
+O\xda\x8d\xbc\xacu&\x01\xc6\xef1\xaf\xec\x8b\xd61\
+\xbf)\x9f\xa7Df9\xe4?\xc8\x0a\xde?g\xa2\xc0\
+\xb9\xe4|\xe0\xa7\xdd>\xd7\xc7\xa3\xb2\xb2\x9c\xa4\x85\x9b\
+\xbd\x9b\xed\xc4r\xff\xb5fg%\x99\xe4\xffY\xaeg\
+8\xbd\xd9\x8a\xd4kB\xc2\xfcG\xfa\x05?\x98X\xfb\
+'\xd94*\x02\xc3\xe1\xc3\x11\xd1\xcb=|$l\x22\
+\x13\x9c[\x04\xee\x15\xb6\xf2\x1b\xf8=\x9e{\xdew0\
+g\x05w\x16Y\xbb\x82\xfe\xf2\xcb<\x87$\xe9\xde^\
+y\xe6\xd8\xd8\xdep\xef\xb1{\xc3\x9f\xfcJ\xd8Jo\
+<{\xde\xad\xcb\x9dsw\xce\xdb\x095\x82\xab\xcd\xd0\
+\xf2\xf1\xa5\xe3K\xc6\x97\xac\xe4\xd2\xb48\x82h\x0b\x5c\
+\xde;\xdf\xff\xf0\xee\xb0\xf6\xf77\x0dk?\xdf\x09[\
+\xe4F\xab\x93\xf1\xfda\xed\xf5\xe4\xb0\xf6~G\x85-\
+$p\xdb\xbf\x0bk\xbf\xff\xe3\xb0U\x05\xf5v\x93\xcd\
+\xf3\xfd'\x09\xb9\x0f2\xbb+\xb5y{\xa5U\x5cb\
+?\xce\x00\xb8\x02_\x08L\xfe\xd4\x1d\xc2\xdav{\x9b\
+\xb0\x09\xf11!\x8d7o\x0f[!\xd1\xd2\xcf\xdb\xb9\
+B\xd8Bj^\xfb\x9eJ.\xb5\x15-3y^T\
+\x81\xc0y\xa3\xe2N\xd6\x0e\x92\x88l0?\xb5'\xbb\
+\xce\xd6\x94\xe1aa+\x155\xe7v\x22\xa0\xb6\x07\x85\
+-qS\x05\x868\xd7@\xfa]/\xb2\xbf$s/\
+R\xbaL\xdc\xd6y\xc1\xef\xcd\x84a\x9d\xbb\xfd\xfe\xdf\
+'\xe0\x97\xc2\xd0nN!~\xb9\xfd !\xf3\x9b\xbb\
+\x84\xad\xfc4~]\xee\xab\xc5i\xe2s\xbd\xdf\xa1\x1d\
+\x07\x18D\xa5/\xcf\x9f\x1f\x9f\xfe(\x15\x02$\xa9\x10\
+6\xd5B\x81\xdb'\xcf\xa9\x22\x05\x96\x00\x82\xfc\xcd\xb8\
+\xb5T\x10 \xcc\x9c\xab \xfa\x99h\xad\x82\xa0q1\
+o\xf9\xc3\x12\xf6~O\x00\x1fd\x99o[\xc9\x00\x8a\
+W\x93\x14\xbb\x10%\x90\x83\xd6\xafV\x0a\x08?\xa4\xff\
+\xf9~\xfb\xb6\xa7\xcc\xba\xa6\x95yU\xa9\x91iU\x91\
+3\x91\x924\xb0\x0e\x94dO\xae\x03?eu6O\
+\x0e[\xc9M\xe8\xf9X \xac3\x89\x152\x12\x90>\
+*\x02\x10\x03zy\x91E\x80f\xe9q\x01\xd9K\xdd\
+\xcc\xea\xdd\x11h\xea\xed:#e\x97N\xcb\xd6\x02\xe4\
+/\x97\x19/;F\x8f\xd3\xadf\xf9\x94\xb6\x89\xce\xbd\
+m2\xf1\x1cB\x01@\x06$\x93\x5c\xcc\x8fVP\xf1\
+\xb3\xd2A2\xc1As9\xec&\xac\x03\xae\x0f\xf0s\
+B\x94|\x0f\x87\xd6D\x91\x01\xb3\x00\xfd\xbc\x83\x0aW\
+\xcf{\xdf\x8b\xcb1\xe4\x80\xf7P\xd1\x9e<\xce\x02\xae\
+\x92n\xde\x97\x1e\xf3_ \x07\xe7\xf36'e\xe0\x8a\
+\x84Q\xa6\xad\x97\xe1\xeb\xc9\xec\x04**\x7f*\x1e\xae\
+\x0b)a/\xe3g\xe3\xc1\x9e\xfd\xd5\xb0]\xea\x09\xf3\
+\xf8\x9b\xe7\x1c\x02\xaf\xe6I:\xb0\xcd\xe9\x9eI\x22\xcf\
+\xce\x00_\xab\x84\xe7hc\xfc\x5c:\xf0\x7f\x9f\xd0$\
+\xcfI\xe5\xa9\x0fxz\xa8\xb2\xf5%\xf0\xcf\xc4K9\
+\x8e\xd6c_\xf1\xfdE*\x06*\xd1\x9eG\x0f\x9d\xbe\
+b\xb5\xaa\xcc\x7fo~\x08\xc4\x04D\x0b\xe4Ret\
+v\xa4lT\x9e\xff\xc5:\x92\xc8\xe4Ph\xc7\xfa\xac\
+Zp\xcd\x84\xfa\x99?\xd6e\xf6\xb6n\xbc\xdfu3\
+q\xe1\xf3q1\xf0 \x90O\xdd({\xc5\xff)7\
+V\x07\xaa\xeb\xd7\xdb)p\xe1hr\xe8UP{\xee\
+\x8d\x9bgb\xf0J\xb9N\x5c\xc7\xd1\x93\xce\xc2\x92(\
+\x80\xacY\x10Ks\xa0\x22\xf04\x1eOOr\x1a\xba\
+\xd4\xe4\xcd\xb0\x0e\x0b\xb0\x04$\x0e(\xec\xc4\x9e\x8f\xdf\
+\xeb\xa0\x97E\x96w\xed<HSO\xf9\x80\x04\x87u\
+a\xbe\x99\xbf2\xe6\x1207\x0a[\x1d\xc0\xd6\x9d\xeb\
+\xcb}\xb0\xe6%\x08\x9au\xe9\xf7\x8c\x87\xf5\x0e\xc9\x00\
+\xbam\xfc\x5c\x9f\x96\x13\x07\xbb\xf7\xb3\x8f\x0bx\xec_\
+\x9e\x83\xe7\xe7}\xf4\xfa['~\xdf\xfc\xee\xb9&|\
+\x7frq(\xcc\xfb\x84\xfbD\xca\xea\xbe\x04\xfe\x19\x88\
+\xd5\xbc\xeb[\x01\xec\xcbH\xa4\x92\xa4\xac\xc8\xd2\xec[\
+\x1c[\xd7m_p\xbd\xe6\x91\xca\xaf/\xad\x0f\xe6'\
+\xdd\xe4\xac\xd0\x16\xe4] \xda\x9f\x03\xa0\xa3\x02A\xd7\
+c\xbdx^\xbf9\xd9\xe2\xa8\x9d\xd8\x91|\xfa9\x12\
+\xdf\xdf\x0a[\x02\xe6\xcd{\xc2V\x95\x87\x0cp\x8b$\
+\x10\xa9\x1f\xc8\xa5\xcf\xe7\xf8\xa8\xd8&\xe2\xa0\xd44\x92\
+\x14\xabZ\x12!\x10\xf3s\xfc~\x91\xfb%+r\x91\
+kJX\x19\x7f\xeb,u\xe9k_\xb3o\x9e\x12\xb6\
+Z\x0f\x9e\x8b\xeb\xb5\xef@\x1e\xe99\xc5A\x93r\xb5\
+zD\xa9E@\x8c\xd4uI\xf4\xd8\x8f\xcc\xfb\x8e\xc4\
+\xb28\x10\xb2\x22\xbdyB\xd8\x8a\xac/!\xb4\x1c\xe6\
+\xbd\x0fhv\xff\xa5R,!U\xfb\x07DBB\xbd\
+\xeb\xdc\xf4\x9c!KR\x9ep\xfb\xdc\xb0\xd5~b\x9e\
+\xd8\xff\xb5\x08\xe9\x99%\xdf\x8c,\xcb\xfa\xc7N.A\
+L\xe6\x8b\x0a\x8c\xc4\xbas\xc8\xfa\xea\xe4\x0b\xc9\x9e\x15\
+\xd9\xe09a\x93\x7f\x8aSj\xe2p\x90\x98\xdc\x5c7\
+\xac}\xecK\xb2b\x9d\x81y\xe9\x84\x87\xea\xd3\xe5r\
+?\xbfY\x8e\xeb!+\x12j\x15\xc68eBe\xea\
+\xc1a+9\xcd\xcb\xa6?\xf9\xafam;x\xcb\xce\
+[w\xde\xd2^o\xbcs\xa3\x9d\xb6\xbf\x0eO\x1f\x9e\
+6<m\xf5\xbc\x17\xc8\xf4<\x0e}!\xa6\xbf\x7f\xfb\
+\x8b}\x08t\xf9\xe9\xb3\x9a\xc8x\x8b\x19\xa10\xcd\xf2\
+\xc3\x96\xe7\xa3\xa29\xfc\xd6p\x9b\xa1\xad\xd3\x9d\xf7\x85\
+-\x81?\xae\x08\x10\xf7=\x0f\xcc\x8a\xf7}\xc2V\xaa\
+\x0e)w7~9I\xb2Ok\xfej\x9b/\xc3\x9b\
+\xc2\xb2\x80\xf8\xe1\xf6\xfa\xc0f\x0fX\xb5>\x5c6\xac\
+\xdd\xe6\x1d\xc3\xda\xeb\xde\xb0\xf6\xf3g\x87\xb5\xf7\x9f\xbe\
+V\xf1@\xae#\x15P\x89\xa6=\xef\xd8\xf3\xceIw\
+\xfe\x09\xe3\xff\x0e\x04\xb1\xca-5\xb2b\xf9W\xc9%\
+\xafl\x1f\xd7\xe2\x99H\xd6\xbdWO\xae\x82Go\xff\
+b\xfb\x17\xab\xf5F\x0d#\x9f\xcb\xceE\xc3\xda\xf5>\
+(l\x85\x88Q\xe8\xa2\x92\xf1\xb4\xb0\x95\xac\xa0s\x9b\
+\x9fO\x1e\x18{\xbd\xc0\xd6>\xef\xb9\x9b\xe7\xe6\x1d\xe8\
+{\xb6$\x0d\xc7\x87eB\xfcr\x89\x8cz\xfcJ\x1e\
+R!D\xc1)\x13\xbfH\xaa+\x80\xbc\xe9x\xb3\xf1\
+f\x0b\xb2\x85\x9c#\xb2\xbb\xea\x99\x7f]\xaa\x88\xdc3\
+e^%L\x9d\x9b\xbdls\xcf\xfd\xd5\xc7;\x90\xba\
+IR\xb8\xe7\x0d{^\x1f\xb2\x8a\x93\xff\x15\xea3/\
+\x99\x13QH\xfe$\xba\xc6\xdf\x0a[\x10\x1fuN\xe0\
+f\xc0\x9eo]\xe6\xf9W\x5cp8\x83\xf8\xfb\xb8\x1b\
+p\x0fX\x97\x12\xdeI\x96[\xf1&\xee/\xfb\x0f\x84\
+\x14.\x08\x05F\xc8\x83;N\xb6<\x0f\x89\xf9\xf4C\
+JUE\xbce_\xe4\xc7(t!c|\xd6d\x0b\
+\x09\xe15\xc2&\x7f3\xac\x12|\xe5\x07K@@\xc8\
+\xe0\xbe\xc9\xb8b\x1f\x07p|\xc3\xccR\xb9\xbdS\xd8\
+4\xf1wC\x95s\x01U\x0fAV\x026w\x98\xa1\
+\x06\x9b\xbbd\x22\x00\xfb\x22\xf2\x9e\x0b\x04\x0f\xe8*\xa3\
+\xe3\xfdl|t\x833\xf31~{\x1e\xd0q\x7f\xf6\
+\x1c&\xdb8\xe8`s:g\x07\xe3%a\xed\xf5g\
+a+\x9d\xde\xc7\x85\xad6j\x90Oj\x02t\x82O\
+M\x16\xcf\xd7fo\xcf\x7f\x09[H\x81\xca\xc1?\xbc\
+#e\x13\x08\xca$}5+\xc5\x1cj\x99j\x10\xd6\
+kdE\xac\x87\x86\xf6\x81uw\x00\x14K%\xe8\xbc\
+\x0a\x91qsPp\x04\xfb\x8az\xd7\x1b^\x8e/\x07\
+Z\xa5m\xc9\xc8\xcf\x8e\x87\x00\x80C\xba\x90\xfd\xed\xae\
+\xa8\x19\x0f\x9f\x97\x7f\xbf\xb9Z\x06\xfe\xd7\xc9\x00@o\
+\xaa\x8a\x13\xf6x,\xe5\x1d\x17\xc0\xe6\x92\xd9b \x80\
+\xed*\x84\xd5z\xe1\xd5\xf8\xc9\xa4I\xd4\xf4\x15\x84\x1f\
+U\xe0>\xcf\xbf>\xa0G\xd6\x96\x15\xb0\xf1\xecy\xfc\
+\xdb&0W&l\x0880R\xf6\xa8\xc8\xab2c\
+X\x15V\x1c\x13\xee\xc3\xf3\xf0\xfc\x04\xfe\x9eO\xf5X\
+%\x19\xd5q\x19\xc0\x08pz\x07<9\x106\xc7f\
+\xc5\xee\xe4\x0c\x98\x16\x8e\x84\xdd\x01~G\xa2V\xff\xef\
+\xf9\xf7l\xf0Z\x00.\x9e\xd7ic'\xbbg]t\
+\xbdQ\xed\xea\xe7\x00Q%ZES \x8a\xd4\xd1\xb8\
+\x5c#3\xa5\xae\xcf<up\xf9\xdcN\xb6\x93\xfca\
+\xe9\xa8\x7f1l\x05\xa9\xf6w\x02\xe6>\x01\x22A\xe3\
+\xbe\x05\xac~n\x1c\xc9\x10\xea\x19\xe7\xa0{U\x89G\
+b\xc7\xf1H\xe8\xe1\xe6!a\xab\xf9\x0b!\x00Rn\
+\xff\xcb\xf95\x82\xc6\xf9\xfb\x84\xd6\xd6\xe7\xe1n\xc8\xca\
+I\x0b\x1ff\xe8\xb1\xf5\x8f\x84\xc8u!\x11\xf3\xdc\x1d\
+@\xf6+\x8e6$\x82\xe7)0\xee\xc9\xf8\xecC\xd6\
+\x8d\x8aZOR\xd7\xa9\x95\x94\xec\x1f6\xf9^&\xb2\
+'\xb34\x1f2\x10\xe2\xb8\xd7:\x90X\xb1\xff\x98\xe7\
+\x028\x90`\xeb\x11\xf2\xcb\xf3\x05!\xd5\x8b\xda\xabc\
+\xa8\xb0[\x1f\x1cq\xbd\xe37\x99\xd9\xb9k\xdd\xa7\x9e\
+tA\xda9\x069\xbe\xe4z\xca\x91\xb5.TvU\
+\xa8</\xe3\x97\x8eJ!\x18@\xdfU|=?\x09\
+I\xa4\xbdd\x00\x93\xa4\x8ecT2j\x12\x8b\x9e\xaf\
+\xf1s\xbf\x9d\xdc\xd1\x01-\x18\x10{\x1c\x0a\x81\xa2\xc4\
+\x83y\xac\x22\xe3ys\x9c\x92$\xb3t\xa7UL$\
+hA@S>\xae\xc6\xfbMa\x0b\xcbq!\x10q\
+V\x9c\x13\xb6\x82H\xde)l\x05\x1du\x1d*O\x0f\
+\x0e[d\xa2j\xbej\x91p\x1f*\xae\xe6\x93\x80\xfb\
+\xac\xb0\xf6\xf3\xdb\x85\xb5\xd7\xef\x86\xad\xf6\x03\x1cB\xb8\
+yN\x0b[\xb5\x1aA\x8a\xe4}r\xac\x8bL\x11i\
+b\xees\x1c\xf4j\xb9\x94\xc0N\xd9\xd1\xba\xae\x94\xd5\
+\x22cU\x5cKy\xdf\xc5\x96\x8f\xc3!\xa1\xd6\x85\xec\
+\xccJ\x7f\xf9eIFV\xf3*\xe5\xc9B\xcc9\xe4\
+\x9c\xab5\xb0G\x06J\x94H\xc0rl\xedg\xe6\xb7\
+}\xdd\xbe\xe4\xfc\xf6e?\xe7'I\xc8\xe1|\xc1e\
+C\x8eSO\xadV>j\x02\x99\xe0\xd5\xf2\x15\x22\x97\
+Q9\x138\x22\xfd+\xbf\xc4\xf5\x08x\xf4\xd6K<\
+\x90\xc1\xce\xe74\xb1\xdd_e\xc5Z\xff\x8e\xe1\xed!\
+\xe76\xbc2l\x15\xc8\x19\xa7\xde\x1f\xac\x0d$\xf7\x1b\
+_\xbd\xff\xc8\xff\xd3\xfb\xfe\x98\xb92\x5c\x95\xea\xa8\x1b\
+\xdek\xd9\x9f\x87\x9b\x0f\xb7\x08R\xeb\x9d\x97\x87\xb5\xef\
+\xffz8c8c5?\xceL(\xfa\xd5\x93T\xf0\
+\xe4\x0c,\xf8\xcf\xce\x93\xf4\xbb\xcbO\x8dJ\xea\xc3\x16\
+d\xcbp\xfd\xb0\x89\xccl\x96%\x13\xb0e\x02\x8c\x9e\
+\xf9\xe6)a\xaby\xdc\xa9\x8b\x90\x19\xac\x84\x1f\x95\x91\
+\xf4\x8b\xcb\xbf\xcf\xe7\x8a\xfd\xdd\xbeX\xbd\xfac\xb0\xdc\
+\xad\xc6\x91<o\x92\xac\x99/\xd6\xeb\xbeG\x85\xb5\xff\
+\xff\xc7\xb0E\x17\xbe8\x00\x86\xf9\xfd\x86_\x0d\x9b\x02\
+\xd77L\x81+\xa4\x90}\x182\x8b\x9fy~\x91\xf4\
+\xce\xc8\x9bL\xe0\x15\xa2\xe3#\x93\x1d\x884\xa4J\x82\
+\x5c\x9d|\xddc\xc2V\x05\xb7\xd8\xd7\xdb\xb8m\x0f\x0f\
+[\xb1\xc2\xdb\xdf\xa9,|/li\xb9\x1a\xff|\xfc\
+\xb3\xf1\xcf\xa6sy&\xaf\xa6\xae\x96\x89\xc5\x92\xa3\xcc\
+BX!\x13\xc5\x09\x0a8\xe7\xa5_\xad\xf5\xf5\x02\x1d\
+B\xb2#/\xad\x84\xc0/\xa7\xbfa\x9e\xb9\x9f\x87\x86\
+--Zu\xce\xd9'\xec\x07\xd9bQ\xe4\x89Z\xe6\
+@\xb5\xad\xae$\x00\x00 \x00IDAT\xf3\xa9\x9b\
+\xe0\x88Ir\xd0:\xaf\x92\xf4\xbe\x10\x10\xb9\x9fW\x02\
+\x06w\x82\xeb\xf7\xbc\x5c\x8fD\xaduM\x16Vb\xc2\
+\xf9\x98\xf3\x02'K%\x22\xa8\xf1\x88c\xc8$K|\
+Y\xefd\x11\xf9G\xe6\x89\x04\xc1\x13'+\xff\xb2Z\
+\x0e\x8cW\xaa\xc1\xb4\xfd\xa8\xd9B\xc2\xb9o\xd87\xec\
+\x1d\xf6\xae*\x16)\xef\xb2\xfd\xdb\xed+\xb6\xafXA\
+\x17@\xda\xe8\xbev$t\xe5X$9_\x91\x10\xf4\
+z\xccz\xacA\xd7T\xf4A\x19\xb2\xa7k\xbcJ\xd8\
+\x8a\x857'pA\x06\xb3W\xa4d`\xb0\xe0r\x10\
+\x0d\x94\x8dT\xa0\x96\xec\x9dA}\x18\xe4\x87\xd5+\xd8\
+\xeb\xbfs,MX\x0bY\xa6\xabw\x84\x1d\x10\x1d4\
+\xba\xb9\x81\xb3\x83xB\x06\xdc\x0e\x16\xaf\x02\x03\x0e\xb0\
+\x03\xc7\xab\x0d\xa5\xef\xd1\xef q\xe5H\xba\x8e\x1e\xa2\
+#\xa1\x03Z\xbd\xb0r\xcf\xf7}BV88\xc8*\
+\x0e*aH\xd4\x8cK\x7f\xff{r\x02\xf7\xe4\x81\x97\
+\xef6\x80C\xf3>w\x8a\xe5>U\x00R\xe6\xe6\x12\
+\x1d\x22a\x91\xf5\x9b_eT{h\xaeqr\xdf\xc3\
+\xee\x9e\xf4Z\xd0\xc6G\xc5\xd5\x02\xe1P\xd8X~V\
+r\x86\xf3\xab\xf1\xferfj\x91\xb9\xa4\xaem\xb5H\
+\xd8\x00\xa8\x14\x5c\xb6\xee{\x17\xdb2\xf9\xc2Z7\xc7\
+V\x0b\xc3|\x10^?\x03\xb6\xbe\x92\x89\xb4\xf2\xd8\x84\
+\xcc\xabX\x0b\x00\x97V\x959\xd0<8l\x15\xe0z\
+?\x1b\xb8\xc0\x10w\x07(|/\x97w\x5c%d\xe6\
+\x84\xc5A9\x7fA\x87\xcd\x93_\xeb\xa0\xc3}\xcf}\
+?\xdf\xdd\xf7r=\xc7O\xd7s\xc4\x84\x09Y\xb7\xac\
+\xcc\xefwN\xces\x0e$H\x22\xce\x0f\x15\xd1L \
+\xd2\xb7mA\xef\x9c\x89=&\xe7\xaf\xeb\xbf\xe4\x84\xd5\
+\x89J\xfb\x9c)\xbeQ\x06\xd4\xae\xdb\xbcq\x9d\xee\xab\
+'\xdf\x94\xb0\x00\xe5\xcd}o\xbc\xf5x\xab\xf1Vy\
+_\xc7\xaf*\xfa\xd9+\x5c\x1c(2\xe5\x1fJ\x92\xd3\
+\xef\xcf\x1c+\x91\x9f\x8f\x0c}\x1d\xbc*\xaf\x12Z\x9f\
+N.\x96+$D\xbeO\xb8\xb8\x0f\x0e\x96\xbf\xb7\x1e\
+\x05\xda\xd6\xad\x00\xde|\x92A\x07\xed\xb7?\x98\x1f\x0e\
+\xfa\x9e\xab\xc5>\xeasz\xf9@\xaf\xfe\xce\xf3\x17\x08\
+J(iq\x90\xb80~\xf6\x17\xfb\x81\x84e\xfe}\
+\x05X\x90\x5c\xee\x1f$NB\xc1\xfbI\xc0\xd9WT\
+\xe6\x05\xca\xd6\x7f\x9f\xb0T\xc1H\xce\x9c\x0a\x149\xb6\
+\x9e\xab}R\x22\x5c@\x22\xe0\xf5\xbe*\x06\xaeK&\
+_\xe2\x1c\xa2\x0e\xb9\xab\xe7\xe19\xe8\xe9L\x99\xb3\x0a\
+\xd8p:\xf4-H\x12;\x10\x1a7\xcb\x1ej\x9f\xef\
+z\xec\x1b=\x17\x85\xfd\xd2\xf8\xf2#\x8c/\x07\xc7:\
+\xe2@\xa9dt\x01q\x91f\xe5\xf8W\xcf2\xb5\x81\
+^\xcf\xde\xfe\x8f\x0c\xee\xada\xedX9+l\xf1[\
+\xa8\x18\xd5\xfa\xc5\x96\x9c\x15z\xf7\x815\xbed\x89\x9d\
+\x17\xce\xbb|\x1e\xc5I\xa0EJ\xa0\xfe\xefaK\x8f\
+y%\x92\x04\xbe\xe9P\xf2;J\xed\xc0<\xf5\xfc\xb2\
+RW-\x8d\xb8\x0a\xde\x15\xb6\x82~\xdb\x87\xc8\x1cf\
+\xaf=\xb6\xfd\xe1O\xc3\xdax\x5c/l\x09\x806?\
+\x09[%\xaa\x8cg\xb2\x8fWk\x0ah\xf9\x11a\xab\
+D\xab\xf3([(\xbcO\xf9{\xe6\x15D\x00\x88\xaf\
+\x04\xa0\xfd%\x03\xa8\x22\xaf3\xde\xceo\xf3\xcbs\xb3\
+\xaf\xf5*4\xe6\xb3\x04SBu\xa9A\x848\xf4$\
+\x0f\xad\xf2\x96\xf3\x0e\xe2\xa1 \xf97\xdfs\x8b@\x94\
+l\x1f\xb1\xfd\x93\xed#&?\xf6'\x93\xa3\xad\xc2\x8f\
+T\xefcaK\xc5\x0e\x89Y\x84\xfb\xe1`\x0f\x1f\x1c\
+>4\x84\xbfy\x8f\x94;CF\xe6\x1c\xdct\xea>\
+\xff\x7f\xbf\x8c\x93D\xec\xbb\xe6\x04\xf8\xf0\xeclU\xf8\
+\xfa\xe6k\x9b \x87{\x7f\xd8\xd4\xea1\xed\x07\xf1\xbf\
+\xf1\xff\xe3m\xe6@i\xf8\xca\xcc\x12>\x89\xd0}h\
+:wf\x99\xc4\xefeB\xea\xee\xc9\xfd!\x01}\x89\
+\xecM\x7f\xce\xf8\xdc\xe89\x1e\xef7\xdewB\x22\xdc\
+8l\xc5\x8e\x1e\x90\xea\x9f-H\x02\x15o\xfa\xe7\xc3\
+?\x87-\xb71\x5c/,\x112\x1f^%\xd2\xfe)\
+\x13q\xcf\x9b\xf4\xc0\xaa\xd5\xb0*\x9e\xce\x9b\x84\xf0\x97\
+\xcc\x5cr\x8aT\xab\xad\x84\xdb\x7foO\xe6\x1e\xcb\xb9\
+\x87\xc3@\xeb\xe3\xbe{\xec\xbb\xfb\xbe\xbb\xafT\xcb\x5c\
+\xa0u\x9a\xf3\x88\x9a\x83\x96#\x15b\xe3]\x09D\xfe\
+&\xff]e\x1f\xc4\x1c\x22@B\x86_l\x1d\x22c\
+U\x99\xb7\xee\x92Km8mx\xd6\xf0\xaci?\x99\
+\xb9E\x12\xd1T2\x95\x99@\xb6\x0epuPKC\
+:(aY\xa4\xb1O\x9e\x135m\xcf\x9a\x121-\
+\x1a|\xf8\xf8\xf0I-d\x961\xbes&\xe2\xb5\xf0\
+ \xcdN\xd5\x8a\xcdM\xd2\x9f\x22{g\x1d[\xb7\x17\
+\xceW=\xf8\xfc\xba$!\xdc\xbc l\x15\xe7x\x0e\
+)\x13?\xfer\xd8\xa2:S\x88q\xe7!\xae\x97\x8c\
+7+\xe1o\x1d\xda\x8f\xb25b\xf3\xe2\xb0\x95\x9a\x00\
+RB\xfb\x0e\xe4\xa3\xd6,\x05<\x89\xd8<\xdfb\x94\
+b\x9cj?\xcf\x04|\x915B(P\xaf@Z\xfd\
+\xc2\xb0\x95\x1f\xc6\xef\x81L\xc8\x16\xa1I^\xf3S\xab\
+\xfdNa\xde8\x9a?\x12\x13\xe2\x1c\x08\xe9\x94\xa5\xdc\
+\x072\xb2yc\xd8\x8a\xcd2\xd4\x01\x0e^d\xab\xda\
+\xb1:W0\x0c,\x87\x8b\x03\xa3\xb2\x01\xd2)\xd3u\
+\xf8\xfc\xf7\xa5\xeb\xf8\xc790\xd8\x1aS\xae\xce\x01W\
+\x0eoBZ&\xa8\xd0\xbe\x05iP\xfa\xa8\xc9\xb2y\
+\x00iJ\xdf\xf3i@\x90c\x98\xa8y\xbd\xe3\x1f%\
+D\x08i\x04rC\xbd\x8e\x0e*=:&\x02\xc7v\
+\xa7\xe4\xe3\xe6\x07f|\x04\x8e\xfb;\x16\xdb>\xa3\xdd\
+\x1fl\x02\xa4E\xc7}w\xaf\xbe\x07\xeb>9@2\
+\xb2*\x12X\xdd\x17\xee\x81\xb9w\xfd?2P\xe6\x90\
+\xfe\xa4\xcb8r(\xdcG\xafB\xb0\xb0\xd4\xce\x13\xdf\
+uZ\xa0\xdf\xceqr \x81\xd0\xffs\xf6\xb6]%\
+\xff^\xe0\x98\xd0\x9d\x16\x86\xcd\x0b\xf2\xa8\x0e\x22\xef\x15\
+r\xc0\xfd\xbb\xaf$sl\xf7\xb7\x1b\x81\xd1\x1f\x90}\
+\xc5\xd2\xf3\x94\xc9\xb30\xbf8\x93d\xed\xf9b\xb5\x00\
+\xcc\x0e\xfb\xf7\xf3\xef\xfeu\xde`Jv\xce\xfb\x0bp\
+\xcc\x17\x09\xa5\xcb\xe6\xfc\xcc\x80\xbf\xe4X$\x0cz\x92\
+>\x10~\xaa\x12*rI\xb2X\x01\xd1\xb5\xb2\xe2\x7f\
+\xe9N\x1f\xbdo\xb1\xe8{\xb0</\xcfS\x85\x5c\xe5\
+QF\xb3\xeb\xd1\xaf\xdeu\xdc\x0b\xb8&8\xc0\xde\xaf\
+'u2\x0e2\xbbZ;d|{}\xe7 \x01=\
+\xf1\xe7\xf4\xd0\x1dVP\xdb\xf9~r\xa3\x97\xd1F\xc6\
+\xd8\xf6\x84\x19j\xf5\x9fI2\x06z\x7ft\xf5z\xcf\
+\xf3\x03B!\x11!\xed\xa0\x9a\xa1\xb8\x02>\xbfo^\
+\xf7\xb2z\xe6[&\x16+\x01\x05Z\xcc!q\x80\x1f\
+\x91\xaa\x16\x09\x15\xac\x8d\xf9\x87E\xda7#\x0d^\x91\
+\x09O\xeb$3\xd5\xe5x\xdet\xae\x84\xee99!\
+}\xdf\x08[\x91\xfa\xe9i6\xfe\xe6w/{(\x91\
+t\xc3\x94ST\xa13\x8f\x04\xd6\xf6%\xcf\xd1\x01\x0d\
+! \xa0\xce\x0a-v\xf9\x82P\x93#\xd53i\xdf\
+\xc8\xeb+\xb27\x89(\x9c+\x02\xce\x8e\xf3\xa0\x1c0\
+\x81\x05r\xda\xfe\xfa\xf4rJ\x88$\xb2\xa1\xee\x17\x22\
+\xc0|\xb7.\xec\x7f\x90R\x12[\xf9\xfc\xab\xb7\xb4g\
+\xf3\xef\xcfE\x15\xfd\x84&\x17{~&\xba\x8b\xfc\xc9\
+\xf3\x92\xd1\x97\x00Q\xe1\x178\xaa\x94z\x7fH\x0f\xe3\
+\xed\xb9A\x1c \x9fLN\x93\x1a\x8f$\xc3\xaa\x8a\x93\
+y\x8d\x0c\x10\xbb\x7fB\xc2\xab\x85\x00\x22\x00G@\x8f\
+<\xeb\x12\xd3\xa5B\xd3\xf5(\x8fo\x0c;\x90\xd4\xb7\
+\xb8\x03\xecC*\x1e\x12A\x19`\xd5\xfe\xa1wV\xaf\
+\xb0sR\x05%\xdfg\xfb\xc5\xb0\x05\xf2Z\x8eT&\
+ j\xbdf+\xe1\xf6\xb2a\xabJ?d\x01\x95\x11\
+\xeb\xd9}#\x1dNvr\x0e \xe4\x1e\xfdi\x15\xf7\
+\xe1\xa6a\xed\xf7^0Y%\x10\xb7\x87\x85\x1dX\x89\
+.u\x85\xbc\xff:\x0f\x1e1\xd9\x22\xb7\x98\xbd\xbf\x13\
+\xb4\xff\x97V\x01q&R\x8a]\x9d\x0aD\xf6\xc0K\
+\x90\xb6\xbf\x9ez\xfe\x91M\x82\xe0\x96j\x83\xc4G\x92\
+\xc9\x91\xb9\xaa\xf9\xd8\xc9\x8d\xd5\xf9a\xfe\xf6\xdfCj\
+%\x0b|%\x88\xfc\xbd\xd7\xbe\x15\xd1\xfe\xdbA\x8ek\
+\x9f\xc1\x09\xd5U\xc8\x8bs!\xcf\x03\x01\x01\xb2\xb66\
+\xea3GE\x9e\xeb\xa0\xec\xdb\x83\xb7\x07m\x0f\xce\x9e\
+\xe9\xb321\xf4\x1f\xc9\x0d\xf0\xce\xd59t\xc1Y\x1d\
+\xc8\xef\x05@=\x02\xb3r\xfb\xdcO\x1f\xf8[\x7f\x12\
+\x85\xae\xbb\xf7\x17\x7f\xd1\x97\xf7E\x1a\x97\xf3\x06\xe2\x80\
+\x0a\xc7x\xb9\xb0\xf6\xf3\xd7\x85M-IS\xa1m\xf8\
+@\xd8\xaa\xf2y\x9d\xdcg\xb5\x02\xa5\x7f9\xfee\xd8\
+j~\x5c<l\x820\xcf$\x86d\xde\xf2\xfcGv\
+8\xb1\xd8\xb7\xf3q81\xac\xdd\xfe\xd9a\xcb\xbc\x1f\
+>\x1e\xd6^\xaf\x19\x96\xd7\xfd\xaa\xf6\xfa\x85\xb0\xf6\xfa\
+\xb4l\x99xM\xf6\xcc\x07\xf0\xfe\xd1\xd3\xfe\xf0\xd2\xd8\
+\x1f\xc6;\x87\xad\x12\xd5\x0fL\xb2\xc9\xab\xce~\xd5x\
+\x87\x19\x09\xb3\xe7\xb6sa\xc6\xf3-\x926\xb2o\x19\
+\xb8n\x7f=lA \xec{\xe6\xbeg\xec{\xc6\x8a\
+<\xed\x9ea\x0bb\xa7\x12\xad\x89t\xa8V\x22\x05C\
+\xd0\xf2\x8e\x9d\xbd\xfc\x0aH'\x09\x03\xdc\x00\xe6=\x04\
+U\xfe^\xf9\xbdZ\xbe\xb0\xc5\xff\xe7\xf0\xd3\xe1\xa7\x0b\
+\x97\xc1\xf6[aK\xab\xf6\xf8\xe9\xb0\x95?\x95\xe7\xfd\
+x\xef\xb0\x95\x9a\x8a\xc2,\xff\x91_@^\xfc\xfea\
++\x84#.\x14l\xfc\xe4V\x1f\x93\x90\xf8\xbb\xa5J\
+B\xcfEC\x1dEb\xe1\xf1\xf3\xfc\x92\x98\xad\x04\xb4\
+\x02\x8b\xfb\xef9\xa8\x9c{\x90o\x02v\x89g\xe3\x9e\
+\xbd\xf4E\xbaI%\x0eB\xcb9\x9eH1\xad#\x93\
+\xba\xddu\x97\xf3\xeb\x00\xf2v\xada\xfe\x1e\x82,\x13\
+\xa1\xd4R\xc8\xa4JH\x89\x93\xab\x05\x012=\x13\xac\
+\xe4-+!/\xf1\x96\x5c-\xb5\x1e\x91\x13R\x9b\xa2\
+\x96\xa1\xa5\xde\xfe\x22\x01%\x01\x90r\xb6\xfb\x0aj\x90\
+\x0e\xd4\xc4\xe2\xf9\xa4eC\xde^&lE\x8av\xea\
+\x9c\x99\x19\x0f\x9d{\xf47\xe7n~\xb8\xf9\xe1\x94\xc1\
+\x9du\x11\xdf4\x1f\xf0\x05\xc5\xe7 \xbf#\xa1\x14\xe4\
+\xa4\xd2\x01+\xf2\x84\xdf\xc9\x9f\xdfo\xcf\xfd'R\x8f\
+\x98\x1e\x8f_\xf5rIP\xe4\x83,\x07\xbb\xef\x95\xe2\
+\x88 k\xb3\xe0l\xac 5\x99\x09-\x07Y\xc6\xda\
+\x01/C\xc7!\xe3\xb8:\xc0<p\xd7\xd1\xf7\x82\x0a\
+p\xf5\xe4\x0b\x90\xfc~\x0f\x09\xe7p\xab aQ\x07\
+Y\xb6 9\xc4}O+(\xad\x85q\xfen\xf2\xb4\
+\x03z\xd7\xbf_\xec\xf6s` P?<3h\xee\
+O\xc2\x84#\xbd\xc8(\xce\xe3\xc0\x91\xf3\xb9C>\x07\
+\xef+#wx\xa9(\xcc\xe3\xe4>\x8c\x97\xbf\xef\xe5\
+\x10Uj\xdd\x8fL\xd6XrvseL\x22\xe0\xa7\
+%g8\xbf\xdf\x92\xe8\x98\x03?\xf7\xef}\x1cpt\
+<_\x91:\xc1\xe6\x95\xf9\x91\xfa\xbc\xe3\x07\xe6L]\
+%\x8an\x94\x07\xe51\x1d\xa9\x9e\xf9\x92\x08\x80\x92\xe7\
+\xd3\xeb/\x80\x10\xf8t\xe4\x89\x95PP\xd1<)\x1d\
+\xe3\x84\xe8\xb5\xb1\x9f\x9f\x87ypL!9\xe6\xc0H\
+\xe0r\xe8\xee\xc4C}\xe9u\xd6b\xa2\xd2\xaf\xf7\xda\
+\xf5p\xdc\xfay\xcb\x11\xbflGJ\xe8\xf7{\x08\xf9\
+q\x1d\x0b\xbf\xeb\x95\xf0\x01\xfdCR\xe8\xefU\x9a\xfa\
+V\x9c\x0c\x9c\xab\x82\x96\x01M\xe9\xa4\xd2\x9b\xc5>\x8d\
+;\xe2_r>B\xbe|?\xf7\x09\xf3Y\xcb\x8a\xcf\
+\xb5\x9f\x987Za X\xcc\x7f\x8e&\xd5\x0b\x1b\xb0\
+\x1e\xb2[\x86\xad\x9e\x17G\x9e\xdc\x93q\xd3ba\x9c\
+SG[ Q\xea(\x12!\xdf\xcay,\xb0\xb1\x1f\
+H(\xf5\xe4v}\x8f\xa9y*\x11\xe5\xf9\x83\xd0\x0b\
+\xf8\xfc\x9c\x03n}\xdb_\xbb\x0a\x7fA\xfe\x05\xda\x0e\
+J\x89#\xa4\x8f*\xc7>\xdf\xbc\xeb9.\x04\x5c\xc6\
+W /\x10\xe9[^\xac/\xeb\x07\x99\xa6\x04\xb5\xeb\
+\xe2\xe8r\xc0\xadw\xfb\xadq\xd4\x0a\xa2\xf2\xde\x93g\
+\x1aW?\xf7\xfcd\xf0\x91\x00\x82\xb2\x22\x07\xb4\x0f\xaa\
+h\x92?\xd5\xa2\x95\x89\xe5\xfa\xfd\x1e\x19f\xbc\xb1\xca\
+\x1b\x07\x8e\x93\xc47r\xd2\x5cW*>\xd5\xe3n\x7f\
+\x94\xc86\x0e\xf6\x13\xe3-Af\x9c\xb5\x8c\x18G\xac\
+\xf9\xce\x8d\xacp\x8dO\x9e{\x907\x0f\xdd\xfc\xd1\x04\
+\xed|\xe1\xf8\x82 \x89\xab\xcf\xe7\x18q\x14\x9f\x19\x96\
+dl_[\xc9\xd7i\x89\x918\xb8N\xd8*\x10V\
+AI\x07s\xfb\xd8\xb0\xf6{\x7f\x18\xb6\x92\xf5\x93H\
+\xf2\x95\x09\x96\xcd\xd3\xc3V$\x83\xfc\x18\xa4\x85\x90\x14\
+\xe6s:T8\x07\xaa\xa5 ?g\xf3\xfe\xb0\x95\x83\
+\x9f\x81\xdap\x81\xb0%A\xb3\xd9\x86-\x0e\xf6\xf0\x8c\
+\xb0\x95\xae\xb4}\x09\xe4\xd3~\xf9\xee\xb0\xf6\xfa\xf9\xb0\
+\xac\x9c=b!a\x1b\xaf\x1c\xb6T\xaa\x050\xb5/\
+=yn\xc5\xe0\xe7\xd5\xb8p\x8c\xb3\xe2U\x89\x19\xf7\
+\xcd\xa1\xe4g\xd9\x07\xbb\x16\x1b\x01D!\x88r\xdfQ\
+!\xae\xfd\xa9W\xff\xb1\x1e\xfbB\x89W\x09=2\xa2\
+\xa7M\xb6\xb4.\xd8\x97zU\x86\x17%\xc7S\x16\xbe\
+\xb0|SA\xf0<\xb7\x1f\x09\xcbJ\xfe\x07'\xa4\xde\
+\xc4]\xb0yo\xd0\xdf\xad*o\xaf\x08[Ur#\
+\xb1r\xfbU\x8f|:\xea5>\x12\xb0\x02\x08\x95K\
+H\x1f\xeb\xc6}\xff\x7f}Q\xc1H9\xbc\xe1\x93a\
+\xab\xd6\xd8$\xc9\x1b.\x176\xb5\xde\xcc\xa4\x82I\xc2\
+W\xebX\xe2\xeew\xc3VP\xf0\xd4\x0d\xdf\xbc,l\
+\x95\x88L?\xcd\xfb\x0c\xd7\x1b\xae\x1f\x95\xfb\x16\x0e\xde\
+7\x02\xc2\xed\x1f\x84\xb5\x9f\xdf\xb8Yp\x1f\xbc?\xac\
+\xfd\xfc\x0da+dQ^\xdfT!\xfd\xedDf<\
+kjY\xb8y\xb4,\x0c\xe7\x87\xadZ\x5c\x9c\x13\xce\
+3\x5cez\xb0\xaf\x9f$\x87gf\xa0\xff/\x89,\
+A\xfa\x98\xfb\xb9\xfd\x80*J\x0b\xa0\x9b-r\xbc\xdb\
+k\x87\xb5\xfb\xf9dX;\x96\x1f\x1d6q\x93M\x5c\
+.5NW\x0b[*\xd6\xc3s\xc2\x96\x02\x8f\x04\xc3\
+\xf8\xb6\xb0\xd5|\xb7\x8f\xab\x1c+\x08X\xdf\xd6\x01R\
+H\xe7-\xb6\xf8\xbf\x09[%\x182\xce\x1a^\x11\xb6\
+\x5c7N\x82\xc9k\xd9;\x05\x947\x8f\x80r\xfc\xd0\
+\xf8\xc1\x09\xda\x8fK\x22\x113u^\xa5lk\x05\xa8\
+\xf6g\xe7M\xee\x8b\xe3#\xc3V\xe74\x0e#\x15z\
+\xe4\xab\xeeG\xebU\xaa\x91\x90\xa1\x05\x89/\x04\xc9\x8f\
+f\x8e\xb5J\xb4\x1c\x16\xb6$Rk_\xc3\xc5\xd0\xc7\
+=*\xf8\xd6\xa7\xf5\x07\xa1\xce\x9f\x85\xc4\xd3J\xe29\
+\xe5|\xaay\x95\x1c\x00\x12)\xe5g*$#Y\xcc\
+\xf5\x5c\xfb=5\xa6D\xd6*\x00T\xab\xfd_MV\
+\xe4\x8b\xb8a 4\x86\xff\x1d\xb6\xeco\xe3\xdd\xc2V\
+\xf3\x05\xa7\x94}-\x91\x0c\xe5\x8f\x19\x8fD\x90\x94\xfa\
+N\xae\xdf}\xc3\xfd\xc3V\x8eBn\xbc\x0e\xce\xca\xd4\
+\xca\xd8=vx\xdc\xf0\xb8U\x05B\xcf+\xd9\x0b\x1b\
+J:\xe4\x9bo\x86Md{\xcdV\x13\xdf\xc4v\x80\
+`-\x8fi\xf7\xaa\x9c\xf0\xff6\x91\x17L\x13\x98\xaa\
+\xc0\x01\xaa\x00\xbd\xcc\x9e\xf7\x07\xd1\xf0\xf3t\xac\x90s\
+\x98hUA\xf0\xfb\xa0\x96\x1c,\x99i\x90U\x95(\
+\x81\xaa\x0a\xab\x8c\x9d@\xfe\x98N\x17[\xa6\xbc'\xbf\
+\xe30.\xac\xf0?\xbf\xf2\xdf\x93l\xf5=\xf2\x1ck\
+$;\xfe\xdf\xf5\xfd\xb4\xab\xf0\xbb\xaf\xe5~gh\xf5\
+\xb9\x15P\xef\xd6\xed\xf4w\xbe2\xe0\xdd\x5c5+x\
+\xae\xfb\xa4\xd2\x9f\x9f\xefwo\x1e\xec\x02\xf3Efp\
+v\x98\x1d\xf4\xc6\xef\xc2\x9d\xac\xe19\xa5\x9a0?\x8f\
+>3\xee\xf9\xbb\x9f\xfd9\xe1%0\xc8\xf7am7\
+\xce2\xaf\x7f5C\xd1@\xc9\x90ZV\x80 \x81@\
+\xb6E\xc5\x02\xc9\xd3e\xb3\xf2\x80\x0c\xc9\xf3\xbfPW\
+\xb9\xd0\xfapB'\x97(\x808\xbe\x12\x01\xb3\x83u\
+BU\xfc\xe7\xf1\xed{'\xcd\x03\x09*\x15K-\x05\
+\xdd\xcf\xeb\xf5\xf8\x92\xa9\x9b\xc7\xa7g=\x07\xf5\x07\x09\
+\xe6\xf8yN\x1c\x98\xbd9\x7f/\x91\xf7\xd9\xab4 \
+\xc7A6\xd5AB\xeb\xf7\x8e\xd9-\xdf\xb8\xe20\x98\
+\xc7\xe7\x06Y\xa1\xb5?p\x14\xcdk\x88\x13\xeb\x5c\xc5\
+\xd2|U\xe9\x94\xc0:)\x0fR\x01\xda\xd7\xd2\xe12\
+?S\xafxs\xcb\xcd\xad6\xb7Z\xcd\x9b\xf3r~\
+m\xf2\xf3\x0f\xcb\xf5x\xd1\x9cO\xf6C\xad8\xee\xe3\
+\xb4\x94\xddyw\x06\x1e\x1cw\x08\x07\x01\xac\xf5j>\
+\xb8\x1f\xeb\x84\x8c\xa1\xca\x02h!\xe4\xcf\x07\x93T\xec\
+\xb6\xc9\xf6\xaaW\x9b#\xe9\x00\x94H1O%\x86\xac\
+_\xad?\x02\x1d\x89!\xf3\xcd>\xd4\x93SY\xbf\x12\
+\x84\xe6\xa9\x00\xdf\xf8\x08\x18\xcd\x03\x01\x85\x84\x88\xde|\
+\xfb\x98Jx\xbf\xbf\xbb\x0e\x95\x02\xfb\xb2\xbf\x87\x94\x11\
+\xc0\x83b\xfb\xde\xfcV\xe9\xcd\x84m\xb8\xed\xe1\xb8W\
+O3\x96i\xeb\x15\x19\x8f}\xb9\x93\x89\xacq4\xae\
+\xf6;\x01\x93u\x9a2hU)\xc7\x82\xefsT\xec\
+q\xc9$i^\x05\x0e\xd6\x1b\x07\xd2z\xd7#\x9e-\
+U\xee\xc7\xbeg\x7f(\xb9<\xbd\xe0d>!\x13\xb0\
+\x05[\xff*&\x1dI]%\x06\xb4L\x18\xe7\x9e$\
+S\xe2>\xc96A\xd9K\x97=\x11\x0bH\xc0\x8a\x8b\
+\x87l\x95u\x0cq\x98\x5c\x08\xd5\xb3\xad\xc7\x1f\xd2(\
+e\xdc\xb0\xb5W\x22\xabw\xac\xb5D\xa4\x83\x0dZ\x89\
+\xf3\xa3z\xfa\x8f\x08[\xb5z$\x99\x22\xbf\x08\x09\xe1\
+\xf6\x0baK\xe0\x09\xca/\xb0F\xee\xbbys\xd8J\
+\xd5\x80\xeaQ&\x96\xb7\x0f\x0f[X\xe0\x8b\x94\xcc\xfa\
+\xe1\xaf\xf9\xbe'%\x14`I\x1cp\xcc\xed3d\xa6\
+\x90\xbbiI@\xdeL\x97^\xa51\xf5\xb0\xab%\xd3\
+\xfe\xb1\x90\xa5\xce~\x8e\x0a\x9d\xef\xads\xd7\xa9 \xb0\
+\x90\xbf\xce\xfb\x8b\xc4\x13j$\xc8\x19\xeb\xc7ye\xff\
+\xcfJ\xff\xe6\xa0\xe4\xde \x17\x99\xe3\xba\xf9Q\xd8J\
+'=\x03\x12\x15\xd6bA\xc7\xa9\xa1U\x047TB\
+\xb1\xfd\xfd\xe6aa\xd3|}K\xcc\xd7*l\xe5:\
+\x19\xbf\xd2B\xfe\xaf\xb4c\xe9\x83am[|\xe7\xdc\
+k[\x95K\xfb\xa4\x84\xd1\xe7\xc2\xda\xed\x5c4l\xd1\
+\x0f\x0f\xb5\xfa\xd0\xab\xaf\xf3\xd2\xfe\xff\x8b\x12\x02\x9e;\
+\xa8q\xca\xc5\xb5\xf0v\xeay\x8ep:\x02\xea\xf15\
+s\x81C\x22\xba\x90\x02_\x0d[\x10\xbf\xe5\xf7t\x5c\
+0z\x8a\xc7;\xcd\xdc\x1b\xc3\xb3g\xc8y\x91\xea\xbe\
+b\xf3\xcaM \x0en\x1a\xb6\xf4\xa8\xe3\x88h\xc1\xf1\
+\xa9S\xe1\xf03-\x80\xfa\xccB*Y\x81R\xb2\xfc\
+\xab\xe0\x0e\x87\x86\xb5\xd7s\x87\xf3\x86s\xa7\x00\xe7\xc5\
+S\x80\xf3\xc6=o\x9a\x90\xba\xe4\xe3\xd2/j\x7f5\
+\xa9\x82\x81\xf6\xb7Q\x98\xc9\xeeR\x9f}J\xdc\xbcw\
+\x15\xc0\xbd5l%\xeb\x96\xbfW\x89\xc2$\x1d/Y\
+\xd0W\x85\xb5\xc7p\x93\xbd7\xde{\xe3\x09r\xdfl\
+E:\x88}\xfd\x1e\xf9\xf9I\x96X\x85&\xf3\xc0\xfe\
+e\x1dH\xdcC\x82I\x00\xe0\x0c\xc9\x04E\x91\x17j\
+-\xd2:\x9d\x9f\x87+A\x85\xbbZ-~)l\x05\
+5\xff\xfb\xf1\xdd\x93\x9c\xac\xdev\xe7I\x97\xd8/\x92\
+R\xc8B\xe7s\xee\xe7\xe4\xedp\x9fTaC\x0f>\
+\xae\x06\xa4\x84\xc8\xe8$\x14\x90\x1ej\xd1@.\x99\x5c\
+\x0e\xe3\x95\xc2V-c8L\xf8\xe3\xfc\xf8,\xd8\xe2\
+\x94\xa9Vo\xd7o\xdd\xda_pG\xf0G \x17 \
+z%\x22\x92c\xa6d'=\xbf\xe4\x0a\xa8\xfd5\xfd\
+\xfe\xe2\xa2z\xc6L\xc6\xb9\xf9l\xd8\x8a\x1c?\x913\
+\x95\xd0\xce\x84/\xc4\xa3\xc4\xc3px\xd8*\x11#\x01\
+L\x95/U\x1b*\xb1\x98\xe7\xf5\xf6Va+u\x18\
+\xaa\x1dTF\xf8\xed\x10\x16\xc9y\xb3\xaf\xc8\xa4\xbe\x1a\
+\xb6b\xb1\x95Y\x91A\x05\xa5M9\x88\xe13a\xed\
+\xf7\xf7\x87\xa5\x03r\xe2\x02\xcdG&S\x19\x8e\x84\x1c\
+\xd4\xc4WA\xcd\x8d\x1b\xb4\xa1\x02q\x10\x89\x17\xcdr\
+26\xb6:\x808\xf0K\x80;g|A\x1c@\x9a\
+@\xc4\xb2\x22Z\xfa\xc4\xcf\xc9\xcc\x8f@?\xaf\xa7t\
+\xbe9\x90\x1d\x0bv9\xa02+\x1c=\x8e\x0429\
+\x95\x7f\x0e\xae\x80\x9f\x03\xde\xb3\xd8\x83\x8c\x22\x1bS\xc9\
+q\x9f=\xab\xa6\x05\xab\x95\xc2\x81)\x03/\xe0[\xb8\
+\x0c\x04\xd6\xd9l\xd5\xe9w\xf6\xf7\xa1w\xbf\xafL\x0b\
+`8D\x1c|P\xf4\xa5\x82\xbf\x9b\xe4\xce\xab\x0a\xf8\
+\x22{7\x1f\xec\x16\xa8\xde\xfb\x1e\xb2\xbc\xe9 \x80\xf4\
+H\x87\xee\xf9\xfb\xfd\xbe\x15\xe3\x88\x94a\x929M\xe8\
+\xec\xa8\xe7\xfa\x7f\xce\x10\xb6b\xa9V9\x06\xfduP\
+}\xa8\xe4\xdc\xe6\x8a\xa4\xfb\x02\x19_d\xec\xe6\xfb9\
+\xbf\xe3\x12\xe08-\x81\xff\x1c\x90\x0b\xbc\x93;`s\
+\x5c\xaa@\x1c\x88\x14\x98\x03\x98.\x01P\xf2b=k\
+\xba\xe7\xd7\xf5\xfeW\xaf\xa6\xf7w]\x17\xcb\xe7\xdf\x93\
+\xaby\xae\x02k\x09\xa2~\xbc\xcdk\x7f\xef:\xcdG\
+\x0e\xe3\xd2\x221'\xae\xae\x94\xdc\x03\xb8&\xaeP\x08\
+\x88\xdd\xbd\xfe\xd6\x95J\xd2\xa7\x93L\xe7\xdb3\x92\xa3\
+d\xa1\x92\xe4\xa7Zy@\xcb\xfbJ\x0c\xc4\x8f\x83\x10\
+\xb2\x02\x97\xc3QUq\x9f\x7f\x7f\x99O\xf3}\xf6\xe4\
+\x8c\xde?\x03\xf5\xaa\xc4%\xc4\xb4d\xb1R\xc7\xba>\
+\x97#\xe7y\xec\xc9@\xe5K\xf9< k\xf6\xce\x99\
+\xfc\xb6WM,\xd4\x05\x85NdC\x1c\xef\xd3A\xf3\
+\xd2$kZ\xc83\xe7u&\x104\x8e*~\x9e\xbf\
+\xeb\xe7\x80\xf6\x90\x7f\x01\x06\xc7O\xa5_\x80g\xbf\xf2\
+|\x05\xdc\xe6\xdd\xa2^0\x07\xec\xe6W\x8f\x00\xe8e\
+\x029\xc0\xf6\xfbN\xd6os\x9d\xb0U%\xda\x01\xca\
+q\xf19TFT$%\x18@\xcd\xef\x1e\xb6\x22\x19\
+T\xf1\xe6\x10\xdb'\xfb}\xdeu\xf6\xb2\x8ed\xcb\x9c\
+G\x12% \x85\xee\xcb\xba\x95\xe8\x03M\xb7n\x9c;\
+{;r^\x0eQ\xce\x83\xba\x9e\xdc\xdf\x0a\x89\xe2\xba\
+\xb2\x17\xb9X\xda\xb58\x19\x07\x90O\x90\xfdtL\xc8\
+e\xd5<u\x1e\xbao\xd7\xe99\xe3\x12IG\xa3\xed\
+6\x13\xa2\x81L\x98\xcaU\xb5\x8e\xf0/8Z\xc8\xba\
+.\x15\xb6\xaaX\xab\xe8\xe4s)\x16}\x09\x13\xe7@\
+VR\x87\xcf\x87\xb5c\xe3\x8f\xc3\x16\x87\xb4\xa0\xabd\
+\xee \x89r\xddn/\x1d\xb6\xf4\xa8\x17\xf7\x00\x0e\x06\
+$[\xe9\x80m\xfe)\xac\xbd~\x22l\xe5hy.\
+_\x0f[\x12*\xc6\x017A!\x9f\x04\x08\x12\xca\x12\
+;\x02\xf8\x0c\xcc7/\x98\xf5\xa6K]\x89C\xef9\
+ \x13\x04\xf9\xd7\xfb\xfc{aK\xe5\xd4\xdf\x17Y$\
+\xce\x08*\x11\x02c\x81\xa9\x80\xc6\xbe\x80\x1bJ+\x8f\
+\x04\xa5\xfd\xc6<\x96x0\x8f\x9d\x7f\xb8g\xb4XX\
+\xd7\xbd\x0c%?\xc9\xf9j\xbf\xa1B\x91\x89\xad\xed#\
+\xc2\x16\x0e\x87J\x88g\x85\xb6*\xd7T%\x9ck\x12\
+;_\xca\x8a2\xe85\x16\xf2\xfbl\xee\x1d-1\xc5\
+\x81%Q\x97\xeb`|\xc0\xf8\xc0\xa9R\xf9\xb2\xf6\xbe\
+/[\xc9b;w\xd2o\xd9\xee\x0b\x9b*\xcc\xd7\xd9\
+^gE\xd6\xb5\xe9\xf4\xd5\x05\x86\xd6\xa7ym\xdd\xd9\
+Gzr@\x05\x9b\xec\xdd\x0f\xef&\xfc\x9b\xe1\xfe\xc3\
+}\x87\xfbN\x95\xd5) /r;-t\xb8\x11n\
+\x11\xb6J\x949\x07\xf2\xfa\x86o\x0d\xdf\x1c\x9a\x7f\xbe\
+}d\xd8BN7\xbc+\xac\xbd\x9e1\x93\x0b\xee\xbd\
+\xd6\xdek\xee\xbdV^\xff\xd7\x97@\xaa \xe2z\xb3\
+\xef\x12\xb6\xe2\x82\x90\xa0\x08\x88\xf9\xab'$\xc2\xec\xff\
+\xe3\x9e\xb0\xff*\x1cj\xdd\xfc\x8d\xb0\xa5\xd5`\xfc\xed\
+\xb0U\x00\xa4\xd2\x0d\xfa\x9f\xadN5\x0e\x19\x9fT|\
+!\x11~\xc5\x19!\xb9\xbd\xf5\x1c`Q+\xd8~<\
+\xac\xbd\x9e\x17\xb6\xf4poo\x1f\xb6$0*0\xb5\
+\x1e\xb4\xec\x8a\x7fpI\x09@%`=G-\x01\xe9\
+/\x97\x9a\x86}3[[\xf4\x94\x8f\x7f\x1c\xd6>\xff\
+\x96\xa9j\x96$\xc3\x9bw\x84M\x08\x8e9\xd1 \x0e\
+\x93X\xc5\x11\x00\x09\x00)e?\x82\x083/% \
+\xd2\x9f\x86\xe8\xab\xf9\xc4\xafr\xdd\xa9\x1eW-h\xfc\
+%$\x9e\x12W\xb8#2A]\x09\x80\x9c/8\x16\
+JE\x06\xc2!9\x06\x0aQ\xe0\xbaq%$\xa2\xa5\
+\x0ak\x890\x1b?\x12\xb6$\x06\x0a\xfa\x9f-.\x15\
+\xff&\x17D\xa9\xdb\xa4\xff \xb0/?\xe4YI\x82\
+\x7f\xfc|\x7f\xb8M|^=\x7f\x5c\x02\x9d\x1a\xc8\xf6\
+o\xc3\x96\xe7(AZd\x88\x990\xaf\xc2D\xee\xb7\
+\xc8q\xf9s\x90\x19\xb5\xbf(\xe4'R\xd5\xbe\xb8\xaf\
+d]Ro\x11{%R\x14d:U\x81'o\x90\
+P\x8a\xf1\xe9a\xab\x9e\x8b\xabM.\xfb\x9e\xe1fa\
+\xcb\x8d\x04e\xc8x\x89Ue\xca\x06\xa6\xb7\xd0At\
+\xef\xb0\xf6\xb9\xbf\x15\xd6\xbe\xff\xd2\xe6\xcb\x9b/\xaf\x0e\
+\x92^NO\x05\x98\xc3e\x03U\x11\xee\xc9\x00\xc9s\
+\xc9\xb8\xe5\xc4\x1e\xbf\x1c\xb6r\xac8\xc4\x1c.\x95=\
+\x0bG\xa0,\x00\x5c*\xbf\xf3\x81\xc5\xf1\xee\x03\xf6\xbe\
+\x97\xcd\xef\xfb\xfb\xbe\x92\xea\xa0\xe1\x98\xab$\xf5d\x82\
+=\x04\x95#\xcd\xb1^\xe4\xe2v\x07\xea*\xeet\xc3\
+\x8d\x13n\x00\x1b\xae\x80\xf7W2\x10\x10(\x9d\xd8U\
+\x9a\x17\x08\xec|\xbd\x97\xe8z\xf9A\x9e/\xd8A\x91\
+=\xafEe`v\xf4\xcf\xcf\xe7\xf9\x8b\xd8p\xbbD\
+\xc8\x01\x10+z\xba\xa9\xc7^\x90\xac$\x9b,y\xb9\
+$\x8f\xaa^\x1b\xbd\xba\x9e7\xa8\x15\x9d\xfb\x1e\xea\xef\
+\xfe9F\x1c\x15\xf3\xc4|\x87P0\xaf\xfc\xbf\x04\x90\
+J\x5cG\x86V\xe3\xdf\xb3\xab\x836\x0bPT\xba\xfd\
+\xbd\xc0\x7f9\xd0\xe6\xc4B\x0f\xbd\x16 \xf5-\x03\xe6\
+\x97\x0d\xdb<\xf3\xbc8&>\x87\xac\x1c\x8e\x03\xeb\xdd\
+\xe7\xf4\x09\x00\xaf=\xc7\xc4\x09\xbb\xc9\x0d+p\x14\x98\
+\x83J\xdfi\xce\x88\x17\xa9Mn\xfc\x95P\xe8\xd8\xe2\
+\xa3\xae?U\xf6\xcd\x1b\xac\xce\xdf\x09[\xf5\xa8\xe9i\
+4\x9e\xe6\xa9y\x06\x12\xae\x82,P\xb4\x0f-d\x8f\
+3\x19c\x06\x18-l\x98[\x99\xee0\xf7\xdc\xb5\xb9\
+\xb7\x0b\x11S-\x19d1\xa9\x03p\x808\xc2\x17\x9e\
+\x9ai\x96\x03e\xc8ub\xffr\x9d\x12\x89\xbd:\x88\
+}\xc6\xbe\xd0\xff\x9e\xe7\xd4\xcfo\x95s\x8e\xb5L\xba\
+\x80\xbd\x9f?\x12&\xf6A\x9f\xdb\xb3\xcf\xab\xdc\x82\xbe\
+\x1bw\xf3\xc3zs\xff}\xe5\xdd\xf5\xab(\xe2\x98\xd0\
+\xc3}\xf9\xb0\xd5<\xce\x9e\xc7R'\xb1^\x9c/d\
+\xdd<_\xeb\xc5\xbav\x1f\xceM\xe3\xe8z\xecc\x19\
+\x88n\xfe l%o\x94=\xee\x15(\x9b\xd7\xe6Q\
+Vn+02\x9e\xce\x0b\xd7\xe1\xfcC:\x0b\xba\xcb\
+\xe1P\xd1\xd3\xc2\xe1\xf7%X\xbd\x1f.\x10\x08(\x15\
+x\xa4\xe4\xb9\xbe\xe8hW\xa2\xfd\xb3a+\x96z\x8e\
+b\x87\xec*\xb9\xab\xec\xb5E\x0aW\xba\xd3*\xd1 \
+\xea\xe6\x9d\xeb6\x1f!_\xbc\xbf\x84\xf4\xf7\xc2V\x81\
+[\xcam\x15\xb42!\xa4\x9b\x8f\x87-\xfb\x02\xbd\xfb\
+\xd2/\x87\xfc /\x96\xfe\x88J1RBd\x7fz\
+\xf1\xabpb\xfdx\xffo\x85\xad\x02]\x15\xa0/\x85\
+\xad\x90\x18t\x9c%b\x9c\xc3\x1f\xce\xd6\xa6?\x9b\xd9\
+\xba\xb1V\xb7\xab\x9c\x13=\xa0\xaa\x9d\xaaEAY%\
+\x96\xb2uH\x8bA!\x1a\xd31\xac\xfb\x84\x8cHd\
+\xd2\xf6\x99a\xab@D\x00\x9d$a\x15\x80hQ\x91\
+`L\xf5\x93*\x14P;\x91@0N\x12\xdb}\x00\
+\xec\xff\x9d\x8f\xd6\xbb\xd6$d^\x0aU\x09\x81\x1d\x7f\
+9\xd9\xeb\xd3OB\x82\xb6}k\xd8TI\x9b\x10%\
+U\x09~\xc2\x1cp\x14Y\xec[\x12\x91\x92\x15_\x89\
+\x9f\xcd\x176\x9f\xdf|a\xd5\xba\xa4\x02\xad\xf2+\xc0\
+\x85t\xb5\x1fJ\x5c\xffCX;\xf6\xdf\xb4\xf7\xcd{\
+\x03\xa1\xf0\xe1\xb0\xb6m?$\xac\xfd\xfc\xc5{_\xb4\
+\xf7ES\x82k&+T\xe9\xbbH\xd8$\xf75\x91\
+\x9d\x8d\xf7\xc9\x1em\xcf\xc9\xf9k\x5c\xc8\x8e&\x99f\
+\xfb\xed\x89|o\xb8\xddp\xfb\xe1\xf6\x0b\xa9w\x058\
+\x12<7\x0a[\xd4#\xea<\x16\xc8A\xd8H$]\
+?lU\xa9\xb5\xde\x92\xfd\x7f\x92\x01|\xe0\x9e=;\
+7\x08k\xe3\xff\x94fOn\xaf\x7f2'h\xda\x98\
+\xbd|j\xb1\x85\x94\x01\xf9\xc6\x15v\x85\x99\xd4L\xe2\
+tx\xe1\xf0\x82\xe1\x05S\x01rB8\x95\x7fi\x1e\
+\x9b\x1fIbY\x89B\xadr\xef\xcfV\xa4\x9d\xb0\xd5\
+\xb8f\x85\x5c\xc5\x14\xa4\x1f\xf2\xa6\x0a\x87\xa9\x0fO.\
+\x17rc\xdf\x93\xc2V\xe7\x03\xb2\xc8\x17\xfe?\xca\xee\
+;\xdc\xb6\xab*\x1f\xff\xdd\xeb\xdc\x00I\xa4\xf7*\xbd\
+\x97\xd0\xbb\x80\x88\x80\xf4\x0eA\x10\x90@\x88\xb4\x00R\
+\x02J\x91\xde\x9b\x94\x10J\xa8\x82\x80\x22\x01\x04\x94\x22\
+\xa041\x01\x14\xe9\x04\x08 Hh\x92\xd0\xce\xda\xbf\
+5\xd6\x1a\x9f\xb1\xe6\x9d\x97<\xbf\xe7{\xc6\x1f\xfb9\
+\xf7\x9e\xb3\xcf\xdak\xcd9\xe6\x18\xefx\xc7;\x16\xe0\
+b\xb8f\xd8t\xfd\xf7\x0akD\x0b%~\xe2\x05-\
+\x84ZA$\xe6\x00Q\xe7*m\xb5\xbf\x08k\xc4R\
+\x93AU\x894m\x8b\x9cV1\xef\x8ec\x13x\xf8\
+ls\xee\x8a/\xb5\x9e\xd0\xcaH-\x03\x9f\xa3\x12q\
+\xf10F\xd3#\xc3\x9a\xfb-\xc1\xe7\x87id\xe8Y\
+'nz\xfb\xd4t\x03\xf4\x11GM\x00\x12`WS\
+\x5c\xb4\xb4\xb9>\xda+Z\x09\x1e\x18\xd60\xc6$\xc6\
+/\x0fk\x0a\x04]+\x91\xf3\xb5\xfe\xae\xffw\x0e\x13\
+\xb3\xcfV\xab\xd22\xc2\xe4\xcbi\x16\xc5\xc4\x13\xd7d\
+\xa1p{\x96\xb0\x86I\x95\x8c\x93\x02(L\x0b\xd0\xb2\
+qlX\x03\x80`Jd\x9cUb\xa6y\x9f\xb7/\
+\x0ak\x00\x11\xfe\x07\x93$\xf3\xf5\x12!\xa4\x15\x92\x80\
+\xd9\xde\x12\xbf\xcb\x0dl\xce\xe5\xbc\xd0\xaf\x9fj\xb2\xd3\
+\x07\x0e\xcd\xfcY5?\x0e\xaaOg\xaf\xc1\xf4\xc1\xb7\
+\xd7\x9d\xeczy@\x9f\xb7\xe9\xa5>z\xae\xb1/c\
+C^\xd7 PA\xacyi\x02\x06\xef\xcb\xc4\xfaG\
++U\x025v\xfan\xee\x0d\x1c\xee\x11\xd6 y\x12\
+WT\x95\x1c\xe7Rj\xbe\x906\x15\xaaL\xa8\x5c\x17\
+\xc7\xb5\xe7\xb0\xec\x9d\x80$:\x98\xfa\xc0\x15C@\xe2\
+\xbd\xa9\xca\xf3\xb2q{\xf5\xe8\xd3\xa2~\xf6\xbdl\x02\
+E\x81\xcdJa_\x0e@\x09\x8aD\xa2\xef\xb1\xbe`\
+\x89\xc5-\x819\x07\xd8\x8b\x09\x0a\xa0U\x1ezj\xa6\
+\xdf[+W\xa8\xd5Kb\xf1?y_\x86\x14\x01\xb9\
+@R)\xa9gR}\xe7P\xce\xd0M7\x00l\xac\
+\x14\xffe\xc1\x1b\x17\xe7\xdf\x01,\xbb\xfb\x8a&n\xdd\
+\x0f\xf3\x81\x89\x91\x9c\xbe\xfb\xfd\x9cW\xbf\xfd\xcfL\xdc\
+?\x94=2o\xcc\x03\xfa\xbf\xb6_\xd8~av\x8c\
+\xcb|\xd6\x04\x08*\xb1D\xe9\xe9\xd4\xb4\xf7|\x22\x1d\
+1\xc7\xa3B\xb7\xce\x83^\x02Q\xc0\x06\x07\xd0S\xf6\
+\xac\x87\xedi\xcc\xf7\xb5n\x88\x1d\xf6\x89\x9a\x04H@\
+$1w\xbf\xacK?\x8f\x19 \x81\x91P_+\x13\
+\xa4^\x5c\xcd\xd8F\xd4}s\xd6%b\x17\xeaz\xfd\
+}>\x9f\xc3\xbfK\xb0\xac\xcf\xbeW\x1aP!\x81!\
+\xc6\xe79[\x87\xfe_\x22\x9c\x0c\x8eb\xd48p\x8d\
+\x15\xbc\xc1\xa26[S=\xb4\x06|:\x9f\xa3}\x08\
+`\x90X\xe4\xfe\xafq-\x12G\x81\xdb\xed3\xe1q\
+\xbf\xadSS/\xaeX\xd4\xb8\xe5}\x01i\xfe\x9e/\
+\xbdZ\x12L\xfbN\xe2z\x91b\x80,\xdfg+B\
+!\xd6\xb7\x0ek\x12\xac\xef\xe4\xe7\xb3\xfes\x8a\xc1\x9e\
+\xe7/\x8c\xab\xba\xcf\x00\x01\xcf\xc9\xfa\xee\x01G@\x8b\
+\x04\x5c\xe2\xe8\xba\x04\x98y\x9f+q\xf6\xff\xd6\x0d&\
+\x12\xe0\xa5\x1fk\xe4::\xcar\x89x\xa9@\xf3S\
+\xd6\x11\xd5}\xa2\xa1\xa8\x85=`\xe4s\xa3\xa8;\xf8\
+]/&\x03\xe0Y\x05\x19s\xca\x97\xeb\xf5{\x80\x0e\
+~\x8e\xdf\xce}Q\x89<\xbf.A\xfe\xca\xa2\x8d#\
+@\xb0\xceP\x0ck_Y\xd7\xc9|\xab\x0al77\
+\xb8\x9e\x9b\xef\x01'\xc9\x1c\xdb\xbe4\xac\x11qK\x15\
+\xe5J\x98\xfa\xe9\x16\xd6\xa1\xfb\xa2\xc2\x9dc\x98\xeas\
+\x0aH\xf9)\x95\x04L\x22\xa2N\x02'\x22u\x02F\
+\x94rT\xe5\x0ct\x0a\x18\xc9y\xe6E\xa9\xcc\xc0\x92\
+\xa8\xd1~b\xb4\x80\xda\x18C\xf6\x88f=a\xb4\x10\
+\x99\xa4\x02/0\xcaBB\x01\x1d\x12\x08\xad\x0b9-\
+\xa7\xee\xff\xd3g\xdb\xb3yqXS\xf9\xcaJU\xf5\
+\x0a\xd3vC\xc5\xcd9\xcd%\x0e\xa8GSB\xa5\x22\
+#Q\xc4\x9c\xa0\x11\x91\x95\xb4\xf1\x22ak \x07@\
+(\x0a?\x0a.\xf11SH\xee\x16\xd6\x00/\x00\x1f\
+\x15n\xeb\xd9\xd4\x14\xe7\x85}\x88\xc1`\x7f\xf99Z\
+\x16\x00&\xcc\x03\xeb\x02\xe0\xa0\xe2\xee|\xb3\x9f\x05\xbe\
+\x9dfM=__\x00 \xeb\x95f\x8d\xf3Ze\xdd\
+\xb9\xf1\xa9\xd4\xb8\xd8\x9b\xfe\xed\x11\x09\xe0\xdaw\xb9\x9e\
+\x8c\x93\xa6\xce?\xa5\x83\xf3X\xb7\xc9\x0b,b[\xa7\
+\xe6T\xab\xd4\xc6\x9a\x99\x16\xafJ\x8d\xaa;7\xc00\
+\xb1\xb0\xd4\xd2\x18\x0f\x1d\xef>\x1e\xda\xb4|\xa4\xe8\xef\
+\xf0\xa0\xb0\xe9\xf5\xc0\xb0\xe9\xf5#\xc3G\x87\xa0(_\
+,lz\xff\xbfX\xc6\xd0\x0d\xaf\x9f\xecus\xa5\xf3\
+\xef\xe6Jg\xae\xc3\xf1o\xc7\xb7\x8eomz\xd6\xb3\
+\x15\xa3\xc6\xfde\xafvM\x95!\xde\xf9\xb4\xd9\xf6\x8c\
+\xf7\x0c[\x01\x9a\xf1\x8f\xc3\x1aJ\x7f\xc4\xef\xd7m\x12\
+\xff\x04\x1e<\xcf\xaa\xa8JLs\x9fmO\xd5r\xac\
+]\x00\x00 \x00IDATZ\xa6[m\xef\x1b6\
+'\x803%|JKg\xa0j\x1e7\xf6\xbeU{\
+`\xbchX#n\x16\xc0\xd8\xf4\xfb\xe3]\xc2\xa6\xd7\
+;Mv\xe7f\xde\xfa;\xa6\xac\xe4\x1d\xcd\xfa\xcd\xd6\
+\xa1\x02\x1cr\xfc[\xf9\xcd\x8c\xdf6_\x0d[[\x93\
+\xc6O\x86\xcd\x95\xea\xe5s\xe8MO\xcd\x04\xc0\x94q\
+\xae\xfc5\xbf\x11\x0ag\xa1q\xa6\xc0YL\xe9<7\
+\x86K\x85M\xe1\xd0aa\x0d\xc0\x90\x95z=\xdc\xc5\
+\x0cJ`\xcd\x14\x04\x0c@\xeb\xba>\xbf\x16\xd5|\x1f\
+\xf1t\xb5d\xf1\xab\x12C\x05\xad\xa4\x8a\xd7T\x8bd\
+ \x0d\xc7L\xf6\x8a\x06\xb8\xccDY\x01\xa9\xc6\x0cf\
+kQ\x01\x88k+\xed\xe2?0|\x14|3\xd1\x05\
+\xa4\x16s\xdb\xba\xa0\x11\xa0\x15\x09\x93$\x81\xaf\x8a\x0f\
+\xb4\xf4`\xe6u\xd3W\xb4\x06\xec\xd7rFT;\xb5\
+[\xaaG\x1e0\x98~\xb2\x98'\xe2Q\x1a\x22\xa6\xd5\
+\x00P\xf3\xfd7\xaf\x0bk\x12f\xcf%\xe3\x82jQ\
+T\xf0\x03\x08\x12\xe55\x1d/\x81E\xd3\xe7\x14\x98\x8a\
+9\xe0\xfe*X&\x00L\xc4\xbd\x80\xb6\xf7-\xda\x13\
+\x05\x94g>^L\xe6Y\xadu\xd5\xc4\xe1_\x88\x03\
+\xce\xe3I/\xd3\x8c\x0dM\xf1\xe8\xbd\xe3\x8b\xc2\xd6\x9e\
+\x8e\xf9\xe0\xf9\xdfT\x1f\xbcqR\xf3\x9e\xd8T\xcc\xf5\
+H<q\x99;Z\x01Z\xe0\xe5\xb1\xf1n\x11\xd6P\
+e^\x1e\xb6.\xacBR\xb2\xf7\x9e\x98B\xcdoU\
+\xc1\xf5\xbe\x1e\xb4\x85\xe2\x03$bX\x01\xb5\x83F\xa0\
+( \xf3\xc0Q\x04\x9f\xb9\xccC\xdcOMV\xa2/\
+\xb1\x01\x0cX\xf0=\x05U\x05\xc2\x01.A\xd0\xbbs\
+b\x8e3\xca\x80ws\x8e\xac\x88\x0a\x80\xcf\xd9%\x8c\
+\x022\x9fg\xff\x8a\xf8\xf2\xf9\x04\xf0=\xc5\xfd\xa7\xa5\
+\x86\xbfo/?\x04\xcb\xcf_\x07 \x90\x89\xac\xebw\
+ \x0b,%~\x12\xc3\x0b\xd6\x98\xba\xe5\xa0\x06<\x08\
+\xd8=\xaf_W\x8f\xf8r\xbfv6\x93\xc5}\xdb\xfe\
+f\xdbT\xf2\xcdi\xdd\x0f`\xf9y\x8d\x15\x5c\xbe>\
+\x95\xf7\xfb\x94\xec\xc1O\x80\xa2z\x89T\xd4\xa9\xb2\xbf\
+z\xb6\x12\xa3\xda>/\xac\x19\xc3\xa3\x97\xa8\xab\xa4W\
+\xa2\xa9\xa2*P;!UDQ\xe3%Lk%|\
+\xb9^Hm?\x06\xcd\xfd\xf2<\xf6T\x22\xb6\xaf\xca\
+q\xdd\xafN\x05\xb9\xefy\xb7.9\xa6\xacdT \
+\x0e \xf0\xfc \xe5\x12^\x09\x8c}A\xad]\x82\xa0\
+\x12\x0a\x18p\x9f\xfa\x8a-\x80\xc2\xf5\x0b\xd0PY\xad\
+\x0b\xbfG\xc5?\x01\x82\x9a/\xde\xb7\xf28h\x00E\
+*H7\xca\x84\x94\xc3\x14q\x0b,\x01\x02\xfe\xee\xbf\
+$\xd5\xbe\x1f\xa3\xe6\xefa&\x00&P\xf1\x1d<\xfe\
+}eH,\x7f\x07Ro?\xfa|\xaeO\x22\x02\xe1\
+7\x9d\xe0V\xd9\x9b\xff\xc8%\xc1*\xed\x03\x81\xf7\xa5\
+R\x13@\xc2\xe9`9}\x8d?\x5c\x9e\xfb:\xd6\x93\
+\x16\xc1\x12(\xa7\x7f+\xd5X\x95R\x9f\x9bX\x92\x84\
+\x87_\xf3\xea\xfd\xba\x1e\xefJ\x941# \xe0\x12\xe6\
+^t\xcf:\x03\x08\x9dV\x8b\x91\xe7\xd0\x7f/\xe1\x04\
+$\x09\xf0\xec+\xc0\x9b\xc4\x1b\xf5\xd8\x98\xa1~\xaa\x85\
+\xc0\xc3\xe7\xc1`\x10H\x00\xfehG\xf8;\xfc\xb0\xf5\
+&Q\xc1\xbc\xe9\xd5\xf0Un%\xe8z}U:\x88\
+le \x22q\xdb\xfesX#Z) \x11H\xb8\
+~\x80\x14f\x8d\xbf\xeb\xbe% [b\x80\xa8\xa4\x12\
+1~\x08\xd3\x00\xd0f\xfdx\xce\xb7\x0ck\x00 ~\
+\xddy%\x0e\xc8\xf5H\x1cx\xb8PX\xb3/\x88v\
+\x01\x96^\xb2P#7\xff\x17\xd6\xb4\xaePm\xb7\xae\
+/\x5c\xe3S\x97\xbf\xeb\xdc\xe6g:\x86U%\x84\xd9\
+\x9aX\xad\x02\xa8\xa1*\xa5*\x5c\xb9\x7f\xc7\x7f\x0e[\
+\x13\xea\xe1\x8aa\xcd\xf5w-J\x95\x00\xfc$l=\
+\xaf\x8a\xba\x8baE\xfd?+K\xd1\xa1\x1e=\xea\xa6\
+\x7fl\xcf\x1d6\xab\x93O\xb6\x8a\x16\x16C\x85\xc8\x97\
+\x00\x9c\x16C\xce\xe5.\xc6\x81\xe7\x84\xa2\xaae\x80?\
+\x12\xe0\x9a\x1e\xe0\xbe\xe4\x18\xb1\xfa\xfd\x04|\xa8]\xeb\
+M\xaf\x804\xcf\xd3\xcd\xf3\xc2\x1a\xaa\xb0\x96M\xfb\x01\
+3\xc4\xdfWXJ\xf1\xc1:\xe7\x89\x1cg\x00\x8dA\
+rZc\xff*!\xb0^\x01U\xce7\x00\x05\xcd\x98\
+\x04\xcc0\xfa\x00\x92\xc4\x02\x87o\x0c_\x1f\xbe\xd1h\
+*<1[O\x00W\x91V}c\x9e\x93\xbd\x88A\
+\x06\x104\xed\xbf\xe1\xc9a\xeb>S\x81\x1d?\x1a\xb6\
+\xc6M\xc3\xab\xc3\x1a@8\xa9\xed;W\xd9\xb9\xea\xce\
+U\x9b\xf3%\xcf\x87\x99a\x1b\xeb\xef\xee\xc3\xa1\xc3\x1f\
+\xaf\xda\x15\x12\x84\xe1\xd2a\xd3\xdfy\xd7\xf8\xee\xf1]\
+k\x5c\xb9\xbdE\xaa\xce\x1b/L\x0b&+\xfb\xe3\x97\
+\xc2\xd6\x0a\xb01\x8d\xb5\xfe\xce\xb6\x88xo\xcf\x15\xd6\
+\x14\xc6\x8c\xbdS\xc0\x01\x8c\xa9pb\xcc\xaa0\xa7\xd8\
+\xa1\x0a\xf7p\xca\xf0\xf3!*\xd4?[\xe6\xcc\x8b\xb7\
+\xb6\x17\x0ak\xc6}gk\xc2\xf6\x1ea\xcdk\x8cu\
+\xbbb\xa3\xce\x9f=\xd0\x05\x80\xe4\xfb4@\xfc\xf2\xd5\
+1\xd76\x1f\x0fk*\xa5\xc4\xe8\xf2<1\x8d\x04\xe5\
+\xbb(\xd9\xb4\xce.\x16\xd6\xbcO\x9e\x13\xc3qa3\
+\xe0\xb6\xb4\xe4d\xdc1\x5c;lz\xfd\xfb\xb0\xe9}\
+\x0f\x0d[[\x9a\xb5\x08H\x04\xf7cX\x12i]\x99\
+\xb9K~!\x0f\xd0\xa2\xac\xc0*\xbe\xd0\x0a\xa5\xd50\
+\x19\x14\x80\xc8Pj\x98\xc7\x03\x02\xee\x01\x91\xe2m\xf9\
+\x03 \xd8\xb9\xa7\xd5\xd5\x14\x99\x04x\xabR\xee\xbct\
+N+pe\x22L\x5c\xd3\x98\xec\xca\x17M\x8b\xd3\x1a\
+\x9e\xeb`s\xc6\xb0\x06\x18\x17\x87*\xccb\x12d%\
+\xbbZ\xdb\x00\x84\x87\xcdV\xcc\x9a\x9a\xd6`\xaa\xdc+\
+\xc2\x9au\x93\xe7H\xb5\x06\x00\x12\xe5\x9b\xe2\x1bL\x03\
+\x80\xb18\xec\xfe\xb3U<T\xf9\xab\xf8\xd3\xb9,\x1e\
+R\x00\xf2\xdc\xe4\x07\xc6;\xa6\xa8\xe4~\xad\xcc\xceI\
+Z{9m\x22\x1az\xe6\x96\x9ed\x00TK\xa1\xcf\
+\x07\xb0\xb5\x8f1t\xdc\xef\x143\xde\xbb{\xa5\xb0D\
+\x0c\x9f\xba\xaaN\xcf\xe9\xcc\x17\x1b$\xd8\x1b\x0b\x88\xfe\
+i\x9e8Z\xea\x89\x90|T\x94\xe1\xdea\xcd\x5c\xdd\
+k\xe6\x81\xf8\x85E\xad6\xa6c\xc7|\xec\xcd\xd1\xf9\
+`^\xb7$l\x9b\xfb.T\xb4Z\xb0z\xa0,\xb0\
+\x9f\x9c\xc6\xb8\xb7\x9ez/\x91\xfdR\x8aR@8%\
+j\x02y\x07\x93\x04\x00\xe2\xf4\xfd\xb0\x86\xf2\xd5\x8b\xcd\
+\x09l-@\xd7\xe3z}\xaf\x87<)F5\x06\xcc\
+\xfb\xf8\x5c\xeb\xd8\xc0\xe5\xc1{\xed\xa7\x1b\xf4sr{\
+\xd1\x0e\x81\xad\x9e\xf4L\xd4\xeb\xf3\x18\x0f(P\x15`\
+\xafc\xec\x96^\xd8\x1bge\xec\xaeY\xe9\x97\x10R\
+O\x97\x00C\xe0\xce\x10\xb6\xaa\xa3\x87\xfb\x9f\x0f\x80\x9f\
+\xe4\x9c\xe1SS\xb4HB\x02x\x91p\xd3~\xf0|\
+\xb7\xd5\xd2\x01\x00\xd8\xf7~iQ\xf8Q\xde\x8fo\xe6\
+\x01\xf5\xf9t\x94\xefK\x87o#\xf8\xe2X\xadg\xf7\
+\xd9x8cCz\x8aV\xf6\xe6\xd7\xfa\xf7\xd5\x8ds\
+)\x87N\xfdX%]\x02!\xe1\xc1\x94p=\xfd\x18\
+\xc9~\xcc\xa3\x00\xd8\xbf\xafS\x0f\xe6\xfbP\xe2ez\
+\xc3 \xc4\xff\x9b\xeb\xba\x0f\xa08\xee\xb3u-\x1a\x12\
+\xdf~]t\x95\xde=\xc9\xac\xd9\xf4@@\xf6>\xd5\
+\x81,\x90>oG\xe5\xf6\xef\xfe\x8e\xfb\xd6\xcf\xa7\x17\
+\x80\xdb\xcf=\x03\x86#U9%\xc6b\xae-\x11I\
+\xf7]\xc0\xd8\x8f\x85s=\x9e\xbfDY\xa0\x090\xc8\
+\xca\xcct\xcf\x97\xf5{\xce%\xb1\xaa\xc4[ F\x15\
+\xd6>\xf7y\x8c\x97<\xa8\xd6\xd1\xb2\xbf\x1d\xfc\xeeC\
+?u\xc4:1]\xc4\xf8;\xf79\x0f\xfcb\xe6x\
+\x1f\x142\x07\xbbq9o\x08\x9b\xde\xe7Or\xbe\xb3\
+\x8a\x9a\x00\x5cB\x93\xf3\xd9K\x04Nbh\xec\x12\xed\
+\x09\xeb*\x01\xe2z\xae\x00\x1f\x00\x15\xea}\xafQa\
+}\xf9<>?fA\x8a\xe6U\xa2\xe3\xb9\xf8}\x0c\
+\x05\x0c\x06\x88\xbc@%\xaf\xbb\x12l\x95b\x81\xbf\xca\
+s&p\xfce%\xe6\xa8\xe1\xfe^G\x05\xacu\xc5\
+\xaf\xae\xfbt\xf1wD\xe62\x90\xa8DL\xa5\x1b\xc5\
+\xd1\xf3\x96\xf0'\xe5\xb4>\x87\xfb'\xa1\x97\x98[\xbf\
+\x12^\xfb\xd1\xbe\x01\x18\x98\x82 \xc0\x02\xb4y>\x80\
+\x12\x9f\x07\xc0\xd3\x03\xd0\xd4\xc0\xa9-g\xa0\x17\xc3\x82\
+c\x5c\xf0\xe6\xee\xd3\xe7\xbc{\x8a`\xbex\x9d;_\
+\xa2\xbb\xde\x87\xff\x15\x10K \x01S\xfc0\xd1U\xe7\
+\xa7\xfb\x84i@\x9c\xd1x==\xf3\xcf\x9cmM4\
+QS=\xbf\xf4\x93\xe3\xd5\xc2\xd6\x9e\xdf\xa8\xfb\xce\x95\
+\xdf\x17\xccVq\xc0\xf0\x89\xb0&\xe1\x15o\xe4\xf9(\
+\x911f\xb0\x12g~\xd3\xe7\x95Xu\x00\x12\x0d\x87\
+\xe1\x0ea\xeb:\x1d?\x10\xb6&\x94\x05\xd8\x99\x9a\x80\
+\x8a\x0aH\x91\xf8\x98\xded\xbf\x12\xc5\x03\x88\x13\xe72\
+'=\x03\xd6\xe1ia\xab\xc6\xc7\xe6/\xc2\x9a\x9e\xd6\
+G\x845\x95\xd8\x0c\xeckjB\xb6\x92\x16\xe5\x15\x83\
+\xe4\xec\x1d\x10\x8c\xa1\xd3k\x01\xd9?\x98\x0a]\xcf}\
+\xf9\x0f\xff\xff\xa8\xd9\xd6\xfbj\xcc#\xff\xf1\xda\xa5\xa2\
+7\xb7:\xdc/E\xb8v\x92\xe1\xf7\x89y]|v\
+^\x17\xc1\xc0;\xe3*\x22X\x1a\x03\xc9\x1c\x00\xa4\xfa\
+\x5c\xe6\xd4\x0f_\x0bK\xad\xa2(|}p\xb2\x0f\xcd\
+\xcc\x81\x05\xc83\xf5*\xc7\x0cO\xbbm\xd6\x98\x1a^\
+0<\x7fxA\x03\x8ceb\xb1\xf9\xab\xb0\xd5\xcf\xed\
+\xdcf\xe7\xd6;\xb7\xc9\x0a\xfb_4c`\xef\x9e\x94\
+\xf9\x04\x8cv/\xbb{\x99\xdd\xcb4c$\x0f\x5c*\
+\x85%\xca\x97\x89X\x10\xf5\x83\xaaO\xecP\x8bL\xf9\
+\xf9<\xb7\xc4/U\xb1L\xffb<\xa5JzQ\xe9\
+\xcf\x9ej\xedAu\xbfv\x93X\xd3\x18x\xd8d\xd3\
+\xba\x1b\xff\x22,\xd5\xdc/\xbd2'\xb6W\x0b[\x01\
+\x96\xed%\xb6\x17\xdf^|\xa5x\x97\xa8)\x11L\xf1\
+\x84\xbc\x85\x96\xc0\xcb\x16\xeaw\x15\x8c\xb2UY\xe1)\
+\x94\x0cB\xcb\xa0\xa6\x5cd\xa5_BXc!\xdf\xb4\
+hE\xd4\xdf\xcd\x96\xaf\xe1\x85\xd3\x93{\xc1\xcc\xc0X\
+\xd6?\xe6T\xb6\xc6\xa1\xa6\xf3\x87\xc3\xa3\xc3\xd6\xf8b\
+|fX\xf3y\xed?\xad\xceD\xa7{\xc6\x90\x04Q\
+<\x90\xfe\x7f{dX\xe3\x8f\x00!9\xadi|w\
+X\xe3\xbf~\x1d\xd6\xe4=z\xec\xe5C\xe2Z\xfb\x98\
+H(\xed\x98\x04T\x8b9\x90-cZ\x94\x0a0\xa5\
+\xc9\x84qb\x1a\x92\xe7\xf6\x8c\xa5 \xbb=.\xaca\
+.\x01f\x14\x84\x00o4\x15\xc4\xaf\x00|ZO\x00\
+,_\x99@o\x9f\x1d\xf6[\xcec\xccO\xe7\x88\xf3\
+\xd3T\x0f\x22|\xe2?y\x0b\xd1Q\x0c,\xcc\xa0~\
+Z\x16f\xc3\x8f\xc2\x1a\xe0\x050v\x8b\xb0F\x5c0\
+\x19\x22\xe3;\xc2\x1a\xe6}\xb6\x8e\xd0\xacp\x8e\xd2,\
+*\x06\x86\xfb\x94co\x8d\xe3\xb4O7\xbf\x08[\xfd\
+\xee^\x94\x1a\xaa\xbc\xf3\x07\xbam3\xaf\x13B\x1f\xc7\
+\xdb5\xf2\x00\xfb\xf5\xda\x83ZcWR\xec\xa7\x16\xc6\
+[\xc2\x9a@Z u\x91<`\xaf\xb1\x04b\x9b\xf7\
+\xe6<U\x0e\x1f\xa0`\x8cY\xa7Z\xcfa\xd5\xbf\xf7\
+br\x020\xe2\x12O]z\xd5\xb6\xe7\xda\x9es{\
+\xce\xe6`@u\x11\xe8\xe9q\x93\xd8c\x1a$5\xa8\
+\xe6\x0f\xfb\x7f\x07\x111\x8f^;@@\xdf\xf7\xc4\xeb\
+\xb9\xdf\x9c\x06\x15\xdc\x97\x00\xce\xcfIX\xfbDs\x15\
+\xf9[~\x1eb\xf6\x83\x0c\xa0 V6\xf6\xffu\x15\
+\xf6\xbe\xc7Z`\xbd\x8eC[6\x9a\xfb\x9c\xe22\xb5\
+Q\xfe}\xa94\x09\x0c\xaa\xa7\xd9\x86\x94\x80\x00P$\
+\xf2T\xfd]W\x7f\x9d=\x00\xd23#P@\xf3\xf9\
+\xec\xf9\xef}\xaf\x07\xe2U\x95\x8f\x7f\xcc\x8aJ\xf6v\
+V@qr:@\xffn\x1dr\x8c\x12\xb7^tG\
+\xa0\xe5\xb9\xf9w\xcfy\xad|\xef+\xfe\xa8\xc2\xd8\xcf\
+\x0f\x97\xc8[o*\xdf\x1c\xb1\x80\xb8g\xaa\x9c=\xdf\
+\xdf}\xea\xe7&\xbbN\x89&j\xac\x84\xb5O\xbcO\
+\xab\x02\xeb\xf7T\xf8/\x98\x89\xc1\xe5\x129\xce^\xf7\
+\xfd\x008\xeb\x1f\xd5;\xc7yUe\xdd\xf5\xa1n\xab\
+\xd0J\xf8 \xb2\x806\xaf\xa8\xf1\x07\x875\xeb\x0f\x15\
+\xf0\xb5\x8b\x08\x9e\xde\xb3\xcd\xa1\xcb\xc1\xb2\xf9\xf7\xec\x01\
+\xc6\x14\x11H\x1aS)\x11\xb1\x0f\xb2\x82\xb5\xb9^V\
+\xc03\xe1\x9f\x9e\xc9\xb2\x1f\xfd\xfc-\xb2r\x9f\xfb[\
+\xc5\x7f\xfb\xee\x14o\xb1\xbePp\xf5h\xf5\xc8\xbb\xe7\
+j=\xb9\xef\x12[\xcf\x05\xc5\xde\xfd\x95\x10\xf5\x09\x9b\
+\x80\xfa\x8b\xdd\xdf\xcd\x0aq\xcd\xf3\x95\x18\xa0j\x9b\x13\
+L\x0d\xdb\x18B=\xf5\xd4\x81Q\xd4\xad\x13@!f\
+\x89\xc4\x12CC\x05\x17\xe5\xces\xc6|\xd0\x13h\x1d\
+\xfa|\x12S\xeb\xc1\xf3\x91\x80[o\xbe\x07H@\xf0\
+]\xafJ=d>E\x03k?\x08\xf8\xf5\x04{\x1e\
+\xc6uI\xe4\xba\xfb]\xcf\xc7\xfe\xc6\x04\x03\x84\xaa\xf0\
+$\xd0Y=\xf0*\xbd\x12]\xfe\xc0\xfd\xf49%\xee\
+*\x13\xf6\xeb*B\xbah\x5c$\x10[\x01\xab\xfb'\
+\xa0\x940\x12ot\xbe8\xa7\xddG\xfe\xcb\xe7\x048\
+\xb8\x0e\xeb\xd9\xfa\xcf\xf1\xbe\xa5\x09\xf4g{\x8e\x88@\
+\x99\xd8\x9e\x8aqUR\x00x\xde\x8f\xdf\xa0y\xa1b\
+\x04\x18\xe1\x073\xb1-\x11?~\x91\x1atR\x861\
+/$\x12\xd6aU\xec%\x8c*'\xa8\xe9I!/\
+\x95x\xa2S/\x0c[)\xc2;\x9f\x0akT\xd2\x05\
+fy~\x0cW\x0bk\x00&\xfb6\x81\x8a\xcd\xd7\xc2\
+\x1a\x0a7J-\xb1\xa9L@\x87\x1b\x845\x95w\xaa\
+\xe0\x00\x1c\x81&\xea\xb6\xc4\x08eX\xeb\x82\xcf\x97\x22\
+R\x00\xc0j\x19X5JfqC\xad\x08\x9b\xd7\x87\
+5\x0c\x91\xac\xa4o\x9f\x14\xf6[\x18U\xd4\xaa\x016\
+\x09T\xd6}w\x9e\x8agz\x80\xd9zVH\x11P\
+\xdb\xcf\xceQZ\x03g\x0e[\x81\x9d\x02,1Pr\
+\x1aQ%\xb0\xd1\xb25\xad\xe7\xf19\xe3s\xc7)\x80\
+\x1e\xf7n\x0f\x98\xe7s\xbf7U\xb5\x89,n\x97m\
+1\x5c+l\xf5\xcf\xa5\x99\x95\xf7\xbb\x98\xae\x07\x0f\x07\
+\x0d\x077\x05\x97\xa4,\x8f\xc7\x84\xcd\x94\xe4'\xcc\x94\
+\xe4\xcf.\xf1\xa2\x8a\xed<\xae\xef\xd7\x8d\xdf8a\xe6\
+\x1c\x96*\xfe~\xda\x07\xdf\xda|3\xc4$gx\xae\
+\x11I\x1b\xff3l\xaet/c\xea\xce\x12\xaa[\xd3\
+\xeb\xfc\xb5\xb6\xc0T%\xfeGa\xd3\xebU\xc3\x9a\x96\
+\xaan\xca\xd2\xac\xca\x7f\xd4\x0a\x00U\x81\x8cX\xdb\xd7\
+\xc3\xd6\xe7*\xf1p\x9eo/\x1d\xd6\xb4\x1a\xfcn\xd8\
+\xf4\xfa\x8b\xc9\xa6xp\xf7\xf4a\xd3\xeb\x1b\xc2RE\
+\xfdE3P\xb2\x8cQ\xbc\xd42\xe7\xbe>\xc7G\x97\
+\xd6\x9a\xe9^.yI\xfa)yLi\xe5\xa4\xc8n\
+\x89\x8f\xf3\xe3\x18\x05\xc4\xde\x14\x221\x97\x9f\x16\xb6\xb6\
+|\x8e\x87\x85\xad\xa2\xd0Z\xaa\x8a\xf9\x92\x80\xf2\xe6!\
+a\xab\x9f\xc4\x10\xc3D\x9ev\xcd\xd5b\xdfD\xb6\x13\
+\xf9\x0e5\xff\xaa\xe8cV`\xd6\xf0\xd7z\xea\x89\xf2\
+)\x94\x89\x1f\xe5\x1f\xf6\x8f\xf5\x92\x80\x88\xf1\x86\xc3e\
+\xc2\xa6\xef\x9f\x1e6}\xff\xae\xb0\xb5r^\x85\x0f\xf9\
+\x04\xf1\xdad\xa8\x19oZ\xda\x03*\xdf\xfc\x03M8\
+\xff\x9f\x80@\x891\xf3\xd3\xfc\x0f\x06o2\xca\xa6\xb8\
+l\xb2\xe6s`\x98\xe5\x94\x9a\x9a.p\xd6e]\xd7\
+~\xe9\xa6\x13\x00,*\x0e\x02\x04\xbbo\xe2\x07\xd7G\
+\x14^\xcb\xc5\x87\xc3\x1a\xe07\xa7\x08\x948\xa2\xb8\x8a\
+\xdfr\x0e\xf3g\xe2\xac~\xda\x16\xc6{\xf6\xde\x17C\
+\x22\xe3\x03y\xe8\xf8\xba\xb0\x99A3\x8b\xf3\x17\xb3\x11\
+\xc3\xd3xZcc\xe5\xe9\x18W\xa9\xe9\xb1{TX\
+3%B\xdc\xf6\x85\xb0\xe9\xf5\xd3a\xd3v\x9e\xd5\xfa\
+\xdf\x92cl\xa6\x04x8\xcbp\x96p\xa8\xd1\x015\
+<!\x0f\xa2S\x9a\xc4S\xa5]`\x99\x07ZQ\x8c\
+2\x10G\xe5(\x0a\x17\x15\xce\x1431\x8f\x90#\x84\
+\xd4\x17\x92\x07\xe9\xb2\x10\xfb\xc4\x9f\xba\x7f&\x00\x150\
+J\xbcQ\xa4-\x18\xe2\x10\x89\xb4T\xe2\xefsI\x9c\
+\xfb\x9e\x0c\x89k/\xb2g\x01\xa8\xcc\x08\x9c\xdc\x9f3\
+To\xf8\xa2Ep\xa9\x0c\x84\x05Z\xfeNG\xa1\xae\
+@\xa8Wu\x95 x\x7f\x01\x99\xf71\x976[#\
+*\xe0\xedZ\x01j\x01\xfb\x1e\x83\x00\xb2\x0f\x91\x97\x90\
+S\x0d\xcd\x0ay\x8d\xff\xf0\x5c\xf5\xc6\x0b\x8c%t\xee\
+\xebIy\x90\xff\xbac6H\xb41\x1fPdS\xd3\
+\xa1~\xce\x97\xc4\xdfu\xd9pz\x1fU\xa4\x12)\xad\
+\xf1,\xbf\x9f\x95\xcd\x8f&\x95I\xa5\xe8L\x09\xd4h\
+\x1d\x10\x80\xbb\xcf\xe6\xb1\xab\xac\xf5L\x0d\xaf>\xefJ\
+]\x5c\x9e\xbb\xc0z\xfd\xff}\xa9\xfd~\x7f\x1dc\xb7\
+\xack\xc0\x94\x0a\xb2J\xacD\xaa\x17\x19s]\xbb%\
+\x9a\xb8\xef\xf5\xd5I^\xaf\xcb\xf3\xb7nN\x8b\xe2\xdf\
+U\xdc+\xf1\x17\xc8\x0a\xe4\x1c8\x0e\x8e^\xfc\xd0:\
+\xf5\xbd\xf5\xed\x0b\xc2\xdb\x8fw\xe9\xdf\x97\xa3u=(\
+\xb3Dp\x88[\x99\x8b\xac\xc7X\xa5\xee\xf0TM%\
+f\xd4QR\x8b\xe1q\xc8\xbe\x14\xd3),\x98\x03\xe1\
+Jt\xdd'\xfe\xc1uS\x9f_\xc5\xcb\x96y\xb9\xc6\
+j\x11\xf3zIR\xe8\x9e\xb6\xf4\x16\xd7\xc1\xf3\x83\xb0\
+&\xb1Q\x99Uy\x96(I\xc8\xf8#\xfe\xd0s\x91\
+\x80\x9f\xae\xd3\x22\x90P\xf6\x01\x84\xe7\xac\x12\x98T\xc5\
+\xcdk\xc2\x9a\xcf\x09\x10\x13 \xaa\x10\xdbO(\xf9=\
+\x90\x881\xe0\xba\xcd\x11\xc6\x1c\x90\x90;\xc0\x89\xa5y\
+\x1f\x80\x81\x8a-\xe6\x86\xf5x\x8f\xd9V\x7f\xe9\xbe\xa8\
+\xfci]\xe8\xe7\xa9\x03V\xb4\x10x\xbe\x98\x03\xce\x93\
+\xbeE\xc1\x14\x01-f\xf6\x01\x913\x09K\xfa\xd9\x9a\
+*\x90\xd3\x1fj\x0a\x89\xe9-Z\x01\x00\x99\xbd\xf8\xac\
+\xf5\x8fQ\xa4\x95\xc4\xf3\xb4O\x5cg\xaa\x99\x131+\
+\xff\x9f\xeb\xa2\xc6;\x0a\x84\xfc\x1e\x7fa\x7fZ\xc7>\
+\xaf\xc4\x0a`\xe6|\xa3Ia\x7f&c\xa9*8\x12\
+1\xa2H*U\xb4\x5c^\xb9\xa8\xd9\xd7\xf3\xe95C\
+\xac\xbfT}\xaf^\xc8\x1c\xf76\x9c.\xac\x01\x90\x88\
+\xd2\x01\x1c$\xac\xd9\x1bZZ!\x8f^\xc6\x86\xd59\
+\x88\xa2\xe9\x1c\xc99\xcbE!Mj\xf6p\xe3\xb0\xe9\
+\xf1>4\xac\xd10\xc8\xca\xd4\xf0\x92\xb0\x06\xd8\xa1)\
+\x22@\xcb\x0aOi\x22\xb9^?\xaf\xc5\x02P\x94\x14\
+\xe4a\x0c[\xc5\x8ak>\xf6E\x17\xb1\xb4\xfa=q\
+\x89\xd6\x09\x899?\x802\x8cy\xa2\x82\x86\x9a\x9fS\
+\x03\x88\xd6\x15\x85_\xdc\xc1\xaf\xd8\xc7\x09d\x11\xc3\xdb\
+\xaf\xa0\xe1\xfc\xcaD\xa9oy\xa9\xfd\xea>\xd9\xef\xc6\
+\xecY\xbf\xfe\x9e\xe9L\xfd\xd8Q\x9aA\xa9\xf2\x1eR\
+\xab\xb3\xd8\xaa\xf3 \xc7\xbe\xfd\xe6\xb6\xbf\xb9\xddon\
+;\xfd\xf9\xb3\xed\x9eu7\xc6\xcc\xdd-l\xae\x14\xce\
+s\xb6M\xd9!\x22\xbbs\xf6\x9d\xb3\xedL\xfby\xe7\
+\x97\x93M\xebd\xe7\x12a\xd3\xff\xbf9\xc7\xde\xfdG\
+\xd8\xd2j1<vIp\xe2\xb9\xec~2l\xadh\
+Ng\xfcw\xe6s\xfe\xf6\x93\x97\xb9\xfd\x5c\xe1\x7f\xd2\
+\x5c\xe1\xc7`H&\xc5|\x7f\xfe)\xe3\xc1\x83\x9aV\
+&~\xbd\x1f\xe3\xba;s$\xd7\xca\xdf\xa3\xb6\x8f\xdc\
+>r~\xce3\xa3i\x9e\xf7\xfe\xb1\xa6\x82L\xdc\xcd\
+z\x8b\x96\xb4G6\x80\x9e\xfd\xf6;3\x17b\x05\x9e\
+2\xe1/\xd1\xcd\xd4\xc8PY\x1d\xbf\x1d6\xfd\xfb\x0f\
+\xc2\xa6\x7f\xbf\xf8R\xb9\x1f\xdf\xbfL\x07\xd8^k{\
+\xcd\x98\x22Q\x80C<\xbd)>\x1f\xff$l\xad$\
+o\x8f\xd9\xber\x9e\xb7\xfe\xe8\x14\x0f\x07\xa0J\xf4\x93\
+\x02>>+l\xcd\x17\xec\x87\x9a&\x22!%Ni\
+\xaa\xc9\x95RL1\xfd\xf0\xf8\xd9\xb0\xe9\xba\x8f\x0a[\
+\xf7\xf7\x0c\xa4\xbc\xbf\xd1\x22\xc8\x96\x87\xdd?\x0c[5\
+\x18\x86\x7f\x0bk4&\x12\x08\xd8|1l\xfa\xff\x07\
+\x865\x05\xc5\x9b\x845\x80\x8bxB\xfc\xc9\xaf\x02\xc0\
+\xbaV\xcf\x02\x06<'\xe7\x03@=\x19c5>4\
+\xdfg\xfcP\xd8t=\xef\x08[\xf7Ii\xb7\xa8x\
+c\x10\x02\x1e\xba\xe9+\xc5\x88\xd6\x22\x90\xc0\x01\x91\xd2\
+:\xa7\x9d\x0b*\xf2\xe2#\x05\xc1\x14\xd5\x9e\x9e\xf6d\
+\x0ds\x0b\xe3\x95\xf6K\xc6\xa3\xd5\xa2\x9e\x00R\x15 \
+\xc5\x0d\x00e\xfe \x99\x14%\xae\xba\xae\xeb\xe5|\xd3\
+\xa3\xff\xa0Ek\xae\xf22\xfe\x90\x7f\x11'\xc8\x8b\xe4\
+%\xe2Z\xcfO|\x84y\xcb\xffa\xa4\xe4\xd4\x91\xf1\
+\x17ak\x9c0\xfe \xacada\xa4\xe4\xf8\xd9\x8a\
+wR\xe3\xa0\xceM\x9an\xd9\xb2Ub\xb2y>\xd6\
+\xf5%\xf3j\xf3\x91\xb0\xe9\xf9\xffq\xd8z\xff\xf7V\
+\xc5'\x8e\xbf?](c{\xa6\x8d\xb59ys\xf2\
+\xdc+\x08\x19\x8ap\xf9'Y\x81\xb8z#\xce\x97\x0b\
+\xc5\x07\xab@&\x1fh\x89@\xb8\xb1z\x85\x8f[\xa8\
+1\xe5\xd0\xba\xcan\x89(\xe5\xb8\x8e:\x08\x04z\x07\
+u\xe3\xe4|\x0f00\xde#{\x94\xaa\xe2\x05\xd9\xb7\
+\xe1 6\x00\x00\x81G?\xdfZb\xd2\x05F\x15H\
+\x0b\xa4\x040\xc4\xc9\xce\x9dc\xfd\x1c\xcc\x1e\x8cDn\
+e\x08,\x01\xa6\xc0\xcf\x81\x0d\x00\xf0\xef~\xce}\x10\
+\x00B\xd8,t\xf7\xb3\xd7\x12\x90\xb0\xd8\xa0\x9f\x9am\
+\xad@\x7fa\x11\xcb\xab\x1em\x08\xa3\x0ai\xaa\x09\x97\
+\x0a\xb0\x03L\xa2\xbc\x8a\x08\xee\xcbD\xe8{\x81\x05\x0a\
+\x9e\x9f\xc4\xf4\xbd)*\xf4\x9bJ\x9ci5,\xd7\xef\
+\xbe\x00\x02T\x88\xcc9\xe5\xf0_2\xdb\x1a\x98\xa8\x90\
+x\x9eI\x0d\x07\x5c\xed7\xe7\xde:\xbdR\x1e\xc0\xd6\
+\x9fD]\xe0\xd8\xbf\xba\xbf?\xcd\xe7\xe0\xdfM\x0f\xf0\
+>*2*6}O.@\xa5\xa7D\xae\x09\xbe)\
+\x18Z\x22\x96\xff_[U\x96\xd6\x13\xad\x1f\x02\xb5t\
+\xf4\xdb\x0f-\x00\xc9\xe6&K/P\xedC\xd7\xeb}\
+<\xa7\xfe\xfa.\x90\xeb\x7fE\x9e\x17\xc7k_\x9c\xab\
+\xd4\xd2\xf7\x1d\x93\xd8O\xb9\xe8U\xde\x0fJ L\x80\
+\xe3\xdfWQ\xc0e\xbd\xfb=\x0c\x95\xcb\xed;\xce\xb0\
+\xd4\x90\x89\xed\x9c\x98\xf7\x190\xc5\xe1\xbb\xcf*\xc2\x12\
+G\xeb\xfffI9\xef\xc7\xc1\xf1\x0f\x02\xa7D\xa2+\
+\xb1\xf5<P\xc6\xad\xe3D\xf2+p'\xe6wr\xae\
+\xe7m\xf54.\xf7K\xa2'\x81\xb6\xdf\xdc\x1f\x07\x8f\
+\x00\xc0u\xf33\x9ec\xa7\x16_\x9f\xdf\x81e\x1e\xb6\
+\xef\xad\x03\x09\x91\x0a\x04\x8a-\xe0\x86\x1f\x03@\x00\x06\
+T\xec\xfc\x1d\xd7\xef>\x0b\xf4\xad\x1f\x00(@\xc3\xbf\
+K\xec\xb4(\xf4S\x07\xba\xb1\x84u=\xd6\x89\xeb\xa1\
+\xaa\x9f*\xee\xe5\x8f\xbd\xbf\x04DE\x14p\x80q\xd2\
+\xfbi\xbd\xd7\xfd\xb4\x16\x7f\xb7\x9f\x1e\x03\xd8H\x91\xae\
+\xed\xd1a\xcd\xdcs\x95q\xd7\xef\xb9\xea)\x94\x00\xf4\
+L\x89N$\xb1\x02\x1c\x88?\x11\x5c\x95\x14\x01\xb2s\
+\x01\xb3\xc2\xe7\xb3N\x9cg\x12\xb4N\x5ct\xbfq\xb3\
+\x98;\xa9\xfe^\x09i\xcey.`T<\x91\xeb\xb3\
+\xd4\xb61.P\x1b\x8da\xb5.\xf5B\xe6|\xee\xed\
+\x8d\xc3\xa6mxBX\xa3\xe6\x9f=\xf5\x05h\x01\x1c\
+P\x91%\xb2\xf6\x95\xfb\xc1o%3\xa8(\xb9z\xc5\
+\xf3\xdc\x1a\xef\x1d6\xfd\xffU\xc2\x9a\xd6\x92L8\xeb\
+\xf3g\xc0[j\xeb\x09p\xd4\x14\x16\x80}\xb6*\x95\
+\x7f\xce\x80\xad\xc4#Qy\xb3bC\xb3`{\xba\xb0\
+\xe9z~\x1e\xd6\x9c\xe3\xc6<ZO\xfc\x96\xe7M\x14\
+K\xe0m\xfd\xe5\x18\xc0\x02\xd6\xec?\xbf\xe7\xdc\x16\x80\
+j\xa5\x01\x08\x89Gz\xe0\x99\x9f\xf2~*v\xfc\x0b\
+\x7fD\x041\xfdg%<DZ\x15\x1c\xfc\xbe\xfd\x0f\
+\xd0\xb0\xaf\xad\x13\x1a@\x7f\x1f6%n\x97\x0a\x9b{\
+\xe9\x8f\x1b\x8f\x9b\xbe?(l\xae`/-\x12\xce\xff\
+CSK#[\xa3\xaa\x97x\x9b\x85\xf1\xa3\x97\xc4r\
+\xe7\x84\x9d\xe3w\x8eo\xc4Y\x0f\xdbs\xd8,\xbe\x15\
+\x05\x8c\x93W\x06\x8e\xc4\x16\xd0X\xda\x0b\x12Z\xd4\xe8\
+\x9c\x1f>k\xb5\x1f\x9b\x95\xd9\xfb6\x15Z\xc0\x9e\x16\
+N\x00\xde#g\x8b\x04\xff\x03s\x82\xafR\xfa\xb0\x5c\
+\xf7\xe2n\xd3\x90\x9c\x874b2\x0e\x99\xc7\xc76c\
+\xc2\xaa\x92\xad\x15W\xeb\xce\xc7\x97\x96\x89\xed\xe5'\xbb\
+\x5c#\xa2j\x8c\x22\x15\xfc\x98\xc6\x10\x89\xf6\xf1a\x8d\
+\xc8^N\xdb\x99)\xf1\x8fJ\x91\xe2\xeb4\x1a\x1e\x9f\
+M\x95\xfa\x8b\xe6\x18\xb5\x03\xb6{\x83\xa1\xb1=\x7f\xd8\
+\xaaUQ\xfb0\xf7\xf7\xf6ea\x0d\xa5\x1a\xe3L\x1c\
+\xa8\xf2\x9c\x05\xb2\xf1\x1aa!2\x9d\xdaT\xc6\x12\x1a\
+\xa7\x06\xb8J@~<5l\xf5;\xa6\x13\x10[\x1b\
+\xfe<l\xd6\x98\xf8FhL\x14#,\x13\xd5\xe1|\
+ak\xabE\xe5!\xf9|\xc6\x9b\x865\xda\x22\xd4\xef\
+1'\xcf\x14\xd6\x882*d\xd8o\x19\xb7\x94\xe6\x95\
+\x96\x1f\x22\x7f\x09\x88\x86\xe4e\x88^\xce\xcc\x8e\xd0\x12\
+\xf9JX\xf3\xbc\x01\x9a\xc6^k\x0dH\x86w\x89\xcb\
+\xe6t\x8cb\x12a\xfc\xf5\x8cL\xeb\x94\xf6\x96\xf8\xda\
+9%_\xc3\xe0\xc8\xe7X\xd7\xa1\x15D\x1e\x98\xcfu\
+|gX\xd3\xfa\x04\xa8\xe4\x1fRl\xb6\xc6\xf5\x01|\
+\xa9\xf1\xe7\xba,?\xe4\xf7\xb4*\xf1k\x00\x89~\xfc\
+n\xcf\xd4\xf4\xef\xb4f\xc4G\xa8\xfd\x18#Y\xd0\x19\
+\x7f\x16\xd60+\xb5\x80\xfd2\xac\xd9\x97w\x09k\x0a\
+7\xe9\xf76\xa7\x845\xd3f\x92\xa1Q\xad;\x18d\
+\xd7\x09[\xa7\x94\x98\x82\x83y\xb9\x17\xc5\xa9\xc6\x83\xe4\
+\x8dA\x1d)\xcaK\x1c\x1bo\x99\xde\xf0v\x93\xdd~\
+E\x1a\x88\xe7\x0c\xe7\x09k\x16Z\x88\x15\xdc*+`\
+\xcfZU\x15k\x5c\xce+\x13 J\x00\xe9\x94\x88\
+\xa2@\x08\xa0\x04&\x02|=\xe7\x0e\x98\x0c\x1c\xb7O\
+\x0f\x9b\xae\xff\x8f\xc6\x9b\x8f7o\x02P\x81\xa5W\x89\
+\xb5\x07\xec\xef\x08\xf0,\x8c\x95B\xbd\xefW_q\xb5\
+\xb0\xf3@\xdb\x9c5{t\x05h\x02\xf2sT\x22\x8d\
+:\xbd\x04^\xf9~\xdbo\x855\x09\xb3\x037E2\
+\xf6\x1b\x0bh\xe1IH\xfa\xca\xb3D$?\xaf\xf10\
+Ua\xfbI'\xc2\xf7\xe3\xa4\xde$5\xb8\x02\xa3n\
+\x9ca\xb5h\x18\xbb%`\x94\x00\x03$$\xaa\xc4j\
+\xf6\x1f[\xb8\xdc\xef3d\x00\xfb\xeb\x1a\xeb\xb8\xafj\
+\xb9\xe7\xef\x80\x12 \x1bK\x93\x1a\x085\xae\xc4x\x9e\
+\xa4`on\x9f\x01\xc2W\x12\xf89\x7fGy\xef\x99\
+\x1b\x02{\xf7\x050e\xfd\xf4\x89\x95\xd7\xd3R=\xf7\
+\xbd\x84qm\xf9X\xfe\xdf\x14\x01\x09\xa3\xbfo]y\
+\x9e^\xd71\x98\xfb\x8a\x86\xb8\x0e\x09\xafi\x06(\xa6\
+~\x1f\xc0\xa6\xf7\x8av\x00\xc7\xd5\x8b\xeb\xf8\xdc\xbe\x0e\
+\xec\xd4\xfa\x05d=s\xc0X\xc3\xf3\xe5\xfb\x5c\xbcK\
+\xb8%\x8a\x90\xce+&%\xdc\x01\xee\xfdT\x1eR\xed\
+\xbc\x12#\xda\x02*\xcd\xf6W\xae\xab\xcd\xb1a\x0d\xd5\
+\xd7}\xeb\xd5\xfeo\x1a6'8\x0b\xa2|\xed|\x7f\
+\x08\xb3\x0a\xaa\x80\xcf>t\x7f\xad\xa3L<\xca\xb1\x0b\
+\xe0\x1c\xa4^s:A\x05~?)Q\xa3e=\x9c\
+'\xef\x97D\x05P\x01h\xb0\x7f\xad+\x9f\x1b\xd2\xee\
+\xf7\xfaV\x13~#\x13\xea\x9a\x13\xee\xfe\x09(\x05\xfe\
+\xc6\xb8\xa5\x88\x92\x03\xb74\x04\xf4\x04Z\xe7\xfc)\xc0\
+\xb4\x03X\x0a\xa0\x90@\x02\x0e\xba1Gu\xe0Il\
+\x89%\xd2l\xe8\xc7?\xf5SUz\x00\xa9\xa7\xd4c\
+nYG\xd6\x81\x80\x16\xe5_\xa2\x0d\x08\xe0\xff\xb4\x84\
+\xf1{>\xafD\xa7\xf3\xdf\x12I\x95b\x09n\x8dO\
+\xb2\xef\x5c\xb7\xef\x89\xdd\x99\xe6\xa1\xd70E\x02\x8b\x89\
+ A\xe3W\x9c7\xb4\x0d0\x11\x00(\xfc\xb3\xfbk\
+\xbf\xb9^~\x9c?\xe4W\xf8\x19\xff\xae\x15\xc7\xf9-\
+\xe0;d\xe6\xd2\xac\x7f/\xee\xd2\x99\x1a\xcd\x18\xfb\x18\
+ \x90TM\x94\xc6R\xe1\xfe\xc7\xb0f\x1ff\xa2\xeb\
+\x9c\xdf<&\xac\x99\xf7l*\x80\x1e\xf3\xf7\x845T\
+U\xc0\x88\xdeOT\xd3\xd4\x08\xa81K\x12\xe3\xa7\x86\
+5cF3`/\xcd\x83\x95\xe2;3\x0dj?j\
+QK\xb1\xbf\xda_\x80\x00c4\xf9O\xf7\x09\xf0\x8c\
+\xc1\x87!\x84\xda\xec~gK\xc2\xe6[ak\x00\x8d\
+\xba_=\xf9\x18&\xa6\xe8\xe4s\xae\x16\x94\xae%\xa2\
+D\x0311\xfb\xe9D\xf6\x99\xf5 \xfe\x11\x08\xf3\x03\
+\xfd\xb4$\x8c\xcd\x04\x18\xaa\x95!\x7f\xbf\xa6\x8787\
+\xec/\xbf\xcf_\xd8\xbf\xf6\xed-S\xd4\x12\xd5\x17\xa3\
+B\xe0\x9c\xe7\xcax\xe5\xb0\xe9\xf8\xbba\xd8\xf4\xfd\x9c\
+\x09\xad\xad\xaa\xc5\x8cI\xa0p8\x7f\xd8\xf4s\xbf\x09\
+\x9b\x19BK\x22\x9dS\xac\x00x\xc3\xad\xc2\xa6\xd7s\
+\x0cg\x1f\xce\xb1\x02\xa6\x18]\x05XeB\xc5\x7fU\
+E\xf3\xbb\xdb\xef\xcd\xcc\xd9|\x9d\xd3\xa2\x83W\xa0`\
+\xfb\x9c\xb0\x068\xd4z\x01\xd0\xfa\xdc\xacz\x14\x0c\xde\
+\xb7m\xde\xda\x8c\x9d\xd4\xc2\x95\xdaW\xd5\xa2\x82\xa9\x94\
+\xfev\x8a\xf6O\x98\x13!Z\x0e\x0a\x13\xe9\xc7\x8a\x02\
+\x9e~q{\x9f\xb0\xf5\xb9\x8d_\x08k\x18\x1e)~\
+7\xf7\xee_b\xd5,\x99E\x07\xcf\x9a\x89\xdc\x8f\x9a\
+\xe9\x1a!\x06y\xc1uZ\x06\xc6K\xa9\xb0\xbf\xb9\xbb\
+.~\xcb\xb9\xf4\x07a\xd3u\xec\x86\xad~\x01\x03a\
+{\xf7\xb0\xa62\xcd\x7f\x98\xb3n\x9f\xe4\xbaW\xe9\xaf\
+\xe9!\x99\xa8K\xa4\xc7\xbf\x0ck\x00\x1eL\xa7\x04\xd6\
+\x00\x88\xc3U\xc2\x9a1\xaeI)\x8f!\x881\x06q\
+{\xf8\xf6\xfe!~^q\x90)l\xbf\x176}\xff\
+\xa0\xd9\xf6l\x8f\x08k\xb4K\xf8u\x050\xad\xb6\xbe\
+\x00\xed\xe6\xc7?2\x19!\xd6\x83\xb1\xa8\xd9\x1aQ\xd3\
+K\xc4\x0d\xceY\xf1\x8b\xc2)-\x11\xc0\xae\xf8\xdb\xfe\
+\xb4\xef\xce\x17\xb6^\x87\xfc\xae\xee\xfby\xc2\x1a&\x04\
+f\x94\xd6\xc4\xb5ew\x99~\xd0iuE4?\xb7\
+Tb\xcc\xa4\x86B\xe5\x05\x0a8\x98e\xce5\x00X\
+\x02$\xb5\x9frzB\xed\x7f\x0c\x08\xf1\x81s\x9f\x9f\
+Spt]\xf2H7R\x9c%>|\xc0\xc2<U\
+\x81W\x80\x1bv\xc3\x1a`\xad\x03\x12\xea\xbcI\xcd\xa9\
+\xcao\xf8W\x05\x08\xf7\xbf\x03\x08\x87_\x85\xadZ \
+\xd5\xd2\x90\xe7\xc3pTX\x00\x00_\x0aKd\xea\x9c\
+Y)}h\x13(?\x7f\xb6e|\xc4\x0fST\xed\
+\xb5M@\x82B\x9dH\xfa\xe6\xfda\x89\x84|cu\
+hE\x01\xf4A \xb5\xa8]\xd9\xd3P\xc8\xca\xaf\xba\
+\xca\xa6\xc4\xa5\x9f\x87\x9c\x01\x93\xde\x8d\xed\xab\x12\xd9~\
+\xcf\x82\xf8\xd5\x8d\xed\xc7\x96y\xa0\x0e8\x0f\xd2\x01\xd7\
+1\x11*\x01r==cA\xe2\xd7\x8f\xb9\xea\x19\x02\
+}\xa5\xca\xfba$\xf4\x07h\x06h\x95\xb8\xab \xf8\
+}\x8e\xc0\xe7\x83\xa8\xbb.\x88\x94J\xde\xe9\xb2\xc7Q\
+\x0f\x0e\xe4O@\x86\x11\x220\x97\x80\x09\x14\xb3\x92Y\
+\x15,\x15Q\x01\x01\xc7 q\xee\xb5\x19<G\xc0H\
+\xaa\xc3\x17SB\xc2\x09!\x04\x18t\xcc\x85\x02J0\
+\x19$x*84(\xde\x97\xe3z \x97\x10t\x95\
+,\x7fO\xa2 \x80w\xddk\xe5]\x0b\xc0\xbe\x09\xb9\
+\x0d\xd8\xbf\x12\x8b\xf3=FD?\xb5!\x9fG\xaf\x95\
+QL\x0a\xfb\xc0\xeb\x0a0,\xaf\xd6%\xe6\x07\x8a\x95\
+\x8aP\x06T%\x12h^w\x8a5V\xc2\xe6\xf7\xac\
+\x1f\x899\x87f\x1f\xad\x7f\x7f\xf9\xbb\xde\xc7sR\xb1\
+2N\xaa\xaf\x0c\xfb\x9c\x028\x95CS\x08z\x15|\
+\xafZ\x13\xbc\x1f\x84Vb)q\x93\xc0k\xa5\xf8\xf8\
+\xf6\x13\xdbO4\x07$*\xa4\xfb\xefs\xf9=\xea\xeb\
+g-`jIt$\x9a}\x0f\xba\xcah~\x9e\xe1\
+\xaea\x8dX\x97\x83 \xe7\xbe\xc7\x14\xe7y\x8e\xf3\xdb\
+31\xcb\xde\xdb\xed\x1d\xb7w\xd8\xde\xa1\xa1\x8e\xab \
+\xe8\x01\x93\xd8\xf6\xf3\xee\xfby\xf0\xee\xb3\x84\x02\xa3\xc9\
+\xe7\xb1\xdf\xf5\xde\x13}\xf2s\x0e\x16\xe3\xbd\xfc\x1e\xe0\
+\x0ac\x8a?\x90\x18`\xe0Xg\x123\x09\x0d\xff\x82\
+\x92l\xffA\xde\xfd}\xad@\xb40\xa8\xeb\xfa\xb2\x0e\
+<\x07\xeb\xb4\x1f\xc7\xea\xcbz\xb5\x7f\xf8U~\xcd<\
+cc\xdf0\x0dTvQx\xf99\xef\x9f\x01Z=\
+\x17\xfe\xd8\xf5\xf1\xc7\xee[\xee#\xe2^*\xb0U1\
+\xe6\xa7=_\xeb\x93\xfa6 B\xef\xa5\x8a9\xd1E\
+\xcf\xc3:p?\x00\x1f\x9e\xa3\x00\xce\x94\x00\xfbU\x02\
+\xcb\x0f\xf2\xb7\xee[\xdf\x1a\x07\xa0\xe0?zM\x9e\x9d\
+\xf9\xa4Xza/\xd0\x88.\xda\xcf\x99\x00TB*\
+\xe1\xcf\xd6@\xe3\xd3\xaa\x02o\xdf\x13U\x02\xec\xa5(\
+W\xad\xc3\xa4\xf2\x1b\x87X\x15\xfeT\xbf\xaey\xf7O\
+\x9cm]G\xae\x9f\xc8&\xa0\x095\x93\xb6Qj\x1c\
+T\xe5\x09\x83B\xe0\x9d\x15i\xbd\x9e\xf5\xb9\xb5\xc8\x10\
+U#f\xe5yIp\xf9\x13\xcf\x1d0\xfa\xe0\xb0U\
+\x95[\x05\xaf\x98m\x02`\xc0E\xb6,\xecy\xcbl\
+U\xb1\xab\x169\x9f\x03\xb54\xfdF\xd4[\xe7\x9e\xf8\
+\x9c\xa7^b\x7f\xfc{\x0f\x00\xf4b\xc6\x9e\x83}f\
+\x1f\xf8\x9eV\x05\x00S\xfc\xb22\xc0\x96u\xcc\x1f\xf8\
+\xbb\xe2\x85>>\xf0\xb9\xff!)\xcb\xdf\xcf\x0a\xea\x1f\
+-\xbd\xdd*\x91\xbb/\x0d\x9b\xdc\xeb\x0b\xc3\xa6\x7f\x7f\
+\xc22\x0e\xb8\x12u\xad\x19D:\xef\x166\xfd\xfc\xb3\
+\xc3V\x8d\x89\xe9\x94Y\x80r\xf7\x1de\xf7\x01\x9b\xc3\
+\xa3RLdk\xde\xed{\x9b\xcfG\x1c6\xa9\xd73\
+\xa3`\xbb\xc61\xe6\xb7\xd7}J\x80\xbaz\xaf\x8f\xda\
+>v\xee\xc5Of\xdb\x1c\xed\xbcfN\xbc\x16\x7f\x9c\
+\x8c\x87:W\xcf\x9c\x1a\x09D\x88\xb5J\x8aC\xf8\x17\
+\x00\x9cs\xd1\xf7\xfc\x18\xea\xfa\xc1\x16\xaf\xd9\x00\x00 \
+\x00IDAT\xdb\xc3\xe6\xf1\xa0\xcbz\xf8l&\xa4\
+ZH\x83\x11p\xf9\x86y\x9bj\xff1\x1cq\x9c\x12\
+\xf0\xf1\xa5\x93\xbd$\x81\x99\xbb\xae\x09\xdc\xdc\xda2\xdd\
+\x87\xe1\x7f\xc2\xa6\x9f\xfbiXS\x11\xcdx\x85\x88]\
+\xb5\x88\xd2\x9a\xb0\x0e\x88\x91\xa6\xca\xbe1g\x80\x97\xed\
+C\xc3\x9as\x1c\x93-\xd7U\xb5\x0a+\x0cx\x0e\xe9\
+7\xaa\xd2\x9d\x1ae\xa51\xf5\xdc\xd9\xf6\x8c'\x865\
+\xf1\x9bD\x9a\x88\xabs6\xf7\xd9p\xcb\xe1V\xc3-\
+\x9b\xc2\x09\x86W\xc6\xdf\xe3)a+\xc0Qj\xfc\xfc\
+`\xfa\xed\x02\x06\xfd\xbf\xf3C^\xa5P\x9a\x95\xefj\
+\xd58K\xd8\x9a\xd8\x97\x88\x9c\xbc\x05\xb3k\xd5\x9a\x9a\
+\xfd\xd2\xf6\xd6aM\x9c \x0eq>\x8a\xfb\x9d\x0b\xc4\
+/_\x1c6}\xff\xd4\xd9\xd6\xfd\xe3<\xb1\xfe\x88\x19\
+{\xfe\x00n\xf1\xaci\x08\x18\x94\x00\x04\xe7\xac\xbf\x9b\
+- un\xf1\xc3\x99\xcf\x96VL\xc6)5\x86V\
+\x82OlX\xfeg\xbf\xc8\xd3\x14(zqz\xfe\xcb\
+4\x22\xfeS\xa5>\x81\xf8\xc9?M\xd6\xb4\xd6\xc8\x87\
+\x89>z\x8e\x18\xc2\x18\x18\x09\xe8\x98\x1a\xa0u\xa54\
+\xa1\x14\xc8S\xb3\xa3\x18U\xc4i\x9d\xa7\xe9\x07\xf6\xd6\
+8\x1ccz\x88W\xe4\x98\x80Ru\x84\xd8%5j\
+s\xd9\xa4\xbaB\x8a\xf5l\xe8\xc9\x0d\xfc\xee\xb5\xd9\x22\
+p\x5c>\xd8\x7f\x9c\x03\xf7\xa5\x22\x84\xa2\x01\xb1\x16\xb0\
+\xfc\xb2*\xc0Kb\xd1S\x91{*\xb9\x0d\xfd\xe5\xec\
+\x951\x06\xe3Y\xb3\xad\x95\xd4\xce\x11\xd7\xfbK\xf0\xfc\
+\x7f\xdfc\xee\xd5\xbf{\xd0\xfd\xb8\xbd\xbe\xf7\xda\xc2\xf0\
+w\x04F\xfdX\xaf\xb5R\xbe/\x92\xdek\x0e\x98&\
+`Ni\x22\x92\xf5\xf9\xf5\x0c\xa9\x88\x9bC\xec\xa0u\
+\xffT\x8c\xbfR\xa2G\x8b\xa8KRo\xea\xc0\x05X\
+8\x88U\xa2\x88\xeet\xe2p\xcd4\x85\xe5\xf3\xfc*\
+?\x8f\xf7\xd3\x1bj\x1c\xcb?\x16\xd5\x7fA\xf6\x12\x90\
+ \x8eR\x81\xad\xcaO_!\xa4\x19\xa1W3\x13\xfc\
+\xfa{\xa8_]\x02[\x88\xb6^\xc2\x8b\xa5\xa3\x93\x88\
+\xd8x\xd6\xe3\xc1y\xc0l\xba\x0a\xc7\xb6K\xf8\xfbJ\
+}\x97\xc84\xc0\xd1\x12Xg\x05\xbd*g\x97\xc8\x84\
+\xb6\x9f3\xee\x80\xeb\x01\xac\xdf\xd4:[\xf6\x87\xf5\xa1\
+\x97\x1ce\x12\xa5[@\xefy\xaaDI\x9c\xf5F\xfb\
+\xfc\x0e\x1ac\xa9\xb2U\xa2(\xee\x17\xca\x80\xcc\xe7\xb2\
+n9\x5c\x81\xa2\x83\xe4\xf7\x12a\xben\x8a\xb2\xa5z\
+r!\xad\xa8\x8a\x02i\x95c\x22k\x9e\xd753\xb1\
+\x95\xf8Ax\xaf\x9b\xaf\x7f\x94=\xe5)\xe6\xb5yr\
+&\x5c\xcf^*)\x05p\x18\x0f(\xa1\xb5\x8f\x1d\xdc\
+\xd6\xa1\xe7\x88*\xe8s\xb9n\xfbY/{V**\
+q%^\x9aT\xcf\xcd\xdb\xc3\x9a\xfb\xec\xe0\xbeC\xae\
+\xf7\xabg\x22\x00\x91w\x1fP\x12%\xd2z\xef%\x86\
+\xd6\x87\xeb\xa3a\x00H\xe8\x9f\xab\xdf_[w\xf6\xe9\
+\xd9\xad\x83=\x13\xf6J\x88$\xa0\x00\x04\x22f\xc4D\
+%\x92\xd4\xea\xfbD\xa0\x17\x89\xf4|\xf93\xff\xcf\xaf\
+\x18[g\xdf;`\x058(\xaa\x00\x19\xeb\xa1gr\
+\xe9\x19t\xbf\x1d\xd0)\xaaC\xc5\xb9\x02\x0f\xfbR/\
+5m\x00\xeb\x19\x15\x8f\x16\x85@\x8e\xbf\xb2/\x00\xdf\
+IE\x16\xe0\x14\x03@\xa2*\x91\xe9\xa7b\xe8\xf9\xf4\
+~\x12 \x7fO\xc0\xea~9g\xb4\xa0\xe5T\x83J\
+,;q\xa5\xaa|\xd0\x98p\xde\x9c\x16\x03\xceuy\
+\xae\xde/)\xb1\x9b\x9b\x875\xd2#\x12\x07L\x91\x14\
+\x0b\xacqm\xc4\x08\x89\xed}#\xac\x11\xd5\xc2\x88r\
+\x7f\x5c\x97\xf3.\xf7\xb1\x04\x19u\xdf\xfbn\xef\x19\xd6\
+\xac?\xcf1\x03\xf2\xcd3\xc3~\xcb\x14\x87\x14\x05.\
+\xcd\x05\x15\xd1<gJ\x8b@%?\x13\x81\xaa<\xfe\
+:\xacYw\xb9\x8fJ\x940\x99\x09%J\xcc\xdfc\
+\x14\x09D\xf9\x17\xebJ\xa0\xab\xe5G\xc5\xde\x98\xe5\xec\
+=V\x19\xac\xf3\xdf9\x9b=\xb1\xb4Qj\x8c\x145\
+\xee\x9c\x17]\x22\xa6\xaf\x0e\x9b\xbe\x7fXXs\xfe\x88\
+\xbf\xdc\xd7\x9e\x19\xd9\x8f\xf5\xeb\xcf\xaf\x9e\x99\xd4\xaf\xaf\
+\xcb\xef\xdb\xd2\xd5\xb4\x0a.\xbf\xef\xf9\xa3v\xa7\xb6\x14\
+ w\xfb\xe0\xb0UE{<[\xd8\xf4\xfa\x84\xb0\xa6\
+\xe2\x88:\x9c\xcc\xc1bv8\x9fT\xd6>\x146\x17\
+\x10\x16\xed\xaa\x1b,@\xc0\xe6'\x8bz\xfc&\xc7\x1d\
+o>\x116\xbd\x9e\x10\xd6\xf8\xfd\x14\x91\xdd~2[\
+\x14\xb32X\xe7\x8f\xe7\xa3\xf2'\x1e$\x1a\x99\x15\xd9\
+YE\xffa\x8d\x9f\xbc\xfe\xbeZH\xd3.\x98{\x9a\
+\xabgY<\x01@\xe9\xe35\x80@\xfa\x99\x12\xa5\xd3\
+\xfb\xec\xbc7\xce\xee\xbdY\x99\xcd\xf8\x0dpg}V\
+\x82rr\xd8,:\xf7\x8c\xf1\x19\xa9\xc11%>\xe3\
+\xcb\xc6\x97\x8e/\x9b5\x01\xae=\x8f\x9d\x0cQ\xe0\xe9\
+\xf9\x0e\x97\x0a\x9b[Q\x0e\x9f[Q\xee\x136\xbd\x8e\
+\x9b\xdd\xcd\xee\x0c\xb4-~\xfdU\x8b\x9f\xa8\xb8Y\xc2\
+\x87i\xa7\xd2/1\x14\xf7$\xc3\xa5\xf2\x03~3\xfd\
+\xeax\x9d\xb0\xe9:\x9e\x15\xd6\xecG\x899\x91\xd3l\
+\x91-\x7f$1M\x8a\xfbx\x8b\xb0L(\x0f\x9f\x99\
+\x11\xd7\x08\x06\xc0p\xe3\xe1\x0fB[@\xa2gJ\xc0\
+\xf0\xb8\xb0\xa6P\x90\xeb\xbcT\xf7s]\x010j_\
+ZWy\xbeWk\x87B\x0eQT\x89\xb7\x845\x01\
+\x9b\xf1Va\xeb\xbe\x9e\xee\xf3d\x0d\xc3\xc0\xba\xe1w\
+\x88\xe9\xfa{\x87\x845\x09*-\x1ey\x03m0\xfb\
+\x95H|\xe6s\xb4\x04J\xdb-\xcfE\x00\x8e\xf8\xc9\
+}\xe0G\xb5*9\xff\x8b\xf1\x91*\xf9\x9b\xbb\x84\xad\
+\x09~\xf9\x9d\xf4\xb3\xc5d4.0E\xa2+\xf16\
+\x85\xc1\xfes\xce\x02\xc6\xb4\xb8h\xd1r_1\x972\
+o.?\xe6\x9cIm\x8c*\x00\xbb.q\x8b\xf3\x9d\
+\x9fs\xff\xd2\xcf\xd5ujm\xca\xd6^c\x01\x9d\x9b\
+u\xbee\xdc\xa1\x85e\xf3\x81\xb0f*N\xb6\x9e\xed\
+\x9d\x7f\xfc6M\xe0\xc41Pq\xcdq\x11\xd3\xf1\xfd\
+\xf8\xcd\xe3g\x04c\xa6\xceUOJ\x22P\xd5\xcb\xf6\
+\xd5\xb0\x85\xda\x1a\xa2{\xb3\x1a\xef\xc3\xd7\x9f\x9f\xc2\xa5\
+\x99\x026\xb9\xcdy<`mP\x95\xc1\x9e\xca\x08\x00\
+\x90`\xf8\xf2\xbd\x1b\xf6\xa2D\x04\xff8E'\x04\x98\
+~\xbf\x9f\x9b\xdcS\xcb\xfb\xc4\xbeK\xfc\xa9\xa6V`\
+(\x81\xc7\x1c\xe8\x12\xfa\xed\x0f3\xc0\xba\x5c\x06\xb6\x00\
+\x81\xdeq\xf5\xe2|\x16\x86@W\xe0\xe6\xe7]\xcf'\
+\x96\xcaf11|\x1e\x07#U\xd6\xa46V \xe3\
+}\x93\x82\x5c?\xdf\x8f\x1bt? {I\xdd\xae\xde\
+\x7f\x0bY\xa2\xec>\xa8\x5c\xb8\xcf\x0ep\x0eS\x85\x84\
+c\x92\xa0\xa6\xe8O\xa9?\x0b\x10\x05\x82)\x02U\x01\
+\xb8D\xce\xfdA5C\xb5\xcb9\xc3UYq\xbd\x19\
+xl\xbf\xb4\xac\xdb\xcd\xb5\xf2\xfe\x0d\x1d\x83\xc2\xf3\x10\
+\xd0\xf4\xe3\x19U\xbe{&\x09\x87\xf0\xcf\x89\xb4\x01:\
+$f(\xb9(\xf7\x90;\x09\xb0\x8a6\xea\xfcy\x12\
+\xe0\xd1\xeb\x0e\xf0\xd1Rq\xc6nn\xac\xe7\xa8B\xc7\
+\xb1I|\xde\x9e\xd3.T\xae\xfa\xca\xa3\xe7\xc5\xb1[\
+\x07\x02`\x88\xb1^F\xeb\x95\xd8\xa59\xe5*\xf4\x12\
+\x9a+\xe7\xe7\x82\x88K@\xbdRc\x97\xb0JL;\
+D\xbb\x02u\x09\xae\x00\xe5\xeeK\x05g:\xa4\x96\xf7\
+\xe1\x88}\xa9\x88gE\xb0\xa8\xc2z\xbe0W\x04\x9e\
+\x9e\x8b\xca\x9d\xc4F \x85b\xec@\x82|s\xdcz\
+,\xdd\x07\x95\xf0\x10]\xfd\xdb\xa6\xb2\x82\x02.\x00H\
+q\x96Z\x7f\x026\x89\xbb\xef\xf93\x075\x00K\xa5\
+Y\xe2\xd7k\x1d\x00X\xd6\xb1\x9f\xcb\xe7\x11P\xfe\xef\
+\xbe\x9a\x1dEE\x06\xa8\xe9\xdd\xce\x1e\xe8\xcdK\xc3\x1a\
+j\xba\xaf\x9e\x22\xdc\x8bU\xf6~\xce\xf58\x87$\xa4\
+\xc6;b>\xd9'\x12U\xf7E\xe5KE\x1f\xf5\x12\
+\xa3\xc3\xcf\xdb\xdf*r\xd9\x13\xa9\xa2[\xeb\xc6A\x8a\
+\x91\x92\x80d\x01!\x12SSr\xf8I\xd7\xcf_\x0b\
+\xcc\xb3b_\x95\x06\xd7#`%\x0a\xe8\xfd\x05Rz\
+\x01\x89\xfb\xf4\xadE(\xed\x98M\xbdx\xa1\x04\xc7\xdf\
+#.i<\x1d\x86\x89\xfd&\xe1\xec\x01\x80\x03;m\
+\x0e\xaf\x80aSKPZ}~c\xd3\x8c\xa9U\x11\
+\xc1\xb4\xd02\x97=\xee\xc3C\xc3\x1a?\xa1%\xc5\xf9\
+f\x9d\xd2\xf2\xe0\xdf\x8e\x9a\xad\x02\xbb\xda\xbf\xeb8\xe0\
+\xe5\xe7\xf9g\xfbKo\xa6\xf1u\x9e\xab\xfb\x07\x00B\
+\xbd\xcf1\xc7\xc6\xcb\x96\xca9U\xf5\xdf\x0bk\xa8\xda\
+\x99\xa0Z\x97\xa5\xca\x9c\x15\xb9\xcdo\xc2\xd6\xf1\x7f\xc4\
+\xea\xfa\x9e\xf9bH\xd9\x7f\x99\x98W\xe5\x08\x90\xa0g\
+\x1e0\x06\xa8\xc4\x0c\xc8\xc4\xd6|\xf8\xcd\xd3\xc3\x1a?\
+\x00P\xb4\xff\xac\x0b\xbd\xac\xf6i\xcf\xb4\xf9\xff;/\
+\xfb\xf8\xad\xa7\xcc\xfa\xbe\x9fK\xce_\xf1K\xe2\x0b\x94\
+b\xf3\xecQ\x81Q\xdb\x8f\x09\x9b.\xebO\xc3\xd6\x8a\
+\xafqr\xf5\xf9\xb2\xf2_\xd312~\xf5>T\xe1\
+\xdd\xff\xcdc\x96\x96\xa9\x9d\x8b\xec\x5ctgz>\xc3\
+\xcf\x86\x9f\x0eS\xfc\xbas\xfe\xb0\xa62\xabr\xab\xd2\
+\x99\xe2\x825\xcf<\xa7\x04h\xc1\xa8\xcay\x8e\xd3+\
+f\xa3\xfb\xe69>p\xb6\xf5\xdf\xbf\xbd\xdc\x8f\xed7\
+\x93I\xe0\xf3\xbd1+\xd4>W\xc6\x89\xc6\xe0\xd5\xef\
+\xe7\xfd,\xed$\x85\x95\xbc\xff\xc6\x95\xd6t\x0a\x1a\x1b\
+T\xd4S\xe3Ko}\x89\xb6e/\xbe\x8a\xfdx\xdb\
+\xf1v\xe3m3\x91}\xc8\xca|@\xd5\x9e/gz\
+\xfe;\xaf\xdby\xed\xce\xb4\xafv\xffi\xf7\xfd\xbb\x0b\
+\xf3'\x22\x9fh\xc9Xz\xe8\xb3G_\x9c!\x81\x1d\
+\x9e\x17\xb6\xaa\xc0G\x03\xf0\xdc\x02L$\x10\xe3F\x9c\
+N\x0c1[ \xc5\x19\xe3\xf5\xc2\xd6}b*F\x15\
+\x141p\x0e\x08[5\x22\xdc\xdf\x8aWs_N\xd7\
+}\x81h%\xd9\xde+l\x9d*az\xda\xe6O\xc3\
+\xd6\xa9%\xb4D\x86\xcf\x85\xad~t\xbceX\xd3\xa2\
+\xa0\x92|\xbf\xb0f\xdf\x12\xd3\xc3\xe4u\xee\xca\xab2\
+\xae\x1b\x1f\x12\xb6\x7f\x9e5<5\xac)T8o\x01\
+\xcf\x09@\xf2c>\x97\xeb/\xbf\x85\x11\xf8\x0fa\xd3\
+\xf7\x8f\x9dm\x8d\xd7L\xf1H\x00\xb5D\x0b\x8d)\xbe\
+iX\xc3\xc0\x030a\xfe\x12Q\x94?\x02\xd2\x00\x8b\
+\xe2\xb9\x04\x82j:\x01\xe6\x86\xfb$oI\x91\xde\x8a\
+Gh\xcf`X\x8a;\x01\x87\x803\xfe\x9d\x9f\xd4\xaa\
+\xe2\xf7\x00M\x0ao\x98=\xfc\xb3s\x0aC\x14\x00\xe8\
+|\xcdsK\xfcS\xfbQK\xc3\x1d\x929\xcaO\x12\
+s\xcc|i\xf3wak\x1e\xaf\xc5\x8d\x88\xe9^\xbd\
+\xdc\x150Ar\xb2WH\xaf\xd6\xf0\xc7\x8b\xe8\xdf\xf0\
+\xb6\xb0\x06\x09\x91\x88\x12\x8fyk\x8a\xcc8\x18?\x13\
+\xf6[\xc6z\xa9x9 :\xe0a\xbf\x03\xa4\xebA\
+\xafW\xbdv*,({'\xa4:%\xc7\xe6\xe0\xb7\
+0\x04\xa0\xbd\xba\xbc\xbf\xdf\x03\x01=@\xe0\xe7%Z\
+\x1c\xb6\x00\xd3\x03T\xf1\xb5\xd0z1\xbeS\xabu`\
+\xd9\x886j7\xce\xb0>?\x84\xcfF\x140\x10\xd1\
+I\xa0\xa5\x12\x19\xe3\xa8$\xdc*\x9d*K\xbe\xfa\xfb\
+\x8b\x12\x89\xe2\x06y\xa4\xcd@l\xe2\x92a\xab\xb8K\
+\xb5\x1aHH\xf6n&\x8b\x802\x06\xbf4\x07\xae\x9e\
+=j\xbf\x80\x08\xf7/\x13\xe7\xa2Rr,6\xa8\x04\
+,\x03v\x8c\x87\xaa\xb8\xe5x\x9aJ\xb4%h\x9e\xe3\
+\xaf\xbb)\x03\xbe8\xcc\xbe\xe5c\x9dJ\x80I\xb1\xac\
+\xff\x93\xb7?\xdc\xfep\xbd\x0f\xd3\xdfX\xd6\xc3/2\
+\x01\xe2\x182\xd0\xde\xdc:\x81\x18\x0c\x07\xe3=\xa8\xd5\
+K r\x1e\xf0~\xda\x0e\x00\x0f\xc8\xa4\x04\x19\xb5[\
+ \xae\xe7T%9\x1d\xf8\xf6\xab\x99\xc0\xebE\x84\x88\
+\xa3@rL\x02\xe7\xbeb\x0c\xb1\xfc\xd9\xb4\xeb~\xb6\
+>\x8f\xaa\xfc\x02\x16T\x90\xb3\x22\xbf\xb9\xf1R9\xd9\
+s\xa3\xdc\xff\x02\x1a\x22N\x1c=\xd10\xfb\xc0u\x9c\
+?\xefc?\xe6\xed\xb2\xe9\x98{M\x8d\xaegT\xe0\
+\xbe\xfd\xab\x0c\xcco\x9b\xaa\xefY\xf9*\x8d\x01s]\
+\x05n\x12*\xebR\x00j\xdfC\xc8\xf95\x8e<\x0f\
+\xea\xfaw\x01\xacDU%=\x03\x00\x89f\xcd\xc9\xb5\
+\x1f\x1c\x94I\xd9+j\x9a\xfd\xa0\x12M\x94\xcbA\xed\
+\xefz~\x90}@\x08M\x03\x15l\xfb\x1f\xc0h|\
+\x0f\x80\x01%^\xc5\x14\x85\x5c\xc2\x98\x15\xd3\xaa\xf8\x0a\
+\x84\xf29\x14\x80j\x8e\xfb\xcfk\x1c\xe8\xbe\xd3V\xdc\
+\xef~\xce\xae\xfd\x00P\x02\x1c\xa2\xb4\xdb7>\xbf\x16\
+\x83\x5c\x8f\xa5\xf1\x80\xe9\x82A\x80\x22+\xd1\xb4\xdf\x00\
+v\xf6\x15\xe0W`\x80\xe9F\xd3\xc0\xbe\x10\x88\xa1\x8c\
+\x1b\xeb$\xc0\x10H\x08\xcc\xad{~\x075^B\x96\
+-M*buN\xda\xdf\x00&\x80\x85@\xa0\xbb\xfe\
+\x02d\xfb\xa93^\x05N\xfc\x9c\xf3\xa9\x1f'\x09\xe8\
+3\x9d\xc2\xf9\x84bi}^zNy\x16J\x7fK\
+a\xe5\x1f\x00\xc2*\xdd\x184\x12o\x81\x96\x00\x8a\xbf\
+\x07tX\x07\x02?\xe7r\xc7$*\x0a\xf1\xc7\xc2\xd6\
+\x9e\xdajU\xb4\x8e}n\x22z\xce\x8d\x8eI\x12\xde\
+~\xdb\x02\x85\x02>\xbd\xdf)\xf25^!l}\x9f\
+\xe1\xeca\xd3\xff\x9f\x12\xd6T\xf2\xadW\xfe\xf5y\xb3\
+\xad\xe7\x021?\xcf\xd7\xf9\xed\xb9[\xc7\x00J\x80\xb3\
+\xfd\xc4O\x00\x00\xf9\xb9L\x9c\xaa\x95\xcf\x18\xbd\x1c\x07\
+Z\xda\x0bc75\x060\xd4\x8b`\xf9\xea\xe3\xb6\x1e\
+ \xe8\xff\x1f\x90 \xde\xe1\x0f\x00\x09WJ`\xedk\
+y\x9fQ\x80\xf3\xdc\x1a\xdf\x1a6\xbd\x1e\x12\xb6\xb6.\
+l\x0f\xdd\xdem\xeeE?wX\xa3v\xfe\x82,\x14\
+a*\x02\x80\x01Vz\xeb\xb3\xa5\xb0\xc4\xb4\x1e\xb3\xf4\
+\xcc\x0e7\x1dn6\xdcl\x1e3{l\xf4\xa8\x0f\x9f\
+\x0fk\x00!\xe3\x06\xc5\x0fz\x8a\xf9W\x13yh\x82\
+\xa4\xa8\xdd\xf6\xdb\x99\xc0o\x17@\xb2\xce7\xeb\x9b\xf6\
+\xc8e\x93\x09w\xa6e\x9f\x94X\xe21\xc9\xa0\xb9d\
+\xc6\xf3Y\x00\xd9|6l\xa5\xb2W\xdc\x9a\xbd\xef\xb5\
+\xff\xdc\x07\xeb\x12\xd5\xb9o\xedD\xd1&\xb2\x99\xc0$\
+q\xba\xf1\xa4\xb0F\xf4.\x81\x81\xed\xc1\x93\xfd\xce:\
+\xdeof\x1e\x7fpZFGL\xf6\x80&\xe1\xce\xc4\
+v\xf8\xbf\xb0\xe9\xf5\x05ak>!\x11\x1a\xee=\xdc\
+g\xb8\xcf\xecwf\x7f^\x89\xa1\xf35\xe3\xed\xf1\x15\
+a\xd3\xef\xfd0l\x05\x0a\x89\xf7\x95J\xfb9\x971\
+\xe1z\xd3\x89\xd9\xf17\x9b\xef\x855\x80\x1bJ\xfc&\
+l\x15\x07\x04\xe4\xd5\x18\xc2#C\x8eq\xfe|\xd7\x9b\
+\x81\xb7\x9cN5\xdc>l\xf5\xa3\xa5\xd2\x9e-\xd9\x95\
+`\x8ac\xf2<\x19o\x17\xd6$\xb4\x0ae*\xdfZ\
+\x83\x00v\xae\xd7~\xe5\x0f0FS\xa4\xb4\xf6O2\
+S\x86;\x855@\x80V\xeb\xd4T\xa8)A\xd9J\
+US\xb7\xc4C\xe2\x1d\xd3\x04L\x03\xe8\xc5\xdb\xfb)\
+F\xceQ\x1a\x08\x00\x0e\x95yb\xc4\x80_\xf9\xc6\xc3\
+f[[-\x9c\x7f\xe24\xcc*yEN\x85)\x86\
+a\xee\xd3\x8a\x13\x14\xc6\x148\xc5\xd9\x0a\x0a\xee\xa7\x16\
+3\xad$9\xbd\x8b\xa6E\xfd}b\xea\xb4\x12\x8c\x1b\
+\x14\x7f\xfa9\xf9\x90s\x10 B\x13\x81\xc6\x99\xf3\xce\
+\xff\xe78\xcb:W\xedgyO\xe6\x8d\xc6\x96\xda\x0f\
+{+@2\x1f0\x1d\x1e\xb5@\x15\x0e=S\xe3\x8d\
+\xc3\xd6q\x1c\xd5k\x90\xbd{\xa8!Eq\xe3\x18!\
+A\xa89*\xa4\x10v\x0b\x03\x00\xe1\x86\x09\xec\xfd\xbf\
+\x00FB$\x10\xb4\xe0\x05<\x1eP\x22\x95\xe5\xf0\x04\
+`\x02(\x0b\xd5\xeb\xb9j\xce\xf7r\x10\x09\xb8\xfa\xef\
+\xfb\x7f\x170\xf5\xbd\xa7~\x0e@\x00\xe1\xee\xdeo{\
+\xea\x12\x18\x04!j\xd3\x8aW\xf5\x09\xb9\x83X\xc5\x90\
+\x03\x87<'5\xa8\x12\xd7\xff\xc8\x00\xe7\xe8\xd9jN\
+l-\xb0\xdch\x9bC\x12\xa0Au7\x06\xcf\xf8\x14\
+\x08\xea\xdfe/\xd9\xef\xa4C\xc8^\xaf\xba>\x14j\
+=\xb5\xe7_Da\xa6\xcd\xb8lP\xc8XG\xc9-\
+Q \x22Q*\x986\x869\xda\x9d6\x00\xcaP9\
+:\x89\xa7\xc4d\xf74z\xe9{\x8d\x09\xcf\xef\x97\xa5\
+N\xbcT&\xfa@\x07`\xe3\xa0\x04\xb0\x18\xabs@\
+\xae\xcf\xa48MI\xfd\x12\xa8\xb9\xdf\xbf(5\xf6\xe5\
+\xfd9<\xc0\x08`\xc0}\xe2\xe0l\xec\xd3{\xfft\
+H*S(\xd4(\xb6\xb9\x8f6w\x0ck\x02L\x01\
+\xba\x84D\x22\x96Z\x0c\xa8{\x95\x18\x9eR\xbd\xfe\xfb\
+\x8aJ\xc6t\x87\x1f4\xc0\x1a\x87\xae\x12*\xc1\xbcq\
+\x06\xec*\x91z\xc0\xcd\x956\x86M\x02p\xab\x0ct\
+/\x5c\xea\xebK\x00\x9e\xd3\x04\xea\x80\xbdb\x02L\x12\
+]\x01?\x8a\xbc\xf7s\xdd*>\x02\xfcTy/\x8a\
+\xb0\x96\x06\xcfY\x22\xe5@s\xbf\xadC\xf7\xc5:\xb0\
+\x0f\xadk\xf7\xd7\x17\x06\x0a@H\xc2\xea:Ub\x05\
+\xea\xc4}\xfa\xde\xda~z\x86\x04\x05 \xe4~\xf0\x13\
+\xd6\x17&\x03\xa0@\x22\xe6@\xb3\xaf\xf2\xf9\x0a(\x0a\
+\x00\x10\xc0\xbb>\xeb\xc8\xbf\xaf\x9a\x16\xcb\xfat@\xf1\
+\xab\x0e\xa2~\x8a\x07?\xd9\x8b\xeaXg\xde\xdf\xbar\
+P\x03:\xf9S~\xc2\xfb\xaeS;\x96\xf7\x11\x10x\
+\x8e=\xb0\x83\xb9\x05\xd0\xfe\xfd\xb0\xe6\xef\xdb\x7f\xc6\xf1\
+\xe9%\x07\x08\xb8\xcfW\xc8u\xf3\x9f\xd93L\xcc+\
+\xb5\x1f\x8a\x01\xe2\xb9\xaaL\xbbN\x01\xbf\x84D\xcfb\
+\x8eg,\xc0\x03\xf0\xc6\xcfR\xcf\xc7 \xf0<\xf9A\
+\xeb\xcf~\xf0\xb9\xbdZ\xf7\x02\xfd^\xdc\x08\xf0\xc8/\
+\xd9\xc7\xd6!\xff&\x9e\x08f\xcc\xe1\xcd\xb9\x9b\xfb\xbf\
+\xd6\x9f^Z\xe7\xb0\xbf\x9b\xad\x00\x05\xb0h\xc5\x01\x04\
+h54\xb6\xcfu\xe6:*\x06Q\xc70\x8at!\
+\x12\x86\x02\xb6<7\x81\x1ej\xaa\x1e\xeb\x04\xf2\xea+\
+\xe3\x8c\xcd\x1b\xc3\x9a\xfbJ\xa4\xefma\xcd>V\xe9\
+Q\xf88\xc3<\x07\xa1D\xa7\xaau&\x13\x85\xbao\
+\x98\x08\x02u@\xa0D \xd75jg\x05\xc8\xd6=\
+*\xadJiR\x8d\xeb~\x89\x7f0/\xb2\x05\xa4D\
+\xe9\x88F% V\xd7\xd3\x17\x0a\xfaVJ\xe7'\xff\
+\xd4\xb7\x02\x00\xcc\x8dus\xee \x04\xf4\xa2\x9a\x9d6\
+E\x89\x90%\xb3JAc\xf7\xd8\xb0\xac >\xabY\
+\xa7\x7f3\xcb\xc7\xed\x99\x1bP\xdf\xd9\x00j\xa7\xcb\xe7\
+v\xe0\xf4)\x0el\x9e?\xc6\x9bD\xfb\xa9K\xe5\x7f\
+\xf8\xcd\xf0\xeb\xe1\xd7\xab\xca\xfb\xce\xd3w\x9e\xb6\x13\xff\
+~\xccp\xcc\xce+\x1b\xf1\xebl\xa9\xd9\xfd`\xd8\x1c\
+\xef\xbes\x8ewo\x9e\x14\xfe?\xd9\xdc3ZgK\
+m>\xc5\xf7&o\xf3\xf1\xed\xc7\x1b\x0d+\x05\x0f\xc0\
+\xb6x\xc6\xfa\x07\x84\xb8\xff\x00V-\x90\xdf\xcaV\x90\
+l\xed+\x91\xef\xbc_\x80\xd8)\xd6\x98\x13\xb2\xed\xed\
+\x968\xbe*\xc6\xee\x03\xff\xc9?$ W\xbd\xf0\xc6\
+\x8b\x1d\x1d\xd6\x00W\xe6\xcf\xffW\xd8\xf4\xf7\x1f;,\
+\xe3\x11S\xab\xa0z\xf4C\x1c\xee_\x17\x11\xc1\x99R\
+?\x9d\x0a3s3\x19e;\x9f\x0dKm\x84`\xb2\
+^(l\x05\x1abX\xe2L\xf1\xber\x8a<^7\
+lm\xfd\x19\xae\x1f\xd6\xe4\x13*\xdf\x07\x875\xf1\xac\
+\xd6\x06S?$\x8a*\xfeZLO\x08\x9b\xde\xff\x7f\
+\xc2\x9a\xf1|\xa8\xf7\x19W\xd4~\xc4\xf4|[\xd8\x9a\
+_\x11\xd7\xae\xe9'\xa9\xf10\xdcj\xb8\xf5p\xeb5\
+_\xd9\x9c\x186\xbd\xfelaJ\x0f\x7f\x19\xb6\xc6%\
+\xe3\x1d\xc3V\x7fY\x80\x00\xe0;\xf3\x87*\xcca&\
+bvg\x8b\x08j\xf9xXX\xb3\xdf.\x19\xd6\x88\
+\x8fk\x91\xc3lt\xde\xd9?\xfc0\xffm\x1f\x03\x00\
+\x14\x04\x9d{\xfd\xd4\x1fL2\x05\xbd\xa4\xf4\x13\xd1\xac\
+V\x0b\xc0/\xd1W~\x01CQaI\x9c\x05X\x04\
+\xa8x\xbe>\x87\xfbb\x0c-\xbf\xa4E\xd4\xb9\x08\x08\
+\xe0g\xf3\xbc\xd5jTZ6\xce\x07\xa2\x8d\x982\xc4\
+3\x01j\xf9y+/\xc6\xf4\xbb\x5c\xd8\xf4z\xa3\xb0\
+\xe9u\x08k\x0a\x03\xce\x03\xe7\x8f\xfb\x0aXHf\x97\
+\xb8\xa1\x00\x05\x22\xc7)~\xa8\x05q/dz\xf3\xd6\
+\xb0i\xe3\xbdt\xe7e;/[)\x82\xe3\xd9\xc3f\
+J\xdbL\xcd\x1e\x9f>>m|\xda\xdc\xc3s\xad\x98\
+\xeb\xb9\xf3\xb8\xb05\xf0\xd8\x1c\x99\xe3\x08<\x88\x1e\xa9\
+O\x84\x86\x1a\xe4\x9ew\xa4C\xbc\xe7\x22R\xb0y\xc5\
+\xe6\x98\xcd1\xcd\xc2\x13(\xe7\x81R\xa2\x16\xa8\xdcY\
+\xe9\xad\xc0\xf2\xac\x19\xe8}5+\xe5\xd4\xf5\x89\xc2q\
+\xf0)\xc6T\x01\xbc\x00\xd6\x02\xb5\x108B\xea\x8cI\
+i\xaa\x84\xab\x9f.\xe0U\xef\xef\xc9Y\xf9R\x99=\
+%\xff\xfd\xe7Y\x0981\x13\x87\x8f%\x05\xde\xd8B\
+\x81\xbd\xeb\x81xy\xff\xac\x84V\xc56\xa9\xe0S:\
+>\xf7\xb0\xf5\xa2\x19\x05(<n\xb65\xe0J\xb1\x98\
+\xed\x9d\xc2\x9a\x85\xbe&\xacK\x80\xde\xabC\xab\xd0\xfe\
+W&\xa8*\x0bWY*bDt\x0a\x91\x15\xe0\xe8\
+M\xf3\x5c\xcc\xbb\xe7(\xf4\xc2y^(\xf1z\xc0\x05\
+\xb2\x0e&\x01i/\xa2'\xa0\xee\xe7\x98w\x22%\x1c\
+\xe4\xe6\xf7\xb2\xe7\xcf\xff\x7f/\xff?\xc7\x8f\xd4<x\
+\x0eC\xa2\xe79q8\x12\xa4\xf3l\x7f\xb9\x8d\x8d\xbe\
+\x93\xe3\x9dN\xca^\x9e<\xf0\x03\x0f\x9e\xff\x1e&\x8c\
+\xdec\x15O\xe2:y\xf0\x94\xc3\xf4\xb9\x13\x18\xab\xfb\
+\x99=nUQ\xbfEX\xc3\x88\xb9G\x06\xe0\xf7\xce\
+J\xa2\xcf\xe9y{\x9e\x1c9JwG\xcd.\xcd\x80\
+n\xfaCQJ\x8dcR\x11K\xe4\xb2\xe6\x92C\xac\
+\x05\xf6wN\xc0\xe22\x99h\xdf4\xaf?{&\xeb\
+\xf9J\xe0\xee\x98\x80!f\x80DV\x82o\xec\x95\x83\
+\xb0\xd3$\xa8\xde|=]>\xb7\x1eB\x89\x97\x9ev\
+\x9f\xd7A\x22\x01\xe3\xc8U|{\x91\xb9\x9eR\xed \
+\xb1O\x12\x98\x91\xd8\x15\x03\xc4s\xe9{\xb1\xbd\x8f\xd7\
+\xbe\xa7\xd6\xba\x97\xf8Q\xf9G\xa5VQR\xe1r\x80\
+\xabd\xba\xde\xbe\x07\xcdA(AWa\x14\x80\xaa`\
+\xf2G\x980*\xed\xee\x07\xbf\xe5\x00\xc5\xa4\x10\x80\x11\
+\xfd\xb3.z\xa0\xc0\xba\xec\xc7\xd7y\xce\xce\x9b~\x8a\
+\x86\x9e\xca\x14\x03\x03T\xd7\xef{\xde\x0eV~\xa3\x17\
+\x81\xb4O\xdc7\x15o-\x07\xeb\x14\x89\xf9z\x0a\xe1\
+\xffTN\x85H\xa0|\xbf\x96\x07\xefo]\x11\xeb2\
+\xd7\xdc\x181\x15k\xd7\xcb\xbfge\xb3\xa8\xe9z\x8b\
+%^\xce/\x00\x91u\xd8\x8f\xb1\xb5\x8e\x00z\xfdt\
+\x19\xeb\x1fp\xd2\xb7T8WQ\xd5\xf9\x1dTDs\
+\xe7\x93\x0aZ\xc0\x8d\x16\x06T\xf4\xec\xa5\xaf\xf5\xe1\xb9\
+\x0a@\x010\xa6\xd0Hh]\x97\xe9\x0d\xb4+Rd\
+ss\xfa\xb0\x95\x02\xad\xa0Q\x09\x82^_L(\x15\
+.-\x0c\xb4c\x00c\xae\x13\xc0\xa5\xa5\xc1\xf5Z?\
+\x0f\xdf\xf3\xb0\xf0\xa3\xdbCS\x8d<\xc2\xceO\xac\x94\
+}\xdaK\x95\xa0\x13\x97\x04h\x01Pn\x9a\x80\xc6\xcf\
+2NA\xf5\x170\xab\x80\x02\x94\xac\x7f\x8c\x0d@\x91\
+8F\xc2\x88Q\x88\x81\x94\x1a\x06\x05d\x88\x1f2`\
+\xae\x9e\xef\xbe\xe5\xec\xc75\xc5d\xdf\x8a?\x80\x1cs\
+\xd0\xfa\xb5\xbe\xac+~Ba\x03\x10\x9c\xe2`S\xf4\
+4S\xbe\xc7\xbf\x0d\x9b\xdc\xdd\x11aM\xc2\xf5\xf1d\
+4z\x1f\xeb2\xb5`\xf6\x8b\xef0\xa1\xec\x1f\x95\xe5\
+\xc3\xc2\xa6\xd7\x83\xc2\xa6\x7f\x7f\xc3\x12\xd0\x0fw\x0c\x9b\
+\xbe\x7fo\xd8\xf4\xfd\xa1\xc3\xa1\x9bSS\xeba\xfa~\
+\xf7va\xf38\xb7\x9b\xc58\xb7RC\x7f\xd0B\xd9\
+\xdf|g\xf3\xbdP\xe7\x1f?\x1f\xb6&X3S!\
+\xc4\x06\x1f\x1f\xb62R\xea\x9c\x02D\xff[\x8e\x87|\
+\xc0\xf6\xf0Y=^\xcb\xa2\xf3\x0b\x95\xf8i\xb3U\xef\
+\xf8p\xd3\xb0U=}\xfcb\xd8\x5c(Z\xc6s{\
+\x8e\x98,\x98K\xc9t)\xcd'\xe7\x0dq5\xeb\x22\
+\x01U\x1aN\x05\xb0\x01,\xecK\xcf\xfd\xeeK\x1c2\
+\xa5\xc1\x8b\xd6\xc0tZ\x053`\x1e\x028\xdd\xe7\xcd\
+\x01a\xd3u?'l\xfaxw\x09k\x0ah\xb9\xde\
+v\x1f\x15\xd6\x0c[IJ\xf3\xe6\xddaM\x82\x9f\x7f\
+os\xd0\xe6\xc0\xcd\x81\x0dp\x81\xd1\xe5\xdc\xcc}[\
+c\x1f\xaf\x1a\xb6&h\x91\x95D^R\xe7\x92\x8a\xf4\
+\x8bg+Q\xb7\xfd\xb4\xc0\xb4\x1cfk*qS-\
+\x0a\xc5@\xbb\xcb\xf2\xfc\x86\xa3\x16\xc0d\xf3\xcc\xcd3\
+6\xcf\x98\xbe\x7fS\xd8:\xc5b\xf3\xf5\xb0\xe9\xdf\x9f\
+\x196\xfd\xfb]\xc2VQ\xbe\xedG\xc2\x1a1a\x14\
+{S\xbd\x00\x1a\xd9;_\xfb \xa9\xf15\xde\x90\xc8\
+\x9e\xb8*\xf77\xcd\xb6b\xd8:\xefM\xbb0u \
+\x01\xde\x12\xdf6=\xe8\xdba\x8d\x96\x80\x96\x94\x5cW\
+%N\x9e\xf7\xb7D\xe33~\xc0\xc8(\xe6\x0bF\x10\
+\xe6C\xc6\xf9%\xd2\xaa\xa5\xd2\xd4\x08S\x09\xd2\xbf\x96\
+\x86\x8au O\xd5*@4O>\xf7\xf2\xb0U\xf4\
+\xb2\xfc\xa4\xf30EW\x01\xaa\xfb\x89\xc3\x03\xd2$\xfe\
+\xa6GhI!1\xf6\xaa\xb0\xf5\xf3\xf3'\x00\xc2\x1a\
+k\x98\xcc\xcb*\x8c\xc4\xd4\xbdg7\xd3\xa6\xe4k\x0a\
+\x82\x99W\x13}\xdc\xbbs\xd4\xcecw\x1e;\x1f\xb0\
+\x8b\xea\xeb\x99\x96\x0d\xbfA\xdd\xce\x03z\xbc\xdcx\xd9\
+1z0\xae\x1e6\xfd\xff\xd9\x961w\xdb\xd7\x875\
+\x89\xcf521\xa0\x12i\xe3K\xb4\xf5zg\xef\x88\
+\xc0{8g\xd8\xf4\xbe\x97\xceD/\x11\xfa\xaa\xe8\x09\
+ \xfb\x1eE\x0f\x5c\xc5F\xc0w\x8f\xa46\x0b\x88\x05\
+^\x10+\x14CH\x92\xc4^\x85\xa2W\xfb\xf7\xea\x86\
+zu\x90\x09T\xfb\x00\xfe\xe4\xe5\xfa\xb6\xdfM18\
+\x07\xf8\x07\x93\xca\xd2\xa9\xfd\xd6\xe7\x82\xc4\xa2bQy\
+\x85p\x03R>\xbe$\x94u\xbd*\x0b\x18\x11*\x93\
+\x12\x96^5\xdeAy\x8e\x9a\xd7\xbe\x04\xf4\x12\xae\xfe\
+\xab\x1fw'1\x85h\xbd(\xc7\x9aI8\x8c\xe5\xb8\
+\xdbB\xc5\xb4\xb0\xebyX\xa8(\xa2\xee\x9f@^\xcf\
+\x5c\x06\xc2U\xc9\xd4r\xa2\xe7\xd4u\x09\x9c ~\xd6\
+\x9f\xc0\xd6\xfd6\x06\xf0B\x95\x88,\x15\xbe\x1f\xef{\
+_\x04\x8eE\xb9\x94\x10%@\xb0\xe7Ry\x9d\xd7.\
+\xf5\xdd\x058\x11\x18Zo\x9fO\xa0\xe4\xa0\x04\xaeR\
+l\xc7\x81\xb5yQX3?Z\xaf\x0f\xe0\xc2\xf3P\
+\xf1G\x85M\xe4s\xf3\xd4L\x00\x04\x80\x0fI\xc7t\
+\x8b\xa4\x1ag\xc5\xc8\xbc\xddjE\xc8\xcaz\xadc\x95\
+f\x07\xbeu\x0ci46\xe7\x9d9\xf7:\xc7dM\
+k\x7fI\xd0vRTR\xaf\x11\x15W\x95>\x89\xdc\
+e\xf2\xbe\xdd,+\xe0*f\xb7K\x8a8F\x84\x8a\
+\xadu?v\xad2Z_P\xb1%\x9e\xd6\x85@\xbc\
+\xfb\xf9z?\xd4o\xd4\xb2d,Ub\xa0w\x0b\xb0\
+\xe0}<W\xeb\x1f\xd0\xe9\xe71\x97$Z\x12H\xfe\
+([\xac\x00\xafz\xb7J\x15V\x8b\x8c\xbf\xe79x\
+\x7f\x00\x05\xcd\x05\x15Y~\xc9~\xc6\x08p\xfd\x80\x1b\
+L\x1d\x0c\x0c\xfe\xc7\xe70\xfe\x07\x10g?a@\xf0\
+\x13\x9ek\xcfLB\xe9\xeb\xd5\xbb\xdd\x8f>!\xb5n\
+\xf9%\x00C_i\x14\xc0\xf3[\x12y\x94z\xa2\xb2\
+\xa8\xb7\x12:\x9f\x13\xa0\x84\x02\x99\x14\xd5\xa2\xe2\xbb\xdf\
+\xce3\x89>\x0a\x9dV\x0c\x89\x99\xfb\x86\xe2\x98\xeb\xaf\
+\xc6H9\xa8\xef\x9f\x15g=\xe7\xc4\xef\x9cW\x02!\
+\xf7Y\xc2u\xf4\xe6\x15\x9bW\xcc\xcfc\xa9\x5c\x5c\xb1\
+\x18\x06\x8b?\x91hG\x1a\xf3\x94\xdc/\x17j\x02\x1a\
+\xebAK\x05 \xb5\xab\x14\xed'.\xd8\x89\xb7V\x82\
+\xc0\xef{\xf5\xfe\xfc\x85\xfb\xees\x0a\x10\xa9?\x03\x00\
+\xf9/~U\x22h\xddX\xbf\x12j\x8c\x80\x1c_W\
+\x15|\x9f\xc3}q>\x88\x1b\xc4\x11\x12z\xe7KR\
+Fk\xbex\xf6NW\xc5\x1b\x90B|S\xefs\xf6\
+|\x96\xe8\xdb_\x875\xbd\x9b\xc4\xf7\x92I9k\xed\
+\x04\x00\xf4\xcfa\xd3r\x7f\xfadMO9\xbf\xb3\xf9\
+\xf7\xb0\xe9\xff\xaf\x16\xd6\xb4\x10\xd1N9\x22\xfd\xb7\xca\
+\xa3y\xe0)\xaeE\x9c\xb9\x12:\x89\xad\xf1S\x80\x91\
+\x8c\xc3\x0a\x80\xd4\xb2\x93@\x09\xe6\x92\xb8\x025\x9a\x88\
+UM\x13\x00$\xeet\xd3nj\xaeX\xd7R\x07 \
+p\xff\xfd\xbbu\xe7\xbc\xb7>\x1e\x96\xd312A\xa1\
+\x0d\xa4E*$\xff\xe69\xf3\x124\x8cAq\xc5/\
+\xba\xd6\xca_\xcd\xb2\xc4+0\x9a\xe7\x9fy\xda(\xde\
+\xc3\x03\xc2\x9a\xd7\x8b\xec\x5c$z\xfd7_N\xc6Q\
+\xec\xc3\xf0\x8b\xb7\x09\x9b>\xf6\x8b\xc3\xa6\xd7;O\x89\
+\xd8\x9d\xe7\x84\xec\xae\xe3]\xe7\x84{\xe9-\xffhi\
+\xef,\x01~N\xa92\xb6q|RX\x93\xa0%\xd0\
+\xbe\xbdnX3\xc5\xc7yJ\xcb\xc99\xe2~^\x22\
+\x99Z\x7f\x9f\xe7\xc6\xedR\x84\xd5}\xe7W\xfa\xfd\xf6\
+\xcd<\xc7\x88\xfdJ\xe0U$\x01\xa7\x007-3\x80\
+\xe0^s\x04\x93*\x81\x19\x22e\xdb7&\xc3\xe4\xa7\
+\xdb\x9f\xcc\x0c\x90\xf4\x07\xdb\xd3\x855\xfe\xd3\x18\xdd\x7f\
+\x0a\x9b\xee\xff\xd7\xc2\xa6\xcb\xfbQX2T\xce0\xbf\
+\xdfdMkY\xfa\xb5\xcd\xf7\xc3\xd6}\xbcy\xeeR\
+\xc8\xdc\xfenX3w\x9e\xf8\x9c\x04\x17c\x08 \xfe\
+\xa2\xd9\xea\xdf\x0bh\x02\x14kU\xcc\x96\x82\xcaK0\
+\xffL\xa3\xbaa\xd8\xfaw\xc77\x84M\x9f\xeb\x9ea\
+\xeb~\x19\xef\x1f\xb6\xc6\xc3\xc3s\x87\xe7\x0d\xcf\x9d\x81\
+\x8a+\x04P\x01\xb0(\x8d\x8a\xcc_j\x5c\x1f\xc6L\
+j\xa9\x14 !/\xc1 R\xf9\xd6\x12\x92\xbd\xf0Z\
+\xa3h\x0d\x00.\x86\xff\x0e\x9b^\xaf\x1d\xd6\x88L\xa7\
+vI1z\x9c\x8f\xcf\x0d[\x01\x8f\x8a\xdf\xb3\xb2]\
+\xa2\xf2\xe2Z\xf1\xb8u\x95\xc0ei#I\xc4u\xcf\
+$C\xaf\xe2U\xf1\xa1\xe9&\xa9\xcdP\xcc\xf0db\
+\x14CBB\xdf3\xab\xb5T\xfb\xbb\xbd\xf8\xad\xf8$\
+\xfd\x93V\xa3\x028\x1f\x12\xb6&\xfa\x0ap5\x8eT\
+k%\xa6Xj\xc0\x14\xa3\xc9t\x90\xcb\x865\x05\xee\
+lu*\x15\xffl\x19\xa8\xc2o\x7f\x9d\xf69\xe6*\
+F\xb0V\xee\x5c\x1f\xdeg/D~\xf8\x9d\xb0\xb5\x82\
+\xe7\x03mw\x16\x0a\x82\xb9\x91E]I\xd5Ab+\
+\xe5p\xbf\x9f\x95\xd3\xdf\xd9\xce\xc8\xde\xe6Ya+\xf5\
+\x0dR3\x1d\x9b3\xf2=\xbc|x\xd9\xf0\xb2T\xff\
+<|\x15-\xa8@U\xa0.0\xeb\xe7\xb0\xa3\xec\x13\
+S\x120\xa2\xd0\xa1\x96$\xa5Y\xe2U\xc8\x92D\xfb\
+\xb4\xe6\xb9\xff\xa2\x1b\xb7vZ\x00@\xdf\x12\xd0\x8f\x09\
+\xf4s\xc4',P\x08\x92\xcf'\x11\xd6\xc3\xe1\xe0p\
+\xd0\x19\xaf\xe5\x00\x95(\xa8H\xa3\x9eX\xb0\x12Q\xa2\
+W\xbf\xcc\xca4\xca\xa4\x04\xa2\x1b\xc3U\x07\x0cH\xaa\
+\x1fs\x07\xe1\xec(\xb4\xe5p|\xfe\x04 \xa6\xe3p\
+\xa1$\xde9+(\x9e\x93\x1e\x16\xd3\x01\x92\xc2\xb6\xe7\
+\xaaIY\x11\xf0\xb9\xff*c\xa9)P\xbd\xe7\x0e:\
+\x89\xbe\x96\x08b3\x10_\x81\xa5\x04\xed\xbc\xf9s\xd4\
+\xdb\xef\x94H3\xca\xa2\x03\xd1\xf3\xd6\xe3\x8f\x92N\xd4\
+\xea\xba5\xb7~\xb9\x8f\x9e;D\xb1\x1f\xa7H\xc5?\
+\xa9=z\x01+\xb0\xe5\xa8$,\x12\xff\x9c\xdb\xbe9\
+0\x990\xe6(\x1b\xa3\xe9\xf9A\x06\xf7\xa4\x98\x9b@\
+\xd0\xfb\xbd8E\xa3\xec\xaf\x95Jk\xec\xe1\xbeS\x0d\
+21D\xd5\xd4\xe3\xb7\xf9\xd3\x14\x05}\xce\xe2\xf8\xa7\
+ n\xfe9\x22\x98\xd3{/T\xb4\x03\xc3\xa6\xd7\xb3\
+\x84\xcd\xebb\x09<\x0eN*\xf3\x95S\x8d\x5c%>\
+{\xb3*\xb1W\xd1\xea\x017\xcf\x11\x03De\x95\x03\
+\xec\xb5#\xec\x1b\x81\xbd\x1e7T)\xf7\x01\x05_\xe2\
+\xe3\xef\xa0\xec\x03J\xf2\x00\xab\x80\x1e5\xbe\x17O\xeb\
+\xc7\xc3\xa9h\x08\x98%\x16\x8f_\xc4V\xf9\xcf\x0a,\
+$\xd2\x02\x14\x9fW\x02*\xb0\xeb\xc7Z\x0a\xd0P\xc0\
+0C\xf8W\x95#\x00\x8f\xfb\xa5\xf7\xfdA\x8b\xaat\
+\x1d\xd0\x00\x15~\xce\xdf\xf1|\x00U\xfcB^\x7fQ\
+|\xado\x80\x84u\x85!\xe5zz\xe6\x87\xbf+\xd0\
+\xf4\xfeD\xed\xbc?\xe0\x886\x82\xf9\xe2\xfe\x9e\xcf\xa9\
+\xa7\xdc\xff;\xd8\x1d\xa0Z\x8a\xf8\x1b\x09\x1e?a|\
+Z\xac\xb2\xcb\xad\xcf\xc5\xf3\xabs\xc3\xe7\xf1\xbe\xe9W\
+k\xbfRs7g\x1b\xd5\xffyI\xfd\xcfqm\xd5\
+2g\x1d\x09\xe8\x9c_q\x17/9'6\x935\xcf\
+\xdd:\x05\xec\xe89\x04\x0ca\xa4\x98\x06\xa0\x12\xed\x5c\
+u\xdd\xf6A\x06n\xa5\xb9\x82\x89 \xa0\x22ZG\x9c\
+V\x80\x86b\xaf\xe2\x95\x95\xca\xd2(\x11p\xdbO\xc4\
+5s\x5cX\x05\x8e\x02\x1a\x8c2\xfe\x1fP\x00\x10R\
+\xa1\x07\xe4\xbc\x7f\x19\x07\x8b\x89\xb4yW\xd8t\x9c=\
+0\xacQ\xf9\x06\xcc&@\xb39]\xd8Jm\xaeu\
+j\x1d$\xa3\xa4\xc6Ie\xa5uxCX\x8e9\x9b\
+\xce\xcb\xe1\xada+\xe0W\x81X\x9e\xef\xc3?\x845\
+\x22YZ\xf6\x8c\x0d\x95\xa0\x00V0\xad\xec\x03q\x80\
+\xe7\x0a\xc0\xce\x1e\xf0\xd2HR\x18\xd0B\x92\xc0A1\
+\x02\x00\x83/\x0fk\x00\xf5\xf4g\xe3W\xc3\xd61\x8c\
+\xa5.\xbd\x8e\x09\xdeW\xf5\xbf\x07\xa2\x9c\x8b\xf6\x01@\
+*\xc5\xed\xaa\x82\xa5\xe0!\x0eJ\xa0k\xdc\x99n\xe7\
+N\xd32\xd83/\xb5\xd6\x89O\xc4/\xe1=/\xb4\
+\x16\xaev\x0e\xdfy\xc0\xdc{N|\xf2\x82a\xd3\xeb\
+U\xc3\xa6\xd7+\x84M\xaf\x0a]/Y\x0a\x1b%\xf6\
+\x98\xd3;\xe6\x84d\xba\xbe\xf1\xbe\x8b\xd8\xe0\xf8\x95\xb0\
+\xe9\xf5\x03\xcbt\xad\xe9^.~\xe1\x0a9G>\x19\
+\x00\x02\xf2\x12\xd1\x93\x90\xa6\x86\x05\xe0\x85\xa6\x91\xfd!\
+\xde.\x8d\x0aLJ\xd3\x1dTV\xaf\x1f\xb62\x13v\
+\xdf\x16\xb6V@R\x94/_\x00\x00 \x00IDA\
+T\x8bb\xadP\xc7\x8f\x03\x14\xec\xf7|N5\x86:\
+\x0bd\xdb\xbf\x0e\x9b\xfd\xcf\xb7f\xffc\xca\x05\xbf\xf0\
+\xf4\x9c*\x91\x15\xf5=\xc7\xcc\x16c;\x8f\x88\xb1\x9d\
+D2\xc7\xab\x85\xad\xda\x135u'{\x9a\xf5\x9co\
+\x1f\x15\x96-\x96\x07\xacS?6_\xcb\x84\x98F\x8c\
+\xb8G|\xe9\xdc\x00\x98\xa76\x0d\xc0\xb7\x12+\xc0P\
+2e\xb67\x08k*\xcb\xfc\x08Q6\x00&\xc0\xcd\
+\xf9\xa2\xc2.Qu>i\x91>2l\xfa\xdcw\x0a\
+\x9b\xd6\xd7\x9f\x86\xadq\xcd\xf8\xe0\xb09.\x8eA\x8b\
+{\x86\xbf\x1a\x9e4\xfc\xd5\xca\x8c\x1b\xde\x1b6\xfd\xdc\
+\xa1aM\xc12\x13\xd2\xe1\xb9a\xd3\xff??l\xff\
+V\xed\x02\x16\xf39o\xff<leD\x02\x00JS\
+ \xef\x0f\xe0\xad\xfcp\xfa\xe5JxM]\xc1\x04M\
+\xad\x1f\x1a\x1d\x18@\xb5\xfeL\x8dI\xed9b\xe5\xe5\
+\xa7s\x8aU1\xb5\x14h\x14p\xe4'\xd6\xadx!\
+\xfd\x881y\x15\x07f\xc1\xa5\x80/\xe7\xb2\xf5\xaeU\
+\x1c0\xc1_\xf1_\xc42\x15D\xe4[\x0aj9=\
+\xaf\xa6\xaaX/\xfe.`(\x81\xea\xed\x13S\x8b\xea\
+3\xc9\x08\xc8\xf8\xb8\xc6\xda\xca[_\x1b\xd6\xecS\x9a\
+\x05\xce\xe5n\x8aH\xb5\xda*0a\xb0\x12+\xc4\xa8\
+\xbf\xe6R\xb0\xdc;\xcc6-\x9c'\x84\xad\x09\xcfx\
+\xa3\xf1\x86\xe3\xe4`\xc6K\x875\xbd.q\x19\x0f\xc9\
+@\xe5cMo_RS\xcc\x81\x9e\xe7\x1c\xbf\xaa\xe9\
+!\x0f\xc4\xf4\xd6\x0d\x12\xbe\x19\xa6\xaf\x19 \x98\x1d~\
+9~\x01h?\xbf\xd9W:\xf6Jd\x1d(\x02C\
+\x07\x01\x8aR\x1eL\xd5\xfb\x94\x1b\xb4\xfe\xdf\xef\xab\xd0\
+\xf5=\xe3\x00\x81\xfe\xfb^<P\xe2\xd9\xcfK\xb7\xc0\
+\x88\xa6\xa84d/F\xf5\xa4\x10\x0d1\xf6\xc2\x83\x15\
+\xe8[\xd8\xa9\x22M\x9d[\xcfvU\xa6\x05\x00\x12\xf5\
+\x9e:\xac\xe2\x0ea\xca\x83\xb4\x10^\x9f\x8fc\xeb\x13\
+~\xdf\xfb\x12\x80\xd8\x90\x124_6(D\x19c\x84\
+\x83\xd6\x02\xf1\xa5\xfc\xbc\x16\xfe\xe9\x16*\xd8t\xa8,\
+\x15F\xf7\xbb\xef9\xee+\xb1\x02\x91.\x11)$[\
+\xe5M\x80,\xd0=G:\xa0\x0f\xe5\x86\xf1\x1c/R\
+\xe3\xbd\x96J\xd3U\xb3\x22\xf3\x84\x9c\x8a\xf1\xd1\xb0\x86\
+i\xd1\x03!\x02!\xa2C\x1c\xccO\x93\x8aI\x85V\
+%\xef\x0a\x190<?U\xba\x7f?\xa9\xa5*\xddY\
+\x89\x0a\x82XP\xc4J\xbb\xe3\xe4\xcd\x8f6?\x9a7\
+\xf6\x12\x00K\x84Uc\xf4\xdc\xbao\x12 \xf3\xa5\xa9\
+\xfe\xa6\xfaj\xb5\x14\xd8\x17\xe9\x98\x87K\x0e\x97\x18\xa6\
+u2\x5c'l\x16\x07\x9d\xacq4\x00-\xf3sS\
+Tg\xbcd\xd8\xf4\xfa?\xe3\xf7\xc6\xef\xcd\xf7i\xb9\
+\x0f\x02\x1c\xeb\x0b\xd0A}^\x8f:\xa0\x02\xd0#0\
+\xb5\x8eT\x00\xed\x17\x81\xecU\xc2\x9a\xe7\xec\xb9J\xf4\
+!\xd4\x10k\xff\xaf\xe7\x1bB\x8di\x040\x03\x04\xb8\
+n\x94@\xfb\xcf\xfa\xc3\x80Q\x81\xe6\x8f\xf4\xae\x01\x02\
+U2U\x96\xb3\x82P\x07\x9b\xc4\x15SB\xa5\x1b\xe3\
+A+\x82\xff\xf7<\x88\xa2Y\x0f\xee\x8f\xca\xb6\xbf\xeb\
+\xc0\xf2y\xfc<`\x01\xc3\x80\x7f\xe5\xefz\x7f\xe8`\
+\xe4/\x01\x8f9>\xa9*\xac(\xe3\xee\xa7\x04\x0e\xc5\
+\xde\xfet\x1f\xf9\x05\x15x\x95\xe6\xbe7\x1d\x00\x82\x89\
+\xc0\xef\xb9>?\xdf\x8d\x99\xac\x0a$\xe6\x12 Jo\
+= R\xe5GK\xd6?\xcf\xa9y\xf8\xbf\x85\x01\xa1\
+r\xec\xb9\xa7\xaas1$$\xc8Yy,\xbf\xe1~\
+\x02\x1e^\xbb\x9c\x9bS\xb0\xb2\xf8U\x019\x8a!\xb5\
+o\x95\x1f\xeb\xdcu\xa3v\xf2\x8b\x12}\x15D\x81\x82\
+\xf36+rUQR\x91s\x1f\xed\x03*\xc3D\xd5\
+\x04\x82\xce;\x89*\x7f\xc3\xdf\xd9\xb7\xfd\xd8P\xcf\x81\
+\xdf\x06\x84\xa7\xd8\x11\x15v\x14S\x09\x5c\x01\xb9\x02\x22\
+q\x08\x00\xa4g\x9c\xe8\xf1\x04\x10e\xc1@\xa2W\x89\
+\xbf\xf7\xd7\xda\x94\xbd\xf4z\xc0\x01_D\x946\xbf\xcc\
+\xb9\xef\x00\xa7o\x85M?\xff\x9fa\xd3\xeb\xb9\xc2\xa6\
+\xd7K,~\xb3(\xcb\xaf\x0fk\x00 \xe2\x984`\
+T\xea\xee\x9d\x81\xdc\xe5\x13\x18\xc8\xeb/\x0a\xefO\x13\
+\x88K\xc0\xa04R\x00\x9a\x19\x7f\x14\xc3,\xe7\xa7\x97\
+\x16A\xae\xcb\x12\x1b\xb4o=\x97~?\x8aKr_\
+R{'\x06V\xe7k\xcf\x08\xe8\x13r\xfe\x98_y\
+\xd4\x02lO\xbes\xa1hK@20\xa6Z\xbe\xdd\
+\x0dk\x12F\xfei\xa81\xbd{\xf6\x19\x17m\xdf\xc7\
+\xd5\x9f\xab\x99j\xa5\xf7:\xe3^S:\xea\xdc\xcbs\
+g|b\xd8\xf4s\xaf\x0e\x9b+\x84o\x8a\x0a\xe1x\
+\xfd\xc9&\x7f;>||\xc4\xf8\x885\xe1\xda}~\
+X3/]\xfcG\x84\xf7\xe8\x04\x12\xc5_*\x93\xa9\
+^\xbfy_\xd8\xdc\xfb\xbb\xb3\x0d\xa0\xe3\xbea\x0d\xf0\
+\x83\x82\xad\xc5\x12 \xa7\xb7\xdc\xdc\xfbL@\xc7s\x87\
+M\xaf\xbba\xd3\xeb\x0d\xc2\x1a\xcd\x01\x09\xa0\x8a&?\
+\x84yj_\xa6\x1f5\xf5KA\xa5(\xde\xa9\x9dQ\
+\x94\xe5\x10\xfd;x\xbd\x9e\xf15\xe3\xab\xc7\xb8\x7f\xc7\
+\xe6\x18M\xa2e{g\xb5\xa95A\x89\xb4\xe6\xbb+\
+3k|@X\xd3\xfb\x7f\xb5\xed\xd5\xe7i\x0fZ\xa5\
+~\x9c\xad0\xc6\x8cJ\xec2\xef\xa8\x0a?\xe0<\x81\
+\x82j9\x024\x19'y\xbb\xb0\xe6<\xb2\xber\xcc\
+_\xb5\xc8\xf0\xe74\xcc\xa8\xcd'\x10S\x95kj\xf8\
+9^\xb3\x0am\xe9\xe7=\x0f\x85\xa4\xe1)a\x0d@\
+\xf2\xf7a3\x03h\xb2U\xb4\x10p\x1d\xad(C\x88\
+\x9c\xbe=l=\x07\x87/\x875\x94r=\xe8\xfc\xb7\
+B#\xa6\xdf\x15\xc2\xd6\xd6\xec\xf1,aMkS\xee\
+\xff\xe1\x88\xb0\xe9\xfb\xf7\xceV@\xaa\xf5\x04\x18\x94\x90\
+\x0eO\x0b\x9b\x01\xb2\xc9\xd6\x04\x9a_\xad\x16H~\x03\
+`\xac\xe0\xa2\xb0\x80*/\x9f\xc0<\x14gS\xc5O\
+\xbfV\xf1\x16\x06\x11&\x1e\xa6\x02\xc06[\xbb*\x0e\
+\x008\xf2W\xf2\x1a\x09\xb6\xb8\xd1u\x8aO\x00\xe7Z\
+\xc60\xa7\xb4,\x10\xf13\x0d\xe6\x0e\xa9\xbd!\xffI\
+\xffY\xef\x07\xd0\xcax\x05#\xa6\xf2\xd3>\xafsn\
+\xf2\xd3\x18\x82/\x9fN\xcd\x97\xcfq\xdb\xa9s\xdc\xb6\
+\xe6ms\x5c\xb6wxa\xd8\x8aD\xee\xde+l\xba\
+\x9f\xf7\x1e\xef5\xdek\x1d\xa3R\xd4\x8fwNv\xdc\
+JM\x18\xee\x1d\xd6\x04\xfcIa\x98\xe7\x86\x7f\xa7\x19\
+\xe3\xf4/\x93}$\xc7b\x5c\xa0Id\x8c\x13s \
+\xf4\xd4B\x95\xa6\xbc\xf1\xae\xa3\x1c\xab\x00T\xa0rj\
+\x06\xa8\xbe\x88\x0e\xb6\xe3\xea~\xd4\x04\x22=\xc5\xf4\xb4\
+Tm]\x97\x1e:\xf7\xc3\xb86\xd7)\xa0\x13x\x09\
+\x80\xa9d\xaa\xf8\xde1\xac\xf9;\x91&\x0e\xb9p\xce\
+\xd5Tx\xbcz?\x01\xbf\x0d\x81\x8a\xa7\x12#\x01\x15\
+\xe8\x0b\xf0z\xf1D\x8e\x8dcO\x84\xb7z\x06i-\
+\xe8\xc9GQ\xed\xc7\x8a@8{Q\xae^]\xba_\
+\xb8\xfd<a\x1b\x1dbGLK '\x91\x96\xf0\xa3\
+\xded/P!\xa1*\xa5\x1d`P\x9a\x12\x127?\
+\xc7!\xa7\x08^]\xbf\xdeH\x1a\x04Tu?\xb2\xf4\
+\xceT\x00\x97\xcf\xa3\x1c\xcc\xfb\x96D\xb9\xd6'\xca\x18\
+1\xbb\xb3$P\xe5\xbe\x00\xae$\xb4\x1c\xf47\xb2\xb2\
+\xe7\xfeHP\xf4\xf2dkB\xb5\xce\xa8lA\x0co\
+\x93=\x94\xd6\xf5\xfbSu\xf8!\x8bh\xc9\xe6|9\
+\xbf\x9a\xd8M&\xe2\xe3\x83\xc2V\x8d\x0f\x95\xe2\xe11\
+\xc3\xa3\x87\xe9\xf3\x0dO\x0a\x9b^\x7f\x146\xbd\xde(\
+\xac\x19k\x93\xe25\xd6\x11\xc4\xb7\xc4\x82\xf2\xbe\x8co\
+[\x90\xe1Jx<w\xebVO\xae\xc4\x17\x92\xef\xf9\
+\xf4\xa2s~\x0e\xd5\x99F\x87\xc4\xd8z\xe7\x07\xecs\
+\xe2^*\x1b\x9e\xa3\xc0W/\xa3\xc4\xde\x01\xe4\xfd\xec\
+\xcf^S\xc1\xfcfs\xb8%\x96\xc6\xf4A\xb8M)\
+\xc9}\x1b<\xa8Y<\xcd~\x16H\xe8\x19\xa6\x11!\
+\x11\xc5\x94P\x91PQ\xd5\xc2\xc0\xffb(P\xc9\x85\
+\xa4\xab\x5cc\xc8\xe4z\x83\xd0\xd7\x01[\x91\xc4i\x8c\
+\x99\x04p:\xe8T\x18U\x0c\x04T\xb4\x05P\xcb\xf9\
+\x13\xc8\xbcDJ\x8b\x0ff\x97\x83\x98?\xf0\xf3\xfcI\
+\xdf\xab\x8fJ\xce\xbf\xeb\xb1\xf7\xfc\x9c\x17*\xe8}b\
+\xea\xfa\xff5,\xe7U\xc7\xdf\x7f\xccl\xeb\xbar]\
+ZG\xb2\x97\xba\x02L\x7fG+\x82y\xea\xb4Q\xcc\
+\xdfN\xe0\xbc\x80\xddC\x17\xf1\xd4\xd2\xaaI\xbf]b\
+TD\x08\x01H\x9e7\xffF\x9b\x80\x98\xa7\xeb\x94`\
+\x9aon|\x93\xfdf\xea\x80\xdet@\x00\x0acV\
+rj\xbf\x18k\x88\xd1\x82\x92\xae\xe7\xdf\xfe\x14\x90\xd8\
+\xdf\x9e\xb3\xf3\xdf\xdf5\x0e\xebG\x09hZ\xaf\x02i\
+=\xa2\xc9|)\x11b=\xee\x80!\xcc\x18*\xf9Z\
+\x04\xed+\x01\x1f\xc0Zos\x8eACe-&A\
+\xaes\x0c\x9a\xcd\xc1\xd3z88\x81\x9aH\x80^\x96\
+\x15s\xe3\x1c\x7f\x126\xbd~7lZV\xcf\x08[\
+E\xc1T\x8e\x8aI`Ntj\xf4\x10\xe7\xda<h\
+\xf3\xc0\xcd\x03\x9bD\x19s\xe9\xf8e\xce\xbc\xfd0\xed\
+\xdeEl\x90\xc6\x0f\x807\x19T\x80\xf7\xed\x9f\x85\xad\
+\x09\x7f\xcd\x97\xf6\x9c\x00&\x09\x1c\x16@\xfc\xd7\xd9j\
+\x86\xa1\x94\x89\xeb\x9c\x10\xbf\xa9I\xc8\xec/\xfe\x19\xf0\
+\xd3MG\xaa\x82\x83\xf7\xbd[\xc6YG\xa7\x86\x86\x1e\
+\xd8\x5c_\xe3\x1f\x85\xad\x22l\xaek\xf7\xcf\xc3\xb2\xa0\
+\xf3\xf9\xa4\xf2~5\xe3\x96\xdd\xe6\xbc\x08X\xec~+\
+p \xc1\xda=W\xd8\xf4\xef\xff\x156=\xa7\xfb\x0d\
+\xf7\x1f\xa6\xc0{\xfb\xfc\xed\xf3\xb6\xcf\x9b\xc2\x8e;\x85\
+\xcd\x89\xf8a\xdb\xc3\xe6\x02\xd9\xffD\x81L\xbc\xb4{\
+\xcd\xb0\xe9\xf5\x80\xdd\xbd\xbb\x93\xdf\x1c\x9f\x1c\xd6\x8c\xf3\
+\xc3\xc4t\x1f\x8eX\x00\xc2\xf2\xaf\x00\x87\x14\xd1+M\
+\x07\xea\xf2O\xc8\x8a\xadB\x11\xe6\x8c\x846\x81y\x15\
+TS(0\x000+k^\xba\xc4\xeb\xaca\xab\xa8\
+f\xcd5\xcf\x04\xb3\x00\xc7\xd3*\xac\xf0\x9b\x12\xe7\xec\
+\xb9\xe7\xf7\xb4H\x98\xc2\xa0wy\xbc\xf9\xf2\x1c\x8d\xb9\
+\x03\xc4l\xcf\x14\x96-\xc6\xd7X{\xd9\xe7D4T\
+\xea\x8f\x1b\xdf=\x06c\xe7\x1c\xe39\xc7\x98\xb2\xf1\x94\
+\xe5>\xd7\xb9\x9c\x80M\xf5t\x03\x84\xf9%\x15Q\xe3\
+O;\xf1\xba\xed\xb1a\x0d\x80\xa6E\x98&\x82\xc4?\
+\x01\xd6\xf1;a\xcdy\x8c\x01\x80\x81\x90L\x9b\xaa\x18\
+\xa7\xc8b\x89\x8c\xa2\xb4\xbf,l\xbd\xbeb$e\x81\
+\xd2\xb4\x80\x8a\xe3\xc5+\x1f\x0e[\xfd\xa38\x0c\xd0^\
+S\xd8~?l\x9d\x1b?>'l\xd58\xa8|E\
+\xc1#[\x88im\x14\xa0\xef<5\x9d\x84\x1f3\x96\
+R~\xe4\xbc\x03XE\xde\xf7/\xeb\xf3\xaeq\x86w\
+\x0ek\xb4G\x14t\xe5[Z\x96\xf2\xbc\xdd>'\xac\
+y\xde\xfe\x8e\xca\xb88\x1ec\x8f\xb8\xb31\xbeD\x1a\
+\xff,\x81\xf3\xf4s%\xda\x07\xb86\xe5B\xa1\x03\xd0\
+\xacp \x0e\x15g\x88\x87ho\xe5\xfb\x016\xc6\x97\
+\x8c/\x1d_\xd2\xfc\x9c\xf3\xd4\x94\xbd\x9c\xa2a\x0aF\
+\xe5wg\xad|a\xd9o~_\x1e$\xaeY\xf38\
+\xa2\xd0\xfb20wf\xb5\x90\x15\x18\xd5\x8a\x9f\x0c\x82\
+\xbd\xb3\xca\xe6\xb4\xb0v\xef\x186]\xf0\xa5\x96J\xdd\
+\xee\x97\xc2\xd6\xb9\xb65\x87=\x13\xa2\xe1\xcaas\xcf\
+\xfed\xcd\xc2\x8f0\xe8\xb5\x0d\xa2\x9e\x15\x1b\xe3=6\
+\xef\xc8\xde\xe1T\xe1\xae\x0f\xea \xee\xc5\xa2\xf4\x14I\
+\xfc\x05r\x9d\x98[\x89\xc8\xa1\x08\x1e\xb2\x04\xf0\x85\xa0\
+\x1a\x13q\x969\x05[\xa9\x9b\x02\x05\x0f\xb4G\x8e{\
+uj\x1b\x05\xf5\x8aH\xdb*:\xb3$l\x80\x09\xc0\
+\x80J\x09\xa43\x1dz\xa9\xe8G\x9a\xb6\x9b\x81\xd0\xab\
+~\x8b\xf8\x9eD\x11\x00\x81\x91aa\x08\x04O?\xeb\
+\xc4/\xcf\xe9\xaak\xe2Z_\x90\xb5~\xcc\x9a@:\
+?\xaf\x80\xb4\x02t\xad\x05}\x0f.\x00\xe1\xcba\x8d\
+\x0a\xb3@\xdas=q\xdf^\xb3\xfa\xfb\x10Z\x95\xac\
+\x83\xc2\xe6\x0a\xe4\xe2pzUZ\xef#\xe1\xb3A\xdd\
+\xef\xbe\x97\xb4\xa3\xfc\xd6A\xe6>\x10\xb7#\xe2\xa5\x92\
+K-\xf5ua\xd3\xc791l\xae\xccO6\x07`\
+\xf3\x94\x8ci\xf7,b)GfO)G\xe5zU\
+\xc0\xdc7\xeb\xddu\xfb\xde:\xcc\x9e\xcf\x99\xd0{\xc9\
+F\x5c\x0dS\xe6Ua\xeb\xc1\xed\xc0\x1dN\x1e~8\
+L\x7fg8zx\xf9\xf0\xf2\xb9\x129\x07\xe2\x02\x84\
+)\xd0Z\xc4j\xce\x96\x07\xffCs\xcc\xdd\x81\xd9\x83\
+|\xe7E\x04R\xe0Z\x0c\x99|%\x1a2\x5c%l\
+z\x1d\x92\xc1\x83B\xf9\xb0\xb0\x15\x08\xe0x\xa9\xd5\xa2\
+\x8a\x0e\x8f\x0f[\x0f\x9a\xa2\xe0Q\x9dVi\x85\xf0B\
+Z\xfbJa'\xf6T\xd4\xe2\x1eHp_%\xea\x0e\
+\x0e\x80\x93\xfd\xe3\xfd\x04\x0e\x12[\xd4\xc1d\x5c\x94\x18\
+\x99\xe7i]\xd1\x1c\xa0j-\xc0\x95\xf8\xea\xad\xb6\xee\
+Q\xecS%\xbc\x12\x1b\x89\xa5\x84NO\xa4\xc0\x01R\
+\xec N\xbfZ\xa2\x8d\xa8\x8c\xc4!\xdd\x07\x89\x9f\xfb\
+)\xc1M\xeaZ]\xa7\x84B%\x95\xbf\x93 [\xd7\
+D4\xb3\x22T@\x17\xff\xed\xe7\xfc\xbbW\x95%\xaa\
+\xb5Ztr\x5c[\x1dx\x80\x0c\x07\x22\x7f\xc2\x1f\x08\
+\x5cT\xa6\xf9?\x15JTL\x94T\xf7\x1be<\x03\
+*\xbdw\x02\xd1\xf2/\x00h\xeb\xe9!\x0b\xf3m\x16\
+q=\xa5i]\xa0\xada\x1d\xa0\xb2\xdb\xd7\xc9\xec\xaa\
+\x96\x01\xaa\xef\xd6\x19\xe0'\x03\xa5\xd2\x82 \x22$\xb0\
+q\xfdI\x8d\x97\xc8\xd5\xfd\x00<\xf0c\x9e\xa7\x96\x0b\
+\x95\x01~\x96\xd8b\x8aXU\x05\x98\xdf{Ej\x0f\
+\x084T\x06\xad{\xe7\x85\x7f\xe7g\x04\xaa\xe2\x01\xc0\
+\x8c\xc0\xc3\xbe\xc2\xd8\xc9@\x0f\x03\xb0T\xc2U8\x89\
+uju\x22&\x8a\xc9\x06\x98\xa0\xe1\xa3\x97]\xcb\x8b\
+1\x9b\xf6\x87\xf1\x9b\xc4\xfc<'\xeb\x99\xff\xce\xfdR\
+\xcf\x0d\xe0\x9c\x89\xd4\x14\xf6\xdf6\x02\x7f\xe3\x197_\
+\x09k\xd4\xd0%t\x80\xb5|\x1e\x15\x0f\x9d\x90\x09<\
+\xd5l\x01/\x15\xf0\xa4*W\xfc\x92\xf7\xb5T\xfd\x05\
+\xb6\xfc\xc0\xcd\xf2\xb9\xeb-\x15?\x00.\x04\xba\xc6y\
+\xa1\xea&0R-\x86Z\x1cn\x98\x22\x8a\xd9\x024\
+y\xe5e\x7f\x12W$\xcawlX\xd3{K#\x04\
+\xe0\xd9\x9fw\xd6\x03\x7f\xfe\xbb\xe9\x8f?\xbd\x003\xf6\
+# k|m\xd8\x9a\x90\xee\xdc6l\xa6\xd8O\xb6\
+\x8a\xe5m/\x1c6\x07\xb6\xdf\xddgZ\x14?O\xe4\
+-\x01\x8f\x1a\x7fk_\xa5\x96\x8d\x0a{\xf52\xe7\xb8\
+\xb0\x12\xed{u\xd8Zi\xdc}\xd8\xee\x91\xbbA\xe9\
+\xfeP\xd8\xf4\xfa\xac\xb0\xb5e\xa4\xa8\xc3\x99\x98U\xbc\
+\x0a\x10\xcbx\xc3\xdf/\xea\xbf\x8af\xc6\x87\xdb\x0b\x86\
+\xad\xc0]\xb5\xf4\x18;{\x8d\xb05^'\xaaZ\xfb\
+\xc8\xbat\xae\xf0k\xfc1?\xe2\x15\x00\xe0>v\x00\
+\xc0\xf6\xa4\xb0\x06@\xcc\x04W\x22\xbd\x9d\xbf\xd6\xc4n\
+\xfcZXj\x1b=%\x19\x14\xd7\x9f\x81\xf6\xc5\x0f<\
+i\xb9_\xbb7\xdc\xbd\xd1\xee\x0d\xe7\xf3\xf0\xc3\xb3\xa8\
+\xe0\xf3\xb6\xcf\xdf>\x7fN\x8c\xffl\x9c\xfc\xdd\xf8\xaf\
+\xcb8\xcf\xf1La\xeb\xd4\x8a\xed_\x865\x1a\x11\x8f\
+\x08[\xefC\x9d\xdb\x00d\xf9L\xfa\x05\xe3m\x01C\
+\xd5b\x04\xa0\xccB@\x01\x9eZD\x1f\x17\xd6\xc4i\
+Z\x9f\xf8ITm\x9a3\xaf\x5c4 \xaa\x15K\x5c\
+`\xeaH\xe6/\xf1i\xe3\xf3\x020\x00\x1b1\x8c=\
+\xc6\xb1WA\xc0\xb89@)\xaa\xb9u\xef\x5c\xe2\xd7\
+%\xa8\xa9\xc1VSc0\xab%\xe6\xe9G\x8a\x11\x9e\
+Z\x15\xf63\x00\x988m\xb5\xbe\xf9{\xfe\xbe\xc2n\
+\xc6{\xb4q\x86\xdf\x0b[5\x04\x0a\xb0\xa2\x0d\x97\xcc\
+\xbb\xd2h{hX\x93(c\xf6&c\xbaZL1\
+0\x00\xa5\xfc\xa8\x02\xec\x1d\xb3\xd5\xcb\xf9\x89)\xfa7\
+a\xcd\xbetN\x89\x17\xe5\x11\x0aq\xce\xbf>\x1e\x15\
+\xb7\xfa\xfcY\x817\xae]\x1cY\x1a.\xf6\xb3\xb8\x05\
+\x80\xef\xfd\xc4\xa7\x9d\xe6]\xe5Q\xfe\xce\x99r\x9f*\
+\xf8)\x04\xa7\x08b\xec\xa2\xd8G\xf5\xef\xc9\xfc\xd8\xbb\
+{\xe7\xdd;\xed\xc6\x82;p<\xc389\xe6\xf1}\
+a\x8d\xda\xe1\x95'\x9b\x02\xe8\xe1\xc9a+RZ\x09\
+}\x8e\xed j2W\xd0\x1e\x93\x1b\xe4W\x8dh\xc1\
+-r#\xa5\xe3\x8f!\x1e1\xc6\xa3\x0e\x9cN\xbd\xbd\
+\xa8\xed\x02P\x14w\xc8\x9c\xc0@e\x80\xb8BR\xdc\
+*\xe0\xb8|R\x5c!\xa8\x11\xa67\xe2t\xb5@!\
+\xd6~O\xa0\xde\xab\xe2K4ml\x01R\xdf:\x00\
+\xc0\x10\xf8\xea\x85'\xda\xa7\xa7EO^\x84\xaf\xdfh\
+\xfe\xbe\x07\xee>\x9e}\xee\xa6\xde\x9fJ'\xd0\xf69\
+N\xbf\x8c\x1b\xaa\x8a\x1cq\x19\xd7Iu\xf9\x9ea\x0d\
+BjA\xf5\xd4j@\x88\x85\xe3\xef\xbb?*\xd9Y\
+Q)\xe0 \xefW%\xf4*P\x904\x15x\xf7U\
+\xaf\x99\xde\xbe3$\xf2l\x0e:\xa0I\x22`cB\
+p\xa9z\xde5\x9f\xa3\xeb\xd2\xeb\x94\x80T9\xb0\xec\
+\xa5/D\x8e\xe3\xbaZQ\xc8\x17\x84\x9d\x83\xc8\xf1]\
+\xd5\xab\x99\xd3*\xc6?\x09k\x1c\x87\xc0\xd4|\xd9\xcf\
+\xa5Z\xe9\xb7\xf3>K\xa40-\xa8\x92\xab<\x99\x9f\
+\x9e\xda\x1c\x058</_\xcf\x96\xd4\xaf\x8b\x87M\xdf\
+\xe7\xb8\xc1\xe1mK\x8f)\x11\xa9\xcd\xe7\xc3\x9a\xfd\x06\
+hJGV\x01I\xf6\x8e\x8eW\x0f[\x13}\xfbv\
+\xfb/\xa9*\xfb\xc2=/\xd8\xf3\x82&\xc0\x14`\x9b\
+\x0b\x9f\xd4\xe7\xaa\x0c\x9a\x87\x9ab\x5csAc\xbbR\
+l7'\x875sT\x89\xd2H\xfc\xac?\xea\xfd(\
+]\x9e;\xa0\xc7\xab\x0a\x19@K\x80\xa4\xd2\xadb(\
+ \xe7\xd0Q\xa5\x01\x88\x000\x951\x8c\x0c\x00 \xaa\
+\x97\x0afV\xf2+\xc0\xb5/\xf4\xd8\x0b\x84]\x8f\x00\
+X\xe2\x9a\x8e\x1e`P=d\xb7M\x11'\x09qW\
+\xe95\xc6\xa5\x18@\xb9\x8e\xab\xe2\xee9\xb9_\x12@\
+\x07\x08\xff!@G\xf9\xd7\x12`\x9f\xfb\xf9\xd3P\xf1\
+\xaf\x84\xb3\xef\x9d\xe3'\xed+\xe3N\xb5\xe2\xa04\xf2\
+\x03\xfc\xa0\x00\xd4\xc1\x86\xba\xed\xc0\xcfq[\x15\x08d\
+\x00\xbb=>\xac\xa1R\x0b\x5c\xdd\x7f\x15n\xf7Q\x80\
+\xcb\xdfz\x1e\x02\xf4~\xfe\xb5\x80\xe2\x8d\xa1\x0b\xde\x00\
+\x16\x00C\xfe\xc6\xd8\x9f\x1c\xc7\xaa\x02\x5c\x89\x13\xb12\
+\x80\x94\x83>\x03\x0e\xbd\xae\xd4\xc6\xeb~\x9a\x1b\xfe\x07\
+a\x0d\xa0\x93\xe7c}\xee^\x1c/\x03\x12\xbd\x96\x05\
+\x00\xa9\x88\x1d\x15\xb6\xf6\xe8\x16\xd0\x94\xd4\xd8\xa2\xe0\xf7\
+c\x13\xf91\xe7\x06@\xc6\xfdu\xbe\xf5\xe3p\x9d\xe3\
+\xc66\xb9\x0f\xd4\xb4\x93\xf90\xde'\xac\xb9\xce\xdc\xff\
+\x80)b_\xd53\xe9\xdc\xf5\x1c=?\xebK\xe2\x9f\
+\x09{\x15\x0a\xb4d\x103%\xea\xe5>\x0a\xacQa\
+\x014\x1f\x9a\x02\xca\x0f\xadZ\x0e\x15H\xeb\x89\xa5-\
+\x92\x81z\xc51\x09\xf0m\x1e\x1e\xd6\x14\x10\xdc7~\
+\x06\x10h\x9cj\xee\xf7\x127\xd4\x12s\xc1\x04\xf8\xd3\
+\x8fV\xeb\x8fs1\x03?@k]g\xfa#bs\
+\xf5\x9cM[2\x0e\xfa\x80E\x0cz\xf3\xa1\xb0\x06 \
+I\x7f)\xfe+ H\x00\xdaU\xae\x9cS\x15'\x01\
+&\xb5`\xdd6l\xee\xb5\x9f{\xcbK\xfc*{\x96\
+\x87\xbb\x84\xad\xe2i\xb4\x14\x8a!\xf0\xc8\xb0\x86\xb9\xf6\
+\xc5=_\x9a\x99Fq\x97\xce5\xb7\xa6\xcd\xd3\x15\xc6\
+\x8b\x8d\x17\x1d/63d\xfepf\xc8\xd0\x9c2\xce\
+\xf1\x84\xc5\x8fT\x22\x9f\x9aM\xf3\xbe\x7fC\x93\x10}\
+c\xfc\xfa8]\xf7\xf8\x99\xb0\xe9\xf5\x0ea\xcd\xb4\x03\
+\xfb\xcc4\x9fL\x88+\x8e\xa2\x81\xf0\x9d\xb0\xe6\xdc\xd1\
+3\xef{Tz\x94}Z$)zV\xad\x95\x9eK\
+R\x871\x10\x8a\x89\x90L1\x09r\x8d\xd3T\xe0\xb2\
+?=G\xfe\xd1\xf3\x94\xe88/$\xd2\xc68\x9bV\
+\xf2\xca\xb0\xc6\xaf\x89\x87\xf8\xff\xf3l\xcf\xbb\x9d~o\
+\xbc\xdfx\xff\xf1~s\x85\xf7\xa8\xa8\xf0\x8e\x7f3\xbe\
+y\xfc\x9bu\xea\xd8\xf8\xae\xf1\xb8\xf1\xb8\xb5\xa5\x90\xe6\
+\xc0x\xc5\xb0\xf5\xb2\xaaW_\xbe\x92\x00\x0d\x86\xec\xf6\
+\xe1a\xab\xd8\xe5\x9c\xcf\x5cym\xa5*`@+\x91\
+\xe7\x92\xadRUIN\xc6]\x8dU\xd6\x22\x94\x89i\
+\xcd\x97\xd7\xe2\xaa\xc0\xd43`\xa8\xc0\x13\x8d\xc30\xe4\
+_\xd2_\x14\xd0\x00\xa0=5lm\xd5\x1a\x0e\x0f[\
+\x99gZ\x920\x9e7g\x0f\x9b\xee\xd3\x11a\xeb\xe7\
+$\x1e7\xdc$l\xcd\xb3\x9c\xcb\xf5\x9cM\x15\xc8\xd6\
+\x00\xe7\xc8x\xfe\xb0\xe9}\xfe#\xac\x014\x01\x1f\xc9\
+p.\x7f*^\xd2cO\xe4\x13\x83@+Y\xfaq\
+S\x8b\x14\x14\xc77\x86\xadq@\x01.\xf22\x0c\x1a\
+\xd7}\xc0\xbeS?j_\xac\xadKK\xbe\x81\x11\xe0\
+s\xa7\x88p\xc5\x1b4\xd2\xc4\x8b\xbd\xe6Y\xc7\xf0.\
+\xbf\xa6P*\xde\x88t\xfe\x8f\x9ai\x05\xc9\x1c\xda\x9e\
+-\xac\x89\xdf\x00\xe14UzF\xb9\xdf'\x12\xad\x95\
+\x01\xd3N\xdcl\xaa\x12\x11\xcel\xa5\xc14\xa88/\
+\x99\x87{w/\x11\xd6\xf4\xeeF\xba\xf7\x7f)6\xf2\
+\xca\x0c,\x0fm\x02z\x15H\xf3L\xb3'k\xcf\x9b\
+f[\xa90'\xcd\x83\xcf\xd6\x9eB\xc8\x86\x83A\xef\
+\x12\xc4\xb7\xef\x19S\x89A\xc5FE\xd1\x1bg\x9a\x80\
+\xb1\x0e\xa8\x1b\x10\xe8\xf3\xe4\x06\xbcq\x222\xa8X\x12\
+N\x09\xbc@\x06%G\xaf\xaa\x80I \xeaz\x1c\xe4\
+\xfd\x18\x1c\x81\x9a\x03\xbc\xfb\xf9\x9a\xc7)Ql\x91\x9c\
+\xbdMb\x1b\x8f\xfb\xeb\x09\x1c\x9c\x94\x81\xb7\x84\xb1\x15\
+k\x13\xb8r\xc8\x16\x80\x03\xc6\x82W\x01\x95\x08X\xc0\
+\xaeW\xc2\x8fzcAKd\x04\xfc\x02c\x1bA\xe0\
+'\xa1\x17\x80\x01\x14\xf2\xf3\x14\xf2\xa6\xb7\x1b\x15\x19\xf2\
+)1r=\xbd\xd8\x98\x00\xde\xf5\xfby\x95\xa6\xd2~\
+\xc8\xb1\x8a\xc7g/,J.\x8a\x8c\xf1Qz\xa7s\
+\xbdNa\xfc\xa2\xfe}X\xaaEC2\xb3'n\xf3\
+\xb5\xb0\xe9u\xb3\x04z\xc6\xd3TO*\x111\xcf\x1b\
+\xf5\x1d\xc0\x85J\x9ac|jC\x03\xa6\x8c\xed\xd1\xc3\
+&\xf0\xce\x00l\xf8v\xd8\xdcjs\xafa:\x80\x86\
+\x0f\x86\xad\x14\xe09\xfe\x9c\xf6\xcb\xf0\xc6\x14\x9d\xba\xc0\
+\xd2b3\xfc$lM@\xb6\xef\x09[\x1dOU\x08\
+\xa8\xb8f\xa0\x5c\xe2F\xc7,\x81\xc6\xe6e\x19\xe0=\
+c\x01(\xa6`j\x1f\x15\xf5b\xe4\x00\x80\xae\x16\xb6\
+:\xd6\xa2r\xde!\xac\xa1p\x11#Q\x09\xb5\x8e8\
+>\xeb\x8e?\xe8\xc5\xfez\x0d\x07\xef\xd3M\xa5p]\
+\xc5L!\x12\xd6Q\x84\x0b\xa0\xd2+\xadB\xfa\x90d\
+J\x98\xae\xa1e\xa1\xa7\x92\x0b\xd8{\xd1:\xeb\x15e\
+\xd3z\xe5G\xfc\xbc\xfde\x9d\xe6X@\x15\x95\xea\x11\
+\xd5\xea\x92H\x7f\x89A\xa1\xe0:\xc0\xfa\xfbd\xbf\xf2\
+\x1b\xfc\x96\xfb\xda\x8b\xcb\xf1\x13\x9e\x83DN@\xc3\xcf\
+`b\x01\x22\xfd\x9c\xe7\xe8\xef\xf0o\x00Q\x0c\x93\x04\
+\x08\xf4\x8en^\x18\xd60\xa6$n\xf7^\xc4&\xeb\
+\x9c\x00\xec\x00({\xb5z\x95s\xcf\xc9\xfa6n\x10\
+\x03MK\x02\xe0A\x00\xec~f/zi&x_\
+=\xcf\x09\x88\x97x\x97\xca\x22\x00\xa6\x1b{Vb]\
+\x803\xfe\xcd\xfd\xd6\xb2\x91\x80c\x01Z\xe9W\x83\x88\
+\x1cT\xe4Z\x9f\xfc\xb1\x96\x02\xcf]\x0b\x0a\xa0\x02\xd0\
+\x86\xf1d\x1d\x09\xbc\xb4&\xe4\xe7\xae@\xdeX2\xd4\
+\xf7l\xadQq\xac\xcaQ\xaar\xd7\x988\xbd\xf6*\
+&\x12\x7f\xe78`6\xc7F\x956\x8e\x84\xcc\xf9h\
+\xfd\xb9?\x99\x90W\xcb\x99\x80K\x5c\xe09y\x9e\xf6\
+\x19\xa0\x100G\xacS@\x84\x81t\xe4\xa2>_\x95\
+(\x158\xcc(\xd3b$\x10\xd6C\x02\xa9\xc6\xc9m\
+>\x18\xd6$\x06\xc4\xb7\xd2\xefTba\xbd\xdaGy\
+\x9fL\x17\xa8D\xcb\xb9\x9a\x95B\x9aK\xb5\x1f\xdc/\
+b\x80\xf9\xf9K4\xd8\xbcp\x15\xe1+&\xf0qD\
+\x02\x89\xa6,$\xd0^\xe2|\xd6\xb1D\xc9\xfev\xdf\
+=\x97\x1e\xd8\xef\xd5\xe1%\xc4\xfc\x80}\x8bB\xae\xf7\
+\xf8\xd9a\x8d\x96\xc9\xc1a\x93\xfb\xfa\xef\xb0\xf5\xf9X\
+';\x97\x0b[\x01\xd3\xdd\x9b\x87\xcd\x95\xd6E,O\
+\xab\xdb\xa7\xb3\x00\xe4~}{\x89O\xb7\xd7\xda^{\
+\x06\x0c\xb2\xc7{\xf7\xc3a\xd3\xfb\x9e7l\xad\x08\x13\
+\x83\x1b\x7f\x126\xfd\xdc7\xc3\xa6\xef\x7f\x1c\xd6$\xe8\
+\xf7\x0ek\x0aNz\x82\xcf\x15\xf6[\xa8\xc5\x00+\xc0\
+\x90\xe9\x0cT\xeeM?\xb8v\xd8\xfa9\xab\x82h}\
+\x89/\xf9\xd3\xa7\x855@>15q>fm\x8e\
+9\xae\xca\xb1xP\xc1J\xcb\x0fF\x99\xeb6\x9d\x80\
+8 &\x94}\x88!\x9b\xad\xae\xc4#w7a\xf3\
+\xef\xcdc\xe4\xc6W\x86e\xe1p\xf2\x1b\xe3\xc3\xc6#\
+\xc7#\xd7\xdel-\x9e\x01\xb7\xcd\x8c\x80\x9c\xaePZ\
+c:\xd3\x8c!\xa4A\xd0\xcd\x91\xa7mT\xe32\xf9\
+e-C\x09\xb0\xd2\x82\xa8\xc4^\xc1Lk\xd6\xc3\xc2\
+\x1a@ \x01\xf7\xd2\xe4\x00\xcc8\xe7\xf8\x07\xfb@\x5c\
+M\xe4Y\x1eD\xb4\xcez\xc88||JX\x137\
+;\xaf0\x7f\xf2\xb9\x18S9\xbcyx\xcb\xf0\xe6f\
+\x9d\xe5\xdf\x1f\x8f\x0e\x9b\xfe\xff\x95a\x0d\x90\xf5\x88E\
+\xc3b\xb8t\xd8\xdcj1\x03/\xa5Y@\x84<\xc6\
+]\xb6\xdak\xfc\x05q\xc2\x98n\xf2\xf4\xe6~\xe5\x94\
+\x94\x02X\x15\x0a$\xea(\xf8\xc6\xd7\x02\x5c\x01!(\
+\xf5D\x02=\xef\x1b\x875\x05\x03\x05c\x8ch\xfeJ\
+\x9cv\xa5\x8c\xf3P\xe3\xc5\x01\xd9zYSMh\xd6\
+\x88\xd7\x14\xcehC\xe5\xb9Q\xadd\x9e\xa38\xc7\xbe\
+\x00\x04x=\xf3<h\xbdZAi:T\xfe#~\
+\xed\xb5\xd20\x17_\x90\x857\x85\xee\xcf\x845\x0c\xc7\
+\xbc>\x05\x00@\xdc6\xf3!\xc0Yi\xe0)x%\
+\xa0\xb3\xb7z\x96\x82\xfaq\xa75\x90\x98U\xd6\x9b\xf9\
+\x8c\x9b1lup\xc4\x01K\x8cL \x84zx\xeb\
+\xa5\x07\xb9T\x8do\x9d\x95\x92\xbe\xa2,\xe1\xec\xe7\x0c\
+\x0bX\x1d\x90\x02\x08\xa2\x15\xe6\xc7'\xf5h\xbf\x03\x09\
+r\xdf\xcfSWy\xa5\xa2\x0b\xa9A5\xf5`\x1dt\
+\xfd\xdcZ_\x07tj\xb3>\x0f\xca\x17*\x8a/\xe2\
+\x12\x02_*\xe3\x12z\xd7\x9d\x07\xf7\xfc\xa0\xff\xe3\xb7\
+\x88\x1c\xa2\xac\x11\xc3\xbaPQ\xe8\x16\xe0c;\x0f\xbe\
+Y\x02\xd2;4\x95N\xd4^H<\x0a\x98\x00\xc9u\
+\xf4\xd4\x13\x81\x09\xc0De\xc5}\x92\xe8\x08\xb8$4\
+\x16\xb8y\xf5\x17\x0ak\x024\xc8\xa7\xd7^\xa5\xfd\x22\
+I\xa9\xd2cE\x14C\x80\x0c\x99\xf3wl@\x01\x9e\
+\xcf\xad\x17)\x03\x07\x09\xeb\xe6\xa3\x8b*\xfe\xe6\x9e\x8b\
+\x0a\xb2\xeb\xab\x9em\xbdp\x7f9\xdbZ\x11\xc9Jm\
+\x8d\x07\xcc\x03w|oXC\xb13\xf6\x0a\xa0\x01`\
+\x91@}.)F\xb4\x1c\xb2\x17\x7fJ\xb7\xe7\xde\xdb\
+\xcd9\x17fL\x10M\xe3\xf3\x0f\xc7\x84M\xaf\x87\x0c\
+W\x1a\xae4\xbd\xfer\xf8\xc50\xad\xcf\xe1\x94\xb0\xe9\
+\xf5\xc1a\xd3\xebc\x979\xb2\xa1q<\xab\x1cgO\
+\xdb\xf6Fa\xd3\xeb\x07\xc2\xa6\xd7C\xc2\xa6\xeb>_\
+X3\xde3+D\xa5\x01\xa12\xb8\x93\x95.\x89\x81\
+\xf9\xaa\xf6\xb3}\xf9\xe2\xb0&\xe1\xf0y=g\xeb<\
+\x99:\xa5\x1eK\x8c\x85x\x95uf=A|=o\
+\x09<\x7f!\x90\x17\x80\xa2\xe2K\x14$Z\x12G@\
+\x80^\xff\xf47u\xa0kM0\xb7\x5c\x82\xc5/\xd8\
+\xef\xf6K?\x8e\xac\x0b\x88K\x93\x00\xa0\x08x\x14 \
+f@W\x07\x22\xa0P\xcf\xa7\xbfk\x1f\x13\xf5r\x9f\
+Q\xd2hV\x00\x06\x00`\xd6\x9f\x84\x0aP\xe2s9\
+\xf8\x1c\xd8YAp\x90\xd4\xbe\x14X\xf0K\xfdT\x94\
+\x1e(\xe8\xc7\x8dZ/\x00\xb3\xbe\x12/\xc0\xb1^\xf2\
+\xf9\xa8\xf0\x0bhT\x0a\xf6\x03\x90\xdc\x07\x89\x06?\xad\
+\xe5\x81\xe8 ?\x01\xc8u\x7f$\xeaZ\x1b\x04\x06\x12\
+k\x81\xba\x04\x1c\x85T\xcf\xba\xd6\xae\xab\x845\xcf\xd9\
+\x01o\x9dZw\x12e-\x05\xd9rT\x01\xa2J\xa0\
+1`\xa8\xaa\xcf[z\x94\xcb\xef\xf6@\x86/\x07>\
+\x0d\x82\x07fOy\x8a\xc6\xedWi\xce\xbf\xbfyO\
+X\xe3/\xf5\xc6\xba\x0f\xcey\xf7-?\xf7\xe6\x9ba\
+\x8d\xb6DN\x17(Ul\xe7\xb4\x0a6\x95ub\xb4\
+\x00\x04\xe3\xf1\xec\x07S]RcB\xe2P@\x89\xde\
+X\x80\x87s\xcd:\xf5\x1c\xecW\x8c \xaa\xdf\xcek\
+\xf3\xae\xc5\x07\xf6u\xb6\x10\x02\x02J\xc4\xe9\xa8\xf4\x0f\
+\xc4\xfc\x12X*\x8a\xac\xf1]Y1\xabJ)\xcd\x02\
+\x0c\x19\xfb\xcb\xb9K\xfc\xd4X\xacL\x90U\x886\xef\
+\x08k\x181\xc4\x1d\xedO\x0c\xb4\xec\xbd\xae}\x0e\x00\
+J\xd1Hb\xa4\xc6$b\xa8\x002\x04\xa0\x95\xc0\xea\
+m\xce\xe7Pc\xdc\x88\x8d*D\x5c;\x01^\x22\xb4\
+*\xac\x02^\x80YW\x09\xa5\x0d\xa5\x82\xa5U\xa3>\
+w\x02\x84U\xd9\xd6\x03\x8f\xd2\xeb\xbe\xf9\xfc\x99\xe0\xd2\
+j\xda~3\xac\xf1O\xfc\xb1\xf8\x22\x13\x91\xf1]a\
+\xfb3\xc6\xcc\xff\xd63_*\xfe\xc6}\xa5_\xa9\x16\
+\x1e\xcc \xf1\xa88R+\x86^\xec\x04\x14K\xdcS\
+\x85\xd2\x189\xbd\xfa\xe9\x070UL\xe5*\xf1X\xe7\
+21<\xf1\x87\x84\xd49\xea\x1c\xc9\x16Q\x14\xe5\xfa\
+\x7f~\x1c\xc0\xdf\xb5\xc4\xd5y\xc1\xbf;\xc7\xf2s+\
+\x0c*\x00\x8c'\x855\x85!c\xea\xee\x92\xe3\xac\x8f\
+\xcf1h)\x9eX\x95z\x0c\x80T\xb3/M\x81d\
+\x8c\x00\xe8\xed\x03~{zJW\x98\x9fS\x02'\xee\
+c1\x05\x92\x19\xeb\x9c\xa3]R\x09\xbb\x9ep\xdf;\
+\xd7\xed\x1f\xda\x1aZt\xba\xc2f\x15\xe0\xf8\x1d\x00\xbb\
+<\xc7\xb9\xd7\x9d\x93\xdb[\x855q[2\x17\xea\xfe\
+&0iZ\xc0\xf0\xf7a\xcd\xf8\xd9\x8c36\xbf\xda\
+\xfcr\xf3\xab\x06\xa8N\x8a\xfb\xf8{ak\xeb\x8ex\
+q|lX\xc3\x10J\x00\xbe\x80Pc\xf2R\xeb\xa1\
+\x80$-\x0b\xc9 \xad\xc4\x9c(k&\xd8\x0a\x1a\x05\
+l&0S\x80.&\xa5<#\xfd\xf3\xf0\xe6\xb0\xe9\
+\xfd_\x1f\xb6\x026\xe2\xd5jQ\xd7\xe2\xa5E\x85\xa6\
+\x0e\x8d6\xff\xef~\x8b\xaf\xe4\x87\xa9\xd5Pb\xabW\
+\xc9s\x0e C\x0b\x02\x95_AIaGK\x96\x82\
+\xb5\xf5\xf0\xadyN\xc6:\x85%\xf3\xb5\x9a.\xd6\xf5\
+\xe4c\xb4T\x0b\x04f\x1cf\xb4\x02\xa2\x02\xa8\xb1\xb0\
+\x09\x18\x16s#\xa7m\x150vPX\x13\x17%\x10\
+\xbf\xb7zY\xe2\x80\xfed\x8e#\xbbVs\xf0\xa5#\
+\x99\x11\xb5\xeb6\x95(\x22\x14\x1c\x0fq\x1d\xbd2\x10\
+\xb7\xfc\xc3\xdb\xeb\xe5\x5c\xd3\x9c\x13^bA\xc6|\xa9\
+\x14\xa8@I,;\xcafQ\x97!\x96z\x9888\
+\xc0\x81\x83\x15p\x10?\xf5\xa5\xfc\xe0\xff\xb5\xde\x98\x1a\
+7$\x10\xe4\xa0\xf4\x14\xaa\xf0B\x8e\xfb9\xe9z\x03\
+\xf5\x1a\x09\xc4 P\x1eT|\xf7\xe1D\x08?\x90\x81\
+\xc0?\xe4\x02\xfbf\x93\x90K\xb8\xddO\x0eE\x82\x8c\
+zD\xc5W\xe0\xdb\xf7\xb8\xc6Sm\x01\x0c\x8e\x9dC\
+\xf2w\x00\x18\x16\x06\xe4J\xa0na\xa6\x88H\x05\xfa\
+\x09\x00\xec7FPk\x85D\xadS\xf1\xae\xef\xddO\
+T\x1b\x89\xf7\x85\xf3~I\xf00J|N\xf7\xdd\x01\
+D$\xcc\xf7\x00\x07\x09\x90\x8d\xa9b\x9f\xaa\xa5*\x1c\
+\xc3\x1b\xc3\xa6\xd7\xb7\x875s\xab=\x8f\x0c \xa9\xaa\
+\x0e\xaf\x1f^7\xbcn\x16\xe7Z\xe6\xcc\xdec\xe9\x9d\
+\x9d\xee\xfa\x1c\xf0\x8d_\x0e\x9b^\x7f1\x9e:\x9e:\
+\xf7(-\xe22\xa8\xfe\x9d\xda}\x01P\x97M\x95\xff\
+\xaf.\xbd\xa4\x9b3.\x89kQ3\xff=+q\x9f\
+[\xc6:\x0d\xef\x0c\x9b^\x0f\x08\x9b^\xaf\xb4\x00\x03\
+;\x97\x0f[)\x93%\xe2\xc4Q\x98?\xacu!\x11\
+\xd3\xf1\x84\xb0\xe9\xf7n\x18\xd6P\xa7T\xecL\xf3\xc8\
+\x80Mo\xad^\xbb\x02X<\x07\x8eJ\x00\xee`@\
+\xe9\xd7\xcbl\xac(Q*\xe3 \x05\xf0=\xc0c\xfd\
+8P%\x1aD\xe3\xac\x1b\x81&\xaa\xb4\xc0_E5\
+\x13\xa3JP\x8c\xa1\x91p\x0bH\xb5\x1e\xa8\xcc\xa1p\
+\x0b\x1cQ\xc0\xb5\x8a\x98\xcf*P\xf2sZ\x14\x5c\xb7\
+\x840\xf7\xd9\xe6\xb8\xb0F#\xe4A\x0beUe\xb2\
+\xa8\x8d\xf6\x83DW \x07\x10\x04|\x09\xb8\xad3\xeb\
+N\xa2\xd1\x05\x82%\x9eh\x0c\x19&\x02Jq\x8fl\
+\xf7\xe3R\xf9\x15\x09\x08\x0a2\x00\xc1\xdf\x97\x90\xdb\xc7\
+\xfc\x90@\xd3T\x08\xa2N(\xdb\xfc\xa1\xf7\x01\xb4\x01\
+<TH$\xd6\xee?\x86\x83\xf5\x030\xd5\xab'a\
+\xb1\xdf%\xa6\xc6\x0a\xa6\xdaq\xd3\x1a\xb1\xf8{\x01C\
+R\xf0\xea<\xa4\x01\x80:\x9c\x80\xab\x16\x98\x02\x840\
+\x8dT\x8c<\x17\x14Q\xe2QD\xe8h]`\xe0\xf9\
+\x5c\xd9k_L:c\xaa\x04T\xb9\xbfk\x7f\x98\x0f\
+\x9f\xbd\xd3\xe5\x17\x89\x1dfOg\xcd\x8b\xffbX3\
+\x0e\xcf9- &\x22\x8a)!q\xe7g\x89\x82J\
+\x84<\x1f\x00\x9a\xbf\x93\x95g\x89e\xf9\xef\x0c\xd4*\
+\x11K\x7f\xb9\xfdaX\x13h\x1e\x18\xd6\x8c\x93{t\
+\xa9\xca/\x8c#\xcf_\xeb\x0eq\xc4\x0cdk\x9c+\
+?\xa7\x17\xd8~\xa4q\x10\xbb\xe2\xdas/\xfe\xa2u\
+\x92\xcf\xbbD\x19\xb5\x16`\x12\xa5\xb8_\x01\xccz\xf8\
+=o\xf1\x02\xbf\xe9<\xa0\x8d\x03\xf0\xb6\xbf\xd7\xe9.\
+K\xeb\xd0\x9b\x96\xc0~zj\x8bJt\xee?\x95\xa2\
+j\xb1D\xc1\xa5F\x9f\x09\xabV\xb1\x02*h\x19\xa4\
+\xdf(\xe0X\x00\x89*+\xae\xbaoN\x9dP(\xba\
+\xc9/7\xe5\x89\x00\x00 \x00IDAT\x22bW\
+s\xe2\x15\x16\xc4c\x00\xb6\xcf\x85\xed\xef\xdfj\x1c.\
+*6\xb1]\x8c\x0d-6\xc9\x5c\x1b\x0f\x09[\x01\xed\
+\x12U\xed\x0aM*\xc9\x15\xa0wb\xa6\xf5\xbcU\xcc\
+U\xda$\x1c\xa6\x1d\xa4\xdf\xd8^(\xaca*\xa1\x1c\
+\x0b\xc4\x01\xd9\xfc\xa2q\xc7\xc9\xc4+?j\x1fk\x89\
+q}\xe9\x8f\xaa\x92o]\xe4~+\xa0\x1d\xe3\xe3\xfb\
+U\xa8Y\xe2\xbd^\xbc\xd59\x04\x10t\x1e:G\xec\
+K\xe7\xa7xMA*\xcf\xc7\xd2\x86\x91\xf8\x88\x07%\
+\xb6\xee;\xcar&\xb4\xe3\x15\xc2\xd6\x04\xc7s\xab\xf5\
+\x018\x19\xc3\x9a\xb1\x88*\xc24::\xc0\xa84\x07\
+\xce\x10\xd6\x00%\x87\x85l\xe3\xf4z\xfe\xb0U\xa3b\
+{\x81\xb0\xd5\x9f\xfb{\x15\xa7(\x04j%\x06\x0cI\
+\x1c3\xcf\xa8u\xe6<6\x0d@~ /\x01\xf8\xf4\
+\xa2\xd0\x12\xcb\xbee\x093*\xb5P\xf8\x15\xfe\xbd\x12\
+wS\xdb2~2\xa6\xbd(\xf5Z\xa72\x01\x1e\xfe\
+6\xacYw\xc9`R\xb8\x1a\x9e\x1a6\xfd\xfc\xc5\xc3\
+\xa6\x7f\x7fZ\xd8Z8-\x7f\x91\x05\xb0\xf1\x8ba+\
+#m\xbb7\xac\x99.\xe0\xbcJ\xad\x13\xd3Qj*\
+\xc9\xf7\xc2\xa6\xd7\x7f\x0c\xdb\x9f\x89Y\xf1\xa7\xd6\xd8/\
+\x855\xeb\x14\xa3(\x0bT%R\xae\xc0\xaae0[\
+*g\xf1\xfaw6c\x1di0X\xaf\x19\x17n?\
+\x96\xe3\xe1\xedKS_\x00\xac\x18o\x09$\xd5\xcf\xd1\
+\x80\x12\xe7)\x00\x1a/,\x8eu\x7f\xc4;)\x06\xeb\
+>\xd6\xbfc\xae\xf0K\xe2a\xfb\x17 '\xaeN\x06\
+|i\x81$S\x82\x18d\xf9\x7fqg\xe6\x93{\x8b\
+\x8a\x1b\xc7P\xa8G~z\xb2O%5\xf0\x81\xabH\
+U%\x88\x81\x83\x1f\xd9\xa8S\xa7\x83\x18?\x1a\xb6\xce\
+\xa7\x9c\xb7\xc1\xaf\x9b\x03N\x8f\xed\xb9\xb3b\x97\x0e\x86\
+C\xac@S\xe2\xdf9\xa0zU9\xf2=\x04\xb2\x1b\
+\xd37\xbd\xdbL\xd5\xd8\x1c\xb4\x04\x06\xe5H\x03F\xf8\
+J&\xaa\x97l\x10\x18\x8eH\xa2\x09\xf1\xa1\x8e\xdaU\
+\x88\xcaq\x0ad\x1d\x88\x02@=\x90*\x17*\x9c\x01\
+o\x5c=\x91\xb9\xc77\x94\xab\x9b\xcc]ik\x82\x83\
+B\xf6\x83y\xf2\xfc\x128\x13c90\xefS[Q\
+\xf2\x1cU\xda\xbe?\x1f\x09+u\x10\xe2\x9cT\xb1\xea\
+%\xe4\x98|\x01\x84P\xa5$r\xa8]6\x8c\xc4B\
+@\xad\xc2\xea\xfeqh\x00\x08\x0e\xd4\xef\xbb\x8fkb\
+\xb0\x5c\xb7\xe7\xefK\x0f6uc\x00\x91\x85\x0fY\x87\
+\xcc\x0a\x1c9\xee\x87d\x80\xf7\xe8\x85\x0a)P\xd7\xfb\
+Z\xbdLYy\xd8yC\xd8\x0c\x10,T\xc8\xdb.\
+\xc8% \x8c\xd8\xde\xf4.KOd\x88\xda<\xb9\xe9\
+y\x22~\x95\x01\xddx\xd9\xb0u}U@\x06\xf9\xd4\
+\xdbu\x96\xd4&8\xebR\x11\x1b\x9e\x1f\xb6\x06\x12\x9b\
+s$R\x9d\x07U\x89\xff\x1d\x1f6\xbd\xde<l\xfa\
+\xf7\xcf,\xe2\x84\xc6\xc9\xcc\x8c\xbb\xdd\x95Bm=\x97\
+\xe3MU[-\x03\xdbK\x85\xcd\x08\xf2\xaff\x04Y\
+\xe0\xd5\x8b\xcb\xe4s/\x91\x1c\x8e\xc5\xd4\x0d\xc0\x9d\x03\
+\xc7\xfe\xf0*\xe0\x95\x10g\x22V\xbd\xcc\x90`_\x87\
+\x14\x95k\x1fQ\xa9\xd2\x86P\xd1\x15\x98\xf4\x896 \
+\xcd\xefIt\xfd\xdd\xac\xdcU\x02\xa2R\xda\x01U\xa5\
+\xbe\xdfS\xe7{\x00\xd3~\x90`KH\x01\x82\x0e0\
+~\x0b`\x01\xd0@\xddU\x89\xa0\x92>\x7fM\xafo\
+XzR\xcbOZ\xef\x9d\xe6A\x1d<\x02Q\xaf]\
+Og\x89\x16\xba\x8f\x9eO_Q\xc7\x1c\xf0%\xe1\xef\
+\xc7\x01\x12\xb7S)_Ui\x17\x7f)\x01\xd7z\xc1\
+\xef\xc4\xf9\xf3\xe9F\xf4L%\xd2\xc1\xefyH\xec\xba\
+\xf1\x87u\xdf\x01=\x12\xbf~\x5c\x0e\xa0\xd0\xf8<\xad\
+\x1e\x98!\x80\x85\xac(\x07\x918\xa8\xc4\x15\xb8\xe8\xb9\
+\xa4}\x91\xad6\x9b\x7f\x0f\x9b.\xf3Sa\x8d\xf8\xac\
+1\x9e/\x0ek\xc6Ty\x0e\xbe$\x00\x02Q\x01\xbe\
+\x8a\xbb\xebD\xc9\x06\xfc\x12\xa9\xe4\xa7\xb5\x82h\xbd\xf3\
+\xf7\xbau\x5c\xd7\xad\xe2\x9fL\xb5\xfaw\x9f\x1b\x85\xd3\
+\xfd\x14\xf8'\xd0]\x95H\xeb7\x99\x0a(\xdcU\xf1\
+\xce\xe7O\xe5\xbb\xd6\x03&\x9f@*\x13\xab\x9a\x82\xc0\
+\x7f\x12\x1d\x93`%\xd3\xb0\x80\x12\x957-^\xa8\x91\
+\x17M\xb1V\x09\x0d-\x0ac\x1aU\xb01\xd4\x00\x87\
+ZB\x9c\xa3\x00\xfbL\xf4\x0b\xf0\xc3\x14\xe2\xd71~\
+0\xfd$D\x19\xd8\xd7\xfe\xc8}\x5c\xc4;LE\xc0\
+8\x8d\x06=\xdb\xcf\x9fm\xcf\xf6\x0da\x0d\xf0\x04x\
+\x7fx\xb6\xae}v\xf3\xb9\xcd\xe7\x1a\x7f\xa8\xd7>+\
+\xb4\xd5\x02CkF\xa2m\xff\x00t\xfa\x16\x16\xd7\xef\
+\xf9\x10\x17\xbcs\x02\x1f\xbf\xcc\xf5\x85\x91\x88A\xa3 \
+\xf2\x8a\x0c\xd8_\x9d\xada\x12i~'\x01\xb1\xe1\x15\
+a\xcdx>b\xc3\x99\x88\x98B0>!\xac\xa1\x00\
+\xf3o\x00'@S\xdf\x8a\xd4\x7f\xa9\xc8\xe6\xfd\xad\x8a\
+\xa1\x02\x88\x84\x8c\xa8\xb2\xf8\xcc>3\xfd!\xe3\x88^\
+\x83\xa2*\x80\xe2\xb5Ll\x0a\x98\xd7:$\xd1\xe7\xaf\
+\xb2\xc7\xd9\xb8\xbd\x02\x86\xac+\x8c\x9a\x9321\xfd\xcd\
+B\xd5\xae\x96X\xa2\x9fY\xd8(\xb1Y\xe7\x8e\xebN\
+@\xac\x80\x85^3\x06\xf3\x03\x10@\x5c\xd3\xfbXg\
+\xfc\x96s?\xd7W\xf5\x22'\x83\x02\xb0\xce\x0f\x14c\
+\x82\xc6\x17`\x05\xf0\xca\xef\xe4\xb9\xa9\xb7\x9f\xbf\xdb\xde\
+2\xacQ\xbf7\xdeP\x22.QO@\xb7Z\x98h\
+\x14X\xaf\xceu\xfb \x13\xb9\xf2Wz\xdas\x7fn\
+\xdf\x15\xd6\x00\xc5\xfcb?NQ\xdcC\x0c\xd0\x18\xe0\
+\x5c\xaf\xc5\xcc\x15'\xfb\xb9l\x1d*\xff\xab\xa5\x98\xc8\
+\xe1\xc5\xc2\xd6\x96\x87\xf1\x02a\xd32\x7f`X\xe3\x8f\
+rz\xc6\xf0\xa9\xb0\xa6\xe7<\xa7\xdb\x8c\x8f\x0e[\xa7\
+H\x14\xd0E\x84\xf2%a+\xe3axYX\xc3\x88\
+\xc1\xe80\xae\xfcfY\x00\xceu]\xcc.c\x0c3\
+\xfe\xd2*\xb0\xf9D\xd8oa\x14\x0240\x1d\xc5\x0b\
+\xe2@\x85\x12\xcf\xcb\xf9\xad\x15\xc0\xd8\xdcd\x94TB\
+\x9cZ\x05\x0a\x0b5V\xd4z\x17\xaf\xd0\xb80%\x82\
+\xc8\xb5uO\x8b\xce\x97\x02\xb2\x02\xad\x96:\x05\xae`\
+\xd6\xffbe\xd8\x8e/\x0ak\x00'\x05\xe5d\xea\x02\
+r*\x7fv\x8e\x8b\x17\xf3\xfe`\xe6\x17\xf5\xff\xbc\x8b\
+\xd6F\x15\xa8\x9c\xfb\x00\xb5\xfc\xfd\xbdn\xc0<\xb6\xe3\
+\xd6M\x8fa:\xde\xcdI\x93E\x0f\xf2\x8f\xc3\x9a\x0b\
+\x88\xf0\xe3\x91\x0dR\x04\x09\x8a1\x80\x11\xe8\xbc|\xb2\
+\xa3\x1b1#\x8e\xf5\xa19\xef\x5c\x82\xe0`\x85X\xf6\
+\xe3\xfd n1V\xf0\xbbk\xefCm0\x1b\xa6\x17\
+cX\x03\xe1%p\x8cw?\xb9\xeb\xe1={3\x86\
+!Ey*\x80\x15\x98Ip\x05\x9e\x1c\x94\xef}\xa5\
+C.\x91\x8a\x08\xcb\xcf\x91\x09\xf4\x89\x8d\xa8\x97\x83X\
+\x8f\x87\x8a(\xf5b\x89\x81\x85\xe5s:\xb88B\x8e\
+Q\x80/0wp\xb4\xe3\x05\x1b\xa6B!\xa9\x1c\x10\
+\xe6\xc3\x9e\x1c\x13\xf1\xf3T\xb9F\x91\x81\x8cz_=\
+\xd5(\x92\xe6I\x0bP]\x9f\xebFm\xfa\xfa\xd2\xf3\
+\x85\x0aT\xd7\x93\x14\xc1\xea5;kV:T\xc2N\
+\xda~{\xfb\xed\xb52\xb8\xb9_26\x1c\xf0\xee\x1f\
+5s\xc8\x1e\xaa.Q\xb4\x17&0\xe3\xfe\xba^\x15\
+\xb3T\xa1\xa6&o\xbdO\xe9\xfe\xff\x0e\xff;\xaf\x83\
+\xa5r\xa7\x92\x96\x8e\xa7\xd4\xab\xf5(I`>\xb4\xac\
+S\x09D\x89\x13I\xa8\x7f\x7fA\x0a\x87\x9b\x0e7\x1b\
+n\xb6jUH\xcc\xf58\x0e\xef\x1b\xde;\xbc\xb7q\
+\x00\x02A\x95Cj\xb5\xdf\x08k*\xff\xd4\x8cS\x84\
+Q\x0f[\xed\x97\xdc\x8f%2H\xeb \x03\xc1\xda\xff\
+\x1f\x0dkT\x84\x89\x96\x18c\x95\x95\xe4\xea\x99\xb3o\
+T*\xa8z\xa3$\x1d\x11\xd6\xcc\xb9\xe7\xc8$p\x9e\
+\x8f/@\x00\xa0\x88\xe3\x074I\xb0\x01R\x12W\x15\
+\xddnz@\x010\x90Y\xc0Y'6\xa9w\xaa\x00\
+G\x80\x1e@\xc188\x81\xbc\x03\xdc\x1cv\x07\x91\xc4\
+\x9f\x88\x1c\x86\x89\xebU)\x17\xe0\x09\xa0\xa8w'\xa0\
+U\x15,~\x11\x92,\xc1\x93\xf0ge\xb6\x185\x02\
+9@#?k\xdf\xf3\x1b\x90e\x00\x86\x8a\x9d\xfb\xdc\
+\xf7\xfa\xda\x7f\xfc\x83\xfd\xec\xe0v\x90zn\x18\x07\x12\
+p_\xab\x1fX2 \xd7\x95\xf7\xbb\x02\xef\x1c\xf7V\
+\x01\xb7\x9e<\xf3\x83%\x82\xf65\xa0\xea\xcc\xdd\xd8M\
+\xd7\xe3\xcb\xe7\xa4\xa2O\xe4\x89\x1f\x01\x80J,%D\
+\xee'\xff'\xd0\xc2\x10\x01p\xf4\xe3\x1d\xb3\xa2\x5c\x89\
+\x84\x03?\x03\x03\x01c\x05\xc8\xb9\x0e\xab5%E\xdd\
+\xaaWU\xebH\xfe\xddJ \xf3\xbaK\xf3\xc4\xf4\x08\
+\xcf\x0f\xc0\x92\x95\xefj\x95\xd1\xf3\x9f\xda%\xeeG\x8d\
+A\x94P\xe4\xdfG\xc5\x1f\xae\x1b\xd6T\xa22\x01A\
+\xf1\xaf\xca1\x80 \xfdf\x050\x99\xc0\x15\xb3\xe8\xc1\
+\xcb\xb8\xd2RIO5~s\xd2k]\xe7\xfa\xad\xd6\
+$-\x15\x12A\xbd\xbd\xff\x16\xd6\xf8\x9b\xae\xa5ms\
+\xb7L4\xaf4w\x8d\xae\xbd\xd4\xd4\x93\xed\xb3\xfc\xbd\
+\xfa\x5c\x00{\xbd\xc4\x00\x04\xe7.?\xa9\xe5\x02\x10\xaf\
+\xa2\x9c\xc0v\x9c\x02\xf39`\xbde\xa2A\x93\xa5\xd6\
+q20+\x01\xa5\xf2\xfc\x91\x9c\xa7-\x01\x15\xff\xfc\
+\xed\x92\xc8O\xab\xe0\xe6\x9b\x9b\xafS\x14j\x1d\x19\x9b\
+\xe6\xbe\x89O\x8c\xf9\xfbv\x9e\xbf\x12\xcf\x8c\xff\xea<\
+\xe1\x8fO\xc9\xb8\xc9\xf9@TO\x22\x96\x09\xc7\xf6R\
+\x8b\x9a~Q\xd5i\xe6\x9c\xb8P\xf3\x87+\x0f\x87\x0c\
+A\xfd}w\xd8\xf4w\xfe/\xacI\xe0\xb5\xd8d%\
+\xd88\xbb\x0a\xb8\xfb\xf8\x87_\xf1zZ_\xfc\x02\xff\
+\x99\x9f\xaf\xc4\x1c\x8d\x17{AX3\xf6V+\x16\xff\
+\x92\x8c\xd8Z\xdf\x09\x88\x8f7\x09[\xa9\xbd\x950%\
+\x13\xb6\xe6\x97\x9bf\xa3\x22\x891@\xecL\x85\xffk\
+\x09X\x88\x8f\x15lT\x94\xad?\xf1\x18\xe0\x01`\xdd\
+W\xa2\x01\xd3\x12,\xe7\x82}d\xbd\x89;\xf9y\xcf\
+\x1f\xa0H\x142\x81\xbc\xf1\xdf\xc2\x9aB\x8d\xb8\xff\xf0\
+yN\xd1\x9e=\x8f\x9em?\x8at\x01\xbb\xceQ\xe7\
+y\x02\x94\x18\xc6z\xe0\x89\xd9Q\xcf/5\xfb\xac\xcc\
+o\x9f\x1d\xd6\xb4\x02h\xd1\xb2\xee{\xad!\xe7\x15\xa0\
+\x19\xf0\x86\xe1\x91\xfbZ\x1c\x5c\xffn\xffZ/\xa8\xdb\
+}\x8bOWx\xac\x16)\x0c%\x14\xf3\xccGJ[\
+\x02\xd0\x90\xe7\x8e\x84}|G\xd8\xda\xb2j=\x0d\xd7\
+\x0e[\x7fO!hxDX\xa3\xbdr\x95\x85\x89=\
+\x1e0\xee\x1d\xf76\x1a\x10\x19\xb7\x9a\x16'\x0f\xab\xb1\
+\x88D'\x93\x91\x85\xf1A\x03k\xbc\xefx\xbf\x10{\
+\xac)\x16\x09\xd4n\x0f\x0fk\x00\xde\x5c\x07\xc5\xbc\xc4\
+\xe0\xca\xf3\x0aP[\xfe\x90\xf8\xab\x16\xd5l\x15+1\
+`\x80\x17\x11M-:\xfe\x0e\xed\x80\x07\x855\xf9\x15\
+\xcd!\x85\x01\xfbH\xe2\x9c\x85\xb0\xf2\x8b\xa6\xb8`\x1e\
+\x88\x7f\xb5\x94\x00\xc8\xb5~i\xbdJ\xb1H\xa2\xdb5\
+\xc5\xc0\xf9-\x0f\xd6\x0a\x90\xeb\xd4\xf3r\x7f\xeb\xcb\x14\
+\x09\x00\xfe\xb3\xc2\xa6\x9f;2\xac\x11s\xec\xf6\xfb\xde\
+\xaa\xac\xd8\xf8\xc6\x97\x98\xef\x1ec&\xbe\xd8P\xe1\xa3\
+\xdeqD\x22P\x0f\xcf\x9e\x9d\xa0\xf8\xbci\xb2\xbfI\
+$'.\xe0\xe3aMb\x81\x22\x9c\xbd\xdd\x15\xc8\xaa\
+\xfc\xa0\xdc\xa3r\xaa\xec\xa3>\xb8!\x10]\x01\x98\x83\
+\x1c\xc2\x01\x00\xd8S\xd4\xa7\xa5\x12\x14\xe1\xe8\xc9\xab\xfa\
+a9l\x8e\xb1=X!\x81\xe7i*p\x12\x81\xa4\
+v\x16E,\xf0\xd7\xe3\x1b\x87\xaaw+\xe7\xadV\x05\
+[@\x0c\xa8\x88\xf4\xfe?2\x819_s]>\xaf\
+\x048EV\x8a\x12\xe7\xfe\x08\xa4\xfb\x00\xd7\x01\xc8\xa1\
+9\xd8\x00\x1b\x1c\x14\xca\x96\xdfw<J\x100\x228\
+$\x14v\x0e\x112\xd5\x8d[\xab\x8a\x9d16zw\
+\xbd\x1fJ9\xc7\xfe\xebdV|%\xd5\xbc!\xd4\x00\
+\x84d\x90TEVE\x81\x0a\xa6\x7f7\x8f4\x13\xb0\
+\x1a'w\xbd\xa4\xf8B\x08=G\xef/A\xb3n2\
+\xd0\xdb\xfcl\xf3\xd3\xcdO\x9b\x009{|k\x1fp\
+|\x02\xde<\x10v\x9e\xb1\xf3\xf4\x9d\xa7\xaf\x89|\xf5\
+\xa4\x19\x93d\xce\xfa'S\x84\xe4\xccas\xa2\xb70\
+`~\xb8\xac\xef\xe1\xe4\xb0\xe9\xfd\x1e\x1d\xb6\xfe\xfd\xd2\
+\xd4\xc0\xacA\x99\x16\xa0\xa6\x83\x93p\x14\xb53\x03\xe0\
+r\x5cY\xe1\xda\x9e=l\xedE\xe4\x98\x86\x8f\x84\xad\
+*\xc5(\x97\x95\xe8\xa2\x98\x0b\xc4%\xc8)b\xe8\xbe\
+\x94X\x91\xfda\x9f\x9a\x07\xad2\xa82\xa7\xf7Z\xa2\
+m\x1d\xdb\x1f\x02~\xad'\x90}\x81\xbd\x00BO\xae\
+\x96\x18\x15\x0a\xebV\x80\x812\xaf\x92\x8e\x92\x8fz\xf7\
+\x94\xb0\xfd\xc7\x8f\xf6\x07T\x1d\x10zm\xa9\xafcP\
+I\xf8{q4\xe3y\xb2rl\xff\x1a\xc3\xa6\xf7\xb1\
+\xa6vx\xde\x80\x8e\x04\x94j\x7f\xfa\x5c\x02F@\xa5\
+^P\x81H\x02\x18\xf59\x88\xcc\xa8\xf0\x11\xe9\x11\x88\
+\x08\x88$<\x12u\x00\x00\x7f\x8dr\x0b\xb0\xcd\x83\xb5\
+z\xf1\xfc^?n\x95_\x14`\xaa\xe8\x02|1\x86\
+\xf4\xca;\xa0=\xcf\x04XK\xbcUK\x92\xfb\xec\xef\
+\x01\x8c\xf8=\x95yc\xe1R\x0cL\xafq\xd4Q\xe7\
+J*\x06\x0c\xff\xec\x15\xf0\xc2O\x1d\x1f\xb6\xf6>\x1a\
+OU\x81\x8d\xeb\xe3GQ\xb9\x05\xb2\xd4zMu0\
+\xc6H \x99\x8c\x83\xf2\xcb\x80ks\xa6S\xab\xa4*\
+\x8c\x9e\x1bJ:\xa03\xcf\xe5\xaad\x1b\xe7d\x9d\xd9\
+\xdf\xd6Y&\xb65\xbe.\x03\xd0\xe1\xef\xc2\xd6\xde\xdc\
+)\xe0\x9bl\x16\x0f\x9d\xac\x01@\xb2g\xbd\x9e\x93\x00\
+\xcdt\x12\xcfE`\x0c\xc8\x01\x98\xf2\xfb\xf6\xbb\xfd\xea\
+\x1c\x04L\xdbG\x80\xd1\xac\xb4T\xab\xcf1\x8b8\xdc\
+~S\x08\xce\x96\xfb8\xc6\xdf\x85\xb8\xd5K\x16-\x96\
+\x02\x08\xf9\x15\xfb3[\x0e\x9cw(\xe8%Z\xa5\x82\
+\x030\xc2\xcc@\x15V\x81#.\xf6\xd2e\x1e\xf8\xe4\
+\xa5\xe7\xb8\xa9\xf6\xad\x96$\xf1\x99\x0a\xa4\xc4\x0e\x03\xe7\
+\xf8,L\x00\x06\xf9;\xd7\xff\xe4\x04\x22\xb4\x9a\x11\xb3\
+rn:\x9f\x158\x5c7\xe6#\x11_\xe3\x22\x89v\
+ab\x8a\x17\x01\xee\xbdj\xbc\xc4M\x05\x8e\xa8*\x80\
+\xe7c\x0b\xd0<y\xeby\x1f\x94H&\x06\x8d\xeb\x10\
+7\x0a\xb8\xb5\xa0\xf4\x22\xd3\xff\xaf_\x98u\xc9\xec\x19\
+\xde\x12\xb6\xf6,\x170u\x97\x14k\xcb8p\xf8\xf3\
+\xb0\x95qRb\xa6G\xe5\xfc\xf2\xd7\xe4\xbe\x13`\xb9\
+\xbf\xa6\x97\xdc'\xac)\xcc<n\x01^\xea\xf3\x8aK\
+\x8d\xfb\xcb\xf7\xaf\xf8\xd7yj\xac\x1d\x80\xdf\xfe\xe9\x0b\
+l\xd6\x15\xbf\xe0\xfc\xf2j\x9du\x15\xcd\xa2\x1c\xabd\
+;\xbfS\xfd\xbd\xa6s\x10U\x93\xf0'\xd0>>7\
+\xac\x01\x22Q\xdd\xb3w\xbf\x18[\xce\x11q\x9c\x9et\
+\x1a\x0c/\x0ck*\xd4D\x8d1\x0c\x8e\x0ekZ\x05\
+\xb4xa\xe8`\x0e\x99\xf6\xe1>\xba/\x18X]\xef\
+wQ\xa8\xdd\x0f\x0c\x8c\x04\xa4\x15JJ\x13@\xbc\x03\
+8\x17\xf7\x02T\xec7\xcf\xc7\xcfY\x07D\xd7\x89/\
+b\x04\xa4\xa6\x07Q\xd6\x12[\xcc\xa93\xd5\xcb/n\
+\xfb\xcf\xb0\xe9\xb2\x1f\x13\xb6\xfa\xadb\x02\xa4\xbf\xd5\xba\
+\x0a\x086\xa5\x07\xb3[\x82Z\x9a$\x0a\xbe\xa6\x9a\xe5\
+\xf9P\x85\x9e\x14\xaf\x0c\xe1\xa8\xb8]\x98\x0as\x9e\xf8\
+\xa6\xb5\x05h\xfc\x5cXS\xf0tN}*\xaci-\
+\xba\xc6\xe6\x9a\xf3}p\xdf\x9c\x83\xc6\xc3j\x8ds}\
+\x185\xfdxb\x00\x94\xbfg\xaa\x0b\xcd\x09\xfb\x80f\
+\x0e\x11o\x80H\x02\xad\xe5g1cL\xe7\xb0~\x14\
+\x00\x9c_(\xfd\xf6\xafV\xfa\xd4^)\xa0!{\xfe\
+k\xdd\xf9\xbc\xf2\x94\x04\x04j|4\xc6\x86<S\xbc\
+\xe3\xfd\xf8\x7f\x1a\x12\xa9\x81\x82\x01\xb3wFb\xee\x9f\
+\x14\x84\x17d\xef\xc5s\xd7\x1b:S\x01\xbf\xb7\x8e\x07\
+*u\xef\xa4\xfc\x8d\xcf\x0c[)\xc3\x12\x9a\x0a\xe4P\
+l\xae\x90=\x83\x02{\x08#\xcf(\x90\xb4\xf1$J\
+z\xcf%<~\x8eC\xeb\x01\x00\x1b\xf9|\xd9\x1b\xfb\
+\xd4\x14\x11\xca\x83f\x0e\xb0\xde\x9f\xd4\xd4;\xa6c\xb9\
+bR\x7f\xdf\xd3$\xd0\x0b|\xb0\xdexS\x04\x5c7\
+m\x04\xa2,\xdf\x99\xf5\x81W$\x15\x90\x22\xf0\x16\xe8\
+\x02\x1c\x1c\xd0\x10@\x89o<\xbeK%\xb0\xf0\xd9\x86\
+\xe2\x15w\xf3\xb2M\x00\xcd\x81s\xd8\x0e\x5c\x0f\xbe\xbd\
+\x9f\xdfl\xfe\x1fP`a\xb9\xdfq7\x7f\x9c\x07\xe8\
+\x99\x9bJ\x8f\x04\xca\x01\xeb~\xb8\xdf6\xe0\x19\xc3\x1a\
+\x0a\xa7^\xd7\xfb\x855\x07\x87\xe7\x83\xf2)\xf1\xee\xd4\
+\xbac\xd8\xd6<n\xebt\x9b\x036\x07\xcc\xbf\xbf\x1c\
+\xf8I\xb1\xaf\xde\xf8\xa3\x17\x07\xb1\xe7\xf69^\x84\x1a\
+-u}cE \xa8D\xf7\x5c\xc7\x99\xf3>f/\
+c\x1dd)z\xb7\x9f\x98\x0bj\x1d\xb5\xd3D&g\
+\xa6\xccI\xeb\xe7\x18n\x106}\xbccw_\xb3\xfb\
+\x9af\x1cT\x1eH\xc4D8\x8e\xcd\x83s\xderV\
+\xd6\x86C\xc3\xa6\xd7\xef\x87M\xff~tXC\x89$\
+\xa2g\x9c\x9e^X\x09\x1d\x15Uc:s\xbc\xd8\xf8\
+\x9e\xb0y\xec\xe7d\xd3\xeb\xc7\x96\xb9\xba\xdb\x9b\x87\xad\
+\xa2\x82\xa5\x1d \xf0\xd3c\x9b\x81\xc6\xcc\x18\xbaMS\
+\xc9\xc9\xca\x0fj\xde\xe6\xcba\xeb\xdf\xaf9\xb2\xe9\xf8\
+\xea\xa0\xec\x0e\xc2\xea1\x14\x10H\x0c\xf48AH9\
+j\x01\xa6\x84.+wU\x01\x074q\x84*\x09D\
+\xcf\xb4\x028`%Z\x00#\x95=\x8c\x85\x9e\xf2\xaf\
+r\xaeG\xdd~\xe2'$\xe4z\xc3\x00\xae\xee\xab\xbf\
+\xaf\xa7\x9a\xff\x91\xe8Kp\xf4\x1a\xab\xe8&\xf2\x5c\x00\
+\x0a\xd1\xa7\x04\x22P\x93K\xdb \x03\xca\xcd'\xc3\xd6\
+V\x11\x07mQ?%\xdaZ\x99\xf8\xb1\x1e`\x04,\
+\x0a\xa0\x00\xb4\x19\xc0\x18\x13[\xfe\x1d\xf0\xd1\xfb\x7f\xfe\
+\x0a \xc9?\x0a\xdc\x04^\xee\x83\xe7\xa9\x15C\xe5^\
+Bc\x9e\xba\xfb\xc9\x1fyn\x0a\x83z\xaa\xb3bR\
+\xeb\x10\x03\xc3\xe7\x91\xa0c\xd4$U\x96\x18\x5c\x8d3\
+\x920\xbbN\x1a\x0a\x9e/\x06\x1c\x7fb=\xfaRa\
+\xe3\xd7}\x0e\xfe\x96?\x97\xf8f\xe5\xb8\xc4I\xdf\x1d\
+\xb62\x85J\xb5Y \xe4\x1c\x02dI\xa0\xac\xf3L\
+\x88\x0bPp}\xe6M\xa7\xaa}\xad7\xe3(\xf3\xbe\
+\xd7\x5c\xf6\xac@[W\xc3k\xc2V \xa7\x02Z\x1a\
+\x0fy\xdd\xdb3\x87\xa5\x1a\xf8\xa3\xd7\x9e\xcf:\x17\xf9\
+\xb7\x1c\xbbW\x89\x84\xf5\xf6\xe4E\x93\xa5\x983*\xfe\
+\x189z9\x01:'f\xe2\xea<\xb0\xae\xc4\x15\x18\
+&Gn\x1e:O\x05x\xe3\xf6Ms\x85\xcf\xf3K\
+@\xbf\xfc\x22&\xc7\xef\x865\x7f\x8f\xc8)\xa6\x86\x80\
+\xd29\xa0B\xf3\xaae>\xf8f\xefr\xdem\xae\x98\
+\xc0\xe1or\x9f\x99: \x8ep\x1e\x01\x1eO\xedD\
+\xdb<_L\x18\x81\xe9u\xf2s\x0a\xa01`$(\
+\xb4\x0e\xacg\xa2z\xfc\xac\xca/?*a\xe3\x17\x92\
+)\xb6_\x85\x8c\xbf4\x05!\xc7=\x0a\xc47\xaf\xdd\
+\x1c\xbb9v\x06*\x16\x7f\xc3\xff\xd8\x87\xfc\x03M\x04\
+@\x96V\x1c\x01\xf7\xff\xeb\x17\x7f\x07\xb0\xcd\xf5A\xab\
+\xa1\x18\x12\x18\x15\xe7N\x8d\x90?\x08\x9b\xcf\xef\x05P\
+\x02la,\xe4\xfa\xda\x1c\xbc0_v.\x1c6\xed\
+\x93\x83\xc2\xa6\xd7\x8b\x875\xad\x8c*\x8b9\x15\xa3\x9e\
+w2\x0a\xb4|TEP!\xcc\xbaK\xd1\xc4\xa24\
+\x1f\xb3\x8c)\xae\x0a\xb2\x82\x94\xf5.n\x94x\x02N\
+|\xdf\xf9\xf3z\xe5\x87\x00\x98YH(M\x11@7\
+\xe0VE=)\xf6\xe3\xab\xc3\x1a\xff\xed:\xbc:\x1f\
+P\xfd\xb3r_cR\x01H\x12z\xe7P\xb6$W\
+k@\x9e\xbb\xfc\x89V\x93\x02dMy\xd1\xfaa_\
+\xf9\xdc\x12;\xfe'\x9f\x7fM\x01\x10\xffi\x85\xc88\
+a\xf3\xe7a\x8d\xb6Q\xfa\xff\x1a\xc7\xdd\xf9\x8f*D\
+\xd9\xcf\xfdsM\xe6_\xf9MS\x03\x8c\xf7\xc4T\x04\
+0\x8a\xc7\x9c\xcby\x8e\x98\x02`\x9d\x0dG\x87\xad\xfe\
+\xa8\x12\xf5\x93\x97J\xbe\x96\x83*<e|`\x0c-\
+\xc0\xb3\xd4\xf2\xb5\x22\x10\xb1\xc3\x185\xbd\x86\xe8\xf4\x19\
+\x96q\xf3\x01w\x06\xe09>$l-<\x95\xf8r\
+\x16t\xb6g\x0c\x9b\x0bUg\xdb6S\xa2\x8a9@\
+C\xe6\xa1a\xd3\xebG\x16q\xef\x1a\x0fI\x1cT\xfe\
+\xa1\xa5\xce\xfd\x96\xa0k\x01\x01\xf4\xcb+\xc5\xa1\xe2\x94\
+\x13\x128P\x00\x90\x9fe\xe1\xabZ\x80; \xa9\xe2\
+0\xfePk\x02-\x14\x9a\x01Z9\x8d\xc5&\x1eO\
+\xa4\x1a\xf3/[R\x14@\xabU\x9dx\xb0\x82\x1c\xbf\
+h\x1f\x12E\xcf\xd6\xbe\xbd\xe3\xe9\xc3R\x84\xe5\xd8\xa4\
+\xea\x85\xe3?b\xb6u\x8e\xaa\x0a\x8d\xde\x17\xe3\x11\xb2\
+\x15\x00\xc2T\x01C\xf4|<\xb2\xa1\xd4q,*\x86\
+.\xa8\xedY\xff\xfeJ\x15\xaf\x03\x05Bf\xc3\xd8\xa8\
+^\x05n\x12R\xef\xf7\xd3t\xec\xa8\x18\x0e4\xc8k\
+V\x1agD\xfb\x1e\xcd\xf5\x08\xe0\x05\xe0\xa8<(\x17\
+*\xe8\xd4\x99\x89\x8f\xc4\xe3\x19\x9a\x83\x0a\x959\xc2\x88\
+kd\xc5\xe6\x22\x8d\xd8V\x884\x1d\xf2[\xc6u\xc5\
+\xbb\xfe\xa8\xe9\xe1W\xd9\x14\x08r\x90\x02E\x81\xb9\xcf\
+\xed@\xe3hN\x99\xc9y\xfb\x8f\xeb\x13p:\xf8%\
+\xf8\xe1\xe6\xae\xd5\xfc]\xef\x9b-\x01TIK\x14\x8a\
+\x88O\x22K\xd5\xf3k\xe3\xa8\x9c\xe8\xb1\xf4\xa5\xc5\x80\
+\xc3\x95\xb8\x1d\xbfT\x98\x86\x9f\x85M\xdf\x1f\x9b\x08\x99\
+\x04\xcfX\x0c\x95\xdb\xd7eK\xca\x87\xf3\xc0\xc9\xcaa\
+\x1d\xdcT\xac\x05\xec\x9f\xc9\x0a\xd1\x11\x0b\x85h{\xe1\
+\xb0F\x85\x97\xa8\xca\xcf\xb2\xe2-\x90t\x00J\x04\x05\
+^\xfe^R\xf6\xa9`S\xbf-\xe0\x8a8\x94D\xf6\
+\x9b\xdb\x13\xb7'\xce\xea\xa9W\x1b\xaf\xb6Vv\x8az\
+\xd8U\x1eU\xb2\x88\xf4\x05?af(d\xc5ix\
+|XS\xa1K\xe4t{\xa6\xb05\xe0B)\x1c_\
+\x15\xb6\x8e\x85\xdayi\xd8:\x8e\xd0\xbc`\x01VU\
+\x98!\xa1I\xd1%\xca\x89IP\x81a\x02U*\x83\
+%V\x97\xa2bu_\xb2\x12T\x14@\xeb\x13\x80(\
+!TIv\x10\x02\xda\xfc\xbf@\xd7>q\x1d\x12A\
+\x897\xf1?c\xd0Pvi\x1a$E\xb6z\x10U\
+v$\xc8\x00\x09\xc0\x97\x1e`\x80\x92\xcf\xa5\xc2\xa8b\
+\x89!\xa3\x05F\x82\xcb\xe1\xabXK\x1c\xff0\xc5\xb4\
+\xf2\x80\xaa\x03W\xc0\xa5gN%\x0euMe\x00%\
+SkQ\x1e\xd4\xd5\xd3.a4N\x08p\x94\x95\xe7\
+JX\x05f\x0e\xc0n\xecX\xac\xe2m;\x1e\x95\x9f\
+\x86\xb8\xfb\xe2\xb7T.\xf9\xaf\xdc\xd7\xa5I\xc2_\x08\
+\xd0\xb4N\xa9\x0c\xb8\x7f\xf6\xb5\x8a\xbaD\xc6}\xa0\x06\
+\xef>Kh\xf9\x0d\xe2n\xce5\x95\xa1nj\xc0~\
+j\xcd\x9e\x97\x00\xd8}A-Ty\xa6\xd2\x9e\xfb\xaf\
+*G>\x9f\xeb\x01\x18XOz\xc7\xf5\x8e\x0a\xcc\xf9\
+\x1d\xeb4\xf7\xd1\xf0\x92\xb05Q\xabq_\x02\x1e\xad\
+5\xd6\x89s\xd6\xf8\xa0\x0cX\xab2\x8dy\xf0\xe9\xb0\
+F]:\x01\xce\xaa\xa8g\xc2]\x14\xd2l\xc1*\x80\
+\xc0\xe7L\xe0}\xf8\xdd\xb0\xe6<\xf6\x5c\x00\xbe\xa9\x8d\
+@\x83\xa4\xce\x1b\x14N\x81\x92\xeb\xf9EXSqV\
+\xf1\xcc\x16\xa9\x9a\xa7,@\xa3Z-\xb1O\x80\xaa\x18\
+G\x02B-u\x9e\x0b\x06\x03`\xd2\xbeN\x0a*\xf1\
+\xba\x02z\xf8G\xe2c\xc7-c\xcb\x5c\xef\x0c\xb3\xff\
+\xb8\x89#\x92\x89\x13\xc4\xf8\xa0\xc6\x175\xf6\x1a9E\
+ \x01\xf4([\xcc\xe2\xa8\x1f\xc9\x16F\x89\x03\xbf\xa7\
+\xd5I\xfc\xd13\x01\xb3el\xf3\xf6\x04\xacT\xe41\
+\xca\xb4\x12\x10Y&\xbe\x95\xcc\x98\xd20\x12wa\x5c\
+`\xf6\x88C\xeco\x7f\xb7\x137$2V=\xc1\xf6\
+\xf5;\x17\x11\xd4\x02>\x88\xf7\x02\x1e\xec\xcb|\xce\xa5\
+.\x9e\x89x\xf9\x17\x0c\x01\x00\xe3\xb6J9\xbf\x9d\xf2\
+\x9f\xfej\xb8M\xd8\xf4\xfa\xb8\xb0\x99\x018Y\xf3\xb9\
+\x15^\xb4\x06Y/m\x0b\xe5\x9eF3\xe8\x05\xd9b\
+\xa7\xf5G\xdc\xfc\xd1l\xfd\xbcL\x02\x22\x12\x02\x0c\xa1\
+?[\xc62\xd6>\x16\xd0\xbb\x8f\x0a\x10\xc6p\xff\x7f\
+t\xdd\x0b\xfcuk56\xfe\xbd\xe6\xef\xe9\xa4t\x8e\
+$\xa4\x13JE\xe8,\x89r\x96\x88\xa2TN\xa5\x10\
+r(\xe7C:I\x84W\x8a\x7fo\xc8\xcb\x96\x0a\x11\
+\xca\x9b\x94$\x85\x9c\xa2\xa4\x92v\x07\x1d$[\xda\xd5\
+\xdek\xfd\xe7\x98\xf3\xfa\x8ey\x9b\xdb\xfb\x1b\x9fO\xab\
+\xe7\xd9\xbfg\xad\xb9\xe6\xbc\xefq\x8fq\x8dk\x5cC\
++\xa7\x04\x84\xd8`\x12\xac>\x1f%&\xc6u;_\
+\xf7c\x98%\x8e\xfc\x1e \x09\xe0\x15\x7f\xe1\x5c\xe9\x04\
+X\xc2\x12\x80\x86\x88iS\xbf%8\x98~\xceS\xe7\
+\xac\xf8\xcas\xdc\x8d#\xbc\x14#V\xfc\xcaO\x12g\
+\xbbK\xd9\x10\xe7\xfb3M\x8f0\xbc\xfa\xf3\xfc{y\
+\x04\xcd\x07-%\xe2B\xa2t\xce\x89\x00\x85\xa7\x07\x95\
+\x0d~Z|\xea\xfe\xf1\xd7\x18H\x0a\x86\xbe\x9fsS\
+\xe2\xef\xfc\xb4n\xad/\xbf\xef\xbcI\x9e%\xf1n\x7f\
+I\xdc<S\xd9\xb4\x84\xf68\xc0\xbb\x97m-\x14\xd3\
+\xd7\x96m\xad']\x91\x0e\x10xv\xfd\xb2\xa1\x87\xfe\
+\xcfO/\xaf\x16\xd7\xe3C\xcb\xb6\xe7e\x8caS\xcd\
+\xc3\xd8\xc4\x10hF*f\x5c\x98\x8d\xb4\xae\xf8\xf7\x9e\
+\xaeq\xad\xb2AD\xfe\xeee[\xab\xe9\xf1\xaf\xca\x86\
+\x049\x9a\x1d\xd3K\xca6m\xaf\x06t1\x09\xf8\x8d\
+0Y\xb5\xec\xf69-\xbe!\xa6J+\xc6>\xc6(\
+0\x15!\xfe\xbd\xd5\xf7\xc5\xfdZt\xe5\xaf\xf6\x9f\xca\
+\xbe}%\x0e\x01\x98)4k\xcd\x7f\xca\x0a\x0c7P\
+\x08XI>\xd7\x22\xcb\xfc\xd1~\xdc\xbb\xfdc\xaa\xc2\
+e\xcb6 \xfd\x1c\xf5\xefE$\xefQ\xc3\x17\x8b\xfa\
+\xe0\xf1\xa2\xb28\xfc\x1bm\xa2+\xc7/\x9d\xed\x1e\x09\
+D^\xb5\xcd\xff&\x92\xb4\x10\x1e\x9e<\xf4D\xfa\x11\
+\xb8\x0b\x88\xf6T&\x81\xa3\x00Q\xe0\xb5\x9f7\xed\x0b\
+\xef\xc7\xfc\xa8\x90d\x03\x1d\x9eTj\x04[\x0f\xe9\xe9\
+5\xb3\xfd\xe3\x90\x80z\xa0E\xe8xq\xbe\xff\xeb\x07\
+\x95\xc7\x04\xd2\x8dDV]\xf9Qq\xbc\xaf\xcf\xfb\xfc\
+\xdd\x1088\x08\xeb~UB{\xbf\xd9\xee\x9f\x80\xe7\
+\x0e\x09\xfcn?h\x0fT\xc2\xf79\xdb\xfd]\x8e\xf1\
+\x1b\xc6q\xdf`\xa0\xbcV\xef\xf9\xf5\x93 \xdcz8\
+\x18\xcb=\x5cn\x00$\x1c\xe0*W%\xc2\xf4AY\
+X\xaf\x19\x02\x04\x0b\x8d\xe3\xcf\xbc\xcav@\xf9\x1e\x90\
+\xb9N\xe8\xa9\xfb\xaa\xdc\x07\xc0\xe8\x8a\xab\x00\x9bC3\
+/\xf4\x17\x0f\xbft\xf8\xa5\xa1\x12xQ\x0e\xea\xd7\x04\
+)\xfb\xec\x15\x80\x98~|\xfa\x89i^\xe0\xd3\x9d\xcb\
+\x96\x80a\x1d\xbb\xa7\x97\xfe\x99e\xdb\x81szo6\
+\x00\xc7\x98\xc0Ho\x8d\x83\xa3[\x02$\x82\x12\xd2\xef\
+]\x81\x82\xd3\xbf\xads2O7-[\xa85kB\
+\x0b\xb8\x00\xd4\xf8\x918\xfd\xdfU}\x19\x03\x02\x12>\
+}s\xd9R\xd9X\xbf7\xcaX\xae\x0fU\xb6)\x94\
+?\xbbX\x8f\xdbl\x11\xbf\xbc\xdf\xe1\x5c\xd9\x16\xf0N\
+7.\x1b\xa8]/[\x13\xc2\xf9\xb7\x97u\xde\xbd\x8b\
+*\x00\xb7>\xdd\xaa\xd4\x95\x05\x98\x12\xd3\xb3_)\x9b\
+\xdf\xe7\xd9e\xdb\x98\x17c|\x1a\x00\xf8\x87\xb2-1\
+j\xca\xef}\xca\x86\xcaB\x90\xf1\x0e\xe4\xb5$\x10\xd9\
+\xd3\xea\x13\x04\xb2\xc5U\x8cwzT\xd9@\x8d\xdf\xf7\
+\xe4\xf3\x13\x9e\xf7n\xfaD\xb7(h\xddQ\xf9\xf5\xdf\
+\xcd\xb7V\xf1#\xba\x04(\x00\x04\xf2#D\xf2\x88\x8f\
+q\xa8\xfc\x91\x8a\x87D\x1f\x00!!u\x9d^\xfdw\
+\xe2,>?\xfb\xcd}i\xc0\xcbu\xa2`\x1b\xd3\x18\
+?\xabw\xb0ET\x89W\x09\xa0Q\x96\xd3\xab\xd8\x09\
+\xb4\x80\x91\xdf\x02|J$P\x83Q\xdc\x1d\x8c\x02&\
+\xda\x19z\xe6\xf7\x1a\x03\x80\x1c\xdf{\xaf\xd9\xc0\xbf\xbb\
+\xcf4\x15\xb6J\xdb\xfa\x1c\xdcG\x94R\xa2I\x02O\
+b>\xd6\x05@\x07UZ\xa5\x99\xe8\x99\xfb\xb9\x9f\x12\
+\xc3o\xbbN\x0c-\x89\xa5@\x8d?\x0e\xc5]B\xd3\
+\xe2|*\x9a\xffU6\x04\xf2\x9e\xbb\xfb\xa7\x82\x84B\
+\xae\xa5\xcc\xf7\xf7yZ<2\x16\x0a\xe0t\xf8@\xd9\
+\xbco\xefP6\x04b\xa94\xb5hS\xe69\x9f\x1e\
+X6\xccw\xa6\x92,\xc0P\xe9\x95@\xeb\xa97\xfe\
+.\x80\x80\xd6\x0b\x9a#\x98\x05\xd3'\x95-=\x99\xeb\
+\xbc\xf9\xa8/\xf7\xf9\x1c\xe6PW\xf0\x01qz\xc9\xa9\
+\xd3_\xaelcp9'\x8f/)\x1b\xa8\xc1\xa8\xd9\
+\xd4\xfc1\x22\x88\x92Z\xc7\x00\x1b\xbd\xd9\xfe\x9d^k\
+\x09\x92J\xb6u,.\x90\x18\xa3~\xff\xc1\x9a\x90u\
+\x05\x1bU4\x15\xa9\x16S\xb4\x1e$8\x00\xf5\xeb'\
+\xfe\xe1GUn|\xae\xf3\xf3\xcfR\xd1K+OS\
+\xe2]\x8fD\x08\x80\x068R\xf1\x11gI \x00\x1a\
+\x11\xe1;\xef\x19\xf1\xd7{\xcd\x0e\xfbHBC\xb3\x01\
+\xb0#n\x13\x0f\xd0v\x90\xf0\xe7<\x03\x08uK\xcb\
+\xbe\xa7\x1c\xe0o<X\x80\xddf\xf6\xa5\x95\xb2\x13B\
+\xd7/\xae\x0b0\xaf\xc7y\xfa\xac\xb2y\x9d<\xae\xec\
+\xd2\xda/M\xa9\xb7\x1e\x01\xca(\xd1\xe9\x89\x9e\x9eQ\
+604\xcc=W\x11\xe4\xaf\xef\x14F\x17j\xfc\xef\
+\x84y\xf3C\xeb~o\xea:\xe6_\x18`\xd3\xcd\xcb\
+\xe6\xeb\xfc\x8d\xb2-\xb1\xa1-\xd4\x8c\x1d\x00\x0e?\x11\
+\x00\xaa5)0k\xf5\x84K8=o\x09\x85\xeb\x16\
+W\xabl\x8b\x03h;\x00~1\xf4L\x15Q!\x0d\
+\x80\xd8\x85\x0e\xd2\x0a\xa6\x86`\xd8\xa2B\xd3j\xf1\x1c\
+TX%(9\xb7\xbb\xa7;\xf1O\xafC\xeb\xd2y\
+\x0bx\x8a?\xee\xf8\x5ck\xa0<!\xdf\x838s?\
+G\x15xq\x98\x0a\xadB\x99JuZ\x09:aS\
+\x08\xa4\x1d\xe6\x8b[\x97\xee\xb3}\xbe\xd7\x22s]\xce\
+\x17\xe7\x0e\xa6\x8e\xef\xc5\xdf\xff?\xc6mw\x81\x8d\x98\
+3&\x02 \xc4\xfe\x02le\x1f\x1f_W\xb6i\xb4\
+4U<\xeb\xe6\x92w\x94-\x0c\xee\x0f,\x0c\xee\x14\
+\x10Z\x046-\x80Z\xba\x01\xa9\xd3\xcf\x94m-U\
+\xdd\xa3\x1fm\x85f\xb6&q\x06\xf8`\xd6t\x85^\
+\x0f~\x80\xdd\x1e\x03i|)\x11\xc60\x8a\x8e\xd7(\
+\xdb\xfc\xde\xf13\xca\xe6\xd7\xb7\x96m\xe7\xae)>\xd3\
+\x8f\x96\xcd\xff\xfd\x93\xca6u\xfc\x9e:\x11&+\xa0\
+J\xebe\xc7\xe5Zv\xb4\xe2x\x1e\x807\xeb\x04\x03\
+\x14@D\xf3\x05\xf3NA\x0a\xf0/\x0f\xc9\xbe\xe8\xf5\
+J#\xc1\xf9\x99s\xb2\xf3O\xc0S\xc6\x9b6\xf0\xa8\
+5K\xdc\x92<\xb9\xcf\x05\xcc.q\x5c\xe2\xa4s\xcb\
+\xd7\x1c*\xde=\xff;\x8e\xeex~\xd96\x9e\xcb\x18\
+\x8d\xe5F\xfd\xdcP\xb1\xacy\xbcO\x1f\x02,\x07\x9a\
+\x0a\x12\xf5\x7f\x8e\xcd\x01\x0bys\xe0\xd8\xf8\x90d\x1b\
+\xc4\xfb\xd9P\xc6\xae\xfcG\xc6\x85\xf8\xc2\x1f\x1d\xc0\xc1\
+A%\xd1\x0b\x85z!\x9e\xbf \x88\xd6-7\xaar\
+k\x11d\xbc\x87\xf9\xb6\x0b\x85\xe8a\x03\x12[\xc4\xc7\
+\xfb&\xc0\xfc\x9a \xa9z\xedn;,\x1c\x14\x16S\
+\x0eT\xe6\xae\xb3\xa8\x12l\x0e\xd9\x03\xa9c\xed\x18\x07\
+q\xc3\x81\x22\xac\xa7~\x0c\x8c\xc7\xfbXi\xc8;\x12\
+\xc0\xfc\xc7nL\xe1\x14\x95\xd2\xdf\x1d\x10\xc5\xbd\x1a\xae\
+^_\xe3\x18i%8\x18\xf6\xaa\xa6\x98\x02\xc47\xa8\
+\xc9C\xb2\xdf\x9d^\xba\x1fX+\xc9\xe7=r\xdd\xc0\
+\x87\x17\xac\xaa\xf9\x8d<;\x98\x05\x02\xcfK\x0fj\x02\
+\x00\xea\xc8\xd3\xa3\xcb\x86\x04\xde\x01\x0e\xf0\x08Eh\x91\
+\x5c\xbc\xe6@\x11sP;P$,7\xcb8)\x09\
+\xd7\x95\xd7\x96\x95\xd3\xa3O\x8f9=f\x11;Y\xd5\
+\xa2\x1f\x1ef\xc3\xe3\xd7\x8dW0\xce\x02\xe4Xg\x09\
+\x88\xcc\x91U\x89\xd4;>\xbd\xbfl~\xbdr\xd9\x86\
+\x14\xb7:'\x8a\x0e\x95\xe0$\x00\xd3w\x97\xcd\xaf\x0f\
+/\x1bz\xf1C\xc9\x9f^\x5c6?\xde\xef+\xdb\xde\
+\x7fv\xdf\x17\x1f.\x1e4\x0bP\xffC};\xbc\xaf\
+l\xfe\xfd\xbb\x97m\x07z\x8f\x7f\xa1\x02\x1c\x87\xae\xe7\
+\x1fs\x86\x08W\x8b\x13\xa5\xd7\xcb}8\xfeN\xd9\xe6\
+`!\xcd\x02p\xaa\xf6\x0b\xbe1\x1f\xa0\xa7\xaf)\x1b\
+z\xb7\xf8\x01\x89/\x87*!\xd1\x0b\x0d\x08Pi\x97\
+`\x0a|$\x8e\x80\x01\xe2{\xa6\x05p\xc0\x02\x13\x15\
+4\x9a\x01I\x0c\xf4&\x1bC\xd7\xa2B\x0ev\x81\x89\
+\x83\xda\x14\x0a\x096?\xe8: \xbe\x02g\xd7\xa5\x82\
+\x0d\x80 f\xe7\xfb\xa9xB\xce\xdd\xb7\x88O\xb5J\
+85\x5c\xe3\x7f\xf4rc\x22\xa9\x80\x06\xa8\xe9\xcao\
+\xae\xbbU\xdc\xa9\xe3'\xc06\xae\xae\xc5-\xb3\x1e\x9a\
+j)\x00\xe6\xa7\xf7\xe2\x7f\xfc?\x86\xd3^\x9c\xcf\x7f\
+\x07\xd0\xb8\x1f\x12&\xfb\x9d&\x80\xc0\x89\xfa\xfd3\xca\
+\x06@T@f\x1c\x9cV\x04\x80\x86V\x0c\xd4\xf7\xdd\
+XD\x95\xc9V7\x07l\x01L\xad7\xd7o\x7f\xb8\
+n\xea\xc3\xa9\x146\x93C\x00\xcc\xef\x00\xaa\xd2\xba\xd1\
+\x14Z\x01\xa6\x00\x95\x1a\xbc}\x82Rh\xce\xb1\xb9\xed\
+\xb9\x0f\xa7\xeb\x94m\x09F\xaf#\x09Cz\x97\xfb<\
+5F0s\x95{\x1d\x85\x01\xd8\x01`\xc6\xd8M\x9f\
+Y6T\x22\xec\xd3\x04\xf6\xd3\xdfL\x7f=\xfd\xf5\xfc\
+\xf9\xaf(\x1b*U_Z\xb6\xed'\x80\xe2\x1e@\xe9\
+qM\x80\x89\xdc\xb7\xf9}g\x1b\xc6\xc4%\x91\xe9V\
+\x96JL\x9e5\xcc{W\xb1K\x0bK\x8bob8\
+D\xc4\xafE\xbc\x00\xcb\xfc\xb2\x80\x9ch\xdfSB\xf5\
+V\xe9\x89H^S\xadUf\x89\xc8\xa9@\x09\xc8\x00\
+\x86\xd9\xdf=\xde\xd2\xbe\x0f\xe3\xa5{mi\xbd\x82t\
+C\x00\x00 \x00IDAT\x9d(\xa0`N\x18S\
+\xe9\xdf\x03\xd40<v\x09V\xc7\x19\x80\xfa\x17\x1e^\
+tx\xd1\x02\xd0\xae\xe7\xa4J\x95\xb8\x85?\x03\xcc\xd1\
+H\x00t\xee\xfd\xac}'>\xf0\xef\xc5s\xae\xc7\x14\
+\x84\x88\x89a\xc4M\xb7)\x1b\x98*\xf6\xbdJ\x19\x7f\
+\xc1\x7f\xd8\xaf\xa9\xe8M\xff2\xbdq\x9a\xf7\xc3\xd9\xad\
+\xcb\xb6\x02E\x8f-\x94\xf0x\xee\xe6\x90\xa7\x07\xbc\xcf\
+iSt\xb4\xc0H,\x03\x80\xd9o\xed\x1f\x01M\xee\
+\x0f\xa6X\xd4\xe8\x9ba\x06@$\x86\xac\xa2\xa8w>\
+\x95\xda~\xee\xfc\x8b\xf8\xe8\xb2\x89\xf3\xc4a\xfe\xde\xba\
+\x91P\xf2O\xe2\xbf\xfd\xd4\x1d\x15Ebxz\x9e\x01\
+\x08\xb4\x18hw`\xf0\xa5b\xedz{\xec\xb2\xc4\xc8\
+40\xc0\x14U|j\xf0\xd9\xafM\xa5\xe7\x0f\x8c\xf1\
+\xd4\x82\x15fM\x8b\xdd\x02|\xf8A\x22g\xa6\x88\x10\
+\xd1\x04\xf0K\xe4\xe5\x15>G\xe2/1\xc3\x08\xca9\
+\xb2\x14\x04_3\x9c+\x80\x14\x95[\x09\xb9|D\xef\
+7\x06\x81J\xb7\xf3Q\xe1k\xaf\xbd\xb5\xab,\xf7\xbe\
+\x15G\x00\xc6\x00\xf1\xfc\x85\xf3\xd1\xf5\x06\xd8\xed\xc2\xc8\
+_\x94\x0d\xc0X\xc6\xbf6\xe5<\xd7s\xfc\xf9\xb2\xad\
+e\x94\x18r\xfb\xdf\xec\xd7\xd3\x9f\xa5b\xbf\x8f\xc7\x1f\
+\xbd\x9bre\xca\x8a\xc2\x8d\xe9\x22\xbf\xb8\xb6\xf2h\x99\
+\xebVQ\xbd\xf7\xc4\x98Q\xd9\x892b\x16\x07x\xd6\
+\xb2\xd2\xe2\x96\x98\xd39\x1f\xa6\xcb\x95m\x80\xfb\xf1\xdd\
+e\xf3\xebe\xcb6\xa0\x0dS\x0b \xd0\xf9\x9dV\x86\
+0\x17\x1aH\x96\xc7\x00T<\xdf\xdc\xf7\xde_\x98`\
+Zw\xaco\xeb\x14\xd0\x96s\xa2\xd7U\xa6 \xf4T\
+\x89\x00\x05\xdd:\x11\x0d\x00b\xa3\xcd\xd8\xfb\xd4\xb2\xf9\
+\xcf\xdf\xbeNyiF\xa0\xf3)\xda\x18\x87O-\x1b\
+\x00\xe6\x14\xf2\x9aA\x80!\xf4\x1be\xb5\xcd\xaa\x93\xe6\
+\xbb\x87\xb1G\xa1v\x1f^[6Pi\xa2Z\xba$\
+\x18\xdf6\xa8\xfc\xff\xcd:\x97\xfc\xf0\xb6\xd9\xde\xbe%\
+*\x1d\xd0\x10{\xb9GzT%\x9e\x0eX\x0e\xcd\x81\
+b\x83\xec\xc7K\xed)2\x80\x00\x89\xc3&F\xb5\xfe\
+\xbd\x03\xcc\xc1D\x9c\xac\xa8Q?;\xf4\x1c&\xa0n\
+\x0ae\xa8?-^W\xb8\xde\xaf\x0e\x81\xff\x07\x16\xd9\
+\xbam\x83\xd7r\x18\xe7c;\xb08\xf2\x7fZ\xe4\xed\
+V\x07~a\x02\xc0\x0f\xcaA\xf7\xa1C\xc5\xbf\xc2\x84\
+\x9b\x0d\xf7\x87C@\xe5\x10pr\x8c{5\xea\xfd}\
+\xf1\xef\xbc\xba\xberc\xd7\x18\xa8\xaa\xe6\x9c\xabt\xa3\
+J%P\xee\xc0I\x05+\x8e\xd6\x18:\xc8\xd2\xbcj\
+.w\xb8\xdc\xb6\x81\x0fw\x0c5\xdaF\xb1\xa1P\xc9\
+\xcc\xd5\xd4\xabN\xac.\x95\xadNd3\x8eozQ\
+\x12\xe1T\xdc\x9b\x82|\xff\xb2\x8dip\xfa_I\x10\
+\x13x\xf4X\x98PI\xe7\xe4`\x9dS\x1dQJc\
+\xf2Z\x14$\x07\xc7\xf1Ye\xcbs\x5c\x9f\x879\xef\
+q\x88gw*\x1b\xc6|\xe4\xba\xa6\x0b\xca\x06\x06\x00\
+u\xee\x88\xc9\x11\xdf@y\x9e\x9eV6 \xfb\xa9\x94\
+\x9d\xdd\xabl\xfe\xef?U\xb6\x05\xc04\x0e\xa6\xdb\x95\
+\xcd\xbf\xf7\x95e[\x02\xd0=\xa6\xc6\x91\xdc\xbbl\xe8\
+mN\xc22=\xb5l~\xfd\x84UuY%\x98h\
+L\x03)\x1c\x97@\xc1\x1c\xe6\x17\x96\xcd\xf7\xe9\xd7\xca\
+\xe6\xf7\xf9\xbe\xb2\x0dq\xa6\xca\xda\x94\xc6\xb4Z\xf4|\
+u\x22@\xe6\xa9\x87\xe1\xd0\x88\xb6\xcf\x13\x18G\xe4\xa6\
++a\x02\x10\x15+\xc8;\xa6\x86\x00\xd4\xba\x95\xf0\x03\
+\xa0vS\x02P\xf4\x9a\x82\x9f\xf5\xd8\x80\x03q?\xfb\
+\x9eX\x99\x03A%\xd1>\x92h\xea}\x15\x08H\x04\
+U\xca\xf7*\xb3\x00\x828\xea\xae\xbcm\xf3\x8dW\xf1\
+\x9d\x88Gu\xc5L/\xbc\x84\x13\xf0\x92\xf1?]\xb1\
+5>Ne?\xfea\xbaj\xd9@\xd9\x948\xa5\xa5\
+\xa5\x13%\x01\xa1\x8a\x15\x11ITY\x81\xa8\xe7\xc2\xaf\
+S\x9dO\x22\xd9\xdf\x93\xbf\x92X$\xc1\xea\xc0\x99\x16\
+\x09\x0a\xb6\xdeo\x01\x01\x06\x82@X\x22\xe6:L\xcd\
+\xe0\xcfT\x9cUJ\xad\x07\x95N\xaa\xdeZ\xc6<w\
+\xd4c\xda\x01\xae\x93_\xa5\x05\xe1\x1cM\xe2\xdc\x14Q\
+\x80-?\xe8|\xc2T\x01\xf8\x06\xb1\xef\x00N@\x8b\
+\x22l\xac^\x02-\x22Z\xd4\xf1\x05v\xd3K\xcb6\
+\x8a\xe2\xf1\xaeeC\xe5\xc8\x14\x0c\x89\x05\x91\xa2\xf4\xa4\
+w/=\x7f\xaeR\xfb\xca\xb2\x01\xf8\xa1\x91!\xc0\xe0\
+_\xdeP6\x8cy\xc3D2\x05\xc4\xf7\xa1\x19\x10\xd5\
+\xe2N\x90\xc3\x9cju\xe9\x8c\xaf\xed\x00N\xc0\xadB\
+Z\x00\xccm3\x9e\xea\xc9\x9b*\xb8\x04\xa0[a0\
+\xe3\x88%Z\xe7\x80\xbf\x8c\xdd\xea\x84\xc2>|Q\x12\
+\xe7\xa8\xda\xb7\xa81\x15\xf3PZ;q'\x1ak\x8a\
+\x82q\xafzP\xb3n\x00l\xed\xf7\x00\x87a,\xa8\
+\x84\xb7\x06\x13\xa0B\x82\xb0c@\xb5\x1f\x14?Id\
+\xf8\x17\xf1\xc31\xeb\xf6\x1dy\x1fs\xbb3\x0e\xb4[\
+.0\x09\xf6@\xab\x0a\xa8\x1f\xfeX\xbc\xc5O\x02\xb4\
+T@\xdd\xff$\xc8\xa7\x9f(\x9b\xff\xfcM\xab\x06N\
+S\xd2]\xb78\xc7~\xf1\xbe\xf9\xde\x0dL}\xf6\xca\
+\x000\xf5\xa6\x01\x00\xf1g\x02\xeb\x9e\x1a\x92\xf8s)\
+\x5c\xfd\xfa\x0607E\x1d\xb5\x17\x10\x10\xcd\x8b\xa6\x9a\
+\x9b\xdb\x8d\x01\x11\xe0\xb1\xcf\xc5\x07\x97\x0d\xcc#\x94b\
+\xf1H\xe6\xdc\x0b\xf4O_T6\xc4_\x12\xf77\xa7\
+2M,\x0fs\xcbs\xa0q\x22>\x96\xc8\xeeE\xca\
+\x12\xf0\xf7T\x0a\x89\xb3\xca\xb5\xca\xffw\x97\x0d\x89\xb2\
+\xf5,^S\xa9\x0f\xf3\xaa\xa9\xd3\xda,L\x05\xa2\xd5\
+\x93\xfb\xc3\xef\xb4\xc6A\x98<Uv\xa9\xc2K3\xbc\
+\xf8oq0Q\xd90%\xda\xef8\xbf\xf8/\xf7W\
+b\x05H\xf7\xfb\x80P\x7f\x16\xef\xf9{\xe7\xb2\xfb\xea\
+s\xf9a\xf7\x15p,\xef\xc0Hs\x1e\xd2Z\xe0?\
+\xf6\xcc\x22\x7f\x96\xd8o\xfbq\x15\xcd\xa6\x9d\xa1%\xcc\
+\xf8?\xe3\x95=\xa7O/\x9b\xff\xfb\xe3\xcb\xb6V,\
+@L_\x8f\xd6J\x89i*\xd2\xdd*\xf0Oe\x9b\
+\x7f;\x5cce\x9a\x9d\xce/\xdbZ\xcd:\x9e\xff\xe5\
+\x00>\xfc\x01\xb1\xe1\xfd\xf8g\xc0 \xe0\x91\xc8-f\
+Z*\xe8\xcdd\x22J\x1d&\xb9\xc2\xb3\xf5}\xba}\
+\xd9\xa0q\xa0\x90\xf3\x9a0\x9b\xaf4\xa7\xc1W\x1a\x0a\
+\x1d\x80\xc2\x1f\x9e\xbd\xfb\x0f\x0f\xcc*\xd3I2\xc5\xa0\
+E\x8e\x89\xcc\xda\xcfZ}\x00\xe6\xf21\xebR%\xde\
+\xf4\x06\xfbH\x9e\x191\xca\xd6\xc62U\x05C\x1b \
+\xaf\xf0\x0c\x10\xc3\x08\xc0\x8c \x82\xba\x9fJ\xc4\xcf\xca\
+\x0b\x89G\xfeB\xd9\x10g\xa4P\xdb~L\xbc\x9a\xfd\
+\x7f\x8e\xfaw\xcfY\x0c5~y\xf0\xff\xb8-@\x94\
+w\xad\x01K\xb8\xf0\xb3I\xe0\xaf8TdBa\xee\
+\x9e8\x15\xa8\xb7v\x8f\xe8z\xe0\xfc{6B*\xb7\
+s\xf0\xb3:\xfe1\xb1\xbex\xa8X\x0b\x98\xf7\x89\xae\
+\xc4\x9f\x98\xde\xdb2\xe7\xfe\xa6\xa1>\x08\xc0\xbf\x22\x22\
+\x1d?X\xb69\xdc\xe3\xf7\xcdV\xd4\xc1\xcfY\xc7\xe4\
+,\x14\xc9\x9bd,\xd7/\x0e\x0b|lA\xf8\x8f\x81\
+Y\xa0r\xee\x80\xd2\xf3/!\x10\x00\xdb\xf0\x90@\xad\
+\x0c\xc4\x039\x5c@\xc1^%\xdb\xdf{\xf0\xae\x87#\
+2\x0f5\x0bl\xa90]/\x09\xd0u\x87\x84GE\
+B\xa0\xa1\xf7\xd3\x01'!\x97H\xa8\x9c\x01\x0c\xa8\xee\
+?m\xb1\x16\xbd\x99~\x7fz\xe6\xf4\xcc\xa1\x15 c\
+\xed\xce{\x5c\x02\x19\x08~\xbe\xbf\xf7?\x5cP\xb6!\
+pMiG\xa5\xbf~\xd9\xfc\xfa\x11eK\xe0\xb0\xf6\
+\x80kQx\xf0\x1a`\x1f\xbf\xbdl\xa3@\xb7\x0a\xbf\
+\x0d\xa7\x95\xc3\xbcY\xaa\xc5\x01\xb0T\xa0N\xdfU\xb6\
+U8Q\xcd\xb4\xca\x9c\xbd\xb1l\xdb\x88T\x80\xa7/\
+-\x9b\xff\xfb#\xcb\xb6\x9e\xd7>8\x01\x0b\xcb\xcf\xfc\
+\xf7O+\xdb6\xe2\xf19e[O\x90\xc4\xfc\xec\xf9\
+e\xf3\xeb'\x94\xcd\x7f\xffae\x1b\xf2>]\xa5l\
+\xe8\xa9\x14\x08Z7\xa1B\x03\x10\x1a\xe9\x17\xa0\x06p\
+\xe9D;\x8e\xbf\x1d\x9a\x04H\x00\x1f\x07\x8d\xba\xef \
+?^\xb1l~\xbf\xef,\x9b?\xef\xd7\xcb\x86@\xc9\
+z!\x16\xe9\xfe\x87A\x81\x0a\xdbc\x15!\xa0\xc4O\
+2\xae\xf0\xf4\xec\xb2\xa1re\x1f\x08\x18}o?Z\
+^\x04<\xa8Wz\xf2Un\xf5\x9a\xef\x81HT\xe5\
+j\xe5\xb9\xdf\x100\xe8\xa5\x04 P\xa5O\x0f \x7f\
+\xd2\xfe\xc7\xc1\xa1\xa2`\xdf:p\x04,\x12Y\xcfQ\
+\xa2\x10\x91\x9b\xf6+~\x04.*\x80*h\xc4^\x00\
+\x00\xc6\x1fJ\xd4\xcc\xf9\x06\xf0P\xd3G\xf9F\x1dC\
+eN\xa5\xab)r\x02u\x07\x8d^\xc9j%{\xf4\
+\x10\xc0\xb8/\xfc\x8dsF\x05K\xe5Q\xa0i\x9e=\
+\x80X\xa2\x11\xc4\xbb[b\x9c/Z\x07\xbc\xbf\xde\xfc\
+\xdc\xd7\xbeoZ\xbe\xf6b\x8a\x12#@\xa9y\xbc\x98\
+\x04D\x86$\x0e\xee\x93\xf7\x07h$\xc0\x02\xd8\x98\xd3\
+,Pn\xbf(\xc0U\x99\xb4\x0e\xad\xaf\xdc\xc7fh\
+\xe8qt\xdf\xae\xb3S\x15W\xb1\xcfy\xd9\xad<\x19\
++\xd9-\xd0\x02\xde\xf4v\x1b\xdf\xdb\x81n\x02\xc2\xd3\
+\xa1l\x18Kh=\x87\x91\xd5\xcc/\x14\xe0\x00\x8e\xc7\
+\xaf.\x1b\x00bS,\xcc\xab7\xd6\x90\x0a\xbf\xf3\x1b\
+%\xd7\xf4\x15\x94b\x94\xfe\x14\x14P\x92\x01N\xc7\xb7\
+\x97m\xef\xd3\xd4\xe4\xccs\x9e\x1eR6\xf4\x1a\xeb\xcd\
+WA3\xee\x94H\x1f\xca\xa9J\xb7\x00\xd7s\xc5\x80\
+\x02(F\xc4\xa9\x01MZ:\xe2\x11S6\xa2\x89\xd3\
+@\xb3@\x8e\xba\xbf\xdex\xe2\x9cZ\xc9\xde\x18\xe0\x0d\
+pa\xec\x98i\x0a{j\xb1\xc4_\x00.\xf1\x93\xc8\
+\xab,\xaa\xe0\xed\xc5Q\xf9\x01\x8c<@\x99\xc0\xd7>\
+\x17p\xba?\x120\x15J-(\x80\x94\xfdz\xd7r\
+\xc4\x9f\xfc\xce\xe19\x87\xe7\x0c\x15\xcd\x14f\xfa}\xc5\
+M\xbe\x9f\xeb1\x05(\x0c(\xe7`W\xf6\x002D\
+D\xe3\xcf\x9b1%\x9et\x1f\x05\xf4\x80\xa5\xf8\x9b\x06\
+\xe6%\xbe\xfc\xc8\xde\x9f\xa3\xb4G\xabEe\xd3:\xeb\
+J^\xf6\x15u\xf5\x1eg\x86\xe1\x09\xf0s}\xee\x83\
+\x84\xc6}\xc0X\x02\x5c\x85\xa1\xdb\xdf\xc7\xb9m}a\
+\x08%A\xd5\xa2p\xba_\xd9P\xf94\x96\x93\xe8\xa0\
+\x96\xa5l\xf8\xa6P\x03\xd8\x01\xbd_\x12\xe0;\xe3\x92\
+\x9b\xa2\x0c\xc8\x8d\x1f\xc1\xcc\xe9\xcfME\xb4\xfd\x13\xe6\
+\x87\xf8\x7f'\x16\xde\xcc \xc0\xabuh]\xc8\x0f$\
+J\x80s\x89\xb5s\x1d@\x8c\xa2\x0d\xc0\xf2\xb9Zk\
+P\xab\xed\xa7\x00\x8b\x9d\xd0c\x06\x00\x0e\xc4\x17\x00=\
+@\x8eu\x22~p\xfd\xf2#\xd7\xe5\xf7\xb4$\xbc\xa0\
+lP}w\xbe\x02\xfe\x88'G\xa3\xa9\x0b\x9a\x00\x08\
+\x8e\xda\xfd\xc0D\xc4\xd8\xf0\xfbab\x1c\xdeQ6\x14\
+\x82\x01\xce4\xa7\x88Pk1\xe4\x0f\xedS\xd7E\x8d\
+?\xad\xa0\xcd\xa0I\xfcr\xba\xb8l\xd0\x16\xd0\xa2\x16\
+\x06[k\xc1a&\xbc+-\xba\x89\xcf\x8f\x9fW\xb6\
+\x88i\xde`\x11\xd3|\xee|\x8a<w\x03X\x1b`\
+\x88\xd6\xc1\xe9V\xa7O\xa9\xc2[3&\xdco\xf1\x8d\
+\xe7\x07\x00\x94\xc0['~\xacG\xc0\x0d@NK2\
+\x7f\xa1\x85\xcdxH\xad\x99\x18C\x98w\xa6Z\xa4p\
+\xd4\x00\x12f\x9d\xf8\xce\xba\xd1\xa2\xff\xf6\xb2!\x8e6\
+\x06]\x9e\xc7\xdf\xf8|\xe7\x1a\x06S\xe2\xbbs>\xc0\
+\x01\xad\x97JO\xdf\x12\xd0|fDj>&j\xf9\
+\xcf\xcd\x05\x7f\xc9\x90\xf8\x0a,\xf5\xdc\x09\xb8\xa9Y^\
+\xb0\xf6\xb0t\xe2/\xf0\xd3S\x19\xd1\x9b\x0e\xc4ll\
+7\xda\xc1*q\xbe(\x1b\x9ec\xdcT4\xd7\xca\xf0\
+\x05\xa77\x9d\xde\xb4\xcd\xd1\xa6\xd6\xbc\x88\xa4\xfd\xd5\xa0\
+\xb2\xac\x17\xe48\xdbix (Cul^\x90\xc4\
+\xe2?\x07\xea\x8e\xc0^\x05\xc9\x0d\xf6S\xdb\xe2#\xa3\
+\xa2\xff\xc9A\xc2>yp\xe0\xf5m\xde\x9d\x0d|\xc1\
+\x80\xe0\xa2\xae\xc7\x01q\xa4=]\xa1\xd2\xe8\xb7\xe4\x00\
+\xf8\xe0\xfc\xfb7\x0f\x15\xb8h\x19,\xe2F\xaf\xca\xf7\
+\xff\xb4!qP1\xa9\x80\xf4\xe6C\xef\x97\xe7\x90\xfb\
+\xd5\xa2u\xd4m\xa9lg\xa1\x1e\xbek=H\x0fw\
++[\xa8\x85\xb3\x0d\x95F@\x85\x05\xccaH\xa8\x22\
+.\x84\xb24=xz\xd0\xf4\xa0\x85\xea\xbaT\x9c\xce\
+\xbe\xa1l\xfe\xfb\x0f-[T\xf5\xef8\xddq\x987\
+\xad%E\xcf\x99\x8a\xdd\xb7\xae\x95\xb9\xc3KV\x0a\xf3\
+\xf1{\xcb\x86\xca^\x02\x9e\xe3\xcd\xca\x86^%T~\
+b(T\x80\x9fwx\xee\xa1\xe6\xa9\xfe\xdf\xe9\x0f\xa6\
+\xf9\xf3J\xa1\xa04\x0a\xf4z\x0a\x80\xcf\xeeX6\xff\
+\xf7g\x95\xcd\x7f\xfe\xa8\xb2\x01\x00\xc8F\x9dNe\xdb\
+\xd8\xbd\xe33\xcb\xe6\xbf\x7fU\xd9\x90x\xc4\x81\xa0:\
+\x9d=\xb4l\x98\xb3\x0b\x90\x91\x10\x01\x00 \xcc~\x00\
+s\xc4]\x8c\x11\xc9\xfb\xf4\xf4\x82\xac\xcbfJHl\
+U^\xb3.1\x04.yq\xd9\xd0\xfb\xba\xfcl\x0c\
+\x88\x0e\xa0>\xbel\x11;\x9cmK\xb0\x8e7*\x1b\
+\x12V\x89@*\x91}\xe0\xab\x18H\xb8|O\x88&\
+&\x88\xb1s\x1c'\x07\xcf\xb1;\x98\xacs\xc0\x9d\x0a\
+\xac^G\x8c$\x09\xbaD\x17E\xd5\xfb\xf1o~\xdf\
+\xbe\xe6\x80U\x84\xfd;\x81\xb3\x1f\xd4X\x80\xdb\x17\x95\
+\x0d\xfe\x85\xea\xb1\xf5\x9d\x00\xbeE\xcf\xf8\x0b=\xd1(\
+\xc1\xf6\xab\xca\x93\x00SEH\x8f<\xc0\x03`\x22\x90\
+@\xf5t\xbd\x80\x08\x08:J&\xa6\x93\x00O\x22+\
+\x01\xc6\xa0\xe2G\x82\xccw\x00!\xc1\x978\xf1\xe3\xc6\
+\xd9\xe5\xf94\xd5=\xd4\x5c\xfe\xa5E\xe9B\xa1\xbd\x14\
+0\xea|\xc1\xd0\xa1\x91@\x13\x81V\x8d\xca<M\x02\
+?\x18(\x02R\x95\xd0\xdc\x87n\xb1\x08\x13\xa0\xbf\x97\
+\xe7N\xb3!\xc0\x95\xcaj'bzj\xb5\x8c\x98Z\
+b\xfa\x06D_\xc2\xec\x5c\xd0\x0a\x81jn|! \
+7\x09\xe1\xf4\x9e\xb2!`\x17\xf8\x09\xe8\x93`w\x82\
+\x18JuW0\x12\x18\x9enW\xb6\x9d\x87\x87\x07\x96\
+\x0d\xe2\x97\xe9\xb1\xed\xf5\xa6r\xad\xe7\x19`\x99u~\
+Z~\x86V(\xeb\x11@\x8c)\xa2e\xcf\xb4\x81\x00\
+\xa6\xd5\xa0\xb5\xb4h\x05\xa0l\xca\xb5\x9e\xf0\x00\xb2-\
+F+ \xcc\x14\x98\x0e\x9c\x9cc\xc4V\xa9\xae{\xde\
+\xf65\x7fIm9\xe3\xfd\x0ege[\xab\xd4\xf4\x80\
+\xb2a\xfcq\x00\xd6\x06\x0a%\xa0\x12z\x09\x1cQ\xaa\
+0+\x0e\xd7^[\x18\x16F\xe5\xdb\x96\x04z\x01\x84\
+\x0f\xdf\x13F\xa5u\x8a\x19)\xc0\xcf\xfa\xef\x80\x8f(\
+\xa5\x84HO*F\xde\x0f\x84z\x8d\x11$\x0e\xd0\x02\
+!P\x15oIXT\xf6$~\xbb\x8aX\x17X\xee\
+[6\x8cE\xa6\x09\x93V\x86\xe9X6\xbf\xfeC\xd9\
+\x96`\x08\xec\xfb\xfa\x89\x81\xa2\xd0\xd3L\x90\x18\xdb\x97\
+\x9e\x9f\xc2\x8c\xf3\x9e\x9f\xe6\xff\xdd\x07\x81\xbd\xf3F\xc2\
+\xb6\x17\x09\xb4_\x88\xeaJ@\xc5\x9b\xee\x87}iz\
+A\x00;\x9a7D\xf9:\xf1M\xa2\xdd\x15i~\x8b\
+\xdf\x15_f\xdf\x1e\xaeu\xf8\x90\x1a{{\xfa\xf5\xd3\
+\xd3O\xbf>h\x95\xec\x99\xa1\xd6\xc5\x9e\xf9)a\x95\
+\xf0\xfa3\x80|?\xb5+\x95\xcb>_\xc5\x05\xbeW\
+\xc6\xec5#\x8ff\x03Jt\x12\xd7\xa6N\xcb\x13L\
+\xabQq\x05\xe4\xfbw\x12?\xad\x96\xc4a1u\xc2\
+\x14iF\x03\xe0_\xe2\xbe\xab\xa87\x90B\xbbj\xaf\
+y\x01\xd0q_\xfc\xbe\xf5\xc2/\xf1\xfbZ\x8cL\x0b\
+r~\x88\xb30h~\xbcl\xb8\xcfZ`\xd2\x02\xd2\
+Z\x19\xa9\xd4\xf7\xfb\xf8|\xebS\x22\x97\xa9Q\x1d\xf7\
+\x88\xab\x03\xe86\x85\x5c\x1eb\xfdHX\xf7c\x1d\x9d\
+oT\xef\xb3\x9e\x1b \x12\xcf\xfd`\xd9PX\xbcn\
+\xd9V\xe8\xe9\x96\x8c\x8c\xfdk\xa0!\x9f\xdb\x8c\xad%\
+\xf0\xdd\xe2\xa9\xd6zR\x98\xcb\xfd\x14/vKZ\x9e\
+\xe3\xf1Qe\x1b\x93\xed\xf8\xcbe\xc3\xfd\xe0g\x03D\
+4\x83U\x0f=\xb1\xbf0\xd2\xa6[\x96\x0d\x85Oq\
+# H\xfc\xb0o5u.\x88\xd3\xb4\xe4)\x889\
+W\xf5\xec\x07\xf0mM\x0db\x99{\xcd\x00\xebx'\
+\x0a\x0c\x10l\xa6\x81<\xdb\xf7\xc5H\xc2\xa4\x11\x7f&\
+\xae\x22.\xdb\xeb\xcc\xb8\xc6\x00)\xe7\xda!W\xcf\xc4\
+-\xe6\xd7\xcf\x9dmv\xc0\xd3S\xca\xb6\xb9\xc6=\xaf\
+\xd7\x98\x97\x1a\x1b\xf6\xb99\xd8\xef\x92\x0a\xe7\x13\x87\x0d\
+\xae\xf4`\xa1B\xcaP\xba8(\xbf\xf7\xee\x1d\xa5\xdf\
+\x86\xf0{\x1c\x9b\xd7)\x0f\xc4\xef\xb9q\x02\xff\x0b\x12\
+h\x09\x0c??\xbdK\xf5\xbf\x83\xba,\xcaV\x07\xa4\
+\x10\xe3\xc2\xed\xfezp\xccD\xfa\x8c\xd9B=U\xc1\
++7\xf1aC\xc5\xca8=TW\xc8\xb7\xdf\xab\xbb\
+q\xad\xe1\xd5A\xe2@\x07\x0cd*@\x8b\xe9H`\
+\xa8X\x86\x1a\xd9\x0b\xaa\xfe\xf5\x94\x03\xe2\xea\xf9\xfd\x8f\
+\x1d\x16\x06\x07\xe1\xe0\xf4\x5c|>j\x95\xb18*\x01\
+\xc4\xb4$\x92o\x0cRM$\x055GbJ\xfc\xce\
+A%`\xbdnD\xce\x22\xa2\xd3\xe3\xe2>4\x94\xf8\
+\xfbO_5}\xd5\xe2\xa7\x96D\xf9\xecG\xca\xe6\xd7\
+{\x9c\xbd\xe2\xec\x15\x03%*\xbdh\xc7\x97\x95mc\
+\xa3\x1aY#\xa2q\xef\x884=?\xad\x03\x97K\x02\
+\x17\x95\xde\xd3E\xab\xc8O\xcf\x95\x8f\xf6\xc1\xf4\xb0\xb2\
+\xf9sOg\xc7\xb3\x0aT\xaeQ6\xbf~\x5c\xd9\xfc\
+\xfa\xabe\xf3\xeb-\xca6\xbfZ\x1d\xb0\xd5\x03+`\
+\xed\xf1a\xd6K\xd6\xab\x0d=\xfd\xef\xb2\x0d\x81\xed\xb9\
+\xaa\xa5\x9d\xf0\xc8\xa5\x22\xfa\x98\xaa\x88\xa2\x9c\xa2\xda\xb7\
+\xa32f\x0eU5ba-\xb6\x97\xb1(\xf6\xc7\xf4\
+\xc2\xb2-\x10k\xd1*\x14d\x09\x85\x83k?\xde,\
+\xd7?\xdd\xa4l\x9b\x1b?\xbd\xa0lh\xad\x09u\xae\
+[ \x88\xfd\xe9)N/W\x07\x1a\x09<!\xdcz\
+\xcb:\x81\xd6\x8b\x99q\x86M\xb5W\xa1}\xf2*\xf6\
+\xd9\xc8\xb6\x9e2\x9a&\xa6\x9a\xf07\xfb\xc0G%\xcc\
+\xfeU\xc1&^h|\x90\xbf\xa7\x01AT\x10\xc3A\
+b\xa4\xe5B\x85\x19\x90\x90\x03\xaa\xa9g\x00\x08\x89:\
+\x7f\x91\x83T\xa2\xd9\x07f\xa6n\xb4\x9f\xd4\xf2\x90\xfb\
+\xd8S\x12\x88\x12\x0ax$6\xa8\xb3\x00\x07\xeb\x11e\
+S\xe0\x13@\xa3\x01\xac\xf8\x89\x0e\xbc\xac\x0f\x09\x1bJ\
+:Q \x091\x11H\x14o\x1a\x044Q\xa8.\x87\
+\xd9\xd1\xea\xfd*\x12\x12$=\xe3z\x18\xc3\xb0\xe81\
+`z\xf5\x9d\x17_\x9e}\x9f\xcaI\x8b\xa9E\x8b\xa2\
+\xd7\x83\xf5\xc5\x0fb&\x00.T\xa8\xacS\xeb\xc3\xba\
+!vE$\xca\xe7\xd3\x94H\x0bL30~1S\
+K\x04\xa4\x12Q\x8c\x04\x89\x0c*|\xe61\xb7z5\
+\xa6Hz\x01\x89\x1e\xf5\xf3I\xa0\xd5\x1a*\xa1\xe2w\
+\xa2\x9d\x84\xb6\xb4\xc8\x175rj\xfc\x00Z\x9a\x10\x09\
+\xc0\xbau\xe9\xdae[@\x87a\xd5b\x84I\xbc\x8f\
+\xf7*\x1b*\x0d\x980\xbeg\x02\xf8\xe3\xff-\x1b\xb4\
+,.\xb7\xb6\x905P\xe5\xfe\x99F\x90\xb8\xe3\xf0\xd0\
+\xb2\xa151TI\x95\xaaV\xbb'\x06\xf5we[\
+\x82\xd2\xd3O\xb2\x9f\xf8\x19\x09\xe8\xe9\xb1e\x03\x15\x1a\
+P\x97\xcaz\xfbq\x22\x93\x97\xef\xf3dU\xff\x06\xe0\
+\x1aSfl\xdd'\x97\x0dTY\xc0\x19?\x04\xb8}\
+w\xb72\xae\xe3\xae$\xfe\xc4\xe4\xacOb\x8aD\xea\
+\xb2\x1f\x0f?\x5c6\x88TarI\xa01;~4\
+\x1a\x15\xf6\xa9\xb8CB\x04\xd0D\x99E\xd5\x95P\xfa\
+\x11\x8fI\xc0\x88M9\x9f\x00b)\xb8\x9c\xbbc\xd9\
+Vh:\xfck\x80\x0e\xcc\x1d\x9a8*\x87\xa8\xb0I\
+X0i\xf8w~\xb0[N\x89\xab\x8aK\x5c\xaf\xfd\
+*\x9e;?\xd3g\xbe#L\x1d\x09\xa0D\xd5>\x07\
+\x80\xfa\x1e\xfe\x0cH\xc1\x10u\x1f\xf83\x15\xf40\x07\
+\xba\x15\xc6\x9co\x15\xe5\xec\xa7nU\xe0W\x05\x14\xfc\
+\xd2\xe5\x165\x80-\x11\xf1\xdf\xf7\x8cRL\x0eq0\
+\xad,\xf1\x90\xb1mZ\x93\x8c\xcf\x8bVUW\xac#\
+n\x89\xc9$\x9e\xe8\xf87\x85\x8f\xd6\xca\xd1\xc2\xa1\x90\
+\x10\xa0\xa3\xd7\x8d1zZX\x92\xb8\xf6\xd8\xd2\x00\x06\
+\xcdP\xb1^UT\xb5\xdc\xf1#\x00\xbe\x14\x0e\xba\x97\
+\x1fcJb\x85!\xe3~\x01z\xdcg\x00\x8f\xe7\xf1\
+\xe6\xb2\x01xP\xa1\xb7\xbe\x01\xd5\xe2!\xfb\xdf~q\
+\xde:\x9fs\xeev\xe5\x19\xe0#\xb1\xe7\x87\x9d\xfb\x00\
+\xf6-\x8fY\xe3l\x89\xae\xfd\x99\xc4\xb4\x0b$\x18$\
+\xfc\x89\xb8\xdb\xfa\xf0\x5c\x8c\x8f3\x1e;\x80f\xfb\x8f\
+\xb4\xfa\x89+\x8f\x7fW\xb6\x89\xfcu\xeb\x07\x86M\xce\
+\xbd\xd3\xb9\xb2a\xfdIL\x13\x1f\xf6\xd8\xef0\x90O\
+\xb7(\xdb\xf2\x92n\x8d!Z\xfb\xfe\xb2-?kM\
+\x00@\x83\xfb\x821\xa7\x85S|\x14\xc6Q\x03n\xc4\
+Z\xd3\xf2\xd0\xe7\xa8\xb8\xc8u\xefD\xe6\x9bA\xcc?\
+\x03T\xf6S\x82\x02h\xf5\x94\x07\x8c\xe2_/\x1b\x80\
+.\xc0\xce^\x03\xcf\xfa\xb1\xdf\x15X\xf6c\x08\xad\x0f\
+\xcc*\x8c/\x85\x1c\xffN^,\xe17\x15\x04\x80\x9c\
+\xf8\xf2\x9c\x00\xb3\xc5\x1b\x12\x80M__6\xcc\x1bW\
+)|D(B\xd5+Xb87\x9f\xed\x16\xdb\x18\
+\x9f\x167\xe20%\xd6(>n \x87\xef\x8b\xbf/\
+\x1bk\xbf\x81l\xb0\xce\xb0\xf2\xea\x8b\xa8 Z\xe86\
+\xaa\x07\x08\x91z\xc80\x86\xe9\xa3\xe2\xa8\xffu\xb8Q\
+6\x18\x84\x85\xc3\xf1\xfbzH\x8b2x\xfbMD\xa6\
++c\x1e\x5c=\xae\xeb\x0e\x94\x0c\x94 \x14\x99J\xb3\
+\xaf:lP\xdf\x03\xc3\x81\x83\xa8\xbbt\xf9\x04\x94\x97\
+\x1b\x16\x1cq\x87:\xe0_;,$\x88\x91q\x84\xee\
+\xb3\xc4>\xbd\xff\x1d\x88\xaa\x18\x19S\x82\xf2kC\xa9\
+\xe8P\x87N\x00z\xf8\xeb\xcc\xc9\x8d\x03i\xaaP*\
+\x93\xbd\xc1\x04\xfa*\xb6z\xab?1\x94`\xeb\x03u\
+\xec\xaaQ[\x7fFz\xf2Ra\x81\x5c\xa1\xfcN\xaf\
+(\xdb\xc6<\x9d]\xa3l~\xfc\xe7\xca\xe6\xd7\xe7\x96\
+\x0d\x085\x91G\xe3\xf7\x92`\x9f}}\xd9\x10\xc0\xdf\
+&L\x90\x0fY\xc7\x8ft\xc5\xeb\xf3\x92\xc0\xbf\xbel\
+\x13\x0b\x9a\xbe\xbclS\xe3\xa7\x950}C\xd9\xfc\xe7\
+\xe7\x869p\xb3\xb2\x81B\x98\x03t\xfa\xe2\xb2\xe1\xe0\
+A\xfdA\x11}\xfb:\x06R\x02C\xf5|a\xe8\x9e\
+\x86\x80\xc3\xba\xd1B\x22!NOW#\xf6(\x89\xd1\
+\x10\xe8\x83\x11\xb5\x14\xe5x?\xe6-\x15\xff\x0e\xc02\
+\x96\x0a#\xc4~7u\xe1t\x87\xb2\xa1w\x97XV\
+\xa8\xdd\x10\xe4\xae\x0c>n\xb1M\xe5;~\xc2\xd8M\
+\xdf\xbbEfr_\xfb\x00V!2\xae3\xaa\xeb\xcd\
+\x5c\xe0@!\xac\x90Q\x88v\xc6\x99\xb5\x08\x8c\x84\x10\
+bO\xc4E\xeb\x8c\xfdf\xdf\x03\xbcTr\x01\x82(\
+\xb6*\xa4\x80\x01\x15\x85\xcc5\xbfTo:J]\xfc\
+ *\xad\xfb\xde\xd4a@\x86\x9e\xceTH:q\x95\
+0\x1a3\xa3\xd2\xae\xc5@\xafi\x02\x87\x16\xc7R\xa9\
+7\xb6H\xc2\xafR\xb0\x137\xec\xf9\xeb\x02m\x223\
+\xa8\xd6\x99\xbe\xd2\x15\x1c\x15n\x09\x12Q\xb30nP\
+\xfe\x1a00\xc7]\x82o,[4B\xba\xb7Q\xa5\
+\x0c#\xe9\xae\x19[I\xa3\x04\x85=\x09f'>\x00\
+Q\x07\xa8\xc0!\xda\x19\x1d(\x03\x86\x9d\x17\x02AL\
+\x0c\x89\xa2}e\xdd9'\xb4>\x19\xeb\x06\xb8UI\
+$2\x1b\xa6V3)0@\x00B\x80\x13\xbd\x91\x09\
+\xa4z\xfd\x86y\x83\xe2\x7f\xf6[e\xf3~\xbbU\xd9\
+0f.\xe7\xb99\xd9]yR\xd9U9O\xafd\
+S\x22%\xe8\x01\xae\x1a@Lec\xfa\x82\xb2!\x90\
+\x02\xb48\x9fR\x91\x9d>\xb5l\x08X%\xd8\x11;\
+\xb4\xcf{\xfa\x08`:\xfbfz\xd2\xf4\xb3\xd3\xecO\
+\x8f?S6$\xe0\xff'j\xcd\xd6\xb1\xd6\x00\x14\xd6\
+\x00\x9c\xc7\xb7\x95\x0d\x00\x83\xfb\xf6\x88\xb2%\xd0^{\
+~\xdf\x92\xa92(\xb6*{Z\x85\xc4#\xf1\xc7\xdd\
+\xd3OcB\xc1#\xeb\xa0\xc7\xb4&\x11\x99\xc3\xea\x05\
+\x08m\xaa\xed\x1fE,W\x02\x9b}\xdb\x0c\x1f\xda\x22\
+\x1f\x9c\xfd\xfd\xbaUt\xb6)\xf8\xd4\xdd%\x94D\xdb\
+r\xdfZ\xd4\x94\xd6\x83B\xc0\xad2\x1e\x11\x15\x1f\xd5\
+9\x15\xe1>\xc7}\x1f\xdf[\x22\xf2\x92\xb2!n\x22\
+V\xe5\xfa\x8d\xab\x05\x9c\xff\xf1*f{\xf8\x8bU\xc4\
+\xf1\xbc'%>\xfc\xe4\x88OS\xf3\x7f\xc1\x9a8\xb4\
+\x08k\xe2\xac>\xaf\x8c\x87\x0b\xf3\x01\x10\xd0\xe3\xc70\
+\x9a\xf8o\x14\xda{\x94\x0d\x01\xb5\xf8\xcfy\xa2\xa0\xa1\
+\x07WA\x84\x16\x03@8\xd4\xf9\xde\xa7\xd6\xbd\xf7\xb3\
+\xaf\xc5[[\xc1kM(\x04\xf0\x00-\x89,J>\
+*7\xe0\x82\x9f\xdaOY\xc1\x04\x10Wb\x1aat\
+\xd0\xee\xc1\xcc\x02\x5c\x00\x9aT\xae\x93\xa8R\x81o\x91\
+1\xe2\x8d\x01r\x00\x82\xde\xa7[7\x00\xde\x0aN\xc6\
+\x02F;\xa3\xe3\x11\x15S\xa2\xd2\x80\xd1}\xc5\xd5\xf7\
+\x10\xcf\x8a\xf7%\xc8\xfc\xae\x02\x9b|\x01\xe0\xee\xcf\xfc\
+\xb6|\xc0y\xa8\x82+\xce\xd1#\x0f\x10w\x1e\xfb\x91\
+\xcf(,\x02\xce\x9c\xd7D\x0c\xf9}\x9f#n\xd8\x8b\
+\xe6\xba.\xdf\x87\xff\xf5<\xb7\xfch\x8d\xf7\xc4\xf3Z\
+\xb72\xc6\xb9[\xedLw1}\xc6z\xb3o\xed\x17\
+\xbd\xe2\x98\x184\x08R\xb8im(\xe7\xb4B\xaex\
+\x13\xd0\x0dx \xfa\x08P\x00TXg\x89\xa7\x9d7\
+\xbd^|n\xc6\x19\xb6\xa6\xd0\x85e\x03\xe3\xebcV\
+@\xf8\xf4\xc2\x88\xed\xa1\xd4\xfb|\xf1GZ\xd4\xba\xe2\
+\xfe\xa0\xc5z\xacu\x17J\x9c\xa3\xd6U\x80\xaf\xd3\xdb\
+\xca\x86\xefG\xfb\xc1>t\x8e\xd9\xbf\x00\xa4\x00Y\xdd\
+z#\x1e\xb7\xde\xecs\xeb\x8d\xa6\x87\xe9\x02\x9e\xab\x02\
+\x0c`>\xebD\xdclJ\xd7\xa5\xc6\x10j\xfd\xe1\x97\
+\xad\xfb\xfdt<\xeb,\xdf\xef\xdc\xb9\xef*\x1b\xc6\xf4\
+P\x1b\x96\xa0A\x1a\x88L\xe9e\x14\xe8\xe8\xdd\xd3\xdb\
+\xeb\x80\xb2Q\x88\x94\xa0F\xa1N\xd8\xe0\x1e\x9c\x0bu\
+cwc_.\xb5\x91\xe3\xe8\xf4`\xce\xe1\xd4\xfa\xe0\
+l\x94\xf7\xe6\x8b\xbe#\x94\xbfg&\x11\xb7\x11|?\
+\xef\x97@\xb9\x13\x8f\xa8\x04/\x84\xf9[\x069\xbdq\
+\x90\xe4\x9b\x0cc\xf3$\xe6\x02\xe2r\xa47\x1e*\xef\
+u\xbc^\x7f\x08\x08\xeb1_}xP\xa8H\xe5\xf6\
+8\x8a7\x0e\x81Q\xb9\xbbk\xe7\xf3o0<\xe8\x8b\
+\x96&\x88\xadg\xa8\x96\xc9\x7f\xe5\xf3\xae\x17\xb1\xaa\xab\
+\x0d\x09\x01\xad\x06\xcf\xad\xe0\x88+\x0e\x09\x09q\x13\x01\
+\xbe\x00\x06\xf5\xfa\xe1\xa9\x9c}Y\xdeo\x03Z\xd6\xfb\
+\xfc\x90\xa88?9\xe3\xb1$`q\xf85l\xaf\xc6\
+\xed\x9d\xf7]\xa9\x08^}\xa5\xdc\xcf\xd7\xbaV\x10\xa9\
+\xeafC\x1c>3\x15V\xbd\xea\xe6\x07G\x9d{z\
+N\xd9\x10\xe0\x07p\x99\xfe\xb4l\xd3\x04 \xf2s\xba\
+L\xd9P\x19\x07,\xe8U\xfd\x82\xb2\xad\x02\xbd?\x00\
+\xba\xf2\xa8\x12\x1f&\xc0\xd9\x17\x95\xcd\x7f\xfe\xb9\xb2\xf9\
+\xf5\x1f\xcb\xb6\xde\xe3\xae\xf4\x0a\xec\x01d\xa8G\x09\xb4\
+\xa7k\x95mT\xaf\x16\x7f\x13(\xfa\xb3}\xc1\xc1X\
+\x0f{\x80\x0d2k\xac\x10\xc7B\xfc\x0b\xf5\xfc'\xca\
+\x06\x0a>G$p\xa3r\x8d\x12\x15d\xb8[\x19B\
+\xe5\xd5\xdb\xa7\x07\xb7\x1ap\xaa\x05\xe7\xf8\xe7e\xcb\x98\
+\x99\xf7\xd7\x98\x99\xe9\xfee\x1bu\xfa\xf8\xfc\xb2\xad\x82\
+\x08\xa1n\xaap\x10\xe1v\xd8*\x9d\x7fZ6\x04\x0c\
+*Oz\x18\xa3\xee\xda~\xc5A\xca/\xa1D\xc71\
+C\x9c;aE\x89\xd5*\x04)\xdeU Z\x84\x0f\
+#A\xc0M4NK\x8d@\x07 \xa8\x97\xdb\xc1\x8d\
+i!\xe0ppl@\xd9\x1a@:\xc0$\xe8\x90]\
+\x00\x87\x03\x09\xb0(A\x05l\xf2\xbf\xa8\xeb*\xb4\xfc\
+\x91D\x1f\x85\x9d\x88#j *\xb4\x00\xc2\xba\x89\x06\
+IO!0n\xed\x05e\x83\x9fT\xd9\x97\x80;\xe8\
+h\x98\x98\xcb\x8e\xaa\xff\xe5e[\x00\xd5\x94\x7f\x94L\
+\x89\x91\xcaT\x002\xe3\x14\x89\x95\xa2\xfc\xf7\xd8\xce$\
+\x84]\xf9\xa6q\x11\x11DS\x11\x8e\xbfU\xb6Q\xfb\
+ZTP\x00\xe2\x00\x07\xb4\xe8\xf9\x8f\xbf\x03 t\x82\
+N\xbd>S9\xfa\xb9X?\xce/\x81\xb9qb\xce\
+\x03\x9a,\x80K\x09\xb9\x1ek\xf7s7>i\xba\xa8\
+l~\xfd\xf4\xb2A\xebD\xa0Ed\x0b\x058\x09d\
+W\x00C}\xee\xf9\xf6\xd4\xc4U\xd2\x1f^6\x04\x8c\
+\xb4\x14\xf6\xd3\x1e\x9c\xb3\x02n\xa2\xb0a\x045c\xc9\
+u$0;\xbc\xbcl\xdb\x8f\x0d<\xf9I%\x86\xf6\
+\xc1|F\xaf\x15\xc7\xf4\x8ev\xeb\xc83\xd7\xf1\xa8g\
+O*[\x18*\xab\x86\xc4o$\xf1\x0b\x00{\xfc\xd1\
+\xb2\x0d\xa0\x9c>\xbel\x08p\x01q*\xc2\x12\x10\x89\
+\x07M\x0ecDS!m\xd5m\xd3=\xfe=\xe7\xdb\
+\xc5\x99\xe2b]H\x88P\xc5%\x10ZwT0\xad\
+?\xfeI\xbc\x04\xb0U\xa9\x0d\x93\xa3\xa9\xcaT\xba\xc3\
+\x14hf]D\xaf\x0e\xe7\x97\x0d\x94V\x09\x9b\x04@\
+\xa2r~\xa8\xa8Z\x96\x88R\x12\xc1\x0c\xa5\xb7\x01\x98\
+\xf7G\xe47-\x99\x1d\xc0G#J\xdc\x85\xf9w|\
+x\xd9\x22.\xfb\xda\xe3k\x87\xf3L\x1c\x17\x7f\x05\xf8\
+\x03T5#\x80\xff\x16\xe7Y\x8f\xce\x81\x00\x88\xad\x15\
+a\xca\xc37\x94\x0d\xe7\xa5\xc4Z@N;\xe2+\xcb\
+\x86\xb8\xd5\xf3P\xc0\x92 \x0a\xc0%\x16\xfe~\xd7\xea\
+\xaa\xf2\xdc\xc0\xab\x04\xc4\xe7{\x1f~\x5c\x85z\xd72\
+\xd0@\xbaDc\xa7}\xd2s\xee%6\xb4;\x00X\
+\xb4\x82\x9e^6\xf4(S\xf9\x07<GK\xa6\x19'\
+\xfc\x16&\xa2\xd6T\xe3Z\xf9IS-\x5co\xfcX\
+3\x11v\xea\xf7}\x9d{\xd1X\xf7S\x22k\x1fx\
+\x95\x98\xb9O\xde\x0fp\x95\xf1z\x0d\x04\xf1\xbf\xceS\
+\x05I\xcf\xcb\xba\xf1\xfb>\x87\xd8\x9a\xeb\x16\x97xn\
+\x0a\x84\x120\xefc?9\xa7\xf7\xe2\xdd\xceq\x00\xa8\
+\xe7L\xdb!\xd3\xb1.\xd5\xca\x95\xd6f\x85\x05\xa2\x81\
+\xcd\xcc\xc1\x94\x0dp\xa7\xf0\xdbZ-\x0a8\x19\x8bm\
+|kkI9\x7f\xc4\xa3Z\xd4\x00\x1f\xbe\x0f\x06Q\
+*\xe1\xd4\xec\xbb%\x00e\x1fCF+&\xc0\xce4\
+\xb5\xcf\x8aFK\x80\xc5\x8e\x93\xc3\x90k\xa6\x81s2\
+~\xac\x99%\xce\xc9T\xfe[\xdc\x193\xc8\x7f\x07\x98\
+\xd9_\x9e\x0f@C|\xc5\x1f\x03^\x89O\x9a\x8aa\
+\xff\x03\xd6\xe5ioo\x0d\xbcu\x1d\x03\x14LG\x88\
+\xff\xeb\x02\x81x^\xbe%N3&\x9b\xd8#\x11A\
+\xbf\xe7g\xaf5\x018\xcc\xcf\xb9\x9e7^\x95\xb6\xaf\
+\xdd\x0e\xdeV\x0bV\xc1\x8a\xaaw\x8f;\xc8\x86\xd3\xfb\
+\xdd\x88\xaf\x0d'\xb1\x95P\xee\x10\xe3\xdeX\xc6\x8d\xfc\
+{\x0e\xea\xa8Pv\xc0\xceq\xef_%*D\xb2\x88\
+1m\x07\xd4\xca\x00xQ\xd9\x96\x104\xa5\xec\x11Q\
+\x874N\x0eU\xa3\xd2\xa6?\x1e>\xbf\x96\xc1\xb5\x87\
+Wc\xf8\x88\xa0T:}\xa5l\xd4\xab\x0c\x08e\xa5\
+[\x1f>,\xa4\x0f\x8eJ%\x07Cl\xa2\x90\xaa\xbf\
+\xdcz\xd0\x97\xc7z\xcd \x9b\x1f18\xbazl\x1f\
+\x18D\x08\xeb\xeeM\x03\xe2~\xbd%\x95^{\xf7>\
+eH4\xb4\x1cH\xfc\xdd?\xd3\x0b0\x0d8\x0c\x14\
+\xe2'\xac\x14\xf9\xeeY|b*\xd8(Z\x12\x98\xdf\
+-[\xc4\xf9\xd61x7X\x03\x9c\xe9\x95\xd3\xdfM\
+\x7f7,\xc0'\x84\xc2\x99J\x02\x84Q\x0f\xd9\xe9e\
+e\xc3\xfc\xe0\xd7G\xc4#\x89d;\x22\x22I9`\
+\xa8PS\xffE\x01\xeb\xa9\x02\xa8\xe4\x1c5d\xde\x0f\
+D\x9b\xc8\xc8]\xca\xb6\x83\xa8\x13\x9d \xbe\xc6N\x95\
+\x22\xc0\xa2\x09\xf0\x97eQ\x9f~\xd2\xa6i\x80QA\
+\xdc\xa9\xc5\xca\x04\x86\xa8\xd1o(\xdb\xa8\xe4\x9d0J\
+\x04\x89\xb5\xa1\x0e:\x10\xac\x0b\xeb\x10\x90c_\x00\xee\
+\x00\x0f\xa8]{\xe6\x00\xd17\xd3\x03B\x95j\x87\xe7\
+\xc0\xf4\xbe\xd4\xe5i=\xc4\xb1\xf5\x18@=|\x01 \
+\x88\xfa\xf13]a\x89\x1f\xd0bt\xfc\xee\xb2\x0d\x80\
+9>\xb6l\xf8~\x10T\x15\xeb\x001]\xc9A\xb1\
+\x12\x98J\xe0\xedcS>8~\xf7q_\xc9\xb5?\
+\xa2J\xdc\xe3\x07\x1fP6T\xe2\xdd'\x09\xb0J>\
+\xe0\x0b\xb5\x1f \x91\xdfO\xdf\xc0\x18\x90\x00r\xd4\
+\xdeW\x0f+\x06\x8du\xef\xfa\x02\x9c\xb5_\xe6\x0fP\
+!\x1d\xf8\x02L\x9a\x11o/\x1b\xbe\x87\x83F\x02\xd1\
+*s\x993\x1b\x86C31T\x12U\x1a\xa8\x9b\x13\
+\x91\x05\xa4$\x911\x0f\xb8\x03\x9bP\x9a\xbb\xc5\xc0s\
+\x92 '\xe1\xeb\xf9\xc3\xf6\x03U\xde\x97\x9d\xf7\xf2\x05\
+p\x00P:\x87\xf4\xe2Z\xbfZ\x972?\x99\xe8g\
+\xd5\x8f\xab\x82|xI\xd9v\xdf\xac\xc3\xe3m\xca\xe6\
+\xdf{\xd0\xaaMb\xbe\xb1\x8aB\xdf/\x95\x1f\x00\xc9\
+\x9f\x95\x0d\x9a)Z;\xecC\x01\xb5@\x0e52\xd4\
+\xff>\x9fT\x88$H\xf6\xb7q\x93\x126\x89(\xbf\
+f=%Q<\xbd}N\x00\xde\xbeT\x5c\xae\x5c\x15\
+\x17\x00\x9c\xf1@\x02\x8d\xe3\xaf\x96\x0d\x14\xc6\x04:\x12\
+\x9d\xe3\x05e[K\xcd\xf41eC\x85\xc7\xb8\xa5\xdf\
+)\x1b\xae\xdbs\xa3\xd2\x9d\x84\xe0p\xb5\xb2\x81\xd1\x11\
+\x86\x86^~\x80FS\xf91\xcb\x04P\xd9\xefg\xf7\
+)\x1b(\xe3\x09\x84\xdb/\xc4\x1f\xd02\x98\xeeYV\
+T\xfc\x95\xd2zH %N\x98O\x9f\x95\xa1t\xf5\
+\xb2A\x1c\x90\xff7\x8e3\x00Q3\xdfh\xb3D\x03\
+\x81\x86\xc1\xe1\x8b\xcb\x86\xc2\xc8\xd7\xac\xad\x03\xcd\x98\xfc\
+\xfb\xb4\xb6\xe4\xdc\xedi(\xfc]ZP\x0e\x8f_\xfd\
+\xa8\xfd\xd4\x22\xa9*z\x02P\x01\xf6\xa5\x05\x00\x00 \
+\x00IDAT\xfbM`\x1c\xa0\xa7\xe3/\x80E\xfc\
+R\x03q\x0a5(\xa4\xe23\xda\x1e\xce\x0f\x09+\x11\
+^\x95\xf0\x000\x9d\xf8\x19W\xfa\xac\x15p9<g\
+\x8d\x13<'c\x22\xfb\xf9\x86q\xd8~#\xe7\xb5\xb1\
+\xce\x87cD\x14\xbf)\x00\xd8?\xa6bN\xd4\x97(\
+ \xd1\xc8P\xb9\xfb{H4\xf9)\x81\xb7\x84L<\
+\x06\xe82\xbe\x0c@'\xd1q\x1f\x010\x18{*\xc2\
+\x18D\x00j\xe7\x11j\xbd\xca\x9d\x84YB\xbc\x07\x0a\
+\xb4 \x00\xee1\xceT\xd6\xc53\xa6\x19\x00\x5ch@\
+\xd0\xf01\xcdFK\x02\xed\x09\x00\xa5\xbfw\xfd\xb4G\
+h\x1dH\xdcM_\x91\x88\x02\xba\x14\x0a\xb2\x9f\x1bP\
+\x94\xf8cD\xf8w\xc4^\x8d\x813\xa6\x0f\xb0\x12\xa6\
+g\xb7BZo\xee\x8b\x84\x0aC\x06\xf0\x9c\xfb\xd0\x15\
+x\x09\x9d\xf3S\x1c\xe3\xdc\xf7\xbe\x12}\xaf\x123\xd7\
+\xed\xb9x\x1e>\x97\x06\x09@\xd0\xfd\x90\xe8i\xf1\xc9\
+\xfa\xeb\x96\x85\x14tZ\xb3H|\x87)\xa0\x15\xc5\xf5\
+x\x9f\xdd\xb8\xc9\x06\x9c\x88\xfd\xa65\xa9\xc7;&.\
+nF\x90\x82\x1em&\x09\xb3\xb8\x09 !\xces\x7f\
+\xb4fj\xc5H!\x13\x90\xdcq\x96\x0a\xbf\xf8j/\
+z\x88\xc9\x87!\xa2\xb7\x9d\x18 \x8d\x89\xc4M-\xe6\
+y\xf5\xb2\x8d\xc1\xda\x00\x9bs\xd7\xbf\x0f\x83\xa0E\xca\
+U\xfei\xd8\xd8\x7f\x12s\xf18\x00\xc0\xba\xf2\xbc\xed\
+7\xf1\xa7\xfb\x0dXS \xc4\x8c\xd0\xba\xa7\x05U\xeb\
+\x0b\xad\x85\xbdh\xbb\xf5\xc5\xffh\x99\xc0\xbcR\xd0\x02\
+\xec\x8b\xd7\x01J\xc9\xd7z?+\x10\xbaNq>\xff\
+C$\x1f\xe0\x95<\xf5\xdcR!y\xecPA\x84\xe4\
+\xaa\x08\x08H!{(\xc4n\x8c\x1bK\x04dW\xc1\
+\xe8^\xfb$\x06M\x95\xdd\xf7:\xa1\x82\x00\x02\xae\x93\
+^q\x1bV`\xba;\x80.\x85t\xb8\x91\x17f\x8e\
+9\xf1!s\x14\xe3\x88\x96\x07\xf8W\x03\xf2t\xfe\xd2\
+\x15\xb6\x05,\x1c\xaf\x84\xbfp\xe3\xab\x0e\x95\xf7z\x1c\
+\x17\xe6\xba\x8e\xc3\xc1-\xf0\xa9\xc7\xfb\x9f\xa1|\x98\xaf\
+{Q\xbe\xf7(RE-\xb3\xa8Y\x7f=\x8c\xdd\xab\
+\xbbv\x95!A\xa9\x84\xfd\x03y\x9f\xf7\x0f\x09\xa0\xcf\
+\xc9}\xec\x9ed\x15f\x1b\x8e\x08\xa0\xf7\x8b\xa3\xd7\xd2\
+\xd0\x95&=4\x80\x8b\xaf\xc8\x06W\xc1\xb4\xa0C\x99\
+\x9f\x9d\xd3\x1a\x90\xfe\xcdJm4\xde\xe7\xf0\xcb\xe9A\
+Mew~Vk\xcf\xdc;\xd7\x85X3\x03\x96\xa9\
+\x01\xdf\x9a\x9eN\xc0\xd1\xd5S1\x09\xe5\xbe\x03\x92\xcc\
+\xd7n\x8aP\xd4\xe5\x9br\x9a\xdeK\xf3\x97U\x0e-\
+\xafN\xdc\xac\x07cE \xd8;\xb5\xd2\xe3g\x94m\
+S\x00Z\x0b#=\xce\xdd\xebn\x0c!\xaa[\x80\xa4\
+\xee!\xb3\x01\xc7)\x12\x17\x0e\x15|TC\x09\x9b\xc4\
+\xc2\xfe\xd1\xb3F\xfbA\xc2d_\xeeUI\x1d\xe0\xc6\
+m\xe9\x11w\xd0\xa0\x5c\xa3\xa4\xdb\xf7\xe6$K\xec%\
+\x12;1\x9c\x06(h\x08\x08\xe4S\xd9=\xde\xafl\
+\xab\x00\xb6\xe6\x00\x00\x03\xb2+p\xd0\xdb\xfd\xaa\xb2\xf9\
+\xdf?\xb9lP\xed&\x16\x06\xd9\x0cS\xa9)]\x10\
+c\xc8\xabqn*\xf3\xc4\x85\xb2n\xbaW[\x8f\xa0\
+}\xc1\xc1B\xf6\xf9\x19\x15w\xa2\x81\x121\x07\x85\xe7\
+\xe0\xa0V\xc97\xd6\x08\xc5\x5c\xab\x0d\x80\xcd\xefy>\
+\xa1\xe4w \x17\xcd\x8f\x9e\xeb\xabbC[\x00\x85\x1f\
+%\x16C\xc2\x81b\x9f\x13\x13M`\xa6u\xa6\x03\x1d\
+~\x5ce\x0c\x00\x22\x01\xd5\xb3fLX\xe6\xcc\x1aC\
+\xd8\x01Q\xa8\xae]\xd9\xe3/\xac\xa3T\xa4\x89Fv\
+\x05\xcf<y\xaa\xe0\xc6\x8b\xba\xcf\xa8\xd3z\x10_\xb3\
+\x8eU\x9d\xbd\xedY\xf9[\xea\xea\x87+\x95m\xe2D\
+\xdd\x9a\x14m\x90\x9e\x86p\xff\xb2-1k\xed\x8f\xac\
+\x9b\xe9/\xca\x06\xbf\xfc\xbf\xcb\xe6u\xf9\xbf\xca\xb6\x0a\
+x\xefO\xcf\xdd\xf9\x83\xb1\x83Y\xe3\x5c\xf4\xbch&\
+\x04\x18\xeb\xf3*\x95\xfa\xee\xf9\xa7I\x01H\x12@\x0b\
+h\xb5x\xe81\x8d(\xaa\xef\xd7=\xff/\x9e\xc3\x87\
+\x17o\xd3;\x88!\xb6\xb8S\x02\xac\x9e\xa7\xfc\x07e\
+C\xc0\x90\x9exL\x15\xe3\x80\x891adt\x22\xf7\
+\x83i\xe5\xb8_\xf6\x8d\x96\x87\xbf,\x1b\xa6\xedH<\
+T\x5c\xado-L\x99\x06\xd0\xe2\xb2\x01VZD\x16\
+`\x99\x0a-\x7f^\x0d\x5cK\x0b\x17\x7f\x13 \xfbt\
+\x9b\xb2ATW\xc0w\xb5\xf4\xe6\x03\x16\xc3d8\xbd\
+\xb8l\x98\xaf-\xc1\x078\x03\xc6=\x0f\x9a\x0d\xd1<\
+A\xa1&2h\xdf\x1d\xee\xb6jo\x10\xf5mM\x14\
+Z\x16\xc48\xbf7\x8c9\x0c\xbb\xc7-\xf3t\xd6\x04\
+\xe0W\x86\xb9\xee*\xa6\x02E\xfb\x16\xc0\x84\xb9\x99\xeb\
+\xad\xd9FK%_\x5c\xa52\x89\xa1\xa3\x05\x8c?\xe4\
+\xaf\xf99~O\xab\x14\x06\xcd\xc3\x03\x04\xf9<\x22|\
+\xb9\xff\xd3\xdf\x97\x0d\x9a\x15\x12r\xeb\x18\xe0a\xac$\
+\xd1\xc4\x17\xad\xcf\x7f\xfa\xdd\xb2\xf9\xf2n\x7f\xbc\xc3\xf1\
+\x0e\xcb\x98\xbf5ap}\x18R\xc6\xf5\x12K\xe5\xff\
+\x8dCs\xfd\x97\xcf\xb9i_\x893\xb4 \x11{S\
+\x00\x10\x90K\xcc\xc4\xc9\xf1\x0fM\x85\xd7\xd3\xed\xdc\xf6\
+\x9a\xf3\xfd\xf4[eCK\x93\x16&\xf1\x80\xfb\xce\x1f\
+\xbb.c\xf6T\x1e\xc5\xcf\xfc\x8e\x04\x15@\xc0\xbf\x9a\
+\x92A<Ob\xae5A\xfcn\x8c\xa1D/\x9a6\
+\xfd\xbe\xfc\xb9x\x00\xe3\x05\xb0\xa5\xc5\xc9T\x0cqt\
+\xe2\x92nqt\xbdI,\xbb\xd5\x0b\x03,\xf7\xa7\x19\
+(\xe2~\x00\x85D\x93\xbf\x908;\x07\xb3O\x9b\x99\
+\xa1\x10\xe6\xba%\xa4\x985\xee\xb3xW|f=b\
+\xe2\xed)\xf4\xe6\xd3c\x18\xd2\xfa\xa0\xd6\xff\xd6\xb2!\
+\xbe\xe2o\x88\x1b\xa6p\xd6\x9f\x0b@\x00d|E\xd9\
+&^\xda\x95g\xbf/N\xd1\x83\xae\x80As\x82f\
+\x1b\x06\x92\xf8\xdeu\xdcb^\xf5\xb7X\xfc\xc6R\xf0\
+l5\xfe\x88\xc9\xc9g\xb4\xfa\xee\xc7,\x1e\x7f\xa5l\
+`\xe4i\xe9\xd6\xfb\x9e\xf1\x9e\x1d\x97Fl\xb4\xa7k\
+\x19\x07\x18\xe0\x15\x03\xb9\xc7b^\xb5l\xf0/\xf67\
+\xff\x8b\xa9n\xdcu\xfc\xfb\xf1\x95e\x03\xd3%\x8c\xee\
+\x16]\xccz\xebiv\xfcE\xe2\x87.\xe0\xda_\xf2\
+\xb9}\xe5~\xdfJ\xe2\x95\x7f\x00\xa8x\x1f\xebGa\
+\x9c\x9f\x96\xa0\xf0\xbf{m\x09\x09\xbf\xeb\x10o\x88\xfb\
+\xadk\xeb\xc3:\x10\x07\x8aS\x88\xb4\x9af\x94\xbc\xe4\
+\x5cW\xf4\xd2\x83\xd6\x0b\xdbF\xd9S\x89!\x1e\x10%\
+\x15&7\x08\xb2*A'.&\xb1\xb5\xf1T|\xdc\
+P\x8eA\x85h'\xc6p)\xf1\x99\xbd\x88\xe0&\x16\
+\xb8&\x5c\x1c\x1ajw\x10\xb7\xa6t\xdex\x19<\xb8\
+\x8a\x22\xfd\xd8\xb0\x01o\xbf\xa4\xb4\xdb\x01\x8a\xba\x7f\xf5\
+%5\xdd\x1eT=\x9e\xa1\x92~\xfa\xaf\xd9\xde3\xf4\
+\xd8C\xc0P\x820\x08h\x0aT'\xee\xf5\x07` \
+\x95\xf8\xd3{\xcb\x86\x84#S\x9c\xfa`v\x80y_\
+\x0b\x16\xe2\x09`\xc8\x81\xdd\xe3\xfc ]\x127S\x11\
+\xee\xb9\x22\xb1\x87\xcfO\x02\xf1Ayn\xc6\x1f\x09\xe8\
+%\x0a(\xbc\xc6\x14\xa5\x82\xa6\xe25\xddz\xba\xcdt\
+\x9b\xad\xe7\x94j\xbf\xc4\xfc\xf4\xbd\x99\xe7\xfe[k@\
+\x7f\xf6Egw;\xbb\xdb@\xe53\x17\xfaIi%\
+H\xa5q\xbaK\xd9\x96\x10\xf5\x01\x13\x15_c\x9aT\
+6\xbb\xf2.0\xa2\xe6\x1c\x8az\x8b*\xa1\x8e~p\
+\xd9|\x9b_Z6PL\xf5\xe2\x85\xdaz\xb8\xb0l\
+HP#\xc2t|Z\xd9\x90X\xe7yM\x8f.\x1b\
+\x80\x15\x0e\x19b\xfb#eC \xa9\x12\x8c\x82g\x0c\
+\x0d\xc7\xadgSb\xe0\x00\x138\xe8U\xce\xfb\xe99\
+\xed\x0a\x8e\xc4\x8acq\x80\x04\x19\xee\xca\x8b\xc0U\x85\
+\x88\x03B\x89L\x02\xdb\x81\xb9\x84SO\x7f\xc6&\xb6\
+\xe6A\xc69\xb6\x08\x16\x91\x9f\xa8\xd7v\x02k\xbf\xb9\
+>\xaa\xa9\xe9\xf1=\xbe\xbalHD#>\xe3>v\
+\xc2\x1c\x11/\x07N\x8f\xf5I\x0bI\x8f;TA\xf0\
+y\xfc\x98\x83\xdb\xfd\x22~C[B\xcf\xbc\xd6\x9f\x00\
+_\x8d,c\x04\x00\xe48\xea\x04\x0a\xed?\xd3R\xd1\
+\xc0\x0eq7\xea\xe4\xfc\xa4\xca6\x95\xffh#t%\
+N\x80\x05P\x0208\xe0B\x91mum\x81%\xb1\
+\xb5\xf4\x98\xf5\xc1\x12\xff\xdbH\xb7\xe7\xeb\xa0\x91\x00h\
+\x1dB\xe9\x0c \xd3\xeb\x8d\xbfG\x9d\xdf\x8b\xf7\xa4\xa7\
+\xb6\x0f,\x15\x92\x04\xa2\xd6_3\xa4>n\xbe\xda\x8f\
+\xdb\x02\x14\x95\x88\x1egIk \x94\xea\xe9\x9ae[\
+%\xb2+\x11\x9e/Jy\xa8\xe7\x87\x17\x97\x0d-*\
+ia\x99~\xadl\xfe\xf37\x96\x0d\x01\xa9J\xea\x0d\
+\xca\x06\x11\x5c\xf3\xce\xe3\xf7\x1a\xa02u\x876IT\
+\xc9\xf9\x9bN\xc81@\x04\x0e\x12\x09\xeb\xd4\xe7\xa8\x00\
+\xf1;\x02r\xeb\x1a\xc0\xf9=\xab\xdf\xedq\x9b_\xb2\
+\xfa\x9f\xe9E+@wzC\xd9\xe6g\x9bRH\xb5\
+\xf9\xf3\xca\xb6\x00\x1d5\xbb\x19\x14\xe9\x89\x9f\xee^\xb6\
+0\xa0\xd6VA\xe7MD\x03;A\xcc86\x81\xbc\
+V\xa3\xa6 \xc7\x8ft\xe2Ed3\x0c\x83\x06\x883\
+U\xa8\xfdi\x80\xe1\x16\x1b\x03\xc4\xa1\x92^g\x05\x14\
+\xbbuD\x9c\x82b,\x11\xbb\xd2ZA\xea\xd6\xb3\xaf\
+\x8e\x06K\x18h]YO\x22\x84\x190}Z\xd9\xc6\
+d\x03\x90\x1e\xae\x97\x963*\xda\x00(\x89\xbf\xf9\xdd\
+\xafX\x19f\x0b\xe3\xe1\xb59g\xde0$\xb0\xaeO\
+\x8b\x11m\x02\x80\x0a\xc0\x99\xe8U\x02e=\xd8\x87o\
+\x8bv\x86\x80\x95_:K \xfa\xeaPvUR1\
+\x97\x04\xb6\xe2\x10\x85\x9eOIeR\xc1\x81\xff\x8a\xe8\
+\xe1\xf4\xf4\xb2\xa5\x85b\xd1\xc2\x99\xbekzx\x8d\xf9\
+\x95x\x1f\x9fZ\x16f\xc4W\x0f\xfb\x89&\xca\xf3\x03\
+,\x02`\xc2H\xbd\xe4\x81e\x83\x16\xc3(\xc6|\xed\
+\xe1<\x14\x1f\xba/\xdbx\xd85~z]\x12\xbd\x9b\
+'0WY#\xaeK3Eb\x85\x9a\xaf\x10\xa20\
+\xa1\x15\xcb:BE6\xcd\xc6z\xe4\x070~$J\
+\x7f\x90\x84\xdcubZ\xa2P\xff\xc2\xe9\xa9\xa7\xa7\x0e\
+\xe2y\xf6\x85\x9e\xe2\xf7\x94\x0dq'`\x07@\x22\x11\
+0\xe5\x83\x98\x1a\xe0\xe2\x97\xcb\x0618\xe3X\xb3\xce\
+Z\xc4W\xa5Q%\xd3\xb8:\x1a!*\xed\xce\x17\xc0\
+\xb0\xb1\xad)@\xb4\x16\xc1\x9e\x19`\xcc%\x80\x08\x83\
+\xc74\x01b\xac\x12(\x09\x93\x84\x1dp\xe4\x5cq\xde\
+\x8a\x97\x00B\xd1\x94\xe8s\xca\x7f\xb7\xce1\xa1U\xb4\
+\xb5\x18\x00\xaaM?\x10\x17\x8b\xbf\x9d?\x80n\x15v\
+q\x9aB\x06f\xb4\x9eq\xeb\xc5\xdf\xab\xc4cv\xe5\
+<j\xe0\xc5\xba\xa7Y\x00\xb8\xf9\xb1\xe43\xee\xbf<\
+\xe8!e\xc3\xfaz\xc3\xeaW\xfa\xbc\x97_E;\xe5\
+t\xab\xb2A\xd47\xf1H3W\xb4\xc0a\xa2\xa8\xcc\
+\x9b{\x9f\x7f\xdfb\xb7\xf6\x15\xf1T\x9a\x5cZ\xfeh\
+\x17\xdc\xb9l\x10}\xc6H\xa3\xc5!\xde\xb0\xce1\x97\
+\xaf\x5c\xb61\xd1\xec+@kO\x0d\xbbu\xd9\xa09\
+\x84q`\x7fb\xea\x01L\xc4%\x98D\xe2\xc3}+\
+\x94\x84\x9d\xff\xf1<\xc5M\xd6+\xffi\x7f\xca\xcb\xf2\
+~\x87\xcf,\x1b\x00h\xcf\x05\x93$qf\xef\x1f\xeb\
+\x0a\xa0+^p]\x00\x07\xf9\x83\xeb\xc8\x9f\xcf\xf5\x1b\
+\xa8\x00>\xbflPut\x01\xa8c\x029s\x89%\
+\xfc(:zA\x8c\xef\x11\xa8\xfa}\x15/\x17\xba\x1f\
+\xbb\x031\xc4\x04\xb8a\xc6'9p\xdc@\xc8\x09\x07\
+\x90\x9f9lY)\x14\xb7]7\x16*\xd7\xf1\xdee\
+A\xcc\x7f7H\xd3\x13\x86\x04\xda\xc6\xa6\x1a]u6\
+\xe3\x89>tX`z\xf0\x00\x13\x16F\xe1=o\x1d\
+\x02f\x0c\x01\x15\xd7\x88\xebt\x02?N\x09\xb8n\xee\
+\xf3q8\xa0\x88\xf9\xf9\xbeZ\x00\xfc=1A\x09\x02\
+\xa0\xa6\xa8\xec\xefL \xfb'C\xaf\x10\xea\xbc\x84\x1f\
+u\xf1uk u\xb8b(\xf4WO\x80\x09\xe16\
+\xf6H\x82\x22\xa0\x8bz\xef\xe1\x01\xebX\xa8\x1e\x83\x84\
+\xca\x1e\xea\xfd\xf4S\xd3ON?\xb9\x04\xd0\xe7O\xe7\
+/\x0ej\x09\xecN\x97/\xdb\x12\xb9\xd6x|W\xd9\
+\xd2\x1b9\xdb0\xfe+\xf7\xaf\x19\x06Y\xa7\xed 9\
+ \x01\xbd\xde\xe3$\xac*k\x0d\x0c\xd0\x0eP\xa1J\
+\xcb\x8b\xf9\xf5\xc7_+\x1bzs\x8c\xfd#\xca\x175\
+\xf1\xe9+\xca6\xf5\xe5~_\x147\x0c\x02\xd4`\xea\
+\xf7\xe9\xd5*\x09\xa7E\xc4I\xef\xaeJ\x8bu\xe9\xf9\
+\x02\xa8P51;\x00!\xd6\x15M\x0ec\xce\x04\x8a\
+\x9e\x9f\x0a\x01\x04\x93\x83\x93\xd0x\xbe\xa1\xfa.T\xe3\
+\xcf\xce\xe7\xddy\xa8\x8cKDR\xd9\xec1\x85\xa9\xe8\
+_\xf2\xe7e\x9b\x83>>\xbdlc\x16uon\x80\
+\x9e\x0e\xa8Qh\xf5X\x06 \xc0\xcc8\xbbk\xd9 \
+6\x17j\xfe\xf1O\xcb\x86V\x1e\x0c\x1b=\xed\x02\x8f\
+P\x0e;\xc0\xa1\xf2\xce\xff`\x14\xd8\xd7~P\x9c%\
+\xd2\x80\x10\x15\x12\xea\xd3\x80\x91\x1a\xff\xf9)\x03b+\
+\x90\xe4\xf0\xedK\x22U\xfe\xbd\x04\xc9\xe7@\x92\xf5\x9a\
+\x11\x9b\x92\xe0E\xe3\xa3)\xd2\x80\x1c@\x90\x03X\xa2\
+)\x10\xd3\xa2\xb1\xd7 \x10x\xa8TH0\x04`\x00\
+\x1a@D\xc4\x1f\xcd\xa3o5^\x07\xa4^f\x80\xd4\
+\xaf\x95\x0d\x07ez\xcd\xbb\xa2*\x90\xb7\xee\xf9\xdb\x00\
+q\xcb\xb4\x9a\x9b\x0f\xe3]\x8d\x7f\xbbC\xd9\x10hh\
+\xb5H 6=\xafl\xab$\xb4\xa8\x98V\x04c\x8d\
+B\xf9=\xfb\xac\xb2\x8d\x9a\xdc\x15\x8f\x00?\xc7[\x97\
+\x0d\x07+\xad\x15\x01\x8e\xd6\x89w\x97\x0d\x94\xf4\xdc\xbf\
+\xc3\xb1l\x98\xff\x9e\x8aWu:/\xbd\xce\x12\x0d\x80\
+\x85\xfb%\x00\x0e\xa0\xd9\x89r\xee\x7f\xaf_\xcf\x09\xf3\
+'L\x8d\xdew\x17\xae=\xd9\xc6\xb0\x09 .yy\
+\xd9\x06d\x19\xb3G\xa5\xf9x\xcb\xb2a\x7f\x98\xb3\x9d\
+\x04tN\x03\x16\x7fw\xf6\x8deC\xebJ\xb4X\x1a\
+8\x22\xaa\xf6/\x01\x923>\xae5\x14\xf8S\xcc(\
+~<-f\x87\xc3\xe1y\x87\xe7\x0d\x81\xd6-\x92H\
+\xdc=\x1a\x1d\xa9@\x9fnQ2\xc5\x03\x90+ \xbf\
+b\xfe\xdd\x033\x8e1\x09~k\x8e\xe4\x1ck`1\
+\x80C\x03z\x80I\xd3m2\x1e\xb1\x99\x07\x12\xe2+\
+\xe4\xfc\xc8\x94\x03-(=\x9d\x80\xc8\xde\xaf\xad\xcf\x7f\
+a\x0a\xbc`x\xbe*7\xc4P\xd3\xab\xee\x1c\xe9\x96\
+\x0aZ\x19\x12\xb3\xac\x97\x06,1\xe0\x88\xaa\x9d\x12W\
+8\x07\x00~\x98\x1a\xb4_v\xaa\xea\xad\x8a\x9ds\xc6\
+\xd8\xe4\xc3\xfd\xca\xe6\xd7G\x95-\xe3s\x17\x06\xc7t\
+\xbd\xe9\xa3\xa7\x8f^4n\xaeY\x1a7\xf3j\xfb\xfb\
+e\xbd\xed\x80\xa0\xe3\x0f\x1c\xbf\xff\xf8\x03K\x82\xbc\xce\
+\xd5\xfe\xf99\xdd\xfa\xb9\xa5\xa00[\x02\xf89\x91\x9c\
+>b\xfa\xc8\xe9#\xb6\x16\x96\xe3\x83\xca6?\xde\xd3\
+\x01|\x1f\x95X\x9a\x12\xe2S\xebPB\xaee\xc8T\
+\x14\x09\x81D_AJa\x0c\xf3\xc9\xb9\xc9\xaf;\x8f\
+\xfdw\x89\xac\x84\xc5\xfd\x17\xff\xf2s\xd7\xc89\x02\xe8\
+\xa3\x95!\xb1K\xc2\xd5-\x0f\xfb\xa9\x01D0\x15\xd4\
+\x00\xadI8\xbb\xe2\x1a\x06L\xb72%\x81lm/\
+q\xbe\x02\x18J:&X\x12\xc4\x8eW\xb4\xf2a\x98\
+\xa0\xee+\xc8\x01\x98\x00\x11\x12\x19\x85\x05\xe7\xb4<\x02\
+\xa3)~\xaa[\xa4\xc47\xee\xa7|`\xafz\xae@\
+\xc2o\x02rvc\xbb\x15VZ<R\x0b\x99\xf8\x88\
+_W\x99&\xfe\xe9\xb9J\xdc\x15P0\xfd\xac/\xcf\
+Y\x9c\x84R\x0e\x00\x10\xe7\xf9\xb1\x8e\x00\x104\x9a\xd2\
+R\xd8\x22\x8a*\xff\xbe\x8f\x96\xb0\x14\xceN?zz\
+\xec\xd2\x9adZ\x0a\xa0)-K\x1d78\x9f\x15\x12\
+]\xb7\x04\x17\x00\xf2\xc0\xb2m\x9f\x1c\xff\xacl~\xff\
+\xf7\x96m\xcc\xd8\xd6.\x01\xb8\xb8o\x89\xf3\x97\xf1\xf1\
+\xbf?h\xc3\xd0\x8a\xf9\xce\xf3\x1eV\x85\xb1\xd3\xfd\xc2\
+\xa45F\x16\x00.A\x97\x10k\xa1\x957:\x87\xc4\
+\x19;\xad\x0d\xdaT\xbd\x8e\xa3]A\xe3\xa3\x0b\x9c\xd6\
+'\xf1\xeb$\xd8]\x88\xc54\x08P\xde@,\xbf`\
+=\x8a\x8f\xedk\x7fv~'\xff\xed\xc2\xac\xf5n\x1a\
+H~\xbfE\xff\xc4\xb3\x80\x9f<\x9f\x9e\x86BK\xc7\
+\xfe\x01H\xc9\xdb\x01\x00\xee\x93\xf5\xd7\x00\x00\xc7\xa4G\
+4\x09W\x07\x9a\x12]\xe3M\xcc%\xb6\x11\xf5\x1a9\
+\x80T.Q\x11\xf5\xc0\xeeU\x08\x05\xa6*1*\xa0\
+\xfb1]\xff\xb9c\x02@T \xf7n0\x87\xf3\xcf\
+\x11\xf5J\xe5\xff\xf8\xe0\xb2\xf4\x16?j\xd8\xc0\x0e\xe8\
+\xcb/d\xb0\xf5\x81]v\xa7\xb6\x7f\x85\xbc\xff8_\
+\xb5\xb6\xe9[\x86J\x18\xe4g\x7f\xc3\xdf\xbb\x90\xf7\xb6\
+\x0a\x0a\xea\xa1\x0a\xf6\x9e\xd1\xf0\xff\x004\x1a\xb1qP\
+g,`W\xb6\xab#\xf6\xa9C`Y\xe3\xbd\xee\xbe\
+1\x11$\x22\xd3\xeb\xcb\xe6\xd7O*\x1b\x12\xc2gf\
+N\xf6\x1fG5\xfeuqhzb\xafZ6\x00D\
+(\xb5Q\x91\xee\x048=\xd9\x1c\xc2\xf4\xc5k%h\
+\xfa\xb7\xb2\xf9\xf5^e[ \x04I\xec\x9eWc\xc7\
+\x226\xa2\xa2\xd3@\x00Jo\xe6\x93.\x22\x87W\x1d\
+\x00\x96\xe7\x94\x0d\xbd\xc3\xa8\x86\xc4\xc1\xe2\xa0\xba\xb5Y\
+\x82\x10$\xd7\x5cP\xbd{\xd3\xfd\xca\x06d:\xbdE\
+\xc6\x1bv/5\x0a\xbc\xf1S\xbf\x5c\xb6U\xb4\xbb\x92\
+a\xecH\x0e\xf2N8Td\x1d\xbc\x1c\x1b\x87\x85\x02\
+\x0d\xd16']\xe2h_\x09\xf8\x01\x04;J[W\
+H9\x00\x08\xb2\xb1R\x02G=\x8f(\x8a\x00\x16\xd4\
++\x95N\xbd\x94\x1c]\xfe\xfd\xf4ee[@|\xfa\
+\xa2\xb2\xad\x22{|h\xd9\x10(Q\x09O\xa5\xf8\x92\
++\x96m\x00\xcf\xf1\x01e\x83\x7f\xf0}Q\xb4Q\xa7\
+s\x7f\x8e\x9fY6\xbf~S\xd9 \x8a\xa3\x02\xc2\xe1\
+~c\xd9\x10@\xf0+\xa8\x8e\xfe^ob\x18.=\
+\xfeF\xe5\xc2\x01j\xff900&\x04\x14\x9e\x0b\xf1\
+:@\xa3@\xca\xf3\x07\xfc\xa8|\x14\xb3\xe8\xbf\xb6D\
+\xaf\x03'\x94c~\xd7\xf8,\x95\x18\xad\x0e\xfb\x83\xca\
+\xf7\x140\xf9|\x15\x10\x07\x8d\xdf\xf3|\xf9[T:\
+\xe2\x96\x01\x1c\xec\xbf\x0e\x98\xf7\xd44\xfb(\x89oW\
+LPn\xc3\xcc\xb8\x14\xc0%\x012}\x22\x00\xc6\xe1\
+\xf1e\x83\xf8\xe6\x15\xca\x06\x06P\xa8\xd8\x02\xb1\xc3u\
+\xca6@\xa3\xc7\xd9\x1a\x03\xabRE\x15\xfe\xa5\xeb\xba\
+\x9f\xfeiz\xed\xf4\xda\xad\x82\xdd\x12\x09\xf9\xbe\xc7O\
++\x1b\x806=\xdf\xa6\xe7\xa8h\xa7\x05\xc4\xdc\xf8\xe5\
+\xae\xfdB\xf6\xd3\xf5\xb7\xd6\xba\xb37\x94\xcd\xbfw\xb9\
+\xb2-\x81C\xad\xd4\xd3{|^\xd9\xa6\x8d\xd2Z8\
+(\x9b\xa8\x93\x18E\xf6\xb9\xb9\xcb\xc4\xd9\x00\x10\x97)\
+\xdbZ\xb3\xec\xab\x9e\xcb.@2\xb6)\xf7\x01C\xa2\
+[\xa8$\x00Y\xc7\xd3\x07MW\x9c\xae8\xf4\x82\xbf\
+\xb9l~}b\xd9\xb0\xafi5\xd0\x00@\x85\x8f\xda\
+\xfb\xfc\xbf\xab\xbf\xd4b!\x81\x8e\xe8$\x86\xd5\x9c\x86\
+\xaeq\xc7\xab#\xf2\xa5\x97[\xc0\xfb\x0dk\x0f9?\
+vxK\x80R\xe3=3N\x94\xf8\xa1\xeb\xed\xca\xa8\
+\x02\x89\xc0\xd2\xb9\xad\xc5\xc54\xa5\x9c\xaf\x87\xa7\xad\xe7\
+A'$\x00\xa20'\xe7\xd5\xf1\xfd\x87\xef\x0f\x93\xe2\
+O\xb7\xf3\xae\xe3#\xe2h\x11]\xec\xd6&\x89k5\
+.\x9e\xbf\xa9C7p\x1a\xe0\xb9\xe3\x19\x01\xb7DD\
+\x1cf\x7f\xab@\xa5\xf5\xa2\xa7@<\xadl\xabtw\
+\x0f\xfb\xf9\xd1\x021\xb6\xf3_\xb2\xcf\x8aq6\x9f\xff\
+\xe7>\xfd\xdc\x9d\xce\xddy[\xffs\x98\xfd\x8c%\xd0\
+\xfe\xfa9\xed\xfc\xfa!\xce\x03\xf8`\x88\x84\xd1\xb7\x94\
+\x1f^\x19\xbf]@\xd5}\xcaV`l9w\xbe\xf2\
+\xbc\xfbV\xfcF,\xf6\xf8oeC\xc2\xb8\x1f\x7f*\
+\xa1I\xa5\xde\xc7/S\xacn>\xb4\xb8\x12\x0f\xcd\xf9\
+\xaau\xf5\xf4Ye\xc3\xb9\xcaO\x11\xe3\x0a\x90\xd1j\
+\xfe*\x97D\xc5\xb4\x9a)\x80\xf1kz\xde18n\
+0\xef\x86\x1b,\xfe\xef\xce\x8b\xff\x93(\xaatR\xeb\
+\xa7\xbd\x80\xc9!\x91\x0e\x90\xd1@\x08\x8d\x01S;\xd2\
+\xe2\xd7\x9a\x11Z\x01\x9c\x8f\xde\x07\xb3\x97\xd86\x80V\
+<\xca\x9f\x99O\xaf\xf0\xa0\x07\xdb\xefQW\x07\x1c\x89\
+c\xe5\x0f\xe2\x0by\x80\xf8Y\x02\xed\xfc\xd6\x12\x95\xf8\
+\xa5\xcfA\xc0:\xed\x85Tz\x9b\x99\x07\xb0\xf3\xc0i\
+~\x85j\xde\xda#\x19\xdb\xdc\xe3\xf9L\x09\xd2\xb2D\
+\x13\x01p$\xef\xd0\x83m\xac.\xa6\x11\x0d\x08\x00\xc1\
+n<l\xfb\x0d\xff\xdd}\x17\xf7\xa9\xb0\xcb\x9f\xc4\x1b\
+\xcem\xf1\xda\x0eP\xd0\xe2\xd5\x89*\x00V^\x07\xd8\
+\xb2n\xea\xe9^3\xeb\xee\xfa\x99z\xf2\x96\x01\xb8\xf0\
+}\xbe\xb4l\x98\x9eV\xab\xea9\x03\xb0\x06\x980\xe6\
+/@\xa2\xeb:=\xbdl7\xe6\xfcM\xc3\xbezX\
+\x18\xb2\x0a\x1d\xd6\xaf\xe7\xaf@\x22\xd1\xc5\xdc\x0d0\xd2\
+\x80y\x00\xef>\xaf\x8d_\x94\xe7\x86!\xd7c\x081\
+\x11\x89\xcf*\x88\xdbG\xbe\xc7~\xec\x9f\xf7C\xb9\x07\
+\xb8y\x8e\xf6\x93\xb8\x5cK\x9e\xca<\xa0\x8evJ\xce\
+\x8b\xe2\xf9,L\x1f\xc0\xab\xb8\xd0\xbfs\xff\x9c\xf7D\
+\x003V\xbc\xe3Qy\xa4}h\xfd[/\xb9\xff\xe7\
+ZL!\xa2-=oZE\xd5\x82\x83L\xed)\xe8\
+\x90O\x95\x87,8\x01\x84\x0bo\x8al6LS\x8e\
+P\xab\x89D\xf9\xa2\x9b\x9a\xff\x9a\xf8\xef\xc7d\xec\xc7\
+\xa0\xa0\xb2\xe4\xef\x97\x9e\x90[o\xe3n\x96\xc0\xfd\xee\
+\x03R\x0aI\xf2\xbd^\xbd\x84\x0c\xdb\x83,|\xf6m\
+COND\x1d\x96\x83\xe1vC\x05\xdeu\x16\x5cq\
+\xe5\x01\x81\x11\xd8\x5cn\x99<\xff\xdf\x13\xfd\xc3N\x05\
+v\x1a\x1c\x84?S\xf5\xe70Q\x97 a\xd4\x93+\
+\xa0>\x0dT\xc3\xea-z\xce\x06\x00L\x7fU\xb6\xa8\
+\xd3\xbffz\xcd\x86t\x1ac7\x1fwK`\xdc\x01\
+\x8a\x03>=Dg\x9fpv\x8b\xb3[,\xd4\xc9\xb5\
+\xf7U\xe0.\xf0\x82\x9cK\x98\x8ceym\x1c\x82\x85\
+\x17\xd5P\x01\xca\xf4\x13e\xf3\x7f\xbel\xd9 \xc2\x13\
+\xb5\xe2\x1e\x17F}[\xc54\xd4\x9cNhm\xe0T\
+\xda\x04*\x0dp\xe4{\xa1\xeew\x02b~0$3\
+\x89[S\xfc\x05\xd0\x025\x07\x85\x8a\xa7\xd6\x16\xe3\xc5\
+\x88e\xfa\xef\x12\x00\xcc\x11\x00\x0ajQ\x02\xc1\xeeU\
+\xb4oP=\x1d\x80*\xb2\xae\x83\xa8!J\x9a\xfb\x9e\
+\x80\xc4\x98\xabf\xb4HHU(U\x94\xadSS*\
+\x1c<(\x8c(\xdd\xf6g\x98\x1a\xadB\x8e\x91\xc01\
+f\x9f\x1e\xfe\xa2l\x03b\xba\xf7\xd8\x18\xc7\xff(\x1b\
+\x12R\x09\x89\xb1Bz\xc2\xa9\x16\x07H\x91\xa8\xb5\xd8\
+g\xfcRSH\xc3\xbc@u6mA/}WJ\
+%\xce\x123\xa2y\x0eT\x95s\x81\x1ef\x8du\xaa\
+\xa2\x0f\x88\xd8\x8b\xbb\xecEX\x04\xd8\xa6I`\x06\x08\
+h\x1c\xec\x80\xd4P\xd6\xf4.JTz\xdc\x8b\xcf\x95\
+`K\xccS\xd9&.\xd6\xf3\x91\xf5\x10\xa2\x8c\xeai\
+\x0e`G\xcc\xa8\xa7S\xd8\xbf\x01\x88:\xd0TYA\
+\xc1\x03d\x19\x03\x99\xa9\x1e=\x0f\xda\xd4\x17\x0c&-\
+7z|\xf5\x0c\xaa\x84\x19\xbb\x99\x00\xa6\x03%\x81\x8a\
+^a\x81:-\x19\x15\x85T\xb4z\xfd\xe9\x1dWI\
+\xd6\xeb\xaae(\xfb|\xbaZ\xd9P\x09J\x0f\xeb\xe1\
+MI\xfcJ\xbc\xb4z\xc8\xafT\xb6\xf4\x98\x7fH\xf5\
+\x987\xc0\x90\xe7\xd4@\x8d\x03_\xc2-@\x90\xd0\x99\
+\x13\x7f\xbb\xb5\xd5\xac+\xc2ZJ<w\xe3>U\xde\
+|\xce\x15\xca\xe6\xff\xfe\x9e\xb2-\x10\xe8\xe7\x8c:l\
+\xcc\xa4i\x0e\xfc\x8cqM7+\xdb\x18\x19\x00\xbb\xe9\
+X6?\xb6'\x96m\x896-\x80\xe9)eC\xe0\
+q\xdd\xb2-\xb1:\xfe}\xd90\x867\xbd\x96\xd3\xdb\
+\xcb\xe6\xd7o,\x1b\xd4\xe8U\x0e\x89I\xa6Be\x8a\
+J\x03\xf6Dg\xa3z\xed\xfb7\x83\x85\x98e\xc4\x7f\
+;@\x0c\x83\xa8\x03)\x8c\x08b\x93\xa9\x5c73@\
+o\xf2\xc3\x028\xa4ec??\xdbsk\xc0L\xc1\
+BB@\xf5\xdesM\xbc\xd4\xbd\xff\x19s;\xc7\x18\
+K\x9c\xb10\xd4\x1e4h\xc7D,\xb5\xfd\x99D\x04\
+S\x8a\x9f)-\x9e\xdb,@\xf6c\x17J\xf2\xef\xa6\
+\x95\xe0\xb7k\xc0\xe0\xe2\x07\xfe`\xa9\xa4\xa9\x14\x0b\xa4\
+\xf7j\xf4\xefN@j\xec\x9e^\xe0O^\xcf\x8f9\
+\x9a\xba\xed\xe9\xb6\x83\x08Y\xe2'\x00\x0a\xed\x84\xb3{\
+\x97\xcd\xaf\x8f(\xdb\xfc\xc6\xe9A\xa7\x07/\xe341\
+\x94$|\x9e\x9b\x00\xb9N\xeb\x07lqZ\x17\x00\x00\
+6O8,\x9a\x02\xe7\xdd\xeb\xbc{N7Z\x80\x81\
+\xaf\x5c\x80\x81h\xf14e\xdb\xb9\xa4\xa2NTR\xa2\
+\xc6\xef\xd3N\xb2\xefQ\x9d\x89\x15^\xe3x\xcd\xe35\
+71\xb1\x8e+v\x9a>\xcd40f4\xcc!\xf1\
+g\xef?\x89\x85\x84\xd2\xfa\x16\xb0\xbfs\xf6\x16\xef\x5c\
+\xfc\xfa2\xa5\xa9\x99\x8c\x80\x05\x1aC\xf6\x0d\x0d\x02\xcc\
+\x84$&\xc4\x14\x9b\xc2M[\x05\xd3K\xdc\x1c\x7f\xd8\
+\x15Z~\x12p\xed\x1c\xf3}%@\xe2>\xf1\x82x\
+PA\x0c\x80\x90\x04\xbd\xd5\xe8\x01\xae\xc6\xe1Y\x074\
+-h\x14\x04\xd0\xeb\xf5.\x11\xc4\x5cPi\xa6\x1d`\
+J\xc5N\x14\xb1\x81\x1a\x05L\xad-Z2\xc59\xc6\
+9F\xc3\xe1tV6$V\xf2\x18Sq\x14B\x01\
+M\xceE\xfe_\x5c\xa6\xf2+A7\xde5\xe3\xf6\xfa\
+|\xf0\xefi\x05\xd1\x90q\x1f1\xbf<\x87\x9c\xa7\xfc\
+r\x03*\xe2]qb\xe27\x9a=\xcd\x04\x12\x07\xa2\
+\x8e\xd3`\xfb\xd3\x00\xb84\xc2\xd2\x22!\x0ehq\xcd\
+\xc4S\xa7\x9f-\x1b\x000qP\x98\x17\x0d\x84\xc8'\
+\xedG\x09p\xee\x7f\xf7\xea\xbb\xae0\xa0\xfa\xf9\xab\xf0\
+\x03\x08\xd2\xd2\xd0\x80:\xbfD#\x093+\xad\xc1]\
+pu}\xe2\xa3\xcf)\xdbD[\x1b \xb5\x0f\xe4\x9b\
+\x00\x11\xcf\xcb\xfb\xec\xc6\xea\xb5\xff\xc7 \xc3\xb8\x01\xf8\
+\xf8\x01d\x8cc\xdf\xaf0h\x17`z\xb9\xff\xf6\x8d\
+\xeb\xc1\x18\x91\x1f*\xe8\x01\xec\xd2\xd2\xdf\xf1'\x86\xbc\
+\x16\xff\xac\xa3s\x8d\xb8\xa1\x5c\xd8\xf0\x16\x86qq\x12\
+q\x8e\xc3\x81V\x15\x89\x9bE\xec\xe8\xa1\x83#\x8a\xf8\
+\x0b\x84\x11R\xdb\xd4\x9aPS\xba\xe2\xa2\xb5\x00\x02\x93\
+\x1b\xd2=\xf1\x1f\x96D\x95\x83q\x1d^]7\xea\xfa\
+\xb5O\x1fz\xfa\xd0\x88\x03\xdd.\x0b\xe4\xfc\xf4\xfe\xfe\
+\xda\xf0 i]\x07i\xee\xc4_\x02\xc6\xe1U\xb8r\
+\xad$\xc6\xaf\xcc\xf7\xbe\xc5\x00\x18\x08\xc8\xcb\xbd~\xe1\
+\xee\xba\xde\x9f\x05x\xf1\xd0\xd3\xef\xb5\x96\xcd\xe5\x86\xdf\
+/w\xf2\x9e\xa1R\xe9`\xa9\xb4\xe4\xb7\xb7\xe7\xd4=\
+\xaeo(\x9b\xff\xfc\x8c\xb2\xa1R\xabR~\xd9P\x0f\
+_\xb0\xce\x17\xeeqH\x01\x5c\x88\xf3tbga\x87\
+\xe2\xd8j\xf8W=]\xed4\x8e\x15$.\xc6a\x06\
+i\x9b\x97\xd7\xa22y|\xfc\xf1\xc7\x8f?\xbeT,\
+\x16J`#\xd19\xf0\xcf.,\x9b?\xff\xef\xd6i\
+\x01]y\x90X\xa2X:\xa0\xc3\x00 \x02\xd7=\x8e\
+\x7f8\x7f\xb3?\xdc\xc6\xcc\xf5\xc6\x02\x04\x84\x0a\xda\xe2\
+v(oT\xa0\xa9\xf0o=\xa5\xabh\x0e\xc7\x01a\
+V\x81C\x8d\xff\xfe\xb5r\xd3\xda\x02\x90o\xd30\x88\
+\xf6\xf9|L\x00\x15o\xa2SZC\x1c\x1c\x02\xc9\xac\
+s\xe3\xc3\x1a\xd9\xa6\xda\xafb\xaa\xa2\xe0\xf736q\
+~\x86\xeb>S\xb1\x05\xc0I\xc88,\x81:\xf1\x22\
+H\xae\x8a\xb6\x8a&\xc6\x8cq\xa1\xc4\x00\xad{\x80\x02\
+\x84\x91\x18\xdf\xf3B\xd5\xd5\xf3\xe5{8\x00B]n\
+\xff\x90\xca\x93\x04\xbd[w\x88\x88\xa6\xc2\x8b\x9a\xdc\x09\
+\xb4\x8a\x84\xb1/\x80\x84T\xb6\x8e\xb7*\x1b*\xe3\x00\
+\x0f\xeb\x85\x83\xd73\xe7}\x048\xc6\xd2\xe9\x81\xe4/\
+\x01\x06\x02;\xe3i\x04\x8a\x12Y\xfe\xd3\xe7\x10'\xd2\
+c\xab\xc2\x8a9\x80\xba\x18@\x93x`\xcf\xdb\x16\xb8\
+\xabl\x0a\xec\xac/\xd4z-&(\xd0\x80\xb8P\x06\
+[\xe5\xd9\xb8,\xc0\xae\x83D\x85O\xcb\x83J\xad@\
+Z\x80\xe5~\xa4\xc7\xf4pQ\xd9\xc6\x98\xe9\xdeF~\
+U\x05^\xe2*1\x0ec\xa1\x995*.\xd6\x0b\xc0\
+\x00\xc0\xa6gT\xc2+\xd0\xc8y\xd2\xbd\xff\xf6A\x12\
+\xd7\x9e\x16B;D\xe5\xd6uc\xf2\xbc\xe1\xf0/\xe5\
+\x1f0\x95ZlO+O\x12\x89K\x1eQ6P\xd5\
+\x93\x004\x95\x13C\x02\x10\xf2\xe29\x0d{qDO\
+\xaf>\x009\xfb\x8a\x8dy\xc6I`;\xe0\xd7k\xab\
+\xf5\x82\xff\x91\xe0\xa9\xc8\xa1\xa6kMQ\xc9\xe3\xefi\
+\x92\x00\x0a\x01d\xf1o\x0dt\x00<\x03`\x9d=\xab\
+lI\x8c\x16\xf1\xbdK^Y\xb6\x05T\xc7\x8f*\x1b\
+\xd4\xc3\xb3N\x89\xaa5\x00\x1d\xc0g\x0e\xbf\xd6q\xac\
+\xbf\x1a \xe67\xca\x86^z\xadb\x8f\x9e\x1e3=\
+f\x08\xe0Q*1?\x9e\xbf\x8ey\x5cf\xfc<b\
+\x03\x84\x1a\xd8J\xc1\xe2\xf4mk\xcbW\x8f\xbd\x0aP\
+\xd1\x1a>\x9f\xb3\x02\xc0\xf3\xdf.j\xd9\xdd\xd3\x8bQ\
+\xa3\x12\xa9\xe5\xc5\x180\xfe\xf9\x8f\x02@\x19\xb3\x99@\
+\xac\x81\x84\x9b\xae\x9f+P_\xd6\xdd\xfb\xb6\xfd\xd5~\
+E\x02!>p>K\x181<\x04\x90yn=\xd6\
+\xee\xab\xe6\xb4\xec\xab\x06j)\xad\x95[&\xe1\xc0\xc4\
+\x22\x1e\x1b\xe6\xa7\xe7\xdc\xf3\xdfw\x8c\xc5f\x8e\x84y\
+5\xbdnz\xfd\xf4\xbae:\xces\xa7U,\xef\xcd\
+Ka\x85_\xe0\x07\xf5\xac\xd70\xde\xff\x0cPx\xb3\
+\xe1\xdcO \xdbc\x13\xd3R\xd6\xfb\x1b\xc3\xf4?\xcb\
+\x86q\xbbW\x09\xd0\x9e\xa9\x18-\xd6)>\xcb>\x9d\
+\xbe\xbel\x13\x89\xebi\x0a\xd4\xcc%\x10\xe2L\xe2c\
+\xf6Y\xc6\x88vE3\x89G\xb7\x94i\x950F\x90\
+_\xde\x9d\x8f\xfcrOK >\x89\x0a\xcc\x0f{\xee\
+\x18\x86a\x0a-\xfe\xe8\x1b\x87\xf7q.\xf0\x0b\x98\x91\
+\xc4\x18U\x94\x01A\x00]c[\x01n\xd67\xed\x01\
+S}$D\x12P\xbd\xf6\xd6\xb7\x82\x97\xb8\x958%\
+\xa0J\x1c->\x908)\x10)\xe0\x89\x83\xac\x1b\xc0\
+\x02\x86M\xb4%z|\xa3\x04Q\xdc\xc4\x8f\x02\x94\x14\
+P0\xd1\xe4'\x18o*\xd6\x00\x10\xcf\x8b\xb6\x0a\xa6\
+)\x7f)o\x89\xaa\x7f\x03\x0f\x0a\x03\x80J\x22\x92;\
+\xe0\xb0\xfd\xb0D\xdc\xf3r\xae)\x8c\xa0\x9cc\x0ec\
+<e\x1d\xf5\xd4,@G\x00\xaf\x16G\xa4\x19\xe4\xfe\
+*8`\x18\x8e\xe2\xe2\x17\x0f\x80\xceG\x07\xd0\x14\xd7\
+9\x8fr\x1e\xf6\xf8W\xe3V\x03\xf4\x9f\xeeP6\x14\
+\x8c%\xf2\xfc\x93\x84uk\xd9Z\xe3\x1f\x85G\x85>\
+\xf1\xa8\xf5\x8c1\xa5\x85-\xfb\xaa[\xf8<\x17\xf1\x85\
+\xfcD\x5c\xb2\xd7\x9a3\xdd\xc6\xf4\xb1\x14\xa80\x81Z\
+\x93\xc5:\x07\xf0\x00t\xc4\xcf\xfe\xde\xfd\xb5\xbf\x9d3\
+\x98Aa\xec]\x8a\xe1\xed\xbe+|\xf2'\x189\xf2\
+Y\xfe\xcb>\xda\x17\xbc\xe5\xe1\x80c\xdfW<\xb9\x1f\
+\x07\xedz\x03\x88\x9d\xeb\x00\x92\x18]]\xe6\xd9p\x81\
+\xc6\xc59\x00\xf6\x94{\xbf\xe7BC\xe9i$V\xe5\
+\xc9\xbf\x93\xf8$\xd0j\x87\xeb\x829\x06\x9f\x97\x0b?\
+]\xb0\x22\x17=\x1d\xc0\x0d\xca\x17:\xbd\xb6l\xb9.\
+=Uk\xa0-q)\xbc\xf0\x8e\xc3km\xe3_\xcf\
+\x82\xbd\xecv}\xcb\x9c\xf8\x0b\x930\xdd&\x08\xcb\xeb\
+\x87\x8a\xbf\xb1\x85\xc6\xf7U\x05\xeczC\xab@m\xa3\
+\xbf\x1b\x16\x88\xc0\xbf\xd2\xc8\x8f\x06\xc3\x0c\x9f\xeb\x81\xd9\
+\xf8I8:Q\xaa:\xef\x93\xe2\xb8^=\x1cT\x18\
+\x17\xc6\x83\x18\x07%\x01\xbd\x5c\x0e0\x08 \x15\xf0T\
+\xce\x1d$\x0e\xfa\xa6\xe0atH\xac\xcc\x93\xfe\xf0T\
+z\x22\x06\xd5\xaa\xf0qL\x87\x7f+\x1b\xa6\x06\xa4\x97\
+\xb7{\xe0\xbf*\xd4L\x14\x9c\x04\x16\xed\xd8$~\x00\
+\x0a\x95R\x95?\x22 \x12\x1f\x1b\xf1f\xf3\xaa\xb9\xd9\
+0~,\x14\xcd\x0e\xb8U\x22\x9f\xb8N!\xe8\xf1\x5c\
+\x0e$\x09/\xd1\xaeP\x8b\x0f\xaf,\x1b\xd4\xbb!\xc0\
+\x19\x03\xd8L\x04b\x22*\xa9\x90~\x95&\x8e\xd4\xc1\
+\xf1\x0be\x03%\x0fc\x00\xf0e\x1d]iu\x94\xad\
+\xaa\xcbq\x020\x8c\xdb\xd2\xbb\xe5\xc0OO\xedy\x7f\
+\x9b\x03\xfbE\x09\xf0$\xbc>G \x99\x83\xbe\x9f?\
+@P\x05\xc0t\x06\xe2(\x12[\xbd\x80\x027\xa2&\
+\xfc\x02\xed\x84P\xaf\x89%\xf6:\xe1\xe8\xd3['\x90\
+<\xbbg\xd9\xb0.1\x09h\x92D\xfc\xac{\x04\xfd\
+9\x89\x929\xaaM\xa1\x92@\xa7\xa5D\xa0~\xfa\x81\
+\xb2\xa1\x92\x05\xb1E\xb5M\x8fVS\x88}O\x8e\x97\
+\xbfJ\xc2\xdb\xe2{y\x1e\xcd\x18\x22\xe2\xe8\xbe\xfaA\
+\xed\xa4j\xae%\xc0\xfe6g\x97\xc3\xe6\xa7\x89\xf6a\
+\x0a\xa8\xa4:h$\xf4\xa8\xc3\xc6\x95\xd1\xd2xG\xd9\
+0\xbeM`\xee\x80S9\xfb\x97\x85\xd4\xbb\xf5\xee\xeb\
+\x09\x06\x0ca\xb6\x08\xa8$\x9e\xa9@\xdbg*\xf0\x0d\
+\xd0\x11?\x04\x0c\xa7\xc7\xb5\xa9\xee\x0e^\x1a\x0f\xa9D\
+\xf6\xe7`\xda\x84\xb2)\xe1\x99\x9eU6\x88\x06\x9a\x03\
+\x9e\x80P%\xad\xc7\x01J\xd0UN\xf4\xa4g\x1a\xc5\
+\xf4\x89e\xc3\xe7\xbdhm\x91:=\xa8lP\xaf\x8f\
+Zq\xbfji\xd2\xaa\x13\x86\xd1\x1c\x8c\xae\xd3G\x8c\
+3\xdak\xdf\xf8\x91x\x08\xc8\xf8o\x81J\xa8\xfb\x9d\
+X\xab\xa0\x12\x9fTi\x92\x98~\xc7|\x1a|\xc7\x92\
+\xf8\x7f\xdd\x92\xf8\x0b\x8c\x05JZ6$\x04\xc6\x16\x02\
+\x14\xa9U\xab\xdc\xb8\x1fa~Lo\x9d\xde2\xbde\
+\x13I\xbb\xe4\xc1e[\x22y\xfc\x94\xb2-\x81\xa0\xa5\
+\x82\xe29]\xb7lk\xfdjf\x9b\x9e\xfb\xdc\xf7\x06\
+h_\x92\x0a\xeb\xffLn\x96\x00\x00 \x00IDA\
+TS\xd6\xf58=d\xfa\xe6\xe9\x9b\x07\xc6\xd0\xf7f\
+\x8c\x5c\x9d\x16\xdf6\x009\x18/D\xd4J\x1a\xb0\xc6\
+d\x15\xd1\xa2\x02\xed\xef,[\xb4m\xd6\x96\x00\x89\x92\
+\xfb|\x9d\x95\x114\xdd\xa3l\xfe\xfd\x87\x95-\xf1\xcc\
+\x9a(<|\xd5\x84\xc1`;\x9d\xads\xae\x8d\x8bm\
+\x86\x0b\xea\xf2\xb5\x12\x88\x9b\x12a*\x09j\xa9\xcf\x17\
+\x0f\xa9\xf0\xec\xa7I(\xa0x\xae\xd1\xfa\xe8\xb1\x85\xd5\
+\xe3\xfa\x8c\x81q\xf3\xc2yU\xbep`\xdax\xff\x0a\
+\xaf\xff4@\x5c\xb5N^T\xb6\xf4\xd6\xaf\xa2\xad\xbf\
+\xb7\x02\xf8\x00\x96R\x00*\x0d \x22\xd2\xd3\x03\xa7\x07\
+L\x0f\x5c\xb4g\xde\x5c\xf7\xaf[\xacPP\xb5\x96\x19\
+\xdbYZ\xdc\xd7[5\x13\x96i\x18\xd6\xaf\xeb\xd1r\
+\xe0\xbeH\x90Pl\xf9w\x89Z4yN?\x95\x84\
+\x1e\x90\x08`y\xc2\xc2\x1d\xe8\x8as38\x00\xc54\
+\x17\x88\xe2\xbd\xbblK<\xa6W\x96\x0d\xe7Y(\xc7\
+Mmw^J\x94%\x1c\x12\xd5\x88\xd2v\x9c'A\
+\xc1D\x958bp9\x9fi\x01`\xc8(\x18\x01\x8a\
+\x03\x9060\x1d\x7f\xd6\xbd\xc1\x00$\x89\xa6\x96(b\
+bZv\xb4\xbe\x11\xf9&V\x0a@\xce\xf3\xebDY\
+|\xe8\x5c\x02\xec\xfa~\x12\xcd\xdd\x98\xc5\xce\x13\xc4\xef\
+\xae\xcf\xba\xf7\xbc\xf3\xdf\xbb\x80\x00`\xd0#\x1e\x7f\xd3\
+Th\xf1\xa2x\x88\xf8\xa7s\xc6\xfd\x00\x04\xa8\xf4\x8a\
+\xbf\xc5\x93z\xac}\xae\xf8\xd1\xf5\x06xnf\x87\xf3\
+\x1d\xf0N\x13(\xa2\x84\xce\xdd\xf6\xb7\x80\x02\xc0\x84s\
+M\xa1A\xde\xe3\xfb\x1b\xe3\x08\x18R1\x96h\xfb\x1c\
+\x00\x03M\x16\x8cJ\x8cA-\xa8\xfb\x9ep\xe2\x89\x0a\
+_9\xd7\x9bR/au\x8ebN\x9a\x86@\x1c\xf6\
+\xfb\xca\x86\x16\x1c-\xca\xee\x87s\xcd\xab\xbc\xcf\xabs\
+\xdfy\xac`\xb1cp4\xc3\xcd\xf3\xf2\xefMa\x88\
+\x88^3\xbe\xe4\x0b\x00\xadg\x97mq\xa3\xe9@\xa7\
+\xf7\x97\x0d\xa2\xae\xcf-\x1b\xee\x93\x04\xdc\xf7\x91\xf7\xee\
+\x0a\xe2}]\x9e\x8f\xfco/\xe2\xee9[\xd7\x0ay\
+\xf6\x8f\x82\x991\x93\x98\x90\xce\x05\x9f\x0f\xf0\x12O\x8a\
+'\x00\xbb\xe2}LB\xeb=\xefs\xae/\x10B\xe0\
+\x81\xfb\x87\xfe\x81\x9e\xf8\x9dJ\xff\x82D\xbd|\xd8\x08\
+\x12*\xd4\x04_\x18\x92\x94\xb9\xda\x9d\xf8\x98\x9f\xb8\xa7\
+\xf6;8\xdcx\xc8\xd7\x9b\xd2\xf3K\x8d\xf7me\x0b\
+\x12\xb4\xaa?\x968\xcc\xc5\xc3\x03-i\x98\xdf\x8c\x98\
+\xd4\xdd\x07\x07\xa4\x22_\x8f\xef\x0a\x03\xf5^e\x1e \
+\xe2\x81p\xe8\xef\x5c\x06\xd9]zz\xc1^\xb4O\xc2\
+f\xa3\x7f\xd0\xa2\xaf\xbf%\x10^9H\x1b\xbb\xdc\xfe\
+;\x87\x07\xee\xc1\xd56\xf8\xa4 L\x1f\x91J\xc1\x97\
+-\xd4\xfc\xd9\x86\xb9\xe0*AZ\x17~\xbal\xfe\xfb\
+\x0fZE\xfe:p\x17\x10\xe8\x917v\x89\xda\xae\x03\
+\xe6\xd3\xf2{?\xbf\x06\x16\xa7\xf7\x9e.:]4T\
+\xb2B\xdd*m\xe1R\x17\xf6\xfe\xd3\xa3\xca\xe6\xe5t\
+\xd3s797\x1f\x8cg?Q\xb6Q\xa8\xf6\xa2\x92\
+\xddS\xaf\x07/\xe3\xbd\x9a\x12k\xdc\x17j\x93J\x89\
+\xde\xcdT\xca\xdb\x81D\x8c\xa9\xc7\xcc\x01\x04\xf4\x1cB\
+\xbc#\x0a\xd2\x88\xe4n,K\xf7\xa4\x9a\x87\x8c9\x90\
+J\xbb\xfb\xda\x14o\x81\xac\x0d\xea \x14\x90\xfd\xc5\x0a\
+ to\xb9\xd6\x85\x91\x1a\xf4\xfea\xec\xdam\xd6^\
+\xc4\xee\xed\x848\xebu\xd2\xbb&\x91\xc4\x94\xb0.\x89\
+\xbep\xbc\x00\x09\x01\xbd\x1e<\x09\x89\x7fg\xdf90\
+\x00\x1a\xa8\xd6\x99?\xdf\x07\xcc~j\x87\x1f@\x80\xf9\
+\xf5(\xcb\xa1\x8e\xf5\x5c\xeb \xba\xdd\xb3e\xacP(\
+\xff]\x99\xcbs\xb9\xe4UeC/g\xa8\x83\xa7+\
+\x97m\xd3*:\xe1\xdc!\xc5\x1c|\xf7\xd0s\xc0\xa9\
+\x9c\x9f\xbe\xb0l\x00\x129~\xeb\x11\xa3\x82\x86\x03Q\
+&\x8c\x82}\xc5a\x87\xec[g\xf3\xf3\xbd\xcd\x024\
+\x0a\xecU\xe8\xb3\x9fZ\xd5\xdd\xbfs\xc0\xfa~\xbb\xb1\
+E*\xda=F\x90_\xf6\xfb\x00CL\xac\xf2J\xf5\
+|n\xb0\xb6\x82\x9c\x8e\xb9\xa1\xde\x97\x9f\x10P\x09$\
+\xa8}K$T\x8e\x04B\x98J\xees*7=\xfe\
+.\xeb\x9f\x9f\x96P5\x150~ZKK'\x5c\x10\
+r\xa2\x86\xce\x13=\xd7\xa1\xbe6\x10Wi\xfa7/\
+\x94\xeag.\x00\xe3\x13\xe6\xfb\xf3\x84\x01(\x8a\x9fn\
+\xbf\xe2@v\xdf%\xd8\xd9\xff\x9d\xb0\xaa\xa4\xba/Y\
+\xc7\xc7\xc7\x95\x0d\x80Q\x12\x8a\xc3#\x02\x84\x00\xbe3\
+\x16\xa9\x13R\x07;\xf1\x22\xf3\x80%F\x12\x04\x01!\
+\xea\xe2\xe7\x1c>{\xa9\xc0\xddz!\x83o\x010\x86\
+\x04\xed\x10\x8c<\x8c\x0a\xebYK\x17\x80/\x95L\xea\
+\xf7\xf6\x0f\xf5\xe4\xa5\x8et\xdbaZH\xfc\xe1\xf4\xea\
+\xb2\x8d:k*\x8a\x04\xc3X\xd5\xe9Ae\xdb:6\
+6\xf4\xf0\xd2\xb2\x81\xc2\xac5\xcb\xba\xe1\xd7\xe2W\xa7\
+\x9b\x94\xcd\xff\xfeG\x8e\x8f<>r\x19\xe7\xb8\xfa\x97\
+\xac\xf3\xe9\xf2eC\x05*@fk\xc3D[\x05\xb3\
+\xee\xf0sk\xef\x7f\x9f\xc7(\xf8\x11]k\xb1\xc2\x1f\
+_\xa9\xb9\xd3\x8d\xa6\x1bN\xf3\xfd9\xbe\xa4lX\x97\
+(\xefY\xc7\xc7\x1f.\x9b\x7f\xff5k\x0b^3i\
+\x88\xc5\x9a\xde\xb0kq\xe9\x84C\xa2b\xfa\x8e\xc4D\
+\x80\x89\xb1\x01\xb0\xbcm\xa8\xfa\xe2*\x0c\xb6k-\x90\
+\xc3Z\x11\xba\xca\xd0\x9b\x1e\xe0z\xb9\x0f\xcfY\xbe\xff\
+\xa2]d\x1f\xd1\xc2PPX\xf6\xfb\x9d\xd3\x8b~\xc3\
+\xa5\x10q\xd7\xa5\x10!\x81q\xde8\xdf\xc5\x83\xce\x09\
+\xf1`\xe2\x9b\x16\xb9B\xedF\xc9&\xe6\xe9\xbe\xa0\x8a\
+\x9b\x1f\x1e\x8d\x86E\xb9\xe92\xc3\xf7\xf4\xfe\x98U\x00\
+\xda\x00\xbf\xddRE\x0c3b\xabz\x91\xbb\x07\xf7\xf9\
+i\x05y_\x18A\xdf\x93\xb1\x8c8\xa3\x17\xa4u\xf4\
+\xc7\xc3\x00\xd4\xaaF\xb4V\xc2.\x91\x8b\x98[3 \
+B\xc5m\xe6@4\x1d\x9a\x1a.\x1eT9\x05\xb0W\
+\xc7\xf65\xb2_o0$\x94\x12\x01~\xc2\xe7a\xc4\
+z_q]\xe2\xf3\x06\xc6Tl\xb5\xd2\xa9\xe0\x8b\x87\
+\x9c\xe3(\xca*\xcd\x18u\x12%\xd7!\x0e\xa6Ro\
+J\x0d\xaa\xb6u\xa2`\xa8%\xd8\xba\xe5\xdf\x9d\x83Z\
+\xa8r\x9e\x9e\xbe\xbcl\x88\xb3U\xeeQ\xe5]7f\
+\x99\xb8\x06\xd0\xbdg\xd0\xf1\x83\x80\x0d@v\x18PM\
+\xe5v.\x02\xce1R\xf8\xd9\x5cOk@8g\x01\
+x\xce\x17\xe7\xb9\xeb\xf1\x5c\xdc7\x85\x0a\x95a@-\
+\xf1^\xcc\x18\xdf\x1b\xe3\x8fh`\x0a\x19\xcd\xd4\x10\x07\
+\xec\xa8\xe3\xa7?*\x1b\xe2\x1c\xf9\x1d\x00J\xe2\xcd\x1f\
+I0\x89\x22\x03\x88\x15z\x01h\xc6g\xd2\xbe\x10_\
+\x12eNa\xb1\xff\x1c\x00\xa0\x0b3\xd6\x07\x80H\xfe\
+\xe7{)D8\xe7]/@O\xbc\xab\xc5\x9bf\x95\
+\xfc\xd6\xf5\x00\x10\x88\x7f\xd2\xe2\x90\x17\x99r#\x9e\xf7\
+\xdc\xbc\xbf\xfbe\x1d\x02\x04z\xfex\xd6\x99\xfb\xf7\xff\
+\xd2|s\xff\xadG\xf1\x94<\xd3\xb9\xb0\x17\xa7\xde1\
+\xe6\xfb\x15\xa0\x0f\x08\xc0\xf4\xc3\xeczx\x19\x11\xc0\xb7\
+\xe4\x83\xde=\x1c,.\x0c\xb5AerG=\xe8\x05\
+\x0b\x11\xa2\x82\x0fI$.H<L\xc0#\xf1\xd0\x8b\
+\xc5\xc1\x01\x02\xfc\xbd\x04\x98\x83\xf7\xa0\xf4\xe6|\x7f\x10\
+\xaf\xdb\xaf\x14\x94\xe3W\x96\xcd\xafW)\x1b\x90\xdcZ\
+\xae\x0fN@{\xc7\x01\xd8\xa8\xc73<\x88%\xa1\xbb\
+\xc2\x80<y\xb0n4&\x80\xc4\xbe\x8e\xb5k\x0e\x0b\
+\x15\x05\xe4\x1a\x8b\xae\xebz\xe0~\xf0\x008\x8cc\x1d\
+\xde\xb3%\xd0\x8d\x90V\x18\xff\xbaa\xe3q\xf4\x1e$\
+\xd1\x8eJ3.NE\xe9\xd3\x07\x84\x17\x85J\x8f\xbb\
+@\xf5\xf3WGq\xba\xcf\xe9\xde\xa7{/=n\x8b\
+\xaas#\xb7\xa9\xe8\xce\xe9\xee:\xd6\xef/3\xbe\xea\
+\xc3\xf2\xbdn\xb9&H]\xe1J\xcf`\x8fe\xba\xf1\
+*N3\x87\xfbK%y\xfa\xd8\xb2\xf9\xf5%e\xf3\
+\xebo\x97\x0d\x08y>w\xfa\xac\xb2!q\x86\x00\x03\
+\x8cv\x15\xa0\xc3\x15\xca\x06\x0a\xaf\x7fG\x04\x0a\x10\xe0\
+{Y\xcf\x09Dz\x1e\xb3\xf1\x5c*\x05qd\xadV\
+-pA\xe5IeP\xc0@\xbd\x1e\xe5\xb8)\xd5\x90\
+s\x81\xddM\xff;\x15\xe7\xf0\x9aUD\xd1\xf3jQ\
+B\xd4G\x07\x1e\x07%1\xbc~64\x87\xaa\xd7-\
+\xd7\xd5\x00\x1e\x8a\x93\x8a\x80\xfd\xc4\x81Y\x1f\xbe\x9f\xe7\
+!qwA\xd6\xe5\xbe\xe7\xc9\xba\x84\xd0Zwzh\
+1X\xec\xbb\xfd\x5ci\xe2R\x17\xad@\xd2\xe9ze\
+\xf3\xebG\x95\xcd\xaf\x9f]\xb6\x05.\xcd\x80H\xc2h\
+N\xb91~Zd\x1a\x81v\x9f\xa3*\xdes\xd5\x89\
+\x02e:B\xb7PP\xf3\x0d\x83\x86x`\x07p\x80\
+&\xc8\xb0\x04\x16\x00\x83\x0a/\xa1\xd3\x83GUYe\
+h\xdf\xb2\xe4 \x15\xa8\xd0l\xf0\xdc\xe2'\x9baB\
+e\x98\xff@\xa1\xd7\x22\xa4\xc5F\xa0\x96\x16\x9f\xeeU\
+\xe4\xaf\xf9s\xd41\x94\xf8\xdb\x1b'\x97\x83\x89\xdf\x05\
+\xc8\xde?\xd35 \xec\x025\x81\x99\xdf\xb7\x8eS\x91\
+;\x5cP\xb6\xcd\xd9E\xb9n\xe6Ez\xb0\x8d\x8d\xec\
+\x03*\xa2f\x9d\x00\xa10J\x94\x89K\xa1\xe6g\x0e\
+|\x03\x9d\xa1\x847\xa3\xe9\xce\xeb\x14\x8b9m\xf8\x8e\
+E\xdc-\x15\xf2n\x01\x00\x08\xd0\xd2P\xb9\x11\x18\xeb\
+\xe9\xcf\xba\x9c>\xbf\xec\xd2-;\xd6\xc9\xf1Qe\xc3\
+\xc1\x0d82\x0d\xa4\x12\xa8\x1b\x0f@7\xff\x04X\x13\
+\xc8\x02|\xa2\x95\xd1\xe3\xff\x9c\xb7z0\xb5j\xa8\x04\
+\xa8\x88\x98oL\x5c\x0d\x00\xc0\x1fX\x7f\x02IS%\
+\x9e^6\xb4\x82\xd4>\xfa\x86\x058\xfd\xe6\xd2f)\
+\xc2~Q\xf6{\x7f\x00,\xafU6\xdf\x9f\x7f.\xdb\
+ZK\xe6\xab|b]\xe7\x02 \xbfw\xa8\xe4\x008\
+\x5c\x97@\x19\x90f\xffP\x9d\x0f\xd3\xef\xf4\x9a\xb2e\
+\xbf\xd1R\xb9\xef\xe1\xbe\x9bX\xd5\xf1}\xc7\xf7\x1f\xdf\
+\xb7LuyzMu\xb1\x0e\x1b\x00\x15O\xfc\xd82\
+8\xab\xc7J\x9e^:\xc7\x15/]\x988\x0b\xe5|\
+\xfa\x9e\xb2\xad\x17\x7fzg\xd9\x22Z\xba\x02\xc7\x18\x1a\
+\xc4\xf2\xec\xef$0\xa7\xaf\xc8y\x9b)&\x87G\x96\
+\x0d\x89\xec\x0bO/\xa8\x00\xfc\xf0\xb8\xf8\x15\xebL\xcb\
+E\xa8\xe1Ktr\x96\x7f\xf7\xa6\xc1\x7f\xd0 @\xf1\
+\x96\x80\xd9/\xb4A\x8c-\xc3\x04\xcb\xfd>}d\xd9\
+\xa0\xfd\x04\x10\xb9\xe4pq\x01\xee\xa7[\xaf\xf3\xb5\xe7\
+5\xb7\x14\x1c\xa6\xcf\x9d>{\xfa\xdc\xa1g\xd6:\x05\
+\x14\x03\xca\xb5\xc8\xa5\xe7\xbf)\xf1\xce\x19\xbd\xcd\xfc\x96\
+\xd6\x19@\xbd\x84\x1f\x80\xeb\x1c\xab\xf4\xab\xa8\xff\xf7]\
+\x9f\xf7\xe1\x11\x87\x1fYZ3n\x1e?A\xdbAK\
+\xa1\xf5MT\x94\x0a\xbc\xdeZ\x05\x14\xeb\x0d\xe3-\x15\
+\xb8f\x0c)89g\x14\x1e0!T\xa4\xc5-\x19\
+7\xdc~X\xe5\x11\x93\x90\x98#\x86\xc0\x7f.M\x11\
+\x1b\xf3\x0b\xe59\xcc\x94.PX\x17u\xfd\xf7\x08U\
+\xfaO\x86\xef)\x81\xc5p\xc4\xb8\xa5\x0dD\xe3\xe9U\
+eC\x02#1\xb4~\xc5\x01\xbb\xb9\xe7\xcd\x18\x00(\
+\xd2\xc81w\xde9\xa0@\x04\x18\xb7\xbfs\x7f\xbb\xb2\
+\x098\xe2\x8f\x14nP\xdbQ\x98\x89\xc6\x89\xfb\x9d\xb7\
+\x18s\xbbi\x04\xddr\x94\xde\xf5\xd6\xd0\x00\x5c\xb8?\
+\xe2\x17\xe7\x84V\x1e\x94zc\xeaT\xb41\xfd0Y\
+\x8c\x13\xe5\xc7\xb4\x0a\xd2\x16\x11\xff\x00\xc0\xecO\x8c\x16\
+\xf7\xf5\xedeC\x81\x92\x1f\xf4*_\xe1\xb7\xe4\x1b~\
+<\x7f-H\xf6\x9f\xf8Wk#\xe0\x0c\xa0\x00\x80\xd8\
+\x03\x00\x12\xcd}\xfc\xe8\xef\x01\x1bz\xed\x89\xa7\x9a\x0a\
+B\x83\x02\xf0\xe3\xfe\xa9\xd8X\xf7\xd6\xb7\xf7\x15\xe7\xf8\
+\x01,\xb8\xaf\x98\xaf\xc6\x85\x02D1\xe6v\x0c\xd7f\
+N`\x0c\xb9\x1f\xb4\x16\xc4\xdb4\x0b\xfe\xb6l~l\
+?[6\xfb\xbb_)\x1b\xc6\x87\xdb\x0f\xf2U\xe7\xbf\
+\xf8\xca\xfd\x03$\x8fL\xfa\x8b\x87}\xe5>\xf0;\xe2\
+cy\xa5\xfd\xbeg\xd2\x8c\xad\xf9W\x1a\xd6\x93\xf5q\
+\x99\x1d\x03\x1e\x10j\xff\xc9#S\xd88\xd7\x0b.\x09\
+e\x1f,n\xa4\x83G\x80\x03\x18\xf0\xc5Q\xf0kl\
+\xc2+\x06\xe4\x92\xa3w\x80{\xb0\xfb^a\x1b\xd1\xdf\
+[X\x10u\x07\x81\xc0F\x82\x0d\xd9\xcc\xc1%\xe18\
+}F\xd9\xfc\xfa\xaf\xb3\xbd5\xc8\xf9\xf7\x0d\xea\xd8\x90\
+\xbe\x821.?|.d|\x0f\x80\x00\x08\xc6\x07v\
+\xf1\xb01<8\xea\x98\x1c\x8a\xd6\x09\x89\xbeW\x89\xa9\
+\x07Y8\xd7\xcb\x07\xc7\x16&A\x07\xca\x0ex\x1b\xde\
+\xbf\xb3P \xc0\x18\x03\x09\xac p\xe6a\xf6\x98&\
+\x89\xd6\x9bV1\x8fN\xa4B1\x0d\xff\xa1\x80\x83\x05\
+\xe9\xed\x0d\xf6\x9c\xb5'\xf1\xf4\xf5\xebX\x90V\xc3\xff\
+\xaa\xd5\x01N\x0f_E\x93\x0e\x97[+/\x0e\xf2\xe9\
+\x13\xca\xe6\xd7/*\x1b\x9e[\xc6\xd2\xb4(\x9fD\x1a\
+\x13@BNL\x89\xe8U\x02\x86N\xc83\xe7\xb8\xa9\
+\xcd*S\xa6\x02d>sO\x01P\x81\x03 \x84\x1a\
+xxu\xd9\xa0\xca\xe9\xdf\x85\x22\xa4\x17\xac\xc79\xa9\
+$Ad\x7f5\x09e*\xa64\x18\xce\xfb\xc4\x1c\xc8\
+\x00%\x22f\xa8\xd1z\x94\x89\x0e\xaaDKL\x05\xac\
+\x12l\x0eH\xc5\xf7\x8fVm\x87V\x8b\x95H\xe6\xba\
+\xdb\x11\xec\xe78\xdbO\xd6\xfb~,\x8cD\xdf\xef\xdb\
+\xff\x02\xbd$~=&f7f\xac\xa9e\x12\xa8\xc7\
+.\xb6\x89\x86%\xf1oQN\xcc\x0c\x8c\x06~ \xfb\
+\xff\xf8\xba\xb2\xf9\xf5\xdf\xcb\x06\x0a^*s\xe7\xae[\
+6\xff\xf7;\x95\xcd\xaf\xef)\xdbD\xb8L#\xe8\x00\
+\xd0\x14\x05\x22_D\x7fP\xe6\xfd\xbb\x04J=\xeeF\
+e\xd4\xfd\xd0k\x17*l\xb7\x98`\x1c\xf0W\x80\x1b\
+\x0e\xda\x81\xb7\xbf\xcf*\xb3\xfe\x9d\x03:\xfe\x18\xa0\xd1\
+\x81\x8d@\x03e\xd6zA\x0dM\x22\xde\x81\x99\x00\xc6\
+s\xe6O$\x1e\xae\x13B\xcd?\xea\xc1\xfd\x84$\xb2\
+(\xf6;Q\xc8\x0e\xdc\xacW\xe2\x95\xf6cz\xd2\xdb\
+\xaf\xf8\xde\x02\x14\x14y\x89\xbe\xf3a\xd7\x12\xd6\x01\x8f\
+\xc46->\x9d \xdb\x07\xe9\xc5\xec\xc4\xda9\xb4S\
+\xe9\xc5$\xe81\xa2\xa9@/\xd3c\x1e=P\xeb1\
+?\x04\xf2\x12\x840\xa7ZL\xf4)e\xc3\x18C\x07\
+\xb1uR\x09\xc5\x95\x86\xd6.\x95J\x01\x151E\xd7\
+I$\xca\xf7\xe6\xef\x052\x182*\x80\xa6\xcd\x080\
+\xd2\xb20P\xe9\x97\xfd\x8a\xb1\xb0\xaf\xf8wE\x0a\x05\
+\xfeY\xe7\xfd\xc6R\x11;\x7f\xf6t\xe7\x0f\x89\x92s\
+\x92\x16J\x80\xd1\xd6\x140~3\xea\xd3\xa7\xab\x9c\xae\
+|\xba\xca\xb2\x8f\xdfu|\xd7r\xdf\xd6\xdf\xb7.^\
+W6\xf8#S3~\xa4l8\xaf\x92pwB-\
+\x91PQ\x12\x87<5Sr\xfc\xe4\xfe\xf7>#\x1a\
+\x8cYx\xf3\xc3-\x96V\x9a'&\xa1\xb3\x0f\x14,\
+\x02D\x00\xae\x05j\xfcR\xc7\x09\x803\x01\xfe\xa7\x9e\
+\xeex\xba\xe32\xa6\xf8\x9d5\xa6\xb7\xcf\x89;E\xb5\
+;\x0c\x97\xd6\x96\x00\xf8\xd0\x90\x10\x0f\x88\xbb\xc4\x05(\
+\xe2\x9f:\xdb\x1d\xf2\xfc?|\xf0\xa3\xfc]\xa9\xf3\xff\
+\xf5\x96`\x1d_S\xb6\x89[\xf6\xd4\x05\x00g\xad\xf6\
+\xeb-\x00\xc6l\xcb\xe7-\x7fn\x11M\x9a:\xce)\
+\x15S\xcf?\x22\x87]\xd1\xb3^\xf9u\xd7\x8f) \
+\x1e\x04\x0c\xa9`\x89\x1f\x9dc\xb4\x87j\x0a\xc3\x8f-\
+\xd3\x84^\xbf\xcc%\xff\x87$\x80\x0f\x89v\xc0k\xd6\
+\xb1\xa8Z2\x9a\xc2\xfcSaH}\xe3\xae\x90aj\
+\x8dJ9@+\xf1E3-T\x1ci\x14\x89\xe7\x1e\
+\x9b\xc2\xd6\xb5\x92\x18`\x5c\x19\xabK\x0b%\xfbY\x5c\
+\xd6\xcfSe9qP\xb7\x9e\x89\x07\xf8\xe1OK \
+\xffI\x01*\xefz\xb8\xcb2N\xac\xa2\xcf\xa1u\xe4\
+R\x858\x80\xbe\x02\xc5\x8d\xcb\x06M\x11\xf1\xbesM\
+\x82\xaa\xe2\xfe\xe7e\x03c\xc4\xf3t~\x89\xf7M\xa7\
+\x00\xf4G\xc3\xab\x0b\x1a\x00bc\xea\x14\xfa\xf6-\xc5\
+\xf2\x90\x00\xa3-~ml\xaf\x04\xdcXg\x09\xb8\xfd\
+-\xc1\xb5\xce\xf8U\xadv\xae\xc7\xfdw.H\xb4\x14\
+2\x88\xa6I\xc4\xac#\xef\x83\x01\x08\xb8\x11\x9f\x01R\
+\xaco~\x01\xd0\x22au?\xb4 \xd2|!\xdeJ\
+\x5cO\x1e\xb4\x9b\xe7~\xfa\xa7\xb2\xe1s\xb5\xb8h\xb9\
+\xdb3h\x02\xdc\x18\xc7\xacw\xbc\x0b\x05\x00\x87jA\
+\xbd\xd2P\xb9\xf6\xea\xba\xc7\xd6\xf1\xf7\x0d\xebw7%\
+\xe3\xf0\xf1e\x83\xaa\xbf}\x0c\xa0\xcc\xb9\xd6\xd3\x1a\xc4\
+\xb1\xde\xd7\xf3\x10\xa7*X\x89\x0bh\x04\xf0\xb7\xf22\
+\xa2\xd4\x18>\x99\xde\xd4\x00\x91\xde{\x0c/Z\x19\x01\
+\x22\x01Z\xa7\x1b\x96\x0d\xf9\x85}\x22\x1eq\x8eXG\
+\xfc\x81\xfd\xa1p\xe6G\xfc\xe7\x5cv\xdd\xee\xa7<\xcf\
+\x98e\xc0\x15qL\xdfO\x5cm\xbf\xd8\xaf\xf6\xa1\xf8\
+Q\x8b\x14\xd1^\xcc\x8c\x14\xf2\xcf\xb5\xe8\x9d7\xe2h\
+,x7^\xc0h!\xefU\x10\x05r\x12\x0d\xbd\xa3\
+\xa5\xd2\xfb\x89q\xa0w\x1bn\x94\x1b\xa0\x12ic\xb8\
+\x81\x90E\x08\x8e@\xc3\xbfK\x02\xd7\xf3\x89/\x9c\xed\
+?6\xaa!jf#\xb6z\xdcZ\xc5&\x89\xbd^\
+|\x80\x80\x8d\xebg\xd7\x93\xd3\xe3\xfd\x04\xf0\x1e\xdc\xbb\
+\x97\xa3dk\x11P\xd9\x19\xe7AN\xc3F\xe5`$\
+\xfe\xe5\x96_>8\x8cz\x0aW\xcb\x82\xf8\xd0\xa1\xe7\
+\x9e8\x96\x00\xc1\xfd\xf0\xfe\x90FT\xc4\x04\x16=N\
+\xed\xf5\xa1~\x05!<~_\xd9\x10\x18\x9a\xc3\xfeo\
+\xab\x18\xc6\xf4\xe1e\xdb\x98\xb6\xeem\xa5\xe6\xff\xacu\
+l\xd4\xe1\xd9\xab\xc3\x99\xc3\xec%p\x9e\x9e\x5c6\x8c\
+}\xb2\xf1\x04T\x1c<Q\xb9\xfd8\x16b^\x10.\
+\x88\xfb\x1b\xcb\x86^r\x07N\xa8\xfc=\x8fX\xa2n\
+l\x98\x00\x88\x16\x80\x96\x07j\xe1\xa8\xfez\xe4\x00\x0f\
+^\xb5\x12\xa4'\xbdU\x85Q\x03\xffv\xd5~8\x5c\
+0_\xdf\x05\x03\xb5[ c\xdd'\x81\xe9\x16\x18\xda\
+\x07\x90d\x08\xbe\xc0\xca\x81l\xfd\xd9\x9f\xee\x07\xa0\xc1\
+:0\xf6/\x22\x91}\xb0\xf9\xf7\xd6\xed~\xaa\x86\x83\
+\xdczWa}S\xd9\xf0\xfe\x9e\x9f@@%\xcbX\
+!\xbd\x9e\x10\xd7\x88Y\x95\xe4V\x89nu\x85\x1f\x15\
+0\x89eS\xb0\xdf\x919\xacU1\xa9\xb9\xceW?\
+]\xedt\xf5\x8d\xd90\xfd`\xd9P\x814\xd6G\x0f\
+/\xd5w\x94O\xd3ETh\x8c\xc3\xca}q0\x1c\
+?P6\xbf\xff\x0d\xca\xe6?\xff\x9f\xb2A\x8c/\xd4\
+\xf6N\xf0U\xdc\xecg\x0e\x99V\x85\x04T\xe0\xee`\
+\x94\x08\x8e\x8c\x9ek\x0c\xaf\x9e/\x7f\xc7\xa1\xdb\x07\xd1\
+\xfe0o\x9bC\xef\x1e@\xf7U\xe5\xdcA\xe9\xf9c\
+`\xa1\xd8\xf2\xbb\xd6\x99\xef\xeb\xe0H\xa0\xd8\x80\xac\x80\
+\x07\x22\x1f\x15y\x81E\xb7\xc8\xa0\xfe\x87\x1a\xd9\xad=\
+\x804\xe3\xd5R\xa9\x9e\xfe\xb8l\xbe\xef?S6\x5c\
+/J8\xb16@\xae@OE\x93\x9f\x15\xf0\xea\xe5\
+\xa4r\x1f\xd1\xb0\xbe\xbf\xfe;-\x05\xd3.\xcc\x83V\
+Q\x8a&H\xdf/\x81\xe5\xcf\xa7R\xf4\xa4u]I\
+\xf81Kz\x8a\x89\xf3\xd0\x94\x87$\x10K\xe01\xef\
+\x9f\xe9\xfee\x1b\xb5\xbf[R\xcc\x93Oe~\xfa\xc8\
+\xb2-!;~k\xd9\xf69]\xe9\xd7\xd2`N\xf0\
+-\xcb\x86\x16!\xaa\xf4i\x95\xea\xcf\xd3B\x86\xca\x1a\
+J\xf6\xf1\x8f\xca\x16\xe6\xc7g\x14\xf3\x83\x96@?G\
+\xadT\xb9/\xc6\x94u\x00CU\xfd[N\xdfz\xfa\
+\x96%\xd0|J\x05\x9a\xc7\xcb\x1c/{\xbc\xec\x00,\
+\xe5\x1ch\x00\xc8\x5cw\x22_a\x1cMO+\x9b\xff\
+\xfes\xcb\x86\xf1\x83\xb7I\x8b\x02\xb10\x15\xde\xe7\x9e\
+\x9eW\x15\xbf\xae\xd0\x8bK\x1e\xb7t\xa1o\x89\x04u\
+\xef\xfa\xbc\xef\xde\xb4d\xce\xfb\x930\xd2\xecO\xc0T\
+\x12\xf3\xb3\x1f={\xec\xd9c\x97\xf5\xbd\xccm>\xde\
+\xf5x\x97\xe3]\x86\x80\xd8\x98M\x8c\x8d\xaf-\x9b\x7f\
+\xff\xef\xcb\xe6??\xe3\xf4\xcc\xd33\x96\xe7p\xaf\xe5\
+9HX\x888\x02\xa6\x00]\x12\x03\xe3\xe0\x02\xac\xb4\
+_BiUy\xc5\xf8R\x91M\xe5T`\xde\xd4{\
+Sj\xb4\x98\x84YS\x0d&\x8bz{\x12\x93R6\
+(m\x83fh\xe5\xfc\xeb\x84\x13\x93\x91\xbfr\x9eI\
+\x1cT\x02\x89\x16\x12\xf1\xe4\xaf\xdc/-\xa4\x80(\xfe\
+\xf3\x7f/v\xde\xe9\xbeeC\xafr\xfe\xdd\xf4\xae\xe9\
+\xdf\xa7\x7f\xdf\xfcPIA\x97\x18t3i\xf8\xbbW\
+$!\x9a\xd6\x8a\x5ck\x16\xf8\x5c\x22q~\xc4\xc1Z\
+\x9f0\x08\x03t\x9f~)\xady\x18\x83\xf6?\x95\x7f\
+\xcf\xc5\xf9*\xfeq?\xb4>\xd0pQa\x070\x13\
+i\x8d\x7f\xa7\xea>\x7f\xe7;.\xf7\xcb9O\xd3'\
+\xc0dO\x8f\xe1O%\xbe\xfc\xa5\x84C\xdc(\xcew\
+\x1e\x88\xeb\xc5\x0b\xce#\x89\x10\x80)\xfe\xbd\xb5\x0eh\
+\xaa\xa8D\xf3\xbb\x00\x0d\xe3\xe1\xa8\xd8k1\xd4\x9aH\
+\x94\x12\xf5\x9e\x9f\xa7\x9d\x94q\xae\x985-\x16\x08p\
+u\xdf\xc5]4\x0eT\xfa\xf9e\xc0\x83\xef\xeb\xfe\xec\
+{\xb9\xfdwq\x99\xf5\x8d\xa1\xe9s$t\xfc\x9a\xfd\
+\xacp\x82\xda-\x8e\xc2\xa8v_\x15\xf6\xe4\x01\xb4=\
+\xc4\x0b\xaeOk\xa1\xf7\xc1\xa4\xf1}2%\x8a\x88\xea\
+\xecg\x9eQ~\xa6\x81\x00\xd7\xa9\xc0\xe0\xf3\x8c\x9b\xbc\
+\xd7\xe1\x9e\xa5U\xb2L\xa5\xfa\xadA\x0b\x0d\x80\x15\xed\
+\xa6~?\xfb\xc6\xf8h\xc0\xd1[\xca\x86\xf8\xc1\xfa\x12\
+_\x88{\xed{\xf9\xa5\xef\xa1\xd2.\x1f\xddM{\xeb\
+\xf8K>\xba\x1f\x8f\xc8\x0f\x13/\x8e\xdf\xd7\xa2\xd5b\
+\xbb\xd6\xad\xb8-\xd3eN\xcf)\xdb\xce\xd1\x8e[\xf8\
+#\xfb\xc7\xfd\x13\xb7\x85A\xd4\xeb\xcc~\x97_Z\xdf\
+\x988\xee\xa3\xef\xc7\xef\xb9\x1eb\xe0\xa6*\xf8\x1c\xd3\
+-\xecsSthu\x19C\x1fFe3\x9e\x92\x97\
+\xf4\x18\xc0\xbeQn\x9c\x85\xa1'\xdeB\xe3\xc0\xf6*\
+\x92~$\x12nH\xe1I\xd7\x1e\x90\x12\x1bJ\x82l\
+C\x04\xd9\x22\x9e\xd5\x81\x5cz\xf1\xfa}Q\x81\xe28\
+\xa8\xa8\x1e\xef1\xdb\x97\x84\xe2\xf3\xfbC\xaf4Jy\
+m\xdf+\x0c\xbd\xf8\x16\x1a\xc7\xe6\xfb\xa0h\xd4\xed\xbd\
+\xcc\xff\xe0 <\xc8\xdd\xd8\x9f\x1e\x03h\x03\xfb\xbe\x16\
+\xaeD\xb0\xd2\xad\xf7-\xc8\xf5\xeb\x16\xe4\xda\xf7t=\
+\xee/\x07\xed\xba9\x1c\xaf\x97M\xef\x9b\xe7W\xee\xe5\
+]\xd9\x10\xef\x1a*A_S6\xf4v-\xb2G\xf3\
+\xfd\xfa\xe2\xb2m\x03\xea)\xa5\xae>\xa7]\x8b\xa8\x15\
+\x86\xc1\xd9\xd7\x95m\x95\xa5\xee\xf9\x0f\x95M@\x22P\
+\xf5\xdc\xf4\x8c5\x92\x9f\xef\xd5\x94Ds\xc0\x8d\xdf\x03\
+0\x10\xf3{M\xd9\xd0\x02\x10\xca\x7f'\xd0\x80\x11\x15\
+E\xc8<\x07\xee\x80\xca\xc6\xefV\x14\x81\x91\x83B@\
+\x93^\xd4\x1aj\xb6\x8c5\xf3\x0ap 6\x98\x8aT\
+\xf7\x08I\x88P\x9d\xf5\xf6{\xff8\xb2\x16\xe7\x22\x22\
+'a\x16@\xabh\xd9\xe0{@J\xef\x99@\xe3c\
+Sq\xbdI\xa8~\xc4p2\xb5\xa0\x13%\x81\x99\x9e\
+=\xc0\x9b\xca\x19\xd18\xbd\x7f\xc6\xeeH\xfci+@\
+6\xa9p;\x98\xec\x0b\xd4N\x0c\x81\xdf*\x1b\x18\x1e\
+z\x1e\x01`\xc5\x1c\xfa\xabAm\x99\x18\xe3\x93\x0fO\
+ZzrSy\xeb\x80u'\xc2\x07 47\xbd\x03\
+]\x95\x94\x8f+\x1b\x0eL\xfb=\xc8\xf8\xf1\xe1eC\
+\xef\xac\x83\xdbz\xa5y \x81\x0d\x15\xb4\x99\x03a\x1e\
+\xb5:\xb1\xb9\xb8\x1c\xb8\xfb$\xf1\x17\xa8\xb9_\xf6\xb3\
+\x00\xcc\x81\xe7\x80\xf1\xf7\x10]\x7f/\x80\xd6\x82\xe0\xfd\
+U\x16\x93\x10t\xcf\x1cu\xea\xeb\x97\x0d\xebB\xe2'\
+\xd1\x95\xa8~V\xd9\xd0\xb3\x8c\xda+\xe14\xbe.\xe3\
+\xea\x9a\xba\x9b\xde\xff\xe97\xcb\xb6\xfd?=\xb4lH\
+\xa4wT5\x94\xfd\xe9\xc5e\xf3u~J\xd90]\
+\xe1\xdb\xca\x86\x8aAT\xe2\x9b\xdaf_\x08\x98\x13H\
+\xf6\x9cj\xff\x8e\xc8(\x8a0\xc0\x8cv\xc01\xdfG\
+\x22\xa4'XkE\x80\x96\x9auR\xd3N\xe6`}\
+i\x1d\x99\xee\x9a\x8a\xb0\x00\xd7\x18\xab\xc7\xe5\xfecf\
+x\x9e\xee\x031\x22*\xcb\xa6\xdeh\x15\x00\xa8\x18\xb7\
+\xe8{\xab0j\xf9\xc9\xfa\xec\x04\xf1\xa5\xeb\xbf?\xbd\
+v\xad\x10\xb5*<\x91Xb\xa2\xc4N\xf9K\x01\xda\
+nJ\x07&\xc5\xf4}e\xf3\xeb\x7f\x95m\xdfg\xfa\
+\xda\xb2\xf9s>\xa9l\xf3\x13\x80\x1b\xe2\xa9\xc6\xdeM\
+\xf7.\xdb\x187\x18P\x0dX\xd0\x92\x88FL\xef\xd3\
+\xec\xe7V\xa7W1\x0e >}\xfb\xf4m\xd3\xbcN\
+\x8e\xdfP6\x04l4)\xdeR6\xa8\xcc\x03\xa6\x01\
+@\xc4\xe2\xb4\xfa\x89W\x00\x9a\xa3\xb8\xde3\x87\xc4\xea\
+\xf7\x02\x0c=>\xe3\xb12\xae\xb1\xfd\x0d\xbf\xa9\x12\xbb\
+\xcd\x83\xff\xb7\xe5\xbc\xe6\xff$\xe8\xa6\xfa\x00\xe4\x8by\
+r\xab\x00\x01O\x1e\x98sY\xefz\xa8\x1b\xc8H\xab\
+\x04j\xae\xe7\xde\x05\x87T\xe0\xfa\xf9`\xc8\xd0\xae\xe0\
+_\x7f\xa4l\xa0\xf8F\x5c\x8cfK\x8f\x1f\xd6K\x9e\
+sK\x8fi'\xfea\x80\xf5\xb9\xcb\xcf\xf9\xa1}\xf2\
+Ok\xe5\xbe\xff]D\x12{\x0cY\x98_}n\x99\
+\x96\x90sg\xfa\x90\xb2!\xe1K\x00\xdd\x80Q\xd4\xbe\
+\x01\x19\xa7\x7fH\xa5\xcf\xb8X\x9aD\x98\x82\x180\x18\
+R\x12@\x81\xbdx@\xa5\x16\xe3\xe5\x9e\xa7{\x9d\xee\
+\xb5M\x93\x98\xef\xe9\xea\xf71\x0c\xd3\xa2f\xdaLS\
+\xf4Q\xfc\xb3\x0e\x8f_X6\xf8\x93\xddX\xc1n\x85\
+\x11\x87\xeayW\xd8;e_\x03\xa8\x9d\xbb\x12g\x80\
+&m\x02\x09\x89q\x8d\x0a\x5c\xd6\xb1\xf5\xbeO@\x8c\
+\xd7\xe3O\x01\xdf\xfc\x09\x7fo\x9ci\x12\xab\xd6\x14 \
+\x1a.\x11\xd6\xc2\xea\xdc\x17\xbf\x88\xc3\xedK\x22\xbf\xb9\
+\xff\x00\xfd\xfe\xf7\x01\x0az\xbd\x11\x83#\x1a\xee\xf3\x14\
+\x1e\x01E\xd6\x9f\xebWa\x15\x7f\xd0~\xe1\xd7\x8d\xd7\
+\xd5\xfa\xe9\xef\xe5\x13\xc68\x12#\xe4o\xe5\x1d\x80n\
+\x89^\xa8\xe8\x97\xa2\x8e\xfb}Sm\x02\xc4vb(\
+o\xd3\x02\x81\xc1 .\xc3\x90\x93OY/\xf2\x14y\
+\x8d\xeb\xff\xd89\x8a\xf9\xd8A\x9b\x0c\xe3,\x0c\xca\x8e\
+\xefh\x1e\xd9\x97\xe2-\xeb\xc7\xfd\x07\xf4I\x9c%\xec\
+\x9e\x83x\xd3\xf7\x15\xf7\xb8\x1e\xdf\xdf\xfe\x93/\xf9w\
+\xee\x17\xa6\x04\x0d\x84\x00b\xdd\xe2\x96\x16\x22\xe3C\x9b\
+\xe1gZ\x17\xed\x9b\xcb\x97m@\xab\xb8\x98\x98m\x7f\
+\xaex^\xde\x0bh\xc4\xb8\xb4\xee\xc4#\x98j?\xbc\
+\xd8\x96\x0f\xbb\x1f\xf2H\xcf\x13c\xd7}\xdbk\x19\x04\
+\xf0i\xff\xa8\xe5\xc9u\x89\xef\xafX\xb6iW\x9ck\
+\x07L\x03\xc0\xc2t!;\xb5\xfdK\xfd\xec\xb5\x02<\
+8\x0f\xc0\xdc\xfb\xdd\xfc\xc3^\x98\x02`\xc8\xba\x84\xdd\
+\x81)A\xa6B\x9a\x9e\x1c\x94\x95\xe3\x1f\xce\xf6\xfc\xa8\
+\x93\xfe\xdeRi\xf8\x96\xaa4,\xb8\xec?\x0f=\xf8\
+\xae\x8f\x0a\xbf\x05\xa7\x02\xeaA\xfaQQ/\xb7u\xee\
+\x7f@\x02\xbdb\x0e\xecE!$n\xde\xb7\xdc\xef[\
+\xb3\xb1\xfff\xa0Hs,\xee\xee\xbe\x05\xc1\xfb\x8c-\
+\x09\x87\xad\x17\xae\x13\xb9\x8b\x96\x09\xc8\xeb\xf3;\x0dL\
+\x01\xbdl\x09\x08\xbb\xb7\xff=+p@l\x8ajs\
+\x8f\xf5\xbb\xdb*\x82\xe6~\x1e\xbf\xablA\xd8g\x1b\
+\x12\xa4\xf4<O\xcf(\x1b\xd4\xd69N=y\xfbq\
+\x18\x09\xc8{\xbe%&@\xd4\xc6;\xf1'\x06\x98\x9e\
+\xa1\xa6\x80\xa1t\xa1\xda\xa2\xb6\xa1\x1a'\xb0\xed^V\
+\x09\x12\x91,j\xd6\xf7_\xa7\x13\xf4t\x84\x8c\x01\xe9\
+\xf1T(\xbd\xc6a\xa1X\x09\xc4\xdd\xdf\xa7\x1d~i\
+Q%7v*H\xa8\x83\xbe{\x96\xf4\xfcs\x94\xf6\
+\x15\xa0\xc2u\xd020u\xe2>eC\x8f8\xc7\xf8\
+\xa85\x019\xdc'\xd4DTa\xeb\xfb\x8f\xb3\x9f\x04\
+\x00\x00\x07\x09\xac\x84\x9f\x0a\xf2n\x9e\xadu\xd4\x14.\
+\xa2}\xd4\x801C8\x9c\xe3\x7f\x0f8\x00\x1e\x1dp\
+\x10\x91#\x1e\xa9\x17\xd2\xfdHEDEF\xe2\xd1\x15\
+w\xeb]B\x97\x9e\xf4\xd3\x07\x97\x0d\xbd\xe5QS^\
+Z\x81\xfeu\x1b3\xd3L\x84\xf4\xc2u\xc5\xd7\xfeu\
+\x9frpUcK\xb5\xb6L\xef/\xdb4\x09\x04^\
+\xdd:\x22\x10\xe5\xaf\x04\x8c\xd4\xba\x01\x04\xa8o\x0e.\
+\xad\x1f\x9e\xa7\xfd\x81\xea\xeez\x1c\x04*S\x0e\x02\xc0\
+\x0cD]k\x03\xaay\xa8\x96\xddk\x87\x1a\x17\x8a.\
+U\xeb\x06\xc0\x1c\x80\xe6,S/\xd6*&q\xa1\x19\
+\x92\x96\x84^\xd7\x00]\x01$Q\xa4 \xd0\xc6'\xed\
+\xc5}\xf6\xea\xbb\x9d\xa0g\xbfA\xec{\xcc\x22\x15o\
+\x01\x01\x7fc\x1c\x90\xf5$q\xa3y\x10d\x1f\xd06\
+\xfdN\xd9\x06\x94J\xbc\x01I\x0d,:\xa0\xd3\xf2\x80\
+\x81\xd2\x15\xee\xbf_\x03;\x15\xc9\xe9\x1f\xca\xe6\xed\xf0\
+\xe0\xe3\x83\x8e\x0f\xda\x12\xbb\x9e\x8a\x82\x02\x9b\x0aR\xaf\
+#\xc0@\xf6U\x03\xa5\x8fNe0\x81\xc9\xbc\x1a\xdf\
+7\xbdoi\xfdX\x80\xac\xc3o\xc6\x1f\x01\x1c\xbf8\
+=\xd5\xd1\x90\xe8J\xc6M\xca\xe6\xd7\x07\x97\x0d\xcc\x8a\
+\xfc\xb9\xa9\xa0\x80\x02\x95a\xc0\xc9\x85\x87\xff,\xa0\xd6\
+8T\x95\x9d\x1e\xaf\x16?\xd1\x15dL\x1d\x15m-\
+\x90\xa5\xc5\xf0\x1d\x1b\xb0\xd4\x09@\x00\xb7\xd3\x93\xca\x86\
+\xa91i\xeds\x0e\x1c_\x5c\xb6\xb5\xac4\x13 ~\
+\xe0\xf0\x0bi\x0d{\xc9\x0a\xe8\x1e\x7f\xa4l\xbe\xce\x9f\
+)\x9b_\x7fw\xfa\xbdi^G5T\xb0\xc6\x0a\xb6\
+\x9fv\x1e{\xde\x0a#\xfc\x1a5\xff\xf4\x84\x02<\xa6\
+\xf7\x06\x10\xc9\xf9\x7f\xc9o]\xf2\xecK\x9e\xbd1\x05\
+N\xcf\x88\xd8]\xfe\xdc\x95\xbd\x8f_Tb\xb6\x00\x94\
+\xa8%M\x0a\xfb_\xe2\xef<\x92p\xa3\xecj\xc1\x0a\
+ :]\xb1l\x19\x87X\xd6\xa2\xa6}_\xb5\xa2\x19\
+\x17\x9c\x16\x92\x06B\x01^i}Z\x94\x07.\x18\x12\
+\x95k\x1d\xaeQ\xa2\x8b\xf3\xaa\xfd\xc7Z\xb7\xcb\xba\xff\
+\xcd!\x81J\xfc\xb7|\x9f\x87l\xe2\xc4\xfc\x909\xde\
+\xcd\xb4\x89x\xd9\xe1\xdf\xcb\xb68G\xcbbO#J\
+\xc0>{\x81\xdf[\x02\xe9\xb4\x5c\x9e}\xcb\xd97\x9f\
+}\xcb\x12\xe7,L\xbe\xd3\xb5N\x1fr\xaa\xefs\xd9\
+\x15\x18>}\xcdZ1?]i\x0d\x80k8t\x8d\
+\x87\x9e\xbd\xca*\x1e\x9b)5\x1dP\xef\x80\xe0N$\
+\x93`\xf4\x982q\xae\xf5\x91\x82\xc9\xe1\xd9a6\xfc\
+\xf3\x7f\xaf\xd8\x9e\x1e\x93\x96\x22L\xc0\xeb\xae\xcc\x11\x15\
+\xc8\x16s\x8c\xe8\xa6V\xc3\xd6^B\x91\x96\x88\x01x\
+\x00AZ.\x0a\xfe\x5c\xa9\xff\xebyDl\x8f\xc8\xaa\
+J\xed^l\x90\xf8\x9a8A\x22,\xc1S\xa9\xf4g\
+\xebHk\x94VG\x8c\x05\x89\x9a\xf1\x80\x12 \x0c\x15\
+\x09\x9b\xd63\xe7\x9e\xb8Y\x22\xe4\x9cs\x1fM\xd9\x09\
+0\xda\x8e\xc5\xefy?\xd4|\x95x\x85\x08c\xf8\x88\
+Q\x9a\xba%\xce\x96\x17\x00>\xc4\xe1\x98\x0d4~\x00\
+\xf2\xe28\xd3\xb9$\xacZ\xb8\xb4\x94\x10\xa1\x04\x98\xec\
+\x13<j\xfc\xc4\x07\xb5\x04x>\x12j\xf7\xf3X6\
+\xac[\xf9\x1a\xa0\xc2\xf7\xd1\xa2g\xca\x04 \x08\x90j\
+\xdf&\xc1mQ\xc6g\x05`\xf5\x5c\xc4\x95\xee/@\
+l\xcf\xecU\xa0RH\xd0\x0a\xf5\x86\xb2\xc1\xafQ\xff\
+\xf7\xbd\xbc\xff^\xcd\xdezp\xae\xbb\x1e\xcc\x0a\x80\xb5\
+\xf7\xb1\x1e0\x900V\xbc\xbf\xe7\xba\x17\xf5\xf3|S\
+\xd8\x98\xbe\xb0l\xde\xde?Y6\xf8+\xf1\xbf\xe7\xa6\
+ \x13\x06\xdd\xa5Zk\xb4\x9e\x03@h\xe3`0\xf9\
+=\xd7#\xff\x95\x0f*\x1c\xd8\x0f~\xf8\x1f\xf7\x11\xd0\
+\x90\xf1\xca\xc6\xe7v\xfc\x1d\x86\x91\xe9J\xe7\xfa J\
+`\xdf\x0b\xdf\x1bC\x8a\xf6s\xcam\x08\x07%GQ\
+\xc4\xe1\xbf\x1ez\x09\x8d\x15\xe4 m\x08_p\x8f\xd8\
+X\xe8zV\xf54I\xfc3v\xe5\xf8\xa4\xb2\xf9\xf5\
+ze\xf3\xdf\x7f\xc1l_8\xdc(\xaf\x90G\x88>\
+`c?\xbea/\xe6$\x91\xf7\xef}\x0f\xaf\xa3\xda\
+\xe3\xd9\x00\x18\x8cc\x1e.\x1e>\xaf:\x9d^;\x00\
+-\xb5\xac\xaf;\x8cu\xa1\xb5`\xe3\xee5\x17\xf6\x88\
+\xa1\xfbn\x81\xb8\xdf*\x8c\x90=\xf7\xf1\xcbW\xd1\x87\
+\xc3\xfd\x92\xf0\xbe9\xa2H\x1f\xc8\x81v\xbb\xf5@<\
+>\xb0l\xab\xd4\x16\x01\xa8\x10\xbe\xc3\x0dW\xc75\xfd\
+\xfe\xf4\xdci\x0e\xd0\xa7;\x96mc\x8e \xb0\xd3e\
+\xca6\xeaQoT\xbd\xde\x98\x10\xa9T\xfa\xfd\xae0\
+R[N\x22\xd2\x95-\xa2y\x19\xa3\xd7\xe2w\x90P\
+=\xda\xc6\xf4\xbd\xa1l\xa8\xf8\xa8\xa8\xa0\xc8\xa0\x9c\x9b\
+\x02\xe0\xd5z\xb0\xb1%r*\xa3\x11\x0d\xc34\xf0\xbd\
+\x05\xf0M\xbdO\xa0\xda\xa2%_\xbe\xd8\xf6\xdf\xfd\xd8\
+oz\xcb\x12\x88\x09\x0c\x1aQt\x90Ap\xa9vS\
+a\xb7~\xa9\x13;\x086\x86\xc3ZIM\xcfS?\
+\x17\x00\x1c\x86\x02j\xa9\xdf\x83l\x133\xd2#\x1f\xea\
+\xaf\x80\xbf{\x1cQ\x14Qn\x89\x10\x11IT\xa9\x08\
+\xe5\xef\xf4\x94\xb2a~3\x8a\xb7\x16\x10\x08)\xc0\xc9\
+\xfd\xb0\xaf\xb4\xc8|\xf9\xb2\xc2\xab\x028\xdb6=\xe0\
+t\x8b\xb2!\xa0L`e<YS\xd4T\xee%\xe6\
+\xf6\x8fJ\xab\x8a\xbe^W\x09\x83@I \xaeW\x98\
+\xda\xbeW-\x08\x80\x1e\xe2\x86\x02$~q7\x87\xb8\
+_\x03\x5cu\xa5(\xcf\x17\x80\xd6\xeb\x05\x05\xda\xf3J\
+\xef&1\xcd\xa6\xea9\xc0M#\xc0\xcc\xb0^\x8cW\
+\x22\x92c\xfd\xaa\xe4R\xc7\x97\xd0\x00p\x01m\x98&\
+\xce\x15\xe3\x5c\x7f\xa8\xec\xd2\xadJ\x1d(X\x87\xae\x17\
+%\xd6\xc1\xa7\xc2\x9d\xb1\x95\xad\x86,0\xd8\xf5V6\
+\xe2\x9f^@\xcc\x989\x8dZ\xd5\xe5\x03\x80\xb4X\xa1\
+\x84\xd9\x81i\x1f\xed\x02\xde\xf6\xcf\x00\x9c\xacS-$\
+\x02\x84@B\xa1\x00\x00 \x00IDAT\xa0\x16\xcd\
+r\x8ex\xdeZ-Bi\xf6>\xb4JJzm\x11\
+_C\x1dFU\x7f\xfc\xda\xa3\xdd\xbd\xda7\x8fX\xd0\
+\xe3\xba\x07y\xbd\xaf\x802\x14U\x1a\x09\xa8\x89\xa9,\
+\x13\xe3j&\x13`VKM\xe6\x9e/u\xed\xc7\x0d\
+T\xdd\x04*\xd3C\xca\xb6V\xa6\xe3\xe7\x96\x0d\x81\xa9\
+J>&\xcf\xc7\x96\x0d\x9f\x17\xc0F\x85\xb6\x03\x19\x0c\
+\x8eT\xc2T.Zc$\x94N\xe2i\x97|U\xd9\
+\xa0\xe2\xac2\x9b\xf3dz~\xd9F\x1do\xcd\x91\x87\
+\xae\x89tk\xce`\x88\x85Y\xd7\xbd\xcf\x09\xe0\xa6\xbf\
+,\xdb*\xe6Z\xa4N?yzB\x8d\x9f\x9b\xbf\xc5\
+\xe7\xd5\xf78\xbc\xa9l\xd9Gk|\x03\x88\xa5\x02\xce\
+\x0f\xd6*\xb8\xfd@\xe1\xb5\x8fPV\xa9\xf1\x13u\xb4\
+N\x01\xa7\x98<\x02Hc\x14\x014\x01\x92|\xef\x85\
+\xf1\xf05\xf1c5\x86\xf1\xbb\xca\x06 %b\x9a\x1d\
+W\x10\xf9\xbc\xfdy\xb7[\x12\xdb\x1a\xdb\xfb\xb7a\xe8\
+\xfd\xe1\x00\xb8a\xe0`\xf4`\xa2\xa1f\xf3\x9f\xe6\xa0\
+kY\xb2O\x03\x8c6C\x89\xb6\xc1=\xcb\x06\xd1\xd5\
+\xdf\x886\xcf\xd5\x0fW\xab\xca\xe7\xd9\xc3\xce\xbe\xf3\xec\
+a\xc3\x94\x88\x82\xc3~h\x11\xe1|t\x89p\x12\xc9\
+\xac?-\xa2\x9c\xb9\x0e\xfb\xab)\xe8\xc6\xa2\x9a\xfe\x91\
+}\xd7TZ\xfb\xdc\xb9#\xce\x930\xa7\x97\xbdU\xd1\
+i\x1d\xfd\x7fka\xe5\xbco\xc9\xb8G\x8cV\x94\xf6\
+\xec\xa3\xc3c\xca\x86^wq\x01\xa0Tk\x0f\xc6J\
+>\xb7\x194\x12!\xf1bE1W\x1c\xfc\x8d\xc4\xd8\
+\xf5\xee\xb52hWI@\xf6\x22t\xe2]\xf1\xa7\x8a\
+\xae\xbc@\x5c\x07 \xf6c\xda\x84\x84O\xcf\xbf\xbc\x02\
+\x83S\xcb\x92\xc4\x98\x1f\xb3_v\x1a\x10\x12\x1b~\xb5\
+\xf7\xa9\xc2\x1a&\x0d\x91[\xad\x82\xa6\x0cI\xbc\xf7\xad\
+\xba\xbe\xdf\xee\xa7\x99\x08\xd6\xb9u\xb2O0]\xb7\xe7\
+\x000\xc1`\x10\xdf\xdb_\xae\xc3\xba\xb2\xff}\x0fy\
+\x88\xeb\xd2JT\xd4\xfc\xdf\x1c\xcek\xe7\x92DX<\
+\xe8\xb9\xec\xa7@\x01,05\xc3\xb0\xe9\xf1\xce\xf6\xbd\
+x\x01\xd3X\x1e\xb2\x074\x8c\xc3\x94\xb8\x8b\x9f\x01\x13\
+ZS\x88\x92[\x0f\xbe\xb7\xd6\x02\x9a\x11>\x07\x00\xbb\
+oet?\xbc\x8e-\xda\xef\x1d\xce\x11\xcf\xc5u\x01\
+N0~0\x93\xfc\xf8\x9e\x98\xa8\xd1\xc6Q\x88\xc2\xe0\
+8~I\xd9\x06\xd8\xf1\x13\x0d\xc0\xed\xc5-=wq\
+(\xe6\x04\xa0\xdds\xf1\xdc<O\x85\x17\xf9\xb1\xef\xe9\
+\xcf\xbb\xb1\x9b=\x05\xe2\x11e[\x8b|\x8b\xf5\x8a\x8f\
+\x92'\x9e\xd33\xdbs\xb6\xf5\x90\xba\x91\x10q\x0bk\
+\xdf\xa3\x8a\xd2\xa6'\xd8\x81\x8fz`\xa1\x0b\xac9$\
+\x0e\xcb\x17\xf0\xea\x8bS+\x0d\x92\xd2\x8e\xfc\x87\xca\xe6\
+\xd7+\x95-\xa2t\xb3\xe5\x06\x0c\x01\xe5\x7f\xa3\xe6\x7f\
+\xf0\xf0\x80!D6\x16\x07\xcb\xa1\xed{\xa0$\xe8#\
+ pnW\xa1?\xb7\x03\x08\xc6q\x80\x1eX\x85c\
+\xaf\x1d\xae\xd3\xfdu=\x1f\xbd\x8e\xe1\xea\x83S\xa5\xd0\
+\xf7p\x1f1\x18T\xfck\xf9\xbfos\xbc-.G\
+\x9d\x96\xf8\x13\x91\x0d\xaa\xa9\x90;\x01\xbc^\xed\x97\xae\
+T\xa2\xe3\xbb\xcb61\xb9\xe9\xfc\xb2\xa5\xf7\xe7\xf1\xa7\
+\xc7/\x09\xc0\x92\x10L\x9f^6\x04j\xb7*\x1b\xc6\
+\xbe\xa9\xc8F3@ \xdb\x94y\xcc\x00=@\x0e\x1a\
+\x89\x8c\xeb\xde\x1f(z\x9c\xd2C\x88\x9a\xdd\xa2_^\
+\xffqU\xdd\xef\xc0\x0eR'\x117\xefZ\xcf\xa7^\
+K\xcf\x1b\xa2m\xbd\xa2L\xa7\x05\x00#A\x02F{\
+\xa0+\xc8>\xc78\xa0k\xa7\xa2\xfd\xf1\xe9E\xc3|\
+\xf8\xe3\xb2A\x9d>=\xaf\x1d\x18|\xc8Z\xd1h\xf5\
+}\xebK\xc2\x15\xd15\x88\xf1\xa5\xa8d(\xb0\xa9|\
+\x9e\x1ep\xfa\xba\xd3\xd7m\x01y'\xe2\x12\xbd\xef(\
+\x1bz\x8bTh3\x07\xb6)|\x02\x9e\xec\x7f\xa2\x9c\
+(\xb6\x8d$sd\xee\xe3\xfe r\xf0\x01\x00\xedK\
+\xcfa?\x86\x06pQ\xe1\xc1\x8d6`\xa8\xf7\x15$\
+7*\xdaM!G\xb5E\x89\x8d\xff\xe8\x1ej\xa22\
+\xbe\xef\xc3\xca\x06J\xa39\xc4>_ \xb3Gd\x13\
+(4@\xe3{B\x82\x03xt\x85U\xef\xb5\xdf\xd3\
+\x03n\x8c\x9c\xca|\xf6s\x03\x02\x12`\xda\x15~O\
+\xa5\x1a`\xb5\x17\xa11M\xe5Ee\x1b\xa0\xa7\x02\xd9\
+\x14^\xd3\x08\xac\xcb\x9d8\xab\xb1W\x1d\xd8\xabL\x86\
+b\xd6\x95\xa0\xb4\x5c\xa8\xfc5\xb3#\x15\x13c\x93Z\
+\xd4\x90\x9av\xb49\xf4\xdc.bg\x9f:\x1cxQ\
+o'\xda\xd9\x01\xd7\xfb\x12@\x0b\x1c\xf4\x8e\x12\xf7L\
+K\x8fV\x9d\x9e.\x82\x0a\xae\x02c\x1a\x81\x84:\x94\
+\xd9\xae\x00f?\xaal\x9c\xeeR6\xbf\xfep\xd9 \
+j\x07\x10\x91@c\xda`4\xa1\xe4?\xb1lhe\
+\x01\xe0Zg\x12\x03\x95\xa7\xb4 4\xa0\x09\xb0\xdc\xcf\
+\xd5\x06\xf8`@\x01\xd8\xac\x93\xec\xd7\xe3\xbf\x96\x0d\xd4\
+g\x00J\x98Y>\xff\xb4\xfcl\x80\xd8t\xa7\xf5\x1c\
+8\xdc&\xf3\xc51\x01\xa2\x0a\xddTH\xcfU (\
+\x81\xe5\x17\xf4\x00c\x1a=\xa8l~\xbds\xd9\xb6_\
+\x88\xd7\x1d\x7f\xa7l`09?\x00\x1c\x9fY6h\
+\x039wn\xb4\x06v\xd3\x97L\xf7\x98\xee1\x88\xf6\
+\x86r\xde\xd4b\xe7\x96\xe9\x22\x95\x08\xcc~{\xfa\xf3\
+\xd9\x0a\xa0\xb8\xf7\xaa\xf2_\x8a\x06\xa5i0{\xf1\x17\
+-~\xfc=\x87\xff*\xd1\xda\xd3#\xa3\xae/n\xc2\
+\x8c)1\xcdO\x184\x5c\xc2\xa0j\x15m\xe3|\x05\
+\xb0\xce\xeb\x88E\xf6\x981Z\x0e\xa1\xceK\x10i\xb2\
+tB\x05\xe0\xaeS\xe0\x0f\x86\xc06\xc0\xf5\xd2*\xf4\
+\xb8A\xdc/\x00\xf7\xe9\xeae\xf3\xf7\xfd\xc9\xb2A{\
+\xa94Zn60\x9f\xea4\xbad\xd0\xbe\xc1 \x92\
+\x10\x018\xf8}\x14\xeaL\x11\x10/\x9c~\xa5l8\
+7\x12\x174\x057\x8c\x86\x8e\x0b\x9c\x1bz]\xf5\xf2\
+\xfev\xa6\x19\xfc\xc9\xe1\xc5\x87\x17/~tm\xc5R\
+\xd1'\xb6\x98\x04\xacE\x89\x15\x1cT\x1c\x01\x03z\xc7\
+1\x8a\xfc\xa0\x8e\x03\xe8\xb5P\x00,\xbe?\xe7\xa5D\
+\xdd\xbe\x14\xe7:\xaf\xf8\xe5\xdc\xafnE\xc9z\xee\xf3\
+8\xd7\xd9\x85\x1e@\xc0\x9bWQ\xe7\x9e\x03_\x95\xf6\
+\x91\xd9\xe7s\xc5\xa7\x12k\x09\x8a\x96\x90\x00\x8b]\x00\
+\x00\xe8\x10#\xc3\x18\xdcW\xc6\xc5\xcf\x9e\xaf\x04oG\
+\xed\xc6`t\xee4\xf5\xdc\xfe2e\x06`\x8c2\xbf\
+\x17\xeb\xe3\x8f\x03dt\xa2/.\x17/\x8b\x93\xc4\x0d\
+\xfc\xaex\xc4\xfb\x8a3\xf8U\x8cM=\xea\x80y~\
+T!\x02\x00\xa6u\x03cR\xab\x0d\x8d\x07@\x83<\
+\xc8\xf5\xed\xa6vu\xde\xe1\xf7\xf6b\xe3\xf2\xa7}\x02\
+\xbdoaPq\xc7\xb0\xf5\xf9\x18\x0a\xf24\xccC\xcf\
+\xd3\xf9)\xbe\xf1\xfc$\xb4\xbb\x1e\xfbe\xec\xfa%C\
+\xe2\xecy\xee\xc5\xa3\xf91\x80\x87\xf5(\xbf$BJ\
+\xb3\xc0z\xf6\xbd\x00\x22\xfb\xca\xbdW?\x9e\xa3\xeb\xb7\
+?LY\xb0\x7f\xb5\xb8\xfa\xb3\xfd\xce_I\x943u\
+\xa1\xa7\x80\xa4\x87\xfe\xf8\xcfe\xf3\xc7\x7fZ\xd9\xd0\x0a\
+\xaa@\x998\xd9\xfe\xe8\xd6\x1a\x8cJ\x1a\x00D\xf9|\
+N\x80\xdb\xbe\xaf\xceE\xfe\x02\x80\x08 \xd5B+\xff\
+\xb6\xce\xe3\xe7\x9a\xf1\x93\xa94\x1d\xdf&_87}\
+\xe1t\xb7i\x0e\xd4\x8e\xaf>\xbe\xea\xf8\xaaE\xa5\xf7\
+*\xa5\xd2\xdb7\xc4\x83\xdd\xf7\xfeH\x94!z\xab\xb0\
+\xdeV\x89\xf6\x008\x08\x00\x02\xc4\xd1\xc2\xde\x8b\x09\x0a\
+0\x8a\x8a\xfe\x92M\x0c\xec\xf8\xdb\xb3={~=\x9b\
+m\x1a\xc4\x82\xea_\xbd'\xd7\xf3\xd1\xffC\xa2`C\
+\x13\xfd\xf3\xbd\x0a\x8f\x1b\xd4\xf8\xbb\x22W\x8f\xe1\x86C\
+\xe2?V\xfa\x0f\xbb1\x0e\xe7\xedZ#N=%v\
+\xfb\x1c\x89\xba\x0dx\xde\xb2\xc8\xd6\x03\xfd\xb6\xc3\xbcs\
+\xbd\xbcE\xa8\x7f\xc0\xe0\xa0\xaf\xbf\x0c\x80\xdb\x1cE\xd5\
+\x95\xae1h\x038\x00!uU\xdfz\xc8\xb2\x10\x7f\
+q\xa9\xc8^+\x1b\x12E\xfe\x9e\x11\xe5\xd2\xdb\x1ed\
+\xb3\x03\x82T\xd6\xe6\xc5\xbfV\xdc\xaf\xba\x8ad\x9d\xdd\
+\xe7\xec\xdegs\xa0s\xf6\xf2\xb3\x97\x9d\xcd\x1b\xea\xec\
+Fe\xf3rxI\xd9\xa0b-\x80\xa2A\x80\xf2\x1b\
+\xf1\xb0\x1ek\xe4\xc0{\xf6|L?{I<\x1e\xb2\
+\x88\x1dA\x16Q\x999\xe2\xa8l7\xf5\x9f(_\x90\
+\xe3\xa6\xceK\x08\x92x\x131k\xd5~\x01\xa0\xc4\x5c\
+\xe5]\x05U\x8f\xa7\xf7\x0f\xc5WE\xa7\xa9\xc9Y\xf7\
+\xd3\xb5\xcb\x86\xc4\x08r\x98\xc0\xbf\xa9b\x02\xdf\xdb\xe5\
+{\x19\x17\xa7\x97Z\xef#@A\x8fQ*\xd3\x8d0\
+\xea\xe5\xe5\x10\xf4\xe0e\x1c\x5c\xf7\xf4J(Ba\xef\
+\xc0Z\x82\xfa\xae\xb52\xd8*\xa8\xa1@wo\x1c\xaa\
+\x5c\xd6\xa5\xc0\xac{\xfc\xf4P\x09\x08\x9e\xbd\xd8\xb6?\
+\x042\x12\xa9\xb4\x96\xb4\x8a\xab\x8a\x84\xebQ\x89\xf6=\
+\x8d\x15\xf2\xb3\xd7\x1c\xb1\x9fv\x0e\xaf\x0f\xe2\xb4\x86\x08\
+\xd0;\x01\x0dE\xb8\xc7.\xa1\x18\xab\xd4\xaa\x94:H\
+\xa8\xeb\x07\xd0\x04\xc8t\x00\xe0 \xdek\x9f\xf0kO\
+[l\xebAKB\xea\xfbu\xcb\x0c\xe4\x1dR\xec\xe0\
+\xd3Z\xc1\xaf\xe6z\xf7\x89r\x07\x0c_\xbd\x02J\xdd\
+\x03\x1bU\xea\xd6.\xe0_\xa9c\xdb\xb7\x0el\xbd\xb8\
+\x11\xe5\xec\xef'QD\x9d\xa4\x96\xafUG\x85D\x00\
+\xa8\xc2\x94\x7f\x7f\xbak\xd9V\xc1\xa7\x82\xdd*\xdb{\
+\xcd\x14\x89\xafs#\x8c\x0c\x22\x90]\xb1\x0a\xb3h\xf6\
+v\xb3\x0d\xeb}\xcf\x94\x92\x80[\xd7\x11\x89\xa3\xe6\x0c\
+\x080F\xcek\x8f\x9b2\x17\x1e\xb3\xe5Y\x99+\x0c\
+`\xd0\xda\x02h\xf3\xfe\x01\x96\x9a\xc1\xf6u\x01\xde2\
+\xbd\xa3+\xe1\xbe?\x11&\x81xZ\xb4\x88>v\x05\
+(j\xe5]\xa1O%\xe3\xf0ue[+FS\xad\
+\x01\xec(\x95\xb4-\x88\x95\x09\xd0\xf3\xefO\x97-\xdb\
+4\x08\xa6\x17\x94\xcd\xaf\x8f/\xcb\x98\xb8\x8b\x17j\xfe\
+\x92`\x1f>y\x05\xae\xa7\x7f,\x1b\xa6j\xfcA\x02\
+\x90\x9f^\xac+\xaf\x87\xd7\x06\x18yu\x9e\xf3\x17d\
+\x9f\xab \xbe/\xcf/\xe7\x9e9\xed\x80\x1c\x95\x8d\xe9\
+\x11e\xdbt\x91\xa6V>\xa0l~}}\xd9\xf6}\
+\xb4\xee\xa8\xb4\x1e\xdf~|\xdb\xf1m\x19S\xfb;\x11\
+\x8b\xfd\xaba\xfc\xae8's\xaf[\x13C\xe2m\xfd\
+K\xc0\xafX\xb6\x00\x0c7^\xc4\x101`T\xc2\x88\
+\x9fUK\xc3\x9d\xc3\xe8\xb9\xd7F1\xa7\xca\xdd\xbd\xe4\
+\xa1&73%\xe3I\x0f\xf7*\x1b\xf6\xbf\x80\xde\x98\
+0@\x03\x06M\x98/\xd3\xad\xcb\x06\x15s\xe7\x84\x96\
+\x94\xf8\x91\xe3\x9f\x96\x0d\xcc;\x80\xb7\xd6\xad;\x94\x0d\
+-\x11\x19\x13\xd9\xfeJ\xfc\x22\xd1\xe1\xef\x01w\x0f*\
+\x1b\xce\xb1\x00\xa2\xcb:\x7f\xe4\xe6w\xbbU\x14c\x8c\
+6Hy\xcbo\x1a\xe2:\x89\x06\xe6\xc7\xc5\xb5B\x17\
+\x8d\x90U\x13\xe5\x8f\xd6V\xaf\x06\x1aoU6\xc4o\
+Z\xb7\x00\xf7\xcem\xd7-\x90\x0fu\xb6\x81s\xc0\x84\
+\xc4T\xdc\xbb\xfb\xde-:\x99D\xf9\xf4\x09e\x03\x00\
+(\xd1w]\xde'\xe7\xce\xf4\xcde\xf3s\xf9\xea\xb2\
+\xf9\xf5o\xca\x06Q/\x0c\x1d@[\xe2\x8b\xae\x84\xa2\
+d\x13\xc7\xbc`\x9dz\xd1\xf1\xfb.\xd1k\x00\x1f\x10\
+\xac\x95\x13#\x85\xbf\xdak\x03\x88{\x89\x08\x9b3/\
+.\x10\xdf\x11\xf1\x93\xa0\x88\xb3\xddG=\xfcw*\x1b\
+\xfc\x99\xf1\xc2\x18\x8c\xfc3?\x9fu\xde\x89\x95\xf1\xde\
+W.\x1b\xaecW\xb1\xc7\x04k\xc0\x8c?\xdf\x03\xb0\
+\x0a\x13\xe2\x15\x05,\xfb\x10\x00D[\xc1\xb8\xdc$r\
+\xa7\x0b\xcb\x86\xf8@\x02+\x1e\xf6=\xbc\xee{\xe3\xed\
+\xab0h;\xfe\x97O\xd9\x7f\xf6Y\xa8\xea\xa7\xff*\
+\x1b\x80_\x00H\xe26c\xba\x97B\xf0e\x86\xd6\x03\
+@\x0cm\xb6=u\xdfz\x03P\x88\xe7\xfc\xde\xbe\xe0\
+\xeb\xb9\xd9\xf7*\xff\x18w\xb4\x03\xecG\x05!\x80\x8f\
+\xcf\x1d\xf3\xab\x8b\xfe\x07&\x00\x7f@D/\xd3\x89\x9a\
+!\x06xp=\xfb1\xd9\x18\xea\x12kZe\xaf-\
+\xdb\xfc\xd1\xf1\xcb\xca\x86i\x0aa\x94\xf6\x94$\x80e\
+Z@[\xcb\xe4\xa6e\xc3\xfb\x03T\xbe\xb7l\xfe\xf3\
+w/\xb6\xdd7\x00\x88V\x1e\x0c\x02\x05\xcb\x00?\x0d\
+<)4\xf8\xf1~\xe3\xf8\xfay\xdd\x9f;\xdd\xa1l\
+\x09\x14\xd6\x1e#\xbd\xb6\x16\xa0\x07\xeaF\x0bP+\xbd\
+\xfb\xb0aC\x15Lp\xe1\xb0\xc1UT\xdcP\x14\x18\
+\x0fH`\xc8\x11\xf9\xe1\xf8n\xbeLv=\xef\xf8W\
+\xb3\xcd\x1b\xff\xf8\x11\xb3U \xf0\xf4\xd9~}\xd8\x98\
+\xfb\xf9\x94*\xf2\xae\xb7\xb6\xd5e\x93\xe0WO\xd8\x07\
+f\xbb8\x09\xc3M\x87\xf1I\x1f\xb3\xc8\xb4\xac\x01\xd2\
+G\x0e\x94#=\xfe*\xfc\x0e\x8c \xde\x1d8\xef\xc7\
+\xffTX\xf8\xbaa\x83Z\xb0\x18\x0aU\x1f\xfc\x988\
+\x90[\x041\xbf\xe3\x80$C\x9c\x1d\x0c*\xea*\xd2\
+zE\xf5\x04\xdb\xd0\xb5\x0c^\xb8\x05BM\x89\xa6\x86\
+\x9f9\xcdz\x80\xa7\xef/\x9b_/*\x9b__R\
+\xb6!q*\x0a*!*7\x1e{\xab\xe4\x9b\xb3\xac\
+\xc2\x099W\x89%F\x18J`W\xdcmP\x95\x87\
+\xf4j_\x8a\xca\x04\x08\x085\x18@@D\x86\xca?\
+\xca}S\xf2#\xe6\x03 \xe8J \xd1A-\x04i\
+\x15h\x91\xc2\x8c\x01\x13\xa0\xf7\x94\x80$\xfa\xc6\x82t\
+\xaf\xa6\x9e\xc7h\x00\xb4\x18`Daz\x1c\x1b\x91!\
+\x95\x12S\x00\xa2u\xd0\x81\x9dD\x22T\xe5\xd3\xe7\xae\
+\x22\x8d(\xe0\xa7\x97e:F\x02\xbd\xee\x85\x83EI\
+h\x8d\xb9\x82\x14\x1a[\xa8R\x9b\x00\x97\xa8SS\x9d\
+Q\xf21\x00P\xc2\x8ck#.G\xd4'\x89\x0dj\
+xS\xf2T\xac9T\x08\xb3\x80\xd8\xbe\xd9\xb5\x86\xb8\
+?}0p\xfc\x0e\x0e\x07\x05?\xb5\x17I\x19\xb52\
+.\xdcD.\x8f\xdfT6$z(\xa0q\x90]A\
+\x92(ZG\xc4\xb2\xce/\x1b\xd6\xa51E\xf1c\xdd\
+\xeb\x1f\xe6K\x1f\xec\xc4\xcaT\x16Q\xe9SA\xeb\x80\
+Z`\xe2@\xd5b\xa0\x12K\xed;\xe2l\xad\xe2\x9d\
+\xfb\xd0\x0c\x22\xfbH\xcf(\xaa\xa0\x80\xd3\x14\x91\x00v\
+\xc7\xc7\x94\xcd\xee\xe6\x91e\x83\x8av\xd6Q\xab\xbb\x1b\
+\xf7&q4U\x00\xb5\x5c\x05\x826\x86}o\x1c\xd1\
+W.\xb6\x8d\x17K\xa0\xd8\xc0\xa0\xebv\x80\xc5\x9f\x10\
+\xbd\x92\xa0\xf6AL\xcd\x7f/ff\x1d\xe7<;|\
+P\xd96\x0d\x00C\x0a\xe5\xbe\x19G\xa1\xf4u\x05\xa5\
+Z\xcb\xbe`;8M)\xc1,\xf2\xef\xf4\xfe\xf6\xfa\
+\x8a8\xad\xe7v\xc9c\xca\x86\x0a\xbc\xca\xb7\x8a\x03f\
+\x13 \x17\xa3\x22\x94\xbe\xfe{\xad\x19_Q\xb6\x8d\xc1\
+\xa2m\xd0\xcc\x01\xbf\x0f\xc8\x22\xca\xaa\x15*\x09m\xef\
+[\x95\x19\xcfI\x0bSZ\xad\xa6\x7f-\x9b\xd7\xc7\x05\
+e\xc3\x1c\xf8\xcf\x0b\xa3\xeb9y\xde\xaf\x0ap\x1af\
+PI\xc9.b\xb2\xd7H\x85p7\xfe\xa9\x03\xff\xdf\
+\x8b\x7f\x01\xac\x00\x92\xbe=\x01\xbe\xf3=\x00\xd7\xe9\xe3\
+\xcb\x06\xeai\x98=\xa7w\xac\x95\x1e\x01\xeb\xf1ae\
+\xf3\xebS\xcb\xb6\xde\xee\xd6\x1c\xb0\x8f|\xfe\x8d\xcf\xbb\
+\xd1\x12\x07T\x1a\xf21\x01\xf4n80\xd9$@\x12\
+V\x1a\x18\xd6_\x18?\xd3\xe3\xca\xe6\xcf\xfd\xfc\xb2J\
+H\x22NKM\xff\x900\xe2\xa6\xb3\xcd\xdf\xe3\xeck\
+\xcb\x06\xe0N\x80*\xd1\x02lJLQ:\xc5\x09\xa8\
+\xda\xe9\xednq\xab<\xcf\x16\x93\xbc}\xd9\x00\xb0K\
+\xacB\xfd\xef\x04\xcb\xf8A\xc0%\xea\xb3D8\xda*\
+\xc4+;\xd0\x177\xf1\x8f\xe29\x1a\x1c\xf7)\x1b\xae\
+_|\xa8\x90\x83\x11PL\xb5GmS \xda_f\
+?/\x22\xcf\xbf4$\x9a\xd5[\xff\x98\xc5_\xbel\
+\xf1\x977Ydq[;\xa3\xef\xdbuR\x10\xc2P\
+\x12\x8f:\x97\x89\x99\xaa\x10\x8a\xdf\xcc#\x17\xc7\x89k\
+\x00#\xe2b\xd7c\xfa\x14\xa0R\xa2\xbc\xd7pq\x8e\
+Y\xdf\x0aVZ\x04$(\xfe\xbbD\x1fsS\x02\x09\
+\xa8\x00\xe0\x06X=\xdd\xa3l\xa0\xaa\xe7\xbe4\xc3\x80\
+\xbfV)\x95X\xd8\x97\xfc\x93\xfb\x05\x08O<8\xc7\
+!\xb3\x0d\x05\x06~G\xc2D45\xadF}^\xd3\
+@\x88\xa6E\x8bb\x8b\xfb\xe4\x0b\xceO\x15\xd2\x14\x1e\
+\xda\xafa\xb4j%\x8a:}\xc7k\xe3\xd8\xef+\x0c\
+\xf9\x02\xa0L\xc2\xae5/\x9aP\xdd\xb2\x82\xe1\xacp\
+\xc9OZ\xe7\x12n\xf1\xb88\x09\xa3\x16\xd5\x5c\x9e\xe0\
+{\xf9\xb3\xe7*\xbe\xd9S\xe8\x01\xb6\x80q\xad\xa8\x01\
+\xf0:Q\x07D\x8b{\xec?\xfe\xd6\xf7\xcc\xf9\xd0\xe3\
+\x03G\x8d\xb2\xb7\x0c\xcf\xaf\xa2\x8e\x97\x0e\x09\xa5ul\
+?\xf0O\x12t\xff\xde\x9f\xe5#\xceQ\x00\xc2^\xcb\
+`?\x0d\xc3}\xde3%\xdc7\x9f\xbf\xd3\x94k\xa0\
+\xc4\xf3\xb5~\xc5S4\xa3\xd2j\xd8c8\xdd\xb7\xbd\
+\xd8\xa0D\xd9\xfd\xc4\xe8\xd4\xfa\xf9\x13\x8bm\x95v\xda\
+s\xf1\x0b\xc7\x17\x95m@\xc0\xf4\xd6\xb2\xa1\xd5\xd4\xba\
+Ne\xbe\xef\x8fua\xdf\xfb\xde\x0aB\xe2\x87\x8c\xbd\
+\xec8\xdf\xf3\x1179oh\x88\xd9_\xfcJ\x80\xa4\
+ss:\xfc\xfe\xd3\xfb\x87\x0a\x9e\x8ab\xc6o4\xd5\
+\x0a\xb5\xd0\xc2\xaa\xc7w\xe1\x10\xd8\x96;\xba\xcb\xff\xd0\
+{\xbfS\xf5\xec\x9e[\x09\x811n\x1et6\xf6\x82\
+\xfc^0\xcc{\x8dx\xd7\xf2\xb5~q8\xf0<`\
+\x1b\x5c\xef\xd38\xb5`\xa4zW ;\xf6\xe0U\xfa\
+\xf9ICe\x9d\x03\xaee\xf0\xe1\xff\xc3\x86\xf7\xfd\xeb\
+j\xc7\x1e}<\x80:\x06\xdf\x9c\x0d2\x8eUs\xff\
+\xbc\x7f-\xe3\xb7o\x88r\x8fi\x92\x08V\xc0{\x9f\
+\xe1\xf7\xab\xf3\xfbK\x87\xcf\xad:\xe0\x9dR\xa9~\xd5\
+0\xf7=\x07\xa8q\x7f\xf3\xb3Y\xa9h(\xaf\xff\xb1\
+&\xbe\x87\xf7\xaf\x81\xef\xf4\xbf\xca\xe6\xd7E\x16w\x0b\
+\xf4 \xd1\xd3-\xa7O\x9c>q\x18\xe7\x85\xeaN\x8c\
+(\x01\xc0t,\x1b\x10,\x1bZ\x0f\xe0\xc7.z\xa2\
+k@q\xffA$.\x07\x15\x15\xf0\xfe\x81\x00\x87\xfa\
+\x86\xd2\xde\x15\x96ld\xcc\x0d\x09J'\xdc*3\xb9\
+/=\xee\x8bhM4\x02\xbag\x12@@\x84\x05\x00\
+\x10FA'\xf8D\x06%\x12\x19K\xc8Q\x1f~3\
+-\x09\xef^\xc5\x8c\xfa~\x05(\xf0}\xcc\x99V9\
+\x9b\xff\xff:\x9e\xf0&\x01jn\x93\x00\xed\xd6A\x96\
+Uvo\x16\x06D\xc6w\x99\xe7\xda\x8e\x95\x08\x1b\xaa\
+\xa6\x8a\x07\x84\xf2ze\xdb\xfe>\xfeC\xd9\x00\xc4%\
+aiq\x12\x8e%\x07!\xb1\xc8\xee\xc1E1\xf3\xb9\
+\x18 (\xa7\x1c\x99\x84_\xc0\xa95\xc1\xfb\xf3\x13\x0e\
+v\xfe`?}D\xa0A,\xacT\x9c\xffa\xa1\xea\
+?\xbc\xa8\xfaM=\x0d\x85\xb9+\xaf\x12\x868\xfe\xe3\
+\xcb\xcb\xb6^\xe5f\x14\xa9\x9c98U\xf4%\xcc\x02\
+7\xc0E\x0e\xf0V\xd1'\xde\x86\xc1\x01P\xe5\x17\xf5\
+|\xaa\x1c\xe8\x09\x13 \xf9\xde\x90_b\x5c\xd4\x85\xd3\
+\xa2\xd1\x22\x7fD0\xf5\xa8\xa2D\x0a\xdc\xbd\x9f\x00]\
+k\x81\x96\x1bT\xb4<\xff\xe37\x96mj\xef\xed\xff\
+\x1c\xa8*\xc9\x12lSY\xc2\x04i\x80\xc4A\x85a\
+%\xe0L\xa2{xV\xd9\xd6\xab\xd6=\x95\xee7\xff\
+,\x81P1\xb9\xe9\xd2<\xd3\xe7R\x8f\x0fM\x8f\x7f\
+\x8b\x03\x02\xfa0\x19\x12\x90MO,\x1bz\xa4\xd3\x83\
+\xdf\x81A\x00\xf1\x06N<?\x01+\xb1@-F\x98\
+0\xe9\xc9\x9c\x9eU6\x8cM3\xa6\xd1\xb4\x84\xa8\xc7\
+7cI\xeb\x89D$\x80\xa0\xf5\x0b(m\x06\x0e@\
+M\xa2\xe8|p~\xab\xf4\x01\x1c\xadW\x14\xf3\x1b\x97\
+\x0d\xbd\xb7\xa9\xf4\xb58\x11\xcd\x00\x09n\x02\x18\xdf\xdb\
+xW\x9f\xd7~\xe3o\x13\xb8%Qh\xe0\x95Z\xbe\
+\xcay\x02\xac\xd3O\x97m@t\xef7\x81\xa3V\x8c\
+_><mI0?r\x0e\x87?r\xa08\xe7s\
+\xbb\xb2\xff\xc6\x5c\xc7O\xaf\xeb\xbb+\xb37M\x80\xf6\
+\x9eT\xc0>|'\xce\xf57k\xe2t\xba\xef\xe9+\
+\x17m\x80\xfd\xf8\xbcZE\x9f3\x00{\x12Y\x80\x18\
+\xe6\x0e\x80 \xe7\xc3\xf4\xff\xd3u'\xe0\xda\x95U\xf9\
+\xc0\xbfw\x7f\x1f\x0e\x88\x80b\x0e\x88c*\x88\xe6\x08\
+N\x19h\x96\xe6\x90\xa6\xe6H\xe6\x00\x8ah\x81S\x9a\
+3\x99\xa9Y\xe0l\xe6\x08\x9a\x82b\x99\x99\xa6\x19\xce\
+\x16\xce\x9af\x8e\xfd\x1dp\x224\x09\x9c\xd0o\xbf\xff\
+\xbd\x9e\xbd~k?l\xe8\xac\xeb\xe2\xbd\xce\xc79\xef\
+\xd9\xef\xde\xcf\xb3\x9e\xb5\xeeu\xaf{}e\xf8\xf2\xf0\
+\x95.\xb1\xcaDv{x\x06\xceT\xba\xdf:\xaf\x9b\
+\xf1\xb3\xe3\xe7\xc6\xe9:v\x1e\xb2\xf3\xa6;\x0f\xe9\xd4\
+\xa6\x9d\x8f\x1f\x0f\xeb(\xa0=\xb3q\xd3\xc5[Z\xc4\
+\x00\x03\xd6\x11qM\x00@\x02\xe5m\xde\xfc]\x17 \
+\xa5\xee\x9b\x04\x13\xf5\x99\x86\x0f\xca\xacJ\x94\x04\x93?\
+\xc1,\x11\xbf`Rx\xbe\xd7i\x10\xcb\xec\xcf\xc7\xce\
+\xcf\xa9D\x8b\xb3\xb2\x15\xb5DJ#\xdc>qa\x06\
+\xd0v\x100o\xff{{\xf6\xf6\xacE\xcb\xa8\xa8\xae\
+!\xc2\xf7\xb5n\x5co\xc6\xab\xdb\xbdR4\x16\xa0\x06\
+\xd8\xe3\xc7\xd3O\xd7\xfd\xa0\xd5A\xd3\xc5\xe7\xe1\x07]\
+\xbfsN\xc0\x8eA\x82:\x9e\xfb\x00\xd0_\xe3\x07\x01\
+\x89\x00v\xe7Aj\x11\xd4zwn\x8a\x9b\x01\x0a\xeb\
+\xf84+\x86\xa5}bZ\x8a\xf1\xd0\xc6kJ\x98\xec\
+;\x09\x888HaAaK\x01*\x81\xdc\x12=\xa3\
+] \x81s\x8e\xe7\xfb\x17`\xb0\x9eg\xae\xe0\x82\xfa\
+\x9fq@}N\xe7\xff\xea\xe7k\x1fjysnd\
+E\xb4\xc6\xe4\x02\xfa\x9f=\x8b/\x0e\xfb\x86-\xc0\xc5\
+\xf6\x91a\x1d\xf0\x90@n\x9d_\x18rY\x90\xa98\
+\x9e\xa8 \xbf\xbd\xd2(*\xa0P\xc1\x03\x03\x8a\xe6\x8a\
+\xb8R+\x1em\x02\x091\xe6\x02f\x821~\x12^\
+\x15a\xebL\xfc\x87\x89\xba\x1e\x87g\xac\xa4\xfb\xe4y\
+\xa7\xdf\x1f\xdf\x1b\xd61\x143n\xaa\xe7i]\x8b#\
+\xd6\xaf\xfe\xfej\x9c\xfb\x85\x12O\xfb\xc4\xdf\x97h\xbb\
+\x8f\x001\x00\x03?\xe7{\x05\xe9u\x8b\x87\xf8\xd0z\
+\x11\x9f\x01\x9c\xe4\xb5g\x87u\x05\x0b\xad\x9e\xc48\xed\
+\xbb\x15\xd3\x02\xd0WS;\xb4\xea\x11\xf1\xcd\x169\x80\
+\x0f?\xbb\xfb-a\x0b\x13m\xf8\xe3\xb0Nk\x85\xc6\
+\x14\xe6\xa9u\x88)+\xae\xa6\x85g,\xa6V\x02\xe7\
+> C\xdc\xafp\xa7\x853\x0b\x06\x0a\x5c\xfe\xfe\xae\
+J@S\x94\xa8(;z\x0c8@\xd4D\xe3\x91\xf2\
+FT\x22\x97sm\x89o\xad\xe7\x957\x8a\xf2w\x96\
+\x1e\xb4R\x9bD\xa9\xf4\xa0\xf4\x96\xc6\xd7\x98=\xa6\xb7\
+\xe9\xc6;y\xe0k\x91\x92u\xc0\x08\x10HU\xfc\xda\
+\x08*\xf9\x01\x1b\xec\xdb\xf5\xe4G\xd8t\xb9\xee\xfb~\
+>\xf7\xe5\xba\x1e\xa7\xf8T\x97Y\x12\xd1\x12\xf3\x0b\xfc\
+\xee\xac\xee\x01:\xe0 o\x11F_\xb9[\xb8\x91\x1e\
+\x7f 7\xc2\xb7\x96\x83\xa7U\x10n\x93\x15\xf8\xabv\
+\x14\xcfDx\xabb\xf9\xc2\xc9^\xb4T\xc2\x88\xa2\xd4\
+\xb82\x95p\xbd\xa1o\x98\x0f\x8c\xc9-\xb5\xb9\xac5\
+/7UAK\x15<{\x12\x87\xdd\xc3/\x86\xe9~\
+\xed\xbcj\xd8\xc2\x0c\x18\x0e\x0e\x9b^o\x176\xbd\xfe\
+w\xd8\xd2\xf3R=Pz`U\xde\x1c$\xd4\xc6S\
+\x9d\xbf\xd4\xfa\x05T\x1c\xab\x83\xc6\xab^6\x8e\xd6x\
+\xaal\x0d(F\x00@ +\xc8\xa8?S\xf8\xdd\xc6\
+&m\x1e\xbbyL\xcc\xfdl\x95\xab;w\x8c\x15\x07\
+\x89J@\x1e \xc5,P1\xa1=\x90\x095\x84\xbb\
+z\xc5\xdf\x91\x89\xdf#sn<\x00\xc2u\xdd)\x19\
+\x14IY.\xca\xa1\xcf\x91\xc0E\xf5,~#\x1d\xbc\
+\x0a\x8c\x00\x8c#\x14\xe0\x9f\x9b\xa2U\x12*\xc0XR\
+\xe2h:\xd8\xb7\xa8n\xa5\x8a/\x90K \xaa*w\
+\xc6\x8b\xbc \xac\xab$K8U\x0c\x1dD\xa8Z\x90\
+_\xe3\xd28(\x88&\x15\xe2\xf5A\xe2}P\xee|\
+N\xd3\x01\xae\x15\xd6\xf9\xa9\x13&\xafpB\x02\x85'\
+,\x95t\x89W\x05\x12\x02)S\x01RL\xb1\xb4\x0f\
+P\xa40M\xcc7W\x81S\x11\xb0\x1e\x89Vf\xeb\
+L\x05x\xd4\xbcU\xacT\xdc\x05.\x10}\x9fK\xc2\
+\x9e\x14\xdf\xa2@R\x8f\xfeF\xbe\xba\xdf*\xc3*!\
+\x18)\x12l\x7f\x87H\x1f\x119\x07\xb3\x16\x0e\xad,\
+\xa8\xfcZ\x0a\xd2\x7f\xa2\xda\xd6\xbeX\xf5\xbc\x96\xf8 \
+&\x89\xf7\xcf\xf5A\xf4Qez\xf8\x87\xb0n\x1d\xab\
+\x90\xe49]\xe3\xdfLk\x10\xf0X\xc7\xa8\xc6\xd1c\
+~\x8b\xa5\xc7\xb94\x0e\xbc\x11\x80%\xefg%\xea\xa9\
+R\x1d\xde\xb5QJiA@\xd2\x89\xf7` \xe4\xfd\
++\x11D\x15?\x8c'-A\xc6\x92\xde;\x999\xd6\
+g\xf6N\x0b\xec\x04\x16%\xca\xb3\xa6\xe8\xa2Rz>\
+Yip\xde\x96\xe8&\x00N@,\xb1V!>2\
+\x19[\xc9P\xaa\xcaT\x02\x07\x95xK\xfcQ-]\
+\x07\xb5\xfe\xf4\xdbU\xf9S\xc1|@VhQ\xf8?\
+\x95\x81\xdd+v\xbcr\xc7+\x17J2\xcd\x88)|\
+\x9d\xef\xff\xc76\x1f\xdd|\xac\x03\x1a\x1e\xddd\xd1\xe2\
+\xfcn\x95\xad\xed\x9f\xcd\xe3\xe6Z\xb4\xf0\x8b\x06\xd0\x5c\
+<\x00\x9a\x12Y\xca\xca\xba\xfb7\x9e<\x9e4\x9e\xdc\
+\xad\xcf\xeb\xcc\x81-\x8d\x08L\x8c\xcdS\xe6\xc4\xaf\x18\
+_\xbf\x9f\x89\x8b\x00\xee\xfeYA<m\xc7\x9bZ\xe5\
+<U\xf4\xab7_\x8f\xafD\x95F\xd2us<\x96\
+\x96\xbb\xa8\xb0\xbf\xadk)\xb9\xecf\xbf\xc6\x0c\x0b\x98\
+~\xba\xee\xf11\xe3c\xc7\xc7t\x15\xac\x1b\xcc\xf7a\
+{\xbf\x99\x09\xb3}\xf9\xf6\xafC\xfct{\xe5\xb0\xee\
+\x1c\x00\xa0\x13\xbf\xc4\x00\xb2\xcf\xf3\xb9T\x8f\xab\xd6\xbb\
+\x97\x85-s\xd1%X\x0d0|\xe52E\xa8i,\
+M\xfbt<2\xac\x1b\xef\x87\xe9G[E\x859\xfd\
+\xe3\xf6\x97\xc3\x96\xc0\x9eV\x831\xc1%>zZ\xd8\
+E\xf4\xe6\x02|%\x04\xc4S%\x02\xd6%\xf1\xd4\x1b\
+\xce\x9a\x09\x05\xdc\xf89\x14\xee\x0f\xa4\xf6B\x8a\xd1\x8e\
+7\x08k\xeb\xe1\xb0X\x0fDQ\xab\x10u\xe8\xf6\x90\
+\xed!\xcbx\xbeP\x0ahZ\x01Z&\x00\xa5*\xba\
+\xfc\x0a\x15u@(\xc6\x85x8{\xac+a\xa0z\
+O|\x98h\x1a\x86\x90\xd6\xae<\x07L\xa7\xa9);\
+\x12Qba\x00Y\x15\xc9l\xc9\xaa\x04R\xc5\x1bC\
+VA\x88\xdfM\xc0\xab\x12+\xe7\x918Z\xe5Y\xa2\
+(\xe1\x5c\x8b\x80\xbb\xffD~%\xf0\xc4\x0f\xd3?W\
+b\x06h1\x9eVK\xa0\xca\xab\x84\xc7\x94\xa5l\xb1\
+\xb8P\x22\xa7\xe0f=a\x12a\x08\xbc1\xac\x03\xc8\
+\x8f\x0e\x9b\xbe\x7f\xe5\xec\x9f\x8aA\x96\xcc\xaa\xf1\x94\xb0\
+\x04\xc2\xee\xd6%\x84\xe6\xc0\xcb\x7f|\xee\xf4\x075=\
+E\x85<\xfdZ1;\xc5\xf9\xces\xe7= \xc1\xfa\
+\xd2\x22$\xf1\xd7\x02\xa5\xd0\xb1\x16#\x07\x90H\xd0\x15\
+R}Y/Z!\x1e\x18\xb6\xb4\xf0mO\x0d[*\
+\xd1\xe3ya]%\x1b\xe3\xd2\xfb\x8a\xc3V\x89}\x01\
+\x02+\xc0\x8b(j\xc5y\x0a<\xe2B\xeb\xd2\xfb\x03\
+\x00\xe4k\xfc\xec\x9aI\xb0\xae\xc8\xf3\x1f\xbew\xbf}\
+\xbffX\xac\x99\x0ak-\x01\xf7_\x1ei\xbd{n\
+\x98\x9b\x8f\x0d\xeb\xfc\x96W\x89\xf8\xaa\x901\xdc%l\
+\xba\x9c+\x85M\xdb\xe0\xd7\xc3:m\xb6\x9c2T-\
+\xe8y\x1fJ\x83C!\xd5\xb9\x81\x01\x04\x90\x93o\xd2\
+h\xe0G\xf9\x01y\xa3V\xaa\x04\xd6\x01\x0f\xbb,P\
+\x09\x9b\x9e\x85zc\x89pRP\x9a\x18\xcfm\xbbq\
+0\xe6\x15\xeb\x0du\xe3<PHT.\xb8\x12\xf3\x81\
+`\xa2\xb6\xf8\xf9\x14\xb5+\xf1%\x223q\x15\x97\xed\
+\x10U\x00\x83\x03\x85c\x88\xff\xee\xd1}\xef\x01\x13\xf9\
+\xb1p\xbcrP\xc4\xfd\xfa\xf1~\x97\xec6\x9e\xde\xfe\
+x\x9f\x9f\xb7\x8a\xc2d]om\xfe{sW\xe6W\
+\x1e\xd0m`\x1b)\x08\xd8\xef\xcf\xeb\xde\xabSu\x8f\
+\x03\xee\x06\x99\x18\xbf9\xc5G\x1e\xdc\x8d)\xd3\x83K\
+]\x18\xb2\x98\x89\xcb\xf0\xe2y\xbc\xd1\xe6\xaaI\xdd?\
+{\x1eg\xd7\xea&WmH\xd2\xec`U\xf2R$\
+ks\xf7\xb0Ethx\xfe\xf0\xbc\xe1y\xd3\xeb\x1b\
+\xc3\xa6\xd7\xa3\xc3\xa6_;/lz}J\xd8\xf4\xef\
+7\x0b\xeb\x12\x7f@\x03q2S\x04\x00<\x1cp\xf6\
+\xc2U\x85\x9e\x88\x99\xb9\xd1\x99\x98\x103,DVE\
+.\x91\xec\x12\x11\xcb\x03z\xf3\xa7a\x8b\x1ap\x01\x1a\
+\xc1\x1c\xb8F\x13\x89\xb9f{=0\x0f\x96\x877\xab\
+\x83\xaf\xb4\x03\xf2}\xf4T\xea\xc5\xad9\xdcO\xbe`\
+@Y\x1a\x04\x00\x18\xbd\xbf*\x0e\x8fi\x16\xcfe\xfe\
+\xfd\xeci\x1b\x1e\x1c\xd6\x1d\x8c\x80\x1e\x95\x17\xe3{8\
+N\x8e\x16\xc2g\x9cXRPkL\xd0'r\xbc_\
+\x8e\xa7\x12HLn}\xee}\xcd1`\x9eG\xa9\x8b\
+S\x15GEN\x07nnr\xed3\x0e\x15\xa0\xf6\x7f\
+\x8c\xd3\xdc\x9e\x15\xd6\xcd\x9f%\xaa\x02Q\xe68\x1d(\
+*\xd1(\xa8\xf6\xcb\xf3\xe7\xca\xd3v\xef\xb9b3\xde\
+#\xacK\xdc\xdf\xd6l\x09\x8c\x1c\xa8\x0e\x00\xc8{2\
+%*P\xc9J_Q\xa2\x8d\xb5\x93X\x13!\xcd\x03\
+\xb1z\xbb\x00V\xf7\x08[D\x1cK\x1cR\xe55\x13\
+\xcbV\xb9\xbcZ\xa7\xdel\xbf\xaf\xb5R\x1c\xfc\x02\x9d\
+\x9bd`\xf3\xc3<\x80T\x86Q\xbc\x92\xc2]\xc0\x1a\
+`*\x99!u`fbY\x01%\xbf!a\xf4y\
+\xf3\xe7K\xcc\xd3\x01$\x00\xce\xfbZ=\xf6\x98\x0b\xc6\
+\xfb=/\xac\x0b4\x1d\xfc\x12\x10\x09\xb3\xb1V\x02.\
+\xe2\x98Y\xe9\x1c_\x1e\xd6\x1dT\xfcg\x02\x1d\xe3\xa7\
+\xc2\xa6\xfd\xf3\x9ba\xd3\xf7\xfb\x85-\xfb\xaa\xc6\xa8I\
+\xfciyd\x222\xdc=\xacQ\x88_\x1b\x14b\x0c\
+\x8a\xe9\xae\xcd\xad7*\xc4\xc6\x8eR\x037\xe7\xdb\x01\
+\xeb\xb9\xfdOV\xca\x12h\xd4\xf3\xb9y\xe7\x0c\x04\xb6\
+\x96\xb5\xe9\xfb\xf1\xadaKE\xdd\xf9\xb1\x9e+\xbd\xf9\
+\x9f\xb0E;\xa5(\xa9z\xbci\x82$cJ\xc25\
+\xbc>\xac\x1d\xfc3@G[\x86*p\xf6>\x96\xbf\
+EU>-\xc7\xd3e\x00=\x5c/li\x0d(J\
+0`\x96\x8a\xf8\x893\x05\xb2*\xa6'\xe5\xbe\xcb\x80\
+m{\xcf\xb0L\xf4\x1f\x95L\xb1\xd7/\x22\xa9>g\
+\xf36\xef\xed\xb48~'lI\xe4\xec3\x0c*\xbd\
+\xd3z\xe7K\x842\x13\xb1\xf1\xa5\xe3K\xc6\x97\xb6\xfb\
+svc\x94\xd9\x07(\xed\x80v\x158-\x05\x00P\
+-#\xdf\x0d\xeb*\xdf\x02V\x95\xa3\x04\x8a\xda\xb9\x19\
+@\xc38\x03\xcc\xc5\xb4x\xde\xf6\xc4`\x1a\x0d\xef\x0b\
+k\x95\xe3\x9bF\xe5x|\x7fX\xbb\xaeyJD\xf6\
+\x04G\x1a\x1eb\xc7\xe3\xe3\xc7?\x1a\x1f\xbfT\xd4w\
+\x1e\x1a\xd6\xf9\x0d\xfbA\xc2&\xbe\xe2\xef\x00\x96\xb4G\
+\x00\xcb\xce\xd3L\xf8\xc6\xef\x84M\xaf\x0f\x0f\xeb\xc6^\
+f\x80[\xd3\x1ar\xcex%\xbc9\x8f\xbe*\x85\xa9\
+EQL/-A\xeb\x16>q\xa4\xc0U\x9c%A\
+\xd2kL4\x12\xe5\x9e\x1f5\x95Eb\xe1<\x14\xbf\
+\x99\xc2\x94\xd7W\xe3\x7fUlQbU\xd4\xf8\x7fS\
+\x15\xbe\x90c8\x7fg\x06\xd4\xa6U8\xfb'\xd7\x87\
+Y\x86\x22\xdc\x03A\xd7\xed\x12B\xfbE%V\x02C\
+CD\xeb\xc9\xc3\xb2\x05\xc8\x97\x84\x0f\xe3\x22\x0b\x1e\xdb\
+\xab\x84uS5\xfc\x5c\xc6\x83\xb5\xae\xcde\x07\x9cJ\
+\x5c\x88q;W\x96\x96\xa9\xc6\xa0\x9a\xd2\xdby\xbc/\
+\xc6\x80\xde|\x95P\xf7{-\xb6&Q\x03 \x00\xc0\
+\x8d'\x5c\x8b\x06zN\xfc\x12\xad\x1f\xd4g\xe7\x86\xfc\
+\xc1\xfb\x03\x00\xacs\xeb\xdf\xbe\xf6|\x00\xe3Z\xb8\x88\
+\x80\x1e2\x03=\x0a9\x05\xf0x~\xf9s5\xadI\
+\x02(\xae\xd1\x9ah\x8c\x9e\xe9\x15k\xf1^\x80\xb2\x82\
+\x08Q;\xc0m2*kzG\xfa\x11\x1a\x0b\xb5~\
+h\x1f\x01\x1eiJa\xa8=9\xack\x91\xfc\xb7Y\
+\xb4\xbb\xc4^3N\xa8J\xef/\x85u\xefg\xea\x1b\
+\x7f\x86A\xa2\x00\xb3.\xbc\xd8\xf7\x12f\xaf\xd6\x93x\
+\x100'Q]k\x00\xd8\x07\xde_\x0b\x00&\x03\xbf\
+%\xaf[\x8f\x1d\xf4\x5c$\xf8\xfd\x14\xa8+v\x09<\
+\xc0j\xa5\x09\xb0\xfd\xdf\xb0\xae\xa5\xc3u[\x97\xce\xe1\
+\xf5t\x0b\xd7)\xbe\xf5\x8aQ\x9e\x00S\xb5*Y\xf7\
+\xa1]\x17\xda\x0a'\x87-\xad\xcbM\xcb\xeemK\xa1\
+m\xfc`X\xc7\xb0\xc6L\x96\xef\x88\x93]\x9f\xcf\xe9\
+{~U\xc1MK\x80\xb8m\xcdPr\x7f\xb2Uh\
+W\x9b\x8f\xfb\xa7\xc9\x00\xf8\xb5\xdcHw\xc9\x8a\xecu\
+\xba?\xc8\xf1\xa9\xbcRQE\xb52\xaeKB\xaf\x17\
+9\xc7zU\xc51D\xc6\xfe\xabC\xeeb{]=\
+\xbf\xbf\xc9\xb2\xe1\xa9\xc97\x11\x9c\x7fN\xc7\xf7\xc9\xac\
+\x08\xf5\xaa\xf8\xa8\xf7z\xf2\xd7@\xc0\x9a\x12\x22q\xb1\
+\x90\x1dT\x0e\xa4\xbe\x15a\x8f\x95\xe8\x9f\x1e\x7f\xe2\x88\
+?\xeaD\xd3\xe2\xb7/\x9e\xe2z\x97\xeb\x00\x87X\xc6\
+\xff\xdd!\xa6\xa8%*\xd9\xa8\xc1qL\xee\x95H\xef\
+c\xbb\xca\x06\xca\x99\x00\x11\xc2\xa9\xd2\xf6\xdcL\xa8%\
+\xa0\xc6\xde%\xd2\x5c\x89\xea\x1ea\xdd\xfbfe\xa7\xd4\
+)3P/$\xf5u\x19\x80%\x15}xa\xd8\xf4\
+\xfa\xcc\xb0\xe9\xf5g\xf3\x1c\xea\xaa$fOLQ\x95\
+9\xe4\xec\x15\xadqq*\xf5\x18\x14\xc6Ca\x90\xa8\
+\x98\xa7(WQp\x88\x06\xd9\xb0*\x04\x1c\x94\x83\x0a\
+5VBu\xd7\xe9*\xee\xdaz\x0f\x1b%\xd1\x5c\xfa\
+Ru_\xf5N\xd6\x5cd\xe2\x85z\xec1-P\x8f\
+\xa9\x87\x13\x19L\xb1;\xda\x17\x9b\x0fm>?\xa8\xa7\
+\x02\x00\x00 \x00IDAT\xbc\xf9\xf0\x02\xb0\x14\x10\
+@\x9c0)\xc1\x85\xec\xeb%\x93\xc8\xda\xa8\x09\x00\xf8\
+\xfc\x11&\xb6\xf9\xa2\x97\xca\xde\xfd\x0c8$\xce\xdb\x8f\
+\xcc\x0e\x80\xc3\xab\xc0_/\xf1Cs\xbf\x02\xb6\xeck\
+\xe2b\x80@T\xde\x044J-\xd9<y\xa2jz\
+\xc6\xec\x1f\xbd\xe8\xd9\xb3mZ\xc0\x85\xc6\xa090\xd2\
+A\xa1H\x15B\x0c\x10\xb8\xce\xf6\xda\xdbkO\xdb\xfb\
+\xbaa\xa9\x09\xf2\xe9\x0ei^O\xcbP\x11JG\x5c\
+T[\x94\xa8\xdcw\xc3_\x86-=\xf6T\xa7U\xb6\
+P\x98Q\xfa\x8b\xc1\x80\xb2\x07\x10\x00<Q\x0bO\x06\
+IU\x82$p\xa8\xc2\x19(l\x8e\x08\xeb\xd4\xb0\x05\
+@\xd65\x0a/\x91\x1c\xf3\xd9\x01\x01\x02/\x80\x8d\x03\
+!\xd7YUn1L\x88\xbb=!\xac\xbb_4G\
+hq\x10\x91\xcc\x84\xaf\x12\xa3\x04\x18*\x80 :\xf7\
+\xa2\xb0\xee\xb9\xa9\x00Q\x81\xcf^\xc3h4\x8bV\xb3\
+R\xf5\x97\x90`Td\xa25\xbc!lQo\xaf\x0a\
+\xa8\x80D\xe2\x9a\xff_\xafs\x01\x8b\xfb\xce\xe3\xc1\x86\
+\x13\xc3\x96\xfb\x06\xa8\x160\x95\x06\x80\xde\xedd2L\
+\xe9\xd2\x5c9\xc5\x042E\x22\xa9\xab\xd5\xda\xe1~_\
+%\x01VT\xeb\xd4X\x99\x0e\xf7\xb9\xf2\xbe\xf7\xcc`\
+ ^8\x1e\x1c\xd6\x05\x9eI\xf1\xc4\x90\x18\xae8\x5c\
+i\xb8\xd2\x02\xec\x95\x18\x95\xfbDo\xf77\xe6@}\
+8\x22\xac\xf3\xab\x09|V+VV>\x86\xa7\x0dO\
+\x1f\x9e>\xfd\xfd\xe3\xc6c\xc7c\x17u\xedJ\x94\x92\
+\x01\xb8\xb9\xcd\xec\xbf\x87C\xc3&w{B\xd8\x05z\
+\x07\xe7\xca\xa0\xfd\x9e\x95\x7f\x22[\xd3U\xdc\xa2]\xc7\
+;6ooc\xf5h\xecde_\xe5\xa1\x18\x0e\xce\
+\x8bl\x1dj\xe2H\x07wc\x11sjI\xf9\xd9\x00\
+\xc4?\x90\x00J7\xa6O\x80=<+\xac\xed\xf7\xb7\
+\xc7~\xe7\x0f+\x11\xbdG\xb3\xa5\x12\xfa\xf3\x0c\x14\xdf\
+\xb1\xe3\xed\x8d\xf1\xf8\x86\xed)\xad\xd5\xe2O\xa7h\xe6\
+O\x97s\xb3\x12\x8f\x04\xeeP\xe6\xa9\x84\x0b\xd0\x1b!\
+d\xb3\x8c\xbb$:X\xe7L\xc6O\xdbkl\xaf\xde\
+\xe6o\xf3?Z\x93\xee\x1c\xd6\x98|\xfb\x07\x93o\xdc\
+?lz\xdf\xf7\x84u\xa2|\xfc\xb2DI`M\x9c\
+Lo\xba\xfd\xa3w\xde\xbeI\x0d\x0e\x80\xcb\xf0\xfba\
+]\xc2\x9d\x85\x85\xf2S*QZ\x92\xb25e|p\
+X7.6\xb5|J\xf4S\x00*A\x5c\x8f5\x16\
+p\xa3\x82\xa7\xbf\xac9\xda\x09\x1c\xf3\x1f\x18_\x05\x00\
+8\xff\xfb\xc0x\xcfn\x9f\xfc\xc9\xb4\xce\xfe\xa4\xcd\xc5\
+~H\xcc\xc5\xdeq\xd2\x8eW\xb7\xf3<)\xff\x95\x18\
+\x01\xdeS\x1d\xbbI1?\xac\x89\xa8\xb5V\xa5\x8a\xdf\
+\xcc\xd9V\xa0\x92\xd8\xe49ZS\x18\x00\x9c\xe2\x12\xcc\
+\xb0G\x865\x95\xef_4-\xaa\x04\x220\xeeL\x17\
+Q\xb9\xd5\xbaV\xea\xed\xa8\xbf\xee\xa7\x04\xce\xb9G\xcc\
+\xd1\xdf\xcdx\xa9\xd6\xa1\xc4\xed\x9b\xa9}\x14\xe7\xc2Q\
+\x09\xa8\xbf\xba+H\xd0x\x91\xd0\xadD\xdb\xaa\xf5K\
+\x0b\x90\xfb\xe0\x1c0\xb6\x90\xea\x7f\x9e\x07\xf5\x05\x80\xa6\
+y\xe4\xdc\x90\x00{?\x09\x98\xf5\x82\x11Fc\x80\xf8\
+\xac\xeb\x02\xd0\xd1V\xa2-\x83B\x9e\x89<\xca{1\
+\xdf0\x02\xb5H\xf1S\xb4#h\x06\x98\xee\x80A%\
+!\x94\x80\xab\xb8b\x94%\xf5\xbez\xf6\xb5@`\x12\
+\xd0\xc2R\x98\x93\xf8\x1a\xa7\x9c\x9a\x06\xd5j\x0d\xd0W\
+\xc9\xcf\xd6\x94\xd2\x9c\xc8\x84\x9ax\xac\x16P\x09i\xdd\
+\x1f\xe7\xb9)=\xe2\x01~\xce}\x96`\x8bG\xd7\xe2\
+{+`\xa9\xe2<\x9fG\xbe\xe59zu~zU\
+ R\x88\xc0 !\xd2\x0dh\xc9\xbfS\xe7\x97\xb8\x96\
+_q}>\x87\xa9_\xc4x%\xc8\xce/@\xbe\xf5\
+d\x1a\x091H\xeb\x86\x7f\xe1\x07\xc4\xb1\xf6\x87\xfb%\
+\x1e5\xe6\x17\xe0\x95\xcf\x7f\xe7\x03\xc2\xba\xa9 \xc6\xaf\
+f\xa1\xa9i\xdd]\xa5\x13\xe3\x14\x07\xc8g\xc4}+\
+\x91\xd0:\x07\x96\xb1\xdfs\xa1\xcd\xbe\xf0\xf3>w\x02\
+\x07\xbb$\xaa%\x9et\xfd\xb9\xc7\xb2-\x8b\x87tT\
+7\x144\xa2Nz#!-nx\xdeH\x89\xc7\xf6\
+~a\xdd\xb8\x1e\x15\x04@B\xb4\x0c\x5c\xa5SG\x8d\
+\x84\xe6\x1f\xba\x9e\xb2H\xff\x0e\xef\x16X\x8a\xf7\xd5\x07\
+\xb1\xd0L! \xda\x17\x8f\xeb\x92\xddu\xad\x13y\xda\
+\x00\xae\x1f `\x81F\x98\x7f\xb1\xaee\x80\xda,\xb5\
+\xffx\x97\xb1c\x06\xb8\x1e\x80\x83\xf1|6\x88V\x82\
+p#\xd7\xec\xdeW\x0fzT\xee\xee\x9b\x8c\x82\xbd;\
+`\xc2\xfd\xca\x00\xb9\xe63s\xd0\x12\x86\xfd\x13\xb1B\
+\x15N\xb1\xa3\xa2\x90JL\x93\x0a;\xdc1\xacKP\
+\x05\xfcw\x0ek\x8ex\x1e\xbfB$F@L\xb5^\
+\xa2\x9c\x89;\x84\xbe\x02&\xcfo\x8d8\xea\xa5\x86\xa0\
+\xaa\xb0g/=u\xec\xaaHh\x15\xa0q \x90\x83\
+\xc8\x9e\x18\xd6m<\x0e\x88C\xb9q\x8a\xdfx\x0e\x0e\
+\xce\x04\xae\xea\xef\x01>R\xf4\xaa\x18\x01\xe6\x93'\xc5\
+G\x8bE(#4m\x84\x1b%\xe5\xf3\x80d^|\
+3\xc5\x10S\x05\xb6\x80\x0cL\x05\xf3\xcdU\xd48X\
+\x01\x88\x0d\x0d\xdazwV\x12$~\xc4\xaa\xd6c5\
+\xbf\x9aL\x01T\xb4\xfc\x1c\x15\xe0\xfcv\x8auq\xf8\
+^3\x81\xd4\xc3\x5c\xc0\x87\x9e\xa9w\x85\xb5qF\xad\
+u\xa4*(\xd4m!\xaa\x12\xed\xa4\xd0VeW\xa5\
+<\xa9o5\xbeJ\xc0\x0a\x01^\xab\xdez\xce\x094\
+\xd4\x81\x96\x81\xf7x|XG\x0dGE\xcfD\xb1\x12\
+~\x81\x91D\x04\xf3\x08\x05R\x05\xc1zL\x8a\x22\x91\
+\xb7\x020sl\x11\xc0LOm\xf5\xf8ReW\x09\
+\xf7|P)\x01\x02\x09\x8c\xd4s\xb1\x8e\x8d\x0b\xe4\xa8\
+\x05\xb8\x0e\x1e\x0e\xde:P\xc9\xc7\x0c\xc2\xa8\x899\xdd\
+\x9f\xeb\x98\x15(\xba\xc9\xc4)\xea3?\xa8b\x96=\
+bD\x1d\x0b\xd8E\x99%\x86\x97@H\xb5\xb0\xe4\xbe\
+\xae\xc0\x06e7\x0f\x18\x01\xddx\xe5\xb0\xae\xd2\xfc\xf2\
+\xb0\x8e\xa2\xa9\xa2\x03\x88\xe4\xc7T\xfe\x00$z\xcf\xb3\
+\xc2\x5c@\x93\x00($\xe3\xa6\xcf3\xde0l\x19\x1f\
+X\x01eV\xf6\xb7\xaf\x09[\xa8\xeeS\xda\xf8\xec\xe1\
+\xd9\xcb\x9c\xf9\x1a+\x08\xa8\xb5^\x05h\xce\x95[\xcd\
+\x0c\xa5\x9a#\xef@\xe0\xf7$L\xd9\x138\xbc2\xac\
+S\x83N?Y~\x10#\xe5\x8c\x04F1\xab\x0e\xc8\
+\x83\xffU\x99p\x7fd\x16\xff\xab\x80\x0e\xc51\x99M\
+5\x0d@@\x0fX=e\xd6h0N\xb7\xa6aX\
+G\xbf\x92\xfe\xec\xb3\xf3:\xaa\x8ay\x06Z\xe5\xff\xdf\
+\x13\xb6\x00\x97\x80\x94\xe1\xcd\xc3i\xc3i\xd9{\xfc;\
+\x8b\xa6M\xed\x87\xf4Oz1U\x02KE?\xbe\xbf\
+k&\x8e_\xea\x02\x1fSd\xb4R\xa5\x7fk\xcf\xfd\
+)\x0b\x93a\xbceX\x178\x87W9o\x01\xce1\
+P6OLF\x87i\x15\x9fl\xcd\x0c\xb1\xbf\xfe\xae\
+\xed/\x800\x80[\x5cc\xfe\xb6s>\xfd\x95\xf3X\
+\xc20~\x22l\x01\x90\xa9l;\xaf\xc7\xbb\x85uq\
+B\xf0'NZ\xfc\xc9\xf8\x99\xc9>\xbd\xc45%\xca\
+k,\xd9:\xee\xe2'T\x8e\xf4\x22k\x9d0\xa62\
+\x99b\xa6*\x94X\x1am\x0e\x9a\x22Y)\xad\xd6<\
+\xf1\x88\xca[\xee\xa7\x02Z\xf5\xb0K\x90\x9e;\xd9\x9f\
+'\xa3\xf4\x99\x17Q\xa9\xb3\x1e\xd6\xe3\xd1\x00\xa4\x18\x84\
+\xc6\xcaj-\xa4yC\xdc5(\xd8g$3\xee#\
+\x9d_\x13?\x00\xa6\xbe5\x9d\xcb\xdf\xea\xc4(\xf9\x13\
+b\xb7\x12z\xd4\xf1\xf4\x93[\xd4^\x89\xc3i\xc9\xf0\
+1\x1d\x07\xf5_\x85M\xcb'&I\x02\x5cZ\xe8\x0a\
+h6\xef\x9chn\x02@\xce\x17\xa2\xb5\x0aF\xce!\
+\x89`1\xbd\x88\xd0\x12\xdd\xc5,\xe3\x0fLE\xd0\x83\
+\x0f\x90w\x9f\xae\xbf\xe3k-^\xc8\xc2P%^\xe2\
+\x0a\xfe\x8e\xff\x04,d\xafv\xc5\x0b*\xaa*\x91\xa8\
+\xf3\xae\x03\x83B\x81\xd0\xfa]i\x03\xd5\xf8K\xe7\x97\
+\xebp.\xa2\xb8\xfb\x9e\x98$\xf1Cq\x80\xf7\xf7<\
+h\x0f\xbd,\xac\x1b\xdf\x96\xda\x00\xdb\xdb\x86u\x89\xdc\
+gW\xad\x12I\xa9\xdf\x9c\x11\xd6\x8d\xd9\xb6\x0e\xdd7\
+\x05\x10cs\xf3\xfb\x1a\xef\x99\x00P1\x0c\xb5\x88\x00\
+\xb2\xb4\x82\xe4\xd8\xf3j\x95K\xff\x86\xd1P\xccJ\x9a\
+/\xcecqm2!\xc6\xbf\x0a[\xce\xe5\xede\xc2\
+\xba\xbcA\x01RKc2\x0a\xc5[\xb5o\x01\x98~\
+^\xa5\xbegn\x9f\xdf\xb5\xb8|&\xac\xdb\x17\xeb\xe9\
+M\xd6\x9f\xf7\xcf\xfb^\x0c \xcc\xef\xfc\xbb\xe2\xd0\xf2\
+C\x12]\xcfI+\x89\x03X^\xb8f\x96J\x8c\xe5\
+\x09\xeb\xc2\xaf\xdfs}\x12\xfe\xf5\xb4\x0b\xf1.\xbf\x80\
+\x99)\x7f\xf49Q\xf3\x01\xa8\xae\x1f\xe0N\x84\xd8z\
+\xc8\xf8YK\x97V\xca\xda\x87\x00\x00~\xdf>q\xfd\
+\xce3q\x0e\x91\xdc\xb5\xd6J\x9eK\xbb\x88\x22A\x80\
+Z\x8f\xf9s\xbb\x1f\x84\xac\xe8\x8d\xf7\xf5\xd5\x96r,\
+=C(\xa1)\x82@\x15q\xbc{X\xf6\x8c\xbe/\
+\x0f\xf4C\x12\xa1\xfe\xd3\xec\xdd=1\x1d\xc1\xd7:\x84\
+\xfd\xb7&\xbbCWyC\xfdW\x99\x87\xf4\xf6\xd4\x91\
+\x0e\x19\xb4\xa0\xda\xc1\xb1o\xf7s\x12\x0bb\x81\xa8\xf8\
+\xf1=\xd5\xda=\xbb\x83\x0a\x90\xe0\xd5\xdf\xed\x7fo\xaf\
+\xd5\xfb\xeeu\x11\x94\x0d\x0f\xec{\x9d\x08\xd0\xb9y\xdf\
+/\xdd\xdd\xb7\xe8Q>k\xd5z\xb0\xe9\x1c)\x87$\
+0\xe5\x10\x1d\xf8\xc4l\x88\xd8\x0d\x99\xa8\xab\xa0\x10\x19\
+\xcc\x80\x7f87lz}\xd7\xf0\xceaJ,\x87G\
+\x84u\x89\x97\xc0\xdf\xfcs@\x90J\x1eJ)\xc7\x97\
+\x94\xe2\xeai\xd6S\x9e\xc0BUH9Z\x9f\xcf\x86\
+Jds\xf3\xc1\xb0N\xbd\x96\x1az\xb6\x04\x14E\x94\
+CF\xa1_\x8dW)\x8a\xb4D\x0fR+\xf1\xd43\
+\x99\x01V%\xb4\x9e\x1f5\xf3\xacX\xd6t\x8b\xa4\xe2\
+\x09\x80\xa6\xbf2\x8b\x14\xba\x1fz\xcaQ\xce\xae\x9b\x01\
+\x87qt\x99\xa0\xd6\xf8\xb2\xa4\xde5)\xcd\xdbw\x94\
+\xc6L\xb4\xb7\xf7\xd9\xdew{\xdf\x16p\xcf\xbd\xc8\xf7\
+\xc8\x0a\x90\x00\xd9\xba\xb8a\xde\xaf\x9be+\x86\xf9\xc1\
+\x12\x1eH4\xea\x8c\xfbo\xff\x03\x02\xa85k\x11\x92\
+@JH \xdd\x12\xbf\xd4\x0cA\xb1\xaf\x80\xc5sv\
+ c\xfe\x00hT\x0c\x1c0\x02\x8d<\xa0J\xd3\xc0\
+\xf8\xac<\x08\x1c0\xdbK\x84u\xd4U*\xce\x1c\x22\
+\xa0\xc3A\xa2\x05\xc9X/\x08\xae\x80^o\xe5K\xc2\
+\x16\xa6J\x89\xc3A\xe2U\xce\x1dD\xc4\xb9\x04\x8cz\
+\xef\x1d\x00\x12\x5c\x01\x9a^k\x8c\x1c\xc0\x18\x80\x8a\x1a\
+vV\xd81\xaeJ\x8b\x81\x8a\xbc\x04\xf2\xfbs\xcbO\
+\x8d\xb7TQ\xc9\x9eq\xd4\xfd\xa2d\x12y\x02H`\
+p\xf1#\x02;s\xc7s\xcc\x1aq\xbbR\x81\x17\x10\
+\xda\x9f\x12\xd2\x1co\x13D\xfb\xa0\xda\xebA\x1b\x9f\x16\
+\xd6\xf5vg\xc0W\x22\xa0\xfc\xa8\xf1Y*4\xc9\x88\
+\x88\xbaYT\xce\xb6\x07\x86uS\x0a\x00y\xfb\xe4:\
+v\x9f\xaco\x94D\xbd\xf6\x0e\xe2\x14M\xa3\xd6\xde\x12\
+\x97\xe7v\xfe\xf6\xbf\xf3\xe0UY\xd0\xda\xe0\xf7\x0f\x9d\
+\x99\x13\xd3\xa7\x9b\xb5.\x1e=30\x86;\xcd\x00\xab\
+\xca\xfd\xe6\xf5\xb3Xj\x01\x9a\x09$n/\x15\xd6\xbd\
+? \xf5\x84\x19\xd8\xac^~\xcc \x95\xd2L\xc0\xb5\
+j\x19\x03Z@\x05\xb5a\x81rVl\x86\xc3\xc2\x96\
+\xf5K\xf4q\x0a3\xe6^o\x8c\xb3Ge\xc0k<\
+\xec\x1ff\x82\x0bh\xd2\xea\x92-6Ey\x8e\xfa\xf1\
+\x93:f\x03\xa6M\xb6\xb8\x95\x96O\xfa\xad\xf2\xdfq\
+^\xfd8+z\x07/\xe3x\x8b\xd2\x9c@\xd3p\xff\
+\xb0NC(\xa8\xd1\x93#\x1bo\x16\xd6\x01G/\xd9\
+\xf1\xd26\x0d\xe1\xb8l\xed\xc9\xf3a\x0a\xb7\xce\xdf\x9c\
+\xdf\x89.I\x10\xbe5k\xf1L\xf7\xec-\xadU1\
+\xfde\xf5j\x02\xb6Wj\xef\xb5o.5\xc7\x13\xa8\
+\xc6\xc3k\xc2\xba\xb9\xf6\xb7\x0c[4\x19J{)\xea\
+\xb9\xbf\x9b\xcf\xed{\xed\xfc\xf9h\x0b\xcc\x7fc\xf2\xf4\
+\x1d\x03f\xfcVX\xa7\xb1\x94qDi\x0e\xa8T\x02\
+\x96i-\xf0\xb7I\xcd/\x91<\xadt\x02L\x9a!\
+\xfc\x02\xed\x0b\x15f\x15X\x01\xb2\x84![\x00\x89\xcb\
+\x16\x90\xade\xc1\xf9d_\xfb\x92\x10\x08L\x15x\xf8\
+Is\xe9Q\xa3\x7f%\xac\xa3\xf4\x8b7\xa22x\x9f\
+\x85q\xd0\x94\x08\x8e\x99\x19W\xdb\x97v\xcf/\x00\xad\
+\xcfv-\x85\xce\x1b\xfe\xca\x18.\xe7\x96\x8a\xfd=\xe6\
+\xf8w\xfb\xa6\xdc\x17\x02nb\xc2Zl\x8c\xb3\xc3\x88\
+\xf3\x05\xd0N\xf1\xd6\x1aK\x9b\xfb\xa5\x98\x12\xa6\xc6`\
+D\x00V\x01N\x00_=\xfd~\xceT\x1f\x893\x86\
+\x82\x04\x0c\x80j\x9aT\xfa\xf5j\x09\xd32\x97\xcc\x98\
+j\xf1ZO\x1f\xf8B^\xcf'Su^+\x94x\
+\xcb9O\xf4\xcf\x14\x90L\x5c\xab\x10\xa0\xa5\x11\xc5\x9a\
+\xe6\x97^z\xeb\xcc\xbap\xfd*\xc1\xb4y\xb2\xf5\xa2\
+\xe2\x15S\xb2\x88\xaa\xd1>\xb1_\xd3\xff\x01\xeeKK\
+\xc5u\x03j%dD\x8c\xb5\xb4$\x00P\xbd\xfb\xc6\
+\xfc\x01z\x00\xeb\x12@\xd7/\x1f\xc1\xe4\xcbBB\x01\
+f\xfe\xfdJa\x99\xf7\xfc\xd6E\x88\xc1I\x18\x13\x18\
+\xab\xb8){\xbd+\xd1s\xde\x01\xf6O\x09k\x09\xec\
+\x8fZ\x02\xfb\xed\xe9\x14\x9c\xce\xb5\xedaa]B\xbc\
+j\xc9\xa91\xa1\xe26\x05!LM\x9fK^\xe3k\
+-\xde\xace\x05\x90\xb3fb\x8b\xf7\x9c\xcf\x80\x10\xe7\
+\xaf\xc2\xa1}e=\x9an\xa5\xa5F\xe1\x02\x03*\xe3\
+\xf4\x12\xcd\xb3o=\x17\x95\xf1\x153\xa1\x80\x02y\x80\
+\xf3T\x9c\xa3\xc0DL\xd0\xf9\xa7\xf5\x02P\x01`\xf1\
+\xb9\xc4\xcb\xd6\xb9\x96\x11\xf9\x8d)D\xc9d,\xf1\xea\
+\x9b\x87uy\x85}\xb9\xce\x0b\xe57\x00A\xa2\x9c\xd6\
+k\xc6\xa9\x0a%\x98.\xbbj\x9c\x01\x91\x92\x10\xbf\xb8\
+q\x87\xe0\xb9a^\xdd\xb0\xc0C~\xd2m\xb0\x5c\xb0\
+\x12\x82\xf1s\xb3\xaam\x13\xfb\xf8Pw\x00$\xe2\xda\
+\xdc\xdf\xe9\xe9\x00>\x937\xeccK\x80\xde\x00\x84G\
+'\xa5\xf5\xd1y0H\xe0\xf7\xee*\xf4\x02\x1c\xc8T\
+V\x9eZ\xc7`?Wz\xf5\xff\x1b\x1cp\x99\x0e\x18\
+\xe0P{\xd1\xbf\xfd\xba\xff\xdf\xff\xde~\xab\x9f\xbfl\
+:\xa0^4\x10 \xb1\xa6\xd6\xa4\xf8N\x01+\x90\xa5\
+\xa8\xbf\x042\xbfOX\xd7*@\x0dYo\x93\x0a\xca\
+c\xc3:\xaa\x9b^\xde\xf33\x90\xbcAn\x88?O\
+\x15H\xc0@\x06\x10\x9b\x8fF\x0d)\x0f\xfa\xe9}v\
+\xfeR\xd8\xa2\xf2<\x1c\x196\xbd>%\xacC:\x93\
+2X\x1b3\x0fz\x94C\xbd\x935\x1e/7Hi\
+\x17$\xe2W\xf3\xa0U\xdcSL\xab\xc6\xf2e`Q\
+\xc8\x1a\x07 A\x12\x888\x88T\xa2\x8ce\xca\xc4\xa1\
+z\x8f\xb5@|x\xa6\xe6Wo'\x84\xd5\xbc\xed\xac\
+D\x95\x83\xe5\x80\xc7t\x5c\x10G\xe2x\xd9\x8b\xdf\xc2\
+\xd5k\xb5\xc4l\xae\xc0\x19\x1fHS\xc0\x81\x94c\xb3\
+J\x9d\x97(\xcc\xf9m\xf2\xf52\xdf\xf5\xd2\x09$q\
+\xfc\xa7g\xc5-\xdc\xdb\xfe\x1d\xf0\xa3\x17\xd0:\xcf\x83\
+\xd5z\xd9>t{\xd4\xf6\xa8\x0e\xd95G\x19\x10\xe5\
+K\xa2\xf3\xbeD\xa0\x1d\xdc*\x89\x80,\xc8b\xb6\x1e\
+\x94\xda\xee3S\xc4+)\x9f\x98%\xd5\x13\xa9\xf2\xce\
+aq\xc0\x0e\x0a\x81_&\xccEU\x8d\xb9\xb4\xbb:\
+\xca\x94^N\x88\xe9~a\xd3\xeb\xd1a]\x85/\x13\
+\xe6\x0aP\x05\x90\xee\x17Q?\x14k\x81\x10`\x02\xb0\
+I\x9b\x82\xba\xbd\x80\x07\x19(+\xb9\xc5\xf4\x10PJ\
+4\x89\xb1@\x84\xad[\xbd\xd2\xa9\x92[\x957\x08\xbe\
+\xf9\xc7\xd9\x22R\x09\xb9\xf1\x9a*A\xfcBVB\x0a\
+\x00@\xfduP&%\xbc\xe6\xd3\xa2\xf0Q\xcbG\xa5\
+\xa3\x02\x9f\x89\x8d\x0a\xa8Dn\xfch\xd8R\xa1\xa8\xb9\
+\xe5\x00\x00\x81kRY\x8d%,\x000\x0f\xfe\xf1\x1f\
+\xc2\xba\xb9\xe4\xd9\xbb?\xbc\x22l\xfa\xff'\x85u\xd4\
+z\x89g\xf6\xf2o\xff(lz\xbddX\xa3\x94\xcf\
+\x80\xe3ms\xff\xf8|\xe6\x1e'\xf0g\x9dV/\xa6\
+\x04\xd0\x81\x8f\xb9$\x10\x11p\x98\xcb\xae2\xe3\x00\x7f\
+\xf3\xfc\x1c\xc6g\x85M\xd7\xff\xa0\x99J]\xa2\x86\xfc\
+x\xfa\x9b)Mk\x94\xd5\xe9\xae\xb6\x84t\xfb\xb3\xb0\
+\x0e0\xe4Osl\x1bM\x8f\xcd%\x12x\xa4\xfd\x00\
+\x80\xfd\xdd\xb0\x8b\x004\x01'\xc6\x00Ilr\xac\xdd\
+p`\xd8\xf4\xba_\xd8\xd2\x1a\x82\xb1\x17u\xfc\xa8\xe4\
+k\xc5\xc3\x88\x99V\xdbo\x0e\xb7\x9f\x13\xeaX\x87D\
+\x0f\xeb>}oNdU\x9e\xab\x02\x1b=\xb6o\xef\
+\xee\x87\x96(\xe3d\x83\x01vf\x16\x02\xbe\xb1\x9c\xaf\
+u>\xd0\x9a\x09\xe0\xe9\xaf\x93j=\x9dO\xe3\x1d&\
+\x8b\xf5\xfb\xa3\xb0\x14\xc7}a\xdbom\xac\x9c\xc4\x08\
+ \xe4~\xd1t(\xf1L\xd7\xf5\xb9i\xf7\x7f\xae[\
+\x0f\x0a!46\xf8\x01\xf7\x99\xd6D\xae\xf3\x06\xec\xec\
+\xdf1\xa4T\xb41sh\x96$\xa0\xbe\xfb\xc8\xc9\x8e\
+\xeaDW\xff9\x13\x0b\x15jL\x12\x01j&\xf0\xe5\
+\x0f\x9c\x8b\x18E4I\xc4\x17\xd9\xc2T\x00&f\x9a\
+\xca?\xaa4\xd5r\xbd\xf8Zp\x8e\xd81\xb7\x00L\
+^\xafU\x04#]\xf8l\x17\xcf\xe4\x18\xabj9\x22\
+\xa2j\xac\xa9\xf8p-\xceE\xcc\x8c8\x95\x7f\x17\xa8\
+\xf3#\xd1\x02\xfa\xee\x0eP\x15\x7fF\x98\xfb\xe5\x0e\x90\
+\xe3\xcf\xa7x\xb2\x8d\xbb\x0d\xde\xe2\xb3:Q\xb3`\x06\
+\xcdb\x9es\xab\xdd\xbe\x99\xf8\xf1\xf3\x00\x0d\x15L\x94\
+u\x09\xd0Y\x09P|o\xd5\xc3\xcc\x9f\xfb\x9c\x12\x85\
+\xf4\xa3\xe3s\xc3\x16\xff[\x09\x80sn\x8f\xb0\xe9\xf5\
+\xc6a\x1d\x93)\xfd|1\x1c\x01\x84\x12/\xf1\x98\x0a\
+\xb2\x961\xc0\xa9\x9eq\xf7\xcf\xfd%2\x9a\x05\xa1\x02\
+.\x005\x80\x98\xb5FV\x00\x00_X\x18\xc0\x05 \
+\x98\xd6\xa4\x95'\x86\x0c\x1e\x9c\xadO{w\xad\x02w\
+\x0a\xeb\xf2\x00\xeb\x9b\xa6\x89V\x00\x009Q9Tz\
+\xf1\x8d\xb9\xe7ZLi-\x01\xbcr\x1f\x17SY\x82\
+eNzj\x9b\xd0\xc6\xa8x\xce\xb9\x07\xa0\xd4\xf2\xa4\
+E#\xc5\x8c\x0b \xb9\xc5<\x9dI\x8bR\xf9?\xf7\
+\xcd\xe7N\x00\xb0\x0ab\xa6)\xd1t\x00\x88\xd0\x14\xb1\
+/%\xc6\x18\xc0Dc\xb5\xc0\xa5\xe8q\x8d+N\x00\
+\xb0\xf26\x80\xd1Z#\xc4\xf9\xc6\xdf\x01\x1a$\xe4\x0a\
+\x8f\xe2=\xffN\xec\xdd<{\xe2\xca\xbe\xf8\x1b\x09\xaa\
+u\xb4n\xe5\xe07\xfc\xfc\xba\x80\x8a\x01\xab\xb5\x11\xe3\
+T|a?\x02\x1a\xd6\x22\xa2\x19\xff*<T|\xed\
+\xef\xb9\x0e\xf1\xa7\xe7\xe6\xbc\xf7\xff\xdd\x17\xd7\xaf\x15\x89\
+\xe6\x09\x80\xddT\x91d\xf6\xd4\xfa\x94\xf8[\xc7\x18\xa9\
+\x19\xdf\x13\xb3-\xe0\xd4\xba7\xfd$\xf3\x96\x1a#)\
+.\x14'\xf2\x07\xaes\xdd\x92\xa1e%_\x0bx\x14\
+\x17&CjW}\xe0\xbc\x11\x8d\x82\xf0\xf1\x0e9\x10\
+\xa0KxQ l\xe0|\x80\xe37&\xfbz\x13\xe1\
+yiPN\xc6\xc7\x86\xe5\x8dzkG\x15G\xa53\
+?T\xe0\xf2\xd0\xd6\x9d\xbcPVPP\xfd]\x15N\
+\x89{\xdfCr\x89\xae\x22\x0f\xd1\x9b\x96\xd3\xc6T\x80\
+\xfd\xba\x05\xad\xf2/1\xe7P% \xc4\x06\xfd\xdd>\
+\xd1\xef\x13|\xd4\x9b\xfdR\xedw\x0d \xc4\xbb\xed\x9b\
+\x7fg\x9f\xee\xfd\x01\x0b\x11N^\xbe[\xf0A8\x9c\
+\x12\xdd\xed\xb1a\x0b\xe5\xb1(N)\xd6Vbe\x19\
+\xe0I@\xabg.\xc7\xff\xa9\x88\x19\xe7'p\xae\x8a\
+\xce\xbfN\x89\xf0\xbf6\xb5\xf2O5\xb5rb]\xa9\
+~\xba\xf3;a\xd3\xeb#\xc2\xba\xc4*\xa9\xac%\xf6\
+\xa7GEEE%\xc8\x98)\x95\x97T\xbb,\x0a3\
+\xaa\xba\xc4\x03UZ\xa2h\x01\x0b\x98$\x96\x19HU\
+b\xad\x87\x1a\x22\x9b\x00HQ\x9a!\xeb\xee\xbf\xb9\xe2\
+\xae;\x1d}\x0c\xefk\xe3\xfb\xf4\xfas\xc4T\xdcU\
+v\x89\x13Yg>\x0f j\x9f\x5cO\xa9\xf2\x5c\xf3\
+e\xf5\x8cA(\xaf5\x05\x1a\xd7\xca\x1e\xd4\x9fw\xbd\
+`*\xd2\x00\x03\xeb#\xee\xe6\x95\x16$}\xfb\x90\xb0\
+\x5c\x07\x0f\xca1v\x87\xe7\xf4\x8c\xedR!m<\x93\
+s\x1b29\x8f'\xb9u>?T\xa2\x05\xe0\x98\x0f\
+\x88L8\xda\x8c\x8a\x0f,b2\x15Hg\x80\x12\xc3\
+\x0ac\x5caM{\xd0;\xf5\xb4\xb0\xce\x91f\xebC\
+Q,\xadk\xc8>\x7f\xe2\xa0\xa2-\xe0\xb9s\xa0z\
+\xd9v\x87u\xafIiS\xa16^\x0e\xe5\xb1\xc4\xe1\
+\x1c\xd4\xb4*h\x98X7+\xe4\xb4\xa6\x17p\xbc\xa9\
+\xb1Qb\xa6y\x00\xd6x-\xe3\xe6\xcc-\xdf#\x0f\
+\x1c\x81\x84\xfb\xa1\xc7\xd4\x01\xed+\x81\xad\xea\xe1\xcc1\
+K\xe5\xf7\xb2\xf2U\x81\x84\x80W\x00E\x9cH@\xff\
+\x9c\xb0\xae\xe2\x85\xca\xff\xfba\xdd\xc1N\xe4\xc8\x81\xab\
+\xd5\x07\xf0\x83j\x98\x81\xe0pPXGi\xcdJ\xa6\
+\x83\xa9\x98-\xa9\x1e^\x1a\x02\xc6\xe5P\xe3\xa6\xfd\x90\
+\xd3\x1c\xb6\xef\xc9\xf1:\x19\xc8\xe8y\x96\x98\x16#E\
+\x85\xda\xf5\xbb\xee\xa4\xd8m\xee\x94\x22<\x10t\xe3c\
+\x05l*5\x80(~\x07\x05\x1a\xa5\xd9\x1cp\x89\x9e\
+\xf9\xbf\xeb}\xc9\xef\xa1n\x1e\x98*\xf5'\x865\x86\
+\xc5|\xdd\xa6\x0a|b\x9e\x0eQ\x89\xa7i;\xd9\x93\
+]\x00\xd4\xdd\xd2\x1fch\xd0h@\xe5\xe7\x9fTJ\
+1_\xf6\xccs\xd1\xf9M\xe4\xd4\xdfK\x86P\xa3D\
+\x9f\xd91I\x88b%\x13ex\xdd\xf07\xc3\x14\xd0\
+\x8c\x0f\x1d\x8f\x1a\x8fj\xd3\x16\xda\xef\x0f\xbf=\xdc%\
+D\xfc\x9a\x08\xec\xbf\xb6\xfb\xfc\x85v\x9f\x8d\x0d\xbd\xd3\
+\x8e;F\x05\xbe(\xf8T\x8bM\xbb0\xbeM\x055\
+[\xa2j,\xa6@\x10\x80f\xbcj2|\x86G\x87\
+-\xfe\xbc\x98\x1f\x98fA\xe9}\xd6\xe2\xf7&/0\
+Oo\xf1~\xc4\x14?\x9a\x09>\xcd\x98kN\xbb\xe0\
+\x9a\xdd|\xe7\xbe\xd0\xf1\xe3\xee|\x07\x8ca\x84a\xde\
+\x04\xe0}\x99\xae\xc5\x0b\xb5?:\x80\x9f\xb7\xc4\x0b;\
+\x0f\x9b\xec\xf0e\xacm\x8d1\xa4\xe1r\xef\xed}\xb6\
+\xf7YZ\xd0\xaaU&\x13\x0f\xfe\xad(\xbd\x7f\x19\xd6\
+\x8d\x97\xa4\xf5\x91\xd3\x1eT\x90\xf8\xcb*\x18$\x83\xa4\
+4J\x8c\x87K\xf1\xd8b\xa2\xc4_\xbb\xe7\x9ch\xc7\
+\xb9Q\xfb\x99\x9f\xb6^1\x03ME\xb1\xaf$\x14\xe2\
+H\x81\xab\xd6G\xe7\x06\x15{\xe7\x81\x0a|\x8e3u\
+\x9fP\xc6[\x22\xfd\xd1\x0eh\x01\xe0\xf2\x9b\xc4\xf9\xb4\
+\x08\x9d\x92\xda\x0e'\xa7\xb8\xe7m\x93i\x9a\xc0q\xb5\
+\xa8}2lI\xc0k^\xf8kr\xbc\xa2\xfb\xae\xa7\
+Z\xc2cz\xc9\xa5S\xac\xf6\xd7\xc2\xa6\xd7\xef\x87u\
+\xd4f\xad\x9c*\xb6\x18$\xc6\xcdIDU4%\xf6\
+\xebB\x12\x0a>m \x89\xc2j<Z\x89\xc5\x11\xfb\
+\xa4\xc9\xa0%\xcdy#\xeeP\xe8C]\xa7\xb5\xe3\x1c\
+\x8bV\xd3\xfdS\x84\xf3>\x99\x80\xfd\xbf\x8ei\xa7\x15\
+\x13\x13\x80\xbf\x97\xb89o$*\x18t\xfcj\x02X\
+\xa6\xf5\x94\xb6\x8e\xc2\x08\x06\x08f\x0b\x7f\xe1\x9c\xc4\x00\
+\x92\xd8\x01\x8eT\xf4\x9d\x9b\x00\xbe\x04\x0c\x87\xc7\x86u\
+~+\x19\x11*\xf3kF`\xc5M\xc4\x94\xe51\xae\
+\xc3\xfe\xa0\x0a\x8f9(a\xa4!r\x8d\xb0N\x94:\
+\x19\xa3\xc5\x10\xca\xf3\xa1\xf6\x8ds\xcf\xfd\xa4\x8dc\x9a\
+\x95\xb8\xec\xc79\xf6T\x02\xab\xf0\xaa\xd55\xe2\xd1?\
+\xc8\x96\x90wt\xf7C\x9c\x0cpY\x01\xe05~\x11\
+\xe0\xa0W~=v\x90f\x0dM\x91\xb5\xf8\xb3u\xb8\
+\x1e\xef\xe7\xf7\xe5[\xfc\x86VF\xd3Nr\x9dW\x01\
+b=\x15\xce\xf5\xfb<\xe2uL\x875U_\x02\xed\
+\xbe\xba\x0e\xf7\xdd9\x80\x11\xc0\xef\x89\x8f\x14~\x12@\
+\xd2JX\x0c\xf6\x8c{\x15.J\xab\x89&M26\
+LW\x13_\xed>&\xac\xd3.\xca\xf3\xa6>\xa7\xfb\
+\xe3\xba\x88F*\xf8\x89\x8f\x01\x10\xd6Y\x16\xd2v\xb5\
+\x8f\xf1\xb9\xee\x83\xc41\xf9\x8fIe\xf8\xe7\xae\xc2D\
+\x04\x0cE\x1b\xf5)?\xd0x\xb5\xc9\xae:\xbd\xde6\
+lQ\x01\xdf\xbc3\xf4\x90\xbb\xb1M*B\xa8$\xa1\
+u\xfa\x97\x99h<y\xe9]\xaf\x1b\xdf\xf7J_\xa1\
+;\x88=P\x08\x92^\xfc\x1f\xcdT\x97\xea\xe5\xcc\xde\
+\xb1\xa59\xb3\xfa\xea\xe6\x9e~\x08n\x1cS\x17[\x89\
+C\xec\xd5\x89\x17\xf9\xfdlAh\x8e`\xcfncp\
+\xd0\xae\x0bc\x01\x10\xd0\x03\x0c\xfbu\xe2k\x90K\xc0\
+\x06\x04Q\x80\x1ai\xe7[\xd3q\xbc\xb9C\xf0 \x87\
+\xd4F_\x9fc\x97\xb2W\xbb\xd4\x93\x89\x00>;\xc7\
+\xda\xfdW\x8eo\xb2\x01\x8d\x19\xd32\xa1\xe2\x92\x01\xbc\
+Db\xe7ia\x0b\xd2[\x9a\x11\xe6\x1fc\x00H\xac\
+ `*9z\x9f\xb2\xe2Z\x22F\x12x\xf3\xcd\xdd\
+\x17_z\x0dS|\x0f@P\x9f\x83\xc8\x87\xc0HO\
+]&\x00\x85L\xdb(\x10E\xe3^0\x05R$\x04\
+\x05\xac\xe6.\xa3Z\xd2<\xc8Dd\xf3\xff\xc2\xba\x04\
+\xf0\xcb\xd9\xc3\x0a(\x91x\x12\x19#V\x13\x12\x8f\x8f\
+\xebD\x04\x1d\xc0\xe6\x1bcr\xf4S%\xb6\x1d\x05K\
+%\xdcAc\x9c\x1e\x8a\xd7\x8e\x5c\xe5\x1c\xf7\xc9Y1\
+O \xa3(\xf0\x0e\xe2\xf58\x1d@\x06\xc7\x88i@\
+\xd4\x040c\x9d\xea\xb1B\xb5\xca\x8a\xed\xf6\xd3\xdbV\
+\x89\xd9\xee\x0c\x9b^/\x1f\xd6%\xa4\x1c#$:\x0f\
+Rc\xa8J=\xfdKaK@\xb0\xbdFX\xf7\xbd\
+\xcaB:T-\x01\x12\xaa\xea\xcd\x16@\xe7\x94\x88R\
+\x87mj\x8c\x8b\x98\x5c\x05x/\x0d\xeb\x188\x80'\
+\xbd\x9fZc2\xf1\xa8\x96\x9c\xbc\x8f\xc1\xa3\x0a&U\
+\x8diS\xf1Q\x11Hq-\xfb\xa8\xa8\xbd\x99\xa88\
+\xc8+\xa0Rq6\xb5\x81v\x87\xb9\xf0I\xb9\xaf\x8a\
+\xb6D\xe5\x8b\xa9n-\x01rpdB\x5cL\x17T\
+FTM\xd3`\x1c\xa4\x98(*{(\x8c\x12yZ\
+\x11z\xd8\xf5\xea\x1b\xab\xf6\x96\xb0\x8e\x01\xe4\xfe&2\
+?>j<n<n9\x87\x86\x9f\x86M\xaf\x97\x0a\
+\xeb\xa8\xc8\x8b\xfa\xfeL\xc5\xcbi\x10\xf5|\xf5\x94\xa7\
+\x16CUZ\x04\xc6\x02F\x95C~P\xefj2\x15\
+\xf4\x92\x96\x98\x9eJ'\x86MVLU\x5c\x0a`\xda\
++\xaf\xefI\xf3\xba\xd9>ffj\x15u\xf3\x88\xa4\
+Z\xbft^g\x9b=\xe7\x80\x92\xbf\xb0>*\xc0x\
+P\x22\xf6\xbf\x9c\xcc'\xe7\x1d\x06\x96\xc0\x0f0t\xf3\
+\x5c\x8fq*|\xbb\x0b\xc4.\x96\x89\xd8W\xa6\xa7=\
+W\x9c\x9e\xd4*N\x98H\xfc\x85\xdeK\x94[\xfe+\
+[4\x86\xcfN6\xed\x83\xe1\xef\xc3:\xd1^\xe3E\
+\xed#c\x851\xbd\xb2\x95\x01\x10\xb1\xf9tX\xb7\xbf\
+Bt\xf3']B\xa0U,\xbc\xfd\x94\x18\x0d\x0f\x99\
+\xecA\xd9\xa2\xf1\x17\xad%\xaa%\xca\xd3=\xf8|\xbb\
+\x0f_O\xe6XR\xc2\xa7\xddq\x8f6\xdd&\x13\xd2\
+\xed]\xc2\xda90\x9f\xf7\x00\xb8\xecMn\xe3\x13\x8f\
+l\xfb\xe8\x94\xb6\x8f\xc4\x05\x18i\x00\xe3\xa8\xdb\xffE\
+'\xe6\x9a\xe7P\x03\xd8\xdf\xb4\xac\xdf\xcdya\xddt\
+\x95|\x9f\xf1\x8c\xc9\xfe-\xd7\xf3\x1d\xbb\x80ZeG\
+\xcb\x88\xf3.+_\xc3\xc3\xc3:`[@\x1ai\xe7\
+\x93s\x8c\xdd\x87\x97J.\x06\xca\xf8\x80\xb0\xae`\xe3\
+UA\xc1\xb9\x0b\xf0\xd2\xab\xfd\xe3\x99AQ\x00\x9b\xc4\
+\x9c?\xe0\xb7\x9d\xbf\xb4r$\xae\xe2(\x957\xf1\x93\
+J\x9b@\xdb~v\x9e\xadE}\x01\x08\x98\x10\x97\x9b\
+\xa2\xad\xcb-\xcc\x8b*|\xa0\xb8\x1bS\xad7\xb7\x1f\
+/\xf6\x83\x04\xcac\x9f\xbd8lQ\xd9\x17\x87\x84\xe4\
+l\x88\xce\xd6\xf4\xa4{eB\x8e\xc2+\xe1I\x00p\
+\xfcXX7\xbe/\xfd\x8d1\xa9\xd5\xfa\xf1G30\
+\x5cb\xae\x123\x0c4\xa2y\xd6\xd9Z\xbc\xcb}\x00\
+\xe4R\xe9\xf7{\xa9\xedT\xaa\xf0*\xf7D\x84%\x86\
+\x80\x16\xe7\xbau\x04\xc8\x90\xc8\x01h\x00\xaf\x18T\xb4\
+\x060c\xb5T\x02\xe4\xc4\x85\xc4\x07\xc5+y\xbf\x0a\
+pR\x99\x97\x10Z\x874u\xd2oT\xe2\xaf\x02\xae\
+\xf0dL\x1f\xd1@L\x84d\x12\x10\xa3,\xc0(\x81\
+\xb2\xaa\xf8c|(h\xd1hr\xbeg~Rb\xd1\
+>\x9f\xf1\x9c\x0aC\xce\x0f\xf7-\xd7\xbf\xf5U\xcf+\
+\xd5\xfb\xf9\xa1\xf2\x0bD\x86\x13\x88(\xe6\xa3q\xb2\x18\
+\x1e\x00]L\x0dq\x16\x80J\xde\xe4+\xff?\x91\xc0\
+\xda\x87\x12\xce;7.j\x89\xebM\xabb~\xae\xe7\
+dbl\xbfJ,\xd7\xe3\x06\xf3\xbc(\xc6\x0c@\x8c\
+\xff\xa2\xc5`\x9d[?\x18'\xe2\x11q\xa4\xd6\xc3\x04\
+D\x8a\x81\xe3\xfcr^\xd3\x8c \x06\xe8\xef:\xd7\xe5\
+c\x80c\xad\xbd\xf2/\xfb\xc99\xea\xb9\x01 \xec;\
+\xfb\xc2\xcf\xbb>\xd36\xb4\x88\xf1w\x80%\x8c\x22\xfb\
+\x09P\xb4j\x05\xaa\xc2\x82VJL\x05\xad(\xa6\x02\
+\xa46\xdaxH\xd82>\xb3\x18o\x0a\xf7Y\x10\x14\
+\xa7\xb8/\xe3\x17\xc2\x16\xa6\xec\xe6\x15aK\xbc\xb3\xab\
+\x1d\xbf\x81\x5c> ,\x91\xd6=:\x04K\x0f\xeb\x8a\
+\xda\xda\xd4?\xa7\xc4s\xdc\x1d6\xbd^j\xb2\xbd2\
+\xf1\xff^7FLOD\xa6&\xe5\xb8\x8cYrc\
+RU\xfa\x02j\x9f{w\x0f6\x8e\x93K\xaeT\xfa\
+\x05\xf2\xe7w\x09\xf3\xd8\xc8\xda\x95x7\x8a\xd97R\
+\x04\xec\x0a\xdd\xcfs\x90\xc4\xfcL\x13\x884q\xd3%\
+\x8c\xb1mvvc\x02\xa9\x80\x07\xf5\xf7\xbc\x8e\xf2\xe7\
+\xbaW@\xc1\x05T&/\xd3\x05\xe0zm\xc2\xc1\x5c\
+\xaf\xdb\xc0\xb4\x16\x00\x0a\x97kG\xde\x12\x00C\x88Q\
+\x7fTP\x8c\xa7#\x16\xc4\x11~\x22\xac!\xcf35\
+\xf2\x8bs\xc0\xbf\xf9\xc7\xa4H\x9bco\x9c\xa3\x03\xc8\
+u\xa3\xd0fe\xa8\xc6\xec\xa1PI$,|\x1bV\
+\xe2\x9f\x95\x8cR\x01G\xc1'RhA\xea\x09#\xc2\
+#\xa0\x80\xe8s\xdc\x90e-\x05\x1c0u\xe4\xec\xa9\
+6\xbe\xa8\x80&\x894\x84\x8c\xe8\x9a\x84\x16\xf0\xc01\
+\x18\xff\x95\x89\x04 \xc9\xc6\x8b\xa9\xd61\xd7Z\xa0W\
+\xeb\x8fCQ\xc1\xb8\xe3t=\xd1\xeb}\xd3\xe9\xc0\xba\
+\xe9\x22.VS\x03\x88iI,~\x1e\xb6L\x99\xa8\
+\xc4=55j\xdd\xa3v\xebu\x96\xb0\x7f\xbc\xd5\xf0\
+\x17\xc4>+\x05S:>\xf7\xcc\xff8\xc7\x8f\x09\xb8\
+T\x18\xacK\x22Rz\x8dS\x04\xaaz\xad\x04b\x80\
+9\xd7\x0d\x10LQ\x9dz\xffD\x1a\xb7{\x85M\xaf\
+?\x0f\xeb\xa6\x1e\x08\xb4!\xa2\x99\x80\x8f\x7f\x14\xd6\xcd\
+Ow0&\x22_\xebB\xa5I\xe0(\xa0H\xaat\
+S\x15\xbf^\x07p\xaa\xf0\x99w/q\xd9\xb9\x1d\x1a\
+Pq\xcd\xed/o\xaf\xb90=*q\x11\xf0K\xd4\
+\x01\x5c\x0e8@\xdeOr.7\x913\xbdt\x98F\
+\xc4j\xf4\xfe%\x05vs\xa7\xb0.\xb0\x16\xf8\xd8\xef\
+\x803\xad\x01T\xa1\x13\xc8\xa9\xc0\x8aX\x9aq2\x9e\
+\x17q\x18\xbf\xa7g\x0c\x80\x94\xeb\xa4(bz\xce1\
+ur\x9f\xa2\xbaU\xa0\x0dP2v\x86\xd8\x0djr\
+\xefGwu\xfbDB-\xb0p\xa0\xdfw\xd6\xba\xa8\
+}\x9b\xd7=\xfcnX\x97\xa8$\xd0\xa1\x85\xa0\x00\xcc\
+\xdc?\x00<T\xc9\xd2\x92H\xa6S}/\xe1%F\
+\x94\xfe\xce\xffo\x00\xf6;\x17\xc6\x1a1\xc9\x1a+\xf9\
+\x82Y\x13c\xfcvX\xdb\xe77m\xfb\xfcY3 \
+:<{x\xce\xf0\x9cN\xf5\xff\xcff \xb6\xd5\x87\
+{\xea\x7f\xb6\x0e\x153\xe7\x88\x04\x1a\x8d\xab\x13p\xaa\
+t\x06\x5c\xf8\xb4\xae\xd7z\xaf\x04\xac\x01\xc4\x02\x5c\xe3\
+\x09o\xd2\x06K.\xe7\xad\x8a\x1b\xd1\xb6|\xbe\x9b\x13\
+\xa6\xc0t\xba_\xe3?\x8f\xef\x1e\xa7\x80dxu\xd8\
+\xd2\x0a\xd64\x04bJ@\xfb\xeaZ\x8d\x9e\x1f6\xbd\
+^6l\xfa\xfdW\x84-\x95\xd1b\x86\x11\xbd\xc4P\
+\xcb\xd6\x8f\xc6\xcb\xfaP\x978\xc6\xee\xe8\xa6\xf3\x10\x07\
+\xac^w\x89\xe7+\xe7\xb9\xf6\x8d\x01\xf1\x8e\xac\xacO\
+~wx\xd5\xf0\xca\xe1U\x0d\x08\xfeR\x13U\xd3\x02\
+q\xe9\xd4\x88\xb8jXw\x8e<lN0j\x1a\x84\
+s\xd1\xf8W\x0c\xb6 \x9a\x9e\x91=\xa6\x97H\x80\xf9\
+\xb0\xec\x11>\xb6\x13\x8f\xb4\xdf\xf3\x5c\xda>\x22,\x13\
+\x99\x87-\x15b\xf7\x0b\xd3\xcf\xf4\x8a\xe1aa\xcb\xf9\
+>\x9c\x1e\xd6\xf9/\x81p\x9c~_\xe9\xce\xe9T\x1d\
+\xaf\x96\x02Z%\xae\x07@H\xa3\xc3T\x90\x14e\xae\
+s6\xeaa\x01\x90>,\xac+\xbc8\xdf\xf8wq\
+\xc2Z\x940\xa7\x22\xb5h\xe9\x12]A\xc7\xfeWi\
+\x96\xd8\xf2\x0f\xcei\xffn\xec\xa0J\xaa\x8a\xa2\x04R\
+K \xff\xeb\x1cSh\xe1/\xa2\xf2\x7fr\xd7\x22\xc2\
+/\xe5\xfb\x97\x86\xc0\xc5fJ~U\x001\x8e\xf2\xe7\
+\x8b\xb2\x9f\xea\xf7\xc6\xea\x8e_\x0d\xeb\xce\x99\x04\x86\x15\
+d\xb6\x7f\x16\xd6\x01=*\x9f\x80\xc7\x93\xc3\xbasU\
+!I\xc5[Baj\x92q})\xb6]\x8c\x1ab\
+~\x189\x80D\x85\x0c\x05\x06\x80\x0e\x7f\xa0\xc5\x84\xf8\
+\x9b\xe7$\xf1\xb2o\xfd>\xc6\x93\x84\xce9\xee\xfc\xc0\
+(\xc8\xd6\xc2b\x0c\x88\xfb\x9do\xc6\x06f\x01\xa9\xc6\
+\xa9\x01\x1e\xc4\xfb\xd6\xa5\xeb\x02pg\xcft\xc5?\x0a\
+J\xcf\x98\xd2\xdfgtq\xa8\x96/\x09\xeeC\x92\xb1\
+@\x83 [\xf1J\x1b\xc3\x18\xd0\xfc\xbe\xce\xa9\x04r\
+*^\xb5\x0f\x9d\xeb\x98\xb4\x18\xaa\xa6+\xd1\xe2\xc9\x02\
+\x91\xbc\x06S\xba\xc4\xb7\x156\x8c\xf1\xfb\xb5\xb0n\x7f\
+)\x08\xf0\xdf\xc9\x08\xc6\xf8Yk+\x99F\xc2/\xd4\
+\xefIp1\xc4\xf2\xbc\xa9D\xd8\xfd\xd4j\x99\xda?\
+\xdd\x18\xf1\x0b27%\xc2\xe2\x13\x81\xbe,\x00\x00 \
+\x00IDAT\x06\xef/\xaeXMg\xaau\xc3\x1f\
+a\x08\xe4:\xafs\x85h%\x0d\x01\xf7]k\x84B\
+\x92\xebX\x89\x1a\x96\xe6\x11\xbf\x00\xd8N\x0d\x9e\xda\xd7\
+4t\x00\xd0z\xf8\xc51\xf6\x09`\x12\xf5^\xbc\x06\
+P\xd5*A\xa4]\xcb\x86B\x08\xe6\xdejj\xc5\xf6\
+^a\x1d\xc3T\x8bejxa \x8e\xa7\x87uc\
+\x89\x15B\xb2\xa5\xa0\xa6\x0ad\xe1\x8d\x1f\xd9\xf9\x9a\xb0\
+\xc5\x9f\x89\x8bv\x8d\xff/,\x91\xc1\x8f\xe5\x1b\x18\x83\
+\xf5\xb3\xa5\x92\xd7\xd4\xb1o\x97\xdf\x7fj\xa1\x14\x8c\xfb\
+N\xb6OR\x90\xde\xd5\xf5jp\xcc\x1fo)\xc9\xb2\
+`$\xd8n\xa0\x7f\xa7\xae\xdf\xf7\xf6\xef\xd5Q\xf7\x1d\
+\x08\x12\xed\xac\xf4W\xa2\xa4\x82\x81\xca\x11\x8f\xfb\xf2\xcb\
+\xcf\xb7\x07\xfc\x9d\x0c\xe0\xaex\x11\x09\xbe\xb1\x81\xfd\x14\
+\x01H\xd1\xb9\xb9a\xfb\x1e\x91\xf8\xf7\x1f^\x04R+\
+\x81\x8c\xe5\xb2w76\x10\xd0\xe0K\xa0\xe3 \xe5`\
+U\xfe\x22\x1c<\xa6\xab\x98d\x05\xba(\xf2I\x0d\x1a\
+\x0e\x9e\xe76\x0fg\x0c\x1f\x19>\xd2\x0d;\xc8\xf9\xa2\
+z\xb5\x8a\x22\xfa\xb3t$\x07db \xf1=\xa6Y\
+\xa9\x03W\xcf4\x8a\x13\x95\xe8\xcf\x86u\x88)\x8aV\
+\x8ai\xd5Ac\x1cU\xce\xbb\xae\xb9\xcf\x0ef\x95`\
+\x0eT\xefk\xf6(\x03$j\xdc\x18Q\x22\x0e\x06u\
+\xd3\xf3\xd0\xfb\xe6\xfa \xc6\x1c\x16\xc4\x9acr@Y\
+W\x1c\x87\xe7\xe1\xbexN\x00\x0e\x80\x94\xf7\x13hg\
+\x85S\x820\xdc0\xacQ\xe0\x1e\x16\x14\xb8\xcdm\xa7\
+\xfds\xdb\xc5\xb1\x0d\xbf\x1e\xb68\xd8\xc6\x90xD\xd7\
+j \x10XS\x04\x89\xaa\x00\xb0\x8c}I*u\xcd\
+\xbdO@o|_XK\xdc\x9a\x88\xdf\x94\xe0^\xb3\
+%\xb8\xa6>\xe4\x81\xbb\xe3~Y\x99\x04L\xe9\x9d7\
+u\xc2\x81&P@\xad\x96\x88KPQ[o\x18\xd6\
+\xad\xa7\xacl\xee~oX7\x8f\x98\x08\x95V\x0a\x15\
+\x00b\x7f\xa8\xe6I\x99Cm\xdb\xfejX\x87\xb0f\
+`P\xc8=\xd1.\x08)5\xe9\xa4\xf2\x19\x93H\xad\
+{<(\xac\xab\x00\x9b\x9f\xfd\xca\xb0n\x0c% \xcc\
+x8=\xd0\xb4\x09\x00\x1b\x09 l\xff\xbe\xe6\xff\xce\
+\x94|\x09\x9e\x80A\xcf\xab\x03PE\x1e\xa0\xa1\x95\x06\
+\xc5\x1fe[\xe5H\xc0m\xfdz\x1e(\xd7\xe6\x10\x13\
+kT)\xa3\x1a\xac\xb2\x85\x99\x008\xa3\x89A\xac\xee\
+\xdbaK+\x8b\xfbY\x01\x89\xc0\x0e\xc3\x86*p\xf6\
+\x80\x03\x0a\xad\x8b\x0a\xd8%\xac\xc6h%pY\xe2N\
+\xa9v\x0d\xf9\x1e\xde\x11\xb6\x00\x9d\xe3;\xc2\xbau\x9c\
+\x01\x7f\x89\x7fJ\x14$N\x00\x10\xf7_@\x91\x81k\
+\xad\x13b\x96\xc4/\xb3\xb2\xb5}[\xd8\x22\x16\x18J\
+5M\xab\xe6\xa8\xa4\xae&\xe5\x0e\xe3g\xfb\xafsE\
+n\xf8IX{\x9f;o\xee\xdcU\xb2\x9e\x96\xbd\xd7\
+oO\x11\xcd\x17\xa7\xe8\xe3M\x92:\xfb\x84\xd4\xb4Q\
+\xa9\xb1\x9er\xfd\xb5\xf7\x0b\xc6\xc3\xab'{U\xa7\x99\
+\xa2\xd2\xab\x05J\xe0\xc7\x7f\x06l\xf5\xcdT\xf9\xff\xcb\
+l\xd1\xfb\xcf\x8e\xc1\xf2\xd6)\x91}\xeb\x12\x80\x0f_\
+\x1c\xbe0|qz\xfd\xe5\xb0N\x1b&\x99 \xc3C\
+\xc3\xa6\xeb{d\xd8\xf4\xfb\x17\x0f\x9b\xbe\xff\xcd\xb0\xce\
+\x9f\xf6\xe3\xcb\xee\xd0\xf9\xfb\x04\xc0T\xeaT\xf6Li\
+\x10\x08\x0d\xb7\x08\x9b\x9e\xfb\xdf\x86u\xe35c\x17\x9d\
+\x99T\xdfg&\xe3\xe2\xb9\xed\xf7\x1e\xdf~\xef\xde\xc3\
+}\x86\xfbt\xda\x0c*B\xf7\xdeq\xafv\xeeP\xd7\
+\xcfs\xcc\x5c\xf0\xea\xdd\x07\xe0\xfco\xd8r\xbd>g\
+i\x1d|;\xac\xf3;\xb9~\xea\x0b\xd0\x19\xc4\xf5\xb3\
+\xb2g\xf4\xaf\x96\x04e\xb8z\xd8\xf4\xfa\xd5\xb0d>\
+<$\xc5W_\xd0\x89\xc3\xd2\x5cR\xd1\x15B\x01\xe4\
+\x00\x87\xceG\xfb4\xf7\xdb\xf6\xf8\xb0\x851S\xfb1\
+\x9e\xd2\x95;?\xe5\xfc\x94\x80t-\x96\xed\x1ct\x1f\
+\xfb\xc4}WW\xb0\xe1\x9f\xc4{\xe24\xf1\x92\x0a\xbd\
+\x9fs\x1e\xaf(\xb8\xe5\x97\x8e\x9a5m\x9a\xd7\xea[\
+\xd7$j\x12\xbe\x0c\x98Q\xe3%\xa0S\xba8\xef\xdb\
+\xdb\x85u\x01\xfe\xd9\xd9\xb3,\xde\xccV\xad\xaa\x1cK\
+\xa8\xb2\xe5\xad\x98f\xff\x92\xe3A1\x9f\xb4\xfc%S\
+\xaa\x80\x1f\x801\xa04\x13y\xd3\x19*>[\xb7\x9c\
+\xa0\x96k\x1d\xa0\xfd\xe4y\x89\xa3$l\x9e\x93\xe7\x07\
+\xe0W\xe8\x10\xf7\x88\x1fV\xd3\xaf\xa6he\xb2.\xae\
+\xcd\x04\xabZ\x0cT*imekN\xf9\x9b\x8c#\
+\xab5c\xcc\xbf\x13e\x85;u\xa2\xb7\x80O\x9f\x13\
+\xc3MK\x1b\x86\x10\xea\xba\x82\x06 @B\xa6@\xa9\
+\xf5\xe9\xf0\x04\x16~g\xc7\xdd\xdb4\x99\x15\xa0\xb49\
+5E\xf1\x0e\xcbs'\x19H\x05,\x10\xe3\xfdd\x8e\
+\x1d\xc7\x80\x11\x07Z\x1f4\x05\xb2\xb2_\x95[S7\
+\x003\xb9\xdf\x86_\x0d[\x9e_\x8d\x1b\x06\xfc\xcb[\
+\x00\x1e\xfc\xb5\x04\xf2\xa7a\x1dp\x97\x0c\xd7\xda7\xd6\
+\x95\xd6J=\xf1\xa6\xf2h\x89\xa1\x01\x04\xe8\x96\x88\xab\
+`\x03\xe6$\xd4\xc6\xd1I\xdciX\xd8\xbf\xa6\xcc\xe4\
+\xb8\xc7\xb5\xc8\xe7\x85\x18)\xc4;%\xf8Zn\xf8\x19\
+\xcf\x81\x88w\xfa'\x8c\xd0\xba\xbf\x0aM\x0a\x0e\x12w\
+\xf7C^a}\x88\xdf\x89AkA\x07\x8c\xda\x9f^\
+1\xc4\xc4\x97\xe9\xef\x8a\x01\x93\xf9P14\xe4\xbd\xfc\
+\xd1J\x0c\x9e\xe6F]_>\xef:\x1fM\xc13\x05\
+\x003)\xf7Qk\xb9\xbb\xd9\x028\x96x(Q\xf4\
+\xf4\x8f\x98\x22!u\x1bb\xb7\xa5E\x96\xe7\x99\xe7\x87\
+\x91\xbdk\xdc;,\x1dM8\xa2}&\xdb\xb7K\xb0\
+\x03_\xf8a.\xb8\xff\x5czq\xc7\x0f\x86-\xaa\xcc\
+\x95\xe8K\xe49\x10\x07\x81\xc4\xdf\x86\x5cUd\x0b\x01\
+\xa6\xb2Ou\xdf\x81 \x81\x96\xf0s\x00nx\x9fh\
+o\x97\xebn\xcb\xaaC\x96[e\xee\xbf\xdb\xd8\xb6\x03\
+\x1a\x02\xe4\x00\xb2\xa0#\xec\xbetwPq\x90\xfe\x9e\
+\x8d\x8aB\x9c\x1b\xb3Q\xd2\xf6_\x01\x13\xe7]\x84\xc8\
+D/\xa6xN\xf7\xf9\xb4\x00\xc42\xbdzG-V\
+\xf9\x17 \xa3zr\x98*+OH$\xfbe\xb3&\
+@\x89u\xa8\xa0\x9a\x97\xac\xc7y\xdf\x1c\x07\x220O\
+*k\x89RQ?\xd5{\x9c\x95-\xbdBu\x1d\x09\
+\x10\x14\x22\x85\xaaDl&\xa9Zz?-\xcc\xaa\x08\
+$\x82U\x220zF!i)2W\xad\x1c\x12\x7f\
+\xc8\xb4/\x08\x9f\xdfS\xe1\x07T8\xa0U\x04\xac7\
+\x011$\x92\x83_\x1f\x94~\x1e\x80q\xf5\xa4\xd0\xa7\
+\xd8bQ\xfe\x1f\x9f\x88\xdd\x0d6\xbf\xd2\xc6/^g\
+s`\x9b\xbe\x90\xff\x7f\xb8U\xd8\xc2p\xa8\x0d\x1a-\
+\x05_\xeb\x12}\xaa\x9d\x99\xa8no\x14\xd6\x89\x09\xa5\
+\x9a\xec\xf8\xe5\xb0\xe9\xfb\xdf\x9b\xec\x88\xe9\xfb\xb7\x85-\
+\x89\xec\xf8\xc7\xe3\x13\xc6',\x8e\xaa\xc6\x0bI\x0c\xbe\
+\x90\xd4\xf4/\xa7X\x92\x04\xce\x01\xf2\xbd\x95J>`\
+E\x8f!\x07\x9d\xaa\xb2\xe3\xe7\xc3\xa6\xd7\x8f\x84M\xaf\
+g\x87M\xaf\x8f\x0e[(\x94\x80\x88\x12\xcf\x03\x04&\
+\xb0R\x00\x00J\xa5y\xc8DM\xf44\xa9\x5c\x11\x9d\
+\x11\xa8\x19\xcf\xa4\xc2\x90\x81M\xcdY\xce\xc0\xbc\x80.\
+\xeb6+\x08Z_\x8c\x0f\xab\xde)\x81T\x1e\xac5\
+\x15\x01\x12-\xd0\xd5\x12 QG\xf9\x02\xf0\x9d\xd0l\
+\xd1\xf2\xf8J\xd8\x02\x88\x94\x88\x1e\x86\x0c\xff$\xc0\xb4\
+\xbe\xf58\xa2\xf0\xdb\xa7\xb4\x06\xa8\x01S\x93\xcf\xf5U\
+\xf3\xec1q\x04\xd8\xb9\xaej\xbf\xf8}\x09\xb1\x1e\xb6\
+\xac\xe0\x94\xd8\xe3\xa3\xe7DX%\x18\x00c\xcc\x5c]\
+\x17$\x9f\xdf\x03\x00\xe4\xbe\xad\xc4\xef\x09a]\xc0\xef\
+\x80L`k\xe7~a\x0b\x05q\xf7\xfd\xc3\x16q\xa8\
+\x9aV\x90\x0c\x1e\xe2\x82\x15\xb0\xa12{\xeeZ\x99\xf8\
+\xb1\xdc\x7f\x9b\x1b\x85u\xeb\x02\x10D\x0b\xe4\x7f2P\
+R\xe9\xe6/hW\x9c7\x8bD\xd6:{\xd3\xcc\xb8\
+\x18\x8e\x08\xeb\xb4?\x9cC):Uc\xd0\xb2r\x88\
+b\x8c\x22\xb9\xd9?\xc5\xe7rJD#v\xde\xb3[\
+w(\xb7\xee\xbb\x00]\xab\x8f\x8aj\x84\xbb\x0f\xee\xc6\
+\x9cf\xe0m\x8a\xcc\xb4\x86f\xb1\xde\xa7N\x9f\xee\xa9\
+\xd3u\xef\x1f\xd6\x01\x9e\xe6\xc4ge\xb5Df3\xd0\
+\x1c\x0f\x0c[\x98w\xad\xb0\xf0\xd3\xbc\xae8\x17\xee<\
+\x03\x22\xa5\x01\xa0\x02\x95\xfevJ\xdc'k\x15\xf0\xa6\
+\x09Q\xadZ\xa6c\xe8\x89\x0cX\xe7\xb7\xba\xc4?\xc5\
++\xed\xa7j\x19#\x12\xe5yH\x88_\xb1}yT\
+\xe8*\xe1\xce\xeb\xaa\xf3\x17\xc0\x99\xad\x0a\xc3#\xc3\xba\
+s-\xb4\x80\xf6\xeb\xa8\x99\xe9?'\xff;Y\xe7O\
+\xe3\xb4|U2O\xde\x96\x9a\x0eg-\x81\xfb\xf0\xf3\
+\xb0i}\x1f\x1b\x96\xc0\xff\x8e\xce\xef\x8a#b\xd5}\
+?\x13\x94\xd3;\x0aq\xf4\xe8\xdf\xab\x0b`\xd7\xf3\xa3\
+\xd7\xd4X\x94\x7f\xc0w\x16\x80.\xc4\x88[\x8f\xc5\x92\
+h\xba\x1e\xeb^\x80\xeb\xf7\xd6\xd3\x03$\x16+q\xe5\
+\xd2\x02\xc8\xf9\xdek\xf5\xedj=\xcd\xf5\xd6\x00\xc2\xb7\
+t\xf3\xc1%\x0e\xa8\xed\x9eW2\xa3\xc6k\x845\x0d\
+\x9b\xa75\x91=@\xe9\xc53\xb1\x13\x07\xa8d\x02T\
+Up\x89\xe9\xadDw\x87;\x87\xb5\x84s\x16A4\
+\x0d\xc6}w\x1fU\xcc\x13x\xa9\xb1w\x18\x80\xa6\xc2\
+\xf0\xeb\xa6\xb8\x5c7l\x89\x03\xea\xfd\xa8\xf6kq\x04\
+\x9cgBUbu\xe2C\x0c\xab<g.\xa4q!\
+.\x95\x00IxQ\xbd\x15`\xb2\x00U*\xfa\xe2[\
+\x22\x94\x9e\xbb\xf3\xd8\xb9)\xc1\xbc\xee,\x12\x08X\xaf\
+V!\x80\xcc\x8a\xaa\xee\x1c\xae\xf1\xc2*\xdc\xe23\x09\
+\xa0\xf8D!)5{\xaa\xb2\xff\xaeL\x90\x9f\x9c\xc0\
+\x83\xbfC\x13\xc4\xfd\x0f\xcd\x89\x87t\x22\x95ZIR\
+\x94ys\xeb\x04\xe2\xbf\x96\xda\x07\x98u\x12M\xe7\xbd\
+1\xc89\xf5\xa5\xf6\x99\xf3\xc6\xf9C\xeb\xcc~Up\
+\x03\x04\x98\x86D|\x1b\xd0@$\xdb\xd8\x5c\xaf\xa9\xe5\
+\x22\xd1\x1b\x0e\x0e[\x98\xb9D\xe7\xaaE\x12c\xc4\xba\
+\xe0\x7fW\xf1T\xc5Q\xce{\x05'\xf1\xb2\x04\x1b\x10\
+%>\xd4\xdaF$\xcf\xbe\xb6\xae\xb2\xd5\xa9\x98\xe1\x98\
+\xcf\xe2\x03\xad\x87)\xde\x8a!X\x1a<\x187\xee?\
+\xc0\x0c \xa0U\xda\xfas\x0eZ\xb7\x80\xcc5#F\
+\x9c\x8f\xf1\x8d\x89\x80bOdPAFa\xce\xfa\x97\
+'*\xd0i\x1d\x12\xffh\x9d\xcc\x96\xa3\xed\xd5\xc2\x96\
+\xf7\xaf\xa9H\x80>\xefO\x93J\xcb\xb3\xc2\x0b?l\
+]\xad\xa7\x1f\xad\xa7\x07\xa4\xc6\xc9\xae&Z\xb2W\x22\
+\xdb\xe7d \xf0\xb6\xa5B\xd0\xf0\xea\xc7f\x828\xfd\
+\xc1\xf1o&{}&\xfe?\xef\x10T7\xd0\xc6r\
+ \x08\x5c\xd7\xe3!\xfc\x9c\x7f\xef{\xef\xf7\xec\x80\x03\
+\xbd\xfaII\xab.g\xef\xb3\xfe\xf2\x01\x7f\xd2\xc8\xb8\
+K\xa2\x8d\x11\xb0V\xb9\xcc1|\xb5\xf00\x0f\xd6\xe3\
+-$\xac\xae\xe3\xff\x00\x04\xda\x7f\x7f\xda\xfd\xbb\x9f\xb3\
+1L1X\x03 \xee\x83\xe9\x01\x16\xb8\x85\xe8+\xd5\
+\x22\xeb\xe0[zG\xf4n\x1b\x931; \x94e\xd7\
+\xa3\x97\x05\x12(\xd05%\x80\x9a\xb1\xc4=\xb5\x00\xca\
+!\x9b\x0b\x9cs$\xab\x87]eC\x80\xc9\xe1\xad\xef\
+\xa3\x9e5T}s\x96\xcd]\xce\xc0\xbfD[8z\
+\x95\x00\xe3n\xee\xd5l\xf9y\xea\xe86\x98\x83M\xe0\
+\xa5e\x02\x85\xcd}\xb518&\x15\x0e\x7f\x17\xe5\x87\
+#\xc9\x9e\xee\xcdQ\xb3\xd8\xd2\xe6\xa0\xb0n\xee\xf0k\
+6\xafn\x15\xed\xbf\xd8\xf1\xdc\xd6+\xfa\xb0\xcd\xd1\x91\
+xVOOT4\xef\x9b\xcc\x89_\xedD\x19\xcd\xf5\
+5\xe5!{i\xb5N\xa8LB\x96\xc7\xdb\x8d\xbf1\
+N\x07\xe6\xf8\xdd\xf1{\xe3w\xdbA\xf7\xb5\xa8|\xc7\
+w\xed\xfb\x93\xb7'mOZ\xa8\xca\xbb\x1f\x1d\xd6\xa9\
+HK\x0c\xf2>n\xf7\x0c\xebD\x0a\xb3\xc2\x19\xc3\xcb\
+b|YQ\xf6\x04\x0a4\x09$()\xa64>5\
+\xac]\xc7d\xd3\xeb\xfeaK\x22\x80\x91RH'\xb1\
+B\x15*\x81\x22\x87\xa7\xd7\x1c\x92\xbd\xd6\xfe\xe0\xf8\xec\
+3\x01&Q\x1b\xaa\xbb\xaes\x08[\xc6)\x19\x87B\
+\xbd\xb5ZOPj\x05\xc6\x80*\xcf\xdb\xd8\xd3\xac\xe0\
+T+\x8a\x00E\xc5\x01\x05[O\xbd@U\x05!\x0f\
+\x96R\x17Gms\x9f\xb5\x18X\xa7\xf6\xb1\x037\x03\
+\x98\xeaA\xcf\x03\xa1\x00&\xcc\x0d\xfe\x0d\xd3\xc0\xef\xe5\
+\xfe+\xcd\x14\x80\x87\xd6\x13\xaa\xc2\xfc3\xd19\xe2\x5c\
+\xa8j\xa8\xdc**DR\xb3r[byk`4\
+\xf7M%\x14*o\xc4\xc80\xa3 \xdcy_\x1d\xc0\
+\x12\xc1\xe1\xeba\xd3:\xbboX\xd7RE\xf4\xd1>\
+\x13`[W*<\x12\xbd\x93f\x8a}\xa9\xd3KL\
+\xf9\xff\xdc/\xe5\x8f\xf6\xc9\xebJ\xe0Ae\x09 R\
+\x1a\x19z\xd6s\x8ex\xec\xce\xd8\x9f\xd1H\x14\xadD\
+\x05\xb4\x1asuD\xb3\x85\xba\xea|9q\x06\x8e\x8a\
+\xca\xfa\xe9)\xfc\xf9tW\x09P\xd1\x05 \x1b_%\
+1\xd2\xb2\xa3\xd2\xe7sK\x80\xf4\xa4g\xcb\xcb\xf0'\
+a\xdd8\xbe\xac\x98\xb4\xc0\xed\xa0\x04\x82\x8f\xcfD\xeb\
+\x81\x0b\xc3\xa2\x01to\xef\x12\xd7\x08\xd3\xfe.+\xed\
+\x0fN\xf1\xa6+,\xe7IM_\xa1\xf9\x92\xda\x04\xd5\
+\x9a@\xb4\xee\x9f6\xef\x08\xe0js\xee\xe6\xbc\xd0\xb6\
+) .\xd6\xdf\xa3:\xa6Y\x06\xd45\x0d$\xc6\xe1\
+\x0e\xddXO\xad?\xc4\xf2\x22@\xfbLGY\xcd\x04\
+\xd1y3<5lz\xbd\xe7d\xd398| l\
+\xd9\xc7\xc3\xcd\x86C\x87C\x1bp03E\xbe\x1f\xb6\
+\x00\x18\xe3\x13\xc3\x161d\x8c\x8b\xcdw&\xfbn\x06\
+\xb8\xd3\xba\xda\xf9\x98\xc9\x1e\xb50\x00\xaaR\xaa\xb5\x89\
+\x7f\x90x\xf0C\xc1\x88\xbau\xe7\x07\xc5W=%\xff\
+\x12\xdd\xab\xca=-\x18L\x19\xaf\x02I?o\xfd\xf3\
+\xb7\xceW\xdf\xfb\xff~\x9e\x7f\x16\xf7\xa8\xe8\xfb=\xff\
+\xaeP\xe4\xbc\x15/\x02\x08\x00\x99Z|\x22\xa1zc\
+\xb6\xf8|\xa2SC\xf7\xb9\x01`\x99\x18\x8c\xa7Lv\
+j;\x07\xef\xd1\x12\xa8d\x0a\x10Y\x9b\xce\xcd\xafn\
+\xbf\xdaM=\xc8\x8a\xb3\xfdY=\xbb\x18C\xd9\xcb\x5c\
+ZA\x18<\x18{\xce\x1d\x95C\xf7\xe5\xbf21\x11\
+\xf7\xd1r\xb9qj\xc5db\xafU\xa5\x12\xff\x04P\
+U\xd6\x8b!\xa5\x07\x19\x00\x8c\x89hj\xc0\x19\xcd\x16\
+\x0at~_\xe2\xb0\xd6\xb9\x04A\xfc#\xf1\xc3\x9cu\
+\xbe\xad\x0bnZ\x8fTt\xb3w\xde\xba\x22\xfa\xbb\xf9\
+\xeb\xb0N|.\x98J\xaf\xee\xa60\xa1\x86\x13\x9du\
+\x9f\xf9\xe5Lh\x87\xcb\x84u\x15k\xff_|\xe7\x0b\
+\x90\x9a\xadR\x05\x90\x12\xe1S\x19\x16\xff;w\xe4\x05\
+\x07fk\x9cV\x80\x17\x87uq\xc9\xd3R\x9bD\xde\
+c\x9c0fB\xfe{i\xc8h5#\xb2jl\x9c\
+\xbf\xab\x12\x1f\xe3\xd7\xff\xbc+P\xdc \xac\x9b\x82`\
+?\xf0w\xc1\xdc:\xa1\xd3P!\xfe\x99\xbf_\x8c\x00\
+\x09\xbc|\xc9~\x05\x9ch\x1d\xa1\x05\xa3\x80\x81a\xf4\
+\x85\xb0\xceO\x00\x10M!1\x86\x90:\xbeB\x08\xc6\
+\x868\xdb\xef+\xb4\x89\x83\xc4\xeb\xe2\x19\x05\x16\x80\x08\
+\x00\xc4\xe7\xf2\xf93\xae\xaas\x09\x93\xd2u\xe7\xf4\x8f\
+\x9a.\xe6~{\x8e\xf6\xe5\xba\xa5\xc1\xfd\xe17\x8d\x85\
+\xc6\xe8\xcb\xd6\x8cb\x0e\xa4?\xab\xcf\xbf\x16\x11T\xa8\
+\xa4\xd1\x84\x19\x9a\xcc\xda:\x7fii\x18\x07\x18\x05\xea\
+\x03:&\x05&\xb7\xa9[\xb4DL#\xd0\xb2o}\
+\xfb<\xfc)@j\xc5\xf0\xdc\xd5\xc4(NH\x87O\
+\x1c\xea\x96K\x0f\x97\x0f6\xfe\xc7d\x81H^|\xb2\
+\x8beB\xf4\xa5L\xf4\xc7n\x81\xad\x13s\x0e\x83\xe3\
+\xf3\xff\xdd\xe05\x00`c\xea!C\xd1\xc7,\x18\x1b\
+\xa9\xe8\x82\x94\xfa\x1e\x10\xd0\xcb\xef\xe7Q\xf9\xb3\x07\x1f\
+E\xdb8\xa452Nm\xbd\xb9\xa5\xcbu\xbd\xfb\x12\
+\x0f\xd7\xbb\x9eg\xeb\xc1c\x22\xf4\xdf\xff\xac\x13\x13t\
+\x1f\xd6\xaa\x9eC\x93'Z\x00\x8fo\xb5\xc9\xc4\xcbF\
+\x81H\xfbz\xc8L9\x1d.6\x5c|\xb8\xf8\xe2\xc0\
+K<\x888\x98\xf9\xa7\xc6\xe3\x11\x1f\xbbx\xf6\xf2\x13\
+\xb1\xcb9\x93\x95\x00\xa1zg\x02)\xc1+\xea\x12\x8a\
+\xb5\xb9\xbf*\x89\xc4\xfeT\xf2!r\x0e\x1c\x0b\xd2s\
+F\x85\xa5\x16+\x11\x13\x08\xeb\xd1E\x11G\xa9\xc9\x8d\
+P\xaa\xfe/\x08\xebz\x9b%<(\xa7y\x1f\xabB\
+C\x1c\xc5\x06\xd2\xeb\xb7\x1eW\x94\x01^\xf5\xf4?$\
+\xc7\xcb\xb8\x1e\x81\x09j\xdb\x9b\xe7i\x0e5\x86\x86\xaa\
+z\xf6\x12\xb7J\xec\xf7\x17F\xc3p\xa5\xc9\xae\xd8\x1d\
+d_Jd0\x02\x93\xffZz\xc9\xc7W\x855U\
+\xe1\x1f\x84\xaa\xb0\x9eC\xcc\x80\xf1\xef\xc2\xa6\xd7\x9f\x84\
+u\xe38\xffx\x0e<\xb7\xbf6\x8f\x81\x1a\x7f;\xac\
+\xa3\xbay~\x02\xa3\xd4\x1a\xd0{\x8c\xe9Q\x15d\x09\
+\x9a\x03*\xc7\xaaUO\xeb\xe1a\xcb\x98\xb7\xf1\xd2a\
+\x8b\x18R\x8d\xf5#\x16fL\x1e\x8a\xb6@\xd0z\x17\
+XYG\x10W\x01\xac@\xd7zZQ\xac\x8a\x9a\xc5\
+\xc1b\x08\xac\xe6r\x17\xd5>E\x03\xab\x82\x04(\xc9\
+\x83\xb6ZZ\x88\xf798M\x11\xa0\x9al\xfd$u\
+\xb8\x12\xd7\x14K\xac\xca)1\x9c\x1c3V\x9f\xdf\xc1\
+\xadW\xd4\xba\xe4'\x01yD\xfbP\xbf0f\xf2\x00\
+\xb1\xbf\x8b:H\xd4n\xa510\x5c%l\x9e\xa3\xbd\
+=\xa6\xab8\xab$9\xc8\x88\x19fB[*\xec*\
+\xf8\x7f\x18\xd6U~\x00\x01\x09,\x94F\x89\xca\x97\xe7\
+h\x9fI\x08\x00\xc8\x00\x18\x89N\xf6H\x96\xea\xb4\xe7\
+v\xe6,\x96S\xaa\xca\x02\x02\x09{\xb6\x12\x0do\x09\
+\xeb\x98D\xee\x8b\xf5\x08H\xdc{\xde\xd7\xa5\xc6\x9c\x15\
+\xaeR\x1d\xf6|\xf2\xfd\x8b\x12\xff\xc1\x14;\xfaj&\
+\x16\xc6eeBT\xa2XW\xcbu\x0d\x80\x05\xe8\xde\
+#\x01\xc6\xec\x1dn\xa7\xd4\xb5\xf3\x5c\xbey\x0b\x8cf\
+\x86\xce\xfey_\x00D\x02_\x958\x00H\xee\xef\xaa\
+\x14\xd2\xcc\x00d\x0a\x90\x054*T\xc6_\xaaD\xa8\
+\x88EK\xcf\xed\x17\xa0a\xf8\x9f\xb0\x8e1\x90\x81H\
++\x14\xbc\xaei L\xd6U\x90\x8c/t\x0eQ\xd1\
+\xbfBXw^%\xd5\xbe\x98\x12\xa6\xc9dk\xce\xf8\
+/\xe3\xe9\xe3\xbf\xb4ss>/\xa3\x81\xe2\xed\x09\xc0\
+}\xbek\xe1I@\xa0\x8d\x0d<j\x01\xbeM\xcf\x19\
+_;\xben|\xed\x12xMi\xcb\xfc|<\xdfL\
+\xe8\x86;\x86-\x0c\xae\xe1Ua\x9dh\xe73f\xa0\
+\xad\xb4w\x12x\xa8\xd6\x9b\x0c\x14\xc7\xbd\xc2\xba\xf1\x80\
+\xd9z`,#\xd5vSi\x8a\x91e\xffi\xf1R\
+\x11\xb4\x7f\xbe\xd1\xe4|\x97J\xd7\xaaw\xbd\xe2\x8c>\
+\xde\x18\x12\x90\xdf\xab\x9bBb\xda\x89}\xc7\x8f\xda\x97\
+zNs\xfci%\xf2\xe2\x19\x00R\xb4n\x98\xc3}\
+N\x17\xd7\xac\xd5\xcb\x01\x05\x02V\x80;\x7fo<u\
+\x02D\xc3\xb9a]\xa1!\xc5s\x89LK\xac\xc7\x9b\
+\x86--\x12\xc6\x8a\x1ak\xb9\xbdT\xd8\xf4\xba\x7f\xd8\
+\x02\x94i=\xc2\xd0\xaa^z\xda\x03\x12V\x22\xcb\xa6\
+\x18\xb9^\x95\x7f\x89\x84\x04{\xaf\xac\xdc\x8a[\x8c\xfd\
+2m\xe0\xa8\xed\x91\xdb#\x1b :\x03\xa5\x98\x8a\x00\
+R\xe7c\xb6\x9a\xd9\xcf]\x85\xfa\x82\x22h\x99\x88\xd5\
+\x1cx\xad\x85Z\x0f\xcc\xa3_\x8b\xd8y\xdey\x0e\x15\
+\xe5\x1a\xd5\x99\xfa\xba\x04P\xc2\xa8\xf7?\x01\x98\x9ag\
+N;h\xa5\xf5@\x04\xba(\xd5\xe9\xcf7\x1f\x0d\xeb\
+\x18\x0a\xcem\xf1\xad\x82\x14f\xc3\xba\xe2\xaaW\x1f\xa0\
+\x91\xfb\xa7\x80\x22\x00\xb8\x96\x11\x1a#\x09\xa0\xd7\x94\x1c\
+\x80\xa8\xca:\xff\xca\xdf\xf2\x8f\xc7\xe6t\xa73St\
+5\xa7\x17\xb5\xc4\xff\x19\x1dP\xa2\x22\x8eAF\x03\xc8\
+XZ-H\x0a\x7f\x80P\xad$w\x0d\x9b\xde\xe6\x99\
+a\xcb\xdf)-.\xcc\x01\xc0\xb4\xfb\x94\x85\x07\xe7[\
+i\x12\xa5\x9f(\x0d\xa9\x04\x88\x0a\xa0\xd3\xc2'\xbe\xa1\
+eb\xbd\xd1\xcc\x11\x17\x9bN\x05\xa0\xb1\x1f\xf8\x83\x8c\
+Gj\xdd\xd9\xe7\xd6i2\xa8\xaa\xe0\x80\xd1\xeb\xb9Z\
+?\x00J\x15\x7f~@\x81\x04\xf38\xcf\xe9P\xbej\
+\xc0\xae}K[\x82\x1f\x92\x8fY\xc7\x80;\xc0\x85\xb8\
+\x12s\xc0\xb9\x89\x91\xa0E\xd6\xfb\x8a\x8f1O\xacO\
+q\xabq\x8fZ3iC\x00\x9a\xc4y\xb4\x9b\xf8}\
+\x9f;\x0bW\xc5\x1c\x05\x808\x07\x00/\xe2F\xfe\x99\
+\xbf\xb5\x8f\xf6\x0f\x0b\x00\xc0\xbcaT\x8b\xa8H|4\
++0\xd3\x012\xbe1l\xfa~\xef\xc9zj\xbcy\
+\xe4\x16\x8c\x80\xcd\xc1\xe2\x81I\x98/\xea\xf5\x12\x17A\
+\xc1\xf7\xfd\x1a\xb1F\xe5_\x03\x0d\x12g\x09\xdf\xba\xa7\
+\xccF6~\x0f\xd5\xde\xb8>\x22{\x10o\x07\xdf\xff\
+5u`\x9d\xc0\xfa{Z\x1c\x00\x14\x80\x11\xf7\xc5\xbf\
+Sw?\xa7\xd5p.\x1c\xe8F\xfaz\xed\xee\xfe\xfa\
+\xff\x16\x92\x9eU\x017j\x9c\xdef=\xaa\xe6@\xfb\
+\xbaL\x22\x88\x12q\x88\xd4\x99\x89\xc0\x9d\x91\x07C\x06\
+\xf6\xe3#\xc2\x96\x9e\xc6\xe1\xf9a\xd3\xff?r>\xa8\
+\x86\xdf\x0c\xeb6p\x22\x90\xc6\xe8\xd5\xc1\xe2\xe0\xe4\x90\
+m8\xc0\x86\xcf\x07\xb9\x97\xc0C\x04mTT\x1f\xc8\
+\xab\xfb\xee\xb9\x99\x83~FXG\xc9\xb5\xde$\xd8(\
+\xb6\xd4\xe1\xa95\xe7AY\xdf\x13O\xcc\x04\xb2\x126\
+\x14\x9dt\xd86\xd2\xb4)\xe7\x8a\x91\x0a\x1cU\x7f\x14\
+T\x07\x9b^R\x80E:\x9e\xe1\xf6a\xdd\xbcN\xbd\
+\xadzz\xb37u{\xec\xf6\xb8\x18\x13\xe9\xb9\x8f\x0f\
+\x1a\x1f8>pq$\xdb\xc3f\xd1\x98\xddCXC\
+\x90\xdbX\xbe\xf1\xa1a\xd3\xeb\xbf\x86u\x07e\x06\x1a\
+\xe6\xbb\x17\x02\xf9\xc3\xb0\xd6\xa36St\xcf\x9e\x13\x01\
+\x15]*\xad\xdb\xcb\x85M\xbf\xff\xb9\xb0\xe9\xf5\x06a\
+]e-\xc5\xffZB\xf07KE\xb0*\xef\x02\x93\
+\x9e\x01\xb3o\xf7\xbc\x05\x86T\xc13P+\x07\xa8\x17\
+\xca\xfa\xe2\x08Q%9\xc4\x04\x92\xb6\xff\x99\xaa\xc1\xef\
+\xcb\x0a\x9a\x9e\xe7\x0c\x00J\x15\x18\x03\xe0q\xcd\x16\x84\
+_o\xa3\x80\x8b\xf8\x0b-\x07\x07\xf9\xda\x91;(%\
+:\xc4\x8a\xf4\x0a\x9b\xab\xeb\xe05N\x8c\x9f\x11XY\
+_* \x10j\x00\x1a\xc0A\x05X \xa9\x02\xe3@\
+7\x96.\x91\xedb\x0aA\xe0\xf9\x09\xf7\x81\xdf\xc9D\
+\x8e\x9av\xa9\xf6&E\xb5\x800\xcf\x13C)\x03\x91\
+b$\x18\xd7DT\x89H\x91\xbf'\xc0\x00Py\xee\
+*\xf8\x12\x12\x07bTR\xbf\xb3\xf4\x22\x12W\xdb\xfe\
+V\xd8\xe2v\x8c\xe91^\xad\xc4gU\xfeR\x8c\x07\
+\x85\x12\x03\xa7*\x11\x09\xf0T\xcfc2\x95\xb6\x0f\x0e\
+k~\xb1\xedc\x89u\x0c\xd5\x8d\x007\xd2\xccH4\
+=\xff\xd2\xd0\xb0~T\xd2^\x99\x22a'\xcd\x0c\xab\
+\x96\xc6\x1d\xda\xadK\x15\x0e\xbd\x93\xf1\xd7\x9f\xd5\x05\xb6\
+\x02HTAc\x0d\xcd\x15\xc7\xfc\x8a\xd5w\x9f.\xa0\
+\x15\xb0I Q(\x05\x0c\xd9\x8b\x0f\x10o\x14\xd2#\
+r\x1d\xddo\xfa\xdc\xbf\x16\xd6\xfc\xf1\xcc\xb4\xcb}L\
+c\x03\x004\xfcq\xd8\xc2\xf0i\xbd\xf9\xf7\xeez\x95\
+\x1f8=\xcd\x07v\xd4\xff+\x86M\xaf/\x08\xeb\xa8\
+\x92\xefo;xI\xc4R\x1c\xb01\x0a\xae\xd3\x89\xda\
+\x12\xadM?m\xecm\x89\xb7fB5\x9e\x15\xd6z\
+\x95\xef\xd4DPU\x00\xb3\xb2\xd9zV\xa7}<|\
+<\xac\x03.R\xc5\xb9\x80t\x22\xae\x19\xb8\x8d\x1f\x0f\
+[z8Kd0\x00\xb0\xd3\x97\x04wxaX2\
+\x8c\x0e\xec4\x7fTt\xf4\x02\x9b>\xa2\x82\x07\xd0\xa1\
+\x95\x13\x81\xff\xc9K\x8bFM\xdb\xc0 \x10\x08z\xfd\
+\xdf60q\xf9\x12\xe8\xa2\x9e\x0a\xd4\xf9W\x22Z\xfc\
+\x85\xf8\x0f\xb0\xc0\x7f\x9b\xc7N\x13&\x00\xb1\xaft\xad\
+\x0b\xe2\x99U+`\xadG~;\x81'\x09'\x15\xee\
+\x1aC\x86i\xf3\xba\xc9^\xbb\x9c?\xe3u\xc3\xa6\xd7\
+\xc3\xc6\xc3\xc7\xc3:\xcd\xaa\xff\x0ek\xfel\x8e\x0b\xf9\
+s\x0c>\x8c\xa8L\x18k\xff\xf0gZ\xb70$\x01\
+5\xfc\xad\x04\x5c\x22!\x0eN\x7f[b\x9e\xd9\x8a%\
+\x01\x9c\x92\x86\xd9\x9f\x13)t=\xce\x01\xe3\xe1hJ\
+\xf0\xfb\x18[}\x0b\xeb\xb9\x9d\xeazN#\xa8\xfd\x85\
+\xc1\x90\xe7TQ\x93{\x86\xebO\xbbu\x07\x18\xcaV\
+\x8a\x024\x9d\xcb\xe28c\x05M\x1b\xc8\xf7-\xc6\x81\
+\xe7)\xae\x01\xa8\xd2V\xc1TH\x7f^~\xc7T\x01\
+\xe7 f\x1a5t~X<\xa3u\xc2\x18\xb6\x1c\xf3\
+\xab\x85\xa1~\x0f\xc0\x8a\x19\xe5\xf3Z\x87\xfc\x9f\xbf\xeb\
+\xbc!\xd2F\xa5^\xe2\x88\xf9\xf1\x99\xe9\xa9\x7f\xa6k\
+\xd9U9\xce\x0a\x7f\xe5O\xfcK\x88\x89^\xb2\x03z\
+Vc\xfd\xea\xe0\xd2\x8b\xff\xc1\xb0N\x1c\xd3y\xad\xc0\
+\x05X7~Y|d]\xf8\xbc4\xbd\xb20Xb\
+\xed>\x8fB\x84D<[c\x8a\x81b\x1d\x88\x83\xc4\
+-\x09\xf0\xeb\xd9\xafs\x9c\x9fR\x90\xf3\xbc\xc4k\xf2\
+9\xf7\x19p\x86\xd9b\xdc\xa5\xa9\x1f\xa6[P\xe5\x07\
+\xb4\xba\x7f\x00-qK\x16\x16\xb7o\x0d[\xc6\xa3W\
+A\x88\xa6\x02\xa6\x08\x00\x95\x08\xa7\xf5n\xffz.\xf2\
+\x16S\xb2h\x22$\x90{\xa1\xbc'\xd7\x13\x06Z\xdd\
+\x7f-\x05\xee\x0b\x80\x03\xa0\x11\xad\xf9\xfbt\xad\xad\xc6\
+\x02\x03\x02\xb5(\xc9S\xadg\x0c\x0b~\xd5ud\xbc\
+\xb1\xabm\x8fwf\xc5\xf2\xa8\x5c\x18\x8fL\xb5\xed\xfd\
+\xf3\x0f\xbe\xa7C\x22\xa2N~\xd5\x8b\xa8\xdc\xaf\x01\x80\
+\xb5\xb8^,\xe7\x8bw\x95}\xbf'\x91\xeb_\xf7\x5c\
+\x01\x00\x97\xec\xa8\xf1\xfd\xef\xedy\x11\x89\xb1\xca\xbd^\
+\x19s;U\xf2\xfd\x1c\x84\x87\xea~,\xf3+f\xe2\
+}\xc5.!\xe7\xd0s\xac_\x89Z\xd1(\xb0Q\xdd\
+x\x0e\x7f=vPE\xd0A\xe9A\xe8\x0d\x168\xeb\
+\xc5\x8c\x03\xfc\xef\x165\xeb\xa6V\xfc\xed\xa5W\xae\x0e\
+\xc2\xd7%E\x1bUmEi\xd1\x0b[\x1a\x00TF\
+\xcd\x8b\xbfB\xd8ty\x7f\x12\xb6\x5c\xcfp\xcb\xb0\xa5\
+R\x5c\xf3rU\xd6T\x1cQ,\xff#l\xd9 \x95\
+\x90\xd8\xf8\x128\x95>\x08.G\x03\xf1EAs\xb0\
+DX\xfa\xb5\x0b\xf7\xa8\x95H\x19\x91&\x81+\x8a2\
+\x06\x01\x00\x88C\xe1(\xb37k\xf3\xde\xb0\x0e\xb0p\
+\xff\xcc\xd9\xfdLXGa\xa6\xfayn:r\x0e\xed\
+\xd8\xa4\xda\x9e\xd9 \x95\x05\xb1C\x89\x82d\xfbZQ\
+\xccP}\x05\x14D\xee\xc6?\x0b\x9b\xfe\xfd\x89a\x8b\
+\xc8\x5c13\x8e\x98{\xb9\xc6k\x85M\xdf\xff\xc1\xac\
+\xd1\xa1B\xb4\xfb\xc5a\x0d\xa9\x9c\xc7u\xfe\xcex\xb7\
+\xf1n-\xe1\x9aE\x85\x120*\xaa\x9a\xebE\xa1\xfb\
+\xc5f\xf7fw\xa3\xac\x8e\x9b@\xb0/\x1d\xd6\x8dA\
+\xfa\xfb\xb0e~\xeex\xe7\xb0n,\x92\x83\x80\xda.\
+je\xb6\x88\x94\x0a\xb5\x00\xc4\xfa\xe2O<w\x89O\
+Vp\xaa\xd7R\x82\xadu!+\xf6\xb4.*\xf0u\
+@\x9f\xd5\xe4\x9e\x96\xf7U!\x86\xd4;\x00\xac\x17\x8e\
+]e\xc7\xefY\x9f*\xe9\xc4\xff8\xdc5\xb0\xe9 \
+\xb5\x1f\x1c0D\x05s\xbcW\xa9\x8d\xa3\xfa\xfa=\xf7\
+E@\xa6\xa5\xe4\xac\xb0.`\xa42m\xdc\x8f\x8a\x00\
+&\x80\xf1L\xa1\x19\xf1{\x17\x16\x91*\xf1\xcd\x0c8\
+k\xbf\xba/\x02\xfb\xd7\x87uZ\x00z\xf6=_c\
+\xaf\xb2\xd2Z-A\x005\x00S\x8a\xa8\xd5}TI\
+\x02\xbc\xf2\x0b\x00!S-\x88g\xed\x98\x13%\xe2t\
+\xee\xef\xf8?a\x17\xae\xe0\x08\x0c\xf5\x80\x038Q\xe3\
+\xdc\xcf\x12\x9f\x14\x18\x98\x1e\x90=\xca\x9b/\x85u\xa2\
+K\xde\xff\x9e\xf3\x9ct\x14\xe1\xe1\xbc\xb0\x85\xfa\xb8\xbd\
+w\xaa\xfd\xd2\xdeH&\x0d\xe0r\xf3\x8d\xcd\xd7\xa3\xa7\
+\xbcz\xc5Oo\xa9\xc1\x22\x06\x9a\xe7FQi\x89\xbd\
+\x09\x04U\xb4\xb2E\xa3\x00\xbd\x08x\x9f\xda\x05\x92!\
+\x02yR\x07$iq\x12\xa8\x03\xd4\xbd_\x8a\xab\xd6\
+\xfaL\x11Z\x9a.\xc3\xb7\xc2: V\xc5\xfd\xee\xc9\
+Py\xfc\xbc\x1e\x86\xfb\x87u@\x0e\xe0!\x81b\x00\
+\x11\xca\xfd\xce/\x87-\x22\x98*\xb9\x95X\x18\xa3\x15\
+i\xea7\xbb\xca\x97\xfd\x99\xfb\xa6%J\xa7v\xda,\
+\xfcDR:K\x8c\x14 %\xe0\x8b\xf4\xf0\x8d\x1d\x80\
+\x97\xe3\xd6v^6l\x01\xb86\xef\x0f[Z\xe9\xca\
+\x8f\xe6\xb9\xb2\xfbua\xdd~\xcb\x8a\xf8\xf0\x84\xb0\xe9\
+\xf5z\x93\x1d\xdc\xb5\xa8\xd1\xf8\x91\x90{N\x02n\xfb\
+2\xa9\xd4\xc3]\xc3\xa6\xfb\xf3\x9e\xf1\xbd\xe3{;\xc0\
+G\x82E%\x9c?\x12\x8f\xa8\x9c\x09\x10%\xfc\x00x\
+\xf1\x8d\xc4^|\xd3\xb7<\xfe\xac{?\xfb\xd6\xefe\
+\xdc\xb7\xf9\xa5\xb0\x04:?\xd7%Vk-\x1e~T\
++U\x9eC\x00\x92\xe1\xf8\xb0.\xe0}t\xb3\xb9P\
+\x15\x80\xf8\xa1\x93\xdd\xac\x1b\x9b\x95\x0c\xba\xd2|\xc8)\
+-\xd3n\x9f5\x85n\x99\xadg/\xcc\xf3\xd0\x986\
+L\x08\xeb3\xc7\xaa\xc5\xac\x89V88q\xd6\x16\x99\
+\x92\xde\x19\xa0\xfcQ\x02!\xfb\xe7\xe7>/+o\x97\
+\xccx5\xe3\x1c\x9a&\xc4\x011)$\x005\x15\x86\
+\xe8\x9a\xc4L<\x12\xe3&O\xbb0\xe5\xb94G\x8c\
+E\xc3\xa4\x94 '`Tj\xee\x80\x15\xea\xfc\xe2\xea\
+\xb5\xfa;\x11\xb7,\xb4\x94\x18\xa9\xca11_\xd3\xa3\
+\xf4\xc0\x8b\x9bQ\xbf\xb5<\x10\x8d\xd6{\x9f\xfe\xbe4\
+\x01\xfc\x9ex \x01\xdb*\xec\x10y\xf4\xb9\xf2\xfc\xaf\
+\xcar\x02\xb5%r+a7G]\x5c\x88y\x9a-\
+\xac\xdb\xaf\x85u\xe3Z\xc5\x0b4 N\x0b\xbb\xb0\xc6\
+T1\x18\x9c\xd7\xdf\xcd\xb8A<i_\x19G\xf8\x9d\
+\xb0\x0e\x10\xe2W\x8c\xf7\x94\x00\xaf\xc6\xd5Z'\xd5R\
+\xa1\x87^\xeb\xa8|\xc5:\xf0|0\xc0\xf4\xfag\xbc\
+U\x00\x90\xef=\xbf\x15\x03\xb1\xa8\xed\x0a\x02\x18\x1c\xf9\
+\x1c%\xd4u~\x00\xa0M\x07[W\xe6M\xd1\xc1(\
+\xe1/\xbcj\x011\x8d\x0a\xc0\xa8\xe5\xc9\xe7\x04P\xda\
+\x9f\xfc\x15?\x05\x90\xc8\x96\xcd\xd2\xde\xa0y\x16\xd3\xee\
+.\xb6\xf8\xa9bn\xca\xe30\x17s\xdch\xb5\xc4\x00\
+\x96\xc43Z-\xc4\x8bk1S\xf9\x848\x06\xc0&\
+oM\x7fW\xe3'i]\xf8=\x0c0\xfba\xc5\xb4\
+\xaa\x96\x8c\x1cWY\x85\x01~U\x01U\xdc\xbab\xe8\
+\xef\xaay\x94\xa8\x8f\x02\xe9L0\xeb\xc0Z\xf7\xb2\x0b\
+p\xd7c\xf9|\xf0\xf5kO\xf9\xbfD\xa7\xb6\xcf\xf1\
+\xc4O]\xac\x9b\x02\xe0\x80\x90hs$(\xfan@\
+$\xe6\xfb$\xc2\x7f@\x97\xe0\xef\xd5\x06#\xcd\x89\xd6\
+\xe1\x171\x9eF\xa2/\xc0\xf6\xbd\xdf\x87\xe0\xa9\xd8\xc5\
+r\xd0\xcbr\xf5\xees\xf8|\xfd\xf8\xc0\x9d\x17\xf1\xb9\
+$\xfe\x0e\xccHW\x0f\xea\xc4\x98\xf2\xe7\xaa\xe2\xd0\x06\
+\x94g\xa2\xfc\xee%\x10\xdc\xfc\xc5\xfc\xbc\xa6p\xeb\xdb\
+\xc3\xb7[\xc03W\x98\x0f\x9e\x91\xd76\x0f\xf8C\x9d\
+*q&\xe6\x1c_U>~/Ep\xbe\x9a\xd4\xe5\
+S\xb7\xa7lOYD\x0dU\xce\x8a\xcaoA\xe6\x81\
+\x0b\xe9-J}\x8e\xb3(\xe6\x01\xb5\xed\xbb\xcd\xe28\
+\xd5\x1a\xa0\xd2'1\xd3#kL\x86\xde&\x81h\x5c\
+\xdd\x97;5\xda\x0f\xccT\xbf\x12u\x82 r \xd6\
+\x8d\x96\x0e\x15B\x01\xa7\xe7\xa2\x17\x8b\x88a^\x9f\xf9\
+\xb15\xef\x95C>\xff\x82=\x8eS\x1a\xd0\x1c\xa3^\
+Z\x01\xce\x8eGN\xc7\xda#\xbb\xe7M\xcc/{v\
+\xea \xf3\xff\xad\xf7L07g\x86M\xcf\xf7\xa5a\
+Kb\xa3\x129\xdco\x0a\xa0'\x87?\xfey\xd8\x82\
+x\x8e7\x0c[*N\xe3\x15\xc2\x96\x1e\xed\xf1\xc4\xf1\
+y\xe3\xf3\x9a\x08\xd2SC\x04\x09\x93C\x22\x15\x0d\x02\
+\xad\x87TKD\xf6\x9en>\x90\x81\xed\xd7r\xac\x9c\
+\xc4=\xa9\x91E\xa5\xcc\x9e\xed\xaa\xb4B\x9cU\xa0\xed\
+_cORu\xbez\xbdU\xaeW\xbdZE\xedt\
+\xc0\x00\x5c\xa8\xee\x1bOJC\xc0\xc1\xee\x80\xce\xcf_\
+\x80\x0c\x86\x89\x0a\xa2\xf1y\x02X\xd4L\xe3\xef\xa8\xef\
+\x03\x08 \xc2\xc4\xeb\xd6\xf3\x8f\xd7\x22J\x02x\xebR\
+\x0f\x9c\x80*\x13\xa5b\xcaX\xf7\x10`\xdfg@l\
+*K\x05\xea\x02\x01\x00\x9c\xfdytX\xd7\xea\xa1\xa5\
+!\xc5\xfc\x00(E\xf1\xcf\xcaV\xb5\xb4Hd\xecO\
+\x89/\x11:\x14\xd0\xac\xe4\x12\x07\xf4\xefZ\x0d\x8a\xda\
+G\xe4\x87\xca3\xbf\x81\xe2\xfb\x8c\xb0n\x0ch\x8a\xdc\
+\xd4\xf5\x19\xdb\x98*\xdc\xd5\xca\x85\x02x\xc7\xb9\x97\xce\
+\xe7\xe3\x1fJ\xb4\x10\xf3\x84\x7fC5\xd4k\xff\xb7a\
+-\x01\x9f[\x09~%\xa9\x92\x9f\xcb)\x09\xc7\xcf\xe3\
+\x94J,\x09\xc0\x92\x81\xc7p\xf9\xe1\x0a\xc3\x15\xba\x1e\
+\xc5\xd4t\xa8\x1e\xf2?\x0fk\xad;m\xeaN\x8dA\
+\xf4\xdc\x05|\xd6\x97\x0a~\x8e\xfb*&\x84u\xa4\xb2\
+\x00\xe9\xa7\x99aL\xa0u\x01\x88M\xbf[\xaa\xdd*\
+\x99\x02\xe9\xb5\xd6\x8c\x80\xcf\x98\xa8\x10\xab\xfb^\x07 \
+D\xa2\xfe\x8c\xae\xa5\x83\xa6\x8b\xb1\x89ZH\x92\xe9d\
+\x9c\xd5pV\xd8\x02`TOc\xb6\x0e\xf1\xe3\xc3\x8f\
+\xc2\xa6\xd7\x9da\xcb\xfb\x9a\xfa\xe0sl\x0e\xdf\xdc&\
+* Q\x9f\x0fU\xe9Fd\xfd\xb7\xc5\x8f\xd68\xcc\
+,\x18\x10]\xd5\xa3_\x22t_\xdc|i\x13S\x0e\
+\x8e\x19\x8e\x1e\x8ei\x95\xfdWDe_k\xccpx\
+\xd8\xf4\xfa\x17a\x1d\x83LO\xff\xb9a\x1d\x80\xf4\xe5\
+\xb0N\xc3\x01#-[\xc7\x86\x9bNv\xc8\xa2\xa53\
+\xfcx\xb2\x1fuTP\x01\xad\xfd\x9f\x09]%f\xc9\
+T)F\x0dq\xcf/\xcf\xc0TK\x14\xdf\xdcQ\x8c\
+\x89\x95\xf2\xa3Z\x9f\x00\x024]$JZF\xd6\xd3\
+p\xf4\x22\xaf\xb5\xfb\x03\xac:\x00\x00 \x00IDA\
+T\x91\x14<$\xf2\x02M~U\xa2*\x80\x17\xa8\xfb\
+\x9c\x12!\xc0VVr\x8dM+`3\x81\x91\xed%\
+'\x9b\x9e\xe7x\xcb\xb0\xd6\x1a\xf7\xfd\xf1\x07\xd3\xeb-\
+\xa6\xef#\xc0\xdfl\x87\xed\xa6\xeb\xa1O\x00\xc59]\
+\xe3\xd8h\xc4\xa8\x94\x02\x1e\xb2\x85\xa9\xb4U~+E\
+\xe2\x12\x00\xafD\xfcV\x19\x1f;\xcf\x13\x90B\xd9\xae\
+\x164\x8cK\x9a\x06z\x9c\x15\x14\x12\x90/\xe6!\xcd\
+\xa5\xcb\x86u\xf7W\x5c\x85\xe2\xab \x92\x89\x7f\x89\xb4\
+\x11;]\xab\x99;\xa0\xc5\x9d\xeb1\x8e\xe2\xd3\x04\xb2\
+K+\xc4\xf8o\xd3b$\xd2~\xffi\xcd\x96\x96&\
+\xadR\xae[\xc2\x9b\x09}\xb5\x04a\xa4\xad\xd7\x03\xc6\
+\x82\xeb\x06\x0c\xd3B\x90\xb7\xb8\x7f\x181\xe2J\xfe\x0b\
+@M\xac8\x19D\x0a_\x00\xd4\xd2:J-\xaa\x9a\
+rC,\x99\x88cj\x1bL\xf7n\x8e\x130KU\
+v\x8d\x933\x8eM\xfc\xe2\xf9'pZ\xad\x7f\xeb1\
+\x83\x0aYy\x0e\x14cA\xe1\xc5\xf9 \xae \x1a\xed\
+\xb9ek@\x9d\xf7\x09Xno\x1c\xd6\xdd/\xe7&\
+\xc0\xc6\xdf\x05X\xe4>\xa8\xfb\xa6\xc2.\xbeQ\x81\x97\
+x\xaaLg\xe5\x1dC\xa6\x0a\x02\xce7\xd7\xed\xd5\xf5\
+db\x0e\x00-\xed\x01\x096`'\x99G%*(\
+\x0f\x94\x87\xf2/\xd67\xa6L\x8a\x1a\x97Xq\x8a \
+\x16\x80\x9c\x80C=?\x09\xb4W\xfb\xdb}s\xbf\xb4\
+\xb0\xf2\x8b\xf2\x03\xd3\x12\xf4\xe6\xcb\x97\xe5\x9b\xf6\xa5\xf3\
+\x1b\xd3\x81\x96\x83\xb8\x15\x93#\x81\xccz\xbe\x9e\x13\xbf\
+\xea\xfa\xec7\xdf\x03\x1c\xd6b\xf4\xf9{\xbb\x0a\x81\x80\
+\x88\xe7x\x846W\xf0\xc0\xae\x17\x0ee=>\xc6\xf7\
+W\x09\xd7e\xb2b\xb0O\x97x;0$\xden\xa4\
+\x8a>\xb1?\x89%\xa6\x8017~\x1f\x22(!\x8f\
+\x05w\xbd\x8e\xfa\x0d\xb1A\xc1\xe2@P\xfd\xdd\xf8\xf5\
+x\x19\x8e\x0b\xd5\x1eUEE\x9eJ.U\x5c-\x01\
+*#>O\x7f\x10\xfe\xa2\xd3\x1e &\x88\xb9`a\
+&\x05\xaa*>!\xb6\xf6\xe7y\xb0\xfdn'\xee\xa2\
+\x12\xff\x1ba\x19x}\xa9%\xc2\xb3\x83\xd3sO\xac\
+\xe9EI!\xbc\xc4L)\x1an\x1b\xd6\xc6a\xb5\x0d\
+3\xfcGX\x17\xb8\xdch\x0ep\x89\xc6\xa8\xf8\x0f7\
+\x0a[\x0e\xc0\x1a\xda@\xb4\x82#\xb3\x90!t\x9e\x93\
+\xfb\x221\x22\xa2\x95*\xe5\x95\x00\xd90\x16\xb0\x1e\xa4\
+\xac\xa8\x95\xe3\xd3\x93m\x9d\x18\xf7\x22\xf0Pq\x854\
+\xba`L\x02\x951b-\xa9\x1a_\x80\xc4\x8b\xb2\xe7\
+\xf5=y0'e\xac\x90\xb5\xec\xf1\xabJ\xe1\x9e3\
+\xa3\xa4\xa6\x19P\x91\x06`\x1c\xb6\xf9\xb5\x960Bn\
+\xef\x17\x96\x01\xd7\xcd\x16\x0d\x85\xaa<\xc7v\x0c\xad\x85\
+[\x84u\xbd\xdd\x81<N\xebq\xe7\xdd&\x8b\xca\xce\
+\x87\xc2:\xf5m\x89\x9c\x03\x00\x95<\xafc<.\xac\
+\xa34\xff\xee\x5c\x99\xdc\x1e\x10\xd6\x89\x0b\xeaUNd\
+Z\xa5\xa4z\xb9s\x1aDi\x18\x18\xb3\x88RE\xa5\
+?\xd5L\x1b\x15\xf3u\x1dE\xcc\xcf9x\x0f\x09\xeb\
+\x12q\xd39\xcc\xab\xe5`\x05\x9e\x98#\xf6;\xc7\xcb\
+\xff\x00\x16h\x05XO\x12\xfeT\xbf\xadJ`&\x0a\
+\xdb\x87\x86u\x07\x90\xaf\xf5xH\xfbVo5Q5\
+\x01\x93\xf5\xbe>P\xed\x0b\xdf\xbb\x1e\x88\xae\xeb%c\
+\xa2\x02i\xaa\x81\xbfO\x8bC\x02\xfe\x86\xb0\x0e\xf8\xe0\
+\xd0\xf93\xe2v\x02j\xef\xcb5\xe5\xf8\x1cc\xe4J\
+\xbc\x0e\x00%!\xd4+\xea\xeff\xe5\xb7T\xfa\xb3\xc2\
+\xb2}xXG-D\x05M\x0d\x8cj\x0dHm\x91\
+J\xbcs\x9dT\xa2\x91\x9a%\x9bGl\x8eiZ%\
+\x99\x80\xed8\xbeY%\xb6*\xb6\xe37\xc2\xba\x844\
+\x01\x8f\x9a\xde\x80\xba\x9b\xcc\x05T\xcb\xe9_g\xa6U\
+j\x80\x14\xe0(\xc1\xde/+L'd\x80ydV\
+\xa8\xceOj\xf7\x83\xe6^\xd5\xfa\xdc\xef\x9d+\xb1(\
+\xa6\xd5\xe3\x99\x89\x9eJb%\x9e*\x0d\xfe\xde\xfd\x93\
+\xb9u\xdb)L\xbdm\xd7\xeb\xab\x12\xa2\x97\xbf\xa3|\
+\xc6\xd4\x838\x8f\xa3\xb7\xba\xc6\x1d\xa6\xf8lM\xcb\xe0\
+\x173\xb0)\xad\x88li\xd1[Zc\xb6\x04\xa2\xfc\
+*\xe0\x93Hn\xc0\x14O\xca\xa9\x0a'.\x00uU\
+\xe2%\x0c/\x0d[\xeew\x89\x97\xdeaN\xb0\x86'\
+\xce-\x00%R\x99\x22\x80\x98=\x98\x15\xd6\x0f\xa0\xc8\
+\xfa\x93`\xebe\x9dN\xe9\x03\xda9\x9d\x15\xb7\xd6\xca\
+u\xear\xee\x0c\xf7\x0a\xeb\xa6\xa8\xa4\xda\xb8\xc0|\xfb\
+\xc6\xed\x9b\x8215<gx\xf6\x10\xeb\xe6\xc9\x9b\xa7\
+l\xa6\xc4i8v\xb2i\x1f\x0e\xf7\x08\x9b\xfc\xf0\xcb\
+\xc2\xa6\xef/>k\xee\x0c/\x09\xeb\x80\x11\xd3f\xb2\
+W\x1d\x00Q\xea\xe6\xf9|\xab\xc5,\xc76n\x1e0\
+\x05\xbc\x0f\x98\xdeo\x08\xb5\xaa.10\x87:\xcf\xb5\
+\x8a\x0b\x8e\x9c\xb5\x7f*p\xcd\xf8\xaa\xce3\x80M2\
+\xc9L\xfb(\xea\xb8xn-\x9a,\x90V)\xb2~\
+$f\xe2\x1e\xaf\xe2:\xf1\x94/\x00\x80\xc4_\xe0\x89\
+a\x94\xad\x18EM\xf7w\xc5]\xc6\xa2a6|b\
+\xb2\x8f'c(\x98;\x0f\x0c\xcb\xf3\xe9\x0f\xa6?\xf3\
+\xa8\xb0\xa5\xf7x{\xab\xd4\x9a\xc9\xf1\xac\x95\xf8H\x04\
+_\x16\xd6ZM\xc2\x16?\xb1w&(\xd7(F\xdf\
+\x1c\xa7]:\x19\x9f*\xcf\xa9\x85S\x89\xb9\xf1^Y\
+\x81\xd6\x1a\x85!\xb9=.\xac\xf5N7`E\xeb[\
+\xf5J\x13\x8d\xcb\xf5R\x95\xe7<w\xa7\xb4k\x06N\
+\xaf\x92\xe7\xe1\x152N\xfd\x97\x9cB\xa2\xf0\xa2\xf5\xe9\
+Na\xdd\xf9\xea|\x04\x08fbV\xf1\xb2\xe7\xb8\xea\
+\x196N\xb7\xa6\x22\x88K\xb4\x00\xe6\xf3\xdb\x5c3\xac\
+\x03\x8a\x13\xf8+?C\xf3\xc0\xe7\xc2\x5cA\xd1&b\
+\xa8b\x8cj\xaeB\xadbN\xfb)\x99g\xf2\x95J\
+\x18s\xfcj1=\x14*\x01c\xcf\x0c\x9b\xd6\xcb\x09\
+a]\x0b\x9es\x00\x13\xc0\x98d\x00\xbc\x84[|+\
+\xbe<'\xe3\x0c\xcc\x11S\x89\x9e\x91=\xf7\x80\x02\xf1\
+!\xd5\xfc,0l\x1f\x12\xd6\xc5G/\x0b\x9b^o\
+\x1e\xd61$\xf8\x01\x09\x22\x8d\x1b\x05\x08\xd7\x99\xc0s\
+\xb5\x90z\x9e\xf2(\xad\xb3\x00E\x00\xccz^\xbd\x9e\
+y\xe7\x8f\xfb\x9e\xfe4\xca\x84Q(\xac<\x8b(\xb9\
+\xa9\x0b\xfc\x0c \xcd:\x13\x9f\xf3W9]\xa7\xe2D\
+\xc0v\x9f\xe7\x1d\xdc\x01\x08\xe20\xeb\x15\xc0\x08\xc0\xd5\
+j\xa1\xa5E|\x05X\x11\xcf\x03\xfa\x13\x18\x17\x9f\x03\
+\xccL-\xa8\x82\x8b\xf1\x97\xf2\x13\xf1!?\xe9>\x89\
+\xff\xb2\x00S\xcf%[\x81\x8b\xa9\xa00I\x03B|\
+\x05\x98\xd7\x9a\x91\xc0?\xa6o\x89\xf7avh\xf9\xd3\
+\x9ahz\x8a\xf8\x92\x9f\xf7w\xf9\xf3|\xc5x\xd9\xd5\
+.\xffjK\x02l\xfe`Q\x8f\x04\x96\x0e\x0aH\x93\
+\x8d\xd0\xab\xca\xee\x9b\x0f\xe4\xb2\x9d\xda}\x7fP\xec\xee\
+\x00\x02\x15t\x07\x88\x84\xd0\x81@\x9c\x86\xc8S\xa4\xe3\
+\xe6\x9a^%\x91\x9d\xebv\x94\x7f\x14\xfeH\xf7\xae\xd9\
+%\xf6\x16\x96\x80\xdat\x00\xd7\xaf\x82\xec\xefP_\xbc\
+F;\x0a\x96\x8ac\xfc\xf7\x1a\x9df@\x10i\xa9\xda\
+\xf6\xd3\x00$\x06\xeb\x83\xcd\xd8\x22\xaa\xc6!\xaetv\
+\xe7\xf8\xee\xd8jX\xf3\x9c\xedc\xb3\x22\xfa\x17\xcbx\
+\xc5\xe1\xe93\xf5M\x85}\x0a\x9f\xe6\x8a\xcbUR\xec\
++\xdfw\xb8X\xd8\xf4z\xce\xf0\xc3!z\xcb_7\
+\xfc\xcd\xf07K\xcf\xe2\xf0[\xc3\x1d\x86)\xf0\x1a\xbe\
+\x10\xb6\x8c1\xda\xf9\xba\xb0\xae\xf2r\x83\xb0\xe9\xf5\xc6\
+a]O\xa29\x9a\xd9\x83^\xe2\x1a\x10z\x88\x97\xb1\
+#?\x09\xebz\xae\xdc\x1f\x15\x07\x95\x12b&\x10U\
+\x15-\x01iV,8\xfc\xa2\xe6K\xd8!\x93ku\
+b\x8eBB$\xf0E\x8d=:+\xf8\x99X\x97Z\
+\xab\x0a+G\xba\x8c\xd7\xb8\xa0\x9a**\xde\xf1)F\
+t\xb7\xb0\xee\x00\x0e\xc9\x90@\xf2Ck\xe3\xad\xdd\x01\
+\x9bb`\x95\x10=y\xae\x10\xc5\x90\xca\x18SYS\
+\x15\xb2BT\xd4g\x89\xf9);Nm\xd7\xf9\xabY\
+\xf9\xb6\xf1\x93\xaa\xac\x07i|W\xd8\x22\xb2S\xbd\xfb\
+Y\xc9\xd4\xc3\xef\xe0+\x00\x90\x88\x89\x1e\xe7\x1c\xbfR\
+\xc0\x87\xf1L?\x0e\xeb\xc6\xb5%\xa3\xa2\x90o\x09\x8c\
+\xebO\x00\x82\x83\xae\xb1\x84z\xbf\x05\x8c\xfc\x8d\xc4R\
+ \xe39`\xea\x00\xf8\xf8\x11\x15\x00=R(\xb0\xe6\
+\xbe\xe6\xc1\xe9\xfel\x1f\x16\xd6\x01\x0e\x90U\xeb\xd4\xdf\
+\xf7{\xc6\xf8Qo\x05\x84\x09\x10\x040T\x8d\x05\xcc\
+\xfc\x0d\xa4:\x0f\xc4\xaa\xd0\xe6\xba\xdb\xbc6\xac\xeb\x91\
+\x14\x18J\x00Q\xe5%hYa\x82\x5c\x97\x0a4\x91\
+1\x00\x80\x8a\xb5\xb16\xe6\x14\x9bn\xa0'\xce\xdf\x01\
+\x0c\x1bc\xc4?\xa6($\x0a\xee\xb8;\xacS36\
+\x1eJ%@\xe2\xff\xbc\xb0\xa5%\xa4(\x95\x12\x05\x95\
+-\xc0\xceA3C\xca\xe7\x91\x00\x15p\x81R\x9b\xa2\
+]D'w\xde!\xac\xf37\xd4\xaf\x93\xba:\xdcw\
+\x9e\x07\xbfy[\xcey\xa7YB\x8b\xe2\x1b\xf9\xfc\xb5\
+:<1\xc7\x02jm\xd2RvJ\xae\xd7\xcb\xe5s\
+\xff\xab\xb9E\xa8\xc4\x08\x9f1\xdd\xa7g,Z\x07\xdb\
+\x07o\x1f\x14\x1a\x01\x9b\xe3g\xd5\xfcR\x1d\xffh\x06\
+\xc6q^\x9d\xb9TZ\xaa\x12\x88\x91g=E\x9a~\
+\xfc\xbc>\x1bp\xac5I\xa0&\xa1!\x92(at\
+_\x05\xbeD\xbePH\x05\x9cD\x8ar\x0aH\xcd1\
+wN\x06\x5c\xf0\x9cd\x06\xde\xaa\xa3\x08\x9b\xb6\x90=\
+\xcb*V\x18G\x054e\xc0;\xbc2l\x01\xc2\xc3\
+\xeb\xb5\xf1\xbc\xe9\x9f=\x97\xba\xdf*R\x98\x03\xc6\x0d\
+&\x15uz\x9as+Z~\xfe\xe16a\x0bc\xa0\
+Z\xe2T\xb2\xacs\xbd\xbew\x9d\xae\xee\xae\x9d*{\
+\xc0\xd0\xef\xe9\x02\xc6/\x84-\x89\x02\x15\xea\xd2\xc2!\
+\x0a\xb63\xac\x9b\x1b\x9d*\xdeD\x0ck\x1ex&,\
+\x95\x80\x00\x90\xf4tJ|\xfe6[\x9d\xb2W\x1dS\
+\xa2\xa8\xca\xfcM^_\x89n\xe9@D\xb1\x06\xec\xf1\
+\xaf\xe2\x13\xf1\x9ds\x12UU\xc5\x8e\xbfZ\x8b\xcc\xad\
+{\xf8\xc5yz\xb8%`96n=6\xb0\xfc\x8d\
+\xdf\x03\xd4\x13\xeb<zx\xf8\xf0\xf0\x96p>\xae\x05\
+\xc6\x09\xa8\xb5\x96\xb5\xe8\xe5\x7fkX\xc7DK\x86\xc9\
+v\xd7v\x8f&2{\xf9\xb0\x8e\xc9\xe7<\xc8\xef\xeb\
+\xdc\xb5\x7f\x9c/\x18\x81\x00o*\xe2\xae\x1b\xc0\xe3}\
+\xb3b\xbc\xe3y\xb3_*?GL\xee\x88\xac|\x03\
+F\xb22\xa9u\xb2\xce/\x09F\xb6F\x12\xf7*f\
+\xa1\x0a\xfc\xfd3\xc1s_\xfd\xbb\x04\x14\xb0\x8a\xdaO\
+\xbbFK\x9d\xe7\xa9\xb2N\xdc3[\x0fjz\x06\xff\
+I\xd4N>`*K&\xd4Z#$z%\x06\xf7\
+\xed\xb0E4\xad>\xbfVH\xd7e\xfd8oP\xd1\
+\xb5\xd6\xa4\xb6KQ\xb2\xf3\xbe+\xc8\xd4X\xbf;$\
+\x03L+\xadV\xa4L\x0c\x0b\x08M\xb1\xeb\x02\x1e\xc4\
+\x8f\x80s\xe7!\x91\xb7l\x01\xab\x96\x10\xeb8\xaf\xaf\
+46\xc4\xb3\xf7\xcf\x84\x12#\xf2\x8aa\x9d(\xae\xc4\
+YK\x06F\xa6y\xf0)N[-\x8cZ\xaf\xf9\x09\
+Z0\xc9h\xa9\x84]\x8b\x9cJ:\x8d$\xe2\x87\x12\
+\x7f\x80\x86D\xd4>%*\xe8\xbc\xf6\xf7\xf9\x0b\xcc!\
+\xad\x8b\x0a-\x0a\xb0\x12L\xd4x\x80\x13\x06\x81\xf3\xfe\
+\xac,\xccY/Y`+\x80d=\x0dD^%\x1e\
+\xf7\xef\x80\x85\xb5\xf8\xa8\x82\x82\xe9\x04>\x87\xdf\x97g\
+\xdaw\xe2(\x8c(\x05&\xf1\x80\x82%\xff\x81\x81 \
+\x9e\xcc\xd6\xbc*\x08`\xa2\xb8Ny\x00@B!\xc8\
+>L\xa6m1(\xc57\x9e{2[\xabp\x00\xf8\
+\xa5\xf1A\x94Q\x8b\x84\xdf\x03\xf8\xc8O\xc4\xeb\xff\x19\
+\xb6\xe4Y\xbb\xda\x07\xbaZ\xd7\xb3o\x0c\x19\x0a\x8cq\
+lk\x11\xbf\xbe\xa7\xbf\x1f\xfb\x22AF)\xec+\xe6\
+\xfd\xbc{\x0f\x1a\x95Q\x22\x1f\xb7\xfb\xa0n\xc3\x87\x03\
+\xbc\x5c^\xd7\xfe\x19\xa8_\xb5K\xcc\x1d\x1c\x10\x22\x00\
+\x80^\xd9\xa0\xc2\xef\xd3\xf5zDE\xea\x9ct|?\
+\x9d\x03\x95v\xdd\xd32\xde\xa0 ]=_\xaf\xda\xbd\
+_t\xb6\xfcJ\xc7\x04pP\x12\x9d\xb0\x10%\xa0\x09\
+H\xb4\xb9\xd2O\xcc\x80h\xef\xa57\x13\xd5\xbc\xc6\xd9\
+E/\xec%\x92:zJS/\x9e{d_0S\
+\xf7\xf4\xaa\x0fo\x0dk\x0ee\xa6&]6\x11\xb0D\
+\xa6#\xdd\x8f\x84\x7fxZ\xd8\x14\x10\x7f0\xac\x89\x0f\
+5\xca\x96\x84\x9e\x9a\xee\xf0\xb0\xb0\xe9\xf5\xeea\xd3\xeb\
+\xeb\xc3\xa6\xd7/\x0d_\x1e\xbe\xd4\x18\x08\xb7\x0b\x06B\
+U@\xa22rl\xe7XQN\xf5\x0cQ9G\xdd\
+\xd5:\xe2\xfe\xb8oz49\x92\xffk|\xd1\xba\xc5\
+DB\xb6rtu\xa0\xaczX\x8b*\xec\xa0\xb6\x11\
+o\x9a\x8e\x0c2)\x81\xe4\xc0\xbc\x1f*\x99\x8d\xf5\xb9\
+D\x06\xf5\xd2a\x1aH\x1co:\x03\x1f\x0dX8\xba\
+\x9b\x02\xa1g\xc9\xfbf`VsM\xf3~\x8c\xc7\x8c\
+\x0f\x1f\x8f\xc9\xf7\xfft2'\x1e\xd7\xf5\x06E\x9d)\
+*:{\xc4<\x8e6.\xe8\xa0\xedA\x1d\x85>\x03\
+\xb9:\xb0!\x84\xe6\x98\x12eC\xcd\xf7\xb90\x128\
+\xf8< \x8a\xf9\xe1\xc0\xcb@\xab\x10\xcc\xab\x86u\x07\
+>G\x93\x95\xfeJ\x5c\xf2\xe0\xab\xcfk\x0e\xb3\xf9\xd5\
+>_>\x87\x8d\xca\x8a\xe7%\xb1\xe7OT\xac\x89\xce\
+\xa4:\x7f\x01}\xbe\xf40\xa3\xda\xa3\x9e\x09\xf8\x00M\
+\xd4[\xd3\xb1\xd7\xd8\xb9\x5cOU\xc9\x90\xa8\xd2\x1e\x00\
+\x04\xb8\x8f\xeb\xebL\xe6\x0b\x80\xae\xd6\xafu.A5\
+\xa5#+\xc5\x15\xb0\x9c\x13\xd6\x05l\x1c;\xca\xa5\xfd\
+\xa7\xd5$\xc7\x1c\x16\x82\x9c\x01r\xa4\xa5-1M\xb1\
+\xd0\x02\xea\x5cw\xbe\x1f$\xdaAQSE\x04\xf6z\
+tS#\x00\xf0\xb7\xdd/\xac\xeb]E\xe1\x03LY\
+\x17\xc9\xf4\xd8\xfd\x92\xb0\xc9\xaf<1\xac\x0btU\x8a\
+\x04Hy\x80WK\x82)\x04*PZ\x1d2@\xa7\
+:\xcdOU\x05\xd0\x14\x87\x8f\xe4\xc1\xed\xbcR9&\
+\x9e\xf4\xf9\xac\x18\xe4\xdc\xe8\xed\xe7\x12\xa1\xa7r/ \
+\xf0\xf9?6\x8b{6 \xe7\x98\xae\x85Ae<\xa9\
+\xac\x02\xd3\xf15\xe3I\xe3k\x96\x8at\xb5&\xe4\x98\
+\xca)l\x9f\xa7\x01dO{\xb5\xe0\xa1\xc4Z\x7f\x12\
+\xbfC\xc2:\x0a\xaa\x0a\x8c@G/\xba}@\x05Z\
+\xc0\xeb}\xbe\x1b\xd6\x8d7\x8b\xc0\xec\xb7\x93\x81\xf1\xf4\
+\xec\x05\xfd\x8f%\x10i\xa2V\xcfY\x00\xde\xf1\xe0\xb0\
+\xa5\x82\xbb\xf3ca\xd3\xebC\xc2\x16\x00\xa24\x0f\x92\
+\xaa\xbc\xf9dX\xb7?\xb4\x1e%0]\x80\xd3\xbea\
+\xdd\xfa3\xc5\x01U\xfaR\x9b\xbd6{-\xad\x16\xad\
+W\xf3\x07K|1^)\xac\x03F|\xee\x04\xdc\x8c\
+\xdd\x1b~\x106\xbd^;\xac\xfb\xf9\x04\x0c\x00\x14\xc3\
+\x89a\x0b\x03`8 \xacK\xd4Q\x8c\xd3\xcfn\x9e\
+=\xad\x87g/\x15\xd0\xaa\xf8|%{\x85\xff&\x13\
+7\xad#D\xd7\x0e\x9a\xfd{\x05\x88)~7\xc5\x1c\
+?hq\xc7\x15\xb3u\x91vP\x8a<\xd6\x18E\x9a\
+2\x18f\xd6/\x84\x00\xa0\x0a r>\xa1\xa6ZG\
+\x128LI\xfe-\x99yz\x93\xab\xd5\x0e\xb3\x0b\xd0\
+\x1d*\xe4\x0f\xec\x02b\xfb\x0fC\xf2V\x8dL\xbfc\
+\xf3\xcb\x9b\xc6pi\x09\xec\xbd\xdb\xff\x9f\xc7\xca\xbd`\
+\xfb\xc2\xedtN\x8c\xaf\xcf1\xd4*\xee4=2\xee\
+\xd8\xee\xbf\xbdrhWm\x8e\x0fk=\xfb\x93-\x80\
+v1\xd8\xb2b7\xfeWXW\xb1\xce\xf5@\xf4\xb2\
+\xc4#\x13\xa8\xad\xd6%\xad~\x01\x87M\xcfu<=\
+l\xfa;\xfb\x84\xb5\xf3\xbe\xf5BWo\xba\xd6,\x9a\
+C\x12\x0f\xf1\x22Q\xc0\x14\x8b\xab\xd6\x83\x8c\x0b\xb6\xb7\
+\x0dkb`\x8d\x91P\x14\x7f\xf1\xe3\x9b\xb2%a=\
+\x86m\xcd\x88\xcb\xcae\xb5d\xd1\x02 R\x9c\x05\x87\
+\x9a~`<\xa9q\xcf\x00\x81\x9c\xaeP\x89\x97\xb1l\
+\x09\xe8K\xfcJ\xc4\x10\x95\x9b\xff\xe2\xd7\x00\xd3y\xfe\
+V+[\xae\xcfj\x81\x92\xf0\xd1\x5c\xa1z\x0f\xa8\xcd\
+\xa9\x02\x05t(\xd0\xfcu\xb6Z]>\x0bUD\xf7\
+\x00\x9e\xc90\xc4\x08\xb4oJ\xe4O\xc2\xfe\xc7\xcd\x0a\
+h\xab\xd6\x9a\xf4c\xa5\xf1B\xf3F\x5c\xe8\xfe\x03 \
+Ss\xa9\xf6\x978\xcc\xf5\xe69\xb9\xb9DX\x17\xcf\
+\x00\xe0\x14\x12\xc4\xd1\x0b3\xf6\x82c\x0d1\x07\xc4\xd9\
+*\xf5\xfc\x0e\xad\x00\x85\x1a\xd7\xe9\x9c\xd0\xe3\x0f(s\
+]\xcew\xf1\xa4\xc4\x1f\x80\x83\xc2\xaer\x0fP!\xd6\
+\xf7\xc6Y\xa3j\xca\xbd\xe6x\xdf\xdfK&[\xdd?\
+\xcc#\x85\x19\x1aL\xc6\xd0\x9a\x8e`\x9d\x02@\x001\
+\x80\x11\x00\xcfZ$\xd2x\xc5\x5cOUx\xf1\xff\x9f\
+6\x8bg_HL\xddy\xe3>\x8aW\x007\x17\xcf\
+\xb8\xfc\x01a\x9d\xff\x94\xc7`\x0ax\xae\xa6C`D\
+\xdc9\xaccL\x9b\x82\xa6\xa5\xc1\xf9\xe2\x9c7\x8d\xcc\
+z\xc2\xbcP\xf9\xcfBL\xb5\x10\xc8g2\x1f\xda\xa5\
+\x22\xdf*sWn\x222\x93u\xbd\xa3\x90\x12\xe3\xf4\
+z\xb5\xfe\xbe\xc7\xddB,u\x81\x0cpU\xc82\xe0\
+.\x11\x88\xa4 4\xfc\xe9\xc7\x0be\xbeU\xd8\x0e\xce\
+\x0a\xdf\x01\x9d\xe3\xea\xd5\xf9\xbb\xf1\x13%\xaa\xe5\xfd#\
+q\xb8v\x87\xe4\xc4\xb2\xfc\xf5\xe5\xfa\x1b\x92wX\xa7\
+F\x1b\xb8\xcf\xbe\xb9\xc1\x0e\xe9Z\x19T\x18i\x0e\xec\
+\xdf\x06/-*\xfd\x116\x7fa5\xde\xa4ka(\
+\x046p\x963\x16\x80\xa3\x89\xb9=i\x19\xafT\x8e\
+\xf26\xf3\xc1ILk8$\xac!\xe1\x93-\x0ei\
+\x0a\xcf~\xba\xf9\xe9\xf4\xef\xb7\x98)\xfb\xb5\xd0\xa9\xf3\
+\x1a\x9f\x94\xbd\x8a\xc3wR+ \x0f\xbe\xe1\xd6a\xd3\
+e\x9e\x1a6}?\x86M\xff\xff\xdf\xc3\x16\xc0\xa0\xfe\
+\xfe7\xc3\x96\x80(:][\xaf\xab\xca\xae\xe7\x82z\
+\x88\x92\x9a\x15\xecJ\xc0\x13\xb9\xaa\xc4.)\xf9\xa5\xa2\
+\xcf\xa1K\x90\xf4b\xa3:K\x80<o*\xe2\x18\x08\
+Ie\xd2;\x5c\x22f\xa82~\x0feg\x1d\xc88\
+8\x00RD]\xf25\xc2\x8f\x08@\xa8\xf5\x96h\x0d\
+`\x83\x83&\x1aw\xf3\x04(T^0\x0b\x92B\xde\
+z\x16\xcf\xce\xa9\x1b\x1f\xcf\xfd\xf6\xc0L\x9c\xa6\x04g\
+\xf7c'{\x5c\x1e|!ft\xf2d\xa1r\xfc\xb6\
+\xf1\x1f\xc7\xe9\x00\x19\x8f\x1a\x8f\x1c\x8f\x5c(J\xdb'\
+\x86u\x14{@\x1eJ\x145\xfb\x0c\x0c\x1c\xe0\xe6\xa5\
+\xea\x8d.1I\x95fc\x9fhBd #\x91\xdb\
+\x1e\x1a\xd6\xa9\xfb\xaa$\x99\x07\xae5\xc0\xc1D\x84E\
+\x8f\x94\x83\x9d#%\x22#\xe0\xb4\x0f!\xcd\x80 \xf7\
+\x9b\xba\xbdu%`:3\xac\xf3?\x0e\x10\xc0\xa4\x1e\
+\x7f\xd4\xd95\x22.\xe0'\xca\x85\x9a\x9d\x9f\xafZ0\
+\x8cwY\xf5\xf6W\x85\xc6\xfd\xb0?T\x5c=\x0fj\
+\xfc\xa9\xf2ZH<*y\x8e\x07\xac\x83\xc8\xfdQ\x91\
+N\xd5\xea\xa2\xdeK\x98P\xd7r\xeel1h\x04X\
+\x0eF\xf7C@\x9e\x07ii\x1ax\xae\x02d\x80@\
+\xb66\x04\xcf(\x98F\xa8\xe7\xd6I\x89V:\xf8\x1c\
+\xd0y \xf2g\xe3e\xc3&\xbf\xf3\x9ba\xdd~'\
+v\x97\x14\xf1j\x05\x118g\xa2\xb2}~\xd8\xf4z\
+VX\xfb\xbc\xad\x82V\x94\xff\x04\x16\xc6\x8f\x84-\xd3\
+4\x8ai\x94\xc0\xdd\xf6\xb4\x14\xab|\x7f\x02#\xa8\x8a\
+\xa8\x88\xdf\x08\xeb*x\xc4\x85\xfe!E\x90\x12\x08\x8a\
+\xa9\xe0Ml\xcf8;=\xddy\xf0\x0f\xa7\x0f\xff2\
+\x9c\xbe\x88bU\x82\x90\xcfy{\xabY\xfc\xb3y\xc7\
+\x1b%\x80\xfc\xe4\xae\x95\x05\x95\xd1\xf9\xa2\xb7\x1c\xc59\
+\x99^\xd5\x1a!\xb0\xb9\xfe\x05\x13\x92\x12\xf3[\xf9\xbd\
+\x96\x80]\xb3\xab|\x03\xc2\x22\x5c\x9c>\xff\xf8\xa9\xf1\
+\xd3\xe3\xa7\x16\xaa\xb3\xe7^\xe3E\x89\x8f\x99~\x92\xeb\
+}\xe7\x0b\xc3\xba\x8a\x92\xcf\x0bh\x22ji<\xe0?\
+\xce\x0c\x8d\xfa\xdc\x18(Z\xb1\xae\x156\xdd\xcf\x07\x84\
+-\xe2m5m$[,\x86\xc7\x87\xb5\xe9(\x87\xb5\
+\xca\xb9\x16\x1a\x94\xfd\xa4D\x97\x18\xdf-&\x9b\xf6\xc9\
+\xf0\xea\xb0\xa5b\x0fh\x1an\x12\xd61\xeer\xfc\xa3\
+D\x13PS\x1a+\xe9\x1f\x1b5\xfdV\x1d\xe0tz\
+\xd8\xe2\xc7Z\xeb\xc1<\x1e\xea\xb8\xcdq]\x22G\xc5\
+<\x99\x09\xed\xfd\x0ei\xe7\xce<n\xf8J\xc90L\
+\xad\x09Tbj\xe1\x12\xb0bh\x11\x17\x94x\x0a\xa8\
+\x93iQ\x95d\xbd\xeb\x12\x0e\xe7& [\x81\x05\x90\
+\x03\x18\xf9\xecd\xff\xbe\x00\x98\xe3\xc3';\xba\x01\x19\
+m\xae\xfd\x94\x94|\xac%&\xe27\xe3\xdf\xb2 \xd2\
+\x80\x94+\xe7x\xb5\xa0\xf8_e\xb2\xe9\xe7\xc6\xaf\x8c\
+_\x1e\xbf\xd2\x9ds\x98g\xbf\x1e\xd6z\xcb\x9f\xd7z\
+\xcb\xb5\xac}8l\x09\x98K\xb4\xd39\x821C\xa3\
+$+x\xfc\xd6\xf0\x83\x1co\xf9\xd3\x19\xf8\xdb\xec\xb1\
+\xd9\xd5\xc6\x1e\x13C\x8d\xa1\x93\xef\x98~\xef\xe7a\x1d\
+\xa0\xed\xdc\xd5\xc2h\x1cY\x16\x0cT\x96\xeb\xf9:\xaf\
+$L\xee/&\x80\xfd\x0a\xe8K\x91\xca\x02^sz\
+Lc\x8e\xfeaW\xb8\x93\x10*l\xe8\x1d\xe6\xf7<\
+\x7f\x1aO\x09D\x97\x96\xc0\xd3\xc3:\x11=\x09\x9f\xf3\
+\xf6\xce\xf3t \x80\xf4\x85D\xf2\xb2\xf5\xa4\x0aE\xc4\
+h}\x0e\xe3W\xcd3\xcf\x96\x8c\xf2\x9b\xe2cj\xea\
+\x1854*\x8c_L\x0d\x97b\xd2bN>{\x15\
+\xff\xc9c\x00\xb7\xbf\x1e\xd6\x0a(\xf3\xba\xcc\x16\xb4\xa2\
+\x82\x03\x96\xc5A\x0a \x12N-\x97\xa9J\x0f\x007\
+\xb5\x09\xa3\x07@S\xc0\x0e\x86\x04`\xef/\xc3\xbaV\
+\xceu\xa1U<!\x9f\x02\x14\x00\xf0\xe4\x1f\xb4%h\
+e)\xa8\x000\x8d\x19\xa6i \xa1\xa7\xd9c\xfc\xa5\
+x\xd8s\xc0\x94\xe4\x170a\xf4\xf8\x13\x01T\x88\xd5\
+\xfa\x0b@xyX\xc7\xe0\xf2{\x80\x10\xcc\x02\x9f\x93\
+_\xc04Y\xff}q\xa4<T\xe2\xbb\x9eza\x9f\
+R\xed'\xe6\xa8bN\x8c\xd89\x93~\xa1\x80\x9d,\
+\xd4\x16\x00\xa2\xf0\xa2p\x0dPX\x0a\x7fsA\x0a\xf0\
+\x8fQ\x90\xeb\xb3\xc4\xb0i\xff\xac4\x00\x88\xb2W|\
+\x0b\xe8\x06\x84d\xbe\xb4=6\xack-\xd0\x8a\x00`\
+\xca\x96\xde\x02\x02\xf8o\xcc\x1b\xad\x0d\x09\x80\xec\xaa\x83\
+\xf33a\x99h\x9c\xdc9\xa8\x9e\x92\x7f\xe9\xee\xfb\xbe\
+\xb7~WG\xe5\x94\xd0\x07\xfeu\xf6E\xf4\xf2\xab\xcc\
+\x9a7\xaf\x17\x88\xc3R\x81\x94\x00P\xef\x87P_\xb9\
+\x0dpY\x02\xfb\xc0\x87\xae\xbc \xc7\xcd}^\xbf\x0b\
+\x1cbH\xc3\xf5\xf2\x01\xef\xdd\xa9sF@#A\xb8\
+|\xf7\xf7\xf4\xf2\x1b\x1b\xe8\xe0#.f\xec\x15\xd1\x0b\
+\x07J\x02\x16\xed@\xb9l&R\x11\xd8\x1f:\xd9!\
+\x99H~l\xa1\x88\x15\x92\x9f\x14\x92\xcd\xbb\xe6\x80l\
+8!\xac\x89\x11\x1d\x13bDM\x1c\xe8\xc7\xdd\xf8\x16\
+\xe2Gz\xfc\x1c((\x96\xa9\xb6\x5c\x15\xf5\x9b'\xd5\
+\xc6\xdc\xf9w\x87M\xaf{\x86M\xaf\x0f\x0d[\x80\x80\
+\x9d\xf7\x0c\x9b\xbe?c\xf8\xb7\xe1\x8cED\x89\xda>\
+\xc4\xd0\x81S\x0ei=/\xd8z\xb0NPH=7\
+\x89\x1dG\xe7}\xf4\xceX\xc0\xd6\xdb\xaf\xe7\x86\xd8'\
+\x1d\x94\x7f\xb7\xae\x04\xb2\x1c\x89\xbfk\xbd\xe9\x9d\x92H\
+p$\x1f\xc9\x04?+\x87\xc64\x11\xbb)\x912\x81\
+=*\xd1^+\x8a\xe4\xbdg\xca\xd9\xb4\xd9\xe6\xcf\x0d\
+y\xe50T\xba\xb3\xc5\xa6\x0d#|SN\xdb\xb8\xd2\
+2.\xcf\xff\x1f_<\xd9\x8b\xda\xf8\xbe\x87\x8d\x0f\xcb\
+\xf9\xe2\x1fL\xe0`\xda\xf0\xe3\xd9a\x0b\xa2\xba}d\
+X'f\x02\x81\xcc\xc4\xa4\xa6\x06\xfc,l\xe95\xaa\
+\xe7\x82Rv`\xd82e\xc1\xefa\x18l\x7f)\xac\
+\xab\x00\xa0@q\xbc\xfc\x86@\x1f0\xe8~\xa3$\xa1\
+\x0e\xfa\x02\x04@|\x1d\x04\x0e\x16\x096\xc4?\xd7s\
+!\xa3+\x11\x98\xa2\xecA\xca3\x10*\xaa#\xc7\x0d\
+\xc82\x0e\x90\xb8\x93\xb1<\x80#\x81\xb2y\xed\xee\x1f\
+-\x0e\x09\x99\xde<@\x96\x03.\x0fjj\xcf\x95`\
+\xa5\x88\x97\xefk\x1fd\xef{\x89\xe3Q]Wq\xd0\
+\x8a\x95\x89\xb0\xfd\xa9\x12S\x07\x1f\x86\x82y\xd9\xc6\xd8\
+\xe9\xb5E\x85t@\xf0g\xc6\xee\x11[\xf2\x5cR\x9d\
+\xbez\x9f\x13\xd8\xa3\xee\xbe\xfb\xaf\xc2\xbai\x1b\x90\x7f\
+Tq\xcfQ\x85?)\xe6*q;?\x11\xb6\x88\x87\
+\x16\xe0\xe1 \x04\xb89@M\x83p\xd0-\xe2\xa2m\
+\xdf\x0dg\xce\xea\xf4S:\xd4\xc4Q\xa7\xb0hnq\
+qPz\xffw%3\x06\xa2\xfe\xa9\x9cZ\x81A\xb1\
+\xea\xed\xafD\xeb\xa9I\x95M\xc4\xbd\x01\x09\xa7u\x09\
++\xbf\x91\x89\xfappX\xee\xcf\xdf\xeb\x12-\x22\x96\
+D\x85RK\xf3B\x1a\x0f\xfc\x1a\xe0Ue\x07uP\
+/?@-+\xf8\xad7\xff\xaf\xbaq\x95\x02T\x80\
+\x8b\x04 \xc6\x19>\xa8\x9bv\xa3\x22\x9f\x80\xca\xce\xef\
+\xed\xfc\xee\xce\xefv\xd4E\xf1\xc3AaK+\xc8\xee\
+?\x0b[*\xbe\x00\xda\x9d\x9f\x0d[\x122-$D\
+\xea\xf4\xec\x97X\x16\x86J\x8a\xef\xb6\xc4\xff\xda\x0b\x00\
+S\x9a6\xb9N\x87\xd7\x86-\x09\xd8x\xeb\xb0\x8eq\
+\x85\xaa\xa9%l\x8f\xb0\xe9uwN;\x89\xfd}\x9f\
+&\xea8\xd92\xbeOKA\xf5\x1e'0T\xad\x08\
+A\xfd\x1f\xba);\xc9\x5cAm\xad\x1e\xcd\x13\xb3U\
+Bb\xc4\xff\xfcA\xfa\x97\xe7\xa5\xba<`'\xc7g\
+V\x05\xf2}a\xcd\x7f\xceS!\x92\x1a\x5c\x80F\xb6\
+\xccT\x02\x15\x9a\x09\xdf[\xbe/`\xdb>\xb2o\xb2\
+\xe7\xbe\x18@\x19\xa7\xd4y\xae\xb5\xcc\xbck\xfe\x1a@\
+A\xd3 E\xc7J\xfc\x90\xdf\x0bj\xf4\xfd\xdb\xf9\xf9\
+\xf5\x96xh\x15\x89\xb1\x89\xe7w\xe2\xc7\x09`\xa1V\
+c4\xb5\xde\xe3S\xbb\xb1\x7fT\xf1\x01\x1c\xef\xda\xbe\
+\xb31\xdeve<\xfa\xd4le\x89\x04\xfe\xa7\x8d)\
+uR\xd3\x10\xd9\xb5\xdd\xb9\xdd\xd9\x80\xc1y\x9aR\x16\
+`\xc6\xff\x0d[D\x9f7\xc7\xcf\x09\xf0\xf0\xac\xc9\x9e\
+\xdd%\xd0D\xb9^1%\xae\xafh@\xf3\xb7\x02h\
+\xde^=\xac\x0b\xf0\x8f\xceD\x0b0\x87\x11\xa9\xd0\xa1\
+\xb0e\xde{\x02\xd1\xe2\x10\x09\xdf\xf0Ka\x19G\x1e\
+\xdaQ\xf6\xa9\xb7\xa3\xe2k\xf5\xd0\xd3\x8d!C$\x10\
+\x93O\xe2/><'5f\x88\xfb%\x83\xa4\xe6\x8b\
+kEK\x11\xb5\x1a\x97\x9a\x89s\x9d\xfb\xfc]V\xae\
+K\xfb$E2\xeb\xbcL\xc0|\xb8U\xd8\x02|l\
+o6\xf7\xbe\xd7~\x22\x22\xc8\x9f\xa94Kt\x15\x94\
+\xac3\xf1;\x11\xbf\xd7\xa7H\x1c?\x99q@}\xbe\
+\x14um@Z\xc4%\xafm\xb6$\xd6\x0a\x024|\
+\xf8i\xcf\x8f_\xe6\xb7\x01\xdc\xb4\x9f\x00\x22\x12\xb5L\
+\x18\x8by\x91\xcc/@fQ\xca\xfd}q\xa6\xe7\xe5\
+{L?\xf7\x1d\x83\xe1\xc5a\x1d\xa3\x02\xb0\x9f\x85\xb2\
+*d`\x80\xfckX\x07\xb4\xab\xecKx\xb5\xd4\xba\
+\xefkU\x7f\x14\xff\x07\x84u\xd7#!\x05d\xd1X\
+\xc2\xe4\x94Oy.^\xd7c\x02\x15\xe8\xe4\x85\xfc\x94\
+<C\x85\x1b\x83\xd3\xbf\xaf\xb4\xdc\xea\xf7\xc5o\x0a)\
+\xfc\x9f\xeb:o5\xd5\xcb4\xb1,\xf4\x14\xa0\xe2\x5c\
+\xd2K\x9f@d1W1\xd9\x00-\xe2\x16\x8cK\xe3\
+\xbc\x8d\xbdT\xd84\xdeRK\xaa\xf5\xa6\x97\x1f\x83\xdd\
+\x18X\x0cV\x05&\x9f\xd7\xb4\x18\x7f\x0f\x13%\xe3\xd0\
+\x9a\x9e\x92\xe7\xc9\xae\xf1\xd8\xc9\xa6Dn\xfcRXw\
+\xf0H\xdc\xf5\xf2\xa3jEx\xb8\xefE\xa8/\xba\x10\
+\xbd\xf1)J\xd4\xc2\xc0\xef\xe4\xf7\xe7w\x88&Q\x22\
+\x94\xa0\xcb\xb7\x09\xc2KBBK@@\x9ac\xf8.\
+\x94\xf8\x07~\xbb_n\xd8\x03\xba\x05fAa\x02\x08\
+\x9c\x5c\xa7V\x05-\x09\xb1L\xaf\xddQ\xb6Q7\xf4\
+~\xc4\xc1v\x8bn|\x9b^\x1c\x00\x85\x0a\xa3\xb1L\
+I5n\x09\xc7\x99Y\x99;>\x91\xbe\xd7w\x88\xe0\
+O\xe7\x8a~Q\xf8\xa8\xf5\xe7\xfc\x5c\xa2\x14%\x86D\
+u>{\xa3\x04\xb85w>+\xe0\xc3\x1f\x0d\x8f\x1b\
+\x1e\xb7P[\x877\x84u\xe3\x99r\xec\xc8\xcec\xc2\
+\xa6\xff\x7f\xa9\xb0\xe9\xf5\x9f\xc3\x9a*\xf2\x17C\x15\x19\
+2Z\xe2-\x02`\xf34\xb3\xb7\x91\xa3\xa2\xba[H\
+\x98\xc4|\xed\xc8 r\x10\xddLtT.\xabr%\
+\xf0\x05\x00qH\x1c\xc0j\xc1\xebm.\xb1\x1f\xc8`\
+V\xf0\x8a\xca\xfd\xbe\x14\x1b|\xe6<\xfe\xae\x02b\x09\
+\x85\x0a\xa9D\xdeW\xcf\x88\xd9\xb3s\x1c_J\xe0\x02\
+\x80\x11a\xf6W;d\x15\xc2x\xe9\xb0\xce1f\x0f\
+b\xa9\xe9\xa78\xcc\x14\x8e\x9c\x1b\x01\xc9\xeeg\x85%\
+`\xf0\xc6\x05\xa1\xa4\x82:\x9e\x1a\xb6 zz\xc1\xab\
+\xb7,\x11C\x15\xf1\xa2\xf0\x12IR\x19\xd2\x83\xa8\xe2\
+\x0f\xe9\xceu]c\xa4\xa8\xf8: i$\xa8,x\
+\x1f\xff\xee\xb9;8\x00\x22\xf6\x97\x04\x15%7\x03\xeb\
+BP9j\x95y\xeb\x00\xd0#1\x05(\x09X\xfd\
+\xfc\x22\xda\xd3\xfe\x9d\xc6G\xcd]\xe5H=\x0fb\x7f\
+\xfe={*\x0b\x90\xe2\xd0%^\xfc\x18&\x00\xe6\x0a\
+\xd1$\x94k\xcf\x1fpHLS\x85\x01`\xa9\xb5\x80\
+\x1f\x91H\xe7A\x8b\x12\xb6\xf9\xfb\xb0N\x8c\x0aPB\
+D\x06\xa0\xa0\x07S\x05\xc0~B\xc1\xd4#\xee\xef\x12\
+\xbb\x02(`\xe8|4\x0f$\xfbC`\x98cJ\x8b\
+R\x98\xbd\x8cE9C\x89\xb7\xbf<\xa7\xdc_\xb5\x1e\
+S\x5c\x10\xc0\x84\xc9T\xfbM\xe0k\xfcg\x8aD\xd5\
+8Q\xf77+X\x15\xc0\xbe%\xa7\x0e\x18[(\x01\
+6\x9f\x1c\xa0\x99\xa2s\xd3!<\xf7\xfe\xa5\xdatQ\
+\xef\xad\x0f\xcfK\xcb\xcc7\xd3\x9f\x9d\x9c\x01$\x8d\x19\
+\xada\x02,S\x13\xf29\xd7\xd8\xdd3\xa6\xbbzF\
+w\xeeE\xa7\xe8\xd1\xed<xk\xa3\xda\xd2>\xc8\xca\
+x\xad\x0b\xd4k\xcc\x17\xe7\xb6J\x9a\xe9\x06\x09\x94\xa1\
+\xf6\x17\xb0\xa2\xe2\x9f\x89\xbd\xf1j\xad\xd1\xe3\x01]`\
+\x85\xb2mL\x1fj~\x02\xc3%:\xa6\x179\xbf\xdf\
+\xbdgXGE\xd6S\x09\x08I\x8d\x19\x0c\x8d\xe1\xfc\
+\xb0\xe9u\xbf\xb0n=E\xc2\xf7\xa8\xac\x94|ca\
+\x00\xe8\xbd\x1fo\x166}\x7f\xc5\xb0\xe9\xfbs\xc2\x16\
+`Ge\xde\xd8\xc3\x96@\xbf\x7f\xa1\xac\x0fO\x0a[\
+\xe6[7f\xd7+R\xd5\xff\x7f\xbb)\x07\x99x\x03\
+\xb4\x86\x0fO6\x9d+\xc3/\xc2r\xbf_'\xc7M\
+\xc59v\xd9\xb0E\x13\xa6\x9e\xc3\x9a\xe1 \x816\xde\
++\xf7\xe1\xf0\x07a\xd3\xe7y@X\x8a\xe1}\xa2\x9b\
+&\x93\x89\xd2\xf8\xe6\xb0\xa48_~ILK\xed>\
+\xce\xc1\xbf\xee\xa8\xcf\xce+\x95Q\x8c7\x81\xa6\xc0\xdf\
+\x10c\xfeZ\xa2\x1a\x8c\xb5\x8fu\xbfg\x9d`\x8cb\
+\x06d\x81b\xb8zX\xc7\xb8\x8cF\xa3\xa7v\xcf%\
+\x19r\x80\x8f\xf1Ia\x09\x84_\xb5\x8b\x17\x22\x8c\x0d\
+@\xef.\x93\xfd\xf6\x22\xa67>a\xb2)\xb1\x1d\xf6\
+\x09\xeb\xe2@\x15\xce+Ov@R\x8b_\x96\xa2\x8b\
+\xbf\x9f\xbd\xe4S@<\x9e\x19\xd6\xe2\xd3\x16\xf7m\xbe\
+\xb0\xf9\xcf\xa0x\x9bV\xa1UR\x8b\x14\xbfFsd\
+\xfb\xef\xdb\xcf6\x86\x1d\xff\x8f\x89\x99\x89\xa9\x04\xb7\xc4\
+\xf2n\x97\x80\xeb\x97\x13\x18~\xdd\xec7\x8c\xfd-F\
+H\xc6m\x80\xe5\xcd\xad\x13\xd0\xe6?\x0f\xcdB\x99\xf3\
+M\x9cb\x7f\x03\x18P\xe6\xc5g4)\x00\xbb{d\
+e9\xcf\x15\xe3|+\xb1v\x9eg!\xa5\xa6\xa0h\
+mI\xc6\xaax\xb4D\x9f\x1f\x91\xa2\xcb9\xcd\xa4\xf9\
+\xb9\x8f\xb4\xf58k=%cbx~\xd8\xf4\xbe\xf7\
+\x08[\x00\xc4\x9a7\x9fS_\x0a\x083\xd5I\xcb\x18\
+&\x9d\xc4\x8f\xf8\xaa\xf8\xd3\xbf\xa3\x86\x07\xc0\xf9\xe0.\
+\xae\xc0\x88\xc1|\xb4?\x14\x22M\xddH\xf1\x5cL3\
+\x85\x94\xd2|J@\xb4\x00e\xf1-\xd1<\x00\x88s\
+W\xbe\x90\x7f\xb7\xb4z\x9cg*\xb5\xc6\x0c\xd2*\xc1\
+\x5cI\xc6O\x152$\xdc\x0a\x03\xfcq\xb6\x96U|\
+A\xe3\xc1\x94$Trb\x94\xa9qT\xe2|\xc6<\
+\xae+\xf1Z\x06P\xfc\xc5U\x80\x8f\xf5\xd8\xd0u\xcb\
+\xb4\xbc@\x81h\x15\xa7\xd5}\xd7\xc3\x8f!\xa1p\xa0\
+uAe>\x0b\x19\xe5G1\xcch4\xf0S\xfe.\
+\xff\xa7\x90\xc0\xcf\xb8\x9e5\xe3|}\x9d\xd6\x8f\x04^\
+%\x1fP n\xc8\xb8\xbd\x18\x05\xces\x9ag\xce\xc7\
+\xb5\x86YN)+\xb1H\x00\x07F\x8f\xbf\xafe\xcb\
+}\xc0\xc8\x01(i\xc1\xf49\xb5\x16$\x90\xb9\xab\x02\
+R\xc8\x9a\x84^\xa0(\xf1\x97\xe8J\xc81\x02\xfc\x1c\
+u\xff\xf5\xfcC7\xccAB\xf5<\x90\xf1\xf7g\x22\
+z\xbf.a\x8f\xfa\xd0u:DC\xa2\xd03\x01\xf6\
+\xcb\xc0\xf4\xca\xb9\xb0\xf7\xcfJ\xf0u;\xf1?*\xfc\
+\xae\x93\xe3t]\x11\xcem\xbb\xf77.\x22\x02\xea\xfd\
+:\xca\xbf\x0d\xcd\xb1\x02\x100\x17\xbc? \x03\x82$\
+A\x01\x94\x10\xeb\xfa\x83\xb0\xae\xd2\xa8G8EW\xca\
+\x91~f\xf3\xe9\xcd\xa7\x1b\x22\xdd(\xf4\x12\x80\xe1\x9e\
+a\x9d(\xd1\xe7gJ\xef\x14\xbe=}xz\xa7~\
+\xfc\xe2\xb0\xe9\xe3>'l\xfa\xfe\xaf\xc3RU~\xfa\
+\x1c\xc3\x0b\xc2:&\x81\xeb\xe1\x10SU\xb4>\xdf:\
+\x11\xb3\x10\xf5T\x1b\x1f\x06\x18\x11@\xa3\xb4\xa4#1\
+\xa7\x12\xf2^\x1bE\x22o\xdc\x9a^\x15\x0b\xdbs\xd3\
+\x03\x9c\xe3\xeb\xca\xa1R\xc3\x85\xf0\xa2\xdc\xa0J\xeb\xed\
+J\xcaV\x8d\x9f\x81\xf0\xaa\x8c\xa0@q\xa8\x10B\xfb\
+\xe2\x9b\xe9p\xad\x1b\x07/\xa4\xed\x8b\x19H\x11\x87\xe4\
+\xb8U\xb2\x00\x15\xa9\x12\xbb\xbd\xfe\xf6z\xdb\xebe\x82\
+\xfe\xf3\xfe\xa7\xeb\x00\x00 \x00IDAT\xcdE\xbc\
+h\xf7\xb1\xbb\x8f\xdb=%\xee\xe3S\xc7\xa7\x8c\xf1y\
+\xae\x97\x14\xeb\x8f\xcc\x14\xa6\xf1+a\x0b\x12?\xfeS\
+\xd8\xf4\xfa\xa2\xf1\x85\xe3\x0b;\x0a\xd1\xd9\x89\xc8b\x02\
+\xa4\xc3Gu\xa3\xd2^\x1a\x09\x0e\xa4\xa4\x9c\x8e\xdf\x0b\
+\xeb*\xe7T\xea\xf9\x01L\x0f\x8eL\xaf\x1f*Z\x8a\
+{ql5]\xc3\xbe\x82\xb4\xaal\xbbn\x0eX\xc2\
+\xef~C\xb6\xf9\x07\x80\xa0u\xc4\xc1[\x9f\xa8s*\
+\xf1\x02W\xbf\x87B\x86\xc2\x95\x15\xbeZg(l\x02\
+\x03\xefk]\xa8\x84I\xec\xf4,J\x14\x05\x86z\xc1\
+?\x15\xb6\x04\x04\xc5\xdc\x00P\x00\xae\xf8Q\x9f\x9b&\
+J\xbe\x7fi\x03\x00(\xdc'\xcc\x09\xef\xa7Ue-\
+*\x09(\xc8\x96\x81\xda\xdf\x80\x0d\xd7\x09 \xb0\xef\xdd\
+\x07\xcf?+MM\xa5\xfb\x87\x0b\xb3\xa9z\xb6\x1d\xe8\
+\xf6\x89\xf5\xc2\xdf\x12\xe5\xa4)\xa1\x07\x0e\x85\xcf\xcfc\
+\x8e\x00\x00Qg\x8d\xb1\xd4;\x98@RQ3\xf7\xd9\
+\xee\xbd\xdd\xbb\xa9\xcfO\xb6\xb4:m\xbf;Wj\x05\
+\xa6m(\xe4\xfb;1P\xda\x0a\x80O\xc0\x87@#\
++\xd0%\xee\xe4s\x1a\x17\xab\xf2\xf6\x98\xb0\x85\xa9U\
+\xe2q\xa7\x86M\x1f\xef\xf8\xb0\x8eY\xb2B\xfcQJ\
+\x0b(\xa5E\xa0\xd2c}\xbb.\xcc:j\xc4\x02\x0b\
+\x0c1\xeb0)\xe8\xc5\xe4\x08i\xc0\xfbt\xc0Q2\
+\x96\x0a\xd8['\x8c\x077\xdb\xb1\xb9XX\xc7\x14H\
+q:\x95\x8c\xf1\x94\xb0n:H>/\xc7\xe8\xf0\x96\
+\xb0\xc9\xbd\xffS\xd8\x226\xbb\xf3\xa5\x93\xbd\xa4S}\
+O`i\xfc\xdd\xb0e}V\x02\x92\xe2^\x12\xce\xf1\
+\x89a\x1d\xe3\x0f\xb3\x8f\x7f\x03dx.\x09\x887\xd1\
+\xb7\xcd2\xff\x19SFa\xae\x18q\xc7\xcdT\xfd6\
+N\xce\x18\xdcwf\x01\xe2*I=\x7fc\x07\xcce\
+\xe5\xa7D'\x9d7\xd4\xf1\x01\x0c\x09\xec9\xd7\xb4\x06\
+\xed\xfcP\xd8t\x1fv\xce\x15\xecb\x08\xe5\xfd\x9f\xd2\
+\xa7{F\x02UTr=\xc9\x01H<=E\xd1\xee\
+\x9d\x05\x91\x83\xbbD\x88(s\x02\x85\xc50H\xa0\xa6\
+\xdd\xff\x07u\xc0\x948J\xa5\x0f\xe0\x1d\xf5\xcc\xa3\xba\
+\xc0;[\x13\x01\xa4;\xbf\x136}\xff\xfc\xb0\xce\xff\
+$\xb3\x86\x86L\x89$\xa7_\x1a>\x18\x96\xe3X\x0f\
+_\x00\xeb\xd2\x9c\x09xo:\xdf\xc7;\x87\xb5}4\
+S\x9a\xcf\x9f\xa9\xf9\x18-5\xc5\xea\xebS4\xf1\xf5\
+\xee\xdc\x07l\x1d\x13\xf3GR\x03b\xfa\x5c;\x1f\x1f\
+\xd6M\xa9\xc8\xb1~U\xe0H\x0a\xfcf\xdcl7c\
+'v\xa9EL\x0f\xff\x0b\xe7@~\xf3\xd0\x1c\xa7g\
+\xbff\x02\xbd\xfd\xfe\x0c(\xa8\xd0\xd3\x08\xa0yR\xd3\
+/$\xbc\xf6\xdd-\x93b\xad\xc5\x0f\xa0`\x9f\xa6\xdf\
+\xaa\x82\x88\xd63\xe7\x11m \xaa\xf7\xc6\x1ej\x9d\xa0\
+\x85\xe2\xfcq\xdd\xeb)K7J\xe6\x5c\xb6:\x01\xae\
+T\xd4\xb7W\x9aE\xf0j\x5c5&J\x8a=\xd6\xe7\
+\xc4\xe48&l\xf9\xfd\xa2\x92\xa7\xba\xfd\xe6\xe5a\x1d\
+0\x01\x98u=\xce\x0b\xeb\xd3\xb9c\x9d\xfa\xff\x19g\
+\x16\x10\x22AW\xe02\xbdC~\xa3\xd0 \x81\xc5\x00\
+\x90\xa8aX\x98\xaabz\x82\xf8BAD\xdc\xa1\xa5\
+\x0eCN\x05\x1de\xdf\x18LSj<O\x89\x1d\xa6\
+\x18\x86j\x02\x08\x98\x99\x058;W\x931RLL\
+L<y\x97\xfb\xe8u=u\xc9\xfd\xb5\x1e\xc4S\x12\
+P\xf7C|\xe6sJ\xfc\x8dQTx\xd1\x9aH\x1b\
+HeZK\x0a\x06\xa3\xfc\xc2t\x14\x00YN\xa3\xb8\
+\x90\x88\xbc\x1e\xfel\x85i-tO\xea\xa6n\xa8\xac\
+\xcb\xdfh\x97i\xe5\x01\xc0(\xf0y\xfe\xde?\xd7O\
+1\x1aM)\xe2\xcf\xf9\x15y \xa0G\x81\xd6\xf5`\
+\x18\xfb{\x18\xde\xa6'\xc9\x93R\xcb\x04\x90T\x8cP\
+\xe3\xb4\xb5\x80\xbb_\xf2\x0d\xc0\x90\xe7\x22nS\xd8\xcf\
+\xf3eW\xf5\xf6\x0a\xdc\xf7j\xe4\xe6E\x85_O<\
+\x0a\xbd\xb1@k\x15Y\xaf\xd4\xfd#|\xd9\xa3\xbb\x91\
+NP-\x02\x10\x09b\x15*\xf7^!H\x10\xe5<\
+\x90+\xd0\xbd\xee\xac\x12]S\x0c\x1c\xbc\xfb\xb5AN\
+\xcb\xc1f\xc1\xd0\x16\xe8\xc7H\xec\xbc\x88qb\x12`\
+Hr\xfc\x9d\xeb\xa5\x18\xca\xf53\x00\xfa^.\x9c/\
+v7TB\x13a\xff\xe1]e\xc6B0U \xb6\
+\xdb\xb5\x96\x8aqH\xc5\xb5\xf1U9V\xa9DAT\
+\x1c\xf7I\xeaJ:\x02\x01\xe0\xe6\xd4\xcd\x1b7ol\
+\x15\x88V9\xd1cI\xbd\xd9\x98\xa2\xe1\x91a\xd3\xff\
+\xbfu\xd8\xf4\xfa\xb3\xb0T\xd9=:\xa9n\xc7w\xd4\
+e\x0b\xd9\xc2A\x9dN\xaaK\xf5v:\x00\x8d\xc5\xe1\
+\xd8U\xc6l\x18\x95\xdf\x8fuj\xd7W\xea\xc6\x89\x19\
+\xe3B\xfd\x1a\x85&\x1dD\x89\xb1\xac(P%\xfa\xe2\
+9\xbf\xbfu\xefV\xc2\x06P\xa9\xca\xb5\x1e$*\xcb\
+z\xf2NN\xa6\x81\xc4i-B\xe7>88|}\
++\x0f\x16\x94w\x811\x95U\x8e6)C%\xda\x93\
+\x8e\xb5\xc6\xf0=gf\x82\x8c\xe7\x8e\xe7\x8d\xd3\xdf\x19\
+\x7f1\xd9\xe4\x88v\xdfu\xf7o\xef\x0ej\xe2\xa5\xc7\
+\xbd\xc6\xbd\x96\x04\x07\x83@\xa5t\xbcM\xd8\x02,m\
+\xef\x106\xfd\xfb\x07\xe7\xb1\x81D\xd0jz\x00\xc7\xa7\
+\xf79E\xbcj\xddA\xec!\xeb>\x1f\x04\x16\x05*\
+\x91\xe8B\x84\x89\xac\xe9\x15\xfc\xf7\xe9X\xf8\xf7\xe6\xa8\
+f\xbfr\xad\x0c\x84\x1d\x10\x0e\x1a\xf7K\xe5\xdc\xbf\xdb\
+W\x98\x06z\xc2\xb2r[Z\x0b\xde\xcf\xfeUI\x95\
+@\xcb4\xb4\x8a\xa8\xd0\xa4(\x9b\xeb\xad^C\xe2@\
+\xc6\x06r\xc0(\xbcz\x1c\xb5\xde\x98O\xec\xef\x0a\xf8\
+\x01\x82\x12d\xc0\x18 \x11\xa0e\xac\xa0\x83V\xa2\xa9\
+\xa7\xd4\xf3\xf2\xf3\xe9\x17U\x22jl\x9a\xa9\x18\x0ev\
+\x07\x91\xd6\x81o\xe5\x5c\xf4\x0f\xcdT\xf8\xaahEB\
+\xf6\x8d\x85\xf9T\xf3\x86\x05\x22\x9e\xff\xf7\xeb:\xe6\xfb\
+\xb9fV$\x808\xfcg\xd8\xa2\x81\xa0\xd7\xb1\x0e \
+\x95|\xbd\x8f(\x9e)J'\x80\x19\x1f\x196\xbd\xdf\
+\x95\xc3\xba\xc4\x94_\x04\x08x\xcd\xde\xd8\xf1\xc3a\xdd\
+\xd8\xa77\x84-\xcc\x9f\xe1:a\xdd\x18>\x152\x15\
+\x10\x22]\x00(\x01N&\xe2UY\xe1\xafTRR\
+\x8b`\xf3\x96)\x81{KC\xde\xe7\xf3-\x81@\xbd\
+\xcb\xa6h\x10K\x1a\x1e\x13\xd6}.\xcf\x0d\x10\x098\
+3665U\x8a\x92k}Y\xbf\x00:\x9a\x0fZ\
+\x03\x88\xfe\xad\x010\xfb*\x12\xb1\x87/\xbd\xe3\xd6_\
+U\xc0\xf9[\xbf\x97@[\xcd\xcfV\x09I\xad\x13\x89\
+\x00\xff0\xde=l\x09\x9c\xa8\xa4\x8fo\x0c\x9b\xbe\xbf\
+gX\xc7\xa8\xc9\xcf\xbd\xf3\xb4\xc9\xde\x94\x15\xf9s\x9b\
+\x86\xc2\xe9\xa1\xa10\x9e\x1c\xb6\x88\xf7Y\xa7\xfc\xe1\xe6\
+\x05a\x1d3\xe2\xfc\xec\x99O@K\xab\x97D\xbei\
+Y\xfc\xcfr\x8e\x0e\x87\x85u\xad\x06\xce]\x14\xe5\xa0\
+\xaa\x87\xe8\xeeAa\xcd\xdfN\x96\x9f\xeb\x81]\xaf\xa6\
+\xfbdz\x8a\x04\x1a\xc0\xa2E\xc2\xbe$\xfa\x94\x00\x14\
+`m\xc7\xf3\x9b\xd5\x14\x04\xbd\xefz\xb5\xab\xc5\xcb\x14\
+\x0e\xe7n\xfa\x1b\xe3\x82\x9b\xbf\x8fJ\xf0\xefMvD\
+\xe7\xc7\xd2\xefT\xe2\x1a<\x92\xdf_\xe21\x15\xef\xd2\
+v\xb1\x7fie\xa4?\xd5\x1a8\xbc\x22l\x01\xbcj\
+<g\x02/\xd3\xb9\xf7\x9c\x10\x91,M\x9aL\xa0K\
+\xec8\xa7D\x8co\x0aK?\xf3\xc3\x8c+.\xb70\
+\xd1j\xfa\x01\x7fE\xb4\xce\xb4\x16\xaa\xd9\x12\x05\xbd\xe4\
+W\xdd^\xad1\x0c\xde\xd0\xe6y\xec\x18\x9e\x196=\
+\xffCw\x1e\xb2\xf3\xd0.\xf1\xa6\xa9\x01\x90D\xedU\
+\x89~\xde\xe6\xf9\xc1\x5c\x18\xde\x1f\xb6\x00\x04%J\x9b\
+\x89_\xa9\xd6\x03H\xf6\x08k\xcfaNl\xb3\xd2?\
+\xc5s\xbb\x87\xdd]\xc2Cs\xe4\xdb\xa9\x86\xbf\x9e\xce\
+\xc0?c\xd8\xfcc\x8a\xf4%\xc5\xb8\x12\xe8\x5c\x8f\xa6\
+\x18\x14`\xaa7\x9fX\x9f\x16\xaa\xcf\xe6~^\x03\xee\
+\xe2y~7\x13u\x0c\x95\xe1\xebaK\xc2Ub\x94\
+\xa6&`\xb0\xa9(\x7f?l\xf9\xbcU\x19\xcd\xe7V\
+S\x82$\xcc\xc9\x0c\xa8\x02\x0d\x00<\x9fO%\x92+\
+\x91\xdb\xea\xfd\x96\x88\xdd\x7ff\xe2l_6\xcf[\xaf\
+1r\x09\x1c\x17\x90\xb2\x1a\xdbV\xf9\x89\xfb\xe0\x15E\
+\xfb\xdc\xb0\x8ey\xa7\xf0c\xea\xa6B\x87\xfc)\x19?\
+\xc5\xb8\x90X\x1b\x87\xedz\xc4\x9f\xf2\xa8\xd4f\xa8\x84\
+v\xad\xbd\x96@Q\xb56fkKQ\xfc\xc5C\xe2\
+#\xf1\x12`_\xfe\xe5\x1c\xc4\xc8T\xc8\xcd\xfdW\x09\
+\xbd\xfbC\x05\x1f\xf0\x9a\x95w-Y\xc5\x94\x90g\xa8\
+P{\x7f\xad\xa8\xc6P\x8aK\x01\x12\xa6t\x10\x9d\xc4\
+\xb0\x95\xf8b&h\xc1\xd4\x82\x93-4\x18\x82u\x8e\
+\x11\xb1\xdck\x16\x91\xadi\x04\xf2\x17\x0c\x00\xaf\x0a(\
+\xe2S\xcf\xd9\xbe\xa4\x9d@\x0b-\xbf\xaf\x96Y\x05\x16\
+c;\xc5\xcf\x80\xa5\x153\xaf\xb4\xdf\x8c\xc5L\x86N\
+15\x89=cD\x88OM\x97\x92\xef\x02\x0c\x92A\
+\x89)\xb2\x8bHJ\x05t\x11\x1e\xefy\x11=\xff\xeb\
+\x84?\xc2\xff=/\x82\x12-\x10\xee\xa9\xfc\x97\xeb\x1c\
+V\xb8\xe1\x9fw\xbf\xef{\x88\x05\x07\xa4\xc2&\xa0\xf5\
+\xc0\xfc\xbb\x8d\xd9\xab\xf6_\xad\xeb\xe9w\x9d\x12\x8a\xa4\
+\xe8\xd5\xef\xfb|\x16|\xfc\xeb\xd5\xf2\xf5\x1a\xdd\xd8\xbf\
+\xa8\x97\x5c\x7fI\x08/0o\xf1\xd3\xdd\x86$B\x18\
+j\x8e7\xeez\x93S\xdd\xd6t\x83\x868>7\x03\
+\xdf\xc3\xdb\x9c\xd8G\x05\xc51$\x82B$HBV\
+\xbdQ\xa9\x9a\xdc\x0e\xec\xdf\xeb\xc6\x81\xfcQ\x8e\x0d\xba\
+KV(r\xfc\x90\xb15\xa5\xe6l\x9cM\xf6\x1aU\
+E#\xc7\xd0\x14\x95V\xef\xab^\xa5\xa4\x8c\x97\xe8\x97\
+\x04\x9cCS\x81\xa3\xea\xe9\xa0[\x8d\xf3Sq.\x0a\
+\xb3\x84\x0f\x22\x8a\x9a\xc3\xa1\xe9\xb1\xd3\x0a\x90\xe3\x13+\
+\x11\x8f\xed}N\x22f\x1f\xccD\x1a\xe5\xe9\x1d]/\
+\x9d^k\x15\x07=Zz\x81Tj\x1d {^\x90\
+j\x5c\xebP\xe0\xc0\xf1qX*\xde\xff\x9e\x09\x02\x87\
+\x01y\x86D\x12\x03J*8\xe4\xcf\xdc\xeb\xed\x81)\
+\x06\x13\xcf{r,\xbb_\xb8\xfb\x05\xbb\xa7\xc0\xb5\xb5\
+\xe6\x04\x03`\xff\xb0e\x9c_\x89\x85d\x808\xde<\
+,E\x01\x8fj*\xfb\xf7\x0b\x95}\xf3pk\x1c\xcd\
+\xdes%\xb4*H*\x8d\x18\x09\xb7\x0e[(\xaa\xd5\
+\x02\x80\xaa\x0e)%\xda\x03Y\xa7\x1a\xfc\x8f\x99\xf8G\
+\xaf\xe5I\xdd\x01 \xb1\xbdI\xaa\x9f\xda\xc7\x807\x0e\
+\x8a\xe3\x06\x9c@\xdc\xed+bp\x806\x81\xb4\x00E\
+\x85\x5c\x0b\x81\xf7w\xb0A\xb0\xf3\xfd\x1d\x1cUqW\
+\x19\xa4v\x9c\xef[@\x91\xfdtRX7uA\x00\
+\x9fH~\x1d\x08\x0e^c\x89\x8c_K\xf1\xb7\xd2\x14\
+!&\x97T\xc7b\x08\xa1\xd6\xfb\xe2\xb78~\xe3\xd2\
+L\x0d0\xd6-\x01\x8bb\xce\xa0\x84k\xddB\xd5\xcd\
+^\xd5V\xf1{o\xc7\x00\x80$;\xe0\xec\xbbHg\
+?\x93\x07\xf4\xe9\xdd\xfd\xf4y$VZ\x96\x12\x98\x88\
+\xa9\xdc1\x97\xbb\xfc\xb8\x84\x88?\x10\xc0f`M}\
+W\xaf\xdb\xf6\x9cm\x9bwO3\xa2Q\xb9O^\x18\
+>(\x7f\xc5\x1cH\xe6PHd\x86H\xa6\x1e\xfc\xf1\
+\x96a\xad\xc2\xd5\xee\x97\xc4\xaf\xd6\x07u\xdfT\xa5\xaf\
+\x80C\xa0$\xd1\xc1\xa8xZj\x89\x08\x0c\xde\xded\
+\xc1\x22p;\xbd\x050\x11\x88\xfeK\x87\xf0\xfb;4\
+,\xac\xa7L\xe8\xc6\x1f\x87u\xeb\xcf\xf9\x96\x89bU\
+\x9eS\xb4\x0c\xe0V\x94O\xe7M\xc0\xd7\xf7Xz\xb1\
+w<\xa1\xd9\xd2\xfaD\xad9\xefK\x05\xe8\xef\x9f\xec\
+}\xc9\x04|Ownd`T\x8c\x07\xd3W\xb4~\
+\xd1\xa0\x00\x98>3\xa9\xba\x12\x83\xdb\x85-\xfe`\xfb\
+\xd8\xb0\xe9\xf3\xfemX7>V\xe0B$\x98\xb8T\
+\x8e\x0f\xdey\x5c\xd8\x02\x08\xed<>\xac\xf3\x1b\x09\x90\
+5\xb1\xbf\x00\x94Nh\x16\x8c\x88\xdbon\xdf\x12\xf7\
+\x16\x90\x0d/\x1d\xfejxi[_w\x89\xf5\x058\
+\x1b^6\xd9tn\x0d\xe7\x85M\xaf\x9f\x0c\xcb\xf1\xad\
+\xff\xb0T8\xabe\xe1Na]\x22d_\x85\xa4\xe7\
+\x11]\x0b\x10qC\xe3\xa9\x04\xb4\xceS\xebB\x0b\x14\
+`\x22\xffn1\xa2\xc4g\x00X\xfe\x0f\xe3\x89\xea>\
+\xca\xb4\x1e\xdd\x1f\x84M\xd7{\xc7\xb0\xc6$k\x8c\xb3\
+\x12y\xa3-\x90\x00\x8f\xe7\xddN\xe7\xef.\xadf5\
+m\x05s\xc0\x18E~)\x01\x8a\xe1]s\x0b\xe1\xd0\
+\xbe:&\x91\xd6*\x8c\x14\xbd\xcb\x09Po\xfe-l\
+9_\x01BDH\xdbT\x85+.\xbd\xcb\xe33\xc3\
+\xa6\xd7\xdb\x87M\xff~\xfb\xb0n\xbfa \x02\x96i\
+t\xdc+l\xd1\x8a\xda|kN\xccw\x1d\xb4\xeb\xc0\
+]\x07-\x00\x13\x11\xe5:\xd7\xd3\xdf\x85\xf4r\x13_\
+\x16HS\xe1\xbf\xe1\x14\xf7M\xcfo|\xf7\xf8\xcf\xe3\
+\xbb\x97\xd6\x1e\xfb\xae\xb4~\x0e\xcc\xd6\x85\x97\x8f\xaf\x18\
+_\xd1\xe2\x8d\x06t\x0d\x97\x0d\x9b^\xbf5\x8b6\x97\
+?>u\xa6\x10WaE\xa2\xc0\xff\xe6:7%\xa2\
+ZT\x8f\x9c[=Q\x88\xa3\x5c\x14\x05#\x1a_\xc5\
+\x80\xcc\x0av\xf9yL\xafU\x01\xaeD\x9b\x89\xcc*\
+\xe0\xe4\xf96|>\x81_\xe3_?\x9f\xe3\xf6\xc4O\
+\x00\x1ac\xe0\xb2e\xaa\xfc\xdd\x8b\x9b-\xc0\x92\xf8]\
+\x02Gs\xca:\xb2\xef%\xbc\xeb1\x96\xf6\xa58N\
+|{Z2\xaa\xde\x11\xd6\xfc\xf5\x9cp\x1a\xcbj\xbd\
+\x00\x88\xed?\xeb@O\xbf\xeb\x03`\xeb\xb5\xcfBe\
+\xb5t`\x02`d\xb9\xee\x8c\x8b\xf8a\xe7^\xc5S\
+*\xd6\x80g\x895\xc6\x81\x0a2\xe6\xa6s\x14\xb3P\
+\x8f9\xe0\x0a \xe0\xba\x89\xd8\xd9/\xa6CaJx\
+n\xe2]q2\x0d\x01\xe3T\xe5\x8f~\x8fh6\x91\
+?\x093f\xaf\xc2\x0d\xaa\xbb\xe7\x04\xd0q\x1f\x93\xc9\
+[\x85\x84\xfb\xcd\xe3\x15+\xeev}\xf2O\xf1\x0e\x00\
+\x05e^\xde)O\xb3\xaf\x00*\xfe\xbf|U^(\
+\x9f\x05\x10\xd0~\xcb8\xba\x0aN>\x0f\xad\x13\xcc\x11\
+\x05\x0fq\x0f RkH\x8aw\x16\xc3n=\xa6s\
+[*@\xf3\x97xD\xfc\xec9\xda\xafZ\xa2\xc5#\
+\xaeK\x01\x09\xf3\x0f0\x9e\xfecW-\x1c\x17\x80\xca\
+\xdf'\xf6\x97\xec\x02\xc2^\xa5\xf2b\xdd\x14\x00\xaf\x18\
+\x03}b~\x95\xec\x81\xdb\xaf\x03\x18T8\x82@{\
+\xf3\xee\xc2}\xec\xb3\x1byyA\xb2Q\xf8\xfc^\xa4\
+\x07W\xe9\x12u\x00@\x1eH\xd5\x22\x00\xb1C\x11\xf6\
+\xea\xef\xd9\xd8~?\x08'\x07f\xc0s\xddnlC\
+\x06\xbaUA\xce\xf16E\xf9\x0a\xea\xfd\xaf\xe4\xcf\xdd\
+5\x03\xa5[v\xf3H\xf5\xf6\x87\x18\xd5\x87s=n\
+\x96\xc0nJ\x06f*qRu\xb7\xc7\x85us\xd9\
+\xb3\x824\x9e\x16\xd6\x10\xeawm\xde\xd5T\xdf\xe7D\
+\xf2\x92aMM\xf8\xc9M5\xdaB\xb1\x00\x8c\xb7S\
+\xa1\xe4\x10T\x9e\x1c,T\xb2\xb5,\x08\xac9B\x89\
+\x9f\x0d(\x00U\xb9p\xbf\x04\x16\xa8g\xaeGE\xc2\
+\xbce\x81\x0cDP\x85J`\x81\x02$1\xb41?\
+\xda\xba\x92\xe7\xc4\xff\x9f\xba\x1e6\x15\xddT\xa1\xad\x0d\
+/\xa1tp\xa2fmW\xbd\xfd\x90\xdc\x14s*d\
+\x5cbDd\x06%\xde\x81Fl\x90\x98J\x22\xd1\xe6\
+\xa8W/R\xd4\x97\x8fi*\xfas\xc2w\x93\xb0\xe5\
+\xf9\xa2\x22W\x85?z\x1c\x9f\xb0\x88\x1fIH\xb7c\
+\xd8\xf4\xff\x9f\x92-\x02D\x93\x92\xca\xb4\xdd3\xacS\
+\xe1\xcf\x03-\xf0\xee@\xbc\x1d\x10\xb4\x07j\xec\x9f\xb9\
+\xb1\xd4\xfe\x93\xdaVTu\x07 \xc8+J2f\
+\xcf%\xd3_\x5c!\xc7f\xae\xf7\x1b\x7f\xc2Q\x0b\x0c\
+\xadK\x15o\x00\x81\xe7n\xffs\x80\xfe]\x00\xc0\x91\
+[7\xd6\x9d\x9f#V\xa4\xe2\x86JgJ\x83\x83J\
+`\xa7W\x97\xdfH\xb1\xac\x12\x1bL\xeap%d\x00\
+\x0a\xfb\x80H\x10\x11-\xc0\x93\x1eC\xe3\xfe\x88\xccq\
+\xfc\x80\x17\x07\x9b\x03\xc5\xab\x03'\xd7\x81\x0ai\xf91\
+\x15\x5c\x81\xd3\xdfM\xe1\xcf\xdf\xb5\xfd\xfb\xdd\x96h\xf9\
+\x5c\x00\x1a~\xd6\xfd\xf6\x9c\xdc\x1f=\xfbY9\x04@\
+\xfd\x7f\xb6\xce\x04\xec\xberj\xe3\xff\xb3\xcf+I\xb3\
+4\x0fJ\xb3\xd0\xa02\x84J\x9f\x14\xa1$\x94\xea\xa3\
+T\x142\x16\x89&\x91\x90\xa9\xc1\x90\x92\x94(\xa2P\
+\x94\xf9C\xa3PJ\x92\x06\x19RI\x91\xa8w\x9f\xef\
+Y\xcf\xbe\x7f\xf7\xb3\xecj]W\xe7\xfaO\xe7=g\
+\xefg?\xcfZ\xf7\xba\xd7}\xdb\xef\x1a@\x83\x0e\xb5\
+\xc4v,v\xaa\xef\xefQ\xa0wF\xa4\x04\x03\x0a;\
+\x94H%@\xfd\x03\x11\xe5\xf6\xbe<\x22\xed\x1f\x8c.\
+\x90H\xf0\x5ckt\xc9Z\x1a\x07\x0f\xcfOx\xbf\x84\
+\xfbK\xff\xcc\x88\xb2\xbc\x9e\x12QU\xdc\x0f\xe9\x0eI\
+\xfb\xb9\x0e\xfc\xee+\xdd9\xddW*\xf0\xf5\xdb\x0a|\
+\xed1\xdb\xbdv\xfcB\x9b\xfcc\xe9\xfe\xde\xa7\x99\x7f\
+F\x98\x98%\x05`\xc3=\x82s\x93\x91\x17\xa8\x9d\x00\
+O\xdc\x0f\xdcSn\x8bH\x9d|D-a2\x01`\
+0\x02\x05\xa0\xc3z\x04\x90\x89\x8e\xfe\x0f\x93\x9f6\xcf\
+\x03be\xdf\xd0\xbe\x19\xe2TA=\xfeGDJ \
+HT\xa1\xa6K\x13\x86\x11\x14k\x13 \xea\xc9\xfa\xc1\
+\xcdB#\x17vm\x81aC\xc1\xa1\xe7\xb5\xdf#\xa2\
+\xa4!\xbbD4\x11N\xdb\x04\x0a(\xe9.-qI\
+\xeb\x8c\x90\x882r`\x1fv\xed\x93\xf3g\xcf\x9f3\
+\x7fNb\x02\x06\xf0\xb4G\xda\xcf\xa1\xfe\x06\xdf\xec\xdb\
+\x15\xa8\x1b\xee\xc7\xf7\xd5\x89~SDZ\xcfQ ?\
+:\x8d\x0aqN.\x5c\x22:6+\x0d6ttv\
+\xcc\xfc\x92v\x03\xdf\xc3\x85\x12\x1dwD\xfc`\xd8\xa9\
+cgJ1\xe7#\xf6\x9f\x12\x11sB\x89\xfa;\xae\
+!\x01\xe8\xfc \x15\x08\x8f\x18\xeeK\x0c\x0av\x89\x8a\
+j_t\xfe\x1d#0\x00\x9czn\xfb\xab#\xca\xeb\
+\x9b\x22\x92v\x0b\x9d;\x9d\xcf\xdd##\x92h\x9d\x0a\
+43\xde\xe4\x8b\xce6\x87\x98&\x09n\xff\xaf\x88\xf2\
+\xfa\x9e\x88r\xff\x9eU\xa2\xe4-\xfd\xad%nQG\
+\xf4di\x00D\x07\xf0\xe4\x88\xa4\xb5\x01pJ\xbe\xc2\
+y\x02P\x89\xd8V\xb8O\x5cW\xf6\x81#\xa6\x87O\
+\xcb9\xdc\xfd\x22\xa2\xbc\x9e\x15\xd1\x9e?\xcfp\xd3\x00\
+P!\xd1\xad\x1eQ>\xd7O\x22\xea\xf3sq\x88\xbb\
+M\xfa\xc9|\x8c\x04,\xd8q\xb8n\xb3\x7f\xeb{#\
+\x0e)\x00`r\xda\x00dv\xb7\xc8e\xe9\xef\x11\xf5\
+\xf3\x0f\xae@\x1a\xbd\x9d\x9d>P\xf8}?\xd0\x0c\x12\
+PlW\x00\x12{\x00\x01\x015\x93\xf7k$G\xb3\
+\xe4\x93\x83\x07\x97\x03\x18\x00f&\xd0\x08\xe3\xfc\xa2@\
+\xe2\xdc\xa2\x11\x03#\xf4\xc0\xa1q\x05\x03\xa3\x1c\xbe\x93\
+n\x92\x1ay\x14\xb2\x1f\x18F\x1d=\xd2I\xa1(\xaa\
+w)\xf7\x87?\xa7\x10\xa5\x00#o\x87IG\xfeF\
+>K\xfeF\xe1\x03\xa0F>K\x07\x9d\x8e)v\xab\
+\xdfT\xa3\x02F#\xea\xfe\xb8\x22\xa1E\xc3\xfd\xda9\
+\x22\xd9\xbbI\x03\xc2\x85\x1e\xe7;\xe7\xb1\xfe\x9dGK\
+4\xa2\xe4|\x86\x8e\xb8\x5c\x90\xfc\xf9\x10U\xa5\xa3\xad\
+\xfb\xec|\x93\x99|\x80\xcd\xb0\x0d\x7fd\xda\xf7\x0e\x8e\
+H\xe76\xe2\xa2h`1*\x22[w3@p?\
+`\xd4\x11`\x00\xa0\x91\x86\x1c#.0\x97\x10\x99\xa4\
+\xe1A\xe3L\xf9 ZeV\xd5\xa7\x0e\x10P^\xef\
+\xc37\xd3\xf9\x02\x03BL23\x15\xd0\xb2@\xac\x98\
+\xeb$\xf1`\x8b\xd8\xd2p\xa2~\xa0N\x19k\x86\xd1\
+pd\xb4\x8fQO\xd9\x84\x9a\x11H>\xc1z\xe3\xd7\
+\xb8Ca\xd3\xca(\x92\x1aF\x00Z\x06\xe4\x18u@\
+\x83\x81u\xcdH&\x9f\x0f`H\xaf\x16\xebF|\x14\
+\x86\x1dL\x07\x80\x16\xdc\xb4`\xd2sn\x93o\x90w\
+\xa3\xf1D\x9d\xaf\xe7q\xce\x9dX\x0a\xef\xb1\x0f;\xf6\
+v\xfc\xfe\xf8\x15\xb1\x18v\xf4\x91oe=\xc8VH\
+\x89&\x05\x1f\x89\x08\x1d{\xa8&A4Z)\xcd\xe0\
+\x93\xd8\x93\xf8\x02\x04@\xfd\x1e\x89\x03V1\x8aU\x92\
+]\x1f\xd4\xfbH\x8bWM\xaf\x14\xc2\xfc<\xec\x95P\
+\xe7\x0dB\xfc\x16\xa9\x90\xe7\xf3\x03|\xb0Q\xf2\xdf\xe6\
+\xd5\xf8m\xe8\xc4l\x99\xa8=\xcc\xe2\xa8 .\xdfa\
+\xb0\xd1\x10BZ\x96\xcb\xa0\xea\x8f]\x0c\xb6.\xea\xbc\
+\xc7\x04_\xcc\xf0U;\x9d\xfd\x92\xfa\xedE\xb2\x11z\
+\x916h\xd9\x9ax\xf6\x98\x8e\x82|\x85\x83_Pm\
+\x88@bUxx\xe1)\x81\x83q\xe0\x99@\x12?\
+\x0e|\x16 \xf7\x99\x19h\x1e\x14\xee\x03\x1d>\x0a#\
+\x01M~\xd0\xa1\x98\x8f\x0b7-\x5c\xdb\xbc\xa0\xc6\x8e\
+J\xf9\xd8\xae\x86N\x09\x1d~\xd6%\xeb\x89\xffx\x80\
+\xc7v\x7f\x00\x04\x00a\xcc\x96\xf1\xe0\x01l`\xcb#\
+\x91\x13\xd4\xa7\xeb \xc94m\xbc7\xab`\x0b3\xa2\
+cT\xe0\xfc2]\xbf\x80Y\xeen\x1d\x8a\xfe\xd8\x88\
+JU\xfeB\xf8\x1b\xf7\xcf\xed\xb7\xed\xb7\xad\xb6\x83\x1f\
+\x9d}\xb4\xa9\x0b3\xd3\xea\x04J\xb3\xf5tHg\xeb\
+G\xb4\x83\x89\xd1\x9e\xf1\xc8\x00\x89?\x85\xbe\x19' \
+\xcel\xe4\xba?>\xe8\xe8\x140\xcb\xcb\x81\x04\xf5\x8b\
+\x82\x87\x7fOg~\xa9A\xbb\xc3\xaa\xe2\x14\x02\x1c\x88\
+\x00H\xdc\x1f\x80\x00\xfe\xbd\x0aS\xfc\x9e\xf1K5\xd3\
+\x82\x7fG\x01Ka\xc1\xfa\xa4 \xa6\x80\xe7\xb9g\xff\
+\xa1\xb32f|\x90\x10\xf1\x1c\x93\xf0#\xb2\xa2\x0e\xa5\
+;!\xcc$\xeb`\xb0\x86\x06\xcf\x19\x087\x093\xa3\
+\x00t\x1c\xf8<\x88\xfc\x1c\x1b\x91f\xcc)\xb0`\xde\
+0\x02 \x0d\x0f?GtR\xa1R\xeb\x00\x0a\xa2j\
+0aH\x90\x0d<\xd2\x19!\xf1\xe2\x80\xe4>\xb1\xef\
+\x85\xa4\xdc\xae\xa9\x80\xe3@\x12U\xd4\xeb\xb1\xce2\xb5\
+\xefGBm\x91\xcb\xd5\x22R\xc7\x9a\x0e;\x89:T\
+S\xee\xef\xa9\x03\xa3d\xf6\x9b\x88\xf4<r\xa0\x81\x8c\
++Q\x80\x81\xe0\x82i\xa4\xbd\xc2\xf3\xdb\xbf\xac\xdf\xa5\
+/\x85\xe6t\xb3\x88\xf2\xbaq\x84\x80\xd7\x03\xa5N\x1e\
+\xd4\xd8\xb9\xc9t2\x97\x0e\xd4\xf8t\xc7\xa5\x82\x82\x8e\
+\x13\xc0\x06#G\xcc\xda\x8a*\xec\xe7\x83\xfbM\xc1r\
+\xd5\xa0\xf5\x82\xb6\x8b\x13w\xd4\xb3Q\xa7\x86\xfa\x08e\
+\x9b\xfb\xfa\xba\x88\xb4\xce\xa1F3S\x1e.\x13G5\
+\xb7\x89\xbaK^\x99\x80%\xd6#y\x00\x1d\x19\x00W\
+\xa8\xc5JTl\x8f\x05`\xa6\x0e\x06\x8c\x01\x9f?\x5c\
+\x17%^\x9e\xb5\x97\xda\xbfG\xc1\x9e\x1c\xd1^\xfb\x8f\
+G\xb4\x84\xaf\xdb0\x22\xd9\xb0j\xbdN\xd7\x8bH\xfb\
+\x03\xda&0\xe7TpN\x9f:}\xda\xb4\x9c\xcb\xfd\
+\xa6\xfdS\xfaMew\xbcr\xfb\x9e\x8c\x84Hz\xa0\
+\x89\x9bI[\x87}\x0bJg\xb7c\x89\x17'Q'\
+Q\x8bg\xbbFT5\xfa\x0b\x83\xb9\xd6\x1f\x1c\x91\x18\
+\x12ZO\xd6Z\x82\x09\x02\x10\xaes\x94D\xd96\xbc\
+b\x1a\xa0\x86\x1f\xa7D\x9c\x13\xa6\xd2\xbf,\x22\xed\xa7\
+\x00Fh\x1a\xe8|\xe4\xfaYK\xe8'\x11\x9ay\xbf\
+\xab\xf9\xc0\xbbc\x0f\x13Pv\xcd\xb8:t\xaf\x8aH\
+\x9d-D\x82a\x86\xd0i^1\xa2|\xdeC\x22\xca\
+\xeb\xdd\x11\xe9|\x8a\x0e\xec\xb7\x92\xfb\x8d>\x1f\xa2\xb6\
+\xfd\x07\x22\xca\xeb\x91%\x82\x0a\xfe`\x89y\x8d\xb2\xbc\
+/\x158P\xd8afA\xf1\xfe\x83F\x9e\x0084\
+\x82\xd8/\x17\xa1\xfc\xeeY\xe5\xb2\xadVb\xd5v=\
+\xfc\xdc1\x93+\xa6\xa4\x81a\xce+\x15\xb8\xd6t\xe0\
+\xfc9N\xd4\xe8\xa3fG\x87\xf8\xdal>\x22=\x97\
+\x8c\xf20\x92\xb4\xf7\xe0\xc2Tv\xf1!\xcf\x0a@\xee\
+\x1b\xed\xf9\x9b\xec?9\xa02\x1a\xd5\x88\xf1>(\xe0\
+\xd4#8t\xd0\xd5\x08r\xc1\x84;\xc0\x99\x11\xa9\x83\
+:\xd1y\x01PN#\x84\xf3\xef%\x02\xac`\xae\x88\
+\x89\xc1u\x9e\xad94\x16\xca\xaa\xae\xa3%aV:\
+I#\x8e.\xc4\xc9\xcb\xa0\xe8\xd3\xe8\xc06u\xa7\x81\
+y2\xdbE\xcc\x0c\xceA\x18tr\x87\xb0]*\x85\
+\x0e\x85\x13\xf9\x07\xf7\x85\xc6\x00L\x01\x15\x5ch.\xb1\
+o\xcd\xde\x1a\x91\x1a\x16\xdc?i\x13\x18XEt\x15\
+\xc0\x17QT^\xa1\x9a\x03\xec\xe2\xe7N\x07\x9c\x91b\
+\x0aT\xf2a\x80=F\xcc\xc8G\xd9\x97\x95\x7fZ\xdd\
+\x1f \x0f\xb19\xf2/F\xc6\xc8\x9f\xd5\xa0p\xc3\x89\
+\xe7\x14w(\x80B\x80\x22\xb4\x07\xc8\x03\xf8<\x00\x01\
+4x8\x9f\xd9_\x006\xd8\xe7\x016\x18Y\x00\xd8\
+F\x0c\x93\xcf\x83m\xb74\xc0\xacY\x02p\xc4\xfd$\
+/\xd0\xfd\xf3\xfb \x8aG]@\x03\x89\x0e\xffX\xb3\
+\x0c\x0d\x04\xe5\x8f\x0608\x8f\xb3+\xdc\xad\xa9\x1e\xa2\
+\xb1\x00\x85\x1fQc\xf6oF\xefp\x17\xe3\xb9!O\
+\xc0\x0eT.9\xd8\xe3Z\xc4\x90\xc2\x1d \x8b\xfbO\
+\x1d\xc5\xf7c\xbd\xc2\xe8\x80\xa9\xc1u\x14\xd3\xcf\x0dK\
+D\xa1\xa9\x83\xf8\x8fz\x1e\x06\x87\xce\xad9?8\xfc\
+\x05^I\xa0\x99\xe5\xcf>\xf7S]\xf0.\xfd\x80Y\
+5@k*\xfa\xdc\x80\xd8f&I;\x80D\x85\x19\
+~\x0ap\xec\xfd\xd4\xd9g\xd6\xce\x80\x01\x89!\xef'\
+j\xa0\xff\x83\xb9\x80V\x01\xa3\x07\x00\x09P*\xd9`\
+\xf8u\x94\x03k&\x95V\x16:T\xf51c@\xef\
+\x0b\xa5\xde\xd7\x0b?R\xfc\xc5c\x81\xbf@\x09\xf3\xfe\
+iC\x19Q|fK\x0f\xfe\xa1F|\xf4 \xf5\x1f\
+\x89\x90\xf8\xcd\xb3\x9a}T\x7f\x5cD\xa2\xf6\x88J\xe7\
+\x83\x00\xca\x14Tn\x90w\x0e\x90\x8f\xca7\xfbGR\
+\xd7\xa4\x80\xa7C\x87\xba7\x1dR(\xd8\x022\xf0\x11\
+G<\x0a\xf5O\x17\x1e:h\xecs\xcc\x0c\x9b\xa8\xbb\
+\xf6\xe9\xa5\xc0\xe7\xc1\xc5fD>\xad.x\xc6\xd44\
+\x5c%\xe8 \xd3\xb9\xe7\x15\xea\x1a\x14\x1d\xd6+\x08>\
+\x0f\xc6]*0\xeeP\x01\x09R\x0a\xb0@\x87\x8e\xd9\
+\x19f\xda\xd4\xd17 \xb5\xac\xd6\x13\xe2c7\xc8^\
+\x8c\xf5\xaf\xe7\x08\x06\x88\xed\xd5>19\xbe\xfa\x83\x9f\
+=l\xect\xfa\xfb'G\x94\xd7G\xf7\x8b\xf4\x8b\xa4\
+\x8e\xffS#\x1e\xda\xb9\x07\xd8\x99=>B\xa2O\x87\
+\xa5\x0e\x1f\x14#Dd@:AN\xd9p98\xa1\
+fbW\xc3:;sP\xe7\xf5\x8c\xe9\xc9\xb2\x9f\xc2\
+F\x87\x8d\x8f\xce\x01\xaf\x14\x12l\xd4\x00\x04l\xb4l\
+\xfc\xcc\xdcA\xdd\x07\x00\x00\xf9\xe7\xfeq\xf0\x03\xb8P\
+\xa8C\xd9\x97\xbd[\x10\x7f\x83\xfa\xeb\x03\x90\xcf\x07@\
+\xc5\x8c(\xa3M:\xc8|}H`8\x08Anw\
+\xad\xd1\xfc\xdd\xd5\x99\xf1\xf3Bg\xb1\x1b\xcd\xca\x8f\xfd\
+k\x11\xf9\xa2\x83\x0a@\xc4\xfe\xa4\xc4\x81N\x9d\x0b_\
+\x010\x1e-\x80\x82\x07\xc2\xcd\xba\x83\xba\x86_3\x00\
+\x17\xf7\x85\x99wi\x8fXu\x99\xf5\xc3\xf7\xd6\xf5\xe7\
+y\xb0\xaf\xf93#\xeas70+\x00R@\xb6I\
+\x1c\xf8\xdePr\x11\xcd\xc1\xd7Vj\xfdvK\x80j\
+\x0as\x00\xd5Z\xed\x03t\x14\x0c\xe4Q\x982z\xc4\
+\xef\xb3\x7f\xb3\xbe\xe8\x94\xd21\xb9c\x98=-i\xda\
+0\x83wa5\x02l\x1a\x01\xcc\xaa\xd2\xb1\x1d\xfb\xff\
+B\x8d\xc5\xf7X\x85\xe2\xec\xee\x88\xd4\x91\x81\x02I\xa7\
+\x04\xa0\x09\x95~ur|\xee`3EBI\xa7\x1f\
+\x8d\x16\xc4\xe4$\x9e\xe5\xd9X\xf6W\x00+Q\xcf\xbb\
+\xf7\x958Z\xebk\xdb\x04\xdcP\xf0K\x1b\xc0\xda\x0f\
+t\xd2H\x88aV\x89\xba\xefN8\xa3\x03*h\xcc\
+L@D\x0e\x00\x99\x04\x89\x84N#\x09^\xff\xda\xfe\
+gWG\xa4Q7\x00\x02f\xa5u\x8e\xf9\xba\xdfR\
+\x0d\xe5\x06\x11\xc1R8Mo\x8dh\x85\xe7\xfc\xdb\x22\
+\xea\xfd\x19\x5c~^V\x8dZ\xadQ\xe4u\x1f#y\
+\xc7\xb6\x19\xf9\xee\x95\x11\xe5\xf5\xcf\x11\xe5\xf5\x9e\x88\xf2\
+\xfa\xfb\x08=\x8f\x874\xbb\xdfz\xbf\xff\xae\xe7\xeb\x86\
+Z\xc8\x94H\x9d0F%\x10\x85D\xa3F3\xd0\x14\
+\xaa\xa6\xec#~w]D\xd2^\x10\xa3c\xbarD\
+\xd3\xe4a$\xcb#\x15r\xef\xf1\xc8\x86\x00\xb4\xfeu\
+\x11-\xf1\xee.\x88(\xef\xf7\xbb\x88d\x07\xbciD\
+\xa3\xf4\xd3\xe1F\x83\x03\x06\xa2\x19?\x14<:\x17\xbc\
+?@Q\xdeK\x9a2\xb7\x0f\xeb\xcd\xa2\xb2\x02\x02\xfb\
+\xed\x22\x1a\xa0\xd6\x9f\x18Q^\xcf-\xf1\xb5\x968W\
+5\xff\x95\xd2:\xd2\x08`]\xd7\xdb\xa5\x11\x171$\
+\xbaK\x22\xd2\xac\xed\xcb#\x9a\x9a|e^\x1c\xd5l\
+'\xbb\xa5J,\x99\x98\x03q\xd5N\xd1\xfb\xbd\xa7\x01\
+-\xcek\xd8o\x11K\xd4\xba\x9b-T\x22\xd6\xeb\x96\
+\x11I\xd4\x8e\x82v\xc7\xa1\xa0\x9d\x9e6\xfd\xfc4\xf6\
+\xf1\x1b'\xbf\x9b\xe4\xf3\x18\xc0MyN\xed$\xbe\xb5\
+^\x9f\x81)\xa6\x8e\xbe\xf794I\xa0\x9cs>a\
+\x8b\xcd9;\xb6k\x86)\x8b\xea;\xea\xfe\xb8=\xc0\
+HC\x8b\x82|H\xa3\x9a\x93S\xb5\xdf\xc0p\x05`\
+$_\xc2M@\x22{0\xbe\x00\xa6\xddp\xa0\xf0\x81\
+*O^\xc7s\xae|\xc1#\xb8\xcc\xf8s\x9e\x93\xcf\
+q\x8e\x93\xa7\xb3N\xc8o\x04\x5c\xbb\x93\x8fK\x0c\x05\
+7\x0d=\x00n\xcec\xceS\xf2K\x80\xba\x17JT\
+Z\xb6\xa2\x06\x04\xdf\x15\x91\xae\x07\x00%\x1dv\x1aK\
+\x00\xfb4\xb6\xa0\xf8\xc3\x98aV]#|.\x18i\
+\x900\x83\xcf\xc8\x04\xd4\x7f\xf26\x18\x8f03\xc7\xae\
+\x1db\x04\x07\x1f\xa42B\x0e\x97-\x22\xd7\x0f \x97\
+\xf5DC\x02F\x023\xed0)h\x0cR\x08\x93\xbf\
+qnQG\x91\xdf,\xac\xfb\xc7\xfd\xe1\xbc\xa1\xf0\xa6\
+\x90'_\x14\xb0df\x01\xcc*\x98#\x00\x11c\x11\
+z\x1a\x8a\x9c\xcf\x88\x83\xc3\x88F\x13\x0a\xad\x8c\xab\x22\
+\x12\xa0\xc4h\xb3\xeaQ\xcf\xec\x93\x97\xe6\xf3\xe8\x96\xd4\
+\x90\xc2\x85Fy\xbf\xef?\x85;#\xc1\x88\xf0\xf3\x9c\
+\x02\xd0\xf1\xca\xf5\x811\xca\xf5\x03\xb8\xa7\xbe\xc2e\x89\
+Q\xd3\xb1[\x00\xd7\x15\xc0A\x9fo\xee\xbfT\xfc\x17\
+~\x18\xbfa~\x7f\xe1z\xcbZ\xc1\xcb\x05\xa6 \xe7\
+\x07A\xdd\x8f\xaf\xf3\xb7$\xfa\xc7\x9f\xf3\xc0\xb2@@\
+ %\x8eWUo\x97\xd4\x82Y?\x15\xce,L\x16\
+\xc4#\xe4\xf7\x0a\x03!\xde\x15\xca\xf0#G\xa3\x06K\
+$\xdb?\x10Jfi\x11\x17\x04\x90\x90\xdfp\x85\x07\
+VM\x80\x05\x0br<\x1bE!Bg\x11UM\xa8\
+AR_v\xc1K\x22,\x8a\xef\xec\xfe\x88:\xe3}\
+A\x7fACT\xfdsTHx\xc6\x8d\xc4H\x94p\
+f\xc0\xad\x02{\xce03d\xbfb\xfc\x8d%B\x16\
+}\xe5\xe8,\xf7\x8bE\x94\xb7?7\xa2\xf9\xffr\x90\
+\xba\xb3\x88\xed\x1b\xd7\x8d\x03\x92Y\x1b:o\xf8k\x0a\
+\x91\x9c\xfd)\x22\x1d\x1cP\xbfH\xa4)\xdc\xa0t\x03\
+4@u\x85:\xcbu\xe4\xdfi\x03\xb3z8\x1b\x00\
+\xb3\xc5\x9bE\xa4D\x9b\xfbv\xc3\x7f\xab\xe4\xce~6\
+l\xa8\xd8\xa9X-\xf7\xc2a\xb4\xc2vxA\x15\xbc\
+6\xb9$P\x18RH\xad `\x8a\x83\x04\xbb56\
+\x02\x12\xfb0\x05\xbc1\xad\x13\xa8\xdf1\xdb^\xd6}\
+\xf7\xfd\x88\xf2\xb6\xdb\x0e\x0c\x00\x8by\xb1^\x84\x08\xba\
+\xd3$\xaa\x98\x0f4\xb4\x224\xfbo*2b\x7f \
+\xe8\x88\xcc\x81x\x82\x80r\x00S\xb0r`p\xdd~\
+\xa7\xeb\xf9G\x1d@\xf3\xda`x\x1e\x01hx\xbeI\
+P(\xdc\xb0o\xdb\xa6$d\xdb$J\xa06h\xcf\
+\xda3\x9b\x88z*@\x0b\x09\xb4:R.,\xf2\xe8\
+\xd2\xc2m\x83\xa5\xa00\x10\x00\xe0\x070\xc4s\xcb\xcf\
+a\x94GL\x1ak}\x8cUf\xa1\xf2\xe2\xd7\xcd\x9f\
+\xd3\x11f\xe3\xdf8\x22\xed\x93\xec\x0bt\xfe\xd9\xd0\xe9\
+,@\xb5\xc4\xaf\x97B\x10j\xbcf\xa5M\xd1e\xc4\
+\x06\x15\xf4\x91\xc8\x92\x19\x07g\xa8S\x8b\x9d\x8f|m\
+]h\xbc!\x22ur\xd5\x01\xf4\xac\x1b\x9d04D\
+\xa4\xa9\xc1\x9f\xf7{F$j\xa1\x0a_3sP[\
+\xfeUD\xf9\xfb\x1f\x8ch\x1a\x18\x16E\xa2\xc3\xc4L\
+8\x22X\x00/\x9a\x05\xf4\xbe\xc1\xba\xa0\xf3 Q1\
+\x12a\x8f\x00i\xbd{\xf6W\xe7\x9b52\xce\x1e\xa8\
+\x86!\x8d\x16L\x98\xee\xa0\x88\xf2\xef\x97\x8cH@\x0e\
+b|\x14l<\xc7<G0\xb3\xa4\xa2M\x82I\x87\
+\xb3\xf6\x95?\xa5\xfb\xbcc\x1a\xb5\xe2}\xe9\xb4\x91\x88\
+J5\xd96q\x88\xf9\x91\xb8\xb3\x1f\xe1o\xcd\xe8E\
+\xa8\x04\x1f\xde\x0a\x13\x7f^DX\xd9\xa7H$\xf8}\
+\xd4\xe8Q\xf5\x1f3k\xee\xd3s\x0e\x00\xf78\x9d\x93\
+\x9c\x8f\x9c\xa7J\x84\x9d\x18\x02\xd0\xc0p\x83J\x0a0\
+\x8a\xdd\xe4\x8d\x11\x09\xd0\x14e\xb9\xbf.\xa2<\xe6\xbf\
+\x89h\x09m\xed\xdc\xae&\xa0\xa3\x14 \xd3\xf3J\x94\
+\xf56\x7fb\x89\x93\x1a\xd0dun\xeds\xb6\x89\x8a\
+~i\xd9O\xa7_\x8b(\xaf'E,\xa8D\xe6\xa0\
+2w\xff\x8aH\xee\x02\x01\x0c\xad\xa5\xfbp\x90\x00\xb8\
+m\xb5\xee\x8fN#\x82\xa1\xb1\xf3\xfc6\xcbo\x00\x96\
+\x19Z\xce;\x125\xf6\x0b\xdcx\xb4\xeelc\xa6s\
+\xb0\xdaX\x9e\x9e\x0a.\x01\x80\xfd\xdf\x22\xd2u\x94&\
+H\xb7WD+\xbc\xba\xf3#\xca\x9f\xbf2\xa2\xd9\x17\
+bs7\xbd&\xa2\xbc\xdeT\x22f\xe5\x8f,qD\
+\xea`\x22\xee\xb8{D\xf2\x11\xd7\xb9\xdc\x1f\x1f\xd1\xce\
+\x19\x8f\xac\xcd\x86\x11%?\x7fzn\xe9<2\xc24\
+\xfb\xdf\x08i\xcf\x9c\x9b\x1a\x03\xa8\xc13\x8a\x07\xb5\x17\
+1`\x01_\x16%>\xa3D\xd9'\xbak\x22\x94\xbf\
+\x94\xfcc\xfe\xe2\x88&\x1a\xd9}+B\xc0W\x00\xa5\
+\xcbD\xa4\xfd\x85\x0e,\xc0\x01nM\xcaO\x85\x93\xe5\
+v\x00\x00 \x00IDAT\xd0\xd2a$\xa2\xbf\xa8\
+\xbf\xb8\x8f\x91\xa5]#\x92\xc8\xa1\x00/l/\xbb]\
+\x22\xca\xeb\x92\xb2-D[G\xf6`\xee\xc0\x22b'\
+M\x09\x8b\xa0.%\x11X\x01\x12\x1e\xcd\xd3>\xd8\xed\
+\x17\x91l\xa8)\x08\x19\xb5b\x9d\x8a\x19j\x00\x91\xe7\
+~;\x15\xbe\x9f\x16\xe3Hb\xaa\xe5\x8c\x1c\xce+\x89\
+&\x96\xfd`8\xef\x7f\xaa\xc2\x0fF\x06\xcc_\x89\x9c\
+\xda\x86\x8e\x99z\xce=\x80Y\xea\x8c\xe7\xebs\xed\xa5\
+B\xfa\x18\x8dd\xb1_Q\xd0\x93\x17\x8f5\xc9\xf8\xf5\
+\xa8\xd3\xe9\x82W\x85\xac)\xe6\xca\xf7\xc8\x07f\xfbF\
+\xb4\xd1\x06\xaf3\xec\x07\xc7v\xc1\xeb\x97\xab\xbb^\xda\
+\xcf\xb1\xd7C\x94\xf3\x8b\x11\xa9!\xc09\xc1\xa8\xed\x8a\
+\xa3\xbc\x11@\x89\xbf\x07@\xcb\xe7 /\xa3!\xc3\xf9\
+\xc0\xf7\xe6\x9c\x822O\xbe\x0d\xe0\x8a=\xa2\x5cE\x18\
+QpA(\xc0\xcf3\xf7\xb8\x0d\xb0\x0e)\xe497\
+xN\xc8o` \x8c\x1b<cJ>\xbf\xdf\xeb\xfb\
+\xf0\xefh\xf4\xc2\xe8\xd1\xf3\xe8\x82\x9d\xf3\x9e\xfbO\x01\
+\xcf}fT\x11\x80\x8bu\xc0\xdf\xa7`'\xcf\x050\
+`\xfd\xd10\x91\x8b\x9aG1\xc8\xfb\x00T\x00\x9e\xf8\
+\x1e\xb8]\x01\xa0\xc1,`\xc4\x00`\x80\xff\xf8\x1c4\
+Z\xc5\x00\xf3sJ}\x05p\x03s\x1aM\x04\xea\x1a\
+\x1a\x1a\xb8\x00\x90\xc7\xb3n\xc6\xc0\x1f\xe7\xb8\xcek\xce\
+\x81\xb9Z\xd6-\x97\x0aj\x1e\xa8x\x8c\x17\x7f\x98\x07\
+\x8d\x02\x1bf@\x95\xb6TA4/\xe4\xe4\xfeD\xbd\
+\x08\x84\xfco\x0da\xa9\xe9\xfa\x83\x89A\xc0\x85\x0f\x84\
+e5un\x9e\xf80\xb3\xf9\xccP\xf0\x85\xf8\xb9\xd8\
+\xfeQ\xe8\x8f5\x0b2\xb0\xb1\xc8\xc3\xa8\x5c\xf2\xeb\xb1\
+x!\xbfO\x02\xca\xbf\xe7\xc1%\xa1\xe7\x15j\x0cj\
+\xdf\xd8\x22\x91\xe0*A\xa6\xd06\xe2\x0b\x02x\x93\x1e\
+Df\xdf\xa1\xbe\xe8\xc63K9ytDJ\xf8\xa1\
+\x9aj\xe6\x17\x8a`=6v\xab\x09\xf0\xb0a\xe0\x1b\
+Mg\x08\xea\x9f\xeeK\xf7\xba\x88f\xc3d[=\x89\
+\x8aAUu\x07\x0c\x9b,\xa9\xc6CAw'\x97Y\
+\x5cf\xcd\xe8\x0cQ@\x89\xc2h\x9fp\x89\xf79\x91\
+\x94\xd8\x96\xfd\x82\xa1&\xa2\x22J\xe2K\xc1HBM\
+\xa2\x07e\x1bJ?\x1b(\x94/uN\x99\x89\x7f\xc8\
+\x03\xc6\xf7\x94/\xad\xbf/\x07\x17\x1b\xdd]\xda\xd0\x01\
+\x04\x00\xba\xd8\x80\xe7$N\xf5\xdb\x127$\xe6\x08\xcf\
+\x95:4\x93\x0d\x06$\x1e\xa4\xdb\x94Z\xd4\xbb\xd9\xf0\
+Y\x97$\xee\x00\x03\xf8\xa9#\x9a\x86Z<\x09\x02\xdf\
+\x87\x99$\x0e\x1a\xa8\xd2\x14\xd2 \x8e<g\xbc\xb2\xa1\
+\xae\xad\xf5\x8e\xff9\x1b3\x9d^\xde\x87\x83\x8e\xeb\xb9\
+\x8a\x9e#\xdc\x01\xee\x19\xec@}\x1dy\xce8\x08\xd9\
+\xd0\x18\xe5\x00\xd9\xc5\x86\x05\x0a\x1c\xb3\xf8/\x88H\x1b\
+:\x00#\xeb\x91\xe7\x94\xef\xc7\xe7#\xb1\x00\x08\xc0\x9e\
+\x0e_x\x0e<f\x11)\xfc\x94\x88\xbb\xf0g\x9f\xe2\
+@\xe2>1\xab\x0b3\x08\x9b6\xee\x1f\xcc\x1b\xde\x17\
+\xc0\x8b\xf7\x07\x00\x05\x11\xe6\xa0c\xbd\xc1p`\xbf\x00\
+\xc8C\xbd\xfa\xf8\x81\x1a\xea\x0e?\xb3\x80:(\xe8X\
+v\xbbE\xa4\x8e\xac\xec\xa1f[E\xa4D\x06q\xb3\
+H\xb4C=\xfb\x98\x88\xf2q\xae\x8fh\x80\x19\x05\x8e\
+\x9fc\xa8\xdf$TJ\x18\xfb\xf3\x22\xd2\xfd\xa23\x01\
+\xd3\x86\x11\x04\x80b\x0e0:\xd0\x88\x9e\x82\xe0K\xdc\
+\x09ui\xfb\x12s_\xf0\xb3\xc6>\x90\x91\x80\x0fE\
+\x94\xf7\xb9dr\xe9\xe4\x92j?\xf6\xc3\xae$>\xdd\
+\x9d%\xd2>9\x99\x8bh\xcf\xa3\x99\x0b\x02\xa8Y\x97\
+\xbc/\xcfe\xfd\xe9w5\x0a\xfal\x9d\x88\xf2\xbaW\
+D\x03\x8c\xcc\xa8b\xdf\x82r8\xbe\x9e\xeaX\x03\x04\
+\xd4\xfb\xfefQ%\x8fN\x89/\xd7\x15f\x05\xe70\
+\xa2q\xcc8k\x1f\x86\xba\xda-\x13\x91\xf6\xcb\xd8\xe7\
+\xeeJ\x1a!\x00\xb2J4,\xbe\x0a\x90\x87(-3\
+\xed\xeaH\x9aI\xc2\xba\xe2\x5c\x94\xef\xb9\x13;>\x8f\
+DL\xe7C\x1c\xbd\xab\xb6\x8e%T\x80\xcd5\xdb\xbf\
+Z\xc8\xfe\xa3\x89z\xa2\x05\xe0\xd1%\xce\x1d]\xe7\xe9\
+v%J\xa13\xb7BD\xf9\xf5\xf3\x22\xca\xeb\xa7#\
+\xca\xdf;!\xa2\xbc\xef\xa7\x22\xd41\x0e\xca\xf6\x99\x11\
+J\xa0\xf6H#5\xd8`\x8a\xd1aqQ(\x97\xba\
+.$\x88<\x8fht\xd8e\x00\x80\x82u\x1e@\xdd\
+aI\xc4X\xeeD\xa6\x06S\x98hV\xb7{{D\
+z_1\xf6\x18\x05\xe3s\x1a\xf8\x17\xb0\xd0mUb\
+kQ\xf8\xbf\xa8\xe7\xf5\xe3idG\xd4\xd9\xfeS\x11\
+M\x8c\xb8??\xa2Q\x8b\xfbK\x22Z\xc1\x0fc\xb1\
+\xce\xf0\xdf\xda4i\x10\xf9\xab\xee\x19\x1fM\xfb\x0bb\
+\xc9\xb8QD\x99rp*\xbc\xe8\xa0\xa1\x99\xa1\x91\x8d\
+n\xcb\x88\x06 vG\x97x\xaf\x80\x89\x13\x9a&\x14\
+\xea\xd8\xd5F\xec\xad\xc9\xde\xf1\xfe\x88\x94\xb0\xff\xb4\x96\
+\xb6\xc3H\xce\xabS'W@\x05@\xbd\x81\x8eO\xcf\
+>\x13\x0c\x08\xd4\xfcK\xf61\x00\xc0\xa1\xb8\xf2\xe7\x06\
+\xd0t\x7f\xea\xfe\xd8\xfd\xa9\xb9\x1d\xd4\x7f\x7f\xa0\xa8\xf5\
+\x9fK\xe7\x1e@\x1b\x0d.1\x94j94\x88v/\
+\x08[7\x8bu\x9e?9o2\xb8\xf1\x0c\xf9\xd1u\
+r\x99\xe2\xbca&\xfeZ\x8d\xac\xbda`\x16\xcd\xb6\
+\x99=\xa7\x8a\xdf\xe1\x9e\xf0\xcf\x88T \x1d\x5c\xca\xc7\
+\x83+3\xf0\xddU\xf4\x94|u\xdd\xe1>\xd5*\xe0\
+\x11u\xbf\xaa\x9aL\xa6\x98\x93G\x03xQ\x98\x91/\
+\x8c\xdc\x05x.m\xdf\xa6\xf3\xdc\xeb\x1c`\x84\xf7\xa5\
+\x90\x1a\xdb\x85\xf3\xe7\x8c\xf4\xc2\xe0b\xfd0\x92\xa4\xe7\
+m\xf6\xa2\x88\xc6\xd80P\xc1\x88\x1a\x05:\xff\x9e\xef\
+\xf1\xa4RF>\xa9\xe5\xf7u=\xef\xd4\x18`h3\
+X\xa3B\xe7\x1d\x0c\x01\xbb&12\x86\x0b\x1b\xd4o\
+~>?\x8fB\x9aF\x0by\x09@\x22\xea\xf1\x14\xce\
+\xec\x7f,p\x1a\x0a4\x068\x0fa\x1e\x90o0\x9a\
+\xc6\x08\xb2D@\x9d\x97\x91\x87\x92\x873\x1aC\xfe\x07\
+\xd0\x02p\x00\xd0+&\xb3\xb5v`\x10q\xfd\xa0\xb8\
+\xc3p \x8f\xe3\xbe\xc2\x0c]\xd8\xdaR\xc3\xf7g\x1d\
+\xf0\xf7)\xd0\xa9\xefX\x1f4\x18a\x92\xa0\x9a\xcfu\
+E|\x14\xaa?L\x0d\x0ai\x0ak\xae\x83\xd6\xa3\x19\
+\xa3\x5cg\xd6\xf5h\xf6\x9e\xbc\xdf\xa3!0\x22p\x9b\
+\x82\xd1\x89\x06\x19\x22\x81\xe4\xd3\xac?\xf2iF\xc8\xb4\
+\xdf\x98\xe1I\xc3\xef\xcf\x11\x0f\x03\xc0pn\xeb\xf9\x9e\
+\xab\x1fs\xb9\x84 \x8d\x10\x11S\xeb%J\xf2_T\
+\xfc.mT\xd1\xc7\xf8O\xb2\xdb\xb9\xb5:\xa6\xb7\xc4\
+\x9e\x07?\x96\xf3\xbf\x13\x100\x9eQ\xe0@#\xe1\x03\
+y!a\xa7c\x06\x15?\xc4\x05\x97J\x17\x1c5\x7f\
+T\xaf\xf9\x1e#\xdb\x8eZH/\xaa\x9f\xb3\x9e\x0a|\
+\xfe\xde\xa2\x09\xc9\xc4v\x0c\x95aT\xd0\x03\xc7\xdc$\
+Q1\xa0\xd2K]\xd66\x82,\x0c\x16\x10\x1b\x0a\xd7\
+\x8d\x8d\xf6n\x15&\x5c\xa7\xb1=\x073g\xa2\xc6\x82\
+\x08c\xb7\xd3\xdd\x11Q\xa9 C\x01\xa0\xd9)w\xf4\
+\x8f\x8fH\x05\x13\x9d\xc3\xcb'WL\x22Q<K\xa2\
+c$\xf8\xa2\x06Y\xf4\x0c\x15Kl\xed$6\xd7\xff\
+'\x22\xcd\xba\xd2\xb9\xe3\xf3\xab\x13\xe4\x03\x16\xaa#\x1d\
+:\x18\x04\x12=b\x86\xd0\xd4\xcbHL\xb6j\x1b\xb9\
+\xc5n\x98\xa9\xc1=\x80Y-\x1e\x10\x1eT\x0avf\
+\x1a\xa1\xf2\xa3>\xcb\xfa`\xd6\x86\x99$!x\xf8\x8d\
+\x9a\xfaC\x87\x8e\x19\xbd\x0d5\xc3\xc9\x86C\x87\x83\x0d\
+M\xee\x02.\xc8X\xa7P\xc7\xa1.\xc2\x14\xc1\x17W\
+\x8c\x91\xee\xe9\x11\xe5\xfd\x96\x8ah\x89\xbc'o\xb0K\
+a=Q K\x0d\xdb\xa3\x01\xfc\x1a\xbb(\xec\x8a\xd4\
+Qgv\xd2\xe2\x86P\x11\x1f\x94\xe6\x06\xeb\x10 \x85\
+Y%6\xc8\xd1\xc8\x83\xff\xa3\xd3O\xe1u\xc1\xec\xc2\
+Z\xb8\xaf\xa2Q\x1f\xc4a@\xe6U@Y,\x8f\x7f\
+?\x1e\x09\x80\x91\xa2\xfb\x01E\xce6AZ\xc7\x1e\x09\
+\x80J\xab\xf5a\xad\x0d\xa8S \xc3\x14\xdc\x00$\x00\
+\x02r\xcfpA\xc6:\x80\x12H\xc7\x9f\x7f\xc7>F\
+A\x0bP\x05U^\xc0\x80\x993$.\xa2\xfc\x19\x90\
+\x02x\xc0~\x8a\xeb\xcf\xf3\x05#\x85\x83\x93\x84\x0b@\
+\x92\xef\x8dH\x1c\xd4N(\x83\xa2\xf2\xd7\xd9\xe5\xe84\
+\xff9\xa2u~\xcc8\xd0,\xa9\xa9\x88\xac7lm\
+\xd4ABu\x9c\xe7\x8dB\xc8~\xe6\x1bF\xb4\x03\xd0\
+\x94N\xad7\xef\x03\xb7G\xb4\x03\x0cu\xf3\xc9\xc2\x11\
+M\x03\xc1\x14\xbe\xbd\x07\xd5kF\xb9\x98\x95\xed\xf7\x89\
+H\xd4f\xd4\xc0\x11\x19\x94\xcb\x86\x81.f\xf4\x04\x80\
+T\xaa\xf6\xd3\x92\xff\xae\xfc\xd4\x19\xf9\x80\x1ai\xf7\x05\
+\x1d\xf8\xde\x1f\xbf\x1b\x91\xf6\xcde#\x92x\x1d\x14a\
+%6\xd60\xa0\xe3(;2w\xe4\xa1DK\x8d\xbe\
+R\xba\x9f\x9f\x0aO\x98\x0b\xd8\xab\xbd9\x22\x01Z\xac\
+_\x5c3`<\xf1\xfc2SJ\xe2\xf6\x86\x88\x9aX\
+\x0e?\xef\xe7\x93+\xebyqF\xed\x05\xb6}\x82\xce\
+\x07\xe2Q$\x1c$\x96tr\xc5@\xf1y\xbafD\
++P\xdc\x89$A\xd2\xe7\x82\xea\x0a\x93\xc83\xe5b\
+\x9a\xd5\xa7\xf6\xe9\xe9\xe7\xf2<\x053\xee\xb7i}(\
+\x113\x05\xfeI\x11%\x11\xba!\xa2\xaa\x99\x97(\xaf\
+\x1f\x8a\x90\x9dn\xf8\x9b?\xa3\xc4\x16\xe5u\x85\x081\
+.\x1e\xab\xf5\xfdI\x8d\xc8\xed\x9c\x80\xdf\xf8\xff\xf5\xea\
+\xac\x1d\xd7\xecy\xbd\x7f\xe1\xf3\x0d#\x87\xfb\xc6\xfe.\
+&\x15\xe7\xa1\x13\xff\xc8~6Ny\x834}\xfc\xfe\
+\xa2\x16\x87\xb4e\x88[\xda\xb6O\x85\x09\xe7\x0a\xeb\xc1\
+v}\x91\x88\xbf\xb8\x15\xde1\x98\x18\xa3\x89\xb5\x93\xbb\
+w\x1a\xcd\x83\x918\x17Q^\xf7\x8e(\xf7\xe3{\x11\
+M\xab \x94\x8bB\xbb\x08F@\xff\xc2\x884\x03\xae\
+\xfb]\x81\xc7]S\xa3\x00\xa0P\xfbJe\x22\x84\x06\
+\xc02\x11\xc9\x05\x88\x825\xce\xcbp\x9bxj\x89\xcd\
+\x05\x80\xbc-\xd9'\xc2\xb8\x02\x08\x8eo\xf1\xbed\xbf\
+\xa9N\x9a\x0b\xc2\xf7E$\xfbR\x15\x1a10\x19n\
+>\xe4\x7f<Wn`<B\xc0`HI~G\xe7\
+\xca[\x9ao\xbd\x9fO1\x84\xfeK\xccz\xe5\x94\xc7\
+\x8cl\x87\xeb\x08\xc36\x95apQ0\x0c\xeaO\xf9\
+\xca\xf0|\x07\xa3j\xf2\xdb\xc9\xf5\xd1\x08\xf2>\x0dE\
+\xfb\xbd\xb3\xa3j\xe7}a\xd9r\xaf\xa2Q\xaeh\xc4\
+\xfc@\xb6\xb0\xb7\xa5\x02\x15\xca\xf31\xe5\xfa\x1cS\x01\
+\xc4\xcb+\x80\xc8\x88\x03\x05e\x98C\xee\xd9\x98u.\
+T^;\x88\x1b\xe3jP\x07tnN\xe7\x13\x9dM\
+5\xf2\x0c\xd8\xca\x95\xc0\x9a\x05\x1au\xa8|\xa9O\xa5\
+\xce%\xe2\xbdb~\xda\xae\x8d\xf3\x96\x9f\xc3\xf5\xa4\xee\
+@\xac\x8e\x0e3\x00\x80\xf6Y\x03\x16\x8cp\x0a\xd0q\
+\xc3\x07\xaa:\x8cT\x0a1\x00\xf8\xe0w\xae\xf7\xd0}\
+\xd0L'1\xf5h4\xf9\xf9\xa6!\xc3y\x8e\x18!\
+y#\x056\xe7\x1b\xf9\x90\x0aB\xf2>w\x90\xb1{\
+\x86\xb9\x08p\x0b\x03O\xc0\xb2\x01i\xae+@\x89\xf2\
+\x04\xe7\xb94f?\x1c\x91:\xf1Z'\x16\xe1\xc5\xdd\
+Eb\x9e\xe4sv#\x19\x8d6\xb8a\x01\x10q\xc3\
+\xb0?\xd7jn\x99\x87\xb1\xdf\xa3\x01\xc4\xebx\xc4c\
+\xec*E\xe3\x85\xf7\xe1\x95\xfc\x91<\x9d<\x15\x06'\
+\xfb\xadF\xe1\xdc`\x22\xcfd]Q/\xe8\xe7X3\
+\x8e:\x0f\xe60\x9a\x03\x00zj\xdc\xb0\xdf{\x84\x82\
+\x02\x9f\xf5OC\x8eB\x9d\xfb\xa3\xf3\xde\xf9:\xd7\x93\
+u\x0ep)F\x87\x99\xaf\xa3z\xd3\xb6\x9b\xba\xffs\
+\xf5r,\x95\xa8\xfc\x00\x00Ym{\xd1T\xf8C\xe1\
+\x89c\xf6\xb6D!\x811\x90\xfdV\x17M7 \xdb\
+\x1b\xf4\xe9\xefq\x01`\x10\xf0\xc5\xd0\x06\x80\x92\xcf\x0d\
+S\xc7\xdf\x17\x1e\xca\x0b?\x87\x05\xc1\xe7\x8de\xb2\xcc\
+\x88:\xb4Xb4\xc4\xff\x1f\xce\xf5\x80\x05\x87\xd8\x07\
+\x1b$\xef\xcf\xc8Alg\x9b\xa4\x99bf-qE\
+\xa0\x00\xc5\xdf2\xc4n>\x9afj\xe8\x80\xbeET\
+,\xa8lsC\x07e\xc1\x11\xea\x98\x91\xd0\xa3\xbaZ\
+\x8e\xbb\xee\xa9\xc9\xa6\xe8\x0b\x83\x06\x00\x9d\x98\xe9\xc1\x11\
+\xe5u\xdf\x88\xf2\xbayDy]>\xa2\xbc\xde\x1bQ\
+}\x8c\xd7\xe9\xc2\xf5\xe0\xbe\x88F\xddr\xc1\xc1\xc8\x81\
+F\x07L\xa9]2\xa2\xa9]2\x0b\xe5\xf5\xc0\x063\
+\xf25u\x87CT#'fR\xa9v\xa2\x8d\xfd\x95\
+\x0e6\xcf\x90}:\x22i\x06\x90\xa8\x92@I\xbc\x8c\
+Y\x1ek#\xd0Qc6\x99\xfb\xa2B\xd6\x05\xe4\xbb\
+#\xd2\xfd\x07\xc1\xa3s\xa0u\x17\xd2`\xf5\xc0\x07\x81\
+\x85\xeaO\x87BbY\xa5\x9c\x19\xa8\xb9\xf7\x94\xb87\
+Q8\xf1\xb5\xfe|D\xda\xc0\xaf\x8bh\xe2\x7f\xcc,\
+\xbb\x93&-\x06\xcf*I\xfc\xc7\x09!\xeb\x9a\x83\x05\
+\xea4\xe26\x00V\xack\x12m\x12\x0f\xd69\x1b\xcb\
+\xd3JZ\xfd\xb4\xa4vN\x87\x9aB\x82\xeb9\xb6U\
+aC\x84\x22\x06\x05\x91D\x0c\xd7\x0b\xd6\x07\xaa\xf7t\
+*@\xcay\xaeA\x8c\x99\xbd\x17`\xe2Yi\x0a'\
+\x0ax\x9eg\x0ae\x90\xf4\xf1\xf7\xe4`\xc0\x0f\x1d;\
+?\x90S\xf6\x1df\xdb\x11\xbd\x02\x90\xe4\xe0\x01\x00\xa4\
+\xc0'\xd1\xe1\xe0\xc6\x8e\x0fQ@\xae#6B\x1a\xf5\
+0\x93\x81YU\x00\x0a:\xffh|\x00`a\x93E\
+\xe2\xc2\xfdV!\xc7\x0c\xa6\x0f^4(\x00\xd4\xa4\xd9\
+\x01%\x12\xbb\x1d:\xb2\x1e\xb5@\xa5\xfc=C\xa1;\
+\xdb_*\xbcz\xae\x98-\x9e\xfc>\x221\x9c\x98\xa9\
+d\xb6T\x0c)\x00K\x17r\xb2\xc92@\x88\xab\x01\
+\x09\x04#W0*\xe8\x18\xaa\xd3\xd2\xdf\x1e\x91\xec\xc7\
+\xe8(\xc9\xff\xba\x7fsD\x1a\xb1`]\xc0\x88\xf9\x94\
+Fw6\x16\x13\xe4\xaaR\x16\x94\xe7\xeb\xc1\x93#\xca\
+2~~Dy\xbd\xa0\xc4\x85\x02T?\x91\x00il\
+\x04\xc3g\xfb\xb7I\xe4+F,^\xaf\x11\x9d''\
+j;bwP\xe5\xd9g\x18\xf5\x00\x80E\x95\x98\xfd\
+\x94\xe7N\xe2\x8bu&\xf8\xfdit\x82\xc2\x92Q*\
+\x0a{|\xb6y_\xf6\x09\xd6/To\xf6El\x5c\
+5k\xe9\x11\x84\xb7\xd4\x93\xaa1\xd2D\xdd7\xf3\x04\
+\x17\x02:C<\xf7\xb87\xd0\xd2d\x1fB\xe3\x81\x84\
+\x10\xa0\x1ef\x80\x00\x084pX\x17NT\xc5\x9c\xe9\
+O\x8fh\x00.\xb3\xdff\x14\x1c\xb4\xe0\xed\x95\x8a\xbd\
+uDy=4\x22Q\xb2_\x18Q\xee\xef\x13#\xca\
+\xaf\x97\x18(\xdaU\x04\xb7\xac\xb3n\x8f\x12\xbb+\xb1\
+\xfa\x9f\x94\x9fDZ\xb8R\x02\xb2\x05\x18\x03\x84y]\
+\xd3\xd1G<\x0b\xb1O\xce]\xce?5\x1c\xec\xda\x00\
+\xb0\x8e\xf80b\xc3$\xc00=\xf4\x5ctGF4\
+`\xc7\xe7\xe7\xeb#\x9a\xa6H\xf7\xec\x88\xf2\xfa\xab\x88\
+\xf2\xfa\xcb\x12\xbfHb\xc0\xc7G$\x91F\x9d\xef\xb3\
+{\x22\x9a\x9d *\xd8\xa6\xf2#\xf2\x87F\x8d\x00\x02\
+S\xf5iL\x88!bqN\x89{\xa1\xf2_%\xca\
+>\xac\xc4\xf6\xd6tN\xc0\xe4\x88\xeb\x14\xa2\x8c\xa7E\
+\xb4\xf3\xb1\xdb?\x225\x00\xe2\xaa\xec\xdd\xf6Kk\x17\
+\x89\xe1a\xc0P\x80\xc7l\xe9\x08\xcd\xf4\x97\xfb\xda/\
+Ub\xe9\xf4\xbd\xe2:\x1e\xd0\xec(\xfb\xbd#Z\x1e\
+\xe3\x86\x09L\x06%\xe2U<r\xc7\x91K\xc8o\xd2\
+s\xa7}`\xf6\x94\x88\xe4\xba\x225t\x03\xd0t\xfe\
+`\x02\xa1\xdd\xc1\x88\x09>\xe47E\xa4\xeb\xc6yN\
+\xbe\xcc\xbe\x03PM\xe7VT\xf0:b\x90D\x0fm\
+\xa7\xcc9\x12\xa7\xcb\x0e\xa9 z@\x8d\xbf?\x8bY\
+v\xb7\x98\x88bZ\xba\x03\x0c\xe3\x88\x8e\xb1\xa8\xc8\x0b\
+\x1e\xa5\xef)Q\xec\xd9k\x22\xd2($\x94\xea\x11P\
+\xec\x0e:\x85\x0e\xa2\x83\xe4\xa1*\xdca\xa6\xcdv\x1b\
+4Ff\xb7\xcen\x99\xdd\xd2\x98,\x06>\xcf\x1al\
+\x17g\xebE$\xc6\xe0Fb 3\xeav\xf5\xecW\
+1b\xb8\xe0\xd8\x05\x1f\xacn\x06\xdc7\xee\xff\x88\xc2\
+\xed<\x9f\xbcR@\xa5;\xc3\x8c*q.Qx\x02\
+8P\x10\xd2H\x84\xf9\x89\xb8\xa1\x18\xc0\xa5^\x88\xf0\
+h\xab\xef7\x80(\x0d\x1b\xea\x18\x18\x88\xd8\x19\xe3\xf6\
+\x80f\x94\xee\x975\xacp\xffA\x8cR\x05\xab\xc5\xe8\
+\xa4\x85\xe1s\x8a\xcfK\x83w\xa4\xd9T\xb3\xbb\xc7\xd4\
+\xef;\xecg\xd4m\x006\x9cO\xac3f\xfa\xd9?\
+\xe4\x06\xe3<\x8d\xba\x95\x83f\xcc<!O\x86\x01\x01\
+p\xcd+?\x07qG\xf6\x11\xd6\x15\xfb\xeeX\xdb\x80\
+\x7fO\x9eF\xfe\x08\xd3\x93zJ\xff\xce\x0c\x17\xec\x14\
+\x01x\x01\xfe8G\xc9\xaba\x88\x92O\xf39\xb8N\
+\xac\x13\x001>7\x9f\x0b\x8d6F\xa7\x05L\xcc\xf9\
+\xc2e\xf5\xffG\xa6\x1b\x15e\xcd\x13\xdaL~\xed@\
+?I\x88\xc2\x1fZB\xe3\x05&\xc6\x80}\xbb\xe9\x94\
+\x07\xa1e\xeb\x94\xc81z\xc0\x05\xe7\x95\xcf\x83h\x01\
+74\xd2\x83@|\xd7\x89H\x1b\xd1\xb2u\xe9,0\
+\x90A\xc1\x0fR\x14\x97g\xe5\xf4\xf325i\xb1\x11\
+C\xe0Q\x0f\x15\x8f0\xf2\xc3\xf5a\x14 \xb6\xaf\xc5\
+\x12\xa5\x1b\xca\x0e\xf6\x87\x5c\xbf15\x1cF\x05\xef{\
+\xf4\xa0\x06\xdam\x1bQ\xde\xef\x98A\xe4\xc5\xd4V\x00\
+\x014\x04P\x81\x14\x05i\xc1v\xa5\xdc\xdd\xae\xf9\xf6\
+zD@j\xad\xdd\x8f#\xca\xd7\xfabDy]&\
+\xa2\xfc\xfeN\x11\xcdW\xda\x891\x07\x01\x1b\x11\x05\x05\
+\x0f\xbe\xa8\x84\xfd+#\xda\xec\x8aE\x80\xa4>\x0f\xa5\
+\xdabU\x88$\x82t\x91\x00\xa1Up\xc7\xe4\xaf\x93\
+\xf0\xd9}B\xc4\xc3Pp\xb0?\x92zi\xb7YD\
+C\x1e\xd9\x90&}D\xf9\xf3U#\x92j,\x07\x08\
+\x09!\x05\xa4\x1eL\xd4\xdbM\xa9\xc5o\x9b\x83\x05\xc0\
+\x8au9\xaf\x07\x95\x8e\xa5\xd6\xa5\x99\x0e\xccXq\xb0\
+\xc7l\xe3W\x93+\x04j\xfc\xd1\xd9:\xb6\x162\xd5\
+^\x04\x00\xc0\x07\xb6\x0a<'\xccl8\xd8\x8e\xe9@\
+\xf4}\x80\xfaLB#$\xd2\xc8!\x07\x1d\xaf\xa3\x02\
+\xc0\x07=\x05\x00H(\xb3\xc7\xd8\x1cb\x0f\xf9\x1f\x15\
+\xd2\x0b\xab\xe0\xe6\xf9e\xe3\x1d\x89\xa9\xf8\xe7\xa9p\x9a\
+]\x16\x91\x10q\x9e\x17\xfc\xca\x9502jbq\x1e\
+:\x02\x1ai\xb1h$\xebN3\xc7\xa6\x90\x03\x181\
+\x03\x095\x90BC\x05\xac\xdf\x9f\xe7\x97\xf5G\xc2B\
+g[\x85\x89\x138\x0a|\x0a\x18\x0a\x1a\x12,F{\
+`\x0cP\xe8S\xf8\xc3\x04`\xdd\xf0~P\xffU\x08\
+x\xb6\x18q\x1a\xc4\x86P\x09\x06@\xd96\xa21@\
+\xec\x0a\x80\x0a=\x07\x87\xd4\x88\xcd\x10\x02\xc1\xd6\xec+\
+\x14=\xc4\xe8PG\x07\x80\x82\x0a\xcb\x0cz\xf7\xc6\x88\
+\xd4i@\xa3\x03\x00A\x94T\x12\xe3\xc9\xd9\x11i\x06\
+\x0e\xb5\xe2\xef\x88\xa9\xf3\xf9\xc9i\xd1\xe1+\x7fk\x98\
+y_U\xa3\x16\xac\xff\xed\xcb\xdf\xde>\xd9\xa7\x02\x8c\
+\x91pA\x19\xa4C\xa4\x82\x9fN_\x7fBD\x1a!\
+R\xe7jv\xd6\xecK\xb3\xb3\x9a\xbb\x81\x9f?%\x16\
+\x14H\xdd\x85\x11\x0dx\xb5\x86\x00\xfb*vk\xf2Q\
+7\x95?\xec\xf6\xeeU'\xfd\x0b\xe9\xe7s_b\x15\
+o\xac\x83\xfa\xfa\xf4\x5cD\x19\xfd\xc2T8\xc2D\x80\
+\x81\x82\x1d)\xe2\x82t\xa4\x01\x0aE=\xad\x94\xe8\x15\
+\x13\xd3\x8e\xe7U\xeb\x9e\x11\x093&\x10k\x14\xa0\xe4\
+\x82\x15\xe0\x07W\x14f\xfe\xe9@\x90\xc0\xb3/h6\
+\x9f\xf5b\xb1F\x0aODX\x19\x9d\x83\xa9\xa2\xfb\x05\
+\x13\xcdZ\x03\xecSk\x0f\xf6j\xd5\x86o\xa5\x06\xf8\
+[\x03G\x8c3\x0a\xc1n\xe1\x88\xf2\xbaMD\x03\x00\
+\xba\xd7\x978@\x0c\xbb\xf2}\xbb\xbf\x96\x08f\xdd/\
+\x22\xca\xeb\xdf\x22\x1a\xf0_w\xe7\xd7\xeb\xb9\xfb~\xa2\
+\xc8\x02\x8c\x090\xf6h\x16Z5\x02\x1a]\x90BE\
+\x8f\xe7\xec\x0d\xea\xc8\xed\x9c\x98\x92Q\xc6\xdd*\xea\xe9\
+\xd5\x1a\x85X\xbc\x8dR\xf0s\xba\x7fG4;`\x8f\
+\x16\x84\xdf\xf8\xbb$\xda\xb7Q\xd30\xa8\xc0\xd6\xf6J\
+\xfc?\xd1\x00\x8b\xfe\xc6\x88\xf2zi\x89\xcb\xda\xcf\x99\
+m\x10Q^\xff\x10Q\xfe|\xe3\x88\xf2:\x17Q^\
+\x1f\x17\x91T\xa9\xa5m1\xfdJD\xd36\xf0\xa8\x8c\
+\x00\xa6\xbe\x8b\x90\x8d\xef7\x93\xdb\x8aFi\xe6\x7fY\
+\xe2Wb\x5c\x9c\xa8\x99\xfa\x00jV\x8bH\x80%\xb3\
+\xe7\xcc\xc6Rh\x89\xd2\xdc}.\xa2\x15F\x9c\xb7\xfd\
+I\x11\xe5\xf5\xeb%\xcek\xda\x13t\x9am\xb3\xfc\xef\
+\x88T\xe0\xa1\xc5\xa2u\x81V\x01\xbe\xee\x00\xa2\x16c\
+\xa5\x93\x0c\xf5W\xf7\x89\x06\x80\x0bp\x01+\xac;\x03\
+\xd0<\xdf0\xb4\x18A\x02(\x05\xf8\x070\xd4\xbe\xe7\
+\x99f\x18:\xd8_F\xf9\xf7\xa2d\xbb\x06\xd3#\xbe\
+\xddK\x92\x0b\xd6\xa8\x83n;\xe0?\x0f\xb6\xb2\xb5\xdd\
+\xf5\x88$v(\xe0\xbb\xec\xa3g\xc5>\xca\xe7a\xf6\
+\x18\x97\xa3RK\x0c\xe2\xcb'+\xdfa?z\xb1D\
+D\xc5X\xf3\xe8\x11\x05\x15\x0d\x0c\x0aI\x0a\x1d\xf6Q\
+\x18Pa\xcf\xb9p\xd3l\xa8\xd9\xf2v\xa9\x10Gd\
+P\xccZ\xdb\xf2\x01\xf0\x93\x87\x22\xde}Z\x84Fl\
+wM\x85;\xfb+\xea\xf0|OiA \xfaiq\
+X\x98J\xd8\xb6\xb1\x0f\xb2_\xd3XA\xb3J.'\
+|?\xab\xe1#\xbe\x07\xa3P\x1a\x04\xce\x97)\x1c\x19\
+\xe9e$\x84:\x88\x86\x08\x1db\xa8\xe3ZO\x1e\x1d\
+D\xd3\x02\xfbR\x80\x0b\xb4\xa5\xa8\xd3\xa8\xa7hpp\
+\xfe\xb2\xef\x01\x04q\x1d\xd9/9\xaf\xa9;\xa8\xbfh\
+\x10\x93G\xaaP\x86\x09\xc6\x08\xad\xaf\x17\xeb\x80\x8e8\
+LU\x0a\x7f\x80\x00\xde\x97|\x0d\xe0\x01\xc0K\xf5\xab\
+E\xafY\x0f4\x96\x18\xfd\xa4\xae#\xcf\x01\xb0\xe7{\
+SOQ?\xc2\x14\xc1\xc5\x83\xbcS\xfb\x81G\x13\x00\
+\x80\xc8\x8b\x19\x11!\x0f\x85\x19\x80\xb6\x0e\x8c\x03\xeaJ\
+\x00\x1e\x80\x02\x00\x09\x9e_\xe5\x13s>`\xd0\x00\x18\
+\x03\x01Q\x0ewJh\x96I\xf6Kt\xa2\x02\xd1>\
+8]\xd0x\x1c\x97\x16\xb2\xff\xe6\xc4\x18x\x5c\x95\x0d\
+j\x1dRl\xc1X\x88\x91\xeeo\xad\x8dy\xa3\xd4\xf9\
+\x83\x02C\xc2\xf2d\x15\xbe\xcc\xf4\xf2\x85y\x1f~>\
+\x85\xc6r\xd5\x89\xbc\xa9Y\x07\x15f\xa54\xb3\x9b\x01\
+\x81%\x92\xbd 7\x96W\x1eT\xde\x0fF\x01\x1d<\
+\x16<\x88\x1b\x00\x05?\x87\x0e@ \xb7A\xb9\xdbj\
+\xb2ut(\xf0\xb7\x86\xfa\x86(\x0f\xfe\xac\xa6\xd0R\
+\xd83\xf3\x81\x7f\xa6\xb4\x00\xbawG\x94\xd7OF\x94\
+\xd7\xb9\x88\xf2\xbaXD\xa3.\x1a1\xe7}\xd8\xc8)\
+\xd0I\x049P\xb0\xdd\x93\xb8V\xbfuDy}l\
+\xbfl\x1f>\xf5\x1f\x8b(\x7f\xbeSD\xb2Y\x92\x0a\
+twFD\xdb\x90&O\x89h\x07\x0d\x1b\xa8;\x87\
+,P6T\x10U\xa8F\xcc\xd0B}\xc7\xe6FT\
+\xa5\xe9e\x11\xc9\x07[\xaa\xa1\xf6\xaf\xc6\x9eP>\xab\
+$\xee\xb6\xfba\xd6\x8c\x82\x85Yc\x10uD\x08\x1f\
+\x1d\x8e\xd0\x09hb\x03\xd5\x03L\xe2\xe3\x19\xca/\x95\
+\xf2\xecK5\xa19\xbb\xce$\xe3\xf7)\xb1\x95\xfe\xbb\
+\xfd\xc5\xfd\xc5m\x9d\xcc6\x8fhH\xb8EF\xb0\xe7\
+\x93\xaa(\x07\x9c\xef#\xa2S\x14\x9e<\x07\xfc\x1a\x04\
+\xf2\xa7\x11\xa9#\x87k\x00\x09\xc3A\x11\xa9p\x17#\
+\x03\xca\xa0G#\x0e\x12\xa5\xf3\x8f\xa2\x84s\x80AA\
+\x1b\xfb\xa9\x82\xac\xf2\xf7HTd\xd7\xe6\x0d\x99\xe7\x0d\
+\xb5p\x80?:\xecl\x90\xa8\xfaSp\x80\x84\x93\xc8\
+\xb0\x11r0\x03\xf0\xe8\xfb\xbb0\x97\xbf\xab7x:\
+z\xd8\xae\xb1\x1f\xf1\xbe0\x12\x94\xc0YC\x80\x11\x14\
+\xf6CF\x0b\xf8\x8f\x83\x84\xce\xc0\x88\xf2i\xe6\x00\x05\
+\x10#\x01\x00t\xfa\xf9\xb6U\xc3g\x1d\xad\x08\x00*\
+l\xa1\xa0\x22\xe2#M\xa7\x08*\x223\x7fPH\x85\
+\xd4\x9b\x22\xf9\xabAL\xb1$yC\x22\xad\xef\xdb\xfd\
+!\x22\xdd\x07\xb9{\xf4GE\xa4\x0e\xd6\x9e\x11)\x91\
+ \xc1`\xd6M\x94G\xbb\x1d zy\xb5\x9eC\x0a\
+o\xae#\x80\x0e\xe7\x14\x09#\x1d\x12ut\xdc\xb9\xc0\
+\xa6\x0b*\x1e\xfb\x08\xf6<\x9a\x8d\xb4\x1a\xb9\x12\x8f\xee\
+\xe0\xa1\x90\xef?\xdd\x7f\xa6\xffL\x05\x0a\xf7\x0d\xa0\x10\
+7\x8e\xe99\xd3\xb3\xa7\xe74&T\xf7\xbc\x88&n\
+\xd6-\x1bQ^\xef\x8f(\xaf;G4\x80\x90\x8e\xb6\
+\x13\xd4\xa7E$\x80\x82Q\x9c\xf3\x95\x80J\x84\x0b1\
+1\xf6\x17\xdb\x15*\xf1\x03 \xa2C\xeb\x8e\x00\x22O\
+\xac7\x80d\x00E\x00\xceE\x87\xf3\xb6\xdb\xb8\xdb\xa4\
+\xdb$\x01a\x02\xc6f\xbbE\x94_\xbf\xa9F+|\
+\xa4\xd5b{\xaf[#\x92\xb8$\xc0\x22\x9d\x0e\x807\
+|\xc8\xe9\xc8\xd0\xb9c=3\xb2\x87\xaf<@.\xc0\
+\x19\x05\x10bW\xf8o\xc3H\xb8c\x18\xbd\xa2\x83Z\
+\xca\xbfS\xbbS[\x07\xd7\x94\x7f\xb4\x04\x028\x8e\xce\
+\xf2\xbe\x11\xcdnp\xbavD\xf9\xfd\xf3J\x9c_\xd6\
+\xc5kK\xec\x97l&\x83\x22\xfbe\x9dK7&\xe6\
+\x0dTZ\x9d#\xb8\x1cTF\xd8=M\xb4\xb6v\xd0\
+6\x13\x00\xbe\x81\x18@G\xb4}\xa9\xae\x8f\xa7\xa7\xc2\
+f\xbb\x12\xcfk\x80@\xf7\x8d\x88\xf2\x1aut$\xda\
+\xaf\x8e(\xbf~k\x84\x80\xea\xe5\xa5\xa6\xbf\xa2\xce\xb3\
+\x9b[g\xban\x03e\x1f\xe8\x7fQ\xe2\x97\xda\xe7c\
+\xc6\x7f\x85\x88\xf2\xfa\x95\x88\xb2\xad\x1d\x10Q^w\x89\
+(\xbf?\x8dhj\xd6\xdd*\x11\xe9<Rg\x8a\x19\
+}\x8f\xf4\x08`\xec?\x19\xd1\x12Z\x03\xd5\x123\xed\
+_\x11!\x17\x86\x1b\xc5\xb0\xb9\xa1\xb95\x98Y\xa0Q\
+\xbcr\x95w\x88F\xc9l\xcb\xd9Vu\xa6{9\x01\
+\xc5\x88+\xca%\xc1\x0c;f\xb6a\x14\xc5\xdd\xbc4\
+1\xac\x18\xc5\xc1&2\xee\xcbQM|\x99N\x1d\xe2\
+\x91\x06h\x01\xac\xe5w\x8f\xab\x83)\xbe\x88\xda\x8a\xe1\
+gW\x14\x156\x00\x89\xces)t\xa3\xcc\xb9\xa6\xad\
+\x1f\x9f[c\xf1/\xce\x01^\xc9k\x18\xe5zv\x84\
+\x0a\x99\x1d\xd2\xfa\x94\xbf\xba59\xc8\x7f9\xffc$\
+\xe3\xc8t\x1e\xc2\x84Y\xa1\x5c\xe5\xcc\x98e\x94\x94\x99\
+k\x1a\x85\x9c\xfb\x00\xb9t\xd8\x01\xbaa\x0c!\xde\xcc\
+y\xb8\xbd\x1a\x0f'\xcbf\x8e?\xa7\xa1C\xa1C\x81\
+\xa8sg\xb6\xfa0\xca\xe5u'`\x86\xfc\xd0y;\
+\xc0\x05\xe2\xaa\xbc\x8f\x983\x06\xee\x11\xf9\xd3H\xa5\x99\
+T\xec\xa3\x8c\xc6)\x0f\x81\x12\xdf_\x1bQ~\xff\x7f\
+k4`\x84\xf3\x0a\x9bn\xd6\x0d\xe2\xb6h\xf6\xb0?\
+\x92\xc7^\x16\x91\x0aW\xe5[h&XT\x16\xa0\x83\
+\xbc\x8e\x11\xbe\x91x\xad;\xf9\xca\xb3<\xabN\xdeH\
+\x9e;M\x9aV\xbfM\x8c\x09\xec\x04\xb1\xe1\x14C\x85\
+\xc2\xdc\xdf\x97B\x9f\xf7\xa5\xde\x00\xd0\xa7\xee`\xbd\x02\
+\x94\xb0N\xf8\xf7\x9cW\x5c\x7f\xee?\xeb\x95\xff\xc8\xe7\
+\xc6\xdao\x5c\x17\xea5\x12a\xaeKc\xb6\xfcW\x1d\
+\xe8\x91U\x001\xf2x\x006\xb4\xc9\xb0\xe7e\xdd1\
+\xda\x01\x00\x81M%\xcf\x8b\xd6\xbf\xc5\xda\x7f,\x976\
+\x0aw\xce\x11\xb4\xcd\xc8ka\xc0\xc2x\xe4>4\x1b\
+\xee\xa1\xbe%?\xe2z\x08\xe8\x98\xf3\x0d\xc8\xea\xdd\x0f\
+\xa6\xc4\x1d1\xbf\xe8\xd4]*j\xf3~\x09\x08\x88\x8f\
+\xb1l\xb2\xe5\xe3BG\xf9\xbb\xb6\x0a\xbeMu\xa1\x9f\
+\x9c\xd4\xf5cRm_m\x84\x7fI\xbf\x8fm\x1fL\
+\x01\x16\x0a\x9d~\x12Nn\x00\x09 \x0b`i\xd9\xfe\
+\xe8\x020;\xe1\x05\x1c\xef\xb6FR\x05\x87!\xc0\x05\
+\xe5\xc2\xf1\x1f\x88\x12\x14\xcfPO=3\xb9\x1b\x80\xa4\
+\xd2\xb1\x05h\x10\xe2l\xaa\x08\xb6O\xb2\x05\xea>\x1b\
+\x91\xfc~Q\x1f>?R\x8c\x86\xf8N\x9e7l|\
+\x95\xf2\x1f3n\xb7F4\xb5\xd7\xeeo\x83\x98\x1f~\
+\xc9\xdd\xba\x11\xe59}UDy\xfdGDU\x9d]\
+\xb2\xda\xdc\x80\x88\x83H\xa3\x0a\x0f\xb2\x04\xd5\x05;\x12\
+fUE5\xc2\xa7\xba\xbf-\xa2\xbc\xbe&\xa2\xbc\xee\
+\x16\x91\x0a\x0c%n\xee\x1c\xa93\xefB\x06\x84\x0f\x04\
+\x13@\x00\xd5X\xa8\xd2\xcc\xf0\x81\xec\xea\xbeQ/1\
+\xeb7\xfd`D\xdah\x10!a\xe3\x00\x90\xc1\xaf\x18\
+\xaa7.\x07\xa8q\x8f\x91z:W qt\xdc\xb1\
+\xb1YJ\x07\xe1\xb9\xf2Q\xe5\xe7P\xc8\xf2\xef9\xf8\
+\xc4`\x80\x9a\xe7\xc4\x9f\x82-: \xdf\xa8\x85\xe2 \
+\xae\xc5F\xae\x84\xd9\x1b\x12\x9dl!\xaa^\xbfB>\
+\x99\xb5\xc4?\xd5\xd4u\x0eLD\xe3\x84 b\x8be\
+$Z\xcfA\x7fxD\x1aQP\xa2\x07\xa3\xc1\x0c\x8b\
+K\x04\x14\x01\x1c N\xc9\x06x}D: \xa1\x84\
+q])\x1c.\x89HTe\x0aW\x10d\x01=N\
+0HT\x04\x8c\x98JMg\x9cB\x05J4\x22t\
+ \xe2\x14\x16\x00u$6 \xc1\x8c\x1a\x910\xf0\xe7\
+\xec\x97\xd8\xe5\x00DRh\xb2\xe1\x8ef\xdal7*\
+\xea\xba\x191\x12\xb3\xf2\xbf\x03 \x00P\x80\x99\xc4\xcf\
+a\x9d1\x02\xf3\x13\xcd\x96~x(\xf4&OT\xe7\
+Q\xc0\x9c\x0f:l\x85H\x00\xb5\xce\xfbOD\x94}\
+\xe2]\x11i\x04\xe10%<\xb2\xdf\xb3\xbb\x82\x18\x0b\
+\xddB\x11\x09\x08\x85\x92\xff\xb6\x88\x84\x5c\x0b\xb81u\
+O3\xb6\xee\xf0@Qf\xbd2\x83\xfa\xfd\x05?\xa8\
+\x05\x9fD\x94\xac\xa5\x00\x10\xb0\xcchv\x10\xfb5\x9e\
+\x1b]_T\x99=Kw\x8b(\xa0$\xcc\x00o\xcc\
+\x9aC-\xd4\xcf\xe9\xdf\xd3\x1f\xd6\x1f\x96\xc4\x94\xd8\xaf\
+b\xe6y\xd2\xc4\x83\xa0`[\xb46`\xa2\xa7\xb4N\
+EwJD\x13\xfd\xe9\xbe\x10\x91\x00D\x181:\xf7\
+\xfa\xdfE$\x11W\x01\xbe\xb5\xa3{h\xdb\xd7\xbb\x1d\
+\x22\x92\xdd\x95f\x0c\xad\xf5\x01EU\x05\x89\x13n\x00\
+\x17\x808:l?\xabOt\x00}o\xad\x94v1\
+\xd3\xb0\x03t\x22\xad\xf5j\x9b6\x00Hl\x01u\xde\
+\xc1h\xf3(\x00\xa3V\xdcGFV\xd8\x7f\xd9\xb75\
+\x83\xcc9\x85m\x9b\xdf\x0f\x06\x8e\x12H\x03\xb5|?\
+%\xd8\x88\xd0\xda-A\xd4\xe9\x80\x03\xe2~\xf8\x5c\xfd\
+\x9f\x88r\xb95\x817\xdd\xb4\xc4f\xed<\xb5\xb6H\
+P\xe2_\xdb\xceC\xf6s'\x88t\xa0\x0025\x9a\
+f\x06\x85\xec\xe4\xd0\xb4\xe9\xde\x19\x91\xcec\xdcS\xc2\
+\xf5e\xb7\xe6\x9e\xc1\xac\xb8\x0b\xaaH\xb7\x0f\x13\xd3\xef\
+GIm>:\xdd\xa7\x89\x9a\xbe\x97\x0a\xe7\xdf\xb5\x91\
+\xa2\xee\xe2\x12\x17\x89\xa1\xf1\x06\x8dT\x9c\x97f\x96u\
+\x9f\xd9\xdf\xfa\xcb\x22Z\xe13\xb9-\xa2\x5c\x97S\x22\
+\x1a\xd0\xd8\x9d\x1d\x91:\x9fP\xed\x19-\xd4\xfd\xeaw\
+\x88hL\x0e\x98t\xfd\x81\x11\x12\xd5\xfbL\x05j\xab\
+\xab\xc1t\xc5\x88D\x85\xff\xf2\xe0v\xd4\xad\x15\xd1\xec\
+\xf5\xea\xba<\xb4\xee/\x03\x85\x1b\xa6\xde\xad\x12\x1d\x86\
+\xfa\xce\xba\x15\x03i\xb2ZD\x13\xd3\xac6\xcc\xc7i\
+\xa6\xfa\xd7\xad\x83\xec\x99yf\xc9CD1\x5c\x07\x1e\
+\x1bQ^?\x1e\xf1P\xa0\xbc\xae\x8b\x97'\x8d*l\
+\x87%\xd2;\x7fMD\xd3\x08\xf0:\xc5^\x96\xfd\x04\
+\xaa\xf6\xa2j@0B\x83\x1d \x00+\xf6\x9d\x88\x00\
+\xab#\x09s\xc3L0\x0a@\x5c@p\x07\xa0@b\
+\xbd\x01TP/0\x02LA\xc3\x88\x0ay0\x8cX\
+:\xec\xca\xb7\xdc a\xe6\x5c\xb6\x91\x06\xe2\x11\xcb\xc5\
+\xbe\xf1\xbb\xa2H\xb3?\x01\x88\xd0\x99g\xdf\xa4PF\
+\xc4\x8f\x82\x19&\xdem\x1am\x92K\x13\xe2m\x00\x1e\
+\xb3\xad#Z\xa3e\xb6}D\xd3\x86r=\xb4\x92\xce\
+_:\xbc\xe4\x01\x14\x96t\x9a\x95\xe7\xf5\x0fD$Q\
+f4\xc4h$\xe0\xb2#\xad\x08\xd73\x5cW\xa8\xf4\
+\x00\xa3\xe4M\xfc\x87f\x0d\xa3\xa2\x8cH\xc2\x08\x04\xf0\
+\xa5\xc0\xd7z\xe4\x5c\xf6l?#\xb2\x00\xb440\xc8\
+7\xf9^\xe4o\x14\xe8t\xb4i\xcch\xd4\xd4\xf6\xc6\
+\xe4\xef\x00\xef\x02\xde\x5c\x7fe\xa6\xf6J\xa9\xb0g\x14\
+\x0d`\x8b\xef\xc1\xe7\xa1`\x1f\xdb\xd6S\x7fR\x0f\xf2\
+\xe7\x00a\xd490\x0a\xf8>4\xa0x\x7f\xf6o\x0a\
+pF\x0fiH\xb0\x0e\xe9\xe4c\x03\x89h%\xa3%\
+\x8c\x04\x90gP\x0f\xf2\xf3\xc9\x9f\xf95\xf9\x1f\x00\x04\
+@\x17y9T\x7f\xeaT\x18\x13\xb8\x10\xc1\xcc\x80\xb9\
+H\xde8\xd2\x08\xe3\xf7\xe7\xfc\x85\xb9\xe1\x14\xf2qy\
+\xb3X\x1f\x17\x84\x99\x22\x0e\xe8H\xb7\xb7i\x1d~\xcf\
+$1\xbb\xaf\x83\xcf\x1d2f\xe6xp\xf8`P\xe3\
+)\xc8\x03O\x8bY\xeb\xf5K\xac\xa7\x8do\x9d\x94\x00\
+#^\xc8\xfb\xa9\xb0\xb7\x9d\x0b\x89!\x17\x8e\xce=\x85\
+\x12\x0bn\x85\x8a]\xb6\xf7]y\x10'\xf3\x88@l\
+\xf37\xa6\xce\x03\x08\x1d\x1d@\xa8\x9d,\xb8\xa5\xaaQ\
+K\xfb\xb9t\xfe\xa1\xe4\xd1\xb1Q\x22\xd0\x1d\x18Q^\
+\xbf\x19Qg\xf2\xae\xee\xa2\xe3\xb6\xdc`O\xd8m8\
+t8\x98\x8d\xef\x9e\x13Q\xee\xdf-\xd3\x9b\xa7eC\
+\x98\xee\x1a\xd1D\xae\xba\xbb#\xca\xef_\x1a\x91\xd4q\
+%\xc2e\x11\x0a\xa9{2\x13\xd2\xff \x22=(,\
+D=\xa0\xfd\xe3#\xca\xeb\xfd\x11m&\x90\xce\x19b\
+[u\x86\xef\xb3\xadP\x83\x1a\x8ax\x97gQ\xb1\xeb\
+\x83r\xcd\x82\xc7\x9f\x9c\x19{\x1e@uv\xb0\x1f\xf2\
+,\xe3\x07#\xca\xeb\xde\x11i\x86^>\xc9\xeelR\
+@s\xd04u\xd0\x01h\x82\xc2\xc4\xf7\xa6`\x17@\
+\x01E\xd9\xea\xfc\x00C\xb7Ju\x13\x8a?\x08\xaaD\
+\x92|\x90\xb2\x11\xa16\x0a\xb5HTw(q\xfe\xf9\
+\xa2FY\x1c)T\xa8\xdf\xdb\x0a\xa8n\xd7\x88r\xdd\
+\x7f\x16\x91\xec\xeb@\xf0\xb5\x01g>>_\x00\x00 \
+\x00IDAT\x1bYf\xf6\x90\xe7V\x94\xf2\xee\xcb\
+\x11M\xb3\xc0\x94\xda\xf9\x88F%\xb6\xef\xb4:\xab\xfd\
+\x93#\xca\xaf\xf7\x88H\xf69\x00;P\xd1u\xd0\xa2\
+\x96m\x9b:%4\xb3\x1d\x22\x12\x10C!)J0\
+\x09\x09bh\xd8\xb4\xf8zJ\x5c\xcc\xcf#\xb3S0\
+8p\x91`\xa6\x9c\xd9t\xae3\x142!\xf8\xa6R\
+c\xbf\x87\x9a6\xaa\xd40T\x04\x08\xd0\x11fv\xd4\
+\x00\x00\x078\x89\x0b\x058Z\x11JT\xb8\xaf\x9e\x95\
+\x14\x15\xd1\x07\x1a\xe2~ \xd3\x00t\x88\x06\x01\xb8h\
+\xe6\xba{ID\xdb\x87'_\x89h\x1dt\xab\xc0\xf3\
+<\xb0\x9fS\xd8\x00Hq \xa2\xd2,\x911\xdbu\
+-\x12\xd1\xdcD(\x9c\xe8\xfcSh\xf6\xbbG\xa4\xfb\
+\x04 \x03\xb3\x89\x84\x05QO\x9eO\xae\xb3\xec\x8b\x8c\
+\x98\x03\xf0\xbc=\x22\x1d\x88<\xbf0\x1aD}\xf6A\
+L\xc2B\x01\x8a\x88\xea\x17#\x92\xa8\x9e\xae\x97U\xea\
+\x05\xc0L\xb4\x0f\xdb.*\xa8\xcbe\xff\x99\xfdt\xf6\
+\xb3Yy\xfe\xfa%\xfa\xc5\xfb%\x92V\x0a\xd7\x17\xb1\
+H\x8d\xb0y\x9d\xeay\xedn\x88h\x80\xb0\xb5d`\
+0\x01\x84q\xfe\x92\xd02\x02\x82\xcf<v\x81\x02f\
+\x0ct\x88ae\xea6TN\xfc\xbc5\xdaAa\xe1\
+\x0e\xd1o\x86\x19\xe5\xc9\xed\x93\xbf\x84\x18#v\xb9\x16\
+\xa5\xa3\xb3\xc3\xf7\xa5\x80\xc0\xae\x0d[,\x9e[:\xf5\
+b\x86!^\xe5\x8e\x0e\xfb)TN\xf6\x03\x00u\xed\
+g\xd6\xae\x80\xda\xcfl*TY\xc4\x22\xe5R\xe1\xe7\
+X\xae3\x1e\xcd\xa0\x03\x1f\xb3\xe4\xab+\x9f\x9c\x09\xa0\
+)\xef?]?\xa2\xbcn\x11\xd1\xec\xef\xfa\xa7D\x08\
+\xe0\xdc'\x01!P2\xc5|\xf0\x0c?\xc0$\xeb\x9b\
+N\x8f\x80\xd7n\x83\x12\xb1\xef\x5cQ\xe2\xcaTHH\
+t\xb92\xc8\x1e\x97\x18\x1b\xb8O\xa8\x93\xdd\x9d\x1eQ\
+>\xe7\xd3J\x94}\xa8{dD\x12\x05\x8e\xd1\xc1\xb2\
+\xbfv\xef\x88\xd0}x\x92\xae\xff\xc6\x02\x8a\x0f\x16`\
+s\xb5D\xd1\xde\x9f\x80|\x98\x86\xa20\xe3\xe6\xc0\x08\
+\x05\xc0q\xbfSD+\xf0\xbb\x8fF$\xed\x22\x01\x0f\
+h\x8c0:\xe3Q\x13\x01WP\xa7\xed6\x00\x13\x10\
+@\x92Q\xbd\xbd\x06\x86\x83\xb5\x92\x10\x83]d\xd0\x1e\
+\xf0h\x9f\x1a\x0e\xb6?\xdc8\xa2\x8dd\xd8~\x0f\xfb\
+X\xb4P\xb0\xd7\xd5H\x1d@\x86\xedJ\x014\x18I\
+\x11\xe5\xdd\xcc\xcd8/\xcas0Y\xba\xc4RI\xa3\
+\x03\xdb\xdb\xad\x06\x86B\xbd|\xc1\x1c8\xad\xc4\xe7\x95\
+'\xbeSy\xef\xfa\x0d\x181P\xc6(\x9e\x98_\xf6\
+o\x07x\x93\xc6K\xd5\x1cy\xa2\xce\xdb\xf3R>\x1c\
+\xa7\xea\x11\xa9\x81\xc0H\x06\xa3\x87t\x5c\xd979\x7f\
+`\xf0Q@\xa1qE\xde\xa6\x06\x1e\x00\xde\xeck\x11\
+\xa9p\xe4\x5c\xe4{\x8c\x98]f\x88I\x8c\x16\xeaz\
+\xf9\xddAT\xee\x85\x11\xa9`:{\x00\x80\xbc\x7f(\
+\xdf\x06\xb8e\x04\xd2\x1dV}nF\x8c\xfa\x8d\x22\x92\
+v\x85&'\xea\x80\xd2\xe1\xc9\x85d\xec\x0b\xafB\xda\
+\x1a\x050\x95\xb0\xf5\x06@\xa6\xb0\x86\x82OCr\xac\
+\xfd\xc5\xf5\x84)\xad\xbfW\xdd1>\x92\x0av\xcei\
+\xdc[\xde\x18\x91\x1ah\x02\x1c,\x92M\xc1I\x1eI\
+\xc3\x86\xfc\x1e\xed\x1b\xae'\x22\xb5\xa8\xdaS\xd8\xa31\
+\x02P\x04\x10\x92\x19 +\xa6\xe7\x01M,\x8d\x9ay\
+\xffF\xf4\x11\x11n1\x81\xb1\xb3\xac\xca&OML\
+\x1c\xf6A\x0a\xe0G\x8dFL)|y\x05\x10\xa0\xae\
+\xe4\x86r\xdf\xa8\xf7\x10-\xd6H\xb5\xed a\xe6\xa8\
+`\xb7\xdd4\xcc\xd3\xb1\x8d\xbd\xd6\xb5\x1bv|\xbe\xd1\
+\xc8\x83;\xf7:\xef-\xd2\x0d\x80\xcb\xfa\xe0\xbaJ\x0c\
+\xdb\xdf\x9fF\x0fu\xebX\xac\x1f`d4\x82\xe1\x91\
+q\xf2\x5c\x00\x98_\x0f. |\xce9\xd6}\xc5\x03\
+\xe6\x1e\x06Q\x01\x00\x18\x17\x86Q\xa6\xfd>\xa9\xa1G\
+b\xfe\xc4\xa4Z\x0d\xc2\x035F\x1a\x02.\xf0\xb1\x11\
+\xc4\xdeF\xd4\xfbz\xc0\xac)$l\x9d4\x12@\xa2\
+\xc7\x05#Q\x5c~\xa0\x1eY\xad\x1f\x04\x8d\x0b\x06\x93\
+ p\xc9U\x12\xd00V\x99\xe4\xcfW\xad\xe4\xa4&\
+*\x87\x9b\x00\x89\xb7\x12u/,(\xbd\xb1\xad\xad\xdb\
+\x80\x0b\x17\x98 \xb7\xa8\xd4/9P2L\x91\xa1C\
+\xb1\xcf\xf0\x00M\x16\x92Z\xec\xae\xc3\xc679S\x9d\
+\x1e%\x8a\xd3\x0f\x0d\x9dn\x8b\xfa=9BvUw\
+\x0a\xd9\xbf\xb8\xcd\xc8O\xfe\x13\x91fWw\x8fh\xb3\
+)\xfd\x1b\x22\xd2\x8c4\x14\x1fm@P\xbe@\xb4g\
+\xff\x89(\xff\xae\xb6\xf4[\x01\x88\xc8\x96\xd5\xd5\xe5\xfb\
+m{\x12\xf9){&V\x80\x80\x13X\x8d\x08\xcc\x9e\
+\x1bQ\x96\xddw#\xd2\x86\xc2A\xa2\x0dk\xf2\x9d\x88\
+\x96x\xf6\x7f\x88h\x88\xbcG&\xd4\xf9\xed^\x14\x91\
+:\x92\xcc\xea\x00\xdc\x08\xd9\xb6x\xa0T\x92-*u\
+bD+ \xcd4\xd0\xec\x0f\x89\xbb\xc5cx^(\
+\x88y@y.\x84\x90\xcf\xd6\x19fW=+\xcb\xcc\
+\x10\x09\xba:k\xdd?#\x1a\x85\x0cj\x8fE\x13\xa1\
+xQ\xa0\xa8\xc3\xeb\xd9j\x90?:\xed\x12{\xe9\xfe\
+\x1e\x91\xd6\xbb6\xc0\xfe9\x11\x8daa\xb1\xa7\xe5\x22\
+\x92\xaf\xbb\x125(a^/R\x81\xc6\xdf\xda\x1d-\
+\xad\x17#\xdb\xf8\xa8\xfeix\x7f\xa8\xe4N@@\x90\
+A\x86\x01f@`\xb5!\x1a\x18\x90O.\x85\x93E\
+'QOG\x05\x1fm\x076\x5c\x9eS\xd6\x97T\xe8\
+\xd1\xe6\xa03\xe6\x83Z\x88w\xb7QD\xf3{wG\
+\x03\xe0\x08q>f\xc4\x10\xbfD\xa4\x0cJ?\xa3)\
+\x14\xca\xb8uHs\xc1\xa30\x88\x82\x91\x00\xc1\x14\x10\
+\x15\xac\x8a\x8c~\xac\x15\xc8\x06PPs\xd7\xcc\xb1;\
+\x10\x00\xb3\xd8b\x92\x80\xa1B\x0c%s]%n\xba\
+>\xfe\x9eJ\xd0\xbb\x97\x0c\x14w\xabw\xeb`\x07\xf0\
+\xb4\xbd\x11\x9fW\xd4U\x00<:\xddV\x0f\xbec\xc1\
+\x9d\x158\xa1\xf0Y[\x07\xe1\xd2\xa2\xb4\xe1J\x82\x08\
+\x1f\xf6\xa1\xd8\xb0\x22\x86\xc7\x88\x06\xfb=\xda\x17t\xc2\
+\xa1\xa2\xdf\x1c\x91\xf6\xad\x91X\x90\x13\x05u\x80f\x8f\
+\x8d(\x9f{\x8d\x88\x87\xaa\xf0{t\x88\x04{\xf1\x88\
+\x94\x18\x8a\xf1a\x80D\x14S\x80=k\xb8\x84\xf8\xdc\
+\x1e)\x01\x87\x12.\x1b5\x8b+2\x13/\x80\xcdn\
+\x22h?\x90\xe0\xf1\xef(\xac`\xd4i\x7f\xea?\x1d\
+\xd1\xf6#\x17\xb2\x02P\x5c8\xffu\xd0lYph\
+\x8d6\x8b\xae\xce\xa4}\xe9\x7f\x10\x91\xc4S\xd1V\xd1\
+ue\xf4\xcd\x8c\x10\x8d\xb6\x98R\x09`\xcc\xbf\x17\x00\
+a\xed\x15\xb44\xb4_N\xf7\x88(\xe7\xc7\xffF$\
+\x0d\x1a\x80xlpa\x12\xe8{T\x11\xb9\xcf\xca\x8e\
+x\xd5\x06\xecO7*\x91\xf6\x85\xdao\xfba\xdb\x07\
+\x00\x1c\xcd\x80`\xb4\x8c\xef%f\x88;3\xa8\xa6\xb3\
+\x9f\xe9\x5c\xb6\xfd\x1av{G\x968\xaa\xdd\xf7\xee\xb0\
+\x08\xbd\xff\xf1\x02\xd0\x83\x11\xf8\xda\x08\x15\xfc\x7fm\x9d\
+\xd5z^\xfc\xa3\x01A\xb5q\xb0\x8d\xf6\x99=\xd4\x08\
+(\xfb\xcf\xfc\x0d\x11\x89)$\x06\x02\x85\xbd\x0bZ\x00\
++\x89l\x02\x1c\x9biA\xde\x88\xea\xb8\xae3\xaf\x16\
+\x09\xa6\xc3\x08\xf3D\x80\x18b\x84.\xc4$f\xe6\xc4\
+[\xcf\xcbd\xab\x88\xc6\xa4B\xc4\xb4_$\xa2\xfc\xfb\
+\xb7F\xa4\x0e\xfc\x8a:?\x7f\xd0}\xbf\xfb\xbeD\x1d\
+\xcfM3\xda\xea\x88\xcf\x16\x8aH\xaa\xf0\x14\xbe\x00\xb5\
+\xa7\x0dZ$<\xf7~^\x05tT\x97\xca\x92\xf0w\
+o*\xf1\xc6V [\x8b\x03;J4\x81\x96\x8fH\
+\x14^\xf6I1\x8c`\x84\xd4s\xe8/i\xd6\xfe\xdc\
+\xca5\x1c\xf6\xa3\xd3\xf5|\xef(\x00\xfa1I\x8bI\
+\x00\xbe\xc5\xda\x04\xe8\x90\x1f\xd9G\x1c\xf1c\x9d\x97\xb3\
+\x9d#R\xe1\x88\x1f<L<\xea\x02\xed\x1b</V\
+5\xd7Dayz\x06\xd5\xf9\xa3\xc4\xe8\xa4\x80e?\
+\xa7\xc3K\xa1\x08\xc3\x0fF\x18\xe7\x10\x85,\x85\x15\x1a\
+5?\x8dH\x8cF\xa8\xe00?\x11\xb1\x93\x8d\xe8l\
+\x9b\x88\xd4\x18 \x9f\x839\x81]\xec\xbf\x06\xb1ck\
+H\xa0\x99@\xc7\x1c5\x7fi\x99\xb8\xd0\xa3\xde\xe0<\
+\x17\x80c\xa64\xdf\x1f d\xacq\x86{\x80\xdc\x16\
+\xdc\xd0\x81\x0aN#\x01\x97-\x18\x89\x00%\xe4\xf9\xcc\
+\xd4S\x97(O`\xe4\xd7\x80-\xf7A\xd7\xcd\x94~\
+\xce{\x98\x05\x00\xc2\xe4c468\x8f\x18\xa1\x80\xf9\
+\xc1\xa8\x1e\xf9&\xeb\x08\xb1;\xd6\x0fy1\xcc\xa8W\
+\xaaa\x05 @\x9eG\xfdF\x83\x96\x11r\x9d#\x00\
+:\x06\x0a\xc6\x22\xd4\xd4\x8d\x00O\xec'h9\xa9\x1e\
+1\xb3\x87\xf5\x01\x83\x94\xce?\xd7\x9f\xfb\x07S\x8e\xfb\
+\x88\xa6\x19\x0d@\x18\xc20\xd8i\xa8\x90\xb7\xb1\xd1Q\
+\xe0s\xbf\x18i\xd5\xfa\xb1\xcb\x0d\xcc\x9b\xb1\x1b\x17\x0d\
+t\xd6\x11y\x0e\xcf\x17\x9f\x17\x97\x03\xce!1f\xe6\
+L\xddA\xdc.S\xecWL\x14\x02\x10D\xd4\xfd\xb9\
+ 7U\x07\xfb\xa1 \xfe\x8f\x12\xe9\x8dR\xa7+\x96\
+\xe7\x9a\x89\xba\xa4\x0d\xc3\xef\xc3\x17\x812\x1d\x04\x89-\
+\x92f\x00\x05?7\x92\x05!*U\x9d\xe9_E\x7f\
+o\x8dD\xf1\x87\xd2\x0b\x00\xc1\xbf\xc3\xed@n\x02\xfc\
+\xbbJ\x01{\x5cB\x8a\xe8D\xb2\xb1\xb0\xa0\xb2\x7f\xe6\
+\x0f\xb5\xb0/\x12\xf2\xf9\x82\x04p0\xbb\xcc\x8c9\x9a\
+\x07gH\xed\x1c\x9b\x11m\xcc\x88\xce\xd0\xa9\xa7\x80\xe8\
+\x9e\x19Q;\x91U\xd5\xd3\xb3\x8c\x07D4\xbfl\x0a\
+lf\x9dgO\x8c\xa8\x08\x7fU\xcfw\xa7U\x85\x97\
+\xed\xe1\xfe/\x22\x15\xb4'\xd6h\xb6p\xea0\xe2\xdf\
+9\xab\xff\xb5\xceG\xff\xaa\x88\x86\x94\xf7\xcf\x8fH\x9d\
+3\x89\xe6\xd0!\xb4\xc8\x13\x00\x00\xb6\x86RG\xee\x1f\
+\x15\x91\xec\x1d\xd1 `\x86\x86\x83\xf7\xcf\x11\xcd\x0f\xbb\
+\xdf\x22\xa2\xcd\xdc\xfa\x01@\xfd\x9e\x07\x00\xb5^\xee/\
+\x00\x10\x09?\x05!\xc8\xaa\xd6\x8d\xc5a\xd8p\x95\xf8\
+y\x16\x1f-\x83u#\x12E\x87\x8e\xe8j\xda A\
+\xcc7Q\x07\x9c\x83\x87\x07\x98\x0e\xa7:i$\x16\xfc\
+\x1cf\x0c=\x83\xcf,\x1a3\x97\x1aU\xe9\x9f\x1b\x91\
+\xee;\x07(T/\x12pD\xd6\xb6\x91h\x8f\xd6\x8d\
+\x99.\x88\xcb\xc0t\xd1hJ\xf7\xf8\x08u\xae\xaeH\
+>\xd0\x87\x0dT\xe9\xd9\xbf\x22\x92\xea?\x1dk\x8d\x84\
+\xe0\x1eaD]\x1de\x90mw\xf2)P\x19m\xc0\
+n\x86\x19y\x12I\xee\x0b\x1dM:\xfb\x1cX\x00\x09\
+P\xe9T\xb8X\x93\x02\xa4Z@\x02\x14W?\x0f\xdc\
+\x17\x10|:cJ\xfc\xab\xb8\xd6\x86iV\x92\x03U\
+\x1d\x02\xcf\x9c+A\xb6H\x1e\x1dO:{\xd8\xf6\xd1\
+\xf1\xc2V\x8f\xeb\xa8\x02\xda6W0:H@\xe8\x00\
+I\xfd\xde\x9drf\xfe\x19E\x80b\xaa\x04\xda\xc0\x82\
+\xae\x8b\x81T\x01N\xf69G\xfd]\xb3h\x9ei\x96\
+FK\xf7\x87\x81J\xed\xcf\xc3\xf3\xcb:\xa5\xa3\xaf\xfb\
+c`\x82Q\x0bD\x109w\xf6\x14\xe0\xf5\x171\x81\
+z%\x5c\x14\xa80\x89\xa0\x9c\x8a\xfa\x080\xc6H\x89\
+E\x91\xf8\xfep\xbc\x19\xb1x\xc6@\xd5\x9e\xdc\x11\x91\
+\x12S\x9e+\xd9\xad\x91\x00B\xc9\x06\x88,er-\
+\x94\x10W\xe5\xe0\xee_\x1d\x91\x80?\xd9\xce\xe2C^\
+;\x92e\xdd\xf4O(\xb1AK\x14\xad\xe6\x8e\xc8\x9e\
+|\xcf\xd14\xe0z{\xd6\x1f \x83\x82\x9b\xfb\x8b\xfd\
+\x13\x05\x11\xeb\x09\x00\x85\x91\x01\xed\xf3\x1e)R\xc2\xdf\
+\xbd-\x22\x01\x00\xda\x97l\xe3\xaaN\x106\xa5\xb3\x17\
+G4`\xcc\xa3_0\x98\xb4\x8fx\x96Q\xfb\xcc\xe4\
+\xb8\x88\x06\xcc`\xab\xc8\xfe\x05\xc0:Y$\xa2\xbc\xfe\
+,\xa2\xbc\xfe=\xa2\xb9\xe1\xe0\x1e2\xfdIDb6\
+\xa9\xb3\xd9m\x1fQ^o\x8eH@\xdf9%\x82R\
+\xfe\xb3\x12e\xbdt+\x97\x88\xc2\xf1\xda\xee\xba\xee\xda\
+\xd61\xed\xffU\xe2\xbe\xc4\x08\xa4\x13\x03U\x98\xd1\x1e\
+\x89k\x22R\xe7\x06\x00\x00\xe3\xaf#\xc48\xdaH\x0c\
+\x97\xa7'\xe6\x83\xf6\xad\xee\xac\x88FU\x07\xf0\x8c\x81\
+\xc0\x0a\xf0S\xd0\xc2\xf0\x13\xd3\xa1\xbb\xb1\xc4\xef%6\
+\x19\xef\xb3F\x84\x0a\xd2\x85$\xfa\x16\x9d\xd2\x7f\x97\xb8\
+_\xcf\xcd\xd9*\xd8_&f\xcf\x9d\x8d\x11j\x8d\x1f\
+\x89\xe2y\xdf\xd49k\x06K<\x0f\x175w\x083\
+K~\x1e\xd1\x80\x1e\x0aS(\xeb\xee\xcc\x1e\x13Qm\
+\xf5J\x94\xf7}oD\x1au\xd2\xfd\x82\xb2\x1f\xfc\x9b\
+`\xe0\xf8\xfc9-\xa2\x15\xec\xd3\x13#\x9a\xeb\x03\xc0\
+\xad\x818\x15\x90\xee\xf4*\x0f\xc0~\x98\x04\xbe\xa4\xcb\
+\x03p\x83\x0a\xb9\xb4<p\x19\x0a\xbeb\xec'\xf5\xb9\
+K\xfb\xb0\x99\x8f\x8c\x18i\xb4\x02\xe6Jx0\x85\x0b\
+\x93\xf3\x15\xf2\x90\xab\xab\x0aJ\xdb\x8f\xc8K\xb1\xf9\xdb\
+d\x18\xe9\x99]6t\x12g\x0f\xcc\xfe\x13\xb6\xa3\xd6\
+(\xe2\x1c\xe1\xdc\x83y\x88j\xbc\x00Ywf\xe5r\
+\xe0\xc2\x06\xc6\x19\x9f\x87\x02\x87\xce\xad\xceq\xe7U\xd8\
+\xf3\xa1\x11@AF~\x05#v4\x8aF>\x86\x1b\
+\x84\x01\x22\x0aQ\x18\x83\xcfV\xbe\xb6\x8c\xf2*F(\
+\xc4\x80\x98\xdd7\xe4\x1b\xe4i\xfd\xae\x11I\xdb\x88\x02\
+\x8c\xba\x84z\x80\xfdG\xfb\x13\xe7\xb4\xcf\xcd\x1fj&\
+\xfd\x11\xea\xfcR\xa70b!\xc0\xdd\x8d%\xf2^\xed\
+\xd7\xbe\xaf\xfc\x07S\x83\xeb\x83m\xb4\xf2p\xb4R<\
+j\xc7\x88#@\x04\x0c\x22\xd6\x05y\xdd\x195\x1ap\
+\x0a0\xc7\xef\x03, :\xc9h\x08\x0c\x1d5\xca<\
+\x82\x0b\xc3L\xcc-D==\xaa\xa5\xfd\xf6!\xb6u\
+:'\xbc>\xc8\xbf\xb9\xee4\x1a\xb1\xbd\xc6\xa5D\xcf\
+\xa35#\xc4\xf8\xe0\x1c\xb3He\xb6{\x7f\x5c*\xb0\
+Yg\xcc\xbc\xf3\xe74\x06\x00\x9e\x19\x85A\xfb\x03\xb1\
+i\xdc\x0fp9\xc3N\x11F\x0c\x0d`\xf2-\xf6}\
+\x80\x0f\x0ay\xeaM~\x9fF#\xda>0\x0b\x10\x8f\
+\xc7\xce\x1b1E>7\x8d-:\xf9<\x17\xd4\xa1<\
+\x97\x88\xf4\x92oR\xbfs\x1d\xa8\xaf\xf9\xfb\xdc']\
+\x979\x7f\x11\x90\x13\xa8\xf5P\x15\x03\xd1X7Qi\
+\xb0\xf7\xa1s\x0aB\x17o\xfb\x97\x87\xb9A\x14\xd8\x91\
+\xe0=!Q\x7f\x00\x14$2\xe8\xce\xfc2\xf5\x11o\
+T|F\x09\xe2qEM{\x8d\xd4\xf1\x8fm\xe5\x89\
+I\xe5\x7f\xb5Zj5\x00\x80\x1b\x01u\x92\x04\x10j\
+\x15\x7f\x8fY\xbd\xf1l\x0aT\x0c\xae\x0f\x9d\x7f\x10\x99\
+('ni\x88\xa4U\xcb\xf9\x9ePv\xa0\xae\xaf\x22\
+\xc4\x14\x11\x1af\xb6Th\xf4_\x8e(\x97\xe5]\xd3\
+C\xa6\x87\xa4\x05H\xc7\x92\x8e\xa9:\xf9\xb6\xe1c\x01\
+\xa9\x03gU\xdd'\x0e\xd4O#rP\x5c\xf8\xf9t\
+\xa6d\x93\x02Be\x8a:\xb3V\x14p\xb2_\xc2~\
+\xa5\x7ffD\xf2\x99\xc7\x1eHTb\xcf\x96S\xd0\xd0\
+\x11\x13\x90\xe0D\x12$P\x1b\xf1t\x97\x88\xf2\xfeg\
+E\xa4D\x90\xce\x04\x88'\x14\xaa\xd1,(\x94w(\
+Q\x93\xeb#\x92]\x1b\x858\xf7\xf1z!eB\x90\
+\xf9\x9e~\x00\xd14`\xe3\x04\xb1\x83\xd2\x8a\xca\xab\xc4\
+\x12\xffK\x14\xf31\xe9\xe0\xe0\xe72;\x0e%\x9d\x07\
+\x9e\xc2\x96uy\xa7\x90\xd65T\xe0\x0aP\x01X\x82\
+R9\x1e-0@\xb0VDy\xdd,\xa2\x89\x0b2\
++\xd5\xaf\x1cQ\xc5\xc8\xaa\xca\xf1\xecw\x11\xe5\xf7W\
+\x8b(\xbf\xde0\xa2\xbcn\x1c\x91\x00\x05\x0a\xe0\x9fG\
+4-\x0c\xcf^Sh3\xd3JGE3xt\xb6\
+\x0d\x18\xf1\x9cJT\xc6\x149:\xfd \xd0\xa2\x90\xfb\
+y`\xf6\x0c\x8a\x9a\x00\x1c\x12D\x1f8\xd8\xe5\x89\xb2\
+\xef\x04\x12_j\x80\x06:\x08$\x5chw\xa8@\xa1\
+3a\xd1$Q\x01\xcdH\xd1\x81\xebN2\x07\x1d\xbf\
+\x16\xd0\xc3\x01\x83\xa6\x82\x91]\xd6'L\x10\x00)\xec\
+#\x19\x19@\x5c\x0d\xb11\x90v\xde\x8fN\x09\xa2\x9c\
+Jx&\x1f\x8aH\xef/\xdf\xf0\x92\xae\x0fj\xd5\xb7\
+\xab\xb3+\xcd\x0dS_I\x94\x00\x1e@\x96\xb9\xaf\x88\
+\x1eA\xadW'\x9bN\x17\x89\x99\xa9\xf5J\x80\xba[\
+\x22\x9ax\x0d\x09\xbd\x018\xae\x07\x1dF\x12\x0e\x12\x1c\
+\x0e8\x9e\x17\x18h\xdcGl\xc3dg\xc8\xec\xfcD\
+\xaa^\x14\x0a\xd6\x96`\xbd\xf0|\xc2T\xe1\xfdHL\
+\xd5\xe9u\xa2p\xd4\xb0\xbf\xf5[\xf6[\xf5[\xd5\x7f\
+\xff\xec\xf8\xf7<O0\x9b\x10W\x82\xb9\xd5\x1f\x1c\xa1\
+\x0e\xcd.\xed\xe7\xb2\x8f\x84\xf4[\x8c\xf0t\xbbM_\
+\xd9\x95u8}\xc1\xe4\xf9\xd3\x17\xa4\xd1\x14T\xcfI\
+\x00\xb8\xcf\xef\x8aH\x05\x01\x1d/\xce%\x98Uh]\
+\x88Z\xed\xce\x0bT\xee\xc3#Z\xc7\xd4TvF\x8a\
+\xb4\xce,\x8e\xc5\xa8\x01\x8c\x00T\xcc9G\xd1v\x11\
+\x00kq@\xdc\x11\xc4|\xe0\xfc\xf5(\x17.\x03\x02\
+\xce)\xa0\xbd_\xc0\xfca\xbf\x97]\xae\xc52\x19\x1d\
+\x80\x11\xa1\xfb\xdc\xad\x19Q^\xffX\xe2\xb6F\xf5G\
+\x14\xb0^\xb7\x93\x12\x80\xf6N\x01T\xecG\xea\xd8\xd6\
+s\xf8\xed\x89\xf9\xc2\xe7\x90=\x9d\xedI\x19m\x8a\xf7\
+=!\x89+\x1fS\x1d\xd8\x07`\xf0\x0f\x0d\xe0\xafT\
+\xf9\x0bF\xa2]\xe5\xfeL\x1f\x88\x10\xb3\xed\xc5md\
+\xc0\x1dd\x01Q\x88\x19VQ\xaa\xfd\xc5\xd0(\xcf\xdd\
+\xfc\xa9%NI@\xb3\x18\x86\xb5\x91\xb1\x9dF\xc7\x9e\
+\x96\x98I\x88\x8c}3\x22i\xd6\xc4\xf9\xb2\xa6:\xe1\
+\x1fI#\xa0:\x17a.\xe1\x1a\xe3Q\xb2\x13\x22\xda\
+\xf9n1;\x01 \xac\x03\x03\x0d\x12\xb1\x0cI\xc7*\
+\xea([\xca\xf9[#\x1a\xc0\x00\x03\xc8Z\x07\x1a\x91\
+\xe8>\x14\x91:\xfe\xda\xc7Q\xcf\xee^\x15Q\x99Z\
+5Q\xef\xf7\xe9\xf7\xed\xf7m\xe7r\x7fe\x84\xf6\x8b\
+\xcf5\xcd\x0d\xec@\xbbOG4\xe0\xca@\xd7A\xc3\
+\xe7\x9c=XJ\xf4\x07R\x01!\x86\x95\x19\x02P\xaa\
+\xd9_\xc8\x07\xb4\x8e<\xa3\x8e\xcd\xda\x9dj\xc05\x97\
+\xac\x0d\xea\xec<j\xf6\xa2\xe0\xe3\xeeb-&\xddO\
+\x9f{\xe4w\xe4\xbdt\xd4\x99]&\x8f\xa7\xb0\xc1\xff\
+\x5cL\x02\xc4\x1c+\xaf\xed\x8cTX\xb3o\xa35\x00\
+SI\xe2\x94.\xe0Q\xd1G\xf4N\x85\xaa\xed\xf6\x18\
+q8@v\xb2P\xa0\xc9\x8b\xc9K\x05\xb8\xcen\x18\
+\xd9R\xab G\x14\x90\x06\x09y\xdc\xecE\x11\x89\xb1\
++\xa0\xd7\xf6\xb5\xec\x97\xec\xab\xd8\xe6\xcae\xc7\x00\x85\
+\x1a\x85\x88\xbb\x9a\xb17.\x8c\xd1B\xa2\x13\xcd\xc8\xab\
+\x80[\xe7M\xcc\xb2\xd3\x00%\x0f\x82\xf1\x86v\x10y\
+(?\x87\xbc\x09\xdbqFS5\x1af\xf7\x00\x98-\
+\x00@0\x80\x00\xd2\xe9,\xcb&\xd0\xfb\xefXD\x8f\
+z\x02-\x05\x1au\x02\x90\xddX\xc4}\x86Q T\
+\xebu\xde \xba9\xdbG\xa3\x154 \xb4N\xbc\x0e\
+a`\xe2F\xa0\x86\x8dG\x1c\xb0\xbb\x83\x11\x0ae\x9f\
+\x11B\x00\x01\xb4\xc8\xd0\x90\xf8\x5cD\xea\xc0\xa3Q\xf1\
+\x9d\x88\x04\x00\xd0\x00\xe6\x95\x06\x13\xf7\x81\xfbG>\xca\
+:\xe5\xb9\x01`\x17\xf0`\x80\x88z\x93\xfc\x83z\x14\
+\x0d\x04~\x1e\xeb\x86\xdf\x87\x09\xac\x91:\xaf/\xea=\
+\x98\x1a\xfc}\x80\x1d\xe5Cs\xffe\x83\x97\xd4\x14\x99\
+\xf5\xaa\x1d\xf9g%\xf5n\x1e\xec\xe8\xc7?\xfea\x0a\
+c\x12&\x1eT\x10*\x18\x02\x00\x07\x14\xe4,t\x0a\
+$\x90\x0b\x16\x98\x10\x9e\xfay\xd6H\xcc\x00\x12v.\
+\x1c\xefK\xc1\x85h \xb3yt\x98\xd8\xc8X\xe8\xd9\
+wre%\x92\xab$\x00\x02D\x05&\x00\xdf\xeb?\
+\xd5\x00\xad!3\xa2\xf4\xf9 \x92\xc8\x13\x9d\xf3n\xc5\
+\x88vc\xcb\xf63\xf8\xdf2K\xc4\x8d\xa7\xb3p\xc6\
+\xd0Q\x98\xbdE\x94\xb6%\x86B\xbd\x7fE\xff\xf2\xfe\
+\xe5)qb#\x95\xda\xbcg\xdd\xb0\xa3\xd2\x81\x09\xf5\
+\xc7\x89%*\xd3\x88\x82!\x12\xc5,]\x88[ui\
+\x03\x84\x12\x0c\xf3C\x9d\x8e\xd9\x19\x11\xe5s\xfd(\x22\
+\xf9\xf9B\xa1\xd2\xf5e\xd6\xcf\x08#\xaa\xd4\x14\x8eJ\
+\xd0\x10\xd3\xb1\x1a0\x0f\xbc\xa8\xeb\xb5SsNJL\
+\x10u\xa3 \xc0O\x1e\x0a\x93\x122\x0a_:&F\
+\xc4\x16\xd2L\xde\xf74\xe3\xbf\x81f\xb0\xf5\xe0\xd2y\
+w\x82J\xe1\xc7\x8c\x16\x9d*%4^\xbf\x14Fl\
+\xcc\xac\x1b\xd6\x1b\xc8+\x1d:6N43x\xdev\
+\x12\xc0\xb0\xfa\x00x\xcd\xf6\x8aHH,\x949\xd4_\
+\xf1\x11\x97\xc8T\xff\xee\x88*\xbeS\xa9d\xb3\xeb\x06\
+\xa0\xa7\x7f]Dy]8\xa2\xd9\xb2@QE\xf5y\
+\xb6LDZ\x17\xa8\x8cr\xddQ\xcbG\x05\x1c\xaa\x16\
+\x94Y\xae\xb3\xd6\xbd\x01 (\xe4$D\xd8\xb4\x014\
+\x22>Jg\x80\xebIb9\x16/\xe5\xa0G\xfd\x9d\
+Y8\xfe\x9c\x8d\x90\xfb\xa1\xe7\x0c\xaa\xae\x01O:\xdc\
+t\xf6\xc5\xb8\xe1\x80p\xa7\x83\xfb/13:+V\
+\x81F4\x94\xcfA\x82\x8b\xb8'3\xc9\x9aU\xb6=\
+\x10\x94P:\xa4$d\x5c'\xee;\x1dn(\xce\x1c\
+D\x12\xcb\xe3:9\xc1a\xf6T\x9dZ\x00\x80\x92\xce\
+\x0c\xa2O\x07\xaacu\x9c\xb4;\x04|Y\xe5\xfd\x03\
+b>0\xa2AA\xf2\xc0\xb0\xef\xa1\xce\x0d\x92\x1e|\
+\xa8\xca\x88\xda\x7fx\xbe\xfb5#\xca\xeb\xfb#\x9aO\
+1\x9d\x5c\xd4\xa9=\x03\xc9\x8c\x1c\x09\x00@\x08\x94<\
+\x00\x1d:Z\x5c\x171\xa2\x0c\xdc\xfcl`\x00tG\
+G\x94_\xff!\x22u\xfc\xafU!Ib\xb8JD\
+\x02\x16\x98\xe1F\x8d~\x8d\xe1\xe0\xf4,\xa1\xee\xbfE\
+\x9c\x9e\xa5\x8e\xe2\xd7K\xa1\xff\xf5\xe4\xa7\x0e\xe5W#\
+ \xb3c\x22\xd2,\xa6\x00\xa0\xaa\xba\xbeb\x9a\x89\x85\
+2\xfe\x85\x05\xc7\x07u\xb8\xac\x89\xbfT\xdbT\xdd\x17\
+\xab\xd9\x7f\x7f\xa08\x9b\xe2\x89\xd8)\xcc0\xec\xf74\
+\xa2\x00``\xd7\x00\x01\xd8\x88\xc6\x1a@c\xb6\x1f`\
+\x0f\xa0J@\x9e\xcf\x03fa\x19\xe5z0\x22%z\
+\x00\xb2\x129s\x874:\x5c\x17'\xe0?\xca\xeaS\
+T\xc0_\xab\xefyw\x02\xc0\x10o\x85A\x17\xfc\x92\
+\x9f6-\x09:\xda\xb6\xbf\x14\xe3\x81\x82r\xfa\xa5\x88\
+\xa6\x9dc\xf7\x9d7\x94x}y\xdd\xab\xc4\xde\xe5\xcf\
+\xb7\x9an=\xdd\xba\x01\xc7\xfd\xf9\x11\xb5\x00\xae3\x9f\
+\xf5\x5c\xf8\xa4:c\xb7\xa7\xf3\x85\xd1\x8b\x85\x22\x12P\
+\xad}\x0d\xad\x9cz:\xfd8\xad/\xb9\x10\xd9\xcd!\
+\x0a\x8d3\x12u[\xcfIwA\x89rNL\xdf\x18\
+\xd1\xb4\x83\x9c\xe0\x05\x7f\xe7\xdd\x899\x80]\xdc\xf7\x22\
+\x12\xb0\x1d\xe7\xc4g\xca\xfb\xd4\xff\xca\xdf\x7fF\x84\x9e\
+\xa7\x0f&\xe0]#[\x15\x08:,1\xae\xe2>\x9d\
+\x9c4^B\xbc\xf3\xfd\x12\x9b}cr\xab\x09@\xfa\
+S\x09\x08\xf8\xcf\xd0\xa9f\xb4\x0e\xe6Q\xb55\x5c\xa2\
+\x9d\xdf\x8cH\xd1\x11\xf4H\x09\xe7\xadF\xdd\x0c\xb4\x0b\
+0\x040\x98~'\xa2\xbc^\x17\xd1\x80@\x03\xa2\x1a\
+\xf9B;h\xf2\xe7\x88\xday\xac\xfb\xe5\xe4]\x1a\xbd\
+\xbc\xb1\xfb]\xf7\xbbVHw\xb7E\xb4\xf59\xbb'\
+\x22\x89\xb9\xe9~\x97\xdd{\x00.&:\xf7\xafR\x01\
+!\x80\x12&\x8a\x0bM\x15H\xce7\x04h\xf9\xfb\xc1\
+\x14\xc3}K\xaeE\x16O\x85\xda\x8b\xf8\xafT\xc8\xd9\
+\x0f\xec\xea\xc2\x08\x10y3\xaf<\xd7c\xbb4\xfe\x83\
+\x91\xc59\xca\xf9\x0e\xb3%\xe0\xad\xa7\xa7\xc2\x06\x11\xd0\
+M\xc5\x188E\xf7\x9bs\x1eM\x16\x80v\xce\x13\x1a\
+\x5c\x9f\x18\x1aL\xb6\x85U\xa3\xc3b\x8cO\x8e\x90\x1b\
+\xc6v\x8dyg\xa6\x82\x80\xf1\xd9.\x11i\xc4\x8d\x99\
+m\x01\xb8\x1e\xfd\xc3\xed\x01\xcd(\x0aX\x89\xc72\x82\
+2[6\x221\xfa\x18Q\x12\xc3\x17\x11P^-\xea\
+\x0a\xa0\xfd\x88\x91\xf81\xdf;\x06\xb0\xa7\x899\xccL\
+=\xf5\x00ZXt\x80\x01H\xc5\x1cp]F]\xc3\
+\xbe\x22\xa6\x97m\x9b\xd1\x90 \xef\xe4\xfa\xe0\xb6\x00\x80\
+\xc4h\x08\xe2\xc94h\x10uF\xe3\x81\x0e<\xc0\x03\
+\xdf\x8b\x11F\x01\xd5v\x15\x10`\x0b\xb3\xcdy3u\
+\xe0\xd6Z?\x8c\x16|e`\x0c:\xefV}\xe5\xd9\
+w\xb4\x82\x10\xd7#/\xa4^c]S\xe7\x02`P\
+ \xc3\xc8b\x84W\xf9\xa3\x9f7F\xb5r\xa3\xfb\xf6\
+$\xa6\x09\xc3\x97\x02\x9d\x9fG\x1e\x0c\xf0@\x83\x82\xcf\
+\xc1}\x84!\x00\x90\x070\xa3\x11f\x03\xfb\xfc|\x00\
+\x00\x98\x8b\xd4\xdfh\x1f1\x92se\xc4\xc3\x8c\xba\xf3\
+\xbc\x09\xb0\x983U\x93\x1b\x99\xed\xeb\x1e\x97\x0a}\xc4\
+\x8c\xa2\x1c\xdb\xa4m(.\xd0\xa2<<\xa4\xf9\xd1\xd7\
+\x89\x96\xdf\xaa Z:Q\x1f\x94\xd8\xd4\xdb\xbdx\xa2\
+\x86\x8c\xd4\x9c\x11\x1d\xf2\xe7\xda\xbc\xcaD\xb4\xcf\xc3\x17\
+\x8a\xcb\xb9X*\xd4y\x1f~\xcd\xec\x07\xff\x0e\x04\x0d\
+D-\x03\x00+&*p\x5c\xc8\xd5\xd2\x05\x03\xa1\xa5\
+\x90#A\x8c\xff\xf7i\xa3\x8c\xb2\xf1O\xda\xb8\xfb\x96\
+\xb8\x1a\x81\xddO3\xc8|\xfe\xb1\x0d\x98\x90\xcf\xfe\x8f\
+\x11\x8d\xba\xd2_\x11\x916\x02\x1d$P\xad=\xf3\x0e\
+\x22\x86\x0f-\xd4mQ\x12)\x5c,\xfa\x87\x8a,\xd4\
+\xb2oG\xa4\x07\x99\x0d\x12\x91&\x16.\x89\x9ef\x1c\
+An\xfb\xb5\xfa\xb5\xfb\xb5\x9b*i\xf7\xc4\x88\xf2\xfb\
+_\x1d\x0aJ\xd4\x98\xe9\xc4z\xd6]\x1b\xaf\x13.\xd9\
+\xa6\xd86\xeb\x7f#\x12`\x82m!\x8c\x05\xdd\x0e\xd4\
+\xc7\x8d\xd8#\xda\xc7\xcc\x9a\x90=o\xb0\x88f\x9c \
+\xa4\xfc\xe3\xa2t!\x1e\xc5l-\x089\x07$\xa2\x5c\
+\x88\xa5 \xe2\xc1\xc6\xc3\x03\xcaF\xc2\xac\x10\xcf\x9b\x90\
+]\xcf<iF\x90\x8e\xa1]\x08@\x80\x01\x16\xee\x17\
+\xd0\xc6\x86\x02p\xc4\xf3\x89\xfd\x1e\xc0\x8aD1Kz\
+v\xf4\xe4\xe8&R\x83\x86C\xff\xb2\x88\xf6\x5cxV\
+\x0e1\x16f\xe9@\xe2\xf5\xfb\xb6\x97\x832\xa5u\xe0\
+\x19'F~\xb0\xf9b\x86\x10-\x00Q\xe7f\xf7F\
+\xa4D\x05\x11!\xa8\x84\xdcX:\x22\xfc\xf9\xffD\xb4\
+\x04\x19`irxD+\xa8\x11g\xb2=\x8d:\xf1\
+t\x82\x0d\xb8\x8c\x5c@\xfc}Q!\xa7\xc3.\xfbI\
+\xdb\xd6\x91(\x81\xf0\xeb\xa0\x83\xc9AgbrMD\
+\x02\x08\xd87)T\x19\x9e\xa4\xe0\x85\xca.\x8a\xbc\x99\
+\x14\xa8\xd0\xa3v,j\xa55E\xc4\x90\x98\xad\x1a\x91\
+\xa8\xde\xdc71\x87``\xcc\xf6\x1e\x00%w\x86\xa0\
+\x22\xc2|a]\xbd^\xe2W\x14\xba\xb2]3\x05\x19\
+\x9f\xac=\x16\xec\x1e\x09\xbdE\xd8\x00\xe4\xe84i\x7f\
+f\x1d:\xe1\xd82\xa2\x15\xf2\xf3gE$\x910\x00\
+ \xec\x03_\x1b\x91\xecv\xd0\xc0 !V\x87\x10\x00\
+\x04\xa6\x92g\xfb`\xd4h\x84e\xc1\xdbe#w\xaf\
+\x9eo4\x1b\x10W\xba/\x22u&\xa0z>]\x9a\
+\x03\xec//U\xc7\xf99\x83\xd8\xea\xe4\x0b\x93\xd3\xab\
+J8\xb6\xac?\x8aH#P1\x83~{\xea\xc0\x07\
+<p\xba:\xc5\x8751\xab\xfe\x97\x11iDL\x09\
+/\x07\xfe\xf4\xae\x88\xa6U\xd1\xbf=\x22\xa9\xce\x7f:\
+\xa2\xadg\x00j\x9f\x0f\xa8\xa3k?\xf6\xf7\xa7\xe0P\
+a\xe5\xc2\x02W\x10uH\xdc\xd9S\x02d\xfbS\x12\
+\x22F\xa9TP\x1a\x18[\xb2\xaa\xe24\xb5s5\x10\
+*P\xb1D\xb2;\x8b\xf2\xf1#\xc962\x12\xee\xc5\
+ZBW\xf3\x91g\xa7D4\xf8%\x8b7\x1b\xda\xe9\
+9\x11\xe5\xf5\xd1%\x16i\x9d\xf5\xb9\xcd#\xca\xef\xbf\
+\xa4D\xb9o\xd3\x1fGTw\x9d\x12\xadP\x9b\xff\xf2\
+\xfc\x97\xe6\xbfTG\x0c\xaao}\x15Y{\x92\xc4\xe4\
+\xeei\xc0\xa6\xc5\x0a9g\xf4\x1c\xf5{E$\xbb\xdb\
+Q\xbeU\x01\xb1\xfd\x93\x86\x90\xce\xdb\x0a\x04\x86K\xd0\
+R%\x96l\xe2yu\x04\xae\x14\xfc\xdd\x03%\x1e\xd4\
+>\xb2ks]2\xd3\x05m\x02|\xabu\x0euk\
+\x97X\xa71q\xc2,mV>\xcf\xfc\x96%\xb6J\
+b}/\x8bh6\x96\xb3-J<S\x14\xda\xbf\xb7\
+\xc2\xa2\xda\x0d\xbe\xa5\x9d\x83\xb3\x15J\xac\xd8\xec\xf2\xaa\
+\xc8\xdco\x12\xd0\xbczD\x9b\xbd\xf7h\x93l{}\
+\xee\xbf.\xa2\x89I\x9a\xa9\xc8h\x9a\x1a!\xdd\x9f\x22\
+Z\xde2\xdd3\x22i\x0b\xb0n^\x1a\x91\x98v\x14\
+\x5c\x8c,0zy@\xb7\x7f\xb7\x7f\x13\xcdB\xeb\x06\
+\x95\x7f\xf2\xbc\xfe\x9e\x12\xf7&qQ1\xf4\xdc\x11\x94\
+\xfa<\xcf\xdf\xe4\x88\xb2\xff\x1cQ\x81\xe07\xd5\xbck\
+-\x8dH\xe0:B>\xca\xe8\x18@!T~\x98\x8e\
+hP\xc4\xfe\xf9\xa4\xd6\x91\xae\x1d\xd6\xb7\xe9\xfc:,\
+5\xc6x\xa5\xe0\xd4~\x8ch\xb3\xf3p\x0a\x14\x98\x95\
+\x14\xfc\xe4\x7fq\x8a\x9c\x9b>\x17\x85\xe6\x18`\x8f\xec\
+\xe8\xe6\x9a\xcf\x0c\xa2r\x88J\xaaC\xea\x02R\xc0\x9e\
+\x0b\xd86\xcb?4p\xa4%d\xc6\xaaF\xe7\xea:\
+\xdc\xa2\xae\x83*\xf6X\x15\xb8\xd6M\xf91\x057\xf6\
+\xa0\xd2\xd6\xa1\xf3K#\x051Z\xef\x1bP\xfb\xe9\x88\
+\xd3I\xdf1\x22=\x970\x90\x01\x82cde\xa1\xf6\
+\xfbt\xba\xd1\x18\xf1\xe8\xcc2\x12g=@LR\xf2\
+BF\x0c\xc3u\xe7\xb0\xb4\x1e6[\xb0i\xbd.\x8b\
+\xab^\xa2\x13M\xa3U\xdf\xcbv\xbb\x14\xdc\x02@\x9d\
+\x0f\x92\xc7\x03\x10 \xbeM\xfe\xc8\x88\x06y\xa3F[\
+L\xe1\x87q)\x86\xa3\xef7\x055\xa2\x92\x8ctH\
+\xbc\xda\xe7\x22\x80\xb6F\xb4\x9c\xcfR\xd0\x92G\xd1\xb0\
+e\xf4\x00M\x0a:\xdd\x8c\xa0\xa8\x8eq\x03\x0a\x91=\
+=\xff\xce\xa3\xc9\xd7i\x04\x01d\x8dEg\x19\xc9\xe0\
+s\xd1\xb8&1\xe3s\xd2\x88\xe1\x95\x863\xeb\x17\xd7\
+\x0bF*\x10U\xe4y\xa2~D\x13\x82<\x02\xa6\x13\
+\x7f\xce\xf7\x12\xb3\xd8\xa3\x22\x00\x8e\xfc=\xf2\x22\x9e\x1b\
+\xbe\x1f\x7f\x0es\x12\xa6?@\x83G\x006\x18\xa8C\
+\x88\xf4y\x96\x95\x0e$\x07U\x94\xcbk6D\xd6\x0b\
+\x89/N\xa1\xcd\x8dd#\x80\xfa\xf0\xa8\x08Qb_\
+\x90\x0af\xd9\x08z\xd4\x00\xc4b\x5c\xa8g\x11\xc05\
+\x92\xaa?_\x8c\x8e?\x05<\xda\x00Y\x04b\xdd\xf4\
+k\x18\x040\x0c\x22\x11Z9\xd9\x11\xe6\x91\x80\x95\x9b\
+\xd8\xe0CT\x1e)P\x00\x1e\xb8\xd1P\xd1YX\xfc\
+\x5c!\xde\x93\xad\xb4`\xd5\x11\xac\x8fwP\x83\x9f\x17\
+\xd1\x90\xac\xfeG\xfd\x8f\xfbHH\xbe\x17\xd1D\xdd\xfa\
+\x17E\x94_\xbfs\x98\xf1\xefv\x89h3\x91\x9e\xf1\
+R\x22\x8c8\x87\xa9:\xeah\xb2\xc1\xfaz\xf3\xc0\x03\
+L\xa8\xd3\xc2\xac\xba\xa9\xb20\x1e\xc4\x14\xe8/\x8a(\
+\xbf^3\xa2v~\xaa\x9f-\x89h\xf7\x9an\x9fn\
+\x9f\xba.\x06\x04q\x15%\x88K)\x81\xc3\xc7R\xf6\
++\xfd\x9b\x22\xca\xbf;6\x22QK\xd5\xc1\xe8?\x1e\
+Q\xfe\xddZ\x11-\x11\x98\x5c\x1a\xa1Df\xcb\x9aP\
+\x0f\xa2;\xda\x10,\x82\xa3\x990(]\xa6\x82\x22\xb6\
+\xc4\xc6v\x8b\x0eL6j\x1e,\xa8C\x02L@T\
+\xf9sSq(\xe8\xa0\xfa\xf0\xa0\x02(@\x99c=\
+1KJ\xe1\xc4\xcc\xdc}:\xa0\x96\x1e1dx\x1f\
+\xd6\x1f@\x12\x00\x85\x98\x06\x06F\xb6\x8fHv40\
+9\xd0z\x00)\xe6\xf9\xe7?\x0e\x10\x10|\xa8\x8a\x1a\
+]A|\xc9j\xb8h=\xf0\xdc\xd3\xd9\xa7P\xd3\xdf\
+\xb7\xaa6\x80\x12*\xe5\x1c\x1c\x1c\x04\x14\xe4\xf8\xe0B\
+\x85g\xc3c\xa3\xc3N\x8f\x9f\xc7\xfbhTa\xac\xa1\
+\xe0\xfb\xaa\xfb\x89\xba\xb8\xaf+\xb3\x83\x88\x14)A\x85\
+\x1ag\xbb+\x80\x22\xa8\xf5P~a\x08\xd1\xe9\x85\xa9\
+2\xf6\xaf\xa5\xc3)\xaa\x1e\x8c\x01\xd6\xb77nf\xf2\
+a\x5c@5\x13P\xd4}'\x22u\xd6\xde\x17\x91\x0a\
+o\xf9\xce\xe3\xdeQ\xca\xce\xe1s/=\x1cd\xd8\xd4\
+\x99\x8aO\x22\xfb\x0bu\xe0\xb9\xff\xec\xb3P\x9ca<\
+0\xab\xad\xeb1\xddq\xfa\xe2\xe9\x8e51Z\xbd&\
+F\xf2\xed\xc6v\x10\xd9(\xc4%m\xd7\xc79\x03\x15\
+\x9f\xd1\x0f:Gb\x00\xb831\x12\xa9E\xac\xd4\xa3\
+H0=\xe8\x14!V\x06\xf0x\xca\xc0@\xf2,=\
+\x05\x88|\xcd\xbboG\xa4\xfb\xf6sQ\xa2\xd7\x18\x0a\
+\x99\x05\xdf\x18f4\xc3e=f\xf3\xadBN'\x93\
+\x99M%p\x8c\x8aU\xf1\xc1\x9b\xeayqq\x15\x13\
+\xbdx\x98\xf9DL\xc8\xd4Kux\xfb\xf7F4\x11\
+\xb8~\xad\x88\xf2\xfa\xd2\x88r\xa0\x1f\x18!M\x95\x83\
+\x93\xf6\x81\x18\x16\x9eu\x95\xa8\xa7]ip\xcf\xa1\xb3\
+/\xc6\x13\xb3\x97u&zK\x01G\xdb7f\x8eG\
+\xdfpO\xa0#\x07#\x80}\x94\xce\x9c\x80\x02\xbb\x13\
+\x84\xa8\xda2:\x7fWM\x1a\x06\xa8\xfc\xefWb_\
+%\xe6\xdfPB\xf7\xf7\xd4A\x85\x11\x02\x10\x0c\xb3h\
+R{\xaf\x0b\xa6\x17D\x94\xeb\xf2\x9a\x88v\x1f\xb1\x8d\
+\x9d[\xb8D\xf9\x5cs?\x89\xa8\xb6v\xa7N\x83)\
+\xf0\xd3\x88\xd6\xe9\x83\xca\x8a\xb6\x86;?zn\x01\x0c\
+\xea\x88\xcc\xdfD\xb5\x7ft\x15y-!&\xc3]i\
+\x94\x82}Z\xeb\xc4\xd4\xd4\x18\xa19[\x1d\xa5\xbb\xda\
+\xba\xa9\x1d\xf6r=\xbbC\x22\xcakL\xf8\x85k\xc1\
+\x9b#t\x9d^[54\x06j\xf9\xe5\xf2\x09\x7f\xb9\
+F5\xa0\x1a\x9f4\x8c\x82\x00\x8c\xf1\xf9\xeal\xfe:\
+\xed{2B\xd2=7\x221T^Yb\xb7\xa6\xfd\
+S\xc5\xea\xde\x91\x80&\x9d\xe3\xf3\xdf\x8eH\x1dQ1\
+\xa7\x18\xed\x839\xe2\x06\x82\x00\x15\xa8\xe0\x88\x1b\x1a8\
+d\xd4\x0b\x11\xdeG\x0fj\xff\xb6\xcd\x13\x80\x14e{\
+\x14\xee\xd3\xff\x8bH\x8c1\x00U\xec\x1f\x05lP\x10\
+\xc3\x9c\x9b=\x22\xa2\x89\xdf\xf5O\x8d\xa8.2\xf7\x84\
+\x8b\x0c\xcc%\x03\xddt\xea\xc5\xecqg\xf9\x81\xca\x8d\
+j\xa2\xa3q\x0ao\xa6\xb3t\x92:\x8bc\x8d \xf6\
+\x17\xc4\xb5\x05X\x8d\xce\x22\xc4\x00\x00 \x00IDA\
+T\x98\xf1@\xe1\x01c6\x06\xb3\xf6j\xf6\xa9\xf5s\
+_\x96:\xd9P\xeb\xa1\xfcS\xc8\xc0x\xd3s\xdf\x7f\
+>\x22\xed\x8f\x14(\x14\xc6tV\xc9\xeb\xe39\xfcG\
+\x02d\x83\xf1\xf9\xcb\xba\xdf\xbc\xa7\x8a\x82~@\xcc,\
+\xae\x07\xb3\xe8\x88\xb6\xa1=\x22\xa0\xde6\x83h\x0fQ\
+wP\xd8\xd3\x01\xa5\xc0\x87\xe1y\xa8\x0a\xcaSj\xb4\
+\xbc\x05*6\xfb\x1e\x851\x0c\x10\x98\x0a\xe45\xe4\xed\
+td\xe9,\xd3Y=Rb\xcb\xdf\x97\xc8\x1ey\x1b\
+\xa2\xbe\xb1\xae\x16\x95\xad\xe8\xa9I\xcc\x17\x06\x95\xb4\xa1\
+fK\x8b\x81G\xe7\x96\xc6\x06\xdaE\x8c\x86l\x1b\x91\
+\xc4\x0ea0\xc0\x88\xbc\xb2\x9c\x22W\xa6Q<}\x7f\
+\xbb\x92P\xd0\x0b\xa013\x8e\xe7\x8e\x06\x0a\x9dz4\
+\x97XW\xcc\xa6#\xde\x87\xe8!\x94v\x1a\xc5P\xfb\
+\x11\xc9\xbc \xa2i\x5c\x98\xd1\x02c\x84\xf7\x1fS\xe8\
+\xa9\xa3\xb8.4\xbe\xc8\xa3\x18\xb5\xe0?\x1a`t\xd8\
+i\xe0P8\xa3\xf5\xc5\xf3\xc2\xbaW\xc1\xecF'\x8d\
+]\x0a\x7f\xf21F\x01\xe4\xd6b\xad\x07\xce1D\x1e\
+\xb9Nh$\xb0\x8e\xd0\x0a\x91\xf8\xa2\x7f>\x0c\x0a\xae\
++\x8ct\x80r\x98\xf4\xacw\x00A\xe5\xf3\x88\xecb\
+\xa7\xe9:\x0d\xc62u\x07\xa3\x92<\xc7<7\xe4I\
+\xfa9st\xe2M\xf9\xa3\xa0\xa7\xf0\x1e\x8b\xea\xf1`\
+\x92x\xd1i\x872\x8f\x98`\xdc\xd6\x7f\xea\x86?*\
+Q\x22\xb8\xe0\x14\xee\xf1\xf7\x17M\xef\xc7\x8dG\x95\x9f\
+\x8e\x0b\xd4\x7f\x12s>\x0f\xf6\x1aR\xbb5\x80@\x87\
+\x8d\xc2\x1b\xb7\x01\xdeO\xaf\x1e\x0d\x08\xc2\xc93\xd2\xcf\
+\xcf\xb6\x80\xf9s\x83\x90.\xf0f> D\x00\x03c\
+q\x08D\xd7\xa0\xce-*@`\x1d\x15(\xf8\xca?\
+3\xa2l\xc4'D4\xaa;\x9du\xdb\xd20S\x0a\
+\x05\xf9\x07\xc3\x0c\x1f\x88!\xaa\xd1\x16\x8dCdO\x9d\
+:k\x07@-\xd5\xac\xafg?\xe9\xfc\x83\xd4\x0ai\
+\x05\xa9G\x85\xd7\xb3W\x88\x0d^)\x91\x9fW\xea\xfd\
+\x995G}\x1a\xf1\xc0]g\xbb\x85\xaf\xf1\xecyC\
+\xa2\x18\x04\xd0\xa0\x80\x22\x22h\x1fMm\x84\x16\x1f\xd2\
+F\xc8\x83c\xbb?}\xae\x98\xd8\xab3{\xa8\xe43\
+\xa3{\xde\x00\x18t\xef\x8eh\xd4k6\xc2\x92\xde\xaf\
+\xda\xadZ\x0b\x9da\xa6h\xbd\x88\xa4\x96\xfeOmP\
+l|ldl\x80z\xb0\x8d\xa4S\xf0\x91 0\xa3\
+J\xe14\x16\xc7!A&!`\xa6J\xa3#\x16c\
+D\x85\xfcSJ\xd0A6\xd9p\xd8`\xa0zK\x0b\
+\x80\x0eL\x7fKD\xbb\xbe\xb3\xf5#\xd2\x0c\x1e@\x03\
+\xa2m\xcc\xc8i\xf6\xd0b:t\x08y\xbe\xd80y\
+\xceX\xf7\xa8\x1d\x8bR\xe5\x04F\x09\x13\xeb\xc3\x05?\
+\x856\x8c\x14\x12\x0df\x86\xa1\x84\xa93\x89\xea\xb0;\
+\xe4\xecC\x8c\xac \xf2\x08\x10\xc7\xf5\xa1\xa0\xe5\x00\x22\
+A\x10\xb5\x94\x84\xd3\x0c\x11\x80B\x0e(\xfc\xec\xf9s\
+4\x1c\xa0\xd4s0`\xe3\x86*=\x89\x1e\x88-\x85\
+-\xae\x0c\x1c\x14\xcc\xe4\xab\x83`\xf7\x02\xd4\xb4\xd5A\
+\xf3\x08\x03\x1dG\x0a9:\xb5P\xfc\x18\x01`=\x8e\
+\xc5.\xb5>\x99\xd9.\xe9I\xb53\xec\x0f\x8d(\xef\
+s\x99\x0a\x091\x08\xba\xa5#\x9a\x96\x80\x19\x05\xea\x0c\
+{4\x87\x0e\x83F\x18\xba\xe3\xbbOt\xc7\xd7\x84\xe1\
+\xd0\x9a0H\xbc\xcf\xbe\xc0\xea \x90@\xb0n\xe6\xbf\
+\x16\x91\x0eru(|\x1d\x01f\x98\xed\x86Z\x8e\xab\
+\x05b~\x8cV\xe0\x0a\xc0L\xa74\x0b\xbc\xcf\xc3\xe8\
+!q%A\xe1\xe7<7\xa2\xceN\x0f\xb6\x90<\xb7\
+\x00\xac\x9a\xd9\x9fl\xafBY\xd7\x071@D\xec\xfc\
+\xbehD\x1c'\x00Sv\x99f\xaa`\x97\x080\x84\
+\x18$\xf6\xbb\xdc?i\xc0\xf4\x87D\x94\x02\xe8{%\
+\xbe\xdbF6\xac\xa1\xc2\x0c5\xf6\x82\x12\xdd\xeb\xb6\x88\
+h\x9f\x07@\xc7\x89\xa5:\x0fhB\xa0:_\x13\xfa\
+\xf3Rb\x0f\xe0\xa6\x82\xcf\x05.\xa2\x8d\xb8\x07\xf0\xbc\
+\xc4>\x1bb\xae?\x19\xfc\xdek\xc2\xb5\x5c\xa3\xf4\xd7\
+s\xebkb\xbc\xfcOJx\xa4\xc9\x80\xbd\x1d\xaa\xe7\
+\xfd?J\xfcS\x1a5!\x06\xf8\xa9\x88\x92\xe8\xbc,\
+\xa2\x15\xfe\xd3\x8fDHd\xee(u\xd8\xcb\xba\x9e\xfe\
+)\xa2=\xc7\xf3\x1b\xcdo8\xbfa+\xac*\xecy\
+\x95\x12\xea\xb3\x92\xa8\x22\xc0$\x1d\xec\xe8X\x7f\xa7\x89\
+\x05\xd7\x8e\xfc\xbb\x9bo}\xa5v^\x9fD\xf8\x82\xb7\
+q\x90\xf6\x85gkT\xe5\x96\xc6\x0c\xe8~\x1eQ^\
+\x7f\xdd]\xd3\xfd\xba\x8a\xdd\xfe\xbb\xfb\xb7\xc4\x0aW\xae\
+\x00\xd7 b\x85\xdb\x06\x1d:DG\x11\x9be\xffz\
+\xbb4b\x96\x15\xf0\xa6\xce~\xfc\xeb\xa0^W\xe6\xd6\
+N\x8d\xb1\xe2\xf3X6\xa0\xb8\xd2\xb0o\xb9C\x8fm\
+-.\x00*d\xba\xedJl\x9flF\x05\xe0\xf5\x97\
+D\xa4\xefO\xe2\x0d\xb3\x87\xc2S\xc0T\xff\x8e\x88\x06\
+4L~\x1a\xd1f`)<\x18\x91\xf1zQ~f\
+\xd1S\x00\x01=\x0f\x16A\xc5.\xebU\x11\x0d\xb0\xed\
+\x0e-\xf9\xc3\xa1m_\xedO\x8fH#\x85\xccL\xc3\
+h\x0c\xb7\x8a/\xa6s\x1f\x86%\x1a-\x17\x0d\x80\x9f\
+\x996\x8c\xech\x1f3\x15\x19*=b\x96\x9c\xf7\xe4\
+\xb9\xcc\x9a\xd3\xc0QC\xcd\x9db\x80c\x1a\x02\x14\x14\
+\xb8\x9bH\xc4\xd5\xd4\xfb\xd1\xf9bq\xbb\xacZ\xbfD\
+\xd2\xe4\x02\x08^}\x00x\xabH\xea\x09\xa9s\xce\xcc\
+9\x9a\x11\xb2_4SH\xa3\xa2\x88\x10\xce^!M\
+\x01\x9d{%\xeb\x1d~\xcd\xe8\x19\xee-\xe4\xdbj\xac\
+8\xaf\x91\x08\x9e\xef\x1f\xc0\xb7D\xe5\x5c\xc8\x91\xbe#\
+:'\xca\xbbGe\x1f\x90f\x83\x1a\x1c\x93\xbf\x8b\x89\
+D\xfd\x00\x10E\xfe\xc4\xe84b\xa7\x88\x9ab\xab,\
+\xed\x0b\x8bY\x0a\xb0q\xfd\x00\xa0=\xa6js_\xb0\
+s\x06\xa0\xf8\xe9\x82\x9fT1\xc1\xc7W.[+8\
+7\x8fh\x05\xe2\xe4\xca\x88\xf2\xeb\xcfG$\x97\x00\x80\
+5\xea9\x00\x0b\xd6\x07\xbf\x06\x08\x81i\x09s\x83\xfc\
+\x81:\x11\xa6\x1c\xdaT\xe4\x1d\xe4\xb70\x08\xd0\x12a\
+\xe6^\xff\xce\x85*\xeb\x94|\x0b \x03F-\x80\x1d\
+\xdf\x93\x0e;\x0d6\xf2tF\xd3\xc63\xfa\xe4\x99h\
+\x0ad[\xf9\xe5S\xfe\xca+\xdf\x8f\xbc\x92\x91\x17\x18\
+\x04\x00\xab\x12-\x87\xe9\xe1\x06\x14\xfb0\x9f\x8bQ!\
+1\xdcm\xcb\xc7\xdf'/\x05\xd8\xc9ZsQ\x8f\xfd\
+3\x221@\xb8^0\x19\xa87Y'\xfc>\xfb \
+\x0c\x09\xad\xdb9\x7f0\x90>\xa8\x12\xccd\xc4\xb2^\
+F_piQ\xa3\x9f\xf3P\xca\xac;\xa0\x88\xf0\x91\
+pC\x85g\xa1\x89\xf2\xe7WF\x01($\xb8\xe0\xf9\
+\x06\xad\x926\x9c(3\xd6J\x1a\x05<( \x7f|\
+.\x1e$\x0a\xfaq\xe1Og\x8d\xc2\x07$\x10\xca+\
+\x0b\x17dh\xe4\xb3h\xc4\x86\xeb\xc5+7l\xdc)\
+>*\xa2Q\x84M1\xbaC7\x9c\xeb/\xc4\x0eq\
+(\xdf\x07\x12wD\xd4\x04\x5c\xcc\xb41O\xe8\xd8-\
+\xa1\x8e\xba:\xa7>\xf0\x10\x0d\xc1w\xfe1\x9a\xed>\
+T\x94PD\xa2\x04`@\xb5+ie\xddHJ\x99\
+6P\xbe\xb0!\xd9@\x1a\x0e\xd8\x821\xe3\xaf\xc2\xcc\
+v>B\xa0\xfb\xa3\x22\x12\xe2\xc5F\xae\xd9\xd0\xd9\x09\
+\xc3\xac,H\xf4\xf4\xbd\x11\x09\xd9\x123\x82\x03\xaa\xbf\
+:\x22}\xeeQ\xe1i\xed\x01:\x81\xa2n\xc3p\xb0\
+\xdf\xfb\xf2\xc3:1\xe5\x8f\x82\x86\xc4\xe0/*D\xd1\
+Z`f\x89\xc4\x9d\x99T\xee\x0f\xa3\x000\x01\x98u\
+d\x03d\xc3\x01\x08\xa0\x90!\x81\xc0\xaf\x96\xf5\xc1:\
+\x93\xf8\x947`(\xe1tD\xa1\xf6\xa9\x83`\x11\x13\
+\xdc\x1b\x00(\xa0\xf6\xa3n\x8e]\x1d\x07'\x1d\x19\x90\
+r\xc4\x80@Z)\xf4\xd9\x08Ip\xa0(j\xc3\xa5\
+S2\x9b\x8bh\x80I\xff\xd9\x88dC\x07`\xa6\x11\
+\x15S\xca\x7f/J\xe6\xab4\x1b\x1e\xc7\xf8c\x13\xa5\
+\x0dD\x5c\x1a\x14\xa6\x14\x03\xc0\xc0\x88`6\x8c\x03\x80\
+\xf5\x81M\x9c\xd4\xa6)(l\xcf\x87F\x09@##\
+!\x88\xb8\xd0\xd9A$G\x85\xb8\x7f\x9f\xfd\x04\xd5{\
+\x0a7\x9e\x1f\x90pD\x92\x00\x1a\xf8\xbczN\x5cH\
+i#\xb7-!\x07\x1c\xb6;\xcc\x00\x03(\x88\xc2\x87\
+\x0a\xb955X\x9f\x12#\x9b\xfdY\xe2I\xa8)\x0b\
+\x88\x04I\x9e\x5c?\xf9\xed\xe4\xb7M}\x1e`(\x06\
+\xa4\x020F\xc4\xd3\x1d\x8b`\xfe\xfc-i&\xbc\xae\
+$\x04\xaf\xab\x09\xce\x1b\xeb\x08\x01#\x10|o\x15\xda\
+\xdd\x99\x11\xe5\xb9\x7fFD\x13M%1\xeb7\x8bh\
+\x05\xbc\x9f_\xb9\x9eX\xb3\x81\x99E\x0eH\x98*\x8c\
+@i\x9dC\xe9gt\xc2\xcc&1plozg\
+\x7fW\x7fW\x15;\xab\xcc&\xd4\xd4\xbb\xe3\xbb\x13\xba\
+\x13\x9aZ?@\x96ER\xe9\xb0\xee\x1e\x90hZ\x8f\
+\x00#\x01\x1b<\x90:4\xea\xa0O/\x99^:\xbd\
+4\x8d`\xd0a\xa1\xc0AU_\x09\x87\xddR\xd8\x9f\
+\x18\x85\x89\xeb|\xa0\xd4\xeeoi\xcc\x1fD\xdf\x00\x14\
+\xad\x19\x82(b0\x0e\xbe!&\xd5%Z/w\x08\
+\x10zW+P\xba\xd7G$Jw\xec\x1bw\xb6\xf3\
+\xb4\xfe\xfe\xe7\x94\x1f,\x93\xf6;:u\x1a\x15\xac@\
+R\xb9\xee\xdd\xd3\x22\xf4\xfcm\xadQ\x97\xf2\xb9\xba\xd5\
+#\x92\xfd\x19\xd4N\x0a\x91\xe8s\x5c\x92\xd4\xb5\x83\xff\
+\xf3\x99\xa6\xfaNa\xda]Q\xa2\x9cSs\xcf\x8e(\
+\xd7y\xe1\x12\xd1\xf9\x7f{\x89Rxv\x97\xc7\xdf(\
+\xbf\xff\xb8\x88\xd4qb\xbf\x91\xc8c\x85\x15\x9f\x994\
+'\xfe\x15\xd1:s0b\xea\x88\xc7#\xdbs\xd7m\
+\x12!\x8d\x8c\x8f\xd5\xd9\xe8M\x83\xaa\xdf\xef\x16\xa1\x0e\
+\xe9\x99\xa2\x8a\x7f\xaai\x01\x98\xf2\xff\xfb\x88\xf2:)\
+\xd1\xb5\x99\xfd\xee\x9b\xdd\xb7B\x13\x00\xca\xbf5~^\
+\xaa\xd9\xde\xef\x08\x80!\xf1=]\x89\xfc:R\xe3\xd7\
+\x08a\xb5\x85\xbaj\xd8\x1fC\xc3`\xba\xdat\xb5\xee\
+\xd5m4\x05\xe6\x10T\xden\xdd\x884\xab\x1a#=\
+\x1f\x12\xd0\x18\x8c\x91\xff\x94x\xa01\x18*\xfe_\xd6\
+m\xbfm\x89\xe7j\xff\xbaSL\x9b\x7f%{\xd0\xc8\
+\x0a> \xa0b\x97\x06\xac\xf4\x9f\x89H\x8d\x18\xfe\xbe\
+\x9eo\xdbS\x8a\xc1\xca\xc8\x95\xff>\x22tz\xce\xb9\
+\xfe\x14\xd6\xb3\x95\x22Z\xa3\xc5\x9d_Fe\x04|\x01\
+\x80\x18\x98\x85Q(\xe0\x10\x86\x86\xdd\x1c\x040\xbb\x10\
+\xa6\xd0\x80:\x0cuZ\x1d`\x18\x9a\xee\x18\xa3q\x02\
+\xc3\x8ds\x17M\x22\xad?3\x0du\x0e\xc4\xdd\xa8#\
+Vo\x98\xbc\xbe\x02\xe4hy\xa1A\x02c/\xf8\x9d\
+\xa7\xaa\x10\xfbp\xda/\xc7\xd4oD\x90\xd1\x8e\x02\xb8\
+P\xden\x1b\xe0+fW\xd6\xfcO\xdf\x17\xcd\x97\xd9\
+\xda\x12#f\xbd\xbd^\x0c\x22\xbd_\xd9=\x07\xa6\x9a\
+\xce=\xbb.q\x9f\xb1\x85\xa4\x8e\x801\x89\xdb\xcf\xbe\
+5\xda>\x0c\xa3\x04{g\x8d\x86\x01\xc4X\x0d\x1e\x9b\
+D\x9d\xbf\x16}Cd\x17J\xbf4\xaa\x5c\xb0\x93\x17\
+\xd1\xa8\xd0\xbe>[2\x22i\xfc\x008s\xee\xc3\x94\
+\x86AM\x81H\x9e\xc1(\xa1\x80\x11S\xdb\x19\xe1Q\
+\xbd\x83\xf8\xac\x19\xbe\xec\xaf\xd4\x11\xe4\x9304\xc5l\
+q\xde\xc7\xcf\xa5\x9e\x00@\xa7@\xe4z\xd1\xb1F\xac\
+\x9c\x82\x9d\x91\x0e\xea#\xe5G\xb6\xd3\x83y\xc3h\x09\
+LE^\xb9\x8f\x14\xfe\x14\xae\xe4\xd1\x8cF\x09P0\
+s\x14qr\xe5\xa1fT\x8d:\xdd4\x14\xfd=Y\
+\xc7\x00\xf9\xd4O\xbc\x1fLp\xc4\xa1\x01\xc2\xf8\x1c\x00\
+\x0e\xac\x0f\x98\xa7\xe4u\xba\xfe\x16\x81\xc7v]n\x0e\
+\x06^\xb8^h.(or\x81\x8f\x1b\x09\x80\x06\xeb\
+\x9c\x06\x08\xf7\x15`\x06\x80\x08 \x01m\x1c\xf2|\xae\
+\x9b\x80\x03\xdb\x9d\x0a\x90\x9asG\x1dJ\x1a\xd4\x03n\
+\xc4}\x95|\xdc\x0a\xfaX^\xf7\xa7\xbfGB\x19\xdb\
+\xd3#R\xa1M\xa1LB\xce\xaf\x97\xaa\xa4\xef6{\
+M\xa7&:\x1a\xcfM\xd4\x1a\x0a\x0d\x10)u\xf0M\
+\x0d\x8de\xb5\x9en\xdc\xe3\x93{\x01\x00\x00\xaf\xd9~\
+i\xdd\xd6\x11w\x82\xcf\xe7\x05\x81\xe1\xe7rp\xf0`\
+1k(\x0a\x86\x11H\x0a4]?\xfb6\xb21\x08\
+\x101\xc5FH\xe6dg\xcd\xa2\x89\xf2\xe8\x1b\xa3\xd9\
+;'\x80\xd8<\x1c2\xcc\x1ez\xb6\x13U\xe37\xe9\
+\xfb\xac1t\xea\xfaS\x22\xcaA\xb4LD\x9bY,\
+\x9b\xe4@\xe5\x7f\xf50\xfbT\xd2\x84\xda\xd9\x9f\xfca\
+r\xeb$\x10\xb5\x0b\x87D\xc9j\x92\x17\xa9\xd3.j\
+.\x88\xb7\xa9\xe9\xd7\xeaA\xbeV\x08\x93\x0a\x14\xfb\xcf\
+*a\xae\xae\xc5\xc7'j4j\xcaB<\xdd\xd9D\
+UU\x1b\x06\x09\xaa\xedi\xb4A\xf6\x1f\x8dh\xb3\xe0\
+U4k\x85\x04\xb80\x83\xa8\x19u\x90\xe1\xfe-\x11\
+\xed\xfbM\x8f\x8b(\x7f\xbe\x9b\x18\x09\xccx\x81\xf4\x81\
+T\xfeL\x14WTE\x7f\xac\x8d\xff\x94\xe1\xe0\xf1\xc8\
+\xc3\xe7\xb4a\x1c.\xaa\x14\x1a\x05t\xa6wV\xe7e\
+\xc3\x01\x98)O\xde\xb0n\x10\xaf\x83\x91\xc1A\xaf\x04\
+\xd3\x22/\x14\xca\xcc\xdc\xc9\xae\xc7\x1b\x0c\x88\x1f\x1b\x0f\
+L\x0f\x00\x80>\x22u\x16x~\xe9\xe8spp\xa0\
+\xc2\x0c\xe19\xe1\xf9\x87\x8a\x0d\xb2:\xb6\x09\xe5yU\
+'\xd6\x00\x1d\xff\xd1\xd1\xa7\xc3\x0a\xa5\x9d\x0e'\x89\x13\
+\x098\x07\xa76Z\xec\x9e<\xdb\xcf\xf3\xcd\xc1\xcc~\
+\xc4\xf5\x00\xf9d\xe3\x1dQ\x04\xf1\xd9%1\xf4\xf5Q\
+a\xcd\xfa\xf4\xc1\xcd\xfb\x00\xe4\xb0_p\xa0\xf1\x0ar\
+=\x02zf7D\xa4\xe7\x1b$\x1d\xca'\xda'\x5c\
+?\xc4\x13\xb1\xcb\xa3\xe0\x83\xc2\x88\x9f;\x80)\x80!\
+\xf7\x0b\xdbF\x89]\xb9S\x04\xd3c\x0b\x15\xfc\x1c\xf8\
+\x00tt\x90\x16\x11%u\xa4]Q\x0e\xfb:\xb3\x88\
+x(\x9d9\x03\x117\x96]\xeb\xc6t_6,?\
+u\xc3\x04X\xa1N\x8f\xfd\x8e\xc4\x0bK\xd9\xf6\xae.\
+:\xb7+G\xa4\xfbEG\x08\xf1%\x008l\xe0\xd4\
+\xc9\xc7\xde\xcf\x1d\xc4\x91\x8d\xabg\x0aQ\xbfW\x01P\
+m\xbc\xe6R\xc1\xad\x99]\xef?\xea\x88\x18\xc0\x9a\x0c\
+\xcb\xb9\xbb\xac\x94\x8e\xa5\xb0\xec\xee\x8bH\x9dDiK\
+`{\x86\xa6I\xf7\xc1\x88\xd6\x91\xe9\xae*\xf1\xf3F\
+i\x9f\x9e\x15\xd1\x0a\x98\x90d\xab\xe2\x92gN\xce\xa8\
+\xa3J\xd1y\xbf#\xd9\x171#\xc8\xa8\x9dF\xa0\x5c\
+\xa8\x85H\xdc\xb7\xe4\xfb\xbeM\x1b\xed0\xc3ddW\
+f\x8d\x04\xd4\xf6u=\xa7\x9f(q|\x13\x1f\xabi\
+\xf4\x974K\xbe\xb6\xfc\xb6\x9f\x92(\xf2\xc2\x7f\xcd\x08\
+\xd4s\xee\xd9\xd0\x8b\xaa\xdezc`\x04,\xf0\xd9D\
+\xe9\x96\xcd\x94\x13hfC\x83P\xfe\x8a!\xa1\xa9\xe7\
+16l!v\x17\xee17\x97\xb8I\xcf\xc5\xf1\x9a\
+]\x8fY\xfcc\x22\x94\xc0\x86\xbd\xe1r%\x96\xaf\x9a\
+\x00\x8bN\xcby>\xb7eD\xf9\xfd\x17D\xb4\x84\xc9\
+\xf6\xbd\xec\xbf\x00\xa1\x8c\xec\xc0\x90\x01x\xc5\x16R\xa3\
+\x0ea\x8aYm1\xb5/1\x02C\x01f\xfb\xe1\xe0\
+q|Q\xc0\xeeW\xd5A\xfcp\xd3\x22\xa2\x01C\xa1\
+\xdf\x1d\xd4\x1d\xdc\x95\xc4?\x9e\x96x^\xdcQC\xf3\
+\x03 \xeb(i\xa9\xbcW\xbf\x0f\xe0\xac?GD\xb6\
+\xb6\x01\x0e\x91\xd8\xde5*xOl\x80\xc4l\xd1\x88\
+\xf2\xf3^Yb\xf7t\xdd\x83\xfa\xff\xa1V\x18\xd7\xf3\
+\xe8\x1a%\xaa\xb76{\xc3~\xbf\x12\xafm\xeb\xb0\x02\
+\x07Ae}vD\xa2\xd2\x06\xe31\xb4\x1en\x8f(\
+\xff\xee\xf0\x12\x87\xb5Nu\x7ffDy\xbd-\xa2\xcd\
+\x84\xdb\xcdC\xaa\xe6!mZ;\xf0h\xce\x088\xc2\
+\xbe\xd6\x8c\xac\xb1\xff:\xf6|a\xb3\xb8y+\x84g\
+\xa7D\xa4\xfc\x8e\xbc\x8f\x91\x85\x97D\xa4s\x09\xe6\x05\
+ZGZ7e5U\x0d\x8f\x80\xc7\xea\xfd\x02\x08\xa6\
+\x93\x07c\x92\xc2\x84\x82u\xa4Bo\x17\x0e\xee\xb3\x80\
+\x1f\xb4(8\xdf\xab\x88\xf4[\xea\xf9P5\xbd\xd0z\
+\xa0\xa3<;\x22By\xdd\x99:\xcf\xe7\x92M/y\
+\x01\x05\xeah4\x80\xd1\xcc~\xdfr\x7f\xcb>\xda\xaf\
+\x14Q^\xffo\x18]\xc5\xf6\xd0\x22\x8f;\x88\xe9\x05\
+U\x99N\xaa\xf2B\x8b\xe6i\x14\xcb\x9dv\x0a\x9c\x03\
+\x06&Q\xc9j\xeb\xe8\xabm\x1a\x11K#\x7f\xe1\x9c\
+\x160\x83\x1b\x89\x01\x1c1\xc2\x00l\xad\x05\x81\xad,\
+n\x1d0B\xaf\x8aHy\xd7\xde\x11I\x8c\x9b\x11$\
+\x9dO\xfd\xd6\x11\xadpd\x14\xc6n2\xfc\xa7\xf5\xe3\
+\x82\x8d\xcfO\xdeC\x83\x81}\x97\xbc\x09@\x06\x95\x7f\
+\xb4t`\xd8P\xf8\xc5\xfd^#\xb9@\x91g\xaa0\
+\xf6:\x17\x03\xd8\xa3\x184F\xd5\xf8\x9c\xac\x11\xd1f\
+\xf8=\x9a \xed*3\x0a`\xacR(S\x90R\x80\
+\xa3]\x81&\x00\xee\x0c42\x01\xe4\xc8{G\x0dX\
+\x8f\xb6\x90g\xc0DV#\xc8\xa3\xbdh|\xf0\xf7h\
+\xc4b\xffI\xdeE>C\xfe:\x16\xa3'\xef!\x8f\
+'\xbf\x22\xaf#_\xa2q\x0d#\x90\xc6:@\x1fy\
+\x08y!\xefK\x03\x8d\x86\x0e\x9dS\xde\x07\x00\x80\xfa\
+|D\xf9w\xe3\x0f\xc6\x00#?\xack\x1a\x85\xca\x0f\
+i\xac\xb0\x0e\xe7\x8cX0kA\xc2\xce\x81\x87\xc8\x9d\
+4\xaa\xdc\xe9f\x03\xe4\xa0_\xa8\xea\xa9\xb7N,\x89\
+0\x94%\x5c\x00(\xacI\x0c(\xa4\xb9\xf0t\xda\xb9\
+p\xa8V\x86\xca\xe9Zi\x96\x9f\x82\x1d*v\xb6\xef\
+[.\xd9\x02\xea\xd7\x951\xb0f\xea\x98\xb1\xc0\xa5}\
+P?\xf5ji!\xe8{L\x96\x8eH7\x9e\x1b\xcd\
+\xe7\xe5\xf3SP\xf1\xfb\xdcH:\x15\x5c\x17fp\xe8\
+\x0c\xd3\x01\x97\xdd\x9a\x13O\xa8\xd3P\x99(\xbc\xe9\x88\
+C\xb5c\x06^\x85\x03\xb3p\xa8O\xdbW\xf4\xab\xc3\
+\x88@\xf0\xf0\xeb\x0d\x13E\xb9\xbb(\xa2\xa9\xf2\x1b\x11\
+\x95\xad\x97)b*\xdc\xfa\xdfE4\x15\xf2\xb2\x0d\x0c\
+\x0b\x0a\xb5[u\x82gk\xcd\xd6\x9ee\xdb\xc8\xd3\x84\
+\x18j\x01\xd3\xb9\x9f\xbd9\x22\xa9D?c8\xc0\xfb\
+/F\xb4\x02\xab;?\xa2\x15l\xfd\x96\x11\xa9\x90A\
+%6fr\xd7hv,0/\xba\xcd\x22\xca\xf9\xb6\
+~D\xbb\xae\x16\x95\x89\x03\xe97\xad\x83\xd6_\x1e!\
+\xea\xe2v\xa9\xf3\xcf\x83\xcb\x86&\x91\x99\xfe\xae\xfe\xce\
+\xfe\xce\xd6\xf9\xb3\x1a\xb4\xc42\xedS\xcd}G\x0d\x16\
+\x7f\xf3\x13\xb5\xb1C\xd9\xc5-\x81\x8e\x1av*\xac/\
+\xd6\x13#\x0ft\x16T\x98\xd2\x91*\xc7\xd0s\xfa\xe7\
+T&\xc7\xa0\xdeO\xe2\xc3\xa8\x00\xf6~\x9a\x15\xb7\xb8\
+\x0f\xcf)L\x18f\xf6\xc4\xa4@\xc4\xcdL\x1b\x98/\
+0y\xf89\xda\xc0L\xbdC\x94\x87D\x14\xe0H\x9a\
+\x04\xb6/dd\x80}\x89\x82\x5c\x94z?\x17\x88\xe8\
+q\xa0\xc8\x9e\xd2\x9f\x9f\xe7\x99\xd9-!\xeaN\x1c?\
+\x19\x91\x0e2\x90W\xc4\x894k\x08\x00\xe0\xd1\x03\x90\
+i\x12$6x~\x1e\xeb\x84\xfb\x04UR\x09\x05\x94\
+h\x17\xf2\xf8/\xb3\xef\x01L\x02\xc4r 0k\x0f\
+\x03\x8a\xce\x00\xfb\x83\x124\xbbzH4\xca#\x02\xf8\
+\xcf\x0a8\xb0\x0b\x81\x12AFz\xe8P`Se_\
+d\xad\x87R\x0e\xd4\x19\xdc\x98\x1c\xae\xb3\xc3'\xceN\
+\x9a\x9d\x94\xa8\xdc0s\x18\x1d\x01(!\x11>@\xd7\
+\xef\x1f\x02\x88\x11\xf9\xb9v\xb0o\xeb~\x10Q;\xba\
+\xc3\xbf\x17\x02>\xbfCDK\x8c\xbc..\x19\xd4\xfe\
+M\x99g\xdf\xe6\x1c\xe3z\xea\xe7xV\x1d\xa0\x89\xfb\
+\xce\xe8\x06\xb6L\xb8\x13\xe8>\xce\x16\x8bH\xc0\xda/\
+\x06\xc4\xbe\xceB\xbf3\xbd\x9f\xde\xc7\xd4\xd6\xaf\xc8w\
+\xfd\xcb%\x01\xf9rR\x1f\x8e\x0e^\x88\xb2-\xd6-\
+\xde-\x9eF8P\xaf\xff\xcb\xe4\xcf1\x8a\xc4\xba\xf5\
+~\xcd\xb9\x88O4\xeb\x80\xd9^\x01 \xdd\xc2%\x1e\
+\xd9D\xaf\x5c\xc8\xc4\xebgS\x01\x1a\xa7\xcam\xc9^\
+\x0fU\xf5?E$\xdf\xe7\x807\x0fO\xa3TQ~\
+\x04\x03\xe7\xcb%\xce\x16P\xf2\xb9d\x0b\x1cO\xd5'\
+\xb4O\xed)\xd1\xcf{\x1a\xd3\x84\x8e\xafg\xc8\xe5\xd2\
+P\x81\xda\x0d\x938\x12>\xd8%}\xaa\xd4\xd9/,\
+\xf8B\xa5\xb8\xde\x14\xd1\x0a\xd8\xe9\xfd\x11\xcd\xbd\xa3\x16\
+d\xdb\x88\xea\x7ft\xa2x\x87\x88\xe4\xeb\x9a\xe6\x04\x8c\
+\xb7\xc9o\x22Z!8\xfdkD\xeax\xc7s\xf4`\
+[_f\x8a\x09P\xa4#\xdb=\x18\x91\xf2\x03\x9ec\
+DF\xc3%a^\xeb\xee\xd6t=\x02V\xbf6\xd9\
+-j_E\x0c\xb0v\xba\xefMb\x5c\xccv2R\
+\xc4\xb9\xad}\xca\xfe\xf3{\x0e\x8c\x16\x18F\x9e-?\
+0B\xeb\xfd\x87\x0d D\xc3\xc0\xf9\x98\x80\xdf\xda\xe1\
+~W\xd2`\x89S\x7f\x9a\x18K?*\xf1C\xd9z\
+\xbdI\xa3E[\xa6\xf3R\xcf\x85\x01nF\xfbPw\
+\xa7\x83\x1b\x05\xdf5\xfa\xf3\x9f\xb5?\xb7\xcb\x09\xd7S\
+\xfb\x8b]1>\x1c\x91T\xf1\xc9\x83X'\x00\xab$\
+\xfe\xa3\x02\xd1\x22\x99\xd8\xe7\xe1\xaa\x01\xd3\x95\x82\x10\x97\
+\x07\x18\x02\xb8\x81\xc8u\xc3\xb3\xd8P\xc35\x1aR\xb2\
+\xbc\xaa^\xef\xbc8\xe0\xd0\xab\x9b\x9b\x8aG\xd78\x17\
+\xd8\xf7\xc7\xfe\xe0\xca/l\xcb\x8b[\x0c#\x9ck\x88\
+\x1a~\x81\x0a\xe88\xe77I~\xea\x00r\x12\xb1\xac\
+\x00\xf0\x1b\xda\xb9h\xe0\x1f\xe6(y\xb6\xf6\xb7\xfe\xd8\
+\x12\x1f\xa8\xaf\x1f\xec\x8f-\xaf\x8f\xec\x17\xea\x17\xaa\x85\
+x-\xecg\x0b\x8bI\xa1\xeb\xec:\x03&\x1e\xff\xd1\
+\xf0c\xdf\xc2N\x14\xcd\x82\xefi\x14\x01@\xfa\x1eu\
+B\x01Xb\x84\xe6\xdfiF\x1dw%4r`\x5c\
+\xf1\x5c\xc0\xacT\xc7\xdf#\xadb\x92\xb9`\xa5\xc3\x8c\
+\xdb\x0e\x22\xa5\xe3\xf3\x1d\x06,6\xdc\x02\xdc-n,\
+\x06*n[\x1eIC|S\x8d=\x03\xe30\x01\xb1\
+k\xe39\x93H\xa0\xc5\x7f\xb9\x1f\xaa\x83\x98\xe9w#\
+Q\xda\x5c\xb8\xb1\x90'\x87BMh\xd4\x18\xf8S~\
+e\xfbE\xd6\x1b\xf5\x0e\x05%\x0cZFgp\x8f9\
+i8\xf7=\xda\xc9\xa8*\xe7\xe0\xa8\xe3\xcfh\x97\x0b\
+l\x1a\x12\x00Y\xa7G$\xa6 \xf9\x13\xccH\xd67\
+\x8d\xb2q\xfe\x89\xd81\xee\x0dW\xab\xc0\xbeL3\xf1\
+\x5c_\xf2\x11\xf2[\x1aZ\xe4s\xfc\xc7\xfe=\x12\xcf\
+s\xe1\xcf\xaf\xf9w\x00\x0e\xca\x1b\x19\xf93\xe0\xc5\xf7\
+&\xdf\xe3\xfa\x982=\x1a-\xa7\xc16~\x05\x10\x80\
+\x190\x02:\x0c\x10\xd0\xc8T\xfe\x0d@\x0a\xb3j\xce\
+\x89\x14\xe2wq9\x11\xd7[$]`\x10\xc0 .\
+l\x94:\xa5c\xaa,\x7f?\xd2\xe5\xf5\xf5>\x0b\xa7\
+\x0b\xc4\x81\x81\xed _\xfc\x9fu\xdaz(\x90\xff\xaa\
+\x82zy\x15\x10\x0f\xeaF-\xfe0\x9d7\x1e\x046\
+t\xa9\xf9\xd7Y\xc2\x15\x928 \x1d<\x0a\xf8\xec\x0e\
+\xb0V\x02>\xd4\xc1\xb4( @\xc6\x98\x11\xc0\x82@\
+\xb4B\x9dz:\x06FZ\x00JXhWH\x04l\
+[Q\x86P\x13\x86\xea\xc5F\xa1\xcf\xd9\x9f\x1a\xd1\x12\
+j\xec3<{xh\x8df\x03'\xf1*\x176t\
+\xa2_&Q\xa7G\x0d~\xef\xb6%\xd3\x81\xd8\x1d\x13\
+\xd1\x12\x7f\xdb\xe7\xdd\x12\xd1\xec\xe3\xa0\x02\x95\xc7t\x98\
+)b\xd1\xe2K\xcb\xac\xb66T\xcf\x1e!\xa6\xc7\xcf\
+\xd5\x02\xb6\xe8$\x221\xeb\x0d\xb3\xe9\x9em\x15 A\
+ab* \x07\xb9\x80\x17\x8be\xa1\x9e\xab\xce\xfe\xf4\
+\x8f\x11\xa9\x83\xf8\x8f\x88\xf2>{F4\x95\xfa\xf97\
+\x97xK\x03lj\xe2\xbcp\xeb\xa8X\xb4K\xd4\xbc\
+\xfe\xdb\x11\xe5um\xb9\x1e\xd0\x01\x91\xdf7\x14\xe3\xe9\
+^\x11I%]*\xdd\xee\x94k\xc6\xd0\x1dX(`\
+B\xce] \x8b\xfa\x0fE\xd0\x80\x13\x9d'\x89\xdc\xf9\
+\xf3\xa2\xfd \x17\x04\xfb\x85C\xe5\x12\x85\xde\xff\xf1\xef\
+P\xd1g\x96I\x9a \xb5\x13sx:\x88\xa1xQ\
+X\xf1\x5c\x8a\xf2\xee\xc2G\xd7\xdb\x9a\x0d#\xaa\xac\xa9\
+\x8b0!\xd8\xa8\x10q\xa10\xe39dD\x87_\xa3\
+\xa1\xc1l!\x09\x06\x9dc\x90Q1\x8e,\xca\x85\x1a\
+7\xd7[\x07\x8f)\xe5t\x1e\xb9\xcel\xb0|\x7f(\
+\xb5hgd\xc6\xd4}i\x03g\x9f`\x7f\xe4\x95D\
+[j\xfc^\x17_/\xc7\xd7\xd7S\xa7\x91\x0d\x9f\x9f\
+\xcb\xaf\xf9\xf7\xa2t\x1b`\x02\xd8\x12\x85\xd2#\x0dP\
+\xa4E]\xec^\x1c\x91\x0at\x9e\x0fu\xac\xa1.{\
+_Q\xc2\x00Uu\xf2\x19\x89f\xfdK\x05\xca\xee\xa2\
+\xdc#v\xc8z\xe0\xfbS \x88\xb9S=!>\x94\
+D{\xd49\xed~,\x95|\x128\x89R!\xfa\xc5\
+z\xeb\x97\x8c(\xbf\xff\xc6\x88\xb6\x8fB\xb5\xa6\x93b\
+\x86\x91F[\xdc\xa1\xe5\xf7\xe5\x07\xee\x8e7\xc0\x8e\x00\
+!\xdb\xb8\x09Igd\x00\xed\x82\xfe\xc8\xfe\x88\xfe\x88\
+\x0a\x14\xd6\x0e~\xf7\x9b\xee\xba\xee75q\x1e:\xf4\
+!\xc6vyJ\xb44z\xd5_\x15Q\xf6\x9dM#\
+D%>\xbd\x89\xd4uGE\xa4Q.}\x8e\xee\xed\
+\x11i\xbf{\x87|\xe9\xf5\x9c2c\x8fH*\x85~\
+-\x8c>\x94\xec\xb3\xd4a\xb5\xe6\xc4\x0bJ\xec\xa0\xce\
+\xd3\xf9\x89\xf9\x02\xd0\xc0\x88E\x00\xca\xc7%\xc6\xc46\
+\x95\x0b\xd2:q\xcc\x9a\xc3\xb8\x8b\xe7\xfc\xb3i\xd4/\
+\xee\xf6+\xdb\x8c\xad)\xd7\x9c\xcb\x8c\xce\xc4\xe9\xb8\x9d\
+4\x02nO\xe2`Q\xce\x5c\xa0\xfbp\xb2\xce\xe3E\
+S!+\x1b\xcf:\xd3\xbfT\x1a\x19\x09\xb1\xb3\xc76\
+\xa0\xc83\xed\x1b\x0fn\x06\xecg\x8c\xbaT \xb2\x5c\
+\xe7\xe97K\x94u\xd8\xbd/\xa2\xbc\xee\xd6\xed\xda\xed\
+\xaa\x0e\xcby-\x81\xc3\xb5\xc7\x85n\x00 \x7f\x95&\
+\xcfS\xb4O\x5c\x9f\x98G\xec7J\x08\xfb\x8d\x22\xda\
+\x88\x12\x1d\xb7\xc9,\x221\xbf\xe6d\x17\xb6\xa7D>\
+\x19\xcd\xa3c\xca\xfew\xbeT\xde\x8f\x1b\xf6\x01\x9f\xfb\
+$\xea\xb2\xa5\xec\x9f\x1b\xd1\x0a\x99:*qE\xd2$\
+!?\x90\xc8p}\xca\xbf\x9b\xc4\x1c)\x90\x19\xd1\xa4\
+\x11\x14\xa7\xdbJI\xbc\x8f\x86\x0f\x85\x05\xfb\xb6\xb4h\
+\x00\xf4\xfb[K\xdc\x92D\x8e\x99%\xd6\xfa0\x10v\
+CD\x03&\x01D=j\xa1<\xc9\x00\x09\xe7-y\
+\x1c\xa3o\xa2\xc2vKF\xb4\xd17\xbb\xe1p])\
+\xbcE\x1d\xc6\xf6\xd4\x9dy\x8d\x86U\x11\xc8\xbbS\xa1\
+\x86F\x10\xa2\x9b\x1a=\xf0\xb9\xf6\xf3A\xcc\xadd9\
+\xf5|\xf4H\x01\x85\x0f\x85&\x94s\xed\xd7\x1e)@\
+\x03@\xda\x0f\xb3]#\xca\xeb\xb3J<S\xd4\xf8}\
+$\xf2\x1bb{O\x88H\x00z\x5c\x9d?\x8df\xea\
+oM\x8d\x9f\xcb\xca\xaa\xb8\xac\xde\xa7'T\xcd\xa0\x1b\
+K!X\xce\xe9\xfe\xb4\x88\xf2\xfa\xe6A\xac\xd9\xda)\
+\x9bK\xcb`e\xb9O0\xb2\xc0(\x0d\xcc<\xb9\xd9\
+\xd8\xd6\x18\xed\x0a(\xd50\x87i1R\xd8P/\xa8\
+\x80\xa1\x00b\x9f\xf49\xcc(+\x0d&\x00m\xa8\xfc\
+\x14\xdc\xe4\xabP\xdb\x11O\x83!\x06#\x00&\x06T\
+u\x0a?\x8d\xb2\xce\xe6\x07@\x8f}\xc8\xa3N\xfc9\
+\xaeF\x9c\xe3\x14\x9c\xd2Hq\xbe\xa5\x02\xdcZB\xe4\
+148\xa1\xf0\xd3@A\xeb\x0a\xad,^u\x8e\xc3\
+\xe44S\x89\x0e4#\x08\x1a\x0103\x8b\xba\x88z\
+E\xa3\x17\x93\xdb\x22Z~\xe8\xbc\x94\x917\x8d>\xd8\
+]B\x9aB\xde\x8f\x00\xb6\xe4^\xe6\xd13\x5c\x03p\
+-\xd2\xf3\xe6\xfb\xc6~\x81[\x01\xef\xc3z\xa0\xc1\xa1\
+<\xd7\x8cN\x18_hO\x08h\x01\x00\xa1\xe1\x85\xcb\
+\x9a\xdd\xc5\xc8\xafh\xc4\x8c\xb4\x01\xb8/\xd6\x1e\x18\xe7\
+\x87\xac_D(9\x07\x119\xc7\x9e\x8f\xba\x11 \x83\
+\xd7\xb1[\x01\xccf\x9eO\xf6\x05>\x1f\xf9\xe6X\xf3\
+\x80\xfc\x8b\x91P\xdc\xf7\xb8\xff\xaa\x97\xe7\xb8!\xb8\x01\
+\xd4\x0d\xee\x09*\xbcgz\xc3{\xf5\xe7\xb9S.Q\
+>?xAT}f\xb2\x0f\xa40\xe7A\x81I\x00\
+5\x15\xfb>:\x9a\xb1\xec\x99u\xb8G\x17\xf6\xefi\
+#@U\x95\x0b\xc7\x05`c\x07i\xa4\xd3\x0f\xb2\x04\
+ Agr\xac\x9a\xce\xab\x00\x00l\x95\xac=0\xfe\
+\xf7,H~>H\x0c7\x02d\x88\xc2\x08\x0a\x07\x9f\
+[6SP\x88\xdc\xa1\x02\x88a\x96S\x05\x93\x0b\x8d\
+\xb1F\x03\x85\x04\xbf\xffu!_;\x0cb'\xd5\xa7\
+\xf6\xbaD-\xd2\xe7\x9b\x1d\x16Q\xfe\xfc\xc1\x88$\x16\
+w\xea0:P\xd2\xc7afO\x949T\xa6\xcb&\
+6\xf8\xa2\x22>\xc8\x83\x83\x1f&#\x0f\xf2\xadwg\
+N\xa3\x0f\xee\xf0b/\x82\xcf\xbb\x0au\x8b|p=\
+\xf5\xc0c\x9f\xd8\xef\x1d\xd1\x0ejS\x8e\xa1H\xb31\
+\xe9\xd7\xd3\xcfG4\x8aa\xff\xa5\x88\x96\x88c+\x88\
+8\x9e)A\xdc'!\xdfu\x86\xf6\xe6$\x9a#\xfb\
+\xb1~\x93\x88r{w\x8a(\xbf>)\xa2^\xefJ\
+\xa9\xef\xae\x8eh\x94G\xcfZ\xd1\x99\xa4\xe0\x92\x8b\x03\
+\x9dEw @\xc2up\xf4\x17G\xb4\x11\x0foh\
+\x88r}%B\xe2C\x89B\xdc\xfd%\xa2\xa9\xae\xe3\
+\x0b\xcd\x01a\xd16\xadC\x80\x0d(\x9f\xdc76V\
+'t$R\x1c\xc8\xd8\xe41;\xc5\xec\x99\xc4w\xfe\
+K=\xf8\x9eD\xa9b=\xb3\xc1Q\x00 \xf6\xc6\x8c\
+\xf4\xce\x83\xbd\x9aU\xda\x8f\x1el\x0d\xddQf\x96\x9f\
+\x8d\x98\xd9{\x0a|\x10q\x01Z\xee\xf0BiD\xf4\
+\x06\xdbN\xc4\x09)\xac\xd4\xa1\xf4\xf3\x89+\x06L\x18\
+\xdc \x10%\xe4`\xe0?\xf6\x19:9\xbcR\x18o\
+3t*+\x0c\xf0\x8e6\xaa\xe2YK\x80\x06>/\
+\x00\x0e\xc0\xa7\xae\xaf)\xd9h\x82\xe8~\xd9\xf6Hj\
+\xc8\xa5h\x1f\xecj6\x1f(\xe4\x93\xd5\x87\x82\x03\xbb\
+\xc6\xfe\xcc\x81\x81\xd3w\x83]$\x85\xb2\x0b*\x0a\xa5\
+e\x05\xe4\x1c\xa9\x04\x8b\x04V3\xf7\x0b\xbe3P\xf4\
+\xf0\xf1\xadfn\x1fi\xd7\xcd\x00\xa5\xce\x19\xa8\xcf\xa5\
+<Ya\xb6B\x05\xbe\x06\xcd\x94W\x89*\x08\x90\x01\
+\xa5_\xf6\x81P\xa0q#\xe9\xbe\x1e\x91f\xb5\xa1P\
+r.h\x1d2C8\xf9ZD\x12ke\x14\x85\x0e\
+\x15\xe7\x06#,\x00J\xa2\xac\x02t\xce\xde\xa6\xd9\xda\
+ \x0e\xbf\xbf&@wG\x02\x04\x15\xbd\xda3\x95\xf3\
+\xe9\xc1\x0dJ\x94\xfb\xde?;\x22\x89\xef\x01|\xca\xef\
+x\xee_\x11\xe5\xdf\x9f\x14\xd1\x9e\xf7\xe9\xce\x11\xa9\xe3\
+\x04p\xc6L\xa8\x0a\x9f\xfe\xb2\x12\x97'{8\x89\xee\
+U8\xf8e\xa9\xd3\xa4\x11'\xab\x9c\x07\x8f\xeb\xc5\xda\
+\xa7\xefn6i\xb5\xd3\xffeQ\xf5\x7f\xa2\xeb\xf0h\
+%\x94['\x1fb1\xaa,\xc6\xc6yE\xa7\x8eD\
+\x93B\x10\xc6\x13\xa30\xea\xa4W\x06\xcaBi\x14\x11\
+\x95d\x1a\x0f\x02,\xec\xfe\xc1+\xa3\x1c\x88\xf1I+\
+\xa0\xe6+\x1b\x96\xeb\xf9\x9c\x12\xb1\xbf\xff;\xa6\xd5\x93\
+\xf8\x22~\xef\xda\xbf\xe7\x0f\x89h\x85_\xb7BD\xd2\
+\xbaQ\xc7\xab\xab\xff\xa5\xd9\xe2\xd8\xcf\xcb\xfa\xe8\x7f\x11\
+Q\xfe\xfc#%>\xda\x12_\x80\xfb\xfa\xcf&m\xfd\
+W\xfb\xbc\x15\x12\xe0\x8f\x8d\x9f\x00\x8b\xeay\xb0O\xed\
+\xe8\x0fTf\xf6?\xf6q\x1a\x14\x14\x5c#\x06Q\xdd\
+\x8fwH\xb6u\xcc\xce\x0b8\x99\x5c(\xdb\x5c\xeeS\
+\x94Yoj\x1dn\x9eW3&\xb0_$_:\xbf\
+B\x0f\x83h\xe4\xbd\x09\xc8\xd4:\x81\x12\xdf\x1f\x18Q\
+;\xc7%\x1a\x00^\x19h\x1fHj\xf44D\xc8S\
+\xc9+)\xbc\xc58\xe2\x9c\xebn*\x11\x8d\x98\xbdJ\
+\xbcZ@\xd3\x83Il\x90sW\x00\xbbGc\xc4\x14\
+0\x05[\x85*\x85\x99G\x12\x01\x90q\x1d\xd2\xb9c\
+\x86\x0c\x0c-\x9dW\x16?F\xbc\x99Ylf\x95\xb1\
+\x87C\x14\xee\xb35Z\xc7\xf3'\x83\xd8[\xa5\x96?\
+?\x8d,\x0a\xc0\xf1\xb9\x86\x8b\x0a\xe7\xb64\x19\xaa\xdd\
+s\x88\x83.\x1e\xd1\xa8\xd9fz\xd1\x91\xa63)\xed\
+\x94\xca\x9c<\xb22Q\xbf\x18L\xd4\xfes\x11\xc9\xf6\
+\xf7\xb0A3&v\xb5\xd8\xd787c\xb0\xa3\x8ev\
+\x88\x9an\x86%\x9dp\xdcW\x00\xd8\xb9\xce\x00\x130\
+\x10Ygr\x85\xf2(\x16\xe7\x1f\x9a\x00P\xe5)x\
+\xe8\x88\x0a\x98\xb3\xd8\xac\xf2\x5c\xbb\xf8\xc08\x93\x86\x8d\
+mJU\x88\x9aBM\x83\x02j;y\xb1l!\x19\
+\xc1d\xf4\x95F\x8a;\xe3\x00#\xd8 \x03 \x88\xba\
+\xed<\x9fF\x05\xe2\x88\x00\xa9t\x88)\xa49\xefY\
+g|~F)\xe8\xe0\x93W!\xeaNAJ\xc3\x09\
+*\xff\x9b\x22\x9a\xbb\x18L\x09\xd6\xa7\xcfyF\x18`\
+\x1aq\x1e\xd2\x88\x19\x8b6\x03|\xc1\xc8d\xe4[\x9a\
+!\x14\xee\x1ea\x85iG~\xc7\xf7\x82a\x01\xb3\x80\
+\xef\xc9}\xa6\xeeb\x84\x03\x9bZ\x1ae\x1a\x110\x90\
+F\xe3\x98:-\x03\xce\xcfK\xb3\xf5\xe4g\x9c[\xe4\
+\x01\x8c*\xd0I\xe79\xc6\x9e\x94B\x9c\xeb\xc3\xba\x1c\
+\x89\x16\xbb\xc0\xa7QD\x1e\xcd\x9fS'\xf3\xfd\xc8'\
+\xa9\x87\x19u\x86Y\x80\xa6\x13\x00\x03\x0c\x0cFNh\
+`\x84[\xcc~\x0d\xf8\x9f\x83\xa2l\xdb;\x12\xa0(\
+\xc3f\xfaA\xb7\xa7\x83\xf7\xb6\xeal:$\xa4\xd7\xa5\
+\x1b\x01bD\xc1L\xe7 \x90\xec\xd5u0>*Q\
+\x9fX\xa0A`YG\x0b\xe9q\x09q\xa1\xe0fc\
+\x1a\xd9f\xf8\x02\x0a@\xb0\x8dQt\x18\x9e\x9c\x18\x08\
+\xdcp\x0av\x0a\xeel\xf7\xb0lC\x86\x1e\xa2\x0e\x09\
+\xc0\xc0\x02\xa2\xf0\xe1\xdfs]\xf8<\xa8MS\x90\x82\
+\x04B\xa5b\x16\x03J\xf4\x8ft\x83\x1e+\xb5R\x89\
+\xb5M\xce\x8fx\xa8X\x8c\x0ft|\xe3\xf1;\x17b\
+?[{8\xa0@X+%\xefG\xa9c\xcb\xfbQ\
+\xd0\x22\xaat\x936\x08\xd4[Q-U\x87)\xb4X\
+\xab\x1a\xab\x12\xaf\xd9\x8fT\x10\x8a\x92g?{\x1e\xc4\
+wp}_\xf2\x00\x00 \x00IDATI\x94\x08\
+[/\x0e86>f\xb6\x98\x81\xfa\xb5\xa8:\xb7k\
+V\xf2\xa5\xea\xd0\xbdQ3\xa5\x00\x02bV\x98\xaaJ\
+g \xec\xb4nN\x057\x1b\x1dvs\x02\x00\xa0\x08\
+3\x0b\xd4\xef\x10\xd1\x98\x03PjM\x01<\xb9\x14\xc0\
+'7Q\xbd~\xb1\x88\xf2\x9c\xee\x1cQ^_\x17\xd1\
+f\x8b\x9d\x18>_\xb3\xca \xde\x12\xdf\xe9\x8e\x88h\
+\xf6w$@f4\xe8\xbeu/\x8fh\xaa\xe3\xccr\
+\xcd\x9f\x17\x91T\xb9\xe9\xf8]\x11Q\xfe\xdd|Ds\
+\x83\xa0\x83\xd4=6\x22\x15\xfe\xba\x1f\xfdk#\xca\xfb\
+\xbe4\xa2\xd9\x00Z\x0c\x8e\x83\x0c\xb5{\xa8\xeb\xac#\
+l\x0b\x11\x8f\x81\xf9\xc2\xf3\x0dR\xcf\xfe\xa0\xc4w\xc1\
+\xabj\xb4\x0e13\xcd\xef\x8cH\x09\x15\xcf=\xbe\xf3\
+\x88\xbe \xc2\xc4\xec7\x9d=D\x95(d\xa0\x9a2\
+\xfb\xc5s#*\xb4\x13-FU\x10g\xd1\x0c\x99\x0f\
+\x1e}\x9f\xc9[\x22\x92\xba*bsl\xd4#\x1b'\
+\xef\x0f\xa3\x8d\xdbv\x80\x1c\xfcKhTh3!\xfe\
+\x1cP\xec?\x1c\xb4\xec\xb7h\xaap\xe0\x08Avg\
+\x96\xcfE\x87C\x9d\x84\xd9\xe5\x11m$\xc8\xf6\x88\x88\
+\xca\xdd.\x95v>\xaf\x98=\x00\x0a\x1eMR\x01\x02\
+\xb2\xdd\xed\x16\xd1\x90q\x0e\x9a\xc9r\x93eC\xd5\xbd\
+\xf6\xb9~\x9e\x90n\xd9a\x99\x12\xa8\xeb[\x13\xe2\x1f\
+\xb4\xd9\xc9n\xae\x9bv\xd3FY\xa6c9\xbfOD\
+\xf9\xf59\x11\xc9\x17\xfa\xa9*86\xd1\xc1\x8eO3\
+\x1d\x01\x12\x1cF\x8e\xd8g\xd9\x1fqiA<\x0a[\
+\xb45B\xe7\xba\x9e\x93\x03\x85\xfa\xc7\xc3\xac\xfal\xc1\
+\x90\xe0\xcf\xff*\x22\xd9k\xbeR?\x07\x0a\xde\xdeC\
+\x87\xa1\xecN\x03#\x83\x045\xf6\x9b\xb2?\xf4\x0f\x94\
+(\xcf\xed\xfc\xc7J|\xbc\x02*G\xd6\xce\x8b(\xf1\
+\xd3\xcb#R\x02\x85\x9a0\xaa\xfeA\x11\xdf$\xcdX\
+k\xd6\xdc\x9d\xf9\xd5J\xac\x9a:\x95\x00\xf7\xea,\xb2\
+O\xd8\xa5 N\xd9\x89\xce\xf3\x15\xd5Q-\xcfU\xf7\
+\xd4\x88\xd4\x89\x87\xc1\x15We\x0bu\xb6?\x9fFM\
+\xe8\x84r\xfe-Qej\x07\xd7\x8d\x92P\xf7\xdf\x88\
+H\xd4\xea\x10E*\x89X\xf7\xc4\x88d\xab\x05\x15u\
+\xadAL\xacN\x92n\x92:v4\x14X\xb7\x02\xfe\
+\xcc\xe0\xc0\x05\x03\xa6\x1e\xcc\x0a\x8d\xd0u\xcbG\x94\xd7\
+E\x22R\x07N@\xd9t\xc5\x88\xf2y\x0f\x8b(\xaf\
+\x1f\x88(\x7f\xff\xff\x22\xca\xe7\xfak\x89;\xda\xf7\xab\
+\xbb\xd3'\x93O7\x05\x1b\xa2\x80o,Q\xce\xb5\xee\
+\x92\x12\x97\x8aY\x13\xaa\xf8\x17\x96\xf8\xb6\x0a\xa2\xf5\xd5\
+Y\x8b\x91\x95\xbb\x06qM:\xe30\x22\xa6;M_\
+2}I\xeat\xd3q\x1d\xdb8\x03\x94k\x84\xca\x00\
+\xc3\xe5\x93+&W\xb4\x02cv\x8bD\xde\xe8\xb0!\
+\xa2\x85\xa8\xadF\xbfXo\xb6-f\x9fa_\xfbT\
+\xf5\xabi\xf6\xbd1\xd2\xb5OJ\xc8\xa1\xa8\xa2.\xfe\
+\x92\x12;\xb7\xc2\xce\x94d\xf20:}rk\x09\xe5\
+\xa2\xd0.\xe2\xf3MN-qJ\x12\xc5;\xa5\xaa\xf4\
+4\xe0\x04\xb1,\x80l\xf2\x09:\x9f\xe4\xbdz?\xbb\
+Z \x0e'J:\x0c&\xf2\x01\xbbg!\x82+\x11\
+=\x8b\xec\xc1\xb0\xe2\xfc\x03\xc0\x00\xd8\xd6\xfb\xcd\xf6/\
+\x05\xcb\xfe\xa9q\xa2\xbc\xbc\x94\xad\x9f\xa9Z\x00\xec\xfb\
+\x14\x0c\xec\xa3\x5cw\x98q\xe4\xa5qu\xff\x94\x18\x94\
+\x8cT \xd6\xa7|\x02\xc6\xd6\xeco!\xdf\x9a\xec\x9c\
+\xef\x1f\xa8\xf5\xf6\x93\xa7\xf3\xac\xfb7\xdd3\x22i\x1a\
+\x5c3\xcc\xe8[\x8b\x82\xd1\x87-E\xb1?R\x22\x9a\
+b\xc8\xd8.\x0e7\x1d\xf2g\xf2O\x18\x18\x5c\xbf\xb1\
+X\xaeFR\xcc|D\x94\x0e\xd5}\xbd\xbf\x0bn\xce\
+cu\xe4=\xc2!\xbb\xda\xfe\xc4\x88\xfa\xbd\xef\xaf\xae\
+\x1cb\xa6\xf5gE\x94\xdf_1\xa2\x8aE\x0e\xe2\xc8\
+[\x0d\x85\xb0\x19\x17\xd2\x5cr\xfd\xc0H\x81\xf6y\xe7\
+\xd9\xe4\xbb\xb8Iq]s\xa3\xf3\x814\x93\x8f]\x1c\
+#\x95\x884r\x9f\xc9w\xa4\xf6\xef\x02X\xe2\xb9\xb6\
+Kd&_\x0d\xa6\xf0\xfa\x09\xb7\x1fk\xf10\xe2\xc0\
+\xf3F#\x0e\xe6\x03\xeb\x8c\x06\xa8\xea \x80C\x8f\xa2\
+\x8e\x98+\xd5\x1db\xf5\xd4\x18\x82\xc9D\x03\x03&\x8c\
+\xea\x0c\xdb\x09\xc2\x88\x96\xb8\xa3G\xc0\xb8\x0et\xba\xc7\
+\x8cK\xb4\x08X'w\x098YV\xf5\xdbht\xc2\
+\x8dZ\xf2-F5\x97\x8b(\x9f\xe3[\x11i\x1f\x85\
+\xd1MA\xaf\xfb\xe4\xbf\x8f6\x02\xf91\xd7k\xdc\xe1\
+\xa7\xd0\xe7\xbe3\xdb\xcfs\x0e\xe0\xc3+\xfb0#\x10\
+\x8c\xa62\x92\x89\xdd\x22\x8dL\xb4#\xc2\x0e\xf8\xa0\xc4\
+<\xa1~\x95\xe6\xc8\x5c=\x9e\xb7M\xa2z \xf3P\
+\xb9\x98\xfd\xcf\x22\x04\xffH\x1b\x1a\x9d\xbbx|\xbb\x94\
+\x88R\x90s\x10A\xc5g\xd2\x81\x072\xca\xde\xc7$\
+\xe6\x00@\x00\xa2?a\xef\xb7lz\x1f:\x0eQ\x16\
+,\x94n\x08\x178\xd2\xb7\xc5S\xe2\x0c\x00\x00\xb0@\
+\x82\xae_W\x95\xcf,\xde\x05r\xc3+\xef3f\x02\
+\xd0\xc1\xe4F\x8e|)M\xa1\xc3\x97\x1a\x1b?\xd9\x9f\
+MV\x94\xd8\x17\xc8\x0e\x0b\xf8\x5cQ\xa8\x8fRG\xe4\
+rm\x18P\xa6\xb0\xf7\xd0\x06\xb6\x80\x03\xe9<\xd9\xcb\
+\xf0y\xd8`\xa0\xe42\xdb\xcaL\x11\x0b\x8d\xfb@\xe7\
+\x02\xf5\xeb\xe5#\x1a\x22^\x13\xc8\xd5R'\xf2<!\
+\x9bZ\xc0\x00\x04~\x7f\x16\x1c\x1b\x96\x125'\xd4\x88\
+M!b\xf1\xad\xf2x\x7f\xab^\xc7\xc7\xd5\x99E!\
+\xc1\x91&F\xa2\xe8\xfb\x00\xf2\xcf\xcc\x9d(D\xcc*\
+[4\x91\x99f\xbd\xa22\xdd\xef\x12\xd1:E\xf69\
+\x165\xa6\x1e\x84\x7fk\xea\xf5\xfd\xef\xfb\x9b\xfa\xdf\xb7\
+B\xb1?7\xa2\x5c\xe6\x8fG\x94_\xef\x1aQ^\xd7\
+\x8dH\xcf\x0f\xc8\x22\x1b\xa8\x90\xea\xfeg\x11\xe5\xf5\xfe\
+\x88\xf6\xea\x83C\xeb\xb9{LD\xa3d\xf6gG\xa4\
+Q\x88\xb0\xbbJT\x1f\x12Z\x8f\x12\xa9\x004\x85\x0d\
+\xa6\x08\x09\xd7R\x83\x1fm\xbfrDy\xfdkD\x12\
+\xedA\x9c\x85\x84Y\xc0\x89\x11f\xa8m\xb5rHv\
+\x81t\x9e(\xb4P\xc7\x95*\xabg\xd7\xf1\x09\x87\x9a\
+\xc7\xf3\x02`@\x81\x0d\xf0\x06\xf2\x0cP\xc9\xf37F\
+F9\x88\xc4 \xb08\x93\x18+\xdeG8\x888\xa8\
+\xb1;B\x5c\x89\xd1\x0a\xf61>\xef\xc8\xad\xc1\xf7\x99\
+\xf5\x89j1\xe2.0[\xf8w0\x14\x00\x86t\xa0\
+U\xe0(\x0a\xbc\x0f\x9486%H\xcc\xa6\x02\x5c\x92\
+ \xb0\x0f\x918q\x1d\xd4\x19\xe8\xf6\x8aHj\xf4\xfb\
+\x0d\xcc\x15wL^1\x88rF\xb9]\xb5!4c\
+8yTD\xf3\xc9\xf6\xcc(\xfb\x0a\xd7\xe1>=\xf7\
+\xa2\xb6\xb2o0z4\xb9o\xf2\xcf\xc9?\x93\x1a7\
+\xd7\x81}\x97\x19\xf7\xeb#Z\x87\xa8&\xf2\xa7\xb6\xf5\
+\xda\xad\xdf\xadW\xb5<\xa4U\x81X\xe4\xe4\xe3\x03p\
+0\x7f\xd6\xfc\x17\xe7\x83\xa9\xf0\xd5\x88\xf2\xbaJD\x12\
+q\xc2\x1d\x02\xd7\x11\x00ZT\x8f\xa1\xfa\x8bqS\x92\
+\xa9\xc1\xc5\xe1\xa5\xeaT\xa9\xc0\x9d}S\x89\xc0\xdaR\
+\x05\xdeO#\x11g\x0dbc\xa1\xb0\x19\xc7c\xbfW\
+D\x15g\x1bT\xe8\x99\xb5T\x81Qg\x83\xcb\xefO\
+7\x9an<-\xdfg\xba{\x89r\xdd\xa6\xbf\x8f(\
+\x07\xf2Us?\x9f\x0bQ\xc0\xc5\x07M\x00\x17 \xd2\
+8\xb18'3\xb3\xa8\x9a\xc3h\xa1\x00\xa4\xe0\xfdu\
+\x85V\x07M\x88M\x95p\xbe;i\x9b\xd0\x19\x030\
+\x13c\x0c \xae\xde\xed\xf75U\xfbz\x7f>\x97\x0a\
+Nf\xdf\x83\xe1\xf1B1s\xde\xd7\x98M\xfe\xbc*\
+H\xdc\xc1\x0a8\xef`u\xda\xaf\x11\x83\xe2t\x8d\xc4\
+<\xaf\x89\xfaasWa\xe6\xdd\xc4@\xfbhS\xfb\
+\xf7HC\x00\x96[\xe8\xf3\xad\x9cF\x00c\xb0\xec\x0b\
+\x8d\x11T\xed\x15\x7fY\x81\xab\x010yBD-h\
+\x07\xad\x01\x00\x0b%H\xdd?\x22\xca\xfdyLD\xb9\
+\xbf\xdf\x8d(\xaf\x1b\x8b\xb2\xaf\xe7\xbf\x16\x0e\x99\xa1@\
+'\x8c\xd9T\xce\xcd(\xef\x9e\xa4\xc2\xe6\xd3z\x0e\xca\
+y3]\xa5\xc4\xaa\x8d\xa1\xd3\xdfS\xe2\xef\x0d\xe0\xaf\
+\xe7\xc6%\xa2\xfc\x1e\x9f\xf2,5\x1a\xba\xc3\x22\x92f\
+\x80\x9e+\xdb2\xee$W\x98e\x86\x11\x14\xbb\xad\x9c\
++\xe6\x0b\xc0\xe7\xd2b\xf6it`\xc1\x07\x87D|\
+\xb6\x9f\x12n\xce\xb7\xb1m3@\xed\x9d\x152l*\
+\xf0\x1bD\x94\xd7GG\xb4\xf3\x12f[uE:?\
+\xd9\x00\x07\xc0\xb3\xb6\x98,\x07%5vu\x04\xab\xd8\
+\xe4&\x09\x88\xe6\xbaF\x9fs\xf3\x94\xefh\xa4\xa76\
+&v\xf9o\x0d\x89z\xfd\x05@\xbb\x80\x81!\x81\xd6\
+\x0f\x09\xb7\x0ak\x17\xfah\xa7@\xf5\x07\xd8R\xa7\x0d\
+&\x98m\xe5\xd0\xcayM\x8dV\x00\x02\xd0RH\xc4\
+\xac\xf2\xd5\xc9\xad\x07;05\x0e\xca\x9f\x0dZ\x01\xe4\
+\xaf\x00\x980\xe3\x10YF\x9c/\xce\xe5.1'`\
+\xda\xb2\x1e\xb5?\x22NZ\xae\xd2\xcb\xa3\x81\xd3o\xd9\
+o\xd5o\x95\xf6\x11\x15h\xe5)\xb8\xb7\xbb\xb7\x02\x8e\
+wT\xc0Q\xa3kV-\xd7\xb9\x82\x08\xa9G\x13\x10\
+\xf9ef|\x91\x88\xf6\xb9\xac\xf5\x03\xa3G\x05\x9a\x99\
+\x0e4\xb8\xd0\xa0\x81\x02\x8eF\x06y\x08\xa3\xa6\x00(\
+*\xec\xd1\x5c\xe2y\xe0<\x85A\x88}\xb4\xdd\x09T\
+\xe8\xdb^PZ1\xce\x87`:Rpa\xdf\x07\xb0\
+/QeT\xfa\x9d\x0f\xc1\xc4\x85\xd1\x0b\xd0\xf1\x03\x9d\
+\xbf\x14\xc2\xdc\x1f:\xd104\x18\xdd\x11\xe3\xd6\x1a\x17\
+\x14\xca\xd8\xf0},\xa2\xf9\xd7\xd7\x91\x9a[S\x87\x9e\
+s\xe3\xf6\x88\xd4\xc0\xa1p\xd4\x88.La\xd7U\xe3\
+\xce5\x9fSu\x91\x99MhW\xe0F\x01cX\xa2\
+\xb3\x06\x02\xd0\x02C\xbb\x09\xf1GF3x.\xe8\xf8\
+\xe3\xae\x04\xa0rQ\xc4\xc3\xe4[hN1\x22\x83\xd6\
+\x1b\xdf\x8f\xfbD>L\xfd\xc8\xfeE\x1d\xc6\xaf\xa9\x03\
+\xc9{\xc76\xf6\xd4Qc\xcd\xac\x11Pb\x06(\x0d\
+/\xde\x0f\xc0\x11qQ\xf2B\xee\x17\x8dZ\xec\xff\xb0\
+\xe5\xe5\xfbSo\x1e\x1b\x91lw\x01\xc6y\x8e\xc9\xbf\
+`^k\xbf\x9d\xf3\x85\x8d\xb42w\xe6)x\xe3\xe3\
+.\x96.\x88f\xf7\xbd!\x82\x0ca\xf7\xc0,\xfdX\
+5\x9aB\x9c\x05\x05r3\x16s\xe0B\xc5e_9\
+\xfd>L\x00\xb4\x09`\x14\x00\x04\xe0B0\x06\x04\x00\
+(\xb8\x11\x00\x0bP\xeb\xa0vp\xa0\x8d\x01\x00\x101\
+>\x07@\x02\x05\x08\x0b\x01{\x89gG$\xb13\xf9\
+\x9a\x93\xb8Z}\x15\x06\x003\x1aP3\xf8\xfe\xdfJ\
+\xe2-\x1b\xab\x13\xfd\x99\xf4\xc0P |L\x1d\xa1o\
+\xaa\xc3\xc5\x81\xb4\xa2>/\x14f\x12<\x0e\xa0w\xd7\
+h\x1b464k\x0e\x88/3`P\x94\x10cr\
+\xe7\x1eQ\x0d\xddw\x100:\x13t\x1aIh,\x9e\
+\xb6GD\x12M\xa1c\x80\xad\x9b6\x08T\xcbg\xab\
+\x0c\x94,\xa8\xeb\x9eyE\xbc\x87N1To\x1d\xe0\
+\xb3M#\x1a\xa2XU\x88\xf7K\x89\x13\x94I:\x1f\
+t\xbe\xa1xu\x11\xe59\xfd`D\x9b\x99\xb6\xea\xf9\
+\x8f\x22\xcam\xdf1\xa2Q==\xeb\x0bc\x02\xc4\x12\
+\x15S\x89\x06\xd1)\x9d\x7f \x22m`*p\x8d\xd4\
+_0\xbb\xb0\xfa\xa2\x9f\x142k\xe5\xe7l\x1aQ\xfe\
+\xdd\xf2\x11\xa9\xd3%\xd1+\x03\x18\xea\xccPh1s\
+\xdb\xff0BvL\xdb\xb6\x8e\x9a\x11n\xcd\xec{$\
+\x05\xc6\x06\xa2r\xc7\xd50B\xef\x03\x08{=D\xf9\
+\xf0\xc1Ub\xe0\x99)\x0a\xeb\xff\xa7\xebL\xe0o\x9d\
+\xaa7\xfe;\xfb\xfc\xcc\xd7<\x94y\x9e\xa7\x94\xcc\x95\
+)*\x19B\x22\x12\x912eJ\xc9\x5c\x0a)\x22Q\
+25\xe8\xaa\xcc\x85\x882\x15\x22I\xca\xfcW*s\
+\xa6B\x8a\xf3\x9e\xff^{?\xdf\xb5\x97\xf7\xca\xfa\xd4\
+\xf9\xdc{\x7f\xc39\xef\xbb\xdf\xbd\xd7z\xd6\xb3\x9e\xe7\
+:\x8b\x80\xec\xf7g\x9b\xd8\x00I\xf0x\xe5\x80`\xdd\
+@!\x14R\xcehK\x99i~\x7f\xb0}\x14\x85\xcd\
+\xed\x9f\xb4\xcf\xfbL\x18\x9d!\x80*\xa8kRsw\
+\x0a\x1d*\xbc\xcc$\x93\xa0b\x07\x092\xcd\xa8\x80\x12\
+A\xa7\x98\x034\xb2o\xd2\xb9\xb8\xb2\x02`.Z\x05\
+E^\x94p\x07\xdaTp\xfb\x01\x8a\xed\x1d>\xf4h\
+,(\xc1A\x8b\xa2\xc0\xa6\xb3\xb4}\xd8;l+U\
+\xe4\xbb;\xae;\xb6;\xb6\xa8g\x97\x11\x12\x10\xe6\xf4\
+V\x8b2BRf\xca=\x91V'\xdc\xa9\x91J\xe4\
+\x9cJ~}\xbe\xbf\xd7\x87\x04\x1b\xffc\xdc\x0f\xb8~\
+:\xc0\xcdl\xd0\xec\x06=\xf1\xe1\xbc\xa0\x80\xc1fp\
+^\x8b\xa6\x19Rl\xe4Nl\xcf\xed\xe8\xf8\xd1q#\
+c\xb6lc\x11:\x0d \xff\x140\xac\xbb\xad\xd4\xf9\
+\xbfY\xf7q/\x15\xec\x14\xde\x0f\xd5\x9f\x8bo\xba\xfb\
+u\xffD\xf7S\xe7G\xb1g\x1b4`\x85\x84-=\
+mQf\xf7\x0f.\xb3\xfb\x97\x0c.\xb6\xc2kx\x91\
+E~\xfd\xbcE>v\xef\xca\xf1\xfb\xe2W\xbf}\xf1\
+\xabW\xc7\xdf\x995J\x9c\x195\x1a<a\x11\x12\x09\
++/v\x17s\xe9\xf4F\xa9tQD\xa3\xec\xef\x1c\
+\x00v\xed\xffi\x0b\x8b\x90\xc8\x00\x88\xe0&px\x8e\
+\xc3\xd4Y}E\xeb=\xba\x08<_G\x1cHh\x19\
+\xf9\x82YQ\x00\xcbUB\xe7\x97\x04\x91\x11\x0c\xfb\xfa\
+\x1d\x02\xc0lW}\xf5\x06\xe8\xa6\x07-\xcc\xe6\xd6\xa2\
+i\xac0B\xd7-o\x11\xec9\xa5\xa5Q\x18$k\
+5\x0d\x8c\xa2!1\xb3\xce\x83\xef\x17FC\xd9\x1f\xd2\
+\x19\xe9\xdb)'\xf2iv\x8b \xe2w\xa7E\xbe\x0f\
+\x97Z\xb4D\x1fq/\x0a\x98\xd1.\xa3]G\xd6A\
+\xdc\xa9\xdb\xd1\x0a[W\x8d\xc7m\x82\xcfm\xa7\xc2:\
+\xea4\xad\x14\xc4\xcb\xb4\xcf\xba\xdd\xdfi\x16\xf9\xe7m\
+o\xd1\x9e\xe7\xf1\x07\xcd\xd8O\x09\xf0\xfdm\x9f\xf0N\
+\xe9\xf3\x9a\x85&\xb1\xa7\xe3\xff>u\x98\x01\x90N\xae\
+\xfb\xb77t\xa0\xbeRh \x92LG\xfbL\xb9\xdf\
+\xfc\xa5\xda\xe4\xb9\xaa\xb4\xa5\xe5\xf7kT\x06\xea\xf2d\
+\xa3\xc8\x17\x8d\x89\xa7\x1b\xe0\xdf\xedk\x11\xce\x1f\x1b-\
+\x5cFZ\x15_o\xfb\x5c\xba\xc6B\x0c\x8c\xe5\xb5\xef\
+\xfe%h\x92\xc8\x1e\xcd;xP\xae\xe9h\xdbi\xfb\
+\xf3\xc6\xb8(\xe5\xe1W\x83\xa8\xa5l4=QV\xa3\
+\xc2;\xa2\xb8\xdch_s\xed\x0bu\xd2\x9cI\xc6L\
+>\xc0\x1e\xae;0\x1ea\x98h$l<\x9fEP\
+\xf7\x07\xf0\x07\x10\xdd,\xaf\xc7\xcd\x82-\x1e\x00\x1a\xb6\
+\xc044D\xf9\xf7\xd1\x08\xf2h\xfb\xdc9O\xe8\xee\
+\xce\xf1\xc7\xfc\xbaT\x8e\xa5\x1b\xc3\x8fB\xd0\x01[\xa9\
+\xf2;\xf5~\xcd\xf1Z\xa51E\x01\xc9h\xc8 \x9f\
+\x93\x83&~I\xa1i\xfc\x94\xa2\xd5\xb4\x96D\xf7V\
+\x11\xa3\x88|R\x00\xa2\x8b3c\x17\xca(\xc5\x0b\xe3\
+\xe7\xc7\xcf\x87\x0e?y8\x1dU(\xe7\x1a\x89@\x5c\
+\xd1\xcf\x05\xdci\xf8\xfc\x00\xeb\xda\x87\x9c\xe2\xcf\xa8\x01\
+y\xba\x1a\x0b\x8cRv\xebY\x04qc\x1a\x1a\xe4\xb9\
+\x00M\xd6\x98\xbb44\xacx\x05(\x82\x91\x07\xd0B\
+\x01K!\xc6\xfbB{\xe2J\x8b0\xea\x02P\x00\xc0\
+\x0f\xa0\x0f\xf3I\xc0\x92\x03\x01\x88Is\x1eAI\xc7\
+\x85F@\x98\xdb\xa8\xaa\x1e\xc3\x86\xdc\xdf\x1f\xf9\xa9F\
+~`\xec\xf8u\xa5\x9e\xa2\x13\xcd9\x01\x10\xd5\xa7\xb2\
+\xc3\xd0n\x1a\x0e\xf5?\xce)F8`&P\x07P\
+\xa0\xd3\xa0\xc0\xbd\xe3:56aR\xd3)\xa7\x8e\xc1\
+\xc5\x0a\xed\xa9\x13\xc7'\x15;R\x1aI\x00\xd5\x00\xb3\
+0.a \xf1\xf7|N\xee\xa3\xf2\x04\xf2:\xa7\xda\
+3b\xc5\xf5!/\xe4\xef\xb9\xff\xfd\xd9~^\x01\x1e\
+\x00|x?|\xfe\xbe\x86\x00\xeb\x0c`\x00 \x09\xc6\
+\x02b\x95\xd2\x8c\xf1\x91+1\x8a}\xbf\x81\xc1\x0b\x00\
+\xa5\xcf?\xe9\x85,7\xd0\x1e\x9b\xb9\x02\x85\x03[*\
+K\xcb\xe7\x0a~\xdc\xa8s\xd3\x01\xd3\xc1\xe6\xd4BT\
++\xa1X\x00\x04 \x0a\xc8L\x1f\xbf\x17\xe0\xc0\xca\x80\
+\x85\x9b\xfd\x8d\x7f?\x857\x85|\xbc\xd03\x84\x1b\xc8\
+\x82\xa4\x15J\xa7\x0e\x11\x17f\xb09@H\xc8{j\
+\xdd\xfeg\xde\x17\x00\x00\x88\x17\x05/\x05{_\xd5\x94\
+\x82\x05D\x08\xe4\x18\x1b\x8b(\x02sg+,L\xc1\
+\xa0 {\xcfH\xb4j%\xd9\xfc\x81\xe4\x90@\x81D\
+\xca\x97\xdbg=@\x9eV\xd1A\xfe;\xfd|\x80\x01\
+i\x05\xa4\xf5\xd3\x06i\x83 \xbe\x07\x85\xfd\xd2:\xbb\
+\x95\x8b\xb8\xaa\xb6\x0b\xe5\x9f\x02\x8e\x85|\x8b\xa8U\xd8\
+\x91\x80LRxa\xeb\xa3B\xcaG\x11xP\xb8\xef\
+0\x04\x00f~U\xbf\x0e\x84sp\xbb\x10e\x0a-\
+u<J'\xe7\xee\xa0\xa6*`\xc5\xd5\x91\x11\x95b\
+C\xc2\xeeGv\x83P\xf4\xbb\x13\xba/w_\x0e\x0c\
+\x0b\x15\xb4\xe3\xb9-\x1a2Gg\xd1;2\xa2\xdc\x8f\
+^\xb1\xc8\xafg[\x04\x9b6\xec\x1e)PPQ\x05\
+\xc1\x14\xf5\xb0\xfb\xb7E\x98M\x97\xb8\x90\xdb\xb6\xa0\xde\
+\xadDot\x8eE~}\xc6\xa2}\xbe\xe1\x8a\x16M\
+L\x0a_\xe3b\xeb\xf4\xc7\x060\x14\xaa\xb1\x01\x01\xef\
+\xb0\xc8_\xf7\xbc\x0eb\xdc\x07\xb0e\xe2>3r\xc2\
+z\xc3\x8d\x80Y[Q\xa7\x9dr\xc6l\xd2Q\x16\xe1\
+\xb9\x97&\x80\xff\x5c:\x1c\xfd\x03\x95\x82G\x07\x83\x8b\
+9\xc1P\x11\xc0\xe3\x052\x07\x93\xd6\xa9\xaf?:.\
+\xecoP\xfdU\xf8\x00\x88\x81\x9c\xa6\x83,\x02\xe5N\
+\x1d\x12\xdfGp\xdf\xf8|\x9d}t\x1b\xa1+,\xc2\
+u\xa2\xc3D\xa1\xc9\xdfCE\xe4yG\xbd\x97\x11\x03\
+u\x0c\x07\x9f\xb3h\xcc\x912\x1b}\xac\x9e\xef\x1b\x1a\
+\x80\xe1*\xf4\xcc\x10\xd2\xb9\x04\x08{\xbe\x8a\x22\xba\xdf\
+=\xe2G\xec_r\x1bqM\x07]\x97\xee\xa1\xea\xf2\
+\x91>_;\x8a\x00h\xe9*\x8b\xb2.\x0b\x83\xc9\x19\
+\x13\x88\x09\xf1g\x12\x17\x13\xfd\xfck\xd3\x020\xa2q\
+\xa1\x1ak6\xcdm\xba\xd8\xb7\xfb6k\x02\x9c}\x96\
+W\xf6D\x83o[\x94\xce\xfe\xc9\xd6\xd9\x1f_S\x13\
+\xa3\xee\x05\xeb\x99\x96D\xb5P\xbe\xbb\x93\xba\xafu_\
+k\xe2Dn\x7f'\xean~\xaf%\xf1\xc1\xe7\xdcG\
+R\xd8/\x10\x11\xd4l\xb8\xefw\x0f\xa9\xe3\x00\x10\xa5\
+\xf3\xc6;\xae\x8cx\x09\x00\xc5=#\xa7\xa1\x87Z\x22\
+:\xfc\x9eE~\xfd\xb7E>\x80\x8f\xc9\x91\xd7\xf1\xf0\
+\x00\x0b\xd9\xd3\xbd\xa9\xd9\xe1\xe5}:G;\xa7\xdc\x85\
+\x05\x9b<Qh\xd3\x03\x16\xa1cg\xae'o\xd7s\
+\x7f\x8f\x00\xa9\x9b\x04\x0c\xbeW\x89\xc0\xada=\xd1\xa9\
+\x91\x8d\x19\xa3$\x0e\x98\xa1~o\xe2\xb8\x0b\x87u\xde\
+\x03\xe6\x07W[\x04\x0a&\xc0\x0b\x09\x0e\xe7\x1eL\x9e\
+5\x8blX\x1b\xc12\x00\xe3\x1bM\x04\xd1\x81\x85\xe7\
+\xab\xddc\xfa\x9eE\xd1\xa4\xa8\x9dV\x01\x9b\xa8\xbc\x17\
+W\x8b\xf3\x8b\x08\xd9B\xf6>\xa1\x8c\xbb\xfa7\x8d\x89\
+#\xb4\x0f|Wn-\x88\xee\xbd\xb7\x02\xb4\xa9\xab\xa3\
+T9\x9b\xa9\x050\xd4\xd2\xf9\xc5\xf4\xd1\xbag$b\
+\xb4\x8d\xb4`>\xdb\x1d\xd2\x1dR\x0a\xb6\xb2O\x00\xe0\
+{\xfe`\xe5\xf7\xc9b<m\xd7\x98\x8f\x83\x0b-\x0a\
+`V\xce\xb5t\x9bEI\xf4\xcb\xa8R\xb7w\xb7W\
+\xb7\x97F`\xde-q\xce\xd3$\xee\xf6\xd9\xd21-\
+\x80\xbd\xbbQ \xaa\xc6\xf5f\xbf\xe5~\xdd\xa7Bk\
+\xde\xc1|\x85a\xc9\xcc(\xa2\xc2\xbb\xeb\xdc\x11C\x88\
+\x913g2\xca6\xd7E^\x17\xb7\x083\xe6\x02\x02\
+J\xe1\xbfO\x03l\xca\x8c\xea\x9d\x1a\xf5\xb9N6\x93\
+\x93\x8d9T\xec07\x0bL#\xd6\xfd\xca\x16A\xb5\
+]\xfb\xa5\x8b\x8f\xe1n\x003\x92\x0e;\xb6c\xd8\x82\
+\xf5\x18\x8b\xec\xdf>K\x0f\xf3\x90N6\xe7\x17\x85\x09\
+\xebY\xe7\x8b3\x97\xd4\x10K\xef\xb2h\x85\x8e\xedB\
+\xb6\x0f\xb9\xfd1\x0c\xa4\xd9E\x9d\x97KQ\xbe\xda\x1f\
++\x9aP\x06W\xfe(4\x80\x10\x07\x16\xf0\xceyV\
+\x00\xa1\x0f\xb6s\xb6\xbb\xcc\x22\xaf\xc3\xc7rX\xbe\xb2\
+G\x8e\x8f\x87Bw\xd1n\xb1n1Q\xd8\x17\x0c\x8c\
+M\x1b\xf92\xed\x98\xf7\xa4M\xd3{\xc2\x88\xd0\xdb\x8c\
+#S\x0a\xabbK\x99\xef\xe6r\xc6\xcc(\xdf\xb7C\
+\xeb\xf0\x03\xcc\x96}h\x8f\x96\xef\x99\xb4f\x11\xd7\xa4\
+\xa0EcK6o\xae\xe5r|\x05\xcc&\x0e\xd5\xa8\
+\xe9o\xe5^\xa1|-\xcd\x92\xa6\xa4)a\xa4\x0b\xd1\
+X\x80e\xc4\xa6\xe7\xab\x1a\x08^\xf8q\xfe\x0a\xe0\xf2\
+\xd1\x9d\xad-\xf2\xeb\xba\x16\xad\xb0s@\x84\x91\x07\x5c\
+\x06\x18\x81\xa4\x00\xe39R!\xef\x0dF~\x1f\x8dC\
+\x1a\xa6\x14\xbc=\x86\x88\xff<\x00\x01\x0a]\xf2 \x0a\
+t\xf6M\x0a`\x00r~\x0f\x1de\x1a\x0a\x14\x84\xb8\
+\xb4\xc0\xa4\x04\xb8\xa70\x97k\x84\xe7\x99h\x1e\xc1h\
+\xa0\xc0GU\xff6\x8b\x00Tp\xee\x93_\xa1\xadA\
+\xfeH\xe7]\xf5\x88\x03\x0f\x00fZ\xf7.~\xccz\
+\x97\x88\xa2\x8fT\x907R\xf0S\xd0S\x80\xd3\xa0\xba\
+#\xef+w\x14@\xe5\x94\x02\xa8\x90\x17\x0a\xa8s@\
+\x07 \x02f\x01#\xe40*.\xb5\x08u\x1b\xeeQ\
+\x1aQ\xf3s\x9d\xfa\x0e \x95u\xce\xcf\xe7\x95\x86\x10\
+\xcc\x03\xec>\xb1idd\x00\xf7\x09\xe5\xd9\xced\x86\
+\x19\x80F\x15\xa3\xf50p`\x18\xa1]\x12G\xe2\xa6\
+\x04\xa0\x91\xcf\x03\x80\xa3\xeb6Y\xf0\x94\x7f\x86B\x96\
+\x8e\x8b\x15\xfeonb\x7f\xa5,^0\x14\xc4l\x8c\
+\xcc\x1e\xb11\x82\xd0\xc1\x08\xe0\xcf\x0b\x94\x9et\xa3\xe8\
+\x93h\xf1\xa0\x008\x88\xba\xe2o\x5c\x80\xc04\x05y\
+\x1f\x10\xe0\x03\xf3@\xc2d\xe8\xdb*P\x80\xf0\xe0\xb0\
+\x80)\xfc\xa1\xf2\xf3\xe7\xbe;\x00\x80\x08_\xc7\xf7s\
+\x81\x9b\xd8_E\xaa\x98\xd1\x05\xb1\x81z\x0c0\xc1\xcf\
+\xddK\xea\xd3\xda\x18\xd3\xd6\x12W\xe9\xcf\x5cS\xe0\xf3\
+\xbe\x10)!\x81\xe5\xba1z\xa0\x07m0\xabE\xb0\
+\xb3:\xac\x8a\x80\xe4\xc5XU\x89\xa5\xa2\xce\x02g\xc3\
+\xccIb\xf5\xd5DM\x9c\xce\x19\x07\x22\x00\x0d\xe21\
+\x97\xebA\x9f\xa1\xde\x07\xc4\x93|\xc6N\xd4p\x0a\x1d\
+\xfcU\x99\xd5d\xb6\x96Dr\xb0c\xed(a\x0b\xe6\
+\x85\x1f\x94=u\x06\xbc\x83N\xe7\x18 \x86\x0d\x0f\xff\
+VQi\xba\x9d\xba\x8ft\x1fi\x05c7\xb6(L\
+\x83c\x8aH\xdec\xf9\xc1{\xacQ\xb9L\x1a\xb1\x88\
+#J\x9c\xa5[\xc5\x22\xbf\x9ef\xd1\x18\x01\xd3\x887\
+iCu*\xab\x00\x8b\xee\x8b\x16A\x8d\xf9b\x8b6\
+\xab\x8c\x9d\x8b\xa5\x93\x96P2\xd2\xd1\x9dg\x91_\x17\
+\xab\x07\xba\xab\xa3\x22z\x05\xe2\x8d\xda\xbb\x89\x8fm\xdb\
+\xd6G\xf7N\x8b\xfc\xfa\x92E\x10\xaf\xe1\xf99\xb8\xc4\
+D\xf7\x94E\x98\xd9g\x7f\x00q\xe5\xbe\x03\xa4q\xa0\
+p\xbdxN(\x14\xd8\xa0\xd8\xc0\x99a\xe2\x80\xa3\xa3\
+\xc2\xf3\x8bZ\xb6\xa8}\xa8N;\xf5\x8c\x8d\x0c;\x1f\
+\x805\x89\xe6\xf9\x8c\xa6D\xa2\xfcy\xc7n\x06\xbbF\
+\xd9}\x91\xa0\xa5\x1d,\x0a\x83\xe7\x90\xa29\xb0\xef`\
+\x9f\xc2`a\x86\x8f\x8e\x13\x09-\xb6j: q_\
+\xf0\x03\x80\xc2_\xcf\xbf\xfb\xf6BAg\xa6\x8bu\x8a\
+\x0f\xb4D\xe0(\xc0\x1d\xe1\xd6\xef+\xa3\x02'4\xd1\
+0\xdf\xef\xb4\xef\x16;\xcc\xc5\xc3\xcc#\x14H\x89\x83\
+\xfa\xc8\x05\xd7\xe5\xcc\x0a\x80\xf9L\x22\x1a\x22\x8b\xd5\x19\
+\xbetf\xfav:\xb3\xd9\x95\xe2w\xec\x80\x1b\x89\x81\
+\xf6\xe3\xf1\xdd\xe3?\x98\xdf\xb0\xdf7\xd4\x7fe;\xe8\
+*\xda\x8cF\xb0\xbe\xb4\x9e\xf2s\x9f#\xecW$j\
+\xa8\x8e\xa3\x89r}\xb5\x89J\xfb\xa7\xfd\xd2\xfe\xad3\
+\xeab\xa1\xdf\x95Z\xf5}\xa2\xba\xfe]\xf6\x8f\xeaT\
+\xfbl\xf1\x81U\xdba\xf0\xcfZh\xfa\xbeK\xa2\x01\
+\xf5\x14\x04\xbf\x8d\x82\xd4\x83\xff\x05%\x1c$F\x14 \
+\x9c\x0b\x9cW\x8c&\x08(O\x07\xe68 \xd8\xf9\x91\
+0\xe0F!m\x8b\xe1\xc7-\xf2\xe7x\xc2\xa2Q&\
+G\x8fZ\xb4\xcf1\xfc\x81\x85\x00\xb4\x9b\xe4>2\xd1\
+4?|$\x22R\x17\xe7n#\x04\xce\xa0\xb1\xffR\
+\x03\xc8p?\xf1\x82R\xc0\x18\xb3\xe0~\xbe\x92\x80H\
+\x05\x9eu\xea\x85\x18\xfb\x13@\x18\x80\x15\xe2_\xf8\xd1\
+\xdfa\xd3\xe9%\xcf\xa8\x09\xad1\x11\x0eo\xda\x00t\
+\x0e\xbb\x0fv\xdbv\xdb\x96\xe7\xa5\x88\x1f\x99\x19\xa1\x15\
+\xd2\xe9\x80\x1c\x07j\xc6\xfa}md\xa3{\xb9\xee{\
+\xf9wV\xd1\xb2\x87%r\xb5\x9ef\xe3\xd1B\x10\xa5\
+5\xfd\xc2\xa2\xa9Fcg\x0b\x10\xfd\xda\xcf,\x0a\xc0\
+_\x0bn\x98\x02G\xd6\xc2l\xbc\x8e|\xb9\x05\xb0N\
+\x5c\xa4\x0e:\x9d|\x137\xdb\xb8\xec\x8f\xd5\x85B\xe7\
+tz\xde\xa2\x01\xd5\xe3\x1d\xea\xacq~w\xa5\x83\xed\
+v\xa9\xf2k\xcf\xcf{-\x5c\xc4\xaca\xb4m|\x84\
+E\xa0L\xf3\xfb)\xc8\xa4\xa1\xe2\x94\xe4\xadja\xef\
+\xa2R\xb2\xb3\xa3\x83\xcdsZF\x11oT\x81\xb5i\
+\x032JB{\xb3D\xe3\xf2~\xdf\xbd?\xc7\xe6A\
+LV\xb3\xf5i\x1f\x0b\x01N\xf9}\xa6\xaf\xe6\xf8J\
+\x00L\x8f/a.\x1b\xc7\xd899\xb8%\xc7\xcdM\
+\xed\xbb\xec\x86\xf9\x1c\xea\xae\xc9\xf1\xf3\xd0!\xc6\x16P\
+\xf7\x9d\xfd\x91\x02\xbf\xfb\xaaE\xd8\xb7\xb1=\x16 \x95\
+\xbeo\x11\xa8\xf80\xf2\xd4\xc1\xf6\xc2\x93\x82\x0f\x15z\
+\x8dTx#\x81\xc2\x9d\x11J4{P\x11\xa7\xd3\xca\
+\xf3B\xe2\xdf\xd7\xba\x82J\x8d;\x8b1\xf6\x96\x123\
+$\xaf\xb3\xd1\x99\x16b \xe6\xf7\xd5=\x97#\xaf\x9b\
+\xee=\x16Adt\xfb\x89\x1d\xcc\x05j\xb0S\xdeW\
+w*\x22\xb3o1\x91\xd9\xf4Zz5\xbd\xda\xc4E\
+\xdd\xc5\x82\x02D@\x833\xf7\xe84\x93\xbf\x92\x7fr\
+\x8e1R\xf7R\x19\x12kbr0\x96\xb0?{T\
+\x80:\xe2\x9fW\x08\x18\xe6<\x06\xa8{\xa4\xbe\x9f|\
+j\x14qYg(h\xdd\xfay\xd0\x89\xa2\x8e\xd6\x83\
+\x18\x1d\xdd\x03\xdd\x83].\xfc\xba\xdb,\x8a\xf6R\x11\
+o\x1e?i\x11\x18\x10\xaco\x8d\xd0\xb9($#L\
+\x14\xc20\x05)\xd4a\xb2A\xb1f\x14\x90s\x83B\
+\x8f\x02\x1fF\x1a\xfb\x1f\x85(\xf9\x0f\xaf\x88\xff!J\
+L\xa7\x1c\xe0\x19&+\xcf/\x80koT\x99\xeb\x09\
+\x93\xa8o\xbb\xcc\xa8\xa43\x94\xc5@a\xf4\x11\xa0\xcf\
+\x19\xc0\xd2\xc2\x18\xafk\x11\x5c2\xd4\x00p\xe6+6\
+\x93'Z\x04\xed\x01\x80\x00\xd9\x8e\xbbF\x8a43`\
+\xe2:\x00H\xc1\xccz\xe4y\x05\xd0h\x9ar\xa9\xe4\
+?}\xb1?\xcea\x18\x1806\xfa\xf5 \x8d`\xea\
+4\xea\x08^\xa9\xe7\xc8\x97\xc8\xd7`\x12\x00\xcc\xf0~\
+\xf9=\x8cN\x00\xbc\x02\xac\x00\xf0p\xbf\x11\xd7\x04`\
+\xe0\xfbXg\xec74z\xa8;\x19\xb1Uc\xd3\x19\
+\xa1\xe4S\xd4A\x5c\x17\xfeS\xe3e\xd2\x91\x89\xbe\xc8\
+\x9d\xc4\x7f\xa6Q{\xb4\x8d~\x91\xf0gf\xb2\x0dq\
+_(\xcc\xea\xd2\xe9\xa5\xc3\x838\x0e3\xcbsX4\
+\x1b\x1f/p\xf9\xa0$L\xbd\x02\xbc_\x98{\xa1\xd5\
+\x17A\xe1sp\xc3x?t\x9ax\xe5\xef\xf9\xfa\x9e\
+\x9f\xbaw\xa6\x11\x09\x04\x88\xe0\xfd\xf0\xfbx\xf0\xf8\x1c\
+\xdc\xa0\x05\xf5y)\x0c\x96V\xc1\xc4\xf5VbD\xe1\
+\xe5\xa2\x0d\xd8\xb2\xa1\x9e\xcd\xfb\xa1@\xe2}\x83@q\
+\xc3\xf9:\x12Iu\xe0|\xa6G\x1d6\x7f\xe0\xe8\xfc\
+c\xfb\xf7\x89\xdai+\xea\xd5\xcf\x87Q\x86\x0fK\xad\
+\x1b\xc6\x073t\xea\x18y\xa2\xcb\x83\xc0\xc2cF\xe7\
+wB\xf0\xe8\xa0A\xbd\xd3\x86\xe3\x0f(\xea\xdaP\xcb\
+gT'P\x1b\x94\xcfhC\x1d\x13\x12\xed3`\xa8\
+\x9er?I\xd8\xb5\xe1x\xe7\xfd\xbf\xdd\x7f\xba\xa0&\
+mZ\xe8\x852\xba\xe9\xe0=\x86h\xa7#-\xdaA\
+\xe1\x05+\xb3s\xef\xb6h\x05\x1d\x7f\xa6\xb3\xea\x050\
+6fR\xe9u\xa4S\x07\x0cv\x84 \xd2\x83\x7fY\
+HT\xea\xe9`\x1f\x08\x22\xadD\xa4\x1bZ\x84\x19\xf2\
+\xb5k\xa2\xc9L\xa0S_Q\x95\x96(X7\xa7E\
+~\xdd\xc2\x22\x14\xd4zN\xdc\xf6Q\xb6i&\xc1X\
+D\x18\xb5\xbe\x5c\x84\x0f\xe4\x155e\x89&\xfa>\x00\
+\xe0\xa3\x0e33yP,\xbd\x10\x06\xc9\x94\xdb\x83\x8f\
+\x94h6\xd7\xd5de\x83\xe8j\xdd\xbdB\xc6\xb5 \
+(\xa48Xa.\xe8s9\x00!\x84\x18\x11\xb9\xf4\
+\x0e\x8bv\xa0\x0ff\xcb\x89\xf8lA+bM\x8bf\
+\x7f\x8a\x1b\x04\x9d\x03W\x11f\x86\x94\x8e8\xfbk\x9f\
+r' \xc5g8\x01\x0a\x10\xbd\xe1\xe0!1Wg\
+\xcd\x19\x02P\xc78\x88\x00Xx\xae8H\xf59\x9d\
+I\x01p\xcb\xe8\x91\xa8\xd5\xde\xe9\xfd\x9d:\xf5\x12\xf7\
+\xcc\xe5\xfb\xaeV\xc0\x93H8\xc3\x02\xe0f\x91j\x1f\
+\xeb\x22VR\xa5/\x93\xab\xe75\x91$\x072\x00F\
+H\x988?\x8e\xb7h#\x17>\xb2$\xe6\x93\xabu\
+\xcb~m<[\x8e\xd9\x95\xf0>\x17:\x80JPK\
+y\x9c\x13\xcd\xe1R\xc3\xa5\x0b\x93\x88\x19T(\xa9\xf8\
+g\xa3>\x0c\xd3\x03\xc4\x9f\xcf\xb9o.\xe7\xf6\x0d\x9d\
+\x1f:\xc1$\x18{O\xecU\x80\xdb\x0b'.*\xeb\
+\x97D^\xaa\xfe\xe6\xed`\xfb#\x05\x8fi\xce\x9b\xea\
+\xfcp\x8d\x1co\x0f\x80&\xfb\x18\x22\x8d\x7f\xb0\x08\xe7\
+\x80\x5c(\xa6\x9b\xc3\x22\xe7\x07\xd7[\x84Yj1W\
+\x98Y-\x0c\x805\x94\xc8\xcd\xad\xfb\xf9\x11\x01/\x0f\
+\x86Yi[m&\xd6x\x7f\x8e\x07\x9ahS)g\
+OW\xe7\xe5\xb7\xcd\xd6\xce\xf7a\xa8\xbe\x12_\xf5\xeb\
+sk\x81\x8c\x1d0\xf1\xc2L\x89/vR\xaeE\x22\
+QI\xd6m)\x14\x9e,\xcfs\x15\x07\x93k\x8e\xfb\
+*\xd3\xe9\x97\x86\xcc\xe4\x9c\x93sM\xe6}>\x1dc\
+\x11\x0a\x16\x89A\xba\xb8\x9f\x18>yU\x16\x00\xd0\xc5\
+<E\xa5Fdr\x90\xea~K\x07\x1e\xc0\x01\xbbI\
+|\xd5]\x9c\x95}\x12\x06\x94(\xba\x9e\xa0j\xffp\
+\xb191\xfd\xba#\xbb\xa3\xba\xa3\x82\xd8\xdc\xf6\x9a\xe9\
+F\xe4\x0e\x06\x9c\xf69\x003\x989n\x9bJ\xc7M\
+\x00\x82\x8fV \xdeDA\xc9\xfdB\xf4r95l\
+v\xd2\xb9~\x8a\xa8\xc8\x12kCl2]d\xd1\x18\
+\x80\xdd\xaf-\x9a\xf8l\xf9\xfb?\x87BO\x22\x83~\
+\x1e\xf7\x00\xe4tO\x8e?\xb5\xd1\xa2\x22Z\x96\xf7\xd1\
+\xf4\x83\x1c\xe7\xb5\xfc\xaf[\xc3B\xa3\x91{J\x9cr\
+&\xbd\xbf/\xb6Nm\xd9\x97\xd7h\x85[\xb9\xbb?\
+\x0c\xcc\x1f+\x10OV\xa7\xfe\xd5 n\x8cF\x12\xfb\
+0\xe7\x86\x00E44|\xdfE\xc4\xb8\x0f\xc4\xd2\xc8\
+\x10\x83\x83Yq\xa7h\xa3j.-\x10\xf7\x87\x17`\
+\x5cF{f\xd2\xfb\xfaw\x10\x11\xd6\x88\x16\x1d\xe3n\
+\x11\x0b\xed[[6\xed\xa0\xd1\xb3\x16\xf9\xcfg[\x84\
+\xfd\xc3\xf2\x8b\xd3\x83\xab\xc6c\xf9\xb93\x1b\xc2er\
+\xe4\xfb\x9eV\xb2\x08\xe7\x11\xf6k\xa6\x0d4Wp#\
+\x10\xa5\x1c@\xdd\x19\xa7\x14,\xdf\xccqz\x18\x0d\xd4\
+\xa8\x823\xac`z1\xea\x06\xb0\xb1\xa3F\xa5\xf8\xef\
+>1\xff\xd8\x0f\x10\x05~\xba\x8e\xb4\xa4/\xa5c\xd3\
+\xb1\x01h@\xb4\x95|\x98\xe7\x81QG58\xbas\
+\xeau\xe9v\xb5\xc8\xff^:=a\xc4\x91<\x15\x91\
+\x5c\xf2\x10Fd\xd9\x97yN\xa1\xec\xc3\x5c%\x7f\xa2\
+\x10e_\xa5n\xa2\xd3\x8f\x9b\x0f\xfb\x02\x22\xd5t\x80\
+a\xe0p~\xc0\x0c`_\x81qI\x9e@g[\xc0\
+\x12#6\xe9V\x8b\xe0bC\xfe \xa6\x90\xefO\xb8\
+\xefp\x1d8\xf7\xa4\xe1\xe5\xcc*\xec\xebT\xb8\x0f~\
+l\x11\x18\x8a\x00\xf3\x00fZ7\xe3c-\x02\xa3\x88\
+?\xd3\xe9\xd6\xf5p\xb7\x22\xf2\x06\x5cz\x00\xa2\x18\x81\
+\x80\x81L\xa3\xa1\xef\x8a\xf4P\xbe\xfb\xa1\xae\xf0\x11\xcc\
+{\xaa8%\xc0\x9c\x17\xdc\xdc/\xf2\x11(\xf7\xe4S\
+l\xa0\x14\xec\x14\xf0\x14\xe6|=\xa2\x9f\x88_S'\
+\xf0\xfe\x01\x02`\x08\xf0~\xf9\x1c\xecC\x02\x0e\xbc\xce\
+\xa4\x9e\xe4\xfbi\xe8\xc2dP}\xc79\xe4u.\x0d\
+\x08\xd5\xa1\x9e\x0fq\xfe\xa0\xf5$F\xd4\xa4\x7f0:\
+\xff\xf3\x89\x12\x86(\x07\x058\x0b\x1a\x1b\xc0\x05Ki\
+\xeb*\xfa^\xf8\x22\xd2\xc7\x05\xe4\x821\x03jb\x5c\
+s\x85YD+\x9f\xe7\x0b#\x06\xf1\xcf\xf3\xa8 \x7f\
+S(\xcc\xfb\xa3\x09 6qF\xffM\xe1\x86Q\x98\
+\xf6\xc5\x19\xfa3;} \x80\xdf\xc3\x0d\xf9_\xa2\x80\
+\xbcR\xf0S\xd8\x0b \xc9iu\x15a\xdbT\xb3v\
+\x14\xd0tP\x85\xe80\x83\xef\x14&\x0ay\x98\x15\x00\
++\xfc|\xae77^_\xe7*\xf8\xcc\x88\x09X\x98\
+\xd8\xa2&\xa4\x14l\xdd>\x16a\xc1C\xb5\xf9\x8c\x80\
+\x08!\xad\xfe\xb9\xa1\xe6r?A8A\xc6@\xee\xf9\
+\x8f\xfb\x22\xbb\x09\xdf\xf0.\xae\xea\xe3\x14h\x83\x1b\x06\
+\xd7\xdb\xac\xb0\x8f0P\x00\x1c[7\xa22Z\x9bZ\
+\x87\xd9G8\xa0\x12!B\x83x\x0cbt\xbco\x0a\
+|l\xf5\xb0\xe5\x91/2>\xe7\xe9\x03\x16\xa5\xd3\xff\
+L\xe9\xf4\xab\xc3\xe9\xf6Hh\x19\xe8`wUt\xd9\
+\xf7u\x1f\xb0\x08\xb3\x7f\xd8a\xe9\xc1\x1b\x5ck\xd1f\
+\xc1\x99e\x86\x22Xf\xf6\x96j\x1b\xf7\xf85\x8b\xe6\
+\x0b\xcel)T?\x0ayf\xf3}f\x0f \x03\x95\
+\xdbe-\x82\xd8\x9a6\xec\xee\x19\x8bV\xe8\x8c\x7fm\
+\x11\x12\x136v(\xf1lh\xdcWF*4\xbbK\
+\x81\xe5\x88*@\x0c\xeb\x97\x0d\x17\xea\x1c\x89\x00\x1b \
+\x85)\xb6`\x02\x80\x5c\xcd\x1cm\x81\x03-\xdaA\xeb\
+\xeb\x14\x95ju\xac\xd0\xde`\x1f*\x89\xcf\xb3ZY\
+u\x00\x00 \x00IDAT2\xe1\xb9\xd7\xf3\xc5\xc1\
+\xd6\xfd\xd4\xa2Q\x81\xd3Fi\xc3\xb4QI0f\x8a\
+\x8c\x84\x89[4K\xbaFU\xa9\xf7B\x18Uv\x00\
+\x1b\x988\xb2\xffq \x85\x03\x8a\x19~\xd63\x89\x08\
+\x09\x0e\xfb\x09\x1a\x04\xccn\xe9\x00\xf1\x84\x04\xaa\x1b\x1d\
+\x03\xf6]\xc4\x0e\x01v\xb0\x9f\xe29\xa5\x93\x80\xbf\xed\
+\x86b\xf8Ht\xca\xef\xe7\xac\xd2\x80\xd1\xefw\xf10\
+\x0a9\x00B%&\xaeQ\xc0L\xb1\xc1}\x0f\x17\x0d\
+\x93\xb3\xcdM\xc3\x01Al[\xd1(\x10\xa5\xd6\xbcC\
+\xcc=\xc4U\xb2\xb1\x03\xe2\xf3 B{h!\x8dN\
+\xa4\xc7-\x82;\x81%\x1a_\xaa\xd4\xfe2\xda\xf4\x81\
+\xf1V\x06\xd0\xa6?U\xb1\xb9\xfc\xbb+5W\xb3\xe3\
+>;\xcc\xfde\xf6_\x05\x0c\xe2\xa1\xc5\xe5\xdc\x00\x9e\
+G*\xe3\xa8\x88\x90\x1e\x15\x0a\x1e\xe3\x05\xadS\x0a\x93\
+%\xac0\xc9\x9f\xe2H\xfb\x1c\xe9\xf0tX:\xbci\
+b\xa4/\xe78~bb8\x8bE\xa1\x9a\xe7\x08#\
+R\xd8[q\x9fxEKf\xbb\x1c\xb9P\x9d\x5c\xc9\
+\xa2m\xb7P[\x11I+\xfb\xfc\x81M\xfc\xd2\xed\x9c\
+\xf4\xfc\xa4\x9d,\x1a\xa5\xdf\xd5\xb4\x19\xd9\xb82\xc7\x15\
+E\xcb\xe1\xfa\x22.h}\x9a\xefj]/\x1aFH\
+x\x0e\x11;\xa4c!\xe6\x8f\xbbA\xa8\x03\x98\x0b\x91\
+\xc7\x07\x8f\x87\x8e\xea\xc5\x16\xf9\xfd\x7fD\x8c,\x89\xab\
+\xb9Z\xfd\xb9\xd5f\x92B\x02\xaa5\x1a\x17\x93\xa7X\
+\x04*\xfa\xe5\x95\xd2mn\xf2f\xef\x0a\xa3*\xbd`\
+\xd1\x80\xb3\xee63H\xcc_\xbf\x8b\xc4\xbd\x00\x90\x96\
+\xd4\xf3\xbf\xbcE\xbeO\x9b[\x84B\x5c\xf9\xc0h-\
+\x8b\xd2\x81/\x1d\xf6\xd2\x89\xb6\x99\xdb+-\xc2\xfd\xd2\
+\xa8\x9a\xcf\x80k\xf6\x7ft\x9eE\xfe\xbe\x15-Zb\
+\x8c\xbb\x0d\x94S\x9e\xbb\xd2\xc0\x1e\x97\xcfY\xc5\xa0\xba\
+\x0aXu\x1bY\xe4\xaf\xbf\xc2\x220\xf4(l\xc5\xa8\
+\xf4F\x02\x09\xe5,\x02\xd2\xcfR\x87S\x9d\xb8\xee|\
+\x8b\xfc\xfb\xee\xb6h\xe7\x8b\x8f\xf8i\xfd\xe4OS\xce\
+\xaf\xc2\x8cz8\x00\xda\x12\xa7M?\xb4\x08\xfb\x81:\
+\x80\xe9`\x8b\xfc:\x93E\x1bu)\xe5\xe1\xf74*\
+i\x0c\x9ek-\xday\xc6l,\xaa\xdc\x88\x09:\xf3\
+O\xb3\xbc\x05\xb0\xcf\x89\xb2\xf5}\xbb0\xf2Wx+\
+\x8f\x86\x06\x0b\x8d,\x0aG\x01\xba\xde1\xa4\x83\xaa\xf3\
+\xd3\x99\x144\x5c`\xd0\xe0\xe3\x8e\x1b\x02\xe7\x0e\xbe\xf2\
+\x88|\x01<\xcaN5\xe4\x99%\xaf\xb5\x81\x08\xeb\x10\
+\x8f\xdf=~w\x97\xf3\xb7n\xe6n\xe6R\xe8\x7f9\
+\xc7\x09\xf9\xf5\x1e\x8bf\x7f\xcc+#\x89\x0e\x00r\xce\
+X\xb9h#\x15'\xe5\xf8ZS\x87O\x9f\xca\xb1o\
+(@\xa0\x88S\xb8!6&M\x07\xf6cg|)\
+\x0fsq\xe0\x1d+\xa3\xc0\xed\xd1\xc8{\xbe\x9b\xf3\xa4\
+\xef\x96|\xe6[%\x9f\xe1>\xc0\xa4\x82\x19K\x81z\
+\x9e\x00#\x156<\x7f6X`\xa3\x05\x833\xea\xe8\
+\x17Z-\x8ch\xa2=\xc4\xf5\x87\x19\xd9\xbdl\x11\x1a\
+_\xec\xab\xb8\x02\xa1\xa9\xf0N\x8b\x02\xfc\xd7\x91A\x0a\
+D\xc4\xfc(\x9ch8\x91\xf7\x08\xa8\xf1\x99m\xcem\
+\xf2#1\x07\x9c1\x00\x85[\x8d\x80\xa2\x91\xf1T\xf8\
+\xbe\x9e\xdb\x99S\xbf\xd1\x00\x02\xa8\x91\xa6H_|\xd1\
+\x19\xbc+Tm\x86\xc1\x8d\x16\xa1!\xc3\xe7b}\x92\
+\x8702M\x1d\x01\xd3\x83\xfb\xb8\x95Eh\xcc\xd2h\
+T\xc1\xeey\x15b\x95b\xee\xb8\x0b\xc6\x0fK\xb4\xfa\
+\x81\xf7K\xfe\x02\xc3\x82\x06\x09u\x1a\xda\x5c\x00$\x14\
+\xd6t\xd8\xe9\xbc\xd3`yI\x0dO\xea\x22\x1a\xcf\xac\
+3\xf6=\x18\x10\x884\x92?\xf1s\x01b8\xc7\xf8\
+=\xfc;\x00\x0c\x1a\x06\x12e\xf7\xcf\x0f\xc0\xc3}F\
+\xb3\x84\xbf\x07\x10A\x03\x82F\x11\xa3\x98\xd4\x97\x00\x13\
+0\xab\x1f\xb1\x08y8_\xc7\xfd$\x7f\xa4!M\xbe\
+\x0d\xb0\xa3F\xad\xdbK\xaa\x0e\x9d,\xdf\xb6d\xa0\xda\
+\xc7Bz>\xfd\x99N\xfc\x02\xe1\xeb\xf8s\x9c\x01\x9c\
+Q\x89\xf8\xb0m \xaf\xa34\x0dDU\x8d\x0b\x0e\x80\
+\xa1?kO\xa1\x8b\xe6\x00#\x04\xfdB\x9f\xf7\xc7\x05\
+\xe1\x95\x85\x80]\x05\x8c\x03F\x13(\xf8\xfb\x0c\x01\xc4\
+\xdaH\xcc\x99%\xe7\xf7RX\xf6G\x11x\xbf0\x1c\
+V\xaf\x1d5\x9f\xbd\xe7`f\xf6\x11\xea2\xd4z\xa9\
+\xf4;Ur=\x8b\xe0\x0f\xcd\xc6\x8bo8j\xea\x8c\
+\x22\xc0\x808P\x226\xb2\xa1\xf2\xd9\x16T\xd8\xe9\x04\
+\xbe_?\x97\x07\xfbS\x95\xf2\xea\x1dI\xa8t;\xab\
+\xe3\xc3\xf5\x14R\xeb\x1d\x9fu\xf5y6\x91\xe6\xc3\x07\
+\xe4O\xba\x81\xec%\x0f\xae\xaa\xa2\xbe\x01\xf1}<\xb8\
+\x1b\xe8\xba\xbcO3\xd0\x96x^Y\x12\x9a\xf2\x8a\xdd\
+\x8a\xcf\xd2\x9eg\x11|\xe2\xf5\x00`\xdf\xe2\x1d{\xee\
+\x0b\x9d^Q\xee\x07\xa7Z4D\x0eJ\xb2\x8b\xa7\xa9\
+c\xe5\xb6aB*\x8b]\xd3o\x82X\x22\xb3\xf9\xf2\
+\x8b\xa5\xd3Na\xed\x05\x0e\x94Z\xcd\xbe\xd1I\xc6f\
+ot\xbbE\x10\x85D\xcc\x06\xa6\x00\xb3Y \xa1\x1c\
+\x5c\x9a\xdd\xc7\x9f\x97B\xdeg\x91\xe9\xa8i\x1d;\x90\
+B\xa27\xbdE[o\xe3\xe5-ZG\xa9;\xc9\x22\
+\xd8>\xc9f\xc6\x11cT\x7f\xf1A&\x01\xa5P\xa3\
+\x93\x82\xea\xa8\x0a\xb4\x5ch\xe6\x08\x89\x91\x10w\x17\x87\
+c\xe3\xe3\x00\x100\x01\x80\xe2\xc0\x13\xeb\x1e\x15`\xb9\
+k8\xb3\x87\x02\x9aN3\xcc\x1d\x00\x00\x0a_lj\
+$\xdeD'\xbd\xa8!\xaf\x1ff\xe9\xf4s\xb0\xa5\xcb\
+\x87d\xfd9\xb8<@%\xc7\xbf\x1c\xffs\xb4R\x04\
+\xf89\xd5Ybk\x9e\x00\xd0\x81f?b\xa3g\xff\
+D\xedUT<\xff~\xae\x136\x9c0\xa3\x00J\xd4\
+Aw\xd1P\xdc\x22P\x1f&q\x9eb2i\xad\xc3\
+\x81=[\xfa\x5c:$\x1dR\xeek\x05t~\x9fW\
+U\x14+B\x8dZ\x1dY\x07l\xd8\xe7H\x98\x95\xb8\
+\xf8\x08\x80\xa8j\x5c'\x7fN\x00\xae\xf6\xd6H\x14j\
+\xea\x00E\x00A\xb2\xc7\xf3N\x89\xd6iw\x9dEX\
+\xb7\xcc\xb8\x9b\x8d\xda\xb3\xed:\xe5\xf2\xe2\x1a+0\xc6\
+\x8f\xdaP@x\xfe\xae\xd4h\x13\xf7\xf3\xd9\xc13\xe5\
+>\xae=\xb1V\x01\x84g3\xe3\xab\xc6\xd0\x01h\xc5\
+m\xa2;\xba\xfb\xbcuvs\x12S\xed\xeeD\x9dO\
+\xe7[\xe4|\xeb7\x16\xe1z\xe1\x9a\xa2\x0e\x19@\xe3\
+\xe0\x17\x16AT\xcef\xc9Wk3\xfc\xc37\xe5\x98\
+\xafQ\x88a\xb0t\x7f\xb7\xd0\xfe\xf0B\xeb|\x02|\
+\x03@\x96\x19\xe7\xdb\xc3\xfa6\xb8\xe6p1/\xf6\x95\
+\xcd\xda_\x05\xcc\xde\xd4\xf6C\x9b\x98/\xfb/\xe2\x5c\
+\x14\xfeZ7N\xe1U\xe2\x94\x9f\xda\xf29\x06Wi\
+\xa4\x8b\xce6#;M\x9d\xb8\x02\x1d0\x80\xf6\xae\x0c\
+\x90t_\xba?\xdd_\xc4\xe1JA\xe8\x1d\xd5\x1f\x88\
+\x12\xac\x19d\xcfC\xf4<v/t\xcf\x17\x15}\xb4\
+\x1f\xce\xb2\xc8?g\x1e\x8b r\xa7\xc2\xdf;Lo\
+\xaa\xfb\x86\xbb\x0d\xbf<|i\x98\x0b\xa24\xa7E\xd0\
+\x12\xd1(\x9b\xfbh\xd3\xe1\x92\x8a\xf6\xe0\x1a\x01\xbe\xf8\
+\x90+Q\x1c\x1dk\x11:r\x00\xf0\x88\xef\xa9\xa0@\
+;\x06\xe6\x97\xbb\xc1\x1ch\x11\x98\x0b\xa7\xc8\x8f~\xea\
+\xe0\xfc\xa2}\xc0H\x1d\xcf!\xd4\x7f\x1a\x02$\xda\xa6\
+\xb2ob\x89\xcc\xd2k\x1f\xc6F\x16fL\xf7G\x8b\
+F\xa9\x1e/\xa9\xd1\x06\x8d\xde\xe52|\x87n\x876\
+\x92R\xd6\xdds\xe1>\xe9}\xa4_Y\xa8\xf3\xb4\x95\
+\x80'\xdb\x7fG9\xba&\xfeX\xe0\xa7\xe3\x03\xd5\xde\
+\xfa\xaf'7q\xb6n\x05\x8b\xd6\x91\x87\x094\xde \
+\xc7\x86\x8d\x89W\xe0\xa7U[\xbeY\xce\xbfA\x9b\xed\
+w1=\x18z\xf8\xcdK\x0b\x03\x0a\xb2S\xccy\x0e\
+\x11EF\x04\x1bF\x22\x85\x99\x18\x95N\xbd\xd6\xa8\x99\
+\x8f2!f\xa8\x91\x12\x5cC\xba9,$\x8a\xf8\x8d\
+\xfcz@\x8eW\x0bS1\x87\x98&\xcf\xb4\x11>D\
+W}\xdf\xd7\xb9F\x07\xb8\x14\xe66:y\xa2E\x10\
+\x87\x83\xb9\xab\xf5\xe0b\x83\xd8)\xe7r\xdb\x987\xc5\
+\xd5\xe5\xa3\xa1c\x0b\xa3\xe7\xe79\xae\x0ey6\x05$\
+\x14p\x01\xbd\x83\xd3\xeb(\xe4xO\xf3\x9f)\xf5@\
+\x15\xe9Ft\x0d\xbb\xbeOiT\x02\xa6\xd3\x9f-\x9a\
+\x18-n4^P!z\xf9'\x01B*\xa4m\x15\
+\xda:$\xaf\x81aXFl6j\x0cI\x9fq'\
+\x8f\xe0\xfd\xdf/\x00\x1d\xdbV:\xef0\x018\x8fy\
+~\xf8~\x0aL\x1a\x01\x9cS\xeck\x9c\x93\xe4+\xca\
+\x03\x5c+\x0d\x0d-\xb4|\xd0\x94Y\xcd\x22P\xf5\xc5\
+<\xf4F\xaa\xb4k\xfc}\x22\xe2\xa7s\xcf5O\x94\
+G\x02@\xc3\xa0\xf2z\xa3/z\x0e\xb0E\xa1\xaeQ\
+G\x1f\x09\xd2s\xe2Z\x14\xe43\xb8\x070j\xc0\xa8\
+$L\x18\xdc\x06\x10E\x85\x89\x00\x13\x0c\xc6\x10\xff\xce\
+\xcc?b\xcf\x8c\x8e0\x82F#\x01\xa6$y#\x1b\
+7\xcc\x10\xea6\x80\x05\x98\xd14@\xfa.\x02\xfc^\
+FI\xee\xb6\x08\x0dJD0\x19e\x10#\xc8\x19!\
+0\xa0\xc9\xe3i\xcc\x00`\xd0\x90\x14s\xc8\xdd\x0f\xfa\
+\xael\xbc\x0f\xad#\xea=\x07\x02h\x0c\x91\xd7\xf2\xb9\
+\xc9\xb7\x00<\x18\xd1E\x14V\xf5]\xd1b\xf9\x9dm\
+\x8f\xa8\x1db\x87\x17)\xf8o\xd4\xe9\xd6l_\xd9F\
+\x96\x10\xc2\x1c\x0a_\xb7\x03\xb4\xc7\xfc\xbf=q\x84Q\
+\xb0\x01df\x15\x8a\x05L\x82\xc84X$\x00\x0d\xf8\
+\x11\x1b\x02?\x7f\xfb\xfde\x19F\x86\x00\x80\x01H\x15\
+H+\x9d\x7f\x0a}\x0a\x01^\xf9w\x12\x89>\x95\x9f\
+\x9f\x1f\xafCd\x06@e]A\xd4e\x12`\x0a\x00\
+:\x0c\x14\xfct\xf4\xb1o\x01\x10@\x5c\x10\xd1\xbf\x15\
+\x05X\xd0Q\xc1e\x00\xca\x1b\x05\x97\xd4X\x11)r\
+\x80\x00\xd1\x94M\x94(\xb1Pg\x7f\xbd\xc8\x85\x17\x22\
+{T\x0a\xf2`s\x15d \x97 K\xa8I\xf2@\
+@\xd9\xc1\x1f{]\xcd\x88\xa1\x86\xcd\xbf\xc3\x1c\xb8N\
+\x88\xef.\xe3]\xc7\xbb6D\x9e\xcf\xed\x1b#3M\
+z\xbf\xcel`\xc6\x0c\x91\x9dc\xabz\xb9\x1f\xe8\xcc\
+$#\x96Ha%\x11F?\xa0\xe5\x02\xe0\xaa\xbd$\
+\xdcP\xde\xd4\xe1tf\x866\xcc\xf4\x17\x8b0c\xf6\
+\xe5*\x22\xe83\x85\xa2^\x8f\xd6\xb3h\xc0S\xda\xc5\
+\x22\x88\x0e\xc9\xb7\xdc\x13v\x89\x9c\xf9\xc1,\x11\x1d\x0e\
+D\xee\x93S\x5c\xe5o\xecTt\xec\x9dH\xe8QW\
+\xe7\xba\xd2a\x14U\xaf;\xcb\xa2\x1d8\x1c\xac\xdd\xf5\
+\x16A\xfc\x11qB+|f\x0b\xd4<u\xb6\xdc\xaf\
+\xd8\xa8\x80\xdf|\x03 \x8c\xf5\xae\x99iT\x94\xa1\x96\
+\xb9\xe8\x9f\x12i\x9e\x0b\xdc.\x5cu\x9a\x0dY\xd7\x8f\
+\x99`\xb7\x85Rb\xc1\xe8\x80kCp\x80\xb0\xee\xe9\
+|\xc04\x10\xd2\xee\x22u\x1c\xec\x885\xfe\xd2\xa2\xfd\
+\xben\xd3\xee\xbd\x9d\xcdf?\xa9\x99FF\x1c\xe8\x88\
+\x82\x103\xc3\x0dEZ\x88rZ\xc1\x22\xff\xdc{-\
+\xda\x88\x8a\xcfn1\xf2\x80\x18\x8d\xde\xbfw\xc2\xf0\xed\
+\xb5N\xb0\x8d\x84|\xc6\x22\x00\x11\x02\x9e\xb0\xb1\xf4\xce\
+\xba\x0aN\xa8\xa5\x8cr\x00du?\xb7h\xebdp\
+\xaeD\x03\xaf\xaf\x94\xc4\xc1De6\x0c^\xac#*\
+\x83\xc7\x8cT\xda\x12\x1f(\xc1\xbe\xaf\xcb\x17\xbe\x88\x0f\
+\x9e\x1b\xdc:H\x8c\xd8\xbf\x10\x0b\xd2>\xe1\x85\xa6u\
+\x9e\x0e\x0f*\xe5vJ\xcc\x1c:\xc2\xd6\x91=\xb9u\
+t\xba\xc7,\xda\xbeGG\x96u\xd1\xfd\xc4\x22t\xbc\
+(\x88I\xb4\xb6\x1coQ\xec\x12\xd7\x1f\xbfk\xbc~\
+Q\xd1\xdd\xdfTtK\x1a\xf4S\xcd\xba\xaf\xde:\xc8\
+|\x1f\x0c\x08\x00\x8b\xe1G\x87;\x0fw\x09\xefGZ\
+\x03t\xfa\x87KY\x14`%GK\xec\xbcS\xae\x8e\
+h\x11G\x1b\x86s\x06Q]\xec\xb3d\xcf\x98>\x9c\
+c\xc7\x06T\x0e\x17\xb2\xc8\xbf\xff\x879~\xd4fO\
+\xbb\xd9-\xdaL\xbbSW\xd1f\xb0\x82\xeaX\x8d\xd8\
+\xdc\x1e\xdc\x00\x8cB\xb8\xae\x00\x5c|\xa2\x03\xb3\xca\x99\
+n\x02v\xa0\xb0BMt\xed\x89I\x01\x85&\xea\xb8\
+[(P\xe9\x1c\xbeb\x91\xdf\xe7\x0f,JbX]\
+E\xf4<\x0df\x1dL\x19Li\xeb\xde\x0b\xcby-\
+4j\xb1qIx\x96.\x1a\x12\x8cR\xa9\xe3\x9ew\
+\xfb\xea>\xf3\x99:3\xcf\xb9\xe6@/\xff)QM\
+\x7f\xb2\xc8\xd7\xf3\x06\x8b\xc0\xbc\xd1\xfe\xce\xb9c\x13\xd4\
+6C=\xf9\xe7\xc9\x87'\x1f.\xcfq\x01\xee\x1dH\
+\x9fR\x13\xfc\xee\x8b\xdd\x97\xba\x5c\x10w_\xb7\x08\xa3\
+EZ\x07\xa5\xb0\xfay\xebl\x96\xe7+t\xb8\x00r\
+\xe9\xac\xfb\x8c-\x8c\xa7\xab\x958\x93\xe8\xe2\xab\x0dS\
+\x87\x04\x13\xd1+\x18\x06?\x12\xe3\x83\x82\x1af\x9c\x80\
+\xe0\xb4\x91E~\xdfwZ\x84Q4\xdcc\xb0\xfb\xd3\
+h@\xd1\xae\x99N\xe7\xc2\x06\xf9\xfa]b\xd1\x98m\
+\x05\x98<H\xda5\xeb(\xcf\xd9F\x00\xf6\xe6a\xfd\
+\x19\xac\xffiu\x12\x0f\x16\xa0\xf4hs\xb5q\xf10\
+5\x06\x0a\xdc|]\xd1t\xc8\x11\x5c\x82L\x8d\xfes\
+\xb2\x95\xdb\xa9\xd95\x96\xc2y\xfb0\xe2\xa9s\xcc\xf7\
+_\x5c\x04\xc4dr \x80\xc4\x1aW\x011g|\xa6\
+\x9f\x11\x01\xc4b\xc9\x7f\xb4/\x8e/\xab\x9d\xcf\xc2P\
+0&\xca\xda\x169_x\xc0B\xaa\xdd\xf9\x5c\xee\xbe\
+c\xd1\xfe\xddg\xab\xd9/U\x90\xa5\xbd-\x04\x0c\xbf\
+\xad\x89\xf1\x15{\xd0\xaf\x85\xc2I\x8d\xa8\xf1\x8c\x16!\
+\xef\xe5\x5c\xd69WN\xf7\x0d\xc5\xdc[.h}\x00\
+HQ\x88\x92\xf7B\x81\xde\xc5\x22\x14\x1c\xe4\xcf\xf8\xb0\
+[\x961\x08\xe7\x03\x1dh1\xe4(\x5c\xd0\xc6Iw\
+\xa7?\xa4?\x04\xd7\xa4\x1f\x8c\xa7\x8e\xa7\x16;\xdb\x1c\
+\xf9\xcb\x17W\xa7\xff\x93\xd5\xe5\x80\xfb3\xde\xcb\xa2\x15\
+\xc0.F\xa8\xd1:\xb7Oc\xd4\x8e\xce4\x94r\xf2\
+\x05\xf2o\xf2k:\xcaP\xaf\x01:\x19\xb9C\x0c\x98\
+\xbaCu\x06\xcc\x1b/\xf4\xa8k(d\x05(\x00(\
+9\x00\x05\x10*\xad\x1eol1b\xa0\x02\xdb\xb5h\
+p\xc7\xa2\xd1\xb0\x94E\x98\x9dg\xfdh\x7fp\xcd\x0a\
+\x1a\x0e\xdc\x17\xde\x17LB\x01\xa5.\x86\xa8\x06\x90\x7f\
+\x1e\x80\x1c\x98>h(lg\x11\xecw\xc9\xf3\xe8\xe8\
+K\xa4\x94\xd1N\x17-\xa5 '\xcf\x07\x18E;\x01\
+1ED\xb5\x1fV\xc1M\x01O\x01L]\xcb\xe8 \
+\xf9%\x852\x1d}\x9e\x0f\x1al06\x00t\xa8'\
+\x00v\xfav\x82\x5c7\x1a\xb0\xdc\x7f\x01\x00\xacg\x0a\
+w\xd7V\x00Hd\xa4\x02\x86'\x9f\x03\x86\x01\x8d\x1a\
+\x80\xa3y-\x02`\xd4/\xf8\x01\xa8\x00 \x00\x98y\
+\x1e[\x9dZ\xb4H&K\xe1\xbf\x98\x12\xc7%\xc2\x01\
+\x1fg\xef\x17\x0c\x94\x7f\x15\xe4PD\xbc\xa3\xceh\x00\
+\xd4~\x0aj\x12\x0d\x0a\xb1\x19\x8a<\x5cChx\xc5\
+\xde\x8f\x03\x8c\xc2{\xe1:c\xea\x88\xeb\xd2\xf5\x80\x9f\
+\xc6\x9e\xaf_\xe8\xd3\xf9G\x95\x1d\xe4\xb3_\xf8\x03\x08\
+\x90\x10\xe2\xfb\xcdF\xdb\x1f\x81\xe8\x03\x00P\xef\xb1A\
+\x81\xfa\x0c\xd5\x9fWf\xfd\x01\x06Hl\xf1AW\xa7\
+\xca\xbf\x9f\xeb\xbaB\xaf\xe3\x8f\xf8\x15\x00\x82\x00\x06\x17\
+c\x82\xb1\xb0y\xaf\xc3\xff\xa2\xa8\xfa\x88\xb2\xa1F\x8b\
+\x9d\x13*\xa2 \xb4\xcc\x08k\x03\x06\xa8\xf1\xd9\xd4Y\
+u\xfd8@)\xe8@\xa6\xd6\xd3\xfb\xdaP\xaa\xbd\x8c\
+@\x90\x80\x90 \xaa\xa39\xb8B\xb3\x89$* \xab\
+P\xa0\xd4\x91\x18/d\x11T\xe1\xe9\xec\x89\x1a\xe8\x1d\
+e!\x9e\xe6fl~\xc6t\x0cI@\x9db.F\
+AN\xfc\xd7/\x89?\xb38\x9aI\xf6\x82_\x89\xa4\
+\xab.3\xfb)\x91\xc5\xee~\x8b`\xfb\x86\x0d\x1b\x14\
+,!{i;\x8bF\xc5A\x5c\xcegy\xd9\xb8\xf1\
+e\xd6\x83\xea\xfe\xe8t\x9eH0@^\xf9\xbdt\xc4\
+D\xbd\xc2\x87\xdd\xa9\x9bb\x1e\x8c\x87\x16\xcd\x8e\xaf\xfb\
+\x93E\xbb\xbf^\xf8J\xc4\x91\x91\x00\xa7l\xab\xf0u\
+\xca!~\xc9\xd8\x91h\x1d@u\xf2\xd9a\xcd\x8a\xfa\
+A\xa7\x03\xc6m\x19Y\x9f\x8c\xe6\xb0\x0e@\xe0U\x98\
+\xb8\x9a.\x89\xa5\x18\x02\xd8 \xbaz;\x14+\xbe\x0f\
+\xd5}m\x8c\xce\x90\x81R\x87\xa8\x22\x08,\xc0\x95\x0e\
+\xfe\x9c\x86\x94\xef\xb7~[\xe9\xb8I\x85\xdd\xd5\xa3\x99\
+Q\xd6\xbarQ1\xb42z\x14\xadB\xb1\xbe> \
+\xf4\xd8|B\x01d\xb6\x9f\xefct@\x05u\xa1t\
+~* \xbc'V_\xf8\xf1\xfc5\x81\x05pq\xa6\
+\x8a\xdc\x03<\xa1\x831\x80\xe8&\xef[\xb6|hW\
+\x0cnVazV\x15G\x1b\x5cX\xc5\x87J\x07o\
+T\xa8\xcb\xf7\x1au\xb9\x00\x7f;\x94\x02\xfe\xf0B\xe5\
+\x87\xa1\xa1\xd9K\xd6\x0f\xea\xe9\x8c\x08\xb9(\x22>\xce\
+6\xf3\xfc@\xbb\xce\xaeI \x8a\xb4\x17\x86\xd2\x90(\
+3\xec\xf9@\xb4\xc9\xea\xee\xc8\xb6\x0f2\x13\x9b\xbea\
+\x91\xff\xfdP\x8bp]\x19\xc12J\xff\x91aFw\
+\x85\xf1\xf2\xc5\xe6\xaa\x0a\xc8z\xa1\xe9\xc0'\xfb\xbf\xc4\
+\xa1\x06\xd7X\x04\xc4^\x85\x08\xfbg\xe9\xac\xef\xdd\x0a\
+;\x00\x19O\xe4\x94\x880\x9b\xc7\xec\x9e\xbb7`\xff\
+C\x82n\x09\xf5d\xb0!\xbc\xd4\xa2\xa9E\x17@3\
+?\x0f\xdd?r<\xd3:\xe1\xc5\x0e\xec\xaf*x\xac\
+\xc0;6\xc7qb|\x9d\x11\x80\x1c\x83U\xb6\x14\xc3\
+\xe0\xf6p\x0eH\x03\x01\x9fv_73Y\x14\x00\xb5\
+v\xa6\x1f\xa8\xeb'\x97\xe1/\x0e^\x0c\xa2\x9c\x02\x9e\
+\x00\x06}\x1dB\xfd\xdd'\xedk\x14\xe5\xd1\xfd\x16\xe1\
+\x9c\x14p\x93.\xb6h\xae\x14\xe9Y\x8b\xfcza\xba\
+ ] \x9b\xc43\xca\xf3\x7fG\xd1\x0a\xc1\xcd`\x1b\
+\xad/\x9e;[/\xf7\xb7\x11\x04\xd7\xa0\xe0\x5c\x91Z\
+\xfa\xc4\xdfjB\xec\xe7+\x80\x9f\x80\x88\xe1\x99\x16\xf9\
+\xf5!\x8b\xd6\xd9\xc2\xad\xa2[\xcb\x22\x7f\x9e;,\xc2\
+\xe8\x83\x00G\xf6\x0f\xf6\x0d\xef\xe8\xa1\x09\x84v\x8a\x80\
+\xa72\xa3=gHH\x05Xw\x07Y\x94\xc2\xb8\x02\
+R\xec'\x00-$\xfa\xcc\x86r\x9f\xc9\x83h\xc4\xd0\
+\x81\xa2\xa3\x0d\xc0(`\xb1\xfb\xbeE~\xdd\xac{_\
+\x97\xf7\xf7\xd1\x9f,\xda\xfbH'X4[\xba\x22^\
+\xb7|\xd18\xd8\xbet\xca\xf9\x1c\x1aq+\xd4\xf5k\
+\x1b`\x07\xf0W\xce\xcd\x05\x9b\xf6E\x01\xb6\x1fi\x9d\
+\xcf\xb4\xbdE\xfe\xbe\xefU\x91O\xb7}\x83\xe1\x04 \
+oZ\x00s\x86\x0e\xe6a\x16\xe1\xfd\xa9\xa0\x84B\xee\
+v\xb7$\xf4$\xce\x5co\xce\x05\xf29\x01\x10\xd8&\
+c\xd3\xdb\xbd\xd9\xa20Q^0&J\xbe^9\x8a\
+[\xd0Y\xa3\x5c\xe0\x8fN\xb4\x90\x08\xddJ\x1a\x05Y\
+)\x00\x97\xe4\x8d\xe4i\xca\xaf\x5c\x8c\x93\xff`\x8c\x0a\
+\x88\xc0>\xcf\x19-\xd8\xb4\x8a\xe1\xe46\xaa\x06\x18]\
+\xdd4\x1f|\xf4\xc1\xb2\xc5\x15\xc2\x8c\xfdGzL\xd2\
+\xa9\xb5\x10\xcf{\x85E\x9bIF\x13\x05W&\xc4\xe2\
+\xc4\x08\x19\xcf]\x1b\x14>\x0a#\xf7\x84|\xd5v\x1c\
+\xef\xd8\xf6\xdf4W\x9a;\xe5\xeb\x9d\xbe`\x11\xb4\x10\
+\x94\x17\xe52\xf8\x89\xf1\x13\x05(\xf9\xf6\xf8\xdb\xa5\x10\
+*@\xbaIZ\x17Qk(\xe5h?\x09\xb0r\x06\
+*\xee=\x88\xc9\x01\xf0 \xbe\x06\xa0\xcb\x08\x1c6\x8c\
+\x8c\xae\xa2\xbd\xc3\xc8\x18\x8d\x0e\x89\xd6:\xc5\x9a<\x5c\
+\x0d\x07\xec }\x06\x9c\x86\x86FP\xbdP\xa3\xfe\xa1\
+N\xa0\x81G\xde\xcaH\x03ZF\x00\x00\x9cK\xbc?\
+(\xe10\x80\x98\xb9g\x84U\xa2\x92^0\xf65\xd0\
+\x10\x15\xe7\xfd\xb2N\xf8\xf7\xedK\xb8\x88\xa3\x17\xe4\xd4\
+%\x88\xfb\xe99\xf4\x82\x99\x02\x97\xf7\x8dk\x10\xf9\x0d\
+\x0d$>_O\xbc\x0eqd\x1f\x89\xe0\xfd?+f\
+1\xf9\x22\x85>\xf5\x0cb\x9a\xff\xb6\x08\x0cJ\xf2J\
+\xb4\xa4\x00\xf6\x01@\xd0\xbabd\x03\x91\xe9\xad,B\
+\x1eJ\xc3\x92\xcf\xc3\xfa\xc0\xa6Q\x1aY\xbe\xbe\xc8\xc7\
+a>\x00\x0c12\x8b\xda\xbfD\x94m\xb5\xdbz\xf7\
+|\x96:\x97z\x89\xebI\x83\x03@\x8b\x86\x0b\xf7\x11\
+QI1\x1b&_G\xf1_\xb0\xf7\xba@x\x95\x0b\
+\x80\xdb\xf3\xf1F)\xc8I\xdc)\xb4)\xac\xf9y\x9a\
+\x1d|\xdd\xecz\x9c\xc5g\x84\x80Wi\x09\x94\x0e\xea\
+\xec:\x80\x96\x0a\x89\x17@\xc3\x12e:\xf3\xf5\xa2|\
+\xf3\xbd\xc1\xec>\x9d}\x0a\x0b:\xdf}\x91\x07\x16\x1c\
+\x94\x1d\x1edf\x94\xfbj\xd5\xab\xa9\xf0\xc5\xa6d%\
+uF@\xae@\xa2\xd8\xb8A\x16)\xdc\xdfb\x11\x0e\
+\x146~\x0aw^\xb9\xdeh\x07Pp1\x83C\xe1\
+\x02\x80\x00RK\xa7\x86\x05\xc3\x83\xc8\x9f\xe9,\xa93\
+\xec*\xb5\x9a]\xf1\x8e!\x89\xac>\xc7\xf8\xe6J\xcd\
+vd\x14\xa4\x9b\xf7\xb1\x84\xae\xd7\xda\x02\x16D\xa9\xf5\
+\x82\xef\xccJ\xc9t\xf1\x19D\xef\x0e\xd1\x8c\xde\x85\xb5\
+\xa3\xe9\xfe\xf6$\x22\x00Jl\x18\x9a\x15\xc6\x06\xd0}\
+f\xd5\x19A\xdd\x9a\xc4\x18\xea\x9c\x8fz\xbcd\x11\x0a\
+\x01\xa9\xaa\xba\xdd\x15n\x03$\xd0\x8fZ\x04\xb1\x99\xd2\
+\xdak\xe28t\xf6\xa1\xc2y\xe1\xf1+\x8b\xb0\xb1\xb0\
+\xd1#\xd2\x88(\xa3(\xff\xc5\xb7z\x960s\x8d\xa8\
+\x13\x8c\x11\xec\x1b9\x80\xe9hc;\x85\xed\xa5\xd4\xa2\
+\xdd\xd6\x8e\xfbOa\x0b\x15\x16W\x07\x12\x06%\x10N\
+\xc9&\x11\xc5vG\x1b\xbf\xbb<`\xf7\x02\x15\x9fY\
+b\x89\xbfq\xd0\xf9z\xe5\xf7j\x7f`6r\xf0E\
+\x8b\xf0|\xa2)\x00\xd5\x9b\xce8\x9dGF\x1e\x00\xe2\
+4\xb3\xe93\x7f0?\x10/\x22\xb1\xe1\xf9\x142\xed\
+\x94,idx'\x9f\x03\x0b\xc4\x18\x84\x9a\xd91F\
+ZH8\xb4\xbf\xd1i\x80z\xec\xd4wS\xb3\xbe%\
+\xd8\xd1\xc1\x10\x02\xf0\xc4~\x8eYU=_\xa6]_\
+\xd4\xeb\xd5\x11p\xbb&1\x1e\xdc\xeeO\x85\xce\xf8\x14\
+%|\xd7V\x11+\x9f\xbd\x04\xd8\x83i\xf4\x7f*X\
+)\xb4\xb1\xb1\x83\xd2\x0c\xe2\x8ek\xc2\xa3\x15HK\x1f\
+O\xbb\xa7\xdd\x0b\xd0T\x00\xbaB\x0d\xff~I\xa8\x0a\
+3\xa5\xecZ\xcb\x85\xf5~ay\xa2]L\x0e\xea*\
+b\x7f\xbe\xee5\xaaPf\xba_j\x9d\xc0\xc1\x8c\x16\
+m\xfdx\x81\x03\x80(\xb5\xfc\xd2\xf1\xfc\xbb\x80\xad_\
+\xaaC\xb9[\x98\xb5\xd6\xfa\xc5\x06\xb3\x94w\x7f\xd3\xbe\
+\xb5vc\xfap`3j\xc3\x0c4\x1dv\xdf\xef\xa0\
+\xd6\x8a\x81\xc1(\x00#_\xdd\xe6\x16\xf9\xfb\xb7\x10\xc3\
+\x80\x02\x84\x91\x08\x98FrAa\xa6\xd5g\xb6\xe9|\
+\xc0\xa4\xbb\xb8\xdar\xf9z\xb34\xe9\xf1\x96\xb0\xa5\x0f\
+Z\x84\x8e\xd4\xc3\xa5G\xe2\x0c\x80\xd29\xb87\xb8M\
+\x18\x80y\x8c\xa8\xbf\x9fh\x00\x03\xf6\x8ber\xfb\x88\
+\xe0W\xbeJ\xb5\xc5s\x7ft\xc4m/\xae\x9dOw\
+;\xd1\xba\xa1\xb0\x06\xe0\x01\x10\xf5\xef\x170\xe8\xcf1\
+\xe7\x1a\x00.\x80\x95\x00\xc2\xf4{\x8b\xfc\xbae\xda\x22\
+mQ\x98 U\x15\x9cQ\x84\x17\xcb4hs5\xa0\
+\xc0\x7fj\xf0\xa4\x89\x0bN\x1c)\x7fw4\x11\xa6T\
+f\xc1\xf0\xfc\xe1\xd4a~>\xd3\xeci\xb64[\x13\
+\x99C|m\xf8\x8f\xe1\xd3\xc3\xbcn\xd3\xf1\x16\xf9\xcf\
+\x8bZ\xe4\xd7\xfb,\x82x\x97\x98C\xdd\xb3\x16y\x9b\
+]\xde\xa2\x9c\xa3\x15\xf0\xd4\xf9\x98\x1e\xb1\xc8\xaf\xe7Z\
+\x04[;\x00\x80IQ}\xa5u\xe4\x9d\xa3?Z\xb4\
+\x99r\xdf'\xb5?\x8d\xffV\xd7)\x1d\xec\xf4o\x8b\
+\xfc\xfd]u\x0f\xf0\xfb\xf8+\x8b\xa0Z/\x06\x193\
+\xc4\xeeB3\x83E\x13\x9d3\x97mS\xf5\x1e/b\
+\xd1\x80\x04o`\xa0zn?g\xc5\xc0H\xb2\xd1\xb5\
+cD}\xcf\xe7\xc6\xe8\xd0\x1c\x9f\x0b\xa3t\xd6\xf9\xb6\
+\x04\xf7C%\x5c\x0b\x22-\x98c\x01\xb9\xeb\x9c\xde\xa8\
+\xbb\x9c\xd3\xe9-\x16\x81\xea\x8d]\xa1\xa9\x94\xaf\xa3\xe7\
+\xe3\xc9\xb0\xae\x01\xac\x9e\xac\xeb\x81\x82\xd6\xed@\xb1\x09\
+T'\x10 \xdf\xb55(H%\xf6\xc7\xfb\xed\xb6\xb4\
+\xc8\xafkZ\xe4\xd7\xc7-\xf2\xeb\x12\x16\xf9\xf3n\x9a\
+#\xe7\x17\xdd\xc3\xd5\xc6\xd3L\x1d;\xcb\x17\x16\xb6h\
+\xfb;\x85\xb5\xaf\x93;-\x1a\x93h\xf0\x0d\x0bi5\
+Lm\xfb\x8e\xe71\x00\x89z\xeehX\x94\xe7{\x8f\
+p\x0e\xfca\xe2\xaeR\x08\xc0\xa8\x93\x0b\x00\xb6\x82\xb8\
+\xc5x#\x8a\xfc\x00\x0a\xb5\x11\xa1\xbf\x1a\x00}\x1a#\
+\x1f\xd6\xbaD\xdb\xe0\xf1\x5c\xb0?&W\x95O\x85|\
+\xf42iT\xc8\xd6\xd1\x14w\x8ci\x92\x9e\xb2\x08\xe2\
+{\xf7\xd6N\xe7\xf8\x92\xcax\xea\xce\xb1(.\x07\x85\
+\x897^u\xbc\xca8\xefG\xf6\xff\xe5ue\x8b\xa6\
+\xcd\xe4LI\x01\xe0\xe4%\xd3P\xbf)\x9c\x01\xf8\x00\
+\xce\x10\x13f\xd6\x9a\xce\xac\x1aN>\xea\x085\x1f\x86\
+\xae\x98M<\xaf\xd3\x88\xd7\xa9P\xf3\x11T\xf2l\x0a\
+K\x9d7\xae\x01\x83f\x16\xee\x1f\x8cZ\xc0\xec#\xaf\
+EL\x1b\xdbI\xea\x06:\xfb\x88\xc4\xc1\xbcP\xde\xe8\
+\xa3\x0fOT\x80\xc5\xeb \x0ad\xf2%\x0al\xea\x07\
+\x80t\xb4\xc6\xa8_8\xaf\xe8LKT\xd3?\x0f?\
+\x87:\xb1\x0f\xb4\xf1\xf5\xe4G\x14\xfa\x7fR\x81\x8b\xa8\
+\x22\x05.\xfb\x1fv\x85\xfc\x1c\xea8~\x1e\xd7\x85z\
+\x8f\xba\x15\xc0\x04\xed&>?\xc0\x801\x89\x0e\x0d\x0c\
+\x9f]\xc5`ft\x95<\x15\xc0\x81\xcf\xcd\xf3B~\
+G#U\x9a\x1d0\xff\x10\x8b\xf4F\x14u\x1c\xa39\
+\x00\x01\xd8\xf5B\xe5\xff\xaeE\xb8\xaet\xfeYg\xba\
+\x0e>\xca\xc0:\xd4\xf3\x5c\x8f\x99\xe9\xf5\xc6\xa6\x04U\
+~\x0acl\xfb\xac\x5c\x99\xf3\x0dT\xefA.\xfa6\
+}\xd8\xdb\xd1\x01\xe5\xc2\x02\x10PHS\x08\x01\x08\xf0\
+>f,\xf2[\x8d1\x00C\x00\xc0\x80\xef\xe3\xe7D\
+\xeaq,\xfc\xa1$\xfd/\xbb>^Y\x88 \x5c\x14\
+\xde,\x906\x9aP\x16TN\xbbK\xa1\xec\x14!\x10\
+c6L:Y*\xa8\x1d\x19\xe3\xfa\xb0\x00\xf9\xb9\xfc\
+>\x1e4\xbe\x1f\xaa\x1e\x94\x98\x1eBT`\x90\xc5\x02\
+@\xc1\xcf\x019\x94\x98\x92\x7f\x0e\x1e\x5c\x10G\x00\x0e\
+\x16\x0e\x0f.\x89\x07H\x1a3C\x14\xfc\xcb\xebsB\
+\x81\xe1\xe7\x03l\x00x`\x93\x22\xea\x90\xab\x81\x938\
+CU\xa4PR\xa2\xe7\x07\xaf6Z\xefD#\xc6\x03\
+\xc2\xc8\x8c\x113v\xd8\xad\x80 \xd2q\x80\xe2\xc6\xdf\
+\xb3a\xd3\x91#\x01\x90X\x91w\xda\xd5)\x1f?d\
+\x11\x90>\x1d$\xdd\xac\x16\xad\xd3\xe3#\x12\xda8\x10\
+[L\x87Y4\xa0\xc2\x13Vf\xd0H\x00m\x96q\
+\x83F\xb9b6\xdfg\x84%\xe6\xe3\x9a\x12\x88\xd3\xf0\
+\x1f\xf7\x0b\x1b=\x0aZ\x15\xbe\x14\xd8~p\xa0Z\xac\
+\x04\x07q4\x0eF\xef\xccc?\x02uN\x1b\x0c*\
+\xef\x0e`\xa1~~\x81E\xb0sA\x0d\x1bF\x00\xaa\
+\xca\x9a\xad\xf4D\x14\xaa%\xfb\x87\x00\x10D\xa6\xfc\xba\
+!>\xc9~Db\xc1\xfdE\x8cF\x22I\xae\xf2\x8c\
+\x08at;\x99?\x1c\x90\xbaNt\xda\xb0\xfb\xf2Q\
+\x91\xb5-B\x02\xc0s\x86z.\xae\x08\xea\x18\xba}\
+\x18@\x92Ti]\x14\x92\x0e%\x0c\x15:\x93\xf2\xc5\
+\xf6\x91\x0e\x00\x07\x9e{\xf6)\x00\x08|\x95\x85\xf4\xa6\
+9r)3{\xd8\x97A\xa6\xd9w\x00\xfe\xce\x95\xda\
+3\xfb\x063\xf6b\x8e8\x85\xef\x0eQ#\x99\x0d\x14\
+@\x90\xb6\xb6PAy\x85\xa8\xdc\xffQ\xc12o\x10\
+E\xb4wwkP\x05G\x15\x9a\xf3\x80\x03\x0fj\xa0\
+:s.\xf2\x88}*\x09\x19\xfb\xa0\xd6c\xba\xc9\xa2\
+\xdd\xaf\x22\xb6\xf7\xe5\xa2\xe5\xb0~\xb1\xc128\xe8\x98\
+\x00p\x89\xba\xec.\x00JP]\xb5\x1a`nA\x8b\
+p\xbd\xb4?\x00\x88Y\x7f\xbbt\xb8%\x96\x05\xe3\xa3\
+\x1c\xff\xcf\xb4\xe7\x81\x8e\xcb\xe8\x9a\x1c?o\x05\xffp\
+\xd2\xa2%\xf0t\xf0<\xa1`\xb6Sn)n\xcf\xb9\
+AQG\xa9\x80\xde?\x04H\xbc\xb5u\xf2\xd2\x1e\x16\
+\xf9\xe7\xafm!W\x93\xa3D\xd5|4\x8c\xa8\xd8\xf5\
+=5\xd8\x05\x1as\xe1\xcf\x0dpq&\x9d\xecM'\
+~(\x15\xfdm\xabj\xbe\xab}\xc3P\x928+T\
+E\xc4\xdc|\xffB#\xe3?\x16\x81A\x82\x86\x09\x7f\
+\xcf\xf3\xa3\xd9o\x17\xe7\xfcC\xa5\x06;\xf5\xff\xfa\xca\
+`r\xe6\x19\x8c\x16\xed?n/\x0b@\x85\x96\x8e\x80\
+\xc1|J\x15\xc00}\xda\x22_/\x93\xf8\xc8\xfbg\
+Z\xca\x22\xbf\xce\x96fMf\xcb\xb7Y\xf5\xa7\x1f>\
+\x98\xe3\x81\x00\x883\x8b+\x91\xb3\xeei\x8b|\x9f\xff\
+b\x11f\xac\xa5\x19\xc2(\x9e\xab\x9b\x9fg\xd1\x0a\xbe\
+\xf16uD\x8dN\x8f\xfb\xc5o\xa6\x19\xf5;\xea\xec\
+\xa6\x03r\x02\xc8\xa1\xfavo\xb1h\xeb)}\xde\xa2\
+\xd9 \xfa\xba\x82\xda\xcb\xf9&J/\xfb??\x07W\
+\x09\xa7\x82k\x9fb\xf4\x81}b\xfc\xf1\x1c\xbbk\xf4\
+\xc5\x0a\xdf\x99r\xcc\xa8\xf3k9\x8d6\xcc\xa3Q\x01\
+\xd3B\xb8\xc5\x22\xf8\x90\x0bP\xf0\x8e\xe9\xed\x16\xf9\xeb\
+\xb7\xb3\xc8\xbf\xefr\x8b\xa0\x0d\xc2\xfd\xa6S\x09\x83\x11\
+\xea\xf4g,\xc2\xfe\x08\x83\xcb\x80\xd9\x90x\xa3=\xe2\
+@ #\xa4h\x00hd\x90\xce\x99\x03\xf9P\xa1e\
+\xcf\xd6Mg\xd1FCF\xff\xb1\xc8\xaf_\xb2h\xa3\
+\x0cnC9\x93f\xbf\xe9\x18\xeb\xfd\xa3\xf5\xc0zw\
+f\x14\xf6\xaao\xb7h\x80\x9dk\xfbP\xa0\xe7\xdd\xbe\
+0s\x9f\x9ax\xca\xf6O?\x07u\xaeb\xc3\x89}\
+d_E\xdf\xed\x00m7~{\x10E\xa3`\xc4\xed\
+\xc6\x00\xa8\x0f\x87}\x11\x06\xed[\xf5\xdcZ\xc7~I\
+\x15\xac\x9f\x09\x05\x0e\x0c\x0b=\x87i\xd2\x22?W\xc7\
+[\x94\xfd\xbf<\x97\xdd\xecU\x13\xc1GL6\xb4\x08\
+\xa2\x87\xf2\x89\x07hq;c\x98\x08P\xd1\xc5\x80\xf3\
+\x99t\xfe\x8c\x0d\x1d6\x86\x9a\xedv\x8d\x2243^\
+y=#\x96|\x01\xd7\x10\xff\x5c\x12\xe1\xf3\x82O\x8d\
+\xaa\xc1\xa9\x15\xb0\x99\xb8@@.\x8d\x04\x0a`\xea\x07\
+\xf2w4\xbe\xd0\x90\x10\x00\xea\x9aP?\xb2\x08\xccC\
+\xe5\x89\x0e\x0c\xe0N\x81\xbb\x0cL\x0d\x8d\x8c\x01P8\
+\xa5\x9f|\x1e \x04\x9bg\x00M(\xeft\x90)l\
+aJ\xa1\x85\xc3h\x02_\x0fc\x8d\x86 \xa3\x15\x88\
+\x8132\xc0\xdfS\x7f\xd0p\x00\xc0F;\x80\x11\xce\
+\xa7{\xb6|\x5co\xe5W\x88\x9e\xba\xbb\x00\xccs\xc4\
+\x0da\xb2@\xa1\xa7\xa1\xca\xd7\xc1,\xe7?\x981\xbc\
+/1a\x01\xea\x19\xc5\xf2|\x92\x06%\xd4|^\xf9\
+=\x8crc\x8b\xc9z\x05\xd0`}\x90\x0f\xe3\x86\x86\
+\xed\xa3\xf2\x7f\x9e_\x00b\x17\x17\xe5\xf7q]\xc8\x87\
+\xc9\x9b\x18\xbd\xd1\xc8\xc1\xa4_x{|g\xd3/\x9a\
+\xae7\xa3\x1f\x0bnD\x17(\xb8\xad\x5c\xfco\xd8H\
+\xa2J\xfcK\x8d\xea3X\xda\x22t\x84\xf8\xf9\x1cH\
+|?\x7f\xe6\x95\xafCD\xd0[\xa1\x95\x9a\xe9\x1f\x98\
+\x8e\xa7D\x9a\xfc\xc1\x02\x00 \xd1\x041g\xe1S\x80\
+\xf1{\xa0\xca\xf1\xf5\x14\xc8\x88\x86-\xa3\xc2vU\x8d\
+\x08\xa0\xfaI\x01\xdc\xa8\xfb\xf5\x95\xc4\x9a\x07\x9c\x82\x1f\
+\x80\x85\xcfMb\xbe\x90\x12\x98\xa5D\xf9\x87:\xcf\xcf\
+\xa3\xd3I\x87\x9a\xc4\x99\x85\xbb\xa8\x12\xfe\xc5\x84|-\
+\xab\xcf\xcf\x01\x093\x80\x04zv}^\x890\xf9L\
+\xf4|\x1a\xf1x\xbf\x1e`\x0e\x5cf\xc05\x13\xed\xbf\
+\x17\x80`\x0d]w\xc4\xbb\xe8\x94\xb1n@L\x111\
+\xc26\x0f&\x04\x9d\xea\xa5\xf5`hc\xc1\x7f\x1cD\
+\xd2\x13x(1\xb8\x07\xa8`E\x1c\xcf\xedPH\x14\
+@H)\xa0P\x17\xc6\x9f\xf8\xeb\x16\xf9\xfbw\xb4h\
+bU\xbea\xb0!\x08\xb8\x80\x92\xe5H\x1c3\xe4 \
+\xca\xcc\xdc\x7f\xd6\x22lT3X\xb4\xceK7\xbfE\
+~=\xd8\x22\xcc\xae\x81@\xea\xc0qQ\x16\x90M\xb4\
+#\xb0\x87\xa3P\xa2\x93F\x87\x0e\xbfm\x1d\x9c\xfe9\
+\xf4\xfcP\xe0\x02\x08\x0c7\xb1\x08L\x1a=\xffn\x87\
+E\x81\x0e3\x80N\x04\x14*\x1d\xf0\xfe\xf5\x88\xa1\xf0\
+{\x95`y\xc7\x9f\x02\x9e\x82\x9e\xce\x82(R\x1c\xcc\
+\xfe\xfe\xd1\xac`\x86\x8b\x0d\x8e\x0e\x07v'\xa2\xe22\
++\xee\x80\x86\xd6\xab\xab\xc0\xb3o\xd1\x81\x82\x12\x8c\xc8\
+\x9d\x00)FR\xa0\x00;\xc5\x8e\x03\x14J\xa8f\x22\
+A\x8e)\x98\x9d\xd1\xa2\xce\x97S\xf7\xa0\x8c\xa1>+\
+\xc6\x8a\xef\x0b\xa8\xc4\xb2\xef2\xf3\x8f\x1d\x904\x05\xa0\
+b\xbb\xab\x85\xa8\x8c\xdeae\xdd\xf0\xca\x01\xcd\xfb`\
+\xc4\x00\xe6\xcc\x9e\x12\xdf\xc4\xe6j+\x89\x0bQ\x98J\
+{#\xad\x96#\x17\xa0i\xba\x9c\xd0M\x17DL\x8d\
+Gq\x8bFS\xde\x13\x12r\x01\x12n\xb3\x85\xa6\x81\
+\x10p\x17}\x94Z7\x14Kg\xc0p]HPU\
+\xd0\x16q\xbc7\x05\xc0H\x1d\xde\xd2?xT\x22`\
+\xbf\x91\x88\xe8\xbey\xf9/l\x11:\x19\x9c\x0bt\xd8\
+Y\x97$>Pnu=L\xa2\xceD\xeaJ\xc2\xbe\
+\xb8:!\x9f\x0e\xf6<\xba\x8f\xddl9f/\x14\xe0\
+\x1cZg\xdbIlk\xe7|\xfc<o\x91\x7f^\xc9\
+\xe8\x9b\xb8\x9f\xab\xdbK\xa3\xc3\xc5\x0aEu5\xa9,\
+\x13\xcbr\xc0\x90\x91\x0f\xa3\xda\xe6\xeb\x90v\xb3\x90\xcf\
+zN\xe0G\xff\xb5\x08\x80\xb5\x00\xda\xf2}\x17h\x1d\
+\xa1B\xbfB\xb0\x89\xa4@\xbf\xad\x8e\xd6\xa4Y\xd2\x94\
+4%\x004\x9c'\xea\xe4\xe02`_\x95\xa6\x84\xeb\
+\x01@\xc0\x88\x14?\xf7U\x8b\xd2\xa9/\x85\xb1k\x93\
+\xa8\x93\x0d\x80\x87\x18)\x00E\xfe-;\x9a\x06\x02j\
+\xdeia\x8b\xa6A3xn\xf0\xcc\xe0\x99\xd0\xc1\xa3\
+\xe3E\x82.\xc0\x8d\xe7\xda\xd5\xc5\x05x\xfah\x8f~\
+\xef\xe4\xb2\x16*X\x17m\xfb\x7f\xb4e\x11\x00\x00 \
+\x00IDAT\xed\xe8\xfd\x16\xf9uv\x8b@\xb9\xde\
+\xdf\xa2\xed\xfb\xe9\x84\xf4\x95\xe2w\xcf\xc8\x8e\xf6\xa7\x5c\
+\xae\x17 \xc9\x99j\x17\xcb&\xf5\x13\xb5s\xdb\xad#\
+\x9b\xd8\xc3t\xee\x22\xe6\xfa\xbeJ\xc5\xf7}V\x00\x1b\
+\xe7\x0b\x80J\xba\xad\x8a\xd8\x22v\xd6me\xd1\xec\xd1\
+\xba\xe5,\xc2H\xcb\x09\x16\xf96\xec`\x91\xff\xfdB\
+\x8b\xaaR?\xce\xfbjw\x8cE\xd1\xa4)\x05\xb2\x17\
+\xc0V\xb0[G|\xc1\x1c\x0b\xb4\xe7y<C\x8e\x19\
+%b\xf7\x8e\xa0N\xad\xeb?\xde\xc4\xa21\xe1\x8a\x08\
+\xde\x81\x01`\x10#-\xbd\xc7\x22\x14\xc6\x9c\xef:W\
+\xbc\x10:\xcf\xa2t\x88W\xb5\xbc\xa1\x00\x8a\x9f\x08\x1a\
+\x1aP\xd9\x95\xbf\x99g\x84\x8d\xc6xao\xdf\xb7j\
+;\xf7\x8b\xd8\xe0l\xed\xdc\x1b]:\xbadd\xf6\xbf\
+swsus\xc9_~\xf56\xdb?\xfa\xaa(\xfe\
+\x12\x19\xc5\xddip\x91\x18)\xa2\x84{\xfec\x05\xdd\
+\xeem\xa4\x8f\x19|\xd6\xf5xq\x0b\xad\xe3\x03\x1b\xd3\
+\x07\x0d\x8b2\xaa5\x9f\x1a\x17;\xd5FB\xc9\x0bi\
+\xe8\x90\xdf\x92\xc7\xee\x5c51\x1c\x10'_C\x1c\xcd\
+`\xdf\xafJ\xbcwj\xe8\xc0\xb2\x1f\x02\xb40\xda\x07\
+E\x9cF\xda\x86E\xde\xb9\xe6\xc9\xab\x84\xeb\xads\x0e\
+-\x92b\x8b\xfaj\xd1 [\xd4F\x91\xbb7\xd7<\
+\x08`\xa8{w\xb7qqE\xd0\xe8\x89\x03\x00\x00\xb3\
+hA\xa8^pQ:f\xca9\xd7($WQ\x83\
+\x0d\x86\x1f\x00'\x1d^\x9dk\xdeH\xf9\xbd4\xa88\
+\xb75r\xea\x9dt}\x7fZ\xc2\xa24\x14k>\xff\
+O\x89\x1fkT\xc1\x0bC\xec\x06U\x90\xb3\xcf\xa5\xf9\
+,\xc2\x88\xa2\xf2z\xc4\x95a\xc0\xe2\xd2\xe6\x9aW\xb8\
+\x19\xf5\x98,\xcex\xd4}w@AZM0\xac\xbc\
+\x91\x06P\xa9<\xc9\x81\x0d\x8d,\xf9:a\x1dp\x8e\
+c\xdf\xd7\xd3L\xf2\xf3\x05\xb1?\xf2O(\xf30\xdb\
+\xc8\x9bh,\x08\xe0p\xd5|\xf2\xc6\xd6\xb0\xac\xf5\x0c\
+\xe74\xf5 \x8d\x5c\x80,\xf2.\xceK\xea-f\xe0\
+\xd1\x98\xe2sPo\xd2`\xa6.@\x84\x1b7\x00\xde\
+\x07\xda=k\xca\x0d\x8az\x82\xebCa\x0f\xe3\x9c:\
+R\xf9\xa5\xd7\xa10\x06\x18a\x12\xc3\xce\xf3C\x5c\x14\
+\xa87X\xdf\x88\x8f\xb2\xae\xa9[\x01\x22\xf8\x1c<\xf7\
+\x911\xf8DkxM\xbeN\x9cb\xe1\xe0\xbfm\x93\
+/\xaf\x86\x07A\xea\xfeP\x09\xbc\xb0\x80A\xc0+\x94\
+|l\xfc\xb8Q\x14\x80\xbc\xd1\xbe\xd8\x9e=.\xcf\x07\
+\xe4\x827l\xef\xe3?\xe1B\xf1 Qh\xbdPJ\
+\xd7\xe6\x93(\x1b\x13fC\xbd\xc3\x07\x10\xc0\x9f\xfb\xff\
+\xf1sI\xf4x\xe5\x86\xb3\x91\x22c\xc8\xc2\xe3\xf3\xb1\
+\xc0\xb0\x8f\xc1\xa6\x90\xce(\x9f\x93\x05\xc1\x8d\x01y\x02\
+\xc8\x98\xd0\xcf\x9d^\x0b\x9a\x8e}\xdfm\x80?\xf7\xdd\
+\x0f\xde,\x84r~\x15n}\xfb@\xd4\xe9\x11\xdb[\
+X\x80\xc1,z_|\x0e(\xdaPz\xa4\xf2o\xda\
+\xbd\x05\x18\xe0\xfaspp}\x10\x0d\xc4\xb6\x0f?o\
+\x10ju\x14\xddO\x9e\x19Xl\x08\xe5\x93\x5cD{\
+v\x0c3w\xbcB)\xd4\x01\xe0>\xec\x88\xb9\xd0\xb9\
+_\xa9R\xc1\xf2g\xa8\xaa\xf5P\xdf\xff\xa2BK\xd7\
+\xc97\x04\xb9#\xb0q\xe6\xe3<GP\x0d\xd6\xba\xa2\
+\x00\xf5\x0d\x06\x9b\x14l@\x00x\xf4\xfbHD\xd2{\
+-\xf2\xcf=\xd9\xa2\x15Z\xdd\xe7-\xda2\xe0`q\
+\x84t6\x07h\xea\xac\x0f\xcc\x05\xcd\x0a\x93PC\x99\
+s@\x09*#6~\x8c\xac@%\x92Z\xec\xc4\x09\
+%&\xbaO[\x04\x7fl\xddw?ha\xa0\x90@\
+0\xf3\x86\x98\x89\xec\xda\xf0CE4\x90Q\x09\xb7\xe3\
+\x93(\x9e\x8f&P\xc8 \xaa\xc3l\xfe?,\xc2\xc1\
+Cb\xca\xec4\x85\xb7\x006\x07\x88H`@\xf8\xa1\
+B!&\xc8~\xc6z\xe5\xe0\x00H\xe0\xfdP\xd8\xf0\
+\xfd\x007\xa2\xe0\xf3\xf3\x1cxAs\x83\xc2Z3r\
+N\xa1\x03\x90\xe4\x155q\xec\x0b\xb7\xb1(\x09h\xed\
+\xcc\x1d]5\x1e\xe8\x84\xb9\x8d%\xa3\x17\xa8\xa0\x0bX\
+\x85A\xc3\xc1\xd0]n\x91\x7f\xfc\xaa\x16\xad\xe3\x80(\
+%\x85\x843\xb4\x00xv\xac\xb3\xac<7EL\xea\
+\xa4\xa6\xf9\x82(e\xf7\xdd:{;\xfeu\xa5\xca\x8e\
+\xb7\x938%\x94q1S\xca\x8c\xf9\x97Bg\xdc`\
+\x9a\x07E\xf5\xffY\x98\xe5\xa3\xc3\xc0l\x1e\xa2\x80\x9a\
+\x9dw\xb1\xc1\xdd-\x82\xbb\x05\x8c\x09\x18\x14\x14>\xcc\
+\xa4\xef[\xddM\x9c\x89\x84J/#\x22v\xca\xbc\x12\
+\xecz8g\xd8O\x01xA\xe8\xd9Oa\x0e\xb0>\
+\xac\x7f\xf4\xbb\xb6na\x84\x0c\xcf\xb6\x10\xe5\xfa\xd7\xe1\
+\xe0\xd7H]\xf7\x90E~\xfd\x85E~=\xdc\xa2\x8d\
+F\xb9[\x89F\x1c\x9c\xa9\xc2\xcc\xb5f\xe1\x0b\xc0\xb2\
+I\xe8 P\x10\x19\x03m\xc5\xc2\x08\xc9\xd1\x00\x17\xd7\
+L!A\xb24\xce\xeca7\xb0h\xeb}\xb8\xbdE\
++\xcc\xd3\xdf\xd3\xa3\xe9\xd1\xe6#\x8e\x8b\x86?\xcf\x88\
+yI\xb3&\x1dd\x114\x04\x00\xba\xd4AIGY\
+\xb4N&\xa2H\x83\x9fT\xb7\x02\x00c\x93\x1a.#\
++\xff\xae\xe7N\xfa\x82:\xdbz>\xdc\x95\x84\xe7Q\
+\x89\x9d\xef\x17\xe4\x07\xdbT\x00+\xaf\xea\xaa=\x80(\
+\xad\xa8\xd8\x14\xba\xa3\xf7Z\xb4\xcf\xc1u\x98\xfcl\x8e\
+\x5cp$\xfbo \xe06\xaf\x93n\x8b\x1c[\x8a!\
+15\x88+J\xbb(-b\xd1\xdc\x00|\x1f\xbc\xa4\
+\x16\x84\x0e8\xa0\xbd2)\x11H:\x93\xff\x1c\xbc0\
+x!\x14\x88j8\xa4oZ\xb4\xc4\xda\xb5a8\xc7\
+\x1f*\xc6\x97\xa6\x09qM\x01\xd4`\xf2\xb0\xae\x99\xf1\
+V\x22\x0bs\xc0\xd5\xea\xe5\xae\xc3y\xe3\xae\x00\xd8\xfe\
+}\xd0\x22\xbf\x9e\x90\xc3\x0a\xd1S-\x04,\xae\x19\x1a\
+GJ\xe4\xd3\xa19>\x17\x00Fu\xc6\xba\xab,\xf2\
+u\x9f\xcc\x91\xcf\xb7\xd7\xdei\x91\xff~5\x0b\x9d\xbb\
+;5\xdbA\x1f\x8d`\xf6]\x80E9eRc\xd2\
+\x95\xac`\x1d\x15\x946\x9b\x7f\x91Ec\xec9e\x5c\
+L\xbb\xee\x16\x8bF!\xa7\xf0\xea.\xb0h.\x03\xa3\
+\xe9F\xd3\x8f\xa6\x0f\x85\xfe\x07,\xca\xfb\xab\xb3\xf7r\
+\x13)\xcf\xc7\x12a\xf4@\xea\xfchp\xb8f\x8f\x0a\
+\x03W\xf7\x07@B\xe4\xd6x\x95\xeb\x84\xe7\x8e\x11%\
+f\x839\xef\xad`\xfb~\xd0\x02\x91\x96\x8b\x03\xe4:\
+\x17\x99yw\x86\x16\x05\x98FP\x10\xd3\xf3\xfd\xbc?\
+:H>\xcbH\xe7]\x16!\x1f\xbeu\xe27\xc5\x16\
+\xf6\xad\xe3\xd5m$\xd1G\x0d\x96\xb4\xd6V\xfe\x1cG\
+\xa4\xc3\xd3\x11\xe5\xb9\x1f\xd8s_\xc4\x11\xcd\xde\xb8\xfc\
+\x97\x7f\xcd\xd5\xa3\xabFW5\xc6\x05\xb3\xdf>k\x0e\
+5\x1c\x97-^i\x00\xd0hP\xe1\xe6\xb6o7\xa9\
+\xe3\x0fs\x81\xba\x00\x86#\xfb;\x00\xfbL\xca\xa7\xb6\
+,'bk\x04\x90\x9732@>\x0d\xc3\x17\xf1\xce\
+\xdd\xd5\xa9\xd7\x0c\xb9w\xa8a`\xd0\xd9V>\xe3\xcc\
+\x15\xf6q\x18\x17'j\xf4\x86QX\x18\x040\xfbP\
+\xd3W\x83\xc8\x1bF\x88!3\x8bN^\xc3H\xe59\
+\x16\xa1\x91\x03\x95^\x9aT\x00U\xce\xcc\xecS\xf4Y\
+7\x88\xfb\x01\xa4\x93\xb7\xf1{\xa83\x01`\xe9D\x93\
+\xafq\xfe\x93\xef\xf6\xea\x15g \xedXGa\xfcs\
+s\x9e\xea\x5c\xf4\x82\x1d\x80\x17\xf5|\xc4\xfd\xc8\xcf8\
+G\xa97\xc9\x03aZ\xf2\xca\xd73:E\xa3\x92z\
+\x8d\xc6\xa8\xf6{_O4\xa0\xd0\xae#\x7f\x07x\xe2\
+sR\xe7\xea\xb9\x82\xc1\xec\xe2\xe3<\xd7\x8c\xd0\xca\xbd\
+\xc5g\xf9\xd5\x08u\xb1C\x00\x14\xee\x13\xbf\x87\xe7\x92\
+\xfaS\xf9\xcdd\xd9\x96\xef\x0dvz<\xd8JP\xbc\
+\xa0\xd1\xcc}I\x03\x17\x16\xa21\xaf\x0a\xf99\x82\x8a\
+?\x9a\x00l\xfc\xd1\xceo\x9e\xd0\xe1\x03\x00\x90\xba\xb3\
+\x17\xc4\xf4\xf7\xb1u\x00\x88\xe0\xcfl@\xf1\xdf\xff\x1b\
+\x0aR\x128\xfe\x9d\x9f\xcb\xfb@M\x11\xb1?T_\
+\xa1\x10\x81\x90\x08\x01s`\x00\xf1\x90?\x0a\x00Y^\
+\xd4~\x90#>/\x859\x0b\x14\x00\x81\x9f\xc3\x82\xeb\
+\x03\x1d\xff\xeb\xf3\x8d\xb5\xd0\xf8\x5c\xfc<\x0a\x196\x22\
+\xae+\xafs\xf7\x5c\x10\xe6\xee!C$\x08\x0b\x05\x8d\
+\x868\xa2\x01\xa3aeu\x92\xd7\x97\x98\xdf\xc7\xd4I\
+\x9f\x22\xa4\x17\xbb,\x1dd\x14\x80\x8e\x043k%\xaa\
+\x8cop\xfc=35\xd8\xd9\xe0\xab\xca\xfbGE\x96\
+\xeb\xc5ue\x16\x1d\xbb\x17\xcd\x8a\xf9\x03\xa6\xfb\xe0~\
+\x9b\x5c\x07%\xee\x9e(\xce\xa3\xf5.?_\x0a-\xf7\
+o'A\x10\xc5\xc6U\xf7\xcb\x7f\x01\xa1\xe4\x00b\xc3\
+`\x03\xd4l\x8e\xab\x823\xc3\xf7\xb0Ec\xc883\
+\x01\xfb>\xd4\xf3E1\xf7N8\xbe\xc9\x88\xc4\xb0\x01\
+\xb1!\xf3\x9c\xb1\xa1a?\xa2\x7fw\xb5^\x1d \xee\
+\xef\x0bR\xac\x0d\x8e\x99:W\xd7\xd7\x0c\xa9\x8b=\x22\
+\xde\xc6\xa8\x07\x89)\x9d{\x89\xf1\xb9\xca\xbd\x00\x02f\
+h\xdd6\x8c\x9f\xa7\x11\x01\x07\x02D\xed\xc6\x16\xcdU\
+\xc9)$\xed \xbf\xa9 \xc9\x17\x14$\xf9\x95Z\xc8\
+9u\x8fB\x0f\xb1\x1d\x0e\x5cf\xac%\xa2G\xe2\xe2\
+3\xb2\x00)P\xe7a\xac\xa0b\xab\x83\xcc\xa9\xa3}\
+J>\x0c\x1dQ\xa0\x9d:\xc8\x01\x87X\x0b\x8c%:\
+\x9b\xa2\x90\x17\x09\xbd\x1d\x02\x85\x8e\xe7\x1b\x00\x0d\x0a=\
+\xeb\x8c}\x85\xbf\xc7\x16\x13J\xafD\xef\x00.\xd2q\
+\x16\xe5\xf7V{\xb6;e\x1b\xa6\x02l\xbc\xab\x985\
+t\xda\xe9D\xe0\xe3\x0e\xa3\x02\x9fc1\x1b\xc6\x0b\x8c\
+\x17\x1c/\xd0\x00\x1f\xee+\x89W\xe9$\xffF3\xfc\
+K\x17[\xb8\xabl=\x94\xb4\xe5\xbc\xd01\xc0\x1d\x00\
+\x7f\xed)\x16\xa1C\xc3~\x80\xdd\x9aD\xf2(\xb8]\
+=_@Z\x9a\xd1\x22\xff\xfd\xcc\x16\xcd^ntR\
+M\xdca\x10uw[\x041P=7\x9eh+\x01\
+s\x86\x86\xa5-\x7f\xd0\xe7}M\x0c\xa3\x8f5?s\
+f\x03\xd9\xa6\x99\xed\xf4\x91\x0a\xc4_e\x83\x08\xe3'\
+\x17\x16\xd3Y\x01\x04\xb3g\xf8\x80ExN`\x86\xb0\
+\x8f\xd9\xea\xb9V\x0c\x8cO\x07\x1b-FG\xd0|P\
+\xe20\xdc)G.\xf8F'\xe7\xf8Z\xeb\x1c\x17\xe0\
+\x7f\x85\x90\xc0\xda\xae\xbem\xe9\xe4U\xc6\x17v\x86{\
+\xa6O\xa6O6\x91?l\xc6\xa0\xf2{gp\x16\x8b\
+\xfc\xef\xc3j\x9b\x89\xa8\x97\xdb\x88\x22\xde\xc9\xfa\xd7\xfd\
+\xa1\x83\x02`A\xe1\xe4\x9d\x22\xd4\xfb\x05\x04\xa5W,\
+z\xa3\x84\xa1\xc1\xe0\xefK\x00\xe4x1\x8b\xc6t\x02\
+\x10\x1d\xdcl\x11\x00o\xf6\x01\xed_\xf8\x81\x17\xd1\xb6\
+\x95\xb5/\xed\x13\x0a\x11K\xb7no\xa2\x81\xbe\x9fj\
+t\x8d}\xcd\xa4nM\xec6]m\x11\x1a)\x07T\
+\xfb\xde\xee>\x8b\x90\xcf\xc0\x5c\xa3#\x85\x18\x19\xe7\xb6\
+\x9eS\x9eO\x18l\xb8*\xf8\xbe\xa2\xe7x\xbcq\xed\
+\xe0sn\xa4\xe9,\xdas\x86\xa8+b\xbb.\x0a{\
+\xad|\xe6\x054t\xff\x91&\x80]\x8f\x15\xd5\x01]\
+R\x1d\xe1]$\x9a\xfbJ\x1b\xa5*\x05\xf2\xd6\x121\
+\xde\x5c\xcc\x8f-\xda\xbe\xd9}\xc1\x22\x88\x0d\x8a\xda=\
+\xba\xccB\x9a\x01\x875u\xf7\x02\x80N\x0d\x0d\x05\x03\
+(\xb6\x0e3\xd5V\xc0#z8\x97\x80\x91/h\x94\
+\xef\xc1\xe0\xe6\xf0O\x8b\xfc\xf3\xffl\x91\xff\xfc\x7fu\
+F\xdf\x01\x81)\x16\x0d\x18c\x96\xbc\xdb\xd7\xa2uT\
+}TQ@D\xfa\xadE\xdb\x8f\x0b\x03\xe6\xdda\xb6\
+\x9e\xfb\x09@\xaf\x06\x86\x8b\x122\xbb\xcf\xf3,f\x1d\
+\xb3\xfc>\xf3\x0d\x19vn\x0b\x01\xcck\x84s\x86\xfc\
+\x1713\x18tb\xee\x16\xd8k\xe1\xca\x80)\xe2|\
+\x00H\xe45\xa2\x0a\x8f\x0f\xb4(\xfb\xfc\x02\xb6\xcf\xbb\
+=\x9e\x1a\x19^`\x03h\x03\xc8\x7fg\xe2\xbbE\xd3\
+F\xfbt.\xfb\xcb(d\xd1\xeaY\xae\x896c\xbb\
+\xdbM\xb5\xc8\xaf\xdbt[w[7\x06\x8d\xbb&]\
+b\x11\xf2q1\xa8\xe8(#\x1a\xe9\xd7G\xf9Wp\
+\xe5(\xf9\xafw\xe0\x05\xe0\x22\xb2\xe7\xcf\xbf\xec\x0f\xbd\
+ c4\xcb\x06\x04\xb7j\xa2\x85.\xd6\xacF\x91\xe7\
+\x03\xdc\xdf\x97-\x82;\x85\xec\xab\x07?\xb5\x08\x8c7\
+\x0aU\x1b\xa5\xf9x\xa3\xe2\xbb6\xd2\x01\xca\x8bh \
+P\xa0\xc2\xc0\x85\xe9\x00\xa3\x99\xff(\xb4\x050\xa0\xb1\
+\xe3y\x9dF\xb7\xbc@\xc7\xa6\x0e[g\xf6s1\xfa\
+|\xff\x81\x12\xcf\x88\x10\x85:y:\x859\xae\x03\x14\
+\xa8\xd2.\xf0\x91lD\xcda\x1e\xc2\xbcD\xbb\xe9\x0e\
+\x8b\xd0\x81\x07\x18\xe9\xd7U\x88<n\x94\xb3\xf0\x8d\x02\
+\x03\x97\x86\x95\xf2i\x1fY\x80\xf9N]\xc5A\xcd\xba\
+\xa7\xe1\x88\x9b\x18\xa2\xf0\xd4k\x00\xf30\x918\x07\x18\
+\xe1\x10\xf3\x10\x0d!\xcf\xe7\xfbu\xa5\x98\x04n\xd3\x8c\
+-5\x1a#4\x96hp\xc2\x8c`\x94\x8d\xbaC\xb6\
+\xbc\xfe\xbc\x937\xd2\x10\xa4\xf0'\xcfR\xfe8Y\xca\
+\xe27\xeb\x00\x9eE\x0blu\x15\xb63\xb4/t\xff\
+iK[\xd6V\xa1\xbfa\xa3h\xf6E\x04]\xec\x8b\
+\x05\xca\x0c\x04\xd4\x08\x0aM\x1e\x18\x12nT\xe5\xa1\x1e\
+\x93\xe8\x02\x18p\xd0\xf75\x00\xf8>\xc4\xad\x98\x91\x06\
+\xf9\xd0\x85\xf0\x9f\x0b\x02N\xc7\x1e\xd1%(0\x88B\
+\xb0\x90)(\x00\x0c\xee\xac\xb3x\x83\xf7\x88i\x00\xc5\
+C\x9d\x07\xa8BN\x85\xed\x17\xfe\x14\xb2,\xc0\x81w\
+\xfe+\xa0@\x01\x97\xf4@s#)\xdc\xf9\xfaq\x8f\
+\x91\xe0\x19\xa7\x8fI@\x91a!\xd4\xcf\x03\xb2\xc9u\
+\xe4>\xa0A\xd0(.\xc5\xc78/\xb2\x8a\x98n\x22\
+\xa4\x8b\x8d\x8f\xeb\xa9\xf7\xeb\x9d\x1e\xfcG\xe9L\xfeX\
+j\xfe\xdb\xc8\x97\x5c\x9d\x10_\xb8 \x89\x14\xbaB\xa6\
+\x9d\x22*\x7f\xe3\x89\x8f\xab\x937\xd6\xe7\x13\x92\xe5\x85\
+\xf9+\xb2}b\x06\x8a\xc4\x11\xaa\xbc\xec\xd4P\xdf\x1f\
+\xfcNj\xccPPq'\x10\x22\x8a\xbao\xff\xd55\
+\x0c\x10ud\xd4\x01\xe6\x08\x07\x09\x1b\xb2\x90\xe5\xee\x0c\
+\x8b\xa6\x82\xcc\xf3\xe0\x1d\x02\x18\x13*\xb0];A\xaa\
+\xa1n\xb7\x85?/# <W\x00\x1d\xfc^f\xc3\
+A\xb4\xd5\xf9\xf4\xcf\xc3\xf2\xd1L\x19\xc0\x87\x8b\xad\xe1\
+\xd7.\x0a\xac\xfb;#^\x22\xaa\x9d\xffY\x08\xb0#\
+\xf5\xccj\x89\x22\xe8\xcc\x06\x0e2\x10t\x0a<\xf6\x0b\
+\x9e\x03\x9e\xbf>@\xf5f\xed[<\xb7\xdc\x0f\xb4\x0b\
+\xb8\xffb\x96x\xe7\x1e\xdb(\xd6\x1d\xef\x83\x8e0\xb6\
+F\xea\xe88b\xad}\xc6?\xa7\x18\x03N\xf1\xe5\xba\
+sP\xa0>\x0cr\xcc\x01\xc4\x8c\x1e\xd4miXP\
+`\x0d\xfe&\x7f{\x18\x0c\x008\xfb\x95h\x80\x05\xa2\
+\x7f:h\x9cQ#\xdb?\x1f=Bl\x08@\x82\xcf\
+\x83=\x10\x8c\x0d\xd9\xfe\xd1Q\xcc\xc5Y\xe9<\x96O\
+5\xb7\x983\x7f)\x1a\x1eE\x1c\xc9\x13\x04:\xe1\x02\
+\x94\xdc\xe6\x0c_j\xf9\x7f3\xc3Na\xca\xaciY\
+g\xcb6[\xbfb\xaf9\xa7|\xc0\xef\x0a\xf7\x89\xce\
+1\xeb\x19\xc0\x8c\xf5\x00\x02\xaf\xe7\x82\x0e\xabi\xca\x9b\
+\xaa<\xa3:\xe9\x12\x8bF%N\x0fY\xe4\x02\xe05\
+\x8b\xfc\xfe\xaf\xb5hb\x9fnC\x8a\x9d\x0f\xe2`7\
+\xe6\xb8I*\xf6_\x0d\xebG\xd7\xdfU\x83\xb5\x1e\xd3\
+\xa5\xe9\xb2tY\xd9w\xca>\xc5\x8ce\xba\xab\x8a\xda\
+y\x82\x88\x0b\x89\xdc!\x10\x11Mo\xb7(vr9\
+\xda\xba\x1b\xdd4\xba\xc9\x18Dv\xf7\xd2sAtO\
+\xda/.\x82\x87\xd6\x841\x14\x9e\x16\xa5\xf0\xd0\xd6Y\
+\x85\xca\xc9\xa8@\xda\xd5\x22\x7f\xfdt\xfa\xbe\xeb\xd5\xb1\
+\xbd\xa8\x02\xb6hT0c\xee\xa3J\x9a\xb5O7X\
+\x14\x86J\xd9G|\x86[\x22\x98~\x9e\xae\xaa\x99\xc8\
+\x95U(\x7fN\xfe\xf4C\xcd6+At\x06\x04\x9d\
+;f\x92\x11\xaf\x95\x9b\xc0p?\x8b\x90`\xa2\x0a\xae\
+\xe7\x11\xea;\x1a\x0f\xee*\xb0\xb1\x85\xdc'\x1ej\xeb\
+\xccN?\xeb\x8c\x97B7'\xc2\xa3Ss|#$\
+rP\x86\xed\xa7\x7f\xa8u\x96\xd0\xbaI7[\x04\xc6\
+\x0fR-\xbbW\x11Mwa\xc2>Q\xd7\xb5\xaf\xcd\
+\xe2\x1a50\xeeH\x88\xf5\x1c\xa4\xafY\x84\x11>\xb9\
+\x0a\xa4\xcd-\xf2\x9f7\x93V\x80\x0a\x90\xe1m\x16\xad\
+c\xd4\xbdl\x91_o\xb0\x08\xaa\xdb\x00\x02\x14T$\
+\xde\x00l\xb2\xb7L\xdf\xb7h\xae\x0f\xb9L\xaf\x1dq\
+\xdc^\xfe\xad\x8e\x1c\xccH5$P\x85\x1f\xbd\x9c\xe3\
+%\x15\xe4/\x141\xc6\xd9\x8b\x18\xa3\x8d\xa6\xe4\xf77\
+\xba\xd6\x22\xbf\x1ee\x11\xecU\xe9\xa0\xc2pc\xe4I\
+y`\x11\x8d\xb5\x06\xc1\xcc\x16\xa2XOm\xa3_\x0e\
+\x00\x5cR)\xfd\xa3\x8d,\x1a@\xe0\x05\x8e\xfc\xe3\xdd\
+~\xf3\xe3\x16a\x84\x0a B\x05\x15\x89\xbc\x17\xe2\xe4\
+\x05h\x8bP \xabS\x8d\xa8\x18\x8c-\x5c\x87\x1c8\
+\xe6\xf7\xb0\xfe\xd1\x9eQ\xfeU\x1a\x0c\x8f6-\x90b\
+\xaf\xf6\x93 \x92\xfc\x8cE\x03\x18\x00ZK\xd6\xb3h\
+\xdd\x0f\x0a@\x85\x18\xa9f\xe3\xfd\xfe\xd1h\x10\xf3\x8d\
+\xf7?\xde7\xc7\xa7\x1a\xf3\xcc\xc5\xf8d#\xc9\xf9:\
+\xfc\xcc\xf0\xe0\xe1\xc1m\x06\xbb\xfbH\xb7S\x97\xf7\x9d\
+\xd1\xf6\xa3\x1dF\xdb\xe7\xd7dQ\x80\x80wuuF\
+\xbd\x00+\x85YrB\x03D\xc8\x8bp_\xa2A\xe3\
+\x89\x0c\xd4|\xa9\xfb\xfbsJ\x83BL g,i\
+\xd4\xca\xf3\x07\x00h=\xd7\xe9\xad\x16\xa1q w!\
+\x17\xe1E\x5c\x91\xfdB6\xb50\x7f\xdd\xedI\xd7\x1f\
+\xca6\xc0\x9a\x8b\x0d\xf2\xbe\xfb\x05\xb1\xf6\x07\xef\xb0c\
+o\xa9FU\xf7\x8c\x85\xce\xcfS\x02\xc3KZS\xde\
+\xf8\xa4.cD\x13\xc6\x1fb\xd9\xd8\x15J[\xc4\xed\
+Ea~0\xfa\x06\xb3@\xa3\x18\xfe\xef4(`\x9a\
+\xc0\xeccD\x11\x97*F\xfbX\xd7\x8c\xa0\x8aQ\xe4\
+*\xf6\xda\xe7\x06\x9f\xb0\x08\xcf\x91\x00b\x18\xb9}\x17\
+\x832\xaa\xb1YiL\x14\xa6\xa4\xd7K\xd8\xcd\x92/\
+\xf65\xcf\xc8\x97\xb1\xc54\xd1\xd2/\x14\x0d\x87SM\
+#\x87\xe7\x1f\x06%\x22\x8d6`VF\xcc\x00\x0e\x04\
+\xe4\x226\xe8n\x12\xd4\xa30\x01\xf8\xfc4<\xd5\xb8\
+D#\x0a-\xa6\xbe\xb6\x9a\xffG\x83\x95\x86/\x801\
+\x9f\x17&\x0c\xf7\x01`b\x0d\xd5sj4O\x96\x89\
+\x89\xff\x93\xdf\xe0\xf5\xe1\x02a\x07H\xe1\xde\xf3W,\
+x\xc4Z!\xf1\x05\x00\xc8\xe5\xfa\x00u\xfee\x9b\x8d\
+\x9f\x17\xf80\x0dZ\xa7\xbav`y\xa5\xa0\xef\xbfR\
+\xa8\xf6l\xfb\xa6\xf9\xfd,\xf8>`@A\x1d)\x98\
+\x0b\x85\xd9E\x0a(>\x1f\xc0\x03\x88\xca\x8b\x8e8U\
+\x04h\x1e\xbd\xff\xbeV\x00\xea\xe4\xcc\xe83s\xcf\xfb\
+\xe4\xfd\xf1\xf9\xfb\xef\x0f\x06\x00\xc0\x00\x88\xd3\xcb\xfa\xfd\
+\x14T,\xa4\xbe\xaa&\x89\x01\x14\x17\x16:_7t\
+\xa6E\x05\x0a\x00$\xfe\xa9\x9f\xcb\xef\xe5}\x00\x1c4\
+@\xa2\x02\x0a0(\xe6P\xa2\x05\x13\x83\xfb\x08`\x01\
+\x95v\x0e\xdd/\x90(l9@\x9cq\x09\xa0\xf3\x09\
+U\xed*!\xeb\x8f\xc8^m\xceJ\xfduq-\x89\
+\xac\x8d\x1fp[\x97\xaa\xfa\xba\xbb\x90T6>D\xa5\
+t@\xb9\x88\xcb^\x9aI\x15\xc0`i\xba%\xeaP\
+\x8c\x99mt\xb1%u\xaesZPD\x99\xa6Y7\
+P\x85\xb9~\xbf\x16\x05j\xde\x9a\xe8\xf8\x8c\xfe:\x12\
+KTg<\xaf\x96J\xc5F4\xaf\xe7\xd7\xe9\xb3^\
+\xeaD\xe2\xd7\xce:B]\x9c\xc4\x1fq>\x128T\
+\x939\xd0\xa1v:BJ\xc2\xc2\xcc\x16\xeb\x9e\x8d\x89\
+\x99$\xee\x13\xb3IP\xf0)\xec\xa1^\x09\x11w\x11\
+Jm@\x06\x9b\x15\xe0\x0c\xb15\xae'\xd4Q\x00\x11\
+f\x1b-\xc1\xd8\xb7\x01 \xd8\x90\xb9:>\x94YD\
+\xd8\x98\xf9F\x1c\x91\xc4\xa0\xad\xff\xba\xd1C\x09\xd6\xcc\
+\xa9\x8b\xd7\xf4f\xbb\xbc\xf3K\xc1\x09\x13\xa0?\x0a\x05\
+B\x0bp\xa8\x0d\x9f\xc2\xc4)\x97\xb2]t\xea8\x85\
+\x10\x85J\x8fb\x89\x06\x85\x8b,\x91`0r\x828\
+\xcc\xd1\x16\xe1\xe0\xd1\xfav\xaa\xad\x12!_\xc7h\x0a\
+\xe8\xe7\x8cwVGT\x07.*\xdc\x14\xba\xbe\xdf\x98\
+rB.\x5c\x86\x9b\x0e7\x19\x9a\xe8\xd9\x0e\xdd\x87\xbb\
+\x1d\x02Sf\xa6\xf1,\xe6#\x9e\xcb\x88\x1bK!q\
+\xfa\xc4i6\xd2\xc3\x81\x84\xdf9v~\xa5C\xfbZ\
+SEw\xe0\x8b\x03W\x09\x8b\xfb\xa5o7\xf8P\xf1\
+\x81Gd\x92u\xaa\x02\x16`\xcb)t\xd8\xe9\xe8\xa0\
+\x06\xd0J\x17Z\xe4\xd7O\xd6\x8e6\x22\x82\xa3[-\
+\xf2\xfb\xff\xb0>\x17\x9dP\xa3\x14\xaf/[\xaf\xe7\x1b\
+\x15\xb4|\xdf\x8d\x8d\xd9\xe3\xcf\x01\xe2K\xcc\x90\xa3:\
+\x7fb\xedP\xf9\xf9\xa5\xd1\x04\x00\xa2t\xa6E\xb3\x0b\
+u\xe6\x8d\x12\xc5\xe1\x1d\x16\xc5\xe61Gs7(\x1a\
+&\x97\x89\x91\xf1\xa50S-\xc6OI\xd8\xed:\xde\
+j\x91\x7f\xce\xae9vQ\xe7\xec\x82\x96\xc0\x97\xc2\xff\
+c\xf9\xdf7\x1cn4\xdc\xa8u\xbe\x06\xb3Z\x14@\
+\xb7\xda\x12\x02\xc4\x9e\x5c\x0bp\x0aP\x80\xc3\xb4LZ\
+:-]\xd4\xd6+sd\x8d\xaa\x12\x0f\x03\x0c\xe0\xd5\
+\xa9\xc1J\xac\xd3\xa6\x16a\x84A\xcc\x05\x7fnX\xf7\
+\x00\xf1PbQ\x87G\x9b\x06\xc0N\x1dY:\x8b\x83\
+\xbfY4\xfbL\x07~\x99\xc5\xd7\xe8\x08\x00b\x11\xf7\
+\xdb\xa4ilx\xe7Gb\xa0\xddy\x16a\xe4\xcd\x98\
+A\xaf6\xe6HZ\xd1\x22\x9c\xf3\x02\x8aqK\x00\xd8\
+q\x0a\xb94\x08\xdcu\x06\x11<\xa3\xce\x1f\x1a(\xe1\
+\x88\xd2\xed\xdf\xed\xd7\xed\xd7Fy\xd2\xcd\xe9\x96tK\
+\xd1\x00\xd9*mU~\xfe\xeai\xf5f;\xe8\xa2\xab\
+\xda'\x1c\x90\xc6]\x00M\x1b\x80\xf8\x17\xea\xe8A\x11\
+\x91<\xb2\x01[\x14F\xe9z\x8b\xc6\xd8\x80\x99\x96\xcb\
+\xb3:\xaa\xc4(\x22\x9d4\xce\x0b\x15\xe0n\x83+\x91\
+\xbc\xf4\x0e\x8b\xbc\xfe^\xca\xf1\xa2\xa8\xc7\xa6\xc9\xb3n\
+\x8eu\xa4Uc\x80\xc5\x7f-\x82z>@\x90D&\
+]\x94\x0c\xc6\x8e\xc1/\xeb\xc9\xee\xf6\x9ef\xcf7\xda\
+\xcf\x22\xff\xf9\xe7\x16M\x83(=h\x11F0`\xf0\
+0\xbb\x8c\x9a<\x89=\x9df\x00z\x00\x5c18\x5c\
+\xed\x7fi\x8b\xc0\xf0<\xb8\xe6\x03\x83\xdf\xa8\x83\xcc\xf5\
+Q\x01bYF\xc93\xc8\xe7\xd8\xe7\x18\x11`\xb6\xde\
+\xca\xca\x1f\x06\x06\xa6eQ?\x09\xae9\xd8J\x02\xb4\
+K<\x94\x91)o\xfc\xa0\xb9\xc4\x0c9\xf9\xf7o*\
+\xa5\xdf\xf3]F\xe6,\xdb|4\xb8\x85!^\xads\
+\xcf\xc57\x0f)\x06\x95U+\xc9\xb4+\x8e\xeb\x8e\xef\
+\x8e\xcf\xd7\xff)\x8b\xfc\xe7\xcfu\x87t\xf99\xefV\
+\xb1\xc8\xaf\x9f\xb0\x08\xae\x0b\xb2\x15\x841\xea\x1dl\x18\
+\x8bP\xd4\x19\xb9\x83\x19\x83m,\x1dW\xe5\x974\x8c\
+\x9c\xe1\x0c\xd0\x88]\x1f\xfb\xb2\x0a\xed\xc1\xb3\x16m\x06\
+\x9f\xc6^\xfa\x89E\x189\xa6\x81\x08\xe3\x12\x91H\x13\
+\xbf\xfcu`\xbej\x1f\x18\xafd\xd1\x00\x0d\x17\x1dF\
+\x1c\x12\xd1A\x01\x80\xdd\x99\x16\xadS\x9f~-\x80Q\
+\x8c\x80\xee\xa3\x16\x81\x81\x04P\xaf\x82\x13\x1bhoL\
+ \x06MA\xcf\xe8\x1d\x80\x80F\x01\xbc\xc3\x0f\x83Z\
+\xe7+\x9a n\xeb\x08p\x00 \xcfsH\x01O\xa1\
+,f\xa5\x03\x03\xd8\x91\xd3\xf9gt\x01\xa6\x03b\x8d\
+\x00\xe4=[E\x17\x0dT>\xe5\xdaR0T\xd4\x80\
+\xc89Pet\xde\xa3\xc6 \xf9\x16y\xa2\x1a\xb3\x9c\
+;\x007>Jv\x86F54\x82\x09\xa0\xea\xf5\x1c\
+@\x1fu\x1bu\x10\xf5\x19\xf9\x1en\x120\x94\xd5\xe0\
+\xa1\xa3\xef\xa2~\xda\xafq\xb7\xf2\x86\x13\xccLD\x1d\
+%\x0e\xea\x22\xe5\xe4k\x88\x0e2\xda\x8b\xc8\xb9\xea\xbe\
+I\xb7\xff\xb1rwaQ/?\x11(\xfd\xf8`B\
+e\x81\x02J\xe1\xc3\xac\xbf\x0a\xdb\x92~3\x0b\xff\x9f\
+p\x03\x11\x17D\xcc\x0f\x1fc\x0aK\x0aC\xc4\x08)\
+ty}\xa5\x94\xde\xad\xd0\xa4P\x05\xf9\xe0\xef\xe9\xf8\
+\xf7E\x04\xf93\x1dr\x80\x00\x80\x03\x80\x00\x0a\x7f\x0a\
+\xc7y\xd49\x83:\x0f\xb0\x80(\x1f\x07\x1b\x85\x83D\
+\x1c|CEs\x00\x00\xa0\x8f\xdc\xb0\x00\xd9\xe0\x85\xa0\
+\x99\x14S\x11c\xdaB\x80\x0c\x94\x96\x15E\xe1\xe0\xba\
+B\x89\xe9\xd9\x1cr\xa0C\xbd\xf1\x02\x15\xc4\x0c\xfb\x0c\
+\xae\x1b@\x00#\x07\xa8|By\x86\xc2\xe2@\x8c\xec\
+\x8a\x9e\xae\x1du/\xc8\xae\xb7hL\x006\xb2\xc1N\
+\x12\xf1\xe2?\x80\x8a\x9bD%\xa2\x10\xd3\xe7p\xbf\xe4\
+\x15\xaa&\x85S\xd7PG\xa6#\x07\xd2,\x11C\xef\
+\x94\x22\xf6\xc6\xa8\x00\x08#\xf7\xf7\x00\x1d\xa4\x88\x92\xdc\
++\xe4\x91\x03\x06\xe6\x84\x90\xe3\xf1Z\xb2\xb7\x132\x07\
+%\xd2\x115\x1d$\xccT\xf9\x06\xb0O\x9dA\xf6\x0d\
+n\x19\x01E\x123\x19\x1f`\x11\xec\xd3\x0e\x12b\xbf\
+\xd8x\xd1\x222\x85X\xe2\xc5*\x04\x8f\x10\xf5n;\
+\x15p0\x1ct\xdf\x07\x13\x959\x91\xd3\x80\x8a\x18\xff\
+L\x22\x89\x14\x80R\x01v$\x96N\x19\xaf\xa8\xfb\xcb\
+\x17\xd9\x8ee;\x98\xfd\x80c\xb6\x89\x0e\xa3\x5c*\xdc\
+\xf7\x9c\xd9t:v$P$\xd8\xda\xb0\x06\xff\xb4h\
+\xd7\xdb;\x5ct8\x10\x1b\xe2\xf9\xa1\xf0F\xcd\x16\xe4\
+]\xeb\xd8\xc5\x11)\x9c9 \x10u\x02\xe9\x16\xa2\x0b\
+\xf5\xd0\xfdX\xb1uAD\x07J'\x85\x00\xf6m\x88\
+\x98\xbd\xdb\x22\xacw1K\x5cE\x17d\x99\xd1\x00\x18\
+\x0ct\x02\xf9w13H\xb8\xe8\xe8\x0c\x1e\xb7\x08\xd7\
+\x89\xfd\xee[\xb5\xb0\xe4\xef),]\xf4L\x1b=\x85\
+\xb6\x1f\x98\x88\xab\xc9\x87\xd6Gx\xd8\xb7e\xcb\xe6\x1d\
+\x10{*o\x12\xa5z\xd6`\xdf\xa6\x9f_\x00\xe3\x5c\
+\xe0\x0f\xf7\xb6\xd0h\xd4\x1f\xd5\x91\xfb}\x99M+\x80\
+Q\xf7d\x8e'\xd4\xc1\xb8\xb5\x01~\xc3\x0b-Z\xc7\
+\xb2\x00V\xf9\xb9JW\xe4\xb8<\xd8^\xa9\xb3\xe1\xfb\
+\xac=\xa7\xf7\x96\x83\xf4/\x85\xc1\xf0\xfb\xf1\x9d\xe3\xdf\
+\xbf^\x05\xbb\xb8\x81\xe8\xc0w1@\xae\x07\xae#\xa2\
+|b\xdb\x97\x8e\xb6\xc8\xafgY\x04\xdb<\xad\x8b\xd1\
+\xa5\x16A\x1b\xc3\x12\xd3\x93\x82f\x85\x00\xad\xb4\xb8E\
+p{\xa0\xc3\x83_\xb4:\xb3t\xb0\xbd\xd0\x17\xb0\xe3\
+\xda\x06\x8cJ\xc1\xa4\xd2\xbf\xa7\xe9-\x04\xc4\xe5\xfb\x94\
+\x96\xcc\xb1D\xb35K\xfbX\xb4?\xfb\xfe%q)\
+\x17\x1d37\x8d\xbd\x8aH\x5cU\xc9\xb7\x02\xf1w\xe5\
+y8\xc8\x9e\x87\xb4vZ'\xad\xd3F\xe5\x06\xebX\
+\x84\xf5$\xca*\x09\x9d\xfb\xb5\xc3\xa0\x92=\x5c\xfaq\
+\xfaQ\xfaQ\xd0\xf4\x90\x0b\x03\xcf!\x9dT\xb7q\xd4\
+\xf3\xe7\xa2\x8f4\x0e\xc4 \x02\x10\x05\xd0\xed\xd6\xb0\x08\
+\xe7\x92:y\x0e\xac\xa2Q\x80F\x09\xcc+\xceM%\
+X\xe9\x0c\x8b\x22n\x98\xa3\xa9\xef{\x9ep\xee\xc4w\
+\xcaL\xb5\x80IF\xc8\x109D;\xa0\xb8\x1e\xe4\x84\
+wx\xaaE\xfe\xfb\xa3,\xda\x88\x81\x8b\x182\xb2\xc2\
+\xe8\x8dD\xbd\xf0\xa9vJ\xae\x0a\xc9\xf2\x1c\xd9\xfd=\
+\xdb\xa2\xed#>\xf2\x82\xf8\xae:\xc3\xe9\xb0\x0a\x18\xa4\
+\x0d,\xc4\xa8\xf9CH\xc8\x11\xbf\xd2H_\xb7r-\
+\xbc\xdc\x95An+NIU\x82\x89\x0b\x05\xf7m\xf8\
+6\x8b\xa0\x9e.\xf5j:\xa8t|\xdd\xe5\x86\xd9z\
+\x8d\x0euo\xb5\xc8?\xef\xf4\x1c\xdfT\xe7\x7f\xf6\xc2\
+\x8c\xc9\xd1FL\xb0\x03\x1c\xaf\x9dc\x9d\xf6|\x8ef\
+\xb5\x90\xcd\xe6\x16!\xef\xa2\xd1B\xc2m\xa7\xdb\x9bZ\
+\x02]\x00\x85|~u\xbbY\xb4\x02`x\xa4E\xd1\
+\xba\xc8\x11\xf2\xaa\xde\xf9H>XF\x99\xae\x0a\xff\xce\
+\x0c\xb5|\xe9\xfd}Q83\x1a\x88\x88\xae\xf2\xbb\xf1\
+\xc1\x15\xc8\xf2\x99l\xdd/\xa7^\xcb\x16\xb8\xfb\xb1E\
+\xd0LB\x9b\x07-\x07\x98\x92r\xf3rj\xb9\x5c\x8c\
+\xfc\xcf\xf8\xb3#\x9eL\xe3\x00\xd17\xf2B\x0a\x09\x00\
+u\x1ag\x88\x1aj?\xf1\xd1\x0c\x03\xe0\x8e\x08\x22\x9e\
+Z\xc7\x00\x1a\xa3\x0bF\x17\x8eLKa)\x8b\xfc\xfa\
+C34\x0cZ\x12\xd2^\xe2\x9c\xa0\x81\xe1\xa2\xbf\xd8\
+j\x0b\x98,\xf6\x91g\xbe\x81m\x1f\xf5\x04\xcc1\xee\
+\x0b*\xfa\x12/t\xa0\x8b\xfcF\x1dz\x1fa\xa2\xc0\
+W\xfe\x96\xb6\xb7\x08\xfb\xd7\xb8\x96\x13\x8c\xac\xf9L;\
+\xf6\xc6\x88\x98j\x7f\xeck~a\xb7\xe9ZK\x88\x5c\
+K[\x8a\x11\x1b\x1a\x1d\xc3\xe5,\x02p\xc0\x8f\xfb\xa9\
+E\x00X5\xe2\xe8\xa2\x83\xfa9\x9e\x870\x12\x85\x9d\
+ \xf9\x17\x8d\x08\xfe\x03\xe8\xa13\xaf_\xe8u\x01b\
+\xc8\x00(4\x18p\xdd8\xcb\x22<\x1f4^$:\
+\xe8b\x84\xeaT{c\x05&V\xdf\x0e\x9a\xd9w\xc4\
+\x12\xc50\x80\x99\xc9:s\x00\x82\x06\xc0\xdd\x16\x85!\
+X5\x0a\xe8\x8c#F\x8c\xfd!\x0cI4\x5c\x10\xaf\
+\x85\xd1\xb9\xb2\xf6\x97\x19U\xb7\xc2\x88\xa2\xc0\xe7?\xea\
+9\xea\x1c\x98\xa5j\x049\x93\x11\xe63\x05?\xf9\x17\
+\xff\xa1%\x05#\x82:\x02\x97/\x8d\xe6x#\x0f\x97\
+\x03\xea)\xec\x199G\xb9\x8ej\xc0N\x82\x9c\xfa\xc2\
+\x80Z\xc4\xc6\xff\x88EH@\xa1,\xb0\xc1>[\xa6\
+2\x9b\xef\xa5Q[\xee\x0a#\x04\xf8\xad+\xb1\xf17\
+\x02\xb3\x00\xbb$\x0aP\xfd\x1e\xfc\xcd}\x94\x80\x07\x1a\
+\xc0\x81\x0b\xffR\xf5\xfd\x9df&\xa4\x0f\x14\xf0\xf7$\
+\xde\xbc\xf6U$gPGM\x1d\x8f\xbci\xbf\xde\x1f\
+\x92\x0e\x1f\x1d\x7f\x901\x0a{\x98\x12\xbc\x1f\x0au\x90\
+!\xfe\x8c8\x09\x14\x5c\xc4\x22x\xbf\xcc*\xdd&\x84\
+lk\xf9\x86K\xb4/_\x9dbG\xe1Z\x04|^\
+n0\xb61\x12\xb7\x1al\x5c\x0b\x16/\xec\xe5S\xee\
+3>P\xf3\xf8\x8f\x0e\x95\xc4\x01]\xbcH\x1d4\xae\
+g\xdeN\x8bz|.\xd2j\xa7\x1f@\x86W\x80\x06\
+\x12\x8e'\x04@\xf0\x00p\xdf\xfb\x0f\x906\x0c\x93\x16\
++\xe2b$x z\x8c`,$\xa6\x05#\x1d\xba\
+/n7\xc7\x06\xc5z\x05\xb8\xb9W~\xc5\x8c\x0e\xa0\
+V<\xa3E\x13#\x84\x82\xd6Mo\x91_\xdf\xa5Y\
+@\x0e6u0\xfc~\xcf\xa5\xd9S:~t\xa4\xa0\
+\x84I,-?U\x7f\x1d\xff5P}\xee\x92?'\
+\x8c\x8b\xc9\x1eS\x03\x91\x18Q\xc2\xf2O\xaf\x1b$\xe2\
+.\x12i\x1b\xef,\x91B:\xec\xf8\xc7\x92\xb8j\xb9\
+\xfb\xfd\x86\x1a\xa7\xd7\xee:\x8b\xe0S\xcf\x81\xab\x0e\x08\
+\x85S\x7fv\xd7;\xb20\x04H\xd8\xd9@\xe9\x98\xd0\
+\xc1G\x95_6\x7f\x14ftL\x98\xcd\xf5\x0e\x04\xbe\
+\xe9t\xba\x99\xf5\xe7y\xb2\x89\xec\xbb\xc3\xcc\x22\x94s\
+(d\x00\x89h|\x90\xd8p\x82\x92\xe8ac\xc8\xef\
+\xe7\xbac?\xa8\xce4\x9a\x05\xfe\xfe\x98\xf5\xc4F\x09\
+\xed\x00\x10\xe99-\xc2\xac\x1a\xb3\xcah94@\xac\
+\xce\x9e#j'\x9fx\x7f\x8e\xe8\xd4\xcei\xd1\x18'\
+9\xed+bX\xfe\xbe\xd4\xf9B\x8c\xd1;\x9d\x003\
+\xe7\xea $\xb1b\xdf`t\xe5\x83\x13\xdb\x16\x80I\
+\xd7\xdd\x01\x19\xcd\xa0\xa7wZ\x84}\x0a\xffh~\xbe\
+\x90\xf1\xa2b\xffR\x10\xb7\xd2\xe5\x1e\xcdb\xd1:o\
+\xe9\xc5\x1c\xff\x12\xd0\xb8\xa1\xd4\xc7?\xac\xfb\x9b\xf7\xcd\
+\xb4\x9fE\x10'U'\xc5\x0b{\xbdO\x12o\xa8\xf2\
+\x0e\xf8\xe0\x9f\x8bj\xb5\xf6kf1Id'\xff`\
+\xd1:o0@\xd2O-\xda:\x1fM\xb1\x08~\xf3\
+0\x1aT\xb8\xba\xb8\xe2\x9fkB\xe7be\x9a\x01w\
+\xa0F\x22]\xe9a\x8b7\xa0\x8cCee\xa6\x1d\x97\
+\x07+\x04\xcfi\x1d\xe4R@\x9d\xd6f\xe2\x0b\xf5\xff\
+\x12Q\xeeon\xd7\x8f\xfb3|\xc0\x0c\xed\x82\x9a\xf8\
+\xab\xea\x5c\x0b0v-\x0e(\xa9\x8cB\x00\xf8\x1dQ\
+\xf7\xb5t\xa3E\xd1\x80\xa9\x85\xbf\xd6k~\x97E\xa5\
+\xdf\xed\xf8\xa6\xb7hZ1\xfes\xa0\x1ck\xb6\xd1\x81\
+-F\x8f\xd0\x00\xd1\xfd\xf2\x8e\xf39\x16\xf9>\xcfh\
+\x91_7\xb1\x08\x22\xb4\x12\x97\xf5\x91\x16\xb4X\xfec\
+\x11\xdc'\xf4~\xd3\xfc\x16\xad\x03\xed\xfb#@=\x9a\
+)&\xba\xb4[K\xec\x87\x8f\xe4\xf8Kp\xb1@M\
+\x1b\xd1M\x98D\x8bV@\x97\xce\x1a\x1dy\x07\x10q\
+\xd9\xd8\xf6\xf5\xaa\xfaN\xd9_\xc2\xa2\x8d\x16\xd0Y5\
+\xc2t\xb1\xb9D;F\x80%\xa3\x1f\xc3\xafY\xb4\x0e\
+\x92'\xfe\x02\xde\xba=,\xc2\x88\xe4\xbduF}x\
+\xe1\xf0\x22\x03\xe8&\x96\x99X\xca\x80\xea\xd1^\x16\xc1\
+\x8e\xf1\x05\x8b\xfcu\xe5\xbf\x06\xd89\x10\x0b\x13R\x1a\
+\x08\xe4{<O\xa3_Z\xe4\xdf\x7f\x8fE\xfe\xf3\x13\
+\xa3\xc7G\x8f\xe9\xfb?\xde\xec\x09)x\x11I-\xe7\
+\xd3\xb1\xc1\xe6\x8b\x0e.\xa3\x97\x00(\xd8\xbd\xd1QT\
+\xa1\xe8\x22\xc3\xd2|\xc2\x068\xado\x91?\xcf=\x16\
+\xa1@\xa4\xd0\xa2\x91\x01#Ebn>\xe2\xa9\xd12\
+/\xd0aX\xe1\xbbM\x9eH\x81\x0aP\x09#\x8e}\
+\x8c}\x18f\xdc\x1c9\xe6\x94\x06\xc5\xb7\xc2L7n\
+L\xea\x18;0\x8f\x8f\xfc\xaf-\xc4\xf4\xd8K\x9d\xe0\
+\xcb\xc3\xc8\x9b\x01\xbc7\xb4\x02\x83\xe7\xa1\x949\x1ft\
+\xa9\xeb\xd60\xe1\xbc\xfe\x8aE\x98=\xc6\xb5b{\x8b\
+\xfc\xf9\xcf\xee\xce\xe9\xcen\xbf?g\xaf\xb7Y\xfe\xda\
+\x1dg\x91_\xef\xed\xee\xeb\xee-\x8d\x85\xe2\x8a\xd4\xfd\
+\xcb\xa2\x00\x08\xe5\xfe\x8e?'\x95\x7f4\xa1\xc8\xd3\x99\
+\x85\x86\x0a\x8d\xcb\x91\xf2\x1c\x00}\x1f\x99\xa3^\x80\xf1\
+G\xfeA\x9eL\xc3\x0e\x1fw\x80C\xd6\xc3\xdd\x16M\
+C&}\xd6\xa20\x9b\x96M\xcb\x96\xf3\xef]\xe9]\
+\x81a\x8b\xca\xfd{42\xb2\x85\xde/\xd4\xebk,\
+\xa6u;r7+\x89\xd5\xc2xt\x11N\x80l\x89\
+\xff\xfa:\x06H\xc2\xce\x14 \x0a\xe0\x0d\xf1j\xed;\
+0O\x5c\x1cW\xdd\xfao\x07\x00\x00 \x00IDA\
+T\xcfA_\xed\x1f\xe0\x00\x80\xdf\x99\x97\xca3\x1cp\
+Q\x83\xcd\xc5\x02i\x94\xf0\xdc\xc1dE\x14\x16q7\
+\x18\xd1\xfc\x85\x185>\x0a)\xa0\xd6\xeb\x02:\xda\xe4\
+Y\x8c\x1c\xd0ha\xa4\x15\xbbg4\xbc\xb8\xefP\xe2\
+a\x8c\xc1$aT\x93<B\x007\xc0\xa47\x84\xa9\
+\x17`>\xbcS\xf5\x0f\xae\x13\xf7\x1b\xf780\xa8\xf9\
+\x5c\xd4\x814t\xe52\xe6\x0c6\xb4\xcaxe\x04\x85\
+Q\x0b\xf2f\xf2T\xd6\x0b\xef\xaf\xef.@\x1eL~\
+\xab\xe7\xdc\x1b\xb74\xeci\x80\xe3\x02P\x1e\xe3\x8d\xa4\
+b\xf9\x96\xb0@\xa1\x922\xc3\x0d\x85\x96N6T\x1b\
+\x0a3n\x18\x17>\xaa\xe4O\xb6\x05\xe5o\x0cM\x01\
+\x12ofM\xedc\xce\x13~\x1e.\x00}\xaa\x06\x05\
+\xd2\x94\xd2\xcb\xaa\x05\xfc\xf4\xe1\xc2\xf3\xa0\xd3\x89\xd5\xfb\
+\x9ff6\x9f\x07\x98\x02\x9d\x0b\xfd\x9c\xc4\x1bH\xe4\xf8\
+\x5c}\xb7\x00:\xea\xcc\xa6@\xc1\x82\x0a\x05#\x80\x8d\
+\x9d\xc2\x9a\xf7\xaf\xc4\xc6\xa90P\xcdXx\xf7\x09q\
+\x86\xa2\x0c\x02\xcb\x0c\x0fH\x1cj\xb2}w\x02(^\
+C\xa9\x9b\xb2\x00\xa0\xa6P\xc8k\xe6\xcc\xaf\x0b\x9f\xef\
+)=p\x14(P\x98\xb8o\x93\xba.\x14\xae\x5c'\
+>/\x88\xe1\xd3\xe3\x7f\x8c\xff\x11\x00\x1d\x00#(|\
+\xb2M\x19\xcc%1\x1b\x90|6\x004\x076\xb3\x08\
+\x07\x193\xf8\x1c\xb0\x5cw\x00\x95\x0f\xea\xdfy\x80\xd5\
+\x81\xce\xc5iu\x1fP\xc7x<\xa8\x1d\x18\x90\xe9B\
+}\xbe\xb1\xd9\x1d1k\xd5\xad\xa9\x8e\xd3\x92\xa2\xaao\
+ qD\xc4\x10E\xcdw\x11.\xc4\x97\xe4\x0f\x8f\xc8\
+\x10\x0f\xaa\x8b\x02}_3f\xa8g\xaf\x90\x96O\xcb\
+\x97\x0d\xae\xda\xeb@1\xdcM\x85)\xaa\xb5\x88\x89\xd1\
+1\xd5,\xf7\xc4Oj\xa1\xed\x0c\x10f\x89(TQ\
+MFLD\xeb\x80\x0e\x18\xfe\xc1\xeeW/D\x1c\xf1\
+\x1d\x0a'/T\xf0E\xa5\xb0e\x06\x89\x83\x9b\x8d\x1f\
+D^*\xa5\x14l~P\x22rD\x87\x1e*!\xa3\
+\x10 \xed\xac3\x10\xe27\x15U\x80\xa6Y\x82\xcd\x11\
+\x05;\x85-\x1b>Z\x15\x88\xe7\xf1<\xf2|\xb1\xc1\
+\xa2\xae\xcb\xfb\x04\x09\x86b\x0cE\x1f\xb10D{d\
+3\xe3\xc8\xae\x80\x1e\xa8\xe2}F\x80#\xbb\xa8\xe0\xd3\
+qa\x1f\xa6\x80\x5cI.-O\xab\xc0\xb8\xa1\xce\x8a\
+{!\x85\xf4\x87\x9e\xfb4\xb3E\xe8\xd8\xeeW;7\
+\xdc\x07\xf7{\xc7NO\xf7\xbd(\xc1\xe0\xd7\xfc\xce\xd6\
+As \x0d\xd5u\x012\x0et\xd1\x19\xa2\xb0\x16\x00\
+C\x87\xc8\x08\xcbFY&\x01q\x91+\x0a\x05\xddO\
+fs\xcbs\x93\xaf\xcb\xe4\xa9\x16\xf9\xb6\xbfl\x11\x80\
+\x16FQ\xa0<\x02\xf80\xfb\x09\x05\x18\x86\x00\x094\
+\xebA\xfb\x9cw\xde%V\xe5\xe2x<Wg[L\
++zD\xe2\xcb\xec\xb3k3\xd0\xa1\x82\xb2'\x800\
+}\xc4\x22hl(\x81OO[\xe4\xd7\x97,\x82\xeb\
+\x02\xd4\xc3\xbd\xca\xb0\xd2\xc4x\x9f\x1c\x96 .\x99c\
+\x89f#\xca\xec?\xc0\x10\x80E\xfa\x9b\x85\xdc\x18\x8e\
++bmK\x9aX\x9b\x8f@\x94\xe1\xdb\xa65\xe0\xd4\
+\xf5\x81:[_\xa8\x94\xe8\xf1=\x95\x02\xef\xe7\x14\x8c\
+\x83\x8b,\xda(\xc5`\x97Z8q\xbe\xc3\xac\xc0\x86\
+\xd2\xd5\xfe\x01\x22\xe94\x0b\x18\xf1\x84Q\xfbN\x01\x86\
+^l\xfe\xc7\xae\x09\xb3\x9b\xdc \xce\xb7\x08\x9dg\xf6\
+\x19\xe5\x0f|\xbeB\xfc\xbdT\x85\xd5\xa9\xad\x13\x9d\xbe\
+h\xd1\x1806Aj\xe7K\xda\xd9\x22\xcc\xd8?f\
+\x11\x984vU\x8enb\x81fFhv\x84\xc3E\
+,\x82\xc8\xde)9l\xe4\xeat1\xd0v\x16p\xf9\
+\x81\x12\xf6\xfd'\x17\xb1\xc1krz}M\x1b5\xc0\
+\xd6\x11`\xc2\x0boiZ\xf8\xec\xb2\x80\xcd\xf4\x1d\x8b\
+v}\xcb\x88\x87\xcd\x94\x9fk\xd1\xce\x19\x0a\xd9\xeeR\
+\x8b\xa6\x0a\x9e~fQ\x0a\xe3n\xdc\x05Um\x89f\
+u_\xe9\xf6\xec\xbeRl\x0cs\xe4\x9f?\xd5\x22\xff\
+y)\x8b\xf6y\xc6\xd3Y\x04M\x88\xfb\xf5{5\xb2\
+\xe2\x1dO\x8d|u?\xeb\xae\xec\xae\xcc\xe9\xddA\x16\
+\xf9u\xa9\x1cy}\x8e6\xb4P\x03`\xdb6\xc3\xef\
+v\xb3\xf7Z\xe4\xdf\xff~\x8b\xc0T\xa5p\xd2\xefq\
+@\x1a&\x00\xe7\x01\x89\xb8\x00\x96t\xa7ES\xedg\
+\xdf\xf5\xfc\x0em\x07\x0a9\x1a>\xe4}\x88\x95b\xef\
+\xcb\xbeOG\x95\xbc\x89\x82\x84\xfc\x0c\xb5z\xdc|`\
+\x18\x1ea\x11\x0asF\x07\xc9\xab\xd0\x1ca\xfd\x1dc\
+\xd1\xc4\xcb\xc8C\xdcN\x98\x91\xca\x0d-B\xa3\xed~\
+\x8dNJ\x94\x93\x11\x0b?\xd7u\x0e\xb9\xd8/y8\
+\x1a2\x14\xb0\x889\xabS=\xfa\xc0h\xeb\xd1\x07\x82\
+\xf6\x82\x8d\xea\x1c\x1c\xb4&\xe4&\xd1\x9dmQ(\xe2\
+\xb5c\x8a\xdb\x8f\x001\x07x8\xe7\xe9\x00#F\x87\
+X0\xa3\x06\x8ch\xc0\x1c\xe4\xeb\xb7\xb3\x08\xf9$\xf5\
+\x8c\xd6\x8d\xef\xc3\xb2\xe3K\x9f\xb0h\xf9P\xda3\xed\
+\x95\xf6*Z\x069\x82\xad\xde\xa4\xc5\xb4y(\xb3\xf4\
+^\x08\x038#\x0e'{\xd7\xc1\x1f-B\xbe\xc4(\
+!\x0dR\x00#\xce1\xf2'\xd6\xd1\x87*\x80\xc3\x08\
+\x1d\x80\xd2\xc4N%\xda\xf9\x80\x88,\x80\xbdl-\xd9\
+O}$E\xf9\x8ek\x94)\xaf\xf3\xc2\x93\x8e\xb44\
+K\x1c\x08\x22\xaf\x82\xb1\x22\x06\x87\x03F\xbc_\xb4\xab\
+p\xbd\x80\x99\xc6u\xa0!\xc1\xc8\x00u\x0f\x8d\x1d\x5c\
+\x90\xd0\xe8B\x9b\x84\xbc\x0c-.\x1a\xa9\xcc\xda\xeb\xfb\
+\xdd\xce\x11\xd7\x1f\xf2\x04\x00[5\xbe\xc6\x7fS\x83N\
+u\x8d\xab\xff\xf3\x5c0\xca\xf0d\xce\xe2\x9f,\x7f\xae\
+\xef\x9bF\x8d\x18\x13\x88\x94\xbbx/\x8d\x0a4\xd0`\
+\x22\x08\xf0\xf3\xcf\xcf\xf3%\xad\x08\xff\xb9\xdc\x1f\xce\x0f\
+\x1a\x8f\xacsioy}\x8d\xe8.\x00\x00\xf5\xb1~\
+\xfed9\xf8\x16R!\xb1~X\x88v\x19\xdf\x12\x12\
+?\xa9\xa9\xfa\x8d\xfcg\xc1<Zg\x8d7\xf2r\x99\
+V\x8f\xb6vU\x90\x0e&\x00\x89(\xa2&t\xd4\xa3\
+F\xc0\x02\x812be\xe6\x5c\xa1\xb0\xe0\xf7S\xf0G\
+\xc4e\x1c\x0a~\x10\x116\xf0>`\xf1;\xd9\xe1P\
+\x10\xf3~y\x10(\x8c\xef\x91\xba)\xff\xf5\xc4\x16\x0c\
+6)\x0b\x03\x8a*\x00\x05\xbf\x07\x80\x81\x0e8v\x88\
+ ;|N\x0a\x8f\xbe\xe6A\x9f\x82\x06\xe2C\xa1\x8b\
+m#T0\x0acfn\xb9\x9f\xeb\xd5\xc2\x8d\x07v\
+\xf0\x0e\x15\xfas\x0a\xd0\x99_T\xe5\xd5\xf5\xfd\x00\x10\
+0\x04(\xc0\xd8@\xd9\xa0VVa\x09sD\xc88\
+\x85\xa2\x1f\x18 aWK\x85\x94\xebpM~\x1c\xae\
+\x11\xb3a\xe1\xb0q\xaf\xab\xef\x7f\x97\x80\x0b(=l\
+8\x00U\xd8n\xf0\xfba(\xf0\xf5kj\x9d\x01(\
+0\x13\xc3\x88\x00\xb38\x93\xb5\xe3\x80\xb8\x8d\xdb\x05\xed\
+T\xc5j\xba\xb9\xbby\xbay\xda\xe7q\x8d\x07\xcd\xcc\
+\x93\x10S\xa8\xd1\xa1\x86\xb2>\xba\xdc\xa2l\xb8%\xc1\
+\x1c\xdc%\x8a\x9f\x0e\x1e\xa7\x86\xce\xa0N\x19\x9dq\x90\
+\xf7\xe9,\x82\x0f-\xb3\xdf*\x1c\x01,r2Q\x12\
+V\x17\x85\x93\xfb\x82\xcf\x00\xaa\xa0&\x01\x82\xca\xee\x9d\
+>f\xa0P\xc9GE\x1a\xb17\xbeN\xa3\x18\xd3\xb8\
+J\xf0<\x02\xc0\xf1<P8\xc2@\xc1\x8fVb:\
+~\xb0\xc8\x8f\xdb\x11Z%8P\xc9\xfc\xa0G\xfc\x90\
+D\x8c\xe7\x83\x91\x00|q%\xa6\xe63a\x5c\x0f\x0a\
+\xc0\xddJ\xb4\xce0\x22n\x1f\xab\xd4\xef\x89o\xcan\
+\x10\x91Q\x00\x0a\x00\x01f<9\x88p\x01\xa0p\x84\
+\x99!\xb5g\xae?\x85\x87S\x05\xf1\x1fg\x94F\xfe\
+\xcf.\xceH\xc2\xa7D.\x97\xcdu\xe4\xe2_\x16\x8d\
+\x82\x8b\xb8Q\xfe\xf7\xaa\x99\xf1\xb6z\x108\x15\x9a\xfb\
+\x0f\x03G\x07JZ9\xad\x94V.\x9d\x95\x95\xcb\x88\
+\x11\x89\x87\xf6\xf9\x82$o\x1c\xb4\x05\x048\xb8\x08\x0e\
+\xf6IP\xf2Tp\x000\xf0\xfb\xe9\xdc\xa2\xaanD\
+\xf4R\x00\xfelpe\xa1l\xe3\xc6 1\xda\xee\xed\
+\x16\xf9\xf99\xc6B\x89\xccj\x05`\xa9\xb3\xe9\xcfW\
+\x15}\xa7 \x02Hp?I\x9c\xb5_!Z\xe7\xb3\
+\xed\x88\x86I\xd5\x19\x0a\xb2\xcf \x0a\xd0\x18\xeel\x11\
+\xc4\xb9P+\x17Pas7\xa5\xa0\xc5\x96\x11\x9b2\
+\x89\x99\xd29\xc1\xa6h\xf8\x0e\x8b0\xf2!*\xb7\x03\
+7\x14\xf2\xfb\xe7\xd8O.\x0a\xb7*a\xb9>\x00\xd1\
+\x1a\xa9\x03(q\xb1*4\x05\xe6Ls\xa5\xbc\xbfO\
+nk\x91\xff\xbct\x9d\xcdg\x9d;\xc0\xa7\xeb\x95f\
+\xb2\xc8\xef\xef#\xe6\x17P\x0a\xdd\xdaa\xf9G\x9d\x85\
+t\x00\x13@X\xcfO\xfe\xae\xea\xb6\x80\xbb\x0a\xcf/\
+\x89\x15\xeb\xe1[\x16\x01@X\xc0\x22h@\x90\x08\x89\
+\xf2\x88J\xbd3Y>k\x91\xff~\x8d\xf4\xf6\x94\x9f\
+\xff\xd1\xfe\xa3\x03F\xf9\xfe\xa4\x0b,\xc2s-f\x0d\
+\x0c\x02T\xd2\xcbu\x9el#Ai\xf1\xb4XZ\xac\
+\xd8\xa1Vw\x061\xde\x9c\xb2/FGzs\x8e|\
+?\x87{Y\xa8`\xce\x85k\xfa\xab\x85F4\xcei\
+\xc0\x0c\xcc\x8a\xd1s\x16\xb2\x09\xdc\x22\xec\x87h#A\
+\x0d\xbfm\xe2v+\xe8a\xc4p\xae3\xb2\xe5\xb3\xf1\
+?\xb6\x08\x00\xb0\xf2\x18\x07p\x94\xa8\x1a\xbf\xc3\x18\x1e\
+n\xf3\x86\x9d\x98:`\xcc\xee2R\x02\xf3\xc0)\xb2\
+\x1a\xa5\x1b}\xaa\xce\xc8\x03\xb0\x0cO\xb4\x10\xf3\xe1\x91\
+P\xf0BE%\xd1\x84\x0a\xfd\xaa\xce\x01\xc4\xe8\xa4u\
+\x80\xed\xe5h\x95\xd1\xaa#\x9b\xf9\xbe5\xc7-m\xc4\
+\xa0[2\x87Q\xc4\xbf\x9d\xe3\xcc\xe6VSF\x84\xae\
+\x08LT\xad?\x07\xc8\x044\xba\x0d\x1e\x9dQ\xcd\x10\
+; \x09\xf3\x02\x11c\xfe\x9d\x99\xf2\xd3\x0d\xb2\x09\x9d\
+O\x0a=F\xfdT\xb8twX\xb4\xf3\x86Y\x7fw\
+c\x11\x90\x83J>\xfb\xc7x\x05\x8b\xe0\xbe`\xe7\xc3\
+\xb5\xe5\x9c-\x9f\xa7t\xfe\xe7h\x05\xb5\xc1$\x06\x94\
+\xb8j\xb8\x0ayW!W\x01\x0a\x80\xe9\x9dU\x01\x99\
+\xe3\xd5s\xbc\xad\x89\x1b\x96\x81\x81\x9d\xf5\xf3\xd6\x0a\x00\
+\x05\xa3\xba\x9c\xf3\xe4\xe9\xe4\xf7\x14\xe2\xfa|\xec\x07\xdd\
+\x8e\x16\xf9u\xd9n\xb9.\x9f\x7f\xdd^\xdd\x9e\xdd\x9e\
+M\x03\x05\xa6d\xb7\xb4E\x10\x9b\xc4\x9e\x15\x11i\xc4\
+\x86\x19Y%o'\x7fT\xe1\xef\xe7\x18@\x06\xb3\xe7\
+\xd4\x13\xe4\xa7\xea\x90\xfb\xf9\x80\x084\xf6\xa7\x14\x8cP\
+\xa8\x95'\xc0\xd0JOY\xe4\xf5\xbe\xe5p\xab\xe1V\
+\x81\xa9\x013\x08-\xab\xfb\xa4\x11\xf2Q\xe5\x17zu\
+\xc0\x1f\x00\x0a\xe6\x026\xc9\xb2Qv{n\xce{:\
+\xdd\xd4!\x0f\x88\xf1\xab\xbc\x0e1U\xdc\xa8l\xf5\xd8\
+\xfaa\xc4\xa9\xbb\xd7\x22\x00\xa7b\xaa\x8d\x97\xb2\x08\x9d\
+\x7fF\xd5\x00\x8cT\xb02\x12\xe1\xa3\xb7=J\xbc\xdb\
+\x0d\xe2\xf6C\xa1\x0b\xf3P\x8cSg:c\xc3\x07#\
+\x06\x11J\x89\x9ez#\xaa\xff\x9f\xf2\x14g\x84\xd08\
+a\x9f\xa11\x08\xd3\x17\xea=\xa3\x14\xd2`\xf0\xf5\xcb\
+\x88\xa8\x1a\x89\xe3\xf3-\xc2\xf7\xb1\x0e?&W\x08\xea\
+0\x18\xa7\x00G\xb8\x04<\xa4\xe7\x06\xc6'\x94\xfe\x9f\
+Z\xb4\xbc\xdb\xed:i\xc4\xd1\xe8\xa1!\xa1\x9f7\xbe\
+\xcd\x22\x00\x83h\xb6\xf0\xef0,\x10\xb3\x06\xe0\xc4m\
+\x01\x91j\xfe\x9d\xfa\x8f\xfa\x9az]\xfb\xe7d9\xee\
+f\x0a\xd4z\xc4<\xac\xdc\x9e\xbd\xcd\x80\x96\xaf\xa3\xf0\
+\x9eQ\x09\xfd\xcc!\xb1\xa7\xd0\xb3\xff\x7fM\x89\xc90\
+\x14\xfeP\xd0xCv\xdbVS\xc2\xbc\xdc\xb4@\x80\
+w\xdey\xe3$\xfa \xa0\xfd\x82\xdc\xca\xe90\xcb\x01\
+\xc5\xd0;{ B\x02\x06\xfc\x06\x91\xb0\xd3\x99\x06\x11\
+\xa2\xc0\xa0\xb3\xdc\x9f\xe1\xa7\xe0P\xe7\xba\x5c\x9dY\x82\
+\x08^_\xe4\xb0_\xd0\xcf\xfbz\x11Af\x1a\x1dH\
+\xa0cM\x81\x8f-\x17\x85\xbdD\x95\x5c\x9d\x95W:\
+\xc2\x14v\xa8\x06\x8bZ\xe2@\x03\x85?\x851\xc0\x02\
+\x89\x9bf\x0a\xfd\xf7\x00\x0c\xb0a\xf6\x0bp:\xee\x8b\
+\xeb\xef\xb9>\x00 P\x96\xfe5\xf1\xa24\x1d\xaam\
+\xdbb\xa2\x98\x99[\xef\xda!\x81\xdb@\x22j\xd8\xb7\
+\xb0>\xf8\x1c\xfc^\xc40@\xbcX_|\x1d\xd7\x11\
+J'\x07\x0e\xd4\xb2\xa9%\xbcc\x00\x95\x94\x84h\xb4\
+\xf4h\x99\xd12\xad@\xa3SR|\xbd\x7f\x15~?\
+\xe2?\xdc?:\xa8\x87j\xb6\x1f*\xef%\x95\xba\xe4\
+b2\xbf\x90\x1d\xdb\x8f*\x95-\xff\x94j[\xa5Y\
+Y\x9f\xf5A\x1d\x14\x7fO\x80\x184,@\xca\xf93\
+\x07(T7\xa8@P\xc4\x10\xafc]\xc1` \xa1\
+`4\x88\xc2\xbe\xeb\xd9Qr_\x01\xd8\xe8\xc8CA\
+\x22\x01\x91H\xa3\x1f\x08\xba\xde\xeeo\xba\x87\xc5\xb4v\
+yt\x94}&\x92\x8e\xaa\xd4p\x1d \xa1\xe3\x07\xa3\
+\x80\x8e\x07\x09\x0dL\xa2\xde\xf5p$\x95\xe7S\x88\xb4\
+#\xceGI\xdd{=\x8952k{H\x896\x8a\
+\xc0>\x81j\xef\xc9\x16af\x9e\x99K%tPC\
+]\x14\xca\x12\xcd\xd3\x9b\xe6@\x9a\xd7\xa2Q\xf6\xb9>\
+P\x86]\xc3A\x1a\x07\xaeFL\xe1\x89\xed\x18\xa3\x19\
+\xff\x90\xf8\xdd\xbfD\xad\xfe\x8fE\xd0f\xf8\x9df\xbf\
+\x99\x01\x84q\xa0\x9f\xc7\xc8\x81\xff\xc7,\x1a\xc0\x15\x94\
+B\x00H\x80W\x89U\xb9\xe8\x0c\xda\x1c\x14\x80B\xfc\
+\x07\xbf\x1d\xdcV|\xdc\x0d\xb6\xca\xcf\x81M\x9e\xdb\xec\
+9Z\x05\xec\xe3\xcc\xce\x01\xa4p=\x07'Y\x04\xbb\
+LD!\xc5\x00!1\xf0\x0e\xaf\xa8\xd1i6\x8bf\
+SW\x80\xb4\x83D!<\xba!\xf4\x9c'.\xd2$\
+\xdb\xbe\xc9\xcf[\xe4\xc7bq\x8b\xd6\xd1q*\xaeD\
+\xe2\x06WZ41.l\x06\xe9\xc4\xa6\x03-\x82X\
+\x15\xae\x15*t\xcbhBN\x1c\xd2\xf9\x16\xba\xeeG\
+7@6M\xe6\x98N\xb3\xaa\x97\xe9\xf9\xdd&h\x0a\
+l\xa3\xfdS\xa2T\xee\x12\xa0\x99|\xff:\x89\x5c\xf9\
+H\xd0^Z\x07\xd8\x8f\x01 ]\x94\xaf\xdfEEd\
+\xf0\xdd&\x8e\xe7\x14\xd1\xef\xcb\x9e\x0f\x8a?\xa2Y\x88\
+J\x0a\xa0DL\xce\xb5\x05\xf8\xfboY\x14m\x84\x13\
+\x8b\xba\xff.%\x85\xf6\x0eU\xfa\xafEs\x95\x18\x9c\
+\x22?k1x\x0a\x13k\xfd@q\xb7Y\xf1\xb5\x9b\
+\xfb\x01\xda\x0e\xfd\xd9\xe4\xc2$9M\x14\xd0ue\xdb\
+\xf4\x5c87\x10\x054J\xedo\xb4o\xcf\x1b\xec\x0d\
+5\xbaA\xe25\xdc\xd0\xa2\x00\x0a'X\xe2\xe6Tl\
+f\xbe\xe9\x90!\xde\xa6D\xb6hJ\x9c\xac\xfb\x7fz\
+c\xa4\xa4\x9d,\xf2\xcf\xfd\xacE\xfe\xf3n\x16\x81\xb2\
+\xab\x8e\xff\xe4u\x16M# \xfd\xd9\x22\xd8\xbf\xadj\
+\xd1F\x06\xe8\x9c\x8fg\xb7\x08\xb3\xb3\xda\xbf\x8b\xb8\xbf\
+1\xe2>[\xa9\xda\xf9)\xabL,\x01<\x83\x9bk\
+\x012\xd8C\x05\xcb(\x9f\x0e\xa3\xe6\xceb\x9e\x09\xa5\
+\xc0}\xb4\x8ab\xc2\x0c\x80\xda?:\x7f4u4\xb5\
+\xa8\xc1\xe7\xc8\xaf\xa7\xe40\xad\x83\x8fY\xa8S\xf8=\
+\x01\xa8y\x9f\x1c~\xd3B\x9d\xe8e%j{ap\
+\xdb\x80\x81&\xaa\xb73\xeb\xac\xecz\xb8\x89\x19\xc2\xcc\
+sqGS\xcb\xbfT\xc0\xf3\x0f\xdbu-\x1d\xdc-\
+d\x07\xb8B\x181\xe8\xab\xdc\x03\xe0J\xa5\x9e\x82\xce\
+\xeduU\x98\x8f\xcf\xb3\x08\x9a'\x00\xbe\xd8ri}\
+tW[\x84\xd9m\x89\x8a:\xa5\xdel\xe2\xf6h\xcc\
+I\x17w\xfcB\xe1\x0a:\xe0LG\x94\x11\x86\xc2+\
+\xd8)\x00\x19v\x1a\xae\xf0\x06L\x07\xec\xfd\x00\xbc\x99\
+)\x86\xe2\xbf\x9aE~\xfd\x89E~\xdd\xc7\x22\xdf\xcf\
+\xcf\x8f\xbe0\xb2\xfdpo\x8b\xb0\xde.\xb7\xc8\x7f^\
+\xae\xda*\x8e\xaf\x91\xe6\x12\x05\x14\x22\x8a4(.\xb3\
+h\xcc0\xb7ETa\xebZ\x16\x14x'X\x84\xc2\
+\x19\x8d\x06\xd4\xdcq=\xc0\x9eX\x0c&o`\xd0q\
+\x17\x13\xcc\x0b\xc63\xc4|\xe0<\xc7EE\xa2z\xc6\
+\x93)L\x19>\x07u\x023\xf34\x16\xa9O\xe8\xfc\
+\xd2\xa1\x87a\x0b0\xa0\x8e2\x9a\x04~\xeeH\x5c\x97\
+|\xd1\xeb\x07i\xc3xA\xca\xfdF\xbd\x9ezF\xa2\
+\x96>\x22Kc\x8c|\x8d\x9f\xc7\xfb\xc0\xc6\x11\x8d\x08\
+D\x08\xdf^\xeb\x00\xb7\xa7D+\x89\xd1:\x01\xad\xfe\
+}\xdcW\xe5S\x8cZ\xc0\x84u\x0d/Fy\xc8\xcf\
+pC\xa0A\x8a&\x17\x0d\xe0\xbe[\x1aT}\x98\xa6\
+\xaccu\xd2]\xccP#\xbe~\xbf\x10\xab\xc6\x9eP\
+y\x83\xd7\x9b\x000\x5c\x1f~\x1f\x8d\x13\xfe\x83\xb9B\
+a\xbdJi\x89\xb6\xd1\x19\x98\xd6\x00\xa2r\xc9\xf2u\
+A\x1d\x02#\x88\xc6\xb4\x5cE\xd87\xfc\xfb\x01\x0e\x18\
+u\xa1\x1e\x05(\xc0&\x17\xe69\xeb\x84\xfb\x8dh\xa2\
+\xf6\x93\xc9R\xb0wa\xc1R\xe0Gq\xbeY\x02\xe5\
+\x15q\x1c(\xb2 \x86\x88\xfaE\x11\xbe\xe9\x02E\x9f\
+\xc2\x91B\xd3\xca\xb9%C!\x87\xfa7\x1b\x18\x08\xcf\
+\x9bE\xed\xa5\xa0\xa4\xe3\xc8\xef\xebt\xf0\xb0``\x00\
+\xf4\xc5\xfe\xb8P\x14\xe2\xfc\x9c\xfe\xdf\xb3\xd0\xe8\xc4S\
+ \x83(\x82\xb4PPb\x8fG\xc7\x9a\x82\x0b\xca\x0d\
+\x055\x9f\x93\x02\x9c\x07\xab\x0f\x8c\xb0\xa0##b\xfe\
+P\xa8p}g\xd1\xfbo\xae\x0cu\x16\x9c\xce\xbeD\
+\xc1\xfc\xc1X^\x09\x0d\x1b\xc9r\xfa\xbe\xbe\x8a\xfd\xb2\
+z\x9fh\x1f\x00T\xf0{aH\x80\xcc\xb2\x91\xfdS\
+\x1b\xe7=\xa2\xc4\xb3\xf0\x01\x86xpY\xf0\x14\xaa+\
+\x97\x9ec\xa3\xeccc\xc6z\xe9\xcd\xf6{\xc7\x84\xef\
+\xef\xbb0,\xa6?\xf7\xde\xb7S\xae\x98\xd5\xc4&D\
+\xbe\xcd\xb9\x0c+\x1d\xe9|-\xaa\x86\xc0\xc5\x15\xd1D\
+\xfc\xa8Ph\x8f\x0dL\x0e:\x8b0\x12\x98m\x7fV\
+\xff\xfe\xf5\xfa\xa0\xba}\x8df\x96<\x81bv\x8f\xc2\
+\xe9O\xeah\xe0\xafzn\x9d\x89b&\xce\xfdQ\x99\
+QGT\x86\x8d\xaagw9\x8dm$\xcf3\x1bA\
+\x14\xdd\x9c\xfd\x0d\xecD\xe8\x00C\x05C\x04\x06us\
+u.H\xc0q\x1dp*8T}\xd6/\x14.\x0a\
+tf\xddU\x90\xf9\xfb\xc7~\x08\xf5Y\x98\x04\xba\xee\
+\x88\xc3\x90(\x00,9\xd5\x1a\xaa\x14\x07\x00j\xad\xea\
+`\x0d\xce\xca\x05\xd5Y\x81j\x08\x05\x0e;/\xdc\x17\
+\x98\xcdV\x87l\xf0'\x8b\x00`\xa8\xd0\x1dln\xd1\
+f\x07]\xad\x5c\xf6u\x9exj\x84\x02\xe0\x85\x82\xcf\
+\x99\x03\xa2\xb2\xe3\x07\x8b\x1a\xb2\x1f\xcc$j\x02l\x5c\
+\x0cL\xb63\xcet`\xa6Q#\x02\xd3\x8cf\xbdZ\
+\x9f\xdf\xc1\x19\xb9\x10?C\xaa\xe8\x7fW\xe7\xe5\x8e6\
+c\x8c\xbd#\xcf\x95\xdb\x1f1\x12\xc6>\xc5\xe8FT\
+\x97~:$&\xcc\xaa\xd2i{\xa2\xa8\x80x\x22U\
+l\xe2\x96\x0e\xcc\x1d4+\xe4Z\xe1\xb6E\xd7V\x8a\
+4\xcf\x19Z\x1d\xc5m\xe0\xc6\xe6\xa2\xe1\x1d$\xad\x03\
+43\xd2?,\x1a\x95\x9f\xc2\xc9;\xb8\xd2\x0a`\xa4\
+\xc3\xc5\xa8\xf0\x99FUZ\x89N\xda\xda\x22_\xd6[\
+,\xf2\xd7\xbf\xd3\xa2\x8c\x12\xe5\x08\xa3+\xa2@v\xe7\
+X4\x06\x80S~9/\xa4\x11\xe1~\xd2\x02\xc4\xb8\
+?\xc3\xc5,ZG\xd3]/lto\xd5\xe0?n\
+\x94s\xa3t\xdfg\x91_O\xb6\xbfi\x09\x9c\xaf'\
+:bh\xdd\xb0\xae\x01\xba\xef\xae\xfb\x91\xbbA\xc0\xbc\
+a?\xbf \x17L?n\xfb\x953=\xe88\x09\xa0\
+J/[\xb4\xf7\xe3\x8c\x03\x00+D.\x11\xaf\xbb=\
+\xdd\x96n\x0f\xe7\x1d\x22\x8b\xb6\xbe\xac\x13\xbe\xb7Ex\
+_\x88\xf1it\x02\xc0\x8c\x0e\xae\x8f\x1e\x98j\xf5\xfe\
+at\xceD\xd5\xa6\xe8\xe7\x1e\xde(\xce^\x10rN\
+\xc3`4\x1e\xc8~\xea\xcc\xfc2\xf8\x87\xab\xc3\xc7z\
+\xa5P\x1d/n\x11ff\xd5\xf1\xf3Yx\x89\xb29\
+#Jj\xe7\xdd\xe69\xde\xdf\x80\x05\xf67\xc4%\xd9\
+/\x0b\xd3`\xc9\xa6\x01\xc1\xa8\x08\xda\x1c\xe5\xba\xdal\
+\xf5\x9aU\xbc\x161L\xc4\xc5\x5c\xa5\x9es\x1f\xf1`\
+i>u\xebv\xebu\xeb\xb5\x042=Y;\xa1\xa5\
+\xd0\xdaC\x9d\xae\xcb\xcbl~\xed\xb8\x8b\xa9\xe5\xcc?\
+\xf6\x07\xf6gD\xf1\xe8HK\x8d\xdc\xedV\xb5\x9f\xa6\
+\x8fZ4`\xb3\xb8\x0d\xac\x16l\x81\x19E\x13\xb0\x0e\
+%\xb8\xa4\xd5f\xff\xf9\xa2Fq\x0cx\xbbB\x05\xdc\
+)\xca?\x8c\x80qR\x8e\x13\x9bjx\xb9?\xdf\xd6\
+\xb9\xf4\xd6f;X\xce\x9f/4&\xa0\x8f\x8e\xc8\x0d\
+\xc7g\xa0\xd1\x12\xd0~N\x9eP\x00\x8dS\x82v\x8d\
+\xf6U\x17\x05\xd4s\xdf\x1dm\x11:\xb9\xd2H\xe0\xeb\
+\xdc\x0d\x80\x7f7\x97\x86\xb7h\x7fzk\xc8\xa3\x195\
+`\x04\xcb\xde\xcf\xbd:\xcf\xff\x1d\x80 c>\xdc\xa0\
+\xbc\xc0\x00\xe2W,\xc2\xfd\x83\xdaM\xbe\x86h\x9b\x00\
+\xab\xd1\x9e\x16\xc1.\xf5\x1d\x16\xf9\xf5\xd0\xees]~\
+\x0eG\xbf2c\xd2\xa0\xf9\x02\xf0i\x80\xcb\xa6\xe5\x5c\
+,\xef\xd3\xcf\x11\xddG\xf6\x17w}\xd1HC\xf7\x19\
+\x8b\xa2\xa2\x7fsws+p\x9cA\x08\xa3C\x85\xb3\
+\x17<P\xef\xc9\xff\xf5y\x18\xcd\x9b\xa6\x90\x84I\xa2\
+<\x1c\x00g\xfc\xd4\xf8\xc9\xf1\x93\x05x\xa9@\xbc\x98\
+b^'\xd0\x08\x01\xc8\xdb\xbf\xae\xef\x89#5Z\x88\
+x\xb1\x18'>\xbbN\x1e\x09\xb3\x01\xbbE\xf2%\x98\
+\x17\x8c\xe4\xad\xdak\xcc\xc1\xcc\xe4\xbe\xa9\xf0u\xad\x22\
+\xde\x1fn\x03r\xddp\xbb\xc2\xbd\xab\xdd\xb4\x17\xc0b\
+\xe493\x97|O\xe2\xe3\xfe\xfe\xd0\xe0\xc1\x85Ab\
+\xa6\x8c\xf48 \x0c\xa0\x81\xd6\x18\x1dv\xea\x11F\x06\
+d\xcf\x8c\xe6\x9b\x038b\x82:\xb3\x83<\x9f\xbc\x1b\
+\xd1k\x00U\xd9\xf2y\xfe\x87\xf82\x0d\xe8\xf5-\xc2\
+\xfba\xc4\x80\x11\x10\x18\xb3\x1a\xad\x02\xa8\xf3:\x92Q\
+\x02\xf2e\x98\x08t\xf4\x07\x12\xb7\xd7\xffX'.\xb2\
+\x08@\x22F\x8c\x8b\xb1r\x9d\xd1\x02\x90\xe6\x94\x8b_\
+\x8aa\xea\x0c\x86\xc6\xa4\xae#F\xca\x1b\x9d\x11Cc\
+\x96uF}\x86X8\xee:\x02\x88&\xbd\xb3\xd7W\
+\xd9\xe7\xef\x958\xfa\xc6\x8b\xad\x1b#\x01\x14\xf8\x14\x1a\
+\x14\x1e\xf6\xf7\xfcy&!)s\x84B\x9e\x82C\x8c\
+\x03f\xdc\xfc\xe0\xa0\xc0\xe3\xeb\xfa\xb6~\x14\xee\xd6\xdf\
+\x9f\xae1\x0e\xbc\xc0EM\x9cN0\x1dS(\xe0P\
+\xda)4\x11c\x83B\xbf\xaa\x17\xee5\x01^\x5c\xef\
+\x8f\xc2\xfc==\xca=>\xf3\xcc\x8a\xd0\x19\xe4\xe7C\
+\xa9g\xe1\xf4}\xcd\xf9\xdc}\xed\x00\xa8~\x5c\x0f\x0a\
+\xff~\x81\x07\x13\x83N9\x94x:\xbd\xdc\xb7\xa5\x02\
+\x00\x13?O\x1bA\xa8\xd7\x1b\xaa\xa2\x0a\xe4\xbc:j\
+\xe7\x97\x07\xe7_J\xf0\xfb#\x0c< PTyp\
+(\x08f}\xbd\xfa8j\xb5\xd3\xd8>\xf2\x00s\xbf\
+\xf9z\xae\x1b\xeb\x82\x9fG\x01\x89]\x22\xb3R\xbc\x0f\
+fj\xe8tP\xe8\x22\x86\x22$\xd8\x0f*\xc4\xd6d\
+o\x05u\xc9GX`V\xd0\x91\xd7\x0c538l\
+\xa8\xdd\xfd\x16a}\xdco\x11\xd6#\x07\x884\x09\xba\
+]\xbb]\xba]\x0a\x22y\xdd\xf8\xba\xc0X\xb8J\xb3\
+B\x88\x8d<\xa0\x8dR\x85\x9a\xab\x86s=\x98Q\x82\
+yAg\x9b\x0d\x8d\xe7\x1c G\x8886P\x0eX\
+\xb1\xee\x98m\xc3\x0e\x90\x03\x0f\xb1\x18T\xbb\x11\xbd;\
+\xce\x22\x8c\x90\xa0\x02\x0eu\x18\x84\x94\x83\x00@C3\
+QnG\x0a\x80\x06\xf0\x86:\xbe\xd9m\xbd\x16\x10|\
+\x0ex\x0a~\x98\x17\x1c\xa4\x1cd\xfb\xe6\x8du\xdf\x90\
+\xf0K\x1d\x97\x84\x8e\x03\x85\xc2\x9d\x99\xaf\xf1^\x16A\
+\x1c\x90\x02\x05\xc0`\x1f\x1d\xa8\xf2\x9ffC\xf7Yu\
+\x00?\x00\x01\x01\xa9i-\x8b`\x7fy\xbe\x80\x00\x89\
+\xf4a\xf3\xe53\xfaR{\xf6Q\x94Wu\x1d\xb8\x9e\
+\x9a\xe5\x1c<\xab\xce\xffz*\xac\xd9\x07Ix\x9e\xd6\
+Ao\xc7\xc9\x83AD\x89\x99xl&W)\x98v\
+\xeb\x1cH%\xb7P\x09\x97,n\x159ZG\xd7\x81\
+\x8f\xbd-\x02p\xc1\xbek\xeb\xff\x810\xdaBB\x85\
+\x8d\x17#!Praz\x88\xb1\xe0L\x17D\x97V\
+\x91\x0f4\x09\x86\x01\x98\xcb\x06\xe0M\xbf\xa7\xbb\xdb\xa2\
+\xcd\x10#R\xc9\xfa\x1f~\xd2\xa2=G\xe9\xd2\x1c\x97\
+4\xc0\xc1\xca!+\x88H\x14\x86\xdf\xb1h\xaa\xd1\x14\
+\xb8\x9e\xb0\x01dj\xe61=g\xd1\x12~\xdf\xef\xa1\
+Vj=\x02H\x14&\xc8<\xf2Y\x1f5\x9b\xb5\xf4\
+h\x8e\xc7\x82V\x0b\x80\xa0\xae+*\xe0\xcc\xa8\xa6\x07\
+\xd2A\xe9\xa0\xfc~\xffh\xd1\xc4\x8e\xfcU.\x0b\xe9\
+m\x16\xa1\xe0\x96\xdfq.\x9f\xca\xe8\xc1`U\x9dG\
+\x9a=tf\x96\xf6i\xd7\x1c\x90\xb6\x80k\x8d\xe8\xfc\
+!\xa1w\xd1A\xce{\x80\xc2\xe6o^m\xf2\xee\xb7\
+h\x89\xa6\xbb\x05h68}\xc8B\xfb\xef\xed*H\
+\xafl\xf6p\xdd\xb99\xce\xd1\xa8\xd6\x22\xed\xf3\xf8\xac\
+\xe4\x1d\x16\x8d*\x99\x8e\xb3\x10\xa0\x9b\xdfG\xf7x\x8e\
+'\x82\xc8\xaai\x14\x5c\x11\xf6cK\xaf.k\xc0j\
+Z\xc6\xa2\x89\xc0\x99\xf9\xa1\xd9\x1f\x16\xe0\xe9i\x9d\x83\
+\x0f\x06J\xf4[s\xbc-0\x12_\xb0\xc8_\xff\xb1\
+\x1c\xbb\x05\xc0\x0c\xbb.\x15FP\xc7\xe9x\xfa\xba0\
+\xf1\xc8[\xf49\xe7T!\xbe\xae\x98\x8ey\xdf\xe8\xe6\
+\xb4\x08\xfb!\x1d#\x0ati[\xb8\xfd\x98\x9e\xb3\xb4\
+\xb6E9_\xeb\xbeA\x83E\x80.\x14\xd6\xa2M\xb1\
+O\xc8\xabt\xeev\x8fX\xc8\xfe\xed\xbbA\x8c\xecg\
+\x95\x19\x03\xc3\xa1\x00\xf3\xc6\x8c\xda\xdcB\x9d\xdb=\xf5\
+~\xd7l\x85\xbd'\xe8\x88\x8b\xaa\x10\xf4Yx\xad\x9b\
+\xf2\x1c\xdc\x15\x0a_+\xa87\x0f\xb6\x9e\x12W\xeb\xbe\
+f\x11\x0a\xc78\xb2\xf8\xa0F\xaa>+1\xb5EB\
+\x03\x83\xbcK\xfb\x16y\x036\xa4\xbe_SPqN\
+\xc1TR\x9e\xe0\xfb>.O|=\x1dEF\xf24\
+\x92\x82\x8a}\xc9\x92\xe6n\x0d\x8a\xf1\xbc\x16\xe1<\xc3\
+\xe6X\xe7\xb8\xbf?\xb4\x114\x22\x93\xd6\xb3(#5\
+k\xd8H\x8d\x8b\xa8\xa9P\xec\xd6\xca\x91\xdf\xf7h\xe3\
+\x1c\x1b\x15\x1b\xba\xb3l$c\xf4\xe6\xd1\xfc\xa3\xbc.\
+\xbb\xb5\xeb\xbf\xe3\x8a2\xfe\xaaEc\x00x\x81\xa2\x91\
+G\x1f\x15C#\x03\x97\x0alFit\xe0\xd6\x82\x9b\
+\x87\x00?\xb7\x97D\x5cS\xc0\x99\xdb\xa1agG~\
+\x83x*\x85?y%\x14i\x98\x04o\xb2h\x85:\
+\xb3\xf3\xe3'\x04\x00\xb0n\xf8{\x80\x1a\x1a\x1a\x88O\
++O\xf0sV\x1a\x05\xde8\xa1QA\xe1G\x1e+\
+\x0a\xfc\xf8+\x16\x01\xd0\xe1\xdf\xb7\x94\xbd \x0d-u\
+\xd2=\x8f}\xa2\xe6\x91\x83]\xc5\xe4\xa3\xae\xa0\xa3\xcc\
+\xe8#\x1d\xe4\xfd\xa4\x85A\x1e!\xed\x17\x98\x07e\xff\
+<\xb7\x01\xbc\x0e\xec_\x5c\xa2}N4[\x04\xfcz\
+\xc7\x1aw'\x0ao\x01\xdf4\x5c\x9c) \x80\x86\x06\
+\xa0S\xdc\xa1\xd4s]\x01Li\xb41\xa2B\xfeE\
+#Gy\xbaS\xe9{#\xa9>\xe2\x83\xfb\x17\x807\
+u\x05L-\x5c!\xfa\xcc\x11\xea&\x98\xbf\xbbH\x8b\
+@b\xed\xae\xcd\x82\xc6\x12\xf6}h\x17\xa0\x0d\xc5\xe7\
+\xa7\xa0\xe7s\x03\x90\xa8\xb1\xe3\x8d;F\x05x\x7f\x1f\
+\xb0(b\xe89\x82\xdb\x0a\x80\x17\x9f\x0b\xf7\x0b\x03\xb6\
+/\x0b?G_7\xe9\x85)\x22|\xff*\xa5]\xdb\
+\x80\x223`\x86\xd09'\x01F#`\xae\xa2\x7f^\
+\x0b\x90\xd9\xc2\xe8\x80\x95\x83\xb1\xe3\xce\x1bc\x16\x83\x03\
+\x0b\xea77\x82\x02\x04D\xac_\xf0\xf2A\xfb\xb3\xf1\
+$V\xfc\x1c\x12F\xc4\xc1\xf0;\x07\xb9\xe1\xeby\xa5\
+P^@\x09\xfbb\xfaz\xa8Z\x14\xf4,\x04\xa8?\
+\x14\xc0\xff\xab3M'\x9bY\x1f\xa8\xfd\x00\x05} \
+\x80\xef\xa3 f!\x0fu?8\x88\xa0\xdcb\x83\xc7\
++\x0b\xf7y\x89\x19\x02L\xcc\x15D\x17\xa3\xa6\x03\x9d\
+}\x0a4(o\xa2\xdc:\x00\x03r\xf9\xb8\xben\xcb\
+*21\xf8\x91E(\xd8)H@\xa0\xe8D\xf6U\
+2\x11\x0f\xe4\xef\xf9\xfd bP\xb9\xb9\x9f\xbcO\xbe\
+\x9f\x0e5\x05\x00\x09\x0ab\x1a\xac\xdb\xd7t\xbd\xfe\xad\
+\x99*6\x08%\xf0n\xc3\xa6\xcf\xe1\x07\xe1\x14]\x1f\
+!\xe3<Hn\xffG\x024\xd7x\xce\xa2\xd6+\x95\
+\x7f;\x16\xed`t\xd5t\xec\xbe\xa0\xd8C\xe1\xf9U\
+\xfe\xff\x5c\xe8t?\xb2h\x94\xc6\xc1\x97\xe43\xfeQ\
+\x89Q\x1d\xad\x91\x80{\x84(\x1f]U\xd7\x01\x10\x0c\
+\x7f7\x04\x9e\x02\xd5\xfd\xb1\xb1\x07\xd2z\xc3\xf6\x8c\x04\
+\xd8;\x83P\xa3(\x94\x85\xe8\x8e7\xb6\x08\xcf\x85\x12\
+\x14f\xe1Q\xc7\xa5\x83\xe8\xe2\x82R\xe1\xf6\xaf\x078\
+\xd9\xc5g\xe4\xaa\xbd!*\xdft.\xd8x\xd1V\x10\
+\x85\xda7xl\xc4\x98\x15\xc7\xb7\x16\x0d\x05!\xca\xfe\
+\xf3T@zb\x01psB\x89f\x8bF\xc1\xaf\x03\
+\xd2;<:\xb0]4\x90\x11\x02Q\xb4\xd0R@\xf4\
+\xc6\x0b:\xc4\xc9\xd8\xb0ew\xe3\x0c\x06\x0a,\x12\x1f\
+\x12\x9d\xabdW\xf6>%\xe4\xd7\xa8s'5\xdf\xee\
+\xd3\x16-1\xc8\xe9y\x01\x10\xa0\x16R \xf8,\xa9\
+\x12\x15\xdf\xbf\x00\x86T\x98\xe3\x17\x9f\x9f\xd9\x02\xd0\xfa\
+\xf5\x98a0\xa3\xcd\xf6\x96\x0e\xf6W\x83h'\xf6;\
+\xac\x17\x10{F\x07P!\xd7\xc1?\xf8\xb5E8\xa8\
+\xb9?\xa8\x1eO\x1d\x9f_\xb4\x1a63\xf9\xb56\xa3\
+\xec\xb3\x93t,\x98\xe9\xa7\xe3AG~\x01\xd9\x17\xf2\
+\x9c\x9e6\xf1\x8d\xc2\x5c\xd0>\xe1>\xe6{X\x84u\
+(jn\xf7W\x8b\x06\x08\xa4\xe3-T\xb0?\xabN\
+\xd2q\x8dz\xdeMZ\xb4\xce^Z\xcd\x22\xccRj\
+d!-l!\xd7\x8c\xfc<v\xb7X\xe4\xb7\xf5\xad\
+\x1cg\x04\xd5v\x15\x8a\xccB\xa6\x1b,DY\xcf\xf7\
+!]f\x11l\xd1H\xd8eO\x856\x07Z#\x00\
+h\xe9\x10\x8b\xfcz\x9dE>6\xf6\xb3\x08\xbe\xd6\x88\
+J\x8aI\xc31\x8f(\x18bH\x88\xe1\xa5\x87,B\
+\x22\x0b\x85^\x9d<F\xb0|\x1d\x8bI\xe1\x1d~\x01\
+\xc3\xde\xd9Em_\xf7\x99\x91\x18\x18D05\xd2F\
+96n3\xac\xc3M,\xf4<n*\xcd\x89\x9b5\
+Z\xb3mcV\xa0\xe5R\x0a\xea\x8f5Q\xaf2j\
+se\xe8\x04\x09XF\x05\xbe\x9c\xc6o\x0f\xa2\x8f\x0b\
+X\x04-\x03\x80\x8f3\x8a#t\x05\x8a\xb7o#w\
+\xee*\xf0K\x8b\x9603\x82\x85\xa8\x9b\xff~\x00&\
+\xd3\x08\xd82\x7f\xbe\xce\xa2\xd8\xce\xe6P\x01\xfb\xf7:\
+BSD\xc7r9bv\x80\x00\xcfi\xc3\x1c\x1b5\
+`\x04M\x90\xf1L\x16A\x8a\x89s\x10\xc0\x9a\xfc\x05\
+q1\x9e\x17i\xcd\x18\xfcd\x00T\xfe\x8ce$\x85\
+\x91\x8a\x89\x0b\x05\xa0]\x5c\xf7\xe7|\xcaT\xa0M\xcf\
+\xcfx\x11\x8b\xfc\xba\x9eE\xd0,\xd1\x88\x04\x00\xd0\xf0\
+\xd9\xe1s\xc3\xe7Zc\xa1\xccd\x7f#\x00\x8b\xd8\xc0\
+\xd9\x9f\x97\x0e\x22_v\xca\x9c\x1f\x12f\xfe[\xbep\
+\x1c\x9b=-\xd7\xfb\x87r)b\x81\x1b|yY8\
+\xc7\xef\xb2\x08\xe7\x1b\x09\xb9>Gi0\x0d\xc39#\
+\xc6\x97\x03\xe1t\xd6\x00F\x19\x11\x90\x0d\xb3\x8f(\x00\
+\x84JS\xc0\x1b\x0b\x8c\xacH\xec\xab{\xc0\x22\xbf\x1e\
+f\x11\xf2)\xfd\x1e\x00\xe6t[\x8e\x87[G\x8f\x91\
+(\x00\x97\xee%\x8b6B\x00\x80:\xde1\xc7\x87u\
+\xfe\xdby\xf1/\x8bP\x08\xea\x5c\x82\xf9\x04p:Z\
+s\xb4\xd6(\x9f{\xa3\xe5G\xcb\x8d\x96+\xcc\x88\x8b\
+\xbb\x8b\xcb\x08\xd4b\xddb\x81\xd9\xc1\xac6\x0c9\x89\
+&\x0e^\x123\x03\x8a\xff\xd4|>N-\xe2\x9a\x8f\
+\x1b\xa0\x99w\xed\xc3l\xdfvf\x08\xa3\x02\x14nb\
+h\xd19\x1d\x7f\xd4\x22\x9c\xc7\xdc_\x15\xbc\xde!\xa5\
+`\xd4\xe8\x9e\x03\xe10U\x04\x80QP\xb98\xa9F\
+\x10\x5c\xf4\xed\xb7\x95\xda\xef\xcf%\x0c\x03\x8d\x9c\x8c\x1f\
+\x91f\xccH\x0f\x1c\x852\x80\x04#\x00\x88\xc8\xd2(\
+\xa3\x11D\x03\x92\x02\x8dz\x85|\x11\xdbR\xf2_F\
+D\xd5\xf1eD\x81\xbc\xb6\xdb\xd8\x22\x8c$\xa02O\
+c\x8f\x0e4y6u\x84\xd6\x89I\x1e\x9a\xe8!#\
+:\x9e7\x008\xa0!\x00\xa0Ac\x10W#4:\
+hHQ\x87\xc1t\xe6\x95\x9f\xcb\xcc;\x0d;\xde'\
+u\x22\xfb.\xeb]v\x81\xfes\xa9\x93\xd8\xe7\xb8\xae\
+=\x11x\xa7\xfe\xf7\xdd2\x18]\xa5\xee\xa2\xbe\xc5\xe6\
+\x96\x86\x11\x22\xef\xb8\x96!\xe6-\xa6\xe1\xf8r\x8bP\
+\x9f\xf5D\xe3\xbd\xee@t\xd3\x18I'\x85\xc6\x19\x8c\
+\x1c\x80\x9eoX\xb4\xf5\xe4u\xb2\xae\xaf\xbb\xf5\xb0~\
+`zR\xa7\xbd\xe0#\xea\x95\xf1\x8bX\xb5\x00\xc8I\
+G\x1c,=\x5cQ\x85\xf5\xcc\xe1\x82\xc6N\xfe\x1bQ\
+\x8b\xe9\xec#\xde\x07b\xf5\xbff\xde\xf9\xb9tty\
+\xa5 \xb5?\xcd\x17\x0aH\x00\x00\x0a~~\x1e\x0b\x03\
+\xa4\x9c\x03\x0d@\x83\x82\xbc_\x98\xb7\x02\xbf\xbe\xf2\xef\
+\xed\xf7\xd5\x84\x1d\x8a\xffj\xba\xe0\x14\xe8\xbc\xd2\x19\x10\
+\x05\xd3\x7f>7\x88?\xf7~\xbf\xcf\xd6\x02@\xb0\xe0\
+X\xc8,\xe0\xbf\xe9\x81\x7fI\x853\x07\xb5\xfe3\xb3\
+\xc5b\xef\x07\xb2\x09e\x1b\xc4\x8e\xdf\x8f\xb8\x06\x1b$\
+\x9a\x08cmTt\xa0A\xf8\xa6W'\x9d\x8d\x0cD\
+\x9c\x02\xfcFQ\xc4\x1e\x16\x95tY\x8dF0\x1b\xce\
+udcfc\xe1\xfd\x00,\xf5gk\xe8D\x83\x88\
+3\xab\x02E\x1a\xe0\x05f\x83\x10`(\xc6\x8e\x88\xb2\
+\x833\xda\xc0}\xe6A\x84\xd2\xf6\xb2E\x13\xe9\xa1#\
+\x85*\xb2\x8b\xaf\xec?>`|@\x13\x91rJ\x15\
+H\xbf\xee\xcfx\xc6\xf12\xe3e\x8a\xc8\xcf+\xe3W\
+\x82m\x16\x85)\x94o\x89\xb0\x8cg\xb0\x08\x1b'\xb3\
+\xef$J\x97\xa4\x8b\xd3\xc5Ad\x0d\x00\xedP!\xe3\
+\xcc\xc2\x01\x18\xc1p\xe0`D\x04K\x9f\x0b\x0a\xe1\xe8\
+\xef\x98\x16\xeb\xf0\x00\x00 \x00IDAT\x16\xc5'\
+:G\xf0?\xa5\xf3\xa0\x8e\xa9\xab\xbc\x0b\x99eV\xd7\
+\x13M\x0a;f\x96\xb1\x0dT\xc7\xd3\xdd\x078@5\
+\x0b\xee.\x0el\xc4P\xeb\x99\xad\x12\xf5\xcb\xdd0\xd0\
+,Pb\xc7l\x99\x17\x88\x5c7\xec\xd8\xa0\x80\xe3b\
+\x00uT3\xf1tb\xbc\x10*\x9c\xed\xf0\x5c\xc2x\
+\xa2PT\xa1\xea\x9dOF\x16\x10-d\xa3\xa6\x90f\
+V\x8b\xef\xe3}\x90\xf8\xa8s\xe7\xaa\xf3\xd8\x03\x8a\xda\
+\xe6\x09\x13\xbf\x07_ZD\xb4$ZC\xe2Fa\xd9\
+\xdf\xf8\xd3\xa7k\xe7\xd7\x11\xf9\xeb\xf5\xdcj\xff\xf5\x0e\
+\x14,g\xb9Y@\xd5EK \xed\x9avI\xbb\x06\
+\x80\x0d\x9bA\x9eO4\x1e@\xd6\xa1\xbcI\x0c\x94\x99\
+e\xee#\x9dN\xdf\xa7\x1e-St\x95\x8a{\x96\x00\
+\xa1}B\x87\x1e_\x5cl\xca\x1e\x1c<`\xa3\x19\x0e\
+\x9cL\x0e\x86F\xe5\xcf?\xe5\xb12\xf3\xb9\xfex\x03\
+\x9b\xb1\x9f8\xbb\x90M\xdbl\xb0\x00\x8b\xe1\xca\x16A\
+t\xee\xb4\x02\x19\xf8,\xe9\xf89\x8b\x96`\x15\x11\xa8\
+'\xa5\xee\xbe\xb0\x0e\xfc'\x05\x1cNm\x8c\x19\xec\xa8\
+\x985\x1f\x9ef\x91_\xa7X\xe4\xfbt\xb2E\xeb\x10\
+t\xbb\x1a\xd7'\x7f\xfd\xbbr\xbcS\x00\xc5'\xa4\xaa\
+\x9e\xd7\xdd\xf0\x08\x0b\x8d\xa0\xcc\xd0F;\xd2\xe19\x0e\
+k@\x9e\x8b\x11.\x90c\xc1\xd6\xf9C\xb5>\x1d\x9f\
+\xbe\x9c\xbe\xdc\x0a\xf9\xe1\xea\x16%\xd1,\x89\xb2\xdb\x95\
+\x1e,\x17\x8ay\x94\xf8\xac\xaa\xf3I\x94[\xfc\xee\xd9\
+\x07\xe9\xbc\xf9\xe8\x0f\x85\xe3\x99\x16!\x91A<\x89\x91\
+\x12D\xeb$\xe6Vf\xfbM\xeb\xe2\x15\xed\x9bjD\
+\xa4\xabs\xfc<\xf8\xc0+!Mf\xd6\xd25`\x8f\
+\xc2\x09\xe0\xc9\xf3\x15\x80F\x15\xa0\x05\xa8\xfcL\x03\x98\
+\xba/[\xe4\xef\xbb:\xc7U*0\xbe\xde\xf6\x01\x07\
+\xd4>U\x19CE5\xfan\xed\xb7\xcb\x04\x8a9\x0c\
+\x1f\xed\x9fi\x86*\x86H\x82\x9f~`\x11ft9\
+w\xf8\xbc\x02\xbcK\xc7\xfa\xce\xb6_8\x05\x15\x91R\
+;\xefn\xacb{f\x83H\x07\x0c\xd1\xca\xf2\xdb\x9f\
+\xd4~\xbb^\xf8|\xb8b\xb0O\x1b\x10z\x5c\xd0\x0c\
+\xd2L*\x9a\x0d\xe9J\x8b`\xe7'\x06\x22\xf6z\xe4\
+=^\x80CYeV[\xcf\xd1\xc4'KL\xa4\xd7\
+,\x02S\xe5\x11\x8bV\x90\x99\xa9\x9a\xd9\xaaQ\x90\x17\
+\xd7\x1d\xf3\x8b_\xcfBT\xfd\xcb%b\xb7z\x00\x8a\
+t\xfe;\xa0h\xefr\xd3\x90GQx\x00<\x1a@\
+\xf56\x15P\xa3&\xeeF\xa1\xde\x1d\x94\xe3\xd3af\
+\xdc\xf8c\x87\x85\xfc\x8c<\xd7\xb2\xb9\x05\xa7\xd5~\x81\
+\x1a\xed\x85\x05y\x0b\x8d\x1f\x9d\xdf\x0eD\xd3\x01\xee\x8d\
+x\xba\xd8%\xe7\xbe:\xa1\x8c\x94\xf8s\x8f\x0d\x19\x1d\
+w\xd6\xd3\xe2ex\xb3u\x94/\x1d_R(\xf8\xb2\
+\x97s;4\xf3\x9d\xcf\xd7\xa9{6\xc73E\xd3`\
+}\xd34\xc8\xa7\xfc\x0dELX\x0c\x86n/\x8b|\
+?f\xb6\x90\xcd\xdf9Atn\x89\xfa\xbe\x00\xfc\xd1\
+H\xe1\xbcM\xdbU\xa6N\xda*m\x99\xb6,\x22\xa4\
+\x85)3XH\xe2\xe3\xffWd\xd4|$u\xf4\x90\
+Eh\x84\x08\x90\xf6\x0e,\x850\xf5\x02#,+\xf7\
+\xb4\xa7\xc8s\x1b\xa3\xb72k\x99\x8d\xe7:\xe0&\xc0\
+('\xdfG\x1d\x01C\x09\xd7\xa8\xe3j\xe1?\xbeJ\
+\x00\xc3\xa7+\xd3\xa9H*\xee\x5c(\xf0ET\xd6\x0b\
+;\xd57>\xca\x81v\x04#W4\xec\x86\xfa\xbd\xd2\
+\x08B\xeb\x87\xfb\x00 \xe9L<i\xba8\xa3\x155\
+y\x18\x16\xe4\xcbt\xa4\xf5\x9c;\xc3\x95\x91f\xceW\
+\xb4\xd0$&\xec\x9a\x0c\x12Md\xffp\xd1l\xdc`\
+\x10U\x84\x89\x81f\x0f\x9f\x9f\xf5\xcd\xfda\xe4\x0dm\
+\x09F\xe2\xf8\x8fF!\xf7\x17\x06(\x9f\x1b\xf1ki\
+\xa6\xf9h\x05\xf9\x0f@\xa6\x98g\xae\xb6\xdfo@2\
+B\xa0\xc6\x98\xe7I\xfc^\x0ah~\xae\x00\x09\xef\xe8\
+\xb3\xff\xf1\xf3\xa8\x7f@\x5c\xa9\x97\xe4\xc6\xe0\xf5\x0fn\
+\x00bxx\x9e\x87;\x09\x1aS\x88\x94\x93\xdfs\x1d\
+\x01\x88\x00B\xf8|4N\xa9\xd7\x00~\xd0D\xe0:\
+\xb2_)\xbf\x9f\xf4\xc2\x90\xce=\xbfH\x0f\x92'\xa8\
+\xb6\xf1-\x1c\x00\x82\xfe+\x05J\x9f\xc2-\xaaR)\
+\xff\xe7\x938\xd6\x82\xba \x0b\xbd\xc1\x07\x9c\xa3\xf4\xa2\
+\x1a\xc0\x00R\x06P\xc0\xfb\x82j\xcb\x06@'\x9e\x9f\
+G!\xaa\x02\xdc\x81\x02:a\x00\x14\x14\xa0\xdch\xfe\
+~\xf6\xde\xa8\x01\x08\x0a7\x5c\x0b\xcag\xcb\x99Ue\
+\x03\xe2}\x88\xc9\xe0\xb3\xfe=&\x80\x7f.\x10/:\
+\xb0?\x91H!7l\xbe\x0a\xa0\x0cv\xd4\xac\x0a\x07\
+\xd3\xb3\xea\x80\xabS\x0e\xd5\x8e\x84\x03\xea\x98\x17\xfa\x5c\
+\x17\xa8\xfd/\x0a\x81\xc3\xce\x0f\x80\xe7\xbfB\xb0X\xd0\
+\xb2C\xf2Y!\x01\x06\xccz\xbaM\x08\xc8\x19\x85\xb7\
+:\xb9\xbe0I8@\xae\xb0\xef\xf9`\xed\x9c\xfb\x8c\
+/\x22\x8d\xa8\x86\x82`\xcfY;\xed\xbe1\xdeQg\
+\x93\xcb\xf1\xbfi\x98\xf9\x91H\x9fS\xb6\xf9\xfdl\xfc\
+R\x0b&!\xe1`\xe8o\x5c \xab\xdd\xed\x16\xe1~\
+\xa0\xca\xf9_\x8b0\x0bK\x07\xf04\x8b\xd6i\xa6\xb3\
+\xc6\x8c7\x0f\xbe\xcf\xce2\x1b\xbeb\xa5P:\xe5\x11\
+J7\x89\x8e6\x0a\x9f\xb5B\xe4\x05D\x95u,@\
+\xc5\xa9\xaf\x02\xd0\xc6WZ\x04\xe4\x1f1\x1c\xec9{\
+j\xf1n\xb3$\xa6\x84\xab|\xb3\x81\x89\xfa\xe5\x1du\
+\x90Z\x0e\x16l\x03%\xe27\xf1\xa5\x12M\x14\x90D\
+\x1d\x0d\x10\x89\xa7\xf9\xf7\x83\xd83\xd3\x04\x02\x0d\xc0\x03\
+\xc0E'Z\xeb\xdc\x0bz>\x1f\x1dj~/\x9a\x0c\
+hO\x00H\xb0.\x01,\xb8Ot\xf4\xa1\x9e\xf1\xdc\
+\x02\xe0\x00\x98\x08pH\xabX\x041E\xde\x07\x07\x0c\
+\x9f\xafg\xcb\x89=\x0d\x94L\xbe\x8f\x19\x7f\xf7#G\
+\x14J3r\xd8\xfa\x8c\xbf\xa5\xd1\x93\xa7\xbb\xd2)\xcc\
+OU\xb1?J\x7f\x96\xcf<\x8c\x0d\x89\xec\xe5\xe4\xa6\
+R\x14\xb5\x8e\x5c\xbb\x84N\x8a\xf9oo-5\xe0\x9d\
+CGB\xfbjI$\xc3\x88\x88?\xf7z\xdf\xdd:\
+\x16\x01\x80\xf9\x7f\xc2\xce\x04\xfe\xd6\xa9l\xff\xbf\xfd\xec\
+}\xcc2\x14B2dV2'R\x88\x0c\x0dTf\
+\xcd$\x95!\xb3\x14\x07\x95(\x0d\xc6D\x19\xa2\xc1P\
+H\x992\xa7\x88B!\x09\x87\xb7x\xbd\x99\x87d:\
+\xfb\xd9\xffu\xad\xe7\xfa\xdeky\xfc\xdf\xff\xdf\xfdy\
+\xdb\xef\xef\x9c\xdf\xf9\xfd\xf6~\x9e\xf5\xacu\xdf\xd7}\
+]\xd7\x8d\xb9\x14&qt\x8em\xe6\x97M\x98~[\
+\xa8\xe4\x99\xa2\xfe\xddj]\xd3\xb1\xb8m\xea/\x02\xd8\
+\xe2\xdc\xb26;(\xc5\xb8\x9fS@1\x96n?\xc5\
+\xd4\xd4\xb4w)lBtC\xda\x1e\x8eM\xa1\xb1d\
+?P\x94\xc2\x84\xe78\x17rgY\x9a\x92\x12\xfc\xf6\
+8E\x95x\x83\xe0\xe3\xea\xafD\xf8\x89L\xc1O\x91\
+\x01\xbd\xf3\xb3\xa4\xc0\x80\xc4\xcc\xa5\x15\x15\xb1K\xee\xee\
+g\xa7\xd7\xcbR\xa4\xc2w\xb4\xaf\xa22\xa9\xb3\xc4$\
+K\x0d\xd2:\x1f~mx\xc4\xf0\x88b\xda\xa7\xf4Z\
+\x09v0\x9f\x9e2\xf2o\xf3Q:s\x83\x17\xbb\xc2\
+\xbc\xf9\x9d\xa2\xb8\xf13_;\x9e?\xce/\xbc3\xd0\
+\xf4\xbf_Qu\xb8\x9an|\xea\xe0{\x8a\x8a1p\
+T\x07<\xc4\xf3\xcd\xfeD\x81\xeb\x0ek61\x13 \
+p\x9b\xa2J\xe0L%\x1f\xee\xad\xb04c\xbf\xca\xf4\
+\x92)%GtL)\xdc\xe8\xc3\x5c\xd4&nQ\x98\
+\x18\xa0@\x1a\xd4\x9c\x9d\xe2gE2\x14S-`\x9a\
+\xc0t\x80\xfa\x8bv\x13\xb7u\xa6\xc0 \xed\xfaqg\
+\x02\xdb<\xa0\xa8\xf6\xc9\x13<\x87\xfePw\xb4\xf7U\
+d*vg\x8a\x87\x89\x99\xaf/\xc0x\xee\x84\xbe\xc3\
+\xf7\xfd\xf3U\xde\xa1\xdd\xe4\xdb\xde\xff\xf7*c\xecB\
+s\xebB9?\x0fWT\xd4[}\xfeQ\xd5\xb1\xc6\
+|x(\x08-\xbd\xef\x97\x15\xa5\xa0\x84\xba\xccX\xc2\
+`\x0c\x99a\xd4\xce\xa6(&\x82\x01\xfc\xba\xa3\x9e\xcd\
+\x13\xe7\xa8\x12w\xf6o:\xa7.\xe48\x17\xda\xd7(\
+r\xfe\xd3\x01\x8b\xcfw\xcfU\xfb\x85\x14{\xf9\xb9\xbf\
+\xa1\xa20\x8b\xf9q}u\x0e0\xfd\x05\xc6\xe21y\
+\xc0b\x99\x9f\xce\x1cn$\xab\xf6\x04\x08f\x07\x92\x1a\
+\xc6\x85\xb2\xbf\xbbsK>\x90M<7\xa8\xdc\xfb1\
+\x0d\xb4K{\xdawST\x92\x07\x80\x14\xc6q\xe1\x01\
+\xc1\xfb4\x93)K\xfe\xae\xca\x9d\xf7\xbc\xcf\x06\x10\x8d\
+\xf7\x86\xf3\x80\x18\xef\xc6\xfcu\xceU\xcc\xd6\xce\x93M\
+g\x01^\xda\x03\xda/\xb6\x07\xd8\xa5\xfeo\xc5T.\
+K\x01\xa6\xe5\xf5\xd1IR\x06i\xdf\x1d\xe4|z\xc5\
+\x9cO\x8b\xb8\x9f\xce\xbb\xf6\xe5vf\x9b\xd6E{^\
+{n{n)\x98\xa3\x90%o\xbd8GHF\x9a\
+\xbd\x9b}dn::lt\xf8\xe8\xf0,\xd9\xd9F\
+@\xc0`\x87\xf4~w\xa8\x80\x22\x03Ci\x17\x19h\
+\x1fi\xcePd\xa9V.p\xd3oOQ\x8d\xb9\xa5\
+c\x8c\x97\x09\x8d\x1a\xa6X\xf0<\x92/\x01\xc8\xd3\xf1\
+g|\x1a\x00\x0c\x9db\x1aDL\xb1\xf1\x98\xc9hP\
+8\x0f\x11\x9c\x92=B`\xb01u\xe2\x80n\x1f\x8e\
+\xe7\x85<\xc4&\xcfa\x8a\xc7s\xea1\xa4\xb8\xc3\xe3\
+\x95\x10\xf9*\x8c)>\x07\x00\x91\x01\x96\xe8\xec\xba\xfe\
+i\xf7V\xa4\xd7\x0d\x15\x15\x83\xe3m\x8ab\xd6\xc84\
+\x06$vQ\x90z}\x0e\xaeRT\xd3q8\x1fx\
+\xdf\xce\xf3\xb3\xa7\x8a\x18\x1fk)*\xc6v\x9fQ\x8d\
+\x04\x94B\x9b\xfa\xa1\xdf\xf8\xe5\x95\xfc\x01\x13V\x00\x06\
+\x9e_\xf2?L\x97\x91~\xd8$8\x0a}<\xa3\xdc\
+\xa0\x8d\xbf\xa7\xc1J}I\x03\x04\x09\x83\x9f\xe3`0\
+\xe0\xa5@}\xcb\xfa\x83yL\xbd\xc64\x07\xd6\xd5\x1b\
+\x0dD\x92\x97\xe2\xb9\xc2\xefe=\x98\xa9\x1a\xfb\x18S\
+\xb0`,\xb8\xe1\x82GR\x5c?\x00\x0c\x1aj\xd4\xa3\
+6\xc9\xa6\x01\x19\x8dw\xd7qx\xd2\xd0\x98\x1b\xc5\xc2\
+\xc7d\x80\x0b\xa4\xf2w\x9e*\xc1\xe2\x8d\xeb\x7fg\xaf\
+\x0ab:\xf35C\xa0\xbe\xc0.\xe8\xa3\x83\xca\x0d\x06\
+(\xe8\xbb\xe5Sp\xd7&\x84sTZ\x1e\xc6\xcc\x81\
+\xf4\xa2a\x87\x01\xc0\x85\xe4\xcf\xfb\xd4\x10(!\x14\xc4\
+t\xa2Y\xc0\xad\x0bE\xfe\xe3\xfb\xe9\x80\x81\x10\xa2\x81\
+\x872f\xaaFP\x85\xb7v\x01\xee\xb1\x19\xf19(\
+\x1cM\xd9\xa4\x13\x18\x094\xd4\x11\x80\x8f\xdeuF#\
+\x17\x9a\xb2]<\xcei\xa7nlE\x98a\xa0\x81\xc2\
+\x8d\x9d\xf9\xe4\xe7(\xaaB\x86\x07\x86\xcfIg\x0e\xca\
+\xfb'\xbbqhP\x8a\xe8\x5c\xf3\xe0q \x85+8\
+@\x87\x13\xad\xf67\x8a\xbc\x90;WU\xcc\xbf0\xc9\
+r'\x16\xcay\x148t\xd2\x91\x10\xb0\xa0\xf1D\xc0\
+%\xdc&OhG\xa1\xd8\xd1\xa1m\x16UT&/\
+\xb8\x98\xa3\xc5G#\xb8\xd0d\xc1\xc9\x82\xf9}wn\
+\xfd\xack\x0a\x0e\x10[\x0e\x1e60\xc6`\x9d\xa8(\
+\x09jP\xe2p\x07\xc7C\xc0\xda\xea\xd0\xb03o\xd9\
+\xe6K\x91pl\xdf\xbd\xff\xa0\xba\xb3N\xb9_\x14\x8e\
+\x14\xee\x1c\x1c0/X\x1f\x98~@\xcd\xc6\xb5\x9d\xe7\
+\x83\xeb\xca\xf4\x08\x5c\xd3\xcd0\x88N\x1e\x9aQ\xc6\x8e\
+\xd0A\xe2`\xe5\xf9c\x1f\xe0y\x03\xf9\x04qf\x9d\
+\xf3\xf7\x1cd\xdcw\x005\x80\x04\xbf?\xb4\xa91\xe6\
+\x04O\x03\xd6-\xc0\x1d\xa6\x9d\x8c\xdb\xb1$!\xbcA\
+<\x16\x08\xed3\x05\x14\x9a\xe8XWL\xd1\x80r\xce\
+\xbe\x84\xa9\x1d\x1e\x05\x8cG\xe4\xe70\xee\x0c\x86\x04\x07\
+\xa1\x0f\xac\x18/'\x85\xdc/\xbc\x9e\x1e\xa8\x0ar\x03\
+-\xedg\x14\xd5t\x09\x17R\x8c\xd1\xe3\xcf\x03\x08x\
+\xbd\xa2\x8c\x89\x0c\x8a*\x09\xa75{\x98\xe7aJ\x15\
+\x00!SL\x00\xf6<^24f\xf2\x12xG1\
+\x1f\x8b\xfd]\x9f\xfe\x93\x9e\xb3\xbcu\x05\xc8\xba\xe3\x1b\
+\x09\x83)\x9c\x14@A\xc97\xd2\x1ds\xb81wT\
+\x99\xf8\xf52%!LnL\xb9\x0c\xc4\x1b\xe0\x05\xc4\
+\xdc\x85[\x00Jx\x0c\x18\xd0\x88\xf5\xc0\xf8DME\
+x\xa9\x14\x8a\xed.\x8a\xca\x84R\xf0\xd2;Kb\x9a\
+\xe7^\x7f\xd2\x12\x98O\x17\xe0%4\xc4\x22\x94\xdeP\
+\xcc\x0e\x01H\x9a\xb7*\xa6\xa6\xa6-\xaaH_?\xab\
+(c\xcf\x9aM\x15\xe9x\xd9I\x91\xbe\xfe\x95\xa2\xea\
+\xa8\xdb\xccl\xb8z\xd7\xc1g,`\xb3\x92\xa2<\x9f\
+\xed\x82\x8a\x8a\xa1f&K\x8cC{{\xf7\xbc6{\
+)*\xa6\x8e;\x16\x83\x03\x15\xc5|\x08)\xc7\xf0Z\
+E\xfaw+(*\x80\xcc\x85?@C\x00\x15\xbco\
+\x006\xa8\xabx|P(\x8a\xc9\x91\xce\xb9\xe1\xb3)\
+\x9e\xa9\x12%w\xf2\xb3t&\x15>\xcd\x9b\x14\xd5\x18\
+.\xa6-x\xaes0\x00Lqo\xcfPXS{\
+\xb4\x0b\xd1\xf7\x14\xaa?@2\xfb[$\xfc\xdewH\
+\x80q\xfbnOP\x14\x97t\xe6P\x03\xe0\xc2\xa8j\
+\xceR\x143\xbb\xd0`\xfe\xc1\xd4\xdc=\x14\x058\x12\
+\xbf@\x9d\xd9\xf6\x1aEa:E\xc7\x16\x00\x9d\xf5\xcb\
+\xfe\x87\xb6\x17\xad\xac\x0b\x9d\xf6@E)\xc8s'z\
+\x17\x03\x99\xe7W^\x13\xbf\xe8\x18f\xe9\xdc\x5c93\
+\xea\xdc\xe8\xa1\xa0\x09\x13C{\x83\x84\x8b\xff\xc2\x8a\x8a\
+R\x0c\x05\xf6NO\xb1\xe0| \x9f\xf4\xfb\x8f\x8e!\
+\x00\x0b\xfb\xa1\x99i\xed\x99\x8a\xaaCI\x07\x93\xfc\x14\
+Wl(\xed\x9f\xc8s\x22\xf2>\x9a\xcdz\xf5\xd3o\
+*\x0c\x88\xc9\xa6\x0aK \x9f.\x1d\xca8\xbf=\xdf\
+\x9ei0\x93\xed\x15\x15\xc3\x87\x0e\xba\x00\xd9\xdb\xcc\x98\
+z\xa0\xcc\xb5\x8f)2\xe4#t\xee\x90\xc0\xf1s]\
+\x88\x85)\x9e\xd7]\x00\x08\xd6\xf4O\xee\xf0\x98\xc0\xbb\
+<\xed\x87\x0e$\x0c8\xaf\xcf0\xe93\xe3\x80\xfa\x9b\
+\xf3xp\xaf8R\x95\x14\xcd\x12\x9c\xd8\xef0\xc54\
+P\x99\xca\xc1\xac\xad\x0e\xe0\xc2\x9e.\xe9\xdeu\x92\xaf\
+#\xbb\xfd{\xb2\xae\xa2j09oa\xffh>\xd7\
+\x99s6\xb7t\xfb\xf8\xf0\xef\xc3\xbb\x87\xe9\xf7\x0c\xe7\
+\x1d\x1e4\x9c/\x9b{\xde\x9c\xcd=\x01\xb8\xac\xe9\x0e\
+\xcf\x071\xe86\xce\x05z7\x1e\xee\x0f\x8a\xaa12\
+\xa3\x1b{\x1b\x8d 7R\xc2c\x8a\xc2\x9f9\xee0\
+9`\xce\x92\x0fq\x8e\xbb\xa1\x15LR\x17\x5cq>\
+\xd8$6\xf2K\xcc\xa5=\xcdf\xb2\xba\x5c<2\xe0\
+\xb6z\xf6\xf2\xc0\x9b\x07j=y\x08c\xb7\x99\xd6@\
+c\xd4\xbf/=\xff]\x9eh \x15`\x00\xa0l\xf0\
+\xa0\xa20H\xa3ad&IL\xaf\xbaHQ\x8de\
+\xbcZ\x91\xfe~\x03E\x05\xdc\x1cmI \x00?\xc0\
+\x09\xcc[\xf2\x1f\xa4\xb0\x98\x02\x93\xc7\xe1\xd2\xcf\xc2\x83\
+\x91A=\x06C\x9a<\x8f\x86#\xf9+\xf5\x18u \
+y(\xf5\x17\x0dZ^\xb9\x8e0\xab)\xbc\xe9\xb8\x03\
+\x94Q\xe8\xa3\xed\xa7\xbes\xbe\x8cd7\xcc\x06\xfb\x12\
+h\xbc\x08\x18kh\x89[\xfc\x1e\xf63\x9eK\xcc\xaa\
+/\xf1:\xa4p\xbf\xd7^\x1eH\x82,-\x8e\xb1\x93\
+Hm\xa8\x0b9\xef\x90\x92~VQ\xf2\xfb`x\xc3\
+$\xefK\xd0\xb9\x8ex}\xc1\xa4&?\x82\x19\x8e\x04\
+\x86\xba\xd2\x9f\xa7\x89\x1bF\x07\xbe\xaf\xb1\xe7\x95\x84\x1d\
+\xb35\xb4Q\xfc\xc7\x85z6\x0fz+\x08\x86\x13\xfc\
+\xa0~B\x09\x87r\xce\xab\xfe\xf4\x89j\xc3\xe7?\x0a\
+\x9di\xd9\x86\xe6\xd5^\x04$\xfe\x14\xca\x14\xe8t|\
+\x99\xd3\xe9\xceZ\x8c\xf9\xe0A\xe5\xc2Q\xe0\xf39@\
+\xdcYp 9WX\x83\xc48\x97\x93;D\x06\x97\
+\xccT&\xbf\xbb\x95Y\xcac\xdd\x86\xda\xe6\xff\xd2\xdb\
+\xb9m|\xeb8m\x8c\x9a\xaa\xab\xb9\xba\x98\xbd\xe5\xce\
+SZ\x18\xe3\x1b\x14\xe9\xcf\xff\xadH\xafKk\x12n\
+\xd1\x8c\x84I\x09\x09\xbe\x91\xe5\xf6\xaf\x8a\xf4\xefoR\
+T\x1b\xc0,\x8a2\x9f\x95\x0d\x91\x86~{\x88\x22\xfd\
+\xbb_+R~\xb6\xee\xccuf\xa6\xc4p\xe6\x01\x8a\
+\xf4\xfa\x95\x99\x87\xcfL\x09\xd5\xcb\xfb\xceL\x91\xbe~\
+p\xe6?g\xa6\x8dt\xbc\xd8\xf8\x0d\xe3\xb4\x10\xc7\xef\
+\x1c\xaf7^/\xbd>\xadH\x7f\x7f\xe8\xcc\xe93S\
+!?s\xc3\x99\x1b\xccL\x1b\x84~\x9a~\xde\xf8\xc5\
+\xf1\x0b\xe3t?\xc7\xd3\xc7\x87\x8e\xd3A6\xbeL\x91\
+^?\xa7H\xdfw\x8c\x22}\xfd\x90\xa2r\x99\xbd\xa9\
+\xeb\xb8G\xe1\xc2\x1cx\xc6G1-\x02\xb3\x1d\xc6\xb8\
+\x19\x89\xc6\xe4\xa5]Q\x91^\xff\xa8(\xd7\x07m\xfb\
+d\xbb\xee\xe0\x9f\x5c\xdc\x8dac\xdcMt~\x9c\x08\
+\x85\x19\x93\x0b\xf2\x18+\xe6\x82\x9aqut<\x03\xe1\
+\xc7\x9c\xce.\xd1 \xd0\xb113>\x08m\xa8\x0b\xdd\
+\xc9\xbcN\x14\xbcq\xa0\xa9D\xbb?~J\x91~\xdf\
+*\x8a\xca<\x86\xe7\x13\xca\xa1\xdfgl\xa4$\xce\xb8\
+q\x8f\xbb\xb1\x83\x83\xdb\x15U\x87\x9c\xe7\x07WU\x90\
+W\x00\x19\xbc\x19@<\x99^\x80F\x8a\x7f\xc7\xf3\x0d\
+\x15\x09\xc0\x8c\x0d\x96\xe7\x0f\xe0\x86B\x0aJ\x1b\xda0\
+\xa8l\x06dBC\x8b\xa6\x95\x0d\x17)\x08\xff1\xd6\
+\x8c\x02\xc5s~\xfb\xf3\xe1\x83\xb9\x03C\x07\xe6\x01R\
+\x1d\x0a$\xc6u\xba\xf0\x8f1A\xd6\xfeF'\x12\x0a\
+\x1d\x1dJ\xff\xbb\x18W\xa9m\xff\x98\xea\xe0\x03\x08\xc1\
+\xbc\x12\x13 '\xaa\x9182\xe6\xd4\x00\xc4\xf0o\x8a\
+\xb4\xed\xfdT\x91\xbe\xfe\xa5\xa2t\xf4\x18\xd7\xc5X#\
+\xc6p\x010\xc8jRf\x93\x9a\xf2\xae9\xef\xb1\x8f\
+\xfdTQ\x12\x98x.\x98c\xfd_\x93\x7f\xe4\x84\xf8\
+\xe5n<S\xfa\xa9y\xbcTJk\xe7\xce\x89\xad\x12\
+\xc9\xc5\xf3\xfc\xf8\xc7&\x8f\x16m\xdcd~EUP\
+\xb8\xc0\xa0p\x09\xea\xf5:\x8a\xaa\xe3\x85\x89\x0e\xee\xf7\
+H\xb4\x00h`xx>r3\xb7\xa2tj\x9b\xdd\
+\x15\xc5\x5c*\x7fN\xcc\xa3\xdeY\xdc\xea\xd1\xf2\xc1D\
+\xca\x00\xc2\xf4r\x10g\xd3\xc6\x94H\xa6\xf46\x855\
+\xe9)\xd1\x1e~]Q:\xd6H\x0c\xc2\xad\xd9\x059\
+\x94\xfei/\xa7H\xd7m\x969R\xa4\xf3v\xb8\x9a\
+\xa2\xac\x17\x18\x03\xcdS\x8a\xf4\xf7\xb7)\xd2\xd7\xfb4\
+\xfb6\xfbVR\x06\x17\x9e\xa3g\x15\xe9\xe7>\xabH\
+\x7f\x7f\x9e\xa2\x00<\xcd&\xcd\xa6\xcd&\xd9|\xb2s\
+\xa3\x87\xb2\xec\x0eO6\x17L\xeb7\xa5\xeb)\xd2\xeb\
+\xf1\x8a\xf4z\xa4\x22\xbd\xbeW\x91^\x9fW\xa4\xdfw\
+\x8d\x22}\xbd\x99\x22}\xfdVE\xf99\x8c\x81$Q\
+\x1d\xee\x9e\x22\x15\xbe\xa3\x1f\xa4H\xebzx~\x8a\x0b\
+\xfc\x5c\xacf\x17\xfbt\xde\x0c/L\x91\xfe|\xf8C\
+E\xfay\xdb)\x8a\xfb\x7f\xf3AE\xe5\x16o\xb3\xd1\
+\xe6\xb7\x8aJBc\xa6J\x06\xf6\xde^Qh\x01\x86\
+\xefS\xa4\xdf\xf3\x06E\x06VR\xa4\xd7O\x0dw\x1a\
+\x0a\x80\xf9\xa8\xc2\xc0\x84\xae\xe7\x1c\xc3\xd9\x87i\x9fo\
+\x8eS\xa4\xafOT\xa4\xd7\x9f(\x0a\x00?\xfc\x88\x22\
+}\xce\xc7\x14\xe5\xbe\x0d\xd7S\xa4?\xff\x94\x22\xbd~\
+Z\x91\xfe|[E.\x98\xee\x19\xdeS\xd6\xd1\xe8\xde\
+\xd1}\xa3\xf4\xfeF\xd3\x15\xe9\xf5\x96\xd1\xad\xa3\x94?\
+\x8cV\x18\xad8J\xe7\xd9\xe8dEz]]\x91^\
+\xefT\xa4\x7f\x7f\xbd\xa22\xc3\xbbY\xe1i\x122\x97\
+\xdc\x5c\x91\xbe\xef_\x8a\xf4\xba\xddp\xfb\xe1v\xb9P\
+K\x91^\xbf\xacH\xdf\xf7ZE\xc5\xa4\x22q\xc4\x8c\
+\x13\xaa\xb2\x01#\x00\x11L\x12a\xd2M\xde\xad\xa8\xc6\
+\xdaY*\x15\xfb\x90\xe7\xdb\xe32\xdf~\xbf=\xa9=\
+)\xefGi\xe7\xa8\xa4N\x8f)\xa3*\x8c\x07:\x82\
+\xed\xe2m\xf6F\xc1\xe4\xaf]W\x91^\xefM\xa1<\
+h\xd3\x14\x9b\x14\x8a\xef\xf8\x08Ez\xddC\x91^\xff\
+\xa3H\xdf\xb7\x92\xc2\xcc\x07\x01&\xe7\xa68\xa7Lw\
+\x09\x09\xa7\x01\xae(\x84\x90\x82\x91?\xc3\xb0\x80\xaa\x8c\
+\xc7N\x1f8&\xff\xf4~\x94g]-T\x01\xc8\x9e\
+B\x13\xc0\x16?\x9f\x82\xc9&\x9b\x14\x0e\x8c\xa9\x85\x19\
+Cc\x22\x0a?\xbc,\x5c\x08L6\x9dl\x96\x01\x92\
+%;wx\xf6[\x98\x98y\xccg\xca\x13&\x07M\
+\xbe4\xf9R\xa6pw&\xae\x1eO\xdb\xacl@s\
+\xa9io\x9a\x96\xf2\xd4i;N\xdbaZ\xca3\xa7\
+=1\xed\xf1i)?\x18}LQ1\x8d\xd8\x07\xdd\
+9\x07 \x8f\xe98\x0b(\xf2x\xd8\xdb\xf3xX\xc6\
+8\x92\xd7\x1bp\xd2\xbb\xc9\xef\x87\xbc\xc3\x85\x1c\xc0V\
+\x5c\x1f\x1aS4\x9c<\x8d%\xcc\x8a\x19okF\x16\
+\xccM\xa8\xe9\x83\xbb\x0chm\xe2\xf1\xc4\xceG&\xef\
+\x9dl>\xd9<{\xf2t^\x17\x06\xc4'\xcb)\xcc\
+<\xda\xa2\xcak(xi\xecQ\xe8a\x92x\xbb\x1b\
+0\x14\xe4HD\xb7\xe9\x98{\xed\x9d\x8a\xf4z\xbc\x22\
+\xad\xd7\x19\x8a\x947\x1f\xac(\xd2\x8c\xf1%\x8a\xf4}\
+\xcf+\x0a\xa3\x06\x0f\xb0\xd0\xccojF\x0e\xe7\x9b\x01\
+\x06\xea\xc0\xf0\x1000\x8d\x97\x04S\x1f\xc2\xe4\x96\xba\
+\x8c\xfa\x91\x86\x18\xcc\x22\xce\xd1~\xa7\xbf\xf6\x8e[\xb0\
+\x02D`\x06\xc2\xec\xe6>\xd2\xc8\xe19\x02\xc81c\
+-\x1a^\xe4\xb7\xe4o4^(\x98\x91\xc4b\xae\xce\
+\xfb!\xcf\xa5\xb0\xc7\x0b\x00\xa6/\xf7\x0d\xca\xbd%d\
+\xdc\xc7\x90D\xdfdST\xbc\xbdhX\x9bQ\x81\xc9\
+.@v\xe4\xbb\x5cw3\x84#\x0f\xe4sp\x9d\xdd\
+\xe8\x0a3~\xea\x1d\x18\x044|\xf1\x0a0s/\xa6\
+7\x00\x901m\xc8\x8c\xccQ \xc9\xb8\xc3\xfa\x86e\
+\xca\xd8,\xd5\x0d\x03\xc1\x7f\xde\xf3\xdb)\x8c\x19#\xf8\
+\x9f\xec\xbf^\x0a\xf8>r\xe2\xef\x8f\x85\xe8\xce\x7f$\
+r\x14\x0a/e\xf2\xf9+\xbd\x05\x16\xf6\xcf{\xa1*\
+D\x84\xeb<\xf7\x7fI\x9c\xf9\xbd\x00\x0d\x14\xf2\xdch\
+:\xe9\xd6\xd2BMd\x83\x88\x05\x09\xc2\xe2\x7f7\xf9\
+aW\x80\xe2\xde8\xfe\x94\xa2\xd2.{\xcc\xde\xd4\x8f\
+:\xe4=\xbf\x9b\x07*\x93C\x0a\xa0\x03\x8d\xb0Y\xab\
+9\xf8BG\xa5I\xff\xb6[\xb0\xdf\xf6\x01\x8b\xd6\x7f\
+\x93\x0e\xc9\x8eN\xed*^\xe8P\x97\xfen\xc4\x09\xd3\
+5\x16$\xe6o\xb3\xb9\xe3KAed\xb8\xfdy{\
+^{^\xe5r\xceX<\x03(\xcc\xd1\x9e\xda\xab{\
+\x10S\x9a\xd8uFvPd\xadu6\x91\x8a\xff(\
+\xd0\xb8\xce~@\xa5l\x95\xb6\x15MJl\x0c\xb8>\
+\xa39\x07\x81}t\xf0\xc8\xe0\x91\xcc\x94\xe8:\x1e\xd6\
+X\x86\xbb\xfb\x1d]\xa7c0\xbf\xb5\xa8F\x92C\xdb\
+\x05\x22\xff\x16#\x88\xbf\xea:\x84\x8c?\x02\xb1\x8e\x83\
+`\xa3\xee`\xe6\xdf\x0d\xbe?8Ys\xb7\xd1\x00\xe7\
+qQs\x96u1\xd9OQi+\x0d\x98\x05\x95\x14\
+\xc4\xddZ\xaa\xe8\xcc\xe3\x86K\xa2\x846~!KZ\
+\xfe\xdc\xb9wO\xedi\xed\xb8\xef\xe3d\xdcu\xa0&\
+\xef\xf7\xf8\xa0?\x9bI\x80\x86\x0ai\x01\xd4 O5\
+\x88\xf9\xa72\xfd\xd9\xb1:\x80\xbd\xaec^:\x9a/\
+?\x8f\xcc\xa3\x0fJ\x945\x92\xcc\xf7\x8e\xce\xbb)R\
+\xd1\x997%,6f\x90w\xa6\x0b\xd8\x8c)\xdc\xe1\
+\xd1\xc6\x19\xf8\x08/\x0d(\xbc\xbc\x0f\xa8\xb1$\x5c\x00\
+\x8b\xec\x17\x98\xb1\xb0\x0f@\xc9:FQ\xb4\xec\xd1\x99\
+&a\xa03\x89\x99\x1dT8(\x83H\x02\x98\xa2\xe1\
+\x8dv\xf2\x9c\xa2\xea,\xb3A3\xa5\x80\x8e\x82\xb5\xd3\
+A\x81\xfbF\xda_\xbe\x91;\x0a\x9d[\xfb\xa9\x8aj\
+\xee2\x1b<\x80\x8c\x994\xd9}\xfcWEk\x1b\xfb\
+(\xeb\xf9,\x85\x13\xd6s\xabu\x0d\x13\xcan\xf4\xa9\
+\x5c\xef\x18&\x1cd\x1b*JA\x1f\x92\x22\xf6\xff\xe9\
+\x83C5o>\xe6U\x9b\xc2\xcb}\x89\x03\xce\x85O\
+$\x5cHS\xdca\xc9<\xa3\xf7WT`\x17\x12x\
+\x0d\x04\xa0KG\xcb\x8c\x83\x00<%=\xf8h6\xbd\
+\xca\x1d\xa4\xe6\xb3\x8a\xc2\xe8\x80\xf268@QMc\
+\xa0\xd3i\x06\xd0\xf0]\x8a\xf4\xfa\xb9\x14\x9f-s\x8c\
+\xc3\x8cR\x09\xe7]e\xde|hC\xbd\xdeR\x01\xbd\
+\x89\x0a\xe8\xb8\xdf\x98\xeeX\x13L\xc7\x98}\x10\x93\xbe\
+X\xd7\xea\x87,\xed\xc4\xff\xf2\xf4>\x0eMqX\xd5\
+\xe1\xc5]\xde\xc0Ph\xde\xddQKw\xb7s\xbf_\
+EQ\xcc\xf6\x9a\xed\x15\xa53>\x5cI\x91\x13\xb5\xa3\
+\xb2\xf7\x04\x8c\x9f\xaff\x15\xab\x00\xb6\x0e %Q\xa0\
+\xc3hFRt\xc0\x19\xa7\xe6\x84)\xcc\x07-\x09\xc2\
+\xd44\x9fF\xab\x94\xfd\x5c\xfd\xb0\xdc\x11C\x22dM\
+s\xb3\xb7H\xc1\x15c\x81\xf3\xe0Q\xed\xf8\xa5#\xcd\
+\x18\xbd8\x1f@\xac1S5\x90\x83wK$\x8e\xfe\
+\xfc\xd1\xc9\x87\x99@\xfe\x82\x99\xa4\xa5a\xcd\x1f\x14\xe9\
+\xb8\xdbH\x91\xa5^\x9dD\x00\x8a\xf0\xc5\x06\x22W\xee\
+\xce\xdbf\xc7NZ\x92Vef\xda\x0c\xce\xe8:c\
+\xc3-\x14\xe9\xef\xafP\xa4\xd7\xd7(\xd2\xeb\x0d\x8ar\
+\xde\x05\x05\xf7eE6OK\x91\xafo7\xc6\x91\xf1\
+\x9d0\x8a\xe8\xf8\xdce\xca)\x09,\xde(\xe4\x03\x8b\
+w\xc0\xe4\xe4\x84\x8e)\x03\xe3\xaf\xddAQ\xcc\x183\
+3\xe1\xc7\x95)\x9f\xa4^KTf__W\xa4\xd7\
+\x05\x14\x05\xf8\x8e\xfd\x13\xa6\xcdE\x8aJ\xa2f\xa0s\
+\xb2lW\x00\x85\xb9\x15\xde\x09\x92\x08\xcc[\xf67\x0a\
+\x93\xf6\xd7\x8a\xca\x94\x95D\xfb\xbf\xec\xca\x8e\xb6\xf9\xe8\
+\x1cQ\xc8\xb1_Dg\x9f\xf3\x0f s\xc1\x14z\xff\
+\xa7wct\xc3\xed\xdd\x05E\x98\x14>\xa3\xa8$\x85\
+0\xfdv\xc9\xa2\xa8\xae\xb0X\xab\xd2\x86{\x1f\x9b,\
+\xaf\xc8\x85q\x8aj^;c\xfbF\x06B%\x15X\
+\xbf\xf2\x0ab\x1dR0\xd1XC\xaa\xc9\x94\x1c\x8f\xff\
+\xccV\xa6'T\x0c\xa8O\xf6\xe6\xae{\xdfGR\xd9\
+\xee\xa4H\xe9\xd7\xef\x15)]_3Ez\xff\xe3-\
+\x14\xe9\xdf\xcdHq_>\x87\xcf\xd69\xdc\xde\xa1(\
+\xa6\x85\x9c\x9b1u\xe5\x1d]~\xd2\x1c\xa40S\xea\
+\xc5\xfc\x5c\xe6<i\xb8~\xdaO\xd7\xf7\xd8\xd1c\x8a\
+\x87L\x8c\xa1\xa3\x00\x83\xc17\xd3@1\x1dX\x18\x7f\
+\x98\x15#\x11\xd1\xdd\x9d\xa5*\x84\x7fm\xe0\x18\xaa\xb9\
+\xc7\x0e\xc7s\x0a@\x0f\x13\x10\xc9/\x9dk\xf2s\x0a\
+3\x9b\xd7\xc5\xfbD\xa2\x0b#\xc9\x80\xe8\xe0wf\xc6\
+\xfd\xce\x9d^\xa6dP\xf0?o/\x8f\xc7:\xa0*\
+\xf2\x12:\xc1H68\x87\x8f\xcd!\x0f\x85\x14U\x03\
+\xc8\x8d\xf4\xc9a^\xef\x98\x0a~UQ:\xf21]\
+\x0afZ\xdfs\x0bI\x1e^\x1d\xe4G\x9co\x06\xc2\
+\xc3\x83\xc2L\x06\x1aF\x00g\xe4\xe3xI\x85W\x10\
+\x1de\x1a\x16\x5cW\x80w76b_\xe6sS\xe8\
+\xf7\xcd\xbf\xa1\xb0\xbb\xa1\xc7:\x0f\xef\x05:\xfe\xbd\xf1\
+\xee1\xfd\x81F\x13\xfb\x06\x9d~$\x01\x98@r^\
+s\x7fh\xf4\xc2\x9c\xe2\x1c\xc4\xa4\xd1\x0d\x88\xd0\xda{\
+\xdf\xe3y\x0f\x06\x0e\x926\x98\xd4}\xef\x00n,\xeb\
+\x92z\xd4\xf5+y7\x92\xad\xc8\xe7\x9d\x0fG\xc3\x19\
+)\x02y7R\x10\xa4\xb7xP\xd9\x1b%\x1a\xa00\
+#\x00\x04\xc9\xbf\xa8\x93}\x1dF1\x1f\x12\xa4Es\
+\xac\xaf*fH1'\x98\x1b\xc7\x05\x07\x00\x80\xf2\xcb\
+\x06\x07r\xc2\x07f\xe1\xa0\xa5\x80\x82\xe3\xd7H(A\
+X\x8d\xc4\xc5\x02\xb6iK\xde.g\xab:`P\xcd\
+\x87\xd9\x17\xbft$\x01\x0c@\x9eX@\xdc\x18\x10E\
+\x12O\xc6\x021\xe6\x0b\x0a\xd1\xd8\x1b\x16\x14\xa5\x15\x14\
+iC\xbdXa*\xdaC.\x10\xde\x5cQ\xb1=\xce\
+,S{\xf6\xf0\xc6{\x7fEi\xa6\x03\xa5\xb9\xa5?\
+2\xb5\xf5\xdb.\xd8>`\xaa\xd8\xae\x85B\x9a\xcb\x91\
+;\x0aB\x0e\xf5\x92\xb1Bq_\x1e\xf2\xc2V\xdfr\
+\xf5\x0a\xc9\x16U\xf8\xa79\x91\xe8\x10\xd3\x8b\xbaN)\
+\x14\xe2\xc1\xe9\x8aLq\xfdQ\xf3\xa3\xcad\xcf\x9a\x93\
+\xc1e\xa6\x5cR\x10\x19\xd1J\x87~\xd7Y\xf5}\x0c\
+\xad\x12\x0f<\x85\x14\xe3@~\xedB\x06M4@\x11\
+\xda\xb89| 6^\xb8g(J\x01\xcd\xfb\x9c\xfa\
+\x86\xdd\xd7\xdd\x19\x0dM\xaa\x1154q\x93\x83\x15\xf9\
+\x01\xc9\xf79\x95\xa7\xb9\x90\xc4\xf4-\xdd\xab\xae\xc3\xcb\
+\xd8C\xc6\xf0h\xec\xcf~J\xc8m\x06F\xe2@'\
+\xe3rSX\x99\xbfm\xf7\xee\xa93\xbb\x82O\x16:\
+\xd9D\x87\x8d\xd7n\xf9lhY\x03\xb7}\x99\x13;\
+8\xca\x94A\x9b&\x05b\x8c\xcb\xa7\xb5\xdfyl\xd4\
+jvK\xdf\xbc\x9a[JG\x84y\xca\x98M\xd9C\
+\x81\xc2(\xd6\x09\x00\x0f\xf3Sm\xe2\x05\xc2\x1eZ#\
+w\xd2\xd1\xb2\x86\xe9\x09\x1e\x0bv\xcd\x0d-\x13\xdac\
+\xc64Q\xc0\x03\xf80\xee\xca\x9d\xfb(\x14\xa1z\xa1\
+\xa5g\xa3\x03\x89\x05H`#d#\xe7\x00d\x1f\x22\
+\xb1\xe2\xcf\xfd\xbe\x90\xac\x80\xdc\xd2A\x8c\xfd\x81\xfd\x09\
+\xa4\x98\xcf\x03\x10\xc88\x22\xbb\x93G\x87\x07\x8a\xadM\
+\xbd\x90\x14\xc48,Kb\xe2?\xdcq\xef\xe9\xc6K\
+\x85\xc6\x0d\xca(ce\x9c\x08\x06\xd5\x8f\xf1z\x00\x09\
+\xac\xcf\xddm\x1aC\xa7\x01\x0f\x0aSl\x07\x0bX\xf2\
+pnW\x10\xc4Aw\x86\xe7(\x9f\xd9u\xc4\xdas\
+\xba\xe9\x13A%3P\x92\xd2\x9d\xf7N\xde[\x15\xe2\
+_\xea\x0e\xc0\xc1\xd7\xcc\xa0\xf8\x84\xe7\xd3Z+\x1cR\
+\x11\x12\x8b\xf7\xa5\xb4\xfe}\xd5X:\x80C\x9bI\x86\
+\x16\xdc\xfb\x1a\x9d\xc4\xcc\x078\xaf\xfa9\xeac}\xca\
+\x05\xe4\xde\xd9\xcb Ee\x0e\x05r\xee\xfd\x1c3B\
+y\x98\xcb\xc5|\xf4\xb0\x22\xbd\x9e\xa2\xc8\x85\x5c\x0a\xe7\
+#\x832\xfe\x08/\x9bl\xe6\xf7S\xaf\xdb\xc5K\x87\
+9:\x13\x14^x\x84@UU\x87\xf5\x9f\x85\x02\xcd\
+~\xdf,\xac\xa8\x9e?'\xf8a\xea\xf73Ee\xf6\
+\x85&\xdc\x9d\xc7\xa0\x98\xaf\xa3(\x00\xcf\xe0\x0ekS\
+1\xa9\xe2|3\x95sx\x88\x22#\xfe\x1d\x00\xbd\x87\
+\x81E\xef\xaf\xb9\xbcY\xab\x02L\xbco\xb2\xbe\x9a=\
+\x15\x95\xab?\xd2%kZ\xf3\xe7N\xcf\xf9\xe0\x1f)\
+\xfeY\x99\xfd\xe9]<Q=\x97\x82\x9fv\xb1\xe7\xc3\
+\x93\xd6\xf6\xaf`\x86\xc4\x03\x05x\x08\xef\x80?*\xaa\
+\xb9\xe9Py\xe9\x88\x180i~\xa2\xc8\xc0e\x07\xa0\
+\xaego\x00'V\xcd7\x15\x95I\xa0\xd7!\x00\xcf\
+p\x05Ez]n\xb8\xfcp\xf92\x963\xf2\x1b\x80\
+l\x03\xeb\xd1I\xf3\x985<\x0e\x9a%\x15E\xe3\x0a\
+\xf00\x9a\x7f4\xdfh\xber\xae\xe0\xfa.\xab5i\
+\xa7\xc7G\x8e\x8f\x1a\xeb\xdf\xaf\xa8H\xcbceEU\
+\x18z\x9fMOG\x9e\xba\x11\x9e\x07\x00\x97t\xbc\x0c\
+,#)\xc4\xe3\xa5\xd9CQ\xa4\x5c\x8c\x8f\x0c\xe0\xce\
+\xf7\xbd=YQ1\xb3>\xad\xa8:\xd0\xee85\x1b\
+)\xd2\xfb\xbeVQ$q\xc1L[\xb1\xbb.\x93S\
+'\xa7\x89\x09\x17\x1d\xa8\x07'\xff\x94$\xb1\xddL\x91\
+^\x17R\xa4\xd7+\x15\x15\xe0\xe7\xd78G-Ec\
+\xaaC\x06\xe8\xee.\x85\x09\x92\x99\xbc\x1b\xdf\x91\xb5\xea\
+/K\xab\x0e\x856\x9b\x07\xfe\xbaL\xe7\x08O\x031\
+\x9d\x1e\xf3yv\xae\x19\xa1\xd7\x1a\xc8>\xcf\xe3\xcfN\
+\xaf\xcc\x0f\xed}\x82\xd7O\xfb\xb8\x22\xbd\xce\xadH\xaf\
+_V\x14 2\x5c\xde\x19\xe3\x05S\x95B\x00\xd3Z\
+\xce\x07\xa4\x890\xeb\x9c\xdfI\xb8\x22\xe9J\xca\xb6R\
+F\x9e\xf3\x85\x0e\xa8\xf39\xd3\xbeK\x91\xbe\xef6E\
+\xba/\xeb\xa4X\xb7L\x19\x19_\xa7H\xdf\xf7\x8d\xf6\
+\x9b\xed72\xe0\xdau\xce\x1f5`\x8e\x94egE\
+\x19\xaf\x9b\xb2\xc03\x94\x07\xe6\xbc\xef\xb2\x0c\x14-\x91\
+=\x81\xd0\x82\xcbyE\xeb\xe9\x0d\x8a\x8a\x22o\xc0;\
+\x0a@\xa4\x18\xd3=\xad\xc8\x92\xd0\x18G\x86\x87\x88\x01\
+\xe6\xb8~\x92\xb4]\x9f\x19\xb0\xcb\xb4\xcbTL[\x18\
+\x92\x06X\xc2C\x07)\x22&g\x00*HT1\x81\
+\xc5$\x19\xd34\x9e\x1f\xcc\xda\x98\xf2\xc0T\x08\xbcK\
+\x0c\xa8\xc5\xfezx\x8e\x92?x\xbfE\xea\xc1\x98Y\
+$\x13\xb1\x7f\x18\x90\x0a3K7Ba\xc4\xc5\x187\
+\xa6E\xb8\x80\x03@\x22\xaf\x88F\x1fR\x08\xc6v\xd2\
+\xc8\xc3\x84\xd7R\xe4\x18\xf7\xcat%\xc6F[J\x14\
+\xa6\xd1\xae\x8b\xda\x9f(*\x0f\x94\x7f(\xcaT\x95(\
+L\xb9~P\xce)\x88\x91\x84\x92\xd7!\x0d\x18\x84\xeb\
+F\xf7\x1f\xd2o\x1a\x0f\x009\x98\x04\xba\xe3\x1f\x85<\
+\x85;\xcf\x0f\xc0\x01\xf7\x13 \x84:\x16\xa0\xe0zE\
+Uo q\xa6Q\x84&\xde\xde\x0f\xd1(\x85\xc1\xca\
++\xd3\x16\x90\x22\x92w\x19\xd8\x89}\x18i\x0a\x00\x03\
+u)u1u-\x12\x053S\x03\xc8vc1\xc6\
+\xd4B\xe1'\xefD\xf2\x82\xa4\x82\xeb\xdf\xf7\xe0C\xea\
+L~\x83\xf4\x093H\x9b7\x8f\x22\x81\x12\xa1ho\
+\xdf\x90e}\xf0_Z\xe6|G\x81KBJB\xc3\
+/\xeei[\xf2r\xaa\xb5\xe8\xc2)F\x06\x0cf7\
+23\xa8<\x06\xe8\x08BY\xe0\x81\xa4\xd0\xc0\xec\x0c\
+\xea\x0e\x9dB6x\x12\x0e:X\x98N\x99\xb9\x00\x02\
+\x19L\x06\x1eh\x95\x8dW\x96\x0d\xa4]CQ-|\
+4p\xa2\x9c]X:\xbe\xcda)\x0eu'\x7f\x9b\
+\x8aj\x84K\xb2\xc6c\xecUuv(0\x7fm\x84\
+\xc6\xd4U6\xf0\xf6\xf6\xf6/\xed_2\x10\xd0!\xfc\
+*\x17W\xad\x1e(4\x80h\xd7\xd1xZ\xdb\x19\x09\
+(\x05\xf5\xcdS\x7f\xcc\x9d\xcd9}\x7fx\xdf\xcb5\
+\xcb7\xcbWT\xda}\xec\xfel\xcdZh,\xa1\xb6\
+m\xdf\x99\xd4Da\x06\x90s\xad\x178?\x1f\xf7v\
+\xc6\xe3\xb1!c\xf6\xe3\x8eb\x5c\x7f\x5c\xd5\xd1J\xa3\
+Q1Cbr\xb8\x91N\x12n\x80\x1c\xa8.\xc36\
+\xb7\x00\x00 \x00IDAT\xa5\x00\x18\x14\xf4\xcc%\
+\xe6s<\xa0\xc8\x89cW8\xb9\x93\x11.\xc4\xf7\xfa\
+\xc1d\xbe\xf1\x12\xde@0Gy\xc1n\xf2\x98\xeb0\
+&\x8e\x8e?\xe3\xaf\xce\xee\xdc\xbf\xa7\x8e\xeaL\xf0\x02\
+\x11t'#}\xba\xdcqJ\xf7\xbd3-\xc4\xcc\x0d\
+\x8d\x94\x0f\x1a\x0a\xef\xa08\xe1\xe6\xea\x82\xa2YF\xfe\
+\xe0%!\x0a\x97y3KbC7eR\x8aBi\
+\x0a\xa3\x80f\x1dB\x99B\xe3\x8b\xe6\x17\xc6\x89\x99\x04\
+Pi\xe3~\xf3s\xe8\xc4C\xd1\x22a\xe5?\x12g\
+6\x5c\xcc\xdb\xd8\x17\xd8\x88\xd0\x8e\xb1?\xf0\xb9\x19\xdf\
+\xe7\xc2+\xb4\xa6\xbe^\xe1eA\x07\x17\x06\x00\xd2%\
+\x17\xb0\xb9\xb3\xf8h\x19\x07\x15\x1aq\x7f~\x0el\x5c\
+\xf9\xc3\x93\xc3\x05\x16\x94\xf3\x90\x18p\x90\x19\xa1\x1f\xcc\
+\xa5\xa8\x10u\xf6%\xc6\x03r@\xc0$\xbas\xea\xaf\
+554(\xb50_\x0e\xed\x9e\x8f\x98Fa\x134\
+\xe6\x1f\x879!\x07\xce\x1b\xac\xc9c\xae\xbd\x0b\xf8\x18\
+\xe3\xf6\xe9\x0ex\x1a\x5c\xec\xfd\xe1\x12w\xd0\xe8\x5c3\
+\x9d\xe0\x80t\xff\xd3\xf3\xd6>\xe0y\xdd.8B\xeb\
+\xcb~z\x97\xa9\xa9\xa7t\xeb\x1e\xcf\x00\x0a\xff\xe6\x02\
+E\xa6\xa2f\xedd\xee\xdb}\xab\x5c'\xcc\xf9\xe2\x00\
+\xe6\xc0\x06\xe9g]\xa4cT\x9a\xc4|\x0elk\xa6\
+\xd3j%\xb1\x01XDS\x19\xae\xe5\xd6Ls\xbd\xf8\
+}\xc3\x03R\xec_1t\xb4\x1e62\xa5\x7f\x9b\x8a\
+\x8a\xebu\xdc\xbcW\xe1\x84k\xf7\x8ajg\xd7\xe5p\
+\x93FB\xa3\x82l\x09\x9b\xf1\xbc\xcf\x85\xd1\x8f+\xad\
+\xb3v\xab}*\xea\x9e\x01\xa6f3Ez\x7f[*\
+\xf2\xfd\x5c,\x03\x8dH[\xf6\xb7'\x04\xeb\xda\x09t\
+<wc\xef\xa3t\x86\x0dDF\x81h\x8ab\xb3u\
+\xb3U\xb3U\xe9\xbcMvQT\x9d'K\xab\x00\x98\
+\x00H\x9a\x87\x15\x95v\x98\xb9\xe2\xac\x1f\xa5\xa1_+\
+\x00\x19\x9e\x05\xd9Dpm\x03rKT\x14[\x9d\xc7\
+\xb3\x97\x0e>\x05es\xa8\xa2H\x1dB\xbab\xe6@\
+Pk\x9d\xe8\x0d\xee\xeb\xb4\xc0\xcc_\x06\xb0\xa0\xb3?\
+Y\xcbs\xd1\xdd\xc0\x98<\xa4\xa8(\xd8nh4C\
+Ez\x9d_QI\xb48\x9f\x9c\xe8\x87)\xaa\x99\x10\
+\x01\x8cjz\xc0e%ac\xbc'R\x05:1\xc3\
+}\x15\x05\xa0n\xcfQ\xe4B.K\x87\xdaK\x15\xe9\
+\xfb\x8e\x1b\x1e;<6k\xaesbF\x9e\x80\xe4/\
+\x95_\xdd\xb8H\xf2/\x98\x80\xebt\xfb&\x8c\x95v\
+.Ez\xbd\xc7\xe3\xe4\x8eQT\x1aW3\x8a\xda\xe5\
+\x14\x85\x92\x9f\x0b\xb9\xb4o4\xc7*\xaa\x8e\xad\xa5:\
+\x91\xa0\xb3_3\x96\x0f\xf7p_\xa7\xe6\x87\x8aj>\
+\xba\x01\xd6\xf6;\x8a\xea|d\xfa\x94;\x8ea\x96\xb6\
+\x86]\xdb?i\x89\xd5\xaeN\x88\xfd\x5c@\xb1\xce?\
+\x7f\x95\xca\xbd[\xe5\xd0\xd1\xd5si/\x9e|\x9a\xec\
+\xe5\xdf\xffm3\xd1\xce\xae:\xf3r\x5c\xf9Y\xd5\xe0\
+\xf0}n\xb7Q\x14\xc0\x82\xf1o\x91or\x0eS@\
+\xe2\xba\xeds\x02\x86]L3)\xdeF\x1d\xe3\xca\x1d\
+i\x80\xcc8\x0f\x9cw\xc1\x0c\xa5\x03N\xe3\x861y\
+\xc1\xb4\x90\x06|\xd6\x8a\xd9\xe0\x86^\xfbX\xfbx\xfb\
+X\xf1\x9c\xd1\xd3\xa7|8\x03\x87w\xe4\xfd\xe2\xa4\xbc\
+_`\x96l\xf3\xcf(\x18\xc8\xf7h\xac\xa0Ew\x83\
++<\x8c\xc8Oa\x9a\xe1\xa5 \xb8\xfe\xcejJ\x04\
+RG\xa4\x956%e\x5cezZ\x9f\xd2\xf3:>\
+:E:?\xdb\xed\x14E\x22\x12\x1a{\xa6\xd0`\xe3\
+H~\x08\x83\x81s\x12`\x85\x86\x1f\x8d*\xb4\xe2L\
+\x19\x00\x98\xfe@\xc7\x98\x8c\xfd\x93\x82\x16\xb3?:\xc3\
+\xf6\xe8\x09f\x08\xe7\x01\xd3C\xec\x99\x15\x9e\x09h\xbf\
+\xcd\xcc\x0cf\x13\xe6\xce0\xac\x90\xdc\xe0\x95c/\x80\
+\xf6#\x8aJ\x9a\x01`\x82$\x8eN\xb0\x0b\xe9\xd8\x97\
+\xec\xad\xd5|HQ$\x130xh\xd4E\xc1\x8a\x09\
+\xb0\x81\x03\xa4\xa5\xed[\x15\xd5\xe7rC\xa0\x0f\x84\xc7\
+\xfd\xe1\xfa\xd0\xc0\xe9\x15\xe6\xaf\x9a\xce\xc6\xf3\x03\x10\x00\
+\x03\x80\xc2\x97\xc62\x00\x82\x1bE0~\xe2\x5c\xa6@\
+\xc6S\x0b\xaf\x10L\xc4\xa9\x0fi$\x01`\xf0{h\
+\x04!!\xe7\xef\x91\xd4\xd2X\xe2\xfbl\x06;\xb5Y\
+\x8e\x22I\xa1!NC\x8b\xeb\x00\x13\x81\xc2\x9d\xe7\xdc\
+\xccs\x9e\x8f0/\x84Y\x09`\x00\x80E^O^\
+\x0a \x80w\x13\xcc\x17{\x98\x00\xdc\x07\xe0a\x0f&\
+\xf2\x9a&\x17\xbc\xab\xfb\x82=l\xc4\xed\xbf\xabq5\
+\xba\xe1\x0bV\x0b\x18\x17u_\xe0\x98s\xca\x8d\xf1X\
+\x06\x12\xb2@\xbc\xd8\xa0d\xa22{\x99k\x9d\x17\xf6\
+V\x15%T\xbf\xe5\x84BUC\x0b\x13\xd4\x1b#\x81\
+\xed\x06\x8aB}\xe0\x81k\x1bE\xdaH\xeeS\xa4\xaf\
+\x97U\xf8\xdf/\x95\x0f\xc6\x14\x95\x06~\xce\x14\xe9\xfd\
+\xcc\xbcE\x91^?\xa5H\x7f\xfe\xc5\x14\x07\x16*N\
+6\x1b\x92\x06\xf2\x07\x8at\xe1>\x90b\x8b2\xb7\x19\
+\xe4\x9fB\xae9Y\x91\xbe\xff\x22\x85\xb5vic\x1c\
+\x9e\xacH\xeb\xec\xc1\xd1C#i._T\xa4\xaf\xef\
+\x1e\xfd}\x94\x16\xe2\xe8\xc5\xd1K\xa3t\xc0\x8e\xe6\x19\
+\xcd\xab\x0e\xc2\xe8\xdd\x1dEq\xda\xd1\xd3\xbe5-%\
+\xd4\xa3_\x8c\xce\x1f\x9d\x9f\xbe\xbe\x7f\xda\x03\xd3\xd2\xc6\
+>\xfa\xf6\xe8;\xa3t\xb0\x8e6L\xdf\x99\x12\x9c\xd1\
+\xe6\x8a\xf4\xba\x96\xa2zmF\xc3QJx\x86\xefV\
+\x14\x8d#\x89^J\xdf\xb3\xe6t\xf0\xben\xce-\x14\
+\xfb\xc1\xddN\xfcOR\x14\xaa\xf7\xe0\xd4\xc1i\x83\xd3\
+\xaay\xcfN\xa0\xd0r\xe1\xea\xdc<\xa1(Z\xd4\xa0\
+`\xfeTQi\xaffQ\xe4\xc23\x1f\xe0\xcdc\x8a\
+L\xb5\xce\x1bYP\xf4\xdcY\x08M\x16\x0c\x92\xdf\x1b\
+\xc1\xe3\x81\x00 \x01\xb1\xfb\xb2\x916:\x9d\x14\xaa<\
+\x98\x8b\x98\x81\x02u\xff\xa3\xee\xb4\xd1Q\xb5\x0b|\x14\
+~Ow\x85\xc6\xd4\xa9\xa6\x8ec\x02\xe4\xc24:\xc6\
+F\xc6c\xdc\x07\x9a\x1d\xb4\xf8\x8cY\xe1 E\x12A\
+g\x95\x02\x13\xd7z\x98\x11 \xf7vO\xc7\xbc\x04\xb3\
+\xb1fcE\xd1\x06\x82D2\xc78\xe6\xdc\x82@\xc2\
+X05=\x12\x01\x10iL\x85x\xbfl\x90h\xe8\
+\xa1\xd8\xd3\xc9\xc6\x9d\x14f\x83\x13\xf0(h\x90\x06\xb1\
+ABM\x82\xaa\xe4\x0dn\xf0\xbc\xa2Lc\x88N\x04\
+\x12\x0a~\x9e\x91\xcd\xe6\x1eE\xe5\xe2n\xf3\xa1f\xac\
+(.\xf8\xc3o)\x0a\x851L\xc6\xbe\xa6(c\xdd\
+\x82\xca\xe8u\x83&9\xcc\xc7\xb8\x1fP\xfa\x9d\x08\xc5\
+\xc1 \xc9\xc6\x9f+S!\x03+\xbc/\x9e\x97\xa0\xd0\
+\xa3\x8d\xb4\x97@\xb8\xf1\xfa\xf9\xe2\xb9 a\x88\xe7\x88\
+\xef\xbf\xc2\x894\xf7u\x1f\x03f/v.\xca\xcd\x99\
+\x8aJ\x0b\xfc\xc2\xf0y\xed?\xc39\x14\xe9\xf5\xca\xe1\
+U\xc3\x94\xb8\x0e\xa7\x8b\xa4\x9e\xff>\xefO\xc39\x15\
+e\x1e\xfcpqE\xde\x0fO\xc9\xfb\xe1T\xf60\xea\
+4\xc7\x7f,\xdf\x97\xb7\xe3\xb6$\xe6\xa1\xe1\x9e\xd1M\
+%\xc8\xe3\xf5\xd2\xb9\xd0<\xa9H\xaf\x97(\xaa1\x97\
+</P8)@a\x9c8!l\x16Q\xa4\xd7\x91\
+\x22\xbd\x1e\xafH\xaf\xb7\xa7\xb8\xa3|\xde\xdc7\xfa\xa0\
+\x91\xf2\x05\xcaz\x8eBN\x12\x8c\xb6\xecG\x9a\xbb>\
+\xf9W1\xa7\x9c|OQI\x1ct\x5c?Vi\xfc\
+WM\xa1\xe7\xf0y\x85\xc7\x02\x9eR\x80%(\xf4\xe1\
+6\xfc\x88\x0fn{I\x0co\x18\xde8\xbc\xb1h\xbb\
+\x87\xffP\x94\x82\x12\xb3\xc7,$\xb8\xbc\x14\x10!\x1d\
+1\xe5?\xa8\x7f\xb8s?\xa7(\xcc!4\xc1QX\
+\xd9\x8cm\xf2\x09E\x91\xe65\xefI\x91\x9e\xc7\xe6F\
+\x85\x9f\x93\xa5\x8b\x89\x11\xa6\x94\x98\xeb\xa1%\x1f\xed\xa5\
+H_\x7f?\xc5IU\x82\x0b\x85\xdc\xfbPs\x8e\x22\
+}\xdf\x9b\x15\xf99\xcd\xeb\xa5\xd9\xba\x93\x184ol\
+\x16o\xd2:k\xbe\xaf\xa8\xe6\xa0[\x82\x10\xe7\x0b\x1d\
+\xfe\xf5\x9b\x0d\x9a\x0d*3\xbe\x1d\x14\xe9\xf5rEz\
+\x9dCQ\x9dc\xec/\xee87\xe7*\xd2\xeb\x12\x8a\
+\xe2\x010m>\xc5\xd4\xd4,\xcb\xcd\xb2\xec,)\x9f\
+\x98v\xeb\xb4[\xa6\xa5|at\x94\x22\xbd\x9e3:\
+{\x94\x0a\xcbf\xf6n\x0c \xe3d\x07\x07)\xd2\xcf\
+9S\x91\xbeo\x1bE\xfa\xfa\x9b\x8a\xf4\xf5\xcc\xd1\xcb\
+\xa3\x94O\x8d\xde\xa8H?\xf7c\x8a\xf4\xf5\x8d\xa3\x1b\
+F7\xa4\xaf\x7f1\xed\xe7\xd3\xd2s?\xedW\x8a\xfc\
+\xfd9?\x98\xf6iEz\xddx\xdaF\xd3R~0\
+\xfc\xb3\xbd\x06\xf0\xa08\xa4\x99\xdeL\xcfS%.\xd7\
+T\x89\xec\xadpa\xfa\xf3\xfdS\x1cPiR5U\
+\xe2o\xee@.S\x5c\xe9#\xc1%1\xa7\xd0\xc7\xd3\
+\x04\xc9\x91\xa7+\x84\xc6\x9as\xf2\x94NJ\xc7\xf8\xc8\
+\xe1Y\x8aj\xfd\xc0\xacY\xd1\xe7\xbf\x1b\x1b\xe4\x19\x9c\
+\xe7\xe1\x01\xf0\x0b\xcf\x9d?R\xe1\xbcr\xcdJ\xd2\xa5\
+\xf3\xf0\xd3\x85q#'\x87\xec\xe5\xf0\x0dEz\xddP\
+a\x93\xc5wTce\xfd\xfcF\xc7\x0d\x06\xa4\x18+\
+\x8f\x97\xfc&\x18\x8d0uH\xc4\x01z\x01\x8c`\xe8\
+\xd8{\x01\xe0\x9d\x84>\x1874\xb6\xf0\xa2qG7\
+\x98?\x8c\xdf\xfd\x8c\x81}\xcc\xe2\xc6\x8a\xf4\xfa-\x9b\
+\xb9\xa9\xedqcU \xba\xb37\x9c+\xed\xd7\xba\xee\
+\x0b\x0d\x17\x1c\xa6\xe7e\xb4\x85\x22{S<:J\xfb\
+\xcd\xe83\x8a\xf4\xba\x9d\x22\xaf\xb7\x14U~(\xaf\x93\
+\xb5\xab\xbc\x0c\x8a?\xf9\x14\xfb\xaf\xa5\xb9\xd1IU9\
+v\xae%x\xdf\xed\xc6VfO\x1e\xcc[\xbd\xaeX\
+\x7f\xf99\x14Sv\xf3N[?\xb5~\xd7`\x00\xd8\
+\x093^\x98 \x14\xf8\xdb\x1a\x80Z\xcf\x85\xfa\xae\x06\
+d\x9c7\xa53\xa2\x1b\xbfF!O\xde\xc7\x1413\
+\xb0\x02\xb8:\xa39\xbd9\xbd\x9a\x9a\xe4B\x10\x93\xc6\
+\x90\x08\x02\xb8\xe3\xf2o\x00\x01\xe0\x1f\x09E\x98.\xd3\
+\x10\xa3a\xeaF\x01\x0c\x22\xc6\xc5b\xae\x1a\xf9'\x0c\
+1{\x8e\xc0P\xe2\x9c`?\xa6\xf1\xd7|Z\x91~\
+\xdeo\x15e\x7fi\x96R\xa4\xaf\x8fQ\x94s\x97\xf1\
+\xaf\xc1d\x83\xe1\xc6\xd4\x1c\xa6\x1f\xd9kK0\xb2\x80\
+d\x80\xf70\xa7\x83\xd1\xeb\xe7p\xb2\x80\xa22\x17D\
+*@\x87\x9b\xf1\xca\x00^t\xc6)\xc4)\xd8\x19\x8f\
+\x8a\x87\x15\xd2\x83\xbaq{Ei\x88h\xc6J\x9e\xb2\
+\xc2XAKx\xa3!\xe3\xc6a0Th\x1c\xd1\x10\
+#\xff&\xdf\xa3\xb1\x050\x08\xc3\x99|\x97:\x83B\
+\x9f\x86\x16\x8d2\xcc\xba)\xf8i \xc1\x90\xe6s \
+5\xe0z\x00\xa4\xd0\xe0C\x12\xc6\xf8k\xd6'?\x9f\
+\x06\x1b\x8d\x14\x80\x1e\xf6\x1f\x80Z\x80m\x80\x22\xaf\xb3\
+\xd1\xf8\xeb)\x8e4\x12\xf5\x96jA\x5c\xddQ\x8f\x82\
+\x12\xe8\x8eE\xb3`\x8a\x05\xac\xfd\xda\xb7\xa2\xf2K\xf3\
+\xb5Gq{\x0d\xb7T\x10/\xcc\xfa\xb4\x1c~\xef\x82\
+a\xc5\x8a\x22mJ\x0fcU\xe2\xc2\xd9\xb5;'*\
+\xbf\xa9\xcce\xd0J`\xc6\xa0\xfe\xf0\x93\xd64N/\
+\x94\x8c(``(\x90\xb0A\xc9\xed\xb0D\xb7?\xab\
+\x02\x9e\xf1M\x1a\x17tv\xe5\x9ejm\xe9`\x0e\x9b\
+\x97\xbc\xabsI\xc65u\xf0+w\xda\x16s\xa7f\
+\x86\xc7CA\xf1a\xae\xb7\x91\xa2\xe1\xaa\x9d\xf9S,\
+,\x0a@\x90(>\x07\x05&\x854\xe64hR\xb8\
+\xd1##Vl8/\x98z\xe6\x8eQ\x14~Py\
+<ov\xb0jg\x0a2\xf5\x97Wj\xa0\xa3\xf3\xce\
+Bc\x9e\xa7]\xa7\xd3c\xd1Q\xf58\x10\xa0\x22\xa3\
+\x89Ec\xcd\x83\x816\x08\x17Vw`\xc3\xf5\x127\
+v:\xa7\xbf\xef6\x90\xc9\xee\xa6@Q\xe8\xb3\xae@\
+ \xe9\xe8\xc3\x04\x802\xca\x83\xf9\x82\x11<\x1e\x1c6\
+\x80\xbf\xfb:\xb0\xde\xe8x[\xeb\x16fp\x14\xc0t\
+\x927\xb3V\xafG!K\x0fi\xd7!\xc7\x95\x97\xa9\
+\x10\x98\xf6\xd0\xf9\xe7~\xc3\x94\xa0\xc3B\x02\xc286\
+:\xf7l |.(pt\xb6L}\x0es&\xa8\
+\xe5\xcc\x1d?\xd7c|\xa0L\x91\xd0\x99\xb1\x12\x92\x02\
+\x0a,\xa8sP\xa2@p\xb9\x7f|\x0e\x90\x5c\x90\xda\
+\xdex\x14: \xf1\x9c\xf3\xef\xf8\xbc<z\xa6\xc4\xd1\
+I\x8bN\x03\x89\x07\x07\xbf\xef/\x1dO\xc6\xe0\x05E\
+\x9e16\x007v1\xcf\xe3G\xdfPi\x9d\x0d\xd0\
+P\x98F\x82\xe0\x0dy\xf2>E5\xde\x8d\xa9\x15.\
+\x8cB\xd2\xc3\xe7cn/[\x8a\xa8\xd1\xff\xc8T\xe9\
+\x9b2E|\xb5\xc1\xaa\x19\xa0qa\xca\xc1\xcdA\x1a\
+\x00)\x9e\x0b\xaf30pw\xa7\x01\x0e\xaa9\xee\xe3\
+vE\x16\xff(3\x90v\x1b\xec>\xd8\xbdrg\xbf\
+?\xfd\xfd\xfdE:\x13\xa6\x95'\x0eN\xc8\x9e\x1a\xa6\
+v3\xdf\xb7\xd9\xad\xf9|\xb3[~\x0e\x07\x19\x10\xdb\
+9\xa5\x01;\xe7\x84\xf7\xea\xcc\xf4A\xebw\x99\x19\x05\
+\xbf\x1d\x5c7@Sy\x95\x99H\x97\x15\x8a\xbf\xf83\
+\x99A\xc3\x186\x12\x06\x80\x11\x5c\xfaEM\xdc\xb4B\
+\xc4Mq\xc5<jtX\x0a\x01\x11W\xa7\xb8\xa6b\
+\xf6\x00(\xf9\x00&\xf1j\xde\xa9H\xdf\x7fU\x07d\
+4\xafO\xb1\x90\xd7\xd5=^/\x07;\xf1\xde\xaft\
+\x88Cb\xa4U\xb4\x92\x01\x88?W\x8c\x05:\xed\x98\
+\xa2\xa1\xf9\xb3\x99Rx]\x080x\xc4\x0d\x8bI\x01\
+~\xb2\xd6\xfa\xf3\xd5\x01o)@{\xb0\x22\xbd\xdfK\
+\x86\x17\x0f/\xae\xdc\xf9\xdd\x09\xa2\x13\x8e\xe4$\xbc&\
+>\xe5\x82\x02f\x03\x85\x18\xaf\xef\xea:\xa0\x14\xc0\xc1\
+LSB\xbew\xc5\xd8\xa1\x93\xe3\x04\x0b\xb3\xde\xf6!\
+Ez_\x7fM\x91\xf6\xf5\xe1\xcd)\xfeXI\x18\x18\
+\xfb\xf7\xd7\x14w\xba\x90\xbc\xab\xea\xf0\x7fQQ\x8d\xa5\
+\x03\x084\xd0E\xe7?<>\xc66W\xbdf\xb0\xcf\
+`\x9fR\xc0G\xa3\xe1\x22wB\x1f\xb6\xeb<\xc03\
+\x80,\x9d_{\x95\xa4\xa7!\xff\xdc\xf1\xb5\xe3k\xc6\
+\xd7\x14\x06cs\x9f\xc7a\xbe\xab\x03,\x908)\xfd\
+\xcf\x05\x00@\xa3\x19_\xc3\x13\x9d\xa0\x1f\xd6\x15\xd4\xcd\
+\xa5\x8a\xc20\x9c\xdc\xd0iQC\x02\xc3X>w\x8e\
+\x9a\x9d\x14\xc5+ $\x09\x00\x99.lb\xce\xb9M\
+P\x83\x99\xe9}2\x12t\x9b\x92\x0dN\xeb\xd6+\xe3\
+\xad\xdaw*\xd2\xef\xfb\x8d\x22\xfd\xbe'\x15e\x8aA\
+\x9e\xa90\xa7\x13\xe3C\xcc\xec\xbc._\xa7n\xdf\xa0\
+#\xaf\xf4\xfbV'\xcc{eI[\x8aj\x5c'\xfb\
+\xe8M\x8a\xf4z\xab\xbd\x80\xdcQ\x82a\x01%\x1f*\
+||\x9f\x98A\xdf\xac\x12\xf7\xf3'\xd9\xc5?\x0a\xfb\
+\x89=op\x89\x7f\x9b\xa2\xd2n\xe3\xbdc`K\xd9\
+K\xd6\xce\x03Tx\xbc4\x1a\xf20\x85\xd4\xfdy\xbe\
+\x98\xddf\xcf\x83#+w~3cd\xbd\x9c\xcd\x97\
+\x97Qx\xdf\xdb\xad\xda\xcf\xdciD\x9a89PQ\
+\xe5;\x00\xd3\xb8\xa6\xdb\xc3\x00\x13U\xbcN\xa2\xc0\xc1\
+\xd3\x81\xfc\x18\x97\xfc5;&K\x1e\x83\xf8\x85\xac\x19\
+\xef<\x05h\xcc\x19@\x0cF\x83\x19\x0a\xcd\xd7\x14\xe5\
+\xfd\xe6\xa9OgW\x0c3\xa4\x1d\xd6\xc0S8\xd1\x00\
+\x00@\x08\xe9\xa6\xf7\xdb\xf0`\x22?p\xa1\x16\x0d>\
+Q\xf8o,\xfbjP\xe89\x8ft>\x1eTM#\
+\xa1\xc1\xc1X\xcf\xab\x06Wfi\xa9=\x99\xf0\xd8\x89\
+\xf9\xf2>o\xe9D\x87\xa4\xd2L\xb7\x94cv\x1dQ\
+\xf2\xb7y}\x1d\xaf3\x83\x99\x02hK3O\xf76\
+\xb0\xeeFG\xe4\x05\x97\xf8\xfdQ\x8f Ab\x0c\xb6\
+\xa4\xbbgVu\x89%\xc9\xe1\xa2O\xc7\x9b\xfc\xc7\xd2\
+\xc7\xc8K\xc8o\x00\x8a\xfe\xa7c\xf6\xc4\x986\xa4\x9c\
+0\x05\xbd?#\xe5d\xdf\x8c\xbc\xcb\xe7w<\xc7\xec\
+?\xe4\xe7x<\xb9S>Y\xd4\x0c\x8c\x0fu\xbf'\
+\x1a\xa8^o\x0011&\x9a|\x9a\xc2\xd1\xfbV\xec\
+c\x1e\x7f\xce\xfa\x8b\xf3\xd2\xd7':\xe2\xdc\x17>\x17\
+Tu(\xec0\xf1`\x8c \x09\xa2\x03\xcf\xf5\x87\xd1\
+\xc5XR\x1a\xd0\x9cc\xd4M0U)\xa0i\xb8\x99\
+\xf9\x1cR;\xf28\x03\x0a1F\x0f\xaf9\xf2^\xa8\
+\xfc\x5cG3F\x03\x18\x82\x810\xb7?'y\xceK\
+\xa9\xeax)7\xce\xc7YZ\xf6X\x16\xe1\x14\x00\xc1\
+T\xbc\xfet\x14\x00G\xbc\xb3b\x9a\x9b\xaf{\x98\x9f\
+s\x7f\xecuBC\x0a\x86o\xd4o\xd4\x83n\xd0\x01\
+(\x8cf\xde\x94\xe2\x0f\xa5c\xc7\x18\x16MWW'\
+\x87\x03zx\x8a\xa2h\xf5\x029\xf7k.\xbc\x0f\xab\
+\xa8\x86\xd2\xa6\x9cSQ\xbd\xd1\x22\xa3\xe5\xf7\xc6\x1b\xd2\
+\x03\x95\xb7_\xb4&\xe5c\xee\x00\xde\x5c\x16H\xb8/\
+r#eR\xf7\xf1\x8a\x12.\xc4\xfd\x98\x0a\x91\xb2\x86\
+4~\xaf\xa5\x0dyyL\xb3\x1b\xe2\xbc\xbe`?\xaa\
+:IF\xd2\xc2T\xca\x85\x95\xd2\x12%&1\xc7\xdc\
+\xd4s\x0eD\x16zP\xd2)\xf4\xe9\x14\xb9@\x8a\x1b\
+\x08\x15\x05\xc0\x05\x13 :\xa9\x14\x98\x14\xf4S\xe6l\
+^\xd5\x1d\x84Y\xf9vG\xb5\x11\xd0\xf1f\x8e3\x1a\
+\x1b\xb8\x9e\x8b\xba\xc0\x01\xe1{\x8fM\xdd\xdei\xaa\xf9\
+\xda\xfe\xbd m\x1c`hj0=\xc3d\xce^\x09\
+\xe9\xbdw?\x17\x0d\x1b\x05+\x9al\x00\x03\xa8\xf8\xeb\
+\x18y\xf7\x98;\x1e\xf8\xa0\xbc0\xd7\x1d\x8d\x15\xf7\x1b\
+\xb7\xd2\xf9\x9cx3\xaf\x17*\x0c?\x87\x0d\x8f\x8d\x08\
+\xe0\x073\x9a\xcbM!\xdf\xd2\x08\xfc\xcb.\xdc1S\
+\x92g\xc3\x8c\xaa\xd0\xe7`\xa6@d\x83\xe1@\xc1\xcc\
+d\x11\x9bY\x22\xc1\xa0Pf\xe3\x83\x02\x8f\x16\x90\x9f\
+\xc3\xcf\xe7z\xf3{\xf8s\xee\x1f\x1b)\xf7\xbb?\xef\
+\xd6f^\x01\x8c\x000x\x03\xe4\xe0\x08\x0a\x1e\xa6:\
+h\xadA\xd8\x9d\xd8\x87\x86\x1fJ\x19\x85\x08\x1b*\xe6\
+9F\xd0\xe3s\xc3\xac\xc0c\x83\x8d\xf0\x1b\x96H\xb0\
+\xf1\xb3\xee)\xac\xcdh@\x82\x81\xe9P\x144F\xd2\
+\xc3\x15\x19\xa4\x13\xcd\x1e\xae\xf9H\x1b\xe8\xa0\x98Z\x9a\
+\x12\xfe\x14N\x18\x1f\xaf\x10|:\xe7h\x06\x01\x9e\xa0\
+|1\xff\xd6\x85Q|^\x7f\x9e0?D\x02\x03B\
+\xee\xf7\x89yZ\x8cWDCm\x93\xcd`r\x18\xd0\
+\x0b\x8d\xe3\x87\x0d\xf0\x00\xa8\x00\xf41V\x08\xa6\x0e^\
+\x01P\x1956\xed;\x198Y?\x03'\xda\x91\xa6\
+\xb2\xe4\xe8;\x92\x1c\xb1_\xe5\x82\xe7\xb4\xca\xcc\x8b\xf5\
+\x05\xa0\x85\x97\x03^%\xdaW\xd6)\x7f\x1e\xd4w\xcd\
+\xa9>\xab\xcc'N\xa7AN\xb4\xc3\xcc\x8a}P\xe5\
+\xdfg\x5c\xc8\xfe\xa8\x92\x94\xa9\xd0z\xc6\x8c\x90\xf4>\
+\x9aGR\xc8\x9d|\xff\x14)\x91\x1c]\x99\xe2\x0aw\
+\xf2\x8e\xaa\x12RL[\xe900\x96\x0b\x00\x15@\x14\
+\xc0\x0f\x8a#To\xc1d[U\x85\x15L\x1d%R\
+\xbbU\x09*@\x9a\x0b\xb3\xd0\x8a\x93hQ\x983\xbe\
+\xd3\xe3\x0b\x91\xb6Q`F\xc7\xfc\xb7\xcd\xf5\xcd\xf5\x99\
+9\xa4(\x80\x0e\x0c\xab\xfb\xbb\xcfG\x87\x1b`.:\
+qx@p\x9f|\xf0c\xae\xd7\xdck\x06\x0c\x8c\x88\
+;\x15\xd5\x18^4\xc6\x9eZ\x12\xee\xdb^\xd7x\x87\
+\x04\xd0\xee1\x8eY\x88#\xed\xf5\xc1\x0a3\x93\xbe^\
+\x98\x99\xa1Q7\xd0\xdd\xdc\xa4p'USknT\
+T\x8c\x97\x8b\xba\x04\xa6\xb9N\x91^\x91t\x5ca&\
+\x1a\x9d?:3\x9cohZa\xea \x89C:\xe4\
+)&h?Czb`\x8f\xce>\x9d1\xa6\x01\x00\
+\x1c5?W\xe4y\xe6\xb9\x03\x0a#ex\x83\xa2P\
+j)\xb4\xa7\x1e\xc9Q\xd6\xa3\x13\xc5\xd0\xcc\xba\x80o\
+\x8eVTfO\xa6\xde\x87\xf4\xd1\xa6w$\xb4\xed\xaf\
+\x14\x95D\x08\xa6\x8a\xaf3\x00\xe5\xf8\x1f\x8aJ2i\
+s^4\xbf\xd1(0\xf0\x92\xb2\xa0\xee\x5c\xa2C\xe6\
+\xf3\xb19RQ1\xe2\xd8\xcf\xdd\xd9\x8e\xc4\x1bm?\
+\x92)\x00T\xa6\xc0@\xad\xbf\xc5@\xaa)\xc6x\x1c\
+\xc4\xf4\x22\xc6\x96yZ\x11\x05I\xfb\x8c\xa2\x9a\xfe!\
+\xad\xfe\xd9U\xc3\x86|\x80\xc6\x01L4\xf6\x17\xdf\x0f\
+\xf6\x850\x09\xa6\x00eZ\x8b\x19\x1a\xd9e\xfd\x8e\xca\
+\xc4x\xfd\xdc\x83.\xc0\xca\x11\x8a\x8a\xd9*i\xe7\x17\
+\xaa\xe7\xa2\x97\xef\x84\x16\x1cI\x18\x94f\x00r\xae/\
+\x1ao\xcc\xcc`\x16`\xce\x8a\x97\x81)\xf51&\x0e\
+\x09\x00\x0d\x05\x9f\xa7\xc3\xcf+\xbcOL+\x05!\x1d\
+c\xa6`e\x1e\xd5u\x15\x93\x00j;\x05\x93\xa7{\
+\xe5u\xf3P\x95\x87\xd8\xec1\x0a\x0a\x00\x0c\x9f\x03\xac\
+\xbf\xb8\xde\xf5\x14\x8eu*)\x84\xcf\x99\xf6\xbb\x8aj\
+\xfa\xc0|\x93\xf9\xf3\x94\x9bou\xde\x07\xc1\xf4t\xbe\
+\x14\x00\x19\x9dQ\x98\x7f\x1f\xb7D\xf0\xfd\x96\x96P0\
+\xf2\xfe\x98\xbaC\x01\x84\xe4\xc4\xd2&:\xdb\xcd\xdb\x14\
+\x19\x98:n\xea\xb8\x0ah\xf8\xaa\xd7?\xd2,\x8f\xe7\
+c\xbc[Lq\xe0\xb9?\xda\xef\xdf\x00BH\xf80\
+'\xb5Y5\x12R\x00\x95\xf0bCz\x81t\xe1\x90\
+\xee9m\xb6l\xb6\x10\xe38\x80/\x982x\xce\x9c\
+l\xf3j\xbc9\x98\x86\xc4\xf4\x04\x8f\x0bn7\xee\xc6\
+y\xb7[+*\xef\x10\xc6\xfb\xe2\x81D^O\xdd\x00\
+\xc0\xc7>\xc7\xef1c,\xcc\xb7\x91\xa8\x91?\xd84\
+\x1d\x80<\xf2C\x17\xceQ\xe8\xbb\xae\x8a\xf5\x06\xc0N\
+\x1e\xcft(7\xb8\xa2\xe1Cc\x89F_\xdf\x0c\x9a\
+z\x8b\x06\x1a\xef\x13\x09\x07@\x0d\x0dQ\xf2m\xa8\xfe\
+0\x12(\xc8\x91\xf6\xd0\x18c]\xd9\xfc:\x95\xf1\x9d\
+y:\x85<\xef\xc7\xf5Q\xec\xa3H\x1e\x1f\xce\x90\xf6\
+T\x1e>\xfa?y\xff\xea\xbc\x01\xb8\x0e\xd4\x09\xe49\
+\xd4\x93H\x1f\xc8\x97i\x90\x01\xb8\x22)\x06\xd8%\x7f\
+d\x0a\x88\xef\xdb\x88\x82'S\xa0n\xa94\xb0l\xe4\
+\xc2\x055\xae\xee\xdf\x0a\xcf\x19^\xa0\xa2\xcc}WQ\
+ikM\xc1\x08\x13\x0c_\xa0L%Y\xac\xba\xf0$\
+PZ\x16\x97\xb8`}]\xf5\x80c\x16hWV\xb4\
+\xb1P,\xf3\xf29\xd5\x09\x99\x0a\xf9\x97:\x8a+\x1d\
+\xd2\xdc\xf9\xdb\xa0\xea4;\x11\x03\xa1\x0d\xf36\x9b(\
+Eb\xcf\xdc\xf4;\x14U\xa7\x95\x0e\x15\x05\xff\xd3.\
+\xe8,\x89\x88i\x06l\xf0P\x9bA\xbc\xe8\xa8C}\
+\xe6A\xa00\xe4\xcf\xb9\xf1ku&\x16\x03:F/\
+\xb9 Y\xcaZ\xe8\x9ftS\x0c\xd8h\x03Y\x86\xc2\
+\x02\x95\x1a@\x81\x83hI\x178\xa6LG\x07\x9a\x0e\
+6\x05\xbb;\xd0\x03\x1e\x18kP\xa3\xd3L\x81\xcb\x83\
+\xca\x03F\xc1\xcbF\xec\x8eo\xda\x86\xbb1\x1e\xe5\x01\
+\xec\x0er\xc6{@\xd5\xe2\xa0\x04\xd1\xa7\xc3\xcf\xfb\xc7\
+\x5c\x12\xa0\xc0\x07`\x004$\xe2$\x06\x14r\xdc'\
+\x0e\x04:\xe9\xbd\xe9\x10Q\x08\xd5S/\x9e\xaf\xee\x13\
+L\x86\xfbl\x0e\xb2\xa27\x8a\xbe9]\xdf\xf5\x94?\
+\x07(\xc1\x04\x84\xcf\xc3\xef\x81i\xd1\x1f\xc7\xc9\x81\xc0\
+\xfa\x00 \x01\xb0\xe1\xf3\x18\x81\x8e\xa9\x08\x00A\xfc\x87\
+\xfb\xb6\x0b\xc5p\xb7e,\x0d\xa6w\xb8\x01\xb3\x01q\
+\x9f\xf9\xfd\xac+(T\xb8\xffSx\xc1\xe8\xc0D\xcc\
+\xe3\x83b\x9ds@S\x08C\x99\x83\xca\xbc\x93\x0b\xe3\
+#\xed\x05p\x5cw0\x07\xd2n\xcaTtn\x01\x1a\
+M-&\xd1D\x0b\x17\xde\x01xA\xf8\xfb\xe2\xe7Q\
+ \xa2\xc9\xc4l\xd3\xd7\xb9YKQ\x8d\x9d\x83\xf1b\
+\xb3\x9c\x18g\x84\x1b\xb9\x81\xb8\xe6\x13\x8aBi\x0fs\
+M\x8d=\xfbJu\xbd\xe9\xf8\x22\x89\xa1\x93\xeey\xbc\
+\x00\x01\x83EL\x89\xe3y\x81\x0a\x87\xa7\x08\x09\x18s\
+f\x9fN\xff\xea\xe9j_\xf5ud\xdew>\xd0\x8f\
+\xae\xb4\xde\x8c\xc9\x01\xb0\xa1\xc0\xf18<\x0d\xa1\x93\x9b\
+;\xd3.\xf21\xf6\x80;\xb1s\xe6\xf7}\x96:\x86\
+\xaf\xa2\x002}E\x1d\x86\xcd\xcaX\xb2\xc1\xfc)\xe6\
++\xeb\x0c\x89\x95\x08\xd5\xa2T\x87\xb4\xea4K\x8e\x90\
+\xd2\xf8s \x99\xa0\xc0\xa4\x90j\xf7I\xb1\xb7;\x88\
+k\xbb\xf3\xf7\x97\x0a!\x7f.s\xb6\xca4\x15\x12\x81\
+{3\x97\xa8P\xea|N\x05p\x03\x83\x0a\xca\xae%\
+89\xfd\x9b\xe1\xf5\xb2\xa0\xcf\x9d\xab\x8b\xc6\x9e\xf9\xc4\
+\x5c\x97p\x8f\x7fSW\x88\xc2\xf8\x81*\x8e;{L\
+\x15\xe1\xf9q\xc27\xd9K\x91\x19i\xd9\x0cW\x023\
+I\xcc\x9ai\x8a\xca\x95\xfe\xdf\x8a\xca\x05\x1a/\x02\xb4\
+\x9a\x98z\xfa\xbc\xe3<\x8712y\xb3\x22]\xcfy\
+\x15\x9e\xa6\xa0B\xf9\x0b\x8a\x8a*\x0au\x15\xca&\x92\
+\x9c[-\x05;\xa09\xb090\x03\xf6]\xe1\xc29\
+`\xa9J\x00\x01\x1e\xdf\x18SYL\x19\x0d31\x03\
+\xf5\xb1O\xb8\xa3\x16\xe7\x17&Q\xbe^\xe1\x15c\xef\
+\x15\x12\xfd\x90\x8a\x98\x22><B\x91%\x083\x9b\x99\
+e]\x0d\x9fR\xa4\xd7]\x15\xe9\xef\xff\xa2\xa8:z\
+t\xc8\x9d\x7f\xf0\xdc\x85\xa6\xdd\xef\x07\xedl0\xf80\
+Wu\x82:\xb9@\x91\xae\xf34E\xf9\xdcA\x1d\xf7\
+:\xc0\xa4o|\xb0\x22}\xff\xeb\x15\xe9\xf5\x1d\x8a\xac\
+\x99\xbe\xa4\xd58\xb0\x0f)\xaaN\x15\x80\xa2\xc7\xcde\
+\xe9\xe25\xa5\x13\x9f\xaf\x7f\xfa\x1c\xe3\x1dS|\xc4\x00\
+\xdefv+_?\xfd\xbc\xdd\x15\x85\x19\xda|UQ\
+\x01ENlq\xd7o\xb7o\xb7k\xd3z\x9cy\xc8\
+\xcc\xe93%\xb5\xcc7,\xbd\xde\xa5(\x9d\xad\xc9\xdb\
+\x15U\xc1eO\xa9\x90\xa6\xa2)\x87\xa9IB\x0e\xa0\
+\x81G\x8cN\xa7j\xdaR;#\x85\x0a\xb2\xd9R\xcc\
+^\x15\xd6\x8c!u\xc7\x9f\xe74\xf6\x81\xa7\xf3\x8e\x19\
+\x85\xb9,\x1be\xda\x88\xe6\x9a\x8e4\x0c\xd7\xd0P#\
+\x81\x9dKQ\xb9\xb7\xf7\xdc\xde\xe3\xf9\xc5\xab\x07\x13E\
+3!\xa20\xf7\xf9\x15@\x88\x99n\x93\x0f+\xaa\xdf\
+\xe3<e8SQQ\x84uZ<Y\x99\xc4aN\
+\xa7\xf3A\xd2\xd8\xd7)\x8a\xc4\x09\xc0\x22\x189\xee\xe0\
+\xe2-\x14\xf9\x06?\xf7\xc1\x14\x0fUR=\xe6\xd4\x9b\
+\xf1\xc8\xb4\x8b\x90h\x92\x870\x85\xc6\x85_Z\xbd\x0b\
+\xe7\xf5{b\xfb\xbd\xf6{\xd9\xfb\xa4\x93DP A\
+\xb1\xe6k\xe7Q\xd1\xe8b\xcc8\xde\x0a\x14n0\xb3\
+8'i\x04Q@z\x1c^*\x9b\xb2\x19q4\xc4\
+\xe8D\xdb,\x0f3\xe9t*g\xe6\xefd\xd5\xce\x8c\
+9\x0aZ:\xb1\x14\xa0\x98+\x1aX\x0eo\x053\x02\
+\xa3 \x83IA\x07\x19\x09$\x8d3{\x22\x0d\x1e\xb2\
+\xf7\x02\x8dE\xaf\xff\x90\xa6\xd0\xe8q\xbeO\x037L\
+/5\x85c\x9e\x02\xb8\xc5t\x0a$\xd5\x00K67\
+ejTH\xbe\xc9\xeb\xc9_\x91\xe2\xe2QE\xde\x8a\
+\xb9(\x8cF3'Br\x86\xd7\x0c\xd2D3L\x82\
+\x11\x07\x05\x9e\xc6\x80\xaf[xn\xb0\x05\xc0\x04\xc1\x1c\
+\x90\xfc\x93iv4\x04\xc9\xeb\xc9_1\x11d}\xe0\
+e\xc2\x7f\xe4\xfb\xe4\xe3\xac;\x1aVLU\xb3\xa4+\
+\xa6\x04\xf1{\xf9wP\xfba\x18\xf3\xfb\xdc\xc8\x86\x91\
+\x0ac \xa4D/\xe6\x0ao*?]OV\xdez\
+\x00)H~\x00\xc6\xa8#\x00j\xf1*\xa2.\xe3z\
+\xc2H\xf1u\x8d\x06\xa3\xcf\xfdQ\xf3f\x85\x17\xd4/\
+lN\xf1-\xbf\xc1\xbf\x9a*qT9\xa02\xd5\x7f\
+OS\x8c\xfeTi\xf7\xa1H@m`\xee6\x09\xf8\
+N\x8a\x0e`\xc8\x0b\xff\x9a\xa9k2%\x15J\xad:\
+~/U\xc8\x18\x144Q\x8f\xce\xaa\xcc\xdb@@p\
+\xbbW\xdf\xef\xd4\x0aqT\x87d\xdf\xca\xa4\x84\xb1\x1c\
+\xcc\xed\x06\x91\xe4\x02\x99*\x13\x9dC\xc6h\x19\x91\x8d\
+\x8d\x81\x03\x02\x93\x1a\xc6rY\x9b\x1aHW\xcft$\
+^\xf9\x0f`\x80\x02\x8f\xce/\x1d\x1dw \x07\x14\xc0\
+\xd3]\xc8\x83|[\x93\x13\x09\x1c\xe6ilp>\xe0\
+\x83\xea\x01u\x9d\xa9\x09l0t\x8a\xd7\x8e9\x9a\x1d\
+\xf5\x9c\x02\x7f=\xff^\xc6\xe4\xd1y\xe6\x81\x07i\xa7\
+`\xa6\x10]\xcd\x89\xd8\xdcA\xc5\xea\xae3\x07\x08\x1a\
+\x18\xfe\x1d\x0f\x0e\xd7\x85\xdf\xc3u\xa3\xb0\xa5clJ\
+\xed\x04\xea\x0c\x0f(\x12\x09\xc6\xbb@1g\x03\x00\x98\
+\xc1\xad\x9aN/\x80\x03\x88\x22\xd7\x09-$\x14{L\
+\x85@8\xd9@8\x80\x1e\xeb\xe6\xa8\x0f>l@\x86\
+\x84\xc0f\x92A\xf5cCE\xf3T#\x81\x0fW\xc8\
+!\xeb\x88\xcfM\xe7\x11*-\x00\x03\xeb\x98\xb1\x9at\
+4A\xf4\xb9\x0el\xd0.\xfc\xc3\xcc\x10j#f7\
+\x8cS\xc2\xcd\x98\xe7\x0d\x00\x08*:\x85\x22\x8c\x1bw\
+\xea\xa2\xe3\xe9\x82\x22\xe6\xea\xba\xe0\x0df\x05\x1b\x18\x85\
+;\x8c\x1a(q[xc\xe3\xfe\x01\xa0\xa1\xb9d}\
+s\x1fX'\x8c\x99\xf3T\x0f:O\xb1\x1f\xf8\xfa\xe5\
+N\xf3#\x155\x15\xed>\xa6\x8c\xeeH\x86\xc9\x0f\x9e\
+\x06$Jt(\xe9L\xc2X\xc8\xffU\xe6d\x14\xca\
+PC\x197\xe3\xc4\x11jf$\x00\x00\x0cN\x5c\x82\
+\x02i\xa6\xc3\xe4\xab6\xc7\xc4|\x13\xed!\xe3\xdb|\
+@\xa5g\xf7=\xf9\xf9\x05\xf9\x85\x22\xe7\x83\x9d\x0eA\
+\xbb\x97\x22]\x8f\xaf(*\xc0\xceT|\x00\x88\xc1\xc5\
+\x8a\xf4}\xdfNqt\xa1\xe8\xe3\x9e\x1b\x1e\x08>\xb8\
+\xc2,\x88\xc2\x1fSE\xdf\xc7fKE\xfaw\xfbv\
+&\xa4h\xc3\x87\xa7**\x8a\xe4\xfb\x14\xd5\xba\xc0\xec\
+\x89N\x1e\xfb!\xde4N\xcc\xb3\x19Z\xda?f\x1e\
+\xa8H\xcb\xe8\xac\x142\xc5\xfb\xbd\xc2\x88\xf9^\xd5:\
+d\xcc\xa1:\xab\xef\xad$\x1d\x1c\x98\x98\xf0\x1c\xa7H\
+\x7f\xffUOCp\x01\x82\xb6?\x17\xf2\xab\x96s\x89\
+\x0e}\xcc\xd5>\xaa\xa3\x1e\xb6\x17(*\xcd/\xc02\
+\x14y\xa8\xf4\x87+\xf2T\x82\xcchI\xa7pW(\
+\x00\xb0\x7f\xcf\x89\x1a\x09\x8b\x13\xca\xc1\x7f\x14\xe9\xdf?\
+\xab(\xd2\x85\xa0\xc8\xf3\xfa\x16K\xff0\xfb\xb2\xe7\x08\
+\x00B\x98\x9f\x02\x08Y\xd2\x15\xe3Y\xbd\x1f4\xbb(\
+\x8ad\xa7YH\x91\x0b\xe9\x1b\x067\xa4\xfb\xfa\xb0\xa2\
+\xea Au\xcf\x0f~\xe5\x1d\xe3\xf1y\xd1iF\x0b\
+\x0c \x09\xb0\xe8\xf1\x9c1U\xc2\x8c $\x84\x01|\
+\x5c\xa8\xa8\x00\x00S\xf8\x87\xe7(\xf2T\x89N\x12\xb0\
+i7\xe6q\xf86E\xfa\xfa\xc0\x0e\xb0\x8095\x5c\
+PQ\x0a\xf8l\x02|\x98\x01\xac\xf9+ c\xba\xa5\
+\x02\xcc{v\x87\x98\x8e1\x05!\xc07\xd3\x03\xda?\
+)\x0a\x93\xa6\xb9LQ17\xdc\x19\x1co\xaf(\x09\
+6\xa6N\x93G&\x8fN\x1e-\x89\xfc\xe0\xf5\x8aj\
+\xca\x8f\x19\x0e\x98xNf\xf7s\xf2yE\xfa\xb9\xd9\
+$\xa508\xdb\xb5\x15\xd5\x14\x0fk\xfeCz\x03\x80\
+\xed\x82\x891\x87\x12\x94JR:\xf3\xb0\x99\x87\xcfL\
+\xd7g\xbc\xb6\xa2\xb8\xe7\xc7\x982${+\xbb\xe1\xe0\
+B*\xc6\xe9\xd1\x81\xc7\x84L\xa6q\xdb\x999y{\
+5\x8d\x88\xce?\x14Y\x99i\xed_u\xbc-e\xa3\
+\x10\x8a\xf1l4\x86\x94o\x9e\xe2\xe7|a\x03u\xbf\
+)\xf9\xd5\xf0\xdf\x8aj\x0c\x9b%ZH\x1c\xc6\xb3*\
+<]\xe0\xf1\x8a\xc1\xe5s)\xee\xcf\x9e\xd6\xf0{\xce\
+z6\x95\xfee9\x8f\x98\xde\x10\x92\x19K\x08\xc3\xfc\
+\x14\x86\x13\x0d.\x17\xe6\x1a\x9a\x9c\xc7&c\x12\xea\xfd\
+\xb8\xddCQ<K\xf2u\xdd\xd2\xcc\x94U\x0b\x03\x88\
+\xfc\x84\xc6\x00\xd3\xaeb\x0a\x11R<\x9f\xf7\xe1\x95b\
+s\xdd(t\xfe\xd5u0\xb3\xc4\xf0\xfa\xaa\x03\x89k\
+>\xcf\xbb\xef?\x05\xcd\xe4>K=\x9e\xb3\xc7\x8a\xcf\
+\xa5`(\x92\xafR\xe8\xd2@D\x9a\xc9T#\xc6-\
+\xf3{\x98ZD\xde\x87\xf4\x90\x82\x91\xf7\xbd\xb8\xf39\
+L\xdc\x00\xacy%\xaf\xb6\xa4 \xf2?$\xa3\x00\x0a\
+\xbe/!\xc1pGvp\x8e\x9f\x1b\xc6/\x1b\xb8\x0d\
+\x13G3\xae\x02\x10\x85\xd9\xc99\xcet&\xf6a\x1a\
+\x160O`\xb8\xc1\xb4\xf39\x16\x1d~3<B#\
+\x0f\x83\x84\xa9@\xe4U\x14\xcc\x98\xa63&\x1d\x06\x96\
+\xf3\xd2\x90\x90\xd2\x18%\xbf$\x1f%\xbf\xa7aG~\
+\xce}\xa4QD\x03\x85<\x9c\xfc\x17\xc6#\xd2\x09\xcc\
+`oVT\xe6v\xae\xe3$\x0c\xcb\xd20\xcc\xbb\xf9\
+\xb9\xd4'\xd4W\xac\x1f\xf2}>7\xd7\x8fN}_\
+[O!N\xbdB\x1dF\x1eK^E\xbeo\xd3\xcd\
+`\x14\xa0\xf1G\xea\x00\x13\xe0\xd1n\xbf\x0e\xc6\xc7\x0c\
+\xef\x87\xdeO\xc3S\x83)?\x06\xa4\xe2:\xd2\x18\xe5\
+\xba{\x9d\x86I,\x8dC\xe7\x87\x01X\xc0\xf8uc\
+r4\xed&E\xa1\xd4\xa1\x0d\xcb\xfd\xe4\xb4\x11\xb7K\
+(\xd2\xeb\xd5\x0ao0\xbf\xaf\x16\x0as=M\xc5o\
+\xe6U\xa4\xd7\x7f(\x8aY\x16\x88\xd1`\x7f\x85\x13\xc6\
+\x7fy!\xefTu\xec\xb9\xc0F\xee3^xU\xd5\
+\xb1\xf3\xf8\xb7\x8c\x00]^LP\xa2\x83\xa6\x03\xf4\x89\
+\xca\xfc\x81\x8e4\x9dq\x108:\xc4,\x10\x0a\x07o\
+\xd8\x98\xd4\xa4t;w\x944\xac/wz\x00\x14\xb8\
+Qv3\x0df\x01\xdam\x16\x1c\x05:\xd4\x9a\x1e\xd5\
+;\xc6\x1e2\xce\xa4_(S\xb8\xd1Y\xa13\xe5\xc2\
+#(\xc1t\xd21\xef\xe9#`s\xba\xa0\xa4\xb0\x84\
+Q\xf0\xb8\x13`\x1e\x80\xdeF\x10\x7f\xee\x8e7\xda\xb3\
+\x98\xb2\xc0\x03\xcb\x03o\xc9\x02\x89Ml\x00$\xd20\
+\x03\xfc\xa0E\xc7ruE\xb5\xb1\xf29\x19\xefeW\
+\xf4\xa0p\xed\xec\x9f\xbb\x8b\xaf\x17\xd7\x03\xcf\x84>\xb0\
+\xc2\xfb\xe0\xfa.\xedBgY\x17\xfc|?\x9dmo\
+\xf4q\x90mn*\xfbB>\x10\xfc\xef\xc3u\x9eD\
+\x10\x0f\x006\x12\x5c<A\x88)\xfc\xfd\xc0j:\xbb\
+\xe6\xb3C\x05\x8eD\x9e\xebNa\xc3\xf7\xe1\xc6\xcd\xc6\
+\x01\xb2\x09B\xdb\x97\x0c\x00$\xb1qr\x1d\xb9^ \
+\xb0x7\xb8\xa3G\x87\x81N1\x1aL\x0a~(\xf3\
+\xa1\xc9\x04\x11\x06\xe1\xe5}\xf4\xd3\xe7\x7f\x97\x00\x00 \
+\x00IDAT\xdcY\xc3\x93\x03S\x13\xf6\x07\x0a_\
+\x80-S\xa1&'(J\xe2\x1d\x077\xd7\x89\x0d\x1f\
+ \x80\x83\x1e\xe4\x93\xf5@\x87\xdc\x9a\xd8\xc9\xa1\x8a\xb4\
+O}]Q6\xf4\xe8\xb8C\xd1\xc6\xb4f\xffn\xec\
+%\x92\x84\x18\xf3\xc4s\xdb+\x90\x82\xda\xe6\x8e@\xcc\
+\xe9u\xa2\x18R\x046x\xef'\xe1R\xec\xce\x1a\x05\
+r \xc6tTpC\xc6]\xda\x12\x85\x00\xb2\xbc\x1f\
+Nm\x99\x9e\x96-\xaa9\xda\x1c\x94\xacG\x7fNL\
+W\xe3\x80\xa6\xc3\xd1\xbf\xce$\xfeF\xbe\x87\xeb+\xca\
+X\xc9\x18\xf7\xb8\x84\xa2\x8c\x99LisF\xba'\xb3\
+\xca\xb7\xba\xea\xe02=\x85\xb9\xb8w)*/\x18\xa8\
+\xdd\x9eV\x11ZV\xb4\xdfh\x92\xa1\x82C\x15\xf6\xfa\
+\x1e/\xae(\xf7=k\xd9S\x22\xa1\xe1o\xc3\xe5\x0a\
+\xa5=\x9b\xcdn[\xed\xef\x96\x08d~\xc6A\x95&\
+\x16\x93=:\xb9\xf2\x84\xd1X\xbb\xc7\x15ve\xfe|\
+1\x0d\x84\xba\xdf\x9c\xde\x9c\xd1\x9cQ\x01\x8c\x8c\x19{\
+q\xf2\xc2\xe4\x85R\x10\xb4\x0b+\xd2\xfb^e\xbc\xea\
+x\xd5\xca\x83\xe7\xa7\xdd\xd8\xbb\xe6EE\xfa\xfb\xcb\xc6\
+\x97\x8e/\xcd\x09vG\xad\xe5y\xc6[\x81\x8e\xbc\x0b\
+r\xccgcj\x0c\xd2\x17\xb4\xe8\x00\xbb\x98\xaa1=\
+C\xe7\xf4ie:Btn\xec\x01\x84\x064L)\
+1\xd3<\xbe\xd3\xd66[+\x0a0:\xfc\x9d\x223\
+\x08\xf3>\x96\xd2\xfcN\xe3\x8d\xfb1\xe6\x8fPLm\
+&\x1c@'\xa6L\x06~\x02\x18\x058\x86\xd1@\x07\
+\xe99E\x01\xfa\x9aY\x15\xe9\xf5\x96\xe6O\xcd\x9f\x0a\
+01\x5cVQ\x5c\xfbc\xec\xa4\xc74b\x1e\x98\xcd\
+\x7f?P\xeeC\x00P\x06\x96\x9b\x0b\x15UAb)\
+LP\xc3\x01<=v-\xa6\x95X*\xd1\xfcBQ\
+\xad\x7f\x03\x9d\xed\xc7\x15\x95\xbb>\xde$\x14\xfa\x9e\xd2\
+\xd1\x5c\xad\xf0x\xbb\xeb\x8a\x14\xa0\xfd\xb0\x22\xbd\xde\xaa\
+H\xaf\xff\xddy<\x84\x19%\xfb\x01\xd3\x1dzT\xdb\
+\xd8\xc7\xbc\xce\xda9\x14i\x1d.\xa7H_\x7f\xa2\xfd\
+d\x9b\xce\xafvOE\xe94F\xc7\x9e<\x86\xf1\xb3\
+h\xcf\x01$\xc5@[\xb92\xd9\x9c7\xb7\x0e\x82\xb1\
+3\x99Sa\xcd\xb5:\xfc'\xa48\xbe\xbc\xaf0\xc1\
+\xa33n\xa0\x224\xbd\x00\xd5x\xce8\xcf\xcd\x0c\x81\
+\xd9\xcc\x5c\xdb\xb6\x92\xfe`\x02KG\x0f\xe6\x89\xcd\xb5\
+\xc2\xcc\xd2\x05xP\xb8\x19\xb3\xe5B\x0b@&\xa6\xb7\
+\x00\xf0\x93\x7f\x92\x8f\x99)\x1a\x0c'(\xd7\x9a2t\
+v\x01\x8e\xe2\xb9`N\xbc\xf7\xf3\xf8\xfc\xa2\xca\xcb\xf3\
+g\xff\x14\x07\x94\xf1\x85\xf9\xb4\xdd\xa0\x92\x9ap\x0e\x1a\
+\xd0\x8c\xb1\xc9\x14\xbeP\xae\xb5\x1e\xbeR\xc6X\x02\x8c\
+f\x09\xed|\x15\x15\x9d\xcf\xc5\xb8?\x99\x00\x1eS\x80\
+u<E\xda\x15\x15\xe9\xf53\xed\xaem\xba\xce\xedq\
+\x8a\xcc\x18\xe8\xde'\xd21\xe7\xf9\x91\xbf\xf6]\xfd)\
+|h\x1c\xe1Y\x84\xb7\x91\x9931v\x18\xef\x163\
+e#\x9f\xe0\xfe\xde\xd5I\xfd\x22Od\x5c\x1e\xd3\x18\
+`\x5c\xd1\xd8\xb0\x096\xf9^\x98Z.j \x97N\
+,\xe7>^E\x8ca%\x7f\xa3\x11h\xc6H0\x05\
+\x90x\xb8^\xa1\x81\x12\x9ap3)b\x1c\xb1=\x94\
+\xf8\xbdLOi\x0fUTSQ\xe6ST\xd25\xf2\
+1\x1axh\xdf\xa9o\xcc\xac\x0b\xc6\x0dR\x07\xa4#\
+\x98\xf4RP\xd3\xd0#\xdf\xa3@f\x9c\x1e\xf5\x18\x12\
+R$Q\x14\xf2\xdcW\x004\x8f_\x8d|\x84B\x9a\
+\x863\xd37\xf0\xe0\xa1p&\xef\xf4\xd8\xd8\xf8\xfe\xdf\
+\xf5\xcc\xc2\xbd~\xc2\xcb\x81\xebB\xc7\x1cF4\x80\x00\
+\xff\x8e\xf5\xde\xeb\xd4\xc7z%O\xc5<\x94\xeb\x89w\
+]\x9f9\x82$\x1c\x89%\x0d\x01\xbc\x17\x18\x8b\x08c\
+\x87\xf7\xc1\xcf\xe1\xf7s\x1f\xc9\x17\x19\x83h\x001\xa6\
+\xfa\xb9A8\xca\x07\xf2\xefMI\xf9H\xe5\x06,-\
+Z:\x98\x86\xbfH\x91.\xe0\xf0\x87\x0a_\xf0?\x1a\
+\xe1\xf8[5w\xd2c\x03\xa1\xf0\xe16K\x07$L\
+\x098\x10t\x9c\xcf[\xdd\x90\xb9\xb2M\xcd\x94\x86P\
+i\x0cU$`\xccS\xe4\x83\xb93\x1b&V~\x1f\
+a\x06\x08\x92\x07B\xe2\x05M\xc7 \xc6o`J\xe5\
+y\x89\x81\xac\x00\x1c\x90P\xad\xe6\xce?\x0c\x02\xccP\
+\xa0v\xb3\xb0q\x07\x85\x8aHA\x09\xc2EbN\xa1\
+\xcb\xef\xa3p\xa2P\xa3\xf3\xfd\x92\xe7\x113\xd6\x82q\
+.\xb8\xb0C9\xa7\x90\xa6\xd3\x0c\xc3\x81\x05\x8b\x86\xea\
+\x8a\xc9\x95\x93+\xab\x84e\x86\x0b%\xcc\xf1\xbc\x11\xa5\
+4\xbd3![\xdb\x14+6\x5c\x12\xac\x05\xba\x0d2\
+\x12\xab-\xba\xf1)\x91\xa0Q\xf8\xf1\xef\x00^\xf8\xbc\
+t\xc0\xf9{\xfe\xe3\xfd\xf2\x00Q\xd0\xb1!\x81\xe4r\
+_W7@\xb0\xbc\x0bv\x80\x16\xae_\x1f\xf8\xc1\x83\
+`q\xcf\xa5_\xd2\xc0\x00\x1au\xee[\x9fR\xcf\xef\
+\x07\xa1\x5c\xc5\xdf\x87\x84a\x0d\xdf\xcf\xf5\x5cx\x00\x5c\
+P\x88\xf2~y\x1f\x00\x0c \x91P\xe2\xd9\x08|0\
+\xd0\x11`>7\x7f\x1f\xda]Lr\xfc\xbc`f3\
+\xb9OQy!\xf0y\xe8\xdc\xd09G\xa3h\xc0h\
+\xb0\x91\xa2\xeax\xbb\xc3\x1a\xe3\xa0<\x8d\x831N\x9a\
+\x12\xafNix\x07\xd0!\xe2s\xfb`U\xbf:w\
+\xac\xf1J\xa0\xc0\xc6\xec\xc8\x89nt\xf88\xd0\xb9\x8f\
+}\x06\x07\x92\x1a\xae\x1b\xeb\x04\xe0\x08$\x94u\x09\x83\
+\x81\xc2\x86\x8e3\xdaX\x0e\xea=rLM\xde\xa2\xa8\
+\x0aA\xe6\x82\xe3.l\x09NJ\x17;\xb3E\x8f\xe1\
+\x89\x0e7\x07\x0d\xc0\x13\xae\xc3\x14\xe4Hu\x90\xaaP\
+\x90\xa3YuG \xc6E\x02\x04\xb1\xaf!A!q\
+\x01\x105\x956\xfd]\xde/D\x04\x16\x15\xb8\xf9\x9e\
+\xa2*\xfc\xd87\xd9\x9f\x0cl\xb0\x8fQ\x90\x00\x8c\xf0\
+{\xc23\x80\x04\x90q\x85H\x1d\x98\xdaa\xa6B{\
+\x99\x22\xbd\xaf\x83R|\xc9\xe7\x84:\x8fK**\x80\
+\x13\xc9\x08\xcf\x1b\x07\xf9\x96\x8aj^6\xc0$TR\
+:@tL\x00\x80\xfd\xbe\xc2lv\xd7\xec\x0f\x1dR\
+\x0b\xe6\x9e\x93 \x0dwVTT>K?\xb2\xeb\xfc\
+I\x15 \xadD\xf7{~n\xb6\xf3\xbe\xfcPeF\
+gSI\xbc&&\xdfTT\x9d\x12<'~\xda\x15\
+\x16\x83\xcf+J\x82\x11c\xa3\xa0x\xffl|\xf6\xf8\
+\xec\xbc\x9fv\x12:\x17\xda\xa3\xfdG\xfb\x8d\xf6\x9b\x9a\
+\x92\xf7\xbb\xdc\xdf\xa1\x80\xe3\x09\x93\x0a\xdb\x14\x95\x84\xcd\
+\xde h\xe3\x9b\xe7\x9a\x7f\xe7i\x00\xf3Yzq\xf6\
+\xd4\xcf\xb2w\x85\xc7\xc3\x85y\x9d\xa8\xf2k\x97NV\
+s\x8d\xa2*\xf0\xc5\xb8\xfb`%Q\xf0~\xd3\x1c\xd1\
+\xad\x1b9\x1d\xc8\xeb\xa0Y\xb6Y\xa6Y\xa6x\xc6\x00\
+$\x0c\xe7\x1f\xce7\x9c\xaf\x9c\xc7\xed[\xac\x11g\xbf\
+@:h\x89P\x14DW\xbb\xf3{\x84\xbdx\xacq\
+\x9e\x9a\xb5\xdb\x17\xe8$\xca\xd2R\xa6\x96H\x19c\xfa\
+\xc4|\x8aBa\xe7\xf9\x18\xfeT\x91^\x17UT&\
+\xc0\xffT\x94\xb9\xe7\xcd\x92\x8a\x02$\xe0\xc1\x92\xcd\xd6\
+\xce\xa9\xceg\x9f+\x5c?\xcc\xe2&\xb3*\x0a\x10\x0b\
+\xd0\x80\x04\x01fHP\xea1YC\xd2\x04\xc3\xa87\
+U\x06\xc6B:\x83:-\xaa\x81\xeb\xf1)\x8aB\x81\
+\xa7\xa3\xd7n\xeb1w7*\xd2\xeb\x99\x0aw\x8a\xce\
+/\x89f\xfbsE1\x0bk_P\xa4\xd7\x1f*\xaa\
+\xb1\xa8\x96&1\x85%\xbc$\x9cO\x06E\x99\xf1o\
+\xafQT\x85\xb5\xcf\xaf\xe1\x95\x0a\x03\x13w\xa7\xdf\xf3\
+\xaf\x14\x8f\xb8s\xf6\xa4\xbd\x136-@_\xfb9E\
+\xe5\xa6\xaf]w\xc9\xea\xf3`J\xed}'w\x86\xcf\
+u\xc2\xfc\x07\xaf\x8f\x8f\x1a@}\xa6\xa2Z\x9b\x91\xd5\
+\xde\xadH\xaf\x7fU\x14fY\x8cw#a\xc7\xa3\x08\
+\xe9%\xf9\x0e&\x8fH\xae<\x05 \x98\x08\xfe\xbe\xc1\
+\x9c]C\xa5\xf9\x91\xa2\xa2\x0c;_l\xafm\xafk\
+S\xe2>\xf3g\x8aJ\xb2\x87\x04\x02\xa6\x83:\x8b\x8f\
+U\x05\x13T\xf6\xc7\x14\x15\x03\xc1y{\x00+\x96:\
+p\xbe\x04\x00e\x93\xb1voE\xf1\xfc\x82A\x07\xe3\
+\x85s\x81\x02\xa3\x9d]\x91\x81\xa6\x14\xe9\xcf7\x16\x07\
+*\xad\xc7\xaf\x8d\x8f\x18\xa7\xe7\xb6\x9dG\x91\x01\xe2N\
+\xe2\x01\xe3\x8d\xf1m\x00\x00x[`\xb2H\xdeH\xc1\
+\x09E\x1aww\xa4\x8a\x8cY4\x00\x16\xe3'\xf10\
+2\x107up\x8e\xa9\xc9\x19\xfe\xbcL\x9b\x81jm\
+o\x81\xf0\xc0\x22\x9f\xbf\xd8\x9e0\x8f)\xf2\xdc\xf9\xce\
+\xa3\xc3\x8d\x84\x18_\x8a\x84\xc0\x92\xe9\x94\xd3t\x0c9\
+\xef\xf3\xe11C\xc1H\x9e\x88\xd4\x92B\xd6\x85iH\
+\x87\xbc\x0eC\xba\x86y1\xc0\x0b\x1au\x18\x0c\x14\xb6\
+H\x22\xdc\x09\x9el\xaa\xa8<\x03\xecq\x10\xf9)\xf5\
+\x1a\x0d\x00\xde\x1f\xf9\x16&t\xe4%0\xea\xc8\xcfh\
+D\x91\xc7\x91O\xd1@\x86\x11\x04\xc3\x85\x82\x9e\x82\x98\
+\xbc\x1b\xc0\x84\xfb\x0d#\x80<\x8dF\x1by\x05@\x04\
+\xd7\x15\xd3J{!D^H\x9eIc\x03\x066y\
+\x07@\x04\x854\x9f\x13\xa0\x88\xeb\x02\x93\x17\xc0\x03\xa9\
+\x04\x8c\xcf>\x93\x07\x00\x81F+\xd7\x07\x00\x0c\xf3A\
+\x00\x08$\x10?4\xd3\xf2\xa6\xee\xba\xd3 \x8bF\x8e\
+\x1b\xb2\xe1\x99a\xcf\x88hH\xf2\xeas~\x84YP\
+\x14LN\xc4&\x17*\x9c\xd8\x9fW\x15\x0e\xdc\xf8U\
+r)T\x10\x96Zk\xbeR\x95\xd8R\xe8\xcf\x9a\x8f\
+\xe8RPQ@\xb3@\x8c\xfc\xe4\xc4\xe5v\x9b\xd4\x1c\
+Z\x8dK\xe1\x81\x86\x1aC\xc7\x82\x0b\xe6\x1b\x15\x1dR\
+\x16>\x9dg\x106\x0a\x7f<\x08\xd8\x08@dy\xdf\
+\xb8>\xdfn\xc4\x0f\x97_:vt\x1ap\x036\xc2\
+\x16\xc8\x177\x94\xc2\x07j6\x05?T$np\x8c\
+S3#`\x1e\x17l\x5c/:q\x98DP\x18\xb0\
+\xc0y\xf0\xfa\x9av\x16\xaa\xa7\x00\x80\x08C\x01\x8d\x8e\
+\x99\x11\xa1\xc1\xba\x06\x10\xb8\xaeP\xae\x18Sf\x0du\
+\x5c_\x0a^\xbe\x96\xc5\xe3\xecUG\x9a\x02\x8d\x8d\x9b\
+\x04\xbe\xc7p\x88\xf5\xc7k\x7f\xc3\xe0\x81\xe1\xbe\x83\xa4\
+\x16\xea\xfb\x82\x83\x053p\xd3\x01\x01\xb3\x98i\xe0\x8d\
+L}\xba|]\x01v\xb8\xde\x14\x1e$\xfaP\xf5\xb9\
+/\xefu\x87\xf7\xb5\xbe\x8e\xfew\x01\xe4 \x91\xe0\xe7\
+\xf2\x9cP\x98p\xbd\xf8{\x9e\x13\x18#h\xf5)h\
+8\xd8`\x0a0E\x81\xebB\x07\xe3DE\xa5Y\xc7\
+u\xd5\x05\xf2\xe4tE\xd5\x89\xa2\xb3\xdbc\x16\xc4\xf5\
+\x04\xc0\x01\x88\xc2\xd4\x84N\xd5\xdb:O\x0a\x12\xd1\xa0\
+\x9a\xe2\xbd\x00\xd0\x01 \xd6Gj\x91\x18\xd8D)\xc6\
+$\xc2 \x81Z\x07U\x1ef\x0b\xcf?&\x87\x00\x00\
+\x1cd<\xb7t\xfc9\xe8\xb9\xbe\x8c\xe5q\xc2\x1d\x94\
+Z\xc6\xaai\xec\xe9\xc3\x15\xd3\xc4\xee\xfa\x01\xb80\x9d\
+\x00M/\x94\xeb\xc7|\xe0\x00\xfc\xf1{90\xed\xce\
+\xcb\xc6\x8cF\x11W\xea8\xd8]xF\xa7\xc2c\xb6\
+\xa2\xe0\xe7\xb9\xe2@\x85\xc1\x02p\xc9\xcfy\xd4\xfb\x00\
+\xeb\xc7\x07P\x98HQxp?\x19\x83\xc4\x5ct\xbb\
+\x95G\x87\x1d\xaf\x02u\xea\xd3\xbe\xd1\xdc\xa5\xc8\xe3=\
+o\xcd\x9an\x9b\x9aa\x0e\x15\x94M\x0eP\xff\x9e\xfc\
+\xb4,Wu\xd0\xd1\x94\x02`06\x12\xb3G4\xdb\
+P\xd8\xefVT\x80\x0d\xc0\x05\x1aO\x00G\xf6/\xc6\
+2\xea\x1c\xd8\xca\x09\xc29\xd5<d\xa5\xcb\x1f\xad\xc6\
+\xc5\xae\xa4\xf0\xef\x9f\xa50>b>\xfb\x9e\x8aj\x9d\
+\xad\x9dw\x98\x8e\x81vi\xd1\xe4\xa6\x04\xfd\xda\xf6\x9a\
+\xaap\xf5\xfe\x10\xf7\x13f\x0c\xe7\x03\xc0\x00\xd2\x19\xa4\
+g$\xb0'w\xde\x12\xdc\xbf(h\xbe\xd9I\x08R\
+\xa1\x9d\x22m\x93\xe7*\xd2\x9f\xcf\xab\xa8\xcc\x8aLY\
+\xee3\xa2p\x1b\xe6\xba\xe6\xd3\xa2\xb5w\xc5oJ\xc7\
+?L\x1e\xcd\xd8k6J\xf1\xee\xd2\x09l\xde\xa8(\
+\xaf\x01\x80\xfcV\x91\xae\xdb\xd2\x8aL\xadOQ\xae\xff\
+`\xa7n?b,'\x8d\x81\xa0D\x1a\x08FKO\
+b.\x87\x89\xec1\xf1\xa1n?\x08\x0a\xf2|N\x94\
+m\xe2Ha\x19\x09\x22SC\xae\xb2\x19\xe8y\x0a\x8f\
+\x87L\xd7i\xb8\x99\xa20Y\x86\xf7(J\x1e\xd1|\
+Y\x91\xfe\xfc8E\xfaz=E\x19\xb3*^\x86\x98\
+\x19Q\x98\xdf\xa9\xa8\x12;\xf2#?'\xed\x19\x8a\x02\
+\xb8\x04S\xd2\xae\xfa\x93\xfd\x15\x05\x08\x98y\x85\xa2\x9a\
+fb\xe6K\xb8G3\x1et\xc3n\xfc!\xe7\xf9d\
+K\xbb\x89\xfb\xb9\x8b\x82~\xaf\xceU\xbe\xddPQ\x0a\
+\xb4\x0c$\xa5\xfd\xbb}\xbf\x22\xbd\xae\x9eb\xb5\x8ab\
+\x8f\x04\x12\x13a\xc68\xee\xa8\xa8\xcc\xb1\xcc\x00\xcc\xf3\
+\xe9g\xa9\x0a\xc9\x1b](|\xb6\xa3\xbc\xa7O\xdf\xcd\
+#\x7f\xb0\xcbk0c\x0b\x0f\xa9\xe9\x1dC+\x15\xf5\
+\xb9\x13*\xd8>\x03\xf7\xec7\xd3\x14e\x1f\xcb\xcc\x88\
+\xd5\xdc\x99\xfcSit\x00$\x8e\xffKa\x09\xd9\x0d\
+E\x92\x9aO\xd7[\x8aI[P\xa9O\xceO`\xc9\
+\x1b1\x1b\xa3@D\xdb\x8b\x04\xcb\x92\x84`>\xe1\xad\
+\xb5\xb1\xa5?O(\xaa|\x8ds\xc3\xc0\x05f\xacx\
+S\xe0-\x13\xf9\x09\x0c\x193u\xa3\xb0\xb0+}t\
+d\xd1nS\x888\x8f\xe0\xf7\x87T\x01\xa9\xc5\xca\x8a\
+\xc2h\x9b|WQM\x058^Q\xf6\xd7,5y\
+\xc4\xa6\x8d\xe9ynWRTS\x11\x00\x8a\x1eL\xf1\
+O{\x87\xccSy(X\xfa\x06\x13\x8c<%\xe6\x98\
+\xfb\xbc\x0f\xcd3\x9dX\xf6y\xea\x06\x1a&t`1\
+\x7f%\xef\xc0\x84\x18\xef\x1b\x03\xcdq\xbe\xc1\x00\xe0<\
+\xf1\xdf\xa7r\xbd\x9343\x86\xf2\x18_\x0f\xa8\xf8\x06\
+n\xd9\x1f\x82y\xe6u\x13\xde\x11+**\x09\xd0i\
+]\xe3\xa6\xdf\x80\x0c\x13H\xcew\x0aR\xce\x01\x18\xb3\
+\xe4\xc9\xe4\xe3\x06\xa8b\xec\xddGm\xf6\xf7\x8d\xc9Q\
+\x92l\x07\x80\x02\xe0A\xa3\xc6\xf9m0\x89X\xcf\xaf\
+\xf14\xb73\x14\x15U\x9c\x86\xdd\x13=\xa60\xfb\x1b\
+\xaf\xe4\x1d\xfc\x07\xb3\x01 \xa3\xc7t\x89\xff\xa8o\xa0\
+\xec\xc30\x80\x99D\xe1O\x81\xdf\xff\xf9\xe4\xd30\x83\
+\x0d\x18\x07\xa3\x80\xe7\x19\xc9\xab\xf3\xc0\xb8\xeeL\xd5\xc1\
+\x84\x9c\x8e\xbd\xf3Q\xbc{\xa2\x90F\xaaI}\x03`\
+\xc6\xd4\x16~\x1f@\x05&\x844\xa8a8\xb0n{\
+ub\xdcg\x00D\x00\x17\xf2\xc0\x9b\x0c\x90\xdc\xde]\
+\x97\x90H\x00Hr\x9fx>\xd8\xa7(\xfc{\x12\xe3\
+Qv\xbb\xdf\xdf7\x1am\xcb\xbc\x95\xcb*\x9d<L\
+\x1c\xe8\xd8\x0b\xc7\xf8\x91\xb5\xf0\xdf/\xee\xfe\x91\xc8\x93\
+\xa8.\x99m\xe7\x8af\x1f\xe0\x00\xaa\x0e\xe6{$\xf0\
+|p\xcc\xe9\x18\xbb\xc2\xfcQ\x12)\x0a\x5c:{P\
++)H\xe9\xe8R\xe8Q0P\xd8\xf1\xf3y\xd0\xb8\
+p\x14\xf6\xaf\xb7\xa9\x1f\x7fN\x87\x9aB\x013%\x7f\
+\xce\xa0\xbc\xf7)\xd8\xdc\xd8~\xa7\x9fW\x10N\x0a\xef\
+u\x9c\xd8ob\x93\xbb\x0d\xfc\xefV\xf4A\xf0\x16k\
+n\xea\x84t\xed*!\x22\xb1\xc4\x1d\x94\x82\x16m\xfe\
+\xd2\xfe\xbdt\x22q\xf9\xa7s\x86\xe6\x87\x0e&\x9d\x7f\
+\x0ay\x16>\x1b,\x1b\x00\x0b\x8b\xf5b7\xe3\xf0\x14\
+\xe0\x01\xe7\xfb\xd8\xc8y\x00\xf8\x9a\xc2\x94\xdfC\x81\xca\
+F\xc1\xd7}\x13\x0f\x00\x01\xfe\x9c\xfb\xc5\x06\xca\x86\xc1\
+\xe7\xe1`\xa5PG\xba\xf1Ak\xcfW2\x02\x07\x80\
+\xc4\xba\xa6\xc0\x7f\x93\x91\xe0\xe2}\xd0\x8d\xa5A2\x80\
+\xe4c\xf3\x00\x10:D\x95y\xa8\xee\xe8E!\xc7u\
+\x07x\x82R\x0ds\x86\xce\x82\x0f\x880\x9d\xb4y\x1d\
+\x14&Y\xda\xc8\xd4&\xae#\x9d\xf3~\xc1\xcf+\xd7\
+\x9d\xf7\xd7\x1fK\xc8\x7f~\x9f\x14h\xcc#\xa7C\x15\
+\x089\xff\x8eD\x07F\x00\xd7\xc9\x85<\x07ML1\
+\xb0\xdb~\x00]\x98\x8a\x9a\xc2\x89F\x981fA\x89\
+c\x0c\x13H:\xf3\x98\xd1\xc43v\x87\xce\x5c\xdf\xac\
+\x85\xc4\x81\xfd\x84\xbf\x87i\xc4|k\xdc\xf2a\x02P\
+\xf0\xa3I\x07xt\xe7\x80\xc4<\x12W{\x17\x04\xa3\
+\x03\xf3>L\x00a\xee@\xb1f\x7f0\x90\x81\x0bu\
+\x98\xd0\xb1\xa1s\xa0\xf2\x1ca\x82\xc3\x7f~\x8e&\x07\
+M\xbe89\xa8blaV\x86\x07\x04\xe6\xa7$\x98\
+\x9bg\xd1Ky\x9e\xaci\x9b|{\xf2\x9dl\xfa\x85\
+\xfb\xaf\x19\x04x\xa0\xc4xB\xb4\xd9\x06\x04\x9a}\x14\
+\x95\xa9\x9e5\xa5\xd1\xb9d\xcc\x17\xe7\x0e\x9f\xc3\xcc\x0c\
+\xc6&F'\xfd,Ee\xbe\x88I\x1e\x89\x8b\xe0\xac\
+\xd7d*\xfa\xf1\x99\x19 \xe6\xc7>\x95;\xba;Y\
+\xed\x9fS\xfc\xa5\x98\x9e\x0dnLqC\x01\xbc\xda?\
+(<Vl\x19\x03\xd0_,s\xb2syM\x07\xe2\
+13e\xb6.&y1W~\xd4\x99\xf3a\x92\x15\
+\xd4m:\xe8~~\xf0F\x08@\x1c\x97u\xaf\xcf\xf1\
+\xef\x14\x05\xa8\x18\xcePx\x5c\xdf_+\xc0\x17\xad<\
+\xe7&\xfb\xaf\xd7I\xd6\xda\xdf\xe8\x9f\xb3t9\x17c\
+*\x80:\xfc\xea\xd8\xef\x99b\x8f\xe2q\x10.\xf9t\
+\xc01\x0f\x9c\xee\xb1~\x96\xaa\xc5\xe7\xff^sb\x93\
+\x0a\x92\xe1\xfftT{\x98\x22\xcd\xe6\x8a\xd2A\x16\x81\
+\x5c\x14\xf2\xe8\x90\xb2\x9f\x9e9\xf8\x91\xa6\xf4\xc48P\
+\x98'<\xcf\xb8=\xbbC\x03\xc3g\xf2^\xcf\x157\
+s\x00\x80\xab\xb9_Q\x0a\xbe\xe1g\x15el\xde\xf0\
+W\x8aBm\xc63\xa09@\x91^_P\xa4\xd7\xed\
+\x14\x85\x0a\x1e\x00\x1a\xde\x1f\x00\xa3P\xbf\xbd\xaf1\xa7\
+\x1e\xa6\x13R\xaa\xe6_\x8aB!\x9f\xf9oEz?\
+K*\xd2\xf5\xd9T\x91\xbeo\x0dEz}X\x91\xfe\
+\xfe$E\x91\xa6DA`I\x12\x8c\xb1\x00\xfaI<\
+\x01\x98\xd1\xa8Z\xc3\x1d\xe6c\xfey\xcd\xcb\x8aR0\
+p\xff\xe8@\x8f?\xa4\xa8L\xa8^t#\x06\x89\x89\
+;\xfb0Hb\xbe\xfa[=%\x01\xa0\xf2\xca\x8e\xa1\
+\x18L\x1c'\xe2HW\xc2\x8c\xefS\x8at=~\xaf\
+\xb0\xf9\xdc]\xc5\x5c4\x98\xa3\xde?b]`\xfa\x0c\
+\xb5\x9a\x82\xcb\xfbD\xdeev\xf7\xf3\xf3\xda\x92\x0f7\
+k*\xd2\xcfy\xc1R\x1d\x12}3/&\xafS\x14\
+\xe9R\xfb\x94\xa2\x98\xbc5'(\xaa\xfc\x99\x82\x88B\
+\xc0\x05U\xb8\xc4#]\xa1@\xf7\xef\x0b\xc9\x04\xc0\x00\
+\xcf\xb3\xfa\xfb\x92P\xec\xa7(L\xd00\xe1\xa3\x10u\
+\xe1\x18n\xf60s]\x18\x06\x90LG\xd9y\x1a\xd3\
+e\x18\xf3\xdd~\xac\xfdx\xfb\xb1\xaa\xb11\xc8\x83c\
+K\xa7\xf4o\x8a\xf4}7)\xaa\xeb\xfdcK\x17\xce\
+1\x85\x9d\x86\x05\xd3\x05\x0c\xe0E\xfe\x8d7\x0e\x85_\
+\xcf,;L\xe00\xc5s>4\xf9\xb5\xa2\xca\x8b\xe9\
+\xbc\xfb\xbc\x0c\x8f1~\xbf\xaf\xe7d+\x9b+\xaef\
+\x93?\xf22{K\x05\x83\xd2\x1a\xfc\xf0\xfc:\xcdf\
+\xda\xac'\xf2,\xc6\x08n<\xd9h\xb2QaR\x06\
+\xe3\xcd\x92\xe9(\xd4\x00j\xc9{1\xb9\xe6\xe7!-\
+\x04\xd0G\xc2a`\x7fr\xca\xe4\xe4\xc9\xc9\x95\xb7\x83\
+\x99\x1d1\xed\xc3\xf5\x07\xd7m\xf2ZE\xc5\xb8\xc0\x94\
+\xd0^\x1a1e\x8b|\x90\xfb\xc0\xfb\xa1\xe1\x03#\x82\
+u\xdd/\xfc\xfb\x8d>^i\xdcY\xc2\x15@\x10\x8d\
+\x1b\xef\x8bQ\x80\x93\xaf\x22\xcd\xa5\xb1\x05s\xd2\x8c\xd9\
+\x00\x80\xe8\xc8\xf3\xef\x90~\x93?\xdb[(\x0ad\xd7\
+\x09\xec/\xe1\xb1\xc3}\xe1\xe7P\xcfQW\xf0\xca}\
+\xeb\xbdF\x81\x0e@G]\xc5z!\x8f\xe3\xdf\xf5\x81\
+\x00\xea[\xa6\xf4\xc8\x13\xe7\xc7\x15\x00\x84\x04\xdf^v\
+\xe4\x89\xc1\x08\xb0\x07T\x5c_<\x89\x0c\xc8\x8d\x22\xc1\
+\xa3\x13\xc7\x0d\xa6\x90\x05\xd9\xa1CHB\xdf\xe4\x92\xab\
+\xa3\xfc\xd4TU-\xdb\xf5}`\xaf_\x15 \xfe~\
+\x0e\xa0\xa0\xa2\xd3\xf9\x84\xc2\x8d\xe9\x1a\x14^\x1e|\xb4\
+\xcat`1;\x00\x19\x01)\x041\xe1k\x0al\x8f\
+\x11\x8bB\xaa\xef\xce\xce\xe7\x9d\xe9\xcf\xcfu\xc0t\x0c\
+m2\x0b\x05\x8d'\x9aj\x90Dn\x1c\x0fH\xff\xc1\
+ A\xe3\xc1\x01a\x03\x00\xa10]\xc7\x1d[\x17\xfc\
+!a\xe0:-\xef\xcfIa\x05\xd0\x01u\x84B\x0c\
+D\xf1)\xdf\x1f\xa8)w\xb9\xc3\xe8\xc2\x1a7\xca\x18\
+\x87\x06\x80CaHg\xd9\xdaf\xc6\xac\xc5\x83\xc1\x83\
+\xc0\xef[\xd0n\xd8\xac+\x16:\x0b\xbfO\xed\x070\
+\xe9\x9bs\xf0}\xdc\x97\xa1\xbf\x1fO\x036\x18\x0a\xfb\
+\x85\xbd\x1e\xe6\xf2\xfb\x00\x08\x80\x19\xc1\x7fs\xf4\xfe=\
+\xaf\xb3\x18\xd8\xa0\xb0\x02\x00\xc0|g9w\xec\xe9T\
+\xf7=\x1b\xb8\x9f\xdc\xdf\x15z\xe3\x15\x01n\xf8{\xd6\
++\x07\x96\x0b\x84p\xf7\x849\x80+6T}\xc6\xa6\
+0\xff\x93\xc2\x1f\xa4\xb7gZ\x17\xef\x97\xdf\xcf\xfb\xe2\
+\xfdr\xfd\x00\x84\x00\x8ex\x7f\xac\xab\xbe\xab.f6\
+\x1bu\x07\x1d\x1a\xc9\xa0Tq\x1d1\x83\xa3\x90ub\
+\x18\x1b\x19\xa6H\xb8\xddC\xf9\xf3\xfbE\x0b\x1c\x1d|\
+:\x9a\x98\xc4Y\xe3\x97\xa9\xdbr\xe5o\xbb\xb9\xe2\x00\
+$\xaf\x02\x98\x98\xe7ji\xcddyEe\xe6\x87\xb9\
+\xd2cUg\xfd\xc5B\xa5\x8e\xeb\xc2\xfa\x02\xd8\xe1`\
+\x82Z\x0f\x03\x02F\x01\x1e\x1a6Q\x0bm\xd8Q\x1d\
+r/%\xaf\xb4\xbcQ\xb8\xb9\xd3\x83\x99jh\xf9\xbf\
+o\x84\xbf\xb83\xbf\xf2\xf9\xe6yD\x1bf\xd7\xfa\xc9\
+\xdb\xa4\xba.\xa6]1\xfd\x00\x00\xcc\xeb w\x1c7\
+\xb4\xeb\x7f*\xa8\xda\x0dRl\xe8\xc4~\xb6\x8a\x0a\x07\
+p\x80K>\xe3\xea\xd6\xf4\xd8\xc6\x8d\xbb\xf5\x9a\x0b\xc9\
+=\x0bP\xcb:n6ST\x0c.wTb\xec+\
+\x09\x12\x1e\x15\x8cg\xb5\xe7Fh\xddm\x92\x94\xef\xfb\
+\xd8&\x8e\xb7T\xd3\x14\xe8\xb0\xb9cI\x01\xd9n\xa5\
+H\xaf\x8f\xa4\xf8W\x01b\xe8d\xe7\xe3\xf3\xbaR(\
+\x0d\x16\x11\xd9\xd9\x8c\xa1\x8d*\xb3,\xe6Y\x8b\xd1\xb3\
+\x5c\xd9o&CE\xeeXfs0\xb4\xa0\xb1\x8e9\
+\x8f\xd8\xf7\x9d\x80\xf1>Sr\x99M\xfd\xda\xf5\xba9\
+\xef\x83];\x93\xd3\xf6^E\xfa\xbe\xcf(\x0a`F\
+a\x8d\x869\xa4@\xcc\xe5f\x5c\xaa\x13\x8a\xdc\xd9\xdf\
+\xa8$:\xc1\xbc\x10E\xfe\xf0B\xedmNUT\xde\
+\x1f\xf6\xb0hno\xeeh\x04\x00\xcc\xae(\xc0\x09\x89\
+g\x8c\x13\xfe\xa1\xa2h\xec\x87\xcb(J\x22\xdb\xbc_\
+QIY\xe8`\xba\x83\xd7\x9c\xa2\xa8\xbc\x17\xfc\x9c\xc6\
+\xf89S\x9cI\xe8BZdm}P\xfb\x9fP\x94\
+\xfd\xa9\xf9\x9b\xa2\x98\xee5\x87(\xca+\xcf\x0d\xeb\x1d\
+\xd3<\xb4\xa61udAE\xfawW**\x8d8\
+c7]H\x02xN\x16QTTSk\xa5c\xda\
+\x01S&\xfc9\xf1*@\x03\x0eu\x99}a\xe6\xe7\
+\x14e=\xc4\xf3\x81W\x0f\xccF$V\xad\xcfC\x00\
+H\xcc\x98\x17L\xb1P5\x17\x9d\xf1ytL\xe9\x80\
+\xc1L\xa3\x01\xf0\x90\xa7\xbax,)\xa6\x834\x0aB\
+{\x8a9\x16\x9eP\xbe~\xed\xdf\x14\xe9uKEa\
+^\xc5\xb8h7,&S\x96\x14\x90g\x01h\x0cr\
+)\x1a\x8c\x0b\x98V\xf1\xbe\xc5K\xbb\xbfj\xf8\x00\xf0\
+\xfeV\x91~\xee2)\x96\xad:\x80\xaf\xcfv\xca\x92\
+\xcc<'\xc9L\x98\xd7Q\xc8\xd3Yw\xc7\xbc\xbdE\
+Q\xbcM\xa2c\xcc4%3\x9f&\xdb)*\xa6\x18\
+\x00\x00\xfb\x81\xa7M\x91\x17\xb7\x07)\xd2\xeb\x07\x14\x06\
+\x22\x97\xae\x12\xfe\x05\x14\x15\xe3B\x05SZ\xc7\xed\xd7\
+R\x1cQ\xf2\xe0\xf6\x9e\x14\x7f/yJ\x98\xb9q\x1d\
+\xc9\x1b|\x8er\x9eG\x03l67\xf8\x0c\x5c\x847\
+\x90\xcd\xe4\x02\x800 \x1f\x85$\xe7?f{\xe4=\
+\xef6\xc3\x0f\xad>@\x15\x85\x1ay%\xeb\x96\xf3\x9b\
+\xbc\x82\xbc\x8c<\xdb\xf9\x12\xe6\xb5q.2\xae\x17\xe6\
+/\x051\x9av:\xe5th\xf1\xbc@C\xcd\x14\x05\
+\xea\x03:\xe6\xe4e\x17\xba\xe3K\x81\xcc\xe7\xa4qs\
+\xb0\xa7\x09aR\xea\xf1\x8eQ/!\xbd\xc5\xfb\x82s\
+\x95\xba\x81|\xdau\x10\x05;\xd4}\xc6\x1f\x07\xf3\xc4\
+L\xc3\x00\xa6\xec\x0d\x14\x0c1\xea\x22L\xc0W\xef\xd6\
+Y\x98f\x02l\xe15@\xc3\x06\x86\x0f\x80\x08\xd4|\
+\xea'\x1a(\xd4\x0b4\xcc\x5c\x87p\xee\x87\x06\x1e\xa0\
+\x09\x09&\x8ch\xf2\x16\x00\x82u=6\x9c\xcf\xcfT\
+\x00\xf2.\xdeG\xcf|=\x1aq\xbe/\xc1(\xa0\xf1\
+\xc3\xfb\x06\x08e_c_p\xfe\x19\xf7\x1fIB\xdf\
+\xec\x9e\xfc\x84\xffx\x9e\xa8\xc7h\x18\xd3\xf8\xc1,\x10\
+\xe6\xa9v\xa5\x19\xf9\xf7?\x90\x7f\x7f\xdd\xa9\x7f\xa6j\
+\xbc\xc0h`,\x22\xcc\x08\xeaS\xcc\x9e\x01,\x5c\x1f\
+L\xbe\xaf\xa8<\x87\x18Si\xe0m\x84V wj\
+W\xf5Bo\xab\xb1\x1aN|\xa33\xc6\x85\xf7\x0d\xcb\
+\x08\xdb\xb6\xde`\xef\xab:\xf8kd\xbf\xfcR`\xf4\
+\x0b\x0d6\x02\x0a\x12\x90\x1f\x0a\x7f\xa8+\xb8c\x92\xf0\
+Sx\xd2\xc9\xe7\xf7\x01L\xb0\xf0\xd0\xdc\xb3\x80\xe8\xf4\
+QX\xd1a\xeb\x99\x07\xa5\xc3\x91\x07\xaf;X\xb8\xd0\
+\x98nPP\xf1\x1f\x00\x0a\x85,\x0f\x00\xef\x87B\x81\
+\x02\x91\xdf\xc3\x02\xc7dl\x0dS\xec\xfa\xd4\x9f\xbe\xa6\
+~\x0e?h\x13\xff~6\x92\x7fx\x01\xdf\xec\x84\x1f\
+\xa0\x02S\x0c\xde\xc7\x22v\x95\x7f\xad\x01\x947\x1ax\
+\xf0\xf5\xe0\x01\x1b\xbc\xc3\xd7\x8d\x0d\x08\x00\x03\x97o\x0e\
+\xae\xb7\xfa\xf7\xd3\xd9/\xd4\xffW\x02)\xbcr\xbd\xd8\
+\xe0y \xd9\xd8y\x808x\x00\x00^r\xa2\xc1\xe7\
+\x1e\xf5\xa8Qe\xdaB\x87\xacs\xfd\xfa\x1dR\x80\x80\
+\x9e\x16\xe9Uc\xff^\xf0\xab\xa5\x13\x01P\xcc\xdbC\
+2\xd9\xa8\x01\xc8x\xe5~q\xbf\x19\xcfg\xd3\x93(\
+\xa49\xc8(\xa8\xfb\xae\xa5\x00^\xb8\xee\x03\x841\x96\
+\xd2cV\x02\x08\x80Y\x00\xd2\x8c\xb4\x01\xd7z$,\
+P\xaf\xe9\xa41\x0e\x13I\x02.\xb3t\xbaI\xd8\xa0\
+\xa2\xda%?\xc6*!90\xf5\x99\x04#\xb4\xfd\x1c\
+\x9c0\x88\xd0Nq\x1d\xb9\xee~\xeesGgs\x9b\
+\x10I\xab\xebi%\x99\xb9\xddV\x1d~#\xac\xe1\x8e\
+\x0b\x80\x84\xc4\x07f\x85\x11\x7f\x5c\xf5\xc3k\xc1s\x88\
+9\x18\xd1p\xc7\xbe\xc2\xfeCg\xca\x94\xf6\xc1q\x83\
+c\xd5YN\x9f\xfa\x8c\x8c\xac\x9a\xf2\x8f\xa9R$\x08\
+\xcc\x03f~\xbb\xcd\xb5x\xdft\xa2\xb9_\xcd:\x8a\
+\x94\xef\xdc\xa1\x09\xd5Y\xbb\xdcu\x84\x01\xb6\x18;\x88\
+y\x18@\x87\x7f.\x94\xf4@\xf0y.9X\xd6J\
+\x9fr\xad\xb2O\xb5\xd7\xa4\xb8\xbaP\x9b\xdb\xf7),\
+YZ\xd0\xebr\xe1bR\xd9\x1c\xaf(\x9aX\x12\xfe\
+X\xcf\xecG>\x981y\xcc\x09\xf62e\xac\x1f\xeb\
+\x1a\xe6\x0a\xe6jq\xbe \x15\xe2\x9c`\xbd@}\x05\
+01\xa5\x1d\x8akx'\xb8\xa3\x94\x7f\xdf\x89\xa6\xb6\
+\xff\xd0\x05\xd0\xbf\x0c$\xec\x9f~\xdd\xad)$i\x98\
+\x91\xe2\xbe<^5E\xe9Dg&\xce\xba\x150\xe4\
+D=\xb4\xff\x1a\x9f\xf8L\xc5D\xb0\x17F.\xa4\x16\
+\xacL\x1dM\xedF*\x11\xe6\x96HKp\xb3\xc6$\
+\xd7\x8c\x96f?\xb9\xe9\x14\xb3\xbe\xe80\x03\x04\x014\
+\x01\xe8aV\xb9\xe1`\x83\x0c\xe0\xb8c\xaf>z\xee\
+\xa4\x03\xec\xcd\x9bw\xb2\x0e\x08PG\xe2\xe8\x14\xdf,\
+\x9d\xef\xdci_\xb2tn\x07\x07+J\xc1\xa4\xbek\
+\xeeX:\xb1c\x0a\x00\x05\x13T\xd9fWEz\xfd\
+\xa4\xa2h\xefa,\xb4\xdb+\xaas\x9f\x8e9\xc0\xbf\
+%\x13\x8c\xd9k\xceTT\xd35\x18\xab\xb6\xba\xa2\x92\
+.-\xdf\x8d\xed\x8a\x0e=\x1d{\xdc\xd3/S\xa4?\
+_]a\xa6\xc8\xf1\x95\x96\x9b\xf3\x84\x0e\xa1\x81\x9c\xa0\
+\xa0{z\x01\xe7\xd3\xf8\xb7\x8a\x8a1p\x81\x22\xbd\xbe\
+CQQT}\xdf\xc2\x8c\xcf\x80\x02R\x05\xa6*\xcd\
+\xbcM\x91\xfe~\x07E\xa5\xa1w\xe7\x1d\xe6NL3\
+\xf1>\x1e\xe3\xc7\xccHd\x9c$\xda\xf2\xe6\xf5\x8a\x0c\
+\x84d\xd3\xca\xf6<E5\x85E\x1eG?\xa9LN\
+\xfb\xee\xd6\x9c\x9b\xeco4$8\xbf\xed\x99\x14\x9e\x13\
+\xa6\xf6\xb7'*\xd2}\xff\xae\xa2*P|~P\xf0\
+\x02\xf0a\xd2\x8a\x09X\xbb\x80\xc7\xd6\x01$p\x9f\x91\
+\xa8\xc8\xa3aQ{\xb8\xac\xec\x0e\xe7\xeb\x0a\xd5\xbe]\
+KQ\x01\x06\xe4G.H0\x19\x8d|\xc3f\x88H\
+S\x82\x99\x02U\x9c\xb1\x85HH\xe9\xec\x01\xb0\xb1\xcf\
+y\x9f\x8d\x82\xdb\x9e;\x14\x5c4v(\xa8\x19\xe3\xd6\
+\x9e\xafH\xeb\xea\xbe\xf1\xbd\xe3\xfb\x8a$\x09s\xd8\xf6\
+;\x0aO\x17\xf8BE\xd9\x97\x87\xc6\xe1\xe5<\xcf\x1d\
+\xedU-U8\xba\x14\x08\xcd\xb6\x8a\xc2\xbcC\x12\x01\
+0\x15\xd3\x8d\x00<\xde\x96\xe7E\x95\xfb\xf3\x8dN\x8a\
+\x14R,\x1a{\x5cG:\xd6\x7f\xb4\x14\x87\xfc~\xff\
+\xee\xdfG\x1e\x00 e\xef\x9a\xa9\x0b\xcc\x80\x03\x881\
+\x10\x18.\xe6\xf66\xc8@\xec\x22\x05\x18\x88\xf5\x89\x04\
+\x0bSf\x1ak\x98\xc9\x9e\xa9\xc8\xf5HW'\xc0\x98\
+\xa5\xb0\x05\xa0\x22\x1f\xa10t>\x84\xb7MP\xcd=\
+f3\x80\x7f\xf2.\xbc\xa5\x98w\x8f\x97\x87\x99\x22\x91\
+\x871\x1d\x00\x86\x87\xcd*1k\xe4sb\x96\x0d3\
+ $SH\x08\x0d\x94\x85\xe4\xe4K\x8ab\x1eM!\
+\x18\x8d\x16k\xe7\xc3\x83\xe1\xa8\xa9#\xf344L \
+y\xff4\xec\xa8\x83\xb8oH\x11\xe8\xa0\x03\xd0`\xf6\
+\x89\x04\x87i\x024\xb8\x5c\x98GG\x9a\xc6\x1af\xd0\
+4J0Q\x06 \xc0\xd3\x82\xfa\xa8\x9fo\x03\x04\xc1\
+X\xa0n\xa2`'\x8f\xa0\xee#O\xa4\x1e\xa1\xa0\x07\
+\xc80s7$F0\x11\xa8\x83\xf9y0\xd50\xe9\
+\xe3}S\x07\x22\x89\x05h\xf0ud\x5cg0\x03\xa8\
+?h\x98r]\xf5\xa7wW\x8c!\xa6\x11\xf1{\x18\
+7\xca\xfebF]\x8cE\xf6>\xcbt\x88Xw\xbe\
+\xce\xa3\x8c\x8c\xdcS\xe6\xb7\x86\xab\xb7<\xb3\x8f\xad\x0a\
+\x11\x95\xc9\x8b:\x91|\xaeJ\xdc\xa1\xc6\xd0\xc1\xa0P\
+\xa4\x10'\x91C\x8bM\xe7\x9e\x7f\xc7\x0d\xa6\xc3\xa8~\
+}MA\x86\xf2\xc1\x03\xdf\xef\xa8R\xd8\xf2>\xf9y\
+\xfc=7\x9c\xef\xe3\xe7\xe1\x9a\xbf\xa6)\xddl\xe0\x14\
+\x9e\xbco\x0e\xe6\xda\x13\xe1\xdc\xde\xdc\xd8\xa7+\xea\xc9\
+\xcb\xd1\xa9\xee\x12Y\x90H\xa8\xe6NL2\xd1\xec\xb5\
+\xd5\xe7^\xc6\xef\x97\xc2\x83\xf9\xf6H\x0d\xf8},\xec\
+\xff\xf8\xc1\x04\xe1\xba\xaf\xd3\x9cE\x018\xf6\x03\xb9\xb5\
+M\xde\xa0\xe2c~G\xc2Na\xc1\x03\xcc\x01\xf8\xb4\
+\x13\xb0\xa7{\x05>\x9d:>\xdf*=\x93\xb6b\xe6\
+\xd7\xbd\xf25\x0b\xb8h\xb9\xbaB\x9c\xdf\xc7\xc2\x07\x10\
+\x80\xe2\x86\xa9\xc53\x1d\x92\x19\x9dm\x10W\x1e0\x1e\
+t\x0ex\xee\x03\xbf\xb7\xff>\xf8\xbcl\x00\x14H$\
+\x9e\xcf\x86iFw\x9d\xd9\x08\x01\x06\xf8\xf9\xfc\x1c>\
+\x17?\x1f\xc0\x81\xaf\xf9\x0f@\x82\xe7\xa4\x0f\xb0 \xad\
+\x00\xc0\x00H\xe0s\xb1\x01\x02\x14\x00\xac\x01D\xb0\xde\
+\xfa\x7f\xbf\xd4+%\x0b!\xf9\xe0\xc0b\xdd\xf1\xef\xf8\
+\x9a\x8d\x1b\xa0\x00i\x0d\x00\xc2}\x8ar0\xe0v\x1d\
+\xc8\xbe\x9f\x9b\x002l\x96\x15T:\x98'\x98e\xf9\
+\x00\x8b\xa9\x05\x1e\xb7\x16\xda\xd0U:\xea(\x9d\xbd\xb8\
+\x9e|~\xdc\xecAFm\xf6\x12\xd4X\xcc\x07\x91\x0e\
+x|]\x00\x09\x14\x9a\xac/:n \xb1hZ\xd5\
+\x17\xbe\xb6P!\xb3\xeb\xf2\xfe\x15\xf5\x8a\x84V\x85\xd7\
+\x99\xe5\x00@s\x1f?\xc7c\xa0\x06\xe7)*\xf38\
+\xaf\xb3\xf6BE\xd5\xe9E\x82\xc2\xfdD\x22\xe51\xa8\
+\x81\xa4\xb3\xde\x19{Y\x98:\xa3<\xa5\xc3\x9dn\x0a\
+\xe8\xdc\x079\xc5\x12\x00\x01.+)\x8a\xa6\x1e-\xf4\
+\xe0\x81\x14\xf7\x97)1\xaf\xf2\x1e\x99a\xea\xdd3N\
+ \xcd\xdch\x97S\x14\xd7\xee\xe6\xb3\x8a\xd2q\x0e\x93\
+\x1cL\x80\x8e\xcbQ\xc6qB\xf5\xb3\xf4\x84\xceS\xbb\
+\x9e\xa2\xeaXz\xbdD\xa1\xc7z\x13\xfct\xbd\x13\xb5\
+OV\x80\x0e\xae\xec\x14P\x9e\xff\x1e\x07\xf5\xe1\x0a\x9b\
+#}\xbd\xa2\xe0\x22\xf1Y/\xdb\x7fv\x05\xe2\xa8J\
+\x80\x90j`\x12\x86D\xed\x04kt\xd9g\x163\xe3\
+\x02\x13C\x03:!q\xb0\xc9]3\x9b\xdd\xeb\xcf\xe8\
+\xa6\x094'\x9b\xe9\x82\xf4\x86y\xdcL\xb30\xc3\x82\
+\xf3\xbcYQa\xd3\xc3O\xa7\xaf\xf3\x7f\xe9\xefwO\
+\xb1[\xe5b\xedy\xde\xd9\x04\xf0m\xd5\xfd\xb7\xe6}\
+\xb0c\x078\xe2\xd6\x1f@\x94\x13b4\xed\xc3\xb5\x14\
+\xe9\xeb\x0d\x9a\xf5\x1bi\xeb\xd7TT\xe6\x80^O\x00\
+\x83\x01,\xed\xac\xa8\xccM\xe9\x90\xc34\x01\x18\xf9\xb3\
+\xa2\xa2\x9e\xdb\xbc\x91\x840\x183\xce7\x9as\x14\x15\
+\xa0\xe1\xbfo\xeeU\x94\xf1\xb2\xd1\x01\xa4 `_'\
+\xf1\xa3\xf3\x8b\xb6\x93\xc4\xce\xf7\xb9\xddIQ\xbc\x08\xda\
+\xe5\x15\xe9u1E\xa5\xa5\xf6\xb4\xa1<\xaf~F\xa1\
+j\xb7\x07+\xaa\x7f7R\x94N0\xdaw\xb4\xed\xe4\
+5\x937*\xaa\xb9\xe3\xben1.\x8fB\x06\xe9\xc1\
+\xb6\x1d5zp\xd1\xe0\x97\x83_V&\x86\xf2\x82\xb8\
+\xbcH\x9ab\x8c\x18f~0\xcf|\xfe\xe1\xfd\xc0\xb9\
+\x8c\x09h\x00u.\x000\x95\x0d`\xd6\xe7v\x14\x98\
+\x00\xe5tf\xdd\xc9\x9f\xac\xa9H\x9f\xff\x08\xf5\xb4\xf3\
+\xcf\xeb:\x93\xee\xe42\xa6:\xcc\xcbV\xcb\x10D\x97\
+o\xce_\x9d\x7f\xe4'\xbd\xe9-1]\x0a\x00\x033\
+:\x03\x0d\xd1\xd1\xe7\xfcGZ\x81)\xae\xf7=\x9e\xf7\
+\xd8\xdf\xe9\xb4Y\xd2A\x811\xf9\xb8\xa2\x00\xd3\x93\xb1\
+\xa2xH\x85y\xde\xb9\x8a2\xf6\xb1=]Q\xfe>\
+\x00{3\x9fb\xae\xbb\x0a\xcd53\xa5}+I\x91\
+8\xc7\xc2\xb3\xe3\xa3\x8a\x8a\x19\xb0\xa6\xa2\x9a\x22CA\
+\xfeh\xca\xbe\x1e\x5cg_I\x00\x00 \x00IDA\
+T5\xf3\xf5'\x95\xcb<\xf9\x02\x9eB\x14\x82h\xa8\
+\x97\xb0\x94\xc3\xf9\x18\xd3\xb3Ry\xdby:\x90\x0f1\
+e\x82\xba\xc0\x80\x5c*B\xbb\xeb\xcb\xef\xe3<X\xce\
+\xf9=\x8c\x00\xce5:\xccH\x00\xc9\x7f` \xd0\xa8\
+<\xad\x1b\x879\xd8\xb8\x93\xbe\xc5s\xcd:\xf5\xf3\x18\
+\x0c\x04\x98p~.\xc2<\xce\xd7\x13@&\xa8\xde\xbe\
+\xefq^\xd0x\x81j\xceu\x9a\xbd\xcb\xe74\xfbD\
+L\xbc0q\xe3\x1cu\x1e\xc3\xfe\xc7s\x1d\xd267\
+\x8c\x00\x8a\x00t\x82\xf2\x8fw\x17\x14x\x1aK\xdcW\
+\x0a_\xea\x09\x00\xbe='_\xd0\x98\xca<^x\xce\
+\xaa\xe3M~\xe5\xfa&$$\x98Xr\x1d\xfb\x12\x08\
+\xf2X\xeaD\x98\xcf\xe4\xb9\xdc'\x18p\xe4-\x98\x11\
+\xdb4\x16\x8f\x8bx?\xe4\xbf<\xd7\xe4\x95f\xda\x04\
+\x05\x9e\xdf\x83\x14\x0ef\x0bR#\xea\x0d\x98\x08\xec?\
+}&\x03.\xfc\xae\xab\xc2;\x00\x06\x0f\xf5\x0b\xd3i\
+\x18Oh\xb3\xcd\xa8+\x00\xb4`\xbczJK\x865\
+.\xf1\xcfy\xfe\x15\xf5WWw\xf5\xa5\x17\x000\xd4\
+\x8d\x98 \x225\xe6ss?\xd8\xaf\xc9Kix\x1b\
+\xd0\x1aMvQ\x14\xcdK\xd6\xfa\xec^u2LI\
+\x0d\xa4l\xf1Lr)\x09\xe8\x9c\x99\x8c].\xe8K\
+\xb9\xf7[\x16\x007\x8c\x02\x86W\x16\x06\x9d}\x0a\x12\
+#\xfa\xf1\xef\xf9@}S?\x16\x10_\xf3\xc1\x98c\
+\xcd\xd8\x0f\x0et\x0a=\x17\x96\x93g\x15\xb9\xf3\xd0u\
+D@\xb2a\x16p\xb0\xa3\x8d\xc24L\x1b\xebV\x85\
+\xd219[QQ\xa7)\xf0y\x00y\xf0f\x8f\xce\
+}\xf7\xc0\xf0\xbe\xded\xc0\x82\xeb\xd9\xef\x08;A\x8c\
+\xc2\x8c\x8e=Z~\x104\x0a|\x90y\x1ep#\xa0\
+1~\x0c\xed\x16\x00\xc7\xe2\x06\x04\xec\xee\x1f\x05)\xf7\
+\x09\xaa=\xef\x1f\x0d\x1ff\x82\x98\xe1Q\xf0\xd2)\xe7\
+\xdf\x83\xd0Q\xa0\xb1\x1e^o\xc4n\x09\x7f\x1e\xbe\x8f\
+B\xa5?\x97\x13\x00\x82?\x7f\xd2\x1b&\x89\x19\xff\xcd\
+\xfd\xbfP\xff\xfb\x1e\x06\xfc\x1e4e\xee4\xbcj\xca\
+B\xef\x01\x7f\x15C\x80?\xef\x9b\x1e\xf2u_\xeb\xc3\
+s\xd2\x9bw\x1a\xc0\x07\xaf\x1c\x08$&P\x8d\x00\x9a\
+\xd8\x18\xf8\xfe\xfe\xef\xe1\xef\xd1\xd4\xf3{z\xde\x19\xf1\
+\x9c\xf1~\xfb&\x81\xdc\xb7\xbe\x07\x02\xc0\x1a\x1a%p\
+\x0e'\xceA\xc1\xe5\x00d\x9a\x05ce\xf0\x00\xa1C\
+\x0c5\x0e\xb7o\x17\xb4A\xc1\xf2}\x9d\xec5\xd9[\
+\xe3x&\xcbv\x94\xcdH\x1c\xa0\x222n\xc7\xeb0\
+\xcc\x06\xd1\x9abr\xc4\x86\xed\xc216|\xb4\xe7v\
+\xa7\x86rIB\x17\x1ay\xe6V3\x9e\x09S'#\
+\xd1\xe1\xf2\x0e\xe3\xe8\xc8\x1c\x058yNQi\xae=\
+]\x04\xad*\x05UP\xf3\xf16\xc1\xbb\x83\xe7\x01\xa0\
+\x8fi\x03x\x1e\xf8\x00\x1d\xccjJ\xfe\xb4\xc1(\x9b\
+\xec\x91\xa80\x17\xde\x9d]:\xb5HI\xd8'r\xa7\
+h\x9b\xe2\x19\x10\xfb$\xee\xbf_\xf1\x18:\xae\x1f\x8c\
+\x09\x9e;\x90{\xdc\xa4\xafPT\x00\xa4\x0f\xa2\xdc\x81\
+\x9fQi\x11A\xc4]0\xc5\x81\xcf\xb8'Lv|\
+\xd06?P\x94N#Z\xfe\xc9;\x14\xf6\x10x\xb0\
+\x92rq~0e\xe6\xafS\x1d\xb5\xf0\x92\xa9<%\
+\x01\xd7\xf80\x91S\x82\xbbs\xa5\x0dU\x9a\xb5\x89\xa9\
+\xd8\x87T\x1d.\xa4-P\x919G\xed\x92\x9e\x19\x03\
+\xcf\x16S::b1\x9f\x9dqD\xab\xfa~\xb3n\
+\x963p\x87\xb6\xda\x0c\x1c\xa4\x0dxN@%\x0f\xb3\
+\xaaCR\xa1+\xc0e\x98\x22\xed\xcf\xc3\x1b\x15\x1e\xcf\
+\xb7U\x05|\xd8S\x03\xaa?&yPg\x03H\xb8\
+\xad+\xbc\xa3\xb3\xbc\x8a\xa2\xd2\xe6C\xf9\xdf\xdd\x0c\x0a\
+<!\xdc\x99nvW\x94u\xc6\xf8\xc4\xe1\xfb\x15\xd5\
+\x5c\xf4\xab\x15\x95\x19\xe8\x1f\x14\xd5\xfe\xc0:\xa6\xe3m\
+\xe0'\xbc\x0c\x0c\xa8`v\xc8\xfb\x0c\xf3>(\xfe$\
+Pxop\xdes\xfeR8?\x1f\x8c\xb0W\x9a\xec\
+\xb2\x8e\x98\xb6\x03u\x9d\x82\xca\xcf\xfbd3E\x95g\
+y\x1c\xd7\xf8\x1cE\xa1\x86\xb7\xf7+*\xf7}M\xd1\
+\x10\x05<#C\xe9\xf5\x9d\x9d\x14\x04 \xac\xfd\x9d\xa2\
+\xd2\xf6\xda\x1c6\x5c\xcc1U\x84i\x08\x13k7\x9b\
+\xa3\xad\xe3\xe7Y\x9e\xe1\x97V\x9du<L\x04\x0c\x1d\
+Q\x80:\x98\x18\x01\x18\x19@m\x8eQ\x94\x82\xaa]\
+_\xa2\xa1\xf4\xe7oWT\x1df\x0a\x9f\x07\x15\x15\xb3\
+\xe8rE\x19#\x18\xf9\x1b\xd4\xe9E&\x0bO4\x1e\
+s\xc7\x14;\x94\xf5A',:\xf2\xb8\xde{J\xcd\
+\xe4\x00EU\x88\xbb\xf0\x8d\xa99t\xe0\xb4\xdb\xcb\xbb\
+\xe5\xd8\x14\xc7\x98i\x92\xf6\x99\xf6'\x8a\xf4}\x1fU\
+T\x8c\x14\xb4\xf1\x9c7P}=\x15&\xbc[\xccd\
+\x88\x8e\x9f\x99K\xd1\x11\xb6\xb6\x1e\xe6\xd8\xf8\xe9\xf1S\
+\xe3\xa7\x8a4)\xe6\xc6\xc3\xa8r!\x12\x1dV\x5c\xfc\
+\xf5>\xa6\x97Nt\xac\x7f3P\xb2\x04e\x8d\x8ai\
+\xe3\xc2`<w\x8a\xd7\x14O\x97\xc9;\x15\x95t\x8c\
+\xfc\xa0x+uy\x1ey,\x12[\x0a\xf2\x9b\x05)\
+V\xf9\x03y\x08\x94x\xf2\x14\xa4uHx\xec\x8a\x1f\
+\x05 f\xdf\xe4\xd10\x85\x91\xbaQP\xf1J\xde\x07\
+C\xd4f\xd0\x83\xefv\x92\x80`h\x99\xe139B\
+Q\xa44!\xfd\xe4\x5c\xe2\x5c\x80Zm\x80q\xb0\xb3\
+\x22\xdd\x9f}\x15\x95\x06\xdf\x1dX\x1a\x18\x00\xfa\xc1\xac\
+5`\xc7s\x1f\x80\x1a\x92\x0c\x00E$\x16s+*\
+\xe6\x83\xf7\xa1\x0c\xd8\xee^<\x04b*\x05\x80\x09\xe7\
+3\xf5\x0bLj\x1a9~\xff\xd41\x91\x17R\xa7\xf0\
+y\xed\xc9\x13\x053\x9e\x054\x86\x00\x04\xfe\xa8\xa8\xf2\
+\x1f$X\xf6\x00\x0bf&\xf9+\xf9,\x8d$\x0aY\
+\xf2O\xf2/\xf2Z\xea\x14\x18\xd3\x96T\x85\xd7\x03\x8d\
+^\xf6}\xd7A\xc1\x14\x22_\xa6>,f\xe5\xdd\xfe\
+M\xdd\x01@\xb1x\xd4W]]\xc6uA\x9aj&\
+n\x00B\xacc\xf2i\x00\x13\xd6?\xd7\x97<\x9c\xf3\
+\x043`\xb5\x95\xfe^1\x10\xa8\x0b\xb8\xbe\xe4\x030\
+\x02\xd8\xbf\x19k}r\xe7\xfd\x10\x0cT\xa44\xde\xef\
+\x06\xf7(\xca\xfb\x0dO\x0c\xaf\x8f\x86\x8d):B\xa2\
+\xc8\x9c\xe5\xce\xd9\xd5^\xe0\xb3Tf\x22P\x89\xd4\xc7\
+8\xa1\xa2\xc6\xeb\xb1\xfeOu!\xea\x02c\x96 f\
+\x97\xffF\xb9G\x5c\x1e\x5c.<\x1d\xfe\x85\xac!\x07\
+\x99\xe1\xc2\x82\xe4\xb2\x91P\xa8q\xe1\xb8a\x5c0.\
+4H\x0f\x1d>Lb\xce6\xa2|\xb1)\xb3 \x7f\
+\x1cp\x17*\x8ay\x08\x9d\xca(x\x8f\xceQ\x90a\
+\x5cY]\xb8\x84\xab&H\xe3\x1d\xdd\x98\xbd|\xb5\xfe\
+\xf3\x8a\xb9\xf4\xdd\x82\xa3\x80p\x82\x13\x94\xf3\xe2%\xf0\
+J7M4\xf1\xe3\xe8\xa8w\xd7\x85\xeb\x01\xb5\x8a\x05\
+\x85\x89\x0d\xd7\x89D{Z\xaf3M\x01\xff\x9a\x1e\xd5\
+\x86?\xe7\xf7\xf1\xef\xfb\x0f\x14\x05\x01\xd2\x07\x00\x8c\xc5\
+_)9\x08w~\xee;\x85e\xcf\xcc\xaa\xcc\xc1\xf0\
+Jj^i\xca\x18\xeb\x84\x8e\xb9\xc7gE\xe2\xd6_\
+'\x14\xd8<\xc0\x1cT<\xb0\x14\xfe}\x0a5\x05\xff\
+\xcb\xfe\xdc\x5c\x87\xb6\xf7\xfb\xfa\x85=\xc0\x93\xc7;\xc5\
+\xc6\xd4[\x97\xa1\xc5Bc\x09\xc5\x0b\x0d\x10\xd4n\x90\
+p\x10A\xdc\xbf\xf9\xf7\xd6\x96\xc7x 4]\x98\x82\
+`\xfe\xc2\xfb`\x9e0f*\xfdy\xf1\x5c?\xee?\
+\x89\xb9\xc7\xd2\xc48\x1cw\x06\xd1\x8e\x87\xf6\x08\xb3\x12\
+\xd6\x09\x9f\x8b\xf1y\x14:\x98\xe3\xb1\x0e\x01$\xd8\xf0\
+\x9e\x98<\x9e\xdd\x8c=\xf6\xa7}@Q4n\x009\
+\xb8\x80O\xe6PTfJ\x1a\x03\xa5\x84{\xe1.\xa1\
+\x0c\xcd\x9c==H\xc4\xda/*\xca\x01G\x22\xd7\xbe\
+C\x91^\xe7S\xa4\xd7\xb7)\xaa\xb1\x88\xb8\xd8\x82\xf0\
+RXP\xb8r\x90\xfa\xfa\x86\x1b?\x1d\xdb\x0b\xba\xfd\
+\xa6\x99(\xd2\xeb\x03\x8aj\xec\x12s\xc8\xad\xddf\xce\
+:\xae\xfcP\x9a\x9b\xa5\x9b75ra\xbf\xa8\xf9e\
+sQ5\xd6L\xe3\xfcN/\x05]\xcc\x1d&\xc1\xb3\
+&\x98\xceC{A\xc7@\x88\xcf\xbb\xa8\xa2 \xed\xed\
+m\x8a\xea:\x00\xf0`\xb2\xe4D*\xc6\xbb\x19\x10i\
+\xbf\xa9(c\xf9b\x5c\x14\x1dG:\x1c\xa6\x22\xe6\xf1\
+_\xef)\x89\x7f\xcc5\xa70zBa\xf7i\x8dA\
+\x9c\x9e\x22\xdd\xaf\xf1w\x15Ug\xf5\x1cE\xe9\xb01\
+\xfe+\xa7\xe1{T\xfb\xd3\xaa\xb9\x04\x0fM)\x14`\
+y\xad\xab\xa3\xdd\xbcUQ\x99\x02\x9e\xa6(\x7f>\xfa\
+\xf0h\xabQJ\xb0\x86\x07+\x8aIks\xb2\x22\x03\
+/\x9d\xe9\x1f\xf7\x03\xe0f\xb6\xae\xc0\x9f\xda\xc4@\x0a\
+\xe3\x9d\x98+\xce\xf3I\x07\x0e7x\x00\x01?\x87\xa1\
+\xe9\xbf/\xfd\xdc\x19UBjI\x0d\x14Y:\x82\xcd\
+Q\x8a\xc2(\x80B\x1en\xf8\xffl\x1el\xd2um\
+~\xacH\x9f\xeb\xbf\x15\xe9\xf5'\x8a\xf4\xe77+\xb2\
+D/\x17&h\xcf\xa1\xaa\x0fnUT\xd3|,E\
+\x18\xce\xa6(n\xfc1f\x0f\xa6\xc3\xc1\x8aJR\x81\
+\xf4\xc2S&(<\x9b\x0d\x15\xe9\xe7,\xa7H\xd7\xff\
+u\x8at\xac]\xa8H_?\xa7H\xaf;)\x8a\x07\
+A\xf3yE\xb9\xfeQ\x10\x90\xa0\xf6\xbd|\x18\xdbF\
+!\x06\xf0\x0e\x10\x8fT\x8b\xfd\xcb\xeb\xb7=MQ\x80\
+x\xc6\xe8\xb5\xb3)\xd2:\xdd]\x91\xbe~V\x91^\
+\xdf\xaaH\xaf\xb7+\x0a\xe5{<S\x91\x8e\xdd\x93\x14\
+\xe9\xeb\xdd\x14\xe9\xeb\x87\x14\xe9\xf5\x18E\xfa\xf3\xad\xc7\
+\xdb\x8c\xb7)\xd2\x88\xa0\x88\x92@\xfe\xbc\xf3@\x09\xaf\
+\x05)\x89O\xad\x0a\x07\xce;\x000\x7f\xae\x90\xc6\xc0\
+\xb0\xc1{\x03 \x09\x93\xcd\x1d\xbb\x02y\xf0e\x8f\x0d\
+5\x13#\x03s2\x9f\xbcXQMI\x80Yh\xe0\
+\x17\xe9\xcap^Ez\x9ds8\xd7p\xae\xe2\xd5\x10\
+\x1d\xde.'(\x80\xa0\xa5F\x8c\xc3\xcd\xe5\xc7\x05\xa5\
+3\x1a\x12\x97\xab\x15\x95W\x80\x80\xe2/\x15\x00*\xdf\
+\xedy*m\xbd\xa7j\xe4\xf3d\xf6\xaa`EZf\
+\x808\xc6\x1c\xa2\xf5\xe7\xfc\xb3y\xedd)E) \
+\xdb'\xbb}k|\xb8\x22\x9b\x16v\x85\x05\x0c%3\
+\xda\xf0\xd0h^\xab\xa8\x98\xa16\xbdmfQXb\
+\x91\xd6\xc9\xe8o)dr\xf9\xf5\x14\xa9\xd0\x1d\xfe1\
+Ez>\x87\x87(\xca\xf8\xc9\xe6\xeet.\x08 [\
+\xbfc\xea\xe0\xf9\xf1\x0aO\xb0\x99\xf9\xfeu\x1e\x05\x1e\
+\xbf\x1c.\xf8\x02L\x8e\xad\xe6\xc9\x7f\xd9&\xddh\x91\
+\xdd)mVST\x9e\x08\x00\xe0x\xc7\x5c\xdbI\xb7\
+\xf0\x10\xc2\xf45\xa6k\xd8L\x17`:\xed^\x9d\x14\
+\xeb\xdf\xfe9\x0b\x1a\x08\x94G\x8a$G\x7fR\x94\xfd\
+mx\xd9\xf0\xd2\xe1\xa5\xd5y\xf9\x95\xe6\xf0\xecq2\
+R\x14\x13\xd9\xc1\x7fu\xe7\xe1\xe0z3\xc1\x9c\x97 \
+\xe5\x0a\x93L\x9b\x9f\xc6\xf3\xcf>m\x5c$$,6\
+\xed\x8b\xeb\x01\xa3\x8d\xe9'\xce\xcbhHF\x9e\xc28\
+b\xbe\x0fs\xc5\x8b\x14\xe9\xeb\x7f*\x8a9g\x8ck\
+\xa6a\x81\x04\x80i\x17\xaeS\x82\x92\x0f\x10\xee\xf5C\
+~\x15\xa6\xaa6_\xe69\x8b\x82\x97\x02\xb6?\x86\x99\
+<\xbf\xdf\xe9\xa7N\xe1\xfb\xfcux\x94x\xaa\x09\xfb\
+{\xec\xbb}I7\x0c\xed\xbew\x1a_\xf3Z\xc6\x95\
+w\xc0A\xaf\x1e\xa5\xe1\xf2*):\xfb:\xdet\xd4\
++|\x9e\xd2\x10}\xa5\xc9a\x1f@\xe87\xbc{\xa6\
+\x87\x01@\xf4?\x1f\x92$\xc6t\xca\xec\xef\xac\x8a\x09\
+I\x07\xdf\xf7-\x98\xb5\x06j\x028\x83\x89\x85\xa9(\
+\x8cB\xaf\xdf\xd8\xa7\xdd8\x1b\xf1\xff\x04r\xa2\x02\xe5\
+Aw\xb8~]4>\xb1\xc0@4ef\xb3M\xd5\
+\x91\xe2\x83L\x8c\xc1Q`\xa9l\xc0\x1d\xfe\x89\xffG\
+\xa7\x93'\x87\x0b\xc3\x0d`\xa1A\xf5\xa6\xe0z\xaeG\
+\xcd\xe6\xe7A\xb1@\xb3\x01E\x88Nu<\xa1~5\
+\xb2\x9a\xca\xf5\xf3&\xe7\x15\x8dc0\x01\xf8|hK\
+\xe8\x5c\xda\xc59\x0a:(!,t\x12\x07\x0a\xd6\xfe\
+X\x86\x1e\xb2\xc4\x18\x8eX\x98\x00\x03\x14\xb6,\xa89\
+z\x0f\x16\x05r\x9fj\x0e@\xd1\xf7\x1c\xb0\xebf$\
+\x90\xdc\xb1\xc6\xae\xd3\x1e\xc7\xc5<\xe1\x00h\xfa\x8c\x8d\
+\xf9\x14\xd5u\xa2\xe0G\xba\xc0\x03\xdd\xd7\xba\xfbA\x1e\
+,\xa6\xa8\xae+?\x87\xeb\xc6\x83\xc4\xef\x85\x12\xdf\xff\
+\x8f\xebM!\xcf\xf5}\xc8?\xc7\xd7\x991H\xd1\xe1\
+\xa7\xe0\xef\xbf\xf2s(x)\xe4y\xedo|\x14\xfe\
+\xfc\x07\xf2\xc7\xbf\xe7\xfd\xc0\x8c`\x03\xe0\xcf\xfb@\x15\
+\xeb\x9c\xc4\x8c\xeb\xef\xe7$\xa8\xb1\xee\xdc\xa2\x09\x8cy\
+\xd9P\xd5\xbf\xae\xa8\xd6+\x94|k\xe0e%&3\
+1\x10\xc4\x90\x8e y\xf1\x01\x12\x9dE\xccix\x7f\
+|>\x10a\xa8Xt\x18`\xc4\xd8\xcc.\xb4\xe9\x00\
+\x00 \xbdL\xf5\xb062\xae\x0f\xbf\x0f\xb3#:!\
+.\xb0\xdb\xb7(*\xea;sr\x8fV\x94\x03/\xa6\
+)\xb0\xae\xb8\x1e{(\xd2\xcf\x19+\xca\xf8\xa1(\xc8\
+1\x8f\xe2\xfd\xf8\xfes\xdd\xe3y\xe4\x00\x01\xe1e\x7f\
+\xe2\xf9\xeb\x9b\x8cb.\xe4\x0eDx\x06\xb8Pf\x1c\
+\x5ct\xb4\x00,\x0d\x10\x06\xd5\x11\x97\xe0_\x19\x10\xea\
+\xbb\xc7\x02\xec<\xd1\xbd\xef\xb8\xfe\x00XP\xea='\
+=\x12 \xcc\xec\xd6P\x14\xa9\x05\xe6\x7f\xd9e}\xbf\
+j\xdf\xc2E\xda\x07S\xfb\xbc\xa2PT#\xf1\xa3\x83\
+\xcbA\xb9\x8a\xcd\x1d\xddY\x9b\x5c\xa2\xa8:\xe9>\x97\
+&\xbb*\xd2\xcf}T\x91\xbe^AQ:\xa3a\xd6\
+\xf3nE\xd5\x09!\xb1\xf9~\xb6K\x0c\xea\xf1\xe4\xab\
+\x0a\x17\xba\xd3m\x0a\xf7x\x95\x90\xba#\x99%\x09\xa7\
+V\xd3\x0c( \xfc\x1c\x85\xc9\x90\xa9\x99\xcd{\x14Y\
+k\xbe}\x93\x12\xbef\x05E\xfa\xbe'\x15\xa5\x83\x14\
+\x09\xbc\xf7?\xf6[$\x1e\xcd\xc6\x1d\xb0\x83\x09\xa5\xfa\
+\xf4\xea\xd4\xe3>\xff*)\x8a\xb5\xad!Y\xe0~\xcd\
+\xdf\xed\xcf\xd9\x94q\x9a\x13\xe9\xc6\x85\xf3\x7fW\xd4}\
+:\xfc6\x05\xec\x03\x11\xcd\xd5\x8a\xf4\xfab\xf3R\xf3\
+Re\xb2i\xca|\x98&2\x1e\xf0\xc3\xdd\xb8?y\
+\xff\xcb\xfd?\xc62\xda\xdc1$\x1a\x97*\xd2\xf7m\
+\xa1H\x09\xfa\xef\x14\xe9>\x7fUQ4\xf2\x9c\x9bx\
+\x9d\x04\x83\xcd\xe6T|\xde\x98.p\x85\xa2\x024\xd8\
+\xd70\x91\x9bMQ4\x91\x937+*\x0d.\xf3\xa1\
+\x01\x96\x916\x92\x8f\xf4)\xaftfY\x0f0\xcf\xfa\
+\xdaO(\xdf\x06\xb6\xc2\xa5\xdd\xcf\x7f\xc6\xfb\x9a2&\
+0\xc6\xf3\x1d\xaf(_\x8fWP\xa4\xaf\x97T\xa4\xd7\
+\xed\x14\xe9\xf5\xaa\xf6jyy\xb4\xfb\xb7\x07\xb4\x07\x14\
+\xa0!\x98\x09$f\x8c%=\xa4\x9bO>\xd9\xc2n\
+\xf3\xf6B\xc9\x9a\xfc\xd7V\x85\xa5\x0a\xa6T\xd0\xb6\x0b\
+\xa5X\xa0\xf2\x98\xc0\x8c\xd1\xcf5\xd4\xffXG\x98.\
+\xfby\x9f\xbcm\xb2\xf6d\xed\xec%\xd31z\xe80\
+{\xda\xc0\xc0\xf9I\x00\xc5tB\xd9\xb7\xc8W\xe6\xb7\
+w\x854\xf6'\xd9\xb3\xe3\xc7\xbe\xee\xa3\x8a9f\xa0\
+0L\x8d\xf5\xd3\x17\xac\x12g3\x05\xa2#j\x13X\
+\xce\xef\xf0\xecp\xe1\xde\xae\x9bb\x9d\xaa\xc0\x7fC\x8a\
+\xc5*`\xf2|E\xfa\xbe\xc3\x14\xd6\xe6\xefY\x18H\
+\xecs\xed\xb2\x8a\x0a`\xfd]7\xcd \xa4\x09t\x02\
+\xdd\xb9\x0d)\x06\xd4f\xce]\x9f\x0bH~\xf0\x8e\x19\
+<\xa5(\xfb\xce+$M\xb7Wn\xf84\xfc\xec\xf9\
+\x93;\xab\x8bU\x00\xac\x81\xf3\x18kff\xd6\xe0\xa6\
+t\xbfo\xca\xe7^7\xdd\x8b|o\xef\xb4\x0f\xefm\
+\xe9\xe4\xb3\xb9\x91\xb3tn\xe4P\x18\xfa|\xe7<\x8e\
+\x0e\xed\xd3q\x8etS\x09`>\x95\x8e~\xf6$\x0b\
+\xc0\x88s\x87\xbf\xc7\xdc\x94\x0e\xf7\x9f\x067g \xf4\
+\xc9\xb4/<\x99\xff\xdd\xaf\xf5\xef2\xa3d\xd9\xcc\x90\
+\xdaY\x0c)\x00\xe1(\xcc\xc8\x9f\x91\x0c:\xff\x99z\
+\x9f%\x01gxJAO\xb2\x17@\x0d\x0d\x1e\x9fK\
+\xb1?3\xdd\xc8\xe3\x1ec\x1c\x22\x8d\x07\xdc\xfc\xa1\xfa\
+\xd3Pd,#cM1\xf1\x83\xe9\x88)\x9f\x01\xbd\
+\xe8\xb8\xe39\xc0yj\xa6b\x14\xd6\x9c\x83\xf6\xba\x09\
+\xc60\x926\x0ak\xf24\xea*\x1a1=\xd3\xbf\x90\
+\xe4\xd2\xf88FQM\xb3\xa0\xf1\xc4~H\x83\xcc\x12\
+M$\xa0a\xe6GA\x0b h\x86WH\x01\x183\
+l@1\x98b\xfdB\x9d|\xbb7v0\x98Y4\
+\xce\xfaLe\xf2(\x1a\x9b\xd4i0\x91x\xbf\xe4W\
+}\xa9.\x124\xde\x1f\xcfm_\x82\x8b\xf7\x07\x92\x0a\
+\xbc+\xf0\xf4B\xda\xb1\x8f\xa22\x8b\xfe\x93\xa2z.\
+\xa9C\x00Hx\xdf\xd4\x9bH\xb5\x90\xe8p]\x9c\xa7\
+\x8e(\xb4\xc2T\x82\x8e'T\x12(a\xff\x93\xe2\xe1\
+J\xab \xab\x81#\xab_L\x82\xdd\x9f\xd3\xc9<k\
+\x16\x12\x07\xa4\x96\xc1\x0b\xd5\x85\xbdHQ\xb9\x99S\x90\
+\xa1\x89\x01\x91\xe2\x02R@R(P`\xe2\x05@!\
+FaJ\x01\xc7\x05\xeb%\xa2q`\xf1\x00\x92\x00P\
+\xa0\x82\xf0\x83\x10a2\x08\xa5\x82\x85\xcdI[L\xe9\
+^9\xb7\x92\xeb\x81\xa6\x85qr\x98\xac\xe1\xda\xdb\xbf\
+\x9e}\xf3\xbc\x17\x9d\xc8\xb71v\xb0{\xbf\xf3\xf4\xc6\
+o\xc0h`\x1c\x19^\x08\xb8\x952\xdf~\x9e\x9e\xeb\
+\xe8\xffO\x93\xdeG\xe4\xfa\x88[o\x8cE\xfc=\xf7\
+\x89\x8d\x86\xc4\x8aW\xbc\x1f\xe8\xc4\xf1\xfeM\xfd\x09\xb3\
+D\xae\x0b\xee\xa0P\x0aI\xf8\xf8=\x14\xf4\x00M}\
+\x0a>\xeb\xdd\xafh\xf1\xc2#\x82\xf5\x83\x17\xc1\xcb\x1d\
+\x10\x96\xca\xc4N;\x08\x00\xc3F\xc3\xf5a\x9d\xf7\x0b\
+\xc0\xbei\x09\x054\xeb\x89\x0e\x12c\x9bV\x8a\xf1\x8f\
+\x1d@\xc2u\xe7A\xe6\xfe\xf0\xf3y\xce\xb8>$\xaa\
+P\xb6\x99\x97\x8d\x89\x9a)\x8b\x01\x18\xe0f\x8f\xbb\xb5\
+\xdd\x8fA\xf8I\x98\xa2\x80\x07\xf8\xe2\xf7\xf0>`r\
+\xd8]7\xb4\x94\x8c7\xc3\x0b\x04\xe4\xd5\x9d\xa1\xb8^\
+v\xe7\xa5\x80\x08\xc9\x0cH6\xe6&h\x09I(\xd9\
+H=6,\x5c\xa4\x99_\xfd\xedN\x93\x18\x07\x02\x09\
+&\x055\xae\xdf\x96\x00\xc4\xcfEk\xbf\x82\x19+\xfc\
+Gb\x0a\x95\x0df\xc4\xd3)\x11{\xba\x98\xfcEG\
+\x94\xc2\x89\xce\x01\x07\x1f\x0c\xa2\x95\x14\x85\xc2\x05\x93\x01\
+$\x17\xca_\xb3\x8c\xa2\x00HA-\x7f\xca\x1d9:\
+m\xa2\x96\x9fbJ\xe4\xda\x99\xc2\xfbr\xa6\xf0\x92\xa8\
+\xdb\xfc\x0c\x86\x12\x9d\xd4`v\xb8c\xd3<\xab\xa8L\
+\x15\xd1\x00\xb6y\x07\xea\xd6\xf5\xbcUAC\xc7\xda\x9a\
+\xe5\xe6\x19E\x01X\x9a\x19\xdd8\xb6\xf0l\x80BJ\
+af`\xb5\xddZQL\x07#\xe1b\xcc\x92\x99\x05\
+\xcd'\x14\x95;\xfe\xba\x8a\xf4\xf5\xa9\x8aj\x0a\x82\x99\
+\x1f\xd9\x1c.\x1d\xa0\xed\xdd)R\x816<5\x85:\
+l?S8\xc1;\xb7\xeap\xaa0\xbe\xc7\xcf\xcf\x19\
+\xee\x84\xee^$r\xc3S\x86?\x18\xfe '\xe2\xf9\
+\xf72&\x90Nu\x98\xfc\xd9sA\xfdtu\xd4\x87\
+\x17)\xd2\xeb\xdc\x8a\xf4\xe7\xb7*\xf2\xfd\xc9\xfbu6\
+7\xd3\xfe\xb7\xa7\xa2<g\x01|y\x1f\xc0C!\xa6\
+Z<\x97\xe2\xdff\xc4<m\xe0d\xc5\xca\x0cHO\
+\xd7\xc1\xe5\xf9\xc7$4\x00\x1bwF\x03\xd0`\xec\x9f\
+\x13\x17\x80\xa8\xc1m\x8aj\xae\xfd\x0f:\xb7\xfe\xe8\xe4\
+\xbf\xa8(\xe6xQ(\x93p\xdb\xf4\x0a \x87\xb1s\
+\xd1\xe98\xb8+T\xa3\xf3\x87\x19\xa2\xd7'\xa6\xa0\xc3\
+\x7f)\xd2\xd7w)\xaau\x8a\xa9\x15f~v_\x86\
+\xf1\x13\x1d-^9\xaf8'\xf1*\x02\x08d\x9f'\
+!F2\x80V\x99\xf3\x13)\x8c\x195a\x1e\xe8\xe7\
+\x19\xa9J;\xab\x22\xbd.\xac(\x9e\x00\xb8\xca3\xee\
+n\xbc\xab\xa2P\xd2S\xf9\xbfT\xbbT\x1e\xb7\x96\xc7\
+T\xa6U\x9e\x19\x06\xe3\x03\x14\xe9\xeb\x0f)J\xde\x13\
+\x1e\x03\xd7*r\xbe\xd1\xedwPt\xe9hI\x18\xb0\
+\x87\xcf\xd5\xa7\xede\xb2Z\x99v\xd4|OQ%\xc0\
+\x9cg\x9cK4.\xdc\xe9\x94u\x9f\xcc\xfb\x06\xbf\xe8\
+\x98\x1bLK\x08\x86\xd4\x99]\xa7\xbe\xbd\xad\xddPS\
+F\x00\xfa\xda\xf5\x15\xe9\xf3\x5c\xaaH\xafk)\xd2\x9f\
+\xff\xa0=\xb9=%S\xa6o\xcf\x94i\x0a[\xc6\xff\
+Q0j\xaa\x81\xb4\xd2\xbb)\xfc~\xb6/\xa6\xd0\x98\
+\xac\xd1 \x81a\x17s\xdcM\xc9\x0e\x89'c\xea(\
+\xb0\x0c\xd0\xb2\xcf\x85\xf7\x83\xdd\xf3\xdb/+*\x06\x9a\
+\x81\xf7pk\xb79\x1b\x00{h\xbe\x05\x0c\xbdT\xc6\
+\x10\x06\x93\xc0\xeb0\xde\x8f\xf3\xde0\x05\xc5\x9c\x94\xb1\
+\xda. \x01t'K*lZw\x9eM\x06/(\
+\xef\xbb=ZQ\x0a#\xcc\xf2B2\xa7\xa7\xe9\xc0\xe2\
+\x9d\x11\xf9\x80\x01S\x0a\xd3(\xa8\xb8^\xe4!4\xe6\
+\x1e\x98\xdc\xaf\xfd\xa9Y@Q\xed_:\xcf\x17\xa8\x9e\
+C\x80N\x9b\xd6\xa5ll\x8d\x9c\x9f\x7f0\x0fj\xee\
+\x98d\x1f\xac\xdc\xec/O\xe5\xd1\xe59\xffyL\xf9\
+O\x8c\xef\xe5\x9c\x85IF'\x9b|J\xd9\xe6[\xf2\
+s\xdf\xe5y\xbd\xc21\x00\x22\xbc,\x8e\xe9<Y\x00\
+\xa6\xa3N\xb9,G1_dL R\x1c\x1a\x9b0\
+\x01\xc9\xff\xf8\xbcP\xd9\xcd\xd0\x9al\xa1(\x92.\xa4\
+r\x91\xcf\x98\x99@>\xc0\xd4\x89\xfe\x18\xee`\x0c\xf3\
+\x9c\x92W\xf2\xbe\xa8\x83\x00\x08\xc8G\xc8\xd7i\xe4x\
+\xff\x05\x18\x8b\xbc\x17S:3\x14BjC\xbd\xc5\xcf\
+\xe3\xdc\xa6\xc1D=\x87\xe4\x80q\xa4\xec\xa7\x00\x0aH\
+t\x00f\xa9\xeb\x00(\xc8\xb7_\xed1\xd6\xad\xbb\xfe\
+ko\x9cd|\x7f\xbf\xb1\x8c\x07\x19\x0d\x1b$\x07H\
+\xc6h\xf8 i\xe8\x8d/\x8dF\x04L^\xea\x10\x98\
+\xc5\xd4\x07\xd4i\xe4\xcb|\x1e\xce\x17\xea\xa2\xbey9\
+\x8db\xbc%8\x7f\xa8+{\x12\x84WMa\xb1\x14\
+j\x94\xf1\xc6{*\xe4\x80q)P\xf4g\xcb\x03@\
+\xca\x05WY7\xaf\x1f\x90Y+\x13\x0f\xdc\xcd\xf9@\
+\xbc\x01.\x10\x1b\x03Z \x16\x1c\x9e\x02|@\xa8\xcb\
+\x14h\x14@\x5c\x10\x0a>\xcc\x18\x5c\xe8\xd1\xb1\x8a\xef\
+gas\xa1\xfa\xd3\x02x\x9f\x0b\xf8\x95\x7f\xc7\xfbd\
+\xe1R8\xbas\x16\xf3\xd6\xd1\xd4\xf1\xef\xa0\xf0\xffo\
+\x85oo\xbe=T\x9f@\xa8mr\x12.\xfc\xa6`\
+F\xc2\xd1_\xd8<\xd0K\xf9\xf3<o@\x80\xef+\
+\x12\x81W\x9a\xf1\xf5\xe7q\xce\xe5B\xbf\xdfa\x87\xe2\
+\xce\x03\xc1\x03\xcd\xc1\xcfB\xe2s\xca-\x7f\x9c\x0b\xd2\
+W\x8c}{\xd5+\x05\xeb\xfff\x92\x07\xf0\xd03\xdf\
+\x88\x02\xado\xf6\xe8\x84#\x18\x09l\xa4\xfc\xdcA\x8f\
+1P$\x04e<e\xcd\xa0\xe09\xe0\xcf\xeb1C\
+\xd5\xbc\xdbW\xbdr}\x01\x1ex\xa0y\x9f\xdex#\
+\x01FK\xccx?\x12zL\x900E\xc1\xc4\xc6\xd4\
+\xca\x98B\xe1\x02\x0c\xednP\xcc,\xa5\xe0\xe0\x8f\xe7\
+\x8cqoh\xeb\x9c #q\x81z\x1f\xd2\x00\xd6\x0f\
+\x1dF(\x96~\xeeH\xc0AfS\x82\x97\xe2\xff\xb2\
+\xc1a\xba\xc9\xf8BL\xbb\xbc\xa13\xb7;\x90h\x10\
+^\x0a\x13\x96\x07\xfb\x02\x0c\x92E=\x8em\xd7\xa9\xcf\
+fD\xde\x9d\x90\xe8\xa4c\xc2F\xe7\xc1\x1d\xff@\xf0\
+q_\xe7\xe0!a\xa7\xe0\x07\x80\xf2\xc1\xcb\xf3\x18\x05\
+:\x94+\x5c\x8f\x0d0\xc4\xbe\xa2\xb4\xf4/\x95\x87\x01\
+\x9d\x00\xf6\x03\xae\x0b@\x08&f\x5c7\x0e\xea\x13m\
+\x1a\x87\xc9\xe2\xf1\x8a\xe2\x0e\x1e\xeb\x02\x06\xd1\x0cK}\
+v\x9c\xec0\xd9!\x17z\xdd\xd4\x00\xa4Lh\xc6y\
+\xbdsp\xc7\xe0\xce*\x11\xb6\xe6PS\xeb5\xb7\xbe\
+\xf9\x88\xa2\x9a\x96@\x22\xea\x04~p\xa4\xa2:\xb8t\
+\xb5\xb7\xf6\xe7\xbd\xab\xd2(;\x01\x85z\xca\xfaBK\
+\xde\xae\xac\xa8L\xd6\xe8\x9c\xa9\xd3\xf6\x06w\xda\xbfP\
+\x01\xd3\x96\x9e5#E5n\xed!E\x01\x1a\xc2$\
+\x0d\xad.\xd2\x16?\x7fy\xea\x83\x18\x0f'+\x0c\xe8\
+\xac\xe3D\xe5f\x1f\xdc\x8f\x1b\x99\x97\xb9\xdew\x14\xe9\
+\xf5\x06E)\x80\xc3S\xe2\x976U\xbb^Qy<\
+`\xb2\xe6\x84\x1f\x13\xbc\xe1\xeb\x14\xe9\xeb?476\
+7\x16O\x8a\xe6\x5cEqm\x97\x85\x95L\xac\xc2C\
+\x02\xd3C{h\x84y/\xfb\x0fc[?\xaf(\x1d\
+\xa9\x0c\xc8\xccR\x0a!\x18:\xcd%\x8a\xf4\xf5\x11\x9d\
+\xf4\xad9\xba\xf9V\xf3\xad2\x15\x03\xad>\xee\xee\xec\
+W\x83\xeb\xcc\x98s\x823\x98\xc3\x1d]\x9f\x8fa\x1e\
+\x08\x05\xd1\x9a\xc40\xd9s\xc2\xcaz\x1c\xbe]Q:\
+RAa\xc5\xb4\x8d)\x04W(\xaa)\x04\xfb)\x0a\
+\xe5\xb7]@Q\x8dA\x82\x09\xd7;G\x19\x7f\x17\xfb\
+8\x05\xac5\xc7\xb1\xafPhp\x8e\xd1x\xe0\xb9\xa4\
+\xa0\xa5\x13\xc9\x18O\x98]\x8c3\xb5\xd92\x14\xcf(\
+\x08\xed\x8a\xdd\xde\xa0(^\x19!aA\xba2n\xd3\
+\x7fY\x9asA.\xe0^T\xa4\xef\xbbE\x91\xbe\xfe\
+\x9c\xa2\xca{\xf7l\xf7h\xf7\xc8\x1d\xe9Nk\xeeq\
+\x89\xc1\x84@R\xe6s%\xc6\x1a\x93pS\x00\x88\xf2\
+|{%\xe5\x80\xd9GAC\x1e\xc4\xbey\x8d5\xc4\
+vI\x9f\xbcK\x91\x0b\xed\x9cH\xe3\xf9\x12\x05\xe8\x9b\
+\x15\xe9s\xac\xab(\x80\xdf\xf8\xb2\x0e\x00hgmg\
+iE\x91\x1di\xa0f\x05$\x08\xa0\xfe\x8f\xcf\xe9\xb9\
+m\xce\x96\xd6\xf1d\xf1\x14K\xf8\x5c\xfc\x89=\x91\xd6\
+\xa8\xa4t\xe41\x9c\xd3*\xb3v\xb1\xe4\xeb\xe6RX\
+\x05\xa3M0\xd2\xef\xbd\x1ew\xae\x0a\x00\xf6s\xc6\xe8\
+\xf1|\xcfTT\x14mL\xfa\x98z\xc0t\x80}'\
+\xfb\xc8|.$k\xea\xec^]\xcc\x0f\xe9(\xc7\xd8\
+J\x8f\xcb\x84\xf1\x16\xe7\x1d\x0c^{3\xc1(\x09\xa0\
+\xc2R\x90\xf6>EJs\x9eO\xf1B1\x01D\x92\
+\x15\xcf\x01\xe7\x9e=o\x06\xb7+*f\xa7\xf34\xce\
+\xef\xa0\xe8[\xda\xc3\xfb\x0f\xa9\xad:\xb5W\xb9\xd1\xb5\
+A\xb5\xde0\xa9\xc4\xbd\x1c-\xbc\xc7\x7f\xc6\xfd\xb9\xb4\
+\xf3\xa8\x18\xbcG6~\x9en\xb0z\x91\x02\x06\xf0\x89\
+\xc6\x1ei!\xf9+\x0d\x1e\xce\x93\x8b\xa6~\x95\xa7\x17\
+`\xa6\x88\x19.^g|?\x8d\x12\x98\x8c\xf6J\x88\
+q\xa7\xd4#P\xf6\xc9\x8b1\xd7\xf3\xf3\x1e&\xd5L\
+U\xc2\xdb\x86|\x17i\x00u\xd0A9J\xe7\x9b\x02\
+\x92\xce\xb9=$\xa2Q\xc1x?\xcc\xab9\x8f\xff\xe4\
+\xc2\x94\x8e\xb2\x99*Q\xdf\xd0@\xa1\xa1C\x83\x86\xb1\
+\x89x'\xc1Ht\xa3\x12\xc0#$\x7f0\x0d\x5c\x80\
+\xc6\xb4\x03\x80\x06\x1a\xbd0\xa6iH\xc1\x90\xe2\xf7\xc0\
+l\xc0\xc4\xd9\xdav\xce\xfb\xa8\xfb\xc8\xdb\x904Q\x80\
+\xc34\xa0\x80\xa7\xc1\x87T\xce\x8d\xe3\xd8\xaf\x91\xe0\xe2\
+]`iE\x8c\x85\xe4:Q\xc7\xf2|P\x98\xf7\xa7\
+U\xb0~y\xff\x00\x00\xbc_\xa4\x22\xb7\xd8\xc5\x9f\xef\
+\xe3\xf7p^0\xee\xcf\xa6\xc9\xd1\x08\x85\x81\xca\xf5\x07\
+H\xe1\xfd\xf1{\xa8_\xa8\xb38\x10\xc8\x0flR=\
+\xcai\xff\x95Frf\xb8@}\xc9\x09\xeab^\x90\
+\xad\x0b\xe8%\xfc\x03\xdf\xe4\x02rZ\xd5\x91\x060\xa0\
+\x13\xa62dE_\xa8E\xaa\x7f\xafc\xa2B\x94^\
+U@C\xdd\xe4\x8d\xf6\x0bE\x0ai]\xa6\x7fV\x0f\
+\x0c\x086\x1b\x06\x85\x10\xa6|\x1c\xe0t\x06p\xe9F\
+\x83\x8e\xf9 \xbf\x07*\x96\xcd\xffb#\xc1\xb4\xe3z\
+E\xfa\xf6O(\xaaN \x8c\x81\xfe\xd87\x0aS\x0a\
+L:\x05l\x080\x01@\xbe@\x90\x18\xdb\xf7\x063\
+\x1e\xe8H\xa3q\xa7@\xe5 \x02\xf0\xe8S\xe9)\xe8\
+JaL\x01\xfcJ\x80`\xd8\xd3\xdc\xf7\xdd\xfd\xfb\x1e\
+\x01|=\xf1\xff\xbd\xf4J\xa0#(\xc7\xff\xf6\x83\xd8\
+\xa7\xeas\xdf\xe8\xb0\xf4M\xe8\xfa\x8c\x03\x0aZ\xa6*\
+\xc0\xdc\xc0$\xcd\xd7+$)}m\x12\x89 \x80\x07\
+\x05\xeb\xff\xe6\x05\xc0\xfb\xe6\xc1\x84\xd9\xf2\xb0\xa9A}\
+)\x0b\xdaI\xae7\x05-@\x06.\xad\xac\x13^Y\
+\x97$V\x98\x15Aa\xc7\x9d\x16\xc0`\x13E9(\
+B\x9bf\xeaU\x00\x0cvY\x0d\xa6\x0a\x897\x7fO\
+\xe1\x0a\xf5\xfa\xef\x8aj\xbc\x1c\xda#\xee3c\x90\xdc\
+\x19\xa0s\x18\xee\xc6\x1c\xec\xa6\xf8\x06\xe0\xc5|`\xcc\
+\x92\x9chJx\x93\xa576\xad\x8b\x82\xcd\x85.\x1b\
+;\xe6xy.\xfa\xe9\xb9\xa3\xb6\xbf:j\xe1\xf2~\
+I\x8eB\x91wb\x0aU/\x0a~\x12T#\xcf\x01\
+\x0c\xf8z\x90\xe00\x16\x0f\xc47\xc6\x839Q\xa1\x13\
+\x1a\xeb\x08\xaa\xbe\xcdp\x98\x86\x10\xe3s\x000Xg\
+<\x1f\xa6\xa2\xc6s\x8b\x94\xc2\x09W\xb8R\x7f\xcbR\
+\x0fk\xc91\x15\x0b\x00\x06M\x1d\xf7\x8f\xb1:\xd6\xdc\
+O\xa6{\xfe\xbc\xb5\xa3\xcdr\xcd\xf2\xcd\xf2\x15\xc3\x80\
+\xce\xce\xb1S\xc7i\xfaK*#>\xdb~\xb6B\xb4\
+]HA\xd9\x0e\xef\x00<\x0d\x5c\x085\x8b*|\xb0\
+\xdf]\xf6\xd90M\x84\xd2o\x0a3Z\xdd`f\xf0\
+\xbc\x02\x80\x8c:jo\x86\x8d\xb6\xa9\xcc\xc9\xa0\x1eb\
+\x12\x05u\x10\xd3Ak\x17\xa3\x10w\x82\x07\xc3\xa6\xb9\
+HQ\xa6\x11\x0c\xcfR\x14\x0d\x7f\x86U\x97r\x22\xbb\
+F\xa1\x02C\xf5\x8fm\xd4\xe3\xe8R\xe1|\x84\xcc\xd2\
+\xb2\xb2\xfa\xbcj\xbf\xf0\x9c\xe6\xa0\xca\xe3\xe9\x00\xee\xf8\
+\x91N\xf2\x11\xf3\xd3\x0d\x90\xc48\xc0\x9b\x14\xe9\xcfw\
+S\x94\xf5\x84\x17\x04\x8c4$,\xcd\xf9\x8a\x8a\x0a\xbf\
+D\x8a%\xed\xbe\xff\xbbb\x22\xc8~\x15\x9d\xfek\x9a\
+k\x9bk\x8b\xe4ax\xbb\x22\xfd\xf9\xa7\x15\xd5\xf8=\
+K\x13B\x0a\x81vw\xe2\xfd\xc2\x92\x9d\xd8\xdf\xdd\xc9\
+\x07(BB0<SQ\xb4\xfeQ\xe8\xa0%6\xf0\
+\xd5\x1e\xa8(\x09b\x14ZL\xe3\x01H\xb3\x19]t\
+D\xd0\x88\x7f&G9\x0fh\x180w\x1d \x9ds\
+\x80\xc4\x91\xfc\x03\xa0\x15f\x22T_\xa8\xa7^\xd70\
+\x18\xc2\xcb\x85\xce\x15\xe7\x02\x89\xb1\x01D\xbc\x80\xe8,\
+\xb5_R\xb8p]\xbc\xf2\xb8\xb0G\x80\xfa\xfd\xb9\xe3\
+\x7fe{U{U\x99\xaa\xd1\xbe\xa4(\xda\xf7\xf6$\
+Ef\x0ed\xe0\xad]C\x91^wU\x94\xc4\x97\xe7\
+\xae\xbd<\xc5e6)\xfb`EI\xc6\x84L\x1d\xd3\
+\xeb\x0b\xb57\x15\xe0\xa3\x5c\x80\xfb\xfd\xb7?U\xa44\
+l\x7fE\xfa\xfaiE\x96.\x9c\xd0\xcad\xefS6\
+\xff3\xf0\xd0~P\x91\xbe\x7fe\x85\xe7\xd3\xa7\x04\xbc\
+\xddDQM=\xb8Y\x91\xfe\xdd<\x1d\x05:\xceM\
+\x00\x98A\xce`b:U\xfe<\xf7V\x9dg\xad\xbe\
+\x87-q\xfa\x98\x19V\xdf\xec\xf2SI>\xb4kg\
+WoL\xb0u\xaa\xff\xb3H\x04c]\x9a\xaa\xdd\xbe\
+WQ\x18\x1d\x01\x1c\xf9\xfe\x07C\x0aJ\xb6\x99e0\
+:(t\x03\x00\xc2[`\xc7\xf4\xfev\xac\x1a\x19\xec\
+\xef6_\x8b\xe9\x02\x1eg\x19\x8c\xba]R|\xda\xd7\
+U\xf9\xc7\x1eS\x9d\x87\x89\xff>\xa6Ex\xca\x00\xcf\
+Q^g_N\xaf[(\x8adKB\x10IA\x82\
+\x01\xf0\xb8\x22\xbd\xbe\xa0\xa8\xf6O\x80?3\xfa\xc87\
+\xd8GS\x11\xbb\xa3\x0a\xd9\xc9\xce\x06J\xe8\x8c\xebT\
+[\xa1\x00\x22\xf1\xdcz<i\x00\xbb\x00\xccx,\xd0\
+\x91o|\xbf\x9dW\x85\xa7\xc6\x0e\x06\xba1\xbdFJ\
+\xb2\x9c\xa2*D1\x1b\xfc\xe1\xe4\xd4<m\xe6\xdbf\
+\x84Y\x02\x14\x9d]\xa8\xd5\x00_n,\xe2\x1d\x14\xf9\
+'\xe7\x1a\x0cX$\x1bf\xba\xa4b\xbb\x93\xc4]\xaf\
+\xa8$\x1e\xe4\xb5>\x00\xc2\xb4\xd3\x80\x07\x8c\xb6\xf0\x0e\
+\x83\xb9\x00\xa3\xc0\x05^\xb3\x8d\xa2\x00\x8e\xe9|\x9f.\
+\x13\xc8\xf0R\x82\xe2~\x83\x0bk$16e\x0e@\
+\x9f}\x95\xc6\x1c\xf9+\x0d\x19\xf2|\x03\xb2\x8c\x81\x06\
+P\xe7\xdc\x89\xf1\x82\x00\xba\x8c\xbf\xe5\xf3!\xc5\xe6\xcf\
+\x9dwD~\xc4\xfe\xdb\x97\x9aR\xa0\xf3}\x9c\xf7\x00\
+\xb9\xec\x07\x98y\xd3\xc0\x02\xc0\x04\xa8C\xea\xcd\xdf\xe3\
+5E\x9d\x07 H!M]\x8bt\x9a<\x17/\x15\
+\x00\x0c\x98\xcc\x8c\x99\x944~\xdbJb\xd1\xaf/\xf8\
+\x5c/\x1bH\xa0\xf0'\x7f\xe4\xfc!\x1f'\xef\xc5K\
+\xc9\x80WHy\xdc@\x86A\x14\x85>L\x0a\x98\xab\
+\x00:\xdcO_\xd7\x11\x89s\xee\x8b\xfc\xd6\x0f\xe6\xe2\
+U\x81JanS\x94\x9c\xd6<\xe4B\xb6v\xc3\xf5\
+\x06\x1a\x89\x0fTn\x1e$\x5c\xa4)t\x98g\x0e\x15\
+\x87\x02\x90\x05\xc8\x85#S\xea\x17\x8a.\xe4\x82\xf2\x84\
+\xdb6\x9d\xed\xbe\x06\xa4\xa7\x05\x09\xca;\x85;\xef\x8b\
+\xf7\x03c\x80B\xbag\xf6\x10\xbf\x97\xce!\x0f6\xbf\
+\x97D\x96\x05\xc2u\xa4\x90\xb5\xabs*Z\xbb\x8dd\
+y\x7f=\x0e\xaa\x0a\xe3\xf7\xf2\xf5\x08\x97z\x0a9\x5c\
+K\xf9\x5c\xdcX~\x0f\xee\xac\x98^P\xf8R\x90S\
+\xd0\xcf\xd53\xb5@\x12\xc0\xfb'\x11b\xc3\x86\x8aO\
+\xc1Mb\x05P\xc3}#\xf1AC\xf3\xa0\x1fD\xcc\
+\x08gxl!@\x10\xbf\x07\xa0\xa5\xef\xb6\xdf\xa7\xd2\
+\x03\x0cP\xd8\x17\xc6\x07\xd2\x82\xee\xe7\xcd\xd9\x1b\x0b\xc8\
+\x03\xc7\xbab\xbd\x951i\x9d\x19\x87\x01\x98(\xa8q\
+\x97\x85A\xf2\x90\xd79\x0f,\x09/\x080\x05\x1d\x05\
+'@\x15\xf7\x01\xd7v:\xc0t\xc6\xfb\x0c\x89\xde\xf7\
+\xc7:\xe4}\x83,\xb3\xd1q]8\xa8@\x9a)\xa8\
+@\x12m\xfe\x09\xa51:\xf1<Gl\x90\xac#\xe6\
+\xd1\xb2\xa1\xe3\xeao\xaf\x8dpG\xc5\xbc\x84\x0d\xd5\xd4\
+\xb4\xffC\xd7\x99\x80m7\x95\xed\xff\xb9\xf7\xf3\x98\xdf\
+\xccCf\xe1%\x1a\x88\x10\xa1A\x83P\xc8P\xa2B\
+%\x0d\xa2\xf0\xa1d\x88P\xa4\x22T\x12\x0d\xc6\xfaD\
+$%eh\xd2\xd7@2$S\x83y\xaa\xfe\x91x\
+\xef]X\x88\xd7\x00\x00 \x00IDAT}\xff\xd7\
+\xb5\xf6\xf9;\xd7\xb2\xde\xbc\xd7q\xbc\xfbx\xa6\xfb\xde\
+\xf7\xdak\xb8\x86\xf3:O#f\x90\xb1\x01\xda{z\
+X\xb5\x8fp\x9f\xda\x00\xad',\xb9\xa8\xd1.\xa3\xb7\
+e\xf5\x0d\xf5\x96\xa5\x00$Y\x95HA\x05\x84\x0c=\
+d7\xfc\x5c\x19~\x93\x9d\x91\x18\x10\x17\x01$\x86\xd6\
+\xed\x96\x0c\x9b9\x06 \x8d\x82KB\xd0u\x93 \xb2\
+>\xa8\xf8S\x89\xbd(\xac\x0a$\x14(\xb9\x95\x09\x04\
+\x87\x0e\x12\xa0\xa4N\x90>2\x1c nu\xd1A3\
+\x97\xfc\x0e\x99\xfe\xcb\xc3\xaa\x80\x19\x0e\x14e\xaea\x8b\
+\x1d\x9d\x17VA\xf9B\x16\xf6\xb6\x1c\xb0\x0e=|\xea\
+y5\x04\x90\x03\x88\x0a\xe9\x96a\xe9\xeb\xb7f\x1b\xf6\
+\xc3\xd7\x96\x16\x0c'\x0a\xb4\xdf[\xed\x81D/\x0e\x08\
+\xd0\xbc\xf9s3S9\xd8Ta0\xa2\xa3\xe6\x9a\x99\
+T--\xf4\xe6\x12P}:\xac\xea\x1d\x87\xe3 Z\
+\x1e\x82\x1d{\xbfd\xfb\x16\xb9;X\xef3[\xf6\x86\
+\xd5s\x8f\xd3\xebEJP\xbd\xb9\xea\xa1\xa4B\x88\xae\
+\xf1\xb6byF\xb7\xfc\x81\xb0J\xdd\x00\xc7\x88D\x0d\
+\xf3\xe7)\xedk\xdf\xc8VzmUiu\xe5\x1c]\
+{\x91t\xd1\x13\x0b\x89`wSX\xba^\x18V\x90\
+\x10\x99\x05?\xc8\x1fWK\x16\x89\xc8\xe9\xb0j\x1c\x81\
+\xba\x8a\xd4-\x93\x86\x1d[\x12=\x06J\xed\x11VU\
+\x00iu\x81\xf5\x9f\xf1\x05\x99\xa0\xe7o9At\xe1\
+\x854 \xc0\x9a\xde&\xac\xf4\xb6\xc3Q\x03\x87\x82\x03\
+xt\xa9\x81\x1e\xabw\xd9\xb2r$\xf0\xb5?\xd2\xca\
+eG\x0d\xc7\xa8\x90\xde\x0e\x89;\xfc\x05\xcey\x12p\
+@\xab\x91o\xa4\x92\x05)\x9e\x90\x01&ed\xdfR\
+\x02\xdbj!J\x08\xd1\x13nRP\xb5N\x11\xf0\xc3\
+q\xd2/\x1aV\x02\xf7\xc92b\xfb\x874p\xd7\xb0\
+\x8a\xfcRP\xf3\xf1\xdf\xc6\x7f\x1d\xff5\x07\xd8\x19\xfa\
+?>j \x95\xeb?\x15V\x02%\xc8:\xfb\xcf\x85\
+\xa5\xeb\xfa\xc96\xd0\xba|\x7fE\x82\xaa\x16\x82\xf1\x19\
+\xc9\xd2\xe7\x1e_\x1aV\x91wr?\x0a\xe8a\xad\xef\
+\xbf\xd9\x9f\xdd\x9f\x9dIT\xb3la\xbfN\xbfn\xbf\
+n\xf5~\xc1%\xb0L\xd9\xff\xfb\xa3\xc2J\x00aY\
+\xb4HC\x9eT\xe9\x9e_\x17V\x12)\x99\xe5\xfe\xa4\
+*\x11\x80\xc3\x1b8\xb7#\x0a\x22 76E\x82c\
+\x89dK\x0edky?^l\xb2X\xbfx\xc5m\
+\x15\xd0\xe6\x03\xc5\x15\xb1]\x09p\xf2}]\xac\xde\xfd\
+H\xb8\xcc\x09\xab\x02\x1e\x9d\x1bN\x98(\x906W\x09\
+,\xea\xf8\x93$(i\xf9\x04\xf9G\x80B\xaf7\x05\
+$%\x9eG\xdd@\x867\xd9)\xac\xa2\xb2\xa2\xc7\x98\
+}_\x95hz\x95\xfb\xc3\xc2\x94\x98\xf9g\xd5bq\
+Z\xb2S\xd5\xa2\xb0PU\xe8\xd2zc=w\xd7\x87\
+\x15y;\x93\xd1\x1e\x19V!\xc9\x82s\xe0\xd1\x9c\xb0\
+\x1f\xce\xeb\x19A\xd5c5.\xac\x02F\x04\x9e\x87\x84\
+U\x85\xb9\xc0\x19\xbcK\xebs\xac@\xef\x86\x8aTQ\
+\x85\x05Z\x1f\xd8WiQqBS\x5cc \xf5\xfa\
+\xcb\x92}/#\xda\xbe\x13\x886\xfc\x94\xcc\x8d\xf1\xb0\
+d\xef\xf6\xab \xf6\xf8m\x04\xf6\xc8PR1G\xed\
+\x86\x848\xc8\xbe\xaf*\xc1\x0bBK\xad\x8b\xfc\x1d\xb2\
+\x9a^\xe7 \x9ax?\xfc\x04*\xd9$r\xe06 \
+1\xc49M\xfc@e\x19\x19J\xa9\xbe\x98+\x89\x84\
+\x19?\xd7\xdf{>\xe2\x97SyG\xb6R\x9f\xcfj\
+\x16\xf8\x9d\xfc\xc3\x1f!\xee\x81\x03E\xfe\xd6\xe4\xf4\xb0\
+\x8a\xd4\x9bx\xa4\xe5\x16h\x91\xca\x14*\xf1\x9b\xf1_\
+\xf1w)\xc8\xb5\x88\x5c\x10\xc1\xb4h+.3\x07\x02\
+q\x81\xe2\x1b\xce\x17W\xce)\x18+ \x9eK.\x90\
+x\x09\xce\x038,\xe4\xcf\xf9\xfe\xb9?>'-\xab\
+\x14\x0ci\x95\xa5\xc0I\xbcAa\x8dqf\xbcZu\
+\xaeV\x06\x9c\xf8K\xdf7\xc7\x17\xf7\x0d\xb2\x8b\xf8\x83\
+\xf3\x9e\x04\x8b\xe2\x85\x99\xfc\xe7\x0bU\xd0(\xdep\xcd\
+\x0cJ\x1f2\x1f\xafQ`\xf7x\xf9~v\xff^\x5c\
+\x1d\xb8\xca\xf0Z\xce\x8f\x00\x86^[\x02>\x0eF\x1c\
+F>0P\x0d \x11\xdc(\x196&\x02l\x8e\x04\
+\x14\x04\xec\x1c\xe8\x04BZX\x90\xca\x90\xa92\xe9\xc8\
+\x93\xcf\x0c\xf8\xac\xdfL\xaf<\x90\x1c /d\xb0D\
+\xfe\xe7\x8d\x82\x01&\xa0f\x22\xf0\xe0\x09\xd0\x08\xe4\xf8\
+\x1c\x04\xfa$Z\xe6(@,\xbd\xe2C@N\xef0\
+\x0f\x90\x0a1\xcf\xe9\xef\x96\xf1x&\x84\xe4\xaf\xc3\xfb\
+\xe3\xd0\xf3>\xeem\xe7~\x17|\x96\x8a>\x0b\x95\xdf\
+\xe3yr\xe5y\xb1\x91\x14\xfd\xd8\x5cAw/=\x15\
+l&<\x8e\x18\xea\x02$t\x18\x17>?\x01\xcd\xe3\
+N(\x0c\x95\xf6\xfb\x14h3\xbe\x5cI \x80\x84\xa0\
+B\x0f\xd2A\xe3\x84\x5c\x92\x03\xe1\x86\xac\xc8\x9f\x0b\xcf\
+\x17yD^\x97\x859\xa7\x91\x17\xc4\xb1\xe4k\xfe^\
+\xdf\xf7x\x10\xb8A\xea'\xee\x0d'\xc8\xd8\x08\xa8\x9c\
+\xb3n\x80\xf8\x16D\xc5\x90\x00 #\x0a\x84\x8b\x0d\x86\
+\x16\x0a>\x9f\x02Z\xaf'6X\x90\x00@\xb1\x04\x09\
+sk\x0a\x99y\x1dH\xceH2\x1f\xe5\x98{]\xd0\
+\x0b\xc8\xeb\xeayB\xbeb\x96a\xd8\x96y\xdedF\
+\x09\xa8\xd1A\xff\xc3\xe8\xa6\x0cQGm\x04\xddX\x0e\
+N\xa0_d\x88\xe5`;a \x0e\x81\xc9iaU\
+\xa5\x9by\x8e\xc3/\x88\x9f+\x1e\xf46\x07\xf7\xc9\xfd\
+\x15\x1b0Pq\x1d\xc0\x90.\xe5\x80r\xbf\xd2\x8bo\
+H?\x95o\x05\xee\xaePQ\x11\xc0\xe1\x82\xc4Q\x09\
+\x1c\x93R\xa9\x02\x09\xf9\x8b\x13Rr\x8ca\xb5\xf6\xfb\
+\x80\xa8\x00\x09A\xef\xa5z\x02G+k\x7fc\x9fb\
+<5?\xba\x97\x84\xe5\x84\xc1z\x910\xa0\xb5\x03\x16\
+l\xcfo2\xee\xb7\x87\xa9\x97\xfbs\xea%\xfd\x8cT\
+SN\x17K\xf6)r\x8c\xb7U`\xfd\xf9\xaa\xe7\xfb\
+\xe4\xb0\x0a\xd2\xaa}\x8a\x0a\xb7\x9f3\xf79= \xcd\
+\xa2\xfe5\xda\xab \x10\xa8\xb0\xe1\xa8\x9aK\x05\x04G\
+T\xe8\xd3\xb9\xd3=\x16\x96\xaeo\x08K\xd7\xa7\x06r\
+;\xf7\xd4\x86c\xba\x96\x12C\xe9\xf5\xba5\x92\xc5:\
+:7\xd99j\x11\xf9\xbf\x5c\x09\xcf$z>\xc76\
+\x90<&*.\x9a?\xdd;\xc2\xaa\x04\x0c\x89$A\
+v\x0d\x99\xbfet\xf3\xe8f\xb5\x8e\xdcX\xc8 }\
+\x1e\xd1\xe3\xc9|\xe5\xe7pL(\xc3\xef\xc0\xfa\x07\xc9\
+~X\xa9F\x04\x99_|\x9eYa\xe9\xe7\xdf\x0d+\
+\x90\xfc\xe4\xbe\x0d\x09\x09\xb1\x0e\xbb\xc7\xfe\xe6\xb0\xc2M\
+\xd0=2\x90\xedM\xed/\xe4\x87\xf6)zzA\xae\
+\x98\x04P\x15M\x02i\xcemX\xcd\x0dq\xd4\xfe\x03\
+\xf2\x01\xa4\x11\x88\x08\xf7B\xeb|1Y!\x09@\x90\
+\x87$\x08DNg\xa8,\x90eZ\xc5p\xd4ph\
+\xd9\xf7D\x8e\xea\xdex\xee\x8b\xcal\x03\x1due\x85\
+\xf3\x18\x04\x00\xb2_\x07\x86\x95s'\xc2\xe3\x08\x90A\
+\x08\xb97\xffua\x22\x9b{y\x09@\x09\x9c-\x1f\
+G`\xb7KXr#N\x0aK_\xbf),}\xfd\
+\x91\xb0\xf4\xf5#a\xe9\xf7\xd7\x0dK_\xbf,,]\
+\xbf\x14&\xbf\xe0O\x95\xca\x89 \xdb\xfd\x89aEn\
+\x8f\x1e~8\x0a\xc67\x86U\x9c\x05T\xeaEF\xdb\
+\x1f\xd0\x1f\xd8\xa7\xcf\xdb\x9f\x17\x96\xaeO\x0f\x08\x85\xfe\
+\xbe\xb0\xd2\xc3l\xddu\xce\x0b*`$\x9eI\x10R\
+Y\x83;\x85\xe7\x1di\x80\x9b*2=\xdd\xf7\xe8\xc8\
+\xb0\xf4\xfdu\xc2\xb4o\xa5se\xb2M\xb2\xadK\x82\
+\x01\x12Y\xfbq\xf2\xff&\xc7'\x8b}\xf3\xfd\x03)\
+]n\xc9H\x01R\xbfWX\xba>7,\xfd\xde\x1b\
+\xc3\xaasZ\xd0~\x02\xdc\xa9\x83\xb2MM\x16\x08\xab\
+>\x1f\x88O!\x83,\xabK\x01j%q\xf0Hm\
+\xc1l\xf2\x1b\x8b\xa4q\xcf\xb0\xb2\xef\xf6\xdf\x0b\xab\xce\
+\x15\xf9S\x93\xeb\x93\xddP\x9d3\xb4@D\xa0w|\
+\x05\xf5\xa6U\x10n-\xc8\x03u\x1e!\x87\xda\x9d\x1f\
+\x96\xae\xbb${\xab\x90^\xcbU\xe4\xbd\x14\x12\xa9\xf8\
+\xe3\x0f\xe1\x8f\xd3*\x8c\x5c\xa7Z\x0c\x5cq'\x11\xc7\
+\xf7\xe1\xe0\x10\xd9g\xee\xc1?\xaf\x9a\x07\xb1\xee\xd2\xfc\
+\x0f\x8d\x9aP\xa91y\x1fr\xbd\xa1&\xf0k\xc9h\
+\xaf\x98\x13\xe2\xdf\x8f\x84\xf8d\xcdt\xae\xae\x999\xc7\
+\x86\x84\xd3\x99\x92M\xbbR\x15cZ5\x95\xa0\xc8\xad\
+\x06\xebe\x04qNx\xc6,\xcaj?$\x1e\x91\xbf\
+# \xa3\x85\x80\x00\x19\xa4\x15\x09e\xe2%\x10\x91\xf8\
+]\xf8o\xc4\x13\x14N\x94\x884\xb2\x10\x88<\xd0\x7f\
+%&\xcd\x0d@\xa2r\xab\xe4\x95m\x95\xcf\xbf\x01\x09\
+\xf5\x80\xfca\x9dW\x961\xd7}P\x00\xb2:\x12\xad\
+\x12\xc8/\x1e\x93\xad@\xcc\xdb\xd6`\xce\xe9\xb6\x82\x8e\
+\xbf\xaa\x0a\xb8I>\xf1\xdb\x88\x8b\x08\xe0_\x1dV!\
+q\xf1\x87D\xde\xeb\x80\x9b\xc2\x01\x89?\x90\xb8\xfc\x9c\
+\x82&-]@\xf6g?S>}.59\xae\xac\
+K\xee\x9f\xd6\x0bH\xf8\x88;(\xf86\xdc\x15\x8e\xfb\
+H@\xd3\xa3O<\xb5\xd1\xd4\xcbr\x8b/q\x0f\xe3\
+\xd7\xca\x7f\x13\x07\x83\x9c\xe5\x1c\x02\xd9B\xfc\xa4q2\
+2\x92\xfb\xc5\xef$\x9e\x02\x19!\xffu&o\x7f\x1b\
+\x08\x01\xf03=\xb8'\x14P-\xaf^\xfc\x7f(@\
+Z\xaab\x8bd\x81\x02\xfd\x87=\x15\xf9\x15e\xfe\xb2\
+\xe3\xf3\xd2*c\x13\xd3\xf8\xdbU\x00DE\x91\x8d\x9f\
+\x00F\x81\xae\xd96\x09(4\x80\x93'\xc2\xfe\x0b\x99\
+\x16\x13\x8f\xf7c\x80Xh\xe8\x98\xf2\xa0\xe9\xe1\xd0@\
+;P\x91\x83\xe5\xca.\x10~\x02@^\x9f\xfb\xa5\xe2\
+\xd9\x90\xaf\x01\x953d\x98\x09\xc0\xc4\x01\xd2O\xc6\xa8\
+\xc9\xf4\x8c\xb8\xff5\x94\xf9\xe3\xe78\x1c\x0fk\xe2\xdf\
+\xa1\x00\x0a(,\x01\x8e\xd8\x8f\x93\xe3\x9f\xac\xea\x15\xe2\
+u\x10hd\xa2\xf3y\x80\xac\xb0q\x10H\xe0\xf0\xab\
+\xd29Z[\x7f\xcf\xfd\xd3j/v_W\xa0Y\x90\
+,\xf8\xf9\x9b\x96\x04&(\xdc\x0fT\xd6\xef\xd1\xf8\xdf\
+\xae\x055K\x09\x136\x86\xdf\x0c\x0eL\x0aW34\
+\xc9\xffHH\x90`Y\xa4I8p_\x04\xea<\x07\
+2\xefk\xaa\xc2\xb4\x95\xe6\x1d\x1b\x06\x19\xd8%\x94\x89\
+c\x9c\xa9\xbc\xb7\xac\xa2\xfc\x9c\x8d\x86\x8d\x03\x87\x80\xca\
+\x00\xe4\x1d\xbc>-\x0e\xa86\x90\x19\x06\x81\x80\xc3\xa0\
+\x8a\xbd!\xf4\x92%2Y_\x93\xc8\x82U\x98\x83\xc2\
+z\xf5\x22\xa1s\xc2\x80u\xae\xde[\xb7$\xb0\xde\x08\
+|h1X8\xacJL@vIB\x8a\x8dZ\x95\
+:\x07\xdc@\x0090\x19G\xd6\xd1\xdf\xb4\x01\xb2\x1f\
+\x1c\x11V\xcd'2\xc6\xbc\x1f\x89\x0d6z\x10\x00$\
+b\xd4\x0b\x8d\xfc\x0c\xa4`F\xf6\xa8Bk\x87\x84\xfb\
+\xa0\x05\x83L0\x1c\x05TD\x0f\xcfV2\xe2bY\
+w\xa5_\x1c\x08\x93]\xc3*H\xac\x1cs\xb35\x8b\
+,\xcc\x81\x05\x89'9\x04\xae\xa0\xc3U\xc0s\xa0\x05\
+\x84D\x0c\x8e\x09\xa4q\xc8\xb1\xc1\xee\x8f\x8e\xfa\xf2\x83\
+>}\xb7UX\x86\xa8\xdf\x15\x10\xf5\x5c\x81;\xb9\xc8\
+\xa1R\x99\xf6\x01\x052c\x9909\xc4\xdbT\xebv\
+\xab\xbcr\xca\x95V\x18\xe4\x9d\x22@\xbe!\xcb`=\
+\xd6\xff\xbd$\x10L\xb2\x08{-\x0e\x9f*\xd4&i\
+\xa4wS\x90u\xe6_\x97\xff\xa5\xeb\xfca\xe9\xfa\xfb\
+\xb0\xb4\xed.\x91,d\xe1\x0e\x0c\xab\xd4E\x09\xc8%\
+\xf3\x9aW\xc9+\x14\xb0\xce\xae\xa0\xa58\xcc\xc8\x02n\
+/(\xec\x0e\xa3\x1dG;V\x8e\xb3\xd4\x04,\xab\x85\
+,\x0f\x01?\x9c\x1b\xe7\x08\xcaK\xa5\xe5\xba\xe1y\x8e\
+\x0e\x0a\xab\xf6C\x1c\x08\xe6\x91*\xebv\x94Y/z\
+>\x99\xa3\xe6\x01\xe9\x9f\x1f\x5c\x91\x0f\x06\x12\xe3\xcf\x95\
+\x0c\x1a\x9c\x04_\x1f\xc8\xbe\xec\xb8p.B&\x05\x9b\
+\xf5-\xc3\xfa\xea\xf6\x0c+\x15x\xa0\xb1\xdd\x8b\xc3*\
+\xb2?H\xfb\x84\x90\xe8\x0e\x09\xabd\x89P\x07\xd0\xf8\
+\xd0\xb2\x00\xc4\xdc\x08)\xc9\x8c\x19\x9a\x0e\x92\x86\xf3G\
+\xe4\x83f_\x86dq\xa1\xb0\x8a\x04\x92\xd6\x02\xf6\x0b\
+\xce+\x10\x80$\x98H@\x82\xb4#\xb0\xc1qV\x02\
+\xd3rZ\xf27\xac\x0b\xaf\xc4\xe3d\xcb\xb0\xa2\x0b>\
+>/\xacR\xb3P\x85\xd0\xf2r@~?1p\xb5\
+\xb8\x07\x5c\xf2`\xfd\x95a\xe9u\x16\x0aK_\xcf\x0a\
+K\xd7\x97\x0c\x15v'\x02\x9e\x0c\xcb\xac\xfb\xc9\xd2\xd7\
+'\x87\x09\xb1\x12\x15\xc2\xfd\x92}\xb8\xdag\xee\x0e+\
+-*\xf8I\xfd\xad\xc9n\xa9\x90X\x04( U\x90\
+\x0b\xa35\xe0e\x03\xcb\xbf\xe5TQ\x15\x90\xbf0y\
+2\xac\x90\xe69\xc0\x87\x13\x0a\x87\x9f\xf3\x9fV\x0d\xb8\
+K@\xae\xe8|!Aj$X$\xe8\xce\x15\x14\xfa\
+\xb0\x12\xf0\x1a\xb1\xa5\xd6\x95\x9c\x08\xfe\xa2\xc8M_R\
+%\xfc\xf1{B\x042\xfd\xfd\xf8\xf0\xb0\xea}\x84\x08\
+\xec\xdf\x12V\xc8qM\xbe)N\x02Z\xea@\x5c\x98\
+d\x96\x02\x05\xebK\x89\xc2\xc9\x1aaUe_\x09\x1b\
+T\x228w!\x83\x9c|&\xac\x92\x83\xc3\x1f\x93:\
+\x03$\xdd\xfd-\xfd\x10 |i\xeaK\x93\xcdE\x0a\
+zm\xe5\x97Gb\xf7;E\x1d\xa1\xfbuX\x85\xd8\
+\xd9|(\x00\xa4pc@\xf2L\x84\x04z[\xb2]\
+\xca8\xb9\x17\x192:\x02\x16\x02C\xbe& \xe29\
+\xe3\xa7?\x92\xb1mC\x81m\x9dJ\xcf\x1d\xd5\x98&\
+\xa1\x1ax\x98@\xc40\x0e&\xcd\xd3\xb9h\x92Oq\
+\x1e\xd8o\xf9\xca\xe8\x8c,\xe3M\xeb\xd0;\x86u>\
+YL\x89\x9b\xa7\x86V\x8f\xa9\xd3\x86\xd6\xa34\xab\x86\
+\xf5\xbd\x80\xfct\xfc(\x91\x962\xef\x0d\xc1\x07\xb1\xa7\
+\xc4\x0f\x08C?o\x02:\xfc~\xfcm\x90\x17\xf8)\
+\xda\x87i\xfdb\xff6d\x9f\x82\x0f\xeal\x0a\xe0Y\
+\xef>\xd8\x8e\x18\x900\xd6\x85\xa7\xa7\x9c\x04\x01\xff(\
+8\xe1\x87\xd2\xe2\x84\xac1\xdf'n`?\xa0e\x82\
+\x82\x9f\x90o\xde\x1f\xf0w)\x18B.M+,H\
+\x0a\xa9s9\xaeb^\x00\xfd\x07Q\x0c\xb2\x93\x16\x06\
+Z2\xf0\x9by\xbd\xdf\xa9\xb7\x9e\x16\x08\x02kH%\
+\x09\xe0\x19G\xfe\x11\x97\xb9b\xad\xc2T\x8bl\xe6\xfd\
+\xf0gi!@\xe6]\xad\xe1~\x7f\xceqZ\xd3h\
+=\xdf&\x9d{\xdbT$\x83p\x07p\x0e\xf3\xf9y\
+\x7f\x0a\xe5\xc4\x05:7\x8d\x00j9\xdfH\xb8\x89\x93\
+\xc3\xfb5\x85~\xc5A3\xae|\xea\x83XnC\xac\
+\xce9?w\xb1&\xfa\xc6\xd5\x07\xc3\xd1F\xc6\x8b\x83\
+4\xf2\xf9!/\xf3\xe9d\xc7+s}\x9c\xc8{\xa2\
+\x97\xec\xb8d!\x7f5_X\xd5j~nX\x95!\
+\x85\xe5R\x10\xac\xbc-\xbcP\x8e\xf0\xeeU\xa0\x8b\xbc\
+ \x0e\x122\x0a\x0c\x08d\x1eT\x00Y\x98\x04\x10,\
+P\x02\x17\x12\x09dl\x08\x00`\x81\xa7g\x16\x92>\
+\x1c\xde\xbf5\x90p^\x97\xc4\x08\x89\x00X\xde\xdb\x1e\
+{\xde\x87J\x06\xcf\xa5\xd5\x8d\xc4\x81Y\xc8z\xf7\x13\
+\xf5\xde\x0f\x959\x12\x03@\x87\x80\x18\xb3\xd0\x09\xb8\xd9\
+\x88\xff\xac\xc4\xc5\xa2\x0aX\xefR\x22\x81\x00\x88\xf7o\
+\xe5\x1bW\xd0\xfd\xb7\xc8\x06\xbe\xc61\xe5\xf3\xb1\xb0\xd9\
+\x08o\xd5D\xbfY\x0b\x89\x8d\x91\xca\x0c\x09\x87[D\
+\x8a\x089\x11\xe3\xd4\x90\x5c\xc0r\xe9\x0d\x86\xd7!\xb0\
+\x07\xe9A\x80\x0d\xbb3?g|\xf8\xf9\xca\xba.\xa2\
+\xcf\xb3d\xd3\x1a\x01\x14\x87\xcf\xdb\xb2\xf17\x99O'\
+\xa08\x08\x99/l\xa0$\xb4\xe4H\xce5\x9e\xbc>\
+\xf3\x16DJ\xf4\x02\xeeU2~\x0e0\x9a\xde}#\
+\x0c\xa8\x98\xbe'\xac\xea\xd1\x05\xa9\xc1\x06\x0f\xb2\x86\x03\
+\x14\xe4\x82\xc8\x04\xa9\x90\x98$\x0br\xc2F\xd6\xd1\xfa\
+\xb9\x8c\x1f\xcf_\x07%\xeb\x13}o\xb7\x1c\x90\xc0 \
+\xd1\xc1\xbc\xa5\xc2G%\x9e^~U~hU\xf0\xef\
+\x03\x85\x22\x13Oo<\xe3\xc9\xc1\xa8\xf5\xe5V\x1b\x02\
+Q\x12H\x8c;\xc8\x072\xbe\xac\xc7\x96d\x92\xcf\xc5\
+z\x87\xccQ\x95O\xf4z\xe9u\x9e\xbc;\xac\xaa\x00\
+\x80\xd8@\x07\xfa\xd4\xb0\x0a\xb2H\xc6\x5c\xe3\x04\xd4\x90\
+@\xca\xbd\xe1@\xc7\x7f.\xd2:d\x9f\xc4^\xef\xca\
+\xecJi\x9fX)\xeb\x22O\x87.\xb2\x0f.th\
+\x8f\xcfVz\x11\xa9\x08\xb0\x0f\xd3\xfb\x0eK6\x10H\
+\xc8\xf8p\x0c\x04\x81\xcd\xe7\xc3\xa7\x87\xd6\x97\x98W\xa3\
+\xef\x8f\x06\x0e\x07d\x08\xa5:3\xbdwXu\xf0\x89\
+\x04g\xf4\xe7\xb0J\xc7\xf9\xfc\xb0\x920\xee\x8e\x0b+\
+$\x83\xb9\xc7?z\xce\x1f\x0aS\xe2\xeb\x83Z\x17\xaf\
+\x97\xdc\xd0\xd2U\xc0\xcf\xbc\x8f\xc0\xe8\xe5e\xbd\x8c\xbe\
+9:{\x94\x02\xf7n\xaf\xb0\xac'\x9e{\xe0\xbb\xf7\
+t;t;\x14\xc4\x8a9\x06\xf4~\x96\xcf\xd3\xf9\xea\
+sV\xf2P\x9e\xbfO\x84U\x951\x02!\x90(Z\
+?\xa3=\xc3\xaa\x8az \x1e\x16\x12B\xe7\x8b\x052\
+Ke6(\xe0\x82\x04\xceH\x1b\xce\xeb\x7f\x0f\x8e\x8d\
++H<G\x10`\x90\x16\x89\x04*Ck\xd3}O\
+_\x1d\x96\xae\x9f\x0c\x1b\x9e_z\x82S\xd3o\x0fK\
+\x9f\xf7\x13\x83\xcev\xb7LX\x85 @\x1eQ\x09\x97\
+\xee\xa3a\x15W\x85\x02\xeb\xc9\x15aU\xcf%\xad\x84\
+\xaa\xa4\xc1\x19\xe1D\x19\x89\xa1\xfd\xb3y~\x22?\xe8\
+\xd6$t\xe7Y\xb7\x142\xd8\x0f\x08@\x09\x089g\
+\xe8\x89\xd5\xbe\x07I\xa69O\x94`\xef\xaf\x09K\xef\
+\xb7UX\xfaz\xbd\xb0t\xbd)\xacT(\x0d\xc5\xdf\
+*\xac$ PC\xca\xd0\xe5\x90\x95\xdbL=\xfc\xdf\
+\x08K\xd7W\x84\xa5\xeb\xc2\xfds\xfa \xbd{8\xac\
+R\x13X(,]\xff\x19VH\x8b\xd9_\xac\xce\x01\
+\xa2\x02u\x14\x10H$h\x91\xfd$\x81\xc5>\xa3D\
+&\xfb>$\xa8N0\xd2\xba\x82\xaa\xcb\x17\xb3E\xc2\
+l\xbb\xdc+\xfc\xc0\xe4\xc1\xec\xf0o\xa7\xc2\xc4[\x86\
+\xe7\x87\x0a\x0d-anQR\x02htoXf\xcf\
+\xff\xcb$\x90\x8d\xcbO\x96\x9b,WU\xb4\xe4\xf7d\
+n\x87%\xcb|\x9c\xbc2\xac\xf2+\xe3i\xbdU\x09\
+\xb1%*\xb2]\x1c|zf\x95H\xca\x9c\x04\xd3%\
+\xc0\xea\x9e\x08\xab\xb8\x14\x90o#\xa0\x00\xa9\xd6\xfa\x09\
+\x9a\x97\x9e\x87JP\xbb\xe2\x8a\xec\x1e\x15W\xed?&\
+/\xc5\x1f\x00\xb1\xa0\xc4\xe5\xe4\xd1d\x8f\x09I\xf8p\
+i\xfd\xcal\xf9\x1f\x13\x09\xe8[\xab\xd6\x80\xc0\x9b\xac\
+] \xc9\xe6\x84\xd9<,]\xdf\x19\xa6\x16\xa2\xbf\xe5\
+\xc4\xcay\x91X\xf1:\x8bUul\xb5\xefK]\xc3\
+-\x81py\xa06B\xe5\xfa\xd0\xb0\x92\xf81\x990\
+\xeb\xf97aU\xa2\x9d\xe7\x82\x1f\xcfsF\x16X\x10\
+\xef\x9c\xe8<H\x81\xed\xe9B\x94|\xa7B\x1e\x0a\x01\
+\x14\xa2\x8d\xb9\xa2\xcdsQ\xc1\x112\xd7t\xb6\x0d*\
+<J\xdc\x19\xc1\xa1\x84\x9e\x03=\x02[\xce\x09\xbe\x86\
+\xa4\x9a\xc4\x22*\x0c\xc8\xbdIu\x82D\x95\x13_\x9c\
+\xb3\xec?\xbc\x8f*\xfc>o\xf1+\x1bR;\xef\xd3\
+\x04\xea\xf8\xff\xf8;\xf4\xec\xabE\xce\xc8&\x90\x19\x14\
+\xa4(\x18\xe0\x87\x13\xc7\x800\xa0\x92La\x8d\xf8\x00\
+\xbf\x9e\xf3\x0a\xd5\x15\xe2\x0b\xe6--\x01\xbc/\xa4|\
+*\xa0X.\x90\xf1\xc0\xff'\xa0F]\x00\xbf\xab-\
+\xb8\xd1bK\xfc\xd6\xca\xb0\x12X\x93\x90\xe2\xfb\xfc>\
+\x09N\x0aI\xfc=\xe3\xc3\xe7\xa5\x15\x0d\xbf\xb0\xe5\x96\
+An\x0f\xd2l!x}\xdf$$\x18\x17\x05\xec \
+\x04\x8d\x90h9\xd1Z\xc4/\xe3\xa7\xc4\xad\xc9\x11I\
+\x00P8\xe2s\xe2\x97\xb2\xbf\xe8y\xccP\x81r\xaf\
+\x14\xb2\x1bb\x97\xce\x99\xb8_\xaa\xe2\x92\x1c\x84\xfe7\
+a%C\x99\xc9\xbe\xbe/\xf2\xa98hOJvr\
+\x05]Te\xbc?$\xd9\xc1\x95\x1e\xa726\xc8\x1f\
+\x01\xbdecA&\x05(\x06\xba\xcc\xd9\x8d\xfcf\x09\
+d\xb2N\xe2\x875A\xceT\x0f\xc4\x8f\x95p\xb8F\
+\x03\xb1d\xd5z\xc0\x81N\x00H\xc0\xc7\xc2!SD\
+\xef\x0f\x1b\x10:\xdcb\x85E?\xddP\x112T\x04\
+\xa0\x04\xaa,(\xf4p\x95!7\x1b<\x0f\xea\xc5\xea\
+\xa9}\x81\x02]\x02\x01\x1e\x18\xbd.\x04f@Z\x08\
+t\xd9\xd8\x08\x18!\x13\xa4\xd7eu\xdd\x1f\x81t\xc3\
+F\xee\x80\x15\xc8<\x1b\x0b\x13\xb5\x09\x90G$$\xd6\
+\xd7\xdf\xf39%Oh\xc81\x01\x10?g\x5c\xd8\xa0\
+u\xa0\x07\xb7k\x0eP\xd9`X(Z\xd8@\x1f=\
+\xbe,|\x16\xe2s\xc4bN\xcb\x07\x90[\x02|\xc6\
+\x05\xb2E2\xf2\xfc\xbcM\x04\x00\x1d\xe2\xfb\x04\x80$\
+\x04\xa8\xec\x93\xa1S\x02\x06\xfde\xf7\xf8\xf2\xb95\x9e\
+\xf9\xc0~\xb4\x0a\xf4\xd9\xc8\x99\x97\xccC*p\x22\x93\
+\x82\x84\xc4\x07\x0c\x8e\xb9\x107\xee\x99\x05\x0a\xcf\xe7\xc5\
+\xa1eCa\xde0\xef98\x98\x07\x04\x06\xcck\xc6\
+\x09\x87\x99\x8a?\xf3\x17rM\x05\xfeN4p \xa2\
+\x22\x00R\x81\x9eqA\xfb\x8c0\x10\x07\xc2\xe8{a\
+\x15\xbb1\xea\x01bo7b\x80\xc0\x18\x19;*J\
+\x04\xa6\xb4\xf4\x88\xb5\xdd\x01\xe4\x1da%1\x00\x02\x82\
+\xd6\x18\xcfW\x10\x10\xb0\xdb\xf2\x9cy\xee\xcc\xe3\x96\xe4\
+\x85\x0dW\x81\x9a\xd7;\x89G\x109T\x12\x09\x94\xe9\
+!$\xd0A\x7f^\xbd\x9d\xa3\x13\xc2*\xf95\xa0\xdf\
+jA\x98^1\xac\xf4n\xe2\x90%\xf7.#\x1d\x1c\
+0S\xe9V\x85\xc6\xe3#\xe4\x08l\xcaQ\xd7\x8e\xca\
+\xb69\x0c eT\x02\xc2\xac\xc0d\xc4q\x84\x98\x9f\
+8\xbc\xb0(\x9f\x92\xec\x0br\x84\x8e\xaa\x12\xb5gL\
+\x9d\x11j(\x11^\xe5\x00\x9c\x84m\xa8\x00lV*\
+dF\x88\xbd&\x831\xa7\xcc\xca\xa1\xcal\xf7\x83\xb0\
+4\x0e\x1f\x0eK\xd7\xcb\xc2\xd2\xf5\xc5a\x82\xf4G\x85\
+\xf9Wa\xd5\xfe\x16\xb8\x8d\xc3\xaa\x83\x96\xd6\x94H\x8b\
+\xc5\xb8\x9f\xad\x80\xff\x8e\xa1\x97\xdf\x81}\xf4\xd4\xaf\x96\
+\xc7)#o\xd2\xe9\x9a{t\x81\xbewW\x85\xa5\xeb\
+_\xc3\xd2u\xbb\xb0\xaa\x02\xbf\xd8\xc0\xc1a\xc7\x1a]\
+o\xe9\xa9O\xef\x1cV\x12]\xee\xb5}*\xacB\x14\
+(\xc1\x9b\x03\xa4\xe8\xf9\xbf \xd9\xb7J\x00\xe7\xcaR\
+t\x84F\x80\xb9sX\x91\xd1\xb4^\xf9\x09\xaa,n\
+\x19V\xf6\xaf\xd19a\x159\xdd\xd2aUe\x96V\
+\x19\xc9\x86\xbaUF\xf3\xcc,\xe1J\xa8\xe1\x10w[\
+\x87e\xf9\xc4d\xe9\xfb\xfb\x85\x95}\xb4\x7foXU\
+\x19\x81\x1cL\xba\xc9F\x02Q\xb1g\x5c\xc5\xc5a\x87\
+\x8e\x84+=\xfa W\x04\xad\xb6C\x087\x8dz\xe0\
+\x9d\xcfc\xdf\xe5\xdc\xa3\xc5\x07d\x0d\xdc\x14\xc8-\xd1\
+\xcb.\xc7/\x05\xea\xc9\x0a\xb4\xbf_;\xac\xb4\xea8\
+a&\xbd\xef~\x95\x81\x1c\xb3\xffKX\xba\xfe9\xac\
+\x82\xdc\xaf\xde\xaf\xd6\xafV!\x0024\xa2\xa8w\x98\
+M^\x8esN\xd8|\xbf$\x98M\xd6\x8aC)\x7f\
+\xc2\xea\x00\xb0\xf6\xc7<\xd9\xa9\xe2F \xb1K\xe5Q\
+=\xee\x0eT`;\xbfH\x01\xc6\xd1C\xcf4*\x22\
+\xfd\xe7\xfb\x93\xfa\xcf\xa7\xaf\xaf\x08K\xbf\xff\xea\xb0,\
+\xeb\x97,\x8d\xe3Ea\x05\xeaku\x95\xd7\x8a\xf4\x96\
+\xf3\x86\xc4\x8e\xb8ZL\xfex|\x0e\xe1\x86yq\xa4\
+*\xc2{\xab\xc2\xfa\xbd2.>'y^\xd1\xaa\xb1\
+my_Z\x05\xe6\x9c\x1b\x96\xeeo\x8b0\xb5\x5c\xbc\
+\xad\x9c\xefNh\xf2\x0f\xae\x02\x12Vja1\xdb?\
+\x81?rn \x04`\xadG\x86\x10\xee\x01Z\xc0\xd4\
+z\x17\xe1k\x04\xb0\xfd\xec\xb0J\xe6Q\x09U\x10+\
+~.\x04\x8ab'77E\xa4S\xf6\x1e\xd4\x86b\
+?\xe9\x0e\x08+\x5c\x04\xf9\xf9\xa4}\xb4{wX%\
+\x8bM\xe0A\x02M\xcf\x81\xc0\x1e\xb5\x11\x07\xb6\xf8\xf1\
+\xac'!\x18]\xb9W\x01#\xab#\xac\xae\xc2\xde\xdb\
+K\xa2\xc7\x05\xc0`\xf3?FH\x8a\x1d+h:\x09\
+3\x91\xadA\xe6\xe8\xdf[*,]'\xc9\xbd\x9a\x94\
+\xc4\xbe\x91\x1a\x14,\xd6\x92_Mb\x05\x0e(Z/\
+\x98\xd7 \x81(\x90P\x00\xc5\x8f&@\xa5\xa2\x8f\xff\
+\xces\xa0@\x07\xb2\x09\x84\x91\x9e\x8b\xf75!\x8f\x91\
+\xdb3\xb9,~\x12\x09\x94 \xb7\xdc\xadB\xfe\x810\
+d|\x09@\xa5.\xc2s\xb1\xaa@C>G\xa2\xd0\
+-\x9f\x04\xba \xfe(X\xd1jB\xa2\x02\x7fU~\
+\xa7+\xd2\xbc>\xfe\x01\xfe\x12~\xd1\x0da\x15\x94\x9f\
+\xd6\x11\x90\xd8 [HX\xd0\xe2\xc1\xeb\xcb?4\x92\
+\x96\x82+\xe7:\xfb\x16q\x8a\xfc`s\xf6@\xd2\xca\
+\xfb\x92@\xc0\x0f\xa7`\xd8\xa8|q\x8e\xe5\x16\x9b\xeb\
+\xab\x84\x06q\x08~\x22\x90|\xc9(\x13\xbf8\x10\xe7\
+\xf7H\xfc\xd0\xcb\x0f\x12\x8b\x84\xda\xdd)B\xba[\x08\
+\xbc[\xaa\xfb\xe1\xf3Q0\xe3}\xf8\x5c\xc4GM|\
+\xe2\xcf/\xae\x80\x999\xeb&[\xa7\x82\x22\xfe5w\
+\x8f\x0f\x95\x95\xe9\x02m\xcco\x17\x01\xc4'\xb3\x0d\x95\
+\xac\xaf\x149\x99\x0c-K\x07x\xf7\x8f\xb0t\xbd&\
+\xd9\xb5\x05\xe2\xe1\x1e\x18}0\xe4\x81\xc8 \x01\x11\xb3\
+<\x0f\xbdz<\x10\x0er\x0e\xe6\xa8d\xcd\xd6\xc0\xde\
+\xac\x8d\xee\xf7\xba\x9f\xf9$\x832R\xc0\xf0\x8dj#\
+\xd2\xc2\xa0\xf2\x95I\xad\xbe\x94{\xae\xf6\x89\x8a\x903\
+5\x0c \x13\x8b@\x87\xaf\x09\xdc\x98\xe8L<*\xe4\
+\x1c\xb0L|\xc8\x96\x80J\x13`\x90Y\x9aW\x13\x8e\
+\x00\x03\x12;\x027\x02P\x1e<\xe4P@\xd3\x09\xd8\
+ _$Q@\xe2\x02n\x06\x10\x06$\x0e\xda+\x01\
+b\x1b\x00?[e\x9f\xf1`\xdc\xf8<\xf3(p\x90\
+\xc3m\xd2&\xc6\x05\x15\x03\x02\xee\xbbu\xc0\xd0\x1a\xc0\
+\xeb\xb2`P_xt\xf2X\x0e\xa0_\x16]\xab9\
+\x00\x1b\x02\x0f\x16\x06\x0bjI\xddwK\xca\xb1\xb1\xe4\
+\xefV\xd3x\xbcY\xe4Qp$\x88\x8d\xdb\xbd\x5c\xa3\
+F.\x102@6>\xee\x93\x00\x90k{\xff$\x02\
+\xc8\xd0\xb5H\x016Z\xc6\x91\x83\x9b\x0d\x13\xd2< \
+\xafT\x98\x91\xbf\x94\x1a\x80+\xe0lh\xf4\xe2qP\
+!\xf7wqX\x15h\xd2\x0aC \x0f\x14\x99\x83\x91\
+D\x10\x1b\x0a\x1b\x1e\xef\xc3\x95\xe7\xcf<SB\x01\xe8\
+V\x96s\xdb\xb7\xaa\xe4\x13\x08j_\xc1\xc14Y\x9e\
+\x1c\x09'\x06\xe4x9\xb0\xf8IX\x05QS\x80\xed\
+\xf9@O\x1f\x88\x01m\xf8@J\xad\xaf\xce\xba\xa1\x82\
+\x83.=P*\x12\x03 \xa0p\x04\xc8t3\xaf\x81\
+\x86\xf1\xfc\x08D\xd8\x07\x04]7BG\x88\x00\x1c`\
+\x8f\x0b\xbd\xc8\xb4n\xa0\xbf\x0e\x1b\xb3*\xeb\x19\x92\xf9\
+\xb6\xe2pL^\x1cV!\x1d@\xb2 \x7f\x07\x14\x0f\
+\x8e\x87\x03R\x98~@E^D @\x85\x90\x7f\xb4\
+BQ\xf9 \x81\xc4~\x05\x17\x04\x95\xbfF\xdf\xdd\xb2\
+\x8f\x22%\xa4\x12gN\x0a\x12\x088\x16\xc8\x8b\xc5_\
+]Yq\x99\xa8RA/\xb0\xe5\xf2\x1e\x1ez\xd33\
+\x0b~\x90\xe0\xdd\x90\xec\xf7J|\xdc\x9d!\xf7\xe7d\
+90\x12E8zd\xceq\xf0\xd8?\x90\xa1b\xff\
+\xb8Dl\xef\x9a/\xa3\x9f\x87\x15\xd2 \x93\x1e\xaa\xa2\
+a\x88;\xf3\x18\x04\x0c\x15\x85\x17\x0c\xfb\x91\xb9sx\
+\xfe$N q\xbc'\xac\xe2\xf4PB\x02N\x9b\xd1\
+\x03aR\xa3\xd9\xa3\xec3T\x9a\xf2\xefmW\xce3\
+\xf7\x10\xef\x18V\x1c\xc2\xc9|b%\xd78#\xa3\xe7\
+\xca\x1c\x09h\xf6\x89}\xd4\x03\xcb\xbc\xd7\xfe\xd0}7\
+,\xbd\xce\xab\xc2*H3\x01\x96\x1c?\xcb\x10\x8aD\
+p\xe6\x8a\xb0\xf4\xf7\xb7\x86\xa5\xedd\x81\xb0*`F\
+\x15\x87\x04\x14$L$\xfa\xee\x0b+\xf3a\x92\xff\x95\
+\xc0\xdb2Opd(\xe0A.\x0c\x127\xf6+\x07\
+RR\xe9\xe8.\x0bK\xdb\xf7\xc3a\x05!8^4\
+,]\xf7\x09K\xd75\xc2\xd2uvXz\xffk\xc3\
+\xb2|_\xb2\x22oi\xd5\x11\xc8\xd0XG\x87\x0f\x9c\
+\x08\xae\xdco\x1c&\x12\xbb%\xca<\xe8o\x08\xab8\
+\x09Pw\xe1\xbc\x08\x8e\x81w\x96q\x87#\x00\x998\
+\xf7\x94\x92\x88\xbe;\x9f\xc0C\xe0qP\x85\x9c\xfa\xec\
+\xd4\x89\xb1\x8es\xa3\xe8K+\x12C8\x96\xd0\x97\xe6\
+\xf7I\xd4)al\x19Fz\xde97\x997 \xbc\
+X\xff\xc8(>=\x90Iz\xff\x13\xb7\x07\x95\xdft\
+\xcae\x16~\xd6W\xaed\xcf\xaa\x02\x17\xf6]!Y\
+3\xc2\xec\xc2\x8a\xdc-z\xfd\x8fW@\x91\xee\x7f\xbc\
+LX\xba\xfe;L\x09\x80\xf3\xd2\xd7\xefK\x16\x5c\x00\
+\xbf\x0a\xabZ<\xd0i\xa7'\x9a\xf3\x11?\x90s\x9d\
+\x0a\xa9\xf6\x17\x90\xa8p\xff\x80\xcc1+\xff\xfb\xa4\xbe\
+\xa2\x16E\x12;\xa8_\x10\xf0v\xc7\x87\xa5\xcf5o\
+X\xfa\xfe1\xc9>YA}\x81p\xc3&\x8e\xdf\x00\
+\x12\xed\x1bC\xebO\xe6\xdaI\xd7\xe9\x95\x93\xad\x94^\
+\xf7\xf9\xc9BVs\xc3\xb0\x12\xb8\xd0\x8a\xe2\xe7\xab\xc2\
+\xc1\xe8\x07a%\xe1g\xce\x8b(\x90\x9d^\xb8WL\
+\xaa+\x99T8\x14\xfac\x93\x1dW\xed/\x0a@\xb3\
+\x0a\xc0^%\xa0u\xcb\x8d\xd6\xa3\xf7\x03\xfc\x09\x029\
+\xc6\x1d\xff\x8dy\x8b?\x0b\x92m3\xc9\xcc\x0a\x89\x87\
+\x1a\xc0\xe4uaU\xc2\x90\xd6;\xce\x09\xfc4\x10\xac\
+\x04\xa0 \x1bo\xd3\xf8K\x95\xc3*9j\xb1\x04\xd9\
+\xe4y\x81\x9fH\xa2\x96\xf3\x01?\x1b\xff\x98\x04\x1c~\
+RC\x9amh7\x09\x02\x90\x03$\x9c\x84@0\xc2\
+\x0b\x889\x89\x1dZ\xacy_*\xf6 \xe1\x848\xcb\
+\x05\xde\x93\x0aw\x91IP\xf1\x8bx\x1e\xf8\xc1\x14\x98\
+\x16|&b\x99\x16.\x12\x8e\x8e\x9bZ9<\xfc\x0e\
+\xfce\x105\xec\x17\xfc\x1dl\xfd\x90\x11Ry'\x01\
+@K(*\x17\x04\xf2$b\xf9\xbc\xc8\xd9\x12\x1f\xb2\
+\xbf5\xc8n\xabC\xd0R\x80\xdf\xce\xfaoT\xd9(\
+\x88#\xff\xee\xe7\xcf\xe7h\xf7\x0b\xde\xef\xb14\xdb\x1e\
+\xab\x10\x09\xf8\x95|n\xe2\x0b\x90\xbeR\xb71\x92\x80\
+V\x1c\xde\x07RH\xf9\x873\xd3\x8f$K\x13\xba\xfb\
+C\xb2\x9bJ\xc5<\x03\x13\x0f\xd4D\xb9\xadd\xea2\
+9\xd0\xc1\x05jE\xe5.g\x02?\xa6@o\xcd\x01\
+\x12\x92\x91\x04\xc1B\xbfH\xb5\xd1\x13\xf8\xb2@\xa9\xf4\
+\xe2\xb0S)W\x05\xd9\x90\x1022\x04\xa2q|T\
+\xb2|L\xfcn\xcd\xb0jC\x16\x1b\xacIaD\xca\
+\x02[4$\x87\x93-\x92\xbd&Cr\xf3\x06C&\
+\xd2\x95i\xc8N\x080 \xe3#s\x83\xac\x10\xbd\x1a\
+m\xa0\x07Y\x0c\x10\xe3\xcd\x95\xd1\xa6\x02\x01\xe4\x85L\
+\xd5\xba\xaaH\x11`\x90iba<O=73r\
+\xe4\x1b\x16\xe3\x14\xfc\x0f\x10qZ\x00p\xb4\xa9\xf4\x92\
+X `\xc3\x01\xe1\xbe\x09\x1c\xdb\x1e&9\xe8\x93[\
+\xc3*\x95\x01&\x1a\x81`S\x195\x9b\xf7\x86\x22!\
+$\x80\x5cN\xac\xe4\xbf\x1aX~S`?\x90\x9c-\
+\xa0\x0d\x83\xd7#\x812k\xb4`>\xe8#\x90\xdf\xb8\
+\x22\x13\xa4\x87\x1b\x16\xf6W\xaa\x02]T\x17\x06\xa8'\
+\x5c\x0e+4-\x02T\xe8\xe5 Yf\x8f\x0a:\xd7\
+\xc7t\x00\xf0y9\x10\x9a\x05V%\x22\x06\xc7\x9f\x03\
+\x88\x00\x1a\x07\x88\xe7J\x0f\x13\xfa\xea\xa8#\xf0\xdcH\
+`\xf0\xfa\x92#2T\x8e\x8dG\x8e\xa03\xba$\xce\
+p\xbc8\xb8a\xdf\xc71\xd1F\x0c\x14\xd9\x01\xbcz\
+\xec\xfc:\x04h\x82\xdeW-!\x03B\x80u\xcc\xf3\
+e|\x99O\xf4\xea\xaa\xf2i\xc7\x84\xbf\x87\xf5\x1b(\
+\x16\x19iH\xf7 \x89\xa1\xc5\x81@\x9a\x1eq\xd6\xa9\
+\xf6\x15\x93\x0e\xe9\xf7]I\x17[\xac\xe5\xf6x\x1eT\
+\x06`k\x16I\x953\xf4 \x08 +\x05\x9a\xc8\xe7\
+D\xf7\x18\xf2F\xc9\xd0Y\xb6\x05D\x03\xf3\x91\xe7\xa9\
+\xf9\xd5\xad\x1cV\x05\xe8@\x8f\x91\x9bZ6\xacb\xf9\
+%\xa1C\xcf#\xfb\x12\x07\x10\xeb\x90\x1ef8U4\
+?I\xa8e\x08\xea\x02\xf9\xf7\x07\x0e\x98P\xc5\x0e\xc8\
+\xfbij=\x00\xf9\xa1\x80\xdePv\x02~}\x9e|\
+\x1eM\xaa\xf1\x14D\x14\xe4\x94[+\xd4\xb3j(1\
+\x89\x01\xcd7WZ\x05)\x8c\x06\xb2,\xe7'\xa4\x06\
+\x95\xc4n\x81\xb0\xc2!A\x0f \xe4M\xb0rgr\
+\xb9\x03+v\xe0\x22\xc73\x9c/\xcc7\xed\xd7\xfd\xb7\
+\x93Eba\xd7d\xbb\x15\x07\x81\xd6\x85~\x8f\xb0R\
+\x016Y\xdd\xaa\xd2\xfb\xbem8\xe8\xfb\xab\xfb\xab\xfa\
+\xab32\xe0\xb4L\x8aGo'\x09^\xf6#\x10?\
+\x92\x1b$p\x22\xc1nh\xae\x90\x07\xdd\x1da\x22\x05\
+zM\x81Z[mA\xd0\x7f\xe6\xbf!\xd6\xe20\x98\
+\xbc<\xacp\xf0\x98U|\x8b\xa1\x97\x15=\xe4\xfe\xe8\
+\xb0\xca\x91\xe29\xab\x15b\xb2\x95\xe4(\x81\xda\x02\x8d\
+\xde<\xac\xb0\xb7\x9b+B\xba\xf7\xfd\xbb\xc3\xca\xefw\
+/\x08K\xdb\xe3\xb5a\xe9\xebk\xc3\xd2\xf2\xb8=,\
+\xfd\xfe\xd7\xc2\xd2\xf5\xd5a\x95#\x8b\xe3D\xa5R\x89\
+;\x02v\xa0\xa9 \x17H\xc0MV\x0c+\xb2|\xfd\
+_\xc3\xaa}X\x01\x22\x0eW\xff\xeb\xb0B\xe2\x87\x03\
+=g\x1c\x96\xae\x17\x85\xa5\x9f\xbf#,]\x7f\x1fV\
+\x05\x18\x22\x9f\x83\x05\xbc;:\xac\xac\x1f\xf4\xdd\xe9\xc5\
+Na\xf9@\xf2\x08\xb2A\x81\xd3\xd4\x16R_ \xa1\
+\xaa\xf3\xcd~\x0d\x10\xecp\x1f\x1f*P\xfa\xdczy\
+\x9c\xe6\xd5\x17+\x99\xb5\xaff\x1e\xf3\xe2Wi\xff\xcc\
+\xfe\xd0\x169`:!\xcb\xe7\xdd\x91YxJ\xab\x16\
+2\xab \x85H|n#\x087\xe7\x0d\xfb\xa1H\xff\
+hE\xe8\xdf\x16V\xb1Vk^\xc1\x9d\xe1\x8a'\x15\
+R\x15\x98\xacw\x7f\xe9\xe0\xbfu\x1f\xea\xf6\xe9\xf6)\
+\xadJ\x93YaJ\xe8F\xc2\xf4\xd1d\x8f\x98\x13\xe1\
+\xfa\x00\x00 \x00IDATU\x95\xf8\x08\xa8\xd3\xfd\
+\x8f\x0f\x0bK\xcf\xed\xb3\xc9\xd2:\x99ssX\xfa\xfe\
+\xb7\x92\xa5y\xd5\xff(\xac\xb4j\x80\xa4t\xa0\xc5\xf9\
+\xa6\x80\x8d\x0a\x9cI[\xe9E&`!\xc0\x22Q\x02\
+\xb2J\x1c\x11\x19y\xb0ME\x86\xaa\x82\x0e\x9c\x22\xa3\
+?\x84U\x09`q\xa3\x18\x81\x81\xdf\xa2\xd6\xa9\x8c\xa0\
+\x89D\xf3\xe7\xb3\x19Z\x9f\x13\x98\x1f*\x89\xb7\x8c\xc3\
+;<\x8d\xe3\xc7\x93\xa5\xf1\xe8\x8e\x18\xd8\xfd3\x92\xe3\
+\xa2\x0a\xd1G\x01\x83\x8a\xb6H\xf0 \x0bM{\xce@\
+R\xaaDO\xdeWNQ\x22m\xed\x0aq\x01\x87\x8d\
+\xd6/-]\xfd\xcea\x159\xa8\x02\x1bs\x1f\x08Y\
+a\xd9>\x05\x9a9\xf1qL\xa5\xc2\xa0\xe7\x9fv\x9f\
+W\xc4\xfec\x9d{\x0ax\xf8!\x8b\xeb\xbc>}H\
+|gR\xb6\x97UHNz\xe7\x09h\xf1\xe3\xd4\x02\
+\x99\xeef\x80\xa6\xab\x85\xca\xaa]\xe2\x0c\xc8\xf1\xd2j\
+\xd5\xf9N\x85\x5c\xf2\x8fN\xa4\xe2_\x13\xc7\x90x\xc6\
+/\x13\xc7\x84\xfd1\xe2 \xce\x7f\x02l\x0a\x18p\xc6\
+\xa8\x05\xc3-\x0c\xe2\xfc\xb0\xfa\x88\xfcq\xb7:S\xd9\
+'q\x06I\x1f~\x9f\x0a`\xae \xef\x12V\x05\xaa\
+T\xf2\xf9\x9c7\x0f\xad\xbb\xfe\xfb\xf6\xf3\xe2\xe7\xc1\x8e\
+\xcf\xf7\xd9\xcf[R\xbe\xa6\x12\xef\xc4<H\x0c\xe2K\
+%\x0c\xdcB\xca~Nk\x0c\xfe*\xfe\x1a\x85^\xe2\
+ \xbe\xcf\xf3&\xae\x02\xd1A\x82\x82\xc4D\xdb\x22\xca\
+\x95\xbfo\xe2\x8b\xb6\xa5|\xaeV\x8c\xf6\xf5\xf9\x9a8\
+\x83\x83\x1a?\x5c\x7fg\xc4<\x5ct Q\xdbD\x0f\
+\xef\xa7\xe763\xfd\xaf\xb0\xaaw\x8e?\x08\xf7p\xfe\
+\x8a\x14I\x1bQ\xeel\xf9\x88n\xa4\xafX\xb3\xa3\xe2\
+p^\x15\xe0D]\xfaHm\x80\xebT\x81L,\xbf\
+\xa7K\xa5\xcf\x81:\x03\x0c\x09\x9b\xc8\xa9\xfc\x81\x0b{\
+\xfcpP\x01\xc9\xa3\x17\x9f\x80\x0b\x07^\x10,H\x10\
+\xcc\xa6\xb9\xb9\x02CX\xf3W\x10K\xa8\x1c$6l\
+W0\xaeS\xe0J\xcf&\x81&\x01\x22\x10-!\x18\
+,\x0fH\x06\x8c\x00\xbf\xd5\x9f\xa7Wf\xd4\xc8\x1c\xae\
+\xa4\xcc\xd5\x9d\x22[{\xd2\x95\xe6a\x83\xc1a\xe5\xf5\
+x\xa08\xfa\xe3\x86\x9d\x9e\x05\x85\xeed\xc3\xe2\x8d\xbc\
+\x98+$w\x0f\xa4D\xc1\x85\x9d\x1d\xf5i\xd8\xb2\xf4\
+\x8f\xf7gCG6\x8c^o2}-\x0b(\x0b\x8c\
+\xcf\xc38\xb0\x00IL\x90\x89\xc31f\x01\xb2\xa0\x16\
+\xcf\xf4{s/TH\xf9\x18G\xb5\x04\xa4\xf7|\xe6\
+\x82\x5c\xea\x99\xb2 \xbe_6\x96v|\x08d\xcau\
+\xf8>\xea\x04\xad\x0a\x00\xe3Of\x8ey\xdbr \xb0\
+\xce\x98\xff\x8c+\xe4\x98\x82:\xb9\x95`\x95\x86\x04\x92\
+\x84\x0d\x1b+\x81\xa0\x1c\x7fW\xb0\x19g\x1dd\x0e@\
+\xd1\xa5\x07\x1a\xaf\x84@t4GO3?'ps\
++\x0c\x9f\x87\xfb\xe1\xf5\xd9\x90\x1b\x19?C\x9ah-\
+hZ\x13\xd8\xb8\x0c\x91g\xe3#1\xc8?\x9e\x13\x9f\
+\x1b\x84\x0b\x0912\xf1p\x1c\xc0Y r>CJ\
+\xe9M\xa4\xc2\x0c\x87\x00\xeb\x1b\xc7K=\xa4\xb9\x97r\
+\xfb\x8a\x04\x92\x8d\x94\x83\x96\x96!\xe9-\xb3\x0e\xbb\xa5\
+\xc3\xaa@\x93\x03\x1aG\x99\x96\x08zh\x09\x84U\xd9\
+\xb7\xce:\xcf\x03\x99@\x1c\x12 \x95\x90\xa61\xefH\
+,\x08Zl\x87\xed\xa1a\x9d\xf7\x8f\x87\xa5\xfb\x9b/\
+\xacJ\x18\xc0\x01s\x82\xc8\x19a\xd5_J\x89^\x1d\
+\xec\xaep\x8bL\xd2\xad\x05\x221\xcc\xbd\xd0\xabT2\
+q\xb4\x1c\x81,\x89^\xe1\xdf\x146\xdb\x9c\xd6\x09\xf2\
+\xa9K\x93]\xa2\x9e\xed[\xe5\xf0\xdeXZ\x1d\x18\xcf\
+n&L2`'W\x81\xfb\xb1\xd9J\x02h\x81\xec\
+\x8a\x0d\xf3s\xa6B\x8aE\x98|Z\xe9\xbd7\x02M\
+P\xcf\xee\x9b\xc9\xce\xae\xf4\xd3\xa3\x82\xbc\x89Z\xc8\x8e\
+\xc9\x0e\xf8\xee\xa3\xdd\x8b\xdc\x11d\x96\x93\xcf\x86U:\
+\xd7r\x90\xbb[\xba[\xbb[J\xe0\xe7\xc0\xfc\x9d\xea\
+\xb9\x86\x14HPO'\x8cx\xce\x90=\x82\xcc\x22!\
+\xc4\xbc\xa6\x027\x09\xab\xe6\x89\x1cv\x02\x9e\xcc*\xfe\
+\x81\xaa\x82\xa9\xca\x85\x1dgU&\x92[;8\xda\xb0\
+\x97\xc3\xd2N\xe5\x8f}\x8b\xfd\x1a\x0e\x0dX\x87\x91\x89\
+To9\x8e\xa4\xa1\x9br\xc4\x8d4\x90\x0eywP\
+X\xban\x12\x96\x1e\xdbG\xc3\xd2}\xff#,m\xaf\
++\x84\xa5\xdf\x7f\x7fXu\xce\xb3\xcfj\x1f\x03\x1aK\
+k\x0bl\xd7 \x0e\x1c\xd8R\xb8\x90>\xb6!\xf2$\
+F\x14\x90\xb9\x07\x9b\x80\x96\x8a\xa0*\xb1\xfdZa\xe9\
+\xfa\xd6\xb0t\xfdcX\x96\xc3K\x96\xae\x07\x0e\xac\xf8\
+f\xfd\x96\xdf\x93e\xe5\xd2\xf96\xfd\xee\xb0B\x9ak\
+d\x12\xc8\xcbSG\xa7\x8dN\xcb\x90\xed\xa1r\xa5\xf9\
+a\x84\xc7f\x92\xa5\x02\xfa\x8f\xfca03\x1dZ\xad\
+3\xed\x0b8\xee8\xc4\xe6\x22\xd1:r\x85O\x89\xbb\
+\xfe\x17)\x00\xfbE\x91\x1dD_\xdd\xfb?\xe7\x0a\xbd\
+\xaf\xcfW\xa2\x0c\xae\x01%N\xa9\xdcZ\x8e\xebCa\
+\x19I\x93\xf7\x8d\xc9\xb7T\x89\xa3\xb7\x9c\xdeqZ\x12\
+\x94\x00\x98ZO\xe7\x152\x8c\xbb\x0cH%\xb76P\
+`\x22\xf0\x8b]q\x8e\xce\x8dYJlEk\xc5\x06\
+\xc9\xd2\xba\x1b?\x15\x96\xbe>+\xd9\xd7\xa5Vpo\
+i\x85r\x0b\x1b\xc80A\xa9\xfdyA\xd6\xa0\xd2B\
+\xab\xe9i\xd9\xca~O\x00\xadD\xd5\xe8Ga\xe9\xba\
+zX\x9a\xf7\x9f\x09+\xef\x0b\xc4\x18\x19@#\x9f\x94\
+\xd0\xb3|\xb0\xc8\xd8@\xd6t\xdf\x0bK\x9f\xe3\xdc\xb0\
+*\xe0a\xdfC\xeeV\xdc\x0a\x96\xd3F]\x06n\x9e\
+\xef+\x01N\x05sf4\xcfh\x9e\x8c4\x1c\xfe>\
+X\xf6\xff\xaf\x9a_b\xc1\x9f|br\xe4\xe4H\xf9\
+OO\x14RqC\xba/\x10+}|\x9a\x0b4\xae\
+?)\x89\x93\xf1EaUk\x9a\x10\x1d&\xcd\xd4>\
+\x02\xa7\x96\x912\xbbM\xde\x9e!\xf1\x8d\xfc8Pz\
+\x93T\x12\x98\xd3\xaa\xf0\x1a\x91\x0fo\xaf\xf3X\x9cJ\
+F>\xa0\x1aEb\x15\x99\xbbcT\x89\xd7\xfegR\
+@\xfc\x03!\x1e\xdc\xfa\xd1\x90};\x11M`GA\
+\x8e\x96_\xf9Y\xa8K\x10\xe8\xa7O\x99,]\xdf\x1c\
+\xf6_z\xd2\x89;hi\xc3\xef\x05!\xcc\xfd!#\
+x\xf6@F\x8b\xbf\x07w\x8c\xe7/\xfe;du \
+R\x1a\x8e)\xc7}\xb48@:Nb\x9b\x82.\xe3\
+\xa2\xfd\x93\xc4\xbde\xa8\x89c\xf0\x97\x19\x1f\xe61\xfe\
+\x0c\xfe9\xcf\x9b\xb8\x01\x7f\x94\xd6\x03\xfc\xa0Y\x8d\x1c\
+8\xfe~](\x9e\xf5_\xfc\xcc\xd2b<\x5c\x1b\xff\
+\x1b2e#\x01\x18o\xee\x97\xf7\xe1s\x910!P\
+\xa7\xa2\xafx\xd0\xa4\xd4\x14~o\x1b\x0a\xf0sqE\
+\xe8\xdc32\x12?\x01\x7f\x88\xc4\x0b\x89\x80\x96\x0cQ\
+\x05\xdc\x99\x5cw\xbe[\x0e\xf4\xcd\x0ad\xc6\xffE\x1e\
+a\xf5\xdcE^*u\x0bf\x019\xb3\xf3:\x03J\
+\xa5\x92\x80\x00\xe8\x05\xbd\x0a\xf4\xd4\xd1#\xcc\xc0\x00\xe5\
+C\x9f\x9c\xbf[\x22+\xd3O!W\xe8\x07\xc4\x03i\
+I\xe8\x98\x08\xb0\xbcS)Uo\xa7\xe5\x8e\xa8\xd4\x13\
+\xc8\xcdh\xe2\x00\xc5\x91\x83e\x96W\xe9\x88\xa2\xd7i\
+=n2\xb2T\x12\xe9ag\x02\x01\x1dg<\x09|\
+.\xd7\xc6\xb2\x9e\xc6eS!\x02$w\x07D\xdb\x13\
+\x5c\x81l0(d(=\x09\x13&\x06\x0b\x1eR=\
+2\x99\x92\xf91T|^M\xa060e\x1c\xc8\xb8\
+C\xd2\x02D\xf1QU\xbc\xdb\x8a8=\xfa$\x02X\
+\xf8\x04\xc4+5\x1c\x01-\xd9\x1e\xd0\xd6e\x07H_\
+\xda\xa4\x86\x8av\xe9\xb9\x1f\x9e+\xcf\x9d\xd7\x99O\x01\
+)\x1b\x0f\xd0|\xe4\x1d\x19\x8f\xc7t\x9f8p\xbd\x12\
+J8\x8e\xad\xec \xf3\xb1\x85\xe6\xf05?\x7f\xb2I\
+p\x90 `\xe1\xb3\xd0\xf9\x9a\xde|\x16.d\x92$\
+N\xb8_^\x8f\x8d\x86\xd7\x05\xf2\x05\xd4\x88\xdet\xf5\
+\x9c\x01\x15\xf5?\xc8\xa9\xd0\xe9\xde#\xacT\x04,\x97\
+\x16\x5c\x19\xd7\x96\x9eJ\xb7\xc8\x00]\xc6\xa1\xe2\x00\xe3\
+y\x12\x90\x00\x11\x93\xce\xb7\xa1\xdf\xc8M\x22\xa3\x09d\
+\x9e\xbf'qE@\x0eD\x94\x1e09\xde\x0e\x80\x19\
+\x07\x0e\x04\xae\xfc\x03\x89C\xe5\x5c\x1b?\xd05\xa0\xab\
+\x86n\x0b\x09`\xbd]Z\x8f\xe8E\xc6\xb1\xd581\
+\x0e\xaeT\x13\xa0\xf1>\xd2#\x86\xe5\xdc\x07\xdb>a\
+e~\xb3\xbf\xb9w:8T.\xaf\x0eh\x12\x90\xec\
+;\xaa\x9c\x91p\xb4C\xad\xf95\xfa\x9e\x12\x17r\x8c\
+\xa7\xd6\xd0\xbe\x09G\x04z\xf5\xeb\x0d\xdc\x19A\xc5\x95\
+\xa1\xe3\xd7\x0c\xcf\x1d\xa8\xa7\x1d\x8f\xdb\x15\xe0\xa1\xaf\xfd\
+X\xc6\xbc\x84L\xdd-90\x8f^\xfeS\x8a<\x1c\
+\x0ej\xf7\xab\xb0\x12\x98\x8f\x1eI\x16P\xba\x8f&;\
+\xa4\xea\xd5\xfe\xce\xc0>=Zw`\xe1v\x0b\x84Z\
+A\xe0\x88\x80\xd4\x8f\x80i\xfa\xec\xb0\x5c\xa1JV\x91\
+\x0b\x82x\xda3\x9b\xf7g\xf4\xaf\x0d\xf9_<\xa7\x0e\
+\x1d\xc8\xe7\xe36*\xaf\xaf\x09S\xa5\xf0Q\xf5\xde\xae\
+Y\xb1M\xcb\xe1\xe2\xfc\xe8\x17\xe8\xe7\xef\xe7\xcf\xf3q\
+h\xc193,\xbd\xce\x1ea\x05\xe2\xdd\xff \xac\x22\
+}R\xc2\xc7dd8\xde$\xdeH\xa00\x8f\xd4\xe3\
+n\xa4\x0e\x01\xda\xcaC\x05}2\x1dV\xd4z@\xa6\
+\x00\x857\xfbyS\xe9\xb3\x1a\x0dPR8\x17\xd0\xdd\
+\xfeXXv\xd0\x87\x0a\xbb*\x8c\x0el\x90\xed\x13\x12\
+nr\xcd\x00\x91\x04\x92\xef\x96@\xc8\xb9\xf4\xdc\xe9\xdd\
+\xa5\x82\x0e\x82\xa3_\x22,\x1d#\x9f\x18t\xeb\xe1x\
+\x012\xd9\xfd+\xac\xb4xP\x18\xc8-~]\xe5\x90\
+k\x5c\xc7G\x87\xa5\xd7=8\xacJ,\xaa\xc2E%\
+\xb5\xffIXq\xf0\x09P\xc6W\x85U\xd0\xfby\xc2\
+*$\x1b\xc8\x00!\x18\xfb\x1f\x87\x15\xee\x84\xfe\xd0\xb0\
+Ra\xef\x8f\x08+\xeaBN\xec\xee\x1fV\x1c\xfb\xe9\
+\xbf\x85U\xf3_\xfbq\xb7\xe5\xb0\xee\xfb\x03\xc5\xf9A\
+\x02\x80D!\xbf\x0f\x99\x99T\x9b&{\x87U\x8ev\
+\xcc\xf7\x9f\x97s\x01\x8e\x00 \xe8\xec+\xd6K\x17{\
+=\x89\xab~\xfb\xb0t=.,\xaf\x83d\x05\x91\xd1\
+_\x1eV\x12\x22\x13\xa0\xfc/\x17{?*3z\x1e\
+p\xd7\xa40f`\xc9'\x00\xb9',\xbd\xce\xa5a\
+\xa5\xb7\x1c\xe4\x0dl\xeb\x93\x93\x87D\x05\x10d\xb7\x84\
+\xc8\xeft\xa5\x19}u% \xfaU\x93\xa5\xf1\x1e\xbf\
+;L\xad.KW\xbd\xd3T\xe0Id\xe3\x87\x80\xe0\
+:.,\xfd\xfe>a\xda\xdf>Z!\xc5t\xae[\
+UB\x89\xe6\xeeea\xd5\xb9\xa9s\xbe\xdf-\xac*\
+\x90P)$A\x8d\xac\xdf\x0e\x0a\xf8\x08\xd0iyc\
+\xdf\x93\xdfM\x22{\xfaUaU\x00J\xc2\x93\xf1h\
+T~\xfc\xf9a\xb5\xff\xaa8\xb7\x14\x98sn[\xfd\
+\xe4/C\xe2\xd7$\xe0\x9c\xe3\x0f\xa9\xc0\xb1\xbd\x10\xbe\
+\xec\xcf\xf8\xeb\x14\x8e(\xb8\x814\xde#}\x8a=\x8a\
+\xff\xd0o\x1eVq=@f\x07\x12C2\x9a~\xfd\
+W\x0c\x85J\x93\x9f\x22\xd3\x88|*\xfe\x02\x89C\x10\
+\x11<\xbf\x87\xc4~\xaf\x9ey\xef\xbb<WH\x1a\xe5\
+?M\xce\x0e+\xec\xef\xde\x0f\xe9\xcdG\x16P\x05\x04\
+\x9f\xdb\xa8\x05\xe1O~<[y=\x0a \xc8\x19C\
+b)\x04\x89\x91;\x22\xebt\xc1\x07\xb9D!\xaeL\
+\x8aJ\x81\x0a\x7f\xb7\x9dg\x90P+N0\x97\x01\x89\
+\x04T7\x90\x1f$\x91\x07\xd7\x01\xeaT\xf8\xd7\xc4\x1d\
+T\xa4\xf9<\xf8\xe9\xbc?\x89j\x12\xc4$\xf8(H\
+\xdc\xfbL\xb9o'\x90\xa8|\xf3\x0f\xbf\x90B\x0bq\
+\x1d\xfe<\xdf'0\x06\xa1@\x0b\x09HO\xfcQ\xfc\
+p\xc6\x8d8\x89\x7f|\x0e\x0ab\x5c\x09\xcc\x89O\x88\
+\xfb\x14/\xb0\xff;\x91\xce\xfbq\xae_\x9c\xf6\xaf\x8b\
++d\x1b\xf1#H\xe3\x16\xca\xcf}\xf0\x1c\x89\xe3@\
+\x12\xd0\x9a\x84\x1f\xc8\xe7\xa5P\xa6\xf5:\xa3\xf0\xa7l\
+tq\xdb\xd3\xd5\x07` \x91\xe3\x88^\xd8\x17\xa9\xa2\
+\xbfZ\x15\xc8E\xbdg\x0bU\xca^\xa4\xef\xaf\x5c\x91\
+\xe3\x01%\x8aN\xe5C\xb4a\xbd\xa0\xca\x98\x10\xd0\x12\
+\xe8P\xf9%\x91\x00\x84z\xf1\xa6\xd2K\xe6\x8c\xbf\xd7\
+\x06\xebJ<\x0b\x1e\xa8\x0b\xbd\xe68\xbc/\x10\xe9\x16\
+\x95\xce\xc2\x968@\xe8\xd5\x03\xe9\xcc\x17\x19%\xe9\xcc\
+{\xa3Q\x0f-\x95A*\x0fF\x00\x90Ha\x82P\
+!\xdbL:\xack\xaa\xe2\x8d\xbe\xfc\x1d\x0d\xc9\x06\x95\
+= !\xed\xf3\xa1\xc7\x97\x8c\x12\xd0\x18\x16\xf0MC\
+\xc64\xbd\xc7\x00\xe1\x84\xa4\x91\x09\xce\x04f\xa3f\xfc\
+\xc7Me\xfb\xa9\x06I@\xa0\xcf\xfb\xd0C\xb3\x91~\
+^\x9e\xd3\xf0\xfcx^$nPI\xb8o\xc8\xe4Z\
+f\x8e\xe7\xce\x84g\x82\x97\x00}\xb8\x96\xc0p8X\
+x\x1d\x12\x1e\xcb\xea\xfdX@\xfc>\xaf\xd3f\x1c\xdb\
+\xde\x9c\x16\xc9\xd0&L\x08\xf0Y\xd0\xca\xb0\x02\x81\x82\
+L\xd3\x01=\x1b\x122\x86p$p\xbf\xac\x07\xe4X\
+\xd4{G\x00\xef\x0a\x0d\xcf\x1f\xa4\x04\xbd\xdd\xcc;\x10\
+6$\x5c\xf8}\xd6\x09\xe3\xcfsTe\xce\x013\x09\
+:\xe6\x1d\x099%\xd8\x9c\xf0\x83\xad\xfe\xa4l\x85M\
+z}\x07\xa4\xc3\xfd\x09\xb2\xe6\x00\x1d\x07\x8bL7\xe4\
+\x8d\xaa\xd4\x19b\xcf\x86L\x02\x85\x1e\xf9\xf7\x86U\xd0\
+/\xc6\x9f\xfb\xc5\xc1A\xeeJ\x07=\x09\x0f\x1f\x5c\x04\
+4l\xbcdNA,\x01\xb1\x03\x02\xcd\xf7A\x06\x90\
+Y\xe5\x80\xc1\xd1`\x1fa]\x01\xc9g}\x01%\x14\
+t\xdf\xbd\xb28j\xf44Rq\x22 T\x8f\x1b\xbd\
+\x8c^\x7f K@\x16\xb1O\x82\xbc\xd8T\x5c\x0cb\
+\xe9\xf6\xfe@\xc6\x5c\xf2G\xb9\xf2\xf2\xb9*AA\x8f\
+\xbbH\x0b\xa7\xdf\x1b\x96Y\xef\xdf\x13$Q \x052\
+\x14\x7f~U\xa4/\x97\x9cb:\xe8\xbbC\xc3*D\
+\xd6\x12\x81)(\xec\xfdY\x9f\xfe'\xa5\x17\x99\xf7u\
+O>z\xcb@\x06\xe9-V\xef:\xbdl\xf4V\xf6\
+\xc7\x84U\x8e\x8dX\x9d\xbb\xc5\xc3\xd2u\xc9dKT\
+r\xb71\x0b\xf6\xa9\x9e\x13l\xc8\xb4\xbe\x08a\x83\xee\
+:\x95\xb7n1\xbd\x1e\xf2w;\x0c*\x00\xdd\xe1a\
+i\x9c\x16\x0e\xab*x\x92\x91\xb2\x0a\xc3h\x98\x1e\xe6\
+\xb6\x00\xe2\x09\x22@\xd3\x87\x807\xab6\xdc\x92!\xe3\
+\x83\x9a\xc3\x95C\x051\x7f\x8e'K\xa0\xe4\xc0\x92D\
+\xf8\x13\x99%\xc5\xe7\x9f{\x5cQ;R%\xcd\xfb\xd6\
+\x87\xc3\xb2\x03:8\xf4 _\x80.S\x89\x22!\x8e\
+J\x04\xfb\x22\x8e\xb0*o\xfdo\xc3J\xebN\xbfr\
+X:N>\x1aV%\xd0\xc5u0~(\xacp\x15\
+X\x8eW\x8eZ\xb7\x5cXz\x9d\xab\xc2\xaa\x80\xe1\xde\
+\xb0\x8a\xdc\x92}\x10RB\xf4\xe1\x09\x14\x91aS+\
+\xa0\x91\x00\xb4B\x80\x08\xd0\xfe\xeb\xdf[5\xac o\
+`W\xef?\x14\x96\xbe>*,}=\xff\x90(\xea\
+\x9f\x08S\xab\xcdc\xb9\xd2\x9d,\xefc\xc3\xbcV\xab\
+Zt\xbcG\xcf{\xb7MXr\xcc\xbe\x16Vz\xfd\
+\xbb\xa3\x86\x96\x81\xc9\xa2a9\xd16\xb0\xe3\x8f\xc3\xd2\
+\xcf\xbf\x18\x96~\x7f\x930\xad\x97\xbd\xab\xf3W\x8e\xbd\
+\xc9\x19\x91\xcd\x13\xd7\x81?\x878\x13\x90%\x04Q`\
+\xd2\xc1\x9b\xc3\xd2\xf5\xb9aU\xa5\xff\x05\x034\x9b\x0a\
+u\xb7\x96\xf6\xd1\xe7\x0f\x89\x8a\xc9\xb9BL\x1c\x1eV\
+\x05\xb8\xf4d#g\xa6\x8agK\xe2\xdb\x7f\xa9\xffr\
+\xff\xe5\x1c\xd8g\xb5\x8a\xc9\xca\x03\xfb>\x09\x9c\xfe\xae\
+0Ud\xaf.\xe4\x91\x99c\xe3!A\xed\x93\xbf5\
+~c\xb2t?\xfd\xab\x92E@\xf9\xfa\xb0\x8a\x14\x12\
+\x7f\x88\xc4\xfa\x91CE\xdbj\x04\x82\xac{\x1eh\x9e\
+\xfb\x1c\x95\x7fc\xe8\xbe*\xeb&=#\xb0\x93\xec\x9f\
+\xd5A\x94H\xf4\xbe\xcf\xbe\x0d\xdb\xff\x99C`\x1a\xda\
+\x07Y\xfd\x80\x80\x90D\x04d\xb8 \xfah\x95\x10\xd9\
+ \xcf\x1f\xd2O\xf7\xd2\xcb\xafu\xcf\xb3\x0az\xc9G\
+\xb9+\xfb)\xf87\xbf\x16y\xe6\xfb%\xb7G@|\
+\xae\x029*\x90\xec#G\xaa\xe7\x5c\x014\x89\x13\x17\
+\x0cnNv\x8b*\xed\x7f\xc8~J\x96#to8\
+2\x96z\xae\x90\xdbZ~\x97D \x90\xfak\xd4\x92\
+\xc8y\xc6y\x0b\xa4\x1d\x04,\x88A\xe2\x09Z\x03\xb6\
+VbV\x81\xbb9B~\x16V\x9d\xef\xc4\x11\xf8\x8d\
+\xa8\xf8\x88\x14\xd7j*\x04\xb0 \xab\xf9}\xc8#A\
+\x8eh\xdf1\xd2D-K\x86\xfe\x1f5\x90i\x9ae\
+\x9f\x80\x18V\xffS\xf4\xfe\x90\x96#\xf3G\x8b&\xe7\
+\xa8\xf6o\xb3\xea#\xe3\xc7|'\xce\xc0\x9f\xc0_%\
+\xe0&p\xe4\x1ca\x5c@\x92\x82D\xc5\x0f\x01i\x00\
+\x82\x0c\xe4\x18\xf3[~\x14\xfbLV\xb1Y\xf0\xbf\xa8\
+\x07P)\xe7\xf5\xb8R`#\xe0\xc5\xaf'!\x03b\
+\x81\x16#\xd4*hm @\xa6`[Z|\x878\
+\x81y\x8f?\xd7\xaa\xc5\xb5\x08a\xfe\xbe\xe50\xe0k\
+\xde\x87\xf1\xc1_%\x1e\xb8>Em\xd7W\xe3H\xfc\
+\xc5\xf3\xe1>\x98W\x90z\xaa``\x04\x02\xfb=\x85\
+Y\x90\x17\xcc\x03\x90\xabB\x80\xcc\xe4@|\xad*\xe3\
+\xb0@\xee\xbe\xb6N6\xba\xa1\x96\x05\x8c:\xde\xe6\x82\
+t\xa2\xdb\xf9b9\x0ak\xcb\x91yQ\xd9P\x9c\xf1\
+\xa1\x92\x1d\xcb\xae\x0e\xd8\xc9,\x12\x90\xe2h\x93)\xa5\
+b\xc8\xef\xb7\x90p\x12\x13@M\x81\x06\x83\x00 p\
+!Q\xb1\x92^g\xb6\x02\x13z1\x09\xa4\x09t\x09\
+Tu\xdf\xddj\xdd\xea\xdd\xea\x15\xf4\x85\x9e\xf1]\xc4\
+\xe6\xfa\xce\xc9\xee\x93\xdd\x8bLI\x0a:\x06y\xa7\xcf\
+\x0crEN\x04p\x1fd\xaa8\x08q\xc8\x81\x00\xe2\
+\xc0\x93\xe9a\x5c$/\xe2\x9eT2~\x90S\xb4r\
+nlt\xb3Dr'\xa8\xe1\x5c\x10{2\xa9\x0a\xa8\
+\xcc\xba\xfbz\xf5\x1a\xad-\x87\xf2y\x0a\x80Zd\x87\
+\xe4\xa8\xd2k\x0d\x15|\xc8\xe3\x08\xa0\xe8\xd5gA\xd0\
+;\xcd\x02b\xe3f\x03h{\x80\x80\xfepeA\x90\
+\xa9\xfc\xbb\x16.\x01#\x89\x8bi#\x04\x06\xcf\x8e\x0d\
+\xae\x95M\xe4\xda&\x06\xf8=\x1c\x5c\x10\x1c\xaaT\x8c\
+^\xa4^}6,\x16 \x15\xf3\x96$\xa8kZ*\
+\x94X \xc3i6m>W\x93)4\x84\x8e\x8d\x8f\
+q\xa0\xc2\x08\xb4\x1ch\x1e\x8e;\xeb\x85\xf1\x83,H\
+\x0e\x94\x13t\x04\xb8\xac7\xd6-\xe4A@\x05i1\
+\x10\xe4\xda\x81)\x811\x818\xf3\x83\x8a\xedn\xd9J\
+\x85D\xec\xdeN\xfc\x10\x08Q\xd9`\x83\x84;@:\
+\xbe\xb9\x22}K\xf5\x5c\xa8@h\x9c\xdcz\xd0\x90\x0b\
+r\xe0\xba2\xc8z'\x13\x0dI\x98\xa0\xdd&\xb7!\
+S\xcc\x01F\x8f*\xf3\x95\xfd\x82\xf9\xb1kX\x95\xc8\
+\x80\xe3\x83\x0a)\x88\x19t\xe5\xe9\xad\xdfz\xe8\xedu\
+K\x80\x90\x03T\xaa\x8d\xc0\x82\xf4k\x97\xa1\xb7\x1f\xc4\
+A:,\x07\x84\x88\x12\x19\xee!>\x7f\x08\xb0F\x17\
+H\x07\x99\x03\xe1\x85\x92\x13\x8c\x8a\xc7WJo)$\
+\x90\xddya\xa5'{\xba\x0fK_\x9f\x18V\x12'\
+\xdd\xfea\x95\x0e\xfb\xc1\xd2}\x87\xac\x11D\x89\x9e\xeb\
+\xe8\x95\xd2\x99V\xe5{\xfa\xada\xe9\xeb?\x85U\xa4\
+GT,\x15\xf8\x18\x92\x8a\x1a\x04\x8e\x1eH\x139\x08\
+\xdd}a\xe9\xfa\xd2\xb0t\x9d\x13V8'\xba\xcd\xc2\
+\x94\xa8X\xbcZ?p\x1d\x88L3W*\xef\x94\xc3\
+\xbd\x958O\x96\xce\xcf-\x07\x04\xc8\x01N\x1f\x1e\x96\
+\xbe>9\xacJ\x0cl\x11\x96\xae\x7f\x09\xcb\x01l\xe6\
+p\xa0u\x8e\xcc<\xe4\x8d\xfd*aU\x02K\xeb\xbd\
+{*\xac\x9a\x97\xaaxg\xc8\xf2}\xe2xH\x0ea\
+\x7fzX\xfa\xfdu\x92\xad[H\x22sb-\xc80\
+\xe7I6S\x12\x0c\x04\xd0\xd3{\x84U=\xe0\xcfU\
+\xcf\xfe\xf3\xc2\xca\xb8r\xbe\x18Y\xa0D^\x0a#3\
+ky\xdf\x85\xa5\x9f\x1f\x15VT*\x1cP\x01i\x05\
+\xba*\xf2RW\x1aI\x08\xab\x95\xc0\x89FX\xc5\x09\
+\xa4\xa8\x9cP\xb9\xd4yf\x08+\x09C\xd8\xb0EN\
+\xc6\xe7\xeb\x7f\x17Vq\x02\xe0p\xeb\xdc4\x0b\xb8>\
+?,\xfdT\xea\xe0j@\x9e\x0f\xb2\xa8~\xdf0q\
+HD/\xf9\xbb\xc4u0\xbfz\xf4\x17\x9d,2Y\
+\xa4J\xd4#\xeb\xa9\xf3}\xfa\x96\xb0\x22\xcf6\xbdS\
+X\xda\xa6~=\xfe\xcd\xb8\xe2@\xf1sxj\xf4\x9f\
+\xd1\x7f\xcaz\xc8\xbd\xdc\x1f/\x90\xfd,w\x17\xf3n\
+\xdbdi~\xf7W\x86\xa5\xaf\xf7I\xf6\xc1\xca?[\
+6yA\xcb\x16\x87\xbe?*\xac\x22\x0f\x03J\x0a)\
+*\x8e\xa7\xc6\xdb\xf2\x80\x8b\x84\x15G\x13\x12D\xb7\xc0\
+\xec>\xf8IN\xb0\xc0\xa6M\x05\x1b\x04\x16\xa4\xbf\xbc\
+>\xe4V\x87\x84\x95@+\x1a\x16\xa3e\xd1\x90\xedH\
+d\xbcX\xba\xe9\x1b\x17\xf2\xc3\xfe\x8c\xb0\xb9\x13P\xfd\
+:\xc9\xd6\x15R\xe2l\x91V\xbe\xa4\x14vr\xeb\xcc\
+\x07\x0b\xc2btxX\xfa\xbb\x0f\x84\x15\xbf\x05\xc4\x12\
+\xaa/\x96S\x04\xda\xac\x84z\xff\xd1\xb0J\xdd\x05\x19\
+VZ\xf3(4\x90X&\x91\xa9\x163\xfc\x0e*\xfb\
+\xf4:C\xf6\xe8\xf3F\xef\xc7<1d\x1c$\x0b\x01\
+\xa3\x12\xe4F\x9c\x81$$\xb0\x0b\xef\xe12!_>\
+]\xd8\xfas\xc0\xbbg\xf6\xb7\x86\xc0\x07H=\x88+\
+\x02\xe5\x86|\xcd\xfe\xeb\xf2\xd9\xf3.\xfe\xc6$c3\
+\x8b?!(~\xff\xc6\xb0B\xee\xcdya6{T\
+,\xee\x9d\xdc7\xb9\xb7B \xcb\xef\xb5z\x0d\x016\
+\xe3\x0a\xd9*\x95\xed\x1fHM\x81}_2\x9e\xcfh\
+]\xae\xc8\x94\xad\xc3NA\x06U\x10\x15\x1e]\x99'\
+ \xc5\x8fT\xaf\xbc\xb9$Hl\x0by\xec@\x0eh\
+\xbe\xe6\x89\x11\xc1 .v\xcd\x16\x09\x9f!a\x112\
+\xb6\xcb\x14\xb2\xe8\xb9\xe4\xc8\xdb\x16\xd5V\xb6\xb8\x95\xd1\
+#\x80m\xe5\xcay]\xc6\x91\xc4\x0f\x81+\x014\xfe\
+4\xdf\xa7\xa5\x07\x12D\xe2(\xdd\x9f\xb9\xaf %%\
+\xde\xc1\xcf%\xe0\xa6@\x83_H\x82\xa0\x91a7\xeb\
+>\xfe\x1a\x5c$\x90\xf0\xd1\xbaF\xc1\x99\xf1\xe1\xf5\x89\
+\xbb\xf8>\xf1@\x13\x87X%\x82D\x13\xbfG\xa0\xcf\
+x\xf25~=\xad\xbeR\xd3s\xc1\x8e}\x96x\x91\
+\x7f$$\x1ayB\xab\x92\x90\x18\xc1\xcf\xa7E^\x1c\
+pnQ\xe1>5\xee3&\xed\x8bps\xb1\xaar\
+D\x85.\x96\xd1\xd2:(\x16\xaf\x1c]\x02\xfe\xf52\
+\xf8\xb4T0\xf9;\xc8,\x08|\x08\xcc\xa8<\xc2\xba\
+\x0ek9\x0b\x8d\xc0\x9f\x07\xd3&\x02\xb8\xe2\x08B\xfa\
+F@K\xc0B\x05\xf2E\x0a(\xd8\x18\x08\xc0\xe9\x05\
+\x07J\xc5\xebZ\x7f}`\xeb\x1f\x91\x89\x95L\x96\x03\
+4zZ\xd5{\xc9\xc2s\x05\x81\x8d\x87\x85\xb5Q\x03\
+m'\x03\x87\x9c\x19\x8e\xd2\xd1\xca\xf4~C\x1b\x0d\x07\
+\x22\x15Y\x02j\xc83X\x00T\x16I,\x1c4\x90\
+lM\xa9e`\xc4\xdf\xf1y\xa8\x10\x91(\x00\xb2G\
+ \xcf\x02\x1c\xb9r<\x8c\x1b\x7f\xaf\x84\xcd\x08\x07\x9c\
+Js+GH\x80\x86\x03\xc7\xc6\xc8\xf8\xa9\x17\xd0=\
+{\xcc\xafVm@\x0b\xd12{k\x8b\xa3\x80@\x95\
+\x83\x93D\x02-\x1d\xad\xec\x06=9\xed\xc6\xd7\xb2\xb2\
+>\xd6\xb4<\xb0\x80\xc9\x84R\xb9\xbe^\xac\xd6\x90\x1b\
+\x92H\xd3\xd5\x1b\x1b\x813\x1b\x00\x1b)\xefK\xc0\xcc\
+Bg\xbd\xf0u\xab2p\xd33[=\xfc\xb9\x17l\
+\xc8\x13[]T\xf4P\x99?:\xa0,\xd7\xa6\xden\
+g\xc6\x997\xfckd-\xbd\xaeH \xb1\xbe`o\
+\x96\xae\xbbe7\xe1\x06 !\xa0\xde:\x02\x00\x0e~\
+\x93\xfb\x89\xb4nt^X\x95 \xe0y\xab\x92\x91\xd9\
+\x8c\xbf\xf9_dsH0\xd1[\xcas$\xc3\xadL\
+y\x96\x13\xdd??\xc7dU\x82D\xec\xc3T\x1e\xac\
+\xe7{|XE\xd6\xf3\x85\xc9\xc9y\xbd\xef\xa3\x8a2\
+\xadBkg\xe5\xe5\xe2\xd8h=[\x1f}\xde0\x91\
+\xd4\xa5\xf5\xda\xbd7,\xf7\x00gH\xba!\xd8\x92\xbb\
+\xb2\x9a\x0a\xfb\xc9\xde\x03;t\xa85g\xa89\xc8\x19\
+\x02\xe2-\xc5\xce\x0fD\x5c\xe34\xbd\xe2\xf4\x0a\xd3+\
+\x082\xfa}\x91\xf3\xad\xad\x80q\x97\x92`\xc9H\xeb\
+\xb4\xa1M\xef\x96,9\x1c\xdd;\xc2\xd2\xf5\x9cdg\
+\x97\x03\xde\xf7\x7f~X\xba\xae\xdf\xad\xd7\xadWZ\xa3\
+ ]\xc31v\x02\x88u\xc8A\xcf>L\x22\xeb\xa6\
+\xb0J&\x96\xd6\x17\xb5vY\xbe\xea\xa4\xb0\x8a$\xef\
+\x87\xc9~Pz\xf4\x98W\xb95\xe1\x11\x91\x97\xedP\
+\x12\x03A}\x95\xc9\xaf\x94p\xe8\x16M\x16\x08\x86\x9f\
+\x86\xa5\xeb\xd9\xc9\x82}\xfb\xd8d\xc7\xa5\xebNa\x95\
+\xaa\x0b\x15\xf5\xc7\xc3J\xa549\xa6\xf7f\xc7\x14H\
+\xe6F\xe2\x98\x90\xbc\x1e\xf2\xaf\xc8z\xa1V1}L\
+X!o\xccz\xe43\xd5\xb8\x118k\x1d\x8c\x1e\x0c\
++\xaa\x18\xfd\x9d\xc9\x22\x11r\xe7 _\x98!\xb4\xe9\
+\xfc\xc8\xf1y<\xcf\x97$[\xb7\x9cw&\x8b\x02Z\
+\xfa\x89\xa1\x92=\xf9\xb5\xb8\x02n\x09\xab\x020\xc9i\
+\xd1\xe3>u\x86\xf4\xa2\x05\xd56\xe9\x14\xe7\x12\xe71\
+\x09\xd1C\xb3\x15((\x0e\xaf\x12\x03\xfd/\xc3JK\
+\x0dH\x0a'\x82\xd8\x7fXg\x22\x97#1\x02)\xa1\
+\x03\x22 \xe6\xc8\xf4\xd1C\x0c\xf9)\xaaC\xb4\x04\xf1\
+w \x1c\x90\xadEv\x0c\xf5\x04*\xe0\xda\x17\x18\x0f\
+\xe4\xfchere\x9d\x8a\x14\xe7\x07,\xd4\x97k\x1f\
+9\x7fr\xc1\xe4\x82Ry\x9e\x5c2\x04\x0a\xccs\xef\
+\xb7\xec\xff+\xab\x80\x02\x82F\xfeI\xf7\xb7\xb0\xc2\x06\
+\x9e\xdd\x94Qi\xcdr\x8bU$rB\x1e\xef\xfe\xb0\
+\x5c\x89\xfejT\xa2-;\x097\x81d\xcb\xf8\xba\xff\
+EXQ\x91\x81T\x0c\x0e\x0cz\xfa\xe1\xa8\x80}\xbf\
+{\xed\x90\xc8\xec\xaf\xee\xaf\xe9\xaf)\x1cNT\x02I\
+|\xf5+\x84U\x81\xbdZ\x12'\xfb\x0e-\x0bV=\
+\x81\xf4\x0d\xd9\xc3}\x92}P\xad\x17\x87\x17\x8e\x83\xfe\
+\xefa\xe9X<%\xd9\xa9E\xe5\x82V\x84<K\x17\
+\xae\x12, \x914\x9f\xdc\xda\xa5\xc2R\xb7}X\xc5\
+\xed \xb9\xb2\xfe\x81\xb0j=\xaae\x03N)\x93\x80\
+\x22\xf7\x8al+\x01\x11-~\xb0\xb9\xc3\x19\x02\xe7\x14\
+\x09`\x0a]\xf8GJ\xc4\x82,`\xbfqb\x8by\
+\x8d\xbf\x84\x9fK/\xf3\x97\xc22\x22\xe9\xd2\x8cHz\
+z\xe0\xea\xca\xf3\xf3[\xf9\xdc\xc9\xc8\xb0\x9cH\xd8\xa1\
+\xec\xc3\x90\x0fZ\xa5\x02ro\x0228\x07\xc4\xc1\x05\
+\x92\x06\x12X#\x8eoV\x0b\xf2\xe5y%\x14vx\
+\xb8\xa9 E\x8d\x04\xe2b\xa55\xc7\x050\xd4\x1d\xa8\
+L\x13\x87\x90\xf8\x87\xcbC\x057\xb7Fl#$\x05\
+\xaf#\xd6|Z\x04\xbc_\x11\x08\xf2>p\x03 \xc3\
+(2L\x12]\xe6\xa2!\xf1IK\x14\x08=U\xea\
+=\xef\xf1\xb7\x80\xe0\x93\x10@\xc6\x0f\x841\x5c\x14p\
+\xac\xe0\xdf\xe0wm\xa0VB\xe2\x05H\xcb\xa9\x18\xcb\
+\xbf\x8b]&\xf6\x19W\x84)X\xcd\xfb\xcc\xd6Z\xcb\
+\x88C&\xd9\x16\xe4h\xd9TK\xb4\xfdK\xfc-\x9e\
+\x1f?'\xd0\xc5\xaf&\x1e\x02*O\xdc$\x84\xb4\xdf\
+\x8f\xc0\x15\xff\x97\xc4\x02\xa4\xe4\xacc\xd6\x0f\x05F\xee\
+\x03D\x04\xaf\x03\xb2\x01\x7f\x96uE\xe1\x12?\x91\xf8\
+\x13\x7f\x91\xf8\xa1\x913\x9f\xabE\x80\xdf\xe3\xca:m\
+\x90\xa1 \x0a=o\xf1\xf7\xe10 \xb0\xe7~\xf9\xbc\
+\xa8\x1c0\xde\xac7\x9eK\x91=\x7f\x06y\xaf\xe3l\
+\xfd|\xc6\x816\x8e\xe3r\xca\x04G\x18\xb6lU!\
+\xe6J\x80\x07\xb4\x9f\x1ef\x1cR\x02D\x0e|\x1c\x00\
+2B|Me\x9a\x00\x92\xc0\x8f+\xef\xc7\xfdqm\
+\x11\x03|0>(\x0f\x92\xdf_F\x90\xac\xa5\x87\x0c\
+\x997\x06 \x9fp\x0fP\x81\xa45`%m\x98o\
+Q/\x0f\x13\x83\x81e\xa0\x950\xb1\xacJ\xe8M_\
+Y\xd8\x8e\x0d\xb1\x22\x13L\xc6\x0f2\x10\xe4G\xc8\x1c\
+S\x81W\xaf\xb0\xa1\x90 \x03\x80\x8a1\x01\x81\x84\x90\
+IS\x8f\x90e\xa8\xce\xd1\x03_W\x9f\x8b\x04\xc1\x8a\
+\x1a'&$\xbd1\x97\x84\x15d\x84\x11\x05 \x00\x80\
+\xb8\xf1\x9cF\xba\x0f6\x222h\x04h<w\x1c|\
+\x02Q6X\xbe\xcfs\xe3J M\x80\xcb\xefQ!\
+\xbaa\x80\xf8YW\x1eG\x98yAE\x94\xf9\xda\x92\
+\x95\x10 \x93Y\xa4\x92\xcb\x86\xa5\xca\x82\x03\xc2\x02\xc5\
+y\xa6\xcc#\x8e\xbf \x87\xe9\xb7\x87J8\x1b)r\
+cb\x05v\x22\x80D\x1b\x1b\x04\xffx\x9fV\xc6\x8f\
++\x1b\x0e\xf7\x09W\x83\xe4\xc1\x1c\xd0\xcaqr\x0f2\
+\x1b\x84\xc6\xdf*\x0eb\xcf\xb7\xa3\xfa\x8f\xb0\x8a\xdc\x0d\
+\xb2#\x1ck\xcd\x0f'\x0a\xe8u\xe3\xf9\xb0a\x83\xa8\
+\xc1Qg\xde\x11\xc0\x03-&\x11\x04\x8b?\xac\xefT\
+\xfa\xa9\xd4+Qf\xc7\x97^F\xde\xaf}n\xcf\x0d\
+\xab\x1c\x15A\x5c}\x80\xf0\x8f\xf1'\xf0\xa4B\xf2h\
+X\x05\xe1\xa6G\x9f\x0c3H\x01A\xd9]i\x91\x83\
+\xdf\x9d\x11Vz\x10\xad'\x0f\xcb7\x0e\xb6\xa0\x91\xdd\
+\xe7\xc3\x8aC\x9d\xf5\xdc/\xc8\x9fc\xe0\x0e\xa0\xb7{\
+,G\x94\xc0\xff`\xc95~R\xfa\xd8\xe2Xq\x85\
+D\x89\x19C\xfaW\x1a\xad\xd8\x85\xdc\xd3\x03\xdd\xfd\xa1\
+'?\xbd\xd8\xf4\xe2\xd3\x8bW\xa4bz\x0e\x04\xb6\xb9\
+\xd7?\x8dw\xf7\xa6\xb0\xf4\xfd\x1d\x06\xdd{\xeb\x0fS\
+\xe9\xd5\xdfw\xa7\x84U\xaa\x99\x04<:\x1fL\x12G\
+\xaf\x1f\x10{\xb1\xa7w\x17\x86U\x07!\xc8&\xed\xab\
+\x04\x8e\xa3\x0b\xc3*\x87]\x08\x16CMa\xc5\x8f\xdd\
+\xefy\x82^_P\x91\xa4m\x9dA\x9f%\x90{\xc3\
+\xc0f?\xb3TXz\x9d\xbf\x86\xa5\xfb\xf9~X\xfa\
+\xfa?C\xa5\x15u\x04ZH\xfa\xcd\xc2\xaa^k\x10\
+\x0eZ?\xd3\xef\x0f\xab*\xa6o\x94*\xc1\xbf\x95\xd0\
+Pb\x99V\x89\xd1\x05a\xa5g0\x93\xcc\xcf\xa9\xb8\
+\x5cT\xe9\x81\x9b\x85y>\xfa@X%w\xa9\xc4Q\
+NT$Gt\xfa\xc80\x05\xfagHG\xf9j9\
+\x86\x7f\xaf\x1c\x12\x12[\xef\x15g\x8eH\xf8\xc6\x9f\x09\
++\xf7k5\x91\x13\x85p\x03\xa2\x7f\xcb \xe3\xd7\xcf\
+\xeeW\xefC5\xe8\x87a\xc5\x91\xe6\xbe\x81&{\xbf\
+\x91\xbc\x22rz\xdd\xf5a\x85\xb3\x83\x04\xb19\x84H\
+0\x90h\x15\xe2\xc6\xbd\xa4\xe8^C\x1e&(\xa49\
+/\xd8g\x84\x901\xb9\x1d\x90[\x12\x0b\xc8\x17j\xbf\
+\x9cz\x7f\xb6\xc2j\x0fG\xf1ja9\x00\xdby\x12\
+z\xec\xaf\x08K\xdf\xdf)\xac\x90\x04\x9aC@\xd0w\
+#\xed\x08|7\x1d\xe6S\xff\xbe\x81\xecp\xf2\xde\xa1\
+\x97\xdf,\xf6p\x09\x88t\x18\x12<\x10\x07\xe8\xc7S\
+\xa1\xec\xceJv\xa6\xb8\x12\xbeR\xe9\xcb\xef9\xf4\x5c\
+O\x16\x0a\xabZ\x18\x80$\x0brl\x8e\x8a\x95\xc2\xaa\
+\x96\x14q58!'\x8e\x8c\xc9\xb2a\x99\x0bcH\
+\x8c|=\xac\xac\xa7\xd1b\x03\xe2\xc6\x01\x13\x89\xa4\x7f\
+\x85\x15\xee\x0e\x10\x02>\xb7)t\x808\x11\xc7A\x0e\
+_~Y9\xd8\xb4\xa4q\xbe\xe0\x07\x12x\xe1'(\
+\x107wB\xcc\xae\x1d\x0b\xe7I\x0e\xbf\xce\xd19>\
+\x9f\xfc\x9ee*d\x89\x909\x19)\x15$s\xaf\x0e\
++\xea\x13$Z\xb9o\xf4\xb9MNIbK\x9c*\
+\x9e\xbf\xf8\x8dj\xc5!P\xa5U\xd0Pfz\xc7\x91\
+\xb7f?\xe5<\x86\xb5]r\xa1\x04\xb8n\xad\x80L\
+\x14YoZ\xff^\x9e\x9b\xc5\x0a\x07\x96\xe4\x0e\xad.\
+\xc1?\x10\xab\x04r\xf8ej\xb1A5\x83\x82\x92\xfd\
+\x11Z\x22\xf1\xdb\xe1\x16\xe3\xdc\xa5\xa2\x1e\xa2\xad\xe7V\
+-\xb8\x8c\x83H<\xa9\xdc\xa7Q\xdf\x22\xc6\xdd\xad\xbe\
+\xdc7\xad6\x14\xf8\xf0G)|\xac>\xc4\x0b\xae\x14\
+\xa3*@\xe2A\x89W\xb8+\x1c\x88i\xfd\xfb\xbc\xa7\
+\xc5\x82x\x06\xe4\x05\xf3[\x89<#!@\x1c\xd1s\
+O%\x9dD\x05\x01?\xf7MB\x80\x04\x0f\x08'\xd6\
+\xc3\x22\x0a\xa0\xf1'i\xb5U\x82\x88s\xd1\x9f\x8bx\
+E\xe7&\x89S\xcb\xe2I\x16\xd5\x85#\xfc\x22\x0aK\
+\x5c\x89\xdb\xa84\x13\xaf\x90\xe0\xa1\x82ME\x9cx\x8b\
+\x80_\xeb\xd2q\x97\x0ak>G) \xe3\xbf\xf3\xfc\
+\xf0\xdfXW\xac\x0b\x10'<'\xfcD\x10`\xc8\xa5\
+\x92\x08\x80\x04\x11?\x9bB(\xf1\x07\xe7\x1b\xad&\xad\
+\xfa\x07\x05\xb7\xb6\x15\x9b+\xdf'\x0e\xa0W\x9f\xbf\x7f\
+6\xd5\x01\xc6\xa7\x95\x0f'\x01\x0d\xe2\x80\x04H\xcb\xf6\
+\x8f\x9fO\x02\x03\xb9p\xc51V'Q\x9c6\xe3\xcc\
+\x06\x01]8L\xab+S\xb8\xd2\xb3T\xe0W\xac\xd8\
+\x9e\x81j\x128\x93\x89j{\xc9\xa9\xf8\xab\x22\xe3\x8d\
+\x99\x8c\x04\x0b\xa8M\x0c0\x01\xa8\x08B\x16G\xc0\xcf\
+}\xf1\xbed8\xf9;\xc9\xcc\xcd\xd5:\xc0\xe7\xe6\x01\
+\xf15\x13\x80\x05H\xe0\xdfB\xf2\xf9;<\x006B\
+\x1cc\x05\x0el\xc0\xae\x80\x92q\xa5\xf2\x0d\x94\x87\x8a\
+022@;\xd8\x98`?\x85\xa4\x84\x00\x8c\x8d\x98\
+\xfb\xd78s\xa0$w=oD\x96\xeb!\xe1\xa1^\
+@C1[r=\xe4\xf9T1\x19}a8\xa8\xfc\
+\xb9\x9b\x83\xd9\x0e\x12\x908\xb1\xdb:\xb0\xe6\xf3\xb5=\
+\xd2d\xba\xa8\xb8\xb3\x80\xa8\x8c\x93P \xd1\xc1\x02!\
+\x90E\x17X=\xd2\xfe{\xc6\x83\xdf'\xd0#\xe0\xa7\
+'\x87\xd7o\x7f\x9f\x1e}\xe4\x0bii\x99\x9dV\xc7\
+\xec\x8a\xaba\xbef\x81\xb3\xa1\xc3=\xc0\xc6\xcf\x06\xc6\
+\xef\xb1\xf0\xb9\x92X\xe29\x14$\xc30\xdf\xda\x0c\x22\
+j\x14r\xcc8\x98\x9c`i{\xcf\xf9\x9a\xcf\xdfp\
+\x168\xb3\x0c\xc7\x05\xec\xb6\x92\x093k0\x10wU\
+\x96L\xa6\xc7\x06\x0c\x12\x80\x03G\x0a\x8a~\x00\x00 \
+\x00IDAT\x9e\xe7\xca\xfb\xb7\x09\xbe6a\xc7\xe7\
+\x04\xe2\xab\xca\x8e{\x1c\xe9e\x93\x9e2\xe4d\xc8\x8c\
+\x19\x92FB\x93\x80E\x0e\x92\xd7\x1d\xf3\x98J\x0c\xe4\
+\x95jQ\xb0\xce\xba*\xd0Nl\x02\x81U%\x9f\xc4\
+\x1f\xe3g\x04\xcdg\x84h\x104\xd7$\x80\x0a\xd4\xba\
+o\x87\xa5\xebua\x85U9W\xd6\xa3\xd2\xfc\xdb\xb0\
+\x5cQ\xcf\xba\xe6\xe9UW\x1d\xc5>)\x87h\xf4t\
+\x16.*\x95\xbf\x03F\xfb\xe7\x04\xe3\xeb\xa7^\x97+\
+\xc4!otz\xa9\x00\xd0\xc3\x9f\xc5\xb1~+y\xbb\
+uJ\xc0\x98\xb9]^\x5c\x02\xca\xa8\xdfw/\xa9\x1c\
+696\x90\xe4\x99%\x18\xf2\xc5\x80\xc0\x9eW\xd6\xd9\
+d\xe5\xb0\x8au\x1e\xf6uH\xac\xd0{\x16\xebz\xff\
+XX\x99\x07\xdds\xc3\xaa\xc0Q\xe3\x0a\x12\x0492\
+\xc8\xa1L\xe6\x14u\xd4\xcb\x8a<^V\xd1\xd8\xa8\x04\
+ $\xd2\xc6\xbf\x0b+\xb2cYO{\x9e\x22\x17\x9b\
+W\x7fT:7\x0eK\xbf\xb7yX\x99\xdf\xfd*\x03\
+\x94\xd8\xeb\x07\xf9VUH\xa7\x97\x08+\xc8\x9a\xfe\x8e\
+\xb0\xaa\xc5B\xf3\xb6\xbb2\xac8>\xe3\x87\x87\x1e\xf8\
+\xf1\xfaa9\xe0\x1f\x9e\xc7\xed\x83\xec\x9f\xb96H\x14\
+\x1d\x13V\x91)\xaa\xf5g\xf4TX\xba\x8f\xd7\x85\x95\
+\xf3c\xfa\x82d\xe7k\xfc7\xa9z\x86c]\xec#\
+\x95\x86\xdf\x96\xc4\xab\xe7\x17\x15P=?*\x7f\xdd\xbe\
+a\x15\x89\x95\xf6\xfb\xd1\xb7\x06H4-\x09\x04:\xf4\
+\x80\xc3Ear\xc0w\x86\xa5\xd7{UX\x09\x94\x9d\
+\xd0P/i\x7fPX%;\xa5DO\x7frX\x99\
+G\x90\xdb\xd9\x91\x05\x82\xaaJQ\xf7\xa9\xb0\xa2\x16\x82\
+\xba\x05j\x13T\x1cY\xe7$\x88\x5cQ\x15\xd2\xd0\xf2\
+~\xd7\x0d\x8e\xa8\xa1\xfe@\xb5\x15\xd09\xe1-\xc7\x8c\
+\x84\x7f\xff\x9d\xb0t]?\xacB\xcc@\x22(2C\
+\xe4\x83+R\xc5\xe5'\xcbWz\xef\xb4\x12\xc0~\x8e\
+\x9a\xc1\x86\xc96\xaa*c\xe1\x0e\xfe\xb3@B\x09\xb8\
+\x02\xaf\x90\x11\x0b\xe20p\xa5Id\x98p.8P\
+\x7fOX\xa5> 9\xbb\xfe#\xfd\xfe\xfd\xfe\xd5:\
+\x82\x9b\x08\xce\x12\xfc*\x90SJ\x9c\xb3?'\xeff\
+@,\x8c\xd5\x8b.\x0e\x87\xa9\xf3D\xceL\x0f5\x01\
+\xfeC\x99\xbe\xcd\xe7u\xf6\xbb\xee\xa9\x02\xcf\xe8\xf1\xdf\
+R\x01\xc9_\xb4\x1fl\xa2\x96\xaa-\xe4/\xcd\xaa\xfc\
+\xacH\xf8|R\xe7\xe8]\x95\x7f\x03w\xc4\xc2\xb9\x99\
+q\x80\xa2\xffT\x01\xc9#U\xc5\x92J;-\xa8\x22\
+\x9fd?\x9bl\x97l\xfb\x22\xc7\xe8\x0a%\x08\x18\xfc\
+#\x05(\x96\xa3\x03\xf1\xc0\xfc# \x80M\x1e\x7f\x81\
+\x16T\xfc\x0e\xcd\xd3\xd1\xfb\xc2\xaa\x00J*\x18F\xe2\
+Q\x98\xa2\x12M\x85\x9a\xd6\x02\xb8Q\xa8D\xae\xa4\xf8\
+`\xcfL\xdfWZ\x93P9\xf8gX\xd5\xf2\xc3\xbe\
+\xcf\xeb\xe3o\xc0\xb5\xb2A\xae]\x97\xcf\x0fg\x01\x89\
+v \xee\xcc\x17\xfc\x18~\x1f\x7f\x82\xc4\x86\xfc;\x17\
+\xb4h\xc1\xbbW\xeb\x92\x82\x9b*\xeb\x93\xf3\xc2\xd2\xf5\
+?a%\x9027\x8f\x90\x92pn\x90\x004\x92\x96\
+y*\x8e\x07'\xb0\x09\xc4\xe1\xaaQ\x82\xcc\xcf\x9d\x9e\
+\xf4\xab\xb2\x95\xca\xb5\x10%F\x08\xe8yy?\xc3\x0f\
+\x14\xa7\x99{\xfbu>x}\x810\x82\xe3\x888\x05\
+?\x11?\xdb\xc8\xe7\xa6\xc0IA\x0a?\x8d\xb8\x0b?\
+\xae\xa8\x8c\x0d~w\x8b\xe0nY\xf6\x89\x1b\xf0s!\
+\x1d\x87\xfd\x9e\xf9E\x02\x81y\x87\xdf\xcc\x15\xff\x1d\x7f\
+\x1b\xff\x13\x7f\x9e\x04\x09\xaf\x03\xa2\x96\xcf\xcb\xf3!\x11\
+\x009\x1fq\x02d\x95\x92\xc3u\xc0M\x5c\xdb\x22\x94\
+\x19\x87\xf6}\x18\x17\xc6\x91\xe7\xc6\xfb\xe0\xdf\xb3~\x19\
+/\xc6\x91\xd7A=E\x85\x19\x07\xf2\xbc\x1e\x05I\xc6\
+O-fF\x0a\xb4\xad\xc4\x9ao3\x1eP\x1e\xcc\x12\
+\x92Y\xe3\x06x\xe0dD\x22\xb0[\xad\x82\xda\xe3\xf0\
+\xc7\xffkV\x13\x85\x0fB\xcf\x0c\x81;P}&P\
+[\xf9\xe5\xba|\x13\xb8\xb7\x08\x81\xf6\xda\xb6\x0c@\x06\
+H\x8b\x00\x99Q\x02\x22\x02/\x1e(\x13\x92qh3\
+25GB;^K\xfc\x17\xb6z*\x9e\xcd\xc6d\
+}\xcas\xb2\x05iZ\xee\xf5u\x22D\x13\xc6d(\
+\x04\xd6g)0#\xc3\xcdAJ\xef*\x8e\x1c\x99<\
+\xf4\xa4\x17\x0b\xcb\x0bp\xb8_\x90\x02@\x1f\xd1I\x17\
+)\x19\xb2\x89\x0e\xa0`\x91\xfcrX\x91\xe5r\xcf%\
+\xd0Q\xc8\xbap@\xd0\xddT\xc6\x9e\x1e>'\x8cD\
+\x0a\x07\xc4\x88\x9ecC\xde\xb8\x0f\x12B$Z\x18O\
+z\xdb\xc9\xec\xeb\x00u\xa5\x9d\x80\x00\xf9\xc4\xbfi#\
+\x18\xa9b\xaf\x8c\xbc\x03@*\xfd\x04\x86,dm\xb8\
+\xae\xb4\x83x\x99'\xfdV\x0d\xb9_b\x98/\xc9M\
+\xcb\x15F\x1f\xac-4\x9f\xcc\x1f\xf3\x90kKn\xc9\
+F\xcc\x95\xf9\xc6\xebq\x90B\x12\x87\xec\x1d\x15Hz\
+gi5a>\xb3!\x91)\x04B\x04y\x0fd\x97\
+\xc7\xa8\xa2,\x16|;\xc4\xef\x09\xab\xee\x97D\x81z\
+\xbbLB\x86C\xd4=S\xe6\xd2\xfb\x00\xd0\x7f\xf6\x0f\
+\xd6/\x0e\x0a\x0e>\x9f\x1f\x99\x14\x90\x0bB\xb88c\
+\xad\x0d\x8e@\x83L\xbb\x13]$\x10u\x10\xbbB\x03\
+\x92@\xefg\xd21\x1c\x13\xa0\xca\xb4(\xc8A\xc7\xc1\
+\xb1\x8c\xa02\xea\x86z\xe3\xd0QqP\xa0BEc\
+\xb4\xf7\xe0\x90\xd1\xeb\xeb\xca+\xe4d\x87\x87\x15\x04\x90\
+{\xd6\xaeO\xf3;*\xa3\x07t[uo\x90\xfc\xe5\
+\x12\xa5\x22M\x82a.\xddYA\x1b3\xe4\xff{\x95\
+\x1a\x84\x9e'\xfb\x0dH\xa3\x9c\xde\xea\x05\xe9]\xaf\xea\
+\x89%\xe1\xc3z\xd7s\xa3\xb7\x8e\x9ehZ?h\xad\
+\xf0}\xa8\x07\xd4\xf7I\xc2V\xf7\xeb\xc0v\xdd\xb0L\
+\xb6\xb7X\x86\xe2\x8f\xc3\xaaV,\xb1\xb9\x1b\x11\x00\xe4\
+\x16U\x05\xf6\xf5\x18\xb5k+\xd2\xba\xed\xb3\xe0\xd3\xa0\
+\xe6\xf0m\x05\x14\x91\xa096Y\xb0{\x7f.\xd9g\
+\xcbz\x99\xccI6.\x01|n\x018\xb6\x92\x89<\
+a\xd0I\xcf\xbd\xf5i\xdf\x98\xdek I4\x04\x17\
+\xb2\xa7=\x07\xb2Gsi\x08\x1a=\xb9k\x90\xfd\xea\
+g\xf5\x0b\xf5Q\xc9\x9e/\xac:\xbf\x94\x98\x1am\xad\
+y\xbb\xafZH~7$\x88\xd0)g\xbf4\xa9\xe2\
+<\x92\xed\x22!C+\x82\xce\xa5\x5c\x89_S\xad-\
+\xe99\xf4\x97$\xbbTP\xf9\x1fV\x15\xfd\x0d\xc2\xd2\
+\xcf\xff\x14V*\xb8\xfd'\xc2\x0a\xd2\x8aD\xd6\xe49\
+\xea\x95_H\xd0\xec%\xc3\xd2\xf5/aU`,\x12\
+1*\xf6A\xe9\x96I\xdd\x1a\xc7\xdc\x09<\x02x\x91\
+\x9e\xf5\xff\x0c+\xfa\xe0\xe3\xf5\xc2\xaaD \x9c\x1d\xb4\
+L\x00\x85\x15\xf4x\xfc\x91\xb04<?\x0cK\xf7?\
+\x1dVd\xc5\x90\xe1\xa3\x05\xc9\xd0{X\xaea\x1b\x87\
+\x95\x9e\xcfu\xff\xe4\x81\xc9\x03\x15\xb2O\x15B\xc6\x9f\
+\xfd\xb5\xbf,\xac\x92\x0fEUD\x81\x8a\x7f\xfe\xaea\
+\xfd\x1b\x1a{\xf5\xe0\xb8\xf9\xe7B\xb4\x98\xacP\xe7_\
+F\x0a\xfcS\x81\xcb\x15U\x8b\x83\xd4 |\x9e\xe0@\
+\xe3\x88\x83h\x08Y\xbc\xb3J\x85\x1e\xc8\xb0[ \xa4\
+B\x11\xd4|\x99\x9cO\x15bz\xa7\xfb[\xfa[\xfb\
+[\xd4\xa3\xbc~\x1e\x87A~p\x13%&\xa8\xe4\xc2\
+\x0d \xf5\x8c\xa9U\xd4r\xa6\xe7\x94fMv\xc0\x1d\
+8\xd1\x82\xa7\xfb\xeeOJ\x16\x89\x9f-\x92\xbdZ\x1c\
+\x07?\xaa\xc8\x0d\xdf*\x99@q\x0f\xb8\x80%\x12\xd9\
+\x9c\xb8:G\x0e\xf4\xe3%Q\x9a[\xbf\xce\x11\xc2\xe1\
+{\x15\x07\x01\xcf\x81q#P\xc2o\xe5\x9f\x02\xb8\xdc\
+\xf9\xfe\xd3\xca\x9f\x8a\xf4\xc0;\xab\x848\x01\x19\x01\x06\
+\xfe,\x08\x9e\x0f\x85\x95\xcf\x03\x12\x0ed\x0b2\xb2\x93\
+\x1d\xc3\x8a\xdc\x1d\x89N\xabw\xe0/\xa85\xce\xfe\x02\
+-~\xf8\xa77\x84\x95\x16\x18#\x14\xa8t\xd3S}\
+\x998d\xbe\x9d\xf5BJ\xa2\x80\xf7\x85\xe3D\xe3\xde\
+\xef\x97\xec\xc3\xe2dY\xbf\x22_\x95L#\xfe\x9f\x9f\
+\x8b\x0a\x0c^opQp^\x93\xd0\x0f?\xeb\x8d\x95\
+Z\x0e\xe4\xc0\x04\xf0\xc89j<\x1d0m&$\xb0\
+\xfc;\xcb*r\xfe\x0a1h\xbf\x10n\x10TG@\
+\xa6\xa9\xf5\xd9\x89>t\xe7I\x1c\xa8e\xc0\xe7\x112\
+\xc5j\x99sb\x09?\x89\xc4\x0d\xff(|\x11\xc01\
+\xdfX\xa8\xf3\xaa\xe06\xaf\x10fR\xc7\xf0?\x12$\
+\xac\x1b*\xe2\x9c\x87\xf8) u\xf1\xb7@Z\xc3i\
+\xa0\x04\x89\x0b;Ma\xd7\xfe-~\x1c_\x13\x18s\
+\x1f|\x8e\x16\xcaN\x05\x1b\x7f\x14\x0e\x10\x12\x9f o\
+\x08\x9c\xf1\x83\x81\xf4\x93H\x81cA-ks\xb5\xf0\
+\xe2\x7f7\xb2\x80\x9c#\xf6\xd7H\x98\x82\xb8\x01\x89L\
+\xe2\xa1U\x09\xe0\xf9q_\x86\x067\xaac\x04\xfc\xac\
+\x7f\xf6a\xe2G\xfc\xea\xb6\xe0\x8c?\xc7\xfe@\xc1\x9b\
+\xcfG\xa1\x95\x84\x07\xaf\x0b\x02\x83\xc4H\xd3:>\xf3\
+\xac\x99\x99\xa6\xd2kr\x97\xd6ag\x03Y6\xd3\xc8\
+\xcc\xf5\x81\xdc#\xc9\x06\xd9\x06\xfel\x8c|\xdd\x06\xfc\
+\xe8J\xb2@\x0b\xa9\xdc3\xb8\x04|e\xa0\x18x&\
+`\xdb\xa3\xc1}2Q\xf9\xbcm\x8fxK\x82\xd1\x06\
+\xfe-\x84\x83\x80\x95\xcf\x81\xcc\x1dPz\xa0Jdl\
+\x98\xf0\xf4\xda\xa3gO@/R-C\xc0\x99\xc0l\
+\x0cd\xf6 m\xa1\xe7\x0a\xb93\xf5^\xc1V\xea\x0d\
+\xe6NU\xae\x08\xd4\x14\xf0\xb8\x87\x89\xef\xe30\x8a\xbd\
+\xda\x1b*\x8e\x15\xbfG\xcb\x07\xe4m\xdc'\x10\x1b\x02\
+[\xc6\x85qg\xc1J\x16\x06\xdd\xfb\xc9n\x22Q\x93\
+j\x81\xd9\xb1\xd1s\x86\x1d\x9f\x83\x196Q\x91\x8dA\
+\x124:4\xac\x82p\xffQ\x90\x995\xb4P\x98'\
+7\x09\x89\xc0\x82b\xfe\x91)\x04j\x1a\xac\xc2\x0fW\
+\x07\xc3=\x0a\xa4\x81\xa2w\x9a?\xad<H[\xc9o\
+\x12N&\xdd\xa4R\xc4\xbad>3^ ^x\x1d\
+~NO \xbd_$F\x18\x7f\x12\x1a\x04\xd6z>\
+\xd6/\x96\x5c\x9d{\xde\xe8u\x93\xe3\xe7\x1e\xfcV\x0d\
+\xa1=\x98\xd8\xb8Z\xc8\x18\x88\x1c\xe6\x1f\x81\x10d\x85\
+\x82\xdez\xbe#\xdf\x89\xe3\xde\x92EBbG%\x00\
+\xc8\x1e=\xe6\xdc\x1f\x07\x0bP) u\xac\x17\x12\x86\
+\xa8XPq !\x05\x0b\xb4\xa0\xef\xd63g<y\
+\x1e\xecK\xdc/-Q\xc8\x0b\xea\xf9\x9a\xd3\x03\xd9C\
+ i\x04\x18\x04\xc4_\x94\x0e\xf7\xb7\x06h\xaf\x1d\x8e\
+\xd7\x8c^\x1b\x95m\xee\xab\xfb{\x98\xc8^\x22\x80?\
+$\xd9\xc1J\xb4,WA]\xd5\x82`\xa8\xfc\x9d\xc9\
+\xee\xaa\xa0\xd4\xc7f\xab\x03\xbd!`@\xe6\x90\xca\xfb\
+\xc3\xc9\x1e\xd2\xfc\x09\xc8\xdf\x06a\xa5\xc71\xcbl\xad\
+Z\xfd\x1dz\xd7A\x9e\xb7T\xc5nO\x8f\xad\xe6C\
+wyX!\xad\x83lpz\xdd\xb0\x8a\x1b\x02\xfdv\
+\xb1\xb0\x9bD2 \xfaO\x16\xb2\xda\xfe}aU\x0f\
+\xaf\xc8\x05\xb3\x5c_\xda\x9f\xba\x15\x93\xa5\xf1\xea\x1e\x0c\
+\xd3\xeb\xee\x5c>\x87\xf5\xa2i\xe1\x08\xf2\xaf\xc32\x1b\
+y2q\x02\x9c\xad\xf1>D\xf3\xf7\xe8L\x06wU\
+\x96\xc5{K\x0a<\x82\x94\xef\xac\xf1\x1b\xc6\xd1\xd3~\
+\xa1\x12@B\xb2\x90\xa8h\xf5\xe9\x8d\xb8Q\x22\x97\xc0\
+\xb7{IXI\x1c\x04\xc5_N\x90\x1c6\x90\xbeu\
+G\x0c\x1c\x06Y\xbe+\xcd\xab\xee\xe2\xee\xa2\xee\xa2B\
+\x8e\xeb^le\xfe\x1d\xc0F\xc2a\xfe\xaa\xf2\xc5\xfe\
+-G\x82\xca/=\xc8\xe8\x8b\xd3\xca2Y/\xac\x22\
+wC\x97{q%\x9e!q$\x80Df\x8e\xca \
+\x95G\xc8\xae\xd4z\xe3\xf5\x8c\xca\x07~\x07\x9c%\x0a\
+\x08\xc7\x0b\x86UPP\x12\x06m\xe5E\x09\x01\xc6\x97\
+\xf5\xd4\x7f-\xac\xc8\xa6Mo\x1b\x96~ogA\xf9\
+\xf5>\x96K\x95\xcc\x9ae\xed\xd4\x02dr\xb3\xcf\xaa\
+Uiv#\xc7)\xf5\x05\xcb%\x8a\xcc\xb0\x9f\x1d\x96\
+\x9fGv\xb0\xad\x1a ]\xfb~\x8d\xb0*\x00Y`\
+@\x18d\xf9\xc4%\xb5\x8f|U\xfe\xc0}\x92G\x1c\
+\xe5}\xe3[y\xdf\xa0\xf5F$\x88Y\xa6\xf3\x0bZ\
+oi\xff\xecO\xedO\xebO\xcd\x89\x9c\xd7\xe6\x969\
+\x1c[\xd8\xea\x059u\x02\x87\x84?\x88\x97\x97\x0d-\
+o\xe9\xb4\x1e\xe4\xcft\xce\x8ev\x1d\x90#&\xfb\xd3\
+9\xc3<s\xc2\xe2\xa1\xb0\x82D\xa0\xe2=\xf9\xe5P\
+\x18\xe8\xe7\x84\xa5\xeb\x8f\xc2\xaa\x1en\xb1\xa0\xc3\xc6\xdf\
+\xbf%\xd9\xceU\x22\x02(=\xad_\x90\xd0\xc1\x05!\
+d\x8e\xfd\x9e\xe0\xae\xf8TI\x10\xe4\xd3\xe5rU\x16\
+\x7f\xa5\xfb\xff\xb5\x12\xe3\xc7VdkQ\xaf\xfdI%\
+\xab\xa8\xfd\x90\xfd\x14$\x84\x03\x12\x1ctZ\xda s\
+&\xc0e=\xe0W\xea\xfe\x9c0\xe5\xef\xa9\x14\xa3\xae\
+#\x19\xde~\xf7\xb0\xd2B@k\x88\x13\xa4\xa7\x86\x95\
+\x00\x9f\xf9\x08\xc7\x83\x11\x95\xb4\x1a\x81d\x85\x1c\x8f\x16\
+\x11\x0a@p3\xa0&B\x8b\x8cTI\xec\x87D\xa3\
+\xc6u\x05Q\x95\x11Y\xf7\x08ip\x86\x0a\x10wW\
+~4\x01\x11\x5c6$\x5c\x1a]\xf3\xcc\x99q\xbe\x12\
+F\x07U2\x8c\xa8l\xc9\xaf\xb1\xfa\x09\xdcapO\
+\x00\x0d\x07\x02\x0e\x82W$\xc2\x0e\xf8I\xe8p\xe5\xf9\
+\xe0\xcf\x22\xef\xca\xfd\xe3WH\xfd\xc6\xb2\x87T\xfa\x97\
+iT\xb1\x88\x97Pc\x10\x09\xa9\xef\x93J>\xfe\xcc\
+\x8f\xe4\xbf\xfcB\xfe\xdc\x22\x8a\x7f(t\x82\x0c\xe6>\
+\xf0\xc7\x09\x1c\xb9O\xfcR\x02E\x02I\xfc`\xfc\x7f\
+T\x11\x84\x10r+\x17\xea\x19 }@|\xb2\xef\xe2\
+\xe7\xf2>\xadl9\x89\x01\xde\x97\x0a5jb\xf8\xf7\
+p\x16\x00\xed\xe7_\xc3\x95e\x92?\xfc;\xe2\xa4\x16\
+\xa9\x8d\xbf\x8e\x9f\xd8\xa8\x99\xf9>H,\x10\xf8\x93(\
+\xe1\xbeA\x00\xb6\xe4\x87\xfc\xc3_m\x0b\xc7\xc4\xaf\x14\
+\xc6h\xa1\xf8\xb5\xf6\x99\xf9\x9b\xdf\xe7y\xd1\xc2Db\
+\x86u\xc7\xfbS@\x03\x89\xb7\xea\x80\x1cu\x82\x03\xe4\
+\x87\x9eKA\x00D81\xaa\x06\x84\x17\x8c\x8f\x1d\x07\
+\xcb\x03Cf\xdbl\xfb8\xf4M/\xb4\xff\x91YQ\
+F\x1f\x07\xb0\xaa\x98\x0e\x0b\xa8\xcd\x94<\x1b\x1b;\xef\
+C\xa0\xd1\xb2\xb4\xb7\xba\xf6d\x00E>a\x99\xbf\xb6\
+\xc7\xba%q\xe0\xfd[28\xde\x0f\x0f\x96\x07\xc8\x06\
+@%\x97\xaf\x09\x08p\x5cp\x08X\x88\x0a\x5c&\x0f\
+\x0e\x07\xa0\x1d>\x02\xbfe\xf4{\x0b7\x89\x8d\x05\x9b\
+\x09\xb4\xb4\xdewU!5\x80|\xe9\x00N\xceA\x0e\
+4F;\xaae\xa0p3\x0c\xefs\xa3\x02_ \xf5\
+\x90\x9e\x01\x89\x06\x99\xc0\x04D\xbe\x83\x8c\xa7\x12\x18d\
+|\x0d\xb1neE\xd8`\xb9\x22;\xb7\x97*\xca\x07\
+\x8a\x14\x06\x1dz\xd8+UY1\xf4\x89\x80\x19\xd6y\
+\xe6\x13\x905\x91\xed\x18\xb9\xc2x\xeb\xa0\xb4\x1c\x17l\
+\xa3d|98T\xc9w\xaf\x1c\x1b\xaa>\xb7\xdf\x97\
+\x80\x9b\x0d\x96\x8d\x9c\x16\x97\xf9u 4\xa4*\x9e\x7f\
+\x04\xae\x8cS\x0b\x11j\xd7\x05\xf3\x9c\x8d\x87\x0d\x89\xf5\
+\xd0Tr\xdc\x93\x0f'\x00=q\xb0-S\xa9g~\
+\xf3>-D\x9f\xfb\x83\x8d\x98^>\xe4\x90T\xd9\x82\
+D\xc8\xf7\x01\x04\x8b\xf5\xc8\xbcnXJ\xbd.x?\
+\xc6\x09V]As\x0d!\x14\xc4\x0d}v\xb7~\x10\
+(\x00\x81\xe2\xf7p\xac\xe8\x91\xa4\xa7\x0f\x04\x0d\x0e\x17\
+\x15h\x12F\x902Q\x19#\xa1\xc4\x81\xa4J\x17=\
+\xf0N\xbc\xf0\x8f\x0a$\x07\xbd f&\xc3\xe3\xf1\xd2\
+J\x01\x87C\x13\x88\xe3\xf0\x846@\xa8\x03\xb0n\x90\
+\xfd\x1a\x9d\x14|\xf4\xe9\xfa\xc7\xb0t\x9d?\xd9\x02%\
+\xf1:\xba(\xac |H<\x18\xa1#Vg\xcbs\
+\xf1\x5c\xf4\xdc\xdc\xa2\xf0\xcb0\xc9[\xde\xa4\xca\xe02\
+\x0a(\xa2\x027oX\xc5\xdd (9\xcf\x8f\xf92\
+\xbdIX9\xa0!m\x84\xdb\xa4\xbb$\xac\x1agA\
+\xb6\x8d\x1c\x99\x95\xb1L\x83\x03\xff\xe9\xc2Z\x9d\x13r\
+Q\xa9\xfekX\x95PV\xa2r\xfa\x88d\x87W\xa4\
+\x82\x22C3\x89\x11\x01\xce\x07\x93\xedS\x91H\xc2N\
+/\xc7c\xfa\xf9a\x85E~t\x7f\xb2\xfb4\xde\xc9\
+\x81\xeb\x97L\x96\x02\xdb\xf1f\xe3M\xc7\x9bfGw\
+\xe0\x90\xa0\xf5J\x15\xbbn\xcd\xb0j\xfe\x93\x08\x96\x83\
+\xe8\x96\x0c!X\xd2n\x9b\xd9\xe8A\x8cL>\x1fX\
+\x85\x5c)\xffR\xae\x94\x9f\x991bS\xd3o\x0a+\
+\x10i\x02^*\xe3\xf9\xf3}P\xfc\xcfS\xb9\x82\xb5\
+~\x1e\x07A!\xb3\xe3\xbbqa\xb57\xc9\x97\xe4\xc7\
+L\xba\xb6\x95\xa0\xe7GH\xd7\x1aH6PLH\x01\
+\xd9w\xa8\xe0@\xae\xa7}\x91\xdeJC\xf1\x91\x83\x22\
+\x81\x86#\xa7\xc4|N@=\x5c\x9dW\xec\xdb$\x04\
+9\xd79/\xf9G\x0b\x1a\x08\x1d\xed\xdbp\x03\x00a\
+\x9f^0,]O\x0fK\xdf\x7f\xd3\xc0\xd9\xe0\xf1\x10\
+\xa9\x9c\xe5\x1b\xa5\xa2\x90\x19\x93\x96-\x90c\x90w\x0e\
+\x00\xe5\x07y<\x85\x98\x9a\xfc\xef\xe0\xd8\xd3\x02\xd1\xbf\
+7,]\x1fJ\xf6`!\xaf\xeb\xcf\x0cK\xd7\x0d\x92\
+mXZ\xa0\xd0\xbb\x1f\x9d\x15\x96\xee\xe3}\x037H\
+\x0a\x9a^\x95\x03'\xd4\x8a '\x8e\x00\xfb\x0c!\xf1\
+\x22\xa1\xf4\xc4\xe8\xf1Q\xf2kF\xdf\x1d]<\xfan\
+\x0eXr\x22\xccz\xdf\xda\x07'\xdb\x84\x15\x92G\xc8\
+\xe6&7\xca\x01\x95\x5c]:\xbb\x87\xe7\x1f\xdeS\x04\
+\xf8\x9c\xff\xe7\xe8\xfb8\xd4$\xd6i)\x83\xd5_\x10\
+\xf7~\xc3\x01\xd9\xd2\xff\xa1\xff}\x9f\xe6M\xff\xb2\xb0\
+\xe2wfR\xcc\xe9\x8a{A-\x93\x90\xae\x86\xd6B\
+\xa8-\xa0\xae1yAX\xa5\x1a\x10\xf3y\x85\x8aM\
+;\xf6\xb5[\xe4\x90/&N\x86W\x95\x80\xd0\xad\x99\
+$\x0e\x94\xf8\xf5\xfb\xa90\xe0D\x97\x10 \xfd\x0ea\
+U\xe2\x98\xc0\x16\xff\x99\x1e|\xb8\x9d\xd8w\x84`s\
++\x00\x09\x12!\x1a\xfc\x9c\xe9\x0d\x97\x9a\x82\xb9\xa6\x98\
+\xdf\x0a<\x1d\xe8\xe27r^\x89\xb4\x0f\x0e\x03\xb7d\
+\xea\xf7\xe0\x000\xd9\xab\x02\x0a\xfc\xe1\xd1\x8b\xc2\xaaJ\
+\xff\x0f\x92\xfd\xb0 ]|\xdf\xc8`\x86|c\xf2+\
+\xbbE\x92-Z8\x00\xbc.\x04\x057\xa9 \xbd\xe0\
+@\xb5\x99\xc8\xf8?\xb7\xa5p\xf8\xb6\xaauE-\x10\
+\xb4\xae\x9a\x94\x90\xc0G\x89\x13\x93\x02\x0a\xe9hrP\
+d\xd3\xe0*B-\x00.\x1b\x90\xcf\xc8\xa1\xd2\x92A\
+\xeb\x05\x1c^\x92!\x9dl\x1fVZA&\xc7\x84U\
+\x9f\x8b\x80\x16D&\x9f\x8f\xc0\xb1\xad(\x13P\xaf\xa8\
+\xf9w\xb4\x10\x90T\xc2\x19'\x0a\x0f\x90~\xd2\x9b\xcf\
+>OAC\xadF\x0e\xcc\x19W\x02[\x02h\xee\x03\
+d3HnZ\xbf\x19\x17\xe65q\x0f\x1cO\xcc\x13\
+\xb8\x89H,\x10\xa0\x820\x00\xa9\x00\xe2\x13\xe4\x1a\xad\
+\x9d\xc4\x01\xf8\x99\xf8\xd1|\x9f\xcfA\xe1\x0d?\x98\xc4\
+\x09\xfer\x8b@ AHA\x0b\xbf\x17\x95.\xc9z\
+;1\xc0\xb8\x90\x88\xe3|\xc1\xef%\x10g\xffk+\
+\xf9m\x81\xac\x90\x87/\x98\xaf\xe1\xe5\xcc\xaa\xe2d\x0a\
+o\xc4\x07\xac?Zc@4S@j\xd5\x07xn\
+\x8d\x1a\xc1\x0c=ay\xfa\xdd\xa37\xfaO5P\xe8\
+%\xc7p<UA\xac_(\xf93>\x18\x8en\x1b\
+\xe8\xc0\xee\xa8L\x85I\xda\xa8`\xf2\xfb|\xc0\xc7\x1a\
+97\x02e\xa0\xbf\xf4\xd8\xf2w\x04x<x68\
+-\x10\xf7n\xd3\x93\xd5d\x18\x8dl`\xa3\xa7R\xdd\
+\xeav\xf3\xe0\xda\x9e\x0d\xde\xffY\xd4\x0b\xacr@ \
+I@HB\x81\xcfK`G\x00\x06\x12aI\xdd\xc7\
+rM\xa2\x81\xeb\x0a\xd2\x7f\x87\x94G,\xd3)\xd8\x19\
+6\xf8\xa74.Ll\xc8\x005>Y}u\xe9\xe2\
+\xc0\x99\xf4\x0dn\x022\x89\xaaL\xa3G\xef\xca'\xd0\
+kA\x9a\x0c\xf1\xe7\xa0c\xdc\x08\xf0\xd4Km5\x85\
+C\x85X\x10\xcb\xba+\xf5\xf4bS1e>\xaa\x22\
+\xe7\xf1a\xc3\xa3\x17\x19\x96\xdd\xb5\xb4\x01!;'\x99\
+\x17o\xb08\x8ad\xd4y\x0e|.\x12@\xcc'9\
+\xe4S\x9b\xa9B\x86\x8c$\xb2\x88\xf4z\xf19_\xa7\
+Jx\x0b\xe1o3\xa1-2\xa5\x9d_-I \xeb\
+\x02\x19)\xc8s\xd4\xabd\x08#\xdc\x0d\xb0G\x13\x80\
+\x93Qg\xde\xb6\x5c\x16$\xdaZ$L\x9b\xb1e\x83\
+c#l7\x1c~\x9f}\xa0%?\xe1\xe7\xd7ic\
+\x17D\xcf\xad&\xea)$\xa3K/\xba+\x16\x1c\x1c\
+\x90\xa3\x09\xf1bVf\xa0m\x1c4B\x1aPYs\
+\xcf\x17\x90E*#$\xb8`\xbfEW\x5c\xc8\x04#\
+Uh! \xd0\x04Z%H\xb4I\xaa\xb4\x9e\xfbS\
+\xc3J\xef<\x15\xdd\xdc\xa9\x7fz\xc5\x1a\x0c\xa9\x96Z\
+$2T\xfd\x7f\x8b\xfeywk\xf7\xc7\xee\x8f%\x10\
+\xccP\xcc\xcb\xc4\x8e\xbdo9\x88\x0cM\xc4\xd1\xe1 \
+S\xa0c\x073\xc2\xb2\x1bu0\xa7\xcf\xd3\xdd\x15\x96\
+\xae\xff\x0a\xcb-J\xc9\xd2\xfd\xdf\x16V\xe9\xb6+c\
+\x9d\x9f\xea\x0b\xab\xe7\xcc8P)9@r\xa8\xda7\
+\xd8oq\x08,_\xb6jXq\x84-\xb7\x86\xba\x0a\
+P\xe1\x90\xe9Z\xb7\xe8YS\xa9\xcf\x89\x94\xb3*r\
+7\xcd\x9f\xee\x8daJ<nZH\x8fr\xc2b>\
+\x05\x02\x95\x8c\xec\xe8\xad\xc9v)l\xd3n\x1dQ\xcf\
+z\xc6\x8f|\xad -\x1cH\xc5}\xa7@\xa9\xbf1\
+\xac\xea\xb1\xd5\xfe\xdf\x9d\xd6\x9d\x9a\xc9\x11w\x0b\xcb=\
+\xc8Y\x1e\x90D'\xcf\xab;3LP\xed#Je\
+\x8fD\xae\x1d,\xf6\xd9HX.Q\x05\x0a\xd1c\xbc\
+]Aj\x19\xb2\xfd\xef\xb0*`\x01\x9aN@\xa8\xc4\
+\xa8Y\xbe\xd9W #\xd3z\xb0\x1c\x9ez\xc3'[\
+\x86U\x10f\xf6\x19\x1c3\xe49Y\xff\x9c[p\x0c\
+h~\x8d\xae\x0b\xab\x1cY\xf6%\x1cd\x1c>UN\
+y\xaevp\x919\xc3\xe1#\xa1\xd2\xb22\xf3\xba\x5c\
+iQ\x94\x1cg\xf7\xfa\xb0r\x1f\xfd9a\x15I\xea\
+\xb1a\x05\x09\x10Z\x1d\xa1\xd6a.\x96\xb3\x14\x08#\
+\xff\x85\x83\xa8\xfb!A=\xb9_\x81\xce\xcf\xc4^\xff\
+\xcb\xfe\xba>*\xa4\xd7$\x0b9\xc1\x9f\x86\xa5\xeb6\
+aB\x06\xa4\xe7\xd7\x1f\x10&\xb9\xc5\x91\x10\x18/\xa9\
+X\xcdI\x84\xd2\xca!\xce\x00C\xc1\x83j\xecb\xed\
+\xebS\xe5\xdc\xef\xde\x1c\x96^g\x8d\xc9\x9a\x935\x0a\
+\xa4\x9c\x9evZ\xca\x8c\x8c\xa0\xf5\xe1\xd2!\xb0\x98\xac\
+>\x99=\x99]A\xd1\xff<$\xd4\xa6\x16V\xeb\xc3\
+%\xe2,\xf8sX\xba\xce\xd6\xef\xab\xa7\x1b\xc4\xdf\xf8\
+\xde\xf1}\xe34.\xe3\x0d\xc6/\x1d\xa7\xf5\xd0\x7f>\
+\xac\xaa8\x07\x07\xc9ZE\xa6\x90\xe7\xe1\xc4$P\x7f\
+X\xd2\xd9\xe7\xfe\x98\xb1\x7fE\xf5\x22\xde\x7f\x8dJ\xfe\
+u\xf9\xe1\xfe<\x8fIX\xc5W\xbf\xd7\xf98U\xb1\
+\x8d\xeb|\xee\xff/\xac \x1a\xf0\xf3\xfa\xa3\xc3\xd2u\
+\x99\xb0\xaa\x97X\xad\x9f\xad\x9c,\xf3\xc8\xf2\xae\xb0\xe4\
+s\x1e3\xaf\xb5/\xb8\xc5A\xe7\x99\x0b%\xc8\x0b\xd2\
+\xaa(\xce\x04'\xbaH\x18i\xbe;\x11\x00\xf2\x10\x7f\
+\x1d5\x07!kL\x96\xc7}\x90\xf8\x82C\x0a\xf9]\
+U\x86sK\xd1%e\x9c}\x1e\x0a\x8a\x9c\xe5K\xef\
+\xad\x021\x123$\x82\xb4\x9e\xddB\x04\x07\x87\xf6\x9b\
+\xc9\x8a\x93\x95\x22\x91\xcey\xe0\xc4\x1e\x1c\x11\x04<$\
+4\xe0\xf2\xdaP\x89\x7fZ\x10\x89Ch\xf5\xa3@\xa6\
+\x00\xd2-\x1f*\x18Pxpk\xa5\x12\xe5F\xc6\x08\
+\xe2\x0fw\x94\xfd~\x0a\x82<O\x90\x7f\xc4\x1d\xc4\x0f\
+\xdc\x0f\x85\x07\x02\xbb\x16\xb9H\xc5\x1c\x04\x1fH\x0b\x91\
+w2\x9en\xd5\xc3_\xc4\xcfc?\x96\x7fg\xe4\x15\
+\xea2\xec\xd3p'@>\x08\x82\x81\x82\x14\x9f\x8bV\
+_q\xf2\x18aB\x02\x98\xc0\xb9U\x8b\xe2<#\x10\
+V\xe0\xedu\xc6\xe7\xc2O\xa7\xa0\xc4\xd7\x90\x07\x92\xb8\
+!q\xd1r\x8f1\x0fH\xf8\xa9\xa0\xeds\x82\xc4\x07\
+\x89\x02\xee\x97\xf7i\xc9\xc2\xd9'\x80\xd6\xf3>\xc4Y\
+\x8c\x9b\xf6;\xaf\x1b\x12\x0b\xf8\xf7\xc4\x05-\x92\x1dn\
+\x12\xc6\x85\xc4\x0f\xf1)\xe3F<\xcb\xf3j\xb9\xf4\x14\
+\x8f\x10w\xdb\xaf\xd5\xe7\x9a\xf1\x00\x84\xfb~\xbf^p\
+\x89\xb9Y\x98\xf3W\x8fVP\x8b\xc8(^]\xd4\x02\
+\x80$\xb8\x12\x10\xf5\xb6\xcd\xf4\xc0\xd7\xaa \xc7\xca\xb8\
+\xb8\x02C F\xe0\xc0\x8d\x13`p\x1f\xe8&\x92H\
+\x90\x03\xe9\x01\xa4\x95\x80\xcc\xd4T\xd3\x02\xc0\x83\xe1\xf5\
+\x08\xc0p\x0c\xda\x0a%\x81<\xac\xf7@b\x81\xea\xb6\
+2\x0f\xed\xdf\xb7\x0f\x88\x9f\xb3\xc0\x99\xc8l \x82\xc6\
+9\xc3Z\xf4\xec\x87\xf1YL\x01%\x90x\xd87\x19\
+w6\x9a\x97\xab\xb7\x89\x1e'2s\x85]\x7f\xb8\x0f\
+\xc6\x0b\xd6\xd0't?Lp\x02x\xbdNr\xfb\xb3\
+\xa36\xf5)A\x1f_1\xe8x;`a\x5c\xf8\xbc\
+/T\x85|\xa9f\x82Jw\xdc\x1b\x80Z\x1f&Z\
+0\xa3-E\xaa\xd2\x22*X\x00l\x94<w \xbe\
+J\x5c\x8c\x1eQ\x85\xa8\xe5l\x10\xd2!9\x1ay\x03\
+'\xc0\x18\xed\xa0\x00y^e\x0c!w\xa2\xf2(\x07\
+|\xc4\xeb\xbdO\xcf\x81\x8d\xef\x05\xc3\xfd:\xd1\xb4\xb1\
+Hh\x98?\xcc\x032ym\x8f?\xe3L`\xcc\x15\
+(=\xe3\xc0\xb8\xb2!\xb4\x1b\x12\x99G\x02[\x1c\x1d\
+\xd8\x87E\x12\xe6@\x8d\x84G+;\xc8\xc6\xce\xbc\xe3\
+\xc0\xe2\xe7\xac\x1b2\x9b\xdc\x07\xf3\x9by@e\x93\xcf\
+\x87\xac\x1e\xe4}\xe2H\x98\x1c\xad\xcc=\xb2\x81\xe8\xb2\
+o=\xc8\xf3XE\x81\x9e@\x90\x1e\xb7\x87U\xbd\xe0\
+\x90\xc5\x10\x08\x01\xdd\x17\xf9\x91\xe5\xfb>\x1dVz\xec\
+Id\xc2V\xcd\x01\xe9\xf9\x0dB\x04\xdde\xb1\xcf\x13\
+\x98\x18\xfa|\x5cX%[(\xbdy \x80>\x10\xa8\
+\x0c\xfd8\xac\x92\x09R\xef7\xf7;\xfd\xe3\xb0t]\
+nz\xf9\xe9\xe5\xab\x00I=i\x04\x06\xfc}rF\
+.\x08\x87\xc4\x01$\xa4\x85\x1f\xc8f\xee\x90I?\x99\
+\x04\xb9\x16\x90\xe3L>\x98\x02\x9dn\xd3\xb0\xaaWR\
+=\xa1\xe3_\x85\x95\xfbb\xbf\x19\xfd8,]wK\
+\xb6\xabz\xe8\x8f\xad2\xd0\xb0\x1d/9Yj\xb2\x94\
+\x9e\xd7\x9fT\x91\x0b\xf2\xc1\xab\xc3*\xce\x05 \x94r\
+\xcc\xfa=\xc2*\xc4\x82\x12\xc0\x0eh\xe5\xc8\x02\x05f\
+\xfeuW\x85\xa5\xd7\xbd\x22\xac\xe2:\x08n\x83\xae\xcc\
+\x0f*s\x99-}\x9b\xd2s\x9eIjgUP\xbb\
+\x1ay0\xab\xb0[[\xd6\x88\x96\x19Z\x99\xa2\xa2\xb2\
+Wq\x5c\xf3\xb8\xa6\xe70sSX\xfaz\xb3d\x9b\
+Wj4p\xaf\xa0\x1e\x02\xa7\x0b\xfb\x16\x8e\xc8e\xe2\
+<9op<\xd1\xa7\x1f\x7f9\xac\x92\xb5\x03\x9aL\
+\x22dGUz\x90\xc9\x83,\x8e}E\x10\xdc\xfe\x82\
+\xb0\x82\xd4\xe8\xfe'Y\xb4t\x5c\x11V='zC\
+\xfbA\xfe\xd6\x8e\x0c\xbd\xa1\xf4NBz\xcb\xfe-\x96\
+{s\xb3\x100\xc0AA\xa2\x04\x19\xc7\xe7\x87U$\
+\xba$\xf4\xb4/\xba\xf2\xcf>J\x00\xc3\xb9\xda\xfe#\
+\x91\xc9\xbe\xa7}\xad\xfb\x7fai\x9d\xad\x12\x96\xbe>\
+0\xac\xea\xfc\xbb',\x8d\xc3\x09a\x15\xa2E\x08\x15\
+\xe42G\xab\x8ff\x8ff\x97V\x01\x9f\xc7b%\xc7\
+Qt\x22fW\xa9 H6nr\xea\xb0/\x02\x91\
+&A\x95\xe7\xe9\x8e\x8d\xec\xe0\xa6\x85; \xb4\x16B\
+m\xc1\xfb\x81\xd8\xf8\xfb\xef\x86\x15n\x01\x90R\x91>\
+\x8c\x04\xa2\x0b\x0d\x82\xa0\xc3i\xe2\x84\x19~\x93\xce\xb1\
+\xf1\xa7\xc2\xd2\xcf\x0f\x08+\xf34\xb9\xd1C\xcbG\xe8\
+\xb4\xcf_*\xa5pS\xa0\xfa\x11LG\xc1ud6\
+r\xfcJZR\xa4\x8e\x01\xb2f\xfc\xded{Ud\
+\x8e\x8ff\xfd\x9d\xa1\x92y\xa9\x12`\xebT2\x87\xea\
+\xe5\xcf\xf2\x8f\x1b(\xd1q\xa9*\xbc\x9f,\x81H\xbf\
+H\xb2t\xfe\x8e?\x14V\x12(y^\x1eR\xee\xd3\
+\xe7\x0e\x1c&\xad\x03O\xcb\x07P~H\xb7\xe0\x5c\x22\
+\xa0$\x90W\xc5\xde\xc8.*\xc2\xb0\xb0\xa3jBK\
+\x1c-0\xf8\x11\xf8K\xac3T*\x04\xd9\xef\xd7\x0b\
++\x89-\xf7\xf8\x13\x98h=\x12\xd0\xb2/\xbb\x95\x05\
+\xee\x17\x02*\xb8\x13@\xaa\x80\x10\x80\x1b\x00U\x1a\xa9\
+\x84d\xce\x97Wh\xdf\x9a\xbf\x22\x01\x04\x89!\x04\x8d\
+!\xfc\x9c[\xda\x9f'\xcf\x09\x13i\xe5\x86sC\xb0\
+Q\xbd\x98z\xdb\xd4\xae\x91\xa8\xcc\xb3\xf6\xf9\xd5\xfaV\
+B\x05RN\x12\xed\xa8f\xf89\xac\xafVR!\xea\
+\x18\x0f#BA\x16\xa9\x85\x81\x16/s l/D\
+\xc1\x93M\xcf<-3\xa8\x90@\xa6LA\x09D\x01\
+\xf1\x16\x01=\x95\x7fZS\x90\x83\xa3\xf7\x9c\x9f\xff<\
+\xed\xe6?\xaf\xb8\x05\xe0B ! \x7f\xcd\x95j\xb5\
+\xca\xb8@FB\x8b\x00\x93\x04\x04H\xd6\xd2\x22;\xdc\
+\x1f\x88\x09~\x9f\xf8\x8cyG+\x08\xb2~\x04\xce\xfc\
+\xc3\xef\xc3\xdfm9\x89\xd8\xa7[\xb50~\x0f?\x94\
+\xc4/\x017\xeb\x102U\x12\x1d\xed\xcf\xf9;\x02{\
+\x10\xe1$T\xe0T\x22\xc0'q@\xdcI\xa2\x00\xb2\
+=\x10\x08\x14\xbc\xda\x16n\xfc[\x12\x11\xdc\x07\x09m\
+\xceE\x0ae\x5c\x19\x07\x10\x0b\x04\xfe\xf8\xd3$\xb0\xf9\
+=\xc6\xaf!\xc7w\xbc\xc0\xb8\xb7W\x9ec\xf3\xfd\x19\
+\xb3j.\x96C\xcc\xd2k\x1f\xc3\xfb\xa0n\xfc\xeeJ\
+\x160\xa6\xc5\x1d\xd5\x07\xc3A\x8e\x1e\x83kT\xe9\xd9\
+S\x95\xb4\x9a\xa5\x9f\x80\x81J\x14\xd0|6\x1e\x1c\x09\
+>H\xdbcCbA\x95`\xcb\xae\x91H\xe0\x03\x12\
+\x90\x93\xa8\xb8Bd\x17\xab\xa9\x12H\x8f\xb12\x84@\
+\x8e,'\xc7\x83mY\x1c\xdb\xca1W&\xee\xdc\xac\
+\x8f\xc3\xcfy`\xfc\x1e\x81\x14\x13\x93+\xa4\x17\xc8\x98\
+A^\xc8\x02\x22\xa0\x02\xaa\xcc\xcf\x09\xb8\x80\xea3~\
+\x0b\x98\x84c\xb8/*\xe8\x04\x8c \x10VlT\x14\
+Xx\xdc\xe7\xd2\x9a`lx\x04,\xf4\x8e\x13(\xb5\
+2u+(P\xa7%aY\xc9\xb2\xadb\xd2\x99\x01\
+\xe2I@\xdb\xb6`\xf0\x1cI\xe8\x00\xc1\x07A\xd2\xca\
+R\xee\xac\xde\xe0\xfd\x86\xca\xa0\x1dV66\x1c\x1dH\
+\xe1Z\xae\x02*B<\xff\xe7i<\xd88\x09\xc0\xf9\
+\xfd'\xcc\xa6?\xc8\xcf=98vfMo\xc8\xfe\
+,K\x07\x14\xbd%\xafd!\xf3yH<\xa9B\x98\
+\xc9\xcb\xb6\xaf\x10\x19\xea\xb9\x9a\x5c\x16V\xe4\xf2L\xee\
+\x88\xea\x03\xcf\x15\xbdm\xc6\x13\x16^H%\x1bh\x90\
+3\x9bl\x5c$\xd08\x18\x9a^<\xf7V5z\xa9\
+@\xcf\xdcR\x82\x9c \xd0w\xd8\x89A\xe8\xf0\x0f(\
+\x18\x09\x0a2\xc1$\x0a\x98wr\xc4 \x07\xb3\x0c\x0f\
+\x08\x02d\xa8\xd4Ci\xae\x08\xd4\x03`Y&\x80 \
+S\x0c\xe9\x1f\x953\x8d\x97\xc9\x8e\x98\x9f\xb0\xb2\x8b\x95\
+\xde\x07\x18-\x06@^I\xcc\xb0oB\x0e\x87\xae9\
+\xf3Drq@\xeb\xe8\x95\x8e\xce\xde\xe8\xed\xcd\x10\xb1\
+\x05341W\x1a\xbc\xee\x04\xd9\x05R\x9c\x82\xd2\xa1\
+\x12\xff\xb1\x8c\xb1\x99\xea\x8fO\x01\xcc\xf1%Q\xd4=\
+\xaf[\xb5{^\x96\xb3:?\x93\xab\xd1S\xab\xca^\
+P\xd2\x05)\x1d=\xeaf9&\x01\xa3\xf1f\x9dQ\
+\xb91\x84\x15\x16fX\xc6\xbf\x92\xec\x8c*q\xa0^\
+x\x02\x07\xf61C\x9e\xdf?\xc8\xa0\xd1Z2\xd9#\
+\xac\x90\x8e\xb9\x12\x81\xac\x91\x02uH\xb0\xe8\x0d\x06\x9a\
+\xdc\xdf\x1fVd\xc62\xb2\xe8\xc3%`\xebnL\xf6\
+\xfb\xe2\xd8\xe6\x0e\xd2\xd7\x16V\xeb\xdc\x22\x90\x1c\x85\xf1\
+9\xc9R \xda\xbf>\xd9\x96\xda\xdf\xc7z\xae\xbf\x91\
+#\x1b\x89\x88\x95\xc2\xd24yQX\xfaz\xbed\xe1\
+\x18\xdf\x9e\xec\x8e\xea\x5c\xa4\xa2G\x05l\x13\xb54(\
+\xf1\xc8:\xe9N\xe9\xbe\xd0}\xa1@|\xad\xdb.\xf5\
+\x88\xd1W\xc3\x8az\xc3\xf4\x99\xd3_\x9dN_\xe7\xe3\
+5\xcd\x9b\xe9\xbb\xc3\xd2\xcfg\x85\xa5\xeb[\xc2\xb4\xce\
+\xef\xac*\x868\x1c \xb0\x82\xed\xfcg\xd5\xfa\xc0\x11\
+:@\x95'\x1cu\x02\x0d\xce\xf1\x8dD*&\xa8\xbc\
+\x13)Z\x0f$\x8c\xdc\x12\x11\xdc\x0c\xe9\xf9v\xeb\x87\
+\xa5\xeb\xcf\xc2\xca}\x98u\x9b\xca\x1b$\x81\xec7p\
+\xd1\xb0_\xc0:\xcfyB\xe2\x1d\x04\x93\x12x\xa8%\
+\x98\x8b\x81\x8a*\x01\x0b\xfb\x10\x08/!T\xe0\x940\
+\xf4}\xdf\xa9\xfd\xa6\xf6\xab\xc8i\x15\x00\x182O\x85\
+\x99\xca\xd8\xfb\xc3\x04\xd5\x7fU\xc5\x01\x11\xa4~\x7f\xaf\
+\xe6\xc3\x0eai\x9a\x1d\x9a\xecc\xaa\xa4\xbe\xaf\xf4\xac\
+C\x9a\x0b\xd4\xbd_6\xac\xaa\x8c\xef6\xf4\xe6w\xa7\
+\x85UP`\xfc\x15\xe4\xe2 \xb5\xd4>oD\x01\x08\
+\x18\x91s\x1aY\x06\x19(\xe3\xadsir\xc8\x80\xc0\
+\x1am2\x8c\xa7efAr\x01u'QKo\xb6\
+\xf6\xc7\xd1\xa7\x95p\x17gJ?N\x16\xaa\x1d\x9fK\
+\xf6\xf9\x82\x00t\x0b\x93\xd6\x8f\xcf\xad\xa8\x03\x9fP!\
+\x85\x02\x11\x96\x02\xb8\xf1\xa9\xc9N+\xea\x1ay?\xfa\
+J\x95\xd8\x15\xd9\xdd\xf4\x8f\xc2\xd4\xca\xb8o\xe5G\xa2\
+\xfb\x0e7\x13\xaa8p\xb9\x90X\xd2\xbe?\xfapX\
+\x91s\xed\x8f\x0bK\xdf\x7f(,}\xfdhX\xc5\x09\
+\xc1\xeb\xd3\x1a\x86\x0a\x06\x1cZ\xb4\xc4\x00i\x07\x09\x09\
+B\x16\xee\x03\xb85h\xa5\xd4\xfb\x91\x80s\xc2\xe5A\
+\x91U\xd2\xa2\xab\xe7kH\xb7\x10i$,\x80\xe8\xfb\
+\xf3*\xe1n\xd2@\xd6\x19d\xba\xf2\xd3Ln\xab\x02\
+J\xff\xcb\xb0\xca\x1f\x15B\x0c\xa4\x89\x11] \x8c@\
+\xecQ\xc1&\xd0$p%\xe1\xdc\x9c\xdbn\xfd\x834\
+\xf1=J\x80\xaa\xe5\xcf\x01,r\xb1\x04\xa2\xf8m\xcc\
+Oz\xef\xf7R\xab H=\xda4A(\xd1\xf2\x07\
+9\xa1\xe43=/\xf9\xbc\xac\x7fqy\xf8\xfc\xc7\xff\
+\x04Q\xc1\xd7\xb4\xd9\xe0\xf3\xbe\x00\x00 \x00IDA\
+T\x0a\xac\x9a=\xe7\xf0\xb7\x86\xfdH\xad\x0bNl\x12\
+w\xb0O\xe3w \x8f\xcc\xfcb\xbff<y\x9e\xb4\
+\xc86\x08.#\x1b\x08\xf4\xf1\xf78\x7f\xcf\x95:\x87\
+\x90\x7f\x93?\x85U\x010\x89\x0a\x12\x19\x04\xdc\x90G\
++\x8epB\x88\xb8\x84\xfd\x9ax\x85\xfb%A\xd5\xb2\
+\xf3\xe3\x8f\x12\xc8\xf39A\x98P\xf1\xa7\x05\x8d\xbfc\
+\x7f\xc7\xdf\x85\x0c\x1bD\x0d-m\xbc>\x01?\x9f\x03\
+\x95\x10q\xba\xf8\xf7\x09\xf0\xf1\x9f\x9b\xd7\xf7\xf8pn\
+\x92\x10\x8dQ\x7f\xa2:G\x99\x07\xcc\x1f~\x8f\x04\xfe\
+\xb3q\xd8\xb5\x08^\xe2P\xe6\x89\xc6y&/\xa7\xdb\
+\xab\x808*\xf4w\x14\xc8\xbf\x17\x86*\xc6\xd9\x91_\
+\xa9\x92\xbf\x88<\xf0\xf6\xeaY\x5c\xa7:x\x91\xe3x\
+2\x87\xa0fYu\xa0\xc0\x83d\x02\xf0>8 @\
+\x17\xc4&\xed@\xa6\x85L\xb7\xb2i\x0c\x04\x99\xb9\x22\
+\x9f6\xfc#\xc0\xe3>\x08t[6E\x1e \x81\x1a\
+\x95\xce\xf6A\x94\xbf\x07\xca?\x1c\x88\x8fh#i+\
+\xea-$\xbc\xd1yto\xd9-jy\xd8^l\xf8\
+\x0d7\x02\x19Q\xebh\xf2\xf7, \x02\xba\xbb4A\
+\x95\x19\x8c:ET*\x8c\x08\xe0@#@\xe5\xb9\xb6\
+\xd0s\xc8\x099\xf0\xb5 \x80\xb8\xd0\xb3\xea\xf1\xc5\xb1\
+ \xf0\x93C\xe8\xe7\xb8\xba\x12\x1a\x04>\x8c\xcf\x06z\
+\xdfF\x86\xc4\xafCe\xa5\xd6\x91]\xbdb\xb1\xe5\xf3\
+q\xe0\x11X\xaf\xaa\xc4\x03\x89\x12\x02j6<6j\
+66\x91$z\x03\xd4\x06\xef\x9eo\xc6\x89\xcc.\x09\
+\x026:\x1c\x02\x024\x16,\x018W\x02\x01\x12\x01\
+\x0d\xf2\xc4\xf7\xcf\xf7I\xf80o8\xf8\xc8\x04\x83\xb4\
+Qo\x1a\x157z\x00\xd1\xedv\x05]:\xd8\xde\xd0\
+\xa8T1_H,\x80\x88@\x15\x00U\x04z\x0e\x05\
+\xf5\xa5\x02\xe4J\x1f\x99q\xb8% ?\xa3\xb2'\xc8\
+\x99\x13\x16\xb0?\xbft\xb2\xc1\xe4\xa5y\x83\xcc\x89\xc8\
+,3w~U\xd1&q&\xc8\x9d\xe7\xc1'\xb2\x95\
+@\x05G\x81J-\x1b4?\xe7\xc0\xc6\xd1\x82,\x93\
+\xfb\xc6A\x84C\x04\x87\x83\xcc:\xfb\x04\x89\x11\xf6!\
+\xa0\xf0kf\xccN\xe9\xed\xe2\xe0\xc1\xd1\xc3\xb1\x82\x84\
+\x10r\xb3\x9f\x86\x95\xde[\xd4\x1e\x1c`\x13H\xd1s\
+\xaf}~\xf2\x1d\xe90\xdf\xd5\xdf\xd9\xdfY\xfd=\xbd\
+\xa6\xa8\x15D=5TH\x1e\x08+z\xed<W\xee\
+\xc7\xad\x11\xe8\x14S\xa1\xd1:\xea\xff\x10\x96~\xef\x92\
+\xb0*1I\x05\x0d\xfdf\xcd\xb7~\xe1\xb0*!\xc2\
+:\x95c\x87\x8c[\x7fG\x7f{\x7f{\xc5\xa2L\xcb\
+\x96t\xe0\xcd\x1a\x0d\xe2B\x9c\x1d\xe6\xb6\xa0\x22\xaf\x96\
+\x92\xf1\xf6a\xb9\xe7\xf9\x89\xe8y\xee\xae\x0dK\xd7\x9f\
+&\xbb\xb6\x92\xa5\x0b\xc7\xf0*%\xc6\xde\xa8DD\xb0\
+\xe4\x7f0\xd9\x07\xa4\xeb\xbesU\xc9U\x00\xc6\xf3F\
+\xe5%\xf7d\x7fM\x89\x88ph7O\xb6Y\x81\xd2\
+NNHv\xbc\x02\xe4\xcbr\x00>\xf4\xfc_\xa0y\
+\xbe\xfb\x00\xdd\xeeN\x0c+$\xac\xdd)a\xe9\xfa\xee\
+\xb0t}yX\xba>',]']\xdfM\xcas\
+\x1e}.,}?\xff+\x81 \xadA\xdd\xeea%\
+\xf1\x9f9\x0d\xd2\xba\xea.L\x162\x95\x8b'\x0b\x15\
+\x86\xcf\x87\xa5k\xc6\x9e\xa7\xebC\xdd\xc3\xdd\xc3\x95\x03\
+\xa8\x0a\x1cd\x8d&\x11\x93|\xe5\xe8\xde\xb0t='\
+\xac$6\xbb\xc7\xc2\xd2\xf5\xdfaU\xe5_\xfb\xb8I\
+i\x09\xfc\xe5\x80\x8eN\x0b\xab\xd6\xc1k\xc2\xd2\xef\x7f\
+,\xac:g\xa9\xd8\xe0\x00\xf1\x0fYK\xb5L\xf4\xa7\
+\x84\x95\xf5G\xa2h\xbcr\x98\x02\xf0C\xd3\xf5\x95a\
+\xe9\xfbg\x87\xa5\xaf\xdf\x11\x96\xbe\xde.,#)\xbe\
+\xd5G\xa5\xf9\x03C\x02\xcb\x0e\xf1\x9e\x82\xa4\xbfT\xe7\
+\x17\xb2\xad\xdc'\xfe\x84\xa0\xeb\xb0\xf0g\xe8\xff\xe3\x95\
+\xbe\xfa\x83\xc9\x1e(\x01\xb5\x13\x84\x0a\xa4\xfb\xd7\x84\xa5\
+\xeb\xf7\xc3J I+\xc3\xcc\xc6a\x95^\xba\xf4\xd4\
+\xddB\xf7\xd3\xb0r\xbed\x96\xfd\x934\x7f7/\x15\
+n\xcb\x06\xd2\xdb\xce\xf9\xf9\xb8\xfc\x13*\xc8\xa8!\xc8\
+a\x0f\xef2\x10\xa0@\xa4IH\x98\xd5^\xa4g\xdd\
+<\xddL\x97\xfc\xbb>\xd4\x00'\xd5\xfd\xec\x96l\xd7\
+\x0a\x92\x1d\x89\xa1\x03\xab@F\x89\xd0\xfe\x8c\xb0t\xdd\
+3,=\x9fk\xc3\x0aW\xd1\xf4\x85a\xe9\xfb[\x84\
+\x89[a\x83\x92\xc8E}\xc4jE\xc8/\xd3\xdb\xcd\
+<\xe3\xdc\x04\xc9#\xe4\x97+\x87\xb4V\xde\x11VZ\
+E\x9c@\x22\x80\xc8\xff\x0a\x02\x82\x84x\xbfmX\xd5\
+\xe3\x8e\x7f\x8b\x7f\xa5}\x1b\x7fh\xb2IX\xd5\x22$\
+H<\xe76\xad\x06<w\xe6'\x086\xb3\xc3+\xd0\
+u\x02\xab\x97,#\x08 %\xaaI0e\xbc\xdeV\
+\x95\xaa\x92\xd8\xf8!O\xcd\xfb\xd5^\x05J\x9eU\x1b\
+\xb6\xd09pE%_}[X\xfa\xf9\x1f\xfb\x81\xcc\
+\xed\xa8\xa9\xa3\x22!\x9d\xc6\x22s2LN\x13\x89\xe7\
+\x85\x92\xdb\x03!\x80\x5c\x1e$\xdb\x14\xe8\xe0\xfc\xf9\xd4\
+\x90\xc06\x07\x8a\x90P&\xe7#\xf0;9\xac\xf2#\
+\xe8E'\xf1\xbf\xb7\x12\x08$\xa0h1\x91?9\xba\
+2\xac$\x8e)\xd48aFk\x01\xba\xf2\x14:\xf5\
+~\xbe?\x0aq\xb4\x8a\x5c\xaa\xc4\xe2\xf7T\x80\x03\x99\
+\xc2?\xfc\x12H\x9e!=\x85\x14\x8fs\x14\xae\x14\x10\
++?\x0a\xabZS\xd8'\xf1\xa7\xb8?\x10\x8f \x14\
+h\xb9\xa0\x10%5\x12\x9f\xeb\xd7e+\xcf\x87\x96\x08\
+\x90\x095\xc7\xdc\xfd\x15\x82\x95\xc0\x98\xb8\x89q\xa0\x22\
+Ob\x16\x7f\x8e\xb8\x8c@\xbb\x09\xecM\x92G\xa0O\
+!\x0b?\x9d\xc0\x9e\x04\x06d\x9d$P\xf8=\xe2<\
+\xfc<\x15\x06=\xbe\xf8{\xbc\x1e\x7f\xd7\xcam\x830\
+\x91?\x94\xd3\x13wTr\xa6\x8c\x1bq\x03\x8e\x1d\x85\
+%>'\xf1A[\x98\xe6\xef\x187\xe2j\xc6\x89q\
+W|8\x93\xd9\x8b?\xa1\x85\xb3k\xd1\x89\x9d\x8b\xec\
+N\x81\xc8\xe4\xc6\xb0\xc2\x0a\xecL\x11\xe4`\xd1C\xf9\
+\xd6*Pl\xd9\x10[\xc8B\x0b\x8d\xe7\xca\x84\x86\xcc\
+\x8d\x0d\x0d6xX\xd8\xe9a\x02RI\xc5W\xbd&\
+)l\x1c*\xc6k>\x93M\xde\x99\xbe6\x81\xd0f\
+L\x90!\x11\x9b-=NsAW\x18\xf0\xa7\xf5\x00\
+zXw\x1a\x19\x08\x02\xeb\xf9\x05\xf9 \xf0\xe5\x81\xea\
+\xf3:\xe0\xa5\xa7\x8f\x07\xfc\x90\x0eZ\x16\x0c\x13\x92\x09\
+\x02\x94\x84\xabu}\x86\xcfCf\xcb2u\x1c@\x90\
+<\xca\xc16\x84x\xad\x06\x92\xdf\xea\xd8\x13\xa83\xb1\
+\xda\x9e\x96\x96\xbd\x9e\xf1g\x83\xa1\x15\xa1\xd5\xb9\xe7\xfe\
+\x99\xd0\x5cy]\x12\x09\xb48P\x19g\xde@r\xc8\
+\xf8\xae\xa3\xf9\xc3\xbc\xd3\xeb\x9b\xd4\x92\x00\x9b\xe7H\x00\
+\xf1\x8e\xb0*\xc3K\x22\xa9\xa8a\x0cH\x84V\x07\xb4\
+\xed\x95o\x13\x02$6B\x7f|\xde\x0a\xf2\xd7\xaaI\
+\x80\x08`\x9d0O\xdb^(6\x1eH\xf0xnz\
+=Xm\xad\xd3\xab\x80\x82\xc0p\xae\x0c\xe2T\x930\
+ccf\x83e\xe3\x17\xc4\xd3$]\xb0\x09S)\xda\
+7\xac\xfa<\xa8)\xc0%\xf2\xc1\xb0J\xcf\x18d\x07\
+\x81:\x19q\x02\x0cU$\x81\x82{\x1dh\xfc\x080\
+\x9cY\xe5\xf9\xf3\xfe$\xc6\xc8\xc8\x02%\x13T\xd0\xe4\
+\x868\xa4\xc7\x85U\xf3\xb8e)f\x9e\xf2|\xb9\x7f\
+\xd4\x08\xc2-\xda:\x1f\xb0\xe7\xc6\x01\x9be\xe5\xaa\xd6\
+\x09W\xc48P\x90\xc3\xc2\x01\x5c \xacRI\xb8q\
+hypK\x07\x19y%\x82&\x8f\x0f\xfb\xd4\xf8\xac\
+\xf1\x99\xe33+Gl\xa7\xe1\xb9X\xa5\x00\xc7%\x8e\
+\x9d\x87\x0a$\xb0[>\xac:h\xe0\xd0\xe0\xc0\x8d\xd9\
+]\xe9\x91{\xbe(\xa0\x19A\x82\xa9\xe7bn\x10*\
+\x8b\x04\xce\x22\xa7\x1bo\x1cV\xe6\x0b\xbd\xcfS\xc7\x0a\
+q\xb0\x92\x12\xcf\xe2\x0c1\x22\x86\x8a\x04\xbd\xf2p\x97\
+h\x9c8Hy\xbf\xd1O\xc2\xaa}\x9f\x1e^\x052\
+\xfd\x8b\xc3*\xd9\xc5_\x0e\xac\xd5\xd9\xc1}\xbbzz\
+?\x99\x03\xbb\x0fD\x22`\xb4{X\x15P\xdc\x16\x96\
+\xc6\xef+\xc9N\xd7\xfcI\x01\xdb\x9c\xd9aJ\xd4\x5c\
+PH\xf6\xba\x15\x92\xadXZX\xa8\x94vgu_\
+\xeb\x92#\x9b\xfe\xffz\xf7\xf5\x22\xc3\xd7\xfd#,]\
+\xdf\x1eV*\xe6\xd3k\x87\xa5\xaf_\xd0\xad\xdd\xc5\xf5\
+\xdbC\xc51\xb9\xfb9Q\xe9J\x94\x12-\x93\xff\x09\
+\xab\xf6;\x91\xb5\xf9\xdcd\x9f\x8fzzp\x14\x5c\x1c\
+VZ\xd3\xd2\xabf\xd9\xd8\xd1w\xc3\x0a\xb2\x06}l\
+\xf6\xa3\xd1\x02AG\x99\xae\xf7\x04\xdfw\x85$\xd0y\
+evq=\x17\x93\x1e\x0a\xd9\xd3}9,\x8d\xf7\xbb\
+\xc2*\xf23A\xa7\x09T\xbb\x83\xc3\xd2<:s\x98\
+\xef$\x0a\x9c\xb8\x83<\x93\xf3_\x88\xa7\xee\xc7a\xe9\
+zPXzN\xbb\x85\xa5\xd7Y+\xacB\xc2\xbc:\
+,}\xff\xcda\xe9\xfa\xea\xb0t\xfd`X\xfa\xbb\xc3\
+\xc3\xd2\xd7'\x8c?3\xfeLi\x991g\xc5\xd6\x03\
+Yb\x7fC\x7f}\x7f}\x86\xb4\x0fH%\x12\x8c\xaa\
+\xf0g\xc8q\xec\x83\xbb\x0cry\xdd\xfea\xa52\xdf\
+\xff0Y\x0a\x94\xfa\x05\xc3\x0a\xa7\xcd\xe8\xb2\xe1\xe7&\
+\xb7\x84\x0c\x10\x128Ux\xfb\x83\xc2JO}\xb7d\
+X\x15\x98\xabBH\x22\xb4\xfbaX\xd5#,\x84P\
+N\x80\xed\x94\x13\x11\x0f\xf5\x0f\xa9\xa5hR\xe9\x9f\x13\
+x\x90\xf8P\xc2\xde\xb2\x81\xcf\xed\x97\xed\x9f[Z\x0a\
+\xd2\xb8$+\x09\xe6\xc9SR\x09\x987\xd9<B\x08\
+-\x90\xf7\xaf\x9d\x22A\xcc\xfc0\xb4<\x128\xdb\x16\
+9\xd8\xfe\xa9dO\xab\xb5\xe2A\x05\xda\xe9<\x9c\xe7\
+\xe5\xc96Q\xe0\xf6\x83\x82(\x02\x01\xd6\x1f\x18\x96\xc9\
+;\x93edT\xd8\xd4(\xff+\xc8\xb5\xfe\x91\xb0\x8a\
+\xd4\x1a\xff\x0cr\xe3Z~\xf4\x9a*\xf0\x02\x99&\xae\
+\x1aZ\x95\x088Q\x1f\xf1y\x04\xa9\xa1\xd4\x1b\xe8\xe5\
+\x86\x842\xb7:\xbc\xb4Bf\xb1\x1f+\xa1n\xb29\
+\x12\x10\x92o\xb6\xbc%\xdcTJ8Q 05\
+\xd9g\x04\x88WV-\x00 \x1c@\xfa\xea\x9cf_\
+\xc9\xfe\xf1ZB,l(r\xb5(\x14|9Y\xa8\
+\xa7,\x1cV82\xfa\x8f$\xdb?\x07\xf4\x17\xe6\xf5\
+\x80\xcaT\x0a\x9fb\xbedo\xe9\xf4\xaaG\x9d\x02\x99\
+\xc8\x18!\x815i \x9c# \x86\xdf%\xa4\xe7\xbf\
+\x14\x00\xf1\xf7j\x11t\xcf>\xaa\x05p\xa1\xd0\xf3\xce\
+9\xb9\xadZ\xb3\xf0+\xf0\xf38\x7f( P@\xe2\
+9(\x81\xe2\x80\x92B\x15j\x22*\xe8X\xc5\x04?\
+\x05\xb5\x1b\xb5L:\x00\xd7~a\xa4\x11\x95n\x90\x11\
+p\x07\xa8\xc5\x95\x96 \xfbm\xf8\x09\xc8\x8b_\x98\xad\
+$\x06x=\xe2\x06\xfce\xfcz\xfc}\xfcu\xe23\
+\xfcC\xfc6\xd4Z\x08\xd8Y\x07\x8c\x0f\xbf\x8f\x7f\x89\
+\xff\x8c\xff\xdd\x92\x88\xb7\x81>\x89\x03\xee\x83\x00\x1b\xae\
+\x158+(\x90\xb5\x15\xff&\xe1\xe0V\x02\xee\x9f\xf1\
+$\x90\xe7kH\x83\xdb\xd6\x03\xe20\xfc1\xbe\xe6s\
+J\xe5\x22\xefs\xb7WHP\x10$\xfc\x1eqg\xcb\
+\x15\xc6\x15\x7f\x9fx\x80\xc41\x85\xdf6\x1em\xe3\xa7\
+\xa6\x90<\x90\x00\xa2\xbb\xfb\xa5\x0a\x12\xbc\xde\xa0\xdf\x9a\
+\xc3\x8f%\xe5\xf8.\xa5\x0a\xcf\x8aUo?\x81\x07\x10\
+Y\x0e\xde\xd8\xa87\x17t}\x8d\x0a\xc2DE\xee\xd9\
+\x12\x01\x0a,Mj\x87~)\x01$\x95k\xaeTR\
+!\xef\xd0\xd7\xa3\xd9\x0ap\x08\x0c\xdb@\x116tz\
+\xe8I \x10pqm\x03#&\x1c\xff\xc6\x86V\x0c\
+\x01:\x0f\x0a2\x0b*\xf5\xab\x87=\xa3\xf7ex\x10\
+,4\x02k\x02`\x1e \x13\x90\xf1\x99\x98-~\xa8\
+ \x92x\xa1\x02\xcf\xfd\x92\xd8 p!\xc1\xc0\xeb\xb3\
+\x90\x99\xa87k\x22\xde\xae\x89\xdeV\x9a\x05\x0d3\xf9\
+#\xcf\x8f\x16\x05 \x98<\xdfU\x14\x88\x130\xb1\x81\
+,\xdd\x90\x0e*\xe3\xef\x80\x95\x00\x9e\xd7'\xd1@\xe0\
+\xcb\x02\xe1s\xc2\xae\xbd\x84z\xc77Q\xe2bY9\
+\xb8\xe2 \x08\x91\xb4\x5c\x99\x5cO\xf3\x84\xf9\xa3\x8d\xd6\
+r:\xb4\x82\xf0~dFI\x84\xbdA\x15X\x02)\
+\x12M\x22I\x9az\xfd@\x02\xe7\x04\x0a\xf3\x0e\xc7\x1a\
+\xa4\x09=\xe1@\xf0hMi\x13f\xbc/\x81\x0b\x1b\
+C\x9bX\xe2\xf7q\xecY\x0fd q@h\x8dh\
+e\xb6@V\xe8jU\x0az\xd89\xf0\x08\x9c\xd9X\
+Y\x97:\x9088}\xc0\xf1\xfe\xfc\x1d\x07\x0d\x19\x7f\
+e\xbc\xdd{\xc9|\xe3\xf9K\xdf\x1e\x87\x8c\x00\xc0\xf3\
+\x8dD\x0c\x1b!\x07\x0a\x09\x18\x12\x5c\x90\x05B\x92H\
+\xab\x8d\x02~\x1f \xcfB\x02c\xc4\x04\x81\xa4\x12\x13\
+nAb\x9e\xb0\xfei\xb9 3\x0c\xd2\x05yN\xb8\
+\x0bH`\xf2\xb9!\x05\xd2\x86\xed\x96\x05U\x90\x8c4\
+\xbaH\x01\x84Z@\xdc\xbb\xaf\x831\xf7\xe6\xefV\x91\
+x\x11h\xd1\xe2E\x85\xe3\x7f\xb2\xfeFqhcU\
+\xae]\x02\xd5\xec\xce\xff\xa0BF,\x95WT\x81\x8a\
+\x12\xf8\x07\x14\xf4\xfa\xe2\x80\xa1\x0e`\x194A\xe4 \
+i4\xf2\x8b\xfd\x82J\x07\x10F!\xc9 At\xeb\
+\x81\x12\xd0\x8cK\xb7kX\xda\x16\x8e\x0c+\xaa\x05N\
+@K\x05\x80DU\xae\xbc\x9fP\x1c\x01\x10.F\xac\
+\x11\x08\xf3\xfc \xa7\x04\xe2\xb7S\xb6\x12\x80\xae\x1c\x96\
+\x96\xe5&\xc9\x22\xb0\x7f*,\x07\xc0\x0b\x84\x1aC\xf7\
+\xe9d\xd1;}BX\xfa\xfeU\xc9\xae.\x95{\x9e\
+\x939\x14\xb6\x1a\xb8/\xa8p\x9b$P\xac\xcd\x96U\
+T/:\x8e\xecd\xbe\x08\x99JB\xaa[\x22,]\
+\xcf\x0d+\xf3\x8e\xf1\xc5a\x9e,\x94l\x96\x02\x91/\
+\xa8\xc5fs\x05\x02\xdf-\x09)HZ\xd1%\x1f-\
+\x1fV!H\x84D\x1b]\xa8\xe7\x85,\x14\x8e\x96\x9e\
+swhX\xba\xee\x15V\xb1\xfa\xeb\xf9C\x06\x092\
+\xc0\x90a\x1c\x1c\xb8o\x04\xb1\xb6<\xa5\xe6\x89I\xbb\
+H\x08\x92\x98\x90\xa3\xde]\x19Vdy\xe7\x5c\x15\x96\
+\xae\x1f\x08K\xc7\xf9\xeda\x85L\xab\xffc\x7fk\x9f\
+\x1c\xba\xf1-a\xe9zuX\xfa\xfeg\xfa\x13\xfb\x13\
+\xd3\xd7\xbf\x08K\x7f\x7foXz\xff\x95\xc2J\xc5\xb4\
+?=,'0\x86\x00\xfa\xa5a\xe9zQX\xba\xee\
+\x18V\x90*y|\xf7\xa9\x12\xa7\xb1\xab\xa5}\xf7\xe9\
+\x9f\x86\x15\x7f\xc9\x81\xf3m\xaa\xe0R\x89\x02\xe9#\xae\
+\x13#\xaafO\xd6\x082\xb6~\xd3~\xb3>\x05\xaa\
+s~:\xe7\xda9\xd7\x96\x9e\xe8\xc9\x16C\xc2c\xf4\
+T\x08j\xa6\xfbX%,}=\x19\xb8\x1e\xf2<\xfe\
+t\xa9\x0cG]7#\xc3.\x1c\x12\xa5F\xb6(P\
+\x9bl3yc \x8f\xfa\xb5\xc3\x0ai\xe7x\xc7\xb0\
+\xf4\xfe\x9f\x9ds\xe2\x9c\x13+$\x01\xe4\x95OL\x1e\
+\xcf\x09\x8b\xbd\xc3\x0a\x12#\x93'\xbeZ\xebs\x83\xca\
+\xdf\x5ci`\x95\x1f\xef\x1cV\xce\x85\x99e\x92\xa5\xf5\
+\xd1}.\xd9\x89b\xe9O\xfb\xc1\xf8\x82d\xe7W\x89\
+\x96\xc3\xc2\x92{\xf7\xbe\xb0t_\x97\x85\xa5\xeb\xff\x86\
+\xa5\x9f\xdf\x10V\xf9-$\x02n\x1d\xe6\x85\x0bB@\
+\xb2\xf1\xd3\x98\xaf\x90@\xe2'\xb1_>\x1dV%r\
+\xd97\x95X\xcb*+\xc15\xf1\xfb\xb0\x9c\xc09\xb8\
+?8W\xee\x07\x8e\x05!O\xdc\xe3\xae}\xa9\xffx\
+\xb2\xc3\xf2\xdfg\xd5\x8f\x14t\x0d\x01\xde\xe6\x99\x16\xba\
+\x90\xb0\xceI6.-YNX\xe0\x17\xaaPC\xab\
+W.\x84\xbc\xb3\x1awU\xea\xdd\x22\xb9Q\xc6x\x16\
+\xf9U\x15\xac\x9c\xf8C\xae\x15$\x02-K\xeb\x0er\
+\xa6\x90[\x82\xb0h\xc9\x87\x19\xa7\xfeJq\xe7\xfcB\
+\x5c\x04p\x81\xa9E\x16\xf2BW\xfe\x09\x14O\x19\xe4\
+A\x8d4$\xf0\x83\x14\x11\x92\xe0\xbd\xc2\xca8M>\
+7\xf9\xec\xe4\xb39\x01\x95\xff\xce\x1cFJ\x8c:.\
+\xa0\xb5\xe2\xb3\xc3\xef\x9b\x04\x14\xff\x08?\x16\xa4\x80\x12\
+\xf3. \xf0s\xfc[\xfc\x17\xfc\x10\xe2\x01\xfcAd\
+S\x85\xf0\x81<\xd2\x1c\x08\xb4>\xd0\xc2\x00\x14\x1f\xff\
+\x88\xe7\x86\xbfC\xcb\x1e\xa4up{\x81\xf0\xa2\x22O\
+\x82\x8bB\x07\xfe7$\xa1\x14\x84\x08\xf8\x81\xcc\x13\xf0\
+R8\x82\xc3\x05.\x02\x02[\xfcc\x02~\xfc)\xfc\
+[\xd6\x17\xf7\x8d\x1fJ\xc5\x9fyI \xce\xfb3\x8e\
+-B\x80D%?\xa7\x90C\xa2\x01\xff\x0d\x84\x08\xe4\
+\x84\xbc\x0e\xbfG\x00\xcf\xd7\xc8TR\xe9\xbf3c\x8a\
+\xcb\xfd\xf2~|\x0d\x92\xb4\xe6\x02xNu?\x1a?\
+sU5-\xc6.\xfc\x91\xa0\xe293~maU\
+\xfb\xd1\x8c\xa1u1\xdc\xffRFguA\xf8\x96\xd6\
+\x1fv\xd5D\xd6F\xe3\xaf\xb9\x91\x08\xbbg\x17\x1d\xf6\
+\x0c\xc4:\xb5\x0aX\x98\xe0\x91\x97^N\x13yQ9\
+2K\xfd\x97D\x00\x99%\x02\xd8\xb629n\x02\xee\
+Vu\xe0^U\xba!Wb\x02\xb1\x11\x13\x98\xb6\x19\
+.\x06\x88\xdf'!!\x87\xc7\x01\x07\x95\xebe\x15X\
+/\xa6\xd7\xe5\xef\x0b\x92`\xb8O\x160\x0f\x86\xca0\
+\x018\x9f\x13Y\x1c\xa06 \x026T\xa01\x8f\xc6\
+sQ\x8d;\x1c\x0c\xd2\xeb\xb5|]\x0b!a\xfc\x0a\
+\x94e\x08\xc8\x98\x88 <~'9\x99\xed\xd4z@\
+\xe2\x80\xc0\x9cq\xe6\xf5\xa8\xe4\xe38k#\x06\x02:\
+\xb5\xa92\xe3<\x7f\xc6\x99\x89K%\x1fR=\x9e;\
+\xe3K@\x0b\xa7\x00\x7f\xc7<\xe1\x8a<b\x0b\x99\xe1\
+\xf9>G\x1b'\xf3\x96\xfb%\xf0%\x00\xa0\x17\x1d(\
+\xdb\x9f\xc3\x0a\xe4/\xfbC\xe9\xf5G_\x0b\xab\xe6\x09\
+\x1b6\xf7C\xa6\x5c\xba\xeb\xee\xb1\x22\x11\x86<\x0a\x08\
+\x04\x02\x1fm\xf0F\x06P\x01ouFI\x00\xb4\xc8\
+\x09\x02a\xe6\x15\x81\x10\xe3A%\x8c\xcf\xcb|\xc6\xc1\
+a|Y'\xfc\xe3u9P\xf9\xbc|~\xfe\x9e\xf9\
+A\x8b\x886z \xdb\xee\xb9\x07\x99\x80\xee-\x19x\
+\x1dd\x86\xcc\xf1\xb9\xc8\x80Kf\xcb\xec\xe8\x04\x90\xcc\
+\xc3\x96$\x91\xfbf\xdc\x80\x04s\xe0\xf0y\xf8=6\
+\xf2\xe6`\xf1\x01\x0a\x99\x99z\xd8\xddkI/\xf17\
+G\xdf\x18}\xa3\x92\xd1\xa2\xe7\x8c\x16* \xea\xe2.\
+0k.\xcf\x8bD\x04\x9c\x1f\xec'@\xfb\xd4\xb3h\
+\x04\x05j\x00J\xdc\x8e\xb6\x0a+\xd7\xee\xab\x03) \
+$G\x96\xfd\xbaC\xbd\xe8\xc8\x1dj=d\x88\xffF\
+\xaa\xd0\xa7\xfb\x1f\xfd\xbfd\xff\xaa\xd8\xaai\xe1\xb85\
+\xd9\x1f\x05\x05\x9d\xb7z\x1eJ\x8cY^H\xe4m\x19\
+\xb2\xf8\x91j=*\x01\xe1@N\x81\x06\x89\x14\xd4\x01\
+\xccb\xfd\xc5\x81\xfc\xc8\x0e\x8ezG\xfbu\xc3\xd2\xe7\
+\xfcmXa\xadw\x80\xadD\xcb\xf8\xd00\x91\x80U\
+z\xcb\xa3\xa9\xa1\xc0\xe7@\xfb\x1bz~ \x0c\xd4k\
+;\xba+\xacT\xb0\xdc\xb3\xbeu\x98\x12+K\x14\x87\
+\xb4\xfb\xbf\xb0t\xbd3Y\xfa\xbb\xe9C\x92\x1d\xacJ\
+\xe6N\xe5\xb9Y>S\x88\x11\x12\x90\x86\xe4?\x1eV\
+9\xac\x22\x0d3i$\xeb\xe4\x95J$\xa1\xca\xa2\xca\
+\xf1h\x9e0\xc9\xc0\xee\x98\x13=K\xe4\x04\x10$f\
+\xe1\xb6^\xad}\xe79\x85\xbc\xcc\x15>*\x5c}X\
+F\x02dd\x1a\x09#\xc8\xbe\xa8D\xd2\x022z\x89\
+\x12\x02p,<\x1a\x96\xae\x8f\x87U-\x0b\x7f\x0bK\
+\xd7\xef\x84\xa5\xeb\x0ea\x15d\x1a\x04\x89\xc8\xc2|~\
+\x91\xe8?0\xac\x92-\xa3\x12\x08\x1b\xb8 \xbcFP\
+|5,\x1d\x8f;\x85\x95@o\xce\x85a\xe9\xfap\
+XE\xcew\xf2\x90P\xe8\x97\x0b\xcb\xb2hC\xcb\xc0\
++\xc2\xd2\xbc\xda%\xac\xc8$\x1a\x82\xfff\xc9\xbf\x1d\
+'\x19\xb6\xfb\x07\xb2\xbc\xfeUaUO\xbc \xe3\x90\
+\x0fv\xdb\x86\xa5\xf9\xf2\xbb\xb0\xf2\xfas.\x0e\xd3y\
+\xff\xdcR\x11\xee?\x11V\x05\xcaJ$x\x9f%\xf1\
+\xab\xf9\xde?\x1cVZy\x0c\xed\xd7\xfd#g\x98\xc2\
+\xf2U\xfbh\x95\xfb\xf8\xd4aS\x01\xe1^\xaa[\xba\
+\x8b\x80z\xcb\xee\x0d\xdd\x1b\xaaD\x1a=\xd5\xc8\x12\xee\
+0\xb0\xb7G\x9d?\xb8\x08\xc6\x1b\x85ev\xff{\xc6\
+i^\xce\xb9f\xce\xd5s\xd2|\x1b\x9f\x14V%\x06\
+\xa3\x82\x7f\xb48>N\xaf \xf4\xb4Z!\xeb\x1a\xa4\
+t)\xb0\x1a\xcf\x0eS+\xc69\xa5\xf5\x86q\x9c\x9e\
+\x95l\xa1\xb2>\xc6\x17\x87\xa9\xe2\xbb\xbf\x10\x5c\x7f/\
+\xa4\xa3\xddYa\xe9\xef\xb6\x09+\xe3>\xfeRX\xa5\
+\x16\xa5yn\xee\x12\x91\xcd9\xe0g^\xaa\xa7\xde\x09\
+.\x05\xd8p^\xb8u\xa2ie\xeb\xce\x0b+\x90|\
+\xfbKp\xc2\xac>\xf4\xc8G\x9a&\x125\xb4\xdc\xa1\
+\xf3\x9d\xc9AW)\x89\xa0\x9c \xf8gA~\x82\x9c\
+\xf0>\x0b\x92G\xadB\xe9y\xc7\x13/\xe4\xab\x11\x10\
+\xc7\xf3\xdd \xac\xda\x17\x91\xa7Em\x06\x99L\x90\x09\
+\xf3g\x8c\xeb\xc0\xe1\xd0Wr\xb4\xe2^\x02\x09\x17i\
+\xa9\xac\xc6\xc0y\x09\xc2\x07$\x0b\xa4sR/\x19\xed\
++\x99\xe9\xd3\xc5\x01\xf2\xe1\xa9\xfd\xf2>\xf6@n\x16\
+\x9c\xcaa~\xac\xd7\xeb\x06U\x8d\xe4K\x0c\xf2\xc1\xe7\
++\xa1K\x0b(\xe7\x99\x12m\xd6\xb7W`\x0e2c\
+t\xea\x90\x88ua\x83\xcfA%\x1d}z*\xf2\xc4\
+%p8\xa9\x90\xe2\xc4\x01-\x93\x9c\xe7\x14\xa2\x08\x1c\
+A\x92\x00\x05\x87,\x92B\x09-\x9d\x87\x84U\x08\xca\
+#\xc2J\xc2\xdf~=\x05G\x90\x11\xbc\x0f\xfeh+\
+OG<EE\xbe\xe5\x0c\xc3\xbf\xe5\x1c'\xdeB\x05\
+\x03$\x10~6q\x16~\x0c~\x18\x05<\xde\x97\xef\
+\x93\x80\xe2\xca}P i\xd5\xd9 \xf7c\xbf`\x5c\
+\xeb\xca\xfb]ssW!\x9b\xe9q&\x00\xe7|!\
+N#\xf0\x87<\x10.\x826\xf0o{\xfb\x0b27\
+\xcbT&\x1f\xf2\xe6\xecG\xb6\xc8\x00\x0ad\xfc>\xfe\
+<\xe3\xcc\xf8s%AB\x82\x06?\x1d\xbf\xb7U3\
+\x00y\xf9\xf7\xb0*\xf1\x03\x09`\x9e\xaes\xaa\xde\x1e\
+\xa0\xe7Q'_O/\xbc\x80\x06|\xe1\xaa\x82\x0e\xc9\
+UCZ\xe6\x0d\x0b\x07\x9c\x00\x8e\x00\x10$\x01\xfa\xde\
+\x04zL\x98\x96\xcdp\xba\xe9\x09'p\xe6\x81\x81@\
+\xe0\xc1\x93\x01\xd1\xfdLn\x14Y\xe0\x1b\x05y'\xd0\
+lU\x0e\x98\xe0,\x18\xee\x9f@\x9a\x09\xc8\xe7\xe0~\
+\xa9\x94\x13\xb8\xc2]\xb0\x9cH\x8fVR\xe0\xdc\xfe\x1e\
+\x01\x0b\x01\xf0\xc2\x9a\xd0}C2\xc8}\x14\x1d\xc8a\
+\x82\xf0\xc0\xc9\xc01\x9e\x04vl,\xad,!H\x04\
+\x02?>\x17\x09\x0a \xd2\x04>Tb\xb5\x90\xdd#\
+\xccA\x07G\x03-\x1a\xad\xbc#\x0b\x9dyA\x06s\
+\x9e\xa6\x92\xcd\xf3\xe6~\x09\x98\xe8)\xa6u\x80\x9f\x93\
+\x81\x94\xc3R!C\x86D\x01\xaf7K\xe3\xca\xfb\xb3\
+\xb0\xf8\x5c\x92\xf1\xf3\xf8A\xd2\xc7\xeb\x93\x08\x88\xca\xdd\
+U\xa5\x87\x89^9\x02x\xb3\xcc_<\x1c\x10N\xa0\
+\xa8\x02\xd9\x92\x16Z5\x00\xf6s*\xf1 Q\x18O\
+\xe6\x07\xf3\xee\xd9Zg\xd8@A\x8cPq\x07\x09\xc0\
+\xb85\xac\xb1\x0et\xe9\xcd\xd2|\xb0\xec\xa6d\xbaX\
+o&\xefD\x9e\x91\x03\x15.\x04\xee\x8f\x0dH:\xc5\
+v\x94\xd88\xe9\x81\x87=_\xac\xf0\xbeO\xd69\xf3\
+\x91D#\x9f\x07d\x10\xb2\x92T\xe2q0\xa4\xcb\x8c\
+\xc3\xe5\x0d\x9d\xccp+/\xa6@\xde$\x8a\x90\x13\xd2\
+*\xa2\xcaD&\x87\xfaP\xa5>\x81j\x87*\x86\x99\
+9\xe5\xa9\xc2\xdao\x07\x8b\x0a>\xeb\x96}\x8f\x8a\x00\
+\x95$\xd4\x0c\xc8\xe8RI\x80\xb4\x11\x96g9^ \
+:\x0c\xc5\xee\xc2\xca\xeb\x8d\xa6G3\xa3\x99\x02\x11\xb6\
+l\x90\xae$\x0e\xfb\x17\x85Ul\xe1\x1b&\xdb\xa8\xb4\
+zY\xb6O\x15_\x93Q\x81\xfc\x10+\xbd\xffA\x9e\
+\xb5U(\xc6k\xde\xdc\xa3\xf1\xb8\xa4\x0a\xb4q\x00p\
+\x5c\x80\xee\x8b\xcc\xcf\x07\xa3\x0e@\xb7\x10\x00I\x052\
+;\x13V*\xb0\xfd\xa2ae\x1d\x8c\x1f\x0cK\xdf\x9f\
+\x1dV\x9eWr\xcf\x1f\x0a\x07\xbd{\xb0{\xa8K?\
+\xef\xce\x09+\xb2\x8b\xd33a\x05*\xce\xd73/\x0f\
+K\xdf\x7fO\xb2w\x97\x8a\x96\xefg\x85\xb0\x92H\xc9\
+P\xeb\xbf\x95^\xc8\xfe\xe2\xb0\x82@\xebfwkt\
+kT\x15\x12A\x7f\x9d\xf0\x90\x83A\x00\xdb}\xaa;\
+\xaeK\xebfz\xdb\xe97M\xa7sm\xfa\xdba\xe9\
+\xbajX\xfa\xf98\xac \x14\xba+\xba\x1fvW\xe4\
+\x16\x81o\xe7\xde\xfe\xed\xc2\x04\x85\xffI\xba.\x18V\
+8BF\x17\x84U\xf2dG\xabU\x08.\x06%2\
+L\xa2\xc5y*\x08m\xda-3\xe2\xa4\xfbSX\xba\
+\xfe'\xacT\x96\xadr\x91\xff\xa5\xeb%a\x15\x09\xe0\
+\x93a\xa5\xc5\xc2\x89p!+,o\x09\x84\x15\x84\x10\
+\x0e\x90\x02\x01W\xa4\x95\x18\x1a\xaf\x18V*\xf0\x04\xc8\
+\xd3\xab\x87\x95\xc4\x0a\xaf\x0f\x97J\x0a\xd7r\x80c\x92\
+\xca\x17\x86\x15?\xa3\xbb=,s\x95\x0c\xe3v\xea@\
+*\xd7\x9f\xdf\x9f\xd7\x0f\x81G\xbe\xffn\xb7\xa1\x85c\
+\xf2\xf6\xa1w\x9a\xca7\xb2j\xdd\x8a\x03yd\xb7\xeb\
+ \x17Ieq\xfa\xb1d\xe9}\xa7\x9fN\xf6\x94d\
+\xd4\xee\xabH %\x8f\xdc\xdf\x1d\x96>\xe7\x9c\xb0\xca\
+q\xdcZ\x01\x8f\x90\x1a\xe6\xf2`?\xa6\xe5\xed\x15a\
+\xe9uN\x0e+\xe7\xc1\x9c.\xac$0\xcdV\xff\xf1\
+lS\x91.\x88\x84A\x0a\x93r@\x04T>W\xdc\
+\xd3\xd7s^6g\xe39\x1b\xa7\xaf_?~\xdd8\
+dR\xd7\x1c\xe4\x06\xcd\xe6\xces\xc3\x0f\xe1\x5c\x8a\xdd\
+\xf0\xdb\x82\x8a\xa7\x00y\xfc\xfb0\xe9\x86\xa7\x80l\xe6\
+\xdd\xc9\xde\xa5y\xb5\xb2Z\xdbf\x97\x84^4^D\
+\xeb\x85\x03\xa2\xbds\x17\xf7P\x99\xbfJ\x01\xcb\x85U\
+\x22\xe0\xf2\xb0\x82X\xc8j\x0c\xf3\xaa%a\xde\x12\x08\
+\xe6}m\xab\xca_\xa4'\x9a\xf5\xa1VX\x12]\xac\
+\x93\xb9\xfc^\x02\x02\xf6\xb9\xa2\xb2\x91\x13npn\x80\
+\x80\x0af\x97\xe0v\xc9\xb3\xe2'\xf9\x5c\xbe7Wn\
+\xa5j\xd3M\x87\x95\xf3\xba\x7fKXI\x10\xf5\xbb\x87\
+U\x1c\x0a\xda7s\x9a\xe7\xb0\x92\x8047\x83\x02+\
+Z,\xd2>\x10\xe6V\x02\x17P>6\xc89;a\
+\x0bd_\xe7]\x7fHX\x15\x08.\x94YqL\xda\
+\x98\x91\xa0/,\xe7\x97Uk\xba\xb0* W\xc2<\
+\xb7\xe6}*W\xe8?\x97+\xee\x22\xe14RO\x08\
+\xaa\xfe\xec\xb0\x0aa\xf6v\x91'B*\x0c\xe4\x1b\xf5\
+\x15\xfcgT\x88\xe4W\x99TX\xaa\x08$H\x1c\xe0\
+\x8b\xd4\xd3\xf2\xc4\x22\xbf\xb5\x9f\x8f\x7f\x84\xdf\x81_\xa3\
+\xf1t\x9c\xc1\xf8P\xa0\x22\xbe\xc2\x1f\xc2\xdf\xa3\x10K\
+AC~\xe6h\xcf\xb0\xb2\x7f\x99\xa4W\xc8\x06'Z\
+.\xac\x90!\x9bW\xfb\xab\x90\xc4\xae\xe4\x13\x7fP\xf0\
+\xe1k\xfci\xfe\x0e\x999q\x958\x1e\xc4\xef-\xfe\
+\xfa\x7f'\xbf\xc6\xef\x94\xba\x89\xfdF\xde\xaf%Y\xc7\
+o\xc0\x0fn!\xf2$\x0e\x09\xcc\xdb\xde\x7f\xbeO%\
+\x9f\x02\x1b\xef\x03r\x8dx\x12\x7f\x96\x04@\xe1X{\
+f\xe0O\x8f\xff\x9d\x93\xbb\x82\xeb$\x87\xff\x7f\xaa\xd6\
+9\xefG\xfc\xda$\x10\x8c\xe8!.j[!x?\
+\x0am$\x9e\x987|\x9f\x82\x01\xad\x10\xb4\xa0\xe0\xef\
+j\x1cf\xd0\x81vF%\xfdY\x86\x80\xa4\xb0#\xb3\
+l\xc7\xe3]U\x81\xdb\x22U\xc0\x88c\xdc\x06\x94\x5c\
+9xx\xc0z}\x93\xcd\x11\xd8\xf0s\xe4\xdd\x9e\xd7\
+\x90\xb5\xb5l\xef\x04\x90\xad.:\x0f\x8c\x81\xe0\xf7[\
+y;\x0e\x1a\x02\x1a\xc96\xb8\x12\xc7\x04h\xf5\xd8y\
+\x10-4\xa5y?;\xf2\xf4\x9c\x93( \xf0\xa7b\
+\x09\x84\x96\xcf\xc9\xeb\xe0\xe0\xcf?\xf4Pz\xc1\xf0w\
+-Y\x1c\x07\x09\xe3\xb6\xba\xde\xe7\xf9\x0dI\x1e\x01$\
+\x812\x01\xf5\xfa\xda\xc0\x91\xed\xe3\xf9\xf1{\xfc\x1d\x1b\
+\x0f\xe3G&\xae\x95\xb5\xc0\xf1\xff\xe7\x90\x11Ln\xc2\
+@:\xc6xi\x5cG\x8b\x09\xb2OE\xba%w\xfc\
+\xff\x84\x9d\x07\x94-E\xf5\xf5\xa7\xfb\xce\x03\xc9I\x14\
+$\x0b\x82\xe4\x9c\x05\x89\x0a*\x22Q$KN\x02f\
+\xe1\x0f\x86OI*9\x09\x08\x92L\xa0 Y\xc5\x00\
+\x82\x22\x08J\x0e\x0f\x05D\x11E\x04\x89\x0ao\xba\xfb\
+\xabS\xb5\x7f\xa7\xea\xd5c\x96o\xaf\xf5z\xdd\x99;\
+\xf7vWWW\x9d\xb0\xcf>\xccG\x22\x88\xf5\x02\x92\
+k\xe4\xa7\xcfX\xcf\xaf\xfb\xce|\xe2}\x9co\x19\x88\
+J\xb5\xf6\xd3\x97|\xc0\xe4\xc8b\x85i\xfc\x08\x14\xd1\
+M\x00\xd5d\xc4\x04\xd5\xd6\x05j!\xb5g\xcd}\x86\
+\xe2\xba\xa0v+#\xe4\xedg\xc8\xfcSbA\x89\x01\
+\x01\x01Q\x1b\x9dQ\xc0\x86E`\x89\xf9\xc0\xb8)P\
+\x07u\x17&\x83\x8f\x03\x94\xf1_G\xe4\xda2\x98\x0b\
+\x12u\xabE;=b\x0a\xa5\x0bG\x95\xebc!\xa3\
+\x06\x11\xe6\x08\xe7\x8bz\xf0\xc6\x86\x22\x12Mf\x9d\xc0\
+\x095|\xcck\x02:\x04\x940\x5cY\xd0YH1\
+\xf4\xd8\x00\x10\xa5\x81\xe1\xa2\x0d\x0aub\xc4||\x5c\
+\xd9@X\xe09?\x9eW\xa8wP\xef\xa9u\x87\xaa\
+\xae\x8d\xba9#9\x00\xcd\x90\x0c9\x1f'm .\
+\xc6G{\x22(\xe7P\x09\xd1 `ce\xbeP\xc2\
+\x81\x0at\xcd\x94a\x1d<!\x22\xd7\xe8\xb2\xa1\xc8p\
+\xf0\xf6yk\x84\xbb\xbdFv\x18]\xe4J*\xc5~\
+\xffQq\x96X\x1a5\x8fP<c[4\xcbX\xff\
+\xd6\x10\xfe\xfe\xad\x01\x0b\xe4y\xd0\xbc\x1c\xf0R\x16\x89\
+\xf3\x12\x0ej\xb6\xdf*\xca*\x1b\x15\xea\xd0\xaamE\
+4\xaa\xff\xb1!\x97\x92 \xa6EMh\xbf\xa5\xa1\xe8\
+\x03N\x9b)D\x9b\x14\xe8j\xe77\xc4y\x9e\x02\x12\
+\xb3\xab\xfd\x9f\x98\x09\xed\xee\x069^&R\xf7\xb8!\
+\xbc\xbe\xde\x90k\xb4\xa1\x10{\x9bF\x02\xe38\xf2\xaa\
+\xa5\xed~\x18p\x85\x22\xf1\xcf\xe7\x0cj\xfb\x9b\x80_\
+\xab\x04\xe0\xf8,\xa6\xd4\xdf\xd7\xdf\xdb\xdf\x9b\xaf\x13\x15\
+\x7f\x1c\xef\xf6\xa5\xf6\xe5\xf6\xe5\xf0\xf3\x9d\x0d\xe1\xb8\xbc\
+!\x1c\x7fi(\xdat\xa1U\xf0\x8c!\x8bo\xba\x98\
+\xe2\x9d\x01wISg\xcd\x82\xd1\x01\xb5\x7f\xaa\xa1X\
+_\xa16\xd2]\x83y\xcf\xfe\xb4\x7f\xaa\x99m\x1eS\
+\x06_*\xe4^2\xc0\xf7\xe2H\xca\x80\xf6vz\xa2\
+\xe6\xb7\x9b\x1b\x8a.A2\xc4\xc8tz@L%\x5c\
+\x04*\xda;\x0dEf\x11\x15h\xda3\xa9\x1d\x1bv\
+\xcb\xe8\xf3\x86\x19K\xca\xc8tN<1\xf1\xf8\xc4\xe3\
+q\xfdJ\x81\xba\x9f\x18r\x09H\xb0f\x92\xd8\xa1\x1c\
+\xf1\xe0n\xedh\x22\x91\xfd\x9b\xfa\x99\xad\x8d\xdfpR\
+\xa2\x04\xe3h\xa1\x06\xef\x01Z\xda\xf2R\xfaA\xfbJ\
+(\xb9\xcf\x0c\xff\x1c\xc2\xf8\x8d?5\xfe\xd7\xf1\xb0\xce\
+u\x7f\x0f\xf8G\xd6 \xe8\xdfc\xc8\x01*\xc4\xca&\
+\x161D\x0d\x91\xa4\x19p\x8e\x025\xdfR\xd7\x02\xa8\
+\xdc8\xb4\x0a|\x8c\xed\x12\x91\xc7[m\xc7\xa8Q\xef\
+f2\xe4~\xd2^z\xa0@\x00?\xef\xb6\xec\xb6\xe8\
+\xc2\xba\xd9\x8dw\xa3n\x94\xc5?c\xa6\xf8\xa6Bl\
+\xda\xf2\x9b\xc1a\xeco\x0e\xb8\xa9p\xb8\xe5p\x0e\xb3\
+\x06\xbcI\x01\xf6/\xeby\x08\xcf\xdf\x94\xa5\x03\xde\x91\
+\xef\x9f\x07\x86T\x12\xd3\x7f\xc8\x10\xde\xbfOD*)\
+\xb2\xe7\xed\xc8\x80#r\xc0\x9d\xf3\xf56\x98\xdf6\x14\
+\xeb\xba1\x9d\x1e\x96\x18\xa3i\xab\xecg(\xec\x1d\x95\
+*y\x80@\x81I\xef6DI\x9d\xd6E\xb7\xbb$\
+\x1a\xe8\xfb\x89\xd6//1R\x80\xd4\x19<*\x11$\
+ O\xbb\xd1\xb1y\xa3<\xb3\xadW\xbb\xd9ze\xb3\
+\xc5\xe6\x0bTt\x02S\x9eh`=}\xc9P\x88\xd0\
+\xca\x0e\x8b%\x04G\xe7\x80\x80S\xda\xaf\x8a\xc8\x1a;\
+t\xe3\x9a\xd3P8\xd4\xb2[\x22\xf3\xc1\xec\xc0\xe5\x0d\
+\x05c\x02J\xf9\xe9\x11i\x7f[\xa2(\x89C#\x08\
+\xc7E\x8eg{\x88\xa1\xd0L`\xbe\xc2\xcc#p\xa2\
+}\xd5\xd7'\xf6y\xd6\x03\xd5\xc4\xbb\x83\xae}3\x06\
+\xa4\x96\xc9]\x04\xfc\xfeb/!\x16\xac\xf6\x8a\xae\xa5\
+\x82\x1d\x89\xdd\xd5U\x8c_\xfc\x13\x1cI\x1cD\x18 \
+\xa8\xdfS\xfa\x87}\xcb\xf7\xb2\xbfW\x89\x0f\xbf.\xc4\
+\x00\x19\x87\x9a\xd9\x88?\x83\xa3\x8c\xa3\x0d\xa3A\x9aM\
+3\xb4\x99\x86y\xc9\xfa\xc9\xf9\xa2\x85\x05\xb5\x1e\xfb\x80\
+\xeb\xae\xda\xffa'x\x1bg\xc6\x09\x7f\x80\xc4\xee$\
+\x22u^*\x8b\xea?%5\x5c'\x81\x89Z\x93\x8d\
+\xf1&\xe0\x82\xb85\xed{\xf99\xdf\x8b\xdd\xc8}\x87\
+q\x8a&\x05\xf6$\xf6\x15\x8e<\x81\x05\xba-\xfc\xcd\
+P\x88Lc7s]\x8c+\xe3\xc6yQ\x8a\xc0\xe7\
+\xd6\x01\x0f\x02\x00$\xaa\xf1o\xf0'H\xccr\x1f\xf8\
+{\xee\x13v\x15\xe7\xa5q\x1d\xd7\xe9$\x07\xafI\x11\
+\x881Q\xc9cd\x89\x89\x88\x83\xc4\x0d\xc41\xc61\
+\xc4@x[\x94E\xcb\x7f\xc7\x84 b\xc4\xfb\x98\xe8\
+8Z8xU\xc6\xdak\xf5\x11-\xc3!\xa3v\x16\
+\xaa,\x116\xce\x93\x89\xcc\xf91\x90\xdc\xf0Z\xac\x8d\
+\x09\xc3\x04`\x02\xb2\x11\x12Y\xa4-V=q\xf9\xfc\
+\x5c\xc3\x9c\xce#;\xe6\xe9\xbc\xd1,P\x8d\xbc\x8bZ\
+\xe1\x98\xf2\xa0\x12\x01d\x5c\xf8{\x8er\xd0\xbd\xbd\x12\
+\x91\xbc\xcc8H\x0e\x14\xb5\xf6\x8b\x8b\xd9\xa1\x9a?\x1f\
+\xf7e\xe5@\x8a\x9a\xee\x99T\x1c\x1f2\xadd\xa8q\
+\xf4*qH\x9f\x0f,|\xafz\xd7\x84\x94y}i\
+\xfa\xae\x09\x03\xb5]\xabW\xa5\x1cu\x1fz\xbe\x8fq\
+a^A\xb1\x22\xa2\xbe\x9a\x98)d\xa0\x09\xc8 v\
+\x83\xc3QiH8\xc3\xa0\x16\xc1Z@\xed\x8f\x18\x8f\
+\xccDI\xd7QE\x1e\x87{\xd4Ns\xaaDH~\
+\xa163z\xed\x81\xb2\xba\xc6\x8b\x88\x1e\xd7\x99\xefK\
+\xd2z\x0b\xebS\x00\x00 \x00IDATD\xa0K\
+C-z\xc9\xe7T\x81\x176rj\xdd\x5c\x5c\x06\xad\
+\x03\x0c]\xc6\x97\xefc\x03 \xb2\x8aF\x00\xff0\x00\
+$\xb6\xe6\x8c\x076DD\xff\xbe\x92D\xc2|\xe1\xe3\
+yT\x04\xd5\xdb\xdc\x89\xf2\x08\xd5\xafy\xd2P\x18\xe0\
+\xdcG\xd6\x03\x9e+\x9eK\x22\xf7Z_\xa0\xbczm\
+\x9d\x9e36.(\xa2\xfe\xfc\xb1\xa0\x1f\x17\xe1\x06\xd8\
+\x0c\xed\x01YpY\xb0e\xb0\xd1\x1f\x98\xc0\x8f\xcf\x13\
+\x98H\x94\x920\x9f\xb9?P\xf8U\x9b\x87\xca\xbe\x7f\
+\x1f\xed.\x09\x10h\x9d\xf1q\xa3$\x84\xf3Q\xad#\
+\x94@D\xba<\xe3\xa4\xee\x09a\x1bN\xb5\x9fr\xa8\
+\x5cE\x9f\xf6\x88f\x90\x07\xc3\xa4\xfbp\xb7S\xf7\xe1\
+\xa2\xbb\xc0S\x86\xc2\xe1\xc7\x01\x82\xa2-\xb5v\xa7\x88\
+\x9b\xa8\xe1\x85\xd9phn\x91\xa3t\x89(\xfd\xb6}\
+\xff\xbc\xa8eS\x0d\xe0\xb0\xa7\xa1\xa8E\xa5M\xa26\
+F\xcb\xa3\xf6\xdf\x17\xf3\xe6\xd2\xa2{\xc4<\x06\x05 \
+\xe6-\x1c(\xda\xd8\xbe-\x95\x9c\x85\xbb\x13\x19\x13\xa3\
+\xd5\x0c\xe1\xf8'C\xa4\xa4\xbf\x1a)\xe93\x19\xb2\xe1\
+>\xba\xceP\x18H2\xc48\xcf\xd8\x86\xf6\x9e\xc2\x00\
+C\x9b\x02m\x1c{\x9a\xa7\xc8\xc0\xbbN\xcf\xc3\x83\x85\
+*\xfa\x15\x01?T&\xe9\x82\x9c\x91\xed\xbfa\x88\xa5\
+$\x019\x80\xe7\x81S\xed?\xed\x0f\xda\xcb\xdb\xcb\x0b\
+\xe6\x8a\x1c\xbf\xfedC.\x81\xf0\xc0\xb2\x02\x1f1\x00\
+\xb0\xad\xe6\xfd\xf12\xc4\xcfP\xcd\xe6\x15E\x09\x1a\xb5\
+\xa0\x04bd \x0d\xd7H$\x0c\x15q\x95$8\x13\
+\xed#\x12\x01&\xe0\x87a\x86\x96\xc2\x0e\x86\xac\xc9A\
+f\xde\x1d\x07J3\xe8\xee\x00\xe5V\x81J\xcf\xf4\xb3\
+~\xc28@$\x12\x86\x0e\xfb?\xda\x15b\x04\xb0_\
+\xb6;\x1b\xf2y\xa2\xad\x80\xe3\xe3\x01E\xcd\xcfn\x95\
+n\xe5n\xe5\x18\xa89\xb696\xcc\x8f\xdb\x0dQ\xf4\
+\xf1<\x13}\x1c\xfbd\x84\x05\xa8\xa2\xfa\xbe\x85\x01,\
+\x10\xc0\xfe\x1d\x1f\x8f`_\xf57\x1a\xf2\xe7\xe2\xb82\
+\xef(a\xe8\xcf6\x84\xe35\xfd\xd5\xfd\xd59@7\
+\xbe[@p\xf4\xfa\xf5\x03l?6\x82\xb3\x89 \xfe\
+\xc4\x90\xdb%\x8e\x1fb\x08\xcb\xcf\xbb\x0d\xc1N|r\
+\xe2\xaf\x13\x7f-T\xd2\xe9\xa6\xa2\x80\x08\xed\xc6\x9c\xf1\
+\x80X\xa9\x98\x090\x86\x9c\xd2N\xa9\x0f\xdd=\x14\x88\
+\xe8\xee\xee\xfe\xd0\xfd!g\x9aM\xd2\xcfD\xfd\x5c\xd3\
+@\xd4\xf0\x98\x8eyV\xe2\xc3\x7f/\xc4\x0d\xc5\xe0\x8a\
+\x8c\x9aoi=\xfe\x8a\x0c\xe3\x07\xf2|oo4\x88\
+\xb9\x12\xec\xcavcC\xf8\xfe}\x02\xf6\xce\x14\xf7a\
+e\x83\xce\xf3\xd1\x82\xa1i\xcf\xd5\xc1E)\x1f\x193\
+Q\xe4\xbd\x8b\x0d\xea\xfa\xaa\xfdE\x94s\xd8\xc8P\xb4\
+\xe1U\xc9U\xec\xd2`L\xa3/\x18\xc2\xf15\x93%\
+\xcc\xa5080\xed\xe1\x86\xacu\x85(\xa1?\xf7\xec\
+W\x88\xdf*!\x84\xa8g\xfb\x1eC\xee\xee0<=\
+\xfc}x\xbaX\xf7p\x00e/\xc2\xa4\x89\xcf\xd3\x95\
+a\xfe\xeei(\xb4*\xd4\xee/\x86\xf7\x1e*\xda3\
+\xc2hBtQTv\xba\x908s\x0b{\x82\x0c\xba\
+\xec\x17o\xbf\xc6\xfd\xa0\x84\x8f\xc06\xed\xfa\x08 \xd0\
+\x15\x86\x1a~\x18F\x9a\xb7\x1eHQ\x1bPj\xf8\xc7\
+n\x0d\xab\xc3\xad\x85\xda\xbc\xeeg\xb8\xbbi\xdfY6\
+%\xb6\xfc\xba\xe4 \xb9}D\x97\x1d\x1cC\xec/\xfc\
+\x02j\xc6\x15\x88\xa7\xcd\xa7\xfb\x010sYo\xf9|\
+uS\x1a;\x22\x22\xdb\x1d\x94^\xc3\xc8\xa3$N\xcc\
+J\xef~Rk@\x91\x18AL\x10\xcd\x88\xc3\x0dE\
+\x02\x8a\x00\x0e\xe2\xcah\x04\xd0}\x80\xc0\xbb\x9ewO\
+\xfc\x91\xa8\x10\xe3\xc4\x1dGj\xf5k\xf1A\x98y\x04\
+lH\x10\xe1\x10S\x1a\xa0R\xc0\x19D\xee\xf8\x87\xc3\
+\x8a_F\xc2\xb6\x16\x9f~\xc0\xb5\xca\xd2yr$\xa0\
+JB\x08\xc6\x04\x81T\x02\x95d\xf0k*>\x8e=\
+\xa5\x1dt\x03\x802\x8f\x9d^\x97n#\xde,\xc6i\
+\x0cK\xfc\xb5\xb0\xcba\x0e\xc0@\xc5_D<\x9f\xe7\
+\x83\xef\xe1\xfc\xeb\x12\x08\x02\x00\xd8}$$\xabR\x0c\
+\xd7,\xe0{8\xdf\xba\x14B\xf3z<\xf6-\x7f_\
+\xe1\xb8\x9b\xfb\xb8\xb8\x22R\xebdM\x00\xcf`\xe3\xd0\
+\xd6\x19b6\xdcYb\x07\xfa\xbc `\xf8r\x828\
+Ru-8\x99\xc2:\xa3\xc5\xe7\xe3h\xf2>\x1eP\
+2sd \xa0\x8e#vE\xdfy\x0c\xff:\x80A\
+f\xac\xae\xd1'\xc3\x88\x03S\xab`N\xd6\x16\x90\xd7\
+\xaf\xcb\xa1\xad3\x0bYE\x9c\x8c\xf5\xf4\xb5\xf0|\x1f\
+\xd7M\xa0\x84q'\xe3K\xe0\x03\xb1\xbd\xb7)`B\
+\xc0\x80\x1akJ:\x18'\xc6\x8d\xef[D\x91S-\
+\xc8\x1eH \xe2\xa8\x0c\xb4))D-\x85\xba\xcd\x22\
+%!\x95#\xe95sh\x00\xcc\xa4\x85\x91y\x01E\
+\xec\x1f\x12/d\xfc\xb8\x1f\xcc\x93\x9a\x89Q\xd7\xf6\xe7\
+\xcc}z\xcdx\xd6G\xde\xc7\xbc\x85\x99\xc11S\x95\
+\xd2\xbc\xc3\xc1G\xe5\x9f\xf9\xc5u\xf3~\x8dk\xbbV\
+2\x0c\xdcq>W\x06\xaf\xfa;\xfbF\xc6FCw\
+\x09jAa\x0a\x90!`\xbef&Kz~\x10\xd7\
+\xa2\xb6\x9cR\x17\xc4lh\xdbG\x9fi\x16z\xd5\xd8\
+\xd3\xfe\x8b\xdao\xcf\xe0\x89\x1a\xe6\x81\x06E\xa4\xfd\xef\
+\xe8\xb3\x0ee\x95\xc0\x1e\x0b\x1d\x91s\x22\xa2\x88\x1a\xd1\
+\x07\x98\x00\x1d\x1b\x07\xdd\x07X\xd80DY\xe0\x99\xaf\
+<\xf7l\x1c0\x16T\xeb\xea\xa2\x8d\x88n\xaa\xa6\x14\
+\xb1?\x8fxrT\xed\x1f\x01\x0b\x16\xd8\xd8\xae\xc8\xda\
+b\xddn\x90j\xf1\xb9\xc5\xc6ED\x98\xf6\x88\xbf7\
+\xe4\x0d\x98\x0d\xd33\xdc\xb4\xf5#P\xb2\x8e!\x8b\xdf\
+5\xb7\x19\x8a\x0d\x95#5[D\xcc1\xa8\xd8\x909\
+*3\xec\x99\x8b'\xa5\xbeN\xa6\x08\xad\x01\xfa\x19\xcb\
+\xd0!3\xdc.\x93(\xe7\x88\xf2\x91\xe9\x85\x82\x1d\xee\
+\xd5\xf2\xf1~-\x19\xc9\xcby\xfe\x11\x18\x5cs,\x06\
+<\x5c\x1b\x05&\x8c\x0c\x0dw\x1c\xe4`\xf5\xf1\x9f\x0c\
+\x98\x15e <\xad~\xdfs\xa8\x96\xf8\x80\x223)\
+\x15v\x0c\x182U\xc3\xce\x86\xdc\xad&\xce\xdf\x1f\xa8\
+F\xff\x09\x95$\xbd;\x8bMQS;:\xdd\x10\x8e\
+\x8b\x1a\xc2\xcf\xef2\x14m=\xc9\xf0(\xe3\xe6\xa2R\
+\xf4og]$\x00E\xc0\x90\xda\x5c\x0cK[-\xd7\
+/\xba\xe9\xd8j`\x01\x15\xdbg\xb7T\x06\xfc=E\
+\xed\xba\xd6\x012\xa0\xec_\xa3\xc3F\x87\x8f\x0eS&\
+<\xbc\x7f4\xbf\xa1\xa0\xf8\xfeN\x8e\xbfjsa\x14\
+\xf4\xdb\x1a\xc22\xfb+C\x16\x17l\xd75\xe4\x0cX\
+s\x85\xa1\xd8\x8f\x08PX`\xe2\x8a\xec\xa0\xf7\x8b\x1a\
+\x8a\x0c\xbd2\xdf\xb4-#\xe3\x18\xf3\xca\x17E\xcd\x8f\
+\xe4\xd8?\x91\x02Jau\x8b\xa2L\x04><\x10K\
+\x00W]0<0\xc5:#1/\xa8\xcd\x9e\xd9C\
+\x15]\x06\x13\x19[/\xd1a}\xc3~ \x10\x85x\
+\x22\xfd\xc9\x09\x5cI\xc3\x80\x92\x0f/y\xd2\xfa\xe8\xf7\
+_\xfb[\xbb\x87!;V\xed#\x86\x1c\x90\x80zK\
+I\xcd\xb0\xed\xb0\xcd\x10\x9e\x8b\xfe\x03\x86b\xbc\xa4\xf9\
+\xd2,\x9fJ\xc8\x9a\x1b\x92hj\xbfp\xbfH\xbfH\
+\xa4\xcc\x07\xc4\x0c\xf4#Qk\xe3\xf1\xe6\xb1\xe61\x89\
+9\x86\xf5o\xfc\x9b\x86B\xa3H\xf3\xc9\x03vdv\
+^\xd7\xba\xb8\xc6\xb0\xda\xb0\xda\xd8\xd8\xb4\x8b\xa6]<\
+\xed\xe2\x82QD7\xa0\x8d\x222s\x86\x00&\x86?\
+v\x08\xe2\xa1\xb41\xc4\xbe#\xc0\xfb\x5c\xa2\x86\xb7\xcb\
+\x1b\x8a\xcc\x9d\xd6\x8d\xfe\xbd\x06=\xef\xfb\xe5R\xb7\xd1\
+\xaf\x02n)\xe6\xd1\x22\x01\x8b\xca@\xff\xb3\x12Gs\
+\xe5n\x02P\xc3\xfb\xbb\x02\xee,(\xe8\xd87\xa2\x10\
+\xb3>\xc6\xef\xddB\xfb\xf6\xdb\xb2C9l\x1e\xf0\x9e\
+\xa2]\xa2\x18\x08\xdd\xf1\x86b}T\x8d\xbc\x97\x96Q\
+\x02G\x82I\x01\xea\xf6jC.\xfd\xe9\x7f\xdb\xdf\xde\
+\x87\xe7\xb4_R\x9a\x0aZ\xcf\xfb\x8f\x19b)\xcf\x09\
+&\x12\xeamf\x15@\xee\xbfj\x08?\x7f\xc1Ph\
+qH\xd3`X\xccP0\x05\x09\x0cc7\xe00I\
+\xc5\xdezqX7\x8e\xd1\xa1\x86\x22\xb1e]*\xde\
+\xa7v\xa0\xc6\x0c\xb8\xd4 \xe6\xd6qq>\x06\xe4\xee\
+,8\x98&Ih\xa2\x84^\xda\x86#\x0b\xa3\xd5\xdc\
+\xac\xbb\x0b\xa6!\x89+\x95 z\xb7\x152\xfe\x88\x87\
+\xbf\xdfP\x04\xfc\xf9\x5c4\x92H\x88 :\xaa\xc4J\
+\xd8-6\x8f\x22\x96\x88\xfav\xca\x8c\xeea(\xda%\
+\xb2n\x13 \x11C\xd0\xdb\xfc\x11\xf0\xa1\xa6\x9e\xc0\x04\
+\xf6(~\x10\xb5\xe7\x04\x10h\xabI-\xfa9\x11\x99\
+\xa2\xcf~M[ii\xb0\x10\xb0#\xd0\xca8\xb8}\
+\xc4\xfa\x8c\xfdB\xa9&\x0e\xb2\xf6w\x18#.V\x0b\
+\xf3\x11;\x1eG\x19\x07\x90\xe7\xfa\x97\x119\xe1\x8a\xfd\
+\xa6\x84\x8f\x9f/\xf6+]\x1f$\xc6\xeb\x8e3L\x06\
+\x1cl\xba\x06\xf1\xbd\x8c\x03\x0e~\xad50Y\x17\x00\
+\x02\x03\xf8\x07d\xfea& \xcaGi+\xa5C0\
+\xd5\xc8\xe0s>8\xe48\xc4\xf8y\x042j\x87\x9c\
+\x12s\x9e'\xae\x87\xc0\x02\xdf\xcf<!\xd3\x8f]\x8c\
+?\x88\xdd\xc0x\xf1\xb9\x04\x988\xf2{\xde\x8f\x9f\xc9\
+\xb80\x1e\xfc\x1e\x07\x9f\xe7\x85\x00\x01\xe7_w\xbd\xe2\
+\xfc4\x9e\xe3\xd3\xd5\x1a/V8\xfc<\xc8\x1c\x99\xf8\
+\xa8\xf0\xa2\x9e\xcf\x82K\x04\x09G\x09G\x9d\x8c\xff|\
+\x89\xaa4\x83\xaa>\x8e]U\xd3\x8e\xe1\xef%\x038\
+\xbc|\x1e\x8e\x18\x8e\xa0\x1cC#\x96Gj\xf9Jr\
+ p<p\x9c\xab\xf3t\xf5|\x0cm\x8ePr\xb2\
+\xd8_r\xf88_&l5Ai\xdf\xe2\x8e\x14\x03\
+^3\x05\xb8\xa18\xbc\x5c\x0f\x8e~\xfd\xbd8\xd8d\
+x)5\xe0\x01\x87\xfa\xbf\x90\x0c\x1f>\x8fc]b\
+\xc1Qm\xb6\xfc\xf78\xc8u \x85\xf1\x80\xb2\xcf\xfb\
+\xf8\x1c\xee\x8f\x22\xad\xe1|\xd2k\xde\xcf}XW\x91\
+\xcbet\xfe\xdco\xee?\xc7\x5c\xb3\x9f\x8e\xbc\xe6\xf7\
+Lx\x02\x04\xfc\x9e\xf9@\x00\xa5>\x92\xf9G=v\
+\x0d\x8d\x1f\x81\x82,Z\x92>\x1f\xc7\x13\x83\x92\x0d\x04\
+m\x00\xda&B5\xc4\x90\x92H\x93g\x18\xfe\xa0H\
+*\x0b`\xdd\xf5\x81q\xe0\xb9\xa9\xda\xcb9\xc5\x87\x05\
+\x08G\x9a\xf9\xc8\xdfi^y?\xdaZ\xa4Q\x99\x1e\
+\x17\x09C\xd5\x9e\xf6i\x12q\xf1\x0c\xb0(\xc4\x1e(\
+a\xa1\xa5\xef2\xf3\x82\xe7F\xcf\x83wE`c\xa8\
+j\xd8\xa2\xe37{!\xaa\xa4\x8d\x90vh\xee\xf8S\
+\xaa#*\xaa\x07\xa2\xc8<\xe0\x982\xcf\x090\xb1 \
+\x13hQ\xdb9Ds\xdc\xc0\xe5\xfc\x89\x04\xb3`W\
+%9\xd44\xe28\xd1\x1e\xd23\xa5\xcc\x1f\xc6\x81H\
+?5\x92\xdap\xa0p{\xdb'\xd6A\xc4!\xa1\xf8\
+q\xff\xa4\x9d\xe0m\xc5\x10UT\xbfv\x18,\xed\xc1\
+\x86\x1c\xd0\xa1\x8d\x9a)\x00\x98\x06\xc0\xd8\xf7\x94q`\
+\x1d\x14S(\xf6\xa1\xbf.\xbc\x7f\xd5v\x95v\xd5\xd8\
+\x8f\xfd\xd5\xd8\x8f\xfd\x87\x86\xe8(-\x15\x1d\xa5\x9f6\
+7\x9a\x01\xc5\xfd\xf1\x8c\xbf\xad\xb7+\x17\x19Z\x22\xe2\
+\xa2\x5c\xf6+\x1br\x9b1s\x87L$\x8c\xe7\x15u\
+{\x7f~\xb9\xdf\xea\x9eB\xc6\xd83@d\xe6\xa2\x80\
+\x84\x02H]\xa6\xfa\xb7\x1f4\xe4\x80Z\xa4\xe6\xffV\
+\x19\xfb{\xf3<\xf0\x08\xbf\x0258N0S\xbc6\
+S\xea\xd5\xb4M\xa3t \x16\xc0\x98!\xb4R\xc0\xca\
+\xc5zi\xf7wGu\xcf\xd8\xa1`\xec`\xc0\xd8v\
+\xfc\xf7\xdc]\xa3\xff\xa8!\xafK\xb1\xfd\x9ae6\xdf\
+\x1d\xb0Q\xe1\xa8\xcbp\xebw6dG\xb6\xbd\xdf\x90\
+\xe7a\xbb\xa1!\x8b\x04\x0d\xd7\xa5\x8cOl\x8f\xf6z\
+f|\xb4\xef\x0d\xd8\x22gdc&\xe8\x82\x22Pe\
+%(Wd\xea|\xbf\x8e\xa1(-8J\xdd4\xd6\
+\x1b\xd6\x1f\xd6/\x02\x83\x88I~F\x1a\x06\x12\xef\xf2\
+\xee\x03O\x1b\x0af\x01\x22_\xab%\x07\x15\x8d\x07\xa7\
+B\xd3\xc6\x12\xc7\xf6(C\x0e\x0c!\xb6\x86\xe3\xe5\xed\
+\xef\xe60\x14\xedOE\x85\xc4\x11\xa0\x1f;\x99L2\
+\xec\xec\xcf\xfd\xff\x19\xc2\xf1\x05C\xeejB\xc6\x14\xc6\
+\x0e\x01&\xba\xd9\x0cW\x192\xa3\xc6\xdb[J\x1cp\
+\x98\x18\xa6\x0d\xd3\x0a\xed\x0f\x95H\x8c\x1d\x161\xd6\xad\
+`\x08\xef\x1f\xef\xa7\xf4S23e\xb4\xe2h\x85\xd1\
+\x0aY\xcc\x12Gc\xf4\xa1\x80m\x14h\x0b\x8e`\xfb\
+1C8nk\xc8\x0c\xad\xa2;Q\xb4[^\xdf\xd6\
+\x10\x1e\x9f\xcd\x0cy\x9di\xfee(\x1cOQ\xd5\x9d\
+\xe9\xc2sA@\x8cuW\xfb\xb1\x8bB\xa29$\x11\
+\xc7aqC\xa1\x9eN\xe0\xc0\xf2U\xf7(\xe3\x7fa\
+\x11\xd0\xba$\xe0\xe2\x82jM\x9b;(\xf72\xec\xbd\
++\xc8\x06\x86\xdc%\xc0\xc5 \x09\x94k\x9f\x89\xed>\
+W\xcc\x8eR\xff}C\xae\xf9\xee?n\xc8\xa2_^\
+\xf3Mi\x8f\x02\xc8\xfc\xf3\xeb\x83\xc9\xa2\xfb\xda\xfe;\
+\xe0\x85XZ\x16\xed\x83\xfe\x0cC8\xeea\xc8\x1a \
+<\xa7\x88\xfa\xb9\x08\x1e\x8c+\x18m\xec#Z'x\
+\xde\x83\xdb\x9aJ%vV\xe6\x17\x11P\x02\x9b\x04l\
+\xd1\x22\xa2-#\x8c\x03\xb5U$\xf0\xca|\xf3\xf5\xda\
+2\xcb\x87\xa9\xcb\x8b1\x9e\xf6\x0f\xd8O\x01\xbaU\x94\
+\xf1\xbd\xa3X\x97an}\xd0P0\x0f\xa1\x22\xab\xf6\
+\xdc\xfb\xdd\xe3\xf0\x04\xab\xbe\x99;\xd9\xb3\xc3\xa1\x85\x9d\
+\xce~\x8cH*\x01v\xec/\x05\x0e\xdb\x8b\xac\x81j\
+\x18\xd7\x8d\xfa\x8d\xfb\x8d\xd4\xdd\xe6\xd39cN\x9bC\
+_\xe7q\x90\xc8\x98\x12(W\xc0\xc7\x03*$P\xa8\
+\xa1\x17\xf3\xc0\xedI\x05f\xdc\xa1F\xeb\x081<1\
+\x94\xdc\xfe%\xb1\x81\xddG\xbb<\xd97\xbe\xdfK\xdc\
+\x91\xc0\x02v\xc2p\xb4!\x1c\xe7\x19\xe6\x1e\xe6.\xba\
+< \x0aw\xb8\xb4\x10\x98\x8f\xd8i\xd8C<w8\
+\x8a\xb4\xed\x84\xf1C`\x81y\x03\xe3J\xe3\xe4\xe2\xe4\
+h*\xc0\xf4\xc4\xb1\xc6\xf1V\x00\xd9)\xfb\x04\x06x\
+_M\xf5\xaf\x1dZ\xecd\xec;\xfe\x910\x82\x01\x86\
+\xddV\xd9\xc5\x94\xf6x\xe0\xa4\xce\x80\xf3\xba\xd6\x08\xe0\
+\xfb\x19'^\x13(\xe0\xf3\x1f\x1e\x1e\x19\x92\x96\xd4\xfd\
+1a\x85=\xcey\xf0\x8f\x8c>\x7f_\xb7\x11d<\
+\xf8\x1e\x02%8\xec\xdc'\xfcL\xfcF\x98z\x12\xf7\
+\xf4\xf3\xc7\x9f$\xc0\xc5\xb83\xde\xd5q\xdco8\x8e\
+5\x0f\x1c_\x88\x03\xc4\x02?w\x93\x1eT\x1c\xbb\x9a\
+\xb2Of\x10\x07\x87H\xbfQ5\xe7-\x1c\x15nd\
+\x1d\x01b\xa3\xe2_\x9d\x09\xe6\x1f\xefc\x22P[\x03\
+U\xff\xdd\xaa\xe9\xe7\xfckG\x18\x87&g\xc2\x93#\
+L\xa4\x9b\xcc+\x11^\x1c\xf8\xff\xd5oq\x9aGj\
+\xd2\xfb`\x140\xa1\xb9\xc18\x18\xfc\x9c\xeb\x9cW\x8e\
+ \xe7E\x00F\x8e\xb6S\xc9\xa1\x02\xd5\x81\x1a\xde\x07\
+\xf5\x9d\x8d\x83\x05\xab\x12m\xf4\x12\x02\x1c\x17\x1c`\x1c\
+\xd2\xda\xf1f\xdcV\xac4\x03\x10\x05$0\xb1\x92~\
+O\xe0\x88\xda\xf9\xe5U\xe3\xbez\xd5\x8e\x8fvyP\
+\xa09\x7f\x0c\x0d\xce\xbf\x9e_\x99\x91\x90\x98\x1dsL\
+r$\xa3\xcf\xdfs\xbfabdm\x8b\xf4y\xdc\x9f\
+\xbat\xa4n\xb7\xc7\x91\xfb\xc7\xbc\xe0\xef\xca\xb6\x9a\xab\
+\xcdX3\xe4\x0b\x0d\xea\xbal0\xfbF\xe4\x9a9\x16\
+\x5c\xee\x1f\x11q\x02B\xa8\xa9\x8b\x8a\x88\xe1\xe3]\x06\
+\xd8\xf0\xc8\xe0\xa0.kbJ\xdf+D\xef\xb8\x0fD\
+<\xb9>\xfa\xe1\x92\xb9\xa2\x9d\x0e\xd4Z\xdaN\xc1`\
+\x90A\xe5ba\x88\xba\xd0\x96O\x1b\x89G\xec\xa9i\
+\xc7\xd0b\xc1\x84\xc2\xcb<QI\x85?W\xb3V\xed\
+%\xa1r\xca\xd1\xf3u\x0b\xb5\x5cD\x07QO\xa7O\
+.\xf7\x95\xc8,\x1b\x05\x0b8\xf7\x95\xef\x115\xce3\
+\x9bP\x16\x99Wh0\xe0P\xc9\xe1\xc7\xb0Bm\xbd\
+\xdd\xc4P\xa8\xd0+\xd3\xe4j\xfe\xd4\x96\xa3\xb9@\xa6\
+\xda\xda8\x85\xf5\xa6\xdd\xcb\x90\xc7\xbf]0e2\xe9\
+\xf2\xe1%.\x1bKc\xe1\xf9T+M\xa9F\xfb\x7f\
+\x86p<\xa0\xdd\xbf= S\xaf\x11\xc3\x83\xd9A?\
+\xf5\xe6o\x86p\x5c\xd7PP\x0f\xa5\x19\x80\xa1dZ\
+\xe0\xd1\xd1\xa7\x9f\xb1jE#u\xf6\xddE\xa0H\x01\
+\x05\xefK\xcc|\xa3m\x0e\x8c\x0fj6\x95Y\x81a\
+4\xba\xcf\x90K\x13\x5c4O\xf7\x81ZW\xaf\xa5\x95\
+8\x14\xd7\xd5.c(\xee;\xcf\xab2(\x1eh9\
+\xd5P\xccK{\xd7\xd69\xc3\xe4\xcf\xeb\xd6\xb1ct\
+R\xef\x7f\xb9\xa8\x05Vf\xa2\x7f\xd9\x10\xfe\xee\xd6\x80\
+[\x0aG~vC8\x1e\x13`\x14\xf3)\xa3\x99F\
+3\xe5Zx\xd7\x88\x80!B\x00c\xbf\xf4\xbd\xdeM\
+\x00&\x8e\x9e\xdfaA\xa9\xd3o\x924\x14\xc8\x14u\
+\xdf4\xc4\xe72\xb6kj?e\x08\xef\xfb\xa0!;\
+\xc6\xc3\xfd\x86\xf0\xf3\xeb\x0d\x99\x19C\xd7\x0b\x0f\xe0!\
+\x1ew\x87!\x9c\xff\xba\xa3uF\xeb\x14\x0c\x1a\xa8\xf6\
+\xa28\xf3|\xf6'\x1arm|\xff\x16C\xd8\xee\xb7\
+6d\xaa~\xd4J\xf8Mv\x08\xdb\xad\x0c\xd1\x10\x0e\
+\xc8\xa2\x8b\x9e!%\xb3\xa6\xfd\x1a\x91F\x02\xf3\xde\xcd\
+\xe1+\x86\xac\x0aM\xa6\xb4\xfd\x82!\x9c\xc7)\x860\
+^w\x18b\x9b\xba\x80\xa2\xb4N\x0e\x14\xed\x11\xb17\
+\xbc[\x83D\x9dL\xd1\xc14\x1d\xa8\x89\xc6\x10\xb4\x82\
+\x02+)\xf0\xc0\x82J^`\x16\x98\xf4\x9f\x89\xff\xd1\
+\x06n\xfc\xde\xf1\xfb\xc6\xef+J\x15\xf4\xbc\xc4\xd2\x87\
+\xc3\xd4Vp\x07\x89\xd9\xdd \xb1\xb4\xe3\xe3\xfb\xbf\x10\
+)\xc18\xd8\xcb\xab\x14\xe5\xcb)\xf3\xd9\xfd\xa8\xbb\xb2\
+\x0b\x0eK\xb7\xa9!;0\xed\xb1\x86\x82a\x05\xd3\x8c\
+\x92\x0b\xba\x9f\x10H\xc6\xe1V\x00\xdcK\x0dp\x8c\xd0\
+\x88Q\x9f\xf2~A\xeb\x17\x10\x8e\x07\x07\x1c\x94K\x09\
+\x86)\x013\x15\x813\x1cK\xa9\xb5Gu\xf9.;\
+8V\x88\x11K1\xe8k\xbfE@p\xe0\xfa\xd5\x03\
+\xcc\xe1]\xd6\xa0@\xc6\xa7r\x97\x87\xfe5CA\xd9\
+\xa6V\x1c\x8d\x09u9\xe8\x0f1\x14\x01,\x0cm\xec\
+.\x9e\x03\xb4t\xd8g)U\x22\xf0\xa4\xf5\x9c\xf5\xb0\
+\xffg\xea\xca\x10\xf6\x8a\x98\x88s\xb5{J^\xd5v\
+\xd1\xbb\xe3\xa8\xe4\xd1\xb59h\xd3{|*e\xf3}\
+R\xe3\x00#\x06-\x16\xef\xce\x22\x87\xdak\xc1\x11\xd7\
+SI\x15b\x92\xae\x09!G\xdf\xed\x0eQ\xe0]\xac\
+U\x9a3\x1ehPI\x0c\xa5\x12.\x9e\x0c\x83\xcb\xc2\
+$\x1fR@\xfb\xceTje\xd7\x11\xf9>\xfb\x17b\
+e\x88\xeb\xe28\xb1\xaf/\x13\xac\xcde\xa2\x18\xee\x9a\
+V\xdaEf\x9a\xf5\xbc\xffT\xffik+\xe8\x8e\xb6\
+\xecU\xdf\x97\xd0D\xd0\xb8\xbb\x06\x18\x01r\xc4w\xb1\
+\xbbH\xc4\xac\xaf\x80\xa7\xf6=Op@\xe9\xe6\xfe\x93\
+\x18Cl\x8f\x8cp]\xfb\x8e_\x82\xa6\x02\x22z\xea\
+z\xe1\x0e\x22\xf6\x04\xed_/4( \xb3\x7f\xa1n\
+\xbf\xba!\xdb\x17\xae^\x8fF\x00\xcc\x00\xf9[^\xd2\
+\xa0\x8c\xbf;\xd4\xd8\xa3\x04h\xc9\xa4\xd3\xde\x0f\xe6\x00\
+m~\xd9\x8f8_\x1c\x7fJ\x22a\x0eP\xa2A\xa9\
+\x00\x99y\x1c\xde\xcaQ\xf7\xef\xe5~\xd4L\xebZc\
+\x81\x80\x12\x09\x18\xbe\xa7v\xe4+\xea\xbfg\xf29\x8f\
+\xba\xb4\x96\xef\xcdZ\x0e\x7f\x8a\xf6!\xea\xfe\x040\xf0\
+G9\xc2X@\xcb\x00-\x1a\xcec\xb2\x00\x08\xe7\xc7\
+y\x90`VI\x95\xfb#\x04\x1c\xb0S\xf1\xe7\xf1G\
+\xeb\xd2\x0a\x98jJT\x8fGC\xe4\xd6\xc2Q\xe0\x0f\
+xpJ\xca\xf3\xdb\x8a\xdf\xe3\xf0\xe0\x88\xcd\x1c]\xa7\
+\xbc0\xe2\xb0\xebHF\xc7k\xb6\x89D0\xc0\x1c\xab\
+\x01\xf4\x8c\xba({30\x00p\xdc8\xdfY\xd3\xf9\
+\x0c\x0f\xa6\x9a\x94f=\xd5\xec\xf3\xfe\xda\xa1%\x82\x85\
+#\xc9\xe7p\x9d,\xf0,\xacL<\xae\x8f\xefg\x1c\
+\xe6H\x91\xdb\xe0\xac&\x87\xba\xd6:\xc0\x81\xc6\x91\xa8\
+\xfb\xdd\xcfR\x94R\xccR\xa8\xca\x92\x89\x87q\x013\
+\xa0\xee\x9a0\xcf$\x19p\xae\x1f\x878\xbf\x7f\xfa\x9a\
+k~\xceu\xe1\x181>\xfc\x1cC\x1d\xc7\x1f&\x05\
+\x8e=\x11O\x18\x01u-7\xe3\xc2\xfba\xa2p$\
+\xc0T1O<\xd3F\xdfr\x1cV\xce\x9b\xf1\x9a\xc3\
+\x903x>\x9e\x04\x9aXh\xf8;\xae\xbf\xd7\xfc\x9d\
+E\xe7\xc9x1\xdf\x09\x00\xf1@\xb10\xf0\xb9\x04\x8c\
+\xa8\xbdc#g\xc1\x15\xc5\xdc\x0dz9\xb8^\xbbE\
+[6\x9e\x0fm\xa4\x1e\xf8\xa1\xbf5\xfdr\xd9\x18\xa8\
+U\x86\xf2\x87\x98 \x99\xee\xf7Dd\xe6\x0e\x19\x156\
+X\x02\x0d\xa8\xdf\x12\x00 r\xaf\x05\xc6k\xdd\x15\xa8\
+\x88\xed\xc2>Z\xfc\x1d\x81!\x027l\x18d\xe6q\
+\xac\x09\xcc\xa1\xe2/\xea\xbao\x9c\x8c\x0f\x01C2\x1f\
+\x0f\xa6\x8d\x06\x11\xc1\xe1\xeb\x89\xba\xe9\x94\x7f\xe6\x0b\xf3\
+L\x9f\xef\xd40\x16J\x16rEHQ\xbd\xf56\xa6\
+\xcc\x0f\xadC\xde\xaf]\xa2P\xce\x84`\xa3\xa6\x96]\
+\xea\xd1\xde\xa6G\xb5\x9f\xc3n\x860=6j7\xb6\
+\xccn{k{K{kA\x81\x16\xc5\x19\xe6D\xf3\
+]C\xce\x946'\x1b\xb2\xa1\xe5\x0e\x1f5\x93\xb4m\
+b<f5L\xd7%\x22\xcdO\x021\x18\xd4\x88m\
+Y\x1f\xf9\x99\x8b\x8d\x0aGd\x03C\xf1}\x0aD\xa0\
+.\xed\x06\xb9\x1c?\xcf0Yf|%Q8\x8d\xda\
+\xb8n\xc0z\xc5}g\xde\xa3\xfa\x8bA\xaa\x0c\x87o\
+\x80\x1f\x1b;\xd4\x18+\xd6\x1c\xac?7w\x1bh\xe7\
+1\x14\x9a\x04v\xdf,\x00\xf6H\xc0\xd4<?b\xbb\
+\xbdYE\xc1\xdf\x22\xf6\xeb>&\xf6\xeb^$r\x9f\
+\xbc;\x82\x07\xc0\x98\xf7\x18jP7\xe7\x0e\x98\xab(\
+\xad\xc1\xb1Y \xaa\x85$&\xc3\xf6\xb9\x1dn\x5c\xfd\
+\xd7Uf\xe6\xba\x9c\xb9\xa5\x1f7\xaa\xf7\xa3\xd5\x0d\xe1\
+\xb8}\xc0\x0e\xf1\xe7\xd7\x8e\xae\xcd\xeb\x16\xed\xe7\xfc9\
+G\xa4\xec\xf80\x0b\x8e\x8f\x86\xcb\xa3\x16\xf0\x86j\xed\
+\xdd\x10\xb4\xce\x0c[\x1b\x0a1\xae\x8f'\xc3\xb5\xbf\xc8\
+P\x18\x9e\x12\xe9\x82\x993\xac\x1d`\x81\xab#\x0da\
+\xbc\xbfd(\x1c\xe47\x8b\x09\x01u\xd2\x1c.S\x0f\
+\xbf\xdc\x90_\xb3\x7f4\x7f0\x14\x94_\x89PB\x09\
+\x87\x22\xdfon\xc8\x94\xee\xd1\xd9\x86B\xad\x5c\x19i\
+k\xb2\x17\xdb\xec\xc9 wC\x8f\xfd\x84uZ\xfb<\
+\x99\xf0\xf6\x1cCQ\x9bo\x14\xf2\xbbr\xcd\xbd;N\
+\xf4)\xff\x9b!\x07\xb2\xfa\xbd\x0dE\x86\x13m\x081\
+\x18\xda\x07\x0c9\x03\xef\xa2\x9e\x18\xb2\x0a\xd08\xc3E\
+5\xea\x13\xfb\x18\xf2\xfaJ\x7f\xf6\xd1\x1a\xa35G\xe1\
+u\x7f\xaa!\x97\x80\xb5w\xa66\x93\x13\xe7\x19\xd4\xd5\
+ 8\xec\xfdR\x01a\xfd\xeb\x1e\x0b0G\xfb\xbb\x86\
+\xe80O\x98\xc3<~\xa1!\xfc\xfe\x01C\x0c\xe0\xc7\
+\xfd{b\x9b\x89m'\xac}\xdf\x1f\x0d\xe1\xf7\xef7\
+\x84\xd7\xef3\xe4R\x90\xe1Wj\xf7F\xb7\x14\x98d\
+\xd22\xf1\x92\x98K-\x87\x1f\xfe\xee\xea\x94\xe9\xa6\x8d\
+nl\xc7\x17\x1c\x9c\xee\xcc\x803\x92\xc3\xd2\xaf\x9e\xc4\
+=c\x00\x90\xee$hKX\xc1\xc8\xa6\x99\xc9\xe4\x89\
+\xa4_\xab\xe6\xdbJ\xe8\xc2\xf3>q\xbfAm\xd6\xec\
+\xef\xcfH\xed\x1b\xe9\x0b\x1e\x03B\x9f\xce\xe7\xe1\x01U\
+\xee\x07\xcf\x0d\xa5-Z\xd7(\x01\xf1\x9f\xb3^\x911\
+^\xd1\x10\x8e_5\x14\x8e\x11\x0e\xe1{\x0d\xe1\xf8\xb2\
+!\x5c\xe7)\x86\xe2\xf3\xc8\xbc\xe2\xa0\xfeR\xdaAZ\
+\x0f\xdd1`\xbf\xd6\xb1\xbd\xc4Pd\xa8U\x1aA\xe9\
+\x93\x97`\xee\x1a\x91\xa8\xfe\xef\xcf\xfb\xa3;\xe2\xac\xbb\
+tUQ\xc0\xc2K\x0e\xac\xfb\xd1\xcd\xb9}\x1dZ\x02\
+.\x0e\x89\xe3\x87\x16\x87\x89\xbd\xbe\x5c\x94\xfa(A\xe4\
+\x8c9\xba'\xa05\xb0\x5cX\x97\x96\xcbb\xb4\x94,\
+\xc5\x82\x8f\xb9\x0b\xed\x00\x1c\xeb+\xc7~\x143\xeb\xa3\
+\xb0\xab\x8d\x8a\x12J\xc4\x94a\xf6\xa2\xe9\x01S\xcb\xb4\
+\x07\xae-\x18\xa00\x1b\xefP\xd7\x99mR\xa9\x8e\x07\
+l\xa8\xc5W{C\xda\xdf\xba\xfa>\xf7\x05\xaa<%\
+\x04\xdcw\x18\x0e\xf8\x11d\xd4\xa1\xfa\xeb\xf9\xf1\x00K\
+\xad\xe9D\x17\x13\x05\xca\xdc1E\xf4Tv\x833*\
+\xd63\x14\xfe\x0av\x13\xfb\x18\x09'JHq\xcc\xf1\
+\xbbpHa2\xe0\xd8\x8b91\x83\xe3\x8f\xbd\x83=\
+\xab}\xd2\xedE\x0280\x02\x09\xf0\x13P!P\x88\
+\xfdE\x8d\xbe\xee\xb7\x97\x82\xd6vh-\xe6G\xa0\x82\
+\x00\x8d\xba\x1a\xb9\xc6B\xdd\xd5\xacj\xbf\xe7\x19t\xec\
+=\x02\x18\x1cy\xbf\x1csg\xa8\xdd\x16F\xef\xb6h\
+G\xfe3\xda\x918\xeeu\xa9\x02\xf6\x14\x19\xff\xaa\x06\
+\x7f\x86\x80\x01G\xc4\xd4\xd97p\xec\x19\x0f\x12\xcfu\
+\x8d?v.\xdf\x8f\xbf\x0bi\xf2\x15C\x9eg\xadS\
+;\x9e\x1c\x92\xfa\xbfM\xdf\x97\x8bL;m\x00\xcdM\
+\x9a\xf3\x0d(\xd68\xb2\xf3F=\xd2\x19\xa9\xd9L0\
+\x22\xbf\xa8$\xd6T\x0b.\x90\x1b\xc6\x83\xc0\xc4\xad3\
+\xa7P\x1c\xf8\xfb\xac\x02\x99\x06\x86\xbf\xffg5\xd08\
+V\x88\xd11 \xb5\xda\x22\x0e\x0b\x0e \x0e,\x19r\
+2\xca\x95C\xdd\x10\xa0\xe0}\x04\x0e*\x87\xd63s\
+d\x9a\x998\x9c7\x0f$\x13\x88qc\xe2<[\x05\
+L\x9e\xd5\xf8\xf1\xf7PG\x18\x97\x9a\xb9P\x07j\xea\
+@F\xcd\xb8\xa8)\xfa\x18V\x04&Xp\xa8A\xc3\
+\x11\x5cM5[8\xa48x01\xaa\xbfC\x15z\
+lyEb\xab\x12\x13\xff\x9cZ%~ae^\xcb\
+\xf98\xef\x1b\x04~\x08dd\xc6F\xba\xef\x8c\x17\x0b\
+\xf1\x1cU\xad?\xf7\x8f\xef% \x81\x83\xc5\x03H&\
+\x91\x07\x94\x8c8\x14f\xb5\xa5\xf3\x8d\x8e\x05\x9by\xc9\
+\xe7\xe9>\xa3\xda\xed\x22Y\xb4]D5\x9f\x0c;%\
+\x18Y\x842\x05\x96\x98\x7f\xf4\xc9F\xac\x84\xc8\xab\x0c\
+!7<\xa0rc\xe0\xa0\x9e\xce\x86\xc1\x86F\xe0\x84\
+\xf3\xe5y\xa1\x9b\x81(\xb6~\x1f\x18\xe7Z\xdc\x91Z\
+D\xc4\xa7\x94\xb9\xc3\x80sC\x0d\xaa\x1e\xfd\xa0\xc9\xbc\
+\xaa\x14\x00\x83\xc6)\xa3<O\xdc/\x028l\x14\xd4\
+\xeeQSG\xc0\x01\xa6\x04\xf3J\x91t\x17y\xe3~\
+\xaaVu\xec\xeb\x11c\xc3\xa1\x86\x5c\xe3\x8f\xf6C\xbf\
+\xae\xa1\xa8\xa1[$\xceT\xd7\xecpGM\xa2\x80>\
+O\xe9\xaf+\x0d\x06\xc4\xc3|\xe3#\x92\x7f\xb1\xfa\x9d\
+c @iW\xdb\xd3f\xb5(\xe7\xea\xea\xe8\xed\x9f\
+\x0d\x91\x11q\xb01\x22\x9a+\xa4\x01\xc1\xfc\xe7z\xe4\
+\x88\xf7\x0f\x19\x8a\xb6XS\x125\xb9\xff\xa9!\xdc\xce\
+\x97\xbb\x97\xba\x97\xa2\x01\xb9\xa9\x19\x90\xdd\xa3\x86\xf0\xfb\
+G\x0c\xe1\xb8t\xc02\x91\xd2{\xa99\x04\xa6\xe5\x1d\
+\x03\x06\x0f\x87\xdf\x9b\xba\xf6\x9b\xfb\xf9\xfb\xb0~t\xbf\
+\xe8~\xd9\x05\x87\xa7k\xbbQ\x17\xe6\xd3\xc4\xdf'\xfe\
+1\x11\xd6\xf7i\xd7\x19\xc2\xcf\x0f0\x14\x81\x05\x19\x9c\
+\xd1\xf0\xfarV\x93.De\x93\xa6\x8dJ\x03\xbc=\
+\xe2\xcf\x83c\xf5s\x19\x9ckf\xed\x89\xe1\x1d\x86\xec\
+\xe0\xf7'\x182\xf5=\xb6\xc5\xba^\x14\xcb\x8f\x17\x91\
+w\x1c\x16\xeb\x7f\xbd\xba\x02i\xdfS\xa6#\x18\x08\x13\
+7\x06\xd88-\x13\xb0\xb4jK\xbfP\x18Vrt\
+1\xf4\xdcQZ\xa9[\xb1[1\xd7\xf2\xc7\x84\xa7\x89\
+u\xfd\xde\x10\x8e\x17\xf4\xe7\xf7\x17\xe4>\xedN\xf5D\
+K\x83\xe7\x8b\xd2\x12\xa8\x9e\x0b[uu\xf8\xfb\xdd\x0c\
+\xe1s\xaf0\x84\xe3\x9d\x86\xf0\xf3\xf9\x02\xe6\xcd\x0eg\
+\xf8\x96\xf8=\xfdQ\x01F=\x9d\x96(\xec\xc1\x8c\xdf\
+\xd22\xac\x1ex\xa4\x0d\xda@u\xc6\xd0\x0cM\x0eH\
+\xfax\xea\xfc\xbb\x8b\x0c\x85\xf8#%\x02[\x19\x8a6\
+\x8e\x0a\x14\x8f\xb61\x84\xe3\xbd\x86pyK\x1a\xc6\xc6\
+\xa6\x1cc\x08\xcb\xfa\xc3\x86\xb0\xfc\xedi\x08\xc7\xf3\x0d\
+a{\xdd\xc5\x10\xde\xf7\x92!\xcc\xff\xe3\x0c\xe1\xf3\xe7\
+7\x84\xf38\xddP\x04\xb2\xbef\xc8\x06|\xffIC\
+8\xfe\xc4\x90\x19D\x8c_\xff+C!\xda\xf7\x94a\
+\xc6\x8c\xd9\xe8\xc7\x86p\xfc\x8f!\x1c\x8f0d\x07\x0d\
+\x83>\xaa\xd4\x07\x07dt\x87!\x06\x14b\x89\xc7\xf8\
+\xcd\x86p\xdc\xc0\x10\xaf\x7f\xa9\xf1\xa5\xc2\xf1\xa8\xf1\xa3\
+\xc7\xc3}i\x9f2\x88y\xf2JbX\xc5u\x1c&\
+\x98\xd4\xdb)\x0d\x9a\xb2\xa1!\x1c\x173\x84\xf1[\xd3\
+\x10\xc6\xeb\xeb\x86p\xdc\xdd\x10~\x7f\xa4!\x1c\xcf2\
+\x84\xf3\xba\x7f\xf4\xc0\xe8\x81\xa89\x10\x1d\xc2\xf0T\xee\
+\xdf\xed\x1f\x9e\xd3\x8fM;dZ\x18\xafiS\xa6\x8d\
+O\x0b\xf3n\xe2\xf2\x89\xcb&\xac\xfd\xdf=\x06u%\
+\x08\xfbP\xf7vCQ\xc3~\xd3Xl\xaf;z\xc6\
+\x10\x8es\x06\xcc!\x91\xd5\xcf\xe5\xae\x18n\x88\xdbj\
+g\x14\xf9/\x19r\x80{\x987`>\xadO\xe3Y\
+T0j2\x1c\xadn\x02\xb3\x16\xf3\x14C\xf9\x94\x88\
+\xccl\x83)\x22\xbb\xa6\x9d\xdb\x10\x99U\x01\xd9\xc1\x1e\
+;6\xc2K\xfe\xbck\x13\xcc\x1bJ\xbc\xd0&@\xc4\
+\xf3\xaf\x86\xf0yK\xb5K\xb6K\xc6\xef\x89\x89\x0c\x98\
+5\xedY\x86\xf0\xfa\x0eC\xb1o\x8b\x19\xd0\xbf\x12\x10\
+\xf6\x85\x89\x13\x03N\x0a\xe3\xb9E@x\x0e\xbbu\x0c\
+Q\xac2 \x1c/0\x84\xe3\xbb\x0c\x99\xb9\xd1\xff\xd5\
+\xa0\x80\xe6\xdcY#\xc1\xdb\x94Zi\xcd\x8f\x8b.1\
+\xda\xaf\x9b\x93\x9bS,\x00\xdd\xeed\x08\xc7\xdf\x1b\xc2\
+qGCx\xff\x96i=\xe8\xa7\x19\x22\xb3\xe1\x9f&\
+\x868\xbc\xd9P$&60\xc4}8\xed7\xd2\x98\
+\x22\x00\x1fE\xe3^\xd4>\xf1\xff\x0a\xfb\xef\x09\xf9\x0f\
+Z\xff\x87\x9f\x0e7Z\x1b\xe6\xe1\xbc\xe1\x9b\xc3y\x85\
+(\xeb<a\x1e\xccS0\x1e\x8c\xd9sO\xc1\x8c\x15\
+\x93\xcdK6\x8f\x17s\x81\xd2\x0e\xec_\xec@\xfc\x0b\
+D\xab\xd5\xa5\xa49\xdd\x10\xe7Sb\xc8\xa9\x94\xae\x99\
+f(J7\xb0_\xb03`\x04\xe0\x88c\xa7\x10\xe0\
+E\xfc\x17\xff\x01{\x8cR\x032\xf9\x94\x96}6\x22\
+'\x12N3\x14\x01\x19i\xcf\xb8(+\xed\xbc\xb1\x7f\
+P\xf5\xc71\xc51F\x95\x1eG\x9c\xc0\x80Dz\xbd\
+\x14\x00\xa6\x0c\x01\x00\xb4\x8c(A\xc3\xaeD\xb4\x19\xfb\
+\x0a\xfbR%\x8d\xfesj\xfb\xd1\x0e\xc1\xdf!q\x83\
+c[\x1f\xf1\x0b\xf1+k1q\x02\xd5\x0a4P\x12\
+Xw\x09\xa8\xdb\xf9y\xe0\x81\x00\x02~\x99y\xc9\xaf\
+\x14\xf3\x05\xbf\xa8\xa6\xe8\xa3\xf9\xc2u\xd4~\x02\xe7]\
+\x8b\xfb\xe1\xaf\xe1\xdf\xc1l\xe0|Y\xbf8o\xec\x11\
+\xce\xb7\xf6\x8bk\xa6\xba\xfc\xc0q\x17mC\xcc\xc9*\
+_\xde'\x87k\x99\x82bL\x06\x1e\x03\x18\xc7\xad\xce\
+\x90\xe3\x80p#pl\xaa6\x14\xee\xe8c\xf0\xf2\xf3\
+\xda\x11\xa5m\x85\x1c`w\x10y@\xa0\x02s\xa3q\
+\xf02\xe5{z\x87\x1c\x87N\xe7\xef\x94u2\x96\x1b\
+H\xb4n\x95\xe9\xdb\xf8y\xe6\x14\xc7\x96\xcf\xc7\x81\xc7\
+\xe0\xc2\xd1\xc0\xc1\xc6a\x22\x80A$F\x8e\x02}\xeb\
+\x9b\x95\x9a\x95c--7\x8c\x7f\x8c\x87j\xe1\x07\xda\
+\xd3\xac\xa8\xc0\xc3\x9cUF\x7f\xae\x94\xd1\x0f\x8f\xcf\x93\
+\xc3\x93\xb1\xd6>\x8d\x17\xe7\xab~\xc4a\x92\xa5\x0c6\
+\xa5\x0a\x8c\x1f\x0e\x1dG/v\x133\x82\xeb\xe5\xc8}\
+\xc2\xd1\xc6\x01'SO\xe6\x9a\xf1\xc4\xb1\x22\xa0\x82Z\
+\xff[S;%\xaf\xc9\xa6\x9b\xc1\x92\x9a_+\x8aQ\
+\xc0\xf8S\xdb\x8e\x08!\x8e\x1e\x19`\xe6#\x8ep}\
+\xffk\x11@\xe61\xa5\x11D\xd0?(\xca\x1b\x9f\xa7\
+\xebp\xb1\x1aDx\xb8\xef8\xba\x04\xb4\x1872\xd1\
+\x04\x12\x94Ao\xd76\x14\xd4q\xae\x83\x05\x08\xa6\x84\
+\x0c\x17\xcf` \xba\x06\xc5\xdd\xec\xed\xa1\x98\xa7\x8c3\
+\xb5I\x95\x1a=\x9a\x02.f\xc4yVb\x94.N\
+\xc4\x86\xc9\x86VG\x1c\xb9\x1fl \x8ax\xbaH\x1f\
+\xef\xe3\xefpH\xb67\x14\x144\x98\x0a\xda\xc8<\x10\
+\x80\x18\xe5\xcazND5tUaj]\x09\xc8\xb1\
+\xe0b\x90\xa9f\xd6\x0d8\x16N\x9eK\xe63\x14F\
+(\x82\x18\x020%\xd8\xf0\xa0\xb4QkG\xe0\x8b\x80\
+\x0ab\x81\x94\x1aP\x1b-C\x8c\xe5\xc1)\xc3\xba\xaf\
+P\x9a1\xe4\x9dJ\x0aS\x82ZQ\xad\xab\x8c/\x81\
+\xa1v?CA)^$9|^\x03(FI\xbb\
+\xa5!Ru?fT\xdd\xa8q\xf0|A!\x94A\
+\xd4\xdcl(>G\x19\x0b\xcf\x8c\xcd\x91\xa8\xac\xdd\xf3\
+\x01\xcfE&\xc0\xef\xfa\xdf\xc5\xe7\x22\xd6${_g\
+\xee\x83\x1c\xc8\xfe\xac\xd4N\xd07\xdc]\xe4\xd0\xa3\x05\
+1U\xe2g\xd7\xcb\xb0\xfa\xb92\xa2\xfb\x18b\xff\xf8\
+\xd6\xfa\xc7\xb7\xff\x0ax.\xb7\x87s\xa6\xc4Q\xc1\xec\
+>*\x8b\x9c\xd1\xdd\x81~\xe5\xcd\xdcz\xbe\xa9\xb1T\
+\xad#%\x0e\xed*\x86,v\x163J7\x16\xb5\x9d\
+f\xfe\x1fW\x88L\xd9\xfc\xdb)g\x14\xfay\x03\xe6\
+S\x9b\xc7\xcf\x8ar\x1e\xe6e\xfb\xd1\x80=\xa3z\xfc\
+7\xdb\xf3\xf5\xf9\x07+P\x12\xe6O\xb7x\xb7X\x17\
+\xd6\xbd\xf6hC\xf8\xdc\x8f%U{\x9f\xf70\xb2\x08\
+\xa8/i\x88\x0ek\x0c\x14\xf9>\xc4\xfc\x16\xb3g8\
+\xd5P\xf4w\xc6\xf0`]\xc0\xc0\xa4\x14G\x0c\x04\xda\
+\xaa9\xd5\x98}\x1d\x83\x8f@<\x01\xc2\xdbuDL\
+\x8b\xee\x12\x9b\x1b2\xa5\x19\x8d\x11\xda?\xa2N\xdd/\
+c\x08v\xcaO\x0c\xe1>\x7f\xd1\x10\xc6#\xaa\xbe\x85\
+\xcb[\xc3P\xa8\xb9\xab+\xc9\xe8XC\xae\xd9\xeeV\
+5\x84\xe3\xd3\x86L\xf5\xee\xd60\x84\xe3M\x86\xdcV\
+\xcck\xfeU\xa3\xdd\xbd\xc5\x10^\xbf\xcb\x90q\xca{\
+`\x00\x00 \x00IDATK \xb8\x9e\xfe\x97\x86\
+\xa2\xc6R\xa2\xa7^\x9b\xae\xc4\x02\x0e7\x81P4L\
+\xba\xe5\x0c\xe1x\xbe\xa1P\xc1G\x83\x021>Je\
+`8)\xb3\xea\x81\x94k\xbbk\xbak\xb2\xe8\xe0\xc4\
+5\x01a\x1c\xbb\xfb\xbb\xfb'\x0e\x8a\xcc\xb2\x9d\xe2:\
+\xf4P\xf3`\x13\x8e\xa3\xcd\x0c\xd9\xc1\xc4Q\x19\x1dm\
+\x88\xcbQX8\xc2y\xff\xb7\xfdO\xd4\x02\xf9\xba!\
+|\xde\xd6\x06\xcd\xdf\x8f\x86\xf7\xbf\xdf\x10~\xfep\xf7\
+Hg\x81\xbe\x03\x0d9\x90\x16U\xd9\x7f\x1d\x99O1\
+\xf3\xdb\xcf\xde\xcf\xd6\xcf\xa6\xfd\xe79\x05\xa0\xef.2\
+\x81\xa2^w\xff2\x84\xe3\xfb\x0c\x1a\x87}\xb4\x9eu\
+E\xc9\x96\x99\xe1Oj\xbf\x5c!w\x01\xe9\xffl\xc8\
+\xa2\xd6\xc3\xa2\x01\x8bIKd\xc7\xa2]\x9f\xd6!g\
+\x8e`W\xd0\xaeZ\x01\x00\xda\x8e\xf6k\x19\x8aL\x9e\
+\x02\xa5\xb4!u\xc6#\x86<\xf3\xa2R\xe1w5\xf6\
+c\xd4\x1eUmT\xdda\xf8\xd1p\x95Q\xc0\xa3v\
+\xc7uE\xad\xbf\xa8\xd3\xfdI\x06\x05\x1e6.j\xc5\
+-\xbc|\x8e\xf6\xcb\xb3\xd4\x85\x82\xd2\xbb\x1fF\xf1\xd8\
+\xd8m$\xae#\xabd\x11\xba\xc8\xdc8\xbb\xc8`?\
+\xa4\x1a\xe7\x0f\x18T\xcb\xfd\xbb\x18`\x09\xaeu^G\
+\x5c\xdcWv<\xf6Gd\x0e\xad\xad\xbf\x7f\xbf2\xea\
+G\x88\x09\xf9\xce\x82\xd1H\xf7\x1b1T\x86\xa9\xc1\xe1\
+\x9c\x1a\x03\xa9q\xffi6m6k6\x8d\xddb\xa2\
+\x16D\xb3q\xb3Ql\x1bl\xab\xe9g\x0a\x91\x5c2\
+\xea\xa7\xa6\x121k\xbek\xedw)\xc9p\xbb\x8e\x12\
+\x04\xba\x19\xbc\x942\xc5a~\xee:\xecZ$P\x94\
+\xd8\xf4\xb6\x8c*\x01\xf1L<v4\xf6\xc0 \xfb\x80\
+R#\xba7\x10\xb8@\xd4\x12\xbb\xad\xf2\x0f\x86\x9f\x19\
+\x0aF\x9c\x983aOH%4\x94\xe6b/\xa1\xc5\
+\xc1>\x04#\x01\xa6'%\x94\x04~q\xdc\xeb6\xd1\
+\xd8\xa7\x04$\xd8\x87\xf1W\xb0\x9fX\xdf\xd9o\x10\xff\
+#p@\xd7\x1e\x98N*\xc1vG\x19\xbb\x03\x07\x9a\
+\xe7\x02G\xb5\xce\xf4\xf3>\xec2\x1ca\x1c\xe3\xba6\
+\x7f\xb2\xc41?\xafKr\xf9{\x1cp2\xfdU\xd7\
+7\xff~\xc4\x1ea0PZP\x07\x1ep\xd4\xeb\x12\
+z^\xb3.\xf0\xfd\x044p\xec9o\xbe\x1f\xbf\x16\
+\x7f\xb0\xee\x1a\xc6\xf9\xe2\xb7\xe1g\xd7\xe7\xc1u3^\
+|\xae\xf6\xfdq\xef\xbb\xad\x05\xc5)t\xcb\xc6\x06q\
+)S\xbbp1q\x868\xe5s\x0d\x82]\xd6\xf3:\
+\xf1\xd9\x8a\x08\x03'\x88\xc1R\xaag\xfe\xa50\x90q\
+\xe81\xc0\x09\x08\xe0P\xd6\x19\xf5\xbaT\x80\x81\xe5|\
+x\xc0j\x0a{\xad\x22\xcf\xf5\xcc]\xa9\xf1\xd7\x14}\
+2\x98P\xe5\xeb\xd2\x03\x1c\xe5\xber\xf8\xb9!<X\
+|/7\xa6\x16\x15d\x22\xf1\xfd\xb5\x16\xc2\x94\x14\xd8\
+h\xf8\x9c\xd5\xe5\xf0s\x9e\xa8\xd5\xd3\xc7\xfe\x15e\x10\
+\x9fJ\x19Cj\xf6\xc2\xe7\xa4\xf1A\x95_\x9f;C\
+\x00\x83#\x8ea-\xda\xc8y@\x95\x9f\xd5\xc75-\
+\x90\x9c\x07\xe3V\xf75\xadE\x0e\xf9\xfd\x8c\xe2})\
+@5\x9f\x98\x06\x04h\x18'\x1c/\xdaE2\x9f\x98\
+\xc78\xb4\x8bUm\x17\xa1\xa8\x11\xc8\xaa5\x0d8?\
+\xce\x8b\xbe\xa6\xaa\x91\xf3Za\x1cz\x16|\x02\x0el\
+(\xcc\x072\x00P\xe8\xa1\xf8\xc9\x90\xf06\x8b\x8c\x17\
+\xf3\x9ay\xc0BA\x80\x8b\x9aES1\xde\xbcP\x8d\
+\xc5Q\xa7\x9d\x92\xd4r\xfd\xf9!\x80\x87\xc1\x02#E\
+L\x02W\xf5%\xa2H-\x17\xe7\x87\xaa/5\xf08\
+\xd62\xc4=@\xc0\xf9\xd1\x8fw\xa7\xd4\x1e\x0c\x83\xdb\
+\xd5\xb6\xa9\xb9#\x82J\x80\x0c\x95\x7fD\xff$\xca\xe3\
+m\x97\x10\x03\x12%-2\x98\x9e,\x1c@\x16\xf6\xba\
+\xf6\x8e\xe7\x92\xf1\xe5>#\xfa\xc3\xc2\xcf\x91L?\xda\
+\x02P\xf7h\x8f\x03\xd5\x8c\x1aHQ`\xa9\xf5\xc4q\
+\xf3\x00\x97\x02\x8d\x1e\xd8P\xa0\x07\x95u\x8fT\xabV\
+\xcc\xc5\x9c4\xef]\xe5\x9c\xfb\x01\xd5\x8e\x8d\x92\xeb\xa4\
+4\xe61m\x18PE%\xaa\xd7/\xdb/\xd7/[\
+0A\x9e\x08\xdb\xf5\x13\xc5F{^0\x19\xc3}n\
+\xfeh\x88\xb5\x86\x07X\xad!m\xe9\xfa\x8b\xfa\x8b\x8d\
+B\xdeo\x1d\x10\x9e\x83\xee\xb3\x86\xf0\xfa\xd3\x86\xa2+\
+\xc2\xc9\xcdI\xcdIE&\x00\xa6\x05\xcf\x09ba*\
+\x01i\xdf\x9e2cq\xb9\x09\xebN\xfbp\xaa\x85\x0e\
+\x8ep@x}[\xaa\x05\xa7\xcf\xb4k(\xa0\x82n\
+\x86\xe6;$\x86f\x0c\x87\x7f\x07<\xaf\x9a\xfb[\xe5\
+\x18Z\x89\xc5L\x86\xa2\x06[Z\x188\x9a\xa3M\x0c\
+\xe1\xb8\xb2!\xbc\xef\xca\x80\x1f\x15\x0c\x122L\x12\x9b\
+\xf3\xc0\xda*\x86,\xc64Z\xdc\x10\x1e\xff\x83\x02\x82\
+\x834\xbe\x88A\xa5\x15\x1b* \xf5\xa5\x22\x93\xb3x\
+\x0a\xe0\x19\xf1\xdb\xa8\xdf\xa3\xfbF\xf7\x8f\xee\x0f\xc7\xf9\
+\x0c\xe1\xef&\x0cEw\x17\xba\x80(S\xdaol(\
+\xb4D\x94\xd9l\xe75\xe4\xcc\xb6\xd7p+#\xd9\xbc\
+\xdd\x10\x8ew\x05\xfc>\xd7\x18\x93\xe9\xf2\xb6}F\xcd\
+\xde\xbbpXV7\xeeC8~\xcc\x90k\x82\x87\xf5\
+\x13%\xb5?\xa5\x1f\xf5\xa3\xbc\xbf\xb7\xa7\x1b2\xb3\xa8\
+;\xc1P\xac\x1f\x88X\x91\x11T\xc6\xa6=\xdf\x10\xc6\
+\xe1\x1d\x86\xac}1Z\xc2\x10^\xafc\x08\xe6\xc79\
+\x86\xf0\xbd\xb7\x19\xc2\xe7\x9fb\x08\xc73\x0c\xe1\xf8\x9a\
+!\xb7=\xeb\xbfl\x08\xc7#\x0d\xe1\xf7\xdf0\x84\xd7\
+\xb7\x1b\xb26@\xff\xa2!\xb7y\x1b\xbec(\xd6\x1d\
+i\x0bPc\xed\xdd+$6GW\x03\xda\x81M\xac\
+`\x08\xc7i\x86\xa8\x16\x1f\x90\x19(\xdd;\x0c\xe1x\
+\x9f\xb9\xf2\xe1x\xa3!\x1c?f\x08\xc79\x0c\xe1\xb8\
+\x97!<\xf6\x9f\x0c\x08\x8e\xd0\xb4\xd5\x02\xc2\xf7L\x9c\
+k\x08\x9f;G\xc0\xec1\xa3\xbb\xd3\xb0Sv`\x08\
+p\x8f?h(D\xf1\xd4\xbe\xaf\xfd\xaa!\x8c\xefo\
+S\xbb\xc3\xee\x19C1>_7\xc4\xf9\x1e\xc5\xe0&\
+\xee5\xc4@\xd8\x8e\x16\x88m\x0eo>n\xa5T0\
+$`ZDQ<\x0b\xf0^\xd6\x5c\xde\x5c\x16k\xcd\
+\xa3\xc3\xde=\xd2M\xed\xa6\xc6\xf6\x92?3\x87\xb6]\
+\xa4]\xb4]X\x9a\x06\xdb\x17\xedM1d)}\xb2\
+\xb0\xe1G\x0a\x8d!\xd3P95g\x9e\xa3\x98\xe5\x95\
+E\xa0\x1e\x87\x00{\x13;\x15M\x1c\xb4\x1b\x94!\x1d\
+.2\xe4\xcc\xab\xb7\x1d}\xaf\xa1\x08\xcc\xc0\xe4Q \
+\x8by\xe3%\x02\x04\xd2\xc8\xe0\xb2\xce\xbeI\xe7\xa1.\
+<\xee\x10a\xd7q\xde\x0a\xbc\xb6\x8f\x1b\xb4?\x9eS\
+\xd8\x93\xb4\x835\xc7\xf5\xf8\x22\xe0\xaa\xd2\x94\x18\xe6=\
+\xa4(]\xc1N\x87\xf2\x0f\xb5\x9b\xda\xeb\xaf\xa6R\xb2\
+\xe8\xfe\xfdC\xb5\xf9_\xc8\xf6P\x0c\xac,Zhm\
+\xa8\xbb\x11\x01\xe9\xf8\x1c\xec\x17k\xe5?\x1ek\xe5\x7f\
+=\xf6\x1b\xcbx7/J\x5c\x12F\xe4\x13\x01\x8f\x17\
+5\xeb\xb4\xc1T\xa9\x84\x8b\xe7\x0e\xc1\x0c\x1d\x8a}\x8e\
+\xd2\x0dJ\x17T\x1a\xe4v95\xe3\x04\xde\xd1\xe0\xf9\
+E\x0a\x98\xe0\x7fP\x9a\xe1\x99Z\xda^\xab\xd4\x92n\
+\x00\xdcG\x9f/\xf8\x0f\xb4\x03\xa4K\x10\x8cI\x89z\
+B\xfdg\x7f\xf3\xb6{$\x16\xa0\xb4\xdf\xa4\xd2\x1a\x95\
+bE)\xf6\xa5\x8a6\xc5h\xdb\x10\x908\xd9\x90E\
+1\xfd\xfea\x0fc\xb7\xe2\xaf\xd4btU\xad\xbc\xb7\
+\xf1\xc3\x0f!\xd1\x81}\xc1\xcf\xf9\x1c\xecC(\xfc\x94\
+\x02\x90\xe9\xe7}8\xda\xcck\xde\x8fC\x8d}\xc9\xf9\
+\x10\xb8\xe6<\x09@@\xc1\x97\xa6\x8a\x8b\x1e\xd6Z\x00\
+8\xb8u\xed\xfbd\x0e5\xe7G@\xa2b\x8a;\xe3\
+\xd2\xc2\x94\xb7\xc5\xe7\xea\xde\x18\xa8x*\x8cF)\x1a\
+X1\x14(]\xf7D\x1e\xe7Y\x1f\xf1g\xd1\x22 \
+\xc0X\xdb\xa1\x9c?\xe7\xc7\xf8\xf3<\xe0\x87\xf2>>\
+\x0f\xcd\x1a\xfc\xe3\x8a\x01?\x8ejj\x9c6\xcb\x14\x13\
+\xe6\xd5\xd8\xc9=S\xd0\xb5\xa0\xb9\xc1F\xdb8\x22\x12\
+8.8\x8c\x18xd\xd6y0_\x89\xae\xe9\x8c\x22\
+z\xa4\xc4f\xaaD\xd8*&\x80\xff\x1c\x87\x94\x85\x8c\
+\x88\x0f7\x94\xf3 R\xc3\x83\xcb\xfbj\x95I\x0c\xe7\
+\xaa\x0d\x1d}z=\xc3Y\x978\xe46\x82I$G\
+}/Q\x05\xf6\x12\x04\x02\x09o\x96c\x8b#=\x83\
+\x86\x80\x16\x16\xdeO\x06\x98\x0c4\x11M\x1c8\xc6w\
+C9\x08\x8b\xe9\xbe\xd4\x01\x0d\xd4\xe9\x97\x93x\x11\xcc\
+\x07\xa8D\x8by;\xc1\x14)\xe4~\xd65\xf28\xe6\
+\xfc\x1e\xcd\x81\xb9\xfd\xfd\xc9\xf1\x9f]\xd7Q\xab\xf4\xd7\
+\x0c\x01\x0cY\x22\x979sO{\xbf\xf4y\xb5\x18#\
+\xf3\x84n\x11|\x0e\x0c\x02\x16B\x8e\x8c\x1b\xa5\x07t\
+\x17\xe0:\x98\xd7\x94fl\xa4q\xe1\xfd5\x93\x80\xbf\
+\xe3\xfe\xe1H\xa3\xaa\x0b3\x81\x08.\x81&\xc6\x83\xf9\
+F\x80\x08J\xff{\x0c\xc5x3\xdfq,\xcf7\x14\
+\x14D(Sj\x1f\xe3m\x8a\xe4`\xe3p\xfb}\x85\
+\xc1p\xb1\xfa\xe32\xae\x04L`\xfc\xa0\x09\xc2\xbca\
+\xa3\xa2&\x0e\x0d\x02\x98\x0dl\x10\x188dv\xa0\x8c\
+i#E3\x80\xf6^^\xda\x00\xd3\x00\xca\x1b5f\
+\xaaQG\x1c\x8f.\x06>\xff\x15\xe9vq\xc9\xcf\xc6\
+\x9ck\x9e\xf7t?\xd0u\xa2\xd2\xed\x81O\xd6\x07\xe6\
+\x07\x94Rj:\xe5h\x0f'\x19\x0a\x83\x89\xcc\x11\xd4\
+=u+i\xdfo\x08\xc7\x93\x0c9\xd3B\xfb0\xfa\
+\xb8{?g\xfaA\xab\xb6\x9a\xcfm\xee5\x14\x0c\x02\
+\xfaA\xff\xc3\x10\xd5\xd0\xa3xb\xcc\x8cl4\xa3\xc3\
+\xd6<\x93\xd4\xc5\x9b}\x9a}\x9b}c\xedh\xca\xec\
+\xd2\x86ieQ\xe9\xff\xa8\x0d\x97\xc0\x10\xeb'\x81\x95\
+\x8d\x0d\xb9\xad \x86\x14m\xaa\xbaO\x18\xc2\xebw\x1a\
+\x8a\xc0\x18\x94\xbe\xcf\xc8\xb1U?w\xafa\x17\xe3\xa3\
+]\xd8\x10\x1e\x8b\xf5\xc6\xd7\x1f__\x0e\xb8-\xdf'\
+\xa5\xc0A\xfb\xa8!\x1a|'F\xaa\xe5F&\xefZ\
+\x88\xf2\xd1\xbe\xd2\xd4\xc5\xaf\x96Z\xf5\xddE\x06\x8b\x0c\
+\xef=\x06\x05\xc6\x82\xa3\xd9.n(\xba^H\x8c\xb2\
+\xdd\xccP\xb4\xe9c\xbdQ@\xcdk\xaa\x1f4\x84\xf7\
+\xad\x9eJ,\xc8\xa0\xc5\x9a\xe8\xeb\xc3\xe7\xfc\xc8\x905\
+\x06\xa2\xc8\x9e1/\xe6\x0b0j\xf1G\x0c\xe18\xd5\
+\x10\x8eo5DQ\xbac\xdac\xa2\xa3\xbb\xf4hi\
+\xb5G\xfbU\x0c\x8c\x04\x14%@P:\x0f\x8d0\x87\
+'\x19\xce{\x19\x0a\xf1H\xe67\xfb%\x1a#\x18\x1e\
+0^\xd8gl7,\xb5oX?)\xbd\x11u\xd2\
+\xa9\xefr\xa4\x99\x7f\xfd\xf3\xfds\xfds*\x09\xd94\
+R\xf9\xe7\xea\xe7\xcaL\x96nw\x83\xda\xd9\xfd\xa6(\
+\xb1\xa1\x16V\xcc\xa5\xd11\x86\x1c\xe0\x1c\xcdc\xc8\xeb\
+\xc6\xe8YC\xa1\xea-\x11F(\xf8\xdd\xc9\x86\xf0\xfa\
+\x1b\x86,j\xd6\xaff\x08\xc7\xff\x18r\x02\x05\xa6\x00\
+\x8ec\xbf\x9f!S\xa1\x87w\x19\xb2\x88\xa3\xff\x9e\x00\
+\xc0\x9f\x0d\xe1\x83\xb6\x8d\xc8\xd4\xf1o\x19\xc2\xf1iC\
+\x0e\xc4M\xdcg\x08\xdf{\x9c!\x1c?n\x08\x9f\xbb\
+F\xbff\xbffn\x13\xd7\x9dg(\x1c\xfe\x0b\xbbo\
+u\xe1\xf3\xfa\x83\x0c\xe1\xf5\xcf\x0c\xe1\xf3n1\x84\xe3\
+s\x86p\x9c\xc5\x10~\xff\x87\x00\x0b`\xacj(\x18\
+V\xf7\x1b\x8aL0b\x97\xd2\x0e\x99\xb2\xa0!\x1b\xdc\
+\xdd\xb1\x86p\xdc\xbe\xdb\xae\xdb\xae\x10}\x5c\xb6_\xc6\
+\x9e\xfb\xd1i\xa3SG\xa7\xe5}\xa9\x19%\xe6O\xbf\
+e\x80\xb5\xff\xfb\x90!;FP\xf2\x11\xe3s\xe6\xd4\
+U\xc35\xd65\xa1\xdb&\xc0\xdaY\xdeb\x08\xef;\
+\xce \x06\xc9\x0e\x85F\x944*\xa24\xe8\x01E\x22\
+\xcbv\xb9Us`\x89\xae\x02\xd1\x0dy\xb0\x10MC\
+DMv\x90\x97\xb8\x88Y\xe3]R\xc4\x98j\x7fe\
+(\xc4\x11\xc5\xb0C\xbc\xb2\xdb\xccPd|I,\xe0\
+hI\xeb\xc7\x1d\xf1\x0f\x8cmeL\xb3\xe0\xce\x9dd\
+\x0e\x9d\x15R\xc5\xb6\xc1V:\xb9Z\xb1\x8f\xa9\xd4\xcd\
+\xbbb\xb1/C\xa1\xb7\x12\xb2\xcbs\x89!\xed\xb8\x87\
+S\x0c*u8Y\xfb\xe1\xda\x99\xd9D\xe0k\x86\x84\
+\x07\x0e\x11LB9\xa2\xd1\x1a\xfa~.]\x89\xc4~\
+DH\xcf\xcd\x8e\xaa\x07\xfc\x8d\xb2\x1f\xae\xbf\xdf\xc6\x10\
+\x03&\xa9[\xc0+\xf2/nV\x06\x19\x86\xa8\xf6\x05\
+\xbaw\xf4\x0f\x1b\xc2\xe7\xbc\xd3 \xd5\xf5\xfb\xa3\xe3}\
+a@n\x0f*\xad\x052\xff0\xbe\xb0#\x10\x7f\xf5\
+@\x0c\x01\x17T\xeee\xcf\xc1$\x83\x11\xe5\xf3\x03\xc6\
+\xa5\xa8\xfb0\x81\xdc\xa1\x22\x81@\x8d;~\x91(\xf1\
+\x04\x0c\xc9\x9c\x13H\xf7v\xcb_\x15\xe3@\x19\xf3a\
+Ki\xaa\xa8[\x83/T\xca\xb4\xfby\xf3\xfeK\xc4\
+\x1c \xa1D\x02\x80\xfd\xbc\xd6.\xc3\xcf\xc3\x9e\xc5\x8f\
+b\xdf&\xa0 f\x97\xab\xfa\x93\xf1\xc7n\xad\xc5\xac\
+qxq\xf8a\xa0\x12\x90\x82zO\x02\x85y\x86\xc3\
+J\xa93%\x8eu\x9b<\x1c`\xfc7\xf6\xe7\x9a\xea\
+\x8e\x7f\x85\x1f\x88c\x5cS\xecI\x04U\x22\xf2\xfe\xfe\
+\xdc.0\xb5#\xe5\xfd\x04&\x18\x07\x1c\x7f\xed\x07>\
+\x0e5C\x80\xf3\xae\xcf\xbfv\xd0\x09(\xf09$\xb2\
+\xf8;\xae\x97q\xaf\xda\xd8\xa31\xe3~o\x1dx\xf0\
+\x00\xc0\xb3\xb1\x9a<\xfd\xe2\xae\x82\xaa\x8b#\x8a\xc3W\
+epQ\xa1\xf4\xcc>56\xcb\x18\xa6SYO\x0e\
+$\x06\x06\x99XJ\x0ep<k\xc7\x8a\xef\xe3\xef\xf8\
+<\xbe\x8fL-G~\x8e\xa3I\x06\xf2\xd1$\x02\x13\
+\xdc\xaa\x18\xb1\xf5\x8cm\xad\xbaX3\x0a\x08P0\x81\
+*QCw\x9c\x08\x00@\x05\xe25\x11\xbe1\xfd\xfd\
+L\x9a\x90sN?\x1eN\xd9\xc6\xa1\xa9\xd5\xe5Q\xf9\
+e\xbcppkQ\xbc\xb7\xe9\xf7\xa8\xcd\xbf]\x0b\xf7\
+2\x1a\x9f\xdc\xb7:-\x0cP\xcdy\x8d\x03H\x9fU\
+\xee#\x8elU\xea\xe1\xdd\x03\xd8\x88\xc8\xe4s\xbe\x04\
+\x88\xf8\x9e\xba-!\xf3\x82\xfb\xcc\xf52\x1f\x96\xf0\xee\
+\x06\xe9\xbe\xd6\xe2&\xfc\x1d\x9f\xc3<\xc5ag|p\
+\xcc\x974\xbcA\x89An\x83\x98\xbe\x7f~\xcdC\x1c\
+p\x9e\x03\x024\xb5\xda?\x0f\x22\xf7\x1dG\x9f\x8d\x9f\
+L\x05\x94,\x1c-\xe6\xadkG\xa8\xbb\x06\x14P\xfe\
+\x8e\xf1\x869@\xcd\xa2(\xba\xa8\xdb{`\x80\xfe\xa4\
+j[\xe7\x0bUE\xc9\x1av1\x145\xfb\xd4\x8a\xe9\
+\xf9\xf7~\xb4\xb4\xa5\xa3m\x22\xa2.2,\xc8P{\
+\x84\x9a\xebf\xa1\xe1y\x97\xca.\x99B\x1c<\x0f0\
+\x92I bN\x97\x01\xda\xe8\xc0\x10\xe0z\xd8`\x10\
+\x9d\xfaiR\xd7\xa7&y8\xcePP\x151\xa4\x14\
+P\xf1ZBT\x90\x9fO\xfd\xab\xbd\xdd\x9f\x0c\x08j\
+\x1b\xbd\x86\x9f\xc0\x0d*\xd9\xbfKb\x5c\xb4\x83\x8a\x19\
+\xe7\x7f\x17\x94\xfd\x07\x13\xf5\xd6k\xd1\xe9O\xafv]\
+\x18\x02\xae\xd6-\x0a\x5c\xf3\xa4\xa1\x98\xb7jg\xd3~\
+ \xa9\x9f7\x9d!\xbc>\xc8\x90K9\x82{\x1dk\
+}\xbd\x9d\xd7b\x89\xf1\x12k\xd4\xd7(\x1c@4\x15\
+X\xc7.L\x06\x155\xce.~\xb7\x8d\xda\xbb\xfd#\
+\x8d{\xff\xcd\xfe\xbc\xde\x1c\x92\x9f\x18\x8aH>\x99\x10\
+2(\xe7&\xa6\x88\x07F\x16k\x17m\x17-\xbaT\
+h\xdd\x0a^B\xf8W0:\xa0\xf8\xa2>\xac\xae\x02\
+\x04N|\x83<=\x22\xcf{Q\xd4\xa3\x83h}\xd8\
+\x8f0\x88\xa2\xffQ9\xb0\xa7\x17\xed\xded8C\xbd\
+lT\xb2\xde\xceb\xc85\xbdd\x10\x11\x8b\xf3}\x8f\
+\x8c\x85\x1c[\xcf\xa0[\x89F\xd8\x88\xdb\xdd\x03v\x0b\
+\xcbET\xe7\xd2|1j\xef\x89\x86d\x98\x0e7)\
+\xe05\x7f\x14\xc7\x8d\x0c\x91\xd8\x06\xf0\xa79@\xd5\x1c\
+f\x08\xef\xdb-\x22_\xbf\x02\x00\xfd\x0d\x86\xbc\xde\x8e\
+\xde3\xda|\xb4y\xb1\x9f\x92A\xe0\xfe\xaa\xe4\x06\x07\
+\x0e\xa6\x86\xb7\xe13\xe6\xc9?\x8b\xcc\x07\x9fCF\xcc\
+\x18\x0e+\x17\x8c\x00\x89s\xf5\xdf\xea/\xecM\x5cn\
+=\x83\xc4.7\xce\xeb\xb0\xd7\x8c\xf2\xfc\xea\xfey\xbb\
+6\x02\x11Z\x0f\xc9\xccY\xc5\xb9\xd5\x9c\x13\xd8\x1c\xbd\
+\xd9\x90\xf7\xf9\xd8\xce\xf0\xbd93\xea\x19$\x026t\
+\x1b\x103\xa2\xff\xa1\xa1h\xb7\xf7nC\x0e, \xba\
+\xd8\xdfi\xc8\x19\x14\x17SD\xdb\xe3\xc2t\xbd\xde\x9d\
+\x02\x03\x9a\xae\x15\x882\xaa\xd6\xbd\xff`\xbfUo\x1a\
+\x07\xbb&1\xd0\xee\xc7\x86p\xdc\xb9\xdb\xa5\xdb%j\
+i\xbc\xd2\x05\x03\xb0;\xa8;\xb8;\xb8\xd0\xda\xf8\x8a\
+!2WRm\xf7i\x86\xf0\xf3g\x93z\xfcDo\
+\x08\xcb\xd2\xe3\x86\xf0z?Cx\xbd\x83!3,\x9c\
+\x9a-\x8d\x85\xf6\xba\xf6\xfa\xf6\xfa\xa2\xc4\x91@\xd5\xe7\
+\x0c\xe1x\x81!w#\x18?\xc1\x10^/a\xc8\xa5\
+B\xf4\xcd\xee_\xeb\xff\xdb\xff7jP\xa4\xe7\x97\xf9\
+r\x85!\xfc~d}C%V\x18\x9e\x83\x89\xa9\x86\
+l8\x8fV3\x84\xf3\xfduwkg\x22\x87\xab\xb5\
+\xabZ[\xd2\xd1y\x01sg;\x22\x96n\xdc,\xd5\
+\xee?J\xf4\xeb\x85\x82RMM;\x0e6\xcf\xf9y\
+\x91\xd3\x94\xed\x94J#\x89n\x1704\xdag\x0d\xe1\
+\xfbO0\x84\xeb\xbf\xc5\xa0y\xf6\x98\x02B\xeb\xe7R\
+(\x0fx\x93\xd9\x16c\x89\xee(.r\xf9kC\x0e\
+dSZ\x82C\xeeL\x04D4\xb1\x07\xb0;9o\
+\xf6C\x12\x0c$\xa8\xeeU\x86\x92}[\xe2}\x88\xf0\
+y`\x17\x0d\x12\x1c<\x9d'\xfb\x94g@o2\x88\
+\xb2\x7ffQ\xe3M \xdc\xa4\xea\xce,\x98\x7f\x88\x01\
++#\x8f\x98\xe5\xd8W\xc7\xbe\x16\x19\x0a\xb3'\xc6T\
+\xd4l\x98\xb7(%\xa2\xbb\x8d(\xf4\xae\x95 \x8d\x81\
+X\xd2\xb0c\x0c\xbc\xed\xdb\xef[\xd8C\xea\x02\x84V\
+\xce\xd8\x89r\x80\xc7%>\xaa\xeeH\xce\x88\xbc)\x95\
+\xb4y\xa2\x02\x06\x1f\xfb:b\xba\x8c\x7fU\x13\xee\xed\
+\x98\xb5\x9eb\x07\xc0\xf8q\xbb\x90\xee'\x88\xda\xe1P\
+*\xb3\xee\xeb\xa1\x02+^b\x8d#\xa7}\xc5E\x22\
+\xf59\xcd\xef\x0c\x856\x06\x99z\xec_\x12\x9cu-\
+<G\xecW\xfc)\x12(b\x8a\x0e\xe7\x19\x0a\x8d4\
+\xb4\x00\xf8\x1e\xec\x061,\xbd\x8b\x00\x09\x11\x1cU\x18\
+\x98d\xfc\xc50\xf2y\x02\x95\x1e\x06b-\xd2\xc7\xf9\
+\xe3\xf8s]\xb5#\xcd\xb82\xeed\xfe\xf99\xf7\x15\
+\x7f\x8c\xd7\xbc\xafj\xe3\xee\x09\x91?)\xc3\x8e\x1d\xfb\
+\xb8\x1c\xf1\x97\xa5\x91\xc7\xdf\xc9\x8f\xf4\xc0E\xa5\xdd6\
+C\xa0\xa4\xee.\xc0\xf5\xf0\xfd|.~E\xdd}\x80\
+\xbf{\xb5\xea2W\x076\xd8\x8f\xb8\xef\x8cW\xc5\x80\
+\x1d\x8f\x94\x95\x1b\xf4\x01D\x08^\xf4\xba\xef\xe4\x80,\
+\xa4L\xc7\x1a\x85#\xc3\x80\xdb\xe37k1\xa1p\xf0\
+\x14\x81\xac\xd5\xd1c\xad\xd6|\x85cH\x86\x01\x87\x8d\
+\x0c0\x8e\x17*\xc23\x1b\x0aG\x96\x85\x1c\x0a1\x0e\
+\x15\x91\x1f.\x98\x1bW\xb7K \x00\xc0\x80\xd6}\x12\
+\x198\xfe\x11\x81\xab\x1f\xa8Z\xdc\xac\x0e\x18d&C\
+\xdd\xbf\x9e\xb6\x7f\xc9\xd1\xc4A\xa9T\xcf\xfd\xc8\xf8J\
+3\xc0_\xe3\xf0\xe6>\xf7\xe9\xf5\xb2\x1a\x17\x1c2\xd4\
+Q\xdf!Uz\x98\x03U\x0d\xbc;\x1c+U\x81\x02\
+(\xedD\x84\xf9;\xbe?\x9foz\x8d\xe1\x88cO\
+ gng\x08L\xaf\x09Q\x97\x80(\x10\xd4\xbc\xcd\
+\xdb\x14&\xc7\x9d\xef\xcfb_i\x1e\xf0}\xf5\xf7\xd6\
+\xed\x1ey\xff\x12\xdef1\x05\x08j&\x02\xe7K@\
+\x8a\x0d\x17G\x9f\x88]\x1d(b\x81\xc5\xb1\xa2\xdf9\
+\x9fO\xa4\x98\xf1\xe5>0\xaf\x19g\x18\x018\xe6\x88\
+{\xf1\xb9,$\xccc~N\xc0\x00&\x02\xf3\x10\x0a\
+;5\x5c,\xd8P\xefp\xf8\x11\xaba\xbelj(\
+Tm\x09<@iS\xad\x1c\x86\x86?\x87\x15\xb3\x80\
+\xccilWuh\xce\xc4\xbb\x01\xba\x86\xa1\x08(!\
+\xca\x83\x06\x88\xda\xe3 \x8a\x88\xd8\x9f\x8b\x90)\x22\xee\
+\x99\x00\xe6\x15\x11T\x02*\xcc\x03e\xea\xc8\xc4[%\
+`\xac\x05d\x83\xa3\xc6\x0eqJ\xf5\x1b\x8f\xaa\xf2\xb3\
+\xe5vj\xb4\x97\xf3H6]\x01p\xf8i\xcf(G\
+\x95\x80D\xf3EC\x9e\x17\xb4\xd5sC\xe8BC\xa6\
+\x16\xd3n\xab\xddP\xaa\xfc\x0b\xca\xb1F\x9cja\xb5\
+\x11|\xb9y\xb5y\xb5\xb8\xef\xa8\xe4J\xb5\x1e\x0a\xa2\
+\x97\x86h\xdd\x22\x83=\xcc/\xea\xacD\xde\xfa\xc3\x0d\
+\xe1mw\x1b\x0af\x04\x06\x95\x1c|j\x5c\x9d\x89\xf0\
+j:\x8f\xf6\x87\x86\xac\x02\x1f\x0c\xfb\xd5\xdb\xd5\x0b\xc7\
+\xf4\x13j\x17\xa5\x0c\xeb\xb0@\xc0[s\x7fu\xef\x82\
+@\xa0\xf4\xe4\x08\xbfon \x8b\xea\xde\xedg(\x1c\
+K\xa9\x88GF\xc6\x89\xb9_\xbak\xdf\xe8\xb1\xf5\x00\
+\x9c\xfea\xa8\xf7\xcb\x1a\xc2\xdf\xff\xd1\x90\x03ad\xf0\
+\xfd\xef\xb9Oj\xfb\x18\xd5\xb3\x7fY\xac\xd3\xb6+\x8d\
+\x17\xa5?G\x8f\x1dmb\x84\xb1\xed\xe2u\x91\xe1\x92\
+\x18\x0d\x94\xd8\xe0@\xa9\x14\x04\xf5yo\xbb\xa6\x0c.\
+\xda\x17\xce\x5c\xbaE\xe2R\x8dJi\x94\xf1\xf2\xf6R\
+\xf4\xc5\x96\x83J\x06\xd6\x9a\x05Z\xbb@\xafm\xd5:\
+\xd5\xdef\xc8\xf3>>5\xdb\x14\x81B\xc4\x9a>\x98\
+\x98<\xc3\x9fS\x06\xa4?\xbd?\xad\xb7\x9a\xdc\x97\x0c\
+E[P\xa9s7\x97\x192\xa5\xba\xfb\xbe\xa1\xf8~\
+\x95\x02\xf8~\x88\xfa\xb5\x98k\x04\xb8\xfa\x8f\x1a\xc2\xf1\
+1C\xf1\x5c\xa3\x86\x0e\x93\x09\xb1Q\xb5\xedd^\xf7\
+K\x18r\x0d~\x7f\x9f!w#p\x8d\x05\x95z\x10\
+\xc0\x81\xaa\xdbw}\xf8\x17_'\x07J\x01\xd6~m\
+Cv\xb8(\xed\x08\xf7=\xae\xb7\xfd/\x0c\xe1\xba\xf7\
+\xe8\xf6\xec\xf6\xcc\xe2x8\xfe\xdd.\xdd\xce\xdd\xce1\
+\x03\x1aE8\xbb\xf3\xbas;\xa3\xf4\x9f\x99\xb43b\
+\xbb\xbe\xcd\x82\x9dwS@ph&\xb62\x84\xe3\xe2\
+\x86p\xfc\xb3A]\x01\x82c\xd8\x9f\xd3\x9f\x1b\xbbh\
+\x5c>\x5c6\x5c&\x91\xd0\xadr\x0d{\xfb\x0bC\x0c\
+\xe4\x04\xe4R\x93\xd1V\x86p\xfc\xb6!\xfc\xbcM\x01\
+;\x1c'\x02\x9e\xc1:\x8c\xddK\xfa+\x93\x83\x0fE\
+9\xb6\xf3\xb3@\xc6%\xfd\xa5\xfd\xa5\x91\xf9\x10K\x05\
+`\x02L\x9ce\xc8\xfb\xcfh\x91\xd1\xa2\xa3\xb0\x1f\x8c\
+?n\xc8\x01\xd4(n\xb7\xaa\xd4\xfe\xef\xcbZ\x0e\xe6\
+\x0e\x9aCH\xfbC\x18\x5c\xb1k\x8bi\x95\xec\x94J\
+\x1f\x9c\xf1\x86\x9a\xbe\x0ce/I!3)\x83|\xf4\
+5C8\x8f\x9d\x0c\xe1\xf5'\x0db\x84\xad[\x94\x84\
+H\xb3\x82\xed\x8e}\xac]\xd7\x10~\x7f\x9d!\xbc\xde\
+8\x05\xc4\x10\xb7$\xf0\x14v\xb3\x0f\xd9~\x86\xd8$\
+\x81\x01J\x89\x9cI \xa6\x86\x97\xa0\x11p\xa5\xb4P\
+%f\xb1+\xc6\xbb\x0a{\x82\xfd\x18;\x10\xca8v\
+\x10\xfb\xa1\x1c\x14\x0fxk\x9d\xf5R\x08\x0b\xf8\xac\x91\
+\x19d&\x1dk\xe2\xb11\xd0~l\xe1\xa0(P\x0e\
+s\xc2K\x12/\x19\xbb(\x8a\xd5v\xc1\x0d\xeb\xb2\xfd\
+\x83v\x843\x8cD\xb5w\xa6\x03\xa5n;)\xb0\x22\
+M)(\xfb\xde=\xe9$i$\xa1\x05\xf3\x9b\xe6\xb6\
+\xe6\xb6(\x8e\x97\xdaSbo\xd2\xbd\x87D \xf6\x1d\
+\x8e\x17\xe3\xc1z\xb5\xbb\xec\x1c\x95\xf6\xb8\xfdA\xe0\x9b\
+\xeb\x86\xb9\xc8\xf5\xe2G`\xc7I\x8b\xc6\x19\x0507\
+\xcf6\x14\xf6\x0e\x81\x1c=\x1f\x88E\x13\x90\xa4\x0d\xae\
+\xfb7^3)\xbb\x94}\x95\x0c>\x0e7\x19wj\
+\xf0\xd1l!\xd0N\x1b<\xd6_\x1cf\x8e8\x9a\xd8\
+\x9d\xd8U\xb5\x83\x8b=J\xed<L\x09\xbe\x8f\xef\xc7\
+\xf1GK\x89v\x85\x9c'\x0et\xed\xaf\x11\x08`|\
+i\x8f\x87\x98;\xf7\x17\xbb\x1c;\xbdfx\xd7\xe3\x86\
+\xc3\xfc\xaa\xde?U\x01\x0c\x89O\xfa\xfc \xf0\xcf8\
+\xe3?2\x0f8O\x02\xdd\x8cK\xc5\x14\xf0\xbf\xd7x\
+z\x09\x0a\x9f_w\x17\xe3\xfbq\xf0\xf99G\xba\xf9\
+\xfc\xdbP\xcc\x8fZ\xec\xbc\x0a\x1c\x8c;\xd5\xa2n\xf3\
+f\xff\xcfR8Rd\xd8\xc9`\x92I\xad\x22H1\
+\x8f\xbd\xbc\x1c\xd2y\x8b\xcf\xe3\xf3\xeb\x1as2\xabP\
+\xc3y\x008\xe2X\xe28\xd6\x22{\xfc\xc3q\xc4\xe1\
+k\xb4\x223\x008\x98\xdc0\x227\xb4\x19D\x1d\xb4\
+z\xb0\x9c\xd2O_z\xce\x03\x07\xb1\xae9Q)\xc0\
+\x0c\xdd\x04\xea\xf3\xac\xd5#kM\x029\xf4\x1e0!\
+\xf0\x22\x91?\x7f?\xe3\x9bot:\xf2{\xc4\x92\xa8\
+}_W\x11c4\x03\xdeZ9\xe6\x9c_]\x82@\
+f\x9fq\xd8@\x91\xf5\xaa\xa6\xdf\x1d\xdd\x95Rf\xd6\
+\x17\xd8\xbat\x80@Q\x1d\x08\xc0q\xc1\xb2~\xdd'\
+nz0[\xfd\x9cZ\xc6y\x0dE\xbb?\xa8\xfa\x94\
+\x06,\xa4\xf3}\x97\xb4\x03\xb8ni\x0b8\x93`A\
+\xcd\xf3\x1chI\xf3\x8e\xf9\xcf\x86\xb9P\x15\x80a\xc3\
+`\x9c&c\x0ep$@\xc5\xf9c\xa0\xca\xc0\xf5q\
+Dk\x00Q.Q7\xfds\xe8\xcb\xacH\xb032\
+jQF\x9eW\x02*8\xa2_0\x14\x01\x0f\xa9U\
+\xa3\xf6\x8eC\xe1\x1a\x03\xca4\x90\x91\xa4\x0d\x10\x99|\
+\xa8\xfa~\xfdtm@\x0d\x97\x00\x06\xf7\x1bC\x84\xe7\
+L\x1b\xa1\x8b\xf8\x90\xa9\xa6m\x1d\xed\x8b\xf62\x84\xf7\
+\x1dl(\xd4\x8aq\xf01\x00\x95!p\xc7\x9e\xcc4\
+\x99y\xfa\xb3\xa3\xeeO\xe6\x9dvwZ\xa0\x9d\xba\xae\
+@\x03\xcc\x84\xe6\xb7\x86\x5cC\x8e\xa3C\xc6\x83\x0cP\
+\xb3vr\x08-\xdff\x197\xd7>`\xc3@E^\
+5\x89\xed\xfb\x0c\x05\xd5_L\x84vWC\xce\x144\
+g\x18r7\x10o\xbf\xf6\xebT\xeb>\x1cT\x89\xc2\
+A\xfdU\xfb#\xaf!D\xcbA\xf7yx\x7fj\xd3\
+4\xf1CCX\xbe\xben(\x9e/Q!c\xbb\xbd\
+G\x8a\xeb\x95\xa1\xde^g\xc8mA\x9b\xae\xe9\x9b>\
+jL\xa4@\xcdH\x81\xe0\x85\xd2\xfc\xf2vF\xcap\
+7{\x05\xec-*\xff=E\x80\x87\x8c\x96\xfd~\xaf\
+\x82\xe9\xa4}(j\x11\x04\x07\xd4\x08\xe8FA'\x93\
+\xe7\xed\xa0(}\x11c\x05\xc6\x05\xa2f\x04f\xfa\xfb\
+\xfb\x07\xfa\xfb\xa3\xaa\xf6\xda\xa6\xaa\x8dc0e\xaa!\
+\xbc\xff\x10C\x91\xe11\xf7t\xd1\xac\x0e\x1d\xcd\x8f\x9f\
+\xa9&\xf7\x84\xac\x15\x10\x9f\xca7I\x5c\xf2\xfd2\xd0\
+n*\x0c\xb0\x9de\xc8\x8a\xca\x8e&\x00\x81\x08\x0f\x08\
+\xa1\x95@\x00B%\x01\x94\x22\x10\xd8\x1c\xden\xc8\x99\
+\x09\x0f\xfc\xa9\xbdT\xff\xaa!\xfc|AC\xf8\xbc\xf5\
+\x0c\xf9\xfe\xb1\x0eD\x02\xed\xaf\x0aM\x0b\x9b\xef\xc7\x14\
+L\x1ai'\xf4?\xe8/\xef/\xcf\xa58&Mg\
+\xe2t\xc3\xe2\x86p\xdbo0\xc4\xfb\x9c\xa8\xc3h_\
+\x88i\xc6\xfcin4\x14\x9a&<\x9f2D=\xd0\
+$\x83\xba{\xc8\x10\xbe\xe7(C\xf8\xf9E\x86\xa2?\
+\xb7\xf6\x91aMCQ\xbb\xae\xb6h\x04V\xa0\x1a\xa3\
+a\xe15\xfc\x12a\xa3\x94\x00\xd15\xfa\x80\xf7\x1b\x89\
+Y\xa0\x80\x82\x1b\xde\xbfH\xc7\xfejCn#\xd6<\
+\x91J\x05\x10\xcfD\xd4\xad\xfb\xad!\x1c\xef\xe8n\xef\
+n\x8f\xdd0\xc2\xa3\x13~\xbf\x8aA\xea\xef/g*\
+u\x1c\xdfk\xe5\x18\xaf\x5ctqP\xb7\x05\x02\x16\x13\
+\x8bO,1\xb1D\xfe\x1e\xda\x91\xd2\xf6\xb2\x99\xb3\x99\
+\xdd\xda\x16\xb7\x1f6\x84\xe3\xeb\x86|_]\x5c\x0c\x0d\
+\x12\xd9I\xcd\x84!\x1c\xbfa\x88\x0c\x9fXR\x83\x06\
+O\x14\xc1\x9c7S\xcc\xdb\x9b\x0da9\xba\xcc\x103\
+\xbd\x91\x9aO\x17\x12g\x06\xc1p\xd3\xf7\xc6\x92\x19\xd3\
+\xbe8\xd1\x10\xe6\xd1~\x01\xfb\xc6.\x19\x01\xe1\xf8\x9c\
+A\xf7\xedS\xb9\xebJl\x17j\x01\x95/\x05|Q\
+\x86\xb6=\x07\x1b\x06l\xa0\xe3\xbb\x0b\xb1J9 0\
+\x1fF7\x05\x84\xfb7\xbe\xb1!\xefk\xd2\xba\xcb\x0e\
+$5\xd20\xd9`\x0cY7\x890\xcf\xda\x0b\x0d\xb9\
+\xff|s\xad\xa1\x10o\xa5\xc4T5\xf4\xccc_\xcf\
+U\x13\xcc}CD\xd0\x99{\xa2\xca\xc7\xf5{39\
+\x02\xaf\x14\xe2\xc0\xb4\xe9\x85j\xbe\xb4!\x97\xdcD1\
+\xe3\x0f\xc8!_\xf1\x0d\xf6c1\xd4<\x10\xa1u\x95\
+y\x1d\xc3@\x97\x15LL\xecY\xe3\x81\xec/\xbb\x7f\
+\xe6\x22\xf0\xad\xe7`X\xca\x90\x03\xe5\xfda\x86\xbc_\
+\x0f\xd7&q_\x17\x7f\xfe\xad\xc4\xe4\x08\xe4)\x83\xce\
+:\xe7\x22\xc2\xd8\x15\x88\xca\xe9\xba\x9b\x87\x93\xc6N\xb3\
+\xa9T\xf6\x95hp\x11\xe2:\xd1F\x22im\x05R\
+`\xa6!\x12I\x02\x84\xf5\x1d;\x10F\x22\xdd\x88\xc8\
+ \xf3\x1cA\xd1\xaf\xa8\xeb\xc3{\x0cE{\xc8\xf1\x14\
+8\xf3\xf3S ?\xb6\xd3]7\x07~}\x1fW\xe0\
+\x18\x11T\x0f S\x9bO[A2\xfa\x94tT*\
+\xf9\xee\xb8\xe2\xd7\xe0W\xf0\x8f\xd7\x9c?\xfe\x12\xcc\x94\
+\xdc\x95,e\xf0\xf9<\x1c_\x18Z\xb2\xb7\xd0\x90\xf2\
+\x84\x14L\x00\x18\x04<W\xb4\xeb\x83\xb91\x19s\x9b\
+\xf1\xaeJ\x02\x9cI\x81(a-nN\x04\x0f\xff\x92\
+\x04m\xdd\x9d\xad\xd2Bp\x06D-\xce\xc7u\xff\x8f\
+\x80\x80\x07\xd0\x09\x08\xd4\x81\x8e\xc9\x18\x02\x15S\xc0k\
+\xfd\x19\x97Z\x1b\xaf\xee\x02\xa0\x80\xc0x\xdc\xc6\xdfT\
+\xd4\xfe\x9a\xe1\xb6\xa22\xc2K\x16\xd4p\x1c\x14E\xe4\
+\xe8W\x1d\xf3\x09\xcb\x155<D\x1a\xc9\xd4\xe2\xd8\xf3\
+@\xb1P\xd4\x8e_]\xfb\x8f\xe8\x1a\x99\x1f2\xfdP\
+\xc1q$\x99\xc0\xa8\xe5\xbeE\x91\xc3w(\x80\x80#\
+\x84\xa3\xc3\xf7\xd75\x14\xdc`\x220\xd4\xce\xe0h\xd1\
+\x85\x00\xeaQ]s\x82\xa3\xfa\xba\xb7\x13\x9c\xbe\xad\xe0\
+X\xa5q \xea\x92G\xd8jJ\xf9kU\x84'\xdf\
+\xf0tdb0\x11\x9f6\x14mD\xf8\xfb\xc6K\x10\
+\xd2\xf7f\x87\xb4f$L_\xda0c7\x05\xba\x0c\
+\xa4\xe3\xdc\xae\x010}\xc9\xc6[\xe4\x80\xe3\xf0\x13X\
+\xe0\xef\xd8\xb8\xe64\x14\xf7\x05\x87\x99\x0d\x84\xef\xaf\xbb\
+\x11x\xd1\xa6\x8e\x95f\x83__.\x09\x98\xae\x0d^\
+\x8c@\xf7oP{SG\x08\xf9|\x0cO\x89\x86y\
+\x8d3\x81\x00\x02,\xf4]\x87rXw\xa7`\xfe\x13\
+H\xe3\xef9/\xe6\x11\x91x9\x1e\xdem\x80q\xa4\
+$\xa3b\x9c8\x85\x91\xd2\x12Q\x92\xfd{q\x80\x09\
+\x08\x10a\xc5\xe1`\x9e\xa0\xe2O-\x9c\xc6\xc3k)\
+e\x00\xbbh\x1d\x19s(]0\x1bP\xb1\xa6\x06L\
+\x0b<\x14j/ia\xdd\xe0\xba\xa1\xa0\x131\x85\x1a\
+\x8c\x03\x8b\xe3O\xed'\x8e!\x8e\x22\x0b\xab6B\x18\
+\x0c\xfc\x1c\xaa\xbe\x8b\x04a8(3\xeb\x99e2\xc4\
+\x12\xc1#\x83\xed\x8e\xbf\xd4\xe2\xcd\xbd\x8d\x0e.\x81:\
+\xbe\x87\x12\x07\x05\xdcx>\x87\xab\x0dy\x9c\x9cQ\xf0\
+\x8c\xa1`\x8c\xa8\xafq\xbbSr\xf4\xfa]\xfa\x9d\xfb\
+\x9dsf\x9dL\x80S\xc4\x7f\xad\xda\xc4\x0b\x0c\xb9V\
+\xb1\xf9k\xd2\x16h^Q\x7ff\xc6s>\x05j\x9e\
+Q T\xa2k\x13?N\xea\xeb\xdd\xf7\xba\xefv\xdf\
+\xcd\x14_\xd6a\xdaU5\xcf\x192\xb3\xa0\xd9\xccP\
+t-\x80JI\xdfpi(\xb4\x9f1d\x11'\xd6\
+=JY\x86\x13\x87\xafG\x8a<\xa2N\x0a\x80\xe1\xc8\
+#\x0e\xe9\xa2[\xea\x9a\x80\x8a\xbb3\x14\xe8\xb2q\x93\
+\xa10\xbc\xec\xaa\xe7\xc9\xeb\x9a\xd7\x82\xcb\xa1p\x0a\xf8\
+\x03\x16\x0a\x08\x7f\x7f\x9a!g.\xd0\xe8\xc0\x01\xf7\x9a\
+H\x89\x12\xc5\x80\xde\xb2\xa2\xce\xde\x5c\x94\x18X\xc6\xfb\
+\xfb\x85\x18\xa4T\xbb}\xfe\xff9\xcd\x9b\xfeo\x86\x9c\
+\xa9wf\x8c\x1c\xe6\xf6C\x86B\x84L\xa5 d\x9e\
+\x86]R;\xcc~\x01C\xec\xf2\x90\xc4\xbf$N\xd5\
+\x1eh\xc8T\xd2\xd1\x81\x86\xa2[\x07Z\x13\xb4\xb9\xa2\
+\xa6\x1aq'\xd9\x0b\xb4\xeb\xea_2\x14\x06\x0b\x99\x1e\
+\xb4e0\xc8\xe8+\xfe\xa1\x94Ac~S\xe3N\xb7\
+\x02\xdf\x07`\xd2p\xa46X\x0e&\x1a\x0d\xd3\xae5\
+\xe46w\x88qZ\xfe\xcf2\x80\xde\x96O\xed\x06Q\
+S\x1f\xd62d\xe6\x03\x22\x91h^\xe0\xa0\x90 p\
+1@ep\xbbC\x0d\x91\x92|@\x1f\x1c\x83~\xaa\
+\xda^J\x85>\x98\xb5I\x04naC\x11\xd0\x17S\
+\x04fQ\x7f\xba!\xf6\xf1\x8e\x86\xbd)&\x98fB\
+w\x95\xa1H\xc4Y\x80\xe2\x11iO<\x1cE\xf5N\
+3Q\xbdX\xea\xf2\xb9|>\xdd\xec\x86\x98QOm\
+%\x95I\x8e]:\x9e/2m\xba/\x94\x10\x0d\x0b\
+\xa5\xf3\x1cf3\x84\xcf\xfd|\xff\x85\xfe\x0b\xc5s\xa5\
+\xe7\xae\xfd\x8b!w\xc9\x18\x8e0\x14\xeb\xbc\xee\x1f\xcc\
+\x19\xa8\xef.\x96)\x07kt\xb6!\x8c\xc7n\x86\xb8\
+\x9e\xa4\x92%\xba\xd9\xa8\x96}bIC,\xb5\x8am\
+L\x83\x1b\xf07[G\xfb\xdd\xfb=L\xac\xb0{\xad\
+\xfbo\x17\x9e\xdf\xfe#\x06\xf5C\x0f\xe3\xd8\xbd`\x08\
+?\xff\x8c!\x1c\xc3]\x8a]\x0a\xacd\xe3T9Z\
+c\xca(/\x99\xc5CM\xa2\xceD\xeaF\x8f\x06L\
+\x8d\x1a+\x1b\x9b\xfa\xfc\xf0\x0b\x83\x98k?*\xec&\
+\x1c\x17\xd9\x11&ehb\x860\x5c\xbc\xa4\x8d\xc0\xab\
+\xd6+\xdf\xcf`\x92i\xff\x8a\xed\xf3\xfe\x99\x18B\x01\
+f\x97\x98E9\xd6\xed\xdb\xed\xd7\xed[\x94\xee\xa1Y\
+\xa4\xfd0j\x09l%\x15\xff\x87\xf2>\x15\xd6\x84}\
+cF\xfa\xed\xb1\xa82\xd7\x9e\x93i\x15\xb5\xdb\xf8\x19\
+\xfd%\x05\xc3E*\xfb^\xeag\x8c\xa6\x9b\x8aZ\xe7\
+m\x0c\xb1$, 2\xc6b\xe0\xb8no\x1d\xdd\xa3\
+\xbf';\xd8\x1c\xb0\xe6zC8>\xde<f\xe2\x7f\
+\x91\x01\xf5\x83\xdc>\xcfEp\xf7L\xb5\xefa\xd6\xcc\
+>\xcc^\xac?\xb4\x0bElU\x81`o'\x87}\
+\xa4@\x12\xa5;^b!\xbb\xc4\xed\xb9\x17\xb5>\xd1\
+V\x96\xae>\x94\x18\xe2\xb8\x8b\x1f\x0ffT\x00\x00 \
+\x00IDAT\x89\xe6\x8e6]\x08\xc8\xf8#\x02\x5c\
+\x89F\xa3\xd1\xe2\x8e\xa8\xb5\x93\xbd.\x07|\x9c\x91\xa2\
+\xc0A\xec\xca\xf5\x9f\x18\xc0H\x99r\x89\x01\x12\xf8\xf6\
+\x12\xa4+\x0d\x85C\xc9\xe7\x10\xf8\xc4n\xc6\x0ef\xbe\
+r^$\xb4\xb0\xef\xf9y\x9dX\xac\x1d\xe37\xb9\xe8\
+w\xb2\xd3\xf9\xfbJ\xc4\xd9\xfd\x16\xeck\x1cX\xfc\x96\
+\x8a)\xe0\xaf9r]\x1ck\x0a\xfcd\xe2~u\xc2\
+\x15-\xb7qCQ\xc2A\x22\xae\xd6\x9a\xc3/\x9a%\
+\xca\x9ag?\x04\xfb\x9c\xd2r\x18\x078\xfe\xecs\x5c\
+'\xe7W\x07D\x103\xac3\xfeu\xbb\xfb\x9a\xe1\xcb\
+u\xd7T\xff\xbad\xa0.\x81 \x10\xc0\xeb\x8aA0\
+\x1e7\xe2\x8f(\x82\xb5D~\xc0\x22\x11y\xe9\xa26\
+\x1d*x\x9d\x99\x7fKt\xf9\xf2D\xc3\xe1\xe7X?\
+\x10\xf5\x11\xc7\x90\x89G\x06zfW\xa9O7\x8a\x09\
+\x86CC\xc4\x0dG\x8a\xf7\xe1h\x93\x09&\x80\xc1k\
+\x1c]\xce\xaf\x9e\xe8\xb5\xca=\xed{\xc84c\xb0\xd5\
+\xe7Yg\xae\x87\x8abR\xb7\xa1 \x22\xf6\xb4n|\
+-J\x88\x8a\xbf&\x1a\xd4R\x0f\x140\xd1)\x91\xa0\
+m\xdd\xfa\xa2LM\xabj@r\xc9\xc2\xf4\x94\x10\x8e\
+eW\x87\x7f\xbf\x818#\xff\xea\x05\xa1\xee\x16@\xc0\
+\x03\xcb\x85\xf73>\x99i\x92\xc6\x8d\xd7\xf98}\xd7\
+\x06\xee\xcflZhT\xdb\xe5\x0b\xea\x8b\xa9\x9d\x8b;\
+ <\x88\x8c\x0f\x7f\xcf\xf9\xb1\xe0\xf0\xfd\x8b%\xc6\x88\
+\xb7M$\xb0\xc5}%\xf2O\x00h;CAAb\
+\xc3BE\x15\xcd\x01\xfa\xdd\xb2\xd0\xf2~\x02&L\x0f\
+\xd5Fy\x0d\x18\x8e9\x141Du\x10\x07\xa4\xe6\x8f\
+\x0cD\xad\xfa\xca\xf9B\xe9\x97\xc3\xef\xa28Z\xb0q\
+\xb4]U\x9e\xb6wdJ77\x14\x0e=\x948\x18\
+\x1el\xb0\x12Mq\x86\x09%\x0c\xfc\x1d\xcf7\x99\x12\
+\x02y\x88\xea\xc8\xd0\xf1Z=\x98\x14\xd4x/\xad\x92\
+\x15\xd6\x1b\xee\x0bbyd\xf2+*8\x11\xfa\xd8\xe4\
+\xed\xf3\xe1\xf5\xad\xcd-\xcd\xadE\x06^\x0b\xa2\x8ba\
+\xf1<\x8az\xec\x99\x19\xda\xc4\xa1\xf2\xae\x9aV\x8fP\
+S\xd2\xc1\xbc\xa7v\x0e\x95a\xd5H\xfb\xfd'\x93\xa6\
+\xe7\xb9\xbd\xdd\x90\x1d\x1a\xefs\xaf\x9aR\xd3\xd87\x95\
+}\x0c\x80\xe6\xf7\x86B<\xa9\xeefA\x9bP\xdaS\
+\xe1\xd0\x89\xc9\x80\xf8\x11]\x08\x86E\x92\xe1\x1f\xbc\xc8\
+\xb6kcMq7a%\x01G\x1b\x0a-\x82\xef\x1b\
+\x0aq\x1e\x9e3=\xa7^\x93\x88J\xb1jpY7\
+\x9b>9\xaa^\xfb\x88\xa8\xa4Q\xfe\x17\xc8\x86w\xf3\
+\xf5\xe6D\x13=4\xe2f\xa4n\xee\x12\x1b\x04z\x06\
+m\xa0X\x9f\x00\x015\xb3_\x92Z\xf3\xb7\x93\xd8\x12\
+\x94_jG\xbd\xfd\x94\xb4(b\xa6\xf8\xe2\xcc<\xe8\
+\xec\xb2'\xb2\xb8!\xa2mS\xd61\x14\x0c\x0c\x02\xd2\
+\x88W*\xf3\x8e\x03\x11\xcd\xaf\x1b\xd4\xbdb-1\x1c\
+.\xc8\xf7\x9d\xb6\x95\xd1\x00x6\xab\xbe\xf7\x7f2\x84\
+\xef\xf9l\xaa\xc1\xc61%\xb0\x14fy\x0aL\xb1\x8e\
+\xd1\xb6\xef\xa7\xe9\xfe\x0e;J\xacn\xd9\xd4/\x1c\x86\
+\x06\x86a\xbb\xb4!k\x07\xb8\x08\xa2\xda\xd7\xf9>g\
+\x0c\x98o\xe89]\xbe0(X\x8f\xcd,\xbd\xbb\xd0\
+\xec\xa84<\xfa\xbb\x0d\x05#\x09\x0a\xbc\x028\xfd\xae\
+\x86\xa2\x0b\xc15\xcd\xd5&\xde\xe85\xb5\xacCz\xee\
+X\x9f\xa8\xb9G\xb5\x7f\xe2\x0aC\xb1\x1fR\xb2\xa4\xfb\
+N\xa0\x9eL\xb7\xd7\xb0*\xe0\xec\x8e\x0e\x0e>\xea\xed\
+\xea\xb7N;;j\x81\xfb\xbd\xc4\x14xHL\x81\xab\
+\xfbk\xfap\x1f\xbb\xdbS\xe6\xbe\xff\x83!\xdf\xc7\xfe\
+\xe5\x14\x18\x19&$*w\xb4\x18\x0a\xf3\xab\xef\xfb\xd7\
+\x92\xb8\xa7wK\xf8\xa3!3Y\xa2#i]\x0a\xc2\
+\xb7\xf4\x96\xe9\xbf\xd4\x10^\x9fo\x08\xd7\xff\xf3\x800\
+\x9e\xd3\x8e\x99v\xec\xb4\xb0\xaeO,0\xb1\xe0\xc4\x82\
+q\xdb\x8b\xcc\x01\x18$\x04r\xfbk\x0d\xe1\xf7\xbf7\
+H4\xf3\xaa\xecPxw\x12\xa3\x90\x1bC\xea\x9fI\
+Dt\xf8\x8f!S\xcaG\xdb\x1b\xc2\xe7]e\x08\xf3\
+\xe8>C~_\xbb\x82\xa1\xe8\xbap\xa1!\x8b\xc0:\
+3\x0f1T1\xd1\xda\xe7\x0ca\x9a\x9db\x08\xaf\xb7\
+j?\xd0~ f\xe2o\x1e\xdd\x1cE\x08\xa3Xb\
+\xbf\x89!S\xa2\xbb\x7f\x18b\x7f\xfb\xa7,p\x16\xc5\
+\x1e\xc3|\x1c})\xc0D'7\x0e\xd8$\x8b\x11\x22\
+\x96\x17K\x13\xc6cI\xd5\x86\xadQ\xf1\x9f\x0e\xf8\xbb\
+\x02vg\xcbA\xdb3\xf6\xa3\xff\x7f\x03mc\x1f\x93\
+\x9d2\xa5\xd8\xc7\xd9\x87)\xa1D\xdc\x92\xfd\x04\xfb\x19\
+\xfbSv\xac\x85cc@\x96\xb6\xac\x12\x0d\x1d^7\
+d\x11Y\x98+8\x8e\xaeE\x22\xb5T\x0f\x5c\xcdn\
+\xd5\xf5\xe1\xf8MC\x0e\x5c\xb7\xeb\xa5R\x84\xe1\xfc\xe1\
+\x82\xa8>/\xc6R\x0c\xc8\x9e\x98K9\xda\x87\x0c\x85\
+\xe6\x05\xcc!e\x8c\xbd\xfd\x1c\x8e\xb8\x1c\xed\xf6o\x86\
+\x5c\xbaB\xd7\x0ewh\xcc\x0a01\xe2\xbd\x87}\xcc\
+\x8e\x89m!w\xcb\x99\x7f\x17k%\xe1\x80\xb8\xe0v\
+\xa9\x94gl\x0b\xed\xaf{K\xd3\xe35C\xd1\xb6\x95\
+\x00z\xc5$sf\x07\x81<\xd5\xb6C\x91\xf6\xae%\
+\xb2\x83\xbc\x0d\x22\xaa\xf4\xb5\xfd\x8a\x9dK\x82\x07\x11f\
+\xecf(\xfc\x95\xb8\xaa\xefw0[`zp\xbd*\
+\x1d\xa0\xd4\x93\xf6\x84a\xd5Kv\xe6\x1c)A\x04E\
+\x1f\xfb4\xce\xe3\x1f\x14\xfb@e\x7f\xfb}\x80\x12_\
+\x89\xed\xb9C\x88_U;\xaeu-y\xedX\x93\xb8\
+\xaa\x13Y\xb56Z\x95H\x9b\xa1T\x16?\x8a@\x02\
+~\xd7d~U\xad\xc5\x86}\x8f\xff\xc8s\x99\xbb\xa3\
+\xa1\xed5\xbdf\x18\xdf7G\xd5N}\x8e\xd8\xc7,\
+\xbd.\x19\xca\x5c\x1f\x0c\x10\xd9\x87^:1S\xd5M\
+m\xb2\xc4e\x1d\x18\xe1>\xd4\x01\x03\x02\x1e\x04\x02\xf0\
+\xcb*\x06\x80?\x0fu\xdbC\xdeW358\xca~\
+\x1b\x8f\xc3\xdaj`\xe6\xac(\xe8\xf3\x16\x03\xc0\x05\xf2\
+\x0f\x07\xb1\xce\x5cc\x18\xd6\xea\xfa\xf5D\xe8+\xd1\xbc\
+\x89I\x1c\xd6\xfa\x82\xea\xc8G\xdd.\xefe}?\x03\
+\x8b\xe1B\x00\x83\xc0\x01\x996(\xed\x944T\x8e\x95\
+gRi\xf3\x86\xa1\xcd\xc4\xc7a\xa1o:\x99@\x16\
+\xfe\xb9*\xd1;&v\xa6d\xa4q\x81r\xc2\xef=\
+\xd2\xa6\xcc\xf2\xecr\xecs\x06>\xdd\xa7\xc9\xda\x1d2\
+\x11\xebZ\x97\xbe\xba\x0f\xfc\x9c\x09\x9b\xdb\x1a\xa6\xdfO\
+8\xb3a\xfa\xfb\x5cSQ\xea~\x9dD\xbc\x98p\xdc\
+\xc7<_\xd2\xb1\x16\xb3x\xa9*\xa9\xa8\x17 \xe6W\
+\xad\x92\xc9\x91\x08\x1a\x86\xe9m\x86B\x94\x90\x00\xd6\x22\
+r(\xd9\xa8T\x934\xdc\x9c\xc4q\x9a\xb5\xc4\xf4`\
+\xe1@\xed\x9e\xf1g\x9c\xea6\x228D\xa2f!\xce\
+\xe6\x94yQ\xc6\x9d\x0a\x85\xe8\x956nog\xb8\xaa\
+\xa1\x10Q\xf9\xb2\xa1\x88pk~yF\x89\x12\x11~\
+\xcf<f\x9e\xb1\x10\x90\xd9\x16E\xdb\xdf\x87F\x06\xf3\
+\x1aQOQ\xb1\xbdv\x99Z79\xfa\xcd\xe7\x0d\x05\
+\x85\x1e5\x7f(\xd2\xca\xf4\x92\xe1\xf5\x85\x0a\x03_\x99\
+r\xaf\x19dA\x86Y@;3(\xdf\x18\x90P\xb9\
+)\x95\xa0\xd6\x8dL\x9b\x0c \x1c\xd2\xe6\xf1\x80'\xf2\
+\xc6\xec]0\x94\xa1\xf1\xe7X\x14B\xc4\xbd\xb8>\xa7\
+D\x1e`\x08\xaf\xbf\xa66I\xcc;6VQ\xfa\xfb\
+'\x0dy\x9e6G\x18\x8a\x8c-\xa2\x82\xdc\x179>\
+8\xbe\xde\x8e\x91\xcc(\x86\x05%\x03d\xfa\xff\xa8@\
+\x84\xc6\xa7\xb9\xc2Pd\x1e\xf4<\xf4\x8b\x192\xf53\
+\xb87\x91\x0a\xda\xafa\xc8j\xe2n\xf0bX0\x9f\
+\xd1`\xa0+\x01\x19\x15j7\xef2\xe4\xccLs\x81\
+\xa1\xc8\x8c_\x9d\x1c\xbdae\xd5\xb6NK\x86.\x14\
+bg\x18\xd0\x17{\xbe\xd8/%Q\xff\xfeVdh\
+\x8c\x02\xb9^\xcc\xd4nb\x99\xda\xd8\xdf\xfa\x9bE\x80\
+D\x14p\x0clg\x16(c\xd5\xcdo\xc8\x9a\x03\xce\
+\xd4\x10\x83\x05\xaa1L\x90\xe6nC\xd1nO\x81\x11\
+7`L\x12\xeb\xdaH1\x0dPI\x841d\xee\x0c\
+\xf8]a\x90\x99!\xf8\x9b\xec G\xb3\xc42x\xb7\
+\x18\xa2\x8a\xfaiQE]b\x86\xb1\x97\xc5g\x0a\xd5\
+\xf4\x17S)Z\xbf\xbf\xa1PU>)\xad3\xb1\xad\
+\xe0\x069S>\x1a7D\xc7;R\xea=\x90\xa6\xda\
+^2\x5c^\xba\x22FA\xac4>\x5cL\x8a\xaf\xe5\
+\x00\x12%>\xfd\xdb\x0d\x0a\x10n\x165\x1d\x02\xb2\xba\
+\xbe)<\x98\xc6\x83\x97\xde|9\xc2\xdb\xe01~P\
+g\xfb\xed\x0c\xd9\x80\xc6\xb0\xa2T\xc9k\xa5\x95)\xee\
+F\x86p|\xd2P\xacS\xdcw\x05\x16\xda\xd7\x0ca\
+\x1c~i\x08\xaf{C\xae\xcdf\x7f\xa7\xc4\xcf\x1d*\
+eh\x09\x10t\xa7\xcb\x91]\xd6\x10\xce\xe7_\x86,\
+\xc2\xe7\xa2\x8a0\x04\xb6\x15E\x7f#Cv\xec\x19\x07\
+\x7f\xae>\x90\x02\xaa\xc3\xf7\xd4\x07]bk\x88\xfeE\
+G?<?\xdd\xe2\x86p| \xe0\xfe\xf0\xf3S\x03\
+\xac\xad\xe1E\x01\x17\xe6\xb6\x87\xdd'\x0d\xc1\x1c:c\
+\xda\x99\xd3\xce\xcc\xeb8\xcf\xa3\xb7E\xdc\xad\xdb\xb5\xdb\
+Mm_\xb7\xcf\x81\xc4\xe1\x09C.-\x22#M\xcd\
+?Z\x11t}\x18\x9d9:kd\xb5\xfb\x9d\xa8\xb5\
+*\xd9\x80\xc2\xdc\xbd\xcd\x10\x8eK\x1b\xc2\xdf\xbd\xd9\xa0\
+\xe7\xf5\xfc\x18x\x8d\xa2\x83\x1c\xdbs\x0dY\xbbf\xfc\
+\x05C\xf8\xf9\xa5\xed%\xed%\xe1\xfb\xd6\x1e\xad3Z\
+'\x96\xe8\xdco%:\x91x\x15\x1c\x82n\x16C\xbe\
+\xfe\xfe\xabF\xbe\x8f\x01\x8a\xa8E\xd0~\xae=\xa2=\
+B%\x14\xaf\xaa\xa6\xfdw\x85\xb8\xa8\xb4:hS\xea\
+5\xef\x88\xe6\x91\xe1\xc7\x01\xc1\xfe\xb8$\x22\x06\xd6\xed\
+\xba\xd1p\x89L\x9a-e\x0f<\x5cd\xcc\xa5E\xe0\
+ZX\x04\xa8\x15\xe8\x1dN5\x14\xcc\x1e9\xb6\xed]\
+\x86X\xb2\x92\x1ce\xfa\xd3\xcb\x115I\xd6\x98\x81\xa7\
+}\x8a\x02\xfe\xfd\xef\x0c\xd9\xcer1\x5c\xec(\xe3\x8f\
+\x9d\x9b\xc5\x0c\xc7>\xab\xd2\x02\x12H$\x02\xb1\x0fQ\
+\x87\xa7\x86\x1b\xc6\xdf\xf6\x11\xdef\xb4?\xd6P\x88N\
+\x1e\x17\x1c\xec\xe3r \xc3\xf7;\xd9K\xc3\xadr\x84\
+\xb1\xdb\xb0\xf7\xf8|izx\xc9\xc2:i\x9c\xdb\xed\
+\xdam\xdbm\x8b\xdf#f*\xa6\x0f\xe3\xd3\xfc\xc7P\
+\xd8m*ap\xedn\x05\x02\xba\xad\x0dE{O\xba\
+\x05\x90Q\xaf\xed\xbc\x9a\xb9\x8c_\xa0\xc4\x87\x8bPR\
+\xc2\xa8u\xd9Ed%\xea\xeb\x89SJ\xd6\xaeI%\
+\x22.b\x8c\xf8\xb2\xd4\xff\x87O\x1br\xc9\x94wS\
+R \x09;\xd3\x03\x0e\x88<^\x96\xb4?\xdc\x9eR\
+\xe0\xd73\xe2\x9c'\xf7\x19*>\xd7[\x8b\xfa\xd1\x15\
+\xaej\xd37\x83\x88z\xed\xe8\xe3\xb7\x10\x10c\xdcH\
+\x90\xe0\x0f`\xef\xc0\x04\xa54\x83\xd7UI.\x8cR\
+g\x82\xe0\x87\xbc\xe25\xfd\xe9\xfe\xd5\x01\x80\x1c\x08H\
+~\xda<\x91\xdb\x9c\x13\xcd\xd8\xff\xb5\x03]1\x9a\xfd\
+s\xb8\xceY+\x865\xf3\x04\xff\x8cq\xa9K+\xea\
+\x00\x01\xc7\xc9\xfc\xdf\xc9\x18\x00\x9310\xaa@\xc3\xb8\
+\xf7IU\xed\xbe;\x06D ^O\x14\xa4\xe8N\x8e\
+\xf2\x85P\x1b\xe7j\xf1s\xfa\x00N\xdf>\x8e\x9f3\
+1\xb8\xb18\x02u)@U\xc3\xec\xd4v\xce\x0bC\
+\x9d\x09\xc7D\xa2/1\xef\xdfR5euD\x0b\x8a\
+4\x99^\xa8\xd1LD\x1cp\xce\x8f\x1bS\xab\xd6\xd3\
+\xa6\x8e\x89\x98'd\x8a8\xd5j\xf4j\xbf\xe7\x19P\
+\xae\x83\x8c\xe9\x02^\x9b>]\xad|\xc3\x03\xb3\xde\x0c\
+\xcc\x894\xae\xf5\x04\xab#QuD*3\x14\xa6\xcf\
+\xec\xd7Z\x04\xbc\xef\xbf\x95\x98\xc6dG\xc6\x89\xf3\xa9\
+\xd56+\x86\x81S\x8b\xb9\xafD\xec\x18\x17\xa8\xe8R\
+\xa3\xf6~\xf0\x9c7\xf7U\xf3\xc5\xe7\xa3DZ\x9c\x8a\
+\x8a*\xfeO\xa4\x12O\xfb\xb7\xe7\xb4\xe0\xdc%*\xdc\
+\xe3r\xe0t\xc4\x10\x88\x86\xd2\x0e\x05\xc5\xb1n\xd3\x81\
+\xe3\x89a\xc0uP\x9b\xa3\xcc\x92\xd7\x8cQ\xcb\xa7\xcc\
+\xad\xab\x9b+C\xe8\x1b#mc\xa0\x10\x22\xea\xc7\xc2\
+\x8a\xa3\x0f\xd5\x161A\xbd\xf6\xd2\x01\xdak\xc9\x00\xf5\
+\x00\x84(\xda>\x9fY\x90\x98_0]\xa0\xaa\xd3\xef\
+\x98\x8c3\xd4{>\x8fy\x87\xc3GM2\x99\x7f9\
+\xd6~\x7f\xa0N\xd1\xd6\x0fJ\x22\x99~\xae\x8f\x9a~\
+4:p\x90\xa0\x06\xd3oW\x99\x03/\x81\xd9X\x9a\
+\x00\x88\xcc(\xd3\xea\xb5sP)\xe9\x1f\xad\xda~\xcf\
+\xa0\xa8-\x1c\x94r\x0c((\xc4\x9eQW[\x1fo\
+\xaf\xf7yC\xc1`\x10\xb3\x81\x0d\x93\x9aL\x1ci\xab\
+\x98\xb6\x9ai\x98\x09\x04\x18\xda\xab\x0cE D\x99w\
+2>\x8c\xbfo\xe0D\xbaE\x99\xa7\x86\xd7\xa9\xabs\
+\x19r-#j\xe0c\xfb\xc7FN\xb9\xc6\x8e\xd2-\
+\xd6C2\xc4hDP\xa2A \x88\xc0\x1d\x99\x17(\
+\x91\xac\xb3r\xf0\xbd\xbf\xed\xf5IE\xdakBUJ\
+\xd2|Jm\xf7\xb4Na\xc0\x0e\xf7\x0e\xf7Eq\xae\
+\x87e\x88PBD)\x82\x1c>JsplF+\
+\x05\xac\x5ct\x17`\x9e)\xf0F\x1b7\xbe\xdf\xdb\xf6\
+Y\xa0\xe2\x1a9\xd4\x96\xe9\xf9J\x84\xcf\x0b\x1c\x1c\xda\
+\x22F\x0a\xeb\xe5Y\xfd;J\xe3=\x90\x0d<\xc6\xcb\
+\xc5\xd5\xee\x0c\xb8\xab\xc8\xb8\x8bQ\x04\xc5\xb6YE\x81\
+?\xce\x93\xc0\x0d\x01\xb3A\xcb7\x0e\xcc\xa5\x86\x98\xf9\
+\x0f\x08\xd7\xfd\x8c\xa1\x08\xccl\x9d\x0c\xd1\xe1\x00C~\
+\xfe\xa8\xb5wm\x0a\xd6'cr\xfc\xbb0\x1cq\xd4\
+\x8db\xbdsQ\x0a!\xf1K\xc4\xb0\xf8\x1cJ\x8a\xda\
+\xb9\x0cY\xe5\xbc\xd959\xf0\xfdY\x86\xa2\xd4\x06\xc6\
+\x8e\xdaU\xf6'$\x06Fsa\xca\xe8uk\x19\x8a\
+6`\xec\x9fWD8\x03\x88\xb6\xa4\xa3}\x0cEm\
+\xac\xd6\x07~N\x00\xc0\x19\x12\xdao\xc9\xf4\xd3\xe6\xb2\
+\xdb6\xb5\xbb\xeb~j\x08\xe7\xb5\x9b!\xd7\xda\x13\xd0\
+\xa0\xbd\x1d\xa5\x10\xae%p\xb3!\xff\xdc\xd5\xb5\xc9\xf0\
+\xd0\xdf\xdb\x9e_+U\xf8\xb1!\x1c\xef5\x84\xe3\xf7\
+\x0c*\x118-2t\x92&\xc0\x8a\x86p\x1c7\x14\
+\xf6\x83\xe6\xbfg\xfa\xd5\x8d\x81>\xe9\xce 8\xbe?\
+\xce\x1c4_\xc7)\x9d\xd4:\xe4%mjc\xdc.\
+d\x08\xc7\xcb\x0c\xb1\xdbJ@\x0e|\xb4\x97\x1b\xc2\xe7\
+n\xd0o\xd8\x87\xfd\xa7\x9d\xb9\x9d\xa9\x9d)R\xa9?\
+1X{\xd0\xef\x1b\x22\xb3!\x8d\x93\xa8\xcb\xcd\x97\x0c\
+\x99\x12\xdev\x0a\xd0,\xd9.\xd5.\x15\x1d\xe1\xc4x\
+\xa3T\xf7\xff\xe9\xfd\x1b\xa6}\xb0]\xceP\xa8\x8b\xc3\
+\xe8\x82R.\xd1\xe8f\xa3D\xe1\xef\x8e\x17\x83\xe0\x07\
+\xa6V\xa1\xda\xdb\xbf\x8a\xb9\xf0\xdf\xdc\xfe1je\xdc\
+\xabn\x05W\xe5L9]2`\x88\xc1\x94\x88O\xd5\
+\x81\xaa\xf9\xfeN.\xf9q\xfb\x07\xc6\x14\xed\xe0(\x05\
+Cs\xe5\x22C\xd6\xa4\xf0\xc0*\x99f\x05\x8c\xda\xbd\
+\xdb}\xda}\xe2:\x1c\x1d5\xe6A$\xa4\x9f\x9b_\
+{\x80\xd2x\x82\xc1^\xea>g(4i\x08\x98\xeb\
+\xfe\x1b\xbf\xcc\x18f\xc1&K\xaa\xff;\xa7\x12\x22\x18\
+Nv\x17\xed>z\xc9\x9cJ\xa9\x9a\xa3\x0cEm\xba\
+i\xf1\xec\x98EJ\x9d\xaa\x7f\xc2\xf0\xb5\x18\xb0 \xc1\
+\x00\x83\x00\xa6\xe3z\xd2\xe4!A\x80\x16\x8c\x02\xe0\xe1\
+)K\xe3\xbe\xba\x98\x8ctg\xd1>\x8bC\x0cC\xc0\
+\x03\x14*}r&\x22\xa5\x81\x12\xf3s\xca>\x09\x0a\
+J\xeb\x08< \x9eK`\x8b\xf5\x1f\x91a\xba%`\
+g\xd2]A\xa2\xad\xce\x18\x86q){\xd2\x03\x0a\xd8\
+K$n\x08\x80b\xe7h\xfePZ\xe1\xfe\x04v\x1a\
+\xccC\xecN>\x8f\xc4\x1d\xddH\xb4\xffc\x97\xf9\xf8\
+\xe3\xe8\xe3\x97\xe1\xb8\xd6]\xae\xf8\xfcZ\xe4\x8e#\xf6\
+\x1d~\x1d~\x04\xfe\x10v\x04\x81\x82\xaa\x16\xbeY\xd4\
+Ph\x01\xd4\x09\xbe*\xb1\xea\xcc\x09\xfc1\xce\xbb\xd6\
+\x98\xab\xff\xf1\xf3\xc9\xda\xcc\x93\xd9\x97\x18\xb0\xdf/\xfc\
+\x11\xfc\xc1\xba\x14\xbav\xfck\x06C\xed\x97\xd5\x89\xda\
+\xfa|s\xe25\xf9S\xf5\xf1\xb5I\x12\xb1\xf8\xb7u\
+\x80\x80\xd7\x8c+\xf7[~\xcc\xb8G\x06,\xceyG\
+V\x19\x8d\x86\xc9\xf6\x05\xc5\x1f\xc7@\xa2\x1e\xeeP\xf2\
+ \xd7\x91\x9d:BA[\x11\x1c?2\xefd(q\
+8\x09\x18T\x8e\xbd_@]\xcb\xc0\x80d&\xc0\x1b\
+\x8b:\xd4Tw~\x8f\xa6\x00\x19F(\xd5\x88\x99M\
+\x16\xa0\x98mz\x0a\x89S\xf0\x11-\x99L\xfc\x0e\xc3\
+\x0f*)\x9a\x095U\x85\xef\xafksr\xcd\xce<\
+\xd3E\xaa&{ h\x8fC\xc6m-9\xd25\x05\
+\xa5\xee\xa7\x89\xa3\x9bkSR\x8d\xb6jW\x82\x9b\x95\
+j\xab_\xd2\xfc\xa9EC\x18'&4\x0b\x04\x91^\
+\x16F(\xe4\x88Hr\xbd\x5c?\x81\xa0\xdb\xe5x\xa1\
+\xa6\xcc\xf7\x91\xc1\xa6\xaf\xaf\x02Z\x9e\xf1\xc2`\x14\x85\
+\x11j<T`\x0f\xd0pTM\xb4\xdf\x07DCt\
+^\xae\xe2\x8a\x83\x0c\xf5\x8f\x00\x05L\x12\xda)\x8a\xf2\
+\xe9\x11u\xee\x0b\xf3\x9b\xfb\xcex\xd5\x8c\x16\xee\x07?\
+\xd7\xc2\xe2\xfd\xc0/\x8apj+5\x8b\xd4f\x8f\xed\
+\x10\xe1\x062\x91f\xd7\xf2\x90\xa1\xe7\xe3\xc8uQ\xcb\
+\xad\x8d\xd2\x03\x228\xf6\xba\xaf~\xff\x10\xcf\xab\xb5\x14\
+xn1\x80nN5\xe1\x9e\x91\xe0>\x12\xd0\xab\x17\
+:\xe6\x0d\x1b\x16\xeb\x15\xa26\xa2\xea\xba\x96\x04]\x04\
+x\xbe\xd9H\x08\x18\x110\xc1\xa1\xfa\x84!S\x1d\x9b\
+\x9f\x1a\x8a@\x04\xe7\x8f\xa1\xcc\xf5\xd3\xf6\x09M\x07\xee\
+;\xb5xD\xaca\x1a)\x03\x0e\xa5\xde3\x00<_\
+\xd4\x18\xde\x98\x0c\xad0\xdf\xd3x\x8bA\x82\xe3\x14\xc5\
+\xe5\xbeZ\x04b\xbf\xadZ_\x8d\xeb\xb0\x88\xa10\x8c\
+\xe8\x0aA\xbfd6Z\x1c{\x1c~\xc4\x92\xc8x\xb3\
+\x9e\xb0~\xd7\xe2\x97\xca$x\xc0D\x0e\xa5\x8b\x8b\xa9\
+/\xba\x97\xc6\xa0\x9d\xa1\xfb\xe3L\x8acS\xa6\x83\x1a\
+\xde\xb0\xc9&\x91\xa7\xc7\x140P;SWu\xa7\xbf\
+=\xeb\xaa\x9e\xbf\xf6\xc5\xf6\x856\xcc\x8b\xf1\x8d\x026\
+.\xfa\xc4\x07\xb72\xb6\x95\xb2\xeb2\x86\xcf\xc5\x01\x17\
+e\xc6\x02\x86i;[@0\x5cF\x97\x8f~0\xba\
+<g\x8cM\x9b\xdf\xd4\xf9\x87\xeb\x0dy\x1d\x89\x99\x99\
+\x95\x949\xb9\xac\xd0b\x81\xd2z|\xca|\xc5\xab\xf9\
+g\xd6L\x88\xeb\xdc\xca\xe1\xf3\xb7\x0d\xd8\xae\x98\x0fz\
+^\xc8 \xfb\xba\xb3\x87\xfa\x7f+\x93\x85\x06\xc0\xb0\x90\
+J\x04\xf6V\xdb,\xbaIH$o\xec{\x11vL\
+\x0c\x12T\xfbE\xc5\x1eN7\x14\x14\xf15S\xffy\
+\x0c\xad\xf6\x94\x80p\xdd\xdd\x0f\x0cY\xebb80\xc0\
+\x02T\x8f\x06\xd8\xb8}#\xe0\x1c\x05\x98\xe6,\xda\x9e\
+)\xf3M\x80\xc5\xa9\xf5\xa2,\xe28{\xed\xb3\xda\xf3\
+5\x9fN\xddD\xa0\xfa#\xae\xd8\x7f\xde\x10\xfe~\x1f\
+C\xf1<*\x90\xd0\x1en\xc8\xf3\x7f\xd4\x18\x0a\x07\x12\
+\xa6\x12]N\xd8\xf7\xd9\x87$\xc6\xd4]b\x08\xc7\xf3\
+\xbb\x0b:\xcb\xc0\xbf\xd3\x10\xbe\xff\xb3\x86\xd8\xee. \
+\xb7\x9b\xeb\xa7\x19b\x17\x81Yz\xbb\xee9\x0cY\x83\
+!f\xce\xad\x8b\xc3;\x02\x96.J\x8adW!\xce\
+\x18KO\xc2:\xdb\xdf\x13\x10\xd6\xb9\xeeC\x01[\xe7\
+\xc0Qw\x84!w\x01\xe0{a\x04E\xd5\xfb]\xe3\
+\xfa\x145#\xe8b0\xb1\xe9\xc4&\x13\x9b\xc4u\x22\
+\xee{\xb1\xdb\xc2eY\xfc1\x06\x18\xc2:j\xeee\
+t0\xb5\xbeP[N`r4\xd5\x10\xfenVC\
+\x16\xa9#S\xd8~\xc9\xa0\x12\x81\xedD=_?k\
+\xd9\xb8\xc6\x80T\xe6\xfb\x83\x0c\x85\xca\xf9\x0e\x86\xf0w\
+\xb3\x1ab\x1b\xcd=\xda=\xa2\x03\x9c\xc6\x0b\x11_\xad\
+\xdfts\xf0}\x8b\xae\x11\xdfU\xdb5D}\x11e\
+D\x13\x8av\x98\xda\xcf\xd0P\x80\xf1\xd5\x1f\x1cp\x88\
+T\xef\x8d\xd9r\x8c\xa1\xe8\x92A\x89\xdd\xa1\x01\x87\xe5\
+\x00\x87\xb7%\xb4\xf6\x9a\x1b\x16]#\xa0\xe6\xeb9s\
+\x8a\xbd\xb4\x16<\xb0%\x11[\x02P\xce@\x80\xc2\xbd\
+\xaaJ\xf3\xd0\xa0\x81\xfa.\x11\xc0\xf6bC\xd6l\x88\
+a\xd8\xbdsF\xb8\xdb\xcdP\x88\xf2\x22\x96\xa7@C\
+<\xcf\xd9\x0b\x87\x9fRC\xf69\x12R\xec\x8f\x04\xfa\
+)\x11#\x80h\xfb\x8b1a\xbek(\xec\xdc\xcf\x8c\
+}\xd6\x18MCo(\x02(\x1b\x18\xa6k\xcf\x9cD\
+\xbcq\xbc\xd0`B\xa3\xa4\xb6\x97\x1eV\xa6\x1aq8\
+\xb5\x15\xec\x7fk\xc8\x0c:\xda\x9e:\xc3C\x22\x9e\xf8\
+\x1f\x9e\x18\x82\xa9\xc3\xbe\x8e\xc3\x8e\xd8\xb9J;\xfd\xf3\
+P\xf1'\xd0\xa3\x00\x09\xeb\xab3G\xb1?\x18O\x8e\
+\xd8c\x88\xecb\xe7\xf3\x0f\x07\x1a\xa6!v\x12\x8e7\
+\xf6}\xdd\x16\x10\xbf\xa0\xd6\xc8b\x1f\x87\xe1\xac\x04\x9c\
+\xef\xd3\x04P\xea\xb6\xdbUW-\x18\x94\xd8\x7f3$\
+\x0e\xe5\xb75o1d\xfbd\x06G83\xb7\x93\x1d\
+\xc8\x11\xbf\x90.E\x9a70!\xdc.\xa9\xd5\xefy\
+\xdeadR\x8a\xc3\xfb9?\x1c\xf4Z\xcb\x00\xffc\
+\x9e\xc8\x05\xb0\xe3t~H]\xaa\x8e\xf6\x97w\x85\xe0\
+s\xeb\x00@\xed\xf0\xd7\x09\xd9\xc9\x8eu\x895\x84\xee\
+\xceP\xcc\x87\x9aa_k\xa4M\xf2\xf9\xe3\xee\x98r\
+ad0\x19\x18\x1cC\x1c\xb7Q\xd4q\xf6\xcc\xb2g\
+\xdc\x11\xc7\xc3`\xae\xd5!\xc9D#\xaaGFL\x11\
+ \x1f\xa0\xbaOkM\x81\xa8\x1d~\x8eZ\x10\x5cd\
+iC\x19\xfau\xa4\xa7r\x8c}\xa2\xf1s\x1ch\x16\
+ \x8e\xb58F}\xa33u?}O\xae=O7\
+\x9a\x89M\x06\x80\xeb\xa9\xc55\xfe\x17e$G\xb2R\
+\xed?\xed\x99\x08\x5c\xfcG\x0e\xe3\xb3\x95\xaa\xe7\xdf'\
+Q\xa7\xa4\xc6\x84\x9a\xdc'U\x0b\x8f\x03\xcdDb\x9e\
+\x90qxJ\x8e\x15\x94\x1cQ\x91\xa9}\xf6L,\x13\
+\x14*Q]\xd2A\xa4S\x86\x90;X\xb9\x06(]\
+?\x0e\xe7\xd3\xaa\xc5Wd\xdf\x1fpe\x84\x08\xa8\xf8\
+y\x909g>a\xa8?8<4<\x143\xf0q\
+\x03-4&\x92\xe3\xcf\xb8O\xab\x1cR(|d\xee\
+q\x98\xd90q\x10\xd8\xb0\xa8u\x87\xc2\x86\xfa>\xe7\
+M\x06\xbb\xaeQ\xa2\xa6\x15\x8a?\xdfC[<Ev\
+\x9b\x13\x0d\xc5\x82\x02#\x81\xcf#\xc0\xc4\x82HF\x19\
+G\x8e\x05\x81@\x09\x0e\x1a\x81\x01\x182\x1a_W\x87\
+V\x86\xbe9\xcdP8\x94\x9a'\x9e)f\xde\xe0\x88\
+\xcaA\xa4\x96\xde\xdb\xea@y\xc3Pg\xde \x1eH\
+\x9f_~N\x09\x05\xcf/\xf3\x19\x83\x10\xea?*\xfe\
+\xb4)$\xe2O\xe6X\xed\x95\xa85\x8e\xd4\xed;\xb3\
+\xb8\x9b\xb7a\xa4+\x01\x1b\xdb\xc9\x86p\x8c\x9eF8\
+\xdee(T\xeaE\x99k^4\xe4\xc0L\xf3\x98!\
+\xdc\xaeM\x0c9\x03F\xe6\x07\xaa:\x01\x82~\x1fC\
+8\xfe\xc6\x90\xa9~\x8c'm\xfdP\x07\xf6uZ\x14\
+U7,P1\x16S\xc2U\xde)\x09\x91*\xbe?\
+\xcf\x184\xac\x0fZ\x8f\xdc\xa0\xdb/1\x07<p\xc6\
+\xf3B[\x1e\xddO\x0f\xd4\x22z\xa5\xfb\xdd\xdfd\x08\
+\xaf\x7fb\x88\xfbG\x12\xbb\xc3\xb1W\xadzs\xa6\xba\
+\x1dP*\x85\x01\xa3\x8c{\xfb\xf6v\x896\x18*\xe3\
+o7\x84\xe3\xce\x01\xf6\xf3}\x03\xf6)j1i\x0f\
+\xa5\xccu\xb3\xb2\xa1`\x5c\xbcd\x08\xcb\xebE\x86<\
+\x0f\xdc`\xd5\xfa\x04\x93\xc8)\xad\xacct\xcd\x91\x96\
+N\x9c\xaf\x87DG&@\x01\xaf\xaf\xe6u\xc6\xa9\xef\
+j\xe7\x85\xc1j\x92\x8d&\xda\xd8\xfe\xca\x10\x8e\xeb\x1b\
+ri\x02\xfd\xc9\xdb/\x18\xc2\xf9\x9eo\xc8\xea\xe2\xce\
+\x0cQFqxk\xd2X\xa0F\xdb\xcf\x7f&C\xf8\
+\xde\x95\x0c\xc5<U\xa0%:\xea\xaf\xeb\xe7/\x88R\
+o\xea\xfbO\x05X x\x0dC\xc1h\x82\x81\xd1\x1a\
+\x8ayH\xa6{J\xfa>\xcf\xdc\xa1\xae\x7f\x86!\xab\
+\xc0\xf7\x1f7\x14\xedCQ\xb1\x96V\xc8\xf0_C\xc1\
+\x9cP\x80uX\xd9\xf0\x06\xfd\x97\x11\xa9TM\xfb\xf8\
+R\x86p=\xdf2\x14b\xb4\xec\xcf\x9aW\xc3\xbc\xa9\
+\x8d\xa4S\xc3\x158CD\x8f\xf3\x0cn\xf8\xeb}\x18\
+\xa7~I\x83\x02$\x07\xe6\xda\xe3~/\x83\xa8\xda\xe7\
+\x15\x81:\xb5/\xe3y\x8f\xfbU0\xc0\xfb\xff\x06\xfc\
+'\xb7\xdd\x84\xda\x8e\x88_\x7f\x89!\xf7Qw\xb1\xbd\
+\x95\x0d9c<\x5c\x90D\xca\xfa\xfb\xfb{\xfb{\x14\
+\x90y4;.\xb1=\x9d1\x05\xec\xdfDv\xe0i\
+w\x1a\x09\xd5\xe7\xe5.5P\xee\xfb\x85\xfa\x85{\xd3\
+\x0c\xf9\x8b!\xfc\xferC\xf8\xfb\xcd\x0d\xb1\xc4\xe5\x1e\
+\xfb\xbe\xd1\x19\x01\xc1\x01j75\xe4u\x17\xc7\x16\x8a\
+4m\x02q\xec\xe3\xe36d\x86T\xbb\xa8\xa1\xe8\x1a\
+\xa1\xc4\x91;\xd0\xca\x90\xbaA\x0c\xf3\xea!\x95\xe4\xc0\
+0\xd8\xd9\x90\xdbS\x22\xce\x88xn\x7f\xb4!3\x01\
+\xfa\x93\x0d\x85F\x04j\xfc\xe6\xb0n(\xb1\xc1\xf5d\
+/\xfdY]n\x0e\xd2\xfa\xf7\x82\xd4\xfc\x8f\xce\xed\x22\
+\xfd:\x11\x7f\xa3\xb4J\xd4l\x0fHJ\xa3\xc53\xd7\
+\xb4Kc\x7f\xeb\x83\xd5\xda\x17\x1a$\xb4\xd5E+\x88\
+\xb6\xbd\xb6\xbe\x1f^0=d\x1ft\xbb\x07\xecV\x94\
+\xa2\xd0v\x90\x801\x012\x95\x5c\xc5B\xe0\xf9\xa2\xfd\
+6\xd5\xec7g\xae\xa9t\xc9\xdb\xe0\xd25G\x8c\x1c\
+\xd6)\x18\x19\xfd\xf6i\xbd\x1b>\x9a\xba\xf8\xf4\xdb\x1a\
+\x0af\x85\xda\xcaZ\xf8$\x8e\xafT\xf1q\xf0=\x91\
+B\xc9\xde\xff\x8d\x1d\x19`\xf3<\xb5\xe9\xfc\x90!k\
+\xcap\xc4n'\xe0\xe5]\x16$J;<g\x08\x9f\
+\xff\xac\xa1\xb0\x03)\x05\x84R\x8f\xe3\x89\xdd\x043\x93\
+\xc0:\x011\x1csi\x14\xb8v\x92\x18/>\xef\x15\
+(\xf6\xc0\x0a\x22\x7fh\x91H]~X\xcc\x90U\xec\
+y\xed\xdaf04\xc5\xecpF \xf6\xa3\xeci\xb4\
+g<!\x02#\x03\xbb\x10\xbf\x02\xc7\x9f#\xfb;\x01\
+\x11\x12\x06P\xea\xf1\xabp\x9c\xb1\x93a\xde\xd2\x06\x10\
+m\x05\xc6G\x8cZ\xff=\x01\x11\xe6;\x22\x8c$H\
+HH\xb2\xdf\xd6\x0en\x9d\xf0\xad5\xe4j\x06@\xdd\
+\x85\xad>\xce\x16S\xbcY\x1b\xa0.\xe1\x9e\x8cY]\
+9\xea3\xfc\x9b\xec\xf7\xff\xeb\xe7\xf5\xef\xeb\x9f\xd7\x1a\
+v3&\xac\x93_[\xb5\x0f\x1c\xaf3\xd5^+]\
+\xf5\x07\x9d\xe1\x04,^2G\x91)c\x03\xe5D\x18\
+0\x06\xbc\xce\xe0S\x1b%ub\xa7.\xa3\xe6M\xad\
+v\x95\x81\x9b!#\xca\x91\xc8\xc7\xccU;\xc3\x9a\x82\
+\x91E\xe5\xa6\xaf\xd5x\xa36\x88oz\x83\x89RO\
+\xacz\x5c:\x17\xd9K\x8eI\xae\x8dO\x01\x11\xc4\xc4\
+\xf4\x80\xbbX\x1c\x0e*\x81\x93\xbaf\xa3\x0e\xa8\xc0\xa8\
+\xa0M!\xaa\xea/zF>\x8d\x1b\xf7\x81\xfbD\x00\
+\x00\x03\x8d\xc8b%j\x88\xc1\xe3\x01\x1a\x023K\xa6\
+\xee\x10lX&u\x15\x1d\xd4\xc1kYR\xc4\x8e\x8c\
+\x19\xa2x\x9c\x1f}i\xb9\x1e\xc6\x11\x87\xf5o:\xaf\
+g\x14\x09~\xa1\x0a\x04\xa1\xda\xcau\xdc)J\xd3R\
+\x0aL\xec\x956X\x9fGP\x93\x890#rG\xfb\
+\xbd\xb5\x949\xc6q\xe4}\xfc\x9c\xb6\x89\xa2\x5c\xb9\xa8\
+\x14\x8e\x18\xd7\xa3\xe7\xc5\xef\xa7\x16~o\xdf\x87#\xad\
+\x9aZw\xb8\x09\xa8h\xbe\xd3\xe7\xd6\x1dw\xbaoP\
+\x22\x00\xb3\x80\x12\x16\x16f\xd4iq\xbc\x88X\x8b\xaa\
+\xe7\xcc\x08\x19\x0c\x1e\xd1e# @C\xad\xf3\xaf\x92\
+\x16\x82\x7f\x1f\xcc\x82:B\x8f\x18\xa3\xa8\xe9\x1ep\xe1\
+\xf7\x04\xa6\x94\xa9\xf2\xe7G5\xf0\xc3:\x86bc%\
+C\x8f\xe6\x00\x1b\x0b\x7f\xc78q\x7fQ\x89\x97C\xe7\
+\x8e.\x1b\x95\xda\x0fz\x1fh\x02\x07rpa\x00x\
+\xcd\x9c\xd4\xe5}c\x91C\xe0\xed\x94\x08\x04\x10\x10d\
+<(\xb5\xf8N\xca@\x91IG}\x96\xbe\xf6\x88&\
+\xa1a\xd0\xaea(\xa8\x8d\x88=\xfd(\xd5\xb0B\xe9\
+\xed?\xa1>\xd1\x94N0/`\xca\xf0\x9cK\x9c(\
+f\xbe\xf7\xcd\x94Fg\xae\xb0\x1e\xa1\x8a\xaf\x1aN\x9f\
+\xc7\xdc7\xda*\x12\xa8\x92X\x94\xdfg\x9e\x03\x1c\x0e\
+2V\xac?\x18>\xf4m\xa6\x06\x91\xf3\xa7M\xd3\xf1\
+\x11Y\xccT\xaa\xf70\x08\x9a{\x9a{\x9b{s\xe0\
+\x8an\x14\xedj\xed\xaaV{>\xbe\xa1\xa1\xc8\xf8^\
+\x1ep\x994\x18\xfe\x123\x8f\x0bE\x15v[\xe5\x1e\
+\xcf\xed\xe3|\x1e)\xc3\xec\xea\xf2\xb4\xe9:\xdbP\x88\
+\x0c\xc2\xac\xc0\x81\x91\xf8h\x0cSl#\xa6\xc0)\x9a\
+g\x16@x\xde\xa0@P0\x94\xfa\xf7\x1ar\xa6\x80\
+\x0cx\xbbb\xc0\x0a\xe1\xfc\x9f3\x84\xe3|\x86\xa2\xa4\
+GL\x17\xef\xff\x8c\x8a\xf5\xa7R\x09Bp\xf3RW\
+\x0d\x1ca\xdaq\x8a\xf9\x13\xdb\xa1-\x11\x19.S\x87\
+\xa9\xb9V\xdf\x99\x07\x1a\x87v\x1bCVuw\xc7N\
+\xd4o\x02\xd7\x91\xfa\xbd]d\x94M\x8b\xb5\xdf\x0a \
+!J\x15\x03\x03\xab\xe7\x8c)\xd4v\xaf1\xed|\x9f\
+NL&=\x7f\xd4\xbe\xb3^\xf5\xbf4\x14\xf3v\x8a\
+\xf6\xe7/&\xf1\xc7f\xaeD\xd5l\x0e\x96\xc6\xc3\x7f\
+%V\xc7\xf70\xffN0\x84\xaf=\xdcPdLO\
+0D\xb1\xb9\x80p\xfc\x8f!\x1c\xdfl\x88\x01\xb1\xf8\
+wd\xc4=\x10\xa4}\xcd3\xdb\xcb'f\x83g \
+\xe9\xde@\xfb\xc9\xf5\x22\xc9\xd9\xff.\xb6\xf5[9\xab\
+\xea\xf7\x9b\x05l\x9a\xa9\xe0P\xb2q\xe8\xd1\x12\xe9v\
+2d\xb1J\xd6\x89\xe1\x12e\xf6\xcf\xee\xbe\xd1Y\x17\
+\x8fm\x0d\xe1\xef\xf6M\xa2\x85Q\x84\xd4^?f\x08\
+G\xfb\xd7\xe5u\xae;+ \xcc\xf3~\xa7\x80\x0fg\
+\xa6\x883V\x148\xed\xcf5\xa8\xcd\xdezYkd\
+\xb4\xb0!\x8c\xdb\xc7\xdaC[\xeb\x8a\xf0\xb4A5\xf7\
+\xafd\xe6\x00\xf3\x8b\xcf\xf5\xc0\xe6\x16\x86\x5c\x92\xe6m\
+-\xa5\x95\xd2\xbf`\x88\x81\xd66\x06ZQ\xbd\xc7N\
+!\xd3.\xd1\xb3\xfeSj\xe3\xd8\xa8\xc2\x11;V\x81\
+PJ\xbb\x5c$\x15\xaa=\xda(\x0a\xa8:\xe5\x1dG\
+\x04M!e\xc8#\xd5\xfe\xa8b~By7\xe6\xc0\
+\xea\x99\xd2\xed\x19g\xf5\xb7'c:\xccm(\x1cp\
+\xbaT,j(J\x0eY\x8f\xb1\xbfd\xef6\x07(\
+\x90\xfe\x9d\xc4\x00\xf3\x0c\xbc1\x19,\x00\xf2C\xb5W\
+T\x09Z\xbb\x85!k\x0d\xc4\xedm(J\xc4\xee4\
+\x14\xb5\xdeWFd;\x8b6\x8a\x16\xe0:\xa8`\x22\
+\xc8\xf1\xa4\xc4`\xec\xf3\x11\xb9K\x8d\xba!\xb4\xf3\x18\
+\xe2\xf5-\x12\xafo\xa9\xa8o\xef\xeb,\xe2\x87\xfd\x89\
+\xa9]\xa5\x97\x9c\xc9\x01\x1f\x9e\x95j\xfaU\xaa]W\
+\xe0\x91D\x8f\xaf\x8f\xac+\x042\xd5\x85\xa69\xb99\
+\xc5\xd6g\xf612\xfb\x04>\xfa=\x0c\xd9\xdf\xb0^\
+bMYj\xcc\xe7\xab\xbb\x8e\x8b\xd0\xa2)$F\xa9\
+\x078\xd1\x10\x12\xa5\xdfK3(\x19\x90C\xea\xf6\x0f\
+\xfb\xac\x02Xq\xf5\xde\xb1\xf8~\xf6M\x1c_\xf6q\
+\xba\x07\xf0{\x12\xb8\xd8%\x04\x08\xb4\xafz\x17\x02\x02\
+J$\xb4\xe8vA\x97\x229\xea\xbe\x7fK\x03\xc8\xfd\
+2\x12I$`j\x8d\x084\x04\x98\xc7\xfc\x5c\x09\xaa\
+\xe1g\x86\xc2\xf1g\xdei\xfd\xf1\xd2M\xba[\xf1\x1c\
+2N\xf8\x0f\x1a\x0f\xba:x \x8d\xe7\x06\xff\x15?\
+\x0e\xc7\xbd\xce\xc4\xd7\x14|\xc6\xb9\x165\x9f\x8c\xaa?\
+\xcd\xb5\xd2\xa6\xd7\xb0\xab\xb5\xecf\x14eO\x7fWk\
+\xa4M\x96\xe8\xee&\xd1p\xab\x03!\x5c'\xfe\xd5\x8c\
+b\xeb\xf18\xee\x8e-T\x92\x97\x0d\x99\xba1]\x84\
+\xa1)\x06\x12\x8a\x09\x14\xddRto\x5c\xbf\x9f\xafX\
+\x80\xb9\x00n\x1c\xff\xa8I\xc1A\xc5\xb0\xae\xfb\xb0\x93\
+\x19\x82\x8aQS,r&\x9e\x0c\xfd\x1b\xd6^x\xc4\
+\x12jN\x9d\xc1G\xa5\x15\x15p\x1c\xb5Z\xbc\xb0\xbe\
+1\x04&^\xf5\xda\x8b\xe9K \xb8\xa15\xc5\x99\x00\
+\xc7s\x1a\xc7\xac\xfe\x98(\xf7d\xe4\x11\x85\xc3!\x82\
+\xb2\x22\x86\x01\xb5\xc9\xde>\x11J\xfa\x8aZ\xc0\xd9\xc0\
+d\x80z\xed=\x13\x87\xf3\xe7\xc1\xa85\x11\x88\xdc\xf1\
+\xbd\xd6\xa5\xe0\x95\x98Q\x8a5\x81\x18V\x1e\xe8\xa0f\
+\x866*\xbc\xe6\xfcq8\x98G\x1cs7\x89D\x91\
+g\xfe\xe0\xb8\xa39A\x84r\x09\x1di\xe3&\x83\x10\
+\x03\xd83\xf2\x8c\x07\x8e>\x22\x8d,h\xbc\xa6\x1d\xe6\
+r\xca\x80\xbfW\x0e<\x7f\xc7\xf3B$\x15\x07\x97\xeb\
+\xa1v\x9d\x08>5\xe6\xa8\xe4\x13Y\xaf\x98'\x1e \
+\x115\xdf\x19\x05r\x04\x9cQ\xa0\xfe\xae\xdeF\x8d\xe7\
+\xa4\x0e q\x1f\xc9\xe0\xb2\x80r\x1f\xb5\xe0z\xa0\x07\
+\xa6\x01\xf7\x89#\xcf?\xcc\x15\xfa\x0b\xd3\xee\x07\xf5\xdb\
+\xcb#\xdc\xc0p\x07\x8b6|\xba\xae\xd8F\xc9\xday\
+\xcdn\xc8\x99I\xcf\x5cH|\xc7\x1d|\x1c!9\xaa\
+\xb4S\x22\x80@&~\xec\xea\x88\x5c\xda \x0d\x04\xd4\
+\xe5\xd1\x0e@m\xdf)p\xac\x07lD\x18\xa2t]\
+@+\x81\xeb\xdeG\x94k\x02\xb0R\xf3\xf7\x9aV~\
+\xae\xf53R\xa4\xbfQ8\xfe\x88\x01\x12\x98\xd1x`\
+\xc8D\xe6\xb9\xd5\xc0\xafm(2\x01\xcb\xa5\x1aoo\
+kC;Cj2i\x07HM\xb36z\xef\xf2p\
+\xbc2\xb1\xe7$\xc7\xc3k\xb0\x09\x5c\x10p\x92!\xe1\
+\xf3\x91\x8c\xa8\x0cc\x1c\x02\xef\x0bM\x06C\x14dT\
+\x8f\xa1\xf6\xfa\xfe \xc3\x09\xc3\xb79\xd2P\xa89\xcb\
+\xe1o\x7ff\x88\x01\xad(\xea4\xf6\xb5\xf4\x9c\x90\x09\
+lO7\x84a8.\xe0\xd8\x1c\xb8\x8a*\xdf[\xaa\
+6\xf34\x05tN\xcd\xea\xfc\xed:\x01\xeb\xca\xf19\
+2\xb7\xc1\xc3!h\xd74d&\x84k\x07@\xc1\xa5\
+o1\x19A\x95\x1e\x09@\xf0\x00\x00 \x00IDA\
+T^\xb8\xa3oOa\xd1\x05c\xd8\xc8\x90\x03\x11Q\
+u\xfd\xeaBk\xc7\x1c\x90\xa99\xe0\x1e?\xa7\xa8\xbd\
+\xf7\x8c\xf7\xf1I\xf4\xcb3\x9e{\x1b\x0a\x0d\x03=G\
+\xd4\x1e\xb7/\x1abF=\xce\xffHU>\xb40\xf4\
+\xa9\xe1~(1\xa0\xfc\xf3\xd61\xe4\xf9\xd5^d(\
+\x18{\xca\x94\x0d\x87\x18rF\x0a\xca1\x99\xc1\xc8\xec\
+\xfbC!\xa6%j\xbd\x97F\xac\x93\x98*\xfc\xde\x0d\
+o\xd6y\xf6#\x18O*\x1dr\xea\xb1J#\xbc}\
+\x9a\xc4\x17\xdd\x90\xc51\x11\x13\x10\xa6\x85I\xc1\x99\x18\
+\x1c\x22Q\xedF\x86B\xd5\x9e.\x03j\xc3\xd7\xfe\xa5\
+}\xb2}2\xd7\x06\x0f{\x18\xc2\xef\xe71\xc4n\x00\
+\x0f\xf6\xf6\xbc\x1ej(\xba\x90Pr\xa5\x00\x0b}\xec\
+\x11\xcf\x8b\xcf\xe5\xb5\xb9\x1f{\xbf\x96!\xdb]\xfdz\
+\x86\xfc\xb9\xfd\x0a\x06\x05\x0a\xacf\xfb\xb4\xd46\xb0{\
+\xaf!\xbc>\xc5\x10\xcc\x8aE\x0c\xb1\x8dg@\xf8\xfd\
+\xdf\xbb\xa7;s\xc4\x977\x84\xe3'S\x00\xb1\x7f\xa7\
+A\xf7\xd3\x18\x05\xb3\x07\xccV8,\x16\xc8:M\x0e\
+\xdd!\x85\xc3\xa9\x00Y\xff\xa6\x80`\x0f\xb4\xe7\x19\xc2\
+\xeb+\x0c\xe1\xf5\x1f\x0d\x85(\xe4\x8b\xd2>P{\xd1\
+\xd1\xa5\x86\x22\xb3J)\x884\x01\xccm7\xc7\xbdY\
+A\xda\x03\xdfn\xbf\xd3\x86\xf9\xd1~>1]\x9ai\
+\xaa-\xd7:O\x97\x1a\xc4\xf5\x10m\x0c{Q\x0c\xd4\
+3\xbe0\xa3\x9c\xe2\xac.Q\xee\xe8\x18\xef\xea@\x05\
+\xa8?#m\x91s\x94Q\xdeF\x99\xe2\x93sil\
+\xcc;\x1f\x19\x03?\x01\xb2\xbbn/\x02\x07\x04\x8c(\
+U!\xf0\x8d\xe1\x8e\x88\x9a\xe6!%\x11>.\x04\x0a\
+\xa41\x01\x93m\x86.BR\xc9'\xd0\xebmo\xc5\
+D\xf3\x84\x04\xf3\x17F\xd2\xa7\x0d\x991\x13\x99\x13\xc1\
+\x9e\xed~l\x10\xc3\xe1]Q\xeb$\x05P\xd6\x1a[\
+\xdb\xec'\xb7\xef\x9f\x8a)\x9a\xb1\xe6\x01\x93o\x8c\x01\
+\xee)\x16\xe0\x0ekn\x5cw\x9d\xc1\xa7\x12B\x02\xaa\
+..\xab\xc0\xaf\x8b\xb4\xde\x9e\x9eW\xc6\x13\x11a\x1c\
+9J\x09\xc2\x1e\x92\xec\x0fi\xee\x0c\xbb\xa7\xe71\xac\
+\x05I\xabDv\xb2\x97>\x11\x98\xdeLZ\x0b\xea\x22\
+S\xb7k\xf3Rd\x12\x1fjs\xccz\xc8\xbe\x86\x1d\
+\xe9\xa5&\xec\x0bu\xdbl\xec:DZ\xf5\x5cG\x89\
+\xc5\xcf\x15b\xe40\xec\xe4\xc8\xfb|\x81!b\xd6\xdc\
+\x0bJ\xf4\xacZtu\xaa\x12!^\xba\xac\x80\x95S\
+\xfaI\xe0`\x0f\xca\xaf\x80\xa9\xcd|q?\x84\xf7a\
+Or\x9e\x04\xeaI4\x11\x88\xaak\xde+\x91L/\
+I\xd0\xfa\xed\x81\x8c\xba\xcd\x1f\x89'\xb4\x17(UC\
+\xdb\x03\x11N\x02\x08\x04\x14\x080\xb0/\xa3a\xc4\xef\
+k\x11\xc0\xfaX'X\xeb\xd7U\x97/?\xd6m\x07\
+kG\xbev\xf8_\xfb\x1f\xe2\xe9\xf5\xb1>\x8f\xda\x7f\
+\x9c,0Pk\x05\xd4\x1ao5s@\xfb\xfc\xb8;\
+\xb45\xa5\xa1\xae\x99\xb7\xe1\xf8w\xd5\x9e\xa0\xe8[\xe8\
+\x19mS\xeb\xddU\x8e\xf2\xf0\x06\x22\x0aD\xca\xb90\
+\x1c j\x9a\xa9=F\xe5\x1cF\x02\x91.\x0c\x05&\
+*\x0b\x22\x8e%\x01\x82\xc9\xd4\x18'\xcb\xe0\xd7\x03V\
+\xb7\xb5\x9b\xac\x1b\x01\x0f0\xd4D\xc4t\xf8\xbc)U\
+\xbb\x8aZS\x80\x7f\xafi\xe2\xbc\xec\x01\x81\xe9' \
+\x19{\xae\xb7\xae\xb1g\xc2\x22*\xc2y\x12\x99\xab\xba\
+88E\x9eL2m\xf1x\xd0\x09\x08\xe9\xc1\x22C\
+\xe9\xe3K\xe6\x9a\x8dm\xe6*\x10C \x07G\x98\xcc\
+.\x8er\x9d\x91G\x03`59\xd0dpQ\xf9\x94\
+\x01\x12\x9c\xbb\xf4w+\xc8aY_j\xaf\x1f\x96\xc3\
+(J\xb7\xd7*\x110 \xa3YwO\xa8\x19\x12P\
+\x8c\x11y\xe4\xfdDl\x11y\xa1\x04\xa0n\x87\xc2\x02\
+\xc7sS\xab\xf0\xe3\x90\xb3\x00\xe2\xb0\xc9Pv\xc7\x13\
+\x07\x9e\x0c/\x01\x92\xba\xdd\x0a\x9a\x12\x94N\xd4]\x22\
+\xe8^\x81(!b\x89\xb43\x84\xb2\xaf\x8d\xcf\xdb\x06\
+\xb2\xf1\xe1\xf8\xb3 \xf1\xbccP!\xf6\x86\xb8\x10\x1b\
+\xa5(r\x9e1V\xdfo\xa7\x86\x11Q\xe69\xe1\xf9\
+\xe6z\x99G\x04^`P\xd0\xdf^b~8\xee\xee\
+P\x12\x99\x86J)\x8a\xb5\x8b\xe8QzDw\x0de\
+\xa0\xbd\x06\x10\x03\xe1\xec\x88\x9c\xe9\x86\xb9A\x9b2\x02\
+\x97\x95x\x22]C|\xfc(\xf1 3B\x0d+\x8d\
+\xa8\x11c\x92\xa1C;1\xa7\x02J5\xd8\x19\x0e'\
+F\xe4\xefe]@D\x91\xe7^\x06\x01\xb5\xd7N\x8d\
+\xc6p\xb1|\xd5\x07\x8b\xc0\x1d\x01\x146`9\xb8.\
+\xc2C\xe9\x06\x19b\x98$j7\xe6\xfb\x87j\x10\xbd\
+\xc6\x12\xb1@4\x06\x94\x11\x22\xf3\xde^i(j\xe9\
+\xe4\x186\x87(\xa3\x84\xa1c\xfc \xcb\xcc\x9e\xd5\x9c\
+\xd9\x9c\x95\xdbrE\x0d\x88\xa5\xd5\xe7\xfb\x80\x9cqi\
+/4(p\xf6^\xd5\xbe\xee\x97\x19\x19.\xc6\xf8E\
+CA\x0d\xa5\xdd\xa02\xbc\xde\xb6\xed\xb3\x86\xf0\xb93\
+%\x91\xb3vkC8\xdeo\xc8\x01,\x02\x09\xed\x13\
+\xed\x13\xd6\xe7\xda\x9ev3\xc0#\x83:\xac\x93\xed\x8e\
+\x01;(\xd0pB\xd1~\xac\x8b\xdc\xb1L\xdd?\xd2\
+\x10\xe7}\x9c\x1fP\xb7=c\x88\xfa3L0\x8dw\
+\xffmC\xbc\xbf\xa9\xab\xc4~\xc9A\x08fy\x12\xb5\
+<#\xd5\xa6\xf6\xef1\xe4y\xe3q\xfeCS&\xd7\
+\xc5Z_0\x14\x19lQ\xd0Yg\xa2\xc1n\xe2n\
+\x97\x19\xe4\x00\x1c]\x04\x90\xa1tJ\xab\x84\x12\xa8a\
+v\x054TS\x1e\xfb\xdb\x9bC\xbdM\xd2@@{\
+\x81L \xf3\x0f\x11?\x98o\xed\xc8P\x94P\xec\x9e\
+2\xa1\xed!\x86\xc2!PW\x0cW\xb7\xff\xb8!<\
+F\x7f2\x84\xe1\xbf\xcd\x10~\xffWC\x0c\xd0\xc4.\
+\x2284\xb4I\xc3\x91\x1e>\x9d\xda\x1e:\xd3\x8d\x12\
+(\xa8\xbf\x94\x16\xa9\x9b\x81\x07\x0a\xd5\x8d\x84\x0c\x18\xeb\
+X\xbf\x88!\x06\x16\x02\x8an\x07\xdb\x1b\xd4\xde\xee\x89\
+\xac\xe6\xdf_n\x08\xbf\x9ff\xc8]<\x9cj}p\
+\x12=\x8d\xab\xe6f\xea\xf3n\x22\x80\x9f3\xe8{\x1e\
+TI\xd7\xf7\x8b\x04\x97\xd6\xb1\xf6\xf8\x80\x13T\xaa\xb0\
+\x932\x88k*\x807WfJ\xb4w\x1b\x14\xe8\xb0\
+\xd7\xefJ%+\xe1\xde';\x0d\x86\x18mt\xa5\x15\
+\xd3\x9fh\x08\xc7\xa5\x0cQ;a\xf6~\xf6\xa2\xf4\xe9\
+\x99\xd4u\xa0\xb9'1\xa9\xdao\x1b\xc2\xeb{\xc5\x08\
+\x22`+\xe6\x1b\xdd\x05|?]1i\x04\xf4\xfb\x1a\
+r`\x92\xbe\xf6.\xda\x8a#\x04\x93\x05\xca7\x1a:\
+\xb6j\x96\xa5s$\xa4\xea\x9a}\xfaz\xa3\xd6\xfeV\
+C\x161& \xe8L\x22\x95,\xf8s\xbb\xbd\xa1\x08\
+hp\x1e\x0a\xd8\xf7\xd7\xf7\xd7\xf5Ids?\x13\xd9\
+\x1c\xce2\x14\xe2q\x94\x02\xe2(i\xbd\x8f\xeb\xdc\x9e\
+a\xfc\x0e\x0c8 ?\xa7n\x87i\xff\x1d\xedaP\
+`\xf0\xe1\x22p\xb4\x91\xa1\x10/T\xa6\xde\xb5\x8f\xd0\
+\x008\xbc\xf9\xb8i\xd54\xf7\x19\x0a\x91M\x1c\xe1\xf1\
+!\xed\x0f\xc1}\xb7R\x08\x17\xa55\xb7\xf0_\xd1~\
+~-\x8a12nh5\x1dd\x88\x0c\x80g\xadm\
+\xaa\xef\xaf\xeaVA\x86\xd8_\x13\x98\xc1\x1f\xc1\xc1\xc7\
+\xef\xa0= ]\x9a~n(4\x99Hhh\xff\x1f\
+66\x14\xf3\x8d\x84\x84\x18x\xde.\x19\xfb\x1a;P\
+\x8e\xb9g\xa4%&\xe8v:m79\x8f7\x1bb\
+@#}\xcf\x8d\xb2W$\xee\xea\xfb>\x01%\xecI\
+\xbe\x8f\xf3& \xaf\x84\x17\x09\x86\x19\xfa\xcc\x93\xd8\xc4\
+.@\xdc\x95R\x02\xfe\x0e{\xac\xf67p\xe8a\x88\
+\xe0/b\x07I\x04q\xb8\xc1P\xd8\xaf\xf8\x83\xec\xeb\
+\xd8\xc3\xcc\xdb\xba\x0b\x00%\x0a\x04\x22\x10\xd7e\x5c)\
+yU\xc9\xa6;\xd00=\xf9{\xfcV\xecY\xee\x03\
+G\x98\xd9\x0a\xf0\xbbF\x13\xd7\xc9\x91\xf3\x22\xd0A\x9b\
+T\x02\x19u\xd7\xb2\xfa8\x19c`\xc6Dr\x1a\x07\
+^O\x16P\x98\xecX\x7fn\xcdd\xd0s\xdf\xc6\xb7\
+\xff\xa7\xb8q\xf4\xef\xc5\x81\xa3\xe6\x9f\x13\xe2\x86C\x1d\
+\xe6\xc6\xe0hZe\xc8\xa3\xc5\xef\xd9\x18\x8d@\xf3\x8d\
+\x22\xf2\xc5\x89\xaa\xf6\xc7\x0dk\x1c\x1bMX\x1ed\xff\
+~\x1c{\x1c6\xa8.D\xa6jM\x83:\x100e\
+\xfa\x9a\xf2\x19J\x088r~D|\xea\xc8L\xdd\xee\
+\xb0\xce\xf0\xe7\xbe\x97\xe9zf\xf6~\x951\x00\xe0\x0e\
+\xd3\xdc\x95\xba?\x0f\xdc[\xaa.\x03P\xa4q\x8cy\
+\x80Y\x90\x10A\x93%g\x84O\xa3|\xfa\xc4\xc5@\
+\xc7\x81\x9cW\xe3D\xd7\x022\xe9U-\x8f/\xa0D\
+\x04q\xe8q\x14e\xc8\x07##9h[\xa7\xda]\
+Woga\xe3\xbap\xf4p\xfc\x97n\xde\x11\xfbg\
+\xd7\x19t\x8e\x04|r\x89E\x1aW\xc6c\x19e\xe0\
+\x17\xd0\x02^E\xf4\xbcO&\xf7'\x07z\xd2\xb1\xbe\
+\xffuM\x0d\x0fn%:2CI\x8b\x162\xef\x0b\
+J\xa6]\x99w\x8fh\x92\xe1C\xe4\x8b\x05\x8c\x0d\xea\
+\xe6\x88\xbc B\x8d\x82\xfa\xc4\x82\xcd\x82\xceF\x00s\
+\x82R\x01\x98\x02\x94\x22\xc0l\xc0\xf1\xadKi\xb8\xfe\
+\xccHI\x0b%\x0e;\xf3\x89\x85\x16C\x97\xf66\xaa\
+\x95\xf5\x8d\x12J\x1a\x0b,\x81\x11\x9e\x17JC\xe4\x10\
+\xd0\xfe\x8d\x1aB/\xb1\xd0\xfa\xe0\x0e?b\x8a0;\
+\xd0\xaa\xa0\x1d\xd8\xe7\x0c\x05\x95\xfbtC!\xfa\x87\x03\
+*J\x9c/\xdcP\xfdU3J\x86\xd1U\xcaE\x1d\
+o\xae4d\xb15kbe\x99\x10\xa7\xb6\x91!\xad\
+j\xac\xfb\xa9\x86L\xc1\xc6\xd0\xa7/:\x99<\xab(\
+\xb6\x9abj\xce\x11\x15\xf4\xf9S\xcfS\xd4\x8d\x95\xd1\
+\x82\x02\x8e\x9a3}\xbe\x9d\x82\xc8z0\x12sH\x99\
+`j?]%\x19\xc7\x1e*\xe6\xb7RM\xb1\x8b\xec\
+\xb0\x0f\xd4Z1d\xaeQ\xd5V\x8d\xb3\xf7\xfb\xc61\
+W\x0d)\xfd\x97\x09(\xb9\xa8\xa12aQrvf\
+\xad\x1b\xab\x14\x99\xf0\xcd\x026\xcd\xeb\x00b\x89\xfe\x1c\
+\x90)4j\xa3i-\xdc`(D\xee>\x90\xfa\x8c\
+C\x11\xb7U\xc8\xd6!oK\xf8mC\xee\x97\xee\x8c\
+\x12\xbd\xa6\xdd\x1d\x14\xc9\xf6L\x83J\x8b\x96M?7\
+5s2\xa5\xedO\x0c\xeaW}\xa1JB\xac\xff\xf6\
+u\x06\xd5\xca\xfe\xb0\xd0\xb0\xe19\x223B@\x87\xfb\
+\xa96\x86Pu\x11\xd7u\x0a\xa5\xf6]\xba[x\x89\
+\x95J\xa2\xbc\xb6\x1d\x87C\x06\xb9\xcf#9\xd8\x88\xb3\
+E\xea\xf7\xbaE)\xc7R\xe9\xf9\xa5\x1b\x01\xebW,\
+\x91\xd8#\x07\x1a\xdd\x01\x92X\x96\xf7-W\x0d6\xed\
+\xe1&\x0e\x98\xd8\x7fb\xffp<\xd8\x10\x8e?\x9b\xb8\
+q\xe2F\x89\xe2Y\x0d\xfb\xbf\x0da9\xde\xdb\x10^\
+\x9fm\xc8T\xf2\x81\xc0#L$\xbe\x8f\xf6vjw\
+\xd8\xfe\xc9\x90\x1d\xca(Y\xd0\x14\x81\x9d\xf7\x19R\x00\
+\xa7}\x22\xb6\xa1\x0bP_\xf9/e\xc6\x88gze\
+\x00\xf6\xb7\x18\xf2\xf9zm\xb9\x02-\x91\xb1\xb1o.\
+5b~\xb57\x1a2\xc5\x98\xe7\xd4\xcd\x91Y\x0d\xe1\
+\xd8\x19\xc2q~C8^c\x08\xc7\xab\x0d\xb1\x8bA\
+R'\xd7\xfe\xea\xa5hZ\xe7\xdbs\x0c\xf9:\xc6\xb7\
+3\xa8\x04i\xf5\xaceB\xd7\x86\xd7?i\x08\xdb\xc3\
+\x02\x01\xc1\xfe\xe8\xae\x0d\xb8F\x81\xb6\x03\x8b\xc0\xc3!\
+\x86p\xbf6\x08\x08\xf3q\xe2\xd1\x80\xb0\xceM\xbba\
+\xda\xf5\xd3\xc2\xe7L\xbbo\xda\xbd\xd3\x82]8m5\
+Cx\xff\x92\x86\x82\xba}\xbb\xf6C\x05Ba\x80\xf5\
+\x8f\x1b\xe2\xfa\xb8K\xbfK\xf8\xbb9\xbb9\xba`\xcf\
+uo2\x84\x9f\x7f\xc1\x90\xcf\xb7\x9b\xa9\x9b\xd2\x05\xbb\
+\xae\xbb\xc1\x10>g\xe6T{O\xe9\x1e\x14\xf28/\
+\x9f(4\x05`\xd6\xc1\x08\xc5\xc0\xd7\xf3\xe2mj\xef\
+0\x84\xe3\x84!\xff]l\xdb\xfa\x8b\x1c\xb8\x87I\x81\
+\xc3\x8ax%%@\xdcG\x1c\xcb~6C\xd1\xfdA\
+Z\x12\x91\x19\x12\xec\xb9~+C\x0c\x04_d\x81`\
+D }\x9d\xdcP5\xf3t\x99`]\xa6-\xecN\
+\x86\xbc\xefz\xe6\xfd\xbb\x86\xac\x81\xe2mL\xc5$k\
+\xcf2\x84\xf9r\xb7!\xbc~\xd9\x90\x19OP\xf0\xfb\
+\xa7\x0c\xd2\x16\xd8=\x1c?o\x08\xc7k4_\x10%\
+\x0c\xee_\xd4V\xf8c\xff\xa7\xfeO1\xb0\xb0\xb1\x05\
+\x16\xfai\xfdD\x14\xd141\xc6#\xd4\xa5\xe1\x07q\
+\xbfK%6\x94x<\x95\xd6\x11\x0f\x80\xdd\xab\xe7\x8c\
+\xfb\xfa\x92J\xb2p\x84\xe9\x82B\xe0\x07\x916\xec2\
+\x12\x0c$\x86HD*\xe0\xe0]f\xd8W\x14\xd0$\
+!fJ\x06Q\xcb@\xeb\xa3w\x07`\xdca\x0a\x92\
+\x80\xc2\x01e\xbdV\xe0\x88\x92=J7\x87\x83\x92\xd6\
+\x11\x81\x16S80\x8d\x03\xb7\xd7\xb0\x93\xf9\x1e\xe6/\
+\xa5,uW\xb2\xcc\x94\x9d\xbe\xbb\x0f\x81,\xfc\x0c\x8e\
+\xb5\xd6\x19\xccG\x18\xd1$0\xf9\x1c>\x17\x06-\xcc\
+-^\xe3\xa7p\xde\xd8i\x94X\xe0\x8fp>\xf8u\
+\xecW\xf8o\xf8U$Da\x00`?\xe3\xb0\xd7m\
+\x0c\xf5\x1a\x91g\x0f8\xd4\x81\x00\x18\xb4\x1c-,\xf5\
+l\xf1}\xf8\x7f\xbc\x9f\xbf\xafE\xeak1\xf5\xdc\xee\
+\xfd\x8dK\x09\xfe\x17\x85\x1f;\xaf.M\xe0s\xeb\x80\
+\x01G\xce\xa3\xee\x0aP\x95\x22\x8c\xc7\x88\xd9\x0a\x8a\x84\
+\x95\x8e9\x13\x08\xea?'X\x0f\x80\x99\xf5\xcf\xe8\xf7\
+}\xacI\x0b(\x0c\xc3%U\xebc\x86\xd6\xf12\xdc\
+\xd7.D4\xa0\x08\x13\x11B\x5c\xa2\xd6\x12\xe0\x01b\
+ \xab\xbe\x92\xeeh\xae&q\x8cz\x22s\xfe\x0cL\
+\x9dY\xe7\xa8\x07\x86\x1aO\xa7:\xe3\x18s\xfd/V\
+\x0e\xe0\xcb\x15\xc5d\xb2\xb6\x0c\x88\xf4q>YD\x83\
+6\x83\xc9\x91E4M\x11O\xcf\xac\xf2\x80\xb1a\x89\
+\xd2\xd3\xf0 \xce\xed\x0c\x81t\xdd\x04\x08\xf8{\xc4\xdb\
+VU\xe6\x1f\x87\x91\x0c+\xf7\x85\x9ao\x16\x16\x1c\xf1\
+\xeas<\xf0\xc0\xf9@M[S\x94r\xa8\xc5\x18\xe6\
+u{D\x16\x12\x8eKj\x1eP{\x0eu\x7f\x09\xbd\
+\x1f\xa6\xc1d\xd4\x196@\x1cP\x16\x042\x91P\xf6\
+\xa5.>\xe9\xfd\xa2\x84\xa3R#\xf5\x07\x92yE\xc0\
+\x89\x0d\x85\x85\x80\xf9\x84\x03\x0f\xc5\x0c\xed\x04\xf5\x0d\xae\
+K0\x9cB\xad\x8d\x88\xc0\x8bg\xae\x11\xaf\xab\xc7\x8f\
+\xeb~\xa9\xd2~\xa8K \xb8_\x04r8\xc2\xb8A\
+\x83\x80\xfb\x8cA\x84V\x04\x0b.\xf3\x96\xf1\xd1\xf3\xe8\
+\xa2\xa0\xa7\xa4\x9a;\x0f\x10\xa1\x85\xc0\xf7(c\x0f\xf3\
+\xa3y\xcd\x903v\xceTP\xe6\xccE\xfd(\x01\xa0\
+?\xba(\xa6\xd4\x86\xfb\xba\x85\x16\x00\x1b;\xa2Ej\
+\xf3\xe2\xd44\xe6\x0d\xe3&q%/\xd5`\xdda=\
+R\x06\xb6\xf9\x8d\xa1`\xfc\x90A\x87\x19C{@6\
+\xfc\x91!;\xf4P\xf3\xfb)\x86\xac\x1e\xee\x81\x0f6\
+n\x02\x9c\xfc\xe3>H\xed\xd87\x06\xe6\x01\xf3\x8e\x0d\
+\x90\x0d\x9b\xee\x04P\xe4\x10\xcd\x9c9r\x7f\xdc\xf1 \
+#\xee\x01\x5c6p\x02x\x88\x85\xd2F\x91\xf5C\xb5\
+\x90Q\xb3~\xcf<\xdf\x9a]\x0c\x99\xe2O`p\xd8\
+\xd1P\x9c\x87\x98\x181\xf3x|<\x8fXR1\xda\
+\xd7\x10\x8e\xb7\x07\xdc\x11?\xe7\x09\xcb\xa0\xd2\xb6\xaf=\
+\xcaPhz`\xe8\x92)z%\xe0e\x05\x98\x1e\xcf\
+\xed\xc1\xe2(\xfd-\x8a1F\x91\xb2fE\xddG\x02\
+g\xf4\xf9\xa6\xcd\xdc\xef\x0d90\x02c\x80>\xcd^\
+\x1b\xac\x1a^\x17%\xc3!\xbb\xd0\xa0\x00\xc4\x9bs\xdf\
+\xea\xd84o\x9f\x22\x90N\xc9\x94\xc4C\xbd\x14\xe1\xc8\
+T\xb3myg\xcb<S\xe3\xea\xd4\xcf\x8b\x0c\xc5z\
+\xc7~J\xe0@\x99NW\xa7\xa6\x8b\x842\xa2\xedz\
+\x86\xe2\xf9\x13\xc5\x9f\x12\x93~gC,]IL\x82\
+\x93\xd4f\xcf\x9e\x92\x8f\x14Th\xec\x19\xd3\x00X(\
+\x8b\xd5\xe1\x88\xf7\x9b\x18\x8a\xeb=e\xec\xe4\xb1\x93c\
+\xdb\xb8\x98\x09\xa5\xa4\xa1\x99j\x90!\xf6/e0\x0f\
+\xcc\xf6\x85S\xffeg\xb4\x7f1D;#\x89l2\
+?\xf6Hj\xf2.r\xa8uf\xb4\xa0!\x07\x88\xc9\
+X5\xb7\x1ab\x09Klo\xda\x9c\x96\x02\x88\x18\x90\
+h)\xb8\xb8\x9b\x98\x7f\xc3M\x86B\xf4U\x01\x98\xe8\
+\xf8m\xa1Z|k+x\xb5!v\xcfH\x0e\x1b%\
+^\xd2\x04i\xfee(\x1cd=O\xd8\x0d\x1e\x00\x92\
+C\xe3b\x8c\xd7$\xc6P\xbc\x1b\x1f)Db\xcdp\
+\x0f\xe79\xfe\x13\x83\xe6\xc9\xc5\xd2\x14\xf8Ha\xe0\x9b\
+\xe6\xc3ebN\x9d\x95\x03\x0b\xdd}\x86\x5cJ\x12\xd7\
+\xbb\x15\xb3v\x02\x1a\x05\x04\xae\xda\xbd\x0c\xe1\xe7\xcb\x19\
+$\x82\xb8w\x9c\x1f\xb7\xc5v\x87S\xfbG\xfaG\xc2\
+\xf8\x1f::ltX\x5c/\xe3~\x8c\x16\x14Z\x08\
+d\xdc\x87\xef\x1a\xc2\xe7\xdf\xaf\xcc2\xda&\x7f\x92\x03\
+/&\xdb\xf0\x8f\xb4\xef\x04'#1\xc6`^!\x02\
+\xb7\xa35\xaa\x8b\x8e\xd7\xe7\x06S\xfd\x7fK\xc0\xfcY\
+\x143\xbaS\xab\x17\x01O\x02a\xca\xec{)\x8b\x02\
+f.2Yu\x91\xa2\x94\x0eM\x02\xf6\x1d\xda\xa3z\
+\x0d\xb6D_\xdd\xe1\x94C\xe4}\xe2-_|l\x0e\
+\xec\x91\x09\x1ef6\xe4\xf5r\xf8\xa4\xa1\xe8\x96d\xa5\
+\x10'\x89\xa1v\x87\xba\x9e\x5c\x9c\x1d8o\xfbMf\
+^\xcc?\xc4\xe3\xb03\xbc;\xc1\xddc\x7f\x88\xda+\
+\x1a\xe7\xf60C\x0c0mh\x01\xa6\xee[\x86|\x9f\
+lTm\x5c\x9b\xdb\x0c\xb2\xa3^\x8d\x01\xfc\x9db\xfb\
+\xdd\xff\x0b\xeb\xe6\xff\xc5\xf51\x89\xda\xa9\xcdh\xd8\x8b\
+\x93\xda\xbe4N\x86\xef\xa5\xcf\x1b\xbb\x5c\xda3Z\xa7\
+\xe8b\xe2\xeb<\xa2\xbb8\x92r4]\x93\x86@\xb6\
+\xd6a\x98u\xde\xf7}Ae\xa4\x09\xe8A\xb5\xa7\xd4\
+\x08;\x0c\xc7\x141dJ\xa8\xc4\xe4\x83\xb9\x10v\xad\
+\xb4.\xb3\xbec/aga\xffb\x17S\xf3\x8f\x03\
+\x0b#\x93\xfd\x83D\x0b\xe7#\xe6)\x81&g\x22\xe2\
+\x0f\xb1\xdfc\x97\x92(\xc3>\x80\xb1\x89f\x0c\xa50\
+\xd8\xe7\xf8M\x9c'\xf6\x0cG\xaeC\xfb\xbek\x1f\xc0\
+ %1%?\x8e\xc0\xba\xcf;\x1c}\x18\x178\xfa\
+\x9c\x9f\xbe\x07\xe6\xb73E\x09P\xd4\xdar\xfc\xc3\xb1\
+\xc7n\x91\xfd\xef\x81\x9f\xba\x04\x16f\x00\x89\xa9\xda\xa1\
+\x7f!\x95`\xd4%#\xce\x8c\xa3\xc4\x01\xfb\x1e;\x99\
+\xcf\x99$@0\xbcb(\xfe\xae\xa6\xf4cg\xe2_\
+L&6Xk\x18\xb0\xf1b\x0f\xd6\xcc\xe3I\x12\x97\
+\xe3\xb1\xd6em-|W\xc4~\xac];\x91k\xee\
+\xa0^s\xe2\xde'Q\x0bb\xbc\xecg\xb5\xf0\xad]\
+8Z6\xbdW\x12\xa5\xffK\xc5\xc4d\x02\xf1\x1a\xaa\
+\xc6K\x95\xb8\x1b\x8e\x18\x13\x92\x9ak\xfee\x95v\xda\
+\xa3M/\xde\xc7@p\x03\xc8\x941!j\x8a8\x81\
+\x05>\x97.\x078\x22\x9a\xc8Naya\x06\xd1>\
+\x98\x01\xd3\xd7\x9e\xd4\xd4\x0c\xce\xb7v`\xff\xeb\x91\x19\
+\xde\x87\xe3\x99\xcek\xac\x8a\x10q\xbe\xca\xd4\x8c\xb5\xa2\
+\xd0\x93\x11_^\x86\xfb\xf2\x8a\xc4Q\x8b\xbe\xa4\xa1P\
+\x11\xe5A\xa7\xff\xaf2dd\xf8\xfdz\xa1\x92\xcb!\
+\xa0\xed\x94\x1b\xfe,\xc0\xafWm\xe0\xb8\xdf\x04.\xc8\
+\xd8\xc14\xa1\x14\x80\x85\xe0-3\x1c\xd3\x83\xcf|\xa1\
++@\xa6\x0a\xc5\x8cf\xd8\xfe\x13\xe5\x0b\x87\x93L\xb9\
+\xfe\xde\xdb\xd5\xa1\xa5P\xb7\xab\xac#t\xfd$\xd4\x9d\
+:\x03\x9b\x99\x09\xd33\x05\xea\x9a\xa3\x9a\xca\xc3\xdfs\
+\x1e,\xb0\x8c7\xef\xc3\x01eA\x83\x9aL\xbfX\x22\
+\xd3\xfc\x9cR\x1a6,(\xf4|\x1e\x1b\x05\xe3M\x1b\
+K2\x8fh\x0f\xf0w|\x0e\x01\xb0\xbad\x82\xf7\x91\
+1\x81\xaa\x8e\xa3\xc9\xfdc\x83\xc1AG\xa5\x96~\xc2\
+\xea\xb7\xee\xea\xf9\xbb\xa5\xbe\xe1\xd4\xce9\xe5\x5cm\x09\
+=2\xcf\x06\xa9\xdaL\x17?T\xc6\xd6E\xfb`\x5c\
+\xe0\x98\xf3\xfc\xd3\x8e\x10\x87\x1f\xaa2%)8\xfc\xd4\
+\x8c\xa3\xfe/\x87\xcb\x1d\xb4\xa3\x22\xbc=\x1e\x19u\xff\
+=5\xc2:\xe2\x08x\x9fwQ\x0e\x11\xe7\xf2R\x10\
+\x0c\x056\x0c\x98\x06P\xf4\xf9=\x01(6B\xcd\x0b\
+\xd7\x00 \xf0\xc3\xfc\xe4\x1f\xcf'*\xc7\xb4\xf7C4\
+R\x8c\x07\xe6\xf1\xb0\xab\xa1\x08\xe4(\x93\xf4\xff\x09;\
+\x13p]\xc7\xb2\xfd\xaf\xe7y\x97!\x193%dH\
+(3\xf5Q\x88d\xaa\xc8\xf0\x99\x87\x0a\x89\xd4\xa7\x0c\
+Q\x19R\xc8\x98\x22D\x86\x06\x99\xbeJ\xc6\xf0Q\x84\
+\xc8\x9025\x19\x922\xa7\xbdml\xd3~\x9f\xf7\x7f\
+_\xf7s\xfe\xae\xfb^\xd7\xb6\xfe\xed\xeb8\xf6s\xac\
+\xb5\xde\xe1\x19\xee\xe1\x1a\xce\xeb<\xfd\xf9okV\xe6\
+\xbb\x93[\xa1\xab\x8b~1\xf2N\x92\xf5s\xf2\xbf\xe3\
+\xfb\xe7\xd1\x8c\xcc2\x0b\xfe\xfb\x0dR\x9cv\xbb\x9c?\
+i/4\xab\xb8\x1d\x18\x0f 3\x80\x5c\x1b\xe2\xe0\xf0\
+\xaa\xc2\xae\xf5\x06\xee\x0489\xac#;;\x84$\x92\
+a\x9bF\xae\x8d\xd6%\x90kT\x96\xa4\x02@\xe5'\
+\x93\x9b=W\x91\xf4i\x1e\xb6\x0f$\xfbc&IK\
+\x96\x8e'\x9aU\xf7\xc1\x18\x18v\x91\xee\xb4\xb5|\x5c\
+\x9c\xec\x22\xb1K[\xa0w\xa4Y\xe1\x8e\xf0y\xa4q\
+\x8d\x9a\x03r\x8c\xeeh@\x8av\x8eY\xfa\xde\x8b\xcd\
+rE-\xcb}5W\x99\x15D\x83Wh\x04}v\
+r3\x1cS\xadC\xdd\x8f\xba\x1fvi\xdc\xb7G\x99\
+\x95@1\x7f\xeb4\xcd\xd3\xcf+\x91yKE\x9e'\
+\xf5\x10\x10\x00\xce\x9a\xaf\x84\xa8\xf7\x00\x0bR\x0bB\xc3\
+\x1d\xb5\xcd\xa52@\x8f3\x8e\x98 \xd4@\xc3\xdb\x03\
+\xda\xfd\xdb\xfd+\x12>\xd6mZ\xf5\x14p\xcc\xd8\xd4\
+,\xcd\xc3if\xe9|^4+\xac\xfb\xddqfU\
+\xe2\x82\x8a\xf3J}O\xbes)(\xa0\xe8\xce6\xab\
+\x0a;\x96h9\xb5B\xfa\x18\x02 \xdd\xcf\xee\x97f\
+\xe9{N\x1e\x9e2<\xa5\x22\xb7T\x02\x00\xb6l_\
+\x97\x98\xd7\x1fSb\x12\x7fIr\x99\x04\x04\xed<f\
+U\x02\xf3\xa1\xac\xcb\xd3\xef\xd7+\x14\xb2JT\x03r\
+Z\xe7\x84\xa2\xe2\x92[R\x8eI\xf3l\xe9dK\x09\
+\x81c\x10\xfa\x83\x92\xa5\x00j\xf8L\xb2g\xcb\xfcn\
+_2\x93\x9fx\x9dT)*\x99F\x0b\xf7-\xe0\xcf\
+-\x12W)\x80\xfbV!\x05\x1c\xfby\x1fH!\xdf\
+\x08\xb9_F\xf6l\xa8\xcf\xd9\xa3r\xac\xadC\xdfd\
+\xe4V\x1d\xad\x9e{\xe3\x85\xdcj\xe62\xcb\xeb\xed\xf9\
+c\xe7W\x81\xeb\xf4\x9e\xa3\x88\xf1\x92\xa1\xbdV\x91?\
+\xd6\xac\x22\xf1\x93\x0c]~~F\xa2\xbb\xb9Y5^\
+\xb5\x0e\xba\x8a\x06\xcf\xdd\xd8\xcb\xffV\x15\x92H\xc8\xa3\
+v\x22\xc4Is\xbfY%\x8b)\xf2AZ\x22\x1c\x1a\
+\x8d\x9c\xe3\xe9fZo~\xa9\xc0\xfa\x82\xca\xe1Wb\
+\x0fD\x98\x9f\x97z\xbe]NUj/ \xe2\x5c\xc5\
+@\x08E\x7f>\xb4\x9a\xedg\x96U\x1e\x92eD\xc1\
+\xd9\xa3\xea~4757\x9b:\x84_\xd7\xdd\xe9\xbe\
+\xde\x9d\xfe~\xa2Y\x1a\x1f;\x9ae\x95\x8c~>\xcf\
+\x92A\xff\xf6\x9cz2\xb9\xff\xd6\xbe\xb0_\xdfC\xef\
+\xea\x0d\x8b\x88\xad\xff\x8fj={J\x89\x1c\xfcv%\
+\xd4\x5c\xa6\x90\x04\x11\xe4\xac\xe7\x9aU\xfe\x00\xfe\xb1\xfc\
+Z\x90\x18\xbe\xbf\x92\xb8\xe1\xf3A\x0cP\xb1f\x7f\x04\
+\x91\x03\xe2\x89\xd6dZ\x0aY\x87)t\xea<]\xbe\
+T\x1c8.\xd7x\x85Y\xe1\xaa\xf0\xf1\x0e\xe7\x03r\
+\x82\xc4O\xa8\xf8\x90@\x10\xf2\xceY\xfeE6\xec\x05\
+\x01\xd6I\xe2(\x12{\xc8\xf0\xe1/\x10PR\xc0\xc1\
+og\x1c\xe27\xc8O\xf6\x82.\xfe)\x054\xfc>\
+\xf9y\x9e\xc0\x82{\x00\xff\x10\x7f/\x92Y\xf2w\x0a\
+\x97 \x13\xb9\x1e\xfcF\x0a\x0f\xb1\xd5\x9b\x9f92?\
+\xf49\x8c\xf7\x99\x02~\xd6O\xfc)\x0a\x1a\xc4\xb3 \
+o\x89\xebb\xa5=\x22\xc2#2<\x90\xb4\xcf\x94\x10\
+`=+\x85\xe4\x89\xf1\x22\xdf\xf7\x9fz\xf8c\x22 \
+\x92\xd8\xf39\xc4\xb3|\x1e\xe3\x9b\x04\x80\x93\xa9\x1c\x9f\
+\xcc\xd8r\xff\x99\xec\xf1B\xea\x02\xa41\x87)\x0b\x95\
+\xdeC\xef\x1dU%\x18\x99\x89,\x9b\xb5\xa9~\xbfz\
+\xd5\xbbmy\xaeS\xab\x00\x0a\x15\x00\xa0\xad\xb5\xce\xe2\
+\xdc\xaa\xbc/Z\xf58j`\xf9\xc6\x18\xf5\xe6G\xa1\
+7\x85\x81D\xe0\xc3\x03 C\xc5\x83\xa7G\x99\xc0)\
+\xb2j\xeb\x86\x8d\xb4\xd0\xa7\xcdv\x22+?\x0f\xae\xf4\
+\xc2OT\x0f\xe0A\xbd:1\x11\xe0\x9c\x01T\x82\x0b\
+\xc7\xc0DH\xc7\x8b\x81\xb4\xa2\x0c\xb0\x89r\x82\x0cL\
+\xfe\x8e|]\xec\xc9\x8f\xad\x06\xfc\x1c3j\x9cwl\
+\x1d(\x81x\xff{\xce\x93\xc0#B\xd6I\x1cD=\
+\xca8\xc0\xf9\xb9\x04\xbe\xfd\xc6\xfa\xa0\x10!o\xd5\xc2\
+\x01\xa7BT\x05`B\xf1\xfc\xd9\x98yN|.\x13\
+&.\x84s\xe8X\xe4\x1c'rF\xc4\xc4\x0b\xf7\x9d\
+\xcfg|E\x1dS\xde\xc7F\x11\x03a\xee'\x5c\x07\
+\xc8i\x22wC\xcb\x04\xec\xd2 BH\xa8\x80t\xd0\
+u S\xe5\x95\x12 \xfcp\x17\x908`\xbcF\xf9\
+\x10\x16jZ>h\xf5\x00A\x00d\x8e\x0c0\xac\xea\
+\xb0\xd2\xabW\x9e\xde:6>\x7f\xbe\x8c\x0fX\x97\xb5\
+\xc1\xba\xc3\xce\xc2\x0f\x99\x16\xa4B\xb0\xdb\x8b\xd5\xd8\xc9\
+\xe3 \xf5Sf\xd9\xd9\xfea\xe3\x87,L\x8e\x10$\
+>\x04\xd8\xd6\xe9k\xbd\xbe\xfe\xdc\xb6\xee\x11,\xce&\
+\xac\xcao\xae$\xbfT*\xff\xae.!\xc7\x0d\x07\x1c\
+H;\x89\x04O,\x88\x03\xc0\x03\x0cA{\xdd\xe1\x17\
+b\xc2\x03\x1b\x91D9w\x02\x15S\xa0\xe1\xac\x07\x8c\
+g\x12\x8b\xb0\xfe^dV \xf9.\xeb(\xb96\xce\
+\xd3\x03\xf6\xd5\xd4\xb3\x08\xb9\x9d\x9e\xab\xf7b>cV\
+%\x0aIP \xefC\x82J\x8e\x9d; J\x08y\
+\xcf\xa7\xd8\xb8\xdb\xa9f\xe9\xf47\x1cl4H\xfb\xcf\
+\xe0\x80\xc1\x81\x83\x03s\x8f\xf0\x19\xd6#\x9c\x13.w\
+d\xb2\xb6\xf5\x8c\xac\xad\xbd\xc6,\xfd~\xaaYAx\
+\xb8\xbc\xe3\xb7\xfaJr\xeeIO\xe7\xdd\xde\x9e\xec\xb7\
+\xe9x\xabY\xfa\xfd\x13fU\xcf0\x08# \xbe \
+\x08H\x141\xaf\xa8\x10\xf0\x9c\xaeIvu\xd5\xfa\x81\
+#\x06\xa9\x94UD\xd6\xabHHqtV\xcbJ\xde\
+=\xa9\xe4P\xea*\x8b\xeb{\x1e-\xac\xd4y\x9cM\
+\xaf\xc6\x0f=\xd4S\xfb^\xfc\xe6h\xb3R\x81r\x96\
+i\x91l9\xc9\x93*\xaa\x9e8c\xbd\xa7%\xe8j\
+\xb1`\xc3\x0a.\xb9\xbd\xcc\xf2\xbfMi\x85\xf0\xfb\xa0\
+\x16\x19\xde\xefl\xe7pD\x1c\x92\xec\xd0Jv\xd2\xdc\
+\xc2?I\x8eka\xe9\xd2o\x5c\xd6\xff\xe6WfE\
+\x0d\x01y+\xd43\x5c-A\xac\xf2\x83#\xcc\xd2\xf3\
+\xfci\xfb\x93\xf6'\xf9\xb9\xfe\xd6\x9e/-I\xbc\x7f\
+x\xaeY\xfa\x9co\xf4\x15|\xc8!\x87\xf3\x99U\xeb\
+\xb5\xd6W\xa0\xd93^7K\xaf\xdb\xc0,\x07\xbc\xcf\
+Z\xc0;c\x17\xb3\x9c(x~\xf8|\xc5\xce/\xf2\
+B\xc8\xf9r\x02\xf6\xbeBr\xd9-m\x96\xde\xb7\x5c\
+\xb2\xe40\x0f\x176K\xbf?\xc2,\x1d/2+$\
+\x8c@\xb5\xbb\x85\xcdJ\x8fw\x0ax{28Z\xf2\
+\xa4\xb2\xd2~\xd7\xac q\x084QU\x18leV\
+A\xd1\xd73+\xe4\x9d\x04\xce\xed(\xd9\x98\xe6\xc5\xf7\
+\x04]\xde\xb3$\xc0\x86G\x99\x15\xf2\xc0\x19G\x99\xa5\
+\xf7e\xb6\xd2t\xdc\xc3L\x5c\x0eoV\xcb\xc9\xb6U\
+\x0f5\xb2\xb1Z\x97\xfcg\xf3\xae\xe6.\xaa\x17.\xeb\
+(.\x16G\xacX%t\x86Z\x03\x8e\xa8\x12\xc7\x96\
+\xe0;\x22\xb7>$\xab\x12\x94\x0aHs\xfd\x7f_\x91\
+\x88U\xac\xeb\xb4`x+\x91*\xd7\x04v\xb4 \x8c\
+\xa6\x9b\x95\x84\x82\xf7\xf0s^\xc8B\xaa0\xe6\xf2s\
+p\xae(@\xf5\xc2\x8bd.\x1d\xd9B@\x0a\xb7\x0c\
+\x81\x1e~\xd4[\xb2\x00_\xe1\xea!@\xa5U\xed\x00\
+\xa9\x80\x90p!\x907\xce\x86\x9d\x0aYcV\x95\xd8\
+\xbc$\xb2s\xc3\x9e!S.Kvy\xf1\xab3\x22\
+b\xa1*\xf1\xb1S\x1aW;U\x89\x02\xad/\xed\x0d\
+f\x19\x89\x97\xb96\x9a\xd5\x9b5\x9aJU\x04\xb2L\
+\x0a=\xb4,\xa4\xdd\x22\xc7\x19\xcd\xbc\xcd<\xcd<U\
+\xeb\x10\xe4\xc0\x92\xc5t.\x06\x100\xa8=,g\x96\
+\x8es\x9b\x95D\x00j\x14\x1e8G]\xf7=\xb3\x15\
+\x99>\x10\x1b\xf8W\xf8\x85T\xa6I\xb0\xa0\xa6\x02\xe9\
+\x1f\x95v\xc8F!\xdd\xd5\xf3\xf5\x849\x15q%\x96\
+\xf2\xdd\xb6\x04\xeb\x0f\xd2j\xfe\x83J]\x81\x842\x08\
+1\x0a\xad\x90Y\x92\x00\xa0\xe7\x9d\x16K!T\x9c\xd3\
+HH\x9fL~{r%\x9b,\xff\xc1[K\xaf\xcc\
+V>\x0fv}\xf6;\xe22\xb8\xae\xa6\x9aU-\xdc\
+\xf8\xcb\xb1\x22=\x1e8\xce\x22\xd7\x19qCP\x9bs\
+\xd5\xb9y4\x1e\x84|\x9dTu\x8d\xef\x89\x057\xfc\
+\x1e\xfcW^\x8f\x9f\x1e[P)0\x13\x07\x96\xd6\xda\
+>1\xc4\xcf\xcf\xe8\xf5EU\xad\xf7\x0f\x89;b\x22\
+ V\xd8\xe31&\x0c\xe2\x91\xcf\x8b-\xe5\x81\xf5\xdf\
+\x91!\xc49Q\x15 \xca\xca\xf3\x1cbk\x80\xbew\
+\xbc\xfdk\xb2\x07\xab\xdeU\xcbD\x9d^U\xc0YP\
+mz,ZX\xfe\xb3N\xe7F\xd5\x82\x0fT\xfc\xac\
+\xcc\xdf\x5c\xc8;`\xff|>\xd7\xcc\x0b\x0b\xa8\xc8B\
+\xdca\xe0\x01w\xb9\xf6\xda/D\x17*C\xb4tE\
+\xd6$H\x88\xebV\xcb!eAN\x83\xac'E\xa3\
+b\x0f\xb4$\x90\xaeyF\x0b\x07\x8d@\x15\x08(\xef\
+\x83d\x8d\x0c\xd9\xaa\x1a\xa0\xf3\x85\x1ez\x02'&\x06\
+\x03\x8d\xc0\x9b\xc0\x86\x07KE\x7f\xb2^\x8e\x17g\x1a\
+h\xfd@*,\x95SkR\xc6\x99\xd4\x02\xc8H\x93\
+q\x02\xa1\xc0\xe7G\x92\x08\x8e1 \x0f=\xee$V\
+F\x7f\x91\x9a\xc0\xda\xaa\xb8\xc7\x05Td\x1a\x9eX!\
+\x03\xa7\x8d\xc1I\xef\xd6\x11\x99\xde?5\xf1\x1e\xd1}\
+\x9cC\x90\xf2\xfb\xfb\xde`\xef\xf5fA\x89\x13'N\
+\xa0\x98I#\xc1\x81#\x0c4\x8a\xe7&HX3\x87\
+z\x9dh\x9d`\x02\xc5V\x13\xc6;\x130\x9eO\x9c\
+\xc0LL*\xf0a!\xf4D\x0c\xe3\x84\x0c+\x81\xb6\
+\xa0\xd4N\x02C\xe6t22C\xc6\x1d\x0bj\x84\x14\
+E\x19\x11\xfe^8\x22\xfa\xfb\xc4\xf9-<\xb15\xc5\
+\xef\x1f\x0b/PV\x02\x0e6\x0e\xc8e\xa4\x07L \
+\xef\x0b#\xf3\x05\xf9.\xcd?\xc8\xba\xa8\x04\xd3\xdb\xeb\
+\xb2~\x22\x93B.\xca\x03R*\xc2\xb0\xd8#\xd7\xc3\
+\xba\xa3\xcc\xbbC\x14E\x06\xe5\xac\xfa\xdco\x02~*\
+\xff|\x8f\xe9\xa0?^*9l\xf8\x04\xea\x04\x94\xf4\
+\xf4\x03\xfd\xef\x0e4K\xc7\xcf\x9a\x95\xfb\xde\xfc\xd8\xac\
+\xe8\xe1z\xc2\x83\xfb\xcc<\xa6\xb2\x8b\xc3\xca8\xe7\xf9\
+\x11\x98\xefhV\xa0}N\xba\x86^;\x09B\xd6C\
+!\x03\x1c\xaa:\xa3_\x07\x1cz+\xce\x04\x02T'\
+\x09\xfcl\xdf\xab\xe8\x1b9\xf2ZT<\xb4^C\xf2\
+\x87\x9c\x1c\x10\xef\xc1c\x83\x7f\x0c\xd2|\x1f,3x\
+\xe7\xe0\x9d\x19\x22\xff\xfd\xe6\xfb\xa5\xf2M\x0bR{\x97\
+Y5\xde\xe8\x89gc?\xa8\xaf\x0c\xe6\xe7\xfd\xb6R\
+\xf1\xf0D\x0d\x90z]7l\xf5\x8e\xf4PO\xabs\
+\x04\x08*\xeb\xcf{+\xb3\x02)\xa7\xa7>\x93n\x9d\
+T\x12\x12\xed&f\x22\xfb\xab\x1d)H\xfd\xc4\xa1@\
+\xcfr\xfbm\xb3\xc2:N\xc2rtB\xb2\x13+u\
+\x07\xe6\xcd\xadr\xd4\xa8h\x08\xea\xe8Po*0J\
+\xe0\x00\xd1f? 1\x90\xc2\xe2\x9c@ \x01b\x1c\
+\xd9\x99%[\x95M\x12\x1d\xec\xfb\xed\xd3f\xe9\xf8\x82\
+Y\xc5\xd1\x012\xc7\x02\x9a\x07K\x82\x89\x84\x1b\xfa\xde\
+\x90\x9ee\xf6q#;\xdb+\xd9\xa7E\xea\x97\xfc\x03\
+S\x95\xb7\x8ac\xb7Y\xb2\xcdE\x1ah\x15\xf1s\x93\
+}\xbf\xa8gd.\x81\x7f\x94\xc0w\xb0\xd3`\xe7\x81\
+\xad\x87\x9f\xce6\xd6\xbclVZ\x00\x1d\x09\xa6\xf5\x00\
+R\xbe\xe1\xb2f\xa55\xa2;\xd3\xac\xc8\xe4yo\xef\
+\x1d\xdd\x9d\xdd\x9d\xb9\xe2\x9f\xac\xaa\x1c\xdflV\x90\x81\
+\xc8\xfc\xb9\x1f\x03\x82\x0a\x87\xdb\x18]n,\x09\x93\xee\
+u\xb3\x8c\x00HV\x05\x9a\x82\xf6\xe7\xe1\xd3d\xce\x85\
+\xac\x060\x5c\xc9,\xfd\xbc\x88\x99\xc6\xc7\x09% q\
+rA!}\xe00q\xb2\xbfe\xd4S\xfe\x9c\x99X\
+\xf1\xd7\xaa\xa0\xd4\xdc\x1f\xfc\x1d\xd4$v2K\xf7y\
+\xe3d\x96 \xb9\xc5,\x1d/5K\x9fw\x96Yz\
+\xdd*f\xe9\xb8\xa3Yz\xfd%f%\x01\xd4^\x9d\
+\xec\x9a\x0a\xa9F`\xa2\x841z\xef\xe3\xc7\x9aU\xeb\
+\x08\xfb,diBbd\xe8\xf3\xc9\x92[;L\xaf\
+?\xbc\xe8\xba\xc3-3\xda;\xd9^\xda\x97_\xa8*\
+\xae\xbf\xeee\xe12\xe3\xc0\x87\x94\x109\xb4\xb0\xfc{\
+]\x82@\xcb\x1a\xb2\x0eT\xe2\xeb#\xda?g\xd1\xf5\
+,YZ\xc9 ;#\x91\xe6\x89_!W=1\xcc\
+>\xa4\xe7\x05\x09\xe6L\xbd\xc9\xd3\xe5\xff-\xa6u\x8f\
+\xf1\x85j\x8b\xf6iO(\x88$\xae\xdd8\xd9F\x0a\
+\xfcnQ\x0f\xfe\xa1\x15\xb0\xf1\xbed\xf7\x97\xc4\xbe#\
+\x88\xe0\x10\xb0\xf0\xf0\xf6\xea\xbcQ\x97R@\xda-d\
+\x96\xbe\xe7\x1bf\x19\xd1v\xa0\xb5\xac\xb5+\x98\xe5\x84\
+A\xdfJ\x80n=\x95\xd8\xadU\xc9\xa75\xc2\xd6\xf9\
+\x0d*h\xb8\x90+\xa3m\xcd*\xee/\xce\x03\xae\x03\
+\xd4\x11T\x00\xe9\xfelV\xad\x93B`\xb9j\x10\x10\
+t\xcd\x1b\xff>Z\xa5\x80\xea\xe3\x7f\x81\x8c\xa5\x05E\
+\xad^\xee\xcf\x91\xf0\xc6\x0f'\x91\x0c\x07\x84\x10\x09\x04\
+\x92\xdd\xaef\x15\x07\x93\x15H?\x5c!\xae\x02\xb9 \
+\x9cE\x8e\xb4\xa3\xa5\x8f\x00\x16Y_\xc6\xb1\x90\x86\x8e\
+xF\x0e\xc4q\x00\x00 \x00IDAT\x05Y'\
+\xff\xc7\xd5+\xf0O\xf9<\x10\x9a\x81}\xdf\xfd\x82\x88\
+@\xe5\x18I\xf1b\xa1-\x22^\xa3|]@\xd4\xba\
+\x9c.\x08\xc4\xc8\xb2\x1f\x11\xd3\xfc=\xb2\xf5\xf3\xbd\x14\
+\x18\xf1Kc\x81$p\x5c9B\x84\xca?q\xdb3\
+\x81\xfd\x1fdA\x84\xfe\xff\xa7\xc0\x1f\xbf\x0d\xa46-\
+\x0a1\xa1\x10[\xc5\xff\x13\x89_<\xc6D\x00~u\
+\xeb\x1ct}b$\xc43\xe3@\x1a!\x07\xf3J\x08\
+\x81#7\x94@\x02\xf6T]\x90\xf7\x14*\xe3J\x06\
+\xd2Y\xb0w\xcf\xca\xecc\xcd\xe5\xc9\xaeH\xe7s\x82\
+Y\xa5\xb3\x1a\x1dR\x02mA\xb8\x5c\xbe\xee \xb3\xb2\
+A8Y\x15\x0e(\x13\x0b\x87\x9f\xf3'\x10\xe2\x81\xc4\
+\x0c\x12\xbd\xec\xdc zP\xe8\x85&\xf0\x092q\x95\
+.k\xff`\xe4\x98y&\x8b\x09\x0fR\xe2\xf9\x10\x80\
+\xbf\xae\xefg\xa2\x95@vB\xc6\x08\x16\xe6\xe6\xbfT\
+\x19\x8e\x90\x93\xc9X-#\x04\x05\x07\x93\x1em*\xcd\
+\x5c\x1f=\xea\xb0\xf5\x12\xb8\x93\x11c@r\xfe\xdc/\
+ UL\x94\x08u\xe1\xf9\xf29$\x02\x08p\xfe\xa6\
+\x9f\x09|\xe7V \xcb\xe7\xd3[\xae\xf1\xe6\xaa\x051\
+\x13\x17'T\xfc{$md\xa2\xb1\xf1\xb2\xd1<\xad\
+J\xf9\x06\xe2@\xe0~\xb3 \x11 3\x0e\xd88\x98\
+\xa0\x91\xf4#\x90{\xa0W\xea\x95f\xde\xcfxb\xfc\
+\x93`\x02\xaaO HOv\x80\xe8\xbbZ\x06\xb20\
+\xf4f3\x0e!s$\xb1\x113\xac$&\xf8\x99\xeb\
+\xe5\xb9\xb1p\xe1\xe0r^$B\x08\xd0\xb8\xcf\xac\x13\
+b\x8d\xf7\xeb\x07\xeaME\x9e\xf1\xc1\x86H\x82I:\
+\xd9\x5cG;O;o\x86\xb8J&\xc7\xc9\xd9\x1e\xe9\
+{~\xe1F\xa0\x82\xe8P/\x02c\xb1\xbf\xbb\x1c\x0f\
+,\xdd\xc8\xf7\xd1S\xacy\xe5l\xe0\x04P \x05T\
+i\xf6\x0dQ\x89\x12\x02\x07\x12\xa9\x90uA\xc6G\x02\
+\xc0+\xd5\xb06\x03Ad^p\x9fU\x19rV|\
+\xe9<\xbb\xe3\xc2\xf5\xf1\x0f\x0e\x0f*\xb6\xe8\x1c\xd33\
+\xfd}\x05\xd8\x0aXI\xa08\xb7\x02\xac\xcd\x22\xe3B\
+\x1e\xd1\xc7+\xac\xc7p)\x10\x08\xca1\xc9\xadc\xc6\
+r\xbf\xa8Y\xae\x0c~\xaa\xfdT:~\xc0,\xed\xc3\
+\xb7\x0en\x1b\xdc&5\x917e\x99\xb9\x1f\x98\xcc\x5c\
+\xba\xab\x0f\xe6\xfbJ\x8f\x1e\xf3S\x89\x09*j\x04b\
+\xed\x9ef%1\x94\xc9\xd4\x92\x03\xd4\xde\x99\xec\x8e\x8a\
+T-\xca\xf8\xc0\xd1\xa0\xfbD\xc5\xd4+\xed\xaa\x8c8\
+\xb9\x97t\xad\xdb\xa3\xcd\xca\xf3\xf2q\x01W\xa8*\xa0\
+\xc8\xfa\xf9\x86\x8f\x1c\xa6\xd6\x01S\xb76}\xeb\xe6u\
+3\xc9\x96\xa6\xf9\xdf~:\xd9^\xa5R\x9e\xa1\xda\xc9\
+\x11n\x1eN\xf6H\xd1\xad\xb6\xc6<k\xcd\x1bm`\
+VH\xa6\xbc\xf5\x04\xe8&\x8e0\x5c\x12\x0a\x0cF\xa7\
+\x9aU\x0e\xb0T\x02\x98\xf7@\xde\x9d\x05\xfe\xab\x92_\
+\x13\x07\x8e\xb7\xd4\xa0\x1a\xc0\xb8\x80\xed\xda\xd4\x13\xfe\xbb\
+\x04\xb8\xd6qm=\xd7\xe8\x91{\xa2\xc9\x123\xb7\x15\
+\xa4\x92\x07\xaa\xffN\xf6\x5c\x05)U\x22!\xb3\xcd\xef\
+/\xd2\xc0\xb4\xbe\x0c\xa6\x98eR\xb6\xbeud\xb1\xde\
+\xd1\xedn\xebU\x00\x90\xcf\x9b\xf1\xdc\x8c\x7f\xcf\xf8w\
+N(\xf6\xc8\x85\xeb\xa5~\xf1\xb9l\xbe.9\x94\xfa\
+\xfdf\xe9\xfd\xc7\xf4\x81\xfe\xf0V\xb3R\xc1\x1c\xdbX\
+\xf3\x0bY6\xe4\xba\xac\xce{^\x99\xf7\xb9\x95\xe3\x8a\
+*\x01`\xe9\xa7\xf5\xd3\xf1|A\xd4_7\xcb\xa4\x81\
+7u7e\xa4@f\xc1\xb7\xcet\xebM\xef\xfe\xd0\
+\x93\x9b\x0dw5K\xd7\xb1\x83Y\x09\x08\x9cK\x04\x07\
+Zd\x90\x1epARv\xa9\xa0\xeb\xfa{\xf7N\xb3\
+\xf4\xb6\xf3\xcd4\x8e,\xe1\xf0T\xb2'\xab\x02\x90q\
+\x22\xbc&\xee\x86\xf9\x0b9\xb3\x8f+\x05F\x99C\xc0\
+\xce\xeb\xa7f\x95Z\x83Z\x0a|\xff\x85d\x95\xc43\
+l\xe6\xa8\xf5\xcc\xc8)\xc7\xb1\xf6f\xb3\xf4|\xe74\
+\xab\xe4Y\xe9m\xb7\xca\xf2\xc7K\xef<\xad7\xb0\xa8\
+\xe7\xf4\xd8\xad\x99D-\xab\x1f\xe4\xc4S\xa5\xea\x93\x13\
+\xab_\xd5x\x9f\xa3ZG\x17\xc9]\xe0e\x1c\x8c'\
+\x9b\xa5\xfa\xd9\xe4+?ZU\x8c\xd5J1\xf6\xe5d\
+_\xaa\xd6O!Z\xe8\x11G\x1e\x91\x1e|\xfcRG\
+\x1eh>\xba\x9c/\x8e>\xfb\xed\x0c\xf9\x87\xb3\x07D\
+bt\xf8\xb9\xafr\xecM\x04\xd9\xe4\x1b\xdb\xdf\x9b\x15\
+\x04\x182\xb8$~\xba+\xcd\xaaJ0\x9c?V\x08\
+\x99\xab\xf8G\x14^\x5c\x9df~\xb3\xf4\xf7\x03\xb3\x95\
+\xb8`\xfdlc\xcd\xbf\xc4a\xc1\xfe\xad\xd6\xbc\xee`\
+\xb3\x0a\xf1\x8a\xdfC\xc0\x85\xdfC\x80\xaaD\x94\x93\xd9\
+\xfe\x97Y\xf6\x9b\xb2\xdc\xb3\x8f;\xf9#&\x8ei\xf2\
+\x98\xf8{\xde+\x8f\xfc\xa8\xe2\x07\x12\xabN\xb6\x8c\x9f\
+\x85:\x0e\x81\x1d\xadu\xf8A\xb4\x1aB\xe2L\x22V\
+\x09\xc8X`I\xbbu\xe6*\x1a\xfdIH\x06\x15.\
+@*\xf9~\xfd\xe5l\x05a\xc9\xfe\x07\xd4\x1e\x04(\
+?\x13\xc0q\xdf@&\x90\x00`\xdfc|\xe0W\x92\
+\xe0\xc3\xef\xa6\xf0\x85\x7f:\x89L\xb4\xb7^\xf3}\xec\
+\xa7$$\x90\x93V\x8b\xad#Y\x88\xe7x}\x84\xbe\
+\xc7\x1e\xf9X\xa9\xe7\xef\x93\xc9\xf9\xe1gG2\xf7\xd8\
+j\xcb}\x88\x85\xcd\xd8#?5\xc4S\xcf\x05Yv\
+\xce\x8b#\xbf\x8fq\x0f\xd73Y\x5c\x12\x7f\x1f\x13\x06\
+\xbc.\x90\xf5M*\xf7\x17\x03\xff\x88\xac\x8e\x89\x00\x12\
+\x22\xf2\xf3\xc7\xb3\xdb\xbeX\x91U\xf2\x1b\xbeP\xee\xc2\
+.\xd0Z[\x90g\xad&\x8c\xe4}\x9c\x8cHz\xd9\
+\x90\xff\xe4\x0e\xc5sJf6'\x00.\xafn\x98*\
+\x99\xa3\xb5\x92\xad)h\xd2\xe5\x85\x8c#;`\xfbV\
+\x0e\x0b$V\x90h\xa9\x12\xe3=:\xe8\x82?m\x96\
+\x03\xf1\x0c\xed\xf7\x0a&7\xe5\x15-l\x1f\xec3\x90\
+.\xff\xa0\x0a\x99\xf7L]d\xdd\x98\xb9\xa2\xd6\xb3\xa8\
+\xb2 0P\x99x\x90m\xd1K\x0f\x09M\x99\xa8}\
+\x80\xc9\xc0\xe1\xc1\xd3c\xfeJ\xc8l\xbd\xe8\x19\xb4\xa8\
+\xff\xf8\xc6l\x92\xf1\x01\x8f\x5c\xc5`\x229\x9e\xc8\x94\
+|\x22\xb3`P9& \xd4\xd1[.\xe0\x0c\xa0\x22\
+\xcc\x00\x82\x9c\x8e\xc0\x1c\x07\xf1\xc5\xc0\x22O\x80M\xa2\
+\x80@\x16\xd6|\x12\x0e,\x80o\xcb\xe0\x1b[\xa8\xa6\
+\xe4q\xf9|h\xb9\x98\x1e\x16\x02\xbe\x07$\x04\x9fG\
+\xe2\x85\xc0J\xa4$\xa3\xbb\xcc*\xdd{&2\xf7\x93\
+\x05\xf3\xb1\x00\x09\x22\x11%h\xaa\xb3\xaf\x22\x9b\x18[\
+>\x22I\xc7d\xad\x0f\xc3\x90\x08\x8al\xa0\xfc\xccs\
+d\x1c\xd1\xc3N\x0f$-\x01 18\x1f\xa0\x91\x22\
+\x13\xf2DYlE\x00!\xc1\x06\x0c\xdb\xbf\x1cr\x97\
+\xa3CnO\xd0:?O2\xaa\x22\xc3B\xcf\xd73\
+\xd6\xaa\x04:9\x13\xeb\x88\xe6\xbb\xcf\x1f\x1c\x99\xb9\xcd\
+J%r\xb4\xcc\xe8\x1d\xa3e\xaa\x1ep\xfd\xdd\x9f\x0f\
+\x81\xbbZ\x00\x80\xc2\xfa\xf3e\x9c\x93\x10\x14w\x85\xeb\
+\x8b\xab\x12\xe0H\x02\x1c'\xc6\x01rfp\x89h\xbd\
+\xf0\x0a\x87\x12\x0b\xdd\xd5fE\x05\x80\x04\x9bC\xab\x81\
+h\xab\xe7\xcf!\xf8\xb4p@\xda\xb4\xa1Y\xd5\xfb\x07\
+4\x10G\x89\x8c5\x9c\x07\xaa\xfc\xe18Y\x98\x9d+\
+\xd9J\x88\xc0E\xd0\xeemV\xc6?\x8e\xab\x07\xc4\xf4\
+\xf6\x8b\xeb\xc5I\x13!\x0f\x05\x91!\x07\x1a\x04D{\
+A\xff\x5c\x06\x0f\x0e\x1e\x1a\x98\x1e\xf8/\x92\xa5\xfb\xd0\
+\xbe\xa3]\xbaM\xf3cp\xe7\xe0\x8e\xc1\x9d\xf9\xb9\xcf\
+;\xa1w\xcf\x80\x9b\xb7\xa8\xb2\xf7\x9d\xaa\x03\x09\x92E\
+\x12%T\xac\xe4\xc0\x0ev3K\x9f\xff\xc1d\x06\x89\
+\xfe\x96Y5.\xc4\xf5@\xe2\xc6\x91\x1c\x90\xbd\xe5\x7f\
+\x15g\x00\x09\x0fA\x90\xfd\xf5\xdaO\x9a_\x9bU\x9c\
+\x0e\x90\xc5\xae\x9d\xec\xfdE\xcd\x81\xf1\xd3\xae\x9bl\x9d\
+\xaa\x12\x81^1j\x07\xba\x0e\xe4\xdbr\x18\x7fHa\
+o\x1f\xdc\x9b\xec\xber~<W\x02'\xf4\xc3\x81\xba\
+\xe7\xc0d\xcb\x0a\xe2*\xae\x09*\xbf\xed\x87{v\xfb\
+\xee\xc7\xbd\x8c_\xbb\x91Y\x0e\x88\xfa\xf5\x9e\x8a\xdb\x0f\
+{\xe8\xb2s\xfd\xccb\x96\x8e`\xc5\x85\xd0\x81\x9d{\
+\xb8\x9fY\xe5`[:pmAR\xbf]A<-\
+`\xdbX=\xd9w\xab\x82\x9c\x02\x84\xee\xff\x92]\x9b\
+\x8e\x7f\xe9\xc9\xe1\xa8p\x02u\x1f\xfc\xaf\x99\x02\xcb\x14\
+0\xb5\x7f3K\x9f\xb7\xb2Y\x95(\x129\x22\x81\x8d\
+'j\x81v\xdf*6p\xb8\x1b\xe0\x1ex\xb7d\xc3\
+\x1eS\x0f(\xeaCp\x17\xc0\xadt\x87Y\xd5K+\
+(\xb6\x07r\xaa8fY\xcawV,\xef\xcf\x9bU\
+Pr\xbd\xbe\xdb\xbe\xdb\xa13\xc8\xff\x92f\x85\x0ct\
+\xf8K\xb3\xf4\xf3\xedf\xe9x\xb4Y\xda\xf6\xef2\xab\
+d\xdf O\xa6ED\x88\x8b\xae\xed\x11\x04\xc3\x8d\xcc\
+\xa4\x16py\x91\xc9\xe4zf\xfc<\xd9%\x95\xfc\xe8\
+\xa9\xc9N\xab\x1cy}O\xb7\xbfY\x95\x98\xd1:\x01\
+\xa9!*\x07N\xdeH\x22\x95qh\x09\x90\x0d\xb4_\
+-^!\xb9@z\x08a4|K\xb2\xf9*\xb9\xc7\
+\x9f\xf4\xad\x1e\x1e\xe0Z\x1a\xf8\x03e>\x8d\x966\x13\
+g\xc6\xc5J\xc8\xec^\xfc\xc3\xee\x063\xf9\x9b\xcf\x88\
+\xf3c\xb1\xaa\xb5E${NB\x0b\xb2\xcb\x12[\xb3\
+\x89\x93\xe2\xdd\xe2.\xb9\xb3T\x9e\x9d\xd4\xf2M\xc9\xe6\
+P\xa2m\xf7J\xc7\x1d\xe4\x9b\x0ak\xa8\xe4d.\x85\
+\x83J\xaf\xbd\xcf+%\x8e]]\x85}\xf9\x05Uf\
+\xa7j\x1f'0\x03\xfaM\x85X\x89>\xdf_\xe5\x87\
+{+\x98\x12\xbb\xed[\xcd\xca<\x01q\xd7\xcdg\x96\
+~\xff\x193\xc9\xb8^_\xb1\xa7\xbf.2P\x02S\
+%pH\x18z\xa1\x88@\x95D\xbf\xf6\xa3\xd1/{\
+\xb9\xcb\xb13{n\x19\xe6\xa7\xab\xf4\x80\x04\xc6\x0f@\
+\xf7]\xadj\xde\x82\x88<\x1d\xd0\xfa\xd8\xc3.\x84\x82\
+\xcb\xb8r\x7f(,\x11\xa8\xe3\xe7i\x7f\x80;\xc9\x91\
+\x00p\xa0\x14r\xc2\x9e,X\x89bG\xe0\xe1wR\
+A\xc7\xaf&\x1e\x90\x9f\xce~\xe1\x05K\x91\xf7\x8e\xfe\
+\xc7\xac\xb4\xea\xb9\x9c(~\x06\xdcET\xc6\xf1\x7f\xa3\
+j\x18\xd7\x83\xffE\x01\x92\x96AdPI\x5c@\xb2\
+\x1e\xb9\xd6\xb8\x9f\xf8\xad\x04\xf0\xbc.\xf6\xacG\xbf\x9c\
+\xc07B\xec\xf1\xff\xf1+\xe3\xe7N\x86,\x88\x81t\
+\x0c\x88y\x1d\xbf\x8f\xaa]\xb1`\x19e\xf5J \x0d\
+\x22a\x22\x12\x9a\xd7\xd3\x82\x8e\xcc'\xf3\x90\xf3\x8f\xc7\
+p=\xdeJAa&V\xfc\x09\xfc\xb9^\xfe\x1eY\
+\xfb\xa3l`L\x04L\x96\x10\x88-\xdd<_\x1d\xc7\
+s\xa5\xfb\x9d\x85\xcc/\xb3\xdd>T\xf5\xea\x19k\xf2\
+\xecU\x80 U\x00\x97\x17\x81\x04N\x0f\x0a\xe8a\xd6\
+\xb95(\xe1\xbf\x93=Wz\xb1\xd8\xe8\xfc\x02\xe7\xc8\
+`\xef\xa2B H\x0d\x8et\xbe-S\x0a\xc4\xcf\xd4\
+]\x8d\x9c\x86\x8cc\xce\x07\xfew\xb5\x80\x01\x91V\xa6\
+\x9f\x05\xd2\x11\x098\xda\xdb\xf4\x1b\x98WL\xe7\xd1B\
+BO\xcc\xbfT1\x7f\xa4'M\xb1\xce\xcc\xac\xe7\x8c\
+\xac\x12\x0f\x86\x89\xc8D\xe0\xc6\x8b\x0b`tO/\xe7\
+\xd5l\xa2\xc0\x82\x85\xb2\xb01Ndi,=\xe4\x13\
+!\xf9\xb3\x06\x08\x07\x0e4\x01\x81\xa0\xafc\x0b\x0a\xa9\
+0O mCe\x00\xf9\xbf\xb7\x06H7G\x10\x01\
+\x04J\xb1\xd7'\xc8*\xa6\xed\xb2\xcf\xd4o \x88\xda\
+K\x1a\xd8S5q\xd0oEv-\xcam\xcc\x9c\xe1\
+{1\x1f\xb9\x9fOj\xc1\xf8\xbb6\xc6\xc7\xf53\xd0\
+8\x02@\xbf\x0fZ\xf0C\xcb\xc1L,\xe9|/\x9c\
+\x02L\xb0\xc9z|8_\x12'T6\xf8\x5c\x9eG\
+\x84\xda3\xe1\xe4yA\xda\xe3l\xfe,d,\x10d\
+\x5c\xf9=\x01?\x15_\x16v\xd8b!7\x84\x1b\x80\
+\x05(\xf6\x8c\xd3kG\x0b\x0drV\xf4fJv\x8e\
+\xca\x9e\xeb\xd4\xb3~\x88D\xcdIl \x87\xe3{B\
+\x0f\x1e:\xc6@\xfd\xbc\xf7\xfcX\xb3\xdc\x13gV\x12\
+G\xb0g+\xd1\xe6\xac\xda@\xfd\xa4GL`\x0ci\
+as\x96Y\xa9Tx\x05J\xe3\x82\x00\xd5\x135\xf4\
+dBV\xc8\xefE\x9a\xe4\xcf\x0b6tA$\xfd\xf9\
+\x00)'\xa3\x8f\xc3\x0f\x94w)\xb3\xcaA\x80\x94\x0b\
+\xb9\x1f*\xf2\xf4p\x0a\xca\xe7\xeb\x93\xe6\xa1\x07\xfc\x90\
+n.eV\xe9\x1e+\x91\x83cD\xe0\x0b\xb4\xb4\xfd\
+q{^{^\x9ew=\xf4\xfb\xd1\x9e=\xdfe\xac\
+\xb8\x7f\xaa\x94@\xea\xe9\xe4{\xffeVA\x8d!\x85\
+\xa5\x85\xe2$\x91!>,\xd6uU\xfe\xc77\x1f\xdf\
+l|\xf3\x8a,\x0c27\xc6\x09\x15\x02\xc8\xf4\x0c\x1a\
+{tE~E\xc2\x19\xb9*\xc8\xef\xe8}\xd5\xf7\xe7\
+\xba\xc3_\x15\x90n_A?\xf9|\x1068T\xaf\
+i\xbd~H\xf3\xe8\x96l\xa5\x07\xf3.\xb3\x8a;\x03\
+\x12C\xe9!#\x83\xd9}\xcf\xac\x90\x10zB\xca\x02\
+\xa3\x07\x94 \xfbr\x81\xba\xba\xc3%\xc7\x16\x96y\xd7\
+\x01\xb7^\xfd\xab\xcb\xf3\xcd\x09\x87g\xaauL\x01\x04\
+\xd7\x83\x1c\xde`\xb1\xc1\xa2\x83Es%\xbf\x1f_Z\
+\xaf\x9c\xc4\x0c\xae\x9e\x8f\x9bed^\xcf^\xaeu\xd5\
+T\xd6Mg\xddecW1K\xd7\xf3\xdb\xbe\xb7\xbe\
+}\xde\xac\xaa\x0ci\x9f\x03\x02OO\xb8s\x12\xa0\x13\
+\xfe\x15\xb3\xd2\x0a\xe4\x0e\xae\xd4\x11\xf8\xbcn5\xb3\x92\
+X\xf4\xdeF\xed\xab\xed2m\x96Qd\xbf\xcf\xeb\xc1\
+\x0d\x0a\xe8\xcf-\x0e:\x95V\xc8\xc9\x1c\xf9r\x89Y\
+A\xb40\xaf\xba\xb5$g\xb8e/O\xe9-\x1a\xeb\
+\x99U\x95u\x91/z\xc2Z\x95p'\xa9\xa3\xd7\x9b\
+y-V\xeen6\xb3t\xfc\xefd\xf6\xbc\x1e\x96\xec\
+\x19rnB\x864\xd7*\xf1(\x12\x5cz|\x91A\
+\x1b\xcej\x96\x8e\xfb\x8b3d\x9dn\xed.\xcd\xd3\xe1\
+\xcf\xcc\xd2\xf3_\xd2,'T\xf2\xb8\x85\x15\x1fR\xb5\
+\x1c\xa0\xa6}h\xb8\x99Y:~\xd9L\xfa\xee+\xea\
+<Lv\xf4\x95d\xaf\x169\xc5nS\xb3\xf4\xf7/\
+\x9a\x15\x04b\xfa\xfed\x15BL\xfbT\xb7\x9cY\xa5\
+\x02\xc4x\xa2W{\xd5d\xab\x14VzOT\xbf\x92\
+i\x8f\xfb\xc4\xd6u\xd5:n\xbd\xd0\xcbW\xfb\x19\xf3\
+\x98\xfd\x95\xc0\x9a\xd6O\xb5\xd6\xd0\x83\xefl\xee\xc8\x9b\
+\x8a\x5c\x96\x96\xa5\xe6\xb7fUo\xb71\xb9\xecR\xed\
+\xfbdH\xd8\x87o\xcd\xcd7\x8e\xac\xf0D\x898u\
+\x1c\xe9&\x88\xba\xf7\xda\xb3\xee\xb3\x0f\xa0.@ \x08\
+\xe9-\xf2\x99 \x0eH4h?vRC\x90\x7f\xf8\
+\x97\xc8\xb6\x8as\xc2+\xe4Gd\xeb\x13\x93k\xe7\xc4\
+y\xbf?\xedfVZ\xb3\x9a5\xcc\xca\xfa\x95\x0bw\
+o\xd3\xf8\xfb\x99\xd8\xf3\x0fJ\x7f_\xd8,\xfd\xfe\xb7\
+=\xc2\xc6\x91.J\x04v\xab\xf6\x9c\x18\x1eX\xdd\xad\
+\x80X\xf7\xb3\xb9\xa7'\xe7t\xd5\x01\xe4\xed\xe0P@\
+M\x85\x96^\x90K\x90\x13\x0b\x89\xe5\x88*\xcd\x17\xff\
+\xbd\x10\x1f\xb1\xd2\xcd\xbc\xf6\x84%\x5cC\x90\xe2\x12\x07\
+\xd0\xfaDE\x9cx\x00\x8e\x22T\x22\x18\x0f\x14\x22\x03\
+\xeb\xbe'\xce\xe0tXR~\xa1\xe6\x85\xb7|\xe0\xff\
+h_\x1d-jVZ\xd0\xfc\x9f\x02v\xe7\xcc\x803\
+@\x08,\xf7OA\x82B\xe6K<\x82\xbfHbI\
+\x88\x07g\xeb'Q\x052N\xfe\xacs/\xfc2\x9b\
+\xfb\x9f9\x8e\xfbw\xd5\x0aH\xbcRZ\x9a\xfb\x7f\x8c\
+O\xfd\xde\xa1\xefp\x1fD\xbf6\x22\x85\x09\xb8\xb5\xee\
+\xf8\xfd$\xc0\x8d*\x5c\xc4C\xacK\xa3IZ\xab_\
+z\x03.5\xc8\xdb\xa7UqXl! .(\x85\
+\xd4\xfe\xfc'K\x00p$\xf1\xf1d(\x00\x93H\x99\
+\x8c\x1b`fr\xf8\x89\x88\x86\xc9\x02\xfe\xfft\x8c\x08\
+\x01]\xe7x\x1e\xf6\x0b\xab\xa2\xfb\xee\xca\x11\xe5\x0b \
+\x0db\xc0[\x1a`\x16\xbd~\xc5\x8a\xac\xeb(\xb3\xe2\
+\xb0\xb4K\x9b\x15\x87\xc3{\xd7N\xcbV\x1c# \xf8\
+\x17&\xbb\xa8|Os\xb2YU\xd1$\xb3)]p\
+'\x1f\xa2\xd2\xa8\x00\xa7Y\xde\xac8\xe8^\xd9\xbe\xb2\
+\xcf\xe4%w\xb9\xafl(3\x93\xdc\xde\x1e:\xcd\xf7\
+\x90\x09\x12\x97\x00=r\xa3\xf7j\x81\xe5~\xa8\xc2\xd2\
+\xaclV=\xa8\x99+\xd6=\xfb\xb0\x16\x12O \x00\
+\xb9W\x05\xd1Y\xc7\x81B\xf3\x8f\x81\xfd\xa6@JG\
+B\x86\x85\x92\x00x%\x87\x90\x93)\xec\x03\x7f\xb8\x11\
+T\x01K\x8bh\xbe_\x1e\x00\xb1\xb0\x92\xd1\xe5<t\
+_\xdd\x11\xa2G\x8a\xc0\x97\x04C\x90\xb3sU\x83\x19\
+\xaeb\xf0\xc6\xba\x97\xfc\x9d\x05\x8d\x0c\xe1\xb8\x021\x06\
+>\x9c\x14\x90_!\x0f\xc7De\x03\x88,\xe7\xdc/\
+\xc6\x01\xe7\xcb\x82\xbf\x84\xae\xab\xc8(N$Ed\xe2\
+\x84\x05\xc4\x03y\xc6\xdfd\x997\xae\x8f\xf1\xc0\x02A\
+e\x99\x84\x04\xbfg!\x88\xf2{d\x1e\x81\xdc\x07\xae\
+\x09\x1cs\x7f?\xe7\x03\x04\x92@\x9bJ\xa4\xc8z\x9c\
+\x14P\xcf\x17\x88\xb1\xcbO\xa9\x22\x1c\xd9v\xdd\xc1\x82\
+\x9c\x10\x16^\x16rz\x94#g\x07\x09&\xfe~\xb1\
+#mr\xef\xba/\xdc\xaa y+\x8e\x1c\xa6\xee\x0c\
+\xb3\x02}n\xcf6\xabte5\x1eX?\x9a\xa7\xcc\
+\xaa\xe7\x07\x09\x1c\xb2\x84l|\xe8\xdc\x03\xf5c\x5c1\
+\xce\xa9\xbc\x08*\xec\x95\x1c\x91\x13y@\x89\xa3J\x22\
+Rl\xef.W\x04\xd4\x92\x0d\x81\xf1\xce\xf8\xa0\x05\x80\
+\xe7/2\xae\xe4h%\xab\xd8\xfcia\xa0\xe5\x01N\
+\x13Z\x0a\x80d\xd2\x1aA\x85N2xT\x8e\x9d\xf5\
+\x1e]l\x02|\xf5\x10z\xa5F\x01]{C{c\
+{c\xd1Go\x16J\xef\xb7\x9e\xd05\xdb\xffj\xd7\
+,\xfa\xc9\xed^fUE\x04\x87\x04\x87X\xeb\x8b\x07\
+\xa8b\xa7&\x10\xf6\x1ex\x93\xef\xfbMIL9\x0b\
+<rQ 1T\xb1\xf5\xd6\x04\x12a\xd7\xa8\x95\xe2\
+\xc3\xa3\x8f\x8c>\xaa\x0a\x8c\x05\x88\xe7\x98\xa5\xd7\xff\xc3\
+\xac8x\x0e\xd8\x11\x82\x84J'\x95\xfb\xe6x\xb3J\
+\xbe\x897\xd0B$\x87\x92\xcfu\xa4\x05\x9c4\xda?\
+\x86\xa7\x9b\x95J\xdc\xe0gf\x15\xa9\xa01\x1b\x1c\x9c\
+\x9e\xfbuf\xe5{\x9b\x97\xfbD\xf4h\xff^\xfe\x8b\
+\xc0\x8d\x84\x15\xb2\x88\x8cKWi`\xbd\xd3\xb8D\x7f\
+\x1cr3X\xf4\xd3\xb7\x1c\xd7\x1cW!\x1d sS\
+\xc5j\xf8\xb8Y\xf1\x13\x9c\x15\x1c\x99G\xc6\xfd\xa9\xd9\
+\x5c\x9e\xcf\xe5\x13!\x1b\x14\x94\x9d\x84\x81\xab.P\x09\
+$\xf1e$\xc5\x1b\x97\x16E\xaf\xa0\xcdg\x96\xaec\
+)\xb3\x0a\x91\xf6\xed\x1e\x12>Z\xd3\xb0\x85U\xc5\x18\
+\x08\xbd\xb81\xa8\xb0{\xa5_\xd0| \xbb\x99\xa4\xf1\
+\xed\x05\x19\x90V\x93^\xd6\x14$#P\x7f\xe3\x06?\
+\xb2\x92\xb3D\xa5\x83D\x9d\xb8B(\x8c\x0c:\xb3\x8a\
+\x04\x0e(<\x888\xf9%\xdd\xd3\xdd3\xdd3\xe2L\
+\xd8+\x17D\xae\xc9\xc8\xa2\xc5R\xc0\xb0X\xf2K\xf3\
+\xbf\xf4\xb9[\xb7[\xb5[g\xb2\xb8>\xc00\xe4^\
+r\xf4\xbb\x8b\x93]&r\xb8\xabJ\x00\x9c!\xd1\x9b\
+\x97\xfd'\x93\xaa~\xa1R\x83\x00Q\xa1\x0a5\x09\xaf\
+n\x1b\xb3t\xfc\xb8Y\x15hni\x96~?\xddL\
+\xdc\x0d\xe7\x16\x84\x13\x09\x93\xdc\xaa\xf579\xd4\xaf\xe9\
+>\xdd\xa9\x00\xe5\xc6\xa2V\x91[A\xd2\xfa\xd0\xbd=\
+YZw\x07\xc7&36\xf5\xef&;\xa3\x0aP\xf4\
+~\x97g\xa4\x15\x02R4\xf9\xa1\x99\xc4\xf4|\x05\x0c\
+\xb3\xa9g\xfe/\x15\x12\xce\xc2\x9f+\xb4^\xaeW\x12\
+\x91\x9eH&@\xa2\xd0pd\xb6\x82,\xa1\xf5B=\
+\xfe\x907z\x00$\xb2:\xe7\x8cP\xc2\xb1{\xd6\xac\
+\x04:^a$\x00F\xce\x1a\xb2lH!\x975\xcb\
+\x89\x9edU\xe0\x072\xc8\xb8\x0f\xf6.,\xf6\x8e\xd4\
+\x93\xaa\x80C\xd4\x8d\xa5\xfe\x1b\xfa\xfc\x7f\x96\x046\xeb\
+m\xde\x85_\xcfrz\xbbZ\xebE\xb3\xb7YQE\
+\xf1\xc4\xf8\xce=\xd7\x81'\xbe5.\xbc\xe0\x81\xdf\xaf\
+J\xb9\xfb\x0f\x90&\x0a\x89\xe3\xea9\xefW\xc0|z\
+sZsZ\xd5zK\xeb\xdf\xea}\xe2\x22\xcd\xe6^\
+\x86\x96\xc4\x13~\x1f\xfeE\x84\xb6\xab\xe0\xe0\x08\x02\x0a\
+\x88\x22\xe7\xf5\xca9\xfe!~\x08\x89?X\xfa\xd9\xdf\
+\xf17)\x94A\xc2\xc7\xfbb\xab(\x09\x1cZ\xd0\xa4\
+\x12\x80:\xceh\x19\xb3j\xffF}\x86\x96\x19Zx\
+i}\x10\xe2\xd9\xfd\x05\xfc\x07\xce\x87\x16MH\xc7\xc5\
+\xa1\xe1\xeb\x16\x08f\x0ae\xfc\xc3\x7f\xa4\xe0A\xc1+\
+B\xfa\xf1\x83_4\xab\xee3\x05\x94\xa8\x92\x15\xa0\xfa\
+\x90\xa0;\xc2\x82\x8ax,\xb8q]\x059\xdd\x7fN\
+\xe4\xceb\x1f\xfeO\x81?H\x09C\xbc=\x99\x13#\
+=\xd2\xf5\x01q \x10\xe0\xc7\x00\xbcp\xb3\xf5\xe7\x81\
+\x1f3\x09\xe2\x81\x84\xb8\xdf\xc7H:\x18\xfd\xfd\xd8\xc2\
+\x10Z\x95\x91\xab\xf5\xfb\x11\x03\xfc\x18WEY\xc0x\
+T\x5c2\xee\x01\xd2[3\xcfzM\x8a\xd6\x0f$\x02\
+\x7f\x06>?\xe3\xc0Q\xe1#3\x06\xe4\x176r\xf4\
+\x98\x8f\xeb\x1d\x0b\x0f\xc4\xb8\xc1L\x1c~\xc6\x91%\xe0\
+\xe4\xc1\x92\xb1\xd2\xeb\x9bk\xcd\xb2c\xd1\xf7\xf4J6\
+\xafy\xa6y\xb6y6C~\xfa^=2E|\xce\
+\xa7\xfa\x05\xb1\xb9\xb8\x87\x9e\xd9\xab\xf3\xeb\x91\xf9P\x85\
+\x0f}g\xd7K~O\x0f\x1d\xa4\x97\xcf3\x9a\xc7\x98\
+U\xbd\xd1\x0a\xa8\x1d:\xcf\x04\xe3\x01\xffQ\x13\x85\x01\
+\x81\x83\x1c'\xe2l\x81\x95\x9f\x81A\xe0@@\xc8\x82\
+GF\xe9i9\xbe\x8fi\xa0\xcd\xeb\xcf\xad\xcfT\xe2\
+\xc8\xbeO\x10y\x12\x1f\x90B\xa9\x12\xe3\x89\x0d*Q\
+<\x0fZ\x01\xd8\xe0\x8c\x9c\xe9\x9f\x99\x04\xaa\xd7\xd1f\
+ad\xa0r\xdf\x09\xa8\xa3,\x05\x0b\x09\x01\x00H\x06\
+\xc9\x1c\xa5E\xa4\x7f?\x90\xc2A`\xd5\x9fK\x19@\
+\x12 \x8c_~\xe6u\x9cG\x84\xf8p\x8c\x19\xc5N\
+\xe7\xc7\xfd\xa6\xe2\xcf\x82C\xe2\x84\x05\x83\x05!\xf6\xf4\
+\x10\xe0\xd3S\x05\x22\x81\xcf\x05z\xc5}e\x01c\xa1\
+ \x13,6^H\xe6\xfc\xfeQ\xf1\xa4\xe7\x94\x85\x9d\
+\xfb\xa0\x1ez\xcf<\xab\x02C\xe2b\xf41\xb3J\xbe\
+\x08v[\x12\x0d\x90cR\xf9f\xc1\xa1\x97N\xb2u\
+\xf4\xb0\xc2\x8e\x0f\x89\x9b\x07\xb2\x0a\x00]\x15\x84\xcaN\
+\xe4\xb2\xe0\x1f\xcf!pT\x8c\x9d\x90m\xac\xfb\x81Y\
+\x05\xa5T\xc5\x95\x00\xbd\xfd\x93Ya\x09\x06Z\xed\xb2\
+6\x0a$\x9c\x8b\x84\xe7I\xe2\x83J\x80\x02\x99\xecP\
+_\x5cA\xfe\x81\x5c\xb3\xd1Q\x81V \x83#\xec\x9f\
+\xcbsg\x1e0\xef\x91\xdd\x93>4\x9c\x04N\xce\xa6\
+J\x13\x8e\x14H\xa8\xe6R\xb3\xf4\xfe\x8fg\xf3\x1e\xff\
+\x14\x0e$K\xc7\x97\xcd\x0a\x09 \xeb\x91C\xeb\x91\xdf\
+\x13i\x1d$\x93\x04\x8c\xe9\xb7\x19\x090x\x9fY\xe6\
+\x98\xc8\x81y{\x88\x99H\xfb~P\x90=\xed\x87\xcc\
+\xaa\xf1)\xddk\x9eWN\xf0^X%\xf4\xd4\xba\xe0\
+\x95}*\xfdr\xb0\xbd\xd5$\xc8Of\xd5\x87\x03+\
+\xfdlH\x0a\xa9\xc4\x90p\x92\x83\x8fN\xba\xaf;o\
+\xc9\xa9P\x1fo\xa8/8\xfb7\x0e\xbbt\xa7\xdbc\
+\xcd\xaa\xc4\x08\xf2y `\x0e\xecI\xb02\xb0\xf9\xa7\
+}\x02\xc3\x12\x89\x8c\x7f\xd65\x87T\x1b+\xf7\xc7D\
+\xda\xfa\x0f\x91\xa4]\xadD\xd8\xff\x96\xf5\x17\xce\x08\x90\
+\x159\x80H\xfb\xc3`\x8dd\xef\xc9\xb2X\x19\x82\xcf\
+\xba\x82\xaa\xc4\xe8\xcc\xd1\x19\xa33re2'\xac\x1c\
+\x19\x22\xce\x07*\xdd\xdd\x01fe\xde\xc3\xe1\xd0\xfc\xd1\
+\xac$\x9cs\xef}\x0a8\x87\xcb\x9bU\x01>d\x9d\
+j\xdd\xe2}Y\x0e1\xdd\xd7v=\xb3\xf4\xfe\xad\xfa\
+J\xfbp\x0e\xb3\xd2\xa2\xc5\xefq`\x9b{\xcc\xaa\x0a\
+\xadz\x87s\x22b\xaf\xd2\x92\xd4\xd9\xbfQ\xe5@\x09\
+\xb9\x03\xb4\xbf{\x9bY\xbaO\x17\xf7\xad\x03T\x9e\x5c\
+g\x1e=wz\xa1\xef\xe9{\xee\xd1\x1d\x1f\xdd%\x92\
+:\x02\x81}TH\xa0\x05F\xb2\xc1\xb0\xa1\xe7:\xec\
+y\x22\xf1\xdb\xb0pD\xa4\xc0|k\x0b\xcc\xbd\xb5\xe8\
+I\xb3\xa2F\xe1j&\x04\x92\x0a\x84\xda\xc3\xcd\x0a\xc7\
+A\xbb\xa0Y\xba\x7f/\x0d_\x1c\xbeXz\xde\xbb\xf3\
+\x93\xfd8\xab/]i\x81\xbe\xb9\xb9\x99\x04Q\x89\x10\
+\xc39\x18\x89`wJ\xb2\x93\x85\x08xSi\xc5\xc8\
+\xe4\xccGV\xea*B\x12\xb5\xeb\x9b\x95@;\x9d\xc7\
+\x1d\xa6\xc6\x012\x12yH\x10Z\xb9g~\xbc\xb0\xe3\
+S\xa0i\xcf5+\x81O\xf7\xddd\xa7\x17\xce(G\
+|(\x90\x19\xde\x95\xecw\x85\x0b\xc0\x91\x19jM\xf1\
+u\xef\x95d/\x17\xe4'd\x8f\xc6\xa8\xd0\xdd\x5c\x12\
+ \xd9\x0b\xbd\xbb\x9c\xdf\xd81\xc9\x8e-\x15l\x12\xd2\
+\x99\x0c\xf6V\xf9?\xabW~\xa8\x12\xc5\xae\x03o\x80\
+\xec\xefW\x81\x1d\xc8\x0f\x12K\x227\xb4\xd9g\xf3/\
+\xabj\x1d\xafV\x83\xa3+\xddv*\xd4\x0a\x80F\x9f\
+\x1a\xed\x99Y\xfc\x85\xc0\xf1\xc48\x10t\xfcR\x02}\
+*\xb0$\xb6@\xd0\xa8\x05$\x87\x8d\xebW\xe4o\x86\
+\xcb\xbb\xb5\x9a\xaf \xe2\x08\xf0IT\xdddV=g\
+\xd3\xf4\xba\xa2\xf2cLf\xf1\xc7\x15\x97\x87T\x0d\xdc\
+?\x86\x04qa\xb3\x8a\x1b\x84q\xc1~\x89\x0e\xbd\xfc\
+wo]\x11\xb2\xa9\xd9\xacOX\x8f\x0e\xe8[\x15\x9a\
+\xaf\xf7\xfb\xa1\xfb1\xa7\x08\x09 n\x14\x0f\x80!\xc3\
+\xa3R\x0e\x195-;j=\xf4\x04\x0d\x10{\xfc\x0b\
+q<8r\x0b\x7f\x83\x00\x1e\xae\x06\xfc\xee\xd02\x9b\
+\xc3\xbe'\xb4\xafL\xc9\x88\x80~\xdd\xbfT\x95o^\
+\x87\xbf\x80\xca\x12H\x16\xb5h\x92\x90p\xd5\x15\xb8\x16\
+\xf0\xab\xb9>8\x0c\xd4\x0a\xe8-\x5c\xf8\x83\xf8\x971\
+\x00'\xb0\x06\xa2.\xf2p\x1f\xf7\x04\xfc\xf8\xc5\x04\xfc\
+\xf8\xb1\xf8\xa5\xa8\xa2\xa9un\xf4\x07\xb3\xff\x0f\x19w\
+`\xa9\x87l\x97u\xd9\xef\x0bqN \xeb\xf3\xf3\x85\
+\xb4\x0f\x84\x02\xe7\xc7uE\xb6\xfb\xd8k\x1f\xae\xdf\xc9\
+\xc7\xa9\xd4s\xfd\xba^G>\xc0\x19\x12?\x1f\xff\x95\
+\x16d!\x85<\x9e\x8b\xdc\x01\xc4} J(TD\
+\xce\x03\x10}R\x19\x99\x09q\x119\xc6\x22\xd4?\xfe\
+\xe3uA=a<\x9f~\x9d\x81`\xe3\xa3\x22\xcaD\
+`\xa2(\xb0r\x96m\xf4\xe2\xf9\x82pc\x9c\x0d^\
+\xba\xcb3\x91\x8d\xd1\xfb\x8b\xa3G\xa0G\xcf=\x0b\x1f\
+\x15~d\xbf\xc4\xfe\xcc\xc56\xf3\x8b5\x96\xca5\x01\
+ \x81+\x0e8\x01\x10\xbd\xbe \x05`\xff\xa67<\
+\x04\xbc\x9e!\x87\xdd\x19h\xe6o\xd4\xfb\x182<\xde\
+k.\x99E\x9f\x98o\xd3\xf5*3\xeb\xf7\x05h\x1c\
+\x81\x0f\xa4\x14\x0fkC@\x16L\xa4G>\x11U\xe9\
+wG\x13\xd23*Np\x0dL\x9f\xc8\xceI%\xc6\
+\xcf\x8f\x05\x09\xb2\x1b\x16,2z<W\x16@&\x8a\
+2\x7fl\x00\xde\x1b\xaf\x05xl\xf3l%\x81\xc4?\
+&.l\xa4\xf4^\x92\x11\xc6\xe1\xa2B\x0d\xd2\x01\xc4\
+\x06\x99\xd2w\xeb\xbc\x17W\x0b\x03\xd0{\x02O\x90&\
+\x8c7\x8do2\xf2\x0e\x09c\xa1\x82\x13B\x10<g\
+\xff\x7f\xbb\x9e\x13\x10\x1e\x12'\x5c\x07\xcf\x8d\x89\xcb\xc6\
+\x0a\xb2\x83\xfb\x08i\x1c\x0e\x16\x0e\x06\x10}\x12* \
+Y\xd8\xe0\x90\xadT\xe6\xddYg\xa9\x88\xf0\xdc\xe9i\
+'\x90E\xb6\x8f\xf9\x1b\xb8\x01\xfc\xbe\x8au\x9f\x8cl\
+\xb3\xbdY5\x0f\xd43\xe7\x08\x1c t\x82.\xfa\xfb\
+!\xf1\x13\x84\xd4{\xf9\x08\xa8I4@\x02\xc8\x82\xc7\
+s\x8b*\x03<\xb7\xf0|\x1cB'\xf9\xa0\xee\xda\xee\
+\x1a\xeb%\x06\x82IE?\x93\xce\xcd^\x02]\xa0\xdc\
+\x9e\xf0Q\x80\xea\x08&Z\x11\xe4`xo'\xdc\x05\
+l\x00\x22U\xf2\xca\xc4\xc5f\x15\x89\xaa\x02{\xafh\
+#\x93Ho\xe5\x01}\x05\xd7\xe7\x13H\x04\x1cJ\xf5\
+\xb8r= w\xda\xef\x98\xa5\xe3\xaf\xcd\xd2q\xbaY\
+:\xeeg\x96\x86\xd9\x8ef%\xa0vvv\xc9\xf8!\
+\xd7\xe4\xc8\x08A\x04\xf9}{\xaaY:\xce\xd5\xce\xdd\
+\xce\x9d\xd7\xd5d\x15D\x11\x95\x94\xa72\xbbI\x81\xea\
+\x22S\xa3\xd6\x11\xdf\xa8\x99?RU \x81\x9ae\x1f\
+\xafSE|\xb3*\xd1\xc8\xfe\x00b\x00r&\x12p\
+\x04\x86 <N5\xab\xa0\x82\x90\xde\xc1.\xcc\xfb\xac\
+\xfe\xf3\xfd\xbc\xaf-i\xfbZ\xbbN\xbbv\xee\xd1\xbf\
+?\xe7\xfe\x0bBf\xdflE\x96l7\xb3t\xfc\xbd\
+Y\xe5\x08\xf6\x9bj\xdf\xea\xb0]q\x14s\xa7|\xdb\
+s\xd7X%\x93\xca}\x86P\xaf+\xf2\xb9t\xfe\xed\
+\xbd\xc9\xd2\xbci\xdfg\xa6\xc0\xf0\xf1\x0a\x12\x0cy\xdb\
+\xcf\x93]\x92\xcf7\x9dq\x91C#\x80\x1b\xed\xda\x8f\
+\x17Z2\xda\x83\xdb/\xb5_\xaa\xb8\x06\xd4\xbb\xef\x90\
+X\xc8j\xe1J\x11r\x06\x19\xce\xe6\xf0\xbe5\xa8\xfb\
+@/\x1b\xd7\x0d-\xe2.\x89&g7\x87$L\x09\
+\xf4v[\xb3\xf4\xf3uf\x15BB\x88\x1a\x87\x84+\
+\x80\xf4V\x0fz\xc6\xe5\xd8\xb6;\x9b\x95\x04\x0b\xd0\xdf\
+\xee#f\x15;\xb7U\x1c\x97\xac\x10HjEp\xce\
+\x86\xff\xd5|\x5c\xaa\xdf/P\xdf\xf0J\xcac\xe2t\
+\xd9r\xb4\xc5h\x8b*\xc1'n\x03\xc8:\x1dZM\
+\xe0\xc78C^K-&\x90]z\xcb\xdb\xb4d\xd6\
+\x22\xb2\x8dY\xd1go\x8e4K\xbf\x9f\xbb\x9f_\xed\
+|f\xe9x\x86Y5\xae\xd7\x97\x0a\xc6\xd7\xcc\xd2\xb1\
+m\x07\xed\xa0\xc8\x93\xe5\x8a\xf9\xd9\xc9\x9f\xbb|xy\
+w\x85\x02\xe9\x872\xf2aM;\xdfn\xbbd\xdb\x97\
+DV\xb7[\xb2\xdd\x0b\xa7R\xf7\xeed\xef\xca\x9c\x01\
+\xc9\xe4?\xa4u\xbb;\xd9\xac\xe8\xd6wS\xcc\x0a\x97\
+\x84\xb3\xd8\xabW\xdf\x91cw\xf4\xfeD\xb7\xa4\x10\x19\
+8\xacBt\xcc\xf8\xa6Y\xba\x8e\x9b\xcc\x0a\x14\x9cq\
+G\xa2\xa3\xfb\xaaY:\xbe7\x99%\x16\xdf\x9cl\x8e\
+\xb2.\xe1\xf87\x7f2\xabH`\xad\xb5\xe6\xe6*q\
+\x0a\xd9\x9eX\xec]\xcdJ~\xad\xcb\xd4\x1a9\xec\xa0\
+\xf2[\x94Xp\xd25\x1b\x05\x86\xfc\xd85\x99\xcd\xb3\
+W\x93\xbdV\xb5\xa2\xb2o+\x01\xee\x10w\x90a$\
+\x0a`m\xa7\x12\x8c\xa3~k\x1f\xa0\x8f6\xef\x91\x19\
+ \xcb<\x80\xd0z\xe7\xfb\x0fPn\xa0\xd5\xaaP;\
+'\x89A\xc6/\xae\x02\x5c\xf6m\x0aT \xc8\x14h\
+\xa2v\xc2\xbc\xa2\xe7\xdc\x98arB\xcb\xf6\x855r\
+b\xf1{\xd6\xd2\xe7\xfe\x11\x15s\x121\xec\x9f\xf2;\
+\x90\x05w\xbf\x98\x02\x1e\x01\x0fd\xdb\xf8\xd5\xac\xdb\x92\
+\xa9t\xbf\xf7l\xb32\xcf\xbcU\x87\xf9\xa8\x02\x04\x9c\
+\x0f\xae2\xa1J\xbb\xcb\xff\x11\x9f\xd0\x8a\xa8\xc4\x89\xfb\
+C\x04V{(q\x8d_\xfa\x90H\xee\x08pI<\
+\x169\xed\xde\xaf}!\xb3_\xf5\x81\xde3\x99\x93\xa0\
+\x97\x81\xe4\xbeF\x92_z\xfb)\x84\xe0OP@E\
+\xa6\x97x\x07\xc4b\x907w\x0e\x03\x12\x03\xf8\x13p\
+8\x11\xb8\x12\xe0\x12\xe8G\x88;\xea\x06\x5c7\xe7\x1b\
+\xa1\xea\x04\xb2p!\x11w\x80\x00\xe0\xfeDh\x7f\xe8\
+mw\xe4\x00\xf7\x01\xff\x8f\xc0\x96D\xc0\xcb\x81\xcb\x8c\
+\xcf\x8d\xe4\x82\x04\xd0\x04\xe4\x91\xab`Jh9&1\
+@@\xcc|\xe4\xf5\x5c\x7f$9\xe7z\x22i\x1f?\
+s>\xdco\xc6?\xf7-\xaa'D\x12A\xe2f\xee\
+\x0f\xe79\x19'@\x94W\x9f\xec8\x89|\xe2\xb8\x9f\
+\x10\x81\x0d_\xc8\xdb\x18\xe8l\xd8\xc66\xbe\x84\x16\xb2\
+wU\x81\x10\x8ez\xec\xd1\xc0\xa1\xe3s\x80\xa6\x00\xe1\
+\x00i@\x80\x22r3_(\x158\xd0\xab\xea\x991\
+nh\xd1\x99\xec?\x9f\xc0\x9f\xc4\x02\x81-\x88\x05X\
+\xe4a\xe1\xa4B\xc7\xc0c\x80\xf0~\xce\x8f\x0c\x1c$\
+<\xfb\x00\xedV\xef*\xf7\x8d\xc0\x19n\x04A\x8f\x1c\
+1 \xfdS\xd7/\x1d:\xdbk\x7f\xbf\x80\x8c0\xa0\
+\xfe*\x07\xf6\xad\xca\x14^ y.\xa0\xe7_\xd5B\
+\xfe>A\xe2y\x8eT\x1a\x7f\xef\x0b\x10\x99\xad~@\
+\xd2k\xa3LqlM\x80\x15\xdb\xcf\x83\xde\xa3\x98Q\
+\xe2\xf5\x826\xbbn\xf8\xa7\x9a=\x9a=\xaa@=\xb2\
+\xee\xf33\x8e>\xe3\x83\x04\x0e\xe3\x83\x05\x85\x89\x19\x11\
+)\xdc7d;\xd0AUB\xc2\x11\x19\xeay\xf3\x05\
+\x9f\x0a7\xcf\x97\x00\x93\x80\x81\x85P\x89\x93\xe4F\xf5\
+\x99gAx\x9b\xafI\x96\xf2\x96\x9el\x92\x9e4\x1f\
+G@\xf3\xaf\xefIp\x9c\x94\x90\x85\x8e\xf1\x05\x89\x0c\
+\xad\x16\xe8\xe0\x929ga\xd0\xf3$\xf3\x0etw&\
+\xce\x0b*\xf3TV\xe1^ \xa0f\xfe\xe1\xd0\x93\xa0\
+\x81$\x86\x85\x97\xfb\xcf\xe7\xc3\x0e\xbf\xa2\x90\x1e\xcc+\
+H\xfb\x14h{\xcf\x98\x1c18\x08`\xf3E\x8d\xc0\
+e\xef\xb4\xc1y@\x02\xd9\x1a\x10M\xb5\xa6\xf8\xf9\xf3\
+\xbc\x81\xfa\x93@\xd3\xf5t\xff\xec\x1e\xef,\x81rc\
+sCsc\x05!\xe7\xfeC\x8aC\xc2\x06rG\x1c\
+\x7f\xc8\xffx\xfe\x8c\xffc\xb3\xf9\xf9y\xeb\x13\x95\x10\
+\xe9K;\xa2\x80\xf9\xc7\xf7P\xe9\xc31\xc2\xe1\x91\xfc\
+\x17\xdf\xe3\x15P\xad\x0b\xb9\xe2\x95\x9eG;\xabY\x0a\
+\xf0\xbf78s\xf0\xbd\x1c\x10f\x92\xb9\xf6q\xb3t\
+<\xde\xac\x90\xbb5\x7f3\xabz\xfe\x81\xa2\xf3\xfc@\
+v\xa0J@\x80.Vbt\xa1\xe9\xd5\xe6}\xed\x96\
+fy\xfe\xe6DH\x0el\xd7V\xcf\xe4.3;\x16\
+N\xba\x05R\x81V\x10\xd6ok\x08;\xbd\x04\xda>\
+\xae`Y\xd7\xbe\x92\xd9\xfe\xcf\xd7z\xb3pE\xe2D\
+\xc5_\xe3\xdcI\xde\x90\xc7\x13Y\x1a\xa4r\xe9\xee\xde\
+\x9e\xef/\x89\x08H4\x03Y'\xbd\xa9@\xcdA\x06\
+\xb8\x03gnV\x0a@Ld\xcdX\xdcq,\xe9\xf1\
+\xf7\x0a/\xfb\x8c5\xb0\x1c]\x12t\x99\xbc\xd13\x09\
+\x81\x00\x00 \x00IDAT\xd0\xc8\x13o7\xab\xf6\
+5\xd6#\xe3\x0c\xffz\x95p\xb2t\xef\xe3%\xc1\xd2\
+=\x99\xec\x89j|h\x1c\x80X\xf1\x16\x15*\xeej\
+e\xf0J\x85\xa0\xd3\x9e\x08W \x97f\xcf\x13\xf6\xb9\
+\xdd\xb6\x16B\xe6\xfd\xe8\x11\xdb\x8f\x9a\xaf\xa7\xc0\xb5\x97\
+1\xeb\xa1\x92\xacG\x92!# i\xdfmV\x90>\
+\xdd\xcefU\xe2\x84\x04\xbc\x10v\xcd\xbf\xcc\xd2\xfb>\
+n\x96\x03\x8f_fR\xcac\x9b\xe3l\x9c\xa0sO\
+\x82\xc8e\xb6t\xbf\x86\xfb$\xfb\xac\x12b7\x89|\
+\xf2\xaar>\xdd\x0f\xcdJ`\xe6\x89C!\xf7\x5c\xd7\
+\x9d\xd6\x04\x15,F\x87\x99U\xf3\xc1\xd6\xaf\x9d\xb5\xee\
+~\xb0\x04\xdaN\xc6i\x01\xf8\x99\x157\x848\x142\
+\xf7\xc1\x12U\xcf)\x90\x7f\xad\xc3Y\x1e\xf1\x8b\x05A\
+\xd3\xe6\x7fi\x9e\xdf<\xb8epKA\x8c\x0c\xdem\
+\x96\x03\xcd\xac^0\xd86\xd9v\x0a\x14\x8eL\xf7\xe1\
++\xc9\xd2\xef\x87\x03\xb3\xf4\xbe\xf5\xfa\x04N\x96\xd9\xdb\
+\xa4R)Q\x85\x96\xd6\x02*\xf2\xdd\xb7\xcc\xd2\xf1\x22\
+\xb3\xa2b\xd2}\xc1,\xbdn\x0b%J\xce\xebI$\
+]\x7f\xfe\xe3f\xe5\xb9\xe4\x9e\xffUK\xe5\x9b\x96\x96\
+\xd1\x82f\x15\xf4W\x08\xa8\xe1\xaf\xcc\x0aWHV]\
+H\xe3wxJ\xb2t^\x83\xb7$\x9b\xbfBV\x19\
+i\x9c%\xecn0\xab\xb83D\xde\xd9\xbe\xcd,}\
+\xceN\xc9v\xceH\x99d\xe98\x9bY\xc5U\xa3V\
+T\x02D\xe6-\x05\x10\x0a\x0f\x90\x03\xa2\xf6\xe0\x15x\
+\x12@\x9a7\xbe\x8f\xc1=A\xc5Y\x08;*y\xa8\
+\xba8\x02\xea\xd9\xcc6U8Rh5\x03b\x8f\x9f\
+\xa5\x96S\xefe\x17\xe7\x8d\x93a\xb2~IU\x81\x96\
+4G\xfe\xa1^C@Hk\xa0\x10\x14\xf8)\xee\x1f\
+Qa~*\xad\xd2OUP|\x0a?\xf8\x83\xf8\xfb\
+\xab\xaa`\x83_\xaay\xc3z\xe6\x1c]\xec{T\xe6\
+\xf1\x93I,\xc2\x9d@\xab\x81d\x01=qIb\x99\
+\xc4\x8a\xc6\x9b\x07\xf4J\xe8\x8f\x0e6\xab \xff\x04L\
+VV\x5c\xb9*\xc8Pp<e\xec;\x99\x93\xe6G\
+i\x9d\xffQ\xe5\x0fAJ\xc8~\x84\xff\xb6\x8c\xe2\x86\
+\xb7\xabE\x10\x7f\x96\x80\x0f\xbf\x96\xf3\xa6E\x13\xff\x80\
+\x82\x0d\x9c3$\x92t\xde<OWS!\xd1M\x9c\
+\xc5x!AN\xa2\x81}\x95V$\x91y{\xc5\x1c\
+\xb9?\xfcJ\xfc^\x02Q\xfcQ\x12\xad \x22\x18\x0f\
+1\xe0&\xee\x01!\x10{\xdec\x22`2\xee\x80\x08\
+Y\xc7\x8f\x8e\xe4w\x93\xb1\xe3S\xd8$p\x86\xfb\xa0\
+\xb4\x12\xe4\xa3\xcb\xf8\xdd\xd8\xcb\xb3\xce\xa4\xf2E\x01\x8f\
+\xca?\xf7y\xb2V\x08Z\x0a\xe0,\xe0\xfe\xf2w\x0a\
+\xb5$\x12\x8a,\xfb\x84\x96\x04O\xacA\x1a\xc8\xef9\
+\xafx\xfd\x11\xfa\x1f\xb8\xc6\xfc\xef\x91\x84<\xa8\x88\x8c\
+\xe7\xc7AF$\x92\x12\xbcP\x0dl>\xd8\xdc;\x1c\
+\xdb\xb9*\x07\x17\xc7/d\x1e\x9aA\xb2V\x19\xd5\xe5\
+\xaa\x00\x9d\xdeZ\x02\xff(WA\x86P\xe4T\x1e \
+\xf1\xc0I\x5c(0N\x17\xd9\xdf\x00\x1co&\x0a\x81\
+\x22\x89\x05*\x9aou\xbd\xf9\x89\xd0\x1cn$\x89\x05\
+*\xd9,\x80\x9c/\x81(\x0fdaq\x12\xec\xae\xc0\
+\x97\x85,BE\x90a#\x00\xa7RJe\x15vw\
+\xb1'{\x82\xe5\xed\x0a\x80VPO6\xbd\xd3\xfb\xf6\
+\x90\xed\xd1\xf7\xb5\x00\x12\xe0\xe18r\x1dp&\xd0\xda\
+\x10\x07\xbc\xa0kc\x1fR\xc5\x98\x8dn]\x05\xca+\
+\x8b\xbc\x90J\x1d\x90u\x10!r\xb0\x9d\xdb\xe0Z\xf5\
+\xc2\x0aZ\x0c\x09\x8dg\x8c%\xaf6S\x02(\xf4P\
+\xb9#\xaf\x0d\xde\x13\x16@\xd5\x19\xaf$>x.,\
+\xec\xea\xb9\x03j\xe4\xe4{T\x9a\xc9\x94r\x1e\x05\xd2\
+\xff\x5c\x9e\x80s\xe6&\x83\x99[\x08\xa8\x04)a\xe1\
+\xe4x\xe8O\x83\x5c!S\x8aZ\x05\xb2J\x92u\xf3\
+\xdezd\xde\x80\x86\x13\xe8\xf2\x1c\xb9\xaf$X\x08\x90\
+\x05\xb9\xf7\x84Y\x94\xd7\xc4\xd1\xa0\xe7\xadp\x1f\xf4\xb2\
+a@\x02\xf9\x1c\xe6'd\x95\x82\xee97\x08\xc8\x1b\
+80T\xa9sD\x10\xbd\xe9\xcf\xf5r@^\xd1\x84\
+,\x8f\xf3\x17\xf2\xc1\xd9\xf0\xa5\x7f\xeb\xe3\x17\xc7\x00d\
+\x0c\xeb\x03\xf3\x09=zH\xf4\xa8@\xc0\x06\xac^Y\
+ \xe5d\xca\x9b\x0b\xcc\xaa\xf5\x8c\xde]\xee\x17:\xcb\
+r\x5c\xad\x131\xf7\x22\xb2\xfe\xd0\xebO\x85\x08\x0e\x13\
+6L\xf5\xa4{\x86\x1e\x19Dz\xd6\x15`x\x02\x0a\
+(\xbaz#\x9d\xd3\x00\xf6~\x93\xaf:<-K\x9b\
+\x98\x95\x8ab\xbb\xafY:\xfe\xc5,\x1d\x8f2+\x09\
+\x09g\xbfW\x0f2\x81\x16\xd7;\x9a\xdd\xac\xda(@\
+\x5c\xd1JB\xc5\x01\x08$\x0e\xc9\xfefU\xc2\x84\x8d\
+q\xf9\xb1w\xe5\x04+*\x0cb\xef7\xea\xb6\xac\x0a\
+A\xa5Y\x95C\x10\x19\xed\xa6fe\x5c\xb9<!\xb2\
+|\x96\x10\xb9\xad\xbc\xde[\x86\xd4\xea\xe1\xf7\x9f\xc4!\
+\x1c\x0b\x1a\xef8\x86\xed\x16f\x82\x02\x1f\x93+R\x97\
+YEj\xb4\xa9Y\xe5\xe8A\x8a\xb9V\xdfC\x9e9\
+\x11\x9b\x02\x95\x84,\xcb\xcf\x97y+\x96h\x90-N\
+\x0eh\xbd\xf5\xf7U\x01\x05\xaa\x0aJ e\xf2\xa8\xba\
+\x82b8\x11\x83\xea\x1ebV\x91Xq\xdf\xad\x07\xf8\
+\x9d\x22uL\xf7}\xfc\x08\xb3\x5c\xf9\xee\x11\x1dr\xf4\
+2r\xc0\xe6\xe5\xc1f\x15\x82\xcez\xa9\xab\xdelH\
+\xa8\x8cb\xce\x129\xa6>o\xd0\xf1\xb4~\xf7\xeb%\
+\xbd\xd0T\xc6\xb4\x9f\x22\xef\xe7\x09\xf5/h\xde\x8b+\
+\xa2\xbb\xd7\xac\xba\xae\x1f\xf5\x15\xb1vW\xb3\xea>\xad\
+f\x96!\xe3\xe7\xb4\xe7\xe4\x16\x96\xad\xad\x85\xc5!\xad\
+\xda\x17\xba\xcb\x93]\xa6\x16\xb1\x85+\x99@\xf5\xd6w\
+\xd7'\xbbN2\x97S\x0a\x17\xc3pk\xb3B\xb2\xe7\
+\xfe\x85ZT\x08l=P\x83\x13\x80\x96\x22c\xe7\xbe\
+\xba\xec\xb7\x0eu\x06Q\xb1d\x8f(qYF\xfc\x09\
+\xcd\xa7\xf6u\xb3t\xfcJ\xfb\x95\xc1Wz\x95\x8f.\
+\xdd\x87\x19\xbb&\xdbE$|\xafdY\xcc\x1f\x9a,\
+\xe6\xe0P\xb3\xdc\xe2\x94\x13\x17\xdd\xb5f\x15\x92\x83\xa3\
+\x12R\xed\xf2\xc9\x96\xab\x12>\x90\xcci^tG&\
+;\xaa\x8c\x87\xee+f\x95J\xc0~f\x85\x1c\x8c\x80\
+!\x93\x18\x1a\xcb\xff'\xcd\xc4\x8a\xbfB\xe1\x82\xe8~\
+bV\xf9\x03\xacw\xfc}\x11\xb3\x82\x10\xcbr\x97\x9f\
+\xae\x10A\x22\xa1E\x16nx\x9dY\xfa\xb9M\xd6(\
+\xc0M\xe3|\xd8\x99U\xc86*\xdebu\x87\xab\x03\
+N\x92\xee\xd7f\xd5zC\xab\x93\x0a.\xf9zv\xab\
+\xb8/P\xd90/\xe0f\xa99l[\x05\xa8\x0f\xe7\
+Zt\xbf\x9e\x9d\xa8}\xef\x80\x8a\xcb\x8a\x1ef\xaeK\
+\xad\x93\xae\x1fO \xc2\xbe\xae\x04\x84'\x18\x8d\x0b\xa3\
+U w}\xd5;O\xcf62\xa5\x04z I\x09\
+\xd4I\xd4\xaf\xa2}\xd2\xc2\xd2\xa5+?\x98\x8a2-\
+\x05$\x00\x94\x90\xf3\x84\x04\xc8_\x12\xb5\xc8\x9d\xca\x7f\
+kW0K\xf7\xef\xebi<}='P\x7f\x9ce\
+--\x11\xb6f\x85\xf0\xc3Of\xbd\xc1\xdf\x22\xce\x93\
+\x1a\x8e\x9f7~\x1b\xe4\xdb \x17i\xc5\xdd\xca\xac\xcc\
+_\x13\xd7\xcb\xf2zp P\xe0\xa1u\x8e\x84\x0e\x05\
+-\xfc\x84\x0d\x94h7\x86\x82\xaf\x16\xe4\x80\x9f/\xfe\
+\x1a\x81\x1b\xa4\x8d\x223\xf6\x0a;$\xc2\xb48\xd2\xb2\
+Le\x9b\x16A\x02A\x12\x84<G\x02A\x021\xfc\
+1\xfc4T}\x94\x10'\x81\xe1\x893\xf69H\x8b\
+i\xa1&0%\x81\x0dG\x13=\xff$\x00\x18\x7fJ\
+\x00{\xa2#\xb0\xd8\xa3v\xe5$\xd2\xac\xe3\x14L\x08\
+x\xd9\xff\xb9\x0e\xe2(\x12\x03\xb1b?\x99, \xf1\
+Q\x0cp\xa3\xeaY\xe4\xf6\xc2o'n\x8b2\x99\xf1\
+s^\xef[_r\xd4\xfbB\x85H\x89-\x04\x91\x93\
+`\xb2V\x88X\xe1\x8f\xd7\x15U\xd7\xf8\x9ep_\x9c\
+T\x94\xf3!>#\xde\x88=\xfcQ\xde\x90\xc4T\xac\
+\xf4\xf3\xfb\xa8\x16\xe7$\x803\xb2\x10B\x7f\xe3_\xab\
+\x02~\x12\x02\x91\xb5=\x92\xdc=\x9fs+\xe5\x81s\
+\xc2d4\x04-s\xddy\xfeQ\xf1\xa5\xb2G\x80\x0e\
+\xf9\x972\x9c^\x11b\x80\x11\xd0\x93xh\xf5y1\
+3\x14\x8f,\x88,t\x04\xc6,\xa4\xb1W\x9d\x8d<\
+\x9e'\xac\xd1\x90\x93\xf1:\x90\x04\xe8z\xeedV-\
+t\xb4\x0e\xb0\xb0\x13@\x12P\xa8B\x08D\xcd+\x85\
+J@\xf8\x82F\x86\x1a\x92&\x16.2\xb2\x04n,\
+\x8c\xf4\xf2\x83\x90\xc0A\x86<e\xc3\x9e\xbd?\x85\x0d\
+=\x04\xf6\xd0~a\x84\xfc\xcb\x07\xfa\xcd:O&x\
+d\xab\x04\x19A`\xce}\xa37\x8b\xf1C\xcb\x802\
+\xa2~\x1f\x09\xc8\x02y\xa2\x8f+ 9\xea\x19t\xf6\
+W\xae\x83q\x03\xe4\xfaQ!)\x98\xb8\x03\x91\x08\xb2\
+\x91\x00\xa1\xc7a\xc2\xb1\xe0\xbeI\xff\xda\x17\xe6\x80t\
+I\xcbk/\x07\xb8E\xf3\xb1\xe6c\x15{\xb4X[\
+=\xb0\x8e\xbdT\xdc?\x02Od\x9c \xc3\x82\xbc\xed\
+c\xfa\x5c*\x88\x90/\xb2\xd1\x12\x18\xd3\xbaBo=\
+:\xd5L|\x1c^\x90\x0b\xb4\x86\x90` 1@\x8f\
+ \xe3\x8c\xdeP*\xdcB\x02\x10PP\xd9\xf5\xc0\x12\
+(\xf9\xddfUf\x1b\x12A9\x1a\xdd\x9ef\x15T\
+\x8d\x8a%\x81\x98\x02xo\x15\xb8\xc6\xac\x9c\xaf\xf76\
+\x92A\x17\x9b?$W\xc9\xe9^1\x07\xb2z\xde>\
+\xffq\xd4\x98\xc7\xacSb\x95v9\x22d\xc8\x80\x84\
+\xc3\x22\xae\x0a?$L\x90\xea9\x09\x14\x8e\x10\x89K\
+\xf5\x96{F\x9c\xc4\x06=\xf1\x82H\xb7O\x9a\xa5\xe3\
+\x1cf\xa5\x12\xdaN1+=\xb1\x90\xaa\x82\x04h\xef\
+7K\xc7\x95\xcd\xd2\xf1_f\xd5FDB\x8d\xf9\xa1\
+\x9eVw\xe4\xe9\x855\xbd\xf9\x87+\xe8+\x09\xb4\xeb\
+\xe50\xb0\xbe\xfd\xa0w`\xba]\xfb\x8a\xeeh\x15U\
+\x9e\xae\xee\x13\x85\xcd\x89\xcd\x09\xcd\x09\x19\x12\xde\x8f\x07\
+\xa0\xc27\x9ae\xe8\xf3Q\x06}\xce\x7f\xb7\xde\xc1\x83\
+\xcc\xca\xf3\x18\xfc\xd8\xacp\x05\xb0n\xe5\x8a\xea4]\
+\xcfBy~\xf6\xbd\x9dj\xfd\x00\x99\xe0\x89B\xd4\x12\
+$w\x05\x97\x80W\xf0\xdf\xa5D\xd9\xf5r\xb8q4\
+\x19g\xb06\xab\xd7\x9b\x84\x88\xb3\xd8\xa3\x0eA%N\
+\xe3\xc6\xc2W\x0b`\xf3>\xf7\x9e\xaa\xb5L\xfb\x92#\
+q\xf6Nf\x95\xd7/\x98\x15\xd9\xdc\x5c\xd9J\x1b\x7f\
+{I\xb2K\xabu\xc6\x10c{\xa9%d)%\x10\
+\xe6\xabX\xfa\xe5(t\x17\xf6\x95\xdbt\xee\xbd\xe3-\
+\xce\x82\xee\xeffU\xe0.\xce\x9e\xee\x0ffU\xc0\x01\
+y\xa1\xd4>\x90\xb5k\xe6h\xdel\xe4{YU\xe0\
+\xf0\xc2\xb9\xe0d\x8f\x82\xa8\xe7\xf9\xb7Oi\xc5q\xd9\
+Q\xc8\x10I\xf8J\x06\x0e.\x89\xf6\x08\xb3\xb2Nz\
+\xe2B=\xe9\xcc\x9bn\x09\xb3\xc25\xd0~\xcfL\x10\
+\xfd\xf7\x8a\x9b\xe1\x17\x05\xb92\xfc\x82\x99\x12\xd9\xc8n\
+}\xaejyR/\xbe\xcf\x0b9\xbc^!7\xd9\xbc\
+\xcf\x08r\xff\x8d\xd2[N\xcb\x95\xcbv\x81\x944\xca\
+\xb53\x94\x88<\xba\x92%=\xa1\x9f\x17\x83\xfd\x93\xa5\
+\xfd\xa4]\xb6]v0\xbd$\xe2s\xa0yA\xb5\xde\
+\xaa\x85a\xec\x0b\x82|\xffA=\xbe\x90\xdd\xc1a \
+\x07?;\xe2\xd3\x0a\xb9g{\x85Y\xba\xfe5\x92\xbd\
+G\xaa\x01\xc6M\xb1G_\x98\x18\xbe\x92\xec\xe5j?\
+\xd6\xba\x8d\xea\x80;\x9e Z@\x12\x09*\x0e\xb4\xde\
+\xc9$Mf\xf0\x8ar\xfe \x1e\xbb\xab\xcc\xd4\x0a1\
+\xadJP\x87\x02\x07\xeb]\xb7\xadY:>!\x04\x8a\
+!\x11.N\xe7\xb5S\xb24\xcf\xdbk\xcc\x94\xf8\xfa\
+\x9b\xe6\xfb\x0d\xaa(N+\x09%*\xf1\x8e\xf8\x01i\
+bP\xffY\xca\xf5t/\x9b\xa5\xe3Jf%\xa1\xe4\
+GHi\x81\xd0C\xba&2A\x0f\xa0\x80\xd6SH\
+\x81\xec\x8f\xc0\x0c\xff\x09\xff\x06\x84'\xfe\x04\xbd\xcdG\
+\xa4\xf9uDE\xf2\x072LP~\x97\x85\x95\x7f\xe2\
+\xac\xf8\x04\xcc \x0a\xf1\xe7c\xeb&\x886\xc6;\x09\
+\x0e\x10o*@\x81\x94\xa4R\xea\xc8\x88\xc5\xb3\xee\x92\
+\xa9\xc7\xe4\x04\x9c\x07\xc6J\xec\xf9\xfe\xc6?\xb8\x0c\x08\
+$y\xfe\xb4\xec\xd0\xfaH\xc1\x81\xd62\xf6\x1b\xfe\x81\
+TXY\xf3e\xd3^\xfe\xd4\x0b<\x5c7\x01\x0f\xba\
+\xf4\x22\xfb\xf4\xfb\xa6\xfb\xee\xf3G*\x1e^8\x00Z\
+\xff\xb9\xb1\xcff$%\xf1\x05\x81\x1a\x09\x18dy\xc5\
+\xd9\xe3\x05B*\xdb\x22u\xf5\xca1G8\xa0b\x00\
+Mb\x88\x82\x83\xf6\x1d/\x0cA\x168\x87YI\xd8\
+\xfa\xfd\x86\x9b)\x14\xfa<\xd1\x03\x12\x81\xe7\xa1\xd6T\
+G\xb0\x90\x00\xa0\xf2\x0f\xc2-\x06\xba\x9c?\xe3\x88\xfb\
+\x85_\x8e\x9fCa\x93\x84\x05\x05\x05\xfcx\x0al\xbc\
+\x9e\x80\x97\xfbL<\x11\x03\xdf\xd8\xeb\xce\xdf\xa3L`\
+\x84\xf4G9\xeeYDbO\xe2\x80yH\xc5=\x22\
+\xd9\xa3Lw \x01t\xee\x06\x12$\xf1\xba\xa2\xdaY\
+L\xb4\x90\xe8\xe6}\xbc\x0e\xbf5V\xf8c \x1f\x13\
+\x00\xf1\xf7\x5c\x0f\xfe~\xad\xe6\xd7\xda\xdb\xf8E\x94O\
+\xb0\xed\xf8\xe5\x99\xc9\x18`+u\x92\xbbZ\x16\xee\xcd\
+U@\xcd\xfb\x08\xe8x\xc0l0<\xd8\x98\xc9d\x00\
+\xf3`\x98\xe01\x01\xc0\xf7\xce\xa5\x81\xcf\xcf|^\xb8\
+P\xff\xbe(g\xc7@`\xe1\xe1\xfd\xb3\x07\xd6}\xfe\
+\xaeJ\x7f\xaew-_\xf5\xa0\x93\xa8\x00\x1a\xc4\x03#\
+\x10V\x00\xee\x90K\xce\x87\xfbC\xa5X=\xe08D\
+\xb9\xe5b\xc9\xc2\xaej\xd4[F\xbe\xc5\xc2\xe1\x01\x1d\
+\x13\x96\xc4\xc2\xacBdPI\xa5\xe2M\x02\x00H\xb7\
+*\xeb\x0e\xb1\x03\xca\xbe\x8eW\xfe\xfb\x04\x03\x0b]D\
+\x00HN0\x85a}\xaf\xbb\xa0o\x1e\x00\xd2\x03\xce\
+\xfd#@a\xa2\xf3=\x9c\x1f\x9c\x12\x1fRb\x02\xf6\
+Y\x91\xb69G\xc3m\xcaL\x16\xce\x87\x89\x95c\xee\
+/\x95\xda5\xd4JBF\x1a2I\xc9\xb1y\xa6\x16\
+\xee\x0b\xc8\x9f\x9e\xd7\x84d\x81%\xc0Co|\x03-\
+\xc0\x8c+\xc6)\x95I\x05\xe8>\x9e\xd9\xb8\xb8\x8f\x8c\
+{\xa0\x84\x9b\x98\x95\x0a\xbb\x07\xfel\x9c\xaa\x98\xb8\x1a\
+\x05\xf7\x97\x05\x1d\x1dw\xf5~g(\xf1\xd7\xaa\xdet\
+\x90&,L,\xa4\xe2J\xa0b\xea\x1b\xbf\xc8=a\
+W\xcf\x88\x9eAE.\x06\xc4\x5c=\xd3\x1e\xe0j\x9e\
+\xe7\xde\xc9]\xab^qA\xe9\x09\xd0F\x1f1\xabX\
+\x9b\x974+z\xbc\xee\xb0\xd3+H@N\xc2\x85V\
+\x086Dt\x83\xd5\xf3\xee\x8e\x05\xe3\x15(2\x1b/\
+duld$\x82\xb4\xd1\xd13\x1b\xa1\x9f\xde\x8b\xc8\
+\x86(G\xc8[\xae\x80\xd8C\x02&\xa8\xb4q\xb8\x1b\
+\x8b;d[\x04\xfeTf\xdb\x87\xcc\x0a\x9b{{\x8f\
+YI\x04Pi\xcc\x81\xa2\xf5\x86\x9ffV\xe6K&\
+\xf9\xda\xa4\xaa\x10,\xa5\xde\xd09z\x120*\x19\xce\
+\x05\xa0J\x0f\xef'\xf12\xda\xa0\xd71\xf7\x80\xfb\xbd\
+\xa35F&\xcf\xba\xb8Y%\x07%\x95\x83\xc1\xef\xcd\
+\x0a\xd9\x99\xaf\xdb8R\x97\xe5\x9a\xbb\x91\x7fu\x99d\
+\xd4\x12g[T\x90l\xf5\xe8B\x22\x07G\x8a\x93\xc5\
+\xc1M\xb2\x83*\xe4V\x81\xbeD\xa4mw\x94ub\
+4k\xb2\xd9\xc4\xc2\xfbT\x95\xf0#\x91E\x85\xcb*\
+\x8d\xa6W}\xb3Y\x86\xb8'+\x88\x0a\x10\x14\x1e \
+\x03m\x06) \xc7\xba}\x87Y:^d\x96\x8e\x7f\
+M\xf6`%k\x08\xf4\x96#\xfb\x8b\xd6\xa5\xeeP3\
+\x9d\xffg\xaa^W#\xdf[\x5c\x0e\xde\xfae_\x1e\
+\xec\x9b\xec\xf3\xa5gy\xf4I\xb3r~\x8e\x0c\x82\xfb\
+\xe9\x85\xee\xc5\xee\xc5\xd2\x0a\x90\xc6pN\x84u\x1f6\
+K\x9f\xb7\xe0`\xa1\x81\xa98\x9chV%^~h\
+Vz\xd7a\xf1oN4K\xaf\xff\x81Y\xd5sm\
+\x15hS%\xf8W\xb2g\x0br\xa5\xbd\xcf\xacpX\
+8\xa2F\x89Uz\xf2\xe1l`}#\xc0n7o\
+?f\x15\xfe\xe4\x84\xf5\x81\x8d\x10)\x1e`\x1arf\
+\xbf\xf4\xf3\x9cf\xe9xY\xb2\xcb\xab\xd6\xabo%\xfb\
+\xb6\x12\x97_\xaa81,0\x5c\xb18\xc0\xdd.\xc9\
+v-\x0e\xb6;\xdc\x86\xd0;P\xad%k\xe8u\xbb\
+T\x8e\x1f\x08\x1e]o&\xd1\xbcH\x89\xfd\x9b+$\
+\x94\x8d\xba\xb4\x8e\xb6\xb3\x9b)!\x99\xaeo\xfc\xa3f\
+b\x01\x7fG\xc5b\x8f\x9c\x1cd\x8c\x92\xa3\xcc\xd7\xf3\
+\xad\x12\xd0\xb3\xfe\x0e\xb7\x1dn7\xdc>\x1dw\x1f\xee\
+6\xfcd\xe5\xb7PX\x80\x15\x1e\x04$\xb2|\xfb$\
+\xfbl\xc5\xb9 $\x04\xdc\x00.\xb3\x8cL\x9d\x10[\
+\xdd\xcdf\xe9\xfb\x167+\x89\x80\xe1\xebf\x15\x09\x9c\
+\xcd\xc7\xe4\x87u\x9b\x99U\x88A%\x9a \xaft2\
+?#-49\xc5k\xcc2\x17E\xb2Je@\xeb\
+zV\xb1\x98\xa3jQ\x83\xd4\xf5\xf4l\xc5\x9f\x05q\
+h\x95\xe3O\x88\x8c\xda\xd44>\x97\xcc\x12d\xbfK\
+vw:>h\x96\x9e\xcf\x95f*\xb0\xec)\xe4\xc1\
+\xb5\xf2S\xd6\xad\xfc\x17\xdb5g\x94\x1eug\xfdf\
+\xdf\x82\xfb\x82\xc4\x0d\xe3I2\x8d\xbe\xae\x8a\xb5?\xad\
+\xb6\x1b\xd8z\xdb\xedoV\x90G\x90\xf5\xe5\xb0\xec\xe1\
+\x0aZOK\xc0qf\xe2\x9c9K\xeb\xf8\x86\x95\xfc\
+)\xeb0\xfe\x09-\x10\xacG\xa8k\x91(\xd6}\xf3\
+\x82\x02\xfe\x98\x12\xb5\xcd\xf2)@]>#8\x0e7\
+\x04\x87sz0\xde\x08|h\xa5\xa42~\x96Y\xf5\
+\x9c\xf0\xe3\xd5\xfb\xee\xfb\xa3\x90\x1a\xcev\xcf\xf9n\xa6\
+VE\xed\xfb$l\xbdB\x0e\x09\x22\x01\x1b\xc8\x07Z\
+2 ]CFR\x09N\x9e\xbb\xb7\x18\xe3\x1f\x10\xe8\
+QPc\x7f\xd4:\xe8\x7f\xd7\xfe\xe7\xf1NTm\x82\
+\xa4\x0fN)~O\xa1\x83\xf3\xe2\xf7Q\xd5\x0a\x8e\x00\
+\xb8 (\xa8\xa1\x16\x81\x7f\x88\x9fN\x81\x83}\x97\x80\
+3\x06\xd4 \x11(\x1c\x82\x0c\x10g\x86'\x04\xe0\xd0\
+\x22>\xa1RM\xe2\x00\xe4\x06\x85L\x8e\x11:O\x01\
+\x8c\xca8\x8eR,\xfc\x11\x00G\x12\xc1\xc9\xe4\xedb\
+\xc5\x9e\xb8\x22\x16\x10#9\xf7\xcb\x13\x11\xd0\x1e\x97\xf2\
+o\xb2@\x9b\xef\xe5\xbc&!\x03\xf4x\x8c\x9fC\x1c\
+\xec\xeb\x05\xaf\xe3\xfe\xf0:\x10\x0b\xc4\x911\x1e\x0d\xad\
+\xb0\x1e\xefr_\x99\xef\xa1\xe7\xdf\xef\x8b\xaew<\xbb\
+#uf\x80/\x8c\xec\x91\xb17c\xb2\x07\x22r$\
+\xcf\xec1 \x09\xb8\xf9\x9c\xd8\xd3\x00\x89!\xbd\xc4@\
+s\x82\xee\xbc\x9fg\x84\xfaG\x99\xb7y]\x06\xaf?\
+2!\xb8q\x1c\x09\xec8N\x96\x10\xa0\xe7x\xf6\x9e\
+\xbd\xd2\x03\xbb%\x84\x5cXU\x0b\xc5\x12\xae^\xd0\xdf\
+G\xee'\xb2\x82\x04\xba\xb1\x85\x80\x8a\x01\xe4k\xfc\x9e\
+\xde#\x02>2r\x0c\x5c\xae\x83J/\x01\xe6\xfc\xfa\
+\xbe9\x03\xc4^\x8e\xa7'p\xf8\x5c\xc8\x04_\xec{\
+\xd5\x9a5\x04\xed\xe4\x1f\x08\x07-8NRG\xa0\x8b\
+\xc3B\x00\x0e\xe4\x89\x09\x84\xe3A\xc0\xce\xc4\xe7\xfcY\
+\xf0\xe8\x11%\xd0\xd5\x86\xea\x15\xa4\x0f+\x10`\xc1[\
+H\xd7U2|\xfd\x84\xe0z\xe1\x90 \xd1\x01D\xdd\
+\x1c\x80*\x80\xf1\x84\xce\x22\x0a\xd4\x19\x07\xc8/\xc2^\
+\xcby\xac/\x99\x16\x16`\xce\x9b^sz\xec\x19'\
+T\x1a\xc5F\xef\xf2<T\xde\xf72K?\x7fI\xaa\
+\x16 \x0f CD\xb7\x9e\x9ex\x12$@O\x09\xf8\
+`\x07\xa6\xa7^PK\xffY\x19e\x1f\xd7@\xd5\xc8\
+\x14s\x9e\x22\xf5\xf3\x96\x11\x02`6\x14\x12MpE\
+P\xd9\xa0\xf7\x9b\xc4\x95\x1cP*+\x83\xef\x98U=\
+\xa4\x82T#?\xe8z\xced\x92\xa5k\x8eC\xe3\xd7\
+\xcb?\x12)1s]\xe4('\xc8\xaax\xe0\xfaO\
+\xbdN\xf3\xc4e\x11\x055\xf5J\x0e\x89!\x12\x0b\x0a\
+\x14\xbd2C\x85,\xff+\xbd\xf4\x0e\xbd\x96\xa3\xd5~\
+\xc3\xac$x\x9c\xfc\xeat\xb3t\xfc\x95Y:nb\
+\x96\x8e\xaf\x98\xa5\xe3'\xcc\x0at\xdc\xc9\xaa4\xae\xba\
+w\x9b\xb2w\xce\xd0\xf7\x09\x1c\xc9\x0a\xf9:\xf3E\xb1\
+\x08\xc3\xda\x1bu\xb0!\xe1\x81\x84\xf3{f\x85\xfd\xdb\
+{\xeaU\xf1\xe961+\xe3\xa0\xf9\xa9Y!Y\xa3\
+ek\xb0\xa6Y\xae\xf8fG\x18\xd2\xc1f\x98\x02\x96\
+a\x81\xfa;\x19\x17d\x99\x8c_A\xd4}\xbd\xa3e\
+\x052>HM%o\x95\x11\x01;U\x1c r\xac\
+\x91_\x1c\x9dj\x96\xee\xe77\xcd*\x15\x01!}\xda\
+]\xcc\xd2\xf1\x18\xb3\xaa\xb7\x1d\x1dn\x1cc\xc9\xa4\xb6\
+\xb7\x9a\xa5c\xce$(\x11\xbb\x8c\xa0\xdf+V\xe4M\
+\x9a_\xf9z\xcfP\x82\xc5\x02\xe6\xf9\x93-\xa0\xd6\x91\
+\xbb\x8b\xac.\x10m\x12\x1aT^\xdb\xe3\xcc\xe4\xb0\xfd\
+\xae@\xc7]5A\xcf\x81\xca|s\xa8YU\xd9\xd3\
+\xe7\xa13\xef\x81\xfc\xf4^-\xa2\xdb\xdd\xac\xc8\xfa\xe1\
+xz\xe0)\xbf\x02\xc8=d].\xc7\xf7\x94YN\
+ \xefk\x09\xe4\xf6\xa8\xf6\xc8\xd6\xc8\xea~\xdf#\x0d\
+\x90\x854\x06\x1b\xe3\xb0\xe9\xee0+l\xe9\x90\xe1\xf9\
+\xbe\xa8\xfd\xa6;\xb6;\xa63\xee\x8d\xd7\xcd\xd2\xebN\
+1+\xfb:dv\xf9<\xe6\x15\xf9\xda\xb2j\xb5\xf9\
+W\xa9\x10\xb7\x7fHvO\x91[\xcc-\x1a\x17\x09!\
+\xf1X\xc5\x09\xa0\xde\x7f\xc8\xe1P\x0b \xd0\xa2r\x9a\
+Y\xed\xbf[%\x18\xd5Z\xe2\xeb\x1e\x1c!\xfc,Y\
+G\xf6;\xa3,6\xd2\xe2\xe6@\xb3t>\xab\x98\xa5\
+\xf3;\xdbL\xad\x0cSK\x82t\xf4\xe9\x1e\xa9\xc6\xfc\
+E\x9d\xa2\x1d\xeb\xc7\xdf\xebg\x9b\xe5\xf1\x99\xf7\x97\xe6\
+\xcdfU\x05N\x15&81\xbc\xb5\x07d\x88\xcdw\
+#\xf1[\xd1\xac\xf2\x0bH\x8cR9F\xdd\x09\x84\x06\
+\xec\xee\xbc^\x89\xee\x19\x07\x9b\x95\x16(o\xc1\xa0U\
+F\xebe\xb7\xa8Y\xba\x8e\x95\xccJb\xa7[9\xd9\
+Je\xbcv\xe3\xc9f\x91\xfa\xc9e\x05i\xe7$\xb8\
+\x91\xbc\x1a\xe8\xb3]\xe5\xf2\xe59:\x04\x1c\xf2W!\
+A@\x98\x0c\x175K\xe7sW\xb2\xdf)auz\
+im\xf1@\x9b@\x1c\x95\x09\xc6\x07-C \x86x\
+\xdd\xdb\xdc\xaf\xe8\xd5JXWQ\x0f\xa0\xe5D-m\
+y\xbf~\xb2\x92\xd5\xb3p\xea\xde\xca\xef!\xf1o\xe9\
+\xf9O\x16\x95 \x12=\xa8\xdd\xb8\xac/2\x9c\x9a\x7f\
+N\xd6\x07+>\x5c\x0d\xf4|\xd3\x12\x087IdQ\
+\x0f\x88I\xaf\xec\x92\x10\x07\x1a\xcf\xf8\xc1\x9fFE\x0b\
+\xff\x1eD#~\x85\xe2\x02\x0a\x16\x8e\xcc\x99\xa6\x8a9\
+\x89\x03\xfcz\x8do\xe7r!\x00$\xf1A\x02\x8c\x8a\
+\xabZy\xdc_a\x5c\xa3\x16\x13e\xf4(h(\x8e\
+\xc9-[\x0f\x95\x00\xd8\x0bf\xf8\x9b\x04\xb0\x14TD\
+\x06\xee\xad\x99T\xe6\xf1W@&P\x99\xc7\x9f\x22\xd1\
+\x1c\xfc*Gl\x82(\x16\x87\x07j,3\x15\xd4x\
+^\xdc\x17\x02L\x9e\x17\xfb>-\x03\x9c'\xad\xb1J\
+\x10\xf8\xf9\x91\xb0\xa0b\xcd\xfe\x0cI5\x88\x0f\xfc\x0a\
+\xb8\x09\xf8\x1cH\xbe)\xc0\xe0\xaf\xc1\x1d\x85\x1c&-\
+\x0b%`\x9fH\x82\x17\xd9\xf0\xe3\xef9\xf2>\x02u\
+*\xfd\xa8\x8cE\xb2>\x12\x14\x04\xca\xf1{b\xbc\xcb\
+s\xe1u\xbc\x8f\xfb\xce\xe7\x81\xf4\xe1\xfa\x82\xda\x80'\
+\x16y\x1fqrT'#N\x8d\x88\xf5(\x0f_\xb7\
+\xec\xcf\xf2\x06\x5c\x00\xf2\xff\xc7\xf3\x8fm\x15\xa8\x929\
+\xe0\x8d1\xe3PW\xce\xe7\xac\x16^\x02~\xabg.\
+P\xbd\x9e\x09\x1b\xa1=\x93\xf44\xcc$C\x17{\x1e\
+&#\x89\xe0\xe7\xa8;\x8f\xec\x84t\xa4]_\x93\x1b\
+\xc5\xf5\xc6\x1bI\x80\x14\x13\x01\xdc\xc0\xd7\xf4\xc0_P\
+ >ebo\xc7h\xaa T\xda\xe8\xfd<\xdf\xac\
+\xcf[V\x1b\xf0BZhD\xaaU]O\x7f\xbd\x91\
+#\x81\x81\xc3\x02A&\x8f@\x88\x04\x80*\x7f\xbe\x10\
+\x93 @/}1\xfd\x9e\xf3\x99\xa6\x89\x06t\x9e\x89\
+\x0dr\x83\xfb\x8an\xf8\x0a\xe22 P%\xd0%\x01\
+@\xa0\xcf\xc0\xe5\xfc8\x8fH\x0e\x89\x83Ob\x01h\
+\x1d\xa4x\x82Ly\xef\x15\xcf\x8d\x0d\x88\x0d\x16\x87F\
+:\xce\x1e\xa0\x13\xe8\x13@/\xe2\xdc\x11pV\xf4\x13\
+\x84\x8a\xfc\xbb\xd5\xeb\x05\x07\x05\xf7\x15G\x07\x08>\x09\
+\x10\x16^\xee7\xf7\x8b\xf3\x01\xb9\x00)\x22\x01<2\
+\x9a\xc8\xc8\xf1~-\xe0\xde\x0a\xc3\xe7\x93\xa9\x07\xc9\x81\
+\xbc\x1a\x0b\x18\xe3\x87q\x8b#\x84\xfa\x81z\xd4=\xa1\
+\xc0\xf3Cw\x9b\xc4\x08\xe4\x80\x8c3\xf5\xc4yf\x9f\
+\x1e\xb9=\xcc\xaa\x05\x9d\xf7!\xef\x85\x5c'\x1b\xbc\xc8\
+~\xdao\x9bU\x88\x04\x8d\x07H~\xbc\xc7\x9bJ\x92\
+H\xacx\xee\x0e\xc1e=\x00A\xa1\x9ed\xc8\xa9\xa8\
+\xc0\xfb\xfa\xc1\xf8\xdcJ\xdc\x06$t\xe408\x97\x83\
+\x02!\x02pz\x06\x1d\xf9\x80l\x9e\x1ca\x87\x9a\x82\
+<\xd0\xbcA\x9e\xaf\xb9\xc8\xac\x0a0Uan\x974\
+K\xc7\xeb\xcc\xc4\x0e\x7foEn\xa8\xf1\xea,\xea\x92\
+es\xc8\x99\x9e?\x0e\xb1\x93\x8c\x11\xe03nX\x07\
+E\xc2\xd8~\xd6\xaczn\x8b\xa9\xc2sq\x7f\x9e\xa3\
+\xa7\xfa\x0ag\xf7%\xb3\xcaA\x10\x14\xb0\xfd\xb3Y\x05\
+\x89\xc7\xb1\xa2\xe7U\xe4\xa3)\x5c\xdc\xcc\x02FZE\
+\xe8\xd9\x051\x82\xec\x99\xcbIJ\xd6\x91\x84\x96\xcb\x90\
+\xc1\xc1`\xe9\x94\x93\xa4\xf2p\xae\x10<\x07V\x88\x92\
+{F\xf7Z\xa5\xc5:vsK\x82H\xbc\x5c\x06\x11\
+\xe4\x83\xe4\x10y\x1e\xedSf\x15\x04\x13]o8G\
+\xf8\x1cA\xe0\xdb\xbd\xcd\xaa\x8a\x94\xa9\x01l[\xb5\xc4\
+X]k[\xcd\xd7u*G~\x8f\xdcM_\xc8\x8a\
+l\xb6/\xab\xe73^\xc8\x872\xe9\xd3i\xe9\xd7\xa7\
+&\xfb\x8e\xd6\xd3w\xa9\xd7\xfd\xfa\xc2\xd6\xce\xbc\xcf\xdc\
+\x11g\x15n\x88\x9c\xaeZC\xdf\xff\xfe\xaarD\xef\
+\xdf\xa3f\x19\xba\x9d\x03Wg\x8bW\x22\x87\x84\x9f\xb3\
+\xfa+1\xd9\x1daV%\xca`Y\x17$9\xdf\xbf\
+es`\xf1\xdd\x91\x9d\xffJ\x83\x15\x07+eh\xff\
+%Y\xcd@\xbd\xee^\x11\xd4\xba\xd0\x9diVq'\
+\x08\xa9\xe5\xea2p\xab\xd0\x83\xfbq\xb3Bv\xe7\x81\
+\xe2YfJ\xd0\x9d\x93\xc7cf\xb7\xee\x96\xef\xde\x95\
+\x13\x05W&K\xeba\xfb\x9edkh\xbf\x9f\xb5\xcc\
+\xfb\xbc:\xedX\x90'\xa8u\x98\xc8_\xe6L\xd8\xa9\
+o=\xf1\xc0\x13\x07\x139O\x108\x04\x98\xda\xafr\
+K\xd8ze\x1f\xf4\x84\xc7/2&c\xac\xfd\x96\x99\
+\xc8\xd2\xf6.\x89\xa3\xc1\xdcf\x99\xcc/#-\xe00\
+i/j/n/\xae*G\xdf\xcdf\x7f\xefe<\
+\xafn~a-\x11\xdcG\x02\xff\xe1\xfafUe\xdc\
+\x12\x1di\xdc\xcd\xf8{\xb2G3\xf7\xc3\xb5\xb9\x15D\
+\x099\xf4\xc9Y7\x90\xef\xf2\xf5\x1a\xfdw*\x95\x1a\
+\xe7\xedRf\xea\xe1\x1f\x09\x91\xf1\xcb\xd2\x8a\x93I\xfa\
+\xd2>\xd0\xfd\xc3,\xbd\xee\x1ff\xe9}\x03\xa9\x1d(\
+\x81\x97\xe5\x0c\xdf'RB\xbbo\xaf%{\xb5\x90\xc8\
+v\xcf\x9b\xa5\x9f?`Vz\xf8\xb37\xf5R\x15\xc0\
+INmtR\xb2o\x15\xa8}\xde\xc5.)\xa4\x85\
+$\xd6\xf8\xfb\xe0=f\xc5/\x18mmV\x05(\xaa\
+\xf4;b\x0c.\x05\xf9\xb1\x90vz@\x06r\xcd\xe4\
+\xc2\x9eP%w\x7f\xad\xf3k\x95\xf5`\xf4\x16\xb3\xaa\
+\xd2{e\x1a%W\x16\x0e\x95\xdc\xd3\x7f\x8c\xd6\xef?\
+W\x09;\x91\x12\x83\xb4s?\x87D\x10\x89p\x05\x8e\
+\xec\x8fp\xf38\x82\x82}~\x9a8\xc2n\xca\x8a\xe9\
+\x96P\x7f5'\xd4\xf1C\xf0\x9bQ' \xa1\xc0\xfe\
+C\x82H\xd7\xef\xac\xf5$\x02~+\xff\xe2\x1eq\xe8\
+(Q\xeb\xaa\x01\xf2\x17\x5c\x1d@\x81\x9c\xb3\xcfS\xa9\
+\x864P2\x99.\xa7\x07W\x84\x12\xb2\x90M\x82\xe0\
+\xa1\x85\xaf{\xd6\xac\xacsp\x16\xd1\xaa\xe7d\x90\x14\
+>\xf4\xf9\xee\xff\xc0\x99\x03\xe2\x94@\x1b\xf2<\x8e$\
+\xa8\x09\xa8\x81\xd6#k\x88\xbf\xc5\xef\xf9\x19\x04,\xdc\
+\x00\x90\x05\x8ak\x84\xfd\xcf\xe31\x127\xfcL\xdc\x00\
+\x02\x83DM\xd4\xb1\x07\xc1\x00\x12Mr\x9f^\x08\xe1\
+\xbc\xf8\x19\x84\x00\xf1\x02\x15\xef\xc8vO\xa0\xcb}\xc1\
+O\xe5{\xa3\x1c\x1e\xaf\x8bl\xfb\x14tb\xc0\x1d[\
+\x92'\xfb}\xfc;~!\xe3\x0a\x12>\xae/~\xff\
+\x7f\xfa\x5c\x8e5\x92~zE>H\xa1-\xdew\xee\
+\x0f\xd7O\x9cI\xfcD\x1cM`\xcf\xbc\x8b\xaaz$\
+\xb0b\xcb;\xbf\xe7\xa8\xdf\x8f\xcfD\x92\xf0F\xc77\
+\x0a\xb0#\x0ba\x84H\xc4\xdf\xf3/\x06\xee\x91\xe5\x91\
+c\xa8\xdc\xf9\x83 \xa3B`\xca\x0d\xe2F\xb2\xe0q\
+\x83\xc9\xbc\xe8\xc1\xba\xec\x1d\x03\x88\xef\x89d\x13\x91\x95\
+\x12\x96Id~\x80T\xc7\x16\x04\x12)\x0a\xe8]>\
+D\x09\x04\x0fp\x91\x03\x5cq\xa2\x1e\xa8'\x1a\xf8<\
+\x05<\xde\x9b\x89\xac\x1b\x90\x1c\xc9=y\xa5\x96\x8d\x86\
+L1,\xedK( ^I\x01\xf1j\x82\xf4/\x16\
+\x10\x1a\x91\x03\x81\xfb\xf0\xa2\xee\xff\x8b\x92\x9f\x19\x0a\xaa\
+\x1e!'\xdc\xd7H\xf6\xc1s%\xb3\xaa\x0a\x04\x8e\x85\
+#\x04\xc8p\x02=S\xa0\xeb\x014\x81\xf8+\x8e\x1c\
+\xe9\xcfO2\x80\xe9\xa9\xf4\xd0w>\x07\x08\x17G\x12\
+\x05<o\xe4[\xd8\xf0\xc8\xb0\xad\xe0\xf2\x82\xfd\xfd\x89\
+d1!\xf0w\xe8-=\xfb\x90\xaa\xb1!p\xdd\xb4\
+\x08\x90h 3\xc7\xf8\x8d\x09\x9d\xd8\xe3D\x86\x90^\
+79T\x9e\xf0\xe0>\xb2\xf0\x9cfV\xddoq4\
+\xc0~\xedz\xeb\xfcC\xad\x82\x8a\x82*\x03^q\x00\
+\x09\xc0\xbc\xd5\x06\xcbuxO\x1d\x81%\x15\x10\xb83\
+\x18\xa7$B\xb4\xf1y\xe5\x12\x0e\x096\x10\x02`\xa0\
+\x92\x223r\x1diH\x18\xc9<\x0bR\xce\xfdu\x92\
+\xa7\xa3\xb2\x95V\x05\xddG*\xba8r 4\x5cf\
+J\xfa\xd3\x0e\xd1c#\x86\x03A\xac\xdf\x04$\xae\xe3\
+\xad\x80%\xf7\xac>Z8P\xda9\xcdJ\xef=\x09\
+\x1e\x0f\x1c\x95\x81\x87\xbd\x9c\xf9\xee\x95}H\x0e\x8f4\
+\xab\x1c;6b\xa0\xf2\xf4\xf0\xd2\xe2\x02BE*\x06\
+\xee\xd8\x0b\x9a\x9d\x82\xc0\xbe\x07y59\xfe\x1fV\xaf\
+%=\xbb\xaa0\x0c>i\x96\xae\xe3\xa3fU\x02\x09\
+\x07[$b\xe9i\xf4\x09\x03s\x0b\x1eS\xe2e\xd3\
+\xaa\xf2!\xe8g\xee\xc9|\xacJ0\xc1\x8d@\x80\x84\
+#\xa2\xd6\x90\xdc\xe3\xbd\xb06\xcc'*\x88\xa8*/\
+\xcd\xbc}o1\xf7\x9bD\x8e\x8f\x032\xed\xaa\x9c\xfb\
+z\x07i\xa0\x12)\xdd\x96f\xd5\xfa\xcbs\xfe\x9dY\
+\xb5\xdei\x1c3\xcf\x9c\x93\xc2*m\x17\x14(mN\
+`\xedV\xedc\xb6\xca\xccU\xf5\xf0\x0a\x22\x0eG@\
+C\xa2U\x8e\xf6h\xf1d\x8b\x15\xb6\xf6\x1c\xa8]3\
+!\x91\xd9\x934\x1a$\xf7\xd3R\x03\xf9\xa6X\xb9?\
+\xa6Jer\xa8\xc7/7K/_\xb1\xaf\xb8\xb2~\
+u\x9b\xf7\x10\xed\x14\xe6\xf6\xbd\xc7\xaa\x8c\xd1\xe2\xe0\xac\
+\xe2j}\x01\xc1\xc1u{\xa0n-\x1cS2\x9b}\
+cl\xf6\x5c\x87\xd5S\xad\xa2J\xa5\xb4\xdb\xca\xac\x22\
+\xab\xa45K\x8eL{\xa0Y\x85d\x80\xeb\x04\xa4\x88\
+\xd6CH\xea,\xbd`\x09\x86\xee0\xb3J\xbe\xef_\
+B\xbe\x08\x81D\x05\x8f\xde\xe0\xe6\xabf\xb9\xb7y\xe1\
+L.\x08'\x06\x156\xb5\xe4\x8d\xde\xd1\x07\xba\xce\x19\
+\xa3@\xd7+\xacT\xc6\x90\xf3T\xe2\x80\x16\xa8\xb1\x1f\
+\xaaW\xfaD\xb1\x94\xabB\xeb\x89\x5cA|\xa9\xd0\x92\
+\x00e]\x1f\xdcd\x96\xae\xef\xfb\xdd\xc1\xdd\xc1E\xae\
+\xb4]\xdc,\x1d?e\x96^7\xafYi\xc9\xf3\x1e\
+|\x90 w\x99\x15\xc4\xd9\x8c\x1b\xcc\xd2\xfb\xd66K\
+\xdf;\xddLP\xf4\x03\x0a\x22\xc8IC\xe9\x85V`\
+F\x22\x08\xb26\x13\xa14\x19J\x906\xae&`H\
+\x8d\xe4/u\x87'\xfbj\x91\xcf\xcc\x88\x03k\xc9x\
+\xcd,\xb9\x15O\x9b\xa5\xf7\x7f\xd5L\xfb\xd0o\x8b\xec\
+\x5c>\x8f\xd9J\xebH\xba\x1f\xc9*\xd6|+_<\
+Z!\xf0\x8c\xd1e'\xb5\xaal\xac\xc0\xf3\xbc\xea9\
+\xc1N\xcf\xbe\xafV4\x12\x0f\xa8\xeb\x18wC\xbbl\
+E*\xb7\x9aYA\xa8\xc1\xad\xe2\xfb\x1d\x85\x0ed\x12\
+!\x8f\xe4>Z\xba\xe1(!\x81\xe6\xaf\xc6\xab8+\
+\xe0\x10\xf1\xbf\x8f\x8f\x06\xa3qA\xe4\x7f^U\x8a#\
+\xa2\x94\xca=-\x81\x9a7\xbe?R\x10\xc1\x8f\x0a\x01\
+\xa6't\xd5\xeaAb\xc9U?\x8eW\x0b\xc5\xe1i\
+\xde\x1c^\xf6I\x0f@\xe7\x90\xff\x0a4\x5c\xaaD\x8e\
+|$ \x81\xad_\x88\xd3\xb4\xba/aj\x19\x1e\x98\
+S\x00\x00\x92\xaf\xf3\x86\x1b\xc1\xb9\x80\xf0\x9bH\x04\xb0\
+\xff\xc1=\x04)/\x01\x12\x09\x15\xfc\xb75\xe5_\xd2\
+z\xa0\x96\x0e\xe4\xa1\xf3x=\xbc\x92\xad\x14G\x92\xb7\
+\x06\x820\xc5\xef9.[\xf1\xe39?Z\x07Q[\
+\x10r\xa4\x92\x1b\xec\xf7E*\xe6\xf4\xec\x13?\xc0\x19\
+E\xc1L\x052\xb8/\x1c\xc1\x84\xda\x05\xfe,2\xe6\
+pZ\x05\xe8=\x894/\x14\xb1\x9f\x92\x08 0e\
+<\xf1\xb9\xf8C\x90\x1f\xd3\xe2\x80\xff\x05rA\xeb\xa2\
+'\xbc!\x15d\xbd\x8cq\x02\x08\x8a\x18\xf0\x07\xb6\xff\
+\x99Z\x03bB \xca\xf3\xf1\xb9\x14l#2\x22\xca\
+\x0f\xf2\xfe('\xa8\xcfs\x99aZm\xf8\x9e\xd8R\
+\x10[\x05\xb8N\xfc\x90 \x1f\xef~o\xe4\xca\xe3\xfa\
+x~1\xe0\xa7`\xcf\xf3\x06\xa1\xc5sF6\x94\xf8\
+Y\xdf;\xee'XgF^\xaa.\xc4\xfe\xaf\x7f\x9e\
+\xac\xe7\x22\x927pC\xffS\xa6$~^\xbc\xf1d\
+D\xc8\x10\xb1P\xe3\xb8\x81\x1c\x90\xc3\xd9\xac%\xe88\
+\x81\x1e\x90\xb0\x08\xb1\xe0{8O\x02\xdd\x18h1P\
+C@\xec:\xef\x0441P\x0c\x0bl\x93\x00\x00 \
+\x00IDAT&\x90\xa3\x82\xcf\x82\xcb@\xe1s\x19\
+\x10T6H\x10\xf0z\x16L\x02K\x12\x06,\xfc|\
+>\x08\x8c\xa8\x92\x00\xcb$\x89\x0b\xc8\x18q`\xe7\x9a\
+\x04Z\x12'\xd8k\xfa\xdci\x139!|\x02\xc7\x00\
+\x96\x04\x0c\xbd\xd7\xfc\x1e2\x18\x10\x22\xa55\xa0GD\
+,\x17\x8e\x5c\xdf\xebA\xf6\x83\xfb\xfc\xa4\xbe\xe7i\x9d\
+\x07\xe7\xcb\xc4\xe0\xbe\xf0}\xdc\xef\xdf\x8f\xdd\x9d'.\
+\x13\x1bG\x9a\xf3E6\x11yA\xc6\x09\x1b-\x13\x0d\
+Vo\xd4\x1d8?\xbe\x8f\x8d\x80\xfb\xc9s\xd1\xc2J\
+&\xdb\x03Q\xdeG\xa5\x1b\xc8%\xcf\x8d\x85\x19\xe8>\
+\x19e\xd8o!\x1fd\xdc\xc4\x85\x82\xe7Eb\x8b\xcc\
+\x22\x89\x0a]\x87;\xae\x0aHq\xc4M\x1f8\xcbt\
+Q\xf9\xa6WP\x1bTs\x9bYI\xb4y\x05W\x1b\
+\x96\x07\xb2r\xb4\x1c\xb2(\x96sw\xc4\xd1\xad\x17\xab\
+|;\xc3\xacJ\xbc\xb1\x10\x0bj\xe9\x0e\x01\x95\x03\x91\
+\x0b\x02\x19wd\x00\x1b7\x15Q9\xd28\xda.O\
+\x08t\xf7\xd0l\xde\x8a\xe3\xbd\xbe$\x08\x84,\x82\x8b\
+\x03\xa8(\xf7\xa5\xbd\xc0\xac\x90s\xd1Z\xe1\x09!A\
+\x87]\xb6\x0b\xb6fq/L\x80\xae\x1eQ\xcd;\x02\
+\x07*\xe3@2Uy!!\xe5\xf7Ud|\x0e\xf1\
+'\x11\xf2\xf5l\xde\x9b\xedrC\x1a/\xcebN\xa5\
+\xfc|\xb3t|Y-\x0a\xcb\xb4\xefl\xdfYU\x9e\
+\xd4\xab\x09\x94zx\xfb\xf0\x8e\xe1\x1dY'~\x9b\xac\
+\x13/G\xa9\xbd-\xd9\xadZ'\x9e\xae\xa0\xe7\xb0\xd8\
+\xef\xd5\xedm2e^\xc9a\xfe(3\xefl\xf2\xf3\
+\x9bU2\x85\xc6\xad\xb0^q\xd4P#\xf0\x04\x9d\x9e\
+\xb7\xcb3)\x00\x80\x9d\x9aD1\xa4\x92\xdez!\xa8\
+\xb6\xab9\xf0:U\xd2\xda/\x9b\x15\xd2=o=\x10\
+Y\xa9\x07\xcc\xc8\xefY\xc0\xbbY\x05U\xb5U\xca\xae\
+\xe3/fUE\xf25\xb3*q'\x96u\x02t\x12\
+m\xce\x8amn\xf0\xddU\x22\xc1T\x08\xeeM\x01\xde\
+\x15\xc9R\xe0?\xf8\xbcY\x197\xc3\xfb\x86\xf7\x0e\xd3\
+\xdf\xbb\xfb\xcdJ\xc2\xa1\xfd\xa3YN\xbc\xf5\xf7\x079\
+-\x1c|*\x19@h%\xc7\xd8^kVZ\xf9\xba\
+G\xcdJ/.\x08\x06\xd4\x13\xbc\xc5a9\xb3\xf4\xf7\
+\x1b\xcd\x8a\x5c\x18\x01\xae\xebT\x8b\xa4\x93\x80\xa3{\xc0\
+,]\xc7t\xb3B\xee\xc6\xbc\xa5R\xcf\xf8\xa6\xd5\x01\
+\x04\x07\x09\xd0\xf6\xbbf\xe9\xe7o\x98\xe5\x8a\xe2\x072\
+R\xf0\x8a\xb1+\xcd1\xb6\xb4SN<i\xbex\xa5\
+\x97V!\x022\xd6Q!\xce\xba\xdf\x9b\xe5\xfb\xddW\
+L\xf7\xeb\xe7g{K{\xb3\xc9\x16\xe6\xd5\xfc\xe1L\
+\x0a\xd9\xb3\xf8\xdf.D\x05-\x16J\xc4BN\xe8\xb2\
+jS{D\x5c\xf77\xb3\xf2woe\x12[z\xfb\
+K\xb3\xb4\x9d\xec>\xbe\xc7\xf8\x1ey\x9d\xeaIw\x91\
+Q3\xe4C\x0a\xb0\xba\xf3\x93] \xd2FC\xc8\xdc\
+\x9f\xec\x81*p\x05a\xc4\xbe\x82\x9a\x06j\x1d\x7f6\
++\x01\x82\x93 \x8b[(?\x8dC\xc4z\x9f\xf6\xb5\
+n\xb1d\x8b\xe6\x04\xd1B\x96 j\xa66\xcf[\xcb\
+Cw_wow_\xe1\x14@\x95\x22\x93\x04nS\
+\xb5\x1a\xa2\x8ea\xea\x1c\xff(\x09%\x97\xcfTkP\
+>\xbb\xdb\x0b\xcb\xfe\xe8p\xb3BF\xe9l\xfe8\xe0\
+$2\xffj\x96>\xf78\xb3JfW\xc8$d5\
+q\xfb\x08\xe0\x8di%s\xad\x808\x04\xc9\xc8<g\
+|\x10xs\x84\xdc\xcf\xc2\xf4\xbf\xc8\xdf\xb6D\xd0\xad\
+f\xa5\x82\xd8\xceoV\xb5\x86\xe2GS\x18\xa2\x00\xc5\
+\xf7\xeaz\xbc`\x04r\x85\x0a6\x10u\x12\xb2\xa8\x15\
+\x89\xd3&\x93`\x1e]\xb5B\x91X>\xb5\xf9\x8e\xed\
+\x13\xc9+8\xcc\xfc\x02\xe4?\xd3(\xcc$\x9c\xa3]\
+\xcc\xde\x80]\x9dJ\xab\xc8\xf8\x1cy\xf9\x7f\xaa\xac\xcb\
+\xcfE\xc5\xa1\xfb\xb3Y\x95\xc8@\xb6S\x88\xd0\x8c\xe8\
+8\xa9\xec\xfb\xae\xf6\x04\x92\x0b\x04\x06\x05%*\xe1\xf4\
+\xa8\x7f~l\xdf\xb1}3\x22\xb3\xe7\xc4B^\x11N\
+\x9as\xcd\xca\xe7z\xa2\x86q\xcd>LK\x00\xfe\x10\
+\x9ci\xa8\x8b\x90\xf0\xc3\xef\xa0\x92\xcey \x1b\x0d\xd2\
+\x0e\x84\x1f\x019\x015\x03\x8e\xc0\x90\xc2\x22$\xb3 \
+-D\x86\x0a\x14\xdfI\x8a\xdf\x9b\xad\x14\xa8@\xec\xc1\
+\xc5\xa3\x16\x14\x0fl\xf179O\x02|\x12h\x8c'\
+\x12\x17\xe1\xe8\x90\x7f\x10\x10\xb1g^-\x22>\x1e\xe0\
+\x16\x88\x9c\x011^\x8b\xdcn\xfc>\xb6\x96\xc7#q\
+Dl\x1d\x88\xb2\x82\xb1@\x1c\x0b\xd1\x9c?\xe7\xc71\
+\xc6\x97\xc4\xcd1!\x81\x1f\x17\x13\x01\xc4M\xc41\xf8\
+\xe7\x9c\x07\xcf\x9f\xeb'\x1eQ\xbc\xeb\x05\x1d\x90\xc4 \
+?\xe1\x8a#!\xa3\xf5m|\x02\xcb?\x1725\x90\
+2<\xff\x06$\x0a$\x06\xb8\xb0x\x81Sg\x82\xc4\
+\xf7\x15x \xb7\xf1\x06\x11\xf0\x07\x92\x04gu\x8f\xdc\
+\x04\xdc n\x0c\x15\x10\xb1\xec{@E\x06+f\x98\
+x\xa01QA\xa2\x81\x09\x1a38\x81\xb3\x80\xcc\x97\
+\xf7\xd43\x10\xc84\x11h\xab\x92\x06;f\xb3\x95z\
+\xd2\xe9Ey6\x04\xb0$8\xd88x\xa0\xb1\xa2<\
+\x8b>\x9f\xcc\x90\xf4.\xfd\xbaI4Py\xa6\xf7\x99\
+^w*\xdc\x5cWl\xcd\x88\xe4\x11e\x00O\xe8m\
+\xf1\x81L/\x0f\x90} \xecd\x0e\xc9\x8c\x03\xddg\
+\x9c\x90`\xa8\xf5lgL \x95\xe9+\x9c\xb0\xbb\xe3\
+\x880a\x1eR\xcf\x95\x16P'u\xe1u\x8c\x1f\xd8\
+zoL\x0b\xdd\x8dUe\x9a\xd6\x02\xbew\x8a\xc6\xa1\
+*@\xcdz\x1aO\xa1\xe7\xcd!\xbb\xf4`\xd1\xf3F\
+\xe2\x81D\x0e\x19S\x16n\x02r\x12\x0e,\xf8$b\
+\x98\xf8@\xeb\x08pU\xf1\x86\xad\xd7\x13\x0c\x913\x83\
+\xf1\xc2\xc6G\xa0\xc8\xf8\xe1{XP\xe2\x82\xc8s\xe1\
+\xf7@\xf5\x81\xc2\x8b\xa3\xc1\xc9\x065\xde\xbc\xa7\xdb\x1c\
+\xc8\xfb\xab\x1e?t\x91\xe5\xd0\xf8<$\x00?\xde\xac\
+\x9ao\xdc\x1f\x02T\xc9\xfc\xf0:\xaf\xa0\xf3> \x99\
+$r\x08\x18\xb8/l\x8c\x82pZ\xbd!W\x1cP\
+_\x90\xbc\x92\x93\xd0iA\xf6\x84\x0a\x1c%$@\x04\
+\x9duh\xacH\x0a\x9bY\xccJ\x8f\xb8\xf7\x082\xfe\
+\xe5\xe0\xb8\x9e\xbb\xa0\xdc^i\x84=\x175\x07\xe6\x15\
+\x90]\x05\x96\xae^\xf0\x88Y\xc5\xaa\xac\x8d\xd7e\xda\
+T\xf1G\xd5\xc0\x03\x7fU*\x9c\xedZ\xad\x1bN\xea\
+\x08\xd4}]\xb3t\xbc\xd3,\xab\x0e\xe4^\xe5\xf6z\
+\xb3t|B\xfa\xf3\xf3\xa6Y6of\xcb\xfenf\
+\xcb\xfe\xd4\xd8\x9e\x19\xea\xbe~_1F\xf5#m\xf3\
+\xff\xcc\x1b\xbd\xb9\xdf?-\xa4[8\x1a.\xcf\x05\xdb\
+\xbc\xd4N\xda\xdb\xcd\xd2q-\xb3\xd2SOb\xa7]\
+\xc3\xacp\x0dP\x01\xa4\x22\x09\x82\x88\x84\x94s\x00H\
+\xed\xc4u\xe3\xe9\x91\xa7\xd2,h7\xf3\xd6\xa1\xc6\xcc\
+gZGh\xcd\xd08\x1c\x1ddV\xce?\x93Z\xfd\
+\xa4\xda_W\xcd\xca\xd9\xbd|\xe6bB\xd2\xecY\xd6\
+\x95ns\xb3\xaa\xb5\x85\xca4H\x1b\xc6\x1f\xfa\xe3\xf3\
+\x98\x15\x07\x17\x12\xcfv\xaaY:nlV\xd6{\x02\
+\xe5\xe1}f\x0a\xe0\x7f\x9e^\xf7\x96d\xf3W\xeb?\
+\x10\xd3\xd3G\xa7eh\xae\x05r\x96\xd8\x19\xef\xf5\xe6\
+\xd3X\xeb\xb99DN\xe7\x15-\x90!<W*\xa5\
+\xab\x98IEb\x95\x0a\xa1\xa2\x8aW\xfb?f\x82H\
+?^ \xbd\xdcO\x12\xa6\xc8i\x0e\x972K\xc7\x17\
+\xcc\xd2i\x1fmV\xed\x87\xe2\xe0\xf0y\xa2\xc4\x04-\
++\xed\x09f%1\xd8\x1efV!\x9fpxA\x5c\
+\xa9\xf5\xc8+\x94\x0a\x0ca\xed\xf6\xfd\x8aJ$*\x06\
+\x22\xb3#QcT\x95V\xa9\x83C\x04Vr\xef!\
+G\x86R\x8e\xbb\xff\x1d\xe83\xea1$V\xde\xd1-\
+\xd3\x19g\xc2\xebfU@1\xa7Y9O\x10\x19$\
+\x82\xf2\xfb\xd3u\x0f\x17J\xb6\xa0Z\xb3N\xae\xe6\xc7\
+/\xfaV\x82n\x0b\xb3\x0a\x19\x06\xc4<\xfaq\xc8\xab\
+\xc1\x05sR\xb2o*A\xb9y\xa9Pv\xb3\x99\xe5\
+q<\xc8\xe3x\xeef.k\xad\xea\xa6\x98\xa5\xe3\x8b\
+=y%\x5c\x11\xdd\xc7\xcd\xca\xbe\xee-\x1b\xc8\xfc*\
+\x01I\xa51sK\x1cW9\xda\xb4\x18\xa2\xfe\xc3\xb8\
+\xd2}u\xc4\x9d\xd4^\xe0x\x81|\xd0\x91j?\xe8\
+I\x98\x0d\x87aH\x0c8e\xfc\xf9HF\x92}\x9f\
+V4\x97\xc1\xd5<\x1d\xbd\xcf\xac@\xee}\xbd~\xb2\
+yr$H\xb0%\x02\xf3~z}I81\xcey\
+.YM\xe5\x8b\x15B/\xfd\x9f\x11?iw\xcd\x15\
+J\x10\x08RM\xc9\xcc\x14\xdb\xa8`\xf0\xd3R\xa1w\
+D\xd9\xbe\x0a\x88\xf1\x97(\xa0Q\xc1V\xab\xd0\xd8.\
+c\xbb\xe6\x16-\xed\xf7\x0e\xf9\xff\xbb\xfc\x1f\xb8\xb0\x1e\
+Q\x8f;\xaaO\xfb\x99\x15D\xdeL\x852\xfc5U\
+\xe8\xdb\xdd\xcc\xaa\xd6\x0b\xf6w\x9e+\xfe\x0e\xdcN\x0a\
+t\xba\xbf\x9a\x15\xe4\x9b\x93\x15\x02\xed\x06\xb9x\x89*\
+\xf1T\xc0\x19\xcf\xc4\x03\xba?\xfe<\xd76\xab\xf6M\
+%N\xf07\xe0L\xf1\xf9 \xbf\xc7\x03m\x12+\xa8\
+H\x10g\xe0G\xa3:\xc1:\x8a\xdf\x002\x93\x80\x1b\
+YB\xee\x03~\x1a\xad\x19\xf2+\xbd\xd5\x0a\xb2?\xe4\
+\xc0E\x22\xea\xf1\x05\x08B\xfc>\xb8\x0a\xd8\xe7\xe0*\
+\x10\x19\xa8\xcbQ\x92\xa0\xa0 \xc5\xef\xf9>\x12k|\
+.\xaf'\x81\xccz\x19+\xe1\xf8\xd1$\xae \xcd#\
+A@|\x1a+\xee\x11\xa9\x8e\x7f\x1bU\x01\xf0\x9b\x89\
+\xcfb\x02!&\x02\x22\xa7\x00\xdf\x1bI\xeey\x1e\x93\
+\xa9\xe7\xe1\xf7F9@\xfc<\xe6\x03\xe7\xc1\xe7\x05\xf2\
+>?\x9fXH\x05\x11O\xbc\xc7\xf52O\xb8.\xf9\
+\xff\xe3\xce\xea\x8f\x1c\x1b=\xfc\xc8\xfb=\x9fy\xd0\x9d\
+L\x87#\x0e\x93W\xac\xb9\xc0:\x910\xa5\x0axb\
+\x0f\xc5\x8b\x01\x8a\x01\x19\x03\x81/\x1b\x9c\x06\x9cC\x9c\
+co\x08\x9fG\x85\x9e\x89\xc3@\x89\xec\xf2\xf1\x01\x11\
+(\xd3k\x0eDP\x95H\x1f\xa0\x5c\xcf\xcc\x19\xa8\x1e\
+\x81\xc0\xfb\x80\xaa3\xb0\xd8X\xe8\xe9\x06\xda\xb9\x9e*\
+\xc6\xd35\xa0\x08\x9c\xa5#\xea\x99\xc4\xd9B\xaf\x07P\
+\x0f\x1ed\xa3D\xc4\x03\xaat\xbcCl\xeb\xdcw\xae\
+?\xb6B@\xb2\x17\xc9.\x22\xeb\xe4X\x90Y\x8c\xcf\
+-\xcaz0qK%\xbd\xff\x99\x80\x93\x01\x8eC\xa5\
+L\x94\xebIGH\x0b\x89\x1d\x91\xd387\xc4\xdcz\
+]\xa9\x98\xf7\xe7=\xb7z\xdd\x95y\xf4\x8a1\x09\x16\
+\x9e\x7f\xe4\x10\x18\xea\xb92A\x9f\xf4\x1e\x9d\x89\x89\x14\
+\xae\x87\x8c,\x09\x14\x16.62^\xcf\xc2}\xbbY\
+\x95\x98`\xa2\xb2P\x0b\xea\xe5\xcf\x85\x05\x8b\x05\x82\xfb\
+\xcb\xefyn\xcc\x17>\x8f\x0d\x94\xf9 \x04\x80#\x15\
+\x04\xdd\xf4\x85\x84\x85_\x1b\xcf\xe8kf\xa5B\xef\x01\
+#\xf3\x17\x07\x8f\x05\x9c@\x81\xf9\x00d[\xec\xe0\x9e\
+Y>\xc1\xacr0\xd4\xb3G\xe0\x0c\x19\x92\xcfG \
+nT>\x81\xda\x22\x17\x0a\x94Q\x8e\x07rx\x0e\x05\
+\x84\xdd\x98L=\xe7\x8f<\x1b\xf3\x11\x99 \xee3\xf7\
+\x97\xfbH\x0f#\x0e\xb4\x12\x92\x90tA\xea\x07\xc9Y\
+{\x90YF\x1e\xfc\xc1\x90\x07 \x85\xa8<Q\xb1 \
+q\xe8\xec\xecp\x15H\xb5\x81\xcaMs\x8fY\xa5k\
+\x0dK;$qp\x11\xa8W\x1b\xe8,\x89V\xd7\xc1\
+\xa6\x87\x11\xf5\x0b\x12\x16\x90'1\xee\x09\xc4\x961\x93\
+\x03\x7fR\xfe\xfe\xdc\x82D+\x12\x9c\x06\x9e\x10\x22\xf1\
+#\xe4D\xb3V\xb3fc\x01\x8cz\xcc\xc7\xfe0\xfa\
+p&3{f\xf4tf\x11\x16\xe4\xbe\xfb\x95Y\xd6\
+\x7f\xdf\xca\xf4\xdf\x9b\xcd\xccJ/x\xfb\x92Y:\xce\
+\x96\xcc\xe4\x0f\xa7%{\xbeps\xd0k\xec\x9c\x09\x8f\
++q\xf3\xb9^\x06\x8f\x04N\xf3\x1d\xb3\x0a\xba\xcc\xf9\
+k\xfc\x02\xe9\x05I\x81\xae\xba'\x80pPX\xff\xd5\
+\x0a\x04\xa2\xc3+\xa4$\xd8\xe8\xf5e}\xe3\xfe\x98\xa3\
+\x7fR\xc5\xdd\xc1\xfa\x8c\x8a\xc3\x5cf\x0a@/\xac8\
+\x1cl\x97\xe9*\xd6sK\x9bm\xad}\xee\xb6\xca\xc1\
+d\xde\x90\xf1g]\x12\xeb|w\xafY\xfa\xb8\xaf\x9b\
+\x95\x8a\xbb'\x96\xc4v\xee\x09\x1b\xa0\xbd\xe8\x86\xab\xb2\
+\xe7\xc8\x12\x8d\xcf\xc1nf\xa5\xa7\xd79F\x14x\x81\
+P\x1a\x9e4\xfc\xd6\xd0\x02\xf2\x1d\x92m\x9f\xb9/\xfe\
+\xcf\xb8/ \x8b\xeb\x0e1+\x08\x08'\xdb\x14\x12\xc8\
+{tE\x22JK\xc4\xf04\xb3\xf4\xf3Bfe\xdd\
+q\x0e\x0e\x10I\xea\x85o\xb73+\xa4w\xcdO\xcc\
+\xd2\xe7\xbe$H\xb2*\x9f@\x99i\x15p\xc7\x8c\x0a\
+\x19\xc8<\x05\xfc\xee \xc7\xfdT2\xa4NjFb\
+\x19\x7f\x01\xd5\x10!\x1fF\xdb\x9a\xa5\xe3nfU\x82\
+rj3\xc5Z,@P\xa4{\xd3\x93\x9cq>\xfa\
+\xde\xe1_\xcdr@\xd8s\xb2l)\xe4\x0b\x880\x0b\
+\xe7~\xa3y\xb3\x98dG\xa7\x8ad\xef\xe7Z/l\
+\x1e\xfd\xc1\xac\xf81\xdd\x22f\xa5\xd7\xdb9lt\x1f\
+\xbaOw{\x19r'\xb7\xa8\x5c\x9b!\xbf\xbd\xc3\xaf\
+\xeb\xf2J\xae\xf6\xf3n\x9ddk\x17U\x94\xeej\xb3\
+\xc25\xc1x5\x06\x07\xe3p\xc8\xc8\xab?\x17\xa8;\
+\x10\xf9\x8c\xcb\xd9\xbd\x92eU\xc2\xc8\xc9\xcc\xf0\xafH\
+\xdc \xd3\xa7\xc0\xcfeh\x05\x81\xf7\xf5\xc9\x90\x0a\x8b\
+\x15\xa4\x19\x09K\xd4r\x80\x86{`\xcf\xban\xe3\xe0\
+^A\x9e\x7fS\x90+3\xf9\x8f\xec;\xa8\xfc\x80\x10\
+\xb3\xce\xfe\xbf\xe4\xf3~2\xfb!\xaa\xdc\x22\x0f\x0dY\
+n^W~UH\x1f\xb3\xb8\xeaA\xf2\x8bN\xacX\
+\xd9Y_L\x8e\xf7\xc2\xd2B\xe1\xaa:\x04\xf8\x1f5\
+\xd3~tVQ\x19qn\x19+S\xdc_\xfc\x99L\
+nyP!\xbd\xf4\xebS\xe2\xc0\xfd\xbau\xfbu\xcc\
++\xeb\x1a7^\x10P\xa2\xacY\xa3\xafd\x8f>\xa4\
+\xfd\x1e\x92dZ\x84\x08\xa8A\xba\x81\xdc#1\xa1y\
+\xe8-$\x8aS@0x\xef=\xa4\xb8\xa6\x0aq\x5c\
+\xe5g\xfe\xde\xac\x92G\xc4O\x84;\x08\x7fN\x09'\
+\x12\xec\x1e\xc8\xb3\xae\xe3\x9f\xe3\xcfP\x88`\x7f\xa0\xe0\
+\x03\xb4?\x06\x82|\x1eH5\xb8\x13h\xc1\xa4\xa2.\
+H\xbdC\xf0IX \x17\xaeu\xc2\xc9\x1f\xe1\xda\x01\
+\x99\xb6\x8bY\xd5\x22\x02\xa7\x05d\x80\xf8\xbb\xf8\xcd\xec\
+'$FA>\xc1\x81\x01\x82\x80\xc4\x05\x08\x02Z\x1c\
+H\x0cp]\x8aw\x1c\x09C\xbc\xc5}\xe0\xfb@n\
+p\x1e\xa1\xd0\xec-\x06\xcc\xf7\xd7&V\xfa=1w\
+\x93Z\x19b+{L\x1c\xfc\xa7D\x00\xfes$\x19\
+$>\x05\x01\xa2D\xb5'R\xf8{D\x10@R\x89\
+\x0a\x1c\xfe\x18*X\x0b\x99U\xf1\x16\xef'\x91\x81J\
+\x1b\xe7\xcd\xfa\xc2\xf8\x8d\x5c\x02\x8a\x9b\xc6}\xe0\xd9i\
+\xfc;d,\xa6U\x08\x00~\xae\x7f?mBo\xc5\
+\x0b\xde\xbb1\xbd\x0a\x0c\x0ai^\x7fbQ\x0f\x91@\
+\x8f\x1b\xc8\x00 \x80\xa2r\xae\x09\xe0\x09\x87(\xd7\xc0\
+\xc6FK\xc0\xad}\xcfX\xf3\xc9\x9e4\xc3\x1f\x08r\
+Cr4}\x80s\xa3\xe8\xf5g\xc2)\x90\xf2@\x92\
+\x1bN\x80@/\xf7\xb2\x1a(\xfc\x9d\x1b\x1e\xd5\x08\x08\
+\xcc\x86\xba?\x0c\x00\x068\xd0oZ\x0c\xb8\xde\xa9z\
+\xe0L\x08\x1e8\x01 \xbd\xfc\xb1\x97%\xb6\x5c\xbc:\
+S\x0f\xcdD\xd2\xc48p\xc8\xa0\xf1yz~\xa3g\
+{9\x90f%\x0f\xc8\xfb\x00?\x06\xb6\x9a\x00\x1e\xf8\
+\xf2\xfc\xb9\xde\x18\x00Syc\xe2\x8d&\x8e\xa3\xf4\xaa\
+\xbc@\xfb\xf7\x92@\xe1s\x81\x94\xe9\xfd\xfe\xfa\xf7\x89\
+\x9d\x9fLYD6<\xa1\x00\x9b\x80\x98\xf1Db\xe8\
+\xb1\x1e\xa2\xd4|P\x01A@X\x00a\xf2\x0d\x8f\xfb\
+\xc0\xf8\xe6\xb9\x82\x18\x81\x8d\x99\x84\xc1d\xf7\x01\x07\x92\
+\x8c^$\xc5\xe4\xb9\xb202o\xb8\x0e!\x01<\x81\
+\x22\xb22\x0f\xd4E\xe2\xe5\x19m\xee\x8f\x02Q'\x0b\
+\xc2\x91\xd0B\xdd\x9dmV\xc6\xa7\xf7\xb0\xc3\x96+v\
+o\xef\xe1\x83\x0c\x11\x19.\xc9\xc5y\xc5\x1drF\x02\
+nZ\x1bV2\xab\x1c\x04\xc6\x11=~\xea\xa9\xeb\xce\
+1\xab\xf4\xe5y\xae{g+\xac\xf3\xf4r\x8b\x05\x1d\
+H\xe1L=V\xb4\xe4\x08\x22\xcc\xf3h^1+\x89\
+\xbc\xe6\x14\xb3J\xffW\xad\x07\xdd\xaf\xcd\xd2\xf1\xd5\xee\
+\x95\xceH\xab\xce1+\x95\x1a\xd7\x91g\x1c\x00\xadT\
+\x85\x09\x04\x05z\xee\xedg\xccJ\x05\xc3\xe5\xeb\x14\xa0\
+\x22\xe3\xd6^jV%(\xa8\x14\xbf\xa7G\x8c\xb8\x8c\
+\x98\xd4\x0a\x5c\xbf\x9by\xaeu\xd8\xcf\xe3)\xe9\x92\x93\
+\xc8\x94*\x87\x93\xf51OT!\x81\xa4\x0a\xc4B\xfb\
+\xf3\xbeg\xb5Y\xa5\xbd\xa3\xbd\xa3b\x9b\x06\xaa)\x07\
+\x04\xae\x05\x12U\x8e\xa00\x84\x85%\x1cri4\x1d\
+o0\xabd\xd0\xe0\xf0\xb4J\xfa\xa2Y\xbe\xae?o\
+\xc6\x15\xe3\x88\x0a-\x15\x0fZOp@Y\xf7\x14\x18\
+\xb47\x9a\x15\xd2\xba\xe6Y\xb3J\xdeK\x01\xa8\xb7\x88\
+\xa8\xb5\x09\xee\x04\x02\xca\xacO\x7f\x95Zk\xd6\x15d\
+\xf4\xbdU\xe2\xd2\xf0\x02\xd7\x17\xb6\xf7\x0c\xe1\x9b_\xcf\
+\x03\xee\x99\x97\xab\xdeTA\xbb\xe9\xc5\x1e\xfd(\xd9y\
+%\x91\xd9\xfc\xc6L\x89\x9f;J\x02,CP\x7f$\
+\x15\x87\x8dE\x06\xb7^\xa9D\xc2>O\xa5\xd6I\xb1\
+XG\x84\x10\xf1V\x00!s\xdc\xa1<\xd4\xacT\xd6\
+F+\x9b\x15\xf2\xca\xee\xa3\xddG\xbat}\xed\x8f\xda\
+\xf3\xda\xf3$+\x9a\xe6\xc3h\xe9\xbe\xb7\xbe[\xdf\xac\
+\xb4\x82x\xa5_H\x00g1GvPd{\xc3o\
+\x9b\x95^\xf0nn\xb3\x9c\xd0\xec!\xc5\xbf\xe9\x1d\xe4\
+\xf6K\xed\xc1\xad\xc9\x18vfe\xfft9\xc8?\x9a\
+\x95qH\xcb\x9cC\xbf%\x17\xea\xad?w\x9bU\x81\
+\x01\xfb\x0f\x09\x0f\xd6M\x90z\x90r\xe1(\xc3a\xa2\
+\x8a\x1d\x898O\xdc\x00QG\xae\x0d\xf5\x1d\x90\x0cB\
+\x9c\xb5\xb3\x98\xa5\xe3o\xcc\xd2\xf5\xcfjV\xf6\xcd\xcc\
+\xa6\xbfr\xe6\xaa\xc8\x90\xf4\xe6\x04\xad{\xd6Z\xf6;\
+%f\x8f\xaf\x10\x0f\xebg}\x1bW[q\xf2N\xe4\
+=\x81\xc0\x8b\x94\xb5\xfb\x9aY\x19\x97\xa3Kz\xa4Z\
+Z\xfd\xfb\x84\xaf\xf6)\xe6\xf5\xe8e\xb3\xd2\xaa\xd0\xbd\
+\xcd,\x1d\xff \xb5\x88\xd5\xcc\x0a\xa2\xc6\x03l\xc9\xe8\
+\xe1\xe0\xe7V\x18\xab\xbco\x97l{%\xec\x8e.\x01\
+>j\x0d\x8e\x14\x80\x95\x1cN\x13\xf5\xa4\x8f\xbe`V\
+\xf5\xa4\xd3\x0a\xa4\x8a\xb9\x89\x9f\x9a\xfc\xa3\xcfwz\x98\
+\x09,h\xbd\xe0\xba$\x93\x96\x03\xcfiU`M\xe5\
+V\x90\xf1Qk\x96\xb9%\xde\x91\xe5\x1f\xed{\xb7U\
+\xa5{\xab\xfc\xfei\xb9\xc0\xb6\xba\xe91\xcd\xcc\x0e\xef\
+\xfa\xe1\xb6K\x1f!\xee\x94S\xab\x16.\xad\xcb\xb9\x10\
+b\x15\xd9\xcb\x93]Q\x15\x92\x08$\x09\xf4 u$\
+!M\x8b\x87\xfcU\x97\xbd\x14I\xe6\xd8]J\xb4\xc3\
+\x11\x80\x9fCA\x04h<\x85\x19H\xaf\xa3L\xb7\xfc\
+Fz\xd4\x1dbO\xa5\x9f\x80\x99}\x86\x0a3\x88\x07\
+\xc8'A\xdc\xa80\xc3\xbe\xec\x88`\x158]}\x08\
+\x04\x06\xc8\x10\x12\x96p\xb20^\x98\xd7\xccs\x02\xd8\
+\xe3\xb3\x95\xc4\x8c\x02_O\xcc)@\x1b]eV%\
+\x96\xf0\xbb\x89\x03x\xae$\xf0@@\x13\x18\xb3\xfeB\
+>\xc8\xf8\x03\xda\x0f\xc4\x9e\xf3\xa5PD|\xa0\xd6\x10\
+8\x0dF\xa7\x98\x15\xff)\xf9'\xaf\x9a\x7f\xc2\xfa\xe3\
+\x95v\xc8\x9c9_\x9eW,\x80\xb1\x0f\x91\xf8\x84\xfb\
+\x81\x04\x07\x05?~\xd6\xf3\xf3\xd7S\xb0\xe1s\x89\x0b\
+\x09\x88Y\xffA<\xe0\xdf\xe2\xefF\xe8}Dx\xc7\
+^\xfc.p\xd4q\x8c\xf2~1\x01\x10\x8f1\x81\x10\
+e\xe6cKyD\xbaGD=\x01=\xd7\xcfsD\
+\x15\x89\xc4\x14~4\x9c\x0e|\x8f\xe2\x03\x1f\xef\xe2d\
+q?\x83\xd71\x8f\xe4\xef\x8c\xcf\x04e\xb6@w\x85\
+7H\x04D6\xc4Z_\xb1N\x04D\xd22n\x0c\
+z\xa0d\xbe\xe7\xe9\xc9\x9a\xfcBq\xcc\x08@8a\
+\xa0\xd4,0\xb1\xb7\x9b\xf7\xb1`P\x19Fv\xef-\
+\xcax0\x809\x1f*\xc2\x90\x95\xf13\x81)Pu\
+\xf5\xa2\x93ar\xa8x\xac|\xc6J9\xf7\x83LV\
+\xd4{\xe4A\xf3~\x06r\x18\xc0\x90\xdf\xf8\xc6\x05\xe7\
+\x00\x15v\x06b\x94\x7f\x98\x1e\xa0*\xe5\xb9\x81\xc4\x00\
+\xea4\x91d#N\x0c&\x12\x89\x22&4r6\x04\
+\x96\xf4 E\x88V\x84\xc8P9\xe692 \x09\x90\
+\xe9\xd9dA\x1e\xb8\x1e\xe7\x04d\x82#\x19\xd62\xab\
+\xbe\x0f\xe4\x07\xc8\x09 lq\x023\x9e\xc9\xa8\x91X\
+!\xb1\xc3F\xb9\xb4\xde\xcf\xf3\xe2\xf9\xc5\xe7\x08T\x89\
+\x8a\x1f\x09\xa3X\xa1\xa7\xe2\xc7}\xa0\xa2\x1d\x13\x01$\
+\x14he\x09\x89\x1d\x97\xf5\xa3\x82\x0d9\x11\x9c\x01\xc8\
+\xc5\x91\x98a#G\x1f\x1b\x08\x18j\x061\xa1\xa1\xde\
+V\x02\x19g\x9b\x87\x8d\x97\xcc\x7f\x90E\xf1J=$\
+\x7f\x82D\xb7?3+dl\xb9\xd2tiE\x9a\x03\
+r\x87L)\xe4v8\x0cdzUIt\xd27A\
+\xf2\xa9P\xb8\xe3\xaeLx\xbb\xa3YE\x8a\x82\x0e\xb0\
+6\xf0\xe6&\xb3\xea{\xf5\xdc\xd90\xd9\xe0\xb8\x9f~\
+\xdeT\xfe\xb8\xef\xea\x81\x06\xba\x0d9\x19\xcf\xc3\xc7\x8b\
+\x1c8w\xd4\x98/\xb0\x86\xabw\xb1\x1d7\xcb\xa4s\
+we\xd29\x90\x17@\x18a\x9f\x07\xb9%H\xa5#\
+\x91 ;e\xfe\x89u\xd93\xf4\xe8\x10\xf3\xfc Y\
+\x13\xb2\xc0\xc9\xce\xce\x15\x92bA\xad\xb7\x91\xedw\xe3\
+\xe4\x16m\x9c\x13;+\xda\xbe1\xdaa\xb4\xfdh\x87\
+j}dc\xd7\xbcr\x19=\xb5\x10\xb8\xea\x84 \xe3\
+.\xd7\x09\x94^z\xd0\xd9\xb1\xfax\xd5\x1ava\xcf\
+v\x9e\xd5\x00\xbe_\x91\x14)p\xf2\x8a\x87z\xe3\xba\
+\xd3\xcd\xaa\x8dQ\x8e\x87\x07~\xe2\x08`>\xb5\xb7\x98\
+\x95D\xc8hA\xb3\xca\xe1U\x05\x8a\xc0\xd7\xe5 \x95\
+\x88\xf0\x0a6\xb2\xabV\xf1\xde\xb1$fX\x17r/\
+\xf16Bv\xac\xa2@\xe6\x0b\xd5>\x08y\xa3%z\
+>X\xf4\xe8\x1d\xd9#\x92Izz\x818;D[\
+\x8er7\xbfYI\x00x\x80#\xf22\x10\x01\xd9\xe1\
+\xfa\xa7ZwV\xab\xf4\xbfa\x7f\xb7\xd9s\xb2\x1c\xc4\
+\xf4\xb9\x83\xf5\xccr\xe0\xb6z\xbbzf\x9fOVU\
+\xe8H8\x09\x99\xe6\x1cT\x1f4K\xc7\xd7\xcdr\x0f\
+y\xe6>h\x9e\xe9\x13-$\x86\xbc\x12&\x07\xa7\xbb\
+\xd0\xacJ`\xee\xdeW\xc8\xbb\xbd\xbb}\xba}\xf21\
+Y\x81\xaaCz7\xfa\x92Y\xfay y?\xado\
+m\xfe\x97\x8e7\x99U\x15j\x91dz\xe0\xa6}\xbd\
+\xdd\xc8\xac\x8c\xb3\xe6\xe7fU/+\x95FU:}\
+~\xd3{\xcb>\xcc\xf8\xe6\xbcP\x05\x11\xf7\x82W\xa8\
+\x19\xd7\x0a\xc8<\x01r\x8aT\x17\xd6\x16\xd9\xe8@\x89\
+>*\xc1\xc8}\xaaE\xa3\xdb\xd0,'.z\x12K\
+[-\x8e\x94l\xa2q/\xec\x97,=\xafn]\xb3\
+\x22\xa38:\xc3\xac\x82\xca\x93\xc0S+Lw\xabY\
+\xd5\x93N\xab\x95\x1cQ'\xa15\xa6\x88\xb3\x0b\x14\xdb\
+\xef\xab \xf0]\x9blPZ\x03\xb2\xec\x9fq\x05\x5c\
+iV\xf5\xee\xb3O\x09\x09\xe3\xea(\xf4\xa8S\x19%\
+\xe0 @\x93\xaa\x83\xeb\xb2\xd3kM\x82\x9f\xc4\x81\xd6\
+\x13\x0f\xdc\x94\xc0\x06)\x02\x22\x06\xf9\xc0\xd1\xc7\xd4\xda\
+r\x83\xe4\xfb\xd4\xe2@+\x87\x17L\x14\xf0{k\x86\
+\xd4\x13\x5c\xeet\x9f\xb1}\xb2\xfa\x83y1\xdf(\xfb\
+\x1f\xa4w\xce\xb9\xa3D}\xe6R\xb0\xfb\xf5\xa1d\x1b\
+V\x08?\x90\x22\x22\xb5\xcb\x8c\x09\xfbV\x08\xa5-\xb2\
+\x95\xfdZ\xad&\xbe\xae\x0bq\xe3\xeb*\x88\xb4\xc52\
+\xcd\xb2\xb7\x22\xfa\xfb@P\x81\x14\x80{\x00N\x01\xf6\
+k\x10 \xd1\xef\xc6\xff\x0f\x95P\x0f\x8c\x85\xb4\xc2\xaf\
+r\xbf\x1c(=\xe7\x89\xdc\x1fHF!y \xe7\xf5\
+\x040~\xa7\x12\xfc\xee_S\xf9\x96\xff\x0f\xb9\xb6?\
+7\xf9g\xec\xf3\x1e \xe2G\x88k\x86\x96\x1c/\xcc\
+\xc0I\xc4|\xa7\x10\xa0\xf3\xc7_\x85k\xc3\xfdXZ\
+\x01\xf0KH\x04\xc0\xf9\x02\x02\x83\xf1\x8e_\xc0}\xe5\
+\xfc\xf0;I\xc4ARk\x89\xb3\xed\x0aW\x05\xc8\x19\
+WI\xa3 CB\x87\x02\x14\xeb\x97\x9e\x9b\xf7\xee\xd3\
+B\xc1\xfc\xa4`\xc4:\xcd|\xa7U\x80J=\xd7E\
+\x9c\x84\xbf@\xa0\xcf\xefc\x80\xccxe\xfc\x84\xc4\x81\
+\xfb\xf5S\x84H\x9f\x16\x02\xedH\xf6\x1e+\xfd\x91K\
+ &\x06b\xe0\x1fI\xef\xbd2\xa1cl]\x8f\xa4\
+\x86\x11\x19\xcf\xf53\x8eb\x9c\xc48\x04\x89($\xa8\
+s;p\xfd\xc4\x89\xfc\x833BjV\xe3y\xb8=\
+'\x07\xfb\xf97\xc8PD\xb2>\x90\x02\xe8G\x8a\x84\
+%C\xd6\x97W\xa5{\xbe\xaa2\xbeP\x16\xba\xeb\x1f\
+\xd0\xdc\xd5\xc0\x81\x0c\x8cJ\x1b\x15O.\x94\xcc9\x81\
+/\x5c\x00d\x16ac\xe7g\xc8\xe5\xa8D\xbdW\xd0\
+:\xe49\x98\xf8,4q\x01\xe2\xfb\xc88\x02\x95\xc0\
+qe\x81\xe5\xfb\x98\x08@C\xc9\x88\xfdM\x90\x17\x02\
+;\x1e$\x95\x01\x02W\xd8\xef\x19\xc8|\xdf\xd3!\xd0\
+d@3p\x18\xc0\x0c\x1c\x16\x0c \xf5d\x80\x08\xc8\
+\x99@\x05\x02\xdf_\xff\xf3!a\x13\xa1\xfd\xbc\x9e\x09\
+\x19e\x13gOOi\xf6*\xd1\xf2L\x08\x8c9\xf2\
+\xbcm\x9c<V\xb56D\xf9\x0a2\xa2,XF\x8d\
+\xf4Hu_X\xf85\xe1<\x81\xf4~-T\x11\x12\
+?\x0c\x5c\x06\x8cc&F\xc8\xb4\x91\xe1\xf6\xfb\xf6\xaa\
+#(\xfa\xe3\x0b\xa1w\x87\xfb\xcas\x8f-\x13@\x9e\
+HT\x052J2\x9b\x1e\xe0s}\x8c'\xc6%\x09\
+\x97\xc8!\xc0}c\xa3\xa4BK&\x90\xd6\x19\x02*\
+T\x0d\xf8\x1c\xbe\x87qL\x22\x8a\x8c<\x90YA\xf5\
+\x9c\xe3\x02\x88*P:\xe4k\xe8-\x03\xea\x8c\x5c\x1e\
+\x15^\xc8\xf3\xe4\x98\x22\x077\xf6\xc1l3\x93E\x22\
+#yy\xb6\xd2;\xc6\xb8' Ve\xcd\x1dn=\
+\x9f\xf6Wf\xd5|\xd1\x02\x9d{\x9c\xdfR~\xdf\x1c\
+kV}/\xe3\x9b\x0c8\x1b\x14\xe3G\x90\xbd\xd1\xa2\
+f\x95\x03\x0a)\x98\xa0\xa7\xdd2fe\x9c\x81\x5c\xa0\
+\x92\xec?S\xe1\x97\x0e6\x89\x01\xc8\xd1\xbc\xf2\xa5\xd6\
+\x09 \xa2N\x16Ge\x80\xf5P\xad\x1b\xf4\x18\x8e\xce\
+4\xabH\xba\x90{|Zr\x85\x04\x98?4\xab\x12\
+u\xac'\x90K\x02\x81\x16k\xf2\xd8\xfe=\x9b2\xe4\
+jY\xa5\xe13Z\xafj\x08#\x95\x8d\xdfg\xda\xcd\
+>P\xd8\xbd\xe2P\x11I\x92\x07T\xd6\xc3\xffd!\
+\x9dl\xb75S@\xbcD\x85\x04\x92L\x97;T@\
+/\xb5^\xfay\xe9\xfa\xa9\x9c\x909\x8f\x01&\x81\xce\
+`>\xb3R\xf1u\xbdq\xa0\xc3r\x14\xdb\x0f\x98U\
+\xf7\x8d\xe7\xa0\x1eb \xa9\x04x\xccK\xc8\x183t\
+\xf4F9\x8e'\xc9A=G\x01\xfc&z\xfd\xc2B\
+\xa8\x5c_X\xb9s\x0f\xfbl\x15\x92f\x8a \xe1\x03\
+\xb3t|\xce\xacb3\x9f#\xd9\x9bT\xc1\xda\xb8@\
+!i\xfd\xeb\xbe`VHF\xbb\x07\xcd\xaaV$%\
+\xc0\xda\xfd\x93\x1d (\xf1\x06\x82l\xa7y\xdb\x9e\xd2\
+~\xa75\x12\xc4\x0f\xb5\x1b\xb6\x1b\x96\x0a\xee`\x1d\xb3\
+t\x5c\xc4,\xfd\xfe\xdf\xeds\xedsy\xfd\xca\xeb9\
+\x95c_\x07A\x80\x80\xacy\xa9\x99\xdeL\xaf\x1c\xef\
+\x1fI\xed\xe4\x9e\x9e\xd4\xd0\xe5\xd0\xa6\x0b\xb2\xbf\xc8\xe8\
+m#K\xf4\xccc\x96~~\xb3Yz\xdd\xabf\x15\
+\x04\x176\xf33\x9a3Mud\xf0\xf9\xc1\xbe\x83\xff\
+I\xc7\xb7\x9b\x95V\x14\x87\xd6\xaa0\xe2\x8e\xb7\x02\x1d\
+\xc3\xc5dd\x0c\x10j\xb8^\x84\x00\x02\xd1\xe1\xd0r\
+ \xb3\x14\x18@\x04\x10\x18\x89\x15\x9c\xf3\xf7uY\x0e\
+\xfe\xf0N\xb3\x02\x85\xef66K\xbf\xff\xc9\xf0\xa7C\
+\x93?\xbc\xcb\xac\x9c\xa7\xe1\xdd2\xe2\xedZ\x05D\x9a\
+\xc7\x19r\xbfNU\xa1T`\xe5\x01\x81\x1c\xc4\xcc*\
+~\x5c\xb5\x7f\xc1\x0e/\x95\x00Z\xba\x1c\x92\x0e\xe4\x9f\
+\xc4\x15\x81\x00:\xed\x86L\xb9\xa5 \x97|\xfe\x8a4\
+\xaf[\xdd,\x1d\x1fI\xf6p\xba\xae\x1d\xcc\xd2s\xf9\
+\x99Y\xfay?3\xb5\x00M+\x89/8CF\xf3\
+\x99\x15\x95\x0aOp\xd1\x12@\x05\x8d\xfd\x06\x84\x05\xa4\
+\x82\xcc_8=\xe0\xac\x10\xd4~\xf4+\xb3R\xa1\xf6\
+\xd6\x0d\xb5`x\xe0/\xe4\x8b#\x82\xa4\xd2\x03\xd7\x8d\
+'@L\xd5c\xf1\x0aQc\xf5\xcd\x0f\x09\x9am\x01\
+\xf6\xbefe\xdd\xf7\x84\x05\xadb\xec\xe7\x90\x92*\xf1\
+K\xeb\x8e\x07p\x90)\xc3\xa2O\xe0\x88\xca\xc0V=\
+\xe2\xc0\xc9\x02\xaf\xcc\xb4\x97c\x99\xe9\xe3\x90<\xef~\
+l\xc8\xa1\x9cF\xdc\x22'*2\x02,\xdd\xbb>`\
+&P%\x11\x00\xd9\xdd\x9e\xfd\xfa\x99\xc3\xaf)U\x02\
+\x87D?\xfb,d\xdd\xf8\xcb\xb3\xca\xaf\x89\xea\x06\xf8\
+\xa1\xf8\x87\xec\xeb\x0a\xc0]\x05B\x09Z\xf7O\x08\xc0\
+\xb4\x8f\xb3\x8fu\x0f\x99\xe5}l\xff,\xc3\x08g\xc9\
+>\xd9Ja\x02\x0e\x14\x12\xca\xf8?\xc8\xc3\xd2\x22\x19\
+\xd9\xf2\x99\xbfT\xb8\x99\xffj\x05r\xf2TCp\xfd\
+\xa8\x22\x07$0\xe4\xfd\xdc/\x0a\x0d\xf2\xa3\x9d\xe3\x08\
+\xee#\xc8\xf7 \xeb\xe3\x08\x14\x9f\xf7\xf3\xfcIP\xcb\
+/\xa5\xa5\x8b\x80\xd7\x91\xa2p8\x91\x08\x00\x91\x0a\x12\
+\x82\xe7\xc2}f\xbfg\xbdD\xc5\x80\xfb\xc2\xfb\xb8.\
+\x12u\xac\x8b\x8a\xcf\x1c\x89\x10I\x10\x89\xa7\x1479\
+b\x85\x84\x03\xe7\x83\xff\xf1\xb7\xccBQ\xfc]\x0ao\
+</\xe2\x86\xd8ZN<T\x90\xd3\x90\x08NT\xad\
+\x8b\xdc\x00\xd3\x83\x9c{(\x90\x15\xc7g\xa2\xca\x9c#\
+\xc2\xb8?\xc4\xe1\xc4\x87\xb1\xd5\x80\xfb\x00\xe2V\x1c6\
+\x14F\xbc`\xc8<\x0b\xfe=\xfb\xd5x>\xcd\x19\x81\
+\x8d\x9f^\xfd\x97g\x96\x1d\xf3\x00\xca\xdc\xc4\x7fW\x15\
+I*\x9fV\xa1^\xb9\x0a\x88\x98\xc0\xf40Ra\xd5\
+B\xdb\xcciV\x91\x94Q\xd1ga \xb0!\xa1@\
+@H \xc4\xcf@#\x16\x96\xce==u\xdcHz\
+Q\xe8\xf5\x91\x5c\x95\x9f\x07\x15[\x16\x22\x0647\x8e\
+\x1bO\xe2\xa0d\x98&p\x1d8\xa7\xc2F\xaa\xc4p\
+\xff\x0aY\xddDy\x0f\xfe!\xd7\xb7|_\x01\xf4\x0a\
+~\xe8\xf1\xf0\x16\x06t\x91c\xc0H\xa0Ib\xe0)\
+\xfd\x9e\xf3\x8d\xa4\x14\xcf\x87\x80\x16\x87\x98\x00\x92\x80\x9d\
+\x89O\xa0n\x15\xc1\x05+\x12\xc3\x7f\x052C\x12\x17\
+\x9c\x17\x13\x8e\xf3%\x80\xe5sy\x9ez\xde\xc9\xed\x9a\
+\x92\x11)82\xdc\x0f\xb5B8\xf2@\x15S\x0f\x18\
+y\xee\x0c|\x9eO\xcc\x14FN\x00\xc6\x09\x13u6\
+\x8d\xdf\x19\xce\x0d\xd0\xb3\xce\xabU \x8d\xf1>0\x8c\
+\xa4\x85\xc8G\x91\x88\xa1B\xcfBA\x80\x15\x9f[\xbc\
+O \x0aP\x09\x00\xe9\x108\x12\x9c\xf4P\xac\xe73\
+e\xd4Y8bF2\xea\x89\xb20\x90\x00\x83L\x86\
+y\xa8qO\xc5\xcceP\x04\x09o\xee3\xabz\xc0\
+\xd5;J\xef\xae\xf76\x02\x85c\xc3\x85\xbc\xe7\x08\xb3\
+J\x1f\x98\x00\x9f\xeb\x84\xed\x97\xfb\x0d\xc9\xa1\xc8\xf2\x1c\
+\x12/\xe8\x1f=\xe1~\x1e\x81]\xbd9\xcc\xac\x92\x8b\
+\x94\xe3\xee\xeb\x13\xe3\x00Vht\xc1a!\x86\xccL\
+\x0b\xafW\x1e\xd1!\xa6e\x81\xf5\x8d\x04%\x09\x16A\
+f\x9dkD\xea\x0b\xb02#{\x87<\x9e\xd5Os\
+\x05\x15\xc4\x02\x15A9\xa8^\xb9\xa4r\xaf\x8d\xb5\xf9\
+\xabY\xd5R@\x225@\xc9<\x90&\xe1\x81\xc3\xc2\
+\xfaC\xef%d\x8f\xeb7\xeb\x99\xaeyr\xe3s\x05\
+\x11V\xec\x9c\x98\x9b;\x07\xaa\xb3\xe5@\x95\xe7 \xe8\
+5\xaa\x0c8\xdc.\xc3&$\x83'\xf6DV\xe5\x90\
+ic\xe5\xdf\xa7\xa8#t;\x9bU\xeb\xf1G\xb3\x8d\
+5\xc7\x98\x95\xca\x15\x811\x01\x9e\x93\x92\xd2\xfa@\xef\
+\xad\xbd\xefX\xdd\xaf\xbfT\xfa\xf6_7+\xa4z\xae\
+V\x00\x12\x80q\xaaV\x00\xe4\xce\xbc\x02\x0dI\x96\x1c\
+\xcd\xf1\xc3\xcc\xaa\xc0\xd4\x98i\xd6\x90\xe3b\x95\xa7\xff\
+3\xab\xd4[\xe6M6\x8f\x12G\xcfT\xb2y\xfa\xd9\
+\xf7mZv\x80\x14\x1b\xf4\xd9zm\xf74\x13\xa9\xdb\
+g*\xb22\x80^\xb0\x8c\xcbq\x87\xfc\xcd[T\x8c\
+$\xf1*\x05\x9e\xcb\xab\xc5\xe42\x91\x0anRZ\x0e\
+\xda3\xcd\xd2}\xbe\xc8,\xfd\xbc\x8dY!7\xc3\xa1\
+\xb6:\xbdU\xea\x87\xc7\x98\x95V\x92\xf6\xf4\xf6\xb4\xd6\
+\x10\x1a\x874\x876\x87\x14\x99I\xc8\xe7\xd2\x1e\xdd\x07\
+\x04\xab\xf4\x09\xabv\xa7v\xe7v\xe7\xac\xfb\x9e[M\
+\xc66\xea\x13\xfdTV\xbbg\xccJ\x0b\x8cW\x0cg\
+5+\xeb`\xf7=\xb3t\xdc\xd4,=\x9fs\xcc*\
+\xb2b\xb8\x83(x\x10`)1\xe1\xea\x1a\x90\xbc\xe9\
+\xbey@\xc6\xbc\xa2\xd7\x97\xf5\x17\xc7\x1a\xf6v \xd8\
+_4\xab\x9e\x13\xe4\x94J\x98tK&3\xd2\xc3\x0d\
+\x87\x1b\x0d\xad\xe7\xfe\x09\xb3\x12\xd0t/\x98\x15\x88\xbd\
+#\xa3\x84\xcc\xca\xe4\x87\x17\x95\x0an\xb7\x94\x99\xc6\xcd\
+2\x0a\x10\xee\xa8\x1ce\x12\xd3\xec\xab\x04\x1c\xe8\xb7\x93\
+\xd0\x96j\x06\x1c\x0d\xbe\x8e\x12\x80l\x90\xc2\xee\x0d2\
+R\xa5\xe7dQ`\xe4\x95\xec'\xcd\xd2\xf1w\xc9\xde\
+\x92\x8e\xff2K\xd7\xf9\x9aYz\xde\x0b\x9a\xa5\xe3\xd5\
+f9\xf1\x94\xacj\x11\x10\x89\x9d\x93\x1e\x92\x90\x01\xd2\
+\x8dz\x82\xee\x8b\xb70\xd1\xe2)\xae\x14'g\x83S\
+\xe3\xbe\x9e\x0c\xcd\xd5Y\x14p\xbb\x7fAk\xe9\x0ef\
+e\xfe9\xe2U\x08\x0b\x0f\xb8\x90'\xc4?\x92_\x9b\
+!\xe9\xef\xaft\xc8\x85\x08s\xbf\x81}S\xfe6\x1c\
+&\xdcw\x12U\xc8`\xb6\xd7\x98U\xe3\x17\xf9F\xed\
+\xbb^qV\x0boG\x86\x93\x00\x00 \x00IDA\
+T\xc0h\xbb\xd1\xb69\x01t\x9b8E \xfd=C\
+\xadRj\xed\x18;O\x81*\x08\x15\xf6\x0b\x12a\xf8\
+a\xcbh\x7f\xc6\x8f\xc2\xdf\x11\x02\xcf\x03\xce\x1fd+\
+\x05A\xfc\x0e>\x97\x00\x1a\xf2f\x91w\xba\xdc!P\
+w\xc8M/\xea.\xee..r\xb2\xa33Gg\xe4\
+\x04\xb0\xa5\x9dw+-!\xce\xdd\x22?\x9c\x04\xbe\xfb\
+\x85$\xc8$\xe7\xc9\xfe\xea\xe7\x83\xdfH\x81\x89\xc4\x04\
+\xfbf\xe06s\xf2L\xad\x83\x8e\xc4\xa3\xd5\x82\xf5\x01\
+?\x8c\x16\x0e!\x11\xbcb\x0e\xd2\x01\xa8\xbd\x8e\xde\xb2\
+L`MO=\xf3\x18\xbf\x90\xf9H`)n\x0a\x90\
+q\xceQd\x5c\x11\x17Tj\x1e$\x18\xf0\xc7@Z\
+\xd2B\x02\xf2\x16\xf2@\xbe\x87\xc2\x0a\xcf\x93\x82\x15\xdc\
+P \x03H\x040Nhu\x88\xfe2\x08\x82(S\
+\x88_\x1f\xe5Xi\x91\xb8G\xe7\x1f!\xf7\xc4c$\
+V\x08\xc0#\xf7\x1b\xe3O\xad>\xfe\xbaH6\x18+\
+\xfd\x11)\x10\x13\x01\x90\xfa\xaa\x15\xcd\xe3\xc2@Z\xee\
+\x09\x12\xae\x97x\x9c\xc2\xf5\xf6\xd9\xca?\xfcv\xe2\x85\
+\xd8\x0a\xa1\xf15\xee\x17@\xcf\xf44\xf5\x1eA\xaa\x04\
+\xc4\x9f\x05\x9d\x8c\x22\x01y\x9d8x\xf9\x0d\x12\x09\x5c\
+\x00'B\x86\x18\xf252Kd\x9a\x03dy\xa6@\
+1Vty\xf0l\xa0\xf7i\x22h\xa3\xf5^\xf1H\
+\xa6\xc6\x06\xc1\xf53 \x22\x99\x03\x90-H2\xf8G\
+\xc5\x93\x9e\x1f \xe7\xb3\xcba\x8e$ l\xfcL<\
+\x02\xde\x05t\x1f\x05\x15L\xdbO\x0f\xe1%\xc0\x9f\x1a\
+d&X\xa0\x08\xd8\x9f\xd1\x91\xeb\x223\x06\x84{]\
+}\xce\x14\xaf\xfc\xf7Pjz\xf3\xa9x\xab2\xe3\x1b\
+\x1b\x89*d\xd1\xe8M\x9c-dh\x9f\xf5\x16\x92,\
+S\xe3\xe7]\x12\x10\x13!\xf2\x8f\x8a\xe4p\x19}\x1e\
+\xe3\xaa\x9c_$\xc7\xe8\xaf\x97\xfb\xf6\xa0\x16\x927\x0b\
+\xd2\xfe\xa0\x12O\x1f\xe8\x03\x92\xf4\x8c'\x92\x12\xf2\xfc\
+\x22\x17\xc1d\xac\x9a\xf1\xf9?\x1b8)\xe6U\xc5\xe4\
+\xde~\x83s\x8e\x06\xee\x1b\xcf\x15\xe8'\x0b\x15\x95w\
+\xc65\x90*\xce\x93\xcf\xe7}\xfc\x9d\xf9\xc1\x86\xc2\xf8\
+\x0f\xbd<3%\xacbb\x22\xb2\xfa\xd3R\x13{\xf2\
+\xb8\x0f\xdc\x7f\xf4\xd9\x09\xcc\xa9d\xd2\x93\x0d\xe4Y\x01\
+\x11\x0e\xb1\xf7\xce\xb2A\xb0\x11\xbd\x90\x05\x1c\xcb|\xc6\
+aPE&9\xf6\xc9\xaa\x8a\x0e\xa4\x84l\xb0\xf4.\
+\x82<`\x9e\x91yf]aa\xa4\x07\x93\xde7\xe4\
+\xd3\xa8h\x91\x11\x17\x14\xd5\xc9tX\xd0\xd9\xb0\xa8\xec\
+\xd2\xe3)\xb6\xdf\xee\xc3fU\x85@\xe4A\xb0\xae\xbb\
+\x8c\x9c\xe4\x84 'tH\x22\x8e0,\xf2\x5c\x97\x12\
+y\xed\xacf\xa5\xa7\xde\x11\x01\xb42P\x01\x82\x0cK\
+\x1b\x9a\x070$4Yw\x81\x80\x92X\xe5\xfb\xd8\x90\
+\x91\xbfSE\xd8\x03x\xa0\xfa\xf4|\x03\xf9|PH\
+\x17*\xac8Jd\xee\xe7\xd5\xfc\xc7\xb1\x03\xa2*\xa8\
+xs\x8dY\xc5\xb5`\x1b\xe1@\xad\x16\x97U-)\
+V9\xdb;\xdd\xef\xb5\xba\xf7uki\x83[T*\
+\x0b\xfbV\x81\xd4\xdc\xb9\x09\xac\xb4~\x08\x89\x92\x1cY\
+\xb3\xb1\xf6~\xb3\xf4\xfb\x93\xcd\xaa\xd6\x03\xb1\x95C\xb6\
+\xc38\xb00\xd3\x02\xcd\xe6A\xb3\x8aDR\x89#\x9e\
+\x07\x01\x02\x01\x8d1\xcfd\xee\x19U\x18]\x0d\x82\x8a\
+#\xeb\x04\xeb\xa4\xcd\x8e\x87\xb4A\xbf\xaaJ\xe2*r\
+\xd4\xaf\xa9ZR\xcc\xed\xb6\x9e\xf7\xdd\x92\xed.\x87b\
+Fa\xcfw\x12\xac#\xcd\xca\xfc\xa2\xe7\xd5+\x99J\
+0\xb9CC\x85\xc5:I\x7f]\x9d\xa7\xad\xba\x8f\x95\
+\xf5\xbf]\x22Yz\xdf`e\xb3\xdc\xdasI{I\
+\xd1\xa1o\xf6\xec{\xc7\x93s\x9e\x03\x9dnU\xb3\x0c\
+\x09\xde6C\x825\xee\xb3\xac\xdb\xb6e<u\xa7\x9a\
+\xa5\xcf\xd9\xde,\xfd\xfc\xdb\xee\xb6\xee\xb7U\xab\xd1\xe6\
+\x99\xce\xce\x12\x15\x99\xf3`p\xa9YAP\x11\x08;\
+\x84\x1bvv\x05\xd4$\xbc\xfc\xfaI\xe8\x9d \xe4\xd0\
+\xe9J\xe8\x9c\xdc\xcf\xf3\xc1\x1afU!\x83D\xa5z\
+\xe3\xbd\xe2\xcd\xf9\xfd0[\xa9@Z\xab\xc6{\xab\xf5\
+\x84B\x85z\xe8\xe1J\x00\x19\xe5\x01\x82\x10O\xdd\xb7\
+\xcd\xd2qN\xb3\x9c\x08\xd9\xb2\xdb\xb2\x22\xd9S\xe5\xd8\
+\x11*j\x95\x19\xfe|x\xc9\xf0\x92\xdc\xf2\xb1@\xb7\
+@%\xeb\x06\xd7\x84*\xdb$\xd0\xba\x81Y\xc5\x16\x8e\
+\x83\x0d\xb2\x8a\x0a:djj\x8d\x18\xfb\xba\xa0\xe1$\
+\x8cE\xae\x09K:\x95\xee\xe6\xa0\xe6`\xd3)\xcf\x94\
+\x96i}l\xae\xe8U7\xfc\xbe)\x11\x98[\x1b\xd2\
+z\xd9\xddbV\x12N\xc3\xd5\xcc\xd2\xb8\xf8\xa2YQ\
+\xf5\xf0y\xc3\xba\x8d\x0a\x86\x12z.\xef\x09\xfb;-\
+\x0a$t\xdfc\x96\x8e;\x9b\x95\xcf\xf1D\xb0\x12\x00\
+\xa3cF\xc7\x8e\x8e-2u\xc8\xf19\xf4\x9c}\x02\
+\x95\x9bw\x99U\x81\x06\x95zd\xfe$\xcf\x96\x91\x14\
+/+\x81\xbbH\xa9\x00\xfa|\xa4\xf2\x0c)\x1f\x81\x15\
+\x01\x15\x90o\x90j\xdb\xf4\x09\xd3n\xc7n\xa7n\xc7\
+j\xbf=2[9\xcfm\xb2\x15\xff\x86q\xfb\xd7\xec\
+Y\x8d\x8df7\xab\x10\x9b\x90\xef\x01\x91\xbf\xa4\xf7\x07\
+ \xed\xf4}\x99\xfd\x17\xbf\x85\xc4\x03~6\xf1\x02~\
+\x12\xf7\x87\x16\xa3-\xcc\xd2\xe7naV!(\xb5\xaf\
+x\xc2\x1e\x04\xd8\x0df\xe9\xc7\xd3\xcdJ\x80\xdc\x1c\xd2\
+\xef#\xdez\xf7\x97\x9eLq\xb4\xe9\xe8\xc3\x19\x89\x03\
+w\x89H\x11]\x95g{\xb3r?\xfc<H\xd4\x11\
+_(@vD$\x85\x8c\x88\xa8\x04\xfa\xaeB\x90W\
+\xf8\xe10\xe0\xf9\xe1\xaf\x13\xf8\xe1/\xe2\xa7\xf1>\x02\
+p\x02~\xd6\x0b\x12\x0e@\xf0I\x88\x83\x00\x80l\x0f\
+$\x13-\x09\x8c#\xfc>\xe2:\x9e\x1b\xfe\x0e\x09O\
+\x9e3q\x07\xcf\x07?3T\xd8}\xdd#\xf0\x7fv\
+\xa2\x1f\xef\xa4\xcf$\x14\x09p\xa3\xdc!~\x22~2\
+\xd7Cb\x84\xf3\xe0\xfb\xe1\x0e\x90\x9f\xe6\xdcL \x10\
+\xf0\xb39O\x90\x22\x8c_\xbe\x9f\xfb\x13[\x0d\x88#\
+\x19\xbf\xf8\xcb1\x01@\xa0\x1d\xe3\x0b\xfc\xd5\xc8\x91W\
+\x90\xd5\xfd~C\xbcL\x01\x9d\xcf\x8f\x1c\x07\xf8\xf5\xb1\
+\xe0\x17\xef\x1f\x9f?>Q5n<\xe7I\xfe,\x08\
+\xee|z\xa0M\xe5\x18\xc3B\x88\xdc\x17\x0e;'F\
+\xc0\xceq\xde,\x08UZ\x01\xf8\xfddd\x09\x93\x91\
+&0\x91&\x93M\xe0\x81\xf0\xfe\xa0+\xc9\xf7\xa6\xc7\
+\xdb\x93\xae\xad+\xa85\xff\x08\x80\x80|\x01\xcd\x87\xf5\
+9\xb2r\xf2`\xa8\xe0\x89\x0d\xdb\xe5\xba\x16P\xc0\xc1\
+\xf9\xc7\x81\x8f\x03@\x80G\xe6r\x15Aw\x17\xd6\xc2\
+Yd+\xc8$MLx0\xf0\xb8/\xcf;\x19\xe3\
+D\x99\x89Br\xd7\x0f@\xae'f\xc8\xa8\xf4\xc3\xae\
+\xcf\x84\x0e\x01\xa2o\x08T\xe4\x0b\x1b\xe7\xc4V\x02~\
+&pfb\x13\xb0\x12pr\x1d\x9cg$\x7f,\xa4\
+\x16}\xc2\x00\xd9;\x12EA]\xc1\xc7\x03\x9c\x0f<\
+\x0f\xeeG\x9c\x80\xb1\xe7\x87\x0c\x9f2\x9b.\xeb\xa7\x04\
+\x87o\xa8<\x9f\x97\x03\x8b>\x10v\x02.*\x03p\
+k\xc0\x1d1\xcd\xefO_\xe1\xa3\xf5\x80\xef{2 \
+6\xb8\xaf\xcc\x1b\xc6!\xf7\x93\x85\x82\x80\x17.\x016\
+\x5c\x16n\xfe\xb1\xe0\xf3\xbe(;HB\x06h\x12:\
+\xd7_\xc9\xe6\xec\xcc.\xdfFo+\xe7\x05\x19\x0d*\
+\x1eK\x9bU\x1b\xfd\x1d\x22'3U\xe6\xeb*H\x9c\
+\x12\x0d\xddQf\xd5\xbcc\xbe\x81p\x10\x19\x98op\
+\xbc\x0e\xf219\xc4\xb0\x89{\xa0\xa7\x8d\xaf\xb9\xde\xac\
+J\x04\xf0<\x84dp\xd2D\x05\x0a\xae\xe7.G\x91\
+\xc0\xb7;\xc5\xac$\x02\x80\x9c;\xe2\xe3\x80\x1e\x22\xef\
+$9\xf4\xc2\x92\x00\xa2g_\xa4q\xcco')\xfc\
+\xaeY\xa9,y\xe2\x80\x8a\x12\xf3\x00\xd9*Ul@\
+h8\x12\x086`\xf5\xb2{B\x8c\xcfa]\xd93\
+[\x81\xc8\xab\x92N\x05\x1d\x12\xa4fZ_\x01\xf7^\
+mH\xd1\x90i$\xe1\xa1@\xba\xd9\xd8\xb0P\xe98\
+G\xb27U\xa4k\xf9_:^l&V\xf6m+\
+\xb9;\xb8>4\x7f\x08\x5c\xc6\xbe\x9cm\xac}\xd8L\
+-%\xe6\x10mf&\x87\xe9\xfc\x12\x004g\x99U\
+\xbd\xe98\xd2\xb0\xc4\xa3j\x007\x80t\xc1\x9d\xfd\x5c\
+\x89\x05\xaf\xe4\xcaA\xecn0\xabX\xf9\xe5(:)\
+$\xf3N\x15\x1b\x97';\xcc,\xbdn\xb6\x1e!\x91\
+\x81\xc1[\x8aK\xe0\xb0\xaaG\x19\x9dk*\xcb'\xf7\
+=\xdf\xc3\xdd\x92\xed\xae\xca\xe6'*\xf2/\xd3o\xff\
+Giyk\x8eN\xf6\x8d\xb2~t\x9f0+\x08\xb5\
+\x0c\xdd\xbeRl\xe0\xafi\xfd}\xa4\xec\xdf\xae2!\
+\xce\x99\xc1\xa9f\xe98w\xb2\xf4\xf7\xb6\xb3\xe6\xd8t\
+\xfc\xb5Y\x95\x08\x15i]\xb7\x87Y\xb5\xce\xe8\xbe{\
+`\x0e\x19\x97Z$\xdaM\xcc\xd2\xf5mgV\xd6S\
+\x9f\xbf\xcb\xa6Y\xb9l\xc5\xbd!rO\xbe\xdf{\xc7\
+w1\xab\xe4\xf0\xe8\x91%\xd0$\x90\xa5\xc7W\xcf\xc3\
+\x03\x83\x1f\xaa7\xf7\xed\x22\x07\x9b\xdf,\xb3\xe2\xe7\x9e\
+\xef\xee\x00\xb3\x8a;B\x89\x11\xe4\x1e=\x11\xa5\xc4\x1a\
+\x88\x04*\xbfp\xa0x\xe0\x16\xb8\x83\x08LS\xf8\x9b\
+\x91$\xdd\x91f\xe98\x8bY\x91\x95\xb3:\xa7U:\
+\x1d)\x80l\xe0'\xb4>=\xd0\xdd\xd7\xdd\x9f\xe5F\
+\xc7Ln\x14u\x09\xb8\x00\x5c\xae\x8c^d\xed\xf7p\
+Q\xb4w\x99U\x899\xd4\x14\xd4\xb2\xc4z\xe1\xe4h\
+T\xa8A\x86.\x93k\xc0e=?\xa0G\xc0\x8c\x16\
+0\xab\x02\x19\x91\x81:BD\xba\xef\xc3\xbd\xcc\xd2y\
+|9Y\x1a\x1f\xc3\xe5\xcd\xd2\xcf\x0f\x98\x89Sc\x87\
+\x22\xebI\xcf\xb7\xef\xe3\xac\x07$&\x08\xe8\xe0\xc6\xd0\
+\xf3\xee\xe6\xee\xe62\xd2\xc8\xd1b\xa3E-\x01\xeb2\
+\xa28\xf07\x08j\xcd\xf3! \xa7\x22\x0b7\x0d\x81\
+\x12\x81\x18\xdc\x02T8\xd9\x0f\xad5e\xce\xaab+\
+\x12;\x97\x17e\xbd1\xb9\xc9\xab*\x92QK;\xee\
+\xad\xf94g%\xb3h\xf3\xfc\xe8\x8c\xf0\xf8`Fx\
+,0Z\xd0\xeeowgwWwgN\xdc_\x90\
+\x13\xf7\xa8\x83\x5cn\x96[hzD\x90*\xe4i\x14\
+\xad\x90\xc7\x11\xcf\x07\xd2M\xf6\x1f*\xb4\xfcS`\xea\
+-N\xf4\x1e3\x8f\xd4\x82\x94\xc5\x02wy\x83B\x04\
+~;\x89i\x05\x9e\xcd7\xcc*\xbf\x8e\x00\x9c\x80\x87\
+\x7f\xf8]\x22\x87\x8b\xea].{\x18\x02!'O\xd4\
+\xfa\xe12\xc4?6\xab\xfcZ\x12I\xc8E\x8e\x9bU\
+\x09w}\x0e\x885G@\x0ba\xe7\x09\x22\xe4\x0eI\
+\xb0+q\xe1l\xfd\x8c#\x8e\xdc7\x12\x01\x81l\xdd\
+\xc9\xf3x\x1d\x88\x04*\xff\x04\xb6\xb4\xbcP\x89\x07\x22\
+\x8f\xdf\xc4\xe7\xe2\x8f\x83\x08TB\xd5[\xe7@\xfe\x11\
+\xe7P\xc8\x8a*'z\x1e\xcebO\xc0\xcd~K`\
+]\xb7\x92O\xa9~\xcf\xcf<W\xe2\x86@\x1a\xee\x01\
+;\x09\x11\x12\x1e$\x02\x1eW\xfc\xc0\xfbl\x94\xcdR\
+\xed\xc7\xc4\x1d|\x0f\xef\xe3~\xf3\xbd\x04\xfe\xa5p\xd9\
+'r\xf8\xbe\xc8\xe9\x16Z\x07\xd8\xbf\xfd<\xa7\x84B\
+\xeedr\xf4\xc4_\x11A\x8f\xdf\xc8\x91\xf8,\xb66\
+\x83\x0c\xe0H\x9c\x84\xdf\xcf\xfb\xb4>\x8dg\x95\xe3\xb3\
+\xaa\x1bby\xcae*\x07\x92\xcc\xb9\xa0\x82\xdeSl\
+i\x80\xe5\x0aKq\x0e\x17\x86\x15\xd4\x9f\x0b\x22\x90\xc7\
+Q\xe7\x02p\x0c\xb8\x915g\xc0B\xd5\x91\x1e@e\
+t\x1c\x92\xce\x0dbA!\x90!\xc0&\xf3\xaa\xc0x\
+\xa4\x07\xda\xac\xaa\xef!P\x8a\x81V\x80r\xfb\x03\xa0\
+\xe2\x0f\x09\x1f\xd0a\xce\x93\xc0M\xd7\x9b\xb6\xb5\x1eb\
+\xb5\x90\xa0\x82\xcb\x09z\xcayG\xf6~\xc8\xa2\x96U\
+e|5-|T\x8ab\xa5\x96\x07\xc9q01\xb3\
+\xe3\x09\x84\x9740\x99h\xdc\xff@^\x01\xc2\xc1\x03\
+Q\xee\x0f\x19\xdc\xc8\x9a_\x02\xe9\xfe~q\xff`\xd3\
+\x9fK\x03p\x102[B<x\xab\xc4\x8af\xd5\xc0\
+'\x00\xe5\xbe\xf2<I\x10\x90\xc8`\x02q\xbf\xd5\x9b\
+\x98\x9eN\xffyd\xdeB\xaf\xcdL*\x09\xb1\xa7\x9f\
+\xcc\x1f\x0b\x01\x815\x09,\xbe\x17\x84\xc43\xde\xf2\xd1\
+\x07~!\xc1\x04)\x13d+~_yN\x91\xd4\x04\
+\xe8\x0e\xe7\x13\x91\x11\xf1\xfa\x0bYa\xff\x9c\xc8\x98\xe3\
+\x90\xc3\xaa\x0f\x04\x9dy\xc7\xfd\x05a\xc0\xfb\xa3\x9e(\
+\xcf\x85\xf3c\x83\xe7\x1f\xec\xac@\xddV7\xab6p\
+\xc9\xf8\xf8BI\xe2KH\x19g\xa7\xdd\xc3\xacld\
+\xc8\xff\xf9\x86C\xaf!\xe3\x03v\xf3\xe8\xc0S\xd1\xa6\
+7Pr7@\xb0\xd1\x01w}u\xd4@\x80l\x1e\
+lVA\x13\xc5\x0aM\xc5\xcc\xe5d\x08 %\xbf\xe7\
+2}\xfb\x9aU\x819\x0e\x00\x09\x06Z\x85\xb8O8\
+r\xea%\xf4\xcc>\x95\xb8\x00\xed\xc6\x01!\x80l\x1e\
+0\xcb\x95\xb5d\x95J\x80\xc8~|~\xd1+&d\
+\x85sO\xa0\x92 U\x04Z8<!\x04\xc9\xccn\
+}\x22\xa49\xc3\xac\x04<\xa8.\xc01\xd0\xfc\xbdy\
+\xb4\xf9{\x15X\xabW\xd6\x18\x072\x84]\xdc\x06\xb9\
+%\xc0\x10$G\x99\x95^\xf7\xccB\xff\xd1\xeay\x82\
+\x00Poo\xf3m\xb3\x8al\xd2:\xa7/U\xe2m\
+\x89\xdc\x0a\x92[$\xda5\xdb\xb5\xda\xb4\x8e\x0dV5\
+K?\x7f\xc4\xac\x0a\xf4\xa9\xe4#'I\xe5\x8f\x80\x9d\
+@\x19y@UfA\x92\xe0\x10\x02\x91D\xb6\xd0\xa1\
+\xb0\x8cW![\xba\x97\xcc\xaa\x04\xb3\xe6es\xa0\x99\
+Z}\x1e)\x5c\x04.w\xa7Jr\xbemM\xd5s\
+\xaa\xf1\xd1\x9elV\xddOZD\xb4Nt\x9b\x99\xa5\
+\xe3\xe1f\x0a(\x8f\x12\x8b\xfb\x1eE\x97\xde\xb9\x0cl\
+\xf5K\xf3\xbc\xdd4\xd9&\xea\xfdO\xf3\xc64\x1cL\
+\xc5\xa1=#\xd9\x999\xf0\xcd\xfb\x99\xeb\x9c\x03)7\
+\x88\xfa\x92\x15T\x15}p*w\xaa\xccu\xcb\x99U\
+-/\x90\xe7\xc1\xb6.$\x0dH\x8a\xf6\x13f\xc5\xa1\
+mn5K\x9f3\x9fY:^o\x96\x8e\xab\x99\x15\
+d\x8e;\xec\x22[s\xb6v\x917\xb6_3\xab\xd8\
+\xf6) \xe89\xb6\x0b\x99\xa5\xe3\x9b\xcc*\xb2O\xc9\
+\x0d\xba\xfa\x04=\xe9\x22\x15\x03j\xecPZ*\x98T\
+\xda@*A\xc2\x8a#\x07\xe2j\x15AS9\xef\x7f\
+\xf6d[\xbe\x0e(p\xf1\xca\x97\x12\xb4\xec\xcf\xdd/\
+\xba\xab\xba\xab\xf21Yi-\xf1V\x00z\xd5\xc5=\
+\x90U\xd7WW\x02\xec\xd4\xd2\xa22\xf8J\xb2/\x97\
+\x04\x18\x89\xc3\xd1\x8af\x95\xa3\xcb\xfe`\xc0\xd8\xdf\x95\
+\x00\x172=G\x0e@*GBd\x81dFNy\
+\x7f\xb2\x07\xaa\xfb*\x12\xbb\xe1\x85f\xe9\xe7\xe9='\
+D\xfbw\xb3J\x05A\xf3\x9a\x82\x95\xcb\xcd\x12\xf0h\
+\xff\xf1D\x0c\x81\x17\xbd\xf5\x9f\xb4\x94IN\xec\x1c\x98\
+\x13;j\x05H{ZFL\x8cm?\xb6]\x86\xd6\
+*\xf1\xe8\xfe\x12\x882H\xb4\x95\xd8\xca^\xc3c\x15\
+TZ\x88Z/ 3*d\xa5\x17\xdc YD\
+\xf6\xf3\x83}\xcb\x84#\xcb\xac!\xe0\xc4\x8a\x83\x0a\xe4\
+EA\x00X3\x8c\x91\x04\xe6\xf5\x88\xf5\x09\xb2M'\
+\x0f$a-y\xd7<\xca?\xa4\xeb\xfde\xc5\xad!\
+\xf5\x1dT\x12h\x91\xf5\x00\x9a\xc0\x10\x7fA\x89S\xef\
+\xc5\x0f\xf2\x97\xee\x07\xe0\xbf\x80(\xa4\xc5\x04\x99L\x90\
+(\xc8\x0eFvv\x12\xdf\x1c\x09p\xa9\xf4\xf2O\xad\
+b\xeeG\xd1\xb2\x03\x09\x1ed\x8e\x22\xf7u\xa4\x90\xe6\
+?\xdc@$\xce\xbb\xe3\xcc\xd2\xf1Of\x85\x0c\x98\xf5\
+\xc0[\xa7\x90\x0f\x85tW\x5c\x01\x9e@\x81\xd3\x88\x9e\
+|z\xd8QK\xba:[i\xd1`~\xe3?\xff?\
+\xc2\xee\x03\xec\xb6\xab*\x17\xf0\xd9\xfb?\x84\x12Z\x10\
+\x08M\xe9EB\x09R\xa4\x83T\x95\x16A.\x02\xf7\
+\xd2\x14Q\xaf\xf4*U\x01\x0d\x04\x01\x81D\x94\xd0\x0c\
+\x08\x88J\xbbT\x0b HQ\x0ch\xae\xf4^\x12Z\
+B\x09\xa1\xe7\xac}\xd7\x98k\xbcc\xcd\xcc\x93<7\
+\xe3\x81\xfd\xfc\xff\xd9\xff\xdek\xcd5\xcb\x18\xdf\xf8\xc6\
+7\x94\x0a`\x12\x00\x00$\xf4d\xbeQ\xf2\xfd\xbb\xf9\
+\xa7\x8d\xa1\x1a{\x9f\x87\xe1`=\xf3\xe7i\x15\xd8w\
+t[\x18\xbb\x9d\x8d%\xd2\xfch\x01\xb6\xeb\xe5W\x8b\
+[\xf8\xa1\x80\x97\xb1db\x14\x05\xb4\xae\xdd\x0f\xe0C\
+\xa9\xe0\xc7\x93\xa9\xfd\xd1\xf4\x9f\xb4\xa57\x8f\x9cC\xfc\
+8@\xc5\x98\x80\x14\xf8+\x0dp_\x030p\x90X\
+\xa18p\x14#\x1c\x99\xdb\x9e\xab\xd22\xcf\xcd\xf8\x8c\
+\xed\xd9\xcd\x7f\x1a\x09\x80\x96\x5cg\xc504\xaf0\xc0\
+\x93Y\xd3\xc5\x89\xcb\xba\xcc8`)\x01\xf8i\xf7 \
+/\xdaB\xb4\xf5B\x04\x182\x13\xc4\x88\x02\x99\xff\xb3\
+D\xee\xae\xdf]\xe0\x88\xf0\xb8q\x01:\x043\xbf\xaf\
+T\x9d\xb5O\xeb5\x06N\xeb^Q;d\xa2\x13\x99\
+?(\xf0\x17\xb0\x98X2\xb8\x9f\xcf\x0d\xf7\xa3Y3\
+\x8e\xaa$\x90r\xfd\x06HFW\x80$\xb3K\xa3@\
+`\x09\xe1\xb1\x11\x0120%nP\xe2vK\xe0u\
+\xa9\xbcN\x9fg#[k\xca\xce\x8a\x8c\x09\xcc\x5c\x9f\
+\xffd\x80\x05D\xdb\x0c(\x05\x8a\xd9\x0f{\xf7\x99\xac\
+!\xd76\xc2\x84\xf2}\x1c}\xf7% \xf6}&\x0e\
+ bP\x15\xad\xe7\xa5\x96FM:\xc6\xc8\xa1\xf9~\
+\xcf\xe3\xb4\x5c\xe8\x16\x88W\xd7\xe1\xfb\xc7\xb6\x1e6\x98\
+\x95r3%\xb2\xbbm\x0b@`\xc7\xa1w\xbd\xe6\x83\
+\x80\xdf\xc6\xe6{m0\xeeS`\x9f\x14\xa5bF\xa8\
+\x81<3\x81\x8f\xc3\xf3~Vu\xcd\xb3\xb6\xdb\x10P\
+\xe6\x86Z\x0b\xd1\xf5{\xbe\xd4\xc03#U\xe2B\xe6\
+\x9d\x0d\x023A\xc0:\xb4W\x92\xd9(\xad\x00\x81\xbf\
+Zyb\x9bj\xba\x04\xc4\x9e\x93\x8c\xb5\x03\xd9\xf3\x1a\
+5\x1a<\xef\xcc\xacU\xc0b\xdd;\xe8\x92j\xd8\x02\
+\x89_\xee\x98\x01\x19XS-\xdf\xfdvX\xd7\xd6\x07\
+\x85<)\x99\xdb\x07\x84u\x14A\xe2Z\xda\xeed\x0d\
+yu'\xc0\xfc\xa1\xc1\xa0\x8f}\x96\xba\xc8\xa4\x96\xfa\
+\xaev\x9bIu\x17\x90\xd4\x81\x9a\xfd\x9f\xa7\x1b\x87u\
+\x9f\x97H\x7fe\xb2\x95>\xa0\xf8jW%\xa0q`\
+R\xdbOu\xe2\x0a\x90\xac+\x80\x87\x80\xd3}>,\
+l~}EXG\xd1'*(\xb3\x9e\xd4\xc4\xd2\x16\
+0\x0f\xb3\xc6\x92#\xb7yG\xd8\xfc\xfa\x95\xb0N+\
+\xe1Ka\xab\x08\x9cq\x9f\xff\xff\xce\x9b;wZ\x0f\
+\x98\x02\xaf\x0d[3mU\x9b(\x00V\xcbH\xcb\x82\
+\xf8\x1e\x0ap23\x8aR\xfa\x8dV\xf4\xb3\xf6WV\
+Z\xa0\xfd\x18\xd1\xc5\x04j\xb6M><E\xf9\xe6q\
+\xdd\x9e{\xb6y=\xed\xbd-l\xfe\xf9\xbaa\x1d\xf0\
+\xa2\xf64\x81\xb6rh\xb3\x16\x938e\xcd'm\xff\
+\xfc\x9cZ\x03\xdbK\x85u\xe3\x9f\x8c\x8d\xca\xb0ph\
+\xf5\x8bN&\x09\xf1\xb6\xea\xc3\x9c\xda\x17\xa5\xd2m\x7f\
+\xca\x8c\x18\xc0F\x80Z%g\x19(n\x7f#,\xe7\
+\xd7y\xd6\x0cd+\x11\x08u\xfc\x07-\x94\xf13\xff\
+~\xb6\xa0\x86\x1f\x11\xb6\x96\x1al\xaf8\xdb\x95\xd6\xb6\
+h\xdb\x93\xc3\xe6\xd7W\xce\xf6\x8aT\xf9\xbf\xe5\xfa\xfb\
+F\xe4~M\x0b\x00\x97\x00!\xba\x16\xcc\x8e\xfa\x81\xe7\
+\x87u\xfbxf *\xa02\x0f\xb4?K\x0d\x91\xdd\
+O\x97\x1a\xee\xca\xd0Ss?%\xb5&\xb4\xefJ1\
+\xb5\xbd\xa3\xc3\xbavY\xd9\x86m\xbaW\xd8\xfc\xfa\xe5\
+\xb0Nl\xedGa\xf3\xefo\x9e\xea\xf6\x02\xaf\xbf\xce\
+\x0c\xe6s\xb2&\xf8\xb0h\xc0\xd8\x95r\xe4\xf3)&\
+\xc6\x9bg{K+\xf1X\xae?\x1d\xac\xaa%W\x0b\
+\xff\xe7a\x1d\xe0Fk!5%\xb6?\x17\xb6\xce\x9f\
+Z\xef\xd4\xea\xf3\xefK\xed?K\x14v/[J'\
+v7_\x80\xb0\x12\x11\xe4\x80:\xc7\xfa\xdf\x7fy\x05\
+\xf6\xa7\xdf\x9d\xedA\x9d\x9az\x02,4L\xdas\xd9\
+\xebj\x92#\xdc}|\xae\xab\xe8\xf2p\xb3\xd9\xa2{\
+\xc7?\x86\xcd\xafo\x0ak%\x09\xb3\xb5\xf5\xb9\xd4d\
+\x07O\xe9\xa5]\x22\xc1\xb9\x99\xe7\x02fH\xd5\xeeG\
+\x89\xd7S\xbb\x8cr>\xff\xe9Va\xf3\xeb\xabf\x9b\
+\x03\xe0\xe9#\xb3}x\x9eg\x87\x1f\xb8\xc4\x81Kt\
+Z&\x80\xa6\xf4\x13\xa6\xa3\xc3:\xc6Y2\x17\x8a!\
+Ac\x83v\xc7%\x9bGV@X\x05\x86\xff+\xac\
+\x03\x16\xac\xc3\x175[\x81\xaf\x08x\x1f\xd6\xf9C\x00\
+\xfe\x04$\xab\xed\x9fZ\xe4A\xfb\xa6\x95r\xdc\xbcc\
+\xca\xa5\x16L\xf9\x9f\xc9\xb4\xa8@R)\x83\xef\xa1\x09\
+\x90\xcc\x92V\x9a\xf2\xf6\xb6\xbf.\x19|%J\x12x\
+y\xfe\xef\x9e\x12\xd6Dg\x1bs\xad\x02n\xfbq2\
+\x8f\x8a\x22\x7f\x9d\xdd\x91\xbb#;\xc6\x93\x0c\xa3s\x8d\
+\x1f\xfe\x89\x14\x7f{j\x96\xee\xe9\x1e\x93%X\x02\xe4\
+\xca\xe4\xaa\x89w\xee>8\x81\x19\xe7t\x02\xd4\xf5\xb3\
+Lt\xfa7%\xa2\xc8\x9f\xa0\xede\x1f\xb6\x1f\x8d\xea\
+\xea\x18\x98\xa8\xea\xc6U\xc9\x1f\x06\xa7q\xf7w\xfc\x9b\
+\xac\x9d\xafv\xc4\x09<UBC\xff\xf7l7[\x19\
+{\xdfK\xf3\x80\x98\x1ff^\x02\xcf\xd5f0\x01\x81\
+\xba\x0f\xf3L<\xe6\xfa\xad\x7f~\x96\xc0X\x89\x80\xc0\
+\x9f\xc6\x85\xcc\xbc\x04\x14\xffM`\xeb\xef\x00\x0f\xae\x93\
+\x08%\x00J\xbc3\xb6\xa56^\x00\x80\x1c\xb7Z\x07\
+(\xf7\x12\xc0\x02\xeb\xb1+\x97\xf7\xad\xa2~\x8b\xdf<\
+\xb4#,\x91\xcc\x8fdm\xbe\x80\xdd\xfe\xea\xefe\xfa\
+\xc5\xa5}7\xbb\xbe+\x98\x00}\xe8\x8eU\xd7\xe5\xd5\
+\xef1\x14\x00\x06\xc6_\xc0\xbf\x96l/q\x87\xe7\x0d\
+\x88\x19\x99\x0f#\x13X\x1c$\x8e\xf1\xef\x12\x9b\x12F\
+\xf9=\x0dX\xbdh\x07\x10\x8a\x17\xc5\x1f\xf99\xfb\x9b\
+;z\xf3l\xffp\xcb.`0\xc0cf\xd6\x849\
+\xac\xe9\xbf\xaf\x8e+\x0d\x80ou\x01\xde\xd7;\x00\xc1\
+kO=\xbe\xd0\xd9\xf4q\x1ck\x1a\x0c\xdc@\x1d\xaf\
+\x9a\x99\xcc4\x96\xb8\x93\x09\xe9\xc1\xf8;\x8e\xf0\xc7\xb3\
+\xcd\x5c\x22\xa5\x07\x89#\x8cm\xf3\xdc\xbf\x8161L\
+\x00\x19e\x99M\x01\x8c\x80)\xa9\x84\xad\x89\xcae\xba\
+Z{\x9fgBBv\xd2Q\x00 \x14\xe3\xe2*\xf9\
+\x5cF\xf1\xbao\x15\xb5\x7f\x99\xa8\xfb\x12\x08\x18\x90S\
+\x0b\x7f\x0eg\x17\x06\x03`\xc1}\x8em\x00]\xdf\xa8\
+v\xe9\xfbM\xf0\xb1\xd6\x5c@\x0b\xd8\x11\xd0\xae\x01\xfd\
+Y\xd469\x02\x15h\x9fS;\x0e\x9f?\x95\xba\xff\
+\xee,\xafc\xfb\x8d\xd3\x07\xe6\x03&\x896\x94j\xb8\
+~X\xe2\x82\xcb\xf5\x19Wm\x18\x93J\x15\x0a\x03M\
+c\xc0\xc1\xab\x9d\xe2\x9a\xc9_\xe6)@\xc8\xf8\xbb\xcf\
+\xac}\xad\xf1\xc0P1\xffr\xa3\xb1A\x0a\x18\x0e*\
+\x95\x18\xe7#F\x08\xe6\x80\x0cd\xb6\xe1)j\xdd\xaf\
+\x86\xad\x99\x8cj\x03\xe8 \xbbv\xb3}\x9b\xcb\x86u\
+5\xaf\xa8\xca\x991)\x07!)\x8bj\xc3\x0b\x91\xcc\
+q\xd4~\xab\x80\x04\x1b\x1c\xf1:\x99\x02\x19hm\x0b\
+1k8\x14y \x97\xca\xbf\x8c\x03\x0a\xaaL\x9a\xfd\
+\xc9\x81i\xde\x0b\xc0!\xef2^\x9e\x9b\xefQs\xa9\
+=\x13\x871\x03\xb8\xaaU\xa3\x16\x8d\xeaIu_\xc9\
+\xc0\xed\xc3\xba\x00\x9e\x86\x86\x8c;F\xc9\xd8\x97u(\
+\xbd0\x0f+#\x8fia\xfd\x19O@\x1e\x91\xa7\xcc\
+\x1cO\x8f\x08[\x03%\xb5\xb3\x02\xfc\x02Le\x088\
+\xc4\x10v\x0c0\xe3\x9b\xe2\x9b\xf35.\xfb\x9a\xfb\xbb\
+WX\xe7\xd8Z\xb7\x18 I1\x06\x5c\xa1\xe6W\xe6\
+SF\x81Ju\x02<\xae[\x0dj\xa9K\xe7A\xb8\
+\xfd\xf9\xb0\xb5\xa4c\xfb\x94\xd9\x9e\xdci\xd7\xa8a\xbe\
+lX\xab\xfd}t\xab\xfd\x8d\xfd\xff\xe3k\xe0\xaa\xed\
+\xd1\xe6\xaf7\xaf\xdc\xfcu\x0b`Z\x1b\xacF\xcc?\
+\xaak\xd3\xf5\xb4\x85\xc9\xb1y\xf5\xfc\xce\xbfn\xfb\xd5\
+\xc2\xb0P\xda\x83Q #\xf8\xcc\xb0\xeey\xda\x7f\x92\
+\x9a*\xb3]b\x80j\x901\x9a\xd4\x04\xbb\xce\x14-\
+\x04\xd8m\x1f\x1a\xd6\x05Lw\x0eK \xfd:\xc9\xa0\
+x\xda\xbcm>|\xb6y\x1e\x1c\xf8\xa7\xb0\xb5&x\
+{\x93\xd9n<\xbf\x1e\x98\xed\xcc\xd4\xde\x98\xafk\xef\
+~\xb3\xddw~\xfd\x8f\xb0\x0c\xc0\xaf\x9c\x8euhi\
+\xbc;\xac+M\xc8}\x8dC[\xdd\x122#]]\
+\x90\x9e\xbdd^\xe7\xabm5\xd2\xbb''s'\xf7\
+\x9d*\x09\xb8\xd4\xa2\xe6/\x80\xdb\xbe<l\xcd\xa0\x97\
+8cR\xc7Q\x94KD\xee\xd8\xe9\x05\xd3\x0bR<\
+\xf1\xc2\xeb8\xb66w\x0f_\xbbw\x94\xe6\xc8\x97\xc3\
+\xba\x80;U\xfb\xa7\x8b\x85u\xea\xe1\xc7l\x9e\xb59\
+\xa6i\x07\x1c\xb5;\xaa\xfb|\x8e\xa7\x80\xe4\x7f\x86\xad\
+\xfbT1\x1c\xf2\xbe\xa2\x19d\xcb\xc4\xa6\x18!1\xd0\
+\xe9ya]\x9b\xb53\xb2\xbb\xc1\xd3\xc3\xd6\xee\x0c\x02\
+\x9d\xda\xb7eXs?*\xaa\xfb\x0bs>\xedo\x9d\
+\xd8\x97\xda\xfc\x9bv\x99j\x22a\xd9\x0e\x14\xa3\xa2\x9d\
+\xdb_\xcb}\xedM\xb9\xdf\xcf\xfbe\xf4p\xd8\xce\xfb\
+\xd1\xf6W\xc2V@H\xc0\xb3\xf9\xde\xe6\xf4\xcd\xe9\xdd\
+\xf7sHe\xea2#[\x22\xa0\x02\x92\x14\xd9\xac@\
+/\x99|\xd3\xf5g\x9b\xcf\xc9\x03\x0f\x0c\x9b\xff\xee\x0f\
+\xc2\x92\x22\x7f\xcb\x15\xe0\xa8\x12\xb1\xd4\x1e\xf2\xf7%n\
+Ge\x9d\xc3\x9dm\xcb\xaad\xf7\xee\x8b6\x05\xd1\xd1\
+\x0aPi\xcf\x00r\xf3\xbe\x1a`\xfd\xc0\xcc8\xff}\
+\x07\x10j3xX\xe7\xdf\xed\xba\xfd3N\xcf\x07\xaf\
+@gui\xa1\xfeM\x04VI\xc4\xe8we\xe0\xab\
+\xebB\xed\x97\xd6_\x9e[\x9bK-\x8c\x14\xa5.\x05\
+\xa0\xe5>8\xbdw\xd1X\xd8\x9cwI\x98\xec~'\
+\xb5\x1a$\x160\x1dt-\x00\x98:g\xc4\x07\xfc\x16\
+b\x802\xc97LM\x95\x0c@\x0a(\xc1<\xb9k\
+X\xd7\x16\xcf\xb9\x9e%|M\x81\xe4_Zi\xc4\xc2\
+p\xe1'\xc9\xf0\xe6|\xa9R\x9e\xcc\x14W[B\x0c\
+\x13q\x09\x7f\x5c\xa9\x0a-\x1a\xe7\xad8'\xfd\xf0\xaa\
+MW\xd2\xe2\xbah'd\xe0\x8b\x01S\xcc\xdd\xa7\x85\
+u\x09\x11\x8c\x04}\xef\x03@|s\xe7?`\x06\xca\
+\x8c\x0b\xdc\x9d\x87\x02[\x80\x15\x7f\xd2u;\xff\x01\xee\
+\x02m\xaf\x02^@\x81\xc0\x9b\x7f\xe4\xef\x01%\xe2\x19\
+\x1b\xb6\x00\xda:&2\x87a\xc9\xdf\xe0\xdf\x01\x0a\xc6\
+\xdaw\x0c>\xc0#q?\xdfk\xfc\x01\x04\xb4\xd6\x00\
+1\x02p\xf1\x86D\xab\xe7\xf5\xf9\xa5D\xb8>o\x0c\
+\xfc\xc5W\xda\xb4*i\x1d\x01\x88!\xae*\x91CZ\
+\x0d\xe2\xde\x11\xb0p\x7f\xae\xc3\xf7\xbb\xaf\xff_\xbbB\
+\xf1\xed(b82\x1fF\xe6\xaf\xbf\xf3\xdf\xc8,\xf0\
+\x1c\xc5\xbf\xe7\x19\x12\x94\xf9\xfb\xfd\x95\x91\xf7\xe08,\
+(\xc3\x1ednd\xd5\x1e\x22\xa9L\x150\x11w\xd0\
+\xbf<j\xe3\xae\x94\x81\xff\xf9;\xc0 \xdc\xa0\xd3\xcf\
+\xa6\xa6]\xc0?\xd6\xf8\xcb\xcc\xbaq\x19s\x99J\x01\
+\x90\x01\xb5@\x00\x0d\x90T\xef\xb7A\x8f\xa2\x0a\x020\
+T\xf8l\x7fV\xdf\x07\xb9\xd37\xd4\xdf\xe7\xbfW\x86\
+\xd7\xf7\xa4\x03]H\x0c$\xdc\x83\x16\xd0z\xd0\x18\x01\
+\xd7i\xb6>@\x80\xc4\xa9\x03\x13B`!\x83{\xea\
+ N\xe1?\x01\x0e\x87|T\x81\xdf\x0d\xd4xH \
+\xe4\xc9\xf5\xd9\xc8\xf4\x99\xd7\x7f|TA\xc5$\x18\x81\
+\x9d\xb5\xbd\xe4r?c)\xc19\x01\x0ej\xef\xf2\xfd\
+s\xf0\xfc\xad\xbe\x0dem\x94\x02u\xed$\x7f\x92\x9f\
+\xfb\xb5|\x9f\xe7\x98\x01Xm\xf4\xa8\xca\x97\xcf\x05\xe4\
+z0D\x8c\x8b\x85\xe4\xf7\x02n\x99\xe4\x97g\xbb\x9f\
+\x0c$\x0bh\x01@\x08\x0c2\xa3\xa0\xefxm\xc42\
+\xed\x02|\xe3\xb9v\xb7X2\xbaT\x8dQ\x01\x05j\
+J;\x00m(o\x99\xd9+\xf5bm1\x95$\x8c\
+\x99w\xcc\x15\xebfd4Dmb'\xc2W}\xbc\
+\x13P\xe0HV\xe0\x9e5\xad\x95y\x10\x90'\x85P\
+M\xa9\x0c(u\xe3\xda\xb0\xb3\xedR\x05\xe0j\x02\xb3\
+\x04\xa0D\x8a\x922^\x0eK\xde\x97Lv9\x1e\xe6\
+W:\x5c\xe5 \xa5\x06\xc8\xf4\x8a\xb0\xae\xe6\x8b\x06\x8a\
+@\xcd\xfa\x91\xe1\xe5\xf8y\x1e\x0e\xca\x0clj\xfe\x1b\
+O\xefK1\xaa\xca\xd8\xa3`\x9b_\xbe\xc7Af\x1f\
+6\x8f\x13h\x92\xb1*f\x85\x83\x13\x1e\x96]\x08J\
+\x1d?\xc7\xad\x1c\x0a5\xcb\x1c-\x81\xc1X\xba\x05\xd0\
+\xe4\x88\x09\xd4t\x05xBX\xd7G\x98\xca\xbe\xf9C\
+TN\x9b\xb4T\x1b\xaf\x0c\x0b\xd1\xd6\xa4\xf8W \x9c\
+\x8ex\x01NJ\x0dR\xdd~\xfb\xb7\xb3\xbd\xb6\x03\xf4\
+d6\xa9i'\xe5\x9a\x9a\xf3\xee\xeb\xbb\xaf\x85\xe6\x86\
+\xccm\xa9i\xdfnw\xfb\x10!\xabZu\x19\x9a<\
+O\xb6/\x0d\x9b_/\xbd\xbd\xcc\xf62\x9dC\x08\x10\
+S\x13\xfa\xa0\xb0.\xf0\x91\xa9N\x95rL\x9d\xdd+\
+\xc3\xe6\xcf\xbbaXW\x02\x93\xf3\x87c\x5c\x80\x01\x00\
+)\x01\xac\xcaTg\xc6x:|\xb6\x8b\xaf\x80\xf1\xf4\
+\x90\xd9\xe6\xf5u\xe6=\xc2Vq\xba\x12\xeb\xbb\xdd\xd2\
+\xa5\xa61\x1e\x1e\xb9\x02\xe8\xd5\x8d#\xc5\x00Q\xd81\
+\x86\x1aS)(\x86/Z\xa8\xba\xd3\x95\xc3V\xed\x95\
+9<n\x81\xd2\xe6\xfeK`\xab=\x1f&\xcd\xee\x17\
+s=g\xbb\xad\x02|>\xdaH\x9b\xeb~\x98L\x0b\
+\xcfQ`m\xdcJ|3\xc5\xef\xa6\xbf\x0a\x9b\xa7\xf5\
+\x0b\x92\x89@3#5V\xa6\xcb\x84%\x93\xe3\xf1\x1d\
+\xc3\x04u\xf9ZK\x86\x93&\x87\x9a\xf9\xea\x92\x90m\
+\xf2j\xbc\x7f\xb0\x94t\xf8\x9e\xbd\x1b\x86\xcd\xbf?o\
+\xd8\xfc\xfa\xdcE\xc4/\xf2\xc3\x91!\x9e\x8e\x9e\xfe\xa4\
+e\xa6\xf3\xbe\xe6\xab}\xf9\xf4\xf2\x06\xc8-\xda\x0d(\
+\xb8\xd7YJ\x83\xaa\x1b\x00\xc6\x0bq8\x998\xe7\x09\
+\xd1=\x81\xe1\x8f\xd2\xaf\xca6\x96\x0d\xce{\xef\xca\xd8\
+\xd1\x85\xa1\x05\xa2\x8f\xef\x80\xd1\x5c\xa7m?\xbcb\xee\
+kw\xcdy~\xf7\x15\x18\xdc^-\xac\xa3\xe4\xdfr\
+{\x8b\xc6\x10\xf8\xce\xf6\xbb\xdb\xefvm\xf9\x92\xd9\x85\
+\x82^\xe7\x0du\xf9\xdc\xaf1\xaa\xd4\xf0\x97(_2\
+\x8a\xa6g\x84\xcd\xcf\xf5Na\x19\x00|\xa2\x89\x0a\x86\
+U@\xb8\xff\x97\xc3\xba\xfd\x12`J-^\x97\xa9\xa4\
+Z\xeb\xd61\xbdv\xb6\xbf\xe92\xe5\x12Kq\xba\xbd\
+&\xaf\xe3\xde\xeb9W\x8c\x8fG\xb4F\xa8%\xc2Y\
+\xebW\x06/\xd2P\x17\xe9\xda\xb3:w\x89\xb9\x12\xa9\
+\xb3?%\xf0d\xde\x95\xbf&Q\x935\xfc%\xc2\xaa\
+\xad\x1e\x11\xbfC\x9b,\xf2\xbe\xdd\x8b\xc3\xd6\xd2\xc3\xca\
+\x10\xcb\xe8\xbez\xa1\xa6O\x9fI@\x89\x0a\xf9I\xc9\
+\xec:e\xd1\xba(\xad\x0d\x9a;\xfc3\xfe\xa4\xc0\xe7\
+oSd\xf2c\x99\x19\xff\xc3fk\x06\x5c\xbbE~\
+\x94\xfd\x0f\xc0\x92\x19\xcay\xf4\x16\xbf\xc0\xf7\x00\x14<\
+O\x19\xd6\xd7\x85u\x0c\x1f\xe3\xf6\xbf\xc2\xd6\xf5\xb2\xef\
+\x1a\xa9I\xe0y\xf0\x8b\xf9I\x02W~\x1c\xbf\x07\xd0\
+\xc1\xaf\xcb\xae?\x18\x0c\x80\xeb\xda\xcfQ\xed%Z\x9c\
+\xe3\xbe\xc7y,\xe0$2\xa8=\xa4\x00S\x89\x84s\
+\xd2\xf5*Y\xb1\xee\xc5\x03\x98\xbe\xee\xcfyC$O\
+\xa6_\xe0<\xb6\xe1\x13\xa8j\xd7g\x9e`\x068\xff\
+\x05\xc6c\x1f\xfa\x7f\x0a\xeb\xfe\x9d\x7f ^s\xfd\x9e\
+\xe7\xa8\xf2\x0f\xa0\xe0\xc7\x10\xf5\x93\x90\xf0\xfe\x91j\x8f\
+\x99\xf9\xb1\xf9\xfd\x1f\xeb\xc6\x7f`\x04\xd4\xe7\x8f\xb5\xfe\
+>\xef\x9c\xbao\x8d\xdd\xb9\xfc<\xb6S\x1f\xdb\xa4\x03\
+\x1a<\x07\xaf\x03\x00Q\xebF\xe9\x87\xf9=~\x9f\xeb\
+\x19^i]\x14\x003t;+\xb1\xc7\x5co\xe5\x97\
+y~\xfc\xdf\x12\x01\x14p\x08@\x04\xf4\x1ed\x22~\
+U\xfbn\xa1\x98H\x02W\xa5\x04D\xe3\x82\xcarj\
+\xd7^O7\x81\x98Vg\x1c\xac\xb6N]\xb52\xf9\
+\xaeG\xe0(c%\xc0\xb6\xc0\x88\xad\xf8{\xdf7f\
+\xb4\xc7\xda\xef\x11I\x19k;L \x88\x95\xff\xa8d\
+\xd2\x04\xa0I\x80rm\xe3\xb6P\xd2\x01)Q#\x94\
+m\x8e>\xe6\x00\xe6\xc2\xc8\x98\xf0\xc0<\x97R\xa3O\
+J+\xc0\xc2\xf3\xb1\xb1\xb9o\x13\xc4\xf3\xdc\x9f\xaf\xfe\
+\xddx\xd8P\xc6\xf1\xb8\xe8p](\xd6!\x1e\xf5\xe3\
+\xae\x0d\xdfX\xab~\xfa \x0e8Rm\xbewVq\
+\x93\x83\xde\xe7\xf3,\x08\x99\x96\x13\xb3\xa6\xd9\xf5\x1f\x18\
+\xbaX\xe4FVj\xff\x97\xce\x9a:\xe3\x07i5\xde\
+WI \xe0KI\x9d\x07\xd4X0\xde\xe7\xb9\xa2\xfa\
+\xff\xdfDF\xbf\x94\x1b0`\x89X\xcb\x17\xb3T\xe5\
+\xee)^\xa7\xff\xba\xcc;\xca\xb4\xf5\x07I\xcevo\
+Eu\xf3\xbd\xe6\xbf\x0c\xb2@\xf2W\x9b\xadb|(\
+Z\xe6\x89\xf14\xffdH\xd5\xf0\xe5\xfa-QK\x8e\
+\x0a\x874U\xa0\xab\x8d\x9f\x00\xe9\xf1a\xf3\xef\x1f\x1b\
+\xd6\xdd?\x84\xdd\xbc\xd577\xc5tJ\xccO[\xa6\
+\xac\x11-\x95|\xaa\xfd\xda\xe9e\x86\xaa\xe6\xf1\x1f\xef\
+{zk\xe3\xf7\xf0\xb0\x95JX\x99\x04\x07X:\xac\
+\x1c\xba\xca e\x8d%\xf1\xa4\xe9\xa4\xb0N]_\x8d\
+n:\xac\xda\xae\x15r\xae6;E~\xd4\xce\xd7\x01\
+C-\xd9x\x8c\x80\x9a\xd2\x8d\x1c\x07\x14\xf6rX\x1d\
+\x14\x03\xd5\xae\xc4\xb7d\x0c8\x06\x00\xc5t,9T\
+\x9b\xef\x87\xad\xa2\x82\x15\xc8\xe5~S\x80\xa5\x92\x05\x8e\
+Dvo@\xd5/1<\x94y\x19DL\x8fC\xc2\
+Vf\xc1\xf6!\xa9F\xff\x92\xf9\xea_\xb2\xd6HV\
+[\xa6\x07\x87\xad\x19\xa7&\xfa\xf4\xf4\xce\xd1\xbe\x7fX\
+'Fe\xde~'l~\xfdV\xd8\xfcz\xae\xb0\x04\
+L\x8f\xecj\xb8_\xbad\xf01R\x88\xa5\xd5\xbc\xca\
+\x8cj\x01\xcd\x00\x0b\x14\xd5\xac}\xb5/n\x7f\x1a\xb6\
+~\xf5\x02\xc6F\x00\x00 \x00IDAT\x7f1P\
+\xd4j\xfea\xd8Z\xd2Q\x01\xed(\xda\xe3\xb9\xbf1\
+l\xdd\xa7KL0\xfb\x93O\xff\x106\x7f\xef%\xc3\
+\xbaLr\xd6\xc6n\x9f\x1c\xd6\xf5SOGB;\xc8\
+3\x1f5\xdb#\xf3\xbe_\xbbjW\xec} \xaci\
+\x95\xdc6\xb4J\x9a\x86\xc3\x03\xb3\xf4\xe7\x11\xabXb\
+\xfb\xf9Q\x09\xf4\xbdm-Ai\x14\xf0\x9b6q\xb1\
+\x0f\x85\xb8\x18J|s[\xef\x91\xeb\xeb\xf1]{-\
+\xc0\xce\xab3P{\xc7\xfc9\xef\xce\xda\xe4\xbd<'\
+\x22\xb0\xbfiX\xae\xb7_^Ki6o\x0d\xeb\x02\
+\x8e\xa4\x88O\xef\x0e\xeb\xba\x18d&\xfd\xc0\xad\xc3Z\
+\x1b\xb9&~\x86\x99R%\x07\x11 \xbf)3\xcd\xbf\
+\xbb\x96P(M\x99\xae0]q\xbab\xd7\xa5\xc2>\
+\xcc\xcfIM\x8f\xe9\xa9a\x09t\xbeo\x15\xa3S\xda\
+q\xe0\xfda\xab\x98\x1d\xbfdz\xdf\xf4\xfe\xe9}\xab\
+h\xda\xbc\xdb-\xa2z\xdae\xca\x98F\xe0<\xef\xfb\
+\xd3\x09a\xab:9@\xb2j\xc2\x89\x88r\xf4\xed[\
+I\x81\xad\xb6\x9f\x01\xfc\xfdI\xe7\x9fx\xbdmk\x9c\
+\xb8/\x9b\xb9,\xcc\x8d\x9bt\x01aj\x9a(\xf9\xac\
+\xfd7\x03\xef\xed\xfd\xc2\xe6\xd7\x8bl\x7ff;\x9f\x8f\
+\xdboo\xbf\xb3\xfdNWR\x10\x80I\xcc\x8b\x17\x84\
+u\xed\x17\x83\xa7\xf0\xa6u\xbe\x17 @\xfb\x00\x93!\
+\x18\x19\xf3<\x9d.=\xdbe\x92Yu\xbbn}g\
+w\x8c\x06\x1c\xbfz\xcdX\xebNQ\x1a\x22\xba\xd0\xa0\
+\xee\xe7\xfe2\x1d\x12\xb6jcT\x9b;\x09\x96d\xbc\
+4\x80\xec\xe1\xc9x\xb9J\x03\x0ao\x17L\x91\x12\xeb\
+K\xa0F\xc9\xc3\xeeg\xc3\xba\xd2\xa2\x0ff[=\xe7\
+f0,N\xc9\x0c\xfe\xf5\xd6\xf9\xb0\xbbsXW\xbb\
+\xee\x1cK\x00\xb22\x97\x80\xd1\x04Vj\xbf\xdc\xcbu\
+\x95\x80\x01 \xa6\x02\xe9\x14\x1b\xec\x12`K`\x96\xda\
+4m\x1et\xc0v\x01\xed\xd7I\xa6\xd6\xaa\xdd\xb3\xf8\
+?2\xcb\xb4$\xf8'\x12pc\xe9\x03\x7f\x87\x7fp\
+\xfcr\xbe9\x0f\x0a(zJR\xf9\x89\xd8\xe5\xfa\xdb\
+\xdd:l\x05Nh\xe8T)\xd1\xc5\xc2\x1a\xd0\xb9\xec\
+\xe3\x1fH\xe0\x0e\xe3G{J\xddi\xfc7\xf6\x83\x17\
+\x88\x01\xc2%\x1e2\xc3\x8c\x09Z]D\x8e\x08\xeb\x80\
+\x18\x81\x9f.H\x98n\xc46\x05\xb8\x09\x1c\x16\x83B\
+\xe9)`\xc8\xf7\x0a\x10\x05\xc4\xfcW\xd7;\x8a\xe4\xd9\
+\x0f\xf8\x13\xe2\x18\xf3\x09\xb0ALP\x80L,u\x0c\
+\x90\x05\xf0\xe2)q\x00?^\xbbL\xf1\x95\xb8f,\
+\xb9\x95\xd0\x10\x10\x0b\xe4G\x15~\xd7\xe9g\x0c\x04\xed\
+\xc9%f\xfc;`k\xd4\xf0\xc20\xc2<\xe0W\x0d\
+\x80R\xfd\xddPj^\xfe\xb3\xeb\x05\x98\x8c\x1a\x01y\
+~\x1c\xc4x\xf2j|\x013\xde\x0f\xa8\x18\x01\x871\
+\x0e\x1d\xb5\x03Ff\x81\xd2:%\xaf\x09\xe0U\x09\x16\
+f\xe2\xd8V0\xfd\x91\xfd\xed >\xfdl\xc4&\x04\
+>2\xb1\xe3\x84\x10\xc8\x0b,e\xb8Fu\xc3\xb1\xdd\
+Z\xfc\x7f\x97\xd9-&\x80\x8dwP\xf3<(\xa3\x0d\
+ir#\xfe~\x10y8\xa8\x1f\xa3\xf7\x8d\xda\x042\
+t&\xb8\xfbW\x83m\xc3B\xad\x96\xd9\xbfTX\xb7\
+Q\x0a\xcc\xb2\xcd^!{\xda\xd6\x11SLJ\xe0\xe6\
+\xc8\x85BZ\xdfc\x5c\x8d\x8bq[\xdb\xe9\x9du\x82\
+\xd8\xc8\xc7L\xb5\x83\x9a\xe3\xd9k/\x5c\xa0\xbb\xbf}\
+\xd5u\xe1,\xa5\x0f\xd5\x0dA\x1b\xb1o\xe7\xfdx\x0e\
+\x80\x1b\xafc_M\xd7-c\x9c\x99\x8b\x9a\x90\x18\x00\
+\xdf\x1aJ<\xcc/\xf7%\x03.\xd0G\xe9N\xaaM\
+Q\xf2\xa9\xf1\xaf\xf3p\xf9{\xe3\xea\xfeQ\xa5<o\
+\xb5\xc5\xe7K\xc0\xea\xc7K\xad\xe8\xe6\x0eI\x85\x1b\xdb\
+\xe1\xd9\x80\xbfR\xa5\x1fg\xad\xf9\xf3\x9a\x00\xd8\xec>\
+-\xf3W\xe6\x9d\x83&\xe07\xff,L\x8c\x1b\xf7o\
+>\x01\x00d\xfa\x01O\xa8\xe1\x19\xb8pD\x8b\xb2\xe6\
+\xe0\xb1\x8e\xcd\xaf\xb1\xcb\x83\xd7\xb1\xad\xa0\xe7\xe8\x80\xb4\
+\x01*q\xc0\xf40.\xe6\x97\x0d\xd6\x01Gm_\xc0\
+\x9f\xed\xb3*S\x0aP\xd3\xa7[`\x9d\x01{1\x00\
+\xb4\x1f<6lU7\xae@\xe0\xa8\x85\x9a\xdb\xa8\x9c\
+w\xef\xe6\x1b\x15\xe8p\xdcn\xd7\x95\xa8h\x9f\x95\x99\
+\x9d:\xb0Q~\xb3=\x9dLH\xd5\xd8S\xe9G\x99\
+D\x89\x03xp4r<\xab\xb4!\xc7\xa3j\x04\xf3\
+`\xaa\xb6{\xc4\xf1^\x14\xd6=7\x01\xfdIa]\
+i@^O\x89\x19F@\x7f\xd4\xda&\xae2\xfa\x9e\
+\xaf\x03IW\x82\x0c(Ku\xd9~!\xc0\xc5\x94y\
+y\xd8J=.M\x80g\x86\xcd\xd3\xe5\xfca\xab\xfa\
+\xfd\xee\xba\xb3cv\xdd\x16 \xbe\xa5Q\x1e\x93\xaa\x1c\
+Z\xd3A\x8d\x0c\xa2pP\x85\x05TM\x9c\xea7:\
+\x84;T\xb2\x0f\xed\xda\x19&\xa3g\xf3\x81\xb0N\xcc\
+J\x0dvP\xd2\xdf\xd5e\x9c\x887F\xb7\x86\xfbv\
+}\xc1\xad'\xeb%\xfb\xd3\xef\x1e\x12\xd6\x05\x1eG\x87\
+\xcd\xf7\xf5\xc6\xb0\xf9}\x8f\x0ck\xcf\xa9\xd5\x84O7\
+\x0d[\x9fSe03\xf0\xa9\xdaH@\xac\xccQ2\
+>\xec\xdf\xa5ys\xa3fk[\xb7\xf6\xdf\xfc=\xc7\
+\x84\xad5\xb7\xda\xa0m>\x15\xd6\xb5w\xcby\xd5\xba\
+\x03\xdc?\xc5\xd6\xae\xbc\xee\xe3\xad\x86\xfb\xe6\x19\xf8\xdf\
+6\xc5\xaa\xfewS\xb5?\xb9i?<7\xac\x0bh\
+\xb4\x93\xcc@k\xf3\x96\xd9\xde\xdc\xb5S\x8b|\xe0\xe3\
+:Q\xb9\xa0F\xdfy\xcd|afl\xce\x0c[\x99\
+X\x00\x8a\x12\x83\x03\xe4\xf7\xb5\xb1\xdf\xc8}\xf2j\x9d\
+\xc8g\xd6FO/\x9d^6\xbd\xac\xd3\x9c0\xaf.\
+\xbf\xac\xff\xe9\xa1a\xf3\xeb\x0bf{~:D_\xcc\
+\xb6\x8c\xdbt\x88\xff9\x01\xc7\xf9~\xb6\x7f5\xdb\x09\
+kW\x13\xfb\xc2\xe6\xa9a]\xbb\xb7\xac=\x9e\xae\x1d\
+\xb6\xd6\x86\x97z{f2\xa7\xd3\xa6oM\xd1\x87\xfd\
+7\xa6{F\x1b\xb6\x03/\x0b[\x19\x1b\xda\xdb\xd5\xf9\
+\x7fz\xee#oZ\xc4;7\xa7\x86%\x83\xe3.k\
+\xe9\xc7\xa4\xd4\xe1\x84\x044\x94\x08$3\xa42\xd3Y\
+r\x12\xb0N\x1b\xff\xec\x9eP\xda?\xc9X\xb1\xef6\
+\xe0\xe5&\x09L\xc6\xbay\xf3l\xff'k\xed\xffs\
+\x0d\x80\x002\xdb\xc7\x87uL\x90\xdc\xbf\x883n/\
+\x1d\x96\xeb\xe4\x7f\xb7v\x9d7\x9c~\xb1+\xdd\xd0\xfe\
+\x8ex^\x06v%\xb6\xa64\x898\x1f -\x0aV\
+B\xad\xff\x1ba\x9d\xb6\x88v\xb0\xfcM\x00e\xf6\x89\
+\xdf\xde4l\xfe\xdc\xd3\xc2\x1a\xe3\xa1\x01\xd6\xa5\xa5\x90\
+T\xff\xe9\xeba\x1d0\x22\xc1\xa1\x16;N\xbdO\xac\
+\x89\x96\xaa\xd5\xf7\x9f\xf3E\x1fy\xa5 \xa8\xdb\xd67\
+q\xc2\xe0\x1f<\xb7\xebrBd4\x01\xdd\xdd_\x87\
+\xad\x80E\x05\x024A\xb4\x8f%\x02\x19\xe1\xfe\xe5\xbb\
+\xee5\x98N\x00#\xe2m2\xf9\x00\xde;,%\x81\
+Jh\x94\xee\x14 \x97\x01\xfc\xe6\xc5a]I!\x7f\
+%\xfd\xf9bZ\xf1\x1bd\x22\x89\xd8a\xa69Od\
+\xee\x93IQ\xea\xfa43\xcc\x13\xc0\xb1\x12\xbb\x04\xf2\
+J\xbd\x9f\xffa|t\xcbzS\xee'WK\x7f\x8b\
+_, \xcc\x92\x90\x12\x85L\xca}1h\x12H\xae\
+\x9fS\xab\xc6y\xa9Mb\x05\x904\x1a\x12\xe0\x020\
+WB\x030o~\xd1Z\xc2P\xd2\x0dBI!\xe6\
+\x9c\x84\x83\xb8\xca\xb8f\x09V\xf9\xdd\xee\x8f?)\xf0\
+\x1f3\xdf\x98{cI\xe3P\xc3^\xe3I\xd5?\xf7\
+\xc1\xda\xa7\xf9\xd3\x98\x13\xfcU\x99x\x9f\xe3}\xae\x83\
+\x7f\xe4:Q\xf9]\x1f\xbf\x11\x00 ~\x0a@\xf3#\
+)\xee\xf7\xf1\xee\xf7\xfe~`\xa0\x97\x08\x1e\x00\x09\x03\
+\xc3u\x8d5\xfd\xfc\x22\xe2\x83D\x10\x01@\xe2\x93\xa1\
+\x9d\xf7A\xdd\x08\xdc\xe7\xa8\xc2\x0f\xb8\xf8dXw\xfd\
+\x02\xf91\xc0\x1f\x9f\x87\xb8X\x89\xad\xeb\x1a\xdb\xcb+\
+\xdd\x14\xdfI\x08J\xd8\x8f\x8c\x82\xfc\xdc\xfd\x07eZ\
+\x95\x04\x10\x15\xa2\x9a(\xd3,\x83\x08\x09\x12\x08\xa6\xa8\
+\xd0Am\xd6\x04\xe0\xa3\x8a\xfcH-\xf1>\x13])\
+\x81\x0c;\x00a\xac\x05?\xa7\x9au\x01\xbf\xeb\x03\x18\
+\xa0\xf2g\xe6\xe4 q6\x9f\xefsmlc\xcd\xae\
+\x89\xef\xfd\x02$\x13\xd3\x83\xe0x\xca,\x13\x03DQ\
+w\xbd\xdf;k)\xc2\xec<.\x7fg\x9cP\xfcO\
+\xcd\x9f\x01\x0d\xeesd<(\x8d\xc8@\xba\xb5\xe1:\
+_GM>$\xef\x03Xb\xfc<\x873\xcf\x9aY\
+\xaf\xeb\x1ck|F\x0a\xff\x99\x83j\xeb\x88T~k\
+h\xafH\xe4Nm>\xf5z\xd7\xe1U\x00-\xd0\x04\
+\x10\xec\x1f\x98\x22\x9fHd\x11\xd5^[\x18\x9fo>\
+\x8d\xb5\xcd\xa7\x16\xd0\xb2dTm\x846N\x94'\x81\
+\x92\x92\x185\xdf\x02'\x8e-`\xc6\xfbG\x06\x82\x0d\
+K\xed4\x06\x03\xb1?j\xf2\xe6\x19u`\xaf\xbe\xcf\
+\x06`\xbc\x8d\x0f@\x02`f\x1d'\xd5\x92\xa8\x5c=\
+?\xebc\x14_\xc1\xe8!\x22w\x8f\xb0n\x1e\x99\xef\
+\x10\xd1\xdc\xe8J\x157k\xf4J\xbd\x5c\xad\x97\xcc\xa9\
+vw\xe90U@\x95\x14g\xe2}u\xf0\xff\xf7B\
+\x15\xc6@\xa8\x0c\x9d\x0cGR%Q\xec*s\xaef\
+\x9dH\x17\xaab\x06\x80j\xb9\xb5\xa5+\xc7\x94\xba\xaa\
+\x0d\x1bb\x9f\xed\x99\xaa\xdf\xbb\x0c\x08\x80\x09\xf5.\x19\
+D(\xc7\xa5\xb6O\xb5\x9f\x83`\x9fI\xcajT\x9a\
+\xb7\x9a\xf4\x9c\xf7\xb4\x16\xaa\xcbC\xb6\xe3\xac\xef\xcf\x1a\
+\xd3R\xb3'.\x08\x88H\x8d\x8d\xcd\x0f\xc3\xba\xfd^\
+\xad\x22 Cf'\xa9\xb8-\x00|K\xb7\x8f\xe5\xe7\
+GEt\xd4D\xcfNb\x9b\xbfj\xfb\xa7OL\x1f\
+\x8f\xccg\xeb\xfe\xb1\xd7j\xa7\x1bPP\xd4\xf2\xe7\xa6\
+\xdaq\x02\x1c-\x83\xf5\x80\x8eR\x99\x07\x99u\x8a\xa9\
+\xd1*u\xef\xde\xd5H\xa2@\x07\xb5<j[_\x9e\
+\x94\xeag\x87em\xed\xae\xd3\xae\x08\xbc\xfd\x0b\xb9/\
+\x9f\xbb\xab\xd5\x0c\x82\xee\xb5\xbb~\xd2\xda(\xa5\x08\x5c\
+#hl\xd7\xfd\x05u~\xfb\xe2\xb0U\xbd\xbb\x98=\
+Ji\x94\xc0\xbc \xac+Q\xb0O\xa1z\xaa9\xd4\
+7\x9e\xe8X:\xca\xdbO\x85\xad\xebpj\xffu]\
+\x11\xcco\x19\x1c\x9a8\x09\xb4\x14P\x91%G\x8d\xd1\
+\xf2\xe9u^c\x12pL+\xa3\x16\x81\xe6\xdfu}\
+\xd73\x93HT\xaf9\xbaO\xeb2,\xa9\xfe\xbe\xfd\
+\xc1l?\xccn\x01D\x11O\xeaj\xc3\x93\x09\xd2N\
+\x97\x03\xc9\xd8:im\x1b\xbc\xfd\xc5\xb0.S\xf5\xb7\
+a\xf3}\x7fl\xfah\xa8\xc4\x17#\x08\xc0\x9c\xfb\x8d\
+\x80\xa3\xed\x9f\xa7\xad\xcc\x84R\xa3\x0f\xea\xf0\xdfw\x01\
+\xf9\xa3\xc3\xba\xe7z\xeb\xb0\x95\xb1w \xdb\x08n\xf6\
+\x96\xfd\xc0\xbe\x15\xb3>\xe6\xfd\xf6\xbf\xc3Z \xb1\x04\
+\x84\xdb\xe5\x1c\x0aByc^|f\xfa\xec\xf4\x99\xb5\
+DG\xfb\xafj\xbf\x97\x1a\x15%\x92x\xfd\xa4\x10\xa7\
+\xa8h\x05\x88\x80\x9eo\xe4\xfe\x9a\xf3\xb6j\xab\xf3\x5c\
+\xd2\xeex\xf7;a\xeb9\x0a\xe0\xa1\x191\x9d\x18\xb6\
+2\x11[&\xf0\xa4\xd4\xa08.3a\xa76 \xef\
+\xba\x01\xe4\xd59\x99\x89\x05\xc0\xb3}a{\xcf\xb0\xf9\
+\xf5\xb9a\xcdo\xfbJ\xf8m\xdb\x13\xc2r}\x1c\xd1\
+i\x168\x8f\x04B\xce\x9f\xdcW\xcd\xd79,\xbdg\
+\x0bL\xffy\xf7\xce\x08\xac[I\xcbC\xba\xc0\x87#\
+\xaeM\xdb\x85\xc2Z;\xbf\xcbD;\xbf\xfd\x87\xec?\
+\xd7\xfes5\x80\xf2\x02\x01PV?u\x8e>&\xc5\
+]f;\xaa\x01\x88\xdf\xdai\x93|\xf2\x0aT\xb50\
+\xfa\x0b\x0b\x10\xd1\xda)\xca@\xf2[b\xf6gms\
+\xdcw\x01\x80\x02(\xd4f\x01\xae~\xf3\x80h\xe3,\
+#\x98\x8c\x88j#'q\xe1\xbc\x05|Ew\x9a\xbb\
+e\xfb\xbe#\xd6@\xbf\xb4)\xa8\x9c\x13\x1b\x04@<\
+}\xd1\x00\xa9RV\x81=\xbf8\xba\x83<\xa0c8\
+\x1d\x1b\xd61\xf7\xeco\xb9\x0e\xed\x07\xe5\x87\x02b\xce\
+\x1d\xd6\x8d\x87nP\x18\x86w\xcf\xef\xbd\xfa\xe2\x17W\
+\xd7\x8c\x04\xf41\xb3\x00.\xf5=\xc9xtn\xef\xae\
+\x1d\xd61\x16]?\xe6\x07\x7f\xc9\xbc\xc1\xa0\x1bE\xae\
+\x05\x5c\x18\x02\x12\x7f\x02T\x81\xb5v\x8a\xd9&\x95\x18\
+\xed\xeeFa+@U\xfeM\xb6\x17\xdc<9,\xe7\
+\xdb]\xd6\xebq\xce\x95\xf6\x83\x126\x8cF\xf1\x8b\xc4\
+^\x96r\xd5x\x8f\xb5\xf7\xe2\x07\x01(qn\xd4q\
+\xf7\xaff\xde\xbc\xf3:\x8a\xdda.\x8a\x8f\x94\xc2\x8e\
+\x8ce\xdf\xaf\x9d\xe1\x900\xac\xf980\x16\x0ej\xe3\
+'\x90\x16\xc8+\xc9\xf9@\x02\x0c\x9f\xcf@|\xa4\xd6\
+\xd3\x04\x00\xa8\xf0_G\x91\xf6\xb1\x06_\xa9\xa9\x00\x1d\
+ \xe0\xdf\x8d3\xff\x8c\x7fg\xbc\xc6\xeb\xf6=\x18\x0e\
+4\x0d\x8c\xb7\xeb\x928\x13Gy\xce\xe2\x04\xfe\x0dm\
+\x01\xcfslS\x08\x90C\xf9\xd7\xe5\x88\xc6\x84\x12\x22\
+\xf7-\x9e\xca\xef\xdb_7\xd8S\xc0\xbf\xd1}\xf0\x8f\
+[\x8e\xb8\x10\xfa\xdd\xc9\xb3}\xa5\xab\x91\x17\xf8\xed\xcb\
+`r\xac1w\x83\x10~\xbf\xef)\xe3\xbd\xea\xbc\x81\
+\xf6s\xa9\xb5\xe0\xc8\x14\xf5\xfb\xec\x03\xcd13=f\
+\xa8}\xef7\x866kc\x86\xdb\xefM0\x03\xc8\xd1\
+\x1f\x11\x1a\xc8Q^O\xa9\xd4\xda\xb8\xd5\xee\x028\xf4\
+\x7f\x97\x09Z\x17\xd4\x12\xd8\x12\x0d\x14\x88\x9b\x18\xa9\xee\
+?o\xb2g\xad\xb5\xf7\x1c\xa7\x1c\x97C\xce\xda\xef\xb1\
+\xa8Y\xe7\x1aJ\x00\xc6\x80\xff\x9c^\xbd\xcf\xdf\x09l\
+\x1d\xe8+2\xbc\x5c\x87\x85\x8eZ\xf3\xcdR\xfd_\xc6\
+\xdd\xc6\x82\x09`\xdc}\xce\x08\xc0\xd8xlD\x16\x00\
+ \x80(\x9f\x8dAm\x91\xb6,(\x80\xc4\xda\x00?\
+\x00\x1d\x07\x95\xcf\xb5\xb0}\xaf\x8d\x11\x85Z\xe9\x83\x9a\
+o\x1b\xb1n\x0c\xae\x13\x90\x90\x81 J\xad\x0c=\xf1\
+\xa2z\xfe\xc6\x13P`\xc3\x80d\x1aw\x88+\xc7\x5c\
+\x06(\xdb\xb4U\x97\x0d\xea\xbf\x02H\x1b\x0f*\x1aj\
+\x22Ds,m\xf1\xfc\x01\x1b68\x0e\xce\xd0\xff\x98\
+J}\x05\x98Y\xbbV\x01{\x8e\x8b\x8cn=_\x07\
+\x97\x8c\x81\xf5\x0c\xe9\xbf|R\x1b\xef\xb7P\x1e\x0b\xb8\
+\xf2\xfc\x8d\xdf\xbd\x16\x07)\x08\xa3\x11\xa8\x95\x88[\x06\
+\xba\xd5\x97\xd9<\xa3\x95\x90\x01\x7fQQm\xd8\x02\x96\
+T\x9b6\x8e\xfa\xdc\x17\x85^[\xb7\xcc\x18W\xc6\x9c\
+\xe8c\x96B4\xf1\xb5\x9btb^\x00>\x14I\x99\
+-\xeb\xd9\xba\xcd\xda\xe1bL\x00\x22\x00|\x99\x19\xae\
+\xc0\x1f\xa2\x9e\x0eW\x95\x22a\xa8\xa4\xfa?\xa0\xb5\xc4\
+\xb40\x02\x8c\xcb\x13\xc3Z)\xcbR\x02r\xa3\xc5\x01\
+\x9a^4\x1d?\x1d\xdf9\xd6\x87eIR\x04:\xef\
+l\xed\x01[i\x88\xcc\xd8\xf6\xce\xdb\xbbl\xef\xdc\xe6\
+\xcdr\x90]r\x01\xc8\xaa_s\x96\x88m\xdf\x156\
+\xbf\xfe(l~}{\xd8\xdao}{\xe4\xf6\xda\xdb\
+#\xd7\xeb\xe2\xd8\xaa\x0doL\x80o\xad\xda\x13\xb5_\
+\xd3\x84H\xc7\xad\x02\xfflgX\xa5\x22j\xc3\xb3f\
+\xb8\xa8\xb1\x09<h[8}/l\x0d\x1c+S#\
+3\x22\xb0\x170'\xe0,\x10\xab\xae\x14\xa9Z=\xdd\
+!l\xfe\xf9\xbca\xf3\xfb\xfe0\xac\xeb\xf3\x9d\xb5\xad\
+\xd3\xe7\xc3\xd6\xf5E\x03\xa3\xda-\x9e\x106\xff\xfd\x13\
+\xc3\x1aP\xd3\xc4\xeb\x00\x00\xdb+\xcc\x16\xdd\x07^\x1f\
+\xb62\x0e\xaa\xfd\x16\xcd\x8b\x14k\xab\x12\x03*\xdd2\
+\xb4\xc9\x94\x88|wd\xbc[\x9e\xf3\xc6\xe9\xf0|\xbc\
+\xd3\x8a\x89s\xf0\x0aI\xd5\xfc\x8f\x8eivF\xc8\xdc\
+e&\xec\xc5+@\xa3o|T\x96Gm9\xf1\xbe\
+Zo\x1c\xfb\xec\x8b\xdeT\x97\xbf\xbc\x02\x16\xed)\xdd\
+\xbe\x0b\xa0\xa2\xe2\xf8\x99\xd9\x17\xfe\x0e\xdd\xfe\x15D\xe7\
+7gi\xcc\xabW&\x80\xb6\x8c\xfb\x1e\xb7\x94`\x1d\
+\xb8fv'xF\xd8\xbcm\xdc!\xac\xcd\xff\xd9V\
+\x07\x1f 0\x9fm_k\xdd\x00\x8e\x9e\xdf\x7ftj\
+3\x1c\xdeeZ\x89\xfcR]\x07\x14\xa7\x8fSZ#\
+\x80\xc0\xec\xd6a\x1f\xd8\xbc*l\xad\xf5\xae\x80\xe1O\
+R\xbc.\x81n\x81Q\x03\x8an\xb9\xd6\xa27`f\
+>\x1f\xa6w\xcc6\xaf\xab\xed\x9f\x86\xcd?\xff\xaf\xb0\
+\xf9\xe7;\xce\x16\xf7w\x97\xd9\x8eZ\xc5|\x0b\xb8\xc8\
+}q{\xd9\xb0\xf9}\x7f\x146\xff\xfc\xcc\xb0\xf9\xe7\
+\xff\x136\xff|\xfc\xf6\xc5\xdb\xe330\x8fy{T\
+\xd8\xba\xde\xa6\xe7\x84u\xe3@\x84\xf6\xd3aM\xeb\xa6\
+Q\xe1\x05\xf6\x00\xb3\xe9\xa3K\xbb@\xe7C1\x1c\xec\
+\x9f\xf6\xbf?\xda\xf7\xd4\x10\x83\xdb\xfbv\xd8|=o\
+\x0b[)\xe7\xa5A\x11\xe7\xd2\x13\xd6uX\xcfG\x82\
+b\x0e\x07\x03\x80j^\xca\x07\xbaR\x06\x89\x01\x99\xff\
+8\x8d\xdf\xd5u\x83p\xdd\x19`\xab]\xafn&(\
+\xec2\xe0\x1cu\x22\xb8Y\x9a3\xcf\xe2\x97\xb7Z\xf1\
+we\x0d8\xe0\xf4\xfa\xc9\x8c{~\xb3U;\x8a_\
+E$\x10\x13\xe1\xe1\xcb\xb8\x14\xa3+\xb5\x10\xaa\xa6\x9e\
+\xa8]\x96 T\x00J\xc4X\xbb;\x9a:\x11\x07\x9c\
+\xdc1\xfd\x00\x15Jz\x13\x90\xa8\xaeD\xe9\x9f\xd5\xbc\
+M \xa2\x98w\xc4\x05e.\x8d\x83\x80\x12\x80\x7f\x5c\
+X\xd7\x8d\xc0x&\x93\xae\x80\x02\x9f+`\xe3\x1f\x88\
+\x03$<\xc6nc\x00)~Ej:\x95\x88e\xfa\
+\xebJ#\xeb\x5c\xf9\xd7\xb0n?\xcd\x12Y\x0c\x22\x22\
+\x81\xc4\x91\xa3\xa7Nt\xd5\xa9s9E\x07+\x10\x95\
+\xf0\xe0\xe7\xf9O\x80\xca\xbfT\x9a!\xee\xa29\x03\xa8\
+\x128\xfa\x1c~\xadL4\x7f\x10\xf0\xcd\x1f\xc0\xc8\xf5\
+~\xe3F\xab\xe7\x82a\xf3\xfb\xdf\x14\xd6e\x9as\x1e\
+\x00\xb2+\x90\xa6A\xe0\xbaG\x8a\xbd\x00\x9a\xa6\x97n\
+-\x02\xff\x93\xf2z?;\xbf\xfb\xb3\xd9%\xe6\x94N\
+\xc3\x00\x10\xed\xbe$`\xf8q\x80\x00\x81{\xce\x8bb\
+\xfa\xf8;T\xfe1\xb0\x07\x14x\xbf\x8c\xbb\xb8P<\
+8\x02.>\x8f?\xe6:F\xad%\xf1\x0e\xf1q\xcf\
+a\xfc{\xf7\xe5\xfb\xc6\xb6\xe9\xa3v\x1f\xbf\xda\xf3\x1c\
+J%\xf6w\x22s\xcb\xc6A\xb4\xef|\x8d\x1c\xbd\x04\
+H\xe7I\x87y\x9bH\xd4\xb9\x06\x0a\xf1\xfen\x82\xfa\
+b\x08\xa9Z\x93\x5c\x80\xc5 \x08\xdc\xefj\xdd\xc2\x14\
+@\x09p\xb6K{\xb7s\xcc\xec\x8f\x81\xfd\xf8:\xd6\
+\x94\x1b\xe81s}Nb\x84\x1c\xf3\x91:\x81\x22\x06\
+Au]\x1eh:\x82\xc5`\xb8nX\x17Xz\x90\
+\x10`\x94@\xfd\xeb\x87\x92\x87:\x90\xae\x95\xe2r\x87\
+/\xb5y\x15\xe8'B\xbf\xfb\xf6\x22\xfePj\xef\xdf\
+=\x87\x1a{@\xc2*\xce\xb7|\xdf\xd8wrdr\
+\x9cSi\xc2\x1a\xe0/\xe3e\xc1\x8f\xdd\x0a\x5c\x0f\xca\
+\xfe\xda\x8eb\x19\x7f\xcfeP\xcd.\x07\xde\xb8\xa0r\
+e`[\x1a\x15\x1cD\x0c\x8bCs\x1e\xd9\x18\x05\xb0\
+\x0e\xca\x0b\xe6\xfb\x04\xb8\xe6\xab\xb6p\x9e\x9by\xe3 \
+\x80\xe4+m\xb8MX\xb7a\xe4\xf7\x94\x03\xfc\x0b\xf9\
+9#SC\xe0k\xe3\xb9@]\xf7\x82\xa8\x8e*\xad\
+D`\xa8\x89\xcbp\xa7CU\x8e\x94\xef\xb1Q\x08L\
+\x06\xb5YT\xd2B\xf6\x1d\x14\xdaQ\x01JP^m\
+\xcc\xbaI\xf8;\x88\xb9\x0c\x22\x8agf\xb6+\xa0\xb4\
+\xce1\x1a \x94\x9e\xb7\xbe\xb9\xd9o\xba\x80\x0c\xf3\xed\
+\xdf\xf2 \xf8\x9bT\xe7\xb5\xe1\xd9\x08i\x91x\x8e\xc4\
+\x00w\xf9?\x99n\xfdvSL\xa9D{R%\xb8\
+\x80\x0fj\xc2ki\x0f\x15\xfce\xc3Ub\x02\x183\
+\xbf\x92\x9a\xb9\xf9\xad\xb0\xce\xa1!\xeev\xfb\xb0\x95\xca\
+^\x22Q\xf6\x1d\x01\x8a\xf59jt\xd8\xc8\xbf\x94\xa2\
+\xaboO\xaae>\xef\x16\xf0=k\x15\x01\xdb\xbc3\
+l\x15\xedBI-\x0d\x01\xa5%\x98\x19\x99\xc9\xa8Z\
+\xf5\xbfK@\x84x\xd5\xdfd\xe9\xc4\x03\xc3\xda\x01\xb5\
+\xccO\xed\x0d\xb5\x17\xdc\x0b\xeb\x02\xc6\xc3v\x17nm\
+\xb4\x1c\x9c\x09tl\x1e\xb6yh0Q\xaa\x9d_\xb6\
+\xb5\xdb~,l~\xfdt\xd8\xfc\xbe\x7f\x0fK\x87\xff\
+\xd2\x9d\x03\xae\x86\x14R\x8e\x19\x93baM\xa3\xe2q\
+\x9d\x83\x92\x00[\x89\xeaiG\xe89S\xfd~R\xaa\
+\xd4\xeb\x12\x90\xe3\xb8\xef\x8f\x9b\xed\xdb\xfde\xd8<}\
+\x9f\x1d\x96]\x08\x9e\xd2i\x0d\xc8\xb8Y\x87\xbe\xdf\xfd\
+\xe7>9]>\xacc\xcah+\x09\xa8\xd0w\xfc\x17\
+\xc3\xd6@\xb22\xf7\xe9\x08W_\xf4;\x85\xad\xed3\
+\xb7\xc7\xcev\xdc\xfa\xfc\xed\x1b\x959MJ\xe9\xf6\xf0\
+\xb0N\xfd\xfd\xb4\xd6\xb05\x02\xae\x96y\xdf|1l\
+\xcd\x0c\x1e\xf8B\xd8\xfc\xefo\x0e[\x01\xc5VS=\
+\x8f[(A\x84\x16\xc4\xf6\xcc\xb0\xf9\xf5\x12a\x1d3\
+\xcd9\x9a}\xc6[\xc0z\xadl\xe7\xda14Z)\
+\xda\x91\xab\xf8\x1c\x7fcwLX\x024\xdb,\xd1\x8b\
+\x12\x87\x8b,\xed\xfcZ\xf8\xf0K+\xa5\xbaD\xe6r\
+\x7f\xda^<,\x03\xe1wt~\x8f\x1a\xe8\xdc\x977\
+?\xdc\xfch\xf3\xa3\xceQ\xd6\x9e\xf4\x93a]\x00\x9a\
+L\x9d\xe9\x22a\x1d5\x9f\x88\xa0\xefGq\x16\x08\xad\
+\xe2X\x8b\x98f\x02]\xd5\x05\xc6\xf9\x93]\x15\xaa\x84\
+\xe4ma\x1d\xf0\xfa\xaee~Vf4\xa9\xdcMK\
+\xe3gr}\xde4\xe7\xe7{:\x86@\x00iO\xca\
+\xe7r\xae\xf5y\x16u?\xfc\x93\x13;\xca\xb9\xd29\
+\xcc\xa2d\xf6(\x19\xdc~(\xac\x01\x0f7\x0f\x86\x8a\
+.\x15{7\x98\xed\xfa)\x96\xf7[\x9d\xc8c\x04\x10\
+o\xec\xc4Is|\xab}\xdf\xb9\x17\xcau\x01z\xba\
+y$P6?\xb3\xf6\xdc\xa6\xef\x86u\x14}\xfbw\
+\xe4\x7fo\xd2\x89\xdd\xda\x87\x89\x9e\xc5\xe9\xf2\xfd.\x80\
+M\x00\xa1\x02`\xe7\xaf\x8c\xe4\x9d\xc2V\xbf\xa4(\xe1\
+\xfc\x1d\xfb\x07\x07\x1e\x83\xc2\xfe\x99\xfbfQ\xff\x93\x01\
+\xd8\x02\xbfOt~\xb0},\xd2\x04\xd7\xee\xbaK\xfc\
+W\x0b\x85V\xe0@\xf7\x1a\xa5LJ\xbf\x04\x14oO\
+*\xb9R<\xfe\x94\xc0\x9d\x7fHd\x10\x00-\x11\xf1\
+\xfaE\xe4t\xdf\xa53\xb3\x7f\x85,)H?kw\
+\xfc\xeeE\xbb\x17u\xe7\x22?-\x99H\x8d\xa9\xf0\xeb\
+\x9d\xff\xf4\xda\x14\x0f\xd6%EiB\x02\xe4J\xe6\xaa\
+[\x0c`D\xa9-\xff\x81_\x09\xc8\xb7>\x94\x0e\xa5\
+\x86\x0cf\xdf\xd8\xad\xa3J+]\xafq\xf0y\x00\x00\
+\x1a4\xc9\xa0\xabRB\xfe\xb4\x80\xdc\xbeNTw\xd0\
+d*\xa6\x87\xf3\xdby\x90\x01[\xf9\xb39\x0e\x05x\
+\xa4FR\xf9\x07\xa3\xba;?ddr\x9a\xcf\xa38\
+\x9d\x84&?z\xd4\x02\x00\xb8\x88W\xc4=\xa36\xc0\
+\xd8n}l\x97..\xe2\xdf\x1a_q\xe3\x080\xc8\
+\xe0\xab\x91w\x1d\x1f\xcf\xf3S\x5c\xf1\xb9\x06\x01\xac\x09\
+(\x19v\xa5\x03\xe2\xab\x91\x91-\xd1\xe5~\x05\xc2c\
+\xb7\x01\x9f\xe3\xdc\xe6\xf7\x02\x18\xf8\xc9\xe2\x1e~\x9a\xf8\
+y\x04\x04\x00\x0eC\xc2\xb8\xe2\x1f\x808\xc0\xc6\xf3r\
+]#\xb3\xc0}\xd9o\xc6Ri\xfb\xb3\xebr\xbe`\
+v\x02r\xb3\xa4c\x7f\xd7W}\xa5\x8e\x9f+?\xf8\
+lT\xf4\xab\xf6=\x96\xb3\x80\xf5\x8c\xbc\xd1\xae\x9d]\
+[\xa6\x17\xce\x0c\xdee\xba\x09?R*\xce\xa9O;\
+\xd1\xc0\xb1-\xa0\x85\x7f\x0e*\xf3Eq\xa6\x8e\x7fN\
+\xd4~\xafc_xb\x1a\xa8\xcc\x02<\x99t\x0f\xd4\
+\xf7C\xf0e\xe8|\xae\xebt\x7f\x02<\x1b\x98\xcf\x13\
+\xb8^*\x03S\x99\xe8\xab\xe6\xab\x85\xfd\xf9D\xa0r\
+\x02G\xb3\xa7V\xa3\x7f\xbd\xdch>\x97\xd7\xe5\xd5\x84\
+\xc9\xeb\xab\x12\x0e\xe3\xe2\xfbm\x80\x9e\xcb\x08\xb4\x18\xdf\
+\xd3\xaa\x04a\x99\xe8\xa8t\xda\xfd\x11_\xfc\xceP\x9a\
+0j3x\x0eJ\x18\x06U\xcd\xfa<\xd7)@\x1c\
+\xdb\x93\x18w\xcfK\x9b\x95\xf1\xf9\x9a\xb7\xf7\x0e\xeb\xc6\
+\x9f#\xea~d\xdc\xf3\xfa*\x80\x17(8\x90\xc7\x12\
+\x16\x0b\xd6:\x11H\xa4\xd8b\x01<7\xcbL\xff\xd0\
+7\x17\xe5\xb6\x1c~\xd43\x07\xb1\xcf\xf3\xbc\xfc\xbdy\
+\x91\x817\x04Z\xdf\xd9Z\xa7\x10\xe2\xf1\x005>\x9e\
+\xbf\x00]&&\x1d\xd1\x12k\x1a5\x11ltj\x9c\
+\x88\xf9e\x97\x90:\xd0\xac\x03\xa5\x0e\xd4\xa0G\x0a\xde\
+\xad\x9bU&\xbeT\x823\xa3\xaa\xdfzQ\x7fS|\
+\xa9\xae\xdf\xfcp\x10\x99g\x0e\x92D\xd87\x1f\x0b[\
+\xa9\xe2\xa5\x82m\xbcQ\xed2\x83\x22\xb3\xa46\xb8\xda\
+\x00\xc9\xa4\xd0\x04Q\x9b\x9cT\xec\xdd\x9f\x85\xad\x99\xea\
+\xa2\x10\xe6\xf3\xd1W\xbe\x80\x14\xcfY7\x83\xaci/\
+GX&\x01\xa0\xf2\xd5dXx\x1e\x9eO>/\xa5\
+\x1a\xba/T\x97\x86\x8f\x875\x0a\xe6R\x13\xfc\x909\
+\x00\x8f\x8c\xf4'\xc3\xe6\xd7\xd7\x85u5\xe1Y\x0a0\
+]c\xe9\x1f_\xa5\x19\xf9\x9c\xdd\xf7\xde/\xec]w\
+o\x1e\xaf\xedU\xc2Z\x0d\xe4KZ\x0d\xa4y\xc2\xb1\
+\xfe\xf9h\x04\xd72}\x9f\x8aL\x9fL\xef\xf6aa\
+\x1dP\x91\xf3\x01\x95\xb2D\x04\x95\xe2\xc4\xd3\xdef\xad\
+\xf1\x0d\xd7u\xb8\xf9hX\xce\xa3g\xae\x8e\xcb\xe6\x1f\
+\xc2:\x07\x8b\xe31\xcew\x8c\x0e\x19W\x0c\x9dt,\
+\x89\xbb\xe9\xbb=\x87\x17\x0b\xf0\x91\xb5\xd2\xe5`d\x89\
+I\xd5^g\xc6]fk\xbaM\xd8\xfc\xfa\xb9\xb0U\
+-;\x94a\x9a6\x8c\xd2\x9b\x0c\x18\xa7\x7f\x0e[K\
+f6'\x86\xad\x99\xe7\xed\xdd\xc3\xe6\xd7\xbf\x09\xebD\
+\x12e\xc8\xa2\x0d\xd8\xe5R\x9c\xec\xab\x9d\x16G\x02$\
+\xd3\x07\xc3r}|<\x81\x86\x98??Z\x02\xe0\xa2\
+t\xdf-\xac\xd5\xe4\xbf4j\xf2\xa7\xb7\x87\xad\xccA\
+%\x06\xadm\xe3+3\x80\xb9Z\x07T\xbck\xb6w\
+\xa7\x7fq\xe8\xdaV\x0d01\xfdz\xd8*J\xda\x00\
+\x8cc3\xc0yh~\xce\xa3:\xf12\x80\x15QC\
+\x00j\x8c\xf2-\x12Xy\x7f2\x1c^\x9c\x00\xdc\xec\
+\xc0O7\x08\xeb\xf6\x958\xcd\xbe\xd6\x89\x8b&\x95x\
+\xfad\x8a\xf9e\xd7\x0b}\x9eK\xbb#\x03`\x01]\
+\x89\xff\xdd=\xac\xa3\xa6\xffcfbOH\xc6L\x8a\
+\xb0\xed\xfe`\x11\x81+\x0d\x8a\xcc\xe4on\xb8dZ\
+\xe3i\xc4\xf3\xd8<\x7f\xa9\xe9/\x15\xf2\xac\xd9\x9e\xde\
+:\xbdezK\xa7\x86\x1e\xfd\xdd\x9f\x9c\xe2y\x97^\
+\x99\x112\xfe\xd3\xf9\xc2\xd6\xfd\x08\xd3\xa3J\x8a\x82q\
+\x12\xeb\xfb=\xb3\xbd\xb7+I\xa1Z\xae\x16=U\xd7\
+\x89\x80\x01$\xb6'\x85\xcd\xff\xfe\xc4\xb0\xae\x9bB\x8e\
+\x9f\xb6\x8b\xd3%\xc2\xb2\x94\xe1\xbe\xeb\xfeV\x01\xbc\xfd\
+7\xfc\x9e\xcf\xaf\x0c\x1f\xe2\xb5\xe6\xc9\xf6~\xdb\xfb\x86\
+\x18!\x0a\xb5\x12\xb2rx\xb3$\xa2i[\xcc\xe7\xf3\
+\xde\xd3\xc2\xe6\xf7}8\xac+\xdd\x09x\xfc\xc4\x8e\xa9\
+\xa6M\x9d\xeb\xe1\xef\x84T\xdd/-L\x93V\xda\xa1\
+\x96\xdc\xf9,\x01\xa4\xfd(\x87\xdc\xb9\xa1\x14F\xdfz\
+\x22\x8b\xb9/T\x8d\x7f\xb4[\xbdP\xd3\x10ZJ\x02\
+R\x9ct\xf7\x99\x14y;.\xdb<\x12\xc9\xa3~\x9f\
+\x1a@%v\xfa\x84%0.\x8d\x12\x00\xa6\x9f\xb5\xfd\
+s._1\x03n\x19\xe1\xfb\xed\xee\x1b\xcf\xa7\xfc9\
+\xfe\xc0\xf73p\xa1\xb1\x22pv\xfe\xf2\x87\x00\x12\xba\
+\xa6`L\x02\x80\x88\x1ff{\xd2\x0a\x0c\x05.\x00\x00\
+\x22\xca\xc9<\xaeR\x17~\x93}\x9d\xf6Q2\xdfZ\
+\x97\x87\xd7v\xdaH\x02s\x19\xf7\xdc\x07K\xc4\x8f?\
+\xc7o\xe1\x97b@\x0d\xcc\x83\xcd\xe3\xc2:\xca\xbf\xf3\
+<U\xfdu\xc3(\xed\x1d\x00\x02f\x858#\x19\xc3\
+\x95a\xc6\x1cV\xab\xcf\xff\xe6O\xf3G\x05\xea\x02\xec\
+\xb1\x9b\xda\xa8\x8aOk\x07`.\xd0\x1cK\x02\x04\xac\
+^%V\x04\xaa\xceO\x7f'P5n\xae\x93\x9f\x8c\
+\xc9:jL\x01\xd6\x04\xfeC\xe0}P;<\xa5\xa6\
+c\x97\x831C\xee\x15P \x80\x97\xb0r\xddc\x89\
+\xfa(R\xe8\xef\xc4\x1d\x80\x14\xe3\xee\xfe0\xbbi\x11\
+a\xd8\x8e\xaa\xfe\x9e\xcb\x18\x1f\x19\x97\xa1\x9bC}\xef\
+\xd8\x15A\xa2\x1c\xa0g\xffQj>\x96^\x8bs\x88\
+6&#z\x7fe\xfa\xfb6b\xe7\xeb\x90\x85<\xa8\
+i\x02T\x7f\xd1\x0b\xcdv\xc1\x1c\xb0\xcfw\x01\x84\x89\
+\x09\xf1\x0b|\xa8\xaf\x85\x16\xc0(\x19\x18U\xb2}\x0e\
+*\xcb7\xc2\xba\xcc\x9c\x1b\x15hB\xc8\xc7\xccu_\
+\x9a\xd0\xf7\x87\x17px\x1fG\x1a5c\x10\xe3\xd3\x06\
+\xa4\xa8\xfa\x1c\x0c\xd7\x09Q\xf4\xf9(\xb9J\x00 \xe7\
+\x0e\xb4\x0c\xf0\xe6\x03~\x11)\xbbA\xd6\xb4\x1e\x95\x99\
+9\xaa\xd4\xd7]\x02\xb6\xca0\x5c\xb8\x02\xd7\xe5\xfa/\
+\x97\x99;\x00\xc6\xa8\x22i\xe1\xc8\xf0e X\x81\x85\
+\xda\xea5\x13\xbf\x000jO\xbe\xb4\x88lm\xae\x91\
+\xdd\x05\x12\x01\xae\xf1>'\xd1\xc5\x11\xd8Q\xdb\xaeM\
+\x16ue\x07\xc6\xf9\x86\xae\x07\xc4e\xb2\xdd\x5c\xf5\xd9\
+\x06\xa0\xd8\x90\xdc\x97\x0dGw\x03\x1a\x03\xaeS{\x15\
+\xa2$\xae\xf7\x94\x1c/\xb5i\x00\x05\xe3\xf1\x93\x018\
+\x1a\xdb$\x9a\x7f\xe3\xab\x85z\xee\x04\x18\x94r\xd8\x08\
+F\xca\xd9(\x068R\xee\xbe\x10\xd6\x01LD\xe1\x1e\
+\xba\x04n\xc5<\xd1n\xc7}\xa3\x22;\x80\x1d\x8c\x0e\
+\xd2k$\xe3D\x17\x01\x01(`\x04\x95\xc8:\xd6-\
+\x808'\x87\xa1\xba)$`\x85\xb2o\xa3M\xea\xfc\
+A@\x83\xbe\xc6\xe9\xf0T7\x01\x99\x09\xed\xce\xb2\xcd\
+U=\x7fm\x10\x89\xaa\xf9O{\x15\x227y\xe0\xcc\
+niS\x13\x17\xa0\x95\xba~\x1e0\xb5\xaf\x10\xdf\xb1\
+?\xc9\x10\x187\x8eO^W\xd5\xf6\xdb\x172\xe3\x84\
+y@E_\xedoe\x22\xd4\x84\xd3>\xc8\x80\x02s\
+Gf\xb9\xc4\x9786C\xe9F\x01\x81\xde\x07i\xd7\
+\xbeI_y\xc0kR^\x0b\xe8|N~\xae\x83\x9d\
+\xe8Q\x8a\xf3\xd5A6j[\xa0\xdef`\xbcw\x9b\
+\xbd\xdb\xee\xcd\xdf\xb7}ZX\x0b`\xaf\x15\x01\xac\x0c\
+b\x1d|\xe6]\x96*\xb4\x1a\xf5\x10A\xfb\xbb\xb0\xee\
+\xa0\x16\xc8\xe8\xd7\x9dm\xd9J\x859\x99\x05\xda\x1b\x02\
+\x18\x9a\xa8[0b>\x18\x96\x8e\xed\xe3\xba\xee\x152\
+\xa5\xc4C\x83\xefq\xbb.3\xea>\xed\xa3\x19 \xed\
+\x9e\x13\xd6\x9d_\x1c\x0bmo\xaf\xb4d\xc4\xa6\xff\x0c\
+K\xc7\xfc\xb8\xaeV\x96f\xc3\x97\xb3\xdd[2u\xa6\
+/\x86e\xe9\xc1\x7f\xa5Z\xfa\xf3;\xc7/Kad\
+d\xab\xdd\xa6\xae\x0c\x18\x14\x18:\xa8\xb7\xd4\xb2\x93\x9a\
+\x5c\x1a\x06)b[\xcf%\xf2\xa1wYk|\xb7\x7f\
+\x14\x96\xeb\xf1eM\xbd?\xac\xb4H\x1a\xa0\xf5\xdc\x14\
+\xef:\xa4\xab\x08C\x05\xd6\x96S;\xc1\x14\x89,&\
+\xca\x1b\xc2:Ub\xfb\x00\x8ac\xee/\xd3%g\xbb\
+Tf\x02o\xbf2\x146o\x9e\xed-]\xb7\x1b\x14\
+\xe7\x0c\x84\xb7/\x0b\xeb\xf6\xb3\xdc\x7f\xa6\x0b\x85\xcd\xaf\
+\x17\x9b\xed\xa2\x1d\xd0g\x7f\xcbu_m\xfe~>l\
+~\xffWg;%\xef\xef\x94\x06\x844\xed\x8c\xddm\
+\x96\xf1\xb5\xce\x0e\x9c\x18\xb6\xaa\xeeO\x1f\x0b\xeb\xa8\xf3\
+\x18\x00\xaf_\xf6\xf3\xd9\x9d\x5c(\xbe7_\xe6\xc7\xee\
+\xb0\xb0\x06\x90\xde\xa0\xf5O\xd7f\xf9\xdc\xa9\x01\xa0d\
+\x89\xdfC\x0c7\xdb\x1f\xeen\xb4\xf4?\x0f\x18 \x80\
+\x80\x06\xcc\xbc4\xfd\xb4\xd3\xbb\x1aj\x00KP\xfb\xef\
+\xb2\x96\xb6\xd4\xf9\xaa\x94Q_z\xfb\x08\xc6\x99\xf6w\
+\xf7oV\x22\x9cU\x22\x94\x0c\x91b\x00d-\xbev\
+\xbbD\xdc\x9a\x98\xe0\x1cp\xee\x1d2\xdb\xb9\x92\xa2\xfe\
+\x8f]\x06\xfb>\xcdV\xa0\x0f#\xc3>\xa5\xfdh\x96\
+>L\x8f\x9c\x1e5=2\xbb*\xbc\xb4\x01\x96\xf7\x0a\
+\xc0\xb2\xf5\x85\xff\xc5\x8eJl\xde\xa5\xc3\xbc\xbd\xd8l\
+\x17\xcd\xf9\xf7\xd1n}\xfcm\xd8Z\xdaT\x8c\x0a\x1a\
+%1\xbbNN\xa0\xa0\xeb\xaa\xd0DG\xef\xb7\x9e\x7f\
+\xad\x96\xfd\xb2\xdd9o?\x00\xc8e\x09\x0d\xaa\xf7\xee\
+)s\x00\xf9\x94\xb6_/\x0e\xbc\xf3\xce\xb9\xfc\xbe,\
+!\xbc\xfb2OG\xe6n\xcd+]\x91n\x90\x81\xae\
+L\xa7\xda{\xfb\xbf\x00H\xc0\xc1/\xbaRR\xf1\xed\
+\xdbj\xfd\xf9\xc1\xce)\xb5\xef\x98\x0eJs\xf8\x012\
+\xc1\x98w\xfc#\xa2\xc8\xba\x04$\xa0X\xccL\xfbp\
+\x9eC\x80\xe0Z\xaf\xfcc\xb5\xf42\xdd\xc9lC\xad\
+wno\x7f%l\x15o\x15\xbf\x94\xffO\xcc\x13\x15\
+?\xe7_i\xe2\x08\xc4\x04\xca\xba\x82\xe9\xc2d\xdc\x5c\
+\x97\xd2\x05\xe7\x05\xffK\x00\xcc\xaf\xd1\xc6\x11cA)\
+\x5cj\x0b\x15p.\xd0\x16\x1f\xb9n@\x0b\xa6\x06\xbf\
+\xef;Cb\x0dpe\x1d\xf0C1\x16$\x0a]\xdf\
+\xd0\xc7\xbe\xfe\xce\xbcY3\xf3\xcb\xfb\xf8\xdf\xa3\xea\xfe\
+;\x96\xd2\xa9\x0a@\xcd3\x81<\x06\xb4\xee\x16\xe3\xf5\
+\x8c~\xb5\xf3\x96\x18\xde(\xa6w\x0e\xea\xfb\xc5\x10p\
+\x7f\xfe\x9d?e\x9c\xc4+\xfcH%\xb1\xbeG\xe0\xed\
+\xfb\xc6\xb6\x82_\x1fJ\x9bGq?q\x99\xfbp\xdf\
+\xd6\x99\xf8sd\x10(q\xa0\x85\x90\xf1Q\xc5o\xd6\
+\x1b\xa6\x91u8v\xedp`K\x98&\x00\xb8\xbf\x85\
+\xbb}\x9b\xbc\x98F=\xc5\xdbD\xf6 >\xbbP0\
+*\xe3\x9a\x81[s\x08o\xd6!v\x10\xc0\xf8\xff\xbe\
+?\xa4@\x13Ruj\x93\xb5;8\x83\xaa6\xdbF\
+\xe8\xfb\x05hc@?\x8a\xa1\x8dj\xf52\x9e>_\
+\xad\x85L%\x87D\x00\x7f\x93\xcc\xfc\xa0\x80\xa4zh\
+9t\xd4\xbd\x05\x0c\xfe.\xfb\x8a\xd7\x86\x86\x22s\xfe\
+\x0cp\x8d\xe7y\xf2\xefR\x85\xbe>g\xbd\x8fe\xa1\
+\xbb\x7f\x0fX\xad\x94@\xcb\xefm\x9c\xbe\xcfx\xa2f\
+\xa12\x09\xe0 E\xc6\xd3D\x94\x01u=k?\xcf\
+e\xfc\xfc^\x86,\xdb\x05\xd5s7\xd1,\x04\x07\x8d\
+\xda8\xb5\xb6\xda\xf4\x09\x949\xde\x16B\x8e\x98p\x8d\
+\xa2\x00\x00 \x00IDATs\xd5\x12\x09h\xa9\xb4\
+s\x5c \x8f\x00+\x0b\xceu\xa6\xc3R\xc0\xcb\xf5\xc3\
+V\x07l\x1e\xcbe\x01\xa9\xad6.?\x97\x01\x8f\xf1\
+\x04 XP\xe6\x9d\x8d\x03p$\x907\xeeJ\x19,\
+H\x084q\x1a\x81\xa6q\xf2\xfcQ,\xef\x1b\xb6\x22\
+\xc8\xc5H\xc9\x0cX\x1d\x08\xd4\x911\x0b\xd4\xfe\xeb\x16\
+`\xe3WZ\x92\x8e\xa5\x0cq=\xafq\x9d\x8d\xa2/\
+\x80\x12\xd7\xed\xb9\x00\x0e\x86\xb6\x95%\xbe(P\x01\xec\
+)\xb5xtXG\x95\xe3h9H\x8d\x1b\x0a\xa7\xf1\
+UCo\x9cQ\xb7\xb4O\xcc~\xc3E\xe1=v\xe9\
+\xf7\xadf\xba\x00\x04\x07:\xe6\x05\xb1/\x0c\x0a\xea\xb7\
+\x1c\xef\xd4\xfa\xa8@\xcc\xfaDAt\xdd\xe6\xa3q\xcc\
+\x7f\xdf\xfcS\xd8Z\xbb\xa9+\x00\x87c\xf3gaM\
+\x1d|\xb6.3r\xf3f+\x00\x94m\xe9\xb6\xff;\
+\xac\x03\x1a\x95x\x10GR\xfa\xa1mh\x8a\xaaUF\
+\xdc\xe7j+& \x11`\xe6\xf5n\x0e\x0b[E\xda\
+\xb6\xb7\x0e\xebT\x92Qr?\x90m\xaf.9\xcf\x8a\
+Kf\x0d\xec\xdd\xb3;\xc3\xffXk\x98Q\xcc\xd5\x10\
+N{a\x8d\x1azLPCK\xbb\xe1\xcb\xad\xefF\
+1\x5cZ[\xaeG\xcc\xd3\xe0\x0da\xf3u|8\xac\
+\xab\xe9\x03\xa0D&\xf7aY\xca\xf2\xae\xb5\x06\xb3\x98\
+*\x99\xb9\xa9\xe7\x9a\x7f7;yK[\xa1C\x1b4\
+\xb9\x1c\xc8_O\x87\xf6g\xbb\x1aq\x07t\xeewT\
+\xfc\xe7=\xeb\x88\x96\xf1\xc3h\xc9n\x03j\xbaw\x97\
+\x0c\x9b\xef\xf7\x11a\xd9^\xec\xca\x9dj>\xed\x01\xfb\
+\x9e\xcc\x95\xefA\x8d\x05\xa0\xe5~J\xa4s\xfb\xac\xb0\
+\x95b\xbe\xbbj\xd8\x1a\x00m_\x17\xb6R\xaa[-\
+\xfe\x19]\xfb\xa9\xb8\xfb\x7f\xef\x02\xa2\x18\xb7\xa7\xa6f\
+\xc7\x07\xd7}E\xcdx\xcdo\xd4\xd7\x0b\xb6\xe2\xaa\xca\
+,\xaa\xad\x9fn\x1f6\x7f\xff\xcf\x86u\xfb\xce%\xdb\
+LY\x1c\xcc\xaf\xa7\xa6I\x88\xf4\xfd~\xd8\xfc\xbeo\
+\x87\xcd\xbf\xbf\xe3lw\x98\x7f\xbe\xd8l\x17]\x03n\
+j\xcf(\xd2\x02P\x99\x9c\x16\xc8\xcf\xe7\xca\xf4[a\
+k\xbb\xc9\xed\xed\xc3\xba\xfd2\xb4\x0e\xe2}7\x99\xed\
+\xc6\x19(\x9c\x91\x0e\xd5\xec\xc8\xee\xdd5l\x05D7\
+gl\xbe\xb7\xf9^\xa7\xde\x9f\xa2\x8a\x07\x1e\x15\xd62\
+\xd5\x8b\xf8\xa4s\xef\xaa\xbb\xab\xb46r\xff\xbah\xa6\
+\xa89/\x0d\x8dK4U\x8cu_W2\xa9\xadb\
+\xb6\x1d\xab\xb6pw\x08k*\xe4\x0d`\xa9\xcc\x1e \
+/z8\xbcd\x05\x84\xac\xaf\x906\x9c\xcel\xcc\x86\
+O6\xb1\xce\x04.[\x89\xcb\xbbV y\xf7\x98\xd9\
+\x1e\xdd\xed\xe7\xce\xe3\x9b\x87\xad\xc0\xa6R\xa2\x127\xd5\
+U\x02\xe3k\xa8\x09\xde;!l-y\xd9~v\xb6\
+\xcf\xad\x99\xe9\xe9\xe2aYk~\xc3\xc64hb\x87\
+\x05P\xe4\xfc\x97\xe1\xde^+\xec``\xd9}LG\
+N\xd7\x99\xae\xb3\x96\x98\xd5\xf9\x91\xcc\xafb\x82\x01\xba\
+\x05\x9c\x00\x10\x8e\xbb\xf3I\x89\x9b\xfe\xf5\xb9Oa\xf2\
+\x95\x1f}\xa9\xa6\xd2\xb4jC\xf1\x13\xd2\xc1o\x94\xf0\
+_H\x06\xd1M\xd7\xf3A\x09\x5c1\xc6\x00{\x9e7\
+`2\x19d\xfb\xde\x99L\x05\x81\x11\x7f\x05p\xcd_\
+$JJ\x83\x08\x83&K\xfd\xf6=\xabYig\xec\
+~\x12\xd6e|\x89\xef%\xe0W%.\xce\x19\x001\
+\xb1f~\x83\x80\x09\xb0/\x90\x07\x5cP\xf7\xa7\xb1\x92\
+\xa5)\x95\xe1%\x0e\x99~\x0c\x11_\xe7s\xb5\xd5\xcc\
+\xd2\x1f\xdd3\xecG\xc4v1@\xab\x9b\x83\xd2\x0d\x81\
+;\xad\x1f\xfb:m\xa5\x04\xdaJ\xb5\xdf\xf31\x1e\x18\
+_\xe6\x17\x7fA`\x8eyI\xac\xd8s5\xcf\x00%\
+y\xceK\x08\x1c$\xb2\xce/\xe3_\x8bc\x8c\xb3\x8c\
+\xf2\x98P\x15\xb8\x0b\xc8\xdd\x9f\xcf\x13p\xa2\xc8\x0b4\
+\x05\xe2\x18\x08\x02Z\x9f\xef\xdf\x05\xd2\x83\x96@\xf9\x9b\
+C \x5c\xf1\xd6O\x8a\xd9\xbcd\xfa\xf9\xed\x00\x971\
+\xb1\x098\x18_\xc7\xc0\x5c\xbcf\xde\x8a'0 \xac\
+g\xf7OL\xd4\xfa1n# b\xdcF`F)\
+\xe2X\x220\x96B\xfb\x5c\xf7\xe9\xf3\xc6\xd2\x8c\xb1\x1b\
+\xc3\xc8\xc8\xe0o\x8a#\xfd\xacD\x14\xe0(\x1e3\x7f\
+\x5c\xb7x)\x81\x82\xfd\x07\xa9\x0f\xc6c\xf9\xc9\x90Q\
+\xfeR\x22N?\xd7MX\x14\xff+5\xccpA\x22\
+\xae\xdcQ\xfe1\x0bL\x18\x8e\x7f\xa8\xf4~33\x05\
+W\xcd\x07\xfd\xfd\xb3\xa1\xa0\x0b\x84l\xd8\xb4\x08\x00\x03\
+\x02.\x13a\xa0\xacC\x9e\xd5\xeeT\x80\x22 \xf3\xb3\
+\x80\xc6uR\xdf\xf5\xf7\x10E\x81\x9f\xf7\xbbN\xe3\xa4\
+\x86E\x1b=\xd4Q\x80\x87Z\xfb\xb5day`~\
+o\xc2{?\xc0\xe2\x5cy\x9d\xa8\xdb\x97J\xca\x07j\
+Y\xaa\xa8n\x8eH\x0a\xfe/d ;\xaa\xc0\xbb_\
+\x01\xbe\x83\xca\xc4\xf3\xfd\xfa\xc3\x02\x14\xceI\x8c\x11\x15\
+[f_\xc0d\x9c8\x862f2\xf6\xc4\xe9\xd4d\
+\x09\xac\xf3\xf3\x89\x8b\x8c\x07\xd7\x08\xec\x94\xda+\xc73\
+\x03/\x19(j\xb9\xa5\x92m\xe3\xf5y\xc6O\xc0\xcf\
+\x01\x00\xf0d\xfb\xb1bn\xc8\xa4\x0aH\x1dx\xc6\xd9\
+\x86\xec\x80\xbb~\xb6\xd1\xb9Q\x8a\xe0`\x22\xa0\x04\xcb\
+Lf\xedy\x05\xb4\x0e\xae\xbf\x0c\xeb(z\x164\xe0\
+\xc7\xfa\xb0Q\xd8\xe8\x00B\x02\xfd\xac\xf9)\x15~\x81\
+\xee\xd8Fs`\xb0\xd4|\xe1\xb8\x8c\xc0\x90y\xc5\xe1\
+p`y\xdfX\xf21jJ\xf8\x8f\x83\xa3TB{\
+@\x1b%GF\xbfW\xd7\xe3~\xad\x0b\x1b/J~\
+R\xe7\x0bh1\x7f\xec\x1f\xaeWfM\xe9\x07\xed\x00\
+\x00W\x02\x14\xd5\xbf\x9e\x83\x92\xfbC\xa9\xf8'\xc5\xbd\
+T\xbd]G\x06\xf2E\xb1'\xd6\xa7=\x1c\xb1\xc0T\
+\x17\xafL)\x8a\xa1n\x00\x90\xdf'o\x9e\xb2yJ\
+{\x9e\x0bp\x90\xe2>\xda\xbc\xd5\xfaJ\xaa~Q.\
+\xad_\x07R\x02\x0e\xadM\xda^\xd7v/K^\xaa\
+\x0bB\x06\xa6u\xdd\xfaL\xebO\xfe\xeaE\x13`\xf3\
+\xa1\xb0\xd5\xe1\x89|Vd\xb4J\xa3\x22\x1d\xe2\xa2:\
+_e\x09\x88\xa6\xf3N\xe7\x9b\xe6\xf9t\xe0\xa8\xb0\xf9\
+\xdf\x9f\xd9\xac2\xa1{w\xd9\xbb\xf3\xde]\xe6\xd7g\
+\x86\xad\xcf\x7f\xfb\x9e\xb0Nk!\xef\xb3\xba[D\xf8\
+\xf5\xd0\x0e\xa8\xcdLT\x01\x801\xba\xf7^\x81\xb5F\
+\x88;\xbe[/\xfa\xa0\xa7\xd8\x13\x00\xa4\xd4\xe4\x058\
+4320*J^\xcekj\xeb\xa5\xaa-\xd3\x93\
+\xed\xa3J\xd5;\xff~zXXf\xbc\xdf\xdcQ\xc8\
+\xb3\xdf6\x87V-\xf2\xf4\xea\xb0y<\x1e\x1b\xb6\x8a\
+XN\xc7\x85u%\x10YZA\xb3\xa0\xfa\x94gf\
+\xf2\xc0#\xc3\x92B\xfd\xdcU\x0c\xb1\xda\x92\x05\x0c\xf1\
+\xa0.\xc0TcM\xf4\xf6\xad\x0b\xd3\xa6\xf6\x9d\x8b\x84\
+\xad\xeb\x02\xe0Q\xc0\x0b\x8av\xa8\xe4\xcf\xebk\xba\xd2\
+lW\x5cE\xf3\xea\xfbB\xbc\xef\x8e\x1d\x80\xb6?l\
+U\xa1\x9f\x8e\x9e-\xe6\xe9\x13f{b2WNM\
+ \xe5&k\xa9E\x01\x8e\xbf\x1b\xd6e`\xae\xda\x8a\
+\xed\x96\xae\x00\x8fZ\x81\x14\x80\xf0\xf6Ja-\xe0?\
+c\xf3\xfdN+$\xbbF\x10\xf5\x8c&\x85\xad$\xe2\
+\xfd\xd3\xfb\xa6\xf7u\xe7\x00Ut5\xffJa\xc2O\
+\xf8\xf6\xd0\xb5\xe5\xe2\x9d\xa3\x06(\x1e3\xc1\xce\x9b\xff\
+\x935\xc2\xda\xbe\xa9\xedT3\x9e}\xe0K\x03!J\
+\x03\x02\x88\xf9\xf7\xb0\xf9\xf5Ma\xa9\x85\xf2\xc4n\x1f\
+\x02\xac\x04\xe5<\xfc\xa6cf{f\xb6e}\xfc\xca\
+\xac\x10\xa0U\x86\x103\xcau\xda\x0f\x1f\x1f\xb6\x02?\
+M\x03\xe07\xe7\xf5\xfc\x9a\xb0N\xc3\xc19'\x10I\
+`p\xf3\xab\xd1\xb0\xae\xa3N\x03l\x01\xcc\x029\x8e\
+\xaf\xc4\xcb\x89I\x8d?!\x8aQ\xda\xcf\x8d\xe2\xbf\xf9\
+\x5c\xd8\x9a\xa8\xd9>(\xac\xd5\xa6\x87\xad\xe3\xaf\x06;\
+\x99Pu\x9f\xf6M\x0c\x0c\x9a\x0e\x11\xe8\x7f\xa7u9\
+\xf9\xb3\xd6\xe6/N\x95\x9f\xc9\xf3\xf8\x0a]\xfb\xb6\xab\
+\xef;\xa2\xcd\x8b;&\x80\xf0\xd4\xb0\xd5\x9f\xadZ\x7f\
+\x81\x0a\xb1>\xc0\x1f?\xe1W\xb2}\x1d\xb1\xcb\xa3\x9b\
+\xad\xfb\x0c\x112\x01#?O\xdb:\xa5\x0eDw\x05\
+z\x09\x9cWB\x84?l\x9e\xd1~9\xa6Y\x95x\
+\x1cT\x83. \x01x(!\x11\xb8\x00\xcc\xd3\x9f\xa3\
+^^@\x07\xa6I\xb6u,\xbf&\x99mU\xc2 \
+0\xd7\xce\x17\x95\xffr\x8d#\xbb\x9e\xf7\x98A^e\
+\x88\x93\xa2_\x9a<\xba\x09(9Q\x92\xa7\x1bG\x8e\
+O1\xe4r\xdeVi\x07\xf1A\xc0\x9e\x00\xd2\xf8\x8e\
+}\xe6\x01\xf3\xc4\xff0\x14G\xd1n\xfe\xb4\xe7\xc9o\
+\xe6\xa7\xf1\xe3FQw\xdf' Gq\x1f\x02\xfa\x0a\
+\x98Q\xd7e\xbe]\xe77J\xc4{y5~2\xe5\
+\x02Y\xfe\xbe\xbfs\x1dcw$\x81\xbeD\xa5x\xce\
+}\x89\xab0\x110M\xf8}\xff?@\xc0\xeb\xd8\xd5\
+\xc0\xcf\x80\x02\xe3\x8eI\xeb}C\x5cW\x80\xc70\x0e\
+\xf5\xf7\x12P\xc6A\xc0.\xf0\x17/a\xa0\x18\xe7A\
+<\xb0^\x95\xd6\x02\xc2\x8c\x97\x84\xdbP\xba\xbf\xb9t\
+X\x02\xe5w\xec\xfc]\xfe\xb5\xfd\x00\xc3%\xe3\x9a\xfd\
+\x07\xb5y \xea\x17n\xf5E\xbav\x80\xa8\x89\xd9F\
+\xa9\xe5\xff~6k'\xaf\xd4\x01\x01\xdfo\xd5A\xcb\
+\x00}3\x0f\xb0\x0b&B{\xd1\xae\xab\xc0\xd8\xaeN\
+`\xc1171\xfa6f\xbb.0\xb0\xe1\x0b\x08\x04\
+\xac\x026\xd4\xf3\x14{\xa9\x80\xceF\x95mx\xea\xfd\
+j\x8d/\x9f\x14\xf5^\x84\xe5\xc8\xeeg\x07\xb0\x85\xb9\
+\xb6\xb7[\x00\x94\xf1\xe7A\xa3\xe0\xa0\xc0\xeb\xa7\xf9\xa0\
+,\x00\x9f;\xb6\xf7\x18\xbb\x1b\xacb\x87K@|z\
+\x96f\x5c'\xef\x13\x15\xde\x84E=I\x04\xb7\xdaR\
+\x8d\x99\x7f\xcf\xe3Z\xcb\xf3\xde\xa1\xfc\xde6\xaf\xdb\x01\
+iA\x10\xb1H\x04\xac\xc6\xd9\xe7\x1ao\xe3(s<\
+\xb6\x17\xa4\xe1\xf0\x82D\xd8\xf7e\x009d\xd27\xb7\
+\x0c\xcbL\xdb\x11]\xdb\x0b\x1b;\xaa\x9f\xd7,\x99(\
+Q\xbf;\xe5\x02\x11\xc8'U\xae\xc4\xfa \xd8\x00\x01\
+\x81?*\x97\x9aa\xf7y\xa5<\x98\x06\xb1\x9a\x0a\xfc\
+\xb3/}\x89\x89\xc9\xe0k['\xe0\x17\xa0\xa3\xc8%\
+\x22_m_Pw\xb2\xcdI\xeb\x17}Tw\x9d6\
+*\xeb\xc3<s]\xc6\x9d\x83&p\xb6\xe1:(G\
+1N\xaf\x80\x01\xebq`\x04Ti\x07\x80\xc1\xe7\xfb\
+<@\x9e\xf5\xdaw\x19\xf9q\xb7\xd1gW\x81\xfa\xbc\
+\xacY*\x8a(\xc7\xda\xf5$ R\x81\x1ej\x1eD\
+\xda\x81\x91\xf7QT\xc6\x04\x86\xb4\x83j\x01\xc4\x13\xba\
+}N&\xddx\x0b\xcc\x01\x066d\xa5\x11\x19X\x14\
+\x13\xe3\x84f+\x85\xdf8{.T\xf7\xd5\x0c\xaa\x19\
+\xcf\xebl\x94\xf0\x17t%\x0a\x99\x91\x98\x83\x95\xb6\xcf\
+V{&\xaa\xc4)J*\xe0\x16\xa0\xb4Z\xde\xf7\xac\
+\x8e{\xa98\xe7\xc1]\xc8w:X{\xff\x16\xb6\x22\
+\xe05\xee2k\xe9\x18\x12\xe5\x9b\xe7\xe4\xf2\xdc\xec\xb3\
+j\xd8\xdf\x9a\x8e\xe8K\xb2\xc4\xe3.\xa9z|\xadT\
+'\xff\xfb%\x90\x9e\xbd\x99\xdd\x81\xdd\xda6j{\xef\
+\xb0\xf9:\xb6{\x9b\xbdy\x9e\xec?5l\xfe\xf9\xb0\
+\xd9.\xdc\x95\x5c\xa0\x8e\x9bg\xc7-\x0c\x8f\xea_\x9f\
+L\x01\x99\x0f%\x19\xb5\x8e\xc3\xfd9\xb5\xeb\x16\x92\xfd\
+\xe1\x1b\x9c\xf2o\x9d\xca\xb3y\xa9T#\xa8\xce_\xe8\
+\x18-\xb9_\x978X:V\xa5e!\xa3f\x9ee\
+\xa6T\x0df\xd5\x88\xda\xdf\x01\x824\x07\x88\xd4\xe9\x0b\
+\x0d\x08\xca\x92\x96\xcd)a\xddy\x97\x0c\x83&\xdd\xf5\
+\x86\xee\xbc\xc0 \xc8\xf6\x86(\xdaE\x9d}_X\xd7\
+~/\xd5\xb6\x0b\xd0\xca}\x08E\xbe\x00\xdd\xdcO6\
+\xaf\x09\xeb\xa8\xda42r?\x98\xce\x1f\xb6f\xead\
+\xf6\xab\xd6\xfe\xdaa\xab\xb8j\xa9}\xcb\xccefm\
+\xf33a\xeb\xf97\xfdx\xb6\x1f\xad\xcfy\xfbwa\
+\xf3\xeb\x9b\xc3\xe6\xcf9\x22\xdb\xa4e\xe63\xe0\xaa\xf6\
+\x1c\xb2\xc6}\xfb\x91\xd9>\xdc\xddw\xb6\x7f\xab\xe7A\
+\xcc4\x1c\xac\xcb\xac\xa5\x0d\xbb{\x85\xcd\xdf\xff\xc6\xe9\
+\x0d\xd3\x1b\xd6\xeb\x9d\xae3\x1d9\x1d\xd9iId\x80\
+\xb5\xbbDX\xb7\xaf\xff[\x935]\x80\xa4h+\xf6\
+\xf5\xb0n\xbf\xccy\x5c\xc05\xbf\x88\xe3)\xa0|\xc4\
+l\x11\x98\xddw\xb6\xd9\xb1\x9b\xde3\xdb{\x9b6\xc0\
+[\x9b6@\xee\x13M4noe\xba\xc8\xbcV\xfb\
+1%S\x00t\x01}\xc0\xe3W_)\xc7\xe6[\xb5\
+\x11L\x80fzZX\x97\xd9\xcc\xf9f\xbc\xb6\xff\x15\
+\xd6\x18/W\x09\xc6\xcb\xec\xce\xb7\xee\x0d{\xbf\x1d\x96\
+\x19\xf7\xdbu\x00\xf0\x9b\x9bUI\xd7\xbck\xdd\xb8\xed\
+[\xd9V\xb1\xba\xfad\x1bN\x9a1\xa5\xe9\xa0]h\
+f\xba\xaa\x0b\xc1\x03s\x7f\xbcz\xb6\x19\x05p\x12]\
+\x94a\xcfs\xa2\x02'\x8c\x9b\xfbg\x17\x1a\xcf7\xcf\
+\xcd\xdd]ww\xdb\xdd\xb5+\x8d\xe0\xa7\xd8\xf7\xaf\xbe\
+\xec;\x98\x0fU\xea\x98\xa5'\x15\x98\xe4z\xa9\x80\x19\
+\x05\xf8\x86K\xa9\xc7\xbe\xdb\xe4\xf8\x12qu\xfe[\xff\
+T\xd9\x89\xec\x0a@1\x00\xb4?\xc4\xdc\xd2\xc5GI\
+_\x06\xbcu\xce\x02\xd0\xf3\xdc\x22\xb6\xac\x94\xadj\xdb\
+1\x12F\x7fW\xa6\x1f\xb3\xcc>\xed\xfc\xe6\xa7\xd9\xf7\
+\x92\x01U\xfe\xb3n\x0d\x80\x12\xf7\x0385\x9e2\xf0\
+Q\xb0pB\x17@\x11\x1b$.i?\xe3\xc7<\xae\
+Yuw(f\x0e\x862\x06i\x8a\x06\x97\xb8+ \
+(\xe7\xdd\xee\xdba\xdd\xbc\xd3^QW!\xf7\xabd\
+X\xa9'\xe0\x00 \xe2\x5cs}\xe6\x8f\xf8\x80\xdf\xdc\
+\x8b\xa5o\xcfF\xa4[|!\xbeCmW\xfb\xcf?\
+\x07(\x08H%R\xc6@}\xc8\x5c\x1fTS?R\
+\xe3\xc5\x07\xce\x83\xec\x8aP\xa5\x15c\x80=\xc6\x03\xbe\
+\xe7\xff\x17\xf8\xbb\x0f\xf7\xc7\x9f\x11\x90\xbb\x1e\xdf7\xc6\
+g\x80\x10\x80\x81\xbf\x93y\xf7\xf9\xd4\xfd\x8d\x9f\xf8k\
+l\xa38v!X\xbb\x9d-\xdf7\xb4??(\xd3\
+O{@\x82T\xe2\xcb\xfd\x8e\xf3\xa1O\x90\xf7\x89-\
+\xf3\xc1\xf7\xf9{\xe3\x9c\xe7\xf7\xfe\x86\xfc|~\xcd\xb0\
+\xd7\x01K\x04\xf0\x87M\xb7}\xbd@%\x02\x90\xc1l\
+\x13T\x07\xc7\xa0\x9e\xd9\xb69\x99\xfd\x1fw\x0f\xd8\x85\
+\x8c\xed\xe5\xc6\xcc?\xe4$\x06\xfe\x0b\x07\xb7\xa5+\x87\
+\x10b\xce1\xa1\x0e\xcf\x81\x16\x80\xca\xf8r\x1c\xf5\xb7\
+\x15p\xa0\xc4B@\x05t2\xfa\xa8aY\xdbX\x81\
+\x95@uh\xe7p\xd0\x82\xb4\xf1g\xbb\x92\xfa\x5c\x0e\
+\xc7H\xe50qe\x02\x8c\xef\xa1\xf5\xba<p\xbf\xff\
+l.\xa8\x0b\xe4D\xc1 0\xf1\x89\x9a\xd889\x1c\
+\x02l}\xde\xab\xcdb\x22\xab_\xcf\x00\xd9\x06eB\
+\xabEr_2(&\xa4\xb6cjV\xfc\xbd\x05\xe0\
+~\xc7\xfe\xa5\xee\x9b\xc3\x8e\xb2-\xc0\xbc[\x8a\xcad\
+m\x5ce\xf41\x01R\x15\xbb9H\x8f\xe8\x16\xfa\x97\
+s!\xe4\x81\xdc\xc4v.|\x96\xcc\xfd2\x8f\xae8\
+\x04\xf6\xda\xff\x99O2\x80\x00\x02T\xaf\x9b\xe6\xf5Q\
+\xd5u\xa0\xa9!G9\xa3\xfen>\xfa\x1e\x0c\x13\x07\
+)\x07\xd0\x81\x84\xc2\x03\xb14\x1f\xad\x0b\x01\xaa\xfe\xf1\
+\xda\xd0A\x06\x01\x00\xe7\x94\xe97\x7fG\xed\x83Q\x8c\
+\x11`d\x9d\x8e\xa58\xe3\x86>\xae{\xdfc\xde;\
+\xd8\x05T\x90\x7f\xeb@\xe0\xac\xcf9\x0a\xb1Z\xf7\xa4\
+dj\xd7S\xb5\xbd\xba\x19\x10\x0bB\xf9\xa5\xa6~\xff\
+\xb0n\xbcSd\xca\x01T\xe2\x91\x90\xf9\x1c\xf7\x02l\
+|\xbf\xfb0\xbfs\xdeU\xe6 \xe7S1\x92d\x1a\
+2\xa3Z\x00\x04\xd1\xc1l\xe7&#^\x07l\xae\xbb\
+\x12\xa7\xcc\xda\xceZ_\xf6%%\x13\xaeG-\xaf\xd2\
+-\x19h\x8eH\x96\x06\xd4\xbe\x80\xea\x8cz\xa9t'\
+3\xe1\x9b\xdf\x0bk\x1a\x0fK\x06\x89\xc3\xa5\xc4\xc0x\
+\x13\x93\xfa\x9f\x8bh\xd8\xee\xf0\xb0y{9>l\xfe\
+\xf9\xb6\x0b\x85v{\xea\xf6\x9b\xdbo\xaej\xefQ!\
+\xbc7\xcf\xcb\xbdG\x85\xcd\xbf?4\xac+9\xe2\xa8\
+b\x14\xa0Hg`0:\xb2\x05P\xd0\x0e\xb0\xefa\
+\x5cEe\xe3{;F\x80L@\xd6\xd8\xcd\x81\xc3\x03\
+Cdn\xf3\xd5\xd9N\xe9\x1c\xd0\x1c\xcfr\xa41.\
+\xd4\xc4g\xd7\x9b\x0a@\x93\xa2\x0a\x90\x9c~;\xacc\
+\x0e\xa0Zg \x0f\xb9\xaf\xae\x0a(\x87\xd9\xb6O\x89\
+\x90\xd2\x19\x01uu\x83q\xff\xa8\xba\xf6Y\x8e7\x00\
+\xdc\xf7fm\xf2\xe6~a\xdd\xb9i\xfeh\xa3\x96b\
+\x97\xf6\x95\xcap+e\xcay\x5cm\x1a\xd3\xa1ij\
+\xed\xa7'\xa0\xf1\xf65#1\x1d\x1b\xb6\x02\x12\x18A\
+M\xcb\xe0\x9d\x19\xa8F\x80\x7f\xab\xb0\x15\x88h\x00\xdd\
+\x7f'\xb3 J\x0e\x9e\x1f\xd6i\x85\x04\x0c\x18@\xd7\
+\xf9\xc2:\x8a\xae\x92\x19\xcf1E;\x9b\xf2\xc1k2\
+P?&3\xe7O\xc9\xfe\xea\x87%\xe0w\x99u\xff\
+k\x22b!\xae\xf7\xdfa\xf3\xebcg{L\x8a\xd8\
+^#\x9f\xdf\xa7;\x8d\x16\xe3\x7f\xc9\x85\xf2O\xb4\xae\
+JE\xbcO\x0dz\x026u\x1e\x13\xcdJ\xf1\xb9&\
+>xdf\xc8o\xdb\x05\xeejr\x05(\x97\x0e\xcb\
+\xfd7\xf6\xf3W5+q9\x8efi\x94\xd8\x8f\x9c\
+G\xba\xb4Di@\x04\x8e/Z\xd4\xdf\xa3\x19]k\
+G\x87\xe2\x9b\x19\x5c\xa5\x07\xa5\xf1a\x9e\x11\xad\xcd\x12\
+\xa4\xedG\xc3\xd6R\x14m\x04\x95.i\x83\xa9\xbb\x06\
+\x0d\x88Ph\x08\x8d\x86*\x91\x02t\xa1\x9a;o\xd4\
+\xc4\xe6|8\xf0\xa5\xb0\xf6\x1c\xbe\xd2\x9eC2\x06\xf6\
+\x1e:\xdbC\x12@\x0e-\x86\x7f\x0e\xeb\x18_\x02\x5c\
+\xddn\x0e\x0d\x9b\xaf\xe3\x1f\xc2\xb2\xdd\xf0\xd3\xdb\xbe\xbb\
+d\xf6\xb3\xcd_\x9d\x9f\xd6-\x00Mb&\x03\xef\xdd\
+\xb3\xc3:\xbf\x09SD\x1b\xe3[-\xfeC\x05\xc2y\
+\x1d\x95\x81\x06\xe4d\x06\x1cU\xbej\xf0u\x7fA5\
+\xd7\xf6\x13\xa3\xe0\xa4\x5c\xb7\xda\xb5\xe5x\x15\xc0l\x1e\
+a(8'\xbd\x8a\x0fd\xcc\xb5\x1f\x94(\x10@\xab\
+\xf9\x17h\x09\x80\x04\x82\x80\x15~\x9fsY\xb7\x03\x94\
+\xfc\x0b5\xcfm\xdd\xe7\x01FO\xcd\x12B%8\xfc\
+9\xfb\xb9\xeb\xc9\x84Q\x13%}W\xa79\x91\x09\x18\
+\x22\x9f\xe5\xdf\xd0p\xc8}\x03\x93\xa5\xb4\x15\x00\xfd\x02\
+\xfe\xb1K\x96\x9f\xbd\xa6\x08a\xad+m\x22ex%\
+\x16\xf2\xbc-M2q\x03\xa6,\xe6\x88\xf6\x87\xce3\
+\xfb\xc5PC_@\xb2\xc0p\xd4\xec\x1a\x03a\xfb\x88\
+\xd2\x04\xff\xce\xff\x14\xe8\x8f\xa2}\xfc\x01@\x81@\xdc\
+x\x0ad\xad[\xfe\xfe\x18\x18\xfb<?\x8f\x99|\x81\
+?-\x1a\xe7\x8f\xf7\x0dm\xab\x8b\x91\x92\xdarU\x9a\
+a\x9c\x5c\x87\xf5*\x03o\xdf\xe6OI\x84\xfa;\xd7\
+'~\x01\x9c\x88\xb70\xee\x00\x19\xe3}\x19\xbf\xb1\xfd\
+\xa0\xcf\xe3_\xda\x1f\x86yR\xe3*q%a\xc1_\
+2\xceC\xf7\x88\xfdEY\xb0\xa0\xbe[\xd4\xf4%`\
+\x94\xc9W\xdb\x17\xe1\xc5\xc5r\x82Mk-geT\
+0\x07F1\x04\x1b^,\xbf\xaf\xa5H\xce))F\
+v\xcd\xb3\x09pG\xd16T\x09\x0bH\xc0$\xe0\x11\
+\x88\x1b\x10?s\xacP\xa7Q\x96m\xcc\x1e\xe0\xa8\x86\
+/\xa0\x19k\x9f}\xbe\x00\x11\x15\xdc\x81\xf3\xa3\xa1\xcd\
+\x1d\x00`\xcc\xdc\x9f\x96\xf7\xf1\x8d\x1c\x1f\x13\xda\xc4\xc9\
+\x059\xbbM\x8b\x08P\x8a\xb3\x14\xe0a\x9cz\xf1\xc6\
+C\xbbL<Uk\x1b\x90\x85\xe5:L\x18\x01\xb3\xcf\
+\x85\xe0\xdb\x10\xbe\x9e\x0b\x86\xe8X\xd4`^\xac\x9b\x80\
+Tc\xc7\x8d\xc6\xb8\x08\xac]\x87\xfb\x03\x5c\xb8.\x13\
+\xdfx\xc9\xd0\x0b\xa0\x05\xba\xb9\x80\xaa\xff6D\x15\x10\
+\xe1{/X\xb51KI\xc8G\xc3Z&r\xb6\xee\
+\xc0\xb1\xe0\xcd3\xa5\x07\x02\xf8d~l\xae\x1a\xd6\x1d\
+L\x10\xda\xcb\xe6|HG\xa2\x021\x88\xba\x92\x02\xa2\
+{J\x01\x04\xe8\xba\x1d8H\x04\xe8\xe6\x8f\x0d\xcc|\
+3nC{F\xfdgKL\xcf\xf3\x1d\x01\x22\x19\xe6\
+h\xb7u\x9e\xce\x11\x1eJ;:1\xc4e^{.\
+c\xdbP\xcc\x92\xa4H\x96\xe6\x00\xc6\x8cu?\x1e\x84\
+\x00\x0d\xcf\x1f\x02\xed`\x020\xb8\x7f\x1b\xb5LA\x02\
+0\x9b'\x87u\x8c\x1e\xfb\x82\xfb\xc8\xf6\x89\xd5^P\
+\xe0n>Q{\x8e\xd2\xa4\xa8\xe5}uX\x17(8\
+\x08\x89\xe89\x08l\xc8\x80N\xf3^\xdb\xbb\xcc<\xd6\
+\xe7\xc8\xc0fMve\x12\xad\xd7\x03a]\xe6@\x06\
+'\xf2\xb8\xaf\xcf\xfd\xf8{\x1d\x80$\xd3\xc0\x01\xf8V\
+\xb6\x01\x95\xe9\x96\xd1L\xb1&\x00m\x1dD\xfafs\
+\x00\xf5\x7f\xf6\xef\xc4~\xd2q\xdc\xde<\xac\xd3\x10A\
+\xb5\xb5\xafB\xbe\xa9+\xa3\xac\x9a\x87\xc7,@\xc6t\
+\xc8t\xee\xe9\xdc)\xcav\xb1\x95)\xb1\xb9Y\x96\x1e\
+\x1c\xbb9ns\x5cs\xc0\xff)\x1c\xf0\x02\xce\xd4\xd6\
+\x07\xb3\xe0\xad\xdd|\xb2\xeeS\x14\xccyP\x14\xfe\x5c\
+\xf7E9\xcf\xf6r5\xbf=GL\x1b\x07\xb4\xe7L\
+|S&,\xdc\xb5Wv\xed\xbc\xb2\x94\xa1\x80\x18\x8c\
+$\x99\xda\xcc@m\xde\x1f\xd6\x95\x0a\xe8:\x22\xe0}\
+\xdb\xd2\xce\x110e\xff\xa1\x86_b\xa0\xd6\xb1L\xa1\
+\xfe\xdd\xc4\xd2\xa8\x90\x0bhQQ\xdd\x97y\x9f@\x89\
+\xfdp\xf7\xd0\xb0\x15\x18\xd7\xdda{\xbd\xb0n\x9cu\
+\xb9@\xd1N&T9\xc4\xd6\x83\x00\xe21a\xf3\xbf\
+\xff\x5c\xd8\xfc\xdcO\x0b\xeb\xfc\x02\xed\xdf\x12\x10\x95\x11\
+\x93\x19\x9d\xae\x11\xd6\x89\x8e\xe5\xf8\xec~?\xac\xbb\xde\
+\xd4*\xd8\xee\x85u\xaa\xeaY\xd2#\xc0\x04\xf0\xeb\xca\
+P\x9f\x03\xe8\x08\xf8\xe7\x1fV\x91\xceb\xe6X\xbf\x01\
+8\xfc\xdfU\xbd}\xfapX\x96\x10<&\xc5\xc9\x8e\
+\xea\x02\xe3\x5c\xa7\xd568\xbb\x80TA\x1d\xa0D{\
+\xd5\xa3\xc3\xd6\x00\xbb\x12\x0b\xe6\xab\xfdZ\xa0\x12\xffM\
+\xb9Nn\xd5uqr\x1e%\xc0\x09pjj\xff7\
+\xe9\xda\xa0\xa6\x9fPj\xf9\xc4\xfb\x88\xdaq\x84\xff \
+\xac\xcb\xbcg H\xc4UM~\x01Q)2\xd8\x98\
+\x09\xf7\xed4=\x94\xcc\xa4\xe6\x846q\x8d)\x83)\
+q\xc9n=&Sb\xf3\x95\xb0\x0e`\xbc\xcc\x02\xac\
+M\xffw:i\xea\xdb\x7f\x9d\x9c~\x94@@\xbb\xbe\
+\xdf\xcb\xae\x0d\xday\xa2|\x7f\xa5\xa5\x04\x96\x84\xcf|\
+]\xdb?\x0e\xeb\xda\x9a&c\x85v\xc6\xf4\xd9\xb0\xf9\
+\xf5n\xd3\xafOwk\x89\xa9/\xb6\x04\xda_dw\
+\x97g\x84u\xa5\x0a\xa8\xd2\x1crm\xb0e\xc6\x01\xc4\
+\x12\x1c\x09XT\xa6\xfe\xf7\xb3V\x1f\x10\x90*\xf4\xa5\
+Y\xc2\xe1O\xc0\xb0\xba\xc4\xd8\xaf</\x019\x86\x1b\
+\xf1\xb9\xbf\xcf\xc0\xf3\x83)\xa6\x97\x00\x86\xeb\xaf6\xd4\
+4b2\xd3]\xfb\x94\xc4\x8b\xd2\x02\x8c1\xfb\x13\xaa\
+<\x7f\x1ee_\x9b\xcf,\xc50\x7f\x8aA\x96\x89\x95\
+\x02V\xf9\xebJ\xe7\x94\x8aP\xe7\xd7\x9e\xf9NY2\
+\xf4\xb5\x14\xbf;*\xac\xd3.\xc8}H\xe9F\x950\
+\x99\x17J\xfa2#?\xfdeX\xa7\xfeo>]1\
+\xdb!\x02\xb60\xf4\xb4\x81\x05\xc8\x00\x9a\xf9;\xfcN\
+%\xd1\xbai\xc8\x8c\xdb?s\xff\xaf}\x83\xbf\xe5|\
+U\x8a\xc5/\x03\x1c\x8e]\xb0\x8c\x1b?\x8c\x9f-\x80\
+\x1d\x135\xfc1\xc0=\x11=\x01\xff\xd8\xde\x8e\x7f\xe6\
+U@\xae\xc4\x8a\xdf&#>\x96\x1c\xf3\x07\xa9\xfb+\
+\xb5\xf1>\xe35\xd6\xc6\x8f\xaf\xfc\xaf\x91R?\x88m\
+\x17 !\xc06.\xae\xc3u\x89g\x06@\xe3 \x91\
+u\xcfe\xecR'\xb1\x82\xc1\x80\x91\xea{\xc7\xda\xfe\
+QtQ\xe6_|.\x0e\xe5\xdf\x8a\x070%\x88X\
+\xd2H\xa3yd}\xb8\xfe\xa1\x8d\xe4\xfev;_\xc9\
+\x89r\xa0s$\x83\x22~\x85.\xd0\x09\x07\xf4\xa2\x83\
+x\xdfi]w\x00\xd4r%\x01&~\x9fa\xdc\xdf\
+\x05\x1a\xf1}?\xcd\x8c\xf1\xbf\xe5\xdf]\xa5\x0b\xc8\xbc\
+\xa2d\xa3\xde\x1b\x00\xea\x87\x02z\x01\xc3\xd8\xc6n\xac\
+I:\xbd\xfa\xd1/\xff>j \x08\xc4=(\x99\x0f\
+\x01\xa4\xc0\xd3\xc1,\xc0u\x1d2\x98\xf9=\x9bk\xe6\
+\x04\x1b\xa8*\xb5\x91d[\x97y\xdb[(\xe5\xeec\
+m\x0f\xb1<\xb0C\x12\xf9\xf1\xf7\x02\x7f\x0b\x9d\xa3\xad\
+\xbdP\x8a#\xd5\x86\x8a\x19!p\xff\x85t\x10\xb4\xef\
+s\x1f\x00\x02H\x97\xf12\x0eDd\xd48c~|\
+/\xc7\x99\xa3\xb2wVd\xb1j\xbce\xe6\xb5\xcd\xd0\
+\x06\xc5\xe78\xb8\xbc\xde>\x1dk\x99w\x01V\x1eD\
+\xe5p\xa3\xa2\xbb_\x99x\xa5\x04#R\xc7a\xb0\x11\
+\xfa\xcf<Cu\xd6n\x11\x10q\x9e|\x0e\xdf\xcc\xe7\
+\xfa\xf1\xfc\x9c\x9b\xe4\xf5bf\xf8\x1c\x00\x95\xe7d\xfd\
+\x00\x988\xd6\x18\x01y\xdf%rHT\xce\xab\xc0\xcf\
+\xba\xb0\xa09\xd4\x1c\xfd\x0c\xc0K\xecO\xbb#T\xc1\
+)\xac+%\x00\x5c9P\xac\x8b\x912e\x03\xb4\xa1\
+\xd9\x1f\x88\xa9%E\xaa(\x95\xc6\xd7\xdf\xd9\x88\xf2@\
+\x81|\x17`ec\xc38\xf0\xdc8\x10#E\xd0\x06\
+n}\xabQE\xb9&6)s\x96\xd4\xe4j\xdf\x95\
+\x14m\x19\xf5\xca\x90\xbb\xef\xdc\x88K\x0b@\x86\xdc>\
+d<\xd5bz\x0e\x02\x8d;\x84um\x99\xb2\xd6\xb4\
+\xd6\x01\xca\xa9q\xc8\x8cYQ&\x0fi+\x7f\x01>\
+n\xdc\xda\xbf\xfdG\xb4\x7fkbu\xff\xdeeb\x01\
+W\x0e\x5c\xfbM\x06\x0a\xd3\x89a\xdd>\xa1T\xc2\xc1\
+x\x9fEl\xabjm\xcd\xd7d\xa8\xecn\x156\x7f\
+\xce\x8b\xc2\xe6e}\x8f\xb0\xb5\xff\xb7\xc0\xb2\x02I\x81\
+\xea\xf1\xe9\x80^bqP\x0f\xbc\xe8\xc0_\x1c\xf8\x8b\
+\xd5!\xdf\xfe8l\x9dO\xdb\x9f\xdd^\xa6\x89\xc4)\
+\xe9H\xf1\xbc9\xec~U\xa3x\x9a?\x17N\x0d\x1a\
+5p\xfa4\xe7\xf9UbC\xa8\xd42\x81\x03\xd0X\
+\x99\x00\x19!\x80\xdc\x08\xb8\x11\x0b\xcaZ\xd8\xaa\x81\x8f\
+]\xf0\x0a\xabVLe\x922\xf0\xaeZ\xfa\xcc\xf0\x15\
+\x10\xa3&\xcf\xe7j\xe3\x95\xaa\xdb\xba\xc8X\xde\xd5\xf7\
+=\xfbfW@\xa0]\xa2n\x1a\xda\x13\xa6\xc8\xa4Z\
+\xef\xcd\xcd\xc2\xbav\x84\xb9\xcf\xa8\x11/-\x85\x07,\
+m\xc7\xec_\x9ew\x89\xc8\x0a\x8c}\xaf.\x1d\xce\x0d\
+\x0e\x9b\x00\x07\x03'\x03\x1f\xa54\xa5\xd1\xe1\x1c\xe70\
+\xa5#Sm\xe4R}\xbee\xd6\x03\xc8\xfa\x95\xb0\x15\
+\xe0\xaa\xee\x0e\xc4\xe72\xc0i\x22f?N`\xe5\xad\
+\x9d\x86B\x88l>/K\x8b\xde\xb9\xb6\xa1k\x15\xdf\
+o\xccu{\x8b\x14=\xfc@\xd7\xee\xf2\xa4\xb0\x04\x9c\
+\x7fm\x05\x000\x03j\x1c\xe2\xd4\xb8n\x9e\xe3\xe7\xea\
+\x1cjT\xe6\x98?\x8fJ\xa0\xf3k)\x1e\xf8\xfb\x19\
+8>\xb3\x03\x8cST\xb0\xfc\x10\xffatD\xa9\xc4\
+\x0f\xd6.\x12\xd5\xb5 \xba\xc7\xbc1\xaf\xe7\xc6]\xa9\
+@2:\x89in\x7f5l\xfe\xbb\xdf\x0c[3\xee\
+\xa59\xa1\xed\xa1\x8c\xaf\xb6m\xc7\x84u\x99f?\x13\
+/\xcc\xdapb\xa6\xc5\xcc1_\xf4\x85\xc7@\xc9\x12\
+9%Y{\xf7\x99\xed\xbe\xdd:\xcf@\xafu\x1bx\
+\xc2\xcap<\xf0\x1ba\x1dP\x99\x00\xe3\xeeJ\x8b\xa8\
+\xe6\xee\xee\xf9=\x02\xf9\x87gI\xd0K\x97\x00tz\
+\xdf\x81\xdf?\x10\xc0\xcf\xed\xe7\xf1\xfbH\x07l\xa5H\
+\xe8\xf6\xb8\xb0\x8e\xfa\xfe\x8e\xb0\xf5\x9c\xaay\xfc\xee%\
+\x83<}$lM\xd4\xec\xde\x94\x9a\x0cJq\x12\xb8\
+\x8d6\x82\xbb\xbe\xadn\xde\xff\xeeU\xa9\xb5\x81Q\xf8\
+\xf0d\x00<7\xac\xd5\xf8/\xb5\xe7\x09X\x15\xa3G\
+\x00j\x9f\xfe\xd5\xb0.`\x03\x84\xd0\x08\xf8\xd3%S\
+\xbd\xfb\xcb\x04B\x1f\x9c5\xeb\xfc=\xb5\xd1\xa8\xceY\
+*P\x22}\x7f\x11\xb6\xb6\xcf\xab\x1ah\xda\x1fJ\xa1\
+\xd4\xca'\x83\xa6\xfcK\xcc\xb4\x04\xd6\xcc\x1f@~\x9d\
+\x1f\xf6\x05]\x84\x04J\x1fL\xbf\xe1\xed\x0b`Z\xa5\
+v\xc76[\x03\xd0\x8b\x85\xad\xc0\x7f\x01\x16\x18\x82\xba\
+b\xe5~^\x8c\xc2\xec\xd2R\xfe\x15QVm\x89\x05\
+nD\x14uk\xfa\xb9\xb0\xd5\xef\xaeR\x07\x016?\
+P\xe0\x08 \x02\xc0{\x8e\xee\xc3\xf9\x0d\x90\x10\xc7\xd8\
+O\x5c\x878\xc9\xbf\x8fLNq\xc4\xa8\xc6\xcf\x1f\xa3\
+\xa9\x05 \x1d\xba\x07\x94f\xd69\x04\xac\x07\xa9\xd4\xf3\
+\xaf\xfd\x9d\xef\x1b\xc4\xc0\xeb\x15\xd0\xa0\x0d\xe0\x18 \xfb\
+\x1e\xafC\xa0_\xda\x05c\x9b\xbc\x91\xc2?\xaa\xf2\xfb\
+=\xff\x94\x1f)\xa0w\x9e\x197\x9f\xeb\xfaF\x00b\
+hW\xcf\x0f\xa9\xfb\x1e\xefc\x00.\xea>\xf8o\xbe\
+\xc7x+u\xc5\xd0O?\xae\x804\xdd\x8f\xf8\xcdJ\
+30`\xc6\xfb\xc9\xeb\xdc_\x0f\x9ac\x18y\xd3\xf3\
+\xa7\x83\xfd\xed\xbc\xb1\xbe\xaf\xe4\xd7\x1a\xb6\xb6\xbe\x8f\xd8\
+\x9f\x09\x1enU/\xe6\xd7S\xfc\xa7\x0e\xf9\xce>\xce\
+\x07\xd5\x04\x0b\x8c\xfc\xdcS#\x8f\xe8\x1c.j\xfb\x1c\
+\xd9\xa1\xed\x5c\x054\x02\x19\x0b\xc4\xab\xdf\x0b\x5c\x92\xea\
+^\x94i\x03\xd6\xdf\xf7\xd7\xba\x09=\x8a\x09\x0a\xc8}\
+.$\xe7\x13\x999\xe6H*=\x00 \x5c \x1de\
+\x8e)&\x84\xf1\xfca\xde\x87\xb6\x19Yr\xe1~+\
+\xe3<\xd6\xf0_<\xaf\x8f#\x0e\xa0\xf0\xb9\x07r\xa2\
+\x98\xf8\x00\x11\xaa\xe1\x00\x03\x07\x92\x9f\xafp\xd6\x8c\x7f\
+\x89+\x11\xd7\x92\xc1\xf6\xdc\xdf\x9d\x01\x8aL5\x11\x19\
+\x01\x12\xe6\x81\x1a~\x19\xce[-\x19\x8d9,\xbbE\
+\xa3:\x13\xfb\x1bj!\x0b\x10q\x9f\xa8Z6N\x14\
+{\x07\xcaa\x19\xb0\xaeT\xa4e\xbc\xcd3\xd4\xab\xa4\
+\xfe\xcdW\xb1\x04\xde\x97\xcd\x8c\xf6\xfe\xfc\xbb\x9f&\xb2\
+z\x85\xa1T\xe0\x22\xf9|\xcf?\x94h\x98\x1f\xbew\
+lSi>\x00\x04 \xf5\xe67\xc6\x00\x80\x03\xe5\x1d\
+\x02?\xf4!\xae\xf5\xe0\xc0\xb0\xf0\xad\x8bQ5v\xcc\
+\xf0\x9b\xef\xa3h\x8a\x8c5-\x03\x19`\x94q\xa2g\
+\xda\xf48\x90O\x0ck\xed/\x17m\x04\xf3\xcc\xbc\xd0\
+\xee\x8d\x83\x90\x81_\x95\xc8\x00@\x942\xa8I\xd6\xff\
+Y\xcd\xa5L4J*\xe0\x89\xfa\x7f\xd6\x0a\x17\xd5U\
+\xe0\xa6$ \xfb\x0c\xd7u\xe7\x01\xaf-\x91\xdao\x19\
+\xc9\xa2\x8c;8r\x1e))*@$D\xc4\xce\xc8\
+\x1a\xe4\xd7t\x81)\x91\xb0{\x87\xcd\xd3\xe2O\xc2\xe6\
+\xc7wfX\xb7_\xc8\xe8=>\xc5\xb8>5\xbb\xc7\
+\x9fZkb90\xd5\xad\xc4<\xa2\xfe\xab4\xc0~\
+\x97\x01i\x05\x8e\xdf\x0a\xeb\xba\x10\xfcQX\xa7\xf6\x9f\
+\x14\xcb\x0a\x00\xd5\xb4\xa2\xb4f\xa6\xbe\xdaSb&d\
+Fp:WX\xeb\xc3\xde\xda\xfc\x01&6_\x0bk\
+\x0c\x83\x9b\x05\xc3\xa02)\x19\xc0V)E\xf6U/\
+18\x9a\x0b\xee'\xdb\xaeU\xc6\x9b\x88\x97ZZ\xeb\
+K\x1f\x5c\xeb\x85\xe8\x15`\x09\x90\x02\x90\xb3\x1f\x0f\x8e\
+\x896{\x95\x01\xbfu4\x88K\xed\x86c\x93y\xf2\
+\xcf\xd9w\xfe\xf6\x9dVJ\x06D\xd5O>k#\x95\
+F\x94\xf6\xc3\x0f\x97\xb6s\x9eK\xd5\xb8\xaa=\xcd\x0c\
+\xe0\xf4\x81\xb0\x14i\xfb\x83\x0e\xd0\xc9\x80tze\xd8\
+\x1a\x00\x94\xe8\x99\xf5\x95\x1a\x14\xa5\xae\xfd\xd1\xb0n\xdf\
+Ju\xf6*yB\x09\xd5\xdd\x83\xfa\xb6\x9a\xff\xecZ\
+\x00\xc0!\xd6\xb7\xf9nX\xa7:.\x80\x97\xf9!\xaa\
+\x16\x01u\xd7\xadb:&l]\x872\xd3\xd5\xbf\xfe\
+\xc4\xb0\xce\xe1\xcd\x12\x0cb\x82Ml\xef\xbb\x1d\xb5;\
+\xc7\xa9\xcd\xfb\x97t\xfe\x88\xf6[\x1c'\xd7w\xe5\xd6\
+'f\x15\x15\x0bo`^\xe7\xd3\xc7g#vur\
+\xb6\x97\xbc\xf9\x0a \x94_d\x1f\xb2\x8fdw\x85r\
+|\x03\xe8xR\xd76\x94\xe3h\xfd\xc6iz\xd1\xae\
+mr\x94(\xbcj\xfe\xfe?\x9a\xed\xa9\xf3\xebCg\
+{XR\xc3\x9f\xd6\x8d\x93\x12\x81`\x9c\xdc,\xa9\xc9\
+\xaf\xeb\x1c\xe0PVx~\x02?\x0f\xec\xb4\x0f\x04&\
+^\xad\xbfd.\xe9ZQ\xe7L\x02\xe5\xc58\xc1\x5c\
+\xd2n\xefw\xc3\xba\xf7\x0fb\xc7\x98-\xdb\x87\x84\xcd\
+n\xc3G\xc2\xe6\xdf\x1f?\xdb\x8b\xe6\x9f\xffe\xb6\xf7\
+\xe4\xbe\xf6\x8a\xf9}\xd7\xdc^k{\xcd\x8e1s\xbd\
+\xd0\xd3\xef2\xbb\x18\x1d\xce-\x8c\xcd\x0be\xe9\xd7\xbb\
+\x12\x90\xca\x80\xbe\x02r\xd4w\xe7j\xee\xcf\xdb_\x0b\
+\xebJA\x12(\xa5\xa1\xb49l\x99\xff\xd5\xfe\xef\xe5\
+\xcb~*S]\xcc\x89\xbfM\x91A\xe7\x04*\xef\x95\
+3\x10\xc5\xe4\xb1\xcen\x9b\xf3\x04\xe0\x97\xa5C\x05\xc8\
+\xe4~\xae\xff|\xf9\x1d\x17\xcc}\x0eS\x0ep\xaet\
+\x01\xa0 \xa3o=\x0em\xc7\xea\xb9\xa7\x86D\x95\xa2\
+\xd14\xca}qw\xa3\xb0\xae\xdd\xdc\xf7\xc3\xba\xee\x07\
+\x18\xa5\x12\x05(\xfeJ\xab\xee\x18\xd6u\xff!~\xcb\
+\xcf\x91H<%\xbb\x5c\xbc3\xbbO(\x8d\xc4\x80\xe0\
+o'\x80Z~\xc5/\x86u\x8c\x09\xda6\xe6\x0b-\
+\x14\xe7\x15\xe0\x00\x83\x8d\xbf\xcf/\xcdyQb\xc1)\
+\xea\x5c\x00A\x02\x92\x80\x8b*=\x13W8\x87\xf8e\
+2\xf4\xfc(\xd7\x9d\x00\xe3\xe6ua\x9d_-N\xb0\
+?a(\x0e\x22\xe6\x15\x07\x09\xf0S\x9c\xfc\xa0v\xe1\
+\xe2\x1c\x0c\xb2\xb1=\xb5\xf9z\x0e\xd4|\x1aI%r\
+\x08\x00V\xf2-\x8e\x14\x90\x0fZU\x95!\xc7 \xf0\
+\xef\xde?\xb6\xf7\xf3\xbdj\xfdG\xed\x02\x7f70N\
+\xcb?0\xbfGf\xba\xfb\x1c\xda\xcfW@\xee\xf3F\
+\xad\x03@\x02\xc6\x1f\xc6\xcb\xf8\xefc\x89\x83\xd7s\x12\
+14\x0e\xfe\xdeuIl(!!\xea\x87\x19\xa3\x14\
+\xd9}\x19\xb7\x91\xf1\x9e\xf3b\x7f}\xb1\xc0[\x9b\x19\
+\xfd\xe2e\xf4m\xe0\x81\x1b|\xa7\xd3\x06\xe8k\x85\x0f\
+t\x9f\x03 \xf0w\xe7@\xa1o\x81\xd6\xcfw\x81\x0c\
+\x8a\xf5\x11\xa9\x96\x8aJ\x1c\xd3~{\xaaV\x00\x00 \
+\x00IDAT?\xda\xc3\x5c4\xacC\xe8F1\xb1\
+\x11\xe9\xf0\xb3\xc0\x5c\x00\xe4\xbaG\xca\x8c\xc0\xc9\x06=\
+\x8a\x9fq\xc8\xfd,p\xf4z\xc8Yk\xeeQh*\
+\xd0\x15\x88{\x7f\xf6\x89\xaf\xf6b)\xd2U\x01\xb4\xeb\
+\xfe|N\x88\xb1\x96\xc9\xc4Z\xfb\x84R;?\xab\xea\
+\xbf\xfb\xe6\x00@\xee\xd4\xecK5\xd9@\x92\xda>\x1f\
+s\x0b\xd0\xe2{\x92R_\xe3e\x1cN\x1b\xda\xfe\x8d\
+\xa2\x83D\xf8l\xf0YS[\xa5\x1a\xe3\x06F-\xf7\
+\x0e\x09\x0c\xdc!\x03\xbf\x0c\x88+\xe0SS\xf8\xbbY\
+s\xfc\xf4\xc5a-*4\x00\xc0\xf7\xdc?3\x5c\xc4\
+\xaf~93Jj\xeaP\x9b\xd7.\x0b\xcb|\xb4\xb0\
+\xccc\x8c\x83#\xf3\xa0z{\xf6\x97F\xb1\xf5\xbd\x18\
+\x17\x9e7\xa0\xc0\xef\x01\x03\x02r\x0b\x1e\xa2\xe9\xfb\x1c\
+\x106\x16\x8e\x14dP\x7flTu%\x0c\xee\x83#\
+\xd0\xb7\xfb\xec\xdb\xcb\x8cT)\x0e\xfe\xed\xc2\xba\x8d\xcf\
+\xf5a28h\x00\x1a>\xd7\x06d\x03\xb5A>:\
+\xac\x03\x18\x00\x07\x19x\x0a\xf0K\x1c\x0f0$\x93\xa3\
+\x94\x22\xfb'\x97\xb8\x91\xf6n\x1c\x07\xf3]M6\xf1\
+-\xeb\xc1>\xe5\xe0\xc8\xb6w%2\x95\x9f\x8b!Q\
+\xea\xc4Y;[5\xf4\x02)\xb5\xfd\x09<a\xca\x08\
+Tj_A\xe1\x03@$eszM\xd8\xfc\xb6+\
+\x86u\xaa\xe9\x02\xee\xbc\xff\xe9)\xd3\x1fNQ[~\
+\x81\xb0\xf9\xf5>a\x9d\x98\x10f\xcf\xd1\x8b\x08]9\
+`\x00K\x8e\x1e&\x09G\x11\xc5\x91\x1a\xb6}3\xf7\
+\x8b\xedo\x85\xad\x99\xe4\xdd\xd1\xd9e \xf7\x91R\xa7\
+\xbfkX\xa7F\x9d\x8e\x07Q\xad\xca\xb0e\xed\xaf\xf5\
+\xd72\xc2/\xef\x10k\x14\xcfp\xe8\x1f\xbc\x06BD\
+\xf4j\xbf\xb2\xefe\xa9G\xb51\xc3\xc8\xc8L}e\
+\xa2\xb4\xb7\x1b\x19\x06\xd6\xf7\xa0\xedQ\xe7\x0d\xb1-\x8c\
+\xa2\xc8s>k\xa5\x98\x96\x88\xde\xfb3\x80T\x03\x99\
+\x99l\x94\xbb\xca\x94\xd0\x98\xa1I\x91\xe3R\xc0\xd0\xd3\
+\xf7=\xad\x05R\x98\x1e\xcfmV\x94\xdc\xfa\xdc\x17\xce\
+\xc7\xfe\x0b;G\xea\x8eM_|\x09\xd4\xae\xb4\x8a\xeb\
+\xd9\xaf+\x809wX'\xca\x87qD3\x05s\x0b\
+C\xcbs\xa7\x05\x91\x7f?\x9d\x1a\xd6\x01{\xee'\xdf\
+\xb7\xbdkXG\xbd\x04dk#'\x93#\x00\xa5\x09\
+\xf0\x8c\xb0\x96\x19\x9d\xad\x0b|8\xe2\xd6\xb3\x92\x87d\
+\x84M\xbf\x166\xff\xfc\xb0\xb0\xb5m\xa3v}\xa8\xd0\
+\x80\xc5\xea\x96!\xc6~\xfblo\xeb\x80\x808\x95\xbe\
+\xbf\x96<6\xf5\xf4?X\xcf\xf7V+\xff\xf8N4\
+.v\xdd\x1b\xa5_\xb2\xcd\xf5\xf3\x8d5\x83>\xfdk\
+XW\x8a\x14\xb3\xed\x06\x9d:\xb4\xf3\xd9\xfe\x7f\xab\x06\
+\x85\xd7\xe7\xb4\xfd\xf31\xf3\xe7<j\xb6\x08\xe8\x1e\x14\
+\xb6\x8e\xe7t\xcf\xb0.C\x1b\xda\x0b\xb3\xff1\xbd>\
+\xac\xa3&\xbf\xb5\x15\xd3\xac\xfbpj!\xd4\xbaM*\
+w\x95\x04\xc8\xe4\x0b\x1c\xf3{+\x00\xa3\x96O\xec0\
+\xcf\xc1\xed7\xc2\xd6\xd2\xb0\x12a\xd3f43\xa7\xce\
+\xa1\xedO\xc2\xba\x9a\xef\xf0O>4\xff\xfe\xe4\xb0\x96\
+\x88h@L\x01\x98\xc1d\x9b\xfd\xa4\xe9[\xd3\xb7\xa7\
+owj\xf0\x18:\x02;@\x9c\xf3\xcb\xbe\x90\xeb\xb7\
+\xda(\xfe\xc3\xee\x9fb~\xec\x9d{\xef\x5c{\xe7^\
+E(K\xf4\xd3\xf9\x9d5\xfa-\xdd\xf5\x83n}\xe4\
+\xbc#\x12\xb9\xbbz\x02\xa4\x03\x80Vm\xa1o\x97\xfe\
+\x02\xe0\x92c\xafV\x19\xd3\x87\x08\xab\xf3_\xdf\xf4,\
+1\x8b^\x1a\xed\x5c\xf59\x02\x08%T)v\x87\x91\
+\x00\x90\xaf\xf7+I\xc2\x94\xc3t\xa3}s|\xb3\xd5\
+\xdf\xcb\x0cx[/o\xef\xb4A\xae\x99\xfeF^\xdf\
+\xee\xada\x9d\xa6\x83\xf3;\x01X\xeb\xaf\xb4\x1e\xf8\x1f\
+\xda-\xd2h\xcaR\xd4\xd24\xc0p\x10\x00\xf37\x9c\
+\xef\xd6Q\x02\x17Urr\xb5\xb0N\x1c\x90\xdfI\xe4\
+M\xe9\x9e\x9a~\xdd\xa40\x04\x93\x09W\xc0Ljt\
+\xd4\xf5\xeb\x82c?O@\xa2\xba\xa9\xf0\xc3\xf8]\x02\
+_q\x8csA7\x03\x1a\x0b\xb4.\x8c+-\x04\xfe\
+\x95\xff\x00\xdb\xe2!~\x1a&\x8aq\xb2\xeeGqr\
+\xef\xe7\x0f\x0e\xd4\xf6J@\x0a\xb4\xdf\xddR|\xcb\xf3\
+\xfdP\xc7\xcc\x1c\x13K\x03\xb3\xba2\xde\xa3\x86\x00\x7f\
+\xcc\xab\xf5B\x1c/K5\x0f\xaa\x99\xc7\xe8\xf5\x0a`\
+U\xc3\xef\xf3\xc6\xf6\x84C\xe0\x7fP\x89\xea\xf8{\xef\
+\x07D`\xf2\xb9?\xcfcdR\x18\xef\x01x(\xea\
+\xbe\xc4\x95\xf7\xf9;\xfb\x95\xb6\x84j\xf8\xf9G4\xf8\
+\xf8E\xe2\x17\xfe\x9bq\x12\xafy\xde\xe9?\xedo\x1f\
+/\x83\xda\xab\xef\x0b0W\xb5\xf9\xb3\xaa\xd7\xfby\xac\
+m\x0f\xb7\xfb\xc7\x9dF\x80\xff\xb6\x8d\xcc~\xb0\xe8D\
+q\x1c\xf3\xb5N\xe2d\x08\x08, cIU)\x15\
+{\x13\xdauC\xcaL\xd8\xec\xcfZ\x01\xa8\x09)p\
+Y\xdb\x94\xfd\xe4l\xbb\x13X\xb0>\x172\x0f\x80\xb8\
+\xde\xd0vo,A\x00\x04\xa81\xe6x\xaebh\xeb\
+\xf8l\xcfF\x1cm\xacU\x07@\x5c/)C&\xaa\
+\x05/3\xad;\x00U\xea\xebe\x00\x07\x81t\x9dc\
+\xbb\x11\x1b<j\xb3\xdaDm\xfel\xb0\x18\x06\xdaL\
+@`\xbf\x9a\x13X\xa0a\xbc9\xf62k\xfe\xb30\
+-dL\x03\x0b\xe1\x229\x0f\xd5\xd8\x12\xb7zp\xb3\
+}\x9bgm\x8e\xd9<\xabe8^\x17\xe2+E\x9d\
+\xccR\x81\x12\xbfI\x8aU\x011\x1c<\x1b\xac\xc0\x13\
+R+@\x92\x11\xbcn\x8aA\xa2\x08_-\x9f\xbf\x9a\
+m\x19D\x99Z\xf3\x13\x10\xe0:\xac+\xe3l\xdc\xcd\
+\x17\x1b\x94\x8d\x91\xa6An,\xc4\xf1\xaa\x1f\xb9\xcf\x1d\
+\x91F\xf3\xc7\xfc\xf6\xbc\xc7\x8d\xde\xfa\xf1wc\xbb\x17\
+\xd73R\xa3\xbc\xda\x18e\x00\x12i\xad\xcc\xbd}\x01\
+\xc5T\x89\x11\x06Of\x96Q\x8f\x8b\xe2\xeb\xbe\x8c\xbf\
+W\x80\x1c@B&\x80\xda\xac\xf6\x9dY\xe39\xcf\x8f\
+g\xc5\xfc\xd8|'\xac\xdb\xa8=\x07\xa5&\xf6\x19\xb5\
+\xf3\xcf\x09\xeb2\x15\xd9\xce\xaa2\x034\x08\xa8\xbd'\
+\x85\xad\xda\x9c]\xb8\x1c\x97\xc5\x111\xbec\x86qh\
+\x1bCd\xab\x90{]\x08\x9e\x17\xb6\x22\xde\xbb?\x0d\
+\xeb\x02\xd4t\xcc7\xafN5v\xe3\x93\x0e\xab\x00\xaf\
+j\xfc\x1d\xa8\x1c0\x14\xcc\xcb\x85e\xa6\xf1\xd5+E\
+S\xad\xbb\xfb\xad}*3\x07\x15(<v\xb9\xfe\xcd\
+S\xf2\xf3n\x1c\xb6\x02\x1a\x1c\x1b\xf3c\xfb\xdba\xf3\
+\xcf\xdf\x9b\xed\xf4\x15\xd0(\x87\xe8mY\xf3\xafM#\
+\xca%q*T\xd5\xa4\x14W\xed4&\x01\xc7\x96\xb8\
++&\x89\xf5\xaa\x0b\x07QE\x8e\xbd\xfd\xdd\xbe\x9f\x80\
+\xf5\xeen\xbb_\x0f\x11\xab\xdd\xfbv\xff\xda\xba.\xc4\
+\xb9r\xbd\x15\xa8k\x22Ww]\xa9\x9c\x9bc\xc3\xd6\
+\xf9f<h\x97\x94\xa3\x98\x19h\xed\xfaJ]\x5c\xa0\
+\x95\x99\xf8\x12\x85\xc3<\xf1\xb9\x09\xac\x95Zxj\x8d\
+\x14\xf55\x19\x04\x07\xfe<l\x1e\xf7\xa7\x87\xad\xfb)\
+G~\xfb\x97a\x1d\xc3,\x01\xb5\xca\xa0h\xcf\x95\x0e\
+h\x95^\xa4\xe8\xdb\xb8O+e\xc1l\xd9\xbc\x22\xac\
+{^\x19\x98U\x8d\xb2qL5\xeeb~p\x80\x05\
+\x08\xa8\xce\x02\xa0\x04\xd4*\x13\x9d5\xa7\xa5\xaeo\xff\
+#\xba% \x04x]\xa9\xf5s\xd9\xb7y\xefl\xff\
+\x9am\xc6^\xb7f\x94\xa7'\x84\xcd\xc3\xf2\xc6\xb0\xf9\
+}\xff\x11v6\xeda9x!\x8d\x19\x19\xc0#g\
+\xbb\xce**\xa6\xbfz\xed;\xe9_L\x9f\x0e[\xc5\
+\xf1\x9a\xdb\xf6\xb9\xd4&xx2W\xe6y<=2\
+l\xd5\x18\xb0\xae\xa6\xdf\x0d\xeb\xb4\x09N\x08[\xc5\xe8\
+Z\xe0\xf2K\xeby\xdcJ\xf4w\x1ds'\xee\xfb=\
+kW\x81\x83\xc4\xc4\xf8gJ\x14t}\xc0\xcc\x03p\
+e\xc9Yk\xcfx\xf4\x0a\x1cl\xef\x19\xd6\x02\xf4\xa5\
+\xbf|\xecC_\xed2\xe7\xda\xfa\xe6\xf3ib\x9b\xf3\
+\xbfoo\x186o\x07\x17\x0d\xeb\x980\x80;\x8c\xbf\
++f&=KF\xf8[\x15\xe0\x03\xf8\x94\x9a\xfc}\
+\xd8Zz0}3\xac1q.\xd6j\xc3_\x9cb\
+\x82\xc1\xf8\x9b\xfd\x9d\xedk\xc3\xbas7\x88\xdbOZ\
+\x19\x14M:\xf2\xd5\x1dCL\xed\xbas\xdcu\xab\xad\
+wN*\x05\xcb\xc4X\xf0\x19\x1a\xa3\x01P\xce\xaf\xc4\
+\xc8I\xca8m\x05%\x17\xe5'\xf8w\x89\x97\x0c\xb8\
+1&JkH\xcd9\x0d\x1c\x80)&\x84\xc0\x9f\x86\
+N2\xd7*\xf3\xca\xaf\xc86\x85%\x1eMK\xc3}\
+f\xc0\xbc\xbbY\xd8\x0a\x08(U\xda\xfcUX\xe7\xd7\
+h\x8f,\xb3+a&\x10\xa3\xe5\xa26\x9d_\xf2\x81\
+E\xc3\xa0\xda_\x02\xc6hQ(U\xc0\xc0\x91H\xc3\
+\xd4\xb8sXW\xf2\x80\xc2n~\xad\x9aO\xcb8+\
+)\x03\xd4\xfc[X\x97\xb0t\xfe\xf0\xb3\x00-\xfc\xed\
+\xaa\x99\xc8s\xd4\xdf9\xa7\x92\x09\x89\xa1W\xfb\x0a\x0d\
+\x10] \xf8\xcd\xfc\x19\xfb\x11\xbf\xfb\x9c\xfc:\x9f7\
+&H\xc5+\xba\x1a\x8c\xe2\x85\x18\xbd_\x19D\xf6F\
+\xd1\xc3\xb1F^\x9c\x00@\x10\xf0\xba>\xd7\xc3\x1fR\
+\x92\xc2o\x04H\x0d\xddp\x0a(\xf5~\x9a%\x00g\
+\xffn\x9c<\xf7!s_%k2\xf8\x02n\xf7\xc5\
+\x8f\x1d\xe3F\x9f\xa7\xf4v\xbc\x1f\xf7?\xfa\x81\xc6\xc9\
+\xeb\xa8%0\x8a\xa3\xfb\xbd\x00^`?\x96\xc6\x8a\xbb\
+\xc6.\x0b\xfes?\xe9\xef\xeeo8\xd4ws\x22\xf4\
+}\xe8{\xb5n\x01\xea^\xd7&P\xa6v\xdfY&\
+\xf3\x8a|\x0bh\xfd\x07\x10\x88c\xb8\xa7\xe8\x8f5\xfa\
+\x90\xb1139P\x97!HE\xd5\x1e3\xf2\xe3@\
+\x8e\x13}\xacq\xf6:\xfe\xfb\x18\xe8\x8cm\x1cLt\
+\xdf\xe3\xa0\xb4 \x93*\xb594\xac\xcb\xc8\x09\xfc\xd4\
+\xf8sP\xdc\xef*R\xb1|\xdf\x853\xf0\xe7\x98~\
+7\x17*U\xd0_\xca\x8c\xb8q\x13\xe8\xe4\x81\xbc\xef\
+?3Ci\xc31\xe1F\x918\x19g\x13\xdcx\xcb\
+\x08\xdf4k\xaa\x87\xae\x02\xfb\xde\x91\x0b\xe1c\xb9\xe0\
+P\xe69:\xc6/\x1d\xae\xddqI-;O\x22Z\
+\xc9\xfc\xa8\xdaq\xd7\xff\x83|\x0e\x90M\x1b\xb8\xf6,\
+\xf9\x9c\xeb\x00\x92\xc9\xd7\xbeIm\x17\xeaZR\x83\x0b\
+H\xa1ep\xb3\x0cX]\xaf\x1a`\xaa\xf3\x97\x0d\xeb\
+6h\x19\xf6A\xed\xbf\x00\x06\xd79P\xe4\xab;\x05\
+\xb1<b\x81\x98/2\x052\xdf\x0el\x07\xc4\x08\xcc\
+\xc94\xa2\xd8\x0b\xa0\x1c4\x80\xac\x11\xf9\x1c7\xa4\xf1\
+\xf5\x9cj\xa2\x00k\xda\x1da\xac\x9c\xbb\xb4\x11\x16\x07\
+\x9d#\xee\xfb\x5c\xb7y\x96\x07\x1c\x0a>G\xa2\x10\x5c\
+\x8e\x0f@\x08U8\x0f\xda\xd2\x0c\xe0\xd8\x99\x1f\x1c\x86\
+\x14\xdb*\xed\x03\xa5\x05\x02K\xcc\x0b\xfb\x85u\x90@\
+\x15\xf15bYu\xdd\x18\x0b\xd4US|\xae\xfa\xb0\
+\xe6\xc1\xbc\xb9mX\x97\xd1q\xe0ynC\x1f\xdeb\
+\x84\xd8\x0f\xb3\x8bA\xd5\xaa\xa3Hf&F\xe9\xcf\xee\
+Ia\xeb}\xee~+\xac\x050\x8b\xa6\xc01\x0b\x00\
+R\xd4\xd6\xac\xc5\x9c\xbe\x11\xb6\xb6\xdd\xd2\xd6O`\xb3\
+}V\xd8\xfc\xf3?\x855J~\xcb\x84\xed\xce\xc8L\
+\xa5\xeb\x96)\xd6\x0f[\x86\xf82a\xad\xdd\xd8\xe2\x80\
+\x1d\x97\x14\xf3\xf3/\xfb`Tb7@\x83\x0a\xf6{\
+R[$\xe0\xb3_\xe8(\x9b\x00\xc7\xdc\xdfK\xf5\x9e\
+\x98\xdf\xd8\x06G\xe6\x86c\x17\x04\xfb\x1f' \xf8\xae\
+n\xbda\xa2y\xb5\xbe\x00>y\xfd\xb5.\x05\xe4\x97\
+\xdf].\xa8\xd5\xfb\xee\xb1\xef\x7f4f\x89\x0cE\xac\
+\xd2'\xb6L\xdb\xd2\xcf\xfcR\x8b\xca{\xa9Fc \
+d\xc0\xb4{r\xd8\xfc\x1c.?\xdb\x15\xb2k\xc2\x83\
+\xd6\x12\x87]tG<\xb0\xde\x8fvh\x05\x1ce&\
+\xac(\xc0\x09DN\xff\x12\xd6e*1<PS\x83\
+\x7f\x15\xa5&w\x9a\xed\xce+\x13k\xdb\xfe\x9b?\xef\
+\x9ea\xdd\xb8\x9a\xa7\x1c_@\xbb\xcc\xa2ue_T\
+\xbad<1\xa2\xec\x7fC\xb7\x13\xe3@c\xa7\xda\x98\
+e\x86\xad\x1ca\x01\x95\xc0\x808c^\x8f\xcc?&\
+\x0a E\x0d<M\x85\xcaHf\x89\x12\xe0A\xa0y\
+\x96\xbe\xd4\x07\xb2\x94b>\x0f\xa6\xeb\x87\xadm>\x8d\
+\x17\x15v%\x1bT\xf6\x8bb\x1c\x81\xdc\xa3:\xaa1\
+\xc7\x9d\xa3\x1b\xf0\xc5\x1b\xd2\xa1\xfbB\x06.\xbf\x93%\
+\x15\x7f\x95bj7^3x\x8dq\xf1\xcd\xb5\xff\xfa\
+t\xd5\xb0u\xfc\x0a\x108eQ\xc9\xc7\x18h\xcc\x85\
+'t\xe7\x8b@1\xb4'.\x90\xb5\xcf\x8fH \xee\
+{])\x88\xf1\xb6Or<\xedSJ\xd4\xbc\x02\xea\
+\xb4\xb1\xca\xfb\x9d~/\xac;\xd7C\x22r>\xbf\xa7\
+{\x85u\x01[j\xd3\x94\x16\xc6\xf3g\x9b\xf7\x89\xed\
+o\x86\xad5\xb0\x07\xa6\xb0n\xdd\x03`\x1e\xb50\x99\
+\x0e\x5c,l\xd5Xr\x1eT`\xc3\xcf\x12`\xe4<\
+\xdc|:\xac+!t.%c`\xfb+a)\xda\
+:\xad\xe2\x84\xdbkm\xaf\xbd\x9d\xfd\xab\x03'\x865\
+\x00t\xb6\xe6\x80/\x99H\x99e\xdf\xcb\x0fR\xcbO\
+<\x8e\xc8eR\xd1\xab\xb4R\x02\x8c\xe8b\x96dT\
+\x00\x96\x01{Q\xfaiN\x5c$l\x9d\x8f%\x02\x9c\
+\xd4\xfb\xf2\xf3\x00\xf1\xdan\xf2\x17\xf8\x09\x128\xc6\x9b\
+Hi\x94\xbe\xdc\xa2\xd30\x11p\xd0n\x92\x19\xcfq\
+\xd4^\xb5\x00\x8ed\xfcl\xfe;\xac\x03D\xd3_(\
+\xd1D\xf7\x9fb\xd4\xa5\x0d@K \xdd\xda\xe9\xeda\
+\x1d\xe0\x81\xf1\x95\xa5i\xbb\xeb\x85u~\xba\x9am*\
+\xfc\xa3h\xb6q\xe1\x9f\xf3\x13\xcc7\x00\xf1\xa8\x02\x8f\
+\x99\x00@S\xf2(\x10u\xae\xf1[$<$\x16\x1e\
+\x12\xb6\x02\xa8\xbb\x1b%p\xac\xed\xb48@)\x0d\x06\
+\xa8.Y\xfc\x0c\xf1\x89\x04\xc97v\xdf\xdc}\xb3k\
+\x13\xce\xaf\x13_I\xe0\xbe7\x19&\x98\xbdcfZ\
+|\xc4\x0f\x10\xaf\xc8\xbcc\xa4\xf1#\xed\x17\xae\xc7\xe7\
+\x08\xdcG\xd1x\xd7+\xc3\xee9\xd0\xfc0n\xde/\
+A\xa6$\xc1x\x9b\x8f\xf6\xdbQ\x13`\x9c\xe7##\
+`\x0c\xa4\xfd\xfb(\xb2h|\xf8\x03>w\xd0\x18(\
+\x06\xc3XR>\xc6\xab\xba\xaa\xd1f\x10?\x0d\x89\xa5\
+\xa6\x8d\xf2\xc4\x8e)\x9ab\xa2\x98\x05\xd6g\xad\x1f\xcf\
+%5O\xf6\x1f\x14\xd0s\x8c\xd5>z\x15P8 \
+9\xe8\x11\xdeP\xdb\xef)\xcd\x16\x98\x01\xea\x03\xfe\xd3\
+Wm\x81\xb3\x94\x1a\x5c\xb9\x0b\xcc8\xdcjI|>\
+`\xc1\xf7\x18H\xd7\xe3\xc1\x8d\xfdHG\x00`T\xfd\
+\xcf\x8cyM\x8cQ\x0c0\x07\xbe\xfam\xa3\x1a\x9bP\
+\x1c\x1bb\x1e\x02i\x1b\xa6q\xf4\xb3\xff\xbe\x9f\x0b\x08\
+\x92\xa8\xc6Z-\xb5\xf1\x16\x90\x0a\x14\xc6\x12\x06]\x05\
+\x04P\xc3\xb8W-\xd25\x93\x82\xe5\xfelh\xbe\x87\
+C\xec\xef\x95\x12Xp\xfe\xce\xc2\x86\xb0\xd9\xf0L\xe0\
+\x0b\xe6D\xb5!\xaaENu\xd6F\x94\xbcQ\xe7 \
+Z\x00\x90\xb7\xcf\xe4\xdfe\x1b\xc3\x1a\x8fl\xfb\xc2\xa1\
+\xab\xcc\x90@7\xef\xa7\xfe=k\x897/\x0a\xeb6\
+\xceQ\x8c\xef\x16\x99\x19\xe4\xb8\x1ao\x01\xfca9>\
+\x1c!\x9a\x026l\xdd\x058\xdc\x16\xaa\xd2\x03\xcc\x00\
+\x00\x01\xc4\x8e8\x8e\xcc\x8a\x03_\xb7\x00\x8c\x09\x0c\x06\
+\x0c\x04\x07\x86\x03\xc8\xfd;p<W\x08\xa1\x8dz\xa0\
+&\xc9\x08on\x1fv6H\xa3\xf5a\xbd\xd8\xc0\x89\
+\xedE\xa6\xec\xf5]\x80\x8f\x89\x92\x818\xf1\xbc\x1a\x7f\
+\x99\x1b\xaf\xa8\x8c\xa8a\xd6\x17J\xb2\x83\xd2zF\xd5\
+\xcb\xd2\x95\xaa\xed\xff\xca\xa0\xfe\xac\x8d\x16\x8a\xb6\xef\xb7\
+^\xadS\x19,\x22p\xda\x9f%\xc3\xa4\xb4\x0c\xcc_\
+\xcf\x8b\xc3\xcb\x11\xb0\x7fB\x92\xadc\x99{m\xb7\x88\
+\xa2E\x8d\xeb\xf1\x1d\x95QFW\xed`\xb6\x9d\xaa\x8c\
+\xbbu\xc9q\x97\x19V\xe2@<2\xd5_\xcb!L\
+Q?5\xd5EQ\xc3\xa0\xf9\xdb\xb0\xf5\xf9oo\x12\
+\xb6\xd6\xb6\x17%\x9c\x08\xd5\xb1\xd9\xff9\xd7}Q\xb9\
+\x05\xc8\xc9 \x98\xdd\xd3\x85j\xa9\xdf\xf8\xf3\x16@\x08\
+%\xbc\xd4\xa6\x13\x00l\x99\xb3\xfbt\x01\xa5\xe7\x87\x89\
+\xa1\xedlh/<n~\xff\xa7f\x0bj\xfa\xcbg\
+{Y\x97\xf9\xff\xb9V\xbc\xb4\xf6\xd7\x8e\xa7{r\xce\
+\xdf\x0ft\xc0\x9b\xe7\xca1\xf1\xfc\xc6\xee3\xce\x13*\
+\xc6\x99q+\xed\x09Trj\xce\x80\xc9\xd8-\x7f\xa6\
+\xcb\xa4'\xb3\x85\x03;]w\xb6\xeb\xad\x0e\xfa\xe6\xad\
+\xb3\xbd\xa5s\x94\xd5\xde:\xe7\xac+\x81w\xbeo\xba\
+eX\x97\xa1\x97!J\xe0\xa9\xda\x98%5Z\x86\xb6\
+\xb4\x1dP\xa4\xb34\xa0\x98S\x09\xbc\xd5<\xb4\x1ee\
+\xf8\x5c\x0fU\xfb\xecw\xefz\xa9\x92\x17\xd0\x17\x81\xdc\
+\xf3\xd7\xfd\xb0\x02\xbe\x5c\x0fj\xa0K\xb4\x8e\xc3\x05\x80\
+\xb1\x1e\xed\x17\x80\xd7\xa1v\xb9\xfa\xc6\xdb\xcf\xf4)\xcf\
+.)\x05P\xeaZ\x80\xf2\x9e\xcc\x8aj\xdf\x86q\x81\
+\xda\x1f\xabt\xdeo\xa6\x0b\x86\xad\x14\xe2\xed\x0f\xc2\xe6\
+\xd7\x97\x86\xe5\xfe\xff\xcbk@\xa4\xfd^\x05\xb6\xc90\
+iL\xb5\x87$ \xf1\xf6\xae\xb4!\xf81/\xcf\x92\
+\x9e;\xe7\xf9\xf5\x82d\xe2<+\x8f\xfb\xdd\x0a\x00\x84\
+\xa2FhjTW\x8al\xb3\xd6\xc4L\xe7\xf94=\
+ l}\xeeD\xd6*S\xfd\xdbak\x7f\xfb\xdd\xcf\
+\x86u\xa2\x8f\x9f\x0c[\xb5\x1c\xaa4 D\x08\x7f\xb8\
+\x06p>\xbf\xda\xf0\x11\xa1\xbc]X;\x8f\x9b&J\
+i6\x00\x92Stu\xbaY\xd8\xfc\xf3\xcf\x84u\xa2\
+s\xc4/3\xc1$\xd0\xd9\x9e7\xac+\xe1\xd0\x15\xe1\
+\xc4\xdd\x87\x03\x08\xa7\xd1\xb1\xfbA\xd6\xa4\x9f\xb4\xf8?\
+\x15\xd0+\x1d\xa3=\xa3\xc66\x03\xef\x02\x12\x7f>E\
+\x17\xf3\xf3\xf6\x9e2\xdb\x93[\xdb\xd2\xd9\xd6\x1a\xed\xed\
+\xe5\xb6\x97\xdd^\xae\xbb\x9f\x1b\x85u\xa5I2\xd7\x19\
+\xf8\x16\xa3\x8c\x98dj\x05\xec\xce\x13\xd6\xd6\xeb\x12(\
+\xab\xd9O\xc6P%\x92\x00\x85J\x04\x9c\xcb\xc4\x19\x01\
+\xf0\xba\xa3\xf0\x8f\xadOm\xee\xf8\x172\x98\x98aY\
+zS\x00\x10\xc6@\x8a\xe4\x15\x10{\x8f\xb0\xb5\xddg\
+\x01\x05\xba\xf2\xf0s\xec\xb3\xce%m)1u07\
+]\xafL4\xea<\xbfL\x09C2\xfd\xa6\xff\x08\xeb\
+\xba\x88d\x9b\xc4\x12\xa7\xc4\xb4J\x86R\xa9\xff\xdb\xb7\
+\xf8\xab\xfc\x07\x1a1\xc6\x93_\xcbop.\xf0\xf7\xf9\
+'\x80Y\xff>t\x93\xa9\xd2/\x8c4~\x95.S\
+\x12)\x006\xd7\x15\x05]wl~\xc5\xe2\xb7\xbd-\
+KM\xf9\xe3\x09\xcc\x96\xd6\x11M\xb0\xf0\xeeNI?\
+dQ\xaf\xffRK\xd0\x01\x1cOo)\xc4\x88?\xce\
+H\xa6\xe8\x81\xe6\xef\x8b\xafh\x84}k\x00D\xf8\x8f\
+\xfcf\xe7\x93\x04M\x96ZT\x00>\x8a4;7\x9c\
+\xab_\xae\xc4\xe1r\xbe\xf2\xf3\x04\xda\x98\x99\xfc[\xe3\
+F\xfc\x18SYm\xbc\xf1u.x\xaec\x97\x80\xa1\
+\xc4\xa1\x98\x09C\x97\x86\xb1\xdbUi\x00\x09\xa41E\
+\xc4\x95\xe2Q\xfe\x91n\x08\xae\x03\x03\xd4x\x8c\xcc\x89\
+\xb1+\x9d\xfb\x177z\x0e4Z\xac\x17\xdf\xcb\x7f\x19\
+E#}\x9f\xfb\xcf\xf7\xef\xaf\x07H\xb4\xe6<M\xe7\
+|m'\x03 \xf0\xc0\xa9\xdb\x9a\xf8\x88\xfb\xdfoS\
+iUg\xa7.\x0fY\x01 \xb8@\xaf\xa9N[\x17\
+:\x06\xc8\x80\x03L\x04\xffn#\xcb\x07Q\x81\xd5\xd8\
+v\xcc\x80\x8e\x0c\x83\x91\x19\xf0\xed<\x90\xbe\x9c\xedZ\
+\xae\x9b\x0bi\xcc\x5cR\xf9\x17P+-\xf0\xef\xae\x17\
+b\xe8\xf7j70+ K\xc6_\xc0\xcdA\xf9\xe8\
+\x22\xae'\x93^\x81\xdf\xc9\xa5\x02\xbaL\xd4\x9c\xb0\xde\
+_\x812\xb1\x8b\x1f\xe7\xf5\xd0v\xf8\xafD\xc8\xd6\xcc\
+\xff\x120_\x223\x9e&\x8eq\xbeD\x01=\x8b\xe3\
+vj\x026\x90%\xe3\xf9\xef\xd9\xb6\x82\xfa\xbf\xc0\xf7\
+\xf0%\x10,\xca\xdb\x9d\x12y\x168'\x05\xaf\x80\x0d\
+\x81\xea\xa7\x13)\xf5{\x80\x8a\x8chf\x846\x8f\x0c\
+\xeb\x1cr\x99\xd0W\x84\xa5c\xddQ\x88\xebyp\xf8\
+\x05\xf6)\xc6S\x00An\xacU\xa3\x98\xb5\xd5\xa3\xa8\
+_\xf5c\x951\x00\x10p\x943`\xac\xf5\x80a\xe0\
+\xdf\x01\x0d\x0eh@\x91y\x92\x99\xb8\xcaHc\x16@\
+z\x8d\xa3\xcf\x97\xe14\xaf\xccC\x81\xbd\x83\xcc\xab\xf5\
+9\x8a\x04\xaa\x19N\xc4\xbe\xd4\xf4mx\x0e\xc6\x91\x12\
+\x85\x82\x96\x0eJe\x9eQ\xe2|\xbe@\x19\xc5]F\
+\x22\x01\xc0\x02\x02P$m\x94\xf6\x09\x19D\x19g]\
+\x22\xac\x1fj\xc2j\xdf\xec_\xb4\x03\xf2\xb5\xfa\xd9\xab\
+\x9d\x12\xe0gF\xb5\xe6'\x87F\xe0\xbf\x8a\x13-H\
+\xb5\x038\x1d\xa3\x9a\xffj\xd2S\x1d~\xf3\xa6\xb0\xae\
+\x7f\xbdn\x05\xa8\x90\xda\x15&\x15R\x00\x0c\xe9\xad@\
+-\x03\xff\x0a@\xb5\x93\xf2<\xfe\xbcY\xa8_\xcf\xd6\
+Q;\x950\xa95\xd7\x0e\x8a\xe3\xa9\x1b\x81\xeb$\xf6\
+\x84y\xf1\xc4\xec\x0f\x8e\x22*\x80\xcc\xe7X%\x04'\
+/\x07S\x1d\xac\x80I\x8c\x8a\xcf$\xf2\xcdq\x92i\
+P\xe2\x90\x8e\x5c\x01b\xd4\xdd9\xca\xd9\x87\xbb\xd4\xd9\
+\x01C\x198\xcfn\xf5\x9f\x87c\xcd\x91\xab\x1a^T\
+\x5c\x8e\xed\xb0\xdeKM\x1b\x85P\xcd\xa9\x0c\x83.\x09\
+4N\xd4\x9ag\x1f\xf7\xcd\x9f\x87\xad\xed\xcb\xcaq\xc6\
+\xd4\xd1\x96*\xdbH\xd5\xf7\x18G\x8e+\x80\x11@%\
+\xe0\xe5\xa0\xe5>\x86Y0\xbdb\xb6\xe8:\xb0\x9dm\
+o\xcd\x94\xfa}e\xe8\x22\xdf\x12\x99\xe2\x17\x84\xcd\x1f\
+\xf7\xec\xb0\xae\x84 \x19$\xc5\xc4Rc\x9f%'%\
+\xde\x9a%6\xc4\xc9\x0a(w\xee\x02\xac\x9c\x97\xc4\xd9\
+\x883\xe6z\xa96}T\xf4s?\xab\x8c\x1c@\xd3\
+\xfe\x92\xa5\x03\xf5\xfdY\xeb\xbe\xef\xf5\xcd\x8aQ4}\
+=l\xfe\xf9saM\xad}\xb6N\x13%\xf7\xdb\xcd\
+\x97\xc3\xe6\xcf\xb9f\xd8\xban\x8a\x92\x9c\xcc\xb2\x12\xf9\
+J\x06\x80uM\xab\xc0\xfe\xb4\xf9\xf8l\x1f\xeb\x1c\xd4\
+\xb1f7\xf7\xef\xe6'}'\x81\xe2\x0b5\x80\xecy\
+-`\xcb\xcf/\x87\x16\x93%\xd4\xd5\xef\xb8\x9es\xd3\
+s\xc32\xa09|\xedV\xb2\xdb\x0b\xebj\xd0\xb3d\
+F\x17\x055\xd0\x9b\xbd\xb0\xae\x8f|2\x14\xa6\x0f\x86\
+\xb5\xf6s\x8b:<FSvM\xd9\xfcF\xd8\xbao\
+\xc9`W\xd7\x86\x5c\x97\xd4\xfeK\xa4\xf2\x0f\x97\x8c\xb8\
+s\xca~\xa5\xc4c\xba\xdcl\x97\xef\xc45\x1f\x16\x96\
+\xfb\xf1\xcfw\xc0g\x06\x9c\xa8\xda\xdb\xaf\x86%c\xe0\
+\x84\xf9\xb8|\xc6\xde\xd1{\xcfh~\xe9Rr\x9a\x14\
+\xf7\x03o\x0b\xeb\x80\x02b\x93\xe6\xe5\xa0\xca\xcd\xef\x9e\
+w\xb3\xcb\xee.\xdb\x80\x81\x8b\xef:\xf1d\xa5\x1c{\
+\x8f\x0e[EI\xb7w\xd9\xdey{\x97U\xa4uz\
+OXW\xd3\xfdk\xd9\xb6X\xa0\xc9\xdf\xa1\xad`\x9e\
+\xbd*KU\x88B\xe6\xf9Ym\xf9\xac\x07\xda-\x18\
+f\x02\x16\xfb\x86\x9a~@}\x06\xf8\x00\x88b\xd0\x09\
+TQ\xfc\x01\x0c\x18F\x808}\xee\x05r\x98Y\xc9\
+x\xab\xf6x\xfcp~E\x8a\xe5\xd5>\xab6>E\
+P\xa7\xe3\xc3\xe6\xcf\x99\xc2V?\xa6\xba\x93\xf0\xf7\x13\
+\xf8o\xe2\x97\x0f]\x81\xbcjS\xcdOv}\x00)\
+\xe3\xec\xfc\xd7}e\x14%\x15\xf8\xcb4\x0b\xe4\xa8\xfb\
+\xf3k$*%\x88\x9c+\xfc)~y\x8adW\xc0\
+&\x00\x14\x10*\x81\xf9\xeb\xa1\x0b\x84}\x8f\xe6\x90\xb6\
+\xbd\xf6\x7f\xa5\x8f\x02\xf2\xdc\xd7\xaa\x14Af=\xb56\
+\x0eR\xab\x1fk\xf4GM/\xfe\xffP\xe2Y\xafC\
+\x09w\xa9\xf8\x1bG\x01\xbd\xf7\xf3?\xc76\xe9\x02W\
+\x81\xf5X\xda!`\x05\xac\xf0\xcf\x94L\x02\xaa\x88\x18\
+Z\x07\xee\xd7\xf3\x90\x81W\x02\xe9\xf7\x02w\xfe\xc9\xa8\
+- >\xe4?\xf2\xa7=\xbf\x91A0\xb6\xc9\x1e5\
+\x0a\x86\x00\xfc\xa0\xee[\xd6\x8d\xcf\xcbq\xda\x1c\x16\xb6\
+\x02_\xfc\xbc\xd2\xce\xc2\xc0\xe3\x97\x12i\x07Tx\xee\
+\x12d\xf9\x5c\xf7\xd7DC\xfd\xa0\xe2\x7fF\x22CJ\
+\x03\xd6\xfe\xf5g\x15E\x00\x04\xb8a\xff\x19H\xff.\
+\x00\x1e\x99\x05\x87\xb6\xc6i\x8b\xa3xr\x06\x5c\x97\xed\
+&\x98\xbf\x07P\x0c\xfd\xcc\x0b\x19\xf2}(\xc3\x83\x98\
+C\x01\x13\x10\xb2\x91r2\x8a6|5\x1f\xac@i\
+\x14\xef\x1b\x11\xad\xb1\xef\xba\xfbs\x1f\x90+\x0f\x00B\
+(\x13)\x00\xe18\xb9\x0f\x0b\xd1\xfd\xf9\xbc\x1f\xe5\xe7\
+\x9d\x9a\xcfC\xdf\xd0\xf7&U\x14\xd5\x5cM\xd5H\xdd\
+3\xa1\x896\xfdW\x06R\xc4\xcc\xc6\x0d\xeery=\
+\xc6\x8d\xc3G\xd4\xe9\x8bY\x92!`\x06\xd9\xc8$\x5c\
+=\x03\xb4{df[\xe6\xd4\xfdB\xe6o\x98\x01\xed\
+\x8d\xa2cq\xa7\xea\xca\x91\xb6\xd09\xe4jQ\xdf\xb5\
+\xb4\xe3\xa9\x8dg\xa4\xf8\x1d\x1d6\xbf\xef\xf7\xc3:\xed\
+\x06\x8e\xf6\x15\x13\xd1\x15\xb0\x1f\x91\x01\xf5\xf5\xf3}6\
+\x1e\x01;\x04\xd6s\xb7`-l\x00\x81\xc0\xd4\xf3E\
+\x85u\xf0b\x06(eA\xf97\xcf03l\xcc\xe6\
+\x7f\x0f\xa0\x9d\xbf\x9b\x17\x9e\xaf\x0d*\xe7-\x8d\x86\xaa\
+uv\xdf\xae\xd7su`\x8f\x9a\x01\x98\x1c\x0eH\x1b\
+*\x910\xe2>\x09L\x14\xa3'3\x062i\xf5\xfd\
+#\xd3\xc8\x019\x00i\xd5\xef\x16\xe5\x90\xb6\x80\xe7\x00\
+HH*|\x89\xb7\xa1\x1e\xaa\xe9\xe7\xc8\x10\x91\xa4\x9a\
+n\x1e\xdbg\x1cT\x0eD\xf3\xd4\xf8s\xe8\x05\xe6\xd6\
+\x97}TF\xff\xae\xcd\xea\xf7\x05\x0c\xa4C]\x9a\x01\
+\xc4[\xec\x07\xe6\xab\x80[\xa6.\xfbt\x170\x05 \
+0\xaf\x13\xa0)U~\x80\xab\xae\x16Y\xb3\xbb\xfbA\
+\xd8<].\x18\xd6e\xfa3\x10F\xdd\xd5\xfem\xf3\
+\x8fa])@\x96 T;\xbct\x0c\xb5\x0d3\xbe\
+\xd5\xb7=\xbfo\xf3\xc5\xb0\xce\x01:\xb14-Z \
+0=rz\xf8\xf4\xf0\x1c\xd79\xb0\xd9\xbe\x22\xac\xcb\
+\xfc\xca,\x01\x88\x92\x1a\x18\xcd\xb6Z\xdb3\xb5\xf5\xcf\
+h\x5c\x85\xca\x846\xaa\xee\x81U\xe3\xc0\xfe\x5c\xaa\xf7\
+4\x1b\xb2\x96\xbc\xda6f&\xb42\x92\xe6cR2\
+\xab\x9d\x1e\xa6\x02\x07T\xc9\x11\x91\x9eG\xef\x1e\xd3\xa8\
+\xae\xe9\x10N\x97\x99m\xfe\xdc\x03?\x99\xed\xa7\xab\x06\
+B\xdb\x05\x8e\xec\x006\xc0L\xf6\x15\xaf\xe7\xc4Q\xc7\
+\xac\x88\xeb\xb9\xc8\xaaeR}\xd7e\x003\xe3\x0c\xc8\
++\x80\xd0\xb9\x98\xb5\x952\xef\xf6\x09\x99\xe5\xcd3\xc3\
+:\xe6\x81\xfb\xca\xcce\x01NT\x88\xf5/N \xa5\
+Jpr=\xec\x1e\x17\xd6\x05\x98\x00M\xe7,G\x08\
+`\x95\xb5\xbd\xf5\xef\xe6\x9b\xee\x1a\x8f\x0d[\x99\x0a\x1c\
+ \xda\x185OQ\x9bed\x89\xaa\x01(\xfd;\xc7\
+2\xb5\x83\x0a\xc0\xfaq\x83\xd2WG5\xa8\x9c\xf3\xf9\
+\xb2\xdd\x9bm~\x0e\xd3\x9f\x87\xad\x01)?c\xf3\x89\
+\xb0\xb5\xed\xe1trX>\x9f\xe7vm\x94\xb5O\xbb\
+_\xb35p\xe4\xc8F>\xfa9\x19\xf0<`\xcd\xe0\
+\xc6\xaa\x89uS\xa2\x94(\xe2Y{?\xfdMX\x97\
+\x01M\xb1\xd0V\x12\xf0\xf8u\xbf\x9a\x1e\x13\xd6\xb5\x99\
+\x03\x04\xfdN\x8a\xeb\xd2\xee \xde\x8b\xf1\xe1<Sb\
+\x97\xe3Y]I\x92\xd2>\xfd$\xacc\xc8q\xd4\xf9\
+o\x09\xfcL\xef\x0f[3\xa2\x18T\xb5\x7fEW\x83\
+\x9bw\x8c\x8e,\x15\xd9>'\xac\xdb\xbf\xcf\xb3\x8ck\
+1b\x22l\xdf\xad\x8c\x84\xe9\xa7a\xf3\xe7\x5c!\xac\
+\xeb\x06\xe0\x1c@\xa5\xbdm\x02~\x01\x9b\xfe\x5c\x0b \
+\xdb\xbc\xd9=`y\x0e(\xbc\xdb\xdf\x09\x9b\xaf\xf3\xfe\
+a\xf3\xcf\x17\x09k\xc0\xc5S\x1ap\x91\xc0\xee\xf4\x9f\
+a\x1d\x80\x93\xfbV\x01t\x18\x8d\xe7?kw\xa8\xe9\
+\xd5a\x9d\x7f\x95@F\xf9\x15\x80i\xe7vv\xad\xa9\
+\xc0?\xbbsT\xa6\x9e\xbf\xe5\x9c\x128\xd0@\x01\x10\
+c\x18R\xbf\x07\xccY7\x18C\xfc#~\x8b\x00Z\
+@Hd\x92_\xab\x9b\x08\xc0\xc0y\xab\x942\xdb;\
+\xd3\x9e\xa9\x80\x1d\xc0\x8c\xa1\xe1y\xd1\x02\x01\x08\x0a\xdc\
+\x89\x5cSK\x97\xc9u]\xee\x93_\xce\x1fRK\x9e\
+Z$\x05\xc0$0X%H\xe6\xafn4\xde\xcf\xaf\
+\xe0\x0fH\xc8\xd9\xdf\x9d\xf7\xfe\xde\xef\x01\x94\x9e\x7f\xae\
+\x7f\xfeT1\xee\x22*\xfb^+%\xf9\x9b\xa6a\xa2\
+6\x9e_\x8b)\xc5\x0f\x1c\x13\xa2\xf6Yq\x89\xff\xf8\
+c\x83\x98y\xf9Y\xa9-qP\x977~7\xffP\
+i\x0a\x8a\xbb\xef\xe7O\x0e\xed\x09\xebs1\x80}\x9e\
+\x00\x1a\xa0\xe1\xef\xc5'\xfcX\xf3\x8d\x9f\x8a\xe1#\x03\
+\xcf\xbf\xe5\x7f\x88\x0f\x87\xae$\xc5\x00\x00\xe0\x8a\xf3\xf8\
+\xd7\xe2X~\xff\xf8_!\x87\x83\x96\xdb(\xee=j\
+'\x18o\x09N\xa5\x02\x03\xa3\xb44R\xde\x1c\xd6i\
+\xb9\xd0\x22\xf3\xbc\xccs\xd7\xed\xb9\x03,\x0a\x00\xa0\x01\
+\xd0\xab=\x9e\xb6\xb6\xbb\x89\x8a\x91\xa8\x19\xa9\x0c#\xc7\
+\xf2\xec\xc4\xcc\x0e\xc9\x0b>m\xadI\xab\x1ak*\xc1\
+\xde/\x80\x11\x08\xa0\x90\xa2$\x13Q\x1bK\x0fFj\
+\xf2\x80\xec\x94\xc8\x9e\xfb9'5\xc7Q\xd5qP\xc3\
+,\xb1\xb2\xeb$\xb3`T\x87\x84\x0c\x99@\xe3\x00{\
+\x00\x102\xc8\xea\xa0\x92Y\xd4J\x81\xfeH\xf9\x10`\
+\xa3\x14g\x1f\xe9\xda\x98\xbd\xda\x80\xc7\xda)\x00\x83\x0d\
+\xe9s\x05\xcc,\x13\xe3\xb0\x1a\xd7E\xa4C`r\xe3\
+\xcc\xf8\x0a\xd0\xdd\x8f\x8c\x10J\x93\x0d\xf8\x87\xb9\xa1\xd8\
+\xe0\xaf:\x88#]&3\x8f\x027\xed\xf8,<\x14\
+\xf7w,\x22H\x8d\xe2\xfb\xa9.\xf3\x9a\xa5\x03\x95I\
+M\xb1>\x99\xf1r\xb8R\xed\xb9\x18\x03\xb9\x01\x97\xb8\
+\xdf\xaf\xa6\x03|\xb1\x04t\x5c\xcfU\xb2\xcd\xde\x1a\xb0\
+/\x19z5\xad\xc6\x97\xc3\x83:g\x03r\xdf2\xac\
+c\xfb?\x07#\x04\xdc\xebXr\xe0\xf7\x80\x17\xeb\xcc\
+\x86i\x9e\x01\xaa\xa8\x91\x0a\xf0\xad3\x7f72n \
+\x91\xae{@\xfeK\x9d\xda<v\xf0:x\xfc>\x9f\
+{\x01\x17\xfa:\xab15\x8f\x1d|\x90\xee\xdc\x17J\
+\xec/\xa9t\x15\xf0\xa2\xc2\x8d*\xa8\x00+\xbf\x07\x18\
+\xa0\xb4;h\x04j\xe9pQ\xeb\xd7\xd6\xae2|\x1c\
+!\xfbS\xf6\xc7\xae\xcfs\xe0'pP\xc0!FJ\
+:\xb25\x1f\x9f\x14\xd6i#<a\xc9\x94W\xa9\x82\
+\xfb\xca\xfd\xac\x80\x0c\x01.\xe4\x97\xc3\xa0\xcfkf\xc2\
+\xab\xdb\x83\x8c\xbfL\xbd\xb6fY\xc3Z\xda\x17\xc9\x5c\
+\xa8vE\xda\x1f\x1d\x17\xb6j\x0a\x08\x18\xabF2\x03\
++\x19\xae\xed\xe7\xc2:\x95\xffG\xe6\xe7\x99\xd7\xc4\x02\
+e\xe6r^\x15\x92\xff\xbcfk\xc6\x9dc\x82\xd5\xfb\
+\xec\xe59\x1c\xf8\xaf\x03'\x1d8\xa9\xa9}\x9f\x12j\
+\xdf\x00\x8d\xcd\xc7\xc2\xba\x83\xd8y\x905\x81\xd3\x0b\xc3\
+\xba\xf6o\xa9J_bt\x18\x04\xc4\xffd\xde\xf4\x83\
+\xd6\xe7\x9bh\xdd?.5\xe1\xbb{\xef\xfeg\xb4e\
+\xdc\xdd&\xac\xdbG\xf3\xb5\x0eh\xed9_\x1b\xb6R\
+\x80[\xdf\xf1\x87\xaf\xcc\xa8\xe6\xe0\xcc\xebf\xfa\xd8l\
+\x1f_\x03\xc9\xcd_\x86\xe5\xfa\xbfB\x97\x19\xcb\xf9\xd9\
+\x9e\xe3\xef%E\xfb\x01]\xc65\x9e\xff\xebS\x03\xe6\
+\x87\x9d\x0a\xb7\xf3\x88\x83\x91bU\xbb\xab\x87\x1ey\x07\
+d\xe7\xfbZ\xad\xf8WS\xdc\xec\x91\x99\x99?q\xfd\
+\xdc:w\x05\xec\x18\x00\x8f\x09\xeb\xe6)\xaa{\x96b\
+T\xf7\x0cb}2\xf4\xd9\xf6\xb12\xaf\x1cF\x19l\
+\x99\xb6\x0c\x18\xaa\xbd \x80^\xf7\x165\xb2\x99\x01\xa4\
+eQ\x19t\xa5#\x19 \xd5\xfb\x88\xc8\xe6>\xbd\xf9\
+|\xd8\xba\x0eK\xcc03\x9d-\x80\x8eR\x8a\x9f\xce\
+vf\x02!\xb7\xcasb\xde\xf7\xa6\xaf\x86u\xe2\x8d\
+\x09Xl?\x16\xb6\x9e'\x9b\x7f\x0e[\xd7\xc9t\xf3\
+\xb0\xb5\x86\xdc\xf5*\x15\x00\x00\xb4R\x83c\xd6\xf1\xd4\
+\xce\xb1\x05\x90s\x807]<\xacsLs?\xad\x00\
+3EE\xa7w\x87u\xe7\xcc\x8b\x9aU\x00\xa6\x0bI\
+\x01\x88\xb4*r\xff\xb0\x7fU\xa9\x8b\xd2#\xfb\xae\xae\
+8)&\xc9\xff\xd8<=l\xfe\xfc3f\xfb~W\
+\x92\x84\xc1\x13\x0c\x8d\xcfw~@\x06\xa4\xd3o\x86u\
+m\x04\x05\x0a\x09dM\x8f\x0b[\xe7\xf3\xf6\x1ea+\
+si\xef\xc9{O\x0a\xaa\xfe\xbeW-m\x13\x1b\x93\
+cv\x90\x0f<8\xac\x95\x00-\x99\xf8\xc7.L\x02\
+\x8c\x91j\x1b'\xf0\xfc\xce\xe2\xefM\xb7\x9cn1E\
+\xad\xfbu\xc2\x1a\xd5yQ\xd1\x8f.\xf4\xc1\xdc\xbal\
+p\x05\xe6\xeb\xb8\xd7\xf6\xde\xdb{%S\xea\x89\xeb\xb9\
+\xcf\x7f\xc3|\xa9v\xb1\xc9\xac\xa8\x92\x94\x5c'\xf5>\
+~Qj\x10\xd5\xfb\xf8\x03\xfc\x13\xfe\x87s\xd2~\xa7\
+]`2B\x04\x98\xb4B\x00\x16\x05<\xa4\x18o1\
+\x14\x13\x18\xdb\x1d\x1f\xb6\xbe\xaf4XP\xec\x130\xaa\
+\x921\x0c\xb8\x81\xaa^\x8c+\xc0\xa4R\x04\x0c\x01L\
+H\xf7\xc5\x1fOF`1h\x88\x0a\xd2\xc6\x91\xd9\xa7\
+\x09\x90\x0c\xddb2`0\xd1F\x90\x10HFZ\x9d\
+W\xfcn@\x80\xd2<\xa2\x7f\xc6\x95\x1f&\x10\xe4o\
+\xfa\x19\xa00f\x96\x95*}`\xf7\xc1&j\xf7\xf9\
+\xe6\x91\x97\x1f_\x8cb\xfe\x9f\x00\x90\xa6\x81Zxq\
+\x8b\x80w\xecZ6\x00\x19\xa3\xf8\x5c\xd5\x96\x8b\xa3d\
+\xd8\x05\xa2\xe6\x91\x04\xa7\xfb\x05\xdc\x89\x83\xc6\x04\xb0\x00\
+\xda\xbe.\xe0\xe5gjG8\x02\x08\xde/Cn_\
+q\xfd\x00\x1d\xdao\x87\x84u\x81\xb6ye\xbde\xdc\
+Z\xed\x09\x8d\x93\xfb\xf0\xbd\xee\xcf\xcf\xa7\x9eU\xf3\xa0\
+\x12\x5c\xe7\x09\xeb4D<W\xe3f\x1c<\x07\x80\x9a\
+W\xef\x1b\xa8\xf8\xc5\x9c\xc8\xbf\xdb\x9c/\xac\xfb<\x01\
+|\xfaY\xa5\x95\xb6?\xac\xdb7\x8d\x9f\xef\x13g\xfb\
+o|>\xf9<\xf6\xd7\x00x\xd5\xde\x0fB\xb4R\xe4\
+\x97\x07>\x8a\x88\xf9;\xc8Q\x02\x07g\x11\xb9\xfa~\
+\x17@\x1e\xdeH\xd3\xa0\xd3\xc4\x00\x00 \x00IDA\
+T\xe1\xab#7f\xcc9\x1c\x90\x13\x13tU\xb9_\
+2\x0e\x1e\x98\xc0\xc6\xe7\xa0F\x8d}\xcd}\xde\xf8\xf3\
+\xf8\xba\xaa\xa4\x9fU\x84\xd0\xeb\xa0\x9a^\x0e\xff\x8d3\
+cm\x03\xb3\x80\x5c\xaf\xeb\xf1\x9f\xc0\xdd\xb8\x9a\xf8\xee\
+c\x9c8~oB\xd8XG\xad\x81C\xf2{\xbdz\
+N\xdf\xa9\xcc\xe6Y\xd5G\xc7\x00\xf3\x12\x19\xa8\x8em\
++d\x22\xbc\xcf\x82\x92\x91\x1c\xd5\xdb9\xa0D\xf7\xbc\
+?\x0f\x96\xcd\x9d\xb3f^\x1b5j\xe6\xcf\xccZ\xe3\
+\xa4\x18\xd6}\x9f\x985EI\xbd\xacya\x1e\xd90\
+s\x83\xdf\xfc]X\x17\x80\xde-\x91n\x9f\xe7>/\
+\x9d\x01\xdd\xc8\xd8\x18D'k^\xe5sE\xb1-Q\
+G5a\x0e\xba\x91!\xe09\x0a\x9cr\xden\xce\x1b\
+\xd6\x8d\x9b\xe7\xee\xf9\xc88\xa9m\x15Hr\xf8 \xa1\
+\xda\xea\xd8\xb0\xae\x13\xd6m\xe8\x80$\x94{\x99k\x1b\
+\x02\x80\xc8\x86;\xf6M\x07\x5c\xe9\x96\xf0\xdc\xb0\x0e\xb9\
+6\xaeT\x96m\xd4\xda\x08\xda\xa0\xcdG\xf3\x1d\x12\xae\
+\xc6;\xd5\x99\x8b\x89\x91\x19Y\x81w\x89z9(\xdd\
+? 0kQ\xabO\xbc\xda\xcb\xb5M\xd1\x22\xe2\x97\
+\x8eW='Te\x815\x11?j\xc6Yk9\x87\
+u\xb3u\xf3\xc2\xba\x06x\xf8\xd9}\xfa\x8f&\x02m\
+\x0a]&\xf4\xc35\xdf\xd5\xf2\x03V|\x0f\xa0\x80\xa3\
+\x97\x88w\x95:\xa0Lj\x0b\xc8q\x7fv\xd8\xda\x17\
+\x5c`#3*\xa3V*\xed\x09\x5c\x10\xbb\x12\x90\x95\
+(\xdf\x13\x17*n\x13\xb9\xbbd\xd7\xae\x89\xa3\x84\xaa\
+O\xad\x9eH\xda\x1b\xc2\xd6u5}(lm\x9b\xb7\
+9aQ\x87\xdf\xdee\xb6\xa3\x1au\xb9e\xae\x8a\xf2\
+\x9a\x8c\x99\xcd\xbd\xc3\xe6\xbf\x7f[X\xb6\xa3;$3\
+\xfe\xbf\xbe\x06p\xe5 (U!N\x96\x8e\xde\xee\x8e\
+ak&\x07Sa\xfe\xde\x85Q@\x0d8)\xb62\
+\x14\xd55\xe16a]f\x0b@\x88\xca{\xdb\xddm\
+v\xb7]\x1d\x97\xe9\xcda\xf3\xf6yZ\xd8|\x9f\x8d\
+\xab\xdf\xed\xdf\x91?\xbd[\xaaf\xdf\xba\xab\xb1&\x9a\
+\x9b\xc8\x7f\x0b\x1co\xb12\x03Z\x9e\xef\xb9]?v\
+\x0e\x16\xa0\x96\xea\xbc\xcc\x12\x00@f\x88\xcaw\x02\xba\
+Uc\xee\xfe\x9d\xbb\xf6]\x0c\x9aT\xab\xe7h\x13\x0f\
+,\x07)\xcf\x89\x9a7\x98(\xc4T\x01\x822\x1b9\
+O\xec7\x18$\xf5{\x00}\xae\x0f\xaa\xf1\x9b\xa7\x86\
+uL\x1fL\xa3,\xed)\xc7\x1ee\xd69n_N\
+fI\x95\xb0\x98\xcf\x09\x5cW{J\xb5\xd1\x02\x89\xbf\
+X\xda/6\xb8\xf0#\xf9|^9?\x9f'\x87\xad\
+\xebS)\x856\x87M\xf4\xf1\xf2k@\xaf\x1b\x83\xda\
+dby\xd3\xb7\xa2\xb1\xddZ\xeb_\x22_\xe7n\xaa\
+<k{D\xda\x09Jx\xac\xd7\xd4`\x00\xa0\xec\x0e\
+\x0f[\xb5\x06\xea\xef\xb4\x0f\xfc\x83\xb05\xa3[\x01\x17\
+\xa07\x01\xaebXe)@\x05\x8a\x80z\x19\xf7\xac\
+\xb1\xde\xbej\xfb\xea\xed\xab\xdb\xf75\x11\xbc\xe9\xf4\xd9\
+\xbe\xbb\x02\x17\xd3\x11\xd3\xd5\xa7\xab\xb7\xb6\xbdK\x89N\
+\xb6w4o\xa6\xdb\x86u@\x1em\x06\x1a\x0bY\x12\
+T\x94w]\x0d>\xb0\xf9\xe0f\x0e\xb0\xf6\x9e\x19\x96\
+m\x83\x7f\xa9KxD\xef\xab\x93\xdb\xf3}y{\xbe\
+\xf7\x5c\x98\x89\xd6i1a\xb2\xad)\xe0t\xf3\xc6\xb0\
+\xd6\xee\xb0\x8d\xa7\xc0w\xfb[\x8bH\xe1\xde'\xf6>\
+\xb9\xf7\xc9&*y\xa3\x10\x95\xac.%9\xff\x88\x8b\
+\xce\xd7\xf7\x81\xb8\xbe\xdd\x99\x8b\xd8\xa7\xee\x02\xbbk\x85\
+u\x01\x92W\x81\xa7RN\xdd=\x9c\xdb\xd6\x87\xfdD\
+\x82\x22\xdb\xf5U;<Z)\xa9\xa5\x84)Rmw\
+1\xad\x88\xb9\x11\xe5\xc3\x5c\xc3\xb4\x13\xf8c\x02\xd1.\
+\xb1/\x09\xc8\x95\xd2\x01\xe0\xf97J\xb3\xb2\x9d\xad\xee\
+%\xb4J\xb4y\x064*e\xa9R\x9a\x13\x9a\xad\xf3\
+%\x99`\x80-~e]_\xd6JW\x97\x9d\x04\x1c\
+<\xd7R\xe9\xe7\x07\x8a{0\x05\x04\xbe\x12 \xfc{\
+\x80\x1a\xc6\xd3U\xc3\xbaR\x0e\x09\x05\xf1\x0f\xbfZb\
+\x83\x7f\x85\xb2}l^\x8f\xc4\xd9Or\xff\xe5G\xfb\
+<\xfbd2\x0e\xcaO\x92\x80\xe2_\xf1\x1f\xb5\xc3\xe3\
+\x97\xa8\xd1\xe7_\xf07\x05\x9ec\x86{\x14/v\xfd\
+\xde/\xce\x01t\x88\x17$\xa8$\x84%8|\x9e\xbf\
+\x17\x7f\xb9n\xe35\xc4Y\xc5\xfc\xc5\xf4\x90\xd1w_\
+\xfc\xac\xc3\xc3\xba\xe7/ad\xbd\x88{\xc4M\xae\x7f\
+\x5cw\xbe_\x97\x1a\x09\x0c@\x82\xf8mdT\xf4\x22\
+\xfa\xbb\xb3\x11\xc5\x1f5\xdc\xf8\xcdJ~\x9c\xbb\xe2\xa6\
+L\xe0l\xbe\x14\xd6i\xa9\x88\x1b<\x17q\x81y:\
+\x02\x0f~\x9f\xe7\xff\xfe\xe6\xb6w\x19\xf8\xaa\xf9\xd7\x86\
+\x8f\xba?\x07\xf7@\x8aE\x9c\xder\xc6\xeb\x83\x1e\xd5\
+\xb5!\x10I\xf1\xaf\x07\xfc\xed\x16Z\xaf\x7f/\xd02\
+ >\xdf\x00\x8e5\xc61\x5c\xd3\xc1\x81\xb1\x8d\xa4\xa8\
+\xd5c[=\x81\xab\xcf\xf3\xbd\xaek\xcc\xf0\x7f3\x03\
+\x0a\x81\x8c\x03\x18\xe0 \xf0\xf0\x0a\xb1\xe2`\xb9>\x13\
+S\x80\xa8v\x9bx\x05*#\x87\xdf\xf8\x8dH\x8e\xf1\
+\x1f\x17\x1c\x8a\x8c\xe7Gd\x09c\xe0\xb0\xa5\xcfs\x01\
+\x02j\xbb\xbf\xbd8\x8a\x9b\x0b\x85\xad\xb5\xfa\xb5\x11e\
+_\xe2:xm\x80\x16\xb8\x83F\xfb\x1fTI\x1b\xa3\
+\x0d\xb4\x9f\x07\xf1\x9c\xce\x08\xeb\x16\x98q\xf8Ri/\
+,\x8c\x8b\x9c\xa0\xd5\xbe\x05\xa5\xfe!\x8bXL\x1d\xac\
+>\x070#\x10A\xad\x8f\xf6F\xef\xed\x02\xd0\x03C\
+\xbfzm\x0b9\xacj/e\x88\x88&\x02\x86r\xfc\
+k|\xc7\x8dwl\x1b2\xb6\xcb\x1c)U\xee\x9b\x86\
+\x85q5o\xad+\xed\xbe\xd2\xc1+\xd1A\xdfk^\
+z\xbe2\xcfy\x90\x16\x03\xc1z\x1d\xfb\xae\x0a\x943\
+\xa3]\x1bdnh%z\xc9\xa1\x00\x108 W&\
+\xc8\xb2\x01\xfa\xd9\xf7\x0d\xda\x03\xc5X\xf0\xb9\x0eF\x1b\
+l:r\x02@\x94\xc0\xca\x1c\xa7CP\xeb\x1c\x02j\
+\x9e\x12\x15D9\x06<\xfdvXW;\xe69\xa3\xb6\
+\xca r\xf4\x89v%\xe5\xaa\xa8\x8f\xe9\x90\x15cD\
+-&`OF\x8c\x9a\xbc\x1a\xef\xa4\xae\x17\xa3@@\
+\x020\xe3\x98\x08\xa0s=n\xde\x13\xd6\xdd7&\x01\
+ *3\xde\xbb\xeb\x87\x9d\x8d\x98NR@\xdd\xff\xf6\
+\xd3\xdbOmc\xfe~8l\xad1\xab\x0c\xb4\xb6P\
+\xb9\xbe\xa6c\xc2\xba\xe7\x0a\xf8B\xd5\x16\x08\x9b\xf7(\
+\xaay@\xa9}\x9f.\x11\xd6\x98L\x8d\xd2\x08\x10Q\
+\x8b=\x9dk\xda?\xed\xb5\x80\xf8\x7f4Jq\xb4\xdf\
+\xbc\xee|\xbdw\x0f\x9b\x97\xe9g\xc2Vq0\x80\xc0\
+\xee~\xb3\xdd\x7f-\xfd\xd8\xfcd\xb6\x1fw\xe3\x82\x02\
+M|N\x9b\xac\x7f\x09\xeb(\xff\x02\xa6\xb0MWk\
+/\x90\xd4\x0f\x9b\xc6Bf\xce\x1ba\xf8\xd1+c@\
+\x9b6%K\x07\x0e=p\xe8th\xeeK\xd1e\xe0\
+\x83a]Mr\x9c3_\xcas\xe4s-C\xb58\
+\x90\x91\x9f|l\xee\x1b\xdf[\x9922\x95M\xca\xf0\
+\xa8\x0c\xb0/\xdb\xd5\x8ajog\x7fN\x91\xb7\xaa\x15\
+tn\xe4\xf9N,\xaa\x05\x86G\xac\x8eH\xcd\x83\x0c\
+\xfc\xb7\x17\x0b\xeb\x98\x22\xb9?\x0b\xbc\x05L%^\xa9\
+\x9d\xa5\xcc\xbe\x1a\xe4\xcc\x0c\x97\xe3\x93\x81E\x89\xd0i\
+c\xc8\xf1\x93\xc1\x02\x0c&\xe0\xbe;!\xaccr\x08\
+\xd0\xf4\xf9V2\x80\xf2>\x88.\xa1\x14O\x97\x0e[\
+\x1d\xc5\xedaa\xddz\xc8R\x09\xfb)\xf1\xc6\xb6\xeb\
+|1\xcf\xddK\xafT\xe4F1\x0f\xed\x94\x93g;\
+e-%\x99\xae1\xdb5;\x95x%\x00I\xd5n\
+%\xd0QR\xf0\x86\xb0\xf9\xf7\xdf_D\xech\x19T\
+-4\xc0\xc5\xb8\xa76\x80sxw\xdb\xb0\xf9s^\
+\x1e\xb6\xb6/\xc5P\xa9R\x83\xd7\x87u\xe7\x1e\xff\xe1\
+\x90\xb0\xb5TB\x89\xc3\xe6%\x9b\x17o^\xdci\xd2\
+<c\x01\xec\x95\xe0U{\xc5\xdc\x1fw/\x0e\xebJ\
+\xf7\x94\x0a\x04!\xfb\xbe\xf3\xe7\x1e\x1e\xd6\xd5\xb4\xaau\
+\xcd\x0c^\xa9Y+\x81I1V\xeb\x99\x08&fD\
+\xed\xe3\xf6\xa7\x0c|\xb7\x7f\x1a6\xff\xfc\xc2y\xd5\xbe\
+\xb0\x9d/\xb7j%-\x01\xa0=\xaf\x01\x88w\x8d@\
+\xd8>v\xe0?\xc2:\xd1O\x00K\xde_\x95\x00\xbd\
+05\x1a\x1e\x15\xd6\x02\xe3\xa5\xbb\xc4K\x97u\xd3\x9e\
+\xff\xc9\xab\x08f\x05\xc2I1\x9e\xbe\x1dP\xcf\xaa\x82\
+\xcf\x8f,\x86\x8b\xd2\x04~\xc0X\x92\x97\xc0K\x89g\
+*\x81\x91\x00\xc8@\xb2\xfe]\x86<\x01\x96\x1aoL\
+1\xb5\xfe\x02\x1aT{%\x1f\xb4w\x9c\x9f\x11\xf6?\
+weB\x94?\x07\x08HF@e\xdc\x9d\x0bc;\
+p\x9a*W\x0e[k\xf7\xab\xfb\x89@\x0f\x00\xa8+\
+\x08?N\x80\x0c\xe0VSO\x03\xc0~\xa8\x84,\xd7\
+K\x01\x9b\xfc\x07\xfb\x03Q;\x00\xa5\x8c/\x919\x89\
+\x15~\x15&\xa7\xf3\x9f\x1f$\x00\xc6\xa0\x14\xffD\x18\
+v\xf2\xd9P\xe8\x9d\x9f\x9fJ\x7f@ \xa84\xd0\xfa\
+U\xca$\x11\xa0T\x12\x803v\xfb\x92\x89\x17`\xf3\
+\x0fFJ\xbey6\x96`\x8fq\x92\xcf\xe1\x7f\x8b?\
+\xf8\xe1\xee\x1b\xb5\x1f\x03\xd0}\xf2\x0b\x07M\x9b\xf2\x03\
+\x01\xd4c\xad\xbdsKbo\x0c\xd8\xc7\xaeS\x98(\
+\xa3\x88\x9e\xc4\x97\xef\x1d\x02\xf5b\x10x\xee\xe6\x878\
+o\xec^\xe7|\xd2\xee0\xe3\xa7\x02l\xc4kc\xa2\
+\xc8\xabq\xf79\x02y\xa5\x08\xbe/\xf7\xb9\xea\x923\
+>G\xdf#\xee\xf4}\xe6\xe3\xd0m`\x7f\x0b\xab\x89\
+\xec\x08\xb4\x0ft\x816\xf1=\x1f\x04\x18\xf0\xaa6\xce\
+\x7f\x11\x86\x5c\xa0\x0b\x84=\x08\x81\xadR\x01\xaf\xda\x06\
+\x0a\xf0\xbf\xdft\xf1\xd7\x004\x11\xb5\xb3db\x0f\x0c\
+\xa2\x84\xfb\xbb\x80{\xac\xc50\xb1\xd5\xe8df\xa5j\
+\x96-\x10\x01\xca\xd8\xde\x10\xf5L\x8d\xe7\x8d3\x03\x0b\
+)Tc=\xf4]\xad@O\x80\xe6:m\x10\x98\x0e\
+\x0et\xd4{\x01\xf7@\xd5,G)\xdbx\xcc\xe1\xc3\
+\x92\x01\x95y\x1d'\xa4\xb6\x0f\xda\xf1\x1c\xc8\xf1\xfdq\
+.\x94\xb1[\xc0&\x17\xe2 \xceQ\x01\xa7\x00\xe1\xf0\
+\x0cP\xaf\x9a\x14r\xe3ka`@\xa8\x05\xa7)\xa0\
+=\x1fJ*\x91%\x144Z\x04OX\xc4\x84\xf6}\
+(3\xcbwX2\xce\x15\xe0ZP\x16\xb0\xbe\xce\xe9\
+\xf0\xd4Fe\x01\xa5C\x5cT[\xe3\xeey\xf8\x1c@\
+\xc5\xd0Nn\xf7\x96\xec[\x8b\xe1\xe0}\x02uH\xaa\
+\x80xh\xa78?\xaf\xd9Z\x9b\xc1\xd9\xba\x0d\xcc\x86\
+c~\xfd\xcb\xd2\x06\xad\x80&\x07<Q\x18\xc0\x91y\
+e\xa3\x18\xbb/\x0c*\xfc5/\xcc\x13\x07\xa0\xee\x1b\
+D\xf6\x8c\x87\xef\xb5\x0e\x12\xd9\xae\xcf\x91iC\xb1\xcd\
+>\xb9UrB\xacL\xa6\xda\xba\x1a\xfb\xbb\x02RR\
+\xf4\xa9\x9e\x8b\xc0\xd6\xbcPr!\x83\xe7:\x1c\x00\xc6\
+\xc1F*\xc3\xa5\xdf0\xf1\xc2\x9c\x972|\x9bw\x84\
+u\x01\x7f\xd6\xe06\x11\xaf\x8fw\xfb\x89\x0d\x15\xf5_\
+\xa6\xd7\xab\xe7\x93\xff^\x019\xea\xa5\x00f\xa0|W\
+\x8d\xb6\xf5\x22\xd3F\x0d\x19\x00\xf6\xdd\xb0U\x0c\xa8\xe6\
+\x07\xc7\xeeFa\x1deR\x86\x8e\xe8\x1dja\x02\x0e\
+{\xbf\x146\xbf\x9e\x14\xd69\xe6\xeeO_i\xd4}\
+\x1a\x0ew\x08\xeb\x1c\x1f\xedMuW\xb0\x0f\xa4\x83\xc4\
+!\xae\x9ax\x94c\xf7c\x1f\x94\xd9\xfeN\xd8\x0a(\
+\xcc\xeepkC\xb6;\x22\xc8\xeb\xf36u\xde3\xcf\
+w\xe6y\xd7\x00q{\x9f\xed}\xb7\xf7\x99\xef\xe3\xc4\
+\xd9>\x9c\xdd\x13^\xbe:\xdc\xa5\xee\xado}f\xa6\
+\xa7\xe7\x87\xcd\xef\xfbBXG\xe9\x95\xf1#\xa2F\xd3\
+\xc0zxm\xab\xb6\x5cK\xe1r=6\x80)\x18\x0e\
+\xc7\xcdvlj\xaf\x5c\xa5\xfb\xbeC\xa7\x16\xf8O\xb7\
+\x0a\xcb.\x087X5M\xa6\xe3\xc2\xe6\xbf?%l\
+\xfe\xf7k\x87\xcd?\xbf2l\x15\x19\xac\xee\x10\xfa\x9a\
+\xebW\xcd\xb1\xe3\xb0r\x10\x95\xc2\xdc4l\xa5\x00\x17\
+\x95\x9c\x03\x96\x94\xdfR#\x7f\xf6l\xd1\xb6\xed\x8da\
+]Mn\x06.%\x96'\xa3\x96\x81\xb1>\xf6E\xd5\
+\x94y!b\x95\xaa\xf0\xc5\xe8@\xcd\xbdh\xd8\x0aP\
+\x15\x10\xeb\xef9\x9c\xf6i\x99Hm\xdb\xacc\x0c\x07\
+\x19\x22\x80\x0f\x0d\x80\x1co\x99\x1c\x01\xf5\xf4\x96\xb0\x95\
+\xf12]3\xac\x13WU\x8a\x12\xe7\xdf\x85;\xd1>\
+L+\x89\x07\xfb\xd9_\x85%\xc3\xea\x1e]\x17\x90\xc8\
+\xc7^\xfb\xff\xd1u\x1f\xe0\xb6\x9dU\xb9\xf8\xf7Z\xe7\
+\x10\x08\x09BBob\x08\x10P\xe9M\x90\x1e\x8a \
+E\x05T\xda\x9f \xc5\x0bB\x08\x0a\xa2\x80\xa0\xf4\xce\
+\xa5)^\xef\xa5\x83@.\x0a\xe2U\xaf \xed\x02\x82\
+4A\x10)\x89t\x08 \x10Z\x02d\xcf\xf5\x9f\xe3\
+\x9b\xe37\xe6w\xbe\x13\xf6x\x92\xf5\xec}\xf6^k\
+\xceo~e\x8cw\xbc\xe3\x1d\xd9\xdes\xf6g\xf6\x7f\
+7l\xfe\xbc{\xcdv\xcfU\xa4\xb0\x05j\xefXE\
+\xf9\x00\xb2\xb5_\xc8\xe4\xea*\xa0\x8f{f\xf4e\xf2\
+C\xba\xae\x89\xd7e 6\xfdQ\xd8\x0a\x84\x96\x88_\
+\x8a\x9451\xb6\xb3\xd7@\xc6\xfb\x15P\x9d\x00\xc5\xee\
+\xf1\x0b\xe5\xba2Q\xef\x0f\xeb\xa8\xb7\xe6[d\xe6\x1f\
+\xb5fX\xa7;\xcd\xf6+\x1dc)\xf2\xa6WHq\
+\xd3G\xaf\xc0G\x9bm\xbf\x98\xe7\xe8Q\x9dX\xe5\xa3\
+\xc2\xd6\xe7]\xe2o\x19\xd8N\xb7\x0f[\x999\xdbk\
+\x85\xcd\xdf\x1f\xbb$@\x9a\x7f\xf6\xc5<\x87o\xd2\xa8\
+\xfaw\x0f\xaa\xfe\xee\xcaK\xc9\x03\xd5\xfd\xf2\xb3\xbc\xef\
+\x0f\xc3:@\xef\x9e\xcdj\x1f\x9b\xb6q\xe5\x0d n\
+]\x12\x94Fh7w\xe0\x1ea\xf3\xbf\x7f;\xacK\
+H8\xe7\x94\xba\xe6\xfa\xde^5l~\xdfW\x86u\
+\x01\xbe\xf3\x96\x1f\xac\xf6_\x00*\x00\xd6\x1e4\xc5\x15\
+\x8bi\x96\x9a\x06\xa5\xa9\x84I\xe0\xfcP{\xed<\xd2\
+\x9d\x89f\x08\xf1\xe2l\x87X\x9f\x1f\x05/\xef\xc9\x8c\
+\xec?\xae\x0c\xa8\xf2\x8f\xf8\x15Y\x22H\xbb\x84\x16B\
+1\xafr\x1f\xae\xf3Fi\x80\x04\x9b@\xd1\xb9\x91\x0c\
+\x84\xba^\xe7\x0fF\x22\xca\xbe\xf3\x9d\x16\x00\xd5t~\
+\x92@\x16\xb0$S\xcd\xbfp\x1e\x8e\xed\xef\xfc=\xbf\
+EI\xa5\xfd\xf89\x0b3k\xf7\xee\xdd\xbb\x1a\x93f\
+\x14\xc7\x1b\xbb3\xc9L\x0bP\xf9k\xf6u]6\x88\
+\x1a\xaby\x1f\x13NJ\x0f\xc6\xf6\xde\xee\x93\xff)\xee\
+\xe1O\x09\xa0\x07q\xbf\xc3\x98\xcc\x02H\x19z\x01\xe8\
+\xc8\x00\xe5\xf7\xf8<\x81\xfd\x90p*?\x98\xbf*n\
+\xc3\x8c\xf4>\xeeK`;\x06\xe6\xde\xc7uzN\xe2\
+O\xcf\x87(&\x00h\xac\x95\x17\xa7b\x0c\xf0\xb7=\
+o\xfe\xac\xe7e\x1c\x8d?\x00\xc4s\x19\x19\xc4#\xa3\
+[\x22\xda\xfas\x9f\xeeK\xf7\xa9,\x8d*\xe6\xaau\
+a\x5c]'\xbf\x1d\x102$Z+\xe1T\x00\xc0\x07\
+\x1b\xb9\xba\xfa\xdeV\xc6\xbe\xa7\x16_t\x15\xc5\xa9\x1a\
+t7\x14\xc3v\xa0s\x0c\xa9\xfa\x13\x7f\x8b\x0d\xf8\x98\
+\xcc\x80\x1f\xdf1\x0c\x5cXj\x06\xb4\xcb>\xf2p\x07\
+s\xbc\xe0\xca\xa4Z\xf0\xfa\xd4\x13\xf9C\x0d\xfeIT\
+\x7f\x13\xd6\xc0A\x86z1\xc4\xb3\xbb\xbf\x87\xecy`\
+\x1f\xcf\x05|\x91\x9c\xb0\x02\x00\x08&\x0a2\xb1\x16\xf7\
+c\x03\x19j\xa2\x0b\xa1\x1a2\xc351m\x14\x02O\
+\xaa\xdc\x00\x09\x80\x83\xf1\x1c\x17\x82\x0d\xd8\x84\x10\xe0\x12\
+\xe3\xb10\xfc\x9d\x89mc\x12\x08\xa3\x04j[r\x85\
+<\xb8\x5c\xef52\x00\xe10\xaa\xb5T+\xa8\xcd\x91\
+~\xd4T\xbbex\x05\x90\x02g\x08o^\xf7\xe6\xbe\
+I\xa5L\x8a\xf8\xe6\x16a\x9dZ\xf8\xaf\x85\xad\xe2\x87\
+\xf5\x95\x14\xaa\xdd+v\xaf\xdc\xc5\x81J+\x000\x83\
+\x99q\xa9\xa1\x14\x00\x22\x87\x0a\x07\x08\xf9\xf5\xcd]7\
+w\xed\x020\x0c\x0e\xf7k\x83\x1c3\xff2\xee\xc6u\
+D69Z\x09\x04\x94\x03\x8a\x8an^\xca\x5c\xe9B\
+\xa1t\xc2\x81l\xbe\xda\x80lH\xe6\xbd\x0d\x96*\xb9\
+\x1av\xa2}\xe69\xc6\x04\xc0\x80\x16\x88q\xb6\xb1\xaa\
+\x01NuR\x19\xd9\xc3\xda\xe1\x01\xb6|\x8d\xed\xd5d\
+\xf6\x8c#\xc7\x83*\xbc\xf9\x07\x10\x18\xa8T\xf5\xfec\
+\x97\x0d\x07\x18\xd1\x1ebf\xe69d\xda~\xe0\xbeG\
+\xaa\xb4\x03\xd7s\x1c\xf7\x09\xdf\xfb<\xfb\xa7\x0d\x9fc\
+\xf2\xc2fk\xa6\x84v\xc9\x93\xc3\xba\xb6c\x1c\x09\x81\
+\x0b\xf5y\xd7O<MfD\x8duf@\x05\x0aU\
+\x13\xfb\x07a\xf3v\xfd\xad\xb0\x8eb\xc8A\xa0\xeao\
+\x9f\xc5XP\xeb\xe9>\xa9\xd2>=\xac['\xd6\x1d\
+Q%\xfd\xeb\xb3\xcdX\xcdC\xe3\xc31\xa5\x1dA\xc4\
+\xe8\xf2\x0b\xa5r\xf7\xc0\x85\x01\xb1\xff\xd6\xfd\x7f\xda\x0f\
+\x15\xefG\xee\xff\xfe\xfe\xef\xaf\xf3~{\xff\xb0\xf59\
+\x1f88\xdb\x81\x04~\xfe\xbeeB\xae\xd7\xa8\xdd\xf7\
+\x98\x03\xdf{\xac5\x94M}\xfc\xd4lk\xf6\xb7\xeb\
+>\xd8\xda\xf2Em\x7fS\xd5\xe9\x1c6L\x0e\xcc%\
+\xe2ZI\xa5U\xd3\xbd}y\xd8\xfc\xfd\xd1a+S\
+a:\xfft\xd4t\xfe\xc3\xd5\x81\xa7\xf3\x85\xad\xe3\xbd\
+}_X\x07P\xc9\x10\xbf\xa0Y\x89\xb7\xd5\xfaM@\
+\xac\x98*\xf6\x95\x9c\x07\xa3Xje\xb2e\xa2t7\
+\xf8^\x8aI\x09\x5c\xa2\xc6\xfb\x9e\xddy)\xf0\x06\xa4\
+df\xad\x05\xee\x17\xed\xb4`\xec\xa3\xf6\x0f\xda7j\
+\x9fC\xe5\xfe\xb9\x9d\xe8Wf\xca+\xa0M\x00\xb7\x02\
+\x17\x80\xc0\xe8\x08g)O\x95\xe28\x7fdnR\xdd\
+}\xba\xc2t\xfct\x85\x8e\x99\x03 \xe3\x90%\xd3h\
+\xbaV\xd8\xba\x7fn\xff)\xac\x0b\x8c\x95\x04\x10\x85\x0b\
+\xa0\xbe\xeb+]\x14\xf4|\xff\x06\x04\xfdi\x96\xa6\x9c\
+7kG\xe3\xf5\x8c\xd9\xbe\xb2\x06l\xd3]\xc32\x80\
+\xb9D\x97\xf9\x0d\xc0\xe0y\xa9\xd9\x10j\xf9\xfb\x0bE\
+\xbc\xce\x95lWZ\x00\x00\xd1(\xeb\xf41\xcd\xea\x1c\
+Qk\xef\xfe\xa6\xd3\xc2:m\x84\xacuo\xfb\xcb\xad\
+: >5aJ\xf4-kP\x89\xb8\xca\xcc\xd7~\
+\xe1\xdcTC\x0e\x00Nq\xcaj\x0b\xf8\x99\xd9>\x9d\
+\x00\xc4kR\xdc\xf4\x81\x9d\x1a;\x06\xe2\x05g\xfb\xa9\
+n\xdd\xd2\x82\xb8LS\x13Z\x02\xb5\x8fu\xb5\xedQ\
+\x00s\xed\x14\xad|\xc6\x0a\x9cU\x09L\xc0u7\xca\
+u\x1d\x1a\x0d\xcf\x9f\xed\x05\x87tkxwc\x9ea\
+\xfc\x9c?\xac\x03.\x93\xd2]\xa2}\x09\x88\x16\x10\xf4\
+\xe2\xb0\xae\xab\xc5w\x17\x7fY\xe2\x05 ]]\x03h\
+\x18\xe5\xf9\xbd\xbd\xde\xf6\xfa\xdb\x10A|\xda\xd2Ub\
+\xfb\x87a\xad\x9d\xe0\x0d\xa7\x1b\xe6\xfc9\xa3[7I\
+\xa5\xaeR\x00\x00\xccH\x85\x97 \xe0\xf7\xd9o\xb5\xe3\
+\xcbuY\xdd-P\xa8\x9d\xc3\xf6i\xddu\xa8\x90+\
+\x8d\xd2}\xc6\xe79w\x95$\x02\x08s\xbf\xdb\x1d\x0c\
+\x9b\xbf?6\xac\x0b\x04\x13\xd0\xc48*\x8d\x1c\xa5\x0f\
+\xda\x0e\x9b\x8f\x03\xe3\xb5\xfcc\xcf\x93\xa6\xc7k\xc2:\
+\xaa\xfd\xa8\xbe\xceo\xe7w\x11\x9b\xb6o\x02\xd8h2\
+\xf0\x13\x05\x8c\xeeW\x89Y\x96T\x14\xb0i?\xe6\x8f\
+\xb9_\x81\x1a\xa0\xdf>*>p\xaeZ\xf7j\xc0\x89\
+\xa2b\xdeY\x7f\x12,\x12Q^\xf9\x83\xce\x1f\xfb\xf9\
+\xa8Zo<|\x8d\xb5\xed\x03\x95\xbc\x18\xbf\xc6\xd3\xfd\
+8\x9f\xcc\xbb\x91\x01\xea\xf3\xc4#\xe2\x9c\x91Q-\x00\
+\xe6o\xf1\xc3F\xed6\x01=\xb5{q\xa9xh\xd0\
+.+\xcd\xa7\x8c\x9bj_\xe1\x9f\x19w\x09\xc41\x80\
+7N\xba?a\x06\x1aO\xd7\x87\xd1i|F\xad\x85\
+\xb1\xbd\xb5\xe7J\xcc2\xcf\x9f\x8a#\x89\x83\x03\xd6$\
+h\x8c\x03\x80\xc2\xf8\xfb\xf2\xb9~\xee\xf32\xde<X\
+\xb5\xc5\x02\x8dcZ\x95\xd4:`\x1c}\xaf\xa8\xfb=\
+\x12\xd6\xb7\xbd\x93\x87\x17\x18DM\xcf9I\x19\xbbD\
+7 .\xe8\xec\xa6g\xbf\x06\xa0k{\xb6C\x03\x0f\
+\x81\xae\x05\x07\xd1\x1a)+\x06\xc4\xf5q\x8c,$\x0f\
+\x0e\x15\xf7\x12a\xddB\xf2j\xe0\x06\xf5\xc7\xca\xd4\x0b\
+\x84\xdc\xcf'\x0f\xa5\xec\x94c\x8f\xe2l\x02\xbbO\x13\
+j\xa0\xfa\x17\xe2E\x14\x02\xe0b\xc2\xf8}\x19\x07\x80\
+\x83\xcf\x19\x90\xb8z\xe0\x80\x08\xfdd/\x1a\xd6=W\
+\x88\xa9\x80\x08\xb0q\xa5t\xec\xafT\x14\xfa%C\xa3\
+\x1d U\xf7+\xe4\xef\xd9 ]\xaf\xeb\xe1\xf8\x0bx\
+Q\xbd!\x86\xa8\x82\xe6\x11\xca\x99~\xdd\xdf\xcd\x8d\x83\
+\xa3\x9a\x14i\x19\xc8j\xc3\x96\x14\xe7\x12\xebJ*\xed\
+<\xbb\x97\x9a\xdd\xab-\xb5\xa3\xbb\xa7'\xc2\x0dY\xbb\
+i\xde\x07q@\xd7M3\xe1\x079\x9f\x005\xe6\x95\
+\x857\xce_\x80\x12\xca\xbb\xf6,9\x8f\x0a\xf0\x18\x91\
+e\x7f\xef`\xb3\x81\xda\xe0\x1d\xe4\x1c\xa5<\xf0+\xb3\
+G\xac\x8c\x83 \xc0\xcf\xda\xf0\xc3\x90Nm\xcf \xa2\
+\xa8\x98\xda\xf2\xa1\x0c\x9b\xbf6f\x1b\xb8\xf5'\x13a\
+]Ch\x89{\xa6\x83W\xa5\x0e\xd6\xafL\xba\xf9\x0f\
+h\x14\xd0;\x10\xcc'\x81\xbb\x8dT\x0d\x14\xa0LF\
+\xc0Fi~'\x95\xb5T\xa5\xf5%Gq\x949\x11\
+`(\xb1\xc0\x1c\x92\x89\xcd\xfb\xab\x1ah\xa2o\xcf\x0e\
+\xeb\x00\x08m\xc6\xac3\xb5\xb5\x99!,\x07\x03S \
+)\xbau\xbd\xd6\xaf\xd2\x85\xa4\xb6\x96\xea\x7fR<[\
+\xc6\xf6Y+\xb0\xa0\xf6\xad\xc4\xf92\x93\x22\xb3\xa1\xd6\
+_\xa9\x8c62\x9b\xd7\x86\xad\x8ezi=X\xdfT\
+\xa6e^\x5c\x1f@\xc6\x01\x95\xd4\xb4\xaa5%J\xaa\
+\xd633\xed\xe6\xfd\xe6\xcf\xc2\xe6iy\xeb\xb0.P\
+\xb8JXS\x05\x7f\xf74;~\xd3\xd7\xc2\xe6\xdf?\
+)\xac;\xa0\x01Y\xb7\xd8\x9d\xd8\xc4\xfa\xf2\xba\xabT\
+\x22)\xfb\xd3}\xa7\xfb\x85\xa8XH\xf3\xb5\xc01\xf7\
+#\x14\xe8\xfdm\xd8\xba\xde\xb6\xe7\x0f[\xdb\x9d\x0a\xe8\
+\xac\x03m\xa8Pj\xe7w\x9fm~\x9f3\xf7\xbf\xb3\
+?\x9f\x1f\xfbw\x0c\x9b\xdf\xe7\xe2a\xf3\xeb)\xdb\x87\
+n\x1f\x9a\xb5\xcb\x17\x5c\x81\xd0\xcd\xc5\xc2\xba\x00\xfd\xda\
+a\x1d3H{\xbe{\x84u\x14m\xe3\x98@f\x95\
+\xd4\xfcLXW\x9b\xff\xfc\xb050\xde\xdc3\xac\xa3\
+,\x9f\xd0\xe4Z\x97L\xf9\xc3\xbbL\x9e@\x80\x96F\
+\xeesT\xe5\x0b(\xb3O\x03T\x05\x16\x00;% \
+)\x12\xa8F\xbeD3\xb5CD\xfdE\xf1Uz \
+\xf3\xc81\xce\x12\x9c\xa6]q\xe3\x0eX\xd6\xff\x1cu\
+\xfc\xc6\xf9\xef\xf6\xe5\xa4\x9eWW\x0d\x1a\x03\xdau\xe9\
+\xaa\x905\xdd\x18A\xe6\xe1\xf6\xa4\xb0NM\x9cv\x02\
+fLj\x994\x86\xc8U\xd6v\xbc\x02\xc3\xcd\xd7g\
+\xfbF\x02%\xc7\xadm\xf8\xf6\xdf\x12\xd6u\xf9\xc8\xfd\
+\xbd\xda\xa1\xd9\x0f\xf8/\xf6\xd9d^Ee}+\xd9\
+\xc8\x84@\xf5\x85\x1fJ\x10\x03\xfen\x008\x00+\xc5\
+\x19i\x83\xb4@\xfa\x1e\xe9\xcf\x9c\xd1i9$\xf0S\
+\x01\xa0\x12\x0f\x1a2\xe6\xa9\x92\x14\x09\x19\x81w\x8a\x92\
+\xb6\xf9\xf0\x9e\xdc\xcf\xae\xb9\x9e\xdf\x02\xaf\xe9\xc5a\xf3\
+\xfb>e\xb6'w\xdd&.\xb4;\xa6\x01:W\x0e\
+[oK)E\xd3\xe6\xbfl\x9b\x1f\xff\xde\xe6\x87\xc4\
+F\xec\xb6\x0fYK)\x8ccS\xeb\x7f\xe0Zs\x7f\
+\xe0Ua\x9d(W\xf41\xff`\x9b\x97\x97o@\xd5\
+3\x13\xc8\x94\xb9\xce\xf9P\xcc\x99\x9co\xd3\xbf\x84u\
+])\x94\xdc\xf0#OY\xf6\xff\xcd\xfe\xa2\xda\xbd\xbd\
+l\xd8ZZ\xb6=f{\xa1\xed\x85V\xe6\x91\xf6\x9e\
+\xa5i\xf0\xd8\x04\x04\xf9\x0b\x029~\xc6\xaa\x95\xb4\x00\
+\xe6J\x85h\x9d\xf0\xcb\x94\xb0Q\x8bW\xd2$p~\
+\xd3\x222W\x8c\x03\xe2|\x02\x1b\x81\xce\xfb\xe6p\xe9\
+}]\xe0\x9f\x9a\x0f\x95\xb8!\xee\x8bYt\x89\xb0U\
+\x9b\xa2J\x1a\x95&\x00\x5c\xd5\x5cg[\xc9b\xf6(\
+\xe9\xf0y\xfc\x0e\xfe6\xed \xe3b\x9f\xbcYX'\
+n\xcc_\xe3o\x090Q\xfb\x01,\x98\x8e4\x10r\
+\xdd\x14\xd0\x0d\xe0\x12\x10\xda\x9f$\x0a\xfc\x1e`l\x0c\
+\xb0\x13\xf0.\x118\xfe\x00\xbfx\xcc,\xf3\xbftO\
+\xb0\xbf\xf2G\xeds\x02\xecL\xec\x956\x19\xff\x1b\x90\
+\xaa\x1d\xde\x18\xef\xf0\xdfF\xed*\x7f\xcf\xef\x15\xe0\x0b\
+\xec\xc53\xfc0~\x22?P\x1c\x02pq\xdf\xe2\x0d\
+\x9f\xebs\xdc\x87D\xc8\xa0\x09P\xfb\x0e\xad\x1a\x01<\
+\xff\xd0\xe7\x01\x8a<o\xebD\x02\xd6\xab\xfb\x90\x90\xe2\
+_\x8c\xed\xff\x5c\xe7\xd8\xc6\xd0\xf3\xf7\xbdu\xe2z\x07\
+\xf1\xf7\xc3j\xf3=W\x89\xc6\xf3\x84\xad%3\xb5\xdf\
+\x8e\x09\xf1\xf1\xfdF\x0d<\xf7m~\x0cq\xcb\xc1\x12\
+\x19\xfav'z\xf7\x8d\xae\x1b\x80\x0f\xeak\xf5\xf7\x07\
+D\xa4\x17\xe7\x1b\x07F\x0d` \xa5\x9f\xea\x1c\x1e\x07\
+\x9a\xdfW\x12 #\xe5\xe0\x93\x89s=\xe3F\xc4\xe1\
+\x1f)\xff\xae\x87\xa3*\xf0\x1c)\xee\x90=bv\x02\
+n\x0f\x1e\xe5\x88\x83\x83J\xef}Mt\xbf\xef\xd5u\
+\xf9\x5c\x81\x97\x07\xe0:\x056\xa3\xda&$^\x86\xf9\
+\xc4\xb0s\x11\x03\xf4\xf76\x08\x1b\x0e*\x89\xe7\x84\xb2\
+\x7fzf.\xd4\xfc\xb9^\x94\xb4\xac\xcd\xad\xf7Y\x03\
+\xfaeC\xe0\xa0\x103\xbbY:`\x02\xae,\xc3(\
+d\x1c\x05;\xc5R\xe6\xe3a\x11-\xb9v\xd6@C\
+D\xdd\x87~\xe0WN\xea9d;\x91f\x0e\xe9\xe6\
+Ea\x87\xd7\xd6W;\xa5\xcc<T-\x1dJp\xd6\
+\xe8m\x9e\xbfyA\xa3\xec\xa6#U\x00\x09\xe0\x0b\x00\
+\xa2-\xe1\xe5\xc3\xba\xcc\xb4\xc0\xd4F1\xb45\xa9\xf9\
+i\xe1Y?j\xf4\x05\xc4\x02,\xf3\x9d\x88\xa0\x0c\x13\
+$P\x17\x03\xf7;\x88\x984\xc7\xe5C]\xe0jc\
+%\x02\x93\x81\x80\x1a\xb1\x0a\xb0\xef\xd8\xac\x17\x81\xf4\x1c\
+\x97\x0d\xc5\xe7\x8d\x1a\x19#\xc3\xc0\xfcCer\xbf\xfe\
+]\xdb1\x19nm*1v\x1c8\xc4\xf8\x94D\x10\
+[s\x1d\xd6\xb5\x8c\x1e\x00`TM\x1d\x99\x0c\xf6\x91\
+A4\xb1\xfa\x92\xa7\xaap9\x90JV2@\xdf\xdc\
+!\xac\x13!\xd4F\xd0|q@\x8d\xb5t\xe6\x91\x0c\
+)J\x9c.\x03\xd9\xad\xa02.\xe6\xbb@?\xfb\x1a\
+\x13\x9f+1\xc7\x14\xc1\xa9}!\xe7e\x05\x00\x80\xa4\
+'7\xdb\x9b~#l\x1e\x9e\xa7\x87\xcd\x7f\xf7\xd6\xb0\
+\xaeV2\xaf\xa7\x0e\x5c\xfbi:^\xd5\x0e\xce\xc1\xac\
+\x061\xdb\xd5Q\xafU+\x5c\x99\x0f\x19\xb5\xa8\xd1?\
+i-\xb1\xd8\xfer\xd8\xfc\xfa\xa3\xb0\xce!D5\xce\
+\x80u\xff^ak\xdb\xaf\x83\xf7\x0b[U\xd61{\
+\xa6\x97\x87u\xed\x0as\x1d\xcdw\xfd\x9bq\xdf\xbb;\
+-\xd4\xf9\x03\xf7?p\xbf\x03\xf7\xef\xd4\xacs\xbc8\
+D\xdb\x1f\x87\xcd\xaf\xff7\xac\xa3\xe2\x87\x83\xf9\xbf;\
+\x8d\x80l\x07\x08\xb8\x99\xbe6}=\x00\x8as^}\
+\xce\xab\xceyU\x9bO\x8d\x0a]\xc0:\xe6F\x94\x12\
+\x9c\xbaR9\x01\xc9\x9e\xb7\x9at%G\xd5>\xd2\xba\
+\x1a\x1c\xa3\x0a\x14\xb4\xf9\x02\xa4*\xc5Hq\xad\x0aX\
+0\xa8r\xde4*\xf3|\xdeL7\x0f[\x81\x9c\xed\
+\x9b\xc3\xba\xd2\x19\xfbo\x06\xee\x95\x99\xf3\x9c\xf5\x03\xcf\
+\xb6\x8a\xda,V\xbfw%Z\xd6+\xb1Dj\xeb\xd4\
+\xb8\x89u\x86\xd2\xc8\x83\x92\xa9r\xc5\xb5\xedU\x05\xee\
+\xdf\xcfs4\xa8\xf5W\xedj\xe2\xbf\x985\xa7oJ\
+J\xf4\x9d\xe7\xf0\xe5\xce\xad\x9f\xf8}\xa3\x9fx\x05\xb0\
+/\x0f\xeb\x1co\x0e=10\x99\xaed\xdeL/\x0b\
+\x9b\xff\xee\xd5a\xdd\xfa%\xc6\x97\xf7\xb9\xbdUX\xa7\
+^\xae\x8d\xa3R\x00\x19\xff<7\xb6\xb7\x0b\x9b\xe7\xf9\
+\x83\xc2\xe6\xcf\xf9\x9fa+\xf5x\xfb\x98\xb0\xee\x9c\x02\
+\x98\xd2H\xc8\x8c\xaa\xc0\xab\xb4\x00\xa2\x8b\xc3\xd9\x1d\xa3\
+B\xe9\x84\xdfK\xbf\xa7\x02\xf7\xd4N*Uum%\
+\x95b\xe4\xbeZ\x00\x92\xd2-\x0c$\xfb^\x02\x9d\xd3\
+#\xc3\xda\xfa\xfb\xf5\xe9\xd7;F\x81\xf9\x8a\x81B\x14\
+,*\xb5\xe7\xfb\x9e\xde\x1a\xd62\xf6\x0b\x10D\x8b\xe2\
+\x96!\xab9\x7f\xfeG\xc3Z\x97\x8cg\xb6..\x7f\
+\xd6lo\xf3\x9e\xcd?o\xde\xd3\xce\x9b3\x9avS\
+\xee\x8f\x95\x89\xcds\xae\x18.1\xcbo\xb3\x8a\xe1\x01\
+X\x0f\xfc\xef\x03\xa7\x1ex}'V\xad\x0d0\x86]\
+2\xaf\xa6/\x86\xad\x00L\x93F}\xec\xca *-\
+\x16\xeb\xe3\xab\xe9\x0f\x9c\x93\xe7\xd7\x1b\x97\xf9\xb9\xbdR\
+\xd8\xfc\xf9\xdf\x0dk%d\x8d\x11@\xdc\xb2\xbaG\xe4\
+\xfe9\xef\xe9K@#\xd0\xd4\xa5\x09P\x90\x00D\x95\
+r\xfcBR\xfc\x7f+\x19<\xd9}C\xf7\xa9\xca\xa8\
+\xf3\xf3\x88\xf2\x12\xedLQ\xd8\xa2\xc8\x13\xf5\x0c\xd1\xc4\
+\xbb\xad\x00`\xb5\x1f\xfd\xe0\xd2\x1dA\xc0?] \xac\
+c\xfe\xd8\xbf\x88\x14\x0a\x90\xf8\xab\x00e@\x22\xa0S\
+@\xac4\x81?.\xf1\x96\xfeD\xcd/~M\x8a\x88\
+\xee\x9e\x1e\xd6\xads\x09\x12\x0c\x86L\x10T-=\xbf\
+\xde8\x0f\x9a*U\x1a)\xf3O\x9c0\xe7A\xf9q\
+c\x22\x92\xff\xc1?\xa2R/p\x15X\xbb/\x09\xcb\
+\xd4\x8a\xaa\x00\x15\xa3A\xe0\xce\xdf\xb4\x9f\xe9\xe2a\x9d\
+\xf2\x17\xc5#JW\xc7\xb6\x80\xa3\xff2v\x07\xf0\xef\
+\xfc:\x09*\xfe\xe0\xa8\x81\xa0\xe4\xd3\xe7z\x150;\
+\xd7\xbc\x9fx\x85\x9f\xe7}F dd0\xf8|\xef\
+\x0bPr\xbd\x12j\x02\xfdQ\xd4\xdc\xfd\x01\x84\x93Q\
+P%^\xe2$\xcf\x1b3\x8b?g\x1e\x03<|\x8e\
+\xe7\xe8z%\xde\x5c\xf7(\xca\xc8\x8f\xe4\x7f\xb9\xefL\
+|V\x97/\xe2\x93\xe2\xb4\x91\xb9a\x1c\x8d\x1f\x00\x83\
+\x1f]%\x00\x97n:\xe8\xeb\x85\xa1\xf4\x0b\x5c\xbc!\
+\xc7\xda\xc4\xf0\xef\x02W\x0b\x94#\x1e\xef\xf6\x8d\xceA\
+N\xaa\xa1\x80\xa6\xc4\xb7\xd4T\x9a\xa0\x16\x8c\x09\xd0S\
+&\xce\xd39\xb6\x16\xe2\xd8n\xcd\xf5\x8d\xd4\xeb\xb5?\
+\xec\xf2\xf7\x80\x06\x0bu\xcc\xdc\xab\x8dv\x1d\x90$\x0b\
+f\xc8p\xd6\x04\x12X@2\x89\xd5\xc9\xa8`\x1cx\
+\x1f\x99T\x80\x81@\x85\xc3\xe8>,\x14\xdf[04\
+\x04\xbe\x12\xd6\x1d\x10\xf9{\x9b\x9fN\xd5e\xe3\xf4\xf6\
+\xdc\xd0L\xac[e\xbb,bf?\x9b\x220(\xc2\
+W,\x06\xc0\x02 d\x86i\xbe\xc7\xe5`<P\xfd\
+\xd3\x97\x05\xf8\x1f9\xe1\xcf\xcey\xf1\x89\xdc\xb0\xde\x97\
+\x0b\xd2\x02zEXw\xf0(\x19\x01\x18@\xe60!\
+\x88\xa6\xbd\xa6\xd9\x9aA\xcb\xf6\x1cU#\xaf\xf6\x95\xa8\
+M\xd6|\x15c\xc3\xc1\x03\xf0 \x96C\x9c\xc8\x01\xe1\
+\xf7\x88\xe2\xf8\xb9y:\xb6I\x19\x99 c-\xceW\
+\x0f\x15\x1b,\x8a\xb5\xf6{\x99i\xac\x83p\xaf\x98\x07\
+\x0b\xc5SM; \xc2\x01$\xf3J\x05\x1feU\x97\
+\x01\x99\xff\x9eqsv\x87\xd4j\xdb\x87\x82\xaf&\xd1\
+\xcf\xad\x13\xeb\xd0Fb=Y_\x182\x98\x0e\x005\
+\xe3kC\xf2w2S\x10O\xed;\x05\xca\x0e\x12\xf3\
+\x1e\xb2o\xde\xa2\xfc\xd9\x97\xac\xc3\x91\xb2f\x9d9\x18\
+P\xac8\x0a\x99a(\x8d\x07\xb5\x91T\xff\xa93\x13\
+U|}\xd8\xea(\xa8\x85-d\xdb\xfd\x9c\x13\xd6i\
+P$\x82+#S\x94\xc3\x0c\xd0\xcb\xf1\xb0\xae\xb3\xd6\
+rw\x97\xb0n>z~T\xca\xd5(g\xa0*p\
+SR`^m\x9f\x146\x7f\xff\xa7a\xeb}\xd5|\
+V\x9a\x93\xa2H\xd5\x8eFF\xc2\xab\xfe\xe9\x19\x80T\
+-|\xaaWW`,\x90\x05lx\xfe\xc4k\xb2T\
+\x083\xa1\xa9\xdf\xdf\xa2\x03>/\x93\xa2|7\xc8\xb6\
+\x5c/[\xc4\xde\x04\x80\xbb\xb3\x96\x00'$\x03C4\
+\xb0\xda\x80\x9e\xb59{sVjw\xfc\x9f\xf9\xf5\x89\
+a\x9d\xd8\xe1\xb77\xdf\x8aZ\xdcj\xbb\x06\x90\xe2\x88\
+Q\xa7\x07\x8c$\x05\x7f\xba\xc2lW\x5cK\x96\x1a\x05\
+{?\xc5\xc1\xe6y\xbf\x7f\xd5\xfd\xab\xed\xff\xfc\x22\xf6\
+\xb7\x7f\xd4\xea\xe0\x97\xf8\xe2\xc3\x92y`|\xf3y\xd5\
+\xba\x95\x11\xc9@\xad\x9eK\xaa\xaa\xef~q\xb6\x1b&\
+\xe0\xf2\xc7]@\xadf\x16PH\x93\x81c\x90\x01m\
+Q\x9a1\x84dv\x9f\xd9r\x9c+\x95\x1a\x83C\x9b\
+\xadG\x87\xa5\x9a\xfd}\xd3\xb1\xf9\xe2\xb9t=\x91\xa9\
+\xe3\xe0\x01t\xa2\x96\xfd\xd2\x87\x97\x10\x16U:\xe7I\
+\xcb\xa4\xdf.3\xc6w\xe9J\x1b\x9cC\xdag%5\
+~\xfe\xd9RC~\xc5\x80\xac;m\x09\xed\xcc\xacw\
+\xfb\x12`\x01\x13 \x03\xd9\xe8=\x11\xdd'Z\x9b\xbf\
+\x1fw\x94u\xe2`\x02\x88\x1c\xbf\x12\x1dD\x8d\x96\x89\
+\xcf\xeb\x9dN\x09[\x99*%2\xf9\x9c\xb0.\xb0N\
+\xf5n\x81\xfa\xde\x1f4[k\xf3\x89\xdfb\x8c\x11\x8f\
+K\xed\x04\x14`\x80\x81n\x01\xd5O^\xc9F2\x84\
+\x002\x05p\xd8\x87\x89\x88a>\x5c+\xac\x03j\xac\
+W\xdd\x12\x92\xf2Z\x22x)JU\xaa\xdc\xd6/F\
+\xc5\xf9\xb3\x04\x01s\xc2\xb9\xa7\xa6\x99\xe6\x07\x80u\x93\
+\x99\xf6\xeb\x84\xad\xb5\xf4\xb4\x84t3p\x9f\x05\x08\x9c\
+\xbe\xac\x9fVS~\xd6\x1aP\x17\x83M\x00\x17\xb0[\
+\x88->e\xb6\xa7v\xfbX\x9e\xdbJ@\x0aX\x7f\
+\xdd\xee\xd4\x16 ~)\x031\xfb\x9b\xf5\x96\xa2\xa3\xc5\
+\x04\xa1\x8e\x9f\xe7p\x89L>7l\xfe\xfd\x97n^\
+\xb6yY\x1b\xb7\xb6\xef\xef=iy\xdd^:le\
+\x8c\xec\xbd$K\xa98\xf0\xe7\x19\xba:\x090\x9c{\
+\xbaT\x9c\x1a\xb6j\x0al^\xb70\xbbv\xf7\x0c\xcb\
+\xb6~/h\x8c\x9c\xa61!\xa0\xd6\x05\x83&K\x05\
+P\x80D\x89\xb2l\x0bX\x09\x97d\x10\x0b\x80\x0bp\
+\x14p%@|\x98H,@\x0b\x90\x08\xa0\xfc\xf5\xb0\
+N,\xd0>\xc5\xdf\x16O`\xfeHp\xb8>%h\
+\x00j\x81\x1e\xff\xdc\xef\xa7\x86Hi;\xe49\x5c\xa5\
+p\xfc6%\x0048\x04\xe0\xfc\x13\x8c\x1c\x00P\x02\
+ N[v\xc2\x00\x00 \x00IDAT\xc5X\x00\
+\x1c\xf1G\xc4I\xfc(\x81\xab\x84\x0d\x00\x00\xc0\x9bL\
+\xe5*\x91\xf3{\x00\x03\xf7\xc5\xbfs\xdd\x12k\x00\xa2\
+\x11\x00\x10h\x8e\x89X\xd7\xe5\xcb\xbc\xe3\xcf\x8a\xaf\x86\
+vv\x87% \x8d\x0f\xff\xd5~f\xfc<O\xfe\xb2\
+\xfdz\x14\xb3\x1b4\xdcF&\xc1a@\x00 c\x15\
+S\x5c\xc6i\xd0\x8a\xc2\x98\xaay\xe2\xef\x07\xe0\xa2\xfc\
+2\xfe\xa6\xf5\x06(\x1b\xd5\xff\x8d\x83D\x8aRg%\
+\x0a\xe6\x01\x80I\xa9d\x9e\x07\xf5s_y\xfeo\xbe\
+\x13\xd6\xc5a\xfcaq\xf8\xd8\x95j\xac\xfd\x177\x8a\
+K\xb3\x84\xe3`\xcb\xc8_\xbc\x0b(b\x9a\x1c\x9b\x1b\
+\xf9\x05\xf3\x00\xd2\x97\xf0@\xe7\xc8\x8d\x08F/\xe2\xf7\
+\xfd.C\xc7\xa1\x15(\x08p9\xea#\x02#P\x1d\
+\xfb\x97\xf7\xb5-?u.\x81\x89\x1b\x95\x815\xd1\x0c\
+\xe8\xd8'Sm\x0c\xe0\x80c\xedz\xbc\x9aH\x02\xb8\
+\xbc\xbey:/\x07\xa1\x00\xc7\x04\x11\xb8\x9a\xa0\xc6E\
+Mt\xd6D\xd5BJD\xb02\xea\x9e\x83\xfb\x91\x89\
+P#'P\x16\xb0\xa3\xe6\x9a\x90\xdf*$n\xa9\xdd\
+\xa72\xaf\x96\xc4B>.\xdb\xf5@\x5ce~G\xea\
+4\xa0e\xca\x89\xc6\xd1\xfaB2%\xfc\xfb\x9a\xe9^\
+6\x12%\x0a\xa7%5\x15\xd0sz\xce\x03\xed\x832\
+\x10\xd8\xbbcR\xd3tq@Q\xcb\x9aG\x8e\xf1\xe6\
+5a\x9d#d!h;\xa3Ot\x8a\x8fm>\x12\
+\xb6Ru\xab\xb6\xd6\x86\xff\xa1y;\xfdP\x87\xcc:\
+`\xcc\xc3q\x1e\xd8H\xcc+\xed\xb6\xb4\xd7\xbbBX\
+G\xd51\xcfm\xf4\x9e\x97\xf7\xb5 \x05\x98\x00\x22\xc8\
+\xa2\x83\x1ec\x85\xf6\x83\x80\xd5\xb8\x13W\xb1\xf0e\x9e\
+\x07\xd5\xeb\xc3\xbab\x8c\xc8\xf4Ojg8je\xd8\
+\x88mx\xees\xa0\x1e\x95V\x81L\xbf\x8d\xc8\xf8Z\
+\xf7\x0eJ5\xa42\xe1jM\x89\xe4Q\xd5\xb7~\x01\
+H\xa3X\xd0(\x16\xf8w\xcd*c'\x00\x10\x10\x14\
+c\xe56a\xdd\xfdC\xb0\xfb\x12\xa7MG\x9dtP\
+d\xa0Y\x1a\x19\x11\xf0=l\x0d0\x0a\xa8I\xf5\xf8\
+\xaay\xf4\xb99_\xeb}\xa8\xf9\xa2\xf2\xc9 *\x89\
+\xe1 %\xd5\x9fJ\xbe\xcc\xf5\xf6\x95a\x9d\x16\xc0\xbf\
+\x87\xad%/U\xeb\x88!\x91\xeb\xad\xc4*\xb5\x9dI\
+q\xba\x02\x1a\xde\x17\xd6\xed\xcb\xf6\xb9|\xee\xfa\xb1\xab\
+I\x16x\xf8\xbb\xcah\xc9\xa4\x0b\xf4d\x90_\xb00\
+s\x88\xb1MGMGO\xf3~\xbd\xf9\xaf\xb0\xb5]\
+\xd5\xee\x05a\x8d\x0a\xde\x02\xd5\xcd\x19\x9b\xafm\xbe\xd6\
+\xfa$7 \x03\xe5|s\xc7\xb0y<\x8e\x0dk\xeb\
+b\xb9_%\x122\x85_\xdf}\xa3Q\xc7e*\xaf\
+\xb2;\xa1\xd5`\xa7\x03\xb6\x7fVX\xb6\xed:\xa79\
+\xaa\xad\xf6?`\x80\x00\x02\xf6\xbf\x1d\xb6\x06\x5c\xdb7\
+\x86e\x06\xfa.m\x9d,\xe3\x84\xc1! \xc7\x90\xd0\
+\xe6*\xd5\xf0\x95\x8e\xc8\x107\x86\xc0\x93\xd3\x01\xfcP\
+\xb6\xb3zD\xb7\x0e\xb53L\xaa\xb7\x1a\xdaV\x02\xf4\
+\xe6\xd4\x10\xf8\x95\xee\x5c$\xd6\x99\xc0\x8eL[e\xba\
+1\x84\xa8\xf6g\x17\x8e\xc6\xc8\x09F\xc8\x83\xc3:-\
+\x0a\xe7U:\x9eJ\xd2J3 \xc5P\x0b\xe8\xb1\x9f\
+\x115$\xaev\xd7%\x00\x00\x18\xcc\xc1\xea\x22\xf2\xfa\
+\xa8\xac\xb5\xcf}\xbc\xd4\xd9o\xb6\xbbyP|\xcb\x01\
+W\xf3+\x13\xa6\xdf:\x00\xd9\xf9*c\x9a\xedb\xab\
+o}jfx\x9f\xdd/\x85u\x9a\x0a\xfc\x17\xc0D\
+\x02D\xf5s\xed\xc00w\xb2\xcdfe\x1c9\x94\x19\
+ \xd0 \xb0\xff\xdb\xef\xe6\xc0\xb3\x89\xe4N\x97\x99.\
+;]vm'\xb8yw\xd8\xfc\xf3O\x84uT~\
+%7\xba\xa7\xc8\xb8\x12k\xc4\x90\xb8\xe9<b7m\
+\xedr\x1f\xd8\x18\x16\x1cU\xe7\x02&Ff\x8a\x01\x13\
+\x05$\xdbgQ\x98\xf5\x87W\x13\xee~\x05\x8a2U\
+\xceq@\xba}9\x034\x81\xef\xf6%\xdb\x17o_\
+\xdc\x95r\xe4s\x98\xfe1\xace\xc2Z[\xb9\x90\xec\
+k\xa5\xa5\xaf_\x9e\xdf\xfc[m\xbc\xec\xef\xdb\xb7m\
+\xdf\xbe}[\x03F~\xaa\xb5Q|\xd3\xe6o7o\
+J\x86`\x97\x19\xaeR\xa4,\xe9\xe2\x90\xf3W\x0e<\
+\xf9\xc0S\x0e<y-\xb1\xda\xddw)!\xac\x04\x0d\
+\xc0C\xa9U\x8a V\xe9\x91\x92\x99\xe74\x0b\x95\xfa\
+\x85\xf9`\x1e\xf2[\xf2\xdf7\xe7\xdf\x1c\xb59j\xd5\
+\xe4\xd9|#\x8aG\xe6\xd7\x1f\x86um\xf8\x9cC\xce\
+w\xeb/\xbf/\x0a\xbf\x04N\x96b\xccg\xf8\xf9\xda\
+\xfe\xf3\x9al;K\x93F\xe0+pK5\xfd\xe9Q\
+a\xddu\x0a\x881\x01\xf2\xfc(\xf1\xc7\xec\x82R\xda\
+O\xfc\xac\x91a)\x01\x98\x8c\xe0\x02\xd4s\x9d\x96\x06\
+F\x06\xea\xe5\x0f\x11\x1d\x06,\x8b7\xc6\x1as*\xf4\
+(\xfc\xf6=\xcc\x9d\x04\x96\xf6\x1e\xdcl\x0d\x9c\x95\x9e\
+\xa8\xed\xc6P\xd1n\xd0:\x93`\x93\xb0\xe2\x17i\xc7\
+\x8a\xa1\x97ZUun\x032\x05\x84\xc4\x1b\x07\xb5\xfe\
+\xd2\x04\xe0\xd7\xf3C\x003\xfc\xd1\xb1k\x18\xff\x8b\x7f\
+j\x9d\xf1\xdf\xc6\x0c\xb8\xf7\x19k\xdc\xed\x07\xfc{q\
+\x93\xe7\xe8\xf7\xf8\x9d>\xcf\xf5\x88\x83\x00\x0c\xfcO\xfe\
+\xc2(\xe2\xe7\xfe\x94\xccj\x83;\xc6c>\xd7x\x09\
+\xf0\x01\x11\x83&L%H1!<g\x22\x7f\x12L\
+\xc6=\xcf\xa9J\x08(-\xe0\xff\x89\x8f\xccc\xeb\xce\
+\xfb\x0a\xc4\x9do\xbaHx\x8ej\xfd\x95\xeah\xff\x0c\
+\xb8\x1aD\xc8\xa3\xe7J\xeb\xba\xf2Sa\x1dCU|\
+f\x1f\x18\x81\x9csJ\xf4\xfd\x10fy\x95\x98\xe7\xb8\
+\xafm\x00\x03\xb79:\x07\xec\xa8\x01Y\xda\xcf\x85\xf5\
+\xfd\x1c\xa03\xb2\xa6\xffR\xe7B]\x1f/@\xa0k\
+\xe0\x04\xf0\x0eL7\xec`\x11\xe8\x0b\x10\xb2MN!\
+Q\x07Z\xce\xf90\xeaz\x89\x0e%\x15\xba&\x80\xdf\
+\xd3\x86\x8e\x8a6\xe4n\xa4\xba\x8c\xd4\x09\x13\xc4\x02\xb0\
+ h\x1c\xd0\x0481\xa9\xca\x00\x11\x0b\xce\x06=\xaa\
+i\xbao\x01\xef(\xde0\x8a\x18\x8e\xfd$\x05(&\
+\xbc\x8c\x85\xeb\x14\x00B\xdcOK\xcd\x83\x9bd\xa6\xd9\
+\x84\x19\xfb\x92\x8e\x1b\xca \xa6W\xd4F\x94\xf3tt\
+j\x1c=\x0f\xd7%\xc0\xcdq\xd9\xdc$\x1dp\x14.\
+5\xce\xd7\xca\x00\xd1FI\xbd<\x1d\xd9j\x17\x96\xfd\
+s\xeb\xfa\xf5\x99\xcd\xbe\xcfu\x90\x0aT0\x03\x00R\
+\xfa\x15C\x90\x9f1\xbb\x91\xcf\xe8\xdeol\x93rF\
+.\xe4\xb7.\xe2Y\x9b\xeb'\x15\x7f\xec\xe3\x89\xe2.\
+\x13\x220\xb5a\xc9\xe4\xa8\xa9\x05\x8cq\xc0r\x9e\x15\
+\xe52\x1d\xeb\xa2\xf4;\x98\xdd\xc7\xf0\xb9\xb5\x91s\xb0\
+\x04\xd4\x1c0H\xb0yo\xbe[\xafc;N\xef?\
+0}\xf4\x19\xaf\xb6L\xe6\xcb\xa8\x85\xe0\xe7j\xced\
+\xc6i\x1f\x00\xcc\x5c\xbf\xfd&\xe7\x91Z\xe6\x9aO~\
+?\xc5}J\xcb\x02p&\xa0\x19\xda\xc5\x14\xc3B\x0d\
+ \xca*$]f\x1d@\xe9\xb9\x8cj\xae\xfe=\xd7\
+\x19\x87\xba\x0e@]\x00\xb2\x9d\xa7vQ\xd3'\xc3\xe6\
+\x9f\xdf`\xe9\x1e\xa2\xbd\x16\x0ai\xad\x93<\x18v?\
+\x1d\xd6\xf5\xd3\xb6\xd1\xff\xedR\x9bIEz\xf3\x0fa\
+\xeb\x81Pm\x99d\x0a\xd2q\xafL^\xfe^\x01L\
+)\x16V\xf3\x12\xf0\x91m\x936\xf7\x0d[k\xab\x0b\
+\xd9\xc7\x04\xf0\xdc\x00\xae\x0e\xf8\x5c\x8f\xa5\xe9\x90L\x8a\
+\xe9\x09a\x1d\xa3\xe2\x1ba\x9d#E\x05=3{\xfb\
+\xd7\x0a[\x03\x8b\xed\xe9ak\xc01\x1d\x11\xb6\xce\x9b\
+9<Yj\xbb\xf3\xc0\xdd\xbe3l~}tR\xa8\
+1N\xde\x92m\xd3N\x9e\xed\xa1\xad?\xfb\x15\xa3?\
+{1\x18\xb2\xf4@\xfb\xd7\xe96\xd3/M\xf3\xb8\xec\
+o\xf6\x0f\x84F\xc0\xee\xe8%\xa3\xb9{o\x8a[\x9d\
+\x146\xff\xfb\xf7\xc2V`r\xf3\xcc\xcd\xb36\xcfZ\
+3\xc0{\xaf\x9e\xc3\xd8Ww]K\xa2\xc6\xf5\xd1k\
+`^m\xeaP\x01\xd3A\x9a\xfeWX\xce\xe7\xd3\xba\
+\xfd+\xdc\xf6?]K\x07\xca\x91\x07\xe0\xa5\x16B\x0b\
+\xc7?\xdaiO\xd8w\x01H\x99!\x9d\x1e\x12\xb6\xee\
+/\xdb\x13\xc2\xd6\x92\x0cTt\x8e~\x03\x00\xa2\xa6\xf9\
+3\xb3}zm_X\x0e\xd7\xc3\xc2\xba6\x8cY:\
+S\x01\x12\xe6\x83@_\xc6\xf5\x8c\x85\x817\xfd\xee\xf4\
+\xb0\xe9a\xab\x03\xb6\xbbz\xd8\x0ad\x99\xafEa\x97\
+a\xce\xccg\xads\xa2\xb9\x19\x08T\xffd\x00\xb4s\
+^\xa6\xd3\xef%\x90\xeb\xfd\x8b\xd2\x0dXH\xc7S)\
+P\xedW\x09\x0c\x14\x95?\x01\xb8:\xc7\x9d\xd3\xc4n\
+\x93\xd95\xfdTX\x8a\xe4\x85x\xe4;\xa6\xff7\xc5\
+:\xff\xfe\x22>\xb9\xbdI\xd8\xfc\xfd)akFY\
+iL1 \xae\xb2\x9c\xfbs\x98\xbf\x00-o\xdc\xfb\
+\xeb(5A\xd1\xb6\x8f\x14\x10\xa5[@\x02]\xf5|\
+\x5c\xb7\xd2\x92\x14\xdb-\xff\xc3\xba}hX\x97\x01N\
+G\xbb\xc4\xe9P\xa2s\x1dWw\x17L\x9bl\xa7\xd8\
+\xba\x10,\xb5\xdc\x8d\x92\xee>7\x07\xc3\x9a\xb8\xda\xd2\
+F\xf4?\xc3\xba6\x85\xb9?oo\x1e\xb6\xce\xd79\
+\xe8=\xa1e\xca\x9c+D`\xdf\xdfl\x15\x9b\xbb_\
+\xd8Z\x1a!\xd0&\x96\xb7\xb9T\xd8|,\xbd\xe3\xc0\
+\xdb\x0f\xbc\xa3\xf3K\x7f\xb3\x91\xe0#\x93\xf6\xa5\xd6v\
+1\xe7\xcd\xf4\xbd\xb0U\xcb\xa3\x18\x00\xcf\x0c\xeb\xe6\x9d\
+\xf6x\x98\x12\xa91\x03\xf0+\xed\x88\xcc\xfc\xf1\xb3\xcc\
+\xffz\x1e\xf6g\xe7\xa3sw\xa4P;\xd7\xa3`\xe6\
+j\x1d\xa3\x22\x98E\xc1\xe0\xba\x7f\xd8\xfc\xef/Z\xda\
+\x1a\xd6\xfc$\x8aj\xdf\xca\xf3\xbf\xfc\x5c\xa5c2\xf5\
+D(\x9dG\x18\x18D\xec\xf8\xc5\xfc\x94\xdc\x1f6\xff\
+-l]\x0f\x98\x97\xa5i\x82\xb1\x97%\x1fJ\xe7j\
+\xbfs\x9e\x0f5\xe2\x15p:\x17\x05\xdc\x18<\x18\x01\
+4\x04\x04h\xb4\x06\x9c\xefD\xf70$\x04\x8c\xb4\x81\
+\x00\x82\xfc9\xdd6\x94\xa4*]p.\xcb\xd0\xf3\xbb\
+\x89\x02\xabi'\xca\x98\xf3\xb5\xae\x83\xbf\xce?\xe5\x1f\
+\xf0\xeb$b\xec\x7f\xf6{\xfe\x9e\xf1\xe0'y\x1f\x01\
+\xee\xa8U \xde\xf1\xdc\xbc\xd2\xfa\xd05\x81\x7f$n\
+\xe0/\xf0\x0biX\xf9\xbcQ\xccO\x9c\x90\x09\xa3\xba\
+\xfe1\x9e\x1c\x13\xcd\x12P\x00\x9e\xa1+\xcea\x80\x01\
+\xff\xc5\xf5\x02H0\x11\xbc\x02&\x04\xee\x12\x8d\xc6\x13\
+\xb0\xc6\xdf\x1d\x99\xbe\xa3V\x00 IW\x0a\x09]\xcc\
+K\x9f\x03(\x95`\xe1\xef\x9b\xd7\xde\xd7>\xf4\xc3C\
+\xe3\xb2\xc3J\x8e\x01\x82\xe9\xcf\x8c\xcc\x84\x835aF\
+*\xc1\xd8\xd6\x80z\x7fL\xd3\x1fu\xc8\x06\xa4\x82\xd8\
+\x15\xc70\xde\xe5\x07\xb9\x01\xdc\xb4\x0bHd\xb4d\xf2\
+d\xa0\xc7\xeb\xe8\xa9\x1f?\xee\xc4\x06\x7fR_\xf5q\
+b\x0d\xe2z\x951\x1c\xfb\xab\x8f\x99\xd0\xb1K\x80\xc0\
+\xcb\x04\x00dx@\xc6\xc9\xdf\x99x\xaeo\x0c\xa4-\
+\xd4\xa1\x9fq\x1dP2\xdf(\x95~\x0f\xf5\xdb\xc4\xb3\
+\xf1\xd9\xd8<7\x14\x11\x0b\xde\x81\xa0\xc4\xc0DJ\x11\
+\xb0\x12\xf5\xa3\x09p\xc5\xa4\x16\x1f\x97\x9f\xb7\x22K\xcb\
+\x84\xda\xe6\xb8\x19\xd7\xef\xe5}Z\x98\x80\x8ec\x13\xd0\
+\x11\xc8\x0b@o\x99\x1b\xe5\xe5\xf3\x00\xf0s\x01\xb3\x05\
+\x06a\x13\xc0\xdf3)dwI\xaa\xbeyI\xac\x85\
+\x18[f\x0aK\xec&_\x0b\x89M1\x97\xca\x08\x99\
+O_\x9b\x97\xef\xd7:\x00\xc5\x02s=\x9fM\x91\xa0\
+w\xa6\xa3\xa0\xf6\xdaAk\x83\x06\xec\x18\x1f\x1b+\xa6\
+@RA\xeb\xefez\xcd\x135\x9eY\xc3U\xd71\
+f\xccm\x04\xe6\xb3\xf1B\x0dG\xe5\x97y6\xce\xe6\
+\x81\x8d\xddF\xe19\x8f\x01\xb0\x83\xc2Ae\xfe\x8e\x22\
+D\x0e\x06\xcfq,\x092\xcf\xd2AT\x83X@\x0c\
+\xa4ul\xebb\xbe\x03\xb4\xac\x0b\xa5$\x18.\x18&\
+\xae\xd3\xf5[\xaf\x80<\x0e \x11\xd0\xdf\x09\xeb~\xdf\
+:\xf2e?A\x95\xcdZ\xc2R\x91\x8d\x9a\xd2{u\
+\x9f\x83\xc2\x0d\xd1\xd6\xc6I_r\x81\x1ajd\x1e\x00\
+\xbb+\x87u\x99\xe1\xcc\xacT\x0d\xa6\xfd+\xfbwW\
+?\xe7\xcc\xb8U-\xfaYak\xa6\x7f\xfb\x8e\xb0n\
+\x1eX\xf7\x9e\xbb\xfd\xc0~\x88\xba\x09\x08\x13\xd0\xa3\x98\
+fF\xae\xc461q\x1cT2\x83\x19P\x9f\xf3\xf5\
+\xb0\xd5\xb1\xad\x12\x97\x0c\x0c6G\x87\xad\xb5m\xc4\x8d\
+\xb4\x0f\xdb\xfe[\xd8*\x06\xa7\xa6t\xf3\xae\xb0u\xbd\
+\xce\x01\xf7l\xf3\xef?7l~\xfd\x8f\xed'\xb7\x9f\
+\xecD\x1e1=\xbe\xbd\x04J\xfbG\xed\x1f\x1dT\xfd\
+\x02r\x88\x22\xa6\xd6Fc\x16\xdcd\x05p\xa6\xfd\xb0\
+\xf9\xf5\xcea\xf3\xeb\xd5\xa6\xabOW\xef\xd4\xac\xd3\xf1\
+\xdd\xdeb{\xe2v^\xd7\xdb_\x98\xed\xfaMt\xee\
+\x9e\x919\xc5\xac\xc0\x00+\xaa\xb6\xfd\x83cj\x1e\xa9\
+EL11Z!\x9b\xd3\xc2:J\xa5Lx\xc0\x86\
+\x7f\xb60\x83Z\xe6\x0b\x15\x17\xe5;\xde\xf5\xe2-\xf3\
+\xb1\x00M7\x9d\xef\xf0\xa6\x99!~L\x02WWY\
+3_\xd3\xc1\xb0\x06\x90\x5c\xa1\x01$Y\x8b\x8dr\xbd\
+}\xe9l/\xe9\xf6\xdf\xbc\xaf\xed_\x87\xadm\xec\xa6\
+\xe7\x84\xcd?\x7f\xea\xf6i\xdb\xa75\xea\xf7\xe20\xe6\
+>'\x00-@ \xdb\xe9\xaaE/\xd5q\x8e\xae\xfd\
+5\xef\xab\x80+\x01\x05\x87^f%\xf7\x1d\xcc\x12\x8e\
+\xf8\xe6WS4\xf5\xb8\xe5\x1c\x9d\xde\x1b\xb6\xfa%\xa1\
+\xc5\x1e\x14\xf1\x12\xb3\xd3>\x0c\xa0\x9a\x80\x03@z\xfb\
+\xbc\xb0n\xdd\xcb \xb9/\x14|\xeb\xce\xfa\xcd\xf1V\
+\xbb\xafM\xe5t\xad\xe9\x9a\xd35\xd7\xf6w\xda/R\
+\xff\x9f~gz\xd0\xf4\xa0.p#\x8e\xa8t\xc5\xf5\
+F\xd7\xf1ou\x81\x1b\x87Q\x80\x92b\x7f\x15\x80\xdf\
+1\xac;\x7f\xac\x7f@,?\xc7y\xf7;\xcd*@\
+\xaan\x0e{\x0d\x97X\xba\x80\xfcv\xd7\xce\x8a\xb8h\
+\xb4C}Q2!n\xd91\x19N_\xba,\x14 \
+'\x93}\xf5\x04j\xb5\x95\xcc\x00\xca\xfe\x8bI\xb1}\
+F\xd8\xfc\xfd\x1d\xa6\xdbOwX3\xfd\xdb\xfb\x86u\
+\x22\x9b\x01\x8b\xfeB\x03\x0e\xef\xdd\xd6'*?Q\xca\
+\x04|6/Z\xaes\x0e\xbb?\x1e\x81\xf7\xf6\xb6\xf3\
+>\x16Z+w\x0ek\xc0\xdaK\x03X\xab@>\x9f\
+\xc7\xe6%a\xdds\xcb\xf6\xa2\xfb\x9f\x0d[\x9f\xc7\xee\
+\xa2a\xdd\xbe\x97@\xd7\x81O\x87u\xfe\x8f\x8c:\x7f\
+[\xa6\x5c \xe1\xdc\xd5\x15\x07\x03\xc8\xf3L\x80\xbc\x02\
+m\xcc\xab\x0c\x841Ji7\x94(-\xbf\x0e\x85\x1f\
+\xb0h\x1e\x8d}\xeei2\xe4:\xaa\x8c\xb9\xf3\x84\xbf\
+\xce\x7f\xb6\x9ed\xf8\xf9\xbb\xb9\xbf\xcb\x84\xd7\xfba\xe4\
+\xd0b2>\xba#\xc9\xf4\x8emR1\x123!P\
+\xfb-\xbfK`,\xf0&\x8a8\x96\x18\xd8O\xf9?\
+\x02O~\x11\x86\xeec\xc3V\xd1C\x80X\xb5\xc5u\
+^\x02\x02\xdc\xbf\xf1\xe1\x8fYg\x18D\x98\x03\x12%\
+\x99p\xa8s\x1bp\x93\x0c9\x00]\xdd'\xd1\x5c\xe3\
+\xc0O\xe3\xf7\x8c\x00\xc0\x18\x97\xf1g\xc5K4\x12\x8c\
+\xc7(\xfe\xed\xfd\xbc\xff\x18\xb0J(f\xdb\xf7\x0a\xfc\
+=7\x81\xb5q\x19\xdb\xe9\xf9\xb9\xcf\x97\xf8Qb4\
+2U%*\xc6\xdf\xa7\xb1\x00 \xf0\xef\x09\xc4W\xc2\
+\x13\xd0\xebs\xc7.o\xba:`\x12\x8c\x00\x02?\x94\
+\xbf;\xb67\x14?\xf1\x030\x8d\xc4y\xe2\x13~\x83\
+q\x14\x0f\xf8\xb9R\xe8dR\x15@6\x94^\x1c<\
+D\xb4\xeckyC\xe7\x1d2\xe2?>\x97\x1a\x83\xbe\
+-\xdfw\xba>\xab\xda\x89\xc52\xb8p\x17@\x998\
+\x9fhU\xe1\xd5\xc6\xa5e\xc6n\xd8\x89\xae\xc4t\xec\
+\x03\x08\xaf\x06Hi\x82\x80\xc3\x00\x8cT\x11\x0b\xd2\xc4\
+\xb7\xe1\xc4_\x1d\xd1M\xc41\x13\xae\xfb@R%\x0e\
+k\xb3' 0\x11\x0d\xbc\x00\xc2\xfb\x8e\xda\x04\x16\xa8\
+\x9ar\x1b\x1f\xc7\x05%\x0c#@\xc0\xe6\xba\xdd\x97\x09\
+\xa6\xd6(\xafgsBX7q\x86\xcf-j\xba\x8c\
+\xa7\x89k|\x05N9^jD\x8a\xba}\xe6\xd0\x0f\
+se,,\xf3d\xd4\x8a\xb8@^7f\x87\xbf[\
+\xb5\x1d\x0e\xd5\x940\xf1!\x87\x80\x10\x01\xc5%\xb3/\
+\xb7\xfb\x82\xe0\xe6\x010\x1fk\x8dz</\xf6\xa5d\
+\xe2\x03\xd9\x96\xee\xc1K_u\x22x\x95\xb1\xe08q\
+,\x05\xec\xe6\x0d\x91:Z\x10\xee\x97\xba\xac\x83\xe9\xb2\
+\x09d\x99\x8f\xee\xfb\xc8\x9cw6N\x94(%\x1d\xd4\
+\xfb\x7f3\xac\xcb\xec\x01,\x04\xf0\xe6\x83\xf56\x8a\xef\
+Y\x97\xc6q\xbd\x8e\x0b\xf4\xed8\xcb\x81\xb3\x1e\xc6\xbe\
+\xae\x0e\xd0\xcc\xcc\x16@2\x8a\xb7\xa0ha\xbeX\x1f\
+ci\xd0\xc8\xa4\xb0\xbe\x88\xfc\xe5\xfc\xdd<*l\xd5\
+\x0e\xa8\xdaR\xf7\xe5\x80\x1c\xbb!`\xc0\xb8\xee\xec\xef\
+m\xbc\x0b0\xb3\x9eu\xcb\xd0>lTi\x1d\xdb\xcd\
+\x10\xdf!\xd2w\xb7\xb0\x8e2\x9d\x01}\xd5\xd2\xdb\xe7\
+\x00,J\x03N\x08\xeb2\x082o\xff_X\xb7\xbe\
+Q\xc2\xf4+\xfen\x93=[\x196\x80\x90'5\x8b\
+\x00\xee\xa6-\x80#\xd2\x96\x8e\xc1\xf4\x91\xb0y\x19\xfe\
+eX\xf6\xd9\x8e\x00\xef+a]\x09\x82\x83@\xc6c\
+\x10\xcf\xa9\xb6\x8e\xc9\x98j\x94\xf3\xdf\xefD\xde\x8c\xe7\
+\x7f\x86u\x0c\x96\xbf\x09\x9b\xb7\xab7\x87\xad\x0e\xed\xf4\
+\x92\xb0\xae\xe4\x09\xf0\x92\x0e}1]\x00XG\x86\xad\
+\x0e\x96@T\xfb;\xda\x0a\xdb;\x84\xad\x14\xff&\xe6\
+\xbf\xbfv-\xa9\x0c\xc5y\xb2$\xe9\x22\xbb\x0b\xef.\
+\xdc(\xfc\x8b8Z\x060\x07\xee\x1a\xd6\x95\x16\xa4C\
+\xb2\xff\xc4\xfd'\xed?q~}\xed\xfek\xf6\x83\x8a\
+\xfc\x0fa\x0d\x88h\x19\xdb\xbd\xc7.\x81V\xf3\xff\xe7\
+yw\xe0\xb2a\xf3\xeb\x95\x0f\x9cp\xe0*\xe9X_\
+yU\xb9W\xe2\xb1;r\xb6\xf3\x95p\xcf:\x9f\x01\
+\xe5\x02H\x81\xdc\xbd\x9a\xad\xe7\x04\x8d\x08\xfd\xb2Cz\
+\xed;KF\xaf\x9d\xa3\xf6q\x9a\x09A\xb5\xbfS\xab\
+A?e\xef\x94\xae\xe4#\xa9\xfa\xd3wg\x9b\xff~\
+{\xe7\xd9\xee2\x7f\xff\xf1\xb0U\xcd\xbe\xae\xcf\xe7\xa6\
+\xe6L\xab\xd9\xbdk'\xa2\x95L\x9f\xd6\x0e1\xfa\xb8\
+\xbf{\xe9\xe2P\xe7R\x9e?Jd\x88\x90\x95&@\
+\xce+\xd4\xe36\x0f?\x90\xa2h\x7f\xd2\x95\xb4\xec\x16\
+5\xf5Z\x17\x18\x85\x1cr\x0e\x93\xbe\xd9\xe9@\xd3\xc0\
+\xd8\xbbS\xd6jg[7]\x18\xa6\xb7\x85\xcd??\
+oX\xb7^r\xddU\xe0\xff\xe6\xb0n\xfde\xc0Z\
+\xfb4\x80\x15\xf0\x9b\xc0a\x05^\x9ecR\xaf}\xee\
+t\x9e\xb0\x5co\x8fL\x0a\xf4\x1fu@Av\x83\xd8\
+\xbdx\xc9`Ww\x085\xd5\xda\x04*\xadp\xffD\
+\xd2h0\xe9\xbe\x83\xf1\x02\x08\xcb\xfb\xab\xf6\xbc\xba\x0b\
+9\x17i*\xa0\xa2\x03&%J\xee\xddl-U\xc1\
+\xa0H@\xa8\x00P\xc0/\xbf!f\xfb[\x1a\x03\xa9\
+Qa\xab\xb4\x80\xd8a\xb6\x03,\x8d\x07\x99g\xc0\x03\
+\xc0 E\xff\xb4\xf5\x0c\xe2\x7fP\xff\xa7\x9f\x0dk\xfb\
+y\x13\xc9\xdc\xfc\xd9\x22\x22<\xefB\x8d98\x9f\xe2\
+\x0b3MW\x9c\x04\xa26\xbf\x176\xbf~as\xbd\
+\xd0z\xe9\xda~\xbeb\xfb\x8a\xa6-q\xf2\xee\xe4\xb6\
+o/\xaa\xfbD!S}\xbe\xc4Y\xf3y``\xe9\
+jR\x8c\x9f\x04\x5c\xec\xf7\xd3\xfb\xc3V\x00\x88\x1f2\
+\xff\xeb\x02<c\xaa\xe8\xde2\xf4e/\x06\x06\x7f\x22\
+Kv\xca\x0f\xcaR*\x9aJ\xba2\x14\xc0L4\x12\
+\xf3\x85\x1f\xa1+\x07?C\x17\x10\xdd>\x9c_\xde\xc7\
+\xf9\x02\x08\x13\x18\xe9:%Q\xc6\xff\x1cD\xf06\xb7\
+\x0e\xeb\xe6\xa7\xd29\xe2\xa12\xea\x02E]j\xf8;\
+2\xf3c@\xcd\x9f\xe1O\x0d\xa5\x9eU\xaak\x1f\xc9\
+\x92\x881s\x5c\x22\x85\xe2\x22\xa5\x8a\xba\xf1diS\
+\xf9\xb1\x12@\x18\x89J\x83\x01\x0c\x18F\xc6\xc3\xf3\xa4\
+\xf1e\xbe\x8cm\xd2\xf9K\xae\x0fsJ)\xc21a\
+]\xe0/\xf0\x1c\xbbP\x8d\xfe\xfd\xa8\xfd4&^\xc5\
+\x0f>\x97\xbf+\xfe\x19\x03U\xef7\x96\xd6\x1a?\xbf\
+\xe7\xba\x00\xaa\xfcI\x9f?v\x87\xc2\xf0S2\xca\xdf\
+\x02\xac\xf8\xbb\x911\xcb\x0f\xf4\xea~\xfc\xde9\x87\x8a\
+\xbe\x17\x93U<% \xa7\x89A\xf3\x0ds\xc3\xf3\x94\
+@\x01\xdc\xdb\xbf\x00\x04\xa3\x9f\xedz18\xf9\xcf\x00\
+p\xc0\xca\xc84\xf0s\xcf\xcbs\x1a\xfd\xdc<'\x0f\
+\xb6@\xf7\xf3Iu\xba\xe4\xb9\xbc\xd1\x88\xe0\xfc\xa8\x91\
+\xc1\xd7\x07\xebA\x0b\x07\xe3\xbb\xa3\xbb\x80\xce\x07\xba1\
+\x99\x88\xcc\xec\xd7\x80FF\xf4\x16\xdd\x0d\x0e\x81Y\xa9\
+\xe1\x07\x02s\xdc\x0a<T\x0d\x88\xc0\xc6A\xe5\xd5D\
+\xc9\xeb\xae\xfbEa\xe6\x80{\x906\x0e\x07\x9a\x89\xd0\
+wI\xf8\xaf\xc3\xfb>\xee>\xb3\xfb\xf4\xee\xd3\xdd\x83\
+S{(\x90\xbb\xfc \x227v9\x18)\xdaC-\
+s\x89V\xc8\x90B\xc8dDmt\xbe\x1f_\x05\x92\
+6p\xb5\xe8\x1c\xa8\x8b\xe7u\xe4A\xb8\xc1$\x00\x5c\
+\xb8^\x07\x81\xf1:o\x02\x09#\xa5\xdc\x84\x13\xb8\x8d\
+52~o\x04\x96\xbe{(\x02\xba\xfb\x83\xb0n!\
+\x02\x00\x04\xe8\x0f\xc9\x00\x1fu>U}\xf7N\xcdZ\
+;\xf3\xc3\xfdC\x8c\xaf\x96\xcc\x93\x9fK\x118\x81\x16\
+\xf1;\x19\x155\xf7I\x15\xac\xfb\xca\x85\xbd{K\x22\
+\xf0S\xd5\xdc,\x0b\xcf\xfcW\x13~\xbb\xac\xd9w\xfd\
+\x1c}\x81\xbf\xe7\x01Q\x971\x92\x09\x16\xb8\x12\xd7\x12\
+\x809H\xc6\xf9\x0e \xb0\x01\x18g\x1b\xbdy\xed~\
+\x1c8\xe6\xbd\x0d\xc7\x86h\xde[\xcf6^\xaf6\x22\
+\x01\xba\x0d\xde\xba\xf4\x0a\x081\x0e\x10w\x07lRx\
+\x8b\xca9R\xcf\xf4q\xd5\x15\xc1zu@\x10\xe3\x13\
+\xa0\xa3Rj\xfbw\xfff\xeb\xf8\x0c\xb5\xc2\xa5\xc5\xe0\
+y\x13\x0d\xcc\x00\xd8<*\x0a2\xed\x87\x7f\x0d\xeb\x02\
+%\xfb&\x91,}\xdc\xf3\x00G\xdd\xad\x92\x17\xcfO\
+;\xbf\x1fm~\xb8\xf9Q\x0bx\x9e\xde\xa8\xb8\xc4b\
+R\xe5]\x86\xa1\x98\x14\x99\xe9*\xa0\x82\xb8S~.\
+\x91\xaa\xed\x0b\xc3:-\x80g\xee=\xa39z\x00\x98\
+l\x93V\x8c\x0d\xb5\x99O\x08\xeb\xf6=\xed\xc42\x80\
+\xd3\x16o\xff!ak\xe6wzu\xd8\xfc\xb9o\x09\
+\x9b\xbf\xff\xefak\x8d\xf1\xf6Zak\xa6\x7f{\xd1\
+\xb0\xb5K@9\xaaD:s?\xdc|.\xac{\xee\
+\x99\x01\x9b>\x14\xb6\xb6\xb1\xdc|j\xf3\xc9\xcd'\xb3\
+]\xd8Ow\xfbV\xce\x7f5\xb7\xa5Z\x9f\x94\xf4\xa2\
+f\x1f\x156\xdf\xd7-\xc3\xe6\xef\x7f\x14\xd6\xc4\x83Z\
+\x80\xbe\xbdO\xd8\x1c\xf0\xbf/l~\xbd\xd9\x81\x9b\x1f\
+\x98\x9f\xc7\xf6\x01\xdb\xfbo\x1f\x90\x0c\xb7\x9f\xef\x02\xda\
+3\xe7\xf7?\xb3\x9b\xf7\xd6\xcf\xb1\x8b\xf6\xce\xe6:\x9b\
+\xeb\xb6\xcc\xde\x13wOh\xe2\x85\xd9\xa6\xb1\xf6\xf1\x1e\
+0\x88\xfbyj\xb3\xea?]\xf7\xc7\x11{y\xb3X\
+\xb7\x9fm\x99,\xdd$\x92y\xb1\xf7\xb4T1\xcf\xf5\
+>])\xac9\xf0\xf7\x09\x07\x9e\x83[\x0c\x8et\xa0\
+\xa7'\x85e\x80\xf3KyY\x9b\xe5\xbc\x9e.\xb4\x02\
++\xdb\x03a]\x863\x81e\x01QQ\xa6#0\xfd\
+xR\xc2c\x7f\xbb\xc6l\xd7\x5c\x99\x86E\x81\xce\xcc\
+j+A\xbc\xe4\xfa9T\xd3\x0b\x10\xa1ZNSA\
+\x1b%\xcc9\x9a \xc4\x14e\xc6\xb4MLFN9\
+R\xf63\x0e\xf8w\x16\x07\x92\xb6NQ\x97ex\xd2\
+\xb1\xab\xfe\xf1\x00\x93d<T\xeds\xaaIOw\x88\
+\x9c\xf5\xfcz\x8b\xd9N\xcc\xfd\xf2\xbc\x1d\xe0\x92\x00\xe7\
+\xeeG\xd1X\xb9\x89\xd1-\x81;\x113\x8e\xb2R\xad\
+d\x0a\x00\xb4\xaa\xddm\xf6\x9d\xaf\x12\x1c\xb5\xf0\xe9?\
+4\xed\x8e?\xcfL\xec\xcfu%\x017k\xfd~\xd6\
+\x00*\xc2\xc6\xd7v\x81\x98\xf3;\xae\x22\xda\x8d\xbe=\
+l-\x85*\xc6\x8b\xb6\x80\xaeK\xc0\x96\x0c\xbc\x0a\xf4\
+u\x89xY\xf6\xe9\xa6\xb5\x90b~Ur\xa0\xe43\
+\x9fg\xf4\x1c\x88\xae\x03\xdavn\x1f\x1c\x96]\x03\x9e\
+\xd9\x89<\xa7\xe8\xe3\xf6\x19\xdbgn\x9f\xd9\x8d\x9bZ\
+\xfe\xe3\x16\xea\xfe\xfc\xaf\xcf\xda>+K\x86N^\xbb\
+.lO\xde>d\xfb\x90\x15\xf8\x9b\xf7\xe6\xa5F\x5c\
+\xdb\xbb,\xb9\xc1\xac\x9c^1\xbd|zEw.\x1d\
+\xbf\x00\xd4\xbb\x1b,\x00Tug\xc0\x00C\x05\xe6\x8f\
+\x5c\x22\x81\xe5_\x5c4\x93\x88\xbb\xee\xfe8\xac;?\
+P\xcdS\x05\xbfJ\x90\xf8gDA\x9dg~\xee\xfc\
+\xe5\xd7\x0b0\x9d\xc7\x02\xc9\x0b\x86u\xa2\x90\xcei\x00\
+\xd9)\x090\xf27\x00\xf4\x02\x5c\x81\x19\x00Z\xe0f\
+>*Q\xd1\x9dG\xcd\xb2\xd2N]\x93\x00\xe17X\
+\xba\x1c\x94\xb6\x88\x80\x9d\x9fp\xd7\xb0n?\xe4\xbf8\
+\x871_1K\xf8\xa9g\xb6TR\xfc\xfe\xe9\xed\xf7\
+\xd5\xdek\xd7\xe6~\x00\xb5\x00\x18\xdd\x9bn\x1e\xb6\xae\
+\x7f\xfbt\xf9w\xb4@\xf8\xc1\x80\x12\x09\x0f\xeb\xcc\xf5\
+\xa2\xa6[\xe7\xb4\xc8$b\x92\xe1Z\xcf\x83\xb8e\xd6\
+\xba\x97\x88!\x06\xa0\xaf\xb1\xa4\xc0~\xc7\xdf\xb6\xef\x8d\
+\x09\xd3\xf1\x95\x9f\xef\xf7\xc6D\x93\xf90\xc6\x8d~\x9f\
+\x7f9\x02\x01\x122\x00\x97,u*\x80\x05 \x99\x80\
+]\x01H\xfcP\x818?w(\x09\xd8}/\xac\xdb\
+\xd7G\x11D\x89A\x09\x1e\xed_\x8d3\x7fV\xbc\xe6\
+\xf3\x01\x0f\x9e\x97\xebq?\xc3|\xa9\xf8X)Z2\
+\xd86\xef\x09\xeb\xc6K\xa2od\xea\x8f%\x99\xee\xd3\
+s\xe5\xc7\xfb\x9cd$\x1cl\x97\x19\x07\xdf\x1c\xbe6\
+J,\xb18\xb5\xff}\x1f\xc8\x83]\xc0\xbc\xcb\x0e\xe9\
+\xc9\x18h\x99\x025\x0b\xd7\xe8\xda\xf6\xb9P\x14%\x0e\
+JL\xab)\x07\xa4\xef\xef\xe8\x02\x01\x01n\x5c\x8d\xbf\
+\x1a\x91x,\x17\xec\xd4\xce\xd5\x16\x0b\x08\xc6~\x88j\
+\x14\xb5-4a\x05\xe0\x02]\x01\x12\xc4\x07\xf5\x11\xb3\
+\xc1\xfd\x0b\x84\xdd\x97\x071\xaaI\xca\x9c\x1f\x99\xf7A\
+\xec*\x11\xb9r\xc4}\x09L\x04\xae2s\xde\xdf\xc1\
+\x90\xa5\x13\xd5\xb6Pf_\xa0\x9e\x1b\xf8\xe6\x02\xe9\xe8\
+\xa1\x928(\xd4\xa2)\xc9\xc8Z\xb79\xa8^2\x09\
+7M\xca5\xa6\xc2@\xc1\xae\xcc/\xc7\x94ce\x1c\
+-\x18\x19\x02\x80\x82\xeb[\xa9\xe1\xcbs\xfaN\xa9v\
+.\x1b\xdf\xdf/\x07\xfa|\xf0-\xd7+\xf0MG\xa8\
+\x02\xb0\x14\xa3\x91\xd9\xa9v/\x02}5m\xe6\xb1\xb6\
+nj\xf1\xb5\xcb!z\x94\xb5l2\x9dU\xc3\xf6\x9d\
+\xa1$\xc6F\xb67\xd4\xdc|.\xe7\x95@Z\xe0\x02\
+\xb8\xc9\x1a\xeb\xda\xf0 \xe8(:\xfeN)\x80\xf9i\
+\xbez\xb5q[7C?\xd7\xda(S\xbc\xeb0F\
+\x8d\xfb\x10\xd09\xf8\x00/I\x0d-\x06\x84\x8d\xcb8\
+\xca`Y\x9f6<\x88\xba/\x81;`\xe2;\xb5\x1e\
+\x96\x8d;\xa9\xaf\x00\x0e\xb5\xd0\xd5\x15@@\x0d\xe0\xd2\
+\xce\x09\x03CM\xa9\x8d\x17\xc5\x1f\xa5\xcb8igG\
+}=)~\xa8\xe6E\x0d\xce\xb6k\xd5\x97;\x9f\x7f\
+Q\xe9R\x0c\xac\xe6\x9d\xb6s\x0e\x10\x22I7_\x1c\
+\x92B|\xb3\x06\xb6\xee_\xcd\xb2u\xe39\xa0\xd4z\
+>\xfa\x12C\xec\xed\x8b\x1cg\xcc\x81\xcb\xa6j~R\
+b\x05NE\x09\xce\x12\x80\xe9/\xc2Z;\xb3Wm\
+^\xd5\xc6\xe5\x96m\x5c\x82B\xff\xac\x8e\x99\xa2]k\
+:\x86\xb3;|\xb9\xa6\xd6\xae+A\xce\xdb\xe9\xc9a\
+\xf3\xeb7\xc2\xe6\xd7S\xc3\xe6e\xfd\x8e\xb0\xd5\xef\xaa\
+LT\x22\xe7\x18K\xda\xee\x1d\xb8FXG\xb9L\x87\
+\xdb\xbc\xda\xde)lu\xd4*\xa3\x98\x99\xe5\xe9\x82a\
+\xdd\xf3xq\xae3\x19\xef\x0f-\xe3\xd4(\xbf\xf7^\
+\x03\xc6\xea\xbf\x8d\x02}\xe1\xa5&y\xff-\xfb\xff\xb4\
+??\xc7\xfd\xd3\xf7O\xdb\x9f\x0f\xe8\xfd\x9b\x84\xad\x01\
+\xcd\xf6Ka\xf3\xeb\xa5\xc2\xe6\xeb\x7f\xf9\x81W\x1c\x98\
+\x1d\xfc\xed\xff\xdb\xbek\xfb\xae6\xee\xafn\xe3\xfe\xbd\
+\xa4\x9e>gv\xc0\x9e\xd31B\xac\x07\x07\xb4\xfd\xf8\
+qY\x1a\xf1\xa9\xcd\xa77\x9f\xca\xf3\xe2\x98N\xa5\xff\
+\xc9M?\x1c\xef\xaa\xa8\xd3\xcd\xdd\xfb\x8d|\xdfc\xbb\
+\x0c4\xa0MI\x94~\xd6?^jjw\xbf[*\
+\xd1m^\xcda\xd2\xb3\x22P\xda<\x22l~\xfd\xcb\
+\xd9^\xdde\x94\x01}D\xcd\x88y\x05\xe18\xfa\xb5\
+\x9f>-\xa2\xaf\xda\xec\xd1\x00xh\xd8\x1a(\xa3\xf2\
+N\xff1\xdb'Wu\xfd\xe9]a\xebs\xdd\xfe^\
+\xd8\xfc~g\x86\xcd\xaf\xef\x0d\xeb\xee\x87\x03\xf9\x9c\xbd\
+g\xef=\xbb\x13\x0dL\xc6\x05Q\xbbR\xb3\x07\xe8\x1d\
+\x17\xd6\xad\xbb\xdc\x9f\x01T\xed\xdd\x9e\xdd1\xf48\x82\
+2\xea\x09\xac`\x0al~9lu\xfc\xfd\x9e\xc0_\
+\x9b\xca\x12\xb7\xc2\xe4{m\x8a\xfd\x05C\xe6\xa5YS\
+\xfc\xb0\xd5Q/1\xcdk\x86u\xdd\x08\xd4\xf4?\xbc\
+\xd9\xde\xee\xc4\xb0.\xb0#\xbe6\xa8yW\x22!\xf7\
+\x8d\xcd_\x85u\xfbx\x02\xa2\xd3c\xc3\xba\xee\x03j\
+\xa29\xb4DP\xdf\xd4:\xc7\xaf\x01t\x06\xf0%\xa2\
+\x08\xf0\xa1Q\x90\x81}\x018\x09|W \x9f\xedW\
+\xabd\xea\xb9{\xcf\xdb{\xde\xba\x9e\x89\x5c\x96h\x96\
+qRB\x90\xe2\x9f\xdb\x9b\x85\xcd\xf7q\x9f\xb0\xc68\
+i\x9a\x02\xbb\x8f\xe6\xfd\xe798=q\x01\xb2\x88l\
+\x05\xad\xa4\xedW\xce\x87\x8b%E\x1f\xa0\xf2\xa4d\xf0\
+$CA\x9b\xda\xd9\xfbm\x81\xf1\x81\x97\x86\xad\xdd\x14\
+\x04\xe8\xd3\xe7\xa6\xcfO\x9fk%\x8cM\x14\xb4\xc4^\
+\xb3\xeb\x12M\x83*\xa10^\xee3\x19+\xa5.O\
+\x94\x92_\xc5\x9f\x10\xf8\xff~\xd8\xcal)1=\xa2\
+\xaf2\x8b\xce\xe7\x04f\xaa{M2\xadJ\xd4\xd19\
+C\xa5_\xc0\x91ZE\x05\xe8\xf0\xbb%\x96\xeco\xfc\
+\x1e\x81\xb4@\xd7\xf9,\xb0\x19U\xe6%\xd4F\x8d\xa9\
+\x04\xce\xeb\x5c&B\x09hwn\x19g\xa5\x0b\xcei\
+\xfb\xa2\xcf\xc7\x1c\x120\xfe\xcb\xfc\xff\x7fi\xfe\xcc\xb7\
+\x9a?#\xd1\xa7\xcb\x11\x119\xf7\x03\xd0\xc0XS\x9a\
+A\xf3\xc3\xfd\x8e]\xbf\xf8\x8d\x00\x00\xef\x831\xa1\xd4\
+\xda\xbe\xe3\xfa\x004\x18\x8e\xb9\x8fT[F\xe2\x87y\
+\x9f%\xee+N\xe0W\x8e\xa5\x9fc7\x80\x91\xf2o\
+\x9e\x09\xa0K\x14<\x03Z\xf1\x0f\x00\xc0\xfd\x89\xab|\
+o\xfc=O\xfe\xa3\xeb\x18\xfa\xdb\x97V\x0cf\xa5\xe7\
+\xe0}\xf8\x7f\xa8\xf6\xe2H\xc0\x09\xe0F)\x94yz\
+\xb8?\x7fh\xf7\x03\x1aI\xc7\x86\xadZ6\xc5`\xf1\
+>\xe2Bq\xdf\xf0\xf9\xe5\x8f*\x85\xe2\x07J\xf0\xea\
+\x02\xe4y\x11\xe1\x95 \xe2'\xba^\x09;\xe3..\
+\x00\xb8aB\x98Wc|\x9d\x7fw\xb0\x85[\x9f\xe9\
+2\xf2Y3\xd0\x02\xcb+v\xb5\xfcS\xd3\x81?T\
+M\xff\xa8\x81Z\x7f\xbe.\x00\xf0\x00u\x150PK\
+\xc8thFc/'\x14\x95\xc8/\xe6\xfb_\xa0\xcb\
+x\x8cT!\x81\x92\x00s\x18\xd0\xbaa\x07\xb7\x0c\xbb\
+>\xec\xd9~\xa72\x89&\xba\xbf\xb7PQ)e\x5c\
+\x89\x8e\xb9?\x0e\x04\x8a\xa3\x80\xd9\xf7\x0eV\x0b\xce\xc2\
+\xb7@l@\xfaz\x9aX6*\x01[\x1e\xf4%v\
+\xe6\xc0u]\x0eT\xe3\x94\x81B\xf5\xb3\xbcm\xaa\xa6\
+\xda\x90\x8d#\x86\x05\xca\xdb\x08\xa4`\x06\x8c\xed. \
+\x83\xa8\xee\x02\x13\xcfC\x1b8H\x9d\x8d\xa7\x07\x90v\
+\xed\xb9-\xd7\xfb\xf9\x9c\xc8\x02\x1d\x8e&\xe0\xc1\xefs\
+\x9c\xc7\x9a\x1a\x1b@n0U\x12\xc1\x81\xf3\xbe\xd9\x97\
+\xb7\x1c\x89D\xb2\xab\xd4\xc1\xe7\x0d\xe2|{\xef\xca\xda\
+\xa4c\x12\xf8\xb9X\xce?\xf3\xce\xc2\x04\xf8\xa8\xa1\xfc\
+hn<\x1c\xb3/\xe7\xbc\xbcV\xb6\xe3r0\xa0\xb6\
+\xca\xf8)\x81\x00d8P\x05\xc4\x90G\xeb\xc0<[\
+\x99\x19\xcb:\xf55\xaa\xbc\x8e\x8c\x00\xf3\x7f\xd4\x02\xb1\
+\x9em\xd0\xe6/\xa0\x07U\x1e\x15\xce\xfb)11\xcf\
+iA\xa0\xe6{\x7f\x1b\xbc\x80:\x01\x8b\xa20\xda'\
+\x12\xd1\xd6\x86O&\xab\x9eW\xae\xd7\xaa\x19\xce\xf5\xb4\
+\xfb\xed\xb0n\x83L\x07\xac\x02~\xa2x)\x8aV5\
+\xfeJ3\x00\x812\xef\x007\x01x\xaa\xe9\x13\x03*\
+\xb1\x22\xcf\xc1\xbc\xe0p\x99O\x90\xdf\xbc~\xc0\xab\x9a\
+\xffR}Us(s\x02\x10\xcc\x8c\x18\x87w\xef\xcf\
+\x9b\x15@Z\xfd\xc1usM\xb12Z\x19M\x1a\xec\
+\x0d]-\xe5\xcb\xf7^\xd62\xc5!\xb1\xf8\xe0.\x80\
+\xa4r\x9dj\xda%n\x96\x01\x12GGF\xb8\xfa\xd9\
+\x03\xe2d\x22\x92y\xb1\xd9\x86\xad\x81s\x95P\x10\xb3\
+2\xcf\x89`fm.\x11@\x22\x88u\xff/\x0e\xeb\
+\x982Y\xba\xb2\xbdcX\xd7?\xf7\x87\x9b\x1f\x05\xa3\
+b\xfb\xd1\xb0\xae-cf\xce\xa7\xe3\xc2\xe6\xd7\x07M\
+\x0f\x9c\x1e8oo\xaf\x0f\x9b_\x9f\x1f\xb6:\xf4\xdb\
+\xd7\x85\xcd\xfe\xe8U\xc3\xe6\xd7\xaf\x86\xcd?\x9f2\x13\
+\x98\xfd\xcd\xa3`\xa9\x95,=o\x09`JlK\xa6\
+*3\xbbU\xc2\xb4\x1f\xb6\x06\xe2\x15@\xdegwR\
+\x0b\xf4\xe2T\xf8\xbf\xad;\xc1\x95wW\xe9\xa8\xe5\x0f\
+\xdc=(ju7O\x9f\xedi\xdd\xfa\xfcj\x93/\
+\xddk\xdd\xceo\xdd\xe6qk\xc3[\xcc%T`*\
+\xd6\xa8\x88\xe6\xf5\x17r\xbd\x9c\x9a\x19\xd7\x08\xe8^\xbb\
+\x9eO\xbb\xdf\x0b\xcbZ\xee?_\x993\xdb\x8b\x87u\
+]\x05R\x5c\xb0\xd5`\xff\xd6\xdae`\xf7?R\xcc\
+\xf1\xf2a\xf3\xeb_\xcf\xf6\x865@.\x06\xc8\x9bf\
+\xfb\x9b\xae4e\x7f\xe9\xc2\xc0?hb\x8a\x8fY\xcf\
+\xe5\xa0\xd5\xb4\xda\xf3\xa7\x86uj\xf4\xb9\xbfb\xc2\x00\
+\xf6\xcb\xb1B\xd5\xbdNf6\x7f/\xdb\xc8\xda\xa78\
+\xca\xf6Ym\xf6\xb2\xc6\xbb(\xe7D@1Jr\x9c\
+\xa7\xdf\x09\xeb\x00\xce,y\x89J\xfe\xa8\xe5Hos\
+o\x00\x00 \x00IDAT\x9f>\x1b6\xbf\xdek\
+\xb6(1\xf8\xfa\xa2\xfe>]\x22\xacS\x95\x1e(\xff\
+\xad\xc6\xfe\x01+\xd0\xdd\x02\xee\xafd\x86\xfc\xf5\x19\x08\
+>\xa2\xcb$\xc6l|\xfe\xda\x8e\xb49\xb6\x17\xce\xfd\
+rvl\xa7W\x85u\xcc\x08\x81\x17\xc7\x11\x90-@\
+\x93\x00\x11\x88\xa2\xecg\x8d\xfc\xf4\x96\xb0\xae\x0b\xcf\xb5\
+\xc2\xba\xfd=\xe0\x987\xb4\x84\xc0\xf29\x00\x06\x8e\xf2\
+\x87\x93\xa1\xe5\xfcr\x1e\xc8\x94\xd1\x8a\xc86\x88\x80\x8a\
+\xe9\x95a\x9dv\xc6\x0f\xc2\xce\x85\x91\xf8\x9a\x14\xa7\xcb\
+\x9a\xecR\xb7\xcf}C\xa01\xdd%,\xdb~\x9e\xaf\
+\xb5\x1bm\xef\xb7\xfd\xde\xf6\xbb\xdby]m\x9f\x1e6\
+\xff\xfc\xef7\x7f\xb7\xf9\xbb\xf9\xfb7\x84\xcd\x7fw\xf7\
+\xb0\xa6\xe6?\xdb:\xbf\xe7]\xa0\x016\xf6e%\x11\
+\x9b7\x86u]~\xf8{\xa8\xe5\xba\xac<\x22K\xb2\
+\x9c\x97\xb9\x1e\xab\x9d$m\x87l\xe3Y\xf3$\x19i\
+\xad\x07\xc4\x83\x9a\x7f\xb4\xf8kcW.~\x02\x91\xe5\
+\x1c\xc7\xdd\xaf\x85u\xcc\x83\x07-\xefC\xb5\xbf\xfc\xe9\
+\xd4&)\x7fZ\xbb[\xed\x06\xf9\x13\x02\xaf|\x9e\xc5\
+\xc8\xf3\xefC\xad}\xd5\xf8\xfb}~>\x7f\x8bV\x81\
+\xf9c\x9f\xf5\xc5_\x1aK$\x05\x92\xfc \x09\x0f\xfb\
+\x22\x80`\x14\xcdv}\x00\x12%g\xa3\xd8\x1c\x7f\x8c\
+\x1f\xca\x8f3>\xfc}\x01#*9\x80A\x82\xc8\xab\
+\xf7\xe3_\x01\x06\xd2\xbf\x1dK\x1f$\x026\xb7\x0a\xeb\
+\x80\xa0\xa1=\xdc\xc8\xd0-\xc0\xd2\xef\x0d\xa2}\x15\xaf\
+\x8c\xed\xf8\xc6\x12m\xe3\xe6{q\x80q0\xee\xf6\x17\
+\xfb\x8duo\x9e\x0c\xcc\x91\xf23e\xe0\xfb\x92\xf6\x8e\
+\xda_\x89c\xf3\xc6\xfe5\xd6\xce\x8fq\xe4X\xf2 \
+\x0e\xb2\x7fx\x9e?\xa9M\xa2\xfb1\x9fF\xb5~_\
+\xd6\x9b\xd2\x0dm\xcc\x89kb\xd6H\xa0z_\xfb\xd9\
+X\x02a\x9c\xf8\x99~_\x82%E\x01\x0f\xd6\x85\xec\
+\xb7\x5c\xec\x1a\xa0S\xdb\x17\xd8\xf7bdGw?'\
+\x0a\x08\xe1\x80\x98p\xd0\xbdo\xe0)Gt\x81e\x84\
+\x09\x1d\xd5\xa3j\xce\x83\xe2\x7f\xb9\xc3U\x0c[\xb8q\
+\xe9\xcc8\xfct71d\x86\xbf?\xdb\x0f\xba\xcc\xb4\
+\xbf\xf3*\x00\xf7\xe5\xc1\x8f\xb5\x12\x16\xf6\x88\x10\xa1\x16\
+'\x95\xb1\x1c\xf7TS\xad\x8d\x05\x00p\xcd\xa4\x9c\xaf\
+m\xf6\x0eA\xfc\xaa\x86\xdf\xdf\x8db\x12\x19\xa8\xa3\xb2\
+\x96\xa3\x22`\xf4@s\x01A\xa6\x0a9r \x8fm\
+w\x04n\xee[\xa0\xabF\xf0\x9f\x17JT\xdd\x17\x84\
+\xe9\x139\xa1\xd4\x80g\xcd\xdb\xe6vK\xe6c\xdel\
+\x16\xc7\xdd\xb8\xb9\x1f\xaf\xe7\x1d\x16\xea\x18\x90\x8e\xb5G\
+c\xbbF\xf7oc\xb1a\xfb=\x0b\xcf\xfb\xfb\xb9Z\
+C%\x00\xcfm\xb6n\xb8cfz\xecO\x7f\x8f\xb0\
+\xae\xc4 \x19\x18\x9b\xab\xe6<\x93\xe1CUK\x07\x9c\
+\x08O\x1dh\x9e\xb3\x80\xf5\xba\x19\xe0\xbf{9(\x8a\
+\xa2*`r\xe0\x98O\x10\xc9\x04Z*\x10U\x1bL\
+[\x82\xe6C\x22\x96\xc5\xfcp\xc0\xfbr\xd0\xff\xa4~\
+\xab\xc6\x03\xc5\xda\xdf\xdb\xb0Q\xc4\x89\xff\x00\xb0D\x9c\
+~\xdfs\xca\xfbG\xb9\xab\x1a*\x1be~ne\x12\
+\xd4\x82kwi\x1d\xa3\xeab(\xa4\xf8h\xed?\x0e\
+\xcc\xa1\xd6\xafj\x08e\xb2\x1c\x10\x98\x01\xd9\x9en\xcc\
+H\xe9O]@\xc5\xa7\x97R\x1f}\xbew\xf7\x0d\xeb\
+\xf65\x14F\x81'J\xbe\xf6B21\x19\xe0m.\
+\x1c\xd6\x8d\x0f\xf5t5\xda\xd9\xd7\x1du\xdb\xfb\x95\xf8\
+\xa0u\x9e\xfd\xdd\xab\xbf}\x02\x9c%\xa2\x85\xb9\x93\xc0\
+F\x05\xa2\xe9\xc0\xcf\xa3\xfe\xc2&\x1at\xff\xb0\xaeV\
+9\x01\x9d\xe9\x01a]&\x12\x05\x8e\xc3}L\xd8\xfc\
+\xfa\xe9\xb0\xb5\xc6\x7f\xd3\xbe\xe6\xd77\x84u\xa2|\x98\
+\x122\xa4\x7f\x1c\xb6\x066\xdb\xaf\x86\xad\x81q\x84\xef\
+\x11\xc0c\x86T{\xc5tX\xb4G\x9b\xdd\xec\xa5]\
+\xe0\x1d\x97\x00k\xf3\x90lWw\xbd\xa4\xd2\xe6>3\
+\xfdM\xd8\xfc\xf9\x7f\xb8\xb4\x97\x9bn7\xddv\x9a\x1d\
+\xee\xe9\xc6a\xf3\xf4\xbew\xd8\xfc\xfd\x0f\xc3V&\xcf\
+\xf6Va\xf3\xeb\xad\xc3:1\xc2\xf7\xa5\xa8\x0f\x15l\
+\x19L\x81+FC2\x90v\xb7\x0e[\xdbPm\xfe\
+OXG\x11}\xfc\x12\xd8\xcc\xcfv\xd9W?6\xef\
+\x06A\x91\xbfmj?`\x86`\x90].\xf7\xc9\xeb\
+e\x00{\xeb\x85\xa9P\x19\x5c\x00\x00\x87U{8@\
+\x0dq6\x80L\x02D5\xbfC\xb3e\x93m\x5cO\
+o\xc0\xc5\x8d\x1a0\xc9\xf1\x14\xa0\xca<\xe9w\x9fZ\
++\xbb\x03\xbbm\x88\xa05\xc9\xa8\xe8_\x7f\xc2t\xa5\
+iv@\xa7\x9b\x86u\xf3\x91C.\xc0\x8eu{\xf7\
+\xae\x168\x01\xbd\xe9\xdba\xad\x96{\xb6\xf9\xf5?\xc2\
+\xd6L\x8a\x1a\xfa\xed\xf3\xc3:J\xbf\xe7#S\x9f\x81\
+_\xf0a\x1a#\xe6\xda\xcb9Q\x0c\x13\xfb\x22\x87t\
+\xa8\xc5D)7?\x88\x09\xaau\x9e\xfe<\xac\x1b\x17\
+\x80\x04\xa6R\x8a\xc0M7\x0c\xcb\xda\xe3\xf7\xaeTS\
+\xc0H\xf9\x1fW\x99\xedgW\xffl\xdeM\x1e\xd7\x02\
+\xb1\x08\xaf\xff\xa4\x0b\x5c3c]\x09\x94\xc8\x93\xbf\xa5\
+SsO-\x80\x1a\x97\xe0\xd9E\x09\xcd\xe7\xc3V`\
+ms\xe9\xb0\x8eY\xe3\xbc\x0c^\xd4\x8dW\x00Q`\
+\x01X)\xad\x0b\xfb2G\xda>\x9a\xfb\x0bfL\xf3\
+*\xbe\xdc\x01\xe8\xfc\x00\x8e5`\x10 +\x93GS\
+\x85\xe8\x97/m\xed\x1e\xd6\xacj\xdc7\xa7\x86ef\
+\xf7[\x1d\xc0\x0a\xb8\x93i\xcc\x00r:%l\x15\xc5\
+\xdb\x1d\xb10>\xaa\xe4\x93_|\xf7,\xe5\xc3\xf8\xd3\
+fU\x89aj\x09\x94\xdf\x81\x09@\xcd\x9f(\x18\xe0\
+\x9f*|&p\xaa4\xe1\xeaQ\x1c\xd3\x02\xb1%\x00\
+\x91!\xc4\xa8\xbb\xf1\xd2\x16u\xbaMX\x07\x14f\xa6\
+\xb6\x98<\x02\x81<ov\x97\x08[KD\x8b\x82\x9c\
+\x80\xad\xdf\xb7\x8f\xa3\xb0\xef.\x1f\xd61$\x9cK)\
+j\xcd\x1f\xe5O\x95_\x03\xf0\x1d\xdbe\x13]\x8b\xf6\
+\xa5o\xe9\xa8\xf9\xfc\xa8\xa1]_\x89\xf5\xe9r\xf3k\
+a+\xd0]\x89\x17mjs\xbf(?M)\x0e&\
+ f\xe3\xb5\xf39\x8c\xea\xf5\xfc7\x00\xc5\x98\xf9\x15\
+\xf0\xfb;\xfb\xed\xd0\xa6\xb1J.\xc4%\xfc\x1a\x81*\
+\x86\x01\x00\xc2\xbc1\x0e\xa3H\x9f\xd0\xed\x1da\x9d\x08\
+\xa2\xdf\x07\x04(qL\xd1\xe4\x12\xdf\xb3\xbf\x09p]\
+\xaf\xfd\xdd\xfd\x8b\x87\x04\x9e\xeeW\xdc\xe2\x0b\xc0b\xdd\
+\xfb=\xf7\xcf_2\xde\xfcw\xe3\xe5\xf30N\xc7\x92\
+\x01@\xc8\xd8E\x8a\x9f\x8c\xa9\xe0\xf3\xcd\x1b\xe3)p\
+w=\x80L\xe3\xe9\xfe\x88\x04~\x22\xac{\x0e\xdeW\
+\xa0-\xf1e\xbf\x02\xa0\x08\xc81\xba\x7fR\xbb>\xaf\
+\xae\x87h%-\x14\xfb\x09\xa6\xe0P\x82^\x9f\xef9\
+\x88\xf7\xac7\xeb\x0a\xa3$\xf7\x9b\x835\x01e\xca\x05\
+N2\xfccF\x91(`\x1c\x83_\xe9\x90\x92^D\
+\xed\x12k;\x8bR\xfb\x07($u\xb1\xda\xfb\x99\x08\
+\xda\xd5E@\xf1\xf6\xae\x9f\xae@\xd4DHJdM\
+P\x07\x85\x01\xec\xa9+?<\x97\x1a>\x01\x8a\xbf\xff\
+ne\xa0\x0f\xed\x8bi\x02C\x5c\x04\xa0&\x98\xc0\x0c\
+\xa5>\x1d\xf0\xa2\xd4\xcb,Ry\x17\x90\x98\x08&\xbc\
+\xc0p\x0cd\xd5\x88\x9b\xc8\xa8\x9b\x0e`\x22+\x90<\
+\x01T\xaa\x16Wf\x07\xc5=k\x96\x0a \xb0AA\
+\xd4-Dm\x93\xfe='|\x8e{\xa9\xac\xcb0}\
+?7\x0a\xe3>\x06\xde\xc6\xcf\x828\x98\xe3v\xc4\xa1\
+\xd4\x9a\xfa}\x8e\xdf \xc2W\xc8\xb8\xf6\x8d\xe6\x9b\x83\
+\xd28Y\xc060\x0ba\xd4\xb4\xb0p<\xef\x11\xa1\
+s\xb0d W\x8e\x90.\x022hO\xc9\x0c\x93u\
+\xa1\xf6L@\x955\x8aUS}\xd5\x1c\xe7;$E\
+OmZ\x06\x04E\x15\xb3aCpG\x8a\xfew\x06\
+\x07\xc9\xba3\x8f\xac'\xf3tl\x9bB\xe4F\x00}\
+\xb3\xb0n\xde{\x7f\x0e=1L\x81\xb0\xfd\x02\x10e\
+C4O]\x97\xf9\xe09\x0f\xc8e4c\x8bvl\
+\x15\x98\xca\x1c\x8c5\xf9\x02\xd1\x14\x19\xf3|\xd4\xf4\xab\
+A/\x8a\x9c\xbf7n\xc6\x11%\x90*\xb2\xeb\xca\x8c\
+A='\xf3\x060\xe6\xfd\xac;\x19q\x8c\x80Q$\
+\xd4s\xd0\xd6\x06\xa0\xf1/\x87\x06\x88U\x13H\xcc\x92\
+\xb8\x95\x83\x8c\x83tr\xb3\xaa\x05-F\x83\x0c\xb9n\
+\x12\x1c]T\xeb\x14\xf1*\x00(\x81\xc8\xaa\x19\xc6 \
+\xb1\x0f\xaa\x99\xa6b\x1d\x19\xe5.0\xc4\xa0\x9an\x1f\
+\xd6\xd5\xf4\x0a|\xf4\xe9NM\x8b\xcd=\xc3\xe6ip\
+\xed\xb0\xf9\xfb\xa7\x84u]:\xb4}\xcb\xccx\xf5\xbb\
+\xcdR\xa4\xcdw\xc3\xba\xc0\xe7\xb6a]\xc6+)\x8f\
+\xda\x7fm\xa6\xb0n\x1e\xbf4)\xda\x7f\xb0\x04\xf8\xbb\
+\x9f\x8d\xd0)\xfb\x81\xffm\x03x\x1a\x00;\x87?\x8d\
+\x92/3\xbc\xff\x95\xb0\xf9\xf5\xed\xfbo\xdb\x7f\xdb\x9a\
+\xa1=\xb0\x09\x9b?\xef\x94\xb0uz\xcf\xabg\xd1`\
+xxRP\xd3\xa1\xda=7\xac\xa3\x0a'#iw\
+\xcb\xa4j\xdf/l~\x9f\x0b-%\x08\x80\xa8\x0a\xb8\
+\x95\x8a\x9d\x94%.\xe6Sj\xa2\x10\xaf\xdb\xbc?\xac\
+\x9b\xe7\xb9\x9f*\xe5\xa8\xc0\xe7\xec\xb0F!?\xb2Q\
+\xc8\x1f\x12\xd6\xa9R\xcb\xa8\x02\x04\xec\x1b\x1c\x0e\xfb\xcc\
+{\xb3\x9dQ\x8a\x1f\x96\xa3\xaf\x0d+Q<\xb5\xcc9\
+\x7fdN\xf7\xee\xbd\x9c[%\x8a\x98\xa5<\xd3\x8bg\
+\xfb_\xf9\xdc#!\xf0\xba\xb0\xf9\xe7\x8f\x0b\xeb2\x88\
+w\x9d\xed\xd7\x93\x02=?\xc7\xed\xc7\xc3\xd6@`\xba\
+S\xd8\xba\xae[\xc9\xc6\xad\xd7\xcf)\x86\x8c\xda\xdf\xdc\
+\xcf\xaa[\x06\xd5{\xeb\xd4>:RO\x9310\xfd\
+fX\xc7\x88Qz\x93\xe38\xfd\xc5\xc2\x98!\x1eW\
+\xe7r\xae\xdfb*\x05\x00r\xe2Z\x0a\xe1\xf9\xb5\xd5\
+\xff\xd0\x0e\xf0\x01\xe0\x13\x91\xda\xe5~\xfb\xc6<\xaf2\
+#^\x80\xac\xbe\xe7(\xf9\x02\x04\xda\x10\xdaAJ$\
+\x00\xb2Q\xbb\x95B\xe58l\x1e\x19\xb6\x06\xca\x9b\x93\
+g{H\xd7\x85\xe4\xe8\xb0\xf9\xf5\x8c\xd9\xbe\xdaJj\
+.\x1c\xa2|MC\xe0f\xdd9\x89\xc2\xce?@\xe5\
+\xd7\x9f>\xa9\xeb\x05\x9c\x0a\xf0s\x9c\xb5Um\xf3\xe6\
+\xc5\xab\x9fP\x80\x03\x06\x0d\x11\xd7\xd4\x8e(\xff\x02U\
+\x96\xc6\xc9\xeb\xb3\x14\xe2\x09\x8b\x86\x90\x8c\xf9\xe6<a\
+k\x0d<\xc0\xa6\xda1\x02nR\x945\x14GBs\
+\xa4\x80\xde\xb7\xe6\xf3\xfd\xab\x85\x91Q\xdd^\xbc\x7f\x8e\
+g\xf91\xfc`\xeb\x03Ph\x7f\xcf\xef\xab\xe4!\xdb\
+\xac\xda'\x95Fb\x98hCX\x01\x98sP[P\
+\x22\xac\xcfZ\xda\x96V[fm\x94\xf9\x13\x18\xa82\
+\xdd\x00\x9e\x93\xc2:`\xf5\xc1a\xebya\xbc\x88\xb6\
+\xd6y\x04\x00\xcb\xf9^\x81\x17\xff\xc3<\xe1\x879\xcf\
+\x04n\xf6\xa3\xa3\x0e-\xad\x1d\xfb\xd4\x17#G7\x06\
+\xe2\xb9YjR\x8c'Ti\xefsB\xb6\x91\xc4\x5c\
+M\xff\xa94?r=U\x82\x83\x1f(C>\x8a\xcf\
+\x11\xab\xc4\x80\x10H\xf3c\xdd7\x06\x0c\xffJ\xa0K\
+SD\x09\x0f\xe0;\xd7A}i772v\xc4\x1f\
+\x02Z%7\x12&\xfc%\xfe3?n\x14\xfb\xe3\x87\
+\x8a\x1f\xbc\xaf\x7f7\x0e\x83\x08\xa0\x04o\x05\xf6\xf9{\
+\x95\xc8\xd2V=\xbb3\xd5\xb8\x89\x0b\xc6\xee\x04\xae\x17\
+\xa3\xd2\xb9\x0f\x90\xc9\x03\xba\x02\xf0\x11\xc8\xe0\xc7\x8b\x8b\
+\xc47\x12\xa6\x12\x9d\x98\x18\x83\x98_\x893\x12U4\
+\x0e\xe61\x07\xc1\xefK,\x1b'\xe3\xcao4\xde\xc6\
+\xcf\xfb\xa7\xc6\x0a\xe6\x8d.@\xf5\x9c\x00\x05\x00Q\xf7\
+i\xfe\xb8n\xe3\x04\xb0\xc8\xf8\xe7`\x05`j\xe9\xcf\
+\x1f\xb2H\xe9P\x1c\x7f.\xea\xf7.4\xdc\x91^\x95\
+P\xcd7\xf1\x1a\x8eH \x98!\xbaw\xd4lGw\
+\xe2}\x90\xe9\x83-4\x5cn\xe8\xfby\xc0]\xb6s\
+L\x01\x07&\x94\xc0\x92\x03o\xa0]\x17\xc6\x81\xbf\x1f\
+3\x9c\x02B\x03(\x10\x84D\x8eb\x82\x02d%\x04\
+y\x1d\x95\xb9S\x8b\xe8\xc19X>\xb5\xd4\xfe\xd6\x04\
+'\x1e\xa1\x1fc\xd6\xbeo\xae\x96*\xbb\xda\x82x\xcd\
+\xf1\xacL\xb4\x00\x98C>R\x96\x00\x1b\x99\xb1\xad\x83\
+M\x0d8\x84\x98\xc8\x8ev+\x00\x01\x81\xbd\x8c\xaf\xfb\
+\x96a<\xdf@\xf5G\x81\xbfh~o\xa1R\xf9>\
+\x7f\xaax\xfftf\x8c\xd7\xf6\x14\xe7\xde}a\xacQ\
+\x11\x90[\xb0\xee7\x91\xdeB|\x05\xb0\xd4\x87GJ\
+\x97\x8dC\x80\xea\xfe \x812\x08\xa8\xd1\xdeW\x0d:\
+\xe4\xec\xe9\xbbg\xec\x9e\xd1\xa8\xe3K\xe0%`\x15H\
+\x99\xff\x80 \xc0\x8c\xfb\xca\x8c\xc3\xe6\xda\x0b\x05\xb22\
+\xa1j\xbe\x89\x1cq\xf0\xb4m\xe3\xd8\xfb\x82\xe4j\x7f\
+\x97\x81\xd6a\xa2\x99\xb91Ui\x83\xc0Ti\x8aL\
+\xbe\x8d\xc9\xb8\xdbX\x8d\xdf(\x82\x02H@\xa5\x02\x00\
+\x8c\x00\x9b\xaf\xb1/\xac\xeb\xb0\xbe\x1cH\xd9\x97\xb9\xd6\
+\xb5u\xe6\xfe\xb4\xc9\xd46/\xa9\xf6%\xe6i\x1fp\
+?\x00C\x07\x96\xfd\xcbz\xc7,\xa1\xea\x9f\xaa\xbf\x9b\
+\xbf\x08\xeb\x1c\x1d\x1a\x05\xd7\x0c\xeb\x0eT\xd7\x9d\x14\xe4\
+\x02\xa6\xd4&\x0a\xacRE\xbcJ\x0b032\xf3[\
+\x8e\xc7\xa8u\x90\x94\xf9\xa2v\xaa\xd1\xb4\x9e]w:\
+b\xd5\xdd\x22\xa9\xb5\xd3W\xc2\xd6\xc0^{\xb6\xda\xaf\
+ \xc3\xf6C\x14\xcb\x04\x10\xb6?\x08[\x19H%j\
+5\xd4p{\xdc%\xb6&\xc3\x92\x99\xe9X5m\xdd\
+h\xfb'c\x9b\x8e\xea\xf6\x9da\xf3\xf7\xdf\x0e\xeb\xfe\
+\x9e\xd6\x09\x8ai\xb6\xc3\x9bn\x12\xd6\x1c\x9f\xd6>u\
+\xba\xc6\xd2\x8e\xaf\xc5\xe7\xd1\x16\xe9|a]\x1f\xea\xa4\
+\x10\xcf\xc7\xf8R\x9b\x9e\xe2[4\x18\x88\x06V\xa0\x03\
+\xe0\xb9[R\x94\x8f\xca6\x83\x9f\x0a[\x01\x8f\xea\xff\
+\xfe\x84\xcd\x137O\x5cj\xdf\xa7\xd3\xbbZ\xd7\xe7\xa6\
+H\xe2.3c\x99APS\xbc\xb9oX\x17X\xdc\
+p\x11\xf7\xda;'\x81\xc3\xccd\xd5\xba\xca}\xb8\x1c\
+z\x8e\x04\x06\xddy\xc2\xda\xe7\xb7\xcc\xe7\x1c\xf6.\xed\
+\xb2\xbe\x96\xeb\x99\xa8\x16\x87\xfb\xa5\x0b\xc0\xb4{^X\
+'Z\xfb\xff\x85\x9d\x8b\xb8\x9c\xfd\xec\xbe{\xbf5[\
+\x88P>n\xf3\xb8\x06\xd0-\xcf\x17%=\x99!\xa8\
+\xeb\x98\x1bJ!\xb6\xff\x1a\xb6\x8a\xcf\xed~>l\x05\
+\xd4JM<\xba$\x1c\xb9RL\xa7mX\x07p\x87\
+\xc8\xdb\xf9\xba\xfb\xba\xf2R\x1a\xd1\xe6\xe9\xcb\xbb\xcc\x89\
+s!v\xad\xef\xad\xcc\x11\x99\xd7\xdd+\xc2\xba\xdai\
+\xa5t4\x03\x04\x22\xd6wR\xb2\xa7w\x84\xadT\xed\
+\xa2\xa2\x13%\xcb\x0cf+\xa9\xfcF'\xbe\x18\x85d\
+\xc1\x80\xfalX\xaa\xad?k\xbd_\xa5\x0b%\x8a&\
+\xa0\x110'\x10\xbay]X\x9e7\xd7Z\x19\x92\x15\
+`\x08\x80\xb5\x9b{V\xd8\xaa\xe1Q\xb5\xff\x023\x99\
+Vm%\xb3/z1#\x04 \x18J\xba\x0d\xa8\x09\
+\xc7lL \xadJ\xd7d\xc2ti\xe1\xc79\xdf0\
+$\xbf\x97\xfe\xdfw\xd2?\xa4\xd5\xf0oy?\xce\x19\
+m\xce0\x1c2\xa0\xdc]'\xac\x03:\xb3\xcbJ\x14\
+>F\xe9c\x95\x84\xa4\x88`\x9dw\x1c\xf7\x97e\xed\
+\xb4\x9a\xe6\xdc\xaf\xb4%+\xc6\x02 I\xe9I\x96L\
+n\x7f.\xac\xd3lHF\xcb\xf4\xcd\xb0\xf5\xef\xaa\x94\
++3\xc9\x80\xc2\xfa\xbc_m\x16Z!\x0b3\xe3a\
+\x0b\xf5\xb7\x98\x02\xc4WuW8'\xack\xa7I\xfc\
+N\xe9\xa5\xf3\xce\xfcqN\xf2\xeb\x8c\x03\x11b~\xa0\
+@\x8a\xbf\x84\x19\x99*\xf6\xd6\xfb\xe69a\xf3\xdb>\
+'l-\xa1\xa8v\x8a\xda\xf6)\x09\x10\x80\xac\x22\xb4\
+K\xdb\x5c~\x06\x7f!\xcfE\x89\x94j\x0f\xe7\x95\x88\
+'F\xae\xf9;R\xd9\xf9\xcb\xb9\x7f\xd5\xbe\x96\xf7S\
+ZP>_\xa0\xf4\xa5\xd9\xfb\xfc\xd2\xb9\x88\x7f\x0b4\
+\xf9A\x83fX\xf9\x1b\xee\x93x\x1d\x00C\xe6\x7f\xcc\
+\xf8\xf2{\x00\x07\x02\xecL\x18\x16\x00\xa6\xb4@\xc9\xa3\
+\x9at\xfeUvu(\x00\xd0z3\xaeC\x97\xa3z\
+\x1d\xbb\x09\x98'\xe2$\xebdh\x1f\x5c\xb5\xeb\xeec\
+;t\xf7\xe2\xf7\xf37\x866\xed\x05D\x18\x8f1\xc3\
+>\xb6Q\xf7<\x00\x0b\xba#\x00\x86\x9c\x97\x83\xa6\xc9\
+\xd8\x85j\x04\x8cv\xef\x0a[\xdb\xfcYW\xc5H\x18\
+\xe3\x15~\xb2\x9f;']\xb7}\x9b\x83\xe4\xba\xc7\xee\
+\x13\xce\x15\xe3f\xdd\xb9?\xcc\x1d\x89H\x09u\xfbj\
+&\xda+\xb1l\x9c%\x9c\xb4\x8f\xc4\xc0\xf1{\xf9\xbc\
+\x0fVF>\x86\x7f?\xc5\x90\xce\xce\x83\xf0R\xe7R\
+\x83\x1f\xd3\xec\xe8t\xe4/\xd69\xdaq\xd9\x17\xc8\x1b\
+\xfb\xa9\xee\xef\x04\xc4\xc4\xf4\xae\xbb\xa8\x1cW I\xcd\
+X\x80}\x5c\xeb\xcc\xbbl`\x17[\xd5h\x7f\x22u\
+\xfc\xdc\xba\x15\x9c\xdd\x95\x18\x18\xe8Q\x5c\x90\xc8\x06\xca\
+\x0d\x87*3\xb8\x85\xac\x99\xc8\x02\xa2#\x06\xd5{\x0b\
+\x06\x80\xe0:dZsbu\x1a\x06\xcb\x02\x94\xb1V\
+C/\xc3h\x03\x16(\x090\xc7\xf6\x81\x00\x8f\xb1]\
+\xc7\x18\x88\xd9\xc0-,\xe3\x08!\xa3\xb2,\xa0\x15H\
+\xde)\x1d\x22\x01\x96\xee\x01\xaeo]\xe0\x87f\x98m\
+\x0c_^\x16f\xd5\xe2\x1b\x7f\x7f\x07\x01\x83`i\x0b\
+'\xa0\xf7\x9c8\x02\xe9\xa8\xa1\xe4WM5\x00\xcb\x82\
+\xb6\x11\xf6b\x93}\xfbD\x99\x1f\x07%\xe4\x0feF\
+\x0dV:\xc6\xf3\xd54\xb5\xddB\xd0\xcfLd.\x03\
+!\xfd\xcb\xeb\xf9\x8d\xcc\x11\x1b\xe0\x0fr|\xd2a\xa1\
+\xe2^\x07\x86\x830\x99&5\xee2p\x1c*\xef\xeb\
+ r\xc0\x0b|\xbd:H\x1cD\x90|\x81\xb7\x8c\x8f\
+\xee\x1a\x18\x0e\x98.\x9e3`\xcb\xc6\xe4 \xf0\x5c\x1c\
+@c)\x8b>\xb5\x19\x98\xd5s\x1f\x19\x0b\x10\xd7Q\
+\xecP`\x93\xa5\x17\x9b\xcf\x84u\x88\xb5\x1ap\x19\xcb\
+a\xe3\xac\xf77\x9e\xfa\xb7rt\xacg5s\x10S\
+\xc8\xbc\x0d\x9b\x8a\xae@\x89v\xc0\x0d\x97\x00\xb4(\xad\
+\x894W-\xf2\xc5\xc2\xd6>\xc8\xa5\xa2\x9f\x19\xb7\x02\
+\x061\x0d0@dz8\xd6\x19\x00\x175\x9f#\x88\
+\x19#\xd3\x93\x01\x88L\xac\x12\x80\xe9*a\xdd\xc1/\
+\xf3HdRfU\xbb'\xc0T\x8aum\x1f\x1d6\
+\xbf\xcf\x15\xc2\xe6\xdf\xfbq\xaa\x90'r>\xfdIX\
+\x07|\xa4\xd8\xd0tB\xd8\xfc\xfdo\x84\xcd\xefs\x5c\
+XW\xab\x99%9\x95\xc1\xca\xfe\xd1u\xa0\xca\xe0\xea\
+\x86\xa1\xfd\x1fF\xc0\xd7\x17\x8a\xf5\xf6\x92\x8b\x96\xc0\xee\
+\x9da\xad\xe6\xb9\x89\xd7\x15\xd3D\x06^&(\xd5\x90\
+k_\xce\x0c\x8f\xc0\x1a\x93\xa1\xb4$\xcc\x7f%\x1d\x9e\
+[f4w!\x1b\xb6\xe9\xdeO\xa0\xc4\xb1\xa1\xf6\xcf\
+a\xfb\x85\xb0\x0e\xa9\x7f\xd0\xde\x03\xf7\xc2\x01\xbdn\xb6\
+%\xbd\xe8\x12\x08\xec\x9e\xbd\x04l\x9b\x0fl>\xb8\xf9\
+`\xa7rO\xa3\x87F\x05\xa6\x8eu\xf8\xc5\x5c\xff\xbf\
+\x9a\x99\xadc\xb3DN\xe6\x0b\xd0`>(\x91\xc20\
+Q\xaa \x93a\xbd\xd9OQ\x8e1\xdb.\x94\x80o\
+\x94\xa6\xfc\xc2\x0a\xcc\xed~\x10\xb6\x02\x1d\x9b\xef\x87u\
+\xed\xecr\xbd\x08|\xf7\xbf\xb4\xff\xe5\xfd\x10U|\xf2\
+\xf6I\xdb'w\x01\xae\xccYfT\xab-!Q\xae\
+\xa0*\xbff\x15\xe3\x9b>\x19\xd6\xb57\xcb\xb6p\x1c\
+\xf0\xc6$\xf9\xa5dj|/\x99\x09G\xae\xe7\xf8\xf6\
+Ga]{R]h8~\x09\x00\xed\x8e\x0a\x9b?\
+\xef\xfe\xb3=\xa0\x13\xfdJ`\xaf\xcd\xeb'\xaf5\xcb\
+\xd3\xaf\x85\xadb\x81(\x9dUB\x020s\x9d2\xbc\
+\x18P\xb4K\xf4\x19\xcf\xeb\xdb|x\xb6\x7f\xed4\x9c\
+\xa2\x14\xf2\xfb\xeb\xf8\x97(h\xb6\x83l\xf3\xa6\xeb'\
+_\x01\x03\xbf\xca\xbc\x00|\x00\xdc3\x81\xd1\xb4\xee\x9f\
+\xd1\xb5\x01\x94\xb9\xe6p\x03vN\x9d\xedu\xb9\x0e>\
+\xdc\xcd/\x8ev&PZ\x89\xd2\xb3\x1ac\xa4\x8dg\
+\xed/\xfb\xe9\x80cJIH(\xd9\xd0\xfdDI\x00\
+m\x04\xe74`\x83\xdfc\x9e;\x17eV9\xf8\x02\
+5\x81:\xed\x0e\xc0\x14\x7f\x110\xa3\x94\xd0s\xcby\
+\xa6$\xafD\x1fu\x95HM\x90\xdd\x1b\xc2:`\x8a\
+?\xf6\xb1\x0c`\x5cG\x8e\xef\xee\x96a\xdd\xb9\xa4\xa4\
+\xed\xc2K;S~a\xa9\x99\x0b\x84u\x1fJ?\xc2\
+\xe7VbC 42\x1f%<r\x9dV\x00&s\
+\xcf/\xc8q+\xc6\xd9\xb1\x8bxj\xb5\x9b%\x9e\x9c\
+\xfb_k\x96\xb0\xed\xc4L\x01?y\x1e\xd3\x86(\xff\
+\x03\xd0>R\xbc\xf9A\x9e\x1f\xbf\xdb\xbek\xdf6_\
+\x13\xb0S\x92\xb6\xfb\xdb\xdd\x9bZ\xa2'\x01>\x9a5\
+\x95\xe9\xe7?\x09\xa0\x04T\xeeW&;\x81\xc7\x8ao\
+\x92QY\xe78\xffu\x14#\xf7\xfe\xfc2\xd7/\xfe\
+q\xbf\xe6\xe5P\xbb]\x01\x9cW\xfe\xfd\xc0\x04.\xa0\
+\x0c\xe5\xff\xb7\xc2\xba\xdf\xb7\x9f\xb9\x0eq\xcb\x9805\
+Od\xc4\x95<\x89g\xf8\xcd\x02\xe2\x12\x1d\xcax\xc4\
+\xfb~\xe7\xd0\xee^\xe5\x0f\xfa{\xef\x07\x081\xef\xc4\
+\x0d\xae\xcb\xe7x_\xe3j\x1e\x1b'\xd7-\xfe\x1b\x13\
+\x8aJ\xd5\xf3<W\xca\x0a\xc0+\xa0pH\xec\xd6}\
+\x8c]\x13\xc4\x8f\xd6\x91\xe7\xee\xef\xfb\xc4\xf9W:\xff\
+\x04\x80\xe1\xbe\xdc\xa7}!\xafczgXW\x0a\xa9\
+=\xeb\xd8%\xc2\xba\x00\x5c\x0a\xfc=g\xf7\x91\xd7}\
+\xb0\x0d\xcf\xb7:U\xfe<\xf8\x89\xf8l.\x10:\xf2\
+\x19@\x5c\xa8\xcb \xca\xdc\xc7qtL\x0e\xf4\xb7\xf2\
+\xc1os\x80\xbe\xd5\x05\xb0WhU\xe2\xab\x86\x00\xa6\
+@OM\xee\xfa\x15\xb6\xc0\xe4\xb3]\x86\xda\x815\x22\
+p\x10\x94\xb5\x1d_\xa3\x90\xb4\x03\xe6\xd8\xc3\xfb\x97\x1f\
+\xf6w&J\x9f\xe1\xbep7\xb1LX\xef\x93\x01J\
+\xb5\xdf\xc8v,];\xa7%\x03m\xa32\x01\x06\x84\
+\xa7j\x9bo\x92\x07\x93\x00\x1f\xf5\xdd\x06N\x9d\xdfA\
+;\xd6\x12\xb9>5M\xe9\xe8\x96\x83/#=\xb6\x19\
+\xcc\xef\xcb\xa1\xb5\xc1{^\xa7g\x8d\x18\x91\xc1[\xe4\
+\x81\xfb\xd5\x9c\xc0\x1c\xcd5#\xba\x04\x86\x80\x0d\x99h\
+\x08\xe1\x85\xd3q\xb9h\xaa\x8b[\xc0\x02@\x0e\xa6\x83\
+C\xffk\x07\x0eJ\x0c\xa0 \xd5\xdf\xabV[\x9b<\
+\xcfym+\xb8l,\x16\x88\x0dG\x1b\x15\x0e\x161\
+.5\xdb\xfe\xfd+\xd96H\x9fr\xef\xebK\xe0o\
+|\xa9bg\xedd\xb5\xf9{a\xf6\x93\xfeH2\x0f\
+\xb2\xbdN!\xe9D\x7fh\x15\xa8\xed\x170\x99O\xb9\
+\xfe\x0a\xe1\xb7\xf1\x8f\xd4\xa3\xdc\x80\xd4\xa2\x16U]\xa6\
+\xd9s\xf3j\xdc8\x1a\x9e\x8f\xf7\x05tqP\xf4\xfb\
+u\xd0\x8e\x1a\x1b\x19`\x17\xe0b\xdd\xd9\xe0{\x00\xf0\
+r\x9d\x0a3@\x0e\xd5?\x1d\xbd\xda(1Ld\xd8\
+\x87\xf5rH)\xd2%;\x87F_{\xa5\x17\xf6\x0b\
+T>H1\xa6\x83\x0ct\x1eh\xb5\x0f\x09\xb88\x86\
+\x0eJ\xed\xd8P6\xb5\x19\x22v\xa5\xd4\x00\xc0\xe5\x80\
+\xa7\xb6\x8c\xba\x9b\xcf\xaf4$\x94\xe4d\xa0\x5c\xc0\x90\
+\x1a\xd2\xa4J\x17\x95\xf4\x9d\xcdV\xf1\x9etH\xd4\xb6\
+o\xee\x18\xd6\xa9\x07\xa7*=\x07\x95\xc8\x9e\x1a\xeb\xa2\
+b\xffa\xd8Z\xaa\xa0\xb6\x190X\x19k\xed\xc6\x92\
+R\xba\xbdC\xd8\xda\x8e\xab\xf6\xef\x074[K\x06\xfe\
+(\xac\x03d\xb4y\xca\xda\xd4\x0a\x1c\x92\x9a\xba\xf9x\
+X\x0b\xc4\x16\xaa\xb9\x03\xf5\xc4t\x98\x1f\xd7,jf\
+g\xebjW\xdd\xaf}\xe9\xb7\x96\x8c\xb6\x92\x8b\xe9:\
+ak\x06\xb7(\xff?\x1f\xd6\xa9\xbds\xec\xb5\x7f{\
+C^\xf7\x81\x5c\x7f\x09\xdc\x95\xd8h\xaa\xa6C\xecK\
+\x0b\xe3_\xc2:`I`\xf3\x83<\x9f>\x96\x00\x91\
+\x92\x89\xd3\xf3\xba\x01e\x02#\x19\xf8\xdfN\xb1/\x80\
+\xa3\xf5\x0e\x00t}\x97\xcb\xfdJ)\x19\x86\xc9\x11a\
+\xab\xd6\xc5\xde\xef$\x00\xf5\xa2E\xec\x0fPf\xdf\xac\
+\x8c\x89\x8c\xec\xef\xed=\xbc\xa9\xb8\x7fn\xf7\xd9\xa0\x92\
+o_\x1b\xd6\x89\xc2]9le\xc2M\x8f\x0ckT\
+\xe1\x8b5\xb5\xf5\xb7\xed\xde\x1e\x8e\xd8\xf4\xb6\xb0\xd6N\
+\xf1\x01\xad\x9d\xa2\x9aV\xd7\x99m \x05B\x1c\xb7\xe9\
+\xdea\xf3\xbf\x7f\x22l\x15olb\x83\xc7g\x008\
+;\xce\xd3\xbf\x85u\x01&-\x90/\x84%s\xe7\x85\
+]\x86\xdez\xca\x0c\xa1\x92\x145\xf3\xd3\xa5\xc22\xd0\
+zc\xa7J~\x8d\xa5f{wLX\xb7\xfe\x13H\
+\xd5\xbd\xa6\x02\xdb\x0c\xd0\x94H\xb5\x1a\xff\xc76\x07\xf1\
+\xab\xcdA\xe4\xf0\xf9\xe2\x8fe\xc6\x94\x98\xe0\xee\x8f\x17\
+m\x80\xb6o\xf6\xed\xa5\xb2\x04\xa0\xc4TS\xc4\xb1\xad\
+\x96?^\xf7\x7f\xda#\xc5H4\x7f\x9c\x8bw\x08\xeb\
+\x00\x0d\xf3\x1d\x93&`\x9bwu\xcc\x22][\x1e\x13\
+\xd6D\xecfK\xa0\xf1I\xed\xba\xde\xd9J\x13\xd2o\
+\x99\xc3\xcf\x851#\xb0V\xcb\x9e\xfb@\x05\xc6\xce_\
+\x99\xbc\x14\xf5,\xc0/\xc5Y\xa9\xf5\x17\xa0\xe8\xfc\xb5\
+\x9f\xebOo\xdf\xb6\xdf\xa4\xf6\x04fO\x01i\xc9\xec\
+\xaav\xc1\xb4\x0f\x94Z\x00`\xc6\xf6~\x0f\x5c\x00\xbf\
+\xda\xcf\x13HV\xab>]?lm\x7f\x8a\xf1R~\
+\x0bm\x03m\x1b\x01\x01)\xb2(\x91P%v\xfc)\
+\xfe\xdd\xb3[\xbf\x8c\xbd\xe0\xef4\x06\x8f\xfdI\xc68\
+\xfd0\x99F\xc0j\x01<\xf6\x9b<\xef\x8b\x09\xcb?\
+URB\x5c\x16\xe0b\x5c\x13\x88*qC\x014\x80\
+\x8f\x06\x89\x00Q\xc0\x22\x10\xc7\x5cH@\xb6\x00m%\
+-\xfca\x81\xd0(F\x1c\x0ab\x97\xed\x02\xe8\xd4*\
+)\xa0K\x8d\xbf\x80\x8e\xdf2\xb6Q\x1b\xdb\xb9\x8d\x19\
+u\x01\xa2\x84\x90\xc0x\xd0:(&\xeaP\x82[L\
+^\x8ca\xcc\x07\xd7!\x11\x03\xa8\xb0N\xad\x07~!\
+\xbfN\x80i\x1c]\xbf\xef\xf9{\xfc\xc6\xec\x8a\xd3\x98\
+\xdb}\xfb9~\xf4O\xeaF5\x96fc\x18\x1a\xc7\
+\x91I.\xfe\xf2\xf9\xff\xad\xd9z\xfd\x806\xcc\x0c\xef\
+o^x_\xe3=\x02\x0a\xfe\x9d\xa6\x82\xf1\x13o\xf8\
+\x5c\xf7'!G\xcbi\xd423\x8e\xde\x97\xff\xe7\x15\
+\xc0\xc2\xbf\x1b3\xfb\xa3\xea\xbfy0&\xec<7\x80\
+\x83y\xe2\xba\xdd\xbfy`|\xac3\xfe\xb9\xe7\xeb\xbe\
+\xcd\xbf\xbc\xdf\x83u\xa1\x97h2u\x8b\xc3\x7f\xa0\xa3\
+\xfc\xa0\x9eDXx\x99\x14\xef:\xbeS\xf7\x8f\xcb@\
+\xfd8\xd0\x0d\xbc@\x90h\x1fD\xc8\x85\xc7\xed\x9e\xd6\
+\x01\x0f^\x05\x1a6\x9c3[\xce\xf5p\xd5r\x0f\xc2\
+\x0d\x1905\x88q\xdd\x9f\xe84\x04\x04\xe6_h\xfa\
+\xc6\xeb\x03\xb1\xa1\xf4m\x99\xce\xec(;2\x882\xe4\
+\x1cX\x14\x8c\xdch+@\xb0!\xad\xb5\xefK\x00e\
+\x03\x00<\xa8\x89\x1f\xbb\x09XP2\xd6\xb9\x01\x94\xe3\
+\xbfR\xf0\x0f\xd5n\x183\xb0~\xcfB\x92I\xbe\xd6\
+\xb2QW@\xe8\xe7\x16\xa2\x00\x10\x05I\xcd\xfeG\x12\
+\xd9\xbaL\x06H2\xc8D\xd18\xae\x02\xf6\x0b\x0c\x0b\
+\xccs\x91q\xe6\x08Y \x17J\x07\xe3\xf8D\x80\xd5\
+\x86\xa3\xbc@\xda<7H1U\xeaW,\xd4\xd6\xcd\
+\xaf\x84\xad\xd4c\x19\xa8\xa6h\xb1\x88\x88,\xefc\xdc\
+0*\xcc\x0f\xd7\x03 \xc1`@\x9d\xe6P\xa3\xea\x9b\
+\xe7\x1c1\xaf\x02\xd0\xa4:n\xfe6\xf4\xacW\x95\xdf\
+\xb1f\xb7\x00 \x945\x81\x95L\x9f\xdaT\x8e\x98\x9a\
+x_\x9e3\xf18%#\x18\x03\x9e\xaf\x0djP\x0f\
+\xadu\xe9\x00\xb5\xde\xbc\x8e\xc8\xab\x8d\xd2|\xb1\x8f\xd8\
+\x08\xc7v\x9c#\xa5\xcbu\x11\xbf\xd1\x17\x97\xa8\x0f&\
+\x06\xd5\xec\x04T\xaa\xdfkR\xe4\x050\x150\x9b\xf7\
+}-\xdf\x09\xddx{^\x99\x09\xad\xc0\x95C\x98\x99\
+\xef\xca\x80\xa5c\x83\xda\x5c\x0e\xaf\x0d\x19\xd0\x91\x81r\
+\xb5\x1d\xcb\x80\x92\xa3\xb5\xf9\xb7\xb0\x8e*K\x83A\xe0\
+\x8e\xda\xa7v\xd2\xe7\x01\x9e\x04\xf6\xa8\xa7\xa9\x8e\xbfw\
+\xbb\xd9\xcd\xba\xdd\xba\x8f\xc8P\x95X Q\xb4\x04&\
+J\x0d\x9bCMS\xc0xY_\x098M\x8f\x08\xeb\
+\x1c_\xe2}4\x10\x9e\x1d6/\x9b\x17\x87\xad\xed\xf1\
+\x8c\x93\xb6\x8a\xf6\xe1\x12\x9d\xc2\x98P\xeb\xaf\xf6Ui\
+\x81\x9a\xda\x14\xed*\x11\xb8l\xd7Y\xed)\x89ne\
+\xfb<Tg\x07\x9e\xd2\x02\x0e\xa3\x9a\xed\xba\x0e\x19\xde\
+|\xee\xd3\x03\x97\x9a\xff\xdd\x15wW\xd8\xcd\xf3e{\
+Z\xd8\xfcz\xdb\xb0N\xe3\x83X\x18\xea\xa1\xf9e_\
+\xb6\xef\xabM\x96)K\x11\xc5:\xdf\xd4:\xe7\xdfU\
+\xc6\xe6\xe8l\xdf\xea<\xb1~P\x843\xa0\xaes%\
+\x81Y\x94\xfa\xca\xb0aJY\xb7\x1cc\xa2^\x8fJ\
+\x15\xf2\x7f\xcd\xc0\xf6f\xcb\xb8G\xcf\x87PU\xc7<\
+\x99\xd7\xfa\xd2\xf6\x89\xb6\x89\x00%k\xfb\x01w2\xd3\
+\xad\xfb\xc9G;\x07\x15U?\xa9\x95(\xf4\xd3\xad\xa7\
+\xdbL\xb7n\xfb`c\x16n>\x16\xd6\x89rr\xf4\
+9B\x021Z\x1ey.L/\x08\xeb2\xc1\x18$\
+\x19\xd8\xed\x0e\x84\xa5c\xf7w\xf9<NYk\x94\x8b\
+\xe1\x93\x0e\xe4\xf6\xa1\xb3\x9d\xdc\x89\xc4\x85t\xdf\x0b\x1a\
+\xb5\xfc\xdeA-o\xbf\xd5\xb5\xeb:\x04@\xban2\
+)\x1e\xd2\xb5q\xc3\xf4\x11h\xa9A\xd5f\x0d\x10\x9a\
+Z\x16T\xa0\x8b\xda\xfe\x9e\xa5t\xa0\x02i\x801-\
+\x00\x81T\x94\x94\xfcC\x8aH\xa2\x8c?'\xe7\xc1\xb5\
+;G\x13\x90\xfc\xb5\xb0N3\xc9>\x93\x01zu\xdd\
+\x90a\xa5\xa1@dT\x89Td\x18\xef\xd31\x89\x04\
+\x82\xfa\xd2\xd3P@\xc5\x97\xa1\x0cQ\xbd#\xd6\x92\x9c\
+\x12\xcf\xa4y@\x0b&\xf7\xd7\xca$\xa7\xaay1_\
+\xcc\x0f\xda\x0c_\x0a\x9b\xaf\xeb\x19a\x1d\x03 \x03-\
+j\xed\xe5\xb7\x08`\x01%\xc4N1\x8b\x94\x86\x01^\
+\xed\x87\xc9\x88\x98\xf6\xc3\xba\xfd3\x9fw\x95^\x00\x04\
+\x128\x01\x80\xc6.\x13\xfb\x0c@p\xbaYX\xa7q\
+\xa3\xcd\xe4\xc3\xc2\xba\xf6~Y\x12G\xe3\x003\x87\x08\
+\xa0\x12\xa8\xddK\xc3V-\x83\xda\xf7WQ\xc1\x05 \
+\xbdsXw\x8e\x10\xf7U\xb2@\x03\x82\x86\x05\x0a\xb7\
+\xb6\xb0\x98A\xa9iS\x89\x14\xfb\x0e`;\xf7\xfb\xea\
+\x16\x83jMM^\xc2\x8c\x06\x8e\x00&\x19\x19\xf5\x1c\
+3\xb1U\x19\x5c\xda)\x12_\xe9\x7fT\xb7\x82\xf4\xf3\
+6?\xb39\xae\x01\x96/\xd9\xbd\xb8\x95\x1c&\xa0\xb2\
+\xbbgXW\xea\x07\xa0\xb6\x9f\xf3+F\xd5v\xfe\xbc\
+\xb8@ \xca?\x1ak\xe7\xfd\x9e\x04D2\xe9\x0e\x13\
+w\x168\x8f%\x9aC\xe2\xaf\xf6]\xa2\xca\x12Q\xe2\
+$\x01\xa5s\x8a\x7f'\xd1:\xb6K\xe6\xbfY\xaf\x18\
+1\xbeF-\xb3\x11\x00\xf0\xb9\xce\xa5\xb1\xe4z\x14\xc1\
+\x1bK\x05\xcc7\xe7\xa7q\x13\xc0c\x0c\x9b7\xee\xcb\
+\xb8\x03d0:%\xb4%\x90\x8c\x87\xebs\xbf\x12a\
+\xfcw\x00\x05 `(m-&\x90\xf7\x137\x10\xc7\
+&\xb6\xe7\xb9I\x0c&\xc0^\xf3@B\xcc\xbc\xe7\x97\
+c.\xa5\x9f\xbc\xf9jX\xd7\x05\xc4ss\xbe8O\
+0`\xec\x9fc7\x05\x9f\x97q\xe2\xc1\xf6q\x9f\xeb\
+\x02\xc7\x1f7R\xf7\xfa\x07&\xbe?\x94\xa9\x170\x08\
+,\xb4\x0b\x14\xf8X8D\x03Q \x05\x80\xd1\x0e\xec\
+\xb8n\xc34!\x22\x0c\xef\xa9\xdc\xae\xc3D0Q<\
+h\x81\x18\x04\xed\xb8\xd6\xd8dos\xc5\xb053\x82\
+\x82V\x01\xbfL\xb7\x81\x17`\x8e\x88\x9f\xfb\xf7w\xd7\
+:T\xdd\xbf>\xc7\xcf\x01\x09#\x82\xe3>QN\xbf\
+\x95m\x88\xd4\x22\x09\xf0M\xb4\xa1v\xba\xda\xf9\x01\x22\
+\x042^\xf5\xe5\x94\xf1%\x0ef\x82\xaf%\x02\xcb\xc4\
+\x1e5\x10\xc6\xd2\x0a\xe3\xe2\xa0\xf6\xbe\xa8\xe2\x9f\x1b\xfa\
+\xd2k\xe3wZ\x06\x82G\x1c*f\xd1\x0a;.\xdf\
+\xdd\xd7i\xe9\x88\xa8\x9d\xd1e\xe0\x9d\xb9\x01\xe4\x01@\
+t\xa9\xfa\x98\xca\x88\x0b\xc4\xcd\xbf\xff\xcc\x05\xfc\xc1\xcc\
+\xe4\xda\xd8!\xce\xf7\xc9@\xf1\x97\xd2q2\x1e\xc6\xcf\
+\xc11\x8a\x22^&\xe7\x89\xf5! \xb6\xf1\xff`\x10\
+Ct\x7f\xda\xeb\x08@?t\xa8\x98K\xfd=\xe4\x16\
+p\x92\x0e{\x05\x9a2\xd1\x1c)\xc8\xb9\xeb\x11\x18\xa8\
+\xe1\x05Dq\x9c\xdd\x9fye\xdd\xd8\xb8\xad;\x9f/\
+\x10t_\xe6\xefOh\x13S\xf71\xaa\xf4\x8e]\x07\
+\xc6\x0d\xc8z\x00\x14\xf8\x02$\xb8/@\x93\x8cI\x02\
+\x1b2\xb4jTeZ\xea}s\xdek\x0bW5\xa7\
+6v\xeb\x19\xf5\xcf|\xe3\xd0\xa4\x03P\x8c\x01L\x02\
+\xfd\xb7\xed\x0b\xe6\xb7\x80.\xdb\x0e\xc98\x13\xbf+\xca\
+\xa0\x8d\xd9\xb8\xca\x0cG{\xb3\xfeze\xb41\x03d\
+(\x93\xcaW\xcc\x97\xd7\x84u\xcfO\xed\xe4\xc5\xc3:\
+\xad\x06\x99C\xcfK\xbb\x99l\x17H-^f\xad\x1c\
+kTj\xd4G\x07q\x0252\xf1\x02t\x22XU\
+C\x9d%\x05(\xa2\x1c\xf7\xfd\x0f\x85\xad\xef\xb79\x18\
+\xd6Q)}\x8eL\xea_-5\xc9\xfaf\x0b\xc8\xf7\
+\x1f\x1c\xb6\x028\xb4\x10\x8a\xe9\x90\xf3\x91X\x976g\
+\xfb\x1f\x08[\xd7S\xb5m\xfb\x95\xa5\x8f\xf4\xf6\xac\xb0\
+\xf9\xf5za\x9d\xea\xbb\x00\xd3\xbej\xbe\x03\xfa\x00\x90\
+\x19\x18\x95\xf6K\xeec\xc6\xbb\x00\xb5T\x1fW\x22R\
+\xb5\xbd\x09\x90l?\x16\xd6\xf5wV+\x9e\x01\xda\xf6\
+\xa9a\x9d\x98dR\xb0\xeb\x15\x85\xff/\xb3\xddY\x06\
+xUj\x82\xa1c>k\x9f%\xa3H4\x0cS\xe6\
+\xf5\xcb\xf5\xd6\xbe\xef\x5c\xe5\xb0\x00\xd2\xb4\xa5S\xe3\x7f\
+\xfd\xdd\xf5\xda}\xe5\xfa\xda\x7f]X\xa3\xe4\xfe\x9f\xa0\
+\xe4n.\x16\xdc\xb0\xf9\xf5C\x9b\x0fnb^\xbf2\
+\xac\x03F\x9f\xd3\xacD#\xab\x0f\xbd\x8c\xbcvg\xda\
+\xfb%\x15Z\xa6^&\xa9\x02\xfe\xacqG\xd1\xdf\xfc\
+MX\xa7\xbe\xff\x8d\xd9\xfe+\x99\x04\xf3\xba\xdf\xbe:\
+lm7Wm\x1e9\x9a\x00d\x99\xe8\x00\xb2n\x9b\
+m5O\xces\xe1\xc8N3\xfb\x17'\x89\x00\x00 \
+\x00IDAT\xc4>\xae\x04\x120\x93\xcf\xa5\xf1*\
+\x8fm\xfb\xce'\xdb\xb9(`\x90\x01\x8f\xfd\xf0\x89\x1d\
+@\x08\x98\x0a\xe6\xe6i\xc9\xa8\xb8X\xa7\xc1\x93\xaa\xe6\
+\xb5.\x00N\xa9Y\xb0y[X'z\x955\xe9\xa5\
+\xfd\xf1\xc9E\xd3\xa82LD@\x95&\xf0\xc3h\xb4\
+d\x97\x85j\x8b\x1aM\x18\x9f\xda\x01\x9d\xf6\xf7l\x03\
+\xb8{o\x8a+^?K\xb4\xec\xd3\x80,\xa5+2\
+\xcb\xce\x89dpl^\x1a6\xff\xd9\xff\x9b\xde5\xbd\
+\xab\xd3\x92\xc8@\xb7D\xd30$u]\xb9ZX7\
+\x9f\x01\xd2\x80\x19~\x10`\xc4\xbe\x98\xed\xf4\x04\xb2\x9b\
+\xbf\x0c\x9b_?\x1f\xd6\x01\xbb\x18j\xce\xdd\x04\x94J\
+{\x22\x03\xe7\x86\xfbl\xd6\xae*U\xea\xa8\xcdl\xce\
+\xfb\xed\x8b\xc2:&\x94}\x83\xc6\x84}%\x01\x0d\xa2\
+u\xd3\x17\xc2\xd6\x00\xbe\xb4\x1c\x120)F\x06\xbfG\
+ \x96\xda\x01\xd5\xf5\x05\x13)KT*P\xc60p\
+\x0ezn\x12\x1a\x99\xd0\xaan'\x02\x13\xcf!K\x18\
+\x00y\x05t\x10\xe3\x1c2\xf5D\x89k\xbejo\xa8\
+\xb4O\x17\xa1\xd4\x9a\xb1?\xcc{\xe4m\xda>\xa9\x14\
+0\x13]\xc5\xeczxX\x07\xc8=5\xac\x8b\x0b\xec\
+\xf7\x02>\xf7;&8\x05\x82J)\xd4\xfe\x0b\xdc\x89\
+\xb6I48\xb7%B\xf8m\x12q\xe6\x8f\x04\x8e\x9f\
+;\xc7u\x19\x91\x18\x13\xa0\xdb\xe7u\x03\xc2\x08\x11\xdf\
+`p\x8e\xe2\xd2\xee\x8f\x7f\xed\xfb\x91\x81`\xddx\x9e\
+c{\xbd\x01\x00\xa8\xfb6\x9e\xfcD~I\xee\x9f\x05\
+4\xf9;%u>W\xa2hd\x16\x88\x83$\xae\xf9\
+\xab\xfcY\xfe\x1a&\x83\xbf\x1f\xc5\x0f\xcds\xcc \xfb\
+\xbc\xdf\x07\x0c\xf0\xa3\xbd\x8e\xdd\x08\xd6\xf6\xe0KI8\
+?jl++n\x1c47*\xce\x04\xc4\x8f\xdd\xe0\
+\x00\xec\xd6+M)\xa5\x08\xc6\xd5\xbap\xce\x17\x03\xc0\
+@\x10\xf5s\x90\xf9 \x019\xe4%\x06\xe4\x8c\x8e\xe2\
+\xdc\xab\xee\xff\xb8s\xe8\xfb~\x89\xdf8\x97\xday5\
+\xfa\xa3X\xd8\x11-t\x5c\xa9\x12\x19\xf8*A(u\
+\xfd\xab6]\xf5\x15(\x80\xdc\x8c\x80\x85\x1b\x170B\
+\xc88p\xe3\x83\xf7~2\xd0\x02^j\xa1\xa8\xc6\x80\
+\x0e\x01\x93\xfbB\xad\xf1\xe0\xfd;\x0a7\xc4\x0bre\
+\xfcl\x1c\xfe\xce\x84\x1e\xfbR\xba\xde\xb1fg\x14_\
+s=\xfe\xdd\xc6\xe5\x80\xb3\xa0\x04\x8e\x90G\xe3e\x03\
+Z\xafk\x99\x904\x0cLx\x0b\xee\xcbKfv\xf3\
+sam\xe1\x1f\xda\xc6\x91\xf8\x1fd\xf6S\xc9\x1cH\
+D\xab\x9e\x8b\x80[\x86\xd8\xab\xe7g\x1c\x7fm\xc9\x84\
+mn\x92%\x18\x10h\x8e\x94\x0c\xbe\x9aQ\x01\xc5M\
+S\x8d\xf8\x929_\x04\xdc\x00\x06\x07\x9a\xf1\xd3.\xe8\
+\xfd\xb9\xd0\xcc\x1b\xf3M`e\x03\x5c3\xe3\xcb\xab\x0c\
+\x8d>\xed\x9fOU}\xed\xb986\x16p\x06zU\
+\xc3H\x957\xc5\xb9P\xa3\xeb\xb9\xca,\xf9^\x1f\x5c\
+\x8e\xb9\xbf\xcfR\x92\xa2\x949\x90\xac\x13\xa2<\x1cS\
+\x1b\xb7qP\x03i\x03\x17X\x9cg`\xb2\xe4\xbc.\
+\xf5\xd5\xb1K\x84\x0d>\x03\xber\xb0\x88\x9e\xc8\xf0\xa3\
+\x22\xaa\xb5\x07D\xa5\xc8\xd0\xe6\xc9a+\xf5\xb7\x1c&\
+\x99\x1c\x81\x03d\xd7u\xc9\xac\x13\xcd\x1b3\x04\x99\xd9\
+\xb4\xfe\xcb\xf1\xb1\x0e\xc7~\xbc\x0e\xc0tl\xb7'\x86\
+u\xed\x06\x01<\xe6\xad\xe7\x9c\x07\x7f9\x1cJ\x08d\
+\xd6\xcdG\x07\xbf\xf1\xf3\xf7\x1cC\xb5\xb8(\xd2\xa9\xa6\
+]\x07H\xf6\x85.\x07_\xa6\x13`CLI\xed\xb7\
+\xfb\xb2\x0f\x08\x90\x8f\x0e[32\xdb\xdf\x0d\xeb4\x1e\
+\x04\x9c\xa9\xd2]\xe7G\x06\x92\xc5\xa8\x02\x80f\x006\
+\xdd2\xac{~\x0e.\x801\xa0\x07S#\xc7\xad\xb5\
+G\xfb\xeb\xae\x9db\x96\x90\xec\xbd\xb0\xd9*\xfe\x95\xed\
+\x1f\xa7\xbf\x0f\x9b\xa7\xe3\x8b\xc3\xd6~\xf4u\xa0\xe7\xb8\
+n\x9f\x176\x1f\x8c\xb7\x0e[\xa9\xe45.\xceG\xda\
+\x09\xc4\xc6\xb2\xe4\x01\x95\xb5\x02D%3j\xd1\xf5\xcb\
+&Z\x98\x0c\x89r\x04\xae\x96\xfd\xc8\xffG\x8ai\x11\
+u3\x9e\x09\x04P\xe5\x9e^\x17\xd6e:3P\xde\
+\xfc{X\xc7P\x11 \xa8=\xd7FqpX\xab\x9b\
+\x06\x07H\xc9\x15\x87[\xa0}rv\x11 \xda\x88\xd9\
+\x92\xd4\xd1\xed\xed\xc3r\x1f\xf9\xd1\x9a\x81\x9f\x1e?=\
+a\x0a-\x83k\x87\xad\xfb\xe3\xf6-a\xc9|8\xaa\
+\xcb\x04\x13\x13\xa6}\xf0\xfc\xb0Uu~szX\xcb\
+\xa4\x1e\xdf2\xa9\xc4\x16\x950r$\xd3\xcf\x99N\x0e\
+[\x19\x1f\x05\xccxn\xa9\xbe\xee\xdc\xde>2l\xfe\
+\xf9\x85\xc2\xd6\x00TiA\xed\xdf\x02\x95\x5cO\xc43\
+\xa7o\x855\x91\xc1P\xd5\x89\x00z\xd1~p\x9e\xbf\
+\xbf\xfd$\x98\x15\xa7\xeeNm\x00\xe6\x05[\x89\xa0\x9a\
+\xddc\x96\xaeG\xad\x14\xed++\xb0\xd2$\x9a\x8f\xcf\
+s\xf5\xecN\x9c\xed:\xad\xc1l\xb4\xb7l\xcc\xa9\xf2\
+W\xf8EYbS\x22\x7f\xff9\x8f\xdf|~mO\
+\x0a[\x03\x04\xd4r\x81i\xb5\xa9\xb5\xce\xf3\x1c\x9a\xfe\
+2l\xfe\xf7/\x85u\x14~m\x163C\xbe\xf7\xf2\
+d\xba\xfci+\x86[\xa9\xc6\xf7\xdf=\xa0i_\xd8\
+'\xf2\xb9W\xfb;j\xf8\xa8\xfd\xda\xbe\x02\x82h\xb4\
+\xc8\x88\xf1\x1b\x8d\xc7y\xd2\xef\x04\xf0\x8f\x22g\x02\x16\
+\xc0\x18\xe6\xd9\x0f\x93z\xcf\xbf\x010\x13\xb3\xe3\x97\x8c\
+\xe2j\xee\x83f\x11\xff\x11\xa0\x9b\x19\xfa\x02\x9c\x93\x81\
+4\x9d\x19\xb6\xfaK\xc5\xe0\xfb\xb9\xd6Hp\xf1g.\
+\xbbv\x85)\xff\x81?\x99Z1\x9e\x0b\xed\x95R\xe9\
+\x07\xc8eW\x90R\x8b\xe7o\xca\xb0\xf3\x03\xec\xff\x00\
+r@\x1b\xa0@\x9bN%\x94\x98X\xce\x15@\x22\x0d\
+\x1b\xe7\x99\xaf\xb1D\xd5u(\x91 \x1e\xc8\xffH \
+\xb8\xba\xc0\xd0\x8eq\xde9'\xedg\xce?\xcf[b\
+`\xe8\x12P\xfb\xbfqM\xe0\xd1>V\x99^L*\
+ZM\xae\x8b\x9f\xc4\x0f\x12\x17\x98\x1f\x98\xb9>\x7fL\
+8\xf2\x8fi\xc2`<`\xe6\x8e\xd4v\x99{\x19m\
+\x0c%\xf3\xcf\xe7)\xd5\xa2\xfd\x80\x09\x0d\xa8\xc5<\xfd\
+I]\xd2\xdc\x9f\x00\xdd\xabq\xfbB%\xfc\x0e\x01(\
+J\x94nL(\xf2\x0f%\xc0\xf8S#\x85\x9e\xc6\x05\
+\xbf\x0c\xb3\xceu\xf3;\xf9\xbb\xc6Y<\xe2~<\xe7\
+1p\x17x\xbbn\xfe\x1b@r\xd0l\xd8\x1c\x13\xd6\
+1<]\x87\xe7\xe4\xfd\x8d\x1b\xf1\xea(\x9d\xbf@\x17\
+g\xb9\xef1n3O\xb5\x0b\xc6\xa8\xa2A\x97\x80\x17\
+\xed\xa2J\xac\xdb\xaft\xc9\xd06\x13\x93F\x5c`\x5c\
+\x87\xc0\xdf\xe7\x1f\xac\x89\xa7\xbd\x9e\x05I\xe4\xc7\xc4\x1e\
+\x10\x9e\xca\xe4\x13\xd7\x12H\xf4\xfd\x22\xcf\xe86H\x1b\
+.\x80\x00\xb5\xdf\x00@tm<C\x80Y\x08\xb3@\
+\xbdo\xbf\xd1\xab-\xc6c;\xabkC(\xa3f\x81\
+X\x88~\xdf\xfb\x08\xfc!\x872\xa9\x16\xbe\xeb6\xa0\
+(w(\xfa\x80\x09\xf7\xe1\xf7\xd5\x14\x8d\x13\x8f\xc3'\
+P\xb9|\x1e\xe8\x1e\x14DH;\xa8\x9c\x88\x15\xa0\x01\
+\x168\xa44\x00\xfc\x9e\xcf\x1d',\x84\xf7*\xf9\xef\
+WNJ\x1c\xd5\xf8_\xcc\x80\xcbs\x5c\xfb\x82.\x0b\
+\x03\x85\xde\xc6\xba\x22\x82\x8bZ\xa9\xae\x05\xc7\xe5\xbc\xf0\
+w\xae7\x0f\xe8\x0a\xec\xd2\xf1\xa6&;\x07+\xcd\xc1\
+\xa8L\x85\x80\x0e\xf2O\xd4E\xfb\xad{f\xc0{\xb7\
+%`.\x91\x1b\xe3\xef\x00[\xdb\x14.\xe3.\x03\x0c\
+\xa1\xb7\xe1\x19'm\x89l\xa0\xd4\xf41\x1b2\x13y\
+\x18`#S\x8e\xd9\xe0@8+7\x14\xd4M\x99\x0b\
+%\x06y\xa0\xda8\x8aB\xae\x1d[\xce\x1fT\xc0Z\
+\xf8\xba\x17`\x9c\x08d9\xbe\x00\x85t\x00*\xd3E\
+\xed\x19\xe2<\xa8\xef\xd7\xbaE\xf5\x83\x5c\x8e\x1b\xa6\xbf\
+s\x9f\xd6\x13\xa4\xd6\xab\xf1\xd5\xeeE\xfb>\x1b.\x87\
+83H\x95A0\x9e\x0e\x0c\x9f\x8f\x22\x98L\x1e\xed\
+\xf66\x7f\x1c\xd6e\xa6\x1c \x0e\x06\xeb\x13R\x9a@\
+\x09\x87\xbd\xdaU\xd9\xb0}\x9e\xfdC\x1f\xed\xbf\x09\xeb\
+\xda#\xca\xe4k+\x93\xd4\xf8Z\xef\xe6\x95\x03L&\
+\xcc\xc1n\x1er@Q7\x07\x95\xe2\x12\xb5{HX\
+G\x9dW\x83\xad\x16\x0cc k\xb7\xe7Y\xbc\x00\x1f\
+\x1cR\x8e\x12 +\x03\xc7\xda\xe7\xd5\x94\xdf,l\x15\
+s\xda|$\xackOh\x1e\xa8=M\xea\xb2\x1a\xe3\
+Rc\xe7\xf0fW\x03m\xe8\xec\xeb\xa5\xbe\xad\x06\xd0\
+\xfa\xb4\x0fq\xd41\x0b\xf29V\x0d*`13\xe4\
+\xd3'\xc2V\x80n\xff.a]\xcdyv\x9d\xd8~\
+;l~\xbd\xfb\xf6n\xdb\xbb\xcd\xd3\xf3\xcda]`\
++\x83\x05\x80\xfc\xcbdD$\x05\xb8j\xc3\xcd\xcfd\
+2\xed^\x94\x01\xbcZ<\xd7\xad\x9d\xd6C\x9aUI\
+\x83\xf3\x88H U\xff\xe9>a\xf3\xf5=7\xac\x9b\
+\xbf9N\xe6a\x9dg\xce\x87\xcc\x0cT\xa0 \x93\xa2\
+6\xd8\x17`\xdbyk\x9fN\xe6QQ\x91\xd5N\xa7\
+\x06\x84\x00\xbc\xf6\x89K\xe4\xf9s\xd1\xcdE6\x17i\
+L\x99\x16xLI\x81\xde\xdch\x0e\xd8n\xb4R\xc0\
+\xa77\x85um\xfc\xc2[\xf8Z\xd7\x8f\x1d#\x03\x15\
+;\x01\x04\xc0\x9dy\xba9>\xac\xed[\xe7\x8f}\xab\
+\x89%\xbd\xa3\xfd\xbc\x95*N\xd7](\xf9\xba\xad\x94\
+J\xf9e\xc2\x9a\xff\xd1\xfc\x94\xd0\xea\x0f\x80\xa12\x99\
+\xa8\xe29^\xd3\xc5\xc3\xd6\x00\xb4\xf6Q\x80I\x06\xfe\
+\x05\x84\x04\xa3\xe7\x9c\x8e\x01\x82\xb2\xfa\xe1\xa6\x02\x13\x8e\
+c+\x91 \x12Z\xcc7\x01\xc5\xe0X\x16\xa5\xd49\
+\xf6\x1f\x99\xb8\x01\x94\x85\x18\xe5^W\xcb\x9c\x80\xf3\x98\
+\x00\xd1~\xae2\xe22\xa4\x98MJNr~N_\
+\x0e\x9b\x7f\xefea\xd9-\xe1\x0e])e\xb8\xa1\xef\
+X\xc5\x07KS\x80X`\xec\xcb\xcf\xcf\xf6\xb7\xa1\x19\
+\xf0\xc1\x90\xb5l\xfb\xdc\xa7\xda\xf5\x7f\xb8\x15\x9f\xac\xed\
+Ro\x90\x80#5}@K\xb6m+J2\xeak\
+\xce\x97V\xa2\xf1\xfc\x0e \xca>\xf6\xb5>\x9d\xcf\x09\
+\x88\xd6\xb9\xe3\xefe\xde\x88\x15\xde%Kl\xd2Q\xde\
+\x5c0\xec\xf0\xda\xfa\x12\xd9#\xda\xca\x1f\xb0\xdf\x13\xc3\
+\x05\xa0(1#\xbeHD6\x99E\xbb?\x09\xeb\x80\
+\x9b\x81a8\xdd9,\xbbu\x9d\xbfK\x9c\xf0w\x94\
+*\xf2gi|\xdc~\xef\x97\xdb>FC \x01\xe9\
+\xba\x1f\x22\xab\xa8\xf5\xc9\x1c\xa8s\x1b\x00\xe9\xbc\x90y\
+\xd45EW\x0d\xf3\x88h\xb4.8J\xa6$j\x9e\
+\xd6l=\xf7~8t\x87\xe2\x7f%#J@T\xa5\
+\x9d\xd9\x86\xb1\x12\x1d\xce\xbd\xb1\xc4q\x107\xacs\x5c\
+@k\xff\xf2\xbc\xac\x7f]\xb8\x00\x7f\xfc\xdc1\xc1\xc0\
+_\x07\xa8H88\xb7F\xc6\xa4\xf1\x1c\xb5\xc1F\x11\
+\xe7!#^\x89&\xf3\x98?#\xe1\x04p\xf1s\xa5\
+>\xa9%U\x81\xe5\xd8\x15\xca\xfb\x1b\x8fM\xc9\xc2/\
+_C\xe2\xa6\xce\x19\x8c$\xb5\xec\xaeObs\xbc\xef\
+Q{m\xd4r\x13\xd7y\xfe\xfc\x0a%\xba#P\xc7\
+\xaf\xe4\xdf[\xcf\x9e\xbb\xcf\x15_\x9a\x07\xc6\x87\x9f\xc3\
+O\x1f\xb5\xaf$\xa4R\x94\xb4\x18\x07\xae\x0f \x96\x0c\
+\xb2\xfa\x1c\xc0\x968\x93\x1f\xc9\x0ft~\xf3\x9b\xf9\x7f\
+\x02w\xa5\xbe9_\x89WV\x09%`,5\xd2:\
+f\xde\x92\xd0s\x9f\xd6\x81\xe7f|\xc4\xf39>\x07\
+K\xe4-jH\xae\xd8\xb5\xe9\x13\xc0\xc7\xe3\xef\x91 \
+\x01\x02\x87\x0b5\xdc\x86\x91T\xb7j\xdfg\xc2\xf8{\
+\x94v\x22z\x91y>\xa1\x9b\x00\x1e\xc0UZ\x88\xba\
+~\xd9\xe0zU\xc9\xefv\x1a\x04c\xad\x8d\x07bA\
+r\xb8-\xa0\x9f\x19(\xda(\xb4\x02\x19\x0b\xdb\x01j\
+\xe2\xa2\xd6\xf8<\xc8\x17\x15h\x818uy\x7f\xe7\x81\
+\x08\xd8\xd3\xf1\x8d^\x0bM\xe4\x0f\xd00R\xfb]\x8f\
+\xeb\xf3\xf76x\xcf\x03\xf5\x10\x05\xd2\x836a\xd5p\
+\x09\x90M\x8cKe\xc6=\xdb\x12\x16\x8b`\x9b\x1b\x81\
+\x0d\x92ch<\x1cL\xa7\xe7\xc4\x86h%@P]\
+\x1fn\x94\xc8\xaf\x05\xa1\x86&\x03\xa5\xed\x83\xc2\xe6\xdf\
+{OX'\x02&\xb3\xa2\xe6K@\xa3\xb4\xc1\xcf-\
+$\xcf\x01\x12F,\xeeb):8\x22\x86\xe6\x85\xeb\
+\xc9\xf6\x88\x95\x01F\x113o\x8f\xae~\xb3\xcb<<\
+O\xd6\x16\xa1\x9a\xdf\xf3\xd0\x9a\x22\x8eGe\xce\xce\xcc\
+\xbe\xc9\x073c\xaa\xd6P\xc67k\x0c\xf5y%j\
+Hdl{\x97\xb0\xae\xf6\x1d\x90\x82\xa2\x0e\x915o\
+\xb2\xadUe\x9em\xa46t\x0c\x17j\xa2\x10|\xf3\
+\xca\xc1l\xbd\xd9pG\xca\x94\xdf\x07,\xd9\xb8\x89\xe9\
+q\x8cm|\xe6\xa5\xdf\x13\x88\xfa\x1c\xeb\xf1rC\xfb\
+H\xf3U\xf7\x8aT\xa3\xad\xfe\xf2\x97\x0b[\xc5\x80J\
+\xe3\x025Z\xd7\x07%;6Z\x19R\xfb\xd8\xe5\xb3\
+M\x9c\x03\xc7\xbc\x97\xc1\xc9\xae\x04\xf5\x05@ \x96#\
+C\x0b\xd1\x05\x14<qi\x17W\x81\xaf\xf5<\xdcw\
+\x017\x1c\x10\x077\xc0\xcc\xc1\x839\x80)\x02(A\
+\x00\xe2\xd8\xffa\xd8\xfc\xfd#\x16u\xfc\xdd\xed\xc3\xba\
+uf\xbc\x95H\xfcsf\xd4 \xf0y\xdfU\xd3\x09\
+PR['\x10\xce\x83HF\xbb\xf6C\xed\x0a3\x83\
+\xa7\x86}\xf3\x9fa]\x8dv\xaa\xaaW\xe9\x86u\x93\
+\x99\xeb\xa2p\xe69\xb1\xfd@X\xd3$X(\x8c\xff\
+=\x01\x0c\x99z%@)z\xc6q\x16@l\xdf\x18\
+6\x1fS\x17\x08k@B\x0b\x5c\xabT\x09\x80\x84J\
+,\xe3(p\x7f\xcd\xee\xb5\xbb\xd7\xae\x22\x84E\x89\x96\
+\xb9\x91a\xbe\xff\xee~\xbb\xfbu\xfb\xb6vs\x18,\
+\xc9P\xa8\x1aN\x19S\xa5\x13\x09\x10h_\xb5ys\
+\xd8\xfaw\xd5\xd5 \x03\x9e\xcd\xff\x0e\xeb\xa8\xda\xda0\
+\x12\xbb\xe3\x90`\xa8(I\xd1\xd62\x198%\xb2\xaa\
+\x8f\xb7R\x00\xed:\x05\xbe\x9eg\x02\xb8\xd5\x06\xee\x8c\
+\x14WS\xeb\xff\xe6\xbd\xeb\xc6~\xba;y\xf7\xd0\xc6\
+41\x8e\xa9\xf1!\x80\x9a>=}j\xfat'6\
+y\xaf\xd9\xee\x99\x00\xef\xdd\x12h\xfetG\xdd\xff\xe6\
+\xe6[\x9bov\xa50\x7f\xb2\xf7\xf8\xc8\xc06\xd1\xca\
+G\xb5u\xb6dLR\xb3h\xf7\xc2\xb0F\x11\xfdD\
+\xa3\x88^}~ZW\xef\xa8\xe0\x18[\xa9\xa5\xb2\xbb\
+\xd4\xee\xd2M\x1c3\xe7\xeb\xe6\xb4\xcd\xe9\xd1\x87y\xfb\
+\x98\xb0\xee|\xce\xfb\xa9\xfd5V\xcd\xe7r=\x9c\xd4\
+\xa8\xf67l\xed\x01\x13H\xd5\xfe\xb1\x02)%b2\
+\xd8\x023~\x83\xcc\xaa@\x0cc\x08\x93B\x89\x87s\
+\x8b#\xca\x1f\x91\x01\x04\xa4\x03\x14?\xb8\xfbPcx\
+\xdcu>\xf7\xee\xda\xf9\x13\xf6oTw\xa5\x22\xb1\x1b\
+\x87\x0a\xf5Kf{i\x07\xec\xbdb\xf7\xcaFi\xff\
+\xfc\x02\x0c\xec.\xbe\xbbd\x88w\xee\xdd2K\xd7|\
+\x1e@1\x03\x86\xdd\x1b\xc3\xba\x9aym\xf1\x00f\xc9\
+\xa0\xb2\x8f\x15\xd5\x9bx0\xf17\xe7\x93\xf9\xa8\x1b\xca\
+\x09\xd9G{\x9b\x1a\x10\xd7kE\x06%:\x0ah-\
+\x86\xa0\x80\xc0>\x879\x96\x80\xdc\xee\xf2a\xdd\xb9\x07\
+\xa8\xb4_\x00\xae\x05\x84\xfc\x0d\x997\x80\xad\xf6v\x80\
+\xe8\x0c\xac\xa7\xdf\x0f\x9b\xa7\xd1=\xc2:\xc6\x81\x92U\
+\xf3\x93?\xeby\xf13\xed3\xceM\xe7\xec5\xe6\xb0\
+\xf5\x1a\x0d\xb8{P\x03\xee\x00\x10\xf6\x05\xd7!\xb1\xe5\
+>\x9d\xbb\x02v~3\xbf\xd2}b\x12[\x0f\xceA\
+\x9a\x17\x80u\xef\x87b?\x94d\xd4x\x11\xbd\xcb\xef\
+k}*\x91Q\x1b\xfd\x7f\xc3:\xf1`\x81\x90q\x8e\
+n\x1f\xdf\xed\x983\xfc\x17\x81\xe0&\xff\xcb\x00\xaf\x00\
+[\xe3\x22\x0e\xa0\xee\xcf\x9fQ*\x9a\xfb\xc4aZ^\
+\x80\x86/\x0e\x8cY\xaf\xfc\x8b1\x03\xef\xdf\x01\x1a\xfc\
+f\xdd.\xf4\x9d\x17\x90\x02\x9e\xed\xdf\x002\x80\x87y\
+MTPi\x9aL\xf2 \xeeY\x00\x80x\xcc\xbc\x05\
+X\x8c\x94}\xcf\x1d\xe0 \xb0\xf6\xef#\x03`\xa4\xe2\
+{\xf5{\x02\xf7\xb1\xa6_\x1cB\x9b\xeeca\x1d\xe3\
+\x18C\x1d a\x1d\x1b\x7f\x19qq\x9b\xeb\xe0\xd7)\
+q\xf2s\xcfedj\x8f\xcc\x0e\x09&\xcfA\xbbM\
+\xfb\xaf\xfb\x02L\x00\x02\xac\xd3\xfc\xbb\x12\xdd\xcd}\xbc\
+\xe2\xf2\xbf\x0e\xeb\xdaAZ\x07\xf6\x1d\xe7\xb8qr\x7f\
+>\xf7\x82\x15\xaf\x1c*v\x0f\x00\xa8\x80\xd9\xc0\xdb0\
+\xe2m\xfe\xab[\x00\x16\xae\xf6~\x83\x9ac\xb5\x93\xe3\
+@\xefe0\xd9\xf7]<\xa6\x1b(Z\x03\xe1~\x1f\
+\xd9MH\x03j\x00c\xb8/\xd2m,c_\xc8\xf8\
+\xf4\x9eBb\xe3[\x03\xd2\xe5\xbe|\xaeW_&6\
+\xea\xc6\x91\xd9\xbf^\x00b\x01\x99\xf82\xf3\xfe\xddu\
+B\xa2\xdc\x07\x8a\x8d\x83b|\x15Hz\xbf\x0b\x0e\xdf\
+[\xf8\x16\xa6\xcf7\x11m\xc0\x10C\x81\x8a\xe7b\xe1\
+jwa\xa3\x85p\x9a\x80^\xd7\x8d@\xbb\xc3e\x9c\
+\xc7\x0da\xec\x0b\x8a\xea\xbfI\xc7\xc7\xc1|\xfe\xbc\xee\
+QCA \x8fa\xa1\xb6\xcb\xc6l\xbe@XQ\xa8\
+\x89\x03R\xb1\x16PB\xb68J\x17\xcd\xf1W\xe3H\
+\xf58U\x80k|\xfd\xdd\x88\x1c\x0bd\x1f\xbcd\x8c\
+* \xbbj>\xdf\xbbf\xe0Hl\xcf\xfd\xfdj\x02\
+\x11\x80\x07\x94d\xda\x10\xd4\xde\xf5\xaf\xcf\x00@_\xdf\
+\xcd?\x86u\x07\x8c\xfb\xcf\x03\xb4\xfa\xbd\xcb\xb0x\xbe\
+\x1c>\x07\x92\xfb\x93\x09\xe48@8\xd5\x9c\xd9`\xa9\
+\x19[_\xc6\xc5\xfa1\xcf\x1cl\xa3\xba\xed\xd8\xaeR\
+\x9b\xaa\x0c\xb4\x8br\xe8\xc0\x02\x08\xca\x5c\xa1\xeaff\
+\xad\xe6\xcbX\x8b6\x00\x0d%\x02\x97\xd4\xc0\xfa|\xe2\
+\x9c\x00(\xd4\xf1\x5c72\xcd\xf5\x5c9\x0c2\xef\xda\
+\xc0\xe8\xce\x90%$EI\x06\xbc\xdc3\xac\x13\xbb\x82\
+\xe0\xda?\x87\xf1\x96\xd9)m\x07\x0c\x1d\x8e\xb6\xccS\
+R\xbe\xd5\x92C\xd2\xf5\x81\xad\xfd\xc0\xbe%\xc3\x94\x94\
+\xcf\x12\x89\x03\xb0\x9e\x14\xd6ep\x01\x05\xae3\x01\x04\
+b\x93\xe5\x90'#\x05C\x0c \xa5\xd6\xb5(\xa3y\
+\xff\xa8\xeds\x983[\x07\xec\xa4\xe3H\x94k\xfb\x83\
+\xb0\x8e2\xec@\xcf\xeb\xdb<7\xac\xa3\xae\xaa\xdd\xe6\
+\x90\x0aH\x88W]c\x01\xb0\x8aZ;\x96V\xe4|\
+j\x04\x89\xc8\xa4\xbev\x09\xdc+SF\xd4Ki\x88\
+\xcc\xbf\xfb\x97\xc9\xfc\xc7%`+*\xde;\xd3a\xa4\
+z\xae\xf4A\xf7\x81\x7f\x0e\xeb\x1c\x86\x04\x9c\x0a \xa1\
+zM\xdcP\xe6\xff\xfeK;\xc0*\xb9\x00\xec\xa2|\
+\xaa\x99\xa5:\xfe\x1ba]@\xee<w\x0e=\xaaY\
+\x01>D\xdd\x88\x84\xd5\xbe\xcbAJ\x86B\xb5\xeb\xb2\
+^\xb5\xcd:.l~\x9fg\x86u\x19\xef\xd4v\xa8\
+\x12\x15\x0c\xa5\x0b,\xc0\xc8\xee\xfd\xbb\x0f\x848\xd1\xee\
+W\xc2\xe6\xe7\xf1\x84\xe9\xf1Q\x0a\xb0\xf9t\xd8Zk\
+\xbb}MX\x02\xd3\x97j@R\xeb\xf3]\x22]\x09\
+p\xec\xceY2\xec\x95\x91\xbfO\x8a\xd0\x05@\xf1\xe2\
+U\xbc\x8d_b>\xed\xae\xb2\xcc\xd3\x02 \xb2\xc6\x1d\
+\x13\xa2\xfa\xd5c\x02f\xfbQ\xfb\x80\xcc\xeb\xee\xe5!\
+;\xbb\x96RT\xfb\xb3\xdc\xcf9f\xd1\x0c0\xa8\xca\
+2\xa3\xd5\xd5B)\x8e}\xed\xac\xc1Q\xb6\x7f\xc8\xa4\
+I\x18d)X\xcdo\xddr\x00\xbaj\x96\x05\x5cc\
+\xe9Tf\x94\xd4~W\x89\xca_\xec\xfegc\x16=\
+~\xf3'\xd1n\xb2\xf6\xcb\xb3\x97\xb6\xd0\xed\xfa\xe2:\
+~3\xbb\xda\x9c\x7fa\x5c\xb4\xa6\x87\xc1\xac\xb8\xeb\x02\
+\xe0`\xf8T\xa9\x83\xf9\xa3\x1b\x0e\xffM7%\xeb\xe3\
+z\x09P_m\x09\xa01\xd3*sL4\x8fx]\
+f\x86\xab\x9bB2\xa5\xa8\xfe\x17\x80\x9dL\xbd\xf9\xb9\
+\xcf\xd6\x80\xd9\x7fn\x0c,\xfe\x92\x0c\xb9\xf3\x99(\x1b\
+?k\x04\xa2%\x1e\x00\xc7j\xe1\x05\xc6\xb9\x0ek^\
+\xa1\xb4\x13\xffs\xbe\x09\xa8\x9d\x1b\xd6Qv)\x99\x1e\
+\x166\xdf\xd7g\xc3\xba\xf3\x8d?\x801\xe1s\xd3\x7f\
+\xdb<:\xac\xebn\xe2<\xd0\x8d\xc6~\x8d\x99\x93\x0c\
+\x9a\x0a@\x5cO\x8a\xbd\x1e\x06\xcc'\x83BM\xb9\x12\
+\xa8\x0a\x84\x05\xa2\x00\x0eL\x14\xe2\x9d\x18\x879\xee\xbb\
+\xdf\x0a\xeb\xf6o\xe2\xc6\xce\xd5\xdcw\xf8\xaf\xba\xcf\xc8\
+\x84n?\x1c\xd6%\xe6\x00\x9c\x027\xe7\x1d?fL\
+\x14\xeeg\xfc\xe0>\xf9\x03\x80\x8b\xb1;\x96\x9a\xfb\xbc\
+\x8f\xcdM\xc2\xba\xfb\x17\xf8Z\xbf>\x9f_\xees\xf9\
+\xed\x02C\xbfo\xbd\xc8\x0c+\xc5\xfa\xdcR:Z\x00\
+7\xe0\xd0:\xc2t\xd1\xbe\x0e@d_7\xef\x04\xe8\
+cbqdF\xf3\x03\xc5\x1d\xfc\x0d\x09\xb71\xc3n\
+\xfc\x05\xa2\x00\x8eQ\xbc}\xd4\x962\x1e~\xee\xf3\xad\
+?~\xb9x\xca\xfb*\x85\xb0_\xfb\xc2h\x1f\xda\xed\
+\xd5\xab\xae$\xc9X\xaay\x010\x18\xc5\xe5\xc7\xf8q\
+()\xa9\x12\x01\xa5\xb5\xe2d\x9aO\x9e;F\x97q\
+\xb2\xafH\xa8z.\x9e\xbbyG\xfb\x0b\xc3\xc3\xf3\xb7\
+\xce\x00B\xc6\xc5\x97x\x16C\xd2\xf8y\xcd\xfb;X\
+\xc8\x12\x0a\x17\xca\xbc\x05!\xa3\xaf\xed\x9f\x07sFR\
+\xf68zb\xfe\x10q\xfav\x97\x81\x8b\xc79u\x03\
+\x13\xc3&p\xb8H\x1el\x97\xed\x02\xff\x14\xf1\xab\x89\
+\x19\xc3t\x5c'\x1ax|\x0b\x05\xd7\x7f?&\xc5r\
+\xc6\x80\xd9\x84\x1d).#\xd5\xa5\xd70\xf8Q7\xa0\
+\x02\x1d\x13D\x061\xfa\x95^\xfb\x5c\x90]\x1b\xb0@\
+\x065ih\xbbW\x19\xda\x8b\xe7\xcf\x05Pc\x1fy\
+\xefk\xe1\x98\xd0\x02d\x07\xd2X\xdb\x02\x900\x9e&\
+\x9a\xc0\xd6\x81\xe1s\xf3\xf36\x07S%V\x09\xc8\x8f\
+\x07QDm\xf8\x1c\x14\xfeN \x96\xa5\x04u\xddj\
+\xbc\x0fff\xb1~\x9e\xe3O\x8c\xc4\x86\xed\x15\x85\xd1\
+\xf3\xb5\x10\xff5k\x9a^\x95\x8e\xab\x8d\xc2s\x90A\
+\xd5^\xd1\x86\x8cr.c\xacm#\xca\x97\x8d\xd88\
+\xa9\x05\xfb\x83T\xc7\xfe\x9d\xa5\xafsi\x0a\x9c\x1c\xd6\
+\x89\x11\xa6\x1aoQ\xe3\x04t\x02<\x81<Q\xc0\xcf\
+\xe7\x86\x96\x0eg\xa9\x0b\xfff\xb3\xb5\xdf\xb8\x9a9\x1b\
+\xb8\xcf#\xb2\xa5V\x0f\xf0\xc4\xa11\xdf\x01;\xd6\xa7\
+L\x9f\x83M\x80\x83i1P\xbb\x0a9\x15(\xfa\x1e\
+\xe2\x0b\xd01\x9f\x94\xe88\xb0\xa8\x13s\x80\xb2\x96\xb8\
+\x80:\xe3\x9e\xd7\xa5\x86\xb3\xa8\xed\xbe\xc6yc}8\
+\xd0\xfan!gv\x1b\xac\xf5\xe2u\xc8\xa4U\x09\x82\
+\x0d\xd8\xfaU\xd2D-\x99z8q\xa6\xd3\xc2:\x87\
+V\xa0\xe5`\xa0\xb1\x01\x105\xdf\xfc\x5c\xed\xa2\x12\xab\
+|~E\xcdG\xf9\xcd\xf6L\xc5\xd8\xe1\xb8p\x14\xac\
+\x97\xa4\xec:\x08Q`7\xc7\x85u\x9a\x16\x0e\x105\
+\x83\x90\xe8|\x8e\xbb{-\x8e\xdc\xee\xa6\x99\xa1\xcb\x0c\
+\xf2\xf6\x81a\xeb\x81\x84\x19\x80y\xa2\x1d\x1e\x87qz\
+lX\x17\xe8R\xa5\xce\x921\x99\xcf*\xd1zpX\
+'\xbeh\x1c\x89\xb7\x12M\xca\x9adT\x5c5\xd7\xd5\
+\xce\xcd<\x15\x10\xb4\xaf\x95q1=.l\xfe\xf9\xdb\
+\xc3\xd6\xfd\x91\x96\xc0\xf6\xdea\x87w\xb9\x10\x88\xefN\
+M\xf5{\xf7\x8d\xe1`~\xfdL\xad\xef\xc5!k_\
+\xddz\xe3`\xc8lf&W\xe6\xa1\xdan\x09XS\
+\x1d\xbc\xb4\x0c\x00\x0d\xc4(3\xa0\xd8\xfdLX'B\
+\x88\xaa\xcc\xe1\xcf\xf5\xbf\xb9_X\xe7\xc88'8`\
+\xd6\x05\x06\x92}\x94:;\xe0\xe4\xa4\xac\xfd\xd5\xfe\xd0\
+|\xb4\x0f%5\xbb\x00\x95\xa4\x9cNO\x99\x9e:=\
+\xb5\xab\x1d\xff\xdc\xd2\xaen\xf3\x8e\xb0\xf5>k\xbf\x07\
+\xe0f\xb7\x83j\xaf\xa6\xf4@\x00\x91%&\xdb\xbb\x86\
+\xb5\x9a\xdd\xa5\xcd\xe2\x91\x0b3czn\xd8\xdaN\xad\
+\xb4I\x04\x1a\x0f\xdb;e\xef\x94\x96\x19k\x0c0\xa5\
+l-\x8f\xfd\xf9\xa6)\xf1\x82P\xffo\xbd\x81z\x07\
+K;BZ\x0a\xd7\x98\xef\xfe\x1a]\xa0J\xfd=\x00\
+\x8cw\xad\xebF\xe9C1\x90~9E^e\xca\xbf\
+\x92\x8e\xa0}\xec\x82\xe9\xd78\xcf\xae\xbd\x00\xca\xbb\x13\
+\xc3\xba\xd2\x9d\xdcgK\xbcT`\x97\x9a-5\xbf\x00\
+\x01\x008L%\x00'\x07\xff\x84\xf9\xf4:a\x05\xb6\
+\xaa\xd6\x1b\xf3\xe7\xcas@}\xe5\xb5\xc4\xaf\x00\xab\x17\
+\xe4x9wi5\xe8Z\xa2\xf6?\x19A\xbb\xdb/\
+m\x9b\xa7\x7f\xca.\x0e\xf7[\x183T\xfa\xf7~)\
+5\x17\xee\x98\xf3]W\x93d\x0cMW\x0d\xeb2\xc0\
+\xd6\x155l\x80\xf7\xe3\x9b\xad\xa5\x1f\xfc\x1c\x99{\x89\
+\x8bd\xd8U\xa6T l\xbft\xfep\xa4\x13`\xa3\
+\x1e_\xda\x05y\x1f\xe5\xf7e\x89B\xa9\xf5\x03J\x94\
+R\xf1\x0be\xe2\x93\x01T\xe7r&\x12J\x149\x19\
+e5\x8f\x5c\xcf\xd8\xee\x1a3\x05S\x03SI)\x0f\
+1B\x00=\x00#\xe7I\x01\x8b\xbax87SK\
+\xa4\xc6ol\xcf\xa6\x94\x0f`\xebyf\x80Z]Q\
+Fm\x0d\x22\x99\xf6I\x8cGL>\x09\x95<\x7f\x9d\
+\x1b\x05Lg\x80T\xfb\x15\x11\xdcO\xb6\xa2\x99U4\
+0\x01\x89\xc3\xfa\xa3\xf33\xf8)\xe6\xc5\x988C\x81\
+\x07\xec?-\xac;\xbfi\xb7`H8\x9f\x00\x04\xbe\
+w~\x00\xc2S\xeb\xa4\x9e\xa3\x80\xda\xbc@\xb5\x97\x80\
+s\xae\xf0\x0f\xf8A\xfe\xdd\xdfY\xd7\x02\x5c\xfe.`\
+c\x14]\x17\x17\x0dm\x9dG&\xef!]\xdd>\xd3\
+%\xe6\xc6nR#\xe3Ab\xc3\xfd\x8e\xaa\xf8>\xcf\
+\xdf{\x1e\xfcATw\x1a\x10c\xfbA\xf1\x9b\xfb\xa5\
+\xe5\xa1\x94J)\xe6\xc0\x04\xa8q\xf3\xb9\xa3\x96\x81\xf7\
+s\xce;O\xfc\x1c\xc0)\xfe\x04|e\xa2\xcb\xba,\
+\xe6\xad\xb8a\x04\x00$v\x88\xc3\x03\x02090\x1d\
+\xf8\xb5\xd6;\x7fX\x9ch\xbc\xc7\xae\x159O\x0f\x1e\
+\x22\x9a\xf1\xd5s\xa1L\x1c\xd1\x1a\xc1\xad\x99\xf8\xb1\x8f\
+\xb7\x00\x17\x22\x92\x22>\x15p\xba\x10@\x80\x0b\x82\xac\
+\xec7\xf2\xf9\xb2\x81\x1d\xd5\x05\xf4&@|\xda\xf9\x86\
+\x8cd\x1f\x98\xf7\x81\xfa7\xbb\x00\x06\x95\x09\xb5\x97\xc8\
+\xdd\x85Z\xee}]\xc8\x168\xea\x8d\x89l#@U\
+\xc2lp\x10[@6n\x81\x80\x052Nd\x19v\
+\xedw.\x94\x8e\xecU\x87\x1a\xf5qA\xa1\xb6\x08\xa0\
+\xf2\xf3\xaa\xe4\xc2\xc2\x01h\x08\xec]\xf7\xf9\xc2\xba\xeb\
+\xee\x9f\xc7\xae\xabu\xc9\xb6>\xd5\x06e\xa4h\xdb\x88\
+<g\x22\x902\xd0\xee\xd3\xb8\xa9I>;\xdb\xfd\x99\
+\xe06D5g\x02h\xd4F\xe3\xc01\xf5\x9c\xc7\xc0\
+\xd4\xab\x80\xd7\x01\xa2-#u\xe4\x01H(\x8a\xe1\x91\
+\xcbB\xdd\xdc!\xb5\x06NY\x1c\xc1\xbdc7\xb35\
+\x84\xb5\x1d\xc0\xd5F\x10\xa5>\x1d\x09@@9\x1eT\
+\xd1Q\x92\xd4\x0e\xbb\x9f\x8b\xe4s\xb9yff<\xa7\
+\xcc\x18\xb9\xae\xaa\x1d\xb7\x91\xa6#P\xa2P\x1c\x17\x01\
+\x87L\x87\x0d\xdcFi^@\x82m\x94c\xc0n\xa3\
+3/\xcc[\xf3\xd9A\x8e)a\xa3\x14\xd8\xd8p\x88\
+\xb7$\xe5XF\xb3\xc4\xb18\x18>\xc7\xf5\xd9\x98\xc6\
+\x8d\xcb\xb8\x99O\xbe7o\xbd\x9e=\x88M\x8e\xaf\xe3\
+~f\x1f\xb1^\x1c\x00\x0e$\xed\x9d\xec\x07\x09\xbcl\
+\xde\x12\xd61\x0bd\xe8\xb5\xc7RB\x82\x19\x00@\x90\
+\x09\x02 \x0a\xe8\x01PD\xf1\xd2a)\xaa\xbd\xf9\xe1\
+:\x94\xb8\xa8\x19\xb6\x0f\xd0<p\x90`@$%\xbc\
+\x1c&\xe3\x0b\x98\xf2\xbe\xf6o\x99\x9a\xfb.\x99\xa3\xcd\
+\x19a\xddu\xa4\xe8]e\xd8\xef\x156\xff\xde\xdd\xc3\
+\xba~\xd2\x0e\xbc_\x0b\xeb\xb4\x1a\x12\xb0\xda]2l\
+\xde\x1e\xfe&l-U\xd0\x16t\xf7\xd6\xb0\x8e\xd2m\
+\xdez\x9eY\xcaR\xb5\xcc2!\xf7k\xb6\xb7\xf7g\
+\xcd\xcaA\x98^\x1b\xb6f\xac\xaa\x0d\x0f@\x0d\x90\xa5\
+\x16W\xa0\xa9\xdd\x99\x8c\x15 \x82\xe6\x0bQM}\xb2\
+}a\xde\xe4\xfa/\xe6\x85\x03\xdczs~\x0e]6\
+\x046\xb5\xafp\xe0\x95z\x98oY\x1b\xad\xb6|s\
+\xaf\xb0\xae\xad\xa3s\x89(\xa8sW@#\xa37\xd6\
+\xfe\xdf=\xdb\xe7\xc9\xa4\x0a,S\xfc\xad\x9e\xbby\xaa\
+f\x9c6\x86\x12\x80\xdc/\xf6\xdf\x196/\xdf\xdf\x0e\
+[\x03^\x14N\xc0Te\x02\x7f\xb0\x9cC4S\xcc\
+\x97\xdd\x11\x0b\x05{\x9e\x9b\x0b\x00\x81\x02\x9a\xfd\xea\xa7\
+7\x87\xad\xf7=\x9d\xba\x88#n\xef\xbf}\xc0\xf6\x01\
+\x0d\xe8\xf9\xabi\x0e\x5cB\x1b?\xd4\xf1\xe7\xd9\xd6\x80\
+\xb9\xd2\x9e@\xdd\xc4\xfc!\xa2&\xd3\xf7\x94\xcc\xac\xd3\
+F\xd0\x061\xcf\xcd\xbdG\xec=\xbcu\xab\x08f\xc7\
+\x1f\x1dB]_\xc4\xf8\xf2\xdc\x98\xd7\xd8\x22\xc6\x86)\
+\x03\x88\xb9Yf\x96\x05\xfe\x80\xbacR\x03\xe82\xd9\
+\x06\x15\xd3&\xa9\xedsp\xd42\xa5s\xb8\xbf\xf8'\
+Y{]%3j\xbds|k]\xa1\xe4\xa3\xd6c\
+r\x06\xd0u\xea\xea7\x08\xd0\x0a`L\x0d\x9a\xaa\xd1\
+\xcf\xd2\x94\x0a\xa8\x042D\x15\xbf\x94\x09\x15\xe7\xc7.\
+\x1d\xf4\x5c\x7f\xd6q1#R\x0d\x9e\x96P\xe3\x87\x1e\
+\xb9\x02jDCu9\x01\xacT`w\xe2\xfc\xae'\
+v\x197\xebQ\x89A\x02\x5c\x98oJ;\xaa\xbd)\
+1\xd4\x04\xd4\x0a\xe8r.Y\xaf\x1c}\x9aX)r\
+Z\xfb\xbb\xcc{\x96\x9c\xd4~#\x83'\xf0\x03P\x0c\
+b\xd4\x05\xc8`\xe8\xf9|_\xfc^\x81B\xfa\x1d\xba\
+\xc9\xd4\xbc\xb2_`\x0cH\x0c\xd10\xa0a\xc3\x8f\xe3\
+\xbf:w\xed\xe7\xb7\x0a[\xc5\xf1\xcaOP\xf2`\xbe\
+\xff~X\xb7\xff\xf1\xb7\x88\x99\xb9\x0e\xdd\x8dh\xcdh\
+{\x09\xb8\x14\x88)\xa5\x22\xeah~\xd1>I\x7f\xa6\
+J\x97\x1e\x1e\xd61q\x94\xcc)a\xf9\xe7\x0c\xfc\x04\
+\xce\x00\x03\x00\x05\x06&@\xc5\xf9\xe7U\xbb\xbe\x046\
+; k)\xad\x13\x17$\xc0R~\x8a\x00T\xc0\xa8\
+\x94C\x80\xe9\xf3\xf8}\x02T\x00\xab\x00\xcf\xf7\x98\x03\
+\xfcr\xc0\x00\xbf\xdd\xbc\xf4yD\xedhN\x8d\xfe\xbd\
+\xf9<f\xea\xc7\x12\xcc\x91\x89m=\x00\xc8P\xd5\x95\
+\x22\x0b\xc8\xc7\xd2\x8b\x91I\xec|7\xaf\xbc\xff\xe0\x9f\
+\x1d\xd6N\xdd\xab\xfd\xc5\xe7\xf8}\xd77j\x09y\xfe\
+\xe2\x0c\x9f\x0f\x10r.\xba~\x9f+\x11\x9ab\xb3\x05\
+D\x8c\x22\xee\x9e\x0b\xc0B<GL\x9b8 ?[\
+)\x93\xcf\xe7\xc7\xf1\x87\x94&\x8f\xfe\xeb\xd8\xcep\xd4\
+l\xf0{#\x90\x91??X\x13'\xdc\xc3\xa3\x13\xb9\
+\xfaH\x17`B\xa2\xae\xd6\xc8Y\xcbFq\xfdt8\
+/\x9e\x0e\xd4\x15\xbb\xda\xda\xf8\xfe\x84\x5c\x98\xc7\xe5\xc2\
+\xb9X\xa7\xee/\xf0\xfff\xd3W_\x99\x04\x11>|\
+\xb5{\xa0\xba\x0a\xa4\x03\xdf\xda\xaf\xbc-\x1d\xeb\x8bd\
+\xa0z\x8dn\x22\xc74\xf9\xfe*\x02\xd8n\xb3\x13\xa1\
+\xa8\xbe\xaf}\x9f\xcd\x1e\x19\x01\x04\x08\xa8\xb4_\xd0v\
+O\x8d>\xaa\xb5W\xb5\xd5\x16\x06`ad$\x8c\x07\
+\x86\x1a\x8f\x9bg\xe6\xcf\xefA\x92\xbc\x8f\xf7\x95Y\xce\
+\xeb\xac\xbf\xff\x85\xb0\xce\xb1\xf7\xe0m(\xbe7\x11\x8b\
+\xaa1L\x1c\x13\xeb'\xf57\xb5\x90\x5c\x7f\x8e\xeb\xe6\
+\xc4<\x98\x5c?\xf5v\xa5\x14j\xd0W\x84x\xd9\x08\
+=\x0f\x19_\x13\xd5\xc2\x1b?_\xe0\x89\xfa\x92}u\
++\xd3iC\x94!\xd3\xc7\xf6\x22Y+v\xde\x04B\
+\x00\x0e\x1c\x16\xe2{2\xb0\xefY\xdew\xef\xac\x14%\
+\xf4|3\xc0(\x11>\xfdn\x93:]\x011 \x03\
+\xe0\xf3\x95\xbc\x9ft\x90\xabdB\x8d.\x91\x1b\xed\xed\
+dB1\x0e\x92\x82Z\xb5\xc1\x9e\xeb\xaaM\xb0|?\
+\xb6\xdb\xb3n\xa9\xc1\xea\xbb\x9e\x01W1'\xfc\xfe\xda\
+&r\x99\x0f\x1c\x0e\xaf(\xf2\xef^(\xb9\x85<\xda\
+\xe8\x86vv\x15\xf8\x99g\x00\xa0\xf1@I\xc7cs\
+\xf1\xb0\x8e\x9aj\xbd\x0c\xf3\xea0\x00\x0b@\x96j\xbd\
+\x02\xd2\xc32\x9aj\xe8\x1dT\x0e\x08\xfb\x0b\xb5_\x07\
+/\x00\x0d%\xdcA \xf3\xce\x91s_\xc69E\xce\
+\xd4P\x97#\x9a\x94\xf3\xd2\x04\xc04\x00\xe8@\x8c\x1d\
+(\x0eF\xcf\xd9\xfa\xcb\x8cJ\x89ri\x87f\xdd\xa4\
+\x0a~\x89/\xa9\x09\xa4\x01\x92Z\x00\xb5NP\xe82\
+\xa3\xba\xd9\x86u\xfbjf\xf4\xca!\xb5/&\xf5\x11\
+\xb5\xb92\xfe\xda\x0d\x01\x98<g\xfb~\xb6\x17+\xe6\
+I\x06\xc6\x15h}9\xac\xcb f\xcdt\x958x\
+_\x07\xaa\xf6Iy \xa3\xc0NW\x0a\x9b_o\x1c\
+\xb6\x02\x1c\xa6\xf9\xe6\xaf\xc2\xba\xf1\xca\x0cQ\xd5\x82\x0a\
+lPIQ\x7f\xed\x8f\xbe\xd7%A\x7fs\x8e4\x11\
+,\x22c\xd4\xd3\x05\xe02w2F\xd9\xef\xbb\xda\xbc\
+i\xe3\x08\xd8\x11\xa0kG&s6\x9c_\xd5\xf6,\
+?\xa7\xa8\xfa\xfa\xa9\xfb\xf7\xd1!2\x0f9h\xd6%\
+-\x89SS\xa5\x9eJ\xbc\x92$Z%YK]Z\
+\x0eJ\xc2\xd2\xb1\x99\x8e\x0d\xeb\xc6\x8b\x96@\x026\xad\
+f\xff\x0f;`\xd8\xbc\xd0\x962\x81\x80\x0a\x8c\x95\xfe\
+`\xb6\x00\xb2\xcf\x5c2\xdeD\xd5\xa6\xff\x16\xd6Q\xf0\
+\xbd\x9f\x9aO\xeb+\xf7\xb1\xda?2\xe3\xb7\xf9\xe8\xe6\
+\xdf6\xff\xd6\xd54\x03j\x94\x96\xe9&\x92\x0c\x15\x0c\
+\xb5\xddI\xbb\xfb\xec\xee\xd3\x05\xf4\xda\xb2^6E/\
+\x89?\xa2j\xda/\xd4<g)H\xad\x1f\x8c!\xeb\
+&_\xab-\xa5\xe7\x07\x08\x16\xf0~0EI\xffj\
+\xa9%\xad\x80W\x00\x06\xe0U\x13\x9e\x0e\xea\xf4\xd1\xb0\
+\xd6\xbdb\xd1\x80xb\x0644\x9cn\x13\xd6\x98)\
+\x0dp\xd2\x0eo\x9es\xcb\xf3\xa3\xfd\x91@`\xd5\xfe\
+\x0f\x8c\xcaR\xf1\xbfcX\xd7\xa6\xf1\xd2a\x1d3\x13\
+\xf0\x91\xcf\xcd\xfc\xab\xf9@{\xe7>9\xeej\xb6\x05\
+b)\xdeV\x9a\x22\xe9Xo?\x13\xd6e\x94\x93)\
+X\x80?\x00m\xd0\xec\xa9\xfdX@\xa8\x94Gf\xdf\
+\xb9\x9a\xe2\x85\xf5=f\xe8\x83\x93Y(\x10\xc4\xecs\
+\xee\x99\xcfJ\x07\x88\xfb\x12\x03\xbb\x5cXW+o\xbf\
+\xe6\xe7e\xe9T\x95\x10e\x1b\xd6\xf2W0\x0a\x92J\
+_\x22\xcc\x00\x13\x88\xcf\x1a\xe4\x00\x00 \x00IDA\
+T\x01\xaf\xe7\xe5<\xc2\x04\xe0\xa7\x98?\x02\xa0<\x1f\
+\x0a\xf8\xcc\xfb\xaa\xf3\xc3\xfe\x91%F\xbb\x1b\x85\xad\xeb\
+\xb2\x9e\x17`\x10\x13\x03#\x22\x99;\x00\xc8z_\x80\
+:?\xdd\xfc\xfe\xc2|\xba\x7f\xa1\xab\xe9\x17 JX\
+\x00\x840$Q\xc8\xc5E\xfcq\xf7'P\x04\xac\xe7\
+\xe7\x948\x1b\xff\xc1\xfeN\xb4\x9a\xc6\x0b\xffAf\xde\
+\xe7IT\x18o~\x95q\x1f\xf7k\x19h~\x8bR\
+e\x7f\xef\x8b\xdf4\x02\xd8\xe2\xa0\xf1\xf7\x87\xc4j\x89\
+\x97\xe69U\xf71j\x04\xa4\xbfY\xfb\xaas\xf3'\
+u\x03\xf0\xca\xcf\x1f\xafC \xcbo\x18\xbb6\x8c]\
+\xdc\xdc\x1f\xe0\xdcx\x8d]n\xc6R\x0c\xc0\x81\xdf\x97\
+a\xd7F\xd0\xe7\x8e]\x13>?\xb4A\xb7\xcf\x9b7\
+\x02\xf9\x11h1O}o\xfc$V\x00\xdb\xdf\x0a\xeb\
+\xfcU\xd7-\xf1s\x91\x14\xdb%\xce\xcd\xb1\xc1\xcc\xa6\
+I\x05P\xf150;\x0e\xb6\xe9\xf8\x91\xce1?\xab\
+a\xef\xcbD\xf9\x5c:\xce7\xe8\x0e\x16\x08\x97\xc04\
+\xf0\x8b\x8b'\x95\xe42]\x00\x8d\x12\xe8{\x19\x89\x14\
+\xe3)\xc7^\xe6\xfe#\xa9\x8e\x8bq\x10a\xe2\xd7;\
+F@|\xfa\xd1\xdd\xe7\x09\x04t\x01\x88\xd7\xf3u\xbf\
+\x97\x80\xc6a\xb5\x0f\xeeC\x80\x06\x81\x19(\xdbE\x81\
+D\xe1\x1ekf.vh\xadyQ\xff!\xaf>\xc7\
+\x01>\xaav\xfa\x1a)\xca\x16\x96\xf1B!\x93\xb1\x11\
+\xf8\xb8\x9e\x11\x11\xe2\xd0\x8c\xd4\xe9\x111\x1ak\x5c\xc6\
+\x059\x04\xfc\xb5@\x5c\xbfR\x89o\xa6z\xba\xf7\x15\
+\xc8\x9cw\x00\x1e\xce\x97?'Jtlv+\x90\x81\
+\xa3jl\x03\xe7\x18;p\x89\x96\x09l\x1d<6\x0e\
+\x19^\xd7\xeb\xf79,\xa8s\xaf^\xfa\xc6\x175[\
+\x0d%\xc7|T\xf3G\xc91_\x5c\x9f\xe7\xea\xa0$\
+\xae4nX4\x0b\x92\x02X\xfdw\x8d\xa3\x0c\xb9q\
+\xb2^\xf2\xe7\xdb\xeb\x86u\x07\x14\x84x\xd4d\xb0\xc1\
+98\x04\x92\x09\x1c\x15\xd2\x0f\xa0\x18\xd4@\x0fk#\
+\xe9y\x9b'\xae\xcf\x81\xe8\xc0\x11\x80\x11\xad\x92\xb1P\
+*`=\x08\x98Q\xd5\x940\x98\xdf\x17\xeb\xc4\xba.\
+\xdc\x05<\xf6\x09\x0c\x93\xb5=\xe3\xa1\x19~\x07\xa5\xeb\
+2>2\xfb\xfa7\x0b\xa8\x5c\x87\x00B\x86;\xf7\x81\
+\xcap\x9a\x1f\x83:w\x05\xce\xc6%\xa9tU\xa3\x9b\
+\x99\xffz\x9f\xb1v-\xfb\xf6F/\x8b\xd6\xcdB\xdb\
+\xc1\xac\x1d\x97IB\x81\xae~\xcc2{)\x0eU*\
+\xef\x00\x9a\x14U+\xe0\x81\x98\x95>\xf62)\x0e(\
+\x99\xe5\x14\xcd\xab\xae\x03\xd9G\xbd\xd6\x15\xaa1j\xb6\
+LY\xaa\xab\xd7\x17*\xbavMjA9>\x00\x1e\
+\xcf5\x9f\xc3\xe6\xb2a]F6kQ\xd5\xc4\x8e\x00\
+L9\x5c\xc65\x1d\xf8\xe9YakW\x04\x00\xe3\xf6\
+\xc1a\xf3\xeb\x11a\xdd\xbc#\xf6v\x8b\xb0\xaek\x8a\
+\x0c\x81\x1az\xe2\x842?\x98\x18\x98\x0d\x1cb\xfb\xbe\
+\x03>\xe7W\xb5\xe9K\x06\xd4\xee\xf8\xb0\xce\xd1\xcf\x80\
+\xa4\x1c]\xe3\x9d\xeb\x1d\xf5\x96\xda\xb6u\xbe\xbdNX\
+'\xe2\xa9;\x80\xbe\xd0T\xab\xd5\xb4c\xa8\x98\xc7\xda\
+\xa7\x0d\xda9Dl\x0b0\xa0\xce\x9f\x8c\x87\xcd+\x97\
+}t\xf7\xd3a])\x02\xc6\xc0\xfb\x13\xe0\xccv\x86\
+\x15\xe8\xd0\x8eP\xf3|\xdf\xb0\xb5dh\xbayX\xa7\
+\xfdr\xd2\xde\xbd\xf7\xee\xdd\xb4D\x96\xebH\xc0\xa62\
+\xd2\xff\x15\xd6Q\xda1o\xae\x94\xe2o\xf9\xbe\xbb\x1b\
+\xa5\x88\xe3\xffL\xe0\x17\x93M[9\x0c\x16\x22r\xba\
+](\xd9\xd2\xbd!\xbba\xd4\xf8\xdaw\xff%\x9f\xeb\
+\x85v\xc7\xec\x8e9\x04\x08Y\xf6+%^\x8f\xcd\xfd\
+D;\xdd<\xf7\xaa\xc4\x03\xf0/\x83\x9a\xeb\xa7J*\
+\xf4\x83\x16he)\x8dn0\xdb\xeb\x85u\xeb\x11c\
+&\x01\x9cb\x02\xfc\xaf\xb0.\xf3\x9d\xda\x0c\x02\xca\x22\
+Z}83U\xd9vw\xf69\x16\xbf$\xdb\xbb\xe9\
+\x12P\xfe\x89\xfd&\xcfy\x81j\x01\x04\xda\xea^.\
+\xd7\x9f@\xccsJ\xad\x0bT\xfdr\xe8\x89\xbf)\x19\
+#\xa6\xea\xfa=o\xa2\x95\xc6\x1b@`\x9fH\xa0\xc3\
+\xfa\x9b~9\xac\xab\x95\x05\x14\xd0\xc8p_\x12IJ\
+{d\xde\x93\xca[\x99:\xedz\xed\xc7\x8f\x0c\xeb\x00\
+\x84\xd4rQ\xe2\xb7\xbbSX\x97\x11\xb4\xdf^\xba\xc4\
+\x99\x97}'\xbb\xd4T\x06\x9d\xdf\xc4\xbf\x03\x8c\xea\x8a\
+\xf3\xf2\xb0\xee\x5cJ\xcd\xa5\xda\xa7\xec\xbf\xa8\xec\xba@\
+\xfd]X\x07\x5c:_\xf9\xc1\xceu]50\x8e\x9c\
+\xa7\xf2K4[t]p\xff(\xd8J=\x9d\x0b\xfc\
+_\x01\xb1\x00\xd2~\xec\xdf\xf9\xdf\x122\x8f\x0d[\x03\
+U\xc0T\xcd\xef;\xb4\xfe\x13+\x03\xd1\xfb\xf0o\xf9\
+S\xfc<\xfb\xb3\xb6\x8fJ\x08\x88p\xf6\x09\xd3\x00\xee\
+~/\xack\xffx\x9d\xb0.\xd0\xa3-B-\xde\xfd\
+\xd1\x12PR\xeb<v\xee\xb8>\xfe\xee@\xad\xafv\
+{~>f\xecs^\x94f\x89\x8c\xb5yIS\xc6\
+\xd7X\x9b\xcf\xbf2\x1f\xd3_\xac\xd2\x06~\xe1\xc0\x00\
+\xad\xfb\xe6?\x8f\xe2~\x02x\xdfK\xc4\xf0\xe3\x9d\xf3\
+\xbeF\x0d\x81\xb1\x84bH\x04\x95_m\x9e\x8e\xed\xb9\
+\xc7\xb6\xd5\xfceZ(\x98\x0b\xe6\x83}\x83\xff\xdf'\
+\xb0\xbf\xd9%&=?\x9f\xcbO\x010e7\x98\x1a\
+\x1f\x80\x81\xf1\x96@\xf4\x0a \x95h0\xef\xc5\x85\x09\
+\x90\x14\x131\x99\xee\x87\x95j\x00RF&@\x95\x00\
+|*\xdb\xb1\x1c\xd5\xe4\xdf\xd6\x80&\xd5^\x0f\xc9,\
+\xee\xe7\x00\x9c\xdd\x05\x08212P+\xe5\xf9\x22\xcd\
+\x91\x8fp\xe3\xb8N\xbc+\xa8\xf4\xc7w\x9f\x03I\x13\
+\xd8\xf7T\xf2\xf3t\xb5\xf1Wh\x9do\x97\x0d\xf7j\
+\x1d\xf5H\xa9A\x84MW\xea^c\xdb\xbe\xd2\xbaQ\
+\x16\xf5\xc5\xef\xcb\xe0\xdb\xd8\x04 2\xdc\xc4\xc9d\xd8\
+{\xa6\xc1\x0f\xba\x890\x0c\xe8a\x03mb\xdbHM\
+@\xed\xaf>\x9b\xd45\x1b\xcb@\xe5\xdf\x5c5\xd5{\
+\x05DcM\xccO\xca\xe4C\xce\xd5\x9c\xfc\xdc@\x85\
+\x19\xa9\xf5#\xc2\xe9\xdfG\x06\x80\x85\xe6s\xf6\xa4\xd4\
+\xf2\x95\x8a\xf1g\xb3\xdf\xbdZ\x17\x07\xd4\x89I\x19\xbd\
+q\x22\xc1\xda\x84\xa9%\xbbS\x22\xef\xa7\xa6\xc3\xf9\xee\
+\xac\xb5\x85\xa4\xfevX\x170\xa9\x1dW\x92\xe0\xc00\
+\xfe\xe3\x02::\x01\x81\x0fe\xbb\xc2\xc7\xa4h\x8e\x9a\
+O\x07\x8f\xf6MY\xb3\xac\xadY9\xb2\xb7\xca\xfb8\
+\x98\xcfs\x05Z\x96\xf9\x9f\xd4\xc5r\xe03\x13[\x0c\
+\x82/\xe4|\xf0<\xbdo\x22\xc8U\xd3&\xc02\xef\
+P\x87=G\x07\xef\xa8\x05!\xd0w\xdf\xe6\xdd\xa0\xa6\
+_\x9f\xdf\x03\x80gu\x07\x95\x0c\x8d\x1a&@\x89\xf5\
+0\xf6_\xb5.e\xf2|>\xa4U\x09\x82\x9f\x8f\x22\
+\x82\xbd\xb6\xc71\xe7\x02\x94\xc9\x5c\xa7cX\x22\x7f\xa8\
+\x80j\x149>J2\x88\x1b\xf9\x1c\xf7\x95\x8c\x86j\
+\x03\xa8\x9f\xb2}\x09\xf3\xc6x\x99_\x00\x0d\xcf]\xc6\
+\xc1}\xca\x80Q\xfbN\xaa\xf4\xe6Va]\xc6\x0a\x13\
+&\xc5\xfa\x88C\x95\x08\x9b\x12\x8eq\xbf\x85Ts0\
+9$\x1c=\x9f+#\x91\x19\xd5\x12\x09\xe3\x18c\xf2\
+\x10'4\xee\x1f\xa8\x00n\x09t\xfd\x9cc\x811\xe3\
+\xba\x04\xae\xda\xa7\x119\x03pq4Qb\x1d\xf4\x1c\
+3\xc0 *{\xd6\xf0\xeen\x12\xd6\xfd\xfd\x1f\x85u\
+\xcf\xc3\xe7\xa3rf\xe0\xa5\xfb\xc7\xf6\x15a\xb3\xbf\xfe\
+\xa3\xb0U\xfd[\x86\xb3\xfam_0K\xc3\xcc\xff\xcc\
+\xb0ViBf|\xf7~}\x09\xb4\x8b\x22\x8ez\x8c\
+\xe2\x0bp\x22\x02h\xbe\x08$\x86\xae0\xc5T\xb2^\
+\x88\x07a\xfc` Yw\xe98\x08Pk\x9c\xcdW\
+\x8e\x8a} \xc5\xf8\xaa\xd6\x9bh\xa0\xeb\xd1\x06\xd0u\
+\xa5\x83Q\x8c\x86\xdc\x97\xeby{\xff\xac\x8d/-\x02\
+\x80\x86\x92\x8d\x040h\x0f`T\x14u7\x03\xcd\xcd\
+?\x84\xad\xed\x1b\x89\x06\x16\x90\xf7\x1b\x1587\xe6H\
+\x13\xdf{E\xabM^\x02\xc1\xa7\x87\xcd\xef\xf3\xc2\xcd\
+\x9fn\xfet\x1d\xcf\x0a\xc4Po\x89h}<\x1dl\
+j\xcbj\xc5\x89{\xbe5l\x15\xc3$\x1e\xbb{\xef\
+\x02 \x8f\x9a<\xb5\xfe\x1e\xbd\xcc\xf39\x1cZJS\
+\xcc\xeb\x04\x10vW\xc8\xf1A\x91\xd5\xee\x8d\xe3h\xff\
+p\xde\xd28\xb8AX\xb7\x0f\xda\xffi{dFt\
+\x0e\xabZ 1}o\xfa\xfe\xffO\xd8}\xc0[\x97\
+UU\xa2\xafs\xeb#\xe7\x5cDA\x82\x80\x22\x056\
+\xa0dE\xe1\x81?\xf0\x89\xa2\xb4\xa2\x980\x80\x8a\xb6\
+\xad\x04\xa1\x11EA\x01EKTZ\x05\xb4\xc1V|\
+\x18@A1P\x82\xd8 \x08\x02\x02%<L$\x1b\
+$\xc7\x02\xea\x9c>k\xef\xf1\x9f{\xd5\xfc\xaa\xde\xbb\
+\xeb'\xd7\xfb\xd5\xbd\xe7\xec\xb3\xc2\x5cs\x8e9\xe6\x98\
+\xfb\x8f/\x99\xd4\xb5\xe4\x808\xa0\xae\x1b\xbf\xbf\xb6\xb5\
+\xdd\xff\xd4\x18\xc7\x7f\xff\x891\xb6.\x17\x87\xef\x0d\xd0\
+\xf2\x92d`\xaf0\xc6\x94!\xbe\xc5\x0a\xe8\x96\xba~\
+\x806v\xa2\x00O\x0c\x1e\xaf\x9b\xd2\x8b\x12\xf7\x04$\
+\x03n1\x96N\xc6\x98\xce\x93\x802\xf3\x80\x09P@\
+\x80Z\xf2\xec\xbf\xcah\xa7t\xaf\xce\x07\xc0\x0f\xa0\x97\
+\x0cmiJ\xc8\xf8?~\x19U\xd2U\x81\xea\x8f,\
+c\xd3\xc4\xb0o\x02(T\x80\x1e*\xbb\x04E1u\
+$\xc4\x00`\x02\x05\xe7\x85\x7f\xa5\xcd\x99@\xcf\xfb\x04\
+h\xac{\x023A\xa2$\x22\x99U3O\x8b\x81\x1d\
+Wr\x22\xd1\xd5\xb4th\x7f\x01\x8a\x8a\xf9#\xe0\xd3\
+\xbe\x0f@\xc5\xee\xea\x0e\x92\xc0\xb72\xa7\x02\x9c\xdc\xcb\
+\xbb_\x19c\xa3\xe8\x17\xb0\xc8>6\xcave\xb6%\
+z\x00!)\xd1,\xc04m\xee\xaa[\xcb\xff\xbbj\
+JT\xf7\x9b\x8f\x8c\x91\x04\xcd\x0c\x18\x8b3\x04\xf6\xfc\
+4\x19l\xf7\xa3\xf5h\xf7ni\xa7\x014\x94B\xf1\
+\xc7\xf9\x072\xb0\xfcc\xfe\xa5\xc0\xb4\x97\xd8\x0a(\xf9\
+;\xfe\xbb\xfb\x82\xd8\x9c\xc0\xdc\x7f\x9f\xc5\xd5?3\xf9\
+{\x0d\xe8\xa9\xcf!\x0e\xf2\xfb\xe2\x8fN\x89\xef\xed\xd2\
+=gg\xa0\xfa<\xf6\xb5\xcf\xd1U\xf5\x01\x02\xfdg\
+\xeb\xd2\xe3)\xf6\xd6\xe7\x13_D\xdb\xa4\xf6\x0d\x7f\xc2\
+\xbc\xbd\xbbi\xa9\xc8\xa4\xdb\xb7M\x0d\xbf\xd6\x91\xff\xe6\
+\xf7\xbd\x8e\xc4f/i\xe8%\x18\xb4\x9e\xec#\xfb\x9b\
+\x9d\x03\x00\xf8<J\xd515\xb5[\x0eS\xa7\xc4\xcb\
+\xf9\xc9\xe2\xc0Y\x04\x7f?1h\xad\x0b\x00@\x5c\xd8\
+\x19\xc2\xf9\xf7S\xcb\xf4}*\x0bq\xfe\xf4\xdd\x82\x8c\
+0\xe5]AD\xde<\x01\x05\xba\x04\x8c\xb0\xee\xbaS\
+\xad=\x0a\x9d\xd7\xf5:\xbe_z\xc9\x05\xaf\x08\xff\x17\
+\xe6\x82\xbaU\x1c\x8fk7\x15\xfc+M\x1f8\x1bm\
+\xa9\xb9;?T\x94\x1b_D-\xf1L1\xf9\xe4\xc6\
+h8\x8dR\xde\xda\xf8\x9d\x96I\x17\xe0C\xe0d\xdc\
+}\xef\x99\xd7\xae\xce\x8f\x1a\xd27\xbc\x00\xcc\xe7\xf4{\
+6\x96\x83\xeb\x00~\xb2\xbd\x8f\x83\xe1\xf7\xbd\xae\x80\xcc\
+\xc5*0\xbbR(m\xef\x0b\x90\xc0`\xf8\xde\x02}\
+mS*po}1\x17\xcd\xd4\xb9\xd6\xc4\xc10\xaf\
+\x10,TZm\xa8\x04@\xdf\xb9f0\x88\xcf\xec\xee\
+<\xc6\xf1e_3\xc6\xf4~\x11\x9b\xda=z\x8c\xe3\
+\xf7\xd7\x8e\xb1\x19\xe6\xcah\xebkK\xf5\xb8\xd7T\x11\
+\x13\x0bRv<tk&\xc7\x01\xb7/nX% \
+k\x8d\x1c\xf1%\x94K\x86\xdc\x85}\x892\x08\xeb\xfb\
+Y\x0f\x7fw\x89P\xef~\xf7\xf0\xbc\xc3\xf3\xa6Z\xe7\
+O\xef\xce\xdf\x9d\xbf\x88\x94\xad\xedV\xd50\xab5\xbf\
+\xdf\xaaI\xb0{\xe5\x18\xd3E\xae?o\xda\xdd\x95C\
++p`\x90\x04\xd0\xd6\xa7w\x91h\x00\xd1i\x06\xd7\
+\xe7\xf0:\xbe[_\x06\x12ro\x9f\xda\xb7\x1c\xd4\xc6\
+H\xa8\x0c\x89\x9au\x19ITx\x0c\x0a\xcfi\x7fB\
+b\x194\xaf\x0f\xe0p\xa1:W\x80\x0b\x0e\xa8\x80\x87\
+\xc1\xf7\xb9\x05L\xf6\x01\x91\xa1\x0e\x90`\x0c\xa0\xdc\xa1\
+.\xbb(Q\xb2\xbes\x8c\xa9\x16T{\xc6>\xff4\
+0\x18t@\xa0\xf6\x95\xfdB'\x16\x99\xb6V\xf5z\
+\xdaaET\xad2\x09\x18\x09\xc9H\x9cV\xeb\x98Z\
+\xce\x0ax\x94\x98\xc8\x0c<\x7f\x8c\x89\x92|\x89\x00\xb1\
+W\x5cv\xf6\xd6\xfe5\xc0]\xb5\x17\xa4a@\x0c\xa9\
+\xf7-V\xcb\xce\xdeP\xcd\x0f\xd3\x00cB\xdf\xf7\xb2\
+\xcb\xa8q\xda!z}\x8e,1\xaa\xd4n\xee\xfem\
+\x8c\xe34<n\x8c\xe3\xf7\x17\x8c1Q\xd5\xd54\xd3\
+(\x81\xb4\x03\xa6\xb4\x97J\x9f\xf7\xaaa\xd5w\xf7\xb7\
+\xa2\xad\xf0\xc6\xcck\x02\x87E\xfc\xf6\x83\x0b\x93\xe0\x1e\
+\x83IP\xa5\x1eD>\xd5\xfa\xe6\x82\xafZV\xdd\x1d\
+\xec\x07\xe2t2\xa9\xeca\x1c\xd5\xdd\xcb\xc6\xd82\x9c\
+\xc4\xc6J,H\x86@\xe9U\x98\x22\xa5E\xe1\xdf\xd9\
+G5\x8b\x1cB\x19\xf0\x001\x95\x19Q\x8b\x1f*q\
+9\xbc\xd4\xc6\x95\x18\x10\x15\xa3\xb6\xec>\x09\xd3\xe5p\
+\xc91&\x86\x16\x00\x9ec\xf7\x13a8d\x9f\xec\x1e\
+9\xc6\x04h\x9f\x1b\xc0\x84\x1d\x8a\xbd=<0\xe7<\
+\xd4\xea\x02\x5c\x95\xa6h\x9bH#&\x22y\xa5\x9a\x9d\
+}$\xa0\xac\xe7\xb9\xe7z^vOY\x19\x1c\xd5\xef\
+\x1d\x13\x92\xdd\xfcDJ\x91^\x19\xe0\xe7f\xb9Gn\
+\x9b\x8cr\xc4D\x0f\xe7\x8dq\xfc~\xfd1\xa6~\xe6\
+\x00\x05\xda\x16\xec\x95u\xe1(\x0aX\x05p4Dr\
+\x1fTfP\xe0\xff\xd21\xa6\xc0\xea=\xa1\x8c6\x0d\
+\xa4\xc3\xa5\xc7\xd8\xce\x7f1\x8eP\xed1R\x00\x18)\
+y(qP],\x00\x97\xce;\xe6\x04\x06\x09\x0a~\
+\xbaI\x94\xffC#A\x17\x0d\xedE\xc3\x00:\xdcn\
+\x8c\xe3\xf7\xb3\xc7\x98\x80+\xf7\x13\xe6\x98\xfd\x1e1\xbe\
+\x12e$J+`\x95xP\xfa\x80\xf1\x84A\x12\x91\
+\xc5\xb2\xbb\xc4R1?\x88#*\x8d\x89]\xaf\xf6\xa5\
+D\xf4\xbc\xbf\x12\xbck\x8f\xb1e\xf2\xab\xbd\xa0n\x02\
+\x12!\xec?\x00O[S\x0c/\xe2\x81\xfc<%\x04\
+\xec\xa6\xfb\xcc}`\x9e\xdd\xdb9\xb7C\xeax\x88\x1d\
+\x13y\xdc}\xc9\x18S-\xbf\xcc\xbd\x0c\xb2{\xb7\x8b\
+,w\xf1>\xcf\x85\x81\x891\xe6\xef\x89\x0b*\x99\xc2\
+T\x12 \xb9\x7f\xbb\xff\xec\xdf%\x9e\x88\xf7\xbee\x8c\
+\x09x\x09P\x5c\xcc\x99\xdc\xcfeW\xd9{\xf7\xb1R\
+\x8a\x9e\xa1\x05\x10(=\xe5wa\xd8\xd1(\x00\xf8\x12\
+\x9b\xa4\x0d\x12\xbf\x89\x1d\xaa\xf3#\xa1\x02(\xe8\x81\xb3\
+\xb8\x83]\x90\xb1\xef\xe2\xd5\xeeW\xf1\x8c\x00\xb71\x01\
+\xca\xaf\xf3\xdc\xda\xd5\x8aC\xdc\xd7\x00\x0e\xfe\x0d\xff\x90\
+\xffk?]\xa2%\xbez<\x85\x99`\x1f\xf3\x07g\
+\xed\xb7\x0bNoWY\xf3\xd6k\xfd{\x22\xd2\xbc\xf9\
+\xb9\xc7A]D\xd1\xbc\x9a\xe7\x0e\x1c\xf0\xfb\xec[\xf3\
+\xf4\xf6\xd6\xe6\x5c|\xe8\xcb\xfbw\x80\xa6kfy\x1e\
+\xbf\xc7_\x13\xaf\x01f\xbc\xbex\xc6}\xce/\x04\xc4\
+\xf8\xf2\x5c\x9fmq\x88\xb8\xac\xcf\xf7\xd6\xfe2\x1a\x00\
+>\xb8\x05\xbd8q\x015\xf9\xbe\xae\xbfT\xb3\xd5F\
+Z4\x03\xae\x9f\xc0\xfe\xec\x89\xd2\xdfE\xac\xd2g\xb3\
+\xa8\x882r\x0e\xe4\x1c\x08\x9f\xca\x82\xce\xed\x17\xfem\
+\xe94\xbb\x22\xfd\xe7N\x99\xbbk/\xe4\xb4\xd3\xdb}\
+\x5ciu\x5c\x8b\xe2\xe4\xe2\xb7\x91M\xa0\x85\xe4\x90\xa8\
+\x9d\x22.22k\xffi\xcap2D(\x9c\xd4,\
+{\x1b\xb8^K\xe5\xc0vJS\xcf8^+\x81\xc7\
+u\x939\xe7\xf8\xb7~\xb2\xb5\xc0\x0e\x8a\x8d\xe2\x00\x03\
+,|\xbe\xaeF\xdaE?\xcc\xb3\x8d\xd2E0:\xb2\
+\xf8\xe9\xbc?C\x0a\x99\xf4>\xd4S\xb3\x0f\x8e\xee\xc4\
+\xa2\x82.\xd0-$8\x8e\xe8\xee\x1b\xc7\xd8j<w\
+\x1f\x1ec\xca\x8cC\xc4\xd4\xaauQ;\xf3'PT\
+K\x7f\xcb\xf4\xcb|@\x9e\xfb\xb3Yw\xf3/\x00\xff\
+\x851\x16\x87eq\x14\x00\x0f\xbbg\x8f1\x89y\x99\
+?\xf3\xdf\xba6\x94\xb8\xd2\xcfE\x8c\xc6>\xbbN\xf6\
+\xbb\x00\x86js>\xf7\xee\xcc1&\x03-c\xa0\xa6\
+L\xdb\xb6\x88\x02VF\x94a\xb3/9\x90\x97n\xed\
+\x1c\xad\xa3\xe7\xeej\xfb\x1cK\x172&J\xba=\xa0\
+\x90\x96c\x80\xe2\xc4\xc1\x80x2l\x10T\x81\xa8u\
+\x12X\xdbO\x182M\x9d\xb5\x80\x03Ty\x7f\xcf!\
+\x0bu\xb2D:=\xbf\x0c\x0a\xb5v\xfb<\xf3\xb0\xfb\
+\x9d1\x8e\xdf\x9f:\xc6DUt\xf1\xb3{2(\xa8\
+\xf3\x02o\x17&\x80\xe9\x7f,c\xa3\xda\x0b40\x14\
+\x88n\xa5\xcdT}\x1e\xeb!\x13\xe8\xe2\x81d\xcbp\
+\xb8\xd89\xd2\xda\x80\xf9=\xea\xd7\x02h\x19\xe4N\xa5\
+\x8c]\xd8\x9d7\xc6\xb6?\xaa\xf4@@\xafF\xb9\xb7\
+\x85\x04\xe4\xe9\xa3\x1d\xaa){.\xb0\xa9}\xfd\xa61\
+&\xed\x0d\x0eC\xfa2\xef_7\xc6\xe4\xe8\xc6\xee\xec\
+\xde;\xc6\xf1\xfb\x15\xc6\xd8\xe6\xb7\xa8\xca\xec\xbbZ\xed\
+\x94B\x9c\xfc\xec\x18\x13\x22\x1eGWMq\xa9\xe7\x86\
+*_\x14O\x0e\x06Q*5\xacj5S\xbb\xab}\
+\xe4\xe1\xfb2?ah\x000\xf7\xe7\xee_\xba?w\
+\xa9i\x7f\xe4\xa8i?y\xee\x18\xc7\xe3\xf5\xf61\xa6\
+L$@\xe9\x01\x87\xaf=<`\xa1\x04\xdfu\xa1\x04\
+s\xa49\xc8\xbe\xe7B\xdf\xed\xc7\x98\xeeU\x19`\x81\
+\xa9}\x8b\xe1\xc6^\xa4V\xbd\x18Q\xd4\xb8e\xccS\
+\xb2\xa1t\xa8\xdaw\x0a4\xec'\x99STd\xaa\xff\
+\x98\x10J\x95\x04\x18\xa9E\xacR\x0e\xed\xf7\xee9\xc6\
+\x14\xf0\xc9\xc0p\x98\xf8\x05\xf6\x9f@\x22\x8es\xf5o\
+\xcf\xbe\xc7\xac)-\x89\x00\xcbE\x09\x0f\xe0\xa0\x8fr\
+Q\xa1\x03\xac*\x11)\xbb\x8di\x84\x91\x10-\x035\
+\xb0\x877\xa5V\xf3\xa6k-m\x01x\xbar\xc8\x00\
+\xb1\xabj\xf6\xd54k#\x17G\xb0\x98\x12a\xce\x9d\
+\xf1?\x13\x90\xb2g\xec\x84@\x05\x80c\x1f\x09\xbc\xed\
+\x0bv\x01c#\x1a\x02\xd5\xe7\xfc\xad\xb9/^\x94@\
+?\x0c\x05\x81h\x05lY\xdf\xdd\xcf\x8c\xb1\x05\x02\xc7\
+\xf0za\xde\x09l\x01,\xa5=\xa1=\xe7\xffHi\
+\x05\xfb\x16\xc0\xb2\xec\x0e\x86\x0f\xe6\x13\xb1\xe3d\xea\x0b\
+\x08P\xa2\x13\xe6F\xf9i>\xaf\x0c\x1b\x8d\x0c\x19B\
+b\xbc\xd4\xed\x89\xd4\xca\xcc\x03J\xf9/\xe6\xe9'\xc6\
+\x98\xfc5\xf7\xa5\xf3\xc3/\x22\x1e\x8cQ\xa6\xcb\x0b\x86\
+\x09q9?k\xf3\x19\xf1\xb8\x02x\xb6nGk\x80\
+. \x88?c\x7f\x95\xc8\xa0@@\xb7\x92h\x5c\x94\
+\x9d\x08\xa3\xab4{\xbcn\xfe\x0e\x90:\xd2\x13K\x82\
+\x82\xfd&\x96j\xbd1\x90\xe2\x8f\xd4\xfe1\x0f\xeem\
+\x89\x1f\x80\xbd\x00\x8d\xdf+\x80\xd4E\x82\x08(`\x89\
+f\x0a{,\xf0o\x01%\x00\xad\xd6\xeb\x1d\xc5\xac]\
+\x99i/\x1ec\x02\xa8\xb45\xcd\xfd]vP\x09E\
+\x98\x97\x80\x82\x12\x03\xe5\x9f\xcb\xe8\xa2\xf0\xa3r\xf3k\
+\xf8=\xfc\xe6\xdc\xf3\x05\xf4\x84\xf1VvIw4_\
+\x02L\xf73\xffY\xe0\xaf\xc6\xdb\xf9\xf1\xbe\xf6{g\
+\x12\xb8\x17\xf9_\xfcT\xfb\xd8\xba\xd8o\xfcP\xfe\x8c\
+\xf5\xf4:\xf6=?\xad\x97\x16\xfb\xf2\xfb\xad\xfd\xdei\
+b\x80=P\xed\x19u\xfeO\xffw\xfeO\xff\xde\xbb\
+\x0d\x88s\xd8\x85*Y\x8e\xd6S\xe2\xb9\x9a\xbf\x9e\x10\
+\x16\x0f\x8b_\xf8\x83\xe6\xb3\x03+\x98\x9c\xc4\x16\xed\x7f\
+\xf3(\xf0\xf7<\x9e\xd7|\x03J:`\xc2\x8f7\xef\
+\xce\x83y\xe1\xd7K\x8c\xf9\xefM\xe4\xaf\x97\xf6\xd5\xf7\
+*\x01`H\x5c4WYtg\xb7\x00\x0a\x02\xa1=\
+\xdf\xc0\xb5o\x9a\xff~\x8dF1\xf9`2\xbf\xe7N\
+\xea\xc4\xe9\x93\xb8\x84\x13\xb7\xdd\x98\x01K\xcd\xda\x1fG\
+M\xfd\xfb&\xc4\xa2\xd7\xea\xdb\xc0\x1b\xe5|\xfd\xf2\xfb\
+]\xe5\xd1B\xfa\x5c~\xcf\x84\x8dex\xcf\xf4\xfa\x18\
+\x06\xfb\xf4\x03\xb5A-\xd8\xcc`\xf8\xc8\xf4z\x9e\xa7\
+#f\x98\x0a\x0c\xa5\x00*mxj#\x09\xb8\x05B\
+\xe6Q\xbf\xdf\x9b\xa5d\xc1\x01\x15\xf8@\xec\xba\xea~\
+\xef\x9f\xd9\xdab\x1c\xb21v\x9f\xdf\xd43\xbbj\xe6\
+\x86\xb8\xae\x07\x9f\x01\xd82\xc6\xab\x83i\x83\xf9\xfc\x7f\
+\x7f\xe1\x9a\xd2j\x0f\x98\x00\xa6.\x14\x06\xf2\xb2\xabH\
+\xa06Pu\xf0d\x96\xf2\xf3\xee\x85cL\x01\x04\x15\
+[\xb5\xf2\xe6\xe7f\xf99\x14E5\xac\x95\xa9\x11\xb8\
+\xfb}\x19\x10\x17\x9c\xcc\x98\x8c\xae\xfe\xce\xa1\x84V\xed\
+\x7f\xa7ZQ5\xfe\x97\x00\x5cQ%\xae\x1aw\xed\xf6\
+d\xbc\xec\xaf{\x86\x92\xad\xeb\x02\xf5\xf2\x04FD\x91\
+\xaa\xcd\x10\xd15\x14w\x99K\xe2T\xbd\xeb\x04\x03f\
+\xdf0\x1c\xf6s\xaf\x0d\xf2\xb9\x94\xc28\x87\x02\x8a\xd6\
+V\xa5\x02\x7f\x19X\xfb\x98\xca)\xe6\x87\x80\xc0yb\
+\xb0\x00B\x1c\xe7\x00U\xb5n\xce\x09\x03\xab\xf6\xf8\x1e\
+c\x9c\x8e\xc0\xd6\xbc\xf8\xdc\x02\xca\xcc'\x07\xa3\xfa\xd9\
+\x9f5\xc6t\xa13\xc02).v\x99\x17\x1a\x12\xf9\
+\xbb\x12\xe1L\x80_}\xec\x95\xa8p\x94]\xfc\xa8\xb1\
+\x02\x19\x0e\x07\x07\xd09\xe4\xa8i\x0f\xf8\x981\xa6\xfe\
+\xf3Ja\x88A\x09\x9c\x1e\xbc\xd6J\xef~d\x8ci\
+\xde\x05\x90J ~t\x19\xdb:\xa38rP9J\
+\xd1@)\xa4\x9a\xfd\x00\x90\x09\xd4\x020h{V\x00\
+\x83v}\xce\x9d\x9aG\xea\xdd\xa8\xd3\x02\x0c@\xdb?\
+\x8d\xb1\x89\x88\x16%\x1b%\x97x'\xe6\x0f5o\xf7\
+\x0cjl\x1cs\xcf_\xb5\xd4\x00\xc78\xb0\x050\xa2\
+\xfa\x0a,\xa8\xa9S\xb5W\x93~\xcb\xac\x17$?}\
+\xca/\xf8\x8e1&\xd1\xc1\xb4\x89\xab\xdak\x99\xcb^\
+\xe3y\xf7\xa5/\xc8\xa6\xeaO\x03\xe1\xc3\xf9\xef\x18G\
+\x0f?\x86\xe1\x0f\x9f\x02!\xf6\x10`\x06\xb0\xe3`\xb0\
+o\xee\x0bv\x90\xa3\xed\x9et~\xdd\x07\xde\x8f\x83\xcd\
+n\x00\xc2dV\xdd\x83j\xf2eFQ\x8a\x03\xacU\
+7\x0a\xf7\x07\xc6KD\x0fK\x9d\x9a\x8ay\x13\xeb\xad\
+L\xb1@\x08\xd5\x18\x93\x80\xca\xb7\xf7\xf1\x9c\x80Q@\
+\x82\xaf\xb4\xf3\x04\x98\x12\xf9,\xad\x0a~\x8f\xf5\x97A\
+\xd4^1\xc0\x986\x83\xc5\x10\x03\xc4\xa4\xa6\xbb\xcey\
+\xda\x0f\xf2\x03t\x998\xae\xdd\x12\x98\xaaU>\xfcZ\
+2\xd4iCX\x80\xe3oD\x1d\x1aS\x83CH$\
+\xed\x0fVJ\x7f\xd99\xa5O\xcf\x19c\xb2\xff\x18\x0d\
+\xcf\x1dc\xd2\xe8\x10\xb0\xea\x7f\x0eHV\xf3\x9b\x8cs\
+\xd9i\xc0\xeb\xbb\xd6\xc0\xa4\xd4\xcf\xd9\x0f\xed\xeft\x15\
+q\x0e\x03(U\xbfw\x813\x0an\xfa\xc9\x173\x87\
+F\x85\xf9\xc4\x10c\xa7\xf9[\x00w\xf3l\xde\x05N\
+\x00\x13\x19k\x9a/M\xbc\x13\xc3@b\xa2\xc4\x18\x01\
+\x01\xba\x8c\xd8\xc7\xb1g\x95\xd9\xedbd\xba\x83\x10\xc3\
+\xd5\x86Om\xb9{^F\x19\xd0\x9f{\xab\x80m%\
+lJ\xdc$\xb2\x00\xcb\x022\x99wZC]\xac\x10\
+S\xd0<:\xff4\x110\x00\xb4e\x8d\xa6D1+\
+\xbe}\xed6\xc1\x8eT\xf7\x05\xa2\xbf\xfc\x0a\xc0=\x00\
+\x8c=q_\xf0\x17\xc3P(\xbb!c\xca\x0e\xc9t\
+c\x80\xb9\xdf\xddW\x80\x82\xd8S\xf7s\x95\x8e\xe8^\
+\x10\xcd%\xa5o\x02\xf9\xb2/J\xdch\x179g4\
+J\x94\x22`\x0a\xd9?\x02<\x80uJP\xeb^\x07\
+<\x11\xe7LB\xab\xb4\x19\x04\xfe\x00fZ\x164/\
+\xf8K\xfc\x01\x01\xfe\xc5\xf5\xb7\xf7\xdc\xad\x94\xb7\xce\x01\
+?\xc0\xeb\xd2\x88b\x1f\xd8\x95.\xca\xb7iY\xad\xfb\
+l\xd7J~}y?L\x05\xfe\x93{\xa43\x98\xfb\
+Wgp\xfb\xfd\xae\x11\xe0{Ot\xf2\xfb\x9c\xcf\xc6\
+\x00\xd0\xe6\xbe\x9e\xcb\xbc\xf9{\xf7\x99\xcf\xef\xde\xc3L\
+\xc0\x80qnzB\x94\xdd\xf4\xfa\xde\xbf\xb7!t\xbf\
+c\x96\x5c\x9cf\x81\xfd/Nunz|\xec\xb9\xc5\
+\x8f\x9d\x19\xd0J\x05\xfa:l\x00\x80\x17 \xa2\xc7Q\
+\xf7\xfd\xf2K\xf5\xf4\x16(\x0f\xb3\xf2\xa1 \x19\xff2\
+!\xb7\x16\x08\xb26(\x8e\xcf\x9a\xc4\xc8Fm\xd6\xb7\
+Mm\x978\x9c\xdaj\xa1vqXh\x0fxN\x19\
+\xdbh\x02T{A\x0b\xd3\xc5\xf7<\xbfL<\xf5\x7f\
+\x1b\xd8\xeb\x0e7\xe9j\xd3\xcf\x97]\xaa\xb8\xb7\x00Q\
+\xa6Y\xc0\x0d\xa1\xb5P\xbdO9\x07\x8c\xc1\xd4\xef\x99\
+\xa6\x80\x85\x13\xb8\x09x/5\xc6\x12\x00\xac\x0e\xe7Y\
+\xc5\x04X\x1d\x19?{}\xef\x07\xe0pP\x05\x9a\x0e\
+T9\x96\xb9PzM\xbf\x83\xd6\x914\x07\xcd\xc6\xe4\
+P\xba _\x15\xa0C\x80h\x9ee\x0a\xf5\x9fva\
+\xde&T\xd5g&\xd0\x12\xd0(\x1d\x81T\xa2\xcc\xca\
+\xb0Z\x07\xdf!\xb8\xa8\x8e\xb7\x1dc\xaam\xf5wg\
+g\x1eo\x12\x80\xe0F\xa9I\x0b\x93@\xc6}\xf7k\
+cL\x06\x9eA\xb1\xbe\xe6\xc9E\x85R\xcd\xe0\x09$\
+1\x1e\xa8\xc8\xff\xfe\xaa\xbe\x5c\x17\xfc\xdf\xc4!1\xcf\
+\x0c7\xd1\xb3\xb4O\x12\xe8\x96\xc3\x0f\x99&:\xe9\xbc\
+h[c>\x00$\x0c\x00\x00\x82\xa1\xb1\xdf\xecg\x17\
+\x90\xefj\x15\xbd\x1ej\xacvh\xc4\x95\x000\xc4\x82\
+\xcc\x17J\x1f\x877\x81a\xf5\x81v\xf19\x7f]\xc5\
+\x9c\xba6\xd5\xfe\xa6\x06[\x0et\x183U\x12\xa1\x86\
+J\xe0\x1f\xd5\xf5R\xf1\xa7\xa2\xed\xa2\xb7\xce\x09\x08\x04\
+`\xc5\x98\x91ijmZ*\x13\xc0\xf1@\x99\x0f\x05\
+\xbb\xd4\xd1\xd5\xda\x03\x18\x05\xe0>\x8f}\xe5<\xaby\
+v\xc1\xa7\xe6T\xe0_\x01.\xd19\x19z\x8et\xc4\
+\xf7\xea\xfcd_\x10\x8d\xdb\xfd\xc5\x18\xd3\xf9Q\x13.\
+\x03\x8c\x22\xc9\xf1\x018\x00\x0c\x00\x81\x9e\x8fc\xe8\x02\
+4_\xec\xffS\x96Q*\xd8\x1c\xda\x02,\xd4\xfc\x03\
+\x0a\x94\xba8G2/2\xcd\x02\xcd\x88\xcd\xed\xde:\
+\xc6T\x13K\xd5:\x81\xf6\xe1\x93c\x1c\xbf\xff\xf2\x18\
+[&\x1c3\xe3\xe4\xb6cL\xda\x1b\x187\x80\x0a\x81\
+^\xa8\xcd\xbb\xaf\x1bc\xa2zf?\xedo1\xc6\xf1\
+\xfbo\x8c1\x9dW_\xec\x10\xca>`OM\x7f\x80\
+\x82\xba\xf7d\xdc9\xbe\x02\xa6+\xaf\xc0\xbc\x8c]\x01\
+\xa9\xda\x83b\x16\x08\x90\xa2\xb6]Tn\x8e\xa7{\x81\
+&\xcf\x1f\x8c1\x01\xb7\xfa\xc5'\x80\x10\x10\xd4\xf9v\
+\x9f\xc5q\xaf{\x9f\x1dr\xce\xb2\x8e\xc5\xe8\x12\xf8k\
+\x1f\xa7o<\x87\x9d=x\xf826\x86\x00\xca\xb0\x12\
+\x00@\xc9\x15\x9bV\x80}i\x9f\xba\xc7\x9dg\x8e\x98\
+\xdfC\xb1\xf4\xfb]\xcc\x8a\x16B\x02\xb9\xfd\xbd\xc7\x98\
+\xc4\x16\xedw\x8e$\xd1'\x0c\x1c\xf63@\xd3\xe1\xd4\
+\x18\x1bp\xb1;o\xa5,\x1f\xc3\xdbu?\x9c\x93\xfb\
+\x01P\x9c\xc0\xa1D@\xdd\x87\x1c\xf7d\x90*\xf0\x11\
+\x80\x05\xc0\xa4\x05\xc2\xd9\xae\xc0\xf1%\xbb?\xdd\xfd\xe9\
+\x94Q\xce\xfa\x97\xe3\x8c\xc9\xe4\xde\xe7\xa7=`\x8c)\
+\x80 \xe6\x19?F7\x9b\xfa\xbcj\xf5\xf9a\xa1\xe6\
+\xd7>H\xc0_\xc0w\x98!\x98;%\xe6\xe9u\x01\
+tJ\xe6\x12X\x024\xea>\xa6r\x9e\x80l\xff\xa2\
+1\xa6\xfb\x1b`\xce/\x92q\xb5\xef\x00Ni#W\
+v\xdc\xfe!\x92\x88\xe2\xaf\x1b\x85\x04\x81\xfd\x9f\x80\xb9\
+J|\xd8K\x19\xef\xbc\xaf\xb6\xa4\x05\xa0\x0a\x04P\xd9\
+S\xbaP\xed\x88\x01}\xbd-s\x12\x09\xd5\xbe\xd3\xfa\
+D\xb3\xa0\xeei\xc0t\xee\xd1\xd2@\xd1\xc6/\x0c\xab\
+b\xd6\x862_v\xd4\xbd\x8f\xa1I,3\xa5\x0b\x98\
+(\x05 \xd3\xba\xc08\xa2\xa5b\x9f\xd3\xdc\xc1\xb8\xc1\
+\x90\xc1\x08!\xce9n\x87s\xb2\x8e\x9f\x98\xd6_\xc9\
+\x8a{\xd0\xfdN\x0b\x81\xfd;g\x8c\xad\xb4\xb2\x9eC\
+\xd7\x01@\xa2@\x8f\xbfd\xbf5Fc\xb5\x87\x04\xe8\
+\xf6\xf6\xcb\xfcR%\x16\xbaz\x00ni[`N\xb9\
+\x07t\xaf\xe0\x7f\xf7\x80\x19\xf0\xd0\xc5\xe7\x00O\x98/\
+\xfcJ\xff\xdd~\x8f\xff^m\x11\xbd\x0f{\xd9\xb5\xa1\
+|\xae\x0e\x00\xb4Z\xf2\xf2\xff\x95`\xda\x9f=s\xee\
+\xef\xbd\x9e\xf7c\x7f\xfa\xfb\xf2\x0f\xbd>\xff\xc6\xeb\x02\
+\xe2\x89\xe0\xf5Zwq\x9a\xe7\xf2y; \xe5\xf9\xbc\
+\xaf{\xc0\xbc\x09\xe8\xf9m\xfe\xbd\xcfK\x17\xa7\xb6\x0e\
+\xfc\x22\xef\xefs\xf9w\x9f\xc7\xcf-!D\x8b\xe34\
+\xe6\xa8\xe7\xedLn\xf3\xe9\xdf\xbd_\xd3\x048u\xa1\
+L\xc1\x95\x13X^m\xa3\xb0\x94c\xc9A\x1a\xff\xfd\
+*yam\xf6\xde5\x01\x03\xb6\xeb\xb8>\xcf\xca\xc6\
+\xba\x5c~\xbe\xeeDI3a\x1e\xf0\xa4\xc4\xd3\xd6\xdf\
+\x1f\xaf7\x8b\xea\xcd\x14\x92\xcf\xb4\x9a{\xea\xf4\xef\x9d\
+\x02~\x8euGj\x04@W\x8e\xe8\x13\xb1B\xdd\x09\
+\x00\x0f\xfav\xcbH\xa2Tvq\x08\xc0\x83\x80^\xa0\
+N\xfd\x9cc\xe1s\xf8Y\xa6\x01\xa0\x91\xbe\xf4j\xc7\
+/\xd4\xe5`\x06\x0az\x9fL\xf3\xd6\x03\xfe\xde\x06C\
+ \xe2\xdf{\xc6\xff\xe3UB\xb0\x22U\xefL\xe9\x83\
+\xfe\xc2\xd6\xc9Ap\xb08:(\xb2wY\xa9\x97g\
+<:\x81\x03\xe4Y[\xb6\x04\xcc\xbb\xa7\x84z\xcd\x81\
+c\xa8\x04\xf0\xf6\xa5\xf9D\xed\xbfq\x02\xdc\xfc^\xb5\
+%\xb1>~o\x13\xcdX\x01\x0b\xcc\x8a\xdb\x87\x99\xe0\
+\x02\x120\xc7\xc1*5\xe0\xc7D\xad\x99\x08\x8d6n\
+j\xfe\xb4\xf7\xe1\xb8\x0b\xa8\xa2v\xbc{\xfa\x18[\x0d\
+h\x01D\x02m%&\xda\xa6\xa9\xbd}\xc4\x18\x93\x83\
+\xa6\xcdT2\x5c\x02\xe9\x12\xe9\xf2y9\xfe\x90g\xfb\
+\x8c\xe3\x11\xc7\xa4\xfa@38\x11o+q.\x06\x88\
+#b}\x894E\x1c\xab\xa8uj\xe2e\x22\xed\xcb\
+dv\x0bP@\x91L\xa6\xad\x02|\xe7\xc0\xba\xd3\xa2\
+\x10\x98\xea\xd6\xc0\x90B\xc4\xb5#\x8a\xe8Se\x04Q\
+\x8f\xaf<\xc6\xe6\xb0Sow.\x8b\x92l_\xca\xf4\
+&\x00\xab\x1ax5\x99\xda*u\x86\x04\x95\xed8H\
+\xb5>2\x872\x0f\xe9k]\x8c\x0f\xf6@\xedt\xa8\
+\xe9\xd5>\x13\xe0##\x04\xa0\x88cY%4j\xce\
+\x9c\x17\xa2\x81\x9e\xef\xe5\xcb\xd82\xf1\xce\x13G\x85C\
+\x9b\x0c\x8b\x1a\xd0:?\x02\x0e\xf6\xdf\xbeb\x97\xd4\x88\
+\x87\x02\x5c\xd4\xd2\xab\x8fq\xfc~\xeb1\xa6\x00\x15e\
+?\xcc\x86\xca\x10(Up\x81\xca\xf4h\xb3\x94\xccH\
+\xed\xd3\xd8\x8bbV\xa1LFdl\xff\x981\x8e\xff\
+\xfd\x7f\x8d\xb1]\xdc\x15\x90\xca\xe8q\xf4\xe20V\xad\
+<f\x09u\xfb<\x0f\xd5\xe9\xfd[\xc6X(\xff\xe7\
+\x0e\xca\xbfL\x916d\xbb\xd7\x8cq\xfc\xf9qcL\
+\x81\xbb\x00\x14\x90\x9a\xee\x05UR!sG\x5c\xec\xa7\
+\xc68~\x7f\xd5\x18\x13\x90 \xf3\x9a\xbf\xaf\x00\xc8>\
+\x22\xda\xe6\x9e\xc2H\xca\xd7\xee\xab\xc6\xd8\x00\x99Z7\
+5\xdf\xa8\xfa\xda\xcc\xc5A\xde\xff\xea\x18\xd3\xfa\x08\x08\
+Z\xf7\x9bbB\xb1{\x98\x072\xf0\xda\xfc\x01DP\
+-\xd9\x1d\xf7\xa2\x00\xc6}\x0fPA\xd5f\x07\xddg\
+\xce\x81\x92\xb2\xcc+1\xca\xda\xa7\x00g\x99\xd5\xdd\x18\
+\xd3\xfd\x9e{\xe1p\x95U\xf3\xa0\xd4\xdb\x05\xd6J}\
+\xa2\xf9Q\xf6\xd79S\x1a\x98\x80\xa64\x14R\x02T\
+\xc0\x84\xfb\xdc\xf3+\xe5\xa1\xae\xae\xa4 \x1a\x1b\x05\xf8\
+\x0b\xccQ\xd9\x13\xc0\x958\xa4R\x12\x01/?\xe1\xbf\
+,c\xeb\xfe!s\xaf\xfdd\xee#\xf6\xeap\xb3\xd8\
+\xc9[\xc7\x8e_%\xa5L)\x11\x90Y+@\x86\x1d\
+w\x0fp\xb0e\xe0e\xaaQ\xd7\xdd\x7f(\xd0\xec\x8b\
+{CI\x0a\xca<\x7f\x8b\x080\xa0\x08\xd0\x0d\xb8\xb1\
+\xff\x02`\x16`\x8a\xba\x9e@\xbc(\xfa\x02\xbd\xd83\
+\xedD+\xd0\xf3<\xf6)\xed\x92h\x1aTFOi\
+\xa2\xdf\xb3\x1f\xd8\xd1\x96\x98\xaa\x04\x82R\x18\x19`\x00\
+*-\x8d\x88(\x96\x88\xf0\x15Kkh\xf5\x13\xf9\xd5\
+\x123I$\x9c\xd6\x95\x0b\x13.\xda\x06u\xde\x01m\
+\x00\x06v\x98\xf8!\x8a\xbf@1\xdd>J{\x04\xe0\
+\x88\xe9\x10\xf1\xc7\xdaw(\xd7\xfcA\xcc\x00@\x07&\
+\x0b-\x08L\xaf\x9be?\x8d[\xec\xaf\xa7n\x09\xfc\
+\x0d@~\x9e\xafJ\xfe\xc2\x84\xa8@\xafkt5\xc6\
+p\xdd\xa3^\x8f\x1d\xea%&2\xbc\xf6\xa1}\xc3\xaf\
+\x13\xf8Y\x1fZ;D\x22o5\xc6Tj\x14\xa0\xa3\
+\x12K\xde\xcf\xba\x9a\xef.\xeej_D\xf4\xb0\xfc|\
+\xfb\xce\xebt\x0a:\xe08\xfeQuG\xb2\xde\x02Z\
+q\xd3\xc5\xf5\x95\xbf8\x11\xbf^\x1a\xe1\xfd\xfd\xbe\xd7\
+\xf7z\xee\x87\xde.\xb0\x03\x00^\xbf\x05\xccU\xd2\xd7\
+\xb4\x9f\xca\xae\xf2s\xd9\xf5^\x22\xe1\xdf{\x17\x02~\
+(\xc6\x1b?\xaa\xcf\xaf\xe7n%\xe1\xe5\xaf\xfa=\xeb\
+\xe3s\x00\xd4\x01\x02\xbd$\xb7u\x07*\xa0\xcd\xbe\xf5\
+\xf9\xbaVB/\xe1\x16\xb7\xb5\xda\xffM\x03`\xb8\x83\
+\xd7I\xc0|\xed\x89\xf2/\x10\xbe\xc5B\xaa\xde\x0cI\
+\x0f\xdc\xcf\x08\xca\xecb\x12\xe8\x0f\xf3\xac\x9d\xde-s\
+a\xff\xa7I4h\xc0\x0a\xf7\x8a\xba\xf0=&\x15\x5c\
+\x1b\xbd\x07\xee6\xc2\xd8N\xef\xce\x04\x5cv\xab1\xa9\
+@\xdd\x02\xdaX&\xca\x81\x04th/x\xad\xa5\xda\
+~\x0bDlL\xefoA\x1be\xa4j\x91\x18\x06j\
+\xa7\xd4\x929D\x1c\x92\xaen\xees\x9a\xb7\xcbT\xc9\
+\xc2\x85\xdb\xe7uD\xcb<\xf4v\x1d\x1cY\x01\x9f\xcf\
+\x03\x08\xe9\xed8l\x94M\xecq=\xa8gf\xde>\
+\x99L\xe0\xcbcP\xaf\x11j\xe7\x8d\x13p\x9b\x97[\
+%\xf0\x16X\xdf4\x14\x5c\x0e\x7f\x10\xde\xdd\xb7\x84*\
+\xf7u\xe9\x87L$\xe8\xb9\xcb(\x11\xad\xbaP\x04\x18\
+\x80\x0b\xf3\x06(\x91\xa9\x04(\xa0t;\xe0\xdd\xf0u\
+\x11\x12\x86\xca\xc1\x85\xb4\xa1^& ?:\x09\xabX\
+\x99\xf3\xc0\xf1\xd0\xb6I__\x8e\xa9\xcf\xa3\xaf\xad\xf3\
+ \xd3\xc5P\xdd>\x019\xe6\x81ur\x11p\x9c8\
+D\x022\x19R}Z[-\xae\xb6ge@\xf4G\
+\xff\x92X\x0c\xe7\x00\x00 \x00IDAT\xd91\xa6\
+\xbe\xbcj\xa1\xccoj\xe0\x8bjm?\xf9\xef2\x93\
+\xa8\xe5j\xb5d2\xe3h\xd6\x05\xedy\x19N\xc8)\
+\x11&\xc0\x01&\x82\xd2\x8b\x9b\x8f1Q\xb7d\x5c\x05\
+\xae\xf6\x9ds\xca\x80\x03j\x04v\x80%\x8e\x1eq\xad\
+\xd6\xb6\xaf\xec\x04\x0a,Q\xab\xb4\x13*\x0a\x9fL\x85\
+\xfd#\x83*S\x92u*\x8aa\xd6\xa1T\x95\x01\x03\
+\xc4\xa8\x9cG\x81\x00\xd1L\x19,\x19\x14\xa2^\xdaN\
+QQ&b%\xb3f^\xa9=c@$S^\xe7\
+\xc7\xe77oD\xe9\x94d\x10Ac\x9f\xf4\x83\xff\xa5\
+Ue\xbd2*Qu/G\x185[f)\xb5\xaa\
+%\xf2\xe8|\xb0\x83(\xf5\x80\x0av\x14\xb59\xe2\x8d\
+\x95\x01\xbd\xcd\x85\x81\xb4\xeaZ@m\xdd=\xc1\xee\x00\
+\xa0\x02\xd4\xed~|\x8c\xe9\xfc\x0al\xcd\x83L\xa0\xae\
+\x05\x1cv\xeb\xc3a\x97\xb9&n\xc6\xbe{?\x0e\xa0\
+\xcf\x97L\xed\xfe\xb1c\x1c\x9f\xe3\xf2cL\xd4q\x0e\
+\x05\xe0\xd6\xdf\xb1\xcf\xee\x07*\xdc\xf6\xab\xd2\x0b\x19?\
+\xfb\xfd)g<y\x04\x0e\x87{\x1f\xees\xb8\xf7\xf6\
+9\xaaK\x8a\x80W\xc6?\xa5Y\x87\xeb\x8c1\xcd_\
+T\xe8+\xf3\x8a\xd9D,\x92\xa3\x0d\xd0\x08\x00\xa1t\
+\xaaj!Q\xd3{\x06^\xa9\x05\x11E\x1a\x06\xda\xbd\
+isD$\x0f\xd0\x16\x87\xb5D\xebdl\x01<\xa9\
+\xb1\xadLb\xec\xe9\xe8\x1d\xb4\x94\xcc\xfcmT\xd5\x95\
+\x82a\x02\xa8\xc9d\x87\x02\x00\x1eN\xad\xe2}UZ\
+\x80\x09\xe5\xf9\xd8\xef\xfc\x5c\x1aG\xbaq\x04\xc8\xe4H\
+\x1e\xee?\xc6\xe4G9g\xec\x11\xbb\x80q\x14\x06B\
+\x05T\xee}@\xcb-\xc6\x98^\xcf=%\x00\xa7\xd1\
+\xf4K+ }\x9c\xe5U,Q\xa6\xfe\x91cL5\
+\xb2\x02{\xb5\xf2\xf7J\x80}\xb9\xf5\x9c\xee\xee\x17\xf1\
+]\xf7\xa9\xe7\x89\x9d(\x8d\x18\xef\xcf\x0fi\x1a4\xd5\
+\x0d\x80\xbd\x06\xc4&\xe3K\x95~i\x0a}\xc9\x05X\
+\x7f\xd2\x00\xd61)J\x14\x11E\x1b\xb3\x00\x80\xa1\xe4\
+G\xe9\x81n\x1b\xeeM@6m\x08%I\xceQ\x00\
+\xe6z\x0e\xfeJ\xec\x05\x8a<\xb5\xee\xea\xde\x91\xf3R\
+~\x84\xf3\x8a)\x80! \xb0\xe3\x98\xc7o\xa8s\x22\
+\xc3\xad\x9b\x8b\xdam\x8c\xa5\x88\x92\x96H!\x7f\x89_\
+\x13\xc6T\x05\xf6\xfc!Z\x14\x98a\x9e\x1fP\xe1y\
+d\xd2\xf9\xcf\xee]\xf6\x90\xf8_\xbap\x00b\x8a\xd9\
+a\xdd%F\x94\xd8\x08\x94i\x089\xa7T\xf7\x01\x08\
+\x18\x07J\x14\xf8\x01\x18~^\x07\x10 \x81\xe4~\x06\
+X\xbb\xef\xcc\x9b@\xaf\x89qW;P\xef+\xb0g\
+\x9fi\x10\xe8r\xc0\x8fc7\xf87\x80\x03\x00\x9d\x8c\
+\xbcuQb\xa8\xd4UBC;\xe5\x00o\xe5\x97+\
+\xa9\xc2p\xc5\xb8\x11\x98z\xdf.\xba\xcb\x0f\xf6y\xf9\
+\xc1\xce+\xbf\xce\xfd\xe2\xbe\xe3\xf79\xdf\xf6\xaf\xfd\xd5\
+\x03]q\xa0\x80V\xe0\xeby\xba\xd86\xbb\xe0u;\
+s\xd9\xfek%\x00\xe5\x07\xb9\x17\xdd\x97Mc\xae\x9e\
+G\xfc\xd6\xbb,\xf4.\x07\x80[\xfe\xe6\xf9cL\xcf\
+\xe1\xbf{\x1f\xeb(a\xe1s\xf5\x92Z\xf3!1\x81\
+\xa1 q\xda\x03\xf6&\xaa^~ \xe6\xa6\xf7\xef\xed\
+\x1e\xbb&\xc3&\x92\xf9\xff\xfd\x95x\xf2T\x1d\xe8\xff\
+\xbf6\x5c\x90\x87\xb1,\x9f\x9d2\xf5\xfen\x98\xdfA\
+\xf1\xbf\xd1\x18S\x00\xcc\xe0\xddv\xc9\x85n\x19E\x7f\
+'`u\xf1\x8d\xed\xfc\xa6\x04\x10s_p\x0b'\x90\
+7\x11D\x02\xc7t~\xf4\x222\xdb]\xe5qL\xef\
+E\x89\xa2\x09\xb0QzPKP\x8b\xcd\x87\x0d\xc5\x00\
+q<9\xb2=\xe0\x97y\xc6\xa8 \x22\xb8\xa9\x07\xaf\
+\x9f\xe3\xe2\xdact\x11\x0f\x07\x8c\x1a\xf7\xbf\xaf*\xff\
+\x02\x862\xbc~\xdf\xeb\xd3\x02\x085\xb6\x02-\x06\xce\
+\x865\xcf\x0e\xb0\x8c\xa7\xf5\xec\x07\xf9\xd2\xb9 >\xbc\
+\x1a\xba\xc39iK\x91L6*]m\xe0\x04\x02j\
+\xda+\x93\xee};\x82\xe5\xbb\xcf\xed\xbf\x03dh.\
+\xb8\xd0\xed\x8f\xb9T\xe4&S\xdf\xdd\xc7\x05\x19\x97\xa9\
+x\xd22\xc6\x05\xb1\x06\x80\xdap\xdc~\x8cI\xdcC\
+\xc0\x0b\x00J\xff\xebR\xdb5\xcf\xbd\x7f\xa7\xcc\xa1\xf9\
+p\x91\xffF23\x1cb\xd40\xefC\xb4Hf\x99\
+\xa3\xae{\x82\xb6\x96\x02\xd3\x5cH\xd5\xf6\xc8yE\xe9\
+\xf4z2)\x007\x8eW\xa8\xd1u\xf1;\x0f\x02#\
+\x17\x15\xe4\x19b\x8e\xe2\xcd1\xee5\xf4\xc4-}\xa1\
+\x0a\x03:8\xacjN\xa9\x5c\xd3\x04P\xea\x10\x06F\
+\x9dg\x80\xa4\x8bI\x06\xccE\x99\x00\xb8\x1c\xca\xd4\xfc\
+\x95\xc3\xcd\x1e\xd8w\x0c\xa7\x0bQ h\x9f\xa0\xfe\xc5\
+\xe1\xac\x1aZj\xefj\xefe`P7\x9f\xbb\xf6K\
+\xafL\x9c\xd7w\xc1s\xb08jD\xe8d\xba]\xa0\
+\x17\xc7@JFE@\xe6\xc2(\xc0G\x86\x98CC\
+\xcc\x89\x83\xea<\xaa55?\xa9\xa5/\x07\x93\xba:\
+1=\x22q\x1c\x99\xec\xdf\xea~ `\xb7^\x1c5\
+\x17\xb4}\xc5\x81\xd1_\xdd\xfeE\x81N\xbfw\xf3w\
+\xf2\xf01\xb6\xf6N'w\x1dcR\x0f\xe6H\x03\x84\
+\x88Ni?\xe8\x9cr\xb49\x86\xfd^I\xa6\xb4\xda\
+\xa7\xa9Y\xe7\xa0\xca\xb0\xa91\xe6\xb0\xa3\x06\xab\x89\x8c\
+\xbd\xad\x1a\xcf\xd4d\xd6\xbcrT\x95fpd\xdd\xcb\
+\x02\x7fZ\x11\xc3}\xfb\xf0\xb4\xdf<7\xe6\xc7\xe0\xc7\
+}vy\xae\xbfY\x98\x1d\x09\xec\xab]\xde\x1f\x8d\xb1\
+\x89`\xd6:Z\x0fv(\xd4\xdf\xaa\x89Fq\x96I\
+\xbf\xfdZ3\xed>\xdb\x9d3\xc6\xd6\xf7\xbd\x80~\x81\
+>\x06\x12\x86\x15\xa0C\xe9O\x80\x95\xea\xee\x22\xe0W\
+\x02\xa3\xd4\xc1\xbeJ\x80\x5c\x00\xac\xfe\xdd_\x1b\xaaz\
+\xc4\x0a\xf7\xef\x1a\xe3\xf8\xf7_;\xc6\xf6<\x87\x87\x07\
+8\xe1\xb0\xb3\xa3\xeeU\xa5\x0a\xda\x01\xfe\xe6\x18S-\
+45\xef\xd4\xa8W\xbbH\xc0/\x86@\xae\xf9\xc3U\
+\xc6\x98\xfa\xa7\x03\xb6\x9c\x1f\x19Z\x80\x96\x8c\xb9\xd2\x18\
+\xa5)2\xde\xee\x17\x19Z\xf6\xa3Q\x9e\xcbn\x10o\
+\xfc\x8eP\x91\xddS\x00\x10\x0e0Uz\x19}\x0cP\
+\xa2^\xa9\xf9&\xf6\xa9\xcb\xc3\xe1\xeecL\xc0\x16\xcd\
+\x06\xdd\x18\xf4\xabV\x93\x1c\xcd\x92j\x9b\xc7>\x02\xa2\
+Q\xa3\xed;\x01j~\xde\xbfo\x8c\xc9\x0fh\xa2f\
+\x80X]<\x8a1\xc3\xfe(m\xe2\xcf\xb0\xcb\xa8\xe8\
+2\xd2\x98\x82\x18\x06\xec\x19\xe6\x9c\x12\x05v\x99?\xc3\
+^\xba\xaf\x1f7\xc6d_=\x07\x00\x8cV\x88@\xc1\
+\xb9\xf7\xfeJ\xa2\x94\x18\x01Ls\x1e\xcb\x9eX'\x9a\
+\x0d\xee\xc7\xf8su\x0e\xcc+\xfb+\xf1g\xdfj\x8f\
+\x0b `\x8f\xdc[I\x90\xb0\xbb%\xfe\xaa\xf4\x81\xa6\
+\xc3\xe7\x8fq\xfc\xf7\x9fZ\xc6\xf6|\x18Q\xfc\x13%\
+O\xda\xfb9\xdf\xec\x9a\xef\x02o\xf7\x09f\xa1\xc4\x83\
+@\xd6\xbdj~\xa3IV\x00_\xc4n+\xb0\xff\xd7\
+\x12\xdf\x5cK{\x9c\x07T\xf9^\xb3\x0f(r\xaf\x02\
+F18\xf8u\xd6\x0f0\xa1kA\xee\xc9\x02\x1c\xf2\
+~\x98\x8a\xc5\x14\xc2\x00\x04\x98\xb5R\xb5\xde\xc6\xf0\xb4\
+\x0c\xb38\xc0~\x13\xbf\xf8\xef\xe2\x16\xfe\xbc\xe7v?\
+\xfa\xea\xaa\xff\xce\x9b\xf3\x03X\x008Xg\x0c\x1b\xcf\
+\xd5EM\xfd,\x90\x15\xf8{}\xdf;\xc0\xd3\x03|\
+\xf1\x8a8\xc3\xe7\xf5\xbe\xfc<q\x04 \xb0\x8b\x02\x9a\
+W\x01\xb6\xf9\xe3\xcfz}\xeb\x0d\x88\xf1<M\x1c\xb0\
+\x80\x18\xeb\xe3\xe7\xde\xbd\xce<`$\x8b\x13\x94~\xd9\
+\xcf]\x93\xad\x032\xde\xf7\x82\xd6\xad\x0d@\x0d\xe0H\
+|{\xaa2\xea\xe3X\xcc\xe2\x0d\x10\xfc3\x97\x9c\xf0\
+\xeap\xbekb\x04\x8c\xeb\xf9Jy\xa3\xfd\xd4\x1eP\
+\xc0\xa8\xad\x1f\x86\x81\xc04\x99\xfb\xdd\xf25\x05\xc4\x90\
+\x11\x13,\x90\xb6\xf1\x18^\x13\x04\xc1\x92!\x1d\xcb;\
+Olosf\xc3\xcb\xd0\x9c\xaaL\xf7\x1aP2\x1c\
+\x0e\x02\x80\xc2\x82q\xb4\xba\x18\x83Zw\xdd\x05d\xba\
+\x00\x06\x0cp\xa7\xbe\xf8\xb2@\xc4\xce\x82\x18\xeen\x14\
+\xea=\xa4\xd8s\xf9\xbc.\x12\xf3\xda\xc51\x1c`\x9f\
+\xb7Q\x97\x0f\x99\xef\xdd\xa9\x5c\xa0]k\xc0\x85\xc0Q\
+\x03\xdc\x10\xfe0\xbf\x905\x81n2m\xdaHU\xdb\
+7\x8e\x9a\xef^\x17\x85\xdd\xe7\xec\xc0\x88\xe7\x17\xf0\xf8\
+\xef\xe6\xa3\x07t=C\xacf\x15UOF3\xb5o\
+\xd5\xa7X\x9b\x9e'\x85\x0a+\x93\xd1\xdb\xc6\xc8\xc0C\
+\xd4\x1dH\x0e\x15\x8a\xad\xf6U\x1ck\x17\x0dD\x9f\xc1\
+J\xc0\xbf\xfb\xf31&\xa4<\xfb\xbe\x80\x888X(\
+\xf1J\x0dJlI\xc0\xe3\xbb\xc0\x1beX\xad\xa4y\
+d }>\x99d\xf3\xa7\xb4\x01\x22\xa9\x1d\x9a\xf5`\
+\x90\x9dW\x17\xb2\x0b\x89\xb8\x8c\xbe\xf0\xa8Z\xce\x1b\xe4\
+=bv%\x1e\x04a\xa7\xe6\x1c\x0au\x05\xd2\x09\xd8\
+\xd4\xd6U\x86\xd2~r\xee\x18\x5c\xb5\xf0\xc4y\x9cc\
+\xcf\xe1\xf9\x01E\xfaGs\xa09J\xe6\x0bS@\xe0\
+'P\xa5\xfa\xcf\xb1p\xa1\x08L\x94\x8e\xb0C\x1d\xb1\
+N`R\xa2R.\x06\x0e\xb5\xcf\x85\xea\xad\xf6\x17U\
+\xfcacl*\xf5E}\x17\x10;gj\x0c\xd9\x07\
+\x8e\x9c\xc0[)\x8fvs\x00\x89\x00G\xa5\xda\xadM\
+\xdb\xd5\xc7\x982\xec\xa8\x9b\xb4\x15\xb4\x1d\x8c\xc8\xe6\xee\
+\x11\xeb\xb9(fJ\x1cR\xe7\xad\xba\xc3p\xc0\x88S\
+\xc9`\xab\xf5\x04|`<(\xd5@\x19\xb6\xdf\xa9b\
++9a\xe7\x05F9\xc7EE\x96\xd9\xd5\x1eQ\xe0\
+\x95\x00\xd59<\xdct\x8c\xad+\xc4\xe1\x13c\x9c\xde\
+\x06\xabT\x90\x9d\x07\x00\x1f`I \x89Q\xe4\x9e\x88\
+#}\xe6\x8d\xc7\x98\x02E\xd4G\x14q\xbf\x7f\xbd\xd6\
+-\xa6\xd9Y\xcc\xb4\xa2\xccc\x94\xc4\xbe\xd4\xfe\xb2?\
+hnD5\xbf\x80\xa4\x04>\xc7\xe0s\x0d\x1c\xdd?\
+\x80@Tyj\xe5\x00\xf5\xd4$W\xcd.;\x1eQ\
+\xb2R\x9d\xe7\x80\xb9\xb71\x8e\xbc?\xc6IT\xfcK\
+$N\x00\xcc.\x01\x16\xe2\xf0\xd8\xdf\xbbSc\x1c\xbf\
+\x9f\xac\xfe\x07fP\x95\x92\x01\x1e\x04\x04\xec\x83n\x0a\
+Jo\xf4\xa5'>\x18\x11@\x00K\x05\xce\xe9\x9eP\
+\xa5\x02\x1cP\xebr\xcd1\xa6\xae\x00\xee\x07\xfb\x94\x1f\
+\xa4$\x08\xe9\xb2\x89\x0dV\xfbH\x80\x16\xfb\xd1\xc5\xf2\
+\xde\x19\x87\x95\x9d\xe7/\xbc+\x00\xe7\x9ds\x1f&p\
+\xc3\x08R;-\x90\xaf\xf6v\xd4\xe7\xb3\xfe\xfb\xb7\x8d\
+1\x89\x00\xab!\x07\xec\xa6\xe6\xba\xf6oJ<\x0a\x90\
+\x04\x5cG\x1b\x00\xc5Y\x97\x97\xc3\xf7\x8d1\x89\x11\x0a\
+\xc0\x9dc\xe7\x9e\xdd\xe4\xbf\xb9\xb7\xd4z\x0b\xd4\x00k\
+\xceUJ\x80vo\x1ec\x9aw\x01 G\x9c\x1d\xf6\
+~\xda\x9a\xb2\xe7J\x01\xdc\xbf\x80,\xa5'\xce\x0dq\
+U*\xfc\xdah\xb2\xdb\x80r\xf3\xa24\xc9\xfd\xc4\xdf\
+M\xe9_\xad\x87@N\x80&\xe1%\xa1&C\x1d&\
+\x10\xff\xaf\x12I\x02$\xa5'\xfc\xbf\x00R\xcey\xd9\
+\xc5\x88\xbb\xba/\x89\xef\x15\xf0$\xd0\x95p\x02l\x01\
+\xac$\x10\x88\xd5\x01T\x89\x11\xda\xd7\xce\x05\x06\x14\x0d\
+\x12\x01y\xd3\xe4\xd2F\x9a\xc6B\x01\xb2J,\xf8\xdf\
+\x98\x8c\xfc\x18v\x8b?\xc3\x8f\xb3\x0f<\x07\xfb\x8d\x8a\
+\x0f\xc0\xf3\x1c~\xdf:Y\x87\x9c\xbb\x12#\x94\xc0\x8a\
+\x7f^\xf7\xa0\xd7\x07,\xd3v\xe0\xdfZ\xcf^\x93\xef\
+|[\xc7\x88\xd5\x9e&\xaa\xc7\x0f\xe9]\xe0\xf8\xb7\xec\
+\x07{\xdd\xe3\x17\xfb\x9d\x06\x81\xf7aW\xf8a\xfc\x0d\
+\xef\xe3u\xc4Q\x9dq\xdd\x99\x00\xde\xa7\x8bp\x9bW\
+\xf1#@\xb0\xb7\x0d\xf4|\x006\x81=?\xcd\xdfw\
+\xbf\xac'\x1c%\x82\xa2\xa9R\x80T\x8f;|\xce\xae\
+\xa5\xd6\x19\x09\xfe\xbby'F\x0e\xe8\xe6\x97c\x98\x8a\
+\x0f\xddW\xbe\xceo\xa2\xed\x9d\x09\xdf\x13\xdey\x8eS\
+%v'\x80\x17P\xf5\xda\x93\x11Fi\xb7v\xdd\xa9\
+\x16_\xed\xfd\xd8.W\x9c\x0c\x8f@r\x98\x9f\x8f\xe7\
+\xfb'&G?\xb5c\xbb\xeb\x8f1-\x88\x80\xd9s\
+\x8d\xe9\xbc\xd4\x14\xc02\xc0\xc4\x0a9.\xbd=\x83\x05\
+\xb0\x902\x97\xd4Y\xbb\x98\x1e1\x155\xa5\x16\xf2\x13\
+K\x87\xdf\xf5\xf3\x5co\x12\xeb\x08B[\xed\xc7\x5c$\
+]\xa5\xdf\xc47\xf1\x85z\xde\xde\xe7\xd2E\xf6\xcfk\
+\xbb\xa3\xdd\xe7%S/p\xf1\xbc\xe6K\xa6)\x1b\xbb\
+6\x86y\xbc\xe4\xc5\x94\x14|hE\xe6\x8f\xff\xb7\xce\
+\x17\xa6\x02\xb11\x01$\xea'j\xe8\xe5\xe3p\xb4\xcf\
+S\xaa\xf9A\xbaw\x7f<\xc6T\x03\xafD\x02C\x04\
+\xc2\xed\x22\xec\xdd\x15\xfa\x01\xee\xb5@>\x8f\xc0\xa6\x89\
+3\x96\xe8\xd1hOy\x83)\xc3\x12\xc7\xbb\x1c(m\
+q\xee\x1c\x86\xc0\x17\x8d1\x19\xd4\xde\x9e\xd2sR\x11\
+\xc7d\xb0?\x893Q\x97M&\xba\x10m\x19pH\
+\xb2\xf3e~]\xb4\x1fj\x19\xe2\x1e\xb8sp|n\
+\x99\xbbd\x8e\x8aq\xe0\xc0\xa3z\xab\xc1\xd3>\x8a\xe8\
+\x0d\xc0\x8f\xfa<\xf1/\xeb\xc1P\xba(9\xc6\x80\x0c\
+\xfb\xd8\xbca\x12\x00\x92\xd8\x05\xef\xc3\xa0\x09\x08\x5c\x10\
+\x1c\x03@\xa4u\xeb\xc0\xa4\xcc]o\x07\xe5\xc2Q\xa3\
+\xec\xf9\xcc/\xe0\xc8\x05h?\x09\xe4e\xf4e\x22\x9d\
+3\xe7\xc8y\xd3\x05\xc0E\xddjV\xeb\xe2\xe48\xc8\
+\x04\x08\x00\x92\xd1\xa8\xee\x02\xba\x09\xf8\xf9\xbb\xc7\x98\x9e\
+O\x86$\x19\xd6\xaa\x09\x0d\xe3A\x86r\xf7\x87c\x5c\
+\x84\x1a\xb5}F|\x8f#\xcfaQ\x83+\xd3\x22s\
+\xaef1\x0e\xbc\x8c\xc8\xc9\xe5\xc68\xbe\xce}\xc6\x98\
+\x02\x1e\x14\xd9\x88?U H\x0d\xfb\x0a\xb9\xf0#\x8a\
+\xa9t`\xe9\x11s\xdb\xed\xe2\xab\xda\xdb\x04\xd4\xfa<\
+\xef>6\xc6\xd4V\xd1\xfeuN0x\xfe}\x8c\xa9\
+m\xa2@\xc1\xba\xb3\xff\x01\x0e\xcaQ\xec\xed\xe8\xa8\x91\
+\x07\x98\xdb?z\x8c\x09\xd0\xb1o^\xbdR\xcb+ \
+T\x12\xc0qM\xa0F|\xb4\x00F\x08?\x8d\x8dd\
+*\x87T\xdb\x22\xd6v\xf31&\xe0\xc9\xfe\xb6\x8f9\
+P\x00\x80\x04\xb0D\x0b\xd5\xe6\x96\xfa;j;\x06\x03\
+@\xdd\xfa\xb13(\xd5\x18\x02>\x07\xea\xef\x95\x0fW\
+:\x8cL\xd6\x13W\x8d\x82j\xcf\xa8\x9f\xba\x92\x16\x19\
+P\xa5I\x9d\x82\xa9\x0f;M\x14\x01\x8c\xf5|Lj\
+\xb8\xcf\x8b\x88\xee\xff3\xc6\xb4\x9e\x02}\x19O\x0e\x90\
+\xc0\x0f\x03\x11\xa3/\xa5G\xe6\xb7DN\x1ft\xf8\xc6\
+\xc3\x83\xd2_\xfc\x8c\x09\x80\x06\xa8\xa0\xc8'3\x5c\xfb\
+\xe1!cl\x8c\x943\xef0\xc6\xc4\x90r_\xc4.\
+W \x04\xa0i\xea\xd3\x95\xa9\xb4\x0e4?^:\xc6\
+\xd6=F;\xbd\xc3-V\xb1=@\xdc\xe1\xd2\x87\xcb\
+\x1c.39\xb4\xec\xaaZ\x7f\x99\xf5t\xb3\xa8\xf6\xae\
+\x02\x10\xf6\x9d\xfdTC\x1f\x06I\xd9\x09\x806\xad\x8f\
+\x9b\x8c1iu$p\xdc=s\x8c) f\x1f\xac\
+\x9f\xcc:`@`\xee\xfc\x01\xb8\xe3\x07\x94\xf8g\xc4\
+C\xf7?8\xc6&\xe2W\x80\x92\xf6\x81\x80\x9a\xa8\xfc\
+W\xc6\x99\xa6\x0b\x7f\x8d_z\xe71\xa6\x0c\x9c\x12\x16\
+~W\xcfT*\xbd\xfa\xd11&\xa6\x82L\xad\x9a\xfb\
+\x9f\x18c\xaa\xfd\xe6\x9f\xba\xef\x01o\x80I\xfd\xe5\xa9\
+\xe4\xf3\x83r\xef\xef\xbef\x8c\x89\xa9\x90\xe7+-\x8b\
+\x9e\x19f\x1f:\xd3\xc9\xf9S\x0b\xaf\xbdl\xecF\x89\
+\xac*\x9d\xca\xf9\x04\x0cU\x09\x0aM\x0f\xdd7hW\
+D\x13\xa5J=\xe2\xd7\x1cO\xf3ZBK\x9bD\xdb\
+\xcb\xe7\x06\xe0\xd3\x86\xb5\x89\xf6V\xfb@\xfb\xda:\xf1\
+\xa7\x00\xf3\xee{\xc0\xa0s\x06H\xe5Ob\x82\xd8o\
+\x18\x05\x18\x91\xfc&\xf7x\xf73\xf8=\x80G\xf7\x7f\
+\x03\x12\x0aP\xec\xfe\xbe@\x90_\xc3\xbf\xe3G\xf1\xef\
+\xec+\x09\x15\xfb\x8d\xfd\xe7G\x8b;\xba\xaa?\x80\xc4\
+\xfbv \xa0\x97\xca\x12]M\xdb\xd5\x9ao\xaf\xcf>\
+\x9bG\xf6\xd6<y_\x09S\x00\x5cocg]\xba\
+\xd6[/\xd9\x958\xf1\xfc\xfe\xbd\x8b\xf4\x01\x98\xba\xea\
+>\x00\x0d0\xe3\x1e\xf2\xf9=_\xef2\xe2\xf5{\xe0\
+\xee\xf3vM\x01\xeb5\xc7\x8f\x9f\x98^\xaf3\x11|\
+\x9e\x16_\x14SGbK\xc2%\xa2\xa1u\x8e\xed\x93\
+.\x16i>[\xbb\xc6\xdd%\xc6\xd8\x183\xa7\x16\xb3\
+\xf2\xd1L\xd0<\xb1\x90e\x07h\x10no21\x02\
+\x88\xfe\x09\x10\xde\xb1t\xe4\xdc\xd4\x0aC\xb9.GK\
+M\xb0\x85P\x1b\xa1\x96\xbe\xf7=\xe40\x0dG\xf5\xda\
+\xd9\xe8\x97\xcb\xf3}j\x12\x09\xecb\x196\x96\x89E\
+]\x9e)\xbe\x97\x8f\x039\xd7\xe2\xe79+S\x08\x81\
+\x0a\xa5\xacD\xabP\x91\x05|\xbd\xe6\x1e3\xa1\xf7_\
+\xb7\xc0=\xf0\xb7ql\x98\xde\x07\xb2\xd7\xf4\xd88\xde\
+w\xab\x8d_\xd5]\xf5\x15\x06\xac\xf4\x0d,p\x92\xb1\
+&\x1aG\xcc\x8b\xe8D\xda\xa5U{1mg\xd4\xb2\
+{\x7fb\x89O\x1bc\xeb\xdf]\x19\xae\x93\x5c\x98\xe6\
+\xc5E\xda\xdb\xcc\x09\x10}\xb7O\xd4\xb2\xa3\x0eBT\
+u\x95\xa0\x19\xc0`\x09x\x82\xf0Vf\xcdz\x99w\
+\x06\xcf\x05`\xbf\x0b\x80\x88\xdc\xdcs\x8c\x89\x82\x97L\
+\xdf1\xecZUwQ\x1fo\x12\x0a\xef\x8f\xad\xfd\xc8\
+w\xbf\x97\xcf-cE\xc4\x8d\xc3\xf0Ccl\x81J\
+\xd5L\xff\xd6\x18\x13#\xe4\xafC\xc5;\x7f\xf7\xa9\xdd\
+\xa7&\xf5`\xed\xe68\x0c)E(\x0a\xbc>\xe7\x0c\
+=\x07\x18\xa5\x9a\xc3\xc1q\xb2\xbf\xd4\x08\xba\xc8\xed\x13\
+\xa2=\x1c@\x089G\xd3\xfcrD\xf4\x95\xbf\xd7\x18\
+S\xbfe\x17\xb4\x1a\x5c\x81\xb1}\xce\xa0\x01\xa0\x88U\
+AZ}y\x7f\xfbIm\xa9@\x80\xdd\x91\xd9\x00\x8c\
+\xb9\xb8:\x22\xeb\x02v\x8e\xd4\xea\xb3[2\xc3D\xc0\
+\x88\x84\xc5A\xab\xc0JW\x00\xed+='{\x04 \
+\xfa\xad1\xa6\xf3\xec\x22d\x7f\x89\xf3\xa9\xf5\xe7\xa89\
+\xbf(\x9d(\xdaj\x82Q+u\x9dP\xea\x01\xc8\xe2\
+ \xeb\xa6\xd0\xb4H\x8a\x01\xa1v\xf6rcL\xfd\xd6\
+us\xa0\xaa\xaf\xfda\x02\x90\xb2G(\xe0.\x5cb\
+\x7f\x10\xed\xde\x16\x08\xa5.\x19Y@G\x89&\x06\xe0\
+\xa2\xca_5\xf8\xecf\xf6{e\xee9J\xdax\x09\
+\xa0\xedg\xfb\x8a\xe3\xe7<\xa8AW\x1a\x93\xfbl\xff\
+\x8c1\xa6\x1a\xe9\x931\xb6\xff^\x9f#\x81\x7f\x05\x1c\
+\xc9\x80\x95\xe8\x1eU\x7f\xc0\x8bL\xbb\xd7\x09\xa3\xa0D\
+\xf9\x02\x90\x14\x90\x02P\xeb]Y\xd83\xeb\xab\xa69\
+\xf7\x15FV\xa9a+\x01\xd0^\xeb39w\x7ft\
+a\xd1\xd3\xaaEO\x86\xae\x02t\xf7-\x87\xeb\xe6\x11\
+eMW\x8e\xda\xf7\xd65\xda\x22D&Q\xeck\xff\
+\xd3\x10\xe1?\xa4\xc4\xe9\xb8\xfbV\xcd\x05\x0e\xe0\x19\xc9\
+\x5c\xa2^\x0al0\x0c\x9c\xffNU\xcd\xbd\xa5\xdbE\
+\x01+\xd1:\x00XW\x80\xae\xcd\x98\xfbB\x80\x1a@\
+\xe3p\xbd1\xa6R\xb3\x94\x8c\x14#E@B\xacP\
+\xc6\x1bP(\x83\x1e\xc0\xb9\xda\xa6*E\x88]V\x82\
+\x82\xf9\xb2\xbb\xe3\xca\xf0)\x00;\xfbe\xff\xc11\xa6\
+{\xffzSi\xe6\xf56\xfb\xbf\xff\x871\x8e\xe6\xec\
+\xfb\xc6\x98\xa8\xba)i\xab\xcc\xbd\x80\x0f\x85;\x22u\
+\xe5\x17\x11\xc9\x8a\x98\xea\x80\x1d\x16\xe0A\x86\x92\xda\xb8\
+uO-}\x05p?~\xc6\xe3\x87\xd8\xdb\xe1I\x87\
+\x9f^\x18)\x02a\xe7\x12p\xcb/\x89_\x06 )\
+qN\xe2yj\xad\x05\x94\xee\x19~\x88{7Z\x13\
+\xda\xb2b\xfe)e\x008\x10\x8b\xac\xeeL9?\x95\
+p\x10\xd8Xg\xf7\xad\xf3\x000\xe7\xafx\x1e\x7f'\
+`\xb4\xaf\xf9G\x18|\xec\x89Zc\xcc!\xb5\xe2\xd1\
+H\xc1\xb0\xac\xf3\x8e\x09\xa0\xbd\xa3\xd2\x9b\x88\x92V\xc0\
+\xe6>\x0d\xa3\xb1\xda\x13\x12W\xd6\x0d\xe4\xdecL\xf7\
+\x88\x80\x9c\xdfa}tM!\xa6\x0b\xe0\x0d0\xc4\x0e\
+\xd6=\xa4\x8d+\xc6\x0f\xa0V\xe0\x1f\x8d\x83:\x8fJ\
+^$R\xd8;\xf3$\xc1\xa7\xdb\x89@\x8b\x7f\x82\xd1\
+(0\xc4\xd8{\xe2\x18\x93\xa6\x04F\x81\xee\x14\xba'\
+H@```Nx\x1f\xccP\x00\x00\xe08\xc0p\
+\x89\x0b\xbao\x04\xac\xf6\x07\x8d\x11\xaf\xcbn\x89\x1f\x9c\
+\x07\xfb\x99\x1f\x03@f\x8f\xf9a=1\xda\x03\xd6N\
+\xdd\xf7\xef~\xee\xed\x00\xbd\xbfx\xcb~u\x8f\x9b\x07\
+\xf7\x12\x7f\xce\xe7\x14`\xf7L9;\xdd\xbb\x02X\xd7\
+\xaey\xe6y\xc45\xfc%\x09\x0f\x80\xc5\xd6\x9e|\x8d\
+\xff\xbaf\x9a\xcf\xcb\xff\xf3\xb3\xbf\x13\xe8\xfb}\xed\x00\
+\x95\x04;\xdf\xfc6\xbf'~i\xdd\xabNKh:\
+\xf7\x17\xb4\xb6\xea\xbe\xdf\xe6\xc2\x89\xd3*!\xb4?\xc4\
+\x97\xe2\xca\xc4c\x05\x10t\xa0\x92\x9f\xa1$#\xf7\xdb\
+\xa9%\x1f\xf8g\xa7Ss\xb5\xf7[\xa6\xf5\x03\x17\x11\
+p\x8fk\xe00=\xc0\x08\xd7>\x98\x7f??\x0b1\
+\xd4\x88\xbf\xe28\xee\x99\xcc\xc4\xe7N\x13e\xe3{\xd0\
+\xf1\xbf\x02\xf4+\x06\xc1\xbb~k\x1fq\xc6E\xa8T\
+z\x7f_\x16\xb4g\x8eM\xac\x05\x03(\x10\x03\x1ca\
+\xc2\xb5\x12\xc8_#T\x8c;N\xd4\xd1\xd4\xee\xd5\xfb\
+\xf56\x82\x02H\x19\x83.&\xd8\xdb\x5c\x08p[?\
+\xd1\xaa\x89\x8e*\xff\xe1\xdf#rw\xc3d\xce\xe7\xe7\
+\x9fkw,\xb4\x8d\xaa\x86\xa8\xb5\x0b,\xb1<\x08\xb5\
+\xf9\xe1(~\xcf\x18[\xdb\xb2\xdd\xdf\x8f\xb1\xb4-:\
+\x8e\xed\xfdJ\xac\x042+\xf0y|(\xff\xe6\xa1\x8b\
+}\x5c\xbe\xa9\x88\x9b\x07\x0e\xf7\x0bC\xf9\xfal\xd6\x9d\
+a\xa1\x0e\xeb`\xaa\xf5C\x85\xf39~u\x19[\xe0\
+-\xd0\xe1p\xbf,\xdf\xef\xbf29\xf4\x01/\x0a*\
+\x87\xfd\x17\xc7Xj:\xefq\xb8\xc7t\xa0Q\x1a\x1f\
+\x18\x07\x01\x95]@\xfe\xc0\x00Z/\xdf=c\xf7\x8c\
+I\xf4\x092\xcap\xc9\xb0\xbc#\x17\x0bG\xcd\xbcP\
+\xb3\x97AI\xfb\xc2\xa2\xbe\x85*Z\x8e\x89R\x1a\x80\
+\x8e\xcc^o\xe3\xc8\xa1\xd0\xdf\xde\x85\xab\x1f7F\x83\
+\xe7\x95A\xe3\xa8\xa3D\xa7F\xb0\xd6\xa7\xf5\xed\xad@\
+Z\x9b\xcf\xd7\xec^\xbd{\xf5$\x12\xf4\xb2\x88\x03&\
+\x83\xaaox\x89/\xa2\xc4c\xe4\xf8\x5cy\xae\xba\xc0\
+9\xac\xf6\x11\xc7@\xe0\xae&_\xa0\x03\x18\x00\xbc\xb9\
+ \xe2\x80\x16\x95\xddE~qm\x0a\xad7\xed\x82\x9f\
+\x1e\xe3\xf8\xef_?\xc6\x94!\xa6\x9d\xa14\x88\x03\xa3\
+-\xa0\x80\x98C\x85a \x93,\x13\x04\xf1\x8f\x18\xd5\
+\xc9\xad\xc6\x98\xe6\xf9\x81cL\x14J\x0efj +\
+\x93\xf8\xcdcL\x8e\x97\x0b\x0fp\x93\x92\x0b\x19F\xfb\
+f\xc0O\x0b\x00\x85\xe2O\xebA c\x9d\xbf\x7f\x8c\
+\xc9N\x10\xb3\x91\xb1\xf29zW\x14\xf6\x08\xc0!S\
+\xc7\xb1\x96\x89\xbc\xcf\x18S \x9c\xf9)\x91B\x0e\x16\
+\xf1I\x17_\xef\xc2\x00`J\xc0U\x81\x0e\xb1\xafd\
+&K\xe4*\xd4\xe0\xfd+\xc7\x98\xd4\xd4\x89\x9f)i\
+\xa0\xf5\x829\x85\xe9\x91\xda\xeaZ\x97\xa6R\xac\x96v\
+w\xd51\xa6\xc0\x92ck?\xd9\x97\xbd\x7fr/!\
+1\xaf\x02\xbcd\xf6\xaaDE\xe0\xc2\xde8WJ\x8b\
+\xd8\x8bP\xf0G\xbe\x7fd\xfcK\xc5\x1f J\x9c\xee\
+\xe9k`P\xa2x\xee3v\x97\xe3\xcd\xa1G\x99V\
+\xea\x83R\xac\x06X\xcd\xe2\xd9i\xab\xe7>\xbff\xce\
+5\x8a\xb8@X\x80%\xe0F)\xf69d\xa0e\xd8\
+8\xec4\x5c\xb4W\xd5NM\xa9\x0b\x0am\x00[\x0c\
+\xc0R\x95\xa7!\x93\xcc\xd1\xfe\xd7\xc7\xd8T\xe4ii\
+T@p\xd91&\xf1F\xf7\xa2Lw\xee\xf1\xea\xe2\
+\xc0^i\x13K\xb4\x0f\x95\xfd\xfd\xe9>\x11\xe0\xe3\xf0\
+\xe4\x94\xcc\xbc\xff8f\x0d \xe7%\xcf\xb1\xbf\xdb\x18\
+\x13p' \xec\x8ey\xec\xfb\xfe\xf5cLvZ\x0d\
+\xbf\x1a\xf0\xb4\xfd\xab\xf6j\xd4\xc6G\xad\xf3\xd7M\x94\
+p\xe7X\xb7\x0d\x1aAJ\x86\x00\x9e\xc4\xde\x94\xf0]\
+a\x8c\xa9\xa6_\xf7\x97\x009\x87\xab\x8d1\x01\x102\
+\xd2j\xff\xd5\xa0K\x14\xfc\xf0\x18SIQ\x0f\xb4z\
+\x1fz\x00\x0d\x8a\xae{\x03\xf0\xfe\xec1&\x0d\x00\xfb\
+\x8e\x1f\x22S\xcfO\xf3>\xec\x1d\xbf\x90\xc6\x86{\xd9\
+\xbe\x90\xc1\xc5Dq\xff\xe6g\x8c5]50\x1f\x94\
+\xbcT\x0d\xff\xa3\x97\xb1Q\x99\xd3\x9e\xba\x00/5\xe7\
+?2\xc6\x04\x08\xd0v\xf1\xc5\xdf\xed\x99L\xed\xfe\xec\
+o\xf3.\xb3\xca\xbf\xe5\xa7\xaa\xb1g\xff\x01m\xe6\x9b\
+\xdf\xe7}\x04\x9e\xee-\xcc\x0d\x81\xbb\xdf\x07(\xe6^\
+.\xa0Z;E\xcf\x8bA\xd0\xfb\xd6K\x08t-0\
+\xbf\xe7\xfe\xf6s\xd3J\xaa\xdf\xf7\xfa^\xd7w\xf7\x00\
+\xbb\xf8\xfa1&\xc6\x01\xbb.\xde\xea\xed\xe1\x00Q\xf6\
+\x99\xe7\xe5G\x9ag~+?\xb0'\xd8\x04\xfa\x18\xa1\
+(\xfc\xbe\xdc\xa7]\x83\xabS\xf7{\xc9\xb1\x9f\xfd\x1d\
+ \xc0\xe7\xeaL\xed\x0e\x04\xf4n\x03\x9e\xb737\x9d\
+\xe70\xcak_\x98\x0f\xcf\xe1\xef\xfd]\x07D:\x13\
+\xc2\xba\xa3\xfawF\xa7\xcfe>{\xdb\xc5N\xc5\xbf\
+8m:\x99\xfc^\xd2.\x0e\xb7?tiJ\xa9g\
+\x01A\x00\x02\xcc\xc9\x8f\x8d\xb1u\x93:|f\x8c\xc9\
+\xef\x97\x08\xc9|\x9f\xaa\x9a=\x07|\xe4Mn\xbe\x89\
+#T\x86i\x5c\x1fo\x8ec}\xf5\xd6\x0f\xfe\xeaM\
+\x84`?m\xcc1\xdd\x17\xb1\xd1j\xe2-\xb8L\x94\
+\x8d- \xf7zc;\x9cl\x1a\x02\x15\xd8\xa2\x12\xeb\
+\x06\xe0\x83\x7f\xfa8\xd4D|\xfa\x22\xda\xe4\x05\x00X\
+T\xaao\x94\x00j\xca\xa4\x96A\x82LwJ\x87\x05\
+f\xd0-h\xef\xcf\xd8\x03\x7f\x8e\x8c\x0d\xd3k8z\
+\xf7\x82\x0b\x22\xde\xf7\x96P\x8e?\x7fU9>\xad\x0d\
+\x84\xd7u\x00=\xaf\xef\x1c\x00\x1b\x90h\x97\x1a\xfd\x18\
+N\x99\xaa\x0a\x08e\xa8\xd3\x8e\xae.v\x22h\x02\x1f\
+\xfd)9\xd66vo[x\xa9|\xffx\xa3N\x9d\
+\x97\x03\xfb\x81v\x10e\x90\x5c\x14\xbdf\xfb\xa6cL\
+\x19\xe0\xff8\xbc\xef\xf0\xbe\xa9T\x03\xb5V\x9f]@\
+\xc7\xef\x8d1Q\xc2\x1cp\x00\x021\x18\x86\xc3\x17\xe6\
+C7\x14\xa8\xa5\x09D*\xc3\xaf\xbf:j\x19Q)\
+\xf3\x1eG\xaa\xceC\x1cnj\xef\xd3E\xb3\x1a6\xc8\
+\xa1\xf3\xd6\xbbC0\xcc\xce\x93@\x8f\x83\xd7\xc5N\xd4\
+\x1ar,\x04\x00\xdf\xb4\x8c\x12\xb7\xaa@J\xa6\x80\xea\
+\xb1\xe7\xc1\xa0\x09 sx\xd4\xe1\xd1\x87G/\xc0\xca\
+ZC\xfa\x05\xe97l~\xdf\x93\xf9CqR\xcb\x1e\
+\xaadQ\xbc\x05n\xd4\x98\x19x\x81\x11GR\xe9\x03\
+M\x01\x17\xa0\xf3\xeb9\x9d\x03L\x06\x17\x13\xe4\x9c\xa3\
+\x05\xb1w\xae\x01\x10\xa8\xd1j:\xd5LR\xd5\xbe\xef\
+\x18\xd3\xba\xa0lb\xd4\x08le4\x5c(\xf6\x9fu\
+R\xfbI\x1c+\x01\xcc\xeeucL5\x8cD\xc9d\
+je\x1c\xb2\xff\xbb(_1d\x5c\xbc\x1c\x12\xef\xcb\
+\x81U\x12t\xef1&f\x8c\x8c\x1b\xc0Lf2\xa2\
+t%2\x0a\x08\x90\x11\x8fCY\x8c\x10vIm\xb2\
+}\x95\xc0\xb4\xb4\x0cbW\xaa\x16\x98\x18\x1b\xaa2\x87\
+\x1f\xb58\x81Fe\xc0\x02\x04)U\xa8\x0c\xb8\xfe\xcc\
+(\xaa\xda\x13j\xbb\x99\x0co\xb5\xf7#\x02\x18\xeap\
+iu\xa8Qgg\xa8\x83G\xb4\x8e}\xac.\x1a\xec\
+5\x80\xce\xfd\x97\x80t\xf7wcL\x192\xaf\xcfA\
+\x093\xa9\xda\xf7\x01\xc8\x12hV\x8d4\xc7]\xdbC\
+\x94\xfco\x1fc\x0a\x08d\x5c9\xae2\xdbJ\x97\x04\
+\xfa\xd4\xba[\xb7\x0e]XN\xae5\xc6v\xbe+\x90\
+w\x0e<\xcf\x17\x8fq\x11\x22\xa3\xb9wQ\xb7+\xc0\
+xQj\xb0_\x9aL%\x0ar\x98\x1d\xe5h;\xc7\
+\x98E\x80)L$]5\x128\xb2\xdf\xe5\xdf\xc8d\
+>h\x8c\xa9\xad\x19*\xf1G#2\xacM\x9f\xd2\x15\
+v\xd7}@\xcd\x1c\x00\xe5\xdf\x93\xf9?|\xee\x18\xdb\
+9\xdd\xfd\xed\x18\x13\xf5\xdf}\xa0\xa4\xf0\xd5\xb1\xd3\xda\
+\x9e\x12q\x0d\x00\xb7\xfb\x9c\xa3\xff\xf29\xcb<\xbcn\
+)\xe9\xbb\xd9\x18\x1b\xd5\xff\xe4*cL\xfe\xc8\xe3\x97\
+\xb1\x95f\x84\x12Zm\xef\x12\x10\xee\xfel\x8c)#\
+\xce\xc1\x06X\xd2\xb8H\xa9\x0f\x86\x9b\xc0\xb3\xd6A\x22\
+\x09\x90\xc1\xde\xdb_)-)\xaa\xbbL}\xba\xb0(\
+u*\xbb\x13F\x01\xa6c\x01=\x80y\x14\xfe0(\
+t\x8b(\xa6\x9b\xfbZ\xcd:;\x02\x98%\x82'q\
+\x90\x92\xb9\x02t\xfc>\x8d\x12T\xf1\xfc{1E\xd9\
+\xb5o\x1ac*\xad\xb3\xdf\xf8\x85=S,0\xf6|\
+\x18\x8a\xfcE\xdf\x05\xea\xa18WW\x1d\x01b\x02\xb7\
+b\x0e\xa9\xa9w^\xf8\x1b\xec:@\x02`\xe7|\x02\
+\x9ah\x00\xf1\xcf\x05\xf6\xbd\x84H`\x22\x90\xd1=\x05\
+\xe3\x8d\xff\xc1\xdf\xcd~\xac\x0cg\xe2\x91\xca\xc0\xd3\xd0\
+\xd1.\xb1\xf7i\xf7\xdc\xfc\x0a\x9a?\x00\x17L1~\
+\x11\xff\x1a\xb0'\x91\xc5\x1f\xe2\xf7\xb1\x87\x02@\xeb\xce\
+^\x09\x8c\xbd\xbfZ}L.\x09\x1e\xf7\xf8\xe6\xe7\xae\
+\x22\x93\x12t\x1dx\xe8\x14u\xfe\x87{\x02`$\x91\
+\x0a@\xd66Y\xd7\x1d\x01\x7f\x07\x00\x9c[\x8c\xda\x8f\
+U\xfb\xef\xf5\xbf\xf3\x7f\xbaV\x92\xb8\x82=\xeb\x81z\
+cv\xd7\xf7\xce\x0c\xf0~\xfe\xbe\x03\x00\xfd\xbb}h\
+\xbdh\xea\xf8\xfc\x9eO\xc0\xdf3\xf9\x18 \xbd\x0d\x9f\
+\x9f\x9d'\x0c\x02\xaf\xefs\xfa{\xaf\xd7\xbb\x1eX?\
+\x89I\xbf\xe7\xf9z<\xe8{/\xd1\xe6\xaf;7\xfe\
+\xdez\xf3\xefh\x22\xf1\xa3\x88\xb8\xfa;\x09i\x1a?\
+\xe2a\xe7\xc1s\xa6$\xe7T\xd5\xa8\x84\x8a_\xea\xc2\
+\x10;H'\xf5\x7fZ\x00\x1c\xec\xe1\x0e|t\x0a\x8c\
+| \x0b\xa32a,\xcb\xfb\xa7\x83\x7f\x89\xb5\xbd\xcb\
+\xf2\xb1\xaf8\xd5\xd8k\xd3\xd7E\x18>\x13u\xe3y\
+\xe3\xcc\x22~\x0e\x16q\xac\x81w\xfc\xc3\xc4\x1c\xf8\xc0\
+\x12Zn\x0b\xcf\x90\xb9\xc0\xc7\xf5t\x9d\x5c\x5c\xa36\
+\xeeZ\xc7q\xd6D}\xb2q=W\x17\xab\xf0:\x00\
+\x82\xa6\xee_\xc8\x0c\x8ad\x17\xd1\xf0\xfa^\xcf\xeb\xb7\
+\xb6\x17\xd5\xe7\x99j\xb7\xbf\xb7\xb0\x0e\xa4\xc0\xdbEL\
+5\x9d\x81\x96q\x0cet\xf7\x1dcLT\xbf\xab\x15\
+\xb5z5@\x11[\xab\x00\x8b\x03u\x9f\x04\x08\xf6\xc3\
+\x8dR2\xc2\xe0\xa6op\x19\x14\x07\xe0-1\x88o\
+\x8a\xc1\xb3/P\xa4\x89\xc1\xc9\xec\xb8\xc0\x19\x125\x95\
+\xfa\xfd\x02\x18\x9e\x96\xda>\x06\xda\xfee\xe0=\xe7\x0b\
+\x92\xd9\x22\xde\x22`B\xe5N\x9b\x1c\x94\xc2\x0a\x84?\
+\x12\xea#\xf1\x1f*\xd8\xa9M\xad\x1aX\x99r\x0ee\
+.\xf2\xddS\xc68~\xff\xb71\xa6L\xf2/\xa6o\
+m\x0c\x92\xb6'\xbb\x17\x8d1]@\x02\xd7\x04\xac\xe5\
+\xc8\xa5T\xa1\xda\xce=d\x8c\xe9\xe2\x96\x11'\x9e\x06\
+\xe9\xd5/\xb7\xb7\xd7\xd1~\xe5\xd9c\x9c^c]H\
+\x22&\x8fZ\xfcP\xed8\x84\xfb\x9f\x1cc\xca\xb0E\
+#\xe2\xe4\xc9'?s\xf23\x8b\x83\xbd\xae\xc7s\xe3\
+8\xa3\xdc\xb98\x9c\x1f\x0eD\xd6\xafJ\x1d \x9bD\
+\x990B\x048\xd9\xe7%v\x96\x0b\xa5\xd4\xd8\x892\
+\xc98jo\xe6\xe2\x06x\xe9F\xe0\xa2C\xd9\x8ba\
+-\xc7O\xdb@\x80\x82\x00X&*\x0ete\x8c\xcc\
+\x1b\x00\x8f\xe3\xc0\xc1{\xd8\x18\x13\x00\x10G\xb4\x98!\
+\xa8\xff\xf6\xb1\xf9\xe3p\xb3\x97\x02$\xfd\x9c\x05\x94\xd6\
+\x1b\x93G[M\x22\x96\xda5\x09\xa8\xd9\x0b\x1a\x11\x1c\
+:\xe7\xcd\xebc\x08\x00\x8ac\x7fj?Z\x1f\x0e\x0f\
+\xea\xae\xdaS\xaa\xd9(\xda\x98I\xba3\xb4\xda\xd5\xd2\
+\xb6\xe8]JP\x99\x7fm\x8c\x0d\x88\x01t\x95\xca5\
+\x07N\x1bD\xe2\x97\x111,\xea\x1f\x80\x98\x18\x9e\x0c\
+\x9d\xf3E\x5c+5v^\xbf\xda\x0erh\x04\x96\xce\
+\xc5\x9d\xc7\x98j\xf8\x017\x00\x1e\xeb\x90\x80\xcb\x05^\
+m\x17\xb5\xa3T\xb3\xcc>\xca\x18\x03\xf4\xd8\xb7dZ\
+\x8b1\xc0A\xe50&\x90-&\x8aR\x1d\x22t\xba\
+\x5c\xa4}V1\x22\xder\x5c\xcd\xb7L\xfb\x0a\x00\x9f\
+.@E\xfd\xe7\xf8\xb9'9|\xf9\xbb\xfd\x13\xc6\x98\
+j\x90{\x17\x1a\xf7\x19\xd1>]\x1e\xdc\x97\xf6\x15\xb5\
+\xf6\x87D\xfd\x9e\x9fB\x93\xc29AQ\xc6\xdc\x88\xe3\
+Vv\x83\xbde\xf7\x01'\x02A\xe7T\xc6\xc9\xf3\xbe\
+*m\xd0h\x9d\x8cB\xca\x9bn\xb5\xf3\xb5?#\x12\
+\xb8{\xc2\x18\x13cH\xed>\xd1\xc90T\x0a\x80\xd2\
+\xc5#L\xc5\xc3\xb5\xc7\x98\x98\x1f\xb440Z\x9a\x18\
+\xdd1\xdcZ\x81\xeb\x7f\x1ac+\x0d\xa9y\xe6\x07&\
+\xf0\xd9\x7f\xf3\x18\x13\xd3HIC\x12\x08\x98\x08D\x91\
+\x0b\x00C\xa5'vG\x8b\xc0yB\x9dw\xbf\xa0\xc2\
+\x13\xf5\xcc\xe7*M\x12@z\xda?\xd7\xba(Y\x15\
+8\xd9\xcfD\x121\xd4\xdcS\x80L@q\xceI\x95\
+P\x01^\x04\xa6\xf6\x9d{\x8f\xc8#`I\x80\xe1\xdc\
+ZG\x00\x86\x12S\xef\x87\x89\xa2k\x8d\xd23@\x8b\
+\xc0\xcbztm+\x01\xbc\x9as\xdd;\xb4\xe3\x044\
+\xb7@\xa7\xfcE\x8c\x22\xf7'\x0d\x86\xf8\xa1\xd5\xb5\xc3\
+\xe7\x15\xd0\x13\xe7\xc3\x8c\x05\x18\xbb\x97\xc3X<\xdc)\
+\x80\x8c@\xea\xbf-ck\xdf\xe8\xde\x03\xe4Z\x7f\xc0\
+#\xf1\xe0\xc6$\xaa{X\x00\xe6>\xc6h\x00\x9c\x0a\
+\xd0\x05\xb6\xfe\x8e\x1f\xc9\xbf\xc4\x80\xc0\xd8\xc2d\xf1\xef\
+]\x1c\xb0Q\xc5\xeb\xfe\xe5\x9f\xc9\xfc[\x9f\xfeyz\
+bF\x89\x87\xd7w_[\xe7\xa6\x15R\xeb!\xf0\x95\
+\x10\xc9\xb9*m2\xfe\x0e\xf1;\xf3\xc7>\x8a\x87\xf8\
+\xe5\xf6\x89\xc0\x95=\xb5~\xe6\xbbS\xd7{\xad;-\
+3\xef\x0b\x10p>z\xc9\xf7\xc5\x01\x00\xbd\xcf\xbd{\
+\xaa3\xbd\xbb\xd8\xbb\xfd\xed\xb9\xcd\xa7\xbf\xd3\xcd+]\
+\xd4*\xe0\xb6\x0e\x1d(hm\xe0k]\xec\xa3\xa6u\
+PT\xfd^\x9b\xcf.\xf1+\x95\xa6\xe6\xf9v\xae\xb6\
+\xd1\x00\x00 \x00IDAT\x0a\xb0\x0b\x93\xa6>o\
+\xefV\xc7\xaf\xeb\x0c\x02?\x03\x14\xec\x9b\xd6\xc6\x1c\xc0\
+|\xaa\x1e$H0\xd5\xd2\xca\xbc\x8e\x9a\xad7N\xb5\
+\xd6\x9f\x5c:\xc4o\x17](\x90\x15h\x12\xff\x1b\xc7\
+\xffs\xa6\x89\x1c\xee\xf4k/\xa2\xbf\xbb\xdf'\xbfs\
+\x99\xa5\xd3\xfb\xa6\x8a;(\xa4\xff\x9c\x8b\xf8\x0ey\xff\
+OLm\x08-\x88\x85Z\xbc\x93\x89\xca\xcf\xe0\xf9\xbb\
+\xb4+,\xea\xc4\x98\x96\x1b\x04\xc88k\xa2\xd4\x0e\x06\
+\xc1\xa7S\xc2\xf0\xe5\x17\xd1w\xd1Bx}\x86\xc5A\
+\x10\xc8\xb7\x1a\x90\x12\xa7\x8b\x88M\x1d\xc8.:\xe1`\
+\xf4\xb6\x82\xef\x0d\xe2\xf7\xa6\xb5\x96nw\xe5\x88\xf6m\
+\x07g}\xbe[\x87\xc1\xe0\x02rq\xd9\x18\x90p\x01\
+^\x10\xe2\xdd\x7f\x1bc\xa2\xfa:\xa82_2u2\
+k\x97\x1bcy\xbe\xd5\x91\xba \xf3\xe2\xf9!S6\
+\xb0\xf7M\xdb\xc0\x12\xbbs0\x18l\x01&\xea\xa3L\
+/\x046\x9fgw\xf3\xb4\xc3;;53\xf6\x97u\
+a(o\x1a\xa4\xfa\x8f\xa2:\xebb\x8a\x01>\x9a\xcb\
+\xd5a\x89\xc3\x5c\xf3\xf0\xc9\x00/D\x92dxb\xe8\
++\x93O\x0c\xec\x01iC\xa5O\xfc_\x8d1\xa9C\
+G\x14\xa8~O\x86\xe11\xbb\xc7\xee\x1e;\x05\xf0O\
+\x1ec\xa2\xd4\xa1\xa0\xf66aj\xd2\xd4Z>~\xd5\
+ \xa8\xdag\xe7\x94v\x83\x1aS\x0e\xba\xf5E\x95\xef\
+\xdd\x12P\x86\xd5NC\xe4e\x1c\x04\x06\xce\xc7w\xad\
+\x94mbD\xfb\xf7\x8cq|\x9dg\xac%\x11'\x7f\
+9\xc6\x92\xa1[U\xb3\xe3\xc0\x1d\xff\xff5c\x97>\
+\xdf\x95\xf1g\xd0\x9d\xd7\xd8\x8br\x94d\xd8\xd5\xe6s\
+\x00\xed;L\x02\xf3m\xff\xbb\x98]\x14\xd4\x9e\xbd\x1f\
+$\x15\xa5X\x09\x81Zb\x19n\x80\x9a\x12\x0c\xed\x0b\
+\x01e\x9eG\x00\x9fv\x8e\xc4\xc7J\x8c\xaf\x89\xba\x14\
+\x15?\x0ek\x05\xc4\xd6\x11\x03\x83}\xe5\xc8\xf8\xf7\x07\
+,\xe3\xf4\xcc\x81\x8b\x8a\xbdTR\x92\x9a\xeaj\x0f*\
+\x83\x96\x9a\xdd\x12qC\x81\xed%\x14\x02p\x813\x0a\
+\xa8\x0cQJ;*\xa0\xb3\xdf\xfc\x1e\xc4\x1aE\xd3\xfa\
+\xb8W8`\xe6S\x86\x98\x96\x8c\x0c5f\x10\xf1O\
+\x8eJ\xd6\xa7\xce\x97\x1a`\xf6/H:U\xf6\xca\xfc\
+\xa0\xcc\xca\xe0\x06\x88\x92\xc9\xad\xe7\x89J}\x01J\xa8\
+\xed\xecVc\x8a\xe9BR\xf6\x04 \x9d\x00T\xfb\xbe\
+\x02b\x88\xc6q\xb88\x9a\xda\xad\xe9b\xe0\xdf\x89\xd4\
+\xfe\xc2\x18\x93h\xa8\xf3.\xc3%pbg/9\xc6\
+\xe9\x0c\xaart\x94\x04q\xd8\x95h``x\xbd<\
+\xe7\xee\xb2cd~\xbf4\x01\xca\x97]\x84\xa8-\xbb\
+\xce\x1f\xc8\xeb\xee\xdf:\xc6d\x0f\xf8\x0d\xb9\x0f+\xf0\
+'\xbah?\xda\xd7\xa8\xb52:\xad\xad\x15 \xe4\xe4\
+\x96c\x9cN\x81/\x87z\xf8\x01_1\x95\x00\xa4\x0b\
+A\xedK\x89\x02~\xc1\xd6\xcdh\xdd\xe7\xda\x94]\xe9\
+\xf8\xf4W\x9a\xd4\xef%,\x92Q-qH@\xc5\x90\
+ \xfe\xc4\xe2\xb8\xddj\x06\xecKs\x00%^\xdb5\
+\x0c\x14L\xaa\xd4R\xef_1\xc6\x06\xdc\xa9\xd5\xde\xdd\
+)%\x8e\x98{>\xbf\xfb\x13#\xc8\xfd\x1d\xbf`\xff\
+\xfe1\xa6\xf6e#ar\xad\xa9\xcd\xa8\xda\xef\xa8\xc2\
+\x97\x06\x06\x00\x0b\x80\xc2A\xe7\x90\x07(-\xe6\x0d&\
+@\x188u?+\xb5\x02D\xfd\xfc\x18\xdb\xe7-\x7f\
+\x02\xf3EF?\x99\xe2\xdd\xaf\x8f1\x01,\xd9\xf7E\
+=O\xe6Xm\xfd\xee\x87\xc6\x98J\xaa0<\x00\xb6\
+9\xff%~\x0a\xe8\xb0\xee\xfc+\xa5JD\xdd\x88P\
+Ry\x07\xc4\xb3o\xb4`P\xfe\xddk\xd6\x87=\x97\
+\x88\x08\xe3\xa7D(\x05\xf2O\x1fc\xf2\x13\x01\xdc\x80\
+E\xcc0\x81\xb3\x84\x93{\x1eP\x8dA\x07H\xe1_\
+\xf1w\x9d\xeb\xeb\x07\xe0\x04\xb0Y\x07\x80d\xda=\xd6\
+\x17\xbf\x17#\x82\x9f)p\xf7] \xc6\xdfv\x8f\xf5\
+\xf6\xb8\x9dj-\xc3n\xde\xba\xdf- \xef\x22~\x80\
+\x07\x7f\x0f\x902\xbf\x02[v\xc7\xbc\xda\x17y\x9d\xaa\
+\xbd\xe6w\xf9=\xaf+a\x84\xa1\xe1\xf3\xf8|\xbd\x94\
+\x16\xc0\xd0\xdb\xfb\xb9\x0f\x89\xe3\xce\xed\xd5\xdf<\x05\xba\
+]\x8c\xae\x8blw\xca\xba\xc0\xdfs\xcd\x09\xde\xb9\xc4\
+\x99\x96\x02\xc6\x06\xbf\xa3k\x03\xf8\xea%G\x1d\x10p\
+_y\xbf\xfe\xdc\xd6\xb33\xad\x1bC\xb7\xe2Y\xcc\x07\
+\xafC,\xf3\xe2\xb4\xd7\xac\xafD\x87\xd7\xf5~~\x8f\
+(* \xc8\xe7v\x1f\xf4/\xa5\x1a\xf6\xb1{/\xa5\
+q\xe5\xff\xe7\x9e\x00\xdcW\x82\x11#U|'\xd1\x85\
+\x11\xe8\x9e\xb4\x9e\xe6\xdf\xbc\x06P9U\xaa\xbe\xa3\x96\
+\xeb\xfc)\xe0\x1d\x8f\x7f\xde$\xe6B\xf5z\x88\xcc\xdc\
+`\x0a\xf0\xb5\xfb3A\x02m\x08\x10\x04z\x04\xe4W\
+\xcb\xc5}V\xda:]g:\xf8\x80\x85\x8f/\xe4\xf0\
+\x0b\x1f\xd4\xf7\xe7b{aT\x94\xbf\xa2\x05\xcc\x9f\x9c\
+\xfe\xee\xf2\x8bN\xfd\xd6\xad\x00\xe5L\xfbB\x19\xc4A\
+\x1d\xbfI2%\xb7\x9bJ\x0bz;\x0a\x19\x8c\xae9\
+\xa0f&T\x1em\x96\x8a\xba'\xf0\xb7\xb1 Pj\
+|\x1dPm?\xb4\xb9b@{\x8d\xac\x83\xd1\x11\xac\
+\xd7\xc7`8\xa8\xa1\xb0\x1d\xaf\x9f\xb56\x5c\xa0N}\
+_\xa6\xc3\xbf\xdfz\x8c\xe3\xf7\xf7\x8d\xb19N\xa5\xee\
+\xcd\xa1O\xednQ\xdaQ6\xd5\xf8\xdec\x8c\x8b\x10\
+;\xfc`6\xb8\x8c\x04\xaa\xdb\xcb\x1aE\xd2\xc64_\
+\xf6\x13\xc3\x8f\x12\xfb\x8cd\xb8n\x1c\x11\xb6\x9f[3\
+\x1a\x959T\xe3K\x94\xf1J\xe9\xee\xf0\xc0\xd5\xe1/\
+C\x90\xcc\xde\xeef\x11\x9bB\xc9\x0c\x82}\xf8\xc5d\
+\x92\xef\x996s>\x8fvPJ\x08 \xb0\x01\x12\x0a\
+\xe0\x91\xe1\x15\x18\xa2\x18\xca\xc0C\xc0\xads\x0c9F\
+@\x89Y\xb9H\xac\xfb\xc7b\xf0_\x1dG\xff\x05\xc9\
+\x94\xc8\x5c\xe599HU\x83\x0a@rQ\xb9@\xec\
+7\x01\x06\x83\x8cB\xfb\x90U\x94\xed\xe8\xc4\xad5\xb4\
+.\x12\xb5\x9b(\xeajE_\xbc\xff\x93\xfd1\x10\xdb\
+\xbfy\x8c\x89\x8a\x98\xb6t%\xd2\x06\x89\xfcL\x0c\xa9\
+y\xc4<\xe0x\xcc\xe7\xf7\x16S`\xdd\xda\x10V\x80\
+\xde\x80\x91\xb2\x13\x1cQ\x99\xfc\x00\x0a\xd5\xfe\x8eA\x8f\
+\x03[5\xb8\x9d\xe2\xcb1\x03\xa8AV\xed\x0f\x0e\x8c\
+\xf6I1\xecE!e\xf0e\x040\x0e\x18j\x94\xd8\
+P\xa1\xabM\x98\x8b\x0d\x95\x13\xf5\x14\x80\x91\x8b\xa3\xb4\
+!t\x15@\x91\xb5\x0f\xcdGG\xe2}\xce\xae\xee\x0b\
+\x90\xe3\x18q`0R\x00\xb5\xc9\xb0WF\x10U\x1c\
+U\x0d\xb0\x81I\xa0\xb6\xfc\xbacL\x22\x98\x11c+\
+\xad\x02\x99\xc1\x9eA\xe0\x90\xb0\x0f\x1c\x02\xeb\x1a@\xa0\
+4-\xd8\x17\x0e\xd2s\xc6\xd8\x00\xb3\x02\xd2\xa8\xe3\xcb\
+\x10&\xb0.\xca\xb7\xfd\x95Z\xd5\xd3\x80K\xe7\x95\xa3\
+\xc6\x91t\x01\x0b\x5c\xe3\x10\xee\x9e5\xc6D\xcd&f\
+\xa6=\xa3\xcc\xb5\xf7u^i3`n\xd1pH\x06\
+\xaf\xa8\xffM\x94\xaa\x1c|\xf7\x19f\x065w\x81\x86\
+\xd2(v\xf5\x0bRz\x86\x11%!@M\x1d\xf3C\
+\x0d.,^`\xa3\xdbB\xba \xb8\x7f\x04\xe0U\xc3\
++\xe3\x1cq\xbb\x02\x8ceT\xecw\xe7/\x81w\xdd\
+\xa7\xec\x1b \x04\xd5\x1cS\x88_r\xe6\x18[\x00\xb8\
+\xff\xa616\x11\xc8\xd2\xfeA\xbd\xa4\x8e\x8e\xd9\xf3\xf4\
+el\x0e\x1e@L\xa0d\xbd\x88Qj\xa7(\x80w\
+\xef\xff\xc0\x18\xd39\x02,\x01\xc0\x06\x8f\xf1\x8dK\x06\
+\xf9\xc7F\x06Y\x09\x85@\xaa\xdas\x12\xc7\xbb\xe2\x18\
+\x93VC\x00\xbb\x0alQ\xa5\x01ZY\x9f\x93\xc7\x8c\
+1i+\xd0\xf4\x01\xfca\xde\x08(s\xcf\xee\xbfa\
+\x8c\xa9\xb4\x04\x00i\xff\x87\xa1Q@\x11`\x89}v\
+o\xb2\x1f\x01B\xf6\xbf3\xc6\xd2m\xe28\xa6\x0c3\
+\x80\xee\x09cl\x0c\x16v\xa5~\xc6paG\xac\x9b\
+\x12\x03b\x93\x80\x03\x8c\x97\x88\x04\x1e\xfd\x8a\x15P\xbb\
+\xc1\x85\xb5w\xaa{\x11\x07\x5c\x868\x14\xf8\xd2:!\
+\xca\xe7\xfc\xbb\xbf\x05\x9a\xb1\x1be\xc7\x7fn\x19\x1b\xb0\
+\x80\x91& \xc4\xa8boz\xe0\xe7\x5c\x08Xe\xd2\
+\xf9\x17\x806~\xa8\x8c\xb9\xfb\xc7\xe7`\xdf\xd9S\xf7\
+\x1a\xc6\x02\xa0\xa8S\xdb\xdd\xdba.\xd6|G\x04\xfa\
+\xf0+\xd1\xfe\x083\xa9\xceM\xebo^\x19\xfc.:\
+l\xde\xbc\x1f\xff\xf7\x83cL\xf7CS\x81\xaf\xe7\x00\
+P\x12\xc9\x8e\xc6S\xcf\x18\x173\x85\xbfFt\x11 \
+\xe1s+\xcd\xec\xf7\x12\xfb%#\xaf\xc4\xc0z\x08H\
+\xdd_\xb4\xaf\xb4\x09\xb5~\xf6[\xa7\xcewm-\x00\
+\xb4\xb8\x03\x10\xdf\x99\xc0\xe6\xbb\xd7\xc0\xb3[\x9d\x89\xec\
+\xfe\xe7\x17\xd9\x0f\xe6\xd1\xbc{\xdd\xfe\xfa\xd6\xc1\xeb\xfb\
+\x1c^\x07 ~q\x00\x80D\x9e\x7f?\xbdm\xe9\xba\
+\x8f}\x0e\xcf\xefu\xfd\x9e\xae`\x98-\xee\x07\xfeT\
+\x17\x03\xf49z\x8d\xbf\xfb\xdd9k\xb5\xfd\xd5\xe5\x81\
+\x1f+~\xe9\xcfe\xfd\x00\xbc\xce\xa5u\xfap\xeb\xfe\
+\x05\x18\xe0WaLi\x7fM\x9c\x99\x96K\x17Y\x07\
+\xd8\xb0\xfb\xe2\xa2\xc4\x05\xa7\x0a\xd1\x1b\xe6F\x7f\xca\x0f\
+LH\xdb\x1c\x90\x9e\x91\xda\xc3\xf3\x92)\xba\xe5E\xa8\
+\xb9\x8f\xc7\xb9q\x0c\xc6M\xa7\x0f\x92\x0f^\x08\x85\x8b\
+Af\xf1F\x0by|\xfb\xd9s\xc9\xd8E\x84\xb0\x10\
+\xf39\x90\xbf\xe9\xa4M\x80\x190\xf2r7O\x00q\
+\xf6\xd4\xfe\x8aJ\xae\xcc\xd2\xf8\xbbkN\x9f\xb3\xb7\xa5\
+\x10\xc8s\x9cQ\xb2\xfc>\x03\xe3\xf7\x1c\x98^\x93\xdf\
+\x91<\x1b\x9f\xe3FsA \xeds{}\x07\x80\x01\
+\x94\x11\xb5\xc1<\xdf\xe5\xb2\x1e2\x7f6\x1cC!\x83\
+\xc7\x90\xeb\x03/\xb0Ca\x91YAM9g\x8c\xcd\
+a\xa8\x0c\xb9L\xa3\x0b\x1f\xa0\xe3\xc0\xf4\x8c\x88}\xf2\
+\xae\xccK\xfa\x0f\x1f\xe7b=\xf8\x97H;\xa8\x1fO\
+\xa6\x00`\xf25cL\x99\xd4\xb4q\xe2\xa0\xa8=.\
+1\xad\xeb\x05P\xe1\x88]\xe1\xc2\xd4\x98r\xecS#\
+XTB\x17\x846z/\x0c\x22\xef\xf3\xc8\xf4\xcbd\
+8\xe8\xc4\x80\xd4`\xc9\xec\xc5\xf0W\xa9\x82\xdf\x178\
+s\xfce\x94\x9c\x0b\x0e\xc2\xf3W\xaa\xe71\x8c\xb9\xdb\
+\xeen\x0b0q\x1c\x13U4\x81H\xf5m\xff\xdee\
+l\x19?\xfbX`\xe2bc\x981~\x9c\xb7|\xaf\
+\xcch\x0c\xd2\xeeN\xa1(_6\xe7\x99a}E\xb4\
+\x19\xb2\x8f\xf6\xcf\xda?s\xff\xcc\xe5\x22_\xdb\xa9\xe5\
+\xf3\xee\xde\xb1\x96<T@/\xf3\xf1\xba\xd5\xc1\xd9}\
+n\x13\xb9\xb4\xbf\x19>\x19\x5c\x8e\xa2~\xf5\x80*\x81\
+5\x03\xd73\x05^\xd7\x05\xc0\xf0\x0b\x80]\xa0\x02;\
+\xff]\xc0\xafo7j\x1d\xea#\xa0R\x06\xd3|[\
+g\x99\xddPZ\xab\xcd\xa06m\xa8\xc2\x80\x0c\xaa\xcb\
+\x18&2O\xf6\x8b\xc0[&B\xe0\xc3\xf0\xcbhq\
+\x88Q\xc3\xbd\x8f\x8b\x8d\xdd@y\x95\x91c\xa7P\x11\
+Q\x22\xffb\x8c\xa9K@\x80\xddz}H8\xca\xbf\
+n\x12\x98)\xa8\xd4\x02p\x99 \xaa\xf7C\xb4\xec\xfd\
+\x8b\xb6\xc1\x93\x97\xee\x1d\xef<\xda\xc3\x01\xa4\xbdx\xf7\
+\xa2\xdd\x8b\xa7\xcc\x98\xc0Q7\x0b\x19\xffP\x8e\xcbQ\
+\x05\xf4\xc9\xfc)] \x9aI\xe5\x1e0\xc2N'\xc3\
+\xa9D\xe0p\xd6\x18S\x8d\xb6\xd7\xc7\x18\x11\x10\xc8\xa8\
+{\xbf0}\xea>\xc8\xf3\x08\x10\xaaT\x84\x18\xe7\x7f\
+\x19c\xeaf\xf0\xc11&\xaa\xba\x00\x80c\xc6aF\
+=\xe6P\x00\xf6d\xb09\xd4\xee\x8fF\xed,1;\
+\x22\x97qd\xaa\x14\x90]\xe7\x98\x01\x12\xbb\xe3\x9eZ\
+\xfbz\x1f\x01\xae\xd2)\xcf\xa3\xdf\xbb\x9a\xdf\x00\xa6%\
+:\xa6\xa6\xd1\xf9N\xe9\xc7\xfe\x1dcL\xf7\x96\x92\x8b\
+\x00{g\xfc\xf426;\x8d\xd1\xc0\xb1\xe6\x989\xa7\
+\xec\x02\x8at~&\xc2Xm\xed\x02\xa8\x15\xa3A\xc9\
+\x96} \xf0\x93\xf1\x05Tp\xdc\xf8\x199gC\x19\
+eh\xa3T[Ev\x02e\x1c\xf3F\x00\xc9!\xc7\
+\x98Q\x1a\xe7\xbef\x17\xc3P\xa3\x8e\xef\xbc\x01\x1e\x86\
+\x94\xed\x10\xb3%~Wj\xd1\xe9~\xb1\x7f\xc4\x18\xdb\
+9\xacn\x097\x1ec\xba\x9f\xec{\x0epJN\x0a\
+\xe0\xd0\xd6\x0f\x10\x1d\xc6O\xed3\x80\xa9\xfd\x8f\xd1\x95\
+@\xa9\xf6\x91{\x1b\x83\xc8>K\x80n\xbd1\xc6*\
+\xc0\xe2/\xf1k\xa2\x99\xa1\x94\xa8\xba\xb9\x00&\xdd\x8b\
+\xda\xfa\x12\xe1|l\xa8\xea7\x1ac\xd3\x9e(\x86\x0f\
+\x95n\x80\x1a\xed\x0b\xc0\x846\xae\xfc<b\xa3J8\
+\xb5[\xee\x1a0j\xd8\x05\xe6J\x8d\xcc{\xcf\xcc\xb6\
+6o\x87o\x18c\xd24\xc1\x9cq?(\xa9\xc3h\
+\x94\xc9\x07\xa4\x06\x80(\xbb\x91\xdf/\xad\x1b\x01\x10?\
+Q`\xa5$K\xf7\xa2\x9cs\xdd\x5c\x8a\xc9\x10?\xb7\
+\x98\x1f]\x1bK\x9bd\xd4x\xdf\xd9W5\xf6\x02@\
+\xf3\x22\xa0\xf6\xbduW\xa8\x92,L\x08\x81\xb8\xf7w\
+\xef\xf9w\xeb\x02xP\xaa\xd1E\x02\xcd\xc7\x5c\xaa\xfc\
+\x99\x8bPu\x17\x88\xb9\xbf\xdd\x83T\xeb\x01?\x00\x18\
+\x99i~V\xfc\xd2*MR\x9a\xe1\x0b\xd3\x82]\xc6\
+\xccd\xbf\xc5\x01\xfc\xf1\xaeE&\xf0\xe4\x17\xd8_-\
+\xb0/\x80D\x1c\xe2\xf7z\xc9\xb2\xfd\xcc\xef\x17H\x03\
+\x02\xdc\x8b\xee\x95\xaeY\xc6_\xf3\xdf\xbb\xd6\x99y\xf7\
+z\xec\xb9\xf8\xc2\xfd\xc6\x1e\xf3\xfb\xf8\x85>'\xbf\xa5\
+\xc7i\xbd;\x00\x80\x08\xf3\xc3\xf3\xf0\x1f\xed\x1b\xdf\x01\
+A\xe6\x97\xbd\xe4\xd7\x8a\x17}^\xfb\xc4\xba\xbb\xc7\xc4\
+q\xd6\xd7}'!F\xe4\xb3w\xbf#\x8e\x98n^\
+\x87\xab\x8eq\xfc\xfd\xe7\x8e\xb1\xc5\xcd\xa7J=\x98\x18\
+\xde\x08\x9co6\x05\xa0\xdd\x01\x90)\x1f\xdb\xe9\xb2\x17\
+\xa1\x82/\x10g\x88Q\xb5G\xe6\xee\xd6\xd3\x07\x10\x08\
+p\xc0 \xe7\xe3\x7fo\x99\x07\xbc\xd9\x94\xc9\xd7\xb6\xcf\
+\x84\xb9X\x87V\xf5\x13&\xe0B\x00J\x9c\xd0\x025\
+\xea`=\x1ffB\x07\x00\xba\xca\xb2\x8d\xd03\x81\x02\
+'\x7foa\xfd^\xcf\xb4\xf92\xaf\x16\xd6\xe7\xb2A\
+}\x0e\xcfcc$p\xaa\xf9\x120r8\x01(\xde\
+\xcf\x01\xe6\x98\xe7\xe2\xaaLL\x1c\x0f\xed\xb7\xea\x00\xa3\
+\xaa\xfe\xcd\x18\x93\xa3\x02\x994\x1f\x9f\xcd\x81\xfbD\x0e\
+To[\xe399l6t\x17\x0bI\x7f\xf0\xe3\xf5\
+\xb9\x04.\x87oKF\x01`\xf2#\xcb\x18\x99\xa45\
+\x83\xf0\xafa\x14h\xcb\x17\xcao\x89\x04\xbd$*\xf1\
+\x0f\x1dc\xa2X\xa1V\xa7-]\xd5(]b}\x9f\
+\x93\xcf\x1bc\xa3\xa4/\xe1\xc8\x08H\xfev\x8c\xa9V\
+\x17\x854\x14LbN\xe5\x18\xb8\x98\xff,H\xb1\xcc\
+0J\xa0uu\xe1\xa9\x05\x95!\xd5\x0f4\xed4\xfd\
+\xdd\xc9\x17\x8e11\x11\xbe?\x19\x9a8b\x95\x11$\
+~\xe3\xa2\x14\x80\x02\x22\x9c[\x0e7\x83\x08)|X\
+\x80\x045{\xdf1\xc6\xe4X\xd9\xbf\xdf\xbb\x06\xc2\x17\
+<x\x8c\xe3\xf7\xab\x8e\xb1<\xdf\x820\x9e\xec\xc7\xd8\
+\xdaz\x150r\x9d8x\xba9<=\xaa\xc7\xf6\x15\
+Q?\xf3m_\xdf\x22\xe7\x1eU:5\xc5\x03\x1e\x19\
+\x00I\x89\x82\xca\xb0b\x0c\x00n0\x05\x18X\x94}\
+\x80\x0f\xc3\xedBv>\x01\x9d\xce\xa5\x0b\x03\xd58\x01\
+i\x01\x8c\x80\x8b\xcc/\xe0\x92\xe3Ym\xe2\xfc\x9e\x1a\
+L\xd4\x5cm\x9b\x04\x122\xa1\x11\x81);\xd1\xa9\xc7\
+\xecH\xc4\x06\x0f\xb7\x1fc\xca\x98z\xfe \xf4\xbb?\
+\x1c\xe3\xf8\xf3#\x96\xb1\xd9;%\x05..\x0e$G\
+\xa8uy(\xc7\xde\xbaE\x83\xa2\x02K\xd4\xf08l\
+\x1cU\x17R\xbd\xfek\x8e\xb3\xf0\x9a\xe9\x22E\x1d\x95\
+\x91D\x85c7\x00Vj\xa2\xb5\x07UZ\xe2u\xec\
+W\x81\x1e@B\xadq\x18-\x95Y\x0d\x10C}\x5c\
+\xe0Y5\xcd\x1cl\xa2\xa9\xfd~\xe1\x90\x00\xda8\xc6\
+D\xd6\x88&\xaa\x99N\xc0\x05h\xad\xf6\xa3jn\x95\
+\x00q\xb4\xba8\x94v\x97\x1f\x1dc\x12\xb1\xe5 \xab\
+1&\xaa\xc6\xb1T\x93\xef\xfe\xe0p\xcb\x5c\x02\xd48\
+(\x18\x83\x11\x1f\xab@\xc7\xbd\xc4A&\x96Id\xd8\
+\xf9\xa2}\xc0\xcep\xc0d\xca\xd9\x19\x8e|\xb3\x03\xa5\
+\xa2\x9fR\x8cb\x22\x00\xb8Q\x97\x03X\x95\x88\x9a\x00\
+\xc79J\xdb\xb7\x12\x99\xd4\x9d@@\x84\xa2\x99\x12\x9f\
+\xb2\xdb\x9e\xf7\xeb\x97\xb1i*\x040\xdd\xfd\xe0\x18\x13\
+@\xcc\xce:\xc7\xb9\xc7\x0e\xa7\xc6\xd8J\xaev\xef\x1a\
+cc^\x15p(\x90a\x9f\xbb\x06\x11q\xac\xdb\xa4\
+[B\xee[\xea\xf8\xbb\xb7\x8d1\x95HP\xef'\xb6\
+(`w\xde1\x0f\x88b\xe5\xf7\xb4\xd3\xdd]0\xc6\
+T\x8a\xa4]\x9b\xc0\x5cW\x04\x8c=\xf7\x14\xe6U(\
+\xabu^\xed\xa7\x9c\x8b\xaa\xc9\x05\x8c\xdfs\x8c\x899\
+ S\xcd\x1e+\xa9\xd3\xef[\x89\x1b\xfb\x1e;E3\
+\xa9\x00:\xf6\xdb\xf7hy\xec.=\xc6\x06\x10\x96\xa6\
+B\xb4r\xd4\xf0\xdbw4\x15\x0a\xf0J\x9b\xd4j#\
+(aA\xcbG\xc6WF\xb93\x08_px\xe1\x00\
+\x88\x8baB\x9b\x05\x10\xc5>\xf3\xef\xfa\xfep/`\
+\x1a\x06\xf8\xa9\xfd\x07(\xc48\xe8\xed:\x95\x028\xcf\
+\x00\x03\xcc2Z\x134Qd\xe8e|\xd9\x0f?\xdb\
+\xc7\xee\x87\x88O\x97\x7f(0\x160\xb2\x972\xe8\x18\
+\xa3\x98L\x98F\x9d\x19f\x1d\xd9{\xfe\x02\xbb/\x93\
+\x0f\xa0\x918\xc4p\xc5|\xe2\x9f\xa0\xee\x03b\x94\xa4\
+\xda\x7f2\xe1\x02L\xeb\xe2\xbc\x0b \x05\x9e\xce\xab\xbf\
+\xf3~\xec\x12\xbf\xd9\xef\xdb\x0f\x80\x18\xe7S[l\xcc\
+>\xfe1\xbb\xdb\xf7\x83\xf5\xed\x99v~\x00{\xe6\xbc\
+\xc7\x9f\xae\xff~A\xf9\xf7\xeb\xcf=\xd0\xed\xa2\xd4\xe6\
+\xa1we\xea\xeb\xe4\xf9:\x00\xc0/\xee\x0c\x80\xceT\
+\x14\xf8c\x16\xdb\x8f\xe2/_\xbd\xb4\xfa\x9d\x95x\x5c\
+\xfd\xe2.\xe6\xd7D\xeaK\x14\xb0\x97z\xf0\xb7\x00+\
+\x9d\x99\xc8\xfe\x98'\x80\x81\xef\x128\xfcF\x89_v\
+\xd5\xfb\xf1+|w\xcf\x07\xc0\xa5-wZ\x17\x83h\
+\xb4\x10o\xad\x04*F_\xfc\xe5S\x15\xf8C\xb4#\
+\x82\xb7\xe4\x8bn1\x05\xda\xc9 \x95cuQ\x81\xfb\
+\x17\x04\xb1\xbd\xf1\x96\xd1_\x02\xb3\xebO\x99x\xea\xfe\
+&\x0e\x12\xe4\xc19\x1a>\xd0\x98\x8e/mj\x87\x97\
+\xbf\x08\xb5\xfc\xb1}.5m,\x8c\x06\x8e\x92\x8d\xd6\
+U\xd2\x87{u\x85I{\xe0b\xfa'V`\xdcE\
+\x18\x86y\xb9\xd4\xb4\xb06\xdc\xd6\xb7\x98.\xc1\xfa\xdf\
+{\xfb@\x81\xb1L\xb7\x0b&\x14\xde\xaa\xd1\x22\x12\x84\
+2(c\x89\xba\xcd\xe0\x91]\xecm\x06!vD\xf6\
+\x22\xfaX\x07\xc3\xf3\xa1\xa2G%\xbb2\x93\xe7Fe\
+\xf4\x89\xbb'\xed\x9e\xb4l\xe0\xd5\x80\xffK6\xfa\xbb\
+\x83h\xa6m\xa1\xf5)\x07\xed\x1f\xa7\xf9\xba\xf4\xe9\xd4\
+I5C\x0c\xf4\xfeG\xc68\xfe\xfd\xa7\xc7X2\xde\
+kM#\xe4\xf4\x9b\x83\xc8\x0b\x08\xb4\xe3#\x86w\xaf\
+53\xb6\x7f\xea\x18\x1bC\xa0\x0c{\xfa2\x13\xfb\xdb\
+=x\xcdT\xec^;\xc6r \x17\x80\xe4\xf0\x8d\x11\
+\xf1#\xf6#\xf3\xf9\xcbcL\x8e\x0d\x07\xcb\x05L=\
+w\x88h\xfd\xf6ra\xbdm\xb9\xb0\xceJ\x80\x80\xe9\
+@\x85\x5c\xe0\xe0\xe2\x87\x1c\x02\x96 \xb0\xb7\x18\xe3\xf8\
+\xbe_\x99\xcc+G\xf41\xa1\x98\x9bW\x17\x95\x00*\
+\x19\xc6\xe3\xa7YT\x89\xab$$m\x19\x0f\xcfI\x80\
+F\xc4Q\xa0G\xec\x09%\xcf>\x0dUu\x7f\xde\xfe\
+\x1f\xf7\xc7\x0b\xea\x82\xb3/\xb8\xcd\x05\xb7\xd9\x02\xa33\
+\xbfu\x8c\xe3\xfb\xfc\xea\x18\x1b \xa2\x7f\xb1\x0c\xfa1\
+,Xk\x9c\xdf\x96\x9a\xa9\xff\xb8pM_e\xfc\x9d\
+\x17\xc0\xc8w&\xc0\xb4\x1f\x1e3\xc6d7\x04<T\
+\xdfe\xd2\xd50\xbbp\x9c?\x17\xb0vh2\x062\
+\xc6-S\xb5\xfb\xda1&;\xc4\xb1C\xfdO\x8dg\
+1\x14Pk\xad\xb7\xc0\x1f`\xc4\xbe\xc9\x9c%\x90(\
+\x87\x8dX#s\x02\x89\x16\xe05\xea}\xd5\xa0\xb9\x90\
+\x00\x9e\xadm(M\x02%HU\xc3\x16{W\xf6\xde\
+\xe7\x0f\xc0V\xf7\x82s\x0e\xe0\x09`T\x01\xa4\xf7C\
+5\xd7^\x8d\x9d\xc4@\xc0X\xd1\x96\x8b\x86\x8b\x0b\x14\
+\x93\x86\xe8%\x00\xd3s\xb0o\x18>\x18,\x00O\x99\
+[\x99$\x0e\x94{!\x17c\x89\xf5\xe5\x5cU\xe0/\
+\x00\xc7\x10aG\xd2&\xb0\xfa\xf0\xdel\x8ci?\xb1\
+\xf7\x00o\x8e/\x0a\xa9\xee\x19J~\x00N\xce=\xca\
+)&\x80s\xd0\xef\xb1Y\xb3\xe7\x1f&*\xb2\x0c8\
+F\x91.\x1f\x1cu%*\x00\xa7\xb9$\xef\x93\xa7\xb7\
+\xd3,\xbb\xc4\xf1G9\xf5\xfb>\x9f\xfb\x1d\xb0c\x9f\
+\xd2,\xd0\xd5\x85\xea\xbd\x8c\x95{\x17\xb0\xd5\xefa\x0e\
+ )\x81{\xad\xaf{Q\x1bJ\x00\x87\xdap\xeb\
+\xa1\x9b\x82\xcc\xb5y\x05\x94\x01D0\xe6\x92\xe1\xac\x00\
+\x22\x22\x8d\xce3 \x04e\xbb\xce/G\x15\xe0\x92R\
+\xbab\xb0<d\x19U\xdb\xc9^\x16\xb3\xc3}\xa2+\
+I\xebk]\x19D\x00\xb2}\x040\xd7\xfdC\x09@\
+J\x1cJ\x94\x8f\x16\x06\xc0\x84\xc6\x8b\x00\x9d\xd8\xa4\x80\
+\xd6\xfe\xa0\x09\xd4\xc4\x17K\x85_\xa63\xefS\xe2\xa2\
+\x80zv\xc6\x7f\xff\x961\xa6\xdap\x9f\x97\xbdS\x22\
+b\x1fu18\xeb\xcb\x1f\xf4\xef2\xda\x00\x1c\x19{\
+v\x85\x1d\x12\xc0\xd3(\xc9\xf9\xa6m\xb0\x7f\xfa\x18\x8b\
+\x16\xcb\xa2\xf9s\x9c\xe5u\xbe\x9e\x1f\xd1U\x81\x88\xf9\
+P\x8a\x89Y\xf8\xbe\xb5;Q\x89\x05{\xff\xec\xfbj\
+\x8f\xfa\xa8\xe3\xa7\x7f\xd4t>\x9cS\xb5\xbf\xe6\x9f}\
+\xe0\xefz=\xfb\x1b\xd0\x85\x09\x96\xee\x03\x05\x94\x08\x80\
+\xf8\x0b\xfc?\x99y\x19p\xf7\x87\xee\x08\x18\x17\xd6\xc1\
+\x17\xc6\x86\xfb8\x01\xee\xe1\xfc1\xa6s\x04p\xf2>\
+\xbd\xb6_{B\xf7\x9b\xc0\x97\x1d\xc4p\x02\x08\x08\x5c\
+\x05\xca^G\x89\xa1\xbf\xc7\x04\xd1\xd6\xf1\x8b\xc7\x98\x80\
+%\x80\xa4\xd24b\x8d\x98\x0d\x80\x18\x80\x80\x00\x0dC\
+\xc0~3\x8f\x00\x00\xf7\xb0\x0cr\x18\xaa\xb5\x9e\xces\
+k\x0bY\xcc\x0a\x01\xbc\xfbM\x06\xbc\xb7\xcdc'{\
+\x8d=Q\xe9\xec\xbf\xfa\xfd\x06 \x9e\xc6d\xec\x8c\x86\
+V\xe3_\xcf\xebg\xbf\xef\xbb\x04\x98s\xda\xc4\xf2\xaa\
+\x84\x80\xf6\x0f-1\xe7\xb7'b{\x1c\xc5\x0fe\xff\
+0\xa2\xbc/\xc0\xc0\xf3{\x7f\xf1\x10\xe0\xcd\xef\x8bs\
+\xec#\xbfo\xbf\x01\xa6\xec/\x9fS`\xee\xdc9W\
+~\x0fPe\xfe\xec\x1b\xf7\xa7DM\x98\x9c'w\x1a\
+cbHu\xa0\x8fh\x7f\xee\xf9\xbao}\xc7\xd8\xfc\
+\xefcL%\xdf\xfe>~\x0dm\xa2S\xa5\xa6?\xa6\
+\xfb\x92S <\x8bh])\x17\xf9U\xa6\x0b]\x86\
+}\xb8\x95\xd7\x9a2\xe92\x06\x0c\xc2\x08\xcb\xae:m\
+\xbc1\xfd\xef\x8aay\xc7\xb4\xb0c\x1bN\xe2\x1c\xd4\
+\x87w\x7f1F\x1c\xdb\xebN\x1b\xb6\xb7\xf5\x9bU\xf4\
+gj\xc5,\xbe\xd4\xbf\xef\x1bueV\xf1\xa7)`\
+\xe2,8\x87\x11\x03\xe0d\xa9r:\xad\xb6\xb7\x9e\xcf\
+\xc2{\x8e.r\xe1\xf7\xfc\x1c\xca[\xf5\xf5\x96\x89\x10\
+\xd0\xa1\xea\xa2\x0cr\xcc P\x1c%\x07\x025,\x81\
+I\x01\x08\x1cJ\x17ID\x85*\xa3\xe5B\xa5r\xfd\
+W\xa1\xca\xa1V\xfe\xd5\x8a\x14\xef~n\xf7\xb3\xbb\x9f\
+\x9d\xc4\xae\x18\xcc\x9b'\xa3\xf3\x86\x18\xb2\xf7\xc7\x10\x94\
+c\x18\x0a\xd3\xdf\xa6\xa4\x83\x01~[\xd4\xb8\xa9\xf3\xa2\
+\xcc\x08\x0c\xa2)\x80\xeax\xf2\x811\xa6\xda\xca8,\
+\x95i\xfd\x9a\xc3\xfd\x0f\xf7\xdf\x90\xfa\xfd9c,5\
+\xd3\xab:\xf4\xc3\x0e\x0f=<\xf4\xf8\xfb\xe7\xaf@\x03\
+J\xfc\xc9\xdb\xc6\x98.X\xea\xed\xbf1\xc64o\x1c\
+N\x81\x97yGyKf\xa6\xa8\x94q\x10v\xbf\xb3\
+{\xde\xeey\xc7\xef\xaf\xda\xbdr\xf7\xca\xc9\x800<\
+\xe6\x9f>fj\x95\xf7O\xdd?e\xff\x94-P?\
+\xf3\xbecl\xa5\x01\x80\x8ac0\xb52m8X\xdf\
+\x90\xc0&%\x02\x95\xa1\xe2\xd0[7\xcf\xcf\xd0P\x01\
+\x07L\x84\xb2}\xc1\xd3\xc68>\xcf\xfb\xc6\xd8\xfe\x8e\
+\xbdR\x0aQ\x99ym\x1ae@\x89\x9c<'\x06\x90\
+C\x88rx\x871\xa6\x8b\x8f\xfd\x08\xc0U\xa5\x10\x1c\
+\xb6\xd8\x9b\xc3\xdbs!|l=\xb7\xc4\xbbJ\xdd\x9d\
+X\x9b\xdap\x81_\x10\xe4\x02\xbe\x18hL\x80\x86L\
+W\xe6VW\x0f\x0c\x1b\xfd\xc6}^Z\x06j\xb5\xb4\
+AcO\xac{\xec^i\x05\xc8l\xd1(\xe00\xb9\
+\x00e6\xad\x1b1\x18\x011\x87\xc9wv\x0e`\xab\
+\xa4 \x8eoe$d\xc41)\xb4\xdf\xa3)\xd1\x01\
+<\x0e\x1f1\xae\x9c\x8f\x12i\xe4\xf8\xa9I\xd6\x0dC\
+\xcd?\xe6\x8c\x00\x99\x9a|\xeb\xeeP\x99\x19\x19\x10\x14\
+\xd6\xdcG\xbb+\x8e1\x05p\x80\x1eb|\x98?\xa8\
+\xf8\xf6\x8d\xf3\x916J\xa5f\xae\x7f\xf4p\xd8F`\
+3\xbe\xce\xd8\xceA\x05x6\xbc\x0c?5x\xf3M\
+\x9c\x0b#\x82\x16\x82\x0c61\xc90\xe3h\x10\x1c\xee\
+4\xc6\xb4^\xd6\x9d\xfd\xdcjl\xd7\xf7\xd7\xce3\x00\
+\xcc\x05\xef\x18c\x02\xd6\xd5\x14'#\x80\x19\xb5{\xfe\
+\x18\xd3\xeb\xda\xe7\xd6\x03\x03\x81x\xa2\xee\x04\xeei\xfb\
+[\x89I\x1cTm\x1cK+\x87\xaa\xb6\xfb*%\x0d\
+\x00\xa1\x02\x80\xb5\xd1l\x0c\xbb\xc3\x93\xc68~\xdf\x8f\
+11\x87P\x82\x03\x10\x95]Q\xea\x94{N\x9b9\
+\x8c\xa0r\x88\x05z\x01\xb0\x0a\xd0\x89\x06D\x01;J\
+\xbb\x00}\xf6\x93\x8c\x0d?\xc1}m}\xdc\x132\xdd\
+\x11\xf9\x93\x919\x5cc\x8c\xe3\xf2\xfc\xfb\x18\xc7\xf7y\
+\xf9\x18\xd3\xf39\xdf\x18g)!\xea\xc0c\xed\x13\xf3\
+\x0a\xe8A)\xd6_\x1e\xc3\x02\xd3\x09\x80\xc3a\x95\xa9\
+\x95\xa1\xe2`\xa3\xdcr49\xe0W\x1bcc\xd4\xd5\
+\xbd\xa1M\x1f\x86\x96\xf6\x9a(\xfe\xfc/%\x84\xb9W\
+Jm\x1f\x83\x85\x1a6\x80\x100\x0d`\xb4\xbf0:\
+\x88N\xb2_JF\xd9\x1f\xa5g\xc4!\x1b\xd3H\x86\
+\xb92\x7f\xbf|\xc6\xaf,\xed\xe8\xd8\x9d\xb3\x0f\xb7>\
+\x8cR\xb0G\xe7\x9e`\xffhd\xb9?03\xfe\xef\
+1\xa6\xcc\xb9\xf6o\xad\x16\xbc\x18a\xdft\xc6\x83\x16\
+@TBA\x00%`\xe1\x1f\xf0#\xf9\xbd\xbd\xbd\x9e\
+\xfb(\x00Su\xa1Q\x22(\xd0\xe2_\xf9\xee\xdf1\
+u\xcd\x0b \xa03\xc4\xd8\x0b\x01\x12@\xc5}\xcd~\
+\xf3+\xbc\x8e@\xcc>S+o\x1f\x02\x90\x04\xd0^\
+\x07\xe3\x8e\xa8\x9e\x80\xb7\xa9\xf8\xd7\xba`l\xe9\xf2\x82\
+\x01B\xd3\x02CC\xdbV\x8c\x03\xf7#\x0d\x90^z\
+\xd3\xd7\xa3g\x94\x05\xea\x18\x0e\xfc\x18?{n\xe7W\
+\xc2\x08\xf0!\xf0\xef\x80\x8c\xf7\xf1\xb5\xf9E\x17n'\
+\xde\xd5\xea\xbbx\x9f\xfb\xdb\xfe\x11\xbfx~\xaf\xe3{\
+\xff\xfdN\xc1\xf7ws\xfc\xf4\xf1\xd33\xd3U+\x0f\
+\xf8\xd05\xc7z\xb2\xfb\xf6\xb7\xf8\xc9w\xfb\xcds\xd9\
+O\xce\x13\x7f\xd6\xef{\x1e\xf3\x06\xb8\xa0\xc1\xc4\xcez\
+^\x01\xbb}\xe7\xfe4\x9f\xf6\xa7\xcf\xdbU\xf7\xbd\xbf\
+\x12\x19]\x1f\xac\xf7V\x02\xbd>\x8f\xf6\xbf\xbf=\xc6\
+\xf1\xe7\x1f^\xc6\xe9\xc0\x81}\xc0^;\xef\xfc\x0c\xcf\
+\xcb>\xf2_=\x17\x80X\xbb\xf2t':U\x0f\xf4\
+\xd9\x85\xcc\xbd>\xe0\xbeQ\xfe\xb4e\x98)\x1a2\xdf\
+[\x7f\xf7K-\xdf\x19\x90N5\xb1\x01!v\xa83\
+&\xd2\x07\xce\xc5y\xf2\xdd\xc7\xf1]\xb9\x00~w:\
+\xe0&\xc4\x85\xd7\xdb\xe7\x8d\xe9\x7f\xdf\x04<x\xdeh\
+\x08T\xa0oA\xde\xbd\xe4\xae7\xed\x80Y\x9d\xf8*\
+Sm\xbeZ*\x9f\xc7\xc1\x1ba\xf7G&\xd5h\xf3\
+\xc6\x00\xf4~\x90\x00\x94Y\xe4\xf0}\xb9\xf0n\xb3Q\
+\x12k#\xb9\x008X(T\xd4\xc7mL\x07\x02\xe2\
+\xf7\x17\xc9\x04\xdc.j\xeeg\xafb\x7f\xe5`Q\xbd\
+~\xf4\x18\x93#)\x13\x22c\xa1\x8f\xb2\xb62\x1f\x8e\
+\xa1`\x00\x7f+}S\x01\x04\xc9(Wm\xa5\x00\xc4\
+AU\xeb\xff\xe9\xb5_\xf7\xd1\xc8\xae\xa2\x16.\x96\xec\
+\x83\x93\x9b\x8eq\xdc\x8e/\x1acr\xe8\xec\x17\x01\x01\
+\xa0I\x8doT\xf7O\xee>\xc6\xd4\x9f\x96\xc3r\x83\
+1\xb6~\xc9%\x86\xf8\xf0\x15\x189<j\x8c\xe3v\
+\xf9\xe51\x8e\xff\xfe\xe3cL\xe2u\x1f\xcd\xba~:\
+5\x89\xe9\xf3[Z\x02\x11\x1d\xda\x9d9\xc6\xf1u\xce\
+\x1ac\xca\xe80p\xc4p\xf4y\xfed>\xff\x97\xa7\
+\x8d\x0f\xe0K_`\x99\xa6\xdb\xac\x22\x85\xfb\x0f\xac*\
+\xcc\xbb\xb7\x8e1e\x16\x9c\x07\x08\xa2u\xf8\xd9\x95\xf2\
+W\xb5\xb6\xcei\xc4\xe3\xcex\xc226ud\x17\x0e\
+\xeac.N\x19\xd2\xfd_\x8c\xb1edO\xde7F\
+\x98\x057\x9c\x02\x0e\xb5\xcd\x1c\xb9\x9f\x0eE\xf4\xc5\xc9\
+\xe8j\x0b\xc7\xe1\xf1y\x9f:\xc6\x94\x19G\xe5T\xa3\
+\xb9\xcb\xeb\xa7\x8dU\x01\x8fj\x81e\x12\x128\x94f\
+\x05{`_Rc\xeev\x8ac\x82\x09\xf0\x95cL\
+\x0e2\x80\x87\xc8\x19\x8d\x11\x01\x12\xc3\xec\xa2#\xde\xd2\
+\xc4\xd7\xeabE1\x94\x11\x0ee\xbe2\x9b\xd6\x15C\
+\xe1ycL\xe7\x0a\x10E\x9d]\xad4j \x95\xd8\
+?\x19cj\x7f\xc7\xbeh;\xc5\xb1\x06$\x08\xc0\x12\
+\xc0U\xed\xa1@V\x09N\x181U\xab\xaf}\x96\xf6\
+\x8d\xba\x19<)\x0c\x22\xf3\xd83\x07\x1c\xcbd\xda\x0b\
+\xb8\xf9\xfeel\x00\x89\xe7\x96\x09\xa5\x82\x0f\x80QC\
+~\xef\xb4)%jG\x04\x0cc\xc4\xbe\xb1\xff0^\
+\xf4\xf1Vr\x11`\xf1\x8co\x0b\xf0\xea\xc2\xed\x99\x16\
+\xd4\xde\xa1\x1d\xf2\xc2\x88\x85\xddw[\xbf\xa2\xc2s|\
+\x04\xa6\x11\x03\xc4\xf0\xa9\x0c\xacR\xac\xa7\x8e1\xad\xb3\
+\xe7v^\x02\x98\x1e\xbet\x8ci~d\xd80n\xde\
+;\xc6d7\x05\xaa=\x00\x00(\xa3r\x03\x8aP\xd6\
+\xe30\xd7\xba\x09|i\xda(\x99\x22F\xe8\xfd\x04\xb2\
+\x01p\x01\x0b\x05x\xa0\xc0\xb3\x93\xce+\xc7HW\x0e\
+\x8e<F\x81\x8czT\xda\x8bbODQ\xa6\x05#\
+\xe0\xe7/\xdc.\xb6\x00E\xed-\x05\x12\x80E\xa5S\
+\x8dBI\x0cN`\xaf\xbbOe\xcc}nL\x0am\
+\xfc\xd2\xfd\x82\x18\xa1\xf3\xbc\xbf\xcf\x18\x9b\xdd\xa9v\xb4\
+\xfc\x12\x0e\xac\xd7\xe3\xbf\xa1\x0c\x07P\x00pV\x00,\
+\x83\x9by/\xff\x82\xff\x060\x93\xd1\x13\x98\xf6\x8c\x98\
+\x00\x085\x5c@+\x80\xb9\x7f\x00w\x99f%\x86\xf1\
+\xf7v\xff{\x8c\xc9O\xc2\x5c\x04\xfc\xe9\x86\x80\xc1\xc3\
+>\xbb?\x88\xf5\x11\xcf\xf3<\xec\x05\x8d\x05\xfe\xa1\x12\
+\xbb_\x5c\xc6\x06h\x03\x048\xf82g\xda\xc8\xa2\x9a\
+_\xb0\xfa\xc5\x185\xfb\x8f\x8c1\xbd/\xa6\x8a\xf7\x8f\
+?`\xbd\x00a%JHL\x93Z\xba\xfd\xa8t\xc2\
+\xbd!\x80\xe7G\x02V0\x19\xba\xf8\x99\x00\x08#+\
+\x0c\xb5z}\x8c#mUSZX\xcf\xaf\xb4\x8f_\
+\xa9d\xc0=\xa9\xdb\x17J\xbf\x80Q\x97\x22\x8c\xaa0\
+zh\xdc\xc8D\x02\x1e\x8b\xe9C\xc4\x0f\xf0/\xb0\x11\
+(\x03\xa8\x04>\xf17+P\xc4\x8cp\xff\x09\xcc\x00\
+t\xbdk\x13\xbb\xc9\x0fT\xd2\x12\xff\xb7\x98\x86\xee/\
+\xcc\x91\xd8\xb1\x02\xd2\xc4)\x9e\xb3\xf7\x81\xb7\x9f\x00@\
+\xe9\xaeS\xfb\x05\xa0\xe2\x1c\x13%\xc5\xd42\xdf2\xc5\
+^_\xc0\xd7D\x17\xcbo\xef\x14s\xa5P4\x17\x00\
+w\x17\x17 [\xcf\x8f\x94\x7f{\xe1.f=\x10o\
+\xb5\xf1\xf5\xb3\xfbH\x9bi\xfez\xef\xd6\xd0\xdb\x96\x03\
+\x861\xdb\xc4\x8f\xde\xdf\xf3\x89O\xdcS^\x97}2\
+O\x1d\xd0\xf0\xdf\xf9\x85\xb4\x0c\xcc\x8b\xcf%\x9e\xb2\xff\
+<o\x17\x03\xf4\xfa\x9e\xe3\xac\xea\x82\xb6\xdac\x80\x98\
+@\xbf\x95\x16\xf4n5\xe5\xefk\xe3\xcc\xbf\xf0\xfc\x9e\
+\x83?g\xfe\xbc\x1f\xc0\x01\xc0\x82\xa1C\xbb\x06\xc33\
+\xf6\xed\xf0=c\x8ci\x160\xcb`\x9a\x88Y\xe4\xe0\
+\xcc\xd4\x1c\x5cb\xa2\xf2[\x08@\xc0%\x97\xd0\xee\xc2\
+\xfd\xed?\x96\x03\xf0o\x93\x03\x8b\x01@|E\xc6~\
+\xbc\xcee\xa6\x9aB\x0e\xdb0/\xbf3-\xd4p\x03\
+\x1f\x1eG\x82:\xe4\xa7\xa7\x05\xb0\x01z{\x08?;\
+\x00]\x5c\xc2A\x12\xd8\xef\x96\x10\xa3\x00\x11\x14\xb4\xaa\
+\xcd\xec\x17'\x06\xc5\xdc\x97\xfa\xcfbH\xaf7\xd5(\
+\xa2.\xd9\x901\xc0\xa5:\x9e\x0bk\xf7%cL\xd4\
+o\xed\xd9\x04\xb4\x09\xd8NC\x94\x1c\x08@\x03\xca\x8d\
+\xfe\xbf\xdf\x12\xca<\xca\xb0\x8d\x1c\xe4\xa82:\xa8\xb3\
+/\x1ec\xda\x1f.&5\xf5\xb9\xd8\xea\xfd\x88rq\
+\x90d\xc6\x88\x951\x90\x0d\x01\xee}PedN\x1e\
+1\xc6\xf1\xe2}\xed\x18KM\xe2J!\xbe\xee\xfa<\
+\xfb\xdf\xd8?{\xff\xec\xe5\xef\xd6\x83t\x9dltT\
+^\x0e?\xca\xcc\xe5\xa2\xb6\x1c \xa0(\xea\xa8`w\
+X\x03\x88c\xb8\xbdf\x14\x88\xc6|{9\xfe+\x92\
+\xfc\xccd<\x1f\x12\xb1\xa4\xcb\x8dq|\x9eG\xef\x1f\
+\xb5\x7f\xd4\xf1\xb9\x9fy\xf2\xac\x93gm\xf3\xb9\xbf\xff\
+\x18S\xd7\x85t\x09(*\xa1\x8c\xa7\x9aI\xfb\xcc\xbf\
+\xcbL\xe6\xa2\xdd\xfd\xf5\xee\x15\xbbWl\xed*K=\
+\xfe\x07W`e\xf7\xfa\xdd\x1bvC\xe5\xf8\xa7\xc6\x98\
+\x0e~\xfa(\xd3<8\xad\xbf,\x87\x9a\x1a9\xf11\
+\x14\xec\x5cTE\xd9\xd4w8\xa5\x18\xbbW\xee\xfe\xd7\
+\xc2hx\xe81\xdcx\xe8\xb2\xae\xab\xa1{U\xd5\x14\
+\xaf\x22n1h\xc7\xa0z\xad5d\xe0\xecc\xb5\xc2\
+.<\x0e\xacZp\xa5\x17\x02\xa1K\x85\xf1\xf3\xfe\x00\
+n[;\xabu\x7f\x0bh\x00M\xfe\xbb\x8b\xd4~d\
+\xe0]\xf4\xec\x89\x7f\xef\x149\xe7]?rT\xda\x94\
+TUW\x0a\x94b\xf6\xa2\x89T\x15\xc0C|\xcd\xbe\
+Uc\xea\x8b#G,,\x94d\xaf\xab\xcf}\x95\x0e\
+\x01\xf0\x96\xaf)\xe3&\xc3\xa1!\xec)\xc7\x00\x00 \
+\x00IDAT\x9d\x98\xcc\xa7\x80\x91\xe8!\xd1+Z\
+\x06\xfa?\xc7Q\xac\xf6_i\x97W\x81\x99\xfd\x92\xc0\
+\x8eXg\x01\x89\x18.J\x92h\x04\x08\xd4\x12x\xef\
+\xfen\x8cI\x8b\x84\xa3\x8ea\xa0\xa6\xdfyi\x19\xef\
+\xd3j\xd7\xf5\x0f\xd7]A\xe0\x8a\x09\x90\xc0[`^\
+\xcc#%:\x1f\x89=F\x05\xbdN\x1c\xe50N\xca\
+\x91=\xf7\x18>\x9c\xbb86W]\x1c\x1b\xa2w\x80\
+\x14\xea\xea(\xc9\x02\x15\x94`\x00\x10q\xb9\xdf\x1cc\
+\x02\xc2\x014\x98\x1f\xde\x17\x85[@\x9b\x9a\xedb\x5c\
+\xa4$\xab\x98`OY5N\xca\xf1s\xef\x86\x8a]\
+\x19\xdb\x00>%\xea\xa6v\x11\xc0b~\x04\x0aD\xeb\
+0\x1d\x94fE\xdc\x0e#\xad\xfa\xbb'p\xacs\xca\
+.\x098\x88\xe6q\xd0h\x0c\xa8\x19\xf7\xef\x98\x10\x80\
+,\x0c\x14\x81\x00q$j\xe5(\xa8\xa9\xc1\xac\xfb,\
+\x81\xfei\xfd\x9a15\x1e\xba2\xc7\xaa+B\x18\x1e\
+\x87\xef\x1bc\x02\xe0\x04h\xfc\x8e0H\xdc\x17\x98\x00\
+\xfb\x9b\x8f1\x9d\x0f\x19Ov\x86\xea3FBj\x98\
+\x8b\xb9#\xa0\xd2\xad\xc2\xfb\xb5Z\xda\xea\x12 \xf0\xce\
+z{\xdf\xfa{\xddF\xa8\xd0\xbb\xef\x01z\x00\x92\xdc\
+W\x15\xc0\xd8\x7f\xd7\x1fc\x12-S\x0a\x882\xabm\
+\x96\x92\x09\xa2|\x029\xf71{\xe0}\x05rJ\xa2\
+\x1a\x85\x1a\xe5\xbc\xdal\xea\x0a\x82R\x0d &\x96\x8a\
+\xe1\xe0\xfe\x09P\xc0\xbe\xd6~\xbc^\xfc8@\x8b@\
+\x1f\xb0\xabd*]\x84$j\xaa\xad-\xf1\xd4\x07\xa5\
+\xa4P\x80\x03pt\x1f\x01z|\x018e\xc8\xfd\xbe\
+\x80\xbfw\x03\xf0y\xc3p\x18\xcd\x85\x97\xf6\xc2\x8f\x1f\
+\xb2\xca\x0b\xa0\xfc\x9dK\x97!\xa53\x11\xd9,@\x1a\
+p\x82q\x0d\xa0\xec\xa2\xcf\x80j\x01.;\xc2\xdf\x0e\
+\x93r\xf7\xfbcL\xcc\x0b\x0c)\xf3\xeas\xc8X\xda\
+\xf7\xadt\xb5\xfcG\x8c<\x09(\xfe\x81\xfd\xde\x03-\
+\xcf\xc3\xce\xb3O\xd1L*\xa0\x07#\x85\x1d\xb1\xaf\xdc\
+'\xfc\x01\xff\xde\x80\x8a\x0a\xbc:\x10\xe0y\x01\x00\xbe\
+\xffs\x95\xce^\xb8ma\xcbP\xd7w~<&\x82\
+\x80\xd4s\x8bc\xc4\x03\xbe0\x09\xbc\x8e\xf7cW\xec\
+\x1f\xf6\xbf\x89\xc8U\x82\xe2\xe2\x98\x03\x02jm\xff$\
+<\xf9\xf3~\xaf\xfbY\xe6\xc9=-\x0e\xc1Ds\x1e\
+:C\xc1\x7f\x17x{~\xaf\xd7\xdb\x0eJ8\xd3\xfa\
+\xf2\xfe\xd6\xc1\xb9\xf7\xf9\xfb>h\x00\xcc\x22\x82?k\
+O\xb8?0\xc40\xe6\xbc\x9f\xf8\x86_\x0b\xe0!Z\
+\x1a\xed\xa5\xdd\x9b\xc6\xd8\xee\xe9*\xed\xc6\x9c\xc8\xfb\x96\
+\x18\xa7\xd7\xf3\xbc\xf6\x9b}\xe9\xf9\x00<\xe2U\xe7\x22\
+\xcc\xb8S\xfa\x22v\xaan\x05\xc0\x02{\x13~\xf9%\
+\xc7\xbb!5\xfe\xfd\x12KU\xb3\x0a\xf4u#|p\
+\x9aX\x88\xc8\xc7\x16Wi\xcb\xb8w\xad\x01\x19\xc7Q\
+\x9bw\xeb\xed\x22\xd8\xfd\xca\x18\xd3\x856\x8b\xe1|v\
+Z0\x06\xe5m\xa9\xb9\xb6\xf1\xe2\xd0\x16\xf3@\x9b\xaa\
+\xb3\x8e\xe3\xda\x13\x10\xd1\xd5!\xc7\xb4\xbegB\xea\x94\
+&p\x8c\xbfdi\x90\xb6Mp.\x96Z\xa0\xe1\x06\
+|\xd1\xe4\xb8\xc9d\xa6\xddUe\xae\xffu\x8c\x89\xf2\
+\xa7F\xe8\x8e\xab\x03\xb3\xfb\xe8\xee#\xbb\x8fL\x81P\
+\xa8\xe5\x05\x140\xdcqH\xca\xf1\xe9]\x00d\x86e\
+& L\x02M\xc0\x0e\x83\xe4\xb9\xb5\x13z\xf9\xea\xf8\
+V\xcd\x0ef\x02@!\x19\xb8B\xf0!\xda.VH\
+\xaa\x03\x15\x95\xfbe\xb7|p\x11\xd1Y\xd5\xed1\x14\
+\x22\xd6%3]\xa5\x11\xbf\x9d\xf6M\x1f\x1dc\xebW\
+\xbd{\xe6\x18\x1b\xc5\xb5\x1c\xe7\xd4\xdeW\x0d\x96\x1aC\
+\x99\xbb\xd4H\xee\xce]\x19\x04U\xd3x\xc1\x18\x1b\xb3\
+\xa0j\x90\x89=}\xf9\x18\x1b\xd2\xbd\xff\xfe\xfd\xc3\xf7\
+\x0f\x9f.lm\xaa\xbel\x8c\xeds\xef\xbf|\x8c\xc9\
+A\xa2\xbe\x9cvy\x95\xd1J\xfb,\xb5\x9b'\xdf4\
+\xc6\xf1\xf7>4\xc6\x94\xc1c\xf8\xd5\xf8p\xac\x01G\
+\xf6\xa7v\x81\x11\xd3;\xfe\xd7\x85*\x0a\x98\x90\x19E\
+\xb5-\xed\x85O\x87\x02y\xc3\xc3\xe7,\x19$\xfd\xc1\
+\xa9\x14s\x189<\xe9\xd2P\x06\xfc\xb51|\x1c\xd9\
+\xd8\x9dcp\xbb\x9e7\x17\xfa{b\xb8\xdf\x17J\xbc\
+\x8c\xb1\x8b\x1b\xb5^\x89H^\xaf\xa8\xd4wM@\xb4\
+\x8f%\x02\x10\xf4\xf69\xf6%C\xe9\x02\xe95\x5c\x1c\
+K\xed\xd5h'0\xbc^W\x09\x8a\xf5 :\x94\xc0\
+z\xf7\xaa1&-\x95dh\xf6\xcf\x1dc:7\xda\
+Q&\xf0\xab\x8b\x8f\xe3l\x9e\x05\xe2\x1cU\x0e\xbe6\
+v\x80\xa4Pow?=\xc6\xc6h)\x95~\xa2\x88\
+\x8f[\xc6F!\x93i\xfd\x891&f\x03G3\xfd\
+i\xeb\xf3\xbbx\xcc\xa3v`\xd4\xb7u\x9b@\x15\x96\
+\xc9\xd3\x8e/m\x99\xd4\xda\x97\xc6\x02\xc0Qi\xd4\x8b\
+\x0f\x7f\xb2h\x10h\xefv\x83\x00V\xf6\x1d @F\
+[\xc6\x85\xc6\x0d\xea\xba\xcc\xaaL\x17`\xe6\x8b\xd7\x8b\
+\xf7x\x0a\x16\xf5\xdcrL9\xe6(\x9b.R\xfb+\
+\xe7\xa3\x1c\x0c\xc0\x83\xfd\xc61\xb1/tG\xf8\xea1\
+6\xe6Q\x05\xda?<\xc6D\xa1&\x1a\x08(q\x8f\
+\x10\xfd\x94\x11\xa6)\xc1q\x91\xe9f\xf79f\xb44\
+t\xe5I\xa6\xad\xba\x14\xb8\xb7\xa3\x12_\x9f\x07\x00F\
+\xd4\xb4\x8b/\x02\x048\x1e\xec|\xa8\xd0\x02.\x0c\xac\
+\xd2\x84\xc8=_vO\x065\xa5@\xd6\xb7D\x0c}\
+^\xeb\x87\x91\x02\x10\x03\x00\x10\xbdC\x89\xe7\xf8\xe9o\
+\x0f\xa8H\x86\xbf\x981\x80v\xc0\x9e\xcc\xb0{T\xe9\
+\x09\x11@\x8c\x12\xf3\xcc\xeeq\xc0\x89\x9a%\xf0\x22\xb6\
+v\xd8\x8d1e49r\x98O\xeeq%\x19\xeeg\
+L\x97\xd8\x9d\x9a_\x81i\x1c\xdf\x0a\xbc\xf9A\xce\xb9\
+u\xa1\xceO\xdb\xa2u\x8d\xa9\xf5\xe1\xf8K\xa4H\x94\
+\xf0;\xd8\x0b\x81\x806\x9aj\xdb\x9d\x17@\x91\xf3\x10\
+;R\xda(M\xc5\xbc\x02\x7fmgu\xcd@\xd5\xe6\
+\xefq\xb4s/\xb1[5\x8f\xfcO\x9a8\xe9\x86P\
+\xc0\xbe\xcf\xcd\xdf\x91\x09\xa7E3J\x1e\xffj*U\
+\x94\xc0\xf2\xbe(\xe7D/\x1f6\xc6\xc4\x84cot\
+\x1b\xa0\x99b?\xe9v\xc0\xaf\x96\xf9\x94\xf1\x93\x99\xc6\
+\x84t?Y\x17\xbf\x0f8wo\xa5\xd4o\xf7\x82\xdd\
+\x1f\xee^0\xd9\x13\x9a\x15\x00Q\x897\x7fo\xbf\x10\
+\x13\x0b\x93\xafD\x0e1\xd0\x04\xfe4Q\x04\xc2\x09|\
+\x01\x8d\x05\x8c\xf5L\xab\xc0\x1a\xf3\x0b\xd0\x04\xd8s~\
+\x00\x9c\xec\x97@\xd9\xb9B\x9dg\xb7dp\xd9_\x0c\
+=\x99\xd0\xfb\x8c1\xdd\xeb\x98\xb72\xa9J\x8b\xd8\x11\
+\xafg\xdfbd\x00&h\x01\xd8\x8f\x9d\x22\xcf\x1e\xb3\
+\x9b\x98\x0c^\xd7\xf9\xf0{\xf6\x95\xd2\x05L\x09\xf7Q\
+\xcf\x10\xf7\xf6\xe5\xbd\xd6\xdf\xfb\xf0w\xba\xa8h\x07\x00\
+\xf8\xff\xadk\xcc\x85\xda\xa3\x9f?\x01\xa9\xf6co/\
+(\x8er\x1f\xf4\x92\x09_\x18_s<y\x89\x8b\x10\
+5\xf4\xdf}>\xaf\xcbn\x02dtM\xe8\x80\x8e\xfb\
+\xd9\xefw\xc0\x06\xf0`>\xd8;\xcfk\x1e\xdd\x83\x00\
+eL(\xf7\x91y\xee\xed\xa8\xed\xf3<\xf7\xee\xd7\xc6\
+X\x12v\xc71\xfd}\xf7Cu\xb3\x90\xc8\xe4wX\
+\x1f\xf3\x0d`\xe8%*>\x87\x12\xee0\xbbNU\xad\
+{\xda\xfcUF\xdf\x82\xc8\xec\xaa%\x98E\x18>\xd8\
+\x16\x90(\xd1\x15[\x7fR\xb5C\xe7O\x0e\xf2\xa0\xbc\
+\xdf:\x01\xde\x1db\x18\xef\x1a\x0a\xeb7&Cv\x0c\
+\x98F\xf8\xb1\x04 \xc3=\xb8\xffE\xb43\x82 \xd1\
+(\x10(\x0c\x82\xd73\xb2\x81>69\xd0.P\xa2\
+H\xc3!y\xfbD-\x1e\xcb6m\xa4\xc5l\x5c3\
+\x8e\xdfY\x13\x2292,\xe7\xa46\xf6\x81\x93\xc8\xd9\
+\xa04?m\xca\xfc\xeb+\x1e\xb1\x1dj\xb4U#\xa9\
+\xcd\xde_\xee^\xba{\xe9$\x82\xa6=\xde\x9f\xa7\x16\
+\xea\xd7s\xf1Q\xc5\x85\xd8\x12y\x10XA\x8e8d\
+\x9f\x13dJ\xa0\xce\xd1u\x80ch\x89\xc4\xd4\xc1\xf3\
+\xfbj\xb1\x04\xf0\x10)\x81\xfb\xad\xd6\xc0\xbf\x10w%\
+\x022\x04\x02%\x86L\x0d#\xc7\xfc\xd9\xd1\x22\x00\x5c\
+\xbc&\x0e\xf6{\xd7\x03S}\xc1\xa3V\x8ejl\xf9\
++\xd3\x18J\xcb\xe1\x8b\xc6\xd82\xf7\x87[F4\xef\
+~\xbb\xfb\xee\xee;!\xf0\xad\x9d\xe3\xe1\xd2\x87K\x1d\
+.5\xcdG\xdeo\xff\xa7c,m\xec\x8ec\x0b\xa0\
+\xf6??\xc6\x16\x00\xed\xef0\xc6\xf1\xfb\x7f\xdd\xff\xd0\
+~r,\x8f\xd7\xe5\x92\x81\xaf\x8b^\xff\xdd\x00\x19\xbb\
+\xb7\x8c1\x89p\x01\xc2\xbem\x19\xd5F\x07\xb5\xb4\xd4\
+{\xd5L^e\x8c\xc9Pf\xffW\x86\x14\x857\xff\
+\xbe\xfb\x871\x96\xf7Y\x1d\x1c\x00\xc5]\x0fw9\xdc\
+e\x02rd\x86\x01\x17o\x0e\x05\xef.\xeb\xef\x1d~\
+\xee\xf0\xb4\xa1\xfe~r\xb71&\x07\xc7\xbe\xd3\x960\
+\x0eE\x89[>y\x15\x9d+\x83\x0c\x88q\xd1\xbb\x00\
+\x89x\x11C\xc2\xf0\x81\xd8\x13\xcbK\xe0/\x13V\x01\
+\xd1m\x13\x089\xf7.0\x14@*\xe6~\x9f!\xd7\
+\x06\x8d*\xab@R\x0d(`\xcb\x05\xe9\xf3\xca`A\
+\x94\xd9\x19\xf3)\xf0\x90\xf9w\xd1P\xd1Vj\x14\xb1\
+\xc2\x9a/Z\x052v\x1c\x03bF\x09<h\x1dp\
+\xa8\xd5:\xef\x9e6\xc6\xd4\x0d\xc3y\xe4\xc0rPQ\
+j\x9d\xcbd\x961\x0a\x0e\x7f0\xc6$\x8a(\xc3\xe9\
+\x82\xc2L@\xf1\xd6\xcd\xc2|(]H\xb7\x91\xea\xbf\
+M\xb5[\x1bM@\xc5_\x8e1i\x12\x00D\x07\x93\
+\xe4U\x93c\xcc\x016\x1f\x80\x80h\x16T\xa0\x8dB\
+\xef\x1c\xfa\x9c\x1c9*\xe4\xbf\xb7\xce;\xcd\x8e\xdd\x13\
+\xc7\x98\x1c\x05\xeb\xaaF\xd9}\x06@EY\xe5\x90\x03\
+N\x89\x87\x9a?\xfb[m=\xcd\x92\x04<\xce]\x89\
+w\xc9\xc4r\xa8dt|\x0e\x0c-T}\x8c\xb5\xe7\
+\xadZ#\x05\xd0\x10o\xa3y@U\xf89cl\x80\
+Le\xc80\xcd\x04\x9c\xd6\x93#\xea;\x15\x7f\x80\x92\
+\xbe\xed\x18)^\xc7\xdf\x03\x90B\xc5.\x06\x8an\x14\
+\x80\xee\xb41*q8@\x10\xd5~\x00\xa4{\xcfw\
+\x89\x84{\x8d1\x05 \x1c7\x80\x0e\xb16Z!\x00\
+4\xc0\xe2\x17\x8dqz\x09C%\x140-\x00\x902\
+\x8d\x80\x1evX&W\x17\x83\xf4\xb7/&Z\xc48\
+\x8b\xf1c\x7fa\xe2(A\x0c\x90Um\xf9\xf8\x1d)\
+A(\xd1\xca\x00\xdd\x87?\x19c\x03f\x0e\xdf<\xc6\
+\x14\x80\x0ap\xf3<\xc5\xb0\x01\xc4`T\xf0\xff\xd8\xd3\
+\xf4\x91\xae\xc0U\x09S4\x11j\xbf\x02\x1a\x95b\xd8\
+\xbf(\xbf\xe6KI\x10\xe6\x85R&\x81_\x02\xe0\x9a\
+O\x89\x16~\x9a}\xc8\x1f\x14\xc8r\x801F\x94\xb2\
+\xb97\xf9\xb7\x1cj\xa5\x08)%\xa9@#%H\x15\
+ b\xe8\x048\xefT\xe6\x02\x8c\x04\x9eD\x9di\xce\
+(M\x03\x14\xf0\xcb\xf8u\xfc\x04\xa2\xabI\x00\x14\xc0\
+%\xa0\xe8\xd4\xe3\xcf4 R@\x000\xfc\x9d1&\
+\x0d\x9b\x94\xe8T\xa9\x9es\xae\xa4\x03\xd0\x9e\xf59\xfc\
+\xd71& B\xdbo\xeb\x86Yf\xff\x0b\x5c1p\
+\x94\x8e\xa0\xd6\x03r\x95\x9c\xd2f\xb0\xee\x0dp,\x11\
+W\x01\x1e;\x88I\x05xc\x7f\x05b\xee\x7f\xfb\xc2\
+\xfc\xb8W\xcc\x9f{\xbd\x03\x09\xad\xf6\xbf\x02x\xcf\xd5\
+D\xb6OS\x95\xef5\xe1\x98\x0e>\x9f\xfb\x85\x1f\xe4\
+\xbe\xec\x9f\xd3}\xeby\x04\x8a\x80\x15\xeb\xef\x0b\x00\x22\
+@\xf4\xbd\x07\xd6\x98\xc6\x98\x9f\xe6\xcb\xfe7\x9f\x02n\
+~\x84\xe7\xe9]\x1cz\x97/\x01\xa8\xff\xee\x5c\x9a\xf7\
+\x1e\xf8\xfb\xde\xdb^\xfa=_\xd6\x9b_\x07\x08\xea\x09\
+\x09\xcfg\xbe\xac\xbf\xe7\xe8\x8c\x0a\xef/a\xa0\xa4\xc9\
+z\x03\x0c\xcc\x9fD\x88\xe7\xb4\x1e\xec\x1d\xa0\x0a#S\
+\xe2\x16\xa0\xc8\x9e\x89\x9b\xac\xa3\xf9\x02,\xb1o\xe6\xd3\
+\xfc\x89\xb7\xedW\xfb\xae\x8b@\xb2\xd7I\xc4\x9cB\xbd\
+/\x87tV\xcb\xbf\xdc\xd4\xf6\xcf\x07\x1dn\xd7\xdf\x86\
+\xca\xf8\xb2I\xf5\x18\x05~\x5c'\xff\x94\x9a\xc3\x87\x06\
+\x81\xfd\xd2I\xc4O-\xaa6L\xc3\xcd\xbc\xf3$\xa6\
+\x93\x8c\xe7B5\xfc\xd6\xc9Q\xa0Q\xf0\xe9%\xd7r\
+\xd1\xaa\xfa\x97\x9b\xba\x13\xc8x\x9aP\xc8<\x83\xe9\xef\
+\x94*8\x98\x10\xd8\xcb.\x1d\xcfk>v'\xbbu\
+\xe2\x8f\xee\xe8\x226\x15\xa4y\xff7\xc7\xf1\x8a\x5c\x90\
+W\xde\x02\xfd\xca h3\xf6\xe1\xe3\xf8\xd0F\x09\xde\
+\xfdQ\x18\x00o\xcd\xc1\xfe\xe3P\xff\x1f\x16G]`\
++\x83\xfd{\xb9`\x05\x96\x18\x08i\x97S\xeb\xe7K\
+\xa0\xcePe>\x16\xc6\xc3Y\xd3AF\xb1\xb4\xbe\x9e\
+\x17\xd5$\x99\x92B\x8a\x89\x04\xba(\xd4\xfc\xbcqE\
+L\x8fn\xca\xedv\xb7\x9b\xa82\x0c\x90\x03\x91>\xdb\
+U\xd3\xe7\xc0Q\x19\x7fY\xc4\xa2\x1c$\x9f7\xb5\xab\
+c\x1dv'\x8b\x8a\xe8j\xa8\x5c \x025H\xf4\xe5\
+\xc7\xd8\xbaR\xec\xff\xea8^\xb69\x9c\xbbw\x1f\xc7\
+\xbb\xa6\xda\xaf\x0f\xc7A\xa3\xf6\xb5\xb5\x7f[\x0f\xb6\x8c\
+\xb2\x8b.\x99\x85\x0b^5\xc6\x22\x22\xb7\x22\xd6\xa1,\
+V`u\xbfUsA`Sm1\xcd#$W\xa0\
+#\xf3\xf2\xa4d\xac>\x96\xae\x0c?\xb6\xaa\x0f\x97H\
+\x916w\xa1\x82\xee\xffd\x8c\xc9\xb01\x94\x0cG\xce\
+Ue\x5c\xed\x1f\x99\xa5\x0f\x05\xf9M\x0d\xe6R\xf8\xb2\
+_\x1c\xe1u\x1f\xbf,5q\x90q\x01\xa0\xcc\xb7\x0b\
+\x98\xa3\x82\xda)\xc0v\xa1=+\xed\xb2\x88\x9e(]\
+\xa0M\x11\xa0\x09\x93\xa3.b\x0e\x1e\xcd\x82/\xcc9\
+g\xd0e\x9c]\x8c\xf6\xb5@W\xe0\xc1p\xfb\x8e:\
+\xd8\x02\xd9\xa28'C[\x88j\xaf\xbd\xd3v\xcb9\
+\xb5\x0fe\xfa\x89B\xa9\xa9M{.@\xc3\xe1\xf3\xc7\
+\xd8\x80\xc1:'\xd6K-u2\xb5e\xc8e\xa88\
+\x16\xc9\xfca\xa6T\x97\x8a8\x98D\xb2N\xab\x91\xe3\
+p\xa2\xa4q@d\xea\x04\x98.B\x19.\x01\x0b\xd1\
+.\xcf-\x03w\xad1\x96\x92\x9c\xe3\x98\x02d\xaf\xcf\
+\xae\xa2\xa4+Q\xc0\x10\xb2\x1e\xad-T\x05RD\x07\
+#\xae\xd5U\x82\xab='m\x02\xfbA\xa0, P\
+\xb3\x1cJ\xff\xe1\x0b\xc68\xfe\xf7_X\xc6F\xf5N\
+ _\xa5'T\xa61\x85\xb4CD1\x06\xa08\xb7\
+2\xae(\xf1i\xfb\xb7\xdc>\x1f\xdfDTGO\x8c\
+\xd1\x15C`)\xc3T\x80\x06\xcd\x0c\x0eBj\xfb\xab\
+\xc4\x81\x03\xc7\x0e%\xa0.{\x91\xd7\xaf\xb6d\xdac\
+\xaa\xd1e\x97\xdd\xa3\xec%F\x95\x1a\xea\x04H\xbb\xab\
+\x8f19\xbe\xce\x15 \x22\xcc(\x9a(\x05\xa0\x87q\
+U\xb5\xeeJ\x00d\xf61\xf4\xd2\xed\xa1jY\xa9y\
+\x03\x9ah\x9a\xb8\xb7^\xb9\x8a\xaaV\x1fr%9)\
+Q9\xad_4\xca\xb4@\xde\xfd\xed\xbc\x12\xe1\xec\x0e\
+\xac\xd2\xbd\x88\xb3\x96V\x04\xbb\xa0d\x0be\x97\x8a\xb8\
+\xfd\x16&\xe2\xe13cL\xef\xaf$\xadev\x0fw\
+\x18c\x02\x06P\xe1\xdd\xdbJ6\xd4>\xa3\xc8\xcbL\
+r\x80\xd3\x1e\xb6J\x1d\xfc=\xf5s\x00\xbd\xfd\xc3\xb1\
+e\xd7\x946\xe9\xbeCC\x81\x080&C\x02\xe6j\
+\x0f\x98\xf3T\xda7>\x07\x7f\xb3\x97\xbeiol\x9f\
+\x03\xd6\xd8\x858\xce\x87\xbf\x1cc\xb2\x0f\xf6\x0d\xffE\
+\x00\xcc\x1fT\xe2\xc2\xee\xe9n\xd34\xa6JS\x838\
+\x9f@\x8d?\xa3\x14\x00\xb0Ds\xe41cL\xf7\xba\
+Zp\xc0\x92\xcf\xc5\x1f%J\x8a*/C\xac\xad#\
+@G\xe6\x0f\x83\xca=\xe4\x1eh\xa2\xac\xf5:\x02j\
+\x80MDBKl\x92v\xca,\xd2\xfd\xce\xe9\xf5\x7f\
+\xe0\x8c\x87\x8f\x12\xa8\xc3\x9f\x1d\xfe|\x01\x88\x05,\xec\
+t\x12\x15\x12w\x80\x0e\x80q\x05\x1c\xec%\xa0\xc7\xf9\
+s\xff\xcb\xa0\xca\xb8\xfb.\xe0\x02H\xd0@P2e\
+_\xb8_\x04\x5c\x98\xc2\xcem\xf7\x8b\x88\xec\x12\xc5\xcc\
+\xe7\xd8]{\x8c\x16\x1fL\x22z5\x9f\x12\x18-`\
+/?\x03e_@*\xd0\xb4\x1f\xbb\xc8-\xff\xc2\xfb\
+\x08\xfc\xfd\x9e}\xef\xbb@O\xa0\xebs\x0b\xd4\xf9\xd5\
+>/?\x9d\xb8%\x00@\x00-\xf3\xefsy\x1d\x80\
+\xb7s\xd8\x03\xcf\xde}\xa0\x07\xd4]D\xaf\x8b\xe4)\
+\xd9\xb9\xc4\x18\x93\xfdl\x22\xe9\xf5{\xdat\xd2\xd0\xe1\
+\xd7x\xff6\x8f5O\x9e\x83\xbf\x08\x18h\x0c\x00\xdd\
+\xc20\x9c\xab{\x98\xd7\xe1\x8f\xf66\xbf\xecd\xef\xfe\
+\xe6\xef\xf8W\xe6\x87\x9d:o\x8cI\xbc\xb6'\x88\xba\
+\xd8}/mwN\xcd\xaf}\xeeg\xcf\x09\xc0\x8d\x1d\
+\xc0\xc0;\xb58\x96\xd7\x8d\xc3r\xd7-\x90\xad\x8d3\
+\xde\xee\x03\x13\xe5\xca\x86'\xd62\xfa\x8c~Y\xd4\xcd\
+\x7fi\xd3\x0aX\xfc\xb9\x93\xc9\xe0\x07PXDPn\
+5!\xf52d1\x8c\xe50~\xd52\xb6\x05c\xa0\
+.Y\xb5\xbe+\xe2a\x22\xba(\xce\xfb\x16\x12\xf1\xa6\
+b\xcd0\xf7\xda\x97\xb9V\xf4$\x7f\xf7\xde\x18\xe6\xb7\
+N\x1bc\xb8\xf7W_\x11\xf0%CB\xf4p\xb8\xc9\
+#\x83\xf2\xf7\xc7\xf1\xba\xadm]\xd5\xa6\xden\x0d\x88\
+w\x0f\x1e\x8d\xe6\x8e\xdf\xff|\x8cE\x8du\x11\x03\xaa\
+\xcc\x97\xe7\x93\xb1\x0d\x02J5\x5cF\xaa\x9e\x97\x81\xb3\
+\x81\xaf\x94\x8c\xc6g\xb2a\xfc^S\x07=\xbc'%\
+\x1f\x8fMM\x97\xf94\x1f6\x9c\x03/\x80T\xdb\xa7\
+\x86\x15e\xca\x05~\xa5PTd\x80\xce\xc9\x85/\xb0\
+\xf4\xfaj\xfaP\x9d\x01A.L\x06\x87Ae\xf0t\
+\x11xh\x1c\xde\x94\x00\xd4\x85\xa0\x7f3`\xc8\x058\
+\x02\xa6\xffh\xb5\xd6\xdf\x92}\xf5\xce)\xb3J\xed\xf5\
+'\x0fOX\xa8\x83WM\xed.\xb5\xe9\xb7e\x1fQ\
+\x19\xee\xedl\x9e\x15\x111\x9f\x83\xc3\x04(1O.\
+~5\xd4\x18.\xe6\x07e\xf7\x0d1\xfc\xd7L\xcd\xfc\
+\xdd\xc7\xd8(\xb0\xa8l\xfb7\xee\xdf\xb0\x7f\xc3\xe2p\
+\xadTp\xfbB&\xe3\x1ak\x86\xd2\xba\x94#\x7f\xbd\
+1\xa6\xd2\x16\x81}\x02\xe6\xca\x18?6\xea\xd1\x1c\xd7\
+0\x00v\xaf\x1ecr\xc8\x19(\x81:5j\xcc\x8c\
+\xf4S'\x82T\xb5\xc02E\xb17'\xf7\x1dc\x02\
+\x16\x5c\x98T\xef/\x1d\xbb\xf4\xddy\xdf\xff\x1c\xc7Q\
+\xed\xbcLN3\xb4\xa5\xf2/\xe3\x22`Q\xf3\xee\xc2\
+\x93\x91\x92\xf1\x97\x19\x9f\xed\xca\x94y\xa9\xcc\xdc\xcc\x18\
+\xba\xd6D\x1d\xf6\xf9Q\x5cQY9\x1c\xff8\xc6\x04\
+\xa8p\xa0\xd9=\x01fk\x9b\xb6\x7f\xd3\x18\x1b\xf0q\
+\xf2\xf81\xa6\x1ab\x883M\x0f\x08\xb3y\xb1^j\
+\x14\xbd\xaf\x7fOf\xbb\x1c95\xaeOXKt*\
+\x90\x8d\x06@9\xe2\xe6!\x81F\x01\x08\x1c\x02\xc0\x1e\
+\xbb\xc5\xfe\xd0H\xb0^\x02*%Q\x1cv\x80\xb0L\
+6\x8a+\xf165\xf1cV^\x18j\xf7\xe3&\xd1\
+:\x17l\x98S\xa3\x99\xe6h\xa7)p.\x07I\xb7\
+\x82\xbb\x8f1e\xecCa\xafZ=\x14V\x99\xa1\x88\
+\xbbU{\xb5\x88D\xee\x1e7\xc6dOte\xc1\x9c\
+z\xdb\xd1\x8a\xbcm\xd2\xb8\xb8\xf1\x18\x13\xb0\x90}u\
+\xb8\xfa\x18S-0fV\xd6u\xff\x811&M\x03\
+m+\x05\xb6q\x04N\x9e2\xc6\xe6\xd0\x02\xb00\xa4\
+j_\x13q\xcb\xfa\x16 \xa6\xbb\x8c\xee#\xb1k%\
+.\xe6\x1eQ\xfb\x9b\xf3^\x9a\x22\x09\x00\x8b\x8a\x1d?\
+\x81\xe3\xbb\xbb\xf9\x18[\xbb\xd6\x12ido\x05R\xc9\
+8\xd6~1/\xc4\x04\x03\xc4U\x1fu~\x83R\x0b\
+\xa2l\x00\xae\x94\xd6T\xb7\x0e\x22\x80\x1c\xff\xdc\x83%\
+\xb2\x86\xb9 \x83\xdb\xd4\xbe\x0b\x90\xc1h B+\xc0\
+\x1c\x8c\xb3\xff=\x9do%_\xb4s\x22\x1e[@\x17\
+?H \x8b\xc9\xc0a\x0e\xc5\xbfJ\xe5\xd8\xa3\xdco\
+%\xfa\xfb\xeeb\x18\xae\xfd\xe2\x1f9\xc6\x04\x88h\xbb\
+\xa7]\xa8D\xcfW/c\xcbD[g\x80\x03&\x8e\
+\xf9\x22z\x18\xe6\x0fm\x9e\x02\x86#\xa2\x08\x10\xab\x92\
+\x04\x00Z\xfc\xc1\x12\xedJW\x22\xcc\x86*]\x10\xb8\
+`\xc0i\x83\xd5E\x99\xed?v \xef\x8f\x9a\x0f\x00\
+<\xdc\xe8p\xc3\xc3\x8d\x16\xe6\xe9\xd7.Z\x042\xc7\
+\xe6\xd3\xfcIh8\x0f\x18+\xfc^\x99w\x0cK\xf7\
+\x0cJ/u~\xc0\x18\x06\x8e\xf6\xa8\x02|\xedU\x05\
+\x12\xf6\x81\xf3\xd0\xda\x8c\x95_\x04\xd0\x16\xe8*\xdd\xf3\
+\xf7J\xb3\xd8a\xfe\xbd\xcf\xf3G\x87?^J\xcdr\
+\x8eO\xa3\xac\xe7\x9e\xd9]y\x8cm\x9d\x01\x15\x18-\
+\x00\xac\xc3%\xc7\x98\x02\x11\x1a\x02\x98\x80M\x15_\x80\
+\x5c\xfb\x11\xa0\x8f\x01\xc6O\xf4\xdc]\x03\x8b\x18^\xde\
+\xa7\x98/\x18&\x18\x95\x02G\xf3\xc0\x8f\xb4o\x04\x90\
+\x18x\xde\x9f\xbf\xe790\x19\x04\xfe\x9dz\xde\xc5\xfc\
+\xbc\x1ef\x03\xd1M\xf71?\xa5\xd7\xce\xcb\xf0b\xd6\
+:\x1f\x02D\x00\x80\x84f\xd7\x04\xe8L\x09\x81\xab\x00\
+\x9d?\x0a8\x13\x0f\x98_~\x02\xbf\xa8\xff\xbd\xfd\xe1\
+g\x99\xe8\xff\x18c\xfa\x1c\xba:\xf0\x03}\xb5\xee:\
+5?~\xcf\x7f7\x7f\xde\xaf\x07\xc2\x80\x00?\xf3C\
+\x004\xe6\xcd\x7f\x07\xec\x01\xa4\xac\x97\xff.\x1ei\xda\
+\x0c5?\xec\x838\x13\x13F\xfbL\xf3\xf7\xdd\xcb8\
+cw\xf91&\xbf\xd5\xf3\x01\xce0\xf1\xad\x83}i\
+\xbe;\x10a\xbe\xbdO~ow\xa91\xa6\x84p\xec\
+\xe0\xa9\xe5z\xbb\xce\x14@\xa3\xd2[`\x07\xb2\xab\x10\
+\x0e\xb7\xf1\xaf\xe3 \xbf$\x8e\xde\xa0^\xde\xf98\xee\
+2\x19,\x8e\xe3U\xc6\x98D\x04M\xd4\xc0\x03o\x18\
+\xc7\xfb\xfa\x9b\x18`\x89\x05\xbez\xd1I?\xbdV\xc4\
+s\xf9\x82\x88;\x80D\x9cl \x19]\x01\xa6\xd71\
+\xa1Ta\xd5Zq8G\x05\xeb\x83S[y\xdb\x8b\
+h\xe7\xa5\x16\xf0_\xc6\x98\xd4\xe2\xb5\x7f\x92\xf9\xa0b\
+\xfc=\xa1\xbc&sXHz6D]\xe8(\xfd(\
+U6\x84\xcc\xa7@\x11\xf2\x0dQ\x87\xd0\xdf{\xed?\
+^\xe2<oO\x8d\xe7#\xd7\x8c\xe4\xee\x19cL\x1b\
+\x95A\x84\x80kk\xa3&\x14u\xf6j1\xac\x0e\x9e\
+\x80\xd3\x81\xd0\xef\xf4\xa5\x09\x08^\x1e\x06\xc6y1\xb0\
+?\x18Q-\x86\xd1z8\xd0\x90H\xeb\x18\xaa\x5c\x89\
+\x9e\x05\xf1+*\xa0\xf7u\x80<g\x18\x18\x0b\xf3\xe2\
+\xc3\x13\xc5iPk\xef\x91\x0b\xf2u\xd3\xc5\x15j\xf7\
+\xfeN\xc7q\xe7)3\x19\xff\xe18\x1bk\xadW\x02\
+\xaeB\xeeB\xe9\xa5zZT_\xd4Q\x01I\xef\xa3\
+\xdaDTJ5\xfd\xdb\xc7X2l\xf7\x1d\xea\xe1\xc7\
+0|\xcd\xe0R\xd3M\x06\xee\xe0\xef\x7f<\x0e\x83@\
+\xf6z\x17\xae\x89=\xee\xfd5\x90E\x85UBb\x9d\
+\xd5\x8c\xa6=^9\x92\xc4\x18_\xba\x96\xa6\x1c\xee\x1c\
+1\xb7+\xee\xae\xb0\xbb\xc2\xd4g\xfaZ\xa1@\xdb\xbf\
+\x80\x17]\x16\xb4\x9bt\x91\xdf~\x8c) \xf5>\x02\
+\xf3\xd4t\xcb\xf4\x17\xd5\x97\x03\xfbKcL\xfd\xeb\xaf\
+\x90\xe7\xd1&\xea\xb3\xa5\xa2\xbc\xeeS\xfb\xe1$\x0e\x8f\
+\x0bRFV\xe9\x00*\xa7@\x1c\xe5W\x00\xdb\x91d\
+\x94g\xfd\x821;\xb4\xa3S\x93O\x0c\x8b\x83\xf3\xcb\
+\xcb8\xe3\xe4?\x8f\xb1\xcdoej\x13\x88U\xed.\
+\x8a/\xc7\x80\xbak\x98/\x18 \xbb\x7f\x1ac\xab\x99\
+\xafL\xbd\x00\x07u\xb7#\xf7(\x992\x95\x98BJ\
+\x0fd \xb4E\xb3_\xd5\xe8\xa2\xba\xa2r7\x86\x80\
+\xe7+\xca\xa8\xcc*\x07>\xafG\x03\xa0\xec\x99\xc0\xbf\
+k\x05\xe8\x8a\xe0\x22\x96\xf9>{\x8c\xcd\x8e\x15 0\
+\xec\xf6\xd9[\xa6nw\xee\x18\x9b\xbax\x9d'\xe7\x00\
+\xf5W&\xdf\xc5\xcf\xd1F\x91\xe6\xe8\x9b\x07\x7f\xaf4\
+G\xc9\xc4o\x8e1\xed3\xa2[D\xdb\xfe\xdb\xe1q\
+Kfp\xb4\xed\xbc\xe3\x04\xd0\xa5\xa6\xbb\xec>\xa6\x0e\
+G'\x19\xed\xfd3\xc7\xd8\x02\xe4*\x81P*\xf5\xf5\
+cL\xa2]2\xf8\xd9\xd7'\xb7\x1b\xe3\xb8\x1d~t\
+\x8c\xa9\xbbE\xba\x19\x14\xb5=%\x01\xa5U\x90\x00\xe7\
+BL\xbe\xbbL\xedEs\x1e\xa9\x81\x17\x10\xf0Kc\
+D\xe3\xe7\x0b7\x06C\xd9yj\xed2\x93\x02\xc1h\
+\x14U&\x14\xc3\x8e\xe3%\xc3\x1e\x0d\x89\x0adG\x82\
+\xe2\x1eS\xed;\xc7\x13\xc0\x07`P:\x13\xc6N\xb5\
+\x0f\x03\x10c\x1eahe\xfd\xab\x1d\xa4\x8c9\x8d\x0e\
+5\xf9_2\xc6\xb4\xafs\xaf\xd7}\x91}\xb3\xbf\xcc\
+\x18\xc7\xd7\xfb\xe71&{\x96\x12\x87\x02\x101/\x04\
+\x94J\xe7\xd8+\x80njsK\xbbC\xb7\x02\xfb\x83\
+\xe6K2\xf7U\xcb\xec\x1e\xe6O\xe4\xf3+\x1d(M\
+&\x01<`L7\x14L\x1b\xda$\x18\x98\x9e3\x01\
+\xd7\xe1\xf3\xc6\x98~\x9f\x1f\x10\x8d\x1a\x22\x99\xb4\x12\xca\
+_\xc0h\xa0uA\x13 Z\x14\xa5\xe1\x00`\x22\x92\
+\xc8\xcf\x91X\xc2X\xe30\x03\xb0\xb4\xf9}C\xee\xb1\
+\xf3V&\xa3R\x9d\x02\xf4\xd9M\xb5\xf0\x09\xa40V\
+\xaa\x14\x15 \xa1\x9b\x89\xd2\x87\x00\x0a\x98_\xc5\xf0\xc0\
+h\xb4\x8e\x80U\x81)\x11>\x09:\xc0\x04G\x85\xbd\
+\xa2&.\x80\xc4\xc8\xf9\xe216\xf1\xc9:\x9f\x02E\
+\x81\xb7{Gi\x9f\xc4\x85\x1ae\x22\x8d\xee}\xfb\x9f\
+\x1f\xc1?A\xb1\x17h\x0a\xb0\xcc\xa7x\xa2\x05\xc2\xa7\
+1\x18\x04\xc4\xbe\x13U\x95\x98l\x01\xcfi\xfed\x18\
+\x03\x15\x17\xf8}\xc0\x0bqL\x098\x00< \xfd\xbc\
+1N?\xe7\xf5\xf7\x80\x0c\xf7\x92\xcf\xd3E\x84\x01\xc6\
+\xee\x93\x00\x08\x1d`,\x7f\xa3g\xaa[\x80[Z\x09\
+\x98\x12~O\x5c\xd3\xdb\xea\xf5\x9a\xff\xdeF\x9d\x7f\xd3\
+\xbb\x97\xf1'\xfd\xdd\xc5h\x02\x94\x7f\x85\x92\x0fPw\
+\xce\xcc\x87@W\xe0\xdaK\xbb\xed\xe7\xb9\x8d\xfb\xcch\
+\xb0\xbe\x9e\xbbk\x0f\xf8\x1c\xbdM\xa0\x84.-8\xeb\
+d\xbe\xf9\xe9\xe20\xf3g\xde\xda\xbe\xa8\xd7\xed\x1a)\
+\xde\xc7\xf9\x05L\x8b\x1fSrW\x09E~\x958U\
+|\xec\xbc\x89\xcf\xbb6BgpX\x1f\xffn>1\
+\xa9\x93\xb8=\xdcm\x8c\xe1\xa6\x8em\xf4\x8eL\xf0\x1d\
+\xa6\x0d\xf1\x86%\x07\xb9m\x5c\x07r\xd4\x0e\xfe\xe5\x94\
+9\x22\xf6\x91\xcc\x10\x11\xb2\xe5\xef_\x7f\x11b\x05\x02\
+\x0c\x1fD\xe9\x00\x06\xe7X\x98\x7f\x0d\x05\xe3\xf2\x99\xe8\
+7M\x08\x9d\x05\x19\xc7\xec_\xa7\xd7\x198\xe7\x9fF\
+\xa4\xed9\xdb\xcfK\x1e\xea\x87\x034\xdc`2\x982\
+Q.F\x0e\xdb\xd0\xe4\xd9o\xd4\xfa\xc5\x11\xbe\xdb\xe4\
+\x88\xa9\x8d\x0f\xf2\x5c\xb5]\x1c\xc6\x18\xe8\xddK\xc6\x98\
+DR8\xe0=\xf0\xe3\xd8\xb90l`\x1b0j\xb2\
+\xbb\x0f\x8e\xb1P\xc7W\xd1\xa8\x1b\xae\x99\x84\xe3\xa6\x5c\
+\xd7\xeb&\x01,P\xb7C\xe5\xdc\xddp\xedSN\xec\
+\xb1\x0c6\x06\x06G\xca<\xda@\xe6\xd9\xcf6<\xea\
+%D\x0bB\xed\xf7\xac\x13d\xfe\xbf\x87\xaa\x97\x12\x8b\
+\xbap\xee\x19\x80\x03pCLH\xc0f\x1f\xa2\xec\x12\
+\x85\xfa\x9fc,\xe22k_\xe1;\x8f1\xa9\x8a\x0f\
+w\xe5\x86[\xf7\x8a\xcaH\xc70\x16\xc5\xf6\xbacL\
+\xed\xf9\x5cLCE\xff\x07\xe2\x08\xff\xcd$f\xf7\x8a\
+ \xe2Tq#NW\x8c\x8fd\xa2\x8b\xa2O,R\
+\xad\xf3[\x1aUK\x89\x80\x0c\x12D>@\xd1\xee\x89\
+\xd1\x0eh\xfdb\x8b\xa2\x1c1\xc23~7\xfb\x8e\xa6\
+\xc5s#\x9ad\x9f?\x22\x99\xc9\x5c\x94E\x11\x95\xa1\
+\xb0\x1f\x13PT&\xfd\x0aq\x08\x04\xaeY'\x99\xcc\
+j\xb3\x98\xcf\xab\xfda\xbd/\xf1\xa0{\x05pH\x00\
+IDH&\x89\xc3\xab\x0b\xc6\xe1\xc1c,\x22=_\
+y\xf8\xca\xcd\x81- -\x81\x0bq\xbb2\x94\x1cM\
+\xfb\xe7Z1\xa4\xa72\xaf.,\xf6\x8c#)\x80\xa4\
+\xb2J\x0c\xd5\x85e\xff\xd8\xff\xce\xad\x8b\xdeE#\xc3\
+'\xb0\xd5\xee\x88\x8a|\xf6\x17\xb1\xc7r\xf4\xbc.\x03\
+N\xfd\x1feTfA_k\xed\xc8\xa8,\xa7=\xe1\
+\xe1\x83c\x04\x80\xbd\xf3\xb4\x9f\xd3\xee\xa8\xd6e+m\
+Y\xd7\xd7\x85\x05\xa8\xa1\x89\xa1\xc6\x15\x13\x84\x98\x9f\x8b\
+V\xcd?\xbb\xedy\xb3\xae\x98\x0a\x05Tr,Q;\
+1v\xe2\xa8\xa2\xe0\x17\x15VI\x0c{(\x93%C\
+\xe8\xf99\x12\xb4Td\x12\x83\xec\x17\xe3J\x0d\xb1\xc0\
+R\x1b\xae\xa8\xf5\x16s\x09\xa5\x9e\x03\x8e\x9a?\x18\x5c\
+\x0f\x9e\xf6\x91\x8cF2\xf6\xd5\xc6\xab\xabQ\x03\x90\x22\
+\xa6W\xed\xc0\x00#D\x0e\x9f\x7f\x9c\x85\xe7/\x19\xb4\
+5 =\xb3u1\xd0\xae4%\x08\x05\xbc\x10\xb9;\
+\x19cz\xdew\x8d1\xd5\xd4+\xb1\xf3~\x18\x0b\x80\
+T\xf7\x80\x8c(\xa0\xc6\xeba\xe6\x014s\xcfU\xa9\
+\x8f6\x99\x80s\xef\x83\xf2k\x9f(\xcd\xb2\x9f\xac/\
+\xc7\x0e\x00/P\x22\x0a\x86\x8a\x9fy.\xb1\xd2h\xa4\
+\x14\x15\x99&\x8e\x84\x05\xc6YJ\x0e\xca\xcer(\xe3\
+\x07(\xcd+\x00A\x09\x84\xfb\x8d\x03&P\xa4\x19\xf0\
+\xb81\xa6\xcf)\xf3\x7f\x9d1\xa6\xe7C\x81\x16\xe0\x00\
+(\xc2\xc4\x02\x1c\x9f|\xf5\x18\xd3z\xd9W2\x9a\x00\
+w\x0e'\x87\x9a\xa3\xec\xbf\xc7\xee\x14\xd5_&?\x00\
+\x94..\x80\x82j\xdb\x85\x89\x03\xf8p?c\xb4\xe9\
+\x0fo\x9e\xad\x13 g0A\x9f>\x9d\xcb\x94\x84\xd5\
+\xb9\x17\xb8\xf1\xb7R\x92\xe8\x5cb\x1a`\x86\xd0D\xa9\
+L.\xed\x0a@\x02\x15\x7f\xfbB@\xae\xfd\xad\xdas\
+\x94u\xfb\x8c\xff\xca\xee\xca\xc8nm\x97W\x7f\xe4\x8d\
+\xc9\x98*\xe9p\xde1\xdf\x94\x9e\x11\x17\xd4\x86P\xa9\
+ \xed\x9dh\xb2\x94\xff\x08\x18\x90\xf1\xa7\xf5\x10FP\
+e i0\xb0\xd3\xe6\x95_\x0d@\x01\x10\xb0?\xa8\
+\xe5\xee\x17\xfb\xc2\xbd\xa7K\xcc-\xc7\x982\x89\xfc-\
+\x01\xc6}\xd7DD\x01\xc4\xee=\x01\x85n\x22\xc4B\
+\x05R\xec3-\x11\x19L\xfbT\xf7\x04\x01\xbd\xe7E\
+\xf5\x17\x10\xf7Zy\x19w\xef\xd3\xc5\xf9\xac\x9f\x80\xd4\
+\xfa\xba\x7f\xd8\x1b\x816\xa6\x1e\xfb\x12\xbb\xa8\x04\xb12\
+\xce\xd6\x01@*\xb0\x13@\xfa\xce\xff5O\xecP\xef\
+?\xaf\xe4\xd8\xf9\x95\xd0\xec\x9a\x02]L\xd0\xbd\x95\xfb\
+\xbe\xf6\x83\xf5s\xef\xb8\xa7\xac{/i\xf8P\xeb\x8e\
+d\xbd\xf9\x9b\xf6\x91\xc0\x9c\xbd\xe4\xe7\x8b\x9f\x00\xa9\x9f\
+\x1d\xe3\x22D\xd4\xed?\x80\x8b\xf5\xf1\xbe>\x9f\x9f\xed\
+\x0f\xcf\xcb\xce\x89\x1f/N$\x100\xd2\x81\x05\x8c\x18\
+\xe2\x94\xe6\xd1:\x01b\xcc\x9b\xf7\xb7\x7f}\xf7\x1cM\
+<\x100T\xe2\xd0\xbd\xdb\x1c{o\x1f\xb0\x9f\xee[\
+\xeb\xed\xde\xc5l\x93\x88b\x87\x95\x18\xf0\xd7\xc5G\xf6\
+yo\xa7\x0c a\x9f\xf9}\xee\xe5\xdcg\xa7\xaa\xc6\
+\x90\xa37\xa6\xe3\xed\xad\x0d\xc7[&Us*\xd1\xe3\
+\xdf\xff1\x81\xc4\x17M\xfd\xe9\x89tAh\xc7\xf4]\
+!\xb7\xff\xac\x8aLt\xf0\xc3K\xf5\xf5z` d\
+\xff8\x05*\x02Q\xdf-\xc8\xf8\x98\x9f\x986\xf8\xfb\
+\x97\x06`\x9b\xf8\x1f\x87I\x9b\xaa\x91W8g\x9a\x08\
+\x081\xf5\xf7\xb7\x1d\xc7[\xa7\xb6w\xc4\x00\x1f\xb2\x8c\
+\xedb\x94\xb9\x97Y\x83\xd4s|, \xf1\xbfo\x0d\
+\xf5\x94\x9a\xaf\x85\xb7p\x1co\x8e\x89\xcf\x07\x18pa\
+\x00 \x9e\xbdR7\x88{\x1d\xe7d\x05\x0a E6\
+`2a\x87\x1b\x1d>\xf7\xf0\xb9K\x1b\x97%p+\
+\x11\xb8P@\xd4pR}\xaf\xf9\xecb\x13\xd6\xb5\xf7\
+\xcd\xe4\xf8@6\x19j\x142}\xb1}\x99\x1f\x9fG\
+\xc0&\xd3\x83\x22\x9e\x0b\xb0J \x22>#\xa36x\
+&\x83i2\x9a\xda,mm\xfe-\x07\x9c!\xa6\x05\
+\xa0\xc6r\x88x|(\xaa\xd2_\x9cy\x7f\xf6$.\
+\x15\xd1\xc9\xa2\x8cF\x9dy\xff\xbc1\xb6@\xfe\xe4~\
+cL\x22Q\xbf5\xc6\xe4\xc8\xdc>5\x83\x0c\x0c\x84\
+\xf7AiK\xf8w1\xf4)!\xa8\x80E\xcd\xb9\xfd\
+\xf7\xcf\xa9\xad\x8ccV\xff.3\xaef\x16\x02\xfd\xb2\
+\xcc\xf3}\xd2~\xe8\x9c\x5ch2/\x1cZ\x81\xa8\x80\
+\xfd&)\xbdI\x7fr\xe2w\xf6\x0b\xc7g\xf7\xba1\
+\x8e\x9f\xff\x91'\x8f:y\xd4TS\x8b9\xc3Q$\
+\x82$\x03\x96\xcc\xec\xc9\x15\xc6\x984+\xbek\x19\x05\
+x\x94\x08[\x1ca\x86oY\x86\xc3\xd4G\x9e\x98\x9b\
+\x8b\xff\x03\xb9\x10\xcfMi\xcam\x8f\x8e\xfcm'q\
+6\x88-\x00\xc5\xef\xdd=\x81>\x83\x88z\xce\xa0c\
+p\x5c\x9c\x1ao/I\xe2`\xba\x009\xdc\xa9m\x03\
+\x14\x9a\xc7\xa2.+\x85\xc1@\xf0:j\xd9\xd58s\
+(e\xe8Q\xb1]\xa0qP\x0eO\x1dc\xb2\x97\xec\
+`(\xe5\xe5\x18;w\x8d\x11Q\x81\x86\x0b\xd6\xeb\x03\
+\x80\xd3W\xbc(\xda\xd4\xccQ\xb7\x03TV\x80\xa3\x0b\
+Bj\xdc*\xb3\x1cM\x8c\xa2\xbc\xbb\x7f\xb4\x15\x92Q\
+\xcc\x85W\xb5\xf7j\xd98\xc0\xee)%\x0b\x02R\xfd\
+\xc6\xdd7\xc4L\x01\xa02\x802z\x00\x19\xf3\x80j\
++pE\x81g\x8f\xa8\x9dc\xde8\x87\xa99/q\
+Jb\x8e2\xc5j1\xf5\xe7\x06`\xc9\x0c\xe8\x1b\x1e\
+\xb1\xb2R\xd5O\x86t\xc0b\x03\x18\xab\x9a\xef\xec\x0f\
+\x19k\xda\x0b\xa5\x91\x10\xad\x0d\xebu\xf2mcl\x00\
+\xb0\xe7+\x95|\xf3 \xc3E\xbb\x03\xf0\xc9nd\x7f\
+U;C\x22i\xda\xc0*m@\xb5\x8e\x83G\xfc\xa8\
+\xdaE\x861Q5\xe8\xa8\xe5\xceW\x1c&5\xddu\
+\x9fh\xc7GLL\x7fs\xeb\xae\xad\xedm\xc7\x98\xfc\
+\x13\xf7jS{.\xad\x07]R\x88\xb7]c\x8c\x09\
+\x90WZ\x91\xee/\xa7\x95\xc8y\x1e\x01\xb8\xdax\x0c\
+\x88\x88@\x09\xcc\xab\xfb@\xe6\xb5\xf6\x19f \x07\xd5\
+\xb9\xcc\xbc\x17`\xe5\xdf9~\xf6\xa3\xfb4%f\x95\
+q\xb5\xefi\x5cD4\xb7\xba9\xd0\xe6\xe0\xd0\xba\xa7\
+\xdd\xf3\xfc?\xeb\x86\xca\x8er\x0f\xb0\xe0\x90\xdb\xdf2\
+\xa9\x18(\xf1\xab\xf6\x1f\x1ac\xd2\xc8\xf1~J^R\
+\x82U\x00\x13\x8d\xc03H\xe9\x00\x00 \x00IDA\
+T\x1a5\xfb\x98\x92\x02<~I\xd7\x1e\x0a\xf3\xaa\xba\
+\xa7H\xb8\x98?\x01\x1aFA\x98\x19\x05\xb8+A\xb1\
+\x7f\xdc\xef\x01vJT\x8f\xf6\x00\xc7_i\x0b`$\
+\xf6\xa6D\xa0\xf9m\xc4-u\xed\x91@\xc1(\xd1V\
+\x8cz\xb8\xf5\x01\x00\x08\x8ch\x0e(\x01\x10@\x0b\xb0\
+\x04\x12=1\xc7\xee\x01\x8a\xdd\x0b\x02\x8dh4T\xa0\
+\x048\xc7\xb0\xf1{\x12\x0b\x80BL\x82\x94\x0eV\x82\
+P@\x84\xd2\x8f*\x0dhh%\x00\x15 {N\xeb\
+* rO\xa3\xb8\x0bT\x05n\xc4^\xd3F\x19\xc3\
+\xac\x80k\x00\x06`\x09`\x98\x92\x93\x02\xac\x01\xdf\x80\
+\x0b\xeb,\xc0\xed\xb5\xfa42\x94\x04\xf8\xdc\xeey~\
+\x0c\xff\xb9\xb5\xc3.-\x00\x81\xa7s\xee\xf3\x0a\xb4\xbd\
+\x9f\xd7\xf1<Eam\x99|\x00\x80\xdf\xb3?\xec\x1f\
+T}\x81\xbe\xbf\xe3\xdf\xf4\xb6\x80\x80\xa5\xae\x15\xd03\
+\xd2\x00\x00\xfb\xa5\xab\xf0{?_\x80\x07\x9f\x83\xdd\xee\
+m\x02\xbb\xb6\x80\x84g\x07\x22\xcc\x93\x7f\x07\x14\xf0#\
+\xbc\x9e8\xa8\xbf\x8f\xee\x1a\xd6\x93_\x19\xbf\xa8\x98X\
+\xe6\xd3=\x9asS\xc0\xbfsDs\xc7\xfd\x02\x08\x00\
+4_m\x8cI\x8b\xc0}\xd3\x99\x13}=\xf8\xe1\xfc\
+\x03\x8c\x5c\x89\xd6\xd8\x8bS\x850|l\x15#Z\xb6\
+\xdf\xdfO\x0e/j\xd8L\xd1y\xfd\xe4X\x8e\x1a\xc9\
+/\x9d2\xdd\xb3\x03{F\x13\x17<5-\xac\x0d\xe8\
+@\x8c\xed\xf0\xf18\x80\xd4#\xdf=\xd5\xda{\x9d\xf1\
+\xd8s-\xc4\xdc\xee\xe2\xb31\x18\xaf\xdd\x1c\xaa\xaa\xfd\
+\xd5G\x1aR=\xa8\xc8\xa36\xff=\xc7\xf1\xeedz\
+_2e\xb0\x86\x1b0T\x98\xef\xb3R\xe9QF+\
+\x93)\xf3kcr\xcc\x93\xa1.\x8a\xf4\x1d\x83\xf8\xa0\
+\xa6j\xef\x15d\xb5\x1c\x0e\x1b\x14B\xb4\xf57_7\
+\xa2\x05\x96\x89\xe0\xa8%P/1&\xe2\x18\x02D\x01\
+\xb7\xc0\x8bxJ6\x806w\xa7\xd5\xde\xd0\x0c\xb0\xd1\
+\x19\x0a}/\xa3\x1e[\xcf\x03\xd9\xb7_\x1c|\x06\xa3\
+\x1fd\x94p\x19\xb1\xa7\x8c1]\x00\xfa\xf4R]\x07\
+\xc4\x9c\x17\xa47\x14\xbde\xd7||B\xe0\xbbj<\
+\xaa\xda\xc8\xc7\xfe\xc1T\xa3Fd\x91H\x94\xfd\xcdq\
+\xd0u\xc2\x05\x96}\xa4O\xf2\xee\xaf\xc7\x98J;n\
+\x13\xca\xa4\xb6BjP\xd5\x1c\xca\xf8?1\xea\xbfT\
+@{?O\xeb\xc5q\xf2\xdf\xff4\xcf{\x8d1\xb6\
+\xcc\xc1\xe1\xeb\xd7Z\xcf\xa2:\x9e\x1d\x07\x85h\xd9\xef\
+\x8d\xb1\xa9\x81\xabiF\x85\xde\x9d?\xc6\xb6\x9fK\x93\
+ \xb5\x8dE\x01\xa6\xd6\xeey|g\xf8\x93QQ{\
+\x0aQW\x1aS%A\x1c\x15T\xda\xf4\x89\xaf\x8b\x94\
+(\xd2\x7f\x8c1\x19\xc4W%\x83\xf4\x92P}\xbf5\
+\xaa\xd7\xd6\x19\x15\x1b\xc5\xf5~\xbb\xafZ(\xb2\x9f\xca\
+\xb9q\xc1X_\x06\x9f\xe3\xc7\xd1\x80hs\x14\xd9\x19\
+\x175\xc0\x8e\xddR\xc3\x86\xc9\xf1+\xab\xc3p\x9c\xdd\
+\x95\xda\xcfAeO\xf5gFQ\xe7 P[F1\
+\xff\x861\x8e\xdf\xef8\xc6q\xfb|\xfd\x18S`*\
+C\x9b\x12\x9f\xaa\xf1\x86\xf8\xb2\x1b\x02G\x0e\xba\x9a[\
+\x01Z\xd7\x18\x08 \x02`D\xb9\xaeR \x9f#\xb5\
+\xab2w\xfa\x9a\xcb\xa4\x16\x92\xde)\x8d\xec\x02G\x14\
+\x85\x18\x85\xde\xba\xb8\x18}\xce&\xf6VvJ\xa0F\
+\xd4\xd29\xf6\xfe2\xff2\xe6\x80*\xe2w\x02j@\
+\x94\x80]\xa0\x8b)\xe5\xe2'\x92\x86b\xcb\x81q\xd1\
+\x03\x141@d\xbad\x0a\xedC\x8e\xbf\xef\xba\x05\x08\
+\x00\x89\xfe\xe9\xcb\xee\xdc\xa0\xe2\x06\xe0\xdc?~\x8c\xcd\
+aV\xebw\xc6\xa3\xcf\xf8\xd1\x85\xd1\xe3\xdc\xa7+G\
+\xd5\x1cr0Q\xf6\x03L\x17C\x22\xfb\xa6\x986\x09\
+4\xaaF\x1e#-%V\x15\xc0\xa2\xca\xca\xfc\x01b\
+\x89Ej\x83&\xc3\x16M\x93\xc3\x03\xc6\xd8\xee\xad\xea\
+\xca\x13\x8d\xa0\xa2\xa0\xcb\xc4\xde{\x8ce\xdf\xbeb\xd9\
+\xb7\x0f9Z\xdb\x87L\xb5\xf9)u:\x5cz\x8c\xe9\
+\xbeU;o>\xf9\x15\xb4?h\x11\x01\xc6\xb5S\xd5\
+\x1d\x84\x08\x15F\x9f\xfbM\xc9\x1a\x91\xce\x06\x9cTW\
+\x8c\xf8%\xfb\x97\x8d1\x95\xaa}$m~\xed\x0f\xfb\
+E@\xc3\xce\x01\xc0\x94\xe6\xb0O\xecXJ\x84\x04\xa4\
+\xc5|\xd3\xae\xf0~cL\xcf\xa7M\x1f\xbbF{\xc0\
+y\x91\xd8P\xe2\x94\xfb\xa3J\xb3\x00\xad\x00)m*\
+9\xe4\x12\x1a\xce\x09\x00[{?\x7f\xa7\x9d\x18\xbfP\
+i\xe55\xc7\x98\x98OJ\x0b$\x1a\x04\xf6^\x8f6\
+K\xceO\xad\x0b\x80G)\x93s\xa7=(\xff\x85V\
+\xc1\x99c\x1c\xbf\xdfd\x8ci>u\x97\x900Q\x8a\
+E4\x8c?\x11\xc0\xa4\xba\xc9\xb8/dp\x01!2\
+\xe3J\x02\xd8e\x0c$\xc0\xcc\x93\x97\xb11\xb4t\x07\
+\xe8\xdd)\xf8\x11\x18\x0e\x98q\x02C\x01\x98}\xcb\xcf\
+\x044\xa9\x8d\xa6]\xd1\xa9\xdd\xd6\xe7\xd0\xda\xec*U\
+\x15\xf8\xd8\xaf\xfc\xb6\x00\x1a\xe5\xdf\x01r\xf8\x0d\x98\x1d\
+\xec\xa8\xfbB@\x8c\x09\xa4\x14\xce\xfe\xd2VM\xc6\xdc\
+\xeb\xc9\xf8\x02\x0a<\xb7\xfb\xd3\xbd\x84\xe1'\xc0\xf3\xfb\
+\x98#\xf6\x8f\xe7\xb3\xef\x00\x12\xfe\xde\xf3\xca0\x0bD\
+Q\xcd\x01s\xbd\x86\xdc\xdf9\xbf\x98YiOX\xfe\
+\x95\xccv\xefV\xd0\xdb\x9f\xb3\x17\xee\xd1N\xa1?\xf3\
+\xc2\x8cH~\xedi\x99y\x9fK\xa0.\xb04O\xe2\
+\x91\xde}\xc2\xfb\xf8=\xfb\xe6\xe2\x80\x01\x81\xb8y\xf0\
+\xfe\xe2\x04\xaf\xd7\xbb\x1a\xb0\xdf>\x87R\x08v\x06@\
+\xd3\x99\x0e\xfcV\xf1\x8cs\xd0\xbb\x16\xd8\xdf\xbe\xfb\xfb\
+\xce\x00u\xae\xed?\xf7\x82\xcf'\x1e\xf63&\xb3\xd2\
+,\x00\xa4\x84\x97v\x9cJ\xb0\x12wVb\x14\xb0\x87\
+\xf1b]:P\xe39\x94NGC\xac\xe6'\xe7\xe0\
+T]\xb4\xc4\xff>\xb0\xe4\xd46\x8a\xca\x9b\x97\x06`\
+[\x06\xf8S\x8bK\xbd\x8at\xfd_\xc9,~\xc1d\
+\x88\xf6\x8b^\xfa\xb6A\xc6\xf4\xed'Cb\xc3\x9e\xb9\
+\x90\x1c\xb7\x9f\xc7\xb6\xb8\xe1t\x10\x94\x10p\xf4P=\
+\x00\x02W[\xaa\xd17\xf1>\x1b\xa6\x19\xb23~r\
+\x19\x9b\x08\x0aJ3\xb5q\x8e\xb3\xf6k\x03\x1f\xb9\xe5\
+D\xc1\xfb\xdeel\xb5o\xc9\xc4V\xad\x19\xc4\x9a\xd8\
+\xcb9\xa9e\x95\xe9\xbdG\x1c\x0e\x8e\xa4\x8c\x08\xaa)\
+\x87\x94A\xebm.\xcc\x8f\x8b\xff\xff\x10v\xe7\xf1\xfb\
+\xedS\xdd\xf8\xcf\xbe\xce\xd7p\xe2\x84c\xaa\xcc2\xcf\
+d(3eH\x08?Cq'\xb7\xe8\xa4\xe9\x8e\x06\
+C\x85R\x87FE\xe6\x84\xcc\xa1\x92\xc8\x98\x88t\x17\
+R\x99B\xc2\x91\x84c\x8a\xd31|\xaf\xeb\xdek\xef\
+\xf5\x5c\xfb}\xd6\xf7|\x7f}\xd6\x1f\xd7\xe33]\xd7\
+\xde\xef\xfd~\xaf\xf1\xb5^\xab#\x05\x04\x96X\x9c\xad\
+;\x92:\x10\xb4\x07\x86\x0c\x19\xfa>\xdf\xb3\xf7\xdc\xd8\
+P\x0e\xb2W\x0e\x93\x0cm\x06\x1a\xc55\xe0\x80\xf8\xbb\
+\xdc\x88\x05!\x15\xe0R\xf46h\x1a\xdaR\xe0\xa0v\
+\xc6\xa4\xa9\xac\x806gF}\x0e\x8f\x96\x1eK$s\
+\xb5\xbe\x02\xd6\xdc\xa7\x0b\x84\xf7\xbe\x1bds\xe9\xb5\x7f\
+\xc0V\x11\x5c*rO\xd9\x14\xf3\xd2\x0b\xf8\x87\xc3\xfe\
+f\x08\x90\xd7q\x08\x9e\x97\xd0\xb0\xcb\xe6\x98\x9c$\xd3\
++6c\x90\xd6$E\xab\x84\x92\xeb\x14xJ\xa4P\
+\xe0\x14\x0c(\xfdm\xd2\xa1M\xc8\x9e\xe9\x05\x87o\x0a\
+\x19X\xb0\x7fr\xad\xc8\xedn\x1f\xb2\xad\xd7\xee\xc1!\
+\xf3\xeb\xd5B\x86\x80_\xef=C\x9e\xec\xd6\x05\xa9~\
+CB\xa8;TL\x00\x9f\x90w=\xbcE\xeae?\
+\xc9\xac\x0b\xe4)&\x95\x0b\x8a\xff\xd3\xb9\xff\x1f\x9a\x01\
+\x94\x9e\xde'$\x9b\xfb\xdd\xd6\x00\xf4\xf0+\xe9H\x83\
+\xc0\xe7\x9c\xf0B\xe2p\x90\x90U\xde<I\xc9\xbe\xe1\
+\xec,\xad\x87O\xac\x15\xdc\xe9jY\xb1a\x00;D\
+\x8cC@\x9f\x80(\xda\x8fo\xc8\x8a\xd8\xb3\xd2\x01\x82\
+\x14zh&\x00ej\xb5\xa8 \xc9\xd2\x13\x0a\x81\x00\
+1#P@\xc6xf\xc8@*j\xff I\xe4\xb0\
+q\x80[\x86<\x86\x80.c@\x9dw\x95y\x88.\
+\x06\xd9\x18/\x09P\xfbO\xa2L\x82\x83\x81\xc9\xfd\xbc\
+\xbfa\xc8\xf0\x1c\xe9/\x106\xd7\xc3`A\xa2\xa8\x84\
+\xddi\x1d\xcfYz\x89\xa3\xab2\x9b\x99|\x99\xf0J\
+p\x08LT\x94\xe8E\xfbSEI%\xfd~YQ\
+\xcd\xd6\x82\x1a\xb7\x86\x0b\xe0\x02!\x83\x1eJ\x07\xa1Z\
+\xb9\x04\x8e\xf6\x87@M\x82E\x8b\x0d(\xa4\xd6\xad\x7f\
+\x0a\x19zO\x05\x9a\x198\xcd\xfbo\x96A\xbfj\xb1\
+J\x92@\xfb\xbcz\xce\xb3G\x19\xa9\xdd\xe1\xda!\xc3\
+zC\xec<!dp8\x12\xc14\xbd)dp\x80\
+\xecGz%I+\xabW\x10B\xe5\xb7C\xb6\x9f\x9b\
+\x22\xb0{g\xc8\xc0\x8db\xdc\x5c\xb2\xf6\xef\xdf\x192\
+\x8c\x1b\xc5\x9d\x80<\xadq=TK^B\xe8k\xdd\
+\x93L\xae\x02\x5c\xa4\x85\xaf\x9d\xf5\xf0k\x97\xa9.K\
+\x22\x7f\xd6\x93\xb3lz\xd18\xbcz\x1e\xc8\x1b\xb7\x84\
+\xf7\xea\x87\x04\x9ep\x1c\x13z\xc5\x90\xc1\xbe\x19\x1f\x87\
+3 \xc9<\xab\xa5)\xed\xb3V\xa2J@\xe4\xd8?\
+\x88\xa9\xe2d\xc8\x02\xc1R\x80\x08=\xf4\xf9\x90\xa12\
+\xcf\xbe\x80d\xd3\xef\xfc5\x09b\x08\x15\x90i\x89\xa9\
+g'\xc2\xed\x95\xb3\xf5y\xe50\xbeM@\xe5\xdck\
+\xd5\xa1\xe7\xe8\xed\xde\x02\x80\xf3\x04\xc7\x07\xe4\x87\xfd\x9a\
+-\x19\x95\xf8\xe6h_8\xed\xca.\x0b\x13\xfc\x84\xbf\
+\xca\xd6\x18\x85\x86\xe4\x861.pzo\xc8P\xb1B\
+\x9a\xf5\xac\x90\xc1\x0f\xe8\xe3 \xb5\x0aH\xf4\x0b\xb8q\
+\x84\xd0_\xf4g\xe0W\xaf\x9f\x88\xbb!\x81r\x0c\xc9\
+\x9e\x00FE\x18y\x1e\x07\x9e\xc3\xce\xc1\xd6\xdad\xba\
+CL\xb5\xba\xdf\xf0\xbe\xec\xbcu\xb2\xbeZr<\x07\
+\xd7\x03\xb9\xe1y\xf0\xcf$z{\x8ft\x87\xbaC\xa8\
+@.\xf5\xb9\xea\xfcO\xd7\xafP$\x80:^\x02\x80\
+\xbd\x85p\x10\xb0@l\xd0\x8f\x10+\xa6\x18h\x89R\
+\x91WY\x17`\xb3\xb7Zj\x90\x14\x0b\xa8\xac_C\
+\x08\x14d\x9f\x9fO\xcfy~*\xaf\xad\x05\xa8\x12\xdb\
+Z\x01!:M\xb3\xd2\xc2\xa2P\xc7\x9e\xb9\x0e\x09U\
+\x01\xbf@\xd2\xfa\x0b\x14;B\xa0%\x02\x8a\x94\xae\x7f\
+\x8e\x80\x9e}\xf3\xda\xfd\x16\x88SH\xc51\x0e\x1b[\
+\xb0\xbd\xf2s\xbc\xbf\xe7\xdc9\x15\xac\xdf\xff\x94\x00\xf0\
+9\x9d\xf3\xaa\xb3\xd6\xb7\x9f\xd7\xf5:\x0f\x9d\x0b\xc0\xb9\
+\x95\xe8\xc2\x19\xe2\xe7\xee\xc3\xf3\x15G\xf2[%2\x9c\
+\x0b\xeb\xe6z\xfc\xdcs\x10O\xf5\xde~\xe7\xa4\x8f\xdb\
+\xe3\x0f\xf8\xf2\xfc\xe9\x0f\xf1\x9f\xf3\xaa\x00\x92d\x9f\x85\
+\x80t\xee$\x0c$\xb8r\x1d*1\xed\xdcX\x7f\xd7\
+\xd9\x13&\x90Z\xfc8$\xbf\xd9\x92td!i\xf8\
+\xdc\x10\xa8whFp\x86>i\x80\xea\xe7\x01\xc6n\
+_\x15V\x8e\xd9:\x8ai}\xb0_\x19 %\x1c\xb9\
+`/\xbf\xe46]\xa0\x02\x02\x1bME,*\xc9\xef\
+\x1f\x16Z/e\xb8\x8d7\xcc@\xf2\x8a\xc3\xc6\xda-\
+&f}\x9f\xb1GB\x02A\x851[\x04\x16\xb6\xe2\
+\x9b\x0f\x06\x89\xc2I\x07xw\xe9\x90\x81\xb5\xdb\x03t\
+\xd0d\xe6\x90\x1d]/d\xa8\xe0K \xa4\x03S\xa4\
+Z\x1c\xd6]\xeb\xf1\xb4~z_\x19r\x1b\x06I\x9f\
+\x16\x82\x9ei\xf2\xe0[\xc6\xaf2\xe1\xc6\xf00@\x1b\
+I\xdc\xfa\xf7\x1d\x22d]\xfb\xc1\xf5<U\x9cAW\
+\x1c\x5c\x8e\x89\xf7\xd3\x9bN1\xf6\xf9\xa3\x0e4\xc82\
+E\xc2\xf0\xe9\xd14\x17<\xa1\x9e\xfbw\x87,\x15\xf7\
+\xb5\xf7\x93\xa1\xd7\x1b\x0f\x8a\xaa2h^\xad\xc0#\xc8\
+\xabn0\x90\xee\x8d\xbdK\x9f\x1b2za^\xde>\
+T\xaa\xf4L~o\xc8p\xfd\xbf\x90\x01\x9e/\x8a[\
+\x06\xfcV\xb9\x1fp6x~\x8d<\xb1\x02\x14\xd0h\
+\xe4W7_!t\xfb)d\x1b\x9fSl\xe5\x09M\
+>\xf1\xa6'\xde\xe4\xc4\x9b\xcc\xdb\xeb\xf1\xbb\xdf\xd9\xcd\
+\xfbvw\x8b\x90\xf9\xf7\xff\x1d2\xf4d\xca\xbc\xaa\xe0\
+H0\x19\xd3iL\xa1\x1eb\x8e\xd8\x1f$\xbb?r\
+\x97$\xf9\x011R\xc1\xdb\xbd#d~\x9fK\x85\x0c\
+dB\xc6=%\x17C\x9dK\xfb\x12\xd4\xd4\xf5}c\
+\x9b?\xfd\xf6\xcc\xec\xaaH\xaaP#_bh%\xe6\
+\xce\xca\xc4\xa3sD\xf1\x83\xb4\xeb\xe5K\xce\x80J\x08\
+H\xc8px\xe8%\x06\xfa\xd5\xe9`H\x8c\x22\x81\xfa\
+\xe9u\xeeyA4\xb1c\xcbH\xfb|\x09<=\x81\
+\x02\x0b\x1c\x10GB6\xe8\xf6t\xf9\x90\xe190x\
+\xce?\x83N\xaf \x03\xcc@\xb1z\xd8%j\x194\
+\xe44\x12z\x12@\xbd\x02\xe0\xff\xd2\xe0\xed_\x1a2\
+\xbf\xff\xf7\x87\xcc\x1f\xfb\xb7![EO\x02l\xfah\
+\xc8\xc0\xa9b\xdc\xa1\x8a\xa3\xfd\xc7qQ\xe9\xa3?\xf4\
+p\x83\xcc\xab\x94i\x810\xde\xca\xbe\x91\xc8r~\xfd\
+\xff\x833\xe1\xf2\x91\xd4\xf3\xa9\x97\x0f\xb7\x0a\xd9 \xaa\
+\x87\xf3\x84\x0c,\xdc\x02G\xe4`\xec\x11}\xe5\xf72\
+\xf4\x19\x80V\xcb\x81\xdei\xffG\xdfk9Ihv\
+\x9d7\x0e\x86\xfd\x99\xc8\x10\xf6\x85\xbeb\xb7\xe8\xa5\xb2\
+7\xb8($*\x93\xec\xa7\x10\x09\xa0\xd5\xc1u\xf2\xe0\
+\x81sC`\x0a\xe2\xddI\x84$\xf0\xb5*\xbc4d\
+\x98\xef.\x81#\x80\xc5\xad\x90\x1c\x14\xa5/\x9cw\xbd\
+\xf5*\xa0Z\x12\xae\x19\xb2!_\x90\xac\x16\x04W \
+\x9d\x0eZ\xb1\xa8s\xa8\xb3\xe5\xa9*\x80\x12\xc1\xf7\x9d\
+\xc3\xdc\xfb\x0eS\x15T\xd0\x9dC\xf6\x0b\xb4\x5ce\x18\
+\xe4?\x13D\xf4\x8e),e\x07\xb5\xae\xe49\xde\xff\
+i\xc8\xb0\x1e*\x9f\x99\xf8\xae\x9e\xf0\xb4;Z\x15 \
+\xe1\xca\xcf\xe0\xe8z\xaeo\xc8\xc4\xc0)\xe9/8\xf7\
+\x02#\x01\x07\xce\x90\xb7'{\xfa\xdf\xa7\xbf\xc21F\
+\x86\xa7U\x93\xde\xf8\xfaB\xa3\xba\x06\xb4\xd7\xcd\x96\xb8\
+\xabg\x02\xff\x9b\x87\x84\x11$\x01\xff\xe0\x01\x8bl\xd0\
+i\xd7/\x91@\x1f#\x7f\x15P\xb9\xfe\x0c\xa4\x8b\x94\
+0\xd7Q\xe0\x5c\x1c0\x02`\x10sH!\x01$H\
+\xb9\xe7\xaa\xd5\x89\xbdT\x11GJ\xaa\x95M\xa22\x11\
+'\xcbT\xa7wm\xef_\xc8\x00\xc8J\xfb\x8a^\xec\
+\xa4j\x12\xaa\x12\xbb\xd9\xa2S\xad@\xec\x97VG\xc8\
+)\x81\x98s\xa1u\x82\x9d\xe3g\xf6\xca\xa4\xf3\xc9\x1f\
+\xa3g\xd8\x17\xe4\x99\xcew\x0f\x0c{\x02\x80\xfde'\
+\x14\xa2\xfc\xdc\xff[\xb7\x8e\x04\xed\xfe\xd1Xhy\xea\
+\xb0\x1f\xf4\xd6\x0b\xa4!\xbe\x8c\xfdt.\xd9;\x811\
+{\x0a\xf9iJ\x80\x84\x80\x8a;\xbb\xe6\xb9X\x17\xd7\
+\xafe\xc14\x15\x09\xf5\x8f\x87\x0c\xe7E@'AA\
+\x8fA\xd2HP8\x7f\x0d\x09P~\x89W=\xe48\
+,\xbc\xafs\xe1\xff!7\xd8\x8f\x0e\xd9\xe7\xf7J\xec\
+\xf8;\xf7\xdd\x136\xbd\x80H\xcf\x0bd\xddg\xff\x9c\
+\xder\xe1U\xdc!n\xf0%\xae\xf0\xf9\x0d\x09\x5cH\
+)\x7f\xe7~\xdb\xb8\xdfJPI\xd4\xd0\x17\xf4\xa2\xfd\
+\xd7+\xf4\xf6\xb1\xc0\xbe'6\x5c\x97}\xa10\xe4\xb9\
+\xf3\x1f\xdc\xb7\xfd\xef\xb5\x7fNG\x80x\x15\x0f\xb1'\
+\xec\x0b;\x9a\x89u\xadG\x90\x01\x85\x00\x91X\xb0.\
+\xf4\x02}\xddI\x18}a\xff\x7fj\xc8\xc6\xedU-\
+\x7f\x19\x8f\x1d\xa9\x03}\x81e\x90\xdc\xfa\xa0\xce\x1c\x1c\
+ \x90J\x068Y\x95\x175y\xcd\xe1 \x87y\xba\
+\xf0\xb0!:\x19\x03\x16R\xbd\x19a\x9e\xbe!Y\xd8\
+/4\xcc{T\xa1\xc5\xee\xa9\xa7\xdfuf\xafv\xf5\
+Z\xa9(\xa9\x80\x9c\xbc\xd0\x97\x9d=\xc0\xdd\x0f\x81_\
+@\xf0\x7f`\xab\x94\x14\xbb/.\x83P\x9f'\x0f\x0b\
+\x09\xca\xc4\xa1S\xb9\xb0.XY\xfb\x9c\xc6\x0ey\xb1\
+AU\xaeT\x82\x12\xc2V\x0a\x88c)\x91\xe0As\
+\xd49:H\x85\x04F\x0c\x91\x0d\xe2\xba\xb1\x1f\xeb\x81\
+\xb4.=`\xa0 zF\xc9\xab\xf5\xb7!\xfd\x9d\xf7\
+Q\xa9\xa0`|\xf9\x7f\x81O\xfb\xfcr|\xb3\xf7j\
+zI\xc8\xb2_V\x07\xe6\x09\x09ET\x09\xd73y\
+\x8f\x84z\xa6\xa3X_\x14:Vr$M\xa0\x7f\x14\
+@\xa4y\xee\x96\x8a\xe4|\xc9\xba~\xdd\xa1\xa2\x10\xf9\
+\xf6?\xdd\xc8\x04kl\xd3\x7f&\xd4\xe8\x19\xd9\xfb\x9e\
+\x01\xe6\xe11!\x03\x82\x01\x19\x911\x8f\xff\x1a\xb2|\
+\xde\xaa\xd08\xa0\x12\x1d\x09I\xe4\xb8[\x17\x09\x87\xfd\
+]\xf6w\xdd\xdfu\x98\xaf\x9e\xbd\xf0*\x8cH\x09\x97\
+\xbb\x0a\x08\xedi+\x89`}.v[\x06\xd0:\xd8\
+\x9f\xf6\x01C sI\xb1\x1dIC\xce\xd1\xd4\x13i\
+\xdc\x1f\x87P\x22\x81\xe3e\x9f\x0a(9N*\xe9I\
+FU\x09\x1e\xfbXe\xfc\xbf\xcbp\xaf\xd7\xa7\x92\xff\
+\xf96\xdf\x97\xa1\xf6J\x01\xf7V\x94\x7fl={9\
+\xbe\x12\xe9\xe1\xe1\x95\xc9Ap\xc1\xbc\x8fw\xa6!\xb5\
+\x1e\xafJ=(q\xc3\xa1\xd4KN\x0fq\x10Lw\
+\xd0k\xe8\xfc\x0b\xc4\xbe|8\xf3p\xe6\x02%]\x03\
+g\xdc\x1e\x9e\x87u\xd2\xfb\x9cz\xa3\xc6\x19\x8d\x9c(\
+#\xf9\x8bu\x07\xb17\xad@\xe6\x99\x83\xc00\xa9\x1c\
+\xe7\x18\xc1j\x19\xc0A\xa2\xd7\xf7K!\xf3~|[\
+\xc8\x86,\xaai\x04\xc8`%\xbe@Q\xe9\x07zc\
+\xe3\xaeX8\x04\xea~\x18f\x0e\xa5\xc4\xa8}\x0b\x12\
+\xae\xd7\xdf<{\x09\x00\x89\x1e\x0e\xa2\xd64\xf6E\x85\
+He)\xa1\xe4\x85\xd4\xe1\x90\xea\x85\xd5\x92\xe1|\xa7\
+\x9e\xac\x16\x0e\xfa\xb7A\xb1\xab\xd2m\x9fi\x0d\xcas\
+^\x1c2H\x8a@\xe4\xd9\xd3\x0e\xb9\x96 \xf2<\x93\
+]\xbe\x12\x85\xf4\xa8\x00\xc9\xfe\xe4@\x22\xaf\xca\x80C\
+/\xfa\xfe\xac\x90\xa1\x82\xa9\x92\xaa\xb2\xc9\x8e@ny\
+\x9f;\x84l\xff/\x11\xb0;#\xe4X\xc4\xd4\x82\x98\
+>\x0c\x0e0\xbbmL\xdcWC\x86\x04P\x8e\xc3;\
+\x9c\x142\x04\x9e \xf5\xfe^o\xa3B\x84\xf1\xc4\x12\
+\x1b\xd9;yx\xd8|\x1d\x0f\x1b\xec\x8b\x04\xad\xb1{\
+\xec\x86\xe7h\x7f\x08XTR\x04\xcc\x99\x18\xd5\xf2w\
+\xb8\xf2\xe1*\x87\xab\x0cS\x19Tt%\x18\xb1\xa3\xdb\
+\xdfZ$$\xc0Tz\xe8_\x01\x19\xfdL\x1f\x0a\xa8\
+\xe9I\xf6\xd6\xff\x09@\x04^\xbf\x9fs\xdb%\x80\xec\
+G\x88G~K\x87\x0c\xc7\xdd\x7fxx\xde\xc8\xed|\
+\xee\xcdsl\xf4\xc9\xe9/I\xbc\x09\xac\xdb\x18\xd6:\
+O\xfc \xe7\xd39O\xa4f!. 0\x9e\xb4\xc8\
+F:\xa8\xb0\x01\x09\x95\xef[\xd0{-w\xf6\xbf^\
+\xffO\xa5\xe3\x9e\xfa\xb3\x12}\x02\x88\xb4K\xd3\xedB\
+\x8e-`\xd4\x182\xe7\x94\xe3\xefy\xf0\x8f\xf8\x1d\xa0\
+\xea\x19\xd0A\x9e\x142\xc1\xfak)H\x7f\xa1\x90\x83\
+*\xe7\x02\x01\xfe\x0fd\x9b\xc4\xba9\xe8\x9ec\xae\x1f\
+v\xf1\xf2\xb7%F\x04\x98\xae\xd7\x97}\xd1\x03MH\
+,\x10k\xfe\x9f\xdf\xf7\x9em\x81Y\x83\x9a\xd7\xfe\xf8\
+\xe9E\xb6\x84\x8ds\xe6\xfd\x9d\x0f\x81\xbcu\x96\x08h\
+\x81j\x15\x96\xb4\xcc\xb07\x02&\xa4\xccX\xfa\xd9\x07\
+~\xb2\xcf\x91``?=w\xfb\x95\xdf\x0d\xa2\x0fA\
+'\x0e`O\x8fG\xde'\xb1`_\xf0'|~G\
+\x08\xb8_\x85I\xfb\x19\xbb<\x12@\xcf\xc1\xe7\xb7\xeb\
+,=\xe2\x5c{.}*P\x1b\x8fwL\xe0\xec9\
+j\x89\x0dN\xad/\x9cC\x8bA\x1f?\xde\xa7\x0e\xb4\
+\xc4T]\xbf\xf3f_\xba\x1e\xd7+\xc0\xf5}o\x05\
+\xf0{\xd7m\xfdz\x22\xa0\xb5:\x14BL\xa0\xefy\
+9\x07\x12\x1d\xfd}}o\xbd\xd8;\x89^\xe7\x10w\
+\x91\x847\x7f\xcd9\xf4\xff\xfdyt\xae\x05\xd7'\xae\
+\xf4\xbd\xbf\x93\x98p\xbd\xbe\xb2\x00Q\xdc^\xc9\xa1\xc6\
+n\x1f9\xdb\xbc\xcc/\x0f\x99\xc9\xc8X>n`m\
+O\xc7v\xba\xc2,W\x1cz\xd7C\x8d]uP\xf0\
+Z\x09\xe21\x1d\x19\xb8\x00<\xa0\xd8\x06#\xd9DT\
+\xd4><d`\xf4\xbe\x06\xa482\xa6\xcb\xd7\xd0\xb3\
+\x05Z\x15\x19\xbf\xb7\x0f\xbd\x8aq]W\x18\x02\xe7$\
+\xe1\x99\xce\x9a\xe5+\x03)SdB\xffy\x187\xa8\
+\x82\x17\xf5\x93\xef\xcc\x0d\xff\xf9\x0d\x92\xb68\xb8\x0f\xd8\
+~_s\x8f\xf5*goe\xf5\xbe_>{\x08s\
+\xbetA\x83@8\xf3\x01\x14) \xb2\x86< \xd3\
+\x9f\xe7\xd8\x14\xcfE@E\xf1Q\x90\x14\x19\x07\xd9\x86\
+\x90q\x92\x98\xa0\x089\xfe\x1d\x222\x15\x1d\xe3\xd9\xbf\
+\xf7\xda\x13\x04\x0e\x08\xc5 \x91!\xe0\xf3w\xfe\xcfA\
+\xed\x95$\x06\x01\x1b<\xc8*E~\xd24KTD\
+\x92\xcb\xe1\xeek\x8f\xe8\xfc\xb7K _=\xc3\x1c|\
+\x07c\xdc'/\x19z\xd3(F\xad+*\xba\x0c2\
+\x84\x87\x16\x98\x08t\xbe<\x8c\x05\xe3\xa8\x1aC\xa8w\
+\xfd\xc6\xd9k\x7f\xb1$\x8bb\xe0\xf4\x88\xa9PP\x1c\
+\xef\xca\xca\x1eh\x99\x03l.|Vj\x0f\xb7^+\
+\x93e\x80s|\x0f\xc5X\x09\x80\xf3\xad\x86>N\xe5\
+\x12\x80%d9\x80\xf3\x01\x9d\xc7\xa1P\x15\x0d\x81\xa1\
+\xf5\xf7\x1c)F\x01\x8f\xb9\xda\x1c\x7f\x86\xdez'\xf2\
+\xc0y\xad\xf1\x8e?\xb8\x224T\xe0\x0ew\x0a\xd9\x12\
+\x1eH\xb5\xf6\xcf\xdc\xff\xfe>2\x9e\x7f:\xbd|z\
+\xf9\x80d0G\x5c\x8b\xcc\x09\x05\x01;\xbb\xe2\xfb\x97\
+\x0cl\xce\x97\x81;2S\xa4i\x14rft+@\
+\x82@9\xe4~\xe7\xf8~\xba\xc6\xd4\xac\xef{\xc9l\
+Q\xe08Q\xb0 \xfe\xc6\xae!\xbf3\xc6\x0eI\x17\
+d\x91\x8a\x0c\x83\xef\xfbG\xe5\x9c\xe4\x1c\x87\xb5{_\
+\xc8\x96\xb1-\xce\x04\x89W\xd7\xadR\x06\x22\xde!\x9c\
+\x0c\x88\xca\xb4\x8a\x13\xc7\x04\xf42\x912u\xdd8N\
+T,\xb1\xed\x83\x5c_e\x0dp*@\xcb\xca\xd9\xee\
++!\xf3\xfb|2d\x80jg\xa0^\xeb\xe7\xbc!\
+\xcb\xd2B\xa5\xd7U\x8f.\xc7\x8cc-\x80\xc0M`\
+\xec\x9cD\x0a\x07\xcc9\x12\x80[\x1f\xfa\xc7\xf9KG\
+\xbf\x12}\x12\x15\xf6K\xb2\xc0\x17\xf4_e\x8aC\x95\
+\x86\xbc\x1cq\xbd\xfa\xc8+\x91w\x19;\xe5\xfc\xe9\xed\
+\xcbDQqdh\x81\x10\xa8s\xa0\xcd\x9f\x07\xad\x96\
+\xe0p\xbf\xf4>RG\x01-\x0e\x0b\x81kB\xb2%\
+>T\x9c\xaaUGb\x04T\xb9!s P\xaar\
+!!\x95\x8e\xec\xfe\x0a!C\xcb\xe032\xe04\x07\
+\xfc\x82!\x1bI\xe0\xfe\xa7C\x86\xd6\x86\xe4\x9e\xa8\xca\
+\x8b\xc09\xc9\xdfJ\xef8\xf7\xa9'\x8a[\x81\xdf\x80\
+\xed^BN\xc0\x94\x01\x1b\xc7\xacZ\x1c2AZP\
+\xfc\xd4;\xc5\x81\x90\x09\xcb\xc3\xf25|\x9e\x96\x04\xfb\
+I\xcb\x80\xf5\x055\xb7?!\x12\xdc\x8f1\xbd \xd2\
+\xf4\xb1\x96=\x011{e\xdd9\x8e\x02Z\xe7\x8b]\
+o\xbd\xc0\x95\xf0\xd3\x1a\x85\xab\xc6u\x0b|\xed7\x8e\
+#rG\xcf\x9d\xff\xe1\x1c\xd9\x87\x1cW\xfbP\xa2@\
+\xeb\x02\xfb\xc7\x8f\x90\x90\xe8\x90Z\x09[H\xb3L\x04\
+H\x08\xd6\xfe\xe7\x90C\xd4H\xa8\x81\xf2+\xd0\x08\x00\
+\x1b9\xa7\x80\x1b\xb9t%8\xb3\xf2\xca.A4U\
+e798\x0e?\x152\x04Z*\xb6\x12\x19\xfc\x1a\
+\xd7\xd9\xc7Sf\xa2\xbb\xc8\x5c\x91|A\x86\x0ahq\
+/\xb0\x13\xa6\xa8H\xec\xe0\x9c\xc1\x8d\xa45\xa0Ux\
+K\xff%\xf9\xe41\x95s\x81\xbc\xe7# \x02\xc5\x16\
+8I,4\xee\x99\xb2\x9b\xecNG\x0c\xf4W\xef\x8f\
+\xebA\xab\x88\xff\x93\x00\xe3\x87\xb8\xbe>\xd6\xcd\xab\x00\
+\x91^\xe8\x89e\x5c-\xfe\x9f\xfdu\xbd\x02{d\x80\
+\x120\xe9\xcf\xd7\xbe\xa2\x97%\xf4\xbd*hh\xa9\xb1\
+\xbe\xf6\x9b}\xcd\xbeIp\xf8;\xefk=\xad\xb7s\
+\xd5\xc6\xff\x15R\xa0\xb5\x22V\x00\xdd\xd8\xe9\xcb^\xf5\
+9\xf5\x9d\x1d\xde\xb9\xf4\x9c|\x1e\x04\x95\xf5\x12\xc0w\
+h\xba\xf5\xef\xa4\xc8\xbe\xb7\x7f\xd8\xe7\x9e`\x11Ot\
+\x88\xbf}\xe0\xf3z\x02\xc3\xdf\xd1K\xce\x9f\xf8\xc8\xfe\
+\xb0O\xdd\x97\xe7`\xdd\xacS\xab\x9c\xd7u\xd1\x97\xd6\
+\xc7>\xf2s\xe7\x16\xf7\x0d\xb2?H\x1d\x08E~\x8c\
+\xc2OrxhE4\xde\x9a_Q\x856\xfb\x0cB\
+\x12\x19\xa8\x82\x85\xeb\xd2\xba\x90H\x90)\xe3'\xebj\
+j\x0d\xff\x89\xfd?\xe2\x0d\x96\x1e\xb2w\xa5\xa2\xbc\xf2\
+0\xfe,\xf2\xafO\xce\x9e\x98oN\x07\xf8&\x83\x83\
+\x16\xe1\xc1\xe5\x07\xc8\xebm\x97\x01o[ \xda\xe7\xbc\
+\xcbh\xc4\xf6}\xd7`P\xc2\x9d|\xf80\x9f4\xe6\
+i\x9f\x9cck~\xb4U\xf6\xfe\xfd\x1cH#\x9e\xb7\
+tc\xd7\x98\x1b\x8e\xef\xf4/\xb3|`\x0b\xdc\x16\xe8\
+\xe2K\x06\x85\x89\x0b :e\xa3\x87;\xeaq\xff\xbd\
+\x91\xbb0@\xc5R\xcb\x11@^\x03\x9a\xf5\xb2\x90\xc1\
+`\xea\x91~{\x22\x19l\xdc\xbc\xee\xaax\xda\xf8\xd9\
+c{\xb8MV\x88\x8cW1.\x89!w\xc0:\x84\
+\xdfA\xe40\xb9\x0e\xeb\xdb\x03\xfdN\xfa\xe7\xab\x1fd\
+\xeb\xd4[5\x1c\xd0>\x86\xe6x\x9f\xd3\xd9H\xfd\xbf\
+\x03j_\x80\xfc\x9f?\x0d\xd9S\xf2> #~x\
+e\x8f\x9f\xfefz\xeb\xf4\xd6\xa1g\x8e\x81\x92Y\x0f\
+*\xbc\xeb\x0c$Zzn\xb5~ 7\x0c\xb5qV\
+V.@\x92/\x9e\x8a\xf3\xf77h\xec\xe2\xa8\xdf1\
+I\xb3~y\xbb\x8d\x82\x18\xffa\xb6\x1e\xbc7\x1d\x03\
+\x8e(H?\xc3g\xeeyB\x7f\x0a\x1a\x98\xbd\xf8*\
+\x8d5\xee\xab\xcd\x7f\xae\x96\x14\x86\xe4\xf69\x8d\xe0\x9f\
+C\x06G\x0a\xabvB\x92\xa7G\x86\x0c\x8e`\xef\x81\
+\x83H\xd0\x0b\x07\x81\x03\xb2)S-\x01\x80e;!\
+\xb0\x87\xef\xceq\x8a\xaf;\xe1\xf5'\xbc~\x0b\xac\xa6\
+'\x86\x0c\xac\xd8\x09\x09\x06\xe1\xe6\x08\x179\xa6J^\
+B\xd1+!\x80}\xf9#E\x96\xb3\xde?\x03\xa0\xa2\
+\xd8{\x167\x83\xbb\x06H\xb7\xcc\xc4e\xaf\xf00\xa8\
+\x99\xa0\xa9\x8a\xa0\xded\x0e\xbd^\xc3k\xe7\x1cs\xe7\
+\x07\xc9\xd8\xbb\xf2}\xfc\x9f\x002[\x06\xaa\x15\x02\xd7\
+\xc4\xf5\xd7i\x03\xb3\xba^\xc9\xc58\xf6\xae\x8b\xa1e\
+\xd0\x9cg\x09W\x01\xb3sI\xdfJ\xcc\xa9\xb4\x08\x94\
+8\x98\x0c\x99D\x10\xe8%R\xb8\xfc\x9c\xfd#B\x86\
+1}\x99\xa0:\xf1Y!C \xafB\xc9\x11\xd7s\
+f>\xb7\xa9\x0a\x02H=\xc9\x12\xb6i \xcb\x8e8\
+\xc7\x12P*\xff\x1c\xb5\xfb\xaf\xd3Uj\x1ci\xea\x11\
+\xd3,\xca\xf1h\x0eRA5%X@|!vT\
+f\xf5t\xe7\xb8\xb2Z\x7f$q\xd9\xb3\xa7\x12^\x88\
+9\x15s\x8e\x97\xf7\x17`\xe7\x98\xb3\xaaDJd\xe2\
+\xc8\xc8\xfb^\x10I\xd7\x19\x02A\x15\xc1\xd4\x0f\xc55\
+b\xba\x83q\x93\x1c\x17z\x5c\x0b\x9a\xf5G\xf6g\xdd\
+|n\x22\xdb\x90\xc2U\xcbHr\xe0\x98V\xa2\x02\x0e\
+\xa2[$r*\xb7\x129\x1c\x16-S\x90\x16\xa0\xf2\
+ \xfc\xf9\xf7\xd5\xba\xe5>\xb4\xca\xb1\xef\xf63\x07\xf7\
+\x96\xcbI\xde\xc8mU\x889\x86\xce\x05N\x8b\xfc\xbb\
+B\x0ch\xb5\xc9y\xcc\xd5\xaap\xcf\x90\xa1\x22\xc7\xde\
+\xfbz\xc8\x22\x9b~7\x05\xc5y4\xdd\xe3!!C\
+\x02\xb8\xb1\xd5\xd7\xb4\x88l]\xaa\xf5\x15\x18\xa98s\
+\x08\xf5\x80\xe2l\xf1%a \x11\xe8z9\x90Y0\
+\x81|\xa8\xdeQ\xf3\xd99\xe6\xfc\x05\xad)z\xba\x05\
+\xa2\xce\xa7\x0a\xb9\xfb\xe5\x00K\xc0\xe0\xf0\xf8\xc7\x22\xe9\
+=\xe7qU\xecy\xda\x9f\x0a\xd8p\x03A&\xfd\xc2\
+\x22\x85\xe8\xa8i\x13\x89\xa8\x98~)d(\x98\x08\x90\
+\x9d[~\xa8\x04\x0a\xf2d\x89\x92\x84\x22k\x01\x9a\xfe\
+,d8o\x99\x98\xaa\x84\x1a\xa4\x02\xbb\xc2\x0fc\x07\
+\xe8\xd5\xc6z.\xe1P\x5cH\x89H,\x12d$\xab\
+\xecP#{<\xbc'd@\x0e\xb1\x87\xf6y\xef\xed\
+\xee\xd0n\x89Q\x15J\x01#=a\x1fH8\x09d\
+\xfd\x9c=\xed\xbd\xeb\x02\x5c\x90\xee\xde*\xd0\xc9\xe0 \
+Y\x9d\xeb\x9e(\xf0\xff\xae\x8f\x9f\xd8\xa0\xd7\xf5y\xfc\
+G\xf7\xedyK\x8c\x09 %\x02\xf818b\xb4\xac\
+(<\xe1xp\x7f\xec/\xce\x09\xdc?\x12\xdb\x9eW\
+\x9f\xfa\xd4{\xda\xfd\x9d\xfb\xb0Oz\x0bh\x0f\xfc!\
+\x17$x\xe9\xa5\xbe>\x9d\xcd\xbe\x8d\xb9\xab\x9ev\xa4\
+\xe1\xa6\x9b\x9c\xafq#a\xff\x97\xa0\x10wI\x048\
+\xbf\xfc\x0d\xfec\x0f\xfc}/\xf1`\x1fu\x840\xbb\
+JO\x88g\xdc\x9f\xff\xe3\xaf\xf5\xc0\xbfC\xe1\xfb\x18\
+B\xfb\x05R\xa4\xaf_\xbf.\x9f\xd3\x111\xde\xcf\xf3\
+\xe1'K\x5c\xf3\x9f\xc59\xae\xcf\xfaJ\xb8h\x19\xe7\
+\x17\xf3w\xb5\xe6B\x84\xf9<~\x14\x12J\x89\xcd\x96\
+\x08+d\x89\xc45N\x18\x09g\xe4\xa2\xece^\xdf\
+\x91\xc3\xb9g9\xd7\x0a\xad\x8fq\x1e1uu!\x0f\
+\xa3(\xb5\x06p<#<\xbdd\xbe\x0e\xe44\xe5\xf8\
+8\x80\x14\xb2\x050\x97=.\xffmI\xfe\xf6\x93\xdb\
+\xfb-\xf3r/\x9d\x95\xd8o\xdf\xc8\x8a\xa6G\xcc\xf2\
+\xf3\x1bTca1\x1e\xc7\x98\x08L\xc3-\xbbB\x1a\
+\xb6\xe7\x0f\xec\xc3\xe1`\xfcX\xf6\xec}\xcb\xb0ab\
+\x1b\x9d{\xb8\xfe\xa0\xc2\xb9\xea\x9a@X6\xe6\x0d\x16\
+\xa9\x03\xab\xc7H%\x07\x89W\xf5(\x0a<\xf4\xb8<\
+2!\xa0\xa0\xd72\xd0\x0f\xceL\xf2\xdb\x12\x02\xa2\x02\
+`j\x80\xccs\x1a\xea\x9a\xcb.\xe1\xc2\x11\xea=\xff\
+-\x93[\x06O\x80\xee\x80\xf4\xc0\xbfW\xfa\xfb\xc1\xf2\
+=G\x80B\xa7\xc8:yPo%\xe8?w\xdd\x14\
+\x96J\x8d^\xd8\xec\xa1\xae\x8c\x1a.\x04d\x82\xc8\xa8\
+\x92\xc5~w\xc3\x90\x05b:\x7f\x0d\x15\x83\x11\x12=\
+\xe5\xb8\x9a[g\x06\xed?\x07\x84F\x84G\xaf\x1b\xf6\
+At\x94\xbdypX\x22\x0c\xfd\xee\xec\x99}\xc8\x00\
+A5=\xe1\x89k\x02i\xde\x9d\xeb\x98\x8eW\xb4\xb9\
+\xc0Q1}\xd4\x00\x19\xf6\xbc[\xa5\xaa*\xbd\xd8\xc9\
+\x91I!\xbbz\xe6J\xfa7\x9d>}|\xfa\xf8V\
+\xe1\x8f!\x881\x06\x11\x84\xbd*\x05\xe6\xa6g\xa5Q\
+\x85\xb2zL9pH\x98\xf2\xfdT\xf0\x0e\xdf\x1a2\
+\x8c\xc5y`\x92hr\x04s\xde|U\xc8 b\x12\
+\xc2\xb8\xbbh\xc8\xfc\xfd\xd7B\x06E\x1bZ\xe3\x12\xdb\
+\xfe\xa9^X\x88\x15\x156\x90\xa93\xd2\xc0\xe1\xdc\xa0\
+\xf8@\xed\x9d\xff>\x1e\xce\xfdy\x9f\xab\xe7\xba3 \
+_\xcd\xe7\x9b\x08\x82\xd9\xa9Y\x03\xe0?\xcb\xf1\xa3\x14\
+\xb1\x80Z/&\xce\x88\xac\xe4\xec\xee\x1028\xae\x14\
+\xf0\x13\x13)\xa4\xf74[\x09\xfc\xff\xee\x8fw/\xdb\
+\xbdlI\x00\xcc\xb2@\xbf\xd7\x04C\x83\xf4\xd58T\
+\x19dl\xb1\x97\x0e\x19\x90@\xee\xcb\xba\xa8L\x82\xc6\
+\x0a\x088\xfe\xf4\xbbs\xf9\xfaL\xdcp8S\xdfV\
+\xe24\x11\x14\xbbk\x84\x0c\x81\x08\x87\xe7\xae!\x83\xfe\
+7N,\x13;\xd5\x02a:\xc5\xadC\x06\xfd\x04\xca\
+\x0ba \xa1# \xbeq\xc8\xc0\xae\x9cS0\x8a\xa5\
+^\x05\xf2\xfe9\x1d\x82>\x16\x10;w\x02\x08H\x17\
+\xe4|\xd8\xc59\x08\xf6\x13H\xb1D\x8e@\x17\xa9,\
+H8\xe4Q\x06&\x85t\xd0\x9a#\xd0I\xb2\xccr\
+,\xac\x87y\xe7*\xc6\xc6\xb6\xb1\xabX\xb0/\x14\xb2\
+=\xe7B\xb8\xbc!d\x08\x08$d\x04\x0a\x1cE\xd3\
+j\x1e\xb5\x8e\xf9<<+d@\x12\xe8\xe1\xc5\xd9\x03\
+9$\xc0L}\xbc\x7fn\xc8\xfcz\xd3\x90\xf9\xef\x9e\
+\x192\xbf>%d\xfb\xfc\xfd?\x85l\xbd\xd3\xd5\x83\
+hzD\xf6\xf0#\xb7\xab\xc4#\xbb\xc1\xce\xd0\x0b\x19\
+\xf0\xd6T\x96$\xd9\x9b\xfe<d\x08\x80\xed\xbf\xd4\xf3\
+\x95\x80H\xa4UM\xf9\xe0\xd8r\xd0!4p\x05p\
+t!P \xb4$\x922!\xb8\x7f^\xc8\x90XN\
+(\xfc\xe1'B\xb6\xcatM\x09\x92`\x14\xe8\xa7\x83\
+W\xfa\x99\xbeC\x0a\xc5\xd1\x93X0=\x00\xc7\x0f=\
+\xa8\xc2\xcb\xffz\xf2\x22\x1b\x14\xfcW\x16\xd9ZT\xec\
+\x07\x9cN\xf4\x0c\xbb/P76Y\xc1\xc3~\x15p\
+$\xb7K\xd9_\x8e-{\xdf\x03=\xe7KE\xdf\xf9\
+R\xc1E.+1`\xac\xaa\x04\x9fJ7\xbd\xe2|\
+;\xbf\x99\x98/\xfd\xc6\xbe\xeb\x81G\xc2\x9b\xeb\xbc\xff\
+\xbb\x90\x01Q\x9a\xe4\x9c\x95\x80A^\xa7\xf2F\xef\x19\
+\xcfe\xbf\x0a8=\x07\x9f\xef\xfc'\x19^M\x07\xe8\
+\xd38\x90\x0b\x0a\x18 ~$\x12\xf9\x85\x12\x01\x9eS\
+\x87\xb6+\xecA\xe6X\x17\xfe\x86\xe7\xc0?\xe7\xef\x08\
+\xf0%p:+\xba\x80\xbf\x07\xb8\xec\x8b\xf3\xda+\xb8\
+^\xe9e\xdf\xf7D\x00\xfb\x97\xfeaU<\xfd\xde\xf5\
+H4\xfb\xbe!\xe0\xa6K\x86\x0c\x01;\xc4\x86\xc4\x0d\
+\x08\xb6\xc0M\xc1\x0e\x02\x04BW\xe1\x8d\xdfk\xff\xf0\
+\xb3p<\x08\xc0$~!`\xac\x87\xfbv\x9d\xd6\x99\
+\x1d\x90\x90\x12\xf0\x0b4]w\xef5\xdf\x90\x8b\xeb\xfb\
+7\x0e\x87\xba\x1e\xff/\xb1\xc3~e+X\x9dC\x01\
+\xb8\xc0\x9f\x9fe\xdfXg~u\x87\xa8\xf7/\x01u\
+'\x15\xa7\x0f\xc4\x0d\x02]\xebc\x9d\xbd\xff\xf1\x10\x06\
+\xe38\xf9qZ@KP\x147\x82D\x86u\xb7~\
+\xf6\xa9\xf7w~\xecK\xeb\xbb\x91U\xaf\xf1\xa0\xc0\xdf\
+zI\xe8\x98\xae\x96\xcf\xb1\xfc$\xf7Ao?=d\
+~\xfd@\xc8\x96(/n\x19\xd7\xcd_\x13\x1f\x8a\xcb\
+\xc4c\xe2(\xfb\xc3\xfd\xb5DX\x8d\xdd\xcdu\xdb}\
+\x7fH|\x9b\xe3\xee\x22\xff\xbfT\xdaC\xfd\xfc\xd2\xc0\
+\x22\x1d\x95\xf8o\x1c\x14,\xc7\xc2\x07p|8r=\
+\x03gA\xc3\xbc\xbes\xc8\xe4\xaa\x9c\x0a<b\xfb\xce\
+7\xb2\xbb\xc7,w\x9f?\xf7\xdc!\x03YB\x18\xa8\
+\xeb\x0f\x99\x7f\x90s\x01q\x1a\xa8\xa5rz\xd7T\xd8\
+\x8f\xca\x0d\xf8\xf5$\xcf\xbaf:D\xd7J\x07\xff\xa2\
+\x19\xb2\xbd\x16U\x00\x00 \x00IDAT(\x9f<\
+\x04\x0a\xee\xc3uS\xac60C\xa5g\xd2\x98)\xac\
+\xd2\x1ct\xec\xc0\x1c\xc8\xcb\xa4\xa1\xbb@>\xb8\xef\xc9\
+\xca\x8b\x07\xfa\xc9<`}>\xb7\x03\xe1z\xfax\x8a\
+\x1e\xd0w\xb2\x0f\x1b\x85\x82\xef\x95\xfa\xfe\xea\xffzF\
+\xcc\xc1\x1a\xc76\x9e9|\xbe\x04C\xe7\x10\xe8\xf3x\
+9T a\xc6\xb6\x09(\xcdW\xc6\x0e}J\xee7\
+\x95\xcc\x84J\x1a\x0f\x84\xc3azS\x8e\xb5S\xd1\xb9\
+\xec,1\x86\xe7\xdff\xf9HB\x9b\x9f\xb8\x8d\x7f\x5c\
+\x02\x85\x1f\x1a*\xff\xa3\x029\xb3eV?\x95H\x91\
+'.\xad\x08\xb3l\x01\xd2\xee\xd2\xbbK\xed.5\x04\
+\xf0\xa62`5\xe6\xa0\xa8\x1c\x08P_\xbc\xde\xdf\xf4\
+\xe8\xb5\x82\xa1\x92^\x10\xdcdY?\xfcQB\xf9T\
+z\xde\x9e\x19l\x0efBZ\xb5$L\xf7\xcfqO\
+\x0f_{6\xcb\x919s\xed5\x07q\xae^\xe6\x84\
+\xc2\x1e\x18\xba\xf7g\x8fc:\x82\xfbW\x85\x0c\x0e\xa4\
+\x96\x99tL\x05\xa2*\x8c\xbb\xeb\x85l\xec\xd6\x158\
+\xc8`_t\xbe\xfb\x8b\x0e\x19\xe8\x9b\xa6\xa1e\x88(\
+\xb2$\x89;\xfcx:\xd0\xf4\x8cV\x09\xe3\x09\xf5J\
+\xa7\xc1/\xc7\x13\x09\xa4\x8a\x0b\x87\xcas\xd6+\x0d2\
+\xfd\x9e$I\xc2Q\xa0rc\xac\xd5\xaf-\xb2!x\
+\xae\x9b\x10/\x08\x9d\x8f&\xc4\x1dg\x85\x0a\xaf\x8ab\
+\x92\xa4M\xfb\xe9\xe8tt\xa8\xdc\xaatqD\x9c+\
+\x8e\x0a\xfd&\x01\x98\xf7[S2\xe8Yz*I\x02\
+\x91G\xd6\x98\x1cS\x02\xccK\xff\x93\x90\xe1\xb9\xa4C\
+\xb6\xff\xb7\x90\x8d$N@\xb7\xfb\xad\x90\xf9\xfb\x0b\x85\
+\x0cH\x06\xfa\x09r!\x13#\xc8\xfe\xaa\xc2\x92\x0e\xb7\
+\x04Q\x052\x9e\x83i%\x12\x03\x10\x17\x99x\xae\xc0\
+\x19\x89d\x06 e\xd8p\xa8\xd0\x9f\x1cXzMB\
+\xc7\xef9\xda\x12\x5cH\x00\xb3rX\x1c\x03?\x1f2\
+T\xce\xd21\xa9\xc0K 'p\xc9^\xe9\x82\x82'\
+\xcbz%\x00=\x8ft\xcc%\x90\x05:5\x95\x86C\
+\x01\xb9`\x1f\x9aZ\x90-\x0c\xd5\x22\xd7\xa7\xe5p\xf4\
+9\x80~\xef\x9cAVH\xa8\x80\x14\xa7=\x9b\xee\x1c\
+2\xf4\xc8\x0b`@\xddS\xaf\xd9\x07\x87\xc7\x86\x0cd\
+\x80IJ\xb8\xff\xcb\x90\xf9\xf5a!\xc3\x98\xc4\xec\xed\
+.\xb2\xaf\xeb\x9c}\x8c*\x8e\x82\xea\xf96v\x96\x83\
+\x85e_\x05U@\xe4\x9c\x83\xf0\x9a\xbe\x92\x1c\x15\xfb\
+\xcf\x85\x0c\x0e\xad\xc4\x1d\x87W\xebE\x92CV\xa0\xd1\
+\x1dP\x8e\x7f\x22;\xf4\xe4\xd6\xff\xd1\xa7\xe6\xca\x9b\xee\
+\x91\xcf\x1f\x22\xab\xc6\xb9\xe1\xdaP\xa1\xd1J\x96\x88\xae\
+JX\xb8\xceD\xaa\x18SX\x1c\x1e\x0a\x06z\x9fA\
+\xdd\xf5\xd2\xd3\xaf\x0fZdk=\xe0\xd8\x9ag\xcd1\
+\xcfB\x82\xe9\x0f\xc5u\xc2\x9f\xd0\x13L\x1f@0h\
+\x95\xb2^\x1cp\x0e\xab\x04\x85D\x1f;!\xc0\xf2\xbd\
+\xeb\x90\xc8H$Rqi$\xe2\xb3\xc6c\x0a\x1cT\
+t\xf9+\x0a:\xde\x0fifNg\x81\xc0\xa81\xbb\
+\xc85\xd9\x03-L}\x1c\x1cn\x05\xfe\x0f\xbf\xc7s\
+J\xbf\x07gU\xb5\xe6\xd1\x8bX\xf3!@z@\x0f\
+\x02,\xd0\xf6\x9c\xb4x\xf0\xab$j\xf8\xe7\xfcG\xd7\
+\xd7Y\xd2\xad\x13\xbf\xc2\xfev.\x90\x07\xd2{\xbez\
+\xc2\xcc~\xf2\xf3\xfez\x9c9\xf3\xf5=?\xd0\xd8\xc1\
+\x8e\x04P\x81\xf7>^\xdb\xd8\xbc\x0a|\xd8m\x898\
+\x15v\xefG\xdfi\xc1\xd4\x22\x01!a\x0c+\xd2\xdd\
+>v\xd6:\xf9\xfbLT\x95_d]{\x0b\x83\xcf\
+\xef\xbd\xe4\x02\x7f\x90{v_\x80*\xa1\xe0\xb9yu\
+\xbfm\xbd+0\xed\x1cN\xd6\xc1yl\xe36+\xbe\
+a?$h\xac\xb7\xeb\xf1\x7f\x9d\xcc\xdb\xbe\xff\x9f\xb8\
+\xc4\x9c\x13\x9f\xd7\x9f?\x7f\xc2\xef\xfb\xf4\x82\x8e4\xe8\
+-\x05\xceC\xe76\xe9-\x01\x9d\xdc\xd1\xe7\x89\x97|\
+\xae\xfb\x95\x90B\x02\xed\xb9\xf4\xe7\xa3\x10#\x1e\x90\xc0\
+E\x9e\x9f-\xe0E\x8e\x0c\x19&\xf1\x8e\xb3,\x13\xd9\
+\xd5\xca\xc3\xcfH\xfb]\xd3\x83\x14\xa8\xf89\xaeC\x01\
+\xd8:\xb9\x8e,XH\xa4\x1eY\x1e\xc7W\xf3\x1f\xc6\
+J}\x0f\x08\x91\xe9\xb51\x0c\xc8F\x16\xc0\xef\x00\x11\
+\x5c~;\xce\xfb\x0e\x88\xdd\xa9i\xe8\xaf=\xf4D\xbd\
+w\x01M\x9f\xb0\xbb_\xc8\xfc~'\x87\x0c\xac\xed6\
+\xa8\x80=\xeaD\x97\x19\x1c\xe74\x9cUI\xc3n\x1b\
+\xee\xf2\xe5s\xa1\xae>\xf4b\xc8\xfc\x82\x982pI\
+\xaaR\x154=\xe1*\x89\x14)\x05\xcb1w\x00,\
+p'\xe9\x11h\x09P\xb0\x0a\x7f&!L\x0e*\xee\
+\x00\xd0\x7f\x07\x8c\xc2\xb0\xa19p\x0eXO\x00\xf4\xd7\
+~Pz\x80\xdf[\x00z\xc5\xbee~+\x01\xa2\xb2\
+\xe4\x95\xc1\xee\x0a@ \xdd c\xf5\xf7\x1c\x08\x10\x5c\
+\x86o\xab\x18\xaf\x86\x1e\xeb\xb7\x0c\x9a\x0c\xfa\xc3\x8a<\
+m\x1dsu\xda\x9axQ\xf9^\xc2\xe4\xe8u~x\
+\xc80\xc6\x12\xe4U\xcf\xe2\xbb\x16\xf0\xf7jH\xbfq\
+\x08\x8cBM\x8c=\xb39\xe6\xb2*\xeb\xcfY+\xf4\
+s\xe0\xfdC\xd3\x0f-\xfbg\x85\xc8\x0a\xb8<\xc7\xbf\
+Z\x06\x1fm\xcf\x93\x03\xf5\xbaLl\x80^\x22\x1b\xb3\
+\x0e\x14\x89\xe7\xdeIa\xfa<\xd4\xbb&K1\x05\xd0\
+\xa1\x96\xb8\x04@`\x05\xc8\x9fIC\xfaS\xc9\xb9p\
+\xc3\xc3\x8d\x0e7\x1a\xc8\xfdT\x8a\xa6\xec\xf0xE\x06\
+\x0a\xcf]\x13.\xd3-\xd7\x80\xb3\xd8\x8c\xb14\xeb\x99\
+\x13\x80q, >\x909\x19 \xf2\xb5\x90\x132\xb2\
+\x89\x9e\xa5\xecy\xcd\x0a\xed\x1cv\xaf\xef\x7f\xaf\x0c\xe0\
+\xbc/GF\x05K\xe6\x93\x81\xe6\x88=&d\xd8\xef\
+\x7f\x93\x0e\x06\xc8\xa7\x1e`\x86\x22\x1dO\x95\x98\xe9\x1d\
+!\xf3\xeb\xc7W$Fq\xa1$\xf4\xf5p\xeb\xc3\x82\
+\xa4\xf2\xb9\xd3\xe3C\xe6\xd7\xcf\x86\xcc\xaf\xcf\x0e\x19\x9e\
+KB\x12\xcb\xc1\xef\x90[\xbd\xb8\xd8\xff\xe9-\x89J\
+\x09\x80F\xcaYs_\xb5\xc6\x80zkMP\xe9G\
+\x0a\x97c\xd3\xf6\xaf\x0c\xd9\x0cLq'\xa8(\xfd\x5c\
+\xc8\xf0\xdc$N]\x87\xb1`*\xe0\xf42\xee\x02\x9c\
+\x1bH\xb7\x04\xd22\xf6*~\x029\x06\x0fR\x04\x12\
+#\x9f\x939\xf7\xd5+k\xacPBf;\xa9`%\
+^2\x11P\x9c3\xd7\xca\x96\x0e\xe7)\xcfG\x9d{\
+\x81\xad\x9ey\x95N\xf6\xc2\x98-\xe4e\xce\xf3\xaf\x84\
+\x0c\xf6BbC\xe5\x80c\xe3y\xd0G\xce\xbf\xbf\xcb\
+\xd6\x9f\xc3\x8f\x85\x0cv#\x11\x03\x95 \xa5/T\xca\
+3\xf0<\xdc.d \xc1\xe3\xe0i\x19\xb2\x1e9\x0e\
+p\xff+!\xf3\xdf?#dH\x10\xdd3d\x0b\x84\
+\xaa\x02\x9a\x81\xd6\xd1\xdf\x0e\x19\xb8#\xb2\xc2_,\xe4\
+\x1c-vR\x82\xe7;\xd7sS\x01!\xa8\xbd}\x93\
+-r\xf5\xfc\xe87\xe7\x5c\x8b\x95\x16\xb2_\x08\x19Z\
+\x09L\xd1I\x92\xc7J\x1cq\x1c!- \xa2TN\
+Ur9\xd8Y\xa9\xad\x0a8\xc4\x00\x04\x8c\x96\x16\x09\
+K=\xdfZD\x044\x107\xa7\xae-m\xe5\xc8\xf3\
+#\x5c\x97J\xa5\xa9\x19\x12\xbf\x02n\x09\xa9\x5c\x97r\
+\x18% \x14(\x92]\xbf\x1cD\xfa\xe5\xbe!C\x05\
+\x1a\x84\xbfU\xf6@\xe0%\x0e\xab\x85G\x02![\xbe\
+\x90\x95J\xb8\x14y(D\x9f\xfbt\x1eq7\x99\x86\
+\xa0\x152\xc7U\xf1/p\xd2T\xcf\xfc}\x179\xe1\
+\xf0\xb4\x90\xf9\xe7\xd7\x0e\x19\xcegrK\xd4z;\xa7\
+\xf4U\xfe\xbc\x10\x9d\x900z\xc2\x1f\x162\x04\xe0\xf6\
+\x87)M\x12\xb6\x9d$\x8d]\xef\x81 \xff\xcd\xfa#\
+KT\x10\x10\x90\xd0\xd7\x9e?\x84@\x06\x88\xd5*g\
+_\x08\xd0$6!u}\x9eD\x05;\xa3\x97\x9c_\
+\xca\xfe;O8\x87\x90\xcc\xf9\x1cz\xc8\xfd\xf6\x9e\xfc\
+q\x9c\xf7\xc8)\xe4\xdc\x98\x02\xd2\x13\x00\xbe\xf7\x9c:\
+\x12\xc0~\xe9\xad\x05\xfc z\xd3|t\x9f\xeb\xba\xad\
+\xabu\xe0\x7fy\xed\x10v\xc8\xbbD^V\x82\xda\xef\
+}\xb9n\x95~\x89\x10\xd7-\xb0\xb4>\xfd>@\xd3\
+U\xfc{\x82\xa6\xb7\x04tn\x00\x09)\x85\x996\xdd\
+\xa8>\xbf\x93\xea\xd9\x9f\xee\x9b\xff$@g\x17\xfc_\
+OD\xb8\xfe>\x16\xba\x15\x00\xcb\x8f\xeb\x89\xb1>U\
+L\xc0/\xae\xf0\xbd\xeb\x14\x8fX\x7f\xf1\xa7\xf8\xa5#\
+\x00:\xe2\xc0\xf5\xb9\x7f\xaf\xd6\xd9}\xb9_~Lk\
+!\xa9\xf3\xe0\x1c\x88c \x0c\xed\x07\xf6\xdc\xf3\xcd\xc2\
+\xde\xeef!\x03\x17\x90\x84l\x16\xb4\xca~C\xae\xe3\
+\x14b\xcf\xad\x9f\xb1\x9b9\xdd\xa9\xec\x8cD\x8f\xfd\xce\
+\x0e\xf1gn\xb9\xc8\x09A\x9d\x1e\xe4\xe9\xbe?Rd\
+Fo]{\xaa\x177\xff<\x15\x0c\xae\x0b\xf9\x95|\
+\xe0\xe38\x07\x99\xab\xc8\xc8\xbeu\x98\x0b+P\xcf1\
+(z$\x8b\xad4\xc7\xc5\x14\x9bu\xf4>\xdd}\x98\
+\x93\x1aa\xf3\xb7\x0c\xad\x07\xc91 \xa0_\xd4\xf7\x95\
+\xb2\xc2w\xc5\xc11\x14pp (V\x0a\x91\x82D\
+\xbe\x82\x84\xc7\x02\xea\x15\x04\x85\xc4\x1a?V\xc8O\xc8\
+@\xe0\x9f\x87\x04\x04\xc8!\x87\x96\xc3\x94\x95\xaa\xda\x80\
+\xc9j_l\xea\x9d\xd5\xd4u^.\x11\x0f\x0cZ\x8e\
+O\x19\xe6\xea\xae\x8eq\xaf\xd0\x1f\x8f|\xcfk\xef\x9d\
+\xe9\xbd8e\xe9\xdb8@\x0a\x99\x01I\xe8WA\xcf\
+\xad\x83\x83K\xe1\xc9\x88\xf69\xf7*=\x17h\xe3\xdd\
+\x1cx\xd7'\x81\x92\x8e\x226\xdc\xeae\x81\x88H\x07\
+\x11{\xb9\xcc\xda\x12hE\x05\xf9\x8b!\x83c\x8dD\
+\xea\xc8\xf2$\xd6\xca\xe5\xb5\x07\x05=\xceC\xfd|*\
+\x82\xf3\x0f\xfb\xd2x\xae\x1b\x84\x0c\xf3\xde/\x9a\x8aT\
+\x85\xf5\xae+\x12\xe5\xf0\xb2\xc3\x1f/\x95\xdaP\xdb\x1f\
+\x1b\xc81U\xf8\x91\x91e\x80\x163*\x96\x96\x12\xcf\
+\xe7:\x99`\x01\x05\xfa\xb7\xcc\xfc\xda\x97\x1c,H\x9a\
+\x84xV\xe5\xea\xeeY\x11\x7f\xf9Z\x11\xd9_#d\
+P|\xe9pT\xc5>+\xe7\x87k\x1c\xae~\xb8\xfa\
+\xe2h-\x8e\xeb\x89\xa7\x86\x0c\x99ql\xe9z\x8c.\
+\xb1:\x12\xc5\xa2\xaf\xe2\xcb\xc1\x93\xa9\xa4h\xb1\xfff\
+\x8fx]\x0f\x16\xf2\xdbg\xc0p\xed5\xb1S\xe7Q\
+O\xadD\x9c\x80\xd9\xf7\xf6U\x9f^\x22\xc0L\x8e\x91\
+\x0a\xc4\xcc\x8d\xbe}r\x18\xa4\x1e\xa8\x1ekc$\x7f\
+8\xc9\xe2\xfc\x9f\xf1\x87ze\xb3\x92xxAVj\
+o\x97\xd3\x1f>\x172\x90\xcd=.\xd9\xc4U\xa8\x18\
+.\xeb\xd3\xc8,k~\xb2\xcc\xadJ\xa7\x80\x92\xe3\xd6\
+\xb89\xca!r\xee\xb3\xe2]s\xe0\x13\xd1\xc0\xd1\xde\
+\x7f&d\xd3\xd7\xbb\x9f\x0f\x19\xd8\xcb\xb3\x17\xbc\xf4\xfa\
+\xef\xaf-)*i\xa5\xffA\x8c%\xe0\xe8\x0f\xe4^\
+\xf4\xa3D\x86\x9e6\x01/}H_\xa8\xc8\xbe0d\
+H\xf8\x0a\xc0<\x07\xbd\xf4\x12\xc6\xb8*\xe8C\xe4;\
+\x9e\x17\xc74\xc9\x0dk\x1e:\xb6\xf9L\xe0!\xcf\xa1\
+G\xaa\x82\x0b\x81\xe4:\xdb\xfe\xadD\x86\x80\x034U\
+\x85\xd6~f\xb89n\x1c#\xfb@\xc2#\xa1\xa9K\
+\xcb^ \xf3^\x142@>A\xcd\x19\xfc\xb4\x83E\
+Z\x0aR-\xe1\x81\x14\xef\x5c![\xa2\xaf*\x9c\x99\
+0\xdf_;dK\xcc\xefO\x0b\x99_?\x1f2\xb4\
+,\xe9\x1d\xe5\xc8a7\xbfi\xc8V\x917M\xa5\xf6\
+=\xc7W\xc5\x98=u\x1e@\xefUP%X\x04\xd0\
+*\xf8*\xe68WT\xe43\xb1\x06\xb9U\xdc(\xae\
+\xc39\xe4\xc8\x83\x96_>dH\xb0p\xb09`\x12\
+\x1a\x12\x8e\xf4\x8cD\x14\x7f\xc4\xf3\xf7\x9cMC\x12(\
+?dmy\xab\xfd\x00\xfa/\x11\xa1\x02\x0b\xa9\xa2u\
+\xe2\xd2!\x83\x9dL\xbf%\xf0_\x0b\x02\xec\xb4\x90a\
+\xfa\x8f\xf3\xc0QE\xf6\x0c\x99\xa0\xd5FA\x87\xc3M\
+\xbf\x08l\xac\x97\x8a\xfc%C6.\x9bBvz_\
+\xcf\xd1\x18b\x0e\xba\xc4\x0dD\x9a\xc0\x0b\xa7F^w\
+\x8d\x97M\xfd\x5cv<\xf5\xcc\xf4\xe2\x90!\xc1\xe1\xbc\
+\xbbN\xcf\x85=H\xc7\xb7\xecg\x06\xf6\xf5\x1c\xf4\xf6\
+J|\xf3W\xed\x03\x897\xe7Ub=\xa7\xa3\x94\xdf\
+\xd4\xc6&W\xe0\x96\xfb\xb4\x10?\x90\x07\x12\xc0\xfcW\
+~\x18\xbd\xd2\x03Y\xfew\x92\x9a\x95\x1f,\xb1\xe6\xfe\
+\x04\x8a\xec\x01\xbf@\xa2V\xa2\x84\x1f\xe6z%\xbe$\
+@\xecK\x813;\xde+\xf3\x0a:\xf4%\xbf\xca\xfb\
+t\xb2@\x9f\xe7\xb5\xbfo\xe7\x00h\xad\x00u\x0e=\
+_\xeb,\x90\x15\xa0A\x82\xb8\xfe\xfey\x1dQ\xab\x00\
+\xc4\x0f\xb3\x8f{\x80\xcc^uh~O\x00\xa8 \xe3\
+.p\x1d\xb8\x16zE\xf9x\x09\x00\x5c=*\xfd\xf4\
+\xa7u\xf1w\xfd\xf3\xe9e\x89!\xcfE\x02\xc0\xb9\x11\
+\xdfurA\xeb\xe8>T\xec\xfb\x18J\xfb\xdf\xe7\xf5\
+\x9fw.\x10\x9f\xc7\x7f\x11G\xb0\x7f\xd6\xbf\xb7:\xf6\
+\x16\xe6\x1e\xb7\xf8\x7f\xf7\xdb\xa7\x98\x89\xa7\x90\xe7A\xa2\
+\x09}\xd9\xf7>%\xa3\xef\x1b\xdfw\x92B\xc85\x88\
+\xc6l\x05\x9d\xfe&d~\xbdp\xc8\xa0\xe7}~\x1f\
+w\xe9:}~\xdf\x8f\xee\xd3\xf9\xea\xebb\xbd \xfe\
+ \x092\xb1u\xa4H\xc9\x5c\xd8\xddB\xf2\x01\x7fa\
+\x1b\xf70]<$\x17\xec_\xf3\x83\xbf\xba\xf5\xf4/\
+\x06\xf3r\x0b\xf4x\x96\xc1\x112.#\x03r\xbd\x9c\
+U\x11\xfb\x87\x90\xcc\xe0\x7fv\xeb\x818f\xbc\x12\xc7\
+.\xcc\xd6\xd8\xdb\x1b\xb7q\x95\x01B\xe7\xd5\x0d\xdb\x00\
+z\xb7\x8c+\x94!W\xc1\xc3\x96\x08\xbaO\x91R,\
+Y\x01\xaa\x0a\xa1\x0c\x13\xc3\xcb\x80`\xc1f\xd0\x05\xaa\
+W\xc9Lb\x87l\x9cwu\xd8\x0a\x81\xf0\xc2\x84\xbe\
+\x83\x16{?\x7f/\x83\xd6\x15V\x0f\xe0\xff'd@\
+'\xeb\xe3\x90\xf5^}\x8a\xc2\xc6\xa4\x90\x1cp\x1b\xd3\
+}\x22\xa9\x13\xf83\x9c\x0c\xa9uKGu\xbaQ\xc8\
+\x00\xc9\xda\xaeg\xbd\x0e\x90H\x99\xf9\x13C\xb6\xc0\xf1\
+\xf0w+d\xb1\xe6Ng\x85\xb2*&\x12\x0az\xa2\
+\x03:\xfd\xd2\x81\xad::3\xdf<\xf4\xd8\x22g\x92\
+ \x8at\xcc\xe5\x86^E\x0aJ@\xee~\xae\x95\x81\
+\xba\xde\xb1/\xce\xea\xec\x8b\x83\x81\x08\xb7\xe2\x83CO\
+v'\xbb{l\xc8R\xd9Y+LwLvp\x09\
+\x06\x81\xa9\x8a\xf6_\xad\x1c\x03\x05\xb9\xde\x85\x0c\xf7\x0f\
+\xaa\x99\xfb\xe8p\x91\x846\xde\x7f%\x15\xac\x00\xf7\x81\
+\xd3\x03b\xca\xc5\xfc\xb9+\xf2@B \x11\x17\xbb\xf3\
+\x85\x0c$E*ZW\xca@\xf8\x86\x89\x94i\xe4\x84\
+\xe6\x99VB\xcd9dHTP \x04|\xcf\xf1\x04\
+=v\xbe\xf4\x80[_\x19Z\x7fo\xff\xd9\xafH{\
+\x9e\x93\xd0\xe6\xd7d\x86\xb5O\xcb8o\xf6\xc4\xd9O\
+\x09\x81\xadi\x1d\xa0\xa3\xdf\xbd>\xa7\x82\xe4\xde(\x11\
+\x12_\x0f9\x9b![\xa7y|m\xfa\xea\xc2}\x90\
+\xd3\x0cfu\xbf\xf48\x0b\xa4\x0bj(\xd1'ps\
+?*\x0fm\xecR\x91\xb7\xf5\xb1\x9f\x9d\x9cS\x86\xd9\
+9U\x01U\x11\xbco\xc8\xd2k\xb68\x90z%\xa7\
+\xc7\xe7\x18\xc2;$\x84\x1a\xa7\xc1kC\xb6\xb1tg\
+\xdb\xd7\x1f\x18\xf6\x1dG\xc8kB\x95\xa7\xef\x08\x19 \
+\x97zI\xb3\xe7\xbb\x1cX\xd7\xcb1Qy\x93 5\
+\x86I\xcb\x15\xc3k\x8a\x01\x04\x1a{\xa3\xd5D\xa0\xc6\
+\x91\x80\xa0\xc9\xd6\xb6b\xff76\x13\xc4\xfb\xb7B\x86\
+\xc4!=\x92\x15\xf5\xd2\x07\x10c\x09)\xaeD\x91\xff\
+\x03\x19u\xee~&d\x83\xf6\x07~hA\x10q\xf4\
+=\xef\xacp\x96\x83 \x80\x01q\xa7\x8f\x8d\xe3\x94\x08\
+\x91\xe0\xc8\xc4\xe0\xfe\xb7B\x86i8\xd9jU\x015\
+\x84\x9b\x80!Z\xa8f}\xb7\xbfE\xc8\xf6|\x0aR\
+\x9e\xd3\x0e\x8a\xb3\x01\xf4[`\x92=\xe6\xf6\xab\xb1k\
+\xc5\x9d\xd0\xc6F\x15\xe9!\x08\xb8\xe7$q\xa37\xd7\
+\xfa\x7f[\xc8\xa0O9\xbc**\xd6#\xa7qTK\
+\x86\xc0M\xc0yr\xc8\x90@d/p\x0ep\xd0\xd9\
+E\x05\x83dw\xaf\x04\x90s\xca!\x96\xd8\xe2\xc7\x18\
+s\x9b~\xc2\xac\x1df\x19\x90%\xce/h5}\xe2\
+\xf3\xf9!}\xcc2\xe8h&\xc8\xaa\x15C\xa0\xe7\xdc\
+\xb37\x90\x5c\xc8(\xbd\xafD\xbb\x965\x81?\xd2\xaa\
+\x9c\x06U\x08\x03\xfb\xebz![B\xbbz\xa3\xe9Y\
+z\x8d\xbf\xc1\x8f\xf3=\x922\xdc\x0f\x99(<|_\
+\xc8\xd0\x03\x8e\x83\x00\xf7\x87V9\x8e\xb2\x16$\xcf\xcf\
+\xfb&\xe9i\xe9\x17\xeb\xac\xa5\xd5sE\x22\xd98\x00\
+\xf6/\x09\x19Zu\x04^\x02b\xf7\xa9\xe0\xd1[\x1d\
+\x9dgz\x14\xd9e\xea\xc1\x1ak\xec\xfc\xf3\x97\xf8\x89\
+\x9e\x7f\xda\xa1\xea\xddv\xee\x91\xd2\xe68\xd5Jh\xc4\
+x\xed\x0b\x0e\x899=\xfa\xce\x17\xbd\xc9\xafQ0c\
+?z\x80\xeb~%\xee!nz\x00/\xb0\x93@\xf0\
+>\xbd\x82\xdf\xc7\x10\xfb\xff\x9eP\xf0\xf7\x12\xdb\x02\xcf\
+N\xd2\xa62\xcbOu\x1fm\xdaD\xf5V[\x07\xef\
+\xe3>]\x7f\x0f\x90\x15\x1a\x9c;\xeb\xdf!\xf9mJ\
+BU\xe8\xfd\x1f\xfbf=\xfa\xf8=\xef\xe3{\xef\xa3\
+\xa5\xc1\xfb\xdb\xf7\xae\xb3\xb3\xdfK`\xf4\xd7\x8e$\xa6\
+\xf7zk\xb0\xfd\xab\xe5$9W*q\xd1\x11!=\
+q\xcd/\xf6\xda\xc7\xd7\xf5\x0a\xbd\xd7N\x06\xd8\xfd;\
+\x01\xed\xf1\xc8\xc6\xfbT\x08\xdfK\xdc4$@A\xfa\
+\xad\xa7\x96\x04-h\xceE_gz\xbe\xb7B[\x07\
+\xcf\xd7\xb8X\xf6Mk\xa8\xd6-\xcf\xc1\xf9\xb4\x0e\x1d\
+Ib\x9f\xfb|\xeb\xc9\x8f\xcaD\xb1\xd6\xcb\xf2\xa7\x15\
+Z$.MI\xc9su\x04\xf9\x8eJsed\xc3\
+\xfc|i\x80\x16\xc7\x81\xff\xcc\x06\xa9_\x1c\x97\x17d\
+\xa0q\xa3-#m\xe1T\x0c\x96\xde\xb1\xa8\x10\xfdm\
+H\xf6T\xfe\xc2@\x22h\xfc^\xa8\xed\x13\x871\x06\
+*\xbd\x1c\xc0\xf8\xfb\x11\xd2\x82\xbd]\xb8k;0\x00\
+2\xb3*\x1a\x19\x90V/\x1b\xe8]B\xcc\x0aj\x8b\
+\x9d\x1b\x22\x82\xe2\x06i\x05\xe1\xc0\xca\xfb\xbe\x90!\xc3\
+\xa3\xc2\xa5\xc7\xff\xa9\xc9*\xaa\xd7C\xa5\xf7\x8dk\xcf\
+ze\xaa%\x08$\x1eT\xde(\x1e\x99\xad\xdes\xdf\
+\x03\xf6N\xbew<\xa4@o!\xe8\xff\xef\x95#&\
+s\xe7\xe0\xe8A\x05\xb5\xd4\x9b\x99=\xb4\xd3\xf3C\x86\
+y\x98\xa0{?\x92\xeb\x9e\xe3\xe28<\xc6\xb7!_\
+\xd2\x837\x87I\x8b\x83\x17\x1d\xfd\xd1\xd3_\x0e\xfeS\
+Ox\xca,\x05i?\xdc8dcq-H\xaf@\
+(\xdc\x9f\xbbo\xfb\x119\xdf\xf2\xd4\xfe$+\x1aO\
+\x1a\x1c\xf6p\x9b\xee3\x04\xe8Q\x09\xbe\xcfP\xf9\x96\
+\xc9O\xc58=8\x1d\xbb\x93W\xce\x8c\xfd\x17\xf7_\
+\xd8\x7fa\x98\x03o_\xc7\xfe\x7f\xc4\x10p\x810\xe7\
+x\xb6\xca\xe3<;!\x89\xc6\xb6%\x19\x9c\xb1m\x87\
+\x07%\xdbv\x06t\xfb\x1f\x08\xd9\x12-\xd3\xe7\xd6\x04\
+[Uz)\xf0\x0f\xae\x8a \xa6^L\x97\x1dH\x16\
+\xb1\x9b\xe79\xdd\x9d\x1a2\xbf>/d\xe8\x85L\xc7\
+\xa9X\xc5\xef\x9c\xec\xf7\x8fZY\xd5\xab\x15B\xab\x0d\
+\xc5\xabrAqRp\x9de8\xc9\x00%\x22\x0b\x1a\
+e\x1a\xc1I\x8d\x0b\xc3>\xf5\xff\x14)\x05\xf8\xd7\x09\
+-\x04}\x97Q\x05\xdd\xdd\x85\x0cc\xba\x9e\xb8V\xaa\
+\x90LV\xa0\x05\xa2\x8a\x0d\xba\x93ke\xaf\xef\xf4\xc5\
+\x90\xe1\xbeT\x1c?\xbe\x06p\x12.U\xa9|r\xc8\
+p\xce\xe8\xbbt\xf8\xaa\x97\x7f#/\x5c\x0d\x1a\xc3\xcd\
+0\xfaBn\x97-V\x05\x19U)v\xfd\x02\xf7\xd3\
+\xb2R\xf7\xc6\x95$h\xbab\x226\xae\x9f=\xb5\x12\
+]Z$\x90\xe6I\xb0\xa6\x1e\xaaD\x1erJc\xf4\
+\x04\xc6\x10X\xf4\xb7\xe7\x84\x83\x01k7\x87\x8ba\xd4\
+\x02\x00y\x22q\x8bl5!\xf1\xe6lW\x05\xd9\xb8\
+>\xf7+\x01\xd0H~\x8a-\x17\xe4\x5c\x82\x8b\xe1\xed\
+c\xce$*\xed\xa3\x8f4D\x0e$H\x1a\xf8\xe9\x1f\
+C\x06\x87N\xef\xfb=\xd6\xb1\xa6Z\x99\x8aM_\xab\
+\x07\xc7>\x03\xf1\x82Bg\xa5pzN\xc8\xe0\x00\x08\
+\xc4\xddg\x9e\x1b\x90\xfd\xe9\x0b!C\x8b\x0e\x92P\x09\
+\x03\xd0s\xf7o\xca\xc75C\x06\x8e\x83\xe4\xf0)D\
+\xc1\xf7\x1f\xee\xbd\x04\xe6\x02\xc9\xe4\xf8(\x88v\x92\xef\
+\x15\xe9\x1c\x085\xbd\xa0\x22\x0e\x82-@\xf4\x9cz\xe5\
+M`!A\x9e\xfb\xb0\xe6\xa5[?\xfb5\xc7\x10\x1e\
+N\x09\xd9\xa0\xee\x87K\x84\x0c\xfa;+\xe7\xb5\xaf\x15\
+\x18\x14\x08:\x17\x87\xd6@?\xe7\xd0\xda7\x12\x1b\xf9\
+\xbe\xc8\x14\xa7\x8b\x84\xcc\xaf\x9f\x08\xd9\x12\xbfZ\x04\x90\
+\x0d\x97\xbd\x97\x98\xe1\xf87\xe8k\x9d\x1bzP\x82\x9f\
+\xe3iJ\x87uI\x87\xb6*\xf6\xc6\x85\x82\x82[g\
+\x89\x0d\x09\x15\xf7%\xc0\xe7\x10\x0b\x08\xed\xa3\xceN\xaf\
+\xd5\x89#\x0d1\xc8O\x93(1U)\xa1\xf7\x87}\
+\xc8\x80\xd8\xca\xca8\xa4\x11\x12\xe6\xd2'\x12\x1d\xee\x93\
+]\xcb\xe9,\xc6\x9aFzsIpz\xae\x90\x1f\x1c\
+k\xfbI\x8f=\x92b\xd3\x86:\xb7F'A\xeb,\
+\xe2\xce12A\x5c%\xa6G\xd0\x17\xd9R\xa1%\xc3\
+\xfa\x09x\xab a\x9fu\x12=vC\x22\x07\x02\xc9\
+:xn\x12\x15\xfc=\x89J\x09e\xeb@_\xb1{\
+\xc9\xfdQ\x094\x08\x1cvW\xe0\xc2>y\xff\x9e\x98\
+\xee\x81}O\x00H\xf0I0\xf4\xdf[w\x097\x81\
+\x91\x9f\xb3\xfb\x02t\xe3\xc6\xbd\x9f\xc4\xaf\xf7\x05\xf1\xf6\
+{\x88\x11\x81:\xfdc};\xd2\xa0#G%\x1a@\
+\xfb%p\x14>ZB\xff\x18R@H\x856\xd6\xad\
+\xde\xa7\xb7\x08t\xce\x05\x819\xe4\x98\x00W\x22\x8a_\
+\xa2\x80\x22\xbep^%\xec\xc4\x17\x9e\x9b\xcf\xefc\x1f\
+=\x17\xef\xdb+\xfc=\x11`\x7f4\x0e\x91\xda'\xfe\
+\xcf\xfeq=^;\xf9_\xff\xf2\xbe\xae\xdf\xfb\x08\xd4\
+%\x92\xac\xabB\xa5}-\xc1\xc1\xee\xd3\xf7\x12\x11\xee\
+\xdb\xfb\xf9\x1c\xd7o?\x8a\x0f\x0f!\xf3\xeb\xd7C\x86\
+}\x85\x13\x8c?\xc3\x9eH\xbc\xf6\xf3\xc1\xdf\x90\xd8\xb4\
+_=W\x05L\xd3\x9a \xb4\xbd\x8f\xc2\x8f\x96\xc0$\
+\xe5=\xb2\x90\xa4\xfd\xdb\x90\x11\x05Q\xb6\xd06\xac\xb1\
+\x19\xa0u1\xbf\xfaJ\xdb\x984\x0axw\x9f\x90\xf9\
+\x02\x9e\x14\x92\xa4Q\x0c\xfaI\x03;+C\x96\xe4\x7f\
+g\x1b\xe7\xf0\xd5!\x01\xa1\xf5\xa0\x1f\x94\xc8\xab_`\
+X\xd0\xd8\xc6'\x0f\x1c\x01\x1c\x89X>\x90\xe3\x0f\x0f\
+s\xbb%\x18\x18\x82\xdes\xef\x80\xa6c\x18\xd3\xcac\
+^y\xcdu\xbe\xc9JZ7\x9d/d\xd9@k\x8f\
+\xf0\x7f\xe4<l\x0aA\x00\x96\x95\x88b+VI\xd0\
+[\x9bdn\xc7d`\x1d,\xf7\xcf1\x9ej>\xfa\
+\xea(\xd8\xa0\x1c\x01\xff\xef\xe7\xfe\xcfA\xeaP\x1a\xef\
+\xd3\x91\x00\x0e8E\x98\x10\xf12\x8cH\xce\xb2RS\
+\x89\x94\x84\x80R\x9c\x02\x87\xe9:k\xc5s:!\xc9\
+\xab@\x8a\x91P1h\x8fM\xa84C\x18\xbd\x81\xbf\
+6\x90\x14\x85\xf9|F:H\x7f<T\x828.\xf1\
+\xd4\x1e\x9c\xbd4\x7f\x91\x15\x9bW\x0f\x07\x17RD\x8f\
+\x9d\x03\x15\xbb\xeb\xa3\x03'\x00G\xd0>\xcb\xc0vY\
+\x9e\xc3F\xbeT\x86&+\xbb\xc5\xba\xca\x90\xe64\x82\
+e\xdf^hp\x88\x04\x22X\xa0\xdb\xfa\xe9\x89\xac\x8a\
+\x0e\x85i\x9d\xd2\x91(\xee\x00\xcf\xf7\x89\xd9\xebz\x8b\
+\x90\xad\xa2,0\xab\xf3\x99\x95\x02l\xeaH\xde\xa6\xf7\
+\x86\x0c\xad1\x97OrK=\xdd*\xe3\xdfT\x8e\xc3\
+z\x1fX\xeb9z\x0c\x16\x05\xeb\x8b\xbeA\xe2\x97\x15\
+\xd1\xe9\x8fC\xb6\x00\xa5\x1cX\xebuf\x83V:?\
+\x02\xb3N\xa2\xd7\xc6\xf8TEN+\x07G2\xcf\xdd\
+\xf4\xc1\xe9C\xd3\x87\x86\xc0\xd59cX!\x812\xa0\
+\x98\x9d\xe3\xff\xbd\x90\x12^|\xfa\xa6@HUB\x90\
+\xe3\xd5Z\x1e\xe6\xa0ju\xc0\xfe9\xf7S\x22\x10J\
+\xf1\xcb\xd8\x0a\xec$~@\xc9\xac'\xc3MO\xebA\
+\xcf\xc0\xb2\x12\xba\x12M \xfa\xd6+\x11\x00\xfb'\xed\
+\x9f\xbc\x8f1\xafGWr\xc2\x05\x1fu\xe1!\x91\xa6\
+\xf2\x0f\x01B/BPH,$)\xe1\xf4O!\xc7\
+\x929\x96\xe1\x12\xc0\xaa@\xfa;\xe7Lb\xc3\x97\x16\
+\x17\xff\x87\x0b\xc4\xe7c5F\xa2\x99sn\xcb\x11\xa4\
+\x0f\xfc=GW\x053\xf5W\x8d\xd9\x02\xf9\x87\xb4\xa0\
+\x07=O\xad\x1c\xee[o\xb3\xfd\x0dz\x8f\xeb@@\
+b_\xba?\x89\x8e\xe4\x22){\xc8Q\xa2o\x05\xc8\
+9\x87\xbc*\x9f\xf4\xab\x04\x8d\x04\x97)2\x19\xb0@\
+0@\xf2\x1d\xbe\x122T\xe6%t@\x03!\x0f:\
+I\xa1\x00\x08\xdb\xbb\x04\xeb\x8f\x9f\xf0cKk\x88\x80\
+$\xf5\xea\xfe\x1d!C\x05W\xc0\xe0\x1c\x0a(;\xdb\
+\xbcD\x98\x9f\xb3G\x1c\xab\xac`T\xc2 \xeds!\
+Z@\xf7\x91<\xda\x07\x10\x0a\xfc\x02\xbd\xee\xf9\xba\x7f\
+i\xc8\xa0o\xb4\xf0i\x9dA\xba\xc4nt\x12b\xd7\
+I\xeftR&\x8eb\x87t\xb3\xbb\xd6\xdf\xf5q@\
+\xed?v\xb7\x8fm\x15@\xeby\xa6\x17$8\x8d\x9f\
+cW\xba\x9eq\x0e\x8c\xf1\xa3\xe7\x90@\xffz\xc8\x96\
+ \xd5\xc2R\xe3_qm\x98J\x91d\xb3\xecH\xdd\
+\x0f\x04O\x0f8qEd\xa2Iok!>\xb0_\
+Kx\x5c $\xc6&/\xb2\xf5\xc6\xe7\x18\x5ccc\
+\xab\xd2\xeey\xf5DF&\xbc$J\x0f\x0f\x0c\xd9\xde\
+\xbf\xfe\x1f\xb2\xcd\xf9\xb6O=\xd7>\x06\x90\xbf\xa5\x00\
+\xa5b\xaf\xb7_+\xa5\x8a\xbd\xd6\xa0t\xd8\xab%P\
+ \xa4\x00\x90d\x91\xd3\xb7\x87\x9cC\xc0\xdd\xa6\xc4\xd4\
+\xbeq\x9d\x19\xb8\x16\xe4_\x82J\xc5\xd0\xffi\x953\
+\xe5\xc2\xfd\x09\x94@\x8d;[<?\xb5\xf7l\xdb\xaf\
+\xbd\xb7\x9f\x9eQ\xd1w?\xfeN\xc0\xd9[\x01\xbc\x0a\
+\xa8\xfb8=\x81o\xfa\xf9\xe5\xcf;\x1f\x1d\x19\xe0\xfe\
+\xf8\x05\xf6\xabu5\x16\x90\xbe\xee$y\x12$\xf4\x5c\
+C\xc6\x95}\xebs\xe5{+\x85J\xbf\xf3\x04\x19)\
+A\xc5\xdf\xeb\x89\x02\xf7\xefs\xd9Y\xf7/\xf1#\x1e\
+q\xfd\xf4\xac\xfd\xcco\xec~\x85\xeb\xeb\x89\x86>\xd5\
+\xa3\x8f\x05\xb4\x7f\xfbkO\x10\xb0\x8b\xfe\xdf\xef}\xd1\
+W\xae\xaf#\x99{\xe2\xad'\x18:\xf2\xc0\xe7\xb41\
+z\xb5~\xfd>\xedk\xeb\xe4{~\xb8W\xcf\xd7s\
+\xc7M&\xe1{\x93\x90!1\xce\xdfW\x18\xa5\x17q\
+;\xb1'\x9d,S\xc1I\xc2\xcb\xe7\xf5\x16\x11H-\
+_\xb8\x19\x8c\x15\xcf\xb8\xe5H\x91\xfe\x09pb9>\
+\x99s\x92\x7fq\xfb\x07\xac\xbbK\xa7\xdeM\xb6\xca\xd8\
+\xf4_!\xf3\xeb\xb9B\xb2\x82\xf8\x7f\x87\xb9\xe4\x0cM\
+\xdc\xce\xd1\x81t/\x90\x07\x17\x1e*\xff\x91X\xf8|\
+>\xc8\xfdP\xd9\xf7\x00\xb1\xb3\x8f\x19\x91Ol\xe3.\
+\x16Ev\xb5\x81\xac\x90\x02\x91YI\x03[,\xd4\x1c\
+[\x06\xce\x98\xbf\xbf\x08\x19\x1c+$I\xa0\xc81\x96\
+\xf0\x11\x8b\x22\x5c\x1c\x99\xe9\xf7\xd6@\xaa\x02j\x99h\
+\x07\x09\xcb+\x08\x1a\x88\xa8\xccO\x0b\x80\x8a\xedYO\
+*\x12#P-d66<G\xd1F\xb4\xd1;\xdb\
+(\x85L\xd1\xb9>\x8eg\x1f{\xd6 \x98E\x22a\
+\xac\x95y\xc7\x1c]\x89\x07\xeb\x9d\x1bYe\xbf\xd8\xc9\
+\xbf\x1c\xb2U@\x90UL\xaf\x08YH\xa8\xaez\xb8\
+\xea\x86$\xd9\xbf8di\x15y\xe7\xf4\xce$\x93\xf9\
+\x5c\x8ew|P:\x96oX*\xd0!\x1b;:E\
+\x99\x15\xf1\xa5\xd2\xf7\xae\xa1\xc2\x15f\xe2}[&\x14\
+Tx\xe9%\xfc\xc3LL\xbcts\xc4@qK\xa1\
+\x06\xf5\xd1\xfd\xf2y>r1\x08\xebAE\x1aw$\
+\xd7\x95\xe2\x0a\xb7\xff\x94a?hu\xe1\xa8\x22wB\
+.&\xd3,\xc1\xc0\x81\xf1\xf9\xd9\xc2P\x89,\x0e\xa4\
+\xb1s\x0c\x83qX\xc9f^\xeb\xaeB\xf4\xb2\x90\xf9\
+\xf5\xcc\x90\x01\x91`?\xf8\x02I\xa7\xe0\x9d\xafw\xa7\
+#\xfa\xe9\xcc\xac\x82N\x81zs\x90\xb3\xa7x\xbaU\
+B\xc8\x91u\xda\xd7 \xb7\x0fXY\xc0\x8b\xac\x8f#\
+\xdc\xc9g\xec\xcf>\x07\xb8\xf7z\xfdyV\xda\x13Y\
+R\xe7\xfb\x0d\x19\x90\x98\x07\x9f\xe7\xac\x02S\x01\x96}\
+\x9d\x95\x81\xfd\x9f\x87ls[\xa7\xdbM\xb7_\xe6b\
+\xcb\xa83\x1c\x9e\xbb\xef\x8d\xfbzi\xee\xcf\xaf\xe4:\
+z\xff\x0c\x80g\xf7n\xa9\xa4\x97AQQ\xc0\xf1 \
+Pf\xe0@\x99\x9f\x9e\x0e\xfc\xaffo\xec\xdf\x87\x0c\
+\x95\x5c\xe3\xf1\xfe`\x91\x0dy\x90\xad+\xbb\xdf\xdc\xfd\
+\xc6\xee7\x06d\x08\x04\x87\x9ex\xadOz\x85\x8d!\
+t\x9e\xe8\xb1\xec\xd5\xae\xca\xa5\xc09\xe7yW\x80j\
+\x1c\x96\xb9\xe2\x02<z\xd4>\xa3'\xb3\x92W\x10x\
+\x89)\xfbG\xa0\xcc@Z\x1fdW\xdf\x142\x04*\
+\x89\x0c(\xb2\x22\x09\x17\xec\xffZX@\xe2\x91\x94r\
+\x04\xecCs\xeb\xb5\x0c|G\xc8\x16\xd8\xd49q\x1e\
+\x04B\xc8\xef\x90\xe1\x820\xd3\xbf\xf4\xb7}\xcdAg\
+?<w\xad\x17m\xfc\x11\xa8y!\xa4\x12\xe9p\xf8\
+j\xc8\xe6 Ve^\xe0*\xa0\x84\x08P\x11W)\
+3u$\x0a\x00W\x1e\xe6ak\xf1bW$\x08\xb1\
+\xfe\x0b\xfcU<%\xec:D\xd4\xf7\x9d\x94\x96#\x0d\
+\xc2(A\x9al\xea*\xfdE\xb6\xa7\x05DO\xbc\xd6\
+)\xf3\xe3\x93\x0c\xa9\xecm\xfa3\xfbO\x87\xcc\xbf\x7f\
+K\xc8\xfc\xfa\x80l\x91\xd2r\xc2^!\xb9c\xef<\
+7\x09e\x88\x04\xfb5\x7f\xbf\xff\x9d\x90\xf9\xbc\xfdT\
+\xc8\xe6/L\x1f\x0e\x19\x02Mv\x9b\x83\xcc\xaeK\xf4\
+\xa90\x9aN\x92-\x095\xb63\x119\x15\x10 5\
+3\xa5\x08\x12\x92~\xa6\xbf\x04J\x02\x9b\xfc?\xd3@\
+j\x0c\xaa\xe7\x0bQ \xb0\x14\xd0#Y\x14\x98\xf2\x07\
+ y@\xfa\x13\x89\xa0ru\xb8~\xc8\xd6\xfaW\x01\
+1\xff%\xf5.\xbf\xa3\x12\x9b8\x17\x12\xb1W\x09\xcc\
+l\x89\xa8i7\xb822\x90\xdd\xffn\xc80\xf64\
+\xcfG\x05\x8a\x02@\xd0|v\xc7\xf9\xec\xe4\xca*\xa9\
+\x0a.\x02S\x10l\xfbX\xe0\xa9\xe5Ce\x9e^a\
+\xbf\xec\x1f\x9c\x0d8a\xf8\xc1\xfc\xc0\xdc\x87\xa5\x97!\
+\xab@\xc7\xfb\xd4\x02\x08*\xdc\x03\x12\xf2\xfcH\x95p\
+z\xd4u\xf1K$\xd0\x05\xac\xb9O\xab\xe5J\xe0\xc6\
+\xbe\x09`\x90\xa9\x09\xec\xbd_\xef\xd5\xee\x81\x7f'\xd3\
+\xb3\xfe\xbd\x15\x8d^\x11@\xf7\x00\xbcs\x0a\xe4\xfbM\
+GB\x06\xa4\x83\xc2\xa0\x16\x1b\xeb\xd4\xc7\xd0\xf5\xc4\x9f\
+\xcf\xe9\xec\xf0\xce\xb3W~Koy\x10\xd8K\xb4\x08\
+X}\x0e\xfd\xe0\xf3\xb4\xc4\xf5\x16\x01\xe7\xb8\xf5\xeeW\
+\xe2\xc2~e\xcf\xe8/\xfb\xb6\x91\xe0\xd5\xff\xf7\x04J\
+\x1f\xeb\xd8\xc7\x03z\xae^!\xca\xf3\xbc\x1d\x13H\xd3\
+s\xfc\x00\xf6\xa4\x93\x8c\xe7\xf5\xd7\x14\x9cN\x22\xdd\x13\
+\x0b\x1d\x81\xd0\xb9\x22zB\xc1>sN\xfb\xb8D\xaf\
+\x9d\xcb-\xcf\x0b}9}:d8\xc7\xde\x8f_\x87\
+\xdb\x8c^\xb4\x9e\x9d\x93\xa3%\x02\x8eI8\xd0/}\
+\x1a\x9b\xf3\xfb\x94\x151]\x89\xd7L,\x1e\xd9\x7fm\
+\x96\xbe\xe0'\x0f\x07@%SF8\xd8f\xaf\xb0\x19\
+,s\xd9Ox\xc4,\x11`\xbcz\x96P\x1c\xa7\xcd\
+\xf2\xd8\xbc\xe1\xaf\xe5\x0d\x8e\xac\xfeWZ\xba\x88\xb7\xf9\
+\xee\x01\x85\xbc\xf5\x90\x80\xa0@ \x07\x8c\xeb\xf3 \x22\
+,8ex\xf5s_ ;\xe16\xde1+Gw\
+\xdb\xc6\x0cU mA8`>\xd7\x83r\xbd\xde\x1f\
+\xeb-\xf2\x86L\x90\x14\xe4]\xc5\xc7\x03\xe0 \x0b\xa4\
+\xbd\xaf\x03\xdc\x1c\xbb\xe9\xcd!\x83\x03\xee\xa01l*\
+\xa12W\x0e\x0e\x87\xd3\xc1\x860\xb0A\x12B]\xa4\
+1Y\xe9*h\xb7\xbf\xa7\xe0:\xb4\xcd~p?\xfe\
+\xde\x17H\xaf\x8c\xa5\xfbdX\xb2\x17\xb8\x0eJ:\x82\
+\xd3\xbf\x84\x0c\x15\x9a\xcf\xa6\x22\xd4:\xf0\x1b!\x8b!\
+^{\x89A\x9a\x03\x00\x1a\x8e\xdd7\x86dE\xea\xda\
+\x998\xb9\xdf\xd0\xcb\x88\x5c\xea\xb4EV\xc5\xfb\xef\xc3\
+\xf3W\x11\x8d^\xb93\x06\xb6m=\xda\xe18<v\
+0\xfc\x0c\x87}C\xe1!w\xfc|>/\x86\xccA\
+f\x90@&!QTf( \xa4t\xef\x0b\x19\x1c\
+\xfa$9\xac\x1e\xbf\xcb'\x1bv\x1a\xea\xda77\xc8\
+D\xc0-\xf29] \xcf\x97\xf3\x9ac=K\xe1\x08\
+(9\xf2\xa0\xf6\xbe\x9c\x0b\x8a\x1b\x99Pg\xe3e\x98\
+\xd2\x11\xab\xfb3\xd6\x8c\x22?\x9a\x86,\x03\xcf\x9a\xe6\
+\x90\x10\xa6\x22_1\xb5\xa3C\x12)4\x06A\xa2\x87\
+b\xf7j\xcaCB\xfc\xcb\xa0\x22\xa1\x04\xc1\x7f\xf5Z\
+qRY.H0$\x82\x1e\xb8\x9b\x87\x0c\x8e&R\
++\xe7\x17\x19\x99\xfbt~\xde\x93\x89\xd5\xf3\xa5\x81\x15\
+\x08\xd9G\x0cZ&@\xccy^(N\xaf8Th\
+\xae\x9e\x95,\x9f\xe7\xbaTp\x7ffe\xad?\x86D\
+\x07\xe4Z\x05(\xa1\xe9\xfb\xc7\x86\xcc\xdb\xeeGw?\
+\xb6\xfb\xb1\xad\xa2V\x01-\x87C\xe5\x87\x1e\xcc\x04@\
+!\x13rn\xf9\xf4\xcd![`\xbe\x8cc\xbd\xcb\xc6\
+\xe5P\x09\x04-PYi-\xf2.\xfb\xb0M\x071\
+\xe6+\x86..c\x17\xcdS\xa7\x07\xac\x83qj\x02\
+D\xfb\xc6T\x00\x10{z;+|\xf4\x07\x0e\x8d\x82\
+^B6A\xde\xa4\xde\xab\xf9\xd7\xbd\xf5*\xd7\xad8\
+s\xeck\x01\x18\xd6v\xfa\x15\x0b:D\x0d=\x89\xc5\
+\x1c\xa4?{\xedU\x12J\x7f\xe6\xcf\xeb\xbc\xb2[H\
+\xf9\x04\x0a\xe9\xe0!5\xac\xca^\x0f\xf0M\xb1x\xd1\
+Z9\x98\x1e\x97\xd0t\x90n\x01\xa1\x82\x00\xf6\x7f=\
+\xe5\x12\xebZ\x03r\xcaGU\xdaA\x10!\xb5\x12\xf9\
+u\x8c\x03\xcc\xae\xb1\x9f\xfc\x12z\xd6T!\x091v\
+#9w\x8a\xd3\xc0~\xa6\xbf\x8c\xe3\xa5\xb7@\xdf\xff\
+2d\xe8\xedF\xb6\x97c0k\xec\xa71\x0c\xc8\xc6\
+\xc8\x00\x00 \x00IDAT\x8e8U\xdc\x9f\x04\x80\
+\xe7\xca1\x93H\xa1'\xdc\x07\xf2;\x95\x18\xe3\x8b\x05\
+\xb2\xe9g\x08L+1\x88#\xc6\xf8L\xfb\x1b\xe4[\
+%\x15\x22,I8\xab\x95\x0a\xe2@+\x89V\xcdD\
+\xcc\xa8\xdc\xd7yO\xfb8\xfdr\xc8F\xfa)\xc0,\
+D\x08}!\x81\x07\xe9A\xff\xb1\x7f\xaeS\xcb\x82\xfd\
+\x0ai\xd1Z\xc1J_h\xcd1=)\xed\xba\xf9\xda\
+E\x1a\x98\xe3\x80\xcb/\xc9\xe7\xb8\xf8\xa5\x8f\x18\xc6E\
+\x1a\xbf\xa8\xd5@gd\xee\xe7\xb2\x17\xf9\x7f\xd3\x8f\x86\
+\x0c\x0e\xbf\xc0\x8f_vbK\xf4\xbb/\x89>\xf7%\
+\xe0\x13\xc8\xb2[\x02i\x89s\x09\x93|\xff\xe9\xfe!\
+C@\xd7\xa1\xca>\xdf\xfaj]pc\xf4\xbf\xdex\
+\xfa\xb1\xf7\x16\xf7s\xa8G\x9e=m\xe4xEN)\
+\xc1\xa95\xd4\xf9\xe6\x7f[/\x81\x18\xe4\x8a\x00\xcbz\
+\x1c\xa7\x15\xe0\x98\xa9\x02m\xea\x00\x7f\xb6\x02g\xef\xcf\
+\xbfV\x08\x11\xa85r\xbd\xfa\x7f\xbfw?\xf6/\xa4\
+\x8f\xe7\xc8\xbf\xed\xe3\xe9\xfa\x5c\xfb\x9e\x08\xf0\xb9}\xfc\
+\x9f\x84\xb5\xc0\xce\xbax_\x85\xd96\xd6\xaf\xec\x90\xe7\
+*\x81\xe4s\xfa~k$\x8d\x95X\x95\x00\x10\xf0\x8b\
+s\xd8{\x7f\xdf\xa7\x18\xf4\xca\xbf@\x1a\x09\xe4\x97C\
+\x86sc\xfd|/\xf1\xd3[\x00\xe8}\xe7\x89\xfe\xe0\
+\x7f\xb3\xb7\x10A\x10x\xfcg\xeb\xd4I ]\xbf/\
+\xfa\xd8\xdf\xf9\xea\x5c\x0f\xd6M\xdc\xe5\xbc\xf9\xb9s\xec\
+s$\x1a@\xfc{\x5c\xd69\x5cL\xc5\xca\xc4UM\
+\x8bs~\xc4\x03\xe9W\xd4\xf9\xb7\xcf:'C\xe3\xa0\
+(2iv?\x0b1\x90VG\x8c)\xc2\xc2\xbf\xb0\
++\xff\xccP\xb1I2?\xbd\xed\xd3\xdbB\xd2\x91\xfb\
+\x9e!\xb3\x10f\xe5:\x19\x90\xbc*/\xe0\xf4\x81\xc5\
+\xff\xa4\xa5{w\xab\xd8\x08\xa0<\xe0\xa8\x90^p8\
+H\xb1\xad\xdf?\x8c'\xf4\xf7\xe1~^9\x0d\xd4\xb7\
+\x0d\x8ea\x84\xcb\xdf584q=\xc6:\xa9\xa8|\
+r\x08\xa0\x8c\xb7\xca\xcaqe\xcc\xf5\x8cS 2\xdd\
+\xa6\x16\xdc23\xe7\x0c\xbf\x8a?('\xc4\x83D\x81\
+\x00T\xe0`#S\x04\x1cu\x8a\xdf\xfa\x08T(\x06\
+\xf7O1\xf4\xc0\xd2\x06\xf5\xe09\x86 ~z\xc0e\
+\x0c\x13B9\xfdl\xc8@Z\xc8a\x02Y\xa3\x10\x8c\
+\x11\xd3\xc2\x81\x8d]\xa0&\x03\x8b\xa4G\xe5\xe4{B\
+\x86\x04\x12\x08\xab\x8a\x9eu\xfe\xadd)\xfe\xd7Tp\
+\xa7\xae\x19\xfe\xc3\xd1\xb5\x17\x90\x033\xbd ds\x00\
+\xf6\xef\x09\x19\xd8I\xc3\x01\xfd\x8b4\xf4\xbf8pU\
+\xa8D\xc6j\x7f=\xaf\xff\xc5\xc3T\x87`h\xb8m\
+*\xb8O\x0d\x01d\xf4\x8c>:I\xccn\xbcA\x12\
++\xa1\x04\xb2\xf3\xb64\xd0WL\xa8&EF1\xa8\
+\x00J\x84\xe0\x960&\xacC\x9e\x182\xef\xc3\xe0$\
+\xa9\x9c^\xfe\x22\xe7\xd1#9\xad\x81\xcc\xf4\x07\xd3\xb3\
+\xa6g\x0d$tH7A\xd4OIvm,\xf7Y\
+\x19.\x07\xca9\x02M\xa2@\xfb\xb8\x11\x99L\x90I\
+\xeba\x7f\x1aG\xe2\x1c\xc8\x84\xe68G\x0e\x05\x92\xa9\
+c\xc8T\xce]\xbd\xefk\xe0\xf6\xf6$\x8d\xbbWB\
+u\x9d#\x89\x01\x95\xca$M\xe3\xe8\x15y\xdd;r\
+\xdd\xdf\x9b\x95\x8b\xe7\xe48&\xf7g\xdd)\xd6L\x80\
+\x16\xe48\x1d\xa3\xe9\xf1k\xe2s\xfa\xcct\xc6t\xc6\
+\x90`\x82X\xd0\xcb\x98\x09\x86\x9a\x12q4\x13c\x0c\
+\x80\xd6\x0c\x15g\x0a\xfc\xe4\xach?i\x9d3~\xc2\
+\x952@\xf6\x5c\x18\x12dd\x128\xb9\xbe\xf3\xdd/\
+\x8eE\xf5\xe6g\xe0\xb0\xbfh\xc8b\xb8\x16\x07d\xfa\
+p\x92\xdeqHT:8\x06\xd6U\xc0\xaab\xcf@\
+\xa9H\x22\x7f\xd5r\xa1\x12k:\x8aD\x90V\xb2\x84\
+\xb4\x17\xb2\x0a\xf2@%B\xa2A\x22.\x1da\xadX\
+E\xde\xb7|\x0d\xe4g\x90*\xf4/\xbd\xc8P'\x09\
+#r\xbb\xc3\x15B\x06\xe4K#\x93\xaa\x96\x1es\xc6\
+Me\xe1\x08\xab\x809\x07\xa0}\x9f\xccV0\xe7J\
+\xc0\xcd\x81\x82X\x80\xcc\x90\x90\xe4\x10\xe1\xa8q\xfep\
+QxN\x10I\x1c\x0b\x09W\xc8\xbc\x1c7)\x80\xab\
+\x96\x90\xeb\x86\x0ccQ\xd9%\x15\xbf\xe4\xc08\xe1w\
+\xf3\xd5\xf4\x0b\xef\x8fL\x97\xfe7vR\x0b\x9b\x8a\xb4\
+V\x08\xf3\xce%\xb4\x8d?S\xb1h\x81@9\xb6\x1c\
+3\xfe\x80\xc0 95 \xe4\xea\xb9'R\xaa \xe4\
+I\x16+\x917\xbd?d\xf8?\xeb\x97\x09_SP\
+\x0a\xe9\xf8\x93\x8blv\x00R\x22\xf7\xcft\xe7\x90\xe1\
+\x1c\x80\xf0\xe2\x1c\x02=g?s\x9d\xabE\x05\x19h\
+\x06\xd6\xfb\xdb\x86\x0c\xd0}\x10\xc8\xce\xfd\xa3\x22\x9d\x01\
+*\xbb\x8d\xdb\xa1\xc8\xa5\xe8-\xd0q$\xaa\x02\x0a\xe7\
+VE?\xa1\xa9\xe5H\x9b&\xd3\x10g\x15\xf8C\x1c\
+\xd8\xff\xa0\xfaz\xe4\x05l\xf4\x88}\xacP \x90I\
+\x92\xbeB\xb8\xf1w\xb2u\xc8\xf8\xbfBt<:d\
+\x18\x0b\x98H\x86\xc3mB\x06;\xcbObg\x04F\
+\x89\x94\xabV)z\xca\xbax\xee\xc6\xcf\xba\x1f\x81\x96\
+\xfb\x11\x00xP\xbd\xd5H\xe0(\x90r\xee;\x14\xda\
+\xfa\x0a\x14\xe9/\xfe\x91\xf5Hn\x97\x0a0\xd8\x09\xcf\
+\x8b\xdf\x09\xb9'\xc0i\x81~\xb5$d\x22\xbaZ\xcb\
+ \x17\x04\xc6\x12\x5c\x10\x84\x99\x80\xac\xf3\xd9Y\xc7\x05\
+v\x12{\xd6\xc1\xba\xf4V\x00\xeb\xe1\xb5\xcf\x97\xef\x1c\
+\x07Z,A\xed\xd9g\x019\xbf\x97^\xe1WB>\
+\xd0\xcf\x02n\xebg?6\xb2\xc0\xf2\x03<\xaf\xb1\xa5\
+x\xfc\xbb\xde2+\xd0u}\xae\xab\xb3\xf7\xdb\x8f\xae\
+\xcfs\xb2\x8e\xd6\x8b\xffn\xfa\x85\xcf\x95\xc8\x810\xf1\
+>\xfc3~\xa7\xf5\xb5\x9e\xdeW\x02@\xe0o_\xf3\
+\xdb\xe85\x7f\xdf\x13/\x90\x1c\xecUg\xf3\xb7\xfe=\
+\x01\xe0\xef\xfb\x18@\xd7\xc7\xdf\xed\x89\x08\xe7\xb9\xeb\xc3\
+>\x1e\xd0\x97\xf7\xed\xd3\x19<'\x09\x86\xce\x11\xe0\xfb\
+N\xaa\xe8\xfd\x5cW\xdb\xc7\x85\xbc\xca\xc2\xc7\xf4\xd7!\
+\x83\xdf+\x11\xe7|vrT\x88\x1d\x89\x00\x08a\xbf\
+\xef-\x17\xceEKt\xd4T\x0c\xadE\x10\xad\xd6\xdf\
+\xfeI\x7f\xe4\xc8\xb4\x0f\x19 ii`\x96\xdb\xb8\xcb\
+\xaaP\x17\xc7\x19\xfbv\x98\x85\xc7\x0c\xec\xe3\x02g\x10\
+\xe4\xc8\xe7\xdeg8\xf8}~\xa6D\x80\x80W\xc0\xe1\
+A\x9f\xb2\x84&\xab\x02\xfd\xd6ac\xdb\x189\xa7}\
+\xba\x5c\xc8\x00\x1d\xbe\xde2\x81}}\xdfK\x0c\xbd\x96\
+\xe6\x84F`\xf8\x9a\x81\xdc+\xc2\xe6\x7f\xd8 Q5\
+g8\x10\x0c\xaf\x1e\x0c\xd6\xf5rl\xe0U\x12\xda*\
+\x80\xc9\xcc\xf5\xf4\x84\x90\xc1\x11\xa7\x18\x05&\x12\x08}\
+<\x05\x05ic\xfbr\xe0\xfc\xdc\x86\xe9\xf3.m \
+\x95#\x0f\x18R\xc0\x01L\x07fzp\xc80fF\
+\xa5Ie\x0a\x19_\x92\xbbQ\xb4U\xa1F\x82\xa5\xb2\
+\xee@0\x8c*v\xbf\x182d\xac)\xa8D8\xd4\
+8\xc8{'\xc9\xa1\xca\x93\xca@&T\x0e\xf7\x5c\xb9\
+%T@w7\x0cYz\xb0WN\x85\x93B\x96\x0d\
+\xbe@1\x17\xe8\xd6?d\xa0q\xef\x0cx\x82\xd5\xfb\
+>!C\xcf\x1fh\xa6\x9e\xca\xf8\xe9+\x87\xff\x03\x95\
+\x0c*\xc0G\x0c\x0e\x05\x85*\xf1%\xf1\xa3\xc7Ye\
+\xb7\xf7*y\x9e\xd9RP\x10\x7fd\x86\xc6\xbbe\xef\
+bA\x0d%b8\xce\x0c\xb4\x00\xf0j\x894q>\
+\x8cG\x03\xedd\xe0\x93\x84l\xfa\xef\x90\x81u\xfa\xd6\
+\xf9\xbe\xa6\x05x\xff\xcej\xcaA\xa7h\xfc^\xe6\xf2\
+\xd1\x87G-d\x8a\x14\x1d\x12\xbf\xef\x0aY*q\xcb\
+\xf3*r#\xbdQX\xe1\xad\xdf\x06\x99_\x0dg\x1f\
+[y\x99L\x8c1\xf8\x0c7\xbd\xf1\xfe\x0c\xd8\xee\x95\
+\xec\xd1\xc6di]\x01\xadG\xf2\x98\x15v\xe3\x8a\x8a\
+\x1c\xea%\x19\xd8\x80\x90>\x22+\xc7\x902\xce\xe1\x0f\
+%\xe4\xd9\xfe\xf6\xbc\xdc\x87\xfd\xff\xa6\x9c\xd6\xd0\xa7j\
+009F\xaf\xc8\xf3\xb0\xc5\xaa \x99\xb6@_x\
+\xfe\x17\xca\xfb~^\x8e\xdd\x92\xe8H\xe8Y\x91\xb6\xbd\
+tu\xe4\x0e\xbf\x93\x15\xd3\x84~!\x85+\xf6k\xbd\
+\xae\xeeG \xce\xd0$\xa7\x03(|\xb1\xc9\x1b\x97\x97\
+c\xf9\xf4\xd2\xfa?\xdc\x12U\xd1\x86\x00\xd0\x13\xa7\x22\
+\x89\xc4\x93\x03\x92\x01]02,\x9c\x0cZer\xbf\
+\xef\x9f\x16\xb2\x05\x02\x87[\x86\xcc\x7f\xff\xca\x90-A\
+X\xe7\x1cd\xfe2+\x99\xa8\xc4A\x91\xb3f+\xc8\
+\xe1q!C\xc2@+\x88V\x08-F\xf4}\x9e\xbb\
+\xc3\xadC\x06$\x04\xae\x88\x5c\x9fc\xa0\xa0\x1c\x09c\
+i\x8dwTA\xf9\x83\x90\x0dAQ\xe4\xb3*'\xdd\
+QV\xb9\xcd\xf3Wc\x17\xb3\xc2m\x5c\x9a\xc4\xb5D\
+\xad\xf1pU!\xf8\xd9\x15Ir\xb8\xd3\xe1\x8e\x87x\
+NO\x0e\x19\x12#\xf63\xfd\xc5q\xa4\xff\x04\x86I\
+\xceh\x7f\xd7u\x0a\x94\xcd#\xe7\x98\xa9h\x98\xce\xe2\
+\xe7\xd6\xcbT\x0f\x89F\x8e\xbe\x0a\xaf\xe9\x04\xec\xa0\xf1\
+\x91*\xba\x02\x13\x09\x0ac\x03%2\xe8\x9b<\xe7\xc8\
+\x02\xeb\xbe\x93\xe5\xbe\x02P\x89\x07z\xdes\x11`\x1a\
+\x93\x99\xfe\x8d\x16\xac\x1a?(\xe1\x82<\xd7\xbe\xe2\xe7\
+d\xa5'\x98\x86\x82k\xa8\xae\xc7\xf8;\xc8 \x95\xf1\
+\x8b\x84\x0c\xcf\x81\xff#\xd1l\xdcjw\xfc\x1b\xc9\xf0\
+t\x83\x90aj\x00\x88:;F/\xf9\x9c>\x1d\xc9\
+y\xf2<]\x07\xbd\xc5\xef\x13P\x08\xb0\xe9M\xcf\x1d\
+\x82\x02\xa2R\x01$\xc9V\xab\xd7\x1b\xa4\x9f_\x93\xcf\
+\xa1\xec\xa9J\xe1\xb5C\x86\xe7\x9cd\xbe\x0a\x141\xf4\
+\xf60\x92\x07B\xea\xe9\xa5e'\xad\x1b\xfd\xc0\x9f\x03\
+\xc17\xcdI\x81\x88\xfe\xe9=\xc9\x9du\x1f\x82\x0c\xa2\
+\x05\xf7Q\x06\xecH\xb5\xab\x977[_k\xdc\x18\xbb\
+\xd1\xb94 \xf7@\xc4%\x12\xdc\x9f\xb1\xce\xb8U\x5c\
+\x8f\x00V`\x01\xa1\xc0\xbfU\x89l\x90\xe6\xaax\xda\
+g\xfc\xd7F\xce}\x8c\xfe\xc2=\x00Y\xc4\xcf\xe8\xf3\
+\xe6\xed;\xfb\xc7\xf5v\x8e0~\x91\xd6;\xebEO\
+\xf6\x04\x84\xff\xef\x10}\x81\xba\xeb\xe6'\xf9\x5c\x7f\xdf\
+\xd9\xed\xed\x7f\xc8\x88\x8f\x85\x0cz\xab\xb5\xf8\x95}\xe8\
+\xd7\xc3\xdf\xe1g;\x8f\x10\x0f}<\xa4\xc4\xb5\xcfs\
+\x1dg\xb5\x96\xc3\xe3!W \xb2/\x132\xb4\x8aH\
+\x9c\xd8\x17\x9e\x7f\xef\xe9\xef\xe3\xfcz\x02\xa0\x93\xfd\xf5\
+V\x01~\x12\xfb\xe8\xf9\xd3\xb3>\xcf\xdf\x89/{k\
+\x86\xfb\xf4y\x9dl\xda\xbe\xf5\xda\x11\x0a\xbdE\xa0C\
+\xeb;r\xc1uA\xec\x99\xeaa|2\xbb\x06\xa1\xe0\
+\xfa\xfbxD\x88E\xcf\xcf}\xdbg\x1d\x81\xd1[\x04\
+\xfc\x1e\xf9\xf4#B\x86\xfd$.\xcc\xfdp\xa4.\x94\
+A\xa7\xe0\xe7\xed0\x9d?\x83\x80o\x1b\xc8\xf9:y\
+\x85J5\x07\xcd\x81\x0f\xf7\xf4\xc2\x83B\x84\x04\xe8\x86\
+\x87A\xd0\x8b\xe6\xfbP\xb7\xdf1\x90\x89\xb9p7H\
+\xc1q\xbc#\x0c\x1e\xe7\xc3\xc72\x7f0\x15\xfe\xb93\
+\xa3{\x83\xacX\xdf;\xe7!\xdfg3`\x15\x00 \
+\xff\xdaz=V\xe8\xe3\x0733s\xdb\xac\x80Qp\
+*~6\x90\xfb\xb0\x0e\x9d\xad\xbf\x8f\xe9\xb3\x11\x1c\xc8\
+\x9e\x08\xe8\x19\xc6\x9e0\x10\x00I\xb8\xb8\x7f\x19l\x0e\
+5\x87\x9eCr\xe5\x90\xc1\xf1\xcd\xde\xa7\xc3\xa5B\x86\
+\xb1sXx\x91\xda|%{w.\xbb\xee\x93\xe9\xa9\
+!\x0b\x19\xcfj`^\x9b\xd0\xfeO\x85\x0c\xa4`2\
+e\xe6y?7I\xab$\x96(n\x90\xc7d\xbb\xaf\
+L:h\xe4w\xed\xbfs\xff\x9d\x83Cc\xbd\xc3\x1c\
+\xfcg:\xce\xcf\xccJ\xd8\x1d\x86\xca\xa4@Z\x05\xde\
+\x97\x96\x06S\x02\xa2\xe5\xe0\xd7\x07\xb2!\x81TB\x9a\
+j\x8e\xba\xc4\x93J\xa0\xde1\xcf\x07\x92C\xa2Ee\
+\x10\x9b\xaf\xdeO\x867\xc7\x1cN/\x0c\xd9*\x00\x05\
+u\xbe\xf3\x22'L\x0f\x0dYXEW\xd2\xb6\xac \
+\xd44\x0f=\xcf\xe6\x8c\xda\x97\xa0\xbc\x90\x02\x9e?\x04\
+\x87\xe7\x9b\x8eyq\x0b\xd8\xbfm\x5cN\x84\xfd\x11\xf8\
+\x1f\xbe~8z8:\x8cO\x93\x80\xd2\x0bE\xbf<\
+=9\x0b\xb0\x93f\xc5\xa9\xa0\xe2*{\x90'\xbb<\
+_\xce\x19G\xf2C\xe9\xb8p\xfc\xb0\xbe\xab,\x1f]\
+\xaf\xa7\x1c=\x01\x8fDW&N\x0e?\x122\xf4\x9a\
+>|\x0d\xa0O85+\xbc/\xcf\xe9\x0d\xe6\x5c\x0b\
+\xb0\xaf\x97,\xea\xc6\x1b\xeaE\xbb@\xc8\x00e\xd7\x13\
+n|\x1b}\xa2%@\x05\xfe\x07\xf2\xf9\x0a\x8c8\x9c\
+z\x8d\xb5D4CW\x99^\xac\xf2\xdf\x192\x18p\
+\xdc&9\xeem\xff\x9b!\xcb~Z\x12b\xd3\xbb\xd6\
+\xf1\xab\x0b.\xea\x93\x83\x03o\xdf6\xa4QA\xda\x9d\
+\xe3'\x85\x0c\xad\x12\x1cO\xfa\x13I\x97\xa92Z\x03\
+\x12ivxh\xc8\x90\xc0\xe4\x10I\xd8$kz9\
+\xb0\xdf\x14\x92\xdc\x1fs\x80\xb6\xff\xd7\x90A_\x09\xec\
+\x04bz\xd2q\xb8\x18\xbb\xa5\xd7\xf7.!\xdb86\
+\x15\xe1B\x86\x81\xbc\x9b\x12@O=|\x91-\xe0\xf4\
+\x9c\xb3B<\xfdI\xc8V\x11\x9f\xee\x182\xe8q\x86\
+\xde:KP\xff^\x22=\xd89\x10f\xfb\x1b\xe9*\
+\x88\xad\xc0\x88\xa3\x92\x81\xf7\xf4\xd2\x90\x81\xcc3\x03\xc8\
+\x22/\x14@y>z\xb5A~\x05^y}\x87[\
+\x85l\x8e\xe5\xfec!\x83\xdd\xa7?\x91\xf3\xe1@\xc8\
+\x8an\x05\xbc\xdd\xc1\x95P\xe3G8\xe7\xbe\x97`\x94\
+\xb0\x95p\xf1\xbe\xa0\xce\x12\x0cX\xd5\xf3>\x8b\xcc1\
+{\xc5\xcb\x8e\xd1w\xecf\xae#\x16\xfb\xe9\x1bB6\
+H}Ma\xc8\xf3Pc\x82;9\x16n\x03\xd7\x05\
+)\xa7\xf79\xcfK%\x14\xf8Q\xe9\xbfT\xa2]\xc0\
+\xaa\xb2\xce\xbf0\xa5%[\xc1*a\x93\xf7+\x81\x86\
+\xe5\xb9\x90]\x10b\xbd\xf7\x99>\xf1\xfeZ\x13\xcc\xa7\
+\xcf\xc2\xc6B\xa2\xfb\xaa\xe1\xf9I\xa48\x97\x17\x0a\x19\
+\xa0\xfc>\xa7\xebm\xfb\x9d_\xc4\xf1e?qR\xa4\
+\xfe.\x081\x8e\x96|^\x85\xc4\xe2\x17\xf2\x17\xd9)\
+\xf6:[\xe8\xa6_\x0a\xd9*\xda\x87\xff\x152\xb4&\
+\x05\xa7\xd0g7\xa4\x5c\x05\xc4\x9e\x87@\x93\xa3\xcdo\
+u\x9f\x8dl\xaf\xceg&,*Qc\xbf\x09\x18\xda\
+|\xf1\x22k\xd5j\x02\xd2\x9d\x9f\x87\xb3\xaa\xd6U\x22\
+.\x03\x84\xc3_\x87\xfc\xffTDM\x19b_%4\
+\xfc\xbd}) \xe3\x8f\x0aX \x14\xec{\x01\xa9u\
+\xb1\xee\xf6\x8b\x80\xc4z\xb1\x0f\xde\xf7x\xe3\xe2\xfa8\
+\xc5\x1eh\x09\xc8z\x0bAO\x5c\x08\x84\xe9o\x15}\
+\xd7\xeb\x1c\xf8\xff>\xef\x1eb\x00\xe2@\xe2\xa0\x93/\
+\xd2\xbf\xde\x8f\xdd\x00\xd9v=\xf4z\xe72\x10\xc8K\
+\xbcK<\xd0\x7f\xec\xbc\xcf\xf7>\xec\x9c\xbf\xd32\xda\
+\xa74\xf0\xdb|\x89\x9bz\xbc!n\xc0\xe9a|\xbb\
+}\xe4\xf3\x5c_\xaf\xd8{\x9e\xfc\xcd\xff\x89\x0b\xc0\xf3\
+\xee\x7f\xe7\xf3:B\xc0\x17\xbd\xd1\xa7\x9e\xf8?\xf7\xd7\
+\xed\x89\xeb\xf6\x9cz\x22\xa2%(j|\xa6\x04\x1bh\
+~\x9f2\x873\xc4z\xb4\x02F\xc5/\x125\xc7#\
+\xb9\xa5G\xfa\xf5\xbb\xdf\xce5\xe0<B\x04Bd4\
+$Lq\x0c\xf1S\x12\xe1\xc9\xbe\x1c\x99>6\xcb\xe9\
+\xc7V\xaaK\xa1 \x0dqp.\xb3\xd4\xe2\xd6\x00\xe1\
+Z[E\x93\xe3\xb3\x98\xa3\x07\x0c\x0fd\xcc,]h\
+\xf8~\x1cO\xb7\xdf\xc8\x00\xb5\x02,\x0a\xf8\xaaC\x0f\
+\xa3\x0c\xa4JN\x18\xc0\x7fL\xa8\xf7\xa3\x06C\x10\xcb\
+\xf1\x91|\xb0g\x0d\x81\xf0_-\x93\xd3\xd7J\xdb\x13\
+\xb6L~\xcd\xafe\xa8\x92$\xa8\xd8s\x050 \x98\
+*\x8f\x16\xda\x06\xa4\xe8d\xae:T\xa5\x7f\x1do\x1c\
+\x9f\x9f\xf7\x8a\x7f\x7f\xedl\x986\x8euw\xa0!3\
+\x5c\x0f\xc3\xcd\xc1P\x01Ir\x9d\xca\x5c\xeb%\xfc\xa9\
+dIW)\x02\xad\xd4K\xf7\xfc\xac$q\xb0\xb3\x02\
+[d4\xdf\x95\xa4ww\x08\xd9\x02\x93\x0a\xf8r,\
+N\x8d\xc32.\xefWB\x16\xc3\xb7\xf6h\xdfg\x0d\
+\x94d&\xf7\xf7]\xc7\xde\xed\xaf\x182$\xb0\xb4b\
+\xbc{\xa1\xa7\xdb <'/\xa0\xea5\x11rRN\
+\x19\xf8\xb5\xdc7\x01uz\xf4\x22\x1b\xe7Dg\x01E\
+b\xc9`\xc6\xa7\x0cdj \xa6\x8b\x03\xf0\xfa\x9c\x0f\
+\x1f\x8e\xccMB\x06\x07\x9b\xa1\x02\xbd\x05\xb1{]\xc8\
+@.\xf5mIZ\xf9\xe5\x95\x9cO\xd2\xa8\x02\xff\x5c\
+\xbfB\x5c +Lva\xc8\x87j\x91\x91\x89\xe4\xb8\
+\xeb%\xc7B\xaf\xf7M \xaa\x22e_\xe7T\x86\xaa\
+\xc0\x81B\xabdd\xa6\xbdH2\x7f7+\xca\xa6C\
+\xe8eTYR)\xe2\xc8\xf4^\xdfoL\x87\xe1\xbf\
+\xd2\x80\xc9|3P\xd6=\xa7p\x147\x81\xfd.`\
+\xc3\xe9`\x9c\x99\xfd\xcd0v(\xde\x97\xd2\x80\xe7\xb8\
+\xb3j\xb9\x00u\xceqN\xd3\xe9!\xc7B\xb7\xca1\
+\xf8\xd7t\x9c\xb4\x14\xf9\xbc\xb7e\x80\xa5E\xe0\x0f\xd7\
+\xf5\xe4\xa8\x96\x83,\xf3\x0e\x8a\xc9\x00\x08\x18s\xaez\
+\xe9\xd3l\xd5\xaa\xfbMGz\xff\xa8\x90- \xa9\xc4\
+\xcee\xf3\xf9\xbf(\x11./K=\xef\x8b~N\xee\
+\x81\xc3i!\x1bD\xb6 \xe4\x02F\x0e\x005\xa6G\
+;\xd7C\xc2\xa9\x12\x02*\xdb\x1cd\xad#\x0cf\x06\
+\xaaH\xc1\xf4\xb4W\x05\xdf\x98P\xbd\xd4ZsRm\
+\xee\xee\x1b\xb2%f\x04L\xf4\xcb\xe1\xe2!\xc3\x18\xb6\
+DlTbB\xa0\x9e-b\x95`\xca\xcao9x\
+\x1c8\xe3\x85\xb2RR\xe3\xca\xf4(7r\xd4\x22E\
+\xc5\xc5a>0\x08yB\x93+A\x91\x5c\x09\x15\xd8\
+I4q,\xe89\x10\xf5\xf7\x84\x0c\xa4\xad \xceX\
+\x88\x9dc\xad+ \xd7\xe6\x92Kd<2\x11>\x02\
+\xa4s\x87\x0cco3 \x86\xa0;\x5c8d@t\
+\xa4\xdd,27z\x86#\xd6z\x98K\xbf\xaa\x94\xd9\
+\xd78\x04\x9c\x87$\xa1-\xa8;\xce\x03\xbd\xe0ml\
+\x13\xb2\xc4Jd\xd1\xbf\x02dzN\xc2\x0b\xa2%!\
+\xbb\x02\xbb\xfd\xdbB6\xa4\xdct\x9e\x90\x01\xaa\x0eY\
+\xc0\x1f\x11(e\x02W\x80S\xd3\x84\x8c\xbf\xbdk\xc8\
+\x10\x90C\xc6i\xd1\xbcW\xc8\x80\x0c\x91\xc0\x81\xac\xd1\
+z\x83$\xcfT\x0b\x08\x82\xbf_[\xa7\xcaqT\x88\
+\x01\xad?\xff\xb4\x16|\xf2y\x144\x9f>J\xfdQ\
+\xc8\x06\xef#\xd0\x93\x08\xb2\x8e\xde?\x03\xdf*\x04)\
+D\xf8;~\xa5\xc4<\xbf\x8a=\x87\xa4\xe2'\xb1\xcb\
+*\xeb-\xa1P\xc8\x0c\xfb'\x13\xebUx\x90(t\
+\x9e\xd9\x0d\xfeQrET\xeb\x11\xae$\x81W\x0fd\
+G\x92\xdfq\xba\x8f\x9e\xfc\x9c\xfeT\xfb\x9b\xfdG\xfa\
+\xeb\xbc\xdb\xdfZ(\x15\x0a\xb4\x92H \xd0K\x02K\
+\xeb\xe9\x5c\xf5\x16\x00\x81\x89\xca\xbc\x96Q\x09\x19\x01\xab\
+qq\x9dm\xde\xf5\xaaD\xf7^t\x09nv\xd4X\
+\xeb\xde\x22\xe0<\x08\x90\x5c\x9f\xe7\xda\x03;\xaf=\x10\
+\xecd\x81\xf4^\x1bOWP{z\xaf\x93\xf0\xf5\xc0\
+\xdfzj\x81\xb0\x1e\x12#\xa0\xe4\xf6U#\xf135\
+\xa5\xec\xbc\xcfm\xef{L\xe2\xa1\xbfo\xe3\x88\xaa\xc0\
+_\x02\xc3\xfa\xf7\x04\x07=\xe6s\xed\x07\xcf\xdfz\xdb\
+/\xbd\xa2\xcep\xda\xbf\xfc\x18\xfb\xdduz\xedd\xad\
+\x9d\x85\xbfW\xf8\x8fW1\xef\x09\x00\xfe\x8c\xbf\xeb\x08\
+\xf2\xbe?|\xf58\xc8\xf9\xa4_\xda\xf4\x85\xe3\xb60\
+X/\xf7)1\x9a\x7f_\x08?\x10\xfb\x13C\x86\xa9\
+\x1a\x09\xb9W\x00-D\x1cD5\x92d\xfa\xd1u\xfa\
+\x9e\xfe\xb7\xbe\xae_bJ\xa2\xc8s\x96\x10p\x1f\xf4\
+\x90D\xf7\x83\x169\xe1\xe8_\x86l\x88Wv\xe3\xc8\
+\xfe\xed\xb3\xfc}:\x12\x1f\x1e\xd8\x95C\x0d>;Y\
+Z\x1f\xb7\x8d\xaf\x8b\x8e\xd7\xe93Ya\xc1\x06;\x90\
+\x18M\xaf\x9a\xe5\xd5[\x05k!\xd9\xf8\x8f$;\xba\
+A\x1b\xb7\xf7\xc9a\xe3\xc5v\xf8\xea\x10\x80\xb9!\x8e\
+\x12\x08{\x00\x98\xfezP\xdc8\x08\x90\x15\x06g\xf4\
+wl=\x94\xd5\x03\x1b\x7f\xff\x0fC \xe1@R \
+\xe6(\xca\x80\xffV\xc8\xd0C\xf7sk\xaf\xfc\xe1\xf4\
+\x15\x9a1\xbdxz\xc9\xf4\x92s \xfd\xa0\x80{\xc5\
+^\xe0\xde\xd9\x8d\xbd\xf6\xc0\xbf\x8f\xe9\xf3Z\x1en\xfb\
+\xb9\x8d\xe4\xf3\xfc\xbcCM\x1cP\xd7\x9b\x1b\xac\xd67\
+Y\xea\x8d\xdb;\x5cvu\xb89\x5c\xd3\x9dB\x06r\
+#smA\xf4\x12A\xb2\x7fS\xc8\xc6\xfa\xbf\xfbP\
+\xc8\xe2\x18/\x19\xee\xe9E!C\xef_\xf6zW\xa0\
+\x80D\x0e\x09Q\x06\x0e\xd3\xe7B\xe6\xf7;\x1a\xb2A\
+\xf6\xf6\x8f\x0f\xd9H{\x0e\xa7\xce\xf2#C\xa5\x8c#\
+!!\x14-#\xd7\x19*T*\xba\x1c\xf5\xa0\x88\xba\
+\xe3Py1'9\xcc\xc1\x07\x93<\xec\xe4a\xffG\
+\xddr \xcd,27\x95\xa0\xdeS\xef\xfb\xf8\xeb7\
+\x0e\x07]\xaf\xb51J\xd9C\x5c\x95V\x10\xc7_\x0b\
+\xd9\xc8'k\xba\x82\xa9\x0b\xee\x97\x83\x7f\xad\xac\xfcg\
+\xcb\xc4\xbc\x06k\xa569\x17\xe6\xbf]{\x11\x9d\x07\
+\xe7T&<\xc7\xe5i\xbdP\xf1\xda=o\xf7\xdc\xdd\
+s7\xa8v]'E&\x13\xaa\x07\xda\xf3p\xff\xdf\
+\x90\x0e\x94\xf3H\xf1\x9a\x03\xf2\xbe\xac,\xa8\xac=4\
+{M%\x02\x9b\xe3\xbf\xffR\xc8|]\xdf\x142\x04\
+\xa6\xc6\xa4\xe1$\xf0ss\x9fA@9F\xe7I\xc3\
+\x93\x81j9P\xf4\xe3\x1fe\xa2\x89\x81d\xd0\xe9\x03\
+\x81:\x92\xbb\xf7\xad\x0e\xe4\x1c.-\x89\xad9\x08[\
+\xa7|p\x84[\xe5\xa2\x0c\x12\x07\x0c\x94W/\xe0\xaf\
+%\xc9\xd9?e\xc6\x1f\x14\xfa\xde\xeb\xf8\xac\xc3y\xd7\
+\xe7$a\xb7{l\xc8p\x9d\xcfM\x07\xf4\xd7r\xcc\
+$\xc7\xaag\xf6o\x9b\x09\xbc\x87gbG\xa2\xd8\xfb\
+pD\x8c9\xcd\xc4`\x194\x09\x12\xad\x01\xd9\xe2\x22\
+!X=\xd7\xf6\x03\xc8iV\xe8\xcb\xb1\xe1\x98%\x02\
+\xa0\xc8l2\xc0\xae@\xe7\xd3!C\xc0\xaf\x92(@\
+`\xf8%4\x91\xfdeB\xaa\xb8\x0a\x04\xf4\xc6\x01Z\
+\xff\xec5\xaeV\xa6L\x90\x97#\x00z\xa7'>\x1d\
+.\xf7[\x81\x12\x16t\x81\x96\xc4\xf1\xef.\xb2\x05\x1c\
+\x02\x1d\x09\x8a\xdb\x85\x0czJB\x0fi\xdb\xe7C\x86\
+^\xe2\xadgq\xed\xa15\x1f<\x03k\x9c\x00\xc7\xb0\
+|\xab\xb0\x1e\x8a-|\xd1g\xb5~\xf6)\xf2\xca\xeb\
+\x84\x0cS\x1b\x92\x83\xc1\xf4\x8dJ@\xe2\xaa\xe0\x00\x0a\
+\x0c$\xee\x9c?\x0e\x1b\xd2?\x81\xbf\x845D\x04\xf2\
+G\x89\xdf\xb4\x07\x90\x0d\xd5\x1b\x9e\xa4\x7f\x87\x9b\x85\x0c\
+=\xef\x12\x99\x02\x17\x0e\xb2\x16/\xdf\x83\x12\xe7\xd8\xb9\
+\xb2\xafI*\x5cc\xeb\xb4@i\x0d\xdcZqV\xc4\
+\x9a\xe7\x0b1)\x90\xc6\xb1\x83kH\x05:{\xd8K\
+\xffArq\xd4q\x1fh\x11\x90p\xfb\xc1\x90!a\
+\xa0r/\xb0s>\xb1\xcb\xb3\xb7\x100\xa6\xd9\xd0c\
+9N\xb2\x10$\x1d\x02\xcfq\xef=\xc5\x99\xd0\xab\x16\
+\xbf\xee\x87\xf0\xbb\x129r\xb8R\xc8\xd6\xeaP\x89\x8b\
+\x0c\x9c*\xa1\xdd\xc7f\x09\xc4\x05\x12\xec\x03\x8e\x03\x5c\
+\x0e\xf41\xc8=d\x8cD\xa6u\xed\xad\x19\x1c\xeb>\
+6-\xcf\x97q\xba\xf5\xff\xce\x1f\xbb\x0e\xa9\xe8\x1cK\
+\x90v\xe4\x12}\x09\x09\x06\xb1g\xdc\xb4\x02N:\xf2\
+\xa5_\xf4\x0c;?\xf6\xad\x1er\xdc.\xf9\xdc\xaa5\
+\x92\x9d\xa6O\xd8\x81\xce\xf5\xa3\xd2\xa82,a\xae\xb0\
+\xc1~\x99\xf2b\xbf\xe6\xff\xd5\x18\xcd~}\xddO\xed\
+_\xf6\x89\xeb\xa27Tjq[\xf5\x9ew\x01p\x1f\
+\xbf'\x80\xee$y\x90m\x12\x07\xfe\xdf}\x8a\x1b$\
+\xda\x9c\x8b\xb47\xc7$bA\xb4\xad\x8b\x9fw2@\
+Sf\xb4D\x09\xf0\x04\xfc>_\xc0\xc7\xdev.\x06\
+\xd7\xe7\xfe\xdcw'\xb9\x13\x1ft$\xb1/~\x87@\
+\xda\xfe\x10h\xba\xfeN\xda\xd7\x9fW\x1f\x07\xd8[\x00\
+\xfc\xbe\x93\x16\xf7)\x04\xe2\x9d\xe3%\x00:G\x96\x84\
+\x81\xf3\xe9s\xb5bd\x01\xa0\xd6\xa9\xb7\x98\xb8\x1e\xf1\
+\x94\xd6KH\xaeD\x86I\xfcV\x9c\x069\xaf\xa5R\
+\x5cJ/\xba\xbe\xeeg\xf1\xff\x5c\xa7\xfdk\xbd\xfb\xfe\
+u\xbe >\xe8S\xd7a\xbd\xec\xe7\xf4\x17\xe6(g\
+\xf1\xdf\xf77\x0aY\xfc\xa6\xa5\xf5\xe9\xc8\xd1\xcf\x87\x0c\
+\x99\xab\xd8\xc6\x1fI\xc3\x13\x8e\xdf\xedC\xe6\xd7\x8f\x87\
+\x0c\xe4\x13nL\x86\x92a\xb0qA;\xc7\x00\xf9\xdf\
+\x87\x83\xfe\xb9\xc5%Y/\xf43\xc3\x83\x88\xdb\x18\xc6\
+q\x14\x841\x80\xeb\xdf\x92\x95\x88\x08 \x9f9\xcb\x1f\
+\x0c\x9c\x04\xa1&\xaf\xb5\x8d\xfdY\x96a\x97=\x9c\xbf\
+\xb7\x90v\xcd\xb2A\xfd\x96\x8c\xcc|0w?<\xcb\
+\xa9[F\xbd8\x0d2#kL\xda\x02\x10\xbf\xfb@\
+V\xf5\xeb\xc9nl=\xf4&\xe9\xc1t\xc0<\x10\x0f\
+\xdc\xcf{+@\x0f\xecm\xc0\xff\xe9\xb5\xff}\x8ec\
+\xdc 3\xeb\xdc\xe7c\x0e\x0a\x83\x06\xb2\xad\x87\x1b\xb7\
+\xc3=\xd61I\xc5\xe2l\x03\xaa\xe82 YI<\
+\xfcv:z\xafHG\xeaR\x99\x89\xcd\xb9\xcc\xfb\x9f\
+\xde?d\xff\x90\x05Q\xb1\x90\x03\xee\xce\x15\x12\x95\xb4\
+\xec\x15v\xe0\xb1[\xbbNS\x1b\x1c\xec4\xf8\xbb?\
+\xde\xbdl\xf7\xb2\x0da \x90<|[HB\xa0^\
+\xb7%\x9a\xca\xb1\xe0\x80\x09,2\xa0_:\x02_\x90\
+\x0a\xf8\x03\xdbX\xa3e\xff\xdd$+*\x11\xc0=j\
+\x96G\x0e\xf3\xb5\xcf\x1b\xa1\xd6\x10pD\xe2\xe1\xd4\xa1\
+\x97P@/0\x87\xb4\x90\xd1\x8f]\xf1_\x03t\xcb\
+u\x81\x1eAL\xa4\xe3\xa0\x97\xb4\xa0\x91\x12o\xd9\xe3\
+;}4d\xa8\x5ckU\xf8\x96\xe4\xda\xd8\xe5>\xf9\
+h:p\x0d2Y\x08\x17\x0e\x09\xb2(\x81Z*\xa0\
+\xe9\x1d!K\xe0\xbf@\xffk\xbc \xa8n\x06.e\
+\xf8%XN\xce)#\x9e/}\xf3\x9a\x15\x9aX\x8e\
+\x11\xbdb\xdf\xbe6\xdfW@\xdc\xa0\xc2eh3\xe3\
+)\xb0\x9b\xfe=dpX\xdd\x17\xf2\xb9\x1c#\xa3\x22\
+W\x10f\x81\xd5\xfd\xd6@}\xd6\x1eK\x8bPq,\
+\xdc,\xcf\xcb[\xd3q\xbcx&\xfe@\xaf\x1e\x9d\x0e\
+9hlB\xc7O\xb8O\x06\x16\xa0\xf2\x0c\x0c\x03\xe4\
+\xfa\x1a\x99\x8f1\xa5\xa5g^4\xef\xd6\x17.\xfar\
+%\xd7\xd4c,Qs$d\x0b|*Q\xc7\xf1U\
+)5\x95\xc1\xe73P\x0c(C\xf2'9\xb6/\x12\
+\xbc\xaf\x1a\x02j\x15oP\xdbl\x95\xa8V\x1e\xad(\
+*H\xc6\xed9'*\xd9\x1c&\x5c!\x02s\x0e\x17\
+\x07\x14\xe4X\xaf,\x83i<!\xb2*\x81\xaa\xfd\x91\
+\x95\xa7\xc3\xf9C\xb6\xc4\x9f\xb9\xe6\xf6cU8\x05\xb8\
+\xa9\xcfkN:\xb2>\xfb\x03Y\x9aJ\x0d.\x05\xa4\
+\x81\x12L\xe9\x10\x17\x19\x9b\xeb\xa2\x07\xe8\x7f\x0e\xfb\x8f\
+\x87l\xeb\xb0{X\xc8\x90\xd9\x970\x11\xf0e\xe5\xa1\
+Z\x91\x12iS\xf3\xdb?>\x9d\xbe\xd8\xefO\xccn\
+\xd0'6\xf2\xc1Jp \xc3=#I-\xd9\x15\x15\
+;\xe4yz\x0a\xd9\x0b\xd0b\xd3\x07\x8c\x094\x1eV\
+O=\x04\x80u\xe5\xb8hI\x13\xd8!3\xc3\x85\xd0\
+\x13\xfd*\xba\x02j$\x8b\x19\xc0W\xe0\x94\x88\xa5Z\
+Oc\xfc \xae\x92\xc3\xa2Z\x08;I\x14N\x95\x8b\
+\x87\x0c\xd7\xaf\xa2s\xc3\x90A\xaf$\xd2gzZ\xc8\
+\x90\xa8\x90\xc8QI\xd4\x0b\xaaeO\x22\x1d4;+\
+\xdf\xeeo\xfa\x81\x90!`\x92H\xa5\x1f \xa8\x04\xc4\
+\x90Z\xf7\x09\x19\xb8V$t\xac\xbb\xc0\x19R*\xfd\
+\x01S\x1cT\xec\x0b\xe2*\x91\xad\xd0BO\xd1\xc3\x02\
+\x06v\x9c^\xd3\x9b\xcf~\x0b p:d\x02\xac\xec\
+6\xbdd\xbdZ\x00VSO\xe8\x97+\x84\x0c\x81J\
+\xaf<\xea\xa9\x15(\xf2S\xad\x13\x92\xcf\x0c\x04\xabe\
+\xc7\xba\x0a\xbc\x9c\x83\x1e\xa0 \xf3\xc4\x1d4\x92U_\
+e }\xcc}\x87\xa4\xb2\x12\xe3\xc8\x9a{\x85\x9b\xdd\
+\x13 J\x80\x09\x14$tr_T\xa2B\xc2P\x22\
+B\x80\x8b\x84L\xe5>\xa7Dh1*$\x96\xe7\xc6\
+_\x95x\x05\x89v~\xe9s\xfb\xdbs\xf5{\xdfK\
+\x9cI\xd4I4H\xa4\xd03\xbd`\xc6\x9fm\xbd\xd1\
+\xc7\xb4Ry>\x02\xa5>U\xc0\xf7\x12m\xce\x0d{\
+\x02\xc1 \xfe\xf1{\xc8.\x95ySt\x8c\x13\x95\xc8\
+\x948\xf2\xdcz\xcb\xc8\xf1\xc6\xffYW\x81\xbfu\x94\
+H\xb0\xff\xbd\x0aX\xfb\xcf\xd9\x11\xff\xc7\x0f\xea\x1c\x07\
+\xd6\x8f\x9d\xe9P\xf3NJ'a\xe1\x1c\xf1\xbbz\xab\
+\x85\xdf{.\xc7k\xed\x90\xb8\xfaR\xc89\x04\xc2\xad\
+\xa5y:o\xc8`\x97\xf7I\x06\xees\xdcOo\xb1\
+F6\x9e\xd3\xae\x22\xfaY\xe2\x1f\xf7C_[\x97>\
+m\xc2\xfb\xd0\x8f\xe2\x5c\x896\xd3\x82 \xac\xedC\xfa\
+YB\x11\xa2I\x5ck\xbfw.\xb8\xceA`\x9fZ\
+\xe7\xc6\x11Q\xf6\x10y\xa8s\x9e\xfa\x1d\x92\x8b\x7fS\
+cV\x13\xd1\x7f\xf8@\xb6Z%\xb2\xec\xc8\xd1\xaf\xce\
+\xf2\xb5\x0c\x80\x9e7\x04\xbc9\xa6\xaf \xc6\xffg\x91\
+m\xecS:2\xbb{\xcd\xf2}Ce\xc8\x86\xbc\xf7\
+B\xf3\xb6e4\x83\x84\xe3\x03[\xc6\xa3\xe62c\x9b\
+\x0c\xf7\xf3\x8b\x0d\xd2qd\xabD/\x01\xd4\xed\x07C\
+\x87\xfd6\xae\xe3&\x83\xa3\xcb\x10\xe7\x98\xa9\xc5M\xb9\
+\xc9F\x1eX\x8a;\x80\xaf\x7f\xb4\x05\x84\xd3/\x84\x0c\
+\x01\xa7\x00\xd9\x81\x95\xb9\xbcp.x\x92\xa9`9.\
+\xb6e\x0a\x18\xe4\xcfF\xe5 \x22=\xb4a\xfa\xb8\xa3\
+\xe3U\xf6{\xc0\xdf\x11\x04-S6\xe9%<\xabq\
+\x0d\xf8\x7f\x1b\x8ea\xe3\xb0\xea)L\x16\xf1\xaaL \
+g\xc4\xce\xfd\xba\xb5\x129==d#\x9b\xab\x00\xf2\
+\x0d\x99\x196\x8e)+\xcc\x87\xbf_{\xdd\xccC\x9e\
+\xb7\xeb:\xfe\xe8\x01\xd9ja\xdc\xa0\x03\xd9\xc7vl\
+\xac\xcb\x8bB\x9d\x9f\xda\x12\xf8\xecn\x152\xbf\xefc\
+B\x06C\xaf5!\x1c\xb8\xa7\xa6\xe2\xfa\xd4\xd6\x12\xb2\
+\xb8a\xc8x>\x9d\xfb\xed\xef\x86\x9e\xce\x08\xeccN\
+\xe7sfy\xf6\xf0\xbe\xc9)P\x09\xa5\x18Cx\xad\
+\xa1\x87\xcd\xfa\x824sl\xbf\xb2L\x80?{O\xda\
+\xe7\x06\x12\xc3o\x9f\xe5;\x86\xc01\x1d\xb4j\x0d\xc8\
+\x8a\x15\x87y\xfa`\xc8@*\xc5!\x069Ta\x03\
+a\x97\xe1\xb6\x1f(\x1a\xe4@\x1c\x9ft0*\x10\x83\
+\x00I\xe8{)\xc2LhL?\x1c\xb2\x18\xca\xf5\xbe\
+84*\xee\xae'*\x8a\x87\x01Y\xf0\xfa\xb5e\xa2\
+8\x0c^\x9c\x8e\xf3\x88\xd4\xb8\xde`\x909\x16}\x1e\
+\xaa\x8a\x8bq`9\xdf\xbb\x12\x13\x1c\xd1\x96\xa1\x9e\xce\
+\x1d\xb2)\xe2\xfd\xa3C6\x87\x12\xe7B9\x06\xce\xeb\
+\xb3\xd6\xf5\xa8\x9eO\x0e\xbd\x9e\xfcthK_\x22A\
+\x94\x90\xd9\xe6#\xaf\x95Yc\x95.\x96\xefs\xd2\xd9\
++8\xe5 \xa4\xe3\xb5\x04\x881\xdd\xe1y9~T\
+E\x22\xe7\xb3c\xb7\xdf=%d\x18\xd7\x95P\xf9\xc3\
+\xe33 \xe2\xd0v\xc7Y\x0f\xab\x84\xc7\xe5R\xff\xbd\
+?\x1d\x22\xe3.9|\x09\x09\xaf\xe7\x82\x1cO\x05\xd2\
+\xe7\xd0\x7f\xce\xb1/\x95@=\xa4\xaeW\xc6\x1b\xc4\x92\
+\xe3\xa1b\x9f\x01\x8esxL\x8fnKh\x80\xdc\x16\
+T\xfd\xbe!\x83#I\xef;\xaf\x89X\x90@\x04\xb9\
+,\x87YeO\xcb\x82\xe9*\x02/\x01\x16}\x0c\xb1\
+\x92\x09\xa0J(k\xe1I\x03_\x154\x10\xd3\xab\x85\
+\x0c\x89D\xe7CK\x8c\xc4K\x9e\xab\xfd7\x84\xcc\xcf\
+\xffz!C\xe0\xf6\x84\x85\xe7\xff\x84\xc3\xcf\x86\x0cs\
+\xd2!\xbb|\x81`K\xd8dk\xd1\xe1\x16!\xc3\xfa\
+z\xaeZ\xe7\x8c\xcfcG\x04\x1a\xec\x1f\xff\xc0\xbe\xce\
+sS\x15J\xf6\xb3\x93\x02\x82f\x0b\xb4L\x13\x00\x9d\
+\xe6\x98\xbf`\x91-1!\xe0\x80L\x80\xd0H\x84\x80\
+\xf1\x85\xbd7\xb9\x02\xe0H\xf0\x9ewp\xf4{%\x06\
+b0\x11Y\x95\xb8t\x1f\xf4\x8d\x96\xba;\xae\xe4\x8a\
+\xf5w\x10QZk\xf8!\xb8K\xf4\x86_+d\xa8\
+8J\x18{5\xe6WBGb\x83^\xd2\xf3\x0da\
+p\x8b\x90\xe1<:\xc7\xc6Vf\x8bU\xd9\xefLP\
+\xd4\xf9\x14\x00r\xa4\xd9g\xfeD\xda\xbd\x22\x15\xd4Z\
+\x90\x89\xf5\x0aH\x91\xb2z\xde\xe98W\xef\xb3\xe7\xa9\
+\xa7\x99\x1d\xc8\xfb\xab\x00\x9e\xc3n\xbd;\xdb\xbcVV\
+\x01)G:\xc9\x00\x8b42\xc9\xb7j\x9e\xbd\xfb\x82\
+\xec\xa4\x1f\x04L\xfc8\xaf\xf4\x9a\xc4\x9f\xc4\xa1\x80\x81\
+}f'r\x9cjM\xa7R\xf0\xe2\xcf\x09\xfc\x04\x0c\
+=Q+\x90\xf3\x1c\xd9A\xfb\xde\xba\xf2K<7\xe7\
+Q`kZ\x07\xbd\xe7}\xd9W\xd3?\x9c{\xf6H\
+\xe5Y/:\xb2A\xe7\x5c\x80\xd3{\xdc;G\x01\xbf\
+\xd4\xbaJ\x04t\xd27\xff\xe7\xe7\xfc\x8c^a\xef\xbd\
+\xf6\xbe\xa7\xcf\x90\xac\xa9\xf4\xb3+\xf6\x8d\xfb\xf6\xbe\xbd\
+\xf7Zb\xa0\xb70\xf4\x16\x83\x8e\x00\x00AG\xaa\xf7\
+\xee\xe2\x04Z\x03S\xeb\xe3\xfb\xf6\xb9u\xdd\xce\xbd\xcf\
+\x13HK<Hh\xf8=\x7f\xd4:K\xc8\xf5\x82`\
+\xff\xf2>}]:\xc2\xa0\x05\xb6\x15x\xf7D\x80\x80\
+\xd6ss\xbd\x9e\xab\xc4\xaf}\xe4}\x9d\xfb\x9e\x00\xea\
+\x5ci\x12m\xfc\x05\xebg\xfd\xad\x87}\xe1\xf9\xb8\x1e\
+\x09\xbc\xde\xc2\x84\x8b\x89\xbd3mJ\x01$\xa7\x9b\xed\
+.\x1b2p\xd2\xd8\x07\xcd\x0f?fz\x8fs\xc5\xff\
+\xea\x5c\x14\xa7\x87\x0cz\xda\xf3\xa0'\xeckc-M\
+\xff\xca\x16\xf69:[\xb9\xd8\xb4\xe0\xa6?{\xa4 \
+V2\x14\x14\x88\x0f\xd0C\xf0\xc7![O\xe2\xee{\
+C\xb6\x0c\xda\x89w\x0a\x19z\x17\xcdO\xcd\xb9\xb9\xa5\
+\xa0(n=\xb3\x12\x02\x99i_n\xff\xcc\x06\x09:\
+$\xf4\xf5\x0d\x1b\xb4M\x22\x00$\xb6~\xaeg0\x13\
+\x16 \xed\xcb]\xcd\x06ww?!\xc3\xa1\x00\x00 \
+\x00IDAT\xc9Y.1\xb0\x7f\x9b\xbf\x9b\x99\xf8\
+\x1a\x8b\xd2\x0c\xc3\x90\xc1]\x1d\x8d\xc6\x9aY\x19\xc1$\
+%*\x87\xa0g\xc4\x5cWg\xcft@\xbdo\x0f\xf4\
+\x8f\xc7!\xd0\xb9\x04\x90\xe8\x1c\x1dZ+\xber\x0e=\
+:\x0e\x86\x8a\x22\x05\x9e\x95\xec\xfd\xcb\xf6/\xdd\xbft\
+s@*\xa1\x91\xff\xa7%b\x0e\xf2\x17\xc32}=\
+d\x08p8\xe2ypk\x0cS\xb2\xc0c\x89>\xbc\
+%d \xaf\xba\xe3\xda\xfbv\xf8\xb7T\x80\xc8\xb6\xee\
+\xben\x5c\x88\x94\x9a\x07\x9c\xff\xb7\xd4\xd1g\xc3\xb8\xfb\
+\xcb\xdd\x1bwo\xdcH\xb58\xc2\xd3[gyK\xf6\
+Z\xdeeHTH|\xfc\xed\x92\xa2X\xaf{`\xdb\
+]\xcc\xe7\x19\x03\x14\x152\xc08\xcc8vc\x80\xa9\
+\xd2-C7\xce\x83\xfdH\x92\xe7=z\x80\x1a\xa7#\
+\xbf\xf4*_p\x81x\xae\x8e\xdb\xd7\xf29\xa5\x81\xd0\
+R\x80\x04\xaa \xb3Y1\xady\xcfw\xcdq\x8e\xf6\
+eBxg\xa3xvEh_\x9c\x91\x8a\xe7\xf44\
+<9\xf7\xfc0\x85\x0cdi\x10\x1f\x10/\x12\x0e\xe9\
+h\x83\x06\x16\xf4\xd5\xfem\xe42\xb5\x0f[F\xbbH\
+\xd0\x04\xda\xa9\xa8\xcc\x81\x9f\xcf\xc6j\x18\xde\x93\x81r\
+\x1f'\x85m]O\xe3\xfd\xd6\x1e~$(\xd5\x9a\xd0\
+{\xe2\x04\xba\x999\xd5\x9a\xa2\xc7\xbe\xc8\xf1T\xa2\x9d\
+O\x15#\x09R\x10q\xe3\xedTh\x1c\xd7\xcc\xc0V\
+\x0f7\x03\x9c\xf7\xb5\xe0P>8T`\xe8\xe3}\xee\
+\xc3O'$=\xd9\xe6\x0fW\x09Y\xeek\xed\xd5\xc6\
+\x86\x7f\xb1\xc3E\x0f\x17\xddZi\x8a\x9c\x10\xe4Y\xa5\
+\x91~wN\x05\xee\xf4\x90\x00$\x03\xb3\xe9\xd1\x81}\
+\xd9\x12<\xc6(\x16W\x87\xdeU\xfaS\x80c\xbd8\
+\xac\x1c \x06\x9eC\xc5 K\x1cd\x02\xa7\x02)\x95\
+vv!\x13C\xc5yq\xf7\x15\xb1Tc\xca$\xb4\
+\x04\xb2*iw\x0a\x19\xa6\x8d|o\xc8\xa0\x179`\
+\xf4\xae9\xbaz\x88]\x87\xf1\x86\x10\x0e\x12\xd0\xaf]\
+\xa4\xa6%\x94C- \xfa\xd6\x90a}sz\x81\xf3\
+\xe8s*\xd1\xf0\xf7!\xc3\x186c\x03\xbd\xaf\x169\
+\xe4\x8a\x99\xf9\xdf\xffl\xc8\xfcz\xe7\x90\xd9>?9\
+d\xd8\x9f\xa9\x87+\x90V\xd96\x8d\xc2\xf4\x86$\xfb\
+\xdc\xffz\xc80N\xf0k!\x83#,\xe0D\xaa\xe9\
+<B\x04\xf9\xbb^9\xe4\x10A\xa6\x08\x00 _\x8c\
+-\x03}75D \xaf%\xc6\xff\xd3\xd3\xc8\x03%\
+\xf83\x10-$@\xda\xe1\xd2\xabX\xe3}u\xf6r\
+\x096d\xae\x90\x86\xf4[\xea\xcd\x0a\xb8\xb4\x90H\xf8\
+t20\x8e_\xea\xf7\x22\x17\xe40\x0a\x0c\xf4\xaa\x0b\
+\x14U\x8c\xd9m\x81\x9c\xefU\xcc\xf9\x1b\x90h\x02\xb0\
+\xb47\xe6g\x97~\xf5\xf7\xdeOBN .\x91\x0b\
+\x11\xe8>\xe8\x11\x01#(,?O\xc5\xdbs\xb5\x1f\
+ 6\xd2\xfeW\x02\x09d\x1fR\x8ec\xae\x05\x8b^\
+T(\x10@\xd0\x13\xfc-\x81?\xfb+\xd0\xb3\xff<\
+W\xcfK`\x82d\xd5\x94\x0c\x81\xbdD\x1f\xbb\xea\xf9\
+\xf9\x9e\xbeP)\x94\xd8\x93\xe8\x17\x90#\xcbt\xdf\x9e\
+\x1bH;\xe4+\x92^\xef\xdf\x02^P\xe4\x9a\xde\xa0\
+E\x91?\x03\x81\xcb\xbf\xec\xfb\xc8u\xd2\xd7\x10M\xce\
+\xb1\xcf\xb5>\x9d<M\xa0\xad\xa5\xc1<v\x08F\xfb\
+\xdd\xba\xdb\xd7\xbd\x10\xe59\xb0\xc7}\x8aRg_\xf7\
+\xf3\xdek\xde9}\xda\xfc\xf7\x22\xf3k\xadk\xc7\xb0\
+\xfd\x0b\xc4\xdc\xa7\xfd\xed\xf3\xed\x07\xd7\xdd\xc9\xf1\xf8W\
+\x90sg\x84\x9c\x03\x09\xa7\x00\x9e\x1f\xce\xefq\x1d\xde\
+O\x00(\xf0\xefc\x03]_\xbf^\x5c\x08\x90/>\
+\xbf\xaf{\xee\xdb\x0ap7\xbfp]O\x810\xfd \
+!-\x81\xe1}{E[\xc0\xde\x13\x00}\x1c\xa4\xf3\
+\xeb\x5c{\x9e\xae\xb3\xb3\xf5\xf3\x1f;\x89`\x87\xc2K\
+\xc4\xf9\xde~\xe8\xcf\xc9\xcf\x9b?x\xcc:\xb5\x82m\
+\xedw~\xa0i[GB\x86@\x1by\xac\xf5\x85\xf8\
+\xf3y\xfc\x22z.\xd7\xa5\x9e7\xa4G\x9f\xc6B\xdf\
+Zw\xe7\xd4\xbag\xc2\x7f\xfaJ\xc8\xfc\xfa\x96\x88\x80\
+\xb6)Q\x87\x0b\x86\x04\x09 \x88q\x98\xe7\x0f\xe4B\
+\x1e\xdd\xa0\xf66\xd0\xd2k\xfc\x82\x84\x02\xcf\x01\xf5\xfe\
+S\xb3\xcc\x1byw\xfdYf\x85\xb3\xbfn\xc8\xfc\xfd\
+\xbbCr\xe3\x9c?3\xd0\x17\x1bz\xe3\x1e\x95\x8e$\
+\x12\xb0p?/\x90\x19\xd9w$d\xeaF\xb91O\
+\x1c\xe6\xb2\xcb\x80!\xe7\x8b\x80\xff\xbe\x19\x08\xdd \x15\
+\xf6s\x87\xca$\x87A\x056\x8e\xd9G76\xd5\xe9\
+\x19!\xf3\xebkB\xb6\x9e\xd0\x82\x1a:\xf0\x0eD\x1f\
+\xdb'CGqg\xe5Ce\xa8z\x02A\xb4s~\
+}\x19\xe2\xad\xd7\xf9\xec\xbd9 \xb1\x1c\xf3^\x01\xef\
+\x5c\x01=\x83\xda[\x09\xfa\xfb\xfb\xe2@\xea\x05MG\
+O\xa5v\x0e,\x16$\x08\x16t\x81\xc4t\xc6:O\
+\xbe\x0c\x22\x85\xf5\xe2d\xb1\xbfz\x8e\xb3\xa28\x90E\
+\x9d\xb9\x92\xd9\x81(\xd7\x81JG}\x7f\xb7\x90\x8d\x15\
+}w\xf1\xdd\xcdw7\x8f\x83\x96\xfb\xe6>k\xe0t\
+\xf8\xee\x90\xa12+\xf3\x85lG\x86\x0fD>\x8e\x13\
+\xb6\xe6O\xe7\xef\x07\xc5Z\xad(9\xe5b\x81\x1e\x9d\
+4@IUz\xa2\x92\x19\x95\xbdW\xcc\xf2gC\x00\
+\xeb\xe0\x81\xec\xab(q\xac\xf5*\x87c\xff\xa2\x01\xf2\
+\xe9 \x83\xea\xcb\xc0\xaat\x80\x96cE7- \x03\
+\x8c\x1a\xb3f\x1d@\xd0\xbf\x92\x86\x91\x02\x7fg*\x0e\
+\xcfC\xe0i\x7fS\xe0zg?\xbb\x1a\xac\xd9\xbd\xff\
+\xfa\xe1\xeb[E\xaa Yzy\x19\x98\x9f_\xc7\xe4\
+M\x97J\x96\xd4\xbbg\x0b\x8c\x0ae\x83P\x95\x03\xd0\
+Yw9f\x10\x08*\xb6I\xbag\x1a\xc7\x1cd\xaf\
+\x0e*\x92\xbcdu\xaeJ\x0b\x92=\x90\xd0\xaf\xa6\x82\
+\xe4 \xba\x7f\xeb-\x13\x9b\x90\xe6b\xcfW\xe9\xfcb\
+\x06\xc6\xef\xad1<\xebu&\xe2I\xeb@U\x98\xf4\
+t\x0a\x14\x19f\x09\x84\x1e\xf8\x1c*s\xbd^\x17}\
+\xe5\xfc#C\xcc\xa9\x19\xd5KO\xf1\xcbD'\x1b\xfe\
+aZ\xc7\x9eM7\x0f\x19>/\xf7UA\xd1\x93\xc4\
+\xac\xd6\xd9>\x80\x10I$B\x8d\x81\xcb\xd6\x91\xe2@\
+1\xad\xc2\x18/d\xad*\xd7\x9d\xd4\x8dC\x88\x84\xea\
+^\x8bl-\x13\x9d\xe5Z\x80\xfe\x96\xc3[\x0fo\x1d\
+\x127\x02\xe9{N\xf7\x98\xeeq\xec>\xa9V\x08\x09\
+B\xeb\xc0\xe0'I[U\x92\xe9\x09\x8e:\x07\xd4\xfa\
+\xe6y\x0dj\xd3\x85\xdc\x14\xe48\xedA\xf5\x04\x1a\xe3\
+g\x1d9 \x02I\x89\xa9SB\x86\x8a\xb7D\x96\xfd\
+\xa3\x22\xaab\xeb\xff\xb2%\xa0\x8f\x09+{\x03y\x80\
+E\xdc\x98\xb3\x18\x87\xfa\x90-Q\x0f\xba^\xcf\xc9\xbe\
+\x10\xa8f\xa0\xb7\xbfc\xc8\x90\x18\xce\xc0\xac*\x11\xf4\
+\x98\xca`g\x07\xd7\xe3\xce>\xb0{*\xb0\xce\xb5\xc4\
+\x0f;\xeb}\xd8\xc7\x87,\xb2\xed\x1b\x01\xbeJ\xb7\xf5\
+\xe3 \xf9\xbf\xb1\xa5\xf0\x5c\x83\xe3%\x11\x86\x13\xc4\x18\
+J=\xf0Z\x11\xe8)\xc8?z\x0c2\x0c\x09\xa9\xb1\
+\x9b\x12\x99\x12\xda\x89\xfc\xa9V\x0d\xf7\xc7\x01\x05M\x87\
+ \xfb\x99\x90\xf9\x98\xfd`\xc8\xfc\xff\x9fM;+\x11\
+\xe0\xfe\xadc\x06\xea\xb5\x8ez\xb1AO\xb3\x90\x03\x1a\
+^\x15\x7f\xfb\xda}uR8\x01*H9\x7f(+\
+\xf6\xd5\xcbo}\x1b\xc2&f\xa4,SR\xfas\xa5\
+\xcf\xf4,K$C\xce$\xb7G\x8d\xeb3]%\x91\
+\xa6\x95\x08\xca\xf5\xabD\xaa\xc0\xc1\xf5\x08\x04z\x02\xa0\
+\x8fQ\xe3XkE0\xdeT\x8b\x0e=l]$6\
+:\x94\xb7\xf7\xf0b\xe5\x97@\xc8DE\xad\x8b\x84g\
+\xaf\x14\x0b\x00\xda\xd4\xa0\xb2\xdb\xdd\x1f\x95p\xca\x00\xaa\
+\x9e\x0bd\x91}\xacE@E\x142\xc6\xff9\xf7y\
+\x0e\xea\xff\xfa\xd4\x02\xfeD>\xefj\x09\xf0<\xd9o\
+\xeb\xd0{\xd7\xed\x87\x1e\xa8\x09d\xfa\x187_\xf6k\
+O\x04t\xc8\xb9}(\xe0\x17@Y_\x89-\xd7\xd1\
+\x91\x01\xce\xa5\xd7\x9e\x08`\x7f\xac\x0b\xc4\x898 \x03\
+\xfaj\xc1\x12\xd8\xe3b\xea\x95y\xfb\xb3C\xd3;\xe7\
+\x02}\xdb\xb9\x0b\xfc\xbf\xeb\xb2\xff\xfb\xfb{\xa5\x87{\
+\xfc \xe1e\xbd\xecg\xf6%\xa7\xa2\xd4\xbe\xc4}c\
+\x1f[\xbf\x8e\xd4\xf0}\xaf\xd4\xfb\xdeu\xd9\xf7\xd6\xd5\
+\xfe\x99Z\x01\xb3'\x00\xfc\xbc#\x10\xec\x1f\xef\xcb\xef\
+\xb4\xce\xd6\xcf\xf3\xb1\x0f\x04\xfe\x9d\xbb\xc0\xfe\xd2\xc2\xa0\
+U6\x11a\xfc\xa3\xe9\x89![\x22\xad\x12\xca\xae\x83\
+\x1e\xe9\x89\x0d\xd7\xef\xbe=\xbf\xee\x1f[o\x08x\xe7\
+\xa7s\xaa\xb8~\xfeG\x22\x18w\x7f\xb9{\xc3\xee\x0d\
+\xcb4\x9c\xbb\x1d\xee\xb6!\xa7\x8e,=\x93\x17\xce\x0f\
+\xfeLfbg\xc3\xbd\xff\xb3Y^\xb19\x90\x0b+\
+\xeeC\x12\x92\xf5\xc2|}\xfe0f\xea\xee![\x0f\
+\xd7\xc2Z{\xcf\xa1\x22\x18\xea|\xb7e\xe0A\xc7\x17\
+\xa0s\xf4\x9c\x9f\x16\x92\xe3r~/\x1f\xdc\xf92\x00\
+\xba\xc507Z\x85\xd5\x83I\x07kv\x08\xef\x19,\
+\xb9\xc56\x9b\xa4X5\xfe\xe0F\xb3\xdcp\x98\x83\xfd\
+\xa4\x90\xad\x82j\xfeq9 \x16\x14K\xee\x8d\x02\x9c\
+=dr\xff&\x1d\xfa}\xf6\xa8|,\xc9\x81\xfc\x1e\
+\xb4O&H\xa0g\xfc\x91\x1eJ\x99u\xffg\xc3\xda\
+\x08*\x0c\x02\x96\x1e\xc0u2\x8e\x0e\x95\xf2\xff}\x1c\
+\x8b\x0d\x9e\x0e\xf1\xf4\xa7!\x83\x03\xfa\x8f\x99\xd94\xa6\
+\xe8\xce!\xcb\xd8\xb65\x10\xbd\xe4\xaa\x00\xa7\xa7\xadc\
+\x00w\xaf\x09\x99_\x1f\xb4\xfb\xd1\xdd\x8f\x0e\xbd;\xc9\
+\xb6]\x99\xc3tH\xcb0\xaa\x84g 1}2d\
+#\xa7\xdb]$d\xbe\xad7\x84\x0c\x8e\x0f(\x22\x12\
+\xaa\x9cF\xb0\xbfm\xc8\x16H\x16\xc4W\xe0\x9a-\x0d\
+\x8b\xc3\xf7\x81\x81l(\xc6\x80=}\xd8\x07\x9d\xe5\xf8\
+\xcbK\xadv\xdb\x1f\xa0sQ!~\xfc\x00\xad\xcf\x03\
+W\x15,\xac\xe7\xd92`\xac\xdf\x12\x80<g\x81p\
+\xcf\xb2A\x88\xca1}S\x22J8\xdaX\xf6\x9f\xbc\
+\xee\xdb\xe9\x5c\x09]\xb7\xcfO\xcd\xc0`\xe3\xf2X\x1d\
+\xe1\xffJ\x05\xc4\x11\x15\x90p\x00\xee\x15\xb2q5\x1c\
+nv\xb8\xe9\xe1\xa6K\x22m!5+N\x0c\xe4w\
+G2`\xa6\xc0U\x16\xae~\xb8\xc6\xe1\x1a\x1b\xe2\xa7\
+*\x97\x14{\x87\xf4Q\x8c\x02\x0c\xe3\x1a\xcd\x7f\x17`\
+rP)p\x06\x92B\x96h\x039\x96AM\x08Z\
+M\xad\xb0\xcf\xdc\xbf\xd7^q\xb0o\xb1o\x83\xc0\xa7\
+\xa32\x07\xd8+u\x871\x8d\x12\x88H\xc4\x18z\x15\
+\x14\x8e\xc4\x073@\xc8i&\xd3\xe5B\x86\xf3\x0e\xaa\
+\xcb \x9d\xf7\xec\x19^c\xf0\xaar+p\xcb\x9e\xf8\
+\x1ac\xc8\xa1\xfal\xaeC\x06\x16\xd3\xf3\xd7}VS\
+\x1eT\x82\xe8\x89\x97\xd4\xdc\xe1uj\x81\x80\xdds\xc3\
+Y@\xbfpxTDC\xff\xdes\xc8\xecC|I\
+\xb0\xb8/\x95T$\x99*{9\x8d%f\xb4,\x90\
+q\xfa7[\x16J\xef\x19\xfb\xa6\xe2\xcb\x0e\xa8\xf0c\
+{\xcf\xcaf\xcd\xa3\xa7\xef\x8c\x05\xc4}\x81l\xd0\xfd\
+z\x0e\x0c0\xc7\x1f\x84O\xa5_\xa0\x89\x94\x89\xc3\xde\
+\x1d\x11\xfb\x9f\xc3\xe1\xba\xe9-\x09$\x957\x5c4\x10\
++\x02\xa4\xd4\x9b5\x16\x94\xbd\xe0\xf0\xbf<d\xa8<\
+C,\xe8\x99\xcfs\x8e\x9c\xaf\xeeC\x85\xd8:\xd2w\
+\xf4\xa2\x16\x0e\xdf\xe3\x96P\xd1\x87\x18\xe4\x10\xdb\x1f\x12\
+\x03\xec\x13vk\xf3\xb8\xb5\x8c\x08 \xac\x8f\x8a\x9a\xc4\
++Hc\xafp\x08xU\xd2@\xd7\xf5\xf4\x82<\x0b\
+\xdc\xd3\xee\xa9\xc4\xd44\x07cO\xb5V\xf8\x1c\xfa\x01\
+\x19\xa0\x82\x02\xe8\xba)\x04\xe6\xd1\x1b\x1f\x07\x11\x93\xfa\
+li\xe9\xfa\xf6sh\xb5a\x97\xed\x8f$\x8f\xaa\xeb\
+O\xfb\xe5\xfd*`\x94@\x01\xa5g/$|$\xf8\
+$\xa4\xf4\xf6CJd\x85\xb8\xc6$\x22\x0f\xd4\xc2\xf9\
+\xbd\x8bl\xfbB\x00#\xe0\xf4}\x1f\x07fL\x1fD\
+\xcew\x85\x9c\x037\x80\xf3\x02\xa1!1\xeb\xef\x92\xbc\
+\xb9\x10>\xae\xdb\xf3t\xae\xd8\x1f\x81\x11\x07\xfa\xab-\
+\x01\xee\x5cC\x8aaw\x87\xd8t?H%!D\x8c\
+a\x15\xb8C\xb0\xd1C\x9e\x9f\xef\x9d{\xfa\xc3\xf5\xd1\
+\xdfZT\xf8i>\xb7\xcfSw\x8e\xe8O\x9f\xd3\x0b\
+>\xee\xcf~\xa2_!\x04 \xb7\xd8\x99\xee\xd7\x0a\xd8\
+[\x22\xa7Z\xda\xecW\xe7\xd7\xdf\xf9\xff~n\x9dK\
+\x15\x7f\x09U\xf6]%\x9c\x9ei\xfe\xa9\xc2\xdda\xf9\
+\x1a\xb8y\x8c\xf5\xf5\xb9\xdd\xcf\xf5\xbd\xdf\xdb\x8f\xf4H\
+O\xb4X'\xcf\x87}n\x89\x80\xda'\x02s\xf7\xef\
+~\xed\x07\xc8\x09\x7f\xe79J\xd4\xf1#\xd9E\xaf>\
+\xd7\xf58O\xf4$n\x00\x08\x91\xde\xbbn_\xf7\x84\
+\x06\xfdOo\xf6\x84S\x87\xcc;\x97\xce\x0f\x7fHb\
+\xc0\xb40\xeb\xec\xbe\xdc\x87\xeb\xf6\xff\xc7#\x03\xec\x5c\
+\x0e\xfc\xb9\x8e\xe4\xf0\xfc\x04\xfa~\xde\x13\x00\xfe\xafO\
+\x15\xa0\x1f$\x84\xecc\xeb\xe3\xf9\xd1\x1b\xfeN\x5c\xd4\
+\x9f\x93\x84\x92V#\x08\xac\xf4\x07b&WL\xe5\xda\
+\xdd,d`\xf9\xef\x082\xf7\xd1\x91\x10>_!\xd9\
+9\xf1\x9c\xfd^A\x8b~\xf0\xf3\x9e \xf3<!\xdf\
+\x15\xde\x7f&d\xbe\xce\xf3\x86l\xdc\x00G*0<\
+}\x01\x01\xd7X\xbfbM\xcd1f\xfb\x1b\xcfr\x93\
+$\x81ze>\x80\x91|\xe1\xedKm\xee\x84\xfd\x9d\
+B\x06\xa8r\xe4\xdb\xa3%\xe01!\xdb\xc2\x83&\xa8\
+\xd0\x0a0A\xfe\x19\xee\xddEC\xd2\xd1\xf9\xf6\x8d\xcc\
+o\xe1\x8e\xff\xa1\xcd\x11\xaf\x8c\xae\x0c'\xa8y@\x8b\
+\x9f\x94\x0eTT~\xee6K\x042\x8f[\xe4\x84\xdd\
+UC\xe6\xf7\xfdb\xc89\x8cY\xb9t:\x80\xc6\x06\
+\xe1\x08\x90\xd1\x01\x01yX\x8e\xc5\xcaqr\xd3{C\
+\x86\x8dD!\x09\x108\x94\x02\x00\x9f\xeb\xa0R\xd0\x10\
+\x01\xfe\x9eA\xb0\x81\x19\x06?\xefs\x5c\x8d\xa7HR\
+\x8cr8(\x00\x81\x98\x1e\xd5\x0c\x18\x0e\xa7&\x89\x93\
+\x1eL\xa4n'\x85\xcc\xaf\x7f\x142\xbf\xfd\xa5B\xe6\
+\xd7\x8f\xee>\xb6\xfb\xd8\xe6\x88\x1a\xb7\xb4\xff\xae\x90\xf9\
+\xf5\x07C\xe6\x9f\xff~\x22/n\x96l\xe1\xc8\xa7>\
+\x10\xb2\xb1\xda\xefn\x1c2\x8c\xe3\xd1#\x0e\xda\x9b\x8e\
+\x0fh\xea\xe1\xfc\x87\xf3\x1db\x5c\xc7\xb9f\x99\x0f\xdc\
+\xfeE!\xe9P}<{\xee~o\xe8\xe5\x1c+\xe0\
+g\x0c\x0aV\xc6\xda\xfa\xa4\x83[\x95\xfdx\xba\xbf\x94\
+\x01~\xb0\x8a^t\x96\x8b\x0c\xac\xdf\x0cm\x1c\xd3K\
+\xa6\xa1\xfel:\x8a\xef\xc9J\xe7k\x92\x9c\xee\x13C\
+K\x88^\xa3\xf7N\xef\x9b\xde\xb7\x19@\x10\xf3\xe9\xd3\
+\xebX\x91\x9a\xc6\xa1\x22o\x8c\xd9\x89\x09\xb9\xfeD\x22\
+\x22\xde\xb1\xf68\xd64\x01\x06\x97BKh\xfc\xfe.\
+!\xf3\xcf\x9f\xb6H\xbc\xef\xf2|w\xb7\x0d\xd9z\xea\
+\xab5\x01\x12\xe6\xbci(8n\x1dZGAu\xc3\
+\xdd\xa0[5\xc6\x0aT[E\x99AQ\xc1\xf6|p\
+\x13Xo\x8e\xab\x0c\xee\xed\x92\x9c\xeb\x05\xb9\xaf\xdd\xef\
+cB6hs\x05P\x144\xc3/a#Q\x04\xc2\
+\xca\x90&\xa2\xe3\x84\xab\xe4\xbe\x10hf\xa2\xa9H\x18\
+\x19R\x8e\x83i\x0b\x19\xb8\x14\x89\x99\xf3\xc8\xa1p=\
+\x0c\xa4\xb1a*c\x0c\x98Jh\x92\x03\x16$\xbb\x8f\
+\x91\xd1\xf3\xff\xd6\xacL>d\x1doV\x86\x93\xdeP\
+!x]\x22L.\x97\x150\x81\xe9I\xf9w\xff\x99\
+\x86\x94c\x02\xcakL\x9d\x9e_\x813\xfd&1\x03\
+R,@\xc4\xd1a\xbe\xf7\x13\x16\xda\xd6\xb8\xbf\xb5B\
+\xc8Q\x92\x00\x15\x18J \x5c0\x7f\x9e\xcfS\x22\x02\
+2\x05\x8bz\xbd\x8f\x04\x22\xc4Vf\xea\x05\xccAQ\
+\x1a$\xa5\xe5\x08\x1bW\xf8/!C\x00\xaf\xc5\x83\xfd\
+d\xf0\x9d\x7f\xfb\xd7\xfd{n*\xa9\xd8\xc8%\x84U\
+P!\xe4 \x02\xd8W\x01X\xee\x07\xad\x07\xd3\x9bB\
+6\xfbZ\x09\xf6$\x05\xadi\x03I\x0aW\x09\x94\xac\
+\xd0\xd7|zd\x82?\x9b\xd3n k\xb4\xc2\x5cc\
+M\xf0\x19\xc3X\x8e {c\x9fp\x8c\x04\x1e\xecW\
+'\xedd\xaf\x05v \xe7\xc8.\xe9a\xadx\xdd\xe1\
+l\x15\xc6\x1a\x9b\xa5\xf5\xca~\xa6\x87\x9c+\xcfE\x85\
+$\x03\xea\xfd\x0bCf\xbdw\xe5\x90\x01\xb1\x93~P\
+!K\x8c\x99\xcbVGS\x0ej\x0c2\xfd\xc5\x81\x96\
+\xe0\xf1y\xec\xb2\xc4\x04\x92\xd8\xec9?\x5c/d(\
+\x18(x<~\x91m\x1f\xf3s\x8c\x034\xd61{\
+\xe6\x8bDP\xe2\x93?\x93\x88\xb2\xda'\xc6\x22j)\
+\xe3O\x08\xd4U\x8e=7\x88\x0b\xeb\xe3\xb9*x\xd0\
+\xab\xd6\x9f\x1fC\xcf\xd0k\x02\xc3$\xdd,\xfd%\xc1\
+\x89t\xd0\xb9\xb2^\xf4/\x87\x97^\xee\xa4d\x9e3\
+\xbd\x03\xb2,qE\x0f\xbc5\x11F\xe9\x0f\x96\xde\x86\
+p\x13\xb8w\xae%\xd7\xc3\xfe\x81\xd4\x9b\xde@\xff\xb2\
+\x7f\x9d\x8c\xcd\xbe\xa7O\xfa\xbe\xe4\xef\x09L$\x1a\xf8\
+%\xbd\x95M`\xe0s\xdc\xb7\x16N\x95D\xcfKE\
+\x5c\x22\xb3#\xf3\xe85\xeb\xc9\x8e\xf5\x9ew\xef+\xe0\
+\xc7Q\x93\xad\xa4e\xb7%<<7\xf7\xe3\x9c\x18;\
+\xaep\x03\xe1\x03\x11\xd8\xa1\xe0}.|\x1bs]\xe7\
+\xa4\xb3\xa8\xf7\xc0Y\x22\xa5\x8dq-?\xc6~\xe1o\
+{~\xf4zo\x9d\xf3\xd5\xa6(\x1d3\x06\xb0\xb5V\
+T\xc0n\xbd|\xbe\x84\x8a\xf3\xe7}\xfbx8\xfe\x0b\
+\x96{\x09\x19\xe7\xcd\xab\xfb\xf5\xbc\xfb8N\xfb\xa9\x8f\
+\x0d\xec\xa4{\xee\xb7s2\xf5\x0a\xb7\xe7!\xbe\xf1\xff\
+\xae{K\x18\xac?\xe7g\xf41\x90\xde\xaf#?\xc4\
+/\xce[O\x00H\xc8\xf5\x16\x11-\xc6\x92j\xfc\x8b\
+\xce\xd9`\xbd%\xbc\xdc\xe7O,\xb2\xf9\x01\x0a\x87H\
+Z\xad_\x8f\xb3\xac\xdb\xf1\xc8\x11\xfb\xf3\xf1\x5c\xd8;\
+\xad\xc6\xf4i\xe7\x88\xa3\x9f Z\x1f\x18\xb2\xd9s\xe3\
+\x09\xa7\xdf\x0d\x09\x0e\x80\xec)Ui\xd8\xff\x9f\x90$\
+\xab\xb9\xd3P\xd9\x8a\xe5\xffZf\x8c\x7fy\x83\xa8\xed\
+\xee0\xcbw\xa7\xc2z\xff0n!\xa0\x91_H\x83\
+\xf1\xb7ih\xffq\xa8`\x04\xf0\xfc7\x13\xa2y\x8b\
+\xac\xfc\xfe\xc7\x96\x09\xdf}~\x96/dE0\x1c\xf7\
+g\x85\x0c\xe3iL\x15P\x89\x8d\xc0\xf5\xa7\x87\x07\x1e\
+\xee\xf9U\x92\x0c\xeb[\xe7\xfb\xba\xf9,7K\x08\xfa\
+O\x0d\x10\xef4\xac\xbb\xff\x08\x19\xc8\x9bp\x19\x80|\
+f\x8b@\xb1F3\xd027\xe6\x00w2\x07\x0aU\
+\x80\xc2@\xda\xe06\xaa\x07\xc8\xd1A\xda\xc4\xc0\xf5\xb9\
+\x96\x14H\xb2\xb8\x1es\xf0l \x8a\x8e\xc1\xe2\x90\xf5\
+^&=\xa0Y\xb98\xbc {ps\xa3O'\xae\
+\xbd-\x1ca\x89\x93\x13_\x162\xff\xfcGB\xb6\xde\
+\xb7\xe9\xda!\xdb:\x16\x87\xc2\xdd\x0f\xf78\xdcc\x81\
+\xb2\xac\xac\x959\xe7\xbe\x02\xddW\x87\x0cd\x8eYI\
+(r,\xd0\xba\x9b\x9f\xdd1:\xbco\xed\x0d?<\
+ $\x15\xf7\xfb\xd3\xc0\x8d\xf3m\x91\xf0q\xbc\x1d\xa4\
+\x08\x9bN\x19\x14]\xac\xca\xb9\x86\x0c/H\xae\xde\xe6\
+h\xec\xb8\xfa\xd0\xea\x02\x92n.k\x84s\x17N\x87\
+\xe2\x1b\x86\x8c\xdc\xc8\xda\xffG\xdb\xd8\xa5\xe9?\xf3`\
+\xbe+d`\x13W\x09\x16(\xde*\x1dx\x88\x80\x8b\
+dO\xec7\xae\x0a\xa5\x02\xcb\xaf\xa7\x82T\xb9R9\
+\xe2\xd8\xffb\xc8\xe6\x00\xec\x9e\x192\xbf\xdfSWD\
+\x87\xf9\xdd\x05\xe5\xbe^V\x8e\xae\x94\xbd\x89\x90\x0e\x14\
+'\xf6\xd3\x07,\xb2Ms`\xf0\x18\x00P\xfe\xa7%\
+)V sn4 Q\x16\xf2\x81s \xb1\xc9\x80\
+a\xff\x17!\x89\xd8x\xda0\xdf>[\x15\x0e\xdf\x9f\
+P\xed\xd7\x85l\x89\x92\xe2\x8a\xf0<\xed\x7f\x15\x1aS\
+\x1dr\xfd\x0a\x12\x9cc'k<\xa6\x00(\xafw\xff\
+\x1b!C\x02\x07\xf4\xb7\xf7v\xbd7\x15\xf8\x19yn\
+\x19:\xfa\xca\xf58\xdf\x1cT\xbd\xe4\xc6\x8d\xb9o\x06\
+\x1f\x12&\xa1\xad\x93) \x1c\xb1d\xd9\x86x\xaa\x16\
+\xa8\x8dlj\xcd\xb9\xbe5+\x8a\xff\x99\x09\xcd\xa7&\
+\x9b\xb9\xfb\x10\xb0\xa7C~\xf8\xb3\xec\x9d\xfe\xee\x95\x93\
+\xa3 \x8b\x02J\x09R\xfb\xd6\xb9\x12 \xa9\xc0\xd1s\
+o\xccW\x88\x0f\x86\x9aAf89\xc4\x1c`\xeb\x0b\
+\xa1\x81\xf3\xe1\xfb2\xf0\xb9E\x8e\xdd\xc3\xa2\xfb\xb4\xe4\
+\x14\xc1\x02\x9e\x9c\x01\xd3\x1f\x86\x0c\x15@\x95H\x09f\
+\xfb\x5c\x02'3\xe8EF\xab\xb7\xdf\x97uSY3\
+\xb6I\xc2*\x13\xc5\x95\x00\xcb\xf3V\xbd\xbf\xce\x9d\x0a\
+;\xc3o\xacVN\xe5)\x04\x8a\x84\xf6s\xd7\xb1\x9c\
+\xecY\xb5f\xe0\xdc\x91\x98\xd1J\x00b/!\xf7\xeb\
+\xebX\xc8j\x9d\x10H\xe4\xba\x1e\xbe5dI\xe4\xce\
+2$\x80\x90\xa7\xa5>;\xfcj\xc80eF`#\
+\x81\xcb\xa1\x16\xc0s\xf8%:TF9\xc4\xcd1\xab\
+\x0a\x1d\x07\x99\x9f\x22\xa0\xf1\xf7\x8d\x85\xbb\x90Z\x02\xb0\
+\xc6\xdd\xb0\xff\xed\x90!\xde{v\xc8\x10\xe8\xa5\xbd-\
+H:\x04\x8b\x7fHn\x82\x22\xfd\xe4Hj\x99s\xce\
+\xd9\xe3\x5c\x97z?\xcf\xdb\xf8\xbf\x1c\xaf8\xfdE\xc8\
+\xfc\xfa\xc6\x90\x8d\x83\xa5\xc6b\xe6\x94\x86\xb2g\x89\x0c\
+)\xbf$\x11'\x85t0\x16\x11\xbb\xbc\x96-\x8e\xb5\
+\x00\x84\xff\xe1>@\xf7\xadw\x1f\xbf\x95\xf6\xad\xa0\xcb\
+\xa6\x06eo\xec\xe1\xb3!\x03\x12G\xa0b\x1c!}\
+\x07\xe1a\x1a\x03$)\xa4\x81\xd6\x9b\x1c\xbfW\xd3\x0a\
+\xfa\x18S\xcf\x85\xfd\xe7\x17\x09\xcc\x04\xa6\xf4\x9b\xff\xb3\
+\x8e\xfc'z\xd9\xfd\x0a\x9cT\x18\xf3\x5cU\x0f?\xff\
+\x87\xfd\x930\xc5\x81\x22\xe0\x15X\xd0o\x12\xb8\x10\x00\
+\xf4g'mK{:\x9d\x1c2\xf8\x95\x9e\x13\xff\xd0\
+\xfe\xb7\x0e\x99\xb8\x81D\xaby\xe6\x90*\x90\x82\xf4\x9d\
+\xffs\xff\x1d\xaa\xdf8+\x8aS\xcc9\xb7\xce=\x81\
+`}{\xa0\xd4\x03\xfa\xe3\xfd\xbcs`\xf5\x1et\xd7\
+\xdb\x03:\xc8L\xbd\xf1\xfc\x0c\xeb%\xd0j=\xf8\xa5\
+W\xfc\xbd\xcf\xe3\xef\xb3[\xd6\x9b]\xf2\xfc\x1b\x09b\
+\xb5P\xf8}\x9ff\xe0\x5c8\x7f\xae\xc7\xef\xc5\x09\x90\
+\xb5\x12\x08}\xcc`G@\xf8\xbdu\xb2\x7f\xed\xe7>\
+N\x5cE\xb9C\xfa{ \xdf9\x06z\xaf~G\x00\
+\xfc{\xfe\xdf\xb9\x1b\x94\xdd~h\xd0\xfbjm=\xa1\
+=o\xe7\xa6#\x00\xfc\x1f;l\xffY\x7f\xfa\xc9T\
+\x98+f\x9cG/\xbb\xce\x8e\x001\xe5-\xe3\x81J\
+\xf8\xf1\x97]\x87\xe7\xd3\x13\x15\xec,}\xd5\x11\xb1\xd6\
+\xcbz(\x0c\xd1\xb7\xce\xa7x\xa4s\xbcY?\xfaC\
+\xcb[\x92\x8aO\x97\x09\xc9\xb8\xfd\x0e\xb1\x5c\x11\x96~\
+\xcb\xfc\xff?\x122\xbf>.d\xcb$-\xec\xc0w\
+\x1c\x14A\xa8\xcb\xb7e\x8f\xec-\xe7\xf3\xf9\xe6\x90\xf9\
+\x0d\x1f0\xcb\x03s\xa3\xbfy\x1b\x9b\xb3\x90\xe1\xfd\xfa\
+\x00\x95\x8b\xca\xcc#\xb6\xc0y1\x94?\x90\x01\xfe\xb3\
+\xb7\xc0\xa7 \xc0H\xc9\x22S\xfc\x8c\xa1\xc2\x06\x92\xea\
+\xc1\x9c\xb4\xb8\xd4[\x06&:\xe1\x9e\xb2A\xcd\xf6\xff\
+\x12\x92\xbd\xc2O\xcf}:\x8c\x97\xa8\x0a\x90\xf1f \
+l\xa7\xe6\x9c`\x9c\x056DB\xba\xabW\x0d\xc2\xc1\
+\xe7\xa7\x83W\x0f\xa4C@z&\x91B\xb4q8\xc8\
+\x0c\x93\x8c\xad\x83\x86\x1d]\x80\xc7P\xb4\x0c66m\
+\xf3\x8bAA@0\xe7\x80|\x96\xe5\xb9,\xe3\x9d\xf6\
+\xaf\x0e\x99_O\x9fev\xe8v/\x99\xe5\xa5Ke\
+hI|0\xb8\xbb\xf3\x84\x0c\xf3\xb7\x13r]\xa4{\
+\xb7Y\xd7\x8f\xa3z\xe2\xc7C6\x123\xf7\xb1{\xce\
+\xee\xd9\xbb`\x97?+9\x02\xbe\xbaV\x02@\xd8\x8a\
+M4\x1d\x5cs-\xf77\xdd\xdf$\x10)\x1c\xb6\xa3\
+_9z\xd6\xd1\xb3\x86\x007\xc8\xac\x9e\x90\x09\xa3'\
+%$\xfbB\x83\xc2\x8a\xb4\xc6O\x0e\x06&\xc2\x83\xd3\
+\x87\xf1\x91\x19\xe0\x17\x040\xd2\x18\xf7\xcdD\xd77\x0f\
+\x86\xf3\xf2!\xc3A3\xae\xe8\xb2\xb3\x5cn\x80\xe2\xc5\
+~~\xc1\xd2Bq\x97h\xa1\x90HA^\x16\xf8\x91\
+@\x90\xecn\x172@;\xb3\x12=\xfd\xea\xda\x22S\
+=\xa7Y9U),\xd6\xe6'f\x05\x15iX&\
+L\x18\x08\x0e\x1fGx\xf7\xb9\x90\xa1\xf5\x82\x02\x14\x80\
+`\xcfF.\xa4\xd2\xa7GRb\xab\xcf#6\xae\xcc\
+~\x06\xd1\xcdV\x8d\xc3\xcf\x1d\x1ezx\xe8\xa0\xd0\x1e\
+\x96\x0e!\x03%@\x908\xbao\xf6\xca&\xc4\xf5p\
+f\xc8|\xfd\x0f\x0d\x19 \xd8\xff+\x13N\xbf\x90\xad\
+,\xce\x1f$\x83\xf3\xc7\xb1\xb3~z\xe8\x13\x82;]\
+(\xe7:\xab\xc0\x9f\x16\xb2\xf5\x8c\x1f\xbe\x10\xb2Ae\
+\xed\x03\x89\xa8\xe9\x15+R\xa3z\xeb.\x9a\xadD\x99\
+H\xab@\xb6W\xca\x05\xd2\x1c\xb4\x84p\x97C\x0cB\
+\x9f\xe4q\x87d\x95\x9en\x96\xfb\x11\xf47Y\xc5k\
+\x9a\x00\x87>\x13\xa8\xceI\xb1\xf9\xbf`\xad\xb4N\x0f\
+\xcci\x0e\x12P\xf4\xef\x9f\xaf\xe3\xb7\xa6S\xf3\xf7Z\
+\x9f\x9e\xb9B\xc4\xabU\xe4\xba\x99`\xb1\x7fT\xf0\xfa\
+\x180\xa4\x89\xff7+T \xc7\xf4\x16GY\xe0\x9a\
+\x0ei\x91k\xa9 ;\xbf\xde_+\x00\xb2;\xadV\
+2\xf9\x8f\xcf1c\x9f:{\xa5\xac\x02B\x8e\xecO\
+\x84l\xad/*\xa5\x85t@\xba\xa9r\x0dJ\xcda\
+\xa2\xdf\xdd\x8f\xb1t\xa6\xc7h\xc1PI`\xb09z\
+\xecE\x06F\xb8)v\x1f\x0c\xd9HW\x8b,\x11\xd9\
+jN\xe3\xa8\x00^%79^jz\x01G\xd8>\
+\x83\x14\x83\x00HD\x06\xd6z\x01wUj\x05\xe8\x1c\
+H-8yN\xaa%\xc4y\x93\xf8PQ\xd33\xef\
+|\xa8hK\x00h-R\xd9\xef\xa4M\xce\x05\xc7\xd9\
+~\xe0\xf0\xf6\x9e\xe5>\xffY\x05\x9b\x1d\xf7JO \
+7\xd5\x02\x91vT/}!\x85\x92\xeb\xa5\xc6\x1e\x0a\
+\xf4S\xffV/\xa8\xdeM\xeb\xd5\xe7\xc5s\xc0U\xd2\
+9vH\xf3r\xac`\xad\x87\x00\xfe6!\xc3y3\
+\xee\x0f\xdb?\xae\x0f\xebij\x91\x04\x85V%\xfb\xcf\
+:r8\xb5\x04\xe0>0&S\xe5:\xf5W!8\
+{a\x01\x02\x05\xeb>\x96\xff_\x0e\x19\xae\x9b\x1d\x10\
+\x80`\xff\xbf\xff\x22\xc7\xce\xe9\x96\xd0A\xc6\xd5\x13\x87\
+mlp]W')\xc3\x01\x90\xe32\xeb\x1c@\x8a\
+\xd9_\xde\x97C\xafB\xaf\xa0\x22\xb1\x0c\xc4\x9a\xad\x10\
+\xc7\x90\xdf\xda\x9f\x99(*N\x02\xf7g\x7f\xd8G\xf4\
+\xe7q8\xa0\xca\xeeA@\x99\x16\x04q$\x90\xe7'\
+K\x98\x09\xd0\x9d\x0f\x88*\x08\x9e$\xc5\xadu\xb4\xee\
+\x12\x14\xfcMzZ\xc5\xdf\xfbJl|\xb8Z\x11\xd7\
+\xfb\xf3\xc5\xcf\xe8\x89\x8d^i\xee\x81\xbf\x9f\x8f$\xe1\
+'\x9cC\xc2@`\x08\x01(\xe0\x17\x08\xdb/\xbd\x97\
+^\xe2\xc0\xfaI\x00x\xa5\x87\xb4P\x82l\xbbO\xcf\
+\xd3~\xe1g\x18\xfb\xe7\xfc\xdaW}l\x9f\xbf\xb7O\
+\x1a\x99a\xbd\x0f}\xc6\xbe\x88K:\xe2\xa1'\x00$\
+\x14\xd8\x17\xfb\xcd\xf3\x10\xe7u\xf2;\xcf\xa5#\x1dz\
+KB\xe7\x1e\xeb\xbd\xf4gf\xc5[|)\x81\xd5I\
+\x1e\x91`\x7f)\x03\xf8\x1e\xe8\xe2$\xf8\xef\xd5\x0f\x9c\
+\x7f\x07Y\xb2\x06\xf4\xa6x\x9cu\xf6\xc2\xd3\xe1\x13\xb9\
+n\x90\xa5\xa6\x93|x\xb5o\xd3\xe5\xd2\xbf\xe0\xc7'\
+Y\xf1t\xebDJ\x19?j\xca\x1c\x7f\xdb\xf5\xe3\xfe\
+\xea\xf6\xe7\xcb!\xc3:\xdag\xbd\x87\xdf\xfbX/\xe7\
+M\x5c\x97\xa4\xfc\xe57\xb0\x17\xf4\x91\xe7)a\x9dq\
+\x22\xae0\xe3\x97\xc5\xb9G\x16R\xa9\x07lc\xc8\x8c\
+\x8f2>kz\xf0,\xd1{x\xbb\x90!\xc0MV\
+\xfd%<>5!\xb9?\x92\x0a\xe6}Y\x01\xfc\x95\
+!\xe0w\x83\xa1\x1e\xfe\xba\xf28\x1b\x09\x1bE\x95\x07\
+q\xff\xbe\x90\xad\xa7\xf8\xc4\xef\x0f\x19\xd8\xadc^\xf1\
+g\x87\x96\x81ps\xde\x9f\xe3\xb4\xde\x93\x99\xc8Y\x01\
+\x1d\xbd\xd9,7]X\xedg\x99\xff\xefq!\x1b\x14\
+r\x81\x06\xff\xf2\xe6\xe0M\x9f\xcd\x8a\x9f\xde|\x86\xd1\
+F\xe6\xf8\xc8\x14\xca\xbc2\x94\x145C\xdc\xa1[\x9d\
+\xe5\xdf\x81\x05\xad\xd3\xcb\x97c\x8a\xea\xe0\x0b\xb8\xd2\xc1\
+\xac\x0a\x1eEl\xdc\x14\xe8G\xfe~\xff\xa3\xfb\x07\xed\
+\x1f4@\x9a\x13*X\xf3\xc2\xdf\x99\x10\xe2\xffX\xa1\
+O\x0c\xfc\xee\x87g\x99\x9f\xeb\xee\xf7\xd7\xca\xf0\xecv\
+~h\xf7\xa1$}\xbc\xfe\xc6\x1e\xbb@\xe0\xe7\x83\xb6\
+\xff\xe9\x90\xf9\xfbK\x87\xe4\xd8\xbc\xd9Q>\xf2\xc8\x90\
+\xf9\xfbG\xae\x90\xffBr\x08H\xee\xb8V\xd8\x0e\xff\
+_\xc8\x10x@V \x9f:\xac\x89\x9a\xfd\xd1\xfd\xd7\
+\xf7\xf3\x819z\xeb\xa3\xb7:\x1ac\xff\xae\xb8\xbf\xc2\
+\xfe\x0aCB\x84c\x10\xdc\x03\x17\x1b\x1cOS\x0c@\
+\xf2\x91\xe9E\x9d\xe56\xe9\x18\xfek\x1e\x9cs\x0f\x81\
+Y\xafdR\x90 c\x01\x01\xfd\xed\xc1\xb0\x86[\xf1\
+\xa1\xad\xc2>]3dp8C}\x5ce0\xb4\x7f\
+\xb3N\x13\xd8=o\xf7\xfc]\x04`\x97\xcc\x00\x9a\xa1\
+\xc1z-\xa0fX\xb0\xa5')\x1cr1\xf3\xe6q\
+f\x18\xe3g\x1c\x17\x05\xb0\xbbb\xc8\x96\xc8\xa9^\xeb\
+\xe6\x88N\xd7\x0fY\xd6q\x85\x88ZO$\x92\x1c \
+\x8e>\xc7\xc5y\xe7 \x80\xa8^5\x11\x14X\xcf\x19\
+\x82\xbf\x0a\x19z\xdb\xf5\x5cQ\xf8\x14!G\xb1\xb1\xe3\
+\xbb\xef\xf9.\x17\x16\xf3\xea\xe9\xcc@\xbd\x90\x05\xd8\x91\
+\x05n'\x85l\x10\xfe\x22\x93;}\xfa\xd8\xf4\xb1\x85\
+\x04k%\xd5\xc2\x9e\x0f1\xe0\xfa\xd2\x81\xde]#d\
+\x81\x02\xaf\xbd\xdb\xf7J\x124\x81e:`5\x16\xcd\
+}P\xe0\x12\x02\x1c\x0f\x81\x90@9\x03\xc6\xd9\xe0\xcd\
+2@\x85\xcfZ\x03\xfa\xe9\x0e\xbb\xdb\xecn3\x18\x00\
+\x0e\x1f.\x08\x0e\xbd\x8a\xa5\xe7\x93\x81\xc4\xf4K9\xc6\
+\x142F\xc2\x87\xbe\xa7\xf7^\x9f\xd7%#\x0f\xca\x0b\
+\xd2~\xbdl\xe5\xc8s3]<\xc7\xbd\x9e\x92\xfa]\
+E\xd94\x07\x5c*m\x9cQ9l \xdd\xa0\xa2\xc8\
+>\xedSzT\x02*\x13\x94\xe5\xf0\x80\x90\xaa\x04\xd0\
+\xdb-\x81|xU\xce\xa9f\x90\x91\xa9%\x89&\xe4\
+RA\xc1\xb3\xc2\x1dT\x84\x0b\x19a\x0f\xe4\x1a\x1by\
+A\xa99\x9e8\x0f\xee\x91\xef\x9b\xc8\x1fd^\xa6Q\
+\x94\x83\x81\x15\xbd\xcd\xaf\xaeV\x86\xab\x85\xcc\xaf\x1f\x0e\
+\x19\xc6\x88fkOU\xea\xef\xb6\x92\x00U\xa2\x017\
+\x8a\x9eks\xe0#Qy\x97\x81\x94\x94c\xa22\x0d\
+\xb9\xa3\x82\xfa{\x8b\x14\x19R\x9d#\xd3yz\xe0%\
+\x10\xe7\x90r\x9c\x8d\x9b\x13\x90e\xe0[\xfa\xd0\xdfC\
+4\xa9\xa4v\xf6\xfb^\x01V\xb9\x06I\xa7W\x05\xc0\
+\xf4\x16\xc7\xef\xebI\x82\x9a\x89\xd9\xb2G9\x96\xb8\xd6\
+!\x03\x9f\x9a\xf7\x0e\xa2n<#\x08\xb9\xb9\xf0\x1c\xd3\
+\xce\xd6n\x0c\x1c\xc4\xa1\xd6\x15v\xdd\xbea\xb7$@\
+\xf8\x13\x9e\x13D\x0dd\x01\xc4P\x221\x0aQg\xda\
+\x83\xc2\x85\x16,\x8e\xa4i\x16Y\x18\xaaDZ\xee\xdb\
+r\xf8qY\xe4\xf3\xaa\x84\x83V\x13\x8e+\xa4\x1e\xae\
+\x97\xd3\x16\xa9\xe91U\x88\x91`\xc2\x11d?%B\
+\xa4\xa6+\xb1C\xce??I\x02\xc3}ld\xaag\
+\x9bv\xa25\xe3p\x89\x90a<_\xdeg\x05\xd6\x0a\
+.\x02<\x01\xd0\xcdWdQqS\xf9j\x95\xc6c\
+HE\x05L\xf6\xa1\xd7>\x95\x85\xff\x019\xd3\xc9\xf1\
+\xf8\x99\x0d1P-k\xfe\xdf\xe7\x0bH\x9c;\x09\x9c\
+\xde\x93\x9d\xf6\xa3\x10\xb2>\xd7y\xe2\x0fy\xb5>\xf4\
+\xb4s&\x11\x80\xe4\xf5\xac\x90\xad\x85\xb4\xce\x9d\xeb\xeb\
+\x95\xfc^1n\xaf\xb8\x01\x8a+\xc0\x9c\xf8\x1e@\xd9\
+\x17\xa6\x13\xb8\xdeN\x96'\x01\xd0\x9f\xb7\xd7\xb4'\x85\
+ \xb2\xff\xe9?\xeb\xe7\xef\xe9)\x09i\x15gz\xca\
+\xef\xf9\xff\xaeG`\xd8\xb9\x09:R\x81\xbd\xf4\xb9}\
+\xca@O\x04x\x9f\x0d!\xb2\xee\xb7\xf3g\xc2\xbas\
+!I\xc45\xa4d\xed\xef)\xff.\x0b\x08\xb3\x17\xb7\
+\x22\x10$\xd0p:\x9c\xb5\xfa+\xf3\xff\xae\xfa\xdf\xff\
+\xf7\x04\xf0%3\xce:\xe4\xfe>+\xe3\xad/\xe5y\
+\x13\x7fu\x0e\x08\xad\x95\xae\xef<\xe9'\xe0v\xb9t\
+\xc8`\x7f:\xb9\x9e\x9f\xa7\xdd\xd0:[\xeb\x8d\xeb\x88\
+=;m\x9d\xd6\xb2\xb4\xc2\xbfj\x98\x02\x04\x19\x86\xc3\
+\xa5#\xbc}^'i\xef\x5c\x16\xceAGbd\xe0\
+\x7f\xb8q\xc8\xf6\xbc\x8d\xf9\xab\xc45\xbf\x86\xfe\x93\x08\
+\x80P\x804\xcc\xf8\xed\xc8B\xe2w\x9baNzl\
+\xcb\x8fm\x0b\xb7@\x0c_=T\xde\x05\xc4af\xde\
+\x98\x8a\xf4Y\xe9\xd0^!\xc9\xc4.7T\xccA\xc0\
+e\xa8\x22\x8c\xbap\x06dwJ\x85\xf1\x96\xc1QN\
+\xc8\xff\xfe\xc2\xb3\x9c2\xf4H')\xa0\x8a\xf5\x89\x0f\
+\x9b\xe5\xe1\xc3\x81\xd0;\x14P\xba\xe0\x22x\xc5,\xb3\
+\xc3\xb3\x7f\xc6,O_\xc6c],\x02\xc2\x82X\xaa\
+\xa8\xc9l'\xeb7\x96\xe4\xe97B\x06E\x05\xe2\x85\
+mY+C\xb6,T\x80\xce\x91\xf0\xe0=p\x1c\x00\
+\x14'\xc5\x84\xe4\xe9\x11k\x05\xbe\x14U\x92\xa1UE\
+I\xa6<\xd7\x15\x84\xa8\xc6\xb8`qM\x88\x07$\xc7\
+~Z\xf7\xd7\xfew\xf7\xbf\xb3\xff\x9d\xad\x12\xa9W|\
+\x09\xc3\xdf\x9b\x90\xee9\x00\xdf\xbd9d~\xfd\xa3\xa8\
+\xfd\xcf\xeb\xfc\x9b!\xf3\xebgB\xe6\x9f\xffL\xc8\x86\
+X\xd8\xdfh\x7f\xc3\xfd\xbc^\xfbk\xef\xaf\xb3\xbf\xce\
+f\xc8v/\x0f\x19*\xd9Z7lh\x15\xa8\x0c\xd0\
+\x90\xb5\xcdN\xd1\x12h\x0a\xcc\xf6_\x0c\xd9\xe6`\xd7\
+\xba\xe4\xf8:\xc8\x86\xe5\xf9^4\x13F\xff;\x0d\xf3\
+M\x87^\xe0\x9c#]\x06\x93\xc2\xe4\x08z.\x0e\x0c\
+\xe8\xbe\x80\xea\x94%\x84\xd9\xc8)\xbf\xb6\xa8\xb4J\x1c\
+,dbw\x1dC\x5c\xf9O\x00\x00 \x00IDA\
+T\xa6\x0eph\xd3\x913\x16\x13\x04\xb3\xa0\xf6/K\
+2,\x15P\x86\xd4sW9\xf2\xea+\xc9\xff\x82\xf3\
+=X\xdf\xb5>PP\x87\xab\xac\xf3\xe0\xf7\xb7\x0a\xd9\
+*\xd7*\xd5\xd3{\xa6wO\xef^*U\xcb\xfe\xab\
+}\x01\xea\x0f\x12x\xfb<\xc7\xd7\xcd\x04\x8b@\x077\
+\x82\x16\x06H\x08\x8eG\x87p\xa9|f\x05\xea\xf0\xb9\
+\x90%\xe1\xb1N\x0f\x10\xa0rP~3\xc7M\xfd]\
+Vh\xb0]\xab\xc8K\x0c\xddt%-\xac)\x16\x12\
+]\xd9\xf3\x8c\xbd\xbd\x02\xa2t\xb0\x04\xac\xd8\xd5%\x08\
+\xab\xe2vF\xcdO^\x1cj\x95\xe8\x82|\xf5^\xde\
++&\x99\xd5\x17\xb3R\xc2a\xe7 0\xc4\xf4\x02N\
+\x11?\xf7\xbc\xe93\x95\xfeLh\x1c\xfee\xfd\xfc\x82\
+\xfa%\x19MM\x17Q\xe90n0[r\x8a\x05Z\
+\xe5\x8e\xa1Gr\x05\xca\xed<\x80\x9a_\x22\x0d\xc8\xe7\
+\xf2zr_V\xe5Zf\xf9z\xd3u\x17\xd6h\xff\
+\xaf\xc2\x9bz\xb0\x12\x99\x1cY\x8e\xdd_6\xa8\xb7\x8c\
+\xbcW\x15\x17\x89B\xfb\xc9zI\x98\xd0'\xa9\x8f*\
+ \xe4\xb8t2\x1d\xd0\xbd\x9c*RvIE\xce~\
+\x15\xa8\xaa\x9c\x1a\xff\xfa\xdf\xeb\xfb\x98\x22c\x0e|9\
+\xee>\xd7\xfe\xe0H\xd0\x83\x99P\x99\xb5\xd5B\x8ez\
+8\x12\xac%\x8ba^\x1c\x08\x01`\xb1\xf4\xab\xec\xbf\
+!d\xd3\x83*\xa8ZN\xa6\xe4\x02\x99\xbe\x162\xb0\
+\xa7\x9b#\x9f\xe4Du^\xcc\xfd\x96\xb84]!\x13\
+\xfd\x87\x8b\x84l\xd0\xffr\xe8!\x80ZkN\x052\
+\xf4\x1e\x88\xa2\xfd\xd0\xf5\xbe\x0a\x96\x1e\x7f\xdc\x08\xc6\x07\
+\x22\xd9\xb3\x0f\x9c\x0bH\xa2<\xef\xc6\x19\xd5\xf9\x81\x98\
+@\xc6\xc4\x1e\xd3\xeb\x10\x1e\xa0\xef\x12$\xc8\xd32A\
+r\x0c\x02Q@\x98\xad!U1\x95H\xd4\xc2\x80#\
+\x087P\xee\x13H\x12\x89\xa0J\xb0(\x10\xb0K\xec\
+\x10d\x9fu\xd4\x13\x0f\x11HO\x19\xbb\xab%@\xeb\
+R&\x84:\x22\xa2\x10\x00\xc9\x0dP\xa4\x99\xc66#\
+E\x16\xe0\xe0\x8ap\x7f\xf4\x06?\xca\xba\x0b\x90\x92<\
+UA\xa4\xfc\x91L8h\x11+\xe4\x8a\x04\x94s\xc3\
+\xbf\xe4\x10\xb3\x07\x12yH\xb8\xec;\xe7\xacW@%\
+\xa8\xad\xaf\xeb\xb4\x8e\x12&\xc9\x89P\xe7\x97}K\xee\
+\x87c\x02D\x05\x1f\xfb\xca\xf9\xa1\x9f$\xe8\xe9\x0f_\
+\xf6\xaf\x00\xc8>\xa6\xaf\xfc\x1e'D\x9b6R\x01\x83\
+W\xfb\x99\x1e\xe4\xf0+<u\x8e\x9b\x1e\xd8\xaa@\x0b\
+8\xfc\xbc\x93\x0dZ\xbf\xbe>\xf6\xa7\xca>{\xe7<\
+H\xe0\xf1g%\xf6\x90WBFx\xee\xbd\x92\xdf\xd9\
+\xe3\xe9e\xaf}\x9c\x22n\xa7\xce\x11\xd0\xc7\x16\xf6\xe7\
+i\xbf\xd8\xef^U\xda\x8d\xab\xb5~}\xec\x9f\xbf\xef\
+\xec\xf2\x12\x1fZ\xbf\xe8E\xfb\xd9~\xed\x01\xbe\x04@\
+\x9f\x1a\xc0\xbe\xa7\xdfTz\xb1\x07\xfa\xbd\x22\x7f\x1c\x12\
+\xc4\xc3\xc73P=W\x8e\xa9;OrJ\x9dX\xfb\
+\x8c\x7f\x03\xd1\xb6\x16>\xb4\xf0\xd8'\x90!\xf4\xbc)\
+\x18\x90\x0e\xc6\x1b\xb3\xbf\xd6Q\x22M\xa5\x7fj\x5c\x00\
+\xde\xb7\xf7\xce\x1f\x8f\x0b\xc04%H\xea/d\xc2V\
+\xabX\xdeg\xb5\x1et.\x06\x89\x11\xfe\x91\xeb\xb5\xfe\
+\x0aAy\x9f5m\xaesW\x89\x17:\xb9\xa2\xf3\xea\
+\x1c9W\xf4W\x9f\xce\xd0Y\xfe\x13\x89\xabU\xfap\
+\xcd\x90\x0d\x89V\x88%\xad}\xe2o-\xa6\xa9W\x8b\
+C/\xf7\xf1\x11=d\xfb\xf7\x87\x0c\xbdV\x14J|\
+\xec\xffk\xecM\xc0u\x1d\xcb\xf7\xff\xf5\xbck\x99\xa7\
+m(c$C\xf4\x8dH\x86\x92\xa1P\xca\xd0@\x19\
+JI#\xa1P\xa4Y\x92\x8aJ\xbe\xe6\xa9Yd\xac\
+Dd*)\xbed(d\xc8\x14\xed\x22\xe36\xech\
+\xaf\xe7\xf9\xdd\xd7}\x9f\x9f\xeb\xbe\xd7\xb5\xec\xe3\xff\xdf\
+\xd7\xe1x\x8f\xb5\xbc\xeb}\x9f\xe7~\xee\xe1\x1a\xce\xeb\
+<7n\x1c\x11\xab,o,=\xe2\x0f6:\xa0\xe6\
+h\xef\xd4@\x82-_\xb1\x97\xe4Zv\x96#\xf8\xb3\
+Z\x81\x02\x0a\xed\xba\x8a['{\xb32d\xb75\x90\
+[*yfC#[\x22V\xf6\xee\x12\xb3\x9a)\xcf\
+\x95\xd7\xcf\xa7\x8f}_\xb2\xf7\xa7\xfb\xfaz\xb2\xc3s\
+E\xef\x01\x83\xa2\xe7\xe3l\xa7\xa6'\xd4*\xa4\xe9\xe7\
+\xfeJ\xb3z\x10\x8f\x8e4K\x7fw\xa3z\xb2\xf5\xf9\
+\xdd[\xcd\x9a\x8a,\x19|\x1e0\x07\x0a\x07\x19\x0b\x03\
+\x92\x19\xd8\xa7a\xf9d\x83\x12\xa7@\x0a\xdb\x0b\xc9\x10\
+\xd0: \x9b_\x12\xb9 \x19p*\x92l(8\x96\
+\xea%\x84\xfd\xba\xdf\xb7\xdf\xa7\xdf\xa79\xc0\xf9>*\
+\xbc&\xfb\x92\x02\xbe\xd1\xbf\xcd\xd2\xeb\x07\xad\x99#\xcd\
+\xcb\xd7\x99\xa5\xd7\x7f\x98\xa5\xdf/jV{\x0a\xfb\xd7\
+\x9b\xe5\x89\x98\xc9\xa1\xfa\x9f\xf5g\xf5g5r\x7fT\
+\x9eaG\xfec\xa9t{\x85\x9f\x0d\x8a\xeb\x17\x84n\
+\xf2z\xb3\x5c\x19\xc8\x99\xb8\xfe\xa5f\x99m\xbf\xf4h\
+?+(\x0d\x99,\xab\xbc\xac\x9fY\xe8\x935\xec\xd7\
+\xc6u\xbd\xbb\x16\xda<ME\xd5\x8eS2\xea\xe3/\
+\xc0j\x0a+1\xc7 \x07\xa9Ze\xf2q4\xbb\xb4\
+d\xe4\x9e\xcd\xe4nfG\x8e\xcf3\xf7\xe4\x0cA\xf4\
+\xcf\xa8\x9c\x06\x19\xba\xbcRm\xc1\x80]\xbe\xfb\xa7Y\
+\xb3\x01\xb0\xe1 \xff\xc6\x86@%\x9d\x1eI6v\x91\
+(\xe20\xd3\x1b9\xbcCr\x1fd\xcai9\x10\xd9\
+\xa5\x93\x1a\x8a\xcc\xce7\xbcW\x09\xca\x08t\x92\x0a\xd4\
+\x16r4U\xb9v\x07\xf3\xf0R\xc9\xc9L\x0b\xf76\
+\x8e\x93\xd6Q:\xee\x0b\xc9\xd2\xfb\xd4\xa3J\xe2\x0dG\
+\x97\x1e\x5c6B\x900$\x0c\x90\xa3\x02Z\xc5\xc6)\
+\xc7\xddY\xdc\xd5\x03\xeb\x08\x94\xbft\x7f\xee\xac2w\
+U\xf7\xbb\xceZ\x92\x14Hv\xab\xebs`\xdb\xd5\x81\
+\x0aD\xcb{\xe5\x91i\x03\x99\xc4:\x1e\x9b\x96\xa1.\
+\x81\xc3eB\x04(\x10r\xc4\x14\x8e\x0c\xcf\x91\xcf\xa3\
+'\x94\xe7\x8d#G\xc5\x18R\xbc\x95\xa4\x17\xffU\xf5\
+TS\x09\xe6\xf9\xb3\x9eE\x06\xe6\xadC$\x92p\xa4\
+A\xb0\xb0\xaf3\xdf\xa8\xf0\xe3@\x11p\xdc\xaa\x96\xad\
+\xdf\x8a\xd5\x1b\x88?\x8e-\x0e\xce\xaf-4n*a\
+\xb15\xe4%r\x94q\x98\xa9\x1c\xdc\xa7\xf9\x82\xda\x08\
+\x95W*\xac\xb4<\xe1\xe8sP\x93H\xe0\x80\xc5\xc1\
+\xe5\x95y\x84\xa3\xcdsc\xbeA\xaa\xb6\x9c\xf6g*\
+!\xc8<\xcet\xb6\xf5\x92\xf9?M\x09\xdf\xad\xcaz\
+\xf1\x04\xc8b%1\xec\x08\x00\xf6\x09*\xbb\xac\x1f\x1c\
+4\xceI\x91\xec\x0e\x0b\x0f\x8b\x0c\x8b4\x09\xee\xc3\xc4\
+\xb2/\xb2G\xcf\xec\x93\xd1\x87\xeb\x06\xce\x00A\xa43\
+\x99\xa8\xb5\xac\x5cj\xd6 \xdc4\xbf \xfd1\x8d\x88\
+\xac\x12\x81c\xc9\xb8\x800\xe0yJ\xf6\xd5\xe7\x11\x81\
+\xbf\x02O\x87\xc0C\x86\x17\x13\x1d8\x9a8>3\xa7\
+:\x5c\xde:\xc3\xbeOb\x89D\x91\xc8\x94\xfc\x9cg\
+~\xf3y\xb4\x82\xfd\xaa\xb4\xa48\x12\x81u\xc6\xb9K\
+\x22\x8b\xf3\x99y\xc9\xbc\xa0\x22\xad\xd6)\x02\xfa\xf4\x5c\
+\x925\x5c/\x04\x9e\xb4\xfe\xa0b\xc3\xf81>\x04\xd8\
+TN!\xb3\x03\x99\x22\xb2FG\xfc\xe0\xc0\xf39\x8c\
+\x13\xe3\xc9|\x22P\xe2}\x04X\xf4Z\xc3%A\xab\
+\x82\xb8s\x5c\xe6\x92\x044\x88A\xf5\xfa\xc3y\xe2-\
+^$\xd6\xa5\x02\xe4$\x98\xecS\x90\x10\x92\xd8\xd3:\
+\xf5V\x0fz\xcb\xe1\xc0\xc1\xcf\x01\xf1D\xc0\x05'\x04\
+\xad\x89\xf2S\x86\xd5\xcc*\xe2\xd3\x9f\x1b\xe72jN\
+$\xc6x\xbe\x04\x00\xecK\x04\x18\x9cSp:\xf1\xbc\
+iiA\x1d\x88\x04\x10~\x1b\x01+\x89I\x02|\x02\
+U8A\xd0g\x87\xbb\x01\x04\x07\x15A\x02w*\xd6\
+\xf8{<w\xce\x03\xceC\xe6\xb9\x1cvOx\x93\x18\
+\x9a\x9b\xcc3\xf3\x85\xef\x07q\xc8:\xc0/e\x1c\xb9\
+nZ\xab\xf4\xaf[\xd6\xac\xe9Mg=\xd3JB\xe2\
+\x9b\xdf\xb3\xde\xb8\x0e\xd63\xfbu\x94]\xe4}\x9c\x0b\
+sK\x00DV\xff\xd8\xcbM@\xc8\xcf\x91\x0b\x80\xef\
+\xc1O\xe0}Q\xe6/V\xcaI`=l\xd6\x04\x84\
+\xcc\x7f\x0av\x8cc\x0c\xbc\xb9o*\xdbT\xfc\x83\xaa\
+\x89\xbf/\x92\xf3\xb1o\xf2\xf9\xecS \x8f\x08\xbc\xf1\
+\x9b\xf9\xff\xbcF\x84T\xe4>\xf8\x97\xfcG\xee\x8f\xe7\
+\xa5\xca\xfcp\xbb\xe4\xedF\x81L\x8e\x02\x07\xeb\x8c\xfb\
+\x88H\x0b\xae?\x92\x92\xf3\xbc\xea9P\xc6q\xd1\x10\
+(\xf3\xfc\x9e\x0dj\x00Q&/\xb6\x14\xf0}$.\
+\xb8\xdeYZOpa-\xec,\xff\xc5\x8f\x98\x1d\xe6\
+\x05\xd7\xc9\xbcc\xdd0\xdf\xd9\x17\xb6+\x05\xa6\xb1w\
+\x15r`\x9fG\x90\xf6\xc6\x84\x1c\x81<\xfe\x07\xf7\xc9\
+u2N\xb1u\x22&\x04XoB\x1e9\x82\x14\x12\
+X\x9d\xc7N\x22\xcc:c\x7f\xc7\xef$1\xa0q\x9f\
+ph\xa2\xa0\xcb\x9e!\xc0\x11T\xa69\x07*3u\
+\xb0\x1d\xdc\xb07\x1f\xa4^\xde>w\x85\xd6\xca8=\
+J\x96\x11>L\xad\x02\x1fk\x0ePn\x90\x89C\x0f\
+\x95\x0242\xf8\xfdo\xccjE\xcbY\x89O*d\
+N\xa3\xd3\x92\x9dZ+G\xfd\x91\xc9\x8eH\xaf\xcf&\
+\x9b\xad\xc0zo\xc9\x18\x1eP\x03\xa4\xfe\x163\xb18\
+Z/\xfc\xa6fMf\x1e\xa8\x1b\xe4\x7f&k\xb8S\
+\xa3_\x0diN$\x95a\xc1\xd1\xa3M\xcf-rT\
+@\x9c\x97\x1f\x96\x1b\x96\xcb\x99\xf2\x02M\x07:\x0b\xe4\
+\xf19AR\xe8A\x99!6wH\xd6\x94\xe9\x19f\
+\x0a\x0a\xfa6\xb3\xea\xa8\xf5'\x98\xd5\x1e\x19\xbf~2\
+\xe8d\xf2\xaf\xec\xae0\xe8u\xf7\xa7\xee\xc6.\x05.\
+\xa3\x1f\x8aDj\x09\xb3\x9c`\xc9djY\x8cq\xb3\
+\xfa<&\xb73K\x9f\xbfl\xb9\x0f\xd8\x9b3gD\
+\xa3\x02A\xe5\xaa{\xc4\xac\xb9\x7f*\xfe8\x0a\x0al\
+q\x90'\xd71K?\x7f\xc0,'\x18\xce\xecm\xbe\
+\xbd\xdf,\xfd\xfc\x05\xb3\xa6\x22E\xe6\xcd\xd2E\xe7)\
+\x81tx\xb3\x81\xb3\x10\xad\x0e\xf7\xa3\xe6`\x00\xc2n\
+\xee\xc6Z\xf5s\xbc\x97\x1dH\xf4\xbd\x19L]*\xb3\
+\xe6\x88\x7fz\xf8tv4\xd2\xf1<lT\xe7Cw\
+y\xb2+*4mtS\xb2\x9b\xc5\x16\x9f>g\xf4\
+b\xb3\xfc\xbeL\xe64\xdau\xb4\xcbh\x97\xa6\x02~\
+R!\xc7\xf3L!\x0e\x0d\x07\xa9*=^Yf\xc3\
+\xba\xaelP\xfd7EJwq\x81p\x02-\xee\xf6\
+5K\xafk\x9b5PjZ\x11\xa2\xbe9z\xd6\x82\
+<\xbb\x1c\x1e\xfb\x02\xe3\xf2f\x91P\xee[z\x92r\
+bp\x8ff\xc3_\xa7\xcck\xaf\xfc\xabg\x8e\x0a\xbe\
+#!jOr\xa9\x10\xf0|v+\xdc\x0a\x1e\xa8\x03\
+\x19\x03\x82+.\x80\xe1\xadf\xb5\x95dt\x8cY\x0e\
+\xf8\x8acw\x80*\xa7;\x8a,\xeeMf\x8d\x8c\xa0\
+6\xe84*E\xa6\xcf\x9e\xa3\xa9O\xecnV{:\
+\x87\xa7\x86Y\xc3\xac&#\x0c{6\x01\xea7\x14\xa0\
+@\xb2\xc8\xfc\x02\x19A&vi\xb3\xe9$M^9\
+\xa1Ei\xc5B:HE\x96}\xcc\xb9<p\xa8G\
+:(\xee\xd0z\x02\x09\x80C\x88\xc3E\x22\x80\xdeW\
+\xc9>\xba\xa3\xab\x0a\xa7\x93\x9d\xe2\x18i\xbfu\xc4Q\
+\xe8as\x1dj\x1co\x90\x1d\x04\xfe \x0a\xc6]u\
+\xa1TXnV\xef(\x95\x7f\x12\x11\x91\x05\x99s\x82\
+\x0a\x0b\x99z\xd6u\xd4\x8d\x86\xecG\x01\x89s#\xd0\
+\xdaE\x82\x81}\x83}H\x90d\xbf\x0eA\xdb\x9dl\
+\x8d\xca\x22\x15\xd7\x7f\x9b\xa5\xcf\xff\xa4Y\xad\x98z\x00\
+\x83\x83@\xc5\xf6s\x82\x88\x03\xd9E\xe5D\xa4a\xae\
+#-\x87\xa7\xdb\xdc\xacrT\x10\x88z \xc6\xbc\xa4\
+\x95\x85\x96\x82\xfd\xcd\x9a\x84\x04\x01}\x90w\xf4@\x8f\
+\xf3\x0aG\x97\xdek8\x10X\xff\x90#\xe2\xe8\xe0\xc0\
+0\x1f\xf8{z+\x094`\x09\xa7\xb7\x9b\x00\x8bV\
+\x0b\xd8\x90\xe12a\x1f\xa4r\xc7x\x8b\x84sX\xd9\
+\xac\xb9N\x1c%\xedO\xec\x07\xeeW\x90\xf8!Q\xc4\
+\xf5 \xbf\xc78(\x01\xec\x08\x0bT>\xbeh\xd6 \
+EX\xcfT\x92\xb9\x7f\xbe\x8fy\xcb\xff\xa7R$\xe4\
+\x8f\xcb:~\xd9\xac\xa9\xdc\xf2w8\xa4\xf4\x1a\xa3\x8e\
+\x80\xc3Ja\x04H=\x88\x22\xce\x03 \xa1@\xdeQ\
+\x05 Q\xc7:\x92\xbf\xe0\xd0R\xd6\xd9.\xd9j\x80\
+A\xa0\x16Z#=\x11\xc1~O\x22\x01\xf9I\x102\
+T<qt\x19?%,\x5cn\x91y\x0arI=\
+\xfe\xce1\xc0\xba\xe7\xf3\x08\x9cc\x22\x85\x04\xb4\x10\x0e\
+\x9e`\x84\xabA\x9c=.c\x0aW\x03\x01\x1c2\x85\
+|.=\xf6\x5c\x07\xfbN\xfc>\x91\xacz\x02\x80y\
+\xc9\xfag\xde\xb1\x1f\xf3\x1cX\x97$8\x1fw\x88\xf6\
+\xd4\x96Q\xfc\xe6\xc8\x92\xce\xf7\x83L\x89$\x85\x91\xb5\
+\x9f\xc4\x16\xeb\x8e\x966ZH\x08TY\x0fRK\xe8\
+\xd61k\xf6Y*\x8cT\xcc\x090\xe3\xba`^\xb1\
+\x1f\x92\xd8 \xd0\x8a\xff\xe2\xfd\x11\x00\xf2y-\xa9\xf3\
+s/\x90\x00\x88\xaa\x1f\x01\x02\xefH\xba\x90\x00\xf0V\
+M~\x8e\x15t\xe6[L \xa0N\xc38\x82l\x0a\
+\xe7\x91\x07\xe8\x11\x92O\xeb*\x09\x98\xa8.\xc0>\x18\
+\xc9\x0dy\x1f\x812\xfb/\x09\xb1\x07\xc3\xe7\xce\xd4\xf7\
+\xe9\xf7\x0d\xfb\x7f\x19/\x12\x00\x8c?\xfb<q\x0e\xd7\
+_!\xf7\xe5\xf91\x0e\xfc\x1d\xf3\x22\xc8\xc0\xfa\xbe\x06\
+\xa2\x99\xfb\x7fZ\xef#\x01\xc0\xfc\xe7\xefk\x22\xb8\xfc\
+\xfdlg\xfd/\xd7\xbb\x90\xd6I\x95\xaf\xe4}S\xd6\
+G#78\x95Sd\xa6\x937\x96\xf1f\x1eQ \
+\x84\x8c\x14\x92n8}\xd8\x87A\xda\xc1\x1dG\x01 \
+\x06\xfe\x0b\x04\xf5\xac\xff\xaf\x04\x00\xe3\xce+\x7fO\x8b\
+\xd8a\xd9\xbc\xb0\x0a\xf2\xdb\x1a:sK'\xcf\x83\xc4\
+\x01\x89\x00\x9d\x93\x138\xe2\xf9r\xe6o\x1c\x106b\
+\xfb\xb3M\x1a\xb6i;\x16vn\xe4S\x18\x98\xa7\xcd\
+\x9a^l\x0bO\xae\x15\xd4\xe8\xd6fa1\xa1\xc5\x05\
+\xe0\x0b\x86\xdelz.,\x00\xb9\xaa\xf9\x5c\xdd\xb8\x93\
+\xbc\x09\xca\xd8\xcfc\xa6\x0c\x8c=\x88\x14\x8ef\xbd\xec\
+\x8bs\x08Td\xe9\xac\x15\xe0\xeed\x96\xe0\xd8Z\xac\
+\xd5\xdf\xcd66z*\xd9\xac\xda\xd2\x00\xd4\xda\x98\x0f\
+2\xf7\xc1\xbaV#o\xc8\x17b/8\x0b\x0e\x087\
+\x13\x0d\xe8\xa0X\xa6\xbdB{\x91\xc6Q\xdf\xef\x81\x1c\
+\xe3B\xc6\x06\xf2\xaeJ^U*\xe7\xda\xb8\xfb\xb7\xf5\
+\xdb\xf7\xe9 \xea\x8f\xee\xbf\xdb\x7f\xb7\x09@N\x11\xf9\
+\xdb\xcfT\x89\x90\x8c\x15\x19!\x10\x1e\xddl\xb3\x1c\xf0\
+\xff\xd8\x02~\xd7gf\xe2\xaaRA\x02\xa2?\xdf,\
+\xbd~\xd0,\xbd>b\x96!\xd49\xb11:it\
+\xe2\xe8\xc4,\x1f\x97I\xecF[\x9b5l\xb8\x97\xbb\
+\x8ep\xa9\xf0\x12\xf0\x9d^*\xf6\xce\xe2\x0f\xf4\xff\x91\
+\xfe\xdf}\xda`\xfb-\x0a\x84\x9d\x0aV~\x8ew\xab\
+\xe7\xcb*\xdbK%[\xb2\xd9H\x98\xf0$h\x8c\x0a\
+\xed\x13\x8dcen\xe4\xaf\x9b\x9e\x9e}\xcc\xe4(\xbf\
+Z\x19\xb2\xad\x1b\x8e\x0bT,8\x10Q\x9f\xe0`\xb6\
+0\xf8\xe3Uv+\x07\x8e\xe9>G\xb3\xcdj\xc5}\
+|\xad\xf1\xb5\xc7S\xe0\xdd\xddn\x96\xfe\xff:\xa3u\
+G\xeb6\xdc\x04\xef\x10\xab>\x1bN\xdb\x8a\xb0@\xb3\
+\xc1s\xd0\xc2\xee,2\x10w\xb4\xd5R\xe2\x09\x18%\
+\xf4\xba\x93\xcc\x9a\xdeyX\xfb\xa9\x84+\x01\x03\x94\xd8\
+\x03\xa2\x97\x97V\x02O|i\xdez\xcf\xab\xe6\xd5\xb0\
+\xa7\x02$\x12\x15\xacweZ\xc9\x88\xbbn\xbd\xd8\xc4\
+\x87\xff\x166Tg3_d*\xf2\x01\x07\xb2_\xd6\
+,\xfd\xfa\x03fuc\xed\xd75kd\x0c\x15\xb0;\
+{?\x19t*\xa7d\x8aW\x91c3\xab\x04\xf4@\
+\xc5\xba\x1b\xcc\x9a\x8a+\xbd\xe88\xaa?T\xcb\x08\x09\
+\x00*\xb8\x04\x9c\xc7\x89\xfc\x94\xca\x98zY\xbd\xf2\x07\
+\x8b5\x15N\x1cI\x12\x88\xd2i\xa7Be\x0c\x1e\x99\
+\xc3\x03\xb6\xf9\xab\xcd\x9a@\x10G\xb2\xf6\xc4\xa1\x93\x0e\
+y_A2\x90\x11\xe6\x00\xe0\xc0\x9fO\x07\x90\x12F\
+\xee\xb8*\x00@\x16o\xec\xfdr\x98\x85\xe8H\xbbh\
+a\x13\xe7{qp\x08\x0c\x8cl\xf5\xe4f\xfe\x92\xe9\
+\xe7~q<h\xcd!\xd1U!\x92\xb4\x00\x94y\x08\
+9#=\xa4\xac\x8f\xca\xb1R\xe6\xb5\x0ev\x87nB\
+\xf2\x88.;2\x7f\xdf6kz\xe3p\x90A\xa0\xd0\
+R\xc6\xf8Q\xe9%\x00<:\xdb\xd8\xd8!\xd9<!\
+\xeb\x09p\x12\x00@X\xaf\x97\xaa\x83T\x19\x5c\x9e\x8b\
+s@\xf7\x81\x8c\x22\xfbD\xe6\xb4\xb9\xad\x09T\xe9\xb5\
+FfuN\xe1D\xf1\xc4\xe0\x0e\xd9j`\x0d2L\
+\xdf\xeb\x10v\x12TT@\x81F\xe3\x10\x81\xcc\xc1\x91\
+\xe6\x5c'p\x07\xe9\x83CEO>:\xf4\xe2|q\
+\xc80\x15\x14\x1ce\xee\x9fJ\x86z\xc2=\x80\xa6%\
+@\x95~\xef\xa9\xdf\xde\xac\x06\xfe\xce=\xc1\xfc\xa15\
+\x89@\x85\xf5\xc79\xcb\xfc\xa3b-.\x1c\x1f'\x91\
+\x22B\xf24,f\xd6T~!e[B\x01\x17\x81\
+5\xc8@\x1c3\x90\x8dT\xe6q\xd4\x18g\x02\xd8\xc0\
+r\xef\xf3\x5c2\xbb~\xfe\xb3\xbe(\xbc\x04\xa8\xbd\xab\
+.p\xce\xc3\xbd@\x85\x18n\x0d\x12u$\xb2\x98\xf7\
+\x04\x14\x04&\x8c'\xeb\x94\x80\x92\xde\xfc\x8f\x9a5\x81\
+\x00\x10o\xc80\xf9^\x12\xb5\xb4P\xf0{\x12\x83@\
+\xc9\xb5\x8e\xbc\xc2\xaf\x8a<rU\xf4\xb6;\xf9f\x84\
+N3\xaf@ \xe8~\xbb\x97\x985\xfb\xb8\xc6\xdf\xfd\
+W\x1cg\x02w\xfc7\x0a%\x04<*4\xf8\xfa\xa3\
+E\x8e\x04/\xfb&~Al=a\xdd\xf0\x1a\xe5\xa6\
+IxS\xb9\x07\x01\x12\xd9\xd9#\xf4\x99\x84\x0f\x01\x15\
+\xcf\x8d\xf7Q\x89d\xdfg>Eu\x0d~\xc6\xcf\xe0\
+\x1c\x09\x81\x1d\x85\x03'Gf\xfd\xf29\xf8\xa1\xec#\
+\x04rT\x8e\xb9\x8f\xc8\x01\xc0\xba\x9c\x9b\x8c\x5cH\x88\
+\xf9+\xff?\x06JA-\xc1\xc9\xfa\xb8N\x12\xbc\x91\
+\x5c4\xb6\x02\xc4\x0a=\xd7\xc18\x81\xccd\x9f\x06\x99\
+\xcbs\xe6_L\x90\xf2JB\x02n\x01\xfc?\xde\xcf\
+\xf3\x8a-\x10\x8c+\x89\x88\xa7<\x80.\xf3\xe8q%\
+\x0e)\x98\xdc\xa9D\x16\x81/\xf7Eb\xc1\xa1 \x8a\
+k\x80\xe6\x93\xb0\xc7/#!\xc6u\x90\xb0b\xbc\x98\
+\x97Q\xe7\x9ey\x19\xf6\xa3t\xd6\x97\xfbe><\x13\
+X\xfbg\x07D@d\xfd\x9f\xdf\xa1\xf5S\xd5\x06\xe6\
+\x960b~\xd5V\x90\xf2\xfb'\x02w\x07\x1c_\xb7\
+\x9a5H\xbbY\xdd\x93\xdd\x93M\x22\x10\xff\x81\x04#\
+q\x05\x08Y\xee\x97D@$\xfb\x8b\xec\xfd\x8c\xff\xe0\
+,y\xe5\x1f\xf7E\x81R~\xc2\xb0\x9eY\xe54!\
+Q\xcf>\xec\xe70\xeb\x0c.\x17%X'\x1c\xba@\
+\xe5\x02Y\xa0Gs\x97\xb5o \xd9A\xbe\xaf\xca{\
+\xf5\x8b\x9b5\xec\xb8\xd6\x8b\xd8\xf6\xcc\xcf\xcaC\xeb:\
+\xb9^\xd1\xb2L\xf3k\x1bY\x02s\xc8>\xdc$\x02\
+\xd0C6\xf2\x9d\xcf6=+\xb0/\xbf\xba\x04\xe4\x19\
+\x09\x90\x1c\xa6~\xbfd\xfb\xeb\xc0\xd8L\x07\xe7Y\x0d\
+\x04\x0fd\x02\xfa\xd0\xd6k\xff\xb94\x0fnNvS\
+\x86\xbc'K\xaf\x0f%{X\x8e\x95]\xe7e\x05\x9a\
+\xd5\xdd\xa1\x03\x9f\x07\x13!J\xbc\xf2\x80\xe9\xc9\x13\x94\
+\xad;\xce\xacB\xe1\x988\x04L\xe9\xb7\xbb\x0e\xbb6\
+\x0e\x04\x9c\x02,p\x02\x11\x91=\xf9\x82\xe0\x80\x01b\
+dH\x87\xbd\xe4x\x9f\xd2\x04x\x90\x01Y\x05kO\
+\xf5\x88\xce\xc9\xec\xfb\xc9\xd2\xeb\x8df\xb5\x02\x92[&\
+\xbe\xde8d3D\x0a\x03\xe9\xd4\xcb\x87\xd5\x87\xd5s\
+\x22&\xf7X\xbb\xae\xe4]f\xe9\xf3\xce\x1b\x9d?:\
+\xbfV\xae\x1c\xb2\xf9\x8a\x02\xd1w\xb6e\xd8\xcb\xe9%\
+\x94\x834\xbc\xc5,\xbd\xae?\xbcfxM\x130F\
+\x9dT\x12e\xb0\xdbSa\x86LP\xe4i\xddif\
+\xb5\xa2\x949*^\xd6l\xe8\x1c\xf8$~H(P\
+\xc1\xb2yy\x85z\xe4\xee\xd6\x866[\x0e\xe1\xb6\xe9\
+~\x97O\xb6B\x95g\x1a\xddm&\x19\xae\xf4\xf9\xe3\
+\xc7\x8e\x1f7\x9e\x9e\xffxo\x96\xa1\xa0\x19\x92Nb\
+`\xd8r\xd8b0v\xf1\xd7\xe8~\xb71k\x1c\x0c\
+\x0en2\xa4ldr\xdc\xfb\x1f\x985\x8e<\x09$\
+\xc8\x00\xd5\x0b\xec,\xdd\x97\xa8\xc2L\xc5\x95\x00\x84u\
+\x0bT\x96\x8a-\x07\xa8\x90\x18^\x99\x5c\xb8[\xa8[\
+(\x93\x18&k \x9a\xc6)\xb2eS\x81\xa27\x10\
+\xce\x02q\x15\x00u\xee\xf7\xe9\xf7\xed\xf7M\xe3\xb5\x97\
+Y\x96\x85L\xd6\x90\xd3\xb1\x81)\xf0\xc2q\xcb\x89\xbe\
+\xe5j\x22\x10\xa8\xff\xe8\x0b\xa3/\x8e\xbe\xd8\xc8t\x82\
+\xac \x80\xe3`\x84\xf5\x7f!\xb3&@\xad\x01M9\
+\xc0\x81XQI:\xb6T\x84]\x8f\xfd'fM\xe5\
+\x04\xae\x01\x12F\xcc/\x0eD\x02\xd6\x08%D\xb6O\
+-\x0f\x90&\x0d\x0a\xc0\xd2\xdeZ*\xe2$\x1cp \
+8\xa8\xeeR\xab\x0dP}\x1c\x82\x97\xea\xc0~\xb1\x1c\
+T\x9e3\xd7A`\xa5\xca\x11\xec\xe0\xb4\xf0\xb8|\x18\
+\x08\x1e\x12w ~V\x95\xfc\x1d\xf7K\x06\x9eq\x8c\
+\xfa\xdc\x90\x01N\xe8\xc0c\xff\x8c\x89\x81\x7f\xc91z\
+@\x8e\x11\x9c\x08TBc\xa5'\xeac\xd3\x93~\xb5\
+\x9e\xfb\xef\xd43z\x82\x124\xc7\x0by\x82\xa3I\xc5\
+\x82\x04\x04\x8e\x18\xfb=\xf3\x98y\x98\xffU$C\xf7\
+.\x9d/'\x985\x9c\x1d\x1c\xdc\xff'\xa8\xfb\x8c\x12\
+P&w\xb4Td\x8e\x11d\xfbH\xf5f\x8b\xad\xd7\
+\xaf\x83\xf9'\xd5\x07Z@@\xae8)$dfr\
+\xc0\x5c\x96\x90\x00\x00\xa8?\xe7\x94\xd6\xa7'8X\xf7\
+\xaaDwG\x99U. _/\xe2\xca\xc9\x1c;i\
+\xbe\x8cN6kz\x10q\x84\xe0\xde p\x86\x0b\x88\
+\x04\x0b2\xa1\x04\xfa\xc8\x97\x02i\xa7\x05\x86}\x0d?\
+E\x01\xbe\x17$@\x00p.\xc0:\xafJ\x88\xcb\xaf\
+\x02\x19\xe7yS\xe0\xe0\x9c\xc31\x82d\x11N\x11\xe6\
+\x91\x02\xe6\xac\xeebH\xa1E\x86E\x87Es\xa0X\
+\xc8\xf8@\x9a\xd1\xea\x01\x99\xa3 \xe8\x99\x94v\xe9\xa6\
+\xf7\x9aD\x02\xe7\xf7\xb7\x8b:\xc5\xe8\x15fM\x05\x95\
+u\x0c\x92\x90\x0a6\x09!d7\xe1L \xd0We\
+\xde\x91\x1b\xec7T4\xa9\xc0\xb3.\xa9D\xf3\x1au\
+\xc3qd!\x93\xd49\xed\x01\x11\xe7\x12$z\x14\x92\
+@\x0e\xe0_\x12H\xf0<\xb8^\x12\x1a\xe8i\xf3\xfd\
+$\xdc\xa8D\x13\x80\xc2v\xcf~D\xc5^\xeaF\xde\
+\xd2\x02\xd7\x05\x89\x17%\xc8\xfd\xbeA\x5c\xe2p\x13\xb0\
+\xc3I\xc5\xfeL\xa0D\x8f\xb3\x12S\xdd\xeafM\xe0\
+N\x22\x80\x84+\xfb\x12\x092\xc6\x85q\xe5\xb9\xb0\x8f\
+\x01\xe5_\xc6\xc9S\xa7\xca\x00Fh<\xd7\xcd\xf3\xe4\
+{\xd9\x87I<\xf3\xfb\xe8\xc72\xffx~\xb1\xb2\xcc\
+\xdf\x87J\xa5\xcf/\xb5\x06\xb8Z\x13~E\x94\x8b\x83\
+\x0cO\x89\x98nA\xb3f~\x10\xa00\x0e\xdc',\
+\xea\xe8\xa4?\xe9\x01[9'\x080\xb9\x9f\xf8\xcaz\
+\xa7 \xc1\xb9\x89\xff\x17\x03\xfd\x18\xf0G\xce\x92g\x03\
++=\x09\x0f\x02\xe3\x88H \xf1\xc1\xfb8\x9f\xf4\xb3\
+#&\x98_Q\xfe\x96\xf7\xc7\xef\x8d\x89\x00\xee\x8b\xf1\
+\xc1\xdf \x10\xfeG\x98\xc7\xe2\xd0\xca\xdaW\x0f\xbc\x00\
+\x19]US(\xeb\x1b\xff\x81\xfd(\xb6 \x12\xe0\x93\
+\xb0\xe2<\xe7\xfb\xf9\xff\xf8\x1f5!R\xee\x93\xf3\x97\
+\xeb& \x07\xc2\x0f'\x13\x7f\xc7\xf5\xf1w\xf3k\xfe\
+\xb0\x1fq]\xf8\x09\x8c?\xfbODNp}\x14\xd8\
+\xc4-\xe6d{\xf2K\x8d9\xcb\xb8\xb3H\xd8x\x9c\
+C\xe1T\xf7\xe7\xf3\x5c-s\xd3Z\x18x\x9e\xb1\x95\
+1\xcabF\xd2O\xc6\x8f\xb8\x80u\x0f\xb92\xb2\xc6\
+\x22\xaf\x85|\x1b\x99l\xf7\x07\xf4w\x13\xee0\x18\x84\
+\xf1\x13\x15\xf2\x9e\xf3\xf5\xd7\xd7\x8a\x02\xf2k9\xc0z\
+\xa7\xc8<\x8c\xbd\xfcp3]P\x9b\xd1\x93\xe3\x9b\x03\
+\xbc\xd5U\xc1[.C\xd6g\xe6\x85d\xe1\xf5\x15\x8d\
+ceu\xa0\xd3\x9a\x1eFdn\xec =\xaf\x92\x1d\
+\x11\x888\xeb\xf9\xe1\xb9\x0byl4a\xd6\x1c\xb0B\
+ \xe4\x80\xe3\x83U\xe7}t\x7f2\x93\xb7{\xde,\
+\xbd\xfe\xd9,}\xfe\xbd\xc9\xee\xabz\xd0\xdd7\xc6\xcc\
+\xac\xf2Y\x0e\x04\x16\x1e\x0f&flp\x80\xd9\x08T\
+\xc9\x039@\xe52]\xf5\x92\xc3\x92y\x01\x95L\x13\
+\x88\x07\xa0\x1b\x82\x5c\xfb\xc4\xc4\x11\x15D\xce\xee&\xdf\
+\x0f\x99~Au3\x19\xdc\xf8\x0b\x90\x8a\xcd\x93k}\
+\xc5\xa1\xb8\xac\xb9\xfeoe\xf3\xf1&pC\xa6m\xf2\
+\xb1\xc9G'[\x16\xcc\xf9\xd5zA\xaf\xc9\xddfi\
+\xfc>;\xfa\xfc(M\xac\xd1\xea\xa3\x97\x8fZy\x8c\
+\xe3\xb3U\xd2\x17t\xde\xd1I'\xc3-=\xe0n\x9e\
+\x22\x8f6\xba\xd4,\xf9\x1b\xdb\x8fo7\xbe]C\xc2\
+\xa5\x03\x86DH\xbfH\xb2\x85\xd3\xcf\x8b\xca\x113\xf7\
+\xe7\x07z\xceK\x89{bW\x8d\xfb\xee\x0d\xe9\x10\xb2\
+\x80d\xfa\xda\x83bR\xc8\x93\xab\x9b\x0d\x83\xc0\xce\xdc\
+\x95W6\x0b\x8e\x83\xd3\xd2<\xefW\xe2`\xa9\xaa\xaf\
+9Z\xc0,\xbd\xben\xb4\xf1\xc8\xb8#\xae1K\xaf\
+\xc7\x14Vc\xc8\x96\xba_t\xbf\xec~\xd9\x90$\xdd\
+\xa5y\xc4F\x18\x1d\x04A\x09\x9d\x14\x11\xe8.\xe4f\
+;\x985$C\xb0\xef\xd3\xd3JE\x86\x80Oj\x0d\
+\xee\xb8\xe0p\x89\x94,\xfdW2\x9c@X\xaf\x17t\
+\xbcW\x00D\x8b\x8c\x1c!\xef\xe5\x94\x83\x0b\x12\xc1\xf5\
+\xc8\xf9\xffbq\xc6\xd1\xee\xbfl\x96\xd5\x10\x925\xc8\
+\x11\x1cx\x1d\xcc\xc8\x8ez\xeb\x91\xd6;\xfa\xe7\xb0\xfd\
+[\xe3Jn]\x89P\xd6\x13\xca\xbc\xec?n\x96!\
+\xfd\xc9\x1aD\x03\x10\xd6\xabJ\x800\xfc@\x81\x08\xad\
+7\xbf\x16\x94\xf3HU\xde\x15\xc0\xf8\xc6\xce}\x02\x0d\
+\x87\x1c\x91\xe7\xc8\x81D/\xe6\x1d\x92\xb1\xbaQ\xfb \
+\xb2b\x040rl\xbbW\x8f\xd6\x1e\xad\xdd8\x16\x1c\
+\x84U\xf7\xba\xcc_%\xf2\x1c\xfa\xcf\xc1\xc4\x81\x81#\
+\x87\xe3E\x85v!An%\xdf\xea\xff\x1fy\xb6?\
+\x97\x00<\x8dj\xee5\xf7\x8a\xdd\xb9\xaa\xd8\x11\xf0\xb2\
+\xff\x13\xc0\xc2\xbd\x81cE\xcb\x0e\xfb\x13\x0e\x22\x10h\
+~\xcf\xfd\x110\xce\xf2\x0c\xfeT\xd2\x9c\xfaZ\xf6\xb5\
+g\x83c|\x95\x12\x00\x93r\x04\xe9\x05$`\xa42\
+\x8d\xc3\x1cI\x87\xb8\x1f\xd6\x0f\xeb\x92\xbfW\xa2wX\
+\xd7\xac\xb2\x01\xfb\xf8\xe3\xc0\xea`F\xff\xd7er\xff\
+$\xc4\xc9O\x05\x8d\xa7B\x09t\x1a\x07\xe7\xbf.s\
+T\x02\x01\xd6+\xd7\xcd\xf7\xe8s\x1d\xd9G\xe5\x9b\xf7\
+\xc1\x9e\xce\xbc\x81\xb4\x8es\x98\xf9\x02d^\x15Z'\
+\xc9\x95\x1f\xc0\xbe\xedj\x14 \xcdH@\xea\xfc\xcb*\
+B\xfb5\x01\x12-`p) \x0f\x0c\xa4_$\x9e\
+\x9c\x17\x90\x93y\xaf5\x81\xe4W\xc5\x99@k\x1d\xe7\
+0\xec\xec[\x995\x90k*\xcd<W\xee\x97\xc4 \
+\xe3\xc2|\xe1\xfc\xfa\xabzcY?$\xf4\x80\xc23\
+>\xf7If\xf7\xe3\x22\xd3\xa3R\xaf\xca\x8c\x07`r\
+\x90i\x91\xc9\xeaI{6*B$j\xa8\xc0\x12\xe8\
+\xef&\x19T%\x8a\xfd\xfd\x8c;\xc8+\x12.:_\
+\xa9l\xfb~\xca\xe7r=\x81\xf4\xd2\x91\x80\xcc\xef \
+{\xe6\xf3\x11\x84\x0b\xa4\x84\xeco\xec\x1b\xa8J\xc0E\
+\xc0\xba!\xd1\x14U3P5`\xbf\x81SA\x89\x1e\
+\xd4\x00\x1ca\x04\x82\x84@\x8ds\x1ah;\x81(\xe7\
+8\x8e\xbd\xfc\x97\xe1\x1df\x8d\xcc.-<\xe8t\xc3\
+=\x83\x5c5\x05\x9aJ2VZ+@\x0e\xb0n\x08\
+\xe0%o\x06\xc2\xcc\xc7\x1d\x15\x16\x026\xe6#\x9fK\
+\x0b\x1e\x9f\x1b{\xe5y\x7f\x94\xd5\xe3}\xf4\xec#\x97\
+J`\xc3~\xc1\xf3#\x00\xa1\x15\x0c\x04!\x09\x0f\xd8\
+\xdcQu`_\xe6\x95\x02\xc9-f\x0d\x89 \xf7\x15\
+*\xd7\x1e\xe8\x92\xe8\x06\x81\xc1\xfe\x1a\xe5\xb0\x99/\xec\
+\xc7\x04\xf0Q\xae\x8f\xff\x1f\xe5\x02c\x22\x80\xf3?\x92\
+\xe4\xc5WZ\xde`s'`&a\xc8\xf7G\x12\xbc\
+\xd8KN\xc2\x0c\x04\x22\x1c\x10\x8f\x85@\x16\xe4\x1f\xe3\
+\x16\xc9\x04I\x141\x9eQ\x1d\x81\xf5[I\x03Kb\
+\x81yG\x85\x9d\x9ew>\x17dK$Y\x8c\x09\x8c\
+\xfa\xff\xa7\xaa\xabD5\x17\xe6\x13\xf3\x90u\xcd\xbe\xc0\
+\xbc\x85c\x8by\xf4O\xad_\xc6uA\xfd\x9eq\x8f\
+\xc8\x0f\x9e#\xe7 \xf3\x87\xf9\x1d\xfd\xa3\xe8Gs}\
+\xcc\x93\xa7\xa6\x22U\x9cdQ\xcf\x81\xf9\xdf\x1d\xd6}\
+\xb5\xfbj\x83x\xe1\xf3\x02I\xe3\xb4\xfb\xfdO@&\
+\xc48\x92\x7fQv1\x16\x9a\xa3\x8a\x08\x89%\x10s\
+\x8c\x1f\x05\x0a\x10Sj\x05\xa0\x10\xdf\xedf\xd6$\x00\
+\xe8\x89\xa7\xe2\x98u\xc9\xdfUe\xc1\xdca\xd9\xc8\xac\
+9\x98\xad\x9e\xf7\xb9\xda#\xe9\x8e\x1e\x19\x0a\x16\x80\xd4\
+\x01\xfc\x81\x02\xc5&\xf3\xbeh\xa6;s\xfda'[\
+\x03\x82E\xcf\xb1u\xd4\x9c\xde\x04\x94\xe6\x9elZ+\
+\xb49\xb10\xb3V>8\xb8G\x1b%{\xad\xe4\xe7\
+NK?\xefc&R\xbb\xe4\x10\x8d.J\xf6\xebt\
+\xb9\x9f3K??&]\xf4w\x985\x19\x13\x0e\x1a\
+\xdd\x97\xeb~\x03\xdd\xe1@V@\x044\xc3\xef\x0bG\
+dUM \x0e`\x02vH\x86\xc4E\xe0\xe4kr\
+x\xbaC\xcc\x9a\x9ec\x022z%\x81\x923\x91!\
+\xf9\xb1:\xcf\xf6\x82\xaa\xadY\xd9#\xfb\x97\x9b\xe5\xca\
+LI,,h\x96~\x7f\x91Y\xe3h\xe18_\xac\
+\x03V\x0b\xd8U\x12^)\xc7X\x81+\xd0\xee\xfe'\
+f\x8d~7\xa4w\xe7\x9b5\x8e\x14\x81\xe2)\xdd\xa9\
+\x9d\xc9\x0d\xfe\xc7,\x93\x16\x16\x12\x9c\x19\xe5\xef\xfb?\
+\xf4W\xf7\xe9\x00\x98|\xb3Y#7\xc3\x82\xa1B\xff\
+\xefL3R\x1c\x85\xe5\x1a\x923\x0058\x18d\xfa\
+\x99\xb7\x90\xf1\x90\xf9\xe7\xfa$\x13\x98!\x8f\x1f\x11\x97\
+\xc5\x9eM\xaf4\xe4z\xcf\x9b\xa5\xd7\x09\xe9\xbc\x03\x05\
+\x139^^W;6\xd0Z6 *\xa2\x7fV\xc5\
+Y\xf7;mC\x83LH\x09\x90a'\xb3f\xfe\xd0\
+\xebK\x80\x89,\x89d=\x1d\xea\xca\x06\xc8\x86\xa5\xc4\
+\x92\xb3\x7f\xaf]\xe6G\x0a\xe6J@&\x127\x97\xaf\
+\x92\x83ii\x22K\x1494\x92^u\xd4,\xf4\xf9\
+\xa3/\x985\x0e\xe1f\x9a\xdf\x90\xe8\x01\xa1:\xb5T\
+f\x987\xe3\xef0k \xcd\x04\x02\xab\x0b\x81\x22\xf2\
+\xaf\xd1\x0f\xcd\x9aq\x07\xda\x079\x22\x8e\x99\xc6\x91\xca\
+--4c{KO\x15\xc7\x03H\x1e\x0e\x18\xba\xd5\
+\xa7+\x81t\x97\xc8PO\xe8\x8e\xef\x8eo\x02\x13\x12\
+C\x81\x15\xd7\xf7+T\x16h\xed\xe1\xe0\xa4\xd2w\xbf\
+\x0ef*\x8e\xb4\x1cA\x8a\xc6\xe70_U\xf9t\xb2\
+\xc1\xbe\x09\x80\x9fm \xb78|\x1c\x98\xcc\x0f\xb8\x1f\
+ \x07c\x1d=\xac\x03\x86\x1e\xdc\x9dD\xe6\xb9\x8a\xe4\
+a\xcf\xef\xce\xeb,!{\x9dY\xa3B@ \xc9>\
+O\xe5\xfaj\xb14+C\xdfm(d\x8b\x12\x0e\x0e\
+\x99\x059\x05\xa4\xf0\xc9 \x874\x19z\xe08 9\
+hc\x8f\x1c\x89\xb2\xcb\x95\x109Yj\x07\xec\xe7<\
+'\xc6\x9b\x839\xb2P\xd3cH%\x8e\xc4%d]\
+R\x91\x18\xbbl\xea\xfe\xe1\xf3\x87\xf1@mf_\xb3\
+\x1c\xa8\x14\x87\x92\x1eB\x12\xdb\xea\xe9\xf7V5\xf6\xf9\
+\x09\xef\xd1,\xcf\x8f\xeb\xe1\xe0'\xc1J\x8b\x0cr\x95\
+ \xf0t\xee\xa2B\xe2\x08**\x92J`\x83@\x80\
+\xbc\x14\x87\x07N\x10\xe3>\x19>]\x91.N\xd6\x8b\
+c\xa2\xf3\xc9{!I`\x130\x13\xf0\x8b{\x08n\
+\x0b\x0f\xe0\xb8?\xa0\xd5\xec\x0f\xc8\xcd!\x17G L\
+k\x0e\xf3\x86uw\x8cY\xd3:#\xc8\xa4;\xe4\xe8\
+\x96S\xb9\x17\xf2\xd1{\xa8\xcf(\x01|\xf75\xb3&\
+1\x81C68\xbb{q\xf8p\xdc\xaf\x93\xfe9\xeb\
+\x89\xe7\x8f\xe3H`\xae\xc0\xc9!\xeaBx\xf4\xdb\x9a\
+5\xfb9H&\x023\x91B\x0eG\x995\x01:\xe7\
+\x85\xb8YL\x0b\xc6\xd4`\xf0\x0b\x5c\x1e\x8e\xf9\xcb\xba\
+c\x1d\x11\x18\x9c\x93\xad\x06tU6\xac\x04.\xbc\x1f\
+\xff\x0e\x0e\x01!>hmrR9!\x99<a@\
+\x82\x8c\xc0\x92q\xa1\xd2J\xa2^\xefw\x84\x15=\xd5\
+\x9c\xdb\xac\x0b\x12\x15p\x0e\xd0B@\x02\x80}6 \
+\xd1\xfc~@~ \xb7\x0ak8\xdf\xa7B\x0f\xeb\xc4\
+9Pbo6\x09.\xf6\x05\x12\x5c\xf8\x1b\x04z\xac\
+\x07\x02N\xe6\x13\x01\x11\xcf1\xbe\xf2\xbc\x08\x80\xb8~\
+\xf6\x05\x12T v\xd9\x7f\xd4\x1a\xe0\x9c3a\xdf\xa0\
+\xe5\xc5\x13\x13\xf8\x13T2\xe9\xfd\xe7\xbe\x17\x0a\xb2q\
+\xb1\xb79\xb2\xaa\x13(\xe2?\xe3\xff\xc7@\x8e\xf5\xc2\
+kL\x00DR\xb8\x98\x00g\x1c#K<\xf3\x95\xcf\
+\x89\x01\x1b\x08c\x12\x14\x5c'\xfb\x02\xcf\xed\x1f\xa1g\
+\x9e\xeb&\x11\xc0\xfd>\x15z\xcb9G\xf8;\xe6+\
+\xe7\x1a\x01#?\xf39\xacG\xd6=\x7f_\xd9\xf39\
+\xa7\xca8\xa1w\xcfx0\xbe5AR\xc6!\xb6X\
+\xb0oq\x1d1\xc1\x10[\x9dI\x90Q!\x8f\x01.\
+\xf3\x83u\x1a\x12\x5c\x9e\x18'N\x0c-<\xee\xaf\x04\
+\xee\x06\xe2T\xff=Px\x108\xec\xffT\xf8c\x0b\
+\xd3\x22Z?\x5co\x0c\xa8\x19/\xee\x9bq\x82\x1c\x14\
+\xc4\x12\xef\x8f\x05\x8c\x88< \xa1\xc2\xf7=\xef-\x15\
+e\xdf\xc4\xdf\x8c$\xc6\xac#\xe6/\x9f\xcb|\x00\x09\
+&\xe4\x17-q\xceQ\xa3\xf1\xec\xee4k\xc8\xa0A\
+ \xc9\x7f\xa6`3\xd1-j\xa6\x0a\xc7\x9a\x82\xba\xcc\
+\x14\x09\xda\x0aM\xc0!G\xc7!\xbal\xc0TF\x09\
+h\x9e\xa0wT\x00\x00 \x00IDAT\x09D\xed\
+v\x9a\x8a\x92;\x22T|\x95\xa1t\xd6T6\x1cc\
+\x03\xfe\xa96\x9c-\x9a\xdeZ\xe4\x81\x0c\xb0u\xa6H\
+\xa9N\xd6F\xfd\xe3\x06\x12\xbcN\xb2uk\xab\x80W\
+nl\xb9\xce\xd7@\xf3\xd5c7z\xbbYz\xdd\xc0\
+,\xfd\xfe\xfb\xaa\x88\xb2 \xf6\xc9]\xe4\xe6\xc0\x94D\
+\x04\xac\xdfs\x8a^\xedp\xc4\xf0\xcd\xe1\x9b\xb9\x15\x22\
+C3q\x88]\xce\x09\x87\x09\x87X\xf2l\x90\x22\xe2\
+\xe8\xb8\xde\xae\xb9\x89\x97H\x9e\xee\x87JD\xbc\xbd9\
+\x80 '[\xa18\x0eY\xc4\xef\xb6f\xfc\x04\x09E\
+\x85\xc1\x03V=\xafL\x9a\x96\xfe\x7f\x7f\x90Y\xd5\xe3\
+N\xc7Eq\x10,\x0c\xbd\xa9y\xceL< \xd9\xe8\
+\xcb\xab\xb2\xd1on\x96{\xcd3d\xd4+\xce\x82x\
+\x8e\xbee\x96^\xb7*:\xe5\xe8\xd6{\xe5\x04\xf2*\
+\x91\x94\xf4\x8f\x9aU\x12&H\xad\xe0Np\xf6\xe99\
+\x19\x1cT\x02\xd0\xb5\xb4`\xc7\x1b.\x8bC\xcd\xd4r\
+\xb2\xb1\xe6\xdd\x81\xaaH\xd8\xf3=\xa2\xc8\xcc\xe5\xde\xe0\
+\xcf\xd6@3\xf7\xde\xfeU\x8e\xe7[\x9b\xca\xa4\xb9\xb5\
+\x1b( ;\xb0V\xf8]>\xc9\x18\x076\xac\xb2\x83\
+\xddi\x96r\xaa\x15ew\x8c\x1489\xb4~+\x91\
+\xd1\xbd\xac$N\xfc\xa0_\x5c\x1b$\x1b\xc5\x9f\xe4\xa0\
+,)\x04\x09=\xc8\xba\x0f\x87\xfc\xb2A\x0b*j\x0d\
+\x06\xd6b\x90\x82\xb3\x02\x95%\x81s\x9bY\x13\x800\
+\xff8\xc0y\xee\xb0\xc4\x8al\xcfI\xa4\x8e\xd0|\x86\
+\x93\x03\xb90\x10EZ\xdf\x0e\x15\x85\xd5\x9f^\xcc\xf7\
+k\x1d\xeeR\x90\x1a\xc3\xa6\xc3&\xc3&MO&\xdf\
+G\x0b\x07\x0e\x13rj \x1f@\xda\x88]\xd6\xd9\xd3\
+\xe5h\xfa\x01\xa6Jr\x8f\xec\xd2Vj\xb5AN\x08\
+\x12\x17 \xd8\x1c4T\xa0\xe5\xd8{\xc0\xac\x0d\x15\xd2\
+K\x7fN8<8\x0e\x1c\x101\x80\xe4 \xb9]\x88\
+!\x9e\x1b\xf2\x85\xe8\x1a\xff]\x99z\x12\x04\xf4\xcc\x03\
+\xddWb\xc0I\xacbO\xef\x02\x01\x1a\xc7\x01D\xc5\
+\x93\x03\x82\x03\x08\x87\x99\x7f\x1cD\xec/\xeb\xa9\xe2\xfb\
+\x0b!\x1f\xa8\xa0\x89\xcc\xcc[vv-\xadM\xb0\xfd\
+z\x0b\xd6\xceJ\x5c\xd1\xb3\xca\xbe\x22\xee\x06\x87Fs\
+\x80?$\x87\x8c\xf1]\xcc{\x05\xcb\xf3\xa15\x00\xf5\
+\x009\xf2\x8cC\xb7[ii\xc8\xbb\xf8\xbe\xd51\xf1\
+\xde\xc89A\x9f\x98\xcfe<\x80H\xc6\x9e=\x1c\xd5\
+\xaf\x152 '\x93\x5cK\x81\x0e\x89<\x1c\x00\x1c\x14\
+dz \xe5\xc1\xf1Q\xe05|H\xfb#\x90\xe5\xed\
+U\xd1%\xc0\xe0{A\x80\xa9e\xc3e\xeb\x90\x89%\
+\x90\x22\xf1\xacV\x1f\xaf\xd83\x1fa]\xe7\xfaHH\
+\xa9\xc7\x1f$K\x7f\xa0Y\xc3\x22/\x0e\x018\x0f\x9c\
+\xf3\x81\x96\x14\xb5\xd6\xd0\xe2\xe5\x10D\x02t\xb5\xc4\xf5\
+/6\xab\x1c#Fu\x9b\xc9n\x83\x1c\x99s\x18\xd0\
+\x22\x00\xf4\x1d\x87\x97\x84\x16-e<O\xcd_W\x87\
+a\x1d@Fx\xa6\x02G\xad\xbb\xb1s\xd5j\xc0\xfa\
+\xfd\xad\x12\x13$\x84\xc7\xbcGv*+6\xf7\x054\
+z\x03%\x1c\xd8OY\xef8\xd2\xf8\x11@I\xe1t\
+\xb8\xdc\xac\xe1l\x01iH\xe5\x8c\xc4\xdck\xcd\x1a\x12\
+PZ\xd8\x90\x89\x12G\x8c'\x84pd\x09\xb8\x99\xcf\
+\xcc'\x02\x0d\x10\x94\x04*8\xd0@\x96\xe9\xa5f^\
+\xc1iB\xcb\x90\xd4\x91`\xdb\x1f\x03I\x89\xc3\x0c\xf7\
+\xc2\xa7\xcc\x9a}\x80\x80\x009-\x1ch\x05\xa6\xc37\
+\xcc\xea\xbe\xe5\xad)\xf4\xfcs?$~Ab\x8aL\
+\xd4\x91\x1c\x9c\x0bpX@\xfeJ\x825\xe8\xd7{\x02\
+\x19\x84\x84\x12\xbe.3I\x00\xc5\xfa!\x10g\x9f%\
+p$\xf0%\x91\x8d\x1a\x06\xad\xd7B\x0cx\xc0\xcf\xe7\
+-\x1dZ\xb7\x98O\x81l\xd3\xff?\x09N\xc6\x95\x84\
+\x13\x88\x22\x02$\x02\x15\xd6;\xfb&\xf3\x80}\x98\x84\
+\xd9\xa5fMKI\xac\xacr\x9d\xac\xc7\xc8y@\xe2\
+\x83\xf3%\xf6\x9e3\x0f\x17r\xd9\xb9\x120\xcd-\xe0\
+\x8f\x5c\x00\xff\x09\x15\xea\xc8\x09\x00\x12\x81\xf9\xcb\xf9\xc2\
++\xa4\xb0\x8c+\xcf-\xa8\x98\xf8\xf71\xee\xbc\xc6V\
+\x02\xc6\x85\xfd\xa6B\xdb\xcb\xdfS\x81\xe7\xfb\x09\x84\xa3\
+|_@\x08\x0c\xb3\x0ab\xd1\xf7\x9f\xe7\xbc\x15yj\
+\xe0\xce\xe7<1\x97\x96\x09\xf6\xd7\x90\xc8r\xe4@L\
+\x00\x10\x10\xf3\xf7 \x9e#+\x7f$u\xe4y\xe0?\
+ S\xca>\x8d:\x0c-<\x0b\x86\xc2\x00\xcf\x83\xf9\
+\xc3u\xb1\xef\xa02\x06\xd2\x12\xe4Al=\x5cD\xbf\
+\xa7\xc0\x11[L\x98\x171\xc1\xb3\x80\xfc\x0eZ\x85\xf8\
+=-\xae|~l)\xe0\xf9\xb3^#\xf2#\xce\xd7\
+\x98\x18\xc0\xcf`\xbd\xc25Ak\x1c\x89aq\x80\x81\
+\xa0%q<\xba\xdc\xac~\x8f\xefo\xda\xd7ATM\
+x/9,\xe87ga\xa6*\xcf\x226]X\x94\
+q\xc8\x9ddf\xb7\xcc\xd3]!:\xcf\xe5)Y6\
+\xc2%\x1aH\x02\xac\xba\xfa\xbb\xdc\xb3h\x01{\xc6\xec\
+VG\xb4\xfb\xbdYC\xe2\xf6p~d^A\xf1\x0d\
+\xc5\xc2\xaaC\xd5;v\xa8\x1c\xf2\x9b\xf5}\xe7\xab'\
+\xf1\x93u\xc0\xbaM\xcd\x9488\xb1\x09<\x0d\x82\xfc\
+\xe5\x9c8\xc8\x10Nw\xa4\x80\xf0\xb1Q\x9f'\x07\xed\
+\x8b\x82,\x9fmV+\xea\xa3O\x8e\xf6\x1dY/\xf3\
+\xfe\xa3\x03FV\x89\xb9\xdf,W\x16\x8al\x17\x13\xfa\
+.m\x80@a\x81\x92\x91A7\xc4\xc5s\x82\xb0\xef\
+\xa2\xfb\xba1\xfd\xbc\xadY#\xe7\xc7\x06\x0f\x14\xdd\xb6\
+\xeb\x17U]\xe4\xfc\xbe\xcb+\x02\x22\xd7\xa3/\x96\xa3\
+|\x8d\x02\xc9\xa5\x1a\x96ge\x88a\xbfw\x125\x0e\
+\x142\x8e8\xa2T(\x15 O\x9e<y\xd2\xa4\xb1\
+\x84\x1fj\xd6\x8c#\x99:\xc9S\xf4o5kd\x0e\
+\xb71\xab\x0eD\xbf\x94Yz\xfdq\xff\xa3>9\xc0\
+\xfd\xa1fy\xc2\xe7\xca\xc6\xe8\xd5fr\x04\x0fiH\
+\x01-\xf1\xb3N\xfay\x85d\xcbW\xc7\xd5Y\xbdQ\
+u@N\x8e\x03\xb9u\xac^\x80$#osw\xc8\
+!\xb8]\xd0\xd0\xe3j\x05k\xf4>\xb3\x0a\xb1\xe4>\
+\xbb?w\x7f\xe9\xfe\xd2 d\xa8\xfc3\x7fq\x84\x98\
+_:\x80\xac!\xc0Z\x02\xdc\x91\x80|gM\xb3t\
+\x7f\x1b\x9be\xc8b\xee\xb9\xf5q& D\x7f\x15\x95\
+\x88w\x97\x04\x0a2y^\xa9&c\xfc\x22!0>\
+nV\xe5\xf0\x1c\xdaI\xc0\x8a#N\x8f?\xbf\xdfX\
+=\x9f\xab\x0b\xda\xcfF\x06\xa7\x03\x15R\x90C\x8f(\
+C\xf9a\xb3\xccyP\xd8\xbaq8t \xf5\xd7\x9a\
+\xa5\xf1\xdd\xde\xac&<@2\xa0\xd7\xed\x15|2\xe1\
+Tty\x8e8\x14<\x87'\x0a\x946\x05\xf4\xa5\xf7\
+\x98\xfd\xe1\xa7\xaad\xe3\xd8j\xde\x0e\xe7\x88\xac\x8f^\
+d*\x9c\xbb\x16\x1d\xed\xb1\xb3U1\xd3F<M\xb7\
+\x9c\x00\x81\x80\x0bh5\x1b<\x0e\xc6\x05\xba\x9e\x1d\x86\
+\x1d\x87\x1d+\x82\xa7\xfb\xbeY=\x00\x87\xabT!\xfe\
+x\xb7w\xb7ws\x10\x92\xc0x\x8dY\xe3\x98\x12\xe0\
+\x92\x98\xe0:\x14\xc8x\xe0L\xc5m\xa9\x82\xf4Hn\
+F\x99\x97\x8f\x04}\xe2\x17\xb9\x9a@\x09\x88@\xa6\xb0\
+\xce\xe8\xd5\xfdZ!%\xa3\x15\xc7\x13D8\xf0[\xa6\
+\x80g\xcb\xc6\xb1\x81,\x8d\xf9\x19\xd9\x96\x99WQ\xf6\
+\x8b\x1erX\xf2\xa9d\x03y&1\x8d\xe3\x82cE\
+\x82\x8b\xcf\xc7\x01\xe3`\xc6q\x5cZ\xf3r\x1e\x97\x05\
+*\x0e\x1b\x19u \xb0\x04`\xb4p1^\x04 \xb0\
+\xfd\x7fL\xe4i \xdb@\xe4\xa8R\xe8\xeb\x97\xfbD\
+\xc6m=%\xb4\x81\xfc\xb1\xff\x0a\xf2\xec\xf2\x9eo3\
+k\xfe\x9e\xf7\x03\x9d~e\x91muGU\x01\xa4\xef\
+\xdb\xb4p\xd1k/\xf9)\xf6)\xae\xcfU4P\xcf\
+\xa1\xc2\xaeu\x9cv\xab5\x865\xaa\x03\x9a\xc2\xfa\x19\
+\xdd\x8c\xa62,\xc4\x99\xcb\xf8\xa9\x07\xde{\xe7!{\
+c\xdf\xa1\xe2\x8f\xdc%\x09\x12\x1cT\x05j\xde\x9b\xad\
+\xf3\xde\x1d*\x02\x0e\x1cJ!\x0eH\x14;\xc9\xe9&\
+J\xccP\xf9\xbdFrw;\x17\x15\x9d\x81\xf9\xf1>\
+}\x9f\xce\x93\xee\x8bjU\x82\x14\xf5OE\xc6\xd6e\
+|g\x05\x0e\x17\x1cj\xceq>W-\x00\xc3\x1b\xcc\
+\xa6pg\x94uK\xa0\x07\xf2\x8f\xc0\x8d\xeb\x052/\
+N\x06Tu<\xf0g\x9fe~\x90\xe8\x8aPb\xae\
+\x87\xf1\xe3\xff\x83\xcc\xa4u\x86\xe7@\x8b\x05\x8e/P\
+|*\x83\x9cg\x04>$\x1a\x98\xff8\xbaT\xeey\
+\xae \xf8\xe0fP!\xc4IT\x09\xd8YO\xef\xca\
+V\x03\x06\xce[\x12\xe6\xa8\x8b\xc0\x150\xe1d\xa8e\
+}s~\x80\x08$QGB\x00$\x19\x89W\xd4\x82\
+x>\x04 \x13\xae;^X\xd8A\x8aq\xbep_\
+\x1a_\xaf\xd8\xe3oE\xb5\x18>\x9fD\x0c\xc8S\x9e\
+#HK!J|^\x91\xc0\x88\xaa\x1d\x04@\xec\xa3\
+@\xf3E\xd6\xdb-a6\xbdB\xec\xad\x11\xe8\x92\xb3\
+\xeei\xed\xe0y\xf3y\xa8D\x00\xa1g\xfcy>\x5c\
+?\x89j\xc6\x8f\xeb\x8b\x81>\xfe2Pm\xce\xd9\xc8\
+\x05\x10Y\xd4\x99\xcf\xcc[\xe6i\x84r\xf3\x1a+\xf2\
+\x9c\x13\x91d\x91y\x8aZ\x87\x90\xc8\xbe\xcfp\xdd\xec\
+?\x95\xa4\xaf|oL\x04<\xe4\xea\x00\xe5\x15\x16\x7f\
+\x12\xd6\x14\xfcf{e\x99D@\xf9\x99V8~\x1f\
+\xef3\x06\xa2$xP\x09 \xf1\xc7z\x8f\xa4tQ\
+Uan\x09\x80\xc9\x808`\x9d\xb3OI\xdd\xc3?\
+\x8fu\x1a\x02|\xf7\x03\x22\xc9`@D\xb8\xaaU\x9c\
+\xdf\x04\xec\xb4\xc0EY=\xfc#\x9e{L\x90\xc0i\
+\x03\x19-\xc8lZ\xe0\xc4A\xe6-\xa4!\xe0\xe7\xfc\
+$\xc1\xeb\xf3\x82\xb8\x9b}Q\xf3\xa9\x1b\x995$\xd8\
+\xf8\xe3\xb4\x9a*\xc1\x09r\xc7\xe3X[g\xd7g\x8e\
+ \x8b8\xc7\xfa\xed\xfb\xed\xfa\xed\x1a\xa4=\xf1\xc0\x09\
+\xc3\x89\x16\xff\xd2\xd24a\xf5\xeb\x5c\xc1\xc6\x11%\xc0\
+\xc3qfC\x04Z&\x1d\xfa\xee\xc6\x22\x1b\x97!W\
+\xe7*\xc3\xfc\x86\xe6\x01\xe1\xd0\xe0@l`\xd6d\xd2\
+\xf5\xf9\xdd\x05\xc9\xac\x17y\xbed\xf362\x84d\xce\
+\x80\x06\xa2\x87\x0c\xb4\xf3\xc5fJ(\xec^\xa1\x8d\x04\
+\x94\xae[\x8al\x9b\x1d\x18\xe7TD@\x7f_\xb2\xb4\
+\xf0&\xf77\x13\xdb\xec\xd1\x95}\x19\x07\xa8?\xa1?\
+\xbe?\xbeNXz\xce3T\xfe\xc2\xa6\xb2.\x92\x10\
+Hg\xba\x05\xbb\x052\xc9\x89z\xf0=p?W\x01\
+\x03\x1b&P#M\xac\xfe\x17f\x15\xea\x81\xa39\xfa\
+\x93Y\xfa\xdcG\xcd\xd2\xeb\xad\xc9n\x11\xe2\xc2X\x80\
+\xcfJ\xf639\xe27\xd4\x9es\x97k\xd3\xe7wg\
+$;\xb3\x8e'\xbd\x92\xa3\xc7\xcc2Iav \xbb\
+\xbf\x99U\xb9\xba\x14\xe4\x17\xa4\xc2a\x05\xf2\xe9=\xe8\
+?\x96\x03\xb0\xb4z\xdf\x80\x1e\xaeW\x02%*N\xfd\
+\x13f\xe9{\xce\x17I\xa0H*8\x98\x08t\xc6\xff\
+a\xd68\xb6s\xccr`\x91\x1d\xec\xb4\x0c\xb3\x83\xd3\
+\x9flV\x13F\xce\xfam\xb3\xf5O\x95\x04\xcf!\xa2\
+\x1c\xe8@\xfd\x04\xf9\xca\xbd\x7f\xfb5\x01\x06\x10rZ\
+Ql\xfb\x98\xa7A\xb0\x88T\xd23\xca\x13\xc9\xd2\xdf\
+\x8d\xb60\xcb\x88\x80\x1cHw\xf7\x18\xab\x849\xfc\xa3\
+d\xb9\x85\xe3\xa1\xee\xa1\xa6\xa2\xc3\x06D+\x03\xe4q\
+d\xd2\xc9\xdc\xc9\xd1qd\xc4\xdf\xd5k\xba\x7f\x91\x83\
+\xf3\x03M\xef\xf7\xd6\x14\xa0\xc6\x1c\xb4\xdc\xbf\x1c~'\
+\x15So\xfb\xf0\x9062*\xf7\xe8\x10sp\xb2\xb1\
+\x01\xe1}\xa3Y\x0e\xb42\xa4\x8bV\xa1nQ\xf5>\
+\xfeN2tr`\x86\xf5\xcd\x1a\x87\x84\xfb\xa5\x82\x85\
+#\xab\x00\xd0+\xc9\x90\x9c!\x0f&rOwP \
+\x8d\xa2wZ\xa4f\xb9\xe5\xe7{\x0d\x84Y\x15\xa7a\
+\x19\xb3\x1c0\xae8\xac\xd8\x8c\x1f\x99[\xf6A6\x5c\
+\xae\x93Wzm\x95\xc0\xeb.4k \xae\x1c\xe4d\
+\xb6\x09\xcc_l\xd68\xe0\xcc7\x02\xc4\xdd\x05\x01\x07\
+1\x01\xd4\x9f\xfd\x98yr\x8d*\xf6\x17\xab\xc5d\xd9\
+\xa9\x95\x22\xaf@\x8a\x93\xc2+\x8dd\xcaao\xbe]\
+\x8e\x18\x19n8\x09~\xa9J\xd1/\x95\x00\x02\x0a\xcc\
+9\x80c\x07\xfb\xbaH\xe9\xd23\xc8\x09\xb6\xe1\xcc\xa2\
+&\xe1\x09\xce\x1d\x8a\xba\x85\xab\x09\xc8AO\xbb\xd5\xd9\
+\xc3YM\x85\x12\x07\x8b\xc4\xd2\xc8\x1d+\xc8\x80\xa6\xca\
+XA\xaa\xf7S\xe9\xc7C\x9e\x8a\xc3\x0e\xfb;\x01\x0b\
+\xe7\xd2\xbd\xba\x9f'\xf5\xbc\xa3\xdc\x13\xe7\x0e\x0e\x1e\xd7\
+C\xcf2\x95\x12\xd8\xe8!\x9be\x1c\x80\x22S\xd1\xe0\
+\xb9\x81\x00\xbbN\x15D\xc8a\xa9x\xaa\xc2I\xa2\x9d\
+\x0a\xb7\xcbP~S\xe7\x8a*\xbc\xc8\xe2\x8e\xe6\x98\xa5\
+\xd77\x17\xf5\x95n^\xb3\xf4\xfey\xccjE\xdd\x13\
+g\x90Y\xaa\xf2\xe7\x10w*!p\x91\xa8\xe2\xc1>\
+\xe0$\xb0p\x00\x88\x9b\x03\xe4C\x7fC\x7fc\x7fc\
+\xe3\xb0\xa12\x01\x89\xd2\x16\xea\xc9G\x0dF\x01\x8aW\
+\xb4x\xae\xaf\x97\x9c\x1d$\xb6\x8c?\xaa\x17\x04,\xec\
+K\xf8\x13$\x8eX\xef\xccO\xc9\xe3\x11\xa89\x99\x17\
+\x01*H\x87\xebE.I\xeb\xdbcr\x089\x9fE\
+\x229\x86\xe3:_\xe1\xd0\x81\xa3c\xec\x16\xe9/\xbf\
+x*g\xc3p\xad\xd6\xff\x9a\xf2G\xc6\x02i\x1b\x8e\
+9\x8e7j\x0e sp\x90\x09\xfcq\x8c!\x1bD\
+\xae\x15\x99_\xed\xf3\xc3)fM/8\x0e<\x0e?\
+\x90Z9\xea\xddbf\xcd~\x83\x83\x8a\x9fBB\x9c\
+u\x0291\x15x*d\x04\x8a$\x04qx\xb9n\
+Z\xfe\x08l\x91\xaf\xe3\xfc\x86\xbd\xff#f\xf2k\xce\
+j\x1ce\xf6{ \xfa\x04h\xb4\x8a\xd0:A\x22\x96\
+\x80\x1b\xb9RZ\xa3hE\x80\xbc\x92\x00\x015\x08\x12\
+v$\x92\x08Py\x1eT\xe4\xd4\xb2\xe3\x81+\xef\x8b\
+\xf2\x98\x9co\x9c7\x91\x8c\x95\xc0\x03\x92N\x90\x09\xf4\
+\xcas\xff$\x90\xa8\xdcs.3\x8e\xb4z\x00\xfd'\
+AA`\x16\xf4\xc5\xbd\xd7\x9d\x16\x09\xee\x9f\xf5#\xf2\
+KoIb\xbc!\xf5\xe3}\xec\x8f\xdc\x0f\x09\x13\x12\
+4\xdc7\x89S\xb8&X\xc7\xba>\x9f\x87</*\
+\xd21\x90e}p\xde\xb2\xef\xc4\xde\xea\xd0B9\x8d\
+\xe3%\x92X\xf2yQ\xa6\x0fd\x93\x0aK\x1e\xf8\xc6\
+\xe7\xc7}\x13\xb0\xce\xad\x87?r\x12D9HZ\x11\
+gj\xbfb>\xf3>>\x8f\xfb\xe2~\x08\x5cc\x85\
+\x9f\xfb\xe0\xbac\xc2\x83W\x12>\x5c\x1f\x9f\x13!\xe9\
+\xff\x7f\x13\x00\xf8\xbb\x5c\xef\xdc\xd4,H\x900\x9f\xd9\
+/\xa2ZF\x0c\xd8ye=\x91x\xe3{h)\xe0\
+\xba\xb9.>7\xce\x13~\x0fR\xf0N!\x16\xd4\x02\
+;\xbcF\xad\xdd\x14\xea\xe0\x98\xe2>\x18/Z\x1e@\
+\xf6\xc0e\xc5>\xc1\xbc\xe1z8\x7f)\x08\x92\xb0\x03\
+\x01\xafx\x0b\xf2]Z\x1f\x9c\xa3@\x9cl\x93\x1f\x9c\
+\xdccr\x8f\x86K\xe1\xef\xce\xa5P\x12%$.?\
+\xd0\xed\xd1\xeda\xc3\x05\x14Y\x15TgW\xd5\x06\xeb\
+z\xd3\x9f/\xfa\xc5T\xf2\xf3\xe5>S+\xcby;\
+\xb8\xb7\x0e`\x7f\x8fY\xba\xa0\xbd\xccjO\xb4\xcfO\
+\xb1{\x8f\xde\x98l\x8b\x06\x1a\xc9\x06n\xef\xbeH\x13\
+\xfe\xfeF\xf7X\xe4F@L\xad\xce\x9a+\xad\x06\x14\
+\xbb\xa0\xe9\x85P\xe5\xd6\xa8\x1b2y\x03\x90s\x02\x00\
+{\xdf\x17\x14`\xfc\xa7\x92\x82\x8d6,\xe4\x80\xdd\xbf\
+\xcc\xaa\x9c\xd0\xe4Uf\xe9}\xd7$3(\xf1cf\
+\xaa\x04\xffM\x5c\x02\x17\xaaBk\x99\xd1o\x9b5\x07\
+\xbd\xd5\x17\xde\xad\xccMC\xca\xc4\xe7\xd3*\xd1?k\
+\xd6\x90\x1c\x0a\xaa\x98I\xe4\xc7\xa5/?R\xc5\xe6\xab\
+r\xa0\xf7P\x22b\x9d\x9a\xc0\xc8\xe4~\xdfhz\xe8\
+\xfe\x13*\xa4r\x8c\xe1\x16\x18\xad<z\xd9(\x1d\xf4\
+\xa3\xdb\xcc\xd2\xeb\x1f\xcd\xd2\xff\xdf\xa3L\x94L\xb5\x98\
+\x1c\xc5\xfe<\xb3Z\xb1\x1f\x166\xab\x15\x8e\xd1\xf5f\
+9#_z>\xe9\xe5\x84\xdc\x08\x92\x22*w\x92\x9f\
+ca\x8f\xc6\xcdr \x99\x0f\x82\xe1A\xc9\xc7-Y\
+\xc6c\xf2\xa9\xc9\xa7'\x9f\xae\x90\xb4\xfe\xb5f\xaa4\
+\x7f\xbc\x09x\x99h\x90\x09\xc9!\xf2\x83.\x1e\x1cl\
+\xdc\xe6\xc6\x9c\xd5\x90ZZ\xde\xf2EM\x86\x12(%\
+\x89\x1f\xcdGO\x08\xff\xb6\xbb\xb2\xbb\xb2qt\xb6.\
+\x90\xdc\xb1\x0d\x02\xd4g\x0d\x8d\x0b\x95x\x12]lh\
+l\xb08\xc2p\x13|Y\x10\xc7\xd8\x1b\x0c\xb4\x8e\x0a\
+B\x95_+\xc8\x136X*\xe1\xf4n~C\xe4\x93\
+r\x14I4\xf8\x86\x0bd\xeaYgs-\x81\xed\xd7\
+E\xa6\xa4\xd6\x01O\x1c\xd0*$H\xba\xb7p\x1c\xaa\
+}\x03G\x00R9X\xfe\x09\xacD\x1a\x85\xac\x15j\
+#\xfd;\xccj\xc5\xda\x11I\x90\xb3\xac,G5B\
+\xc6\xc8\xe0\xae*n\x0a\xe9o{\xe6\x16r)\xad\x87\
+\xe1\x00\xb3f~\xaa\xd7\x16\x19\x18Z\x91\xba\xeb\xcd\x9a\
+\x00\x0av~\x0e0\xe6\x1f\xad\x0f@(\xf7V\xe5\x9e\
+\xc0\x9c\x9e\xe35%\xcb\x85#\xcd>H\xe2\x13\x84U\
+\xed\xcd,\x1b\xf9\x1e\x0a\xa0\x81\xc6\xe3\x98\xc1\xaa\xces\
+\xa4\x07]rE\x0e\xe5d\xbc\x98/\xcc\x1f2\xf78\
+\x1c\x90\x81\x92\xc8D]\x04\xa89\xad\x12d\xb2\x95X\
+\xf4D\x92X\xff\xbbc\xcc\x9aD\x9cze\xbd7\x90\
+\xef\xe7\x80\x0c\xec\xb9\xde{H`Me\x8f\xf9\x0fg\
+\x04\x89\x1a\xd6\x15\x89\x92.@\x199`\xa9\xbc?0\
+\x15\xf2\xef\x15\x5cT\x09\xbe\xa2\xd6\x22\x1c\x7fzg\xd9\
+g\xa8\x90\x91x@\xff\x9b\x00\x8f\xfb#\xd1Hk\xdb\
+W\x84\x88\xa1u\x02\xae\x17\xe4\x18?k\xd6\xc8\xecm\
+W\x10a\xbe\xbfRQ%\x90\xa6\xa7\x9a\xfdU\xad\x01\
+\xde\xd2\x14\x1cr\xdf\x97\xe8\x85\x9f\xd7,=\xce\xd3\xcd\
+\xaal\xa2s|\xfc\xa0\xc8a\x0ek\x16\xc7\xc4[\xcf\
+h\xd1\xb9N\x9f\x7f\xa9\xe4(\x95 \xcc\x0dT\x076\
+\xady\xa8A(\x11\xd9\x1d\xd4}\xa6\xfbL\xf3\xdc\xc4\
+\xc1\x90\xee\xa2\x04\x828\xa6\xa8\x94(1\x0c\xb2\xc0\x11\
+\x1f\xfc=\x09\x19Z4\xe0\xaa@\xe6\x94\xca\xeb\x8f\xca\
+u{\xcf\xf3rf\x0d\xb7\x0d\xadC\xccs\xc8\x15I\
+tA\x9e\x0a\xb7\x05\x15\xbc\xc7U\x09\x82\xcc\xf3\xcd\xdd\
+\x9b\xba75\xfb\x04\x90p>\x9fJ=\x0e \xf3?\
+:\xae\xcc\x1f\xe6\x17\x15V*\xbf\x04\xe2p4<\xe2\
+\xac\xdfe=\xe3o\xe1\xff~\xd4\xac\x91\x07\x84TV\
+*\x06\x9e\x18 \xf0%\x80c\xfe\xb0\x7f\x13\xf8\xd3\xa2\
+\xc5|\xc4Ag\xff\x12Y\xa9\x07\x0c\x04\xf4$HI\
+\xd0\x10\xf8\xe28_R\xe4J\xbd\xd5\x10\xd2F\x12\x99\
+\xcb(\x81N -\xf5)\xbf~\x0a\x02\xb4\x0e!\xe3\
+(\xf2\x5c_\xd7|\x0f\x88\x8a]\x84\xf8b\xfc\x09\xa8\
+H@\xc5\xc0\x83\xebe\x1f\x8d\xbd\xdd\xfc\x9e\xe7J\x80\
+\x17\xa1\xe0\x8c\x07\xdf\xc3\xbe\x05\xb2\x8c\x84\x0c-\x03\x04\
+p\xb4\xa4\xa0\x96Q!\xe3\xe5\xfa\xd9\xefA\xd6F\xce\
+\x04\x02&H\x02\xb5\xcf;\xb7\x07\x10p\x12,\xf8#\
+\x140\xd8\xefX'\x909C\xde\xc8:\x22\x80E\xe6\
+\x1b\xa4\x04\x01\x19\xfb8\xeb>\xca\xdfE\xf6{\xc63\
+\xfe\xe3\xf3\x22\x0b{$\x99\x0b\x9f\xeb\xeaS<\x17\xc6\
+\x89\x82\x01\x89\x1e\x1c@\x9es\xec\xadg\xfd\xf1\xbd\xf8\
+\xe3\xd1\xdf\xfbGP\x1d\xe0\xf9\xf2\xb9\xcc\x13\x9dG\x8e\
+\xcc\xc5\x8f\x8d\xd0q\xee\x97s\x8d\xcfa\x1d\xc3}\x00\
+\x226\x22\x1eb+\x05\xdf\xc3\xba\xe6\xf3c\xc0\xcf\xcf\
+\x8c\x0f\x7f\xc7:!\x90\xe7\xf9\xb3.\xb8N\xf6\x0b\xee\
+\x87\xeb\xe1\xefX_$\x0a\xa2\xccp\x94k\x8f\xf2\x81\
+\x91T\x97\xd7\xb8N\xf0\xa7\xd6(\x886\xceC\xe2\x1c\
++\xeb\xe5\xc2^H\xacy\xc2\x94u\x1b\x90=\xd3Z\
+]\x22\x87\x04\xeb\x9e\xfb\xa5\x80'.-cD3N\
+4dRIt\xd3R\xda\xff\xd3\xacr\xd1\xf9<\x82\
+\xbbG\x88\x92\x09\x0f\xf8\x09\x80\x08\xfc\xa9\xe4\xc2~\xcd\
+\xc6\xa6\x00\xa8\xbf\xcc\xaca\x11\xa7\x97\xd8t\x13\xd3\x02\
+\x99\xbc\xdf\xacB?G\xab\x98\xa5\xf7\xff3\xd9L\xf5\
+\x84\xbf\xa9\x81\xce\xb6\xa44s\x1aVv\xab\xbc\x1e%\
+\x87h=\xf5\xea\xbd\xb7^\xe7\xb0\x95Ys\x90\x001\
+\x85|o\xc8\xa0\x98r YEcc\xb3\x9a\xe1\x85\
+]>\xebm\xa7@\xa6\xbf@\xf2F\xdb\x8e\xb6\x1bm\
+\xd7,\x0cd\xce\xe40\xf4w%\xbb\xb3n\x8c\xce\xea\
+l\x95\xf9[\xc5R|h\x13\xb8\xc1~l\xef\xffq\
+\xd3\xcb\xcbu+\xd1\x91+\xb3\x9b)\xf3}\xb66\xa6\
+\xc73\xa4<Y\xad\x88\x8f\x9eLf\x15\xf5o&K\
+\x01\xdc\xf8\xfe\xc9\x0e\x90\x83}l\xed\xf1\xf6\xeb\xd9\xad\
+\xe8x\x8f\x9d^\x1c\xd3\xfe\xc1\xfe\x81\xde\xa0^W\xa6\
+\x905\x1d\xb4\xa3+\xcc\xd2\xeb\x05f\xf5\x95\x00\x8d\x0a\
+\xe2\xf8\xf3\xe3\xcf\x8d?W7HH\xdb W#S\
+\xec-\x10@PX\xc0\xea\xc5\xa5\xd2\xe9\x09\x06\xfd\x9e\
+\x16\x93\xd1Uf\xb5\x97t\xcevf\xe9\xfbv1\xcb\
+\xad\x1f\x05\xba\x09\xf4\x90\xde\xbe\xf7\xe9>m\x9b\xbe\xb5\
+9\x00p\x98X\xa0\xcc7[\xee\xcf\xa9\x12{\xbbz\
+\xe5~\xae\x03u\xd9\x1ah\xe6\xe3\xba\xabdV\xe86\
+\x9b\x98X\x96\x13S\xab\x06\xdc\x0d\xce\xeaNo\xd9+\
+\xe5(\xb2\xb1-#G\x15\xd2 \xae\x1c\xc8@\xa5\
+\x84\xa0\x80\x85;m\x0e\xe5\xe0\xc1\x81\xc0\xe1eC\xe1\
+\x80\x90\xc3O\x80\xeb2\x83pR\x10\xe0\x88\xec\x12\x96\
+i*\xd9\x0e\x0d\xe7\xa0\x07\xaa\xa6\x8d\xd2\xd9\xab\xa9\x14\
+\xf1|q\xec7\xd5\x86\xf4\x06%L\xc4\xaa\xed\x81\x09\
+\xba\xd5\xb0\xd4r`Q\x99P\xc2\xc6+\xf7\xaa\x04\xb9\
+\x5c\xda\x03f\xf9\x00+\x19y\xe6\x01\xfb\x14\x0e0\xb2\
+\x83\xb0h\x7f\xbb\x7f\xbe/dA\xc5q\xb8M\xfa\xd1\
+TF#\xfb;2\x89?\x90\xcc\xd6C\xe2\x1a@\x8f\
+>B\xd3\xc9\xe4\x12\x08\xbeJ\xcf]2:\x1e0\x13\
+\xb0Q\x11\xe7~;\xd3\xf3hzg\x09T\xce\x13\x87\
+\x04\x01R\xedI-r|\x04\xd0Ri\xc8Z\x18K\
+5\x8e\x02\xf7\x03\xf9\x13\x10Z*|\xc8\x0d\x8a\xbb\xc4\
+\x0f. \xac\xf4\x90\x81\x8c\x00\x19\x80c\x03\xf4pS\
+\xb58P\xa9e>\xe3(\xe2\x18q\xff\xf4h3.\
+\x1c\xdc\x1c\xe4\x91D\x07\xe8\xee\x1f\x94\x10\x01J\x0b\x02\
+\x83\x00\xea\xe4l\xb57}5\xb5\xfa@\xc2\x08D\x12\
+5\x16\x028\x1c`\xc6\xe9\xcbf\xcd|\x92\x0c\x9cs\
+\xb8\x00\xb1g<\x08\x88n\x90\xe3J L`\x15\x03\
+\x02\x91\x7f\xbaz\x03\xb2\x9d \x80\xd4\xcb\x8d\xc3F+\
+X\xff\xef\xfe\xe1\xfe\xe1\x1a\xa88\xe4\x1bd\x93\x12V\
+\x8e\x84\xa0\x05\x87uJB(\x92\x15R\xa1#q'\
+\x089\x88\x1f\xbfOZ\xa9 \xc3c\x9e\xa2\xf2\xf1\xd8\
+T6d\x127\xde;M\xcb\x09\xdc\x00rl\xbc\x85\
+\x80D\x13\x89\x0ad\x03A\x16\x90 [\xb3\xec7N\
+J\x8a\xe3\xc5~\xc2\xbc\x87O\x00\x95\x08\x1c\x22dj\
+\xbf-\x84\x17\x81(\x01$\xba\xd4\x042\x8c\x8f\x12z\
+N\xd2\xa9\xc4\xa5'\xf8\xd6W\x02\x07\x87n1\x05\xb2\
+\x8c?\xeb\x03\xc7\x91\xc0\x22&\x00x\x7f\x94\xfb\xc2/\
+\x01IA\xe2\x22\xaa\x1f\xe0\xb8\x93p \xe0\x08\x81\x97\
+Ct\x03I\x9dC_#\xfb5\x95]8T\xe0h\
+`\x9f\xc7a\x85e{\xf1\xa9\x09\x00?7\xb8>\xee\
+\x9f\xd6\x13\xe4\xfe\x90}\xa6GW-1\xa8\x18\x0dG\
+\xeb{y>\xc8\x86\xe9z\xd3j)\x1c-<\x0f\xde\
+\x07\x97\x83\xce+\x12\x5c\x8e\xbc|`\xaa<\x1a\xc8\x01\
+G\x04\x90x\xc3Q\xe79\xb2\xbeI\x5c\xe0\xdf\xd1\xaa\
+I\xc2\x06\xf5\x86\x18\xe82\xfe\xb4&R@b?\xe6\
+\xfd\x04L\xbc?B\xd6y\x7f+\xcb=\xab\xd9Oc\
+K\x00\x7f\xc7\xbc\x22Pe\xbe\x11G\x9fX \xc4\x8e\
+ E\x06\x8d\xf9\xcc>\xf7\xe8T\x04\x8d\x07\xfe$\xe6\
+H`0> 0\xb8\xde\x18\xb8\xb1\x8eb\x8f5\x89\
+\x12\xe6wl\xe1\x8a\x5c6QW>\x90\xe6Mk-\
+`^\xc6^}\x12\x06\x9cS\x8c#\xe3E\x02$^\
+\xdf\x93\xdebS\x02\xcc\x0aq/\x09\x07\x02\x7f\x9e\x07\
+\x81vL,\xf0\xf9\x91\xc5\x9fq#@\xe6\xf7\xbc\x9f\
+\xf3\x1c\xc8?\xfb \xd7\xcd\xf5\xf2\xbd\x04\xc2\x04\xf4\x5c\
+/\xd7\xc1<\x89\xeah\x91c\x84D\x0b\x81v\xbcn\
+\xae\x8f\xf37\x06\xf4\x8c;\xf3?\xca\x09V\x8e\xa02\
+\x8f\xf0\xcb\xf8\xfb\xe8O\x10X\xf3=\x8cW\x9c'\xac\
+c\xc6\x15\xee\x10\x126\xacc\xc6\x91y\x12[\xa8H\
+\x00\x90 \xe3\xf7\x11\x01\x82\x1f\xc9\xba\x079\x80l\xaf\
+!\x8e'j\xa2\x92D\xfd\xf05\x15\xe4$C\x0cb\
+\x16D\x90\xfb\x17\xa8\x84\xe9yLt'\x9b5\x19<\
+\x1e\x00\x19\x05 x\x82VB*\xd6\xdfk\x96\xf6\xbb\
+\x97\x17\xf9\xb7\xdc\xb3\x96\x1c\x84\xfe/\xc9niH\xbc\
+V6\xab\x81\xab\xd5G-\xe0\xcc\x1d\xfe\xeb7\x01?\
+7\xae\x07\xc1\x0d\xf6\xcb%[\xb6r\x0a\x10\x10\xd1\xeb\
+\x98+\x8d\xafo \xf2\xb0\x95\x7f.\xd9g\x1b\xf6F\
+\xe4\xcf\x94i\xcf-\x09\xe9\xfb\xfb5\xcc\xc4\xf6\x9d6\
+\xb69\x1f6K\xf3\xe7cf\x8dc\x08\xb9\x8d\x02\xe1\
+L\x8e\xf8\xc9\xf4\xf7\x1f1k\xa0Krl!I\xca\
+\xee\xf5*\x8d>4\xbd\x18\x22A\x22S\x9e!\xf1\x9f\
+mHa.Mv\x99\xa0\x1e\xab5do\xca8\x8d\
+f%\xb3\x8a\xfb\xdbF\xdbg\x12\xc3{\x92\xa5\x054\
+\xfa\xca\xe8\xd0\x91\xf5r>fV\xa1\xd1@D\xbc\x22\
+\xf7y\xc9\xd0\xedY\xa0\xa4\xdd<f\xb5\xd7t\x98!\
+\x08\xb6\xc6\x0b\x08\xb3g\x80\xc5\x1d0\xbe\xb7Yz\xdf\
+\x7fE\x8aH\x85\xf4.\xb3\x86l\x0c\x87\x81\x03\x18\xb6\
+a*\x9c8,@\x1b\x91\xcd\x12\x94\xd5{\xa0\xb4p\
+P\x0b\xf0J\xa4zI'/2\xcb\xa4\x8cfu!\
+\xb1\xf1L\xe4\x9aS]\xf8\x0f\xe5\xad\xb7d\xa4\xff\xd0\
+\xa8\x08p]\xb6\x1dL\xea\xc0\x5c\xb4Y\xb8\x16\x0e~\
+\xaf\xf6\xc4[]'WvJ\x8d\xb1VD.TO\
+\xaa\xe4\xfe\xe2<\xef\xce4\xab*\x12~\x00\x00e%\
+a\x05\xd2\xe2\x17\x9a\x8f\xb1\xb7\x8d\x8d\x98\x8d\x09\x07\x02\
+R\xa4\xcb\x04\x19dc>;[%\xbfb\x83\xe4 \
+\x9c4k\x0e`\xa0T@0\x09\xc4\xe8\xbd\x85\xd4\x89\
+\x8d\x17\x0e\x0f\x1c*z\xff\xd4\xeb\xeb\x1b+\x8e\xe7\x92\
+\x0a\xfcTy\xea\x8f3\xab\x9c\x0a\xc3\x98d\x07\x81\xfe\
+\xdd\xae\xc4\x04\x07'\x0e0$Xjm\x1an*\x15\
+\xa9\xfe[f\xcd\xf5@\xbeyv\x09\xd4\xa9\xf89\x0b\
+4\xea\x08\xdf2\xcb\xfbGN\xa8\x8c>d\xd68\xda\
+\xcf\x05\xf6]\x12~\x0aP\x86\x8dD\xd6\xa5@\x1f2\
+<z\xf9\xd2,/\xbd\xef\x7fT\x82\xea\xd5\x0al\xa8\
+x\xffU\x15{k\xb9\xba\xb19\x00q\xb8\x80\xfc\x02\
+\x95\x8d\xac\xff8\x1e\xeae\xef6RE\x0fG\x0f\xf9\
+>8$\x80tr\xc0\x12\xf0A\x9a\x06\x94\x95uJ\
+E~^U\xf87\x11\xd7\x0a2\x93\xb4H\xa8\xa2g\
+\x0c,\xb9\x07\x0d\xc8\xf2\x1a\x82\x8e\xe2H/%\xc7\xb5\
+\x0f\x19u\x1cVz-?\xa7J\xf4\x8e\x1a\xd7\x8b\xcc\
+\x9a\xf9t\x8f\xc6\x07\xfdx\xc6\x05\x07\xa1\xd7:\xc0\xf1\
+\xb9[\xf7I\x22\x9c\x9ecz:I \xa2\x8e\x03\x99\
+\x11\xac\xfaT`\xe1j\xb8B\x10\xe2W*1C\x82\
+\x82\x04\x07\xeb\xf0\x019Rp\x82P\xb1S\x02\xad\xfb\
+h\xd9\x9f\xbd\x97\x1bGP\xe4O\xfd\x86\xfdF\xfdF\
+\x99\x0c3\x93|\x8e\x0e4K\xaf\xef1\xab\xdc\x1e\x8e\
+,\xc1\x91\x10\xe7B\xb7\xafY\xc3\xc1\x00\x19\xa1H\xc3\
+\x1c9\xa5\xf3\xc7\x13\xd9\xbfQ\x00\x0c\xab:\x0e\x10\x01\
+;\x8esPUh\xc6-'\x8a\x09\xf4\xbd\x92\xc2\xbc\
+\xa3U\xe0|q\x08\xa9\xb5\x87y\x9dfqQ\x93\x80\
+\x1c3\xca,E(l|\xc5q\x04\x11\xf7RU\xce\
+c\x056Vf\xd9\x7fp\xcc\xb8O\xedg\x0e\xc9\xe7\
+\x9c\x9cW\x01\xce?\xa6\xf6\xf2\xe2\x17y\xa2\x085\x18\
+\xe6\x09\x01\x1c\x8e6\x01)\xad:\x0f)\xd1\xb3\x99\x02\
+R\xd8\xdfQ?\x08rm\xd3*\xa3\xec\xf7\xac\x07%\
+<\xba\xb5\xcd\x9as\x8a\xfd\x86\xe7K\xe0E\xe0Ok\
+\x1cr\x85$>)8p\xceA\xee\xc8\xbe/u\x19\
+OD@\x86z\x9f\x12\xcd$\xc6a\xf5\xc7\xf1\xa6\x05\
+\xf4Dcs\xaar\x90\xde\xaa\xc1\xf3\xe7\x5c\xfa\xae\xd4\
+\x12^\xa5D\x1d\xc8\x02\xa9Jt\x1f\x12i\xac\xce\xb3\
+\x5c\xc0\xba\xb5\xf1#\xd9\x97@\xa0\xca\x7f\xf2D)\xfb\
+\x0a\x81\x0e\xe3J\xa5\x93yO\xc2H\x95\xef\xee\xedf\
+\xcd\xe7\xc2\xc6\x8f\xff\xc7\xe7\x93x!p\xe0y\x92\x90\
+'pb\xbfg\xde\xb0\x0fF\xb6r\xe6\x01\x89\x1f\xfe\
+\xae\xee\x83e\xdf\xe4\xb9D\xd5 \x12\xb7$\x88\xd8\xaf\
+\xe0\xc6\xa1\xc5\x0c\xae\x04\xc8\x17A\xb0q\xee\xb0n\xf8\
+\xfe\x88\xf4\x88\xdc\x14\xb1R\xcfz\x8c\xbd\xf9s\xe3\x02\
+`\x1f\x22\xb1J\x0bL\xe4\x18 \x11\x13\xbf'r\x03\
+\xc4\x8a;\xd7\xcduF\xc8~\xe5\xd2)\x89\xe4\xa7\xd5\
+\xdb\x1d\xc9\x14\x1f\xd4:\x9f\xa9}\x9e\xfd\xfe_\x8e(\
+\x9a\x8a(\xe0\xf7\x5c\x0f\xfb\x1b\xf30\xca0\xb2\x8e9\
+\xe7\xe6\xc6u\x10e\x0d\xe7\x04\xa4\x01\xf7\x15Ux\xe6\
+sh{\xf99&\x00\xf0\x9f\xf9\x99W\x12\x0e\xcc?\
+\x12i\xfc=\xfeU\x90W\xf4\xe7\xc2>\xc6\xdf\xf1\xfc\
+x>\xfc\x1d\xf3\x89\xfb\xe1\xbc\xe1\x1f\x7f\xcfsa\x9d\
+\xb0\xffFN\x04\x9d\x07~\xae\xc1]\xc3\xb8\xb2\x8e\xb8\
+>\x12^\x9c/\xb4z\x82h\xc4_\xe3}\xf4\xfc\x83\
+\x98RB\x7f\xb8\xbd \xb0h)\xec\x0f0K\xaf\x7f\
+5k\xde\xaf\x82\xe5\xe8\x03f\xf5\xbcG\xe5g\xc2+\
+\x85\xd2\x83\xf7\x8c'\x15\x1f\x16\xaa\x02\xc9\xfeX\xb3\xda\
+\xfb\x05\xb4m\xf8\x8cYe\xdbE]`\xf4\xbff\xe9\
+\xe7W$[\xb3q8\xad~\xf0\x03mLs\xb4\xd1\
+,)\x07iI\xf5\xc2](\x12\xc2m\xd2\xf7\xdef\
+\x96>\xef\x0ff\xf5\x86Fk\x98\xa5\xcf\x7fW\xb2\x1d\
+\x9b\x0c\xeb\x22Y\xf8\xc1\x1d\xb3L\xaa\x95\x02\x8fn\xa5\
+d+\xd6\xcar\xffF3\xb1\xa6\x7fT\x15\xd2O\xa9\
+\xd7\xe7\xe1\xda\xbb\xea\x95\x10c\x8d?\xb8\xfe=\x89\x8e\
+\x9c)\xb7\x16\x80\xf9\xcc\xa4/\xfetMT8\xb4\x93\
+\x0a5\x1c\x09\x8b%3r\xa4\xc9dV\xd9_\xd2,\
+\xbd\x1e\x93,\x8d\xdb\xf8:f\xfa\xff\xe9\xb9\x8c~\x92\
+\xcct\xd2\xffj\x96\x91\x0a\xdb\x8e\x8c\xf3\xe0\x0f\xc9\xd2\
+\x012\xda[2\x87\xdf3\xab\x13\xaa[\xd8,}\xdf\
+\x8e\xc3\x0e\xc3\x0e\xf9\xb9\x96\x80\x8c@Y\xcfe\xd8v\
+\xd8\xc6\xc6;\xcd\x89\xd2#'\xd9>\x97\x81\xa1\xd2J\
+`\xa0\x83\xb6{\xd2\xacV\xa8|\x02\x87L\xabC\x04\
+\xb5\xf0!-\xf3\x83D,\xcf\x1eH\xa9w\xd6D\xd7\
+Lvm\xf4.\xb3\xb4\xbf\x1c7y\xec\xe4\xb1\x15\x91\
+\xe2rR\xb4\x8eP\xf9Z#\x83\xed\xeb\x86\x186\xe8\
+\x1c8\xfe^\x95\x86\xf5\x9a\x8d\x9c\x83\x1b\x99\xcc\xcd\x92\
+m\xdeT\xc4\xd9\x80\x8ca\xe1\xe3J \x1d\xdf\x04\x9e\
+\x83t\x07\xc9x\x13\x00\x93\x90\xc0\xb1\xf8e\x0a\xe9\x93\
+\xa3\xdd\xfd]\x15\xed\x17\x995-\x13lplL\xf1\
+\x95\x0d\x8d\x83A\x07\xa0\xf7\xfe\xfdO\xb6\xaa\x03j\xeb\
+\xf0\x15M\xc5\x1b\xc8.r+\xc8c!cH\xa6\x9e\
+\x0d\x15\x08\x13\x8e\x18=\xee@\xcaEv\xe8\xac\xcd\xf4\
+\xd4\xd2\xeb\x8c\xe3\xac\xcf\xcd$\x9c_\xaa\x8eg\xf7\xb2\
+\xe2\x18\x0f{\x89\x84\xf4f\xc9\x94\xe1\xe8\xf1|VR\
+b\x12(!\xec\xd8\xaa\xd8\xba\x0a\x87T\x19\x9c\x8c\x88\
+\xe7\xafqq\xe86dnTT\xa8\x00\x12\xb8+\x90\
+\xea~gV\xd9\xcf=\xa0#\x80\x13;7\x15+*\
+&\x90\xacq\xbf\xeeh\x00!\xe7 \x97\xce\xfdp\x91\
+Y\xde\x973\xe7\x8a?_\x02\x16\x0e\xa6\xbb\x95\xb0]\
+\xd2\x13)\xc5\x01D\xbe\x93\xbfS\x8b\x84\xb3\xc8\xaeS\
+\xd6q\x1a\xed\xc2\x9e\xcb\x01\x85\xe3\xc5\xc1\xc5\xc1L%\
+\x17Y/\x1cn*\xa6\xaco\xe9kw\xfb\x9bU\x84\
+AVw9\xa3\xb9>\xa0\xf8\x8c3\xfa\xf1\x11\xd1\x02\
+\xd9\xe0\xb8\xde\x8f>\xfbE\xc3\xaf\x07k)\xbb\xc4\xac\
+\xe9A\x05\x0a\x0a\x02\x07\x0e\x01\x12\x088\xb48\x9eR\
+\x8fH{A\x81\xfa\x01mf\xbd\x12x\xd0\xca\x01\xa4\
+\x9e\xfdI\x07\xb8\xf7\xee\xd1\xc3}\x89\x90\x0f\x11\x22\x0a\
+i\xa2\xe6\x87#7p\xe8\x19\xd7[\x95Hf}H\
+\xdd\x82\x96#\xbf>\xa9`\xf4{\x98eu\x9b\xb3\xba\
+\xb3\x9a\x96\x0dz\x9e\x09\x88\xb66kTP\xf8|\xe9\
+\xa0\x0fo3k\xf61!\xf82i\xef\xf2\x95\x03g\
+\xec\xb4lu?\x84\x95\x98\x16)\xfe\x7fX\x9f\xeeX\
+\x82\x94\xa0\x85\x83\x84$-*\x22\x17s\xf6r\xde'\
+\xe4V\x0as\x8b\x0a\x00\x95\xd8Xy\x8a\xac\xcaB\xec\
+t@\x8d\xe9\xe5\x05\xa1E\xe5\x1a\x04\x8f \xe6$v\
+\xfd\xfd$\x00\x98\x17$\xae\xa9hs.\xe2\xe0\xf1o\
+\xb6\x1c\xe5\xeb\xcb\xf7yK\x03\x01+*\x06o\xd4>\
+J\xe1E\x09\x0e\xc6\x85y\x91\x1b\x1e/\xc8\x01i!\
+\x05U+\xa1sg\xe0\xe0\xd2b\xb1\xb0\xd6\x13\x0e/\
+\x01\x17\xd0qUn=\xc0\xdd\xd0\xac\x99\xb78\xfc \
+ \xa8\x04+\xf1\x84\x1a\xcc\xd8\xbej\x85\x02\x19\x03\x0b\
+=\xe7{\xe4l\xc0\xd1f>\xa3n\x01\xc9*\xad0\
+\xac\x8f\x8b\x0b\xe2\xc5\x0b\x0a\xec\x9b1Pc\x9fg\x1d\
+\xfeM\x81\x05\xf3\x8e\x84\xc9y\x92\xeb\xbbA\xf3\xe0{\
+\x05\xe9\xe5$\x8e\xef6\xcf\xb2\xa9\xe0Q\x09\x07\xa1\x12\
+\xc9\xff8\x97\xd9\x87\x98\x07\xec\x93\xfa\x1e/\xe1\x8e\xee\
+\xca\x00\x00 \x00IDAT\x08\x91(\xc7O\xa0\xf7\
+\x9d\xf1\x823\x87}\x91\xf9\x1cY\xe7c\xe5\x97\xe7\xcc\
+9\xc1u\xb1\xbf\xb3^bB\x8cqf\xff\xe7s\xb4\
+o:\xb7\x16\xfb3\xaf\x04\x9a\x8c\xcb\x82A\xee\x96\xeb\
+\x8crx\xf8\x87|O<\x87\xf0o\x9e\x0a$\x9a\xa1\
+%\x00\xae1\x0fH\x99\xff\xec\x07\xa1\xd7\xda\xd7\xed\xdc\
+X\xda#\xd2 &\x00b\xa2\x81qg<Y/\x9a\
+w\x9eH\xe6\xf3A\x840\xff#\xe9m%\x05\xe49\
+\x97s\xb8\x22\x09\xca\xfdShB]\x89\xfb\x8e\xfe!\
+\x89\x17\x12\x00\xac\x1b\xae'\xaa\x0f\xb0O\xf3}|.\
+\xad\x8bpv\xc4\xde\xfa\xc8\x01 \xf9\xbdnY\xb5T\
+1/\xb8\xdf\xd0\xd21\xb0\x7f\x0a\x99Ma\x95\x16\xb3\
+n~c\x8bk\x9e\x0fH^\xfe1\x8f\xb8?\xc67\
+\xb6\x14\x92\x10\x8bj\x07\xac\x8b\xa06\xe1\xe7>~+\
+\x09$\xb5\x94\xd9\xa9k\xe7\xaes\x87(\x9e\xa6\xa0\xd7\
+\xedg\xd6\xcc\x13\xfc?\xb8v\x90\x0de]P0!\
+\xced\x7fe\xdf\x16\xa9w\xbf\xb4Yz=\xc7,\xbd\
+~\xdf\xac\x92\x83;'\x1e\x9cA\x9b\x99\xd5\x16\xe0\x09\
+\x9fp\x824\xe6\x9e\xff\x03r\xa51\x07&T\xac\xfb\
+\x0b\xcd\x1ah\xb0Xh\xfb\x1d\xcc\x9a\x03T\x8e\xb5\xcb\
+\xfc)\x11\x90\xa1\xff\xff\xac\x17\x92\xdd\xbe\x95\xc5\xca\x7f\
+R\x03\x19\x03\x01`*\x04{)\x11\xf1\xc7\x0a\xf9\xf2\
+\x03\xfae\xc9Vn\xc8\xf9F\x05:\x0b'@\xceD\
+\xaeS+\xf0T\xf42\x82\x80@o\x91P\xd1\xbaV\
+\xad\x0d\x976\x8e.\x15\xd4\xcbsMb\xac\xff\xb4Y\
+z\xdd/Yrp\xfb;\x92\xdd)\xc8\xe4\x8e\xe9\xe7\
+\xb7\x985\x951\x135\xfb\x8e6\xc0\x7feY\xaa\xdd\
+L\xb6)'\x08fe\xce\x81\x0dG\xd6k\xf7l\xb2\
+4\xc1G\xbfL\x96\xc6}\xf47\xb3\xf4\xba`\xb2\x85\
+*\xb9\xdbh\x1e\xb3\xfa G\x87\x98%\x7f\xe7\xca\xf1\
+\xdf\x8e\xa7\x093~\xe1\xf8\xaf\xc6\xad\xe2<C\x19\xf7\
+\xc8\xe6\xfe\xbe2q\xbcB\xa1\xcc7:\xeaiy\xcd\
+\xdf\xcd_\x1d\x03 \xf9\xc3>f5a`\xf5\x97\x5c\
+\x81\xe1\x00\xc4\x91 c\xcd\xc2cAi\xe1\xbb\x8c\x1a\
+\x1b\x0a\x8e\x0f,\x9a1\xe3\x87\x9c\x17\x5c\x14r\xb8\xbb\
+c\xd4\xbbm\x00\xce\xc3\xeb\x86\x07\xa4\xd4!\xeaj%\
+\x99\xd6\xab\xc9\x81\xcbF\xc5F\xc8\x86f\xcb\xfc\xb6\xe6\
+\xc0\x97z\x82\xf7\xac+\x90\xcd\x1c\x16\xc9a\xeb\xce6\
+k\x02aU&}\xc1\x03\x8d\x83\xf4\x0e\x8e\x80#\xcd\
+\x9a\xf1\xa4\x02\xc7\x82g\xe3\xe6\xe0\x8f\x07M$\xb1a\
+\xc3\xc7\xd1B^K\x15\xd7a#\xb3\x86=\x9e\x9e\xc7\
+\xbbr\xb7k\xdd\x80\xe2\xf7\xf1=dhi\xb5\x11\xdb\
+\xba\x93\x87\xc1Z\xce:\xb7O\x99O\x81\xc05\x8d\xe3\
+\x86cB%^\x953\x1c\xeb\xeep\xb3\xec\xb0\x95\x1e\
+~z\xc5U\xe1\xcf\x0d\x1b\xb77\xec\xcf\xcc'H\xbd\
+\xc4R\xde\x7f\xc8\xac\x81:\xb3\xf12_\x99\xbf\xd1\x81\
+\x84\xa4T,\xf6\x04H\xa3W\x985\x89'S!\xf9\
+jC\x92v\xa6Y\xdd7\x1d2\xba\xb1\x02\xdc\xc3%\
+\x1b\x07\xa4\xf4=\xe5\xf3=\xb0\xa7B\xc5A\x06\x94\x9d\
+\x9e~2\xd1$\xe2\xa8\x5c\xbe^$\x9fT\xa49\x18\
+q\xe8\x08\xb4\x090_#\x84\x02\x15\xde\x09'm+\
+\xf7\x7f\x9f*\x18\x1c\xd4\xcc\x87\x93\xc5>N\xa5\x0e\xc7\
+\x1drH\x02N=W\x97\xf7c\x1e\xd1\x0b\x0a\xa2\x05\
+\x87o~9\x0eT\x10Vu\xc8~\x99'<7\x12\
+\xd2\x04\xda\xfc=\x0e\x0b\x09/%P\xfc{y\x1f\x09\
+,\x10[@>q\xd8 \xd7\xe2{p\x14\x99\xb7\x82\
+\xdc{b\x19\x88\xfe\x01\xa5w\xde\xc7\xe5-jI\x8a\
+\xb2R\xac/\x05\x9e^\xe1\xc4aS\xa5\xcf+i\xe2\
+\xcap5\x8d\xcd\xd5b\x01\xc9\x0f\x01$\xbd}@\xf7\
+Q\x8bP\xef\xf2\xf0~\xb3\xaa\x8e\xe1rf\x07\x9a5\
+\xb2z\xb4\x96\x08\xe9\xe7\xf3z\x8e\x10A\xdf\x14\x12\x00\
+.\x01\x02\x00%\x00\x5c\x0e\x92\xd6\x09\x90k$\xe4@\
+\x16@\x86\xf8\x9aBb4\xbcEjC$(%c\
+\xea\x88#\x90c\xac\x0b\x02'\x12y<_\xae\x87\x84\
+\x0f\x0e\xd3\x12\xa5\x222\x5c\xa5\xf7\xf1y\xac;*\x9b\
+8\xa4\x90\x8ar\x1f\xa8\x0f\x80\xf0\xa3\xd2-U\x88\xee\
+\xbdv\xb27\x8e,\xec\xcf\xef,-V\xf4\xf6:\xa7\
+Jt\xf4Q\xcf\xb8R\x08=\x02d\xd6;\xe7\x95\xe4\
+`\xbd\x85E\x01>-\x88>\xdf\x08P8O\x99\xf7\
+\xec\x03+\x88e\x1e\x92@\xf6\x09\x1c\xde\xdf\x985\xac\
+\xd7$Th\xe9a\x1f\x13G\x8a\xfbI$P9\xff\
+\x99\xef8\xdc$\xbe\xf1\x13@\xe2\xc0\xb1\xc3\xfd\x9c+\
+\xae\x8b\x8d\xd5\x12\xf3\xa8\xb8\x14\xe8\x11'q\xca\xf70\
+\xeew\x9a5\xe7+-|\xecS\x04\x02\xac\xc7\x0b\xf5\
+9\xec\xbb\xec7\x8c\xd3\x9d\xba\x1f\xc6\x8f\xfb\xa0\xf2\xcf\
+<c\xde\xf1\x8f\xe7z\xbf\xee\xff\x0fJ\x84i=O\
+SW!P\xe6\xb9\x91p\xe0\x15\xff\x8d\xef#0#\
+\xb0\xa6\x22\xc9\xbe\xcf+\xfb6\xf7M\x80\xc6\xf3\xc4\x8f\
+`\x9fg\x5c\x18\xd7 ;\xea\x1c<V\x10\xd9\xec\x05\
+\x02\xb0\xa0\xfb\xee\xe3@`\xc7|\x86\xa3\x00?\x19\xd2\
+4\x15\xaa\xb8>\xe7\x0ea\x5c\x02'\x8c\xffL\xa1\x82\
+\x9f\x09\xec\xf0\xef\x02\x12\xc9\xfd\xa5\x18\xd8\xb3\xfe\x9f\x0c\
+\xf2y\x8f\x05\x16\xfd\xd9\x9e\x00(\x092\x12l\x8c\x07\
+\x05\x15\xeeO\x5c\x22\xbe\xfe\xf9\x9c(\x13\xc8\xf5\xf0\xff\
+\xf1\x83cB\x00\x8e\x02\x12\x93\xf8e|\x1e\xf3!&\
+\x18\xf8{\xce;\xee\x97\xfb\x8c-\x06\x5c\x0f\xa4\xa6\xb0\
+\xd2\xf3<\xf9;\x12\x85\xcc\xb3\xc0E@\xc2\xc0\xd7#\
+\x7f\x17H\x93\xc7\xe0\xe2yV-e\x90\xaeR\xb0\x03\
+\x09,Y?\xe7j\x89H\x15\xee;\xf6\xfa\xcfm\xfe\
+0?\x22g\x01\xf3E\xe7\xf3\xb0\x9dY%\xd9v\xe4\
+/\x08\x1d8Gx\x1e\x8c#\x89r\xe6\x15\x05\x05\x12\
+f\xb4\x84\xeb}\xce\x815\x8fY\xa3rD\xab\x9dZ\
+_Al\x0e\xffc\xd6\xac\x13\xfch\x9d\xef\xc4\x19N\
+^\xad8f\x22\xe7;\xbf\xdfTP~\x91\x15\x9eK\
+\x05g\xbfL\x9e\x95\xac\xc9\xe4\xab28\xeceV\x03\
+\x8d\xee>\xb3\xda\xd3O\x06$gF~\x96^\xfbd\
+C\x03\xad~.\x0bW\x14\x87dc\x91\xeb][3\
+\xff\x93\xe7$;\xb7:\xee\x8e$@\xe7\x1b\xf2&\x0b\
+\xd4g\xd7J\xb5\x1f\x94\x0c\x84\xb9\xa1\x96\xd9>$\xd9\
+\x97\x95\x89=]\x09\x8c\x93k\xe5\x16r\x98\x5c1\xfc\
+\xbcX\x1e\x7fQ\xff\x1eR\xa7\xc9\xd7\x9a\xa5\xeb\xfd\xba\
+Y\xa3\x83\xbe\x9c\x99\x1c\x86C*\xe9P\xf7\xb3dg\
+f\xa8\xfd\x9e\xb9\x82\x08y\x99\xe9\xc1__\xc9\x03\xc7\
+/N\x96\xc6u\xfcZ\xb3\xf4\xfa\xe3d?I\xff\xff\
+\x9df\xe9\xf5\xebf\xe9\xef\xfe/Yr\xe0\xc7\xdfl\
+\x96^\xf7\xb3\xee\xff\xf4\xffO1k \xbe8>L\
+tAx\xe9U$\xe1\xe2\x09\x9a\xbf\x9b\xd5\x0a'\xbd\
+-\x96\x0e\xb0\x84\x80\x07\xd4\xb1g'\xf6\xf6p\x80\xf2\
+\xca\x81\xc3Bb\xa1\x06H\x96\xf7\x22s0\xb1\xf1\xc1\
+ZO\x0f<\x8e8\x19}K\x07\x5c\xde\x04\xd83\xb2\
+\x02wq\x08\xdb^2\x90'l\xac,H\xd8\x83\xd9\
+\xb0\x80\xb0\xe2\x18n\x91\xad^\x1f\x5c\x10\x16\xe8\xfd\xac\
+\x22G\x80\xd4PQ\xa37\xdb\xc4%M^\x92\xf1\xf7\
+\x96\x9b\xf7\xc8a?\xa9\xf4(\xe7\xf9\xb1gFhd\
+\x198o\xc1!\xc3\xbd}\xd9x|\x839VPv\
+6b*\xb5@\xbb\xb8O\x1c\x86\xed\xb3\xd5@\x8b\x0d\
+\x8b\xff\x8f#anN\xcb\xfe\xcc:b|\x09\xccx\
+n\xa8\x83\x98\xac\xc8[*G\x87\xab\x0c\xf09\xd60\
+\xf2\xce\xa67\x13\x08\xe4n\xd9\x8c\x1c+Y%=t\
+G\x8f\x83\x9d\x8a\xdb\x8d\x9e\x10(\x95A\x8d\x93#\x1a\
+@0}\xa9\x90\x81B\xde\xe2\x10j\x91\x97\xd1\x22\x93\
+\xd5G\xe6k2\xbc@4M\x9d\xc480v4K\
+\xeb\xeb\xc7f\x0dY\xd1\x8aEE\x80V\x9f~\x86Y\
+\x9d\xb7@\xb0\x9dC\x05\xc8,=\xe4J\x08x%S\
+dV\xc3Af\xe9\xe7#\xb39\x82al#\xed\x9b\
+\xccS\x12\xb4\xac\x13\x1cp\xe6+\xac\xf8\x1cd$\xda\
+\x08,\xef\xd4<!\xd0x~*\x1b\xaf'\x86t`\
+9d\x99\x96\x1e%\x0c\x86_+\xd0\x86\xa5\x1d\xa8\xbc\
+\x1c\x0c'U\xa4g\x9e@\x83\xeb\xa6r\xca\xbaWB\
+\xc6u\x82y\x9e\x1c\x94\x0a< \xc5sG\xeb\xbe\xd2\
+\xba\xd1\xed.RD*}\xac\x7f*h\xec\x03/R\
+o\xf3lA\xf0\x02\xc4\xdaI\xc2\xceU\xa0\x07\xa2\x80\
+\x04\x01\xaf\x0f;)Z\x0e<\xbc\xa2\xaf\xc4\x14\xc8\x12\
+\x9f\xef\x04\x0e<\x17\xfe\x91\x88\x02!CB\x86\xeb\xd7\
+\xbe\xebj\x12\x1b*\xf1E\x82C\x0eG\xb7\x8fz\xd0\
+u\xce\x0e+\x98e\x99\xced\x8d*\x8c\xce}\x12w\
+NZ\xcb>\xb2\x89d4I\xbc(\xe1\xef\xc8\x85\x8d\
+\xcdr\x0fu\xf6\x1b|\xffR\x02\xccI\xd5v\x90\x5c\
+\xe7\x15J\xf0\xf3\x8f\x16\x8b\x07K\x82\xc1+\xfeTF\
+\xd9\x97\xf1;\x98W\x90\xff\x09\xe1\xd5\xad'\xd9K\xc6\
+\x95\xc4'\xcf\x9b\x00\x8a\x9f9\x7fp\x0c\xab>{I\
+|\xdc%\xb5\x0c\xe6;\x9f'\x87\x7f\xb8\xd9\x11R%\
+\x01\xb5\x9a\x12!<O\x1cP\xe6\xd3\xadJ$=\x1f\
+*N8\xde|>\x01^\xd0\x8bw\x87\x9d}]\x9c\
+\x11\x9e\x00b\x1er\x0e\xf3~\x1c[\xe6\x07\x01,\xfb\
+\xf7KT\x99'\xd0\xdeP\x09x\xae?\xcab\xb1\xdf\
+\xc3\xf5\xa4\x16\xbd\xb1o(1BK\x10PX\xb1T\
+\xfb\xb8\x8f{\x82\xab$^\xb5n\xdc\xe1\x06\x91\xc8>\
+@\xa2P\xaa?\xbe_\x80\xc0\xc0\xc1\xc6\x0f\xbc\xc7\xac\
+I$\xf0{*kZG\x9e\x90\x15\xf7\x8b#\x91H\
+\xf4\xb1\xbfQh\x22\x91\xb3\x8edE!\xc3\xe5\xdc\xa4\
+\xc5\x03\xff\x87\x7f\x044\x0a\xec=1zS\xb9>d\
+\xb8\xa6\xb5t\xd5\x96\xadr>3\x7f\xd9\xb7\xf0\xebb\
+\xe56\xf6\x5cG?,\xbeF}w\xfc:\xd6?\xf3\
+\x19\xff\x8d\xeb\xc0\x1f\x81\xd4\x16dh\xec\x11\xe7{\xb8\
+\x1f\xee\x8f}\x15\xa4\x15\x09i\xf6yUP}\xff\xc3\
+\x9fg\xfe\xc5\xc0.p\xef\xf8:\xe0\xf7\xf8\x991\x01\
+\xc0u\xc6\x00\x94\x9fck\xc0\xe3J\x8cQ\xf9\x8dr\
+q\x14\xb8\x96\xea\x96\xec\x96l\xdew\x87\xfc\xcc{t\
+\xaeT9\xd2\xf2\xdc\x90\x07\x0d\x15v\x0f\x14\x9f\xf2J\
+t\xf9\xf9\xe1\xc0\x15\xc0y\x1a+\xfb\xb1\xc2\xcd\xfd\x06\
+\xf2Q\x9f?\xac/>\x9f@\x9b\xf7\x83(\xa40\x10\
+9\x0e\x86\xc0\x01\xc0\xba\x8a\xbd\xf5\xdc?~\x14r\x96\
+A\x8e\xd2\xff\xf1\xf7|.?\xb3\xafp\x7fQ\xc6\x97\
+\xdf3\xbfY\x9f\x81\xf3a\x9aJ\x03\xeb\xe7?.\xab\
+X\xd6'\xe7\x0b\xfe\x86H\xf3\x87W\x96\xc0\xbb;\xcf\
+\xac\xb9\xce(\xbb\x188\x1c\xbc\xe5\x07?\x8e\xb8\x83\xe7\
+\x89\xdfK\xc1\x01n\xac]K\xcb.\x05.\x90\xe4>\
+\xaf\x19\x17Z\x11\xc5\x81\xe5-\xc0\x9f+d\xfe\xc4!\
+\x139o\xbf\x97 \x8dW\xaab}T&\xa3\xea\xac\
+\xa2\xde_b\x96~^\xc4\xac\x91\x17\xdb;+p\x17\
+\xd6\xe5w6\xd0-A!\xbc\xd2\xf9\xb7L\xf3U&\
+\xe8\xccf#y0w\xbb\xb8\xdeu\xae\xf8\xa7\x00\xb9\
+?-\xd9\xa9\x15J\xcb\x80Ar\x84\x0e|\xae\x18[\
+\x05\xf2\xa9dO\xd7\xc0\x10y\xa5\x0cD\xdeV\x13\xeb\
+\x9e\x86\xcd\x93\xde^9\xf8\xb0$fh\xfaM\x95\xc4\
+\x0eR\xa1\xec\x08\xbc\xb4A0X\x0b\xc1J\x82$\xfe\
+oU\x1d\x00\x82\xe9\x8e\xb6H\xe2\x80\xac\x8fnJv\
+\x83~o\x0e\xd7\xc3f\xe9\xf7G$K\x07\xe8\xe8\xf4\
+d?M\xe7\xdf\x1f\x93\xa5\x83ttR\xb2\x13\xd5\x12\
+\xb0T\x95y\x1a\xdfs|\xaf\xf1\xf4\xbc\xc6g\x8c/\
+>\x9e\x0e\x82\xd1&\xa3MG\x9b6z\xf0\xf4\x1a\xd2\
+\xcbK\xc2\xe6u\x1a\xcf\xafd\x1b\xebN4k\x12'\
+@\xcd\xb4\x10\xfc\xa0dc\xa22E\xc5\xa0:FS\
+YUYx,$2\xe3\x91\xfd\x93\x03#\x92\x11\xb1\
+Q@\x16\xa7\xcc\x16\x15\xe2\xfe\x15f\xe9\xf5\xa6\x22;\
+\xd5o\xd2\xbf\xbe\xb7\x04\xd2K\xcc\x1a\xc8\xaa\xd4\x19<\
+Q\xf5\x85\xc2y\x80\x8a\x05\xd0\x18\x87\xdc\xd1\xabF\x05\
+C\x08\xfe\xdc\x03~d\x93\xd9\x85\x04\x10\xbdm*\x0f\
+\x96\x19\xdc\xb6!\xbf\xdbOl\xda;\x94\x96\x0b'\x97\
+A\xaf\xf7\xe2\x02]\xf6\x1ew*\xe8\x04n@^\x0f\
+\x96\xcc\x18\x15*\x1cbz&\xd9\xc8a\x93\xc6\xd1`\
+\x83\xa6\xc7\x88\x0a\x19\xe4i$Rh\xbd\xb1c\xde2\
+\xf0\x1f.l\xe4T\xf8<0\xb6m\xf3\xc9\x86\x0b\x81\
+\x8d\x0b\x08-H\x8b\xc7\xb2\x80V%\xc1\x5c-\xbb\xc8\
+U\x8e\xcb\x10\x12\x9bk\xdf\xd8\xb19@\xd9/P\x89\
+ \x10#3\x1a!\xb6T`\xe7\x11\x09\xca\x0c\xb3\xaa\
+>\xe0\x10\xa9\xff5\xab\x81Hw\xaf\x12\x95\xac\x0b*\
+\xab\x04\xea\xfa>\xf4\x94I\x00\x8c\x9d\x92\xcd\xb8\x11\xe6\
+\x0cs*T\xd6U;\x94(%a\xe7$\x8e\x1f+\
+\xec\xda\xb4\xd6\x0c\xcb\x0c\xcb\x0e\xcb6\x07\x11\xf3]\x95\
+~\xae\xdb9\x15\xc4\x0d\x91\xae\x22CQ\x1d\xc2\xcdz\
+c\xa6R\x91\x05j\xcaAD\x8b\x97\xe4br\x22\xf4\
+\x90\x9cx)\xfb\xe0\xcb\xbaU\xbaUr\x22\xb5\xb0\xb8\
+\x83\xac8$[m\xf5x\xbb\xd9\xf4\x16\x1dd\x9a\xba\
+\x93\x94\xd8\xe2yQQ\xa3R\xc7\xf3\xac\x15\xf9\xf2\xba\
+\xa8\xe6%\xfb\x00\xba\xd8_\x09\xaa\x11<\x1f\xed\xdf\x0e\
+i\x97.xwnwNwN\xc3-\xc2>\xc3\xf8\
+\x92\xe0\x06R\x0c\x02\x84@\x89\x8a\x08\x95yS\xad8\
+\xb4\xb6\xf2t\xdbj\xbf\xf8\x1f\x91d^\xaa\x0a)=\
+\xdcB$\xe0\xd8:\xc7\x01z\xf3\x90\xf0\x80\x10b\x9f\
+!\xe0Qo\xbeW\x14\xc4]`\xe9\xe3\xcc\x11\x22\xce\
+\x95n\xa2;\xbd;='h\x8b\xda\xc1\xcf\xd5BD\
+B\x84\xd6'*\xd8 G\x90+d\xfd\x90\xd0#\x80\
+<1[\x1d\x97O\x15YGwH\x90\x19e\xff\xa7\
+2\x8c\xec\xdd\x0c\xedk\xea\x81t\x1d{\xb8\x1c\xa8\xa0\
+\xc5\xd6\x92\x18\xc0\x10\x10TR\xc52\xbe$|A\x00\
+\x00\xad%a\x80\x83F \xad\xf5\xe0\xbd\xd4Tt\x09\
+\xac\xf8\x87C\x07\x99(\xad<\x90drn\x11\x08\xd0\
+2\xc5\xfaZE\x015\x0ee@zxK\x15\xd7\x8d\
+\x83\xaf\xf3\xc4+\xa9\x8c\x0b\xf7\xcfx\xf0\xb9T\x88A\
+\xa6\xd4\x16\xa0\xa9\xb2\x88\xec\x0b\x91-\x9b\xf1\x86\xf4r\
+q%\x9c\x80\xe8\x9f\xa3\xfb]\xaf\x901Z\xc3[\xde\
+\xa7#\x0b\xf8o\x15\x90]\xa6\x84\x0e\xeb\x059@\xf6\
+\x05\xfc\x0f\xe6\x13~\xd1\xaa\x22\x9d\xc6\xf1&\xc0$p\
+\xe7\xfd8\xb2\x11\x92\x8ecL+\xc2\x0d\x05\xaa\xef\x1c\
+\x1c$\xacH,\xcc\xe3-\x10\xa5u\x84\xdeX\x90#\
+!P\xf0D\x9d\x90H\x16\xceuKV5\x0aWw\
+\xe0\xe7XI'` `\xc4\xaf@V\x15\x19U%\
+X\xbb-J\x00\x9d\xfd\x95\xbb\x9b\xde\xef\x90\x18\xea\xd6\
+R\xe5\x94\xdfs~DRG\x02\x9d\x9a\x08(\xaf\x0b\
+\x07\xc8>\x81\x11\xff\xf8{\x02H\x02b\xfe\x81\xdc\xc0\
+\xaf\xc0\xefA\x95\x84y\x0c\xd2\x92\xe7\x88\x7fH@\xc2\
+<a\x9e\x93\xa8e\x9eG\xa4\x02\x81M\x0c\xfc\x99\x8f\
+\x8c7\xeb\x85\xef\x8bl\xef\xac\x07~f\x1d\x12\xa0M\
+\xaf\xac\x17\x92\xbcG\xbd\x12_\xae\x8f\xfdh\xb6\xae\x87\
+\xfdA\xe3:\xdc\xa6\xe7\x0d\xb7\x0b\xeb\x8e\xca:\xfb\x1a\
+\x01!\xd7\xc1\xf8s\x9f\xb5\xd5\xa1\xec;\x92\xad\xf5V\
+\xb3H\xde\xc7<\xb87 \xf7\x18\x07\xbe'\xca\x8e*\
+\xa0\xcf\x88\xe4\xa7\x9a\xfb%\x11\x19+\xfc\x8c\x1f\xeb\x92\
+\xef\xeb\xbd\x05\xa0\xac;\xd6\x05~'\xe4\xd1\x04\xfc\xac\
+\x17\xcew\xfcT\x12\x1e\xcb\xcb\xdfc\xffb\xde2\xaf\
+\xe0,\xd2uw\x0b\x9a\xbd@\xc2`\xa1\x80\x94\x8bd\
+\xaa\xcc\x0b\xe6;\xef\x8f-\x01\xdc\x07\xe7\xb6\xce\xcb\xe1\
+\x9a\x12\xc8\x9bwg\xfe]\xf7\x88Y3N\xe3\xbeo\
+\x14\x15!\xd69-\x84\xf8\xcfQ\x06\x91\xfd\x0b\x0e;\
+\x12\xaf\xe3\x05\xe9\x0e\x22\xdb\xfd9\xf9\x8d\xfe\x5c\x84t\
+6\x11w\x93q\xf7V\xee\xf3\xbb\x9fw?\xaf\xdf7\
+\x91ow\xe1\xea\x08\xf7+&{IvX\xb7\xcdP\
+\x87\x17\x9b\x89\xe5}\xac\xbe\xd2\xa3\x9c\xe5\xb0\xae\xab\x15\
+tz\xd1Fk\x9bic\xbfI\x81\xcdNb\xfb]\
+\xb7>\xf8\x9c\xc9H\x0em\xbfN\xb2u5\x90\xdb\xd6\
+\x9e@\xe4\xb6\xac\x9e\x9a+\xaa\xc8\x15^n\x0a\xf5\x95\
+\xdcb\xf4\xf6d\xef\x90\xa3\xf8\xc1\x17\x80N\x0b\xd2\x8d\
+<^vSOk6<z.\x8cs\xc0\xd8\xe9\xbf\
+\x92\xec\x90\x06B/\xb6\xe0\xd1\x17\xcd*\x8bf\x0a\xac\
+\x935d\x10\xda\xd8G\xa7\x9a\xa5\xd7\xf9\xcd\x04%\xde\
+%\xcd\x87\xfb\xcc\xd2\xefo4K\xbf\x7f\x9fY\xfa\xf9\
+\xa7\xc9L^b\xffd\xfb\xa5\xd7\xd9\xc9\xd2F0z\
+\xcc,\xfd\xdd\x83f\xe9\xf5\x00\xb3\xf4\xfb\xdc\xf3\x90\xfe\
+\xfe\x19\xb3\xfc9\x19\x82h\xf8\x83<!\xa8t\xe0\xa0\
+\xa9\x12\xdb\x1dk\xd6@\xad\xe4\xc8eR\xc3\xfd\x1a\xa8\
+#\x13\x89\x8a\x81z:\x81\x06z\xa5+\x92\xcc\xe0\x80\
+\xc4^C2\xe6s\xcb\xe0\xb2\x01\x12\xc8J\xbe\x88\x03\
+\x94\x9e\xc34\x1bs\x8f\xbc\xb3\x04oa\xa6@e\xa7\
+\xe6\xb9\xb2\x90\xa8|\x10\x98@N\x03\xf9\xd4ef\xcd\
+\x06\xc0\xc2$\xa0\x9a\x9d\xb7\xfaz\x1f\x9b\x09\x82+v\
+\xf8\xfe\x16\xb3\xf4<>e\x96\x131gX\x22\xc6\xaf\
+[\xb2s\xc8a\xc2\xce=\xba\x7ft\x9f\x916\xba\xae\
+\xb7\xa0\xf4N\xd2%N\x83ag\xc9WQA3R\
+\xac\xf3U\xd9\xf8E\x95\xed\xf4\x8c-${'d\xab\
+\x1b\x1c\x9fKB\x82\x0c\xe4s\x99Nl\xac{\xde\xac\
+\xb6\x9a\xf8?\xc6\x91\xc0\x0aGK\x81\x9do@\xcc\x83\
+U\xb30\xd7\xd8\xf0\xfdd?h\x12f\xc8\x19Z\x03\
+I\x9ag\xdd\x0f\xcd*t\xb9\xbb\xda\xacq,\x90\x99\
+\xa4\x17W\xad#\xde{&Hm\xbfa\xbfA\xbfA\
+U\x05\xb0p6\x07\xb4\x9b\x98\xa5\xf7\x1d&\xee\x00 \
+\xf8@\xc9\xe0Z\xd0AJ\xe0\xd2-Zt[\xbb#\
+\xccj\xef\xf3\xe4\x09f\x0dtU\xe4gp~\xb0\xc1\
+\xc2\xb5\xe0\xdc /)H\x01Zg\x90\x91sG\x9e\
+\xca\xef\xba\xea\x99\xfd\xec\xd8\xc1c\x07\xe7\x0d\xbe@\xcc\
+\xde\xac\x84\xe4\xc1\x85c\x05\xd5\x06\x9f\x9f\x046\xf4\xb0\
+\xbf\xcf,\x1f\x1c\x85e]2v\x99\xf4t\x83\x8a\x04\
+I\xe1\xe9\xce\xdd\xce\xb9\xa7|\x8f\xc1\x12\x97\xbb\x97^\
+r\xefq\xfbu\xe9\xb1w\x87\x0a\x87\x03\x87mo\xf5\
+|\xb3\xcf\x82(\xa2\x87y\xad\xe2\x08z \xa5\x8a.\
+\x89\x15\x97+S\x8f \x0e\x8e\x07\xe4p\x0eP\xc1#\
+`\x22a\x89\xc3\x07$\xfa\xab\xe9I\x1f\x96\xde\xffI\
+\xb3f\xff!qG\xcb\x0a\xe4\x8d$<\x09\x00!G\
+\xe5`_|X\xc2HPS\xd0\x92\xf7\x8f4\xfe\x05\
+\x99\xf1\xb1\xb1=\xc7\xf6\xcc\xf3\xbf\xa8\x0f\x10@\xe3\x08\
+\xb2O\x90\xf8`\xfc@D\xb0?\xaf(\xee\x94\xed\xc4\
+R\x8e\x8c\xa4z\x0a\x9d\xb4gyA\x1ca\xdd\x07\x09\
+\x02;=\x81\xeeL\xb1\xfe\xdf\xa1@G\xeb\xdcI\x0b\
+i\x89\x00\xb1\xc78\x00\xc5\xe5\xff3\xaf\xb8~\xeeG\
+\xa4i\xee@1~\x0b\x05\xf23\x9e'\x81vd\xdd\
+\xae:\xd2\xc5\x01\xa6\xe5\x80\xde\x7fz\xcf\x09`\x1e\xf1\
+\x9e\xee\xa9=\xa3|.H\x16AB\xd3\x9c/\x81\x9d\
+\xc84i\x85\xc8\x8d\x80\xab4\xfa\xf3\x15\xb2<\xb5\xe2\
+\x16\xe5\xbe\x98\xf7\x8f\xe9\xf7@~I$\xc5\x0aT\xd0\
+I\x9f\x86\xe4\xe0\x1f\xe3\x1ce\xe1\xa2<\x1c\x8e<\x01\
+\x14\x95S\xbe\x97q\xc7A\x8f=\xc0\x9c\xbb@\xe2A\
+\x90\xcc\x90C\xcbu>\x10z\xfc\xd5\xaa\xe1-Jz\
+\xce\xe9T+\xdf\x0fr\x94\x04$\x01\x14dV<g\
+\x123\xa8\x15\xfcJd\x8e\xf8\x158\xc8 \x1c\x94\xe8\
+\xf5D\x19\x082\xc6\x03\x08,\x89\x95\xa0\xce\xe0\x0e5\
+\x9f\xcb\xf8/\x1c\xe4p9\xe7\xd9'@\xd6\x11\xf0\xa0\
+\x16\xa1\x00\xcc\xa1\xd6\xcc\x939\x81k\x82g\xcb\xef\x83\
+\x8c\xde4\xd25\xb5\x06\xa4\xf9YZ\xdf.\xd7\xf5\xf0\
+>\x02\x19Z\x9a\xc4\xf5\xe0\xeb*B\xa8g{\xcb\xe5\
+\xd4\xfb]\xc4_\x0bdz\xe1n\xa1n\xa1&\xd0\xae\
+\xf3&_\xb7\xab-\xe0\xffq\xfe\xf3~\x10?$\xda\
+\x09l@\x96\x92X\x81T\x92\x1en\x0ap<\x1f\x12\
+9 /\x08\x94\x09\xe8\xa3,\x1b~#\xf3\x80\xf5\xc4\
+\xf3e\xbe\xc7\x84A\x94\x9b\x8b\x5c\x00\x04\xd6\x0f\xe9\xfa\
+H\xc00\x9f\x22w\x01\x7f\xc7u\xc5\x00\xb1\x92B\x96\
+\x04\x1d\x1c3\x04\x9c\xc4\x1b\xdc\xef\xe3S\xd5R\xfc\x95\
+^{\x02~\xf6O\xd6k\xac,s}\xb1\xe5,\xaa\
+(h\xbe\x0c\xac\x03 \xf7T\xde\xf9\xdc\x7fi=\xc7\
+\x96\x82\xd8\xe2Bb\x92\xf1e\xbf\x89l\xfd\x9c#\xfc\
+\xcc\xf3!a\xc7\xbc ^\xab$\x82\xa8\x94\x90h\xe6\
+\xef\xa7\xf8%$\x16\x9a\xfd\xad\xbc\x8fs\x82u\xfa\xe4\
+T$\x85\x8f+\x09\xa7\xd8\xd2\xc3:\xe4~\x19\x0f\xe2\
+\x05\x0aa\x13A\x9d\x86\xcf\xa3\xa0\xc1\xbeMa\x04R\
+L\xee\x1b?Dq\x8dsZ\x80\xbcSb\xc9\x0b\xa1\
+\x22\xc9vu\xaf\xaf\x179oO\x9c*\x81\xdf\x1d\xd5\
+}\xa7\xfbN-4z\x0b\xa7\x10m\x13\xfd\x12f\xd5\
+\xc1\xf0\x8a\xabd\xda\x86e\xacfU\xf5\x7f\x91e\xf1\
+\x8c\x83=\x96\xa5j\xe5\x10\x04@7\xcbL\xd0\xd4/\
+\xd7\x85\x97\x02\x9a\x9d-\xa0\xc9\x01}\x9ap\xfd^f\
+\xaa\xd4\x1d]\x0f\x96\x1c\xf8\xa6\x8dh\xf4\x7f\xc9\xae\xad\
+,\xc1\xc3\xdaf\x0d\xfb\xbee8.\xcf:\xf1K\x9a\
+N<\x81\x80;\xea\xe6\xce\x9d\xa0J\xd1\xcd\xb5\xd2\x98\
+\xa1\xef\x8b5\x95N\xab .\xdel\x5c\xf6oL\x01\
+\xc5\xaa\x82*7\x95\xa7<\x8d\x9eh*\x968,\xe8\
+\xeb\xea\x80A72\xcb\xf4\xedW+\xffl\x8c\x04\x84\
+Y\xfe)\x05\xe2\xa3\xf7&\xdb\xad\x22\x1d\xc6\xef\x1e\xbf\
+g<\x05\xc4\xe3\xef4K\xbf\xcf\xffj\xcf\xb9W\x0c\
+\xff\x5c\xc8\x18\x9d\x8c\x89\x8a)\x1b\xecN\x85\x8c\x8d\x1e\
+\xae\x9c0y{#\xa7\xa6\xde\x96\xdc\x10q|\xae\x5c\
+\x16\xc8\xbf*M\xc9M\xdd\xbe\xdb\xbeq\x18q\xccq\
+\xec[\xb9\xbcQs\x00\x91\x88`A\xb2\x11\xb10\xd9\
+8\xc8\xd0\xab\xe5c\x98\xdf\xac\x92\x7f\xf4G\x9b)1\
+pX\x86\xde$k\xa0\xddB\xb0d$\xc9\xde\x9aw\
+_l\x1c\x0fz\xb5\xd5\xca\x90{`\xbe$\x12\x8e3\
+\x9b\xf1\xe29\x22\xef\xc1\x02e\xa3\x87-\x185\x8a\xc7\
+\xcdT\x99\xdcM\xf3s\xad\xdc\xd2\xf2\xc7\xde2\x83\xcb\
+\xda\x0a\xaa\x81e\x0a\xfc\xe7\x8c\x8c\xd3\xe0Q\xb3\xca\x0a\
+\xef\x10\xe7s\xc5\x01\xf0a\xb3\x8c\x1c(\x1bA\xd4;\
+G\xc6+\x1e\xd8\x04p\x22\xf1\xf2\x8a\x05\xbd\x8e?,\
+\x10xz\x813\xb9\xe4d\x95\xe7\xca\x89\xb5\xcb\x1b\xd9\
+.\xc9\x1c:\xf9\x18\x1b'-\x22\x0a\xe4]o\x1aH\
+9\x10_e<G+\x9b\xa5\xf7\xafh\xd6\xc8\x9dQ\
+I\xbcF\xd0\xce\xbf\x88\x1c\x07\x95\x01\x1c\x0c\x12O\xa7\
+\x9a5\xf2|\xba\xbf\xee\x17f\x0d\x19)2)\x90\x92\
+\xea{\xd3=\x97\x96\x81#\xca\xf8X=5WT\x95\
+\xe0\xe3{\xfb\xfb\xcd\x9a\x1eT\xb1\xc4\x0f\x0f\x98\xd5\x80\
+hX\xd0\xac\x81\xb4\x09\x89\xe0$X8\x80k\x97\x9e\
+}\x12\x98\xeexQ\xe1!\x01\xc4\xc1\x09i\xdf\x8f$\
+/&R=\xe4]<\x00\x114\xb4[\xbc\x9b\xd1\xcd\
+hzt\xd9\xcf75k\xb8 \x84\xecI\xeb;Y\
+S\x19g\x1d\xe2\xc0\xbd[\xf2\x84\xfb\x0b\xc2O\xa5\x11\
+\xc7A\x0ek7\xd1\x8dw\xe3M\x8b\xc3e\x22\xc1\xc1\
+\x81\x87\x85\x1f\xb2E\x10%p\x18p\xe0R!\xc1q\
+!\xd3.]z\xbf_\xe9\xaa7\x99\xf8r@\x82L\
+{g\xb6\xb1n\x05\xb3\xe6`F-\x84V\x22*Z\
+8N\x0a\x00\x98/\x90\xb5\x0e\xff,\xe4M\xae\xb7\x8b\
+\x0c\x22\x9c5@T\xd9\xdf\x94p\x1c\xce\x1f\xce\x1b\xce\
+\xcf\x81h\x96\xafE\x9f\x1c\xae\x15W\xd5\xa17\xd2Z\
+\xbb\xfe\xaf&\xea\xbce\x87\x84\x1b\xa4\x97+\x96\xf5\xe5\
+\x89\x16*\xfe\xec\xcb\x04F\xa86pN\x03%\xd4\xf8\
+x\xa0\xc18\xd2#M\xc5A\x08\x02\xf6\x09d,}\
+<\xe7\xf7JO\xf9\xb9:l\xc5q\xc2\x11\x99\x13z\
+0\x99\xf7\xff\x96CE \x80\xa3$\xd5\x14'\x7f\x04\
+JJ\x80\xa5u\xe6\xaa;\xcc\x1b\x12iU\x96\xaa\xac\
+#~V\x22\xc1\xb9Fbo0\xd0V\xdeO@\xcf\
+~\x8b\xc3\xce\xbc\x09\x155\x0a\x02\xd3\x10\x1e8\x8a\x04\
+,\x04pp\x1dIU\xc8\x13\xa5\x9c3@\xd0\xe7\xb2\
+\xbf\xbb\xa3\x1e+\xa1\xbc\xf2\x9cp`\x95\xf8\xf1\xd6\x1e\
+\xcdW'\x8b%\x90\x08\x89%'y\x85S\x88\xf7M\
+z\x0b\xdf\x14\xbdlG\xa8\x91\xd8\xe0\xfc\x07\xc2\xce\xb8\
+p\xde2/x\x8e\xc8@\x22\xebH\xc5\x8f\xe7\xc4\xf7\
+C\xf6\x1c\xe57\x09(\xa2,_d\x9b\xe7s\x91\x9f\
+\x8c\x88\x09\x12\x0d\x905\xfeF\x89>\xf6\x0b\xde_{\
+\xea\xcb\xf7<\x1f\x0a!\x04\x18<\xbf*\x13W~\x16\
+R\xc0\xc9\x5c\xe1\x1c`\x1e\xf0}\xccW\xe6\x1f\xcf\xbf\
+\x062%\xb0\x81\xf41\x06\x5czM\xe1E\xe1\xf0\x02\
+\x190\x84\xc4\x11HC\xc6\x15\xb2:\xbe\x0f\xb2H\x10\
+\xb2pIQ\xf1F\xf6\x16\xbf\x0b\xbf\x86\xe7\xc3\xe7\xe3\
+\x97\x92h\xbbK\xf7\x8f_\xc8\xfd\x83\xd0\x84\x93\xcb\xf5\
+\xe6\xa5ZU[M\xcb\xf3\xe5>\x94\x10A\x9djZ\
+\x02 \xaa\xf7\x00\xd5\x9f[\xc5\x9eq\x8e\xf2\x82\x04\x96\
+\x04\xfe\x8f{\xeb%\xdcI%\x00\x8f\x1c\x06|\x1e\xfe\
+\x0d-\x031Q\x1adic\x82`\x1a\x02 \xb2\xea\
+\x07\x19Q'\x0b\xfc\x8bs\xf8\x94\xf5\xf2\xb0\xcb\x15\x96\
+\x84\x04\xe7pl\x11a_\x89r~O\x07\xc4\x01\xad\
+2\xfc\x7f>\x17\xff!\xca8\xb2\xbf?\x17\xb8C\x08\
+\xc49W\xea>P\xfc\xday5\xdeB\x14\x0e\x0f\x97\
+\xfb\xebVS\x0bRD \x83\xf0\x88\xa4\x8cpP\xa0\
+\xfe\xd1\xaa\x86ML\xe72\xf3\xc4$\x05F\xf6\x0d\xce\
+!\xe2\x1f\xc6\x0d\xae9\xces\xfc%\xa9W\xd1bN\
+\xa2\x00N\x9eas!\xe9X\xbf\xab\x98)\x8e\xde\xb9\
+\xe1f\xd3zs2X\xe2\x03\xe6\xbf\x12)\xa3\xe5\xcd\
+2b1#`'\x5c\x17\x9c\xde\x04e\xf22\x1b\xf0\
+\xdb\x9b@\xda\x80\x9f\x87\xa8\x02\xba\xb9\xc8\x9d\xde_\xd9\
+\xe8\x81\xc8\xe6\x0a\xfb\xe1\x82\x02\xad\xa5\xcfM\x13\xa9\xdf\
+\xca,\xbd~\xdbL$z) \xeeoOvG\xad\
+\x1c\xe6\x8a\xf8\xfb%\x8bwPuXs\xcfn\x9b\xf9\
+\x17\xc4\xb8\xdb\xc7,\xbd\x9e#\x08(\x010\x10Q2\
+&G%\xfbn\x95\x0b\xcc\xdf\xb7J#\xc3b\xad\x00\
+\xafi6\x08s\x07\xdf\xa0\xff\xbf|\xe3\xc0\xaa\xc2\x94\
+3\xe4\x174\xa4\x10\xb0\x8d\x0b\xea\xdd\x8f\x9bU\x95\x02\
+\xef\x91%C.rB\x90\x01\x16\x1e\xe6\x84\x809\x88\
+\xe3Y\xef\xfb \xbb\xff\xd1\x1fG\xd7\x8c\xac%\xe0x\
+\xb3\xaa?\xee\xac\x93\xe8\xd7J7|\xf8@\x81\xc0\x8f\
+\xbdG\xa4\x87TvT\xd1\xe9\xbe!\xb5\x07\xb1\xf5\xa2\
+r\xe0\x99Az\x92\xe9\x91\xff\x9d&\xaad\x98\x9cd\
+\x8c\x0d\x17\x871:T,|\x0e\x22\x16J \x1bj\
+\x02\x9eR\x11\xa4\xc7o\xd7\xb1]\xc6,Q\xb4\x93&\
+\xbaz|\xdd\xcfQf\xb4\xdf8\xd9\xeb\x85`\xf9x\
+v\xbc\xcf\xcf\x89\x09T\x0d\xde\x9clk\xc9\xbb\xddS\
+\xa1\xd0\x1e\x10\xb2`\x81 \x1a\xc0\xf3'\xe9\xff\x7f\xcd\
+\xac\xb2\xcf;4\xd0\xea\xeb\xdfiZ^TI\xcb:\
+\xe6?n\xc6c\xc1\xbce9t\xa7\xfb\x95Y\x930\
+\xc2\xc1\x80\xbc\x036k2\x88T\xc6\x94\xd9#\x00\xa7\
+\x15&\xa7\xdd\x96j\x12*\x5c?\x81\x1a\x95YA\x81\
+\x86\x1b\x84\xa0\x11$\x18U\x8a\xee\x16\xb3\xa6\x92\x8c\xa3\
+\xcf\x81\xc2\xe7\xb0q\x01\x0d'\xd1\x15z\xcc\xfd}\xf4\
+\xfa\x8b\xfd\x1eD\x82\xcb\x90\xfc\xad\xc8R\xd2C\x9b\xae\
+.\xf7\xfcC\xfa\xe3\xeb\xf1\x8cd?m\xa0\x8f8\x12\
+\x8c\xd7\xc1\xa5\x12?\xecf\xd6\x90\xa8\xd0k\x0fK;\
+,\xda8\xa0\x1cp\x04\xbc\xdf*\xc8\x89\xe1\x8de\xc3\
+E\x16\xd3+\xca\xa1\xe7\x1ad\xc7\xd8\xd7\xb2U2,\
+\x0e\x5c\xcdwG$\x00\x05\x85\x1d\x9d\xe7Do\xd7'\
+\xcc\x9a\xf5\x00\x94\x9f\x03\x88\x8c1\x8e\x0c\xd7\x0f\x9b\xf5\
+7\x87#\x86#^\x80\x0d\x9a\x03\x9c\xfd\x0b\xd9.\x12\
+\x14\xd2\xc1v\xf5\x0e\xd8\xe3\xe9\x1d\x83[\x00\xb97\x12\
+\x09$\x86\xc4Ma8\x02C\x12t?0\xab\xb2\xa9\
+\xfe3\xe3\x82\xdc,\x99\xf8\x85\x9c\xac\xb0\x1c\xf8\x04\xa6\
+\xf4\x00S\x89\x04R\x8f#\x03\xb2`\x19\xad\xc3\x8dT\
+9\x06A\xa4\xd6\xb2i=\x9e8P8\xc6\x04\xaa\x1c\
+\xec\xc8\xbd\x1e\xa9\xbf'A\x01\xd4\x11\x87\x0c\xe83H\
+\x1a*\xac \x92p \xaf\xcf\x18\x85J\x22DK\x92\
+\xf6\x09O,\xf0\xbcP\xb3\x10\xb2\x0c\xf2I\xd8\xfeS\
+PU\x1c(\x02,=G\x87\xba\xab\xc7\xdf\xd9\xfd\xd5\
+\xd2\x96\xb9\xda\xf7h\xe4\xbb\x08\xb0H\xd0\xe0p\xe1\xc8\
+n\x9b\xad\xcaX\x82,\x82\xc3\x87yE\xa5T\xf2V\
+\x1e\xa0\xdd\x15\xc8\xd3\xa2\x1c\xd3\x7f\x9c\x9d\xba$\x1ep\
+\xacy^\x91d\x0dG_Pf\x87R\xc2NN \
+Kk\xc9\xbdr\xdc9\x97\x1eq\x88g\x99o\xb1\x15\
+\x8d\x9f\xd9\xf7\x22r\x81\xf1\xa6\xc2\xca\xbe\xc7kt\xbc\
+\xf9G\xa2\x84\xfd\x8bqc\x9cT9t\xf9Q\x1cM\
+>\x97\xf5\xc0zg\xdf\xe0\x1c\xe5:c`R\x11\x19\
+e\xfc\x22\xcb\xba\x12\x11\xecK\xde\xf2\xb7@\x90\xe9\x12\
+\xf7\x05\x95)\xff^\xc9Pz\xc0\x8d\x8a\x03\xec\xf5\x04\
+N\xac\x0b8=8\xe7\xe3\xba#\x90!a\xc0}3\
+~\x04\x16\x04\xa2\x91\x9d\x1d\x84\x04\xfb<\x15Z\xf6C\
+\xcd;\xaf\x10j\xdf\xf3\xf9\xc9\xf3\xe0\xfe\x08|\xa3>\
+7\xfb\x16\xf3\x06h=\x5c\x00\x91\x5c\x8c\xeb\xa6\x90\xc0\
+\xff'\x11\x04\x12\x83u\x1dz\xa4\xfd\xfe\x19'\xe6w\
+\x0c\xa0\x08\xb0x\xee\xf85\xd3+\xb0\xe5\xfb\x16\x0c\xad\
+\x00$\xea\x9e\x09r\xc2\x15*\x0eR\xa4\x5c\x1f\x15j\
+\xb5\x8et\x9b\xab\x05\x80\x16\x13\x9e3\xe7+\xf7\x81?\
+\x01\x97\x05\xe4\xb1\xb7\x14\xf9E_\xffc\xdeRQ\xe6\
+\xf5\xe5\x81CdaUJo\xf0\xfb!\xa115\xf1\
+\x87_\x14\x13\x00\x11a\x83?Z[e\xcaz\xe3\xf9\
+\xf3\xfb\xb8_,\x1c\xf6\x93H\x9e\x18[y\x98\x17\x8f\
+\xe7'V\x0b\x0a\xac\xeb\xa8r\xc0:\x8c\xfbL\xdc\x9f\
+8\xdf\xf8\xff|\x0f\x95e\x91\xb9\xfa\xf8\xc7\x9e{\xee\
+\x93}\x84\xfb_,$2\xb8\xaf\xaa6\xc4xNM\
+$q\x1dB\xd09i\x22\xdf\xc3zc>\x918\xe3\
+_\xafuC\xab\x0d\xf3\x94\xf9\xc1}\xc7\xeb\x01\xe1K\
+b\x9ds\x01?\x8b\x04Hl-\xe2\xbc\x89\x88\x0e\xd6\
+)\xaf\xac\xcb\xd5\x0a\x82\xc9\x18w2\xe7\x0e\xeb\x83\xe7\
+\xc6|\xe7>\x19g\xfc8Z\x1fh\x11\x04i\x8f\x7f\
+\xfe\x0a\xb3\xec\x07d\x19\xf0~3\xb3\x86#\x0a\xbfL\
+\xfe\xa4s\xcb\xcd1k\xe6\x07-\x82*\xec\x8d\x1dT\
+Z\x01\xbb\x03\xbbOw\x9f\xb6\x04\xc0\x11r\x1c\xd9 \
+\x04\xe5\xcfy\xe6\xbf\x0aZ\xf1\x0f-\x90\xc7k\x85/\
+W\x5c\xf6\xc9\x1fx\x90A\x0c\xe9]t2 e\xb6\
+3[n\xba\xa1\xfe\xb7\xc9R`0y\xb4\x99*Y\
+\xc7K\x97\xdb\x02\xdb\xa7\x93=%Hsr\x98G;\
+\x9b\xa5\xd7\xa7\x93=\x95!\xaa\xbbg\x07\x88\x7f\xd7g\
+\xd7\xaa@\xfe?\xdcp\x0c\xd8r\x5cD\x9f\xb3\xba \
+\x12\xebi\x02\x8cD\xca\xb6N\xed\xad\xcd\x1c\xc3\xe9\xfa\
+\xfbS\x92\x9d\x5c\x03\xb7\xd1\x01\xc9\xf6W\x00\xb0\x9f\xf4\
+\xda\xcfh*\xc0;%K\x01j\xbfM\xb2\xb7\xd6\xc0\
+\x1f\xc7\x18\x879##>$u\x82[*\xa4#\xab\
+\x01\xbcW\x15\xa5\x0b\x1aY1d\xfbn\xean\xeen\
+\xce=\xcb\xc9\x9a\x16\x03\xf4\xce\x1f4\xab\xec\xf1\x19r\
+\xfd\xfd\xe9$G\xee\x90\xbeT\xcf\xed;\x0aT\xa8\xf4\
+oeV\x17\x82\x93AqpR\xf1:4[] \
+w\x05GXl\x9d\xae\xf7K\x06-\xaa\x03\xfc\xa3$\
+\x84\xa6\xe9~\x92\x09\xbd\xab\x90iM\xee;\xf9\x89\xc9\
+\x14\x10M\xbebr\xcd\xc95s\x80_\x16\x86z\xa3\
+}\xfe=\x91\xe9Q\x1c\xca\x8eZ\xc30\x8fYU\x93\
+\xf0q\xa1r\xc0\x01\x0f\xb9\x14\x01\xfdg\x92\x1d\xd4\xf4\
+\xc0r\xfdV\x7f\x5c\xbfA\x80\x18\x07\xf5\xfa\x8d\xe3\xa6\
+\x8d'?\xd7\xdd*\x09Rn\xedH\x01\xech\xa3\xd1\
+kG\xa6\xc7\xf9\x90Y\xad\xbc\x22\x8b\x88L\x9a\xcbo\
+r\x9d\x9f\xcf\xb4\x1dc9\xed\xf0\xed\xcc\xc6\x9d{\xd0\
+!\xdbLNW\x81\xe6\xc3\x99@F\x91\x8a6\x07\xe1\
+1\xd9\xea\xab\x85\xad\x87\xa9\xb5\xe2\xa4\x9a\x10!\xf0p\
+\x96vZ\x1e\xc8PR\xe9g\x83$ \x9b\xcfL\xad\
+C\xdb\xaau\xe6\x97\x9a\x07\xf3\xd4\x8dq\xb8\xca\xac9\
+\xd0\xf7\xcdf\x89\xabd\x22-[^\x81\xc9\xf9\xcd\xc6\
+\x8cL\x1c\x90O\x1cA*{\xefT\x8f?\x19P\xf5\
+L\xa3O\xcf\xba\xf3\x8a\xa9\xb8N\xd2&\x9c+\xf4\xc3\
+G\x0a\xe2\xc2+U[\x8b\xc5\x9d^i\x126\xcf\x8a\
+\x05Wd*\xce\xd9\xa0\xc4\x0e\xcf\x9f^H\x97\xfd\xa3\
+%\x83Jk\xd4\x17\x87eW:\xd4|?\xbd\xdd9\
+\xb1u~Sa\xe4\x00$\xc3M\xe2\x03\xd2\xb9\x19\x05\
+\x11\xe0P2=?g\xef\xa6\x1c-\xad\xfa\x00\x00\x1f\
+\x15IDAT7\x1c\xc7x^\xb3\xda\x92\xe1\xf7-\
+\xee\x0c\x97\xf5#\xc1u\x9c\xce\x09\xd6\x11\x15z\x02P\
+\xb5@x\xc2\x80\xde\xf6\x08\xc1$\xf0\xe5\xe0\xc4A\xa0\
+\xd2\xc9A\xc6\xf5\xb0\x1f\x01\x89\xa7\xb2\xa9\xfbA\xb5\xc1\
+\xcf3z\xb1!\x09\xc31\x09\x10=w,H\xc0\x9d\
+-r\x1d\xd8\xfcq\x9c\xa8 0~\x8c\x03l\xc7G\
+\xea<\x95\xee\xb8; \x90\x5c\xc9\xe1\x83\xed\x9e\xf1\xc9\
+\x8d\x05{\xd6\x84l\xf7\xfb\xee\xaa\xee\xaa\x06b\x1d\xa1\
+\x9dT\xde\xb9\x0f\x1c}\x12F\xec\xaf\x8c+\x8e)\x95\
+\x08\xb5\xb6\xf9\xfcd_\x80]\x9fD\x17\x9c\x13\x9f\xd7\
+|\xe7\xfbxnU\xc7=\xcf\xeb\x9c\x08\xfd\x898\x82\
+\xf6\xce\x88\xbbB\xe6\xc7y\x12\x022\x0f|\x08(\xb9\
+^*\x9dK*\x90Y$\xa89p\xbf\xc8*>T\
+Z\x01\xcd{\xe8Vi\xc6\x09h4\x01\x0d\xdf\xcbu\
+\xe3\xf0v.\x9fG\xa0W\xd6\x97\xd6+\xfb|\xb7\xa5\
+\xce\xd3\x08\xd5g\x7f\x13\x0b\xbd\x01\xad3\xd4\x9as\x07\
+\xc8;?s}\xcc\xbfXQ\x8c$esC\xc8\xe0\
+\xf8\xc7\xfb\x99\xd7{`\xa7\xb2\xc2\x13\x18\xb2\xcf1\x8e\
+OL\xed5\xf6\x16\x0d>7\xb0a\xbb\x9c\x9d\xf9A\
+;e\xf5\x89B^\xcb>\x17\xd8\xec\xbd\xa5\x08\x84\x98\
+\xd8\xbb;z\xa7!\x97\x04\xd9\x81\xc3M\xe0\xad\xf1p\
+.\x9dg\x5c\x9f\xbc\x8c?\xe3\xc0y\xce\xf7\x07=q\
+d\xab!\x9d\xf4\xc47\xe4\xb2J` O\xec\xf3\xb0\
+\xf7}\xab\xecG\xb1\xc5b\xbe\x90\x00\xa8$n\xe5\xba\
+\xd5\xc2\xea\x5c\x03\xaf\x15Y\xf3R\x0a\x5cT(K\xbb\
+\xf5\xe3\x99t\x90J$\xfe\xd6|\x81d\x99\xe7\xf4\x90\
+\xe65\x09\x80\xa8\xde\x13\xd50\xf8\x99\xc0)\xb2\xb6W\
+\x12\xba2\x1f\x229*\xe7U\xe0<\x18~SH\x01\
+9\x07\x90\xf3\xf5}\x8b\xe7YIV\x8b\x9a\xc6_$\
+\xbfKb\x9f\xc4Q\x94o\xe3\xbcg}@\x06\x0aR\
+\x88\xfb\xa9\x89\xc9\xf2\xfc#'@l! P\x9e\xe5\
+\xd0\xf02\x8f\x22\x12`\xa6\xd6\xdd\xb3!\xe1\xc6z\x8a\
+\xe377RH \xeb\x8f\xa4\xf9\xfeHs\xaep\xee\
+\xf1>\xe6OD\x04\xb0/D\xce\x0f\xde\xcf~\xa1\xff\
+\xef\xac\xfdU\x8e\x91\xfb*\xcf5\xee'\x11\xea\xcf\xfc\
+\xe3s\x09\xb4\xb9\xbf\xda\x82R\xaecY=\x17\x12\x01\
+\xcc\xd7H\xaa\xc8\xf7\x92\xe8\xe3}\x8bj~\xb2\xee+\
+\xa7F\x99\xdf<'\x10,\xec_\x8c\x03\xe7\x08\x08\x10\
+\xd6\x1d\xcf\x1d\x0e\x87\xa74\x9e\xec\xc7\xac\x0b\xfc}\xfc\
+|\xe2\x16*\xfe\xbc\x7f;!\xf4v)\x85J_\xcf\
+\xb4\x8c3?\x22B\x89\x02\x0bjz\xdf\xc9V\x0b\x9f\
+\xdc\xc7\xc2\xf2'6,\xaa]\xc3\xef\x8b\xdf\xecP\x7f\
+\x0a\xca OQK\xd0~\x9b\xd5\xe4\x92\x9f4\xfa\x88\
+Y-\xf0\xc0i\x02\x99\xfe\x84\x07vFm\xb6Q\xf3\
+@\xcc\x0dZ\xbf\xb2\xc4\xe7\x1e\xe3\xfb\x15\x98\xfc\xba\x92\
+\xdf\xe5\x0a\xf3\xc5Un\xa8\xdf\xc4\xacn\xa4\xfd\x1b\x92\
+\xbdQ\x1b\xf35\x92\xeb\x1bW\xc5\xeb\x93M`l@\
+\xe0\xd7*\x00\xfd\x96d\x05O\xd0\x81o\xbdK\x07$\
+\xfbT\x93\xf1\x5c&\x83*\x9d\xb5>\x93\x91\x9c_\xf5\
+\xba\xa9\xf8\xe6@p\xdeZ\xc1\x803\xa0\xffr\xb2C\
+\xd2\xfb\x7f\x93\xec\x12\xf5\xfe\xbf\xb5q\xe0\x9f\xcc[l\
+\x81\x08\xff\xa4\xea\x81;\x8b\xa9\xb1\xb5\xef\xd0\xc8\xe5h\
+\x01e6\xf3\xadU\xf1\xbd\xa0B\xd23;\xfa{*\
+i\x0a\xbd\xc5&f\x97\xe5\xec\x8a\xabW3D\x820\
+\x22\xdfD\xe6\xca\xd5\x16\x02d\x13\xf9\xa5\x9c\x909\xa8\
+\xe99!\x03\xa5\x0d\x90\x89\xe0,\xebL$\xd4\x1b\x8c\
+\xf4\xee[\x0d\x17\x00\x1b*\x07\x01\x01\x18\x1b(\x1b\x02\
+\x07\x03\x07\xcf\x87\xa4\x8f\x09\xc4]\x15\xfc\xccz\xda\x90\
+\x9f\x0d\xa7\x995\x15\xfd{\xcc\xd2\xeb\xc9fi\xdd\xbe\
+{\xf2]\x93\x06E\xde2\xd9VU\xc6\x0e\xf9-\x87\
+\xcc\x18i\xd8!\x8d\x8c\x91\x05\xaa\x877\xa44\x16&\
+\x9f]{\xe6\x9dt\x8d\xfb\x00\x92\xcc\xf5[\x98\xf4\xf5\
+\xda\x9b\x8bc\x8b\x83\x9ee\x97N\x90\xc3mH\x8fc\
+\x93\x1d\x97\xfe\xff\xcd\xc9\xfe,\xe4\xc0a\xcd\xb8\xe1\xb0\
+S\xa1\xa4'\x1b9\x10U\xb4\xc8\x5c\x0e\xeb\x0c\xaf\x1a\
+^\x95[\x08\x96\xcb-8\xe2h\x18}\xcc\xacqh\
+\x0e\x16K<\x10.XA\xe9\xa5\xffCI\x08Py\
+\x1c\x9e6K\xafK\xa8\xc7Y:\xa4\xfd\x92f\x8d\xec\
+U\x80\x0cw\x17\x9b\x09Q\xf1\xa6Lr\xb8_\x86f\
+\x93\xb8\x81\x15\x9a\xfd\xe4\xde\xdc\x95^!\xeb\x0a\xe8s\
+o\xfe\xebk\xaf\xb3\xcf/U\x90r]\xe6\x7f\x14\x00\
+\xbf\xa5!\xb1\x13\xf2!\xdd\xef\xc1\x06\xf1\xcf\x0d\x00G\
+7=\x8e7*\xc3\x0a\xd9\xcc\xc9E]al\xe5\xe2\
+\xe0\xb9\xbe5\xf2\x91\x1c\x5c\xa7h\x1e\x1cS8Mx\
+N\xc3\xfaf\x0dY\xe0\xa9\x92\xcb#1\xb3\xa1\x02\xa5\
+7\xe9\xfa\x0e1\xab\x88\x1c\x97u$`\xe1@\xd6\xfe\
+\x13Y\xac}\x9dB\xb2G\x0b\x85Z\x5ch}\x00\xe2\
+\xedri\x1c\x94rl\x1d\x09\x04\x22\x02h;\x08\x05\
+\xe9\x84\x0f\x13f\xb9r\x93\xc9\xbe\x9c\xbd\xfdB\xb3\xf4\
+\xba\x87Y\xe5z\xf1\x84H\x1f\xc8\x9688W\xd5A\
+\x89\xa3\x07\xb4S\x01;\xe4O\xce\xa6\xcd|]\xdc\x03\
+\xbc\xf29\x04\xecW\xa8\x95\x80\xca!\xd7q\x9c\xd4/\
+@R\xe0 \xc0B\xfe\x0d\xb3&\xc0\xc11\xa2W?\
+:68V\xacS\xa0\xef\xc86\xc1}\xf2=\xb3\xdc\
+JSz\xff\xb7\xc9V\xd5\x07 7\x83\x5cS\x09\x00\
+O\xb0#\x8f+\x15\x86.\xb3\xec\xa6\xd7\xbd\xcc\xd2c\
+9\xdbLd\xb17UD]n\xdc\xda9;\xf6\xc5\
+A\xa2rI\xe5<\xca\x83\xe1HE\x9d\xefH\xeeE\
+E\x22\xe80{kKP\x8b\x99\x16@\xe2\x18Uy\
+\xc5B\xf2F\xab\x8a\x10F\x9e\x18\x00r\xa9\xf5\xe4\x15\
+S\x1c\x1e\xfc\x0e\x1c\x5c\xce\x13\x1c\xae\x08i&p\xfa\
+\xef\xd4\xca\xd1\xa0V\x9dnE\xfd~\x09\xdd_lA\
+\xc0\x81\x1es\xb2\xa7\x12X\xe0@\xc2\xde.\xe4\x9b\xcf\
+\x13zQ\xf9<\xe6\x17\x889\x10\x16T\xd6Af0\
+n\x0f\x05\xf6{^I\xdc0\x9fq\xfc\x09|\x08H\
+\xd8'p\xa0q0\xe5\x18\x0f\xcf\x15\x04U7\x8fZ\
+M\x987\x04H \xb5\x18\x07\x90\x00$\xf0Qca\
+\xbc;\xedSp6\x09I\xe6\x09a\xb8T\xf6VB\
+\x9a\xe7\xc3\xf8\x10\xf0s\xdd@\xff\x97)\xc8\xc4\xe4;\
+\x96y\x0bR\x0b\x8e\x00\xc8A\x09\xd0\x187\x12\x0c\xec\
+?\xdc\x17\xf7\xc3<g^s\xbe\x808\x90\x1fD\xa1\
+\xa1\xdbT\x95k\xf6-ZQHX0\xffXG$\
+Db\x22\x8cu\x17\x91\x02O:y\x5c\x09\x00 \x87\
+%\x11\xce\xbab\xbe\x93\x88 Q\x81\xbf\xf2\xa4\x07>\
+\xe5{\xb8\x7f\xdbG\x1fV\x02\xa0%\x0f\x8b\x892~\
+\xe6\xfb\x18\xb78\xff\x9e\xf1\x1e\xe7r>BZ\xa8\xf5\
+\xeb\x1c.\xcc\x0f\xe6\x1f\x9f\xabJ1\x09\x01o\x19V\
+\xc5\x94\x1e\xfb\xe1V!5\x18\x17Z\xff 7~&\
+T\x9c#I ?\xc7\xf9V\x13y%\x00\xad\xb2o\
+Se\xfb\xe6qR\xear\x9eE9<\xd6\xdb\xfd\xe2\
+n\xf9\xbb\xe4\xfcX\x97$\x22@ \x91\xb0\x89r\xa4\
+\xfc\xe3z#\x07\xc0\xbfC\xc2\x81s\x88\xf907$\
+\x00\x09\x8d\x88\x04\xa8\xfa\xf5S\xb9R*4\xbf\xfc\xfc\
+T \x1f|&\x9c\x83\xab5\x1cX-\x07PE\x1a\
+\x95}\xaa\x22z\xcb\xf7\x91\xe0Q\x00\xeb\xd7M\xe0N\
+KWLp\x92 \xe5\xdcb\x1f\x06\x19@\x85\x9d\xe7\
+\xca~\xcaus\x8eT5\x96\xb2_\xf0y\xacK\x12\
+\x01\xacw\x9d#\xddK\xd5\x82\xb5\x8e\x10\x8a L)\
+<\xb0\x8f\x81\xec\x94\xbcq\xb7\xa2\xd6\x03\x1c\x22<w\
+\xc6\x95s\x81\xf3\x04YH\xe4\xc8A\xe0\xbd\xb2p6\
+Q\xa0\xf1\xd6\xbb\xa3\x8b\xdf3\x1cc\xd6\xb4\x08\x92X\
+\x13\xc2\xd8\x0bZ\xb4L\xa2\x22\xb6\x8d\xc8\xb5\xd52\x9b\
+\xb9\xed\xbeR[F'\x86\xa3\x93\x1d\xa3\x8a\xe5j\x8d\
+n\xb7\x050_\xab\xac\xe7\xbeqQa\xa4\x97G\x15\
+\xa0~H6&\xfd\xe0-\x15\xe8\x8f\xd4#\xbb\x90\x02\
+\xe9\x9f6\x8e9\x1b\xba\xe5YVh \x1a\xf4`\xda\
+m\xbe\xa3\xe9i\x0c\x19\x19\x87\xc0\xc3\x02\x0by\x8d9\
+\xfaW\xa6}\xff\xcff\xe9}\xb7\x9a\xd5\x0d\xaa\xff{\
+\xb2\x07\x14\xd0\x5cReL\x5cw\xd8\xea\x83\xe6\x10\xaf\
+\x95lm9\x9eG7\x13\x86J\x88M\x0b\xeb\x99\xfe\
+t\x81R\xf8\x81A\xe5\xca:\xad\x7f(2\xb3\x9d2\
+{\xe3x\x1e\x0fUVs\x00\xb6DCv&\xd5\x03\
+z\x88\x93cY&\x8a\x024\x02\x0cw\x90\x0f7k\
+\x12\x08@A\xce2\xe1\xc1f\xa3\xe3\xe0C\xbf\x18\xf9\
+\x08\x1c&\xa0\xa2\xb0\xbf#gB%5\x90\x189\x94\
+Y\x1b\x97g\xd2I h<\xd2b+\x0b\x95\x0d\xf1\
+ZA^p\xf4p\x04!\xfb\x12\xc4\xddu\xa2\x81\x82\
+\xab\xf2\xd2\xff)\xd9u\xe2\x06\xf8D\x85L\xf7\x7f3\
+\xab\x9c\x00\x19\xa8m\x10\xd53\xb3\xd5V\x14zh\x94\
+A\xeb\xbej\xd6@\x92\x15\xe0x\xcf\x1a\x0b\x0bH\xbb\
+m\x13K\xa9b\x97\x9eWwG\xb2\xdb\x9b\x84\x90T\
+,\x86\x95\x92\xbd\xb4V\xaeAf\x0c?.\x09\x84~\
+g\xb3f\xc1S\x01\xd4sN\xa3\x9b\x0fF\x0f\xd8\xc9\
+\x14R\x11\x96z\x85\x1f\xc0g\xa8\xb2{\x95\xaeS\xbd\
+\xf4@\xb3\xfb\xfb\xcc*IJ\x7f\xa0\x99\x02\xc4\xf7V\
+5\x08\xdf\x88fd\x90`\x09(6n\xe4\xbcL\xee\
+\xf2=/\x10H\x11\x80|4[\xad0\x22\xf3\x89\xc3\
+\xb5\x5cIdx\x00'D\x8eWX\x04i\xf2\x96\x94\
+\x1d\xc4r\x0eT\x9du\x05k5\x88\x17\xcdk\xa0X\
+^\xc9?\xb0\xe8\x87{b\x82\xbf\x87k\xe0\x8clc\
+y\xff;\xba\xc9\x88#\xb7\xc3\xbc\xc5\x81\x84\xa4\x8d}\
+\x8f\x84\x11\x81\xd0\xaf\xa6f~=`\xc4A\xe4\x00&\
+\xd1\xc1\xc1I\x22\x00\xee\x86\x8b\xcdje\xc79\x0ap\
+\x94`\x9bW\xe2,\xedN\xc5a\xb9M\xe3*\x96r\
+\x0f\x5c\xe8\xc9\xb5]m\xf3\x86\x13a+\xf5n\xaa\x17\
+\xac\xbb\xd4\xac!\x8b!\xe0\xa7\xe2Oex\x0dq\x06\
+\xbc\x5c\x07#\x07\xe5\xeaz%\xe1\xc6\xb8\x11\x10S\x09\
+\xfbj\xd1\xb7u\x0e\x09\x91\x14\xe2\xb8\x90\x88\xf0\xef\x01\
+a\x81\xec\xe0/\xcd^\xc0\xd1\x07)\x82j\xc2\xce\x85\
+\xe4\xd0\xd7\x09\x8e\x0b\x812\x8e/\x8e\x16-7\xbfR\
+\x0f\xba\x1c[O\x90\xa0G\xff`\xe1(q\x92\xda\xcd\
+\x85\xc8\x00\x22O\xc2\x0c$\x82\x1c\x08\x12*\xc6\x98\x90\
+[\xbct\x10\x8f\xd64k8TP+A\xf7\x17Y\
+J\xb5\x92t\xafS\xa5\x01\x84\x0b\x8e\xf7\x84\xf7\xe2O\
+M\xd0<\xe1=\xc6e\x9e\xe1\x10\xe1X\xe2`#\xa7\
+y\xbaY\x96#,\xa4\x7f\x1fP\xa2.\xca\xcc\xc1\xdd\
+\x01\xb9\xe6\x22\x9a/\x9b\x16\xc4P\xf7y\xb3F\xdd$\
+B\xeb\xb9\x0e\x02\x1a*`|\x0f\xaf\x5c\xff\xe2\xde\xcb\
+\x5c\x9egE6\x94u\xc5\xfaz\xbe\x04vi\x0f-\
+\x81.\xe7\x99\xc6\xdd\x11Tsk\x01\xc01\xbeZ\xf3\
+\xf6\x1a\xad\x9f(\xbf\xc6\xf5Nz\x05\xba8d+\xc8\
+Oa\x1fxB\xc8\xc05\xcc\xf2\xbc-\xfbJ\xac\xd4\
+\x12P\xf0yU\x7f\x1cR\xae2\xdfI\x18\x92\xe0\x85\
+\xfc\x95\xdf+\x11\xea\xe7\xc6x \x85SB\xad[7\
+\xf4\xb6\xe2\xdf\xe1\xc7\xb0\xafs\x9f\xc8\x08O\x14d\x9d\
+#DX\xaf\xb4t\x88\x05\xdc\x91\x801\xb0b\x9d\xf2\
+\xca\xfdW\xfd\xf6\xf2\x1cA.\xd0\x13\xfc\xa0\x02\x10\x02\
+\x11\xc6\x89@`\xc1P\x19'\xb0 0\x8c2\xc3\xb4\
+^@>)\x92Y\x0f\xeccA\x83\xfd\x8c\x04\x0d\xf3\
+6\x92\x8d\xb2\xcf\xd4\xc0\xa7\x5c\x0f\x15\xd6\x89\xd0B\x12\
+{\xfd\xb9>\x90F\x14j\xa8Lr?\x04\x18\x15\xb9\
+1u=s~i\xbf\xa3\x90\xd7\xa8\x03\xcc\x9f\xaf\x7f\
+\x22\x87\xc2\xf5\xf3\xe0\x9e\x00*M\x22\x17$\xccc\xc3\
+\xa3\x19\xa1\xb0I\xb7i&\x01d\xddp~\x12\xd0\x92\
+H\x81s\x02\xae\x05z\xe4\x85\x00\xf0\x00\x09\x99\xbcJ\
+\xbaY\xde\x17I\xfc\x18\xe7H6\xcd\xb8FDO$\
+\xc1\xfboH\xe0\x10\x902\x8e\xffv\xa4UAT\x92\
+\xb8\xa4\xe0\xf6xH(\x82@\x93\x1a\xcd\xb4\x04\x0b\xd7\
+A\xc2\x91\xef\xe1\xfc\x8f\x89\xd9\x7f\x84y\x1ee\xea\x9e\
+\x09-\x00\xcf\x07\x84\x0c\xa4\x81Q\x96\xf4\xd9\xa0w\x1f\
+\xc9\x15\xa9\x98K\xfd\x00\x04!\xe3\xc4>\xe3\xaa\x18 \
+\x9e e&\x81\x81\x5c-r\xc3p\xab\xb0?\x8f\x85\
+\xf1\x08-\x93\xfe\xaf\xaa\x84\x94q&\xa1\xa0\x02\x86\xaf\
+o\xf6\x01>\x8f\xbfc\x1d\xb1^y\x0e/Q\x02\xf2\
+\xe5JpP\x80XL\xf3\x88}\x89\x80\x1f\x8e$~\
+\xc6_\xa5\x05V\x05&\xd6\xb1\x93\xcc\x22\xe7\xfbp \
+\x81d_`\xdd\xe3_!\x87\xad\x16Yd\x93\xe1\x86\
+\x813\x0cym\x12\x02\xdeB\x02)\xbf\xd4\xea\xe0\x9e\
+\x82\xc3\x89V\xccaM\xb5\x16lS8\xfe&`G\
+\xcf\x15\xd6-\x9b\x8d\x86\x83^$\x7fSH\x14 \x95\
+hHhr\xe0\xbf\x85z\x19\x96V&\xf3\x06A\x1e\
+\xfe\x92\xf5\xceO2\xa8\xb1\xf7> \x0f\xc6B\xa6\xa2\
+C $\xb2\xbf\xecf\x9d\xd5dN\x041\x1d=j\
+\xa6\x00\xc6H\xa0VN\xf62\xbd\xcf&\xea\xf1\xc9\xac\
+\xe7\xf8Z\xb3\x86\x0d[\x15\x99\xc9'\xcc\xd4{\x9f&\
+V\xbf\xbbY\xfa\xdc[\xcd*\xe2\xc1\x91\x01\xe6.\xa7\
+\xf1\xe9\x97M\xf6\x9c\x10\x0e\x17U\xb2D\xaftQ\x81\
+R\x807Z\xdd\xacV\xf22\xc4\xf7\x96\x06\xfa-\xb6\
+r*r\x99\x03\xfc\xe0,C\x95\xd9\xc2\xa9(\xd2\xf3\
+\xda-\xdb-\xd3-\xd3l|L \x16\x10\xbd]\xc8\
+F\xe9\xc0\x87\xa4\x88\xf1\x06\xb2\xe2=\xac\x90L\x91\xf1\
+\x94\xce\xa8W0\xd0\xd1\xc5\x91a\xc1\x11\x98R9T\
+\x86\x98D\x032\x8b\xdeZB\xcb\x80\xe4$\xfac\xcc\
+*y[\xbf\x9cYz\xfdg?\xb3\x9f\xa9\x80\xdc\xc8\
+\x14\xcfIf\xad\x17/7\x13I\xd1jj\x0d\xd9\xbd\
+\xc9T\x1b\xd2b7U\xa2\xbf\xd2\xe8I\xf3\x8f\x8a.\
+\x81\x10=\xb8\xb4\x12@\xa2\x06$\x87\x85\xfb'\xf5\xf2\
+\xaa7\x1bH\xb6'\x086\xcc]\xe2c\xfd\xc3f\xe9\
+\xb9\xdfmVI\xcf\xfa\xcd\xfaM{\xe3\xb2\xf8\x83Y\
+\xd3\xdb\xb4\x8f\xa0\xb2[\xa8R+rAO\x84\xd8\x82\
+\xdfL*\x03\x9fn\xc6Q\xb2h\xb0\xe4\xa7\xd1\xce\xad\
+\x1c<O\x02\xdb\xfe\x80d\xfb7=\x9c\xd6\xd8p@\
+\x85\x1cg\xf2\xcc\xa5\x1a\x19\x16{\x9aon*E\xd6\
+9\xfc\x81f~\xd1z\xc3\xf8[~q\x1b9\x8c/\
+i6zd#m\xfbZ\xa9\x1c\x98\xdd|r\xd8\x16\
+o2\xa6\xaa\xa4\xba\x83\x10+*8^\x1cX86\
+8~\x82|zB\x80\x83\x97\xfb!3JeS\x90\
+0\x97-\xe2`\xe0\xc0\xe5\x80\xe6{q\x8cI|\xc9\
+!nZk\x0a\xc2\x00R\xa4\xad\xc5\x91\x81cC\xc0\
+\xf9\xacW \xa6\xf6\x04\x12x^?\x5c7\x5cW!\
+j~}\xa7\x8c\x9d:vj\xe3\x80\x1cV\xd8\xee=\
+q\x86\x1e0\x95\x18\x12& \x01\xcePB\xf5f%\
+\x10\xc8h\x1f\x229\xd0\xef\x99Y\x86X\xeb\xe08\xe9\
+`\xf3\xbc\x09\xf0\xa9`\x8b,rl[=7HS\
+\xd1M\x07\xd9\x81C\x02Y(\x0e\x1d\x15\x02\xc6\x9d}\
+\xe7\xc9\xa9=}\xe9\xeeKO2\x89\x05\xd8sq\x9c\
+p\x00p\xa08\xf8!\xbf\x11\xe2\xa1[M\xfb\xd7b\
+\xde\xf3_\xce7*\x8c\xaco\xc6\x97\xf5\xcc>\xf5Y\
+\xc3\x9c\xe4\x03\xb9|\xfe\x86R\x8d8\xd7L\x08\xb6\xbf\
+4\x81\xfe/\xcd\x1an\x1c\xb5\x148\xe9\xa7*\xff\x9e\
+\xf8\xa3\x97\x96\xc4\xac\x12\x0d$xA$@\x16\xeb\xe7\
+p\x94\xef\xc2\xd1e\xfe\xd2\xfb)d\x91C\x9a\x17\x09\
+\x95\x99\xc0\x19\x81\xec\xe5\xb0\xe3\xf0\xae\xe1]\x8d\xea\x00\
+\xeb\x0dD\x00\x09L8\x08\xd05\xc7QSB\x12D\
+C\xff\x16\xb3\xea\xc0x\xc0\xc6z\xc6Q\xa3\xd2S{\
+e\x8b\xc3\xcdy\xc7u\x10X\xe1\x08G9-\xd6\x17\
+\xdc\x0b\x22\xb3s\xff\x83\xfd\x84\xbf\xe7\x95y\xf5GA\
+\xc9'\xa7\xf6\xc4\x12\x90\xf99\x88\x03\x8b\xc3\x0d\xb2\x81\
+\x82AhU\xf2y\x17Z\xa8\xa6\xc9\x99\xf1{\xae\x07\
+\x7f,\x22\x86\xf8~\xc6\x8d\xdf#\xa7E\x80\xc0\xf5<\
+-.\x98\xab\xc5\xe6N+\x0a\xf7O\x05\x90\xf1\x87\x8b\
+\x83\xc2\x8d\xb8(\x06\x10b\xd7\x8a\xcc\x8d\xebP\xeb\x81\
+' 9\x85s\x87\xeb\x88\x1c\x0f\x9c\x1b\xb5\xd2[\
+\x1c\xe4\xc1\xd5h\xca\xf8)\x11\x00\xf2\xa9#\xe0\x22\xa1\
+B\x00+\xa4\x9b\x93\xa3\xf2\xbcY?\xf1\x1c\x81\xcb\x80\
+\xf1\x8f$d\xe3A\xf6\x8f\xdf/\xe1\x01D\xf9\xbc(\
+o\xcc8\xf2y\xac7\xf6\xab\x08\x1d\xe7>x\xde\x8c\
++H\x84y\x03\xd9]\xac\x10s]\x8c+\xe4\xca<\
+\x0f\x02_>\x87\xeb\x8d$s\xb0\x9b\xb3\xbfr\x1e\x80\
+@\x8a-+$\xe2\xee\x0e\xdc\x1b$\x92\xaa\x0e{\xb9\
+^\xce+\xe6s\x9c\xe7\xa8\xa6\x10\xd0\xea\xf3\x5c\xbd\x8a\
+\xbf\x8b-\x18\x8coL\x84\xd6\x04\xc0TRR\xfeq\
+^A\xba\xc9}S8\xe0\xdc\xe1\xb9\xf1\xf71\x01\x14\
+_\xf9\x17\xe5\x07y\xae\xac\xd7(\x8b\xca:\xe4\xffk\
+\x1f\x19\x9e)\xf3\xda\xb9\x1a*\xe9\xe1\x14\xb9E\xdfw\
+\xa2\xba\x00\xe7\x03\x89\x04\xc6)\x14<\x5c\xae\x91\xff\x0f\
+r\x15\xa89\xadY\x8c\x0b\xd7O\xa1\x10\xc4\x08-p\
+ \x0f\x9f\x17)]D&\x13g\xe0\xf7\xf1\x1c\xd9'\
+\x80\xfc\x8fk\xdc\x03y\xdf\xb4D.\xe3\xc1\xfa\xe2y\
+\x90\x00`\x9c\xf1\x1f\x91\x13F\x1e<\xa8\x1a\xb8\x7f\x83\
+_|@\xb6\x9a\x18\x8e\xfbPx\xae\xde\x82\xc8\xbc\xc7\
+Oe}\xc0\x95\x81\x7fF\x81i=\xb5\xd4\xf0\xfd\xfb\
+e\xb3\x16\xdf\x82\x148\xb7\x14\xee\x883(x\xb9\xdc\
+\x22\xad\xc6\xfc\x7f\xb5\x1a\x8f\xddR\xe6\xf5\x04\xf2^@\
+\x92\xe8]\xf6\x8d\x8d\xc0/\x85\x9d\xdd\xb2\xcdF\x12e\
+\xdc\xd8\x88ff\x90O\x85\xb4\xdbv\xbfL\xe3\xd8/\
+\x9es.\x95\xdd\x13\xa86\xbd\xa7\xf6\xff\x17\xab\xbd\xf5\
+Y\x8e\xeb\xc8Z\x89\xe960\xab\x15B\xc8-\xc8\x5c\
+\x0fk\x9a\x894!9\x90\xa3C\xcd\x1aN\x01!\x03\
+\xfaO\x995\xe4HGf\xab\xbd\xc8r\xc8\xfa;\x93\
+\xdd\xa1\xc069|\x93\xcb$K\xe3\xd5\x1fn\xa6\x84\
+\xc7\x8b\x9a\x07*\xf2$\xdfP\xa88\x9b\x83\xf4\x16\xf5\
+*\xefP\x03_d\x8fL\xcd<\xf7P\xa3S\xab\xeb\
+\xe9?i\x96\xae\xfb\x0bfMe\x1e29X\xc6\xbf\
+R\x1cz\xaf\x18\x1dn\xd6d\xacXh\x22\xf1C\xf6\
+\xb1\xa9\xb8\x16v\xe8\x1fI\xe7\x98\x00?f\xe8\xf9=\
+\x89\x22*\xb5\xea\x85\xcd\x10mK`,j&$\xc5\
+ZM\xe5T\x19\xe5\xfe<\xb3\xf4z\x99Yz}i\
+\xbfR\xbfR&\x87\xdc?\x07\xac\xea)\xcc\xf3\xf2\xf7\
+5\x91\x90'\xf8)5\xa1\xe4=\xce\xdc\xbfd\xaf\xfc\
+@ p P\xa5e\x81\x8a\x00\x1b\xf9\xbfr\xd7c\
+\x9d\xc7\xfc\x1d\x07\x1f\x89\x16zu\xf73k\x02\xae{\
+r\x0e\xbb\xf6D\x1f\x98k\xd0\x9e9e>\xa5\x80\xb8\
+\xb0\xe0\xabB\xd2\x1df\xd6\x90\xe2hcGu#\xcf\
+\xa2f\xa3f~\x0c\x0b\x98U\x04I\x7f\xadY\xd3\x22\
+a-\x06\xeb\xd7\x04Z\xa6\x80\xbc\xb0\xb6\xb6L\xe9\xcd\
+\x9f\xd5\x04\xa8l\x5c6\x1b\xde\xa1\xde\xe0ckB\xcf\
+\xf5\x9d\x09\xf0\x0d\xf2{\x80\x90\x14\xeb4\xf3\xcd\xc2\xc2\
+\x95K\xa2,\x8f\xdfJc+\x19R\xa7\xdb8\xd9\xeb\
+\x9b\xf7-\x9a\xbb\xbe\xca\xfaY @\x99\xe7\x9fBR\
+T6v\x1cc\x02\xec\xdffe\xea\xea@\xd2c\x05\
+\x84Y\x89\x12H5\xfd\xff\x9f%v\xe7\xd8{\xce\xfd\
+\xf7\x0e\x15,\x8e\xa8\x02j\x0f\x04\xc4\xd2\xda}\xc4\xac\
+\xe1B\xb8\xa4T\xf0\xbbu\x05}\xa4%\x81y\xca\xe7\
+\xe2\xa8ANF/\xe0\xaa\x82\xaeo\xa3}\x84\x0c\xfc\
+\xa9\xaa\xf8GY!\xf6\xafPQH\xdb}\xa9\xcc\x81\
+|\xb9\xae$\x18\xbaET\x09\x82\xa4\xc9u\xa4\x0b\xe2\
+f\xecaANq\xb0p\x84p\x10'\x83\xfc\x15\xfb\
+^\x95m+\x8e\x1cH\x11\x02F\x12t:o\xba\xf9\
+u_\x1f\x95\x1a\x81\xc8\x14\xbb\x9b\xcc\xf2s*\xeb\x08\
+\xb6_\xf6S\x10a\x5c7\xf3V\x081\x97I\x84\x94\
+\x8c\x04\x84\xc8\x02\xe1B\xe9^T\xc8\xc0\x5c\x9e\x8a\xf5\
+w\x8e\xd4'\x80\xfas\xbe\x91\xe8\x14\xe9\xac\x07\x0c\xea\
+\xf9\xebN3\xab\xdc,@\xf9\x9c\xdb\x05\xf2L!O\
+<C\x0fT\x1eH \x956\xd4Zv5kZC\
+\x08$Y\x07Q\xd7\x18\xc7\xef\xb1\xa9j\x09\xfe\xfcE\
+\x82\xe6\xac\xd3$>Xg\xec\x8b\x1b\x15\xd2K*9\
+N\xc6\xaa\x04w\xf7~\xb3\xc6q\xc4\xb1\x01\x82\xf8\x81\
+\x92\x98\xed\x8e\xb3T|\x95\x19\xcd\x1c<\xeb6\x0e.\
+\xfb1\x88)*\xda\x9cWT\x9cx\xdf\x12r\xb8b\
+\xc0\x82\x83\x1fu\x9d\xf9y\x8e\xfb+S\xc9\xba\x22\xab\
+6\xf7\x11\x10G\x9e\xb8\x02\xa2M+\x0e\xfa\xec\xf4\xae\
+\xe2\x98>\x1e8J\xe8qGf\x95\x80.\xf6\xfc\xb2\
+?D\xb6p\x1cV\xd67\xf3\xf6\x1e!;\xf8\x1c\xae\
+\x93\x80\x93u\xa2y\xef\xebSdm\xae\xae\x22r\x5c\
+?\xa7\xf5|P\xe5q\x15\x1a\x90q\xeaI\x1d\xbbV\
+H\x09\xf6M\xceS\x1cwT1.\x16\xb2\x00R0\
+9\xd2^\x99\xe6|C\x8f\x9c\xe7\x16+\xea|\xcfo\
+uN^\x1cX\xc9q\xfci\xad\xbbY\xcfi\xed \
+[\xcc\xf8\x13 _\xa7\x04\x91\x12\x8ei\xd6-\xd1-\
+\xd1\x04\x1e\x9c\x03\x11\xb9\xc1}\x12\x08D\xb2\xb9 \x03\
+\xea\xeb\x8c\x843\xf7\xc9\xf9E \xc1}\xb2\xff\xf2\xf9\
+\xb1\xd2\xcd\xbc\xe1\xef\xd9\x87+{\xfa\xd4\xfd\x99\xbf\x8f\
+\x88\x93\xa7\x82\xccf$\xb3\xe4\xef#\x1b\xbc\xf6q\xff\
+\x99u\x83\xfc4\xd7\xc7\xf9\xc6\xba\x8d\x81\x7f@\xb88\
+\xb7\x12\xfb\x13\xf1\x02\xfb?\xfe]\xe5H@\x8da\xea\
+}\x05d\x83\xff\x9e\xf7\xf3<Xo\xa8\x13\x04\x96~\
+\x7f~\x5c/\xf7\x1be\xe3x~\x119\xf2\xbc\xf7\xa6\
+\x97\xf1c\x9c\xb9\xef\xb9\xads*\xec\xfc\xfe\xaf\x1a\xc7\
+\xa7\xbd\xa2?\x15\xda\xce\xfe\xc3\xfb\xf9\xf9\xf9\xa9\xbd\xf1\
+\xd3\xceO\xfc9\x0a\x86 \x11\xe1\x0e\x98\x13\x10\xbd|\
+.\x9f\x03\xe4~b*\x89\xde\x80\xcc \x01=\xf3\x83\
+\xfb\xa6\xc0\x02\xf7\x11\xf3|\xe9R\xe8\xecVR\x1c\x1a\
+\x9f+\xdf\x1bZ{\xa6%\x8eQ+\xc1\x8f\x87+\x83\
+}\xee1o\x95(\xe3\x80\xffN\xe5\x9f\x96\xaeYf\
+\x0d\x97\xd1\xf6\x8a\xbf\x18W\x0a9jI\x06\xd1\xe7\x85\
+k\xc8(YW\xb4\xe0\xe1'I\xa6\xd8\xc7\x9b\xfdI\
+\xeaA\x8e@`|P\xd9X\xbf\xb4\x12\xb3O\xe7\x96\
+\xfb7\xd4Dw&\xd3?8\xb7\xaa\x16D\xc2\xab\x85\
+x\x1e\x95\xf1\x9cpG\x99\x0d\x93\xde#\x05\xdcSt\
+f'\xf5\xf3\x84\x1c\xf4\x05\x1bG\xfd\xf1\xd0\x83D\xa6\
+\x97\x81\xd7\xfb\x1c2\x0e\x99\x13\x13\xc1n\xff5\x0dr\
+\xc0\xea^\xa75\x0fJ\xc8\x00w\x9c\x04\xa9\x87\xa5}\
+\xf8_\xb3\x0ai\xb70\xd2\x02\xfc\x5cq\xe9k\xc0\xe0\
+\x10W\xa0\xb4\xea\xad\xf6\x0dY\x0f\xa2\xff\x9aY\x1a\xa7\
+\xd7\x995\xac\xc8\x06A_\xa0\xca\xcayO\x1a\x07\x1a\
+\xf2~O\x99)q\xb0B\xd3\xb3\x8c\xa3j\x90\xfb\x8f\
+4\xf7\xab\xca\x19H\x8a\xacZpT\xd3\xfb\x0bt\x11\
+\xddrz\x8cq\x9c.\x15\x09\x8b\x10\x12v\xdc\xe5\x03\
+\x8f\xebba\xaf%\xa8<\x1b\x04\x1b\x16\x073\x1bV\
+ \x8frH1\x95Ue\xa2\x9c\xf4q\xe9\x22w\xe7\
+\x10g\x16\x16$Y\xf4\x0cJ\xb6\x82\x8d\xad\xff\xa1Y\
+Z\xa7[L\xbeq\xb2\xf4*\x17\x1du\x1c\xc5\x9bs\
+\xed\xb2\x92\x9c\xc1\xeaO\x82\x01\x04\x03\xd0\xe3oe+\
+\xd0\xb3\xab\xc4\xd2\xbfe\x93\xd0\xaa\xb21SI\xc0p\
+ \xa8x\x08j\xec\x8e\xae6\x9cL\x12\xf8\x19\xad\x97\
+\xab\x9b\xc0\x95\x03M\x1c\x0e\x90g\xf6'&3$\xca\
+\xcf\x93\xfd\x22\x0d\xef1f\xb5\x22\x87\xcc!\x090\x90\
+8 \x01 \xeb\xeb\xcf5\xabrq\x04\xe2N\xbag\
+\xa2b\x9b4\xac\xf5\x90z\x85\x8cp\x96\xd3yNj\
+\x12\xf3\xbf\x00\x9b\xab\xa53^\xd5\x04\xb4\xa8\x84\xd8\xb6\
+}\x8b*\xa4W5\xfa\xc4\x0a\xa4s\x22k\x83\x06\xd9\
+c\xaf3U1X\xf3\x05\xf4a!m|$\xbb\xc8\
+e\x1f\xa0\xe2\xf1\xb0^\x1fi\x02\x99X\x01c\xc3\xb5\
+\x84\xc8\xe5\xb9\x87+\x99H\x14\xafn\x02O*\xad\x1c\
+\x18Tx9\xd0\xf8\x5c\x1cg\x02\x00\x0e\x12\xe6\x85\xfe\
+\xbfg\x8a\xdfc\x96~>\xa5p\x03@\xaa\xe2\xd0\xc7\
+\xf3\x0b\xd7\x87\x1f\x5c\x17h\xbf\x8b\x81\x16\xfb\xab\x0e\x06\
+G\x16l/\x92R\xf6=d\x1c\xe7QB\x81\xca\xc8\
+\xef\x94\xa8\xd2~\xe6\xfb\x9a2\xf0\xcc/\xef\xe9\x07\xca\
+N\xc0\x00D\x1f\x088\x81\x22P6\x1c\x16\x12\x09\x90\
+\x0c\xea\xfe=\xc0\xbcU\xbf\x7f\xa5\xf6\x1d8\x19Hh\
+\x89\x1c-\xddc\xe9\xe5_]\xec\xf4\xeb\x15\xe4\x87C\
+\x06\xa5\xe2\xe2,\xff8\xd8\xccO\xf4\xbbIx\xd0S\
+L\xe6\xbcV.K\x05\x17\xc7\x8d\xcc\xbf\xc6\xdd\xf7\x0d\
+\xd8\xb9\xa9\x0cS\x11\xe0\x1c\x5c\xdb\xac\x81\xbcC2F\
+\x80uD\xe1J\x19\x0e*\x08&\x10I\xbeo\x9f`\
+\xd6\x90X\x1e_\xc8W\x81\xfc\xf9x\xdeiV!|\
+\xdd7\xcc\xd2\xfb>SX{\xbd\x22\x86\xcc\x11\xfa\xec\
+\x91u|\x96\x93\x83M\xed\x81\x04i\x80\x03\xcd|\x8f\
+\xb2fQ\xef\x9a\xfd\x91\xcaG\xe4T\x90\xa3?\x9cY\
+*\x0c\xdd\x09%\xe0GM\xc1\x11XT\xa2q\x8cA\
+bp\xfe\xe3\x80\xaa\x97\x96\xeb\xf4y\xa3}\xca\xc2\xb2\
+n\x09q\xc9\xbc\x10\x0b\xff\xa4\x93O\x11\xb0\x94\xfb\xe0\
+\xfbq\xd8\x9e\xf6\xbf+\xe3\xc6}\xd1*G\xc0\xbe\xae\
+\x12\xee\x04\x22\xf1\xfc\x00\xb9\xd2\x07\xb2*t\xb49w\
+\x1e\x95C\x17\x137\x91\x9b \x92\xf9\x05}o\xd7\xa3\
+\x8f\x15\xc9']\x17\xbe\xack\xe6=~\x0d\x81\x0b\xa4\
+\x8b\x7f\xd3\xb9\x00\xe2O\x883G\xe4\xf0\xf7\x92ev\
+d&~\xc0\x05\xda\x8fh\xf9\x0a\xd0o_\xb7\x14\x0a\
+x\xde\xf8\x19\xc8rB\x1eGO6\xfb\xd1s\xa1\xb5\
+\x83y\xce\xf70\xcf\xab\xdc\x1f\xd0\xe2\xf2\xfeJ.\x9a\
+\x91})\x0c)r\x8b\x90uEU\x86g\x9d\xfd\xbe\
+8\xfc\x97\x0dW\x18\xf2\xd0\x91*Q'\x5c\x8ex.\
+\x8c-\xd3<g\x9e_H8yEN\xcf\x95\x02\x80\
+\xfbuT\xb8\x85H\xf5\x049\x01hl\x15\xe1\xbe\x99\
+\xff|o\x85\xf8\x97\xeb\x8ej\x02\xfc}T\x8d`|\
+#\xf2\x00\xff\x9d\x1em\xae\x87\xf1\x0f\x81\xb0\x07r\x90\
+\x1d\x1e\xd4\x1d\xd8\x1d\xd8\x5cgT\xd5`\x1e\xde!\x92\
+]\x91\x87{\xcb\x12\x01\x13\x09;\x9e\x17\xdf\xcb\xcf\xb1\
+E\x83\xfb\x8b\xb2\x7f\x04\xa2\x91\x04\xf1\x99\xb0\x0f\xc4\x0a\
+=\x09K\x02\xf5\xb1\xa9\xb2\xa4\xd3\x02\x7f^\xb9N\x9e\
+O\x95\xcd\x9b\xdaRU\x91lE\x8dK\xa4\xa6~\xce\
+\xc4\xf5>\xcb\x11>\xe5s\xb9\x7f\xf6\xb5\x7f\x86\xc4\x02\
+-\x00cz\x1f\xad5\xec\x0b\x0bi<\xf8GB\x83\
+u\xc1\xe70>\x8b\x065\x0a\xc6+\xca\xe6\xe1\xbf\xf1\
+\xefiO4\x95\xfdj\xa1\xa0F\xc1x\x8e\xa9\xa7|\
+\xb6\xfc\x10\xbe\x07\xff,r,\xf0\xbc#g\x01\x9fG\
+kV$\x1f\x5c\xde\xe3\x9e\xb2.\xe6\xf6\x8fq\x10\xa2\
+\xb4\xbb\xc1\xaci\x95D\xdd\x8d\x16m\x02\x7f\x9e\x1b\x05\
++\xe2Y!l\xbc\x10%\xd2q'\xf9C\xb5\x0d\x99\
+x\x9d{\xdd\xdf\xbb\xfb\xbb\xfb+\x12s\xb4\xebh\x97\
+\x91q\xef-!\x0e\xaf\x8d\xa5\x1a\xf0\x22\xb3\xf4\xff/\
+5k\xc8y\xaf*\xfb+-\xf4\x13\x0e\xbd\x9f/w\
+[\x14G\xe0\xbf\x954+os3\x9a\x05D\x85?\
+B\x8d\xa8\x94\xf03\x90\x06Ao3+\xee\x82\x95\x9d\
+<C\xf2\xd7T`t^\x03\x0d\xdc'\x83\xa2+\x04\
+\x09\x96_\xb8\x07\x04\xbd\x00\xf2\x0f\x14\x91\x8al\x864\
+/\xd9@\xb5-\x902\xd2\xa5\xd9f\xe9\xf5\x0b\xc9\xbe\
+(\xd9\x9bM\xc4:\xbeB\x85\xba:\xb9\x1c\x19\x95\x9f\
+$;=\x0d\xe4{\xcd\x1a\x16t\x10\x0b\xf4\x8a\xfe\xac\
+\xf4\xdew\xf7\x98\xa5\xf7oiV+\x8f@$GW\
+'\xb3\x07\xf0\xdbdW\xd6q\xccd:\xc9A\xb00\
+\xda\x02i'k\x83\x95\xfd\x22!\x1c\x80x\x8bC\xc0\
+\xa1\x98\x90F\xc0\x0a)\xf9C\x1f\x97\x8b\x0a)\xe3p\
+\xad2\xdd\xaad{ \x82\x0c\xa0d\xc2\xba5\x940\
+\xd8Org\xef\x95\xac\xa0H\x0c\xbd\xa5\x82\x80S\xba\
+\xc1^i}k!\x9f\xf0\x0a\xf7\x0f\x8a\xfe\xfc\xb0\x90\
+Ye\xbb\xef\xf75K\xafO\xf4\x8f\xf7&\x9f\xf8T\
+\xb2YM\xaf\xb7Z\x00\xf2\xd3Y\xa3\xcaO\xf6\x7f4\
+\xab\x95\x09\xef\xddg\xa1q \xeb:\x5c\xf6\x91\x0d\x09\
+G\x83\x8c/\xd0A\xe4\xdd\x084a7\x87\x0bc\xa1\
+\xdc\x9dX\x0f&s\xff\x93\xa3\xde\x7f/\xd9\xf7\x9b\x04\
+\x10r\x1c\x22'\xeb\xee2\xab\x95\xb5LB\xf9\xe5F\
+\x8f\xf9\xcff\x0d\xa7\x85\xd5\x0f\xbf\xa6\xcc\xf9\x1d\x92\x0b\
+I\xebqX,\xd9\xa2\x0d\xf9\x928\x0c2'\xc2\xbe\
+M\xc0\xc8F\xd4\x92A\xceT\x86\xf3\xe6\x06\xe2\xb5L\
+\xae\x8dVH+\x09\xbd\x1b\xb3\x00T9\xb8[2*\
+\xee\x7f\xe1,\x80T+\xea\x06\xb1\xbd\xae\xe9e\x1ee\
+\x97\xac:\x80\x11r\x1be\x97p\x189h9\x10\xc9\
+\xc0\xd2\x92\x82\x0c%\xcf\x07\xf27*\xbdV_=s\
+\xca\xc6^\x0e\x16\x0e\x0e\x0e*\xee\x07\x12C Z\xf4\
+<F\xd6a\x1c\x099\xbc\xce\xca\xffQ\xb3\x9a\x08\xf0\
+\xd6\x1b\x1cM \x82\xfc=\xf7\xc9\xfe\xc1\x01\x05\x07\x00\
+\x99f\x91\xca9\xe4\xee2\x05\x5c8\x10\x1f\x17\xdb>\
+\xe4~\x82\x8a{\xc5\x8e\xf9\xad\x03\xcbI\x01!\x0d\xfd\
+NwTwT\x93\xe8BnN\xf3\xd3\xdc\xdf\xbc\xee\
+\xa8\x04\x93\x08#3.\xf5\x04w,\x09P\xe0p!\
+\xe0\x0e,\xc0>?\xb8\x7f\x91\xe5\xf9\xbc\xa0B\x1e\x13\
+\xc8\xa17\xd6\x1d6\xd6\xa7'\x22\xca8v\xcb\xea\xf9\
+\xe1H\xc3!\xb3\x9a\xe6\x1b\xad\x058\x0e\x91\x94\x91^\
+Q\x1cJ\x9e\x0f\xd0|\xae\xe7Q}\x0f\xf7C\xe6\x9e\
+\x1eC\x9e\xbbT\x0b<\xb1\x87#\xa5\x046\xfbw7\
+\x9fYz=\xdb\xac\x22#\xc6N\xccV\x03\xcd\xf1\xe0\
+\x003/\xd8\x97\xa8\xd4D\x96\xe8\xc7\x83\x5c\x18\x8e(\
+\x7f\x8f\x03G\xe0r\x9bZ_\x90!\xa4\x95\xe6\xaf\x22\
+\x8d#\x11qEI\xb8\xd1\x92\xe4\x89v>\xff\xc0B\
+N\x0b$\xd4\x13<\xe8\x87\x03)e}\xe0P\xc7\x04\
+&\x15%T[\x90uc\xfe\x90\x00\x88dS1\xa0\
+\x0c\xec\xdaN\xceI\x85\x8a\xf9p\xaf\x1cp\xe4Q\xb9\
+N*\xdb\xa8\xff\x18\xb2i\xe3\x17\x90\xaf[\xdau\xdb\
+\x0b\x12@\x89;'w\x8b\x15\xe0JN\x88.v\xe1\
+P\xa1\x85\x8f}3\xb0\xcc;w\x01\xaf<g\xee\x83\
+\xfdo\x99\x90x\x01Q\xc2\xcf\xac\x13>\x17D\x8a\xa9\
+9\x9d\xd3p\xb8(\x11\xe7\xcf\x83\xe7\x0cd\x96\xe7\xc2\
+\xf7\xd5D@\xa9\xd8\xb1\xbeY\x9f1\xe0\xa8\xbd\xc9\xe5\
+\xb9\xf2\xfb\xb8\x7f\xf7A~\x8c\x9fW\xd4}\x10\xf0-\
+V\xb8m\x08P\xbd@\x12+\x99\xac\xff\xe9\x81ty\
+\x9e\xb0\xce\xeb\xba\xfd\xbc\xc6\xdf\xe0\x9c\xab\xac\xf3\xe5\xba\
+\xa8,\xa2\xf6\xa2D\xab#8a\xd3\xe7\xf3\x90O\x5c\
+\xd6\xac\xb9\x9e\xf1\x10\xa8\x00\xe5\xfeo`]'a\x11\
+_\xf9{\xae3\xec\x1f\x03\xf3\xc0\x0a\x05\xff\xa9~\xa0\
+\x93?\xc3\xc5\x22\xff\xcd\x11\xa4@\xd2\xe1v\xe2\xfd\xc7\
+\xa8\x00D\x85\x93\x00\xf0>\x91\xdc\xd2c\xcf\xbeE\xa2\
+\xed\x81\xc0R\xcf|t\x1d\xe8\xf0\x1a\x03\xfe\xf83\xaf\
+\xeco\xb1\xd50\x92\xe9\xc5\x96\x84H\xdeGbq\xde\
+\x90\x18b\xdf\x8d\x88\x8d\x98\x00\xe0\xfcb_\xa3\x95\x8f\
+\xef\xc1\x8f\xe5\xe7\x08\xb5\xe7\xfa \xcb\x9b7\x90\xdd=\
+\xec\x89\x9c\xf2>\xbe\x8f\xf5\xc0z\x82\xbb\x01\xd06\xfb\
+ \x9c\x0c114\xcb\xc9-\xcb\xfe\x0cgR\xec\xbd\
+\xe7\x1f\xb2\x93\xffu\x8e\x95\xf2\x1c#\x19\x1f\xeb\xb7\xca\
+8\xe6\xef\xf5\xd6K\xce}\xd4\xca$\xbf=M\x9d\x84\
+\xc2\x152\x80 \xae\xb8o\xc6\x95\xf1\x80\x03\x8cx\x95\
+D\x17\xdcN\xbcr^\xae-$\xb0\x0a\x17\xd3HZ\
+\xa3\xca\x01\xfb/~%\xfb&~\x9a\xc8\xc8\xbdE\x8d\
+\xd6\x02H\x8f)(H\x0d\x0e?\x8c\x04@\xb7\xa2\xc8\
+\x0b\xa5&\xd0\xdfb\x96\xcf\xa5\x8c8uYz\x0a\x88\
+\xb4|i}\xfc?\xc4FS\xb5f\x9b\xe1I\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x03\
+\x00\x00x<\
+\x00q\
+\x00m\x00l\
+\x00\x11\
+\x05\xba\xd1Y\
+\x00q\
+\x00m\x00l\x00s\x00u\x00r\x00f\x00a\x00c\x00e\x00g\x00a\x00l\x00l\x00e\x00r\x00y\
+\
+\x00\x0d\
+\x0e\xfc\xe9\x87\
+\x00h\
+\x00e\x00i\x00g\x00h\x00t\x00m\x00a\x00p\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x0c\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x004\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x86\xe4\xfa\x81v\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/datavisualization/surface_numpy/doc/surface_numpy.rst b/examples/datavisualization/surface_numpy/doc/surface_numpy.rst
index b99ecc0fa..8a921a4ad 100644
--- a/examples/datavisualization/surface_numpy/doc/surface_numpy.rst
+++ b/examples/datavisualization/surface_numpy/doc/surface_numpy.rst
@@ -17,7 +17,7 @@ option. This example demonstrates the following features:
For instructions about how to interact with the graph, see `this page`_.
-.. image:: surface/doc/surface_mountain.png
+.. image:: surface_mountain.png
:width: 400
:alt: Surface Example Screenshot
diff --git a/examples/dbus/listnames/listnames.py b/examples/dbus/listnames/listnames.py
index 017be625e..2240a06d8 100644
--- a/examples/dbus/listnames/listnames.py
+++ b/examples/dbus/listnames/listnames.py
@@ -5,8 +5,7 @@
import sys
from PySide6.QtCore import QCoreApplication
-from PySide6.QtDBus import (QDBusConnection, QDBusConnectionInterface,
- QDBusInterface, QDBusReply)
+from PySide6.QtDBus import QDBusConnection, QDBusInterface, QDBusReply
def method1():
diff --git a/examples/dbus/pingpong/ping.py b/examples/dbus/pingpong/ping.py
index 5d47b3b24..d61f25499 100644
--- a/examples/dbus/pingpong/ping.py
+++ b/examples/dbus/pingpong/ping.py
@@ -4,8 +4,8 @@
"""PySide6 port of the QtDBus pingpong example from Qt v6.x (ping client)"""
import sys
-from PySide6.QtCore import QCoreApplication, QObject, Slot
-from PySide6.QtDBus import QDBusConnection, QDBusInterface, QDBusReply
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtDBus import QDBusConnection, QDBusInterface, QDBusReply
SERVICE_NAME = 'org.example.QtDBus.PingExample'
@@ -36,4 +36,3 @@ if __name__ == "__main__":
value = reply.value()
print(f'ping: Reply was: {value}')
sys.exit(0)
-
diff --git a/examples/dbus/pingpong/pong.py b/examples/dbus/pingpong/pong.py
index cdb610c50..0dec6eda0 100644
--- a/examples/dbus/pingpong/pong.py
+++ b/examples/dbus/pingpong/pong.py
@@ -18,7 +18,7 @@ class Pong(QObject):
@Slot(str, result=str)
def ping(self, arg):
print(f'pong: Received ping({arg})')
- qApp.quit()
+ qApp.quit() # noqa: F821
return f'ping("{arg}") got called'
diff --git a/examples/demos/colorpaletteclient/ColorPalette/ColorDialogDelete.qml b/examples/demos/colorpaletteclient/ColorPalette/ColorDialogDelete.qml
new file mode 100644
index 000000000..0fd26e4d0
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/ColorDialogDelete.qml
@@ -0,0 +1,71 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+import QtExampleStyle
+
+Popup {
+ id: colorDeleter
+ padding: 10
+ modal: true
+ focus: true
+ anchors.centerIn: parent
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
+ signal deleteClicked(int cid)
+
+ property int colorId: -1
+
+ property string colorName: ""
+
+ function maybeDelete(color_id, name) {
+ colorName = name
+ colorId = color_id
+ open()
+ }
+
+
+ ColumnLayout {
+ anchors.fill: parent
+ spacing: 10
+
+ Text {
+ color: "#222222"
+ text: qsTr("Delete Color?")
+ font.pixelSize: 16
+ font.bold: true
+ }
+
+ Text {
+ color: "#222222"
+ text: qsTr("Are you sure, you want to delete color") + " \"" + colorDeleter.colorName + "\"?"
+ font.pixelSize: 12
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+ spacing: 10
+
+ Button {
+ Layout.fillWidth: true
+ text: qsTr("Cancel")
+ onClicked: colorDeleter.close()
+ }
+
+ Button {
+ Layout.fillWidth: true
+ text: qsTr("Delete")
+
+ buttonColor: "#CC1414"
+ textColor: "#FFFFFF"
+
+ onClicked: {
+ colorDeleter.deleteClicked(colorDeleter.colorId)
+ colorDeleter.close()
+ }
+ }
+ }
+ }
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/ColorDialogEditor.qml b/examples/demos/colorpaletteclient/ColorPalette/ColorDialogEditor.qml
new file mode 100644
index 000000000..cba6e5a76
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/ColorDialogEditor.qml
@@ -0,0 +1,139 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Dialogs
+
+import QtExampleStyle
+
+Popup {
+ id: colorEditor
+ // Popup for adding or updating a color
+ padding: 10
+ modal: true
+ focus: true
+ anchors.centerIn: parent
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
+ signal colorAdded(string name, string color, string pantone_value)
+ signal colorUpdated(string name, string color, string pantone_value, int cid)
+
+ property bool newColor: true
+ property int colorId: -1
+ property alias currentColor: colordialogButton.buttonColor
+
+ function createNewColor() {
+ newColor = true
+ colorNameField.text = "cute green"
+ colorRGBField.text = "#41cd52"
+ colorPantoneField.text = "PMS 802C"
+ open()
+ }
+
+ function updateColor(color_id, name, color, pantone_value) {
+ newColor = false
+ colorNameField.text = name
+ currentColor = color
+ colorPantoneField.text = pantone_value
+ colorId = color_id
+ open()
+ }
+
+ ColorDialog {
+ id: colorDialog
+ title: qsTr("Choose a color")
+ onAccepted: {
+ colorEditor.currentColor = Qt.color(colorDialog.selectedColor)
+ colorDialog.close()
+ }
+ onRejected: {
+ colorDialog.close()
+ }
+ }
+
+ ColumnLayout {
+ anchors.fill: parent
+ spacing: 10
+
+ GridLayout {
+ columns: 2
+ rowSpacing: 10
+ columnSpacing: 10
+
+ Label {
+ text: qsTr("Color Name")
+ }
+ TextField {
+ id: colorNameField
+ padding: 10
+ }
+
+ Label {
+ text: qsTr("Pantone Value")
+ }
+ TextField {
+ id: colorPantoneField
+ padding: 10
+ }
+
+ Label {
+ text: qsTr("Rgb Value")
+ }
+
+ TextField {
+ id: colorRGBField
+ text: colorEditor.currentColor.toString()
+ readOnly: true
+ padding: 10
+ }
+ }
+
+ Button {
+ id: colordialogButton
+ Layout.fillWidth: true
+ Layout.preferredHeight: 30
+ text: qsTr("Set Color")
+ textColor: isColorDark(buttonColor) ? "#E6E6E6" : "#191919"
+
+ onClicked: colorDialog.open()
+
+ function isColorDark(color) {
+ return (0.2125 * color.r + 0.7154 * color.g + 0.0721 * color.b) < 0.5;
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+ spacing: 10
+
+ Button {
+ text: qsTr("Cancel")
+ onClicked: colorEditor.close()
+ Layout.fillWidth: true
+ }
+
+ Button {
+ Layout.fillWidth: true
+ text: colorEditor.newColor ? qsTr("Add") : qsTr("Update")
+
+ buttonColor: "#2CDE85"
+ textColor: "#FFFFFF"
+
+ onClicked: {
+ if (colorEditor.newColor) {
+ colorEditor.colorAdded(colorNameField.text,
+ colorRGBField.text,
+ colorPantoneField.text)
+ } else {
+ colorEditor.colorUpdated(colorNameField.text,
+ colorRGBField.text,
+ colorPantoneField.text,
+ colorEditor.colorId)
+ }
+ colorEditor.close()
+ }
+ }
+ }
+ }
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/ColorView.qml b/examples/demos/colorpaletteclient/ColorPalette/ColorView.qml
new file mode 100644
index 000000000..c6ad36f80
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/ColorView.qml
@@ -0,0 +1,381 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import QtQuick.Shapes
+
+import QtExampleStyle
+import ColorPalette
+
+Item {
+ id: root
+ required property BasicLogin loginService
+ required property PaginatedColorsResource colors
+ required property PaginatedColorUsersResource colorViewUsers
+
+ ColorDialogEditor {
+ id: colorPopup
+ onColorAdded: (colorNameField, colorRGBField, colorPantoneField) => {
+ root.colors.add({"name" : colorNameField,
+ "color" : colorRGBField,
+ "pantone_value" : colorPantoneField})
+ }
+
+ onColorUpdated: (colorNameField, colorRGBField, colorPantoneField, cid) => {
+ root.colors.update({"name" : colorNameField,
+ "color" : colorRGBField,
+ "pantone_value" : colorPantoneField},
+ cid)
+ }
+ }
+
+ ColorDialogDelete {
+ id: colorDeletePopup
+ onDeleteClicked: (cid) => {
+ root.colors.remove(cid)
+ }
+ }
+
+ ColumnLayout {
+ // The main application layout
+ anchors.fill :parent
+
+ ToolBar {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 25 + 4
+
+ UserMenu {
+ id: userMenu
+
+ userMenuUsers: root.colorViewUsers
+ userLoginService: root.loginService
+ }
+
+ RowLayout {
+ anchors.fill: parent
+ Text {
+ text: qsTr("QHTTP Server")
+ font.pixelSize: 8
+ color: "#667085"
+ }
+ Item { Layout.fillWidth: true }
+
+ AbstractButton {
+ id: loginButton
+ Layout.preferredWidth: 25
+ Layout.preferredHeight: 25
+ Item {
+ id: userImageCliped
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ width: 25
+ height: 25
+
+ Image {
+ id: userImage
+ anchors.fill: parent
+ source: getCurrentUserImage()
+ visible: false
+
+ function getCurrentUserImage() {
+ if (root.loginService.loggedIn)
+ return users.avatarForEmail(loginService.user)
+ return "qrc:/qt/qml/ColorPalette/icons/user.svg";
+ }
+ }
+
+ Image {
+ id: userMask
+ source: "qrc:/qt/qml/ColorPalette/icons/userMask.svg"
+ anchors.fill: userImage
+ anchors.margins: 4
+ visible: false
+ }
+
+ MultiEffect {
+ source: userImage
+ anchors.fill: userImage
+ maskSource: userMask
+ maskEnabled: true
+ }
+ }
+
+ onClicked: {
+ userMenu.open()
+ var pos = mapToGlobal(Qt.point(x, y))
+ pos = userMenu.parent.mapFromGlobal(pos)
+ userMenu.x = x - userMenu.width + 25 + 3
+ userMenu.y = y + 25 + 3
+ }
+
+ Shape {
+ id: bubble
+ x: -text.width - 25
+ anchors.margins: 3
+
+ preferredRendererType: Shape.CurveRenderer
+
+ visible: !root.loginService.loggedIn
+
+ ShapePath {
+ strokeWidth: 0
+ fillColor: "#667085"
+ startX: 5; startY: 0
+ PathLine { x: 5 + text.width + 6; y: 0 }
+ PathArc { x: 10 + text.width + 6; y: 5; radiusX: 5; radiusY: 5}
+ // arrow
+ PathLine { x: 10 + text.width + 6; y: 8 + text.height / 2 - 6 }
+ PathLine { x: 10 + text.width + 6 + 6; y: 8 + text.height / 2 }
+ PathLine { x: 10 + text.width + 6; y: 8 + text.height / 2 + 6}
+ PathLine { x: 10 + text.width + 6; y: 5 + text.height + 6 }
+ // end arrow
+ PathArc { x: 5 + text.width + 6; y: 10 + text.height + 6 ; radiusX: 5; radiusY: 5}
+ PathLine { x: 5; y: 10 + text.height + 6 }
+ PathArc { x: 0; y: 5 + text.height + 6 ; radiusX: 5; radiusY: 5}
+ PathLine { x: 0; y: 5 }
+ PathArc { x: 5; y: 0 ; radiusX: 5; radiusY: 5}
+ }
+ Text {
+ x: 8
+ y: 8
+ id: text
+ color: "white"
+ text: qsTr("Log in to edit")
+ font.bold: true
+ horizontalAlignment: Qt.AlignHCenter
+ verticalAlignment: Qt.AlignVCenter
+ }
+ }
+ }
+ }
+
+ Image {
+ anchors.centerIn: parent
+ source: "qrc:/qt/qml/ColorPalette/icons/qt.png"
+ fillMode: Image.PreserveAspectFit
+ height: 25
+ }
+
+ }
+ ToolBar {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 32
+
+ RowLayout {
+ anchors.fill: parent
+ Text {
+ Layout.alignment: Qt.AlignVCenter
+ text: qsTr("Color Palette")
+ font.pixelSize: 14
+ font.bold: true
+ color: "#667085"
+ }
+
+ Item { Layout.fillWidth: true }
+
+ AbstractButton {
+ Layout.preferredWidth: 25
+ Layout.preferredHeight: 25
+ Layout.alignment: Qt.AlignVCenter
+
+ Rectangle {
+ anchors.fill: parent
+ radius: 4
+ color: "#192CDE85"
+ border.color: "#DDE2E8"
+ border.width: 1
+ }
+
+ Image {
+ source: UIStyle.iconPath("plus")
+ fillMode: Image.PreserveAspectFit
+ anchors.fill: parent
+ sourceSize.width: width
+ sourceSize.height: height
+
+ }
+ visible: root.loginService.loggedIn
+ onClicked: colorPopup.createNewColor()
+ }
+
+ AbstractButton {
+ Layout.preferredWidth: 25
+ Layout.preferredHeight: 25
+ Layout.alignment: Qt.AlignVCenter
+
+ Rectangle {
+ anchors.fill: parent
+ radius: 4
+ color: "#192CDE85"
+ border.color: "#DDE2E8"
+ border.width: 1
+ }
+
+ Image {
+ source: UIStyle.iconPath("update")
+ fillMode: Image.PreserveAspectFit
+ anchors.fill: parent
+ sourceSize.width: width
+ sourceSize.height: height
+ }
+
+ onClicked: {
+ root.colors.refreshCurrentPage()
+ root.colorViewUsers.refreshCurrentPage()
+ }
+ }
+ }
+ }
+
+
+
+ //! [View and model]
+ ListView {
+ id: colorListView
+
+ model: root.colors.model
+ //! [View and model]
+ footerPositioning: ListView.OverlayFooter
+ spacing: 15
+ clip: true
+
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ header: Rectangle {
+ height: 32
+ width: parent.width
+ color: "#F0F1F3"
+
+ RowLayout {
+ anchors.fill: parent
+
+ component HeaderText : Text {
+ Layout.alignment: Qt.AlignVCenter
+ horizontalAlignment: Qt.AlignHCenter
+
+ font.pixelSize: 12
+ color: "#667085"
+ }
+ HeaderText {
+ id: headerName
+ text: qsTr("Color Name")
+ Layout.preferredWidth: colorListView.width * 0.3
+ }
+ HeaderText {
+ id: headerRgb
+ text: qsTr("Rgb Value")
+ Layout.preferredWidth: colorListView.width * 0.25
+ }
+ HeaderText {
+ id: headerPantone
+ text: qsTr("Pantone Value")
+ Layout.preferredWidth: colorListView.width * 0.25
+ }
+ HeaderText {
+ id: headerAction
+ text: qsTr("Action")
+ Layout.preferredWidth: colorListView.width * 0.2
+ }
+ }
+ }
+
+ delegate: Item {
+ id: colorInfo
+
+ required property int color_id
+ required property string name
+ required property string color
+ required property string pantone_value
+
+ width: colorListView.width
+ height: 25
+ RowLayout {
+ anchors.fill: parent
+ anchors.leftMargin: 5
+ anchors.rightMargin: 5
+
+ Rectangle {
+ id: colorSample
+ Layout.alignment: Qt.AlignVCenter
+ implicitWidth: 36
+ implicitHeight: 21
+ radius: 6
+ color: colorInfo.color
+ }
+
+ Text {
+ Layout.preferredWidth: colorInfo.width * 0.3 - colorSample.width
+ horizontalAlignment: Qt.AlignLeft
+ leftPadding: 5
+ text: colorInfo.name
+ }
+
+ Text {
+ Layout.preferredWidth: colorInfo.width * 0.25
+ horizontalAlignment: Qt.AlignHCenter
+ text: colorInfo.color
+ }
+
+ Text {
+ Layout.preferredWidth: colorInfo.width * 0.25
+ horizontalAlignment: Qt.AlignHCenter
+ text: colorInfo.pantone_value
+ }
+
+ Item {
+ Layout.maximumHeight: 28
+ implicitHeight: buttonBox.implicitHeight
+ implicitWidth: buttonBox.implicitWidth
+
+ RowLayout {
+ id: buttonBox
+ anchors.fill: parent
+ ToolButton {
+ icon.source: UIStyle.iconPath("delete")
+ enabled: root.loginService.loggedIn
+ onClicked: colorDeletePopup.maybeDelete(color_id, name)
+ }
+ ToolButton {
+ icon.source: UIStyle.iconPath("edit")
+ enabled: root.loginService.loggedIn
+ onClicked: colorPopup.updateColor(color_id, name, color, pantone_value)
+ }
+ }
+ }
+ }
+ }
+
+ footer: ToolBar {
+ // Paginate buttons if more than one page
+ visible: root.colors.pages > 1
+ implicitWidth: parent.width
+
+ RowLayout {
+ anchors.fill: parent
+
+ Item { Layout.fillWidth: true /* spacer */ }
+
+ Repeater {
+ model: root.colors.pages
+
+ ToolButton {
+ text: page
+ font.bold: root.colors.page === page
+
+ required property int index
+ readonly property int page: (index + 1)
+
+ onClicked: root.colors.page = page
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/Main.qml b/examples/demos/colorpaletteclient/ColorPalette/Main.qml
new file mode 100644
index 000000000..ae1e85533
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/Main.qml
@@ -0,0 +1,62 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+
+import QtQuick
+
+import ColorPalette
+
+Window {
+ id: window
+ width: 500
+ height: 400
+ visible: true
+ title: qsTr("Color Palette Client")
+
+ enum DataView {
+ UserView = 0,
+ ColorView = 1
+ }
+
+ ServerSelection {
+ id: serverview
+ anchors.fill: parent
+ onServerSelected: {colorview.visible = true; serverview.visible = false}
+ colorResources: colors
+ restPalette: paletteService
+ colorUsers: users
+ }
+
+ ColorView {
+ id: colorview
+ anchors.fill: parent
+ visible: false
+ loginService: colorLogin
+ colors: colors
+ colorViewUsers: users
+ }
+
+ //! [RestService QML element]
+ RestService {
+ id: paletteService
+
+ PaginatedColorUsersResource {
+ id: users
+ path: "/api/users"
+ }
+
+ PaginatedColorsResource {
+ id: colors
+ path: "/api/unknown"
+ }
+
+ BasicLogin {
+ id: colorLogin
+ loginPath: "/api/login"
+ logoutPath: "/api/logout"
+ }
+ }
+ //! [RestService QML element]
+
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/ServerSelection.qml b/examples/demos/colorpaletteclient/ColorPalette/ServerSelection.qml
new file mode 100644
index 000000000..c170773cc
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/ServerSelection.qml
@@ -0,0 +1,241 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+import ColorPalette
+import QtExampleStyle
+
+pragma ComponentBehavior: Bound
+
+Item {
+ id: root
+ // A popup for selecting the server URL
+
+ signal serverSelected()
+
+ required property PaginatedColorsResource colorResources
+ required property PaginatedColorUsersResource colorUsers
+ required property RestService restPalette
+
+ Connections {
+ target: root.colorResources
+ // Closes the URL selection popup once we have received data successfully
+ function onDataUpdated() {
+ fetchTester.stop()
+ root.serverSelected()
+ }
+ }
+
+
+ ListModel {
+ id: server
+ ListElement {
+ title: qsTr("Public REST API Test Server")
+ url: "https://reqres.in"
+ icon: "qrc:/qt/qml/ColorPalette/icons/testserver.png"
+ }
+ ListElement {
+ title: qsTr("Qt-based REST API server")
+ url: "http://127.0.0.1:49425"
+ icon: "qrc:/qt/qml/ColorPalette/icons/qt.png"
+ }
+ }
+
+
+ ColumnLayout {
+ anchors.fill: parent
+ anchors.margins: 20
+ spacing: 10
+
+ Image {
+ Layout.alignment: Qt.AlignHCenter
+ source: "qrc:/qt/qml/ColorPalette/icons/qt.png"
+ fillMode: Image.PreserveAspectFit
+ Layout.preferredWidth: 20
+ }
+
+ Label {
+ text: qsTr("Choose a server")
+ Layout.alignment: Qt.AlignHCenter
+ font.pixelSize: 24
+ }
+
+ component ServerListDelegate: Rectangle {
+ id: serverListDelegate
+ required property string title
+ required property string url
+ required property string icon
+ required property int index
+
+ radius: 10
+ color: "#00000000"
+
+ border.color: ListView.view.currentIndex === index ? "#2CDE85" : "#E0E2E7"
+ border.width: 2
+
+ implicitWidth: 180
+ implicitHeight: 100
+
+ Rectangle {
+ id: img
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.topMargin: 10
+ anchors.leftMargin: 20
+
+ width: 30
+ height: 30
+ radius: 200
+ border. color: "#E7F4EE"
+ border.width: 5
+
+ Image {
+ anchors.centerIn: parent
+ source: serverListDelegate.icon
+ width: 15
+ height: 15
+ fillMode: Image.PreserveAspectFit
+ smooth: true
+ }
+ }
+
+ Text {
+ text: parent.url
+
+ anchors.left: parent.left
+ anchors.top: img.bottom
+ anchors.topMargin: 10
+ anchors.leftMargin: 20
+ color: "#667085"
+ font.pixelSize: 13
+ }
+ Text {
+ text: parent.title
+
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 10
+ color: "#222222"
+ font.pixelSize: 11
+ font.bold: true
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: serverList.currentIndex = serverListDelegate.index;
+ }
+ }
+
+ ListView {
+ id: serverList
+ Layout.alignment: Qt.AlignHCenter
+ Layout.minimumWidth: 180 * server.count + 20
+ Layout.minimumHeight: 100
+ orientation: ListView.Horizontal
+
+ model: server
+ spacing: 20
+
+ delegate: ServerListDelegate {}
+ }
+
+ Button {
+ Layout.alignment: Qt.AlignHCenter
+ text: restPalette.sslSupported ? qsTr("Connect (SSL)") : qsTr("Connect")
+
+ buttonColor: "#2CDE85"
+ textColor: "#FFFFFF"
+
+ onClicked: {
+ busyIndicatorPopup.title = (serverList.currentItem as ServerListDelegate).title
+ busyIndicatorPopup.icon = (serverList.currentItem as ServerListDelegate).icon
+ busyIndicatorPopup.open()
+
+ fetchTester.test((serverList.currentItem as ServerListDelegate).url)
+ }
+ }
+
+ Timer {
+ id: fetchTester
+ interval: 2000
+
+ function test(url) {
+ root.restPalette.url = url
+ root.colorResources.refreshCurrentPage()
+ root.colorUsers.refreshCurrentPage()
+ start()
+ }
+ onTriggered: busyIndicatorPopup.close()
+ }
+ }
+
+ onVisibleChanged: {if (!visible) busyIndicatorPopup.close();}
+
+ Popup {
+ id: busyIndicatorPopup
+ padding: 10
+ modal: true
+ focus: true
+ anchors.centerIn: parent
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
+
+ property alias title: titleText.text
+ property alias icon: titleImg.source
+
+ ColumnLayout {
+ id: fetchIndicator
+ anchors.fill: parent
+
+ RowLayout {
+ Rectangle {
+ Layout.preferredWidth: 50
+ Layout.preferredHeight: 50
+ radius: 200
+ border. color: "#E7F4EE"
+ border.width: 5
+
+ Image {
+ id: titleImg
+ anchors.centerIn: parent
+ width: 25
+ height: 25
+ fillMode: Image.PreserveAspectFit
+ }
+ }
+
+ Label {
+ id: titleText
+ text:""
+ font.pixelSize: 18
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: false
+ Layout.alignment: Qt.AlignHCenter
+ BusyIndicator {
+ running: visible
+ Layout.fillWidth: true
+ }
+
+ Label {
+ text: qsTr("Testing URL")
+ font.pixelSize: 18
+ }
+ }
+
+ Button {
+ Layout.alignment: Qt.AlignHCenter
+ text: qsTr("Cancel")
+ onClicked: {
+ busyIndicatorPopup.close()
+ }
+ }
+
+ }
+
+ }
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/UserMenu.qml b/examples/demos/colorpaletteclient/ColorPalette/UserMenu.qml
new file mode 100644
index 000000000..6c4b25683
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/UserMenu.qml
@@ -0,0 +1,139 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+
+import QtExampleStyle
+import ColorPalette
+
+Popup {
+ id: userMenu
+
+ required property BasicLogin userLoginService
+ required property PaginatedColorUsersResource userMenuUsers
+
+ width: 280
+ height: 270
+
+ ColumnLayout {
+ anchors.fill: parent
+
+ ListView {
+ id: userListView
+
+ model: userMenu.userMenuUsers.model
+ spacing: 5
+ footerPositioning: ListView.PullBackFooter
+ clip: true
+
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ delegate: Rectangle {
+ id: userInfo
+
+ required property string email
+ required property string avatar
+
+ height: 30
+ width: userListView.width
+
+
+ readonly property bool logged: (email === loginService.user)
+
+ Rectangle {
+ id: userImageCliped
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ width: 30
+ height: 30
+
+ Image {
+ id: userImage
+ anchors.fill: parent
+ source: userInfo.avatar
+ visible: false
+ }
+
+ Image {
+ id: userMask
+ source: "qrc:/qt/qml/ColorPalette/icons/userMask.svg"
+ anchors.fill: userImage
+ anchors.margins: 4
+ visible: false
+ }
+
+ MultiEffect {
+ source: userImage
+ anchors.fill: userImage
+ maskSource: userMask
+ maskEnabled: true
+ }
+ }
+
+ Text {
+ id: userMailLabel
+ anchors.left: userImageCliped.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.margins: 5
+ text: userInfo.email
+ font.bold: userInfo.logged
+ }
+
+ ToolButton {
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.margins: 5
+
+ icon.source: UIStyle.iconPath(userInfo.logged
+ ? "logout" : "login")
+ enabled: userInfo.logged || !userMenu.userLoginService.loggedIn
+
+ onClicked: {
+ if (userInfo.logged) {
+ userMenu.userLoginService.logout()
+ } else {
+ //! [Login]
+ userMenu.userLoginService.login({"email" : userInfo.email,
+ "password" : "apassword",
+ "id" : userInfo.id})
+ //! [Login]
+ userMenu.close()
+ }
+ }
+ }
+
+ }
+ footer: ToolBar {
+ // Paginate buttons if more than one page
+ visible: userMenu.userMenuUsers.pages > 1
+ implicitWidth: parent.width
+
+ RowLayout {
+ anchors.fill: parent
+
+ Item { Layout.fillWidth: true /* spacer */ }
+
+ Repeater {
+ model: userMenu.userMenuUsers.pages
+
+ ToolButton {
+ text: page
+ font.bold: userMenu.userMenuUsers.page === page
+
+ required property int index
+ readonly property int page: (index + 1)
+
+ onClicked: userMenu.userMenuUsers.page = page
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/qmldir b/examples/demos/colorpaletteclient/ColorPalette/qmldir
new file mode 100644
index 000000000..7a153fea8
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/qmldir
@@ -0,0 +1,7 @@
+module ColorPalette
+Main 1.0 Main.qml
+ColorDialogDelete 1.0 ColorDialogDelete.qml
+ColorDialogEditor 1.0 ColorDialogEditor.qml
+ColorView 1.0 ColorView.qml
+ServerSelection 1.0 ServerSelection.qml
+UserMenu 1.0 UserMenu.qml
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/Button.qml b/examples/demos/colorpaletteclient/QtExampleStyle/Button.qml
new file mode 100644
index 000000000..6b3f922a1
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/Button.qml
@@ -0,0 +1,48 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Controls.impl
+import QtQuick.Templates as T
+
+T.Button {
+ id: control
+
+ property alias buttonColor: rect.color
+ property alias textColor: label.color
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ leftPadding: 15
+ rightPadding: 15
+ topPadding: 10
+ bottomPadding: 10
+
+ background: Rectangle {
+ id: rect
+ radius: 8
+ border.color: "#E0E2E7"
+ border.width: 1
+ color: "#FFFFFF"
+ }
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.buttonText
+
+ contentItem: IconLabel {
+ id: label
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font.pixelSize: 14
+ color: "#667085"
+ }
+}
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/CMakeLists.txt b/examples/demos/colorpaletteclient/QtExampleStyle/CMakeLists.txt
new file mode 100644
index 000000000..a911f8742
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/CMakeLists.txt
@@ -0,0 +1,54 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.16)
+project(qtexamplestyle LANGUAGES CXX)
+
+set(CMAKE_AUTOMOC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/quickcontrols/colorpaletteclient/QtExampleStyle")
+
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick QuickControls2)
+
+set_source_files_properties(UIStyle.qml
+ PROPERTIES
+ QT_QML_SINGLETON_TYPE TRUE
+)
+
+qt_policy(SET QTP0001 NEW)
+qt_add_qml_module(qtexamplestyle
+ URI QtExampleStyle
+ PLUGIN_TARGET qtexamplestyle
+ QML_FILES
+ Button.qml
+ Popup.qml
+ UIStyle.qml
+ TextField.qml
+)
+
+target_link_libraries(qtexamplestyle PUBLIC
+ Qt6::Core
+ Qt6::Gui
+ Qt6::Quick
+ Qt6::QuickControls2
+)
+
+if(UNIX AND NOT APPLE AND CMAKE_CROSSCOMPILING)
+ find_package(Qt6 REQUIRED COMPONENTS QuickTemplates2)
+
+ # Work around QTBUG-86533
+ target_link_libraries(qtexamplestyle PRIVATE Qt6::QuickTemplates2)
+endif()
+
+install(TARGETS qtexamplestyle
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qmldir
+ DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/Popup.qml b/examples/demos/colorpaletteclient/QtExampleStyle/Popup.qml
new file mode 100644
index 000000000..a3132bcea
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/Popup.qml
@@ -0,0 +1,27 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Templates as T
+
+T.Popup {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ leftPadding: 15
+ rightPadding: 15
+ topPadding: 10
+ bottomPadding: 10
+
+ background: Rectangle {
+ id: bg
+ radius: 8
+ border.color: "#E0E2E7"
+ border.width: 2
+ color: "#FFFFFF"
+ }
+}
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/TextField.qml b/examples/demos/colorpaletteclient/QtExampleStyle/TextField.qml
new file mode 100644
index 000000000..7db2d4f98
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/TextField.qml
@@ -0,0 +1,22 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Templates as T
+
+T.TextField {
+ id: control
+ placeholderText: ""
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 40
+ radius: 8
+ color: control.enabled ? "transparent" : "#353637"
+ border.color: "#E0E2E7"
+ }
+}
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/UIStyle.qml b/examples/demos/colorpaletteclient/QtExampleStyle/UIStyle.qml
new file mode 100644
index 000000000..3c4741d7f
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/UIStyle.qml
@@ -0,0 +1,29 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma Singleton
+
+import QtQuick
+
+QtObject {
+ id: uiStyle
+
+ // Font Sizes
+ readonly property int fontSizeXXS: 10
+ readonly property int fontSizeXS: 15
+ readonly property int fontSizeS: 20
+ readonly property int fontSizeM: 25
+ readonly property int fontSizeL: 30
+ readonly property int fontSizeXL: 35
+ readonly property int fontSizeXXL: 40
+
+ // Color Scheme
+ // Green
+ readonly property color colorQtPrimGreen: "#41cd52"
+ readonly property color colorQtAuxGreen1: "#21be2b"
+ readonly property color colorQtAuxGreen2: "#17a81a"
+
+ function iconPath(baseImagePath) {
+ return `qrc:/qt/qml/ColorPalette/icons/${baseImagePath}.svg`
+ }
+}
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/qmldir b/examples/demos/colorpaletteclient/QtExampleStyle/qmldir
new file mode 100644
index 000000000..7bdfb44d8
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/qmldir
@@ -0,0 +1,5 @@
+module QtExampleStyle
+Button 1.0 Button.qml
+Popup 1.0 Popup.qml
+TextField 1.0 TextField.qml
+singleton UIStyle 1.0 UIStyle.qml
diff --git a/examples/demos/colorpaletteclient/abstractresource.py b/examples/demos/colorpaletteclient/abstractresource.py
new file mode 100644
index 000000000..3f3a7ed6a
--- /dev/null
+++ b/examples/demos/colorpaletteclient/abstractresource.py
@@ -0,0 +1,24 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject
+from PySide6.QtQml import QmlAnonymous
+
+
+QML_IMPORT_NAME = "ColorPalette"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class AbstractResource(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_manager = None # QRestAccessManager
+ self.m_api = None # QNetworkRequestFactory
+
+ def setAccessManager(self, manager):
+ self.m_manager = manager
+
+ def setServiceApi(self, serviceApi):
+ self.m_api = serviceApi
diff --git a/examples/demos/colorpaletteclient/basiclogin.py b/examples/demos/colorpaletteclient/basiclogin.py
new file mode 100644
index 000000000..b9139c2e2
--- /dev/null
+++ b/examples/demos/colorpaletteclient/basiclogin.py
@@ -0,0 +1,100 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from functools import partial
+from dataclasses import dataclass
+
+from PySide6.QtCore import Property, Signal, Slot
+from PySide6.QtNetwork import QHttpHeaders
+from PySide6.QtQml import QmlElement
+
+from abstractresource import AbstractResource
+
+
+tokenField = "token"
+emailField = "email"
+idField = "id"
+
+
+QML_IMPORT_NAME = "ColorPalette"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BasicLogin(AbstractResource):
+ @dataclass
+ class User:
+ email: str
+ token: bytes
+ id: int
+
+ userChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_user = None
+ self.m_loginPath = ""
+ self.m_logoutPath = ""
+ self.m_user = None
+
+ @Property(str, notify=userChanged)
+ def user(self):
+ return self.m_user.email if self.m_user else ""
+
+ @Property(bool, notify=userChanged)
+ def loggedIn(self):
+ return bool(self.m_user)
+
+ @Property(str)
+ def loginPath(self):
+ return self.m_loginPath
+
+ @loginPath.setter
+ def loginPath(self, p):
+ self.m_loginPath = p
+
+ @Property(str)
+ def logoutPath(self):
+ return self.m_logoutPath
+
+ @logoutPath.setter
+ def logoutPath(self, p):
+ self.m_logoutPath = p
+
+ @Slot("QVariantMap")
+ def login(self, data):
+ request = self.m_api.createRequest(self.m_loginPath)
+ self.m_manager.post(request, data, self, partial(self.loginReply, data))
+
+ def loginReply(self, data, reply):
+ self.m_user = None
+ if not reply.isSuccess():
+ print("login: ", reply.errorString(), file=sys.stderr)
+ (json, error) = reply.readJson()
+ if json and json.isObject():
+ json_object = json.object()
+ token = json_object.get(tokenField)
+ if token:
+ email = data[emailField]
+ token = json_object[tokenField]
+ id = data[idField]
+ self.m_user = BasicLogin.User(email, token, id)
+
+ headers = QHttpHeaders()
+ headers.append("token", self.m_user.token if self.m_user else "")
+ self.m_api.setCommonHeaders(headers)
+ self.userChanged.emit()
+
+ @Slot()
+ def logout(self):
+ request = self.m_api.createRequest(self.m_logoutPath)
+ self.m_manager.post(request, b"", self, self.logoutReply)
+
+ def logoutReply(self, reply):
+ if reply.isSuccess():
+ self.m_user = None
+ self.m_api.clearCommonHeaders() # clears 'token' header
+ self.userChanged.emit()
+ else:
+ print("logout: ", reply.errorString(), file=sys.stderr)
diff --git a/examples/demos/colorpaletteclient/colorpaletteclient.pyproject b/examples/demos/colorpaletteclient/colorpaletteclient.pyproject
new file mode 100644
index 000000000..d05f7cb29
--- /dev/null
+++ b/examples/demos/colorpaletteclient/colorpaletteclient.pyproject
@@ -0,0 +1,21 @@
+{
+ "files": [
+ "abstractresource.py",
+ "basiclogin.py",
+ "main.py",
+ "paginatedresource.py",
+ "restservice.py",
+ "colorpaletteclient.qrc",
+ "ColorPalette/ColorDialogDelete.qml",
+ "ColorPalette/ColorDialogEditor.qml",
+ "ColorPalette/ColorView.qml",
+ "ColorPalette/Main.qml",
+ "ColorPalette/ServerSelection.qml",
+ "ColorPalette/UserMenu.qml",
+ "QtExampleStyle/Button.qml",
+ "QtExampleStyle/Popup.qml",
+ "QtExampleStyle/TextField.qml",
+ "QtExampleStyle/UIStyle.qml",
+ "colorpaletteclient.qrc"
+ ]
+}
diff --git a/examples/demos/colorpaletteclient/colorpaletteclient.qrc b/examples/demos/colorpaletteclient/colorpaletteclient.qrc
new file mode 100644
index 000000000..16260cbd7
--- /dev/null
+++ b/examples/demos/colorpaletteclient/colorpaletteclient.qrc
@@ -0,0 +1,17 @@
+<RCC>
+ <qresource prefix="/qt/qml/ColorPalette">
+ <file>icons/close.svg</file>
+ <file>icons/delete.svg</file>
+ <file>icons/dots.svg</file>
+ <file>icons/edit.svg</file>
+ <file>icons/login.svg</file>
+ <file>icons/logout.svg</file>
+ <file>icons/ok.svg</file>
+ <file>icons/plus.svg</file>
+ <file>icons/qt.png</file>
+ <file>icons/testserver.png</file>
+ <file>icons/update.svg</file>
+ <file>icons/user.svg</file>
+ <file>icons/userMask.svg</file>
+ </qresource>
+</RCC>
diff --git a/examples/demos/colorpaletteclient/doc/colorpaletteclient.rst b/examples/demos/colorpaletteclient/doc/colorpaletteclient.rst
new file mode 100644
index 000000000..0dcb91d4e
--- /dev/null
+++ b/examples/demos/colorpaletteclient/doc/colorpaletteclient.rst
@@ -0,0 +1,79 @@
+RESTful API client
+==================
+
+Example of how to create a RESTful API QML client.
+
+This example shows how to create a basic QML RESTful API client with an
+imaginary color palette service. The application uses RESTful communication
+with the selected server to request and send data. The REST service is provided
+as a QML element whose child elements wrap the individual JSON data APIs
+provided by the server.
+
+Application functionality
+-------------------------
+
+The example provides the following basic functionalities:
+* Select the server to communicate with
+* List users and colors
+* Login and logout users
+* Modify and create new colors
+
+Server selection
+----------------
+
+At start the application presents the options for the color palette server to communicate
+with. The predefined options are:
+
+* ``https://reqres.in``, a publicly available REST API test service
+* A Qt-based REST API server example in ``QtHttpServer``
+
+Once selected, the RESTful API client issues a test HTTP GET to the color API
+to check if the service is accessible.
+
+One major difference between the two predefined API options is that the
+Qt-based REST API server example is a stateful application which allows
+modifying colors, whereas the ``reqres.in`` is a stateless API testing service.
+In other words, when using the ``reqres.in`` backend, modifying the colors has
+no lasting impact.
+
+The users and colors are paginated resources on the server-side. This means
+that the server provides the data in chunks called pages. The UI listing
+reflects this pagination and views the data on pages.
+
+Viewing the data on UI is done with standard QML views where the model are
+QAbstractListModel-derived classes representing JSON data received from the
+server.
+
+Logging in happens via the login function provided by the login popup. Under
+the hood the login sends a HTTP POST request. Upon receiving a successful
+response the authorization token is extracted from the response, which in turn
+is then used in subsequent HTTP requests which require the token.
+
+Editing and adding new colors is done in a popup. Note that uploading the color
+changes to the server requires that a user has logged in.
+
+REST implementation
+-------------------
+
+The example illustrates one way to compose a REST service from individual resource elements. In
+this example the resources are the paginated user and color resources plus the login service.
+The resource elements are bound together by the base URL (server URL) and the shared network access
+manager.
+
+The basis of the REST service is the RestService QML element whose children items
+compose the actual service.
+
+Upon instantiation the RestService element loops its children elements and sets
+them up to use the same network access manager. This way the individual
+resources share the same access details such as the server URL and
+authorization token.
+
+The actual communication is done with a rest access manager which implements
+some convenience functionality to deal specifically with HTTP REST APIs and
+effectively deals with sending and receiving the ``QNetworkRequest`` and
+``QNetworkReply`` as needed.
+
+.. image:: colorpaletteclient.webp
+ :width: 90%
+ :align: center
+ :alt: RESTful API client
diff --git a/examples/demos/colorpaletteclient/doc/colorpaletteclient.webp b/examples/demos/colorpaletteclient/doc/colorpaletteclient.webp
new file mode 100644
index 000000000..8f4d9a621
--- /dev/null
+++ b/examples/demos/colorpaletteclient/doc/colorpaletteclient.webp
Binary files differ
diff --git a/examples/demos/colorpaletteclient/icons/close.svg b/examples/demos/colorpaletteclient/icons/close.svg
new file mode 100644
index 000000000..3a0d4be65
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/close.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M12.4501 37.65L10.3501 35.55L21.9001 24L10.3501 12.45L12.4501 10.35L24.0001 21.9L35.5501 10.35L37.6501 12.45L26.1001 24L37.6501 35.55L35.5501 37.65L24.0001 26.1L12.4501 37.65Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/delete.svg b/examples/demos/colorpaletteclient/icons/delete.svg
new file mode 100644
index 000000000..8f04948c8
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/delete.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M13.05 42C12.225 42 11.5187 41.7062 10.9313 41.1188C10.3438 40.5312 10.05 39.825 10.05 39V10.5H8V7.5H17.4V6H30.6V7.5H40V10.5H37.95V39C37.95 39.8 37.65 40.5 37.05 41.1C36.45 41.7 35.75 42 34.95 42H13.05ZM34.95 10.5H13.05V39H34.95V10.5ZM18.35 34.7H21.35V14.75H18.35V34.7ZM26.65 34.7H29.65V14.75H26.65V34.7Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/dots.svg b/examples/demos/colorpaletteclient/icons/dots.svg
new file mode 100644
index 000000000..49df163fd
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/dots.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M10.3929 26.4C9.73097 26.4 9.16667 26.1643 8.7 25.6929C8.23333 25.2215 8 24.6548 8 23.9929C8 23.3309 8.2357 22.7666 8.7071 22.3C9.17847 21.8333 9.74513 21.6 10.4071 21.6C11.069 21.6 11.6333 21.8357 12.1 22.3071C12.5667 22.7784 12.8 23.3451 12.8 24.0071C12.8 24.669 12.5643 25.2333 12.0929 25.7C11.6215 26.1666 11.0549 26.4 10.3929 26.4ZM23.9929 26.4C23.331 26.4 22.7667 26.1643 22.3 25.6929C21.8333 25.2215 21.6 24.6548 21.6 23.9929C21.6 23.3309 21.8357 22.7666 22.3071 22.3C22.7785 21.8333 23.3451 21.6 24.0071 21.6C24.669 21.6 25.2333 21.8357 25.7 22.3071C26.1667 22.7784 26.4 23.3451 26.4 24.0071C26.4 24.669 26.1643 25.2333 25.6929 25.7C25.2215 26.1666 24.6549 26.4 23.9929 26.4ZM37.5929 26.4C36.931 26.4 36.3667 26.1643 35.9 25.6929C35.4333 25.2215 35.2 24.6548 35.2 23.9929C35.2 23.3309 35.4357 22.7666 35.9071 22.3C36.3785 21.8333 36.9451 21.6 37.6071 21.6C38.269 21.6 38.8333 21.8357 39.3 22.3071C39.7667 22.7784 40 23.3451 40 24.0071C40 24.669 39.7643 25.2333 39.2929 25.7C38.8215 26.1666 38.2549 26.4 37.5929 26.4Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/edit.svg b/examples/demos/colorpaletteclient/icons/edit.svg
new file mode 100644
index 000000000..1cfc2a73a
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/edit.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9 39H11.2L33.35 16.85L31.15 14.65L9 36.8V39ZM39.7 14.7L33.3 8.29998L35.4 6.19998C35.9667 5.63331 36.6667 5.34998 37.5 5.34998C38.3333 5.34998 39.0333 5.63331 39.6 6.19998L41.8 8.39998C42.3667 8.96664 42.65 9.66664 42.65 10.5C42.65 11.3333 42.3667 12.0333 41.8 12.6L39.7 14.7ZM37.6 16.8L12.4 42H6V35.6L31.2 10.4L37.6 16.8ZM32.25 15.75L31.15 14.65L33.35 16.85L32.25 15.75Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/login.svg b/examples/demos/colorpaletteclient/icons/login.svg
new file mode 100644
index 000000000..c8fe5bc54
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/login.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M24.45 42V39H39V9H24.45V6H39C39.8 6 40.5 6.3 41.1 6.9C41.7 7.5 42 8.2 42 9V39C42 39.8 41.7 40.5 41.1 41.1C40.5 41.7 39.8 42 39 42H24.45ZM20.55 32.75L18.4 30.6L23.5 25.5H6V22.5H23.4L18.3 17.4L20.45 15.25L29.25 24.05L20.55 32.75Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/logout.svg b/examples/demos/colorpaletteclient/icons/logout.svg
new file mode 100644
index 000000000..91d4fd869
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/logout.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9 42C8.2 42 7.5 41.7 6.9 41.1C6.3 40.5 6 39.8 6 39V9C6 8.2 6.3 7.5 6.9 6.9C7.5 6.3 8.2 6 9 6H23.55V9H9V39H23.55V42H9ZM33.3 32.75L31.15 30.6L36.25 25.5H18.75V22.5H36.15L31.05 17.4L33.2 15.25L42 24.05L33.3 32.75Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/ok.svg b/examples/demos/colorpaletteclient/icons/ok.svg
new file mode 100644
index 000000000..506e2d690
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/ok.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M18.9002 35.7L7.7002 24.5L9.8502 22.35L18.9002 31.4L38.1002 12.2L40.2502 14.35L18.9002 35.7Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/plus.svg b/examples/demos/colorpaletteclient/icons/plus.svg
new file mode 100644
index 000000000..81837784a
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/plus.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M22.5 38V25.5H10V22.5H22.5V10H25.5V22.5H38V25.5H25.5V38H22.5Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/qt.png b/examples/demos/colorpaletteclient/icons/qt.png
new file mode 100644
index 000000000..abd3a4f14
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/qt.png
Binary files differ
diff --git a/examples/demos/colorpaletteclient/icons/qt_attribution.json b/examples/demos/colorpaletteclient/icons/qt_attribution.json
new file mode 100644
index 000000000..44633c474
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/qt_attribution.json
@@ -0,0 +1,14 @@
+{
+ "Id": "colorpaletteclient",
+ "Name": "Selected Material Icons",
+ "QDocModule": "qtdoc",
+ "QtUsage": "Used in Color Palette Client example in QtDoc",
+ "QtParts": [
+ "examples"
+ ],
+ "Files": "close.svg delete.svg dots.svg edit.svg login.svg logout.svg ok.svg update.svg user.svg",
+ "Homepage": "https://fonts.google.com/icons",
+ "License": "Apache License Version 2.0",
+ "LicenseId": "Apache-2.0",
+ "Copyright": "Copyright 2018 Google, Inc. All Rights Reserved."
+}
diff --git a/examples/demos/colorpaletteclient/icons/testserver.png b/examples/demos/colorpaletteclient/icons/testserver.png
new file mode 100644
index 000000000..0890e5e4b
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/testserver.png
Binary files differ
diff --git a/examples/demos/colorpaletteclient/icons/update.svg b/examples/demos/colorpaletteclient/icons/update.svg
new file mode 100644
index 000000000..303ff4d3d
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/update.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M24 40C19.5667 40 15.7917 38.4417 12.675 35.325C9.55833 32.2083 8 28.4333 8 24C8 19.5667 9.55833 15.7917 12.675 12.675C15.7917 9.55833 19.5667 8 24 8C26.8333 8 29.3167 8.575 31.45 9.725C33.5833 10.875 35.4333 12.45 37 14.45V8H40V20.7H27.3V17.7H35.7C34.4333 15.7 32.8167 14.0833 30.85 12.85C28.8833 11.6167 26.6 11 24 11C20.3667 11 17.2917 12.2583 14.775 14.775C12.2583 17.2917 11 20.3667 11 24C11 27.6333 12.2583 30.7083 14.775 33.225C17.2917 35.7417 20.3667 37 24 37C26.7667 37 29.3 36.2083 31.6 34.625C33.9 33.0417 35.5 30.95 36.4 28.35H39.5C38.5333 31.85 36.6167 34.6667 33.75 36.8C30.8833 38.9333 27.6333 40 24 40Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/user.svg b/examples/demos/colorpaletteclient/icons/user.svg
new file mode 100644
index 000000000..ed782385e
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/user.svg
@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12Z" fill="#E6E6E6"/>
+<path d="M15.5 12C16.3284 12 17 12.6716 17 13.5V14C17 15.9714 15.1405 18 12 18C8.85951 18 7 15.9714 7 14V13.5C7 12.6716 7.67157 12 8.5 12H15.5ZM15.5 13H8.5C8.22386 13 8 13.2239 8 13.5V14C8 15.4376 9.43216 17 12 17C14.5678 17 16 15.4376 16 14V13.5C16 13.2239 15.7761 13 15.5 13ZM12 5.5C13.5188 5.5 14.75 6.73122 14.75 8.25C14.75 9.76878 13.5188 11 12 11C10.4812 11 9.25 9.76878 9.25 8.25C9.25 6.73122 10.4812 5.5 12 5.5ZM12 6.5C11.0335 6.5 10.25 7.2835 10.25 8.25C10.25 9.2165 11.0335 10 12 10C12.9665 10 13.75 9.2165 13.75 8.25C13.75 7.2835 12.9665 6.5 12 6.5Z" fill="#616161"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/userMask.svg b/examples/demos/colorpaletteclient/icons/userMask.svg
new file mode 100644
index 000000000..5e3065d7f
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/userMask.svg
@@ -0,0 +1,3 @@
+<svg width="30" height="30" viewBox="0 0 30 30" xmlns="http://www.w3.org/2000/svg">
+<ellipse cx="15" cy="15" rx="13" ry="13" fill="black"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/main.py b/examples/demos/colorpaletteclient/main.py
new file mode 100644
index 000000000..a249b9fa2
--- /dev/null
+++ b/examples/demos/colorpaletteclient/main.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt RESTful API client demo from Qt v6.x"""
+
+import os
+import sys
+from pathlib import Path
+
+from PySide6.QtCore import QUrl
+from PySide6.QtGui import QIcon, QGuiApplication
+from PySide6.QtQml import QQmlApplicationEngine
+
+from basiclogin import BasicLogin # noqa: F401
+from paginatedresource import PaginatedResource # noqa: F401
+from restservice import RestService # noqa: F401
+import rc_colorpaletteclient # noqa: F401
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ QIcon.setThemeName("colorpaletteclient")
+
+ engine = QQmlApplicationEngine()
+ app_dir = Path(__file__).parent
+ app_dir_url = QUrl.fromLocalFile(os.fspath(app_dir))
+ engine.addImportPath(os.fspath(app_dir))
+ engine.loadFromModule("ColorPalette", "Main")
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ ex = app.exec()
+ del engine
+ sys.exit(ex)
diff --git a/examples/demos/colorpaletteclient/paginatedresource.py b/examples/demos/colorpaletteclient/paginatedresource.py
new file mode 100644
index 000000000..b7f036c4e
--- /dev/null
+++ b/examples/demos/colorpaletteclient/paginatedresource.py
@@ -0,0 +1,278 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from dataclasses import dataclass
+from PySide6.QtCore import (QAbstractListModel, QByteArray,
+ QUrlQuery, Property, Signal, Slot, Qt)
+from PySide6.QtQml import QmlAnonymous, QmlElement
+
+from abstractresource import AbstractResource
+
+
+QML_IMPORT_NAME = "ColorPalette"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+totalPagesField = "total_pages"
+currentPageField = "page"
+
+
+@dataclass
+class ColorUser:
+ id: int
+ email: str
+ avatar: str # URL
+
+
+@QmlElement
+class ColorUserModel (QAbstractListModel):
+ IdRole = Qt.UserRole + 1
+ EmailRole = Qt.UserRole + 2
+ AvatarRole = Qt.UserRole + 3
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._users = []
+
+ def clear(self):
+ self.set_data([])
+
+ def set_data(self, json_list):
+ if not self._users and not json_list:
+ return
+ self.beginResetModel()
+ self._users.clear()
+ for e in json_list:
+ self._users.append(ColorUser(int(e["id"]), e["email"], e["avatar"]))
+ self.endResetModel()
+
+ def roleNames(self):
+ roles = {
+ ColorUserModel.IdRole: QByteArray(b'id'),
+ ColorUserModel.EmailRole: QByteArray(b'email'),
+ ColorUserModel.AvatarRole: QByteArray(b'avatar')
+ }
+ return roles
+
+ def rowCount(self, index):
+ return len(self._users)
+
+ def data(self, index, role):
+ if index.isValid():
+ d = self._users[index.row()]
+ if role == ColorUserModel.IdRole:
+ return d.id
+ if role == ColorUserModel.EmailRole:
+ return d.email
+ if role == ColorUserModel.AvatarRole:
+ return d.avatar
+ return None
+
+ def avatarForEmail(self, email):
+ for e in self._users:
+ if e.email == email:
+ return e.avatar
+ return ""
+
+
+@dataclass
+class Color:
+ id: int
+ color: str
+ name: str
+ pantone_value: str
+
+
+@QmlElement
+class ColorModel (QAbstractListModel):
+ IdRole = Qt.UserRole + 1
+ ColorRole = Qt.UserRole + 2
+ NameRole = Qt.UserRole + 3
+ PantoneValueRole = Qt.UserRole + 4
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._colors = []
+
+ def clear(self):
+ self.set_data([])
+
+ def set_data(self, json_list):
+ if not self._colors and not json_list:
+ return
+ self.beginResetModel()
+ self._colors.clear()
+ for e in json_list:
+ self._colors.append(Color(int(e["id"]), e["color"],
+ e["name"], e["pantone_value"]))
+ self.endResetModel()
+
+ def roleNames(self):
+ roles = {
+ ColorModel.IdRole: QByteArray(b'color_id'),
+ ColorModel.ColorRole: QByteArray(b'color'),
+ ColorModel.NameRole: QByteArray(b'name'),
+ ColorModel.PantoneValueRole: QByteArray(b'pantone_value')
+ }
+ return roles
+
+ def rowCount(self, index):
+ return len(self._colors)
+
+ def data(self, index, role):
+ if index.isValid():
+ d = self._colors[index.row()]
+ if role == ColorModel.IdRole:
+ return d.id
+ if role == ColorModel.ColorRole:
+ return d.color
+ if role == ColorModel.NameRole:
+ return d.name
+ if role == ColorModel.PantoneValueRole:
+ return d.pantone_value
+ return None
+
+
+@QmlAnonymous
+class PaginatedResource(AbstractResource):
+ """This class manages a simple paginated Crud resource,
+ where the resource is a paginated list of JSON items."""
+
+ dataUpdated = Signal()
+ pageUpdated = Signal()
+ pagesUpdated = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ # The total number of pages as reported by the server responses
+ self.m_pages = 0
+ # The default page we request if the user hasn't set otherwise
+ self.m_currentPage = 1
+ self.m_path = ""
+
+ def _clearModel(self):
+ pass
+
+ def _populateModel(self, json_list):
+ pass
+
+ @Property(str)
+ def path(self):
+ return self.m_path
+
+ @path.setter
+ def path(self, p):
+ self.m_path = p
+
+ @Property(int, notify=pagesUpdated)
+ def pages(self):
+ return self.m_pages
+
+ @Property(int, notify=pageUpdated)
+ def page(self):
+ return self.m_currentPage
+
+ @page.setter
+ def page(self, page):
+ if self.m_currentPage == page or page < 1:
+ return
+ self.m_currentPage = page
+ self.pageUpdated.emit()
+ self.refreshCurrentPage()
+
+ @Slot()
+ def refreshCurrentPage(self):
+ query = QUrlQuery()
+ query.addQueryItem("page", str(self.m_currentPage))
+ request = self.m_api.createRequest(self.m_path, query)
+ self.m_manager.get(request, self, self.refreshCurrentPageReply)
+
+ def refreshCurrentPageReply(self, reply):
+ if not reply.isSuccess():
+ print("PaginatedResource: ", reply.errorString(), file=sys.stderr)
+ (json, error) = reply.readJson()
+ if json:
+ self.refreshRequestFinished(json)
+ else:
+ self.refreshRequestFailed()
+
+ def refreshRequestFinished(self, json):
+ json_object = json.object()
+ self._populateModel(json_object["data"])
+ self.m_pages = int(json_object[totalPagesField])
+ self.m_currentPage = int(json_object[currentPageField])
+ self.pageUpdated.emit()
+ self.pagesUpdated.emit()
+ self.dataUpdated.emit()
+
+ def refreshRequestFailed(self):
+ if self.m_currentPage != 1:
+ # A failed refresh. If we weren't on page 1, try that.
+ # Last resource on currentPage might have been deleted, causing a failure
+ self.setPage(1)
+ else:
+ # Refresh failed and we we're already on page 1 => clear data
+ self.m_pages = 0
+ self.pagesUpdated.emit()
+ self._clearModel()
+ self.dataUpdated.emit()
+
+ @Slot("QVariantMap", int)
+ def update(self, data, id):
+ request = self.m_api.createRequest(f"{self.m_path}/{id}")
+ self.m_manager.put(request, self, self.updateReply)
+
+ def updateReply(self, reply):
+ if reply.isSuccess():
+ self.refreshCurrentPage()
+
+ @Slot("QVariantMap")
+ def add(self, data):
+ request = self.m_api.createRequest(self.m_path)
+ self.m_manager.post(request, data, self, self.updateReply)
+
+ @Slot(int)
+ def remove(self, id):
+ request = self.m_api.createRequest(f"{self.m_path}/{id}")
+ self.m_manager.deleteResource(request, self, self.updateReply)
+
+
+@QmlElement
+class PaginatedColorUsersResource(PaginatedResource):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_model = ColorUserModel(self)
+
+ @Property(ColorUserModel, constant=True)
+ def model(self):
+ return self.m_model
+
+ def _clearModel(self):
+ self.m_model.clear()
+
+ def _populateModel(self, json_list):
+ self.m_model.set_data(json_list)
+
+ @Slot(str, result=str)
+ def avatarForEmail(self, email):
+ return self.m_model.avatarForEmail(email)
+
+
+@QmlElement
+class PaginatedColorsResource(PaginatedResource):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_model = ColorModel(self)
+
+ @Property(ColorModel, constant=True)
+ def model(self):
+ return self.m_model
+
+ def _clearModel(self):
+ self.m_model.clear()
+
+ def _populateModel(self, json_list):
+ self.m_model.set_data(json_list)
diff --git a/examples/demos/colorpaletteclient/rc_colorpaletteclient.py b/examples/demos/colorpaletteclient/rc_colorpaletteclient.py
new file mode 100644
index 000000000..74b3eaf13
--- /dev/null
+++ b/examples/demos/colorpaletteclient/rc_colorpaletteclient.py
@@ -0,0 +1,1098 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.7.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x00\xc0\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M22.5 38\
+V25.5H10V22.5H22\
+.5V10H25.5V22.5H\
+38V25.5H25.5V38H\
+22.5Z\x22 fill=\x22#66\
+7085\x22/>\x0a</svg>\x0a\
+\x00\x00\x00\x94\
+<\
+svg width=\x2230\x22 h\
+eight=\x2230\x22 viewB\
+ox=\x220 0 30 30\x22 x\
+mlns=\x22http://www\
+.w3.org/2000/svg\
+\x22>\x0a<ellipse cx=\x22\
+15\x22 cy=\x2215\x22 rx=\x22\
+13\x22 ry=\x2213\x22 fill\
+=\x22black\x22/>\x0a</svg\
+>\x0a\x0a\
+\x00\x00\x0b\x93\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00d\x00\x00\x00H\x08\x06\x00\x00\x00\x00\x8cP\x19\
+\x00\x00\x01\x84iCCPICC prof\
+ile\x00\x00(\x91}\x91=H\xc3@\x1c\xc5_\
+S\xa5*-\x0ev\x90\xe2\x90\xa1:Y\x10\x15q\xd4\
+*\x14\xa1B\xa8\x15Zu0\xb9\xf4\x0b\x9a\x18\x92\x14\
+\x17G\xc1\xb5\xe0\xe0\xc7b\xd5\xc1\xc5YW\x07WA\
+\x10\xfc\x00quqRt\x91\x12\xff\x97\x14Z\xc4x\
+p\xdc\x8fw\xf7\x1ew\xef\x00\xa1Qe\x9a\xd55\x06\
+h\xbamfRI1\x97_\x11C\xaf\x08#\x82^\
+\xc4\x11\x93\x99e\xccJR\x1a\xbe\xe3\xeb\x1e\x01\xbe\xde\
+%x\x96\xff\xb9?GD-X\x0c\x08\x88\xc43\xcc\
+0m\xe2u\xe2\xa9M\xdb\xe0\xbcO\x1ceeY%\
+>'\x1e5\xe9\x82\xc4\x8f\x5cW<~\xe3\x5crY\
+\xe0\x99Q3\x9b\x99#\x8e\x12\x8b\xa5\x0eV:\x98\x95\
+M\x8dx\x928\xaej:\xe5\x0b9\x8fU\xce[\x9c\
+\xb5j\x8d\xb5\xee\xc9_\x18.\xe8\xcbK\x5c\xa79\x84\
+\x14\x16\xb0\x08\x09\x22\x14\xd4PA\x156\x12\xb4\xea\xa4\
+X\xc8\xd0~\xd2\xc7\x1fs\xfd\x12\xb9\x14rU\xc0\xc8\
+1\x8f\x0dh\x90]?\xf8\x1f\xfc\xee\xd6*N\x8c{\
+I\xe1$\xd0\xfd\xe28\x1f\xc3@h\x17h\xd6\x1d\xe7\
+\xfb\xd8q\x9a'@\xf0\x19\xb8\xd2\xdb\xfe\x8d\x060\xfd\
+Iz\xbd\xad\xc5\x8f\x80\xfem\xe0\xe2\xba\xad){\xc0\
+\xe5\x0e0\xf8d\xc8\xa6\xecJA\x9aB\xb1\x08\xbc\x9f\
+\xd17\xe5\x81\x81[\xa0o\xd5\xeb\xad\xb5\x8f\xd3\x07 \
+K]\xa5o\x80\x83C`\xa4D\xd9k>\xef\xee\xe9\
+\xec\xed\xdf3\xad\xfe~\x00a\xaer\xa0\xbc\xa9O\xc0\
+\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\
+\xa7\x93\x00\x00\x00\x09pHYs\x00\x00.#\x00\x00\
+.#\x01x\xa5?v\x00\x00\x00\x07tIME\x07\
+\xe7\x0c\x0d\x09$9Q3\xe6g\x00\x00\x00\x19tE\
+XtComment\x00Create\
+d with GIMPW\x81\x0e\x17\x00\
+\x00\x09kIDATx\xda\xed]ilT\xd7\x19\
+=\xe7\xbe\x99\xb1\xcd\x1aC\xc0\xac\xb6\xb1\x81\xda\x1eC\
+T\x11\x10\xa4i\x135\x91\x12E\xa4KT\x14\xda&\
+$]\x14W(\xa9\x02\x81\x006\x84Q\xf0B\x96\x06\
+*D\xd5\xf6\x17\x0a\xaa\xda\x84F)R\xc2\xa2$\x85\
+&M\xd3\x85%\xc2cV\x8f1aKR\xb0qX\
+\xec\x99y\xef~\xfdAAN\xeb\xfb\xbc\xf0f\xf0x\
+\xe6\xfe\x9b\xf9\xde\xdc\xef\xbe{\xde\xf9\xb6{\xef\x1b\xa2\
+\x87\xad\xbc\xf9\x85Rh{'\x80\xf1\xc8\xb4\x844\x81\
+\x08{\x04F\xa4\xfav\xa1\xbcA\xa8\xfc\xcc\xb4%\x12\
+\x10\xe8n\x01\x09\x9e\xa8-\xa3-;AL\xc8LY\
+\xe2\x01Q\xdd1\x03\x8e\xb3=\x03F\xf2\x9a\x91!e\
+\xc7\xd6\x06\x95\xa5w\x00\x92\x01\xe3f3$\x18y~\
+&\xad\xf8\xb6\x0c\x18\xfd\x80!e'\xd6\x06\x95\xed\xec\
+\x043\xd1\xd4MgH0\xf2\xfcL\xda\xf6\xf6\x0c\x18\
+\xfd\x80!\xa5\x8d5\xe5\x16\xb1#\x03F?`H0\
+R7SQ\xb6e\xc0\xe8\x07\x0c)\xfd\xa4\xa6\x5c\xd9\
+\xd8I`\xdcM}:D\x84\x8a\xed\x10DE\xc4\x01\
+\x00\x92>\x00\xd9\x02\xc9\x22\xc8t`\x88O\xd9\xfam\
+B\xdd\x0c0: \xd8\x01\xca\x87\x8e\xb6\x22>\xb2\xd1\
+\xa6s\xae\xfdB\xbc}\xd8\xd8\xc1q\x00\xf8\xe2\xece\
+\x7fN\xae?'\x00=&\xae\xd5d\x05N\x15p6\
+!w\x01\x18:\x10A\xf1\x11jB\x12i\x00\x90{\
+\x04\xd8t\x99\xf1\xdf5\x17\x85.\xf4\xe0W\x17\x00\x9c\
+\x05\xb0\xffz\xc2\xdaT\x93G\xe1\x0f5\xf4\xcfHN\
+\x19P&\xab\xbc\xa9\xc6\x01\xa0\x92\x10=\xb4A\xb8(\
+\x90\x13{m\xef\xb8\xd0\x15/\xfa\x9c|\xec\xa9\xac,\
+k\xecRB\x9e\x060r \x98\xac\xe4\x00B\x1c\x12\
+\xc5\xef5\x14T\x1eLD\xf7\xc1\xc6\xda\xafQ\xc9\xab\
+\x00\x8az9\x03\xbfQ>l\xe9J\xe4h\xf5\x14E\
+\x7f;\xe9>$\x09Z\xc2v4\xfe\xe0\xe1\xd2Ps\
+\xa2T4L\xae\xfc\xb04\xb2\xe6~K\xa9w (\
+\xe8\xf9\xd0\xe4\xf0\x81\x82\x95\xefu]\xad\xa8y\x087\
+!\x8cP\x09\x06\xe3\x1c\xfc\xbe\x1f%\x12\x8ck\xedP\
+\xf1\xaacZ\xe1'W\x1dU\x0a;\xf5\xc4Z*\xd9\
+P\x9f\xbflOw\xd7\x956U\x17(\x8d\x87I\x94\
+\x80\x9c\x00\x91\x5c\x90\x1a@\xab\x10'\xe8H\x03rr\
+\xde\x0c\x8f\x7f\xe6\xa4[?\x07\x0b\xaa\xde\x9bv\xbc\xfa\
+%\x11<\x9b\x01\xe4\xff\xd1\x88\x5c\xa4\xfd\xa2\xdb%e\
+\x91\xd5\xf9\x14\xff*\x80?\xa6\xea\xc4\xd6N)\x07\x05\
+\x80\x22$\xda\xb1\xa6<R\xf3{;v\xa9\xeapi\
+\xddyS\x9f1\xcb\xffK\xbf\x1d\x7f\x14\xe0\xd8T\x04\
+$a&K\x93\xbfj\x9e\x14\xea0\xc9o;V\xf7\
+U\xa5\xb2vQ\xf1\xa7\xec\xc18\x08\x0c\x03Qae\
+\x0d\xf9\xdb\xb4\xa3!\xa3\xf3>\x92\xbf\xec\x8ch\xbc\x91\
+\xaa\x0cI\x0c \xe4yZ\xd9\x9bL\xe2\xf2\xa6\xf5y\
+\xb6\x92\xcd\x10)\xea=\xf10U\xfc\xfe\xcd\x08\x85\x8c\
+c\x8f_\xb17^\x0dZ2\x80\xfc\xd7\x99\xebm\x0d\
+\x13\x17\xb7\x98\xf1\xbaRAJ\xf0\x06\x82\x85;\xca\x17\
+\xf8\x17\x99\xc4G\xa7\x87\x0e\x83\xf8G\x06\x90k\x13\xae\
+\xf5\x9fM\xb2\x92C+F\x8a\xc8\x93\x1e\xa8y\xa4\xac\
+!\x140\x9aL-[3N\xfd*\x1cq\xfa\xf8\x17\
+\xa3B\xdf\xe0\x07\x00\x8c\xf2\x80\x86\xb7I\x8eo6\x80\
+\xf7\xbb\x1c\x85e\xfd\x13Z\x0b:/\xc2i\xfc\x09\xc4\
+\xc7\xd7>Z\x1a\x7f7>\xa9\x16\xdf\x16G>7j\
+W\x14\x8a~\x04\xf0\xb6t\x93\x00@t\xd3C\x05\xce\
+\x89\x03&\xb1\x85\xbb\xbcrT\x8ab\x04$\x1e\xf5\x1f\
+\x08\xf8;\xda\x00\xder}\x12\xfd\xd6\x9b\x0d\x05\xcb_\
+\xedI\xef\xf5\x85\x95\xdb\x00ls\xad\x104U\xcf!\
+0\xa5_\x9b,R\xed\x0b1\xa4]\xae\xb8\xd3\xbb\xc8\
+\x9a\xb3\x8d~d\xea\x92\xf3\x00\x1b\xd3\xde\x87h\xc8'\
+&\xd9\xf4OC\xa3\x05\xe2\xd9\x13%\x22s\xdc\xb2R\
+\x11}4\xed\x01\x11\x91SFY{\xa0\x94\xa0\xf2\x8e\
+\x8d\xcc\x9bu\xa8\xd6\x5c\xe5U\xea\xb3\xb4\x07\xc4\xd2f\
+@\xe8\xa0\xd0[\xf4\xc1+\x01=\xc9\xa8O\xe4\x5c\xda\
+GY\x9a\xbe\xd3\xc6\xf9\xf3#\x0f\x8e\xe7\x9c\xcc\x07`\
+\xa8\x97\xa9\xcf:\xe7\x87t\xf4\xbc`\xa4\xfaz\xfe#\
+\xd4o\x1d,z\xee\x83.\x93\xd7\xc6\xba\xef\x0a\x9d\xd9\
+\xdd\xf8\xcb\xa9^\xd72\xbd\x8f\xb2\x02h5\x82e\xcb\
+\x08\xafW\xc6\x85j\x84\x0b\x83Z\xbf\x5cB\x97\xb9$\
+\xe7v\x8a]\xcf\x02\xf8\xa0\xeb~\xf5\xbd$\x17vc\
+\x9fS\xc0\x87\xd8\xd1K.\xda\x02\xdeW\x05d\x88Q\
+\x9dO\xda\xd2\xdc\x87\x88\x040\xbc\xc3E\xec\xf7\x1c\x0f\
+ \xdbl?}\x97\xd3\x1a\x10\x01\xe5\x92\xdd\xe6\x96\x83\
+x\xbe\x06G*\xa3\xd9\xb5\xe3\x8e\xa49C2\xad_\
+\x01B\x08\x87\xf8\xdc\xfaL\x80\x17\x14\x89\x1bo.\xa0\
+\xac4g\x08\x19s\xb3\xe9.\x93\xd7\xf7\xca\x806\xfb\
+,mv\xf8\xe9\x93\xa9kk\xa8\x99A\xaa\xc3\xf3D\
+JY_\x98}\x9a=,\xed\x01\xf1Y\xd6\xad.6\
+\xad\xd5\xfb[\xd0-.\xa3\xb9%\xc3\x10\xcaD\x17\xf1\
+Y\xaf\xf5\xd96O\x9a\xf1\xd7y\x99(\xcb\x11\xe3\xd1\
+ij\xe7\x90\xb7a\xb68\x83\x06\xc7\x8d\xd5e\x0ao\
+\xcd\x00\x224n\xde\x0e\x0c\xca;\x04 \xe6]T\x87\
+S{\xc7\xae>o\x1e\x8a\x1e\x9f\xf6\x80\x08\xcd\x15\xdd\
+\xbd\xe3*\xae@\xe4\x80\x87q\xf6>\x90]\x87\xd2\x12\
+R\x04K\xd3\x1e\x10\x12\xe5\x85\xc7C\xd9.\x80\xed\xf0\
+L\x97\xa6qgIY\xf3\xa0\xd1\x00\x8a3&K$\
+?K0\xd5\x05\xb1\xbfz\xe4@lZx\xc7\x18_\
+\x89=K\x80\x9c\xbe\xa3-z`\x00\x02\xfa\x03\xf0\x1b\
+\xd7\x11\xa2\xf6\xa7\xbb\xa9e\xbf\x07\xd1\xdc\xbb\x07\x0a*\
+\xf7\xbb\xc8\xef\xe8\x9e\xcdb\xb9\x00~e\x80\x00\x02\x80\
+\xf8\x8eI\xd48eCT,\xeb\x85\x1b\x84#F\x91\
+\x8d&\xffQ&\xa1\x80\x80\xdd\x9e\xed\xd0B\xbf\x8b\xe9\
+m\x1b0\x80\x88\xe0\xbe\x92\xb3uF\xe7\x1e\x9e\xb4\xe2\
+5\x81\xbc\xd2wk\xc5\x17\xc2\xc5\xab\xde2\xdeTS\
+`.DJ\xba\xbfy\x0e3\x97dxn\xe00\x04\
+P\xbev\xbd\xd8\xed\x82\xecI\xa3\x96\x8b\xc8\x22\x11\xb9\
+\xd8\x0b\xea}\x0e\x8d\x9f7\x14U=g\xbc$\x14R\
+\xa0<\xdeC\xb3g<\xec\xaa\xc4\xb7\x0f\x80=P\x00\
+\x01\xc0\x87\xbf\xd2\xbc\xc6\xb8\x01a/+\xe2\x0d\xc5+\
+\xd7S\x10\xa4\xe23B\xd9!W7%H\xa7\xc4O\
+@i\x01e\x1b\xa1\x9f\xd4\xa2f\x86'Wmp\xd3\
+\x1a|\xd4?\x1f\x90\xb9=\xb3\xac,7\xb2\xb8x\xd9\
+\x1e\x00\x95\xc0\x97\xcb=\x22\x22\x00\xa2\x22\xb8\xe8eN\
+u}L\x09=c(\xfcC\xb8\xb8\xf2\xfb\xbd\xb0u\
+\xaa\xe4t].cz\x88\x95\x95\xa3y>v\xa9~\
+Z\xb4\x0d\xae\x1b\xef:\xf9\x8e\xc8\xea|K\x05v\x8b\
+`R\xcfL\x1f:Z\xb3\xe3#\xcf\xb8\x1cB\x9ds\
+rQN\x8b3b\x8c\xdf\x1ed\xfb%\xda\x11\x8d\xc5\
+\xda\x01\xc4\x0en\x81]\xbe\xc0\xbf\x0b\xc07\xbc\xab<\
+$\xe1\xd0\xa7\x08\x167\x14W\xadK4\xd5g\x9c\x09\
+\x0d\x8av\xf8\xdf\x050\xa7w&B\xcf;P\xb4\xea\
+\x8f}\xd1\x19l\xaa\xddJ\xc8\xb7\xbc\x04$\xf1\xc7\xa1\
+\x89\x9a\xe9\xc7\xea\x16&RGis\xcd\xd8h\xbbo\
+ko\xc1\x00\x00\x07j\xfe\x0d\xa4*\x17\xbd\xbe\x97d\
+,\xe1\xe6hKo\x9c\x16\xa9]7\xbd\xf1\xa5\xd1^\
+w^r\xaav\xa4%\xb2\x1d\xe4\xbd}\x8b\xd0\xf1`\
+\xb0y\xcd7\xfb6{LI@\xaeE4Ok+\
+\xf6Q0R\xbdp\xc6\x99\x90gU\xd8\xc3\xe3W\xb4\
+@X\x7f\x03]\x04 \xd6\xe6\xe9\xc7\xeb\xee\xef\xf5/\
+\xb5\x8e\xa6\x96S7\xb7\x16@\xb6\x13|\x1fb}\xe4\
+\x14u\x1c9\xc8\x909b\x91y\x16\xb8\xc5\xb8\xe7\xb1\
+\xbc\xa9&\x0f\x90\x8f\x01\x8e\xe9{.\x8bvM\xbe\xae\
+\xb4\xf3\xfa\xf9\x9c\xd1\xbb\xcf\x8c\xab\xe8\xd2\xd1\xdf\xbd\xeb\
+n\xdf\xbf'\xdeWH\x89\xcf\x86\xa5*\xbc\xdc\xcd\x9f\
+\xbc79t?\x92\x8b\xa04\x0bp\x9a\x1am\xa2\xd0\
+\x01R(\xcc!0N(A\x08\xe6\x87\x8b\xaa\x8c\xb5\
+\xab\xe0\xf1\xea\xc7(\xdc\xe4\xd1\x88.\x028,\x82\x93\
+\x10}\x89\xca\x22\x94\xce\x15\x07\x93\x14Y(\xc0\xe0\xc4\
+LC\x7f\x01\xa4g\xcf\xf0\xbf\xe2g.\xdcs\xe4\xce\
+\x17\xbb\xb4\xdb3\xf6<\xe1\xef\xc8\xcd\xdfN\xf2\x1e\xa4\
+hKJ\x94\xe5\xe1pg\xfa\xf2\x86/0&\x9a\xb7\
+\xff6\xaeb\xbeE\x90\xe4g\xd7)\xe9\xd4=\xe1\x88\
+\x85\xba\x92\xe3\xa1B\x93\xbc\xbety=\xc8\xd5\x19@\
+\x92\xd7\x86\xfa$\xb0\xd6\x95G\xed\xb1_\x03\x08\xa7\xa2\
+\xb9\x22\xb8,\x05\xb7\x92\xca\xbci\xcd\xb5\x0f\x98\xa4\x0d\
+\xc1P\x8b\x80U\xa9\xf4\x12\x1a\x11\x11\xa5di\xb8\xa8\
+\xf2\xe5T\xdc\xdb\xabD\xcb\xcb3\xf6<\xd1\xe5Z\xc6\
+\xe4c\xb5\xa3D\xcb\x18\x08/\xa5\x06\x18\xd0\xb4\xac\xa5\
+\xf5\x85+_\x01\x12\xfc6\xa0DVKb\xb9\x05k\
+\x00,\xbf\xf6\xc5\xacS\xb5#\xdb\xa3\xfaY\x81\xfc \
+U\xdeU/\x22\x02\xc5%\xe1\xc2\x15\xebnvb\xe8\
+Ek\xd5\x96\xf5\xf5\xac\x98\x16[\xe11!*\x00\x19\
+\x9e:>C\x1c\x82\xcb\xc2EU\xbf\xe8\xfc}\xaa2\
+\x04\x00ri\xdb[c\x8a\xa3\xc9\xd4zC\xe9\xd55\
+\x15.\x0dwQ\x05Oe@@2\xe5\xb6\xf9\x08\xc4\
+!\xb9,\x5c\xd4\xf5\x92DJ\x03\x92r`\xb80#\
+U\xf3\x90\xd4\x05\x03\xe2(\xa8%\xdd-\xd6e\x18\x92\
+4f`I}q\xe5\xfa\x81\x96\xa9\xa7(3\xb0\xa4\
+\xa1x\xe5\xfa\x9e\x5c\xef\x03\xe4q\xe9\xc1\x9f\x83eZ\
+\x1f\x03\x0f\x9b-\xf5S\xcd{\xc8\xfe\xb7\xfd\x07:\xcc\
+\xccF\x8ay\xc7t\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x02\xed\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M24 40C1\
+9.5667 40 15.791\
+7 38.4417 12.675\
+ 35.325C9.55833 \
+32.2083 8 28.433\
+3 8 24C8 19.5667\
+ 9.55833 15.7917\
+ 12.675 12.675C1\
+5.7917 9.55833 1\
+9.5667 8 24 8C26\
+.8333 8 29.3167 \
+8.575 31.45 9.72\
+5C33.5833 10.875\
+ 35.4333 12.45 3\
+7 14.45V8H40V20.\
+7H27.3V17.7H35.7\
+C34.4333 15.7 32\
+.8167 14.0833 30\
+.85 12.85C28.883\
+3 11.6167 26.6 1\
+1 24 11C20.3667 \
+11 17.2917 12.25\
+83 14.775 14.775\
+C12.2583 17.2917\
+ 11 20.3667 11 2\
+4C11 27.6333 12.\
+2583 30.7083 14.\
+775 33.225C17.29\
+17 35.7417 20.36\
+67 37 24 37C26.7\
+667 37 29.3 36.2\
+083 31.6 34.625C\
+33.9 33.0417 35.\
+5 30.95 36.4 28.\
+35H39.5C38.5333 \
+31.85 36.6167 34\
+.6667 33.75 36.8\
+C30.8833 38.9333\
+ 27.6333 40 24 4\
+0Z\x22 fill=\x22#66708\
+5\x22/>\x0a</svg>\x0a\
+\x00\x00\x01\xb3\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M13.05 4\
+2C12.225 42 11.5\
+187 41.7062 10.9\
+313 41.1188C10.3\
+438 40.5312 10.0\
+5 39.825 10.05 3\
+9V10.5H8V7.5H17.\
+4V6H30.6V7.5H40V\
+10.5H37.95V39C37\
+.95 39.8 37.65 4\
+0.5 37.05 41.1C3\
+6.45 41.7 35.75 \
+42 34.95 42H13.0\
+5ZM34.95 10.5H13\
+.05V39H34.95V10.\
+5ZM18.35 34.7H21\
+.35V14.75H18.35V\
+34.7ZM26.65 34.7\
+H29.65V14.75H26.\
+65V34.7Z\x22 fill=\x22\
+#667085\x22/>\x0a</svg\
+>\x0a\
+\x00\x00\x01\xf7\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M9 39H11\
+.2L33.35 16.85L3\
+1.15 14.65L9 36.\
+8V39ZM39.7 14.7L\
+33.3 8.29998L35.\
+4 6.19998C35.966\
+7 5.63331 36.666\
+7 5.34998 37.5 5\
+.34998C38.3333 5\
+.34998 39.0333 5\
+.63331 39.6 6.19\
+998L41.8 8.39998\
+C42.3667 8.96664\
+ 42.65 9.66664 4\
+2.65 10.5C42.65 \
+11.3333 42.3667 \
+12.0333 41.8 12.\
+6L39.7 14.7ZM37.\
+6 16.8L12.4 42H6\
+V35.6L31.2 10.4L\
+37.6 16.8ZM32.25\
+ 15.75L31.15 14.\
+65L33.35 16.85L3\
+2.25 15.75Z\x22 fil\
+l=\x22#667085\x22/>\x0a</\
+svg>\x0a\x0a\
+\x00\x00\x1a\x93\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00J\x00\x00\x00H\x08\x06\x00\x00\x00Q\x18cz\
+\x00\x00\x01\x85iCCPICC prof\
+ile\x00\x00(\x91}\x91=H\xc3@\x18\x86\xdf\
+\xa6\x8a\x22-\x0ev\x10q\xc8P\x1d\xa4\x05Q\x11G\
+\xadB\x11*\x84Z\xa1U\x07\x93K\xff\xa0IC\x92\
+\xe2\xe2(\xb8\x16\x1c\xfcY\xac:\xb88\xeb\xea\xe0*\
+\x08\x82? \xae.N\x8a.R\xe2wI\xa1E\x8c\
+w\x1c\xf7\xf0\xde\xf7\xbe\xdc}\x07\x08\x8d\x0a\xd3\xac\xae\
+q@\xd3m3\x9dL\x88\xd9\xdc\xaa\xd8\xf3\x8a\x10\xc2\
+4\xc7\x10\x93\x99e\xccIR\x0a\xbe\xe3\xeb\x1e\x01\xbe\
+\xdf\xc5y\x96\x7f\xdd\x9f#\xac\xe6-\x06\x04D\xe2Y\
+f\x986\xf1\x06\xf1\xf4\xa6mp\xde'\x8e\xb0\x92\xac\
+\x12\x9f\x13\xc7L\xba \xf1#\xd7\x15\x8f\xdf8\x17]\
+\x16xf\xc4\xcc\xa4\xe7\x89#\xc4b\xb1\x83\x95\x0ef\
+%S#\x9e\x22\x8e\xaa\x9aN\xf9B\xd6c\x95\xf3\x16\
+g\xadRc\xad{\xf2\x17\x86\xf2\xfa\xca2\xd7i\x0d\
+#\x89E,A\x82\x08\x055\x94Q\x81\x8d8\xed:\
+)\x16\xd2t\x9e\xf0\xf1\x0f\xb9~\x89\x5c\x0a\xb9\xca`\
+\xe4X@\x15\x1ad\xd7\x0f\xfe\x07\xbf{k\x15&'\
+\xbc\xa4P\x02\xe8~q\x9c\x8f\x11\xa0g\x17h\xd6\x1d\
+\xe7\xfb\xd8q\x9a'@\xf0\x19\xb8\xd2\xdb\xfej\x03\x98\
+\xf9$\xbd\xde\xd6\xa2G@\xff6pq\xdd\xd6\x94=\
+\xe0r\x07\x18|2dSv\xa5 -\xa1P\x00\xde\
+\xcf\xe8\x9br\xc0\xc0-\xd0\xb7\xe6\xf5\xadu\x8e\xd3\x07\
+ C\xbdJ\xdd\x00\x07\x87\xc0h\x91\xb2\xd7}\xde\xdd\
+\xdb\xd9\xb7\x7fkZ\xfd\xfb\x01\xa7vr\xbc\xf6x\x14\
+.\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\
+\xbd\xa7\x93\x00\x00\x00\x09pHYs\x00\x00.#\x00\
+\x00.#\x01x\xa5?v\x00\x00\x00\x07tIME\
+\x07\xe7\x0c\x0d\x0d+\x19\xea\xccr\xbc\x00\x00\x00\x19t\
+EXtComment\x00Creat\
+ed with GIMPW\x81\x0e\x17\
+\x00\x00\x18jIDATx\xda\xed[y`T\xd5\
+\xd5\xff\xdd\xfb\xde\xac\x99}\xb2/da\x93E@P\
+\xb1\xdaZZ\xfd\x94-\xc8\xe2\x04\x14\xb7JK\xe5\xf3\
+\x0b&\x80\x88\xd5\xb6Q\x8b~\x22\x90\x80b-\xa2b\
+QI\x18\x11H \x91\x8a\x15k\xddQPY\x0ck\
+\x12\xb2'\x93\x99\xc9\xccd\x96\xf7\xde\xbd\xdf\x1f\x81@\
+\x08\x89Qh\xc1\xaf\x9c?g\xee\xbcw\xde\xef\x9d\xfb\
+;\xe7\xfc\xce\x1d\xe0\x92]\xb2Kv\xc9.Y\xaf\xcd\
+\x91\xb7O\xedpl\x10.6\xbf\xc8\xc5\xe2\xc8\xf4\xe7\
+\xf8H@~\x82s\x0c\x03\xe1!\x0a\xfa1\x04\xe9\x0f\
+\x85st\x15\x97\x80\x02\xe0X\xe2\x8f\xa7:\xed\xef\x08\
+\xf8o8\xa0=\xe3\xebVp\xaca\xb2\xb8\xd89\x8f\
+\xb4\xfcG\x02\xe5\xd8\xc0\x05\xda \xfd\x0f\x07\xfd=\x01\
+\xb7\xf7\xec%\xa9\x00g\x8f\x17e\xab_\xf9\x8f\x02j\
+\xc6Jy\x02'\xfc\x7f\x01\x0c\xfd>\xbf\xe3\xe0\xdf\x10\
+\x8aYE\xf7\xab?\xff\x7f\x0d\xd4\xa4\xa7\x03\x89:\xbd\
+\xfae\x007\x9f\xcbu8\xe7\xaf\x8bT\xf5\xc8\x1b\xff\
+C*\xff_\x015\xe9in\xd4F\xc9\x8f\x10\x86\x5c\
+\x10\xa8\xbb[\xa7\x84$\xb8\x0f\xd6B\xd0\xa9aJ\x8d\
+\x86\xa0V\xf5t\xd9V\x0e\xb6\xbc\xd1\xa5^\xbc3\x8f\
+\xc8?z\xa0\xb2V\x86o#Dx\x0e\xe0\xb6n#\
+Da\xf0V6\xc1_\xed\x02g\x1c\x00@U\x14\xa6\
+\x94\x18\x18R\xec \x84\xf4\xc8_DQ\xe6\x15>\xa0\
+\xd9\xf4\xa3\x04\xea\xd6\x95\xd2\xcfD\x82\xa5\x1c\xb8\xba\x87\
+-\x84`S+\xdc\x07\xeb\xc0d\xe5\xackD\xad\x1a\
+\x96~q\xd0E\x9b\xbekC~\xaa\x12Tw\xbf\xf6\
+\xdf\xa4\xfcG\x01\xd4\xac5\xdc\xe6o\x93\x0a@\xc8\x9d\
+=\xad\x0b{\xdb\xe0>T\x0f\xc9\x1f\xec\xd5u5\x96\
+(\xd8.K\x84\xa8U\x7f\x17\xe1\xbf\xc0\x15\xd5S\xce\
+\x1cRuQ\x025s%7)T\x9e\xc3\x81\x05\xe0\
+\x88\xee\x96\x87\x22\x12Z+\x9b\xe1\xaf\xf9ae\x911\
+\xd9\x0eC\xb2\x1d\xa2\xb6g\xfe\x22\x9c,PY\x847\
+\xd6\xddE\x02\x17\x0dP\x8e\x15\xd2X\x22`\x09\xe1\xb8\
+\xbc\xdb7-3\xf8j\x5ch\xadl\xea\xe0\xa1\x1fj\
+\x82F\x05sZ,\xa2\xe2-=?\x01A9!\xe4\
+\xd1\xc2\xfb\xc57/8P\xb3\xd7*s\xbd>\xb6\xa2\
+\xa75A\x97\x0f\xde\xa3\x8d\x90\x02\xa1\xf3\xba\xcdU\x06\
+-,\x19q\xd0\xda\x0c=p=`\x8c\xa2\x8b^\xfc\
+\x95\xf0\xf4\xb9\xdc\x8b\x9e\xab\xb3\xdc\xef\xbf\x22%^\x80\
+^wv\xcc\x99\xac\xa0\xad\xa9\xf5\xbc\x83\x04\x00\x92?\
+\x04_\x8d\x0b\xbc\x9bD\xa0\xd3\x12$\xc4P\xc0\xe7\x1b\
+p\xae\xf7\x12\xcf\xf5\x02\xfb\xfe~\x14q\xe96)\xed\
+\x8ax\xc1\xa0\x17\xa9\xdb\xc3 \x9d\xe67\x15\x05\xd8/\
+K\x82!\xc1\x0a\xcf\x91zDZ\x83\xe7'\x9a\xa2\xb4\
+\xb0\xf4\x8b\x87\xd6\x1a\xd5\xf5\xa1\x04\xc0f\xa6\xa0R\x84\
+\x1d\xfe\xb0\x96\xb9\xaa[\xc9\x05\x07\x0a h\xa8p\xab\
+\x9a\xab[\xa5\xb8t\x0bRG$ (\x11\xea\xf2\xb0\
+\xceY\xcb\xacG\xdc\xc8\x0c\x04\xea=\xf0\x1ci\x00\x93\
+~X\x8dHE\x0aC\xb2\x1d\xa6\x94h\x10\x81v\xe1\
+\x11\xb3\x91\xc2\xa8\xe7J\xcd\xfe&\xd4|\xdbDeI\
+\x11A\x08\xbf\xe0@q\xc2\x09\x01\x81\x22+\xaa\xdaC\
+.\xb8j[\x91:4NJ\xedkS\xb5x\x19|\
+\x81\xce>F\xc5[\xa0\xb5F\xc1_\xebFke\xd3\
+\xf7\xcbxIv\x18S\xa3!\xa8\xbb\xba\x1d\xa5#\xb0\
+[(\x9a\x8e\xb5(\x07\xf6\xd4\x139$\xd3\x19\xd7\xd7\
+`o\xa5\x11{+M\xb8\x08\x22\xea\x8c\xfa( \xe1\
+\xe0\xa7\xd5\xaa\xe3\x07\x9a\xe4!?M\x859^+6\
+63Dd\xde9k\xa5\xc7\x22*\xc1\x0a\xf7\xc1:\
+\x84Z|=^Sm\xd2\xc1\xda/\x01j\x93\xae\xeb\
+\x03\x88@\x9cM\x80\x1c\x0c\xc9{\xdf\xad\x15\xbc\x8d~\
+\xe1Z\xa1\x12aQ\xc4\xc8\x0c/v~c\x07\x01\xf8\
+E\x00\x14\xc5\xd9\xfc\x08\xb6\x86\xc5]\xa5\x07\x11\x93j\
+\x8e\xf4\x1b\x95\xa8\x0eC\x84\xdb\xcbp:\xef\x8aZ\x15\
+b\x86\xf5A\xd8\xdb\x86\x96\xf2Z\xc8m\xe1\xceWV\
+\x09\xb0\x0dL\x82\xd6n\xe8\xd2\xc6\x10\x02D[)t\
+*\x8e\xf2\x8f\xab\xe4\xe6*\x8fh\x89mC\xd2\xc00\
+\xa6T\xee\xc7\xb2\xc8O\xb1pmR\xfbZ\x8e\x8b/\
+\xa2\xce\xb4\xa6J\xaf\xba\xb9\xaa\x15\xa9\xc3b\x918(\
+\x16\xfe \xe0\xf6v\xe5\xaf\x84\xab\xfa\xc1_\xe3\x82\xb7\
+\xaa\x19\x5cV`H\xb1\xc3\x9c\x1a\x03Bi\xd7t\xaf\
+\xa7\xb0Y\x08\xea\xca]\xf8\xfa\xabz\xc8\x92\x22\x02\xc0\
+\xe8[\x8e\xe2\xc0G\x09x04\xaes\xe6\x05\xbb\xf8\
+\x81:\xd9\xd3U|\xd5\x80\xfa\xc3nd\x8cL@j\
+\x8a\x19\xcdn\x86@\x90wbbC\xb2\x1d\xfa8\x0b\
+\x00\x0e\xaa\xea\xea\x9aVC\x10k\xa3\x084\x07\xf0\xd9\
+\xa6*\x84\xdb\xa4N\xdf\xbf\xf3\xca`0\x99\x9e\xa5\x96\
+\x12\xd8\x85\x07J\x11\x9f\xe7\x824\x86\x00\xa9\xdf\xb54\
+\x14\x88`\xff\x07\x95\x88\xb2j1\xf8\xfa4XLj\
+4\xba\x14\x9c\x9e\x00\xa9J8k\xba\xb7[(\x88,\
+\xe1\xdb\x0f\xea\xe0\xaa\xf6vS\xb3\x9d\xb5,t\x83\x93\
+\xd7.\x8a\x16\xe6g\xd9\x87b\xd4\x11\xfaN\xc8\x13\x18\
+\xce\xe5\xde\xbf\xbc\xf8~v\xa4\x0f\x8bE\x88\x8b\xf0\xb6\
+v\xae\xbf\x00\x80\x12\xc0j\xa6\xd0\xab9\xaa\xbei@\
+Mys\xaf\xdb\x1f\x22P\xe8l\x86]A\x8f\xe7\x96\
+\x0f\x0bG\xd6^P\xa0&M\xcd\xb9\x8ed\xdc`\xd3\
+\xa5\x8e]\xc6\x81\xferH\x82\xf7h\x03\xda\x1a\xbd\xbd\
+w\x80\x12\xf4\xbd2\x11q\x196x\xfd\x1c\xa1\x08\xc0\
+\x19\xa0\xd5\x00V\x13Ec\x85\x1b\xc7\xf6\xd4A\x0a\xf6\
+\xbe\xee\xd2Z\xa3`\x1d\x98t\xa2q\xe6\xfb\xa5\xa3\xa5\
+\x8fJ\xc7w\x86J\xde,(\xfb\xc1\xfd\xe5\xb9\x005\
+h\xf4X_\xca\x15\xe3WP\x8dqTDj\xaf\xc2\
+\xf51&hLzH\xbe\x10\x98\xa4\xf4\x82\xc0\x80\x96\
+\x1a\x1f\x9a+\xbd0[T\xb0YE\x18t\x80\xec\x0f\
+\xe2\xdb\x0f\xabPw\xd0\x05v\x22J\x09%P\xa9E\
+0\x85u_F\xf4O\x809#\x0eTl\x7f4\x83\
+\x9e\xc6\x98-\xa6\x18_\xf9\xae%\xe5\xe5\x1fF.\xd8\
+\xd6\xbb\xf9\xd7\xdf\xbe\x9c:<a\xa6!\xce\xa8nv\
+3\x84#\xbc\x03\x80@\x83\x1b\xde\x8a&(!\xa9\xf7\
+\x0e\x11\x02\x10t\xd9b\xa2\x8a\x22q`4\x98\xc2P\
+}\xa0\xf9\x8cj]\x801\xc5\x0ec\xb2\xbd\xa3Z\xd7\
+\xaa\x09l\x16\x8a\xb0'\xc0\x8f|Q\xf7\xca\xf6\xd5\x03\
+f\xfd[\x9a\xe2\x89Y\xb9\x99\x9c\xf3.\xc0\xfaZB\
+d\xef\xcec\xea\x8a]\xc7\x11mP\x10k\xa3\x10\x84\
+\xf6W\x10\x15oE\xdc\x88t\x18\x12\xad=\xcb\xb9g\
+d\xc83A\x8a\xefgCB\x7f\x1b\xd4:\xb1\xcb\xab\
+5&\xd9\x10\x7fu_\x98Rc@\x04\x0a\x81\x021\
+V\x0a\xabNa\x15_TG\xbe\xdaq\x94\xfb\x5cm\
+g\xa7\x8e\xdbr\xc7\x8e\x1a5[u~\xb3\x1e'\xfa\
+\xcc\xacy\xaf\xdd2#\xf7\x85-\x85\xf9\x1f\x9c\xf6`\
+\x84\x10\x82\xfa#n4W\xb5\xca\xf1\xfd\xedH\x19\x1c\
+#\xb6I\x14\xeeV\x06A\xab\x82u@\x22\x8c)v\
+\xb8\x0f7 \xe4\xf2\xf5\xfa\x96\xf6d#\x0cV\x1d\xa8\
+H\xc1\x15\x8eHPF\x9b'\xdc\xa1x\x9a\xd3c\xa1\
+1\xeb;\xd6[M\x14\xe6(\xa0j_#\xaf\xf9\xb6\
+\x99&\x98\xfcj\xa3VDk[g,&e\xcd\xbf\
+^\x01\xbf\x1b2w~\xf1\xc5j\xe9\xbcr\xd4\xc1\xfd\
+\x1f\xef\x1b\xf3\xd3a%\x9e\x88\xe6\xa6\x81\x83G\xcfM\
+\xed{\xe5gG\xcb?\xf3\xa5\x0c\xb9o2\x01\x19\x01\
+\x00\x8cq\xda\xda\x14\xa0\xcdU^\x18\xcdj%!Y\
+G\x15\x05\x88H\x00U\x89\x88\x8a3C\x15\xa5\x85\xe4\
+\x0bv\xf0NO\x16\xdb\xc7\x02A-\x00\x1c\x08\xfa\x22\
+\xa8-w!\x12a\xb0\x0dJ\x82%=\xb6C\x16\xd6\
+k\x09\xe2\xec\x02B\xcd\xbe\xc8\xde\x7fT\xb0`u\xb3\
+@\xa1 \xff\xb7\xfbP^mD\x83[\xfb\xe5\xf1\x03\
+/\x14\xdf2c^J\xff!\xa3W3\x10\xbdMC\
+\xff\xe0\x5c\xbf\xfc\xc0\x0f\xe6\xa8\x89\x8e\xdc$\x86\xb0R\
+\xea|\xbe\xbe\xbb\x1f\x8d\x9d\x91\x93&*4\x1bP\x94\
+\x16vW\x02 \xdcq\xd6&6Z\x8b\x81\xa3\x93!\
+\x1a\xf4\x9d\xea%\xce\x18\x02u\x1ex\x8e5v\xab%\
+\x01@\x9f\xa1\xb1\xa0\x94\xa0j\x7f\xbb*jL\xb6\xc1\
+\xd4'\x16Dlg\x0c\x81\x02q\xd1\x02 EP\xfe\
+Q5<\x0d~P\x91\xe1\x09\xe1\x1d\xbc-\x0fDs\
+\xa2\x1d\x07\x8e\x1bA\x10*\xb2\x08\xeb?\x07H\x7fY\
+\xc6c\xdb\xdf*\xa8\xeb\xee\x9e\x93'\xe7X\x14\x9d \
+\x96\xac_\xd6\xdc#Pcg\xe4\xa4\x89\x8c\xe4\x82\x12\
+\xf7\xd6\xf5\xcb\x1e\xebI\xa2\x980}\xc1P\x9f\xf2_\
+\xaf\xcb<nX\x8f\xf5R\x7f;\xd2\x87\xc7#\xa4P\
+\xb4x\x19\xd8\x89`\x92\xc32|UM\xdd\xea\xe7\xa2\
+F\x80\x1cV\xa0\x8b5\xc3\xd6/\x1e\xf4\x84j@\x08\
+`5R\x18u\x1c\x87v\xd5\xa0\xf1\xa8\x1b\x9c\x03\xa3\
+\xc6\x1d\x83\x1c\x11 \xbc'\xe2+\x16\x0f\xe5\x04\x05\xab\
+H\xcd\xa1(\xf1ow\x96\x16\xae\xf8\xb4;\x1f\x07;\
+\x1c\xea\x0c\xd2'\x87\x83\xa5\x12\xae<\xbd\xd5\xb9\xb2\xaa\
+\x0bP\xe3o\x9f\x9f\x0a\xa6\x5c_ZX\xb0\xeeTd\
+-\xbc\x1a\x90\x9e\x86\xa0\xfcik\xe1\xcaw;\xed\xf1\
+I\x0b\x8d\x8aV\x9aJ\xb4\xd8\xe1\x0a\xdc\xb3\x98\x80\xdf\
+\xfd\x9dd\xa8\x11\x91<(\x06\xc9\x83b\xe0\xf5sx\
+|\xa7\xb6\x9e\x1c\x8c\xa0yo\x15\xa4@\xb8\x8b8g\
+\xed\x1f\x0f\x8d\xe5\x948g\xd4S\xd8\xad\x04\xf5\x87[\
+plw\x1d\xe4\xc8\xa9\x88\xec{E#*\xf7FC\
+\x96\xe8\x19\x09\x82\xbd\xa4a\x7f]`R\xd3\x89\x08y\
+\xb6\x14\x17\xbf\xdc\x89('d\xe5\xdeH\x81\xf9\x0cX\
+\xb6mC\xfe\x8eS\x810\x7f\xaa:\x12z\x7f\xd3\xa6\
+U\xae\x8e\x88\x1a\x9f\x95\x9bE9\xee\x0c3e\xde;\
+\x1bW\x1e:\xf9yfVn.\x07\x1f!F\xf0\xc7\
+\xcd\x9b\x0b*&N\x9f?\x93@\x99*+\xe4/T\
+\xe0\xd3\x82\xca\xa8)!~yL\xaf\x8bA\x83\x1a\xe9\
+#\x13`O6\xa3\xc1\xc5\x10\x0a\x9f\x0a\xd8\x90\xcb\x87\
+@\x83\x17 \x04\xfaX\x13tv\xe3\xa9\xc6Y\x0d\xc4\
+X\x05\xb4\xb5\xf8q\xf0\xd3\x1a\x04[\xc3\xbd/@\xc9\
+\xber=\xdd\xb5\x9b\x82?\xc79\x99\xc7)/\xdbZ\
+T\xb0f\x92#\xb7\x1f'\xe4I\x0e\xfew\x1d\xaf~\
+\xd9\xe9tF\x00`\xe2\xf4\x9c\x91\x9c\x93\xc7\x05NV\
+\x17;\x97\x17w\xd9zc\xc6\xe4i\x8d\xd1\xde<F\
+\x01U\x84\xbf\xb0ysA\x05\x00\xdc4eA\xacF\
+%?\xcaA\x86\x80\xe3\xb9\xad\xce\xfcMc\xc6\xe4\x89\
+;w\xe6\xc9\xe3\xb2r\xae\x8b\xb0Q\xeb\xc2HOg\
+\xdc\xd0k\xe7\xcd1Q\x18\xf4\xb3>P\x04\x15\x5c\xee\
+\xce\xfd^\xa7lC\xdb\xfb<\x15\x14\x1c\xdb]\x87\x86\
+c\xee\xefQ\x93\x85\xa1Ay\xb9\x06_\xe6\x96\xbdY\
+P\x06p\x02\x10\x9e9}\xc1-\xe0\xca\x03\x9c\xa0B\
+\x11\xcd9e\xaf\xe7\xb5\x02\x80\xc3\x91\x1d\xd3F\xc4\xf9\
+\x04\x90h\xc8\xbb\xe4\xf4\xc8#\xdd\x91\xb5\xc00\x8fp\
+ZQw\xd4\xff\xec\xe9)t\xf2\xe4\x1c\x8b\xac\xa1\x0f\
+\x83\xf3\x0cF\xe8\xf6\xd2\xc2\xa5/e=\x17\x99\xc9\x82\
+\x81\xb5\xad\xb5~\xc1_\xe3\x06\xbe\xc78*iP4\
+\xfa\x0c\x8aAP\x11\xe1\xf6\x9d\xe2/B\x00\x8b\x91\xc2\
+\xa8\xe5\xa8\xda\xd7\x88\x9a\xf2\xe6^e\xca\x93\x15|T\
+\x82\x0d\x86D\xbdG\xd4\xeb\xe7\x1fy\xf5\x81uI\xe9\
+Q\xd3\x18\xe5\xb7\x81\xd2}\xac5\xb4\xb2\xb4\xf4T\xb2\
+\x1a\x959[\x9f\xa0\x8f\x9a\x0b\xf0\xc1r\x18\x7fx\xfb\
+D\x80\xf4\xba2\x9f8c\xee\x0dP\xc4\x1c\x85\xf0\xd5\
+\xa3\x07\x9b\xb7}\xbe\xdf{'%\xb8\x81\x81?\xb5\xad\
+\xa8\xe0@fV\xcem\xa6A\x93\x17(1\xd7\x8d\xe4\
+'\xb0\x91C\x11\xb8\x0f\xd5!\xe4\xf2\xf7^\xc2P\x0b\
+\xe8;*\x11\xf1}m\x08\x8698\x07t\x1a\xc0]\
+\xef\xc7\xc1\x8f\xab\x11n\xeb}\xe7\xa1\xb1\xe8a\x1b\x90\
+\x08Q\xaf\xe9h\xac\xa9\xeb\xa3\xc3\xad\x07\x8a\x1f/)\
+\x5c\xb6n\xe2\xb4\x07\xfbC\x94\xf38\xc7\xdf\xb6m\xc8\
+\x7fuR\xd6\xbc_0\xce\xfe\x9b\x13a\xcd\xb6\x0d\xcb\
+\xb6\xff\xe0\x16&//\x8f\xee\xda\xef\x99\x03\x90\xe1\xe0\
+\xec\xdd\xad\xce\x15E\x9d\xe6z\xcfz^\xb6$\x9a~\
+\xe5\xf20\xf8\xdbNER[c+\xbcG\x1b \x87\
+z\xff\x90z\x93\x16\xd6D#\x08\x01\xbcM\x01\xf8\x9a\
+\xdb\xce\xd8\xaez\x08j\x01-5]\x8bV\x95N\x03\
+Sz\x0c\xf4\xb1\xe6S\xd7\xd3\x12\xd8\xcc\x94\xb5\xd6\xb5\
+\xbe\xf2\xe2\x03\x96_\x9f\xbe~|Vn\x16!\xb8\x9d\
+3|X\xea\xcc\x7f\xe6_\xde\xeb];u\xf7+\xe6\
+X\xc3\xed\xfd\xaeNV\x04\xbdF\xe7\xf2(\x88H'\
+\xeb%\x0e\x7fm\x0b|\xc7\x9b\xa1\x84\x7f\xf8\xc9\x9c(\
+\x8b\x16\x1a\xbd\x0a\xb6$#B\xfeH\xa7^\x8f\x88\x14\
+\xa6d;\x8c\xa91\x1dm\x92Z\x0d\xd8\xcd\x14\x92\xaf\
+\x8d\x1f\xdeU\xc7}M\x81W?z\xeb\x8a{/\xf8\
+\xb8\xca\xdb\x14P\x7fQz\x90\xc5gXy\xea\xb0X\
+\x22\x11\x15<^\x06\x09\x04\xc6d;t\xd1&\xb4V\
+4\xa2\xad\xc1\x0b\xce{\xcf_*\xad\x08\xbdI\x03[\
+\x92\x11L\xe1\xa7\x9a\xe6\x93\x11\x13k\x86)=\x16*\
+\x9d\xba\x83\xd7lf\x0a\xad\xa0\xb0\xea\xbd\xf5\xbc\xf6p\
+\x0ba\x92B/\xaaq\x158\xa7\xf5GZ\xe0\xae\xf5\
+)\x89\x03\xa3\x95\xf8\x016Uk\x1b!\xbe\x00\x87\xa8\
+U\xc1vY\x12\x0c\xc96x\x0e7 \xec\xe9\xdd\xb9\
+\x89\xc4~6\x08j\x01\x9cs\x10\x00\x8d\x15\x1e\xb4y\
+\xc3P\x1bu\xb0\xf4\x8d\x87\xc6r\xaa\xcf3\x1b\x08\xac\
+f\x8a\xe3{\x1bP}\xa0\x99\xca\x11\x05\xf7\xdcp\x1c\
+\xbb\x8e\x98\xb1\xb7\xe2b\x1cW\x05%\xe1\xd8\x9e:\xa1\
+\xee\xb0\x0b}\xafLTR\x12LB\xb3\x87\xa1-\xc8\
+\xa16\xe8\x10;\x22\x0dm\xf5\x1ex*\x1a\xbfS~\
+\xe1'\xc8\xc1u\xdc\x87\x90/\x0cY\xe1\xed\x873\x12\
+\xac \x94\x9c\xd0\xd1\x81h\x8b\x80\xa0\xbbM\xda\xb3\xbd\
+\x96\xf8\x9a\xdb\xc4\x1b\x85ChS\xa9\xd17>\x88\xd2\
+/b/\xeeqU\xc8\x1f\xc1\xbe\x9d\x15\x82%\xde\xc8\
+/\xbb&\x89\x98\xa2Tp\xb9\xdb\xe5^}\xbc\x05Z\
+\xbb\x11m\x0d^x\x8e\xd6w+\xef\x06\xbda\x04\x03\
+\x11\x04\xdc!\x18R\xec\x88I\x89\xee\xd0\xd4E\xa1}\
+\x5c%0\x19\xe5\x1fT\xa1\xa5\xd6\xa7\x8a\xe9\xe3\x83u\
+h\x04\xd7\x1d\xaa\xc4\x9f\xa5k\xf0\xfb\xd7\x0d?\x9eq\
+\x95\xa7\xdeG>\xd9\xfc-\x92\x07\xc5 mh\x0c\x02\
+\x92\x00\x97\x97\x81\xaa\x04\x18\x92m\xd0F\x1b\xe1=\xd6\
+\x80\xb6\x86\xae\xf2q\xd3q/\xb46\x03\xe2\xae\xea\x0b\
+\xd5\x89tO\x08`6PX\x8d@\xf5\xfe&T\xed\
+k\x84,\xb5\xd7W#n\xa8\xc2W\xef\xa5\xe0\xb1\xf0\
+\x8d?\xceq\x15\x00T\x1fhBs\x95\x07)\x83b\
+\xd0g@4\xbc\xbe\xf6~O\xd4\xaa`\x1f\x94\xdc\xae\
+W\x1d\xac\xeb8\xc4!\xea\xd5\xb0\xf6K\xe8t\xa4\xc7\
+\xa8oW-=5^|\xb2\xa3\x06\x913t\xf4\x1d\
+k\x07\xe3,\xda\x22\x08\xa8r\xee)\xeb\x1c\xed\xea)\
+{\x06\x08\x14\xdb\x09\x90\xf6}\xfa\xbdacR\xa16\
+\xe9P\xdb\xd8\xb9}\xe1\x0a\x03g\xbc\xd3\xd8J%\x02\
+16\x01,\x10\xc4\xa1\xcfk\xe1i\xec\xfd!:\x0e\
+\xd4sQ\xf8\xe5'E\x97\x1f\xb8\xa0\x11uE\xe6p\
+\x11L6\xc7\x86\x9b\xb0\xe7\xcb\x16\xb8<\xdf]/\x85\
+\xfc\x11|\xb6\xf5\x10\xe2\xd2\xcc\xc8\x18\x99\x88\xc8\x89q\
+\xbb\xa4\xb4\x8f\x99\xc8\x09\x8c(m\xaf\x87\xf4*\x86\xa3\
+\xbb\xabQ{\xa8\xf7\xc7\x19\x0dz\x8a\xd1\xd7\xc6\xc2\xad\
+\xb1\xb5IP\x91O\x8a.\xf0\xd6k\x0bJ\xf3\xef\xbf\
+Y\xb4\x8e\xee\x9b\x00\x97'\x1a\xafnl\xc0\xc62W\
+\xaf~\xdbP\xe1EC\x85\x17\x19#\xe2\x918\xc0\x0e\
+\x7f\x84\xb6O\x8fy{6\xb3\x18\x08j\xcb\x9b\xf0\xf5\
+7M\x90\xa5\xde\xed\x1eB\x80\x9f\x8f6c\xd1\x9c\x14\
+\x18\xa3\x04\xbc\xb7\x9fe\xbc\xf4\xbe\x94\x0d`\xce\xbfe\
+\xb80e\xca\x82\xd8\xb3}\xae3\xa8\x1e[\xf5\x8e\xb2\
+\xf1/\x7fW\xc0\x04\x15\xe6\xcdJ\xc6k\xf9\x031\xa4\
+\x7fT\xaf\x9d8\xba\xa7\x1e\xbbJ\x0e\x22\xd4\xe4\x81U\
+-\xc1\x1e\xa5\x00~?v\x95\x94\xe3\xc8\x97\xf5\x1d \
+\x09\x22\x85F\xd7\xfd,`\xf8 =\xfe\xfcD?,\
+^\x90\x06\x85\x08X\xfb\x0f\x86Wv\xb2\xf7\x94\xb0\xea\
+\xac\xc7\x12\xc7M\xcf\xee{\xde8j\xd2\x1d\x0f\x0cT\
+$\xb2\x88pb\xe4\xe0\xc7\xb9,\x15\x94\xbe\xb5\xaa\xe3\
+\xaf\x15\x99\xd3\xe7]\xc3\x81\x1c\xebe\xe3+Y\xdc\xf5\
+YY\xa3\x85\xb4_\x0e\xa60h\x81\xb7\xdfwcM\
+Q=\xea\x1a#\xe7\x9c\x0cD\x95\x80\xb4\x11q]Z\
+\x18\x00\x88\xb6\x8a\xf8\xf5\x8cxd\xde`GH\x02J\
+\xf70\xbc\xb3W)\x8f4~\xb3\xb1\xf1\xcb\xd7b\x14\
+N\x0b\xca\x9c\xcb\xf6\x9f\x5c\xefp\xe4\xdaB\x94\xcfa\
+\x0c\xfd\x08A\x1d\xe1\xf2\x8b%\xce\xe7\x8e\xfd \xa0&\
+O\xce\xb1DT\xf4^B\x90f\x12\xb4\x8b\xd7\xaf\x7f\
+\xb2a\xe2\xed\x0f\xf6\xe7\xb24\x1f\xa0\x9f\xe99\xdf\x1e\
+$\xec>\x80\xc8V\x8d\xb8t\xdd\xba\xa5\x81)3\x1f\
+\x9c\xa8\xc9\xb8%;~\xe05\x03\xa6]I\xd2~:\
+\x90\xa2-\xc8\xb0nS\x03\xde\xda\xee\x82?\xf0\xfd\x93\
+\x0f\xa1\x04\x89\xfd\xed\x105\x02T\x1a\x01\xa1@\x04\xd5\
+\xfb\xdb\x81\xd2i)\x1c\xe3\xa3q\xf7\xb4xh5\x04\
+\xdf\x1c\xe7X\xff\x11\xf3\x1c\xfe\xe6\x93j\xb9b\xdb\xd2\
+M\xaf?\xf5\xea\xa4I\xf7\x1ae\xad\xe9a\x01\x84B\
+\x91\xd6BP\xdf\xc4\xc1\xae&\x8a\xf0\xa7\x92\x8d\xcb\xbe\
+\xbd\xe9\xce\xfbbUa\xdd\x22\x01\xc4\x0dAY]\xbc\
+~EC\xaf\x80\x1a\xecp\xa8\xd3\x912\x0b`#\x04\
+\x82\xbf\x16o(\xf8\x10\x00~\xe2\xc8\xd5Y\x18\xb9\xac\
+l\xe3\xf2\xdd\x99Y9\x93\x01:\x81P\xe9\xf9\xe2\xc2\
+gw\xdf<\xfd\xfe\x91\x22W\xcd\xa6\x1c\xc7I\xb8u\
+\xa5j\xf8\xaf\xfb\xa9\xd5\xdam\xa3\xaf\x1a\x16?q\x04\
+%}\xe3\x08\xea\x1a#xiC=\xde~\xbf]\xdf\
+\xee\xdd\xb8\xca\x04\x83U\xdb1\xaeR\x14\x0e_s\x00\
+\x9e\x86\x00~>\xda\x8c;\xa7\xc4bP?=\x8e4\
+rl\xfa\x9c){\xf6|\xed\xd5\xb1\xc6\xc9\x87\x8f~\
+\xf2\xb9\xa1\xadu\x16\xe7,\x81I\xaaW\xca6?s\
+d\xc2\xd4\xdc\x0c\x22\xe07\x10\xc8\x8e\xad\x85\xcb\xdf\xbd\
+yZ\xee\x90\xe6\x8a\xc0\xc1\x93Z\xdb\xcd\xb7\xdd?D\
+T\xd4\xb3\x00\xb2w[\xd1\xb2W\xce\xec\x0f;\x015\
+nF\xf6\x15\x22\x13~\xcb\x18\xd9\xa9'\xd5N\xa7\xd3\
+\xa9\x00@\xe6\xad\xf3\xc7q\xca&\x11\x10?\xe7\x5c\xab\
+\x92#y\x9b6\xadr\x8d\x9b\x99m\xa2\xb2\xb0\x10\x5c\
+p\xcb\xb2\xef\x8d\xedo\xad\xae\x9b\xe0\xc8\x99\x03JF\
+1\x905\x833\x97)M\xae\x06\xe7O\x86D\xa7\xce\
+\xbcN\x80Q\x0b\xec\xfa\xc6\x8f\xd5o\xd4c\xdf\xa1\xef\
+N\xf1\xa9Cc!\xa8\x050\x99\xc1\xef\x0e\xa1\xf9\xb8\
+\x17}Su\x98{w\x02\xae\x1cfDD\x02\xde\xda\
+\xc5\xb0\xe3\xcb\x96\xe3\x01n\xb9\xab\xed\x1f\x0b\xea\x18!\
+\xd9\x9c\x93\xdd\xdb\x9c\xf9/\x8d\x9d\x91\x93\xa6b\xe4>\
+\x80\x8a\x11\xce\x9e\xdc\xee\xcco\xc9\xbcm~4g\xca\
+\xc3\x04\x82\x9f16\x94\x10\xf2\xd2\xd6\x0d\xcbKO\xd3\
+\xcf\xef\xa6\x84\x8f!\x84\xac*.\xcc\xdf\xd5\x09\xa8\x89\
+\x8e\xb9}\x00q\x11'Ju B\x9e\xdf\xb9\xb9\xc0\
+\x03\x00\x99\xb7\xe5\x0e\xe1\x0a\xf2@\xf0\x191\x07V\x95\
+\xac^\xdd6ujnFD\x85\xdf\x00\xd0\x81\xa3\x0f\
+\xa7d\xe9\xb6\xc2\xe5\x1fMt\xe4\xfc\x84\x80\xdc\xa3\x00\
+\x9bJ\x9d\xf9o\x8fsd\x0f\x16\x88\xf0\x18\x08\xf9\x22\
+i\xdc3\x95Q\x22\x16\xffb0I\x1f;\x9c\x82\x12\
+\xa0\xec\xbd\x16\xac\xd9P\x8f\xc6f\xa9\xc7q\x95,)\
+\xa8;\xd4\x02\xabI\xc0\xad\xe3\xa2\xe1\x98\x10\x03\xbd\x96\
+\xa2\xec+\x86\xed_\xf3\xa3m\x11\xb6\xb8n\xc7\xc3j\
+p>L&l\xc9\xdb\x85\x05\x15\x93\xa6\xcfs0\xce\
+o\x13\x80\xe7\xb7l\xc8\xdf1\xc9\xf1\xc0@\x85\x0a\x8b\
+\x08\xb8\x97p\xae\x85\x22\x14\x94l\x5c\xf6\xed\xec\xd9\xb3\
+U5n\xfd\xaf\x08\xc1U\x22\xc5\xe2\xcd\x85\xed\xca\xe6\
+\x09\x15\xf7^\x02>\x98\x04\xd9#\xc5\xc5+\x1a\xc8\xc9\
+Y\x9e \x10\xba\xa5p\xf9q\x00\xb8a\xca\xc3v\x9d\
+*2\x0b\xe0\x86\x88D\x9f\xfb\xdb\xa6\xa5\x8d]\xce\x1c\
+L\xbb\x7f\xc8\xf6\x8d\xab\xf6M\xbd}~jD\xe6\x0f\
+r\xa242\xd1Z`\x88\xec\x0b\x04y\x9f\xf9 J\
+\x9c\xa4`\xe9\xf6\xb7\x0a\xea&L\xcf\x19\xa4QG=\
+\xa2\x1f>\xab6.>%w\xc6\xb5T\xbc2\x9d\xc2\
+\xed\x95\xb1\xe5\x1d\x17^,\xac\xefV\xf9\x94%\x05Y\
+\xe3\xa3qoV<\x8cQ\x02\x0e\xd6q\xbc\xf6!\xe3\
+\x87k\xfck\x02\xbb\x96E\x0b\x01\xdf#\x9b6\x15\x1c\
+\x18;#'\x8d*\xc8\x11\x08\x91}\x8d\xbb\x17\x99L\
+W\xeb\x98F\xba\x97\x10\x0cP\xe4\xc8\x92\xd2\xb7VU\
+\x8ew\xe4\x8c(u\x16\xec9\xfb\x88\x8e\xce\xe1`j\
+I#>\xfa\xb7uK\x03'?\xf7\xd3\xb0\xf7\x9fo\
+\xfc\xd9\xdd\x85\xa3\xc6e\xe5\x5c'p\xba\x90P\xf2\xa7\
+\x92\xa2e\xdd\xfe\xd3r\xdc\xb8l\x8dh\x14\xe7\x03$\
+>\xc2y\xdevg~\xcb\xa4\xe993\x19\xe8\x14\x81\
+(\xcfl)\x5c\xf1\xe9\x98\xc99\x16\x83\x9a>\x03\xc2\
+\x9bi\xd0\xfbdq\xf1\xcb\xbe\x19\xf9\xc14\xb5V\x95\
+wy\x1f\xdc}\xe7u\x14q\xe6v\xfeZ\xfab\x0d\
+>\xd9\xdd\xda\xe9\x1e\x83\xfa\xea\x913+\x09C\x07\xe8\
+\xd1\x1a\x04^\xda\xa9\xe0\xcbc\xfc\xcd\x18\x8b\xf8P\xfe\
+LrtT\xe6l}\xbc\xce\x90\x0d\xf0>\x8c\xcby\
+e\xceg\x9bnq\xe4^\xce\x80<F\xe1\xdcV\x94\
+_8~\xea\xfd\xa9\x82\xa8\xcef\x04\x81\xab\x06\x99\x1f\
+\xcb\xcb\xcb\xeb\xb6\xf1\x9b4)\xb7\x1f\xd7\xf0\xa7\x89@\
+\x9e:}\xdbu\x9f\xf58'=\x0f>s\xa6\x82\x93\
+\xe9\x84\xd3g\xb7:\x97\xfd\xb3}\xac5o\x1a\xe7\xfc\
+A\x05\xda\xcc2\xe7SM\xe3\xa7\xde\x9fJ\x05\xf5\xfb\
+\x80r\xc7V\xe7\xca\x7f\x9ey\x8d9/\xf1\x81~I\
+.\xbaa0\x1d>\xf5J\x0a\xa3\x0e\xd8s \x80\xaf\
+\xf7\x07\x00\x02\x0c\xe9\xaf\xc3\xa8\xcb\x8d\x88\xc8@\xc9n\
+\x86w\xf6\xf1c\x01?\xbf\xf7\xb5l\xd5\xce.\xfe\xdc\
+>\x7f\x14\x95\x95\x22\xceC?\xdf\xea|\xa1\xe6F\xc7\
+Cf-\x09\xbfK\x08\x7f\xb1\xa4h\xc5_\x00`\xca\
+\xf4\x05C%\xae<N\x08^-)\xca\xdf\xf2/\xed\
+\xf5\xc6:\xe6\x0c\x14\x89\xf6)\x02\xea,\xd9\xb0l\xfd\
+YC\x98\x93\xc79\xc8\x97\xdb\x8a\x96\x17\xdc\xe8\x98\xdb\
+GK\xe8\xef\xc1P\xedo\xde\xb3x\xe7\xce\x9d]\xfa\
+\x9b\xd9/+sT\x94/\x1c?\x82\xa4\x8d\x1f\xde\xb9\
+\xfe\xfd\xaa\x92\xe3/\x7fW<A\x89>\xf6\xcb\xb4\xa6\
+\x17\xef\xba9>p\xe6x\xcd\x10\xeb]\x00\xf0t\x95\
+\xa4[\xb8i\xd3\x93-\x99\x8e\xdc;\x002Y\xa0\xe2\
+\xc2\xcdE\xcf\x1c\xe9\x02jV\xce\xbd\x00\xb9\x99E\xc4\
+\xdf\x95m\xee\xfa\xfd9\x035qz\xce\xf3`\xdcK\
+\xc3\x9a'\x8b\x8b\x97t{$e\xf2\x8cEi2\x0f\
+\x95\x10\xd0\x87K\x8a\x96o\x05\x80\x89\xd3\xe6\xf6\x87 \
+\xfcU\xe0X\xb2\xc5\x99\xdf\xe5\x9f\x9a\xab\xde\xe3\x86\x0f\
+\xf6\xcb\xf3\x93\xcc\xe4\xd11\x83\x89\xa8\x12\x80\xcf\x8e2\
+^\xd9L\xfe\xaa\x88B\xce\xda_\x11\xcf\xd9&D\x9c\
+\x09\x8fPB\x1f:I\x11\x99\xd3\xe7M\x04\xf8\x1f\x05\
+\xc2\x1d'\x89\xf9l6*s\xb6>!*\xeaa\xae\
+\x10\xc2\xfc\xd2\x13ee\xcf\x86\xcf\x1bP'\x07\x9e\xdd\
+n\xc7\x09s\xac\xd4\xa0\xcf\x01W\xe2|\x11,:\x99\
+9o\xbf}\x8e\xb5U\xd1<\x0a\x0e\x9f\xe2\xcbx\xaa\
+\xacln\xb7N-\xde\xc2\xe3\x0e7*\xd7\x1850\
+E\x10\xdc\xfe\xc2]\xc6\xc6\xee\xd6\xdes\xcf=\xda\xe6\
+\xa0\xed1\xce\xb9A\xa4\xe4\x7fO&\xa2)S\xee\x8b\
+\x8d\xa8u\xbf'\x9c\xb8\xfc*q\xcd\xce\xd7\x97Tw\
+\xcf\xb3+5=\xf9s^e\x961c\xc6\x88\xa6\xd8\
+Q3\x15\xb0_\x10EY\xbc\xf5\xc48~\xd4\xa8\xd9\
+\xaa\x84\x8c\xa8\xdf\x82\xf0\xab\x08\x17\xf3J\x9cK\x8f\xfd\
++t\xae\x89w>\xd4\x07\xe1\xf0\x13`d\xe7\xd67\
+\xf3\xd7\x9e\x94[\xc7\xde\xb1p\xa0\x18\x91\x1e\x22\x9c\xff\
+\xa3\xc4Y\xb0\xf6\x82\xeaQ\xe3fd_!0\xf1\x11\
+\xae\xf0\xd2m\x1b\x0b^\xee\xe8\xffn\xcd\xbd\x89S>\
+\x93\x02\xabOV\xf6\xffj\x9bp\xeb\xdck\x09\x11\x1e\
+\xa6`/\x16;W\x14\x9fJ<\x0f8\x08\xa7\xf7@\
+\x22\xbf\xdb\xbai\xf9W\x17\x06\xa8\x99\x0b\x93=\x11\xc9\
+\xf5\xb13?\x08\x00\xe3\x1c\xd9\x83E*\xce\x03#\xc7\
+J\x9c\xcb\x17\xe3\xdfl\xb3g\xcfV\xd5y\xa3~\xc3\
+\x19\x06\x10H+N6\xba?q\xe4\xeabDf\xea\
+\xae\x8f\xfb\xb7l\xbd\x8e\x1a\xc4\x91;V!d\x8c\x10\
+R\xf2\x8b\x8b\x7f\xb8C\xe7\xc3\xc69\xb2c\x04\xaaZ\
+\xc4\x99\xf2\xfe\xb6\xd3\xa2\xeb\xe2\xb0\xb3\x89\xd5\x17\xd8\xf2\
+\xf2\xf2(.\xd9%\xbbd\x97\xec?\xc0\xfe\x0f\x14\xd5\
+\xea\x92\xe4\xa3Oi\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x012\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M12.4501\
+ 37.65L10.3501 3\
+5.55L21.9001 24L\
+10.3501 12.45L12\
+.4501 10.35L24.0\
+001 21.9L35.5501\
+ 10.35L37.6501 1\
+2.45L26.1001 24L\
+37.6501 35.55L35\
+.5501 37.65L24.0\
+001 26.1L12.4501\
+ 37.65Z\x22 fill=\x22#\
+667085\x22/>\x0a</svg>\
+\x0a\
+\x00\x00\x04\x83\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M10.3929\
+ 26.4C9.73097 26\
+.4 9.16667 26.16\
+43 8.7 25.6929C8\
+.23333 25.2215 8\
+ 24.6548 8 23.99\
+29C8 23.3309 8.2\
+357 22.7666 8.70\
+71 22.3C9.17847 \
+21.8333 9.74513 \
+21.6 10.4071 21.\
+6C11.069 21.6 11\
+.6333 21.8357 12\
+.1 22.3071C12.56\
+67 22.7784 12.8 \
+23.3451 12.8 24.\
+0071C12.8 24.669\
+ 12.5643 25.2333\
+ 12.0929 25.7C11\
+.6215 26.1666 11\
+.0549 26.4 10.39\
+29 26.4ZM23.9929\
+ 26.4C23.331 26.\
+4 22.7667 26.164\
+3 22.3 25.6929C2\
+1.8333 25.2215 2\
+1.6 24.6548 21.6\
+ 23.9929C21.6 23\
+.3309 21.8357 22\
+.7666 22.3071 22\
+.3C22.7785 21.83\
+33 23.3451 21.6 \
+24.0071 21.6C24.\
+669 21.6 25.2333\
+ 21.8357 25.7 22\
+.3071C26.1667 22\
+.7784 26.4 23.34\
+51 26.4 24.0071C\
+26.4 24.669 26.1\
+643 25.2333 25.6\
+929 25.7C25.2215\
+ 26.1666 24.6549\
+ 26.4 23.9929 26\
+.4ZM37.5929 26.4\
+C36.931 26.4 36.\
+3667 26.1643 35.\
+9 25.6929C35.433\
+3 25.2215 35.2 2\
+4.6548 35.2 23.9\
+929C35.2 23.3309\
+ 35.4357 22.7666\
+ 35.9071 22.3C36\
+.3785 21.8333 36\
+.9451 21.6 37.60\
+71 21.6C38.269 2\
+1.6 38.8333 21.8\
+357 39.3 22.3071\
+C39.7667 22.7784\
+ 40 23.3451 40 2\
+4.0071C40 24.669\
+ 39.7643 25.2333\
+ 39.2929 25.7C38\
+.8215 26.1666 38\
+.2549 26.4 37.59\
+29 26.4Z\x22 fill=\x22\
+#667085\x22/>\x0a</svg\
+>\x0a\
+\x00\x00\x037\
+<\
+svg width=\x2224\x22 h\
+eight=\x2224\x22 viewB\
+ox=\x220 0 24 24\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M0 12C0 \
+5.37258 5.37258 \
+0 12 0C18.6274 0\
+ 24 5.37258 24 1\
+2C24 18.6274 18.\
+6274 24 12 24C5.\
+37258 24 0 18.62\
+74 0 12Z\x22 fill=\x22\
+#E6E6E6\x22/>\x0a<path\
+ d=\x22M15.5 12C16.\
+3284 12 17 12.67\
+16 17 13.5V14C17\
+ 15.9714 15.1405\
+ 18 12 18C8.8595\
+1 18 7 15.9714 7\
+ 14V13.5C7 12.67\
+16 7.67157 12 8.\
+5 12H15.5ZM15.5 \
+13H8.5C8.22386 1\
+3 8 13.2239 8 13\
+.5V14C8 15.4376 \
+9.43216 17 12 17\
+C14.5678 17 16 1\
+5.4376 16 14V13.\
+5C16 13.2239 15.\
+7761 13 15.5 13Z\
+M12 5.5C13.5188 \
+5.5 14.75 6.7312\
+2 14.75 8.25C14.\
+75 9.76878 13.51\
+88 11 12 11C10.4\
+812 11 9.25 9.76\
+878 9.25 8.25C9.\
+25 6.73122 10.48\
+12 5.5 12 5.5ZM1\
+2 6.5C11.0335 6.\
+5 10.25 7.2835 1\
+0.25 8.25C10.25 \
+9.2165 11.0335 1\
+0 12 10C12.9665 \
+10 13.75 9.2165 \
+13.75 8.25C13.75\
+ 7.2835 12.9665 \
+6.5 12 6.5Z\x22 fil\
+l=\x22#616161\x22/>\x0a</\
+svg>\x0a\x0a\
+\x00\x00\x00\xdf\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M18.9002\
+ 35.7L7.7002 24.\
+5L9.8502 22.35L1\
+8.9002 31.4L38.1\
+002 12.2L40.2502\
+ 14.35L18.9002 3\
+5.7Z\x22 fill=\x22#667\
+085\x22/>\x0a</svg>\x0a\
+\x00\x00\x01V\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M9 42C8.\
+2 42 7.5 41.7 6.\
+9 41.1C6.3 40.5 \
+6 39.8 6 39V9C6 \
+8.2 6.3 7.5 6.9 \
+6.9C7.5 6.3 8.2 \
+6 9 6H23.55V9H9V\
+39H23.55V42H9ZM3\
+3.3 32.75L31.15 \
+30.6L36.25 25.5H\
+18.75V22.5H36.15\
+L31.05 17.4L33.2\
+ 15.25L42 24.05L\
+33.3 32.75Z\x22 fil\
+l=\x22#667085\x22/>\x0a</\
+svg>\x0a\
+\x00\x00\x01f\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M24.45 4\
+2V39H39V9H24.45V\
+6H39C39.8 6 40.5\
+ 6.3 41.1 6.9C41\
+.7 7.5 42 8.2 42\
+ 9V39C42 39.8 41\
+.7 40.5 41.1 41.\
+1C40.5 41.7 39.8\
+ 42 39 42H24.45Z\
+M20.55 32.75L18.\
+4 30.6L23.5 25.5\
+H6V22.5H23.4L18.\
+3 17.4L20.45 15.\
+25L29.25 24.05L2\
+0.55 32.75Z\x22 fil\
+l=\x22#667085\x22/>\x0a</\
+svg>\x0a\
+"
+
+qt_resource_name = b"\
+\x00\x02\
+\x00\x00\x07\x84\
+\x00q\
+\x00t\
+\x00\x03\
+\x00\x00x<\
+\x00q\
+\x00m\x00l\
+\x00\x0c\
+\x0fN\xa7E\
+\x00C\
+\x00o\x00l\x00o\x00r\x00P\x00a\x00l\x00e\x00t\x00t\x00e\
+\x00\x05\
+\x00o\xa6S\
+\x00i\
+\x00c\x00o\x00n\x00s\
+\x00\x08\
+\x03\xc6T'\
+\x00p\
+\x00l\x00u\x00s\x00.\x00s\x00v\x00g\
+\x00\x0c\
+\x07\x11\xd4\xa7\
+\x00u\
+\x00s\x00e\x00r\x00M\x00a\x00s\x00k\x00.\x00s\x00v\x00g\
+\x00\x06\
+\x07\x87WG\
+\x00q\
+\x00t\x00.\x00p\x00n\x00g\
+\x00\x0a\
+\x08\xab\xd7\x87\
+\x00u\
+\x00p\x00d\x00a\x00t\x00e\x00.\x00s\x00v\x00g\
+\x00\x0a\
+\x0c\xad\x02\x87\
+\x00d\
+\x00e\x00l\x00e\x00t\x00e\x00.\x00s\x00v\x00g\
+\x00\x08\
+\x0b\x07W\xa7\
+\x00e\
+\x00d\x00i\x00t\x00.\x00s\x00v\x00g\
+\x00\x0e\
+\x05\x92p\xc7\
+\x00t\
+\x00e\x00s\x00t\x00s\x00e\x00r\x00v\x00e\x00r\x00.\x00p\x00n\x00g\
+\x00\x09\
+\x06\x98\x8e\xa7\
+\x00c\
+\x00l\x00o\x00s\x00e\x00.\x00s\x00v\x00g\
+\x00\x08\
+\x06\xb6W\xa7\
+\x00d\
+\x00o\x00t\x00s\x00.\x00s\x00v\x00g\
+\x00\x08\
+\x09\xc5UG\
+\x00u\
+\x00s\x00e\x00r\x00.\x00s\x00v\x00g\
+\x00\x06\
+\x07^Z\xc7\
+\x00o\
+\x00k\x00.\x00s\x00v\x00g\
+\x00\x0a\
+\x06\xc91\x07\
+\x00l\
+\x00o\x00g\x00o\x00u\x00t\x00.\x00s\x00v\x00g\
+\x00\x09\
+\x0e\x01\xbcg\
+\x00l\
+\x00o\x00g\x00i\x00n\x00.\x00s\x00v\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x0a\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x16\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x004\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x05\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00D\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x13\x96\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00.-\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00/c\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x01L\x00\x00\x00\x00\x00\x01\x00\x008\x08\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00Z\x00\x00\x00\x00\x00\x01\x00\x00\x00\xc4\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x01:\x00\x00\x00\x00\x00\x01\x00\x007%\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00x\x00\x00\x00\x00\x00\x01\x00\x00\x01\x5c\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xf3\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x01$\x00\x00\x00\x00\x00\x01\x00\x003\xea\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x11\x9b\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x0f\xe4\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x01f\x00\x00\x00\x00\x00\x01\x00\x009b\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/demos/colorpaletteclient/restservice.py b/examples/demos/colorpaletteclient/restservice.py
new file mode 100644
index 000000000..d334ecd03
--- /dev/null
+++ b/examples/demos/colorpaletteclient/restservice.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Property, Signal, ClassInfo
+from PySide6.QtNetwork import (QNetworkAccessManager, QRestAccessManager,
+ QNetworkRequestFactory, QSslSocket)
+from PySide6.QtQml import QmlElement, QPyQmlParserStatus, ListProperty
+from abstractresource import AbstractResource
+
+QML_IMPORT_NAME = "ColorPalette"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@ClassInfo(DefaultProperty="resources")
+class RestService(QPyQmlParserStatus):
+
+ urlChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_resources = []
+ self.m_qnam = QNetworkAccessManager()
+ self.m_qnam.setAutoDeleteReplies(True)
+ self.m_manager = QRestAccessManager(self.m_qnam)
+ self.m_serviceApi = QNetworkRequestFactory()
+
+ @Property(str, notify=urlChanged)
+ def url(self):
+ return self.m_serviceApi.baseUrl()
+
+ @url.setter
+ def url(self, url):
+ if self.m_serviceApi.baseUrl() != url:
+ self.m_serviceApi.setBaseUrl(url)
+ self.urlChanged.emit()
+
+ @Property(bool, constant=True)
+ def sslSupported(self):
+ return QSslSocket.supportsSsl()
+
+ def classBegin(self):
+ pass
+
+ def componentComplete(self):
+ for resource in self.m_resources:
+ resource.setAccessManager(self.m_manager)
+ resource.setServiceApi(self.m_serviceApi)
+
+ def appendResource(self, r):
+ self.m_resources.append(r)
+
+ resources = ListProperty(AbstractResource, appendResource)
diff --git a/examples/demos/documentviewer/abstractviewer.py b/examples/demos/documentviewer/abstractviewer.py
new file mode 100644
index 000000000..4039fe9fb
--- /dev/null
+++ b/examples/demos/documentviewer/abstractviewer.py
@@ -0,0 +1,185 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject
+
+from PySide6.QtWidgets import (QDialog, QMenu)
+from PySide6.QtCore import Signal, Slot
+from PySide6.QtPrintSupport import QPrinter, QPrintDialog
+
+
+MENU_NAME = "qtFileMenu"
+
+
+class AbstractViewer(QObject):
+
+ uiInitialized = Signal()
+ printingEnabledChanged = Signal(bool)
+ showMessage = Signal(str, int)
+ documentLoaded = Signal(str)
+
+ def __init__(self):
+ super().__init__()
+ self._file = None
+ self._widget = None
+ self._menus = []
+ self._toolBars = []
+ self._printingEnabled = False
+ self._actions = []
+ self._fileMenu = None
+
+ def __del__(self):
+ self.cleanup()
+
+ def viewerName(self):
+ return ""
+
+ def saveState(self):
+ return False
+
+ def restoreState(self, state):
+ return False
+
+ def supportedMimeTypes():
+ return []
+
+ def init(self, file, widget, mainWindow):
+ self._file = file
+ self._widget = widget
+ self._uiAssets_mainWindow = mainWindow
+
+ def isEmpty(self):
+ return not self.hasContent()
+
+ def isPrintingEnabled(self):
+ return self._printingEnabled
+
+ def hasContent(self):
+ return False
+
+ def supportsOverview(self):
+ return False
+
+ def isModified(self):
+ return False
+
+ def saveDocument(self):
+ return False
+
+ def saveDocumentAs(self):
+ return False
+
+ def actions(self):
+ return self._actions
+
+ def widget(self):
+ return self._widget
+
+ def menus(self):
+ return self._menus
+
+ def mainWindow(self):
+ return self._uiAssets_mainWindow
+
+ def statusBar(self):
+ return self.mainWindow().statusBar()
+
+ def menuBar(self):
+ return self.mainWindow().menuBar()
+
+ def maybeEnablePrinting(self):
+ self.maybeSetPrintingEnabled(True)
+
+ def disablePrinting(self):
+ self.maybeSetPrintingEnabled(False)
+
+ def isDefaultViewer(self):
+ return False
+
+ def viewer(self):
+ return self
+
+ def statusMessage(self, message, type="", timeout=8000):
+ msg = self.viewerName()
+ if type:
+ msg += "/" + type
+ msg += ": " + message
+ self.showMessage.emit(msg, timeout)
+
+ def addToolBar(self, title):
+ bar = self.mainWindow().addToolBar(title)
+ name = title.replace(' ', '')
+ bar.setObjectName(name)
+ self._toolBars.append(bar)
+ return bar
+
+ def addMenu(self, title):
+ menu = QMenu(title, self.menuBar())
+ menu.setObjectName(title)
+ self.menuBar().insertMenu(self._uiAssets_help, menu)
+ self._menus.append(menu)
+ return menu
+
+ def cleanup(self):
+ # delete all objects created by the viewer which need to be displayed
+ # and therefore parented on MainWindow
+ if self._file:
+ self._file = None
+ self._menus.clear()
+ self._toolBars.clear()
+
+ def fileMenu(self):
+ if self._fileMenu:
+ return self._fileMenu
+
+ menus = self.mainWindow().findChildren(QMenu)
+ for menu in menus:
+ if menu.objectName() == MENU_NAME:
+ self._fileMenu = menu
+ return self._fileMenu
+ self._fileMenu = self.addMenu("File")
+ self._fileMenu.setObjectName(MENU_NAME)
+ return self._fileMenu
+
+ @Slot()
+ def print_(self):
+ type = "Printing"
+ if not self.hasContent():
+ self.statusMessage("No content to print.", type)
+ return
+ printer = QPrinter(QPrinter.HighResolution)
+ dlg = QPrintDialog(printer, self.mainWindow())
+ dlg.setWindowTitle("Print Document")
+ if dlg.exec() == QDialog.Accepted:
+ self.printDocument(printer)
+ else:
+ self.statusMessage("Printing canceled!", type)
+ return
+ state = printer.printerState()
+ message = self.viewerName() + " :"
+ if state == QPrinter.PrinterState.Aborted:
+ message += "Printing aborted."
+ elif state == QPrinter.PrinterState.Active:
+ message += "Printing active."
+ elif state == QPrinter.PrinterState.Idle:
+ message += "Printing completed."
+ elif state == QPrinter.PrinterState.Error:
+ message += "Printing error."
+ self.statusMessage(message, type)
+
+ def maybeSetPrintingEnabled(self, enabled):
+ if enabled == self._printingEnabled:
+ return
+ self._printingEnabled = enabled
+ self.printingEnabledChanged.emit(enabled)
+
+ def initViewer(self, back, forward, help, tabs):
+ self._uiAssets_back = back
+ self._uiAssets_forward = forward
+ self._uiAssets_help = help
+ self._uiAssets_tabs = tabs
+ # Tabs can be populated individually by the viewer, if it
+ # supports overview
+ tabs.clear()
+ tabs.setVisible(self.supportsOverview())
+ self.uiInitialized.emit()
diff --git a/examples/demos/documentviewer/doc/abstractviewer.py.rstinc b/examples/demos/documentviewer/doc/abstractviewer.py.rstinc
new file mode 100644
index 000000000..4c040b956
--- /dev/null
+++ b/examples/demos/documentviewer/doc/abstractviewer.py.rstinc
@@ -0,0 +1,25 @@
+``AbstractViewer`` provides a generalized API to view, save, and print a
+document. Properties of both the document and the viewer can be queried:
+
+ * Does the document have content?
+ * Has it been modified?
+ * Is an overview (thumbnails or bookmarks) supported?
+
+``AbstractViewer`` provides protected methods for derived classes to create
+actions and menus on the main window. In order to display these assets on the
+main window, they are parented to it. ``AbstractViewer`` is responsible for
+removing and destroying the UI assets it creates. It inherits from ``QObject``
+to implement signals and slots.
+
+The ``uiInitialized()`` signal is emitted after a viewer receives all necessary
+information about UI assets on the main window.
+
+The ``printingEnabledChanged()`` signal is emitted when document printing is
+either enabled or disabled. This happens after a new document was successfully
+loaded, or, for example, all content was removed.
+
+The ``printStatusChanged`` signal notifies about changes in its progress after
+starting the printing process.
+
+The ``documentLoaded()`` signal notifies the application that a document was
+successfully loaded.
diff --git a/examples/demos/documentviewer/doc/documentviewer.png b/examples/demos/documentviewer/doc/documentviewer.png
new file mode 100644
index 000000000..750aca589
--- /dev/null
+++ b/examples/demos/documentviewer/doc/documentviewer.png
Binary files differ
diff --git a/examples/demos/documentviewer/doc/documentviewer.rst b/examples/demos/documentviewer/doc/documentviewer.rst
new file mode 100644
index 000000000..b21e3f43e
--- /dev/null
+++ b/examples/demos/documentviewer/doc/documentviewer.rst
@@ -0,0 +1,13 @@
+Document Viewer Example
+=======================
+
+A Widgets application to display and print JSON, text, and PDF files.
+
+Document Viewer demonstrates how to use a QMainWindow with static
+and dynamic toolbars, menus, and actions.
+
+
+.. image:: documentviewer.png
+ :width: 90%
+ :align: center
+ :alt: Document Viewer Example
diff --git a/examples/demos/documentviewer/doc/jsonviewer.py.rstinc b/examples/demos/documentviewer/doc/jsonviewer.py.rstinc
new file mode 100644
index 000000000..1ba92f247
--- /dev/null
+++ b/examples/demos/documentviewer/doc/jsonviewer.py.rstinc
@@ -0,0 +1,11 @@
+``JsonViewer`` displays a JSON file in a ``QTreeView``. Internally, it loads
+the contents of a file into a data structure via a string and uses it to
+populate a custom tree model with JsonItemModel.
+
+The JSON viewer demonstrates how to implement a custom item model
+inherited from ``QAbstractItemModel``.
+
+``JsonViewer`` uses the top-level objects of the document as bookmarks for
+navigation. Other nodes (keys and values) can be added as additional bookmarks,
+or removed from the bookmark list. A ``QLineEdit`` is used as a search field to
+navigate through the JSON tree.
diff --git a/examples/demos/documentviewer/doc/mainwindow.py.rstinc b/examples/demos/documentviewer/doc/mainwindow.py.rstinc
new file mode 100644
index 000000000..976443ceb
--- /dev/null
+++ b/examples/demos/documentviewer/doc/mainwindow.py.rstinc
@@ -0,0 +1,11 @@
+The ``MainWindow`` class provides an application screen with menus, actions,
+and a toolbar. It can open a file, automatically detecting its content type. It
+also maintains a list of previously opened files, using ``QSettings`` to store
+and reload settings when launched. The ``MainWindow`` creates a suitable viewer
+for the opened file, based on its content type, and provides support for
+printing a document.
+
+``MainWindow's`` constructor initializes the user interface created in Qt
+Designer. The ``mainwindow.ui`` file provides a ``QTabWidget`` on the left,
+showing bookmarks and thumbnails. On the right, there is a ``QScrollArea`` for
+viewing file content.
diff --git a/examples/demos/documentviewer/doc/viewerfactory.py.rstinc b/examples/demos/documentviewer/doc/viewerfactory.py.rstinc
new file mode 100644
index 000000000..1627a576b
--- /dev/null
+++ b/examples/demos/documentviewer/doc/viewerfactory.py.rstinc
@@ -0,0 +1,3 @@
+The ``ViewerFactory`` class manages viewers for known file types. It loads all
+available viewers on construction and provides a public API to query the loaded
+plugins, their names, and supported MIME types.
diff --git a/examples/demos/documentviewer/documentviewer.pyproject b/examples/demos/documentviewer/documentviewer.pyproject
new file mode 100644
index 000000000..461e3b9d7
--- /dev/null
+++ b/examples/demos/documentviewer/documentviewer.pyproject
@@ -0,0 +1,14 @@
+{
+ "files": ["abstractviewer.py",
+ "documentviewer.qrc",
+ "main.py",
+ "mainwindow.py",
+ "mainwindow.ui",
+ "jsonviewer/jsonviewer.py",
+ "pdfviewer/pdfviewer.py",
+ "pdfviewer/zoomselector.py",
+ "txtviewer/txtviewer.py",
+ "recentfilemenu.py",
+ "recentfiles.py",
+ "viewerfactory.py"]
+}
diff --git a/examples/demos/documentviewer/documentviewer.qrc b/examples/demos/documentviewer/documentviewer.qrc
new file mode 100644
index 000000000..0aeeac229
--- /dev/null
+++ b/examples/demos/documentviewer/documentviewer.qrc
@@ -0,0 +1,42 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="demos/documentviewer">
+ <file>images/copy@2x.png</file>
+ <file>images/copy.png</file>
+ <file>images/cut@2x.png</file>
+ <file>images/cut.png</file>
+ <file>images/go-next-view@2x.png</file>
+ <file>images/go-next-view-page@2x.png</file>
+ <file>images/go-next-view-page.png</file>
+ <file>images/go-next-view.png</file>
+ <file>images/go-previous-view@2x.png</file>
+ <file>images/go-previous-view-page@2x.png</file>
+ <file>images/go-previous-view-page.png</file>
+ <file>images/go-previous-view.png</file>
+ <file>images/magnifier@2x.png</file>
+ <file>images/magnifier.png</file>
+ <file>images/open@2x.png</file>
+ <file>images/open.png</file>
+ <file>images/paste@2x.png</file>
+ <file>images/paste.png</file>
+ <file>images/print2x.png</file>
+ <file>images/print.png</file>
+ <file>images/qt-logo@2x.png</file>
+ <file>images/qt-logo.png</file>
+ <file>images/zoom-fit-best@2x.png</file>
+ <file>images/zoom-fit-best.png</file>
+ <file>images/zoom-fit-width@2x.png</file>
+ <file>images/zoom-fit-width.png</file>
+ <file>images/zoom-in@2x.png</file>
+ <file>images/zoom-in.png</file>
+ <file>images/zoom-original@2x.png</file>
+ <file>images/zoom-original.png</file>
+ <file>images/zoom-out@2x.png</file>
+ <file>images/zoom-out.png</file>
+ <file>images/zoom-previous@2x.png</file>
+ <file>images/zoom-previous.png</file>
+ <file>images/document-open-recent.svgz</file>
+ <file>images/go-next.svgz</file>
+ <file>images/go-previous.svgz</file>
+ <file>images/help-about.svgz</file>
+</qresource>
+</RCC>
diff --git a/examples/widgets/mainwindows/mdi/images/copy.png b/examples/demos/documentviewer/images/copy.png
index 2aeb28288..2aeb28288 100644
--- a/examples/widgets/mainwindows/mdi/images/copy.png
+++ b/examples/demos/documentviewer/images/copy.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/copy@2x.png b/examples/demos/documentviewer/images/copy@2x.png
new file mode 100644
index 000000000..f4ebabba1
--- /dev/null
+++ b/examples/demos/documentviewer/images/copy@2x.png
Binary files differ
diff --git a/examples/widgets/mainwindows/mdi/images/cut.png b/examples/demos/documentviewer/images/cut.png
index 54638e938..54638e938 100644
--- a/examples/widgets/mainwindows/mdi/images/cut.png
+++ b/examples/demos/documentviewer/images/cut.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/cut@2x.png b/examples/demos/documentviewer/images/cut@2x.png
new file mode 100644
index 000000000..5a5da4fd3
--- /dev/null
+++ b/examples/demos/documentviewer/images/cut@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/document-open-recent.svgz b/examples/demos/documentviewer/images/document-open-recent.svgz
new file mode 100644
index 000000000..3b6eaf978
--- /dev/null
+++ b/examples/demos/documentviewer/images/document-open-recent.svgz
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-next-view-page.png b/examples/demos/documentviewer/images/go-next-view-page.png
new file mode 100644
index 000000000..bd2a33836
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-next-view-page.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-next-view-page@2x.png b/examples/demos/documentviewer/images/go-next-view-page@2x.png
new file mode 100644
index 000000000..5ddcbbcc9
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-next-view-page@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-next-view.png b/examples/demos/documentviewer/images/go-next-view.png
new file mode 100644
index 000000000..98b79dea3
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-next-view.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-next-view@2x.png b/examples/demos/documentviewer/images/go-next-view@2x.png
new file mode 100644
index 000000000..919406437
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-next-view@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-next.svgz b/examples/demos/documentviewer/images/go-next.svgz
new file mode 100644
index 000000000..c6dc7d0f4
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-next.svgz
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-previous-view-page.png b/examples/demos/documentviewer/images/go-previous-view-page.png
new file mode 100644
index 000000000..ecd3768ef
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-previous-view-page.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-previous-view-page@2x.png b/examples/demos/documentviewer/images/go-previous-view-page@2x.png
new file mode 100644
index 000000000..f0d91c9f1
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-previous-view-page@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-previous-view.png b/examples/demos/documentviewer/images/go-previous-view.png
new file mode 100644
index 000000000..086bd9a1c
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-previous-view.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-previous-view@2x.png b/examples/demos/documentviewer/images/go-previous-view@2x.png
new file mode 100644
index 000000000..900860ce0
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-previous-view@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-previous.svgz b/examples/demos/documentviewer/images/go-previous.svgz
new file mode 100644
index 000000000..971b1d989
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-previous.svgz
Binary files differ
diff --git a/examples/demos/documentviewer/images/help-about.svgz b/examples/demos/documentviewer/images/help-about.svgz
new file mode 100644
index 000000000..001aa7f2f
--- /dev/null
+++ b/examples/demos/documentviewer/images/help-about.svgz
Binary files differ
diff --git a/examples/demos/documentviewer/images/magnifier.png b/examples/demos/documentviewer/images/magnifier.png
new file mode 100644
index 000000000..6eb457d90
--- /dev/null
+++ b/examples/demos/documentviewer/images/magnifier.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/magnifier@2x.png b/examples/demos/documentviewer/images/magnifier@2x.png
new file mode 100644
index 000000000..ed84af187
--- /dev/null
+++ b/examples/demos/documentviewer/images/magnifier@2x.png
Binary files differ
diff --git a/examples/widgets/mainwindows/mdi/images/open.png b/examples/demos/documentviewer/images/open.png
index 45fa2883a..45fa2883a 100644
--- a/examples/widgets/mainwindows/mdi/images/open.png
+++ b/examples/demos/documentviewer/images/open.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/open@2x.png b/examples/demos/documentviewer/images/open@2x.png
new file mode 100644
index 000000000..12c2c3c1d
--- /dev/null
+++ b/examples/demos/documentviewer/images/open@2x.png
Binary files differ
diff --git a/examples/widgets/mainwindows/mdi/images/paste.png b/examples/demos/documentviewer/images/paste.png
index c14425cad..c14425cad 100644
--- a/examples/widgets/mainwindows/mdi/images/paste.png
+++ b/examples/demos/documentviewer/images/paste.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/paste@2x.png b/examples/demos/documentviewer/images/paste@2x.png
new file mode 100644
index 000000000..360b0f6c7
--- /dev/null
+++ b/examples/demos/documentviewer/images/paste@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/print.png b/examples/demos/documentviewer/images/print.png
new file mode 100644
index 000000000..4ace26140
--- /dev/null
+++ b/examples/demos/documentviewer/images/print.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/print2x.png b/examples/demos/documentviewer/images/print2x.png
new file mode 100644
index 000000000..1c3655be6
--- /dev/null
+++ b/examples/demos/documentviewer/images/print2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/qt-logo.png b/examples/demos/documentviewer/images/qt-logo.png
new file mode 100644
index 000000000..c9171422c
--- /dev/null
+++ b/examples/demos/documentviewer/images/qt-logo.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/qt-logo@2x.png b/examples/demos/documentviewer/images/qt-logo@2x.png
new file mode 100644
index 000000000..95d1d09b1
--- /dev/null
+++ b/examples/demos/documentviewer/images/qt-logo@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-fit-best.png b/examples/demos/documentviewer/images/zoom-fit-best.png
new file mode 100644
index 000000000..6a13de4c1
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-fit-best.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-fit-best@2x.png b/examples/demos/documentviewer/images/zoom-fit-best@2x.png
new file mode 100644
index 000000000..904b41c88
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-fit-best@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-fit-width.png b/examples/demos/documentviewer/images/zoom-fit-width.png
new file mode 100644
index 000000000..d51fbac69
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-fit-width.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-fit-width@2x.png b/examples/demos/documentviewer/images/zoom-fit-width@2x.png
new file mode 100644
index 000000000..4d1fd0b4d
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-fit-width@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-in.png b/examples/demos/documentviewer/images/zoom-in.png
new file mode 100644
index 000000000..5ae1046c0
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-in.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-in@2x.png b/examples/demos/documentviewer/images/zoom-in@2x.png
new file mode 100644
index 000000000..863ef4aca
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-in@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-original.png b/examples/demos/documentviewer/images/zoom-original.png
new file mode 100644
index 000000000..8aa9bb49c
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-original.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-original@2x.png b/examples/demos/documentviewer/images/zoom-original@2x.png
new file mode 100644
index 000000000..d5473007c
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-original@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-out.png b/examples/demos/documentviewer/images/zoom-out.png
new file mode 100644
index 000000000..081b6d981
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-out.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-out@2x.png b/examples/demos/documentviewer/images/zoom-out@2x.png
new file mode 100644
index 000000000..34c8e1748
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-out@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-previous.png b/examples/demos/documentviewer/images/zoom-previous.png
new file mode 100644
index 000000000..0ff5c0416
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-previous.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-previous@2x.png b/examples/demos/documentviewer/images/zoom-previous@2x.png
new file mode 100644
index 000000000..e9909abc5
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-previous@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/jsonviewer/jsonviewer.py b/examples/demos/documentviewer/jsonviewer/jsonviewer.py
new file mode 100644
index 000000000..1e5a34ca0
--- /dev/null
+++ b/examples/demos/documentviewer/jsonviewer/jsonviewer.py
@@ -0,0 +1,396 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import json
+
+from PySide6.QtWidgets import (QLabel, QLineEdit, QListWidget,
+ QListWidgetItem, QMenu, QTreeView)
+from PySide6.QtGui import (QAction, QIcon, QKeySequence,
+ QPixmap, QTextDocument)
+from PySide6.QtCore import (QAbstractItemModel, QDir,
+ QIODevice, QModelIndex,
+ QPoint, QSize, Qt, Slot)
+
+from abstractviewer import AbstractViewer
+
+
+def resizeToContents(tree):
+ for i in range(0, tree.header().count()):
+ tree.resizeColumnToContents(i)
+
+
+class JsonTreeItem:
+
+ def __init__(self, parent=None):
+ self._key = ""
+ self._value = None
+ self._children = []
+ self._parent = parent
+
+ def key(self):
+ return self._key
+
+ def value(self):
+ return self._value
+
+ def appendChild(self, item):
+ self._children.append(item)
+
+ def child(self, row):
+ return self._children[row]
+
+ def parent(self):
+ return self._parent
+
+ def childCount(self):
+ return len(self._children)
+
+ def row(self):
+ if self._parent:
+ return self._parent._children.index(self)
+ return 0
+
+ def setKey(self, key):
+ self._key = key
+
+ def setValue(self, value):
+ self._value = value
+
+ @staticmethod
+ def load(value, parent=None):
+ rootItem = JsonTreeItem(parent)
+ rootItem.setKey("root")
+
+ if isinstance(value, dict):
+ for key, val in value.items():
+ child = JsonTreeItem.load(val, rootItem)
+ child.setKey(key)
+ rootItem.appendChild(child)
+
+ elif isinstance(value, list):
+ for index, val in enumerate(value):
+ child = JsonTreeItem.load(val, rootItem)
+ child.setKey(f"{index}")
+ rootItem.appendChild(child)
+
+ else:
+ rootItem.setValue(value)
+
+ return rootItem
+
+
+class JsonItemModel(QAbstractItemModel):
+
+ def columnCount(self, index=QModelIndex()):
+ return 2
+
+ def itemFromIndex(self, index):
+ return index.internalPointer()
+
+ def __init__(self, doc, parent):
+ super().__init__(parent)
+ self._textItem = JsonTreeItem()
+
+ # Append header lines
+ self._headers = ["Key", "Value"]
+
+ # Reset the model. Root can either be a value or an array.
+ self.beginResetModel()
+ self._textItem = JsonTreeItem.load(doc) if doc else JsonTreeItem()
+ self.endResetModel()
+
+ def data(self, index, role):
+ if not index.isValid():
+ return None
+
+ item = self.itemFromIndex(index)
+ if role == Qt.DisplayRole:
+ if index.column() == 0:
+ return item.key()
+ if index.column() == 1:
+ return item.value()
+ elif role == Qt.EditRole:
+ if index.column() == 1:
+ return item.value()
+ return None
+
+ def headerData(self, section, orientation, role):
+ return (self._headers[section]
+ if role == Qt.DisplayRole and orientation == Qt.Horizontal else None)
+
+ def index(self, row, column, parent=QModelIndex()):
+ if not self.hasIndex(row, column, parent):
+ return None
+
+ parentItem = JsonTreeItem()
+
+ if not parent.isValid():
+ parentItem = self._textItem
+ else:
+ parentItem = self.itemFromIndex(parent)
+
+ childItem = parentItem.child(row)
+ if childItem:
+ return self.createIndex(row, column, childItem)
+ return None
+
+ def parent(self, index):
+ if not index.isValid():
+ return None
+
+ childItem = self.itemFromIndex(index)
+ parentItem = childItem.parent()
+
+ if parentItem == self._textItem:
+ return QModelIndex()
+
+ return self.createIndex(parentItem.row(), 0, parentItem)
+
+ def rowCount(self, parent=QModelIndex()):
+ parentItem = JsonTreeItem()
+ if parent.column() > 0:
+ return 0
+
+ if not parent.isValid():
+ parentItem = self._textItem
+ else:
+ parentItem = self.itemFromIndex(parent)
+ return parentItem.childCount()
+
+
+class JsonViewer(AbstractViewer):
+
+ def __init__(self):
+ super().__init__()
+ self._tree = QTreeView()
+ self._toplevel = None
+ self._text = ""
+ self._searchKey = None
+ self.uiInitialized.connect(self.setupJsonUi)
+
+ def init(self, file, parent, mainWindow):
+ self._tree = QTreeView(parent)
+ super().init(file, self._tree, mainWindow)
+
+ def viewerName(self):
+ return "JsonViewer"
+
+ def supportedMimeTypes(self):
+ return ["application/json"]
+
+ @Slot()
+ def setupJsonUi(self):
+ # Build Menus and toolbars
+ menu = self.addMenu("Json")
+ tb = self.addToolBar("Json Actions")
+
+ zoomInIcon = QIcon.fromTheme(QIcon.ThemeIcon.ZoomIn)
+ a = menu.addAction(zoomInIcon, "&+Expand all", self._tree.expandAll)
+ tb.addAction(a)
+ a.setPriority(QAction.LowPriority)
+ a.setShortcut(QKeySequence.New)
+
+ zoomOutIcon = QIcon.fromTheme(QIcon.ThemeIcon.ZoomOut)
+ a = menu.addAction(zoomOutIcon, "&-Collapse all", self._tree.collapseAll)
+ tb.addAction(a)
+ a.setPriority(QAction.LowPriority)
+ a.setShortcut(QKeySequence.New)
+
+ if not self._searchKey:
+ self._searchKey = QLineEdit(tb)
+
+ label = QLabel(tb)
+ magnifier = QPixmap(":/icons/images/magnifier.png").scaled(QSize(28, 28))
+ label.setPixmap(magnifier)
+ tb.addWidget(label)
+ tb.addWidget(self._searchKey)
+ self._searchKey.textEdited.connect(self._tree.keyboardSearch)
+
+ if not self.openJsonFile():
+ return
+
+ # Populate bookmarks with toplevel
+ self._uiAssets_tabs.clear()
+ self._toplevel = QListWidget(self._uiAssets_tabs)
+ self._uiAssets_tabs.addTab(self._toplevel, "Bookmarks")
+ for i in range(0, self._tree.model().rowCount()):
+ index = self._tree.model().index(i, 0)
+ self._toplevel.addItem(index.data())
+ item = self._toplevel.item(i)
+ item.setData(Qt.UserRole, index)
+ item.setToolTip(f"Toplevel Item {i}")
+
+ self._toplevel.setAcceptDrops(True)
+ self._tree.setDragEnabled(True)
+ self._tree.setContextMenuPolicy(Qt.CustomContextMenu)
+ self._toplevel.setContextMenuPolicy(Qt.CustomContextMenu)
+
+ self._toplevel.itemClicked.connect(self.onTopLevelItemClicked)
+ self._toplevel.itemDoubleClicked.connect(self.onTopLevelItemDoubleClicked)
+ self._toplevel.customContextMenuRequested.connect(self.onBookmarkMenuRequested)
+ self._tree.customContextMenuRequested.connect(self.onJsonMenuRequested)
+
+ # Connect back and forward
+ self._uiAssets_back.triggered.connect(self._back)
+ self._uiAssets_forward.triggered.connect(self._forward)
+
+ @Slot()
+ def _back(self):
+ index = self._tree.indexAbove(self._tree.currentIndex())
+ if index.isValid():
+ self._tree.setCurrentIndex(index)
+
+ @Slot()
+ def _forward(self):
+ current = self._tree.currentIndex()
+ next = self._tree.indexBelow(current)
+ if next.isValid():
+ self._tree.setCurrentIndex(next)
+ return
+ # Expand last item to go beyond
+ if not self._tree.isExpanded(current):
+ self._tree.expand(current)
+ next = self._tree.indexBelow(current)
+ if next.isValid():
+ self._tree.setCurrentIndex(next)
+
+ def openJsonFile(self):
+ self.disablePrinting()
+ file_name = QDir.toNativeSeparators(self._file.fileName())
+ type = "open"
+ self._file.open(QIODevice.ReadOnly)
+ self._text = self._file.readAll().data().decode("utf-8")
+ self._file.close()
+
+ data = None
+ message = None
+ try:
+ data = json.loads(self._text)
+ message = f"Json document {file_name} opened"
+ model = JsonItemModel(data, self)
+ self._tree.setModel(model)
+ except ValueError as e:
+ message = f"Unable to parse Json document from {file_name}: {e}"
+ self.statusMessage(message, type)
+ self.maybeEnablePrinting()
+
+ return self._tree.model() is not None
+
+ def indexOf(self, item):
+ return QModelIndex(item.data(Qt.UserRole))
+
+ @Slot(QListWidgetItem)
+ def onTopLevelItemClicked(self, item):
+ """Move to the clicked toplevel index"""
+ # return in the unlikely case that the tree has not been built
+ if not self._tree.model():
+ return
+
+ index = self.indexOf(item)
+ if not index.isValid():
+ return
+
+ self._tree.setCurrentIndex(index)
+
+ @Slot(QListWidgetItem)
+ def onTopLevelItemDoubleClicked(self, item):
+ """Toggle double clicked index between collaps/expand"""
+
+ # return in the unlikely case that the tree has not been built
+ if not self._tree.model():
+ return
+
+ index = self.indexOf(item)
+ if not index.isValid():
+ return
+
+ if self._tree.isExpanded(index):
+ self._tree.collapse(index)
+ return
+
+ # Make sure the node and all parents are expanded
+ while index.isValid():
+ self._tree.expand(index)
+ index = index.parent()
+
+ @Slot(QPoint)
+ def onJsonMenuRequested(self, pos):
+ index = self._tree.indexAt(pos)
+ if not index.isValid():
+ return
+
+ # Don't show a context menu, if the index is already a bookmark
+ for i in range(0, self._toplevel.count()):
+ if self.indexOf(self._toplevel.item(i)) == index:
+ return
+
+ menu = QMenu(self._tree)
+ action = QAction("Add bookmark")
+ action.setData(index)
+ menu.addAction(action)
+ action.triggered.connect(self.onBookmarkAdded)
+ menu.exec(self._tree.mapToGlobal(pos))
+
+ @Slot(QPoint)
+ def onBookmarkMenuRequested(self, pos):
+ item = self._toplevel.itemAt(pos)
+ if not item:
+ return
+
+ # Don't delete toplevel items
+ index = self.indexOf(item)
+ if not index.parent().isValid():
+ return
+
+ menu = QMenu()
+ action = QAction("Delete bookmark")
+ action.setData(self._toplevel.row(item))
+ menu.addAction(action)
+ action.triggered.connect(self.onBookmarkDeleted)
+ menu.exec(self._toplevel.mapToGlobal(pos))
+
+ @Slot()
+ def onBookmarkAdded(self):
+ action = self.sender()
+ if not action:
+ return
+
+ index = action.data()
+ if not index.isValid():
+ return
+
+ item = QListWidgetItem(index.data(Qt.DisplayRole), self._toplevel)
+ item.setData(Qt.UserRole, index)
+
+ # Set a tooltip that shows where the item is located in the tree
+ parent = index.parent()
+ tooltip = index.data(Qt.DisplayRole).toString()
+ while parent.isValid():
+ tooltip = parent.data(Qt.DisplayRole).toString() + "." + tooltip
+ parent = parent.parent()
+
+ item.setToolTip(tooltip)
+
+ @Slot()
+ def onBookmarkDeleted(self):
+ action = self.sender()
+ if not action:
+ return
+
+ row = action.data().toInt()
+ if row < 0 or row >= self._toplevel.count():
+ return
+
+ self._toplevel.takeItem(row)
+
+ def hasContent(self):
+ return bool(self._text)
+
+ def supportsOverview(self):
+ return True
+
+ def printDocument(self, printer):
+ if not self.hasContent():
+ return
+ doc = QTextDocument(self._text)
+ doc.print_(printer)
diff --git a/examples/demos/documentviewer/main.py b/examples/demos/documentviewer/main.py
new file mode 100644
index 000000000..2af373ef3
--- /dev/null
+++ b/examples/demos/documentviewer/main.py
@@ -0,0 +1,37 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt Document Viewer demo from Qt v6.x"""
+
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+from PySide6.QtWidgets import QApplication
+from PySide6.QtCore import QCoreApplication
+
+from mainwindow import MainWindow
+
+
+DESCRIPTION = "A viewer for JSON, PDF and text files"
+
+
+if __name__ == "__main__":
+
+ app = QApplication([])
+ QCoreApplication.setOrganizationName("QtExamples")
+ QCoreApplication.setApplicationName("DocumentViewer")
+ QCoreApplication.setApplicationVersion("1.0")
+
+ arg_parser = ArgumentParser(description=DESCRIPTION,
+ formatter_class=RawTextHelpFormatter)
+ arg_parser.add_argument("file", type=str, nargs="?",
+ help="JSON, PDF or text file to open")
+ args = arg_parser.parse_args()
+ fileName = args.file
+
+ w = MainWindow()
+ w.show()
+ if args.file and not w.openFile(args.file):
+ sys.exit(-1)
+
+ sys.exit(app.exec())
diff --git a/examples/demos/documentviewer/mainwindow.py b/examples/demos/documentviewer/mainwindow.py
new file mode 100644
index 000000000..e9abd0bec
--- /dev/null
+++ b/examples/demos/documentviewer/mainwindow.py
@@ -0,0 +1,178 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import (QDialog, QFileDialog, QMainWindow, QMessageBox)
+from PySide6.QtCore import (QDir, QFile, QFileInfo, QSettings, Slot)
+
+from ui_mainwindow import Ui_MainWindow
+from viewerfactory import ViewerFactory
+from recentfiles import RecentFiles
+from recentfilemenu import RecentFileMenu
+
+
+settingsDir = "WorkingDir"
+settingsMainWindow = "MainWindow"
+settingsViewers = "Viewers"
+settingsFiles = "RecentFiles"
+
+
+ABOUT_TEXT = """A Widgets application to display and print JSON,
+text and PDF files. Demonstrates various features to use
+in widget applications: Using QSettings, query and save
+user preferences, manage file histories and control cursor
+behavior when hovering over widgets.
+
+"""
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.ui = Ui_MainWindow()
+
+ self._currentDir = QDir()
+ self._viewer = None
+ self._recentFiles = RecentFiles()
+
+ self.ui.setupUi(self)
+ self.ui.actionOpen.triggered.connect(self.onActionOpenTriggered)
+ self.ui.actionAbout.triggered.connect(self.onActionAboutTriggered)
+ self.ui.actionAboutQt.triggered.connect(self.onActionAboutQtTriggered)
+
+ self._recentFiles = RecentFiles(self.ui.actionRecent)
+ self._recentFiles.countChanged.connect(self._recentFilesCountChanged)
+
+ self.readSettings()
+ self._factory = ViewerFactory(self.ui.viewArea, self)
+ viewers = ", ".join(self._factory.viewerNames())
+ self.statusBar().showMessage(f'Available viewers: {viewers}')
+
+ menu = RecentFileMenu(self, self._recentFiles)
+ self.ui.actionRecent.setMenu(menu)
+ menu.fileOpened.connect(self.openFile)
+ button = self.ui.mainToolBar.widgetForAction(self.ui.actionRecent)
+ if button:
+ self.ui.actionRecent.triggered.connect(button.showMenu)
+
+ @Slot(int)
+ def _recentFilesCountChanged(self, count):
+ self.ui.actionRecent.setText(f"{count} recent files")
+
+ def closeEvent(self, event):
+ self.saveSettings()
+
+ @Slot(int)
+ def onActionOpenTriggered(self):
+ fileDialog = QFileDialog(self, "Open Document",
+ self._currentDir.absolutePath())
+ while (fileDialog.exec() == QDialog.Accepted
+ and not self.openFile(fileDialog.selectedFiles()[0])):
+ pass
+
+ @Slot(str)
+ def openFile(self, fileName):
+ file = QFile(fileName)
+ if not file.exists():
+ nf = QDir.toNativeSeparators(fileName)
+ self.statusBar().showMessage(f"File {nf} could not be opened")
+ return False
+
+ fileInfo = QFileInfo(file)
+ self._currentDir = fileInfo.dir()
+ self._recentFiles.addFile(fileInfo.absoluteFilePath())
+
+ # If a viewer is already open, clean it up and save its settings
+ self.resetViewer()
+ self._viewer = self._factory.viewer(file)
+ if not self._viewer:
+ nf = QDir.toNativeSeparators(fileName)
+ self.statusBar().showMessage(f"File {nf} can't be opened.")
+ return False
+
+ self.ui.actionPrint.setEnabled(self._viewer.hasContent())
+ self._viewer.printingEnabledChanged.connect(self.ui.actionPrint.setEnabled)
+ self.ui.actionPrint.triggered.connect(self._viewer.print_)
+ self._viewer.showMessage.connect(self.statusBar().showMessage)
+
+ self._viewer.initViewer(self.ui.actionBack, self.ui.actionForward,
+ self.ui.menuHelp.menuAction(),
+ self.ui.tabWidget)
+ self.restoreViewerSettings()
+ self.ui.scrollArea.setWidget(self._viewer.widget())
+ return True
+
+ @Slot()
+ def onActionAboutTriggered(self):
+ viewerNames = ", ".join(self._factory.viewerNames())
+ mimeTypes = '\n'.join(self._factory.supportedMimeTypes())
+ text = ABOUT_TEXT
+ text += f"\nThis version has loaded the following plugins:\n{viewerNames}\n"
+ text += f"\n\nIt supports the following mime types:\n{mimeTypes}"
+
+ defaultViewer = self._factory.defaultViewer()
+ if defaultViewer:
+ n = defaultViewer.viewerName()
+ text += f"\n\nOther mime types will be displayed with {n}."
+
+ QMessageBox.about(self, "About Document Viewer Demo", text)
+
+ @Slot()
+ def onActionAboutQtTriggered(self):
+ QMessageBox.aboutQt(self)
+
+ def readSettings(self):
+ settings = QSettings()
+
+ # Restore working directory
+ if settings.contains(settingsDir):
+ self._currentDir = QDir(settings.value(settingsDir))
+ else:
+ self._currentDir = QDir.current()
+
+ # Restore QMainWindow state
+ if settings.contains(settingsMainWindow):
+ mainWindowState = settings.value(settingsMainWindow)
+ self.restoreState(mainWindowState)
+
+ # Restore recent files
+ self._recentFiles.restoreFromSettings(settings, settingsFiles)
+
+ def saveSettings(self):
+ settings = QSettings()
+
+ # Save working directory
+ settings.setValue(settingsDir, self._currentDir.absolutePath())
+
+ # Save QMainWindow state
+ settings.setValue(settingsMainWindow, self.saveState())
+
+ # Save recent files
+ self._recentFiles.saveSettings(settings, settingsFiles)
+
+ settings.sync()
+
+ def saveViewerSettings(self):
+ if not self._viewer:
+ return
+ settings = QSettings()
+ settings.beginGroup(settingsViewers)
+ settings.setValue(self._viewer.viewerName(), self._viewer.saveState())
+ settings.endGroup()
+ settings.sync()
+
+ def resetViewer(self):
+ if not self._viewer:
+ return
+ self.saveViewerSettings()
+ self._viewer.cleanup()
+
+ def restoreViewerSettings(self):
+ if not self._viewer:
+ return
+ settings = QSettings()
+ settings.beginGroup(settingsViewers)
+ viewerSettings = settings.value(self._viewer.viewerName())
+ settings.endGroup()
+ if viewerSettings:
+ self._viewer.restoreState(viewerSettings)
diff --git a/examples/demos/documentviewer/mainwindow.ui b/examples/demos/documentviewer/mainwindow.ui
new file mode 100644
index 000000000..482061fc7
--- /dev/null
+++ b/examples/demos/documentviewer/mainwindow.ui
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>983</width>
+ <height>602</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Document Viewer Demo</string>
+ </property>
+ <property name="windowIcon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/qt-logo.png</normaloff>:/demos/documentviewer/images/qt-logo.png</iconset>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QWidget" name="viewArea" native="true">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QSplitter" name="splitter">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="tabPosition">
+ <enum>QTabWidget::West</enum>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="bookmarkTab">
+ <attribute name="title">
+ <string>Pages</string>
+ </attribute>
+ </widget>
+ <widget class="QWidget" name="pagesTab">
+ <attribute name="title">
+ <string>Bookmarks</string>
+ </attribute>
+ </widget>
+ </widget>
+ <widget class="QScrollArea" name="scrollArea">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>800</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="scrollAreaWidgetContents">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>798</width>
+ <height>479</height>
+ </rect>
+ </property>
+ </widget>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menubar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>983</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="qtFileMenu">
+ <property name="title">
+ <string>File</string>
+ </property>
+ <addaction name="actionOpen"/>
+ <addaction name="actionRecent"/>
+ <addaction name="actionPrint"/>
+ <addaction name="actionQuit"/>
+ </widget>
+ <widget class="QMenu" name="menuHelp">
+ <property name="title">
+ <string>Help</string>
+ </property>
+ <addaction name="actionAbout"/>
+ <addaction name="actionAboutQt"/>
+ </widget>
+ <addaction name="qtFileMenu"/>
+ <addaction name="menuHelp"/>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ <widget class="QToolBar" name="mainToolBar">
+ <property name="windowTitle">
+ <string>toolBar</string>
+ </property>
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ <addaction name="actionOpen"/>
+ <addaction name="actionRecent"/>
+ <addaction name="actionPrint"/>
+ <addaction name="separator"/>
+ <addaction name="actionBack"/>
+ <addaction name="actionForward"/>
+ <addaction name="separator"/>
+ </widget>
+ <action name="actionOpen">
+ <property name="icon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/open.png</normaloff>:/demos/documentviewer/images/open.png</iconset>
+ </property>
+ <property name="text">
+ <string>Open</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+O</string>
+ </property>
+ </action>
+ <action name="actionAbout">
+ <property name="icon">
+ <iconset theme="help-about" resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/help-about.svgz</normaloff>:/demos/documentviewer/images/help-about.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>about documentviewer</string>
+ </property>
+ <property name="toolTip">
+ <string>Show information about the Document Viewer deomo.</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+H</string>
+ </property>
+ </action>
+ <action name="actionForward">
+ <property name="icon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/go-next.svgz</normaloff>:/demos/documentviewer/images/go-next.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>actionForward</string>
+ </property>
+ <property name="toolTip">
+ <string>One step forward</string>
+ </property>
+ <property name="shortcut">
+ <string>Right</string>
+ </property>
+ </action>
+ <action name="actionBack">
+ <property name="icon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/go-previous.svgz</normaloff>:/demos/documentviewer/images/go-previous.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>actionBack</string>
+ </property>
+ <property name="toolTip">
+ <string>One step back</string>
+ </property>
+ <property name="shortcut">
+ <string>Left</string>
+ </property>
+ </action>
+ <action name="actionPrint">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="icon">
+ <iconset theme="document-print" resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/print2x.png</normaloff>:/demos/documentviewer/images/print2x.png</iconset>
+ </property>
+ <property name="text">
+ <string>Print</string>
+ </property>
+ <property name="toolTip">
+ <string>Print current file</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+P</string>
+ </property>
+ </action>
+ <action name="actionAboutQt">
+ <property name="icon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/qt-logo.png</normaloff>
+ <normalon>:/demos/documentviewer/images/qt-logo.png</normalon>:/demos/documentviewer/images/qt-logo.png</iconset>
+ </property>
+ <property name="text">
+ <string>About Qt</string>
+ </property>
+ <property name="toolTip">
+ <string>Show Qt license information</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+I</string>
+ </property>
+ </action>
+ <action name="actionRecent">
+ <property name="icon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/document-open-recent.svgz</normaloff>:/demos/documentviewer/images/document-open-recent.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Recently opened...</string>
+ </property>
+ <property name="shortcut">
+ <string>Meta+R</string>
+ </property>
+ </action>
+ <action name="actionQuit">
+ <property name="icon">
+ <iconset theme="application-exit">
+ <normaloff>.</normaloff>.</iconset>
+ </property>
+ <property name="text">
+ <string>Quit</string>
+ </property>
+ <property name="toolTip">
+ <string>Quit the application</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+Q</string>
+ </property>
+ </action>
+ </widget>
+ <resources>
+ <include location="documentviewer.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>actionQuit</sender>
+ <signal>triggered()</signal>
+ <receiver>MainWindow</receiver>
+ <slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>491</x>
+ <y>300</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/demos/documentviewer/pdfviewer/pdfviewer.py b/examples/demos/documentviewer/pdfviewer/pdfviewer.py
new file mode 100644
index 000000000..d5695e4d0
--- /dev/null
+++ b/examples/demos/documentviewer/pdfviewer/pdfviewer.py
@@ -0,0 +1,204 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from math import sqrt
+
+from PySide6.QtWidgets import (QListView, QTreeView)
+from PySide6.QtGui import QIcon, QPainter
+from PySide6.QtCore import (QDir, QIODevice, QModelIndex,
+ QPointF, Slot)
+from PySide6.QtPrintSupport import QPrinter
+from PySide6.QtPdf import QPdfDocument, QPdfBookmarkModel
+from PySide6.QtPdfWidgets import QPdfView, QPdfPageSelector
+
+from abstractviewer import AbstractViewer
+from pdfviewer.zoomselector import ZoomSelector
+
+
+ZOOM_MULTIPLIER = sqrt(2.0)
+
+
+class PdfViewer(AbstractViewer):
+
+ def __init__(self):
+ super().__init__()
+ self.uiInitialized.connect(self.initPdfViewer)
+ self._toolBar = None
+ self._zoomSelector = None
+ self._pageSelector = None
+ self._document = None
+ self._pdfView = None
+ self._actionForward = None
+ self._actionBack = None
+ self._bookmarks = None
+ self._pages = None
+
+ def init(self, file, parent, mainWindow):
+ self._pdfView = QPdfView(parent)
+ super().init(file, self._pdfView, mainWindow)
+ self._document = QPdfDocument(self)
+
+ def supportedMimeTypes(self):
+ return ["application/pdf"]
+
+ def initPdfViewer(self):
+ self._toolBar = self.addToolBar("PDF")
+ self._zoomSelector = ZoomSelector(self._toolBar)
+
+ nav = self._pdfView.pageNavigator()
+ self._pageSelector = QPdfPageSelector(self._toolBar)
+ self._toolBar.insertWidget(self._uiAssets_forward, self._pageSelector)
+ self._pageSelector.setDocument(self._document)
+ self._pageSelector.currentPageChanged.connect(self.pageSelected)
+ nav.currentPageChanged.connect(self._pageSelector.setCurrentPage)
+ nav.backAvailableChanged.connect(self._uiAssets_back.setEnabled)
+ self._actionBack = self._uiAssets_back
+ self._actionForward = self._uiAssets_forward
+ self._uiAssets_back.triggered.connect(self.onActionBackTriggered)
+ self._uiAssets_forward.triggered.connect(self.onActionForwardTriggered)
+
+ self._toolBar.addSeparator()
+ self._toolBar.addWidget(self._zoomSelector)
+
+ actionZoomIn = self._toolBar.addAction("Zoom in")
+ actionZoomIn.setToolTip("Increase zoom level")
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.ZoomIn,
+ QIcon(":/demos/documentviewer/images/zoom-in.png"))
+ actionZoomIn.setIcon(icon)
+ self._toolBar.addAction(actionZoomIn)
+ actionZoomIn.triggered.connect(self.onActionZoomInTriggered)
+
+ actionZoomOut = self._toolBar.addAction("Zoom out")
+ actionZoomOut.setToolTip("Decrease zoom level")
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.ZoomIn,
+ QIcon(":/demos/documentviewer/images/zoom-out.png"))
+ actionZoomOut.setIcon(icon)
+ self._toolBar.addAction(actionZoomOut)
+ actionZoomOut.triggered.connect(self.onActionZoomOutTriggered)
+
+ nav.backAvailableChanged.connect(self._actionBack.setEnabled)
+ nav.forwardAvailableChanged.connect(self._actionForward.setEnabled)
+
+ self._zoomSelector.zoomModeChanged.connect(self._pdfView.setZoomMode)
+ self._zoomSelector.zoomFactorChanged.connect(self._pdfView.setZoomFactor)
+ self._zoomSelector.reset()
+
+ bookmarkModel = QPdfBookmarkModel(self)
+ bookmarkModel.setDocument(self._document)
+ self._uiAssets_tabs.clear()
+ self._bookmarks = QTreeView(self._uiAssets_tabs)
+ self._bookmarks.activated.connect(self.bookmarkSelected)
+ self._bookmarks.setModel(bookmarkModel)
+ self._pdfView.setDocument(self._document)
+ self._pdfView.setPageMode(QPdfView.PageMode.MultiPage)
+
+ self.openPdfFile()
+ if not self._document.pageCount():
+ return
+
+ self._pages = QListView(self._uiAssets_tabs)
+ self._pages.setModel(self._document.pageModel())
+
+ self._pages.selectionModel().currentRowChanged.connect(self._currentRowChanged)
+ self._pdfView.pageNavigator().currentPageChanged.connect(self._pageChanged)
+
+ self._uiAssets_tabs.addTab(self._pages, "Pages")
+ self._uiAssets_tabs.addTab(self._bookmarks, "Bookmarks")
+
+ def viewerName(self):
+ return "PdfViewer"
+
+ @Slot(QModelIndex, QModelIndex)
+ def _currentRowChanged(self, current, previous):
+ if previous == current:
+ return
+
+ nav = self._pdfView.pageNavigator()
+ row = current.row()
+ if nav.currentPage() == row:
+ return
+ nav.jump(row, QPointF(), nav.currentZoom())
+
+ @Slot(int)
+ def _pageChanged(self, page):
+ if self._pages.currentIndex().row() == page:
+ return
+ self._pages.setCurrentIndex(self._pages.model().index(page, 0))
+
+ @Slot()
+ def openPdfFile(self):
+ self.disablePrinting()
+
+ if self._file.open(QIODevice.ReadOnly):
+ self._document.load(self._file)
+
+ documentTitle = self._document.metaData(QPdfDocument.MetaDataField.Title)
+ if not documentTitle:
+ documentTitle = "PDF Viewer"
+ self.statusMessage(documentTitle)
+ self.pageSelected(0)
+
+ file_name = QDir.toNativeSeparators(self._file.fileName())
+ self.statusMessage(f"Opened PDF file {file_name}")
+ self.maybeEnablePrinting()
+
+ def hasContent(self):
+ return self._document if self._document.pageCount() > 0 else False
+
+ def supportsOverview(self):
+ return True
+
+ def printDocument(self, printer):
+ if not self.hasContent():
+ return
+
+ painter = QPainter()
+ painter.begin(printer)
+ pageRect = printer.pageRect(QPrinter.Unit.DevicePixel).toRect()
+ pageSize = pageRect.size()
+ for i in range(0, self._document.pageCount()):
+ if i > 0:
+ printer.newPage()
+ page = self._document.render(i, pageSize)
+ painter.drawImage(pageRect, page)
+ painter.end()
+
+ @Slot(QModelIndex)
+ def bookmarkSelected(self, index):
+ if not index.isValid():
+ return
+
+ page = index.data(int(QPdfBookmarkModel.Role.Page))
+ zoomLevel = index.data(int(QPdfBookmarkModel.Role.Level)).toReal()
+ self._pdfView.pageNavigator().jump(page, QPointF(), zoomLevel)
+
+ @Slot(int)
+ def pageSelected(self, page):
+ nav = self._pdfView.pageNavigator()
+ nav.jump(page, QPointF(), nav.currentZoom())
+
+ @Slot()
+ def onActionZoomInTriggered(self):
+ self._pdfView.setZoomFactor(self._pdfView.zoomFactor() * ZOOM_MULTIPLIER)
+
+ @Slot()
+ def onActionZoomOutTriggered(self):
+ self._pdfView.setZoomFactor(self._pdfView.zoomFactor() / ZOOM_MULTIPLIER)
+
+ @Slot()
+ def onActionPreviousPageTriggered(self):
+ nav = self._pdfView.pageNavigator()
+ nav.jump(nav.currentPage() - 1, QPointF(), nav.currentZoom())
+
+ @Slot()
+ def onActionNextPageTriggered(self):
+ nav = self._pdfView.pageNavigator()
+ nav.jump(nav.currentPage() + 1, QPointF(), nav.currentZoom())
+
+ @Slot()
+ def onActionBackTriggered(self):
+ self._pdfView.pageNavigator().back()
+
+ @Slot()
+ def onActionForwardTriggered(self):
+ self._pdfView.pageNavigator().forward()
diff --git a/examples/demos/documentviewer/pdfviewer/zoomselector.py b/examples/demos/documentviewer/pdfviewer/zoomselector.py
new file mode 100644
index 000000000..e5da5708f
--- /dev/null
+++ b/examples/demos/documentviewer/pdfviewer/zoomselector.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2017 Klaralvdalens Datakonsult AB (KDAB).
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QComboBox
+from PySide6.QtCore import Signal, Slot
+from PySide6.QtPdfWidgets import QPdfView
+
+
+ZOOM_LEVELS = ["Fit Width", "Fit Page", "12%", "25%", "33%", "50%", "66%",
+ "75%", "100%", "125%", "150%", "200%", "400%"]
+
+
+class ZoomSelector(QComboBox):
+ zoomModeChanged = Signal(QPdfView.ZoomMode)
+ zoomFactorChanged = Signal(float)
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.setEditable(True)
+
+ for z in ZOOM_LEVELS:
+ self.addItem(z)
+
+ self.currentTextChanged.connect(self.onCurrentTextChanged)
+ self.lineEdit().editingFinished.connect(self._editingFinished)
+
+ @Slot()
+ def _editingFinished(self):
+ self.onCurrentTextChanged(self.lineEdit().text())
+
+ @Slot(float)
+ def setZoomFactor(self, zoomFactor):
+ z = int(100 * zoomFactor)
+ self.setCurrentText(f"{z}%")
+
+ @Slot()
+ def reset(self):
+ self.setCurrentIndex(8) # 100%
+
+ @Slot(str)
+ def onCurrentTextChanged(self, text):
+ if text == "Fit Width":
+ self.zoomModeChanged.emit(QPdfView.ZoomMode.FitToWidth)
+ elif text == "Fit Page":
+ self.zoomModeChanged.emit(QPdfView.ZoomMode.FitInView)
+ else:
+ factor = 1.0
+ withoutPercent = text.replace('%', '')
+ zoomLevel = int(withoutPercent)
+ if zoomLevel:
+ factor = zoomLevel / 100.0
+
+ self.zoomModeChanged.emit(QPdfView.ZoomMode.Custom)
+ self.zoomFactorChanged.emit(factor)
diff --git a/examples/demos/documentviewer/rc_documentviewer.py b/examples/demos/documentviewer/rc_documentviewer.py
new file mode 100644
index 000000000..fee824311
--- /dev/null
+++ b/examples/demos/documentviewer/rc_documentviewer.py
@@ -0,0 +1,5135 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.1
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x0a\xde\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x07tIME\x07\xe7\x03\x09\x07\x09\x01^\xb7)\
+\x9a\x00\x00\x09\xbeIDATX\xc3\xad\x98\xddo\x5c\
+\xc7y\x87\x9f9s\xce\xd9s\xcer\x97\xe4J\xa4L\
+\x85\x96IJr\x1c\x08\x8e\x9b2\xad\xfb\x85&\x06Z\
+\x040\x9c\x00\x06\x92\x5c\xf4\x0f\x88\xe1\xd6@\xff\x90&\
+\xbe\xf1E\xe1\xdb\x02\x85\x80\xa2\x17m\xe3\xcb\xa2Jc\
+\x1b\x84c\xb9\x94YJb\x14\xd1\x12\xbfD\xf1kI\
+\xee\xd7\xf9\x9a3o/vI)\x14\x97\xa2+\xbd\xc0\
+`\xb1\xb3sf\x1e\xfc~\xef\xbc;g\x14'\xc7\x14\
+\xf0m\xe0\x22\xa7\x8f/\x81/\x80\xdd\xaf\xf1L\xdfP\
+}\xfa\xffL)U\x15\x91W\xde|\xf3\xcd?\xfa\xe0\
+\x83\x0f^?\xed\x84\x17/^\xfc\x0dp\x07\xf8_`\
+\x1e\xf8\xed\xb3\x00\xbaG\xbe\x0f\x02\xafN\x9fQ\x7f\x13\
+h\x06vS56@6\x11\x86\xe1\xc5 \x08N\x9c\
+\xc8ZK\x96e\xbc\x5cU\xeex\xc4\xcb\xcd\x9co-\
+\xb6d\xac\x9e\xf2\x00h>/\xc0\xb3\xc0\xdbW\x06\xd5\
+\xdb\xa1\x8b\xbb\x99\xe0\xfb\xf1^iqq\x91\xc1\xa1A\
+\xd4c\x82\x0b\x82\x12@)\x10\xc1\x18C\xab\xdd\xe6b\
+\x85\xf3\xdf\x1eR\xa3\xf7Z2\xb6\x9e`\xeb)\x1f=\
+O\xc0!\xe0{o\x8c9/\x88\xc0\xef\x1a\xc2\x9e\xc4\
+,--Q\xa9WN\x9c\xa8(\x0a:\x9d\x0eUO\
+y\xe7B\xc7k\x1b\xe9\x0cy6\x5cE\xce\x00\xf7\x9f\
+\x0b\xa0R\x0a\xe8\x0ac\x01\xab\xa0\xbe\xb7\xcb\x7f]\xbb\
+F\x1c\xc7\xd8\xa2@D(\x8a\x82,\xcbH\xd3\x14c\
+\x0c\xc6\x18\xb4\xd6T*\x15B\xe8f\xb6C\xff\x0c\x7f\
+\x06\x05{\xf6u\x01\x03\x0d^\xdabi\xee:q\xdc\
+B\x89\x05\xe9\xda+V\x08\x95\x01\xc0C\xd0\x8eB\xef\
+iF\xcb\x1aO\x0b\x22`,\x01\xf0\x12]\x8bG\x81\
+\x01 \x04\xaat\xd3\x09`\x1fX\xa6\xbb\xfb7\xfa\x02\
+~\xf8\xe1\x87\xbc\xfb\xee\xbbJD\x14\xaa\x0bY\x8eB\
+F\x83\x90\xc44\x19\xd0\x19\x88<R\x1b\x18\x0e4\xae\
+\xa3\xd0Z!V\xe8\xa4\x19\xeb\xa9f/5\xac\xc5N\
+`\xc2\xca\x85\xefLM\xbe\x15\x04\xc1wGGGk\
+Q\x14E\xa5R)\x08\xc3p \x8a\xa2\xa1J\xa5\xa2\
+:\x9dNkee\xe5\xce\xd5\xabW}\xe0\xa3\x93\x14\
+TJ)D\xa4\xbb\xbat\x01\xcf\x07C\x94\x8c\x8b\xb5\
+\x01V\xba\xca\x1c\xec\x8dZ\xe4\xe3i\x8dv\xa0\x9d[\
+\x16wR\x82\xd1\x8b\xa4V1\xe8\xf8\xc1te\xe8\xa5\
+\x17_\x9a\xaci\xad\xf3\xb1\xb11\xafR\xa9\xe8(\x8a\
+\x9cj\xb5\xea\xd6j5\xb7V\xab\xe9\xdd\xdd]37\
+7\xf7\xe2\xec\xec\xac]XX\x98\x036\x81\xe4D\x8b\
+\x0f$\xf2=M\xa9\x5cb\xc0\x0dH\xf2\x02S\x08\x85\
+\x08\x88\xa0\x94\xc2w\x1d|\xd7!/,\x9d\xd4aC\
+U\xf9\xc5\xcf\xff\x91\xb3#\xa3\xf8\xa5\x92\x06\xa2^{\
+\x94>\x22Xk\xc9\xf3\x9c\x81\x81\x01&&&J\xc3\
+\xc3\xc3\x13\xb3\xb3\xb3?ZXXx\x00\xfcs\xcf\xf2\
+\xfe\x80\x8e\x06\xc7\x82\xe3\x80\xa3\x15\xa2\x15\xda*D\xf5\
+v\x90(\x94\x02\xad\xbb\xf6n43\x9aT\xf8\xfe_\
+\xff\x15c\xdf\x18?\x049.\x0e\xe0\x1a\x8d\x06\xae\xeb\
+\xe2y\x1e\x97.]*\xbd\xff\xfe\xfb\x17\xb2,{\xe7\
+\xe3\x8f?>\x7f\xe7\xce\x9d\x7f\x01>>\x0a(\xbdI\
+\xc5Q\x0a\xad\xe8&\xbeVh\xed\x80\x80\xb1\x82\xed-\
+\xac\x14x\x8e\x83\xa7\x1d\x5c\xc7\xc1\x11N\x04{\x5cA\
+c\x0c\xedv\x9br\xb9L\x14E\xf8\xbe\x8f\xef\xfb\xbc\
+\xf7\xde{\xe7FFF\xbe\xff\xd9g\x9f\xed\x5c\xbbv\
+m\x17\x98w\x0e\x1e|\xe7\x9dw\x0e\x09\xb5\xd3m\xae\
+Vx\xda\xa1\xe4i\x02O\xe3\xbb\x0e(\xc8\x0aK\x9c\
+\x15\xec'9\x8d$'\xce\x0dYa1\xc6\xf0\xb48\
+\xb08\x8ec\xf2<\xc7Z\xdbu\xcdq\x98\x9c\x9c\x0c\
+\xa6\xa7\xa7_\x9c\x9c\x9c\xfc\x03\xe0J\x7f\x8b{5\xcc\
+\xd5\x0a\xcf\xedZ\x1c\xe7Bb\x15\xa9\x0a\xc8}\x17\xab\
+4\x16\x97\xc2\x11\xb2\xb4MQx4Z\x1d\xf6\xf6\xf6\
+\x08\x82\x00\xcf\xf3\x10\x11Z\xad\x16\xedv\x9b \x08(\
+\x97\xcb\xb8\xae{hs\xbd^'\xcb2J\xa5\xd2!\
+\xf8\xe8\xe8hP\xadV\xc7\x80\x0bO\x00>\xb2\xb8k\
+\xa1\xab\xbby\x96\x88\xf0`\xbf\xc3\x9eD\x84g_\xa0\
+6\xf6\x12\xe5\xa1Q\xbc\xa8F\x9e\xb4(67H7\
+7y\xb0\xb1\xc3\x8d\x1b7\x98\x9c\x9cddd\x844\
+M\xf9\xf2\xcb/\x99\x9f\x9fgrr\x92+W\xae0\
+>>~\xb8\xde\xed\xdb\xb7\xa9\xd7\xebt:\x1d\x92$\
+\xe1\xf2\xe5\xcb\x18cd\x7f\x7f\xbf\xb7MQ\xc7*\xa8\
+u\xb7\x944R\xc3\xf6N\xc2\xc3\xc2\xe3O~\xf4w\
+\xb8\xe7\xbfC[\xd7\xd8m\xc1z#c\xbf\x99\x91K\
+\x01g \x18\x11.\x07\x96\xc46\xf9\xf5'\x9fS\x1b\
+.S\xadTYZ\xd9\xe0/\x7f\xf03\xe6>\xff\x88\
+\x8d\x8d\x0d\xc6\xc7\xc7\xd1Z\x13E\x11Q\x14\xd1n\xb7\
+\xc9\xf3\x1c\xdf\xf7q]\xf7\xf14Q'X\xac\xd8O\
+\x85FP\xa141\xcd\xf7\xfe\xe2m\xdcs\xaf\x90H\
+\x88M\x158\x06q\x14\xa9\x11\x1amC\x12\x1bL^\
+\xa0\xc4\xf2p\xdb\xe3\x5c\xf5\x22*\xee\xb0\xd7\xc9\xd8I\
+'\xf8\x9f[u:\xed\xecp\x039\x8eC\xb9\x5cf\
+dd\x84R\xa9D\x92$(\xa5\x18\x1a\x1a\xa2^\xaf\
+\x8b\xeb\xbaBW\xa3\xe3\x01\x95\x82\xbd\x0cJ\xa3S\x8c\
+O\xbf\xc1\x85W_g\xf9\xee\xefh\xd7wH\x93\x0c\
+W|\xcex\x83\xb8C5\x1c\xd1l\x1bK'6\xc4\
+qA\xabm\xd9o\xbbD\xaeO\x91\x09\xf5\x96\xe6\x92\
+\xc4\x84\x99}\xcc!M\x18\x86\x0c\x0f\x0f\x13\x86\xe1\xa1\
+ja\x18\x92$\x09\x9e\xe7\x1d\xfc\xdb\xf6)\xd4\x0e\xe4\
+\x02\x95\x81A\x06\x06\x87h\xed<`\x7f\xfe?I\xea\
+\x0f\xb1E\x8eW\x1a\xc0\x1b:\x8fS\xb9\x8c\x8e\xce\xe0\
+\x11\xe2\xe0\x93\x1bK\xb3\x99\xd3h\x09X\xc8s\x8fF\
+#\xe6\xfc9CI\xec\xa1\x82J)|\xdf\xc7q\x1c\
+\xc20<\xec\xd7Z\x1fUP\xfa*X\x0b\xa1\xb9r\
+\x8b\xcf\x7f\xf9O\x08\x8ap\xff\x1e\xc3e\x1f\xd7Q\xa4\
+\xa6`\xfb\xb79\xdbv\x80\x89\xef\xfe\x80\xea\xe8\x1f\x13\
+\x95\xc7\xc8\x8d\x10'\x86N^\x90t\x0a\xe2\xd8\x90$\
+\xe6\xf7N5\x070\xae\xeb\xa2\xb5~l\xcd\xee \xcf\
+\xf3~\xaf\xbfo\x99\x19-+\xcex{\x88,\xe1\x06\
+\x11g\xa6jO\x8c\xdb\xeb\xe4\xac\xdd\xfew\xb6\x16f\
+Hj\x7f\xc8\xa5\xa9\x1f\xd2l\xfb\x88\x05\xb1`\xa5[\
+\xd8=\xd7\x81\xbc\x0b\xd7\xaf\x90\x1f\xf4\x1f\x1d\xd3\xbf\x0e\
+\x02\xbe\xaf\xf0#\x177\xf0p\x8e9\xdbU\x03\x97V\
+\xe8\xb1\xbc\xb9\xcdv\xbc\xc8\xd4\xcb\x86\xc0\xd7d%\x8d\
+1BQ\x08Eaq\xb4\x832'\x03\x1e\x84\xb5\xf2\
+\xf8\xa1\xa9\xff&\x81n\xa1\xf6]\x85\xeb:\xc7N\xb6\
+\xd9L\xd8j\xe7\xf8\xb5\x0b\xbcp\xee5\xac.\xe1\xfa\
+\x19\x9e\xef\xe0\xe7\x0eE\xe1P\x14\x1aW\xabc\xd59\
+>\x0e7p\x7f@\x0exz\x05\x9b\xe3\xf9X\xdcj\
+\xa1G.q\xfe\x9bo\xe0\xbf\xf8\xa7<h\x0fpf\
+\xa8M\xe89t\x02C\x92\x14$\xb1\xa16X\x22M\
+\xd5\xa9\x00\x8f\xfe\xdeG\xc1\xee\xeb\x91\xe3(p\xd4\xa1\
+\xa2Gcm\xb7\xc3O\xff\xf6\xef)\x8f\xbf\xc6\xc3z\
+\x82\xd7\xc88[\xf1\xc82K\x96\x15\xbdfy\xed\x95\
+!n\xb6\xdcc\x01\x8e\x03<u\x0e*\xa7\xd7\xfa\x00\
+^~\xa1\xc2/\xff\xe1g,mw\xd8N]\xfc\xb3\
+\x13L\xbf\xfe\xe7O\x8c\x9bY\x86\x89\x89\x09\xce\x9e=\
+\xfb|\x14t\x9cG\xa7f\xa7\xf7yp\xca~<\xbe\
+5^ej4da\xd5\xe1^C\x13]z\x99\xb7\
+\xdez\xeb\xd8\x85\x83 \x8a\xa2S\xe4 OW\xf0\
+@1\xa5\x1e\xb5n\x07\x88X\xa40\xd8<%\xc8b\
+\xfc<\xa1R\xb4\x88\x9c*\xd5\x812cccO\x05\
+xf\x05Q\xbd\xa3\x04\x00\x16\xb1\x05R\xe4\x885\x88\
+\xc9)\xf2\x84\x22\xed`\xe2\x066\x8b\xc9[\x06k\xbd\
+.\xfc)\x14z\x1a\xe0)\x14<\x90P\x10k\xb0Y\
+\x9b\xac\xb5\x83\xe94\xb0y\x8c\x14\xe6\x89\xf1\x07\xcf<\
++\xe0\xd18\xd1\xe2\xbc\xb9E\xde\xdc\xea\xfb;@j\
+\xb0\x1bm\xc9\x97R\xb1S\xb9\xf2ED\xf3\x0cq\xba\
+2\xe3\xf4\x9f\xc0X\xa4\x99\x8aY\xd9\x97\xf8\xf6\x96m\
+-\xd6ew\xb5!\xad\x81s\xae?\xe5\xb8S\x222\
+\xf8,\x80i\x9a\x8a1&\xa3\xf7\xeay\xa2\x82\x00\x85\
+E\xd2\x02\xbb\xde\x90d\xbd%i=\x96\xb8\x91\xc8\xde\
+~\x22\xcb\xcb\xfb\xb2\xb0X\x97\xc5z,\xe5+\xe7\x82\
+W\x95\xa3\xbf\xf1\xff\x81\xb2\xd6b\x8c\x91\x95\x95\x95\xe4\
+\x8b/\xbeh\xae\xae\xae.\x03\xf7\x8e\x03,\x80f\x9c\
+Sd\x85\xd88\xa7hf\x92\xed%t\xee\xee\xd8\xd5\
+\xf9MY_\xdc\xb1[\x9bmy\x00\xdc\xa5{]q\
+\x17\xf8f\x14EC\x8e\xe3\x14_'\x07\xe38\xb6\xed\
+v\xdb4\x1a\x0dS\xaf\xd7\xcd\xcd\x9b7\xef\xcf\xcc\xcc\
+\xac\xde\xbf\x7f\xff3\xe0\xd6q\x80\x1d\xe0\xce\xf2\xbe\x9d\
+^oJ:\xbf!\xed\x1b\xebv\xe7\xab]\xbb\x06\xfc\
+\x0a\x98\xa1{9\xb9\xd3o\xd1\xaf\x03\xb8\xb6\xb6\x96\xcc\
+\xce\xce\xb6>\xfd\xf4\xd3\xc6'\x9f|\xd2\xda\xdd\xdd\xfd\
+7\xe0\xbf{p\x9b\xc7\x01n\x01\xff\xfa\xee\x7fd\x00\
++\xc0\x8d\x9eJ+O[\xec\xa0<\x9c\x04\xd8n\xb7\
+\x8b\x95\x95\x95dff\xa6q\xf5\xea\xd5\xed\x8d\x8d\x8d\
+\x9b\x9dN\xe7:\xf0\x9b\xdeZO\xdc#\x1e\x05l\x02\
+\xd7\x81% \x05Z\xbdv\xaa\x10\xba\x80\x079l\x0b\
++Y\x96\xc9\xfc\xcd\x9b\xad\xf9\xf9\xf9\xf6\xdd\xbbww\
+\xd6\xd6\xd6\x96\x92$\x99\x8b\xe3\xf8\xd7\x22\xb2\x0e\xd4\x81\
+F\xcf\xbd'\xe2(\xa0\xa1{\xf9\xfdu/\xc0\x0b\x11\
+\xc9\xb3\xb4\xfb\xe2\xb1\xb5\xb5\x95mnnf\xeb\xeb\x0f\
+\xb3\x95\xe5\xe5\xf4\xc1\xfa\xfa\x8d\xe5\xe5\xe5\xbb\x8b\x8b\x8b\
+_---\xdd\xef9r\xa7\x07U\x9c4\xb1\xfb\xd4\
+\xa5O\x17\xcd,\xcb\xd6666V\xe7\xe6\xe6\xaa\xab\
+\xab\xab[\xf7\xee\xdd\xdb\xbau\xeb\xd6\xf6\xf5\xeb\xd7\xb7\
+vww\x7fE7\xaf\xbe\xe2\x84\xfc=.\x9e\xc3\x1d\
+(\x00\x1a\x98\x00~\x02\xfc\x98G\xb9{\x83>\xb9u\
+\xda\xf8?\x8d\x91Q\xef\x82F)\xd6\x00\x00\x00%t\
+EXtdate:create\x002\
+023-03-09T07:07:\
+18+00:00+#\x10\x1d\x00\x00\x00%\
+tEXtdate:modify\x00\
+2023-03-09T07:07\
+:18+00:00Z~\xa8\xa1\x00\x00\x00\
+(tEXtdate:timest\
+amp\x002023-03-09T0\
+7:09:01+00:00J\x90\xfc\
+\x80\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x03\xb2\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xa7\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf6\xf6\xf6\xdc\xde\xe0\
+\xca\xcd\xcf\xc6\xc8\xcb\xce\xcf\xd1\xe5\xe6\xe6\xfc\xfc\xfc\xe7\
+\xe8\xe9\xbc\xc2\xca\xc0\xc8\xd3\xd4\xda\xe3\xd7\xdd\xe6\xc8\xcf\
+\xd9\xae\xb5\xbf\xc2\xc5\xc7\xf6\xf6\xf5\xea\xeb\xeb\xb7\xbf\xcb\
+\xce\xda\xe9\xe6\xef\xfb\xe9\xf2\xfc\xdd\xe7\xf4\xaf\xb9\xc7\xbe\
+\xc1\xc3\xfb\xfb\xfb\xfb\xfb\xfa\xbf\xc5\xcc\xbb\xcb\xe1\xd4\xe2\
+\xf2\xd1\xdd\xe9\xec\xf6\xfd\xee\xf8\xfe\xda\xe6\xef\xd5\xe1\xee\
+\xd3\xe1\xf2\xa8\xb2\xbf\xe8\xe8\xe8\xee\xee\xed\xa1\xaf\xc4\xbc\
+\xd2\xee\xd1\xe0\xef\xc9\xd7\xe3\xec\xf5\xf8\xef\xf7\xfa\xd7\xe2\
+\xea\xd3\xe0\xea\xe3\xef\xfc\xad\xbe\xd4\xcf\xd1\xd4\xe4\xe4\xe3\
+\x98\xab\xc4\xb9\xd3\xf1\xd7\xea\xf6\xd4\xe3\xec\xe7\xf1\xf3\xec\
+\xf3\xf6\xe3\xee\xf4\xdb\xe9\xf1\xe0\xf1\xfc\xa5\xba\xd6\xad\xb2\
+\xb6\xff\xfe\xfe\xe7\xe7\xe6\x9c\xac\xc2\xbd\xd7\xf2\xdc\xee\xf7\
+\xd6\xe4\xec\xe9\xf1\xf4\xed\xf4\xf6\xe4\xee\xf4\xdd\xea\xf1\xdf\
+\xf2\xfd\x9f\xb4\xce\xab\xae\xb0\xbe\xc5\xcf\xc3\xd7\xef\xe1\xf3\
+\xfb\xeb\xf5\xf9\xf1\xf7\xf8\xf4\xf8\xf9\xf3\xf9\xfb\xed\xf7\xfa\
+\xdc\xef\xfb\x91\xa0\xb2\xc9\xca\xc9\xdb\xdc\xdd\xa3\xb4\xc8\xce\
+\xe4\xf6\xf2\xfe\xff\xfa\xff\xff\xfe\xff\xff\xfb\xff\xff\xf1\xfd\
+\xff\xba\xcb\xdc\x98\x9e\xa2\xf4\xf3\xf3\xf9\xf9\xf8\xaf\xb3\xb5\
+\x90\xa0\xb1\xc5\xd8\xe7\xe8\xf4\xfb\xf0\xf9\xfd\xe4\xef\xf6\xb8\
+\xc5\xd1\x94\x9a\x9f\xe2\xe2\xe1\xf9\xf9\xf9\xc4\xc5\xc4\x96\x9d\
+\xa1\x96\xa0\xa8\x9d\xa6\xad\x9d\xa4\xa8\xa2\xa4\xa5\xb7\xb8\xb6\
+\xde\xdf\xde\xf8\xf8\xf7\xe9\xe9\xe8\xe6\xe6\xe5\xf3\xf3\xf2\xe5\
+\xe5\xe4\xd3\xd3\xd3\xaa\xab\xa9\xed\xed\xed\xcc\xcc\xcc\xc5\xc5\
+\xc4\xb6\xb7\xb6\xd5\xd5\xd5\xd2\xd2\xd1\xad\xae\xac\xd9\xda\xd9\
+\xf5\xf5\xf5\xc9\xc9\xc9\xca\xcb\xca\xb3\xb4\xb3\xca\xca\xca\xaf\
+\xb0\xae\xd5\xd6\xd4\xfa\xfa\xfa\xfd\xfd\xfd\x08\xe8\xba\x00\x00\
+\x00\x00\x01bKGD\x00\x88\x05\x1dH\x00\x00\x00\x09\
+pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0kB\
+\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x142\
+\x1f\xc9N\xa7\x00\x00\x00\xcfIDAT\x18\xd3c`\
+\x80\x01F\x06t\xc0\xc4\xcc\xc2\xca\xc6\xce\x81\x22\xc6\xc9\
+\xc5\xcd\xc3\xcb\xc7/ \x88$&$,\x22*&&\
+&.!)\x05\x17\x93\x96\x91\x95\x93WPTRV\
+QU\x83\x0b\xaakhji\xeb\xe8\xea\xe9\x1b\x18\x1a\
+\xc1\x05\x8dML\xcd\xcc-,\xad\xacml\xed\xeca\
+\x82\x0e\x8eN\xce.\xaen\xee\x1e\x9e^\xde\x08\xf7\xf8\
+\xf8\xfa\xf9\x07\x04\x06\x05\x87\x84\x86!l\x0f\x8f\x88\x8c\
+\x8a\x8e\x89\x8d\x8bOHD\x08&%\xa7\xa4\xa6\xa5g\
+dfe#;>'7/\xbf\xa0\xb0\xa8\xb8\x04\xd5\
+\xaf\xa5e\xe5\x15\x95U\xd5\x0e\x18\x01PS[W\xcf\
+\x81!\xda\xd0\xd8\xd4\x8c!\xd8\xd2\xda\xd6\xc4\x84!Z\
+R\xdb\xde\x86!(\xd5\xd1\xd6\x89\xa9\xb4\xa6\xb9\xab\x1b\
+C\x90\xa1\x07\xe4R\x00\x9f\xbe*\xa3\xfa_u\xfe\x00\
+\x00\x00%tEXtdate:crea\
+te\x002023-03-08T17\
+:27:26+00:00\x9e\x98\xa5\x85\
+\x00\x00\x00%tEXtdate:mod\
+ify\x002023-03-08T1\
+7:27:26+00:00\xef\xc5\x1d\
+9\x00\x00\x00(tEXtdate:ti\
+mestamp\x002023-03-\
+09T06:20:50+00:0\
+0\xdd\xe8\xb2\xde\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x15a\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed]ms\x1b\xb9\x91\
+\xfe\x9e_\xc1\xd3~\x89*$\xd4\xefhh\xd7I\xe5\
+\xbc\x95T\xaa\x9c\xca\xd5%\xa9\xbbo)Z\x1c\xd9\xba\
+H\xa2\x8a\xa4\xd6\xd6\xfe\xfa\x03\x86/C\x884)\xca\
+\x92\x15o<\x96\x8a\x83\x07\x8d\x97~\xd0\xdd\xc0@\xc4\
+\xf8\x87\xdf}\xbc\xba\xec\xfd\xd4L\xa6\x17\xe3\xebWG\
+\x18\xe0\xa8\xd7\x5c\x9f\x8dG\x17\xd7\xef^\x1d\xfd\xfdo\
+\x7f\x18\xf8Qo:\x1b^\x8f\x86\x97\xe3\xeb\xe6\xd5\xd1\
+\xf5\xf8\xe8w\xbf\xfd\xd5\x0f\xff1\x18\xf4^O\x9a\xe1\
+\xac\x19\xf5>\x5c\xcc\xde\xf7\xfet\xfd\xcf\xe9\xd9\xf0\xa6\
+\xe9\xfd\xfa\xfdlvszr\xf2\xe1\xc3\x87p\xb1\x00\
+\xc3x\xf2\xee\xe4\xb87\x18\xe4\x92\xd3\x9f\xde\xfd\xaa\xd7\
+\xeb\xe5f\xaf\xa7\xa7\xa3\xb3WG\x0b\xf9\x9b\xdb\xc9e\
++7:;i.\x9b\xab\xe6z6=\xc1\x80'G\
+\x9d\xf8Y'~V\x1a\xbf\xf8\xa99\x1b_]\x8d\xaf\
+\xa7m\xc9\xeb\xe9wk\xc2\x93\xd1y\x96\xee:\xf3\x81\
+[!L)\x9d\x00\x9d\x10\x0d\xb2\xc4`zw=\x1b\
+~\x1c\xd4Es\x1f\xb7\x15%\x008\xc9y\x9d\xe4\xc3\
+\xa4N?^f&>\xd9\x996w\xbd\xf5\xcc\xfeM\
+\xfe]\x15X\x02a:\xbe\x9d\x9c5\xe7\xb9d\x13\xae\
+\x9b\xd9\xc9\x8f\x7f\xfbq\x959\x800\x9a\x8d\xd6\xaaY\
+\x92_\xb5[\x8d\xc8\xf5\xf0\xaa\x99\xde\x0c\xcf\x9a\xe9\xc9\
+\x12/\xe5\xf3\x80\x8ef\xef\xb31\x90\xb7\xc9\xf7\xcd\xc5\
+\xbb\xf7\xb3.}1zu\x94\xf5#\x03k\xd3\xcb\x1e\
+\x9c\xae\xcc\x08\x02S\x9b\xb5\xacv=K\xf47\xa3\xe6\
+\xa7\xe6\xb2\x08T\x96WW6\x1a\x9f\xe5\xfe\xe5\xde\xbf\
+\x1b\x0f\xae\x9b\x8f\xb3\x90\x9b\xfc\xb9\xaet|;\xbb\xb9\
+\x9d\xfd#g6\xd7\xf3Z\xb2V\x9d\x8am\xf6\xbc\xdc\
+\x0a\xdch\xe3\xedp\x9a\xdb8y?\xbejNn.\
+\xae\xb3\xae\x93\xf1\xc9p2\xfb0\x9e\xfc\xf3\xe4/\x1f\
+\xef\xde5\xd7'\xd3\xb3\xc9\xc5\xdb\xdbi\xfe\x1c^\x0e\
+\xdf^6u/\x9a\x8f7\xe3\xc9lp~q\xd9\xe4\
+\x0eoT\x96o\xce\xa6'\xe3\xb6\xa6U\x0d'\xc3\xb3\
+Y\xee\xf0\xf4d\xa9\xdc\xcd\xf5\xbb\xad\xb5~\x1c\xddd\
+;@\x87\xad\xb9w\xab\xdc\xdf\xe6\xec\x1fF\xcd\xf94\
+\x7f.\x86\xa8\xa4\xc8\xc0\xdb\xbc\x9c\x9b\xad\xac\x19N\xfe\
+8\x19\x8e.\xb2o\xb5\xd8z\x95g\xe3\xcb\xcb\xe6,\
+\x0f\xf3\xf0\xf2\xc3\xf0nZ\xda[UU\x17e\x91\xd4\
+V\xdaV;\x9d\x8do\x16\xf7\x85\xda\xd9\xdde\xa6\xa0\
+\x80\x83\x5c\xe3xr\xfa\x1d\xb4\xd7\xf7-4\xce\xd6v\
+1\xbb;\xc5\xef\x8f\xba2\xe3\xf3\xf3i\x93\x1b\x86\x16\
+\xebZ-%X\x14\x8fz'\x9f\xd7\x1alk\x0d\xb7\
+\xb7\xc6\xab\xd6~8\xa9\xd5\xdeM\xe3&K\x94\xf4\x00\
+\x96\x8c\x9bt~\xfeX\x96(\xc5\x83X:o\xaf\xc7\
+\xb2D)\xed`\xe9\x89\x8d\x8d\x0c\x8e\x0eT\xec\xf14\
+\x1a}I\x1aM\x9e\xce\xd8\x80\x0e`\xe9l\xd44\x9f\
+\xc1\x12\xc8A,\x8d\xa8\xf1f\xf4h\x96\xc0\xf6\xb1T\
+R\xc3\xcbm,\xfd\xef\x9f\xdf\xfc\xe9\xc7\x7f\xc8?V\
+\x15\x9f}|u$\xde%\xef^\x1d\x0d \x10\xaea\
+\x93WG\xaaa\x1dy\xb7\xa8\xf9o\x93\xe1\xf54\xcf\
+\xbeW\xaf\x8e\xae\x86\xb3\xc9\xc5\xc7_CH1Q\x1f\
+\xf2\xbfrK\xdaG\xe6\x00\x00\xd4'\x08\x1e\x8d\x8e7\
+j\xf9\xfb\xf5\xc5,/\x1cn\xa7\xcd\xe4\xafe\xf2\xfd\
+\xcb\xf5\xdf\xa7M=x\xdb\x06b'\xc5\x91~D\xfe\
+q\x1b}\xe0\xc5\xa4\xf7\xd5\x1eX\x95w7\xc1\xfa\xfb\
+\xd7\xf8z{\x13\xf2\x90&\x0c\x93\xecn\x02\xfe\x90\x14\
+|{\x13\xf6\x90&\xa2\xc6}M\x80\xbf\x06\xd8\xde\x84\
+\xefo\x02\xf7\xd5\x1e\x7f\xff\x89\xda\x13\xacYqe\xb0\
+\xb5\x15\x1f\x1c2\xdb\xd5\xe3\xe9\xfbI\x93W\xbb\xdfU\
+\xf6\xbe\xec@]1\x1b\xa5\x07\xda\xe4~\xfb\xc7\xd6\xf4\
+1 ;'J\xf9~\x80\x10\x14\xa3k<\xae\x9c\x0e\
+#U^\x17m\x95<\xbf\x97}^g\x17\x7f,\xa3\
+\xff\x844\xd5Q\xc4\xf2\xb5\x8b0B\xfe\x17$\xcc=\
+\xb8c\xe4\x8a6$\x0c\x22\x84\xfc)\xf6:\xcd\x9f\x8a\
+=&\x83]\xf37\x03v\xd5`\xd6\x83C\x142\xf6\
+\x15z\x97Q\xd4\xc0l*\xd2\xc9R\x96\xf5\x9081\
+\xa7N6\xa3h!*D=\xd4\x8c\xa77\x93f8\
+\xfas3{?\xce\xdd\xcc\xba\x14U;j\xf2\x02~\
+\xd6L\x1eNI;s \x10D@]\xc0\xdd\xb3S\
+ \x10\x14\xe0\xae\xe7sy\x92\xa4\xd6Q\xd2=\x5c\x85\
+\x9c\x93\x90**\xe7]b\xf6\xd8\xcd\x0f\xe7\xcd\x1f\x87\
+\xb7\xd3\xe9\xc5\xf0\xfa?/oKw\xf7t\xb8\x8aX\
+\xa3\x1f\x9b\x9f.\x86\xb3\xe5\x93\x98\x98\xaa\xa5\xfb\xd3n\
+\xdd\x02\xb3\xaf\xaf\xf6\xe6]zFkJ\xba\xd3\x9a\x12\
+?\xc5\xa8\xd7\x16)!jm\x8d\x12(\xaa\xfbA\xd6\
+\xf8\x9cNf\x02\xb2\x8b\x16\x81C\x9d\xa1(\x8eI\xc2\
+=\xc5\x89C\x02s\xae\x14G\x90@Zi\xad\x01U\
+\x93:= \xe6\x0dp\xb1@rC\x10\xe3>\xb1\xe5\
+\xb0\x17\x84\x0d\xdd\xe2\xf1\xe7\xba jd`\xd9\xe2\x82\
+\x8cb\x107\x5c0*'\xb5m.\xa8\x0a1\xe16\
+\x1f\x14\xe1g\xf1A&\x95\x84\xea\xbb}PD7|\
+\xf0\xd9\xe6C\x16I\xbb\xe6CQ\xadf\xaaH\x01\x08\
+\x1c\xb9\x9a\xaf\xccB\xe96t\xb2\xe7[e\xcf\xb7\xca\
+N2\x08\x0f\xb1-\x08\xeah\xe4\xda\xc7\x10-\xe6\x9f\
+f@}\x0a\x96\xdcHRI@p\x8f\x9e\x9c\xfa\xc9\
+\x02DG\x95\xbe\x86$\x98 \xc9\x03\xd7\xe7\xcf;\x83\
+\x02\xedrn%|\xc2\xf5G\xed\x8a\x03\x04\x0fh\xc8\
+^y\xe4\xc3\x83'\x11\x07\xa6\x88T\xc5\x11\xe5\x10]\
+P\xeb8Bd\xc1\xb4\x0e\x9f\x1a\x03\xc5DL\x99\xe1\
+\x97\x9aU\x88\xc8\x1e\x13>c\x0a\x18\x89d#\x84F\
+u\x93:\x84F\x0e\xc9!b\xa5\xbci\x10q\xc4\x17\
+V\xde_V\xf9]f;+\xb7\x97\xc3Y\xf3\xeb\x14\
+\xfbp\xfc\x92nH\xca\x15\x03\x12C2\x97H5\x03\
+\x16\x90]1V\x0cH\x0a\x84\xb5lF]\x83P\xd4\
+C\x16\xb2\xfby*\x1113\xf5\x92K~\x05yb\
+\x8d\x08II\xad?\x80\x05\xbb\xe9\xb8\x1a\x0b\x8fA\xcc\
+\xc5\xea\x87\x8a,\xcd\x86\xe2\xa4V\xdb#Z\x88e8\
+\xea\x85\x1cX;\x1c\xf6\xa2\xd4\x91}a\xea0\xd9\x9c\
+\xbb\x8a:\xe3\xb9\xb4V\xc4)\x05\xc2\x9afjgo\
+\x22\x11\x8d/J\x1c\xc3\xbf\xc7$\xf9b\xcb>ey\
+2\x86\x8b]\xaa\x9bA,v\xa9\x84$Q\xca\xadS\
+\x14\x16\xc9\xe4\x0b\x82\x01b\x1f\x8d\x83r\x12\xed+\x04\
+P\xd5\xa4\xf5F\xc9\x00-\x98\xb9x\xbd\xad\xeb\x16\x9c\
+,Y\xb5\xfe\xdc&|^\x09W\x0b\xd0=t\x17!\
+\xe1 Q\xa2QU\x9fb\xd0D)a\xd5\xb8{\x00\
+!\x87To\xecHH1\x09Z\xbd\xa8\x8eA\x999\
+\xe2~3\xdb\xcf\xb5$CP+\xac\x0a$\xa7T\xa8\
+\x8el\xa0i\xc1\xba\x83Yy(\xc3\x10\xc9\x9c\xb5\xef\
+1x\x8a\xa0\xfe\xc0\x05\xf2.\xcbAN\x0f1@J\
+\x09\x8e\xf6Yr7$g\x97\x177\xff5\x9c\xbd_\
+ox\x891r7\x94Kp\xcf\xc6\xfbM\x16\xd9\xd8\
+\xdd\xcd\x8fZ\x97\xa7\xb7\x93\xcb_\x7f\xb7\xa9\xd3\xf1\xf7\
+%w\xed\x0f(\xd3\xd9d\xfc\xcf\xe6\xf4z|\xdd,\
+\xee\x07\xed\xb3\xe8)Z\x90\xa4\x00\xe0\xb2\xcc(\xaag\
+\xfdN'\xe3\xdb\xeb\xd1:\xf8\x7f\xe3\x8b\xeb\x1a\xbd\xba\
+\x985\x93\xcb\x8b\xfcq\xba*>\x1aN\xdf\x0f'\x93\
+\xe1]\xd5ZA\xdb\xad\xea,\x19P\x17p\xd7\xc3\xb5\
+\x87\xccL\xd6\x9f{\x83\x14\x03\x13:\xf6)\x86$\x1c\
+\xb5\xf7\xba7@\x88A\x0d\x91V(f\x10c\x88\x09\
+\x81\xfb\x8c\xc1\xd11Z\x06I\x83\xaa\x1a\xf59\x05u\
+\x8aFm\x05\xcc!\x83.}\x89\x19N)q\x01c\
+\x10\x11\xb7\xbez \x22\xc3\x05\x88\xa9\xc4X\xf3\x10c\
+\x12H\xbd7\xebp*\x8eI X\xea\xed`\x04\x08\
+\x1e9\xfa\xbc\xb1$\x80\x05\x94\x80\xe4T@J\xc1\xdd\
+9u`\xa9\xd7$DUb\xed\xe0R\xafA\x88\xc0\
+\x92\xd6\xe1\x81\x96\xeezJ\xbaj\xac\x02\xbb\x8e\xbdY\
+\x87;5^\xb70&\x8f\xa6+\x95)7\x86\x01\x1c\
+b\xd4ur,e\xd0\x01\xb0&2Zp%u\x5c\
+\x91\x9eG\xc2c\x96%Iq9<\x92\xb6\x0d\xe4\xcf\
+\xbd\xf5\xf1\x15\x0e\xe2\x08(\xa5\xda\x04!9\x89\xfa\x0a\
+\xd6\x5c\xad\x04c\xd6\xcc\x8dhH\x18Sn>\x85h\
+\x82\xd1J\xe8\x8d\x1eI\xad\xed\x95\x84\xa4\x94\x15P\x0d\
+\x9a\xdc<C\x14\x145\x17\xea\x1b\x06gf\xa7\x16\x14\
+\x8d\x89\xa5\xb0\x02\x09\x80Z\xb2\x90(\xa0F\x8ek\xf0\
+\xeb\x05\x0c\x80\xb4\xaa\xa2\xb5\xba\x14,\x81\xdb\xb2\xad\x98\
+\x0a(\xc1c\x12\xa9\xbb\x85\x08\x01\x10\xc0\x17\x0ax\xd2\
+\x0c\x02\x073D[\xa9\xca[Y\xf9\xf9\xde\xfe\xcb\xcd\
+<\x88\xc4\x0e\xee\xbe5r=\x1e5\xb3\xbb\x9bf\x9a\
+\xe3\xcd\xf4\xac\xbd\xa6\x8b\x9f\xb5M\x9ae\xd4\xf9\xf7\x9a\
+@R\x0a((\xf1\x89\xe7\x0f\xfe\xe2\xf3\x07\xa5\xc7\xcc\
+\x1f\x87Y\xcbv\x9b\xdb\x8c\xd2\xe8R\xc8\x16\xad\xc3t\
+*\xe3\xae\xd1\xd6\xc34\x81\x06\x02\xb5\xb8\x1e\xa6\x09)\
+K\x02Y\x1d]\x88 \xc3Q|=\x12\x11IpM\
+]\xc8Z`\x06\x89b\x15\xa5;\xb8\x8a\xd2\x1d\xbc\x1e\
+8\x890\xb0J\x8c\xeb!\x960\x06\x06\x06\xae\xa34\
+*\x05\xb4\xe4\xb1\x8e\xd2(\x1e\x10\xfd^\xa0\x17\x09n\
+\x5cM\x09\x1dXE\xe9\x0e\xae\xa3t\x81\x0dY\xba \
+=oK\x92\x0aV3\x98ZP \x93\x9aF4\x09\
+d\x91h=Hc\x94 )\x22wA\xba\x1a\xc7*\
+Jwx\x15\xa61z\xe0\x14!\xad`- \x05\xc8\
+\x89\xd8\x85i\xb4\x18\xb2\xac\xe3\xbdxh\x14\xd8\x22\xa7\
+\xb58\x8d\x9aB\xa2\xe4\xd8\xc5\xe99XJ\xc5:N\
+\x13\xa4\xa0\x91\x00\xeb8\xdd\xc2(\xd1\xd6\xe34A\x0c\
+\x08\xaa\xeba\x9a\x80\x02%\x01\xbf\xd7\xad\x14\x83\x90D\
+\xaa\xc2t\xc2\x00qmB\xe2\x9a\x95.L\x1f\xb2B\
+\xe3\xafo\x85\xf6\xcc\x13H\xe4\xa0\x8a\x84\xb6m\x02\x01\
+\xaf&\x10\xe3\x00\x821\xea\xe7O \x18\x10\x04\xdc\xb5\
+\xbf\x9c*\xda\xe7>3\x89\x92\xac\xdc\xba\x1bs\x09\x19\
+\x09\x83\x88\x11\xf7\x8d\x02)'\xb0\xcf\x9f@H\xe09\
+\x1e@\xea\xc2\xeb\xcf\xeb\x83\x12Y\x8d\x08\xeb}P\x83\
+ @`Zo\xb5H\x80h(k]\xc4J\xf6@\
+\xed77.\xfdA\xda\x9bEy\xb4\xf6\x87u\xb2p\
+\xe4\x155\x03\x83\x8a\x14\x04\x0d\xce\xa0R\x91\x92\xa5B\
+\x12%\xc5\x9d\xfa\x0a?lG\x89\xe3\x93\x8c6a\x00\
+F\xd2J!\xc6\xc0\xd1,z\xa5V\xcc\xa2.\x09\xbc\
+R\x0bQC'\xbbwS\x0f\x021\x13Q\xeacH\
+\xa8\x90\x04\x8f\x9f\xc0J\xf8A\xac\x99\x88=\x09kb\
+\x81\xc8]SE\x9b\xa6\x8c\xaaC\xaci\x0b\x9e\x22\x13\
+\xc6\x8a\xb6N\xf6\xa1\xb4\x19\xb1e\xda\x9e\x86.\xfc\xa2\
+t9\x05\xa0\xe4ZG\x94(A$F\xa3z\xdf\x9b\
+,$6#\xabC\x8a|\xb6\xda\xe4h\x87\xab\xfd\xfc\
+\xb1\xc4\x831\x8b\xd7\xe4`\x0a\x89\x85\xd9*r\x14\x82\
+:\x98T\xb6Td!Y\x8c\xbaCy3\x87/\x12\
+H\xf7\x9br\x9f\x8f\x8f\x0e\xa7I!D\xf2\xe4u\xa4\
+2\x0a\xc0~\x7fs\x1a5$\xe4\x88\x15K\x9d\xe8.\
+\x96\xe4\x81\xd3\x8d\xf0\x174\x91(E\x1f\x94X\x87\x1b\
+\x0dL\x09\x98k\xdd\x91*\xb5;\xa9]js|\x98\
+\xda\x8cO3\xebx \xd6tO!\xe4\x90\x0cA*\
+}\x08\x03\x02\xa6$\x9d\xe8\x1c\x85$\x19}\xec\xfa\xae\
+\x0e\xae\x82\x85\x22\xeaC0L\xac\xe2\x9f\x1fdM\x22\
+=4\xda|\xe3\xf4\xc1\x9c\xc2\x97\xe54\x06\x88\x00)\
+\xd5\x9cj@2w\xff\x85\x90j\xf2%H\xdd\xaf\xde\
+ \x06\xf5\x08\xc9\xbc\x9fo\xd9\xc1D\xe9\xf8\x00\xe2v\
+\xa9_\x0f*DW\xd9\x18TO\xc8|\xc8\xa0\xee\xa4\
+U\xe9_p\xb51\xa0Zm\xaa#\x83{\xa5(\xd3\
+N\x0d\xf1\x81\xde\x08\xf2\x10\x0d\xf7\xee\x15PPM\xe2\
+V\x7fk\x1c8\xa8\x03w\xe0\xc7V4\x02\xf0\xda\x08\
+\x9cm\x13=\xabD\xb7\xdb\xd9\xcdp\xf4\x90\xbf\xba\x07\
+N\xa6\xa4\xdc\xb7\x90\x9cQ\x14\x9b\x01\x173\x8e\x8e\x92\
+\xac$0\xa8\x1a:k\xbf\xfd{\x81\x93!\xf6\x07\x96\
+\x82%7|\x82\xad\x82d\x89\x0e<3p\xb8\xc9\xed\
+\xb2\x07\x90\xfa(\xd0\xe6Y\x12\x13\xb0\xa3\x83O\x08\x81\
+c\xc3\xcd\xc6\x91\xaf\xde\xc9\xfe\xd6\xfc\xe8\xe0\x830\xec\
+q\xd4\xc8FkOt\xda\xcdDl?K\xe2\x87\xb3\
+t\xde^\x8faIa\x1bK\x87\xb7\x06O\xc7\x921\
+\xeee\xc9\x98\x0fg)\x02G\x80G\xb0d\xac\x87\xb3\
+\xf4\xf6\x5c\x1b\x80\xe7cIx?K\xa2\x8f\xb2\xa5\xd1\
+\xe8\xec1,I|\x8c-\x8d\xce\xdf>\xa3-\x99\x1d\
+p\xbe4\x9d\x9f\xe19=\xf2|\xa9\x99\xf9~\x96\x18\
+}\xab\xe5\x06\xdd\xcd\x93zl\xde\xea\xbeQ\xd9\x1dJ\
+\xcfh\xa8\xfe\x00\xedp\xabv\x11\x9enT\xa2\xec\xb7\
+\xdd\xf8\x98\xd9\x02\xd0\xc4\x1fc\xbb\xf1\x11\xb3\x05\xe20\
+=_\x1cd\xe2\xb8\x8f%&N\x87\xb34\xd2\xc6\x1e\
+3[0\x09\xfe\xab\xcd\x16\x94\x12\xecc)\xcb\xd0#\
+X\x8a\xe5\xdf\xe1,QJ\xf24,\xe1\x0e\x96\x0e?\
+xT\x9f\x0b\xc2g:\x9b\xa7\xa6\xa4N{\xce\x05\xe1\
+\x96\xb3y/v\x08\x8d\xf0\xc9\x0e\x16o\x9e\x19\xe3\xa8\
+\xd5\x97o\x9f\xf8\x1c\xdb\x8b~\xb3\x96\x08_\xe2\x9b\xb5\
+\x0c\xf4b\xdf\xac}\xc9\xaf\x8a\x13=\xc9\x19\xd2\xe7:\
+\xd5\xfc\xa2g\x5cH\xbf}\x8b\xfe\x99}=\x1e\xc0\xf0\
+S\x1e~$\xd6\x00\xd1\xd1\xaa\xc3\x8f_\xe2\x1c\xe7\x0b\
+\x9enc\xa2\xf4ox`|\x7f\x0cd\xfa\xe6\xe8\xcf\
+\xfb\xd6\x10\x96\xaf\xff\xad!_\xf8\xd54\xc4\xf6\xf5\xbd\
+\x9a\xe6E\xa3\x1b\xfb\x81\x84\xed?c\xfb\x0b<\xe3\xcc\
+$\xf0K>\xe0\x0d\xb4[yzJ#A\xf6\xf6\x84\
+\xf1\xf3\x1c\x86~\xe1iQ\xe4\xa9\xa9\x8a\x1e\xc5\x7f\xf9\
+\x07\x97I\xecy\x99{\xfes\xcb?\x9c\x94W\xa6\xb6\
+w\xdd\xe9\x8d\xe1U3\xfa\xe9\xa2\xf9\xd0\xbdW\xf5\xed\
+p\xa5\xc4\xcd\xf0]\xd3\xee;e\xba\xce\xdbk\x91\xf1\
+v<\x195\x93e\x96\xb5W\x95\xb5\xd8\x9aZ\xbc\xf7\
+\xb6\x1e\x9dR\xeb*\x1f\xb6\xe7O\xdf\x0fG\xe3\x0fy\
+\xf9s?\xf3\xe7\xf1\xf8\xaa\x94J\x8b\xeb~~\x99\xf0\
+X,$&\xd6\x8d\xcc\xdc\xa0\x041aOr?s\
+4>\xbb-oe\x1e\xdc\xce\x87\xf5\xe6\xe3F\xf1\xdb\
+\xc9\xa4\x08\x5c\x0e\xef\x9a\xacw\xfb\x81E\xa8z\xa7p\
+)W\xbdw\xa7\xc3\x8aQ\x5c\x8c\xa6E\xf7\xebw\xb9\
+\xa3\xb2\x0d\xbf\xbb\x8f7W7\x8b\xac\x8e\x8f\xe9\xfb\xf1\
+\x87\x9cWv\xcc\x86\x97\xd3\xe6~OK\xd6\xe0f|\
+q]\x14\x99Mn\x9b\xf5b\xb7\xb9\xca\x0e\xae\xcb\x95\
+\xbc\xc1\xdb\xb7\xe3\x8f\xdb\xf3?\x5c\x5c\xe7a\x19,\x95\
+\x05\xb4OH,u\xb7D\x9f\x90(\xe3d\xf0\x89\xcc\
+\xcc\x81\xc5\xe5\x8b}+\xad\x96\x06>\xbb+o~\xfe\
+xW\xb0\xcao\x0b@\x1am\x05Vt\xdfG\xefj\
+\xb4\xa2z\xe56\x9b\xde\xd2\xe2W\xcdl8\x1a\xce\x86\
+\x9d\xeb,\x112\xc4e\xef'\xa3\xf3\xd3\xff\xfe\xf1\x0f\
+\xab=\xd4\xb3\xb3\xd3\xff\xc9\xef^\xee\xb6=\x8b\xc0\xf0\
+\xed\xf86\xb3\xd5\x96Y\xc8\x8d\xceNK\xd0\x18\xce~\
+{q\x95\x1d\xa2\xbcq\xfb7\xf9\xc5\xd7\xd9\x89\x97\x19\
+\xb5p!$\x03U\xb5\x93f\xfeF\xedm/!\xcf\
+?W\x17\xa5\xd0\xc9_g\xf9\x10\xc9\x9fJ#\xeb\x9b\
+\xd6'\x8b\x8e.7_;=rb\xa9h\x9bzw\
+o\x0c\xf3\x1b\xa0\x9b\xcbWGo.\xf2K\xb0/\xc7\
+=\xdc4\xce\xf1\xed\xcd\xd5x\xd4,\x5ch\x99?Z\
+\xa4\x0bu\xdd\x89\xb3\x1d\xe7\xcd\xca\x19\xb3\xee\xaa\xac\xa0\
+\x14\xa5\xc5^]w\xd2L%DG\xd2>R@S\
+\x11\xcb\x07\x81\x90(\x888\xb4\x07~Pb\xf4r:\
+\x09\x89\x830J\x01]\x19\x942\x94S\x14<9\x88\
+\xcdSE\xb2\xbd\xd1\x80\x80Ie\xad\x9c\x05\x14K\xe2\
+]\x03\x05s%\xc2\xd2\xacJ\x80\xc4Q\xfb\x88\x1a\x9c\
+\x941\xd7%)$\x05\xe3\x0cz\x10\xd5\xd8\x13i\xef\
+\x9d\x5ch\x9e\xe0\x5c8\xdf\xb8\x07(\x97\xb4*t\xc9\
+\x5cK\x0a\x861\xd9\x023\xf5^,\xf1\x92\x04\xb8\xef\
+\x16@\x11\x14{\x8b\x02\x05+utI)ut%\
+\x04C\x12O\xba\xaa\x96S\xc9c\x91\xd2\xae@\xdb\x9d\
+\xd5'\xea\x224\x17m\xa4%\x1a\xdc\x8d{\x8a\x01\x08\
+\x94\xfa)\x88X\x04\xf5-\xc3\xd1\x1d\x80\xda<\xfe\xb4\
+\xf1J\xb8\xcd\x03\xeamrr{\xd9\x9c6?5\xd9\
+PF\x9f>\x10\xe5\xc1\x089\xba\xa7\xc5\xe5\xfa\x8c\x07\
+\xa3\xea\x13POc\xde\xacL\xdf\xcc\xfb+7\xef\xa5\
+Y@ \x15s4\xf9\xfe\x93\x07\xfe\x94\xe5),>\
+\xbd\x9c\x9d\xef\xf7j\x06\xfc\x1c\x1d\xf1\xe6\xe3}\xed\xde\
+\xde\xcef\x1b\xca\xb5\xfa,\xd0\xba\xa5\x8c\xcf;\xd6\xbd\
+\x9b\xf4\xb8\xf6\xb2H\xa1Xu\x00#-\x96\x84A\x88\
+\x12R\xc1\x90bt\xeeE\x08\xec\x06)\x15L8\x91\
+[\xcfR)F\xbd7\xa5\x84\x17\xc7H\xc1Hs\xda\
+\xa1\x8f\xedZ?\xaeR\xb9\xde\xf2\xc9\x01\x1cM\xbc\x17\
+-\x80!\xc4\x5c!\x04\x173\xab\xbb\xf1\xf3ft\xa0\
+H+p\xf6\xa9\xbf?b\xbf\xb87\x1c\xd7\x83\xb5\x19\
+i0\xd5\x1c\x14\xa76\xc5\xb9\x83\xbcn\x93\x8ch^\
+\xbc\x09U\xd40c\xa5\xf7nY\xc4\x02\x92n\x02o\
+2\x94\x82\xf3\x02*\xe1\xa2\x06\x8b\xa7.\x92\x89\xbd\xf3\
+TD\x0fD`\x95\xaf\xa2.J\x15W\xad;\xf8s\
+\xef\xd3ng(\xc4D\xdf\x7f\xd2\x22\x95\xf0+\xf0\xba\
+]&,\xc2\xc7\xfbM!\x7f y\xf9-\x83s\xfc\
+@\xf7\xdd|u\xe6WD\xd6\xb7\xd9\xf3+\x9c=\xeb\
+\xc8$\x12\x8f\x0eXC\xed\x0es\x9c\xf0+\x0a\xf5\x9b\
+\xb1,\x82 &\x8f\x9f\x0ef\x9c\xf8_nz\xdd\x19\
+\x9b 8\xa3\x09\xd2*F!\x04e\xe46PE\x17\
+\xd4\xe3\x9d\x06\xb0k\xe07\xdb\xa3\xe0\xec\x84\xec\xe5O\
+\xcb\x03(\xd6\xaa)R\xbf\xbb\xab%X\x03\xa2\x83x\
+\x1f\xd5\x83\xb8)\x1f\xef\x18\x1fI`l\xbac\xb2a\
+\xf8%L6_\xffZ\xa1^\xfe\x90w\xe0\xd6\xff\xc0\
+*\xc1'\x05\xee\x16\x02\x9d\x09\xbe{\xe8ljt\xd0\
+;\xd8\x9ee\xd0\xf7/\x1c \xb8Ar\xd3\xee\xbd\xe7\
+\x92b\xb4\xe3z[\x8e%\xd2A/\x13\xaa\x1f}7\
+\x02\x7f\x94\x02W\x86\xe6\x18TA\xa4O\x18\xc4$I\
+;\xb81(\xa8\xc4~\xe4\xe0`ISk(\x16\x10\
+\x93eT\x83\xa0)`\x8b\xb1\xa0\xf6\xa3\x05'G\x8e\
+ma\x01\x06\xeeGo\xa3\xb2a\xa9\xb2\xc4kJ\x01\
+\xa2\x9b\x95\xca\x5c\xfa\xc8\x14\xcc\xc0s\xc2\xdb\x84+z\
+jS\x9d\xe8\x9b6\x9dR J\x18)\xa7\x89d#\
+\xad\x14b\x04\xe7\x85\xfcF\x9a8$J\xc4T\x9a.\
+i\x08\x91\x9d\xb5\xb4&\xc1%\x22\x97\x09\x87T\xc8y\
+\x93\x94\xc3^2C\xb81a\x048h\xca\xb0/\xfd\
+\xb8y\xf2n\x97\x9f\x95\xc2\xdb}j[@&\x22;\
+\xbe\xa7P\x80\x18#\xa4\xe8i~\xbdd\xb4E\x8f\xc7\
+\x87x(3\xcf\x0dz\x97\x9fZzR?\xc5\xfb~\
+J\xd17\xfd\x94P\x02n\xf8)!\x85X\xfbi\x8b\
+\xa5\xdaOKa\xd8\xf0S\x8a\xb1\xf2Sr\xec\xfc\x94\
+\x5c;?-\xa9\xcaOs\xba\xf2K&\xbc\x9f\xae\xfc\
+\x92\x5c\xef\xa7+?-\xe9\xceO\xc9q\xc3OkR\
+j?\xddo\xc2\x9b\x1e\xb9\xdb\xa8\xfdSF\x9d^\xc0\
+[\x0f\xdf%\x22\xfd\xbce\xac\xbd\xc8\xf3%\x84d\xed\
+\xd3\x80\x05T#\x9d?\xd2\x91\x00\x01\x15\x90!r\x94\
+\x9ex\x1fc\x10N\xe8\xde&\xd2B\xfcMI\xc9\xfc\
+\x91n\xf5i\xba\xaa\x8c0$N\x02\xa9o\x16\xd8@\
+\x15{\xe4A\xb4\x08\xf4-\x06(\x17\xf68\x05F\xd2\
+\x8c\xe4Bf\xc5\x02Y\xa5$\x13\x84\xe4\x1as\x05\x1c\
+\x80\x1c\x84{\x88\x108wZ-\x08\xcc{\xa1\x12\xa4\
+@\x18\x030\xb6M+\x07\x02$\xc1V\x0f\x8c\x92\xb4\
+\xa7\x14\x00\xd4c*\x18\x98j\xd4\x0d\x0e\xb6\xed\x5c\x11\
+1\xed_\xd2\x97\xc7\xba\xc7m1*\xc8\xe6\x94\xf6\x95\
+\x99\x0fF\xf4<z\x05\x84\xa4\xea-\x98XI\x8bI\
+q\x84\xd8BJ\xeeT\x8c(\xf8j\xc4T\xac\x14-\
+\xa0\xbaS* C\xd2\x98\x0a\xc4\x9a\xc0\x0b\xa4n\xc9\
+\x0aB\xe8\xf3\x92\x89\xd2\xaa$\xa1BjAvvj\
+!\x22\xe6\x16RBOuQ\x83\xc4\x8b\xa2\xa8$\xd4\
+\xc7|C1Q[\x14Rt+\x10\x83E\x98CF\
+Z\x10I\xd4j:\xc7@\xbc\x80\x0aD\x84sH\x84\
+Z\x08\x99u\xbd\xa0\x12\x0b/\x0b\x92\xc7\x16\x8c\x08\xa4\
+\xa5k%\x91\x901\xce\x13\xa9cTbH\xf9\xc2\x16\
+\xa4\x18-.%8:\xd22!\x85\xd0\xb9G\x12T\
+I\xe1\x10\x85\xd0\xe7\xc9\xb9\x87\xd4`.^\xc0\xb6\x0f\
+\xc9\x17\xbdLE\xabD\xad\xb3D\x92\x98Q\xa5 \x0c\
+:\x1fJG\x11\xeb\x5c\xaf(\xc5\xf36\x11R \x9f\
+\xbb(\xc8\x82\xae\xa4!\x1aF\xec[1\x1b\xf1Lt\
+\x5c2h\x12\xc4T\xb2\xee\x06\x8bH`\x01\x5c\xdb!\
+*b\x86\xa6T\xc4\x8c\x13\x99\x96\xcaX\x91\xdb\xed.\
+\xd6$\x1eK\xa3\xcb\xb0`1\x99/;\x22`\xd4\xa2\
+\x11\x17C^\xd0H\x16\xb1\x95\x05\xf6dmP\x01\x8d\
+\x9c\x0a\xa6`\x09\xe2z\xa0\xe1\xb4\xa0\xb3\xc5d\x89Z\
+\x9c\x13\x18SHm3,K\xa3\xac\x83\xd2r\xe8\x95\
+\x03\xc7\xa4\xad\xcb\x08\x92Q\xcb)\xdb\x22\xde\xa2Fe\
+\xed).J\xdar\x1c_\xb7\x98\xa6\x14\xe7 \x80q\
+\x0b\xc5Hs9Rl\x91\xca\x1b\x0b\xc0D\xcas\x90\
+1\xc6\x02!;y\x0b\x01\xb1\xc5m\x8e\x5c\xde\x92Y\
+b:/=\xe5\xcd2Y\xcc\x7f\x99\x94*iZJ\
+/\x93!\x97\xd2J\xa45\xc5O&\x917\x92U\xe3\
+]r\xeb\xae\x9b\xed\x89\xd0\xd3\xf6:\xab\xae\xe9\xee\x9d\
+\xb8\xc7\xd7\xb5\xed\x81]\xbe\x05\xcfo\xc1\xf3[\xf0\xfc\
+\x16<_<x>xYJ\xf6U\xed\xb4\xb4On\
+?\xe4\xaf\xa5\xe5\x8f\xff\x07K$K_f\x83\x00\x00\
+\
+\x00\x00\x1b\x90\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed=io\x1b9\x96\
+\x9f'\xbfB\xeb\xfe\xb2\xc1J\x14\xef\xc3\x1dg\xe0\xb3\
+\xd1@\x0ff\xb0\x99c\xbf\x05\x8aTv4-K\x86\
+$'v\xff\xfa}\x8fu\x97\x8aeQ)w\xecA\
++\x08,\xb1\xc8G\xf2\xdd\x8f|E\xbe\xfb\xf3\xc3\xed\
+b\xf0%Yo\xe6\xab\xe5\xc9\x11#\xf4h\x90,\xa7\
+\xab\xd9|ysr\xf4\x8f\xbf_\x8d\xec\xd1`\xb3\x9d\
+,g\x93\xc5j\x99\x9c\x1c-WG\x7f~\xff\xe6\xdd\
+\x7f\x8dF\x83\x9f\x92e\xb2\x9elW\xeb\xe3\xc1\xe9l\
+\xf5)\x19\xfc\xbcX\xdco\xb6\xbeh\xc08\xa1\x84\x0e\
+\x07\x1f\xfe\xf9\xd3\xe0\xf2\xe1n\xb5\xde\x0e\xfe\xb6\xb8\xbf\
+\x19\xfd\xbc\x1c\x10_\xf8\xcf\xb4\xcf\xe3\x81&\x94\x0e\xce\
+\xee\xe7\x8b\xd9@1)\xed\xdb\xc1`4z\xff\xe6\xcd\
+\xbb\xcd\x97\x9b7\x83\xc1\x00\x06\xb8\xdc\x1c/7'G\
+\x9f\xb7\xdb\xbb\xe3\xf1x\xb9!\x13\xec\x8fLW\xb7\xe3\
+\x0f\x93/\xc9\xd5j\xfd\xaf\xe4\xd3\x18\x06?>*[\
+\xcc\xa6E\x8b\xbb\xfb\xf5\x82\xac\xd67\xe3\xd9t\x9c,\
+\x92\xdbd\xb9\xdd@uV\xad>-\xabO\xd7\xc9d\
+;\xff\x92\x00\xfc\xdb\x15\xf4\x86-\x97\x9b\x1f*\x95\xd7\
+\xb3\xeb\xa2\xf6\xd7\xaf_\xc9W\xe1+1\xe7\xdc\x98\xf2\
+1\xe7#\xa81\xda<.\xb7\x93\x87Q\xbd)\xcc\xaa\
+\xad)\xa7\x94\x8e\xe1YYs\xbfZ\xc7\x0f\x8b\xf9\xf2\
+\xd7\xe0`\xfc\xd3j\xef@\xd9;\xf8_4\xc8\x0b\xc8\
+fu\xbf\x9e&\xd7\xd02!\xcbd;\xbe\xf8\xfbE\
+\xf1pD\xc9l;\xab\x80\x01\xa0\x9b\xe9\xe4.\xa9\xf5\
+\x9b\x17\xa6\xf8\x9a\xdc&\x9b\xbb\xc94\xd9\x8c\xf3r\xdf\
+\xbe\xc6jX0\x9f\x9d\x1c\xfd\x02\xc8^,V\x1f\x99\
+/\xf9:\x9fm?C\x05n\xfd\xcf\xcf\xc9\xfc\xe6\xf3\
+\xb6\xfc\xfde\x9e|=[=\x9c\x1c\xd1\x01\x056c\
+\xf0?\x85\xb4\x02\xd8\xd7\x8b\xd5\xd7\x93\xa3/\xf3\xcd\xfc\
+\xd3\x22\xed0YN\xe0\xeb\xe8\xd3d\xfa\xeb\xcdzu\
+\xbf\x84\xee\x96\xc9\xd7A\xb31\xcc\xeb\xd8\x8f\xf7\xe4\xe8\
+n\x9dl\x92\xf5\x97\xb4y\x8e\x82\xe3b\xe0\x94\x08\x9e\
+\x8e<\x9bW\xf5\x91\xb4\x84\x0d\xd6\xcehZo=[\
+M\x11#'G\xb39\x08\xd2\xcdh\xbe\x04L\xdf\x02\
+\x97\xad\x96\x04\xe8\xf9[\x1d\xe0\xea~{w\xbf\xfd\x98\
+<l\x93e\x0a\x19PZ\xc1\xaf\x7f\xec\xdb\x91\x1ar\
+7\xdb\xc7\x05\xf4\x91#\xe2\xb8\x8a\x87\x02x\xe2\xa5q\
+t=_$\xe9\x90\xc6\x9fW\xb7\xc9x6\xf92\x9f\
+\x8dW\x0f\x8f7\xc9r\xbc]\xdf/\x7f\x1dC\xfd\x05\
+\x22o\x0c\x0a`{\xbf\x19\xb7\x8c\xfdny\xd3\x0a\xfd\
+av\x07<&\x041\xaa\xf5\xf9c\xe5\xf9\xfbw\xb3\
+\xe4z\x93\xf3\x02~\xe7\x8ck(\x06\xdeM&\xeb\x9f\
+\xd6\x93\xd9\x1c$\x16+T\x00MW\x8bE2\x05\xbe\
+\x98,\xbeN\x1e7G\xd9c\x80Po&\xac\xc5.\
+6\xdb\xd5]Z\xa5@\x13\x16\x8d\x00\x0c(\xb0\x1f(\
+\x15L'?\xfa\xa2\x15\xb0\xc1|\xfbx\xcc~<\xca\
+[\xac\xae\xaf7\x09\xf4E\x8b\x12\xec\x08k\x03xs\
+4\x18\x1f\xd4\x01\xdd\xed\x80\xb5u\xe0|\x07\xe3\xfa\xbc\
+zC\x8f\x11\xcf\x8a\x1e \xf0\xf3\xa2\xc7\x98gD\x8f\
+4\x92=#z\x00\xbcxV\xf4@\x07*\x02=\xbb\
+\xf3\xa7\xbc9\xff\x024\xe5\xa2c\x8a-\xb3\x98\xc8)\
+Md\x03M;\xd3\xaf\xc0W\x1d3\xdc\x13>\xfd\xb6\
+\xd9\xb3\xa6p\x94\xa3c\xbb\xa3\xeb\x9c\xfd\xb5\xff\xec0\
+Ix\xfa\xcc\xc5M\xbf\xad\x83o\x9a>\xb7\xda\x1e=\
+!8\xed\x83\xe7\xd6\xd08\xecP:\x95\xd3\xe9\xbe\xbc\
+\x01\xf0y\x0f\xc8\xf9\xf1[\xb0\xa3\x99\xc8\xb1s\x93\x15\
+\xfdc9\xdf\x82\xdfv\x0f\xee\xc3\x07\xf4%\xfe\xba\xfc\
+\xc7&\xc9\xea<\xb0\x93\xa3\x91\x95\xe0\xecrIs\xc1\
+y\xc4Ba\x05q\xce\xe4\xc3\x7f\xe0P\x86\xee3\xe5\
+9\x03<\xf2\xddjy\x9f\x7f_O\x96\x1b4\xc8'\
+G`\x93\xd7\xf3\x87\xff\xa6C6\x1c\xb1!\x1d\x8e\x84\
+\x83\x16V\x0d\x99\xa4\x1e\xdc\xdb\x06\xb9\xf6\xa4\x8ceI\
+\x932?\xeeh\x1a\x0d\x9d\xec\xd0k/\xd2P*\xa7\
+\xce\xee\xd3\x01\x7fFM\xaf\x9c\xa3Ok\xfa\x80\x10?\
+\xad\xe9\x01<\xdfG\xd3\x07\xf8\xf4iM\x0f\x1d\xc8o\
+ag\xe54\xfd\x83\x9d+\xe8\xd4\xbb\xf4\xda\x93\x9d\xc1\
+'a\xfbt\xf0\x8d\xf4\x02\xfb\xf0\x9c\xfc\xcaw\xd5o\
+\xbf\xfc\xcaE\xfb\xfc!2\xd9&\xeb\xbd\xc58\xad\xae\
+\x9c\xc2\x90\xe1:\xf9ir\xbf\xd9\xcc'\xcb\xb3\xc5\xfd\
+\xba\xe8\xb3\x1b\x0aNlv\x91|\x99\xfb\x98\x06\xc38\
+\xa5$\x03\xc7R\xd4F]\x87\x0d\x1d\xdat\xfc\xe9\x00\
+\x0e\x1c\xb7\xa6F\xf65nF\x1c\xe8H\xcal\xc7\xb0\
+\xa1?]\x1f\xf6t1\xbf\xfb\xdbd\xfb9m\x93\xff\
+\xea\x92}\x84\x9a\xd7\xd3\xd4\xa2\xda\xbc+\x00\x0c\x06\xf0\
+\xf4/\x83\x11\x13\x8aX\xc9\x87N\x10\x01\xce+\x95\x83\
+\xd3\x81\xa0D;\xca\xb9\x1b\x16\xdf0\x0c\x87\x7f#\xe6\
+\x0c\xe1\x9cK\xbdw\x83\x1d\xf8\xbf\x95h\xc9\xc3\xee\xf5\
+#\x04\x99y\xcb\x96\xc7\x0f\x9d\x8f\xa7\xd0\xba\x00\xdf\xf2\
+\xf8\x015\x9b\xd6D\x09\xce\xeb\xacr\x97b\x867\xf5\
+D)\x82\x80\xfd\xc5\xf1\xfdz\xf1\xdf? \xdfO\x16\
+\x85WA\xad|\xeb\x9fV\xe4u\xb3]\xaf~M\x8e\
+\x97\xabe\x92}\x1f\xf9E\x92\xe2\xd1\x08e\x088\xe5\
+\xd8\xafpT\x0b\xff\xbd\x9a/\xeb\xa5\xb7s \xfbb\
+\x0e\x7f\x8ee^6\x9bl>O\xd6\xeb\xc9c\xad\x0f\
+,M\x05\xf8\x98\x11\x0a\xf2\xe0\x9c\xb7\xd3\xfeam*\
+\x001\x9dL\xc9\xd4ow\x11\xb6}\xc4\x15\xa3\xc9z\
+\x9a2`\xceB\xef\xdf\xd5Q\xb0\x97\x04\xf9\x85\xad\xe3\
+\xcf\xeb\xe4\xfa\xe4\xe8\x87\x16K^r\xea.~#\xcc\
+\x5c\xd8,\xa1E\x82\x7fD+c\x99\x91\xf0\x9ds\xa2\
+4w\xd4\xe6Soe\x10d*\xad\x88\x13\x96\xd3\x9c\
+?\xae\xdb*^\xb7T\x5c\x03\xbf2\xc2R~E$\
+\xf6\x8b\xb9\xaa\xc3\xbf\x839\x11\xe7 t\x18t\x98\xa6\
+QZ\x9a\x06\x06G\xc6\x10\xca\xc0z\xb2\xff\x00TV\
+\xdc\xa9VT\xf2\x08T\x06'\x0f\xfe\x177J\x1a\xf5\
+\xd4\xe4\x9b\x15\x9f}\xf2\x1d\x12(\xd0\xf1\xf9C\x02\xdb\
+1W\x09*[1\xa7\xfb`\x1b\xc64\xd1\x9cS\xf7\
+\xd4\xe4\x9b\x15w&\x7f@\xe4\xb5?\xdb4\x16*\x9d\
+1\xfd\xb0\x0d\xd1V\x09\xd03\x9e}\xca_B\x09b\
+\xb5`\x1c\xa2\x0d\x06\xb3\xb4\xca\x8a\x9c\x8f|\xb4\xc3\x8c\
+&\x16]\x94J\xb4c8\x11\x8eK\x91c-\x8dv\
+\xa0\x22\x93\x92\xe6\xe3\xc5x\xc7\x81\xb7\x22\x00\x9f\xec\x19\
+\xf0\xe6\x97\xa9\xc2x\xb3\xfd\xa8\xed.\xbc\x01\x8fp\x8b\
+x3D\x0a\xc9\xeahS\x96\x18m\xabXcL\xa2\
+\xa0\x16>W\x8a5\x0b05\x155\xacq\xc287\
+N=\x0b\xb7\x15\x0bl\xadX\x13/\x8f\xdb@\x17i\
+I\x95\x93Mn\xabU\x84BF\x1d\xa1N)\xfe,\
+\xdc\xc6Y\x17\xde\xfa\x92Rc\xb9\x85`%\xc3[\xfe\
+Kh\x01\xae\xa8\x848\x01\xf0\x86\x81\x9ai0\x1b\xee\
+\xc1I\xa9*X\xd3\x96P\xad\x85\xabs[\xb3\x22b\
+\x0d\xd8\xd7R\xa9\xd3\xb8\xee\xa0pN\x1a\xe0\xdf\xde\xc2\
+P\xb4\x06T\xaa24\xd9\x8d\xe7\xa0CW\x8f\xe7z\
+\xa66n\x80\x84\xa8\x0d\x0fM\x9dgA\xcb\xe9\xc2V\
+zQ\xe7\x8aP\xa5\x85\xaa\xb3\xac$\xa0\x96\x0ag\x13\
+\x91\xaf\x0d\x11V\x99\xa2b7\xfb\xf4oy\xfdFX\
+\xd0\xf2Z\x93\x13\x01\xad*h4M\x9d(\xdc)4\
+\xaa\xc2\x11\xa1\x99\x13U_\xacY\xef\xba\xa5\xde\x1a\xf9\
+\x8eH\xcd\xa9\x89\xf1\x09\xc3\x92#\xc0a\xa1\x9a3\x95\
+I\x0e\xe3B+\x09\xee53 F\x9aY7\x1c\x81\
+\xfaU`\xec\x1d\x7f{8\xab\x0bkY\x7f\xac.\x95\
+\x95 \xe2]\xac\x0e\x1d\x8a:\xab\xf7\xcd\x01Vup\
+\x80\xe3\x15\x0e\xd0\x10\x10\x839\xe7\xb2\xc2\x01\x10\xbeX\
+`\x22&+\x1c\xd0\xacw\xddR\x0f9\x00#\x1f\xb0\
+\x88M\xe6\xdf\xa5.'\xd6P\xf0\xd5R\xea\x82\xf7!\
+\x1c\x84R\xde\xf6\x0ap:\x14\xc5\xaf\x94\x11%]a\
+\x86\x9f\x16\xa5\x03\x19\xc0\xf5\xb6tEAo8m\x8d\
+\xea\xa4\xbf\xd3=\xac\xb8\x81\xbf\xa6\xfa\x1b6c`\xcf\
+y\xe7\xb0\x1d7\xf5a\x8f1\xc7\xe1\xfd\xbbb]\x04\
+\xd30f\x98\xd6\xf2\xa6:\x82\xaf\xf3\xe5l\xf5u\x94\
+\xa7\xbf\x98f\xd6I\xf6<\xcb\x961\xd2\xd6\x1f\xdfM\
+n\x92\xcd\xe7\xc9\x0c\xf3a\xf8\xee\xa3l\xf9\x06\xa7\x90\
+\xba\x877\xf7\xf3Y\xb2]-\x12`9\xcc\x82a\xc5\
+\x835\xf4P-\x87\x8f\x7f\xb0\xfa\xf4o\xc0P[\x93\
+O\xab\xf5,Y\x17]\xb0Z\xb1_8\x06\xe1\xd3\xfe\
+\xe3\x1f\xe0\x80\xf2\xe2tA9\x1d0\xe0\xf2\xd3d\xd3\
+\xc8_\xf9m\xb5\x02q\xe0`\xbd\xd1T7f\x8d\xb2\
+)5\xe1\x8ae\xfe[\xf9$\xd3\xbdVim[1\
+\x09MM\xb3U\xf6\x08\xdb*\xd9\x00x\xbf^\x83P\
+\x8d\x16\x93\xc7d\xdd\xcca\xaa$-\xdd=\xf8\x922\
+\xab)+\xd8|^}E\xdc\x9e\x1cm\xd7\xf7\x8d9\
+b\xf9\xe8n5_\xa2\xbc\xee>\xceFu;y\x98\
+\xdf\xce\x7fKf\xb8\x80\xff\xfe]\xadu\xc9\xf5?\xc1\
+\xaf\xab\xf5\xea\xf6o\xeb\x04\x10\xf6!\xd9n\xe7\xcb\x9b\
+\x9c\xa1\xd3%\xb9\x87Gl\x92\x15\xad\xd6\xf3\x9b\xf9\x12\
+\xf3\xab\xb2\x81\xe6E\x8f\xd5\x22\xcc\x95\x028\x88\xeef\
+\xd9c\xb5,'+rMF\xd6\xc1 \xb9\xbdk-\
+\xaf0%/\xabVJeY\x9au\x06}\xa5\xc2\xb5\
++M\xef\xdf\xbc\xbbM\xb6\x93\xd9d;\xc9\xb9)\xff\
+-\x8e\xde\xbf\xf9\xd3;\xcc\x87\xbb\x86j\x7fJ\xbf.\
+\xe6\xd3d\x03\xb0\xaa\xbf?\xf8\xac\xb83\x5c?\xf5\x19\
+J8_?\x06\xe4\x88\x06\xa5i\x9d\xce,\xe3y\x90\
+\x90\xdb_\x92\xeb\xed_=\x123r\xfan\xde\x8d\xf3\
+\x11\xbc[\xcf\xae\x8f\xff\xf7\xe2\xea\xfd\xbb\xe9\xf4\xf8_\
+\xab\xf5\xaf\x99e\x80\xd2\xc9\xa7\xd5=\x80\xc7,\xa9\xe9\
+q\x9ax\xf5~~\x0b\x02\x83y\x80\xff\xf3p\xbb\x00\
+uR<\xc0:H\xd2\x5c\x1b!\x80u\x92\xa6\xf6\xb5\
+fC\xce\xa6\xb7sl0\xfe\xb0\x9d/\x16?#\x5c\
+\x8fN\x843\xdf.\x92\xf7\x1ez\xfe5\x1b\xdc\x8b\x19\
+e9\xa0q\x81\xc0qNc\xc0ji\x1f\x90\xf8\xa7\
+?\x7f\xfcp\xbd\x9aN\xb6\xf7\xeb\xc9\xc7\x94\x03v\x8d\
+@]\xbf\x8bB\x0f5vQ<\x01\x0b\x8d\xde\xd9\x13\
+\xdf\xab'\x1e\xe8\xc9E\xf4\xc4\xf6\xea\x89\x05zb\xbc\
+\xd9U\xbe\xa9\xd3\xb2\x80\x9f\x82\xf5{\x1a\xe5N\xc6n\
+p\xf0\xeaw20\x9e{[ \x0c\x11\x22M\xb6D\
+\xd6\xb5\x0f\xd4\xb1\x85\xd4\xb1\xf9\xd4\xb1mU\xdbS\x1b\
+\xb4n\x91\x0d\x9a[dOn\xaa\xb5\xb5\xd8\xe9!\xdd\
+U\xdb\xee8\xa2#\x08&\xa8\x15\x8e\xc9<B\xcf~\
+\x8d\xa0C\xdc\x9e\xe7j8r\x8e@\xa8\xeex\xb6\xb4\
+\x81;>#D\x22\xe6\x91/S\x19\x8ee\xb2\xddM\
+\x89W\xcfd\xe5vY\xced\xdcj\xf9\x07\x93y&\
+\x83\xb0\x80)\x96\xee\x15U~\x02\x971\xe248\xd7\
+C\xce,\x11T*\xbd\xc3d\x1e\xc7\xd5\x9d\xea\xb75\
+\x96{\xb2\xbf\xd6\xeeF.\xeb.\xdbe\xf8\xdeX\xeb\
+ \xe8>l\xd0\xc1<-<\x973\xa8RY\xfa\xe3\
+\xd3\xf2\xc9_\x97|\x1e\x05\x94Q\x95q\xbaY\xec\x0f\
+\xd6\xfa&\xd6\x02mh\xf7d\xad\xff\xa4L\x89'X\
+\xee`\xf3\xa8_\x17\x8e\xeaZ\xc6Q\xfd\x87\x19\xf4\xba\
+C9\xad\x9c\xe1\x99\xee\xc8\x7f\x8d8UDX\x89k\
+\xba\xd6\x11.\x0cG_\xab\xca8%.\x19-\xa7\xa7\
+!\x96v\x8aI3d\x94\x18'\x84\xb4\x83\xf3\x81\x10\
+\xe0\xae\x19\xdcK/K\x19\xf4\xc6\x94\xe5|(81\
+\x1c\x1e\x8bJ\x99r\xc4\x18\xae\xb1qY\xa89\xe1\x8e\
+\x1a\xa1\xb1L\x1b\xa5\xb4\x1aj\x89[8Rk\xfff\
+\xa0\xe4\xd2\x8a\xa16\x849\xab\x8c\xc3\xd6X\xaa\xa8\xf2\
+\xa5\x9c)%\x9d/\x13\xceZ\xe5\xcb\x84\xe4\x86\xd7[\
+s\xc5\xb8T\xd0\x9as\x22$\xa3P\xd1\x12\xeb\xac\x84\
+\x01\xc1\x5c\x04\xb5\xa0a\x87\x1a\xc6\xc8\xb5\x92f %\
+\xd0@\x09%+e\xe7\x03\xf8N9\xd4\xe5\x95R\xc7\
+\x884\xd6\x81z\xd6\x8ah\xcd\x04\x87YS\xf0f\x0d\
+ h\xa8\xa0\x17\x8e~-\x0e\x9cZ\xd0\xde\x16\xfa\x01\
+\xfcp&\xac\xe0\x03\x8b\xac\xa0\xb9q9\x1e\x15o\xc5\
+\xf8o\x83\xaa\x10\x17\xe9\x930\x05\xce\xa0\xc6\x8f\xa1\xd0\
+\x0aw\xd9^\x99Xw\xfb]0eFA\xef\xdb,\
+\xa5#\xff\xc5\x04\x90\x86\x19\xc7\x86\x0aX\xcar!D\
+\xc52\xfa\x8d=\xae\x06 G\x12\x9c@\xa3@\xe0\x80\
+D~A\xb6\xfc\x92\x89\x9bt\xc4\xaf\xb0\x0f\xf7\xaa\xbd\
+\x0b\xba\xc5\x22\xe6\x8dvuM\xfb\x13\xbf\x04\x99\x03\xdc\
+\xd5k\xf5\xdd\xa2\x5cn1\x99\xb8\x9dK2\xfe\xf0\xc4\
+h\xe7\x856\x8b`\x8d{[\xe7\x0f\x10\x0am@J\
+\x99xVF\xe92\x83\xb8\x97\xb4\x97\x19,\xb5\x197\
+\x1d\x8eV\xeb\x96\xfb\x08\xd3Y\x94D\x97\x8bQ\x8d9\
+\x09\xa2\xe1gA\xdc\x8a\xf8\x1f\x82\x1b\x86\xc4?\xcf\xcb\
+\xb42X\x06|\xa8\x95N\x0b\x81\xb8X\xe4\x94\x01\x05\
+W)r\xf8'o\x89%\x8c)\x02\x1a\x95c%\x8e\
+\x12\x02Z\x8aqK<S\xc1@\x14n\x10\xf1J\x19\
+\xb4\xb5\x00\xd8rJY\xa5\xa6\xc1\xcd\x7fkP\x7f\x94\
+\x10\xb3\xc2j\xbfe\x91\x1f\x9du\x22+S0\xb5l\
+\x16R\xd6\xebe\x935\x1a\xb4,\xb0\xa0\x1eb\x82\x86\
+\x94\x02\xfb\x05\xb3\xc2$\xd8\x0e\x10FnZFm\x8a\
+Q3N\x89c\x82\xd5j\x82\x1a\xb6\x5c\xd3\x02\xa4\xd4\
+-\x88\xae\xebA\xcf\xd5?\x80\x02\xb8N&\xafJ\xc9\
+\xb506\xa6\xa5\x87\xecq\xb6\xf9Q\xd8c\xe02\xc1\
+\xd0:X\x0ev+\xb7\xc7\xcc\x18\xa3+\xa5\xb8Yl\
+\xb5\x04z\xa0=\x06\xf8\x5cW\xca\xc0\x1e[p)\x9d\
+K\x0drV\x0a\xd0\xa9\x82\x8fK\xcb\x04G\xabHA\
+\xa3\x1aAM\xbd\x9e\x92\x12\xbaI[;\xc7\x1c\x95C\
+\x81;\xca@:\x8e\xe31B*\x07v\x8d\x83\xb1\x07\
+b\xca\xea\xc8\xd32\xcb\xa0\xb5\xc5\xc41+\x9c\xa9\x94\
+\xa2\xa5\xa4\x9c\x0a\x8d\x10\xa9\x00w\x80{\x9b\x8a\x09T\
+\xde\xa4\xc2d\xa8\xf7$\xd0\xd0R\xa3EZ*\x8cH\
++J0\x01iM\xad\xb8Ui\x198\x0d\xa6\xd1\x1a\
+\x18_8\x96\x1ad\x9c\x99B\x83\xcc\x80\xdb\x01b\x86\
+H\xa3[Q\xde\xc2\x88\xed\xe6W\xbcb\xf3[\xee\x94\
+\xacf\x09\xaa\xd9\xcd\xc9\xd1t\x03\xff\xa6{\xad\xebb\
+\x22^s\xf6\x84\xbe\xec\xf9\xffX\xf1\xad^\xb1\xd01\
+\x02\x22%\x84\xab\x8e<-S\xa6.tE\xe9\xeb\x11\
+\xba\xca{\x13>\x01\xebM\xf1i\xc9\xf3\xc0\xca\xff\xf7\
+\x97_~\xbe\xf8\x080>\xa6\xeb~\x98n!A\xd9\
+H\x9d\xbd\x90\x86\xfe\x96R\x10\xa0(\x90X_\xb2>\
+9\x02?PC\xb4\x95e\x83=\x9dj\xd3\x95\xc7\xee\
+R//sZ\xd3_\x98\x98\x06a\x9d\x81HH&\
+#54\x04p\xe5\xa8\xc5\xb7\xd5\xde\xfc\xa9x\x9d\xaa\
+\xfe\xe6U\xfb{j\x8e\x9f\x17\x98\xf1o@\xa6\xefr\
+\xb7@aa(\xfa2\x0bkK(&\xdb\xe8\xa9\xa3\
+5CxK\xfeX\x15\xd9\xe2\xe3\x9ex\xc3\x840\x89\
+\xc9\xd3\x5ce\xc8\xf7\xf9\xb2\x06\xa22f\xb3\xf8\x1c\x93\
+\xc1$\xc4J\x92\xb1\x8c\x1e\x98\x09V\xd6\x89B\xd8\x85\
+\xff\xd4\xa7jX\x00a s!8W\xfe\xd3\x80#\
+\x82p\x1c\xc8p\x08\xd4\x99\xff4@\xa9\x0c\xfb\x8d\xd7\
+\xde\x9e\xc4\xbc\x8c\xc1\xbc\xcf)eR\x14\x88g\x8a\x13\
+gt\x96K\xf8\xe0\xb3\x1d9\x087/\xf1^\xaf\xd2\
+\xc5\xf7\x86\x1a6\x1ce\x7f\xeb\x7f\xc0\xb9\xb3\xa0\x5c\x86\
+x\x10\x0apZ$\xd3\xb7\xd1\xd0\xd2~hhyo\
+4\xb4\xf2@\x1a\xaa(\xe9\xc1\xc5\x13WH\x06J\x0f\
+\x98\x0f\x01\xca\xcc\x94\xd2S\xaf\x83y\x94\x9aP\x5c\xba\
+0q\x98o\x9d\xa6\x0bb\x8cK\xaeC\xa0.\xfd\xa7\
+\x0e\xca\x85\x05Q@h\x12\xc3\x0f.,\x8b\x9aeI\
+:{\xb2\x84;T\x16u\x0c\x1dG\x12|\x06)i\
+\x95\x90\xb8@\xc0\xf2\xb7J|N,PR\x0a\xa5(\
++\xf5`\xad\xd2\x93\xf2\xd8.\x96L\x80\x15\xa6\x16\xac\
+:\xd8[+\xe4\xb7\x0b\xa4\xa1\xfd\x08\xa4\xa1\xbd\x09\xa4\
+\xa1\x87\x0a\xa4\x89R\xaa\xa0\xda\xa8\x14%\x199sD\
+qp\xecJ\xa5\x8a)f\x8a\xcbR\x1e\xebu\xba^\
+s\x1f\x01\xb5\xfc&\xa7\xd6C\xcet\x1f\x94\x0a\x0bp\
+\x14\xa5XXzc)\xc5\xc4\x81\x94\xb2Q\x22\xc7-\
+\xb8\xd7Y\x86\xad7\x7f\x94\xe3{K\xa5\xdb1\xc2%\
+\x0a\xc3mEs\xd6\xea\x1c*n\xe0\xce8)\xf9\x90\
+Kb\x98\xebC\xdc\x98\xed\x87\x88<,\xb6\xb1D\xe4\
+\xfc@\x22\xbao\xf4\x1e\x1d\xbe\xec\xc7\xbb\xbd\xc7\xa2\xce\
+7c>\xcd\xdb\xed\x01\xf3a1\x8c\xc5\xbc`\x87a\
+\xde\xd1(\xf1\xc1\x136\x1c\xf8\x82\xa5\xfc\xe0\xf2\xb9\xb5\
+\x15M7BU\xa7mE|jU\xf68\xcf\x839\
+;\xe4\x1c\x8f\xf2\xa0\xaa\x079\x11\xba\x1fj\x89\xb0\xbc\
+\xc5R+=\x11\xe7\x00j\xb1\x18j\x81e\x077A\
+\xd7\xdd\x8b\x86\x9c(\x88I9\x13u\xef\xa2/9\x09\
+\x86\xa5\x91\x98\x97ay\x8b\xc6\xbc;\x10\xf3<\x0a\xf3\
+\x9cXmY\xa7\x86R\x12\xecL\x96q\xde3\xde\x95\
+\xec\x07\xef*,9\xb1xO\xcfD9\x00\xefQ\xeb\
+\x0aJ\x11iD\xd5\xa1\xb6\xa0F\x04\xaf\xe1\x1d\xf7z\
+\x14\xaf\xe2\x9d[\xa6)\xfbv\xbc\xebp\x04\x12\x85w\
+\x1d\x96\x9bX\xbck\x13\xc2{\xf5\xf3\x04\x0d\xa2\x5c,\
+\x8c+\xb4,-\x84\xc6\xd5\x84\x8c\xcf\x11\xff\xfe]\x0b\
+W\xc8\x06\xaf\xd7\xf8^\xabj\xca\x7fj\xb8\xb32\xc4\
+\xfe\x1d\xabj\xc5K0%\x94C9?\xce'\x12\xc4\
+\x0a+\xb3\x98\xb0\x0d\xef\x12\xe2\x7f-duE\xe0\x85\
+\xe2]\x85\xc4(\x0a\xef\xea\xb0\x18^\xd0(\x8f\xa8\xc1\
+\xcdmxg\xa48\xbc\xe1%c]\x87\xc2\x80(\xac\
+\xeb\xc3\x22\x00p@bW\xc0\x0a\x9c\xb6\xe1\xbc.\x0d\
+/\x19\xeb!\xd7&\x0e\xeba\xaf\xa6k\x8bDP^\
+n\x91\x08K8c\xf9\xdb\xf0\xfe,\x14N\x94\xa5,\
+\xf3\x0d\xd7\xe9\x09\xd7\x06\xdf\xf3KK\xae\xd3V\x8c\x8b\
+\xa2$m%\x1d\xe3{\xed\xa3\x04\xd6\x10#l\xa55\
+a_Gj\x13\xb3\x80hMo\xee\x8e5\xb9\xd2\xdf\
+\xd9Jy\x82 \xa2$\x08\x84ZR\xe8\x1c\xb5\xfb\x12\
+\x04Z\x09i\xf3\xe08#\x88\xcaO\xcfxvr\xd8\
+\xb0\x0b\x14K\x0e\xdb\x9b\x17\x94\x1d\xc5}\x009d\x85\
+\x1c\x1cO!Q\x91\xf2!\xf1\xe4!\xe6\xbe\x9f|\xb8\
+\xf0bj,A\x5cX\xd4b\x09\xe2\xf4\x81\x04Q\x15\
+\x82H\x02<b\xe2\xc8!\x09DG.3\x0c99\
+p\x1d\xf3\xf7 \x06\xb2AO\xc4p\xb4\xb7\x9dGG\
+U\x88\x18O\x85\x06\x82Fmx(\x86Y\x0e\xb90\
+x\xc3m\x08\xd7.\xdf\xdc\xf0\xe1\x99\xc0U\xf1\x9a\x9b\
+Z\xab\xf3\x82\x8c\xb7\x0b\xae\xc0\xc6\x18o\xc7\x0f[\x0c\
+\x124j\x8fB\x19\xe2\x0c\xab.\x06\xed\xe2^SL\
+\xcc\xa8.\x06\xbd\x5c\xdc\xf3\x03R\x1eZp\x1f\x0c\x8f\
+\x9f\xc0}TH\xdc\xe0\xe9v\xbeW\xc4\x80\x22z\x15\
+\xb8\x17!\x9b\x12\x85{q\xd8\xde\x9c\xa0Q\x81q\x03\
+\xaf\xed\xb8\xaf\xcb\xc6\xcb\xc6}h\xcf \x0a\xf72\xbc\
+]\xd0i\x7f\x19-\xed\xaf\xc2w+d\xc5\xfe\x1a\x9f\
+\xc1^fT\xb5\xd8_h\xc3\x15h\x98\x8a\xfd5D\
+\x88b\xc9\xee\xd9-ppM'\xde\x02\xcb\xde\xf6\x03\
+\x80\xd1\x0es\x87X%\xc5M\xe1\xd1y.G\xed\xde\
+\x04\x91\xb8\x1f\x9a\xefv\xe6\x04\x91\xe0#\xfd>\x01\x83\
+Sa/?\x96 \xaa\xb7m\x02\xa7\xdc\x81\x04\xa9\x04\
+\xd4J\xe3\xeb<.\x8e\x1c\x1a_D\xe2\xdfO>t\
+o\xe14\xa6\xb1\xf7E\x0e}`8\xcd*\xe1\xb4r\
+\x84\xb2\xec\xb4\xc9\xbd\xc9a\xf1D.\xdd\x90\x0e\xc6\xed\
+\xef%\x1d\x1d\xf9\x85\xb1\xe40\xbd\x85\xd3\xcet$\x8a\
+v\xdbn\x16\x95\xac\x88\xaf\xea\x818T\x16W}F\
+\xb5\xd3\x15\xdb-\x14QN\x96\x0b}\xf5\x1a/\xc9r\
+\xdb^\xa2\x05\x17\x8e\x16\xbaE\xa1\x129\x0bP\xfa,\
+K\xae\xf3\xb9\xd0\x8e8\xcd\xc3\xa2\xf0\xecl\xee\xfa3\
+\x02\xae?#\xe0\x82F\xa0\xcfO7\xd9D\xc5\xa00\
+\x8dg\xb7\xea\xca\x0a\x14\x94\x080\x16Y\xc9\x1a\x0f\x82\
+\x15N\x815\xb7{J\xd9\xf7\x92\x8f\x0b}u\xd9`\
+\x02\xa6i\xf4~\xdb\x19\xbf\xb2\xbb`\xc2\xc6\xa2S7\
+\x89\xa8\xadfO\x0c\xcd+q\x05\xc7\xecW\x9d/\x10\
+\xfa\xa4\xbfz\x1d,\xc1c\xa1\xa5\xea\x01Y,z\x93\
+\xcc\xba\xb3\xabs\xd9\x04\x13\xde%\xeb\xe6K\xd9\xc5\x97\
+\x5c\x13&\x94\xa8s\xe5~\xda\xe4{r\xe5\x95;?\
+\xbd\xb8l`(\x98\x1e\x17D\xf4\xa5\xb5gg\xbc\x09\
+\x86\x1f\xe6\xc2\x08\xd5\x85h\xa1\xab\x9b6\xaf\x08\xd5\x17\
+\xf6\xd2\x9e\xef\xe0(\xac\xbb\xb9\xc9\x8e2o\x83\xa5.\
+\xf5\xd9\x0e\xd9:R\x5cu\x10\xd4\xf9\xd9%;c\x0d\
+P\x22\xbcjk\xb5\x08\x1a\xba\xb3\xd3\x0b\xe3\xce\x9a\xb0\
+\xa2\xc5\xf6\x8c]p\xdb\x94~\x11\x5c\xb2}\x82\x9bt\
+\x177a\x8a\x00\xd7\xf9\xb6\xe9+\xe2\xa6\xab\xab\x8b\xab\
+\xb3&\x8ed8\xaf\x95K\xde\x91\x90sqq\xd6$\
+\x9b\x0c\xef\xa2(*\x82\xec\x04\xb0\xf4i\x933e8\
+\xc42\x86\x05\xdf\x9e\xb8\xba:?\xcb\xecz\x05V\xb4\
+\xc9\xbc\x02DY\xda\x04s`|%L\x17;)U\
+]V{E\xec\x04\xae\xbbQ\xa2\x81\xa3`V\x0a\xf5\
+\x11a\x10\x16SB5\xf1\xdd\xb1\xe8\xa1\xa5\x0b\xd2N\
+Ji\xb3\xcc\xaa\x0a\xac\x0e\x87\xd7\xa9\xa0v\xe2\x97B\
+\x8a\x1dX\xd1\x8b\x8b\xad`4;\xd0\x03\x8bZU\x87\
+\x80E\x12${\xe1\x81\xd5\xdda\xf4\xc0\xf0\xb8\x19<\
+<C\x96\x1eX\xadN\x17\x87\xa5\xd7\xc8\xb0\xe1\x88\x1b\
+\x88\x8f\x86\xd9\x01^\xb5s\xc2\xb3q\xeb\xccFo\xee\
+\xd6\xc9d\xf6\x97d\xfby5\xc3wVgql\xc7\
+p\xf3\xb2\xc9*\xc1U\x94\x0e\x09\xdf\x09\xb0\x98\xd6\x87\
+e\xa1\x09\x11\xb5\xd8\xbeK\x92\xaa'\xd8N\x90j\x8d\
+~\xc8!\xcd\xf3\x91#\xb8 \x13G\x8e\x03_\xf6\x14\
+2*9m\x97\x1cu\x7f\xb1\x9d \xf5:\xfdI\xc8\
+\xb7#?\xf8\xc6g\x1c\xf2\xed\x819j2*Gm\
+\x17\xf9u\xf7\xaa\x1d\xf9\xf5:/\x0a\xf9\xd1\x99j\xed\
+\xc8?,\x01_\xc8\xa8\x04\xfc]\xe4\xd7\x9d\x91v\xe4\
+\xd7\xeb\xbc$\xe4\x07So\xe2\x90_\xa4\xdd\xb4g\x83\
+?A\x81(S`\x88T\xaeXAL/w*\x13\
+4\x1bO\xf1F'G\x94\xb4\xc6\xfd>)\x9a\x84\x05\
+\xfd\x7fk\xed\xa9\xad/\xdd2\xdb\x91\xb8#\xc2\xcb\x93\
+\xe2\xc2\x9c_5!\x1d\xf6\x96r;\xac\x0e727\
+\xa9mA.?W\xcdx\xd9\xd2\xb0\x1b\xa9\xb5\x09\x8e\
+\xeb\xf4\xfc\xf4\xea\xd45a\x85coC\xc3.\xa9;\
+w\x97\xae\x09\xab\xe3\x15S\xd3\x01\x8a:a/\x9a\xa0\
+\xc2\xa8\xb7,\xbbD\xae\x8d!N\xedyvyU\x05\
+Vt\xfaI+_\xb1\x03\xf3OT\x94\x1f\xb0+\x8b\
+\x06f,\xa5\xabh\xc3]\x89\xa4x\x16\x97\xa5;\xbb\
+\x00/E&y8&\x8f\x94I\x1e\x8e\xc8\xa3e\x92\
+\x87w=\xa3e\x92\x873\x0c\xa2eR\x84WC\xa2\
+e2\x98\xff\x13/\x93\x22\x8c\xfah\x99\x0c\xbe\xe8\x19\
+'\x93\xe2\xc0PIE\xb9\x87#\xed\x8f\x05\xe5\xe5\xab\
+\xe8#\xdc\xee4E.\xbd\x7f\x97\xb6^);\x0e\x82\
+\x81{\xfe\xb4L\xa2\xf41\x81g\xf51/\x92\x9cR\
+\x01\x9e\xcaPXb\x84\x96\xdc\x0dG\x06\x8flb\x8c\
+\xf3\x9e$Rv,\x91\xc4Id\xc7\x9b\xa3\xd1\x12\xd9\
+\xf1\xf6h\xb4D\xca\xb0e\x8b\x96H\xd5a\xd9b%\
+\xb2cq*V\x22;\xd6\xa6\xa2%2\xb86\x15'\
+\x91\xea\xc0\x98AE\xc5\x0c#\xa9\xaa\x09\xe4Y\xd0 \
+D\xb9x1\x92\x02\xd8\xcfTO\x15\xa8\xd4\x08\xcbb\
+E\x103\xfb\x08\xc2\xe8\xcfNS`\x0e\xb5\x18\xe2\xab\
+y\x80,\x15\xbbP\xe9\x0f\xd49o`\xab#\x85'\
+,\xcf\xad\x92\xd3\x91\xc1\x13)\xcf\xba\xe3\xac\x0a\xae\xc3\
+'\x06\x9d]\xd1\xcb&S\x99\xb0%\x0b\xae\xc2\x9e^\
+\x9c\xd1\xd3\xd3&\xa0\xe84\xd6V\xee4\xc1<\xd6=\
+\x82*\x13wz\x97 F\xaaJ*\xab&\xcc\x00B\
+J\x16\xad\xd5\xe0\xfe\x9eA\xe7\x8as0\xbe\xd7\x82z\
+\x0b\xde8Ua/\x82S\x16\x93?\x02\xb0\xc2<\xcf\
+\x99\x0b*\xad\xcb\x8b\xcb\xab\xcb\xb3&\xac0\xd7s\x19\
+\x1c\xd6\xc5\xe5%\xbb\xd8\x01\x15f{\xaeMxCS\
+_\xb8\x0b\xde\x80\x15|?\x93\xfaS\xf1\x22\xc4\x11`\
+\x85Qo\xb5\x0b\xc2jE}P\xdd\xc4H\x11\x80\x09\
+.M<!@QG\xa7\xed\x08\x90\x02\xd5\xcc\xf2U\
+\x87V\x01\xc2\xd31\xed\x1e\xfe\xd6\xb3\x0a\xd0\xd9\xe9\xd9\
+\xc5\x99n\xa0\xac\xe3\x10C\xee\xb2\xd3\xfa\xf63\x1a\x00\
+\xab\xe3\xe8\x02\x1ad\xd4vP\xd1\xa1q+\x8f\x9a\x03\
+Cc\x13\xf5JR\x93!\x1cP\xc8*[M\xe2i\
+0\x04\xde\xca\xe0\xec>\xcb\xe3\xbf\xbbF\xed8\xc90\
+Z\xa3\xda\x1e5\xaa\xedO\xa3\x06\x93(\x0f\xd0\xa8\xae\
+G\x8d\xda\xf1\x9ae\xb4F\x8d_\xecm\xe5\x86\xf0b\
+\xef\x13\x02\x14y\xf6]C\x80\xf0\x0a\x16\xc7*A\xec\
+\x8e\x00\xe1y\xef\x8a7R\xa8_\x82Fe\x1d\xcb\xbc\
+\xb1\x1a\x95u,\xf4FjT\x16\x5c\xe7\x8d\xd2\xa8\x8c\
+\x1e\xaaQ\xa3\xb6\xe5\x81\xdc\xaez\x1c\x86$\xa0K\x5c\
+]\xa1\x02\x8b\x9b\xd2\xc2\x165\x22s~vE\x87\xb1\
+>\xdeL\x030\x07\xbe\x9af\xa2\xb6H\x1a\x98r\x8a\
+H\xc7y\xdd\x99\xafa\xaa\xac\xd1\x03\xa6\xfax\x8f\x8c\
+\xe3m\xb6!Lu\x1e+\x8f\x9fMv\xae\xfc|\x96\
+\xdf|\x90\xad\xa0\xcc\xf0\x10vc\x89eN\xe3)\xe1\
+\x12bl\xa3\x05\x9e'\x0e(\xa0\xda1\x8b'\xc4\x01\
+\xdb\x08E\x9d?c\x5c\x0ap\xb6\x87\x02\xcfr\x12J\
+\xf9\x22|\xf9\x86c\x90-\x9c\x90Vcc\xbc`\xc7\
+\x0a\xbcuH\x11\x0e:^\x88\x01|\x13\x12\x81\xe3\x15\
+Ax\xb4\x9d\xb6\x03\xc9\x08\x85\x90\x89\xba\xbc\xcc\xb7\x16\
+xy:\xba\x06x\x1d\x10s\xc0\xb2\xda\xdf/d\x84\
+\xbfL\xc8\xe2\x05\xec<\xbd\xdb\xc8Y\xad\x8cMo,\
+\x92<?\xc0\xdd:\xc6\xd3\x1b\x8b\x18\x1e\xb6\x8e%\xc2\
+\x19\xe6\x8b\x80\xff\xa5h4\xd50Q\x9d^b\xc4\xad\
+b\x5c\xf8\xe10\x09H\xc7\xc3\xdf\xb9\xe2\xa0\x0d\xf1j\
+\x22\x09\xe0\xf0\x0a#\xe1\xa4\xe6E\xc99^V\xe3\xb4\
+a\xae,\xc3\xeb\x8b`\xe2\xd8N\x11m\x0c\xf5\xe8\xc3\
+U@pz\xfc\xc1\xed\x92\x0a-\xb2c\xdf)\xa0R\
+\xe3\x82\xa1vZ`k\x8d\xfc\xe7\xa8\x18r\x80\x83\xef\
+\x9a\x99V2\xed}[\xc2k\xbb\xa2\xb3\xbc- \xbd\
+p\xfeI\x16O?5.\x17xZK\xc1\xe5\xd9}\
+BC\x0b\xa8\xc5[\x5c\xe4\xe0\x97\x81Q\xa4R\xa4\xca\
+\x12\xb0\x9cx\xbb\x8a\xaf$\x81oMkQ\xa5\x1d\x1e\
+\xdc])\xf2\xb5\xf22\x85i\x1ei\xb5\xac\xe1n\x89\
+\x04\xd2\xe3\xddHP\x92\x0f\xb4\xa5\xa8\x84\xde \xfcj\
+\xb9\x1dm\xe6\xbf%\xc7\x8c\xdf=\xfc\x98\xfe\xc4G\x80\
+\xa6\xf5\xedd\x91\x96|\xf5\xf7d\xe7E%\x86\xd5a\
+\xb7\x189\xde\xb8\xc5\x08\xbc\x0f\x0bND\x93}>\xdd\
+o\xb7;\xdc\xe3\x19\xa6\xef\x1b\x8c\x1c\xdeF\x883\xbd\
+\x9e\xdc\xce\x17\x8f\xc7\x17\xc9\xbf'\xff\xbc\x1f|H\xd6\
+\xf3\xebv.j\xbd\xca\xaf\xd6\xc9\xe2\xf8\x87k\xff\xd9\
+[~\xec\xb3\xcaO\xfb5}\x02\x8f7\xaa\xcdl\xf7\
+:\xab}.\xc1\x0a\xdf\x9c\xb5s\xdb\xd6\xec;\xdd\xff\
+\xd5zu\x99\xa3\x06tI~uY\xf6\xcb\x82+\xa9\
+A\x85\x83\x12\x05?\x983C\x1b\x17\xf3}\x83\xf4\xa4\
+\x9c\x91\xf8\xcf\xfe\x9a\x15\xa0G\x0bG\x85\x1bC\xac\xbd\
+\xab\xe3\x14Q\x5c\xe0\xd5%\xa5\x8e\xcb\x8alM\xc9\xe1\
+e\x03\xca\xd4\x94\x5c\xb3\xa8\xda\xb0\xd0r\x15\xf8\xcf\xa0\
+\xe5\x0a\xe8\x95{I\xb6\xc9\x03\xe8\x1c\xcd\x8f\xf6\xb1\x02\
+\xbd\x129R\xfc\xbf\x95\xc8\xbbz\xcdq\xd5\xa1\xd7\x0a\
+\xe2Kp+\xd0\x9d2\xd6y\x94\xfb{m\x9c\xc5\xa0\
+\x06\xc9\xa4\x88U\xda\x0a\x83\xa5\x16u%\xaf\x95\x1ap\
+\x91-\x83o\xe8\xcd0\x08\xcb\xd1)\x83Bc\xa4w\
+\xde4\x11\x0a\x023\x81e\x8a\x19\xa7\xc4\xc0\x80\x9bf\
+(xd&e\x01\xe4\xac\xbc\xa81\x92\xf2gF\xd2\
+6)v@|\xe4\x92,\x08\xcd~\x8d\xf0\x96\x1am\
+1\x18\x15N5\xae\x82\x17\xf9\xab\x94\x1d\x1c\xe1\xb9a\
+\xbc\xf9r\xf3\xfe\xff\x01 ;\x82Wk\xab\x00\x00\
+\x00\x00\x08\xc9\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x07\x94IDATX\xc3\
+\xcd\x98[lT\xd7\x15\x86\xbf\xbd\xcf\xdcl<\xe3\xcb\
+\x18\xf0\xd8\x13\xc6\xd8 0\xe1\xe2@0.\x09\x97(\
+\x14*Z\x12D\x12\x91Ji\xda\xb4M\xa5\xb4\x12/\
+U\xd4\x87>\xf4\xa5/\x09\xaa\x22\xb5\x12D\xa5j\x89\
+\xa1\xa4M\x80P\xb5\x10\xc5\xc4\xdc\x9b@\x8cKmZ\
+\x9b2C\x901\xe0\x16\xdb3x\xb0\xe7~\xce\xee\xc3\
+\x999\xb1\xa1x\xc6@D\x97d\xe9xk\xefu\xbe\
+\xf9\xf7Zk\xaf}\x84RJQ\x80\xa53\x19z\xfb\
+\xfa\xe9\xea\x09\xd1\x13\xbcL_\xff\x0d\xa2\xb7F\xd0u\
+\x03\x97\xcb\xc1To9\xb3\x02~\xe6\xcf\x9dE\xc3\xec\
+Z\xbc\xe5\xa5\x85\xb8\xcdk\x22\x1f`,\x9e\xe0\xcc\xdf\
+\xfe\xc1G\xc7O\xd3\xd9\x1dd(2L&\x93A)\
+@d'e=H)(.r1\xa3\xa6\x8a\x15\xcb\
+\x1aY\xbb\xb2\x99\xba@\xcd\x97\x03\xa8\x80\x8e\xce\x1eZ\
+\xf6\x1e\xa4\xfd\xef\xdd\xc4\x13\x09\xa4\x94\x08!\xc6\xcfS\
+j\xdc\x98\x02\x94a\x00\xe0\x9b>\x95\x8d\xebV\xf1\xfc\
+7\x9e\xa6\xa2\xcc\xf3\xe0\x00\x13\xc9$\xef\x1ehe\xf7\
+\xbeC\x0cE\xa2h\x9a\xb4`r@6\x9b\x0d\xbb\xdd\
+\x8e\x10\x02]\xd7I\xa7\xd3\xe8\xba\x9eU\xd2\x9co(\
+\x85\x14\x82%\x0b\xe6\xb2\xe5\xfb/2\x7fN\xfd\xfd\x03\
+\x8e\x8c\xc6\xf8\xd5\xef\xde\xe3\x83CG\xc9\xe8:B\x88\
+,\x18\x94\x96z\xa8\xaf\x9f\xc9\xecY\xf5T\xf9\xaa(\
+))A\x93\x92d2E8\x1c\xa6\xb7\xf7\x0a\x17\x83\
+!\xae]\xbbN:\x9d\xb6@u\xdd \xe0\xaf\xe2'\
+?\xfa6\xcb\x1f_x\xef\x80\x89D\x92\xb7~\xf3.\
+{\xff\xd2f)e\x18\x06n\xb7\x9b\xe6eKY\xfe\
+\xc4W\xa8\xa9\xf6\xe1p8\x10X\xa1g:\xca\xce\x8d\
+Fo\xd1\xdd\xdd\xc3\xd1c'\x08\x85.\x8d\xf3S=\
+}*?\xfb\xf1\xab45>:y@\xa5`\xe7{\
+\x7ff\xdb;{\xd1\xc7(W[\x1b\xe0\xb9M\xcf\xd2\
+\xd00\x17M\xd30\xb2\xf1uW\x87B \x84`x\
+8\xca\xe1\x8f\xdbhk;F\x22\x910C\xc10\x98\
+S7\x837~\xba\x85\xdaG|\x05\x01\xca\xdc\xc3\xd9\
+\xaenv\xed;4\x0en^\xc3\x5c~\xf0\xeawY\
+\xb4p>\x0e\x9b4\x7fE\x1eSJa\x18\x06\x1e\x8f\
+\x9b\x8d\xcf>\xc3\x0b/l\xa2\xb8\xb8\x18\xa5\x14\x9a\x94\
+\xfc\xeb\xf3+\xec\xd8\xf3\x01\xc9T\xaap\xc0\xd1x\x82\
+\x96\xf7\x0f\x12\x8eD\xad\xed\xa8\xad\x0d\xf0\xd2K\xdfd\
+\xe6#\xd5\xb8\x1d\x82R\x97\x8d\xd2\x22\x0d\x87&\x0ar\
+\xac\x94BJ\xc1\xeaU+xf\xc3z\xecv\xbb\xf9\
+B!9r\xea,'N\x9f+\x1c\xf0t\xc7y\xda\
+;\xbb\xd14\x89R\x0a\xb7\xdb\xcds\x9b6\xe2\xaf\xf1\
+\xe1\xb2\x81&\x05B\x80M\x0a\x8a\x1d\x1a\xa20Fk\
+\xcbW\xaf^\xc9\xd2\xa5K0\x0c\x03! \x9eH\xb2\
+\xef\xe0\x11Fc\xf1\xfc\x80\xe9t\x86\x8f\x8e}J\x22\
+\x91\xb4\x06\x9b\x9b\x9bhh\x98\x03\xca@\xdeF\xa3I\
+\xee\x18\xcb\xa7\xa4\xd3\xe9d\xdd\xda5x\xbd^SY\
+Mr\xfeB\x88\xce\xee`~\xc0\xcb}\xd7\xe9\xea\x09\
+!\xa5\xa9^\xa9\xc7\xc3\x13\xcb\x9b\xd14\x0d\xddP\xe8\
+\xb7\xc5]\xc60\xeb\xdbd\xcc0\x0c\xfc\xfe\x1a\x16/\
+^df50\x1aK\xf0\xc9\xd9\xae\xfc\x80\xe7{B\
+\x84o\x0e[\x89Q__Guu5\x86a`(\
+\x18M\xea\xa4u\x85\xa1\x14)]1\x9a\xd2\x0b\xc9\x95\
+;_$%\x8d\x8d\x8b(*r\x99\x03\x02\xce_\x08\
+12\x1a\x9bx]O\xf02\x99\x8cy\x02\x08!\x98\
+5\xbb\x1e\x87\xc3nMH\xe9\x8a\xe1D\x86\x9bq\x9d\
+h\x22CFW\x08\x01N\x9b\xc4i\x93\x05\xc7\xa3R\
+\x8a\x9aj\x1f^\xaf\x17\xc30C\xa7\xff?\x83\x0c\x86\
+\x87'\x06\xec\xeb\xbfa)b\xb3\xd9\xf0UU!\xee\
+p\x0e\xba\xa1\xacy\x0eM\xe2qix\x5c\x1aNM\
+R\x88)\xa5\x982e\x0a\x95\x95^K\x8c\xd1X\x9c\
+\xa1H\x1e\xc0\xe8\xad\x11\x10&\x84\xddn\xa7\xa4d\x0a\
+\xf7\xb0\x83\x05\x99\xa6i\xb8\xddnr\x87W&\xa3\xe7\
+\xddb\x9bn\x9d\x0c\xe6\x91\x94;?'\xb2\x94n\x10\
+M|\xf1<)\xc81\xfe\x15\x0a=\xcf\xc9d+r\
+:A\x81\x90fWRH\x85W\x0a\x92\x99\xc9\x81\x99\
+\xeb\xd4\xb8r&\xa5\xc4\xe5tL\xb8FVz\xcb\xac\
+\x7f\xd2\xe94\xe1p\xe4\x8e\x9e\xefAY*\x95\x22\x12\
+\x89X\x15\xc3\xe9pP\xe6)\x99\x18\xb0>\xe0GJ\
+\x13H\xd7uz{\xaf\xe4m\x08\xee\xc5\xa4\x94\x84#\
+\x11n\x0c\x0cZ\x80\x15e\x1e*+\xca'^\xb7\xa0\
+a\x16\xc5E.+1.^\x0c\x12\x8d\xde\xfaRT\
+\x0c^\x0c\x11\x8dF-\xc0\xba\x195T\x94\xb9'\x06\
+\x9c7{&3j\xaaP\x86\x81\x94\x92k\xd7\xae\xd3\
+\xdd\xdd\xf3@\x01\x85\x10\xc4b1>k\xef\xb0\xban\
+M\xd3hj\x9c\x87\xcdf\x9b\x18\xd0[^\xca\x8a\xa6\
+Fk \x9dNs\xe4\xe8q\x86\x87\x87\x1f\x18\xa4\x10\
+\x82\x8e\x8es\x04\x83\xe6\x91j(E\xd54/\xcdK\
+\x16\xe4]+\x01\xd6\xaej\xc67}\xaay\x87\x90\x92\
+K\x97>\xa7\xf5p[\xb67\xbc?8)%}}\
+W\xf9\xf0\xc3V2\x99\x8c9\xa8\x14k\x9el\x22\xe0\
+\xcf\xdf\xb4J\x80\xba@\x0d\x1b\xbf\xb6\xca\xeaR\x94R\
+\x1ci;\xc6\xf1\x13\xa7P\x8a{VRJ\xc9\xc0\xc0\
+ \x7f\xf8\xe3\xfb\x5c\xef\xef\xb7z\xcd\x80\xdf\xc7\xa6\xf5\
+O\x15\xe6#\xf7\xf0\xfc\xd7\x9f\xe6\xf1\x85\x0d\xe8\xba\x81\
+\x10\x82D2\xc9\xfe\xfd\x07hm\xfd\x98T*UP\
+\x01\xcfY\xae\xe0\xf7\xf5]e\xe7\xce]tw_\xb0\
+\xd6\xbb\x9cN^\xd9\xbc\xa1 \xf5\xc6\x01V\x94y\xd8\
+\xf2\xbd\x17\x09\xf8}\xd9\xc6R\x10\x8b\xc5\xd9\xb7\xffO\
+\xbc\xd3\xf2{z{\xafX\xaa\xdcMQ)%RJ\
+\xe2\xf18'O\xfe\x95m\xdbw\xf0\xcf1\x09\xa7\x14\
+h\x9a\xc4f\xd3\x0a\xff\xb1\xb7_;?=\xdb\xc5\xcf\
+\x7f\xf9[\xae\xfd{\xc0:\x96\x0c\xc3\xc0[Q\xc1c\
+\x8b\x1by\xacq!55\xd5\x14\x17\x17[\x19\xa8\x94\
+\x22\x99J\x11\x09G\x08\x06C|\xd6\xdeA(\x18\x22\
+\x9d\xc9\x8c\x81Sc\xea_)\xaf\xbf\xf6-\xd6\xadn\
+\x9e< @{g7\xbfx{7\x17.\xf5\x22\xb3\
+\xb7\xb4\xdc\xa5\xdd\xe5r\xe1\xf5VPYY\x89\xc7]\
+\x82\xd44\x12\x89\x04\x91\xc8M\x06\x06\x06\x89F\xa3\xe8\
+\xba\xfe\xc5\xe5\xdd0p9\x9dh\x9a$\x16OXq\
+\xe8-/\xe5\xf5\xd7^\xce\x0by\xd7O\x1f\xbdW\xfb\
+\xd9\xb1\xe7\x00m\xa7\xda\x89\xc7\x93\xd9\xad\xc5ziN\
+\x95\xb1q\x97\xfb\x83l\xd7\xad\x14\x01\xbf\x8fW6o\
+\xc0n\xb7\xf1\xd6\xaf\xf70\x18\xbei\x96\x9a\x02!'\
+\xfcx\x94L\xa59y\xe6\x1c\xfb\x0e\x1e\xa1\xab'\xc8\
+h,\x01\x22{'\x11b\x5c\xdf\x98SX)\x85\xa6\
+iTM\xf3\xb2\xe6\xc9&6\xad\x7f\xcaJ\x88\xc3'\
+\xce\xf0\xc6\xb6\x16\x86&\x01\x99\xf7\xeb\x16\x98\xf7\x87\xae\
+\x9e \x9f\x9c\xed\xe4|\xcf%\xfao\x0c22\x1a'\
+\xa3\x9b_\xb9\xa4\x14\xb8\x1c\x0e\xca\xcb<\xd4\x05jh\
+j|\x94\xe6\xc5\x0b\x08\xf8\xab\xee\xf0\xd5z\xfc\x0co\
+n\xff\x1f\x90?|\x99u\xab\x9a\xef\x0dp\xac\x8d\xc4\
+\xe2\x0c\x85o2\x14\x19fd4\x86n\x18fWR\
+\xeafjE\x19\xe5\xa5\x9e\xbcYz\xf8\xc4\x19\xde\xdc\
+\xd6R\xd0vO\x1a\xf0AY\xa1\x90\xb6\xfbx\xc7}\
+\xd9WW.\x03\x18\x079\x14\x19f\xeb\xf6\x16\x00\x0b\
+\xf2\xa1\x01\xe6\x83\x14\xc2\xec\x11\x1e*\xe0X\xc8\xb1\xd9\
+=\x14\x19f\xeb\xdb\xbb\xcd\xd2\xf6\xb0b\xf0v\xbb=\
+&u\xc3\xa0y\xf1\xfc\x87\xaf`\xcerJn\xdd\xbe\
+\x8b\x1b\x83\x114M\xe2\xf7M\xff\xffQ0gm\xa7\
+\xda\xd9{\xb0\x0d\x7f\xd54\xbe\xb3y\x03\xff\x05\xc8C\
+\xdb\xc2\xa6D\x97\x9f\x00\x00\x00%tEXtda\
+te:create\x002023-0\
+3-08T17:27:26+00\
+:00\x9e\x98\xa5\x85\x00\x00\x00%tEXtd\
+ate:modify\x002023-\
+03-08T17:27:26+0\
+0:00\xef\xc5\x1d9\x00\x00\x00(tEXt\
+date:timestamp\x002\
+023-03-09T06:18:\
+41+00:00=\x00\x9f\x01\x00\x00\x00\x00\
+IEND\xaeB`\x82\
+\x00\x00\x08\x13\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06\xdeIDATX\xc3\
+\xbd\x99[\x88\x5cI\x1d\x87\xbf\xaa:\xd3\xb7\xe9\x99\xe9\
+\xd9\xb9dHv\xc8\xc4\xc9\x5c7\x9b\xc4,AE\x05\
+/\xe8\x8a\x88\x0f\xee\x83\xe2\x93\xc8\x8a\x0f>\x88\xf8 \
+>\x89O>\xac\x18\x17E\x05aA\x03Y\x08^`\
+\x1f\xd4\x87 \x0b\xca**&lb2n4\x99\xec\
+e2\xd7\xccL\xf7\xe9>}\xce\xa9S\xe5C_\xe6\
+\xf4\xbd;\xa8\x05\xcd9]}N\xd5W\xbf\xff\xa5.\
+-|\xdf\xb7\xf9|\x9e(\x8a\xf8\x7f\x15\xc7q\xc8\xe5\
+r(\xa5z?\x9b\xcf\xe7\xb9}\xfb6\xa9T\x0a)\
+\xe5\xff\x1c.\x8a\x22\xc20\xe4\xc2\x85\x0bd2\x99\xde\
+\x80Q\x14\x91J\xa5X]]\xc5\x18\x0b\x02D\xedW\
+Q\xb9\xeb\xf8\xbdS]\x87\x22\x84 \xd4\x9a[7o\
+b\x8c\xe9Om\x00)%\xc6Z\x820\xa8t$\x04\
+\xa2\xd6\xb1\x10\x88\xea\x95\xea}\xfc\x8a\xb5\x08\xc0\xc6`\
+;\x01\xdbj_\x22\xd6~_\x80\xf1\x11\xb6\x03\xb4\xd6\
+R.\x97\xb1\xc6\x1c\xc15\x83\xf6\xa1\xa2\x10\x02c\x0c\
+\xa5R\x09\xd7u+\xd0\xd6\xb6}VJI2\x99<\
+\x02\xac\xab\xd4\x06\xd4/\x97\xf9\xc7\xad[\x08!\x1a\xfd\
+4\x0e\xdbJ\xd3Z\x05\x18k\xd9\xd9\xd9amm\x8d\
+D\x22\xd1\xf6Uk-\xc6\x18VVVb\x0a6A\
+\xc5\xef\x8d\xb5\x08!8\x7f\xfe<J)lL-)\
+$\x08\x81\xb5m|\xaa\xc3\x00l\xb5=:\x98\xd9Z\
+\xcb\x9d\xdb\xb7\xd1Z7*X\x87k\x86\x15\x02\xa9\x14\
+J)t5\x1dI!16\xe2\x8d\xbd5\x0e\xcb\x87\
+\x5c|\xf2\xbd8\xd29\x0a\xb2x\xe7M. \x9a\xb2\
+E3f\xad/\xa0I\xc1\x0ep\xa2I\x09)$n\
+P\xe0w\xff|\x85\xfb\x87\xf7\xc9{\x05V\xa7\xcf\x90\
+K\xe7\x1a\x82\xa5!\xa0\xda\x80vr\x85xi\xf1\xc1\
+\xe6\x88m\x84\x13(\xa9x\xb0\x7f\x8f\x97o\x5cf\xa3\
+\xf8&\xa7&\xe7(\x17\xca\x15\xe5\x84\x04lK\xa4\x0f\
+\x0a\x18\x8f\xf0\xc6(\x8e\xc3\xc5\x01\x85\xa8\x98\x14\xc3k\
+\xeb\x7f\xe0\xea\xebW\xc8\x8d$\xf8\xf2\x87>\xcd\x83\xdd\
+=\xd6\xb77\x01Q\xedKt\x05\x14\xad4\xfd)X\
+O-\xcdp\x80\x92\x8aBX\xe0g\x7f}\x89\xd7\xde\
+|\x95g\xe6\xde\xc5\x07\x17\xcf0\x92R\x14\xfd\x22\x91\
+\xb1T^mc\xda\x01\x01\xeb~Z\xado\x1f$q\
+\xe5\xa4\xe4\xde\xc1=~\xb9~\x15\x7f\xe8\x11\xcf\x9eY\
+\xe1\xd4\xd4\x14\xe5`\x1f?\xccS*\xbb\x95\x19\x081\
+8`\x97(oo\xe2\x18\x9c\x94\x920\x0a\xb9v\xe7\
+\x1aWo\x5caz\xdc\xf2\xd1S\xf3dSP\xf0\xb6\
+\xb1\xb6\xe2s\xe5\xa0\x88\xd6\xa61\x8fv\x00l\x9e=\
+\xfa\x99M\x1aM\x5c\xcdOJ*6\xf3[\x5c\xfe\xf3\
+e\xfe\xfe\xce\xef9wj\x8c\xf9\xe91\x84<\xa0\x18\
+\x00X*\x83T\x84\xda\x10\xfa\xba\x92\x1b\x07\x04\xecV\
+:\x9aX\x0a\xc9\xcd\xb7o\xf1\xf3?\xbd\xc4~p\x83\
+\xf7,d\x19\x1f\x09\xf0\xcd\x0e\x0aA%\x85I\x8c\xb1\
+\x18#(\x94=\x02?}\xd4h-\x09\xc7\x81\x1fC\
+\xb9\xb6&\xae\xf9\xe0\xda\xc6\x1b\xec\x1c\xbe\xc5\xd4\xd4\x0e\
+n\xf86\xa1\xabH'\x15\x89!\x89\x90\x16c4\xa1\
+\xd6\x94\xfc\x12[yA\xe8_\xac\x0eRT\xd3M+\
+\xd8 P]Ml\xb1|\xea\xdd\x9f$\x8a\x22.\xff\
+\xf1GLN\xaf\xb1<\xef\x13I\x88\x94`\xc8\x01\x05\
+XeIIH\x0d\x0d\xa1\x83\x08\xec``\xfd\x02\xd7\
+\xe7\x9cx\x0e\xcc$\xd3|\xfe\x03\x9f\xe5\xdb\xcf]B\
+\x1f|\x8c\xbf\xfcm\x04\xab\x15\xe3\xa3\x82\xdc\xa8d|\
+T26\xaa\x18\xc9\x0aR\x09\x8b\x8e\xf9`7\xb8\xf8\
+\xcc\xd4\xab\xd4\x9eiYB\xc7_}\xdf\xd2E\xbe\xff\
+\xc5K\xacN<\xcf\xaf^\x99\xe0\xdf\xff\x92\x8c\x0d\xc3\
+xN0:,\xc8\xa4\x04\x09\xc7\x10\x85\x15\x05k/\
+\xb7\x03\xed\xa6d\xf3\xa7\xad\x82\xedFh\xac\xe1\xf8\xc4\
+\x0c\xdf|\xeek<{\xfay~\xfb\x9bE~\xf1k\
+E\xe4C:\x0dJ\x09\x94\xb0DaT\xe5\xeb\x0d\xd6\
+\x0d\xa6\xab\x89\xbb-}\x86\x9c!>q\xf6\xc3\x5c\xfa\
+\xd2\x0fx\xf4\xd6\xc7\xf9\xcew\x87\xb8s\xd3\x10i\x83\
+\x8d,&4T\x12c\xab\x89\xfaQ\xb1\xdbs->\
+\xd8)5Xkyf\xf1\x1c?\xfe\xea%\xde?\xff\
+\x15~\xf2\xd3'x\xf5\x9a\xc5\x04\x06\xa3\x8f\x14\xec\x04\
+\xd7\xcb\xac\x9d\xfc\xb71\xcd\xf4(\xc6\x18\xa6r\x93|\
+\xeb\x0b\xdf\xe0\xdc\xe93\xbcp\xe5\x05\x90\xf7\x88BS\
+\x9f\x9ez\x05\xc9\xa0\xc5i\xd7@\xbbNj\xd7\x8a\xc9\
+\x1d>\xf7\x91\xcf\xb0zr\x81\xef\xbd\xfc\x22\xf9b\x99\
+\xe1T\x86\xa3\xddS\x7f*v3s[\xc0n\x0f\xc6\
+*+jZ\xc3\xd9\xd3O\xf3\xc3\xaf\xbfH9(\xf3\
+\xc4Hn`\x15\xad\xb5-\x9b\xa6\xda&\x8d\xc711\
+4\xa6!k-\xd9\xcc0\xd9\xccp_\x03\xacg\x07\
+c\xeap\xb5\xfdqm\x9f\x22\x04\x18{\xb4\xa2q\x9a\
+_\x1e$\x89\xc6\x1b\xee\xa6z\xdc=\x8c1\x18c\x88\
+\xa2\xa8\xfe\xa9\x01\xd7w\x8dR\x11\x99&\xc0n\x10\x0d\
+\xdb\xd1>}\xa7]\x160\xc6\xa0\xb5FkM\x10\x04\
+\xf8\xbe\x8f\xef\x07h\x1db\x8cA\x08I\x221\x84\x91\
+\x0eA\x10\xe08\xce\xe0&\xeeG\xf1f\xd08\x5c\x10\
+\x04x\x9e\x87\xeb\xba\xb8n\x11\xcf\xf3\xf0}\x1f\x8b%\
+\x93\xce \x1c\x07\xd7-\xf2\xe4\xf1\x19r\xb9\xdc\xe3\x03\
+v\x83j\xae\xab\x994\x08\x02\x5c\xb7\xc8\xfe\xfe>{\
+{{\x14\x0a\x05\x820$\x9dN359\x81\xb1\x86\
+G{{\xcc\x9f\x9acnn\x0e\xa5\xd4\x7f\x0f\xb0\x97\
+i\xc30\xc4\xf3<\x0e\x0f\x0f\xd8\xdc\xda$\xd2\x11\xc7\
+\x8e\x1dc|<G6\x9begw\x87w66X\
+\x98?\xcd\xc9\x93'\xeb'\x18\x83Gq\x9f\xc96\xae\
+^\x0d\xd0u\x8b\x1c\x1c\x1crpp\xc8\xd3g\x9eb\
+a\xe14\x9e\xe7q\x7f\xfd>\x1b\x1b\x1b,-,2\
+;;\xdbp\xbc\xd2\xba'\xe9\xb1\x1a\x1e\x04\xb6\x96J\
+\xb4\xd6\xf8\xbeO\xb1X$_(\xa0\xb5ftt\x94\
+R\xc9c\xbd\x06\xb7\xb8\xc4\xec\xeclK\x9b\x0eT\x0e\
+\x15\xcb\xe5r\xdb\x13O!\x04\x9e\xe7\x11\x86\xe1c\x81\
+\xd6L\x5c\x0b\x8eR\xa9\xc4H6K\x22\x99`\xfd\xc1\
+}\x1e>|\xc8\xf2\xf2\x0a'N\x9ch\xdb\x8e\x93H\
+$PJq\xf7\xee\xdd\x8e\x8e^,\x16\xd9\xde\xde\xee\
+xT\xd6KAc\x0c\xa1\xd6\x84a\x88\x89\x22ff\
+\x8e\xb1\xf9\xf0![[\xdb\xac\xac\xacr\xfc\xf8\xf1\x8e\
+m8ccc\x9c={\xb6c\xe7B\x08\x5c\xd7m\
+I\xc8\xcd \xbdT\xb4\xc6\x12\x19\xc3\xe8\xd8\x18\x16\xcb\
+\xee\xee.+\xcb+\xcc\xcc\xcct\x1d\xa4#\xa5\xecx\
+NW+\xc9d\x12\xc7q\xba.\x22\xba%v!$\
+R\x0a\x92\x99aT\x22\x89\xe7y,--3==\
+\xdd\xd3\x0a}G\xb11\x06\xdf\xf7\xeb\x8a4C5\xab\
+\x0e\x95\xc3J\xad#|\xad\x89T\x02\xab\x86\x10\x81\xcf\
+\xd2\xd2\x12\x13\x13\x93}\xf5\xdb\x17\xa0\x10\x02\xad5\xd7\
+\xaf_\x1f\xe8\x9f\x80\x8a\x0fBd+\xe6M%\x93<\
+\xb5\xb2\xdc7\x1c\xc0\x7f\x00\xb3\xfd\x1fpe\x8eW\xd4\
+\x00\x00\x00%tEXtdate:cre\
+ate\x002023-03-08T1\
+7:27:26+00:00\x9e\x98\xa5\
+\x85\x00\x00\x00%tEXtdate:mo\
+dify\x002023-03-08T\
+17:27:26+00:00\xef\xc5\
+\x1d9\x00\x00\x00(tEXtdate:t\
+imestamp\x002023-03\
+-09T06:18:41+00:\
+00=\x00\x9f\x01\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x08\x01\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06\xccIDATX\xc3\
+\xcd\xd8\xdbO\x1b\xd9\x1d\xc0\xf1\xef93\xe31\x17\x13\
+c\x1bc|\xc1\x10\x08\xe4\x02A u\xd3\xa4/]\
+u\xb7/\x9b\xedk\xab\xb6\x7f]U\xf5\xa9j\x1f\xda\
+\x97UUU\xda$\x0d!\x81\x84\x84\x90&\xdc\xcd\xc5\
+\x06\xdb\xc4\xd8\xd8xf<s\xfa`\xd8n\xa4\x96\xcb\
+\x06J~\x925\x925:\xe7s\xee\xbf3B)\xa5\
+\xf8\x84C?\x8fB\xbe\xdfF!\xc4\xe5\x03\x95R\xb8\
+n\x03\xc7q\xb0m\x07\xdb\xb1\xf1\x5c\x17\x84\xc0\xd0u\
+\x0c\xc3\x87i\x9a\xf8|\xbe\xff?\xd0ql\xaa\xd5*\
+\x85\xe2.\xab\x99M\xb2\xb9<\xfb\xfb\xfbx\xae\x83\xd4\
+t\xdaZ[\xe8\xea\x0a\x91\xe8\xe9&\x12\x0e\x13\x0eG\
+0M\xf3\x07\x03\xc5i\xe7\xa0R\x8aju\x9f|\xbe\
+\xc0\xec\xeb\x05\xd66\x0b\x84\xc3a\xd2\xbd\x09:\x83W\
+0t\x1d\xcb\xb6\xd8\xc9\x17Y^Y\xa3\xf4\xbeHo\
+<\xcc\xb5\x814\xfd}\xfd\x84B\xa1\x8b\x03*\xa5(\
+\x95J\xac\xado05\xbbH\xe0J\x98\xf1\xb1[\x84\
+\x82\x1dH\xf9\xe1\x9c\x13B\xd0h\xb8lfw\x98\x9c\
+\x9a\xc6\xae\xedr\xebZ\x92\xd1\xd1Qb\xdd\xb1\x8b\x01\
+\x96\xf6J,\xaf\xac\xf1l.\xc3\xd5\xc1!\x86\x06\xfa\
+\xd04\x81\x10 \x85\x00\x01B\x00\x0a\x14\xa0<\x85B\
+P\xb7\x1c\x9e\xcd\xcc\x92Y\x9e\xe7z\x7f7\xf7\xee\xde\
+%\x14\x0a\x9f\x09(Oz\xa1^\xaf\xb3\xb9\xb1\xc9\xcb\
+\xb7\x9b\xa4\xaf\x0e\xd3\xd7\x97\xc6U\x0aO\x81\x12M\x99\
+8|\x22\x9bO%\x04\xaeRHMc||\x8cd\
+\xff-\xde\xadd\x99\x9d\x9d\xc5q\x9c\xf3\x05\xe6\xf3;\
+,\xacf\x11\xfe0=\x898\xae\xa7\x9a0)\x90R\
+ 5\x81\xd4\x05\x9a&1\x0c\x0d\xf0\x10\x92\xe6\xd0\x0b\
+\x81B2|\xe3\x06fG\x0f[\xdbyr\xb9\xec\xf9\
+\x01-\xcb\x22\xb7\xbdM&o\x11\xedIp4\x96B\
+J\xa4&\xd04\x81\xa6\x0b|\x86\x86\x94\x1e\xaf\xe6^\
+\xf3\xbb\xdf\xff\x81\xbaUC\xd3\x9b\xefHM\xe07}\
+$\xd3\xd7\xa85\x0c\xf6\xca{\xb8\xae{j\xe0\xb1\xdb\
+L\xa5Ra\xa7P\xa2\xea\xb5!}-(!\x10\x9a\
+D\xd7\x04\xba.0\x0c\x89& \x93Y\xe7\xef\xffx\
+\xc4\xd4\xf4+4\xe1\xf1\xab_\x82a4\xdb\xae\x89\xe6\
+/\xd2\x15au\xc5\x8fm7\xa8\xd5\xaa\x04\x02\x1d\xe7\
+\x01,\xb3[>@\x9a!\xf6-\x85\xd5\x80V\x09\xba\
+\xd1\xec\xb5\xddb\x81o\x1fL2\xfd\xe2\x0d\xfe\xb6 \
+\xa9\xfe!\xaa\xa5m\xb4\xc3\x06\x80@\x13\x12\xa5@h\
+\x06\x8e\xf0\xb3\x9a\xd9 \xd6\x1d=\x1f`\xb5V\xe5\xc0\
+r\xf1\xb5\xf8\x11Rby\xd0@P\xde\xdf\xe7\xdb\x99\
+\xe7L>yN\x03\x83d\xffu\xae\x04\x83\x14\xf3y\
+\xaa{\xdb\xcd\xb9#AH\x81\x8b\xe2\xa0\xa1p\x94@\
+\x1a-,\xaf\xcesch\x80x<\xf1\xf1@\xc7v\
+h\xb8\x1e\xba\xae\xa3k\x12C\x17\x18\xba \xb3\xbe\xc5\
+\xcb\xf9%:\xbb{\xe9\x0cE0\x0c\x1d\x81@\xf1\xe1\
+\x8e%$x\x02l\x0f\x1a\x1e\x08!\xd9\xd9\xd9\xa1n\
+\xd5O\x85;\x11(\xa5\xc0sm@!\x04hR\xa0\
+ip{t\x98k\x03iV2yV3yj\x07\
+\xf5\xe6\xfa\x01P\xcd\xa7\xe0p\xd7\xd1\x04\xeap/W\
+^\x03\xc7\xb60}\xa7?\xfa\x8e\x05\x06\x02\x01Z}\
+\x82J\xc3B)\x0e\x17\xb1@\x0aA0\xd0\xca\xc4\xad\
+4}\x89\x08\xef\x96\xb3ll\x15QJ\x1d\xc2\x04R\
+\x80\xa7\x04\x9aPhB\x80RX\xb5\x12\x9a\xf0\xe8\xec\
+\xec<\x1f`(\x14&\x19\x0b\xb3Q\xb5h3\xc0\x90\
+\xcd\x8a8\xec))\xa0\xbb\xb3\x8d\xf0\xf8\x00\xb9T\x17\
+\x93\xd2\xa1\x5c\xd8@\xa0\x0e{\xf1h\xc8\x15\x07u\x9b\
+\xbd\xfc\x1a\x91p\xe7\x99N\x93c\x81\xed\xed\x01R\xc9\
+\x04F\xc9\x01\xcfFy&NC~\xd7\x9bGP\x9f\
+\x14\xa4\xa3W\x88|y\x87\x1b\x83=\xf8M?G6\
+\xe5\x81m+\x8a;\xdb\xec\xe5\x16\xf8\xe9W??S\
+vs\xecF\xad\xeb:\xe1p\x04\x1f5\xb2[\xebl\
+\x15\xeaTj\x1evC}\xb0 \x84j\x16\x14\xf0\x19\
+\x8c\x0d\x0f\xd0\xe2\xf75\xcfd\xc0v\x14\xc5\xf75V\
+\xdfL\x12\xea\xf0\xf3\xd9\x8f\xee\x9c\x1aw\x22\x10 \x12\
+\x89`h\x82\x9d\x95\x19V\x96\x16\xc9\xbf\xb7\xd9\xdbw\
+q\x5c\xf0\x0e\x99G\xd4\xef:\xf5\xf0\x0f\xcbVl\xef\
+Z\xbc{=C~\xed\x05\xf7\xef\x7f}\xe6\xb4\xeb\xc4\
+\x84UJ\xc9\xc8\xc8m\xde-,03\xfd\x17\x5c\xc7\
+Bp\x1b![\x09\x074\xfc\xdf+A\x00\x1e\xe0\x02\
+\xfb\x96b=Wcvz\x8a\xf9\xc9\xbf\xf2\xb3\xcf?\
+\xe7\xceg?>\x13\xae9:\xa7LX\xcb\xe52\x7f\
+\xfa\xf3\x1fy2=KW\xdf\x047'\xeeq\xb5/\
+A4\xe4\xa7\xcd/1\xe4\x7f\x86\xf4}\xb9\xceZf\
+\x8b\xb9g\x8fXz=\xc9\x97_|\xc1\xd7\xf7\x7f\x81\
+\xae\x9f\xfd\x86qj 4\x93\x87\x87\x0f\x1f\xf0\xcd\xdf\
+\xbea\xb7\x5c\xa7+9D\x22=H$\xdaM\xab\xdf\
+\xc4\xb1-J\xbbyr\xebK\xecl.\xd1bj\xa4\
+\xd3}\xdc\xbb\xfb\x13FGF\x11G\xa9\xd9E\x01\x8f\
+\xa2P(\xf0\xfc\xc5\x0c/_\xce\xb2\xbd\xbd\xc3\x81e\
+\x01\xcdE\xd5\xd6\xdaB2\x91`t\xe46J\x81\xe9\
+7\xc9\xe5\xb2\xd8\xb6\xcd\xc8\xad\x11\x86\x87\xaf_<\xf0\
+(\x5c\xd7\xa5R\xa9P\xab\xd5p]\x17\xc3\xd0ik\
+k\xa7\xbd\xbd\x1d!\x04+\xab+hR\xa3\xb8[\xe4\
+\xd9\xb3)\x84\x90\xfc\xe6\xd7\xbf\xa5\xa5\xa5\xe5\xd4u\x9c\
+\xb8\x8a\x8f\x0bM\xd3\x08\x06\x83\xc4\xe3qR\xa9\x14\xb1\
+X\x0f\x81@\xe0\xf0^\xd2\xe0\xed\xdb\xb7\xd4j5R\
+\xc9$\xe9t\x1f\xa5\xd2{\x9e?\x9f9S\x1d\x1f\x05\
+<.t]'\x95L177\x87\x94\x1a\xa9T/\
+==q\x9eN?\xa5X,^>\x10`xx\x18\
+\xd34y\xb7\xb0@w\xb4\x9bT*\x05J\xf1x\xf2\
+\x9f\x9cvf](P\xd7u\xc6\xc7\xc7YY^\xa6\
+vP#\x91H\x92L\xa6x\xf3\xaf7\xac\xae\xad^\
+>\x10 \x99L\x12\x8b\xc5\x98\x9f\x9f'x%H2\
+\x99$\xd0\x1e\xe0\xe1\xa3\x07\xa7\xba\xe1]8\x10`|\
+|\x9cb\xb1H\xa1P\xa0\xa7\xa7\xb9\xa0\xb2\xd9,s\
+\xaf_}\x1a\xc0`0\xc8\xf0\xd00\xf3o\xe61M\
+\x93x<A\xb4+\xca\xe3\xc7\x8f\xa9T\xca\x97\x0f\x04\
+\xb8y\xf3&\xcaSd2\x19\xa2]]\xa4R)\xea\
+\xf5:SO\xa7>\x0d\xa0\xdf\xefgll\x8c\xa5\xc5\
+%\x5c\xcf#\x16\x8b\x91H$\x98\x9d}A6\xbbu\
+\xf9@\x80\xfe\xfe~\x82\xc1 \x8b\x8b\x8b\x04\x83\x9d\xc4\
+\xe3qL\xd3\xcf\xe4\x93I\x94\xf2.\x1f(\xa5db\
+b\x82\x5c6G\xa5R!\xda\x15%\x1e\x8fS,\x16\
+888\xb8| @4\x1aepp\x90\xcd\xcdM\
+\x0c\x9f\x8f\xd6\xd6Vz{\xd3\xf8\xfe\xc7M\xef\xa3\x92\
+\x85\x1f\x1a\xb6mS(\x16\xf0<\x8fJ\xa5B\x22\x9e\
+\xa0\xa3\xe3\xbf\x7fi\xb8\x14\xe0Qx\x9ewb\x8ex\
+\xa9\xc0\xd3\xc4\xbf\x01\x1d\xed\xef\xf6__\x8c\xd9\x00\x00\
+\x00%tEXtdate:creat\
+e\x002023-03-08T17:\
+27:27+00:008\xef\xae1\x00\
+\x00\x00%tEXtdate:modi\
+fy\x002023-03-08T17\
+:27:27+00:00I\xb2\x16\x8d\
+\x00\x00\x00(tEXtdate:tim\
+estamp\x002023-03-0\
+9T06:18:41+00:00\
+=\x00\x9f\x01\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x07&\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x05\xf1IDATX\xc3\
+\xd5\x98\xddo\x1cW\x19\xc6\x7f\xe7\x9cY\xc7\x01\x7f%\
+n\xb1[\xd26n%\xabNh\x8a\x89\xd44\xadI\
+\xd5F\xc8\x154\x84P `\xa9A\xa8\xa2\x22\x01A\
+*@\x88\x1b\x90(\xfd\x03\xf8\x10\x14\xa9B\x0a\x5c\xc1\
+E\xa8@\x5cp\x11\xa9i\x9b\x08Jp\xd5$u\x08\
+\xa4\x0eI[\x9c8\xb1\x1d\x7f\xee\xce\x9cs\xde\x97\x8b\
+\x19\xaf\x9b^t7\xb1\xe3\x84\x95^\xcd\xce\xec\xae\xce\
+O\xcf\xf3>\xef\x99\x1d\xa3\xaa\xca\x0d\xfc\xb2\xd7\x1b\xe0\
+\xff\x1e0\xa9\xf5\x85r\x1a8{~\x9a\xd1\x89\x0aQ\
+\x94\xcd\xeb;X\xd1\xe0\x96\x0d\xb0\xa6\x82\xfb\x0f\x9e\xe2\
+\xafC\xe70\xce\xf0\xf3\xfdG\xf9\xd1\xbe#\xfc\xf7\xe2\
+\xec\x8d\x01\x18E9\xf5\xd68\xad\xab\x9bh\xeaX\xcd\
+\x13;\xee\xe5\xec\xe8\x0cO\xff\xec\x15^~}\x84\xe5\
+HWM\x05\x9d\x01509\x97\xb2\xea\xa6f\xbe\xf2\
+\xf9^\xee\xbe\xab\x9dg\x7fs\x84\xe7^8\xce\xcc\x9c\
+\xbf\xa6\x805{PU\xa8\xa4\x9e4\xcd\x10Q\x8c\x81\
+-\xf7wq\xfb\xad-\xfc\xf9\xc57y\xe3\xf48\xdf\
+\xfc\xdc\x06\xbaok\xbb\x1e\x0a*\xaaBZ\x00fi\
+FZ\xc9\x98-\xa7tv43\xb0m\x1dX\xf8\xde\
+/\x0f\xf3\xa7C\xff!DY~\x05E\x22\x954#\
+K=\xaazY\xdf\x19\x0b[\x1f\xbc\x83\x93o\x8e\xf1\
+\xab?\x1e\xe7\xd8\xf0\x18Om[\xcfMm\x8d\xcb\xa5\
+ H\x14\xcaiF\x96\x05\xb2,\xe03\x8f\xcf<Y\
+\xe6IS\xcf\x5c%c\xedm-l\x7f\xa4\x8b\xa13\
+c|\xf7\x17\x878\xf2\xcf\xd1e\x04\x94H\x9az\xbc\
+\x0fd>\x90\xf9H\x96E|\x16\xf2kY\xa0\x5c\xf1\
+$%\xcb\xd6\xfb\xd7\xd0\xbe\xaa\x81g\xf6\xfd\x9d\xdf\xfe\
+\xe5$\xe54,\x1a\xb0\xa6\xc5Q\x84J\x9a\xc3\xbc{\
+\xdb\xce\xdf\xea\xbb\x8eyuw\xb5\xd2\xde\xd6\xc0\x1f^\
+\xfa7o\x0c\x8f\xb1{\xc7=\xdc\xd1\xd9|\xed\x14T\
+\x89d\x99\xc7\x87\x88\x0f\x92\x97\x8f\x84\x10\xf1>\xe2C\
+\xccU\xf5\xf9y\xb9\x92\xf1\xc1\x95\x96\xbe\xde\x9b\x19\x9d\
+\x9c\xe6\xfb\xcf\x1d\xe2\xc0?\xdeF\xae\xf2\x9e\xa4\xf6\x98\
+\x11\xc1\x87H\x08Bu\x8d\xf9\xb0\xe8\x82r\xf3%\x22\
+\xa8\x0a*B\xcf\xda&\xce],\xf3\xd3\xdf\x0f2t\
+z\x8c]\x8f\xf6\xd0\xda\xd4\xb0\xc4\x80*\xc4\xa8\x84\xa0\
+\xef\xb1X\x17\xac\x95\xcb\xe1D\x16\xaa\xb5\xc9\xf2\x91;\
+Wr\xf0\xb5\xd3\x9c<;\xc1\xee\x1d\x1bX\xdf\xb5z\
+\x09-.\x16\x8c\xa2\xc4\x98W\x88\x0b\xd0!\xe4\xe7>\
+H\xf5\xe8\x0b\xbb\xbd\x0fTRO\x14\xcf]\xb7\x96\x98\
+\x9a\x9e\xe0\x87\xcf\x1f\xe6\x85\x97\x86\xf1\xa1\xbe\x99Y\xfb\
+vK\x05Q\x88\x11\xa2\x14\x15y\x0f\xb0\x12\xa3\x10\xe6\
+{4H\xb57sP!\x84@G\x9b\xa1%\x99\xe6\
+\xc7\xcf\x1f\xe0\xd9}\xafr~|n\xf1\x16\xe7\x8dg\
+\x10\x01\xa9\xf6`~Y\x15D\x15\x15\x10\xd1\xa2\x04\x89\
+\x82\x8a\x22Q\x08>P\x9e\xab011\xc5\xe8\x85q\
+F/N0=S\xe1\xd7\xbf\x1b\xe1\xc4\xf09\x9e\x1e\
+\xd8\xc4\xa6u\xb7`\xcc\xd5\x02\x22\xa0 \x02Z\x1d+\
+\x05`\x01-\x85\x921\xe4\x89\xafTRfg+L\
+\xcf\xcc255\xc3\xf4\xcc\x1c\xe5r\x99,M\xf1>\
+\x80\x06\xb2\xc9\xb7y\xf1\xe0%F.L\xf1\x93\xef\xf4\
+\xd3\xdb\xddqu\x80\xaa\xb9u\xe54\x16\x8d\x9f\xab\x94\
+\xdb\x9b[\x98\xf9\x90\x83\xa5\x19i\x9a\x92VR\xb2,\
+\xc3\xfb\x8c\xe0\x03\xaa`\xad\xc59K\x0c\x060\x18c\
+p\x16\xd0\xc0\xfbM\xa0\xba\xc6\xccT9\x03WA\xe6\
+\xd3Z$6\x07\x15b\x8c\xc5\x11\xc0b\x9d\xc39\x87\
+\x88C\xa2\xc3X\x8b5\x16S\xf8\x98$%\x1a\x9b\xda\
+\xd8x\xef:\xbe5\xd0Go\xf7\x87\x16\xd1\x83(\xd6\
+9\xacu\x18\xa3(\x8a\x15E\xad!J\xae\x841\x14\
+=\xa4\x88\x0a6\xba\xfc7\xd1\x16\x9f\x1b0\x8014\
+46\xf2\x81\xa6f>\xfdp/_}|\x13\x9d\xed\
+\xef\xbf\xcb$5\xd8P\x94\xa4\xe4(\x95\x92|\xde\xb1\
+\x10\x06c\x04\x88\xd5\x9e\xb4V\xb1V\xb0\xd6b\x8d\xa9\
+\xc2\x19\x0c\xce9\x1a\x1aW\xd0ys\x1bO=\xde\xc7\
+\xa7\xb6\xac\xa7\x94\xd4\xfeoSW\x8a]\xc9\x91$\x09\
+*\x92[l\x15\x11SX\x9a\xc7Y\xad\x22\xd6\xe6p\
+\xd6b\xcc\x82z\xaedQ\xe0\xbe\x9e\xb5|c\xe0a\
+z\xee\xbc\xa5\xb6q\xf5[,\xb8$\xa1\x94$\xc5N\
+Q\x84\xa4\xe8\xa7\xcb\x94\xab\xda\x99[j\xac\x05'\x94\
+\xf0|\xe9\x13\x1byb\xfb\x83\xb44\xad\xac\x1b\xae~\
+\x05\x93\x5cA\x91X\x00\x9a\xdcYU\xd4)\x22\x16c\
+-\xc6.\xd8j\x13Cev\x8a\x8e&\xc3\x9e\x9d\x9f\
+\xe4\xa1\xfbz\xaa!YR@E\xb0\x89\xa5Tr\xc4\
+h\xd0B=UP\xa7X\x11\xac5\xcc/m\xad!\
+\x9a\x8cK\xe3o\xf1\xf1\xf5k\xd8=\xd0\xcf\x9a\xce\xf6\
++\x06\xab\x1fP\x15S(hL\xac\xaa\x97+Y(\
+W\xcc5\x93X&&G\x89\x93#\xec\xf9\xcc\x03|\
+\xb6\x7f3\x0d\x0d\xa5\xab\x86\xab\x030O\xadq\x05 \
+T\xd5\xb3VsK\x01\xac!\xb3\x9e3g\x86\xe8j\
+\xb6\xec\xdd\xbb\x93\x0d=]\x8b\x02\xbb\x02\x05\x05\x9b8\
+J\x89\xc3\xa0\x10@\xac\x1490hb\x19\x9d\xba\xc0\
+\xb9S\xc7\xd8\xbe\xe9n\x9e\xdc\xd9O[K\xd3\x92\xc0\
+\xd5\x07\x88Bug\xd0\x5c9\xf2\xa4\x96]\xe4\xc4\xf0\
+Q\x1a/\x8d\xf0\x83/?\xca\xd6\xbe\x8f]U\x10\x16\
+\xad \xce\xe2\x9c#\xe6\x83\x0fq\x86w\xa6\xc7\x19\x1a\
+|\x85\xcdkV\xb1\xf7\xebOr\xfb\x87;j.v\
+\x8d\x00\x15\x8a\xd1\xa1\x0a\xb3&2x\xfa(\x97N\x0c\
+\xb2\xe7\xb1>\xbe\xb0\xed\x11V\xac\xb8\xb2\xdb\xf8%\x05\
+\xb4\x062\x89\xcc\x06\xcf\xd9\x99\x0b\xbcz\xf8\x00]\xae\
+\xc23\xdf\xde\xc5G\xef\xe9\xbef`u\x01Zki\
+_\xd5\xcak\x13\xef0\xfc\xaf\xe3\x8c\xbc~\x84/n\
+\xe9\xe5k\xbbv\xb0\xaa\xad\xe5\x9a\xc3\x01\x98Z\xcf\xa8\
+\x07O\x0c\xb3\xffo\xc7\x88\xe7\xcf\xd3\xdf\xb7\x91\x87\x1e\
+X\xfa ,\x0a\x10 \xcb<I\xe2\xb0v\xf9\x9f\x18\
+\xd7\x05x=_7\xfcC\xf4\xff\x01;\x99\xc4\xf6\x95\
+\xaa\xb1\xc6\x00\x00\x00%tEXtdate:\
+create\x002023-03-0\
+8T17:27:26+00:00\
+\x9e\x98\xa5\x85\x00\x00\x00%tEXtdate\
+:modify\x002023-03-\
+08T17:27:26+00:0\
+0\xef\xc5\x1d9\x00\x00\x00(tEXtdat\
+e:timestamp\x002023\
+-03-09T06:18:41+\
+00:00=\x00\x9f\x01\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x07\xb3\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06~IDATX\xc3\
+\xcd\xd8[S\x1b\xc9\x15\xc0\xf1\x7f\xf7\x8c4\xe2\x22\x18\
+tCW\x046\x86\xb5\x0dfqU\xd6\xb1\xf3\xb4\x95\
+\xdd\xa7x\xf7\x03$\xf9\x88\xa9\xe4!y\xd9\xca\xe3\xda\
+1\x8bm\xb0\x1c\x8ccs\xc7\xc6\x12\xba\x80@ 4\
+3\x9a\xe9<\x08yq*\x01\xb16\xc1\xa7\xaa\xd5z\
+P\xcd\xfc\xa6\xa7O\xf7i\x09\xa5\x94\xe23\x0e\xfdS\
+\x5c\xe4\xe43\x0a!.\x1f\xa8\x94\xc2u\x9b8\x8e\x83\
+m;\xd8\x8e\x8d\xe7\xba \x04>]\xc7\xe7\xf3c\x18\
+\x06~\xbf\xff\xff\x0ft\x1c\x9b\xc3\xc3C\xca\x95\x1d\xd6\
+7\xb7\xc8\x17J\x1c\x1c\x1c\xe0\xb9\x0eR\xd3\xe9\xe9\xee\
+\x22\x1a\x0d\x91J\x0c\x12\x09\x87\x09\x87#\x18\x86\xf1\x8b\
+\x81\xa2\xd39\xa8\x94\xe2\xf0\xf0\x80R\xa9L\xee\xc5\x12\
+\x1b[e\xc2\xe10\xd9\xa1\x14\x03f?>]\xc7\xb2\
+-\x8a\xa5\x0a\xabk\x1bTw+\x0c%\xc3\x5c\xbb\x9a\
+edx\x84P(tq@\xa5\x14\xd5j\x95\x8d7\
+o\x99\xcd-\x13\xec\x0f3=u\x93\x90\xd9\x87\x94\x1f\
+\xce9!\x04\xcd\xa6\xcbV\xbe\xc8\xcc\xecS\xec\xfa\x0e\
+7\xaf\xa5\x99\x9c\x9c$>\x18\xbf\x18`u\xaf\xca\xea\
+\xda\x06O\x166\xb92:\xc6\xd8\xd5a4M \x04\
+H!@\x80\x10\x80\x02\x05(O\xa1\x104,\x87'\
+s96W\x17\xf9bd\x90{w\xef\x12\x0a\x85\xcf\
+\x05\x94g\xfd\xa0\xd1h\xb0\xf5v\x8b\xe7\xaf\xb6\xc8^\
+\x19gx8\x8b\xab\x14\x9e\x02%Z2q\xdc#[\
+\xbd\x12\x02W)\xa4\xa61==Ez\xe4&\xaf\xd7\
+\xf2\xe4r9\x1c\xc7\xf9\xb4\xc0R\xa9\xc8\xd2z\x1e\x11\
+\x08\x93H%q=\xd5\x82I\x81\x94\x02\xa9\x09\xa4.\
+\xd0\xb4V\x93\xc7M\xb4\xb1H\xc6\xaf_\xc7\xe8K\xf0\
+n\xbbD\xa1\x90\xfft@\xcb\xb2(lo\xb3Y\xb2\
+\x88%R\xb4\xdf\xa5\x90\x12y\x0c\xd2t\x81\xae\x09t\
+\xfd\xf8\xfb\xfb&\xdfc\x03\x86\x9ft\xf6\x1a\xf5\xa6\x8f\
+\xbd\xfd=\x5c\xd7\xed\x18x\xea2S\xab\xd5(\x96\xab\
+\x1cz=H\x7f\x17J\x08\x84&\xf1\xfb5\x0c\xbf\xc4\
+\xa7\x81&A\x9exL\xa5\xc0S\xa0\xb9 5\x89.\
+],\x01\x91h\x84\xf5\xb5\x00\xb6\xdd\xa4^?$\x18\
+\xec\xfb\x14\xc0}v\xf6\x8f\x90F\x88\x03Ka\xb9\x10\
+\xc0\xe3\xd9\xfc<\x07\x07\xfb\x18>\x1d)\xa1\x95\xc7\xad\
+O\x85B)p=E\xb3\xe92q\xe3:\xfdf\x04\
+\xa1\xf9pD\x80\xf5\xcd\xb7\xc4\x07c\x9f\x06xX?\
+\xe4\xc8r\xf1w\x05\x10Rb\xb9`{\x1e\x0f\x1e>\
+\xa2X\xda\xa5\xdf\x1c\xe0C^+\x8b\x11\xd0t\x1cv\
+\xcb\xdb\xf4\xf5\x9b\x8c\xf5Eq\x94@\xfa\xbaX]_\
+\xe4\xfa\xd8U\x92\xc9\xd4\xc7\x03\x1d\xdb\xa1\xe9z\xe8\xba\
+\x8e\xaeI|\xba@\xd7\xa0\xaf\xbf\x8f\xae`\x94X\x22\
+M{\x19\xfc\x00\x88\xc0\xb2\x1al,/\xa2\xf9\xfd\xd8\
+\x9e\xa2\xe9\x81\x10\x92b\xb1H\xc3jt\x84;\x13(\
+\xa5\xc0sm@!\x04hR\x1004~w\xff[\
+t\xa9\x11\x08\x04\x10\x88\xf7\xb8\xe3\xa5\x10\x05\xb8\x9e\xcb\
+\xc1\x9dk\x04M\x93\x86\xdbb+\xaf\x89c[\x18\xfe\
+\xce\xb7\xbeS\x81\xc1`\x90n\xbf\xa0\xd6\xb4P\xaa%\
+\x90R2\x94N\xa0\xcb\xd6\x12 \x8fa'\xf7\x13\xaf\
+\xddb&G\x8e\xc2\xae6A)\xacz\x15Mx\x0c\
+\x0c\x0ct\x0c<u\x99\x09\x85\xc2\xa4\xe3a\x82\xbaE\
+\x8f\x0f|R\xa0\x94\xc2S\x0a\xe5\xfd<\x5c\xe2D\xe3\
+D\xaf<u\x5c\x8a)\x8e\x1a6{\xa5\x0d\x22\xe1\x81\
+s\xed&\xa7\x02{{\x83d\xd2)F\x06\x0d\xa4g\
+\xa3<\x0f\xa7\xd9\xca\xd2v\xb4G\xaf\xbd\x91\xfc\xe7\x88\
+*\x0fl[Q)n\xb3WX\xe2\xcb/\xa7\xcfU\
+\xdd\x9c\x0a\xd4u\x9dp8\x82\x9f:\xf9woxW\
+nP\xab{\xd8M\x85\xe2D\x91z\xf2U\x1f\xcb\xda\
+s\xd1v\x14\x95\xdd:\xeb/g\x08\xf5\x05\xf8\xeaW\
+w:\xc6\x9d\x09\x04\x88D\x22\xf84Aqm\x8e\xb5\
+\x95eJ\xbb6{\x07.\x8e\x0b\xde1\xb3M\xfd0\
+\x93\xc1\xb2\x15\xdb;\x16\xaf_\xccQ\xdax\xc6\xfd\xfb\
+\xdf\x9d\xbb\xec:\xb3`\x95R21q\x8b\xd7KK\
+\xcc=\xfd+\xaec!\xb8\x85\x90\xdd\x84\x83\x1a\x81\x13\
+W\x10\xb4\x92\xc3\x05\x0e,\xc5\x9bB\x9d\xdc\xd3Y\x16\
+g\xfe\xc6o\xbf\xfe\x9a;_\xfd\xfa\x5c88G\xc1\
+\xba\xbf\xbf\xcf\x9f\xff\xf2'~z\x9a#:|\x9b\x1b\
+\xb7\xefqe8E,\x14\xa0' \xf1\xc9\x9f_\xe9\
+\xee~\x83\x8d\xcdw,<y\xc8\xca\x8b\x19\xbe\xfd\xe6\
+\x1b\xbe\xbb\xff=\xba~\xfe\x13F\xc7@h\x15\x0f\x0f\
+\x1e\xfc\xc8\x0f\x7f\xff\x81\x9d\xfd\x06\xd1\xf4\x18\xa9\xec(\
+\x91\xd8 \xdd\x01\x03\xc7\xb6\xa8\xee\x94(\xbcY\xa1\xb8\
+\xb5B\x97\xa1\x91\xcd\x0es\xef\xeeo\x98\x9c\x98D\xb4\
+K\xb3\x8b\x02\xb6\xa3\x5c.3\xffl\x8e\xe7\xcfsl\
+o\x179\xb2,\xa0\x95T=\xdd]\xa4S)&'\
+n\xa1\x14\x18\x01\x83B!\x8fm\xdbL\xdc\x9c`|\
+\xfc\x8b\x8b\x07\xb6\xc3u]j\xb5\x1a\xf5z\x1d\xd7u\
+\xf1\xf9tzzz\xe9\xed\xedE\x08\xc1\xda\xfa\x1a\x9a\
+\xd4\xa8\xecTx\xf2d\x16!$\x7f\xf8\xfd\x1f\xe9\xea\
+\xea\xea\xf8\x1egf\xf1i\xa1i\x1a\xa6i\x92L&\
+\xc9d2\xc4\xe3\x09\x82\xc1\xe0\xf1\xb9\xa4\xc9\xabW\xaf\
+\xa8\xd7\xebd\xd2i\xb2\xd9a\xaa\xd5]\xe6\xe7\xe7\xce\
+u\x8f\x8f\x02\x9e\x16\xba\xae\x93IgXXX@J\
+\x8dLf\x88D\x22\xc9\xe3\xa7\x8f\xa9T*\x97\x0f\x04\
+\x18\x1f\x1f\xc70\x0c^/-1\x18\x1b$\x93\xc9\x80\
+R<\x9a\xf9\x07\x9d\xce\xac\x0b\x05\xea\xba\xce\xf4\xf44\
+k\xab\xab\xd4\x8f\xea\xa4Ri\xd2\xe9\x0c/\xff\xf5\x92\
+\xf5\x8d\xf5\xcb\x07\x02\xa4\xd3i\xe2\xf18\x8b\x8b\x8b\x98\
+\xfd&\xe9t\x9a`o\x90\x07\x0f\x7f\xec\xe8\x84w\xe1\
+@\x80\xe9\xe9i*\x95\x0a\xe5r\x99D\xa2\x95P\xf9\
+|\x9e\x85\x17\xff\xfc<\x80\xa6i2>6\xce\xe2\xcb\
+E\x0c\xc3 \x99L\x11\x8b\xc6x\xf4\xe8\x11\xb5\xda\xfe\
+\xe5\x03\x01n\xdc\xb8\x81\xf2\x14\x9b\x9b\x9b\xc4\xa2Q2\
+\x99\x0c\x8dF\x83\xd9\xc7\xb3\x9f\x070\x10\x08055\
+\xc5\xca\xf2\x0a\xae\xe7\x11\x8f\xc7I\xa5R\xe4r\xcf\xc8\
+\xe7\xdf]>\x10`dd\x04\xd34Y^^\xc64\
+\x07H&\x93\x18F\x80\x99\x9ffP\xca\xbb|\xa0\x94\
+\x92\xdb\xb7oS\xc8\x17\xa8\xd5j\xc4\xa21\x92\xc9$\
+\x95J\x99\xa3\xa3\xa3\xcb\x07\x02\xc4b1FGG\xd9\
+\xda\xda\xc2\xe7\xf7\xd3\xdd\xdd\xcd\xd0P\x16\xff\xff8\xe9\
+}T\xb1\xf0K\xc3\xb6m\xca\x952\x9e\xe7Q\xab\xd5\
+H%S\xf4\xf5\xfd\xf7\x7f\x1a.\x05\xd8\x0e\xcf\xf3\xce\
+\xac\x11/\x15\xd8I\xfc\x1b\xf8\xd3\xe2\x07\xbf\x88\x01N\
+\x00\x00\x00%tEXtdate:cre\
+ate\x002023-03-08T1\
+7:27:27+00:008\xef\xae\
+1\x00\x00\x00%tEXtdate:mo\
+dify\x002023-03-08T\
+17:27:27+00:00I\xb2\
+\x16\x8d\x00\x00\x00(tEXtdate:t\
+imestamp\x002023-03\
+-09T06:18:41+00:\
+00=\x00\x9f\x01\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x06\x9c\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x05gIDATX\xc3\
+\xcd\x98\xdbR\xdbF\x1c\x87\xbf]I6v\x8c\x09\x81\
+`\x93\xd0\xa6!\x99\x98So;\x9d6\x9d\xf4\xb6\xcf\
+\xd1\x9b>`\x1f\xa0w\xbdKho\x80\x90\x03I\x98\
+6q0\x03\xc6\x08[\xd2\xee\xf6B\x07\xdb\xb2%\xdb\
+t\x9afgd\xaddi\xf7\xdb\xdf\xff\xb0\xbb\x12\xc6\
+\x18\xc3g\x5c\xec\xf4\x8dN\xa7\x83\xeb\xba\xff\x0bL\xb9\
+\x5c\xa6R\xa9d\x03j\xady\xfa\xf4)\x85B\x81R\
+\xa9\xf4\xc9\xc0\x84\x10\xb8\xae\x8b\xe7y<~\xfc\x18)\
+\xe5x@c\x0c\xbe\xef\xb3\xb5\xbdM\xb1PD\x1b\x8d\
+\x14\x02\x84@ @\x00\xc6D\xd7\x80\x10a\x07\xfd\x9e\
+\xc6^\x0f\xdd\x1b\x07(%\x97\x9d\x0e\xcf\x9e=#\xed\
+q#&\x16B\xa0\x94\xc2\xbd\xba\xa2\xdb\xbd\xa2\xd7\xf3\
+\x08\x19\x05\xc5b\x91R\xa9\x84\x88A\xd2\xe74d\x06\
+\xb0\x14\xe18c\x14)\x04Z\xeb\xa4\x9d\x5c\xc0\xb8A\
+iI\xf6\xf6\xf6x\xf5\xf2%\x95J\x85n\xb7\xcb\xd2\
+\xf22?>y\x82\x14\x22\xec+Rr\x148l%\
+:\x11c\x0a\x01\xda\xc0\xfbs(\xd8\xb0X\x06K\x82\
+A\x92U\xc6*\x18\x9e%\xbe\xe7\xf1\xa8\xd1`gg\
+\x87w\xef\xde\xb2\xf7\xfc\x88\xf7\x97\x0e`\xa1\x8cAi\
+\x816\xa0ttDu=PW\xda\x8c\xfc\xf7\xc7\xb1\
+a\xf7\xd8\xb0Y\x17|\xff\x00\xbe]\x07G\x88\xe9\x00\
+\xe3\x22#\xb3:\xb6M\xb1X\xc4q\x0a\x18\x04\x9e\x92\
+\x18$\x81\x86@\x83R&\xa9\x07\x11h\xa0\xa2k5\
+p/\xbaV\x1a\xda]8\xe9\x18\x8e\xcf\xe0}[\x10\
+h\x81\x93\xe1\xa4\xa3\x80Q\x10 \x04\x96e\xb1\xbf\x7f\
+\xc0\x87\x8f-:\x17\xe7\xccW*\xdc_\xf4\x91R\x0d\
+\x997\xf6\xb7\xecs\xdf\xf4\xda\xc0\x8b\xa6\xe1\x97'\x92\
+\xbb7\x05s\x0e\x80\xa4\xd3\x99\x12\xd0\x0c8\xf5\xe6\xd6\
+\x16\xf5;k\xfc\xed\x96yP\xeer\xabZF\x08\x19\
+=!\xa2\xe7\x13\x0f\x8b\xde\x15\x91\xf3\x8b\xa4A\x13\xc1\
+\xc6\x01\xfa\xa8&\x92\xbe\x8c\x01!\xb3c<\xd3\xc4\x00\
+\x0b\x0b\x0bT\xaa\x8b\xb8's\xac-y\x94\x1d\x831\
+&\xf4\xd3\x94RI\x04\xa6\x15L\xd7\xe9Go\xac\xaa\
+\x10\xd7\x00\x14B`L\x08\xe4\x07:\xcaO\x03p\x19\
+&\x1d\x01\x1d\x038\xae/f\x0d\x92\xc1\x14\xeb\xa9\xc8\
+\x94\x22J\x1e\x830S\x00\xe6)\x14\xf7\x95\xf5D\xb6\
+\x89E?\x8f\xf9j\xb0\xa3\x81\xe0\x18\xcc\x7f\x199q\
+\xacZS\xdc\xcb\x07\x8c:\x8f\x9d>\x04\x1c\xa3\xd4\x18\
+\xa8tg\x93\xd4\x9bT2g\x92X=\x22@\x13\xcd\
+\x04i\x90\x11%\xa7\x04\x9b\x16<\xdf\xc4Q\xce\xf1U\
+8q&SX\x0an\x12\xd8\xbf\x81\xb5'\xbf\x94V\
+pz\xb8i\xc0&\xad\x97s\xa3\xd8D\xed\xc7A2\
+-\xdc,*\x8e\xf3\xdb\xa9\x00\x13\x13'\x0a\x0e\x9b8\
++Z?I\x90$ZE\xd1\xd27\xb1 \xed\x83\xb3\
+\x80]G\xc5\x5c\x05\x89\x14\xf4\x828\xe1\x08LF\x07\
+\xff\x95\x8a\xd9y0\x91\xb1\xaf`2\x93LP\xe3:\
+*\xce\x048\xbc\x93\x10\xfd4\x13\xafX\xa6\x08\x8e<\
+\x15\xd3\x91{\xfd \x89\x0c\x1a\x07I\x18\xda\x93\xd5\x1a\
+W\x8f\x17\x1e\xf1\x91\x06TZ3.\xe3d/\xf9\x07\
+~}e\xc2 \x89\xc0\xb3\xde\xc9\xaak\x1d\xae\x86\xb4\
+\xd6(\xa5\xd0Z\xa3\xb5N\x9e\x93R\xe2\xf9\x01f\x8c\
+\x87OH3ap\xf8\x01#\xa3\x9b\xe4_\x83pJ\
+)\x94R\xf8\xbe\x9f\x1cA\x10$;9\xc7)\xd0\xee\
+\x5cb\xb4\x19\x19\xff\xe44\x03\xd1r\x8b\x81\xc8\x9e\x0e\
+4\x86\xf3}\x9f^\xaf\x87\xeb\xba\x5c\xba.\xdd\xab.\
+\x9e\xe7\xa1\x94\xc2v\x1c\x0as%\xde\xbc9b\xfd\xde\
+\x97HiM\xa9`\xda\xc4\xa6\xef\x82\xd3Dg\x0c\xe7\
+y\x1e\xddn\x97v\xbb\xcd\xd9\xd9\x19\xe7\xed\x0b\x5c\xd7\
+\xc5hMe\xbe\xc2|\xc1\xe1\xf8\xed\x11_\xdcY\xa5\
+\xd1h\xcc`b\xfa@\x89\x82\x13\xa0\xe2{\xb1\xbf\x05\
+A@\xaf\xd7\xa3\xddn\xf3\xa1\xd9\xa4\xd5jaY\x16\
+\xd5j\x95\x95\x95\xdb\xd8\x96\xe4\xf5\xd1k\xd6\xd6\xee\xb2\
+\xbd\xb5=\xf4\xc9c2\xa0\x08\xf1\x84\x08\xb7\x8b\xb9\x03\
+I\x81\xc6\x80\xbe\xef\xe3\xba.gg\xe7\x9c\x9c\xb4X\
+]\xad\xb3\xbd\xb5\x85\x10\x82\xd3\xd3\x16\xfb\x07\xfb\xd4k\
+\xablnn\x8e\x85\x03\xb2\xb7\xf4\x82p\x0f\xfb\xa1\x1d\
+\x026\xdb\x06Oen\x1d\x86@\x8d1\x89y;\x9d\
+K\xda\xed6\xae\xeb\xb2xs\x11\xdb\xb6i\xb5N\xd8\
+?\xd8\xa7\xb6R\xcb\x85\xcb\x05\x84\xf0\xb3\xc4o\x07\x8a\
+\xdf_)~\xfd3\x88\x229\x7f&\x88\xf3\x5c\x08\xe8\
+suuE\xe7\xf222\xed<\x1f?69x~\
+@m\xa5\xce\xc6F>\x5c\xae\x89\x0d`K\xc1\xc3\x15\
+\xc9E\xd7poI2\xe7\x84\x1b\xefI\xa5\xef\x83>\
+=\xaf\x87\xd7\xebq\xfb\xf62\xdd^\x97\x17\x87\x87\xd4\
+ku\x1a\x8d\x8d\x89p\xb9\x80\x82\xf0;\xca\xce\x1d\xc9\
+w\x0f,\xbe\xb9?\x1c\xfeY\xd3\xd3\xe0l\xa1\x94F\
+\x05\x0a\xa7P`\xa1Z\xe5\xc5\xe1!\xb5Z\x9dF\xa3\
+1\x15\x5c\xae\x89\x0d\xa0\x8d\xe1\xd6\x0d\xf8\xf9\x07\x87\xaf\
+\x96\x04\x03\xc9?\xb3\x0co\x07@Z\x16\xd5\x9b\x8b4\
+\x9b\xcd\x99\xe1\xc6*h\x8cAJ\x89c\xdb\xc9W\x84\
+\x9f\xbe\x06\xdb\x1a\xde|\xe7\xadf\xa4e!-\x0b\xbb\
+P\xc4.\xdd\xa0\xf5\xd71\xeb\xf7\xbe\x9c\x19n\x040\
+\xcea\xbb\xbb\xbb\x94J\xa5\x10\x10\x86\xa7\x95h\x10y\
+&\xd6\xc6\xe0+\x8d\xe7\x07t:\x1d\x1a\x0f\xd7\xd9\xd8\
+\x98\xce\xe7F\x06\x9c\xfe\xca\x7fzz\xca\xc5\xc5\xc5\xcc\
+\x0de\x95R\xa9\xc4\xf2\xf2\xf2\xb5\xe0\xc6\x02~n\xe5\
+\x1f\x17\xf7\x97\x9b\xb7\xd04\x1a\x00\x00\x00%tEX\
+tdate:create\x00202\
+3-03-08T17:27:26\
++00:00\x9e\x98\xa5\x85\x00\x00\x00%tE\
+Xtdate:modify\x0020\
+23-03-08T17:27:2\
+6+00:00\xef\xc5\x1d9\x00\x00\x00(t\
+EXtdate:timestam\
+p\x002023-03-09T06:\
+18:41+00:00=\x00\x9f\x01\x00\
+\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x03\x89\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01G\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf2\xf2\xf2\xef\xef\xef\
+\xf8\xf8\xf8\xd5\xd5\xd5\xe2\xe2\xe2\xe3\xe3\xe3\xe3\xe4\xe4\xe4\
+\xe4\xe4\xe5\xe5\xe5\xe6\xe5\xe5\xe6\xe6\xe5\xd6\xd6\xd6\xf7\xf7\
+\xf7\xd9\xd9\xd9\xea\xeb\xec\xe2\xe7\xec\xdd\xe4\xed\xe9\xec\xee\
+\xec\xee\xf0\xea\xec\xed\xcb\xcc\xcc\xc6\xc6\xc6\xe0\xe2\xe2\xf1\
+\xf3\xf4\xf0\xf2\xf3\xe8\xed\xf4\xe5\xeb\xf3\xf2\xf3\xf5\xda\xda\
+\xda\xe0\xe5\xed\x93\xb9\xee\x82\xb0\xf1\xb4\xce\xf1\xbe\xd4\xf3\
+\xc1\xd3\xec\xb8\xbc\xc1\xc8\xc8\xc8\xbf\xc9\xd6\xce\xdf\xf7\xc3\
+\xd8\xf5\xa1\xc4\xf4{\xad\xf3\xcb\xdc\xf5\xdb\xdb\xda\xec\xee\
+\xee\xe0\xe6\xee\xd9\xe3\xf0\xe9\xed\xf1\xec\xef\xf2\xea\xec\xef\
+\xc9\xc9\xca\xc4\xc5\xc5\xe0\xe1\xe3\xf2\xf5\xf7\xf1\xf3\xf6\xe7\
+\xee\xf7\xe1\xea\xf6\xf3\xf5\xf7\xdb\xdb\xdb\xef\xf0\xef\xf1\xf1\
+\xf1\xf3\xf3\xf3\xf4\xf5\xf5\xf5\xf5\xf5\xf6\xf6\xf6\xf9\xf9\xf9\
+\xfa\xfa\xf9\xf0\xf1\xf1\xf3\xf4\xf4\xfa\xfa\xfa\xfb\xfb\xfb\xf1\
+\xf2\xf2\xf6\xf7\xf7\xfc\xfc\xfc\xf9\xfa\xfa\xdc\xdc\xdc\xf4\xf4\
+\xf4\xfd\xfd\xfd\xda\xdb\xdb\xfe\xff\xff\xd8\xd9\xd9\xf7\xf8\xf8\
+\xee\xee\xee\xde\xde\xdf\xd8\xd9\xda\xcf\xd1\xd1\xea\xea\xea\xcc\
+\xcd\xcd\xc3\xc4\xc4\xc9\xca\xca\xed\xee\xee\xf2\xf3\xf3\xd0\xd0\
+\xd1\xc5\xc6\xc6\xe9\xe9\xe9\xd4\xd5\xd4\xf8\xf9\xf9\xbf\xc0\xc0\
+\xcb\xcb\xcc\xd7\xd7\xd6\xe8\xe8\xe8\xc1\xc2\xc3\xcb\xcb\xcb\xf0\
+\xf0\xf0\xd3\xd3\xd3\xd5\xd7\xd8\xc8\xca\xcc\xe5Kfq\x00\
+\x00\x00\x01bKGD\x00\x88\x05\x1dH\x00\x00\x00\x09\
+pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0kB\
+\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x142\
+\x1f\xc9N\xa7\x00\x00\x01\x06IDAT\x18\xd3U\xd0\
+WS\x021\x10\xc0\xf1\xcd]$\x1eJ\xec]Q\xb0\
+\xf7\x86\x1d\x85\xbb\x08wr\xc0YP\xb1c\xaf\xdf\xff\
+\xd9$\x1b\x1f\xfc?\xfefwvf\x01\x88e\xff\xcb\
+\x22\x00@\x9bb1\xc6\x9a\x9d\xb8\xaa\xa55\x9e\xa0\x12\
+y[{GgWwOo_\xff\xc0\xe0\xd0\xf0H\
+\x92k\x1c\x1dK\xa5\xc7'&\xa7\xa6gf\xe7\xe6\x17\
+\x16\x11\x97\x96WV\xd7\xd63\x1b\x9b[\xdb;\xbb{\
+YD{\xff\xc0\xca\xe5]\x8fS*\x0e\x05b\xb2P\
+\xb0\x8a\x8a\x84/\x0b\x0c\x1eI+)\x0ad\xa1\xc1\x5c\
+\xd1\xe5\xb4,)TU\x10\xab\xf9\x12\xd5\x14\xa9\x10\x8f\
+]O\xeej#2\xc4\xac\xc7\xd1\x08\x01BN\x0cr\
+j\x8c\x84\xc2\xe3\xa7\x88gjP\x99\xa8\x9d'..\
+}\x8dT\x04\x1a\xfd\xfa\xd5u\xe6\xe6\x16\x10\xcb\x81:\
+\x12\xdd\xdd?4\x1em@|\xd2\xdb\x10\xd6\x9f_^\
+\xd1\x80W\xd0 z{\xff\xf8D\x03\xfa\xc5\x98\xe3\xc8\
+\x1f\xb3\xef\x1f3\x07@j\x8d\xbf\xaa\x86~\x01v\xa9\
+<\x5c=\x11\xff\x81\x00\x00\x00%tEXtda\
+te:create\x002023-0\
+3-08T17:27:26+00\
+:00\x9e\x98\xa5\x85\x00\x00\x00%tEXtd\
+ate:modify\x002023-\
+03-08T17:27:26+0\
+0:00\xef\xc5\x1d9\x00\x00\x00(tEXt\
+date:timestamp\x002\
+023-03-09T06:20:\
+50+00:00\xdd\xe8\xb2\xde\x00\x00\x00\x00\
+IEND\xaeB`\x82\
+\x00\x00\x03\xf2\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xe0\
+PLTE\xff\xff\xff\xf9\xfa\xfc\xde\xe5\xf1\xed\xf1\xf7\
+\xfd\xfd\xfe\xe9\xee\xf6\x97\xb0\xd4\xa0\xbe\xdd\xab\xc3\xde\xea\
+\xee\xf5\xcd\xd8\xea\x83\xa2\xcc\x9a\xbb\xda\xbb\xda\xec\x93\xb3\
+\xd2\xe3\xe9\xf2\xf5\xf8\xfb\xab\xbe\xdb}\x9e\xc7\x9f\xbf\xd8\
+\xac\xcb\xdf\xaa\xc9\xde\x8a\xa9\xc8\xe4\xe9\xf1\xe0\xe7\xf2\x8b\
+\xa7\xcc\x7f\xa0\xc5\x9c\xba\xd2\x9e\xbd\xd4\x9e\xbc\xd4\x83\xa1\
+\xc1\xe3\xe9\xf0\xfd\xfe\xfe\xc0\xcf\xe4u\x95\xbf\x80\xa0\xc0\
+\x92\xaf\xc9\x93\xb1\xcb\x94\xb3\xcd\x95\xb4\xce\x95\xb4\xcf}\
+\x9b\xbd\xe3\xe8\xf0\xef\xf3\xf9\x9a\xb1\xd1f\x88\xb1{\x99\
+\xb7\x84\xa2\xbe\x87\xa6\xc3\x8b\xaa\xc8\x8e\xad\xcb\x8f\xaf\xcd\
+\x8f\xaf\xcey\x97\xba\xe3\xe8\xef\xd5\xdf\xecu\x92\xba[\
+|\xa2m\x8b\xa9u\x93\xb2{\x9a\xba\x81\xa0\xc1\x86\xa6\
+\xc8\x8a\xaa\xcc\x8c\xad\xcf\x8c\xad\xd0x\x96\xba\xe3\xe7\xee\
+\xc5\xd1\xe4Tu\xa2Qo\x92[x\x98c\x81\xa3l\
+\x8b\xadt\x94\xb8|\x9c\xc2\x83\xa4\xca\x88\xa9\xcf\x8b\xac\
+\xd2\x8c\xad\xd4y\x97\xbc\xd0\xd9\xe8]z\xa26U}\
+A_\x85Sr\x99a\x81\xa8m\x8e\xb7x\x9a\xc3\x82\
+\xa3\xcc\x8a\xab\xd3\x8f\xb0\xd8\x91\xb2\xda}\x9a\xbf\xe3\xe7\
+\xed\xe4\xe9\xf0x\x8f\xae,Lz0R\x83Df\x98\
+Vy\xacf\x8a\xbdu\x98\xca\x82\xa4\xd4\x8b\xad\xdc\x8e\
+\xb0\xe0z\x98\xc0\xe3\xe7\xec\xf9\xfa\xfb\xaa\xb8\xcbIh\
+\x92>c\x96Pv\xac`\x86\xbcp\x95\xca\x7f\xa3\xd7\
+\x8e\xb1\xe3\x94\xb7\xea|\x9c\xc4\xe3\xe6\xeb\xd2\xd9\xe2l\
+\x86\xa5Ls\xa4a\x87\xbdq\x95\xca\x80\xa4\xd7\x8e\xb1\
+\xe4\x95\xb8\xea{\x9d\xc4\xe2\xe6\xeb\xee\xf0\xf3\x93\xa5\xb9\
+U{\xa5g\x8f\xc3y\x9d\xd2\x83\xa6\xda\x86\xaa\xdet\
+\x99\xbf\xe2\xe6\xea\xfd\xfd\xfd\xbc\xc5\xd0b\x83\xa3`\x8c\
+\xbcu\x9a\xcfv\x9b\xd0k\x93\xb8\xdf\xe3\xe7{\x94\xaa\
+R\x7f\xa9c\x8d\xc2a\x8c\xb2\xe2\xe6\xe9\xf7\xf7\xf8\xa2\
+\xb0\xbcQ{\x9b`\x8f\xac\xe6\xea\xec\xda\xdf\xe3\xcf\xdc\
+\xe2\xfb\xfc\xfcO\xd6>\xde\x00\x00\x00\x01bKGD\
+\x00\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\x00\x00\
+`\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07tI\
+ME\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\x00\
+\xd6IDAT\x18\xd3c` \x04\x18\x99\x98Y\xd0\
+\xc5X\xd9\xd898\xd1\xc4\xb8\xb8yx\xf9\xf8Q\x84\
+\x04\x04\x85\x84ED\xc5\xc4\x91\xc5$$\xa5\xa4ed\
+e\xe4\xe4\x11B\x0a\x8aJ\xca*\xaaj\xea\x1a\x9aZ\
+p1m\x1d]=}\x03C#c\x13S3\x98\x98\
+\xb9\x85\xa5\x95\xb5\x8d\xad\x9d\xbd\x83\xa3\x933T\xcc\xc5\
+\xd5\xcd\xdd\xc3\xd3\xcb\xdb\xc7\xd7\xcf?\x00&\x18\x18\x14\
+\x1c\x12\x1a\x16\x1e\x11\x19\x15\x1d\x13\x1b\x07\xd3\x1e\x9f\x90\
+\x98\x94\x9c\x92\x9a\x96\x9e\x91\x99\x95\x0d\xb7('7/\
+\xbf\xa0\xb0\xa8\xb8\xa4\xb4\xac\x1c\xc9\x99\x15\x95U\xd55\
+\xb5u\xf5\x0d\x8d\xc8\x8eojnimk\xef\xe8\xec\
+B\xf1fwOo_\xff\x84\x89\xa8\x82\x0c\x0c\x93&\
+O\x99:m:z\xd0\xcd\x989k\xf6\x1c\xccP\x9e\
+;o>\xce\x18\x00\x00\xa7\xd82\x9a\xd1%ng\x00\
+\x00\x00%tEXtdate:crea\
+te\x002023-03-08T17\
+:27:26+00:00\x9e\x98\xa5\x85\
+\x00\x00\x00%tEXtdate:mod\
+ify\x002023-03-08T1\
+7:27:26+00:00\xef\xc5\x1d\
+9\x00\x00\x00(tEXtdate:ti\
+mestamp\x002023-03-\
+09T06:20:50+00:0\
+0\xdd\xe8\xb2\xde\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x08\x19\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x07\xabIDATX\xc3\xad\
+W[P\x93g\x1a\xf6\xca\xce\xec\xcc\xf6b/\xbc\xd9\
+\xe9\xce\xecn\xbd\xda\xd9\x9b\xb5\xce\xba;{\xb0\xad\xcc\
+z\xb1\xce\xce:\xb3vTpu\xdb\xe2\x81\xd6\xb6T\
+\x04\xbb\xa5 m\xc1\x82\x06\x08\x07QB\x80\x80\x80\x02\
+!\x81\x10\x92@H\x10s$!gr\x80\x04B \
+\x9c\x09G\xb5Tx\xf6\xfb~\x13\x160X\x8b}g\
+\x9e\xf9/\x92\xfc\xcf\xfb>\xcf\xfb\xbe\xdf\x97]\x00v\
+\xfd\x98 \xf1\x0b\x82\x14\x02\x03\xc1u\x82\x03\xcf\xfd\xfe\
+\x8fH\xbc\x9b \xe1W\xaf\xef\xb5*\x8c\xd6e\xdb\x02\
+`\x19\x1e[\x09'\xf13\xfa\x19\x81\x22\xfc\xdc>v\
+H~\x8a\xa0\xb9\xb6Y\x1c2\xcf\xadB9\xfe\x1dD\
+\xf6Q\xd8\xc7\xe6\xe8\x87\x86={\xf6XSR\xae,\
+\xca::\x10N\xe2\xe5I\xc3\xc41\x04\xb7>I\xf9\
+,`\x9b]YSM\x03M\xb6\x114\xeb\xfb 1\
+y`\x19\x9d\xc5\xbb\xef\xbe?\xc5\xab\xbe\x83\xf1\x89)\
+LO\xcf\xae\x92\xef\xd7\xbct\x02\x11\x9f\x0f\xbe\x1d\xe3\
+\xb2\x04CO\xb43@\x8b{\x06\xcd=.4\xeb\xec\
+\xa8W\xf6 \x87S\x852^5C\xbc\xb0\xf4\x90\x81\
+\xc1`\x5c&\xbfK|\xe1\x04H\x1c$8A\xfd\xdd\
+\xeas'\xf1\xb9'\x04H\x87\x97\xc1\xd7\xbb \x22U\
+7\xdc7\xa2\xb8N\x88,V>\xccV\xdb:q\x04\
+,\x16k,\xfc\xce\xe7'\x10\x916\x93\x95?F}\
+\xa5\xfe\x12\xc4o\xf4Y1\xb6\x02~\xef Z{\x9c\
+\xe0?0\xa1L(CF\x0e\x1b\xb2\x0e\xf9&\xd2\xf9\
+\xc5e\xcc-,!4\xbf\x88\xbd{\xf7Z\xc9;~\
+\xbam\x02$~C\x90F=5\x13iu\xb3\x80\xd2\
+?\x0f\xcb\xc4\xe2\x9aP\xa1Z\xb4l\xf1Y\xa0\xb6\xa0\
+\xa6]\x8d/\xb2sq\xb7\x9e\xff\x0c1%\x9d\x09\xcd\
+cbj\x06\x83C\x81'\xe4\xdd\xbc-\xd3\xb0;\x92\
+\x033&\xd4S\xb5\xd3\xfbXO\x88\xc5\x03!\x88,\
+CP\xbaF\xd0\xed\x09B\xe5\x9bB\x9bs\xfc\xa9\xcf\
+Z\x1b\xee*t\xc8\xbc\xc9E\x09\xa7l\x93\xcf\x9b\x88\
+'\xa7\x11\x18\x1d\xc3\x80o\x08\xa2\xd6\xd6%\xc2Q\xdb\
+(\x12\x87\xc6\x1f\xaf\x82/b\x94M\x89$\x90\x22\xea\
+R-\x9aB\xab\xe8\x18y\x04\xa1\xc5\xcf\x10St\xf6\
+\x0d\xa3\xd3\xe1\x87\xd4<\x80\x16\xbd\x03\x0d]\x06\x14\xd5\
+\x0a\x90\x91\x95\x0d/y\xf1\xc6\xaa\xa9\xd4\xb3s\x0bL\
+\xc5\x94\xd8\xdd\xef\x85\xc9b\x05\xb7\xbc\x12\xa5\xe5\x95K\
+\x13\xf3\xcb\xab#\x0f\x017\xd9\x11\xe6\xd9\x15\x84\x97\x15\
+\x13\x06\xcb<\xd0h\xf2\xa3\xdd\xee_'\x96;\x86 \
+\xb3x\xd7}\xe6\x08\xa4\xf8<3\x1b*\x8d6\xaa\xdc\
+S3!\x8c\x8e\x8d3\x15\xd3&\xe47\x09\xf1\xc1\xc5\
+\x8fQs\xaf\x01\xbee`\xfc\x11\xa0#\x13#\xf2\xce\
+\xa1\xbe]\xb9\xb8Q\x01\x83\x81ttM\xa7\x1e\x0ag\
+\x80\xa9\xb8\xdd\xea\x83\xd8\xe8B\x93\xca\xcc\xf8|\xe5\xcb\
+,\x88\xda$Q\x89\xa7g\xe7\x18\x1b\x86\x86G`w\
+8I\x82:$|\xf8!\xae\xb3\x0b\xe1\x99\x5c\x80o\
+\x09\xd0\x90\xde\xe1\x0f,\x81\xab\x1f\xc4}\xef\x04\xdd\x07\
+\x1da\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6!H\xcc\xfdO\
+}\xee\xd4\x22\x9dU\x84\xaa\x9a\xbaM>G\xe4\x8e\xf8\
+<<\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2b\x9c~/\
+\x1e=\x03\x01\xf4/\x02\x83\x84\xbc\xc5\xff-\xee:C\
+(Q\x91\xf7\xf6\x05\xf1N\xdc\xbf}\x843i\xe3 \
+\x18\xf43\xab\xe0\xc9Th58\xd1\xd8\xdd\x0b\x9eX\
+\x89\xac\x5c\xf63>G\xaa\x9e\x9c\x9ee\xe4\xee\xf7\x0e\
+\xa2\xd7lAC\x03\x1f'b\xe3 \xe9\xd6\xc0E\xcf\
+\x01R\x90$\xb8\x86\xb2\x9e\x00n\xb4\xdbP\xd1\x1bD\
+\x85\xce\x8bJ~\x0bm\xbe\x9b['\xd1\xa0\x99\xf8\x16\
+e\x22\x05\xee)\xf4(\x13\xc8\x90x5\x0b\x1a\xad>\
+\xaa\xdcc\x13\x93\xf0\x0d\x0d\xc3f\xef\x83\xb4]\x8e\xc4\
+K\x97\x90\xc3\xca\xc3\xd4c\xc0NzI1N\xfa\x89\
+\x94\x7f[;\x84|\x85\x13%j\x1fJ\xd5\x03\xe8\xf2\
+0\xa3(\x22\xf8\xf93\x09t\x8f.\xa1\xa8\xbe\x15\xa5\
+|\x09\xb2J*\xf0\xcf\xe3qQ\xe5\xf6\x07F\xd1\xe7\
+\xf2@\xab7 \xfdj\x06\x92\xbfH\x83\xcd7\x02'\
+\xa9\xda@\x1aL\xe0{\x88R\x9d\x1fE\xdd\xfd\x0cq\
+A\x97\x1b\xc5\xdd\x1e\x88\x9cA\xfc\xf9\xcd\xb7]\x84\xeb\
+l\xb4C\xd0(\xf7N#\xa7\xfc\x1e\xb2K\xab\xf1Q\
+\xeaWH\xfeo\xea\xfaXQ\xb9G\x82\xe3\xf0\x0c\xf8\
+`4\x99Q\xc9\xab\xc2\xfbg\xcfA\xfe@\x03?\xe9\
+n\xb2\x8d\x19\xb9oi\x06\x19\xd2\x9b*/r\xe5\x0e\
+\xe4u\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca)\xc2S\
+\xb8\xdd)\xdc+v\x04\x90Q\xc8\xc5\x95ky8\x11\
+\x9f\x80\x9b\xb7n3c\x15\x91\xdbjs@\x22m\xc7\
+\x85\x84\x0fPt\xbb\x0c\xf3+\x80\x9f4X\xf7$ \
+\x1c|\x84J\xd3\x188\xfaa\x86\x9cV\xfdU\xb3\x1e\
+\xac\x0e;\xb8:\x1f\xd9!\x1ez/\xe0\x13\xbc\xba]\
+\x02&\xbe\xc1\x83\x94o\xd88\x9f\x9c\x8a\x03\x7f=\x04\
+c\xaf\x99\xe9n*\xb7F\xd7\x83\xa4\xcb\xc9H\xff:\
+\x8b\x8c\xd5<S\xb5q\xf6\xa9\xdc5\xf6i\x5c\x97Y\
+\x19\xd9\xbfn!\xa7\xa0\xd4\x82t\xbe\x1aW\x9b4`\
+\xc9\xcc\x10\xbb\x82\xf8\xe5\xaf_\xa7g\xc0;\xe1u\x1f\
+5\xcc5\xddf|\x94\x96\x85\xb8s\x17\xf1\x97C1\
+L\xd5t\x99\xf0\xaa\xaaq\xfa\xf4\x19h\xcc\x0e\x8c\x92\
+-6\x14\x1e\xabZ\xc7\x0cx\xe6qp\x0d#L\xa3\
+e\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6^\x94t9\xd0f\xf7\
+\xaf\x1e=\x11KG.o\xc3y\x135,\x5c\x99\x1a\
+\xf1\x97>\xc7\xd1\xd83\xf881\x09\x86^\x13\x1a\x9b\
+\x04\xf8\xdd\x1b\xfbQO\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\
+\x93`+]\x0c9\xf5\xbc\xf0\xbeg\xbd\xea\xcc\x16=\
+JU\x1e\x08m\x01\x94\xd4\xf1C\xe1eS@\xf0\xca\
+\xf7%`+nj\xc7\xa9\x84D\xc4\x1c9\x8a\xdc|\
+6ZZ\xc58\x14\x13\x83/95\xc8\x14j\x98\xe6\
+\xa2\xd5\xd2'\xf5\x9azL\x13\xa1Id\xb7\x99\x90\xdb\
+nF\xb9\xda\x8d\x06\xa5v9,9=\xf9N\x13\xec\
+\xd9r\xd4G\x0d;\xabF\x88c\xff9\x8f\xdf\xee\xfb\
+=\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17p\xa3\xad\x07\x19\
+\xc4OJ\x14\xe9n\xbaX\xa8\xef,\xfa\x94\x98P(\
+\xb7@\xe9\x0e<\xf9W\xec)*w-\xc1g\x04\xfb\
+\xb6\xb9\xe4D\x8d\xbe\xcc\xb2Z\xfc\xe3\xe4\x19\x1c<\xf4\
+7\xb0r\xf3\xb0\xef\xc0\x1fP \xd1!\x89'e*\
+\xa6K\x85>\xbf!\xd5F\xe4.\x90[!\xb0\x0c\xae\
+\xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87o<\xaf<\xe7\x96\x15\
+5\x9ciE\xe5\xf8\xfb\xb1X\x1c?\x19\x877\xf6\xef\
+\xc7\x8d:\x11\x92\xab\xa4\x0c!\xedp\xea5U!\x8b\
+4[\xc9\x037*4n\xd4I:\x17\xc3rs\x08\
+\x8em\x95\xfb\x87$\xe0Jesp\xe4\xf8)\x1c>\
+|\x98\x8cc.2\x05*\x5c\x22\xd5\xd3]~M\xdc\
+\x0b6\xe9tv\xa7\x1dw\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\
+\x1a\x95\xfb\x22\xbdI\xfd\x80\x0bm\xf4\x042JxL\
+\x0f\x9cKI\xc3\xb5\xa6.|\xc2me6Y\xf1\x83\
+\x01\x5c\x97\x9a\xc1Q{ \xf3\x04\xd7\xce%&\x056\
+\xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce^NE\x81\
+X\x85x\xf6]\x5c\xa9U\x90\xaa\xfb\xc0\x96\xdbP\xad\
+u\xe3\xaeTA/\x10\xca\x0dr\xbf\xba\xd3j\xa3\x05\
+\xb7\xa2Q\xf8\x1d\xafC\x8dO\xb9-\x88\xcb\xe6\xe1\x9a\
+H\x8f\xaa\x1e/\x9a5\xe6\xc7\x7fz\xf3-Wx\xac\
+\xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5cu\x1f\xde\xcb\
+\xafE\xb9v\x002g`\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\
+\xd2\xa9\xdc;\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9dP\
+\x0b9\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3/\x22\xf7\x0e\
+\xff\xdam\x8a\xdda\x99\xd5\x1b\xb6\xd8k\xbb^2\xbe\
+/\x89\xff\x01f\xb9_\xfc\x11\x80=\xcf\x00\x00\x00\x00\
+IEND\xaeB`\x82\
+\x00\x00\x09\x08\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x07\xd3IDATX\xc3\
+\xbd\x99Ol\x1cW\x1d\xc7?\xef\xcd\xec\xec\x1f\xaf\xbd\
+v\x9c\xc4n\x12\xb7n\x1dg\xbdN\x9c\x16\xb7\xa5!\
+9\x00\x95(\xff\x0e\x15\x08h/\x15E\x02\x89\xaa\x1c\
+\xe1\xc0\x01!\x0e\x5cz\xe2\xc8\x81\x03\xe2R\xa9\xaa\x80\
+\x22\x04\xad\x90\xf8s)T\xfd\x13\xb5\xa9\xd2\xd6N\xeb\
+\x06\x928\x7f\xbc\xde\xf5\xfe\xf1xf\xde\x1f\x0e\xeb]\
+\xef\x8ew\xecMD\xf9I\xa3\x99y\xde}\xf3\x99\xef\
+\xef\xfb{\xef\xed\xb3\x08\x82\xc0\xd6j5\xb4\xd6\xfc\xbf\
+\xc2u]FGGq\x1cg\xff\xcf\xd6j5.^\
+\xbcH&\x93AJ\xf9\x89\xc3i\xad\x89\xa2\x88\xc5\xc5\
+Er\xb9\xdc\xfe\x80Zk2\x99\x0c\xf3\xf3\xf3\x18c\
+A\x80h\xffU\xb4\xae\x12\xef\x93\xda\x12B\x08A\xa4\
+\x14\xef^\xb8\x801f0\xb5\x01\xa4\x94\x18k\x09\xa3\
+\xb0\xf5 !\x10\xed\x07\x0b\xb1\xd3\x16;w\xc0\xf6\x00\
+\xefi\xb2\x16\xb9\xdd\xb7\x10\x83\xbc\xd26`\xf7\x1b~\
+\xa2\x80\x80\xb5\x960\x0ci4\x1a\xb0}\xdf/\xa4\x94\
+\xa4\xd3\xe9\x1d@\xb1\x0d\xd3\x0f\xf4\x7f\x0d\xb8\xba\xba\x8a\
+R*\xd1\x83\xd6Z\x8c1\x94J\xa5.\x05\x93\xa0\x92\
+\x00\xbb^\xa8\xbb\xad\xa3\x80\x90\x08!0\xd6b\xb1\x1d\
+@)%\x93\x93\x93\xcc\xcd\xcd\x91\xcf\xe7\xb1\x09\x80\xef\
+]\xbc\x88R\xaaWA\xba\xfc!\x92\xa0cJ\xf7\x03\
+\x94B\xf2\xd1\xfa\x87\x5c\xae\xac\xf0\xe0\xb1\x87)dF\
+1v\xa7(\x84\x10\x08)w\xfa\x89\xbf\x9c\xe3t\x86\
+\xa0^\x05\xf7Q/\x0e\x96\x08(\x1d\xfeu\xf9U^\
+\xfb\xf7\xab\x9c\xbf\xf2:_\x9d\x7f\x9c\xb9\x89\x93=\xa9\
+\x17}\xbe\xd7/:\x03_\x1b\xa0s\x8e_\xdf\xc6!\
+\x85@\x19E\xa4\x03\xaa\xe1M\x9e\xfb\xeb\xcf\xf9\xcb\xfb\
+\x7fF\x19\x85\x14\xb2\xf3\xf2r\x8f>\xda\xd1[\xc5m\
+Ub\x80\x0c\xaadWG\xc6X<\xd7\xe5\xa9\xb3_\
+\xe0o\xef\xbd\xc1\xaf\xdf\xf8\x15KkK|c\xe1\x09\
+\x9cm\x7f\x0e2\xd4\xecJq\x12\xdc\xae\xeb>`\xdd\
+\xed\xc6B\x10\x85\x04a\x83s\xc7g94\x9c\xe7\xe5\
+\x0b\xffd\xe9\xfa\x12gF\xce1/\xe7\x91B\xb6\xbc\
+\xd9\xd5O\xdc\xe7=)f\xbf\xd4\xc6\xda{L\x1f\x83\
+\xb5\xc6\x12\xaa\x88\xf5\xc6\x1a\xeb\x8d\x9bL\x0c\xa7\xf8\xda\
+\xe2\xa7\x18\x1a\xf2y\xe9\xca\x8b\xbc\xb2\xfc\x0a\x81\x0ep\
+\x1c\xa7\xc7\x1a\xf1~\xfa\x0e\xd4\xa2[\xcd\x18@\x1c\xac\
+_\x08!0\x06\xa2(\xa4\xbe\xb5\x06\x22\xd8\x06\x80\xb3\
+3wq(\x9f\xe2\xb7\xef\xfe\x86Kk\xcb|\xfb\x91\
+\xa79:z\xb4\xa7\xca\x93Sl\xed@p\xfd\xc0\xe2\
+mJ\x19\xc2 \xc0\x8f\xca\x18|\x1c\xb9\x93\xc0\xa9\x03\
+\x82\xa1\xf4\x01^\xff\xf0\x1f\xfc\xf4\x0f\x97\xf8\xce\xd9\xef\
+qf\xe6\x11$rg\xcc\xec\x97\xe26\x18\x09iN\
+\xf2]\xbf\x22\xd1\x91e\xd3\xaf\xd0\x0cW\x09\xcd:\x91\
+\xad\x10\xd92\xa1Y\xc3\xd77\xf1R\x1b<4\x93a\
+$\xbf\xc2/\xff\xfe\x1c/\xbc\xf6\x22\x91\x89\xf6\xae\xe2\
+\x0e\xd8\x1e^\xdb+\xbd\xddmF[\xea\x9bW\xb9R\
+[&\x9b\xce\x90\xf5<\x1c\xc7\x05\xeb\x10)K\x10j\
+\xb6\x02M:mI\xbb\x967?z\x8b\xaf\xdc\xff%\
+\xbc\x9c\xd73?'\xa68\xa9B\x93T\x8c\x87V\x16\
+a4\xb9l@\xca\x0bpR;\xde\xd4\xc6b\xa4e\
+\xbd\xe6p\xe1\x83\x83<p\xec\x0c?x\xecY\x0a\xb9\
+\xc2\xae\xfevMu\xf4\x01\xb9\x13\x15Md@k\xf2\
+9A&#H\xa7\x05R\x82\xd6\xb0\xd9\xb4\xbc\xb9\xe4\
+\xf2\xfe\xd2}<q\xf6\xfb<\xf5\xb9'\x19\xce\xe4w\
+M\x87\xbbS\x1cK\xef\xed\xc0\xc5\xef\xb56\x08\xad\xc9\
+d\x04CC\x82|N\xe0:p\xf5\xaa\xe5O\xafd\
+P\xcd\xcf\xf0\xb3o\xfe\x88\xcf.\x9cC \xb0\xd8N\
+\x1f\xfdS\xdc\xc7w\x83\xc0%\x0d5V\x83\xd5\x06G\
+\x80\x97\x12\xe4\xd2\xf0\xe6[\xf0\xc2\xefG\x98\x1ey\x94\
+\xe7\xbe\xfb\x13\x8aw\xcfb\x8c\xe9Tn\xbf\xe8\xf1`\
+R\xdc\x89\x8aF\x19Ld\xd0\xdaR\xab\x18^\xfa\x9d\
+\xe0\xed\xb7\xef\xe3\xe9\xc7\x9e\xe1\x81\xc3E\x8e\x1d\xb8\xab\
+\xefb5\xb1\x8a\xf7J\xed\xa0\xa0\xd6Z\xac\xb5H!\
+\xd1\x91\x02m\xb8\xb2b\xf8\xe3\xcbi\xf2\xceY~\xf1\
+\xcc\x8fy\xe8\xc4\x22\x17\xdey\x07cm\xa2\xfa\xdd}\
+\xba\xec\x13\x83\x82\xb6W\xc1Zk\xb0\xadY\xe4\xca\x7f\
+<\x9e\x7f>\xc7\xd9\xf9\xc7\xf9\xe1\x93\xcfr\xf7\xc4\x14\
+~\x10\xa2\x8d\x19\xe8G\xd6.\xc0\xdb\x99)\xba\xdb\x8c\
+1\x18cPJ\x11\x86!Z)F\xb3#\x1c\xcc\x9e\
+\xe0[\x9f\xff:_\xfe\xf4\x17I\x19\x97[\xe52~\
+\xa8p\x5c\x077\x95\x1a\xe8Y{*8\x08h[\xb9\
+(\x8a\x08\x82\x80f\xb3I\xbd\xde\xe0\x5c\xf1a\xe6&\
+\x8e3\x9c\x19\xa2\xba^%\xcaG\x84Jc\xb4\xa68\
+{\x9ct:\xdd\xb1D\xbc\x7fkm\xa7&\xf6M\xf1\
+^\xa0m8\xa5\x14A\x10P\xab\xd5)\x97\xd7X+\
+\x97\xf1}\x1f)$\x9e\xe7166Juc\x03\xa5\
+5'K%\xc6\xc7\xc7[\xd5\xbb\xfd\xfd\xf6\x8b\xb6j\
+\x00\x8c\xdd\x19j\xdc8\xc4 \xc6\xedV\xaf\xbdS\xd0\
+l6\xa9T+\x5c\xbfq\x83Ba\x84{\xa7\xefe\
+\xa40\x02XVVV\xd0Zsj~\x9e\xb1\xb11\
+\x94Rh\xad;G\x1bV\x08\xd1\xda\xdd\x90\x0e\xda\xc4\
+\x00\x07Q-\xae^\x1b0\x08\x02\xea\x8d\x06\xd5\xea\x06\
+\xbe\xef\xf3\xe0\xe2\x22\x87\x0e\x1d\xa2Z\xad\xb0\xb4\xf4\x01\
+a\xa88u\xf2$\x85B\x01\xa5\x14Q\x14\x11\x86!\
+A\x10\x10\x04!JE\x18c\x10B\xe2y)\x8ct\
+\x09\xc3\x10\xd7u\xef\xac\x8a\xdb\xd1N\xefV\x10\xd0l\
+4\xa9\xd7\xea8\x8eK6\x9b\xa5Ri\xc1EJ\xb1\
+\xb0\xb0\xc0\xf0\xf0p\xa7\x88|\xdf\xa7\xd1h\xd0h4\
+\xf1}\x9f \x08\xb0Xr\xd9\x1c\xc2ui4\x9a\x1c\
+;2\xc9\xe8\xe8\xe8`\x1e\xec\x17m\x05\x8di\xad\xfb\
+\xb6\xb6\xb6\xf0\xb7|\x8e\x1e9B\x18\x86,_ZB\
+i\xcd\xfd\xa7\xef'\x9f\xcfw\xe0\x1a\x8d&\x95J\x85\
+r\xb9L\xbd^'\x8c\x22\xb2\xd9,\x87\x0e\x8ec\xac\
+a\xbd\x5cf\xe6\xdei\xa6\xa7\xa7q\x1cgp\xc0~\
+Jv\x17I\x14E\xa4\xdc\x14\x07\x0e\x8c\xf1\xe1G\x97\
+\xb0\x96\x1e\xb8(\x8a\xf0}\x9f\x8d\x8d*\xd7o\x5cG\
++\xcd\xc4\xc4\x04cc\xa3\xe4\xf3yn\xad\xdd\xe2\xea\
+\xb5k\xcc\xce\x1c\xe7\x9e{\xee\xe9\xec\xb4\xdd\xb1\x82\xdd\
+*Z\xdb\x9aM\x0f\x1c\x1c\xa7\xbaQ\xc5\x91\x92\x85S\
+\x0b\xe4\xf3\xf9N\x11DQD\xa3\xd1\xa4Z\xdd\xa0Z\
+\xdd`\xe1\xd4Ifg\x8f\xe3\xfb>+\x1f\xafp\xed\
+\xda5\x8a\xb3'\x98\x9a\x9a\xea\xd9\x06\xec\xbbX\x88+\
+\x96\xd4&\xa5DH\x89t\x5cr\x851B\xbf\x89\x97\
+\xf2(\x16\x8b\x0c\x0d\x0du\xe0\xdb\xc3P\xb3\xd9\xa4V\
+\xaf\xa3\x94bdd\x84\xcdM\x9f\x8f\xdbp'\x8aL\
+MM\xf5\xff\xd1\xa4\xb5fkk\xab\xef\x8eg\xbbb\
+\x95R\xb8\xae\xbb3{XK\xa44[\xa1\xc28\x1e\
+aX!\x9f\xcbR<q\xa2gS\xa8\xe3\xd3\xed\xe2\
+\xd8\xdc\xdcd8\x9f\xc7K{||y\x85\xd5\xd5U\
+\xe6\xe6J\x1c=z\xb4\xaf\x8d\x5c\xcf\xf3p\x1c\x87\xe5\
+\xe5\xe5\xc4\x01\xd9\xf7}._\xbe\xcc\xf4\xf44\xae\xdb\
+-zk\x1dg\xacelh\x88\x99\x99\xfb\xc8d2\
+\x9d1\xad\xbb\x90\xa2m\x1f\x1a\xad\x99\x9c\x9c\xe0\xfa\xea\
+*7n\xdc\xa4T\x9a\xe7\xc8\x91#\x896r\x0b\x85\
+\x02\xa7O\x9fN\xdc\xa7\x13B\xd0h4\x88\xa2\x88R\
+\xa9D*6\x87\xb6\xcf\xa9T*q\xcf\xd9Z\x8b5\
+\x16m\x0c#\x85\x02\x16\xcb\xda\xda\x1a\xa5\xb9\x12\x93\x93\
+\x93{\xfa\xdc\x95\xb25\x1d\xed\x15\xe9t\x1a\xcf\xf3:\
+\xe7\xb87\xf7\xf2l\xeb\x90H)H\xe7\x86p\xbc4\
+\xbe\xefS,\xceq\xf8\xf0a\xf6\x8b\x81\xab\xd8\x18C\
+\x10\x04\x1dE\xe2Pq\xd5\xa1\xe5S\xa54\x81Rh\
+\xc7\xc3:)D\x18P,\x16\x19\x1f?8\xd0s\x07\
+^,(\xa58\x7f\xfe\xfcm\xfd'\xa0\xe5A\xd0\xb6\
+\x95\xdeL:\xcd\xc9\xd2\xdc\xc0p\x00\xff\x05\x08\xf9\xe8\
+\xd3M\x9b\x8d\x0f\x00\x00\x00%tEXtdat\
+e:create\x002023-03\
+-08T17:27:26+00:\
+00\x9e\x98\xa5\x85\x00\x00\x00%tEXtda\
+te:modify\x002023-0\
+3-08T17:27:26+00\
+:00\xef\xc5\x1d9\x00\x00\x00(tEXtd\
+ate:timestamp\x0020\
+23-03-09T06:18:4\
+1+00:00=\x00\x9f\x01\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x03\xb8\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xad\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf6\xf6\xf6\xdc\xde\xe0\
+\xca\xcd\xcf\xc6\xc8\xcb\xce\xcf\xd1\xe5\xe6\xe6\xfc\xfc\xfc\xe7\
+\xe8\xe9\xbc\xc2\xca\xc0\xc8\xd3\xd4\xdb\xe4\xd9\xe0\xe8\xc8\xcf\
+\xd9\xae\xb5\xbf\xc2\xc5\xc7\xf6\xf6\xf5\xea\xeb\xeb\xb7\xbf\xcb\
+\xce\xd9\xe9\xe6\xef\xfb\xda\xe4\xee\xc0\xca\xd6\xe2\xeb\xf6\xdc\
+\xe7\xf4\xaf\xb9\xc7\xbe\xc1\xc3\xfb\xfb\xfb\xfb\xfb\xfa\xbf\xc5\
+\xcc\xbb\xcb\xe0\xdd\xeb\xfa\xea\xf6\xff\xc5\xd2\xdd\x82\x93\xa6\
+\xdb\xe6\xef\xe7\xf3\xfe\xd3\xe1\xf2\xa8\xb2\xbf\xe8\xe8\xe8\xee\
+\xee\xed\xa1\xaf\xc4\xbc\xd2\xee\xcc\xdb\xe8\xc1\xce\xd6\xb0\xbd\
+\xc8\x8f\xa1\xb5\xbb\xc7\xd0\xc1\xce\xd7\xd8\xe4\xf1\xae\xbe\xd4\
+\xcf\xd1\xd4\xe4\xe4\xe3\x98\xab\xc4\xbb\xd5\xf3\xa7\xb9\xc7{\
+\x8c\x9e\x8b\x9e\xb2\x92\xa6\xbc\x89\x9b\xafz\x8b\x9b\xc0\xd1\
+\xdf\xa7\xbc\xd8\xad\xb2\xb6\xff\xfe\xfe\xe7\xe7\xe6\x9c\xac\xc2\
+\xbd\xd7\xf2\xda\xec\xf3\xe1\xee\xf3\xc7\xd4\xde\x95\xa7\xba\xd8\
+\xe4\xea\xdf\xec\xf1\xd9\xeb\xf7\x9f\xb5\xce\xab\xae\xb0\xbe\xc5\
+\xcf\xc2\xd7\xef\xe5\xf6\xfd\xf7\xff\xff\xd5\xde\xe4\x9b\xaa\xbc\
+\xe9\xf0\xf2\xf6\xff\xff\xdc\xef\xfb\x91\xa0\xb2\xc9\xca\xc9\xdb\
+\xdc\xdd\xa3\xb4\xc8\xce\xe4\xf6\xf2\xfe\xff\xf0\xf7\xf9\xe5\xec\
+\xf0\xf7\xfc\xfd\xf1\xfc\xff\xba\xcb\xdc\x98\x9e\xa2\xf4\xf3\xf3\
+\xf9\xf9\xf8\xaf\xb3\xb5\x90\xa0\xb1\xc5\xd8\xe7\xe8\xf5\xfb\xf2\
+\xfa\xfe\xe4\xef\xf6\xb8\xc5\xd1\x94\x9a\x9f\xe2\xe2\xe1\xf9\xf9\
+\xf9\xc4\xc5\xc4\x96\x9d\xa1\x96\xa0\xa8\x9d\xa6\xad\x9d\xa4\xa8\
+\xa2\xa4\xa5\xb7\xb8\xb6\xde\xdf\xde\xf8\xf8\xf7\xe9\xe9\xe8\xe6\
+\xe6\xe5\xf3\xf3\xf2\xe5\xe5\xe4\xd3\xd3\xd3\xaa\xab\xa9\xed\xed\
+\xed\xcc\xcc\xcc\xc5\xc5\xc4\xb6\xb7\xb6\xd5\xd5\xd5\xd2\xd2\xd1\
+\xad\xae\xac\xd9\xda\xd9\xf5\xf5\xf5\xc9\xc9\xc9\xca\xcb\xca\xb3\
+\xb4\xb3\xca\xca\xca\xaf\xb0\xae\xd5\xd6\xd4\xfa\xfa\xfa\xfd\xfd\
+\xfdV$\xaa\xcb\x00\x00\x00\x01bKGD\x00\x88\x05\
+\x1dH\x00\x00\x00\x09pHYs\x00\x00\x00`\x00\x00\
+\x00`\x00\xf0kB\xcf\x00\x00\x00\x07tIME\x07\
+\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\x00\xcfID\
+AT\x18\xd3c`\x80\x01F\x06t\xc0\xc4\xcc\xc2\xca\
+\xc6\xce\x81\x22\xc6\xc9\xc5\xcd\xc3\xcb\xc7/ \x88$&\
+$,\x22*&.!)%-\x03\x17\x93\x95\x93W\
+PTRVQUS\xd7\x80\x0bjji\xeb\xe8\xea\
+\xe9\x1b\x18\x1a\x19\x9b\xc0\x05M\xcd\xcc-,\xad\xacm\
+l\xed\xec\x1d\x1ca\x82N\xce.\xaen\xee\x1e\x9e^\
+\xde>\xbe\x08\xf7\xf8\xf9\x07\x04\x06\x05\x87\x84\x86\x85G\
+ l\x8f\x8c\x8a\x8e\x89\x8d\x8bOHLJF\x08\xa6\
+\xa4\xa6\xa5gdfe\xe7\xe4\x22;>/\xbf\xa0\xb0\
+\xa8\xb8\xa4\xb4\x0c\xd5\xaf\xe5\x15\x95U\xd55\xb5N\x18\
+\x01PW\xdf\xd0\xc8\x81!\xda\xd4\xdc\xd2\x8a!\xd8\xd6\
+\xde\xd1\xc2\x84!ZV\xdf\xd9\x81!(\xd3\xd5\xd1\x8d\
+\xa9\xb4\xae\xb5\xa7\x17C\x90\xa1\x0f\xe4R\x00|(+\
+\xa4\xc7\xdcu\xa2\x00\x00\x00%tEXtdat\
+e:create\x002023-03\
+-08T17:27:26+00:\
+00\x9e\x98\xa5\x85\x00\x00\x00%tEXtda\
+te:modify\x002023-0\
+3-08T17:27:26+00\
+:00\xef\xc5\x1d9\x00\x00\x00(tEXtd\
+ate:timestamp\x0020\
+23-03-09T06:20:5\
+0+00:00\xdd\xe8\xb2\xde\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x07\xd5\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06\xa0IDATX\xc3\
+\xcd\xd7MS\x1b\xc9\x19\xc0\xf1\x7f\xf7\xf4h$@X\
+H \xf4\x8a\x84\xd76k\x1b\xec\xc2U\xd9\x8d\x9dK\
+\xb6\xb2\xc9e\xbd\xf9\x00I>b*9$\x97\xad=\
+\xe4`o\xccb\x1b[^\x8c\xd7\xe6\x1d\x1bK\xe8\x05\
+\x04BB3\xa3\x99\xceA\xc0:\x87\xf0\xb2\x0b\xc1O\
+\xd5\x94\x0e#\xcd\xfc\xf4t?\xddO\x0b\xad\xb5\xe6#\
+\x0eu\x16\x0f\xf9\xf0?\x0a!.\x1e\xa8\xb5\xc6\xf3:\
+\xb8\xae\x8b\xe3\xb88\xae\x83\xefy \x04\xa6R\x98f\
+\x00\xcb\xb2\x08\x04\x02\xff\x7f\xa0\xeb:4\x9bM\xaa\xb5\
+MV\xd6\xd6)\x96*\xec\xee\xee\xe2{.\xd2P\xf4\
+\xf6\x84\x18\x1a\x8a\x92N\x0e3\x18\x8b\x11\x8b\x0dbY\
+\xd6\xcf\x06\x8a\x93\xceA\xad5\xcd\xe6.\x95J\x95\xc2\
+\xcbyV\xd7\xab\xc4b1r#i\x06\x22\x970\x95\
+\xc2vl\xca\x95\x1aK\xcb\xab\xd4\xb7j\x8c\xa4b\x5c\
+\xfd$\xc7h~\x94h4z~@\xad5\xf5z\x9d\
+\xd5\xb7\xef\x98.,\x10\xbe\x14c\xf2\xf6M\xa2\x91~\
+\xa4\xfc\xef9'\x84\xa0\xd3\xf1X/\x96\x99\x9a~\x8a\
+\xd3\xda\xe4\xe6\xd5\x0c\x13\x13\x13$\x86\x13\xe7\x03\xaco\
+\xd7YZ^\xe5\xc9\xec\x1a\x97\xaf\x5c\xe3\xda'y\x0c\
+C \x04H!@\x80\x10\x80\x06\x0dh_\xa3\x11\xb4\
+m\x97'3\x05\xd6\x96\xe6\xf8tt\x98{w\xef\x12\
+\x8d\xc6N\x05\x94\xc7}\xa1\xddn\xb3\xfen\x9d\x17\xaf\
+\xd7\xc9]\x1e#\x9f\xcf\xe1i\x8d\xdfM\x17\x08\xd1\xad\
+\xdc\xae\x16\x84@\x0b\x81\xaf5\xd2\x90LN\xde&3\
+z\x937\xcbE\x0a\x85\x02\xae\xeb\x9e-\xb0R)3\
+\xbfRD\x04c$\xd3)<_\x83\x10\xb8n\x07\x04\
+HC \x95\xc00~\xba\x10\x9a\x8e\xe7\x81\x90h$\
+c\xd7\xafc\xf5'y\xbfQ\xa1T*\x9e\x1d\xd0\xb6\
+mJ\x1b\x1b\xacUl\xe2\xc94 \x10R\xd2h\xee\
+\xf1\xed\xbf\x1e`\xb7[(S\xa2\x0c\x81R\x02C\x09\
+\x94\x92\xbc\x98\xfd\x91\x17\xb3s\x98\xa6\x814\x04A+\
+@&w\x95V\xc7d{g\x1b\xcf\xf3\xce\x06\xd8h\
+4(W\xeb4\xfd^d \x84\x16\x02aHv\x9b\
+\xbbt00\x03\x0a\xa5\xc04%JILC\xe0\xeb\
+\x0e[\x8d\x16\x81`\x90\x80)\x08\x05$\xc1\x80dp\
+h\x90V'\x88\xe3th\xb5\x9ag\x05\xdcasg\
+\x0fi\x85\xd9\xb55v\x07\x100\x92\x1eb4\x9fE\
+)\x03%\x05\xa5R\x99\xcd\xda\x16J\x0az-\x93\xf1\
+\xb1\xcb\xf4_\xea\xc7T\x82\x80)1\x95D\x18&\xae\
+\x08\xb2\xb2\xf6\x8eF\xa3q6\xc0f\xab\xc9\x9e\xed\x11\
+\xb0\x82\x08)\xb1}\xe8\x00\x9e\x14h\x0ek\x84b\xa9\
+J\xb5V?\xa8\x11\xf4\xfe\xa70\x04\x1e\xb0\xd7\xd1\xb8\
+Z \xcd\x10K+\xabloo\x9f\x18x\xe4N\xe2\
+:.\x1d\xcfG)\x852$\xa6\x12(\x83\xee\xda'\
+\xbaK\x8a\xaf\xe1\xfa\xb5<\xa6a\xe0\xe9.N\xd3\xbd\
+\x10\xe0\x0bp|\xe8\xf8 \x84\xa4\x5c.\xd3\xb6\xdbg\
+\x03\x94R\xe0{\x0e\xa0\x11\x02\x0c\xd9-\x02e\xf8\x88\
+\xfd\xf4\x0b\x01J)\xa4\x10\x88\xae\xe9\xf0\x9e\xdc\xcf\xa2\
+\xde_\xcb\xb5\xdf\xc1ul\xac\xc0\xc9\xb7\xbe#\x878\
+\x1c\x0e\xd3\x13\x10\xf8\x1d\x1b\xad\xbbo>\x1c\xc6\xfd\xe5\
+\xdd\x00~x\xf9\x86\x85\xa55\x0c\xb1\x8f\xa6\x9bB)\
+\xc0\x10`\xec\xff\xc0n\xd51\x84\xcf\xc0\xc0\xc0\xd9d\
+0\x1a\x8d\x91I\xc4x\xd7\xb4\xe95\xc1\x94\x02\xad\xc1\
+\x90\x92t<B\xc04\x10@6\x19\xc7\x0a\x98\x1cl\
+z\x03}AB\x96\xe2\xa7=J\xb3\xd7v\xd8\xae\xac\
+2\x18\x1b8\xd5nr$\xb0\xaf/L6\x93\xc6\xac\
+\xbb\xe0;h\xdf\xc2\xed\xf8\xc8\x90\xe2j~\x18\xb9\x9f\
+\xc9L2\xcea\x1b\xa8a8\xd6\x8f\x87\xc6\xd5\x1a\xed\
+\x83\xe3hj\xe5\x0d\xb6K\xf3\xfc\xf6\xab?\x9c\xaa\xbb\
+9r\x88\x95R\xc4b\x83\x04hQ|\xff\x96\xf7\xd5\
+6\x8d\x96\x8f\xd3\xd1xh>\xdc\xc4\x0f\xe7\xdfA\xf1\
+\xd0\xadt\xc7\xd5\xd4\xb6Z\xac\xbc\x9a\x22\xda\x1f\xe4\xb3\
+_}~b\xdc\xb1@\x80\xc1\xc1ALCP^\x9e\
+ayq\x81\xca\x96\xc3\xf6\xae\x87\xeb\x81\xbf\x8f<\x80\
+~\x90D\x00lG\xb3\xb1i\xf3\xe6\xe5\x0c\x95\xd5\xe7\
+\xdc\xbf\xff\xf5\xa9\xdb\xaec\x1bV)%\xe3\xe3\xb7x\
+3?\xcf\xcc\xd3\x7f\xe0\xb96\x82[\x08\xd9C,l\
+\x10\xfc\xe0\x09\x02\xf0\x01\x0f\xd8\xb55oK-\x0aO\
+\xa7\x99\x9b\xfa'\xbf\xfb\xe2\x0b>\xff\xec\xd7\xa7\xc2\xc1\
+)\x1a\xd6\x9d\x9d\x1d\xfe\xf6\xf7\xbf\xf2\xfd\xd3\x02C\xf9\
+;\xdc\xb8s\x8f\xcb\xf94\xf1h\x90\xde\xa0\xc4\x94\x1c\
+\x0e\xe9\xd6N\x9b\xd5\xb5\xf7\xcc>\xf9\x8e\xc5\x97S\xfc\
+\xfe\xcb/\xf9\xfa\xfe\x1fQ\xea\xf4'\x8c\x13\x03\xa1\xdb\
+<<|\xf8\x80o\xbe\xfd\x86\xcd\x9d6C\x99k\xa4\
+sW\x18\x8c\x0f\xd3\x13\xb4p\x1d\x9b\xfaf\x85\xd2\xdb\
+E\xca\xeb\x8b\x84,\x83\x5c.\xcf\xbd\xbb\xbfab|\
+\x02q\xd0\x9a\x9d\x17\xf0 \xaa\xd5*\xcf\x9e\xcf\xf0\xe2\
+E\x81\x8d\x8d2{\xb6\x0dt\x8b\xaa\xb7'D&\x9d\
+fb\xfc\x16Z\x83\x15\xb4(\x95\x8a8\x8e\xc3\xf8\xcd\
+q\xc6\xc6>=\x7f\xe0Ax\x9eG\xa3\xd1\xa0\xd5j\
+\xe1y\x1e\xa6\xa9\xe8\xed\xed\xa3\xaf\xaf\x0f!\x04\xcb+\
+\xcb\x18\xd2\xa0\xb6Y\xe3\xc9\x93i\x84\x90\xfc\xf9O\x7f\
+!\x14\x0a\x9d\xf8\x1d\xc7V\xf1Qa\x18\x06\x91H\x84\
+T*E6\x9b%\x91H\x12\x0e\x87\xf7\xcf%\x1d^\
+\xbf~M\xab\xd5\x22\x9b\xc9\x90\xcb\xe5\xa9\xd7\xb7x\xf6\
+l\xe6T\xef\xf8E\xc0\xa3B)E6\x93evv\
+\x16)\x0d\xb2\xd9\x11\x92\xc9\x14\x8f\x9f>\xa6V\xab]\
+<\x10`ll\x0c\xcb\xb2x3?\xcfp|\x98l\
+6\x0bZ\xf3h\xea\xdf\x9ctf\x9d+P)\xc5\xe4\
+\xe4$\xcbKK\xb4\xf6Z\xa4\xd3\x192\x99,\xaf~\
+|\xc5\xca\xea\xca\xc5\x03\x012\x99\x0c\x89D\x82\xb9\xb9\
+9\x22\x97\x22d2\x19\xc2}a\x1e~\xf7\xe0D'\
+\xbcs\x07\x02LNNR\xab\xd5\xa8V\xab$\x93\xdd\
+\x82*\x16\x8b\xcc\xbe\xfc\xe1\xe3\x00F\x22\x11\xc6\xae\x8d\
+1\xf7j\x0e\xcb\xb2H\xa5\xd2\xc4\x87\xe2<z\xf4\x88\
+Fc\xe7\xe2\x81\x007n\xdc@\xfb\x9a\xb5\xb55\xe2\
+CCd\xb3Y\xda\xed6\xd3\x8f\xa7?\x0e`0\x18\
+\xe4\xf6\xed\xdb,.,\xe2\xf9>\x89D\x82t:M\
+\xa1\xf0\x9cb\xf1\xfd\xc5\x03\x01FGG\x89D\x22,\
+,,\x10\x89\x0c\x90J\xa5\xb0\xac S\xdfO\xa1\xb5\
+\x7f\xf1@)%w\xee\xdc\xa1T,\xd1h4\x88\x0f\
+\xc5I\xa5R\xd4jU\xf6\xf6\xf6.\x1e\x08\x10\x8f\xc7\
+\xb9r\xe5\x0a\xeb\xeb\xeb\x98\x81\x00===\x8c\x8c\xe4\
+\x08\xfc\x8f\x93\xde/j\x16~n8\x8eC\xb5V\xc5\
+\xf7}\x1a\x8d\x06\xe9T\x9a\xfe\xfe\xfe\x8f\x07x\x10\xbe\
+\xef\x1f\xdb#^(\xf0$\xf1\x1f\xb6J\xe0\xf90\x86\
+\x1f6\x00\x00\x00%tEXtdate:c\
+reate\x002023-03-08\
+T17:27:26+00:00\x9e\
+\x98\xa5\x85\x00\x00\x00%tEXtdate:\
+modify\x002023-03-0\
+8T17:27:26+00:00\
+\xef\xc5\x1d9\x00\x00\x00(tEXtdate\
+:timestamp\x002023-\
+03-09T06:18:41+0\
+0:00=\x00\x9f\x01\x00\x00\x00\x00IEND\
+\xaeB`\x82\
+\x00\x00\x03\xb2\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xa7\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf6\xf6\xf6\xdc\xde\xe0\
+\xca\xcd\xcf\xc6\xc8\xcb\xce\xcf\xd1\xe5\xe6\xe6\xfc\xfc\xfc\xe7\
+\xe8\xe9\xbc\xc2\xca\xc0\xc8\xd3\xd4\xda\xe3\xd7\xdd\xe6\xc8\xcf\
+\xd9\xae\xb5\xbf\xc2\xc5\xc7\xf6\xf6\xf5\xea\xeb\xeb\xb7\xbf\xcb\
+\xce\xd9\xe9\xe5\xef\xfa\xe9\xf2\xfc\xeb\xf4\xfd\xea\xf3\xfd\xdc\
+\xe6\xf4\xaf\xb9\xc7\xbe\xc1\xc3\xfb\xfb\xfb\xfb\xfb\xfa\xbf\xc5\
+\xcc\xbb\xcb\xe0\xdc\xea\xf9\xe6\xf2\xfc\xed\xf7\xfe\xd6\xe0\xe8\
+\xcd\xd8\xe1\xe4\xf0\xfb\xd2\xe0\xf2\xa8\xb2\xbf\xe8\xe8\xe8\xee\
+\xee\xed\xa1\xaf\xc4\xbb\xd2\xee\xde\xee\xfa\xdf\xeb\xf1\xb4\xc0\
+\xc9{\x8b\x9c\xa5\xb2\xbb\xee\xf9\xff\xe2\xee\xfb\xad\xbe\xd4\
+\xcf\xd1\xd4\xe4\xe4\xe3\x98\xab\xc4\xb9\xd4\xf2\xd0\xe2\xed\x96\
+\xa6\xb4\x86\x9a\xb0\x84\x98\xaf\xab\xb8\xc1\xf2\xfe\xff\xdf\xf0\
+\xfc\xa5\xba\xd6\xad\xb2\xb6\xff\xfe\xfe\xe7\xe7\xe6\x9c\xac\xc2\
+\xbd\xd7\xf2\xe2\xf3\xfa\xda\xe9\xee\xb9\xcb\xda\x8d\xa0\xb5\xab\
+\xb7\xc0\xf4\xff\xff\xde\xf1\xfc\x9f\xb4\xce\xab\xae\xb0\xbe\xc5\
+\xcf\xc2\xd7\xef\xe4\xf5\xfd\xf5\xff\xff\xf6\xfd\xfe\xd3\xde\xe4\
+\xcb\xd5\xda\xdc\xee\xfb\x91\xa0\xb2\xc9\xca\xc9\xdb\xdc\xdd\xa3\
+\xb4\xc8\xce\xe4\xf6\xf1\xfd\xff\xfa\xff\xff\xfe\xff\xff\xf1\xfc\
+\xff\xba\xcb\xdc\x98\x9e\xa2\xf4\xf3\xf3\xf9\xf9\xf8\xaf\xb3\xb5\
+\x90\xa0\xb1\xc5\xd8\xe7\xe8\xf4\xfb\xf0\xf9\xfd\xe4\xef\xf6\xb8\
+\xc5\xd1\x94\x9a\x9f\xe2\xe2\xe1\xf9\xf9\xf9\xc4\xc5\xc4\x96\x9d\
+\xa1\x96\xa0\xa8\x9d\xa6\xad\x9d\xa4\xa8\xa2\xa4\xa5\xb7\xb8\xb6\
+\xde\xdf\xde\xf8\xf8\xf7\xe9\xe9\xe8\xe6\xe6\xe5\xf3\xf3\xf2\xe5\
+\xe5\xe4\xd3\xd3\xd3\xaa\xab\xa9\xed\xed\xed\xcc\xcc\xcc\xc5\xc5\
+\xc4\xb6\xb7\xb6\xd5\xd5\xd5\xd2\xd2\xd1\xad\xae\xac\xd9\xda\xd9\
+\xf5\xf5\xf5\xc9\xc9\xc9\xca\xcb\xca\xb3\xb4\xb3\xca\xca\xca\xaf\
+\xb0\xae\xd5\xd6\xd4\xfa\xfa\xfa\xfd\xfd\xfd\xe1 B\xa9\x00\
+\x00\x00\x01bKGD\x00\x88\x05\x1dH\x00\x00\x00\x09\
+pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0kB\
+\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x142\
+\x1f\xc9N\xa7\x00\x00\x00\xcfIDAT\x18\xd3c`\
+\x80\x01F\x06t\xc0\xc4\xcc\xc2\xca\xc6\xce\x81\x22\xc6\xc9\
+\xc5\xcd\xc3\xcb\xc7/ \x88$&$,\x22*&.\
+!)%-\x03\x17\x93\x95\x93WPTRVQU\
+S\xd7\x80\x0bjji\xeb\xe8\xea\xe9\x1b\x18\x1a\x19\x9b\
+\xc0\x05M\xcd\xcc-,\xad\xacml\xed\xec\x1d\x1ca\
+\x82N\xce.\xaen\xee\x1e\x9e^\xde>\xbe\x08\xf7\xf8\
+\xf9\x07\x04\x06\x05\x87\x04\x86\x86\x85#l\x8f\x88\x8c\x8a\
+\x8e\x89\x8d\x89\x8bOHD\x08&%\xa7\xa4\xa6\xa5g\
+dfe#;>'7/\xbf\xa0\xb0\xa8\xb8\x04\xd5\
+\xaf\xa5e\xe5\x15\x95U\xd5N\x18\x01PS[W\xcf\
+\x81!\xda\xd0\xd8\xd4\x8c!\xd8\xd2\xda\xd6\xc4\x84!Z\
+R\xdb\xde\x86!(\xd3\xd1\xd6\x89\xa9\xb4\xa6\xb9\xab\x1b\
+C\x90\xa1\x07\xe4R\x003\x9b+(8\xcb\x02\xf6\x00\
+\x00\x00%tEXtdate:crea\
+te\x002023-03-08T17\
+:27:27+00:008\xef\xae1\
+\x00\x00\x00%tEXtdate:mod\
+ify\x002023-03-08T1\
+7:27:27+00:00I\xb2\x16\
+\x8d\x00\x00\x00(tEXtdate:ti\
+mestamp\x002023-03-\
+09T06:20:50+00:0\
+0\xdd\xe8\xb2\xde\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x0bH\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x07tIME\x07\xe7\x03\x09\x07\x08)r\x19\xb0\
+!\x00\x00\x0a\x03IDATX\xc3\xed\x98Yl\x9c\
+W\x15\xc7\x7f\xdf|\xb3{\xf6\x19\xdb3\xe3\x19\xdb\xf1\
+\xbe%v\xbc$M\x9c44\xa1iJR\xdaB\x00\
+\xb54@YT\x90\x80\x0aU*\xe2\x0d\x1e\x80\x17P\
+\xc5\x03\x0fe\x17\x15B\x94\x82\xba\xd0(!K\xeb\xa4\
+i\x9b\xd5\xf1\x1a\xc7\x1e'\x1e\xef\xdb\xec\xfb\xf6}<\
+\xd8\x11iP\x13;\x0d\xf0\xd2\xff\xcb\xf7p\xefw\xce\
+O\xe7\xde{\xce=\x17>\xd6G\x93\xb0\xce\xf9\x16\xa0\
+\x0cp\x02z`\x19\x98_\xfd\xc6\xfe\x1b\x80\xcau\xcc\
+5a\xb2t`qt\xa1/j@P\x98)\xe4\xfd\
+\xa4SW\x89GG\x08.N\x00a \xf4\xff\x02l\
+B\xa3\xff\x16\xd5M\x1d4n6c\xb4(\x99\x9dH\
+\xe1\x1b\x8a\xe3\x1f\xf3\x01\xe7\x81\x1e\xe0\xd8\xbd\x04\x5c\xcf\
+\x12\xff\x8cC\xcf~\x8a\xfa\xd6\x0d\xd8K\xb5\x1f\x18\x09\
+\x07\xb2\x8c\x5c\x0e\xf3\xb7\xdf\xcc\x12\x8f\xde\x0f$\x81\xc2\
+\xbd\x00\x14\xd71\xf7y\xf6<^\x85\xbeH\xcd\xd8@\
+\x84\xbf\xfdv\x9a\x81s!dI\xc2`Rb0\xab\
+H'\xf3L\x8e\xf7\x03\x01 u/\x00\x15\xeb\x98\x9b\
+\x22\x9f\xcb\x13\x09\xe5\x98\x9f^d\xf0\xfc\xdb\x0c_\xfc\
+#\x97\xdf\x1dey.\x8d\xc9\xa2\xa2\xaa\xd1\x00\xb4\x00\
+E\xf7\x02n\xad\x80J\xc0J\x911A.\x9b\x15\xd3\
+\x89\xbcJ\x96b\xc0\x00\xc9\xf8K\x0c]\xb8\xa2\x5c\x9c\
+\x8d\xa9\x04A\xc0\xee\xd4\x00\x1e@\xf3\xbf\x044\x02\x9d\
+\x94\x96m\xc2l\xb3i\xed%\x1a\x93\xd5\xaa\x03\xec\xc0\
+\x04\xa9\xa4\xdf\x90K\x07\xcc\xd9d\x0e\xb5F\xc1J\xfa\
+Y\xcf\xca\xdc1:wR1p\x90\xcf=\xe3\xc1\xe9\
+\xd5Y\x0c:\x85\x99te\xc0`z\x8cx\x14\xc0\xab\
+W*\x04\xb5J\x14\x96\xef\x15\xd5MZ\xcb!Q\x02\
+\x0aT\xeam\xe42\x92^\xa3V\x98\x1d%jo\xfb\
+\x16S\xa6\xa2\xce\xad\xdb\xd8Y\xedj\xda\xe4\xb2\x98L\
+\x9a\x99\x91\xa18\xfd\xef\xbf\x0e\xf4\x01\xd1up\x18\x80\
+&\xe0q\xa0\x0e\xd0\xb1\x92\x09\xd2k\x89`\x148\xcb\
+\xf4\xb5?\x93I\x95\xa7\x12\xe1\x86dUmMmk\
+\x9b\xa9\xc8l\xad\x050\x98L\xcad./\xa3R)\
+\x005kO_\xd5^\xaf\xb7fcGg\xdd\xf6=\
+\x0f\xb6\x94\x18t-\xe9\x82\x9c\x18\x1a\x188\xf3\xe2/\
+^\x008\xb7\x16\xc0\x140\x8eo\xe8\x0f\xf8\x86jb\
+\xfe\xca\x07\xd4\xd1\x90\x98\xd8P\xd5ls\x97i\x05 \
++\xcb\xc4\xa2\x89\x02\xc5n\x0dP\x09hocO\x0d\
+\xd8\x9a\x9a\x9aJ\xbd\xf5\x8d\xbbJm\x96\xed5\xd55\
+\xad\xf7m\xddZ\xbe\xb9\xb9Q7:\xbfTX\x8a'\
+d`l\xad\x8074\x0a\x8c\xca\xb3\x13\xd1\xe5\x22\x83\
+\xae\xe7\xf4i\xb7}\xd7\xbe\x12\x95B -\xc9$r\
+\x0a\x05N\xaf~u\x89\xf4\xb7\xb1c\x03\xf6\x02_\xda\
+\xbd\xff@\xe3\x83;w8\x9a*\xbcj\x80p6\xcf\
+\xd9\xc9\xb9\xc2\xf9kSZ\xc0\x0c\xeb+u74\xc0\
+\xd45\x13s\x93\xdd\x81\xa6\x0e\x0b\x06\x93\x0a\xa5J\x00\
+A@\xab\x13\xd9\xba\xdb\xcb\xac\x7f+S\xe3a`b\
+\xf5\x1f#\xb0\xb3\xac\xacl\xcf\xe6\xfb\xb6\xed|\xfc\xe9\
+\xaf7\x1e\xdcq\x9fA^\x1d\x5c\x8c\xc6\x18\x5c\x8eJ\
+\xdfy\xee9\xff\xc2\xe5\x0b\xa7\xe3s\xd3=\xc0\xfbw\
+\x0b\x98 \x9f\x1b\xa5\x90\xff+'_{\x86]\x07J\
+k\xaa*5;\x9cV\x1e\xf2\x16\xf3\xa3\xbe\xf6\xa2\xc5\
+t\xcc\x19\x9c\x1a/\x06$\xa0\xbd\xaae\xe3g\x1f\xfd\
+\xc2\x13\x95]-\xcde\x1b\x5c\xa5\x0e\x93\xdd\xa1\xcbd\
+2\xa4\x0a2\xc3\xb3\x0b\xf9S\x97z\xe3\xc7_yy\
+yy\xf4\xeaK\xf9L\xea8p\x9d\xd5Cv7\x80\
+y\xf2\xb9y\xe0M\xae\xf4\xb6n\x7fx\xff\xceOx\
+\xac\xa5\xbb+]\x8a6\xbb\x89c[\xb7\x1aN\x0f^\
+\xac\xca\xdb\xec\xfb\x1a6\xb7\xab7vm\xddT\xeb\xb0\
+n\xabk\xd9XT\xe9)\xd38LF\x11`<\x10\
+\x91/\x0d\x0c\xc6\x07}\xbe\x89\xfe\x81\xc1\xc1\xf3\xef\x9c\
+\xea#\x19?\x02\x8c\x03\xf1\x1b\xce\xee\x06\x90U\x03}\
+L_;\xda\x91\x0dy\xf6\xe8dcw\x89\xd9\x00\xb0\
+\xbbu\xa3.P_\xd7T\xac\x16[j\xeb\xeb]\xdb\
+\xba\xbbm\xf7\xd7Uid\x01d\x19\x82\xb1\xb8\x1cJ\
+$\xa5s#cKo\x1c=v\xfdJ\xef\xc53\x81\
+\xe1\xbe\x93\xc0%`\xe1VGw\x0bxC\xc7\xff\xf9\
+\xfb_u\xb4\x15[\x5c[\x1aj\x0c\x00\x0fT\x94\x8a\
+\xb1\xfd\xfb[\xf3\xb1\xa8\xa2\xdcb\x14\x8b\xedfR\xe9\
+4\x00YIf2\x14\x95\xde\xec\x1bN\xfc\xee{\xdf\
+|\x8b\x95\xeb\xd9)\xe0\xca\x879\xf8\xa8\x80\x5c\xbdz\
+\xf5\xe2\xe5k\xfe*g\xdf\xa0{K}\x8d\xe6\xf8\xe1\
+\xc3D\xe6\xe6Tf\xb3\x99\x8cN\xcd\xc8\xc8\x08\x0e\x87\
+\x83%A%\xf5\xbc\x7f6t\xec\xf0\x9b\xc3s\xbd\xe7\
+\x0f\x03\xbfb\xe5\x16\x9e\xbb\x9d\xfd\xbb\x01\xb4\x03U@\
+\x93\xd1\xe9\xde\xfb\xc0#\x8f\xd6\x95:\x9d\x15R,\xa2\
+J$\x12\xbc\xfe\xfa\xeb\xf8\xfd~\x0e\x1c8@\xd7\x96\
+-LN\xcfp\xa4\xffJ\xc2\xd7\xd7{\xc9\x7fm\xfc\
+Bbq\xe1,\xf0\xde*\x5c\xfeN\xce\xd6\x02(\xb2\
+\x92\xd7\xea\x00/\xc5\xeeJeYE\x95\xbe\xac\xbc\xf6\
+\xa1\xf2\x92\xf6\xc6\xda\x1a\x93Y\xa3R\x87\x96\x16\x15W\
+\x15\x02\xe5\xe5\xe5X\xadV***0\x1a\x0c\xb8\x9c\
+\xa54d\x0abo\xcfI\xd5\xcc\xb8/\x16\x0f\x87&\
+\x81\xc9\xb5F\xe3v\xb5\xd8\x04\x94\xa0\xd6V`\xb24\
+\xe1\xd9\xf00\xae\x8aO\xe1\xd9\xf0\x80bCC\x97\xa6\
+\xb9\xa3fGg\xbb\xd5k\xd0)U\x85\xbc\x10\x8dE\
+\xe5\xa9\xb9\x05\xc9S^NMC\xa3\xec-/G\xaf\
+\xd7\x0bz\xad\x16\x8f\xdb-\xc6\xa3Q\xa5J\xabM+\
+4\xda@pa~\xcdM\xd6\xed\x00;\x80}(U\
+\x9f\xa7\xc8\xf4E\xb6\xee\xde\xce\xae\x03\x8dt\xde\xef\x92\
+\xaa\x9b\x8c\x19\x93M\xdd\x9f\x15p+$\xacJ\x81l\
+./\xf5\xfb\xa7\x93\x81pX\xce(\xd5\xb2Fo\x10\
+\xf4Z\xadB\x90\x0a\x88rA\xb8\x7f\xe7N\xa3\xc9^\
+\xec\x99Y\x0ex}\x03}9Vz\x98;\xea\xe6\xa2\
+\xae\x03*\x80=\xc0A:v:i\xee\xb4Q\xddd\
+\xa4\xc4\xadC\x92d\x14\x0a\x01\xa9 k\x91)\xd1k\
+\x84\xc9t\x01\x9b \xc1\xb9\xb7\x96R\xff\xfc{_j\
+z\xe2\xd5\xd5\xe5\xf3\xe8K\xcb\xba\x1b:\xbb\xb6?\xf9\
+\xd5\xafy\xba\xddv\x15\x08\x98,\x16r\x08\x85S\x97\
+\x07\x12\xdf}\xe2s?\x05\xfe\xc1J\xde\xfb\xd0\xf6\xe0\
+F\x047\xa1\xd5\x1f\xc4]\xfee\xb6\xef\xdd\xc9c_\
+ifc\x97\x9d\xb2\xca\x22\x8a\x8cJ\x90\x05|Cs\
+L\x8c\xf6\xf0\xfe\x891\xd5\x94/\xa7\xafnt\xe4\x15\
+\xa2\x90\x91!\x13\x8bM\xe4\x03\x0b'\xe5\xb9\xc9\x97X\
+\xa9\x02>A\xa9\xba^H'\xa7&G\x86c\xf39\
+\xdcF\x83A%\xca\xb2B\xce\xe7\x04\xb7\xc3\xae\xda\xf3\
+\xe9\xc7*c\xd1\xa84>6ZX\x05\x8c\x7f\x18`\
+5Z\xdd#4w\xec\xa3\xad\xbb\x8b\xfaV\x0f\x15\xb5\
+&4:%\xd9L\x8cH`\x94X\xf8\x18\x81\x85W\
+8\xf7\xd6\x02\xe1\x80YW\xec\xf4\xb8\x9a[\x1d\x81\x02\
+B6\x1a^,$\xe3G\xe5\xe5\xf9W\xf0\x8f\x0d\xaf\
+:\x8b\x152\xa9P<\x18\x98\x9f\x9d\xb8~=\xab\xd6\
+Z\x12\xa1\xa0&\x95/hD\xadVeR+E\xa3\
+\xd1hu\xba\xdcf\x93\xddQ:\xbb\xb4dNF#\
+qV\x1e\x00\xfe\x03\xf0a\xaa\x9b>\xc3\xe6\xee6a\
+s\xb7M,q\xe9\xe4D,@*1\xc6\xd2\xdc\x05\
+|C'9\xfa\xd7\xbf\xf3\xf6\x1bg\x11\x14\x8d\x9a\xe6\
+\xf6vcK{\x9d\xcb\xed\xd6N\x86\xe3q)\xb0x\
+\x82t\xf2/\xbc\xfc\xe2\xc9[lgX\xe9\xee\xc6\x17\
+\xaf\x8d\xe5\xc7'&\x84\x9cR-(\xb4ze6\x95\
+\xd2\x18\xb5j\xa5\xdb\xebu\x0a\x0a\xb12\x95J9\x13\
+\x89\xb8\x14\x8fD\xfc@\x96\x9bZV\x11\xf86\x07\xbf\
+\xd1IC[\xa9h0\xaa\x8a\xe4\x82\x949}\xe4\x18\
+g\x8e\xfc\x9cW\xff\xf0k\xae\xf4\xbeM$X\x00\x9e\
+\xa4\xa5\xf3Q[g\xf7F{K\x9b\xb9 \xcb\xcc\x8d\
+\x8d\x0cS\xc8\x7f\x9f\x17~\xd0s\x87\xbd>\x92K&\
+'\xae\x0f\x0d,\x8d\xfa\xc6\x98\x91DW\x9d\xc7m\xc8\
+\xc6cB]M\x8d\xae\xb5\xb5\xcd\xd1\xdb\xdf_;\xe3\
+\x9f\x88\xac\xee\xe1\xd8\xbf\x01K=?a\xc7>\xaf\xdb\
+S\xa6-\x8b/\x87f\xfe\xf8\xcb\xf78\xf1\xea\xf3\xcc\
+O_f%)?\x08\x1c\xe2\xd0\xb3O\xbb\xf6>V\
+\xed\xad\xae.\xd2I\xf9\xfcE\xffl\x84\x1f\x7f\xfb\x11\
+\xde=\xe6\xe3\x0e\xd5`UK@o2\x14<7\xd5\
+wq\xf1\xc4;g\xbc\x19k\x89&\x97\xcb\xab\xacj\
+Qs\xe8\xa9\xa7\xecs\xd9B\xabB\x14\x83\xcb\xb33\
+\x01V\x9fPD\x94\xcag\xe8\xdaeu\x16;\xd46\
+A\x12\xa6\x93\x19\x0d\xd1P\x1d\x99\xf4\x1e4\xdaOR\
+\xdf\xda\xcd\x81\xa7:\xca\xdb\xb787\xd8-\xcaD^\
+\xe2z 4\x9d>\x7f\xfa%\xae\x5cz\x0dH\x03\xf2\
+\x1a\x00o(\x0bL*D\xf1z2\x12ZX\x0c\x04\
+\x85\xa5D\xca\xa4T\xaa4\xa5\x1e\x8f\xda7\xd8\x1f\x9a\
+\xf1\xfb'V\x0f\x1bJ2\xa9\x8b\x14\xf2\x8e\x5c6\xab\
+\x17\xb4zu\xfd\xa6\xb6\x92`\x91\xfe\x13\xb1X,\x9f\
+C@ku\xa8\x8bk\xeb\x0d\xde\x12\x87*\x9a\xcd\xc9\
+\xcb\xc1\xc0xxz\xf28c\x03/\x03\x89u\x80\xdd\
+\xbc7g\xd2\x91p\x8f\xef\xd2\x85\x89h\x229\x13\x89\
+D\x82\xe1\x85\xf9-6\x8fW\x1dK$\x83\xac4L\
+\xac\x00\xa6So\x10\x8f\xd8c\xe1PW\xc8f+\xb1\
+{*t\xb9\x12\x8f.\x9f\x97\x10%\xd0\x8b\x02v\x8d\
+\x88 I\xf2t0<\x13\x9c\x9e:!_:\xf32\
+\xfdg/\xdc\x05\xdc\xcdZ\x04\x16\x17\xaf\x0e\x07CS\
+\xfe\x80\xcfh\x0c\xd96\xd4\x9a\xa3KK\xefpS)\
+\x5cI\xd4\xee\x8a\xbd\xec=xH\xa8n: \x14;\
+-V\xa5\x02\x95B@\x01\x14dHI2\xd1d*\
+\xcb\xe5\xf7~\xc3\xb5\xe1?\xd1\xf3\xe6\xbb\x1f\x11\xeeV\
+\xdd\xa8\xf7.`\xfa\xe6\x08~\xb0=\xdc\xff\x84\x05\xd8\
+\x8c\xc3\xf5\x05\xf4\x06\x07\xa2\xa8A\x96Rd\xb3\xb3\xb4\
+\xef\xf8!\x10\xe7[\xfb\xefx\x03\xb9\x97\xba\xf56\x13\
+\x07z\x81\x19@\xc5\xca\x13\x86\xc4\xca\xbe\x89s\x8f\x9e\
+\xd4>\xd6\xc7\xbaI\xff\x02R\x96 <_\xfdR\xba\
+\x00\x00\x00%tEXtdate:cre\
+ate\x002023-03-09T0\
+7:06:53+00:00B\xac!\
+#\x00\x00\x00%tEXtdate:mo\
+dify\x002023-03-09T\
+07:06:53+00:003\xf1\
+\x99\x9f\x00\x00\x00(tEXtdate:t\
+imestamp\x002023-03\
+-09T07:08:41+00:\
+00!\x18\x99D\x00\x00\x00\x19tEXtSo\
+ftware\x00Adobe Ima\
+geReadyq\xc9e<\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x084\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06\xffIDATX\xc3\
+\xcd\xd8\xd9S\x1b\xc9\x1d\xc0\xf1o\xf7\x8cfF\x17\x08\
+]\x08\x1d\x08l\x0c>\xc0\xb6\xd8\xca:\xde\xecn\xd5\
+\x1ey\xca\xf1\xb4/\x9b\xcd\x9f\x98J\x1e\x92\x97\xad\xad\
+\x1cU\xeb\x0d,\xc6\xd8\xd8\x18\x07cN\x1bsIX\
+ \x9043\x9a\xe9<\x08\x97\x9d\xaa\x84cm\x07\xff\
+\xaa\xa6\xe6eJ\xfdQ\xff~=\xfd\xeb\x11J)\xc5\
+{\x1c\xfa\xdb\xf8\x91\xd7\xff\xa3\x10\xe2\xec\x81J)<\
+\xaf\x85\xeb\xba8\x8e\x8b\xe3:\xf8\x9e\x07B\x10\xd0u\
+\x02\x01\x03\xd341\x0c\xe3\xff\x0ft]\x87\x83\x83\x03\
+\xca\x95\x1d\x96W\xd7X\xdf\xd8f\x7f\x7f\x1f\xdfs\x91\
+\x9aN8\x14$\x95\x8a\x93\xeb\xe9&\x99H\x90H$\
+1M\xf3'\x03\xc5IkP)\xc5\xc1\xc1>\xdb\xdb\
+e\xa6\x1f\xce\xb3\xb2V&\x91HP\xec\xcd\xd1\x15\xeb\
+$\xa0\xeb\xd8\x8e\xcd\xd6v\x85\xc5\xa5\x15\xaa/*\xf4\
+f\x13\x5c8_\xa4\xbf\xaf\x9fx<\xfe\xee\x80J)\
+\xaa\xd5*+O\x9f11\xfd\x84hg\x82\xd2\xb5+\
+\xc4c\x1dH\xf9\x9f5'\x84\xa0\xd5\xf2X[\xdfb\
+|\xe2\x0eN}\x87+\x17\xf2\x8c\x8c\x8c\x90\xe9\xce\xbc\
+\x1b`u\xb7\xca\xe2\xd2\x0a\x933\xab\x9c\x1b\x18d\xf0\
+|\x1f\x9a&\x10\xa2\x0d\xd2\xa4@J\x89\x02<\xcfC\
+\xf9\x0a\x85\xa0i\xbbLNM\xb3\xba8\xcb\xc5\xfen\
+>\xbay\x93x<q*\xe0\xb15\xd8l6Y{\
+\xb6\xc6\xfd\xb95\x8a\xe7\x86\xe8\xeb\xeb\xc5S\x0a\xa1\x04\
+R\x0a4M2}\x7f\x86\xd9Gs\x04\x83A\xbe\xf8\
+\xfcSB\xa10\x9e\xe7#5\x8dR\xe9\x1a\xbe\x12<\
+^z@84\xcd\xc7\x1f\x7fB \x1081P\x1e\
+\xf7\xc0\xf6\xf6\x16\xf3\xcb\xeb\x08+AO.\x8b\xe7+\
+\x94\x10 _\x01W\x9e\xad\xf1`n\x95\xe9\x87\xf3\xd8\
+\x8e\x83\xd4$B\x0a\x10\x02\x85d\xe8\xd2%\xcc\x8e\x1e\
+\x9eon\xb3\xb1\xb1~\xaa\x19<\x12h\xdb6\x1b\x9b\
+\x9b\xacn\xdb\xa4{r@{P!%R\x13h\x9a\
+@\xd3\xa1\xa3\xb3\x93\x81\x8b\x97\xc9\x17\x8b\x18\x86\x86\xae\
+\x83\xae\xb7\x9f\x91\x9a\xc02\x0d\xf2\xc5\x0b\xd4[\x01v\
+\xf7v\xf1<\xef\xed\x00k\xb5\x1a[\xe5*\x07~\x18\
+i\x04QB 4\x89ah\x98\xa6\x8eijX\x86\
+ \xa0\xcb6V\x93\x98\x86\x86iJLS#h\x05\
+\x08\x99\x1a\x96!I\xa6\x92\xd4[\x16\x8e\xd3\xa2^?\
+81\xf0\xc8\x1a\xac\xd5\xf6\xd8\xd9k \xcd8\xfb\xb6\
+\xc2\xf6\xc0\xc2g|l\x8c\xda\xde.\x96e\x22%\xac\
+>+cD\x92\x1c4\x0e\xf8\xdb\xdfo\x11\x0cZ\xb4\
+<\x1f\xdbv\xf8`\xf4:\x89D7B\x0b\xe0\x0a\x8b\
+\xe5\xd5gd\xba\xd3D\xa3\x1do\x0e<\xa8\x1f\xd0\xb0\
+=\x8c\xa0\x85\x90\x12\xdb\x03\xc7\xf3\xf8\xee\xaf\xff`\xbb\
+\xbcK2\xdd\x8dR\x8aT\xaa\x9bB\xc2\xa4\x15\x8e0\
+1=G\xab\xd5\xc2u\x1c\x9e?[!\x9eL\x12\xed\
+\xca\xe0*\x81\x0c\x04Y\x5c\x9e\xe5\xd2\xe0y\xb2\xd9\xdc\
+\x9b\x03]\xc7\xa5\xe5\xf9\xe8\xba\x8e\xaeI\x02\xba@\xd7\
+\x05\xc9T\x8aD\xa6H\xa1\xb7\x0f!@\xa9\xf6\xeb&\
+\x1c\x8ep\xb5\xf4\x01 h4\x1a\x18\x01\x1d\xc3\xb2\xb0\
+}E\xcb\x07!$[[[4\xed\xe6\xdbI\xb1\x94\
+\x02\xdfs\x00\x85\x10\xa0I\x81ej|\xf5\xd5\xaf\x08\
+h\x01\x82A\x0bMJ&&\x1f\xb0^\xae\xe3\xb7\x9a\
+|\xfeI\x89\x8e\x8e(-\xcf\xe3\xd3\x1b\x83ttu\
+a\xfb\xedW\xad\xf2[\xb8\x8e\x8di\x9c|\xeb;\x12\
+\x18\x8dF\x09\x19\x82Z\xcbF)@\x80\x94\x92\xbe\xde\
+\x1c\xbal\xaf0\x1d0$\xb8\xae\x8br\x1d\x92\x9d!\
+\x12\xf1(\x1e\x90I\xc7h\xb8\x8ar\xb5\x05Ja\xd7\
+\xabh\xc2\xa7\xab\xab\xeb\xc4\xc0#Wq<\x9e \x9f\
+I\x10\xd5m\xc2\x01\x08H\x81R\x0a_)\x94\x0f\x1c\
+\xeeA\xe2\xf5K\xb5\xef(\xda;\x8aR\x80\xa2\xd1t\
+\xd8\xdd^!\x99\xe8:\xd5nr$0\x12\x89R\xc8\
+\xe7\xe8\xef6\x91\xbe\x83\xf2}\xdc\x96\xe2\xf5\xcdQ\x1c\
+\x96\x82&%\x9a&\x91\xe2\x15\xb6\x9dVp\x1cEe\
+k\x93\xdd\x8dy\xae_/\x9d\xaa\xbb92\xc5\xba\xae\
+\x93H$\xd9\xa9.\xb0\xf2\xfc)u\xff\x1c=2D\
+$\xa8\x08\x18m\x9e\x02F\x86/\xd0w\xbe\x05\xca#\
+\x1a\x09\xa3\x0e'W\x01\x8e\xab\xa8\xbc\xa8\xb3\xfch\x9c\
+x\x87\xc5\x87?\xbbqb\xdc\xb1@\x80d2\xc9\xf2\
+\xf2\x22[KS\xec\x1c\xf8\xe8\x81\x8b\x84L\x89\xd1\xa9\
+#u\x85\xaf\x04\xd9t\x02y8k\x0ah\x1d\xce\xb0\
+\xed(6wl\x1e?\x9cb{\xe5\x1e\xdf|\xfd\xf5\
+\xa9\xdb\xaec\x81RJ\x86\x87\xaf\xf2x~\x9e\xa9;\
+\x7f\xc6sm\x04W\x112D\x22\xaaa\xe9\xed\xba\xe3\
+0\xb5>\xe0\x01\xfb\xb6\xe2\xe9F\x9d\xe9;\x13\xcc\x8e\
+\xff\x85/>\xfb\x8c\x1b\x1f\xfe\xfcT88E\xc3\xba\
+\xb7\xb7\xc7\x1f\xff\xf4\x07~\xbc3M\xaao\x94\xcb\xa3\
+\x1fq\xae/G:n\x11\xb6$\x01\xf9*\xa5/\xf6\
+\x9a\xac\xac>gf\xf2\x07\x16\x1e\x8e\xf3\xcb/\xbf\xe4\
+7\xbf\xfe-\xba~\xfa\x13\xc6\x89\x81\xd0n\x1en\xdd\
+\xfa\x9eo\xbf\xfb\x96\x9d\xbd&\xa9\xfc \xb9\xe2\x00\xc9\
+t7!\xcb\xc4ul\xaa;\xdbl<]`km\
+\x81\xa0\xa9Q,\xf6\xf1\xd1\xcd_02<\x82\x10\xe2\
+\xd4\x87\xaaS\x01_F\xb9\x5c\xe6\xee\xbd)\xee\xdf\x9f\
+fss\x8b\x86m\x03\xedE\x15\x0e\x05\xc9\xe7r\x8c\
+\x0c_E)0-\x93\x8d\x8du\x1c\xc7a\xf8\xca0\
+CC\x17\xdf=\xf0ex\x9eG\xadV\xa3^\xaf\xe3\
+y\x1e\x81\x80N8\x1c!\x12\x89 \x84`iy\x09\
+MjTv*LNN \x84\xe4\x9b\xdf\xfd\x9e`\
+0x\xe21\x8emX\x8f\x0aM\xd3\x88\xc5bd\xb3\
+Y\x0a\x85\x02\x99L\x0f\xd1h\xf4\xf0\x5c\xd2bnn\
+\x8ez\xbdN!\x9f\xa7X\xec\xa3Z}\xc1\xdd\xbbS\
+\xa7\x1a\xe3\x8d\x80G\x85\xae\xeb\x14\xf2\x05fff\x90\
+R\xa3P\xe8\xa5\xa7'\xcb\xed;\xb7\xa9T*g\x0f\
+\x04\x18\x1a\x1a\xc24M\x1e\xcf\xcf\xd3\x9d\xee\xa6P(\
+\x80R\x8c\x8d\xff\x93\x93V\xd6;\x05\xea\xbaN\xa9T\
+biq\x91z\xa3N.\x97'\x9f/\xf0\xe8_\x8f\
+X^Y>{ @>\x9f'\x93\xc90;;K\
+\xac3F>\x9f'\x1a\x89r\xeb\x87\xefq]\xf7\xec\
+\x81\x00\xa5R\x89J\xa5B\xb9\x5c\xa6\xa7\xa7\xbd\xa0\xd6\
+\xd7\xd7\x99y\xf8\xe0\xfd\x00\xc6b1\x86\x06\x87\x98}\
+4\x8bi\x9ad\xb39\xd2\xa94ccc\xd4j{\
+g\x0f\x04\xb8|\xf92\xcaW\xac\xae\xae\x92N\xa5(\
+\x14\x0a4\x9bM&nO\xbc\x1f@\xcb\xb2\xb8v\xed\
+\x1a\x0bO\x16\xf0|\x9fL&C.\x97cz\xfa\x1e\
+\xeb\xeb\xcf\xcf\x1e\x08\xd0\xdf\xdfO,\x16\xe3\xc9\x93'\
+\xc4b]d\xb3YL\xd3b\xfc\xc7q\x94\xf2\xcf\x1e\
+(\xa5dtt\x94\x8d\xf5\x0dj\xb5\x1a\xe9T\x9al\
+6K\xa5R\xa6\xd1h\x9c=\x10 \x9dN300\
+\xc0\xda\xda\x1a\x01\xc3 \x14\x0a\xd1\xdb[\xc4\xf8\x1f'\
+\xbd7j\x16~j8\x8eC\xb9R\xc6\xf7}j\xb5\
+\x1a\xb9l\x8e\x8e\x8e\xff\xfe\xa5\xe1L\x80/\xc3\xf7\xfd\
+c{\xc43\x05\x9e$\xfe\x0d\xc8]\xfaY2[\xe8\
+n\x00\x00\x00%tEXtdate:cr\
+eate\x002023-03-08T\
+17:27:26+00:00\x9e\x98\
+\xa5\x85\x00\x00\x00%tEXtdate:m\
+odify\x002023-03-08\
+T17:27:26+00:00\xef\
+\xc5\x1d9\x00\x00\x00(tEXtdate:\
+timestamp\x002023-0\
+3-09T06:18:41+00\
+:00=\x00\x9f\x01\x00\x00\x00\x00IEND\xae\
+B`\x82\
+\x00\x00\x03\xde\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xd1\
+PLTE\xff\xff\xff\xee\xf2\xf8\xdd\xe5\xf1\xf7\xf8\xfb\
+\xf5\xf7\xfb\xaf\xc3\xdd\xa4\xc0\xdf\x93\xae\xd3\xe4\xea\xf3\xf2\
+\xf4\xf8\xa1\xbb\xd8\xbc\xdb\xee\xa1\xc2\xdf\x84\xa4\xcd\xc6\xd3\
+\xe7\xfe\xfe\xff\x99\xb3\xd1\xad\xcc\xe2\xaf\xcf\xe4\xa6\xc5\xde\
+\x83\xa4\xcc\xa5\xba\xd9\xf2\xf5\xf9\x90\xab\xc9\xa1\xc0\xd9\xa2\
+\xc1\xda\xa1\xc0\xd8\x87\xa8\xcc\x8a\xa6\xcd\xda\xe3\xef\x87\xa2\
+\xc2\x96\xb6\xd2\x98\xb8\xd3\x98\xb7\xd2\x96\xb6\xd1\x96\xb5\xd0\
+\x89\xa9\xc9z\x9a\xc3\xba\xca\xe1\xfb\xfc\xfd\xf2\xf4\xf7\x82\
+\x9d\xbe\x8e\xae\xcd\x90\xb0\xcf\x8f\xaf\xce\x8d\xad\xcc\x8b\xaa\
+\xc9\x89\xa8\xc6\x83\xa2\xc1p\x92\xba\x98\xaf\xd0\xeb\xf0\xf7\
+\x7f\x9a\xbb\x89\xaa\xcd\x88\xa8\xcb\x86\xa6\xc9\x83\xa3\xc5\x7f\
+\x9f\xc1{\x9a\xbcw\x96\xb6h\x87\xadn\x8c\xb6\xcc\xd7\
+\xe8~\x98\xba\x82\xa4\xcb\x84\xa5\xcc\x82\xa3\xca~\x9f\xc7\
+x\x99\xc1p\x91\xb9e\x85\xaeTs\x9e>^\x8a#\
+Du2T\x87\xb1\xc1\xd9\xf2\xf4\xf6w\x92\xb6p\x94\
+\xc5o\x93\xc4k\x8f\xc1d\x89\xbc[\x80\xb4Pt\xa8\
+Cg\x9b7Z\x8e,M\x7f\x1f@r5U\x84\xb1\
+\xc1\xd8u\x91\xb5j\x90\xc6j\x8f\xc5g\x8c\xc2a\x86\
+\xbdY\x7f\xb6Qv\xacFj\x9f:]\x910S\x84\
+`z\xa1\xce\xd7\xe4\xf2\xf3\xf5y\x95\xb8t\x99\xces\
+\x97\xccn\x93\xc8^\x84\xbaTy\xb0Fk\xa0Cf\
+\x94\x8d\xa0\xba\xec\xef\xf4{\x99\xba|\xa1\xd5z\x9e\xd2\
+t\x98\xcdk\x90\xc6a\x87\xbdQx\xac\x5c{\xa1\xb8\
+\xc4\xd2\xfc\xfc\xfd\xf2\xf3\xf4|\x9c\xbc\x84\xa9\xdc\x81\xa4\
+\xd8y\x9d\xd1l\x92\xc7X\x80\xaf|\x95\xb0\xdc\xe1\xe7\
+\xf1\xf2\xf4}\x9f\xbd\x8b\xb0\xe3\x86\xa9\xddr\x9b\xcd_\
+\x86\xad\xa1\xb2\xc2\xf4\xf5\xf6\xf1\xf2\xf3}\xa1\xbf\x8d\xb4\
+\xe7o\x9b\xc9n\x90\xac\xc8\xd1\xd8\xf4\xf4\xf5x\xa0\xb8\
+a\x8f\xb4\x8a\xa1\xb3\xe8\xea\xed\xfe\xfe\xfe\xcd\xd9\xe0\xc6\
+\xcf\xd6\xfa\xfa\xfa\x8f\x8b'\x1a\x00\x00\x00\x01bKG\
+D\x00\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\x00\
+\x00`\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07t\
+IME\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\
+\x00\xd1IDAT\x18\xd3c`\xc0\x05\x18\x99\x981\
+\xc4XX\xd9\xd89\xd0\x059\xb9\xb8yx\xf9\xf8\xd1\
+\x04\x05\x04\x85\x84ED\xc5P\x05\xc5%$%\xa5\xa4\
+edQ\x04\xe5\xe4\x15\x14\x95\x94UT\xd5\xd4\x11\x82\
+\x1a\x9aZ\xda:\xbaz\xfa\x06\x86F\xc6\x08A\x13i\
+S3s\x0bK+k\x1b[;\xb8\xa0\xbd\x83\xa3\x93\
+\xb3\x8b\xab\x9b\xbb\x87\xa7\x977T\xd0\xc7\xd7\xcf? \
+0(8$4,<\x22\x12&\x18\x15\x1d\x13\x1b\x17\
+\x9f\x90\x98\x94\x9c\x92\x0a\xd3\x9e\x96\x9e\x91\x99\x15\x9b\x9d\
+\x93\x9b\x97_\x00\xb7(\xad\xb0\xa8\xb8\xa4\xb4\xac\xbc\xa2\
+\xb2\x0a\xe1\xa4\xea\x9a\xda\xba\xfa\x86\xc6\xa6fd\xc7\xb7\
+\xb4\xb6\xb5wtvu\xa3x\xb3\xa7\xb7\xaf\x7f\xc2D\
+\xb4P\x9a4y\xca\xd4i\xe8A7}\xc6\xccY\x0c\
+\x04\x01\x00\x16~0NH\xc6\xd0\xc2\x00\x00\x00%t\
+EXtdate:create\x002\
+023-03-08T17:27:\
+26+00:00\x9e\x98\xa5\x85\x00\x00\x00%\
+tEXtdate:modify\x00\
+2023-03-08T17:27\
+:26+00:00\xef\xc5\x1d9\x00\x00\x00\
+(tEXtdate:timest\
+amp\x002023-03-09T0\
+6:20:50+00:00\xdd\xe8\xb2\
+\xde\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x03\xf9\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x04\x00\x00\x00&\xf7p\xe6\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x02\
+bKGD\x00\xff\x87\x8f\xcc\xbf\x00\x00\x00\x09pH\
+Ys\x00\x01bT\x00\x01bT\x01\x80\xc1\xe1l\x00\
+\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x12)\xc3\xf6\
+ \xcd\x00\x00\x02\xc8IDATH\xc7\xad\xd7\xcdo\
+TU\x14\x00\xf0\xdf\xb43\xfd\x80*\xd0\xaa\xc1D\x89\
+JH\x91\xaa DK\xa3X\x87\x8e.\x5c41\xb8\
+5a\xa1\x0b\x12\x09\xd1\xb8!1\xb1,\x8c\x0d\x89$\
+.\x8cnH\x8c\x7f\x82\x1a]8\xa5i\xbbhT4\
+R\x81\xc8G\x95\x85DT\xa8\xd5\xb6R\xa6v\x9e\x8b\
+\xa9\xb6\xf3\xde+\x99;z\xcej\xce\xe4\xfe\xeey\xf7\
+\xce}\xef\x0d\xb4:`BI\xb4\x94eokVw\
+\xb4\x1at\xfd_\xac\x92\xf3\x064\xd5\xc7e\xedwH\
+\x8b\xef}\xeaW\xd0d\x9fN\x87e\xbc\xa1T\x0f9\
+!2\xa9{E\xa5\xc7Y\x91\x1b\x8e\xd4\xd3eFI\
+\xce;^\xaa\xaa\xf68\xee~%G\x1dW\x96I\x19\
+\x17\x99s-\x1d\x8c0\xe0H\xac^!\x17\x5cQ^\
+\xa5\x95i#\xde\xf5]\xda\x5c\x91\xd7S\x06\xf4\x98\x88\
+mU2OW-\xd5\xd2\xa6T\xfaL\xc6\xb8\xe7<\
+c}\xea\xe5\x92\xf3\xb0\x82.\x83\xf6\x99Jv8\x10\
+\xbe\xf8Z\xbd%R\xd2_]n\xa8\x83\xaa\xc4u\xef\
+\xbb*\xa7\xeb\xff\x02\x995O\xfcL\xfd\x17pQD\
+\xfcW\x90\xbd\xc9\x80\x0d\x1e\xf1\x90\xb6U\xbe-k\xb7\
+\x0e\xf9\xa5\xb6\x16M\x1a\xf2\xf3j\x9b\xd2\xe8Yc\x89\
+3~\xf3,\x1b\xb53\xbd\xc3\x9cW\xbc\xa6\x0d\xbf\x99\
+\x11\xd5\xb4\x00\xcdn\xb7\xc7\x9b\xe9\xe0\xf3\x06\xb4\xf8\xc9\
+{>N?`\x89\x88\xb4:\xaa\xdfci\xe0\xdd^\
+\xd5\xe2\x92\x17\x0c\x05m\xd2\x0c\x16\xd2vy\xaf\xad\x16\
+\x0d\x06r\x9bt\xe3d\x12l\xf4\xb4\x8c\x1f|\x12\xc4\
+\xf1\xa8{,\xfa0\x09\xdee7\xc6]\x0e\x04\x0b\xb2\
+.;\x91\x04\xbbmR\xf6\xd9\xaa\xb7\xad\xf4\xd8h\x0f\
+N\xba\x10\x073\x9e\x92\xf5\xa3\xf1\xc0\xfev\xd9\x8c\xa2\
+R\x1c\xbc\xd3\xe3\xf8\xc2\xa5\xe0\x0bn\xf6\x8b\xb1\xe4Y\
+\xde\xe5>\x14\xfd\x15\xc4ux\x02_\xbb\x98\x04\x0b\x9a\
+\x5c1\x16\xd8\xdfv\x9d(\x9a\x8f\x83\xb7\xe9\xc5W&\
+\x03\xc1>kM\x19!\x0e\xee\xb0\x05E7\x82\xb8u\
+\xf2\xf8\xb6\xf2\xc0\xaa\x06\xfb\xacq\xcdh`\x7f]\xba\
+0d6\x0e\xae\x97\xc7)\xe7\x02\xc1\xbc[\xcd\x18\xae\
+|X\x09>`\x1b\x86\xcc\x05qk\xed\xc5Y\xa7\x93\
+`\xde-~\xffg\xa6\x9a\xa3\xd3v\x0c\x9b\x8e\x83m\
+\xfap\xc6\x99@\xb0W\x87?\x97\xefL\xcb\xe0V\x0f\
+b\xd8\x1fA\x5c\xb3\x02\xce\xfb\xa6\x1a\x8c\xd0\xab\xdd\x9c\
+\x13\x81\xfdm\xb6\x13\xa3\xae\xc6;\xcc)\xe0\x9cS\x81\
+\xe0\x936*).\x17\x1a,\xa0\xc3\xbdv`\xa4\xc6\
+'\xc8r\x7f/\xe2\xbc/W\x16'D.:lV\
+d\x7f\x00\xd6h\xb7a\x91\xb2\x97W\x963\x0e8\xa6\
+\xc5\xac5\x1a|\xaeh!\xf5]\xac:\x22Y[\xe4\
+\xdd\x81\x0f\x1c\xac\xde\xc8\xb4\x97\xf6Zs\xda1\xed\xc9\
+\xf9\xe2\x7f+j\xcb)\x1f\xe9\x97\x8bc\x7f\x03\xa8M\
+ \xd2E{(\x13\x00\x00\x00%tEXtda\
+te:create\x002023-0\
+3-08T17:21:49+00\
+:00\xa3\xa1\xac\xac\x00\x00\x00%tEXtd\
+ate:modify\x002023-\
+03-08T17:21:49+0\
+0:00\xd2\xfc\x14\x10\x00\x00\x00(tEXt\
+date:timestamp\x002\
+023-03-09T06:18:\
+41+00:00=\x00\x9f\x01\x00\x00\x00\x00\
+IEND\xaeB`\x82\
+\x00\x00\x03\xac\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xa1\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf6\xf6\xf6\xdc\xde\xe0\
+\xca\xcd\xcf\xc6\xc8\xcb\xce\xcf\xd1\xe5\xe6\xe6\xfc\xfc\xfc\xe7\
+\xe8\xe9\xbc\xc2\xca\xc0\xc8\xd3\xd4\xda\xe3\xd7\xdd\xe6\xc8\xcf\
+\xd9\xae\xb5\xbf\xc2\xc5\xc7\xf6\xf6\xf5\xea\xeb\xeb\xb7\xbf\xcb\
+\xce\xd9\xe9\xe5\xef\xfa\xe9\xf2\xfc\xe9\xf3\xfc\xe8\xf1\xfc\xdc\
+\xe6\xf4\xaf\xb9\xc7\xbe\xc1\xc3\xfb\xfb\xfb\xfb\xfb\xfa\xbf\xc5\
+\xcc\xbb\xcb\xe0\xdd\xeb\xfa\xe8\xf3\xfd\xee\xf8\xfe\xef\xf9\xff\
+\xec\xf7\xfe\xe5\xf1\xfd\xd3\xe1\xf2\xa8\xb2\xbf\xe8\xe8\xe8\xee\
+\xee\xed\xa1\xaf\xc4\xbc\xd2\xee\xce\xdd\xeb\xc5\xd1\xd9\xcb\xd6\
+\xdc\xcc\xd7\xdc\xca\xd6\xdb\xc6\xd2\xda\xd9\xe5\xf2\xae\xbe\xd4\
+\xcf\xd1\xd4\xe4\xe4\xe3\x98\xab\xc4\xba\xd5\xf3\xad\xbf\xcc\x84\
+\x94\xa5\x8f\xa0\xb2\x8f\x9f\xb2\x8e\x9f\xb2\x84\x94\xa4\xc4\xd4\
+\xe2\xa6\xbc\xd7\xad\xb2\xb6\xff\xfe\xfe\xe7\xe7\xe6\x9c\xac\xc2\
+\xbd\xd7\xf2\xdb\xec\xf4\xe0\xed\xf2\xe6\xf1\xf6\xe7\xf1\xf6\xdf\
+\xec\xf0\xd9\xec\xf7\x9f\xb5\xce\xab\xae\xb0\xbe\xc5\xcf\xc2\xd7\
+\xef\xe5\xf6\xfd\xf5\xff\xff\xfa\xff\xff\xfc\xff\xff\xdc\xef\xfb\
+\x91\xa0\xb2\xc9\xca\xc9\xdb\xdc\xdd\xa3\xb4\xc8\xce\xe4\xf6\xf1\
+\xfd\xff\xfd\xff\xff\xfb\xff\xff\xf1\xfc\xff\xba\xcb\xdc\x98\x9e\
+\xa2\xf4\xf3\xf3\xf9\xf9\xf8\xaf\xb3\xb5\x90\xa0\xb1\xc5\xd8\xe7\
+\xe8\xf4\xfb\xf0\xf9\xfd\xe4\xef\xf6\xb8\xc5\xd1\x94\x9a\x9f\xe2\
+\xe2\xe1\xf9\xf9\xf9\xc4\xc5\xc4\x96\x9d\xa1\x96\xa0\xa8\x9d\xa6\
+\xad\x9d\xa4\xa8\xa2\xa4\xa5\xb7\xb8\xb6\xde\xdf\xde\xf8\xf8\xf7\
+\xe9\xe9\xe8\xe6\xe6\xe5\xf3\xf3\xf2\xe5\xe5\xe4\xd3\xd3\xd3\xaa\
+\xab\xa9\xed\xed\xed\xcc\xcc\xcc\xc5\xc5\xc4\xb6\xb7\xb6\xd5\xd5\
+\xd5\xd2\xd2\xd1\xad\xae\xac\xd9\xda\xd9\xf5\xf5\xf5\xc9\xc9\xc9\
+\xca\xcb\xca\xb3\xb4\xb3\xca\xca\xca\xaf\xb0\xae\xd5\xd6\xd4\xfa\
+\xfa\xfa\xfd\xfd\xfd\xec\x02\x5c\xcb\x00\x00\x00\x01bKG\
+D\x00\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\x00\
+\x00`\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07t\
+IME\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\
+\x00\xcfIDAT\x18\xd3c`\x80\x01F\x06t\xc0\
+\xc4\xcc\xc2\xca\xc6\xce\x81\x22\xc6\xc9\xc5\xcd\xc3\xcb\xc7/\
+ \x88$&$,\x22*&.!)%-\x03\x17\
+\x93\x95\x93WPTRVQUS\xd7\x80\x0bjj\
+i\xeb\xe8\xea\xe9\x1b\x18\x1a\x19\x9b\xc0\x05M\xcd\xcc-\
+,\xad\xacml\xed\xec\x1d\x1ca\x82N\xce.\xaen\
+\xee\x1e\xee\x9e^\xde>\x08\xf7\xf8\xfa\xf9\x07\x04\x06\x05\
+\x06\x04\x87\x84\x22l\x0f\x0b\x8f\x88\x0c\x8c\x8a\x8e\x89\x8d\
+\x8bG\x08&$&%\xa7\xa4\xa6\xa5gd\x22;>\
++;'7/\xbf\xa0\xb0\x08\xd5\xaf\xc5%\xa5e\xe5\
+\x15\x95N\x18\x01PU]S\xcb\x81!ZW\xdf\xd0\
+\x88!\xd8\xd4\xdc\xd2\xc0\x84!ZT\xdd\xda\x82!(\
+\xd3\xd6\xd2\x8e\xa9\xb4\xaa\xb1\xa3\x13C\x90\xa1\x0b\xe4R\
+\x00\xd0-*\x8fg\x18\x97\xc5\x00\x00\x00%tEX\
+tdate:create\x00202\
+3-03-08T17:27:27\
++00:008\xef\xae1\x00\x00\x00%tE\
+Xtdate:modify\x0020\
+23-03-08T17:27:2\
+7+00:00I\xb2\x16\x8d\x00\x00\x00(t\
+EXtdate:timestam\
+p\x002023-03-09T06:\
+20:50+00:00\xdd\xe8\xb2\xde\x00\
+\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x04e\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xc5\
+PLTE\xe1\xe1\xe1\xda\xda\xda\xdc\xdc\xdc\xdb\xdb\xdb\
+\xf8\xf8\xf8\xff\xff\xff\xe7\xe8\xe8\xeb\xeb\xeb\xeb\xec\xec\xec\
+\xed\xed\xed\xed\xed\xee\xee\xee\xee\xef\xef\xef\xef\xef\xef\xf0\
+\xf0\xf0\xf0\xf0\xf1\xf1\xf1\xdd\xdd\xdd\xf4\xf4\xf4\xed\xee\xee\
+\xf0\xf1\xf1\xf1\xf2\xf2\xf2\xf3\xf3\xf3\xf3\xf3\xf4\xf5\xf5\xf5\
+\xf5\xf5\xf6\xf6\xf7\xf6\xf6\xf6\xf6\xf7\xf7\xd8\xd8\xd8\xe2\xe2\
+\xe2\xe8\xe8\xe8\xec\xec\xec\xf2\xf2\xf2\xdd\xe9\xdc\xee\xf2\xed\
+\xfa\xfa\xfa\xe3\xe4\xe4\xea\xea\xea\xf7\xf7\xf7\xf9\xf9\xf9\xf4\
+\xf6\xf4\x90\xbf\x8b\x95\xc2\x8d\xdd\xea\xdc\xe0\xdf\xe0\xf5\xf6\
+\xf6\xf4\xf7\xf5\x90\xbf\x88\xaa\xd2\x89\x8c\xbe{\xaa\xc3\xa9\
+\xec\xed\xec\xf9\xf8\xf9\xf8\xf9\xf9\xfb\xfb\xfb\xf5\xf8\xf6\x88\
+\xb9\x81\xad\xd3}\xae\xd4y\x83\xb8c\xa0\xc6\x9a\xeb\xf1\
+\xec\xfc\xfc\xfc\xf6\xf8\xf7}\xafs\x95\xc5P\xa3\xcfU\
+\xa1\xceT\x83\xb9I\x85\xb5q\xdc\xe7\xdc\xf7\xf6\xf7\xfd\
+\xfd\xfd\xf7\xf9\xf9r\xa4_\x81\xbd\x12\x95\xcd\x19\x93\xcb\
+\x1az\xb5\x17k\xa1G\xcc\xdd\xcd\xf8\xf7\xf8\xfe\xfe\xfe\
+r\xa0Z\x93\xce\x09\xaa\xe2\x0b\x81\xba\x0fy\xa6\x5c\xd4\
+\xe1\xd5\xde\xde\xde\xf9\xfa\xfa\xf7\xf9\xfaq\x9bV\x90\xc8\
+\x06{\xaf\x1f\x82\xa1w\xe5\xe9\xe7\xf3\xf4\xf5a\x87S\
+X\x850\xaa\xbc\xac\xd9\xdb\xdd\x8e\x9f\x92\xa9\xb2\xac\xd3\
+\xd4\xd6\xd8\xda\xdb\xde\xdf\xdf\xe0\xe0\xe0\xc5\xc6\xc6\xcf\xcf\
+\xd0\xcf\xcf\xcf\xd1\xd2\xd1\xdc\xdd\xdd\xc5\xc5\xc6\xe5\xe5\xe4\
+\xd6\xd6\xd5\xdf\xdf\xdf\xd0\xd0\xd1\xd2\xd2\xd2\xd3\xd5\xd6\xe1\
+\xe2\xe3\xe4\xe4\xe4\xbc\xbc\xbd\xce\xce\xce\xd8\xd8\xd7\xf6\xf6\
+\xf5\xd4\xd4\xd5\xcc\xcd\xcd\xc8\xc9\xc9\xdd\xdd\xde\xfa\xfb\xfb\
+\xe2\xe3\xe4\xc3\xc6\xc7\xd7\xd8\xd7\xe0\xe1\xe1\xe3\xe4\xe3\xd9\
+\xda\xd9\xdf\xe0\xdf\xe5\xe5\xe5\xe2\xe2\xe3\xd7\xda\xdb\xda\xdc\
+\xdd\xbc\xbd\xbd\xd5\xd5\xd4\xd1\xd3\xd4\xc5\xc7\xc7\xd3\xd3\xd3\
+\xdf\xe0\xe0\xd9\xda\xdb\xca\xce\xd0\xfc\xfaE\x9c\x00\x00\x00\
+\x01bKGD\x05\xf8o\xe9\xc7\x00\x00\x00\x09pH\
+Ys\x00\x00\x00`\x00\x00\x00`\x00\xf0kB\xcf\x00\
+\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x142\x1f\xc9\
+N\xa7\x00\x00\x01dIDAT\x18\xd3M\xd0gS\
+\xc2@\x10\x06\xe0\xe3\xe4\xc4\x02\x18N$\x86(\x1a\x8d\
+&\xf6\x0e\xf6\xd85v={\xef\x15\xb1b\xc3.\xf6\
+^\x7f\xafw\x8c\xce\xf8~|fwv\xf6\x05\xc0\x00\
+\xff%\xcc\x88h\x80!\xdc\x14\x11\x19\x15m\xb6X\xac\
+11\x9c\x0d\x87\x10\x9ab-\xf68\x07\x8f\xe3\x05\xa7\
+\x98\x90\x98\xe8r\x81$\x00\x93\xadv\x89\xc7\x82\xe8\x14\
+SRe\x98f\x8eN7\x00\x18\xcb9()F5\
+#3+;\xc7$\xe6r\x10@3\x8fs)\xc9r\
+^~AaQq\x89\xc2S\xb4\xc6\x8b\x8a[\x96=\
+\x9e\xd2\xb2\xf2\x8a\xca\xaaj\x0f\xb6\x01h\x17\x15\x95\x92\
+\xa6\xd5\xd4\xd6\xd57465\xb7P\xe4~Mom\
+k\xef\xe8\xec\xea\xee\xe9\xa5(\xb9\x99\xe9:i\xed\xeb\
+\x1f\x18\x1c\x1a\xd6\x95\x11\x00\xf9Q9dhl|b\
+rj\x1a\x11#E\xfckdfvn~\x81~\xa4\
+2d\xcb\x84\xe8\x82kqiyE&\xc4\xbd\xcaP\
+c\xa8x\xd7|\xeb\x1bX\xc5\xbc}\x13@\x81\x0d\x22\
+-j\xcb\xb7\xbd\xc3K\xfe\xdd\xbd\xfd\x83?\xf4\x1c\x06\
+\x8e\x8eO\xa4\xd3\xad\xb3\xf3\x0b\x8d\x22=\x83\xd0e\xf0\
+\xeaZUo\x02\xb7w\xf7:\x026\xf0\xf0\x00\x0c\x87\
+\x8fO\xcf*\x12\xf6^^\x01\xa1}\xca\x8abL\x0e\
+\xc3X\xd4\x10\xc2o\xef\xdb\x84\x95\xcc\x9a\x16>\xfc~\
+\xaf\xd7\xfb\xf9\xf5\x1dd\x86~\x00\xa3\xa7N\xa9\x0f0\
+\xa84\x00\x00\x00%tEXtdate:c\
+reate\x002023-03-08\
+T17:27:26+00:00\x9e\
+\x98\xa5\x85\x00\x00\x00%tEXtdate:\
+modify\x002023-03-0\
+8T17:27:26+00:00\
+\xef\xc5\x1d9\x00\x00\x00(tEXtdate\
+:timestamp\x002023-\
+03-09T06:20:50+0\
+0:00\xdd\xe8\xb2\xde\x00\x00\x00\x00IEND\
+\xaeB`\x82\
+\x00\x00\x02\xa6\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x04\x00\x00\x00'\x80\xd5\x86\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x02\
+bKGD\x00\xff\x87\x8f\xcc\xbf\x00\x00\x00\x09pH\
+Ys\x00\x00\xb1*\x00\x00\xb1*\x01a\xa7,\xef\x00\
+\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x142\x1f\xc9\
+N\xa7\x00\x00\x01uIDAT(\xcf\x85\xd3\xb1k\
+SQ\x14\x06\xf0\xdf}}\xa1i2\x95b\x0dH2\
+i\xe8\xe0\xe4$os\xb4\x9bm\xf1\x1f\xd0\xa5E\xf0\
+\x1f\xa8\x93nBA\x10]\xc4\xbf@p\x15\xba:\x08\
+B!S\x87\x84.E\xb0\x95R\xb0$\xc6$}\xcf\
+\xe1\xbd$M\x11\xf2\xdd\xe5\x9es>\xee9\xf7\xbb\xdf\
+e\x8aD\xcb\xc0\xdfb\x0d\xb4$\xd3b\x98\xec\xaa>\
+)y\xa7/ S\xb6chK\xd754tl\xce\
+d6u4\xc6A4IgR\xbd\x19bO*\x1b\
+\x071\xaaVd\xeaJjn\x89\x8b\xcaHMI\x1d\
+\xc1\x99n\x90\xd8\xd5\x94\x8a\xddt\xae7\x99:S\xb1\
+\xec\xc4H\xa4\xede\xd0\xf2\xcb{}\xa4W\x06\xc9\x91\
+g\xca\xb6\xdd``\xc3<l\x18D2\xfd\xb9\xc4\xbe\
+,.\xb4,Y\x9d\x5c\xe3*FN\x0d\x05\x93\xe2]\
+\x1f-\xbb\x9c\xca\x81`\xc1\xb9'\x0e\xc6\xf2d\xe8\xd8\
+\xf3\xda\x07\xdf,\x14\xb4K\xf7=\xb5\xa7\x9d3bA\
+\x19\x17\xf6\xfd\xf6\xd5\x97\x99\xb6\x8f\xed\xbb@Y\x88\x1d\
+\xda\x11\xf4\xd4T\x045\xf7\x8a\xb7>\x10T<\xf4S\
+\xc5\xb6\xc3 \xf1\xc2\x1d\xa9\x92U\x8f\xacxU\x9c\xb7\
+\xeb\xccg\xa7\x86\xb9\xe0\xb9o\x1a\xea\x12G\xd6-j\
+Z\xb3\xa6i\xd1\xba#\x89\xba\x86j~\x99na\xa5\
+\x91\xd4\x03\xcf\x8b\xd6o\xa4F\x8e\x1dOM1\x16#\
+\xb2\xa4\xed\xbb\x08\xa9\x1fn\x8b\xa6~\xbdn\xdc\xb7\xfe\
+\x14\xf1\x92g\xff7\xee\x9c\xaf\xf0\x0fs(t\xfdd\
+$_B\x00\x00\x00%tEXtdate:\
+create\x002023-03-0\
+8T17:21:49+00:00\
+\xa3\xa1\xac\xac\x00\x00\x00%tEXtdate\
+:modify\x002023-03-\
+08T17:21:49+00:0\
+0\xd2\xfc\x14\x10\x00\x00\x00(tEXtdat\
+e:timestamp\x002023\
+-03-09T06:20:50+\
+00:00\xdd\xe8\xb2\xde\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x06\xbc\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x03\x00\x00\x00\xbb H_\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x02\xb2\
+PLTE\xff\xff\xff\xf3\xf3\xf3\xe9\xe9\xe9\xfd\xfd\xfd\
+\xc1\xc1\xc1\xc7\xc7\xc7\xd0\xd0\xd0\xd1\xd1\xd1\xfc\xfc\xfc\xbc\
+\xbc\xbc\xeb\xec\xec\xf2\xf2\xf3\xf0\xf1\xf1\xf1\xf1\xf2\xf1\xf2\
+\xf2\xf2\xf3\xf3\xf3\xf4\xf4\xf4\xf4\xf4\xf4\xf5\xf5\xf5\xf5\xf5\
+\xf5\xf6\xf6\xf6\xf7\xf7\xf7\xf7\xf7\xf8\xf9\xf9\xed\xed\xed\xbd\
+\xbd\xbd\xe8\xe9\xe9\xe8\xe9\xea\xe7\xe8\xe8\xe9\xea\xea\xea\xeb\
+\xea\xeb\xec\xeb\xec\xed\xed\xed\xee\xee\xee\xee\xee\xe5\xe6\xe6\
+\xe0\xe0\xe0\xe0\xe1\xe1\xf1\xf1\xf1\xf2\xf2\xf2\xeb\xeb\xeb\xea\
+\xea\xeb\xe9\xea\xe9\xec\xec\xea\xea\xeb\xeb\xda\xe2\xec\xdb\xe3\
+\xed\xef\xef\xed\xef\xef\xee\xf0\xf0\xee\xf0\xf0\xef\xf1\xf1\xef\
+\xae\xae\xae\x9a\x9a\x9a\xa3\xa3\xa3\x97\x97\x97\xf5\xf4\xf4\xf3\
+\xf3\xf2\xf4\xf4\xf2\xf4\xf4\xf3\xf5\xf4\xf3\xdf\xe7\xf3\xe4\xea\
+\xf3\xf6\xf5\xf3\xbe\xbe\xbe\xd6\xdf\xeb\xa4\xc3\xedu\xa8\xef\
+[\x99\xf1\x90\xb8\xf0\xb0\xcb\xf0\xb4\xce\xf1\xb9\xd1\xf2\xbd\
+\xd3\xf2\xc1\xd6\xf3\xc5\xd8\xf2\x9e\xa4\xad\xce\xce\xce\xc0\xc0\
+\xc0\xa9\xaf\xb8\xd4\xe3\xf8\xcd\xde\xf6\xc7\xdb\xf5\xc2\xd7\xf5\
+\xbc\xd4\xf4\xb6\xd0\xf4\x8a\xb6\xf3Z\x9a\xf2{\xac\xf2\xb0\
+\xcc\xf3\xe7\xed\xf5\xec\xec\xec\xd2\xdd\xec\x90\xb7\xee]\x9a\
+\xf0K\x90\xf2\x84\xb1\xf1\x9e\xc1\xf2\xa3\xc4\xf2\xa9\xc8\xf3\
+\xaf\xcc\xf4\xb5\xcf\xf4\xba\xd2\xf4\x9b\xa4\xaf\xd4\xd4\xd3\xc4\
+\xc4\xc4\xa5\xae\xb9\xcc\xdf\xf9\xc3\xd9\xf7\xbb\xd4\xf7\xb4\xcf\
+\xf6\xac\xcb\xf5\xa5\xc7\xf5~\xaf\xf4I\x8f\xf3a\x9d\xf2\
+\x9a\xbe\xf3\xe3\xeb\xf6\xbe\xbd\xbd\xed\xed\xec\xee\xee\xed\xe6\
+\xea\xee\xcf\xdd\xef\xd8\xe2\xf0\xf1\xf1\xf0\xf2\xf2\xf0\xf2\xf2\
+\xf1\xf3\xf3\xf1\xac\xac\xab\x9f\xa0\xa0\xad\xad\xad\xbb\xbb\xbb\
+\xf8\xf8\xf7\xf6\xf6\xf5\xf7\xf7\xf5\xf7\xf7\xf6\xf8\xf7\xf6\xd7\
+\xe4\xf6\xd8\xe5\xf6\xf0\xf3\xf6\xf8\xf8\xf6\xf8\xf8\xf8\xea\xea\
+\xea\xee\xef\xef\xf0\xf1\xf0\xe1\xe2\xe2\xd6\xd6\xd6\xd7\xd7\xd7\
+\xe7\xe7\xe7\xf6\xf6\xf6\xf9\xf8\xf7\xef\xef\xef\xef\xf0\xf0\xf7\
+\xf8\xf8\xf9\xfa\xfa\xf9\xf9\xf9\xfa\xfb\xfb\xf0\xf0\xf0\xfa\xfa\
+\xfa\xfb\xfb\xfb\xfe\xfe\xfe\xbc\xbc\xbd\xe5\xe7\xe8\xbb\xbc\xbc\
+\xe8\xe8\xe8\xe4\xe4\xe4\xe2\xe2\xe2\xe3\xe3\xe3\xe8\xe8\xe9\xd7\
+\xdb\xdd\xba\xba\xbb\xfd\xfd\xfc\xd9\xda\xda\xd1\xd1\xd2\xcb\xcb\
+\xcc\xc8\xc8\xc9\xcc\xcd\xce\xd2\xd5\xd7\xb3\xb6\xb7\xd5\xd5\xd5\
+\xde\xde\xde\xbf\xc0\xc1\xb5\xb6\xb7\xb4\xb4\xb5\xc0\xc1\xc1\xcd\
+\xce\xce\xb6\xb7\xb7\xc7\xc8\xc8\xb4\xb5\xb5\xb7\xb8\xb8\xc3\xc4\
+\xc5\xdd\xdd\xdc\xbc\xbd\xbb\xd2\xd3\xd2\xce\xce\xcf\xb3\xb4\xb5\
+\xcc\xcd\xcd\xe6\xe6\xe5\xbe\xbf\xbd\xd4\xd4\xd4\xd7\xd7\xd8\xc0\
+\xc0\xc1\xa9\xaa\xab\xdd\xdd\xde\xe5\xe5\xe4\xd5\xd5\xd4\xe5\xe5\
+\xe6\xb4\xb5\xb6\xac\xad\xae\xe1\xe1\xe1\xae\xae\xaf\xc1\xc2\xc2\
+\xe3\xe4\xe3\xbf\xbf\xbe\xd6\xd6\xd5\xde\xde\xdf\xc4\xc4\xc5\xdf\
+\xdf\xdf\xc6\xc7\xc8\xc1\xc4\xc6\xba\xba\xba\xfb\xfc\xfc\xe3\xe5\
+\xe6\xca\xd0\xd3\xc6\xc6\xc6\xc4\xc5\xc5\xbf\xc2\xc3\xb9\xbd\xbf\
+\xad\xb1\xb3\xd4\xd5\xd5\xe4\xab\x9e\xc5\x00\x00\x00\x01bK\
+GD\x00\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\
+\x00\x00`\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07\
+tIME\x07\xe7\x03\x09\x06\x12)\xc3\xf6 \xcd\x00\
+\x00\x02\xceIDAT8\xcb\x95\xd4\x87S\xd3`\x18\
+\x06\xf0\xa4\xa1XjMGh\xda\xe2j+\xa6UQ\
+\x11EE\x1c\xb8'\xee]\xf7\xde{\x0f\x5c(\xae\x8a\
+\xa2Qj\xa5\xad\x03q\xe0\x02\x9c8Apoq\x0f\
+\x5c\xff\x87\xdf\x974\xc9\x97\xb6z\xfa\xdc\xf5z\x97\xfc\
+\xeey\xf3~\xcd\x15\xc3\xfe'\xb8\xe2\xaf\xc1\x05GD\
+)\xa3\xff\x9c\x1a\xca(\x22\x08U1\xea\x9a\x9aZ\xa4\
+V\x8b\xeb\xf4\x06\x03\x15k4\xd2F\x10\x9a\x8f\xc9\x1c\
+\xa3\x12\xa0%\xaev\x9d\xb8\xba\xf5\xea\xab\xadV\x9b\xcd\
+\xde >\xbe\xa1B\xa3a\x18\x92t8H\x12wZ\
+$\xa8h\xd4\xb8IB\xd3f\xcd\x13[$\xb5Ll\
+\x95\xdc\xba\x8d\xa5mJ\xbb\xd4\xf6\xa9\x1d:\xe2\x9d(\
+\x04\xa6)\xd4\x9d\xbbt\xed\xd6\xbdG\xcf^\xbd\xfb\xf4\
+\xed\x97n\xeb?`\xe0\xa0\xc1C\x86\x0e\x1b>b\xe4\
+\xa8\xd1.\x14Z\xc7\x8c\x1d7~\xc2\xc4I\x93\xa7L\
+\x9d6}\x065s\xd6\xec9s\xe7\xcd_\xb0p\xd1\
+\xe2%K\x11\xb8\xac\xaem\xf9\x8a\x95\xabV\xafY\x9b\
+\xb1.%c\xfd\x86\x8d\xc9\x9b27o\xc9\xda\x9a\xb5\
+m\xfb\x8e\x9dn\x04Zv\xd9\xad\xb6\xec\xa4\xdd\x1a\x86\
+th\xf1=99{\xf7\xb1,\xdc:s\x7f&m\
+\x92\xc1l[\xf6\x81\x5c\x0d\xe3\x80'\xc4\xd2\xb4\x1b \
+\x8f\x9b\xcfA\x19\xcc\x85\x0e\xd4\x81\x83\xa4bYN\x99\
+\xbc|\x0eYQ\x98\xc79P\x07\x98\x91\xe6\x94/\x18\
+\xbf\x19\x85\x1a\xc1\xb1,h\x13\x94\x1fF\x85\xc2\x04\x92\
+s\x06\x8a\xab\xf3\x8a(\x0c:\x1d\x0c\xef\xc0\x1e\x5c\x9d\
+\xa8@dPKj\xe1\x5c\xe8\xc4\x91\xc1\x102\xa8\x0b\
+u\x22\x0b\x81z\x5c\xcf=_\xd0\xf1\x86O@\x06\x0d\
+:\x038>\xe8\x84:\x82\x88\x08)88\xe8D\x16\
+\xe0\x82\xd9Q\x18\x0b\x06{x(\xb8@ \x02T\xb3\
+\xb2B\x81\xf1\xb7Q\xe8b#8p'\xac\xd1e\x14\
+\xa0\xe8\x80\x22T\xdcf\xea\xc3\xd2\x1b\xee\xa2\x8d\x1e\xa1\
+Pp\x84\xcaGS8\x8eSG\x8e\x22\xd0\x83\x16\xf2\
+\xceG;\xcc\xc7\xf2\x8f\x17\x9c8y\xea\xb4\x04\xdd\x10\
+J\x85\xd0Q\xf6\xfc\xc23g\xcf\x9d\xbfPT\x8c!\
+\xd0#/$|zWI\xfa\xc5K\x97\xaf\x5c\xbd\x16\
+\xadB\xa10\x99/\x0c\xf8YsI\xe9\xf5\x1b7\x0b\
+o\xdd\xbe#\xfc\xa1p\xd0$M\xe6\x0a\xbdLAY\
+\xf9]\xda]QyOr\x10zQ\x08\xae\xb0\xce\xfb\
+\x0f\x1e>\xf2?\xae|\x828\x09\x06\x1f\x11L\xc6\x9f\
+\x96={\xee\xac\xa8,F\x1d?\xda\x87B\x1f\xf3\xa2\
+\xf4\xe5\xab\xd7Uod\x8eoDw!\xbcyo\xdf\
+\x95GW\xe5\xc8\x9d\xb4\x8c\xb8\xb4\x97y\xff\xe1\xe3\xa7\
+P\x07~k;\xa1\x12_\x04\x98\xcf\xba/_\x8b\x8a\
+C\x1dF\xc4\xa4)\xab\xab\xab\x95J%\xfc\xc0\xafo\
+\xdf\x7f\xfc\xfc\x15\xe60\xcc\x1c\x1f\x1eE\x04\xf7O\xf9\
+\x0d]\x11i{\xdc\x1a\xbd\x00\x00\x00\x00%tEX\
+tdate:create\x00202\
+3-03-08T17:27:26\
++00:00\x9e\x98\xa5\x85\x00\x00\x00%tE\
+Xtdate:modify\x0020\
+23-03-08T17:27:2\
+6+00:00\xef\xc5\x1d9\x00\x00\x00(t\
+EXtdate:timestam\
+p\x002023-03-09T06:\
+18:41+00:00=\x00\x9f\x01\x00\
+\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x07\x8d\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x03\x00\x00\x00\xbb H_\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x02\x01\
+PLTE\x00\x00\x00A\xcdRA\xcdRA\xcdR\
+A\xcdRA\xcdRA\xcdRA\xcdRA\xcdRA\
+\xcdRA\xcdRA\xcdRA\xcdRA\xcdRA\xcd\
+RA\xcdRA\xcdRA\xcdRA\xcdRA\xcdR\
+A\xcdRA\xcdRA\xcdRA\xcdRA\xcdRA\
+\xcdRA\xcdRA\xcdRA\xcdRA\xcdR@\xcd\
+Q>\xccO?\xcdQS\xd2bu\xdb\x82\x8a\xe0\x95\
+\x8c\xe1\x97|\xdd\x88[\xd4jB\xcdS\x82\xde\x8d\xdc\
+\xf6\xdf\xfb\xfe\xfb\xff\xff\xff\xfe\xff\xfe\xe8\xf9\xea\x9c\xe5\
+\xa5H\xcfY\xa0\xe6\xa9\xb8\xec\xbeb\xd6p?\xcdP\
+?\xccPp\xd9}\xef\xfb\xf1\xd7\xf4\xda\xa8\xe8\xb0\xa3\
+\xe7\xab\xc9\xf1\xcd\xfc\xfe\xfc\xfd\xfe\xfd\x91\xe2\x9aL\xd0\
+\x5c\xd9\xf5\xdd=\xccOD\xceT\xb9\xed\xc0\xcb\xf1\xd0\
+T\xd2d\xac\xe9\xb3\xda\xf5\xddP\xd1`C\xceTW\
+\xd3f}\xdd\x89J\xcfZU\xd2d\xe3\xf8\xe5\x84\xdf\
+\x8f>\xccPd\xd6r\xf0\xfb\xf1\xf7\xfd\xf8m\xd9z\
+t\xda\x80\xe3\xf8\xe6\xbb\xed\xc1h\xd7v\xf4\xfc\xf5\xf2\
+\xfc\xf3N\xd0^\x86\xdf\x91w\xdb\x83\xe4\xf8\xe6\xf9\xfe\
+\xfa\xeb\xfa\xed\xe5\xf8\xe7\xc4\xf0\xc9M\xd0]t\xda\x81\
+\xe9\xf9\xebY\xd3gG\xcfW\xcd\xf2\xd2\x97\xe4\xa1D\
+\xceU^\xd5l\xdb\xf6\xde\x82\xde\x8eQ\xd1ax\xdb\
+\x84V\xd3eF\xceV\xc9\xf1\xce=\xccNK\xd0[\
+t\xdb\x81Y\xd3h\xcd\xf2\xd1M\xd0\x5c\xd7\xf5\xdbu\
+\xdb\x81e\xd6r\x89\xe0\x93o\xd9|\xd6\xf4\xdav\xdb\
+\x83\xd2\xf3\xd6_\xd5mC\xcdSQ\xd1`\xb3\xeb\xba\
+O\xd1_H\xcfX\xcf\xf2\xd3\x95\xe3\x9eN\xd1^l\
+\xd8y\xeb\xfa\xec\xe6\xf8\xe8\xc1\xef\xc7\xbd\xee\xc3\xda\xf5\
+\xde\xfd\xff\xfd\xf3\xfc\xf4\x83\xdf\x8f\xaf\xea\xb6\xe0\xf7\xe3\
+\xc5\xf0\xcav\xdb\x82\xf0\xfb\xf2\xfb\xfe\xfc\xba\xed\xc0`\
+\xd5o\xc2\xef\xc8\xe6\xf9\xe9\xbf\xee\xc5O\xd1^I\xcf\
+Za\xd6pr\xda~q\xda~\xe7\xf9\xeae\xd7s\
+B\xcdR\xd5\xf4\xd8\xb7\xec\xbeE\xceU@\xcdRz\
+\xdc\x86\xbc\xed\xc2\xc7\x19\xe3\xf1\x00\x00\x00\x1dtRN\
+S\x00\x00\x19SV\x15\x1c\xb2\xfe\xf5?\xb3\xf6\x16\xb1\
+>\xf7\xf3:\xfc\x8d\x0b\xe3\xec\xea\x8c)+\x09\xb3C\
+\xa1\x1d\x00\x00\x00\x01bKGD+$\xb9\xe4\x08\x00\
+\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x12)\xc3\xf6\
+ \xcd\x00\x00\x02UzTXtRaw pr\
+ofile type xmp\x00\x00\
+8\x8d\x95UK\xb2\xe30\x08\xdc\xeb\x14s\x04\x19\x10\
+H\xc7\xb1#k7U\xb3\x9c\xe3O\x83\x9c\xbc\xc4\xf1\
+{\xa9\x89\xabd\x0b!\x1a\x9aO\xd2\xdf\xdf\x7f\xd2/\
+\xffY\xd5\xc47\x1eV-\xeb\xa2\xac\x9b\x16\x13\xcaJ\
+Z\xd4\xb4\xe9\xce\x9dh\x1f\xdb\xb6\x0d\x22\xc8\x9b\x8aK\
+\x8aq\x91\xceY\xbaea\xe8VmI\xaa\xad\x86\x8b\
+\x85m\x95\xbd\x88\xe2\x0d\x83\xcc\xb8D\xc4\x83w\xca|\
+\xb3\xca+`qQ\xbb\x83\xe9B\xd9\xf7z\xd3\xdd\xd8\
+\xcf\x92#\xc0\x1b\xd1\xe1~\xf0:\x0f\x1e\xea\xe1\xc9\x97\
+\x19\xc86\xbf!\x8f\x1b\x94K\x95^r\x22wnX\
+\x88\xb8\xd0\xceJ\x1d\xfe,\xfe@b\xdc [\xb8p\
+ef\x82\xc6\x0dR\xe2\xec2\x1ax7\xac\x0b\xc3P\
+\x0f\xe1\xea\x1b\xacP\xa1\xf3CGx\x04/\x94\xd7B\
+\x22\xa2\xa7\xd0(\xc5\xa1\x87WM\xf0\xc0\x18\xc2\x19\x16\
+?\xda\x0dZ\xb4\x87\xc7\x16\xc8\xcd\x9f\xf0\x84\xb0\x12\xd6\
+>\x01\xe0\x91\xb1!?\xce\x88U\x84\x05\x04?\x7f\xf5\
+\x02. UH\x04i\x0b\xa6\x1a\x18\x82\xc6\xfd\x5c\x97\
+\x04\xc2\x86\x81X\xf7j\x12\xfb\x9c\x0b'X:R\xfd\
+\xe6s\x00\xee_iJ\xd8\x80l\xed\x08\xa7\xc2\xa7\xec\
+\x01\x80^\xbca\xb0\xdf\xb3\xf6d\x9cM\x8a\xd7\xd9\x89\
+\x90te\xfd{\xe3^\x89\x86\xe0\xa03\xdc\x9cq\xc4\
+C\xca\x09\xa5\x18\xf6\x9d\x97\xab\xc0>\x075a\xd3\x15\
+\xee\xdd\xe4\xc1\x8fS=@t\xf12\xf5\xb4H\x93\xe0\
+t\xea\xc0\x10\xc8G\xfa]Q\x08\xbd\x81\xca\x14Fj\
+\x1a\x92\xcb\x90DYJ\x09I\x8do\xe1\x06\xbdE\x16\
+\x992X\xc7.\x92\x94^\x90\xbd\x0c\xd8\x0bA\xdd\xdd\
+\xf2\x86\xdc\xa2m\xcf\xc0\xd5\x81\xd3\xff\x22\x1f\xcc\xad\xe2\
+5U@\x89x\xb9\x16I\x88~\xe8\xed\xad\x113F\
+\xc3\x08%\x8e\xaf\xec=)\xfc\xd4g\x99\xd0\xac1|\
+\xa2\x9c\xd3T\xa5\xf6\xa8\xe5W\x92K\xd4\xb2\x02\x1b\x1b\
+|{Q\xe4\xa7ZZ\xf5\xa0#}\xe2\x03\xa19\x13\
+Y\xd4GU\x84\x5c\xa5\x1c\x14\x14\x94\x15\x22\xc1\x5c(\
+\x09b\x09&\xd0\x90\xee<VWY\x82\x8fg\xe4\x0f\
+%\xe0\xdd\x7f\x81\x1c4_\x22\x7f\x07\x9c\xc8\xc7A\xb0\
+C\xe3\xe7^?k\xcd\xb9t\x97\xa6\xf7i<\x8f.\
+\xfe\x12\x10\xd2\x1c\xfeFs\x9a\xa7\x7fk\xe1n\xf4\xf3\
+\x1f\xe7\x80\x00\x00\x01\xb6IDAT8\xcbc`\x18\
+\x05\x84\x01#~\x80\xac\x8e\x89\x99\x05\x07`feD\
+R\xc7\xc6\xce\x81\x0bpr1\x22\xa9\xe3\x96\xc5\x09x\
+\x90\x14\xc2\xd4\xc9\xc9\x03\x81\x02n\x85\xbc|Pu\x8a\
+J\xca*\xaaj\xear@\xb6\xba:\x16\x85\xfc\x02`\
+\x11u\x0dM-mm\x1d]=}9Y}\x03C\
+#c\x0c\x85\x5c< \x01\x13S3ms\x0bK+\
+k\x1b[99;{m%\x079\xec\x0a\x1d\x9d\xb4\
+\x9d]LL\xf4]\xb5\xdd\xdc=<\xdd\xac\xbd\xbc\xbd\
+\xd5\xb1)\x94\xf3\xf1\xd5\xf1s\x90\x95\xf5\x0f\x08\x0c\x0a\
+\x0eq\x0b\xd2\x09u\x0b\xb3\x93\xc3\xa2\xd0$<\x222\
+\xc0\x04\xa8!\xcaM;:&6N;>!1\x09\
+\x9bB\xf9d\xad\x94TP\xd0\xa4\xa5kgdfe\
+[\xe7\xe4\xbac\xb5Z>\xcf&!\x1fdBA\xa1\
+\xb6^Q\xb1\xb9uI\x11v\xcf\x80L,\x05\x9bX\
+\xa6\x9d\xe1P^a])\x8f=x@n\xac\x82\xba\
+\xb1\xda!\x09\xb7B\xa0\xaf\xb5\xa3\x8b\x80&\x03}]\
+#oWkS\x87\xc3jY\x0fC\xed\xfa\x06\x8f\xc6\
+\xa6fm\xf3\x16\xb9\xd66\xed\xf6\xa8\x0eu\xec1\xd3\
+\xd9\xa5\xdd\xdd\xd3\xdb\xd7?a\x22\xd0\xa9\x93\xb4'L\
+\x9e\x12\x85-x\x80`\xaa\xf34\xad\xe9:\xda32\
+\x81\x0e\x999+a\xf6\x9c\xb9 \x85\x02\x98\x0a\x8d\xe7\
+\xcd_\xb0\xd0B{\xd1b\x90\x9f\xd2||\xbc\x97\x80\
+D\x05\x850\x14\xca\xca\x99\xc8\x17\xe5.\xd5^\xb6\x1c\
+\xcc\x91[\x01\xa2\x84ED1\x15\x82\x9d\xbar\xd5T\
+\x0f\x04\x17\xa4\x0e\xa1P\x009E\xabg\x9a\xa0\xa9\x83\
++\x14\x12\x13\xc7\x01$$E\x913\xab\xa8\x944\x0e\
+ %\x83\x96\xab\x89\xca\xfd\xa3\x007\x00\x00\xf0%\x81\
+`\xd6*Oa\x00\x00\x00%tEXtdat\
+e:create\x002023-03\
+-08T17:21:49+00:\
+00\xa3\xa1\xac\xac\x00\x00\x00%tEXtda\
+te:modify\x002023-0\
+3-08T17:21:49+00\
+:00\xd2\xfc\x14\x10\x00\x00\x00(tEXtd\
+ate:timestamp\x0020\
+23-03-09T06:18:4\
+1+00:00=\x00\x9f\x01\x00\x00\x00\x19t\
+EXtSoftware\x00Adob\
+e ImageReadyq\xc9e<\
+\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x05\xcb\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x012\
+PLTE\x00\x00\x00A\xcdRA\xcdRA\xcdR\
+A\xcdRA\xcdRA\xcdRA\xcdRA\xcdRA\
+\xcdRA\xcdRA\xcdRA\xcdRA\xcdRA\xcd\
+RA\xcdRA\xcdRA\xcdRA\xcdRA\xcdR\
+A\xcdR=\xccN?\xccPA\xcdRA\xcdRA\
+\xcdR?\xccPB\xcdRB\xcdS@\xcdQD\xce\
+U\x81\xde\x8c\xb7\xec\xbe\xb9\xed\xbf\x8b\xe0\x95G\xceW\
+F\xceWt\xda\x81N\xd0]t\xda\x80\xdf\xf6\xe2\x91\
+\xe2\x9b\x8a\xe0\x94\xdc\xf6\xdf\x83\xde\x8eZ\xd4h\xd7\xf4\
+\xdau\xdb\x82G\xcfX\xa7\xe8\xae\xb6\xec\xbd<\xccM\
+\xa4\xe7\xac\x9c\xe5\xa5\xf4\xfc\xf5\xd3\xf3\xd7|\xdd\x88\xa3\
+\xe7\xab>\xccP>\xccO\x90\xe2\x9a\xc5\xf0\xcab\xd6\
+p\xd9\xf5\xdcy\xdc\x85I\xcfY\xb2\xeb\xb9\xa8\xe8\xb0\
+=\xccN\x95\xe3\x9e\xc1\xef\xc7T\xd2ce\xd6s\xd0\
+\xf3\xd5X\xd3gQ\xd1a\xc1\xef\xc6\xa2\xe7\xaaN\xd1\
+^\xd6\xf4\xd9}\xdd\x89H\xcfY\xbd\xee\xc3\xd0\xf3\xd4\
+\xd5\xf4\xd9\xe1\xf7\xe4^\xd5mC\xceT\xaa\xe9\xb2\xd4\
+\xf4\xd8~\xdd\x8a`\xd5n~\xdd\x89\xdb\xf5\xdem\xd9\
+zH\xcfXW\xd3fJ\xcfZ@\xcdRp\xd9|\
+V\xd3e\xff\xff\xff@\xa6,*\x00\x00\x00\x19tR\
+NS\x00\x00\x01\x10\x80\xa4\xa3\xa5`\x9a\x99y\x96\x98\
+\xfbn\x86\x09Q\x8c\x89\x89\x89\x8bhy\xb4\xc5\xfa\x00\
+\x00\x00\x01bKGDe\xb5\xdd\x88\x9f\x00\x00\x00\x07\
+tIME\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\
+\x00\x02UzTXtRaw profi\
+le type xmp\x00\x008\x8d\x95\
+UK\xb2\xe30\x08\xdc\xeb\x14s\x04\x19\x10H\xc7\xb1\
+#k7U\xb3\x9c\xe3O\x83\x9c\xbc\xc4\xf1{\xa9\x89\
+\xabd\x0b!\x1a\x9aO\xd2\xdf\xdf\x7f\xd2/\xffY\xd5\
+\xc47\x1eV-\xeb\xa2\xac\x9b\x16\x13\xcaJZ\xd4\xb4\
+\xe9\xce\x9dh\x1f\xdb\xb6\x0d\x22\xc8\x9b\x8aK\x8aq\x91\
+\xceY\xbaea\xe8VmI\xaa\xad\x86\x8b\x85m\x95\
+\xbd\x88\xe2\x0d\x83\xcc\xb8D\xc4\x83w\xca|\xb3\xca+\
+`qQ\xbb\x83\xe9B\xd9\xf7z\xd3\xdd\xd8\xcf\x92#\
+\xc0\x1b\xd1\xe1~\xf0:\x0f\x1e\xea\xe1\xc9\x97\x19\xc86\
+\xbf!\x8f\x1b\x94K\x95^r\x22wnX\x88\xb8\xd0\
+\xceJ\x1d\xfe,\xfe@b\xdc [\xb8pef\x82\
+\xc6\x0dR\xe2\xec2\x1ax7\xac\x0b\xc3P\x0f\xe1\xea\
+\x1b\xacP\xa1\xf3CGx\x04/\x94\xd7B\x22\xa2\xa7\
+\xd0(\xc5\xa1\x87WM\xf0\xc0\x18\xc2\x19\x16?\xda\x0d\
+Z\xb4\x87\xc7\x16\xc8\xcd\x9f\xf0\x84\xb0\x12\xd6>\x01\xe0\
+\x91\xb1!?\xce\x88U\x84\x05\x04?\x7f\xf5\x02. \
+UH\x04i\x0b\xa6\x1a\x18\x82\xc6\xfd\x5c\x97\x04\xc2\x86\
+\x81X\xf7j\x12\xfb\x9c\x0b'X:R\xfd\xe6s\x00\
+\xee_iJ\xd8\x80l\xed\x08\xa7\xc2\xa7\xec\x01\x80^\
+\xbca\xb0\xdf\xb3\xf6d\x9cM\x8a\xd7\xd9\x89\x90te\
+\xfd{\xe3^\x89\x86\xe0\xa03\xdc\x9cq\xc4C\xca\x09\
+\xa5\x18\xf6\x9d\x97\xab\xc0>\x075a\xd3\x15\xee\xdd\xe4\
+\xc1\x8fS=@t\xf12\xf5\xb4H\x93\xe0t\xea\xc0\
+\x10\xc8G\xfa]Q\x08\xbd\x81\xca\x14Fj\x1a\x92\xcb\
+\x90DYJ\x09I\x8do\xe1\x06\xbdE\x16\x992X\
+\xc7.\x92\x94^\x90\xbd\x0c\xd8\x0bA\xdd\xdd\xf2\x86\xdc\
+\xa2m\xcf\xc0\xd5\x81\xd3\xff\x22\x1f\xcc\xad\xe25U@\
+\x89x\xb9\x16I\x88~\xe8\xed\xad\x113F\xc3\x08%\
+\x8e\xaf\xec=)\xfc\xd4g\x99\xd0\xac1|\xa2\x9c\xd3\
+T\xa5\xf6\xa8\xe5W\x92K\xd4\xb2\x02\x1b\x1b|{Q\
+\xe4\xa7ZZ\xf5\xa0#}\xe2\x03\xa19\x13Y\xd4G\
+U\x84\x5c\xa5\x1c\x14\x14\x94\x15\x22\xc1\x5c(\x09b\x09\
+&\xd0\x90\xee<VWY\x82\x8fg\xe4\x0f%\xe0\xdd\
+\x7f\x81\x1c4_\x22\x7f\x07\x9c\xc8\xc7A\xb0C\xe3\xe7\
+^?k\xcd\xb9t\x97\xa6\xf7i<\x8f.\xfe\x12\x10\
+\xd2\x1c\xfeFs\x9a\xa7\x7fk\xe1n\xf4\xf3\x1f\xe7\x80\
+\x00\x00\x00\xc7IDAT\x18\xd3c` \x010b\
+\x00\x88\x18\x13\x12\x00\x09\x0213\x0b+\x1b\x1c\xb0s\
+\x80\x05\x999%%\xa5\xa4e\xa4\x80\xa4\xac\xa4\xa4$\
+\x17X\x90[RRN^AQIYEU\x0d(\
+\xca\x03\x16\xe4\x95\x94R\xd7\xd0\xd4\xd2\xd6\xd1\xd5\xd37\
+\x80\x09\xf2HJ\x19\x1aI\x19\x9b(\x9a\x9a\x99[H\
+\xc1\x05e\x8d,\xad\xacml\xed\xec\x1d\x1c\x11*e\
+\x9d\x9c\xad]\x5c\xdd\xdc\xcd=\xac\x11\x82\xd6\x9a\x9e^\
+\xde>\xbe~\xfe\x01\x81H*\xdd\x83\x82CB\xc3\xc2\
+#\x22\xa3\xa4$y\xa1\x82\x92\xb2\x8e\xd11\xb1qV\
+\xf1\x09\x89\x92|\xfcP'IJ&II&\xa7\xc8\
+J\xcaJ\xf2\x09\x08\x82\x05\x85\x84E@@T\x0cH\
+\x88K\x08B\xfd\x8e\x19H\x94\x01\x00\x059\x1c\xdc\x03\
+n)\xb6\x00\x00\x00%tEXtdate:\
+create\x002023-03-0\
+8T17:21:49+00:00\
+\xa3\xa1\xac\xac\x00\x00\x00%tEXtdate\
+:modify\x002023-03-\
+08T17:21:49+00:0\
+0\xd2\xfc\x14\x10\x00\x00\x00(tEXtdat\
+e:timestamp\x002023\
+-03-09T06:20:50+\
+00:00\xdd\xe8\xb2\xde\x00\x00\x00\x19tEX\
+tSoftware\x00Adobe \
+ImageReadyq\xc9e<\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x16:\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed}[s[9\x92\
+\xe6\xfb\xfc\x0a\xad\xfa\xa5\x1dCB\x99\x89\xbc\xc1U\xee\
+\x89YW\xf4DGT\xc7l\xect\xc7\xee[\x07-\
+\x1e\xd9\xda\x96E\x05I\x95\xad\xfa\xf5\x0b\xc0$\x0f!\
+\xd2\xa4(SV\xd9S\x94\xabx\x90H\x5c\xf2C^\
+\x80\xc3\x03\x9c\x1f\xff\xed\xe3\xfb\xab\x93_\xba\xe9\xecr\
+r\xfd\xea\x14\x03\x9c\x9et\xd7\xe7\x93\xf1\xe5\xf5\xdbW\
+\xa7\x7f\xff\xdb\x9f\x87~z2\x9b\x8f\xae\xc7\xa3\xab\xc9\
+u\xf7\xea\xf4zr\xfao\x7f\xfa\x97\x1f\xff\xc7px\
+\xf2z\xda\x8d\xe6\xdd\xf8\xe4\xc3\xe5\xfc\xdd\xc9_\xae\xff\
+9;\x1f\xddt'\x7f|7\x9f\xdf\xbc<;\xfb\xf0\
+\xe1C\xb8\x5c\x10\xc3d\xfa\xf6\xec\xc5\xc9p\x98K\xce\
+~y\xfb/'''\xb9\xd9\xeb\xd9\xcb\xf1\xf9\xab\xd3\
+\x05\xff\xcd\xed\xf4\xaa\xf2\x8d\xcf\xcf\xba\xab\xee}w=\
+\x9f\x9da\xc0\xb3\xd3\x9e\xfd\xbcg?/\x8d_\xfe\xd2\
+\x9dO\xde\xbf\x9f\x5c\xcfj\xc9\xeb\xd9\x1f\xd6\x98\xa7\xe3\
+\x8b\xcc\xddw\xe6C\xacL\x98R:\x03:#\x1af\
+\x8e\xe1\xec\xeez>\xfa8l\x8b\xe6>n+J\x00\
+p\x96\xf3z\xce\x87q\xbd\xfcx\x95\x91\xf8lgj\
+\xeez\xeb\x19\xfd\x9b\xfc\xdf\xaa\xc0\x92\x10f\x93\xdb\xe9\
+yw\x91Kv\xe1\xba\x9b\x9f\xfd\xf4\xb7\x9fV\x99C\
+\x08\xe3\xf9x\xad\x9a%\xf8M\xbb\xcd\x88\x5c\x8f\xdew\
+\xb3\x9b\xd1y7;[\xd2K\xf9<\xa0\xe3\xf9\xbb\xac\
+\x0c\xe45\xf9\xae\xbb|\xfbn\xde\xa7/\xc7\xafN\xb3\
+|\xa4\xa05\xbd\xec\xc1\xcb\x95\x1aA\x88T\xb3\x96\xd5\
+\xaeg\xb1\xfc\xeb\xb8\xfb\xa5\xbb*\x0c\x8d\xe6\xb5\x95\x8d\
+'\xe7\xb9\x7f\xb9\xf7o'\xc3\x9bi\xf7\xcb\xe5\xe4v\
+\x16r\xb3\xbf\xb6\x15On\xe77\xb7\xf3\x7ft\x1f\xe7\
+\xdd\xf5\xa7\x9a\xb2dkb\xd6\xecZnE\xdch\xe7\
+\xcdh\x96\xdb9{7y\xdf\x9d\xdd\x5c^gy\xa7\
+\x93\xb3\xd1t\xfea2\xfd\xe7\xd9\x7f~\xbc{\xdb]\
+\x9f\xcd\xce\xa7\x97ong\xf9{t5zs\xd5\xb5\
+\xbd\xe8>\xdeL\xa6\xf3\xe1\xc5\xe5U\x97;\xbdQY\
+\xbe8\x9f\x9dMjM\xab\x1a\xceF\xe7\xf3\xdc\xe1\xd9\
+Y\x16\xf0:\xf7?\xdc\x5c\xbf\xddZ\xeb\xc7\xf1M\xd6\
+\x05t\xd8\x9a{\xb7\xca\xfdS\xce\xfeq\xdc]\xcc\xf2\
+\xf7b\x98J\x8a\x14\xbc\xe6\xe5\xdc\xaci\xddh\xfa\x1f\
+\xd3\xd1\xf82\xdbW\xa5\xadWy>\xb9\xba\xea\xce\xf3\
+P\x8f\xae>\x8c\xeef\xa5\xbdUUm\xd1\xc8\x9cj\
+\xa5\xb5\xda\xd9|r\xb3\xb8.\xd0\xce\xef\xae2\x04\x85\
+8\xcc5N\xa6/\xff\x00\xf5\xf3C%M\xb2\xc6]\
+\xce\xef^\xe2\x0f\xa7}\x99\xc9\xc5\xc5\xac\xcb\x0dW\x19\
+\xfbVk%\x91\x05OO\xce\xbe\xac5\xd8\xd6\x1an\
+o-\xaeZ\xfb\xf1\xac\x15{7\x8c\x9b(Q\x92\x03\
+P\xd2\xd8\xa5\x8b\x8b\xc7\xa2D\xc9\x0eB\xe9\xa2~\x1e\
+\x8b\x12\xa5\xb4\x03\xa5#+\x1b)\x9c\x1e(\xd8\xe3a\
+T\xfa\x9a0*\x1fO\xd9\x80\x0e@\xe9|\xdcu_\
+\x80\x12\xf0A(\x8d\xa9\xf3n\xfch\x94@\xf7\xa1T\
+R\xa3\xabm(\xfd\xdf\xbf\xfe\xfc\x97\x9f\xfe\xc1\xffX\
+U|\xfe\xf1\xd5){\x9f\xbc{u:\x84@\xb8F\
+\x9b\xbe:\x15\x09\xeb\x94\xb7\x8b\x9a\xff6\x1d]\xcfr\
+\x04~\xff\xea\xf4\xfdh>\xbd\xfc\xf8G\x08\xc9\x12\x0d\
+ \xff\x95K\x92\x01\xc6\x18\x00\x80\x06\x04\xc1M\xe9\xc5\
+F-\x7f\xbf\xbe\x9c\xe7\xc9\xc3\xed\xac\x9b\xfeW\x09\xc0\
+\xffy\xfd\xf7Y\xd7\x0e\xde\xb6\x81\xd8\x09\xb1\xd1O\x18\
+\x7f\xda\x06\x1fxQ\xe9}\xb5\x87(\x12w7\x11\xe5\
+\xdf_\xe3\xeb\xedM\xf0C\x9aPL\xbc\xbb\x09\xf8s\
+\x12\xf0\xedM\xe8C\x9a0\xb1}M\x80\xbf\x06\xd8\xde\
+\x84\xefo\x02\xf7\xd5n\xff\xfe\x99\xda\x13\xaciq\xa3\
+\xb0\xad\x16\x1f\xec2\xeb\x0c\xf2\xe5\xbbi\x97g\xbc\x7f\
+h\xf4}\xd9\x81\xb6\xe2\xa8\x94\x1e\xa8\x93\xfb\xf5\x1f\xab\
+\xeac\xc0\xe81Q\xca\xd7C\x84 h.\xf6\xa21\
+:4j\xac\xcet\x95\xbc\xb8\x97}Q\xb3\x1b{,\
+\xa3\x7fD\x98Z/\xa2\xf9\xb3\x0b0\xc2\xf8\x1b\x04\xcc\
+=\xb8\xa3\xc5\x066$\x0c\xcc\x84q\x03\xbd&\xa0\x1c\
+\x13\xbdH\x0a\xbb\xe2w\x04\xec\xab\xc1,G\x0c\xc6\xa4\
+\xb1\xb7\xf3\xbbLE\x091\xaa0\xf7\xbc\x94y=\xa4\
+\x98bL=o\xa6\xa2\x06\x1309T\x8dgy)\
+1\x1a\xff\xb5\x9b\xbf\x9b\xe4nfY\x8a\xa8\xbb\xc6l\
+^.\xaf\xf2:\xf7\x8f<\x80\x17=\x88y\xaa?\xef\
+\xa6\x0f\x07\xaf\xc6\x18\x04\x02\x03\x94\x05\xb9_i\x05\x02\
+F\x86\xd8\xcb\xf8\x89\x9f8\x89\xf6\xe0\xf5K\xb1\x90s\
+\x12R\x03\xfa\xa7.\xc5\xe8\xd6G\x92\x8b\xee?F\xb7\
+\xb3\xd9\xe5\xe8\xfa\x7f^\xdd\x96\xee\xee\xe9p\xe3\xdb\xc6\
+?\xe5e\xd7h\xbe\x5c\xb7\xb1\x8ah\xba\x1f\xa0\xdb\x16\
+b\xf4\xf5y\xe1\xa7.=\xa1\xde%\xd9\xa9w)\x1e\
+U?\xaa\xeer0i\xf5\x96\x03\x99\xb8\x1f\xa4\xb7O\
+i\x8e\xca\xc0\xbb`a8\xd0l\xaa\xe0\x988\xdc\x13\
+\x9cbH\xa0\x1e\x1b\xc1\x118\x904RK@\x91$\
+N\x0f\xf6\x8e\x10\x5c\x11Xc\xf1\x8d\x9e\xff\x178*\
+\xba\xda\x17\x9b \x8aE\x88\xbc\xc5\x04#\xb2\x82m\x98\
+\xa0IL\xa2\xdbLP\x04,\xe16\x1bd\x8eOb\
+\x83\x91\x84\x13\x8a\xef\xb6Af\xd9\xb0\xc1'\x8b\x9c\x91\
+9\xed\x8a\x9c,\xd2\xc44\xa3\x00\x04\x8e\xb1\x89l\xaa\
+\xa1t\x1bz\xde\x8b\xad\xbc\x17[y\xa7\x99\x08\x0f\x9a\
+\xaa\x8b\xa3\x92\xcb\x00\x83\xa9\x99Z7\xa4\xc1\x90\x82&\
+W\xe2TR\x10\xdc\xcd\x93\xd3 bH\x84\xce:\x90\
+\x90\x18\x13$~\xe0L\xfeic-\xd0.\xe3\x16\xc2\
+\x03\x8c\xfbp[\x0c\xa8\x18\x1b\x8b<\xc0y\x12\xc5\x10\
+\xc9\x90\x1a?\x221\x983J\xebG\x884\xa8\xb4\xee\
+S,\x90%\x8a\x94\x11~\xae\xa8BD\xfa\x18\xf7i\
+)\xa0\x11\xf1\x86\x0b5q\xe5\xd6\x85:\x04\x06\xe3V\
+x\xa5\x90$%M\xcf+\xbc?\xb5\xf0\x16Cr0\
+l\x85\x97\xc0\xec\x88\xf4\xb0\xc9Z\xb2<[{N3\
+$\x89\x0d\x02l!\xa9\xb3Q\x8b\x80\x06\x8c.h\x0d\
+\x02\x9c\x02a\xcb\x9b\xa9.\x81\xc9\xe4\x90)\xef~\x9c\
+\x86\x10d0t\x0b\xeaHL/\x9es\x95 \x11\xfe\
+{x\xaeg\x8b\xc5\x12\xf9h\x08C qU\xb0A\
+\xd1!Bb\xe3\x028\x19G.W\x8c\xa0\x808\x18\
+F\x09\x12\x13\xcb@ \x80\x88$iW\xb9C\xd4\xa0\
+\xea\xec\xed=9\xd7\xe0\xa4I\x9b)\xc16\xe6\x8b\x86\
+\xb9\x99\x13\xec\x06\xbb2q\x0cllJM}\x82A\
+\x12\xa5\x84M\xe3\xee\x01\x98\x1cR\xbb*\xe7\x90,1\
+j#\x95Y\x90\x18\xa3\xe1\x1e%\xdb\x8ft\xc6\x97\x93\
+\x22\x88\x16T\x19\x92S*\xa0[T\x90\xc4\xe5\xd2\xc9\
+AU\xb3nc0R\x8f2p\x0b\x9e\x0c\xc4\x1f8\
+g\xd9\xa57\x18\xd3C\xd4\x8fR\x82\xd3}z\xdc\x0f\
+\xc9\xf9\xd5\xe5\xcd\xff\x1a\xcd\xdf\xad7\xbc\xa4E\x8c\xfd\
+P.\x89{\xee\x9a\xde\x94\xba\xda[suB~\xf5\
+2\xff\xb4\xfc\xc7?l\xca\xf4\xe2\x87\x92\xbbv\xf7{\
+6\x9fN\xfe\xd9\xbd\xbc\x9e\x5cw\x8b\xeba]\x1e\xbc\
+D\x0d\x9c\x04\x00\x9c\x97\x19E\xf4,\xdf\xcb\xe9\xe4\xf6\
+z\xbcN\xfc\x7f\x93\xcb\xeb\x96\xfa\xfe2O\xc0\xaf.\
+\xf3\xd7\xcbU\xf1\xf1h\xf6n4\x9d\x8e\xee\x9a\xd6\x0a\
+\xb5\xdeg\xcc\x9c\x01eA\xee{\xb86\xef\xcf`\xfd\
+\xf5d\x98,DB\xc7\x01YH\x1cMN^\x9f\x0c\
+\x11,\x88\x22\xd2\x8a\x8a\x99\x88\x16,!\xc42\xafu\
+t4\xcdD\x92 \x22J\x83\x98\x828\x99R\xad \
+\xc6\x90\x89\xce\x03\xb6LN)\xc5B\xb4\xc0\xcc\xae\x03\
+\xf1@D\x8a\x0b\x22\xa6\xe2a\xd5\x83YbH'?\
+\xaf\x93S1L\x02\xc6RoOF\x80\xe0\x16\xcd?\
+5\x96\x18\xb0\x109 9\x15\x22\xa5\xe0\xee1\xf5\xc4\
+R\xafr0\x11\x8a\xd2\x93K\xbd\x0a\xc1 r\x92\xf5\
+*\xa4t\xd7S\x92Uc\x0d\xb1\xef\xd8\xcf\xeb\xe4^\
+\x8c\xd7\x95\x8c\xc9Me%2\xe5\xc60\x80\x83\x99\xac\
+\x83\xa3)\x13\x1d\x00[ M\x83\x0b\x89\xe3\x0a\xf4<\
+\x12n\x99\x978\xd9rx8m\x1b\xc8_O\xd6\xc7\
+\xb7\xb8)G@.\xd5&\x08\xc9\x89\xc5Wd\xc9\xd5\
+r\xd0\x18%c\xc3\x12\x12Z\xae\xd4R0e4-\
+\xae\xd7\xdcH\xb4\xf6\x8aC\x12\xb2,\x95\x04I\xae\x9e\
+I\x14\x04\x05-\x0d\x14\x83\xc7\x18\x9d*\x91\xc5R\xe4\
+\x82\x0a$\x00\xaa`!Q@\xb1hk\xe4\xd7\x0b2\
+\x00\xd2\xaa\x8a\xaau)h\x02\xd7e[\x96\x0a\x91\x83\
+[bn\xbb\x85\x08\x01\x10\xc0\x17\x02x\x92L\x84\x18\
+T\x11u%j\xdc\x8a\xca\xaf\xf7\x96\xc47\x9f\x9c\x88\
+\xf5\xe4\xfe'\xff\xeb\xc9\xb8\x9b\xdf\xddt\xb3\xecof\
+\xe7\xf53[\xfc[[7/\xbd\xce\x7f\xaf\x00\x92R\
+@F\xb6#\xc7\x8f\xf8\xd5\xe3\x07\xa5\xc7\xc4\x8f\xc3\xb4\
+e\xbb\xcemzit.`\xb3\xb4n:\x95q\x17\
+\xd3u7M \x81@\xd4\xd6\xdd4!eN m\
+\xbd\x0b\x11d\xb2\xb1\xaf{\x22\x22\x0e.\xa9wY\x0b\
+\x9aB\x22k\xbctOn\xbctO^w\x9cD\x18\
+\xa2\xb0\xd9\xba\x8b%\xb4\x10!\xff\xb5^\x1a\x85\x02j\
+rk\xbd4\xb2\x07D\xbf\xe7\xe8\x99\x83klBB\
+Ol\xbctOn\xbct%+F^s\xd2\xb5-\
+N\xc2\xd8D0\xd1 @\xca-\x8c\xa8\x1cH\x8dh\
+\xddI\xa3q\xe0d\x18{'\xdd\x8cc\xe3\xa5{z\
+\xe3\xa6\xd1<\xc4d\x90\xd6\xdd4\x1a\x05\xc8\x09\xeb\xdd\
+4\xaa\x054w\xbc\xe7\x0f\x95BT\x8bi\xcdO\xa3\
+\xa4\x90(9\xae\xf9\xe9J,\xa5\xac\xf5\xd3\x04)\x88\
+\x11`\xeb\xa7+\x19\xd9t\xddO\x13X@\x10Yw\
+\xd3\x04\x14(1\xf8\xbdn%\x0bLl\xd4\xb8\xe9\x84\
+\x01l- \xc5\x16\x95\xdeM\x1f2C\x8b\xdf\xde\x0c\
+\xed\x89\x03\x88\xc5 \x82\x84\xba-\x80\x807\x01Dc\
+\x00F3\xf9\xf2\x00\x82\x01\x81\xc1]\x06\xcbPQ\x97\
+}\xaal\x9c\xb4\x5c\xbak\x8cd\x83\xa2\x08\xccJq\
+\xa0\x14Hb\x02\xfd\xf2\x00B\x0cO\xb1\x00i\x0b\xaf\
+\xaf\xd6\x87\xc5\xb3*\x11\xb6\xb7\xa6\x14\x02\x03\x81\xb6?\
+\x83(\x070E^\xeb\x226\xbc\x07J\xbfy/\xc9\
+\x1f$\xbd\xaa\xf1\xa3\xa5?\xa8\x93\x15#o\xa0\x19*\
+4\xa0 H\xf0\x08\xc2\x0d(\x99+$\x16\x12\xdc)\
+/\xc7\x87\xddO\x8av\x94\xd1&\x0c\x10\x91\xa4\x11(\
+b\x88\xa6j\xde\x88e\x99\xd59\x817b!J\xe8\
+y\xf7\xdet\x83@1\x12Q\x1a`H(\x90\x18_\
+\x1cAK\x1e6\xc9Rf=\x0aj\xac\x81\xc8]R\
+\x03\x9b\xa4L\x15\x07ka\x0b\x9e,\x12Z\x03[\xcf\
+\xfbP\xd8\x94\xa2f\xd8\x8e\x03\x17~U\xb8\x9c\x02P\
+ri=\x8aq`6Sj\xe0\x1a\x92\x86\x14UI\
+[\x97\xc2_,69\xea\xe1b?\xbd/\xf1\xa01\
+\xb2\xb7\xe0`\xca(p\x8c\xda\x80#\x10\xc4A\xb9\xd1\
+\xa5\xc2\x0bI\xcdd\x87\xf0\xaa\x0e_\xc5\x91\xeeW\xe5\
+A<T\x85\xef\xa8\x8an\xe4\xc9\xa5\x8dJ\x14 \xba\
+!\xdd\x7f\x9a&a4lP\xeaYw\xa1\xc4\x0f\x0c\
+7\x1c\xbf\xa2\x8a\x18\x17y\x90\xadu7\x12\x22%\x88\
+\xb1\x95\x1d\xa9\x11\xbb\xe7\xda%v\xb4\x87\x89\x1d\xf18\
+Q\xc7\x03EI\xf7\x04\xc2\x18\x92\x22p#\x0fa@\
+\xc0\x94\x9a`Z\xa8\x908S\x8f\xf1t\x13\x04\xc6\x02\
+\x11\x0d (\xa6(\xec_\xeed\x95\x8d\x1e\xeam~\
+\xc7\xf4\xc1\x98\xc2\xd7\xc5\xd4\x02\x18@J-\xa6\x12\x90\
+\xd4\xdd\xbf\x13P\x95\xbf\x06\xa8\xfb\xc5\x1bZ\x107H\
+\xea\x83|\x19\x1d\x94\x85\xf6\xfcPy\x90\xf8\xfd\xa0\x82\
+\xb9\xf0\xc6\xa0z\xc2\x18\x0f\x19\xd4\x9d\xb0\x0a\xfd\x06g\
+\x1bCj\xc5\xa6\xd63\xb87\x82F\xda)!\xc2\x01\
+\x8f\xe4\xed\x95p\xef\xbd\x02\x0a\x22\x89]\xdbG~!\
+\x06q\x88=\xf1ce5\x80(\xcd#\xc4\x9b\xac\xe7\
+\x0d\xebv=\xbb\x19\x8d\x1f\xf2\x9b{\x88I\x85$\x0e\
+4$\x8f\xc8\x82\xdd0\x1656GNZ\x12\x18D\
+\x14=\xca\xa0\xfe^\xe0\xa4\x88\x83\xa1\xa6\xa0\xc9\x15\x8f\
+p\xab iz\x98\xca\xa9>^\xe5v\xe9\x03p\xbb\
+\x8fcs#\x802\xe8\xe9\xc1\xdb;\xc0\xb1\x8b\xdd\xc6\
+~\x9d\x93\xb3\xfd\xad\xf9\xe9\xc1\xbb\x18\xa2\xdb\xb8\xe3\x8d\
+\xd6\x8e\xb4UI\x99u?J\xec\x87\xa3tQ?\x8f\
+AI`\x1bJ\x87\xb7\x06\xc7CI#\xeeEIc\
+<\x1c%\x83h\x00\x8f@I\xa3\x1c\x8e\xd2\x9b\x0b\xe9\
+\x00\x9e\x0e%\x8e\xfbQby\x94.\x8d\xc7\xe7\x8fA\
+\x89\xed1\xba4\xbex\xf3\x84\xba\xa4z\xc0\xe6\xc0t\
+q\x8e\x17\xf4\xc8\xcd\x81\xaa\xea\xfbQ\x8a\xe8[57\
+\xc8n\x9c\xc4\xad{#\xfbFe\xb7+=\xa7\x91\xf8\
+\x03\xa4\xc3\xad\xd2\x19\x1coT\x8c\xf7\xeb\xae=&Z\
+\x00*\xfbct\xd7\x1e\x11-\x10G\xe9\xe9\xfc`\xa4\
+h\xfbP\xca<\xe9p\x94\xc6\xd2\xe9c\xa2E$\xc6\
+\xdfZ\xb4\xa0\x94`\x1fJ\x99\x87\x1e\x81\x92\x95\xbf\xc3\
+Q\xa2\x94\xf88(\xe1\x0e\x94\x0e\xdf\x0b\xd2n\xd5\xc0\
+'\xda.%*$N{\xb6j\xe0\x96\xedR\xcf\xb6\
+/\x88\xf0x\xbbB\x87\xf7\x9f\xc0\x8d&\xcd\xa3\xb7G\
+\xdeZ\xf4\xac\xcf\xd5\x12\xe1\xf1\x80\xdb\xfa`\xedp\xdb\
+\x93\xb5\x11\xe8\xd9\x9e\xac}\xce\x07\xc5\x89\x8e\xb8\xad\xef\
+\xf8[R\x9fu\xdb\x01\xc9\xef\xcf\xd0?\xb1\xad\xdb\xf1\
+l}\xfb\x86\xb4\xcf\xecG\xa3(\x01\xcc\xb1\xd9\x8f\xf6\
+U\xb6\xd6=\xe3\x86\xa3H\x94\xbe\x83=\xbc\xc7\xf7\x81\
+\x91~7\xf4\xa7=\xf2!\xf2\xb7\x7f\xe4\xc3W>W\
+\x84\xa2~{\xe7\x8a<\xabw\x8b~ `\xfb\xb7=\
+>\xd5\xce\xcbg\xc5\x89\xe1y\xb7\x9d>\xeb\xa4\x8e\xe9\
+\x98J\x82\xd1\x83d=y\x9a\xfd\xa9\xcf\x1c\x16\x99\x8f\
+\x0d\x95\xb9q\x0e\x84\xb0@\x22\xb5\xb8\xb9\x05Vg\xf5\
+\x06\xb7\xcc\x1d\x15\xd9I\xb4U2\xd4`\x05\xba\x069\
+\x04\xad\xd0\xe9\xf3\x22\xa7_\x179L\xfa\x09\xba\x069\
+\x8d\x9f\xb8\xa5\xc1M\xa8j\x9czk\x9c\x1a\x88\x98\xc5\
+\x9es\x9a\x00\x88\xcf\x11\xf2\x1cB\x8c\xc8\xdc\x04\xbe$\
+\xc1@\x10\xb0\x89\x7f\x9b\xbc\x17\x0do\x13\x0c\x9f\x17J\
+\xfb\x1d\xcacA\x99~\x87\xf2HP\xd2\xf1WZ\xc9\
+\x01\x19R\x01\xd2+\x9a\x9c\xc0\xf0+\x81\xf9\x9cS\x19\
+`h\xc3\xa7\x06aC\xdf\x98u\x08\xd3\xbd\xc5\xb8s\
+H\xac\xf7g\x1df!2D\xf3\xdf\xfe\xc9<p\xe0\
+\xdc\xe4p\x84<X\x8c\x9c\xeeO\xcb\xd4\xd0\x91\x9fW\
+t\x7fV\xd1\x1f\xf8P\xf6\xd00$\x89\x94\xe2\x8bg\
+EK\x8e\xe0qZ\xb9`)\xd7w\xa8[\xa2\xc7D\
+k\x88X\xc0J\x22\xdf9l\x0aG\x86\x0dW\xb0\xe1\
+\xf7\x0c\xdb\xb1\xb5\x8d\xd6`\xb3\xef\x176\xff\xddH\x0f\
+_\x94\x83\xe1W\x86\x8d\xa2\x7f\xe2hq\x13\x0e\xae\x22\
+\xd6\xe0\x86\x89\x83\x80\x89\xb4\xc0Y@\x06K\xf1Y\xf5\
+\xcd\xe2\xb1C(~\xcfjv\xdc{?\xc1I\x155\
+\x0db\x88\xec\x1a\xc9\x1f\x0f\x1a\x05\x92\xc4\xd8\xea\x98b\
+@WP]\xa0\xf6\xe3Yy\xd3I\xbd\xea\xcf\xed\x18\
+\xbd\xef\xc6\xbf\x5cv\x1f\xfa\xd7\xa1\xbc\x19\xadD\xb8\x19\
+\xbd\xed\xea\x13G\x19\xac\x8b\xfaYd\xbc\x99L\xc7\xdd\
+t\x99\xa5\xf5\xd3d-\x1eJZ\xbc\xb2\xa6\x1d\x9bR\
+\xeb*\x1f\xb6\xe7\xe7S\x05\xc6\x93\x0f\xd9\xd2\xeeg\xfe\
+:\x99\xbc/\xb5\xba\x1a\xba\xc9\xfd\xec\xba&\x14\x0b\x96\
+\x88\xe2Ffn\xcf\x83RL\xecx?s<9\xbf\
+-\xefS\x1a\xde~\x1a\xd3\x9b\x8f\x1b\xc5o\xa7\xd3\xc2\
+p5\xba\xeb\xb2\xd8\xf5\xabV\xd3\xbc\x0d\xa8\x96\xeb\xcf\
+\xc0mio\xa7\x97\xe3Y\x11\xfd\xfam\xee(o\xa3\
+\xdf\xdd\xa7w\xefo\x16Y=\x1c\xf9x\x85\x0f9\xaf\
+<*5\xba\x9au\xf7{Z\xb2\x867\xf9\x00\x87\x22\
+\xc8|z\xdb\xad\x17\xbb\xcdU\xf6\xe4\xa6\x5c\xcd\x1b\xbe\
+y3\xf9\xb8=\xff\xc3\xe5u\x1e\x95\xe1RX@\xfd\
+\x0c\xc7RvM\xf4\x19\x8e\xdcBT\xf8Lf\xc6@\
+m\xf9:\x9eF\xaa\xa5~\xcf\xef\xca;\x9b>\xde\x15\
+Zc\xb4\x85@\xb2f\xaa\x0d\xdc\xf7\xa9w-\xb5\x81\
+ze5\x9b\xc6R\xe9\xef\xbb\xf9h<\x9a\x8fz\xcb\
+YRH\x11\x97\xbd\x9f\x8e/^\xfe\xef\x9f\xfe\x5cR\
+5}~\xfe\xf2\xff\xe47&\xf5\xcf\xbb\x15\x86\xd1\x9b\
+\xc9mF\xab\x96Y\xf0\x8d\xcf_\x16\x8f1\x9a\xff\xe9\
+\xf2}\xb6\x87\xf2\xae\xac\x7f\xcd\xaf\xac\xca6\xbc\xcch\
+\x99\x0b \x99\xd0T;\xed>\xbd\x0bk\xdb\xeb\xc3\xf2\
+\xbf\xf7\x97\xa5\xd0\xd9\x7f\xcd\xf3\xe9!\x7f)\x8d\xac?\
+\xadx\xb6\xe8h&\xd4d/GN,\x05\xad\xa9\xb7\
+\xf7\xc60\xbf\xb7\xa9\xbbzu\xfa\xf3e~}\xd5\xd5\
+\xe4\x047\x95sr{\xf3~2\xee\x16&\xb4\xcc\x1f\
+/\xd2\x05\xba\xfe\xa8\xa1\x1d\x07\x0d\x95\xc3\x85\xfaO\xa3\
+\x05\xa5(\xb1{!\xf6G\x0cY\x0c\x84n2@\x0a\
+\xa8\xc2\xac\xf9\x04\x18\x09\x22\x98x\xa0\x18\x90\xcd\xbc\x1c\
+J\xc3A\xd4\xb5\x90\x5c\x22\x08\x9d\xe4l\x0a\x9e\x1cX\
+\xcbu\xe5\x19\xa8\xd4-_\xc2+~\x0d\xc8\x9a\xd8\xfb\
+J5\xb8\x10ai\xc8\xea\xc3z\x94[G\x09N\x12\
+1\xd7b\x1e\x80S\xb4L\xf4\xc0\x22v\xe2\x5c\xaf\x9d\
+\x9c\xe9S\x22\xe6\xc2\xf9\xc23k\xf9pN\x22j\x9f\
+\xce\xd5\x94\x12\xd1\x09\x96\x5c*~\x82\x04\xe5\xd22\xa7\
+\x06\x10\x04\xc1B\x1bx\xae\xa0^p)\xd9s1\x86\
+\xc4\x9ed\xad\xb2\x98BJ)2\xd7\x06\x19jGV\
+\xdf(!\xd5O\xae\xc6\xb9\x82\x0a\xee\x1aOL\xebI\
++>H\x81Y\x0d\xc4\xb7A_O\xb9\xd9~\xc6\xcd\
+\xc6Q\xec\x9b\xa7\x10\xd6\xe4\xf4\xf6\xaa{\xd9\xfd\xd2e\
+\xa5\x18\x7f\xfe\xd4\x1b\x0fJ\x18\xcd\xd3\x13\x9ey\xd3\x1e\
+ns\x1c\x05\x8e\x12\xe9w\x05\xfe\x86\x14x\xa9\x02\x10\
+HX\x1d\x95\x7f\xf8\xec\xb9M\x12\xf9\x1b\xd7\xe9\xfdv\
+\x1b\x01\xbfDF\xbc\xf9x_\xba7\xb7\xf3\xf9\x86p\
+U\x9e\x05\xb5m)\xd3?u\xac\x7f\xeb\xc7\x8b{\x16\
+\xa5\xa1\xe8s\x00%)\xda,\x81\x89\x12R\xa1!\x99\
+yV\x06\x0e\xd1\x15R*4\x8e\x89\x5c\x8b6\x14M\
+(F!\xa1jE\x0aJ\xb2P+\x0d\xacn\xab\xd4\
+B\xbbb\x00Ge?q\x08\xa0\x08\x96+\x84\xe0\xac\
+\xaam7~\xdd\xf4\x04d\xd4\x0e\xc1\x06\x87`j%\
++F\xaa\x82HE\xdd_\xd7dDT/f\x82\xc2\
+\xa2x\x82\xb5O\xae\x99E\x03\x92l\x10\xaa\xa1\xa6\xe0\
+qA\x82\x14\xad!V\x13\x5c$S\xf4\xd6\x04\x89@\
+\xb51AY\x94*\x06\xd8tp\x97-)2E\xa2\
+\x1f>\xabfB\xf8\x0d\x98\xd2.\xbdd^[0\xcf\
+?\xf3\x83\xd8\xb0|!y\x19\x98\x17\x0f4\xc8\xcd\xd7\
+L|CH\xfd\x1e\xfb\xbe\x81\xd8\xd7{ f;=\
+`\xb6\xb3\xdb\x9d\xc5t\x7f\xf8\xa9u\xd4\xb8\xc5Q\xc3\
+\xa6\xa3\xd6\xb4r\xd4x\xcfQC\xe3\xa8a\xe1\xa8a\
+\xcdQ\x9bn8\xea\xa6\x1b;\x9c\x96\x01#&\xb7\xcf\
+{\xad\x98\xe2o88n:!\x08\x1eQ\x19i\xe9\
+\x8c\xd0*z\xd5%\x993\xca\x8b\x9d\xc3\xbfk\xd87\
+[\x1bR\x09\x15\x84\xd1\xeb\xcbg\xa0(\xab$k.\
+\x1b\x16\xd4\x18\x10\x1dd\x80\xe2\x81]%\xbe\xd81<\
+\x9c@\xa3\xca\x8e\xa0\x12\xe1;\x08*\xdf\xfe\x94\xa0\x9d\
+\xe4\x90\xf7\xc4\xad/\x80N\xf0Y\x86\xbb\x05C\xaf\x82\
+o\x1f\x1a7\x01\xf1\x90CV\x9fd\xcc\xf7\xce\x0f \
+\xb8Br\x95\xb5\xb7\x81q2\xd3\x17\xed\x0d\xb2\xc8F\
+\x07\x9d\xe7\xdc.Q7\xdc\xbeq!7z\xe6\x18D\
+\x80y@\x18X9q\x1d[\x0b\x02\xc26\xb0\x18\x1c\
+4I\xaaz\xa2\x011i\xa6J`T\x01\xac\xb4\xc8\
+(\x03\xd3\xe0\xe4\x18\xad\x16\xe6z\x86\xb2y\xf5\xc9\x8a\
+\xa5\xca\xe2\xad)\x050W-\x95\xd5i6\x05U\xf0\
+\x9c\xf0\x9apAO5\xd5\xb3\xfe\x5c\xd3)\x05\xa2\x84\
+F9M\xc4\x1bi\xa1`\x06\x1e\x17\xfc\x1bi\x8a!\
+Q\xa2H\xb9\xe9\x9a\x86`\xd1\xa3\x94\xd688\x1b\xc6\
+\x12nH\x98<n\x82r\xd89\xbf\x80_\xb6\x96\xd2\
+\xaf\xbdP<{\xbb\xc3\xcaj\xe1\xed\x16\xb5\xcd\x1b\x13\
+\x91\xbe\xb8'P\x003\x83d\xcf\xe8a\xd1\xed\xc5!\
+fI \x81\xaa\x16\x0f1\xe8g\x8cS\xd3Q\x8d\x13\
+\xef\x1b'\x99o\x1a'!\x07\xdc0NB\x0a\xd6\x1a\
+g\xa5\xa5\xc68ka\xd80N2k\x8c\x93\x1c{\
+\xe3$\x97\xde8K\xaa1\xce\x9cn\x8c1\x12n\xa4\
+{c\xac\xfc\xf7\xd3\x8dq\x96to\x9c\xe4\xb8a\x9c\
+d\xbe\xdb8[\xcd\xddk\x88\xbbu\xd9\x9fU\x97[\
+#\xfd\xfc*\xb2\x11o\xfb$\x09\x98\x1f\x1e\x17!`\
+\xd5\x12\x16X~\xbe\xe6!\xe4\xb0\xfe\x89\xbao\xb5\xa9\
+ANP\x03\xca\xea\xc6\x90x2\x88\x95\xe8\xc5(N\
+\x8c\x83$2\xd4B\xe3\xa8,\x5c\x96J\xb5\x04Z\x80\
+\xf8i\xba\x94rMJ\x01k=\x1e\x10\x19S\xb2\x13\
+\xcd\x9c\x08\x964\xd3\x22\xb3\xd1\x89r\xb16\xc3\x94\x8b\
+0\x94ZT\x82\xf9b\xd2\x05\xa1^\xa9.HY\xad\
+3\xbf1\xc5\xba\xf2\x01\x8e,~\xc2\x10b\x04F^\
+\xacwN$\xf3\xcb2Q\x97\xac\x0a\x96\xe2\x8a\x94<\
+$6\xc0\xdc\xa1\x9c%\x80E\x1c\xd4\xdc\xbd~j\x97\
+\x93\xccu\x91\xb4\xfa\xc6\xb4\x84\xa6\xa6,\x90\x1a;\x95\
+\xfa\x05H\xa5\xe2\x04)\xa9\xd1=,\x7f=\xd9\xf2K\
+\x0d\x95Y\xd9\x97\xa9\xa2\xe9w\xac\x8a\x83\x02\x1f97\
+\xaaX\x89\xc2\xb8\xae\x8a\x85\xc6\xe0\xda\xab\xe2\xa0\xa8b\
+\x11\xb5\xaa\x22\xa7\xfc\xb1\x81R\x80dT\x15R\xd1S\
+\xac\xa4dN\xa2\x99\xc4\x80\x04\x99\x14\x83y\x82JR\
+\xe2Z\x90\x83D\xb6Z\xd08\xa2T\x12xD\xc6\x5c\
+=\x00\x8b\xd5\x82\x92H\x89\xfa\x16\xab>\x15\xef\xdd\xf7\
+\xcb\x17\xfdz\xbd\xde}[u\xbf\x17\xd3VbV(\
+l\x09E\xafmUHC7\xaa+x\x0f\x14\x93z\
+M\x10T\xf6\xe5\x22?-\x0b\xd7\x94-\x18\xd7k\xd2\
+EM\x0d\xf0\xf5\x1d\x16\xa5\x08\xc7\x90\x8c0\xa5O\xf5\
+1\xf7ID\xddH\xb7\xec}r\xdb\xea\x06X\xf7\xaf\
+\xa0\xfb\x9b(_n1\xf8\xbdZ\x8c\x07P \xb3:\
+z\xbd\xe3\x93\xa8\x5c\x07\xd8\xc0\xc0\xa8\xd0R23\xaf\
+j'\x86QW4+ZT\xfd\xdf\x1a\x89\x177\xc2\
+\x0a1-\x89\xbd+\xec\x89\xb5Bfd+4s\x82\
+j\x991&\xe7\xb8\xd1\xbf\xaa\x5c\x0b\xf5\xa9z\xc3\xb5\
+\x1a/6\x19\xb1\xd6\x9c,$fK<P\x0b\xae\xee\
+\x9a\xbbjAA\x0cy`\xb8p\xd6\x22\xc1\xb8t`\
+I*ec\x0a\x1e9!\xf5D\xe2\xcc\xe71\xe6&\
+R\x88\xa2\x1e\x8b\xd7\x0fHT\xca\xaa\x06Z\x86\x1d\x0c\
+\x8e\xb5\xab\xeb\x81G\x82\x19\x01\xf8`-\xf0`\x88\xe4\
+\x98p\xb0\x0c<\xb6\xecJ\x1f|R\xdf\xe1>\xf8T\
+\xa9\xd6\x83\x8f,\xa4oBP\xc1f\xab\xd1\x08\xef7\
+\x9aj5\xb3\x95\xc9\xd4i\xcf\x8f\xf9\x91\x8a\xfc\xf5\xff\
+\x01_\x1a\x15U\xdc\x8d\x00\x00\
+\x00\x00\x05:\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x04\xccIDATX\xc3\xb5\
+\x97]L[e\x1c\xc6wo\xbc\xd9\xe5\x12I q\
+\xd7&\xe3N\x13\xb8p\xd1\x85D\xbdP\xe3\x10\x18\xe5\
++.&J\x04'\x86\xaa\x8b\x99\xe0\xd0\xa2l\x19\x86\
+9\x17\xdc\x1a\x16\x98\x80@l\xa6C\xca +\x83\x1e\
+(\xcc\xda\xd1\x96\xd2\xd2J{\xfa\x01\xa5\xd0\xef\x16\x1e\
+\xdf\xff\xdb\x1d\xc7\xcc\x04*\x87\x93<9o!\x9c\xe7\
+\xf7<\xefG\x0f\x87\x00\x1c\xcaF\xcf\xbd\xfa\xe9\xbbL\
+Z&a\x0fj`\xca\xd9\xe9y\xd9\x9a?]P\xf2\
+\xa5\xc1\xe9\x8f\xa7W\xc3@0\x02\x84\xa2\x19\xad\xc72\
+\x8a'\x81X\x22s\xbfyk\xdaK\x10r\x02\x1c{\
+\xe7\xac\xda\x1c\xd8\xc8\x98\x12@\x84\x99\x85\xe3\x19\x911\
+)\x1aKa%\x94D8\x9aBs\x87\xc6\xbe\x13\xc4\
+\xff\x02\x90\x12\x93y$\xf1\xc8X\x92\xcf\x1f\x84]\x8c\
+\xc2\xe5\x09\x22\x12K\xa3\xf4\xc3\xefM4uY\x01\xb0\
+\xeb\xd86\xd5\x90\x9e:\xfc\xcc\xb9\xe7_.\x11?V\
+\x9eEEU\x0d*\x99\xde\xaf\xad\xc3\x9d\xb1\x89\xc7\x00\
+\xac\xb6%\xfc\xb9\xe8\x87k\x15X\xf6\x04\x10\x08\xc6\xd2\
+\xaf\x9c\xbep\x9fA\x1c\xd9\x15\x80]\x87\x99\x1a\x8a\x8a\
+\x8a\xcc\x92Z[[\xdd\xa4\xafU\xad\xfe\xafT\xdf\xa6\
+\x06\x06\x06195\x85\xd9\xb99\xe8&&PPP\
+\x80!\xcdo|\xdeI\xa6\xf9\x05\xcc\x98\x5c\x1c\xc0\xe1\
+OA\xf4\x85\xf0C\xaf\xce\xcd\x00j\xf6\x02PCf\
+\xd8\xe5\x8a\xc7\xe3\xf0z\xbdH\xa7\xd3\x98\x9c\x9cDe\
+e5fg\x8d\xbc\x81\x07f\x1bt\xd3\x16\x0e@2\
+-x\xf0\xdd\x8dQ\x8f\xac\x00\xe1p\x18F\xa3\x91\x8f\
+S\xa9\x14~\xea\xedE\xe3'\x9fa\x86A8\x96\xdc\
+Pwu\xe3LC#\xce5\x9d\xc7\xed\x91q\x5c\xbc\
+>,/\xc0\xc6\xc6\x06\xf4z\xfdc@}}\xfdP\
+2\x88\xd0F\x1cf\x9b\x0b\x82\xc1\x88\xa9\x19\x13\xac\x0e\
+\x11\x97\xbadn\x80\x00\xa6\xd8:\xd8~E\x22\x11\x94\
++*0\xae\x13@\xe7\x04mW\xda\xaa4\xbe|S\
+\xe65@f:\x9d\x0e\xc3\xc3\xc3\xe8e\xf5\xf7\xf7\xf7\
+C\xab\xd5\xa2\xaa\xba\x06cw\xf5\x90\x0e*w\x90\xed\
+\x04\xb6\x0e\xda\xbbe\x06\xa0y\xb7\xdb\xed\x18\x1a\x1aB\
+gg'zzz8PIi\x19ni\xf5\x10\xd7\
+\x00o\x08\xb0\xf9\x00g\x00\xb8\xd0%3\xc0\xd6\xd6\x16\
+\xdf\x09\x81@\x00\xa2(\xc2\xef\xf7cmm\x0d\xa7\x14\
+\x95\xd0\xfc\xae\xe7\xa9\xc9|\xc1\x0b\x98=@\x9b\xdc\x00\
+\xdbA677\xf9v\xa4V\x14\x15\xd5\xe8\xfbU\xe0\
+\xa9\x1d\x81G\x00\xe7;\x0f\x00\x80\xcc%\x80$3O\
+$\x12(+\xaf\xe2\x00\x7f\xb8\x00\x8b\x98\x01\xa06Z\
+\xd5\x070\x05\xff\x98'\x93<=MI\xc9\xa9J\x0e\
+\xa0\xb7\xb3\x03\x89=\xc5\xf8\x170\xb1\x00|q\xf5\x00\
+\x00\xa4\xea\xc9\x98\x14\x8b\xc5P\xa6\xa8\x82zH\xc0\x98\
+\x19\xb8k\x05\xe6\x9c\x99\xfb\xe7Wd\x04\x90\xd2Sj\
+\x02\x88F\xa3\xdc<\x14\x0a\xa1\xb8\xb4\x02\xd7\x06\x05\xdc\
+f\x87\xe4\xa0\x01\x1cd\xc4\x04(;d\x06H=\x9c\
+s\x12\x99\xd3\xb9@ \xc5eU\xb8\xd8-\xa0\x7f:\
+c\xae}\x90i\xe0\xa3v\x99\x00\xfe]=\xa5&\xad\
+\xae\xaer\x88\xb7J*p\xb9W\xc0=\x1b\xb8~\x9e\
+\x01\xee\xcc\x03g.\xed\x13@\xaa\x9dD\x8b\x8e\x92\xd3\
+qL\xdf\x01+++X__\xe7\x10'Y\x03\xdf\
+t\x09PO\x00\xbf\xcce\x1a\xb82\x064\xec\xa7\x01\
+\xc9X\xda\xebdNi)9\x1dD\x04@\xf5\xd3\xcf\
+\xde|[\x81\x96\xeb\x02O~u\x1c\xb8q\x0f\xf8q\
+,\x9e~\xbdNm\xa67\xaa\xac\x00\x9ed,m7\
+2%\x00\xd1#\xf2\xe4\x12\xcc\x1b'\x15h\xef\x11\xa0\
+\xbcf[\x7fO5\xe2<q\x9a\xbf\x8ei\xf7\xfcJ\
+&\x01\x90\xa9$i\xb5SB2\x0f\x06\x83p\xb9\x5c\
+\xdc\x90^J\xe8\xb3\xc7\xe3\x81\xdb\xed\xc6\xf1\x13\xaf%\
+\x9f}\xa1\x9cL;\x98\x8a\x99\x8e>\xc9xG\x00\x95\
+J\xc5\x01\xa4\x15.\xcd7\x19RR:\xf7)\xb5\xc3\
+\xe1\xe0\x22\xe3\xc5\xc5E\x0e\xf5\xe2\xf1\x97\x5c\xf4\x1e\xb9\
+\x93\xe9\xae\x00---n\xe9`\xa1\xd4\xd2\x97\x0d\x8d\
+\x97\x97\x97\xe1\xf3\xf9`\xb3\xd9\xf8}ii\x89C\x10\
+\x00\x8d\x0b\x0b\x0b\xcd\xb2\x00\xd0\xa2\x92R\x93\x11\x8d\xe9\
+N\xdfxT;5`\xb5Zy\xf5\xd4\x0a\xfd\xce`\
+0$\xf2\xf2\xf2\xee\xb3g\x1c\xd9\x17@SS\x93[\
+\x9agJO\x22\x13\xaa\x9a\xc6\x16\x8b\x997@\x9fG\
+GG#mmm\xde\xfc\xfc|\x13\xfb\xdbA\xa6\xb2\
+\xbd\x9a\xff'@ss3\x9f\x02JG\x10T?U\
+???\xcf\xeb\xd6h4\x91\xba\xba:\xe7\xc3\xb4]\
+L\x1f0\x1d\xcd\xc6xG\x00\xa5R\xe9v:\x9d\xbc\
+bJJo>\x94\xb4\xbe\xbe\xde\x99\x93\x93#\x99\x16\
+gSuV\x00\x8d\x8d\x8dn\x8b\xc5\x82\x81\x81\x81H\
+mm\xad377WV\xd3\xdd\x00\xf8\x7fFL\xc2\
+A\x99n\xd7\xdfC9V\x18\x85p\xc8\x04\x00\x00\x00\
+\x00IEND\xaeB`\x82\
+\x00\x00\x04_\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xc8\
+PLTE\xe1\xe1\xe1\xda\xda\xda\xdc\xdc\xdc\xdb\xdb\xdb\
+\xf8\xf8\xf8\xff\xff\xff\xe7\xe8\xe8\xeb\xeb\xeb\xeb\xec\xec\xec\
+\xed\xed\xed\xee\xee\xee\xee\xee\xee\xef\xef\xef\xef\xef\xef\xf0\
+\xf0\xf0\xf0\xf0\xf1\xf1\xf1\xdd\xdd\xdd\xf4\xf4\xf4\xd7\xd7\xd7\
+\xd8\xd8\xd8\xd9\xd9\xd9\xdb\xda\xdb\xda\xdb\xdb\xcc\xcc\xcc\xe2\
+\xe2\xe2\xe8\xe8\xe8\xec\xec\xec\xf1\xf2\xf2\xd6\xd7\xd7\xea\xeb\
+\xeb\xe5\xe7\xe5\xd0\xdd\xcf\xe6\xe9\xe7\xed\xed\xed\xea\xea\xea\
+\xf3\xf3\xf3\xe9\xea\xea\xdd\xdd\xde\xde\xe6\xdf\x9e\xc5\x97\x82\
+\xb7{\xdf\xe8\xdf\xf2\xf3\xf3\xf3\xf4\xf4\xf4\xf5\xf5\xf5\xf5\
+\xf5\xf5\xf6\xf6\xed\xec\xed\xb8\xc9\xb7\x8c\xbc\x80\xa7\xd0\x87\
+\x8b\xbd}\xdd\xe7\xde\xf4\xf4\xf5\xf6\xf6\xf6\xf6\xf7\xf7\xf7\
+\xf7\xf7\xf5\xf5\xf6\xf0\xf2\xf1\xaf\xcd\xad~\xb4e\xa6\xd0\
+t\xb6\xd9\x81\x81\xb5r\xde\xe8\xdf\xf6\xf6\xf7\xf8\xf9\xf9\
+\xf9\xf9\xf9\xf1\xf1\xf2\xe5\xeb\xe6\x92\xbb\x85|\xb4I\x9d\
+\xcbR\xa3\xd0U\x9e\xcbSs\xa9\x5c\xde\xe7\xe1\xf8\xf8\
+\xf9\xfa\xfa\xfa\xfb\xfb\xfb\xf3\xf2\xf3\xdc\xe6\xdeu\xa7_\
+r\xad\x1a\x90\xc9\x19\x95\xcd\x1a\x8a\xc5\x13d\x9e;\xde\
+\xe7\xe2\xfc\xfc\xfc\xf2\xf2\xf2\xfa\xf9\xfa\xe1\xe9\xe3\x87\xad\
+uu\xae\x16\xa6\xdf\x0a\xa0\xd9\x0ag\x9d4\xde\xe6\xe2\
+\xfc\xfb\xfc\xfd\xfd\xfd\xde\xde\xde\xf9\xfa\xfa\xfd\xfc\xfd\xeb\
+\xed\xed\x92\xab\x8fu\xa6.\x95\xcc\x08i\x9b0\xdd\xe5\
+\xe2\xfe\xfe\xfe\xf2\xf1\xf2\xe1\xe0\xe2\xc5\xd2\xc9j\x92K\
+N|1\xdd\xe5\xe1\xe2\xe7\xe4\xa8\xbb\xac\xef\xf2\xf0\xde\
+\xdf\xdf\xf9\xf9\xf8\xf0\xf1\xf1\xdc\xdd\xdd\xdf\xdf\xdf\xd0\xd0\
+\xd1\xd2\xd2\xd2\xd3\xd5\xd6\xe1\xe2\xe3\xd4\xd4\xd5\xc5\xc5\xc6\
+\xcc\xcd\xcd\xc8\xc9\xc9\xe0\xe1\xe1\xbc\xbc\xbd\xe3\xe4\xe3\xd9\
+\xda\xd9\xdf\xe0\xdf\xe5\xe5\xe5\xe6\xe6\xe6\xbc\xbd\xbd\xd5\xd5\
+\xd4\xd1\xd3\xd4\xc5\xc7\xc7\xe5\xe5\xe4\xd3\xd3\xd3\xe0\xe0\xe0\
+\xdf\xe0\xe0\xd9\xda\xdb\xca\xce\xd0\xe2\xe3\xe4&\x9b[?\
+\x00\x00\x00\x01bKGD\x05\xf8o\xe9\xc7\x00\x00\x00\
+\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0k\
+B\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x14\
+2\x1f\xc9N\xa7\x00\x00\x01[IDAT\x18\xd3M\
+\xd0US\xc3@\x18\x85\xe1\xcd6\xa1JH\x03\x05J\
+\xd1\x12\x8a\x14\x82S\x82KpIq\x08\x0e](\x1a\
+\xdc\x83\xbb;\x7f\x97\xdd\x0c\x17\xbc\x97\xcf\xec|;s\
+\x00\xa0\xe0\xbfL4\x83\x03T\x84\xd9b\xb5\xd9\x1d\x91\
+,\x1b\x15\xc59y\x03\xa1\xd9\xc6Z\xa2c\x5c\xb1\x14\
+\x15\x17g\x8a\xa7\xdcn\x90\x00\xa0\x87M\x8cHJN\
+IM\xb3x\xac^\x8f\xd7nO\xa7\x00\xb4qB\x86\
+/3+;\xc7\xef\xcf\xe5\xf3D1\x9f\x83\x00:\x04\
+\xb1\xa0\xb0\xa8\xb8\xa4\xb4\x8c\x17\x03\xe5\x92$\x09\x18\xd9\
+\x8a\xca\xaa\xea\x9a\xda\xba\xfa\x86\x80D7\xca\xb2\xcc;\
+\x01ljnimk\xef\xe8\xec\xea\xa6e\x05\x17\x14\
+1\xf6\xf4\xf6\xf5\x0f\x0c\x0e\x0d\x8f\x10\xc0\xa9\x01\x8c\xa3\
+c\xe3\x13\x93S\xd33\xb3!\x0c8$\xcd\x01(\xcc\
+\x87\x17\x16\x97\x96WV\xc3D\x10\xd2h\x8c\xbc\xa2\xae\
+\xadolnm#L\x9a\xa612\xc1\xa0\xca\x81\xd0\
+\xce\xee\x1e!\x06k\xe3\xbe\x81\xa3@\x09i*y\x86\
+\x0ex\xe1\xf0\x08@\x91 \xf9\x03c\x90\xd3\x8fON\
+\xcf\x08\x22\x03\xb1!\xee\xfc\xe2\xf2\xca\xa7bT\x91\xf0\
+\x87\xf2\xf5\xcd\xed\xdd=b\x80\x13<<\x9a\x5c\xaa\x81\
+\xe2\xc9\xd33\xd0\xf0\x9e\x8a$\xd1\x1e\x9d\x5cd\x18\xfe\
+\xe5\xf5M##\x93\xa5\xc5w]\xd7?>>\xbf\xbe\
+\x7f\x881\xbf\xe0\xd3^\x99\xad\x16c\x0b\x00\x00\x00%\
+tEXtdate:create\x00\
+2023-03-08T17:27\
+:26+00:00\x9e\x98\xa5\x85\x00\x00\x00\
+%tEXtdate:modify\
+\x002023-03-08T17:2\
+7:26+00:00\xef\xc5\x1d9\x00\x00\
+\x00(tEXtdate:times\
+tamp\x002023-03-09T\
+06:20:50+00:00\xdd\xe8\
+\xb2\xde\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x08\xab\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x07tIME\x07\xe7\x03\x09\x07\x084\x11\x1f\xdc\
+\xf8\x00\x00\x07fIDATX\xc3\xbd\x98\xcb\x8f\x14\
+\xc7\x1d\xc7?]\xd5=\xd3\xc3\xee\xcc\x02\xfb\xf0.O\
+\x11;<\x9c\x04\x93\x98\x87,[\xa0$(\x87X\x16\
+9p\xc8\xe3\x1a)\x87\xdcsD\x11\xffD\xfe\x03K\
+Q\xe2(H\x91\xa5\x90\xd8rp\xf0\x22\xe2\xc4ka\
+X\x83\xd8\xdd\xc0\xbe`\x96\x9e}\xf5tOwuU\
+\xe5\xd0\xd3\xc3B\xd8e\x0d\x83K\xaa\xe9\xae\x9e\xee\xea\
+\x8f\xbe\xbfWU;<G;r\xe6\xdc\xaf\x81S\xc0\
+.\xa0\xb4\xc9\xc7\x16\x80\x7f\x00\xef\x02\xf5\xb1\x0b\xe7[\
+\x1b\xdd\xec>#\x98\x00\xfcjO\xe5\xed_\xfd\xfcG\
+\x87\xf6\xec\x18\xdc\xe6J!\x1c\x07\x1c'\xbf\xc7\xe9\xfc\
+\x80'\xc0\xda\xfc\xbf0j\xed\x1e\x9f\x98\x1d\xfa\xdd\xbb\
+\x1f\xd4\x81\xf7\x81{]\x07l\xab5\xf4\xd2@\xdf\x9e\
+\x97\xf7\x0e\x0f\xbc\xb2w\xb8\xc7\x95\xc2\x01p%`\xe9\
+P\x0a@\x0a\xb0\xc6b\xac\xa5\x19\xa7[\xfaz+=\
+c7\xee\xfcxz\xbe\x11q\xe6\xdc'c\x17\xce\xdf\
+]\xefE\xe2\x19\x01=\xa0\x7f`{\xcd\xab\x94K\xd2\
+\x95\xc2\x11\x0e\xfc_'?Z\x0bZg$i\x86#\
+\x84\xdc\xbb\xa3\xbf\xe7\xad\xa3\x07\xde\x1c\x1e\xec{\xa7\xd6\
+[9q\xe4\xcc\xb9\x81n+\xd8iR\xe4\xddiC\
+\xc1\xc3\xe3\xda\x96\xa4\x09-\x05\xca8H\xab\xf8\xc9\xe9\
+\xd7\x87\xa7\xe7\x1bo\xd6\x83\x95l%\x8c\x15\xf0\xe7'\
+\xcd\xef\xb0q\xdb\x01\x8c\xac\x19\xef\x07\xaa\xd2\xab\xf8~\
+u`\xe8\xc8\xf1S\xbf<rp\xd76\x89*\x85\xe1\
+*\x0e\xd0\xdb[\xe5\xe4\xc9S\xbcv\xe4\xbb\xec\xdc\xb9\
+\xab\xf3\xe0\xc2B\x9d(\xd58\xee\x16\xb6\xf4\xf6!\x92\
+\x00\xaf\xe4\x9b\x8b\x97\xaf\xd7\x7f\xff\xfe\x95\x0f\xa6\xe7\x83\
+\xdf\x8c]8?\xb7Y\x05k\xc0\x1b\x87\x0f\x1f>9\
+<<\xfc\xad\xe2\xe2\xa1C\x87\xb6V\xab\xd5\x92\xb5H\
+m\xf1\x91~m\xdf\xee\x11w\xeb\xd6\x1a\xbe_\xc6u\
+]\x94\xca\xf8\xe7\xc7\x1f3;;\xc3\xa9\xef\xff\x80\x03\
+\xfb\x0f\x00\xa0\xb5&S\x0a\x87\x0c\x80L\xf6 \x8cv\
+F\x06\xfb*G\xbf\xf3\x8d\x1d\xd3\xf3\xc1\x1b\xc0{\x9b\
+\x05<|\xf6\xec\xd9\xb7O\x9c8\xf1\xd6\xbe}\xfb\xf6\
+\x14\x17\x87\x86\x86\xbcr\xb9,\x00\xacEhc\xcb\xb5\
+Z\xaf\xa8T*\xb8R\xa2\xb5\xc6\xf5<\x16\xea\xf7\x09\
+\x82E\xc6>\xfb\x0f\xfd\xdb\xb6308\x08X\xb2L\
+\x03*7\x9d,\x91\xb4V\x1d\xc7qdO\xa5\xec\x03\
+\xfdO\x02Y\x0f\xf0\xd5\x83\x07\x0f\x1e=y\xf2\xe47\
+\x8f\x1f?\xde\xfb4?\xcc\xb2\x8c8\x8eYYYa\
+dd\x84\xd3\xa7O\xf3\xc9\xe8(w\xefL3~\xe3\
+:\xdf;z\x0ckA\xa5\x09\xcd\x95\x90V+FJ\
+\x17\x89&\x8a\x22\xb4\xd6\xeb\xba\xdas\x07I\xae\xa6%\
+MS\x96\x96\x96\xd8\xb9s'\xbbw\xef\xe6\xb5f\x13\
+\xa52>\xba\xf4\x11\xfd\x83\x83\xd4\xaa5\xe2\xe627\
+\xc7o011A\xadV\xe3\xd0\xab\xdfF9=h\
+\xad\xd7\x9d\xbbk\x80Zk\xe28\x06@J\xc9\xfe\xfd\
+\xfb\xe9\xeb\xeb\xa3V\xad\xf2\xa7\xf7\xfe\xc0O\x7f\xf6\x0b\
+^~e?\x03C/\xf1\xfa\xd1\xe3\x18+\xa8\xd6j\
+L\xdf[\xe6\xbf\xf5\xf5\x8bIW\x00\xd7\x82v&v\
+]\xfa\xfb\xfb9v\xec\x18\x7f\xbdx\x91;w\xee\xe2\
+o\xa9\xb1\xbd\x7f\x98\xdaV\x8dp\x1c\x84\x94<X\xc9\
+\x90R\xda\xf5\xe6\xec\x0a\xa0\xd3\xaeo\xc6\x18\xa6\xa6\xa6\
+H\xd3\x14k-\x8e\xe3 \x84@)E3\x8a\xc8\xb4\
+\xa6T\xf6)\x01\xda\xe4\x09\x1c\xc7e\xa3z\xd15@\
+)%\xae\xebr\xfb\xf6m\xc20\xc4\x18C\xb9\x5c\xa6\
+V\xab\xb5\xe1-\xc6<\xac\xc9I\x9em\xc8\x0ch\xbb\
+\xfe\xdc\xcfZ\xea\x1e\x9dD\x08|\xdf\xa7\xbf\xbf\x9f$\
+I\x88\xe3\x98$I0\xc6\xe0y\x1ei\x9a\x92d\x96\
+T\x83j\xf7$\xcbU,\xfa\x0bUP\x08A\xa5R\
+add\x84j\xb5\x8a\xd6\xbac^\xd7u\x91\xae\x87\
+\xb5\x0e\xc6\xe4p\xa9\xce\x95L\xb2|\xbcQ\xebZ\x90\
+8\x8e\x83\xe7y\xd4j5\x8cyT\x12\xe1\x082\xe3\
+\xa0\xda`B@\x91Y\xb4\x814\xfb\x9a\x00\x8bn\xad\
+}\xac\x83\xb1\xa0\xb4C\x92\xe5\x80\x00n\xb1\xd0\xd8\xc8\
+:\xdd\x02\x84G\xd3\x8cm\x8f\xad\xcd\xd7\x81\x90\x07D\
+K\xe5Gc\xdbQ\x0c\x1b\x12vM\xc1\x02\xceZ\xfb\
+\x88\x89\xd7\x02j\x03\xca\x80\xdb\x0e\x8c(\x85\xe5\xf8k\
+2q\x01S\x00\xae\x05\x16\x227m\x94B)\x818\
+\x85\xder\xae\xe2\x0b\x8f\xe2\xb5 \x8f\x9f\x17%P\xeb\
+<\x07j\x03\xad47\xb1\xc3\xc3\x94\xb3\x11`W|\
+p=\xe5\x8ajb\x81D\xe7\xfe\xa7t\x1e\x18Ez\
+\xb1\xe4\xc0/\x14p-P\x96e\x18c:\xb0B\x08\
+\xc0!\xd3y\xc5\x90\x02\xb6\x94\xf2\x5cX\xec\x00\xcd\x06\
+\x95\xe4\xb9L\xbc\xd6\xac\xc58M\xd3\xce9\x80\xe7y\
+\x18cpE\xeew}[\xf2{\x9ba\xbew)\xca\
+_W\x01\xd7B\x15J\x19cPJ!\xa5D)\xd5\
+\xc9\x89I\x92\xe0\x08AK\xc1\xfd\x15\x88=\xa8\x96\xa1\
+\xaf\x02sK\xd0h>y\x93\xf5L\x80\x8f\xab\xb5\xd6\
+\xf7\xb4\xd6XkQJa\xad\xc5u]\x5c\xd7E\x08\
+\x811\x86\xccX\x84\x03\xd2\x81\xc5(\xf7G\xa33\x13\
+\x85+i}\xe1\xc1\x22p\xabk\x80\x8fG\xac\xd6\x9a\
+,ko\x86\xb2\x0c)eG]c\x0c\xd6X\xa4\x03\
+q\x1c\xeb\xb8\xfe@\x85\xcdf\xda\x5c]N\xe38\x8a\
+\x1e,\xd4\xa7\x1a\x8d\xe0_\xcf\x0c\xf8\xb8jk_\x5c\
+\xa8\xa3\x94\x22\xcb2\x5c\xd7\xc5\x18\x83lo\xa0\x8a\xae\
+Tf\x97\x17\x83\xa4\xc9\xf4r\xac\xfd \x8d\x16\x17\xee\
+\xdc\xbd[_l\x04\x0f\x92\xa4u\x0b\xf8\xf4I[\xce\
+\xa7\x02>\xa9*\x14\x8b\xd3b\x1f\x91\xa6)I\x92t\
+\x14,|\xafP\xd5ZK\x18\xaef\x7f\xff\xf0\xc3{\
+\x99\xfb\xd9\xcdR\xcf\xb6\xcf\x81\xcf\x81O\x81\x99\xb1\x0b\
+\xe7\xa3\x8d\x18\xd6\x05|\xdc\xc7\x0a\xc5rE\x14J)\
+<\xcf\xeb('\x84 \x0c\xc3\x8e\x99\x0b\xf5\x5c\xd7\xc5\
+f\xf1}u\xff\xd6o\xc7\xc7o\xfc\x0d\x98\xe3+\xb4\
+u\x01\x0b\xa8\x22J\xad\xb5DQ\x841\x06\xc7q(\
+\x97\xcb4\x9bM\x84\x10\x1d \xdf\xf7;j>\xe2\xa3\
+\x99J\xb4\xde\xa8^<\xa3\x82k!\xb3,#\xcb\xb2\
+\xceBTk\x8d\x94\xb2\x93\x8c\x8b\x08\x96Rv\xae+\
+\xa5l\x14Efii1M\xd3\xa4\x09$]\x07,\
+\xc0\x0aU\xa4\x94\x9d\xfc\xe6y^\x9e\xe7\x9c|U\x9d\
+$\x09\x80\xd1Z\xeb0\x0cu\x10\x04\xe9\xc2\xc2B\x14\
+\x04\xc1T\xab\xd5\xaa\x03q\xd7\x00\x0b\xb8b\x8f\xe1y\
+\xde#\xe0E\xde\x8b\xe3\xa8\x1d\xb9.\xbe\xefs\xeb\xd6\
+\xad\xd6\xc4\xc4D<::\x1a^\xbe|9\x18\x1f\x1f\
+\x9f\x05\xfe\x08\xdc\x06\xa2\xcdam\x02\xb0X\xc2\xfb\xbe\
+\xdf\x09\x8aR\xa9\x84R\x8a4M\x89\xa2\x08\xdf\xf7\x99\
+\x9e\x9eI\xae_\xbf\x1e^\xbdzu\xe5\xd2\xa5K\xe1\
+\xe4\xe4\xe4\x17\xc0M\xe0\xdf\xe4\xd1:\xfdU\xa16\x05\
+\xd8j\xb5\x08\xc3\x90\xe5\xe5\xe5\xb6\x19\x1d\x8c14\x9b\
+\xcdlnn.\xb9v\xedZstt4\x0c\x82`\
+.\x8a\xa2/\xe38\xfe\x22\x8e\xe3\x9b\xc0\xdd\xb6R\xab\
+@\xf8<pO5q\x92$\xac\xae\xae\xdaF\xa3\x91\
+\xcd\xcc\xcc\xc4\xf7\xee\xddK\x83 X\x0a\x82`~~\
+~\xfe\xf6\x95+W\xbel4\x1asq\x1c\xcf\x00\xb3\
+\xe4\xdf\x9bW\x9f\x17j3\x80\x0bKKKs\x93\x93\
+\x93\xc3q\x1c\xabz\xbd\xbez\xed\xda\xb5\xa9\xb1\xb1\xb1\
+\x85\xa9\xa9\xa9\xd9F\xa31\x09\xdc\x00\xc6\x80e\x8ao\
+j/\xa0\xad\xb7\x8e\xd8\x0e\xbc\x03\xfc\x10\xd8G\xeeG\
+\x7fi\x03Mw[\xa5\x8d\xda\xff\x00\xaa\xf0\xe8\xc2\xf9\
+\xe1sN\x00\x00\x00%tEXtdate:\
+create\x002023-03-0\
+9T07:07:05+00:00\
+\x86^qC\x00\x00\x00%tEXtdate\
+:modify\x002023-03-\
+09T07:07:05+00:0\
+0\xf7\x03\xc9\xff\x00\x00\x00(tEXtdat\
+e:timestamp\x002023\
+-03-09T07:08:52+\
+00:00\xdcZ\x83G\x00\x00\x00\x19tEX\
+tSoftware\x00Adobe \
+ImageReadyq\xc9e<\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x07S\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06\x1eIDATX\xc3\
+\xed\x98\x7flUg\x19\xc7?\xcf\xf3\x9eso\xdb{\
+KK\x91\x14j\x99\xb0\x91at\x85L\xcc\xdc\x92\xa9\
+Yf\xf6\x07\x84\xb9\xbf\x88#F\xe3\x8cN\x83\xc6D\
+\x13g\x8cQ4j\xfckJ\xc4-Y\xd0?dK\
+\x8c\x083\xcb\xe6\x88\x8e\xe8\x00\x8dc6\x94Z\x0b\x12\
+f\xa1\xb2\x8c\x1f\xa3\xf4\xd7\xed=\xe7=\xe7\xbc\xaf\x7f\
+\x9c\xd3R\x12\xe7nK)\xfb\xc3\xe7\xe6\xc9\xbd77\
+\xe7\xbd\x9f|\x9f\x1f\xef\xf3\xbe\xe2\xbd\xf7\xbc\x83Mo\
+6\xc0;\x0a\xd0y\xcf\x5c\xe3\x15,\x06X\xe6<G\
+\x07/b\xd3\x8c\xd5+Z)\x85\xca\xcae\x95\x86\x9e\
+\xbd\xe1\x0a\x8eN\xc6\xec\xdc\xdb\xcf\x0f\xf6\xfc\x8d\xf1(\
+\xe1\x8d+S\xfc\xf2w\x83\x8cN\xc4\x0d=\x7fC\x15\
+\x1c\xf8\xd7\x08;\xf7\x1e\xe7\xe2h\x9dOl~\x1f+\
+WwR\xab[\xce\x5c\x18c\xb2nio-\xdf\x1c\
+@\x9b:\x9e;<\xc4/^\x18d\xcd\xaa6\x1e\xdd\
+\xb6\x91\xd6%-L\xd4-\xb5\xa9\x88\xc8\xda\x86\xd7Z\
+p\xc07.O\xf1\xe4\xb3\x03\x1c=q\x9e\xfb\xef\xbe\
+\x85\x0d\xef_\x89\x13a\xa26\x85\x00qd\xc9\xb2\xf4\
+\xe6\x00\xfee\xe0<\xbb~\xd3\x8f\x17\xc7\xc3\x9b\xd7\xd1\
+\xb1\xacB-\x8a\x99\xddj\xa3\xc8\xe2\xb2\x0ch\xac\x9c\
+\x17\x04\xb0VOx\xe6\x0f\xa7\xd8\xff\xf2i\xeeX\xdb\
+\xc1\x07{:\x91@\x99\xacE\x00\x08\xbe\xc0\x11l\x9c\
+\x14\x80\x8b\xa4\xe0\xe9sc\xec\xda\xd7\xcf\xe9\xd7\xafp\
+\xff\x87\xba\xe8\xea\xac\x12\xa7)\xa4 \xc8\x8cNR\xbc\
+[\x9b\xe0\xdc\x22(\x989\xcf\xef\x8f\x0e\xf3\xd4s\x03\
+,\xa9*\x9b>\xfcnJeC-\x8a\x11\x04\x11\x01\
+\x91\x19\xb8i\x9c$\xc9\xf0\xce5\xca7?\xc0\xcbc\
+\x11?\x7f~\x90\x83\xbdg\xe9\xb9m\x09k\xba[q\
+>#\x8a\x1c\xa2\x8a\x88\x5c\x85\x9c-\x1f\x90\xa6Y\xa1\
+\xe0\x0d\x02<v\xea\x12\xbb\xf6\x1d\xe7\xd2\xe88\xf7\xf4\
+\xb4\xd3Z\x0d\xa9\xc7\x16UETQ\xf19\xa0* \
+\x85\x88W\x09\xd3\xd4\xe5\x0a.t\x88#\x9b\xb1\xff\xe5\
+\xd7x\xfa\xc0?\xe8X\x02\x1b\xd7U\x09\x8c#\x8eR\
+\xc4(\xaa\xcc\xb8\x88\xa2\xce\x81\xe8t\x94g\x183\xe7\
+q\xce-\xac\x82\xff\xbe8\xc9\x93\xcf\xf6\xf3\xca\xc00\
+k\xbbB\xde\xd5^\x22I\x122\x17\xa0\x06\x8c\x07U\
+AU0\xc6#\xea\xf1\x92\xab7\x93\x8b\x85`\xce\x09\
+\xf9\xc4\xb0\x00\x0az\x0f\x87\xfa^\xe7g\xfb\xfb\x18\x1f\
+\x1f\xe1\xf6\xae\x80\xa6rF\x14'\x98 \xc0x\xc1x\
+\xc1{\xc1\x18\xcd\x9b\x89\x14\x1b\xbc\x16yX\xbcf\xd6\
+D\xf0~\x01\x8ad\xbcf\xd9s\xe0\x04{\x0f\x0e\xd0\
+\xd6\x14\xb1\xaa\xc3\xe0RGLH\x10\x08\xce\x0b\xde+\
+xG\x8e\x94\xc3\xe5!U\x10AE\x8a\xdffU\x09\
+z\xcd\xb7y\x01\x9e<;\xc2O\x7f\xddK\xdf\xc9!\
+:\xdb2*e!\x8aRL\x10\x10x\xc1\xa1\x84(\
+\x88\xc3\x8b\x07\xc9\xe1p \x85r\x1e\xc5\xa3\x85z\xb3\
+\x90D\x11\xf13\xad{\xce\x80c\x931\xdf\xdd}\x84\
+3\xc3\xc3t-\xcdP\x0f\xf5:\x88*\xa1\xa3\xf8\xe3\
+\x0c0 \x0e\xc4#\x9a3\xaaW\x9cW\xd4\x0bL\xbb\
+\x5c\xadf\xef\xf3\x02\x12\xfc\xfcC\x1c\x06J\xf7\xf2\x0a\
+Cga|\x22B\xc8\x08\x03C\x10\x96@\x0cH\x06\
+d\xb3\xe0r@5\x82\xfa\xdc\xbd\x17<ExE\x8b\
+~8]4Y\x91\x06\xf3T\xb0\xa5)\xe4[\x8f\xdc\
+\xcb\x9e\xce*\xcf<\xffW\xde\xbcp\x0e\x9f\xd4\xa9\xb6\
+Vhkk\xa3\xb5\xb5JKEh\x96\x00c<\xde\
+K\xa1\x8a\xe6\xedE\x14U\x83QC\x10\x18\x02c0\
+F\xd1\xa2\xaaK\x81`T\xe6\x0f\x08\xd0V-\xb3}\
+\xeb]\xf4\xac]\xce\xce\xa7\xff\xc4\xf1\xc1S\x8c\x8c\xd6\
+\x18\x1d\x8f\xa9T\xa6h\xa9T\xa8T\xabT\xabU\x9a\
+[\x12ZZ2ZZ\xa0\xb9I(\x97\x85rY\x01\
+S\xec(\x0a(\x19\x82s\x9e8\xf1d\x0b\xb1\xd5\x89\
+\x08\x1f\xddx+\xb7uw\xf0\xc4\xaf\x0e\xf1\xe2\xe1~\
+\x12\x1b\x83\x172\x076q\xd4\xa3\x14/)\x8e\x94\xd4\
+'\xd8T('\x85\x97\x94rY\x09CO\x10\x08F\
+\x15\xef=\x89\xd3\x86\x0b\xe4\x7f\x02N[wg;\xdf\
+\xf9\xe2&z\xd6\xae`\xf7\xbeC\x8cNYJA\x09\
+UE\x8d\xa2\xc6\xa0\xc6`4\xffl\x8c\x12\x98\x22\xbc\
+A@)\x0c)\x95B\x8c1\xf9\x5ch}\xd1\xb7\x1b\
+\x83l\xe8\xd0T.\x05<\xbc\xf9.\x1e\xff\xfaV\xd6\
+\xafYN\xea\x22J\xcd!\xaaff\xb7\xb8\xc6UP\
+\xd5\x99<\x0c\xc3\x90r\xb9D)\x0c\x09\xc2\xe0\xda\xf1\
+f!\x00\xa7m\xc3{o\xe1\xf1olc\xeb}=\
+D\x13\x17\xc9$\xc6\x84\xc1[7\xde\xd9\xed\xaf\x98n\
+<y\xf7i\x94p\xce\xc7\xce\xa5m\x15\xbe\xf6\xd9-\
+\xecxt\x0bMv\x84\xcb#\xe7\x90R\x0e\xe3\xbd\xcf\
+\xbd\x18\x08\x5c\xe6\xc82G\x9a\xa4\xc4\xb1\xc5ZK\xea\
+\xdc\x9crp^\xe7bU\xe1\x81\x8f\xdc\xc9\xaeo?\
+\xc2\x07\xba+\x0c\x9d:\xc6T6\x09*9\x94sd\
+YF\x9a\xa6\xd8$!\xb6\x96(\x8e\x89b\x8bMS\
+\x9co|\xdc\xba\xae\x83\xfb\xea\xeeN~\xf4\xd8\xa7\xf9\
+\xc2\x83ws\xfe\x9f\xbd\x0c_8M\x1a@\x96f$\
+\x05\x9c\xb5I\x0e\x17\xe5n\x93\x147\x87\x9d\xe4\xbao\
+\x16\x9a\xca%>\xb3\xf5\x01~\xf2\xd8\xa7h\xaf_\xa0\
+\xaf\xef0c~\x8a\xd4y\xacM\x88cK\x14O+\
+\x18\x13'\x09\x19\x8d\x8f[\x0bv\xf5\xb1q\xfd\xed<\
+\xf1\xbd\xedlY\xdfM\xff\x91\x03\xbcv\xf9\x0c\x91:\
+\xe2\xd8\x12GW\x15\x8c\xec4\xe0\x22)8\xdb\x96-\
+]\xc27\xbf\xbc\x8d\xef\x7f\xfe!j'^\xe5\xd5\xfe\
+?sE-q\x9a\xe6pqL\x94$d\x8b\x95\x83\
+\xffuAU6}\xec\x1ev\xff\xf0+\xdcY\xcdx\
+\xe5\x8f\xbfe\xb8~\x89H<q\x14\x13\xc7\x16\xe7\x17\
+1\x07\xdf\xcan}O\x17?\xde\xf1%\xbe\xfa\xe0\xbd\
+\x0c\x1fy\x91\xbf\x0f\x1dc\xb2\xecIBA\xb2\x94F\
+\xa7\xd6\x1bz\xfd\xd6\xdcT\xe6s\x9f\xfc8O\xed\xd8\
+N\xe7\x95aN\xf6\xbe\xc4\xb8\x8c\xd0Q-\xd1T~\
+\xfb\x9b-\x00Y\xac;\xea7GF9x\xa4\x97\xf3\
+^\xb9c\xd5\x0a\xee\xdb\xb0\x0e5o\xaf\xcf\xa2\x01\xce\
+\xd7\xfe\x7f\x89~\xbd\xf6\x1fu\xd4\xd8/\x83\xf6\xd6\x89\
+\x00\x00\x00%tEXtdate:cre\
+ate\x002023-03-08T1\
+7:27:26+00:00\x9e\x98\xa5\
+\x85\x00\x00\x00%tEXtdate:mo\
+dify\x002023-03-08T\
+17:27:26+00:00\xef\xc5\
+\x1d9\x00\x00\x00(tEXtdate:t\
+imestamp\x002023-03\
+-09T06:18:41+00:\
+00=\x00\x9f\x01\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x04+\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xbf\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf2\xf2\xf2\xef\xef\xef\
+\xf8\xf8\xf8\xd5\xd5\xd5\xe2\xe3\xe3\xe3\xe4\xe4\xe3\xe3\xe3\xe4\
+\xe4\xe4\xe4\xe5\xe5\xe5\xe5\xe5\xe6\xe6\xe5\xd6\xd6\xd6\xf7\xf7\
+\xf7\xd9\xda\xda\xdc\xdc\xdd\xc1\xc2\xc2\xc8\xc9\xc9\xe9\xea\xeb\
+\xed\xee\xf0\xed\xef\xf0\xee\xf0\xf1\xee\xf0\xf2\xef\xf1\xf3\xe7\
+\xec\xf3\xe4\xea\xf3\xf2\xf3\xf5\xda\xda\xda\xda\xda\xdb\xcf\xd0\
+\xd0\xc4\xc5\xc4\xb8\xbb\xbe\xd0\xdc\xec\xd2\xe0\xf4\xcc\xdd\xf4\
+\xc7\xda\xf4\xc2\xd7\xf4\xbd\xd4\xf4\xb7\xd0\xf4\xb3\xce\xf4\x94\
+\xbb\xf3q\xa7\xf2\xca\xdc\xf4\xdb\xdb\xda\xdc\xdd\xdc\xb9\xbd\
+\xc3\xc3\xc5\xc8\xea\xec\xed\xee\xf1\xf3\xef\xf1\xf4\xef\xf2\xf5\
+\xef\xf2\xf6\xe5\xec\xf6\xdf\xe9\xf6\xf2\xf5\xf7\xdb\xdb\xdb\xd9\
+\xd9\xd9\xef\xf0\xef\xd8\xe4\xf3\xe7\xec\xf2\xf2\xf3\xf2\xf3\xf3\
+\xf3\xf4\xf5\xf5\xf5\xf6\xf6\xf6\xf7\xf7\xf9\xf9\xf8\xfa\xf9\xf9\
+\xfa\xfa\xf9\xf9\xf9\xf9\xf1\xf1\xf1\xd5\xe2\xf4\xf4\xf4\xf4\xf5\
+\xf5\xf5\xf6\xf6\xf6\xfa\xfa\xfa\xfb\xfb\xfb\xd1\xe0\xf4\xe6\xec\
+\xf5\xf6\xf6\xf5\xfc\xfc\xfc\xf4\xf4\xf3\xcd\xde\xf5\xf8\xf7\xf7\
+\xf9\xfa\xfa\xdc\xdc\xdc\xf5\xf5\xf4\xc9\xdb\xf5\xe4\xec\xf7\xfd\
+\xfd\xfd\xda\xdb\xdb\xc5\xd9\xf5\xe3\xec\xf8\xfb\xfa\xf9\xf7\xf7\
+\xf6\xc0\xd7\xf6\xe2\xec\xf8\xfc\xfb\xfa\xfe\xff\xff\xf8\xf8\xf7\
+\xbc\xd4\xf6\xe1\xeb\xf9\xfc\xfc\xfb\xd8\xd9\xd9\xb7\xd1\xf6\xdf\
+\xea\xf9\xfd\xfc\xfb\xee\xee\xee\xde\xde\xdf\xd8\xd9\xda\xcf\xd1\
+\xd1\xfa\xf9\xf8\xb3\xcf\xf6\xde\xe9\xf9\xea\xea\xea\xcc\xcd\xcd\
+\xc3\xc4\xc4\xc9\xc9\xca\xc9\xca\xca\xed\xee\xee\xa3\xc5\xf6\xd3\
+\xe3\xf9\xfe\xfd\xfc\xf2\xf3\xf3\xd0\xd0\xd1\xc5\xc6\xc6\xe9\xe9\
+\xe9\xd4\xd5\xd4\xf6\xf7\xf9u\xa9\xf4\xb9\xd3\xf8\xff\xfe\xfc\
+\xbf\xc0\xc0\xcb\xcb\xcc\xd7\xd7\xd6\xfb\xfb\xfa\xbf\xd7\xf8\xe2\
+\xec\xfb\xff\xfe\xfd\xe8\xe8\xe8\xc1\xc2\xc3\xcb\xcb\xcb\xf0\xf0\
+\xf0\xd3\xd3\xd3\xe2\xe2\xe3\xe3\xe3\xe4\xd5\xd7\xd8\xc8\xca\xcc\
+\xea\xe9\xe9E\x17\xd3\x0b\x00\x00\x00\x01bKGD\x00\
+\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\x00\x00`\
+\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07tIM\
+E\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\x010\
+IDAT\x18\xd3U\xd0WS\xc2@\x14\x86\xe1]\
+X\x81\x18\x88]@c\xef\xbd\x00\x8a\x05\x114\x8a\x04\
+%\x16\xd4\xd8{\xc3\x8a\xbd\xc5\xde{\xf9\xc1nvs\
+\xe3{\xf9\xcc\x99\xf9f\x0e\x00P\xa7\xff\x97\x0e\x02\x00\
+P\x9c\xc1`4\x19\x19&\x9eeY\xb3\x99\xb5 \x8c\
+\x5cBbRrJjZ\xba\xd5f\xb3\xd932y\
+N\xc5\xac\xec\x9c\xdc\xbc\xfc\x82\xc2\xa2\xe2\x92\xd2\xb2\xf2\
+\x8aJ\x82|UuM\xad\xb5\xae\xde\xe1p:]\x0d\
+\x8dn\x82M\xcd-\xad\x9e6o\xbb\x8fC\xfe\x8eN\
+\x81\x22\xdf\xd5m\x0f\xf4\x049$\x88\xb8\x90\x86\x9e\xde\
+\xbe\xb0O\xa5\x10N\xd2\xb0\x7f\xc05\x88\x860Ij\
+\x11\x8a\xc3#\xa3~B\xb2\x1a\xc5\xb1\xf0\xf8\xc4\xa4H\
+\x0c\xe2(\xba\xa7\xa6gfU\x83\x10@8\xa7\xe1\xfc\
+\xc2\xe2\x121(\x09An\x99\xa2\x7feu\x8d\x98\x10\
+]\xb7ll\x8a\x04\xb7\xb6w\x08\x8a\xb1\xdd\xbd\xfd\x83\
+C@\x10\x1d\x1d\x9f\xe0\x11\xf9\xf4\xec\x5c\xb9\xd0\x03\x8a\
+\x97W\xd772\x04R\xec\xf6\xee\x9e\x1a\xe0\x22\x0f\x8f\
+O\xcf\xf8\xb3\xf2\xcb\xeb\xdb;5\x80>L\x9f_\x0c\
+\xc3\xb2\xa6\xef\x1f\xed\x0e\x00\x18U~\x15Z@\xa3?\
+\x8f\x22K\x03\xe7l\x909\x00\x00\x00%tEXt\
+date:create\x002023\
+-03-08T17:27:26+\
+00:00\x9e\x98\xa5\x85\x00\x00\x00%tEX\
+tdate:modify\x00202\
+3-03-08T17:27:26\
++00:00\xef\xc5\x1d9\x00\x00\x00(tE\
+Xtdate:timestamp\
+\x002023-03-09T06:2\
+0:50+00:00\xdd\xe8\xb2\xde\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x03\xa3\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x04\x00\x00\x00&\xf7p\xe6\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x02\
+bKGD\x00\xff\x87\x8f\xcc\xbf\x00\x00\x00\x09pH\
+Ys\x00\x01bT\x00\x01bT\x01\x80\xc1\xe1l\x00\
+\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x12)\xc3\xf6\
+ \xcd\x00\x00\x02rIDATH\xc7\xad\x97\xbfo\
+\x131\x14\xc7?w\xbd\xa0\xdc\x80rBJ:4]\
+*\x90\xf8\xf1\x07Db\x00\x81`\xc8\x8e\x98\xb21e\
+a({\xd35K\xc4\x10\xa9\x13[\x84\x00\xc1L\x85\
+X\xca@\xf7\xa0\xa2J\xa4(R\xc4\x90FB\xad\xa0\
+\xbd4Ic\x86\xbb\xfc\xb8\x8b\xed\xb8\x0d_/\x96\xfd\
+\xfc\xbd\xaf\x9f\xfd\xde\xf3\x81\x1c.E\xea\xf4\x10\x92\xd6\
+\xa3N\x11\x97\x0b I\x19_J6j>e\x92\xb2\
+\xa5\x96\x94\xb0\xc0+\xae\xf0\x93\x8ftb6\x02H\x93\
+g\x8d\x1e\xcf\xa8\x99\xe9s\xd9Fp@Ni\x91\xe3\
+\x00\xc1\xb6\xe9\xb6Wh \xa8jm\xaa\x08\x1a\xac\xcc\
+N\xd8\x12c\x87\x04\xd0\xd1\x12v\x80\x04\x8e\x19a\xe0\
+\xa9\xf9\x90Z\xd9Js\x0b\x1d\x94\xb32\xc2\xa1\x81J\
+1e\x19\xf3W\x00\x97ka\x7f\xc8*\x0e\xe0\x91e\
+IAw\x8e\x078\xac\x8e%\x0d\xf8\x8d?\x92\x9e\xe4\
+\x09\x05\xae\x93\x08\xbf\xeb\xb0\x8c\xc31G\x1a\x85\x1e)\
+\x06\xb4\x19\x84\x0e\xe8\xd3\xa0\xc6{\xba\xe0R\xe6L\x1b\
+\x15\xa6\xed\x8c2\xaeE\x91\x0aIiT\x98b\x12=\
+]\xd6\xa1>'*L\x11DO\x1dzs\xa3\xc2\x14\
+U\x04=\xdb *L\xd1\x01\x12\xf6\xc241\x04\x84\
+\x979\x8aYX\x13\xc2\xff\x88x\xbe\xb0\xc8\xc83\xb1\
+\x02]\x0e\xa3A\x1a'|L\x85\xab\x86\xd9\x06,\xfe\
+\xb0\xce'\x1d\xe1M\xee\x5cp\x8f\xb7\xf4\x84o\xb1\xb8\
+A\x81\x14_\xd8Qzx\xc8}\xeeqL\x8d\x1f\xbc\
+\x89O\x0a\x04\xa5\xc8H\x96&\x82\x0d\xad\xae\x0d\x04M\
+\xb2\x91\xb1\x12\x02!\xd3\xb0\x14\xfaG\xef\xbd\x89e\x04\
+6} \xad\x5c\xa2'\x8c\x22\x0d\xf4m\xf6\x81|$\
+9\x9cc\x8ai\xcb\x1cy`\xdfa\x8b\x0ak\xbc\x1e\
+\xa7/\x81\x877\xd6\xf1\x88\xbb\xb1B\xff\x95\xcf\xe1\xb5\
+\xf2x\xc1\x11V$}m\xa9\x13\xec&\x90aof\
+|\x8fe`S\x95`\x1d|J|\x93\x94\x00\x80\x13\
+vIE\xae\xb9\xc5.\x7f\xc3\xbe\xb4\x048@\x97\x1a\
+\x1f\x22E\xea]\xf8&8\xe19\x99\xc8m\x1cr\xc8\
+i\xd8o\xf3\x94V\xbcH\x8d.\xb6\xcf\xaf\xa9e\x83\
+q\xef\x94\xa6\xf2H\x06\xb4h\xc5\x07%\x8f\x89)E\
+\xfaC\x91\xe6*\x19\xe1h)\xa4y\xc9\xed\xd8\xf8w\
+\x1e\xd2V\xa7\x0f9\xe1H\x93\xfeP,S\xc2\xc18\
+z\xd4\x87\x92\x06\xfaS\xbe\xd6b\xa1\x07\xa7L\xa1O\
+\x8d\x07\x91\xe8\x89{6x\x12\xd7\x82\x8bb\x82\x05\x1e\
+\xed\xeam_\xf2\xb7\xe2\x1f\xabI7!\x97\xa94\x84\
+\x00\x00\x00%tEXtdate:cre\
+ate\x002023-03-08T1\
+7:21:49+00:00\xa3\xa1\xac\
+\xac\x00\x00\x00%tEXtdate:mo\
+dify\x002023-03-08T\
+17:21:49+00:00\xd2\xfc\
+\x14\x10\x00\x00\x00(tEXtdate:t\
+imestamp\x002023-03\
+-09T06:18:41+00:\
+00=\x00\x9f\x01\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x06m\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x064IDATx^\xad\x97[lT\xc7\
+\x1d\xc6\x7fs\xce\xd9\x8b\xbd\xf6\xfa\x16\xa0\xbe\x00\x0e\xb2\
+ic$BJ!\x22\xa1-\x95b\xa5/\xeeKh\
++\x95\xa6U\xa5\xc6`U\xaa\xda\xb4\xaa\xfaV\x09U\
+\xca\x03\x94'\xda\x07\x84\x14)\xad\xc4\x8b\xa5R\x83y\
+\x08\xc5\x189\x0ei\xd3\x84\x9a\x9bcj\xec\xb2\x04\x1b\
+;\xbb\xf6z\x8f\xbd\xbb\xde\xb3g\xa6\xc3h\x85\xe5r\
+l\x88\xc9'}\xfa\x9f\x9d\x87\xfd~\xf3\x9f\x99s\x11\
+J)\x82$\x84x\x05x\x9e\xc7kH)\xf5w\xd6\
+(' \xb8C\xbb\x01h\x97R\xbe\xc6cdY\xd6\
+\x07\x1a\xf6\xbb@\xb7\x069\xff\x14\x00&\xfc\xb7\xed\xf5\
+\xe2`]DDn\xce\x89\x8a+W\xaeP]S\x8d\
+@\x00\xa0P\x08e(A)f\xd3i^\xa9\x17/\
+\xbc\xb4Nl;\xf1\x1f\xb9G\x83|[CL<M\
+\x07\xf6\xff`\x8b\xdd,%\xf8J2<<Lee\
+%+\xc9u]\x1e\xc0n\xa9\xb0\x22\x1b\xa2*r?\
+\xa7\xea\x81\xb5\x03\x08-\x05H\xa1\x0d\xf4]\xbcH.\
+\x97\xc3/\x16QJ\x91\xcf\xe7Y\x5c\x5c\xa4P(P\
+\xd4c\xb5\xb5\xb5\x94\x01X\x80\xf8\x82\xf6\x80\x01\x006\
+D\x05\x1f\x0f\xbcK>;\x8f\x85D\x952\xe2\xb6\xc4\
+\xb6\x04!!p>Sl\x8c;\x80D*\x04\xf0\x9c\
+\x10\x02\xe0\xcb@\x05P\x0f4`\xc4Hi\x9f$\x02\
+\x01N\x9c8!\x00\x81\x05\xd2\x87\x96\x96g\x09em\
+\x14\xe5(\xa5\xb4A\x08XW\x19%\xe2\xd8DB\x16\
+\xc3\x13s\x5c\xbc=A\xf7X\x8e\x5c$\xbe\xa9\xbd}\
+\xf7\xef-\xcbZ\xdc\xb1cGYUU\x95\xd3\xd8\xd8\
+\x18~\xe0\x86\x86\x86\xd0\xa5K\x97\xdc\xae\xae\xae\x08\xf0\
+\xd6\xaa\x1d\x00\x13DU,\xc2s\xd51\xf2\x9eO\xa1\
+(\x91Ja\x09A\xd8\xb1\x88\x86l\xe6r\x05\x12\xa2\
+\x8e?\x9f\xff+\x0dM\x1b\x01\x22\xc0f\x96\x84\xef\xfb\
+x\x9eGuu\xb5\x9ePK\xf4\xea\xd5\xab\x87\x84\x10\
+(\xa5\xdeZ\x11\xc0\xb2A\x00\xb6-\x90\xda\xb6\x148\
+\x08\xa4\x12X\xc2\x8c\x1b\x8fL\xb9\xec{\xf5;\xd47\
+6\x11|/\xc1\x84g2\x19\xca\xcb\xcb\xcdf>v\
+\xec\xd8&\xbd\x7f\x0e.A,\x01\xd0\xd9\xd9\xa9\x0e\x1d\
+:\xa4l!\x08Y\x10\xb6-\x1c\xc7\xc6BP\xb4\xcd\
+\x1a\x1b\x00\xc7\xb2\x888\x96\xae\x02`Yx\x10\xc0\xdc\
+\xdc\x1c555\x06 \x1a\x8dr\xe4\xc8\x91\xcd\xc0\x03\
+\x88\x1b\x1a\xa2\xc7b\xb9\xb0mt0f\x8d\xcb#6\
+\xb1\xa8\xa3\xc7,2\x8b\x1e\x93\x99\x1cc\xa9y\xee\xcc\
+.\xe8\xdfEr\xf9<\xab\xc8,A6\x9b5\xa7f\
+\xe9\xffm\x0e\x1c8\xb0\x1e\xe8\x00X\x06\xa0\xb4t\x16\
+\x8e\x0d\xe1\x90\xc0S\x8a\xb1\xa4\xcb\x8d\x8c\x83\xd3\xb2\x97\
+\xa6}\xaf\xb3\xb5\xe3\x17\xac\xdb\xfb:\x0d/\xb4s\xfb\
+\xce$\xfd\xfd\xfd$\x93I\x94R\xe6\xfa\xf8\xf1\xe3\xe8\
+\xba\xac3\xe7\xce\x9d\xe3\xe8\xd1\xa3\x1c>|\x98\xde\xde\
+^\x12\x89\x84\x04,\xa1\x15\xdc\x01\xed\xff\xce\xe6\xf8\xe7\
+\x94Ok\xc7\xcf\xf8\xe6/\xdf&\xf6\xf57\x99|\xa6\
+\x83k\xfe.\xae\xf1-dk\x17\xad{\x7fN^V\
+s\xfaog\xd1wM\xee\xdc\x9d\xe2\x1b\xafvr\xfd\
+\xfau\x03\xa0gk\xd6?\x16\x8b\x99\xebx<\x8e\xe3\
+8%8\x04\xc0#\x00\x96%\x98\xcaA:\xde\xca\xfe\
+\xdf\xbdM\xd5\xae\xd7(\x84b\x08\xdbBY\x82lA\
+r\x7ff\x91O\xeef\x18\xb8\xear\xfa\x1fad\xd5\
+^\xae\x8f\xdcg2\xd7\xc6\x85\x0f\xee\x9b\x00\xed\x87\xa1\
+\xcd\xcd\xcd\xb4\xb5\xb5\x19755\xa1\xa1\x14 \x83\x1f\
+F\x16\xdcq\x15\xdf\xff\xe9o\xa8l\xd8H\xe2\xec;\
+L\x8f^\xc3\x89\x94\xb1\xb5y\x07\x9b[\xb6\xf3Iy\
+%c\x09\x97\xcff\xf2\xdc\x9d\xce2\xa1\xed\x88\x0dL\
+'\xe7\xd8\xb7+\xca\xfa%\x003{=k\xea\xea\xea\
+\x00\xccu*\x952\x00J+\x10\xa0\xb9Zp\xe1\x9d\
+c(,\xca\xe6\xc6\xd9\x10\x8fR\x94\x92{\xc3}$\
+e\x05\xdb\xda\x7fLM\xdb\xcb|<\x9cf\xd2_\xc0\
+\xcdx,\xcck/x \x00\xb5t:B\xa1\x90\x09\
+-\xdd\xea\x1f\x8e\x01*\xf8>`\xc1\xc6\xb8\xa0P\x1c\
+#\x1c\x8bS\xb7\xa5\x96\x92xv}\x05\xe9\xac\xc7h\
+\xff\x9f\x98\xae\xbcL\xcb\xf6\x83\xb8\x0ba\xbc\x82\xa4X\
+\x94x\xda!\xc7B-\xaa\x80\xe3i\xa0\x96\xd5\x15\x01\
+\x00\xd6\xc7C\x84\xca#\xfc\xbfjc!\x9e\xa9\x0cs\
+\xe1\xdf\x83\xec\xd9\xf9\x13\xca\xa3\x0e\xb92G\x03(\x03\
+ak\x00\x16K!\xa5\x1c%0*\x15\xa4\x5c\x05@\
+X\xa5*\xcc\xf5#\xfapl\x86\xf1Y\x8f\xef\xfd\xfa\
+\x8f\xdc\xca\xd4\xe0D\x5c\xa2\x11\x1b\xcf\x93\x14=\x07\xd3\
+\x01\xa5\x90R\xf2PjY\x01V\x05\x10\x08L\x0d\x04\
+\x18\x9dv\xf9\xd5_\x86\x18\xbd\xb7\x80=\x93g\xd3\xba\
+2\xf2y_\xbbh\xea\xce\xaf\xd4p\xf9\xdd\xe0%\x00\
+\x9ex\x09L\xb8\x10<\xa2\xd6/U\xf2\x87\x1f>\xcf\
+\xf5O3D\x1b\xb7\xb1\xf3\xc5\x97Y\x12\x5cN`\x8e\
+\xdbS\x01(\xc0\x12%\x00m\xd4R}\xb1\xb5\x96\xdd\
+[\xe2t\xbf\x97\xa5j\xf7W\xf9\xd1\x1bo\x10\xa0\xb5\
+\x03\x98\xb57\xd5\xd8\x08\x01\xd2\xcbSpSx\xf33\
+\x14\xb3i\x0a\x19\x1f%\xfd\xd5\x82\xd6\x08\xf0\xf0)\xe7\
+\xe3\xe73\x14\xe6u\xa8\x0e\xd6\x00\xcb\xf7\x89\x10\xc13\
+}\xfa\xd7r\x8c\xb2\x137\x03\xc7\x01\xb2\x1e\xfe\xad\x94\
+\xcco\xf7DT\x03\xd8_p\x07\x08\x92\x09\xfd\xd7=\
+?\xfd~B\xa6\xcf\xdf\xf6\xef\x02\xeev;\xfc\x92\x06\
+\xa8\xe3s\xcau]\x1fpW\xed\x00@2\xab\x0a\x1f\
+~*\xd3\xbd\xb7\xfc\xd4\xcdi9\x05\xf4\x03\x97th\
+\xbf\x10\xa2\xd3\xb6\xed\xaf}\x9e%XXX\xf0\x07\x06\
+\x06\xd2'O\x9e\x9c\x06\xba\x83\x00>\x1aI\xca\xad\xe3\
+\xb3*\xd7;\xe2\xa7nL\xcb\xd1R\xe8Y\x1dt\x8b\
+\x00=\x09\xc0\xd0\xd0\x90\xdb\xd3\xd3\x93\xd2N\xcf\xce\xce\
+\x9e.\xbd\x1d\xdf\x08\x02\xe8\xee\xea)\x00\x8c\x04\x84\x06\
+\x85\xaf\x08055U\xd0/\x22\xa9S\xa7N%\xc7\
+\xc7\xc7/\x03g\x81~\x1d\xec\xae\xb8\x09K\xdfv\xda\
+O&\x85\x01@\x08@aZ\xfc\xde\xe0`\xba\xbb\xbb\
+;\xa5\xdf\x8a\xcc$\xd0^\xeds\xcda\xed\x9aw3\
+n\x11`p\xf0\xfdt___\xfa\xcc\x993\xa6\xc5\
+\xa5\xd0\x8fx\x02\x89\xb5\x9ec!D\x18x\x13\xd8O\
+is\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa*_\xf2\xd8\x15\x9d\
+\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x05+\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x04\xbdIDATX\xc3\xed\
+WkL\x93W\x18>#q\xc92\xe9\x16\x97\xa8T\
+e8\x9d\x02\x15\xf6\x03\x872\x93\x01f,[p\xc4\
+0\xff`\xa2.\x1a:\x1dN\x03\xba1\x89[\xb3\x80\
+\xd9\x0c\x84\x02\x19X\x1c\x14\x8b\x85\xb2\x82\x95^\xe4f\
+\x0b\x8e1\xf8\xc3F\xcb-\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\
+ji\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0da\xd9\xb2\x93\
+<\xed\x97\xf3}\xfd\xde\xe7\xbc\xef\xf3^J\x00\x80\xfc\
+\x93 \xff\x0a\x02t\x09(D\x14\xd9\x14q\x14\x01+\
+F\x80\xae\xddd\xdd\xc6f\x22L\xf8\x95\xc4\x8bG\xc8\
+\xa1\xd3\xf7\xc8\x8e\x97;82a+A \x85\x9c\xbe\
+0H.\xdd\x80\x19@2\xabyM\xf4\xbe\xfbr\x13\
+hd\x06\x91\x04^\xa3Q\xf4\x06\xee\x85G\xf5\xd0\xbd\
+\x83\xcbM \x9b\x9d\xf6@t/\xbd\x162= \x89\
+?H\xa5,\x1b\x01\x8c1y\xc1\xbb\x9d\x88K\xc6\xd7\
+\xc6&\x0e\xa0\x10\xb9\xfdB\xfe\xc5+6F\x8c\x12\x5c\
+N\x02\x93\xa7\xa7\xa7\x0d\xcc\xd39\xb9\x98c6\x14\x0a\
+\xd2\xe4\xa3+A \x8c)\x9e*\xdf7G\xeb\xdc{\
+\xb5\xcc\x89\x9e@D\x96T\x83+,\x0b6FH\x08\
+\x13\xf5d*{.T\x03\x01\xf8\x037\xbf\xc0\x0e4\
+*T\xdfb\x88R\xd5,X\x03t\x1d\x16\x08\x04z\
+EU\xf5\xc8\xa0mt\xc2\xd4s\xf7!\xbesQ\x95\
+\x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc.\x03\
+\xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf>\xbf\xd2`\xb5\xdb\
+\xed\x80\xf8y\xe4>\xc4^\xab\xb4\xb9\x88/\x86\x80'\
+\xd3\xc0g\xf9\x8e\x19\xf5`\xd7^3\xbav\xdas\xee\
+h\xd8\xc7\xc7G\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\
+\xf6.\xe7\x967\xf7wsa\xd8\xbd\xe8^\x80/f\
+\x9a\xa0\x86\xdf\xa96B\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\
+\xe7\x1a\x8a\x98-~\xfem\x97T\x1ak__\x1f\xb8\
+\xd0\xd1s\x07br\x15VN\xc4\x87\x97\xd4\x8c0\x14\
+\xe9\x15\xb7\x1e8\x1c\x0e@\xa4\xd6\x191\x9e\x85\x9b\x05\
+~m\xa9%\x1a[\x97\xd9\x0c\xe6.\x0a\xf3$\x14\xdf\
+6\x8e{\xbd\x1e\xd1\xcdB\xc8\x09o\xa9\x04<\xd1\xbd\
+V\xab\x15\x10w\x7f\x1b\x84\xf3\x92\x5c\xbbR\xa9\x84\xfa\
+\xfaz0\x99L\x0cu\xdf5\xc1Q\xb1d\x18\xc9Q\
+D>\xb6v\xcc\xb4@O\x93_~\xd3\xd6\xdf\xdf\x0f\
+2\x99\x0cD\x22\x11\xa8T*\x90J\xa5\xa0\xd1h \
+K[9\xbe\xe9\x95\xe0\x1f\xb8S\xafy,\xf3\x00\x97\
+\x8e\x22\x9e\xc7\x86\xe6S)\x19\xf6\x82\x82\x02\xe6\xe2\xa0\
+\xa0 \xe0\xf1x`\xb1X@[^\x01\xfb\xcf&\x0c\
+-\xa6S\xceg\x94\xcf\x09L\x83\xe2[{\xe6\xc2`\
+\x9a\xb2\x14\x14\x0a\x05\x88\xc5b\xc8\xcc\xcc\x84\xa2\xa2\x22\
+P\xab\xd5\xd0\xd9\xd9\xc9`\xec\xfe\xc9\xb9\xc9\xdb\xa7u\
+.\xb7\xcfK\x80\xae\xb7\xd8)p\x0e\xc0j\x97\xacx\
+\x88\xca\x7f\x82\xe2)\x89\x0e>\x97+![\x96\x0f\x07\
+c\xe3G\x84\x1f&\xd8\x92rd\x8eo\x1a\xbf\x07\xa3\
+\xd1\x08-\xad-\xf0\xcb\xc0 \x1c8\xf1\xbe\x05\xb3b\
+\xc1\x04\x5ci\x84\x85\x85\x84F\xdc&\xe72\xac,\xcf\
+3\xb5\x13\xec;\xe3\xba\xd33\xaf\x82\xe5\xfez\x89\x06\
+\x9e\xde\xfcb\x1b\xf7<\x92\x8d{f\xabO[\xca5\
+\xedXCC=444\x80\xa5\xb7\x172\x14\xc5\xc3\
+\xf3\xe9\xc0e<\x92\xe5(\x9e6]\xe5\x9c*2x\
+}\xf4\x83.Zl\x121\x0c\x1b%\xeaq\xf7/\xcb\
+'\xef\x05\x87_\xfe\xd3\xe4D\x0bLh\xf4\xc9>u\
+\x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x961\xae\x81\x09\
+f\xf16m8h<I::e\xf8b\x81\x83D\
+\xbdWC\xb6\x0a^\x9b*\xc3\x94\x5c\xb0B\x0f\xab$\
+\xb4\x04\x9fJ\xaa\x9bC71(\xd4O\xf2\x0a\xc7t\
+:\x1d\xd4\xd6\xd6\x82\xc9|\xdb\xb9a\x9b\xf7_\xeab\
+\xb2\xe5~\x9cu\x1f\x0d\xf3\xb2\xd4N\xf2\xf6\xb1\xeb.\
+\xb6\xae\x94\xc3\x90l\x97U\xc1KW\xab\x80\x9cMn\
+Z\xd0\x1cI\xbd\xb1\xe7\x88\xb0\xef\xcaW\xc5PZZ\
+\x0a\x1d?\xf6L\x04\x06\x87t<\xaa\x0b\xc2\x84F\x8d\
+\x07\xc8o\x02\xd9\xf9\xaa~\x9a\xf10F\x8e6 \xaf\
+\xbcJxCi\x00\x92(\x1d\x98\xcd\x95\xb3y\xc3}\
+=\xbf\xf9Dj\xa6].\x97CSK+D\x1c{\
+\xf7\xce\xf4\x14%\xae\xf1\x8a\xf5w\x9c\xf5p\x02\xc2\xd9\
+\x0f\x89\xd1\x81\x03O\x8e\xf7\xdc\xd2i\xe7\xf3\xdfu\xfc\
+o\x14.6\xd2\xef\xd8\x17iI\xbe,\x9d\xc8\xd3\x96\
+;\xa7\x0f1\x8c%\xc6\xdf\x9f\xbaw_q5\xa0A\
+l\xb5\x08\x8c\xf9\x94\xf1\xe0\xf03K\x9a|h\x13Z\
+\xbd\xce\xa3\xd9kOH\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\
+\xf9/\xee\xb9In\x00\xf6{>\xed\xf7\x08\x1e*>\
+]\xe5X\xaa\xf1GZ\xf5\xb6Y\x0b\x11\x1d\xb3C\xc9\
+\x918\x099\xf9\xa9\x96!\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\
+7\xfcO\x13\xf8\x1d\xe7\x87\x19\xb9D\xc3\x01\xcf\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x120\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed\x5cms\x1b7\x92\
+\xfe\xbc\xfe\x15<\xe6\xcb\xaa\x96\x04\xd1h\xbc*\xb6\xb7\
+l\xc9N\xa5*\xb9M\x9d\x93\xdd\xfb\xe6\xa2\xc8\x91\xcc\
+\x0dE\xaaH\xca\x92\xfc\xeb\xb7\x1b\xa3\x11\xe6\x85 %\
+\x99\xde\xad\xca\x1d\xc7\x96\x80\x06\xd0@?\xddh\x00\xc3\
+\x86^\xfe\xf5\xf6r\xde\xfb\x5c\xac\xd6\xb3\xe5\xe2U\x1f\
+\x84\xec\xf7\x8a\xc5d9\x9d-.^\xf5\x7f\xfb\xf5\xfd\
+\xd0\xf7{\xeb\xcdx1\x1d\xcf\x97\x8b\xe2U\x7f\xb1\xec\
+\xff\xf5\xf5\x8b\x97\xff5\x1c\xf6~(\x16\xc5j\xbcY\
+\xae\x8e{o\xa6\xcb\xb3\xa2\xf7\xe3|~\xbd\xdeDR\
+\x0f\x94\x90B\x0ez\x1f\xfe\xfeC\xef\xdd\xed\xd5r\xb5\
+\xe9\xfd2\xbf\xbe\x18\xfe\xb8\xe8\x89H\xfc{\xd9\xe7q\
+\xcf\x0a){o\xafg\xf3i\xcf\x80\xd6\xfe\xa8\xd7\x1b\
+\x0e\xa9\x8b\xf5\xe7\x8b\x17\xbd^\x8f\xc6\xb7X\x1f/\xd6\
+\xaf\xfa\x9f6\x9b\xab\xe3\xd1h\xb1\x16c\xeeNL\x96\
+\x97\xa3\x0f\xe3\xcf\xc5\xfb\xe5\xea\x1f\xc5\xd9\x08\x84\x1c\xf5\
+S\x8b\xe9\xe4\xa1\xc5\xd5\xf5j.\x96\xab\x8b\xd1t2\
+*\xe6\xc5e\xb1\xd8\xac\xa9:\xd4\xabOR\xf5\xc9\xaa\
+\x18of\x9f\x0b\xe2\x7f\xb9\x5c\xac\xb9%u\xfa]\xad\
+\xf2jz\xfeP\xfb\xe6\xe6F\xdc`\xac\x04!\x84\x91\
+T#\xa5\x86Tc\xb8\xbe[l\xc6\xb7\xc3fS\x92\
+j[S%\xa5\x1cQY\xaa\xf9\xb8Z\xc7\xb7\xf3\xd9\
+\xe2\xf7\xec`bi\xbdwR\xec\x15\xfd\x7fhP\x11\
+\xc4zy\xbd\x9a\x14\xe7\xd4\xb2\x10\x8bb3:\xfd\xf5\
+\xf4\xa1p(\xc5t3\xad\xb1!\xa6\xeb\xc9\xf8\xaah\
+\xf4[\x11K\xbc\xc6\x97\xc5\xfaj<)\xd6\xa3\x8a\xce\
+\xed\xeb\x96\x06\x910\x9b\xbe\xea\xff4\xbe+V\x1f\xcb\
+\xfc\xcdl\xba\xf9D\xc5\xca\xc7\xec\xa7bv\xf1i\x93\
+\xf2\x9fg\xc5\xcd\xdb\xe5\xed\xab\xbe\xec\xc9\x1e\x11{U\
+\xc1\x928\x9f\xcf\x977\xaf\xfa\x9fg\xeb\xd9\xd9\xbc\xec\
+\xaeX\x8c)9<\x1bO~\xbfX-\xaf\x17\xd4\xd9\
+\xa2\xb8\xe9\xb5\x1a\xb3T\xc7<Z\x12\xe8jU\xac\x8b\
+\xd5\xe7\xb2y\x05\xc0\xf1\xc3\xb0\xa5@\x15\x8b*\xa9\xea\
+E\xda\xfceZ|.\xe6\xcd\xb6\xd3\xe5\x84\xd0 \xd6\
+\x94\xb8f\xdb\x1b.\xaf\x8a\xc5pUL(-H\x9b\
+_:\xf5\xcf\xc6k\xaa?\xfamM\xbcG\xd3\xf1\xe7\
+\xd9ttZ\xac\x7f\xdf,\xafFk\x9a\x8ag\xcb\xdb\
+\xe6\x18\x96\xd7\x9b\xab\xeb\xcd\xc7\xe2vS,\xca\xc1\x90\
+\x0e\x92Bbq\xd9\xd5\x03\xb1\xc9\xa0\x883tx>\
+\x9b\x174\xd6=}\x8f\x1e\x04!,\x95\xb8Z\x5cl\
+ev;\xbd\x22;SJ\x98\xad\xc5w\xa9\xf8\xf5\xcb\
+iq\xbe\xae\xac\x81\xd3 \x99J\xc6[\x8cW?\xac\
+\xc6\xd3\x19\xf5\xc6\xe5e\x8d&\x1d\xd19\xaa\xbc\xa6\x11\
+\xc6*\x8c\xe5\xe6nNB0i8Y\xce\xc9C}\
+\x87\x86\x9f\xef#iI\xaa\x9em\xee\x8e\xe1\xfb~\xd5\
+by~\xbe.\xc8\xce$S\xaa\x8e\x22\x03b\x1f\xfa\
+\xbd\xd1\xde\x0ed\xfc\xec\xed\x00\xb6t\xe0!v0j\
+\xca\xb5]\xfe;\xf5\xaa\x1f\xd8eJu\xcf\xe9\x96(\
+\xde\xd7)w@\xfdH]\x95\x03\xb7\xb8\xcf\x5c\xdc3\
+\xfbm1\xdb\x90\x8b\xb9&-\x7f`\xc3\xff\xdb\x82\x14\
+\xde\xcfC\x0c\xd8\x7f\xfd\xe2O%\x06\x8d\xb1\x03iw\
+; \xde\xfb7>\x96&tI\xce\x0c\x1b\x97es\
+\xe2\xdf\xf9\xd0d#\xa4Q\xc6hc\xf3\xfcB\x8e\xdf\
+\x9b\xb7oN\xdet\xf8Y\x87Y^\x0ar\xbcN\xcc\
+\x89=\xd1-^\x80\xda\xe5ya\x8e\xd7\xe9[z\xde\
+\xb4x)\x00\x93\xe7\x95\x85\xfe\xdd[~Z\xbcP\x82\
+\xca\xf3\xca\xe2\xff\xde\xd1c[\xbc4\xa8\x1d\xbcB\x96\
+\xd7)?-^\xc6\xba\x90\xe5\x85\x90\xe5\x15?\x0d^\
+\x10\xd9\xec\x9bG9#\xb7N\xcb\xfe#\xa6\xb9\x1e\xeb\
+is\x9a\xcb\xc7\xf8\x11b\xaf\x92\x1f\xe9\x16\xfa.\x0f\
+r\x8d;G\x82AO\xdb\x0e\xe7q\xae\x0a\xa6\x8f\x90\
+\x01\xb6\xc9\xa0\x1f\xeb\xaa\x92\xaf\xf9u5^\xacig\
+q\xf9\xaa\x7f9\xde\xacf\xb7\x7f\x96\x03\x18\x0ca \
+\x07C\x0c\x22\x04o\x06\xa0\xa5\x90R\x85\xa3~rs\
+C\xf4H\xa5\xce\xd4\x1c\xddP\xa10`A\x85\xaa\x22\
+\xa4\x8aPUd\x9a\xd7\xccPK\xfc:\xcf\xe7\x00\xfa\
+\xdbuFE\xb8C?7\x9ff\x9bb\xffzCp\
+f\xd9\x9b}\xec\xf7\xabp\xbb\xb6h\x9d\xdf\x14\xabX\
+9\xad\xcb\xc4w^L\xa8\xd1x~3\xbe[\xd7 \
+)\xab;v\xd2\xd4\xb6\xf8a|\xbd^\xcf\xc6\x8b\xb7\
+\xf3k\xe6\xb1\x9bK\x92`zZ|\x9e\x8d7q{\
+\xa2\x84\xf7\xd2\xf8\xe0\x1a&\xd6d\xed\x10B9\xfc\xb2\
+\xff\xd7/'\xf3\xd9\xd5/\xe3\xcd\xa7\xb2M\x95\xdb\xa7\
+\xd0\xaa\x9e\x01\x8b}b2[M\xe6E,\xae\xef\xba\
+Vw\xaf\xfah\xfb]\xfa\xedv\xfa\x84\xea\x07\xb5\x85\
+\xce\xf55\xb2U\x87\xd0\xd2\x1f\x039?\xa6\xc3\xc8\x9f\
+\xbfkj\xc4\x80uG\xdfsi\xb2\x95\x87\xb6\xab\xc6\
+\x00x<\xbc\xd8\x83\x94R?P\xb7\xf7\xda\x1a#\x8b\
+\xd8m\xca\x10\x95\x98\x18\xb0\xa6\x04\xbc\x82\xec\xb1\xaeS\
+\xab`3\xb3\x84\x8a\xb6x\xb6\xdd~m2>?\xcf\
+\xf9\xb5n\x07(e\xc6ue;P\xdav\xb6\x82\x8f\
+\xf4k\xfbm=\x9e\xb9\x8e?\xad\x0a:#~\xb7\x05\
+\xa7<\x88N=\xc1W\xb1\x93C\xe5\x05(\xad}}\
+\xe3\xa7\xa4\xf0\x00\xc6\xd7\xbc&\xa2\x15\xc1K\xe7j\xde\
+\xd5;\xe1L\xd0\x06I\xf0o\xeb\xbf\xa1\xee\xbfAQ\
+\xbd\x7f\x97\xf7\xd6\xce\xc9\x9c]:\xa7v\x19\xc9y\xfc\
+<\xdf\x7fs\x07z\xb7\x15\x9e\x9bb\xfa\x5c\x0f\xce\x89\
+\xf1\xfc`v\xc98%\x10\x9b\xcc}P\xf2\xb1Z\xe8\
+\xba\xa2\xae#:\x8f\x15\xacP:X[\xd1\xd85\xa1\
+\xf0DA6\xd2\xe4\xf7\xf6\x99\x22\x08\x1d\x14\xa2\x0c\x03\
+)\x94r\xca\xbb0\x18J\x81\xc4\xca(;P\xc2\x18\
+\x8f\xde#\xd9+\xa20\x80H\xa6\xab\x140\xdd\xa8\xa3\
+?\xb0\xf1\x9b`|\xc6\xf8M\xb0{\x5c\xb0\xd6~\xf2\
+|\xe3\xe7\x0e\xd4\xee\x0elq\xb6\x7fv\xc1\xb7u\xca\
+\x09\xa7,\x88>\xc0\xe3\x8f\xce\xcf\xb7\x9a\xa4z+@\
+I4\xbai# d\x08\xaaaK\xc6\x0a4\xce(\
+h\x18\x9dC^\x10\xd8\xa7?s\x97\xa7UP\x87\xdb\
+\xe5\x81\x95Z+\xcc\xef\xf2\xb8?]\xdf\xe5\xe5\xdfz\
+\xc8\x9a\xf4\xaa\xbe\xe2\x19'L\xc2\x90\xca\xbej\xda\x80\
+\xb7\xd6\xf3\xcb\x8e?u\xcf\xa3T\xc6\x8e2\xbbbL\
+&[l\xba5a\xf2\x9ci\xc6<q\xab\x9f\xe6I\
+\xc9\xf7\xf1G\xdf\xff\xfd\xf9\xa7\x1fO?\xaa\x8fO\xda\
+pdqO:I\xcaJr6\x10\xc8\x1f\xe7\xdf\xbd\
+\x91\xb14a\xa2\xdap%\x81\xf3lNN\xdalt\
+B\xe7\xc0\x8e\xa4D1|\xcc\x1a\x93R\x01\x9e\x08q\
+\xd0\x025\xd6q\x06\xa9\x88\xa4]\x0dko\x85Ac\
+\x13\xe0\xdc\xcc\xa0\xb5$\xea\xa1\xc4\x02\xb9S.|\xaa\
+\x5c\xa6!\x12\xb6\xa4\xf1\xd64\xa5a\xca!\xa5\x81\x9d\
+\xd2\x98\x03J\xe3DD'\x09c\x98pHY\xd4N\
+Y\xdcSe\xb1\x0dYt\xfe\xbdrz\xf7|@i\
+v\x0b\x13\xbe\x99\x87\x22\x11\xd2>\xfa\xebD\xf0\x1f\xb3\
+\xbbg\xde\x93\x1ef\x03!\x82\xf3N\xa1\x1eH~D\
+\xf0@\x8f\x1a\x80@\x0bNjC)\xb0H\x8f>\xaa\
+m\xc5A\xaa\xda&\x1c@\x09\x94\xba\xb6\xc5\x06\x0cq\
++\x1c\x0e\x08\x87\xdb\x09\x87\xf9:86\x9c\x9c\x8f7\
+\xc5\x9f\x95\xd0\xc5\xd0\x0e\xe4s\xc4=\x88\xb4[6\x0e\
+Y\xc1Qa8\x88\x1d@\xd4?\x08\x15\xc0\x82\xd4\x83\
+!\xfd\x03\x12\xca\x05\xf4u$P\x0a\x09\x12\xb0~\x06\
+C-\x9c\x91\xa0+\xda\xf9\x96z\xe7\xddz\x0c\x9c\x92\
+\xc2yP\xe6\xf9;KT\x1a\x0e\xb5\xb3\x04!1h\
+\x03:\xbf\xb3\xe4\xfe0\xb3\xb3<\x88\xbe\xd1\x01\xe4=\
+\x97\x06u\xa0s\x03\x01\x8f\xde\x83\xf5\x83aJ\xd29\
+\xc2\x08\xa3\x945\xc6\x0d\xac\x13\xca\x18\x1bZG\x89x\
+\xbch8\xf7! \x88\x80\x00\xaa~\x92\xd0F\xc8`\
+\x8d\xd7\xc9;\xa6\x9a\x87\xf1\xf4\xddoZ\xb2\xc8\xa1\x94\
+X\x17C\x0b\x08\xfc\xf1u9\x94\xaf\x09\x00\xca\x0bU\
+\x1f\xfb#O\x00\x87\x17LG\xb8\xf3\x82\x99\xff\xc8\xfb\
+\xbd\xe7\xcfX\xa9\xe5\xa1f\xac\x14A\x928\xde\xc3\xae\
+)+\xb5\xaaO\xd9g{\x9atT&s\x90\xc28\
+\x0d\x01M\x84?\xc5\x98(\x01\xda\xa3wP\xa1\xd6\xa9\
+\x9b\x02PR\xe5\xc3\xb9\xb0\x00\x18\x9c7;]\x98\xc2\
+\x83\xe0\xe1\xcc\xe1\xce\xf4\xcaxi\xf5\xeea;w\x90\
+a\x87p\xc0\x05\xc3j\x87z\xa7\xf5\xa1\x84\xfa\xb0\x0f\
+\xbdA@\x04\xcc\xef\x0f\x10\xa0\xb6z\x07%$\x00\x1a\
+\xac\xaf\xdeF\x04\xef\x94L\xabw\xb7\xdey\xb3^Z\
+\xbd\x0f\xb3\xf7\x10F*\x04\xe3\x06RxT\xa8iM\
+b\x1a\x06\x0bj\xa0\x84\x03m\xc0\x87\x81\x13A\x05c\
+%R1z\xa1h8p\xf4\x15~\x08\x1d\x1e\xce\x10\
+x\xd2\xe9\xb0\xd3~\xd1\x99ok\x08\xce\xed0\x04\x8f\
+\x8d\x0d\xadL&Pn\xd6\xbc3\x95\xb6\x1b\x15\xce\xbb\
+\x15x\xc7\xab\x1e\xb9\xa5d\x95\x82s\xd2S\xda\x08i\
+x\xf3\x80G\x07XI\x0f\xbe\xb9B\x0c\xfa\xff7W\
+\xcfD\xce\xfd\x87\x91\xb3A\xa03\xe8\xa1\x09\x9d\x13\x1a\
+\x94\x0eu\xe8\x94\x15\xd2*\xef\xd3\xae\xa6Q3NP\
+\x0e\x16|\xfd\xf2\xe1\xdbw\x0e^\x9cr\x8ch#\xe2\
+\xf0f\xb6\x98.o\x86\xd5R\xce\xefp\xb7\x95W\xa1\
+\xa7R\xa9f\xf9\xd5\xf8\xa2X\x7f\x1aO9\xbatK\
+\xd1\xfdKY\xde\xe3\x94\x8c/\xaeg\xd3b\xb3\x9c\x17\
+\x04\x1b\xc7\x94\xc2C\xc1j6\xddF_\x9e\xfd\x93t\
+\xbc\xad\xe4l\xb9\x9a\x16\xab\x87\x1e\xa0A\x8e\xef<\xc9\
+\x00l\xfc\xc4\x02\x1eOE>\x8f\x9f\x87w\xa1\x1cT\
+\xda\x1c\xfc\x97\xe5\xf2\xb2#Q\xe9t\x9c\x90\xd2j\xdf\
+*\xa2\x118)\xac\x0aA\xda\xad\x10R[\xcc\x14E\
+\xe7dZ\x0c\xafW+\x8e#\x9ds\x00p3\x0ex\
+\xfdiy\xc3p\xf1\x81\xff\xbax@o\xcdH,.\
+\xa8\x1f}u\xdb\xa6\xde5\xa9\xc5\xe5\xd5}\x01\x09\x99\
+\x98\xb2r\xd6\x89m\x1aM,\x19\x9eQ\x84kYJ\
+KN*#~\xa5\x15n\xee8\xee\xf9\xf6\x8e)\xb5\
+y\xc6Y\xa5e\xe5\x10:\xe3L\xb4\xbb:\xad9\xc6\
+h\xd2]c\xa6\x98\xb6\xcbb3\x9e\x8e7\xe3J\x99\
+U\xbe\x0c\xcb\xe4\xc8\xee\xf3\x1bJ\x95\xc9\xf9\x8c\xe2\xae\
+9\x97\xb2\xdc\x8e-\xb4\x0cw\xa6D7\xba\xba\x1b|\
+\x1d[\xfexJ\x04\x04\xeb4*L\xaf\xd2S?\xf5\
+^?\xc4(\xf2\xb7\x1ci\xbd~V\x97gK\x9a\x06\
+\x97?\x15\xe7\x9b\xbf\xadf\x17\xb3E\xa9\x09\xea\xb5\xea\
+fy\xb5\x99]\xce\xbe\xc4\xd5\xfcC\xb1\xd9\x10rI\
+\xd4\xcd\x98\xc2\xd77\x15\x99\xf95),K9\x0c\x8e\
+t~O\x0emLC\xf9\xe5\xbf\x7fP\xba\xcc0\x9a\
+\xf7\xbcj\xd4\xc8\x88f&i\x8a\xccurW3\x9e\
+r\x83P\xf0\x16b<_\x974j\xb1)N\xcaI\
+X\x0fS\x5c,\x7fN%\xa9>\x19 \xb1\x98\x8f'\
+\x89K\x1c\x05\xa3\xdc\x1c\x07\x91\x99\x98\x04}\x8e\xfc`\
+\x83uh\x94\x81?\x22\x10L\xceZ\x09\x95U3\xe5\
+%]\xd08\xfe\x9f\xd3\xf7\x14\x0f69\xfe\xc7r\xf5\
+{9\x1d\x99:>[^\x13\x18\x1c\x95>9>/\
+\xfb\x9b]\x92_\xe5\x9b\x17\x7f\xa1\xab\x02/G\xa9\x80\
+\xeb\xb0G\xe0\xe6\x15\x83UQ^\xa6\xd8v\xff\x84\xfe\
+]\xce\xb8\xc1\xe8\xc3\x86\xc2\xbd~d\xbe\xe5\xb4\xbf\x1f\
+\x07\xa5\x1e\x866\xaaf\xf9\xeb\x17/\xba[\xd0\xe8\x07\
+\xd2\x0b\xd7\xfa\x0b\xd0\xce\xeb\xcf\xd6\xcb\xcf\x17{\xd6\x7f\
+\x06\xfe\x09\xdf\xddIi\xd0\x9d6\xbft\xab\x87f\xb7\
+b\xad\xc1@\x8e\x13x\x8b>49\xf9<'\x12&\
+\xc7\x89\x8aN\xde\xf8\x06'%\xf3\x9c\x82\xd59N>\
+\xbcy\x7f\x82MN*\xcb\x09\xd0\xb8\x1c\xa7\xb7xr\
+r\xda\x1a\x93\xcesr\x98\xe5t\xaa\xdf\xa9w\xa1\xc9\
+)\x8f\xb8\x92!dC\xc5O\xde\xab\xf7\xa6\xc9\xc9\xe7\
+9i4\xd9\xaf^\x09\xa6\xf7M+@\x99\xe7\xe4\x94\
+\xda\x1f\xda\x9d8\xa9\xfb\xd8\xee\xe64\xd871\xfc\xd3\
+&F8\xf4\xcc0h\x8cqMI\x5c\x89\xc9v\x9d\
+\x03Z\x0b\xda\xe4m\xd1\xbf\xf1'\x0d~\x1a*~\x19\
+\xdd\xab`\xad\xf7y\xfd\xd3\xd3\xe2\xe8\xf2ZC\x8by\
+\xfd\xf3\xd3\xe4\x14\x0e\xa5\x7f\x03YN\x06\xe1)c2\
+\x98\xe5\xe4\xb5\x0e\xf9+\x15\x1d\x9c\x8c\xc9p\x82,\x13\
+\xa0i\x8bM&.k\xd8\xdds!7J1\x07\xfb\
+\x0fq\xed\x90\x82N@A;\x9c\xa0\x15L\xb0\x15\xa6\
+'h\xcd\xaa\xa7\x22\xc4\xd3\xc5`\x93\x89n\x5c\xebx\
+,B \x9f\x04\x91\xa9\xa1C\xfd\xb7#\x13\x9aq\x09\
+_\x0fL8\x000\x0e\x9e\x07\x0c\x1c\x02\x98\x14\xe4\x90\
+B\x1c\xbe\x1a\x16g\x9f\x0a\x0b\x06|\x8b\xbe\xc9\xc4?\
+\x0f\x16\xf5$X,'S\xc4D;^\xa2\x19-\x91\
+\x07&\x7fq\xae!\x93\xcf;-)\x9d\xda\x7fw.\
+q2yN\xd6\xe1\xfe[s\x89\x93\xdb\xb1\x09\xd2n\
+\xff\x9d\xb9\xc4i\xc72\x01`\xf6\xde\x98K\x9c\x02d\
+9\xa1\x04\xb5\xff\xbe\x5c\xe2\x94G\x5c\x83R\xfbo\xcb\
+%Ny\xc4\x8du{\xee\xca59\xe5\x10\x87'\xcc\
+\xb1\x102\xd3\xe3\xe5\x15\xdd\xf8\xa8jr\xda\x9aP\xea\
+\x89\xf2?\xf7\x14\x0eB\xef'\xfa%\xa4\x96\x1e\xec\x00\
+\x14P\xdek\x01N\xc5\xcc\x09g\x9c,3\xde\xb0\xee\
+(\xc9q\x03\x81\xb3\xc6\xdb\x98\xd5\xa0\xa9\x1d\x80\xe7\xd4\
+\xc0;.\xa0\xb6D\xe0\x9aD\xe0\x86\x94\xa5\xa4ev\
+U\x92\xba\x89\xed\x02\x8f\xa3\x1c\xce\x97^]\xf0\x87\xe0\
+Ha\xe2]\x9a\xeaNn\xebb\x0de\xf9\xa8Z\xde\
+\xc3I\xa1\x09G\x91\xd5f\xcbw\x1eR\x83\xb5\xd6\xdd\
+\xc7]H4\x0e4\x0e\x86A\x04\xe3\x11\x91\x92(P\
+\x81A\xadJ&\xe9\x0d\xcerZ\xf0a\x8f\xfc\xc8\xe4\
+\xfe\xc3\xe0WHw\xaf\x05u\x83e\x8e\x92\x06 :\
+\x13I\x00{\x02 \xe5\x08T\xca;\xc7\x08U\xf9\x13\
+\xce;\xf9\x90w\x9eQ\x8d9\x08\x8c3Q\x18\xf8\x8a\
+R)\x05J\xa5\xd8\x07\xa5@\xa9\x14{\xaf\x14\xea\xdb\
+0\xdf*Y)\xa5=&\xcf\xba\xa9\x1b\x13\xeaCC\
+\xa3:7\xa6\x12R\xbe\x0c\x962\x03`(\xd8\xd40\
+h\x1d8\x0b\xfe\x017)\xb4\x96\x1em\x93\x16\x03\xab\
+\xa24\x89\x0aN\xc8H=iQ\x8d\x95`\xea\x1d\x80\
+\xaf\xf7\x1e\xf98+|\x00\xa7\x1d\xe7K\xcd\x80\x0e`\
+\x80\xf3\x9c\xd3\x12\xac-\xf9\xf9`\x022\xcdxtR\
+G\x9a\x03\x85\xc8\xe3\x91\x81\xd2\xa8\x90\x81\xd7\x1e\x14\xf1\
+b\x9a\x0fVY\xa6\xa9\xe0H\x16\x90\x9c\x96\xda(\x87\
+eN\x0b\x1a\x8e4&jJ\xd6d<\xe1|\xc2!\
+r3\x16\x0c\x12-f\xa4\x02\xe59\xf3S\x03\xd3\xb6\
+rMH\xba\xab+\xb9|W:^M\xb6MS\xd8\
+1I\xa5\xb0^j\x87\x18(\xeey\xb5\xfc\xbd {\
+Y\x14\xf7\xe9\xf2E=\xd5\xd1eS\x90\xf7\x1fUU\
+`\xd7F\xafm\x8f\xe3\x9f|\xa8\x13\xff\xb9\x9c-\x9a\
+\xd4\xcb\x19\xbfs\x9a\xd1\xafc]\xd1\xa6cz\xdb\xbf\
+Z\x8d\xef\x1a\xbd25:\x5c\xaa)\xc0\xc8\xfa\x07m\
+Uk\xa7\x9b\xe1\xf9\xdc\x9c\x15J\x99\xe6\xbcH\xdf\xf9\
+\xd5\x89\xe9rb\xe3b\xa2\xf2-\xda\x1d\xd3\xd2<`\
+\xe5\x91Z\xdf\xf4\xe8\xb7\xf2=\xd2)=NuhU\
+\xc5/Y\x1f\x08\xe8}\xb0\xa5\x0b\xac2C\x05\xc2\xb3\
+\xc1\xc6o\x81\x81>\xd6\xf9\xf2k\xde\x8bJ\xc8\x0b\x08\
+\x0e\x13\xd7|\x08_\xb2\x9e-\xfe\x1c\xbeO~\xa0\x1b\
+`\x1d!\xad\xaf[\x11\xa9\x0a\x83\xad>\xcd\xdaH@\
+\x929 \xbb\xf4A\xc0\x9e\xf7\xf4\x93*p\x81\xb6\x91\
+Bt\xcd\x99\x98\xb2\x5c\xc6\xe6\x0f\xdc\x82\x1c(\xb7g\
+\xef\xc9\xec\xee\xfdi\xde\x99~\xe9\x112\xcf\x97\x12\xdb\
+R:\xecJ\x99\xf7\xdc\xc1\x09\xad5I\x13\xa5\xd4\xa5\
+\x94>\xb8H\xb1\xf4\x9331ec\x19Ii\xb8\xc5\
+\xfd\xc2\x91V\x8do+\xa5iK\xe9\xe5~]\x1ad\
+\x02j\xc7RzI2\x99(\xa5aIX\xee\x92\xc2\
+?9\x13S6\x96\xb1\x94\xdc\x22\xea2\xfa\xe7\xc0\xec\
+\x9e-\xe5\x0e\xc9\x5c[2\x90P\x13\xad\xdd\xe5I\x9b\
+\x10\xa40\x83\xe8\x9f{\x81\xb5\xc3U\x88\x05\x11\x03U\
+l\x0d\xb0\x03T\x9b@mT\xb4h\xef\xef\xb1`/\
+o\x89\xd8\xea\xb7\x95\xad$\x1f]\xd0q*]\xa5\xee\
+^\xa3\xce\x5c\xa1\xee^\x9f\xce_\x9d\xde\x0f\xab\x0f`\
+\xbb\x9b\x80tup\xebu\xe9n/i,\xed+\xd2\
+\x8d\xeb\xd1h<P\xb0z\xc6E\x0e\xa5\xf0\xc6kB\
+U\x0a\x85R\xc6-bJ\xa6b-\xbd\xd0\x04\xa9\x19\
+\xa0!\x9a\xd4\xda\x1d=c\xf5\xe4ppc4j_\
+\x9bO\xdd\x90\xa26<\x7f\xa8\xe5\x14\x1d\xb6\x96S\x94\
+\xd8\xb5\xa9\xa0\x1e\xb9\x9a\xca\xeej\xca\xb4\xe4}\xaa\x95\
+S\x0e\x94L\xabi\x9b\xc6\x15\xf7\xac\xa6!\x18\xfa\x17\
+\x97\xd3\x94\x1b\x82'\x1dX\xcb\xeb\xa9#H\x8c2J\
+'\xdb\xc8l\xa1r\xba\xf7\xf8\x87\xd1}R\x81\xf7\x84\
+\xb2\x90\xe8h/\xcb\x19-\xcb\xd3GJ\xa0\xa2D\xb0\
+\xd5\xeff\xf5*\xf3\xe5\xc1jV\xc5\x84\x03s\xdd\xbe\
+\xc3\x09k!\xf9\xbb\xf8\xb7'\x86\xac\x94W\xfd\x08~\
+\xfdoL\x1c\xed\xf5\x10\xc3\xad.b\x9b\x87\xb0|R\
+0>\x1c\xb5|\x91v\xcef\x1cV\xf2f]W\xd7\
+u\x87\xc9Uv\x1dL\xe9Y\xa2\xe22\x96\x14e\xef\
+F9\x1f5\xad\xcb\x0ag\x00=x\xf7\x14K\xd9?\
+\xff\x1d\x82;\xda\xb1\x84dW\x9c\xfc\xca\x94V\xb0\xfc\
+\xaccd\xf2{\x18\x0d;\xce\xa5A\x89h\xe2n\xe0\
+\x05h\xaf\xa4S\xbc\xf6Ja\x8dF\x055\xaa\x03\x01\
+\x0e\x83V\x03\xb0\x02L\xf0\x80=\xeb\x85\xf7>(\x1c\
+(+\xbc\xb2Zqk\x87Bk4^\x0f\x10\x045\
+Ep=O\xfdx\xc3/i\x90\xb0@g\x10R\xdf\
+\x89v\xbf\x85\x08\xa0U\x9d\x0a \x851V\x87\x1aG\
+\x00\x13w\xf8\xa6\xd17\x80\xe2\x0c\xe8\xda(A\xa2@\
+m\x9cI\xd2l\x95\xfbK\xcb\xa4\xc1:g\x0fp\x8c\
+|\xb2\xcb\xfbwz\xba\xc7\x9d\x12\x15\xb4\x965\xa9\xdd\
+\x96em\xcb\x96\xcaw\xed[w\xcd[\xd7\xd64)\
+\x07\x9e\x96/=\xd0\xf7\x8bWP-B\xac\x92]\xcc\
+\x08Gt\xe5Jv\x9f4r`\x85I\xeb\xd6\x1e\xcf\
+\xdaZ\xc0\xbd\xf9\x06\xde\xfe\xff\xee\xd2\xb9\xc7\x8f\xc9\xe6\
+Gg\xfd\x1abpy\xbf\xe6}/\x82\x0d\xaa\x84\xbe\
+\x87X\xde\x16c\xef\x16\x04J\xf4\xda1\xd1{#=\
+\xf2a\xc6j\x00`R`\x15\x05U%\xa9E\xb0\x22\
+H'S);)\x1d\x8c\x8c|\x95B\x17,\xd1\x8c\
+\xd0\x5cx\xaf\xfa\xeaws )\xd7~\x1d\x89AF\
+l8\xa8\xe7\xf5\xbf\x00\x1d$M\x88\x06W\x00\x00\
+\x00\x00\x03\xee\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\x8f\
+PLTE\xff\xff\xff\xdd\xe1\xe4\x97\xa2\xad`p\x80\
+FYlCWjWhy\x86\x92\x9f\xcc\xd1\xd7\xfc\
+\xfc\xfd\xf8\xf9\xfa\xa8\xb1\xbaN`r0EZ3H\
+]<Qf=Rg5J_/DYATh\
+\x8c\x98\xa4\xec\xee\xf0\x90\x9b\xa74I^7Lai\
+~\x91\x9b\xaf\xc1\xb1\xc5\xd6\xb3\xc7\xd8\xa3\xb7\xc9x\x8d\
+\x9fAVkn|\x8b\xe9\xeb\xedBWk\x9a\xad\xbf\
+\xce\xe1\xf0\xd1\xe5\xf5\xd0\xe4\xf4\xcf\xe3\xf3\xad\xc1\xd2T\
+i}.CY\x7f\x8c\x99\xdd\xe0\xe4\x9a\xae\xbf\xdf\xec\
+\xf7\xe1\xed\xf7\xd4\xe6\xf4\xce\xe2\xf2\xd1\xe5\xf4\xb2\xc6\xd7\
+H]q7K`\xbe\xc5\xcb\x96\xa1\xac\xe4\xee\xf7\xd7\
+\xe7\xf4\xcd\xe2\xf2\x8b\x9f\xb1/EZv\x84\x92\xfb\xfc\
+\xfc_p\x80\xd4\xe6\xf3\xd1\xe4\xf3\xd2\xe4\xf3\xcf\xe2\xf2\
+\xd0\xe4\xf3\xb7\xcb\xdcM_q\xe8\xeb\xedFYk\xdf\
+\xec\xf6\xcf\xe3\xf2\xc6\xda\xeaSh|>Qe\xd8\xdc\
+\xe0CVi\xb3\xc8\xd8\xc7\xdb\xebUj~<Pd\
+\xd6\xda\xdeVgy\xbd\xd1\xe2F[pGZm\xe3\
+\xe6\xe9\x85\x92\x9e\x9a\xae\xc02H]hx\x87\xf7\xf8\
+\xf9\xcc\xd1\xd6AUh\xac\xc1\xd2\xc1\xd5\xe5Xm\x80\
+1F[\xaa\xb3\xbc\xfc\xfd\xfd\x8d\x98\xa4Ti|l\
+\x81\x94cs\x83\xf0\xf1\xf3n}\x8c\x8a\x9f\xb1Xl\
+\x80_o\x80\xe9\xeb\xee\x7f\x8d\x9a7L`/DZ\
+AVjSg{fv\x85\xf9\xf9\xfa\xbf\xc5\xcci\
+x\x87\xe4\xe6\xe9fv\x86-CXgv\x86fu\
+\x85gw\x86\xde\xe2\xe5hw\x87eu\x85\xdf\xe2\xe6\
+w\x84\x92x\xf3\xbaI\x00\x00\x00\x01bKGD\x00\
+\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\x00\x00`\
+\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07tIM\
+E\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\x01#\
+IDAT\x18\xd3c`\x00\x02F&f\x16V6\
+v\x0eN\x068\xe0\xe2\xe6\xe1\xe5\xe3\x17\x10\x14\x12\x16\
+\x11\x85\x8b\x89\x89KHJI\xcb\xc8\xca\xc9\x0b)(\
+B\x05\xb9\xc5\x95\x94UT\xd5\xd4\xd4\xd454\xb5\xb4\
+\xb9\xc0b:<\x12\xbaz\xfa\x06\x86@`dlb\
+j\x06\x164\xe7\x95T\xd1\xb7\xb0\xb4\x02\x89\xaaY\xdb\
+\xd8\xda\x81\x04\xed\xf9\xa4T\x1d,\x1d\x9d\x9c\x81\x82.\
+\xae\xf2n\xee A\x0f~i5C+'O'\xa0\
+\xa0\x97\xb7\x8f\xaf\x1fH\xd0_ @\xcd\xd0\xd0\x19\xac\
+\xd200(8\x04$\x18*(\xabf\x08\x05\xeaa\
+\xe1\x11\x91 \xc1(!9u\x98\xa0jtLl\x1c\
+H0>A>\xd1\x08\x22\xa6\x96\x94\x9c\x92\x0avR\
+Z\xbaP\x86\xb1\x9a\x8b\xba\xa1\xbajR&oV6\
+\xc4G\xa29Z&\xb9\xae\xde\x81a\xd1y\xbcZ\xf9\
+\x91P\x7f\x16\x14\x16\x15\x97\x94\x06\x85\xc7\xa4d\xd9\x0b\
+\x95\xc1D\xcb+l\xdd|\x83#*S\xb3\xab\xaak\
+\xe0\xa2\x0cv\x8a~!\x91 {#kk\xea\x22\x19\
+\xd0\x01P\xb4\xbe\x01C\xb4\xaaQ\xa8\x09C\x90\xa1\xb9\
+\xae\x05\x00\xcf\xbe>\xfb#\xb9\xea4\x00\x00\x00%t\
+EXtdate:create\x002\
+023-03-08T17:27:\
+26+00:00\x9e\x98\xa5\x85\x00\x00\x00%\
+tEXtdate:modify\x00\
+2023-03-08T17:27\
+:26+00:00\xef\xc5\x1d9\x00\x00\x00\
+(tEXtdate:timest\
+amp\x002023-03-09T0\
+6:20:50+00:00\xdd\xe8\xb2\
+\xde\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x05\
+\x00j\xc4c\
+\x00d\
+\x00e\x00m\x00o\x00s\
+\x00\x0e\
+\x00\x97\xbf\xa2\
+\x00d\
+\x00o\x00c\x00u\x00m\x00e\x00n\x00t\x00v\x00i\x00e\x00w\x00e\x00r\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x0c\
+\x0dJ\x02g\
+\x00p\
+\x00a\x00s\x00t\x00e\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x11\
+\x0e\xab3G\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00r\x00i\x00g\x00i\x00n\x00a\x00l\x00.\x00p\x00n\x00g\
+\
+\x00\x0c\
+\x02\xb1%j\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00.\x00s\x00v\x00g\x00z\
+\x00\x0f\
+\x0a\x12\xe5*\
+\x00h\
+\x00e\x00l\x00p\x00-\x00a\x00b\x00o\x00u\x00t\x00.\x00s\x00v\x00g\x00z\
+\x00\x10\
+\x0a~p\x07\
+\x00m\
+\x00a\x00g\x00n\x00i\x00f\x00i\x00e\x00r\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x1c\
+\x02\x8c\xf4'\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00-\
+\x00p\x00a\x00g\x00e\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x14\
+\x03\xba\xd1'\
+\x00z\
+\x00o\x00o\x00m\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00@\x002\x00x\x00.\
+\x00p\x00n\x00g\
+\x00\x13\
+\x05\x93\x9e\x87\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00@\x002\x00x\x00.\x00p\
+\x00n\x00g\
+\x00\x0f\
+\x0f\x91\x8b\xc7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00u\x00t\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x14\
+\x04jv\xe7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00b\x00e\x00s\x00t\x00@\x002\x00x\x00.\
+\x00p\x00n\x00g\
+\x00\x12\
+\x01\xfcL\x07\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00w\x00i\x00d\x00t\x00h\x00.\x00p\x00n\
+\x00g\
+\x00\x14\
+\x06\x10\x9a\xe7\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00.\
+\x00p\x00n\x00g\
+\x00\x08\
+\x06\xc1Y\x87\
+\x00o\
+\x00p\x00e\x00n\x00.\x00p\x00n\x00g\
+\x00\x18\
+\x0d\xd6\xb5G\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00-\x00p\x00a\x00g\x00e\
+\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x03\x03\x9bG\
+\x00z\
+\x00o\x00o\x00m\x00-\x00i\x00n\x00.\x00p\x00n\x00g\
+\x00\x14\
+\x05\xda\x8d\xc7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00r\x00i\x00g\x00i\x00n\x00a\x00l\x00@\x002\x00x\x00.\
+\x00p\x00n\x00g\
+\x00\x11\
+\x0c2UG\
+\x00z\
+\x00o\x00o\x00m\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00.\x00p\x00n\x00g\
+\
+\x00\x0a\
+\x03\x96\x0eG\
+\x00c\
+\x00u\x00t\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0f[7G\
+\x00z\
+\x00o\x00o\x00m\x00-\x00i\x00n\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x06O7\xc7\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x03w\x8f\x07\
+\x00o\
+\x00p\x00e\x00n\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x06\xeb\x97\xe7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00u\x00t\x00.\x00p\x00n\x00g\
+\x00\x15\
+\x0f!\xb3\x87\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00-\x00p\x00a\x00g\x00e\
+\x00.\x00p\x00n\x00g\
+\x00\x09\
+\x00W\xb8g\
+\x00p\
+\x00r\x00i\x00n\x00t\x00.\x00p\x00n\x00g\
+\x00\x15\
+\x02/h'\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00w\x00i\x00d\x00t\x00h\x00@\x002\x00x\
+\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0d\x1d\xfd'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x05R\xbf'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x03g\xb5*\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00.\x00s\x00v\x00g\x00z\
+\x00\x08\
+\x06|Z\x07\
+\x00c\
+\x00o\x00p\x00y\x00.\x00p\x00n\x00g\
+\x00\x19\
+\x0d\x16F'\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00-\
+\x00p\x00a\x00g\x00e\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x03O\x98\xe7\
+\x00c\
+\x00o\x00p\x00y\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x17\
+\x0fA\x96\xe7\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00@\
+\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x11\
+\x09\x02(G\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00b\x00e\x00s\x00t\x00.\x00p\x00n\x00g\
+\
+\x00\x0b\
+\x07tw\xe7\
+\x00p\
+\x00r\x00i\x00n\x00t\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x09\
+\x0a\xa8\xbaG\
+\x00p\
+\x00a\x00s\x00t\x00e\x00.\x00p\x00n\x00g\
+\x00\x07\
+\x0a\xc7W\x87\
+\x00c\
+\x00u\x00t\x00.\x00p\x00n\x00g\
+\x00\x19\
+\x08\xc3Z\xea\
+\x00d\
+\x00o\x00c\x00u\x00m\x00e\x00n\x00t\x00-\x00o\x00p\x00e\x00n\x00-\x00r\x00e\x00c\
+\x00e\x00n\x00t\x00.\x00s\x00v\x00g\x00z\
+\x00\x0d\
+\x099\xc9\x07\
+\x00m\
+\x00a\x00g\x00n\x00i\x00f\x00i\x00e\x00r\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x10\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x002\x00\x02\x00\x00\x00&\x00\x00\x00\x04\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x03\xbe\x00\x00\x00\x00\x00\x01\x00\x00\xb9n\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x01\xdc\x00\x00\x00\x00\x00\x01\x00\x00m\xfb\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x03\xd6\x00\x00\x00\x00\x00\x01\x00\x00\xbc\x18\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x01\x00\x00H^\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x0e\x98\
+\x00\x00\x01\x88\xd8-C\xa1\
+\x00\x00\x02\x80\x00\x00\x00\x00\x00\x01\x00\x00\x86\xa7\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04\xb8\x00\x00\x00\x00\x00\x01\x00\x00\xf0\x17\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04D\x00\x00\x00\x00\x00\x01\x00\x00\xd08\
+\x00\x00\x01\x88\xd8-C\xa1\
+\x00\x00\x03T\x00\x00\x00\x00\x00\x01\x00\x00\xadX\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x02\xf2\x00\x00\x00\x00\x00\x01\x00\x00\x95\xf2\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x010\x00\x00\x00\x00\x00\x01\x00\x00Pu\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x01\xae\x00\x00\x00\x00\x00\x01\x00\x00g[\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04(\x00\x00\x00\x00\x00\x01\x00\x00\xcai\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x01^\x00\x00\x00\x00\x00\x01\x00\x00Xz\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x02\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x8ac\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x02\x06\x00\x00\x00\x00\x00\x01\x00\x00q\x88\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x03.\x00\x00\x00\x00\x00\x01\x00\x00\xa9v\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04j\x00\x00\x00\x00\x00\x01\x00\x00\xe6v\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x024\x00\x00\x00\x00\x00\x01\x00\x00u~\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x03p\x00\x00\x00\x00\x00\x01\x00\x00\xb1U\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x050\x00\x00\x00\x00\x00\x01\x00\x01\x04L\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x05x\x00\x00\x00\x00\x00\x01\x00\x01\x13\x93\
+\x00\x00\x01\x88\xd8-C\xa1\
+\x00\x00\x05\x08\x00\x00\x00\x00\x00\x01\x00\x01\x00\x1d\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x05\xb0\x00\x00\x00\x00\x00\x01\x00\x01%\xc7\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00#\xfd\
+\x00\x00\x01\x88\xd8-C\xa1\
+\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00?\x91\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x05L\x00\x00\x00\x00\x00\x01\x00\x01\x07\xf3\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x05d\x00\x00\x00\x00\x00\x01\x00\x01\x0ed\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x02\xca\x00\x00\x00\x00\x00\x01\x00\x00\x92<\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04\x80\x00\x00\x00\x00\x00\x01\x00\x00\xeb\xb4\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04\x06\x00\x00\x00\x00\x00\x01\x00\x00\xc2\xd8\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x00D\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x02J\x00\x00\x00\x00\x00\x01\x00\x00}\x9b\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x00b\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xe2\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x03\x8e\x00\x00\x00\x00\x00\x01\x00\x00\xb5\x05\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04\xd4\x00\x00\x00\x00\x00\x01\x00\x00\xf8\xc6\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x00\xa1>\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x01\x8a\x00\x00\x00\x00\x00\x01\x00\x00_\xa4\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/demos/documentviewer/recentfilemenu.py b/examples/demos/documentviewer/recentfilemenu.py
new file mode 100644
index 000000000..36c7dc9f3
--- /dev/null
+++ b/examples/demos/documentviewer/recentfilemenu.py
@@ -0,0 +1,34 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QMenu
+from PySide6.QtCore import Signal, Slot
+
+
+class RecentFileMenu(QMenu):
+ fileOpened = Signal(str)
+
+ def __init__(self, parent, recent):
+ super().__init__(parent)
+ self._recentFiles = recent
+ self._recentFiles.changed.connect(self.updateList)
+ self._recentFiles.destroyed.connect(self.deleteLater)
+ self.updateList()
+
+ @Slot()
+ def updateList(self):
+ for a in self.actions():
+ del a
+
+ if not self._recentFiles:
+ self.addAction("<no recent files>")
+ return
+
+ for fileName in self._recentFiles.recentFiles():
+ action = self.addAction(fileName)
+ action.triggered.connect(self._emitFileOpened)
+
+ @Slot()
+ def _emitFileOpened(self):
+ action = self.sender()
+ self.fileOpened.emit(action.text())
diff --git a/examples/demos/documentviewer/recentfiles.py b/examples/demos/documentviewer/recentfiles.py
new file mode 100644
index 000000000..fdfc56d40
--- /dev/null
+++ b/examples/demos/documentviewer/recentfiles.py
@@ -0,0 +1,159 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum, auto
+
+from PySide6.QtCore import QFileInfo, QObject, QSettings, Signal, Slot
+
+
+DEFAULT_MAX_FILES = 10
+
+
+# Test if file exists and can be opened
+def testFileAccess(fileName):
+ return QFileInfo(fileName).isReadable()
+
+
+class RemoveReason(Enum):
+ Other = auto()
+ Duplicate = auto()
+
+
+class EmitPolicy(Enum):
+ EmitWhenChanged = auto(),
+ NeverEmit = auto()
+
+
+s_maxFiles = "maxFiles"
+s_openMode = "openMode"
+s_fileNames = "fileNames"
+s_file = "file"
+
+
+class RecentFiles(QObject):
+
+ countChanged = Signal(int)
+ changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._maxFiles = DEFAULT_MAX_FILES
+ self._files = []
+
+ # Access to QStringList member functions
+ def recentFiles(self):
+ return self._files
+
+ def isEmpty(self):
+ return not self._files
+
+ # Properties
+ def maxFiles(self):
+ return self._maxFiles
+
+ def setMaxFiles(self, maxFiles):
+ self._maxFiles = maxFiles
+
+ def addFile(self, fileName):
+ self._addFile(fileName, EmitPolicy.EmitWhenChanged)
+
+ def removeFile(self, fileName):
+ idx = self._files.find(fileName)
+ self._removeFile(idx, RemoveReason.Other)
+
+ @Slot()
+ def clear(self):
+ if self.isEmpty():
+ return
+ self._files.clear()
+ self.countChanged.emit(0)
+
+ def _addFile(self, fileName, policy):
+ if not testFileAccess(fileName):
+ return
+
+ # Remember size, as cleanup can result in a change without size change
+ c = len(self._files)
+
+ # Clean dangling and duplicate files
+ i = 0
+ while i < len(self._files):
+ file = self._files[i]
+ if not testFileAccess(file):
+ self._removeFile(file, RemoveReason.Other)
+ elif file == fileName:
+ self._removeFile(file, RemoveReason.Duplicate)
+ else:
+ i += 1
+
+ # Cut tail
+ while len(self._files) > self._maxFiles:
+ self.removeFile((len(self._files) - 1), RemoveReason.Other)
+
+ self._files.insert(0, fileName)
+
+ if policy == EmitPolicy.NeverEmit:
+ return
+
+ if policy == EmitPolicy.EmitWhenChanged:
+ self.changed.emit()
+ if c != len(self._files):
+ self.countChanged.emit(len(self._files))
+
+ @Slot(list)
+ def addFiles(self, files):
+ if files.isEmpty():
+ return
+
+ if len(files) == 1:
+ self.addFile(files[0])
+ return
+
+ c = len(self._files)
+
+ for file in files:
+ self.addFile(file, EmitPolicy.NeverEmit)
+
+ self.changed.emit()
+ if len(self._files) != c:
+ self.countChanged.emit(len(self._files))
+
+ def _removeFile(self, p, reason):
+ index = p
+ if isinstance(p, str):
+ index = self._files.index(p) if p in self._files else -1
+ if index < 0 or index >= len(self._files):
+ return
+ del self._files[index]
+
+ # No emit for duplicate removal, add emits changed later.
+ if reason != RemoveReason.Duplicate:
+ self.changed.emit()
+
+ @Slot(QSettings, str)
+ def saveSettings(self, settings, key):
+ settings.beginGroup(key)
+ settings.setValue(s_maxFiles, self.maxFiles())
+ if self._files:
+ settings.beginWriteArray(s_fileNames, len(self._files))
+ for index, file in enumerate(self._files):
+ settings.setArrayIndex(index)
+ settings.setValue(s_file, file)
+ settings.endArray()
+ settings.endGroup()
+
+ @Slot(QSettings, str)
+ def restoreFromSettings(self, settings, key):
+ settings.beginGroup(key)
+ self.setMaxFiles(settings.value(s_maxFiles, DEFAULT_MAX_FILES, int))
+ self._files.clear() # clear list without emitting
+ numberFiles = settings.beginReadArray(s_fileNames)
+ for index in range(0, numberFiles):
+ settings.setArrayIndex(index)
+ absoluteFilePath = settings.value(s_file)
+ self._addFile(absoluteFilePath, EmitPolicy.NeverEmit)
+ settings.endArray()
+ settings.endGroup()
+ if self._files:
+ self.changed.emit()
+ return True
diff --git a/examples/demos/documentviewer/txtviewer/txtviewer.py b/examples/demos/documentviewer/txtviewer/txtviewer.py
new file mode 100644
index 000000000..ef5a38fcd
--- /dev/null
+++ b/examples/demos/documentviewer/txtviewer/txtviewer.py
@@ -0,0 +1,144 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import (QDialog, QFileDialog,
+ QPlainTextEdit)
+from PySide6.QtGui import QAction, QGuiApplication, QIcon, QKeySequence
+from PySide6.QtCore import QDir, QFile, QTextStream, Qt, Slot
+
+from abstractviewer import AbstractViewer
+
+
+class TxtViewer(AbstractViewer):
+ def __init__(self):
+ super().__init__()
+ self.uiInitialized.connect(self.setupTxtUi)
+
+ def init(self, file, parent, mainWindow):
+ self._textEdit = QPlainTextEdit(parent)
+ super().init(file, self._textEdit, mainWindow)
+
+ def viewerName(self):
+ return "TxtViewer"
+
+ def supportedMimeTypes(self):
+ return ["text/plain"]
+
+ @Slot()
+ def setupTxtUi(self):
+ editMenu = self.addMenu("Edit")
+ editToolBar = self.addToolBar("Edit")
+ cutIcon = QIcon.fromTheme(QIcon.ThemeIcon.EditCut,
+ QIcon(":/demos/documentviewer/images/cut.png"))
+ cutAct = QAction(cutIcon, "Cut", self)
+ cutAct.setShortcuts(QKeySequence.Cut)
+ cutAct.setStatusTip("Cut the current selection's contents to the clipboard")
+ cutAct.triggered.connect(self._textEdit.cut)
+ editMenu.addAction(cutAct)
+ editToolBar.addAction(cutAct)
+
+ copyIcon = QIcon.fromTheme(QIcon.ThemeIcon.EditCopy,
+ QIcon(":/demos/documentviewer/images/copy.png"))
+ copyAct = QAction(copyIcon, "Copy", self)
+ copyAct.setShortcuts(QKeySequence.Copy)
+ copyAct.setStatusTip("Copy the current selection's contents to the clipboard")
+ copyAct.triggered.connect(self._textEdit.copy)
+ editMenu.addAction(copyAct)
+ editToolBar.addAction(copyAct)
+
+ pasteIcon = QIcon.fromTheme(QIcon.ThemeIcon.EditPaste,
+ QIcon(":/demos/documentviewer/images/paste.png"))
+ pasteAct = QAction(pasteIcon, "Paste", self)
+ pasteAct.setShortcuts(QKeySequence.Paste)
+ pasteAct.setStatusTip("Paste the clipboard's contents into the current selection")
+ pasteAct.triggered.connect(self._textEdit.paste)
+ editMenu.addAction(pasteAct)
+ editToolBar.addAction(pasteAct)
+
+ self.menuBar().addSeparator()
+
+ cutAct.setEnabled(False)
+ copyAct.setEnabled(False)
+ self._textEdit.copyAvailable.connect(cutAct.setEnabled)
+ self._textEdit.copyAvailable.connect(copyAct.setEnabled)
+
+ self.openFile()
+
+ self._textEdit.textChanged.connect(self._textChanged)
+ self._uiAssets_back.triggered.connect(self._back)
+ self._uiAssets_forward.triggered.connect(self._forward)
+
+ @Slot()
+ def _textChanged(self):
+ self.maybeSetPrintingEnabled(self.hasContent())
+
+ @Slot()
+ def _back(self):
+ bar = self._textEdit.verticalScrollBar()
+ if bar.value() > bar.minimum():
+ bar.setValue(bar.value() - 1)
+
+ @Slot()
+ def _forward(self):
+ bar = self._textEdit.verticalScrollBar()
+ if bar.value() < bar.maximum():
+ bar.setValue(bar.value() + 1)
+
+ def openFile(self):
+ type = "open"
+ file_name = QDir.toNativeSeparators(self._file.fileName())
+ if not self._file.open(QFile.ReadOnly | QFile.Text):
+ err = self._file.errorString()
+ self.statusMessage(f"Cannot read file {file_name}:\n{err}.", type)
+ return
+
+ in_str = QTextStream(self._file)
+ QGuiApplication.setOverrideCursor(Qt.WaitCursor)
+ if self._textEdit.toPlainText():
+ self._textEdit.clear()
+ self.disablePrinting()
+
+ self._textEdit.setPlainText(in_str.readAll())
+ QGuiApplication.restoreOverrideCursor()
+
+ self.statusMessage(f"File {file_name} loaded.", type)
+ self.maybeEnablePrinting()
+
+ def hasContent(self):
+ return bool(self._textEdit.toPlainText())
+
+ def printDocument(self, printer):
+ if not self.hasContent():
+ return
+
+ self._textEdit.print_(printer)
+
+ def saveFile(self, file):
+ file_name = QDir.toNativeSeparators(self._file.fileName())
+ errorMessage = ""
+ QGuiApplication.setOverrideCursor(Qt.WaitCursor)
+ if file.open(QFile.WriteOnly | QFile.Text):
+ out = QTextStream(file)
+ out << self._textEdit.toPlainText()
+ else:
+ error = file.errorString()
+ errorMessage = f"Cannot open file {file_name} for writing:\n{error}."
+ QGuiApplication.restoreOverrideCursor()
+
+ if errorMessage:
+ self.statusMessage(errorMessage)
+ return False
+
+ self.statusMessage(f"File {file_name} saved")
+ return True
+
+ def saveDocumentAs(self):
+ dialog = QFileDialog(self.mainWindow())
+ dialog.setWindowModality(Qt.WindowModal)
+ dialog.setAcceptMode(QFileDialog.AcceptSave)
+ if dialog.exec() != QDialog.Accepted:
+ return False
+
+ files = dialog.selectedFiles()
+ self._file.setFileName(files[0])
+ return self.saveDocument()
diff --git a/examples/demos/documentviewer/ui_mainwindow.py b/examples/demos/documentviewer/ui_mainwindow.py
new file mode 100644
index 000000000..5773ae5b8
--- /dev/null
+++ b/examples/demos/documentviewer/ui_mainwindow.py
@@ -0,0 +1,230 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'mainwindow.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtWidgets import (QApplication, QMainWindow, QMenu, QMenuBar,
+ QScrollArea, QSizePolicy, QSplitter, QStatusBar,
+ QTabWidget, QToolBar, QVBoxLayout, QWidget)
+import rc_documentviewer
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ if not MainWindow.objectName():
+ MainWindow.setObjectName(u"MainWindow")
+ MainWindow.resize(983, 602)
+ icon = QIcon()
+ icon.addFile(u":/demos/documentviewer/images/qt-logo.png", QSize(), QIcon.Normal, QIcon.Off)
+ MainWindow.setWindowIcon(icon)
+ self.actionOpen = QAction(MainWindow)
+ self.actionOpen.setObjectName(u"actionOpen")
+ icon1 = QIcon()
+ icon1.addFile(u":/demos/documentviewer/images/open.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionOpen.setIcon(icon1)
+ self.actionAbout = QAction(MainWindow)
+ self.actionAbout.setObjectName(u"actionAbout")
+ icon2 = QIcon()
+ iconThemeName = u"help-about"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon2 = QIcon.fromTheme(iconThemeName)
+ else:
+ icon2.addFile(u":/demos/documentviewer/images/help-about.svgz", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionAbout.setIcon(icon2)
+ self.actionForward = QAction(MainWindow)
+ self.actionForward.setObjectName(u"actionForward")
+ icon3 = QIcon()
+ icon3.addFile(u":/demos/documentviewer/images/go-next.svgz", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionForward.setIcon(icon3)
+ self.actionBack = QAction(MainWindow)
+ self.actionBack.setObjectName(u"actionBack")
+ icon4 = QIcon()
+ icon4.addFile(u":/demos/documentviewer/images/go-previous.svgz", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionBack.setIcon(icon4)
+ self.actionPrint = QAction(MainWindow)
+ self.actionPrint.setObjectName(u"actionPrint")
+ self.actionPrint.setEnabled(False)
+ icon5 = QIcon()
+ iconThemeName = u"document-print"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon5 = QIcon.fromTheme(iconThemeName)
+ else:
+ icon5.addFile(u":/demos/documentviewer/images/print2x.png", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionPrint.setIcon(icon5)
+ self.actionAboutQt = QAction(MainWindow)
+ self.actionAboutQt.setObjectName(u"actionAboutQt")
+ icon6 = QIcon()
+ icon6.addFile(u":/demos/documentviewer/images/qt-logo.png", QSize(), QIcon.Normal, QIcon.Off)
+ icon6.addFile(u":/demos/documentviewer/images/qt-logo.png", QSize(), QIcon.Normal, QIcon.On)
+ self.actionAboutQt.setIcon(icon6)
+ self.actionRecent = QAction(MainWindow)
+ self.actionRecent.setObjectName(u"actionRecent")
+ icon7 = QIcon()
+ icon7.addFile(u":/demos/documentviewer/images/document-open-recent.svgz", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionRecent.setIcon(icon7)
+ self.actionQuit = QAction(MainWindow)
+ self.actionQuit.setObjectName(u"actionQuit")
+ icon8 = QIcon()
+ iconThemeName = u"application-exit"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon8 = QIcon.fromTheme(iconThemeName)
+ else:
+ icon8.addFile(u".", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionQuit.setIcon(icon8)
+ self.centralwidget = QWidget(MainWindow)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.centralwidget.setEnabled(True)
+ self.verticalLayout = QVBoxLayout(self.centralwidget)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.viewArea = QWidget(self.centralwidget)
+ self.viewArea.setObjectName(u"viewArea")
+ self.verticalLayout_2 = QVBoxLayout(self.viewArea)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.splitter = QSplitter(self.viewArea)
+ self.splitter.setObjectName(u"splitter")
+ self.splitter.setOrientation(Qt.Horizontal)
+ self.tabWidget = QTabWidget(self.splitter)
+ self.tabWidget.setObjectName(u"tabWidget")
+ self.tabWidget.setTabPosition(QTabWidget.West)
+ self.bookmarkTab = QWidget()
+ self.bookmarkTab.setObjectName(u"bookmarkTab")
+ self.tabWidget.addTab(self.bookmarkTab, "")
+ self.pagesTab = QWidget()
+ self.pagesTab.setObjectName(u"pagesTab")
+ self.tabWidget.addTab(self.pagesTab, "")
+ self.splitter.addWidget(self.tabWidget)
+ self.scrollArea = QScrollArea(self.splitter)
+ self.scrollArea.setObjectName(u"scrollArea")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.scrollArea.sizePolicy().hasHeightForWidth())
+ self.scrollArea.setSizePolicy(sizePolicy)
+ self.scrollArea.setMinimumSize(QSize(800, 0))
+ self.scrollArea.setWidgetResizable(True)
+ self.scrollAreaWidgetContents = QWidget()
+ self.scrollAreaWidgetContents.setObjectName(u"scrollAreaWidgetContents")
+ self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 798, 479))
+ self.scrollArea.setWidget(self.scrollAreaWidgetContents)
+ self.splitter.addWidget(self.scrollArea)
+
+ self.verticalLayout_2.addWidget(self.splitter)
+
+
+ self.verticalLayout.addWidget(self.viewArea)
+
+ MainWindow.setCentralWidget(self.centralwidget)
+ self.menubar = QMenuBar(MainWindow)
+ self.menubar.setObjectName(u"menubar")
+ self.menubar.setGeometry(QRect(0, 0, 983, 23))
+ self.qtFileMenu = QMenu(self.menubar)
+ self.qtFileMenu.setObjectName(u"qtFileMenu")
+ self.menuHelp = QMenu(self.menubar)
+ self.menuHelp.setObjectName(u"menuHelp")
+ MainWindow.setMenuBar(self.menubar)
+ self.statusbar = QStatusBar(MainWindow)
+ self.statusbar.setObjectName(u"statusbar")
+ MainWindow.setStatusBar(self.statusbar)
+ self.mainToolBar = QToolBar(MainWindow)
+ self.mainToolBar.setObjectName(u"mainToolBar")
+ MainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.mainToolBar)
+
+ self.menubar.addAction(self.qtFileMenu.menuAction())
+ self.menubar.addAction(self.menuHelp.menuAction())
+ self.qtFileMenu.addAction(self.actionOpen)
+ self.qtFileMenu.addAction(self.actionRecent)
+ self.qtFileMenu.addAction(self.actionPrint)
+ self.qtFileMenu.addAction(self.actionQuit)
+ self.menuHelp.addAction(self.actionAbout)
+ self.menuHelp.addAction(self.actionAboutQt)
+ self.mainToolBar.addAction(self.actionOpen)
+ self.mainToolBar.addAction(self.actionRecent)
+ self.mainToolBar.addAction(self.actionPrint)
+ self.mainToolBar.addSeparator()
+ self.mainToolBar.addAction(self.actionBack)
+ self.mainToolBar.addAction(self.actionForward)
+ self.mainToolBar.addSeparator()
+
+ self.retranslateUi(MainWindow)
+ self.actionQuit.triggered.connect(MainWindow.close)
+
+ self.tabWidget.setCurrentIndex(0)
+
+
+ QMetaObject.connectSlotsByName(MainWindow)
+ # setupUi
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"Document Viewer Demo", None))
+ self.actionOpen.setText(QCoreApplication.translate("MainWindow", u"Open", None))
+#if QT_CONFIG(shortcut)
+ self.actionOpen.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+O", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionAbout.setText(QCoreApplication.translate("MainWindow", u"about documentviewer", None))
+#if QT_CONFIG(tooltip)
+ self.actionAbout.setToolTip(QCoreApplication.translate("MainWindow", u"Show information about the Document Viewer deomo.", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionAbout.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+H", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionForward.setText(QCoreApplication.translate("MainWindow", u"actionForward", None))
+#if QT_CONFIG(tooltip)
+ self.actionForward.setToolTip(QCoreApplication.translate("MainWindow", u"One step forward", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionForward.setShortcut(QCoreApplication.translate("MainWindow", u"Right", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionBack.setText(QCoreApplication.translate("MainWindow", u"actionBack", None))
+#if QT_CONFIG(tooltip)
+ self.actionBack.setToolTip(QCoreApplication.translate("MainWindow", u"One step back", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionBack.setShortcut(QCoreApplication.translate("MainWindow", u"Left", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionPrint.setText(QCoreApplication.translate("MainWindow", u"Print", None))
+#if QT_CONFIG(tooltip)
+ self.actionPrint.setToolTip(QCoreApplication.translate("MainWindow", u"Print current file", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionPrint.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+P", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionAboutQt.setText(QCoreApplication.translate("MainWindow", u"About Qt", None))
+#if QT_CONFIG(tooltip)
+ self.actionAboutQt.setToolTip(QCoreApplication.translate("MainWindow", u"Show Qt license information", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionAboutQt.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+I", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionRecent.setText(QCoreApplication.translate("MainWindow", u"Recently opened...", None))
+#if QT_CONFIG(shortcut)
+ self.actionRecent.setShortcut(QCoreApplication.translate("MainWindow", u"Meta+R", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionQuit.setText(QCoreApplication.translate("MainWindow", u"Quit", None))
+#if QT_CONFIG(tooltip)
+ self.actionQuit.setToolTip(QCoreApplication.translate("MainWindow", u"Quit the application", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionQuit.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+Q", None))
+#endif // QT_CONFIG(shortcut)
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.bookmarkTab), QCoreApplication.translate("MainWindow", u"Pages", None))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.pagesTab), QCoreApplication.translate("MainWindow", u"Bookmarks", None))
+ self.qtFileMenu.setTitle(QCoreApplication.translate("MainWindow", u"File", None))
+ self.menuHelp.setTitle(QCoreApplication.translate("MainWindow", u"Help", None))
+ self.mainToolBar.setWindowTitle(QCoreApplication.translate("MainWindow", u"toolBar", None))
+ # retranslateUi
+
diff --git a/examples/demos/documentviewer/viewerfactory.py b/examples/demos/documentviewer/viewerfactory.py
new file mode 100644
index 000000000..ecae6770b
--- /dev/null
+++ b/examples/demos/documentviewer/viewerfactory.py
@@ -0,0 +1,114 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum, auto
+
+from PySide6.QtWidgets import (QMessageBox)
+from PySide6.QtCore import (QFileInfo, QMimeDatabase, QTimer)
+
+from txtviewer.txtviewer import TxtViewer
+from jsonviewer.jsonviewer import JsonViewer
+from pdfviewer.pdfviewer import PdfViewer
+
+
+class DefaultPolicy(Enum):
+ NeverDefault = auto()
+ DefaultToTxtViewer = auto()
+ DefaultToCustomViewer = auto()
+
+
+class ViewerFactory:
+
+ def __init__(self, displayWidget, mainWindow,
+ policy=DefaultPolicy.NeverDefault):
+ self._viewers = {}
+ self._defaultViewer = None
+ self._defaultWarning = True
+ self._defaultPolicy = policy
+ self._displayWidget = displayWidget
+ self._mainWindow = mainWindow
+ self._mimeTypes = []
+ for v in [PdfViewer(), JsonViewer(), TxtViewer()]:
+ self._viewers[v.viewerName()] = v
+ if v.isDefaultViewer():
+ self._defaultViewer = v
+
+ def defaultPolicy(self):
+ return self._defaultPolicy
+
+ def setDefaultPolicy(self, policy):
+ self._defaultPolicy = policy
+
+ def defaultWarning(self):
+ return self._defaultWarning
+
+ def setDefaultWarning(self, on):
+ self._defaultWarning = on
+
+ def viewer(self, file):
+ info = QFileInfo(file)
+ db = QMimeDatabase()
+ mimeType = db.mimeTypeForFile(info)
+
+ viewer = self.viewerForMimeType(mimeType)
+ if not viewer:
+ print(f"Mime type {mimeType.name()} not supported.")
+ return None
+
+ viewer.init(file, self._displayWidget, self._mainWindow)
+ return viewer
+
+ def viewerNames(self, showDefault=False):
+ if not showDefault:
+ return self._viewers.keys()
+
+ list = []
+ for name, viewer in self._viewers.items():
+ if ((self._defaultViewer and viewer.isDefaultViewer())
+ or (not self._defaultViewer and name == "TxtViewer")):
+ name += "(default)"
+ list.append(name)
+ return list
+
+ def viewers(self):
+ return self._viewers.values()
+
+ def findViewer(self, viewerName):
+ for viewer in self.viewers():
+ if viewer.viewerName() == viewerName:
+ return viewer
+ print(f"Plugin {viewerName} not loaded.")
+ return None
+
+ def viewerForMimeType(self, mimeType):
+ for viewer in self.viewers():
+ for type in viewer.supportedMimeTypes():
+ if mimeType.inherits(type):
+ return viewer
+
+ viewer = self.defaultViewer()
+
+ if self._defaultWarning:
+ mbox = QMessageBox()
+ mbox.setIcon(QMessageBox.Warning)
+ name = mimeType.name()
+ viewer_name = viewer.viewerName()
+ m = f"Mime type {name} not supported. Falling back to {viewer_name}."
+ mbox.setText(m)
+ mbox.setStandardButtons(QMessageBox.Ok)
+ QTimer.singleShot(8000, mbox.close)
+ mbox.exec()
+ return viewer
+
+ def defaultViewer(self):
+ if self._defaultPolicy == DefaultPolicy.NeverDefault:
+ return None
+ if self._defaultPolicy == DefaultPolicy.DefaultToCustomViewer and self._defaultViewer:
+ return self._defaultViewer
+ return self.findViewer("TxtViewer")
+
+ def supportedMimeTypes(self):
+ if not self._mimeTypes:
+ for viewer in self.viewers():
+ self._mimeTypes.extend(viewer.supportedMimeTypes())
+ return self._mimeTypes
diff --git a/examples/designer/taskmenuextension/doc/taskmenuextension.rst b/examples/designer/taskmenuextension/doc/taskmenuextension.rst
index a1b584fb9..dd7fe1679 100644
--- a/examples/designer/taskmenuextension/doc/taskmenuextension.rst
+++ b/examples/designer/taskmenuextension/doc/taskmenuextension.rst
@@ -1,5 +1,7 @@
-Task Menu Extension (Designer)
-==============================
+.. _task-menu-extension-example:
+
+Task Menu Extension Example
+===========================
This example shows how to add custom widgets to Qt Designer,
which can be launched with `pyside6-designer`, and to extend
diff --git a/examples/designer/taskmenuextension/registertictactoe.py b/examples/designer/taskmenuextension/registertictactoe.py
index 4f163e374..2b014c790 100644
--- a/examples/designer/taskmenuextension/registertictactoe.py
+++ b/examples/designer/taskmenuextension/registertictactoe.py
@@ -1,7 +1,7 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from tictactoe import TicTacToe
+from tictactoe import TicTacToe # noqa: F401
from tictactoeplugin import TicTacToePlugin
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
diff --git a/examples/designer/taskmenuextension/tictactoe.py b/examples/designer/taskmenuextension/tictactoe.py
index 01224e0e3..aa1c3158c 100644
--- a/examples/designer/taskmenuextension/tictactoe.py
+++ b/examples/designer/taskmenuextension/tictactoe.py
@@ -2,7 +2,7 @@
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Qt, QPoint, QRect, QSize, Property, Slot
-from PySide6.QtGui import QMouseEvent, QPainter, QPen
+from PySide6.QtGui import QPainter, QPen
from PySide6.QtWidgets import QWidget
@@ -89,27 +89,27 @@ class TicTacToe(QWidget):
for position in range(0, 8, 3):
if (self._state[position] != EMPTY
- and self._state[position + 1] == self._state[position]
- and self._state[position + 2] == self._state[position]):
+ and self._state[position + 1] == self._state[position]
+ and self._state[position + 2] == self._state[position]):
y = self._cell_rect(position).center().y()
painter.drawLine(0, y, self.width(), y)
self._turn_number = 9
for position in range(3):
if (self._state[position] != EMPTY
- and self._state[position + 3] == self._state[position]
- and self._state[position + 6] == self._state[position]):
+ and self._state[position + 3] == self._state[position]
+ and self._state[position + 6] == self._state[position]):
x = self._cell_rect(position).center().x()
painter.drawLine(x, 0, x, self.height())
self._turn_number = 9
if (self._state[0] != EMPTY and self._state[4] == self._state[0]
- and self._state[8] == self._state[0]):
+ and self._state[8] == self._state[0]):
painter.drawLine(0, 0, self.width(), self.height())
self._turn_number = 9
if (self._state[2] != EMPTY and self._state[4] == self._state[2]
- and self._state[6] == self._state[2]):
+ and self._state[6] == self._state[2]):
painter.drawLine(0, self.height(), self.width(), 0)
self._turn_number = 9
diff --git a/examples/designer/taskmenuextension/tictactoeplugin.py b/examples/designer/taskmenuextension/tictactoeplugin.py
index 11b31b12f..f9c925133 100644
--- a/examples/designer/taskmenuextension/tictactoeplugin.py
+++ b/examples/designer/taskmenuextension/tictactoeplugin.py
@@ -5,8 +5,7 @@ from tictactoe import TicTacToe
from tictactoetaskmenu import TicTacToeTaskMenuFactory
from PySide6.QtGui import QIcon
-from PySide6.QtDesigner import (QExtensionManager,
- QDesignerCustomWidgetInterface)
+from PySide6.QtDesigner import QDesignerCustomWidgetInterface
DOM_XML = """
diff --git a/examples/designer/taskmenuextension/tictactoetaskmenu.py b/examples/designer/taskmenuextension/tictactoetaskmenu.py
index 461e56f72..71826dc7d 100644
--- a/examples/designer/taskmenuextension/tictactoetaskmenu.py
+++ b/examples/designer/taskmenuextension/tictactoetaskmenu.py
@@ -3,7 +3,7 @@
from tictactoe import TicTacToe
-from PySide6.QtCore import QObject, Slot
+from PySide6.QtCore import Slot
from PySide6.QtGui import QAction
from PySide6.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout
from PySide6.QtDesigner import (QExtensionFactory, QPyDesignerTaskMenuExtension)
diff --git a/examples/examples.pyproject b/examples/examples.pyproject
index 164997a51..814aae024 100644
--- a/examples/examples.pyproject
+++ b/examples/examples.pyproject
@@ -54,7 +54,8 @@
"opengl/contextinfo/contextinfo.py",
"opengl/hellogl2/hellogl2.py",
"opengl/textures/textures.py",
- "quickcontrols2/gallery/gallery.py",
+ "quickcontrols/gallery/gallery.py",
+ "quickcontrols/filesystemexplorer/filesystemexplorer.py",
"quick/painteditem/painteditem.py",
"remoteobjects/modelview/modelviewclient.py",
"remoteobjects/modelview/modelviewserver.py",
diff --git a/examples/external/matplotlib/widget3d/widget3d.py b/examples/external/matplotlib/widget3d/widget3d.py
index cccdfde57..8bfcc4ca2 100644
--- a/examples/external/matplotlib/widget3d/widget3d.py
+++ b/examples/external/matplotlib/widget3d/widget3d.py
@@ -4,7 +4,7 @@
import sys
import numpy as np
-from matplotlib.backends.backend_qt5agg import FigureCanvas
+from matplotlib.backends.backend_qtagg import FigureCanvas
from matplotlib.figure import Figure
from mpl_toolkits.mplot3d import axes3d
from PySide6.QtCore import Qt, Slot
@@ -32,12 +32,12 @@ class ApplicationWindow(QMainWindow):
# Main menu bar
self.menu = self.menuBar()
self.menu_file = self.menu.addMenu("File")
- exit = QAction("Exit", self, triggered=qApp.quit)
+ exit = QAction("Exit", self, triggered=qApp.quit) # noqa: F821
self.menu_file.addAction(exit)
self.menu_about = self.menu.addMenu("&About")
about = QAction("About Qt", self, shortcut=QKeySequence(QKeySequence.HelpContents),
- triggered=qApp.aboutQt)
+ triggered=qApp.aboutQt) # noqa: F821
self.menu_about.addAction(about)
# Figure (Left)
diff --git a/examples/external/matplotlib/widget_gaussian/widget_gaussian.py b/examples/external/matplotlib/widget_gaussian/widget_gaussian.py
index b21fa0b0a..2423e496a 100644
--- a/examples/external/matplotlib/widget_gaussian/widget_gaussian.py
+++ b/examples/external/matplotlib/widget_gaussian/widget_gaussian.py
@@ -5,11 +5,10 @@ import sys
import numpy as np
from scipy.stats import norm
-from matplotlib import pyplot as plt
from matplotlib.figure import Figure
-from matplotlib.backends.backend_qt5agg import FigureCanvas
-from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT
-from PySide6.QtCore import Qt, Slot
+from matplotlib.backends.backend_qtagg import FigureCanvas
+from matplotlib.backends.backend_qtagg import NavigationToolbar2QT
+from PySide6.QtCore import Slot
from PySide6.QtWidgets import (
QApplication,
QWidget,
diff --git a/examples/external/networkx/doc/networkx.rst b/examples/external/networkx/doc/networkx.rst
index 5266649c0..58897d3b7 100644
--- a/examples/external/networkx/doc/networkx.rst
+++ b/examples/external/networkx/doc/networkx.rst
@@ -3,6 +3,6 @@ Networkx viewer Example
A Python application that demonstrates how to display networkx graph into a QGraphicsView.
-.. image::
+.. image:: networkx.png
:width: 400
:alt: Networkx viewer Screenshot
diff --git a/examples/external/opencv/webcam_pattern_detection.py b/examples/external/opencv/webcam_pattern_detection.py
index a3a1e3782..0c55a1333 100644
--- a/examples/external/opencv/webcam_pattern_detection.py
+++ b/examples/external/opencv/webcam_pattern_detection.py
@@ -74,12 +74,12 @@ class Window(QMainWindow):
# Main menu bar
self.menu = self.menuBar()
self.menu_file = self.menu.addMenu("File")
- exit = QAction("Exit", self, triggered=qApp.quit)
+ exit = QAction("Exit", self, triggered=qApp.quit) # noqa: F821
self.menu_file.addAction(exit)
self.menu_about = self.menu.addMenu("&About")
about = QAction("About Qt", self, shortcut=QKeySequence(QKeySequence.HelpContents),
- triggered=qApp.aboutQt)
+ triggered=qApp.aboutQt) # noqa: F821
self.menu_about.addAction(about)
# Create a label for the display camera
diff --git a/examples/external/scikit/staining_colors_separation.py b/examples/external/scikit/staining_colors_separation.py
index b0aa143e2..94fdc3bdc 100644
--- a/examples/external/scikit/staining_colors_separation.py
+++ b/examples/external/scikit/staining_colors_separation.py
@@ -32,12 +32,12 @@ class ApplicationWindow(QMainWindow):
# Main menu bar
self.menu = self.menuBar()
self.menu_file = self.menu.addMenu("File")
- exit = QAction("Exit", self, triggered=qApp.quit)
+ exit = QAction("Exit", self, triggered=qApp.quit) # noqa: F821
self.menu_file.addAction(exit)
self.menu_about = self.menu.addMenu("&About")
about = QAction("About Qt", self, shortcut=QKeySequence(QKeySequence.HelpContents),
- triggered=qApp.aboutQt)
+ triggered=qApp.aboutQt) # noqa: F821
self.menu_about.addAction(about)
# Create an artificial color close to the original one
diff --git a/examples/graphs/2d/hellographs/HelloGraphs/Main.qml b/examples/graphs/2d/hellographs/HelloGraphs/Main.qml
new file mode 100644
index 000000000..b1844aec4
--- /dev/null
+++ b/examples/graphs/2d/hellographs/HelloGraphs/Main.qml
@@ -0,0 +1,153 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtGraphs
+
+Item {
+ id: mainView
+ width: 1280
+ height: 720
+
+ RowLayout {
+ id: graphsRow
+
+ readonly property real margin: mainView.width * 0.02
+
+ anchors.fill: parent
+ anchors.margins: margin
+ spacing: margin
+
+ Rectangle {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ color: "#262626"
+ border.color: "#4d4d4d"
+ border.width: 1
+ radius: graphsRow.margin
+ //! [bargraph]
+ GraphsView {
+ anchors.fill: parent
+ anchors.margins: 16
+ theme: GraphTheme {
+ colorTheme: GraphTheme.ColorThemeDark
+ }
+ //! [bargraph]
+ //! [barseries]
+ BarSeries {
+ axisX: BarCategoryAxis {
+ categories: [2024, 2025, 2026]
+ gridVisible: false
+ minorGridVisible: false
+ }
+ axisY: ValueAxis {
+ min: 20
+ max: 100
+ tickInterval: 10
+ minorTickCount: 9
+ }
+ //! [barseries]
+ //! [barset]
+ BarSet {
+ values: [82, 50, 75]
+ borderWidth: 2
+ color: "#373F26"
+ borderColor: "#DBEB00"
+ }
+ //! [barset]
+ }
+ }
+ }
+
+ Rectangle {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ color: "#262626"
+ border.color: "#4d4d4d"
+ border.width: 1
+ radius: graphsRow.margin
+
+ //! [linegraph]
+ GraphsView {
+ anchors.fill: parent
+ anchors.margins: 16
+ theme: GraphTheme {
+ readonly property color c1: "#DBEB00"
+ readonly property color c2: "#373F26"
+ readonly property color c3: Qt.lighter(c2, 1.5)
+ colorTheme: GraphTheme.ColorThemeDark
+ gridMajorBarsColor: c3
+ gridMinorBarsColor: c2
+ axisXMajorColor: c3
+ axisYMajorColor: c3
+ axisXMinorColor: c2
+ axisYMinorColor: c2
+ axisXLabelsColor: c1
+ axisYLabelsColor: c1
+ }
+ //! [linegraph]
+
+ //! [linemarker]
+ component Marker : Rectangle {
+ width: 16
+ height: 16
+ color: "#ffffff"
+ radius: width * 0.5
+ border.width: 4
+ border.color: "#000000"
+ }
+ //! [linemarker]
+
+ //! [lineseriestheme]
+ SeriesTheme {
+ id: seriesTheme
+ colors: ["#2CDE85", "#DBEB00"]
+ }
+ //! [lineseriestheme]
+
+ //! [lineseries1]
+ LineSeries {
+ id: lineSeries1
+ theme: seriesTheme
+ axisX: ValueAxis {
+ max: 5
+ tickInterval: 1
+ minorTickCount: 9
+ labelDecimals: 1
+ }
+ axisY: ValueAxis {
+ max: 10
+ tickInterval: 1
+ minorTickCount: 4
+ labelDecimals: 1
+ }
+ width: 4
+ pointMarker: Marker { }
+ XYPoint { x: 0; y: 0 }
+ XYPoint { x: 1; y: 2.1 }
+ XYPoint { x: 2; y: 3.3 }
+ XYPoint { x: 3; y: 2.1 }
+ XYPoint { x: 4; y: 4.9 }
+ XYPoint { x: 5; y: 3.0 }
+ }
+ //! [lineseries1]
+
+ //! [lineseries2]
+ LineSeries {
+ id: lineSeries2
+ theme: seriesTheme
+ width: 4
+ pointMarker: Marker { }
+ XYPoint { x: 0; y: 5.0 }
+ XYPoint { x: 1; y: 3.3 }
+ XYPoint { x: 2; y: 7.1 }
+ XYPoint { x: 3; y: 7.5 }
+ XYPoint { x: 4; y: 6.1 }
+ XYPoint { x: 5; y: 3.2 }
+ }
+ //! [lineseries2]
+ }
+ }
+ }
+}
diff --git a/examples/graphs/2d/hellographs/HelloGraphs/qmldir b/examples/graphs/2d/hellographs/HelloGraphs/qmldir
new file mode 100644
index 000000000..007f5fb11
--- /dev/null
+++ b/examples/graphs/2d/hellographs/HelloGraphs/qmldir
@@ -0,0 +1,2 @@
+module HelloGraphs
+Main 1.0 Main.qml
diff --git a/examples/graphs/2d/hellographs/doc/hellographs.rst b/examples/graphs/2d/hellographs/doc/hellographs.rst
new file mode 100644
index 000000000..d0820c3b7
--- /dev/null
+++ b/examples/graphs/2d/hellographs/doc/hellographs.rst
@@ -0,0 +1,51 @@
+HelloGraphs Example
+===================
+
+The example shows how to make a simple 2D bar graph and line graph.
+
+BarGraph
+--------
+
+The first graph in the example is a bar graph. Creating it starts with a GraphsView
+component and setting the theme to one which is suitable on
+dark backgrounds. This theme adjusts the graph background grid and axis lines and
+labels.
+
+To make this a bar graph, add a ``BarSeries.`` The X axis of the series is a
+``BarCategoryAxis`` with 3 categories. We hide both the vertical grid and the
+axis lines. The Y axis of the series is ``ValueAxis`` with visible range
+between 20 and 100. Major ticks with labels will be shown on every 10 values
+using the ``tickInterval`` property. Minor ticks will be shown on every 1
+values setting the ``minorTickCount`` propertyt to 9, which means that between
+every major ticks there will be 9 minor ones.
+
+Then data is added into ``BarSeries`` using ``BarSet.`` There are 3 bars, and we define
+custom bars color and border properties. These properties will override the possible
+theme set for the ``AbstractSeries.``
+
+LineGraph
+---------
+
+The second graph of the example is a line graph. It also starts by defining a
+``GraphsView`` element. A custom ``GraphTheme`` is created to get a custom appearance.
+``GraphTheme`` offers quite a wide range of customization possibilities for the background
+grid and axis, which get applied after the ``colorTheme``.
+
+A custom ``Marker`` component is used to visualize the data points.
+
+The previous bar graph didn't define a separate ``SeriesTheme``, so it uses the
+default theme. This line graph uses a custom theme with the desired line colors.
+
+To make this a line graph, add a ``LineSeries.`` The first series defines
+``axisX`` and ``axisY`` for this graph. It also sets the ``pointMarker`` to use
+the custom ``Marker`` component that was created earlier. Data points are added
+using ``XYPoint`` elements.
+
+The second line series is similar to the first. The ``axisX`` and ``axisY``
+don't need to be defined as the graph already contains them. As this is the
+second ``LineSeries`` inside the ``GraphsView``, second color from the
+``seriesTheme`` gets automatically picked.
+
+.. image:: hellographs.webp
+ :width: 1293
+ :alt: HelloGraphs Screenshot
diff --git a/examples/graphs/2d/hellographs/doc/hellographs.webp b/examples/graphs/2d/hellographs/doc/hellographs.webp
new file mode 100644
index 000000000..3e7666411
--- /dev/null
+++ b/examples/graphs/2d/hellographs/doc/hellographs.webp
Binary files differ
diff --git a/examples/graphs/2d/hellographs/hellographs.pyproject b/examples/graphs/2d/hellographs/hellographs.pyproject
new file mode 100644
index 000000000..e8e8cb228
--- /dev/null
+++ b/examples/graphs/2d/hellographs/hellographs.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "HelloGraphs/Main.qml", "HelloGraphs/qmldir"]
+}
diff --git a/examples/graphs/2d/hellographs/main.py b/examples/graphs/2d/hellographs/main.py
new file mode 100644
index 000000000..acc349beb
--- /dev/null
+++ b/examples/graphs/2d/hellographs/main.py
@@ -0,0 +1,22 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt Hello Graphs example from Qt v6.x"""
+
+from pathlib import Path
+import sys
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+
+ viewer = QQuickView()
+ viewer.engine().addImportPath(Path(__file__).parent)
+ viewer.setColor("black")
+ viewer.loadFromModule("HelloGraphs", "Main")
+ viewer.show()
+ r = app.exec()
+ del viewer
+ sys.exit(r)
diff --git a/examples/graphs/3d/minimalsurfacegraph/doc/minimalsurfacegraph.rst b/examples/graphs/3d/minimalsurfacegraph/doc/minimalsurfacegraph.rst
new file mode 100644
index 000000000..bfc7a044d
--- /dev/null
+++ b/examples/graphs/3d/minimalsurfacegraph/doc/minimalsurfacegraph.rst
@@ -0,0 +1,4 @@
+Minimal Surface Example
+=======================
+
+The example shows the minimal code to create a surface.
diff --git a/examples/graphs/3d/minimalsurfacegraph/main.py b/examples/graphs/3d/minimalsurfacegraph/main.py
new file mode 100644
index 000000000..5fb4b4472
--- /dev/null
+++ b/examples/graphs/3d/minimalsurfacegraph/main.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QSize
+from PySide6.QtGui import QVector3D
+from PySide6.QtGraphs import (Q3DSurface, QSurfaceDataItem,
+ QSurface3DSeries)
+from PySide6.QtWidgets import QApplication
+from PySide6.QtQuickWidgets import QQuickWidget
+
+
+DESCRIPTION = """Minimal Qt Graphs Surface Example
+
+Use the mouse wheel to zoom. Rotate using the right mouse button.
+"""
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+
+ print(DESCRIPTION)
+
+ surface = Q3DSurface()
+ axis = surface.axisX()
+ axis.setTitle("X")
+ axis.setTitleVisible(True)
+ axis = surface.axisY()
+ axis.setTitle("Y")
+ axis.setTitleVisible(True)
+ axis = surface.axisZ()
+ axis.setTitle("Z")
+ axis.setTitleVisible(True)
+
+ data = []
+ data_row1 = [QSurfaceDataItem(QVector3D(0, 0.1, 0.5)),
+ QSurfaceDataItem(QVector3D(1, 0.5, 0.5))]
+ data.append(data_row1)
+ data_row2 = [QSurfaceDataItem(QVector3D(0, 1.8, 1)),
+ QSurfaceDataItem(QVector3D(1, 1.2, 1))]
+ data.append(data_row2)
+
+ series = QSurface3DSeries()
+ series.dataProxy().resetArray(data)
+ surface.addSeries(series)
+
+ available_height = app.primaryScreen().availableGeometry().height()
+ width = available_height * 4 / 5
+ surface.resize(QSize(width, width))
+ surface.setResizeMode(QQuickWidget.SizeRootObjectToView)
+ surface.show()
+
+ sys.exit(app.exec())
diff --git a/examples/graphs/3d/widgetgallery/axesinputhandler.py b/examples/graphs/3d/widgetgallery/axesinputhandler.py
new file mode 100644
index 000000000..4c4202974
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/axesinputhandler.py
@@ -0,0 +1,100 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum
+from math import sin, cos, degrees
+
+from PySide6.QtCore import Qt
+from PySide6.QtGraphs import QAbstract3DGraph, Q3DInputHandler
+
+
+class InputState(Enum):
+ StateNormal = 0
+ StateDraggingX = 1
+ StateDraggingZ = 2
+ StateDraggingY = 3
+
+
+class AxesInputHandler(Q3DInputHandler):
+
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+ self._axisX = None
+ self._axisZ = None
+ self._axisY = None
+ self._speedModifier = 15.0
+
+ # Connect to the item selection signal from graph
+ graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ def setAxes(self, axisX, axisZ, axisY):
+ self._axisX = axisX
+ self._axisZ = axisZ
+ self._axisY = axisY
+
+ def setDragSpeedModifier(self, modifier):
+ self._speedModifier = modifier
+
+ def mousePressEvent(self, event, mousePos):
+ super().mousePressEvent(event, mousePos)
+ if Qt.LeftButton == event.button():
+ self._mousePressed = True
+
+ def mouseMoveEvent(self, event, mousePos):
+ # Check if we're trying to drag axis label
+ if self._mousePressed and self._state != InputState.StateNormal:
+ self.setPreviousInputPos(self.inputPosition())
+ self.setInputPosition(mousePos)
+ self.handleAxisDragging()
+ else:
+ super().mouseMoveEvent(event, mousePos)
+
+ def mouseReleaseEvent(self, event, mousePos):
+ super().mouseReleaseEvent(event, mousePos)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+
+ def handleElementSelected(self, type):
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ self._state = InputState.StateDraggingX
+ elif type == QAbstract3DGraph.ElementAxisYLabel:
+ self._state = InputState.StateDraggingY
+ elif type == QAbstract3DGraph.ElementAxisZLabel:
+ self._state = InputState.StateDraggingZ
+ else:
+ self._state = InputState.StateNormal
+
+ def handleAxisDragging(self):
+ distance = 0.0
+ # Get scene orientation from active camera
+ xRotation = self.cameraXRotation()
+ yRotation = self.cameraYRotation()
+
+ # Calculate directional drag multipliers based on rotation
+ xMulX = cos(degrees(xRotation))
+ xMulY = sin(degrees(xRotation))
+ zMulX = sin(degrees(xRotation))
+ zMulY = cos(degrees(xRotation))
+
+ # Get the drag amount
+ move = self.inputPosition() - self.previousInputPos()
+
+ # Flip the effect of y movement if we're viewing from below
+ yMove = -move.y() if yRotation < 0 else move.y()
+
+ # Adjust axes
+ if self._state == InputState.StateDraggingX:
+ distance = (move.x() * xMulX - yMove * xMulY) / self._speedModifier
+ self._axisX.setRange(self._axisX.min() - distance,
+ self._axisX.max() - distance)
+ elif self._state == InputState.StateDraggingZ:
+ distance = (move.x() * zMulX + yMove * zMulY) / self._speedModifier
+ self._axisZ.setRange(self._axisZ.min() + distance,
+ self._axisZ.max() + distance)
+ elif self._state == InputState.StateDraggingY:
+ # No need to use adjusted y move here
+ distance = move.y() / self._speedModifier
+ self._axisY.setRange(self._axisY.min() + distance,
+ self._axisY.max() + distance)
diff --git a/examples/graphs/3d/widgetgallery/bargraph.py b/examples/graphs/3d/widgetgallery/bargraph.py
new file mode 100644
index 000000000..822acb4a9
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/bargraph.py
@@ -0,0 +1,272 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from graphmodifier import GraphModifier
+
+from PySide6.QtCore import QObject, Qt
+from PySide6.QtGui import QFont
+from PySide6.QtWidgets import (QButtonGroup, QCheckBox, QComboBox, QFontComboBox,
+ QLabel, QPushButton, QHBoxLayout, QSizePolicy,
+ QRadioButton, QSlider, QVBoxLayout, QWidget)
+from PySide6.QtQuickWidgets import QQuickWidget
+from PySide6.QtGraphs import (QAbstract3DGraph, QAbstract3DSeries, Q3DBars)
+
+
+class BarGraph(QObject):
+
+ def __init__(self, minimum_graph_size, maximum_graph_size):
+ super().__init__()
+ self._barsGraph = Q3DBars()
+ self._barsWidget = QWidget()
+ hLayout = QHBoxLayout(self._barsWidget)
+ self._barsGraph.setMinimumSize(minimum_graph_size)
+ self._barsGraph.setMaximumSize(maximum_graph_size)
+ self._barsGraph.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._barsGraph.setFocusPolicy(Qt.StrongFocus)
+ self._barsGraph.setResizeMode(QQuickWidget.SizeRootObjectToView)
+ hLayout.addWidget(self._barsGraph, 1)
+
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+
+ themeList = QComboBox(self._barsWidget)
+ themeList.addItem("Qt")
+ themeList.addItem("Primary Colors")
+ themeList.addItem("Digia")
+ themeList.addItem("Stone Moss")
+ themeList.addItem("Army Blue")
+ themeList.addItem("Retro")
+ themeList.addItem("Ebony")
+ themeList.addItem("Isabelle")
+ themeList.setCurrentIndex(0)
+
+ labelButton = QPushButton(self._barsWidget)
+ labelButton.setText("Change label style")
+
+ smoothCheckBox = QCheckBox(self._barsWidget)
+ smoothCheckBox.setText("Smooth bars")
+ smoothCheckBox.setChecked(False)
+
+ barStyleList = QComboBox(self._barsWidget)
+ barStyleList.addItem("Bar", QAbstract3DSeries.Mesh.Bar)
+ barStyleList.addItem("Pyramid", QAbstract3DSeries.Mesh.Pyramid)
+ barStyleList.addItem("Cone", QAbstract3DSeries.Mesh.Cone)
+ barStyleList.addItem("Cylinder", QAbstract3DSeries.Mesh.Cylinder)
+ barStyleList.addItem("Bevel bar", QAbstract3DSeries.Mesh.BevelBar)
+ barStyleList.addItem("Sphere", QAbstract3DSeries.Mesh.Sphere)
+ barStyleList.setCurrentIndex(4)
+
+ cameraButton = QPushButton(self._barsWidget)
+ cameraButton.setText("Change camera preset")
+
+ zoomToSelectedButton = QPushButton(self._barsWidget)
+ zoomToSelectedButton.setText("Zoom to selected bar")
+
+ selectionModeList = QComboBox(self._barsWidget)
+ selectionModeList.addItem("None", QAbstract3DGraph.SelectionNone)
+ selectionModeList.addItem("Bar", QAbstract3DGraph.SelectionItem)
+ selectionModeList.addItem("Row", QAbstract3DGraph.SelectionRow)
+ sel = QAbstract3DGraph.SelectionItemAndRow
+ selectionModeList.addItem("Bar and Row", sel)
+ selectionModeList.addItem("Column", QAbstract3DGraph.SelectionColumn)
+ sel = QAbstract3DGraph.SelectionItemAndColumn
+ selectionModeList.addItem("Bar and Column", sel)
+ sel = QAbstract3DGraph.SelectionRowAndColumn
+ selectionModeList.addItem("Row and Column", sel)
+ sel = QAbstract3DGraph.SelectionItemRowAndColumn
+ selectionModeList.addItem("Bar, Row and Column", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionRow
+ selectionModeList.addItem("Slice into Row", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionItemAndRow
+ selectionModeList.addItem("Slice into Row and Item", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionColumn
+ selectionModeList.addItem("Slice into Column", sel)
+ sel = (QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionItemAndColumn)
+ selectionModeList.addItem("Slice into Column and Item", sel)
+ sel = (QAbstract3DGraph.SelectionItemRowAndColumn
+ | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi: Bar, Row, Col", sel)
+ sel = (QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionItemAndRow
+ | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi, Slice: Row, Item", sel)
+ sel = (QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionItemAndColumn
+ | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi, Slice: Col, Item", sel)
+ selectionModeList.setCurrentIndex(1)
+
+ backgroundCheckBox = QCheckBox(self._barsWidget)
+ backgroundCheckBox.setText("Show background")
+ backgroundCheckBox.setChecked(False)
+
+ gridCheckBox = QCheckBox(self._barsWidget)
+ gridCheckBox.setText("Show grid")
+ gridCheckBox.setChecked(True)
+
+ seriesCheckBox = QCheckBox(self._barsWidget)
+ seriesCheckBox.setText("Show second series")
+ seriesCheckBox.setChecked(False)
+
+ reverseValueAxisCheckBox = QCheckBox(self._barsWidget)
+ reverseValueAxisCheckBox.setText("Reverse value axis")
+ reverseValueAxisCheckBox.setChecked(False)
+
+ reflectionCheckBox = QCheckBox(self._barsWidget)
+ reflectionCheckBox.setText("Show reflections")
+ reflectionCheckBox.setChecked(False)
+
+ rotationSliderX = QSlider(Qt.Horizontal, self._barsWidget)
+ rotationSliderX.setTickInterval(30)
+ rotationSliderX.setTickPosition(QSlider.TicksBelow)
+ rotationSliderX.setMinimum(-180)
+ rotationSliderX.setValue(0)
+ rotationSliderX.setMaximum(180)
+ rotationSliderY = QSlider(Qt.Horizontal, self._barsWidget)
+ rotationSliderY.setTickInterval(15)
+ rotationSliderY.setTickPosition(QSlider.TicksAbove)
+ rotationSliderY.setMinimum(-90)
+ rotationSliderY.setValue(0)
+ rotationSliderY.setMaximum(90)
+
+ fontSizeSlider = QSlider(Qt.Horizontal, self._barsWidget)
+ fontSizeSlider.setTickInterval(10)
+ fontSizeSlider.setTickPosition(QSlider.TicksBelow)
+ fontSizeSlider.setMinimum(1)
+ fontSizeSlider.setValue(30)
+ fontSizeSlider.setMaximum(100)
+
+ fontList = QFontComboBox(self._barsWidget)
+ fontList.setCurrentFont(QFont("Times New Roman"))
+
+ shadowQuality = QComboBox(self._barsWidget)
+ shadowQuality.addItem("None")
+ shadowQuality.addItem("Low")
+ shadowQuality.addItem("Medium")
+ shadowQuality.addItem("High")
+ shadowQuality.addItem("Low Soft")
+ shadowQuality.addItem("Medium Soft")
+ shadowQuality.addItem("High Soft")
+ shadowQuality.setCurrentIndex(5)
+
+ rangeList = QComboBox(self._barsWidget)
+ rangeList.addItem("2015")
+ rangeList.addItem("2016")
+ rangeList.addItem("2017")
+ rangeList.addItem("2018")
+ rangeList.addItem("2019")
+ rangeList.addItem("2020")
+ rangeList.addItem("2021")
+ rangeList.addItem("2022")
+ rangeList.addItem("All")
+ rangeList.setCurrentIndex(8)
+
+ axisTitlesVisibleCB = QCheckBox(self._barsWidget)
+ axisTitlesVisibleCB.setText("Axis titles visible")
+ axisTitlesVisibleCB.setChecked(True)
+
+ axisTitlesFixedCB = QCheckBox(self._barsWidget)
+ axisTitlesFixedCB.setText("Axis titles fixed")
+ axisTitlesFixedCB.setChecked(True)
+
+ axisLabelRotationSlider = QSlider(Qt.Horizontal, self._barsWidget)
+ axisLabelRotationSlider.setTickInterval(10)
+ axisLabelRotationSlider.setTickPosition(QSlider.TicksBelow)
+ axisLabelRotationSlider.setMinimum(0)
+ axisLabelRotationSlider.setValue(30)
+ axisLabelRotationSlider.setMaximum(90)
+
+ modeGroup = QButtonGroup(self._barsWidget)
+ modeWeather = QRadioButton("Temperature Data", self._barsWidget)
+ modeWeather.setChecked(True)
+ modeCustomProxy = QRadioButton("Custom Proxy Data", self._barsWidget)
+ modeGroup.addButton(modeWeather)
+ modeGroup.addButton(modeCustomProxy)
+
+ vLayout.addWidget(QLabel("Rotate horizontally"))
+ vLayout.addWidget(rotationSliderX, 0, Qt.AlignTop)
+ vLayout.addWidget(QLabel("Rotate vertically"))
+ vLayout.addWidget(rotationSliderY, 0, Qt.AlignTop)
+ vLayout.addWidget(labelButton, 0, Qt.AlignTop)
+ vLayout.addWidget(cameraButton, 0, Qt.AlignTop)
+ vLayout.addWidget(zoomToSelectedButton, 0, Qt.AlignTop)
+ vLayout.addWidget(backgroundCheckBox)
+ vLayout.addWidget(gridCheckBox)
+ vLayout.addWidget(smoothCheckBox)
+ vLayout.addWidget(reflectionCheckBox)
+ vLayout.addWidget(seriesCheckBox)
+ vLayout.addWidget(reverseValueAxisCheckBox)
+ vLayout.addWidget(axisTitlesVisibleCB)
+ vLayout.addWidget(axisTitlesFixedCB)
+ vLayout.addWidget(QLabel("Show year"))
+ vLayout.addWidget(rangeList)
+ vLayout.addWidget(QLabel("Change bar style"))
+ vLayout.addWidget(barStyleList)
+ vLayout.addWidget(QLabel("Change selection mode"))
+ vLayout.addWidget(selectionModeList)
+ vLayout.addWidget(QLabel("Change theme"))
+ vLayout.addWidget(themeList)
+ vLayout.addWidget(QLabel("Adjust shadow quality"))
+ vLayout.addWidget(shadowQuality)
+ vLayout.addWidget(QLabel("Change font"))
+ vLayout.addWidget(fontList)
+ vLayout.addWidget(QLabel("Adjust font size"))
+ vLayout.addWidget(fontSizeSlider)
+ vLayout.addWidget(QLabel("Axis label rotation"))
+ vLayout.addWidget(axisLabelRotationSlider, 0, Qt.AlignTop)
+ vLayout.addWidget(modeWeather, 0, Qt.AlignTop)
+ vLayout.addWidget(modeCustomProxy, 1, Qt.AlignTop)
+
+ self._modifier = GraphModifier(self._barsGraph, self)
+
+ rotationSliderX.valueChanged.connect(self._modifier.rotateX)
+ rotationSliderY.valueChanged.connect(self._modifier.rotateY)
+
+ labelButton.clicked.connect(self._modifier.changeLabelBackground)
+ cameraButton.clicked.connect(self._modifier.changePresetCamera)
+ zoomToSelectedButton.clicked.connect(self._modifier.zoomToSelectedBar)
+
+ backgroundCheckBox.stateChanged.connect(self._modifier.setBackgroundEnabled)
+ gridCheckBox.stateChanged.connect(self._modifier.setGridEnabled)
+ smoothCheckBox.stateChanged.connect(self._modifier.setSmoothBars)
+ seriesCheckBox.stateChanged.connect(self._modifier.setSeriesVisibility)
+ reverseValueAxisCheckBox.stateChanged.connect(self._modifier.setReverseValueAxis)
+ reflectionCheckBox.stateChanged.connect(self._modifier.setReflection)
+
+ self._modifier.backgroundEnabledChanged.connect(backgroundCheckBox.setChecked)
+ self._modifier.gridEnabledChanged.connect(gridCheckBox.setChecked)
+
+ rangeList.currentIndexChanged.connect(self._modifier.changeRange)
+
+ barStyleList.currentIndexChanged.connect(self._modifier.changeStyle)
+
+ selectionModeList.currentIndexChanged.connect(self._modifier.changeSelectionMode)
+
+ themeList.currentIndexChanged.connect(self._modifier.changeTheme)
+
+ shadowQuality.currentIndexChanged.connect(self._modifier.changeShadowQuality)
+
+ self._modifier.shadowQualityChanged.connect(shadowQuality.setCurrentIndex)
+ self._barsGraph.shadowQualityChanged.connect(self._modifier.shadowQualityUpdatedByVisual)
+
+ fontSizeSlider.valueChanged.connect(self._modifier.changeFontSize)
+ fontList.currentFontChanged.connect(self._modifier.changeFont)
+
+ self._modifier.fontSizeChanged.connect(fontSizeSlider.setValue)
+ self._modifier.fontChanged.connect(fontList.setCurrentFont)
+
+ axisTitlesVisibleCB.stateChanged.connect(self._modifier.setAxisTitleVisibility)
+ axisTitlesFixedCB.stateChanged.connect(self._modifier.setAxisTitleFixed)
+ axisLabelRotationSlider.valueChanged.connect(self._modifier.changeLabelRotation)
+
+ modeWeather.toggled.connect(self._modifier.setDataModeToWeather)
+ modeCustomProxy.toggled.connect(self._modifier.setDataModeToCustom)
+ modeWeather.toggled.connect(seriesCheckBox.setEnabled)
+ modeWeather.toggled.connect(rangeList.setEnabled)
+ modeWeather.toggled.connect(axisTitlesVisibleCB.setEnabled)
+ modeWeather.toggled.connect(axisTitlesFixedCB.setEnabled)
+ modeWeather.toggled.connect(axisLabelRotationSlider.setEnabled)
+
+ def barsWidget(self):
+ return self._barsWidget
diff --git a/examples/graphs/3d/widgetgallery/custominputhandler.py b/examples/graphs/3d/widgetgallery/custominputhandler.py
new file mode 100644
index 000000000..15fe00e70
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/custominputhandler.py
@@ -0,0 +1,177 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum
+from math import sin, cos, degrees
+
+from PySide6.QtCore import Qt
+from PySide6.QtGraphs import (QAbstract3DGraph, Q3DInputHandler)
+
+
+class InputState(Enum):
+ StateNormal = 0
+ StateDraggingX = 1
+ StateDraggingZ = 2
+ StateDraggingY = 3
+
+
+class CustomInputHandler(Q3DInputHandler):
+
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._highlight = None
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+ self._axisX = None
+ self._axisY = None
+ self._axisZ = None
+ self._speedModifier = 20.0
+ self._aspectRatio = 0.0
+ self._axisXMinValue = 0.0
+ self._axisXMaxValue = 0.0
+ self._axisXMinRange = 0.0
+ self._axisZMinValue = 0.0
+ self._axisZMaxValue = 0.0
+ self._axisZMinRange = 0.0
+ self._areaMinValue = 0.0
+ self._areaMaxValue = 0.0
+
+ # Connect to the item selection signal from graph
+ graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ def setAspectRatio(self, ratio):
+ self._aspectRatio = ratio
+
+ def setHighlightSeries(self, series):
+ self._highlight = series
+
+ def setDragSpeedModifier(self, modifier):
+ self._speedModifier = modifier
+
+ def setLimits(self, min, max, minRange):
+ self._areaMinValue = min
+ self._areaMaxValue = max
+ self._axisXMinValue = self._areaMinValue
+ self._axisXMaxValue = self._areaMaxValue
+ self._axisZMinValue = self._areaMinValue
+ self._axisZMaxValue = self._areaMaxValue
+ self._axisXMinRange = minRange
+ self._axisZMinRange = minRange
+
+ def setAxes(self, axisX, axisY, axisZ):
+ self._axisX = axisX
+ self._axisY = axisY
+ self._axisZ = axisZ
+
+ def mousePressEvent(self, event, mousePos):
+ if Qt.LeftButton == event.button():
+ self._highlight.setVisible(False)
+ self._mousePressed = True
+ super().mousePressEvent(event, mousePos)
+
+ def wheelEvent(self, event):
+ delta = float(event.angleDelta().y())
+
+ self._axisXMinValue += delta
+ self._axisXMaxValue -= delta
+ self._axisZMinValue += delta
+ self._axisZMaxValue -= delta
+ self.checkConstraints()
+
+ y = (self._axisXMaxValue - self._axisXMinValue) * self._aspectRatio
+
+ self._axisX.setRange(self._axisXMinValue, self._axisXMaxValue)
+ self._axisY.setRange(100.0, y)
+ self._axisZ.setRange(self._axisZMinValue, self._axisZMaxValue)
+
+ def mouseMoveEvent(self, event, mousePos):
+ # Check if we're trying to drag axis label
+ if self._mousePressed and self._state != InputState.StateNormal:
+ self.setPreviousInputPos(self.inputPosition())
+ self.setInputPosition(mousePos)
+ self.handleAxisDragging()
+ else:
+ super().mouseMoveEvent(event, mousePos)
+
+ def mouseReleaseEvent(self, event, mousePos):
+ super().mouseReleaseEvent(event, mousePos)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+
+ def handleElementSelected(self, type):
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ self._state = InputState.StateDraggingX
+ elif type == QAbstract3DGraph.ElementAxisZLabel:
+ self._state = InputState.StateDraggingZ
+ else:
+ self._state = InputState.StateNormal
+
+ def handleAxisDragging(self):
+ distance = 0.0
+
+ # Get scene orientation from active camera
+ xRotation = self.scene().cameraXRotation()
+
+ # Calculate directional drag multipliers based on rotation
+ xMulX = cos(degrees(xRotation))
+ xMulY = sin(degrees(xRotation))
+ zMulX = xMulY
+ zMulY = xMulX
+
+ # Get the drag amount
+ move = self.inputPosition() - self.previousInputPos()
+
+ # Adjust axes
+ if self._state == InputState.StateDraggingX:
+ distance = (move.x() * xMulX - move.y() * xMulY) * self._speedModifier
+ self._axisXMinValue -= distance
+ self._axisXMaxValue -= distance
+ if self._axisXMinValue < self._areaMinValue:
+ dist = self._axisXMaxValue - self._axisXMinValue
+ self._axisXMinValue = self._areaMinValue
+ self._axisXMaxValue = self._axisXMinValue + dist
+
+ if self._axisXMaxValue > self._areaMaxValue:
+ dist = self._axisXMaxValue - self._axisXMinValue
+ self._axisXMaxValue = self._areaMaxValue
+ self._axisXMinValue = self._axisXMaxValue - dist
+
+ self._axisX.setRange(self._axisXMinValue, self._axisXMaxValue)
+ elif self._state == InputState.StateDraggingZ:
+ distance = (move.x() * zMulX + move.y() * zMulY) * self._speedModifier
+ self._axisZMinValue += distance
+ self._axisZMaxValue += distance
+ if self._axisZMinValue < self._areaMinValue:
+ dist = self._axisZMaxValue - self._axisZMinValue
+ self._axisZMinValue = self._areaMinValue
+ self._axisZMaxValue = self._axisZMinValue + dist
+
+ if self._axisZMaxValue > self._areaMaxValue:
+ dist = self._axisZMaxValue - self._axisZMinValue
+ self._axisZMaxValue = self._areaMaxValue
+ self._axisZMinValue = self._axisZMaxValue - dist
+
+ self._axisZ.setRange(self._axisZMinValue, self._axisZMaxValue)
+
+ def checkConstraints(self):
+ if self._axisXMinValue < self._areaMinValue:
+ self._axisXMinValue = self._areaMinValue
+ if self._axisXMaxValue > self._areaMaxValue:
+ self._axisXMaxValue = self._areaMaxValue
+ # Don't allow too much zoom in
+ range = self._axisXMaxValue - self._axisXMinValue
+ if range < self._axisXMinRange:
+ adjust = (self._axisXMinRange - range) / 2.0
+ self._axisXMinValue -= adjust
+ self._axisXMaxValue += adjust
+
+ if self._axisZMinValue < self._areaMinValue:
+ self._axisZMinValue = self._areaMinValue
+ if self._axisZMaxValue > self._areaMaxValue:
+ self._axisZMaxValue = self._areaMaxValue
+ # Don't allow too much zoom in
+ range = self._axisZMaxValue - self._axisZMinValue
+ if range < self._axisZMinRange:
+ adjust = (self._axisZMinRange - range) / 2.0
+ self._axisZMinValue -= adjust
+ self._axisZMaxValue += adjust
diff --git a/examples/graphs/3d/widgetgallery/data/layer_1.png b/examples/graphs/3d/widgetgallery/data/layer_1.png
new file mode 100644
index 000000000..9138c710a
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/layer_1.png
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/layer_2.png b/examples/graphs/3d/widgetgallery/data/layer_2.png
new file mode 100644
index 000000000..61631ae8b
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/layer_2.png
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/layer_3.png b/examples/graphs/3d/widgetgallery/data/layer_3.png
new file mode 100644
index 000000000..066ffbe75
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/layer_3.png
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/license.txt b/examples/graphs/3d/widgetgallery/data/license.txt
new file mode 100644
index 000000000..749daf31f
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/license.txt
@@ -0,0 +1,77 @@
+License information regarding the data obtained from National Land Survey of
+Finland http://www.maanmittauslaitos.fi/en
+- topographic model from Elevation model 2 m (U4421B, U4421D, U4422A and
+ U4422C) 08/2014
+- map image extracted from Topographic map raster 1:50 000 (U442) 08/2014
+
+National Land Survey open data licence - version 1.0 - 1 May 2012
+
+1. General information
+
+The National Land Survey of Finland (hereinafter the Licensor), as the holder
+of the immaterial rights to the data, has granted on the terms mentioned below
+the right to use a copy (hereinafter data or dataset(s)) of the data (or a part
+of it).
+
+The Licensee is a natural or legal person who makes use of the data covered by
+this licence. The Licensee accepts the terms of this licence by receiving the
+dataset(s) covered by the licence.
+
+This Licence agreement does not create a co-operation or business relationship
+between the Licensee and the Licensor.
+
+2. Terms of the licence
+
+2.1. Right of use
+
+This licence grants a worldwide, free of charge and irrevocable parallel right
+of use to open data. According to the terms of the licence, data received by
+the Licensee can be freely:
+ - copied, distributed and published,
+ - modified and utilised commercially and non-commercially,
+ - inserted into other products and
+ - used as a part of a software application or service.
+
+2.2. Duties and responsibilities of the Licensee
+
+Through reasonable means suitable to the distribution medium or method which is
+used in conjunction with a product containing data or a service utilising data
+covered by this licence or while distributing data, the Licensee shall:
+ - mention the name of the Licensor, the name of the dataset(s) and the time
+ when the National Land Survey has delivered the dataset(s) (e.g.: contains
+ data from the National Land Survey of Finland Topographic Database 06/2012)
+ - provide a copy of this licence or a link to it, as well as
+ - require third parties to provide the same information when granting rights
+ to copies of dataset(s) or products and services containing such data and
+ - remove the name of the Licensor from the product or service, if required to
+ do so by the Licensor.
+
+The terms of this licence do not allow the Licensee to state in conjunction
+with the use of dataset(s) that the Licensor supports or recommends such use.
+
+2.3. Duties and responsibilities of the Licensor
+
+The Licensor shall ensure that
+ - the Licensor has the right to grant rights to the dataset(s) in accordance
+ with this licence.
+
+The data has been licensed "as is" and the Licensor
+ - shall not be held responsible for any errors or omissions in the data,
+ disclaims any warranty for the validity or up to date status of the data and
+ shall be free from liability for direct or consequential damages arising
+ from the use of data provided by the Licensor,
+ - and is not obligated to ensure the continuous availability of the data, nor
+ to announce in advance the interruption or cessation of availability, and
+ the Licensor shall be free from liability for direct or consequential
+ damages arising from any such interruption or cessation.
+
+3. Jurisdiction
+
+Finnish law shall apply to this licence.
+
+4. Changes to this licence
+
+The Licensor may at any time change the terms of the licence or apply a
+different licence to the data. The terms of this licence shall, however, still
+apply to such data that has been received prior to the change of the terms of
+the licence or the licence itself.
diff --git a/examples/graphs/3d/widgetgallery/data/maptexture.jpg b/examples/graphs/3d/widgetgallery/data/maptexture.jpg
new file mode 100644
index 000000000..ae5d66ebe
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/maptexture.jpg
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/narrowarrow.mesh b/examples/graphs/3d/widgetgallery/data/narrowarrow.mesh
new file mode 100644
index 000000000..288867b1e
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/narrowarrow.mesh
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/oilrig.mesh b/examples/graphs/3d/widgetgallery/data/oilrig.mesh
new file mode 100644
index 000000000..4a7baeddf
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/oilrig.mesh
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/pipe.mesh b/examples/graphs/3d/widgetgallery/data/pipe.mesh
new file mode 100644
index 000000000..984b6d443
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/pipe.mesh
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/raindata.txt b/examples/graphs/3d/widgetgallery/data/raindata.txt
new file mode 100644
index 000000000..d95589219
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/raindata.txt
@@ -0,0 +1,158 @@
+# Rainfall per month from 2010 to 2022 in Northern Finland (Oulu)
+# Format: year, month, rainfall
+2010,1, 0,
+2010,2, 3.4,
+2010,3, 52,
+2010,4, 33.8,
+2010,5, 45.6,
+2010,6, 43.8,
+2010,7, 104.6,
+2010,8, 105.4,
+2010,9, 107.2,
+2010,10,38.6,
+2010,11,17.8,
+2010,12,0,
+2011,1, 8.2,
+2011,2, 1.6,
+2011,3, 27.4,
+2011,4, 15.8,
+2011,5, 57.6,
+2011,6, 85.2,
+2011,7, 127,
+2011,8, 72.2,
+2011,9, 82.2,
+2011,10,62.4,
+2011,11,31.6,
+2011,12,53.8,
+2012,1, 0,
+2012,2, 5,
+2012,3, 32.4,
+2012,4, 57.6,
+2012,5, 71.4,
+2012,6, 60.8,
+2012,7, 109,
+2012,8, 43.6,
+2012,9, 79.4,
+2012,10,117.2,
+2012,11,59,
+2012,12,0.2,
+2013,1, 28,
+2013,2, 19,
+2013,3, 0,
+2013,4, 37.6,
+2013,5, 44.2,
+2013,6, 104.8,
+2013,7, 84.2,
+2013,8, 57.2,
+2013,9, 37.2,
+2013,10,64.6,
+2013,11,77.8,
+2013,12,92.8,
+2014,1, 23.8,
+2014,2, 23.6,
+2014,3, 15.4,
+2014,4, 13.2,
+2014,5, 36.4,
+2014,6, 26.4,
+2014,7, 95.8,
+2014,8, 81.8,
+2014,9, 13.8,
+2014,10,94.6,
+2014,11,44.6,
+2014,12,31,
+2015,1, 37.4,
+2015,2, 21,
+2015,3, 42,
+2015,4, 8.8,
+2015,5, 82.4,
+2015,6, 150,
+2015,7, 56.8,
+2015,8, 67.2,
+2015,9, 131.2,
+2015,10,38.4,
+2015,11,83.4,
+2015,12,47.8,
+2016,1, 12.4,
+2016,2, 34.8,
+2016,3, 29,
+2016,4, 40.4,
+2016,5, 32.4,
+2016,6, 80.2,
+2016,7, 102.6,
+2016,8, 95.6,
+2016,9, 40.2,
+2016,10,7.8,
+2016,11,39.6,
+2016,12,8.8,
+2017,1, 9.4,
+2017,2, 6.6,
+2017,3, 29,
+2017,4, 46.2,
+2017,5, 43.2,
+2017,6, 25.2,
+2017,7, 72.4,
+2017,8, 58.8,
+2017,9, 68.8,
+2017,10,45.8,
+2017,11,36.8,
+2017,12,29.6,
+2018,1, 19.8,
+2018,2, 0.8,
+2018,3, 4,
+2018,4, 23.2,
+2018,5, 13.2,
+2018,6, 62.8,
+2018,7, 33,
+2018,8, 96.6,
+2018,9, 72.6,
+2018,10,48.8,
+2018,11,31.8,
+2018,12,12.8,
+2019,1, 0.2,
+2019,2, 24.8,
+2019,3, 32,
+2019,4, 8.8,
+2019,5, 71.4,
+2019,6, 65.8,
+2019,7, 17.6,
+2019,8, 90,
+2019,9, 50,
+2019,10,77,
+2019,11,27,
+2019,12,43.2,
+2020,1, 28.8,
+2020,2, 45,
+2020,3, 18.6,
+2020,4, 13,
+2020,5, 30.8,
+2020,6, 21.4,
+2020,7, 163.6,
+2020,8, 12,
+2020,9, 102.4,
+2020,10,133.2,
+2020,11,69.8,
+2020,12,40.6,
+2021,1, 0.4,
+2021,2, 21.6,
+2021,3, 24,
+2021,4, 51.4,
+2021,5, 76.4,
+2021,6, 29.2,
+2021,7, 36.4,
+2021,8, 116,
+2021,9, 72.4,
+2021,10,93.4,
+2021,11,21,
+2021,12,10.2,
+2022,1, 8.6,
+2022,2, 6.6,
+2022,3, 5.2,
+2022,4, 15.2,
+2022,5, 37.6,
+2022,6, 45,
+2022,7, 67.4,
+2022,8, 161.6,
+2022,9, 22.8,
+2022,10,75.2,
+2022,11,21.8,
+2022,12,0.2
diff --git a/examples/graphs/3d/widgetgallery/data/refinery.mesh b/examples/graphs/3d/widgetgallery/data/refinery.mesh
new file mode 100644
index 000000000..a7e249353
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/refinery.mesh
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/topography.png b/examples/graphs/3d/widgetgallery/data/topography.png
new file mode 100644
index 000000000..9349cdb31
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/topography.png
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/doc/widgetgallery.rst b/examples/graphs/3d/widgetgallery/doc/widgetgallery.rst
new file mode 100644
index 000000000..1470001d6
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/doc/widgetgallery.rst
@@ -0,0 +1,11 @@
+Widget Gallery
+==============
+
+
+Widget Gallery demonstrates all three graph types and some of their special
+features. The graphs have their own tabs in the application.
+
+
+.. image:: widgetgallery.webp
+ :width: 400
+ :alt: Widget Screenshot
diff --git a/examples/graphs/3d/widgetgallery/doc/widgetgallery.webp b/examples/graphs/3d/widgetgallery/doc/widgetgallery.webp
new file mode 100644
index 000000000..eb5767264
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/doc/widgetgallery.webp
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/graphmodifier.py b/examples/graphs/3d/widgetgallery/graphmodifier.py
new file mode 100644
index 000000000..2eaafa792
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/graphmodifier.py
@@ -0,0 +1,391 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+from math import atan, degrees
+import numpy as np
+
+from PySide6.QtCore import QObject, QPropertyAnimation, Signal, Slot
+from PySide6.QtGui import QFont, QVector3D
+from PySide6.QtGraphs import (QAbstract3DGraph, QAbstract3DSeries,
+ QBarDataItem, QBar3DSeries, QCategory3DAxis,
+ QValue3DAxis, Q3DTheme)
+
+from rainfalldata import RainfallData
+
+# Set up data
+TEMP_OULU = np.array([
+ [-7.4, -2.4, 0.0, 3.0, 8.2, 11.6, 14.7, 15.4, 11.4, 4.2, 2.1, -2.3], # 2015
+ [-13.4, -3.9, -1.8, 3.1, 10.6, 13.7, 17.8, 13.6, 10.7, 3.5, -3.1, -4.2], # 2016
+ [-5.7, -6.7, -3.0, -0.1, 4.7, 12.4, 16.1, 14.1, 9.4, 3.0, -0.3, -3.2], # 2017
+ [-6.4, -11.9, -7.4, 1.9, 11.4, 12.4, 21.5, 16.1, 11.0, 4.4, 2.1, -4.1], # 2018
+ [-11.7, -6.1, -2.4, 3.9, 7.2, 14.5, 15.6, 14.4, 8.5, 2.0, -3.0, -1.5], # 2019
+ [-2.1, -3.4, -1.8, 0.6, 7.0, 17.1, 15.6, 15.4, 11.1, 5.6, 1.9, -1.7], # 2020
+ [-9.6, -11.6, -3.2, 2.4, 7.8, 17.3, 19.4, 14.2, 8.0, 5.2, -2.2, -8.6], # 2021
+ [-7.3, -6.4, -1.8, 1.3, 8.1, 15.5, 17.6, 17.6, 9.1, 5.4, -1.5, -4.4]], # 2022
+ np.float64)
+
+
+TEMP_HELSINKI = np.array([
+ [-2.0, -0.1, 1.8, 5.1, 9.7, 13.7, 16.3, 17.3, 12.7, 5.4, 4.6, 2.1], # 2015
+ [-10.3, -0.6, 0.0, 4.9, 14.3, 15.7, 17.7, 16.0, 12.7, 4.6, -1.0, -0.9], # 2016
+ [-2.9, -3.3, 0.7, 2.3, 9.9, 13.8, 16.1, 15.9, 11.4, 5.0, 2.7, 0.7], # 2017
+ [-2.2, -8.4, -4.7, 5.0, 15.3, 15.8, 21.2, 18.2, 13.3, 6.7, 2.8, -2.0], # 2018
+ [-6.2, -0.5, -0.3, 6.8, 10.6, 17.9, 17.5, 16.8, 11.3, 5.2, 1.8, 1.4], # 2019
+ [1.9, 0.5, 1.7, 4.5, 9.5, 18.4, 16.5, 16.8, 13.0, 8.2, 4.4, 0.9], # 2020
+ [-4.7, -8.1, -0.9, 4.5, 10.4, 19.2, 20.9, 15.4, 9.5, 8.0, 1.5, -6.7], # 2021
+ [-3.3, -2.2, -0.2, 3.3, 9.6, 16.9, 18.1, 18.9, 9.2, 7.6, 2.3, -3.4]], # 2022
+ np.float64)
+
+
+class GraphModifier(QObject):
+
+ shadowQualityChanged = Signal(int)
+ backgroundEnabledChanged = Signal(bool)
+ gridEnabledChanged = Signal(bool)
+ fontChanged = Signal(QFont)
+ fontSizeChanged = Signal(int)
+
+ def __init__(self, bargraph, parent):
+ super().__init__(parent)
+ self._graph = bargraph
+ self._temperatureAxis = QValue3DAxis()
+ self._yearAxis = QCategory3DAxis()
+ self._monthAxis = QCategory3DAxis()
+ self._primarySeries = QBar3DSeries()
+ self._secondarySeries = QBar3DSeries()
+ self._celsiusString = "°C"
+
+ self._xRotation = float(0)
+ self._yRotation = float(0)
+ self._fontSize = 30
+ self._segments = 4
+ self._subSegments = 3
+ self._minval = float(-20)
+ self._maxval = float(20)
+ self._barMesh = QAbstract3DSeries.Mesh.BevelBar
+ self._smooth = False
+ self._animationCameraX = QPropertyAnimation()
+ self._animationCameraY = QPropertyAnimation()
+ self._animationCameraZoom = QPropertyAnimation()
+ self._animationCameraTarget = QPropertyAnimation()
+ self._defaultAngleX = float(0)
+ self._defaultAngleY = float(0)
+ self._defaultZoom = float(0)
+ self._defaultTarget = []
+ self._customData = None
+
+ self._graph.setShadowQuality(QAbstract3DGraph.ShadowQuality.SoftMedium)
+ theme = self._graph.activeTheme()
+ theme.setBackgroundEnabled(False)
+ theme.setFont(QFont("Times New Roman", self._fontSize))
+ theme.setLabelBackgroundEnabled(True)
+ self._graph.setMultiSeriesUniform(True)
+
+ self._months = ["January", "February", "March", "April", "May", "June",
+ "July", "August", "September", "October", "November",
+ "December"]
+ self._years = ["2015", "2016", "2017", "2018", "2019", "2020",
+ "2021", "2022"]
+
+ self._temperatureAxis.setTitle("Average temperature")
+ self._temperatureAxis.setSegmentCount(self._segments)
+ self._temperatureAxis.setSubSegmentCount(self._subSegments)
+ self._temperatureAxis.setRange(self._minval, self._maxval)
+ self._temperatureAxis.setLabelFormat("%.1f " + self._celsiusString)
+ self._temperatureAxis.setLabelAutoRotation(30.0)
+ self._temperatureAxis.setTitleVisible(True)
+
+ self._yearAxis.setTitle("Year")
+ self._yearAxis.setLabelAutoRotation(30.0)
+ self._yearAxis.setTitleVisible(True)
+ self._monthAxis.setTitle("Month")
+ self._monthAxis.setLabelAutoRotation(30.0)
+ self._monthAxis.setTitleVisible(True)
+
+ self._graph.setValueAxis(self._temperatureAxis)
+ self._graph.setRowAxis(self._yearAxis)
+ self._graph.setColumnAxis(self._monthAxis)
+
+ format = "Oulu - @colLabel @rowLabel: @valueLabel"
+ self._primarySeries.setItemLabelFormat(format)
+ self._primarySeries.setMesh(QAbstract3DSeries.Mesh.BevelBar)
+ self._primarySeries.setMeshSmooth(False)
+
+ format = "Helsinki - @colLabel @rowLabel: @valueLabel"
+ self._secondarySeries.setItemLabelFormat(format)
+ self._secondarySeries.setMesh(QAbstract3DSeries.Mesh.BevelBar)
+ self._secondarySeries.setMeshSmooth(False)
+ self._secondarySeries.setVisible(False)
+
+ self._graph.addSeries(self._primarySeries)
+ self._graph.addSeries(self._secondarySeries)
+
+ self.changePresetCamera()
+
+ self.resetTemperatureData()
+
+ # Set up property animations for zooming to the selected bar
+ self._defaultAngleX = self._graph.cameraXRotation()
+ self._defaultAngleY = self._graph.cameraYRotation()
+ self._defaultZoom = self._graph.cameraZoomLevel()
+ self._defaultTarget = self._graph.cameraTargetPosition()
+
+ self._animationCameraX.setTargetObject(self._graph)
+ self._animationCameraY.setTargetObject(self._graph)
+ self._animationCameraZoom.setTargetObject(self._graph)
+ self._animationCameraTarget.setTargetObject(self._graph)
+
+ self._animationCameraX.setPropertyName(b"cameraXRotation")
+ self._animationCameraY.setPropertyName(b"cameraYRotation")
+ self._animationCameraZoom.setPropertyName(b"cameraZoomLevel")
+ self._animationCameraTarget.setPropertyName(b"cameraTargetPosition")
+
+ duration = 1700
+ self._animationCameraX.setDuration(duration)
+ self._animationCameraY.setDuration(duration)
+ self._animationCameraZoom.setDuration(duration)
+ self._animationCameraTarget.setDuration(duration)
+
+ # The zoom always first zooms out above the graph and then zooms in
+ zoomOutFraction = 0.3
+ self._animationCameraX.setKeyValueAt(zoomOutFraction, 0.0)
+ self._animationCameraY.setKeyValueAt(zoomOutFraction, 90.0)
+ self._animationCameraZoom.setKeyValueAt(zoomOutFraction, 50.0)
+ self._animationCameraTarget.setKeyValueAt(zoomOutFraction,
+ QVector3D(0, 0, 0))
+ self._customData = RainfallData()
+
+ def resetTemperatureData(self):
+ # Create data arrays
+ dataSet = []
+ dataSet2 = []
+
+ for year in range(0, len(self._years)):
+ # Create a data row
+ dataRow = []
+ dataRow2 = []
+ for month in range(0, len(self._months)):
+ # Add data to the row
+ item = QBarDataItem()
+ item.setValue(TEMP_OULU[year][month])
+ dataRow.append(item)
+ item = QBarDataItem()
+ item.setValue(TEMP_HELSINKI[year][month])
+ dataRow2.append(item)
+
+ # Add the row to the set
+ dataSet.append(dataRow)
+ dataSet2.append(dataRow2)
+
+ # Add data to the data proxy (the data proxy assumes ownership of it)
+ self._primarySeries.dataProxy().resetArray(dataSet, self._years, self._months)
+ self._secondarySeries.dataProxy().resetArray(dataSet2, self._years, self._months)
+
+ @Slot(int)
+ def changeRange(self, range):
+ if range >= len(self._years):
+ self._yearAxis.setRange(0, len(self._years) - 1)
+ else:
+ self._yearAxis.setRange(range, range)
+
+ @Slot(int)
+ def changeStyle(self, style):
+ comboBox = self.sender()
+ if comboBox:
+ self._barMesh = comboBox.itemData(style)
+ self._primarySeries.setMesh(self._barMesh)
+ self._secondarySeries.setMesh(self._barMesh)
+ self._customData.customSeries().setMesh(self._barMesh)
+
+ def changePresetCamera(self):
+ self._animationCameraX.stop()
+ self._animationCameraY.stop()
+ self._animationCameraZoom.stop()
+ self._animationCameraTarget.stop()
+
+ # Restore camera target in case animation has changed it
+ self._graph.setCameraTargetPosition(QVector3D(0.0, 0.0, 0.0))
+
+ self._preset = QAbstract3DGraph.CameraPreset.Front.value
+
+ self._graph.setCameraPreset(QAbstract3DGraph.CameraPreset(self._preset))
+
+ self._preset += 1
+ if self._preset > QAbstract3DGraph.CameraPreset.DirectlyBelow.value:
+ self._preset = QAbstract3DGraph.CameraPreset.FrontLow.value
+
+ @Slot(int)
+ def changeTheme(self, theme):
+ currentTheme = self._graph.activeTheme()
+ currentTheme.setType(Q3DTheme.Theme(theme))
+ self.backgroundEnabledChanged.emit(currentTheme.isBackgroundEnabled())
+ self.gridEnabledChanged.emit(currentTheme.isGridEnabled())
+ self.fontChanged.emit(currentTheme.font())
+ self.fontSizeChanged.emit(currentTheme.font().pointSize())
+
+ def changeLabelBackground(self):
+ theme = self._graph.activeTheme()
+ theme.setLabelBackgroundEnabled(not theme.isLabelBackgroundEnabled())
+
+ @Slot(int)
+ def changeSelectionMode(self, selectionMode):
+ comboBox = self.sender()
+ if comboBox:
+ flags = comboBox.itemData(selectionMode)
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionFlags(flags))
+
+ def changeFont(self, font):
+ newFont = font
+ self._graph.activeTheme().setFont(newFont)
+
+ def changeFontSize(self, fontsize):
+ self._fontSize = fontsize
+ font = self._graph.activeTheme().font()
+ font.setPointSize(self._fontSize)
+ self._graph.activeTheme().setFont(font)
+
+ @Slot(QAbstract3DGraph.ShadowQuality)
+ def shadowQualityUpdatedByVisual(self, sq):
+ # Updates the UI component to show correct shadow quality
+ self.shadowQualityChanged.emit(sq.value)
+
+ @Slot(int)
+ def changeLabelRotation(self, rotation):
+ self._temperatureAxis.setLabelAutoRotation(float(rotation))
+ self._monthAxis.setLabelAutoRotation(float(rotation))
+ self._yearAxis.setLabelAutoRotation(float(rotation))
+
+ @Slot(bool)
+ def setAxisTitleVisibility(self, enabled):
+ self._temperatureAxis.setTitleVisible(enabled)
+ self._monthAxis.setTitleVisible(enabled)
+ self._yearAxis.setTitleVisible(enabled)
+
+ @Slot(bool)
+ def setAxisTitleFixed(self, enabled):
+ self._temperatureAxis.setTitleFixed(enabled)
+ self._monthAxis.setTitleFixed(enabled)
+ self._yearAxis.setTitleFixed(enabled)
+
+ @Slot()
+ def zoomToSelectedBar(self):
+ self._animationCameraX.stop()
+ self._animationCameraY.stop()
+ self._animationCameraZoom.stop()
+ self._animationCameraTarget.stop()
+
+ currentX = self._graph.cameraXRotation()
+ currentY = self._graph.cameraYRotation()
+ currentZoom = self._graph.cameraZoomLevel()
+ currentTarget = self._graph.cameraTargetPosition()
+
+ self._animationCameraX.setStartValue(currentX)
+ self._animationCameraY.setStartValue(currentY)
+ self._animationCameraZoom.setStartValue(currentZoom)
+ self._animationCameraTarget.setStartValue(currentTarget)
+
+ selectedBar = (self._graph.selectedSeries().selectedBar()
+ if self._graph.selectedSeries()
+ else QBar3DSeries.invalidSelectionPosition())
+
+ if selectedBar != QBar3DSeries.invalidSelectionPosition():
+ # Normalize selected bar position within axis range to determine
+ # target coordinates
+ endTarget = QVector3D()
+ xMin = self._graph.columnAxis().min()
+ xRange = self._graph.columnAxis().max() - xMin
+ zMin = self._graph.rowAxis().min()
+ zRange = self._graph.rowAxis().max() - zMin
+ endTarget.setX((selectedBar.y() - xMin) / xRange * 2.0 - 1.0)
+ endTarget.setZ((selectedBar.x() - zMin) / zRange * 2.0 - 1.0)
+
+ # Rotate the camera so that it always points approximately to the
+ # graph center
+ endAngleX = 90.0 - degrees(atan(float(endTarget.z() / endTarget.x())))
+ if endTarget.x() > 0.0:
+ endAngleX -= 180.0
+ proxy = self._graph.selectedSeries().dataProxy()
+ barValue = proxy.itemAt(selectedBar.x(), selectedBar.y()).value()
+ endAngleY = 30.0 if barValue >= 0.0 else -30.0
+ if self._graph.valueAxis().reversed():
+ endAngleY *= -1.0
+
+ self._animationCameraX.setEndValue(float(endAngleX))
+ self._animationCameraY.setEndValue(endAngleY)
+ self._animationCameraZoom.setEndValue(250)
+ self._animationCameraTarget.setEndValue(endTarget)
+ else:
+ # No selected bar, so return to the default view
+ self._animationCameraX.setEndValue(self._defaultAngleX)
+ self._animationCameraY.setEndValue(self._defaultAngleY)
+ self._animationCameraZoom.setEndValue(self._defaultZoom)
+ self._animationCameraTarget.setEndValue(self._defaultTarget)
+
+ self._animationCameraX.start()
+ self._animationCameraY.start()
+ self._animationCameraZoom.start()
+ self._animationCameraTarget.start()
+
+ @Slot(bool)
+ def setDataModeToWeather(self, enabled):
+ if enabled:
+ self.changeDataMode(False)
+
+ @Slot(bool)
+ def setDataModeToCustom(self, enabled):
+ if enabled:
+ self.changeDataMode(True)
+
+ def changeShadowQuality(self, quality):
+ sq = QAbstract3DGraph.ShadowQuality(quality)
+ self._graph.setShadowQuality(sq)
+ self.shadowQualityChanged.emit(quality)
+
+ def rotateX(self, rotation):
+ self._xRotation = rotation
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPosition(self._xRotation, self._yRotation)
+
+ def rotateY(self, rotation):
+ self._yRotation = rotation
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPosition(self._xRotation, self._yRotation)
+
+ def setBackgroundEnabled(self, enabled):
+ self._graph.activeTheme().setBackgroundEnabled(bool(enabled))
+
+ def setGridEnabled(self, enabled):
+ self._graph.activeTheme().setGridEnabled(bool(enabled))
+
+ def setSmoothBars(self, smooth):
+ self._smooth = bool(smooth)
+ self._primarySeries.setMeshSmooth(self._smooth)
+ self._secondarySeries.setMeshSmooth(self._smooth)
+ self._customData.customSeries().setMeshSmooth(self._smooth)
+
+ def setSeriesVisibility(self, enabled):
+ self._secondarySeries.setVisible(bool(enabled))
+
+ def setReverseValueAxis(self, enabled):
+ self._graph.valueAxis().setReversed(enabled)
+
+ def setReflection(self, enabled):
+ self._graph.setReflection(enabled)
+
+ def changeDataMode(self, customData):
+ # Change between weather data and data from custom proxy
+ if customData:
+ self._graph.removeSeries(self._primarySeries)
+ self._graph.removeSeries(self._secondarySeries)
+ self._graph.addSeries(self._customData.customSeries())
+ self._graph.setValueAxis(self._customData.valueAxis())
+ self._graph.setRowAxis(self._customData.rowAxis())
+ self._graph.setColumnAxis(self._customData.colAxis())
+ else:
+ self._graph.removeSeries(self._customData.customSeries())
+ self._graph.addSeries(self._primarySeries)
+ self._graph.addSeries(self._secondarySeries)
+ self._graph.setValueAxis(self._temperatureAxis)
+ self._graph.setRowAxis(self._yearAxis)
+ self._graph.setColumnAxis(self._monthAxis)
diff --git a/examples/graphs/3d/widgetgallery/highlightseries.py b/examples/graphs/3d/widgetgallery/highlightseries.py
new file mode 100644
index 000000000..8c7b91633
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/highlightseries.py
@@ -0,0 +1,94 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QPoint, Qt, Slot
+from PySide6.QtGui import QLinearGradient, QVector3D
+from PySide6.QtGraphs import (QSurface3DSeries, QSurfaceDataItem, Q3DTheme)
+
+
+DARK_RED_POS = 1.0
+RED_POS = 0.8
+YELLOW_POS = 0.6
+GREEN_POS = 0.4
+DARK_GREEN_POS = 0.2
+
+
+class HighlightSeries(QSurface3DSeries):
+
+ def __init__(self):
+ super().__init__()
+ self._width = 100
+ self._height = 100
+ self._srcWidth = 0
+ self._srcHeight = 0
+ self._position = {}
+ self._topographicSeries = None
+ self._minHeight = 0.0
+ self.setDrawMode(QSurface3DSeries.DrawSurface)
+ self.setFlatShadingEnabled(True)
+ self.setVisible(False)
+
+ def setTopographicSeries(self, series):
+ self._topographicSeries = series
+ array = self._topographicSeries.dataProxy().array()
+ self._srcWidth = len(array[0])
+ self._srcHeight = len(array)
+ self._topographicSeries.selectedPointChanged.connect(self.handlePositionChange)
+
+ def setMinHeight(self, height):
+ self. m_minHeight = height
+
+ @Slot(QPoint)
+ def handlePositionChange(self, position):
+ self._position = position
+
+ if position == self.invalidSelectionPosition():
+ self.setVisible(False)
+ return
+
+ halfWidth = self._width / 2
+ halfHeight = self._height / 2
+
+ startX = position.y() - halfWidth
+ if startX < 0:
+ startX = 0
+ endX = position.y() + halfWidth
+ if endX > (self._srcWidth - 1):
+ endX = self._srcWidth - 1
+ startZ = position.x() - halfHeight
+ if startZ < 0:
+ startZ = 0
+ endZ = position.x() + halfHeight
+ if endZ > (self._srcHeight - 1):
+ endZ = self._srcHeight - 1
+
+ srcProxy = self._topographicSeries.dataProxy()
+ srcArray = srcProxy.array()
+
+ dataArray = []
+ for i in range(int(startZ), int(endZ)):
+ newRow = []
+ srcRow = srcArray[i]
+ for j in range(startX, endX):
+ pos = srcRow.at(j).position()
+ pos.setY(pos.y() + 0.1)
+ item = QSurfaceDataItem(QVector3D(pos))
+ newRow.append(item)
+ dataArray.append(newRow)
+ self.dataProxy().resetArray(dataArray)
+ self.setVisible(True)
+
+ @Slot(float)
+ def handleGradientChange(self, value):
+ ratio = self._minHeight / value
+
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.black)
+ gr.setColorAt(DARK_GREEN_POS * ratio, Qt.darkGreen)
+ gr.setColorAt(GREEN_POS * ratio, Qt.green)
+ gr.setColorAt(YELLOW_POS * ratio, Qt.yellow)
+ gr.setColorAt(RED_POS * ratio, Qt.red)
+ gr.setColorAt(DARK_RED_POS * ratio, Qt.darkRed)
+
+ self.setBaseGradient(gr)
+ self.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
diff --git a/examples/graphs/3d/widgetgallery/main.py b/examples/graphs/3d/widgetgallery/main.py
new file mode 100644
index 000000000..7bb2238a7
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/main.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt Graphs widgetgallery example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCore import QSize
+from PySide6.QtWidgets import QApplication, QTabWidget
+
+from bargraph import BarGraph
+from scattergraph import ScatterGraph
+from surfacegraph import SurfaceGraph
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ # Create a tab widget for creating own tabs for Q3DBars, Q3DScatter, and Q3DSurface
+ tabWidget = QTabWidget()
+ tabWidget.setWindowTitle("Widget Gallery")
+
+ screen_size = tabWidget.screen().size()
+ minimum_graph_size = QSize(screen_size.width() / 2, screen_size.height() / 1.75)
+
+ # Create bar graph
+ bars = BarGraph(minimum_graph_size, screen_size)
+ # Create scatter graph
+ scatter = ScatterGraph(minimum_graph_size, screen_size)
+ # Create surface graph
+ surface = SurfaceGraph(minimum_graph_size, screen_size)
+
+ # Add bars widget
+ tabWidget.addTab(bars.barsWidget(), "Bar Graph")
+ # Add scatter widget
+ tabWidget.addTab(scatter.scatterWidget(), "Scatter Graph")
+ # Add surface widget
+ tabWidget.addTab(surface.surfaceWidget(), "Surface Graph")
+
+ tabWidget.show()
+ sys.exit(app.exec())
diff --git a/examples/graphs/3d/widgetgallery/rainfalldata.py b/examples/graphs/3d/widgetgallery/rainfalldata.py
new file mode 100644
index 000000000..d74f45a8b
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/rainfalldata.py
@@ -0,0 +1,125 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from pathlib import Path
+
+from PySide6.QtCore import QFile, QIODevice, QObject
+from PySide6.QtGraphs import (QBar3DSeries, QCategory3DAxis, QValue3DAxis)
+
+from variantbardataproxy import VariantBarDataProxy
+from variantbardatamapping import VariantBarDataMapping
+from variantdataset import VariantDataSet
+
+
+MONTHS = ["January", "February", "March", "April",
+ "May", "June", "July", "August", "September", "October",
+ "November", "December"]
+
+
+class RainfallData(QObject):
+
+ def __init__(self):
+ super().__init__()
+ self._columnCount = 0
+ self._rowCount = 0
+ self._years = []
+ self._numericMonths = []
+ self._proxy = VariantBarDataProxy()
+ self._mapping = None
+ self._dataSet = None
+ self._series = QBar3DSeries()
+ self._valueAxis = QValue3DAxis()
+ self._rowAxis = QCategory3DAxis()
+ self._colAxis = QCategory3DAxis()
+
+ # In data file the months are in numeric format, so create custom list
+ for i in range(1, 13):
+ self._numericMonths.append(str(i))
+
+ self._columnCount = len(self._numericMonths)
+
+ self.updateYearsList(2010, 2022)
+
+ # Create proxy and series
+ self._proxy = VariantBarDataProxy()
+ self._series = QBar3DSeries(self._proxy)
+
+ self._series.setItemLabelFormat("%.1f mm")
+
+ # Create the axes
+ self._rowAxis = QCategory3DAxis(self)
+ self._colAxis = QCategory3DAxis(self)
+ self._valueAxis = QValue3DAxis(self)
+ self._rowAxis.setAutoAdjustRange(True)
+ self._colAxis.setAutoAdjustRange(True)
+ self._valueAxis.setAutoAdjustRange(True)
+
+ # Set axis labels and titles
+ self._rowAxis.setTitle("Year")
+ self._colAxis.setTitle("Month")
+ self._valueAxis.setTitle("rainfall (mm)")
+ self._valueAxis.setSegmentCount(5)
+ self._rowAxis.setLabels(self._years)
+ self._colAxis.setLabels(MONTHS)
+ self._rowAxis.setTitleVisible(True)
+ self._colAxis.setTitleVisible(True)
+ self._valueAxis.setTitleVisible(True)
+
+ self.addDataSet()
+
+ def customSeries(self):
+ return self._series
+
+ def valueAxis(self):
+ return self._valueAxis
+
+ def rowAxis(self):
+ return self._rowAxis
+
+ def colAxis(self):
+ return self._colAxis
+
+ def updateYearsList(self, start, end):
+ self._years.clear()
+ for i in range(start, end + 1):
+ self._years.append(str(i))
+ self._rowCount = len(self._years)
+
+ def addDataSet(self):
+ # Create a new variant data set and data item list
+ self._dataSet = VariantDataSet()
+ itemList = []
+
+ # Read data from a data file into the data item list
+ file_path = Path(__file__).resolve().parent / "data" / "raindata.txt"
+ dataFile = QFile(file_path)
+ if dataFile.open(QIODevice.ReadOnly | QIODevice.Text):
+ data = dataFile.readAll().data().decode("utf8")
+ for line in data.split("\n"):
+ if line and not line.startswith("#"): # Ignore comments
+ tokens = line.split(",")
+ # Each line has three data items: Year, month, and
+ # rainfall value
+ if len(tokens) >= 3:
+ # Store year and month as strings, and rainfall value
+ # as double into a variant data item and add the item to
+ # the item list.
+ newItem = []
+ newItem.append(tokens[0].strip())
+ newItem.append(tokens[1].strip())
+ newItem.append(float(tokens[2].strip()))
+ itemList.append(newItem)
+ else:
+ print("Unable to open data file:", dataFile.fileName(),
+ file=sys.stderr)
+
+ # Add items to the data set and set it to the proxy
+ self._dataSet.addItems(itemList)
+ self._proxy.setDataSet(self._dataSet)
+
+ # Create new mapping for the data and set it to the proxy
+ self._mapping = VariantBarDataMapping(0, 1, 2,
+ self._years, self._numericMonths)
+ self._proxy.setMapping(self._mapping)
diff --git a/examples/graphs/3d/widgetgallery/scatterdatamodifier.py b/examples/graphs/3d/widgetgallery/scatterdatamodifier.py
new file mode 100644
index 000000000..15064b412
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/scatterdatamodifier.py
@@ -0,0 +1,149 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from math import cos, degrees, sqrt
+
+from PySide6.QtCore import QObject, Signal, Slot, Qt
+from PySide6.QtGui import QVector3D
+from PySide6.QtGraphs import (QAbstract3DGraph, QAbstract3DSeries,
+ QScatterDataItem, QScatterDataProxy,
+ QScatter3DSeries, Q3DTheme)
+
+from axesinputhandler import AxesInputHandler
+
+
+NUMBER_OF_ITEMS = 10000
+CURVE_DIVIDER = 7.5
+LOWER_NUMBER_OF_ITEMS = 900
+LOWER_CURVE_DIVIDER = 0.75
+
+
+class ScatterDataModifier(QObject):
+
+ backgroundEnabledChanged = Signal(bool)
+ gridEnabledChanged = Signal(bool)
+ shadowQualityChanged = Signal(int)
+
+ def __init__(self, scatter, parent):
+ super().__init__(parent)
+
+ self._graph = scatter
+
+ self._style = QAbstract3DSeries.Mesh.Sphere
+ self._smooth = True
+ self._inputHandler = AxesInputHandler(scatter)
+ self._autoAdjust = True
+ self._itemCount = LOWER_NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = LOWER_CURVE_DIVIDER
+ self._inputHandler = AxesInputHandler(scatter)
+
+ self._graph.activeTheme().setType(Q3DTheme.Theme.StoneMoss)
+ self._graph.setShadowQuality(QAbstract3DGraph.ShadowQuality.SoftHigh)
+ self._graph.setCameraPreset(QAbstract3DGraph.CameraPreset.Front)
+ self._graph.setCameraZoomLevel(80.0)
+
+ self._proxy = QScatterDataProxy()
+ self._series = QScatter3DSeries(self._proxy)
+ self._series.setItemLabelFormat("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel")
+ self._series.setMeshSmooth(self._smooth)
+ self._graph.addSeries(self._series)
+ self._preset = QAbstract3DGraph.CameraPreset.FrontLow.value
+
+ # Give ownership of the handler to the graph and make it the active
+ # handler
+ self._graph.setActiveInputHandler(self._inputHandler)
+
+ # Give our axes to the input handler
+ self._inputHandler.setAxes(self._graph.axisX(), self._graph.axisZ(),
+ self._graph.axisY())
+
+ self.addData()
+
+ def addData(self):
+ # Configure the axes according to the data
+ self._graph.axisX().setTitle("X")
+ self._graph.axisY().setTitle("Y")
+ self._graph.axisZ().setTitle("Z")
+
+ dataArray = []
+ limit = int(sqrt(self._itemCount) / 2.0)
+ for i in range(-limit, limit):
+ for j in range(-limit, limit):
+ x = float(i) + 0.5
+ y = cos(degrees(float(i * j) / self._CURVE_DIVIDER))
+ z = float(j) + 0.5
+ dataArray.append(QScatterDataItem(QVector3D(x, y, z)))
+
+ self._graph.seriesList()[0].dataProxy().resetArray(dataArray)
+
+ @Slot(int)
+ def changeStyle(self, style):
+ comboBox = self.sender()
+ if comboBox:
+ self._style = comboBox.itemData(style)
+ if self._graph.seriesList():
+ self._graph.seriesList()[0].setMesh(self._style)
+
+ @Slot(int)
+ def setSmoothDots(self, smooth):
+ self._smooth = smooth == Qt.Checked.value
+ series = self._graph.seriesList()[0]
+ series.setMeshSmooth(self._smooth)
+
+ @Slot(int)
+ def changeTheme(self, theme):
+ currentTheme = self._graph.activeTheme()
+ currentTheme.setType(Q3DTheme.Theme(theme))
+ self.backgroundEnabledChanged.emit(currentTheme.isBackgroundEnabled())
+ self.gridEnabledChanged.emit(currentTheme.isGridEnabled())
+
+ @Slot()
+ def changePresetCamera(self):
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPreset(QAbstract3DGraph.CameraPreset(self._preset))
+
+ self._preset += 1
+ if self._preset > QAbstract3DGraph.CameraPreset.DirectlyBelow.value:
+ self._preset = QAbstract3DGraph.CameraPreset.FrontLow.value
+
+ @Slot(QAbstract3DGraph.ShadowQuality)
+ def shadowQualityUpdatedByVisual(self, sq):
+ self.shadowQualityChanged.emit(sq.value)
+
+ @Slot(int)
+ def changeShadowQuality(self, quality):
+ sq = QAbstract3DGraph.ShadowQuality(quality)
+ self._graph.setShadowQuality(sq)
+
+ @Slot(int)
+ def setBackgroundEnabled(self, enabled):
+ self._graph.activeTheme().setBackgroundEnabled(enabled == Qt.Checked.value)
+
+ @Slot(int)
+ def setGridEnabled(self, enabled):
+ self._graph.activeTheme().setGridEnabled(enabled == Qt.Checked.value)
+
+ @Slot()
+ def toggleItemCount(self):
+ if self._itemCount == NUMBER_OF_ITEMS:
+ self._itemCount = LOWER_NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = LOWER_CURVE_DIVIDER
+ else:
+ self._itemCount = NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = CURVE_DIVIDER
+
+ self._graph.seriesList()[0].dataProxy().resetArray([])
+ self.addData()
+
+ @Slot()
+ def toggleRanges(self):
+ if not self._autoAdjust:
+ self._graph.axisX().setAutoAdjustRange(True)
+ self._graph.axisZ().setAutoAdjustRange(True)
+ self._inputHandler.setDragSpeedModifier(1.5)
+ self._autoAdjust = True
+ else:
+ self._graph.axisX().setRange(-10.0, 10.0)
+ self._graph.axisZ().setRange(-10.0, 10.0)
+ self._inputHandler.setDragSpeedModifier(15.0)
+ self._autoAdjust = False
diff --git a/examples/graphs/3d/widgetgallery/scattergraph.py b/examples/graphs/3d/widgetgallery/scattergraph.py
new file mode 100644
index 000000000..79e8933eb
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/scattergraph.py
@@ -0,0 +1,121 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, QSize, Qt
+from PySide6.QtWidgets import (QCheckBox, QComboBox, QCommandLinkButton,
+ QLabel, QHBoxLayout, QSizePolicy,
+ QVBoxLayout, QWidget, )
+from PySide6.QtQuickWidgets import QQuickWidget
+from PySide6.QtGraphs import (QAbstract3DSeries, Q3DScatter)
+
+from scatterdatamodifier import ScatterDataModifier
+
+
+class ScatterGraph(QObject):
+
+ def __init__(self, minimum_graph_size, maximum_graph_size):
+ super().__init__()
+ self._scatterGraph = Q3DScatter()
+ self._scatterWidget = QWidget()
+ hLayout = QHBoxLayout(self._scatterWidget)
+ self._scatterGraph.setMinimumSize(minimum_graph_size)
+ self._scatterGraph.setMaximumSize(maximum_graph_size)
+ self._scatterGraph.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._scatterGraph.setFocusPolicy(Qt.StrongFocus)
+ self._scatterGraph.setResizeMode(QQuickWidget.SizeRootObjectToView)
+ hLayout.addWidget(self._scatterGraph, 1)
+
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+
+ cameraButton = QCommandLinkButton(self._scatterWidget)
+ cameraButton.setText("Change camera preset")
+ cameraButton.setDescription("Switch between a number of preset camera positions")
+ cameraButton.setIconSize(QSize(0, 0))
+
+ itemCountButton = QCommandLinkButton(self._scatterWidget)
+ itemCountButton.setText("Toggle item count")
+ itemCountButton.setDescription("Switch between 900 and 10000 data points")
+ itemCountButton.setIconSize(QSize(0, 0))
+
+ rangeButton = QCommandLinkButton(self._scatterWidget)
+ rangeButton.setText("Toggle axis ranges")
+ rangeButton.setDescription("Switch between automatic axis ranges and preset ranges")
+ rangeButton.setIconSize(QSize(0, 0))
+
+ backgroundCheckBox = QCheckBox(self._scatterWidget)
+ backgroundCheckBox.setText("Show background")
+ backgroundCheckBox.setChecked(True)
+
+ gridCheckBox = QCheckBox(self._scatterWidget)
+ gridCheckBox.setText("Show grid")
+ gridCheckBox.setChecked(True)
+
+ smoothCheckBox = QCheckBox(self._scatterWidget)
+ smoothCheckBox.setText("Smooth dots")
+ smoothCheckBox.setChecked(True)
+
+ itemStyleList = QComboBox(self._scatterWidget)
+ itemStyleList.addItem("Sphere", QAbstract3DSeries.Mesh.Sphere)
+ itemStyleList.addItem("Cube", QAbstract3DSeries.Mesh.Cube)
+ itemStyleList.addItem("Minimal", QAbstract3DSeries.Mesh.Minimal)
+ itemStyleList.addItem("Point", QAbstract3DSeries.Mesh.Point)
+ itemStyleList.setCurrentIndex(0)
+
+ themeList = QComboBox(self._scatterWidget)
+ themeList.addItem("Qt")
+ themeList.addItem("Primary Colors")
+ themeList.addItem("Digia")
+ themeList.addItem("Stone Moss")
+ themeList.addItem("Army Blue")
+ themeList.addItem("Retro")
+ themeList.addItem("Ebony")
+ themeList.addItem("Isabelle")
+ themeList.setCurrentIndex(3)
+
+ shadowQuality = QComboBox(self._scatterWidget)
+ shadowQuality.addItem("None")
+ shadowQuality.addItem("Low")
+ shadowQuality.addItem("Medium")
+ shadowQuality.addItem("High")
+ shadowQuality.addItem("Low Soft")
+ shadowQuality.addItem("Medium Soft")
+ shadowQuality.addItem("High Soft")
+ shadowQuality.setCurrentIndex(6)
+
+ vLayout.addWidget(cameraButton)
+ vLayout.addWidget(itemCountButton)
+ vLayout.addWidget(rangeButton)
+ vLayout.addWidget(backgroundCheckBox)
+ vLayout.addWidget(gridCheckBox)
+ vLayout.addWidget(smoothCheckBox)
+ vLayout.addWidget(QLabel("Change dot style"))
+ vLayout.addWidget(itemStyleList)
+ vLayout.addWidget(QLabel("Change theme"))
+ vLayout.addWidget(themeList)
+ vLayout.addWidget(QLabel("Adjust shadow quality"))
+ vLayout.addWidget(shadowQuality, 1, Qt.AlignTop)
+
+ self._modifier = ScatterDataModifier(self._scatterGraph, self)
+
+ cameraButton.clicked.connect(self._modifier.changePresetCamera)
+ itemCountButton.clicked.connect(self._modifier.toggleItemCount)
+ rangeButton.clicked.connect(self._modifier.toggleRanges)
+
+ backgroundCheckBox.stateChanged.connect(self._modifier.setBackgroundEnabled)
+ gridCheckBox.stateChanged.connect(self._modifier.setGridEnabled)
+ smoothCheckBox.stateChanged.connect(self._modifier.setSmoothDots)
+
+ self._modifier.backgroundEnabledChanged.connect(backgroundCheckBox.setChecked)
+ self._modifier.gridEnabledChanged.connect(gridCheckBox.setChecked)
+ itemStyleList.currentIndexChanged.connect(self._modifier.changeStyle)
+
+ themeList.currentIndexChanged.connect(self._modifier.changeTheme)
+
+ shadowQuality.currentIndexChanged.connect(self._modifier.changeShadowQuality)
+
+ self._modifier.shadowQualityChanged.connect(shadowQuality.setCurrentIndex)
+ self._scatterGraph.shadowQualityChanged.connect(self._modifier.shadowQualityUpdatedByVisual)
+
+ def scatterWidget(self):
+ return self._scatterWidget
diff --git a/examples/graphs/3d/widgetgallery/surfacegraph.py b/examples/graphs/3d/widgetgallery/surfacegraph.py
new file mode 100644
index 000000000..4052da821
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/surfacegraph.py
@@ -0,0 +1,256 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from surfacegraphmodifier import SurfaceGraphModifier
+
+from PySide6.QtCore import QObject, Qt
+from PySide6.QtGui import QBrush, QIcon, QLinearGradient, QPainter, QPixmap
+from PySide6.QtWidgets import (QGroupBox, QCheckBox, QLabel, QHBoxLayout,
+ QPushButton, QRadioButton, QSizePolicy, QSlider,
+ QVBoxLayout, QWidget)
+from PySide6.QtQuickWidgets import QQuickWidget
+from PySide6.QtGraphs import Q3DSurface
+
+
+def gradientBtoYPB_Pixmap():
+ grBtoY = QLinearGradient(0, 0, 1, 100)
+ grBtoY.setColorAt(1.0, Qt.black)
+ grBtoY.setColorAt(0.67, Qt.blue)
+ grBtoY.setColorAt(0.33, Qt.red)
+ grBtoY.setColorAt(0.0, Qt.yellow)
+ pm = QPixmap(24, 100)
+ with QPainter(pm) as pmp:
+ pmp.setBrush(QBrush(grBtoY))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ return pm
+
+
+def gradientGtoRPB_Pixmap():
+ grGtoR = QLinearGradient(0, 0, 1, 100)
+ grGtoR.setColorAt(1.0, Qt.darkGreen)
+ grGtoR.setColorAt(0.5, Qt.yellow)
+ grGtoR.setColorAt(0.2, Qt.red)
+ grGtoR.setColorAt(0.0, Qt.darkRed)
+ pm = QPixmap(24, 100)
+ with QPainter(pm) as pmp:
+ pmp.setBrush(QBrush(grGtoR))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ return pm
+
+
+def highlightPixmap():
+ HEIGHT = 400
+ WIDTH = 110
+ BORDER = 10
+ gr = QLinearGradient(0, 0, 1, HEIGHT - 2 * BORDER)
+ gr.setColorAt(1.0, Qt.black)
+ gr.setColorAt(0.8, Qt.darkGreen)
+ gr.setColorAt(0.6, Qt.green)
+ gr.setColorAt(0.4, Qt.yellow)
+ gr.setColorAt(0.2, Qt.red)
+ gr.setColorAt(0.0, Qt.darkRed)
+ pmHighlight = QPixmap(WIDTH, HEIGHT)
+ pmHighlight.fill(Qt.transparent)
+ with QPainter(pmHighlight) as pmpHighlight:
+ pmpHighlight.setBrush(QBrush(gr))
+ pmpHighlight.setPen(Qt.NoPen)
+ pmpHighlight.drawRect(BORDER, BORDER, 35, HEIGHT - 2 * BORDER)
+ pmpHighlight.setPen(Qt.black)
+ step = (HEIGHT - 2 * BORDER) / 5
+ for i in range(0, 6):
+ yPos = i * step + BORDER
+ pmpHighlight.drawLine(BORDER, yPos, 55, yPos)
+ HEIGHT = 550 - (i * 110)
+ pmpHighlight.drawText(60, yPos + 2, f"{HEIGHT} m")
+ return pmHighlight
+
+
+class SurfaceGraph(QObject):
+
+ def __init__(self, minimum_graph_size, maximum_graph_size):
+ super().__init__()
+ self._surfaceGraph = Q3DSurface()
+ self._surfaceWidget = QWidget()
+ hLayout = QHBoxLayout(self._surfaceWidget)
+ self._surfaceGraph.setMinimumSize(minimum_graph_size)
+ self._surfaceGraph.setMaximumSize(maximum_graph_size)
+ self._surfaceGraph.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._surfaceGraph.setFocusPolicy(Qt.StrongFocus)
+ self._surfaceGraph.setResizeMode(QQuickWidget.SizeRootObjectToView)
+ hLayout.addWidget(self._surfaceGraph, 1)
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+ vLayout.setAlignment(Qt.AlignTop)
+ # Create control widgets
+ modelGroupBox = QGroupBox("Model")
+ sqrtSinModelRB = QRadioButton(self._surfaceWidget)
+ sqrtSinModelRB.setText("Sqrt and Sin")
+ sqrtSinModelRB.setChecked(False)
+ heightMapModelRB = QRadioButton(self._surfaceWidget)
+ heightMapModelRB.setText("Multiseries\nHeight Map")
+ heightMapModelRB.setChecked(False)
+ texturedModelRB = QRadioButton(self._surfaceWidget)
+ texturedModelRB.setText("Textured\nTopography")
+ texturedModelRB.setChecked(False)
+ modelVBox = QVBoxLayout()
+ modelVBox.addWidget(sqrtSinModelRB)
+ modelVBox.addWidget(heightMapModelRB)
+ modelVBox.addWidget(texturedModelRB)
+ modelGroupBox.setLayout(modelVBox)
+ selectionGroupBox = QGroupBox("Graph Selection Mode")
+ modeNoneRB = QRadioButton(self._surfaceWidget)
+ modeNoneRB.setText("No selection")
+ modeNoneRB.setChecked(False)
+ modeItemRB = QRadioButton(self._surfaceWidget)
+ modeItemRB.setText("Item")
+ modeItemRB.setChecked(False)
+ modeSliceRowRB = QRadioButton(self._surfaceWidget)
+ modeSliceRowRB.setText("Row Slice")
+ modeSliceRowRB.setChecked(False)
+ modeSliceColumnRB = QRadioButton(self._surfaceWidget)
+ modeSliceColumnRB.setText("Column Slice")
+ modeSliceColumnRB.setChecked(False)
+ selectionVBox = QVBoxLayout()
+ selectionVBox.addWidget(modeNoneRB)
+ selectionVBox.addWidget(modeItemRB)
+ selectionVBox.addWidget(modeSliceRowRB)
+ selectionVBox.addWidget(modeSliceColumnRB)
+ selectionGroupBox.setLayout(selectionVBox)
+ axisGroupBox = QGroupBox("Axis ranges")
+ axisMinSliderX = QSlider(Qt.Horizontal)
+ axisMinSliderX.setMinimum(0)
+ axisMinSliderX.setTickInterval(1)
+ axisMinSliderX.setEnabled(True)
+ axisMaxSliderX = QSlider(Qt.Horizontal)
+ axisMaxSliderX.setMinimum(1)
+ axisMaxSliderX.setTickInterval(1)
+ axisMaxSliderX.setEnabled(True)
+ axisMinSliderZ = QSlider(Qt.Horizontal)
+ axisMinSliderZ.setMinimum(0)
+ axisMinSliderZ.setTickInterval(1)
+ axisMinSliderZ.setEnabled(True)
+ axisMaxSliderZ = QSlider(Qt.Horizontal)
+ axisMaxSliderZ.setMinimum(1)
+ axisMaxSliderZ.setTickInterval(1)
+ axisMaxSliderZ.setEnabled(True)
+ axisVBox = QVBoxLayout(axisGroupBox)
+ axisVBox.addWidget(QLabel("Column range"))
+ axisVBox.addWidget(axisMinSliderX)
+ axisVBox.addWidget(axisMaxSliderX)
+ axisVBox.addWidget(QLabel("Row range"))
+ axisVBox.addWidget(axisMinSliderZ)
+ axisVBox.addWidget(axisMaxSliderZ)
+ # Mode-dependent controls
+ # sqrt-sin
+ colorGroupBox = QGroupBox("Custom gradient")
+
+ pixmap = gradientBtoYPB_Pixmap()
+ gradientBtoYPB = QPushButton(self._surfaceWidget)
+ gradientBtoYPB.setIcon(QIcon(pixmap))
+ gradientBtoYPB.setIconSize(pixmap.size())
+
+ pixmap = gradientGtoRPB_Pixmap()
+ gradientGtoRPB = QPushButton(self._surfaceWidget)
+ gradientGtoRPB.setIcon(QIcon(pixmap))
+ gradientGtoRPB.setIconSize(pixmap.size())
+
+ colorHBox = QHBoxLayout(colorGroupBox)
+ colorHBox.addWidget(gradientBtoYPB)
+ colorHBox.addWidget(gradientGtoRPB)
+ # Multiseries heightmap
+ showGroupBox = QGroupBox("Show Object")
+ showGroupBox.setVisible(False)
+ checkboxShowOilRigOne = QCheckBox("Oil Rig 1")
+ checkboxShowOilRigOne.setChecked(True)
+ checkboxShowOilRigTwo = QCheckBox("Oil Rig 2")
+ checkboxShowOilRigTwo.setChecked(True)
+ checkboxShowRefinery = QCheckBox("Refinery")
+ showVBox = QVBoxLayout()
+ showVBox.addWidget(checkboxShowOilRigOne)
+ showVBox.addWidget(checkboxShowOilRigTwo)
+ showVBox.addWidget(checkboxShowRefinery)
+ showGroupBox.setLayout(showVBox)
+ visualsGroupBox = QGroupBox("Visuals")
+ visualsGroupBox.setVisible(False)
+ checkboxVisualsSeeThrough = QCheckBox("See-Through")
+ checkboxHighlightOil = QCheckBox("Highlight Oil")
+ checkboxShowShadows = QCheckBox("Shadows")
+ checkboxShowShadows.setChecked(True)
+ visualVBox = QVBoxLayout(visualsGroupBox)
+ visualVBox.addWidget(checkboxVisualsSeeThrough)
+ visualVBox.addWidget(checkboxHighlightOil)
+ visualVBox.addWidget(checkboxShowShadows)
+ labelSelection = QLabel("Selection:")
+ labelSelection.setVisible(False)
+ labelSelectedItem = QLabel("Nothing")
+ labelSelectedItem.setVisible(False)
+ # Textured topography heightmap
+ enableTexture = QCheckBox("Surface texture")
+ enableTexture.setVisible(False)
+
+ label = QLabel(self._surfaceWidget)
+ label.setPixmap(highlightPixmap())
+ heightMapGroupBox = QGroupBox("Highlight color map")
+ colorMapVBox = QVBoxLayout()
+ colorMapVBox.addWidget(label)
+ heightMapGroupBox.setLayout(colorMapVBox)
+ heightMapGroupBox.setVisible(False)
+ # Populate vertical layout
+ # Common
+ vLayout.addWidget(modelGroupBox)
+ vLayout.addWidget(selectionGroupBox)
+ vLayout.addWidget(axisGroupBox)
+ # Sqrt Sin
+ vLayout.addWidget(colorGroupBox)
+ # Multiseries heightmap
+ vLayout.addWidget(showGroupBox)
+ vLayout.addWidget(visualsGroupBox)
+ vLayout.addWidget(labelSelection)
+ vLayout.addWidget(labelSelectedItem)
+ # Textured topography
+ vLayout.addWidget(heightMapGroupBox)
+ vLayout.addWidget(enableTexture)
+ # Create the controller
+ modifier = SurfaceGraphModifier(self._surfaceGraph, labelSelectedItem, self)
+ # Connect widget controls to controller
+ heightMapModelRB.toggled.connect(modifier.enableHeightMapModel)
+ sqrtSinModelRB.toggled.connect(modifier.enableSqrtSinModel)
+ texturedModelRB.toggled.connect(modifier.enableTopographyModel)
+ modeNoneRB.toggled.connect(modifier.toggleModeNone)
+ modeItemRB.toggled.connect(modifier.toggleModeItem)
+ modeSliceRowRB.toggled.connect(modifier.toggleModeSliceRow)
+ modeSliceColumnRB.toggled.connect(modifier.toggleModeSliceColumn)
+ axisMinSliderX.valueChanged.connect(modifier.adjustXMin)
+ axisMaxSliderX.valueChanged.connect(modifier.adjustXMax)
+ axisMinSliderZ.valueChanged.connect(modifier.adjustZMin)
+ axisMaxSliderZ.valueChanged.connect(modifier.adjustZMax)
+ # Mode dependent connections
+ gradientBtoYPB.pressed.connect(modifier.setBlackToYellowGradient)
+ gradientGtoRPB.pressed.connect(modifier.setGreenToRedGradient)
+ checkboxShowOilRigOne.stateChanged.connect(modifier.toggleItemOne)
+ checkboxShowOilRigTwo.stateChanged.connect(modifier.toggleItemTwo)
+ checkboxShowRefinery.stateChanged.connect(modifier.toggleItemThree)
+ checkboxVisualsSeeThrough.stateChanged.connect(modifier.toggleSeeThrough)
+ checkboxHighlightOil.stateChanged.connect(modifier.toggleOilHighlight)
+ checkboxShowShadows.stateChanged.connect(modifier.toggleShadows)
+ enableTexture.stateChanged.connect(modifier.toggleSurfaceTexture)
+ # Connections to disable features depending on mode
+ sqrtSinModelRB.toggled.connect(colorGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(showGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(visualsGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(labelSelection.setVisible)
+ heightMapModelRB.toggled.connect(labelSelectedItem.setVisible)
+ texturedModelRB.toggled.connect(enableTexture.setVisible)
+ texturedModelRB.toggled.connect(heightMapGroupBox.setVisible)
+ modifier.setAxisMinSliderX(axisMinSliderX)
+ modifier.setAxisMaxSliderX(axisMaxSliderX)
+ modifier.setAxisMinSliderZ(axisMinSliderZ)
+ modifier.setAxisMaxSliderZ(axisMaxSliderZ)
+ sqrtSinModelRB.setChecked(True)
+ modeItemRB.setChecked(True)
+ enableTexture.setChecked(True)
+
+ def surfaceWidget(self):
+ return self._surfaceWidget
diff --git a/examples/graphs/3d/widgetgallery/surfacegraphmodifier.py b/examples/graphs/3d/widgetgallery/surfacegraphmodifier.py
new file mode 100644
index 000000000..b2706c6fa
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/surfacegraphmodifier.py
@@ -0,0 +1,641 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from math import sqrt, sin
+from pathlib import Path
+
+from PySide6.QtCore import QObject, QPropertyAnimation, Qt, Slot
+from PySide6.QtGui import (QColor, QFont, QImage, QLinearGradient,
+ QQuaternion, QVector3D)
+from PySide6.QtGraphs import (QAbstract3DGraph, QCustom3DItem,
+ QCustom3DLabel, QHeightMapSurfaceDataProxy,
+ QValue3DAxis, QSurfaceDataItem,
+ QSurfaceDataProxy, QSurface3DSeries,
+ Q3DInputHandler, Q3DTheme)
+
+
+from highlightseries import HighlightSeries
+from topographicseries import TopographicSeries
+from custominputhandler import CustomInputHandler
+
+
+SAMPLE_COUNT_X = 150
+SAMPLE_COUNT_Z = 150
+HEIGHTMAP_GRID_STEP_X = 6
+HEIGHTMAP_GRID_STEP_Z = 6
+SAMPLE_MIN = -8.0
+SAMPLE_MAX = 8.0
+
+AREA_WIDTH = 8000.0
+AREA_HEIGHT = 8000.0
+ASPECT_RATIO = 0.1389
+MIN_RANGE = AREA_WIDTH * 0.49
+
+
+class SurfaceGraphModifier(QObject):
+
+ def __init__(self, surface, label, parent):
+ super().__init__(parent)
+ self._data_path = Path(__file__).resolve().parent / "data"
+ self._graph = surface
+ self._textField = label
+ self._sqrtSinProxy = None
+ self._sqrtSinSeries = None
+ self._heightMapProxyOne = None
+ self._heightMapProxyTwo = None
+ self._heightMapProxyThree = None
+ self._heightMapSeriesOne = None
+ self._heightMapSeriesTwo = None
+ self._heightMapSeriesThree = None
+
+ self._axisMinSliderX = None
+ self._axisMaxSliderX = None
+ self._axisMinSliderZ = None
+ self._axisMaxSliderZ = None
+ self._rangeMinX = 0.0
+ self._rangeMinZ = 0.0
+ self._stepX = 0.0
+ self._stepZ = 0.0
+ self._heightMapWidth = 0
+ self._heightMapHeight = 0
+
+ self._selectionAnimation = None
+ self._titleLabel = None
+ self._previouslyAnimatedItem = None
+ self._previousScaling = {}
+
+ self._topography = None
+ self._highlight = None
+ self._highlightWidth = 0
+ self._highlightHeight = 0
+
+ self._customInputHandler = None
+ self._defaultInputHandler = Q3DInputHandler()
+
+ self._graph.setCameraZoomLevel(85.0)
+ self._graph.setCameraPreset(QAbstract3DGraph.CameraPreset.IsometricRight)
+ self._graph.activeTheme().setType(Q3DTheme.Theme.Retro)
+
+ self._x_axis = QValue3DAxis()
+ self._y_axis = QValue3DAxis()
+ self._z_axis = QValue3DAxis()
+ self._graph.setAxisX(self._x_axis)
+ self._graph.setAxisY(self._y_axis)
+ self._graph.setAxisZ(self._z_axis)
+
+ #
+ # Sqrt Sin
+ #
+ self._sqrtSinProxy = QSurfaceDataProxy()
+ self._sqrtSinSeries = QSurface3DSeries(self._sqrtSinProxy)
+ self.fillSqrtSinProxy()
+
+ #
+ # Multisurface heightmap
+ #
+ # Create the first surface layer
+ heightMapImageOne = QImage(self._data_path / "layer_1.png")
+ self._heightMapProxyOne = QHeightMapSurfaceDataProxy(heightMapImageOne)
+ self._heightMapSeriesOne = QSurface3DSeries(self._heightMapProxyOne)
+ self._heightMapSeriesOne.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyOne.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ # Create the other 2 surface layers
+ heightMapImageTwo = QImage(self._data_path / "layer_2.png")
+ self._heightMapProxyTwo = QHeightMapSurfaceDataProxy(heightMapImageTwo)
+ self._heightMapSeriesTwo = QSurface3DSeries(self._heightMapProxyTwo)
+ self._heightMapSeriesTwo.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyTwo.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ heightMapImageThree = QImage(self._data_path / "layer_3.png")
+ self._heightMapProxyThree = QHeightMapSurfaceDataProxy(heightMapImageThree)
+ self._heightMapSeriesThree = QSurface3DSeries(self._heightMapProxyThree)
+ self._heightMapSeriesThree.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyThree.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ # The images are the same size, so it's enough to get the dimensions
+ # from one
+ self._heightMapWidth = heightMapImageOne.width()
+ self._heightMapHeight = heightMapImageOne.height()
+
+ # Set the gradients for multi-surface layers
+ grOne = QLinearGradient()
+ grOne.setColorAt(0.0, Qt.black)
+ grOne.setColorAt(0.38, Qt.darkYellow)
+ grOne.setColorAt(0.39, Qt.darkGreen)
+ grOne.setColorAt(0.5, Qt.darkGray)
+ grOne.setColorAt(1.0, Qt.gray)
+ self._heightMapSeriesOne.setBaseGradient(grOne)
+ self._heightMapSeriesOne.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
+
+ grTwo = QLinearGradient()
+ grTwo.setColorAt(0.39, Qt.blue)
+ grTwo.setColorAt(0.4, Qt.white)
+ self._heightMapSeriesTwo.setBaseGradient(grTwo)
+ self._heightMapSeriesTwo.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
+
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.white)
+ grThree.setColorAt(0.05, Qt.black)
+ self._heightMapSeriesThree.setBaseGradient(grThree)
+ self._heightMapSeriesThree.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
+
+ # Custom items and label
+ self._graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ self._selectionAnimation = QPropertyAnimation(self)
+ self._selectionAnimation.setPropertyName(b"scaling")
+ self._selectionAnimation.setDuration(500)
+ self._selectionAnimation.setLoopCount(-1)
+
+ titleFont = QFont("Century Gothic", 30)
+ titleFont.setBold(True)
+ self._titleLabel = QCustom3DLabel("Oil Rigs on Imaginary Sea", titleFont,
+ QVector3D(0.0, 1.2, 0.0),
+ QVector3D(1.0, 1.0, 0.0),
+ QQuaternion())
+ self._titleLabel.setPositionAbsolute(True)
+ self._titleLabel.setFacingCamera(True)
+ self._titleLabel.setBackgroundColor(QColor(0x66cdaa))
+ self._graph.addCustomItem(self._titleLabel)
+ self._titleLabel.setVisible(False)
+
+ # Make two of the custom object visible
+ self.toggleItemOne(True)
+ self.toggleItemTwo(True)
+
+ #
+ # Topographic map
+ #
+ self._topography = TopographicSeries()
+ file_name = os.fspath(self._data_path / "topography.png")
+ self._topography.setTopographyFile(file_name, AREA_WIDTH, AREA_HEIGHT)
+ self._topography.setItemLabelFormat("@yLabel m")
+
+ self._highlight = HighlightSeries()
+ self._highlight.setTopographicSeries(self._topography)
+ self._highlight.setMinHeight(MIN_RANGE * ASPECT_RATIO)
+ self._highlight.handleGradientChange(AREA_WIDTH * ASPECT_RATIO)
+ self._graph.axisY().maxChanged.connect(self._highlight.handleGradientChange)
+
+ self._customInputHandler = CustomInputHandler(self._graph)
+ self._customInputHandler.setHighlightSeries(self._highlight)
+ self._customInputHandler.setAxes(self._x_axis, self._y_axis, self._z_axis)
+ self._customInputHandler.setLimits(0.0, AREA_WIDTH, MIN_RANGE)
+ self._customInputHandler.setAspectRatio(ASPECT_RATIO)
+
+ def fillSqrtSinProxy(self):
+ stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+
+ dataArray = []
+ for i in range(0, SAMPLE_COUNT_Z):
+ newRow = []
+ # Keep values within range bounds, since just adding step can
+ # cause minor drift due to the rounding errors.
+ z = min(SAMPLE_MAX, (i * stepZ + SAMPLE_MIN))
+ for j in range(0, SAMPLE_COUNT_X):
+ x = min(SAMPLE_MAX, (j * stepX + SAMPLE_MIN))
+ R = sqrt(z * z + x * x) + 0.01
+ y = (sin(R) / R + 0.24) * 1.61
+ item = QSurfaceDataItem(QVector3D(x, y, z))
+ newRow.append(item)
+ dataArray.append(newRow)
+ self._sqrtSinProxy.resetArray(dataArray)
+
+ @Slot(bool)
+ def enableSqrtSinModel(self, enable):
+ if enable:
+ self._sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
+ self._sqrtSinSeries.setFlatShadingEnabled(True)
+
+ self._graph.axisX().setLabelFormat("%.2f")
+ self._graph.axisZ().setLabelFormat("%.2f")
+ self._graph.axisX().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self._graph.axisY().setRange(0.0, 2.0)
+ self._graph.axisZ().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self._graph.axisX().setLabelAutoRotation(30.0)
+ self._graph.axisY().setLabelAutoRotation(90.0)
+ self._graph.axisZ().setLabelAutoRotation(30.0)
+
+ self._graph.removeSeries(self._heightMapSeriesOne)
+ self._graph.removeSeries(self._heightMapSeriesTwo)
+ self._graph.removeSeries(self._heightMapSeriesThree)
+ self._graph.removeSeries(self._topography)
+ self._graph.removeSeries(self._highlight)
+
+ self._graph.addSeries(self._sqrtSinSeries)
+
+ self._titleLabel.setVisible(False)
+ self._graph.axisX().setTitleVisible(False)
+ self._graph.axisY().setTitleVisible(False)
+ self._graph.axisZ().setTitleVisible(False)
+
+ self._graph.axisX().setTitle("")
+ self._graph.axisY().setTitle("")
+ self._graph.axisZ().setTitle("")
+
+ self._graph.setActiveInputHandler(self._defaultInputHandler)
+
+ # Reset range sliders for Sqrt & Sin
+ self._rangeMinX = SAMPLE_MIN
+ self._rangeMinZ = SAMPLE_MIN
+ self._stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ self._stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(SAMPLE_COUNT_X - 2)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(1)
+ self._axisMaxSliderX.setMaximum(SAMPLE_COUNT_X - 1)
+ self._axisMaxSliderX.setValue(SAMPLE_COUNT_X - 1)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(SAMPLE_COUNT_Z - 2)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(1)
+ self._axisMaxSliderZ.setMaximum(SAMPLE_COUNT_Z - 1)
+ self._axisMaxSliderZ.setValue(SAMPLE_COUNT_Z - 1)
+
+ @Slot(bool)
+ def enableHeightMapModel(self, enable):
+ if enable:
+ self._heightMapSeriesOne.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesOne.setFlatShadingEnabled(False)
+ self._heightMapSeriesTwo.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesTwo.setFlatShadingEnabled(False)
+ self._heightMapSeriesThree.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesThree.setFlatShadingEnabled(False)
+
+ self._graph.axisX().setLabelFormat("%.1f N")
+ self._graph.axisZ().setLabelFormat("%.1f E")
+ self._graph.axisX().setRange(34.0, 40.0)
+ self._graph.axisY().setAutoAdjustRange(True)
+ self._graph.axisZ().setRange(18.0, 24.0)
+
+ self._graph.axisX().setTitle("Latitude")
+ self._graph.axisY().setTitle("Height")
+ self._graph.axisZ().setTitle("Longitude")
+
+ self._graph.removeSeries(self._sqrtSinSeries)
+ self._graph.removeSeries(self._topography)
+ self._graph.removeSeries(self._highlight)
+ self._graph.addSeries(self._heightMapSeriesOne)
+ self._graph.addSeries(self._heightMapSeriesTwo)
+ self._graph.addSeries(self._heightMapSeriesThree)
+
+ self._graph.setActiveInputHandler(self._defaultInputHandler)
+
+ self._titleLabel.setVisible(True)
+ self._graph.axisX().setTitleVisible(True)
+ self._graph.axisY().setTitleVisible(True)
+ self._graph.axisZ().setTitleVisible(True)
+
+ # Reset range sliders for height map
+ mapGridCountX = self._heightMapWidth / HEIGHTMAP_GRID_STEP_X
+ mapGridCountZ = self._heightMapHeight / HEIGHTMAP_GRID_STEP_Z
+ self._rangeMinX = 34.0
+ self._rangeMinZ = 18.0
+ self._stepX = 6.0 / float(mapGridCountX - 1)
+ self._stepZ = 6.0 / float(mapGridCountZ - 1)
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(mapGridCountX - 2)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(1)
+ self._axisMaxSliderX.setMaximum(mapGridCountX - 1)
+ self._axisMaxSliderX.setValue(mapGridCountX - 1)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(mapGridCountZ - 2)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(1)
+ self._axisMaxSliderZ.setMaximum(mapGridCountZ - 1)
+ self._axisMaxSliderZ.setValue(mapGridCountZ - 1)
+
+ @Slot(bool)
+ def enableTopographyModel(self, enable):
+ if enable:
+ self._graph.axisX().setLabelFormat("%i")
+ self._graph.axisZ().setLabelFormat("%i")
+ self._graph.axisX().setRange(0.0, AREA_WIDTH)
+ self._graph.axisY().setRange(100.0, AREA_WIDTH * ASPECT_RATIO)
+ self._graph.axisZ().setRange(0.0, AREA_HEIGHT)
+ self._graph.axisX().setLabelAutoRotation(30.0)
+ self._graph.axisY().setLabelAutoRotation(90.0)
+ self._graph.axisZ().setLabelAutoRotation(30.0)
+
+ self._graph.removeSeries(self._heightMapSeriesOne)
+ self._graph.removeSeries(self._heightMapSeriesTwo)
+ self._graph.removeSeries(self._heightMapSeriesThree)
+ self._graph.addSeries(self._topography)
+ self._graph.addSeries(self._highlight)
+
+ self._titleLabel.setVisible(False)
+ self._graph.axisX().setTitleVisible(False)
+ self._graph.axisY().setTitleVisible(False)
+ self._graph.axisZ().setTitleVisible(False)
+
+ self._graph.axisX().setTitle("")
+ self._graph.axisY().setTitle("")
+ self._graph.axisZ().setTitle("")
+
+ self._graph.setActiveInputHandler(self._customInputHandler)
+
+ # Reset range sliders for topography map
+ self._rangeMinX = 0.0
+ self._rangeMinZ = 0.0
+ self._stepX = 1.0
+ self._stepZ = 1.0
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(AREA_WIDTH - 200)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(200)
+ self._axisMaxSliderX.setMaximum(AREA_WIDTH)
+ self._axisMaxSliderX.setValue(AREA_WIDTH)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(AREA_HEIGHT - 200)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(200)
+ self._axisMaxSliderZ.setMaximum(AREA_HEIGHT)
+ self._axisMaxSliderZ.setValue(AREA_HEIGHT)
+
+ def adjustXMin(self, min):
+ minX = self._stepX * float(min) + self._rangeMinX
+
+ max = self._axisMaxSliderX.value()
+ if min >= max:
+ max = min + 1
+ self._axisMaxSliderX.setValue(max)
+
+ maxX = self._stepX * max + self._rangeMinX
+
+ self.setAxisXRange(minX, maxX)
+
+ def adjustXMax(self, max):
+ maxX = self._stepX * float(max) + self._rangeMinX
+
+ min = self._axisMinSliderX.value()
+ if max <= min:
+ min = max - 1
+ self._axisMinSliderX.setValue(min)
+
+ minX = self._stepX * min + self._rangeMinX
+
+ self.setAxisXRange(minX, maxX)
+
+ def adjustZMin(self, min):
+ minZ = self._stepZ * float(min) + self._rangeMinZ
+
+ max = self._axisMaxSliderZ.value()
+ if min >= max:
+ max = min + 1
+ self._axisMaxSliderZ.setValue(max)
+
+ maxZ = self._stepZ * max + self._rangeMinZ
+
+ self.setAxisZRange(minZ, maxZ)
+
+ def adjustZMax(self, max):
+ maxX = self._stepZ * float(max) + self._rangeMinZ
+
+ min = self._axisMinSliderZ.value()
+ if max <= min:
+ min = max - 1
+ self._axisMinSliderZ.setValue(min)
+
+ minX = self._stepZ * min + self._rangeMinZ
+
+ self.setAxisZRange(minX, maxX)
+
+ def setAxisXRange(self, min, max):
+ self._graph.axisX().setRange(min, max)
+
+ def setAxisZRange(self, min, max):
+ self._graph.axisZ().setRange(min, max)
+
+ def setBlackToYellowGradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.black)
+ gr.setColorAt(0.33, Qt.blue)
+ gr.setColorAt(0.67, Qt.red)
+ gr.setColorAt(1.0, Qt.yellow)
+
+ self._sqrtSinSeries.setBaseGradient(gr)
+ self._sqrtSinSeries.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
+
+ def setGreenToRedGradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.darkGreen)
+ gr.setColorAt(0.5, Qt.yellow)
+ gr.setColorAt(0.8, Qt.red)
+ gr.setColorAt(1.0, Qt.darkRed)
+
+ self._sqrtSinSeries.setBaseGradient(gr)
+ self._sqrtSinSeries.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
+
+ @Slot(bool)
+ def toggleItemOne(self, show):
+ positionOne = QVector3D(39.0, 77.0, 19.2)
+ positionOnePipe = QVector3D(39.0, 45.0, 19.2)
+ positionOneLabel = QVector3D(39.0, 107.0, 19.2)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.red)
+ file_name = os.fspath(self._data_path / "oilrig.mesh")
+ item = QCustom3DItem(file_name, positionOne,
+ QVector3D(0.025, 0.025, 0.025),
+ QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 45.0),
+ color)
+ self._graph.addCustomItem(item)
+ file_name = os.fspath(self._data_path / "pipe.mesh")
+ item = QCustom3DItem(file_name, positionOnePipe,
+ QVector3D(0.005, 0.5, 0.005), QQuaternion(),
+ color)
+ item.setShadowCasting(False)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Oil Rig One")
+ label.setPosition(positionOneLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionOne)
+ self._graph.removeCustomItemAt(positionOnePipe)
+ self._graph.removeCustomItemAt(positionOneLabel)
+
+ @Slot(bool)
+ def toggleItemTwo(self, show):
+ positionTwo = QVector3D(34.5, 77.0, 23.4)
+ positionTwoPipe = QVector3D(34.5, 45.0, 23.4)
+ positionTwoLabel = QVector3D(34.5, 107.0, 23.4)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.red)
+ item = QCustom3DItem()
+ file_name = os.fspath(self._data_path / "oilrig.mesh")
+ item.setMeshFile(file_name)
+ item.setPosition(positionTwo)
+ item.setScaling(QVector3D(0.025, 0.025, 0.025))
+ item.setRotation(QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 25.0))
+ item.setTextureImage(color)
+ self._graph.addCustomItem(item)
+ file_name = os.fspath(self._data_path / "pipe.mesh")
+ item = QCustom3DItem(file_name, positionTwoPipe,
+ QVector3D(0.005, 0.5, 0.005), QQuaternion(),
+ color)
+ item.setShadowCasting(False)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Oil Rig Two")
+ label.setPosition(positionTwoLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionTwo)
+ self._graph.removeCustomItemAt(positionTwoPipe)
+ self._graph.removeCustomItemAt(positionTwoLabel)
+
+ @Slot(bool)
+ def toggleItemThree(self, show):
+ positionThree = QVector3D(34.5, 86.0, 19.1)
+ positionThreeLabel = QVector3D(34.5, 116.0, 19.1)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.darkMagenta)
+ item = QCustom3DItem()
+ file_name = os.fspath(self._data_path / "refinery.mesh")
+ item.setMeshFile(file_name)
+ item.setPosition(positionThree)
+ item.setScaling(QVector3D(0.04, 0.04, 0.04))
+ item.setRotation(QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 75.0))
+ item.setTextureImage(color)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Refinery")
+ label.setPosition(positionThreeLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionThree)
+ self._graph.removeCustomItemAt(positionThreeLabel)
+
+ @Slot(bool)
+ def toggleSeeThrough(self, seethrough):
+ s0 = self._graph.seriesList()[0]
+ s1 = self._graph.seriesList()[1]
+ if seethrough:
+ s0.setDrawMode(QSurface3DSeries.DrawWireframe)
+ s1.setDrawMode(QSurface3DSeries.DrawWireframe)
+ else:
+ s0.setDrawMode(QSurface3DSeries.DrawSurface)
+ s1.setDrawMode(QSurface3DSeries.DrawSurface)
+
+ @Slot(bool)
+ def toggleOilHighlight(self, highlight):
+ s2 = self._graph.seriesList()[2]
+ if highlight:
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.black)
+ grThree.setColorAt(0.05, Qt.red)
+ s2.setBaseGradient(grThree)
+ else:
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.white)
+ grThree.setColorAt(0.05, Qt.black)
+ s2.setBaseGradient(grThree)
+
+ @Slot(bool)
+ def toggleShadows(self, shadows):
+ sq = (QAbstract3DGraph.ShadowQualityMedium
+ if shadows else QAbstract3DGraph.ShadowQualityNone)
+ self._graph.setShadowQuality(sq)
+
+ @Slot(bool)
+ def toggleSurfaceTexture(self, enable):
+ if enable:
+ file_name = os.fspath(self._data_path / "maptexture.jpg")
+ self._topography.setTextureFile(file_name)
+ else:
+ self._topography.setTextureFile("")
+
+ def handleElementSelected(self, type):
+ self.resetSelection()
+ if type == QAbstract3DGraph.ElementCustomItem:
+ item = self._graph.selectedCustomItem()
+ text = ""
+ if isinstance(item, QCustom3DItem):
+ text += "Custom label: "
+ else:
+ file = item.meshFile().split("/")[-1]
+ text += f"{file}: "
+
+ text += str(self._graph.selectedCustomItemIndex())
+ self._textField.setText(text)
+ self._previouslyAnimatedItem = item
+ self._previousScaling = item.scaling()
+ self._selectionAnimation.setTargetObject(item)
+ self._selectionAnimation.setStartValue(item.scaling())
+ self._selectionAnimation.setEndValue(item.scaling() * 1.5)
+ self._selectionAnimation.start()
+ elif type == QAbstract3DGraph.ElementSeries:
+ text = "Surface ("
+ series = self._graph.selectedSeries()
+ if series:
+ point = series.selectedPoint()
+ text += f"{point.x()}, {point.y()}"
+ text += ")"
+ self._textField.setText(text)
+ elif (type.value > QAbstract3DGraph.ElementSeries.value
+ and type < QAbstract3DGraph.ElementCustomItem.value):
+ index = self._graph.selectedLabelIndex()
+ text = ""
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ text += "Axis X label: "
+ elif type == QAbstract3DGraph.ElementAxisYLabel:
+ text += "Axis Y label: "
+ else:
+ text += "Axis Z label: "
+ text += str(index)
+ self._textField.setText(text)
+ else:
+ self._textField.setText("Nothing")
+
+ def resetSelection(self):
+ self._selectionAnimation.stop()
+ if self._previouslyAnimatedItem:
+ self._previouslyAnimatedItem.setScaling(self._previousScaling)
+ self._previouslyAnimatedItem = None
+
+ def toggleModeNone(self):
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
+
+ def toggleModeItem(self):
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
+
+ def toggleModeSliceRow(self):
+ sm = (QAbstract3DGraph.SelectionItemAndRow
+ | QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionMultiSeries)
+ self._graph.setSelectionMode(sm)
+
+ def toggleModeSliceColumn(self):
+ sm = (QAbstract3DGraph.SelectionItemAndColumn
+ | QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionMultiSeries)
+ self._graph.setSelectionMode(sm)
+
+ def setAxisMinSliderX(self, slider):
+ self._axisMinSliderX = slider
+
+ def setAxisMaxSliderX(self, slider):
+ self._axisMaxSliderX = slider
+
+ def setAxisMinSliderZ(self, slider):
+ self._axisMinSliderZ = slider
+
+ def setAxisMaxSliderZ(self, slider):
+ self._axisMaxSliderZ = slider
diff --git a/examples/graphs/3d/widgetgallery/topographicseries.py b/examples/graphs/3d/widgetgallery/topographicseries.py
new file mode 100644
index 000000000..4f286a222
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/topographicseries.py
@@ -0,0 +1,57 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QImage, QVector3D
+from PySide6.QtGraphs import (QSurface3DSeries, QSurfaceDataItem)
+
+
+# Value used to encode height data as RGB value on PNG file
+PACKING_FACTOR = 11983.0
+
+
+class TopographicSeries(QSurface3DSeries):
+
+ def __init__(self):
+ super().__init__()
+ self._sampleCountX = 0.0
+ self._sampleCountZ = 0.0
+ self.setDrawMode(QSurface3DSeries.DrawSurface)
+ self.setFlatShadingEnabled(True)
+ self.setBaseColor(Qt.white)
+
+ def sampleCountX(self):
+ return self._sampleCountX
+
+ def sampleCountZ(self):
+ return self._sampleCountZ
+
+ def setTopographyFile(self, file, width, height):
+ heightMapImage = QImage(file)
+ bits = heightMapImage.bits()
+ imageHeight = heightMapImage.height()
+ imageWidth = heightMapImage.width()
+ widthBits = imageWidth * 4
+ stepX = width / float(imageWidth)
+ stepZ = height / float(imageHeight)
+
+ dataArray = []
+ for i in range(0, imageHeight):
+ p = i * widthBits
+ z = height - float(i) * stepZ
+ newRow = []
+ for j in range(0, imageWidth):
+ aa = bits[p + 0]
+ rr = bits[p + 1]
+ gg = bits[p + 2]
+ color = (gg << 16) + (rr << 8) + aa
+ y = float(color) / PACKING_FACTOR
+ item = QSurfaceDataItem(QVector3D(float(j) * stepX, y, z))
+ newRow.append(item)
+ p += 4
+ dataArray.append(newRow)
+
+ self.dataProxy().resetArray(dataArray)
+
+ self._sampleCountX = float(imageWidth)
+ self._sampleCountZ = float(imageHeight)
diff --git a/examples/graphs/3d/widgetgallery/variantbardatamapping.py b/examples/graphs/3d/widgetgallery/variantbardatamapping.py
new file mode 100644
index 000000000..50bdefa6a
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/variantbardatamapping.py
@@ -0,0 +1,67 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Signal
+
+
+class VariantBarDataMapping(QObject):
+
+ rowIndexChanged = Signal()
+ columnIndexChanged = Signal()
+ valueIndexChanged = Signal()
+ rowCategoriesChanged = Signal()
+ columnCategoriesChanged = Signal()
+ mappingChanged = Signal()
+
+ def __init__(self, rowIndex, columnIndex, valueIndex,
+ rowCategories=[], columnCategories=[]):
+ super().__init__(None)
+ self._rowIndex = rowIndex
+ self._columnIndex = columnIndex
+ self._valueIndex = valueIndex
+ self._rowCategories = rowCategories
+ self._columnCategories = columnCategories
+
+ def setRowIndex(self, index):
+ self._rowIndex = index
+ self.mappingChanged.emit()
+
+ def rowIndex(self):
+ return self._rowIndex
+
+ def setColumnIndex(self, index):
+ self._columnIndex = index
+ self.mappingChanged.emit()
+
+ def columnIndex(self):
+ return self._columnIndex
+
+ def setValueIndex(self, index):
+ self._valueIndex = index
+ self.mappingChanged.emit()
+
+ def valueIndex(self):
+ return self._valueIndex
+
+ def setRowCategories(self, categories):
+ self._rowCategories = categories
+ self.mappingChanged.emit()
+
+ def rowCategories(self):
+ return self._rowCategories
+
+ def setColumnCategories(self, categories):
+ self._columnCategories = categories
+ self.mappingChanged.emit()
+
+ def columnCategories(self):
+ return self._columnCategories
+
+ def remap(self, rowIndex, columnIndex, valueIndex,
+ rowCategories=[], columnCategories=[]):
+ self._rowIndex = rowIndex
+ self._columnIndex = columnIndex
+ self._valueIndex = valueIndex
+ self._rowCategories = rowCategories
+ self._columnCategories = columnCategories
+ self.mappingChanged.emit()
diff --git a/examples/graphs/3d/widgetgallery/variantbardataproxy.py b/examples/graphs/3d/widgetgallery/variantbardataproxy.py
new file mode 100644
index 000000000..5ab2a2cd2
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/variantbardataproxy.py
@@ -0,0 +1,100 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot
+from PySide6.QtGraphs import QBarDataProxy, QBarDataItem
+
+
+class VariantBarDataProxy(QBarDataProxy):
+
+ def __init__(self):
+ super().__init__()
+ self._dataSet = None
+ self._mapping = None
+
+ def setDataSet(self, newSet):
+ if self._dataSet:
+ self._dataSet.itemsAdded.disconnect(self.handleItemsAdded)
+ self._dataSet.dataCleared.disconnect(self.handleDataCleared)
+
+ self._dataSet = newSet
+
+ if self._dataSet:
+ self._dataSet.itemsAdded.connect(self.handleItemsAdded)
+ self._dataSet.dataCleared.connect(self.handleDataCleared)
+ self.resolveDataSet()
+
+ def dataSet(self):
+ return self._dataSet.data()
+
+ # Map key (row, column, value) to value index in data item (VariantItem).
+ # Doesn't gain ownership of mapping, but does connect to it to listen for
+ # mapping changes. Modifying mapping that is set to proxy will trigger
+ # dataset re-resolving.
+ def setMapping(self, mapping):
+ if self._mapping:
+ self._mapping.mappingChanged.disconnect(self.handleMappingChanged)
+
+ self._mapping = mapping
+
+ if self._mapping:
+ self._mapping.mappingChanged.connect(self.handleMappingChanged)
+
+ self.resolveDataSet()
+
+ def mapping(self):
+ return self._mapping.data()
+
+ @Slot(int, int)
+ def handleItemsAdded(self, index, count):
+ # Resolve new items
+ self.resolveDataSet()
+
+ @Slot()
+ def handleDataCleared(self):
+ # Data cleared, reset array
+ self.resetArray(None)
+
+ @Slot()
+ def handleMappingChanged(self):
+ self.resolveDataSet()
+
+ # Resolve entire dataset into QBarDataArray.
+ def resolveDataSet(self):
+ # If we have no data or mapping, or the categories are not defined,
+ # simply clear the array
+ if (not self._dataSet or not self._mapping
+ or not self._mapping.rowCategories()
+ or not self._mapping.columnCategories()):
+ self.resetArray()
+ return
+
+ itemList = self._dataSet.itemList()
+
+ rowIndex = self._mapping.rowIndex()
+ columnIndex = self._mapping.columnIndex()
+ valueIndex = self._mapping.valueIndex()
+ rowList = self._mapping.rowCategories()
+ columnList = self._mapping.columnCategories()
+
+ # Sort values into rows and columns
+ itemValueMap = {}
+ for item in itemList:
+ key = str(item[rowIndex])
+ v = itemValueMap.get(key)
+ if not v:
+ v = {}
+ itemValueMap[key] = v
+ v[str(item[columnIndex])] = float(item[valueIndex])
+
+ # Create a new data array in format the parent class understands
+ newProxyArray = []
+ for rowKey in rowList:
+ newProxyRow = []
+ for i in range(0, len(columnList)):
+ item = QBarDataItem(itemValueMap[rowKey][columnList[i]])
+ newProxyRow.append(item)
+ newProxyArray.append(newProxyRow)
+
+ # Finally, reset the data array in the parent class
+ self.resetArray(newProxyArray)
diff --git a/examples/graphs/3d/widgetgallery/variantdataset.py b/examples/graphs/3d/widgetgallery/variantdataset.py
new file mode 100644
index 000000000..752bc3887
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/variantdataset.py
@@ -0,0 +1,39 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Signal
+
+
+class VariantDataSet(QObject):
+
+ itemsAdded = Signal(int, int)
+ dataCleared = Signal()
+
+ def __init__(self):
+ super().__init__()
+ self._variantData = []
+
+ def clear(self):
+ for item in self._variantData:
+ item.clear()
+ del item
+
+ self._variantData.clear()
+ self.dataCleared.emit()
+
+ def addItem(self, item):
+ self._variantData.append(item)
+ addIndex = len(self._variantData)
+
+ self.itemsAdded.emit(addIndex, 1)
+ return addIndex
+
+ def addItems(self, itemList):
+ newCount = len(itemList)
+ addIndex = len(self._variantData)
+ self._variantData.extend(itemList)
+ self.itemsAdded.emit(addIndex, newCount)
+ return addIndex
+
+ def itemList(self):
+ return self._variantData
diff --git a/examples/graphs/3d/widgetgallery/widgetgallery.pyproject b/examples/graphs/3d/widgetgallery/widgetgallery.pyproject
new file mode 100644
index 000000000..581b21483
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/widgetgallery.pyproject
@@ -0,0 +1,29 @@
+{
+ "files": ["main.py",
+ "axesinputhandler.py",
+ "bargraph.py",
+ "custominputhandler.py",
+ "graphmodifier.py",
+ "highlightseries.py",
+ "rainfalldata.py",
+ "scatterdatamodifier.py",
+ "scattergraph.py",
+ "surfacegraph.py",
+ "surfacegraphmodifier.py",
+ "topographicseries.py",
+ "variantbardatamapping.py",
+ "variantbardataproxy.py",
+ "variantdataset.py",
+ "data/layer_1.png",
+ "data/layer_2.png",
+ "data/layer_3.png",
+ "data/license.txt",
+ "data/maptexture.jpg",
+ "data/narrowarrow.mesh",
+ "data/oilrig.mesh",
+ "data/pipe.mesh",
+ "data/raindata.txt",
+ "data/refinery.mesh",
+ "data/topography.png"
+]
+}
diff --git a/examples/gui/analogclock/main.py b/examples/gui/analogclock/main.py
index 12303cd1d..c0e00dd93 100644
--- a/examples/gui/analogclock/main.py
+++ b/examples/gui/analogclock/main.py
@@ -4,8 +4,7 @@
import sys
from PySide6.QtCore import QPoint, QTimer, QTime, Qt
-from PySide6.QtGui import (QColor, QGradient, QGuiApplication, QPainter,
- QPolygon, QRasterWindow)
+from PySide6.QtGui import QGuiApplication, QPainter, QPalette, QPolygon, QRasterWindow
"""Simplified PySide6 port of the gui/analogclock example from Qt v6.x"""
@@ -21,53 +20,69 @@ class AnalogClockWindow(QRasterWindow):
self._timer.timeout.connect(self.update)
self._timer.start(1000)
- self._hour_hand = QPolygon([QPoint(7, 8), QPoint(-7, 8), QPoint(0, -40)])
- self._minute_hand = QPolygon([QPoint(7, 8), QPoint(-7, 8), QPoint(0, -70)])
+ self._hour_hand = QPolygon([QPoint(5, 14), QPoint(-5, 14),
+ QPoint(-4, -71), QPoint(4, -71)])
+ self._minute_hand = QPolygon([QPoint(4, 14), QPoint(-4, 14),
+ QPoint(-3, -89), QPoint(3, -89)])
+ self._seconds_hand = QPolygon([QPoint(1, 14), QPoint(-1, 14),
+ QPoint(-1, -89), QPoint(1, -89)])
- self._hour_color = QColor(127, 0, 127)
- self._minute_color = QColor(0, 127, 127, 191)
+ palette = qApp.palette() # noqa: F821
+ self._background_color = palette.color(QPalette.Window)
+ self._hour_color = palette.color(QPalette.Text)
+ self._minute_color = palette.color(QPalette.Text)
+ self._seconds_color = palette.color(QPalette.Accent)
def paintEvent(self, e):
- with QPainter(self) as p:
- self.render(p)
+ with QPainter(self) as painter:
+ self.render(painter)
- def render(self, p):
+ def render(self, painter):
width = self.width()
height = self.height()
- p.fillRect(0, 0, width, height, QGradient.NightFade)
-
- p.setRenderHint(QPainter.Antialiasing)
- p.translate(width / 2, height / 2)
side = min(width, height)
- p.scale(side / 200.0, side / 200.0)
- p.setPen(Qt.NoPen)
- p.setBrush(self._hour_color)
+
+ painter.fillRect(0, 0, width, height, self._background_color)
+ painter.setRenderHint(QPainter.Antialiasing)
+ painter.translate(width / 2, height / 2)
+ painter.scale(side / 200.0, side / 200.0)
+
time = QTime.currentTime()
- p.save()
- p.rotate(30.0 * ((time.hour() + time.minute() / 60.0)))
- p.drawConvexPolygon(self._hour_hand)
- p.restore()
- p.setPen(self._hour_color)
-
- for i in range(0, 12):
- p.drawLine(88, 0, 96, 0)
- p.rotate(30.0)
-
- p.setPen(Qt.NoPen)
- p.setBrush(self._minute_color)
-
- p.save()
- p.rotate(6.0 * (time.minute() + time.second() / 60.0))
- p.drawConvexPolygon(self._minute_hand)
- p.restore()
- p.setPen(self._minute_color)
-
- for j in range(0, 60):
- if (j % 5) != 0:
- p.drawLine(92, 0, 96, 0)
- p.rotate(6.0)
+ painter.setPen(Qt.NoPen)
+ painter.setBrush(self._hour_color)
+
+ painter.save()
+ painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)))
+ painter.drawConvexPolygon(self._hour_hand)
+ painter.restore()
+
+ for _ in range(0, 12):
+ painter.drawRect(73, -3, 16, 6)
+ painter.rotate(30.0)
+
+ painter.setBrush(self._minute_color)
+
+ painter.save()
+ painter.rotate(6.0 * time.minute())
+ painter.drawConvexPolygon(self._minute_hand)
+ painter.restore()
+
+ painter.setBrush(self._seconds_color)
+
+ painter.save()
+ painter.rotate(6.0 * time.second())
+ painter.drawConvexPolygon(self._seconds_hand)
+ painter.drawEllipse(-3, -3, 6, 6)
+ painter.drawEllipse(-5, -68, 10, 10)
+ painter.restore()
+
+ painter.setPen(self._minute_color)
+
+ for _ in range(0, 60):
+ painter.drawLine(92, 0, 96, 0)
+ painter.rotate(6.0)
if __name__ == "__main__":
diff --git a/examples/gui/rhiwindow/doc/rhiwindow.rst b/examples/gui/rhiwindow/doc/rhiwindow.rst
new file mode 100644
index 000000000..defbc46ef
--- /dev/null
+++ b/examples/gui/rhiwindow/doc/rhiwindow.rst
@@ -0,0 +1,49 @@
+.. _rhi-window-example:
+
+RHI Window Example
+==================
+
+This example shows how to create a minimal ``QWindow``-based
+application using ``QRhi``.
+
+Qt 6.6 starts offering its accelerated 3D API and shader abstraction layer for
+application use as well. Applications can now use the same 3D graphics classes
+Qt itself uses to implement the ``Qt Quick`` scenegraph or the ``Qt Quick`` 3D
+engine. In earlier Qt versions ``QRhi`` and the related classes were all
+private APIs. From 6.6 on these classes are in a similar category as QPA family
+of classes: neither fully public nor private, but something in-between, with a
+more limited compatibility promise compared to public APIs. On the other hand,
+``QRhi`` and the related classes now come with full documentation similarly to
+public APIs.
+
+There are multiple ways to use ``QRhi``, the example here shows the most
+low-level approach: targeting a ``QWindow``, while not using ``Qt Quick``, ``Qt
+Quick 3D``, or Widgets in any form, and setting up all the rendering and
+windowing infrastructure in the application.
+
+In contrast, when writing a QML application with ``Qt Quick`` or ``Qt Quick
+3D``, and wanting to add ``QRhi``-based rendering to it, such an application is
+going to rely on the window and rendering infrastructure ``Qt Quick`` has
+already initialized, and it is likely going to query an existing ``QRhi``
+instance from the ``QQuickWindow``. There dealing with ``QRhi::create()``,
+platform/API specifics or correctly handling ``QExposeEvent`` and resize events
+for the window are all managed by Qt Quick. Whereas in this example, all that
+is managed and taken care of by the application itself.
+
+.. note:: For ``QWidget``-based applications, see the :ref:`rhi-widget-example`.
+
+Shaders
+-------
+
+Due to being a Qt GUI/Python module example, this example cannot have a
+dependency on the ``Qt Shader Tools`` module. This means that ``CMake`` helper
+functions such as ``qt_add_shaders`` are not available for use. Therefore, the
+example has the pre-processed ``.qsb`` files included in the
+``shaders/prebuilt`` folder, and they are simply included within the executable
+via a resource file}. This approach is not generally recommended for
+applications.
+
+
+.. image:: rhiwindow.webp
+ :width: 800
+ :alt: RHI Window Example
diff --git a/examples/gui/rhiwindow/doc/rhiwindow.webp b/examples/gui/rhiwindow/doc/rhiwindow.webp
new file mode 100644
index 000000000..7ab3514af
--- /dev/null
+++ b/examples/gui/rhiwindow/doc/rhiwindow.webp
Binary files differ
diff --git a/examples/gui/rhiwindow/main.py b/examples/gui/rhiwindow/main.py
new file mode 100644
index 000000000..cfb73b10b
--- /dev/null
+++ b/examples/gui/rhiwindow/main.py
@@ -0,0 +1,80 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from argparse import ArgumentParser, RawDescriptionHelpFormatter
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtGui import QGuiApplication, QRhi, QSurfaceFormat
+
+from rhiwindow import HelloWindow
+import rc_rhiwindow # noqa: F401
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+
+ # Use platform-specific defaults when no command-line arguments given.
+ graphicsApi = QRhi.OpenGLES2
+ if sys.platform == "win32":
+ graphicsApi = QRhi.D3D11
+ elif sys.platform == "darwin":
+ graphicsApi = QRhi.Metal
+
+ parser = ArgumentParser(formatter_class=RawDescriptionHelpFormatter,
+ description="QRhi render example")
+ parser.add_argument("--null", "-n", action="store_true", help="Null")
+ parser.add_argument("--opengl", "-g", action="store_true", help="OpenGL")
+ parser.add_argument("--d3d11", "-d", action="store_true",
+ help="Direct3D 11")
+ parser.add_argument("--d3d12", "-D", action="store_true",
+ help="Direct3D 12")
+ parser.add_argument("--metal", "-m", action="store_true",
+ help="Metal")
+ args = parser.parse_args()
+ if args.null:
+ graphicsApi = QRhi.Null
+ elif args.opengl:
+ graphicsApi = QRhi.OpenGLES2
+ elif args.d3d11:
+ graphicsApi = QRhi.D3D11
+ elif args.d3d12:
+ graphicsApi = QRhi.D3D12
+ elif args.metal:
+ graphicsApi = QRhi.Metal
+
+ # graphicsApi = QRhi.Vulkan? detect? needs QVulkanInstance
+
+ # For OpenGL, to ensure there is a depth/stencil buffer for the window.
+ # With other APIs this is under the application's control
+ # (QRhiRenderBuffer etc.) and so no special setup is needed for those.
+ fmt = QSurfaceFormat()
+ fmt.setDepthBufferSize(24)
+ fmt.setStencilBufferSize(8)
+ # Special case macOS to allow using OpenGL there.
+ # (the default Metal is the recommended approach, though)
+ # gl_VertexID is a GLSL 130 feature, and so the default OpenGL 2.1 context
+ # we get on macOS is not sufficient.
+ if sys.platform == "darwin":
+ fmt.setVersion(4, 1)
+ fmt.setProfile(QSurfaceFormat.CoreProfile)
+ QSurfaceFormat.setDefaultFormat(fmt)
+
+ window = HelloWindow(graphicsApi)
+
+ window.resize(1280, 720)
+ title = QCoreApplication.applicationName() + " - " + window.graphicsApiName()
+ window.setTitle(title)
+ window.show()
+
+ ret = app.exec()
+
+ # RhiWindow::event() will not get invoked when the
+ # PlatformSurfaceAboutToBeDestroyed event is sent during the QWindow
+ # destruction. That happens only when exiting via app::quit() instead of
+ # the more common QWindow::close(). Take care of it: if the QPlatformWindow
+ # is still around (there was no close() yet), get rid of the swapchain
+ # while it's not too late.
+ if window.isVisible():
+ window.releaseSwapChain()
+
+ sys.exit(ret)
diff --git a/examples/gui/rhiwindow/rc_rhiwindow.py b/examples/gui/rhiwindow/rc_rhiwindow.py
new file mode 100644
index 000000000..67f6adeb9
--- /dev/null
+++ b/examples/gui/rhiwindow/rc_rhiwindow.py
@@ -0,0 +1,319 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.6.1
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x03\xd6\
+\x00\
+\x00\x0b\xa0x\x9c\xd5VMo\xdbF\x10]}8\x8e\
+\xe94i\x9a\xaf&q\xddM\xdd&\x94\xe3\xa8\xb4\xe0\
+\x04Ee\xb9-\x92\x221\x10\xc0n\x5c\x18\x05\x04\x83\
+P$\xca! \x93\x86H\x0a*\x02\x03\x05r\xcf\xb1\
+\xa7\xde\xf2\x0f\xdaC\xff@\x81\xfe\xa5^\x8avf\xf7\
+Q\xbb\xfapN\xb9d\x01\x8a\x9c\xb73\xf3f\xe6-\
+i\x0b!\x16\x84Y\x05\xba\xce\x8a\x81\xf0EF\xbfB\
+\x14\x19\xfc\x0fK\xbc\xc3\xc5D\xabt\x9d\xb7l^e\
+\xdc\xcf\xe0\xde1!\xa5\xdfJ\xc5\x95yvu\xa8\xc6\
+\xbb@/R\x8d\x1c\xbcH!|\x7f\xfct\xefi5\
+I;\xd5\x8d\xfb\x9eP\x04\xa5\x11\xc1\x05\x8a\xcbI\x8e\
+Za\xc4\xcf\xdc\xfd9\xba>\xe1X\xdaa{\x19\xb9\
+\xd9>\xa7r\xebb\x9f\x889q\x13{\x8b\xb8\xe7X\
+\x01X\xc1\xc2\x8a\xc0J*Wi\x84]\xa2_\xbe\xdf\
+\x22\xac\x04\xec*=q\xd3\x92\xaek\xc4;\x8f!\x14\
+\x15VV\x95\xb3/\xe3u\xd8\x0b\xc0\xae\x90\xed \xb6\
+\x00\xff\xbc\x16\x07\xfe\x8b\xe8\x93\xb1\xbb\xf0??a\x7f\
+\x08>\xe6\xbf\x06\xfe2\xf2\x7f\x8c\xfc\x02\xfel_G\
+\xfc\x12\xd97\xe0\x7f]\xcdO\xf7\x9f\xe7\xb8\x81\x9a\x96\
+P\xefM\xd4\xb4\x84\xb9\x97\xac\x1a\x96-\x8e3\x86\xf3\
+\xdb\xdc\xfeL\x99\xbf|\x93\xdb_\xc0\x9f\xf3W\x90\x8b\
+y\x1fP\x0dEa\x0e\x14\xe3\xff\x102G\xf7\x06\xb8\
+>\xc0L\xfe\x22\x94\xed\x0b\xc0x.\x7f\x03\xbb\x08\x9c\
+g\x13\x83\xf3#\xe0y\x9eK\xc8\x93\xc7\x5c\x06f\xc7\
+\x5c\x01\xbeK>\xf3Jo\x9d\x87\xf1-\xaan\x01X\
+\x03\xda\x7f\x0a}_\xc3\xff\x160i\xe5X\xc1<\xf8\
+z\x05\xecs\xf8\xf2\xde\x0f\x841\xf7m\xe0\xc2\xc2\xee\
+\x00+\xa8|\xf3jf.|\xef`\xae\x9c\xf7;\xf2\
+\xe7\xb9\xaeB\xabe\xd4\xbb\x0a\xff\x7f)\xc3W\xfa\xf5\
+-\xe3\x9db\xa3#\xcc;\xfd\xe7\xca \xe8'a\x1c\
+\xc9u\xcfs\x9cA\xab\xffs\x18\x1d\xcaA\xd0\xae\xc9\
+\x81\x9f\x0d\xea\x84\xc5aGr\xb8[q^:\x92\x16\
+o\xc8\x86rr\xbb\xbd\xb8\x95\xba\xeea\xcf\xdf\x0f\xfa\
+i0\xdc~$77\xe5zE\xde\x96\xb5\xca\x9a\xd4\
+\xdb\xf6.\xe3\x95\xba\xcaC\xf0n\x9c\x84)\xd3\xabt\
+\x1b\xae\xabr\xaf\xcaZ\xd5\xab\xc8{\x9ab\x9d\x9e\xd7\
+\xa4W\xf5\xd6$?\xd6\x9d\x13\xc7\x99hi(\xcc\xb2\
+Z\xaa\xbd\xc7-\xfdj\xb5\xf4\x87i\xe9>\xb5\x14g\
+\xe9{\xd5\x0e\xbf\xeb5\xd3M\xf1M\x92\xb6\xd2\xb0\xad\
+\xa97l\x92\xba\x83\xad0J\xa5\xa9)\xea\x04\xc3\xd1\
+\x96\x8a\x1a\xf5\x9e\xa4\xfd\xac\x9d\xca\xbd\xdd\xedg\xfb\xfe\
+\xc3~\x9c$\xfevt\x9c\xa5\x18D6\x9dH~-\
+\xf7\xf6G\xddR\xad\xb3\xb3\xecd\xa9IcqR\xf8\
+\x8f\xdf\xff\xf4pg\xe7\xd9#\xafn6\xc7\xda\xd0\x14\
+\xa6\xa9\x93\x5c$\x921\xf5g)\xa5\x09\xa6\xb5R\x05\
+\xbfM.\xe5p\xaab\xba4[\xb3.\x8bF\x22u\
+\xab\xc3\xa1\x92\xac\xab4\xebj\xd1\xa6\x07\xa0\xcf\xd5\xd4\
+x%\x89q\x18\xf8!?\xe7\xadL\x14\xd5`\x11]\
+\xcb\xaf:\xee\x80\x82\xad\x91h`F\x0d:I\xac\x0c\
+\xedd#\xd5\xf1\x9e\xc7\x8e\xd3\x94o\xfef\xa8\xd3\xc3\
+\xbb\xfd \xcd\xfa\xd1\x04\xc5\x89}|\xcb\xf8\x13\x82U\
+\xf8}%\x8c\xda\xbd\xac\x13\xc8\xcd\xa3 m\xf5|\xfa\
+\x97\xa6\x17>\xdfr\x0c\x9e\x84G\x9d/\xf9\xa7\xfab\
+\xcbq\xb2\x84?@Q\xeb(H\x8e[\xed@\xaa(\
+s\xea\x98\xc6c\xea\x19\x87\xad\xd9\xcc\x92\xa0\xef\xf6\xe2\
+v\xe4U\x0e\x0eN=p\xcd\xe61\x1e\xd9I\x9d7\
+5i\x93\x5c?\xb9\xb3^\x88fS;\xfba\xe7\xe0\
+ W\xd3\x04\xf2\xd5\x90/O4yl\x868~h\
+Y\xed\x09\x85g\x9c\xdcY^\xd6\xf1\x8d\xa7\xe4\xcc\x8f\
+\xf0\x88w\xf4\xe9\x01\xfd\xd4\xc7\xc7R5\xd6b\xb2\x9a\
+s\xaa!|\x8d&\xbeHjM\xc8l\xf4>m\xef\
+\x7f\xf6^=\xc8\
+\x00\x00\x04\x0b\
+\x00\
+\x00\x0b\x95x\x9c\xd5Vmo\x1bE\x10\x1e\xbf$n\
+.%I\x9bR\x0a\x05\xb44\x12\xb2Ke.\xc5\xa5\
+\x88\x90((\x01Z\xa9RJS*$\xcb:]\xce\
+gg\xc1wg\xdd\xed\x99FU\xfe\x02\x1f\xf9)H\
+|\xe6\xaf\xc0\x7f\xe0\x0b\x82\x99\xdd9\xdf\xc6qi%\
+\xfa\xa5+\xado\xe7\xd9yyffo\xcf\x00\xb0\x04\
+\x00u\x9c\x15\x9c+0\x01\x0f\x02H`\x843E\xa4\
+\x86\x13\xfe\xe1\x01s\x06\x99]\x86\x01*\xfb0\x84=\
+\xcb\xb4\xfe2\xa6\x8bp\x049\x9a\xd3\xca\x83M\xb8\x8b\
+\xab}K\xa7\xaaw\x22\xe45\xc6\xd52\xa3\xbb\x96\xc6\
+Z\xb1X\xc1\xb8cd\x11\x80\x04\x05'\x1c`\xb7`\
+\xf2*\xc7\x22?\xfb\x16\xd1?j\xd5\x8d\x06\xc5t\xe0\
+\x02\xbc\xcf\xe8%L\xa0\xa2\x89/\xea\xe77\x0f\x0e\x1f\
+\xb43\xd5ow\xee\xb8\x86\xb3.\xb0\xde[\x85\x86f\
+J3\xf2eL85\xe7\xa2N\xb2\xa6\xf1\x06\xf9\xc0\
+\x15\xe1E\x0c\x92/Z\xf2=\x94Wy\xbd\xa0\xe5\x85\
+\xa9\xbc1\xd5)\xb1\x06\x98\x22\x16X\x85\xf5v\xb5\xef\
+\x9a\xc6\xaa\x1c\xe7\x12>oXqI\xfe\x80\xe5u\xd4\
+\xaaj\xb9\xa6\xb3\xa2\xf5U\x5cQ\xb1\x04\xce\xb7P\xbf\
+\xc1\xc5\xabk\xac\x8e\x952G\x8c\xf0-\x96\x97\x18#\
+}\x87\xf5k\xac\xbf\xcc\xfc\x1c\xd6_\xe6\xfa\x10v\x0d\
+\xe5\x15\xf6U\xd7\xf50uXa\x1fd\xbf\xc6\xbcV\
+\xd9~M\xf7\xc8`o\xa2|\x99\xb9\x92\xbf\x8fX^\
+g\x99\xec\xaf@q$\x01>\xc5zU\xa1<]\xc4\
+\xf1/D\xa8\xe6\xdb\xcc\xfd\x0d\xe6\xf7%\xa2Wt\x0c\
+\x13o\x9du\x16u\x8d\x0c\xfe3\xea8:ocw\
+\xd5\xb2\xbb6\xc7\xeem\xc6\xbfE\x1d\x92\xdfa[\xb0\
+\xb0\xeb\x8cU,\xec]\xc6\x88\xfbC\xac\x16\xd5\xeb=\
+\xb6\xbf\xce\xfb\xe4{\x073Z\xe2\xbd\xbf\xd1\xc3g\xda\
+\x0b\xd4\xf9l\x92\xd0\xe7'\x8d?7&a\x9a\xc9$\
+\x16\x9b\xae\xeb\x8c\xd30\x90Z:\x96\xc3\xe3\xb1\x18\x8c\
+\x12_m\x9d\x83e\x8c\xa0\x93\xa94\x0f\x948\xca\x07\
+\xce3G\xe0\x88|\xd5\x11\xd1d\xbc\xa5%m+\x92\
+\xb1\x1fHu\xb2\xe5\x9c\xa2E\x1e\xcbA\x92Fd\x22\
+\xbc\xcd\xbb\x88L\xfc\xf4D\xc6C1\x09\x83O\xc4\xc4\
+\x0b\x92Q\x92\x12\x9c\xc8\xbe \xc6\xcd\x16\xfb\x1e\x8e\xbc\
+\xafS\x7f\xb8\xef+\xbf\xeb\xf6\xc46Yt\x9al!\
+n\x92\xbb6\xc7\xbae\x0b-\x8c\xec83\x05x\x0a\
+\xe5\xf8\xad,\xc0m\xf7uN\xea\x17+\xa9\xdf\xcb\xa4\
+\xee\xbc\xa2\xa4\x92\x5cizb\x80\x8c\xf7LJ2~\
+q\x8eS\xf5\xff\x91\x1e\x9d\xf9\xdbev\xd5\xef\x02\xe4\
+5\x08SM\xefs\x91\x86C\x99\xa90m\x1e\xb9E\
+\xd44\xf9\xc9\x8b\xfc\x1f0\x8cN\xae\xf3\xb4C\x01<\
+L\x19\xf51\xca\x8f\xc9`\x90\x85\xaa\x19\xb8-\xbb\x06\
+\xa4\xc3$f\xf4:-S\x18\xac\xa5\xafd\xc0n\xed\
+b\xd8\x1bvI\xb8\xf8\x87\x0f\xef?z\xe2\xed\xa5I\
+\x96y\xf7\xe3q\xae\x8a\xfa\x9c\xd1\xc7\xa8\x8f\xbf\xfa~\
+\xef\xe0\xe0\xd1\xbek\x02\xce1?\xc8\xd5\x8c\xbdE\x04\
+=\x1c>\xf1\x1e\xfb\xe90T\xecB7\x85\x14\xbc\xe7\
+v\xc6x9\xdb\x1b\xcf\xee\x8dw\xa67\xe7\xd9\x98\xa6\
+\x9fKR`U\x86\xa1'i]\xc4-\x82l\xdb\x9b\
+\xedi\xc1\x0ajL\xd6\x00s\x02\x1a\xe3D\x0bF\xc9\
+F\xdag\xb2+\xbb\xa4\x0fG\xa8\xf24\x9eqpj\
+\x1f\xb8:\x7f\x00xT~\xdd\x90q0\xca\xfb\xa1\xf8\
+\x22\x0a\x95?\xf2\xf0\xcf\xc0H\x1e\xed8%\x9e\xc9\xa8\
+\xff1\xfd\xb4\x8fw\xf0\xfd\xc9\xe8\x02\x88\xfd(\xcc\xb0\
+n\xa1\xd0V\xf3\xee\xcc\xe9\xf1\xfc\xaf\xb7\x91\xad\x88\x9c\
+K\x84\x9f\xd7\xfanW\xd7\xb0\xe9\xb6z\xbd9\x962\
+\x9e\x7f\xe6\xba\xdd<\xc3\xb7g\x94\x04qiI^\xa3\
+0\xb6\xa2\x9aU\xb3\xf0\x85_\x01\xb4,Z\xd8\xeb\xdd\
+\x12A\x12\xa3\x18\xeb\xf4>\xa4C\x83\xfb\xe6E\xd5\x8c\
+Z\xd3\xcb\xa7pHs[<;5\x89'\xb3]3\
+gR\xc6\xed\x97\xba2\xac\xce&\xa6\xa1\xd4\xd1\x05\x1d\
+\x8d\xef\x90\x99{d\xfa\x11\x04\xfe\xaf;\xd3\xf6s\xfb\
+\x056\xab\xa7\xc7\xbf\xc3\x1a`\x81\
+\x00\x00\x03\xff\
+\x00\
+\x00\x0b\x1ax\x9c\xcdV[o\xdcD\x14\x9e\xbd\xa4K\
+\x9c\x96\x86\x96$\xa5\xe52M@r\xca\xca\x98U\x8a\
+\x10\x9b\x8d\x84\x12@\x95*\xa5\xedF-\xd2je\x19\
+\xefdc\xc9k\xaf\xec\xf1\x92R\xe5/\xf0\xc8\x0b\x8f\
+\xfc\x0c~\x03\xff\x87\x17\x04\xe7\xcc\x1c\xaf'\xdeM\x95\
+GF\x9a\xf5\x9co\xce\xe5;\x17;a\x8c\xad2\xc6\
+\x9a\xb0k\xb0\xdfa3\xe6\xb1\x1c~\x19\xab\xc3f\xff\
+\xd2bK\x16\x1a\xdca\xa7,e>\x1b\xb3C\x96\xb0\
+\x08vJ\xee\xdejZus\x83I&\xd89\x9c\xec\
+\xeb\x98\x5cw\xdd\xa0\xe7\xa8\x84\x1a\xedF}\xa7\x85Q\
+-\xc8\xf63B\xdf\x83l\x91\xc7\x1a\x98\xe0\xf3\x87\xa7\
+\xfd\xa7N&G\xce\xdec\x17\xef\xdfe\x8d9\xd7\xdb\
+\xac\xa5\x12\xc4=\xf1\xc3X\xdb3\xb6\x01{\x1d\xf4\x10\
+o\xa1\x0f8\xdd\x82\xe76\xc5(\xe4\x87\x86\x8cv\x1f\
+\x1b\xf2\x86!\xdf\x05Nu\xa5\xdfP\xd1\xf1\xbc\x09'\
+L\x8a\xc3\xde\x02\xfd\x16%\xd9TX\x132\xd2\xb1q\
+\x7f\x00\x9d\xb5\xe8\xbeV)L!?\x00\x7fk\xf0\xb4\
+\xc8\xfe&\xe1\x88uI\xbeE\x18\xc6\xbbM\xfe\xea\xa4\
+\xbf>\xaf\x89\xd6_\xa7Z\xd4\xe8\xfe}\xac8\xf1\xe9\
+\x92\xbcA\x18\xfa\xdb$\x7f\x0d\x857\x81\xb3\xce\x0d\xd7\
+\xe7$\xdf\xa7{\xf4\xf7\x80|\xa1\xcdWlE\xf1h\
+\x16\x9d\x85\xfd7 +\x14\x0bk\xb1J\xfa=\x90\xd7\
+T\x1fu>=\xca\xe5\x0e\xf1}\x05V-Us\xad\
+\x83\xf8\x01x\x5c%\xacG\xb5\xde\x22\x9f\xc7\xe0\x1d\xb9\
+\xdf#l\xcb\xa8+r\xfa\x16\xfc!\xd7\x0fI\xff>\
+\xf9@\xde\x1f\x11\xfe+\xe8lR\xbf\xef\x11^\xd8}\
+\xb2\xc4\x8e\x13\xfe\x1ctP~\xc8\xcaY)\xb0m\xc2\
+j\x06\xb6C\x18\xf2z\x06Y`\x1e\x9f\x92\xfd6\xdd\
+s\xcaw\x83\xee\xfe\x01\x0f_\xeb)i\xd2\x8c\xa30\
+b\xe5\xe8\xfc\xb53\x13i\x16&1\xff\xd2u\xadi\
+*\x82PIg\xe1\xf8l\xcaO\xa3\xc4\x97\xdd\x058\
+\x8c\x01\xb4\xf28<M\xd2\x09a\x99?\x99F\x22\xed\
+\x1cq)\xce\xe1v\xe6\xa7\xaf\xc3x\xccg\x22\xe8\xf0\
+\x99\x97\xcf\x10K\xc2\x11G\x22\xf6\xae\xf5\xc6\xe2\xb0\xe0\
+v\x8f\x07\xbc\x87F2OE\xe7\xc8\x86S[\x19\xec\
+v\x95\xca8\xf2\xbeO\xfd\xf1\x91/\xfd\x81;\x04U\
+\xb4\xb1\x03\xe7\xfc\xf5/\xfc\x11\x0f\x9c\x9f\xdb\xf8\x03\xca\
+\x17\x96UI\xf4\x9c\x95\xeb\xf72\xd1\x8e[\x92\xff?\
+\xd2\xfe\xcd\xa0\xfdGI\xfb\xf1[h\x87\xb1\xc98\xc9\
+\xa5\xa6x\x0a\x0c\x0e\x93(I\xaf\x95\xc5B\x0es\xf3\
+k\xd3\xc7\xe9\xec\x94\xec\xeb\xfb'E\x81\xf6\xd5,\xed\
+\x1d`0\xfe\x0dO\xc58\xcc\xa4Hm\xe9\x82\x93\xbe\
+N\xa7/})\xb8\x07\x1a\x1e%hjf\xa8ie\
+\xa0\x13\x06z2\x8b|M\xecr\xd2\x99L\xf3@\xf2\
+\xfe\xb3'/^z\x87i\x92e\xde\x93x\x9aK\xaa\
+\x80\xe1\x05\x22\x9d|\xf7\xe3\xe1\xf1\xf1\x8b#\x17\xb2Z\
+n{\x9c\xcb\x8a\xb1\x11\x0e<\xf4_z'~:\x16\
+\x92\x5c\xa8\x9a\xa3\x82w\xa9\xf0dI\xa5wt\xf6\xb6\
+\x99\xf7\x95m\xd0\xa6W4b\x91\xaan\xf8B\xfa\x1c\
+*6\x16^\x88\xe7\xf94`\x11z\xe6\x8d\xa3\xab[\
+P\xa0\x1c4\xb0$\x94\xb6L\x94\xa0\x95L\xc4\xb9\x94\
+E\xd9\x22\xd4K\x05\xccH\x5cqpa\xce\x15\xfeu\
+\xb8Y\xceU\xed\xcf\x9d0\x0e\xa2|$\xf8\xfeDH\
+?\xf2\xe0\xaf|\x14\xfet`\x95x\x16NF_\xe0\
+\x8fsv\x00/N\x86ou\xecOD6\xf5\x03\xc1\
+\x95U\xd9d\x0c\xe3b\xe8\xabz;\x18\x04\xf8\xb4\xdd\
+\xdd\xe1\xf0\xd2xh\xcb0^2Q\x83A\x9e\xc1\xdc\
+FI\x10\x97f\xe8r\x22b#\xa4>\xd9\x85#\xf8\
+\xba\x82e\xd1\x86\xe1\xb0=\xff\xc8\x8c\xf4;\xa4_\xa1\
+\xc1\xa0xk\xd1w\xbb\xf8\x22\xe0]\x1fN\xc8\x98 \
+\xa5Pt\xb9\x8c\x8a\xbb\xc7\xdf\x5ct\x97\x8d\xa46\xb5\
+\x0bgm \xe5\x18\x13\x99T\xfby\xe5T\x1a\xedM\
+tW\xb1\xad+\x8a\x06}/*\xdf\x8c\x85\xffr*\
+\xbd_\xb8/\xb0\xaa\x9eZ\xff\x018\x196d\
+\x00\x00\x04k\
+\x00\
+\x00\x0d\xafx\x9c\xe5Wmo\x1bE\x10^\xfb\x9c\x94\
+\x5c\xc9K\x936i\xa1-\x9bZB6T\xc6\x09\x0e\
+B5\x89\x82ZD+UJ\xd5\xa0\x0a\xc9\x8aN\xe7\
+\xf39\x1c\xf8\xee\xac\xbb=\x93\xa8\xb2\xc4_\xe0\x0b?\
+\x8c\xdf\xc0\x8f\xe0\x0b\x82\x99\xddY\xdf\xde\xd9)\xaaT\
+\xf1\x85\x95\xd6\xdey\xd9y\x9e\x99\x9d\xdd8\x8c\xb1\x15\
+\xa6F\x15\xa6\xcd<\x16\xb3\x11\xcc\x04$\x0bf\xe5o\
+\x1al\xc1\xd8`cpMY\xc0\x04\xcc\x98E\xa0\xab\
+\xa1\xe1M\x9b*0\xd7\xd8\x849sX\xff\xbam\x99\
+\xf5Y\xc6\x86r\xe5\xb0}v\x00\xab'\x86OUZ\
+B\x08>\x86\xd5u\xd2\x1e\x17\x18\xd3X\x03\xdc1s\
+\x81\x03\x92\xbf$\x80c\x9d\xc0\xbb\x1a\x15\xfa\xd6A\x97\
+\xe9{\x90\xbbX\xbfX\xd5\xfa5t\xb5\xd9{\xacN\
+\xda\x1b\x90LE&\xb1,\xbf\xbf}~\xfa\xbc\x95\x8a\
+A\xabs\xd0V\xfc\xad\x19\xc0:\x9d!\x82\x84n\x80\
+\xa7 5X\x80-\x98\xf7q?XWh\xcdH\xbe\
+N2\xc6x\xca\x96\x00S\x0d]8\xad\xab\x90\xce\xf4\
+\xab\x92\xce\x92\xb1\xac\x99\xee)\xc4\xdd\xa1\xfdK\xe4\xaf\
+\xe5\xba\x11W\xeb qy(ZW!\xbfc\x8a\xbb\
+Cq\x91\xef\x1d\xf8~`\xf0Gy\xd7\x90\xef\x1b\xf9\
+m\xc1\xae\xaa\xb4[\x92#\xae\xb7a\x85\x07\xc0a\xee\
+\x80\xff5:\x10K\xeajP}\xb5F}\x97\xe4\x15\
+\xc3n\x13?m\xb7\x8d\xba`\xbcU\x8a\x87\xe7p\x0b\
+>\xd7\x08\x0b\xc7\xa7$\xaf\x93\xff]\x907\xc8\x7f]\
+\xf2Vu\xd516\x08s\x93\xf0o\x10\xe6&\x9d\xa9\
+E\x187\x09\xa3B\x187\xa5^\x8d\xdb oS\xcc\
+\x9a\xc4Pg\xb3M\x18\x18\xff6\xd5f\x87\xe2\xa3|\
+\x87th\xff`V;%\xdf#\xacU\xf2\xbf\xc7\xf2\
+\x1eB\xfb.qC\xfb\x17\x90S\x95\xe5\xcd\x8f\xfa?\
+A\x83}qH\xf5\x7f\x9fjx\x04\xd6\x15\x92\xbf\x06\
+\x0f\xc4\xfd\x90\xb8\xdc\x22\xffmY7\xa5?\xa4z\x7f\
+D\xf8\xbf\xc2\x9eU\xaa\xc5]\xd2c\x9c]\xea\x99-\
+\x8a\x838\x0f\xc8\xef/`\xfd\xa5\xba\xa25\xba7(\
+\x0cX~o\xff\xa8O\xfc$\x0d\xe2\x88\xef\xb5\xdb\xb6\
+\x9d\x8a$\xf3\x04\xefgC\xfb\xb5\xcda\x84\xae\xe8\xf0\
+p2\xeeJi8\x8a]\xc1\xe3\xb1\xeb\x05\xe2\xb2k\
+O\xbb\xb6\x9dE\xc10NB\xdc\xc2\x9d\xfd\x03\xd0L\
+\xdc\xe42\x88\xce\xf9\xc4\xf7>\xe7\x13\xc7\x8bGq\xd2\
+\xb5]!\x92\xa0\x9f\x09_\xe9\x17i;|\x1c\xa7\x81\
+\x002\x18%\x0e\x06\x1cI7\x9aD\x85B\xf1C\xbd\
+\x19\x95\xe7#\xe7\x05m\x02\x03\x10h\x01Y\xfe\x89\x11\
+ij\xdb\xa5\xfc/X>\x8c\xfc\xf7\xff/\xf9\xfff\
+\xe4\xff{\x9e\xff\xc1;\xca?\xceD)\xf7 *$\
+\xad\xc4\xff\x22[\xbc\x9c\xfby\xb2\xd6\xa6\x074\x87~\
+\x22\xd9>\xe2\x89\x7f\x1e\xa4\xc2O\x1a\xfd\xb6\x86M\xe2\
+\x9f\x9d\xd0\xfd\x11\x80e\xae\x9d\x8b\x0e\xc28\x08\xf3\x88\
+C\xde?\xc5\xc3a\xea\x8b\x86\xd7n\x9a%A\x1f*\
+K\xc9\xaf\xd3Tu\x82\xd2\xba\x22\xf0(\xac\x99I\xb7\
+`2\xcaVT/P\x16JHGw\xfa\xe2\xd9\xcb\
+W\xce\xe3$NS\xe7Y4\xce\x04%V\xda\x00,\
+\xbf\xfb\xe6\xfb\xc7''/\x9f\xb4\x8dD\x08\xc6\xb0\xee\
+)\xfa\x0b\xa2\x9fd\xa2\x14~\xc6\xfd\x8a\xe8\x85\xb4\xc1\
+\xe7\xf4\x95Q\x84\xa9n\x03hH\xe1\xbcm/\x84\xd9\
+\xa8\xa1s{\xa8\x8f\xac)\xfba\x9e\xb3\xea\xb4\xb9J\
+q\xa8\xed\xb9\xef\x04\xb8\xd6\xd0\x1a\xd80\xb5\x0c\x12\xe3\
+\x9c\x81\xe9\x91\x1f\x8b\xa4\x9f'\xa4\x14\x0b\x18\xa9\xdd\xb1\
+\x14\x94\x93\xa9i\x15\x93-4\xcf\x9co^\xadY'\
+\xc9\xce\xf6E\x96D%\xa0\xa9y[j\xf4\xe7\x89F\
+u\xa9\x1eD\xde(\x1b\xf8\xfc\xab\xd0\x17\xee\xc8\x81\x9f\
+g\xa3\xa0\x7fd\xe7\xfa4\x08\x07\x9f\xe1G\xeb\x87#\
+x\x0bR|\xf7\x227\xf4S\xb8\x02>\x97\xbb\xba\x0b\
+^\x95\xd9\xddz\xd3\xcbB\xbb\x90\x5c\x1b\x09/\xee\xb4\
+^/K\xe1\x06\x8fb/j7\xcf\xce\xae\xec\xb6^\
+O\x1f\x0a:\xcd\xc5\x0f\xa2+\xeeI\xaf7{\xa3\x1b\
+%\x00}YL\x97\xbd\xa6\x0e\x8f\xa7\xee_\xe4\xf4\xd5\
+\xaa\xa1\xe1x\x80\xb1u\xd3\x9c\x9d=\x84`\x11\x88\x91\
+\xac\xd3\xc7\xd8\xc2`W\xcf\x95\x04n\xce^d\x1d\x10\
+\xe7!\x7f=U\x94\xe2\xc2\xd1\x07\x91\xd9\xa6\xf1\x5c\x0b\
+\xe5o'x\x16\xdb\x95\x1a%V\xfd\x81\x0d\xb2$1\
+\xe9=-\xbd\xa9\xb3_\x12\x8c\xfe\xb1)u\xd1\x9c]\
+\xeb\xca~r\xfc\x03\x0d.\xdb\xc1\
+"
+
+qt_resource_name = b"\
+\x00\x0d\
+\x0d\xf9\xb2\xf2\
+\x00q\
+\x00u\x00a\x00d\x00.\x00v\x00e\x00r\x00t\x00.\x00q\x00s\x00b\
+\x00\x0e\
+\x04\x16\xeb\xb2\
+\x00c\
+\x00o\x00l\x00o\x00r\x00.\x00f\x00r\x00a\x00g\x00.\x00q\x00s\x00b\
+\x00\x0d\
+\x09\x18\xb0\xd2\
+\x00q\
+\x00u\x00a\x00d\x00.\x00f\x00r\x00a\x00g\x00.\x00q\x00s\x00b\
+\x00\x0e\
+\x00\xfb\xe9\x92\
+\x00c\
+\x00o\x00l\x00o\x00r\x00.\x00v\x00e\x00r\x00t\x00.\x00q\x00s\x00b\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00b\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xec\
+\x00\x00\x01\x8b8N2\x22\
+\x00\x00\x00 \x00\x00\x00\x00\x00\x01\x00\x00\x03\xda\
+\x00\x00\x01\x8b8N2\x22\
+\x00\x00\x00B\x00\x00\x00\x00\x00\x01\x00\x00\x07\xe9\
+\x00\x00\x01\x8b8N2\x22\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x8b8N2\x22\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/gui/rhiwindow/rhiwindow.py b/examples/gui/rhiwindow/rhiwindow.py
new file mode 100644
index 000000000..fe054af48
--- /dev/null
+++ b/examples/gui/rhiwindow/rhiwindow.py
@@ -0,0 +1,420 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import numpy
+import sys
+
+from PySide6.QtCore import (QEvent, QFile, QIODevice, QPointF, QRectF, QSize,
+ qFatal, qWarning, Qt)
+from PySide6.QtGui import (QColor, QFont, QGradient, QImage, QMatrix4x4,
+ QPainter, QPlatformSurfaceEvent, QSurface, QWindow)
+from PySide6.QtGui import (QRhi, QRhiBuffer,
+ QRhiDepthStencilClearValue,
+ QRhiGraphicsPipeline, QRhiNullInitParams,
+ QRhiGles2InitParams, QRhiRenderBuffer,
+ QRhiSampler, QRhiShaderResourceBinding,
+ QRhiShaderStage, QRhiTexture,
+ QRhiVertexInputAttribute, QRhiVertexInputBinding,
+ QRhiVertexInputLayout, QRhiViewport,
+ QShader)
+from PySide6.support import VoidPtr
+
+if sys.platform == "win32":
+ from PySide6.QtGui import QRhiD3D11InitParams, QRhiD3D12InitParams
+elif sys.platform == "darwin":
+ from PySide6.QtGui import QRhiMetalInitParams
+
+
+# Y up (note clipSpaceCorrMatrix in m_viewProjection), CCW
+VERTEX_DATA = numpy.array([
+ 0.0, 0.5, 1.0, 0.0, 0.0,
+ -0.5, -0.5, 0.0, 1.0, 0.0,
+ 0.5, -0.5, 0.0, 0.0, 1.0], dtype=numpy.float32)
+
+
+UBUF_SIZE = 68
+
+
+def getShader(name):
+ f = QFile(name)
+ if f.open(QIODevice.ReadOnly):
+ result = QShader.fromSerialized(f.readAll())
+ f.close()
+ return result
+ return QShader()
+
+
+class RhiWindow(QWindow):
+
+ def __init__(self, graphicsApi):
+ super().__init__()
+ self.m_graphicsApi = QRhi.Null
+ self.m_initialized = False
+ self.m_notExposed = False
+ self.m_newlyExposed = False
+
+ self.m_fallbackSurface = None
+ self.m_rhi = None
+ self.m_sc = None
+ self.m_ds = None
+ self.m_rp = None
+ self.m_hasSwapChain = False
+ self.m_viewProjection = QMatrix4x4()
+
+ self.m_graphicsApi = graphicsApi
+
+ if graphicsApi == QRhi.OpenGLES2:
+ self.setSurfaceType(QSurface.SurfaceType.OpenGLSurface)
+ elif graphicsApi == QRhi.Vulkan:
+ self.setSurfaceType(QSurface.SurfaceType.VulkanSurface)
+ elif graphicsApi == QRhi.D3D11 or graphicsApi == QRhi.D3D12:
+ self.setSurfaceType(QSurface.SurfaceType.Direct3DSurface)
+ elif graphicsApi == QRhi.Metal:
+ self.setSurfaceType(QSurface.SurfaceType.MetalSurface)
+ elif graphicsApi == QRhi.Null:
+ pass # RasterSurface
+
+ def __del__(self):
+ # destruction order matters to a certain degree: the fallbackSurface
+ # must outlive the rhi, the rhi must outlive all other resources.
+ # The resources need no special order when destroying.
+ del self.m_rp
+ self.m_rp = None
+ del self.m_ds
+ self.m_ds = None
+ del self.m_sc
+ self.m_sc = None
+ del self.m_rhi
+ self.m_rhi = None
+ if self.m_fallbackSurface:
+ del self.m_fallbackSurface
+ self.m_fallbackSurface = None
+
+ def graphicsApiName(self):
+ if self.m_graphicsApi == QRhi.Null:
+ return "Null (no output)"
+ if self.m_graphicsApi == QRhi.OpenGLES2:
+ return "OpenGL"
+ if self.m_graphicsApi == QRhi.Vulkan:
+ return "Vulkan"
+ if self.m_graphicsApi == QRhi.D3D11:
+ return "Direct3D 11"
+ if self.m_graphicsApi == QRhi.D3D12:
+ return "Direct3D 12"
+ if self.m_graphicsApi == QRhi.Metal:
+ return "Metal"
+ return ""
+
+ def customInit(self):
+ pass
+
+ def customRender(self):
+ pass
+
+ def exposeEvent(self, e):
+ # initialize and start rendering when the window becomes usable
+ # for graphics purposes
+ is_exposed = self.isExposed()
+ if is_exposed and not self.m_initialized:
+ self.init()
+ self.resizeSwapChain()
+ self.m_initialized = True
+
+ surfaceSize = self.m_sc.surfacePixelSize() if self.m_hasSwapChain else QSize()
+
+ # stop pushing frames when not exposed (or size is 0)
+ if ((not is_exposed or (self.m_hasSwapChain and surfaceSize.isEmpty()))
+ and self.m_initialized and not self.m_notExposed):
+ self.m_notExposed = True
+
+ # Continue when exposed again and the surface has a valid size. Note
+ # that surfaceSize can be (0, 0) even though size() reports a valid
+ # one, hence trusting surfacePixelSize() and not QWindow.
+ if is_exposed and self.m_initialized and self.m_notExposed and not surfaceSize.isEmpty():
+ self.m_notExposed = False
+ self.m_newlyExposed = True
+
+ # always render a frame on exposeEvent() (when exposed) in order to
+ # update immediately on window resize.
+ if is_exposed and not surfaceSize.isEmpty():
+ self.render()
+
+ def event(self, e):
+ if e.type() == QEvent.UpdateRequest:
+ self.render()
+ elif e.type() == QEvent.PlatformSurface:
+ # this is the proper time to tear down the swapchain (while
+ # the native window and surface are still around)
+ if e.surfaceEventType() == QPlatformSurfaceEvent.SurfaceAboutToBeDestroyed:
+ self.releaseSwapChain()
+
+ return super().event(e)
+
+ def init(self):
+ if self.m_graphicsApi == QRhi.Null:
+ params = QRhiNullInitParams()
+ self.m_rhi = QRhi.create(QRhi.Null, params)
+
+ if self.m_graphicsApi == QRhi.OpenGLES2:
+ self.m_fallbackSurface = QRhiGles2InitParams.newFallbackSurface()
+ params = QRhiGles2InitParams()
+ params.fallbackSurface = self.m_fallbackSurface
+ params.window = self
+ self.m_rhi = QRhi.create(QRhi.OpenGLES2, params)
+ elif self.m_graphicsApi == QRhi.D3D11:
+ params = QRhiD3D11InitParams()
+ # Enable the debug layer, if available. This is optional
+ # and should be avoided in production builds.
+ params.enableDebugLayer = True
+ self.m_rhi = QRhi.create(QRhi.D3D11, params)
+ elif self.m_graphicsApi == QRhi.D3D12:
+ params = QRhiD3D12InitParams()
+ # Enable the debug layer, if available. This is optional
+ # and should be avoided in production builds.
+ params.enableDebugLayer = True
+ self.m_rhi = QRhi.create(QRhi.D3D12, params)
+ elif self.m_graphicsApi == QRhi.Metal:
+ params = QRhiMetalInitParams()
+ self.m_rhi.reset(QRhi.create(QRhi.Metal, params))
+
+ if not self.m_rhi:
+ qFatal("Failed to create RHI backend")
+
+ self.m_sc = self.m_rhi.newSwapChain()
+ # no need to set the size here, due to UsedWithSwapChainOnly
+ self.m_ds = self.m_rhi.newRenderBuffer(QRhiRenderBuffer.DepthStencil,
+ QSize(), 1,
+ QRhiRenderBuffer.UsedWithSwapChainOnly)
+ self.m_sc.setWindow(self)
+ self.m_sc.setDepthStencil(self.m_ds)
+ self.m_rp = self.m_sc.newCompatibleRenderPassDescriptor()
+ self.m_sc.setRenderPassDescriptor(self.m_rp)
+ self.customInit()
+
+ def resizeSwapChain(self):
+ self.m_hasSwapChain = self.m_sc.createOrResize() # also handles self.m_ds
+ outputSize = self.m_sc.currentPixelSize()
+ self.m_viewProjection = self.m_rhi.clipSpaceCorrMatrix()
+ r = float(outputSize.width()) / float(outputSize.height())
+ self.m_viewProjection.perspective(45.0, r, 0.01, 1000.0)
+ self.m_viewProjection.translate(0, 0, -4)
+
+ def releaseSwapChain(self):
+ if self.m_hasSwapChain:
+ self.m_hasSwapChain = False
+ self.m_sc.destroy()
+
+ def render(self):
+ if not self.m_hasSwapChain or self.m_notExposed:
+ return
+
+ # If the window got resized or newly exposed, resize the swapchain.
+ # (the newly-exposed case is not actually required by some platforms,
+ # but is here for robustness and portability)
+ #
+ # This (exposeEvent + the logic here) is the only safe way to perform
+ # resize handling. Note the usage of the RHI's surfacePixelSize(), and
+ # never QWindow::size(). (the two may or may not be the same under the
+ # hood, # depending on the backend and platform)
+ if self.m_sc.currentPixelSize() != self.m_sc.surfacePixelSize() or self.m_newlyExposed:
+ self.resizeSwapChain()
+ if not self.m_hasSwapChain:
+ return
+ self.m_newlyExposed = False
+
+ result = self.m_rhi.beginFrame(self.m_sc)
+ if result == QRhi.FrameOpSwapChainOutOfDate:
+ self.resizeSwapChain()
+ if not self.m_hasSwapChain:
+ return
+ result = self.m_rhi.beginFrame(self.m_sc)
+
+ if result != QRhi.FrameOpSuccess:
+ qWarning(f"beginFrame failed with {result}, will retry")
+ self.requestUpdate()
+ return
+
+ self.customRender()
+
+ self.m_rhi.endFrame(self.m_sc)
+
+ # Always request the next frame via requestUpdate(). On some platforms
+ # this is backed by a platform-specific solution, e.g. CVDisplayLink
+ # on macOS, which is potentially more efficient than a timer,
+ # queued metacalls, etc.
+ self.requestUpdate()
+
+
+class HelloWindow(RhiWindow):
+
+ def __init__(self, graphicsApi):
+ super().__init__(graphicsApi)
+ self.m_vbuf = None
+ self.m_ubuf = None
+ self.m_texture = None
+ self.m_sampler = None
+ self.m_colorTriSrb = None
+ self.m_colorPipeline = None
+ self.m_fullscreenQuadSrb = None
+ self.m_fullscreenQuadPipeline = None
+ self.m_initialUpdates = None
+
+ self.m_rotation = 0
+ self.m_opacity = 1
+ self.m_opacityDir = -1
+
+ def ensureFullscreenTexture(self, pixelSize, u):
+ if self.m_texture and self.m_texture.pixelSize() == pixelSize:
+ return
+
+ if not self.m_texture:
+ self.m_texture = self.m_rhi.newTexture(QRhiTexture.RGBA8, pixelSize)
+ else:
+ self.m_texture.setPixelSize(pixelSize)
+ self.m_texture.create()
+ image = QImage(pixelSize, QImage.Format_RGBA8888_Premultiplied)
+ with QPainter(image) as painter:
+ painter.fillRect(QRectF(QPointF(0, 0), pixelSize),
+ QColor.fromRgbF(0.4, 0.7, 0.0, 1.0))
+ painter.setPen(Qt.transparent)
+ painter.setBrush(QGradient(QGradient.DeepBlue))
+ painter.drawRoundedRect(QRectF(QPointF(20, 20), pixelSize - QSize(40, 40)),
+ 16, 16)
+ painter.setPen(Qt.black)
+ font = QFont()
+ font.setPixelSize(0.05 * min(pixelSize.width(), pixelSize.height()))
+ painter.setFont(font)
+ name = self.graphicsApiName()
+ t = (f"Rendering with QRhi to a resizable QWindow.\nThe 3D API is {name}."
+ "\nUse the command-line options to choose a different API.")
+ painter.drawText(QRectF(QPointF(60, 60), pixelSize - QSize(120, 120)), 0, t)
+
+ if self.m_rhi.isYUpInNDC():
+ image = image.mirrored()
+
+ u.uploadTexture(self.m_texture, image)
+
+ def customInit(self):
+ self.m_initialUpdates = self.m_rhi.nextResourceUpdateBatch()
+
+ vertex_size = 4 * VERTEX_DATA.size
+ self.m_vbuf = self.m_rhi.newBuffer(QRhiBuffer.Immutable, QRhiBuffer.VertexBuffer,
+ vertex_size)
+ self.m_vbuf.create()
+ self.m_initialUpdates.uploadStaticBuffer(self.m_vbuf,
+ VoidPtr(VERTEX_DATA.tobytes(), vertex_size))
+
+ self.m_ubuf = self.m_rhi.newBuffer(QRhiBuffer.Dynamic,
+ QRhiBuffer.UniformBuffer, UBUF_SIZE)
+ self.m_ubuf.create()
+
+ self.ensureFullscreenTexture(self.m_sc.surfacePixelSize(), self.m_initialUpdates)
+
+ self.m_sampler = self.m_rhi.newSampler(QRhiSampler.Linear, QRhiSampler.Linear,
+ QRhiSampler.None_,
+ QRhiSampler.ClampToEdge, QRhiSampler.ClampToEdge)
+ self.m_sampler.create()
+
+ self.m_colorTriSrb = self.m_rhi.newShaderResourceBindings()
+ visibility = (QRhiShaderResourceBinding.VertexStage
+ | QRhiShaderResourceBinding.FragmentStage)
+ bindings = [
+ QRhiShaderResourceBinding.uniformBuffer(0, visibility, self.m_ubuf)
+ ]
+ self.m_colorTriSrb.setBindings(bindings)
+ self.m_colorTriSrb.create()
+
+ self.m_colorPipeline = self.m_rhi.newGraphicsPipeline()
+ # Enable depth testing; not quite needed for a simple triangle, but we
+ # have a depth-stencil buffer so why not.
+ self.m_colorPipeline.setDepthTest(True)
+ self.m_colorPipeline.setDepthWrite(True)
+ # Blend factors default to One, OneOneMinusSrcAlpha, which is convenient.
+ premulAlphaBlend = QRhiGraphicsPipeline.TargetBlend()
+ premulAlphaBlend.enable = True
+ self.m_colorPipeline.setTargetBlends([premulAlphaBlend])
+ stages = [
+ QRhiShaderStage(QRhiShaderStage.Vertex, getShader(":/color.vert.qsb")),
+ QRhiShaderStage(QRhiShaderStage.Fragment, getShader(":/color.frag.qsb"))
+ ]
+ self.m_colorPipeline.setShaderStages(stages)
+ inputLayout = QRhiVertexInputLayout()
+ input_bindings = [QRhiVertexInputBinding(5 * 4)] # sizeof(float)
+ inputLayout.setBindings(input_bindings)
+ attributes = [
+ QRhiVertexInputAttribute(0, 0, QRhiVertexInputAttribute.Float2, 0),
+ QRhiVertexInputAttribute(0, 1, QRhiVertexInputAttribute.Float3, 2 * 4)] # sizeof(float)
+ inputLayout.setAttributes(attributes)
+ self.m_colorPipeline.setVertexInputLayout(inputLayout)
+ self.m_colorPipeline.setShaderResourceBindings(self.m_colorTriSrb)
+ self.m_colorPipeline.setRenderPassDescriptor(self.m_rp)
+ self.m_colorPipeline.create()
+
+ self.m_fullscreenQuadSrb = self.m_rhi.newShaderResourceBindings()
+ bindings = [
+ QRhiShaderResourceBinding.sampledTexture(0, QRhiShaderResourceBinding.FragmentStage,
+ self.m_texture, self.m_sampler)
+ ]
+ self.m_fullscreenQuadSrb.setBindings(bindings)
+ self.m_fullscreenQuadSrb.create()
+
+ self.m_fullscreenQuadPipeline = self.m_rhi.newGraphicsPipeline()
+ stages = [
+ QRhiShaderStage(QRhiShaderStage.Vertex, getShader(":/quad.vert.qsb")),
+ QRhiShaderStage(QRhiShaderStage.Fragment, getShader(":/quad.frag.qsb"))
+ ]
+ self.m_fullscreenQuadPipeline.setShaderStages(stages)
+ layout = QRhiVertexInputLayout()
+ self.m_fullscreenQuadPipeline.setVertexInputLayout(layout)
+ self.m_fullscreenQuadPipeline.setShaderResourceBindings(self.m_fullscreenQuadSrb)
+ self.m_fullscreenQuadPipeline.setRenderPassDescriptor(self.m_rp)
+ self.m_fullscreenQuadPipeline.create()
+
+ def customRender(self):
+ resourceUpdates = self.m_rhi.nextResourceUpdateBatch()
+
+ if self.m_initialUpdates:
+ resourceUpdates.merge(self.m_initialUpdates)
+ self.m_initialUpdates = None
+
+ self.m_rotation += 1.0
+ modelViewProjection = self.m_viewProjection
+ modelViewProjection.rotate(self.m_rotation, 0, 1, 0)
+ projection = numpy.array(modelViewProjection.data(),
+ dtype=numpy.float32)
+ resourceUpdates.updateDynamicBuffer(self.m_ubuf, 0, 64,
+ projection.tobytes())
+
+ self.m_opacity += self.m_opacityDir * 0.005
+ if self.m_opacity < 0.0 or self.m_opacity > 1.0:
+ self.m_opacityDir *= -1
+ self.m_opacity = max(0.0, min(1.0, self.m_opacity))
+
+ opacity = numpy.array([self.m_opacity], dtype=numpy.float32)
+ resourceUpdates.updateDynamicBuffer(self.m_ubuf, 64, 4,
+ opacity.tobytes())
+
+ cb = self.m_sc.currentFrameCommandBuffer()
+ outputSizeInPixels = self.m_sc.currentPixelSize()
+
+ # (re)create the texture with a size matching the output surface size,
+ # when necessary.
+ self.ensureFullscreenTexture(outputSizeInPixels, resourceUpdates)
+
+ cv = QRhiDepthStencilClearValue(1.0, 0)
+ cb.beginPass(self.m_sc.currentFrameRenderTarget(), Qt.black,
+ cv, resourceUpdates)
+
+ cb.setGraphicsPipeline(self.m_fullscreenQuadPipeline)
+ viewport = QRhiViewport(0, 0, outputSizeInPixels.width(),
+ outputSizeInPixels.height())
+ cb.setViewport(viewport)
+ cb.setShaderResources()
+ cb.draw(3)
+
+ cb.setGraphicsPipeline(self.m_colorPipeline)
+ cb.setShaderResources()
+ vbufBinding = (self.m_vbuf, 0)
+ cb.setVertexInput(0, [vbufBinding])
+ cb.draw(3)
+ cb.endPass()
diff --git a/examples/gui/rhiwindow/rhiwindow.pyproject b/examples/gui/rhiwindow/rhiwindow.pyproject
new file mode 100644
index 000000000..a807b49bf
--- /dev/null
+++ b/examples/gui/rhiwindow/rhiwindow.pyproject
@@ -0,0 +1,5 @@
+{
+ "files": ["main.py", "rhiwindow.py", "rhiwindow.qrc",
+ "shaders/color.frag", "shaders/color.vert",
+ "shaders/quad.frag", "shaders/quad.vert"]
+}
diff --git a/examples/gui/rhiwindow/rhiwindow.qrc b/examples/gui/rhiwindow/rhiwindow.qrc
new file mode 100644
index 000000000..1009ec5dd
--- /dev/null
+++ b/examples/gui/rhiwindow/rhiwindow.qrc
@@ -0,0 +1,8 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file alias="color.vert.qsb">shaders/prebuilt/color.vert.qsb</file>
+ <file alias="color.frag.qsb">shaders/prebuilt/color.frag.qsb</file>
+ <file alias="quad.vert.qsb">shaders/prebuilt/quad.vert.qsb</file>
+ <file alias="quad.frag.qsb">shaders/prebuilt/quad.frag.qsb</file>
+</qresource>
+</RCC>
diff --git a/examples/gui/rhiwindow/shaders/color.frag b/examples/gui/rhiwindow/shaders/color.frag
new file mode 100644
index 000000000..6e0a3bc91
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/color.frag
@@ -0,0 +1,15 @@
+#version 440
+
+layout(location = 0) in vec3 v_color;
+
+layout(location = 0) out vec4 fragColor;
+
+layout(std140, binding = 0) uniform buf {
+ mat4 mvp;
+ float opacity;
+};
+
+void main()
+{
+ fragColor = vec4(v_color * opacity, opacity);
+}
diff --git a/examples/gui/rhiwindow/shaders/color.vert b/examples/gui/rhiwindow/shaders/color.vert
new file mode 100644
index 000000000..70852ab86
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/color.vert
@@ -0,0 +1,17 @@
+#version 440
+
+layout(location = 0) in vec4 position;
+layout(location = 1) in vec3 color;
+
+layout(location = 0) out vec3 v_color;
+
+layout(std140, binding = 0) uniform buf {
+ mat4 mvp;
+ float opacity;
+};
+
+void main()
+{
+ v_color = color;
+ gl_Position = mvp * position;
+}
diff --git a/examples/gui/rhiwindow/shaders/prebuilt/color.frag.qsb b/examples/gui/rhiwindow/shaders/prebuilt/color.frag.qsb
new file mode 100644
index 000000000..b4db470e5
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/prebuilt/color.frag.qsb
Binary files differ
diff --git a/examples/gui/rhiwindow/shaders/prebuilt/color.vert.qsb b/examples/gui/rhiwindow/shaders/prebuilt/color.vert.qsb
new file mode 100644
index 000000000..ab046b77f
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/prebuilt/color.vert.qsb
Binary files differ
diff --git a/examples/gui/rhiwindow/shaders/prebuilt/quad.frag.qsb b/examples/gui/rhiwindow/shaders/prebuilt/quad.frag.qsb
new file mode 100644
index 000000000..c2ea3cf25
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/prebuilt/quad.frag.qsb
Binary files differ
diff --git a/examples/gui/rhiwindow/shaders/prebuilt/quad.vert.qsb b/examples/gui/rhiwindow/shaders/prebuilt/quad.vert.qsb
new file mode 100644
index 000000000..f0b64f750
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/prebuilt/quad.vert.qsb
Binary files differ
diff --git a/examples/gui/rhiwindow/shaders/quad.frag b/examples/gui/rhiwindow/shaders/quad.frag
new file mode 100644
index 000000000..65882a429
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/quad.frag
@@ -0,0 +1,11 @@
+#version 440
+
+layout(location = 0) in vec2 v_uv;
+layout(location = 0) out vec4 fragColor;
+layout(binding = 0) uniform sampler2D tex;
+
+void main()
+{
+ vec4 c = texture(tex, v_uv);
+ fragColor = vec4(c.rgb * c.a, c.a);
+}
diff --git a/examples/gui/rhiwindow/shaders/quad.vert b/examples/gui/rhiwindow/shaders/quad.vert
new file mode 100644
index 000000000..359896d08
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/quad.vert
@@ -0,0 +1,10 @@
+#version 440
+
+layout (location = 0) out vec2 v_uv;
+
+void main()
+{
+ // https://www.saschawillems.de/blog/2016/08/13/vulkan-tutorial-on-rendering-a-fullscreen-quad-without-buffers/
+ v_uv = vec2((gl_VertexIndex << 1) & 2, gl_VertexIndex & 2);
+ gl_Position = vec4(v_uv * 2.0 - 1.0, 0.0, 1.0);
+}
diff --git a/examples/installer_test/hello.py b/examples/installer_test/hello.py
index a9819477b..3921b5d51 100644
--- a/examples/installer_test/hello.py
+++ b/examples/installer_test/hello.py
@@ -31,7 +31,7 @@ class MyWidget(QWidget):
super().__init__()
self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
- "Hola Mundo", "Привет мир"]
+ "Hola Mundo", "Привет мир"]
self.button = QPushButton("Click me!")
self.text = QLabel(f"Hello World auto_quit={auto_quit}")
diff --git a/examples/location/mapviewer/MapViewer/Main.qml b/examples/location/mapviewer/MapViewer/Main.qml
new file mode 100644
index 000000000..f4ae7ea04
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/Main.qml
@@ -0,0 +1,460 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtLocation
+import QtPositioning
+import MapViewer
+
+ApplicationWindow {
+ id: appWindow
+ property variant mapview
+ property variant minimap
+ property variant plugin
+ property variant parameters
+
+ //defaults
+ //! [routecoordinate]
+ property variant fromCoordinate: QtPositioning.coordinate(59.9483, 10.7695)
+ property variant toCoordinate: QtPositioning.coordinate(59.9645, 10.671)
+ //! [routecoordinate]
+
+ function createMap(provider)
+ {
+ if (parameters && parameters.length>0)
+ plugin = Qt.createQmlObject ('import QtLocation; Plugin{ name:"' + provider + '"; parameters: appWindow.parameters}', appWindow)
+ else
+ plugin = Qt.createQmlObject ('import QtLocation; Plugin{ name:"' + provider + '"}', appWindow)
+
+ if (minimap) {
+ minimap.destroy()
+ minimap = null
+ }
+
+ var zoomLevel = null
+ var tilt = null
+ var bearing = null
+ var fov = null
+ var center = null
+ var panelExpanded = null
+ if (mapview) {
+ zoomLevel = mapview.zoomLevel
+ tilt = mapview.tilt
+ bearing = mapview.bearing
+ fov = mapview.fieldOfView
+ center = mapview.center
+ panelExpanded = mapview.slidersExpanded
+ mapview.destroy()
+ }
+ mapview = mapComponent.createObject(page);
+ mapview.map.plugin = plugin;
+
+ if (zoomLevel != null) {
+ mapview.map.tilt = tilt
+ mapview.map.bearing = bearing
+ mapview.map.fieldOfView = fov
+ mapview.map.zoomLevel = zoomLevel
+ mapview.map.center = center
+ mapview.map.slidersExpanded = panelExpanded
+ } else {
+ // Use an integer ZL to enable nearest interpolation, if possible.
+ mapview.map.zoomLevel = Math.floor((mapview.map.maximumZoomLevel - mapview.map.minimumZoomLevel)/2)
+ // defaulting to 45 degrees, if possible.
+ mapview.map.fieldOfView = Math.min(Math.max(45.0, mapview.map.minimumFieldOfView), mapview.maximumFieldOfView)
+ }
+
+ mapview.forceActiveFocus()
+ }
+
+ function getPlugins()
+ {
+ var plugin = Qt.createQmlObject ('import QtLocation; Plugin {}', appWindow)
+ var myArray = new Array()
+ for (var i = 0; i<plugin.availableServiceProviders.length; i++) {
+ var tempPlugin = Qt.createQmlObject ('import QtLocation; Plugin {name: "' + plugin.availableServiceProviders[i]+ '"}', appWindow)
+ if (tempPlugin.supportsMapping())
+ myArray.push(tempPlugin.name)
+ }
+ myArray.sort()
+ return myArray
+ }
+
+ function initializeProviders(pluginParameters)
+ {
+ var parameters = new Array()
+ for (var prop in pluginParameters){
+ var parameter = Qt.createQmlObject('import QtLocation; PluginParameter{ name: "'+ prop + '"; value: "' + pluginParameters[prop]+'"}',appWindow)
+ parameters.push(parameter)
+ }
+ appWindow.parameters = parameters
+ var plugins = getPlugins()
+ mainMenu.providerMenu.createMenu(plugins)
+ for (var i = 0; i<plugins.length; i++) {
+ if (plugins[i] === "osm")
+ mainMenu.selectProvider(plugins[i])
+ }
+ }
+
+ title: qsTr("Mapviewer")
+ height: 640
+ width: 360
+ visible: true
+ menuBar: mainMenu
+
+ //! [geocode0]
+ Address {
+ id :fromAddress
+ street: "Sandakerveien 116"
+ city: "Oslo"
+ country: "Norway"
+ state : ""
+ postalCode: "0484"
+ }
+ //! [geocode0]
+
+ Address {
+ id: toAddress
+ street: "Holmenkollveien 140"
+ city: "Oslo"
+ country: "Norway"
+ postalCode: "0791"
+ }
+
+ MainMenu {
+ id: mainMenu
+ plugin: appWindow.plugin
+
+ function toggleMiniMapState()
+ {
+ console.log("MiniMap with " + plugin)
+ if (minimap) {
+ minimap.destroy()
+ minimap = null
+ } else {
+ minimap = Qt.createQmlObject ('import "map"; MiniMap{ z: mapview.z + 2 }', mapview)
+ }
+ }
+
+ function setLanguage(lang)
+ {
+ mapview.map.plugin.locales = lang;
+ stackView.pop(page)
+ }
+
+ onSelectProvider: (providerName) => {
+ stackView.pop()
+ for (var i = 0; i < providerMenu.count; i++) {
+ providerMenu.actionAt(i).checked = providerMenu.actionAt(i).text === providerName
+ }
+
+ createMap(providerName)
+ if (mapview.error === mapview.NoError) {
+ selectMapType(mapview.map.activeMapType)
+ } else {
+ mainMenu.clearMenu(mapTypeMenu)
+ }
+ }
+
+ onSelectMapType: (mapType) => {
+ stackView.pop(page)
+ for (var i = 0; i < mapTypeMenu.count; i++) {
+ mapTypeMenu.actionAt(i).checked = mapTypeMenu.actionAt(i).text === mapType.name
+ }
+ mapview.map.activeMapType = mapType
+ }
+
+
+ onSelectTool: (tool) => {
+ switch (tool) {
+ case "AddressRoute":
+ stackView.pop({item:page, immediate: true})
+ stackView.push("forms/RouteAddress.qml" ,
+ { "plugin": mapview.map.plugin,
+ "toAddress": toAddress,
+ "fromAddress": fromAddress})
+ stackView.currentItem.showRoute.connect(mapview.calculateCoordinateRoute)
+ stackView.currentItem.showMessage.connect(stackView.showMessage)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ break
+ case "CoordinateRoute":
+ stackView.pop({item:page, immediate: true})
+ stackView.push("forms/RouteCoordinate.qml" ,
+ { "toCoordinate": toCoordinate,
+ "fromCoordinate": fromCoordinate})
+ stackView.currentItem.showRoute.connect(mapview.calculateCoordinateRoute)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ break
+ case "Geocode":
+ stackView.pop({item:page, immediate: true})
+ stackView.push("forms/Geocode.qml",
+ { "address": fromAddress})
+ stackView.currentItem.showPlace.connect(mapview.geocode)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ break
+ case "RevGeocode":
+ stackView.pop({item:page, immediate: true})
+ stackView.push("forms/ReverseGeocode.qml",
+ { "coordinate": fromCoordinate })
+ stackView.currentItem.showPlace.connect(mapview.geocode)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ break
+ case "Language":
+ stackView.pop({item:page, immediate: true})
+ stackView.push("forms/Locale.qml",
+ { "locale": mapview.map.plugin.locales[0]})
+ stackView.currentItem.selectLanguage.connect(setLanguage)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ break
+ case "Clear":
+ mapview.map.clearData()
+ break
+ case "Prefetch":
+ mapview.map.prefetchData()
+ break
+ default:
+ console.log("Unsupported operation")
+ }
+ }
+
+ onToggleMapState: (state) => {
+ stackView.pop(page)
+ switch (state) {
+ case "FollowMe":
+ mapview.followme = !mapview.followme
+ break
+ case "MiniMap":
+ toggleMiniMapState()
+ isMiniMap = minimap
+ break
+ default:
+ console.log("Unsupported operation")
+ }
+ }
+ }
+
+ MapPopupMenu {
+ id: mapPopupMenu
+
+ function show(coordinate)
+ {
+ stackView.pop(page)
+ mapPopupMenu.coordinate = coordinate
+ mapPopupMenu.markersCount = mapview.markers.length
+ mapPopupMenu.mapItemsCount = mapview.mapItems.length
+ mapPopupMenu.popup()
+ }
+
+ onItemClicked: (item) => {
+ stackView.pop(page)
+ switch (item) {
+ case "addMarker":
+ mapview.addMarker()
+ break
+ case "getCoordinate":
+ mapview.coordinatesCaptured(coordinate.latitude, coordinate.longitude)
+ break
+ case "fitViewport":
+ mapview.map.fitViewportToMapItems()
+ break
+ case "deleteMarkers":
+ mapview.deleteMarkers()
+ break
+ default:
+ console.log("Unsupported operation:", item)
+ }
+ }
+ }
+
+ MarkerPopupMenu {
+ id: markerPopupMenu
+
+ function show(coordinate)
+ {
+ stackView.pop(page)
+ markerPopupMenu.markersCount = mapview.markers.length
+ markerPopupMenu.currentMarker = mapview.currentMarker
+ markerPopupMenu.popup()
+ }
+
+ function askForCoordinate()
+ {
+ stackView.push("forms/ReverseGeocode.qml",
+ { "title": qsTr("New Coordinate"),
+ "coordinate": mapview.markers[mapview.currentMarker].coordinate})
+ stackView.currentItem.showPlace.connect(moveMarker)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ }
+
+ function moveMarker(coordinate)
+ {
+ mapview.markers[mapview.currentMarker].coordinate = coordinate;
+ mapview.map.center = coordinate;
+ stackView.pop(page)
+ }
+
+ onItemClicked: (item) => {
+ stackView.pop(page)
+ switch (item) {
+ case "deleteMarker":
+ mapview.deleteMarker(mapview.currentMarker)
+ break;
+ case "getMarkerCoordinate":
+ mapview.coordinatesCaptured(mapview.markers[mapview.currentMarker].coordinate.latitude,
+ mapview.markers[mapview.currentMarker].coordinate.longitude)
+ break;
+ case "moveMarkerTo":
+ askForCoordinate()
+ break;
+ case "routeToNextPoint":
+ case "routeToNextPoints":
+ mapview.calculateMarkerRoute()
+ break
+ case "distanceToNextPoint":
+ var coordinate1 = mapview.markers[mapview.currentMarker].coordinate;
+ var coordinate2 = mapview.markers[mapview.currentMarker+1].coordinate;
+ var distance = Helper.formatDistance(coordinate1.distanceTo(coordinate2));
+ stackView.showMessage(qsTr("Distance"),"<b>" + qsTr("Distance:") + "</b> " + distance)
+ break
+ default:
+ console.log("Unsupported operation:", item)
+ }
+ }
+ }
+
+ ItemPopupMenu {
+ id: itemPopupMenu
+
+ function show(type,coordinate)
+ {
+ stackView.pop(page)
+ itemPopupMenu.type = type
+ itemPopupMenu.popup()
+ }
+
+ onItemClicked: {
+ stackView.pop(page)
+ switch (item) {
+ case "showRouteInfo":
+ stackView.showRouteListPage()
+ break;
+ case "deleteRoute":
+ mapview.routeModel.reset();
+ break;
+ case "showPointInfo":
+ mapview.showGeocodeInfo()
+ break;
+ case "deletePoint":
+ geocodeModel.reset()
+ break;
+ default:
+ console.log("Unsupported operation")
+ }
+ }
+ }
+
+ StackView {
+ id: stackView
+ anchors.fill: parent
+ focus: true
+ initialItem: Item {
+ id: page
+
+ Text {
+ visible: !supportsSsl && map && mapview.activeMapType && activeMapType.metadata.isHTTPS
+ text: "The active map type\n
+requires (missing) SSL\n
+support"
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: appWindow.width / 12
+ font.bold: true
+ color: "grey"
+ anchors.centerIn: parent
+ z: 12
+ }
+ }
+
+ function showMessage(title,message,backPage)
+ {
+ push("forms/Message.qml",
+ {
+ "title" : title,
+ "message" : message,
+ "backPage" : backPage
+ })
+ currentItem.closeForm.connect(closeMessage)
+ }
+
+ function closeMessage(backPage)
+ {
+ pop(backPage)
+ }
+
+ function closeForm()
+ {
+ pop(page)
+ }
+
+ function showRouteListPage()
+ {
+ push("forms/RouteList.qml",
+ {
+ "routeModel" : mapview.routeModel
+ })
+ currentItem.closeForm.connect(closeForm)
+ }
+ }
+
+ Component {
+ id: mapComponent
+
+ MapComponent {
+ width: page.width
+ height: page.height
+ onFollowmeChanged: mainMenu.isFollowMe = followme
+ map.onSupportedMapTypesChanged: mainMenu.mapTypeMenu.createMenu(map)
+ onCoordinatesCaptured: (latitude, longitude) => {
+ var text = "<b>" + qsTr("Latitude:") + "</b> " + Helper.roundNumber(latitude,4) + "<br/><b>" + qsTr("Longitude:") + "</b> " + Helper.roundNumber(longitude,4)
+ stackView.showMessage(qsTr("Coordinates"),text);
+ }
+ onGeocodeFinished:{
+ if (geocodeModel.status == GeocodeModel.Ready) {
+ if (geocodeModel.count == 0) {
+ stackView.showMessage(qsTr("Geocode Error"),qsTr("Unsuccessful geocode"))
+ } else if (geocodeModel.count > 1) {
+ stackView.showMessage(qsTr("Ambiguous geocode"), geocodeModel.count + " " +
+ qsTr("results found for the given address, please specify location"))
+ } else {
+ stackView.showMessage(qsTr("Location"), geocodeMessage(),page)
+ }
+ } else if (geocodeModel.status == GeocodeModel.Error) {
+ stackView.showMessage(qsTr("Geocode Error"),qsTr("Unsuccessful geocode"))
+ }
+ }
+ onRouteError: stackView.showMessage(qsTr("Route Error"),qsTr("Unable to find a route for the given points"),page)
+
+ onShowGeocodeInfo: stackView.showMessage(qsTr("Location"),geocodeMessage(),page)
+
+ map.onErrorChanged: {
+ if (map.error != mapview.NoError) {
+ var title = qsTr("ProviderError")
+ var message = mapview.errorString + "<br/><br/><b>" + qsTr("Try to select other provider") + "</b>"
+ if (map.error == mapview.MissingRequiredParameterError)
+ message += "<br/>" + qsTr("or see") + " \'mapviewer --help\' "
+ + qsTr("how to pass plugin parameters.")
+ stackView.showMessage(title,message);
+ }
+ }
+ onShowMainMenu: (coordinate) => mapPopupMenu.show(coordinate)
+ onShowMarkerMenu: (coordinate) => markerPopupMenu.show(coordinate)
+ onShowRouteMenu: (coordinate) => itemPopupMenu.show("Route",coordinate)
+ onShowPointMenu: (coordinate) => itemPopupMenu.show("Point",coordinate)
+ onShowRouteList: stackView.showRouteListPage()
+
+ TapHandler {
+ onTapped: {
+ }
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/Geocode.qml b/examples/location/mapviewer/MapViewer/forms/Geocode.qml
new file mode 100644
index 000000000..885357dd3
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/Geocode.qml
@@ -0,0 +1,42 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtPositioning
+
+GeocodeForm {
+
+ property variant address
+ signal showPlace(variant address)
+ signal closeForm()
+
+ goButton.onClicked: {
+ // fill out the Address element
+ address.street = street.text
+ address.city = city.text
+ address.state = stateName.text
+ address.country = country.text
+ address.postalCode = postalCode.text
+ showPlace(address)
+ }
+
+ clearButton.onClicked: {
+ street.text = ""
+ city.text = ""
+ stateName.text = ""
+ country.text = ""
+ postalCode.text = ""
+ }
+
+ cancelButton.onClicked: {
+ closeForm()
+ }
+
+ Component.onCompleted: {
+ street.text = address.street
+ city.text = address.city
+ stateName.text = address.state
+ country.text = address.country
+ postalCode.text = address.postalCode
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/GeocodeForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/GeocodeForm.ui.qml
new file mode 100644
index 000000000..cb56370ea
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/GeocodeForm.ui.qml
@@ -0,0 +1,136 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ property alias goButton: goButton
+ property alias clearButton: clearButton
+ property alias postalCode: postalCode
+ property alias street: street
+ property alias city: city
+ property alias stateName: stateName
+ property alias country: country
+ property alias cancelButton: cancelButton
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: tabTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: qsTr("Geocode")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ id: item2
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+
+ GridLayout {
+ id: gridLayout3
+ anchors.rightMargin: 0
+ anchors.bottomMargin: 0
+ anchors.leftMargin: 0
+ anchors.topMargin: 0
+ rowSpacing: 10
+ rows: 1
+ columns: 2
+ anchors.fill: parent
+
+ Label {
+ id: label2
+ text: qsTr("Street")
+ }
+
+ TextField {
+ id: street
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label3
+ text: qsTr("City")
+ }
+
+ TextField {
+ id: city
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label4
+ text: qsTr("State")
+ }
+
+ TextField {
+ id: stateName
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label5
+ text: qsTr("Country")
+ }
+
+ TextField {
+ id: country
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label6
+ text: qsTr("Postal Code")
+ }
+
+ TextField {
+ id: postalCode
+ Layout.fillWidth: true
+ }
+
+ RowLayout {
+ id: rowLayout1
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignRight
+
+ Button {
+ id: goButton
+ text: qsTr("Proceed")
+ }
+
+ Button {
+ id: clearButton
+ text: qsTr("Clear")
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ }
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.columnSpan: 2
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/Locale.qml b/examples/location/mapviewer/MapViewer/forms/Locale.qml
new file mode 100644
index 000000000..9ba7dd7f0
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/Locale.qml
@@ -0,0 +1,45 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtPositioning
+
+LocaleForm {
+ property string locale
+ signal selectLanguage(string language)
+ signal closeForm()
+
+ goButton.onClicked: {
+
+ if (!languageGroup.checkedButton) return
+
+ if (otherRadioButton.checked) {
+ selectLanguage(language.text)
+ } else {
+ selectLanguage(languageGroup.checkedButton.text)
+ }
+ }
+
+ clearButton.onClicked: {
+ language.text = ""
+ }
+
+ cancelButton.onClicked: {
+ closeForm()
+ }
+
+ Component.onCompleted: {
+ switch (locale) {
+ case "en":
+ enRadioButton.checked = true;
+ break
+ case "fr":
+ frRadioButton.checked = true;
+ break
+ default:
+ otherRadioButton.checked = true;
+ language.text = locale
+ break
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/LocaleForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/LocaleForm.ui.qml
new file mode 100644
index 000000000..9e1ec1807
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/LocaleForm.ui.qml
@@ -0,0 +1,116 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ property alias clearButton: clearButton
+ property alias goButton: goButton
+ property alias cancelButton: cancelButton
+ property alias tabTitle: tabTitle
+ property alias languageGroup: languageGroup
+ property alias enRadioButton: enRadioButton
+ property alias frRadioButton: frRadioButton
+ property alias otherRadioButton: otherRadioButton
+ property alias language: language
+
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: tabTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: "Locale"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ id: item2
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+ GridLayout {
+ id: gridLayout3
+ anchors.rightMargin: 0
+ anchors.bottomMargin: 0
+ anchors.leftMargin: 0
+ anchors.topMargin: 0
+ rowSpacing: 10
+ rows: 1
+ columns: 2
+ anchors.fill: parent
+
+ ButtonGroup { id: languageGroup }
+ RadioButton {
+ id: enRadioButton
+ text: qsTr("en")
+ ButtonGroup.group: languageGroup
+ Layout.columnSpan: 2
+ }
+
+ RadioButton {
+ id: frRadioButton
+ text: qsTr("fr")
+ ButtonGroup.group: languageGroup
+ Layout.columnSpan: 2
+ }
+
+ RadioButton {
+ id: otherRadioButton
+ text: qsTr("Other")
+ ButtonGroup.group: languageGroup
+ }
+
+ TextField {
+ id: language
+ Layout.fillWidth: true
+ placeholderText: qsTr("")
+ }
+
+ RowLayout {
+ id: rowLayout1
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignRight
+
+ Button {
+ id: goButton
+ text: qsTr("Proceed")
+ }
+
+ Button {
+ id: clearButton
+ text: qsTr("Clear")
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ }
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.columnSpan: 2
+ }
+
+
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/Message.qml b/examples/location/mapviewer/MapViewer/forms/Message.qml
new file mode 100644
index 000000000..583bc2dda
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/Message.qml
@@ -0,0 +1,21 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+MessageForm {
+ property string title
+ property string message
+ property variant backPage
+
+ signal closeForm(variant backPage)
+
+ button.onClicked: {
+ closeForm(backPage)
+ }
+
+ Component.onCompleted: {
+ messageText.text = message
+ messageTitle.text = title
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/MessageForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/MessageForm.ui.qml
new file mode 100644
index 000000000..426c72757
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/MessageForm.ui.qml
@@ -0,0 +1,69 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ id: root
+ property alias messageText: messageText
+ property alias messageTitle: messageTitle
+ property alias button: button
+
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: messageTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: messageTitle
+ color: "#ffffff"
+ text: qsTr("type")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+ ColumnLayout {
+ id: columnLayout1
+ spacing: 20
+ anchors.fill: parent
+
+ Label {
+ id: messageText
+ text: qsTr("message")
+ Layout.fillWidth: true
+ horizontalAlignment: Text.AlignHCenter
+ wrapMode: Text.WordWrap
+ textFormat: Text.RichText
+ }
+
+ Button {
+ id: button
+ text: qsTr("OK")
+ Layout.alignment: Qt.AlignHCenter
+ }
+
+ Item {
+ Layout.fillHeight: true
+ }
+ }
+ }
+}
+
diff --git a/examples/location/mapviewer/MapViewer/forms/ReverseGeocode.qml b/examples/location/mapviewer/MapViewer/forms/ReverseGeocode.qml
new file mode 100644
index 000000000..31122a2e9
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/ReverseGeocode.qml
@@ -0,0 +1,38 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtPositioning
+
+//Reverse Geocode Dialog
+ReverseGeocodeForm {
+ property string title;
+ property variant coordinate
+ signal showPlace(variant coordinate)
+ signal closeForm()
+
+ goButton.onClicked: {
+ var coordinate = QtPositioning.coordinate(parseFloat(latitude.text),
+ parseFloat(longitude.text));
+ if (coordinate.isValid) {
+ showPlace(coordinate)
+ }
+ }
+
+ clearButton.onClicked: {
+ latitude.text = ""
+ longitude.text = ""
+ }
+
+ cancelButton.onClicked: {
+ closeForm()
+ }
+
+ Component.onCompleted: {
+ latitude.text = "" + coordinate.latitude
+ longitude.text = "" + coordinate.longitude
+ if (title.length != 0) {
+ tabTitle.text = title;
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/ReverseGeocodeForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/ReverseGeocodeForm.ui.qml
new file mode 100644
index 000000000..1d937ee90
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/ReverseGeocodeForm.ui.qml
@@ -0,0 +1,103 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ property alias clearButton: clearButton
+ property alias goButton: goButton
+ property alias longitude: longitude
+ property alias latitude: latitude
+ property alias cancelButton: cancelButton
+ property alias tabTitle: tabTitle
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: tabTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: qsTr("Reverse Geocode")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ id: item2
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+ GridLayout {
+ id: gridLayout3
+ anchors.rightMargin: 0
+ anchors.bottomMargin: 0
+ anchors.leftMargin: 0
+ anchors.topMargin: 0
+ rowSpacing: 10
+ rows: 1
+ columns: 2
+ anchors.fill: parent
+
+ Label {
+ id: label2
+ text: qsTr("Latitude")
+ }
+
+ TextField {
+ id: latitude
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label3
+ text: qsTr("Longitude")
+ }
+
+ TextField {
+ id: longitude
+ Layout.fillWidth: true
+ placeholderText: qsTr("")
+ }
+
+ RowLayout {
+ id: rowLayout1
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignRight
+
+ Button {
+ id: goButton
+ text: qsTr("Proceed")
+ }
+
+ Button {
+ id: clearButton
+ text: qsTr("Clear")
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ }
+ }
+ Item {
+ Layout.fillHeight: true
+ Layout.columnSpan: 2
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteAddress.qml b/examples/location/mapviewer/MapViewer/forms/RouteAddress.qml
new file mode 100644
index 000000000..3676c1374
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteAddress.qml
@@ -0,0 +1,105 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtLocation
+import QtPositioning
+
+RouteAddressForm {
+ property alias plugin : tempGeocodeModel.plugin;
+ property variant fromAddress;
+ property variant toAddress;
+ signal showMessage(string topic, string message)
+ signal showRoute(variant startCoordinate,variant endCoordinate)
+ signal closeForm()
+
+ goButton.onClicked: {
+ tempGeocodeModel.reset()
+ fromAddress.country = fromCountry.text
+ fromAddress.street = fromStreet.text
+ fromAddress.city = fromCity.text
+ toAddress.country = toCountry.text
+ toAddress.street = toStreet.text
+ toAddress.city = toCity.text
+ tempGeocodeModel.startCoordinate = QtPositioning.coordinate()
+ tempGeocodeModel.endCoordinate = QtPositioning.coordinate()
+ tempGeocodeModel.query = fromAddress
+ tempGeocodeModel.update();
+ goButton.enabled = false;
+ }
+
+ clearButton.onClicked: {
+ fromStreet.text = ""
+ fromCity.text = ""
+ fromCountry.text = ""
+ toStreet.text = ""
+ toCity.text = ""
+ toCountry.text = ""
+ }
+
+ cancelButton.onClicked: {
+ closeForm()
+ }
+
+ Component.onCompleted: {
+ fromStreet.text = fromAddress.street
+ fromCity.text = fromAddress.city
+ fromCountry.text = fromAddress.country
+ toStreet.text = toAddress.street
+ toCity.text = toAddress.city
+ toCountry.text = toAddress.country
+ }
+
+ GeocodeModel {
+ id: tempGeocodeModel
+
+ property int success: 0
+ property variant startCoordinate
+ property variant endCoordinate
+
+ onCountChanged: {
+ if (success == 1 && count == 1) {
+ query = toAddress
+ update();
+ }
+ }
+
+ onStatusChanged: {
+ if ((status == GeocodeModel.Ready) && (count == 1)) {
+ success++
+ if (success == 1) {
+ startCoordinate.latitude = get(0).coordinate.latitude
+ startCoordinate.longitude = get(0).coordinate.longitude
+ }
+ if (success == 2) {
+ endCoordinate.latitude = get(0).coordinate.latitude
+ endCoordinate.longitude = get(0).coordinate.longitude
+ success = 0
+ if (startCoordinate.isValid && endCoordinate.isValid)
+ showRoute(startCoordinate,endCoordinate)
+ else
+ goButton.enabled = true
+ }
+ } else if ((status == GeocodeModel.Ready) || (status == GeocodeModel.Error)) {
+ var st = (success == 0 ) ? "start" : "end"
+ success = 0
+ if ((status == GeocodeModel.Ready) && (count == 0 )) {
+ showMessage(qsTr("Geocode Error"),qsTr("Unsuccessful geocode"));
+ goButton.enabled = true;
+ }
+ else if (status == GeocodeModel.Error) {
+ showMessage(qsTr("Geocode Error"),
+ qsTr("Unable to find location for the") + " " +
+ st + " " +qsTr("point"))
+ goButton.enabled = true;
+ }
+ else if ((status == GeocodeModel.Ready) && (count > 1 )) {
+ showMessage(qsTr("Ambiguous geocode"),
+ count + " " + qsTr("results found for the") +
+ " " + st + " " +qsTr("point, please specify location"))
+ goButton.enabled = true;
+ }
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteAddressForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/RouteAddressForm.ui.qml
new file mode 100644
index 000000000..ee9227013
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteAddressForm.ui.qml
@@ -0,0 +1,160 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ property alias fromStreet: fromStreet
+ property alias fromCountry: fromCountry
+ property alias toStreet: toStreet
+ property alias toCity: toCity
+ property alias toCountry: toCountry
+ property alias fromCity: fromCity
+ property alias goButton: goButton
+ property alias clearButton: clearButton
+ property alias cancelButton: cancelButton
+
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: tabTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: qsTr("Route Address")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ id: item2
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+ GridLayout {
+ id: gridLayout3
+ rowSpacing: 10
+ rows: 1
+ columns: 2
+ anchors.fill: parent
+
+ Label {
+ id: label1
+ text: qsTr("From")
+ font.bold: true
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
+ }
+
+ Label {
+ id: label2
+ text: qsTr("Street")
+ }
+
+ TextField {
+ id: fromStreet
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label3
+ text: qsTr("City")
+ }
+
+ TextField {
+ id: fromCity
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label7
+ text: qsTr("Country")
+ }
+
+ TextField {
+ id: fromCountry
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label6
+ text: qsTr("To")
+ font.bold: true
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
+ }
+
+ Label {
+ id: label4
+ text: qsTr("Street")
+ }
+
+ TextField {
+ id: toStreet
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label5
+ text: qsTr("City")
+ }
+
+ TextField {
+ id: toCity
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label8
+ text: qsTr("Country")
+ }
+
+ TextField {
+ id: toCountry
+ Layout.fillWidth: true
+ }
+
+ RowLayout {
+ id: rowLayout1
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignRight
+
+ Button {
+ id: goButton
+ text: qsTr("Proceed")
+ }
+
+ Button {
+ id: clearButton
+ text: qsTr("Clear")
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ }
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.columnSpan: 2
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteCoordinate.qml b/examples/location/mapviewer/MapViewer/forms/RouteCoordinate.qml
new file mode 100644
index 000000000..003556c51
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteCoordinate.qml
@@ -0,0 +1,41 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtPositioning
+
+RouteCoordinateForm {
+ property variant toCoordinate
+ property variant fromCoordinate
+ signal showRoute(variant startCoordinate,variant endCoordinate)
+ signal closeForm()
+
+ goButton.onClicked: {
+ var startCoordinate = QtPositioning.coordinate(parseFloat(fromLatitude.text),
+ parseFloat(fromLongitude.text));
+ var endCoordinate = QtPositioning.coordinate(parseFloat(toLatitude.text),
+ parseFloat(toLongitude.text));
+ if (startCoordinate.isValid && endCoordinate.isValid) {
+ goButton.enabled = false;
+ showRoute(startCoordinate,endCoordinate)
+ }
+ }
+
+ clearButton.onClicked: {
+ fromLatitude.text = ""
+ fromLongitude.text = ""
+ toLatitude.text = ""
+ toLongitude.text = ""
+ }
+
+ cancelButton.onClicked: {
+ closeForm()
+ }
+
+ Component.onCompleted: {
+ fromLatitude.text = "" + fromCoordinate.latitude
+ fromLongitude.text = "" + fromCoordinate.longitude
+ toLatitude.text = "" + toCoordinate.latitude
+ toLongitude.text = "" + toCoordinate.longitude
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteCoordinateForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/RouteCoordinateForm.ui.qml
new file mode 100644
index 000000000..88ff94dc1
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteCoordinateForm.ui.qml
@@ -0,0 +1,136 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ property alias fromLatitude: fromLatitude
+ property alias fromLongitude: fromLongitude
+ property alias toLatitude: toLatitude
+ property alias toLongitude: toLongitude
+ property alias clearButton: clearButton
+ property alias goButton: goButton
+ property alias cancelButton: cancelButton
+
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: tabTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: qsTr("Route Coordinates")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ id: item2
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+ GridLayout {
+ id: gridLayout3
+ rowSpacing: 10
+ rows: 1
+ columns: 2
+ anchors.fill: parent
+
+ Label {
+ id: label1
+ text: qsTr("From")
+ font.bold: true
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
+ }
+
+ Label {
+ id: label2
+ text: qsTr("Latitude")
+ }
+
+ TextField {
+ id: fromLatitude
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label3
+ text: qsTr("Longitude")
+ }
+
+ TextField {
+ id: fromLongitude
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label6
+ text: qsTr("To")
+ font.bold: true
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
+ }
+
+ Label {
+ id: label4
+ text: qsTr("Latitude")
+ }
+
+ TextField {
+ id: toLatitude
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label5
+ text: qsTr("Longitude")
+ }
+
+ TextField {
+ id: toLongitude
+ Layout.fillWidth: true
+ }
+
+ RowLayout {
+ id: rowLayout1
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignRight
+ Button {
+ id: goButton
+ text: qsTr("Proceed")
+ }
+
+ Button {
+ id: clearButton
+ text: qsTr("Clear")
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ }
+ }
+ Item {
+ Layout.fillHeight: true
+ Layout.columnSpan: 2
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteList.qml b/examples/location/mapviewer/MapViewer/forms/RouteList.qml
new file mode 100644
index 000000000..8dbda7c01
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteList.qml
@@ -0,0 +1,50 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import "../helper.js" as Helper
+
+//! [routeinfomodel0]
+ListView {
+//! [routeinfomodel0]
+ property variant routeModel
+ property string totalTravelTime
+ property string totalDistance
+ signal closeForm()
+//! [routeinfomodel1]
+ interactive: true
+ model: ListModel { id: routeInfoModel }
+ header: RouteListHeader {}
+ delegate: RouteListDelegate{
+ routeIndex.text: index + 1
+ routeInstruction.text: instruction
+ routeDistance.text: distance
+ }
+//! [routeinfomodel1]
+ footer: Button {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: qsTr("Close")
+ onClicked: {
+ closeForm()
+ }
+ }
+
+ Component.onCompleted: {
+ //! [routeinfomodel2]
+ routeInfoModel.clear()
+ if (routeModel.count > 0) {
+ for (var i = 0; i < routeModel.get(0).segments.length; i++) {
+ routeInfoModel.append({
+ "instruction": routeModel.get(0).segments[i].maneuver.instructionText,
+ "distance": Helper.formatDistance(routeModel.get(0).segments[i].maneuver.distanceToNextInstruction)
+ });
+ }
+ }
+ //! [routeinfomodel2]
+ totalTravelTime = routeModel.count == 0 ? "" : Helper.formatTime(routeModel.get(0).travelTime)
+ totalDistance = routeModel.count == 0 ? "" : Helper.formatDistance(routeModel.get(0).distance)
+ }
+//! [routeinfomodel3]
+}
+//! [routeinfomodel3]
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteListDelegate.qml b/examples/location/mapviewer/MapViewer/forms/RouteListDelegate.qml
new file mode 100644
index 000000000..680318ac3
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteListDelegate.qml
@@ -0,0 +1,42 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ id: root
+ property bool checked: false
+ property alias routeInstruction: instructionLabel
+ property alias routeDistance: distanceLabel
+ property alias routeIndex: indexLabel
+
+ width: appWindow.width
+ height: indexLabel.height * 2
+
+ RowLayout {
+ spacing: 10
+ anchors.left: parent.left
+ anchors.leftMargin: 30
+ anchors.verticalCenter: parent.verticalCenter
+ Label {
+ id: indexLabel
+ }
+ Label {
+ id: instructionLabel
+ wrapMode: Text.Wrap
+ }
+ Label {
+ id: distanceLabel
+ }
+ }
+
+ Rectangle {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: 15
+ height: 1
+ color: "#46a2da"
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteListHeader.qml b/examples/location/mapviewer/MapViewer/forms/RouteListHeader.qml
new file mode 100644
index 000000000..4f8308091
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteListHeader.qml
@@ -0,0 +1,47 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Item {
+ property alias travelTime: travelTimeLabel
+ property alias distance: distanceLabel
+ width: parent.width
+ height: tabTitle.height * 3.0
+
+ Rectangle {
+ id: tabRectangle
+ y: tabTitle.height
+ height: tabTitle.height * 2 - 1
+ color: "#46a2da"
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: qsTr("Route Information")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ Label {
+ id: travelTimeLabel
+ text: totalTravelTime
+ color: "#ffffff"
+ font.bold: true
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ }
+
+ Label {
+ id: distanceLabel
+ text: totalDistance
+ color: "#ffffff"
+ font.bold: true
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/helper.js b/examples/location/mapviewer/MapViewer/helper.js
new file mode 100644
index 000000000..a42040518
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/helper.js
@@ -0,0 +1,44 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+.pragma library
+
+function roundNumber(number, digits)
+{
+ var multiple = Math.pow(10, digits);
+ return Math.round(number * multiple) / multiple;
+}
+
+function formatTime(sec)
+{
+ var value = sec
+ var seconds = value % 60
+ value /= 60
+ value = (value > 1) ? Math.round(value) : 0
+ var minutes = value % 60
+ value /= 60
+ value = (value > 1) ? Math.round(value) : 0
+ var hours = value
+ if (hours > 0) value = hours + "h:"+ minutes + "m"
+ else value = minutes + "min"
+ return value
+}
+
+function formatDistance(meters)
+{
+ var dist = Math.round(meters)
+ if (dist > 1000 ){
+ if (dist > 100000){
+ dist = Math.round(dist / 1000)
+ }
+ else{
+ dist = Math.round(dist / 100)
+ dist = dist / 10
+ }
+ dist = dist + " km"
+ }
+ else{
+ dist = dist + " m"
+ }
+ return dist
+}
diff --git a/examples/location/mapviewer/MapViewer/map/MapComponent.qml b/examples/location/mapviewer/MapViewer/map/MapComponent.qml
new file mode 100644
index 000000000..987455287
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/map/MapComponent.qml
@@ -0,0 +1,497 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import QtQuick
+import QtQuick.Controls
+import QtLocation
+import QtPositioning
+import "../helper.js" as Helper
+
+//! [top]
+MapView {
+ id: view
+//! [top]
+ property variant markers
+ property variant mapItems
+ property int markerCounter: 0 // counter for total amount of markers. Resets to 0 when number of markers = 0
+ property int currentMarker
+ property bool followme: false
+ property variant scaleLengths: [5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000]
+ property alias routeQuery: routeQuery
+ property alias routeModel: routeModel
+ property alias geocodeModel: geocodeModel
+ property alias slidersExpanded: sliders.expanded
+
+ signal showGeocodeInfo()
+ signal geocodeFinished()
+ signal routeError()
+ signal coordinatesCaptured(double latitude, double longitude)
+ signal showMainMenu(variant coordinate)
+ signal showMarkerMenu(variant coordinate)
+ signal showRouteMenu(variant coordinate)
+ signal showPointMenu(variant coordinate)
+ signal showRouteList()
+
+ function geocodeMessage()
+ {
+ var street, district, city, county, state, countryCode, country, postalCode, latitude, longitude, text
+ latitude = Math.round(geocodeModel.get(0).coordinate.latitude * 10000) / 10000
+ longitude =Math.round(geocodeModel.get(0).coordinate.longitude * 10000) / 10000
+ street = geocodeModel.get(0).address.street
+ district = geocodeModel.get(0).address.district
+ city = geocodeModel.get(0).address.city
+ county = geocodeModel.get(0).address.county
+ state = geocodeModel.get(0).address.state
+ countryCode = geocodeModel.get(0).address.countryCode
+ country = geocodeModel.get(0).address.country
+ postalCode = geocodeModel.get(0).address.postalCode
+
+ text = "<b>Latitude:</b> " + latitude + "<br/>"
+ text +="<b>Longitude:</b> " + longitude + "<br/>" + "<br/>"
+ if (street) text +="<b>Street: </b>"+ street + " <br/>"
+ if (district) text +="<b>District: </b>"+ district +" <br/>"
+ if (city) text +="<b>City: </b>"+ city + " <br/>"
+ if (county) text +="<b>County: </b>"+ county + " <br/>"
+ if (state) text +="<b>State: </b>"+ state + " <br/>"
+ if (countryCode) text +="<b>Country code: </b>"+ countryCode + " <br/>"
+ if (country) text +="<b>Country: </b>"+ country + " <br/>"
+ if (postalCode) text +="<b>PostalCode: </b>"+ postalCode + " <br/>"
+ return text
+ }
+
+ function calculateScale()
+ {
+ var coord1, coord2, dist, text, f
+ f = 0
+ coord1 = view.map.toCoordinate(Qt.point(0,scale.y))
+ coord2 = view.map.toCoordinate(Qt.point(0+scaleImage.sourceSize.width,scale.y))
+ dist = Math.round(coord1.distanceTo(coord2))
+
+ if (dist === 0) {
+ // not visible
+ } else {
+ for (var i = 0; i < scaleLengths.length-1; i++) {
+ if (dist < (scaleLengths[i] + scaleLengths[i+1]) / 2 ) {
+ f = scaleLengths[i] / dist
+ dist = scaleLengths[i]
+ break;
+ }
+ }
+ if (f === 0) {
+ f = dist / scaleLengths[i]
+ dist = scaleLengths[i]
+ }
+ }
+
+ text = Helper.formatDistance(dist)
+ scaleImage.width = (scaleImage.sourceSize.width * f) - 2 * scaleImageLeft.sourceSize.width
+ scaleText.text = text
+ }
+
+ function deleteMarkers()
+ {
+ var count = view.markers.length
+ for (var i = count-1; i>=0; i--){
+ view.map.removeMapItem(view.markers[i])
+ }
+ view.markers = []
+ }
+
+ function addMarker()
+ {
+ var count = view.markers.length
+ markerCounter++
+ var marker = Qt.createQmlObject ('Marker {}', map)
+ view.map.addMapItem(marker)
+ marker.z = view.map.z+1
+ marker.coordinate = tapHandler.lastCoordinate
+ markers.push(marker)
+ }
+
+ function deleteMarker(index)
+ {
+ //update list of markers
+ var myArray = []
+ var count = view.markers.length
+ for (var i = 0; i<count; i++){
+ if (index !== i) myArray.push(view.markers[i])
+ }
+
+ view.map.removeMapItem(view.markers[index])
+ view.markers[index].destroy()
+ view.markers = myArray
+ if (markers.length === 0) markerCounter = 0
+ }
+
+ function calculateMarkerRoute()
+ {
+ routeQuery.clearWaypoints();
+ for (var i = currentMarker; i< view.markers.length; i++){
+ routeQuery.addWaypoint(markers[i].coordinate)
+ }
+ routeQuery.travelModes = RouteQuery.CarTravel
+ routeQuery.routeOptimizations = RouteQuery.ShortestRoute
+
+ routeModel.update();
+ }
+
+ function calculateCoordinateRoute(startCoordinate, endCoordinate)
+ {
+ //! [routerequest0]
+ // clear away any old data in the query
+ routeQuery.clearWaypoints();
+ // add the start and end coords as waypoints on the route
+ routeQuery.addWaypoint(startCoordinate)
+ routeQuery.addWaypoint(endCoordinate)
+ routeQuery.travelModes = RouteQuery.CarTravel
+ routeQuery.routeOptimizations = RouteQuery.FastestRoute
+ //! [routerequest0]
+
+ //! [routerequest1]
+ routeModel.update();
+ //! [routerequest1]
+
+ //! [routerequest2]
+ // center the map on the start coord
+ view.map.center = startCoordinate;
+ //! [routerequest2]
+ }
+
+ function geocode(fromAddress)
+ {
+ //! [geocode1]
+ // send the geocode request
+ geocodeModel.query = fromAddress
+ geocodeModel.update()
+ //! [geocode1]
+ }
+
+
+//! [coord]
+ map.zoomLevel: (maximumZoomLevel - minimumZoomLevel)/2
+ map.center {
+ // The Qt Company in Oslo
+ latitude: 59.9485
+ longitude: 10.7686
+ }
+//! [coord]
+
+ focus: true
+ map.onCopyrightLinkActivated: Qt.openUrlExternally(link)
+
+ map.onCenterChanged:{
+ scaleTimer.restart()
+ if (view.followme)
+ if (view.map.center != positionSource.position.coordinate) view.followme = false
+ }
+
+ map.onZoomLevelChanged:{
+ scaleTimer.restart()
+ if (view.followme) view.map.center = positionSource.position.coordinate
+ }
+
+ onWidthChanged:{
+ scaleTimer.restart()
+ }
+
+ onHeightChanged:{
+ scaleTimer.restart()
+ }
+
+ Component.onCompleted: {
+ markers = [];
+ mapItems = [];
+ }
+
+ Keys.onPressed: (event) => {
+ if (event.key === Qt.Key_Plus) {
+ view.map.zoomLevel++;
+ } else if (event.key === Qt.Key_Minus) {
+ view.map.zoomLevel--;
+ } else if (event.key === Qt.Key_Left || event.key === Qt.Key_Right ||
+ event.key === Qt.Key_Up || event.key === Qt.Key_Down) {
+ var dx = 0;
+ var dy = 0;
+
+ switch (event.key) {
+
+ case Qt.Key_Left: dx = view.map.width / 4; break;
+ case Qt.Key_Right: dx = -view.map.width / 4; break;
+ case Qt.Key_Up: dy = view.map.height / 4; break;
+ case Qt.Key_Down: dy = -view.map.height / 4; break;
+
+ }
+
+ var mapCenterPoint = Qt.point(view.map.width / 2.0 - dx, view.map.height / 2.0 - dy);
+ view.map.center = view.map.toCoordinate(mapCenterPoint);
+ }
+ }
+
+ PositionSource{
+ id: positionSource
+ active: followme
+
+ onPositionChanged: {
+ view.map.center = positionSource.position.coordinate
+ }
+ }
+
+ MapQuickItem {
+ id: mePoisition
+ parent: view.map
+ sourceItem: Rectangle { width: 14; height: 14; color: "#251ee4"; border.width: 2; border.color: "white"; smooth: true; radius: 7 }
+ coordinate: positionSource.position.coordinate
+ opacity: 1.0
+ anchorPoint: Qt.point(sourceItem.width/2, sourceItem.height/2)
+ visible: followme
+ }
+ MapQuickItem {
+ parent: view.map
+ sourceItem: Text{
+ text: qsTr("You're here!")
+ color:"#242424"
+ font.bold: true
+ styleColor: "#ECECEC"
+ style: Text.Outline
+ }
+ coordinate: positionSource.position.coordinate
+ anchorPoint: Qt.point(-mePoisition.sourceItem.width * 0.5, mePoisition.sourceItem.height * 1.5)
+ visible: followme
+ }
+
+
+ MapQuickItem {
+ id: poiTheQtComapny
+ parent: view.map
+ sourceItem: Rectangle { width: 14; height: 14; color: "#e41e25"; border.width: 2; border.color: "white"; smooth: true; radius: 7 }
+ coordinate {
+ latitude: 59.9485
+ longitude: 10.7686
+ }
+ opacity: 1.0
+ anchorPoint: Qt.point(sourceItem.width/2, sourceItem.height/2)
+ }
+
+ MapQuickItem {
+ parent: view.map
+ sourceItem: Text{
+ text: "The Qt Company"
+ color:"#242424"
+ font.bold: true
+ styleColor: "#ECECEC"
+ style: Text.Outline
+ }
+ coordinate: poiTheQtComapny.coordinate
+ anchorPoint: Qt.point(-poiTheQtComapny.sourceItem.width * 0.5, poiTheQtComapny.sourceItem.height * 1.5)
+ }
+
+ MapSliders {
+ id: sliders
+ z: view.map.z + 3
+ mapSource: map
+ edge: Qt.LeftEdge
+ }
+
+ Item {
+ id: scale
+ z: view.map.z + 3
+ visible: scaleText.text !== "0 m"
+ anchors.bottom: parent.bottom;
+ anchors.right: parent.right
+ anchors.margins: 20
+ height: scaleText.height * 2
+ width: scaleImage.width
+
+ Image {
+ id: scaleImageLeft
+ source: "../resources/scale_end.png"
+ anchors.bottom: parent.bottom
+ anchors.right: scaleImage.left
+ }
+ Image {
+ id: scaleImage
+ source: "../resources/scale.png"
+ anchors.bottom: parent.bottom
+ anchors.right: scaleImageRight.left
+ }
+ Image {
+ id: scaleImageRight
+ source: "../resources/scale_end.png"
+ anchors.bottom: parent.bottom
+ anchors.right: parent.right
+ }
+ Label {
+ id: scaleText
+ color: "#004EAE"
+ anchors.centerIn: parent
+ text: "0 m"
+ }
+ Component.onCompleted: {
+ view.calculateScale();
+ }
+ }
+
+ //! [routemodel0]
+ RouteModel {
+ id: routeModel
+ plugin : view.map.plugin
+ query: RouteQuery {
+ id: routeQuery
+ }
+ onStatusChanged: {
+ if (status == RouteModel.Ready) {
+ switch (count) {
+ case 0:
+ // technically not an error
+ view.routeError()
+ break
+ case 1:
+ view.showRouteList()
+ break
+ }
+ } else if (status == RouteModel.Error) {
+ view.routeError()
+ }
+ }
+ }
+ //! [routemodel0]
+
+ //! [routedelegate0]
+ Component {
+ id: routeDelegate
+
+ MapRoute {
+ id: route
+ route: routeData
+ line.color: "#46a2da"
+ line.width: 5
+ smooth: true
+ opacity: 0.8
+ //! [routedelegate0]
+ TapHandler {
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+ onLongPressed: showRouteMenu(view.map.toCoordinate(tapHandler.point.position))
+ onSingleTapped: (eventPoint, button) => {
+ if (button === Qt.RightButton)
+ showRouteMenu(view.map.toCoordinate(tapHandler.point.position))
+ }
+ }
+ }
+ }
+
+ //! [geocodemodel0]
+ GeocodeModel {
+ id: geocodeModel
+ plugin: view.map.plugin
+ onStatusChanged: {
+ if ((status == GeocodeModel.Ready) || (status == GeocodeModel.Error))
+ view.geocodeFinished()
+ }
+ onLocationsChanged:
+ {
+ if (count === 1) {
+ view.map.center.latitude = get(0).coordinate.latitude
+ view.map.center.longitude = get(0).coordinate.longitude
+ }
+ }
+ }
+ //! [geocodemodel0]
+
+ //! [pointdel0]
+ Component {
+ id: pointDelegate
+
+ MapQuickItem {
+ id: point
+ parent: view.map
+ coordinate: locationData.coordinate
+
+ sourceItem: Image {
+ id: pointMarker
+ source: "../resources/marker_blue.png"
+ //! [pointdel0]
+
+ Text{
+ id: pointText
+ anchors.bottom: pointMarker.top
+ anchors.horizontalCenter: pointMarker.horizontalCenter
+ text: locationData.address.street + ", " + locationData.address.city
+ color:"#242424"
+ font.bold: true
+ styleColor: "#ECECEC"
+ style: Text.Outline
+ }
+
+ }
+ smooth: true
+ autoFadeIn: false
+ anchorPoint.x: pointMarker.width/4
+ anchorPoint.y: pointMarker.height
+
+ TapHandler {
+ onLongPressed: showPointMenu(point.coordinate)
+ //! [pointdel1]
+ }
+ }
+ }
+ //! [pointdel1]
+
+ //! [routeview0]
+ MapItemView {
+ parent: view.map
+ model: routeModel
+ delegate: routeDelegate
+ //! [routeview0]
+ autoFitViewport: true
+ }
+
+ //! [geocodeview]
+ MapItemView {
+ parent: view.map
+ model: geocodeModel
+ delegate: pointDelegate
+ }
+ //! [geocodeview]
+
+ Timer {
+ id: scaleTimer
+ interval: 100
+ running: false
+ repeat: false
+ onTriggered: view.calculateScale()
+ }
+
+ TapHandler {
+ id: tapHandler
+ property variant lastCoordinate
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+
+ onPressedChanged: (eventPoint, button) => {
+ if (pressed) {
+ lastCoordinate = view.map.toCoordinate(tapHandler.point.position)
+ }
+ }
+
+ onSingleTapped: (eventPoint, button) => {
+ if (button === Qt.RightButton) {
+ showMainMenu(lastCoordinate)
+ }
+ }
+
+ onDoubleTapped: (eventPoint, button) => {
+ var preZoomPoint = view.map.toCoordinate(eventPoint.position);
+ if (button === Qt.LeftButton) {
+ view.map.zoomLevel = Math.floor(view.map.zoomLevel + 1)
+ } else if (button === Qt.RightButton) {
+ view.map.zoomLevel = Math.floor(view.map.zoomLevel - 1)
+ }
+ var postZoomPoint = view.map.toCoordinate(eventPoint.position);
+ var dx = postZoomPoint.latitude - preZoomPoint.latitude;
+ var dy = postZoomPoint.longitude - preZoomPoint.longitude;
+
+ view.map.center = QtPositioning.coordinate(view.map.center.latitude - dx,
+ view.map.center.longitude - dy);
+ }
+ }
+//! [end]
+}
+//! [end]
diff --git a/examples/location/mapviewer/MapViewer/map/MapSliders.qml b/examples/location/mapviewer/MapViewer/map/MapSliders.qml
new file mode 100644
index 000000000..d9c8381b0
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/map/MapSliders.qml
@@ -0,0 +1,282 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Row {
+ id: containerRow
+
+ property var mapSource
+ property real fontSize : 14
+ property color labelBackground : "transparent"
+ property int edge: Qt.RightEdge
+ property alias expanded: sliderToggler.checked
+
+ function rightEdge() {
+ return (containerRow.edge === Qt.RightEdge);
+ }
+
+ layoutDirection: rightEdge() ? Qt.LeftToRight : Qt.RightToLeft
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.right: rightEdge() ? parent.right : undefined
+ anchors.left: rightEdge() ? undefined : parent.left
+
+ AbstractButton {
+ id: sliderToggler
+ width: 32
+ height: 96
+ checkable: true
+ checked: true
+ anchors.verticalCenter: parent.verticalCenter
+
+ transform: Scale {
+ origin.x: rightEdge() ? 0 : sliderToggler.width / 2
+ xScale: rightEdge() ? 1 : -1
+ }
+
+ background: Rectangle {
+ color: "transparent"
+ }
+
+
+ property real shear: 0.333
+ property real buttonOpacity: 0.5
+ property real mirror : rightEdge() ? 1.0 : -1.0
+
+ Rectangle {
+ width: 16
+ height: 48
+ color: "seagreen"
+ antialiasing: true
+ opacity: sliderToggler.buttonOpacity
+ anchors.top: parent.top
+ anchors.left: sliderToggler.checked ? parent.left : parent.horizontalCenter
+ transform: Matrix4x4 {
+ property real d : sliderToggler.checked ? 1.0 : -1.0
+ matrix: Qt.matrix4x4(1.0, d * sliderToggler.shear, 0.0, 0.0,
+ 0.0, 1.0, 0.0, 0.0,
+ 0.0, 0.0, 1.0, 0.0,
+ 0.0, 0.0, 0.0, 1.0)
+ }
+ }
+
+ Rectangle {
+ width: 16
+ height: 48
+ color: "seagreen"
+ antialiasing: true
+ opacity: sliderToggler.buttonOpacity
+ anchors.top: parent.verticalCenter
+ anchors.right: sliderToggler.checked ? parent.right : parent.horizontalCenter
+ transform: Matrix4x4 {
+ property real d : sliderToggler.checked ? -1.0 : 1.0
+ matrix: Qt.matrix4x4(1.0, d * sliderToggler.shear, 0.0, 0.0,
+ 0.0, 1.0, 0.0, 0.0,
+ 0.0, 0.0, 1.0, 0.0,
+ 0.0, 0.0, 0.0, 1.0)
+ }
+ }
+ }
+
+ Rectangle {
+ id: sliderContainer
+ height: parent.height
+ width: sliderRow.width + 10
+ visible: sliderToggler.checked
+ color: Qt.rgba( 0, 191 / 255.0, 255 / 255.0, 0.07)
+
+ property var labelBorderColor: "transparent"
+ property var slidersHeight : sliderContainer.height
+ - rowSliderValues.height
+ - rowSliderLabels.height
+ - sliderColumn.spacing * 2
+ - sliderColumn.topPadding
+ - sliderColumn.bottomPadding
+
+ Column {
+ id: sliderColumn
+ spacing: 10
+ topPadding: 16
+ bottomPadding: 48
+ anchors.centerIn: parent
+
+ // the sliders value labels
+ Row {
+ id: rowSliderValues
+ spacing: sliderRow.spacing
+ width: sliderRow.width
+ height: 32
+ property real entryWidth: zoomSlider.width
+
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelZoomValue
+ text: zoomSlider.value.toFixed(3)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelBearingValue
+ text: bearingSlider.value.toFixed(2)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelTiltValue
+ text: tiltSlider.value.toFixed(2)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelFovValue
+ text: fovSlider.value.toFixed(2)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ } // rowSliderValues
+
+ // The sliders row
+ Row {
+ id: sliderRow
+ height: sliderContainer.slidersHeight
+
+ Slider {
+ id: zoomSlider
+ height: parent.height
+ orientation : Qt.Vertical
+ from : containerRow.mapSource.minimumZoomLevel
+ to : containerRow.mapSource.maximumZoomLevel
+ value : containerRow.mapSource.zoomLevel
+ onValueChanged: {
+ containerRow.mapSource.zoomLevel = value
+ }
+ }
+ Slider {
+ id: bearingSlider
+ height: parent.height
+ from: 0
+ to: 360
+ orientation : Qt.Vertical
+ value: containerRow.mapSource.bearing
+ onValueChanged: {
+ containerRow.mapSource.bearing = value;
+ }
+ }
+ Slider {
+ id: tiltSlider
+ height: parent.height
+ orientation : Qt.Vertical
+ from: containerRow.mapSource.minimumTilt;
+ to: containerRow.mapSource.maximumTilt
+ value: containerRow.mapSource.tilt
+ onValueChanged: {
+ containerRow.mapSource.tilt = value;
+ }
+ }
+ Slider {
+ id: fovSlider
+ height: parent.height
+ orientation : Qt.Vertical
+ from: containerRow.mapSource.minimumFieldOfView
+ to: containerRow.mapSource.maximumFieldOfView
+ value: containerRow.mapSource.fieldOfView
+ onValueChanged: {
+ containerRow.mapSource.fieldOfView = value;
+ }
+ }
+ } // Row sliders
+
+ // The labels row
+ Row {
+ id: rowSliderLabels
+ spacing: sliderRow.spacing
+ width: sliderRow.width
+ property real entryWidth: zoomSlider.width
+ property real entryHeight: 64
+
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelZoom
+ text: "Zoom"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelBearing
+ text: "Bearing"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelTilt
+ text: "Tilt"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelFov
+ text: "FoV"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ } // rowSliderLabels
+ } // Column
+ } // sliderContainer
+} // containerRow
diff --git a/examples/location/mapviewer/MapViewer/map/Marker.qml b/examples/location/mapviewer/MapViewer/map/Marker.qml
new file mode 100644
index 000000000..c7494cf57
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/map/Marker.qml
@@ -0,0 +1,64 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtLocation
+
+//! [mqi-top]
+MapQuickItem {
+ id: marker
+//! [mqi-top]
+
+//! [mqi-anchor]
+ anchorPoint.x: image.width/4
+ anchorPoint.y: image.height
+
+ HoverHandler {
+ id: hoverHandler
+ }
+ TapHandler {
+ id: tapHandler
+ acceptedButtons: Qt.RightButton
+ gesturePolicy: TapHandler.WithinBounds
+ onTapped: {
+ mapview.currentMarker = -1
+ for (var i = 0; i< mapview.markers.length; i++){
+ if (marker == mapview.markers[i]){
+ mapview.currentMarker = i
+ break
+ }
+ }
+ mapview.showMarkerMenu(marker.coordinate)
+ }
+ }
+ DragHandler {
+ id: dragHandler
+ grabPermissions: PointerHandler.CanTakeOverFromItems | PointerHandler.CanTakeOverFromHandlersOfDifferentType
+ }
+
+ sourceItem: Image {
+ id: image
+//! [mqi-anchor]
+ source: "../resources/marker.png"
+ opacity: hoverHandler.hovered ? 0.6 : 1.0
+
+ Text{
+ id: number
+ y: image.height/10
+ width: image.width
+ color: "white"
+ font.bold: true
+ font.pixelSize: 14
+ horizontalAlignment: Text.AlignHCenter
+ Component.onCompleted: {
+ text = mapview.markerCounter
+ }
+ }
+
+//! [mqi-closeimage]
+ }
+//! [mqi-closeimage]
+
+//! [mqi-close]
+}
+//! [mqi-close]
diff --git a/examples/location/mapviewer/MapViewer/map/MiniMap.qml b/examples/location/mapviewer/MapViewer/map/MiniMap.qml
new file mode 100644
index 000000000..f8fc51547
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/map/MiniMap.qml
@@ -0,0 +1,78 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtPositioning
+import QtLocation
+
+Rectangle{
+
+ function clamp(num, min, max)
+ {
+ return num < min ? min : num > max ? max : num;
+ }
+
+ function minimumScaleFactor()
+ {
+ var hscalefactor = (400.0 / Math.max(Math.min(mapview.width, 1000), 400)) * 0.5
+ var vscalefactor = (400.0 / Math.max(Math.min(mapview.height, 1000), 400)) * 0.5
+ return Math.min(hscalefactor,vscalefactor)
+ }
+
+ function avgScaleFactor()
+ {
+ var hscalefactor = (400.0 / Math.max(Math.min(mapview.width, 1000), 400)) * 0.5
+ var vscalefactor = (400.0 / Math.max(Math.min(mapview.height, 1000), 400)) * 0.5
+ return (hscalefactor+vscalefactor) * 0.5
+ }
+
+ id: miniMapRect
+ width: Math.floor(mapview.width * avgScaleFactor()) + 2
+ height: Math.floor(mapview.height * avgScaleFactor()) + 2
+ anchors.right: (parent) ? parent.right : undefined
+ anchors.rightMargin: 10
+ anchors.top: (parent) ? parent.top : undefined
+ anchors.topMargin: 10
+ color: "#242424"
+ Map {
+ id: miniMap
+ anchors.top: parent.top
+ anchors.topMargin: 1
+ anchors.left: parent.left
+ anchors.leftMargin: 1
+ width: Math.floor(mapview.width * avgScaleFactor())
+ height: Math.floor(mapview.height * avgScaleFactor())
+ zoomLevel: clamp(mapview.map.zoomLevel - 4.5, 1.0, 5.0) //(map.zoomLevel > minimumZoomLevel + 3) ? minimumZoomLevel + 3 : 1.5
+ center: mapview.map.center
+ plugin: mapview.map.plugin
+ copyrightsVisible: false
+ property double mapZoomLevel : mapview.map.zoomLevel
+
+ // cannot use property bindings on map.visibleRegion in MapRectangle because it's non-NOTIFYable
+ onCenterChanged: miniMapRectangle.updateCoordinates()
+ onMapZoomLevelChanged: miniMapRectangle.updateCoordinates()
+ onWidthChanged: miniMapRectangle.updateCoordinates()
+ onHeightChanged: miniMapRectangle.updateCoordinates()
+
+ MapRectangle {
+ id: miniMapRectangle
+ color: "#44ff0000"
+ border.width: 1
+ border.color: "red"
+ autoFadeIn: false
+
+ function getMapVisibleRegion()
+ {
+ return mapview.map.visibleRegion.boundingGeoRectangle()
+ }
+
+ function updateCoordinates()
+ {
+ topLeft.latitude = getMapVisibleRegion().topLeft.latitude
+ topLeft.longitude= getMapVisibleRegion().topLeft.longitude
+ bottomRight.latitude = getMapVisibleRegion().bottomRight.latitude
+ bottomRight.longitude= getMapVisibleRegion().bottomRight.longitude
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/menus/ItemPopupMenu.qml b/examples/location/mapviewer/MapViewer/menus/ItemPopupMenu.qml
new file mode 100644
index 000000000..d559aca6c
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/menus/ItemPopupMenu.qml
@@ -0,0 +1,19 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Menu {
+ property variant type
+ signal itemClicked(string item)
+
+ MenuItem {
+ text: qsTr("Info")
+ onTriggered: itemClicked("show" + type + "Info")
+ }
+ MenuItem {
+ text: qsTr("Delete")
+ onTriggered: itemClicked("delete" + type)
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/menus/MainMenu.qml b/examples/location/mapviewer/MapViewer/menus/MainMenu.qml
new file mode 100644
index 000000000..3523b5c1a
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/menus/MainMenu.qml
@@ -0,0 +1,122 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtLocation
+
+MenuBar {
+ id: menuBar
+ property variant providerMenu: providerMenu
+ property variant mapTypeMenu: mapTypeMenu
+ property variant toolsMenu: toolsMenu
+ property variant plugin
+ property alias isFollowMe: toolsMenu.isFollowMe
+ property alias isMiniMap: toolsMenu.isMiniMap
+
+ signal selectProvider(string providerName)
+ signal selectMapType(variant mapType)
+ signal selectTool(string tool);
+ signal toggleMapState(string state)
+
+ function clearMenu(menu)
+ {
+ while (menu.count)
+ menu.removeItem(menu.itemAt(0))
+ }
+
+ Menu {
+ id: providerMenu
+ title: qsTr("Provider")
+
+ function createMenu(plugins)
+ {
+ clearMenu(providerMenu)
+ for (var i = 0; i < plugins.length; i++) {
+ createProviderMenuItem(plugins[i]);
+ }
+ }
+
+ function createProviderMenuItem(provider)
+ {
+ var action = Qt.createQmlObject('import QtQuick.Controls; Action{ text: "' + provider + '"; checkable: true; onTriggered: function(){selectProvider("' + provider + '")} }', providerMenu)
+ addAction(action)
+ }
+ }
+
+ Menu {
+ id: mapTypeMenu
+ title: qsTr("MapType")
+
+ Component {
+ id: mapTypeMenuActionComponent
+ Action {
+
+ }
+ }
+ function createMenu(map)
+ {
+ clearMenu(mapTypeMenu)
+ for (var i = 0; i<map.supportedMapTypes.length; i++) {
+ createMapTypeMenuItem(map.supportedMapTypes[i], map.activeMapType === map.supportedMapTypes[i]);
+ }
+ }
+
+ function createMapTypeMenuItem(mapType, checked)
+ {
+ var action = mapTypeMenuActionComponent.createObject(mapTypeMenu, { text: mapType.name, checkable: true, checked: checked })
+ action.triggered.connect(function(){selectMapType(mapType)})
+ addAction(action)
+ }
+ }
+
+ Menu {
+ id: toolsMenu
+ property bool isFollowMe: false;
+ property bool isMiniMap: false;
+ property variant plugin: menuBar.plugin
+
+ title: qsTr("Tools")
+
+ Action {
+ text: qsTr("Reverse geocode")
+ enabled: plugin ? plugin.supportsGeocoding(Plugin.ReverseGeocodingFeature) : false
+ onTriggered: selectTool("RevGeocode")
+ }
+ MenuItem {
+ text: qsTr("Geocode")
+ enabled: plugin ? plugin.supportsGeocoding() : false
+ onTriggered: selectTool("Geocode")
+ }
+ MenuItem {
+ text: qsTr("Route with coordinates")
+ enabled: plugin ? plugin.supportsRouting() : false
+ onTriggered: selectTool("CoordinateRoute")
+ }
+ MenuItem {
+ text: qsTr("Route with address")
+ enabled: plugin ? plugin.supportsRouting() : false
+ onTriggered: selectTool("AddressRoute")
+ }
+ MenuItem {
+ text: isMiniMap ? qsTr("Hide minimap") : qsTr("Minimap")
+ onTriggered: toggleMapState("MiniMap")
+ }
+ MenuItem {
+ text: isFollowMe ? qsTr("Stop following") : qsTr("Follow me")
+ onTriggered: toggleMapState("FollowMe")
+ }
+ MenuItem {
+ text: qsTr("Language")
+ onTriggered: selectTool("Language")
+ }
+ MenuItem {
+ text: qsTr("Prefetch Map Data")
+ onTriggered: selectTool("Prefetch")
+ }
+ MenuItem {
+ text: qsTr("Clear Map Data")
+ onTriggered: selectTool("Clear")
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/menus/MapPopupMenu.qml b/examples/location/mapviewer/MapViewer/menus/MapPopupMenu.qml
new file mode 100644
index 000000000..335788df8
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/menus/MapPopupMenu.qml
@@ -0,0 +1,30 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Menu {
+ property variant coordinate
+ property int markersCount
+ property int mapItemsCount
+ signal itemClicked(string item)
+
+ MenuItem {
+ text: qsTr("Add Marker")
+ onTriggered: itemClicked("addMarker")
+ }
+ MenuItem {
+ text: qsTr("Get coordinate")
+ onTriggered: itemClicked("getCoordinate")
+ }
+ MenuItem {
+ text: qsTr("Fit Viewport To Markers")
+ onTriggered: itemClicked("fitViewport")
+ }
+ MenuItem {
+ text: qsTr("Delete all markers")
+ enabled: markersCount > 0
+ onTriggered: itemClicked("deleteMarkers")
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/menus/MarkerPopupMenu.qml b/examples/location/mapviewer/MapViewer/menus/MarkerPopupMenu.qml
new file mode 100644
index 000000000..338f23859
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/menus/MarkerPopupMenu.qml
@@ -0,0 +1,38 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Menu {
+ property int currentMarker
+ property int markersCount
+ signal itemClicked(string item)
+
+ MenuItem {
+ text: qsTr("Delete")
+ onTriggered: itemClicked("deleteMarker")
+ }
+ MenuItem {
+ text: qsTr("Coordinates")
+ onTriggered: itemClicked("getMarkerCoordinate")
+ }
+ MenuItem {
+ text: qsTr("Move to")
+ onTriggered: itemClicked("moveMarkerTo")
+ }
+ MenuItem {
+ text: currentMarker < markersCount-2 ? qsTr("Route to next markers")
+ : qsTr("Route to next marker")
+ enabled: currentMarker <= markersCount - 2
+ onTriggered: currentMarker < markersCount-2 ? itemClicked("routeToNextPoints")
+ : itemClicked("routeToNextPoint")
+ }
+ MenuItem {
+ text: currentMarker < markersCount-2 ? qsTr("Distance to next markers")
+ : qsTr("Distance to next marker")
+ enabled: currentMarker <= markersCount - 2
+ onTriggered: currentMarker < markersCount-2 ? itemClicked("distanceToNextPoints")
+ : itemClicked("distanceToNextPoint")
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/qmldir b/examples/location/mapviewer/MapViewer/qmldir
new file mode 100644
index 000000000..359ca02af
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/qmldir
@@ -0,0 +1,27 @@
+module MapViewer
+typeinfo mapviewer.qmltypes
+Main 1.0 Main.qml
+Helper 1.0 helper.js
+MapComponent 1.0 map/MapComponent.qml
+MapSliders 1.0 map/MapSliders.qml
+Marker 1.0 map/Marker.qml
+MiniMap 1.0 map/MiniMap.qml
+ItemPopupMenu 1.0 menus/ItemPopupMenu.qml
+MainMenu 1.0 menus/MainMenu.qml
+MapPopupMenu 1.0 menus/MapPopupMenu.qml
+MarkerPopupMenu 1.0 menus/MarkerPopupMenu.qml
+Geocode 1.0 forms/Geocode.qml
+GeocodeForm 1.0 forms/GeocodeForm.ui.qml
+Message 1.0 forms/Message.qml
+MessageForm 1.0 forms/MessageForm.ui.qml
+ReverseGeocode 1.0 forms/ReverseGeocode.qml
+ReverseGeocodeForm 1.0 forms/ReverseGeocodeForm.ui.qml
+RouteCoordinate 1.0 forms/RouteCoordinate.qml
+Locale 1.0 forms/Locale.qml
+LocaleForm 1.0 forms/LocaleForm.ui.qml
+RouteAddress 1.0 forms/RouteAddress.qml
+RouteAddressForm 1.0 forms/RouteAddressForm.ui.qml
+RouteCoordinateForm 1.0 forms/RouteCoordinateForm.ui.qml
+RouteList 1.0 forms/RouteList.qml
+RouteListDelegate 1.0 forms/RouteListDelegate.qml
+RouteListHeader 1.0 forms/RouteListHeader.qml
diff --git a/examples/location/mapviewer/MapViewer/resources/marker.png b/examples/location/mapviewer/MapViewer/resources/marker.png
new file mode 100644
index 000000000..2116dfdf5
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/resources/marker.png
Binary files differ
diff --git a/examples/location/mapviewer/MapViewer/resources/marker_blue.png b/examples/location/mapviewer/MapViewer/resources/marker_blue.png
new file mode 100644
index 000000000..70f0c2538
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/resources/marker_blue.png
Binary files differ
diff --git a/examples/location/mapviewer/MapViewer/resources/scale.png b/examples/location/mapviewer/MapViewer/resources/scale.png
new file mode 100644
index 000000000..c4f08122a
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/resources/scale.png
Binary files differ
diff --git a/examples/location/mapviewer/MapViewer/resources/scale_end.png b/examples/location/mapviewer/MapViewer/resources/scale_end.png
new file mode 100644
index 000000000..94510b125
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/resources/scale_end.png
Binary files differ
diff --git a/examples/location/mapviewer/doc/mapviewer.rst b/examples/location/mapviewer/doc/mapviewer.rst
new file mode 100644
index 000000000..418e2e77e
--- /dev/null
+++ b/examples/location/mapviewer/doc/mapviewer.rst
@@ -0,0 +1,14 @@
+Map Viewer Example
+==================
+
+.. tags:: Android
+
+The Map Viewer example shows how to display and interact with a map,
+search for an address, and find driving directions.
+
+This is a large example covering many basic uses of maps, positioning, and
+navigation services in Qt Location.
+
+.. image:: mapviewer.webp
+ :width: 400
+ :alt: Map Viewer Screenshot
diff --git a/examples/location/mapviewer/doc/mapviewer.webp b/examples/location/mapviewer/doc/mapviewer.webp
new file mode 100644
index 000000000..6571a6c89
--- /dev/null
+++ b/examples/location/mapviewer/doc/mapviewer.webp
Binary files differ
diff --git a/examples/location/mapviewer/main.py b/examples/location/mapviewer/main.py
new file mode 100644
index 000000000..24ae1623f
--- /dev/null
+++ b/examples/location/mapviewer/main.py
@@ -0,0 +1,75 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the location/mapviewer example from Qt v6.x"""
+
+import os
+import sys
+from pathlib import Path
+
+from PySide6.QtQml import QQmlApplicationEngine
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtNetwork import QSslSocket
+from PySide6.QtCore import QCoreApplication, QMetaObject, Q_ARG
+
+HELP = """Usage:
+plugin.<parameter_name> <parameter_value> - Sets parameter = value for plugin"""
+
+
+def parseArgs(args):
+ parameters = {}
+ while args:
+ param = args[0]
+ args = args[1:]
+ if param.startswith("--plugin."):
+ param = param[9:]
+ if not args or args[0].startswith("--"):
+ parameters[param] = True
+ else:
+ value = args[0]
+ args = args[1:]
+ if value in ("true", "on", "enabled"):
+ parameters[param] = True
+ elif value in ("false", "off", "disable"):
+ parameters[param] = False
+ else:
+ parameters[param] = value
+ return parameters
+
+
+if __name__ == "__main__":
+ additionalLibraryPaths = os.environ.get("QTLOCATION_EXTRA_LIBRARY_PATH")
+ if additionalLibraryPaths:
+ for p in additionalLibraryPaths.split(':'):
+ QCoreApplication.addLibraryPath(p)
+
+ application = QGuiApplication(sys.argv)
+ name = "QtLocation Mapviewer example"
+ QCoreApplication.setApplicationName(name)
+
+ args = sys.argv[1:]
+ if "--help" in args:
+ print(f"{name}\n\n{HELP}")
+ sys.exit(0)
+
+ parameters = parseArgs(args)
+ if not parameters.get("osm.useragent"):
+ parameters["osm.useragent"] = name
+
+ engine = QQmlApplicationEngine()
+ engine.rootContext().setContextProperty("supportsSsl",
+ QSslSocket.supportsSsl())
+ engine.addImportPath(Path(__file__).parent)
+ engine.loadFromModule("MapViewer", "Main")
+ engine.quit.connect(QCoreApplication.quit)
+
+ items = engine.rootObjects()
+ if not items:
+ sys.exit(-1)
+
+ QMetaObject.invokeMethod(items[0], "initializeProviders",
+ Q_ARG("QVariant", parameters))
+
+ ex = application.exec()
+ del engine
+ sys.exit(ex)
diff --git a/examples/location/mapviewer/mapviewer.pyproject b/examples/location/mapviewer/mapviewer.pyproject
new file mode 100644
index 000000000..8e2cadd2b
--- /dev/null
+++ b/examples/location/mapviewer/mapviewer.pyproject
@@ -0,0 +1,33 @@
+{
+ "files": ["main.py",
+ "MapViewer/forms/Geocode.qml",
+ "MapViewer/forms/GeocodeForm.ui.qml",
+ "MapViewer/forms/Locale.qml",
+ "MapViewer/forms/LocaleForm.ui.qml",
+ "MapViewer/forms/Message.qml",
+ "MapViewer/forms/MessageForm.ui.qml",
+ "MapViewer/forms/ReverseGeocode.qml",
+ "MapViewer/forms/ReverseGeocodeForm.ui.qml",
+ "MapViewer/forms/RouteAddress.qml",
+ "MapViewer/forms/RouteAddressForm.ui.qml",
+ "MapViewer/forms/RouteCoordinate.qml",
+ "MapViewer/forms/RouteCoordinateForm.ui.qml",
+ "MapViewer/forms/RouteList.qml",
+ "MapViewer/forms/RouteListDelegate.qml",
+ "MapViewer/forms/RouteListHeader.qml",
+ "MapViewer/map/MapComponent.qml",
+ "MapViewer/map/MapSliders.qml",
+ "MapViewer/map/Marker.qml",
+ "MapViewer/map/MiniMap.qml",
+ "MapViewer/menus/ItemPopupMenu.qml",
+ "MapViewer/menus/MainMenu.qml",
+ "MapViewer/menus/MapPopupMenu.qml",
+ "MapViewer/menus/MarkerPopupMenu.qml",
+ "MapViewer/resources/marker_blue.png",
+ "MapViewer/resources/marker.png",
+ "MapViewer/resources/scale_end.png",
+ "MapViewer/resources/scale.png",
+ "MapViewer/helper.js",
+ "MapViewer/Main.qml",
+ "MapViewer/qmldir"]
+}
diff --git a/examples/macextras/macpasteboardmime/macpasteboardmime.py b/examples/macextras/macpasteboardmime/macpasteboardmime.py
deleted file mode 100644
index f4aa3eee2..000000000
--- a/examples/macextras/macpasteboardmime/macpasteboardmime.py
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import sys
-from PySide6 import QtCore, QtWidgets
-
-try:
- from PySide6 import QtMacExtras
-except ImportError:
- app = QtWidgets.QApplication(sys.argv)
- messageBox = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Critical, "QtMacExtras macpasteboardmime",
- "This exampe only runs on macOS and QtMacExtras must be installed to run this example.",
- QtWidgets.QMessageBox.Close)
- messageBox.exec()
- sys.exit(1)
-
-
-class VCardMime(QtMacExtras.QMacPasteboardMime):
- def __init__(self, t=QtMacExtras.QMacPasteboardMime.MIME_ALL):
- super().__init__(t)
-
- def convertorName(self):
- return "VCardMime"
-
- def canConvert(self, mime, flav):
- if self.mimeFor(flav) == mime:
- return True
- else:
- return False
-
- def mimeFor(self, flav):
- if flav == "public.vcard":
- return "application/x-mycompany-VCard"
- else:
- return ""
-
- def flavorFor(self, mime):
- if mime == "application/x-mycompany-VCard":
- return "public.vcard"
- else:
- return ""
-
- def convertToMime(self, mime, data, flav):
- data_all = QtCore.QByteArray()
- for i in data:
- data_all += i
- return data_all
-
- def convertFromMime(mime, data, flav):
- # Todo: implement!
- return []
-
-
-class TestWidget(QtWidgets.QWidget):
- def __init__(self, parent=None):
- super().__init__(parent)
- self.vcardMime = VCardMime()
- self.setAcceptDrops(True)
-
- self.label1 = QtWidgets.QLabel()
- self.label2 = QtWidgets.QLabel()
-
- layout = QtWidgets.QVBoxLayout()
- layout.addWidget(self.label1)
- layout.addWidget(self.label2)
- self.setLayout(layout)
-
- self.label1.setText("Please drag a \"VCard\" from Contacts application, normally a name in the list, and drop here.")
-
- def dragEnterEvent(self, e):
- e.accept()
-
- def dropEvent(self, e):
- e.accept()
- self.contentsDropEvent(e)
-
- def contentsDropEvent(self, e):
- if e.mimeData().hasFormat("application/x-mycompany-VCard"):
- s = e.mimeData().data("application/x-mycompany-VCard")
- # s now contains text of vcard
- self.label2.setText(str(s))
- e.acceptProposedAction()
-
-
-if __name__ == '__main__':
- app = QtWidgets.QApplication(sys.argv)
- QtMacExtras.qRegisterDraggedTypes(["public.vcard"])
- wid1 = TestWidget()
- wid1.show()
- sys.exit(app.exec())
diff --git a/examples/macextras/macpasteboardmime/macpasteboardmime.pyproject b/examples/macextras/macpasteboardmime/macpasteboardmime.pyproject
deleted file mode 100644
index d559b7ca4..000000000
--- a/examples/macextras/macpasteboardmime/macpasteboardmime.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["macpasteboardmime.py"]
-}
diff --git a/examples/multimedia/audiooutput/audiooutput.py b/examples/multimedia/audiooutput/audiooutput.py
index 6cabebb68..06d52f68a 100644
--- a/examples/multimedia/audiooutput/audiooutput.py
+++ b/examples/multimedia/audiooutput/audiooutput.py
@@ -10,7 +10,7 @@ from struct import pack
from PySide6.QtCore import (QByteArray, QIODevice, Qt, QSysInfo, QTimer,
qWarning, Slot)
-from PySide6.QtMultimedia import (QAudio, QAudioDevice, QAudioFormat,
+from PySide6.QtMultimedia import (QAudio, QAudioFormat,
QAudioSink, QMediaDevices)
from PySide6.QtWidgets import (QApplication, QComboBox, QHBoxLayout, QLabel,
QMainWindow, QPushButton, QSlider,
@@ -40,24 +40,23 @@ class Generator(QIODevice):
sample_size = fmt.bytesPerSample() * 8
if sample_size == 8:
if fmt.sampleFormat() == QAudioFormat.UInt8:
- scaler = lambda x: ((1.0 + x) / 2 * 255)
+ scaler = lambda x: ((1.0 + x) / 2 * 255) # noqa: E731
pack_format = 'B'
elif fmt.sampleFormat() == QAudioFormat.Int16:
- scaler = lambda x: x * 127
+ scaler = lambda x: x * 127 # noqa: E731
pack_format = 'b'
elif sample_size == 16:
little_endian = QSysInfo.ByteOrder == QSysInfo.LittleEndian
if fmt.sampleFormat() == QAudioFormat.UInt8:
- scaler = lambda x: (1.0 + x) / 2 * 65535
+ scaler = lambda x: (1.0 + x) / 2 * 65535 # noqa: E731
pack_format = '<H' if little_endian else '>H'
elif fmt.sampleFormat() == QAudioFormat.Int16:
- scaler = lambda x: x * 32767
+ scaler = lambda x: x * 32767 # noqa: E731
pack_format = '<h' if little_endian else '>h'
- assert(pack_format != '')
+ assert pack_format != ''
channel_bytes = fmt.bytesPerSample()
- sample_bytes = fmt.channelCount() * channel_bytes
length = (fmt.sampleRate() * fmt.channelCount() * channel_bytes) * durationUs // 100000
@@ -133,16 +132,14 @@ class AudioTest(QMainWindow):
layout.addWidget(self.m_modeButton)
- self.m_suspendResumeButton = QPushButton(
- clicked=self.toggle_suspend_resume)
+ self.m_suspendResumeButton = QPushButton(clicked=self.toggle_suspend_resume)
self.m_suspendResumeButton.setText(self.SUSPEND_LABEL)
layout.addWidget(self.m_suspendResumeButton)
volume_box = QHBoxLayout()
volume_label = QLabel("Volume:")
- self.m_volumeSlider = QSlider(Qt.Horizontal, minimum=0, maximum=100,
- singleStep=10)
+ self.m_volumeSlider = QSlider(Qt.Horizontal, minimum=0, maximum=100, singleStep=10)
self.m_volumeSlider.valueChanged.connect(self.volume_changed)
volume_box.addWidget(volume_label)
@@ -167,8 +164,8 @@ class AudioTest(QMainWindow):
qWarning("Default format not supported - trying to use nearest")
self.m_format = info.nearestFormat(self.m_format)
- self.m_generator = Generator(self.m_format,
- self.DURATION_SECONDS * 1000000, self.TONE_SAMPLE_RATE_HZ, self)
+ self.m_generator = Generator(self.m_format, self.DURATION_SECONDS * 1000000,
+ self.TONE_SAMPLE_RATE_HZ, self)
self.create_audio_output()
@@ -180,11 +177,18 @@ class AudioTest(QMainWindow):
self.m_audioSink.start(self.m_generator)
self.m_volumeSlider.setValue(self.m_audioSink.volume() * 100)
- @Slot(int)
- def device_changed(self, index):
+ def closeEvent(self, e):
+ self.stop()
+ e.accept()
+
+ def stop(self):
self.m_pullTimer.stop()
self.m_generator.stop()
self.m_audioSink.stop()
+
+ @Slot(int)
+ def device_changed(self, index):
+ self.stop()
self.m_device = self.m_deviceBox.itemData(index)
self.create_audio_output()
diff --git a/examples/multimedia/audiooutput/doc/audiooutput.rst b/examples/multimedia/audiooutput/doc/audiooutput.rst
index bbd71c5d8..fac7e33e1 100644
--- a/examples/multimedia/audiooutput/doc/audiooutput.rst
+++ b/examples/multimedia/audiooutput/doc/audiooutput.rst
@@ -1,6 +1,8 @@
Audio Output Example
====================
+.. tags:: Android
+
Audio Output demonstrates the basic use cases of QAudioOutput.
This example provides a tone generator to supply continuous audio playback. The
diff --git a/examples/multimedia/audiosource/audiosource.py b/examples/multimedia/audiosource/audiosource.py
index 79c0b6f82..a78beb584 100644
--- a/examples/multimedia/audiosource/audiosource.py
+++ b/examples/multimedia/audiosource/audiosource.py
@@ -12,27 +12,21 @@ Note: This Python example is not fully complete as compared to its C++ counterpa
Only the push mode works at the moment. For the pull mode to work, the class
QIODevice have python bindings that needs to be fixed.
"""
+import os
import sys
from typing import Optional
import PySide6
-from PySide6.QtCore import QByteArray, QIODevice, QMargins, QRect, Qt, Signal, Slot
+from PySide6.QtCore import QByteArray, QMargins, Qt, Slot, qWarning
from PySide6.QtGui import QPainter, QPalette
-from PySide6.QtMultimedia import (
- QAudio,
- QAudioDevice,
- QAudioFormat,
- QAudioSource,
- QMediaDevices,
-)
-from PySide6.QtWidgets import (
- QApplication,
- QComboBox,
- QPushButton,
- QSlider,
- QVBoxLayout,
- QWidget,
-)
+from PySide6.QtMultimedia import QAudio, QAudioDevice, QAudioFormat, QAudioSource, QMediaDevices
+from PySide6.QtWidgets import (QApplication, QComboBox, QPushButton, QSlider, QVBoxLayout,
+ QWidget, QLabel)
+
+is_android = os.environ.get('ANDROID_ARGUMENT')
+
+if is_android or sys.platform == "darwin":
+ from PySide6.QtCore import QMicrophonePermission
class AudioInfo:
@@ -95,6 +89,28 @@ class InputTest(QWidget):
super().__init__()
self.m_devices = QMediaDevices(self)
self.m_pullMode = False
+ self.initialize()
+
+ @Slot()
+ def initialize(self):
+ if is_android or sys.platform == "darwin":
+ is_nuitka = "__compiled__" in globals()
+ if not is_nuitka and sys.platform == "darwin":
+ print("This example does not work on macOS when Python is run in interpreted mode."
+ "For this example to work on macOS, package the example using pyside6-deploy"
+ "For more information, read `Notes for Developer` in the documentation")
+ sys.exit(0)
+ permission = QMicrophonePermission()
+ permission_status = qApp.checkPermission(permission) # noqa: F821
+ if permission_status == Qt.PermissionStatus.Undetermined:
+ qApp.requestPermission(permission, self, self.initialize) # noqa: F821
+ return
+ if permission_status == Qt.PermissionStatus.Denied:
+ qWarning("Microphone permission is not granted!")
+ self.initializeErrorWindow()
+ return
+ elif permission_status == Qt.PermissionStatus.Granted:
+ print("[AudioSource] Microphone permission granted")
self.initialize_window()
self.initialize_audio(QMediaDevices.defaultAudioInput())
@@ -132,6 +148,13 @@ class InputTest(QWidget):
self.m_suspend_resume_button.clicked.connect(self.toggle_suspend)
self.layout.addWidget(self.m_suspend_resume_button)
+ def initializeErrorWindow(self):
+ self.layout = QVBoxLayout(self)
+ error_label = QLabel(self.tr("Microphone permission is not granted!"))
+ error_label.setWordWrap(True)
+ error_label.setAlignment(Qt.AlignCenter)
+ self.layout.addWidget(error_label)
+
def initialize_audio(self, device_info: QAudioDevice):
format = QAudioFormat()
format.setSampleRate(8000)
diff --git a/examples/multimedia/audiosource/doc/audiosource.rst b/examples/multimedia/audiosource/doc/audiosource.rst
index b1dcd61a8..3a247c503 100644
--- a/examples/multimedia/audiosource/doc/audiosource.rst
+++ b/examples/multimedia/audiosource/doc/audiosource.rst
@@ -1,6 +1,8 @@
Audio Source Example
====================
+.. tags:: Android
+
A Python application that demonstrates the analogous example in C++
`Audio Source Example <https://doc-snapshots.qt.io/qt6-dev/qtmultimedia-multimedia-audiosource-example.html>`_
diff --git a/examples/multimedia/camera/camera.py b/examples/multimedia/camera/camera.py
index bbcba0b02..fa379c807 100644
--- a/examples/multimedia/camera/camera.py
+++ b/examples/multimedia/camera/camera.py
@@ -1,172 +1,369 @@
-# Copyright (C) 2022 The Qt Company Ltd.
+# Copyright (C) 2023 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-"""PySide6 Multimedia Camera Example"""
-
import os
import sys
-from PySide6.QtCore import QDate, QDir, QStandardPaths, Qt, QUrl, Slot
-from PySide6.QtGui import QAction, QGuiApplication, QDesktopServices, QIcon
-from PySide6.QtGui import QImage, QPixmap
-from PySide6.QtWidgets import (QApplication, QHBoxLayout, QLabel,
- QMainWindow, QPushButton, QTabWidget, QToolBar, QVBoxLayout, QWidget)
-from PySide6.QtMultimedia import (QCamera, QImageCapture,
- QCameraDevice, QMediaCaptureSession,
- QMediaDevices)
-from PySide6.QtMultimediaWidgets import QVideoWidget
-
-
-class ImageView(QWidget):
- def __init__(self, previewImage, fileName):
+from pathlib import Path
+
+from PySide6.QtMultimedia import (QAudioInput, QCamera, QCameraDevice,
+ QImageCapture, QMediaCaptureSession,
+ QMediaDevices, QMediaMetaData,
+ QMediaRecorder)
+from PySide6.QtWidgets import QDialog, QMainWindow, QMessageBox
+from PySide6.QtGui import QAction, QActionGroup, QIcon, QImage, QPixmap
+from PySide6.QtCore import QDateTime, QDir, QTimer, Qt, Slot, qWarning
+
+from metadatadialog import MetaDataDialog
+from imagesettings import ImageSettings
+from videosettings import VideoSettings, is_android
+
+if is_android or sys.platform == "darwin":
+ from PySide6.QtCore import QMicrophonePermission, QCameraPermission
+
+if is_android:
+ from ui_camera_mobile import Ui_Camera
+else:
+ from ui_camera import Ui_Camera
+
+
+class Camera(QMainWindow):
+ def __init__(self):
super().__init__()
- self._file_name = fileName
+ self._video_devices_group = None
+ self.m_devices = QMediaDevices()
+ self.m_imageCapture = None
+ self.m_captureSession = QMediaCaptureSession()
+ self.m_camera = None
+ self.m_mediaRecorder = None
+
+ self.m_isCapturingImage = False
+ self.m_applicationExiting = False
+ self.m_doImageCapture = True
+
+ self.m_metaDataDialog = None
+
+ self._ui = Ui_Camera()
+ self._ui.setupUi(self)
+ image = Path(__file__).parent / "shutter.svg"
+ self._ui.takeImageButton.setIcon(QIcon(os.fspath(image)))
+ if not is_android:
+ self._ui.actionAbout_Qt.triggered.connect(qApp.aboutQt) # noqa: F821
+
+ # disable all buttons by default
+ self.updateCameraActive(False)
+ self.readyForCapture(False)
+ self._ui.recordButton.setEnabled(False)
+ self._ui.pauseButton.setEnabled(False)
+ self._ui.stopButton.setEnabled(False)
+ self._ui.metaDataButton.setEnabled(False)
+
+ # try to actually initialize camera & mic
+ self.initialize()
+
+ @Slot()
+ def initialize(self):
+ if is_android or sys.platform == "darwin":
+ is_nuitka = "__compiled__" in globals()
+ if not is_nuitka and sys.platform == "darwin":
+ print("This example does not work on macOS when Python is run in interpreted mode."
+ "For this example to work on macOS, package the example using pyside6-deploy"
+ "For more information, read `Notes for Developer` in the documentation")
+ sys.exit(0)
+
+ # camera
+ cam_permission = QCameraPermission()
+ cam_permission_status = qApp.checkPermission(cam_permission) # noqa: F821
+ if cam_permission_status == Qt.PermissionStatus.Undetermined:
+ qApp.requestPermission(cam_permission, self, self.initialize) # noqa: F821
+ return
+ if cam_permission_status == Qt.PermissionStatus.Denied:
+ qWarning("Camera permission is not granted!")
+ return
+ elif cam_permission_status == Qt.PermissionStatus.Granted:
+ print("[AudioSource] Camera permission granted")
+
+ # microphone
+ microphone_permission = QMicrophonePermission()
+ microphone_permission_status = qApp.checkPermission(microphone_permission) # noqa: F821
+ if microphone_permission_status == Qt.PermissionStatus.Undetermined:
+ qApp.requestPermission(microphone_permission, self, self.initialize) # noqa: F821
+ return
+ if microphone_permission_status == Qt.PermissionStatus.Denied:
+ qWarning("Microphone permission is not granted!")
+ self.initializeErrorWindow()
+ return
+ elif microphone_permission_status == Qt.PermissionStatus.Granted:
+ print("[AudioSource] Microphone permission granted")
+
+ self.m_audioInput = QAudioInput()
+ self.m_captureSession.setAudioInput(self.m_audioInput)
+
+ # Camera devices
+
+ self._video_devices_group = QActionGroup(self)
+ self._video_devices_group.setExclusive(True)
+ self.updateCameras()
+ self.m_devices.videoInputsChanged.connect(self.updateCameras)
+
+ self._video_devices_group.triggered.connect(self.updateCameraDevice)
+ self._ui.captureWidget.currentChanged.connect(self.updateCaptureMode)
+
+ self._ui.metaDataButton.clicked.connect(self.showMetaDataDialog)
+ self._ui.exposureCompensation.valueChanged.connect(self.setExposureCompensation)
+
+ self.setCamera(QMediaDevices.defaultVideoInput())
+
+ @Slot(QCameraDevice)
+ def setCamera(self, cameraDevice):
+ self.m_camera = QCamera(cameraDevice)
+ self.m_captureSession.setCamera(self.m_camera)
+
+ self.m_camera.activeChanged.connect(self.updateCameraActive)
+ self.m_camera.errorOccurred.connect(self.displayCameraError)
+
+ if not self.m_mediaRecorder:
+ self.m_mediaRecorder = QMediaRecorder()
+ self.m_captureSession.setRecorder(self.m_mediaRecorder)
+ self.m_mediaRecorder.recorderStateChanged.connect(self.updateRecorderState)
+ self.m_mediaRecorder.durationChanged.connect(self.updateRecordTime)
+ self.m_mediaRecorder.errorChanged.connect(self.displayRecorderError)
+
+ if not self.m_imageCapture:
+ self.m_imageCapture = QImageCapture()
+ self.m_captureSession.setImageCapture(self.m_imageCapture)
+ self.m_imageCapture.readyForCaptureChanged.connect(self.readyForCapture)
+ self.m_imageCapture.imageCaptured.connect(self.processCapturedImage)
+ self.m_imageCapture.imageSaved.connect(self.imageSaved)
+ self.m_imageCapture.errorOccurred.connect(self.displayCaptureError)
+
+ self.m_captureSession.setVideoOutput(self._ui.viewfinder)
+
+ self.updateCameraActive(self.m_camera.isActive())
+ self.updateRecorderState(self.m_mediaRecorder.recorderState())
+ self.readyForCapture(self.m_imageCapture.isReadyForCapture())
+
+ self.updateCaptureMode()
+
+ self.m_camera.start()
+
+ def keyPressEvent(self, event):
+ if event.isAutoRepeat():
+ return
+
+ key = event.key()
+ if key == Qt.Key_CameraFocus:
+ self.displayViewfinder()
+ event.accept()
+ elif key == Qt.Key_Camera:
+ if self.m_doImageCapture:
+ self.takeImage()
+ else:
+ if self.m_mediaRecorder.recorderState() == QMediaRecorder.RecordingState:
+ self.stop()
+ else:
+ self.record()
+
+ event.accept()
+ else:
+ super().keyPressEvent(event)
+
+ @Slot()
+ def updateRecordTime(self):
+ d = self.m_mediaRecorder.duration() / 1000
+ self._ui.statusbar.showMessage(f"Recorded {d} sec")
+
+ @Slot(int, QImage)
+ def processCapturedImage(self, requestId, img):
+ scaled_image = img.scaled(self._ui.viewfinder.size(), Qt.KeepAspectRatio,
+ Qt.SmoothTransformation)
- main_layout = QVBoxLayout(self)
- self._image_label = QLabel()
- self._image_label.setPixmap(QPixmap.fromImage(previewImage))
- main_layout.addWidget(self._image_label)
+ self._ui.lastImagePreviewLabel.setPixmap(QPixmap.fromImage(scaled_image))
- top_layout = QHBoxLayout()
- self._file_name_label = QLabel(QDir.toNativeSeparators(fileName))
- self._file_name_label.setTextInteractionFlags(Qt.TextBrowserInteraction)
+ # Display captured image for 4 seconds.
+ self.displayCapturedImage()
+ QTimer.singleShot(4000, self.displayViewfinder)
- top_layout.addWidget(self._file_name_label)
- top_layout.addStretch()
- copy_button = QPushButton("Copy")
- copy_button.setToolTip("Copy file name to clipboard")
- top_layout.addWidget(copy_button)
- copy_button.clicked.connect(self.copy)
- launch_button = QPushButton("Launch")
- launch_button.setToolTip("Launch image viewer")
- top_layout.addWidget(launch_button)
- launch_button.clicked.connect(self.launch)
- main_layout.addLayout(top_layout)
+ @Slot()
+ def configureCaptureSettings(self):
+ if self.m_doImageCapture:
+ self.configureImageSettings()
+ else:
+ self.configureVideoSettings()
@Slot()
- def copy(self):
- QGuiApplication.clipboard().setText(self._file_name_label.text())
+ def configureVideoSettings(self):
+ settings_dialog = VideoSettings(self.m_mediaRecorder)
+
+ if settings_dialog.exec():
+ settings_dialog.apply_settings()
@Slot()
- def launch(self):
- QDesktopServices.openUrl(QUrl.fromLocalFile(self._file_name))
+ def configureImageSettings(self):
+ settings_dialog = ImageSettings(self.m_imageCapture)
+ if settings_dialog.exec():
+ settings_dialog.apply_image_settings()
-class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
+ @Slot()
+ def record(self):
+ self.m_mediaRecorder.record()
+ self.updateRecordTime()
- self._capture_session = None
- self._camera = None
- self._camera_info = None
- self._image_capture = None
+ @Slot()
+ def pause(self):
+ self.m_mediaRecorder.pause()
- available_cameras = QMediaDevices.videoInputs()
- if available_cameras:
- self._camera_info = available_cameras[0]
- self._camera = QCamera(self._camera_info)
- self._camera.errorOccurred.connect(self._camera_error)
- self._image_capture = QImageCapture(self._camera)
- self._image_capture.imageCaptured.connect(self.image_captured)
- self._image_capture.imageSaved.connect(self.image_saved)
- self._image_capture.errorOccurred.connect(self._capture_error)
- self._capture_session = QMediaCaptureSession()
- self._capture_session.setCamera(self._camera)
- self._capture_session.setImageCapture(self._image_capture)
-
- self._current_preview = QImage()
-
- tool_bar = QToolBar()
- self.addToolBar(tool_bar)
-
- file_menu = self.menuBar().addMenu("&File")
- shutter_icon = QIcon(os.path.join(os.path.dirname(__file__),
- "shutter.svg"))
- self._take_picture_action = QAction(shutter_icon, "&Take Picture", self,
- shortcut="Ctrl+T",
- triggered=self.take_picture)
- self._take_picture_action.setToolTip("Take Picture")
- file_menu.addAction(self._take_picture_action)
- tool_bar.addAction(self._take_picture_action)
-
- exit_action = QAction(QIcon.fromTheme("application-exit"), "E&xit",
- self, shortcut="Ctrl+Q", triggered=self.close)
- file_menu.addAction(exit_action)
-
- about_menu = self.menuBar().addMenu("&About")
- about_qt_action = QAction("About &Qt", self, triggered=qApp.aboutQt)
- about_menu.addAction(about_qt_action)
-
- self._tab_widget = QTabWidget()
- self.setCentralWidget(self._tab_widget)
-
- self._camera_viewfinder = QVideoWidget()
- self._tab_widget.addTab(self._camera_viewfinder, "Viewfinder")
-
- if self._camera and self._camera.error() == QCamera.NoError:
- name = self._camera_info.description()
- self.setWindowTitle(f"PySide6 Camera Example ({name})")
- self.show_status_message(f"Starting: '{name}'")
- self._capture_session.setVideoOutput(self._camera_viewfinder)
- self._take_picture_action.setEnabled(self._image_capture.isReadyForCapture())
- self._image_capture.readyForCaptureChanged.connect(self._take_picture_action.setEnabled)
- self._camera.start()
+ @Slot()
+ def stop(self):
+ self.m_mediaRecorder.stop()
+
+ @Slot(bool)
+ def setMuted(self, muted):
+ self.m_captureSession.audioInput().setMuted(muted)
+
+ @Slot()
+ def takeImage(self):
+ self.m_isCapturingImage = True
+ self.m_imageCapture.captureToFile()
+
+ @Slot(int, QImageCapture.Error, str)
+ def displayCaptureError(self, id, error, errorString):
+ QMessageBox.warning(self, "Image Capture Error", errorString)
+ self.m_isCapturingImage = False
+
+ @Slot()
+ def startCamera(self):
+ self.m_camera.start()
+
+ @Slot()
+ def stopCamera(self):
+ self.m_camera.stop()
+
+ @Slot()
+ def updateCaptureMode(self):
+ tab_index = self._ui.captureWidget.currentIndex()
+ self.m_doImageCapture = (tab_index == 0)
+
+ @Slot(bool)
+ def updateCameraActive(self, active):
+ if active:
+ self._ui.actionStartCamera.setEnabled(False)
+ self._ui.actionStopCamera.setEnabled(True)
+ self._ui.captureWidget.setEnabled(True)
+ self._ui.actionSettings.setEnabled(True)
else:
- self.setWindowTitle("PySide6 Camera Example")
- self._take_picture_action.setEnabled(False)
- self.show_status_message("Camera unavailable")
+ self._ui.actionStartCamera.setEnabled(True)
+ self._ui.actionStopCamera.setEnabled(False)
+ self._ui.captureWidget.setEnabled(False)
+ self._ui.actionSettings.setEnabled(False)
+
+ @Slot(QMediaRecorder.RecorderState)
+ def updateRecorderState(self, state):
+ if state == QMediaRecorder.StoppedState:
+ self._ui.recordButton.setEnabled(True)
+ self._ui.pauseButton.setEnabled(True)
+ self._ui.stopButton.setEnabled(False)
+ self._ui.metaDataButton.setEnabled(True)
+ elif state == QMediaRecorder.PausedState:
+ self._ui.recordButton.setEnabled(True)
+ self._ui.pauseButton.setEnabled(False)
+ self._ui.stopButton.setEnabled(True)
+ self._ui.metaDataButton.setEnabled(False)
+ elif state == QMediaRecorder.RecordingState:
+ self._ui.recordButton.setEnabled(False)
+ self._ui.pauseButton.setEnabled(True)
+ self._ui.stopButton.setEnabled(True)
+ self._ui.metaDataButton.setEnabled(False)
+
+ @Slot(int)
+ def setExposureCompensation(self, index):
+ self.m_camera.setExposureCompensation(index * 0.5)
- def show_status_message(self, message):
- self.statusBar().showMessage(message, 5000)
+ @Slot()
+ def displayRecorderError(self):
+ if self.m_mediaRecorder.error() != QMediaRecorder.NoError:
+ QMessageBox.warning(self, "Capture Error",
+ self.m_mediaRecorder.errorString())
- def closeEvent(self, event):
- if self._camera and self._camera.isActive():
- self._camera.stop()
- event.accept()
-
- def next_image_file_name(self):
- pictures_location = QStandardPaths.writableLocation(QStandardPaths.PicturesLocation)
- date_string = QDate.currentDate().toString("yyyyMMdd")
- pattern = f"{pictures_location}/pyside6_camera_{date_string}_{{:03d}}.jpg"
- n = 1
- while True:
- result = pattern.format(n)
- if not os.path.exists(result):
- return result
- n = n + 1
- return None
-
- @Slot()
- def take_picture(self):
- self._current_preview = QImage()
- self._image_capture.captureToFile(self.next_image_file_name())
+ @Slot()
+ def displayCameraError(self):
+ if self.m_camera.error() != QCamera.NoError:
+ QMessageBox.warning(self, "Camera Error",
+ self.m_camera.errorString())
- @Slot(int, QImage)
- def image_captured(self, id, previewImage):
- self._current_preview = previewImage
+ @Slot(QAction)
+ def updateCameraDevice(self, action):
+ self.setCamera(QCameraDevice(action))
+
+ @Slot()
+ def displayViewfinder(self):
+ self._ui.stackedWidget.setCurrentIndex(0)
+
+ @Slot()
+ def displayCapturedImage(self):
+ self._ui.stackedWidget.setCurrentIndex(1)
+
+ @Slot(bool)
+ def readyForCapture(self, ready):
+ self._ui.takeImageButton.setEnabled(ready)
@Slot(int, str)
- def image_saved(self, id, fileName):
- index = self._tab_widget.count()
- image_view = ImageView(self._current_preview, fileName)
- self._tab_widget.addTab(image_view, f"Capture #{index}")
- self._tab_widget.setCurrentIndex(index)
+ def imageSaved(self, id, fileName):
+ f = QDir.toNativeSeparators(fileName)
+ self._ui.statusbar.showMessage(f"Captured \"{f}\"")
- @Slot(int, QImageCapture.Error, str)
- def _capture_error(self, id, error, error_string):
- print(error_string, file=sys.stderr)
- self.show_status_message(error_string)
-
- @Slot(QCamera.Error, str)
- def _camera_error(self, error, error_string):
- print(error_string, file=sys.stderr)
- self.show_status_message(error_string)
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- main_win = MainWindow()
- available_geometry = main_win.screen().availableGeometry()
- main_win.resize(available_geometry.width() / 3, available_geometry.height() / 2)
- main_win.show()
- sys.exit(app.exec())
+ self.m_isCapturingImage = False
+ if self.m_applicationExiting:
+ self.close()
+
+ def closeEvent(self, event):
+ if self.m_isCapturingImage:
+ self.setEnabled(False)
+ self.m_applicationExiting = True
+ event.ignore()
+ else:
+ event.accept()
+
+ @Slot()
+ def updateCameras(self):
+ self._ui.menuDevices.clear()
+ available_cameras = QMediaDevices.videoInputs()
+ for cameraDevice in available_cameras:
+ video_device_action = QAction(cameraDevice.description(),
+ self._video_devices_group)
+ video_device_action.setCheckable(True)
+ video_device_action.setData(cameraDevice)
+ if cameraDevice == QMediaDevices.defaultVideoInput():
+ video_device_action.setChecked(True)
+
+ self._ui.menuDevices.addAction(video_device_action)
+
+ @Slot()
+ def showMetaDataDialog(self):
+ if not self.m_metaDataDialog:
+ self.m_metaDataDialog = MetaDataDialog(self)
+ self.m_metaDataDialog.setAttribute(Qt.WA_DeleteOnClose, False)
+ if self.m_metaDataDialog.exec() == QDialog.Accepted:
+ self.saveMetaData()
+
+ @Slot()
+ def saveMetaData(self):
+ data = QMediaMetaData()
+ for i in range(0, QMediaMetaData.NumMetaData):
+ val = self.m_metaDataDialog.m_metaDataFields[i].text()
+ if val:
+ key = QMediaMetaData.Key(i)
+ if key == QMediaMetaData.CoverArtImage:
+ cover_art = QImage(val)
+ data.insert(key, cover_art)
+ elif key == QMediaMetaData.ThumbnailImage:
+ thumbnail = QImage(val)
+ data.insert(key, thumbnail)
+ elif key == QMediaMetaData.Date:
+ date = QDateTime.fromString(val)
+ data.insert(key, date)
+ else:
+ data.insert(key, val)
+
+ self.m_mediaRecorder.setMetaData(data)
diff --git a/examples/multimedia/camera/camera.pyproject b/examples/multimedia/camera/camera.pyproject
index ffc6a11ed..9067b1dfa 100644
--- a/examples/multimedia/camera/camera.pyproject
+++ b/examples/multimedia/camera/camera.pyproject
@@ -1,3 +1,12 @@
{
- "files": ["camera.py"]
+ "files": ["main.py",
+ "camera.py",
+ "camera.ui",
+ "camera_mobile.ui",
+ "imagesettings.py",
+ "imagesettings.ui",
+ "metadatadialog.py",
+ "videosettings.py",
+ "videosettings.ui",
+ "videosettings_mobile.ui"]
}
diff --git a/examples/multimedia/camera/camera.ui b/examples/multimedia/camera/camera.ui
new file mode 100644
index 000000000..4584e909c
--- /dev/null
+++ b/examples/multimedia/camera/camera.ui
@@ -0,0 +1,497 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Camera</class>
+ <widget class="QMainWindow" name="Camera">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>668</width>
+ <height>429</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Camera</string>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="1" column="1" colspan="2">
+ <widget class="QTabWidget" name="captureWidget">
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab_2">
+ <attribute name="title">
+ <string>Image</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="3" column="0">
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>161</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="0">
+ <widget class="QPushButton" name="takeImageButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Capture Photo</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QSlider" name="exposureCompensation">
+ <property name="minimum">
+ <number>-4</number>
+ </property>
+ <property name="maximum">
+ <number>4</number>
+ </property>
+ <property name="pageStep">
+ <number>2</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition">
+ <enum>QSlider::TicksAbove</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Exposure Compensation:</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab">
+ <attribute name="title">
+ <string>Video</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="QPushButton" name="recordButton">
+ <property name="text">
+ <string>Record</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QPushButton" name="pauseButton">
+ <property name="text">
+ <string>Pause</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QPushButton" name="stopButton">
+ <property name="text">
+ <string>Stop</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>76</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="4" column="0">
+ <widget class="QPushButton" name="muteButton">
+ <property name="text">
+ <string>Mute</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QPushButton" name="metaDataButton">
+ <property name="text">
+ <string>Set metadata</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item row="0" column="0" rowspan="2">
+ <widget class="QStackedWidget" name="stackedWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="palette">
+ <palette>
+ <active>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </active>
+ <inactive>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </inactive>
+ <disabled>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </disabled>
+ </palette>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="viewfinderPage">
+ <layout class="QGridLayout" name="gridLayout_5">
+ <item row="0" column="0">
+ <widget class="QVideoWidget" name="viewfinder" native="true"/>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="previewPage">
+ <layout class="QGridLayout" name="gridLayout_4">
+ <item row="0" column="0">
+ <widget class="QLabel" name="lastImagePreviewLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menubar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>668</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuFile">
+ <property name="title">
+ <string>File</string>
+ </property>
+ <addaction name="actionStartCamera"/>
+ <addaction name="actionStopCamera"/>
+ <addaction name="separator"/>
+ <addaction name="actionSettings"/>
+ <addaction name="separator"/>
+ <addaction name="actionExit"/>
+ </widget>
+ <widget class="QMenu" name="menuDevices">
+ <property name="title">
+ <string>Devices</string>
+ </property>
+ </widget>
+ <widget class="QMenu" name="menuHelp">
+ <property name="title">
+ <string>Help</string>
+ </property>
+ <addaction name="actionAbout_Qt"/>
+ </widget>
+ <addaction name="menuFile"/>
+ <addaction name="menuDevices"/>
+ <addaction name="menuHelp"/>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ <action name="actionExit">
+ <property name="text">
+ <string>Quit</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+Q</string>
+ </property>
+ </action>
+ <action name="actionStartCamera">
+ <property name="text">
+ <string>Start Camera</string>
+ </property>
+ </action>
+ <action name="actionStopCamera">
+ <property name="text">
+ <string>Stop Camera</string>
+ </property>
+ </action>
+ <action name="actionSettings">
+ <property name="text">
+ <string>Change Settings</string>
+ </property>
+ </action>
+ <action name="actionAbout_Qt">
+ <property name="text">
+ <string>About Qt</string>
+ </property>
+ </action>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>QVideoWidget</class>
+ <extends>QWidget</extends>
+ <header>qvideowidget.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>recordButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>record()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>149</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>61</x>
+ <y>238</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>stopButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>stop()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>225</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>140</x>
+ <y>236</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pauseButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>pause()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>187</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>234</x>
+ <y>237</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionExit</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>154</x>
+ <y>130</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>takeImageButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>takeImage()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>625</x>
+ <y>132</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>603</x>
+ <y>169</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>muteButton</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Camera</receiver>
+ <slot>setMuted(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>377</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>5</x>
+ <y>280</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>exposureCompensation</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Camera</receiver>
+ <slot>setExposureCompensation(int)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>559</x>
+ <y>367</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>665</x>
+ <y>365</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionSettings</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>configureCaptureSettings()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionStartCamera</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>startCamera()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionStopCamera</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>stopCamera()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+ <slots>
+ <slot>record()</slot>
+ <slot>pause()</slot>
+ <slot>stop()</slot>
+ <slot>enablePreview(bool)</slot>
+ <slot>configureCaptureSettings()</slot>
+ <slot>takeImage()</slot>
+ <slot>startCamera()</slot>
+ <slot>toggleLock()</slot>
+ <slot>setMuted(bool)</slot>
+ <slot>stopCamera()</slot>
+ <slot>setExposureCompensation(int)</slot>
+ </slots>
+</ui>
diff --git a/examples/multimedia/camera/camera_mobile.ui b/examples/multimedia/camera/camera_mobile.ui
new file mode 100644
index 000000000..7f269b17b
--- /dev/null
+++ b/examples/multimedia/camera/camera_mobile.ui
@@ -0,0 +1,504 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Camera</class>
+ <widget class="QMainWindow" name="Camera">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>668</width>
+ <height>429</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Camera</string>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="1" column="1" colspan="2">
+ <widget class="QTabWidget" name="captureWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab_2">
+ <attribute name="title">
+ <string>Image</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="4" column="0">
+ <widget class="QSlider" name="exposureCompensation">
+ <property name="minimum">
+ <number>-4</number>
+ </property>
+ <property name="maximum">
+ <number>4</number>
+ </property>
+ <property name="pageStep">
+ <number>2</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition">
+ <enum>QSlider::TicksAbove</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Exposure Compensation:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QPushButton" name="takeImageButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Capture Photo</string>
+ </property>
+ <property name="icon">
+ <iconset>
+ <normaloff>:/images/shutter.svg</normaloff>:/images/shutter.svg</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab">
+ <attribute name="title">
+ <string>Video</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QPushButton" name="recordButton">
+ <property name="text">
+ <string>Record</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pauseButton">
+ <property name="text">
+ <string>Pause</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="stopButton">
+ <property name="text">
+ <string>Stop</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="muteButton">
+ <property name="text">
+ <string>Mute</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="metaDataButton">
+ <property name="text">
+ <string>Set metadata</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QStackedWidget" name="stackedWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="palette">
+ <palette>
+ <active>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </active>
+ <inactive>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </inactive>
+ <disabled>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </disabled>
+ </palette>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="viewfinderPage">
+ <layout class="QGridLayout" name="gridLayout_5">
+ <item row="0" column="0">
+ <widget class="QVideoWidget" name="viewfinder" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="previewPage">
+ <layout class="QGridLayout" name="gridLayout_4">
+ <item row="0" column="0">
+ <widget class="QLabel" name="lastImagePreviewLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menubar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>668</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuFile">
+ <property name="title">
+ <string>File</string>
+ </property>
+ <addaction name="actionStartCamera"/>
+ <addaction name="actionStopCamera"/>
+ <addaction name="separator"/>
+ <addaction name="actionSettings"/>
+ <addaction name="separator"/>
+ <addaction name="actionExit"/>
+ </widget>
+ <widget class="QMenu" name="menuDevices">
+ <property name="title">
+ <string>Devices</string>
+ </property>
+ </widget>
+ <addaction name="menuFile"/>
+ <addaction name="menuDevices"/>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ <action name="actionExit">
+ <property name="text">
+ <string>Close</string>
+ </property>
+ </action>
+ <action name="actionStartCamera">
+ <property name="text">
+ <string>Start Camera</string>
+ </property>
+ </action>
+ <action name="actionStopCamera">
+ <property name="text">
+ <string>Stop Camera</string>
+ </property>
+ </action>
+ <action name="actionSettings">
+ <property name="text">
+ <string>Change Settings</string>
+ </property>
+ </action>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>QVideoWidget</class>
+ <extends>QWidget</extends>
+ <header>qvideowidget.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>recordButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>record()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>149</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>61</x>
+ <y>238</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>stopButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>stop()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>225</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>140</x>
+ <y>236</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pauseButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>pause()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>187</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>234</x>
+ <y>237</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionExit</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>154</x>
+ <y>130</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>takeImageButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>takeImage()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>625</x>
+ <y>132</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>603</x>
+ <y>169</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>muteButton</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Camera</receiver>
+ <slot>setMuted(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>377</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>5</x>
+ <y>280</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>exposureCompensation</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Camera</receiver>
+ <slot>setExposureCompensation(int)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>559</x>
+ <y>367</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>665</x>
+ <y>365</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionSettings</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>configureCaptureSettings()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionStartCamera</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>startCamera()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionStopCamera</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>stopCamera()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+ <slots>
+ <slot>record()</slot>
+ <slot>pause()</slot>
+ <slot>stop()</slot>
+ <slot>enablePreview(bool)</slot>
+ <slot>configureCaptureSettings()</slot>
+ <slot>takeImage()</slot>
+ <slot>startCamera()</slot>
+ <slot>toggleLock()</slot>
+ <slot>setMuted(bool)</slot>
+ <slot>stopCamera()</slot>
+ <slot>setExposureCompensation(int)</slot>
+ </slots>
+</ui>
diff --git a/examples/multimedia/camera/doc/camera.png b/examples/multimedia/camera/doc/camera.png
deleted file mode 100644
index 7ebf1e826..000000000
--- a/examples/multimedia/camera/doc/camera.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/camera/doc/camera.rst b/examples/multimedia/camera/doc/camera.rst
index 0b37b2c6a..7fc75a387 100644
--- a/examples/multimedia/camera/doc/camera.rst
+++ b/examples/multimedia/camera/doc/camera.rst
@@ -1,12 +1,14 @@
Camera Example
===============
+.. tags:: Android
+
The Camera Example shows how to use the API to capture a still image or video.
The Camera Example demonstrates how you can use Qt Multimedia to implement some
basic Camera functionality to take still images and record video clips with
audio.
-.. image:: camera.png
- :width: 400
+.. image:: camera.webp
+ :width: 678
:alt: Camera Screenshot
diff --git a/examples/multimedia/camera/doc/camera.webp b/examples/multimedia/camera/doc/camera.webp
new file mode 100644
index 000000000..11ed18792
--- /dev/null
+++ b/examples/multimedia/camera/doc/camera.webp
Binary files differ
diff --git a/examples/multimedia/camera/imagesettings.py b/examples/multimedia/camera/imagesettings.py
new file mode 100644
index 000000000..9ca1d92ce
--- /dev/null
+++ b/examples/multimedia/camera/imagesettings.py
@@ -0,0 +1,56 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtMultimedia import QImageCapture
+from PySide6.QtWidgets import QDialog
+from PySide6.QtCore import QSize
+
+from ui_imagesettings import Ui_ImageSettingsUi
+
+
+def box_value(box):
+ idx = box.currentIndex()
+ return None if idx == -1 else box.itemData(idx)
+
+
+def select_combo_box_item(box, value):
+ idx = box.findData(value)
+ if idx != -1:
+ box.setCurrentIndex(idx)
+
+
+class ImageSettings(QDialog):
+
+ def __init__(self, imageCapture, parent=None):
+ super().__init__(parent)
+ self.imagecapture = imageCapture
+ self._ui = Ui_ImageSettingsUi()
+ self._ui.setupUi(self)
+
+ # image codecs
+ self._ui.imageCodecBox.addItem("Default image format",
+ QImageCapture.UnspecifiedFormat)
+ supported_image_formats = QImageCapture.supportedFormats()
+ for f in supported_image_formats:
+ description = QImageCapture.fileFormatDescription(f)
+ name = QImageCapture.fileFormatName(f)
+ self._ui.imageCodecBox.addItem(f"{name} : {description}", f)
+
+ self._ui.imageQualitySlider.setRange(0, QImageCapture.VeryHighQuality.value)
+
+ self._ui.imageResolutionBox.addItem("Default Resolution", QSize())
+ camera = imageCapture.captureSession().camera()
+ supported_resolutions = camera.cameraDevice().photoResolutions()
+ for resolution in supported_resolutions:
+ w, h = resolution.width(), resolution.height()
+ self._ui.imageResolutionBox.addItem(f"{w}x{h}", resolution)
+
+ select_combo_box_item(self._ui.imageCodecBox, imageCapture.fileFormat())
+ select_combo_box_item(self._ui.imageResolutionBox, imageCapture.resolution())
+ self._ui.imageQualitySlider.setValue(imageCapture.quality().value)
+
+ def apply_image_settings(self):
+ self.imagecapture.setFileFormat(box_value(self._ui.imageCodecBox))
+ q = self._ui.imageQualitySlider.value()
+ self.imagecapture.setQuality(QImageCapture.Quality(q))
+ self.imagecapture.setResolution(box_value(self._ui.imageResolutionBox))
diff --git a/examples/multimedia/camera/imagesettings.ui b/examples/multimedia/camera/imagesettings.ui
new file mode 100644
index 000000000..8c59ca01d
--- /dev/null
+++ b/examples/multimedia/camera/imagesettings.ui
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ImageSettingsUi</class>
+ <widget class="QDialog" name="ImageSettingsUi">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>332</width>
+ <height>270</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Image Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Image</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Resolution:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QComboBox" name="imageResolutionBox"/>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Image Format:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <widget class="QComboBox" name="imageCodecBox"/>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_7">
+ <property name="text">
+ <string>Quality:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QSlider" name="imageQualitySlider">
+ <property name="maximum">
+ <number>4</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>14</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="0">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ImageSettingsUi</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>322</x>
+ <y>272</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>44</x>
+ <y>230</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>ImageSettingsUi</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>405</x>
+ <y>262</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>364</x>
+ <y>227</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/multimedia/camera/main.py b/examples/multimedia/camera/main.py
new file mode 100644
index 000000000..fd4dd32e3
--- /dev/null
+++ b/examples/multimedia/camera/main.py
@@ -0,0 +1,17 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the QtMultiMedia camera example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtWidgets import QApplication
+
+from camera import Camera
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ camera = Camera()
+ camera.show()
+ sys.exit(app.exec())
diff --git a/examples/multimedia/camera/metadatadialog.py b/examples/multimedia/camera/metadatadialog.py
new file mode 100644
index 000000000..97d0a36e5
--- /dev/null
+++ b/examples/multimedia/camera/metadatadialog.py
@@ -0,0 +1,86 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtMultimedia import QMediaMetaData
+from PySide6.QtWidgets import (QDialog, QDialogButtonBox, QFileDialog,
+ QFormLayout, QHBoxLayout, QLineEdit,
+ QPushButton, QScrollArea, QVBoxLayout, QWidget)
+from PySide6.QtCore import QDateTime, QDir, Slot
+
+
+IMAGE_FILTER = "Image Files (*.png *.jpg *.bmp)"
+
+
+def default_value(key):
+ if key == QMediaMetaData.Title:
+ return "Qt Camera Example"
+ if key == QMediaMetaData.Author:
+ return "The Qt Company"
+ if key == QMediaMetaData.Date:
+ return QDateTime.currentDateTime().toString()
+ return ""
+
+
+class MetaDataDialog(QDialog):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.m_metaDataFields = []
+ meta_data_layout = QFormLayout()
+ for i in range(0, QMediaMetaData.NumMetaData):
+ key = QMediaMetaData.Key(i)
+ label = QMediaMetaData.metaDataKeyToString(QMediaMetaData.Key(key))
+ line_edit = QLineEdit(default_value(key))
+ line_edit.setClearButtonEnabled(True)
+ self.m_metaDataFields.append(line_edit)
+ if key == QMediaMetaData.ThumbnailImage:
+ open_thumbnail = QPushButton("Open")
+ open_thumbnail.clicked.connect(self.open_thumbnail_image)
+ layout = QHBoxLayout()
+ layout.addWidget(line_edit)
+ layout.addWidget(open_thumbnail)
+ meta_data_layout.addRow(label, layout)
+ elif key == QMediaMetaData.CoverArtImage:
+ open_cover_art = QPushButton("Open")
+ open_cover_art.clicked.connect(self.open_cover_art_image)
+ layout = QHBoxLayout()
+ layout.addWidget(line_edit)
+ layout.addWidget(open_cover_art)
+ meta_data_layout.addRow(label, layout)
+ else:
+ meta_data_layout.addRow(label, line_edit)
+
+ viewport = QWidget()
+ viewport.setLayout(meta_data_layout)
+ scroll_area = QScrollArea()
+ scroll_area.setWidget(viewport)
+ dialog_layout = QVBoxLayout(self)
+ dialog_layout.addWidget(scroll_area)
+
+ button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
+ dialog_layout.addWidget(button_box)
+
+ self.setWindowTitle("Set Metadata")
+ self.resize(400, 300)
+
+ button_box.accepted.connect(self.accept)
+ button_box.rejected.connect(self.reject)
+
+ @Slot()
+ def open_thumbnail_image(self):
+ dir = QDir.currentPath()
+ file_name = QFileDialog.getOpenFileName(self, "Open Image", dir,
+ IMAGE_FILTER)
+ if file_name:
+ i = QMediaMetaData.ThumbnailImage.value
+ self.m_metaDataFields[i].setText(file_name[0])
+
+ @Slot()
+ def open_cover_art_image(self):
+ dir = QDir.currentPath()
+ file_name = QFileDialog.getOpenFileName(self, "Open Image", dir,
+ IMAGE_FILTER)
+ if file_name:
+ i = QMediaMetaData.CoverArtImage.value
+ self.m_metaDataFields[i].setText(file_name[0])
diff --git a/examples/multimedia/camera/ui_camera.py b/examples/multimedia/camera/ui_camera.py
new file mode 100644
index 000000000..690cf3352
--- /dev/null
+++ b/examples/multimedia/camera/ui_camera.py
@@ -0,0 +1,232 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'camera.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtMultimediaWidgets import QVideoWidget
+from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QLabel,
+ QMainWindow, QMenu, QMenuBar, QPushButton,
+ QSizePolicy, QSlider, QSpacerItem, QStackedWidget,
+ QStatusBar, QTabWidget, QWidget)
+
+class Ui_Camera(object):
+ def setupUi(self, Camera):
+ if not Camera.objectName():
+ Camera.setObjectName(u"Camera")
+ Camera.resize(668, 429)
+ self.actionExit = QAction(Camera)
+ self.actionExit.setObjectName(u"actionExit")
+ self.actionStartCamera = QAction(Camera)
+ self.actionStartCamera.setObjectName(u"actionStartCamera")
+ self.actionStopCamera = QAction(Camera)
+ self.actionStopCamera.setObjectName(u"actionStopCamera")
+ self.actionSettings = QAction(Camera)
+ self.actionSettings.setObjectName(u"actionSettings")
+ self.actionAbout_Qt = QAction(Camera)
+ self.actionAbout_Qt.setObjectName(u"actionAbout_Qt")
+ self.centralwidget = QWidget(Camera)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.gridLayout_3 = QGridLayout(self.centralwidget)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.captureWidget = QTabWidget(self.centralwidget)
+ self.captureWidget.setObjectName(u"captureWidget")
+ self.tab_2 = QWidget()
+ self.tab_2.setObjectName(u"tab_2")
+ self.gridLayout = QGridLayout(self.tab_2)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.verticalSpacer_2 = QSpacerItem(20, 161, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.gridLayout.addItem(self.verticalSpacer_2, 3, 0, 1, 1)
+
+ self.takeImageButton = QPushButton(self.tab_2)
+ self.takeImageButton.setObjectName(u"takeImageButton")
+ self.takeImageButton.setEnabled(False)
+
+ self.gridLayout.addWidget(self.takeImageButton, 0, 0, 1, 1)
+
+ self.exposureCompensation = QSlider(self.tab_2)
+ self.exposureCompensation.setObjectName(u"exposureCompensation")
+ self.exposureCompensation.setMinimum(-4)
+ self.exposureCompensation.setMaximum(4)
+ self.exposureCompensation.setPageStep(2)
+ self.exposureCompensation.setOrientation(Qt.Horizontal)
+ self.exposureCompensation.setTickPosition(QSlider.TicksAbove)
+
+ self.gridLayout.addWidget(self.exposureCompensation, 5, 0, 1, 1)
+
+ self.label = QLabel(self.tab_2)
+ self.label.setObjectName(u"label")
+
+ self.gridLayout.addWidget(self.label, 4, 0, 1, 1)
+
+ self.captureWidget.addTab(self.tab_2, "")
+ self.tab = QWidget()
+ self.tab.setObjectName(u"tab")
+ self.gridLayout_2 = QGridLayout(self.tab)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.recordButton = QPushButton(self.tab)
+ self.recordButton.setObjectName(u"recordButton")
+
+ self.gridLayout_2.addWidget(self.recordButton, 0, 0, 1, 1)
+
+ self.pauseButton = QPushButton(self.tab)
+ self.pauseButton.setObjectName(u"pauseButton")
+
+ self.gridLayout_2.addWidget(self.pauseButton, 1, 0, 1, 1)
+
+ self.stopButton = QPushButton(self.tab)
+ self.stopButton.setObjectName(u"stopButton")
+
+ self.gridLayout_2.addWidget(self.stopButton, 2, 0, 1, 1)
+
+ self.verticalSpacer = QSpacerItem(20, 76, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.gridLayout_2.addItem(self.verticalSpacer, 3, 0, 1, 1)
+
+ self.muteButton = QPushButton(self.tab)
+ self.muteButton.setObjectName(u"muteButton")
+ self.muteButton.setCheckable(True)
+
+ self.gridLayout_2.addWidget(self.muteButton, 4, 0, 1, 1)
+
+ self.metaDataButton = QPushButton(self.tab)
+ self.metaDataButton.setObjectName(u"metaDataButton")
+ self.metaDataButton.setCheckable(True)
+
+ self.gridLayout_2.addWidget(self.metaDataButton, 5, 0, 1, 1)
+
+ self.captureWidget.addTab(self.tab, "")
+
+ self.gridLayout_3.addWidget(self.captureWidget, 1, 1, 1, 2)
+
+ self.stackedWidget = QStackedWidget(self.centralwidget)
+ self.stackedWidget.setObjectName(u"stackedWidget")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(1)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.stackedWidget.sizePolicy().hasHeightForWidth())
+ self.stackedWidget.setSizePolicy(sizePolicy)
+ palette = QPalette()
+ brush = QBrush(QColor(255, 255, 255, 255))
+ brush.setStyle(Qt.SolidPattern)
+ palette.setBrush(QPalette.Active, QPalette.Base, brush)
+ brush1 = QBrush(QColor(145, 145, 145, 255))
+ brush1.setStyle(Qt.SolidPattern)
+ palette.setBrush(QPalette.Active, QPalette.Window, brush1)
+ palette.setBrush(QPalette.Inactive, QPalette.Base, brush)
+ palette.setBrush(QPalette.Inactive, QPalette.Window, brush1)
+ palette.setBrush(QPalette.Disabled, QPalette.Base, brush1)
+ palette.setBrush(QPalette.Disabled, QPalette.Window, brush1)
+ self.stackedWidget.setPalette(palette)
+ self.viewfinderPage = QWidget()
+ self.viewfinderPage.setObjectName(u"viewfinderPage")
+ self.gridLayout_5 = QGridLayout(self.viewfinderPage)
+ self.gridLayout_5.setObjectName(u"gridLayout_5")
+ self.viewfinder = QVideoWidget(self.viewfinderPage)
+ self.viewfinder.setObjectName(u"viewfinder")
+
+ self.gridLayout_5.addWidget(self.viewfinder, 0, 0, 1, 1)
+
+ self.stackedWidget.addWidget(self.viewfinderPage)
+ self.previewPage = QWidget()
+ self.previewPage.setObjectName(u"previewPage")
+ self.gridLayout_4 = QGridLayout(self.previewPage)
+ self.gridLayout_4.setObjectName(u"gridLayout_4")
+ self.lastImagePreviewLabel = QLabel(self.previewPage)
+ self.lastImagePreviewLabel.setObjectName(u"lastImagePreviewLabel")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.MinimumExpanding)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.lastImagePreviewLabel.sizePolicy().hasHeightForWidth())
+ self.lastImagePreviewLabel.setSizePolicy(sizePolicy1)
+ self.lastImagePreviewLabel.setFrameShape(QFrame.Box)
+
+ self.gridLayout_4.addWidget(self.lastImagePreviewLabel, 0, 0, 1, 1)
+
+ self.stackedWidget.addWidget(self.previewPage)
+
+ self.gridLayout_3.addWidget(self.stackedWidget, 0, 0, 2, 1)
+
+ Camera.setCentralWidget(self.centralwidget)
+ self.menubar = QMenuBar(Camera)
+ self.menubar.setObjectName(u"menubar")
+ self.menubar.setGeometry(QRect(0, 0, 668, 19))
+ self.menuFile = QMenu(self.menubar)
+ self.menuFile.setObjectName(u"menuFile")
+ self.menuDevices = QMenu(self.menubar)
+ self.menuDevices.setObjectName(u"menuDevices")
+ self.menuHelp = QMenu(self.menubar)
+ self.menuHelp.setObjectName(u"menuHelp")
+ Camera.setMenuBar(self.menubar)
+ self.statusbar = QStatusBar(Camera)
+ self.statusbar.setObjectName(u"statusbar")
+ Camera.setStatusBar(self.statusbar)
+
+ self.menubar.addAction(self.menuFile.menuAction())
+ self.menubar.addAction(self.menuDevices.menuAction())
+ self.menubar.addAction(self.menuHelp.menuAction())
+ self.menuFile.addAction(self.actionStartCamera)
+ self.menuFile.addAction(self.actionStopCamera)
+ self.menuFile.addSeparator()
+ self.menuFile.addAction(self.actionSettings)
+ self.menuFile.addSeparator()
+ self.menuFile.addAction(self.actionExit)
+ self.menuHelp.addAction(self.actionAbout_Qt)
+
+ self.retranslateUi(Camera)
+ self.recordButton.clicked.connect(Camera.record)
+ self.stopButton.clicked.connect(Camera.stop)
+ self.pauseButton.clicked.connect(Camera.pause)
+ self.actionExit.triggered.connect(Camera.close)
+ self.takeImageButton.clicked.connect(Camera.takeImage)
+ self.muteButton.toggled.connect(Camera.setMuted)
+ self.exposureCompensation.valueChanged.connect(Camera.setExposureCompensation)
+ self.actionSettings.triggered.connect(Camera.configureCaptureSettings)
+ self.actionStartCamera.triggered.connect(Camera.startCamera)
+ self.actionStopCamera.triggered.connect(Camera.stopCamera)
+
+ self.captureWidget.setCurrentIndex(0)
+ self.stackedWidget.setCurrentIndex(0)
+
+
+ QMetaObject.connectSlotsByName(Camera)
+ # setupUi
+
+ def retranslateUi(self, Camera):
+ Camera.setWindowTitle(QCoreApplication.translate("Camera", u"Camera", None))
+ self.actionExit.setText(QCoreApplication.translate("Camera", u"Quit", None))
+#if QT_CONFIG(shortcut)
+ self.actionExit.setShortcut(QCoreApplication.translate("Camera", u"Ctrl+Q", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionStartCamera.setText(QCoreApplication.translate("Camera", u"Start Camera", None))
+ self.actionStopCamera.setText(QCoreApplication.translate("Camera", u"Stop Camera", None))
+ self.actionSettings.setText(QCoreApplication.translate("Camera", u"Change Settings", None))
+ self.actionAbout_Qt.setText(QCoreApplication.translate("Camera", u"About Qt", None))
+ self.takeImageButton.setText(QCoreApplication.translate("Camera", u"Capture Photo", None))
+ self.label.setText(QCoreApplication.translate("Camera", u"Exposure Compensation:", None))
+ self.captureWidget.setTabText(self.captureWidget.indexOf(self.tab_2), QCoreApplication.translate("Camera", u"Image", None))
+ self.recordButton.setText(QCoreApplication.translate("Camera", u"Record", None))
+ self.pauseButton.setText(QCoreApplication.translate("Camera", u"Pause", None))
+ self.stopButton.setText(QCoreApplication.translate("Camera", u"Stop", None))
+ self.muteButton.setText(QCoreApplication.translate("Camera", u"Mute", None))
+ self.metaDataButton.setText(QCoreApplication.translate("Camera", u"Set metadata", None))
+ self.captureWidget.setTabText(self.captureWidget.indexOf(self.tab), QCoreApplication.translate("Camera", u"Video", None))
+ self.lastImagePreviewLabel.setText("")
+ self.menuFile.setTitle(QCoreApplication.translate("Camera", u"File", None))
+ self.menuDevices.setTitle(QCoreApplication.translate("Camera", u"Devices", None))
+ self.menuHelp.setTitle(QCoreApplication.translate("Camera", u"Help", None))
+ # retranslateUi
+
diff --git a/examples/multimedia/camera/ui_camera_mobile.py b/examples/multimedia/camera/ui_camera_mobile.py
new file mode 100644
index 000000000..5cdd81f1e
--- /dev/null
+++ b/examples/multimedia/camera/ui_camera_mobile.py
@@ -0,0 +1,251 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'camera_mobile.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtMultimediaWidgets import QVideoWidget
+from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QHBoxLayout,
+ QLabel, QMainWindow, QMenu, QMenuBar,
+ QPushButton, QSizePolicy, QSlider, QSpacerItem,
+ QStackedWidget, QStatusBar, QTabWidget, QVBoxLayout,
+ QWidget)
+
+class Ui_Camera(object):
+ def setupUi(self, Camera):
+ if not Camera.objectName():
+ Camera.setObjectName(u"Camera")
+ Camera.resize(668, 429)
+ self.actionExit = QAction(Camera)
+ self.actionExit.setObjectName(u"actionExit")
+ self.actionStartCamera = QAction(Camera)
+ self.actionStartCamera.setObjectName(u"actionStartCamera")
+ self.actionStopCamera = QAction(Camera)
+ self.actionStopCamera.setObjectName(u"actionStopCamera")
+ self.actionSettings = QAction(Camera)
+ self.actionSettings.setObjectName(u"actionSettings")
+ self.centralwidget = QWidget(Camera)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.gridLayout_3 = QGridLayout(self.centralwidget)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.captureWidget = QTabWidget(self.centralwidget)
+ self.captureWidget.setObjectName(u"captureWidget")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.captureWidget.sizePolicy().hasHeightForWidth())
+ self.captureWidget.setSizePolicy(sizePolicy)
+ self.tab_2 = QWidget()
+ self.tab_2.setObjectName(u"tab_2")
+ self.gridLayout = QGridLayout(self.tab_2)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.exposureCompensation = QSlider(self.tab_2)
+ self.exposureCompensation.setObjectName(u"exposureCompensation")
+ self.exposureCompensation.setMinimum(-4)
+ self.exposureCompensation.setMaximum(4)
+ self.exposureCompensation.setPageStep(2)
+ self.exposureCompensation.setOrientation(Qt.Horizontal)
+ self.exposureCompensation.setTickPosition(QSlider.TicksAbove)
+
+ self.gridLayout.addWidget(self.exposureCompensation, 4, 0, 1, 1)
+
+ self.label = QLabel(self.tab_2)
+ self.label.setObjectName(u"label")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
+ self.label.setSizePolicy(sizePolicy1)
+
+ self.gridLayout.addWidget(self.label, 3, 0, 1, 1)
+
+ self.takeImageButton = QPushButton(self.tab_2)
+ self.takeImageButton.setObjectName(u"takeImageButton")
+ self.takeImageButton.setEnabled(False)
+ icon = QIcon()
+ icon.addFile(u":/images/shutter.svg", QSize(), QIcon.Normal, QIcon.Off)
+ self.takeImageButton.setIcon(icon)
+
+ self.gridLayout.addWidget(self.takeImageButton, 0, 0, 1, 1)
+
+ self.captureWidget.addTab(self.tab_2, "")
+ self.tab = QWidget()
+ self.tab.setObjectName(u"tab")
+ self.gridLayout_2 = QGridLayout(self.tab)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.verticalLayout = QVBoxLayout()
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.recordButton = QPushButton(self.tab)
+ self.recordButton.setObjectName(u"recordButton")
+
+ self.verticalLayout.addWidget(self.recordButton)
+
+ self.pauseButton = QPushButton(self.tab)
+ self.pauseButton.setObjectName(u"pauseButton")
+
+ self.verticalLayout.addWidget(self.pauseButton)
+
+ self.stopButton = QPushButton(self.tab)
+ self.stopButton.setObjectName(u"stopButton")
+
+ self.verticalLayout.addWidget(self.stopButton)
+
+
+ self.horizontalLayout.addLayout(self.verticalLayout)
+
+ self.verticalLayout_2 = QVBoxLayout()
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.verticalSpacer = QSpacerItem(20, 10, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.verticalLayout_2.addItem(self.verticalSpacer)
+
+ self.muteButton = QPushButton(self.tab)
+ self.muteButton.setObjectName(u"muteButton")
+ self.muteButton.setCheckable(True)
+
+ self.verticalLayout_2.addWidget(self.muteButton)
+
+ self.metaDataButton = QPushButton(self.tab)
+ self.metaDataButton.setObjectName(u"metaDataButton")
+ self.metaDataButton.setCheckable(True)
+
+ self.verticalLayout_2.addWidget(self.metaDataButton)
+
+
+ self.horizontalLayout.addLayout(self.verticalLayout_2)
+
+
+ self.gridLayout_2.addLayout(self.horizontalLayout, 0, 0, 1, 1)
+
+ self.captureWidget.addTab(self.tab, "")
+
+ self.gridLayout_3.addWidget(self.captureWidget, 1, 1, 1, 2)
+
+ self.stackedWidget = QStackedWidget(self.centralwidget)
+ self.stackedWidget.setObjectName(u"stackedWidget")
+ sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy2.setHorizontalStretch(1)
+ sizePolicy2.setVerticalStretch(0)
+ sizePolicy2.setHeightForWidth(self.stackedWidget.sizePolicy().hasHeightForWidth())
+ self.stackedWidget.setSizePolicy(sizePolicy2)
+ palette = QPalette()
+ brush = QBrush(QColor(255, 255, 255, 255))
+ brush.setStyle(Qt.SolidPattern)
+ palette.setBrush(QPalette.Active, QPalette.Base, brush)
+ brush1 = QBrush(QColor(145, 145, 145, 255))
+ brush1.setStyle(Qt.SolidPattern)
+ palette.setBrush(QPalette.Active, QPalette.Window, brush1)
+ palette.setBrush(QPalette.Inactive, QPalette.Base, brush)
+ palette.setBrush(QPalette.Inactive, QPalette.Window, brush1)
+ palette.setBrush(QPalette.Disabled, QPalette.Base, brush1)
+ palette.setBrush(QPalette.Disabled, QPalette.Window, brush1)
+ self.stackedWidget.setPalette(palette)
+ self.viewfinderPage = QWidget()
+ self.viewfinderPage.setObjectName(u"viewfinderPage")
+ self.gridLayout_5 = QGridLayout(self.viewfinderPage)
+ self.gridLayout_5.setObjectName(u"gridLayout_5")
+ self.viewfinder = QVideoWidget(self.viewfinderPage)
+ self.viewfinder.setObjectName(u"viewfinder")
+ sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy3.setHorizontalStretch(0)
+ sizePolicy3.setVerticalStretch(0)
+ sizePolicy3.setHeightForWidth(self.viewfinder.sizePolicy().hasHeightForWidth())
+ self.viewfinder.setSizePolicy(sizePolicy3)
+
+ self.gridLayout_5.addWidget(self.viewfinder, 0, 0, 1, 1)
+
+ self.stackedWidget.addWidget(self.viewfinderPage)
+ self.previewPage = QWidget()
+ self.previewPage.setObjectName(u"previewPage")
+ self.gridLayout_4 = QGridLayout(self.previewPage)
+ self.gridLayout_4.setObjectName(u"gridLayout_4")
+ self.lastImagePreviewLabel = QLabel(self.previewPage)
+ self.lastImagePreviewLabel.setObjectName(u"lastImagePreviewLabel")
+ sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.MinimumExpanding)
+ sizePolicy4.setHorizontalStretch(0)
+ sizePolicy4.setVerticalStretch(0)
+ sizePolicy4.setHeightForWidth(self.lastImagePreviewLabel.sizePolicy().hasHeightForWidth())
+ self.lastImagePreviewLabel.setSizePolicy(sizePolicy4)
+ self.lastImagePreviewLabel.setFrameShape(QFrame.Box)
+
+ self.gridLayout_4.addWidget(self.lastImagePreviewLabel, 0, 0, 1, 1)
+
+ self.stackedWidget.addWidget(self.previewPage)
+
+ self.gridLayout_3.addWidget(self.stackedWidget, 0, 2, 1, 1)
+
+ Camera.setCentralWidget(self.centralwidget)
+ self.menubar = QMenuBar(Camera)
+ self.menubar.setObjectName(u"menubar")
+ self.menubar.setGeometry(QRect(0, 0, 668, 22))
+ self.menuFile = QMenu(self.menubar)
+ self.menuFile.setObjectName(u"menuFile")
+ self.menuDevices = QMenu(self.menubar)
+ self.menuDevices.setObjectName(u"menuDevices")
+ Camera.setMenuBar(self.menubar)
+ self.statusbar = QStatusBar(Camera)
+ self.statusbar.setObjectName(u"statusbar")
+ Camera.setStatusBar(self.statusbar)
+
+ self.menubar.addAction(self.menuFile.menuAction())
+ self.menubar.addAction(self.menuDevices.menuAction())
+ self.menuFile.addAction(self.actionStartCamera)
+ self.menuFile.addAction(self.actionStopCamera)
+ self.menuFile.addSeparator()
+ self.menuFile.addAction(self.actionSettings)
+ self.menuFile.addSeparator()
+ self.menuFile.addAction(self.actionExit)
+
+ self.retranslateUi(Camera)
+ self.recordButton.clicked.connect(Camera.record)
+ self.stopButton.clicked.connect(Camera.stop)
+ self.pauseButton.clicked.connect(Camera.pause)
+ self.actionExit.triggered.connect(Camera.close)
+ self.takeImageButton.clicked.connect(Camera.takeImage)
+ self.muteButton.toggled.connect(Camera.setMuted)
+ self.exposureCompensation.valueChanged.connect(Camera.setExposureCompensation)
+ self.actionSettings.triggered.connect(Camera.configureCaptureSettings)
+ self.actionStartCamera.triggered.connect(Camera.startCamera)
+ self.actionStopCamera.triggered.connect(Camera.stopCamera)
+
+ self.captureWidget.setCurrentIndex(0)
+ self.stackedWidget.setCurrentIndex(0)
+
+
+ QMetaObject.connectSlotsByName(Camera)
+ # setupUi
+
+ def retranslateUi(self, Camera):
+ Camera.setWindowTitle(QCoreApplication.translate("Camera", u"Camera", None))
+ self.actionExit.setText(QCoreApplication.translate("Camera", u"Close", None))
+ self.actionStartCamera.setText(QCoreApplication.translate("Camera", u"Start Camera", None))
+ self.actionStopCamera.setText(QCoreApplication.translate("Camera", u"Stop Camera", None))
+ self.actionSettings.setText(QCoreApplication.translate("Camera", u"Change Settings", None))
+ self.label.setText(QCoreApplication.translate("Camera", u"Exposure Compensation:", None))
+ self.takeImageButton.setText(QCoreApplication.translate("Camera", u"Capture Photo", None))
+ self.captureWidget.setTabText(self.captureWidget.indexOf(self.tab_2), QCoreApplication.translate("Camera", u"Image", None))
+ self.recordButton.setText(QCoreApplication.translate("Camera", u"Record", None))
+ self.pauseButton.setText(QCoreApplication.translate("Camera", u"Pause", None))
+ self.stopButton.setText(QCoreApplication.translate("Camera", u"Stop", None))
+ self.muteButton.setText(QCoreApplication.translate("Camera", u"Mute", None))
+ self.metaDataButton.setText(QCoreApplication.translate("Camera", u"Set metadata", None))
+ self.captureWidget.setTabText(self.captureWidget.indexOf(self.tab), QCoreApplication.translate("Camera", u"Video", None))
+ self.lastImagePreviewLabel.setText("")
+ self.menuFile.setTitle(QCoreApplication.translate("Camera", u"File", None))
+ self.menuDevices.setTitle(QCoreApplication.translate("Camera", u"Devices", None))
+ # retranslateUi
+
diff --git a/examples/multimedia/camera/ui_imagesettings.py b/examples/multimedia/camera/ui_imagesettings.py
new file mode 100644
index 000000000..a3fba7789
--- /dev/null
+++ b/examples/multimedia/camera/ui_imagesettings.py
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'imagesettings.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QComboBox, QDialog,
+ QDialogButtonBox, QGridLayout, QGroupBox, QLabel,
+ QSizePolicy, QSlider, QSpacerItem, QWidget)
+
+class Ui_ImageSettingsUi(object):
+ def setupUi(self, ImageSettingsUi):
+ if not ImageSettingsUi.objectName():
+ ImageSettingsUi.setObjectName(u"ImageSettingsUi")
+ ImageSettingsUi.resize(332, 270)
+ self.gridLayout = QGridLayout(ImageSettingsUi)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.groupBox_2 = QGroupBox(ImageSettingsUi)
+ self.groupBox_2.setObjectName(u"groupBox_2")
+ self.gridLayout_2 = QGridLayout(self.groupBox_2)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.label_8 = QLabel(self.groupBox_2)
+ self.label_8.setObjectName(u"label_8")
+
+ self.gridLayout_2.addWidget(self.label_8, 0, 0, 1, 2)
+
+ self.imageResolutionBox = QComboBox(self.groupBox_2)
+ self.imageResolutionBox.setObjectName(u"imageResolutionBox")
+
+ self.gridLayout_2.addWidget(self.imageResolutionBox, 1, 0, 1, 2)
+
+ self.label_6 = QLabel(self.groupBox_2)
+ self.label_6.setObjectName(u"label_6")
+
+ self.gridLayout_2.addWidget(self.label_6, 2, 0, 1, 2)
+
+ self.imageCodecBox = QComboBox(self.groupBox_2)
+ self.imageCodecBox.setObjectName(u"imageCodecBox")
+
+ self.gridLayout_2.addWidget(self.imageCodecBox, 3, 0, 1, 2)
+
+ self.label_7 = QLabel(self.groupBox_2)
+ self.label_7.setObjectName(u"label_7")
+
+ self.gridLayout_2.addWidget(self.label_7, 4, 0, 1, 1)
+
+ self.imageQualitySlider = QSlider(self.groupBox_2)
+ self.imageQualitySlider.setObjectName(u"imageQualitySlider")
+ self.imageQualitySlider.setMaximum(4)
+ self.imageQualitySlider.setOrientation(Qt.Horizontal)
+
+ self.gridLayout_2.addWidget(self.imageQualitySlider, 4, 1, 1, 1)
+
+
+ self.gridLayout.addWidget(self.groupBox_2, 0, 0, 1, 1)
+
+ self.verticalSpacer = QSpacerItem(20, 14, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.gridLayout.addItem(self.verticalSpacer, 1, 0, 1, 1)
+
+ self.buttonBox = QDialogButtonBox(ImageSettingsUi)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
+
+ self.gridLayout.addWidget(self.buttonBox, 2, 0, 1, 1)
+
+
+ self.retranslateUi(ImageSettingsUi)
+ self.buttonBox.accepted.connect(ImageSettingsUi.accept)
+ self.buttonBox.rejected.connect(ImageSettingsUi.reject)
+
+ QMetaObject.connectSlotsByName(ImageSettingsUi)
+ # setupUi
+
+ def retranslateUi(self, ImageSettingsUi):
+ ImageSettingsUi.setWindowTitle(QCoreApplication.translate("ImageSettingsUi", u"Image Settings", None))
+ self.groupBox_2.setTitle(QCoreApplication.translate("ImageSettingsUi", u"Image", None))
+ self.label_8.setText(QCoreApplication.translate("ImageSettingsUi", u"Resolution:", None))
+ self.label_6.setText(QCoreApplication.translate("ImageSettingsUi", u"Image Format:", None))
+ self.label_7.setText(QCoreApplication.translate("ImageSettingsUi", u"Quality:", None))
+ # retranslateUi
+
diff --git a/examples/multimedia/camera/ui_videosettings.py b/examples/multimedia/camera/ui_videosettings.py
new file mode 100644
index 000000000..eec626f27
--- /dev/null
+++ b/examples/multimedia/camera/ui_videosettings.py
@@ -0,0 +1,178 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'videosettings.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QComboBox, QDialog,
+ QDialogButtonBox, QGridLayout, QGroupBox, QHBoxLayout,
+ QLabel, QSizePolicy, QSlider, QSpacerItem,
+ QSpinBox, QVBoxLayout, QWidget)
+
+class Ui_VideoSettingsUi(object):
+ def setupUi(self, VideoSettingsUi):
+ if not VideoSettingsUi.objectName():
+ VideoSettingsUi.setObjectName(u"VideoSettingsUi")
+ VideoSettingsUi.resize(686, 499)
+ self.gridLayout_3 = QGridLayout(VideoSettingsUi)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.buttonBox = QDialogButtonBox(VideoSettingsUi)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
+
+ self.gridLayout_3.addWidget(self.buttonBox, 4, 1, 1, 1)
+
+ self.groupBox_2 = QGroupBox(VideoSettingsUi)
+ self.groupBox_2.setObjectName(u"groupBox_2")
+ self.gridLayout_2 = QGridLayout(self.groupBox_2)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.label_8 = QLabel(self.groupBox_2)
+ self.label_8.setObjectName(u"label_8")
+
+ self.gridLayout_2.addWidget(self.label_8, 0, 0, 1, 2)
+
+ self.videoCodecBox = QComboBox(self.groupBox_2)
+ self.videoCodecBox.setObjectName(u"videoCodecBox")
+
+ self.gridLayout_2.addWidget(self.videoCodecBox, 5, 0, 1, 2)
+
+ self.label_9 = QLabel(self.groupBox_2)
+ self.label_9.setObjectName(u"label_9")
+
+ self.gridLayout_2.addWidget(self.label_9, 2, 0, 1, 2)
+
+ self.label_6 = QLabel(self.groupBox_2)
+ self.label_6.setObjectName(u"label_6")
+
+ self.gridLayout_2.addWidget(self.label_6, 4, 0, 1, 2)
+
+ self.videoFormatBox = QComboBox(self.groupBox_2)
+ self.videoFormatBox.setObjectName(u"videoFormatBox")
+
+ self.gridLayout_2.addWidget(self.videoFormatBox, 1, 0, 1, 2)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.fpsSpinBox = QSpinBox(self.groupBox_2)
+ self.fpsSpinBox.setObjectName(u"fpsSpinBox")
+
+ self.horizontalLayout.addWidget(self.fpsSpinBox)
+
+ self.fpsSlider = QSlider(self.groupBox_2)
+ self.fpsSlider.setObjectName(u"fpsSlider")
+ self.fpsSlider.setOrientation(Qt.Horizontal)
+
+ self.horizontalLayout.addWidget(self.fpsSlider)
+
+
+ self.gridLayout_2.addLayout(self.horizontalLayout, 3, 0, 1, 2)
+
+
+ self.gridLayout_3.addWidget(self.groupBox_2, 2, 1, 1, 1)
+
+ self.widget = QWidget(VideoSettingsUi)
+ self.widget.setObjectName(u"widget")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth())
+ self.widget.setSizePolicy(sizePolicy)
+ self.verticalLayout_3 = QVBoxLayout(self.widget)
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+ self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
+ self.groupBox_3 = QGroupBox(self.widget)
+ self.groupBox_3.setObjectName(u"groupBox_3")
+ self.verticalLayout_2 = QVBoxLayout(self.groupBox_3)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.label_2 = QLabel(self.groupBox_3)
+ self.label_2.setObjectName(u"label_2")
+
+ self.verticalLayout_2.addWidget(self.label_2)
+
+ self.audioCodecBox = QComboBox(self.groupBox_3)
+ self.audioCodecBox.setObjectName(u"audioCodecBox")
+
+ self.verticalLayout_2.addWidget(self.audioCodecBox)
+
+ self.label_5 = QLabel(self.groupBox_3)
+ self.label_5.setObjectName(u"label_5")
+
+ self.verticalLayout_2.addWidget(self.label_5)
+
+ self.audioSampleRateBox = QSpinBox(self.groupBox_3)
+ self.audioSampleRateBox.setObjectName(u"audioSampleRateBox")
+
+ self.verticalLayout_2.addWidget(self.audioSampleRateBox)
+
+
+ self.verticalLayout_3.addWidget(self.groupBox_3)
+
+ self.groupBox = QGroupBox(self.widget)
+ self.groupBox.setObjectName(u"groupBox")
+ self.verticalLayout = QVBoxLayout(self.groupBox)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.label_3 = QLabel(self.groupBox)
+ self.label_3.setObjectName(u"label_3")
+
+ self.verticalLayout.addWidget(self.label_3)
+
+ self.qualitySlider = QSlider(self.groupBox)
+ self.qualitySlider.setObjectName(u"qualitySlider")
+ self.qualitySlider.setMaximum(4)
+ self.qualitySlider.setOrientation(Qt.Horizontal)
+
+ self.verticalLayout.addWidget(self.qualitySlider)
+
+ self.label_4 = QLabel(self.groupBox)
+ self.label_4.setObjectName(u"label_4")
+
+ self.verticalLayout.addWidget(self.label_4)
+
+ self.containerFormatBox = QComboBox(self.groupBox)
+ self.containerFormatBox.setObjectName(u"containerFormatBox")
+
+ self.verticalLayout.addWidget(self.containerFormatBox)
+
+
+ self.verticalLayout_3.addWidget(self.groupBox)
+
+
+ self.gridLayout_3.addWidget(self.widget, 2, 0, 1, 1)
+
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.gridLayout_3.addItem(self.verticalSpacer, 3, 0, 1, 1)
+
+
+ self.retranslateUi(VideoSettingsUi)
+ self.buttonBox.accepted.connect(VideoSettingsUi.accept)
+ self.buttonBox.rejected.connect(VideoSettingsUi.reject)
+
+ QMetaObject.connectSlotsByName(VideoSettingsUi)
+ # setupUi
+
+ def retranslateUi(self, VideoSettingsUi):
+ VideoSettingsUi.setWindowTitle(QCoreApplication.translate("VideoSettingsUi", u"Video Settings", None))
+ self.groupBox_2.setTitle(QCoreApplication.translate("VideoSettingsUi", u"Video", None))
+ self.label_8.setText(QCoreApplication.translate("VideoSettingsUi", u"Camera Format", None))
+ self.label_9.setText(QCoreApplication.translate("VideoSettingsUi", u"Framerate:", None))
+ self.label_6.setText(QCoreApplication.translate("VideoSettingsUi", u"Video Codec:", None))
+ self.groupBox_3.setTitle(QCoreApplication.translate("VideoSettingsUi", u"Audio", None))
+ self.label_2.setText(QCoreApplication.translate("VideoSettingsUi", u"Audio Codec:", None))
+ self.label_5.setText(QCoreApplication.translate("VideoSettingsUi", u"Sample Rate:", None))
+ self.label_3.setText(QCoreApplication.translate("VideoSettingsUi", u"Quality:", None))
+ self.label_4.setText(QCoreApplication.translate("VideoSettingsUi", u"File Format:", None))
+ # retranslateUi
+
diff --git a/examples/multimedia/camera/ui_videosettings_mobile.py b/examples/multimedia/camera/ui_videosettings_mobile.py
new file mode 100644
index 000000000..50fb8e081
--- /dev/null
+++ b/examples/multimedia/camera/ui_videosettings_mobile.py
@@ -0,0 +1,176 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'videosettings_mobile.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QComboBox, QDialog,
+ QDialogButtonBox, QGridLayout, QGroupBox, QHBoxLayout,
+ QLabel, QSizePolicy, QSlider, QSpinBox,
+ QVBoxLayout, QWidget)
+
+class Ui_VideoSettingsUi(object):
+ def setupUi(self, VideoSettingsUi):
+ if not VideoSettingsUi.objectName():
+ VideoSettingsUi.setObjectName(u"VideoSettingsUi")
+ VideoSettingsUi.resize(329, 591)
+ self.gridLayout_3 = QGridLayout(VideoSettingsUi)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.widget = QWidget(VideoSettingsUi)
+ self.widget.setObjectName(u"widget")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth())
+ self.widget.setSizePolicy(sizePolicy)
+ self.verticalLayout_3 = QVBoxLayout(self.widget)
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+ self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
+ self.groupBox_3 = QGroupBox(self.widget)
+ self.groupBox_3.setObjectName(u"groupBox_3")
+ self.verticalLayout_2 = QVBoxLayout(self.groupBox_3)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.label_2 = QLabel(self.groupBox_3)
+ self.label_2.setObjectName(u"label_2")
+
+ self.verticalLayout_2.addWidget(self.label_2)
+
+ self.audioCodecBox = QComboBox(self.groupBox_3)
+ self.audioCodecBox.setObjectName(u"audioCodecBox")
+
+ self.verticalLayout_2.addWidget(self.audioCodecBox)
+
+ self.label_5 = QLabel(self.groupBox_3)
+ self.label_5.setObjectName(u"label_5")
+
+ self.verticalLayout_2.addWidget(self.label_5)
+
+ self.audioSampleRateBox = QSpinBox(self.groupBox_3)
+ self.audioSampleRateBox.setObjectName(u"audioSampleRateBox")
+
+ self.verticalLayout_2.addWidget(self.audioSampleRateBox)
+
+
+ self.verticalLayout_3.addWidget(self.groupBox_3)
+
+ self.groupBox = QGroupBox(self.widget)
+ self.groupBox.setObjectName(u"groupBox")
+ self.verticalLayout = QVBoxLayout(self.groupBox)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.label_3 = QLabel(self.groupBox)
+ self.label_3.setObjectName(u"label_3")
+
+ self.verticalLayout.addWidget(self.label_3)
+
+ self.qualitySlider = QSlider(self.groupBox)
+ self.qualitySlider.setObjectName(u"qualitySlider")
+ self.qualitySlider.setMaximum(4)
+ self.qualitySlider.setOrientation(Qt.Horizontal)
+
+ self.verticalLayout.addWidget(self.qualitySlider)
+
+ self.label_4 = QLabel(self.groupBox)
+ self.label_4.setObjectName(u"label_4")
+
+ self.verticalLayout.addWidget(self.label_4)
+
+ self.containerFormatBox = QComboBox(self.groupBox)
+ self.containerFormatBox.setObjectName(u"containerFormatBox")
+
+ self.verticalLayout.addWidget(self.containerFormatBox)
+
+
+ self.verticalLayout_3.addWidget(self.groupBox)
+
+
+ self.gridLayout_3.addWidget(self.widget, 2, 0, 1, 1)
+
+ self.groupBox_2 = QGroupBox(VideoSettingsUi)
+ self.groupBox_2.setObjectName(u"groupBox_2")
+ self.gridLayout_2 = QGridLayout(self.groupBox_2)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.label = QLabel(self.groupBox_2)
+ self.label.setObjectName(u"label")
+
+ self.gridLayout_2.addWidget(self.label, 2, 0, 1, 1)
+
+ self.videoCodecBox = QComboBox(self.groupBox_2)
+ self.videoCodecBox.setObjectName(u"videoCodecBox")
+
+ self.gridLayout_2.addWidget(self.videoCodecBox, 6, 0, 1, 2)
+
+ self.label_8 = QLabel(self.groupBox_2)
+ self.label_8.setObjectName(u"label_8")
+
+ self.gridLayout_2.addWidget(self.label_8, 0, 0, 1, 2)
+
+ self.label_6 = QLabel(self.groupBox_2)
+ self.label_6.setObjectName(u"label_6")
+
+ self.gridLayout_2.addWidget(self.label_6, 5, 0, 1, 2)
+
+ self.videoFormatBox = QComboBox(self.groupBox_2)
+ self.videoFormatBox.setObjectName(u"videoFormatBox")
+
+ self.gridLayout_2.addWidget(self.videoFormatBox, 1, 0, 1, 2)
+
+ self.buttonBox = QDialogButtonBox(self.groupBox_2)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
+
+ self.gridLayout_2.addWidget(self.buttonBox, 7, 0, 1, 1)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.fpsSpinBox = QSpinBox(self.groupBox_2)
+ self.fpsSpinBox.setObjectName(u"fpsSpinBox")
+ self.fpsSpinBox.setMinimum(8)
+ self.fpsSpinBox.setMaximum(30)
+
+ self.horizontalLayout.addWidget(self.fpsSpinBox)
+
+ self.fpsSlider = QSlider(self.groupBox_2)
+ self.fpsSlider.setObjectName(u"fpsSlider")
+ self.fpsSlider.setOrientation(Qt.Horizontal)
+
+ self.horizontalLayout.addWidget(self.fpsSlider)
+
+
+ self.gridLayout_2.addLayout(self.horizontalLayout, 3, 0, 1, 1)
+
+
+ self.gridLayout_3.addWidget(self.groupBox_2, 3, 0, 1, 1)
+
+
+ self.retranslateUi(VideoSettingsUi)
+ self.buttonBox.accepted.connect(VideoSettingsUi.accept)
+ self.buttonBox.rejected.connect(VideoSettingsUi.reject)
+
+ QMetaObject.connectSlotsByName(VideoSettingsUi)
+ # setupUi
+
+ def retranslateUi(self, VideoSettingsUi):
+ VideoSettingsUi.setWindowTitle(QCoreApplication.translate("VideoSettingsUi", u"Video Settings", None))
+ self.groupBox_3.setTitle(QCoreApplication.translate("VideoSettingsUi", u"Audio", None))
+ self.label_2.setText(QCoreApplication.translate("VideoSettingsUi", u"Audio Codec:", None))
+ self.label_5.setText(QCoreApplication.translate("VideoSettingsUi", u"Sample Rate:", None))
+ self.label_3.setText(QCoreApplication.translate("VideoSettingsUi", u"Quality:", None))
+ self.label_4.setText(QCoreApplication.translate("VideoSettingsUi", u"File Format:", None))
+ self.groupBox_2.setTitle(QCoreApplication.translate("VideoSettingsUi", u"Video", None))
+ self.label.setText(QCoreApplication.translate("VideoSettingsUi", u"Frames per second:", None))
+ self.label_8.setText(QCoreApplication.translate("VideoSettingsUi", u"Camera Format:", None))
+ self.label_6.setText(QCoreApplication.translate("VideoSettingsUi", u"Video Codec:", None))
+ # retranslateUi
+
diff --git a/examples/multimedia/camera/videosettings.py b/examples/multimedia/camera/videosettings.py
new file mode 100644
index 000000000..a88cb39ed
--- /dev/null
+++ b/examples/multimedia/camera/videosettings.py
@@ -0,0 +1,167 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from PySide6.QtMultimedia import (QCameraFormat, QMediaFormat, QMediaRecorder,
+ QVideoFrameFormat)
+from PySide6.QtWidgets import QDialog
+
+is_android = os.environ.get('ANDROID_ARGUMENT')
+
+if is_android:
+ from ui_videosettings_mobile import Ui_VideoSettingsUi
+else:
+ from ui_videosettings import Ui_VideoSettingsUi
+
+
+def box_value(box):
+ idx = box.currentIndex()
+ return None if idx == -1 else box.itemData(idx)
+
+
+def select_combo_box_item(box, value):
+ idx = box.findData(value)
+ if idx != -1:
+ box.setCurrentIndex(idx)
+
+
+def to_formatted_string(cameraFormat):
+ pf = cameraFormat.pixelFormat()
+ format_name = QVideoFrameFormat.pixelFormatToString(pf)
+ w = cameraFormat.resolution().width()
+ h = cameraFormat.resolution().height()
+ min_rate = int(cameraFormat.minFrameRate())
+ max_rate = int(cameraFormat.maxFrameRate())
+ return f"{format_name} {w}x{h} {min_rate}-{max_rate}FPS"
+
+
+class VideoSettings(QDialog):
+
+ def __init__(self, mediaRecorder, parent=None):
+ super().__init__(parent)
+
+ self._media_recorder = mediaRecorder
+
+ self.m_updatingFormats = False
+
+ self._ui = Ui_VideoSettingsUi()
+ self._ui.setupUi(self)
+
+ # sample rate:
+ audio_device = self._media_recorder.captureSession().audioInput().device()
+ self._ui.audioSampleRateBox.setRange(audio_device.minimumSampleRate(),
+ audio_device.maximumSampleRate())
+
+ # camera format
+ self._ui.videoFormatBox.addItem("Default camera format",
+ QCameraFormat())
+
+ camera = self._media_recorder.captureSession().camera()
+ video_formats = camera.cameraDevice().videoFormats()
+
+ for format in video_formats:
+ self._ui.videoFormatBox.addItem(to_formatted_string(format), format)
+
+ self._ui.videoFormatBox.currentIndexChanged.connect(self.video_format_changed)
+ self.set_fps_range(camera.cameraFormat())
+
+ self._ui.fpsSlider.valueChanged.connect(self._ui.fpsSpinBox.setValue)
+ self._ui.fpsSpinBox.valueChanged.connect(self._ui.fpsSlider.setValue)
+
+ self.update_formats_and_codecs()
+ self._ui.audioCodecBox.currentIndexChanged.connect(self.update_formats_and_codecs)
+ self._ui.videoCodecBox.currentIndexChanged.connect(self.update_formats_and_codecs)
+ self._ui.containerFormatBox.currentIndexChanged.connect(self.update_formats_and_codecs)
+
+ self._ui.qualitySlider.setRange(0, QMediaRecorder.VeryHighQuality.value)
+
+ format = self._media_recorder.mediaFormat()
+ select_combo_box_item(self._ui.containerFormatBox, format.fileFormat())
+ select_combo_box_item(self._ui.audioCodecBox, format.audioCodec())
+ select_combo_box_item(self._ui.videoCodecBox, format.videoCodec())
+
+ self._ui.qualitySlider.setValue(self._media_recorder.quality().value)
+ self._ui.audioSampleRateBox.setValue(self._media_recorder.audioSampleRate())
+ select_combo_box_item(self._ui.videoFormatBox, camera.cameraFormat())
+
+ self._ui.fpsSlider.setValue(self._media_recorder.videoFrameRate())
+ self._ui.fpsSpinBox.setValue(self._media_recorder.videoFrameRate())
+
+ def apply_settings(self):
+ format = QMediaFormat()
+ format.setFileFormat(box_value(self._ui.containerFormatBox))
+ format.setAudioCodec(box_value(self._ui.audioCodecBox))
+ format.setVideoCodec(box_value(self._ui.videoCodecBox))
+
+ self._media_recorder.setMediaFormat(format)
+ q = self._ui.qualitySlider.value()
+ self._media_recorder.setQuality(QMediaRecorder.Quality(q))
+ self._media_recorder.setAudioSampleRate(self._ui.audioSampleRateBox.value())
+
+ camera_format = box_value(self._ui.videoFormatBox)
+ self._media_recorder.setVideoResolution(camera_format.resolution())
+ self._media_recorder.setVideoFrameRate(self._ui.fpsSlider.value())
+
+ camera = self._media_recorder.captureSession().camera()
+ camera.setCameraFormat(camera_format)
+
+ def update_formats_and_codecs(self):
+ if self.m_updatingFormats:
+ return
+ self.m_updatingFormats = True
+
+ format = QMediaFormat()
+ if self._ui.containerFormatBox.count():
+ format.setFileFormat(box_value(self._ui.containerFormatBox))
+ if self._ui.audioCodecBox.count():
+ format.setAudioCodec(box_value(self._ui.audioCodecBox))
+ if self._ui.videoCodecBox.count():
+ format.setVideoCodec(box_value(self._ui.videoCodecBox))
+
+ current_index = 0
+ self._ui.audioCodecBox.clear()
+ self._ui.audioCodecBox.addItem("Default audio codec",
+ QMediaFormat.AudioCodec.Unspecified)
+ for codec in format.supportedAudioCodecs(QMediaFormat.Encode):
+ if codec == format.audioCodec():
+ current_index = self._ui.audioCodecBox.count()
+ desc = QMediaFormat.audioCodecDescription(codec)
+ self._ui.audioCodecBox.addItem(desc, codec)
+
+ self._ui.audioCodecBox.setCurrentIndex(current_index)
+
+ current_index = 0
+ self._ui.videoCodecBox.clear()
+ self._ui.videoCodecBox.addItem("Default video codec",
+ QMediaFormat.VideoCodec.Unspecified)
+ for codec in format.supportedVideoCodecs(QMediaFormat.Encode):
+ if codec == format.videoCodec():
+ current_index = self._ui.videoCodecBox.count()
+ desc = QMediaFormat.videoCodecDescription(codec)
+ self._ui.videoCodecBox.addItem(desc, codec)
+
+ self._ui.videoCodecBox.setCurrentIndex(current_index)
+
+ current_index = 0
+ self._ui.containerFormatBox.clear()
+ self._ui.containerFormatBox.addItem("Default file format",
+ QMediaFormat.UnspecifiedFormat)
+ for container in format.supportedFileFormats(QMediaFormat.Encode):
+ if container == format.fileFormat():
+ current_index = self._ui.containerFormatBox.count()
+ desc = QMediaFormat.fileFormatDescription(container)
+ self._ui.containerFormatBox.addItem(desc, container)
+
+ self._ui.containerFormatBox.setCurrentIndex(current_index)
+
+ self.m_updatingFormats = False
+
+ def video_format_changed(self):
+ camera_format = box_value(self._ui.videoFormatBox)
+ self.set_fps_range(camera_format)
+
+ def set_fps_range(self, format):
+ min_fr = format.minFrameRate()
+ max_fr = format.maxFrameRate()
+ self._ui.fpsSlider.setRange(min_fr, max_fr)
+ self._ui.fpsSpinBox.setRange(min_fr, max_fr)
diff --git a/examples/multimedia/camera/videosettings.ui b/examples/multimedia/camera/videosettings.ui
new file mode 100644
index 000000000..3c1f71f11
--- /dev/null
+++ b/examples/multimedia/camera/videosettings.ui
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>VideoSettingsUi</class>
+ <widget class="QDialog" name="VideoSettingsUi">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>686</width>
+ <height>499</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Video Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="4" column="1">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Video</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Camera Format</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="2">
+ <widget class="QComboBox" name="videoCodecBox"/>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QLabel" name="label_9">
+ <property name="text">
+ <string>Framerate:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Video Codec:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QComboBox" name="videoFormatBox"/>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QSpinBox" name="fpsSpinBox"/>
+ </item>
+ <item>
+ <widget class="QSlider" name="fpsSlider">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QWidget" name="widget" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="title">
+ <string>Audio</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Audio Codec:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="audioCodecBox"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Sample Rate:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="audioSampleRateBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Quality:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="qualitySlider">
+ <property name="maximum">
+ <number>4</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>File Format:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="containerFormatBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>VideoSettingsUi</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>322</x>
+ <y>272</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>44</x>
+ <y>230</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>VideoSettingsUi</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>405</x>
+ <y>262</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>364</x>
+ <y>227</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/multimedia/camera/videosettings_mobile.ui b/examples/multimedia/camera/videosettings_mobile.ui
new file mode 100644
index 000000000..6584f07f9
--- /dev/null
+++ b/examples/multimedia/camera/videosettings_mobile.ui
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>VideoSettingsUi</class>
+ <widget class="QDialog" name="VideoSettingsUi">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>329</width>
+ <height>591</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Video Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="2" column="0">
+ <widget class="QWidget" name="widget" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="title">
+ <string>Audio</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Audio Codec:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="audioCodecBox"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Sample Rate:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="audioSampleRateBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Quality:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="qualitySlider">
+ <property name="maximum">
+ <number>4</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>File Format:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="containerFormatBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Video</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="2" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Frames per second:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0" colspan="2">
+ <widget class="QComboBox" name="videoCodecBox"/>
+ </item>
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Camera Format:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="2">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Video Codec:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QComboBox" name="videoFormatBox"/>
+ </item>
+ <item row="7" column="0">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QSpinBox" name="fpsSpinBox">
+ <property name="minimum">
+ <number>8</number>
+ </property>
+ <property name="maximum">
+ <number>30</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="fpsSlider">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>VideoSettingsUi</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>322</x>
+ <y>272</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>44</x>
+ <y>230</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>VideoSettingsUi</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>405</x>
+ <y>262</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>364</x>
+ <y>227</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/multimedia/player/player.py b/examples/multimedia/player/player.py
index c8a1d57a5..d28f2887e 100644
--- a/examples/multimedia/player/player.py
+++ b/examples/multimedia/player/player.py
@@ -5,10 +5,10 @@
import sys
from PySide6.QtCore import QStandardPaths, Qt, Slot
-from PySide6.QtGui import QAction, QIcon, QKeySequence, QScreen
+from PySide6.QtGui import QAction, QIcon, QKeySequence
from PySide6.QtWidgets import (QApplication, QDialog, QFileDialog,
- QMainWindow, QSlider, QStyle, QToolBar)
-from PySide6.QtMultimedia import (QAudio, QAudioOutput, QMediaFormat,
+ QMainWindow, QSlider, QStyle, QToolBar)
+from PySide6.QtMultimedia import (QAudioOutput, QMediaFormat,
QMediaPlayer)
from PySide6.QtMultimediaWidgets import QVideoWidget
@@ -44,43 +44,43 @@ class MainWindow(QMainWindow):
self.addToolBar(tool_bar)
file_menu = self.menuBar().addMenu("&File")
- icon = QIcon.fromTheme("document-open")
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen)
open_action = QAction(icon, "&Open...", self,
shortcut=QKeySequence.Open, triggered=self.open)
file_menu.addAction(open_action)
tool_bar.addAction(open_action)
- icon = QIcon.fromTheme("application-exit")
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.ApplicationExit)
exit_action = QAction(icon, "E&xit", self,
shortcut="Ctrl+Q", triggered=self.close)
file_menu.addAction(exit_action)
play_menu = self.menuBar().addMenu("&Play")
style = self.style()
- icon = QIcon.fromTheme("media-playback-start.png",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.MediaPlaybackStart,
style.standardIcon(QStyle.SP_MediaPlay))
self._play_action = tool_bar.addAction(icon, "Play")
self._play_action.triggered.connect(self._player.play)
play_menu.addAction(self._play_action)
- icon = QIcon.fromTheme("media-skip-backward-symbolic.svg",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.MediaSkipBackward,
style.standardIcon(QStyle.SP_MediaSkipBackward))
self._previous_action = tool_bar.addAction(icon, "Previous")
self._previous_action.triggered.connect(self.previous_clicked)
play_menu.addAction(self._previous_action)
- icon = QIcon.fromTheme("media-playback-pause.png",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.MediaPlaybackPause,
style.standardIcon(QStyle.SP_MediaPause))
self._pause_action = tool_bar.addAction(icon, "Pause")
self._pause_action.triggered.connect(self._player.pause)
play_menu.addAction(self._pause_action)
- icon = QIcon.fromTheme("media-skip-forward-symbolic.svg",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.MediaSkipForward,
style.standardIcon(QStyle.SP_MediaSkipForward))
self._next_action = tool_bar.addAction(icon, "Next")
self._next_action.triggered.connect(self.next_clicked)
play_menu.addAction(self._next_action)
- icon = QIcon.fromTheme("media-playback-stop.png",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.MediaPlaybackStop,
style.standardIcon(QStyle.SP_MediaStop))
self._stop_action = tool_bar.addAction(icon, "Stop")
self._stop_action.triggered.connect(self._ensure_stopped)
@@ -99,8 +99,9 @@ class MainWindow(QMainWindow):
self._volume_slider.valueChanged.connect(self._audio_output.setVolume)
tool_bar.addWidget(self._volume_slider)
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.HelpAbout)
about_menu = self.menuBar().addMenu("&About")
- about_qt_act = QAction("About &Qt", self, triggered=qApp.aboutQt)
+ about_qt_act = QAction(icon, "About &Qt", self, triggered=qApp.aboutQt) # noqa: F821
about_menu.addAction(about_qt_act)
self._video_widget = QVideoWidget()
@@ -168,8 +169,7 @@ class MainWindow(QMainWindow):
@Slot("QMediaPlayer::PlaybackState")
def update_buttons(self, state):
media_count = len(self._playlist)
- self._play_action.setEnabled(media_count > 0
- and state != QMediaPlayer.PlayingState)
+ self._play_action.setEnabled(media_count > 0 and state != QMediaPlayer.PlayingState)
self._pause_action.setEnabled(state == QMediaPlayer.PlayingState)
self._stop_action.setEnabled(state != QMediaPlayer.StoppedState)
self._previous_action.setEnabled(self._player.position() > 0)
diff --git a/examples/multimedia/screencapture/doc/screencapture.rst b/examples/multimedia/screencapture/doc/screencapture.rst
new file mode 100644
index 000000000..116d7773b
--- /dev/null
+++ b/examples/multimedia/screencapture/doc/screencapture.rst
@@ -0,0 +1,42 @@
+Screen Capture Example
+======================
+
+Screen Capture demonstrates how to capture a screen or window using
+``QScreenCapture`` and ``QWindowCapture``. The example shows a list of screens
+and windows and displays a live preview of the selected item using a
+``QMediaCaptureSession`` and a ``QVideoWidget``. Capturing can be started and
+stopped with a ``QPushButton``.
+
+Application Structure
++++++++++++++++++++++
+
+The example consists of three custom classes. The UI and all screen capture
+functionality is implemented in the class ``ScreenCapturePreview``. The classes
+``ScreenListModel`` and ``WindowListModel`` only serve as models behind the two
+``QListView`` widgets. The main function creates a ``ScreenCapturePreview``
+object, which in turn creates instances of ``QScreenCapture`` and
+``QWindowCapture``, and a ``QMediaCaptureSession`` and ``QVideoWidget``, in
+addition to all the UI widgets.
+
+The screen and window models are populated with the return values of
+``QGuiApplication.screens()`` and ``QWindowCapture.capturableWindows()``,
+respectively.
+
+When a list item is selected, it is connected to the ``QScreenCapture`` object
+with ``QScreenCapture.setScreen()``, or to the ``QWindowCapture`` object with
+``QWindowCapture.setWindow().`` The capture object is connected to the
+``QMediaCaptureSession`` object with
+``QMediaCaptureSession.setScreenCapture()`` and
+``QMediaCaptureSession.setWindowCapture()``, respectively. The capture session
+in turn is connected to the ``QVideoWidget`` object with
+``QMediaCaptureSession.setVideoOutput()``. Thus, the capture output is
+previewed in the video widget on the right hand side of the UI.
+
+The start/stop button calls ``QScreenCapture.start()`` and ``QScreenCapture.stop()``,
+or ``QWindowCapture.start()`` and ``QWindowCapture.stop()``.
+
+A QMessageBox pops up if an ``errorOccurred`` signal is emitted.
+
+.. image. screencapture.webp
+ :width: 600
+ :alt: screen capture example
diff --git a/examples/multimedia/screencapture/doc/screencapture.webp b/examples/multimedia/screencapture/doc/screencapture.webp
new file mode 100644
index 000000000..58ad36c7f
--- /dev/null
+++ b/examples/multimedia/screencapture/doc/screencapture.webp
Binary files differ
diff --git a/examples/multimedia/screencapture/main.py b/examples/multimedia/screencapture/main.py
new file mode 100644
index 000000000..f445bac03
--- /dev/null
+++ b/examples/multimedia/screencapture/main.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the QtMultiMedia Screen Capture Example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtWidgets import QApplication
+
+from screencapturepreview import ScreenCapturePreview
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ QCoreApplication.setApplicationName("screencapture")
+ QCoreApplication.setOrganizationName("QtProject")
+ screen_capture_preview = ScreenCapturePreview()
+ screen_capture_preview.show()
+ sys.exit(app.exec())
diff --git a/examples/multimedia/screencapture/screencapture.pyproject b/examples/multimedia/screencapture/screencapture.pyproject
new file mode 100644
index 000000000..dfec6c901
--- /dev/null
+++ b/examples/multimedia/screencapture/screencapture.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "screencapturepreview.py", "screenlistmodel.py", "windowlistmodel.py"]
+}
diff --git a/examples/multimedia/screencapture/screencapturepreview.py b/examples/multimedia/screencapture/screencapturepreview.py
new file mode 100644
index 000000000..c7e0c596a
--- /dev/null
+++ b/examples/multimedia/screencapture/screencapturepreview.py
@@ -0,0 +1,162 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum, auto
+
+from PySide6.QtMultimediaWidgets import QVideoWidget
+from PySide6.QtMultimedia import (QCapturableWindow, QMediaCaptureSession,
+ QScreenCapture, QWindowCapture)
+from PySide6.QtWidgets import (QGridLayout, QLabel, QListView,
+ QMessageBox, QPushButton, QWidget)
+from PySide6.QtGui import QAction, QGuiApplication
+from PySide6.QtCore import QItemSelection, Qt, Slot
+
+from screenlistmodel import ScreenListModel
+from windowlistmodel import WindowListModel
+
+
+class SourceType(Enum):
+ Screen = auto()
+ Window = auto()
+
+
+class ScreenCapturePreview(QWidget):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._source = SourceType.Screen
+
+ self._screen_capture = QScreenCapture(self)
+ self._media_capture_session = QMediaCaptureSession(self)
+ self._video_widget = QVideoWidget(self)
+ self._screen_list_view = QListView(self)
+ self._screen_label = QLabel("Select screen to capture:", self)
+ self._video_widget_label = QLabel("Capture output:", self)
+ self._start_stop_button = QPushButton(self)
+ self._status_label = QLabel(self)
+
+ self._screen_list_model = ScreenListModel(self)
+
+ # Setup QScreenCapture with initial source:
+ self.setScreen(QGuiApplication.primaryScreen())
+ self._screen_capture.start()
+ self._media_capture_session.setScreenCapture(self._screen_capture)
+ self._media_capture_session.setVideoOutput(self._video_widget)
+
+ self._screen_list_view.setModel(self._screen_list_model)
+
+ self._window_list_view = QListView(self)
+ self._window_capture = QWindowCapture(self)
+ self._media_capture_session.setWindowCapture(self._window_capture)
+ self._window_label = QLabel("Select window to capture:", self)
+
+ self._window_list_model = WindowListModel(self)
+ self._window_list_view.setModel(self._window_list_model)
+ update_action = QAction("Update windows List", self)
+ update_action.triggered.connect(self._window_list_model.populate)
+ self._window_list_view.addAction(update_action)
+ self._window_list_view.setContextMenuPolicy(Qt.ActionsContextMenu)
+
+ grid_layout = QGridLayout(self)
+ grid_layout.addWidget(self._screen_label, 0, 0)
+ grid_layout.addWidget(self._screen_list_view, 1, 0)
+ grid_layout.addWidget(self._start_stop_button, 4, 0)
+ grid_layout.addWidget(self._video_widget_label, 0, 1)
+ grid_layout.addWidget(self._video_widget, 1, 1, 4, 1)
+ grid_layout.addWidget(self._window_label, 2, 0)
+ grid_layout.addWidget(self._window_list_view, 3, 0)
+ grid_layout.addWidget(self._status_label, 5, 0, 1, 2)
+
+ grid_layout.setColumnStretch(1, 1)
+ grid_layout.setRowStretch(1, 1)
+ grid_layout.setColumnMinimumWidth(0, 400)
+ grid_layout.setColumnMinimumWidth(1, 400)
+ grid_layout.setRowMinimumHeight(3, 1)
+
+ selection_model = self._screen_list_view.selectionModel()
+ selection_model.selectionChanged.connect(self.on_current_screen_selection_changed)
+ selection_model = self._window_list_view.selectionModel()
+ selection_model.selectionChanged.connect(self.on_current_window_selection_changed)
+
+ self._start_stop_button.clicked.connect(self.on_start_stop_button_clicked)
+ self._screen_capture.errorOccurred.connect(self.on_screen_capture_error_occured,
+ Qt.QueuedConnection)
+ self._window_capture.errorOccurred.connect(self.on_window_capture_error_occured,
+ Qt.QueuedConnection)
+ self.update_active(SourceType.Screen, True)
+
+ @Slot(QItemSelection)
+ def on_current_screen_selection_changed(self, selection):
+ self.clear_error_string()
+ indexes = selection.indexes()
+ if indexes:
+ self._screen_capture.setScreen(self._screen_list_model.screen(indexes[0]))
+ self.update_active(SourceType.Screen, self.is_active())
+ self._window_list_view.clearSelection()
+ else:
+ self._screen_capture.setScreen(None)
+
+ @Slot(QItemSelection)
+ def on_current_window_selection_changed(self, selection):
+ self.clear_error_string()
+ indexes = selection.indexes()
+ if indexes:
+ window = self._window_list_model.window(indexes[0])
+ if not window.isValid():
+ m = "The window is no longer valid. Update the list of windows?"
+ answer = QMessageBox.question(self, "Invalid window", m)
+ if answer == QMessageBox.Yes:
+ self.update_active(SourceType.Window, False)
+ self._window_list_view.clearSelection()
+ self._window_list_model.populate()
+ return
+ self._window_capture.setWindow(window)
+ self.update_active(SourceType.Window, self.is_active())
+ self._screen_list_view.clearSelection()
+ else:
+ self._window_capture.setWindow(QCapturableWindow())
+
+ @Slot(QWindowCapture.Error, str)
+ def on_window_capture_error_occured(self, error, error_string):
+ self.set_error_string("QWindowCapture: Error occurred " + error_string)
+
+ @Slot(QScreenCapture.Error, str)
+ def on_screen_capture_error_occured(self, error, error_string):
+ self.set_error_string("QScreenCapture: Error occurred " + error_string)
+
+ def set_error_string(self, t):
+ self._status_label.setStyleSheet("background-color: rgb(255, 0, 0);")
+ self._status_label.setText(t)
+
+ def clear_error_string(self):
+ self._status_label.clear()
+ self._status_label.setStyleSheet("")
+
+ @Slot()
+ def on_start_stop_button_clicked(self):
+ self.clear_error_string()
+ self.update_active(self._source_type, not self.is_active())
+
+ def update_start_stop_button_text(self):
+ active = self.is_active()
+ if self._source_type == SourceType.Window:
+ m = "Stop window capture" if active else "Start window capture"
+ self._start_stop_button.setText(m)
+ elif self._source_type == SourceType.Screen:
+ m = "Stop screen capture" if active else "Start screen capture"
+ self._start_stop_button.setText(m)
+
+ def update_active(self, source_type, active):
+ self._source_type = source_type
+ self._screen_capture.setActive(active and source_type == SourceType.Screen)
+ self._window_capture.setActive(active and source_type == SourceType.Window)
+
+ self.update_start_stop_button_text()
+
+ def is_active(self):
+ if self._source_type == SourceType.Window:
+ return self._window_capture.isActive()
+ if self._source_type == SourceType.Screen:
+ return self._screen_capture.isActive()
+ return False
diff --git a/examples/multimedia/screencapture/screenlistmodel.py b/examples/multimedia/screencapture/screenlistmodel.py
new file mode 100644
index 000000000..72bb306e3
--- /dev/null
+++ b/examples/multimedia/screencapture/screenlistmodel.py
@@ -0,0 +1,38 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtCore import QAbstractListModel, Qt, Slot
+
+
+class ScreenListModel(QAbstractListModel):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ app = qApp # noqa: F821
+ app.screenAdded.connect(self.screens_changed)
+ app.screenRemoved.connect(self.screens_changed)
+ app.primaryScreenChanged.connect(self.screens_changed)
+
+ def rowCount(self, index):
+ return len(QGuiApplication.screens())
+
+ def data(self, index, role):
+ screen_list = QGuiApplication.screens()
+
+ if role == Qt.DisplayRole:
+ screen = screen_list[index.row()]
+ w = screen.size().width()
+ h = screen.size().height()
+ dpi = screen.logicalDotsPerInch()
+ return f'"{screen.name()}" {w}x{h}, {dpi}DPI'
+
+ return None
+
+ def screen(self, index):
+ return QGuiApplication.screens()[index.row()]
+
+ @Slot()
+ def screens_changed(self):
+ self.beginResetModel()
+ self.endResetModel()
diff --git a/examples/multimedia/screencapture/windowlistmodel.py b/examples/multimedia/screencapture/windowlistmodel.py
new file mode 100644
index 000000000..079040ec2
--- /dev/null
+++ b/examples/multimedia/screencapture/windowlistmodel.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QAbstractListModel, Qt, Slot
+from PySide6.QtMultimedia import QWindowCapture
+
+
+class WindowListModel(QAbstractListModel):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._window_list = QWindowCapture.capturableWindows()
+
+ def rowCount(self, QModelIndex):
+ return len(self._window_list)
+
+ def data(self, index, role):
+ if role == Qt.DisplayRole:
+ window = self._window_list[index.row()]
+ return window.description()
+ return None
+
+ def window(self, index):
+ return self._window_list[index.row()]
+
+ @Slot()
+ def populate(self):
+ self.beginResetModel()
+ self._window_list = QWindowCapture.capturableWindows()
+ self.endResetModel()
diff --git a/examples/network/blockingfortuneclient/blockingfortuneclient.py b/examples/network/blockingfortuneclient/blockingfortuneclient.py
index f467cf8d4..d0dd7e0ad 100644
--- a/examples/network/blockingfortuneclient/blockingfortuneclient.py
+++ b/examples/network/blockingfortuneclient/blockingfortuneclient.py
@@ -5,12 +5,13 @@
"""PySide6 port of the network/blockingfortunclient example from Qt v5.x, originating from PyQt"""
from PySide6.QtCore import (Signal, QDataStream, QMutex, QMutexLocker,
- QThread, QWaitCondition)
+ QThread, QWaitCondition)
from PySide6.QtGui import QIntValidator
from PySide6.QtWidgets import (QApplication, QDialogButtonBox, QGridLayout,
- QLabel, QLineEdit, QMessageBox, QPushButton, QWidget)
+ QLabel, QLineEdit, QMessageBox, QPushButton,
+ QWidget)
from PySide6.QtNetwork import (QAbstractSocket, QHostAddress, QNetworkInterface,
- QTcpSocket)
+ QTcpSocket)
class FortuneThread(QThread):
@@ -109,7 +110,7 @@ class BlockingClient(QWidget):
port_label.setBuddy(self._port_line_edit)
self._status_label = QLabel(
- "This example requires that you run the Fortune Server example as well.")
+ "This example requires that you run the Fortune Server example as well.")
self._status_label.setWordWrap(True)
self._get_fortune_button = QPushButton("Get Fortune")
@@ -144,7 +145,7 @@ class BlockingClient(QWidget):
def request_new_fortune(self):
self._get_fortune_button.setEnabled(False)
self.thread.request_new_fortune(self._host_line_edit.text(),
- int(self._port_line_edit.text()))
+ int(self._port_line_edit.text()))
def show_fortune(self, nextFortune):
if nextFortune == self._current_fortune:
@@ -158,22 +159,22 @@ class BlockingClient(QWidget):
def display_error(self, socketError, message):
if socketError == QAbstractSocket.HostNotFoundError:
QMessageBox.information(self, "Blocking Fortune Client",
- "The host was not found. Please check the host and port "
- "settings.")
+ "The host was not found. Please check the host and port "
+ "settings.")
elif socketError == QAbstractSocket.ConnectionRefusedError:
QMessageBox.information(self, "Blocking Fortune Client",
- "The connection was refused by the peer. Make sure the "
- "fortune server is running, and check that the host name "
- "and port settings are correct.")
+ "The connection was refused by the peer. Make sure the "
+ "fortune server is running, and check that the host name "
+ "and port settings are correct.")
else:
QMessageBox.information(self, "Blocking Fortune Client",
- f"The following error occurred: {message}.")
+ f"The following error occurred: {message}.")
self._get_fortune_button.setEnabled(True)
def enable_get_fortune_button(self):
- self._get_fortune_button.setEnabled(self._host_line_edit.text() != '' and
- self._port_line_edit.text() != '')
+ self._get_fortune_button.setEnabled(self._host_line_edit.text() != ''
+ and self._port_line_edit.text() != '')
if __name__ == '__main__':
diff --git a/examples/network/downloader/downloader.py b/examples/network/downloader/downloader.py
index f989adf30..fba0cb980 100644
--- a/examples/network/downloader/downloader.py
+++ b/examples/network/downloader/downloader.py
@@ -35,7 +35,8 @@ class DownloaderWidget(QWidget):
self.link_box.setPlaceholderText("Download Link ...")
self._open_folder_action = self.dest_box.addAction(
- qApp.style().standardIcon(QStyle.SP_DirOpenIcon), QLineEdit.TrailingPosition
+ qApp.style().standardIcon(QStyle.SP_DirOpenIcon), # noqa: F821
+ QLineEdit.TrailingPosition
)
self._open_folder_action.triggered.connect(self.on_open_folder)
diff --git a/examples/network/fortuneclient/fortuneclient.py b/examples/network/fortuneclient/fortuneclient.py
index 2b7ecfb85..e88e5e35b 100644
--- a/examples/network/fortuneclient/fortuneclient.py
+++ b/examples/network/fortuneclient/fortuneclient.py
@@ -6,12 +6,11 @@
import sys
-from PySide6.QtCore import QDataStream, QTimer, Qt
+from PySide6.QtCore import QDataStream, QTimer
from PySide6.QtGui import QIntValidator
from PySide6.QtNetwork import QAbstractSocket, QTcpSocket
from PySide6.QtWidgets import (QApplication, QDialog, QDialogButtonBox, QGridLayout,
- QLabel, QLineEdit, QMessageBox, QPushButton,
- QVBoxLayout, QWidget)
+ QLabel, QLineEdit, QMessageBox, QPushButton)
class Client(QDialog):
@@ -32,7 +31,7 @@ class Client(QDialog):
port_label.setBuddy(self._port_line_edit)
self._status_label = QLabel("This examples requires that you run "
- "the Fortune Server example as well.")
+ "the Fortune Server example as well.")
self._get_fortune_button = QPushButton("Get Fortune")
self._get_fortune_button.setDefault(True)
@@ -41,8 +40,7 @@ class Client(QDialog):
quit_button = QPushButton("Quit")
button_box = QDialogButtonBox()
- button_box.addButton(self._get_fortune_button,
- QDialogButtonBox.ActionRole)
+ button_box.addButton(self._get_fortune_button, QDialogButtonBox.ActionRole)
button_box.addButton(quit_button, QDialogButtonBox.RejectRole)
self._tcp_socket = QTcpSocket(self)
@@ -70,7 +68,7 @@ class Client(QDialog):
self._block_size = 0
self._tcp_socket.abort()
self._tcp_socket.connectToHost(self._host_line_edit.text(),
- int(self._port_line_edit.text()))
+ int(self._port_line_edit.text()))
def read_fortune(self):
instr = QDataStream(self._tcp_socket)
@@ -100,23 +98,23 @@ class Client(QDialog):
pass
elif socketError == QAbstractSocket.HostNotFoundError:
QMessageBox.information(self, "Fortune Client",
- "The host was not found. Please check the host name and "
- "port settings.")
+ "The host was not found. Please check the host name and "
+ "port settings.")
elif socketError == QAbstractSocket.ConnectionRefusedError:
QMessageBox.information(self, "Fortune Client",
- "The connection was refused by the peer. Make sure the "
- "fortune server is running, and check that the host name "
- "and port settings are correct.")
+ "The connection was refused by the peer. Make sure the "
+ "fortune server is running, and check that the host name "
+ "and port settings are correct.")
else:
reason = self._tcp_socket.errorString()
QMessageBox.information(self, "Fortune Client",
- f"The following error occurred: {reason}.")
+ f"The following error occurred: {reason}.")
self._get_fortune_button.setEnabled(True)
def enable_get_fortune_button(self):
- self._get_fortune_button.setEnabled(bool(self._host_line_edit.text() and
- self._port_line_edit.text()))
+ self._get_fortune_button.setEnabled(bool(self._host_line_edit.text()
+ and self._port_line_edit.text()))
if __name__ == '__main__':
diff --git a/examples/network/fortuneserver/fortuneserver.py b/examples/network/fortuneserver/fortuneserver.py
index 0ddc1f02a..a94a49f42 100644
--- a/examples/network/fortuneserver/fortuneserver.py
+++ b/examples/network/fortuneserver/fortuneserver.py
@@ -11,7 +11,7 @@ from PySide6.QtCore import QByteArray, QDataStream, QIODevice, Qt
from PySide6.QtNetwork import QTcpServer
from PySide6.QtWidgets import (QApplication, QDialog, QHBoxLayout,
QLabel, QMessageBox, QPushButton,
- QVBoxLayout, QWidget)
+ QVBoxLayout)
class Server(QDialog):
@@ -27,21 +27,21 @@ class Server(QDialog):
if not self._tcp_server.listen():
reason = self._tcp_server.errorString()
QMessageBox.critical(self, "Fortune Server",
- f"Unable to start the server: {reason}.")
+ f"Unable to start the server: {reason}.")
self.close()
return
port = self._tcp_server.serverPort()
status_label.setText(f"The server is running on port {port}.\nRun the "
- "Fortune Client example now.")
+ "Fortune Client example now.")
self.fortunes = (
- "You've been leading a dog's life. Stay off the furniture.",
- "You've got to think about tomorrow.",
- "You will be surprised by a loud noise.",
- "You will feel hungry again in another hour.",
- "You might have mail.",
- "You cannot kill time without injuring eternity.",
- "Computers are not intelligent. They only think they are.")
+ "You've been leading a dog's life. Stay off the furniture.",
+ "You've got to think about tomorrow.",
+ "You will be surprised by a loud noise.",
+ "You will feel hungry again in another hour.",
+ "You might have mail.",
+ "You cannot kill time without injuring eternity.",
+ "Computers are not intelligent. They only think they are.")
quit_button.clicked.connect(self.close)
self._tcp_server.newConnection.connect(self.send_fortune)
diff --git a/examples/network/googlesuggest/googlesuggest.py b/examples/network/googlesuggest/googlesuggest.py
index 3cb9f757d..d3fc67c05 100644
--- a/examples/network/googlesuggest/googlesuggest.py
+++ b/examples/network/googlesuggest/googlesuggest.py
@@ -120,12 +120,11 @@ class GSuggestCompletion(QObject):
@Slot(QNetworkReply)
def handle_network_data(self, network_reply: QNetworkReply):
- url = network_reply.url()
if network_reply.error() == QNetworkReply.NoError:
choices: List[str] = []
response: QByteArray = network_reply.readAll()
- xml = QXmlStreamReader(response)
+ xml = QXmlStreamReader(str(response))
while not xml.atEnd():
xml.readNext()
if xml.tokenType() == QXmlStreamReader.StartElement:
diff --git a/examples/network/threadedfortuneserver/threadedfortuneserver.py b/examples/network/threadedfortuneserver/threadedfortuneserver.py
index 60900708e..c75e2bc57 100644
--- a/examples/network/threadedfortuneserver/threadedfortuneserver.py
+++ b/examples/network/threadedfortuneserver/threadedfortuneserver.py
@@ -7,11 +7,11 @@
import random
from PySide6.QtCore import (Signal, QByteArray, QDataStream, QIODevice,
- QThread, Qt)
+ QThread, Qt)
from PySide6.QtWidgets import (QApplication, QDialog, QHBoxLayout, QLabel,
- QMessageBox, QPushButton, QVBoxLayout)
+ QMessageBox, QPushButton, QVBoxLayout)
from PySide6.QtNetwork import (QHostAddress, QNetworkInterface, QTcpServer,
- QTcpSocket)
+ QTcpSocket)
class FortuneThread(QThread):
@@ -75,7 +75,7 @@ class Dialog(QDialog):
if not self.server.listen():
reason = self.server.errorString()
QMessageBox.critical(self, "Threaded Fortune Server",
- f"Unable to start the server: {reason}.")
+ f"Unable to start the server: {reason}.")
self.close()
return
@@ -89,7 +89,7 @@ class Dialog(QDialog):
port = self.server.serverPort()
status_label.setText(f"The server is running on\n\nIP: {ip_address}\nport: {port}\n\n"
- "Run the Fortune Client example now.")
+ "Run the Fortune Client example now.")
quit_button.clicked.connect(self.close)
diff --git a/examples/networkauth/redditclient/redditmodel.py b/examples/networkauth/redditclient/redditmodel.py
index de81ceb19..fd6f9bc97 100644
--- a/examples/networkauth/redditclient/redditmodel.py
+++ b/examples/networkauth/redditclient/redditmodel.py
@@ -51,7 +51,7 @@ class RedditModel(QAbstractTableModel):
document = QJsonDocument.fromJson(json)
root_object = document.object()
kind = root_object["kind"]
- assert(kind == "Listing")
+ assert kind == "Listing"
data_object = root_object["data"]
children_array = data_object["children"]
if not children_array:
diff --git a/examples/networkauth/redditclient/redditwrapper.py b/examples/networkauth/redditclient/redditwrapper.py
index f889a9366..ed4c3d2c7 100644
--- a/examples/networkauth/redditclient/redditwrapper.py
+++ b/examples/networkauth/redditclient/redditwrapper.py
@@ -19,6 +19,7 @@ NEW_URL = "https://oauth.reddit.com/new"
HOT_URL = "https://oauth.reddit.com/hot"
LIVE_THREADS_URL = "https://oauth.reddit.com/live/XXXX/about.json"
+
class RedditWrapper(QObject):
authenticated = Signal()
@@ -78,7 +79,7 @@ class RedditWrapper(QObject):
json = reply.readAll()
document = QJsonDocument.fromJson(json)
- assert(document.isObject())
+ assert document.isObject()
root_object = document.object()
data_object = root_object["data"]
websocketUrl = QUrl(data_object["websocket_url"])
diff --git a/examples/opengl/contextinfo/contextinfo.py b/examples/opengl/contextinfo/contextinfo.py
index 37c5f5d43..311d5b765 100644
--- a/examples/opengl/contextinfo/contextinfo.py
+++ b/examples/opengl/contextinfo/contextinfo.py
@@ -15,15 +15,14 @@ from PySide6.QtGui import (QMatrix4x4, QOpenGLContext, QSurfaceFormat, QWindow)
from PySide6.QtOpenGL import (QOpenGLBuffer, QOpenGLShader,
QOpenGLShaderProgram, QOpenGLVertexArrayObject)
from PySide6.QtWidgets import (QApplication, QHBoxLayout, QMessageBox, QPlainTextEdit,
- QWidget)
+ QWidget)
from PySide6.support import VoidPtr
try:
from OpenGL import GL
except ImportError:
app = QApplication(sys.argv)
message_box = QMessageBox(QMessageBox.Critical, "ContextInfo",
- "PyOpenGL must be installed to run this example.",
- QMessageBox.Close)
+ "PyOpenGL must be installed to run this example.", QMessageBox.Close)
message_box.setDetailedText("Run:\npip install PyOpenGL PyOpenGL_accelerate")
message_box.exec()
sys.exit(1)
@@ -74,7 +73,10 @@ colors = numpy.array([1, 0, 0, 0, 1, 0, 0, 0, 1], dtype=numpy.float32)
def print_surface_format(surface_format):
- profile_name = 'core' if surface_format.profile() == QSurfaceFormat.CoreProfile else 'compatibility'
+ if surface_format.profile() == QSurfaceFormat.CoreProfile:
+ profile_name = 'core'
+ else:
+ profile_name = 'compatibility'
major = surface_format.majorVersion()
minor = surface_format.minorVersion()
return f"{profile_name} version {major}.{minor}"
@@ -104,11 +106,13 @@ class RenderWindow(QWindow):
# concept 3.2+ has. This may still fail since version 150 (3.2) is
# specified in the sources but it's worth a try.
if (fmt.renderableType() == QSurfaceFormat.OpenGL and fmt.majorVersion() == 3
- and fmt.minorVersion() <= 1):
+ and fmt.minorVersion() <= 1):
use_new_style_shader = not fmt.testOption(QSurfaceFormat.DeprecatedFunctions)
vertex_shader = vertex_shader_source if use_new_style_shader else vertex_shader_source_110
- fragment_shader = fragment_shader_source if use_new_style_shader else fragment_shader_source_110
+ fragment_shader = (fragment_shader_source
+ if use_new_style_shader
+ else fragment_shader_source_110)
if not self.program.addShaderFromSourceCode(QOpenGLShader.Vertex, vertex_shader):
log = self.program.log()
raise Exception("Vertex shader could not be added: {log} ({vertexShader})")
diff --git a/examples/opengl/hellogl2/doc/hellogl2.rst b/examples/opengl/hellogl2/doc/hellogl2.rst
index 1223e138c..3471ebf30 100644
--- a/examples/opengl/hellogl2/doc/hellogl2.rst
+++ b/examples/opengl/hellogl2/doc/hellogl2.rst
@@ -4,6 +4,20 @@ Hello GL2 Example
The Hello GL2 example demonstrates the basic use of the OpenGL-related classes
provided with Qt.
+In this example the widget's corresponding top-level window can change several
+times during the widget's lifetime. Whenever this happens, the QOpenGLWidget's
+associated context is destroyed and a new one is created, requiring us to clean
+up the GL resources.
+
+The equivalent C++ example does this cleanup on emission of the
+QOpenGLContext.aboutToBeDestroyed() signal. However, in Qt for Python, we
+cannot rely on this signal when it is emitted from the destructor.
+
+Therefore, we do the cleanup in GLWidget.hideEvent().
+
+This will be followed by an invocation of initializeGL() where we can recreate
+all resources.
+
.. image:: hellogl2.png
:width: 400
:alt: Hello GL2 Screenshot
diff --git a/examples/opengl/hellogl2/glwidget.py b/examples/opengl/hellogl2/glwidget.py
new file mode 100644
index 000000000..bbf200a6b
--- /dev/null
+++ b/examples/opengl/hellogl2/glwidget.py
@@ -0,0 +1,272 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# Copyright (C) 2013 Riverbank Computing Limited.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import ctypes
+from PySide6.QtCore import Signal, Slot, Qt, QSize, QPointF
+from PySide6.QtGui import (QVector3D, QOpenGLFunctions,
+ QMatrix4x4, QOpenGLContext, QSurfaceFormat)
+from PySide6.QtOpenGL import (QOpenGLVertexArrayObject, QOpenGLBuffer,
+ QOpenGLShaderProgram, QOpenGLShader)
+from PySide6.QtOpenGLWidgets import QOpenGLWidget
+
+from OpenGL import GL
+
+from shiboken6 import VoidPtr
+from logo import Logo
+
+FRAGMENT_SHADER_SOURCE_CORE = """#version 150
+in highp vec3 vert;
+in highp vec3 vertNormal;
+out highp vec4 fragColor;
+uniform highp vec3 lightPos;
+void main() {
+ highp vec3 L = normalize(lightPos - vert);
+ highp float NL = max(dot(normalize(vertNormal), L), 0.0);
+ highp vec3 color = vec3(0.39, 1.0, 0.0);
+ highp vec3 col = clamp(color * 0.2 + color * 0.8 * NL, 0.0, 1.0);
+ fragColor = vec4(col, 1.0);
+}"""
+
+
+FRAGMENT_SHADER_SOURCE = """varying highp vec3 vert;
+varying highp vec3 vertNormal;
+uniform highp vec3 lightPos;
+void main() {
+ highp vec3 L = normalize(lightPos - vert);
+ highp float NL = max(dot(normalize(vertNormal), L), 0.0);
+ highp vec3 color = vec3(0.39, 1.0, 0.0);
+ highp vec3 col = clamp(color * 0.2 + color * 0.8 * NL, 0.0, 1.0);
+ gl_FragColor = vec4(col, 1.0);
+}"""
+
+
+VERTEX_SHADER_SOURCE_CORE = """#version 150
+in vec4 vertex;
+in vec3 normal;
+out vec3 vert;
+out vec3 vertNormal;
+uniform mat4 projMatrix;
+uniform mat4 mvMatrix;
+uniform mat3 normalMatrix;
+void main() {
+ vert = vertex.xyz;
+ vertNormal = normalMatrix * normal;
+ gl_Position = projMatrix * mvMatrix * vertex;
+}"""
+
+
+VERTEX_SHADER_SOURCE = """attribute vec4 vertex;
+attribute vec3 normal;
+varying vec3 vert;
+varying vec3 vertNormal;
+uniform mat4 projMatrix;
+uniform mat4 mvMatrix;
+uniform mat3 normalMatrix;
+void main() {
+ vert = vertex.xyz;
+ vertNormal = normalMatrix * normal;
+ gl_Position = projMatrix * mvMatrix * vertex;
+}"""
+
+
+class GLWidget(QOpenGLWidget, QOpenGLFunctions):
+ x_rotation_changed = Signal(int)
+ y_rotation_changed = Signal(int)
+ z_rotation_changed = Signal(int)
+
+ _transparent = False
+
+ def __init__(self, parent=None):
+ QOpenGLWidget.__init__(self, parent)
+ QOpenGLFunctions.__init__(self)
+
+ self._core = QSurfaceFormat.defaultFormat().profile() == QSurfaceFormat.CoreProfile
+
+ self._x_rot = 0
+ self._y_rot = 0
+ self._z_rot = 0
+ self._last_pos = QPointF()
+ self.logo = Logo()
+ self.vao = QOpenGLVertexArrayObject()
+ self._logo_vbo = QOpenGLBuffer()
+ self.program = QOpenGLShaderProgram()
+ self._proj_matrix_loc = 0
+ self._mv_matrix_loc = 0
+ self._normal_matrix_loc = 0
+ self._light_pos_loc = 0
+ self.proj = QMatrix4x4()
+ self.camera = QMatrix4x4()
+ self.world = QMatrix4x4()
+ if self._transparent:
+ fmt = self.format()
+ fmt.setAlphaBufferSize(8)
+ self.setFormat(fmt)
+
+ @staticmethod
+ def set_transparent(t):
+ GLWidget._transparent = t
+
+ @staticmethod
+ def is_transparent():
+ return GLWidget._transparent
+
+ def x_rotation(self):
+ return self._x_rot
+
+ def y_rotation(self):
+ return self._y_rot
+
+ def z_rotation(self):
+ return self._z_rot
+
+ def minimumSizeHint(self):
+ return QSize(50, 50)
+
+ def sizeHint(self):
+ return QSize(400, 400)
+
+ def normalize_angle(self, angle):
+ while angle < 0:
+ angle += 360 * 16
+ while angle > 360 * 16:
+ angle -= 360 * 16
+ return angle
+
+ @Slot(int)
+ def set_xrotation(self, angle):
+ angle = self.normalize_angle(angle)
+ if angle != self._x_rot:
+ self._x_rot = angle
+ self.x_rotation_changed.emit(angle)
+ self.update()
+
+ @Slot(int)
+ def set_yrotation(self, angle):
+ angle = self.normalize_angle(angle)
+ if angle != self._y_rot:
+ self._y_rot = angle
+ self.y_rotation_changed.emit(angle)
+ self.update()
+
+ @Slot(int)
+ def set_zrotation(self, angle):
+ angle = self.normalize_angle(angle)
+ if angle != self._z_rot:
+ self._z_rot = angle
+ self.z_rotation_changed.emit(angle)
+ self.update()
+
+ @Slot()
+ def cleanup(self):
+ if self.program:
+ self.makeCurrent()
+ self._logo_vbo.destroy()
+ del self.program
+ self.program = None
+ self.doneCurrent()
+
+ def initializeGL(self):
+ self.initializeOpenGLFunctions()
+ self.glClearColor(0, 0, 0, 0 if self._transparent else 1)
+
+ self.program = QOpenGLShaderProgram()
+
+ if self._core:
+ self._vertex_shader = VERTEX_SHADER_SOURCE_CORE
+ self._fragment_shader = FRAGMENT_SHADER_SOURCE_CORE
+ else:
+ self._vertex_shader = VERTEX_SHADER_SOURCE
+ self._fragment_shader = FRAGMENT_SHADER_SOURCE
+
+ self.program.addShaderFromSourceCode(QOpenGLShader.Vertex,
+ self._vertex_shader)
+ self.program.addShaderFromSourceCode(QOpenGLShader.Fragment,
+ self._fragment_shader)
+ self.program.bindAttributeLocation("vertex", 0)
+ self.program.bindAttributeLocation("normal", 1)
+ self.program.link()
+
+ self.program.bind()
+ self._proj_matrix_loc = self.program.uniformLocation("projMatrix")
+ self._mv_matrix_loc = self.program.uniformLocation("mvMatrix")
+ self._normal_matrix_loc = self.program.uniformLocation("normalMatrix")
+ self._light_pos_loc = self.program.uniformLocation("lightPos")
+
+ self.vao.create()
+ with QOpenGLVertexArrayObject.Binder(self.vao):
+ self._logo_vbo.create()
+ self._logo_vbo.bind()
+ float_size = ctypes.sizeof(ctypes.c_float)
+ self._logo_vbo.allocate(self.logo.const_data(),
+ self.logo.count() * float_size)
+
+ self.setup_vertex_attribs()
+
+ self.camera.setToIdentity()
+ self.camera.translate(0, 0, -1)
+
+ self.program.setUniformValue(self._light_pos_loc,
+ QVector3D(0, 0, 70))
+ self.program.release()
+
+ def setup_vertex_attribs(self):
+ self._logo_vbo.bind()
+ f = QOpenGLContext.currentContext().functions()
+ f.glEnableVertexAttribArray(0)
+ f.glEnableVertexAttribArray(1)
+ float_size = ctypes.sizeof(ctypes.c_float)
+
+ null = VoidPtr(0)
+ pointer = VoidPtr(3 * float_size)
+ f.glVertexAttribPointer(0, 3, int(GL.GL_FLOAT), int(GL.GL_FALSE),
+ 6 * float_size, null)
+ f.glVertexAttribPointer(1, 3, int(GL.GL_FLOAT), int(GL.GL_FALSE),
+ 6 * float_size, pointer)
+ self._logo_vbo.release()
+
+ def paintGL(self):
+ self.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT)
+ self.glEnable(GL.GL_DEPTH_TEST)
+ self.glEnable(GL.GL_CULL_FACE)
+
+ self.world.setToIdentity()
+ self.world.rotate(180 - (self._x_rot / 16), 1, 0, 0)
+ self.world.rotate(self._y_rot / 16, 0, 1, 0)
+ self.world.rotate(self._z_rot / 16, 0, 0, 1)
+
+ with QOpenGLVertexArrayObject.Binder(self.vao):
+ self.program.bind()
+ self.program.setUniformValue(self._proj_matrix_loc, self.proj)
+ self.program.setUniformValue(self._mv_matrix_loc,
+ self.camera * self.world)
+ normal_matrix = self.world.normalMatrix()
+ self.program.setUniformValue(self._normal_matrix_loc, normal_matrix)
+
+ self.glDrawArrays(GL.GL_TRIANGLES, 0, self.logo.vertex_count())
+ self.program.release()
+
+ def resizeGL(self, width, height):
+ self.proj.setToIdentity()
+ self.proj.perspective(45, width / height, 0.01, 100)
+
+ def hideEvent(self, event):
+ self.cleanup()
+ super().hideEvent(event)
+
+ def mousePressEvent(self, event):
+ self._last_pos = event.position()
+
+ def mouseMoveEvent(self, event):
+ pos = event.position()
+ dx = pos.x() - self._last_pos.x()
+ dy = pos.y() - self._last_pos.y()
+
+ if event.buttons() & Qt.LeftButton:
+ self.set_xrotation(self._x_rot + 8 * dy)
+ self.set_yrotation(self._y_rot + 8 * dx)
+ elif event.buttons() & Qt.RightButton:
+ self.set_xrotation(self._x_rot + 8 * dy)
+ self.set_zrotation(self._z_rot + 8 * dx)
+
+ self._last_pos = pos
diff --git a/examples/opengl/hellogl2/hellogl2.py b/examples/opengl/hellogl2/hellogl2.py
deleted file mode 100644
index e66177e04..000000000
--- a/examples/opengl/hellogl2/hellogl2.py
+++ /dev/null
@@ -1,440 +0,0 @@
-# Copyright (C) 2013 Riverbank Computing Limited.
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-"""PySide6 port of the opengl/hellogl2 example from Qt v5.x"""
-
-from argparse import ArgumentParser, RawTextHelpFormatter
-import ctypes
-import math
-import sys
-from PySide6.QtCore import (QCoreApplication, Signal, Slot,
- Qt, QSize, QPointF)
-from PySide6.QtGui import (QVector3D, QOpenGLFunctions,
- QMatrix4x4, QOpenGLContext, QSurfaceFormat, QVector3DList)
-from PySide6.QtOpenGL import (QOpenGLVertexArrayObject, QOpenGLBuffer,
- QOpenGLShaderProgram, QOpenGLShader)
-from PySide6.QtWidgets import (QApplication, QWidget, QMessageBox, QHBoxLayout,
- QSlider)
-from PySide6.QtOpenGLWidgets import QOpenGLWidget
-
-from shiboken6 import VoidPtr
-
-try:
- from OpenGL import GL
-except ImportError:
- app = QApplication(sys.argv)
- message_box = QMessageBox(QMessageBox.Critical, "OpenGL hellogl",
- "PyOpenGL must be installed to run this example.",
- QMessageBox.Close)
- message_box.setDetailedText("Run:\npip install PyOpenGL PyOpenGL_accelerate")
- message_box.exec()
- sys.exit(1)
-
-
-class Window(QWidget):
- def __init__(self, transparent, parent=None):
- QWidget.__init__(self, parent)
-
- if transparent:
- self.setAttribute(Qt.WA_TranslucentBackground)
- self.setAttribute(Qt.WA_NoSystemBackground, False)
-
- self._gl_widget = GLWidget(transparent)
-
- self._x_slider = self.create_slider()
- self._x_slider.valueChanged.connect(self._gl_widget.set_xrotation)
- self._gl_widget.x_rotation_changed.connect(self._x_slider.setValue)
-
- self._y_slider = self.create_slider()
- self._y_slider.valueChanged.connect(self._gl_widget.set_yrotation)
- self._gl_widget.y_rotation_changed.connect(self._y_slider.setValue)
-
- self._z_slider = self.create_slider()
- self._z_slider.valueChanged.connect(self._gl_widget.set_zrotation)
- self._gl_widget.z_rotation_changed.connect(self._z_slider.setValue)
-
- main_layout = QHBoxLayout()
- main_layout.addWidget(self._gl_widget)
- main_layout.addWidget(self._x_slider)
- main_layout.addWidget(self._y_slider)
- main_layout.addWidget(self._z_slider)
- self.setLayout(main_layout)
-
- self._x_slider.setValue(15 * 16)
- self._y_slider.setValue(345 * 16)
- self._z_slider.setValue(0 * 16)
-
- self.setWindowTitle(self.tr("Hello GL"))
-
- def create_slider(self):
- slider = QSlider(Qt.Vertical)
-
- slider.setRange(0, 360 * 16)
- slider.setSingleStep(16)
- slider.setPageStep(15 * 16)
- slider.setTickInterval(15 * 16)
- slider.setTickPosition(QSlider.TicksRight)
- return slider
-
- def keyPressEvent(self, event):
- if event.key() == Qt.Key_Escape:
- self.close()
- else:
- super(Window, self).keyPressEvent(event)
-
-
-class Logo():
- def __init__(self):
- self.m_data = QVector3DList()
- self.m_data.reserve(5000)
-
- x1 = +0.06
- y1 = -0.14
- x2 = +0.14
- y2 = -0.06
- x3 = +0.08
- y3 = +0.00
- x4 = +0.30
- y4 = +0.22
-
- self.quad(x1, y1, x2, y2, y2, x2, y1, x1)
- self.quad(x3, y3, x4, y4, y4, x4, y3, x3)
-
- self.extrude(x1, y1, x2, y2)
- self.extrude(x2, y2, y2, x2)
- self.extrude(y2, x2, y1, x1)
- self.extrude(y1, x1, x1, y1)
- self.extrude(x3, y3, x4, y4)
- self.extrude(x4, y4, y4, x4)
- self.extrude(y4, x4, y3, x3)
-
- NUM_SECTORS = 100
-
- for i in range(NUM_SECTORS):
- angle = (i * 2 * math.pi) / NUM_SECTORS
- x5 = 0.30 * math.sin(angle)
- y5 = 0.30 * math.cos(angle)
- x6 = 0.20 * math.sin(angle)
- y6 = 0.20 * math.cos(angle)
-
- angle = ((i + 1) * 2 * math.pi) / NUM_SECTORS
- x7 = 0.20 * math.sin(angle)
- y7 = 0.20 * math.cos(angle)
- x8 = 0.30 * math.sin(angle)
- y8 = 0.30 * math.cos(angle)
-
- self.quad(x5, y5, x6, y6, x7, y7, x8, y8)
-
- self.extrude(x6, y6, x7, y7)
- self.extrude(x8, y8, x5, y5)
-
- def const_data(self):
- return self.m_data.constData()
-
- def count(self):
- return len(self.m_data) * 3
-
- def vertex_count(self):
- return self.count() / 6
-
- def quad(self, x1, y1, x2, y2, x3, y3, x4, y4):
- n = QVector3D.normal(QVector3D(x4 - x1, y4 - y1, 0), QVector3D(x2 - x1, y2 - y1, 0))
-
- self.add(QVector3D(x1, y1, -0.05), n)
- self.add(QVector3D(x4, y4, -0.05), n)
- self.add(QVector3D(x2, y2, -0.05), n)
-
- self.add(QVector3D(x3, y3, -0.05), n)
- self.add(QVector3D(x2, y2, -0.05), n)
- self.add(QVector3D(x4, y4, -0.05), n)
-
- n = QVector3D.normal(QVector3D(x1 - x4, y1 - y4, 0), QVector3D(x2 - x4, y2 - y4, 0))
-
- self.add(QVector3D(x4, y4, 0.05), n)
- self.add(QVector3D(x1, y1, 0.05), n)
- self.add(QVector3D(x2, y2, 0.05), n)
-
- self.add(QVector3D(x2, y2, 0.05), n)
- self.add(QVector3D(x3, y3, 0.05), n)
- self.add(QVector3D(x4, y4, 0.05), n)
-
- def extrude(self, x1, y1, x2, y2):
- n = QVector3D.normal(QVector3D(0, 0, -0.1), QVector3D(x2 - x1, y2 - y1, 0))
-
- self.add(QVector3D(x1, y1, 0.05), n)
- self.add(QVector3D(x1, y1, -0.05), n)
- self.add(QVector3D(x2, y2, 0.05), n)
-
- self.add(QVector3D(x2, y2, -0.05), n)
- self.add(QVector3D(x2, y2, 0.05), n)
- self.add(QVector3D(x1, y1, -0.05), n)
-
- def add(self, v, n):
- self.m_data.append(v)
- self.m_data.append(n)
-
-
-class GLWidget(QOpenGLWidget, QOpenGLFunctions):
- x_rotation_changed = Signal(int)
- y_rotation_changed = Signal(int)
- z_rotation_changed = Signal(int)
-
- def __init__(self, transparent, parent=None):
- QOpenGLWidget.__init__(self, parent)
- QOpenGLFunctions.__init__(self)
-
- self._transparent = transparent
- self._core = QSurfaceFormat.defaultFormat().profile() == QSurfaceFormat.CoreProfile
-
- self._x_rot = 0
- self._y_rot = 0
- self._z_rot = 0
- self._last_pos = QPointF()
- self.logo = Logo()
- self.vao = QOpenGLVertexArrayObject()
- self._logo_vbo = QOpenGLBuffer()
- self.program = QOpenGLShaderProgram()
- self._proj_matrix_loc = 0
- self._mv_matrix_loc = 0
- self._normal_matrix_loc = 0
- self._light_pos_loc = 0
- self.proj = QMatrix4x4()
- self.camera = QMatrix4x4()
- self.world = QMatrix4x4()
- if transparent:
- fmt = self.format()
- fmt.setAlphaBufferSize(8)
- self.setFormat(fmt)
-
- def x_rotation(self):
- return self._x_rot
-
- def y_rotation(self):
- return self._y_rot
-
- def z_rotation(self):
- return self._z_rot
-
- def minimumSizeHint(self):
- return QSize(50, 50)
-
- def sizeHint(self):
- return QSize(400, 400)
-
- def normalize_angle(self, angle):
- while angle < 0:
- angle += 360 * 16
- while angle > 360 * 16:
- angle -= 360 * 16
- return angle
-
- @Slot(int)
- def set_xrotation(self, angle):
- angle = self.normalize_angle(angle)
- if angle != self._x_rot:
- self._x_rot = angle
- self.x_rotation_changed.emit(angle)
- self.update()
-
- @Slot(int)
- def set_yrotation(self, angle):
- angle = self.normalize_angle(angle)
- if angle != self._y_rot:
- self._y_rot = angle
- self.y_rotation_changed.emit(angle)
- self.update()
-
- @Slot(int)
- def set_zrotation(self, angle):
- angle = self.normalize_angle(angle)
- if angle != self._z_rot:
- self._z_rot = angle
- self.z_rotation_changed.emit(angle)
- self.update()
-
- @Slot()
- def cleanup(self):
- self.makeCurrent()
- self._logo_vbo.destroy()
- del self.program
- self.program = None
- self.doneCurrent()
-
- def vertex_shader_source_core(self):
- return """#version 150
- in vec4 vertex;
- in vec3 normal;
- out vec3 vert;
- out vec3 vertNormal;
- uniform mat4 projMatrix;
- uniform mat4 mvMatrix;
- uniform mat3 normalMatrix;
- void main() {
- vert = vertex.xyz;
- vertNormal = normalMatrix * normal;
- gl_Position = projMatrix * mvMatrix * vertex;
- }"""
-
- def fragment_shader_source_core(self):
- return """#version 150
- in highp vec3 vert;
- in highp vec3 vertNormal;
- out highp vec4 fragColor;
- uniform highp vec3 lightPos;
- void main() {
- highp vec3 L = normalize(lightPos - vert);
- highp float NL = max(dot(normalize(vertNormal), L), 0.0);
- highp vec3 color = vec3(0.39, 1.0, 0.0);
- highp vec3 col = clamp(color * 0.2 + color * 0.8 * NL, 0.0, 1.0);
- fragColor = vec4(col, 1.0);
- }"""
-
- def vertex_shader_source(self):
- return """attribute vec4 vertex;
- attribute vec3 normal;
- varying vec3 vert;
- varying vec3 vertNormal;
- uniform mat4 projMatrix;
- uniform mat4 mvMatrix;
- uniform mat3 normalMatrix;
- void main() {
- vert = vertex.xyz;
- vertNormal = normalMatrix * normal;
- gl_Position = projMatrix * mvMatrix * vertex;
- }"""
-
- def fragment_shader_source(self):
- return """varying highp vec3 vert;
- varying highp vec3 vertNormal;
- uniform highp vec3 lightPos;
- void main() {
- highp vec3 L = normalize(lightPos - vert);
- highp float NL = max(dot(normalize(vertNormal), L), 0.0);
- highp vec3 color = vec3(0.39, 1.0, 0.0);
- highp vec3 col = clamp(color * 0.2 + color * 0.8 * NL, 0.0, 1.0);
- gl_FragColor = vec4(col, 1.0);
- }"""
-
- def initializeGL(self):
- self.context().aboutToBeDestroyed.connect(self.cleanup)
- self.initializeOpenGLFunctions()
- self.glClearColor(0, 0, 0, 0 if self._transparent else 1)
-
- self.program = QOpenGLShaderProgram()
-
- if self._core:
- self._vertex_shader = self.vertex_shader_source_core()
- self._fragment_shader = self.fragment_shader_source_core()
- else:
- self._vertex_shader = self.vertex_shader_source()
- self._fragment_shader = self.fragment_shader_source()
-
- self.program.addShaderFromSourceCode(QOpenGLShader.Vertex, self._vertex_shader)
- self.program.addShaderFromSourceCode(QOpenGLShader.Fragment, self._fragment_shader)
- self.program.bindAttributeLocation("vertex", 0)
- self.program.bindAttributeLocation("normal", 1)
- self.program.link()
-
- self.program.bind()
- self._proj_matrix_loc = self.program.uniformLocation("projMatrix")
- self._mv_matrix_loc = self.program.uniformLocation("mvMatrix")
- self._normal_matrix_loc = self.program.uniformLocation("normalMatrix")
- self._light_pos_loc = self.program.uniformLocation("lightPos")
-
- self.vao.create()
- with QOpenGLVertexArrayObject.Binder(self.vao):
- self._logo_vbo.create()
- self._logo_vbo.bind()
- float_size = ctypes.sizeof(ctypes.c_float)
- self._logo_vbo.allocate(self.logo.const_data(), self.logo.count() * float_size)
-
- self.setup_vertex_attribs()
-
- self.camera.setToIdentity()
- self.camera.translate(0, 0, -1)
-
- self.program.setUniformValue(self._light_pos_loc, QVector3D(0, 0, 70))
- self.program.release()
-
- def setup_vertex_attribs(self):
- self._logo_vbo.bind()
- f = QOpenGLContext.currentContext().functions()
- f.glEnableVertexAttribArray(0)
- f.glEnableVertexAttribArray(1)
- float_size = ctypes.sizeof(ctypes.c_float)
-
- null = VoidPtr(0)
- pointer = VoidPtr(3 * float_size)
- f.glVertexAttribPointer(0, 3, int(GL.GL_FLOAT), int(GL.GL_FALSE), 6 * float_size, null)
- f.glVertexAttribPointer(1, 3, int(GL.GL_FLOAT), int(GL.GL_FALSE), 6 * float_size, pointer)
- self._logo_vbo.release()
-
- def paintGL(self):
- self.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT)
- self.glEnable(GL.GL_DEPTH_TEST)
- self.glEnable(GL.GL_CULL_FACE)
-
- self.world.setToIdentity()
- self.world.rotate(180 - (self._x_rot / 16), 1, 0, 0)
- self.world.rotate(self._y_rot / 16, 0, 1, 0)
- self.world.rotate(self._z_rot / 16, 0, 0, 1)
-
- with QOpenGLVertexArrayObject.Binder(self.vao):
- self.program.bind()
- self.program.setUniformValue(self._proj_matrix_loc, self.proj)
- self.program.setUniformValue(self._mv_matrix_loc, self.camera * self.world)
- normal_matrix = self.world.normalMatrix()
- self.program.setUniformValue(self._normal_matrix_loc, normal_matrix)
-
- self.glDrawArrays(GL.GL_TRIANGLES, 0, self.logo.vertex_count())
- self.program.release()
-
- def resizeGL(self, width, height):
- self.proj.setToIdentity()
- self.proj.perspective(45, width / height, 0.01, 100)
-
- def mousePressEvent(self, event):
- self._last_pos = event.position()
-
- def mouseMoveEvent(self, event):
- pos = event.position()
- dx = pos.x() - self._last_pos.x()
- dy = pos.y() - self._last_pos.y()
-
- if event.buttons() & Qt.LeftButton:
- self.set_xrotation(self._x_rot + 8 * dy)
- self.set_yrotation(self._y_rot + 8 * dx)
- elif event.buttons() & Qt.RightButton:
- self.set_xrotation(self._x_rot + 8 * dy)
- self.set_zrotation(self._z_rot + 8 * dx)
-
- self._last_pos = pos
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- parser = ArgumentParser(description="hellogl2", formatter_class=RawTextHelpFormatter)
- parser.add_argument('--multisample', '-m', action='store_true',
- help='Use Multisampling')
- parser.add_argument('--coreprofile', '-c', action='store_true',
- help='Use Core Profile')
- parser.add_argument('--transparent', '-t', action='store_true',
- help='Transparent Windows')
- options = parser.parse_args()
-
- fmt = QSurfaceFormat()
- fmt.setDepthBufferSize(24)
- if options.multisample:
- fmt.setSamples(4)
- if options.coreprofile:
- fmt.setVersion(3, 2)
- fmt.setProfile(QSurfaceFormat.CoreProfile)
- QSurfaceFormat.setDefaultFormat(fmt)
-
- main_window = Window(options.transparent)
- main_window.resize(main_window.sizeHint())
- main_window.show()
-
- res = app.exec()
- sys.exit(res)
diff --git a/examples/opengl/hellogl2/hellogl2.pyproject b/examples/opengl/hellogl2/hellogl2.pyproject
index 331d835af..d85a139e4 100644
--- a/examples/opengl/hellogl2/hellogl2.pyproject
+++ b/examples/opengl/hellogl2/hellogl2.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["hellogl2.py"]
+ "files": ["main.py", "glwidget.py", "logo.py", "mainwindow.py", "window.py"]
}
diff --git a/examples/opengl/hellogl2/logo.py b/examples/opengl/hellogl2/logo.py
new file mode 100644
index 000000000..c236a1ec9
--- /dev/null
+++ b/examples/opengl/hellogl2/logo.py
@@ -0,0 +1,101 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# Copyright (C) 2013 Riverbank Computing Limited.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import math
+
+from PySide6.QtGui import (QVector3D, QVector3DList)
+
+
+class Logo():
+ def __init__(self):
+ self.m_data = QVector3DList()
+ self.m_data.reserve(5000)
+
+ x1 = +0.06
+ y1 = -0.14
+ x2 = +0.14
+ y2 = -0.06
+ x3 = +0.08
+ y3 = +0.00
+ x4 = +0.30
+ y4 = +0.22
+
+ self.quad(x1, y1, x2, y2, y2, x2, y1, x1)
+ self.quad(x3, y3, x4, y4, y4, x4, y3, x3)
+
+ self.extrude(x1, y1, x2, y2)
+ self.extrude(x2, y2, y2, x2)
+ self.extrude(y2, x2, y1, x1)
+ self.extrude(y1, x1, x1, y1)
+ self.extrude(x3, y3, x4, y4)
+ self.extrude(x4, y4, y4, x4)
+ self.extrude(y4, x4, y3, x3)
+
+ NUM_SECTORS = 100
+
+ for i in range(NUM_SECTORS):
+ angle = (i * 2 * math.pi) / NUM_SECTORS
+ x5 = 0.30 * math.sin(angle)
+ y5 = 0.30 * math.cos(angle)
+ x6 = 0.20 * math.sin(angle)
+ y6 = 0.20 * math.cos(angle)
+
+ angle = ((i + 1) * 2 * math.pi) / NUM_SECTORS
+ x7 = 0.20 * math.sin(angle)
+ y7 = 0.20 * math.cos(angle)
+ x8 = 0.30 * math.sin(angle)
+ y8 = 0.30 * math.cos(angle)
+
+ self.quad(x5, y5, x6, y6, x7, y7, x8, y8)
+
+ self.extrude(x6, y6, x7, y7)
+ self.extrude(x8, y8, x5, y5)
+
+ def const_data(self):
+ return self.m_data.constData()
+
+ def count(self):
+ return len(self.m_data) * 3
+
+ def vertex_count(self):
+ return self.count() / 6
+
+ def quad(self, x1, y1, x2, y2, x3, y3, x4, y4):
+ n = QVector3D.normal(QVector3D(x4 - x1, y4 - y1, 0),
+ QVector3D(x2 - x1, y2 - y1, 0))
+
+ self.add(QVector3D(x1, y1, -0.05), n)
+ self.add(QVector3D(x4, y4, -0.05), n)
+ self.add(QVector3D(x2, y2, -0.05), n)
+
+ self.add(QVector3D(x3, y3, -0.05), n)
+ self.add(QVector3D(x2, y2, -0.05), n)
+ self.add(QVector3D(x4, y4, -0.05), n)
+
+ n = QVector3D.normal(QVector3D(x1 - x4, y1 - y4, 0),
+ QVector3D(x2 - x4, y2 - y4, 0))
+
+ self.add(QVector3D(x4, y4, 0.05), n)
+ self.add(QVector3D(x1, y1, 0.05), n)
+ self.add(QVector3D(x2, y2, 0.05), n)
+
+ self.add(QVector3D(x2, y2, 0.05), n)
+ self.add(QVector3D(x3, y3, 0.05), n)
+ self.add(QVector3D(x4, y4, 0.05), n)
+
+ def extrude(self, x1, y1, x2, y2):
+ n = QVector3D.normal(QVector3D(0, 0, -0.1),
+ QVector3D(x2 - x1, y2 - y1, 0))
+
+ self.add(QVector3D(x1, y1, 0.05), n)
+ self.add(QVector3D(x1, y1, -0.05), n)
+ self.add(QVector3D(x2, y2, 0.05), n)
+
+ self.add(QVector3D(x2, y2, -0.05), n)
+ self.add(QVector3D(x2, y2, 0.05), n)
+ self.add(QVector3D(x1, y1, -0.05), n)
+
+ def add(self, v, n):
+ self.m_data.append(v)
+ self.m_data.append(n)
diff --git a/examples/opengl/hellogl2/main.py b/examples/opengl/hellogl2/main.py
new file mode 100644
index 000000000..c7eb78a82
--- /dev/null
+++ b/examples/opengl/hellogl2/main.py
@@ -0,0 +1,58 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# Copyright (C) 2013 Riverbank Computing Limited.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the opengl/hellogl2 example from Qt v6.x"""
+
+from argparse import ArgumentParser, RawTextHelpFormatter
+import sys
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QSurfaceFormat
+from PySide6.QtWidgets import (QApplication, QMessageBox)
+
+
+try:
+ from mainwindow import MainWindow
+ from glwidget import GLWidget
+except ImportError:
+ app = QApplication(sys.argv)
+ message_box = QMessageBox(QMessageBox.Critical, "OpenGL hellogl",
+ "PyOpenGL must be installed to run this example.",
+ QMessageBox.Close)
+ message_box.setDetailedText("Run:\npip install PyOpenGL PyOpenGL_accelerate")
+ message_box.exec()
+ sys.exit(1)
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ parser = ArgumentParser(description="hellogl2",
+ formatter_class=RawTextHelpFormatter)
+ parser.add_argument('--multisample', '-m', action='store_true',
+ help='Use Multisampling')
+ parser.add_argument('--coreprofile', '-c', action='store_true',
+ help='Use Core Profile')
+ parser.add_argument('--transparent', '-t', action='store_true',
+ help='Transparent Windows')
+ options = parser.parse_args()
+
+ fmt = QSurfaceFormat()
+ fmt.setDepthBufferSize(24)
+ if options.multisample:
+ fmt.setSamples(4)
+ if options.coreprofile:
+ fmt.setVersion(3, 2)
+ fmt.setProfile(QSurfaceFormat.CoreProfile)
+ QSurfaceFormat.setDefaultFormat(fmt)
+
+ GLWidget.set_transparent(options.transparent)
+
+ main_window = MainWindow()
+ if options.transparent:
+ main_window.setAttribute(Qt.WA_TranslucentBackground)
+ main_window.setAttribute(Qt.WA_NoSystemBackground, False)
+
+ main_window.show()
+
+ res = app.exec()
+ sys.exit(res)
diff --git a/examples/opengl/hellogl2/mainwindow.py b/examples/opengl/hellogl2/mainwindow.py
new file mode 100644
index 000000000..69b9b66fe
--- /dev/null
+++ b/examples/opengl/hellogl2/mainwindow.py
@@ -0,0 +1,29 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot, Qt
+from PySide6.QtGui import QKeySequence
+from PySide6.QtWidgets import QMainWindow, QMessageBox
+
+from window import Window
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self):
+ super().__init__()
+ menuWindow = self.menuBar().addMenu("Window")
+ menuWindow.addAction("Add new", QKeySequence(Qt.CTRL | Qt.Key_N),
+ self.onAddNew)
+ menuWindow.addAction("Quit", QKeySequence(Qt.CTRL | Qt.Key_Q),
+ qApp.closeAllWindows) # noqa: F821
+
+ self.onAddNew()
+
+ @Slot()
+ def onAddNew(self):
+ if not self.centralWidget():
+ self.setCentralWidget(Window(self))
+ else:
+ QMessageBox.information(self, "Cannot Add Window()",
+ "Already occupied. Undock first.")
diff --git a/examples/opengl/hellogl2/window.py b/examples/opengl/hellogl2/window.py
new file mode 100644
index 000000000..ad61d2f97
--- /dev/null
+++ b/examples/opengl/hellogl2/window.py
@@ -0,0 +1,110 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# Copyright (C) 2013 Riverbank Computing Limited.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot, Qt
+from PySide6.QtWidgets import (QHBoxLayout, QMainWindow,
+ QMessageBox, QPushButton, QSlider,
+ QVBoxLayout, QWidget)
+
+from glwidget import GLWidget
+
+
+def _main_window():
+ for t in qApp.topLevelWidgets(): # noqa: F821
+ if isinstance(t, QMainWindow):
+ return t
+ return None
+
+
+class Window(QWidget):
+ instances = [] # Keep references when undocked
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.instances.append(self)
+
+ self._gl_widget = GLWidget()
+
+ self._x_slider = self.create_slider()
+ self._x_slider.valueChanged.connect(self._gl_widget.set_xrotation)
+ self._gl_widget.x_rotation_changed.connect(self._x_slider.setValue)
+
+ self._y_slider = self.create_slider()
+ self._y_slider.valueChanged.connect(self._gl_widget.set_yrotation)
+ self._gl_widget.y_rotation_changed.connect(self._y_slider.setValue)
+
+ self._z_slider = self.create_slider()
+ self._z_slider.valueChanged.connect(self._gl_widget.set_zrotation)
+ self._gl_widget.z_rotation_changed.connect(self._z_slider.setValue)
+
+ mainLayout = QVBoxLayout(self)
+ w = QWidget()
+ container = QHBoxLayout(w)
+ container.addWidget(self._gl_widget)
+ container.addWidget(self._x_slider)
+ container.addWidget(self._y_slider)
+ container.addWidget(self._z_slider)
+
+ mainLayout.addWidget(w)
+ self._dock_btn = QPushButton("Undock")
+ self._dock_btn.clicked.connect(self.dock_undock)
+ mainLayout.addWidget(self._dock_btn)
+
+ self._x_slider.setValue(15 * 16)
+ self._y_slider.setValue(345 * 16)
+ self._z_slider.setValue(0 * 16)
+
+ self.setWindowTitle(self.tr("Hello GL"))
+
+ def create_slider(self):
+ slider = QSlider(Qt.Vertical)
+
+ slider.setRange(0, 360 * 16)
+ slider.setSingleStep(16)
+ slider.setPageStep(15 * 16)
+ slider.setTickInterval(15 * 16)
+ slider.setTickPosition(QSlider.TicksRight)
+ return slider
+
+ def closeEvent(self, event):
+ self.instances.remove(self)
+ event.accept()
+
+ def keyPressEvent(self, event):
+ if self.isWindow() and event.key() == Qt.Key_Escape:
+ self.close()
+ else:
+ super().keyPressEvent(event)
+
+ @Slot()
+ def dock_undock(self):
+ if self.parent():
+ self.undock()
+ else:
+ self.dock()
+
+ def dock(self):
+ mainWindow = _main_window()
+ if not mainWindow or not mainWindow.isVisible():
+ QMessageBox.information(self, "Cannot Dock",
+ "Main window already closed")
+ return
+ if mainWindow.centralWidget():
+ QMessageBox.information(self, "Cannot Dock",
+ "Main window already occupied")
+ return
+
+ self.setAttribute(Qt.WA_DeleteOnClose, False)
+ self._dock_btn.setText("Undock")
+ mainWindow.setCentralWidget(self)
+
+ def undock(self):
+ self.setParent(None)
+ self.setAttribute(Qt.WA_DeleteOnClose)
+ geometry = self.screen().availableGeometry()
+ x = geometry.x() + (geometry.width() - self.width()) / 2
+ y = geometry.y() + (geometry.height() - self.height()) / 2
+ self.move(x, y)
+ self._dock_btn.setText("Dock")
+ self.show()
diff --git a/examples/opengl/textures/textures.py b/examples/opengl/textures/textures.py
index 79f7761a2..87c1164b7 100644
--- a/examples/opengl/textures/textures.py
+++ b/examples/opengl/textures/textures.py
@@ -24,7 +24,7 @@ except ImportError:
messageBox.exec()
sys.exit(1)
-import textures_rc
+import textures_rc # noqa: F401
class GLWidget(QOpenGLWidget):
@@ -32,12 +32,12 @@ class GLWidget(QOpenGLWidget):
refCount = 0
coords = (
- ( ( +1, -1, -1 ), ( -1, -1, -1 ), ( -1, +1, -1 ), ( +1, +1, -1 ) ),
- ( ( +1, +1, -1 ), ( -1, +1, -1 ), ( -1, +1, +1 ), ( +1, +1, +1 ) ),
- ( ( +1, -1, +1 ), ( +1, -1, -1 ), ( +1, +1, -1 ), ( +1, +1, +1 ) ),
- ( ( -1, -1, -1 ), ( -1, -1, +1 ), ( -1, +1, +1 ), ( -1, +1, -1 ) ),
- ( ( +1, -1, +1 ), ( -1, -1, +1 ), ( -1, -1, -1 ), ( +1, -1, -1 ) ),
- ( ( -1, -1, +1 ), ( +1, -1, +1 ), ( +1, +1, +1 ), ( -1, +1, +1 ) )
+ ((+1, -1, -1), (-1, -1, -1), (-1, +1, -1), (+1, +1, -1)),
+ ((+1, +1, -1), (-1, +1, -1), (-1, +1, +1), (+1, +1, +1)),
+ ((+1, -1, +1), (+1, -1, -1), (+1, +1, -1), (+1, +1, +1)),
+ ((-1, -1, -1), (-1, -1, +1), (-1, +1, +1), (-1, +1, -1)),
+ ((+1, -1, +1), (-1, -1, +1), (-1, -1, -1), (+1, -1, -1)),
+ ((-1, -1, +1), (+1, -1, +1), (+1, +1, +1), (-1, +1, +1))
)
clicked = Signal()
@@ -186,7 +186,7 @@ class Window(QWidget):
mainLayout.addWidget(glw, i, j)
glw.clicked.connect(self.setCurrentGlWidget)
- qApp.lastWindowClosed.connect(glw.freeGLResources)
+ qApp.lastWindowClosed.connect(glw.freeGLResources) # noqa: F821
self.currentGlWidget = self.glWidgets[0][0]
diff --git a/examples/opengl/textures/textures.pyproject b/examples/opengl/textures/textures.pyproject
index 05416190a..1ad304324 100644
--- a/examples/opengl/textures/textures.pyproject
+++ b/examples/opengl/textures/textures.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["textures.qrc", "textures_rc.py", "textures.py"]
+ "files": ["textures.qrc", "textures.py"]
}
diff --git a/examples/opengl/threadedqopenglwidget/renderer.py b/examples/opengl/threadedqopenglwidget/renderer.py
index fbed79423..81ec63cbb 100644
--- a/examples/opengl/threadedqopenglwidget/renderer.py
+++ b/examples/opengl/threadedqopenglwidget/renderer.py
@@ -120,7 +120,7 @@ class Renderer(QObject, QOpenGLFunctions):
if self._exiting:
return
- assert(ctx.thread() == QThread.currentThread())
+ assert ctx.thread() == QThread.currentThread()
# Make the context (and an offscreen surface) current for self thread.
# The QOpenGLWidget's fbo is bound in the context.
diff --git a/examples/pdf/quickpdfviewer/main.py b/examples/pdf/quickpdfviewer/main.py
index 9d6ea68c8..ee7b882c2 100644
--- a/examples/pdf/quickpdfviewer/main.py
+++ b/examples/pdf/quickpdfviewer/main.py
@@ -11,7 +11,7 @@ from PySide6.QtQml import QQmlApplicationEngine
from PySide6.QtGui import QGuiApplication
from PySide6.QtCore import QCoreApplication, QUrl
-import rc_viewer
+import rc_viewer # noqa: F401
"""PySide6 port of the pdf/pdfviewer example from Qt v6.x"""
diff --git a/examples/pdfwidgets/pdfviewer/resources_rc.py b/examples/pdfwidgets/pdfviewer/rc_resources.py
index 7e386e99b..7e386e99b 100644
--- a/examples/pdfwidgets/pdfviewer/resources_rc.py
+++ b/examples/pdfwidgets/pdfviewer/rc_resources.py
diff --git a/examples/pdfwidgets/pdfviewer/ui_mainwindow.py b/examples/pdfwidgets/pdfviewer/ui_mainwindow.py
index e4215769b..9ed525dbf 100644
--- a/examples/pdfwidgets/pdfviewer/ui_mainwindow.py
+++ b/examples/pdfwidgets/pdfviewer/ui_mainwindow.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.0
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -21,7 +21,7 @@ from PySide6.QtWidgets import (QApplication, QHeaderView, QMainWindow, QMenu,
QMenuBar, QSizePolicy, QSplitter, QStatusBar,
QTabWidget, QToolBar, QTreeView, QVBoxLayout,
QWidget)
-import resources_rc
+import rc_resources
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
@@ -123,7 +123,7 @@ class Ui_MainWindow(object):
self.splitter.setOrientation(Qt.Horizontal)
self.tabWidget = QTabWidget(self.splitter)
self.tabWidget.setObjectName(u"tabWidget")
- sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth())
@@ -152,7 +152,7 @@ class Ui_MainWindow(object):
self.splitter.addWidget(self.tabWidget)
self.pdfView = QPdfView(self.splitter)
self.pdfView.setObjectName(u"pdfView")
- sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
sizePolicy1.setHorizontalStretch(10)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.pdfView.sizePolicy().hasHeightForWidth())
@@ -179,7 +179,7 @@ class Ui_MainWindow(object):
self.mainToolBar.setObjectName(u"mainToolBar")
self.mainToolBar.setMovable(False)
self.mainToolBar.setFloatable(False)
- MainWindow.addToolBar(Qt.TopToolBarArea, self.mainToolBar)
+ MainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.mainToolBar)
self.statusBar = QStatusBar(MainWindow)
self.statusBar.setObjectName(u"statusBar")
MainWindow.setStatusBar(self.statusBar)
diff --git a/examples/qml/editingmodel/doc/editingmodel.rst b/examples/qml/editingmodel/doc/editingmodel.rst
index d76bebc22..2b45b23f0 100644
--- a/examples/qml/editingmodel/doc/editingmodel.rst
+++ b/examples/qml/editingmodel/doc/editingmodel.rst
@@ -1,8 +1,10 @@
QAbstractListModel in QML
=========================
+.. tags:: Android
+
This example shows how to add, remove and move items inside a QML
-ListView, but showing and editing the data via roles using a
+ListView, but showing and editing the data via roles using a
QAbstractListModel from Python.
You can add new elements and reset the view using the two top buttons,
diff --git a/examples/qml/editingmodel/main.py b/examples/qml/editingmodel/main.py
index 00b3ae2b1..5240a9de0 100644
--- a/examples/qml/editingmodel/main.py
+++ b/examples/qml/editingmodel/main.py
@@ -8,7 +8,7 @@ from PySide6.QtCore import QUrl
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine
-from model import BaseModel
+from model import BaseModel # noqa: F401
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
diff --git a/examples/qml/editingmodel/model.py b/examples/qml/editingmodel/model.py
index 591497872..02a1e5717 100644
--- a/examples/qml/editingmodel/model.py
+++ b/examples/qml/editingmodel/model.py
@@ -2,8 +2,7 @@
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import (QAbstractListModel, QByteArray, QModelIndex, Qt,
- Slot)
+from PySide6.QtCore import QAbstractListModel, QByteArray, QModelIndex, Qt, Slot
from PySide6.QtGui import QColor
from PySide6.QtQml import QmlElement
@@ -104,18 +103,18 @@ class BaseModel(QAbstractListModel):
self.beginMoveRows(QModelIndex(), sourceRow, sourceRow + count, QModelIndex(), end)
# start database work
- pops = self.db[sourceRow : sourceRow + count + 1]
+ pops = self.db[sourceRow: sourceRow + count + 1]
if sourceRow > dstChild:
self.db = (
self.db[:dstChild]
+ pops
+ self.db[dstChild:sourceRow]
- + self.db[sourceRow + count + 1 :]
+ + self.db[sourceRow + count + 1:]
)
else:
start = self.db[:sourceRow]
- middle = self.db[dstChild : dstChild + 1]
- endlist = self.db[dstChild + count + 1 :]
+ middle = self.db[dstChild: dstChild + 1]
+ endlist = self.db[dstChild + count + 1:]
self.db = start + middle + pops + endlist
# end database work
@@ -136,7 +135,7 @@ class BaseModel(QAbstractListModel):
self.beginRemoveRows(QModelIndex(), row, row + count)
# start database work
- self.db = self.db[:row] + self.db[row + count + 1 :]
+ self.db = self.db[:row] + self.db[row + count + 1:]
# end database work
self.endRemoveRows()
diff --git a/examples/qml/referenceexamples/adding/adding.pyproject b/examples/qml/referenceexamples/adding/adding.pyproject
deleted file mode 100644
index 46df4b253..000000000
--- a/examples/qml/referenceexamples/adding/adding.pyproject
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "files": ["example.qml",
- "main.py",
- "person.py"]
-}
diff --git a/examples/qml/referenceexamples/attached/attached.pyproject b/examples/qml/referenceexamples/attached/attached.pyproject
deleted file mode 100644
index 3c01c40c2..000000000
--- a/examples/qml/referenceexamples/attached/attached.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["main.py", "birthdayparty.py", "person.py", "example.qml"]
-}
diff --git a/examples/qml/referenceexamples/attached/doc/attached.rst b/examples/qml/referenceexamples/attached/doc/attached.rst
deleted file mode 100644
index 95fb5c43c..000000000
--- a/examples/qml/referenceexamples/attached/doc/attached.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-.. _qml-attached-properties-example:
-
-Extending QML - Attached Properties Example
-===========================================
-
-This example builds on the :ref:`qml-default-property-example`,
-:ref:`qml-inheritance-and-coercion-example`,
-:ref:`qml-object-and-list-property-types-example`
-and the :ref:`qml-adding-types-example`.
-
-The Attached Properties Example example shows how to inject
-properties to child objects.
diff --git a/examples/qml/referenceexamples/coercion/coercion.pyproject b/examples/qml/referenceexamples/coercion/coercion.pyproject
deleted file mode 100644
index 3c01c40c2..000000000
--- a/examples/qml/referenceexamples/coercion/coercion.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["main.py", "birthdayparty.py", "person.py", "example.qml"]
-}
diff --git a/examples/qml/referenceexamples/coercion/doc/coercion.rst b/examples/qml/referenceexamples/coercion/doc/coercion.rst
deleted file mode 100644
index 2ccdaeb4f..000000000
--- a/examples/qml/referenceexamples/coercion/doc/coercion.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-.. _qml-inheritance-and-coercion-example:
-
-Extending QML - Inheritance and Coercion Example
-================================================
-
-This example builds on the :ref:`qml-adding-types-example` and the
-:ref:`qml-object-and-list-property-types-example` .
-
-The Inheritance and Coercion Example shows how to use base classes to assign
-types of more than one type to a property. It specializes the Person type
-developed in the previous examples into two types - a ``Boy`` and a ``Girl``.
-
-Declare Boy and Girl
---------------------
-
-The Person class remains unaltered in this example and the Boy and Girl C++
-classes are trivial extensions of it. The types and their QML name are
-registered with the QML engine.
-
-As an example, the inheritance used here is a little contrived, but in real
-applications it is likely that the two extensions would add additional
-properties or modify the Person classes behavior.
-
-Running the Example
--------------------
-
-The BirthdayParty type has not changed since the previous example. The
-celebrant and guests property still use the People type.
-
-However, as all three types, Person, Boy and Girl, have been registered with the
-QML system, on assignment QML automatically (and type-safely) converts the Boy
-and Girl objects into a Person.
-
-The main.py file in the example includes a simple shell application that
-loads and runs the QML snippet shown below.
diff --git a/examples/qml/referenceexamples/default/default.pyproject b/examples/qml/referenceexamples/default/default.pyproject
deleted file mode 100644
index 3c01c40c2..000000000
--- a/examples/qml/referenceexamples/default/default.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["main.py", "birthdayparty.py", "person.py", "example.qml"]
-}
diff --git a/examples/qml/referenceexamples/default/doc/default.rst b/examples/qml/referenceexamples/default/doc/default.rst
deleted file mode 100644
index 1b28519a7..000000000
--- a/examples/qml/referenceexamples/default/doc/default.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-.. _qml-default-property-example:
-
-Extending QML - Default Property Example
-========================================
-
-This example builds on the :ref:`qml-adding-types-example`,
-the :ref:`qml-object-and-list-property-types-example` and
-the :ref:`qml-inheritance-and-coercion-example`.
-
-The Default Property Example is a minor modification of the
-:ref:`qml-inheritance-and-coercion-example` that simplifies the
-specification of a BirthdayParty through the use of a default property.
-
-Declaring the BirthdayParty Class
----------------------------------
-
-The only difference between this example and the last, is the addition of a
-``DefaultProperty`` class info annotation.
-
-The default property specifies the property to assign to whenever an explicit
-property is not specified, in the case of the BirthdayParty type the guest
-property. It is purely a syntactic simplification, the behavior is identical
-to specifying the property by name, but it can add a more natural feel in many
-situations. The default property must be either an object or list property.
-
-Running the Example
--------------------
-
-The main.py file in the example includes a simple shell application that
-loads and runs the QML snippet shown below.
diff --git a/examples/qml/referenceexamples/grouped/doc/grouped.rst b/examples/qml/referenceexamples/grouped/doc/grouped.rst
deleted file mode 100644
index 691c1d393..000000000
--- a/examples/qml/referenceexamples/grouped/doc/grouped.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-.. _qml-grouped-example:
-
-Extending QML - Grouped Properties Example
-==========================================
-
-Grouped Properties.
-
-This example builds on the the :ref:`qml-default-property-example`,
-the :ref:`qml-inheritance-and-coercion-example`
-the :ref:`qml-object-and-list-property-types-example`
-and the :ref:`qml-adding-types-example`.
-
-Running the Example
--------------------
-
-The ``main.py`` file in the example includes a simple shell application that
-loads and runs the QML snippet shown below.
diff --git a/examples/qml/referenceexamples/grouped/grouped.pyproject b/examples/qml/referenceexamples/grouped/grouped.pyproject
deleted file mode 100644
index 3c01c40c2..000000000
--- a/examples/qml/referenceexamples/grouped/grouped.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["main.py", "birthdayparty.py", "person.py", "example.qml"]
-}
diff --git a/examples/qml/referenceexamples/methods/methods.pyproject b/examples/qml/referenceexamples/methods/methods.pyproject
deleted file mode 100644
index 3c01c40c2..000000000
--- a/examples/qml/referenceexamples/methods/methods.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["main.py", "birthdayparty.py", "person.py", "example.qml"]
-}
diff --git a/examples/qml/referenceexamples/properties/birthdayparty.py b/examples/qml/referenceexamples/properties/birthdayparty.py
deleted file mode 100644
index 1a115101b..000000000
--- a/examples/qml/referenceexamples/properties/birthdayparty.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-from PySide6.QtCore import QObject, Property
-from PySide6.QtQml import QmlElement, ListProperty
-
-from person import Person
-
-
-# To be used on the @QmlElement decorator
-# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.properties.people"
-QML_IMPORT_MAJOR_VERSION = 1
-
-
-@QmlElement
-class BirthdayParty(QObject):
-
- def __init__(self, parent=None):
- super().__init__(parent)
- self._host = None
- self._guests = []
-
- @Property(Person)
- def host(self):
- return self._host
-
- @host.setter
- def host(self, h):
- self._host = h
-
- def guest(self, n):
- return self._guests[n]
-
- def guestCount(self):
- return len(self._guests)
-
- def appendGuest(self, guest):
- self._guests.append(guest)
-
- guests = ListProperty(Person, appendGuest)
diff --git a/examples/qml/referenceexamples/properties/properties.pyproject b/examples/qml/referenceexamples/properties/properties.pyproject
deleted file mode 100644
index 0f5958fc3..000000000
--- a/examples/qml/referenceexamples/properties/properties.pyproject
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "files": ["example.qml",
- "main.py",
- "person.py",
- "birthdayparty.py"]
-}
diff --git a/examples/qml/referenceexamples/valuesource/doc/valuesource.rst b/examples/qml/referenceexamples/valuesource/doc/valuesource.rst
deleted file mode 100644
index 81fbc827f..000000000
--- a/examples/qml/referenceexamples/valuesource/doc/valuesource.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-.. _qml-valuesource-example:
-
-Extending QML - Value Source Example
-====================================
-
-This example builds on the :ref:`qml-adding-types-example`,
-the :ref:`qml-attached-properties-example`,
-the :ref:`qml-default-property-example`,
-the :ref:`qml-inheritance-and-coercion-example` and
-the :ref:`qml-object-and-list-property-types-example`.
-
-It demonstrates implementing a
-`property value source <https://doc.qt.io/qt-6/qtqml-cppintegration-definetypes.html#property-value-sources>`_
-in Python.
-
-Running the Example
--------------------
-
-The main.py file in the example includes a simple shell application that
-loads and runs the QML snippet shown below.
diff --git a/examples/qml/referenceexamples/adding/example.qml b/examples/qml/tutorials/extending-qml-advanced/adding/People/Main.qml
index 42d47dea9..8d963a861 100644
--- a/examples/qml/referenceexamples/adding/example.qml
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/People/Main.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import examples.adding.people
+import People
Person {
name: "Bob Jones"
diff --git a/examples/qml/tutorials/extending-qml-advanced/adding/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/adding/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/adding/adding.pyproject b/examples/qml/tutorials/extending-qml-advanced/adding/adding.pyproject
new file mode 100644
index 000000000..3219f79ca
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/adding.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/referenceexamples/adding/doc/adding.rst b/examples/qml/tutorials/extending-qml-advanced/adding/doc/adding.rst
index 55f6105b7..4c1b3bdae 100644
--- a/examples/qml/referenceexamples/adding/doc/adding.rst
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/doc/adding.rst
@@ -18,12 +18,12 @@ The ``Person`` type can be used from QML like this:
Declare the Person Class
------------------------
-All QML types map to C++ types. Here we declare a basic C++ Person class
+All QML types map to C++ types. Here we declare a basic C++ Person class
with the two properties we want accessible on the QML type - name and shoeSize.
Although in this example we use the same name for the C++ class as the QML
type, the C++ class can be named differently, or appear in a namespace.
-The Person class implementation is quite basic. The property accessors simply
+The Person class implementation is quite basic. The property accessors simply
return members of the object instance.
.. code-block:: python
@@ -33,7 +33,7 @@ return members of the object instance.
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
- QML_IMPORT_NAME = "examples.adding.people"
+ QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
diff --git a/examples/qml/referenceexamples/adding/main.py b/examples/qml/tutorials/extending-qml-advanced/adding/main.py
index f10b77bc1..ec703dbf3 100644
--- a/examples/qml/referenceexamples/adding/main.py
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/main.py
@@ -6,19 +6,19 @@
from pathlib import Path
import sys
-from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtCore import QCoreApplication
from PySide6.QtQml import QQmlComponent, QQmlEngine
-from person import Person
+from person import Person # noqa: F401
if __name__ == '__main__':
app = QCoreApplication(sys.argv)
- qml_file = Path(__file__).parent / "example.qml"
- url = QUrl.fromLocalFile(qml_file)
engine = QQmlEngine()
- component = QQmlComponent(engine, url)
+ engine.addImportPath(Path(__file__).parent)
+ component = QQmlComponent(engine)
+ component.loadFromModule("People", "Main")
person = component.create()
if person:
diff --git a/examples/qml/referenceexamples/methods/person.py b/examples/qml/tutorials/extending-qml-advanced/adding/person.py
index b5e0bd899..526eae714 100644
--- a/examples/qml/referenceexamples/methods/person.py
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/person.py
@@ -6,7 +6,7 @@ from PySide6.QtQml import QmlElement
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.methods.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/Main.qml
new file mode 100644
index 000000000..c14051371
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/Main.qml
@@ -0,0 +1,16 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import People
+
+BirthdayParty {
+ host: Person {
+ name: "Bob Jones"
+ shoe_size: 12
+ }
+ guests: [
+ Person { name: "Leo Hodges" },
+ Person { name: "Jack Smith" },
+ Person { name: "Anne Brown" }
+ ]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/advanced1-Base-project.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/advanced1-Base-project.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/advanced1-Base-project.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/birthdayparty.py
new file mode 100644
index 000000000..764815175
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/birthdayparty.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BirthdayParty(QObject):
+ host_changed = Signal()
+ guests_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ @Property(Person, notify=host_changed, final=True)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+ self.guests_changed.emit()
+
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/doc/advanced1-Base-project.rst b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/doc/advanced1-Base-project.rst
new file mode 100644
index 000000000..90a73b78d
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/doc/advanced1-Base-project.rst
@@ -0,0 +1,57 @@
+.. _qml-advanced1-base-project:
+
+Extending QML (advanced) - BirthdayParty Base Project
+=====================================================
+
+This is the first of a series of 6 examples forming a tutorial using the
+example of a birthday party to demonstrate some of the advanced features of
+QML. The code for the various features explained below is based on this
+birthday party project and relies on some of the material in the basic
+tutorial. This simple example is then expanded upon to illustrate the various
+QML extensions explained below. The complete code for each new extension to the
+code can be found at the end of the respective page.
+
+The base project defines the ``Person`` class and the ``BirthdayParty`` class,
+which model the attendees and the party itself respectively.
+
+.. literalinclude:: person.py
+ :lineno-start: 13
+ :lines: 13-41
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 16
+ :lines: 16-46
+
+All the information about the party can then be stored in the corresponding QML
+file.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 4
+ :lines: 4-16
+
+
+The ``main.py`` file creates a simple shell application that displays whose
+birthday it is and who is invited to their party.
+
+.. literalinclude:: main.py
+ :lineno-start: 17
+ :lines: 17-21
+
+The app outputs the following summary of the party::
+
+ "Bob Jones" is having a birthday!
+ They are inviting:
+ "Leo Hodges"
+ "Jack Smith"
+ "Anne Brown"
+
+Outlook
+-------
+
+The following sections go into how to add support for ``Boy`` and ``Girl``
+attendees instead of just ``Person`` by using inheritance and coercion, how to
+make use of default properties to implicitly assign attendees of the party as
+guests, how to assign properties as groups instead of one by one, how to use
+attached objects to keep track of invited guests' reponses, how to use a
+property value source to display the lyrics of the happy birthday song over
+time, and how to expose third party objects to QML.
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/main.py
new file mode 100644
index 000000000..560db6602
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/main.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project example from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+
+from person import Person # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
+
+
+app = QCoreApplication(sys.argv)
+engine = QQmlEngine()
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
+party = component.create()
+if not party:
+ print(component.errors())
+ del engine
+ sys.exit(-1)
+host = party.host
+print(f"{host.name} is having a birthday!\nThey are inviting:")
+for g in range(party.guestCount()):
+ name = party.guest(g).name
+ print(f" {name}")
+del engine
+sys.exit(0)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/person.py
new file mode 100644
index 000000000..60dc9d882
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/person.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str, notify=name_changed, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
+
+ @Property(int, notify=shoe_size_changed, final=True)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ if self._shoe_size != s:
+ self._shoe_size = s
+ self.shoe_size_changed.emit()
diff --git a/examples/qml/referenceexamples/coercion/example.qml b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/Main.qml
index c47678483..b2b7ace93 100644
--- a/examples/qml/referenceexamples/coercion/example.qml
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/Main.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import examples.coercion.people
+import People
BirthdayParty {
host: Boy {
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/advanced2-Inheritance-and-coercion.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/advanced2-Inheritance-and-coercion.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/advanced2-Inheritance-and-coercion.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/birthdayparty.py
new file mode 100644
index 000000000..764815175
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/birthdayparty.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BirthdayParty(QObject):
+ host_changed = Signal()
+ guests_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ @Property(Person, notify=host_changed, final=True)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+ self.guests_changed.emit()
+
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/doc/advanced2-Inheritance-and-coercion.rst b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/doc/advanced2-Inheritance-and-coercion.rst
new file mode 100644
index 000000000..16c0dbc9a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/doc/advanced2-Inheritance-and-coercion.rst
@@ -0,0 +1,62 @@
+.. _qml-advanced2-inheritance-and-coercion:
+
+Extending QML (advanced) - Inheritance and Coercion
+===================================================
+
+This is the second of a series of 6 examples forming a tutorial using the
+example of a birthday party to demonstrate some of the advanced features of
+QML.
+
+Right now, each attendant is being modelled as a person. This is a bit too
+generic and it would be nice to be able to know more about the attendees. By
+specializing them as boys and girls, we can already get a better idea of who's
+coming.
+
+To do this, the ``Boy`` and ``Girl`` classes are introduced, both inheriting from
+``Person``.
+
+.. literalinclude:: person.py
+ :lineno-start: 43
+ :lines: 43-46
+
+.. literalinclude:: person.py
+ :lineno-start: 49
+ :lines: 49-52
+
+The ``Person`` class remains unaltered and the ``Boy`` and ``Girl`` classes are
+trivial extensions of it. The types and their QML name are registered with the
+QML engine with ``@QmlElement``.
+
+Notice that the ``host`` and ``guests`` properties in ``BirthdayParty`` still
+take instances of ``Person``.
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 26
+ :lines: 26-26
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 46
+ :lines: 46-46
+
+The implementation of the ``Person`` class itself has not been changed.
+However, as the ``Person`` class was repurposed as a common base for ``Boy``
+and ``Girl``, ``Person`` should no longer be instantiable from QML directly. An
+explicit ``Boy`` or ``Girl`` should be instantiated instead.
+
+.. literalinclude:: person.py
+ :lineno-start: 13
+ :lines: 13-15
+
+While we want to disallow instantiating ``Person`` from within QML, it still
+needs to be registered with the QML engine so that it can be used as a property
+type and other types can be coerced to it. This is what the ``@QmlUncreatable``
+macro does. As all three types, ``Person``, ``Boy`` and ``Girl``, have been
+registered with the QML system, on assignment, QML automatically (and
+type-safely) converts the ``Boy`` and ``Girl`` objects into a ``Person``.
+
+With these changes in place, we can now specify the birthday party with the
+extra information about the attendees as follows.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 6
+ :lines: 6-16
diff --git a/examples/qml/referenceexamples/coercion/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/main.py
index 9f49bc1da..cc77e2b40 100644
--- a/examples/qml/referenceexamples/coercion/main.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/main.py
@@ -1,23 +1,25 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-"""PySide6 port of the qml/examples/qml/referenceexamples/coercion example from Qt v6.x"""
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion example
+ from Qt v6.x"""
from pathlib import Path
import sys
-from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtCore import QCoreApplication
from PySide6.QtQml import QQmlComponent, QQmlEngine
-from person import Boy, Girl
-from birthdayparty import BirthdayParty
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
app = QCoreApplication(sys.argv)
-qml_file = Path(__file__).parent / "example.qml"
-url = QUrl.fromLocalFile(qml_file)
engine = QQmlEngine()
-component = QQmlComponent(engine, url)
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
party = component.create()
if not party:
print(component.errors())
diff --git a/examples/qml/referenceexamples/coercion/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/person.py
index 69056014c..57e73e6f5 100644
--- a/examples/qml/referenceexamples/coercion/person.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/person.py
@@ -1,32 +1,37 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QObject, Property
+from PySide6.QtCore import QObject, Property, Signal
from PySide6.QtQml import QmlElement, QmlUncreatable
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.coercion.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@QmlElement
@QmlUncreatable("Person is an abstract base class.")
class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
def __init__(self, parent=None):
super().__init__(parent)
self._name = ''
self._shoe_size = 0
- @Property(str)
+ @Property(str, notify=name_changed, final=True)
def name(self):
return self._name
@name.setter
def name(self, n):
- self._name = n
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
- @Property(int)
+ @Property(int, notify=shoe_size_changed, final=True)
def shoe_size(self):
return self._shoe_size
diff --git a/examples/qml/referenceexamples/default/example.qml b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/Main.qml
index 435be7860..9971a2315 100644
--- a/examples/qml/referenceexamples/default/example.qml
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/Main.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import examples.default.people
+import People
BirthdayParty {
host: Boy {
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/advanced3-Default-properties.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/advanced3-Default-properties.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/advanced3-Default-properties.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/referenceexamples/default/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/birthdayparty.py
index 3c13ca6cf..3f6102c66 100644
--- a/examples/qml/referenceexamples/default/birthdayparty.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/birthdayparty.py
@@ -1,7 +1,7 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QObject, ClassInfo, Property
+from PySide6.QtCore import QObject, ClassInfo, Property, Signal
from PySide6.QtQml import QmlElement, ListProperty
from person import Person
@@ -9,26 +9,30 @@ from person import Person
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.default.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@QmlElement
@ClassInfo(DefaultProperty="guests")
class BirthdayParty(QObject):
+ host_changed = Signal()
+ guests_changed = Signal()
def __init__(self, parent=None):
super().__init__(parent)
self._host = None
self._guests = []
- @Property(Person)
+ @Property(Person, notify=host_changed, final=True)
def host(self):
return self._host
@host.setter
def host(self, h):
- self._host = h
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
def guest(self, n):
return self._guests[n]
@@ -38,5 +42,6 @@ class BirthdayParty(QObject):
def appendGuest(self, guest):
self._guests.append(guest)
+ self.guests_changed.emit()
- guests = ListProperty(Person, appendGuest)
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/doc/advanced3-Default-properties.rst b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/doc/advanced3-Default-properties.rst
new file mode 100644
index 000000000..0857f9d0a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/doc/advanced3-Default-properties.rst
@@ -0,0 +1,40 @@
+.. _qml-advanced3-default-properties:
+
+Extending QML (advanced) - Default Properties
+=============================================
+
+This is the third of a series of 6 examples forming a tutorial using the
+example of a birthday party to demonstrate some of the advanced features of
+QML.
+
+Currently, in the QML file, each property is assigned explicitly. For example,
+the ``host`` property is assigned a ``Boy`` and the ``guests`` property is
+assigned a list of ``Boy`` or ``Girl``. This is easy but it can be made a bit
+simpler for this specific use case. Instead of assigning the ``guests``
+property explicitly, we can add ``Boy`` and ``Girl`` objects inside the party
+directly and have them assigned to ``guests`` implicitly. It makes sense that
+all the attendees that we specify, and that are not the host, are guests. This
+change is purely syntactical but it can add a more natural feel in many
+situations.
+
+The ``guests`` property can be designated as the default property of
+``BirthdayParty``. Meaning that each object created inside of a
+``BirthdayParty`` is implicitly appended to the default property ``guests``.
+The resulting QML looks like this.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 6
+ :lines: 6-15
+
+The only change required to enable this behavior is to add the ``DefaultProperty``
+class info annotation to ``BirthdayParty`` to designate ``guests`` as its default
+property.
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 16
+ :lines: 16-18
+
+You may already be familiar with this mechanism. The default property for all
+descendants of ``Item`` in QML is the ``data`` property. All elements not
+explicitly added to a property of an ``Item`` will be added to ``data``. This
+makes the structure clear and reduces unnecessary noise in the code.
diff --git a/examples/qml/referenceexamples/default/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/main.py
index a4ce2f08a..020974c9b 100644
--- a/examples/qml/referenceexamples/default/main.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/main.py
@@ -1,23 +1,25 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-"""PySide6 port of the qml/examples/qml/referenceexamples/default example from Qt v6.x"""
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/default advanced3-Default-properties example
+ from Qt v6.x"""
from pathlib import Path
import sys
-from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtCore import QCoreApplication
from PySide6.QtQml import QQmlComponent, QQmlEngine
-from person import Boy, Girl
-from birthdayparty import BirthdayParty
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
app = QCoreApplication(sys.argv)
-qml_file = Path(__file__).parent / "example.qml"
-url = QUrl.fromLocalFile(qml_file)
engine = QQmlEngine()
-component = QQmlComponent(engine, url)
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
party = component.create()
if not party:
print(component.errors())
diff --git a/examples/qml/referenceexamples/attached/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/person.py
index 7164bd645..503aaf65e 100644
--- a/examples/qml/referenceexamples/attached/person.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/person.py
@@ -1,31 +1,36 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QObject, Property
+from PySide6.QtCore import QObject, Property, Signal
from PySide6.QtQml import QmlAnonymous, QmlElement
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.default.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@QmlAnonymous
class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
def __init__(self, parent=None):
super().__init__(parent)
self._name = ''
self._shoe_size = 0
- @Property(str)
+ @Property(str, notify=name_changed, final=True)
def name(self):
return self._name
@name.setter
def name(self, n):
- self._name = n
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
- @Property(int)
+ @Property(int, notify=shoe_size_changed, final=True)
def shoe_size(self):
return self._shoe_size
diff --git a/examples/qml/referenceexamples/grouped/example.qml b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/Main.qml
index d0db4f193..3c34234fd 100644
--- a/examples/qml/referenceexamples/grouped/example.qml
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/Main.qml
@@ -3,7 +3,7 @@
import QtQuick
-import examples.grouped.people
+import People
BirthdayParty {
host: Boy {
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/advanced4-Grouped-properties.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/advanced4-Grouped-properties.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/advanced4-Grouped-properties.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/referenceexamples/grouped/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/birthdayparty.py
index 9f414441e..3f6102c66 100644
--- a/examples/qml/referenceexamples/grouped/birthdayparty.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/birthdayparty.py
@@ -1,7 +1,7 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QObject, ClassInfo, Property
+from PySide6.QtCore import QObject, ClassInfo, Property, Signal
from PySide6.QtQml import QmlElement, ListProperty
from person import Person
@@ -9,26 +9,30 @@ from person import Person
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.grouped.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@QmlElement
@ClassInfo(DefaultProperty="guests")
class BirthdayParty(QObject):
+ host_changed = Signal()
+ guests_changed = Signal()
def __init__(self, parent=None):
super().__init__(parent)
self._host = None
self._guests = []
- @Property(Person)
+ @Property(Person, notify=host_changed, final=True)
def host(self):
return self._host
@host.setter
def host(self, h):
- self._host = h
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
def guest(self, n):
return self._guests[n]
@@ -38,5 +42,6 @@ class BirthdayParty(QObject):
def appendGuest(self, guest):
self._guests.append(guest)
+ self.guests_changed.emit()
- guests = ListProperty(Person, appendGuest)
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/doc/advanced4-Grouped-properties.rst b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/doc/advanced4-Grouped-properties.rst
new file mode 100644
index 000000000..7748d3189
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/doc/advanced4-Grouped-properties.rst
@@ -0,0 +1,39 @@
+.. _qml-advanced-advanced4-grouped-properties:
+
+Extending QML (advanced) - Grouped Properties
+=============================================
+
+This is the fourth of a series of 6 examples forming a tutorial using the
+example of a birthday party to demonstrate some of the advanced features of
+QML.
+
+More information is needed about the shoes of the guests. Aside from their
+size, we also want to store the shoes' color, brand, and price. This
+information is stored in a ``ShoeDescription`` class.
+
+.. literalinclude:: person.py
+ :lineno-start: 14
+ :lines: 14-66
+
+Each person now has two properties, a ``name`` and a shoe description ``shoe``.
+
+.. literalinclude:: person.py
+ :lineno-start: 69
+ :lines: 69-90
+
+Specifying the values for each element of the shoe description works but is a
+bit repetitive.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 26
+ :lines: 26-32
+
+Grouped properties provide a more elegant way of assigning these properties.
+Instead of assigning the values to each property one-by-one, the individual
+values can be passed as a group to the ``shoe`` property making the code more
+readable. No changes are required to enable this feature as it is available by
+default for all of QML.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 9
+ :lines: 9-12
diff --git a/examples/qml/referenceexamples/grouped/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/main.py
index f1edb8b94..9757b6daa 100644
--- a/examples/qml/referenceexamples/grouped/main.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/main.py
@@ -1,24 +1,27 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-"""PySide6 port of the qml/examples/qml/referenceexamples/default example from Qt v6.x"""
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties example
+ from Qt v6.x"""
from pathlib import Path
import sys
-from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtCore import QCoreApplication
from PySide6.QtQml import QQmlComponent, QQmlEngine
-from person import Boy, Girl
-from birthdayparty import BirthdayParty
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
if __name__ == '__main__':
app = QCoreApplication(sys.argv)
- qml_file = Path(__file__).parent / "example.qml"
- url = QUrl.fromLocalFile(qml_file)
engine = QQmlEngine()
- component = QQmlComponent(engine, url)
+ engine.addImportPath(Path(__file__).parent)
+ component = QQmlComponent(engine)
+ component.loadFromModule("People", "Main")
+
party = component.create()
if not party:
print(component.errors())
@@ -36,8 +39,8 @@ if __name__ == '__main__':
name = guest.name
print(f" {name}")
if not best_shoe or best_shoe.shoe.price < guest.shoe.price:
- best_shoe = guest;
+ best_shoe = guest
if best_shoe:
- print(f"{best_shoe.name} is wearing the best shoes!");
+ print(f"{best_shoe.name} is wearing the best shoes!")
del engine
sys.exit(0)
diff --git a/examples/qml/referenceexamples/grouped/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/person.py
index a1edf077e..ccd439e88 100644
--- a/examples/qml/referenceexamples/grouped/person.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/person.py
@@ -1,18 +1,23 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QObject, Property
+from PySide6.QtCore import QObject, Property, Signal
from PySide6.QtGui import QColor
from PySide6.QtQml import QmlAnonymous, QmlElement
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.grouped.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@QmlAnonymous
class ShoeDescription(QObject):
+ brand_changed = Signal()
+ size_changed = Signal()
+ price_changed = Signal()
+ color_changed = Signal()
+
def __init__(self, parent=None):
super().__init__(parent)
self._brand = ''
@@ -20,55 +25,67 @@ class ShoeDescription(QObject):
self._price = 0
self._color = QColor()
- @Property(str)
+ @Property(str, notify=brand_changed, final=True)
def brand(self):
return self._brand
@brand.setter
def brand(self, b):
- self._brand = b
+ if self._brand != b:
+ self._brand = b
+ self.brand_changed.emit()
- @Property(int)
+ @Property(int, notify=size_changed, final=True)
def size(self):
return self._size
@size.setter
def size(self, s):
- self._size = s
+ if self._size != s:
+ self._size = s
+ self.size_changed.emit()
- @Property(float)
+ @Property(float, notify=price_changed, final=True)
def price(self):
return self._price
@price.setter
def price(self, p):
- self._price = p
+ if self._price != p:
+ self._price = p
+ self.price_changed.emit()
- @Property(QColor)
+ @Property(QColor, notify=color_changed, final=True)
def color(self):
return self._color
@color.setter
def color(self, c):
- self._color = c
+ if self._color != c:
+ self._color = c
+ self.color_changed.emit()
@QmlAnonymous
class Person(QObject):
+ name_changed = Signal()
+
def __init__(self, parent=None):
super().__init__(parent)
self._name = ''
self._shoe = ShoeDescription()
- @Property(str)
+ @Property(str, notify=name_changed, final=True)
def name(self):
return self._name
@name.setter
def name(self, n):
- self._name = n
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
- @Property(ShoeDescription)
+ @Property(ShoeDescription, final=True)
def shoe(self):
return self._shoe
diff --git a/examples/qml/referenceexamples/attached/example.qml b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/Main.qml
index f038b3ece..795d63867 100644
--- a/examples/qml/referenceexamples/attached/example.qml
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/Main.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import examples.default.people
+import People
BirthdayParty {
Boy {
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/advanced5-Attached-properties.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/advanced5-Attached-properties.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/advanced5-Attached-properties.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/referenceexamples/valuesource/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/birthdayparty.py
index 3bc75e819..f38bfd305 100644
--- a/examples/qml/referenceexamples/valuesource/birthdayparty.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/birthdayparty.py
@@ -1,7 +1,7 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QDate, QObject, ClassInfo, Property, QTime, Signal
+from PySide6.QtCore import QDate, QObject, ClassInfo, Property, Signal
from PySide6.QtQml import QmlAnonymous, QmlAttached, QmlElement, ListProperty
from person import Person
@@ -9,56 +9,50 @@ from person import Person
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.valuesource.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@QmlAnonymous
class BirthdayPartyAttached(QObject):
+ rsvp_changed = Signal()
def __init__(self, parent=None):
super().__init__(parent)
self._rsvp = QDate()
- @Property(QDate)
+ @Property(QDate, notify=rsvp_changed, final=True)
def rsvp(self):
return self._rsvp
@rsvp.setter
def rsvp(self, d):
- self._rsvp = d
+ if self._rsvp != d:
+ self._rsvp = d
+ self.rsvp_changed.emit()
@QmlElement
@ClassInfo(DefaultProperty="guests")
@QmlAttached(BirthdayPartyAttached)
class BirthdayParty(QObject):
-
- partyStarted = Signal(QTime)
+ host_changed = Signal()
+ guests_changed = Signal()
def __init__(self, parent=None):
super().__init__(parent)
self._host = None
self._guests = []
- def startParty(self):
- self.partyStarted.emit(QTime.currentTime())
-
- @Property(Person)
+ @Property(Person, notify=host_changed, final=True)
def host(self):
return self._host
@host.setter
def host(self, h):
- self._host = h
-
- @Property(str)
- def announcement(self):
- return ""
-
- @announcement.setter
- def announcement(self, a):
- print(a)
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
def guest(self, n):
return self._guests[n]
@@ -68,9 +62,10 @@ class BirthdayParty(QObject):
def appendGuest(self, guest):
self._guests.append(guest)
+ self.guests_changed.emit()
@staticmethod
def qmlAttachedProperties(self, o):
return BirthdayPartyAttached(o)
- guests = ListProperty(Person, appendGuest)
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/doc/advanced5-Attached-properties.rst b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/doc/advanced5-Attached-properties.rst
new file mode 100644
index 000000000..14b4bddb0
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/doc/advanced5-Attached-properties.rst
@@ -0,0 +1,51 @@
+.. _qml-advanced-advanced5-attached-properties:
+
+Extending QML (advanced) - Attached Properties
+==============================================
+
+This is the fifth of a series of 6 examples forming a tutorial using the
+example of a birthday party to demonstrate some of the advanced features of
+QML.
+
+The time has come for the host to send out invitations. To keep track of which
+guests have responded to the invitation and when, we need somewhere to store
+that information. Storing it in the ``BirthdayParty`` object iself would not
+really fit. A better way would be to store the responses as attached objects to
+the party object.
+
+First, we declare the ``BirthdayPartyAttached`` class which holds the guest reponses.
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 16
+ :lines: 16-32
+
+And we attach it to the ``BirthdayParty`` class and define
+``qmlAttachedProperties()`` to return the attached object.
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 34
+ :lines: 34-38
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 67
+ :lines: 67-69
+
+Now, attached objects can be used in the QML to hold the rsvp information of
+the invited guests.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 6
+ :lines: 6-22
+
+Finally, the information can be accessed in the following way.
+
+.. literalinclude:: main.py
+ :lineno-start: 36
+ :lines: 36-39
+
+The program outputs the following summary of the party to come::
+
+ "Jack Smith" is having a birthday!
+ He is inviting:
+ "Robert Campbell" RSVP date: "Wed Mar 1 2023"
+ "Leo Hodges" RSVP date: "Mon Mar 6 2023"
diff --git a/examples/qml/referenceexamples/attached/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/main.py
index d7483559f..9a92afeb5 100644
--- a/examples/qml/referenceexamples/attached/main.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/main.py
@@ -1,23 +1,25 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-"""PySide6 port of the qml/examples/qml/referenceexamples/attached example from Qt v6.x"""
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties example
+ from Qt v6.x"""
from pathlib import Path
import sys
-from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtCore import QCoreApplication
from PySide6.QtQml import QQmlComponent, QQmlEngine, qmlAttachedPropertiesObject
-from person import Boy, Girl
-from birthdayparty import BirthdayParty
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
app = QCoreApplication(sys.argv)
-qml_file = Path(__file__).parent / "example.qml"
-url = QUrl.fromLocalFile(qml_file)
engine = QQmlEngine()
-component = QQmlComponent(engine, url)
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
party = component.create()
if not party:
print(component.errors())
diff --git a/examples/qml/referenceexamples/valuesource/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/person.py
index 5cd04e38a..503aaf65e 100644
--- a/examples/qml/referenceexamples/valuesource/person.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/person.py
@@ -1,31 +1,36 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QObject, Property
+from PySide6.QtCore import QObject, Property, Signal
from PySide6.QtQml import QmlAnonymous, QmlElement
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.valuesource.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@QmlAnonymous
class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
def __init__(self, parent=None):
super().__init__(parent)
self._name = ''
self._shoe_size = 0
- @Property(str)
+ @Property(str, notify=name_changed, final=True)
def name(self):
return self._name
@name.setter
def name(self, n):
- self._name = n
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
- @Property(int)
+ @Property(int, notify=shoe_size_changed, final=True)
def shoe_size(self):
return self._shoe_size
diff --git a/examples/qml/referenceexamples/valuesource/example.qml b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/Main.qml
index cb9683f3a..254265a80 100644
--- a/examples/qml/referenceexamples/valuesource/example.qml
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/Main.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import examples.valuesource.people
+import People
BirthdayParty {
HappyBirthdaySong on announcement { name: "Bob Jones" }
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/referenceexamples/valuesource/valuesource.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/advanced6-Property-value-source.pyproject
index a782d5c8a..fe2980fa9 100644
--- a/examples/qml/referenceexamples/valuesource/valuesource.pyproject
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/advanced6-Property-value-source.pyproject
@@ -1,3 +1,4 @@
{
- "files": ["main.py", "birthdayparty.py", "happybirthdaysong.py", "person.py", "example.qml"]
+ "files": ["main.py", "birthdayparty.py", "happybirthdaysong.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
}
diff --git a/examples/qml/referenceexamples/attached/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py
index d83236e26..eacb5201d 100644
--- a/examples/qml/referenceexamples/attached/birthdayparty.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py
@@ -1,7 +1,7 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QDate, QObject, ClassInfo, Property
+from PySide6.QtCore import QDate, QObject, ClassInfo, Property, QTime, Signal
from PySide6.QtQml import QmlAnonymous, QmlAttached, QmlElement, ListProperty
from person import Person
@@ -9,24 +9,27 @@ from person import Person
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.default.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@QmlAnonymous
class BirthdayPartyAttached(QObject):
+ rsvp_changed = Signal()
def __init__(self, parent=None):
super().__init__(parent)
self._rsvp = QDate()
- @Property(QDate)
+ @Property(QDate, notify=rsvp_changed, final=True)
def rsvp(self):
return self._rsvp
@rsvp.setter
def rsvp(self, d):
- self._rsvp = d
+ if self._rsvp != d:
+ self._rsvp = d
+ self.rsvp_changed.emit()
@QmlElement
@@ -34,18 +37,40 @@ class BirthdayPartyAttached(QObject):
@QmlAttached(BirthdayPartyAttached)
class BirthdayParty(QObject):
+ announcement_changed = Signal()
+ host_changed = Signal()
+ guests_changed = Signal()
+ partyStarted = Signal(QTime)
+
def __init__(self, parent=None):
super().__init__(parent)
+ self._announcement = ""
self._host = None
self._guests = []
- @Property(Person)
+ def startParty(self):
+ self.partyStarted.emit(QTime.currentTime())
+
+ @Property(Person, notify=host_changed, final=True)
def host(self):
return self._host
@host.setter
def host(self, h):
- self._host = h
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
+
+ @Property(str, notify=announcement_changed, final=True)
+ def announcement(self):
+ return self._announcement
+
+ @announcement.setter
+ def announcement(self, a):
+ if self._announcement != a:
+ self._announcement = a
+ self.announcement_changed.emit()
+ print(a)
def guest(self, n):
return self._guests[n]
@@ -55,9 +80,10 @@ class BirthdayParty(QObject):
def appendGuest(self, guest):
self._guests.append(guest)
+ self.guests_changed.emit()
@staticmethod
def qmlAttachedProperties(self, o):
return BirthdayPartyAttached(o)
- guests = ListProperty(Person, appendGuest)
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/doc/advanced6-Property-value-source.rst b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/doc/advanced6-Property-value-source.rst
new file mode 100644
index 000000000..4e1dc393a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/doc/advanced6-Property-value-source.rst
@@ -0,0 +1,43 @@
+.. _qml-advanced/advanced6-property-value-source:
+
+Extending QML (advanced) - Property Value Source
+================================================
+
+This is the last of a series of 6 examples forming a tutorial using the example
+of a birthday party to demonstrate some of the advanced features of QML.
+
+During the party the guests have to sing for the host. It would be handy if the
+program could display the lyrics customized for the occasion to help the
+guests. To this end, a property value source is used to generate the verses of
+the song over time.
+
+.. literalinclude:: happybirthdaysong.py
+ :lineno-start: 13
+ :lines: 13-49
+
+The class ``HappyBirthdaySong`` is added as a value source. It must inherit
+from ``QQmlPropertyValueSource`` and implement its interface. The
+``setTarget()`` function is used to define which property this source acts
+upon. In this case, the value source writes to the ``announcement`` property of
+the ``BirthdayParty`` to display the lyrics over time. It has an internal timer
+that causes the ``announcement`` property of the party to be set to the next
+line of the lyrics repeatedly.
+
+In QML, a ``HappyBirthdaySong`` is instantiated inside the ``BirthdayParty``.
+The ``on`` keyword in its signature is used to specify the property that the
+value source targets, in this case ``announcement``. The ``name`` property of
+the ``HappyBirthdaySong`` object is also bound to the name of the host of the
+party.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 6
+ :lines: 6-7
+
+The program displays the time at which the party started using the
+``partyStarted`` signal and then prints the following happy birthday verses
+over and over::
+
+ Happy birthday to you,
+ Happy birthday to you,
+ Happy birthday dear Bob Jones,
+ Happy birthday to you!
diff --git a/examples/qml/referenceexamples/valuesource/happybirthdaysong.py b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/happybirthdaysong.py
index cffddd39e..c35f9bffa 100644
--- a/examples/qml/referenceexamples/valuesource/happybirthdaysong.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/happybirthdaysong.py
@@ -1,17 +1,18 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QObject, QTimer, Property, Slot
+from PySide6.QtCore import QTimer, Property, Signal, Slot
from PySide6.QtQml import QmlElement, QPyQmlPropertyValueSource
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.valuesource.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@QmlElement
class HappyBirthdaySong(QPyQmlPropertyValueSource):
+ name_changed = Signal()
def __init__(self, parent=None):
super().__init__(parent)
@@ -28,18 +29,19 @@ class HappyBirthdaySong(QPyQmlPropertyValueSource):
def setTarget(self, property):
self.m_target = property
- @Property(str)
+ @Property(str, notify=name_changed, final=True)
def name(self):
return self.m_name
@name.setter
def name(self, n):
- self.m_name = n
- self.m_lyrics = ["Happy birthday to you,",
- "Happy birthday to you,",
- f"Happy birthday dear {self.m_name},",
- "Happy birthday to you!",
- ""]
+ if self.m_name != n:
+ self.m_name = n
+ self.m_lyrics = ["Happy birthday to you,",
+ "Happy birthday to you,",
+ f"Happy birthday dear {self.m_name},",
+ "Happy birthday to you!",
+ ""]
@Slot()
def advance(self):
diff --git a/examples/qml/referenceexamples/valuesource/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/main.py
index c3ded4be9..ea412a547 100644
--- a/examples/qml/referenceexamples/valuesource/main.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/main.py
@@ -1,24 +1,26 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-"""PySide6 port of the qml/examples/qml/referenceexamples/valuesource example from Qt v6.x"""
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source example
+ from Qt v6.x"""
from pathlib import Path
import sys
-from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtCore import QCoreApplication
from PySide6.QtQml import QQmlComponent, QQmlEngine, qmlAttachedPropertiesObject
-from person import Boy, Girl
+from person import Boy, Girl # noqa: F401
from birthdayparty import BirthdayParty
-from happybirthdaysong import HappyBirthdaySong
+from happybirthdaysong import HappyBirthdaySong # noqa: F401
app = QCoreApplication(sys.argv)
-qml_file = Path(__file__).parent / "example.qml"
-url = QUrl.fromLocalFile(qml_file)
engine = QQmlEngine()
-component = QQmlComponent(engine, url)
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
party = component.create()
if not party:
print(component.errors())
diff --git a/examples/qml/referenceexamples/default/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/person.py
index 7164bd645..503aaf65e 100644
--- a/examples/qml/referenceexamples/default/person.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/person.py
@@ -1,31 +1,36 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QObject, Property
+from PySide6.QtCore import QObject, Property, Signal
from PySide6.QtQml import QmlAnonymous, QmlElement
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.default.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@QmlAnonymous
class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
def __init__(self, parent=None):
super().__init__(parent)
self._name = ''
self._shoe_size = 0
- @Property(str)
+ @Property(str, notify=name_changed, final=True)
def name(self):
return self._name
@name.setter
def name(self, n):
- self._name = n
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
- @Property(int)
+ @Property(int, notify=shoe_size_changed, final=True)
def shoe_size(self):
return self._shoe_size
diff --git a/examples/qml/referenceexamples/binding/example.qml b/examples/qml/tutorials/extending-qml-advanced/binding/People/Main.qml
index ca0958810..75add22af 100644
--- a/examples/qml/referenceexamples/binding/example.qml
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/People/Main.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import examples.binding.people
+import People
BirthdayParty {
id: theParty
diff --git a/examples/qml/tutorials/extending-qml-advanced/binding/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/binding/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/referenceexamples/binding/binding.pyproject b/examples/qml/tutorials/extending-qml-advanced/binding/binding.pyproject
index a782d5c8a..fe2980fa9 100644
--- a/examples/qml/referenceexamples/binding/binding.pyproject
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/binding.pyproject
@@ -1,3 +1,4 @@
{
- "files": ["main.py", "birthdayparty.py", "happybirthdaysong.py", "person.py", "example.qml"]
+ "files": ["main.py", "birthdayparty.py", "happybirthdaysong.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
}
diff --git a/examples/qml/referenceexamples/binding/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/binding/birthdayparty.py
index 78f0314b4..a337d4a16 100644
--- a/examples/qml/referenceexamples/binding/birthdayparty.py
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/birthdayparty.py
@@ -9,7 +9,7 @@ from person import Person
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.binding.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
diff --git a/examples/qml/referenceexamples/binding/doc/binding.rst b/examples/qml/tutorials/extending-qml-advanced/binding/doc/binding.rst
index 5c0ed21be..5c0ed21be 100644
--- a/examples/qml/referenceexamples/binding/doc/binding.rst
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/doc/binding.rst
diff --git a/examples/qml/referenceexamples/binding/happybirthdaysong.py b/examples/qml/tutorials/extending-qml-advanced/binding/happybirthdaysong.py
index cfe34eb82..59ebfe4c6 100644
--- a/examples/qml/referenceexamples/binding/happybirthdaysong.py
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/happybirthdaysong.py
@@ -1,12 +1,12 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import QObject, QTimer, Property, Slot
+from PySide6.QtCore import QTimer, Property, Slot
from PySide6.QtQml import QmlElement, QPyQmlPropertyValueSource
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.binding.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
diff --git a/examples/qml/referenceexamples/binding/main.py b/examples/qml/tutorials/extending-qml-advanced/binding/main.py
index dcbd547ad..64929a807 100644
--- a/examples/qml/referenceexamples/binding/main.py
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/main.py
@@ -6,20 +6,20 @@
from pathlib import Path
import sys
-from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtCore import QCoreApplication
from PySide6.QtQml import QQmlComponent, QQmlEngine, qmlAttachedPropertiesObject
-from person import Boy, Girl
-from birthdayparty import BirthdayParty
-from happybirthdaysong import HappyBirthdaySong
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
+from happybirthdaysong import HappyBirthdaySong # noqa: F401
if __name__ == "__main__":
app = QCoreApplication(sys.argv)
- qml_file = Path(__file__).parent / "example.qml"
- url = QUrl.fromLocalFile(qml_file)
engine = QQmlEngine()
- component = QQmlComponent(engine, url)
+ engine.addImportPath(Path(__file__).parent)
+ component = QQmlComponent(engine)
+ component.loadFromModule("People", "Main")
party = component.create()
if not party:
print(component.errors())
diff --git a/examples/qml/referenceexamples/binding/person.py b/examples/qml/tutorials/extending-qml-advanced/binding/person.py
index 9e7d799e1..a6942763a 100644
--- a/examples/qml/referenceexamples/binding/person.py
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/person.py
@@ -6,7 +6,7 @@ from PySide6.QtQml import QmlAnonymous, QmlElement
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.binding.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
diff --git a/examples/qml/referenceexamples/extended/doc/extended.rst b/examples/qml/tutorials/extending-qml-advanced/extended/doc/extended.rst
index 745960535..745960535 100644
--- a/examples/qml/referenceexamples/extended/doc/extended.rst
+++ b/examples/qml/tutorials/extending-qml-advanced/extended/doc/extended.rst
diff --git a/examples/qml/referenceexamples/extended/example.qml b/examples/qml/tutorials/extending-qml-advanced/extended/example.qml
index e4af3bec5..e4af3bec5 100644
--- a/examples/qml/referenceexamples/extended/example.qml
+++ b/examples/qml/tutorials/extending-qml-advanced/extended/example.qml
diff --git a/examples/qml/referenceexamples/extended/extended.pyproject b/examples/qml/tutorials/extending-qml-advanced/extended/extended.pyproject
index 127a3a76a..127a3a76a 100644
--- a/examples/qml/referenceexamples/extended/extended.pyproject
+++ b/examples/qml/tutorials/extending-qml-advanced/extended/extended.pyproject
diff --git a/examples/qml/referenceexamples/extended/main.py b/examples/qml/tutorials/extending-qml-advanced/extended/main.py
index 6ee386401..6ee386401 100644
--- a/examples/qml/referenceexamples/extended/main.py
+++ b/examples/qml/tutorials/extending-qml-advanced/extended/main.py
diff --git a/examples/qml/referenceexamples/methods/example.qml b/examples/qml/tutorials/extending-qml-advanced/methods/People/Main.qml
index c48e952fd..69b2119ab 100644
--- a/examples/qml/referenceexamples/methods/example.qml
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/People/Main.qml
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
-import examples.methods.people
+import People
BirthdayParty {
host: Person {
diff --git a/examples/qml/tutorials/extending-qml-advanced/methods/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/methods/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/referenceexamples/methods/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/methods/birthdayparty.py
index 41425a2b1..a3942b671 100644
--- a/examples/qml/referenceexamples/methods/birthdayparty.py
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/birthdayparty.py
@@ -9,7 +9,7 @@ from person import Person
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.methods.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
diff --git a/examples/qml/referenceexamples/methods/doc/methods.rst b/examples/qml/tutorials/extending-qml-advanced/methods/doc/methods.rst
index bda2ede5a..bda2ede5a 100644
--- a/examples/qml/referenceexamples/methods/doc/methods.rst
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/doc/methods.rst
diff --git a/examples/qml/referenceexamples/methods/main.py b/examples/qml/tutorials/extending-qml-advanced/methods/main.py
index 31748ff2b..fb656f266 100644
--- a/examples/qml/referenceexamples/methods/main.py
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/main.py
@@ -6,18 +6,18 @@
from pathlib import Path
import sys
-from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtCore import QCoreApplication
from PySide6.QtQml import QQmlComponent, QQmlEngine
-from person import Person
-from birthdayparty import BirthdayParty
+from person import Person # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
app = QCoreApplication(sys.argv)
-qml_file = Path(__file__).parent / "example.qml"
-url = QUrl.fromLocalFile(qml_file)
engine = QQmlEngine()
-component = QQmlComponent(engine, url)
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
party = component.create()
if not party:
print(component.errors())
diff --git a/examples/qml/tutorials/extending-qml-advanced/methods/methods.pyproject b/examples/qml/tutorials/extending-qml-advanced/methods/methods.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/methods.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/referenceexamples/adding/person.py b/examples/qml/tutorials/extending-qml-advanced/methods/person.py
index 0c2b5b124..526eae714 100644
--- a/examples/qml/referenceexamples/adding/person.py
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/person.py
@@ -6,7 +6,7 @@ from PySide6.QtQml import QmlElement
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.adding.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@@ -32,4 +32,3 @@ class Person(QObject):
@shoe_size.setter
def shoe_size(self, s):
self._shoe_size = s
-
diff --git a/examples/qml/referenceexamples/properties/example.qml b/examples/qml/tutorials/extending-qml-advanced/properties/People/Main.qml
index 1486a0f92..0600b3557 100644
--- a/examples/qml/referenceexamples/properties/example.qml
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/People/Main.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import examples.properties.people
+import People
BirthdayParty {
host: Person {
diff --git a/examples/qml/tutorials/extending-qml-advanced/properties/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/properties/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/referenceexamples/coercion/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/properties/birthdayparty.py
index f6ad1ac35..47dddc85d 100644
--- a/examples/qml/referenceexamples/coercion/birthdayparty.py
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/birthdayparty.py
@@ -9,7 +9,7 @@ from person import Person
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.coercion.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
diff --git a/examples/qml/referenceexamples/properties/doc/properties.rst b/examples/qml/tutorials/extending-qml-advanced/properties/doc/properties.rst
index 909434c3c..16924cdcd 100644
--- a/examples/qml/referenceexamples/properties/doc/properties.rst
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/doc/properties.rst
@@ -40,7 +40,7 @@ The BirthdayParty class is declared like this:
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
- QML_IMPORT_NAME = "examples.properties.people"
+ QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@@ -75,11 +75,11 @@ The class contains a member to store the celebrant object, and also a
list member storing the Person instances.
In QML, the type of a list properties - and the guests property is a list of
-people - are all of type ListProperty. ListProperty is simple value
-type that contains a set of functions. QML calls these functions
-whenever it needs to read from, write to or otherwise interact with
-the list. In addition to concrete lists like the people list used in this
-example, the use of QQmlListProperty allows for "virtual lists" and other advanced
+people - are all of type :class:`~PySide6.QtQml.ListProperty`.
+``ListProperty`` is a simple value type that contains a set of functions.
+QML calls these functions whenever it needs to read from, write to or otherwise
+interact with the list. In addition to concrete lists like the people list used in this
+example, the use of ``ListProperty`` allows for "virtual lists" and other advanced
scenarios.
Running the Example
diff --git a/examples/qml/referenceexamples/properties/main.py b/examples/qml/tutorials/extending-qml-advanced/properties/main.py
index a980b25aa..11757d5f3 100644
--- a/examples/qml/referenceexamples/properties/main.py
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/main.py
@@ -6,20 +6,20 @@
from pathlib import Path
import sys
-from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtCore import QCoreApplication
from PySide6.QtQml import QQmlComponent, QQmlEngine
-from person import Person
-from birthdayparty import BirthdayParty
+from person import Person # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
if __name__ == '__main__':
app = QCoreApplication(sys.argv)
- qml_file = Path(__file__).parent / "example.qml"
- url = QUrl.fromLocalFile(qml_file)
engine = QQmlEngine()
- component = QQmlComponent(engine, url)
+ engine.addImportPath(Path(__file__).parent)
+ component = QQmlComponent(engine)
+ component.loadFromModule("People", "Main")
party = component.create()
if party:
diff --git a/examples/qml/referenceexamples/properties/person.py b/examples/qml/tutorials/extending-qml-advanced/properties/person.py
index 4cc54260a..526eae714 100644
--- a/examples/qml/referenceexamples/properties/person.py
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/person.py
@@ -6,7 +6,7 @@ from PySide6.QtQml import QmlElement
# To be used on the @QmlElement decorator
# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.properties.people"
+QML_IMPORT_NAME = "People"
QML_IMPORT_MAJOR_VERSION = 1
@@ -32,4 +32,3 @@ class Person(QObject):
@shoe_size.setter
def shoe_size(self, s):
self._shoe_size = s
-
diff --git a/examples/qml/tutorials/extending-qml-advanced/properties/properties.pyproject b/examples/qml/tutorials/extending-qml-advanced/properties/properties.pyproject
new file mode 100644
index 000000000..adb34b2d0
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/properties.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "person.py", "birthdayparty.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending/chapter1-basics/app.qml b/examples/qml/tutorials/extending-qml/chapter1-basics/app.qml
index 415183596..6feef5633 100644
--- a/examples/qml/tutorials/extending/chapter1-basics/app.qml
+++ b/examples/qml/tutorials/extending-qml/chapter1-basics/app.qml
@@ -1,6 +1,6 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-//![0]
+
import Charts
import QtQuick
@@ -24,4 +24,3 @@ Item {
text: aPieChart.name
}
}
-//![0]
diff --git a/examples/qml/tutorials/extending/chapter1-basics/basics.py b/examples/qml/tutorials/extending-qml/chapter1-basics/basics.py
index f76183705..47d0a0e0c 100644
--- a/examples/qml/tutorials/extending/chapter1-basics/basics.py
+++ b/examples/qml/tutorials/extending-qml/chapter1-basics/basics.py
@@ -34,7 +34,7 @@ class PieChart (QQuickPaintedItem):
painter.setRenderHints(QPainter.Antialiasing, True)
painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
- @Property(QColor)
+ @Property(QColor, final=True)
def color(self):
return self._color
@@ -42,7 +42,7 @@ class PieChart (QQuickPaintedItem):
def color(self, value):
self._color = value
- @Property(str, notify=nameChanged)
+ @Property(str, notify=nameChanged, final=True)
def name(self):
return self._name
diff --git a/examples/qml/tutorials/extending/chapter1-basics/chapter1-basics.pyproject b/examples/qml/tutorials/extending-qml/chapter1-basics/chapter1-basics.pyproject
index 869556bb8..869556bb8 100644
--- a/examples/qml/tutorials/extending/chapter1-basics/chapter1-basics.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter1-basics/chapter1-basics.pyproject
diff --git a/examples/qml/tutorials/extending-qml/chapter1-basics/doc/chapter1-basics.rst b/examples/qml/tutorials/extending-qml/chapter1-basics/doc/chapter1-basics.rst
new file mode 100644
index 000000000..38233aae2
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter1-basics/doc/chapter1-basics.rst
@@ -0,0 +1,107 @@
+.. _qml-chapter1-basics:
+
+Extending QML - Creating a New Type
+===================================
+
+This is the first of a series of 6 examples forming a tutorial
+about extending QML with Python.
+
+The Qt QML module provides a set of APIs for extending QML through Python
+extensions. You can write extensions to add your own QML types, extend existing
+Qt types, or call Python functions that are not accessible from ordinary QML
+code.
+
+This tutorial shows how to write a QML extension using Python that includes
+core QML features, including properties, signals and bindings. It also shows
+how extensions can be deployed through plugins.
+
+A common task when extending QML is to provide a new QML type that supports
+some custom functionality beyond what is provided by the built-in Qt Quick
+types. For example, this could be done to implement particular data models, or
+provide types with custom painting and drawing capabilities, or access system
+features like network programming that are not accessible through built-in QML
+features.
+
+In this tutorial, we will show how to use the C++ classes in the Qt Quick
+module to extend QML. The end result will be a simple Pie Chart display
+implemented by several custom QML types connected together through QML features
+like bindings and signals, and made available to the QML runtime through a
+plugin.
+
+To begin with, let's create a new QML type called ``PieChart`` that has two
+properties: a name and a color. We will make it available in an importable type
+namespace called ``Charts``, with a version of 1.0.
+
+We want this ``PieChart`` type to be usable from QML like this:
+
+.. code-block:: javascript
+
+ import Charts 1.0
+
+ PieChart {
+ width: 100; height: 100
+ name: "A simple pie chart"
+ color: "red"
+ }
+
+To do this, we need a C++ class that encapsulates this ``PieChart`` type and
+its two properties. Since QML makes extensive use of Qt's Meta-Object System
+this new class must:
+
+* Inherit from ``QObject``
+* Declare its properties using the ``Property`` decorator
+
+Class Implementation
+--------------------
+
+Here is our ``PieChart`` class, defined in ``basics.py``:
+
+.. literalinclude:: basics.py
+ :lineno-start: 21
+ :lines: 21-51
+
+The class inherits from ``QQuickPaintedItem`` because we want to override
+``QQuickPaintedItem.paint()`` to perform drawing operations with the
+``QPainter`` API. If the class just represented some data type and was not an
+item that actually needed to be displayed, it could simply inherit from
+``QObject``. Or, if we want to extend the functionality of an existing
+``QObject``-based class, it could inherit from that class instead.
+Alternatively, if we want to create a visual item that doesn't need to perform
+drawing operations with the ``QPainter`` API, we can just subclass
+``QQuickItem``.
+
+The ``PieChart`` class defines the two properties, ``name`` and ``color``, with
+the ``Property`` decorator, and overrides ``QQuickPaintedItem.paint()``. The
+``PieChart`` class is registered using the ``QmlElement`` decorator, to allow
+it to be used from QML. If you don't register the class, ``app.qml`` won't be
+able to create a ``PieChart``.
+
+QML Usage
+---------
+
+Now that we have defined the ``PieChart`` type, we will use it from QML. The
+``app.qml`` file creates a ``PieChart`` item and displays the pie chart's details
+using a standard QML ``Text`` item:
+
+.. literalinclude:: app.qml
+ :lineno-start: 7
+ :lines: 7-26
+
+Notice that although the color is specified as a string in QML, it is
+automatically converted to a ``QColor`` object for the PieChart ``color``
+property. Automatic conversions are provided for various other QML value types.
+For example, a string like "640x480" can be automatically converted to a
+``QSize`` value.
+
+We'll also create a main function that uses a ``QQuickView`` to run and display
+``app.qml``. Here is the application ``basics.py``:
+
+.. literalinclude:: basics.py
+ :lineno-start: 54
+ :lines: 54-68
+
+.. note:: You may see a warning `Expression ... depends on non-NOTIFYable properties:
+ PieChart.name`. This happens because we add a binding to the writable ``name``
+ property, but haven't yet defined a notify signal for it. The QML engine therefore
+ cannot update the binding if the ``name`` value changes. This is addressed in
+ the following chapters.
diff --git a/examples/qml/tutorials/extending/chapter2-methods/app.qml b/examples/qml/tutorials/extending-qml/chapter2-methods/app.qml
index d330f3b64..d9477e253 100644
--- a/examples/qml/tutorials/extending/chapter2-methods/app.qml
+++ b/examples/qml/tutorials/extending-qml/chapter2-methods/app.qml
@@ -1,6 +1,6 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-//![0]
+
import Charts
import QtQuick
@@ -30,4 +30,3 @@ Item {
text: "Click anywhere to clear the chart"
}
}
-//![0]
diff --git a/examples/qml/tutorials/extending/chapter2-methods/chapter2-methods.pyproject b/examples/qml/tutorials/extending-qml/chapter2-methods/chapter2-methods.pyproject
index cdf33be7f..cdf33be7f 100644
--- a/examples/qml/tutorials/extending/chapter2-methods/chapter2-methods.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter2-methods/chapter2-methods.pyproject
diff --git a/examples/qml/tutorials/extending-qml/chapter2-methods/doc/chapter2-methods.rst b/examples/qml/tutorials/extending-qml/chapter2-methods/doc/chapter2-methods.rst
new file mode 100644
index 000000000..245d0ddb2
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter2-methods/doc/chapter2-methods.rst
@@ -0,0 +1,36 @@
+.. _qml-chapter2-methods:
+
+Extending QML - Connecting to C++ Methods and Signals
+=====================================================
+
+This is the second of a series of 6 examples forming a tutorial about extending
+QML with Python.
+
+Suppose we want ``PieChart`` to have a ``clearChart()`` method that erases the
+chart and then emits a ``chartCleared`` signal. Our ``app.qml`` would be able
+to call ``clearChart()`` and receive ``chartCleared()`` signals like this:
+
+.. literalinclude:: app.qml
+ :lineno-start: 4
+ :lines: 4-32
+
+To do this, we add a ``clearChart()`` method and a ``chartCleared()`` signal
+to our C++ class:
+
+.. literalinclude:: methods.py
+ :lineno-start: 54
+ :lines: 54-58
+
+The use of the ``Slot`` decorator makes the ``clearChart()`` method available
+to the Qt Meta-Object system, and in turn, to QML. The method simply changes
+the color to ``Qt::transparent``, repaints the chart, then emits the
+``chartCleared()`` signal:
+
+.. literalinclude:: methods.py
+ :lineno-start: 21
+ :lines: 21-24
+
+Now when we run the application and click the window, the pie chart disappears,
+and the application outputs::
+
+ qml: The chart has been cleared
diff --git a/examples/qml/tutorials/extending/chapter2-methods/methods.py b/examples/qml/tutorials/extending-qml/chapter2-methods/methods.py
index f8241db72..d455c317b 100644
--- a/examples/qml/tutorials/extending/chapter2-methods/methods.py
+++ b/examples/qml/tutorials/extending-qml/chapter2-methods/methods.py
@@ -35,7 +35,7 @@ class PieChart(QQuickPaintedItem):
painter.setRenderHints(QPainter.Antialiasing, True)
painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
- @Property(QColor)
+ @Property(QColor, final=True)
def color(self):
return self._color
@@ -43,7 +43,7 @@ class PieChart(QQuickPaintedItem):
def color(self, value):
self._color = value
- @Property(str, notify=nameChanged)
+ @Property(str, notify=nameChanged, final=True)
def name(self):
return self._name
diff --git a/examples/qml/tutorials/extending/chapter3-bindings/app.qml b/examples/qml/tutorials/extending-qml/chapter3-bindings/app.qml
index ee24a428a..f1530516a 100644
--- a/examples/qml/tutorials/extending/chapter3-bindings/app.qml
+++ b/examples/qml/tutorials/extending-qml/chapter3-bindings/app.qml
@@ -1,6 +1,6 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-//![0]
+
import Charts
import QtQuick
@@ -38,4 +38,3 @@ Item {
text: "Click anywhere to change the chart color"
}
}
-//![0]
diff --git a/examples/qml/tutorials/extending/chapter3-bindings/bindings.py b/examples/qml/tutorials/extending-qml/chapter3-bindings/bindings.py
index e50f08397..a9b61e7f1 100644
--- a/examples/qml/tutorials/extending/chapter3-bindings/bindings.py
+++ b/examples/qml/tutorials/extending-qml/chapter3-bindings/bindings.py
@@ -36,7 +36,7 @@ class PieChart (QQuickPaintedItem):
painter.setRenderHints(QPainter.Antialiasing, True)
painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
- @Property(QColor, notify=colorChanged)
+ @Property(QColor, notify=colorChanged, final=True)
def color(self):
return self._color
@@ -47,7 +47,7 @@ class PieChart (QQuickPaintedItem):
self.update()
self.colorChanged.emit()
- @Property(str, notify=nameChanged)
+ @Property(str, notify=nameChanged, final=True)
def name(self):
return self._name
diff --git a/examples/qml/tutorials/extending/chapter3-bindings/chapter3-bindings.pyproject b/examples/qml/tutorials/extending-qml/chapter3-bindings/chapter3-bindings.pyproject
index 6e21f86f9..6e21f86f9 100644
--- a/examples/qml/tutorials/extending/chapter3-bindings/chapter3-bindings.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter3-bindings/chapter3-bindings.pyproject
diff --git a/examples/qml/tutorials/extending-qml/chapter3-bindings/doc/chapter3-bindings.rst b/examples/qml/tutorials/extending-qml/chapter3-bindings/doc/chapter3-bindings.rst
new file mode 100644
index 000000000..3b7191191
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter3-bindings/doc/chapter3-bindings.rst
@@ -0,0 +1,54 @@
+.. _qml-chapter3-bindings:
+
+Extending QML - Adding Property Bindings
+========================================
+
+This is the third of a series of 6 examples forming a tutorial about extending
+QML with Python.
+
+Property binding is a powerful feature of QML that allows values of different
+types to be synchronized automatically. It uses signals to notify and update
+other types' values when property values are changed.
+
+Let's enable property bindings for the ``color`` property. That means if we
+have code like this:
+
+.. literalinclude:: app.qml
+ :lineno-start: 7
+ :lines: 7-40
+
+The ``color: chartA.color`` statement binds the ``color`` value of ``chartB``
+to the ``color`` of ``chartA.`` Whenever ``chartA`` 's ``color`` value changes,
+``chartB`` 's ``color`` value updates to the same value. When the window is
+clicked, the ``onClicked`` handler in the ``MouseArea`` changes the color of
+``chartA`` , thereby changing both charts to the color blue.
+
+It's easy to enable property binding for the ``color`` property. We add a
+``notify`` parameter to its ``Property`` decorator to indicate that a
+``colorChanged`` signal is emitted whenever the value changes.
+
+.. literalinclude:: bindings.py
+ :lineno-start: 39
+ :lines: 39-39
+
+.. literalinclude:: bindings.py
+ :lineno-start: 21
+ :lines: 21-26
+
+Then, we emit this signal in ``setColor()``:
+
+.. literalinclude:: bindings.py
+ :lineno-start: 43
+ :lines: 43-48
+
+It's important for ``setColor()`` to check that the color value has actually
+changed before emitting ``colorChanged().`` This ensures the signal is not
+emitted unnecessarily and also prevents loops when other types respond to the
+value change.
+
+The use of bindings is essential to QML. You should always add ``notify``
+signals for properties if they are able to be implemented, so that your
+properties can be used in bindings. Properties that cannot be bound cannot be
+automatically updated and cannot be used as flexibly in QML. Also, since
+bindings are invoked so often and relied upon in QML usage, users of your
+custom QML types may see unexpected behavior if bindings are not implemented.
diff --git a/examples/qml/tutorials/extending/chapter4-customPropertyTypes/app.qml b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/app.qml
index 954e6465c..a5c5ff9fa 100644
--- a/examples/qml/tutorials/extending/chapter4-customPropertyTypes/app.qml
+++ b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/app.qml
@@ -1,6 +1,6 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-//![0]
+
import Charts
import QtQuick
@@ -20,4 +20,3 @@ Item {
Component.onCompleted: console.log("The pie is colored " + chart.pieSlice.color)
}
-//![0]
diff --git a/examples/qml/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject
index af1cfefb7..af1cfefb7 100644
--- a/examples/qml/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject
diff --git a/examples/qml/tutorials/extending/chapter4-customPropertyTypes/customPropertyTypes.py b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/customPropertyTypes.py
index ee10f0894..659850f38 100644
--- a/examples/qml/tutorials/extending/chapter4-customPropertyTypes/customPropertyTypes.py
+++ b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/customPropertyTypes.py
@@ -1,7 +1,8 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-"""PySide6 port of the qml/tutorials/extending-qml/chapter4-customPropertyTypes example from Qt v5.x"""
+"""PySide6 port of the qml/tutorials/extending-qml/chapter4-customPropertyTypes example
+ from Qt v5.x"""
import os
from pathlib import Path
@@ -25,7 +26,7 @@ class PieSlice (QQuickPaintedItem):
QQuickPaintedItem.__init__(self, parent)
self._color = QColor()
- @Property(QColor)
+ @Property(QColor, final=True)
def color(self):
return self._color
@@ -47,7 +48,7 @@ class PieChart (QQuickItem):
self._name = None
self._pieSlice = None
- @Property(str)
+ @Property(str, final=True)
def name(self):
return self._name
@@ -55,7 +56,7 @@ class PieChart (QQuickItem):
def name(self, value):
self._name = value
- @Property(PieSlice)
+ @Property(PieSlice, final=True)
def pieSlice(self):
return self._pieSlice
diff --git a/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/doc/chapter4-customPropertyTypes.rst b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/doc/chapter4-customPropertyTypes.rst
new file mode 100644
index 000000000..f7c3efb11
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/doc/chapter4-customPropertyTypes.rst
@@ -0,0 +1,73 @@
+.. _qml-chapter4-custompropertytypes:
+
+Extending QML - Using Custom Property Types
+===========================================
+
+This is the fourth of a series of 6 examples forming a tutorial about extending
+QML with Python.
+
+The ``PieChart`` type currently has a string-type property and a color-type property.
+It could have many other types of properties. For example, it could have an
+int-type property to store an identifier for each chart:
+
+.. code-block:: python
+
+ class PieChart(QQuickPaintedItem):
+ chartIdChanged = Signal()
+
+ @Property(int, notify=chartIdChanged)
+ def chartId(self):
+ pass
+
+ @chartId.setter
+ def setChartId(self, chartId):
+ pass
+
+.. code-block:: javascript
+
+ // QML
+ PieChart {
+ ...
+ chartId: 100
+ }
+
+Aside from ``int``, we could use various other property types. Many of the Qt
+data types such as ``QColor``, ``QSize`` and ``QRect`` are automatically
+supported from QML.
+
+If we want to create a property whose type is not supported by QML by default,
+we need to register the type with the QML engine.
+
+For example, let's replace the use of the ``property`` with a type called
+``PieSlice`` that has a ``color`` property. Instead of assigning a color,
+we assign an ``PieSlice`` value which itself contains a ``color``:
+
+.. literalinclude:: app.qml
+ :lineno-start: 4
+ :lines: 4-22
+
+Like ``PieChart``, this new ``PieSlice`` type inherits from
+``QQuickPaintedItem``, is exposed via the ``QmlElement`` decorator and declares
+its properties with the ``Property`` decorator:
+
+.. literalinclude:: customPropertyTypes.py
+ :lineno-start: 21
+ :lines: 21-40
+
+To use it in ``PieChart``, we modify the ``color`` property declaration
+and associated method signatures:
+
+.. literalinclude:: customPropertyTypes.py
+ :lineno-start: 58
+ :lines: 58-65
+
+There is one thing to be aware of when implementing ``setPieSlice()``. The
+``PieSlice`` is a visual item, so it must be set as a child of the ``PieChart``
+using ``QQuickItem.setParentItem()`` so that the ``PieChart`` knows to paint
+this child item when its contents are drawn.
+
+As with ``PieChart``, we add the ``Charts`` type namespace, version 1.0:
+
+.. literalinclude:: customPropertyTypes.py
+ :lineno-start: 15
+ :lines: 15-18
diff --git a/examples/qml/tutorials/extending/chapter5-listproperties/app.qml b/examples/qml/tutorials/extending-qml/chapter5-listproperties/app.qml
index edbf3e770..ac99d5a40 100644
--- a/examples/qml/tutorials/extending/chapter5-listproperties/app.qml
+++ b/examples/qml/tutorials/extending-qml/chapter5-listproperties/app.qml
@@ -1,6 +1,6 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-//![0]
+
import Charts
import QtQuick
@@ -30,4 +30,3 @@ Item {
]
}
}
-//![0]
diff --git a/examples/qml/tutorials/extending/chapter5-listproperties/chapter5-listproperties.pyproject b/examples/qml/tutorials/extending-qml/chapter5-listproperties/chapter5-listproperties.pyproject
index a3f89d575..a3f89d575 100644
--- a/examples/qml/tutorials/extending/chapter5-listproperties/chapter5-listproperties.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter5-listproperties/chapter5-listproperties.pyproject
diff --git a/examples/qml/tutorials/extending-qml/chapter5-listproperties/doc/chapter5-listproperties.rst b/examples/qml/tutorials/extending-qml/chapter5-listproperties/doc/chapter5-listproperties.rst
new file mode 100644
index 000000000..a98f18c81
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter5-listproperties/doc/chapter5-listproperties.rst
@@ -0,0 +1,47 @@
+.. _qml-chapter5-listproperties:
+
+Extending QML - Using List Property Types
+=========================================
+
+This is the fifth of a series of 6 examples forming a tutorial about extending
+QML with Python.
+
+Right now, a ``PieChart`` can only have one ``PieSlice.`` Ideally a chart would
+have multiple slices, with different colors and sizes. To do this, we could
+have a ``slices`` property that accepts a list of ``PieSlice`` items:
+
+.. literalinclude:: app.qml
+ :lineno-start: 4
+ :lines: 4-32
+
+To do this, we replace the ``pieSlice`` property in ``PieChart`` with a
+``slices`` property, declared as a class variable of the
+:class:`~PySide6.QtQml.ListProperty` type.
+The ``ListProperty`` class enables the creation of list properties in
+QML extensions. We replace the ``pieSlice()`` function with a ``slices()``
+function that returns a list of slices, and add an internal ``appendSlice()``
+function (discussed below). We also use a list to store the internal list of
+slices as ``_slices``:
+
+.. literalinclude:: listproperties.py
+ :lineno-start: 62
+ :lines: 62-65
+
+.. literalinclude:: listproperties.py
+ :lineno-start: 75
+ :lines: 75-79
+
+Although the ``slices`` property does not have an associated setter, it is
+still modifiable because of the way ``ListProperty`` works. We indicate
+that the internal ``PieChart.appendSlice()`` function is to be called whenever
+a request is made from QML to add items to the list.
+
+The ``appendSlice()`` function simply sets the parent item as before, and adds
+the new item to the ``_slices`` list. As you can see, the append function for
+a ``ListProperty`` is called with two arguments: the list property, and the
+item that is to be appended.
+
+The ``PieSlice`` class has also been modified to include ``fromAngle`` and
+``angleSpan`` properties and to draw the slice according to these values. This
+is a straightforward modification if you have read the previous pages in this
+tutorial, so the code is not shown here.
diff --git a/examples/qml/tutorials/extending/chapter5-listproperties/listproperties.py b/examples/qml/tutorials/extending-qml/chapter5-listproperties/listproperties.py
index 95a393fa3..98952cef1 100644
--- a/examples/qml/tutorials/extending/chapter5-listproperties/listproperties.py
+++ b/examples/qml/tutorials/extending-qml/chapter5-listproperties/listproperties.py
@@ -26,7 +26,7 @@ class PieSlice (QQuickPaintedItem):
self._fromAngle = 0
self._angleSpan = 0
- @Property(QColor)
+ @Property(QColor, final=True)
def color(self):
return self._color
@@ -34,7 +34,7 @@ class PieSlice (QQuickPaintedItem):
def color(self, value):
self._color = value
- @Property(int)
+ @Property(int, final=True)
def fromAngle(self):
return self._angle
@@ -42,7 +42,7 @@ class PieSlice (QQuickPaintedItem):
def fromAngle(self, value):
self._fromAngle = value
- @Property(int)
+ @Property(int, final=True)
def angleSpan(self):
return self._angleSpan
@@ -54,7 +54,8 @@ class PieSlice (QQuickPaintedItem):
pen = QPen(self._color, 2)
painter.setPen(pen)
painter.setRenderHints(QPainter.Antialiasing, True)
- painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), self._fromAngle * 16, self._angleSpan * 16)
+ painter.drawPie(
+ self.boundingRect().adjusted(1, 1, -1, -1), self._fromAngle * 16, self._angleSpan * 16)
@QmlElement
@@ -64,7 +65,7 @@ class PieChart (QQuickItem):
self._name = u''
self._slices = []
- @Property(str)
+ @Property(str, final=True)
def name(self):
return self._name
@@ -76,7 +77,7 @@ class PieChart (QQuickItem):
_slice.setParentItem(self)
self._slices.append(_slice)
- slices = ListProperty(PieSlice, appendSlice)
+ slices = ListProperty(PieSlice, appendSlice, final=True)
if __name__ == '__main__':
diff --git a/examples/qml/tutorials/extending/chapter6-plugins/Charts/piechart.py b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/piechart.py
index b721a7130..3ab8bcc08 100644
--- a/examples/qml/tutorials/extending/chapter6-plugins/Charts/piechart.py
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/piechart.py
@@ -12,6 +12,7 @@ from pieslice import PieSlice
QML_IMPORT_NAME = "Charts"
QML_IMPORT_MAJOR_VERSION = 1
+
@QmlElement
class PieChart(QQuickItem):
def __init__(self, parent=None):
@@ -19,7 +20,7 @@ class PieChart(QQuickItem):
self._slices = []
self._name = ''
- @Property(str)
+ @Property(str, final=True)
def name(self):
return self._name
diff --git a/examples/qml/tutorials/extending/chapter6-plugins/Charts/pieslice.py b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/pieslice.py
index 7945eff12..6f82f1f10 100644
--- a/examples/qml/tutorials/extending/chapter6-plugins/Charts/pieslice.py
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/pieslice.py
@@ -11,6 +11,7 @@ from PySide6.QtQml import QmlElement
QML_IMPORT_NAME = "Charts"
QML_IMPORT_MAJOR_VERSION = 1
+
@QmlElement
class PieSlice(QQuickPaintedItem):
def __init__(self, parent=None):
@@ -20,7 +21,7 @@ class PieSlice(QQuickPaintedItem):
self._from_angle = 0
self._angle_span = 0
- @Property(QColor)
+ @Property(QColor, final=True)
def color(self):
return self._color
@@ -28,7 +29,7 @@ class PieSlice(QQuickPaintedItem):
def color(self, color):
self._color = QColor(color)
- @Property(int)
+ @Property(int, final=True)
def fromAngle(self):
return self._from_angle
@@ -36,7 +37,7 @@ class PieSlice(QQuickPaintedItem):
def fromAngle(self, fromAngle):
self._from_angle = fromAngle
- @Property(int)
+ @Property(int, final=True)
def angleSpan(self):
return self._angle_span
diff --git a/examples/qml/tutorials/extending/chapter6-plugins/Charts/plugins.png b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/plugins.png
index 8992e89c0..8992e89c0 100644
--- a/examples/qml/tutorials/extending/chapter6-plugins/Charts/plugins.png
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/plugins.png
Binary files differ
diff --git a/examples/qml/tutorials/extending/chapter6-plugins/app.qml b/examples/qml/tutorials/extending-qml/chapter6-plugins/app.qml
index 70761619f..1a4772e15 100644
--- a/examples/qml/tutorials/extending/chapter6-plugins/app.qml
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/app.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQuick 2.0
+import QtQuick
import Charts 1.0
Item {
diff --git a/examples/qml/tutorials/extending/chapter6-plugins/chapter6-plugins.pyproject b/examples/qml/tutorials/extending-qml/chapter6-plugins/chapter6-plugins.pyproject
index cc684401f..cc684401f 100644
--- a/examples/qml/tutorials/extending/chapter6-plugins/chapter6-plugins.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/chapter6-plugins.pyproject
diff --git a/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/chapter6-plugins.rst b/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/chapter6-plugins.rst
new file mode 100644
index 000000000..a9d100812
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/chapter6-plugins.rst
@@ -0,0 +1,26 @@
+.. _qml-chapter6-plugins-example:
+
+Extending QML - Plugins Example
+===============================
+
+This is the last of a series of 6 examples forming a tutorial
+about extending QML with Python.
+
+This example refers to the Python version of using a QML plugin in Python. The
+idea of plugins in Python is non-existent because Python modules are
+dynamically loaded anyway. We use this idea and our QML type registration
+decorators - ``QmlELement``/``QmlNamedElement`` - to register the QML modules as they
+are imported. The ``pyside6-qml`` tool does this for you by simply pointing to the
+``.qml`` file.
+
+.. image:: plugins.png
+ :width: 400
+ :alt: Plugins Example
+
+
+Running the Example
+-------------------
+
+.. code-block:: shell
+
+ pyside6-qml examples/qml/tutorials/extending-qml/chapter6-plugins/app.qml -I examples/qml/tutorials/extending-qml/chapter6-plugins/Charts
diff --git a/examples/qml/tutorials/extending/chapter6-plugins/doc/plugins.png b/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/plugins.png
index 8992e89c0..8992e89c0 100644
--- a/examples/qml/tutorials/extending/chapter6-plugins/doc/plugins.png
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/plugins.png
Binary files differ
diff --git a/examples/qml/tutorials/extending/chapter6-plugins/doc/chapter6-plugins.rst b/examples/qml/tutorials/extending/chapter6-plugins/doc/chapter6-plugins.rst
deleted file mode 100644
index 10aba1e8f..000000000
--- a/examples/qml/tutorials/extending/chapter6-plugins/doc/chapter6-plugins.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-.. _qml-chapter6-plugins-example:
-
-Extending QML - Plugins Example
-===============================
-
-This example refers to the Python version of using a QML plugin in Python. The idea of plugins in
-Python is non-existent because Python modules are dynamically loaded anyway. We use this idea and
-our QML type registration decorators - QmlELement/QmlNamedElement - to register the QML modules as
-they are imported. The pyside6-qml tool does this for you by simply pointing to the .qml file.
-
-.. image:: plugins.png
- :width: 400
- :alt: Plugins Example
-
-
-Running the Example
--------------------
-
-.. code-block:: shell
-
- pyside6-pyqml examples/declarative/extending/chapter6-plugins/app.qml -I examples/declarative/extending/chapter6-plugins/Charts
diff --git a/examples/qml/usingmodel/doc/usingmodel.rst b/examples/qml/usingmodel/doc/usingmodel.rst
index 11b476d09..06a1b27b0 100644
--- a/examples/qml/usingmodel/doc/usingmodel.rst
+++ b/examples/qml/usingmodel/doc/usingmodel.rst
@@ -1,6 +1,8 @@
Using Model Example
===================
+.. tags:: Android
+
A Python application that demonstrates how to use a :ref:`QAbstractListModel`
with QML.
diff --git a/examples/qml/usingmodel/usingmodel.py b/examples/qml/usingmodel/usingmodel.py
index 6f8ea5a21..008a1b94b 100644
--- a/examples/qml/usingmodel/usingmodel.py
+++ b/examples/qml/usingmodel/usingmodel.py
@@ -2,24 +2,37 @@
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import os
+from dataclasses import dataclass
from pathlib import Path
import sys
from PySide6.QtCore import QAbstractListModel, Qt, QUrl, QByteArray
from PySide6.QtGui import QGuiApplication
from PySide6.QtQuick import QQuickView
-from PySide6.QtQml import qmlRegisterSingletonType
+from PySide6.QtQml import QmlElement, QmlSingleton
+QML_IMPORT_NAME = "PersonModel"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@dataclass
+class Person:
+ name: str
+ myrole: str
+
+
+@QmlElement
+@QmlSingleton
class PersonModel (QAbstractListModel):
MyRole = Qt.UserRole + 1
- def __init__(self, parent=None):
- QAbstractListModel.__init__(self, parent)
- self._data = []
+ def __init__(self, data, parent=None):
+ super().__init__(parent)
+ self._data = data
def roleNames(self):
roles = {
- PersonModel.MyRole: QByteArray(b'modelData'),
+ PersonModel.MyRole: QByteArray(b'myrole'),
Qt.DisplayRole: QByteArray(b'display')
}
return roles
@@ -29,26 +42,18 @@ class PersonModel (QAbstractListModel):
def data(self, index, role):
d = self._data[index.row()]
-
if role == Qt.DisplayRole:
- return d['name']
- elif role == Qt.DecorationRole:
+ return d.name
+ if role == Qt.DecorationRole:
return Qt.black
- elif role == PersonModel.MyRole:
- return d['myrole']
+ if role == PersonModel.MyRole:
+ return d.myrole
return None
- def populate(self, data=None):
- for item in data:
- self._data.append(item)
-
-
-def model_callback(engine):
- my_model = PersonModel()
- data = [{'name': 'Qt', 'myrole': 'role1'},
- {'name': 'PySide', 'myrole': 'role2'}]
- my_model.populate(data)
- return my_model
+ @staticmethod
+ def create(engine):
+ data = [Person('Qt', 'myrole'), Person('PySide', 'role2')]
+ return PersonModel(data)
if __name__ == '__main__':
@@ -56,7 +61,6 @@ if __name__ == '__main__':
view = QQuickView()
view.setResizeMode(QQuickView.SizeRootObjectToView)
- qmlRegisterSingletonType(PersonModel, "PersonModel", 1, 0, "MyModel", model_callback)
qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
view.setSource(QUrl.fromLocalFile(qml_file))
if view.status() == QQuickView.Error:
diff --git a/examples/qml/usingmodel/view.qml b/examples/qml/usingmodel/view.qml
index c5aa7e0fc..e8b1fb2fb 100644
--- a/examples/qml/usingmodel/view.qml
+++ b/examples/qml/usingmodel/view.qml
@@ -8,21 +8,13 @@ ListView {
width: 100
height: 100
anchors.fill: parent
- model: MyModel
+ model: PersonModel
delegate: Component {
Rectangle {
height: 25
width: 100
Text {
- function displayText() {
- var result = ""
- if (typeof display !== "undefined")
- result = display + ": "
- result += modelData
- return result
- }
-
- text: displayText()
+ text: display + ": " + myrole
}
}
}
diff --git a/examples/quick/models/objectlistmodel/doc/objectlistmodel.rst b/examples/quick/models/objectlistmodel/doc/objectlistmodel.rst
index d71ee61df..a4af62706 100644
--- a/examples/quick/models/objectlistmodel/doc/objectlistmodel.rst
+++ b/examples/quick/models/objectlistmodel/doc/objectlistmodel.rst
@@ -1,6 +1,8 @@
Object List Model Example
=========================
+.. tags:: Android
+
A list of QObject values can also be used as a model.
A list[QObject,] provides the properties of the objects in the list as roles.
diff --git a/examples/quick/models/objectlistmodel/objectlistmodel.py b/examples/quick/models/objectlistmodel/objectlistmodel.py
index 0843ae480..968761e5c 100644
--- a/examples/quick/models/objectlistmodel/objectlistmodel.py
+++ b/examples/quick/models/objectlistmodel/objectlistmodel.py
@@ -9,6 +9,7 @@ from PySide6.QtQuick import QQuickView
# This example illustrates exposing a list of QObjects as a model in QML
+
class DataObject(QObject):
nameChanged = Signal()
@@ -25,7 +26,7 @@ class DataObject(QObject):
def setName(self, name):
if name != self._name:
self._name = name
- nameChanged.emit()
+ self.nameChanged.emit()
def color(self):
return self._color
@@ -33,8 +34,7 @@ class DataObject(QObject):
def setColor(self, color):
if color != self._color:
self._color = color
- colorChanged.emit()
-
+ self.colorChanged.emit()
name = Property(str, name, setName, notify=nameChanged)
color = Property(str, color, setColor, notify=colorChanged)
diff --git a/examples/quick/models/stringlistmodel/doc/stringlistmodel.rst b/examples/quick/models/stringlistmodel/doc/stringlistmodel.rst
index 4c00ed130..ce11674b4 100644
--- a/examples/quick/models/stringlistmodel/doc/stringlistmodel.rst
+++ b/examples/quick/models/stringlistmodel/doc/stringlistmodel.rst
@@ -1,6 +1,8 @@
String List Model Example
=========================
+.. tags:: Android
+
A model may be a simple 'list',
which provides the contents of the list via the modelData role.
diff --git a/examples/quick/models/stringlistmodel/stringlistmodel.py b/examples/quick/models/stringlistmodel/stringlistmodel.py
index a7a1807bb..3982b1ffc 100644
--- a/examples/quick/models/stringlistmodel/stringlistmodel.py
+++ b/examples/quick/models/stringlistmodel/stringlistmodel.py
@@ -15,7 +15,7 @@ if __name__ == '__main__':
dataList = ["Item 1", "Item 2", "Item 3", "Item 4"]
view = QQuickView()
- view.setInitialProperties({"model": dataList })
+ view.setInitialProperties({"model": dataList})
qml_file = Path(__file__).parent / "view.qml"
view.setSource(QUrl.fromLocalFile(qml_file))
diff --git a/examples/quick/painteditem/doc/painteditem.rst b/examples/quick/painteditem/doc/painteditem.rst
index 6f12355ca..5c3e8935b 100644
--- a/examples/quick/painteditem/doc/painteditem.rst
+++ b/examples/quick/painteditem/doc/painteditem.rst
@@ -1,6 +1,8 @@
Scene Graph Painted Item Example
================================
+.. tags:: Android
+
Shows how to implement QPainter-based custom scenegraph items.
The Painted Item example shows how to use the QML Scene Graph framework to
diff --git a/examples/quick/painteditem/painteditem.py b/examples/quick/painteditem/painteditem.py
index 180e22943..cf5a05ada 100644
--- a/examples/quick/painteditem/painteditem.py
+++ b/examples/quick/painteditem/painteditem.py
@@ -1,12 +1,13 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+from argparse import ArgumentParser, RawTextHelpFormatter
from pathlib import Path
import sys
from PySide6.QtGui import QPainter, QBrush, QColor
from PySide6.QtWidgets import QApplication
-from PySide6.QtQml import QmlElement
+from PySide6.QtQml import QmlElement, QQmlDebuggingEnabler
from PySide6.QtCore import QUrl, Property, Signal, Qt, QPointF
from PySide6.QtQuick import QQuickPaintedItem, QQuickView
@@ -62,6 +63,13 @@ class TextBalloon(QQuickPaintedItem):
if __name__ == "__main__":
+ argument_parser = ArgumentParser(description="Scene Graph Painted Item Example",
+ formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("-qmljsdebugger", action="store",
+ help="Enable QML debugging")
+ options = argument_parser.parse_args()
+ if options.qmljsdebugger:
+ QQmlDebuggingEnabler.enableDebugging(True)
app = QApplication(sys.argv)
view = QQuickView()
view.setResizeMode(QQuickView.SizeRootObjectToView)
diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py b/examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py
index 4a3bf737c..69e7321f9 100644
--- a/examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py
+++ b/examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py
@@ -7,8 +7,7 @@ from OpenGL.GL import (GL_COLOR_BUFFER_BIT, GL_CULL_FACE, GL_CW,
GL_DEPTH_BUFFER_BIT, GL_DEPTH_TEST, GL_FALSE, GL_FLOAT,
GL_TEXTURE_2D, GL_TRIANGLES)
-from PySide6.QtGui import (QMatrix4x4, QOffscreenSurface, QOpenGLContext,
- QOpenGLFunctions, QWindow)
+from PySide6.QtGui import QMatrix4x4, QOpenGLContext
from PySide6.QtOpenGL import (QOpenGLBuffer, QOpenGLShader,
QOpenGLShaderProgram, QOpenGLVertexArrayObject)
from shiboken6 import VoidPtr
@@ -46,27 +45,27 @@ VERTEXES = numpy.array([-0.5, 0.5, 0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5,
-0.5, 0.5, -0.5, -0.5, -0.5, 0.5, -0.5, -0.5, -0.5,
-0.5, -0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5,
- 0.5, 0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5,
- -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, 0.5, 0.5, 0.5,
- -0.5, -0.5, -0.5, -0.5, -0.5, 0.5, 0.5, -0.5, -0.5,
- 0.5, -0.5, 0.5, 0.5, -0.5, -0.5, -0.5, -0.5, 0.5],
+ 0.5, 0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5,
+ -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, 0.5, 0.5, 0.5,
+ -0.5, -0.5, -0.5, -0.5, -0.5, 0.5, 0.5, -0.5, -0.5,
+ 0.5, -0.5, 0.5, 0.5, -0.5, -0.5, -0.5, -0.5, 0.5],
dtype=numpy.float32)
-TEX_COORDS = numpy.array([0.0, 0.0, 1.0, 1.0, 1.0, 0.0,
- 1.0, 1.0, 0.0, 0.0, 0.0, 1.0,
- 1.0, 1.0, 1.0, 0.0, 0.0, 1.0,
- 0.0, 0.0, 0.0, 1.0, 1.0, 0.0,
+TEX_COORDS = numpy.array([0.0, 0.0, 1.0, 1.0, 1.0, 0.0,
+ 1.0, 1.0, 0.0, 0.0, 0.0, 1.0,
+ 1.0, 1.0, 1.0, 0.0, 0.0, 1.0,
+ 0.0, 0.0, 0.0, 1.0, 1.0, 0.0,
- 1.0, 1.0, 1.0, 0.0, 0.0, 1.0,
- 0.0, 0.0, 0.0, 1.0, 1.0, 0.0,
- 0.0, 0.0, 1.0, 1.0, 1.0, 0.0,
- 1.0, 1.0, 0.0, 0.0, 0.0, 1.0,
+ 1.0, 1.0, 1.0, 0.0, 0.0, 1.0,
+ 0.0, 0.0, 0.0, 1.0, 1.0, 0.0,
+ 0.0, 0.0, 1.0, 1.0, 1.0, 0.0,
+ 1.0, 1.0, 0.0, 0.0, 0.0, 1.0,
- 0.0, 1.0, 1.0, 0.0, 1.0, 1.0,
- 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,
- 1.0, 0.0, 1.0, 1.0, 0.0, 0.0,
- 0.0, 1.0, 0.0, 0.0, 1.0, 1.0], dtype=numpy.float32)
+ 0.0, 1.0, 1.0, 0.0, 1.0, 1.0,
+ 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,
+ 1.0, 0.0, 1.0, 1.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0, 0.0, 1.0, 1.0], dtype=numpy.float32)
class CubeRenderer():
@@ -114,7 +113,6 @@ class CubeRenderer():
self.m_vao = QOpenGLVertexArrayObject()
self.m_vao.create()
- vaoBinder = QOpenGLVertexArrayObject.Binder(self.m_vao)
self.m_vbo = QOpenGLBuffer()
self.m_vbo.create()
@@ -167,7 +165,6 @@ class CubeRenderer():
f.glEnable(GL_DEPTH_TEST)
self.m_program.bind()
- vaoBinder = QOpenGLVertexArrayObject.Binder(self.m_vao)
# If VAOs are not supported, set the vertex attributes every time.
if not self.m_vao.isCreated():
self.setupVertexAttribs()
diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/demo.qml b/examples/quick/rendercontrol/rendercontrol_opengl/demo.qml
index 185c52c5f..00f6a81e9 100644
--- a/examples/quick/rendercontrol/rendercontrol_opengl/demo.qml
+++ b/examples/quick/rendercontrol/rendercontrol_opengl/demo.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQuick 2.0
+import QtQuick
import QtQuick.Particles 2.0
Rectangle {
diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py b/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py
index 164d6a08c..6f1e61f94 100644
--- a/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py
+++ b/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py
@@ -3,20 +3,17 @@
import numpy
from pathlib import Path
-import sys
import weakref
from OpenGL.GL import (GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER,
GL_NEAREST, GL_RGBA, GL_TEXTURE_2D, GL_UNSIGNED_BYTE)
-from PySide6.QtGui import (QMatrix4x4, QMouseEvent, QOffscreenSurface,
- QOpenGLContext, QOpenGLFunctions, QScreen, QSurface,
+from PySide6.QtGui import (QMouseEvent, QOffscreenSurface,
+ QOpenGLContext, QSurface,
QSurfaceFormat, QWindow)
-from PySide6.QtOpenGL import (QOpenGLFramebufferObject, QOpenGLTexture,
- QOpenGLShaderProgram, QOpenGLVertexArrayObject,
- QOpenGLBuffer)
+from PySide6.QtOpenGL import QOpenGLFramebufferObject
from PySide6.QtQml import QQmlComponent, QQmlEngine
from PySide6.QtQuick import (QQuickGraphicsDevice,
- QQuickItem, QQuickRenderControl,
+ QQuickRenderControl,
QQuickRenderTarget, QQuickWindow)
from PySide6.QtCore import QCoreApplication, QTimer, QUrl, Slot
from shiboken6 import VoidPtr
@@ -250,7 +247,7 @@ class WindowSingleThreaded(QWindow):
# If self is a resize after the scene is up and running, recreate the
# texture and the Quick item and scene.
if (self.texture_id()
- and self.m_textureSize != self.size() * self.devicePixelRatio()):
+ and self.m_textureSize != self.size() * self.devicePixelRatio()):
self.resizeTexture()
@Slot()
diff --git a/examples/quick/scenegraph/openglunderqml/main.py b/examples/quick/scenegraph/openglunderqml/main.py
index a79d1bed8..0e24877bd 100644
--- a/examples/quick/scenegraph/openglunderqml/main.py
+++ b/examples/quick/scenegraph/openglunderqml/main.py
@@ -8,7 +8,7 @@ from PySide6.QtCore import QUrl
from PySide6.QtGui import QGuiApplication
from PySide6.QtQuick import QQuickView, QQuickWindow, QSGRendererInterface
-from squircle import Squircle
+from squircle import Squircle # noqa: F401
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
diff --git a/examples/quick/scenegraph/openglunderqml/squirclerenderer.py b/examples/quick/scenegraph/openglunderqml/squirclerenderer.py
index 5d1759251..d824f96ab 100644
--- a/examples/quick/scenegraph/openglunderqml/squirclerenderer.py
+++ b/examples/quick/scenegraph/openglunderqml/squirclerenderer.py
@@ -8,8 +8,7 @@ from OpenGL.GL import (GL_ARRAY_BUFFER, GL_BLEND, GL_DEPTH_TEST, GL_FLOAT,
GL_ONE, GL_SRC_ALPHA, GL_TRIANGLE_STRIP)
from PySide6.QtCore import QSize, Slot
from PySide6.QtGui import QOpenGLFunctions
-from PySide6.QtOpenGL import (QOpenGLShader, QOpenGLShaderProgram,
- QOpenGLVersionProfile)
+from PySide6.QtOpenGL import QOpenGLShader, QOpenGLShaderProgram
from PySide6.QtQuick import QQuickWindow, QSGRendererInterface
VERTEX_SHADER = dedent(
diff --git a/examples/quick/scenegraph/scenegraph_customgeometry/doc/scenegraph_customgeometry.rst b/examples/quick/scenegraph/scenegraph_customgeometry/doc/scenegraph_customgeometry.rst
new file mode 100644
index 000000000..190ab80c2
--- /dev/null
+++ b/examples/quick/scenegraph/scenegraph_customgeometry/doc/scenegraph_customgeometry.rst
@@ -0,0 +1,7 @@
+Scene Graph - Custom Geometry
+=============================
+
+The custom geometry example shows how to create a QQuickItem which uses the
+scene graph API to build a custom geometry for the scene graph. It does this
+by creating a BezierCurve item which is made part of the CustomGeometry module
+and makes use of this in a QML file.
diff --git a/examples/quick/scenegraph/scenegraph_customgeometry/main.py b/examples/quick/scenegraph/scenegraph_customgeometry/main.py
new file mode 100644
index 000000000..60a904065
--- /dev/null
+++ b/examples/quick/scenegraph/scenegraph_customgeometry/main.py
@@ -0,0 +1,152 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt Quick customgeometry example from Qt v6.x"""
+
+import sys
+from pathlib import Path
+
+from PySide6.QtQuick import (QQuickView, QQuickItem, QSGNode, QSGGeometryNode,
+ QSGGeometry, QSGFlatColorMaterial)
+from PySide6.QtQml import QmlElement
+from PySide6.QtGui import QGuiApplication, QColor
+from PySide6.QtCore import (QPointF, QUrl, Property, Signal, Slot)
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "CustomGeometry"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BezierCurve(QQuickItem):
+ p1Changed = Signal()
+ p2Changed = Signal()
+ p3Changed = Signal()
+ p4Changed = Signal()
+ segmentCountChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._p1 = QPointF(0, 0)
+ self._p2 = QPointF(1, 0)
+ self._p3 = QPointF(0, 1)
+ self._p4 = QPointF(1, 1)
+ self._segmentCount = 32
+
+ self._node = None
+ self._geometry = None
+ self.setFlag(QQuickItem.Flags.ItemHasContents, True)
+
+ def p1(self):
+ return self._p1
+
+ def p2(self):
+ return self._p2
+
+ def p3(self):
+ return self._p3
+
+ def p4(self):
+ return self._p4
+
+ def segmentCount(self):
+ return self._segmentCount
+
+ @Slot(QPointF)
+ def setP1(self, p):
+ if p != self._p1:
+ self._p1 = p
+ self.p1Changed.emit()
+ self.update()
+
+ @Slot(QPointF)
+ def setP2(self, p):
+ if p != self._p2:
+ self._p2 = p
+ self.p2Changed.emit()
+ self.update()
+
+ @Slot(QPointF)
+ def setP3(self, p):
+ if p != self._p3:
+ self._p3 = p
+ self.p3Changed.emit()
+ self.update()
+
+ @Slot(QPointF)
+ def setP4(self, p):
+ if p != self._p4:
+ self._p4 = p
+ self.p4Changed.emit()
+ self.update()
+
+ @Slot(int)
+ def setSegmentCount(self, p):
+ if p != self._segmentCount:
+ self._segmentCount = p
+ self.segmentCountChanged.emit()
+ self.update()
+
+ def updatePaintNode(self, oldNode, updatePaintNodeData):
+ self._node = oldNode
+ if not self._node:
+ self._default_attributes = QSGGeometry.defaultAttributes_Point2D()
+ self._geometry = QSGGeometry(self._default_attributes, self._segmentCount)
+ self._geometry.setLineWidth(2)
+ self._geometry.setDrawingMode(QSGGeometry.DrawingMode.DrawLineStrip)
+
+ self._node = QSGGeometryNode()
+ self._node.setGeometry(self._geometry)
+ self._node.setFlag(QSGNode.Flags.OwnsGeometry)
+ self._material = QSGFlatColorMaterial()
+ self._material.setColor(QColor(255, 0, 0))
+ self._node.setMaterial(self._material)
+ self._node.setFlag(QSGNode.Flags.OwnsMaterial)
+ else:
+ self._geometry = self._node.geometry()
+ self._geometry.allocate(self._segmentCount)
+
+ item_size = self.size()
+ item_width = float(item_size.width())
+ item_height = float(item_size.height())
+ vertices = self._geometry.vertexDataAsPoint2D()
+ for i in range(self._segmentCount):
+ t = float(i) / float(self._segmentCount - 1)
+ inv_t = 1 - t
+ pos = ((inv_t * inv_t * inv_t * self._p1)
+ + (3 * inv_t * inv_t * t * self._p2)
+ + (3 * inv_t * t * t * self._p3)
+ + (t * t * t * self._p4))
+ vertices[i].set(pos.x() * item_width, pos.y() * item_height)
+
+ self._geometry.setVertexDataAsPoint2D(vertices)
+
+ self._node.markDirty(QSGNode.DirtyGeometry)
+ return self._node
+
+ p1 = Property(QPointF, p1, setP1, notify=p1Changed)
+ p2 = Property(QPointF, p2, setP2, notify=p2Changed)
+ p3 = Property(QPointF, p3, setP3, notify=p3Changed)
+ p4 = Property(QPointF, p4, setP4, notify=p4Changed)
+
+ segmentCount = Property(int, segmentCount, setSegmentCount,
+ notify=segmentCountChanged)
+
+
+if __name__ == "__main__":
+ app = QGuiApplication([])
+ view = QQuickView()
+ format = view.format()
+ format.setSamples(16)
+ view.setFormat(format)
+
+ qml_file = Path(__file__).parent / "main.qml"
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if not view.rootObject():
+ sys.exit(-1)
+ view.show()
+ ex = app.exec()
+ del view
+ sys.exit(ex)
diff --git a/examples/quick/scenegraph/scenegraph_customgeometry/main.qml b/examples/quick/scenegraph/scenegraph_customgeometry/main.qml
new file mode 100644
index 000000000..88431a176
--- /dev/null
+++ b/examples/quick/scenegraph/scenegraph_customgeometry/main.qml
@@ -0,0 +1,34 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import CustomGeometry
+
+Item {
+ width: 300
+ height: 200
+
+ BezierCurve {
+ id: line
+ anchors.fill: parent
+ anchors.margins: 20
+ property real t
+ SequentialAnimation on t {
+ NumberAnimation { to: 1; duration: 2000; easing.type: Easing.InOutQuad }
+ NumberAnimation { to: 0; duration: 2000; easing.type: Easing.InOutQuad }
+ loops: Animation.Infinite
+ }
+
+ p2: Qt.point(t, 1 - t)
+ p3: Qt.point(1 - t, t)
+ }
+
+ Text {
+ anchors.bottom: line.bottom
+ x: 20
+ width: parent.width - 40
+ wrapMode: Text.WordWrap
+
+ text: "This curve is a custom scene graph item, implemented using GL_LINE_STRIP"
+ }
+}
diff --git a/examples/quick/scenegraph/scenegraph_customgeometry/scenegraph_customgeometry.pyproject b/examples/quick/scenegraph/scenegraph_customgeometry/scenegraph_customgeometry.pyproject
new file mode 100644
index 000000000..a5247ef6c
--- /dev/null
+++ b/examples/quick/scenegraph/scenegraph_customgeometry/scenegraph_customgeometry.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py","main.qml"]
+}
diff --git a/examples/quick/shared/Button.qml b/examples/quick/shared/Button.qml
index bee0ae28e..2d4797a96 100644
--- a/examples/quick/shared/Button.qml
+++ b/examples/quick/shared/Button.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQuick 2.12
+import QtQuick
import QtQuick.Window 2.1
Item {
diff --git a/examples/quick/shared/CheckBox.qml b/examples/quick/shared/CheckBox.qml
index ed93d708d..45c4f4e67 100644
--- a/examples/quick/shared/CheckBox.qml
+++ b/examples/quick/shared/CheckBox.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQuick 2.12
+import QtQuick
Item {
id: root
diff --git a/examples/quick/shared/FlickrRssModel.qml b/examples/quick/shared/FlickrRssModel.qml
index 66f53b8ef..e78d1ffa2 100644
--- a/examples/quick/shared/FlickrRssModel.qml
+++ b/examples/quick/shared/FlickrRssModel.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQuick 2.12
+import QtQuick
ListModel {
id: flickrImages
diff --git a/examples/quick/shared/Label.qml b/examples/quick/shared/Label.qml
index 77ec53f5c..5393336ca 100644
--- a/examples/quick/shared/Label.qml
+++ b/examples/quick/shared/Label.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQuick 2.0
+import QtQuick
Text {
SystemPalette { id: palette }
diff --git a/examples/quick/shared/LauncherList.qml b/examples/quick/shared/LauncherList.qml
index 323ed529f..ff383e4e4 100644
--- a/examples/quick/shared/LauncherList.qml
+++ b/examples/quick/shared/LauncherList.qml
@@ -2,9 +2,9 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQml 2.12
+import QtQml
import QtQml.Models 2.12
-import QtQuick 2.12
+import QtQuick
Rectangle {
id: root
diff --git a/examples/quick/shared/SimpleLauncherDelegate.qml b/examples/quick/shared/SimpleLauncherDelegate.qml
index 68860edbc..c6ca9802d 100644
--- a/examples/quick/shared/SimpleLauncherDelegate.qml
+++ b/examples/quick/shared/SimpleLauncherDelegate.qml
@@ -1,6 +1,6 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQuick 2.12
+import QtQuick
Rectangle {
id: container
diff --git a/examples/quick/shared/Slider.qml b/examples/quick/shared/Slider.qml
index 7b331ab1c..b8bb6ed30 100644
--- a/examples/quick/shared/Slider.qml
+++ b/examples/quick/shared/Slider.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQuick 2.12
+import QtQuick
Item {
id: slider
diff --git a/examples/quick/shared/TabSet.qml b/examples/quick/shared/TabSet.qml
index 633521af8..e78880b91 100644
--- a/examples/quick/shared/TabSet.qml
+++ b/examples/quick/shared/TabSet.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQuick 2.12
+import QtQuick
import QtQuick.Window 2.1
Item {
diff --git a/examples/quick/shared/TextField.qml b/examples/quick/shared/TextField.qml
index 01addb2e9..66854c89b 100644
--- a/examples/quick/shared/TextField.qml
+++ b/examples/quick/shared/TextField.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import QtQuick 2.1
+import QtQuick
Item {
id: root
diff --git a/examples/quick/shared/images/qt-logo.png b/examples/quick/shared/images/qt-logo.png
index 30c621c9c..a3e793b87 100644
--- a/examples/quick/shared/images/qt-logo.png
+++ b/examples/quick/shared/images/qt-logo.png
Binary files differ
diff --git a/examples/quick/shared/shared_rc.py b/examples/quick/shared/shared_rc.py
index 97e5ecb87..14a9da5b9 100644
--- a/examples/quick/shared/shared_rc.py
+++ b/examples/quick/shared/shared_rc.py
@@ -6,1035 +6,942 @@
from PySide6 import QtCore
qt_resource_data = b"\
-\x00\x00\x06\x9b\
+\x00\x00\x06\xd1\
/\
/ Copyright (C) \
2017 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0a\x0ai\
-mport QtQuick 2.\
-12\x0a\x0aItem {\x0a i\
-d: root\x0a impl\
-icitHeight: fram\
-e.height\x0a imp\
-licitWidth: row.\
-implicitWidth\x0a \
- width: implici\
-tWidth\x0a heigh\
-t: implicitHeigh\
-t\x0a property a\
-lias text: label\
-.text\x0a proper\
-ty bool checked\x0a\
- property ali\
-as pressed: tapH\
-andler.pressed\x0a \
- property alia\
-s row: row\x0a s\
-ignal clicked\x0a\x0a \
- SystemPalette\
- { id: palette }\
-\x0a\x0a Row {\x0a \
- id: row\x0a \
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0a\x0d\x0aItem {\x0d\x0a \
+id: root\x0d\x0a im\
+plicitHeight: fr\
+ame.height\x0d\x0a \
+implicitWidth: r\
+ow.implicitWidth\
+\x0d\x0a width: imp\
+licitWidth\x0d\x0a \
+height: implicit\
+Height\x0d\x0a prop\
+erty alias text:\
+ label.text\x0d\x0a \
+ property bool c\
+hecked\x0d\x0a prop\
+erty alias press\
+ed: tapHandler.p\
+ressed\x0d\x0a prop\
+erty alias row: \
+row\x0d\x0a signal \
+clicked\x0d\x0a\x0d\x0a S\
+ystemPalette { i\
+d: palette }\x0d\x0a\x0d\x0a\
+ Row {\x0d\x0a \
+ id: row\x0d\x0a \
anchors.vert\
icalCenter: pare\
nt.verticalCente\
-r\x0a spacin\
-g: 6\x0a Rec\
-tangle {\x0a \
- id: frame\x0a \
- gradi\
-ent: Gradient {\x0a\
- \
-GradientStop { p\
-osition: 0.0; co\
-lor: tapHandler.\
-pressed ? Qt.dar\
-ker(palette.butt\
-on, 1.3) : palet\
-te.button }\x0a \
- Grad\
-ientStop { posit\
-ion: 1.0; color:\
- Qt.darker(palet\
-te.button, 1.3) \
-}\x0a }\x0a\
- heig\
-ht: label.implic\
-itHeight * 1.5\x0a \
- width\
-: height\x0a \
- anchors.mar\
-gins: 1\x0a \
- radius: 3\x0a \
- antial\
-iasing: true\x0a \
- border.\
+r\x0d\x0a spaci\
+ng: 6\x0d\x0a R\
+ectangle {\x0d\x0a \
+ id: fram\
+e\x0d\x0a g\
+radient: Gradien\
+t {\x0d\x0a \
+ GradientSto\
+p { position: 0.\
+0; color: tapHan\
+dler.pressed ? Q\
+t.darker(palette\
+.button, 1.3) : \
+palette.button }\
+\x0d\x0a \
+ GradientStop {\
+ position: 1.0; \
color: Qt.darker\
(palette.button,\
- 1.5)\x0a \
- Image {\x0a \
- id: th\
-eX\x0a \
+ 1.3) }\x0d\x0a \
+ }\x0d\x0a \
+ height: labe\
+l.implicitHeight\
+ * 1.5\x0d\x0a \
+ width: heigh\
+t\x0d\x0a a\
+nchors.margins: \
+1\x0d\x0a r\
+adius: 3\x0d\x0a \
+ antialiasi\
+ng: true\x0d\x0a \
+ border.col\
+or: Qt.darker(pa\
+lette.button, 1.\
+5)\x0d\x0a \
+Image {\x0d\x0a \
+ id: the\
+X\x0d\x0a \
source: \x22imag\
es/checkmark.png\
-\x22\x0a \
- anchors.fill: \
-frame\x0a \
- anchors.ma\
-rgins: frame.wid\
-th / 5\x0a \
- fillMode:\
- Image.PreserveA\
-spectFit\x0a \
- smooth:\
- true\x0a \
- visible: r\
-oot.checked\x0a \
- }\x0a \
- }\x0a Text\
- {\x0a i\
-d: label\x0a \
- color: pale\
-tte.text\x0a \
- anchors.ver\
-ticalCenter: fra\
-me.verticalCente\
-r\x0a }\x0a \
-}\x0a TapHandler\
- {\x0a id: t\
-apHandler\x0a \
- onTapped: {\x0a \
- parent\
-.checked = !pare\
-nt.checked\x0a \
- parent.cl\
-icked()\x0a \
-}\x0a }\x0a}\x0a\
-\x00\x00\x04\x1c\
+\x22\x0d\x0a \
+ anchors.fill:\
+ frame\x0d\x0a \
+ anchors.\
+margins: frame.w\
+idth / 5\x0d\x0a \
+ fillMo\
+de: Image.Preser\
+veAspectFit\x0d\x0a \
+ smo\
+oth: true\x0d\x0a \
+ visib\
+le: root.checked\
+\x0d\x0a }\x0d\
+\x0a }\x0d\x0a \
+ Text {\x0d\x0a \
+ id: labe\
+l\x0d\x0a c\
+olor: palette.te\
+xt\x0d\x0a \
+anchors.vertical\
+Center: frame.ve\
+rticalCenter\x0d\x0a \
+ }\x0d\x0a }\x0d\x0a\
+ TapHandler {\
+\x0d\x0a id: ta\
+pHandler\x0d\x0a \
+ onTapped: {\x0d\x0a \
+ paren\
+t.checked = !par\
+ent.checked\x0d\x0a \
+ parent.\
+clicked()\x0d\x0a \
+ }\x0d\x0a }\x0d\x0a}\x0d\x0a\
+\
+\x00\x00\x04C\
/\
/ Copyright (C) \
2017 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0a\x0ai\
-mport QtQuick 2.\
-1\x0a\x0aItem {\x0a id\
-: root\x0a\x0a prop\
-erty alias textI\
-nput: textInput\x0a\
- property ali\
-as text: textInp\
-ut.text\x0a sign\
-al accepted\x0a \
-signal downPress\
-ed\x0a implicitW\
-idth: textInput.\
-implicitWidth + \
-rect.radius * 2\x0a\
- implicitHeig\
-ht: textInput.im\
-plicitHeight\x0a\x0a \
- function copyA\
-ll() {\x0a t\
-extInput.selectA\
-ll()\x0a tex\
-tInput.copy()\x0a \
- }\x0a\x0a SystemP\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0a\x0d\x0aItem {\x0d\x0a \
+id: root\x0d\x0a\x0d\x0a \
+property alias t\
+extInput: textIn\
+put\x0d\x0a propert\
+y alias text: te\
+xtInput.text\x0d\x0a \
+ signal accepte\
+d\x0d\x0a signal do\
+wnPressed\x0d\x0a i\
+mplicitWidth: te\
+xtInput.implicit\
+Width + rect.rad\
+ius * 2\x0d\x0a imp\
+licitHeight: tex\
+tInput.implicitH\
+eight\x0d\x0a\x0d\x0a fun\
+ction copyAll() \
+{\x0d\x0a textI\
+nput.selectAll()\
+\x0d\x0a textIn\
+put.copy()\x0d\x0a \
+}\x0d\x0a\x0d\x0a SystemP\
alette { id: pal\
-ette }\x0a heigh\
-t: textInput.imp\
-licitHeight + 8\x0a\
- clip: true\x0a\x0a\
- Rectangle {\x0a\
- id: rect\
-\x0a anchors\
-.fill: parent\x0a \
- radius: he\
-ight / 4\x0a \
- color: palette.\
-button\x0a b\
-order.color: Qt.\
-darker(palette.b\
-utton, 1.5)\x0a \
-}\x0a\x0a TextInput\
- {\x0a id: t\
-extInput\x0a \
- color: palette.\
-text\x0a anc\
-hors.fill: paren\
-t\x0a anchor\
+ette }\x0d\x0a heig\
+ht: textInput.im\
+plicitHeight + 8\
+\x0d\x0a clip: true\
+\x0d\x0a\x0d\x0a Rectangl\
+e {\x0d\x0a id:\
+ rect\x0d\x0a a\
+nchors.fill: par\
+ent\x0d\x0a rad\
+ius: height / 4\x0d\
+\x0a color: \
+palette.button\x0d\x0a\
+ border.c\
+olor: Qt.darker(\
+palette.button, \
+1.5)\x0d\x0a }\x0d\x0a\x0d\x0a \
+ TextInput {\x0d\x0a\
+ id: text\
+Input\x0d\x0a c\
+olor: palette.te\
+xt\x0d\x0a anch\
+ors.fill: parent\
+\x0d\x0a anchor\
s.leftMargin: re\
-ct.radius\x0a \
- anchors.rightM\
-argin: rect.radi\
-us\x0a verti\
-calAlignment: Te\
-xt.AlignVCenter\x0a\
- onAccept\
-ed: root.accepte\
-d()\x0a Keys\
-.onDownPressed: \
-root.downPressed\
-()\x0a }\x0a}\x0a\
-\x00\x00\x00\xc7\
-/\
-/ Copyright (C) \
-2017 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0a\x0ai\
-mport QtQuick 2.\
-0\x0a\x0aText {\x0a Sy\
-stemPalette { id\
-: palette }\x0a \
-color: palette.t\
-ext\x0a}\x0a\
-\x00\x00\x0ax\
+ct.radius\x0d\x0a \
+ anchors.right\
+Margin: rect.rad\
+ius\x0d\x0a ver\
+ticalAlignment: \
+Text.AlignVCente\
+r\x0d\x0a onAcc\
+epted: root.acce\
+pted()\x0d\x0a \
+Keys.onDownPress\
+ed: root.downPre\
+ssed()\x0d\x0a }\x0d\x0a}\
+\x0d\x0a\
+\x00\x00\x00\xcc\
/\
/ Copyright (C) \
2017 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0aim\
-port QtQuick 2.1\
-2\x0a\x0aRectangle {\x0a \
- id: container\
-\x0a required pr\
-operty string na\
-me\x0a required \
-property string \
-description\x0a\x0a \
- property Item e\
-xampleItem\x0a w\
-idth: ListView.v\
-iew.width\x0a he\
-ight: button.imp\
-licitHeight + 22\
-\x0a\x0a signal cli\
-cked()\x0a\x0a grad\
-ient: Gradient {\
-\x0a Gradien\
-tStop {\x0a \
- position: 0\x0a\
- Beha\
-vior on color {C\
-olorAnimation { \
-duration: 100 }}\
-\x0a col\
-or: tapHandler.p\
-ressed ? \x22#e0e0e\
-0\x22 : \x22#fff\x22\x0a \
- }\x0a Gr\
-adientStop {\x0a \
- positio\
-n: 1\x0a \
- Behavior on col\
-or {ColorAnimati\
-on { duration: 1\
-00 }}\x0a \
- color: tapHand\
-ler.pressed ? \x22#\
-e0e0e0\x22 : button\
-.containsMouse ?\
- \x22#f5f5f5\x22 : \x22#e\
-ee\x22\x0a }\x0a \
- }\x0a\x0a Image {\
-\x0a id: ima\
-ge\x0a opaci\
-ty: 0.7\x0a \
-Behavior on opac\
-ity {NumberAnima\
-tion {duration: \
-100}}\x0a so\
-urce: \x22images/ne\
-xt.png\x22\x0a \
-anchors.vertical\
-Center: parent.v\
-erticalCenter\x0a \
- anchors.ri\
-ght: parent.righ\
-t\x0a anchor\
-s.rightMargin: 1\
-6\x0a }\x0a\x0a Ite\
-m {\x0a id: \
-button\x0a a\
-nchors.top: pare\
-nt.top\x0a a\
-nchors.left: par\
-ent.left\x0a \
- anchors.bottom:\
- parent.bottom\x0a \
- anchors.r\
-ight:image.left\x0a\
- implicit\
-Height: col.heig\
-ht\x0a heigh\
-t: implicitHeigh\
-t\x0a width:\
- buttonLabel.wid\
-th + 20\x0a \
-property alias c\
-ontainsMouse: ho\
-verHandler.hover\
-ed\x0a\x0a TapH\
-andler {\x0a \
- id: tapHand\
-ler\x0a \
-onTapped: contai\
-ner.clicked()\x0a \
- }\x0a \
-HoverHandler {\x0a \
- id: h\
-overHandler\x0a \
- }\x0a\x0a C\
-olumn {\x0a \
- spacing: 2\x0a \
- id: c\
-ol\x0a a\
-nchors.verticalC\
-enter: parent.ve\
-rticalCenter\x0a \
- width: \
-parent.width\x0a \
- Text {\x0a\
- \
-id: buttonLabel\x0a\
- \
-anchors.left: pa\
-rent.left\x0a \
- anchor\
-s.leftMargin: 10\
-\x0a \
- anchors.right: \
-parent.right\x0a \
- anc\
-hors.rightMargin\
-: 10\x0a \
- text: conta\
-iner.name\x0a \
- color:\
- \x22black\x22\x0a \
- font.pi\
-xelSize: 22\x0a \
- wrap\
-Mode: Text.WrapA\
-tWordBoundaryOrA\
-nywhere\x0a \
- styleCol\
-or: \x22white\x22\x0a \
- styl\
-e: Text.Raised\x0a\x0a\
- }\x0a \
- Text {\
-\x0a \
- id: buttonLabel\
-2\x0a \
- anchors.left: \
-parent.left\x0a \
- anch\
-ors.leftMargin: \
-10\x0a \
- text: contain\
-er.description\x0a \
- w\
-rapMode: Text.Wr\
-apAtWordBoundary\
-OrAnywhere\x0a \
- color\
-: \x22#666\x22\x0a \
- font.pi\
-xelSize: 12\x0a \
- }\x0a \
- }\x0a }\x0a\x0a R\
-ectangle {\x0a \
- height: 1\x0a \
- color: \x22#cc\
-c\x22\x0a ancho\
-rs.bottom: paren\
-t.bottom\x0a \
- anchors.left: p\
-arent.left\x0a \
- anchors.right\
-: parent.right\x0a \
- }\x0a}\x0a\
-\x00\x00\x05\xac\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0a\x0d\x0aText {\x0d\x0a \
+SystemPalette { \
+id: palette }\x0d\x0a \
+ color: palett\
+e.text\x0d\x0a}\x0d\x0a\
+\x00\x00\x039\
+\x00\
+\x00\x0a\xd3x\xda\xc5VYO\xdb@\x10~\x8f\x94\xff\
+0\x0a/\xa0*\xceQ5H~\xa9 H\x05\x09J\
+9T\xfa\xba\xb1'\xf6\x0a{\xd7\xdd]\x13R\xc4\x7f\
+\xef\xac\x8f\xf8J(\xa0\xaauP\xd8\x9d\xf9fw\x8e\
+o\xc6\x19\x8d`.\x93\xb5\xe2Ah`\x7f~\x00\xd3\
+\xf1\xe4\x10nC\x84+C\x9a8ab\x0d\xe7\xc6w\
+\xfa\xbd\xd1\x08n\xbe\x9d\xfc\x18\x9es\x0f\x85\xc6\xe1\x99\
+\x8f\xc2\xf0%G\xe5B!\xbb\xc6\xe5\xf0\xca\x0c\xc9.\
+F\xe5q\x16\xc1\xe55\x1c\xdf\x9c\x0c?\x0e\xe7\x11K\
+5\xf6{<N\xa42t\xfaU\xca\xbd\xfb~\xaf\xdf\
+\xbbF\xcf0\x11D\x08O\xfd\x1e\xd0\xc3}\x17<)\
+\x0c\xe3\x02U.R\xf83\xe5\x0a}H\x94LP\x99\
+5h\xa3\xb8\x08@\xb0\x18\xff\x00\xf1Q{\x8a'\x86\
+Ka\xaf\xb3\xd8\x0d\xe4\xcc`\x0c\xf8\xc8\xe2$B\xbb\
+\xce\xd5+\xee\x9b\xd0\x06\xa5\xcdw\x8e+\xe7\xc1~e\
+\xc2\x5c\x1f\xa2M\x97\x0b\x8b\xd4\x18)\x1c\x0a)\xe2\x1e\
+7\xa7\x99\x18>\xc0tZ^\xa4y (\x0b\x1e\xe9\
+\xef\xd1\xdf?(\xe5\x81b>\xa7\xf4\xb9\xf0\xa5X\x95\
+\xc1\xdb\xa7\x94\xdd\x18\x99\xd4\xe5\x99\xebRs\x1b\x8a\x0b\
+\xe3\xa6\xe2\x18C\xf6\xc0\xa5\x02)({\x11-\x9e\xe6\
+\xf6\xdf\x91\xe01\xb3\x16\xf0\x04~\xaaXn<\x19\x8f\
+\xe1\xf9\xb9yBf\xe5\x82a\xc9)\x13~\x84\xcaI\
+\x14jM)\xfd\x0c\x83=\x1c\xdb\xcf\x00\x5cZ/\x97\
+\xcbAe\xfb\xfcV\xcf'\xff\xcb\xf3\xa2`\x05\xb9\xf4\
+\x85$Jf\x90\xe5'\xfb\xc9\x83C\xc4np\xcfe\
+\xe5\xceb\x16`=4\xcbVn\x85\x95H&\x8c\xe8\
+\xb0\xa6\x129\x87\x95\xb4\x1ef\x81\x80\xa7\xafi\xbc\xc0\
+z\xa4\x8d@\xebqj\x99*\x0f\xc9\xc1\xec2=\x12\
+\xf8h\x9cD\x045_\x99\xf0B\xa9\xb4\xf3@\xdc\xe6\
+\x1e\x8b\xe6T\x09\xdb\x9d\x09S\xb4j\x89\xbbf*g\
+u\x81\xcev;@\x17L\x05\xdc\xba8kg\xc7\xf6\
+S+9y\xd2\xbb'\x11E6\x97\xd1\xba\x0b\x88p\
+Y\xb9c7]\xc8B\xd2\xd9\xf1\x06\x94owE\x96\
+%\xaeuP\xb3w\xed\xdc\x89\x9c\xbc\xbd+L\xd9\xee\
+Ml\xa5/\xc6E\x1e\xe79[`\x94\x0f\x0b;\x09\
+jM\xba\x19:,\xe2LC\x83\x84.\x84\x92\xcaS\
+\xb27\xdb\xa0_f\xd5>\xb7\x1bn\xb7\xfb\xca\xe6\xb8\
+b~S'\x05\xd9%X\x1f\xa8Nm\x18m\xe9\xe0\
+\xd3\x9a\x1f\xdbn\xaa\xfb\xd98\xa0\xdaP\xf3\xa6\xb1h\
+\x1bkKy\x11\xb80\xed\x1eJYo\x0a\xdf\xc9\xe4\
+Z5\x0admjo2I\x8d\xd3v\xae\xc9\xd5\xac\
+\x86]\xc0+x\xb9\x0d\xbai\x96\xf1n\xdc\x8b\xad\xf7\
+r\x0bn9\xd5P\x84\xf5\x8aW/\xc9-Cs\xb0\
+\x88\x98w?\xe8\xea\x97d\xef$\xfc\x11\xa3\x1b\xfe\x8b\
+\x18:\x9dv1+\xc5\x92\x0b\xe9\x93\xd6f\xd5\xb9\xa3\
+\xed\x91\xb9\x93\xca?\x96\xa9\xf0\x99Z_\xd2l[\xaf\
+Bbs\xd7X\x9bu\x84\xf3\xc2\x8bU\xc8\x0d\x0ev\
+\x80\x8a\xe3\xaf\x19\xd7\xcd\xaeh\x91\xf7\x0d\xe5\x9d\xfe\x93\
+\xfa\xb6+\xd1\xf8-\xf2W\x93YVso6\x9b\xbd\
+\xa2\x98\x93\xe9\xce$\xb6\xdfx\x9d\xdfg\xf5\x99X{\
+\x95o<\xf0<o\xf0\xeeQ\xfd\x8a\xa1\xbf\xb3Y\xc8\
+e\xfa\xfb\x0d5\xf4\xfb\x95\
+\x00\x00\x05\xa1\
\x00\
-\x00\x16\xecx\x9c\xd5\x18ko\xdb6\xf0\xbb\x7f\x05\xa1\
-~q\xd0X\xb2\x9d\xee\x01om\x97\xbaE\x17 ]\
-\x93\xba\x1b\x06\x0c\xfb@K'\x9b\xabD\xaa\x14\x9d4\
-\x08\xfc\xdfwG\x89\xaai\xc9\x8f\xb6\xeb\x80\x1e\x90X\
-<\xde\x1d\xef\xad\xa3\xa2\x88MUq\xa7\xc5biX\
-\x7fz\xc2\xc6\xc3\xd1\x0fl\xaaE^*\xc9\xceg\xec\
-g!S\xf5K\x5c!B\xa9\x9e\xf4\xa2N\x96\xb7K\
-`\xd7\x06w\xf2\x82\xcb;vi\x92\x90(gW\xcf\
-\xff\x1c\x5c\x8a\x18d\x09\x83\x8b\x04\xa4\x11\xa9\x00=a\
-5\xee\x0d\xa4\x83k3@\xb6\x1ct,x\xc6^\xbf\
-a\xcff\xcf\x07g\x83i\xc6W%\xf4z\x22/\x94\
-6(\xfc:\xcf\xd88\x1c\x8d=L\xf8J%\x90\x95\
-\xdb\x1b+\x11\xbf\xabp\xbd7\x10\x1b.\x17\x19\xb0\xfb\
-\x1eC\x10\xc9\x84i\xa5\x8c]\x14Z\x15\xa0\xcd\x1d\x13\
-\xd20\x1e\x1bq\x03W|\x01S\xb5\x92f\xc2\x86=\
-K\x14E9\x1d\xc2D\xc98\xcbDi\x98J\xd9}\
- y\x0e\xc1$(U\x0e\xf6\xf1\x94\x05+\x9d!&\
-\x15\x19L\xa2(\xa2\x9d\x08QQ\xce\xd1\x8b\x88\x0c\xdf\
-\xe7Y\xb0\xaee\xa6+\x89\xe7\xa1\x97\xd1\xca\x84\x19\xc5\
-xb\x7f\xaa\xb3\xceO\xe8\x19\xd0\xf9:\x06V\xc6K\
-\xc8\x81=\xb3H\x9ee\xea\x16\x8d\x0c5\x94*\xbb\x81\
-\xdf5\xaa\x86b\xf0\x87\x97\xa5XH\xd4\xc7\x94\x95\xea\
-\xb1\xca\x14z;x\x00\x00\x81\xc54\xc7\xe2q/>\
-\xf0\xbc\xc8\xa0O\xea\x9f\xb2\x04\xca\xf8\x94\xc4\x9c\xd4\x9e\
-\x22\xc8\xef\xac\x83C^\x14 \x93\xbe\xb3\xba\xe2\x08\x88\
-E\x8b\x82\xe4\x05\x93\x8a\xbf\xf2\x01\xfe[\x9fX!k\
-\xff\xd4r\xa9n\xdd\xb1[G\x15\xd6\xf1\x18B\x89\xfa\
-\x87\xb1\x06n\xe0\xf5\xfc\x1f\x0c_\xbf\xda\x92\x06\xfd\x08\
-\xfa\x94\xdd3\xa8D\xa0\xe9\x13k\xf8\xfa$$\xc9}\
-wf\xedc\x9b\x96\xb1cd\xbaI\x85%h\xa0x\
-:\xdf/0\xf0\x18\x5c\x89Y\xc9\x82\x14 \x0b\xd8\xed\
-\x12\xa4\x13c4\x97\xa5 \x03\x84\x5cP\xae`\x14\xa4\
-S\x22\xb4T\xdbiF\xc0e\xbcT\xba\x0c1\xf6\xa8\
-g\xc15\x1a\xd6l\xba\xd0\xcc3\x1e\xbf\x0bz\x0d\xfe\
-\x12\x13\xec\x0f\x01\xb7\x1br\x5c\xdabE\xa0D\xd0D\
-\xe2m\xc6\x99(&\xa8\xe5\x0a<4\x06\x0e\x16\xe8\xc5\
-\x09\x9b\x09\xd2\xf4\xb2\xe6\x7f^\xe3\xfd\x13\x084\xbc_\
-\x09\x8d>i\x0a\x83\xbc\x8b\x7f-J%\xa7\x19\x16\x19\
-\xd4\xd5\x14n\x07\xd6cX{+\x9b\xe1\x13k\xa8M\
-.v\x8f\xc6\xd5\x89\xe6S\xeeu \x01V\xde<#\
-\x1dT\xc1c\x81\xea>~\xccF\xe1\xb0\xa1Yo\xe6\
-\xc3\x85\x81|\xc3\xab\xe4Q/\xb1\x0e\xc7\xad\x16\xd4d\
-i\xa7\xb4z\xaf\xd9\xe9\xca\x8cM\x8ec\x22\xe9\x85\xe3\
-c\xf2{4\xb7\x221K\xa7nhW\xde\xfe\x12\xa8\
-e7\x04\xd5\x92\x0d\xd8\x9c\xebz\xe1kR\xe7\xe7\xed\
-R\x98\xbaw8x\xcb\x8b_\xb9L2,\xa9v\x0a\
-E\xd1\x0bnJ\x0c2\xd6\x16\x83\x1b\xdb\x8b6\xf7\xfd\
-\x08_*\x9e\x80nKIU\xbc*;\x1cAP\xaa\
-\x156\xc5\xc6\x90\x1d\xee 8\x98?\xeb\x9e\xb7\xf4\xda\
-T\xff\xa4\xc3:\xda8\x97\x22\x0fK\xc3\xb5\xe9o\xa7\
-y\xb74\xf8 L\xa74\xda8V\xda\x15\xd7\xd8\xf9\
-!#zn\xc5\xb6\xe5QJ9\x0d[\x9b3\xdb\xaa\
-\xcf\xe3\x1d\xbc\xd6:KRW\xf4\xd6\xeb\xf0\xe1\xc3\x16\
-\xcb\xba\x85\xf9m\x95\xcfA\xefS\x91\x00\x8d]\x80\xd9\
-\xd3\xcf\x1c\xb8\xb4\xc74\xac\x0b<\xe8\xa4K\xb5\xca'\
-^\xe1{\xc7)|\x95\xef\xd8KV\xdaj:a\xdf\
-\x0d\xdb\x14\xff\xa7\x81e\xcc3\xf8\xb6\xccku\xaf\x0e\
-\xb3>\xec3i@\x12:Z\x95g\xda\x01\xc3\xce\x0e\
-\x1a\xe6\xaff\xf8\x8a\xa39\x94\x1f\xac$W\x9d\xbd\xff\
-\xba\x94\x06\x83\x0e\x8d[\xa8c\x0a\x9e\xe0\xb8\x98\x11\x1c\
-\x9d\x96\x04\xc7\xd6\x1eA\x15\xcd]Ih\x8fV\xbb\x13\
-\x98`\x7f<\x09\xda\xc9J\xf0\xf5\x8d\xdfS\x97\x04\xdf\
-\x92\xe9;\xeb\x95\xe0p\xcd\x12\xd4\xe6\xee5\xf6PU\
-\x13|\x8e\xd1\x1d5\xf2\x09\x85h\x95\xc2;\x8a\xd1\xea\
-n\xebM\xdb>\xee\xe3\xcaM\x90\xf4\xbfk\x92\xa3F\
-\x81\x13T\xb3\xbe\x11\xa5\xc0\x91tR\x8f[\xec\xc9\x86\
-\xb3\xdc82W\xc6\x90\x1b\xeb\x01\xa6Z6T\xfb\xe6\
-87\xc3uu\x15:\x8a=e\x8f\x86\xac\xb9\xb9\x12\
-<\x83%\xbf\x11J\xe3\xc4\xeet\xf2\x1du8\x8fv\
-\x07k\xd3O\x07\x07^\xa7\xfc\xa8s\xce|\x10\xc7\xb1\
-\x9fw\xce]F\x15\x8d;\xf0\xb9\x93&\x83\xf4\xe3h\
-K\x8bN*\xedM\xc0\xda\x9by\xbf\xdc\x804M?\
-\xdf\x00\xc4\xbf\xc22\x15r[\xfcW\xb1p\xa1y\x22\
-\x80\xbeq\xbc\xac\x9f\xb6Lu\xe8\x19\xea\x85\xf7\xedB\
-U\xd7_\xcc,\xf6\x93\xffUa\xabrv2\x8e6\
-\x19)\xd6\xdd\xc9s\x91c>w\xdc\x94\xe6xK\xf6\
-\x90\xee\x16\x10\x08\xe2(#\x22\x08\x0b\xb9\xe8\x0e\xc1\x0d\
-\xb66\x81\x9d|\x8a\xaa\xd1\xf7\xa7\xdaA>\xfa\x08\xce\
-\xd7iZR+\x1d\x7fA\x8ch\xa3\x89\xf5\xf7~S\
-\xdb{\xb5\x22?\x98\x86\xa0}\x9bp\x97\xe1]\xdd\xa1\
-\xc5\xa1\xe4[\xfa\xb0\x83,\xdd\xbd\xd3\xbb\x1e\x87\xf1R\
-d\x09\x9a\xf6W7\x1a\xed\x92\x0b\xb3\xc4\x1b\xe5\xe8\xef\
-\xb0\xba\xf2|\xd2`\xb6\xab\xea6]\x17\xdb \x5c\xc8\
-\x8e| \xa8[\xe7\xd9\x8f\xad\x1dW\xbag\xa3\x9d\xb2\
-\xbb\x03=h3\xd4\xe3\xd0f,\xc2BCI\xdf\x92\
-\x9eb\x9ew\xbd\x1f7\xbb\xb0\xfbVq\xbf\xddz\xef\
-7:\xedh8d\xeb\xf6;\xf0`\xe1:8\xae\x80\
-\xc7\xe3\xa1\x85\xed*>,%\x1co\xca\x19\x8dv\xcb\
-ic\xe6J'\x9485w\xc2\xf5;\xb4\xabc\xbe\
-\xe4vN\x17\xbc\x14r\xb1\xe3c\x00)H_\x0a\x1e\
-\x1dx\x7f\xaf{\xff\x02>\xc5\xc9[\
-\x00\x00\x0aH\
+\x00\x17\xafx\xda\xd5\x18ko\xdb6\xf0{\x80\xfc\x07\
+B\xfdb\xa3\xb1d;\xdd\x03\xda\xda.u\x8b.@\
+\xba>\xdc\x0d\x03\x86}\xa0\xa5\x93\xcdU\x22U\x92N\
+\x1a\x18\xfe\xef;J\xa2-\xc9\x94\xe2\xac\xdd\x86\x12y\
+\x88\xc7\xbb\xe3\xbdyd\x10\x90\x99\xc8o%[\xae4\
+\x19\xcc\x86d:\x9e|Gf\x92eJpr1'\
+?2\x9e\x88\x9f\xa2\x12\xe0s\xf1\xe4\xf4$p\xd2\xbc\
+_\x01y\xabq%\xcb)\xbf%W:\xf6\x0b\xd4\xf9\
+\x9b\xe7\xbf\x8f\xaeX\x04\x5c\xc1\xe82\x06\xaeY\xc2@\
+\x86\xa4\x82\xbd\x83d\xf4V\x8f\x90.\x03\x191\x9a\x92\
+\xd7\xef\xc8\xb3\xf9\xf3\xd1\xf9h\x96\xd2\xb5\x82\xd3\x93\xd3\
+\x13\x96\xe5Bj\xe4\xff6K\x9b3\xff\x95\x88!U\
+d\xeaO\xa6\xf5\x955\x8b>\x18\xcaw\x10i\xca\x97\
+)\x90\xcd\xe9\x09\xc1\xc1\xe2\x90H!t9\xcb\xa5\xc8\
+A\xea[\xc2\xb8&4\xd2\xec\x1a\xde\xd0%\xcc\xc4\x9a\
+\xeb\x90\x8c\x0d\x07\x83\x16\x04\x99\xd9\x860E(I\x99\
+\xd2D$d\xe3q\x9a\x81\x17zJdP|\x9e\x11\
+o-S\x84$,\x850\x08\x02\xb3\x12 (\xc8(\
+\xda\x11\x81\xfe\xc7,\xf5\xb6\x96i\xb2\xe6\xb8%\x1a\x1a\
+\xd5\x8c\x89\x16\x84\xc6\xc5\xbfr\xb3\x8b\xa1\xf9\x06\xb4\xbf\
+\x8c\x80\xa8h\x05\x19\x90g\x05\x90\xa6\xa9\xb8A5}\
+\x09J\xa4\xd7\xf0\xabD\xd9\x90\x0d\xfe\xa3J\xb1%G\
+\x81\xb4\xb2\xd2G\x22\x15hp\xef\x01\x00x%h\xb7\
+3\xee\xf8\xe2\x13\xcd\xf2\x14\x06F\x853\x12\x83\x8a\xce\
+\x0c\xa7\xa1\xb5\x98\x19\xd9mag\x9f\xe69\xf0x`\
+U/I<C#Yn\x18za\xc9\xa04\x04\xfe\
+\xd9\x0eK.\xdb\xd6\xc6j%n\xec\xce\xed\xdd\xf2\xc2\
+\x05\xe8K\x8ej\xf8\x91\x04\xaa\xe1\xf5\xe2/t\xe5\xa0\
+\x5c\xe2\x1a\xed\x09\xf2\x8cl\x08\x94<\xd0\x02a\xa1\xff\
+v\xe8\x1b\xd6\x83\xfd\xb6\xd6\xdaE\x88F\x96\x96\xc8]\
+d\xac@\x82q\xad\xf5\xc2\x12\xa3\x00\xfd\xcc1@\x89\
+\x97\x00\xa4\x1e\xb9Y\x01\xdf\xf1\xd1\x92r\xc5\x8c\x16\x8c\
+/M\xe4\xa0C\xb8\x15\xc4/\xd1\x0e\xe2\xce\x0c\xca\xa3\
+\x95\x90\xca\xc7H@is*Q\xbd\xfd\xaau\xd3\x22\
+\xa5\xd1\x07\xcf\xcam\xc6\x15F\xdco\x0cn\xea\xbcl\
+,c\x8e W\x90\x06\xa7\xb9\x1a\xa5,\x0fQ\xd85\
+4\xe1\xe8GX\xa2EC2gF\xe2\xab\x8a\xc3\xf3\
+\x0a\xde\xda\xc4\x0c\x09\x1f\xd7L\xa2uv\xf9bL\x8d\
+\xbf\x87\xa8\x82\xcfR\xcc=\xa8\xd2\xcco\xfb\xb9I\xb1\
+mN\x8b\xc0\x0f\x0b}\x8bx#\x1bT\xb1\x8a\xbd\x16\
+j\xbf-\xcd\xc0\x9c\x5c\xa4F\x0e\x91\xd3\x88\xa1\xcc\x8f\
+\x1f\x93\x89?\xde#m[!r\xa9!\xab\x9b\xd8\x98\
+\xb7\x11o\xc7xr\xc7m\x17\xc0n\x96\xd5\xe2~\xc9\
+\x191u\x9a\xe3\xbc\xdb\xf0\xd0>9\x9aH7,\xd6\
+++\xb7_\xcc\x9a\x08+0\xd5}\x87QN\xc9\x88\
+,\xa8\xac&-i\xaa\xd8\xbdY1mk\x8c\x1d\xef\
+i\xfe3\xe5q\x8a9\xe7\x08\xad xA\xb5B\xcf\
+c\xf6\x11\xb8.\xebVO\x88\x5c\x09\x1a\x83t0J\
+D\xb4V.\x8b\x98\xa1\xc4\x1a\x8b\xe8N\x9f.\xbb\x1c\
+\x17X\xdbzn\x1e\x14\xb5\xc1\xd0\xa5\xa6Y\xb9\xe0,\
+\xf3\x95\xa6R\x0f\x86\xc7r\x84OL\xbb9\x9a\x95{\
+p|C%\x9e\x1a\x90\x1a\x12Z\xb0v\xf04\xa1f\
+%=\x5c\x9d\x17E\xfe\x22\xea\xa2.\xf4,p\xaa\xdc\
+o\x1d\xa8\x0f\x1f\x1e\xd2l\x0fA\xbf\xac\xb3\x05\xc8^\
+9\xcd@\xad\x97\xa0\xfb\x0a`;%0>\xabR\xe0\
+\xb9\x11\x13)\xb2\xb0Y#\x1a;\x0al\x09\xba\x16\xe3\
+\xb5,\xc4\x0d\xc97\xe3\xf1\xff\xae\xa7\x8ah\x0a_\xa3\
+\x96\x87\x85\xce\xa1\xdd\xa7^\xcdF\x86\x87\xab\xa854\
+\xbcK\xbf\xf3#\xf4kM\xe7xJ\x9a\xfe\x96\xde\x9d\
+d6y\xdbY\xfa%\xd2l4r\x0a~\x08<\xaa\
+$\xdc\xc3\x87\xf7\x8b\xd6{e\xe6\xde\xbb\x9d\xa1i=\
+;\xe9C\xb8\xc3\xbf\x1d1\xfc_\xd9\xa0/k\xbfJ\
+\x0btg\xf3\x91\x19]\xd3\xba_\xe7;\x93\xfe\x9f\xeb\
+\xbe\xfd\xdc$-D\xc3k\x91\x96\xe2\xb6}N\xf7W\
+\x95m\xe3\xee\xe4\xec\x10M5\xc1\xael\x0f\xb8f\x8a\
+a\xdf\x1bV=\x1cyR7\x9dmn\x16Bkc\
+\xd5\xaa\x1f*\xa7{\xb4\xde\xfe\xd0\xf6\x86\xae\xdacv\
+#O\xc9\xa31\xa9\xdd\x9e\xcdx\x06+z\xcd\x84\xc4\
+\xfb\x81\x15\xace\xb5#\xc2\xab\xc7\x7fM\xa3\x1d\xd1U\
+[-&\xeeF\xf6A\x14E\x9e\xfb\xc6\xa1E\xbe3\
+\x0d~\xbb\x91RH\xf6\xed\xb3\x99\xb8\xd1d\xa3\xcd\x96\
+\xcd\xc6\xfa\xcb(\x92$\xc9\xe7(\x82\x0b\xaf0\x9b\x19\
+?\xd8\xe1_Su)i\xcc\xc0<\xc0\xbc\xac\xbe\xda\
+:[\xf8\x1c\xa5#\x1b\x92\x8b\xf2:\x8e1G~h\
+>w\xb4\x93\xab\x93rR\xa74\xce\xef\x0c\xa9\xcb\x0c\
+\xa3\xdduI[P\xf3\xe6\xe4\xbavx\xcc\xd0\xa8\xc0\
+`\xf89_v8\xe4\x1a\xab!\xc33`\x86\x02\x9a\
+'\xb2\xcaVM\xf01\xa4\xaf\x93D\x99\xfa;\xfd,\
+\x8f\x99\x95\x9d\xef\xbfmW\xc1\xfek\x9d\xb1\x87\xdea\
+8n/\xf6r\xdeUE\x5c/\x0b\xef\xcd\xf3\x13\xd2\
+t\xd4\xdb\xc6]\xdd\x8fV,\x8dQ\xc3?\xdc`\xd4\
+\x8e/\xf5\x0a\xef\xb4\x93?\xfd\xf2\x96u\xdf~\xaf3\
+%\xebF\x8c\x0a\x87\x5crWx\xd4J\xed\xf9\xf7\x87\
+K6\xb3\xcf'\xdd\xec\xdd~\x1f9(\xaa\x06\xab\xee\
+\x16?\x97\xa0\xcc\xa3\xd7S\x0c\x7f\xe7\x11[/\xdb\xf6\
+\x19e\xd3.\xd5\x9bZa\x9e\x8c\xc7d\xeb8D\xef\
+\xce\xe9\xfb\xe5\xf6t:.\x86\xd7\xd5\xadt\xb3\xf1\xa7\
+uF\x93I\x0f#\x07h!dl\xc2\xa8\xa2\x8f\xa9\
+\xfc\x80\xba\xb9\xfaVZ\x5c\x05\x18U\x8c/\xbb\xde%\
+\x8c\x90\xe6\xd5\xe2\xd1\x11-\x00\xfe\xfc\x0d[\xcf\xd1\xfe\
+\
+\x00\x00\x0a\x95\
/\
/ Copyright (C) \
2016 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0a\x0ai\
-mport QtQuick 2.\
-12\x0a\x0aItem {\x0a i\
-d: slider\x0a he\
-ight: 26\x0a // \
-default drag ran\
-ge is 180: divis\
-ible by 2, 3, 4,\
- 5, 6, 9, 10, ..\
-.\x0a width: sli\
-derName.width + \
-223 + handle.wid\
-th / 2\x0a\x0a prop\
-erty real min: 0\
-\x0a property re\
-al max: 1\x0a pr\
-operty real valu\
-e: min + (max - \
-min) * dragHandl\
-er.value\x0a pro\
-perty real init:\
- min+(max-min)/2\
-\x0a property st\
-ring name: \x22Slid\
-er\x22\x0a property\
- color color: \x22#\
-0066cc\x22\x0a prop\
-erty real minLab\
-elWidth: 44\x0a\x0a \
- DragHandler {\x0a \
- id: dragH\
-andler\x0a t\
-arget: handle\x0a \
- xAxis.mini\
-mum: Math.round(\
--handle.width / \
-2 + 3)\x0a x\
-Axis.maximum: Ma\
-th.round(groove.\
-width - handle.w\
-idth / 2 - 3)\x0a \
- property r\
-eal value: (hand\
-le.x - xAxis.min\
-imum) / (xAxis.m\
-aximum - xAxis.m\
-inimum)\x0a }\x0a\x0a \
- Component.onC\
-ompleted: setVal\
-ue(init)\x0a fun\
-ction setValue(v\
-) {\x0a if (\
-min < max) {\x0a \
- handle.\
-x = Math.round( \
-v / (max - min) \
-*\x0a \
- \
- (dragHandler.x\
-Axis.maximum - d\
-ragHandler.xAxis\
-.minimum)\x0a \
- \
- + drag\
-Handler.xAxis.mi\
-nimum);\x0a// \
- console.lo\
-g(name, v, \x22-> h\
-andle.x\x22, handle\
-.x, \x22from fracti\
-on\x22, (v / (max -\
- min)),\x0a// \
- \x22of dr\
-ag range\x22, (drag\
-Handler.xAxis.ma\
-ximum - dragHand\
-ler.xAxis.minimu\
-m), \x22px\x22, min, \x22\
-:\x22, max)\x0a \
- }\x0a }\x0a Rec\
-tangle {\x0a \
- id:sliderName\x0a \
- anchors.l\
-eft: parent.left\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0a\x0d\x0aItem {\x0d\x0a \
+id: slider\x0d\x0a \
+height: 26\x0d\x0a \
+// default drag \
+range is 180: di\
+visible by 2, 3,\
+ 4, 5, 6, 9, 10,\
+ ...\x0d\x0a width:\
+ sliderName.widt\
+h + 223 + handle\
+.width / 2\x0d\x0a\x0d\x0a \
+ property real \
+min: 0\x0d\x0a prop\
+erty real max: 1\
+\x0d\x0a property r\
+eal value: min +\
+ (max - min) * d\
+ragHandler.value\
+\x0d\x0a property r\
+eal init: min+(m\
+ax-min)/2\x0d\x0a p\
+roperty string n\
+ame: \x22Slider\x22\x0d\x0a \
+ property colo\
+r color: \x22#0066c\
+c\x22\x0d\x0a property\
+ real minLabelWi\
+dth: 44\x0d\x0a\x0d\x0a D\
+ragHandler {\x0d\x0a \
+ id: dragHa\
+ndler\x0d\x0a t\
+arget: handle\x0d\x0a \
+ xAxis.min\
+imum: Math.round\
+(-handle.width /\
+ 2 + 3)\x0d\x0a \
+ xAxis.maximum: \
+Math.round(groov\
+e.width - handle\
+.width / 2 - 3)\x0d\
+\x0a propert\
+y real value: (h\
+andle.x - xAxis.\
+minimum) / (xAxi\
+s.maximum - xAxi\
+s.minimum)\x0d\x0a \
+}\x0d\x0a\x0d\x0a Compone\
+nt.onCompleted: \
+setValue(init)\x0d\x0a\
+ function set\
+Value(v) {\x0d\x0a \
+ if (min < ma\
+x) {\x0d\x0a \
+ handle.x = Mat\
+h.round( v / (ma\
+x - min) *\x0d\x0a \
+ \
+ (dra\
+gHandler.xAxis.m\
+aximum - dragHan\
+dler.xAxis.minim\
+um)\x0d\x0a \
+ \
+ + dragHandl\
+er.xAxis.minimum\
+);\x0d\x0a// \
+ console.log(na\
+me, v, \x22-> handl\
+e.x\x22, handle.x, \
+\x22from fraction\x22,\
+ (v / (max - min\
+)),\x0d\x0a// \
+ \x22of drag \
+range\x22, (dragHan\
+dler.xAxis.maxim\
+um - dragHandler\
+.xAxis.minimum),\
+ \x22px\x22, min, \x22:\x22,\
+ max)\x0d\x0a }\
+\x0d\x0a }\x0d\x0a Rec\
+tangle {\x0d\x0a \
+ id:sliderName\x0d\
\x0a anchors\
-.leftMargin: 16\x0a\
- height: \
-childrenRect.hei\
-ght\x0a widt\
-h: Math.max(slid\
-er.minLabelWidth\
-, childrenRect.w\
-idth)\x0a an\
-chors.verticalCe\
-nter: parent.ver\
-ticalCenter\x0a \
- Text {\x0a \
- text: sli\
-der.name + \x22:\x22\x0a \
- font.\
-pointSize: 12\x0a \
- color:\
- \x22#333\x22\x0a \
-}\x0a }\x0a\x0a Rec\
-tangle {\x0a \
- id: groove\x0a \
+.left: parent.le\
+ft\x0d\x0a anch\
+ors.leftMargin: \
+16\x0d\x0a heig\
+ht: childrenRect\
+.height\x0d\x0a \
+ width: Math.max\
+(slider.minLabel\
+Width, childrenR\
+ect.width)\x0d\x0a \
+ anchors.vert\
+icalCenter: pare\
+nt.verticalCente\
+r\x0d\x0a Text \
+{\x0d\x0a t\
+ext: slider.name\
+ + \x22:\x22\x0d\x0a \
+ font.pointSi\
+ze: 12\x0d\x0a \
+ color: \x22#333\
+\x22\x0d\x0a }\x0d\x0a \
+ }\x0d\x0a\x0d\x0a Recta\
+ngle {\x0d\x0a \
+id: groove\x0d\x0a \
width: paren\
t.width - 8 - sl\
-iderName.width\x0a \
- color: \x22#\
-eee\x22\x0a hei\
-ght: 7\x0a r\
-adius: 3\x0a \
- antialiasing: t\
-rue\x0a bord\
-er.color: Qt.dar\
-ker(color, 1.2)\x0a\
+iderName.width\x0d\x0a\
+ color: \x22\
+#eee\x22\x0d\x0a h\
+eight: 7\x0d\x0a \
+ radius: 3\x0d\x0a \
+ antialiasin\
+g: true\x0d\x0a \
+ border.color: Q\
+t.darker(color, \
+1.2)\x0d\x0a an\
+chors.left: slid\
+erName.right\x0d\x0a \
+ anchors.ri\
+ght: parent.righ\
+t\x0d\x0a ancho\
+rs.leftMargin: 1\
+0\x0d\x0a ancho\
+rs.rightMargin: \
+24\x0d\x0a anch\
+ors.verticalCent\
+er: parent.verti\
+calCenter\x0d\x0a\x0d\x0a \
+ Rectangle {\
+\x0d\x0a he\
+ight: parent.hei\
+ght\x0d\x0a \
+ anchors.left: p\
+arent.left\x0d\x0a \
anchors.\
-left: sliderName\
-.right\x0a a\
-nchors.right: pa\
-rent.right\x0a \
- anchors.leftM\
-argin: 10\x0a \
- anchors.rightM\
-argin: 24\x0a \
- anchors.vertic\
-alCenter: parent\
-.verticalCenter\x0a\
-\x0a Rectang\
-le {\x0a \
- height: parent.\
-height\x0a \
- anchors.left:\
- parent.left\x0a \
- anchors\
-.right: handle.h\
-orizontalCenter\x0a\
+right: handle.ho\
+rizontalCenter\x0d\x0a\
colo\
-r: slider.color\x0a\
- radi\
-us: 3\x0a \
- border.width: \
-1\x0a bo\
-rder.color: Qt.d\
-arker(color, 1.3\
-)\x0a op\
-acity: 0.8\x0a \
- }\x0a Ima\
-ge {\x0a \
- id: handle\x0a \
- source: \
-\x22images/slider_h\
-andle.png\x22\x0a \
- anchors.v\
-erticalCenter: p\
-arent.verticalCe\
-nter\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x06\xc5\
+r: slider.color\x0d\
+\x0a rad\
+ius: 3\x0d\x0a \
+ border.width\
+: 1\x0d\x0a \
+ border.color: Q\
+t.darker(color, \
+1.3)\x0d\x0a \
+ opacity: 0.8\x0d\x0a\
+ }\x0d\x0a \
+ Image {\x0d\x0a \
+ id: hand\
+le\x0d\x0a \
+source: \x22images/\
+slider_handle.pn\
+g\x22\x0d\x0a \
+anchors.vertical\
+Center: parent.v\
+erticalCenter\x0d\x0a \
+ }\x0d\x0a }\x0d\
+\x0a}\x0d\x0a\
+\x00\x00\x06\xed\
/\
/ Copyright (C) \
2017 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0a\x0ai\
-mport QtQuick 2.\
-12\x0a\x0aListModel {\x0a\
- id: flickrIm\
-ages\x0a propert\
-y string tags : \
-\x22\x22\x0a readonly \
-property string \
-queryUrl : \x22http\
-://api.flickr.co\
-m/services/feeds\
-/photos_public.g\
-ne?\x22\x0a\x0a functi\
-on encodeParams(\
-x) {\x0a ret\
-urn encodeURICom\
-ponent(x.replace\
-(\x22 \x22,\x22,\x22));\x0a \
-}\x0a function f\
-etchImages(forma\
-t) {\x0a var\
- requestURL = qu\
-eryUrl + (tags ?\
- \x22tags=\x22+encodeP\
-arams(tags)+\x22&\x22 \
-: \x22\x22) + \x22format=\
-\x22 + format + \x22&n\
-ojsoncallback=1\x22\
-;\x0a var xh\
-r = new XMLHttpR\
-equest;\x0a \
-xhr.onreadystate\
-change = functio\
-n() {\x0a \
- if (xhr.readyS\
-tate === XMLHttp\
-Request.DONE) {\x0a\
-\x0a \
- if (xhr.status \
-!== 200) {\x0a \
- c\
-onsole.log(\x22Fail\
-ed to get images\
- from flickr. st\
-atus code: \x22 + x\
-hr.status);\x0a \
- \
-return;\x0a \
- }\x0a\x0a \
- var j\
-sonText = xhr.re\
-sponseText;\x0a \
- var \
-objArray = JSON.\
-parse(jsonText.r\
-eplace(/\x5c'/g,\x22'\x22\
-))\x0a \
- if (objArray.\
-errors !== undef\
-ined)\x0a \
- consol\
-e.log(\x22Error fet\
-ching tweets: \x22 \
-+ objArray.error\
-s[0].message)\x0a \
- el\
-se {\x0a \
- for (va\
-r key in objArra\
-y.items) {\x0a \
- \
- var rssItem =\
- objArray.items[\
-key];\x0a \
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0a\x0d\x0aListModel {\x0d\
+\x0a id: flickrI\
+mages\x0d\x0a prope\
+rty string tags \
+: \x22\x22\x0d\x0a readon\
+ly property stri\
+ng queryUrl : \x22h\
+ttp://api.flickr\
+.com/services/fe\
+eds/photos_publi\
+c.gne?\x22\x0d\x0a\x0d\x0a f\
+unction encodePa\
+rams(x) {\x0d\x0a \
+ return encode\
+URIComponent(x.r\
+eplace(\x22 \x22,\x22,\x22))\
+;\x0d\x0a }\x0d\x0a fu\
+nction fetchImag\
+es(format) {\x0d\x0a \
+ var reques\
+tURL = queryUrl \
++ (tags ? \x22tags=\
+\x22+encodeParams(t\
+ags)+\x22&\x22 : \x22\x22) +\
+ \x22format=\x22 + for\
+mat + \x22&nojsonca\
+llback=1\x22;\x0d\x0a \
+ var xhr = ne\
+w XMLHttpRequest\
+;\x0d\x0a xhr.o\
+nreadystatechang\
+e = function() {\
+\x0d\x0a if\
+ (xhr.readyState\
+ === XMLHttpRequ\
+est.DONE) {\x0d\x0a\x0d\x0a \
+ i\
+f (xhr.status !=\
+= 200) {\x0d\x0a \
+ co\
+nsole.log(\x22Faile\
+d to get images \
+from flickr. sta\
+tus code: \x22 + xh\
+r.status);\x0d\x0a \
+ \
+return;\x0d\x0a \
+ }\x0d\x0a\x0d\x0a \
va\
-r jsonObject = \x22\
-{ \x5c\x22title\x5c\x22: \x5c\x22\x22\
- + rssItem.title\
- +\x22\x5c\x22,\x5c\x22media\x5c\x22:\
- \x5c\x22\x22 + rssItem.m\
-edia.m + \x22\x5c\x22, \x5c\x22\
-thumbnail\x5c\x22: \x5c\x22\x22\
- + rssItem.media\
-.m.replace(/\x5c_m\x5c\
-.jpg/,\x22_s.jpg\x22) \
-+\x22\x5c\x22}\x22\x0a \
- f\
-lickrImages.appe\
-nd(JSON.parse(js\
-onObject));\x0a \
- \
-}\x0a \
- }\x0a \
-}\x0a }\x0a \
+r jsonText = xhr\
+.responseText;\x0d\x0a\
+ \
+var objArray = J\
+SON.parse(jsonTe\
+xt.replace(/\x5c'/g\
+,\x22'\x22))\x0d\x0a \
+ if (objA\
+rray.errors !== \
+undefined)\x0d\x0a \
+ \
+console.log(\x22Err\
+or fetching twee\
+ts: \x22 + objArray\
+.errors[0].messa\
+ge)\x0d\x0a \
+ else {\x0d\x0a \
+ \
+ for (var key in\
+ objArray.items)\
+ {\x0d\x0a \
+ var \
+rssItem = objArr\
+ay.items[key];\x0d\x0a\
+ \
+ var json\
+Object = \x22{ \x5c\x22ti\
+tle\x5c\x22: \x5c\x22\x22 + rss\
+Item.title +\x22\x5c\x22,\
+\x5c\x22media\x5c\x22: \x5c\x22\x22 +\
+ rssItem.media.m\
+ + \x22\x5c\x22, \x5c\x22thumbn\
+ail\x5c\x22: \x5c\x22\x22 + rss\
+Item.media.m.rep\
+lace(/\x5c_m\x5c.jpg/,\
+\x22_s.jpg\x22) +\x22\x5c\x22}\x22\
+\x0d\x0a \
+ flickr\
+Images.append(JS\
+ON.parse(jsonObj\
+ect));\x0d\x0a \
+ }\x0d\x0a \
+ }\
+\x0d\x0a }\x0d\
+\x0a }\x0d\x0a \
xhr.open(\x22GE\
T\x22, requestURL, \
-true);\x0a x\
-hr.send();\x0a }\
-\x0a Component.o\
-nCompleted: {\x0a \
- fetchImage\
-s(\x22json\x22);\x0a }\
-\x0a}\x0a\x0a\
-\x00\x00\x018\
+true);\x0d\x0a \
+xhr.send();\x0d\x0a \
+ }\x0d\x0a Componen\
+t.onCompleted: {\
+\x0d\x0a fetchI\
+mages(\x22json\x22);\x0d\x0a\
+ }\x0d\x0a}\x0d\x0a\x0d\x0a\
+\x00\x00\x01C\
m\
-odule shared\x0aBut\
-ton 2.0 Button.q\
-ml\x0aCheckBox 2.1 \
-CheckBox.qml\x0aFli\
-ckrRssModel 2.0 \
-FlickrRssModel.q\
-ml\x0aLabel 2.0 Lab\
-el.qml\x0aLauncherL\
-ist 2.0 Launcher\
-List.qml\x0aSimpleL\
-auncherDelegate \
-2.0 SimpleLaunch\
-erDelegate.qml\x0aS\
-lider 2.0 Slider\
-.qml\x0aTabSet 2.1 \
-TabSet.qml\x0aTextF\
-ield 2.1 TextFie\
-ld.qml\x0asingleton\
- Images 2.2 Imag\
-es.qml\x0a\
-\x00\x00\x08\xdc\
+odule shared\x0d\x0aBu\
+tton 2.0 Button.\
+qml\x0d\x0aCheckBox 2.\
+1 CheckBox.qml\x0d\x0a\
+FlickrRssModel 2\
+.0 FlickrRssMode\
+l.qml\x0d\x0aLabel 2.0\
+ Label.qml\x0d\x0aLaun\
+cherList 2.0 Lau\
+ncherList.qml\x0d\x0aS\
+impleLauncherDel\
+egate 2.0 Simple\
+LauncherDelegate\
+.qml\x0d\x0aSlider 2.0\
+ Slider.qml\x0d\x0aTab\
+Set 2.1 TabSet.q\
+ml\x0d\x0aTextField 2.\
+1 TextField.qml\x0d\
+\x0asingleton Image\
+s 2.2 Images.qml\
+\x0d\x0a\
+\x00\x00\x09\x1c\
/\
/ Copyright (C) \
2017 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0a\x0ai\
-mport QtQuick 2.\
-12\x0aimport QtQuic\
-k.Window 2.1\x0a\x0aIt\
-em {\x0a id: tab\
-Widget\x0a\x0a // S\
-etting the defau\
-lt property to s\
-tack.children me\
-ans any child it\
-ems\x0a // of th\
-e TabWidget are \
-actually added t\
-o the 'stack' it\
-em's children.\x0a \
- // See the \x22P\
-roperty Binding\x22\
-\x0a // document\
-ation for detail\
-s on default pro\
-perties.\x0a def\
-ault property al\
-ias content: sta\
-ck.children\x0a\x0a \
- property int cu\
-rrent: 0\x0a\x0a on\
-CurrentChanged: \
-setZOrders()\x0a \
- Component.onCom\
-pleted: setZOrde\
-rs()\x0a\x0a functi\
-on setZOrders() \
-{\x0a for (v\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0aimport QtQuick\
+.Window 2.1\x0d\x0a\x0d\x0aI\
+tem {\x0d\x0a id: t\
+abWidget\x0d\x0a\x0d\x0a \
+// Setting the d\
+efault property \
+to stack.childre\
+n means any chil\
+d items\x0d\x0a // \
+of the TabWidget\
+ are actually ad\
+ded to the 'stac\
+k' item's childr\
+en.\x0d\x0a // See \
+the \x22Property Bi\
+nding\x22\x0d\x0a // d\
+ocumentation for\
+ details on defa\
+ult properties.\x0d\
+\x0a default pro\
+perty alias cont\
+ent: stack.child\
+ren\x0d\x0a\x0d\x0a prope\
+rty int current:\
+ 0\x0d\x0a\x0d\x0a onCurr\
+entChanged: setZ\
+Orders()\x0d\x0a Co\
+mponent.onComple\
+ted: setZOrders(\
+)\x0d\x0a\x0d\x0a functio\
+n setZOrders() {\
+\x0d\x0a for (v\
ar i = 0; i < st\
ack.children.len\
-gth; ++i) {\x0a \
- stack.ch\
-ildren[i].z = (i\
- == current ? 1 \
-: 0)\x0a \
- stack.children[\
-i].enabled = (i \
-== current)\x0a \
- }\x0a }\x0a\x0a \
- Row {\x0a i\
-d: header\x0a\x0a \
- Repeater {\x0a \
- model:\
- stack.children.\
-length\x0a \
- delegate: Rec\
-tangle {\x0a \
- require\
-d property int i\
-ndex\x0a \
- width: tabW\
-idget.width / st\
-ack.children.len\
-gth\x0a \
- height: Math\
-.max(Screen.pixe\
-lDensity * 7, la\
-bel.implicitHeig\
-ht * 1.2)\x0a\x0a \
+gth; ++i) {\x0d\x0a \
+ stack.c\
+hildren[i].z = (\
+i == current ? 1\
+ : 0)\x0d\x0a \
+ stack.childre\
+n[i].enabled = (\
+i == current)\x0d\x0a \
+ }\x0d\x0a }\x0d\
+\x0a\x0d\x0a Row {\x0d\x0a \
+ id: header\
+\x0d\x0a\x0d\x0a Repe\
+ater {\x0d\x0a \
+ model: stack\
+.children.length\
+\x0d\x0a de\
+legate: Rectangl\
+e {\x0d\x0a \
+ required pr\
+operty int index\
+\x0d\x0a \
+ width: tabWidg\
+et.width / stack\
+.children.length\
+\x0d\x0a \
+ height: Math.m\
+ax(Screen.pixelD\
+ensity * 7, labe\
+l.implicitHeight\
+ * 1.2)\x0d\x0a\x0d\x0a \
Recta\
-ngle {\x0a \
- width\
-: parent.width; \
-height: 1\x0a \
- an\
-chors { bottom: \
-parent.bottom; b\
-ottomMargin: 1 }\
-\x0a \
- color: \x22#ac\
-b2c2\x22\x0a \
- }\x0a \
- BorderIm\
-age {\x0a \
- anchor\
-s { fill: parent\
-; leftMargin: 2;\
- topMargin: 5; r\
-ightMargin: 1 }\x0a\
- \
- border { lef\
-t: 7; right: 7 }\
-\x0a \
- source: \x22im\
-ages/tab.png\x22\x0a \
- \
- visible: tabWi\
-dget.current == \
-parent.index\x0a \
- }\x0a \
- T\
-ext {\x0a \
- id: la\
-bel\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter; ve\
-rticalAlignment:\
- Qt.AlignVCenter\
+ngle {\x0d\x0a \
+ widt\
+h: parent.width;\
+ height: 1\x0d\x0a \
+ \
+anchors { bottom\
+: parent.bottom;\
+ bottomMargin: 1\
+ }\x0d\x0a \
+ color: \x22\
+#acb2c2\x22\x0d\x0a \
+ }\x0d\x0a \
+ Bor\
+derImage {\x0d\x0a \
+ \
+anchors { fill: \
+parent; leftMarg\
+in: 2; topMargin\
+: 5; rightMargin\
+: 1 }\x0d\x0a \
+ borde\
+r { left: 7; rig\
+ht: 7 }\x0d\x0a \
+ sou\
+rce: \x22images/tab\
+.png\x22\x0d\x0a \
+ visib\
+le: tabWidget.cu\
+rrent == parent.\
+index\x0d\x0a \
+ }\x0d\x0a \
+ Text {\
+\x0d\x0a \
+ id: label\x0d\
\x0a \
- anchors.fil\
-l: parent\x0a \
- te\
-xt: stack.childr\
-en[parent.index]\
-.title\x0a \
+ horizontalA\
+lignment: Qt.Ali\
+gnHCenter; verti\
+calAlignment: Qt\
+.AlignVCenter\x0d\x0a \
+ \
+ anchors.fill:\
+ parent\x0d\x0a \
+ tex\
+t: stack.childre\
+n[parent.index].\
+title\x0d\x0a \
elide\
: Text.ElideRigh\
-t\x0a \
- font.bold:\
- tabWidget.curre\
-nt == parent.ind\
-ex\x0a \
- }\x0a \
- TapHandler \
-{\x0a \
- onTapped: \
-tabWidget.curren\
-t = parent.index\
-\x0a \
- }\x0a }\
-\x0a }\x0a }\
-\x0a\x0a Item {\x0a \
- id: stack\x0a \
- width: ta\
-bWidget.width\x0a \
- anchors.to\
-p: header.bottom\
-; anchors.bottom\
-: tabWidget.bott\
-om\x0a }\x0a}\x0a\
-\x00\x00\x02h\
+t\x0d\x0a \
+ font.bold\
+: tabWidget.curr\
+ent == parent.in\
+dex\x0d\x0a \
+ }\x0d\x0a \
+ TapHandl\
+er {\x0d\x0a \
+ onTapp\
+ed: tabWidget.cu\
+rrent = parent.i\
+ndex\x0d\x0a \
+ }\x0d\x0a \
+ }\x0d\x0a \
+}\x0d\x0a }\x0d\x0a\x0d\x0a \
+Item {\x0d\x0a \
+id: stack\x0d\x0a \
+ width: tabWid\
+get.width\x0d\x0a \
+ anchors.top: \
+header.bottom; a\
+nchors.bottom: t\
+abWidget.bottom\x0d\
+\x0a }\x0d\x0a}\x0d\x0a\
+\x00\x00\x02v\
/\
/ Copyright (C) \
2021 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0a\x0ap\
-ragma Singleton\x0a\
-import QtQml\x0a\x0aQt\
-Object {\x0a rea\
-donly property u\
-rl back: \
- Qt.resolvedUrl(\
-\x22images/back.png\
-\x22)\x0a readonly \
-property url che\
-ckmark: Qt.re\
-solvedUrl(\x22image\
-s/checkmark.png\x22\
-)\x0a readonly p\
-roperty url next\
-: Qt.res\
-olvedUrl(\x22images\
-/next.png\x22)\x0a \
-readonly propert\
-y url qtLogo: \
- Qt.resolvedU\
-rl(\x22images/qt-lo\
-go.png\x22)\x0a rea\
-donly property u\
-rl sliderHandle:\
- Qt.resolvedUrl(\
-\x22images/slider_h\
-andle.png\x22)\x0a \
-readonly propert\
-y url tab: \
- Qt.resolvedU\
-rl(\x22images/tab.p\
-ng\x22)\x0a}\x0a\
-\x00\x00\x05t\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0apragma Singlet\
+on\x0d\x0aimport QtQml\
+\x0d\x0a\x0d\x0aQtObject {\x0d\x0a\
+ readonly pro\
+perty url back: \
+ Qt.resol\
+vedUrl(\x22images/b\
+ack.png\x22)\x0d\x0a r\
+eadonly property\
+ url checkmark: \
+ Qt.resolvedUr\
+l(\x22images/checkm\
+ark.png\x22)\x0d\x0a r\
+eadonly property\
+ url next: \
+ Qt.resolvedUr\
+l(\x22images/next.p\
+ng\x22)\x0d\x0a readon\
+ly property url \
+qtLogo: Qt\
+.resolvedUrl(\x22im\
+ages/qt-logo.png\
+\x22)\x0d\x0a readonly\
+ property url sl\
+iderHandle: Qt.r\
+esolvedUrl(\x22imag\
+es/slider_handle\
+.png\x22)\x0d\x0a read\
+only property ur\
+l tab: \
+Qt.resolvedUrl(\x22\
+images/tab.png\x22)\
+\x0d\x0a}\x0d\x0a\
+\x00\x00\x05\xa1\
/\
/ Copyright (C) \
2017 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0a\x0ai\
-mport QtQuick 2.\
-12\x0aimport QtQuic\
-k.Window 2.1\x0a\x0aIt\
-em {\x0a id: con\
-tainer\x0a\x0a prop\
-erty alias text:\
- buttonLabel.tex\
-t\x0a property a\
-lias label: butt\
-onLabel\x0a sign\
-al clicked\x0a p\
-roperty alias co\
-ntainsMouse: hov\
-erHandler.hovere\
-d\x0a property a\
-lias pressed: ta\
-pHandler.pressed\
-\x0a implicitHei\
-ght: Math.max(Sc\
-reen.pixelDensit\
-y * 7, buttonLab\
-el.implicitHeigh\
-t * 1.2)\x0a imp\
-licitWidth: Math\
-.max(Screen.pixe\
-lDensity * 11, b\
-uttonLabel.impli\
-citWidth * 1.3)\x0a\
- height: impl\
-icitHeight\x0a w\
-idth: implicitWi\
-dth\x0a\x0a SystemP\
-alette { id: pal\
-ette }\x0a\x0a Rect\
-angle {\x0a \
-id: frame\x0a \
- anchors.fill: \
-parent\x0a c\
-olor: palette.bu\
-tton\x0a gra\
-dient: Gradient \
-{\x0a Gr\
-adientStop { pos\
-ition: 0.0; colo\
-r: tapHandler.pr\
-essed ? Qt.darke\
-r(palette.button\
-, 1.3) : palette\
-.button }\x0a \
- GradientSt\
-op { position: 1\
-.0; color: Qt.da\
-rker(palette.but\
-ton, 1.3) }\x0a \
- }\x0a an\
-tialiasing: true\
-\x0a radius:\
- height / 6\x0a \
- border.color\
-: Qt.darker(pale\
-tte.button, 1.5)\
-\x0a border.\
-width: 1\x0a }\x0a\x0a\
- TapHandler {\
-\x0a id: tap\
-Handler\x0a \
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0aimport QtQuick\
+.Window 2.1\x0d\x0a\x0d\x0aI\
+tem {\x0d\x0a id: c\
+ontainer\x0d\x0a\x0d\x0a \
+property alias t\
+ext: buttonLabel\
+.text\x0d\x0a prope\
+rty alias label:\
+ buttonLabel\x0d\x0a \
+ signal clicked\
+\x0d\x0a property a\
+lias containsMou\
+se: hoverHandler\
+.hovered\x0d\x0a pr\
+operty alias pre\
+ssed: tapHandler\
+.pressed\x0d\x0a im\
+plicitHeight: Ma\
+th.max(Screen.pi\
+xelDensity * 7, \
+buttonLabel.impl\
+icitHeight * 1.2\
+)\x0d\x0a implicitW\
+idth: Math.max(S\
+creen.pixelDensi\
+ty * 11, buttonL\
+abel.implicitWid\
+th * 1.3)\x0d\x0a h\
+eight: implicitH\
+eight\x0d\x0a width\
+: implicitWidth\x0d\
+\x0a\x0d\x0a SystemPal\
+ette { id: palet\
+te }\x0d\x0a\x0d\x0a Rect\
+angle {\x0d\x0a \
+ id: frame\x0d\x0a \
+ anchors.fill\
+: parent\x0d\x0a \
+ color: palette\
+.button\x0d\x0a \
+ gradient: Gradi\
+ent {\x0d\x0a \
+ GradientStop \
+{ position: 0.0;\
+ color: tapHandl\
+er.pressed ? Qt.\
+darker(palette.b\
+utton, 1.3) : pa\
+lette.button }\x0d\x0a\
+ Grad\
+ientStop { posit\
+ion: 1.0; color:\
+ Qt.darker(palet\
+te.button, 1.3) \
+}\x0d\x0a }\x0d\x0a \
+ antialiasi\
+ng: true\x0d\x0a \
+ radius: height\
+ / 6\x0d\x0a bo\
+rder.color: Qt.d\
+arker(palette.bu\
+tton, 1.5)\x0d\x0a \
+ border.width\
+: 1\x0d\x0a }\x0d\x0a\x0d\x0a \
+ TapHandler {\x0d\x0a\
+ id: tapH\
+andler\x0d\x0a \
onTapped: contai\
-ner.clicked();\x0a \
- }\x0a HoverHa\
-ndler {\x0a \
-id: hoverHandler\
-\x0a }\x0a\x0a Text\
- {\x0a id: b\
-uttonLabel\x0a \
- text: contain\
-er.text\x0a \
-color: palette.b\
-uttonText\x0a \
- anchors.center\
-In: parent\x0a }\
-\x0a}\x0a\
+ner.clicked();\x0d\x0a\
+ }\x0d\x0a Hover\
+Handler {\x0d\x0a \
+ id: hoverHand\
+ler\x0d\x0a }\x0d\x0a\x0d\x0a \
+ Text {\x0d\x0a \
+ id: buttonLabe\
+l\x0d\x0a text:\
+ container.text\x0d\
+\x0a color: \
+palette.buttonTe\
+xt\x0d\x0a anch\
+ors.centerIn: pa\
+rent\x0d\x0a }\x0d\x0a}\x0d\x0a\
+\
\x00\x00\x03)\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -1358,396 +1265,858 @@ t\xfd\x83\x83\x83\x0eo\x09\x10Xv\xfd\xbf\xc8\xfe\xa8\
\xdf\x0c\xa3\x90\xca(\x99aMN'&\x93\x88;L\
~\x03}U80w\xf4\xee\xee\x00\x00\x00\x00IE\
ND\xaeB`\x82\
-\x00\x00\x18@\
+\x00\x005\x1c\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x01\x00\x00\x00\x01\x00\x08\x06\x00\x00\x00\x5cr\xa8f\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x03*iTXtXML\
-:com.adobe.xmp\x00\x00\
-\x00\x00\x00<?xpacket beg\
-in=\x22\xef\xbb\xbf\x22 id=\x22W5M\
-0MpCehiHzreSzNTc\
-zkc9d\x22?> <x:xmpm\
-eta xmlns:x=\x22ado\
-be:ns:meta/\x22 x:x\
-mptk=\x22Adobe XMP \
-Core 5.6-c132 79\
-.159284, 2016/04\
-/19-13:13:40 \
- \x22> <rdf:RDF \
-xmlns:rdf=\x22http:\
-//www.w3.org/199\
-9/02/22-rdf-synt\
-ax-ns#\x22> <rdf:De\
-scription rdf:ab\
-out=\x22\x22 xmlns:xmp\
-=\x22http://ns.adob\
-e.com/xap/1.0/\x22 \
-xmlns:xmpMM=\x22htt\
-p://ns.adobe.com\
-/xap/1.0/mm/\x22 xm\
-lns:stRef=\x22http:\
-//ns.adobe.com/x\
-ap/1.0/sType/Res\
-ourceRef#\x22 xmp:C\
-reatorTool=\x22Adob\
-e Photoshop CC 2\
-015.5 (Macintosh\
-)\x22 xmpMM:Instanc\
-eID=\x22xmp.iid:EF4\
-E1F5F50C611E689D\
-8B84085AD92F4\x22 x\
-mpMM:DocumentID=\
-\x22xmp.did:EF4E1F6\
-050C611E689D8B84\
-085AD92F4\x22> <xmp\
-MM:DerivedFrom s\
-tRef:instanceID=\
-\x22xmp.iid:EF4E1F5\
-D50C611E689D8B84\
-085AD92F4\x22 stRef\
-:documentID=\x22xmp\
-.did:EF4E1F5E50C\
-611E689D8B84085A\
-D92F4\x22/> </rdf:D\
-escription> </rd\
-f:RDF> </x:xmpme\
-ta> <?xpacket en\
-d=\x22r\x22?>j\x12\xd3\xd3\x00\x00\x14\xacI\
-DATx\xda\xec\x9d\x09\x98V\xd5y\x80\xbf\x7f\xf6\
-}\x83\x19\x96a\x97m\x10A\xa1\xb8\x00\x06p\xc1h\
-]\xaaF\xf3XS5\x1a\xd7\xb4Q\xa3\xb1\xb1\xc6G\
-\xd3j%mS\x97<\xd5\x94j\x88q\x97 (\x06\
-\x97\x22ZqEPQ\x04\x14\x10d\x86\xd9g\x98}\
-\x9f\xf9{\xbf\x9bj\x091d\x06\xbe\x7f\xe6.\xef;\
-\xcf\xff\x8c\xe3\xa3\xe7\xbf\xf7\xdc\xfb\xbd\xf7\x9cs\xcf\xf9\
-N$\x1a\x8d\x0a\x00\x84\x938\xaa\x00\x00\x01\x00\x00\x02\
-\x00\x00\x04\x00\x00\x08\x00\x00\x10\x00\x00 \x00\x00@\x00\
-\x00\x80\x00\x00\x00\x01\x00\x00\x02\x00\x00\x04\x00\x00\x08\x00\
-\x00\x10\x00\x00 \x00\x00@\x00\x00\x80\x00\x00\x00\x01\x00\
-\x00\x02\x00\x00\x04\x00\x00\x08\x00\x00\x10\x00\x00 \x00\x00\
-@\x00\x00\x80\x00\x00\x00\x01\x00\x00\x02\x00\x00\x04\x00\x00\
-\x08\x00\x00\x10\x00\x00 \x00\x00@\x00\x00\x80\x00\x00\xe0\
-O\x13\xf1\xca\x81,\xd8p\xce\x11\xce\xaf5\xceg0\
-\x97\x05 D\x02 \xf8\x01B*\x00\x82\x1f \xa4\x02\
- \xf8\x01B*\x00\x82\x1f \xa4\x02 \xf8\x01B*\
-\x00\x82\x1f \xa4\x02 \xf8\x01B*\x00\x82\x1f \xa4\
-\x02 \xf8\x01B*\x00\x82\x1f \xa4\x02 \xf8\x01B\
-*\x00\x82\x1f \xa4\x02 \xf8\x01B*\x00\x82\x1f \
-\xa4\x02 \xf8\x01B*\x00\x82\x1f \xa4\x02 \xf8\x01\
-B*\x00\x82\x1f \xa4\x02 \xf8\x01B*\x00'\xf8\
-\x8fq~\xbd\xec|\xb2\xa8F\x80\x10\x09\x80\xe0\x07\x08\
-\xa9\x00\x08~\x80\x90\x0a\x80\xe0\x07\x08\xa9\x00\x08~\x80\
-\x90\x0a\x80\xe0\x07\x08\xa9\x00\x08~\x80\x90\x0a\x80\xe0\x07\
-\x08\xa9\x00\x08~\x80\x90\x0a\x80\xe0\x07\x08\xa9\x00\x08~\
-\x80\x90\x0a\x80\xe0\x07\x08\xa9\x00\x08\xfe\xfe!#>\xfd\
-\xf7\x15\x1f\x89Hj\x5c\x8a\xb4t\xb7\xba\x7fwE\xbb\
-\xa4\xad\xa7\x9d\x0a\x82\xfe\x17\x00\xc1\x7f\xe8\xc4E\xe2d\
-d\xf2p\x19\x99R(\x85\xc9C\x9d\xcf0)H\x1a\
-$9\x09\xd9\x92\x97\x98+iq\xa9\x92\x16\x9fz\xc0\
-2\xa2\xceOsw\x8b4t5J]W\xbdTw\
-\xee\x95\xaa\x8ej\xd9\xd3^.\xa5\xce\xe7\xf3\xd6/\x9c\
-\x7fWKe\x83\x9d\x00\x08\xfe\x83#3>C\xa6g\
-N\x91\xa9\xe9ErDF\x91\x8cK\x1d-\xc9qI\
-1\xff\xde\xba\xae\x06\xf9\xace\x87lj\xda\x22\x1b\x9b\
-6\xcb\x96\xe6\xcf\x9c\xd6C7\x17\x04\x0eZ\x00\xf5\x04\
-\x7f\xef\x18\xe4<\xc9\xe7\xe7\xce\x919\xd9G\xcb4'\
-\xe8\xf5\xa9?\xd0h\x8b\xe1\xdd\x86\xf7\xe5\xcd\xbau\xf2\
-f\xfd:\xe9\xe8\xe9\xe4BA\x9f\x04\x10\xa5\x1a\x0e\xd4\
-G\x8a\xc8q\xd9\x7f!g\xe6/\x94YYG\xb9\x7f\
-{\x15\x1dOxe\xefZYQ\xf5\x82\xecl\xdd\xcd\
-\xc5\x03\x04p\xb0\xc4G\xe2ea\xde<\xb9`\xe89\
-2\xc2\xe9\xcf\xfb\x8d\x0d\x8d\x1f\xc9\x92\xd2'es\xf3\
-\xa7\x5cL@\x00}av\xf6,\xb9j\xc4\xc5\xbe\x0c\
-\xfc\xfdy\xa7~\x83\xdc_\xb2DJ\xda\xcb\xb8\xb0\x80\
-\x00\x0e\xc4\xe0\xc4<\xb9~\xd4\x95n\x93?HtF\
-;\xe5\xf1\xf2\xe5\xf2X\xf9o=;`\xa8oH\x1e\
-*\xba\xfb\x90\xcb\xf9m\xe5\xf3\xb2\xcc\xf9@\xefH\xa0\
-\x0a~\xcf\xdc\x9cc\xe4G\xa3\xae\x91\xcc\x84\x8c\xc0\x9d\
-[b$Q.\x1ev\xbe\x1c\x9b=C\xee\xd8y\xb7\
-\xfbZ\xd1k\xc49?C\x92\xf2\x0f\xb9\x9c/\xe7Y\
-@o\xeb=\xecM \xe7\xe7{\xc3/\x94\x7f\x1cw\
-S \x83\x7f_&\xa5\x8d\x97\x07&\xff\x8b\xcc\xcc\x9c\
-\xc6\x9d\x0f\x08 !\x92 \xb7\x8f\xbbQ\xfez\xe89\
-\xa19g}B\xfel\xfc\xad\xb20o>w?\x84\
-W\x00\x1a\xfc?\x1d\xf7#9>\xe7\xd8\xf0]\xf4H\
-\x9c\xfcx\xcc\xdf\xc9\x99\xf9\xa7\x10\x01\x08 \x9c\xcd\xfe\
-[\xc6\x5c\x1b\xb8\xc1\xbe\xber\xed\xc8\xcbe^\xeel\
-\xa2\x00\x01\x84\x8b+\x0a\xff\x86\x1b\xff+\x11^'S\
-\xd2'\x12\x09\x08 \x1ch\x93\xff\xdbC\xce\xe2\xca\x7f\
-\xd5\x15\x8a\x97\xdb\xc6\xdd(\xd9\x09\xcc\x06G\x00\x01G\
-\xdf\xf3\xdf4\xfa\xfb\x5c\xf5\xfd\xc8O\x1c$7\x8e\xbe\
-\x9a\x8a\x08\xe3\x03 L'{\xc3\xa8\xab%=>m\
-@\xbe[\x17\xe9\x94uT\xb8K}\xdb{:\xa4=\
-\xda\xee\xfe\xd6\x15\x84\xe9qi\x92\xe4\xfc\xceK\xccq\
-\xdf\x85\x0f\xc4z\x03]\xe0tR\xde7du\xed\xeb\
-D\x05\x02\x08\x1e'\xe4\xce\x95c\xb2g\xf4\xcbwi\
-`\xbf\xdf\xf8\x91|\xdc\xb4E\xb6\xb6l\x93\x92\xb62\
-\xa9\xe9\xdc\xeb\xae\xf7\xff\xf3M\xf2\x04\x19\x96\x5c \xa3\
-SF8}\xf3I2#\xf3\x08\x99\x98vX\xbf\x1c\
-\xf75#.\x91\xb7\xeb\xd7\xbb+\x0c\x01\x01\x04\x86\xe4\
-\xb8d\xb9r\xc4E1\xff\x9e\xf7\x1a>\x94U5\xaf\
-\xc8;N\x10\xa9\x04\x0e\x06\xcd\x0cT\xdcV\xea~\xde\
-\xa8[\xf7U\xd7\xe5\xc4\xbc\xe3\xe5\xcc\xc1\xa78r\x18\
-\x12\xb3\xe3\xd7\xe4%\x17\x0d;_\x1e(\xf95\x91\x81\
-\x00\x82\xc39\x05\xa7\xb9\xfd\xdcX\xa1\xeb\xf0\x1f\xda\xf3\
-\xb8\xecj+\x8eI\xf9\x9a\x05\xe8\xa9\x8ag\xe5\xe9\x8a\
-\xe7dA\xee\x1c\xb9t\xf8\x052<yhL\xbe\xeb\
-\xec\xfc\xd3\xdc\xb9\xf4\x95\x1d\xd5DG\x08\x08\xfc \xa0\
-\xce|\xbb`\xc8\xd91\x0b\xcc\xbf\xdf\xfeOr\xeb\x8e\
-\x9f\xc5,\xf8\xf7E\xbb\x10k\xf6\xbe!\xdf\xdd|\x9d\
-<R\xb6\xb4W]\x8a>?\x11\x22\xf1r\xe1\xd0s\
-\x89\x0c\x04\x10\x0ct\xb6[,\x16\x88\xe8z\xfb\xcb\xb6\
-\x5c\xef6\xfb\xfb\x1b]\xdd\xb7\xa4\xecI\xb9a\xdbm\
-\xd2\xd8\xd5d^\xfe\xa9\x83N\x94AN\xb7\x03\x10\x80\
-\xbf\xfb7\x91\x04\xb7Ik\xcd+\xb5k\xe5\xe6\xedw\
-\xc4$\xf8\xfa\xc2\x87\x8d\x9f\xc8\xf7?\xbd\xd9<Q\xa8\
-\xb6\x02\xce\xce?\x95\xe8@\x00\xfefA\xeel7\x8f\
-\x9f%:J~\xd7\x17\xf7yf]}I{\xa9\xdc\
-\xb8\xedv\xf3\x91\xfb\xd3\x07\x9f\xec.#\x06\x04\xe0[\
-N\x1b|\x92iy:2\xaf\xeb\xe9{\xa2=\x9e:\
-\xcf\xddm{\xe4\xce]\xf7\x98\x96\x99\x95\x90)ss\
-\x8e&B\x10\x80?\xd1t^\xd33\x0e7+O\x83\
-\xfe\x8e]wKkO\x9b'\xcfWS\x7f=[\xf5\
-\xa2\xf9X\x00 \x00\x7f6\xff\xf3\xe6\x9a\x96\xb7\xbcj\
-\x95lk\xf9\xdc\xd3\xe7\xfc`\xe9c\xb2\xb7\xb3\xce\xac\
-\xbc\x99Y\xd3\xdc\xb9\x01\x80\x00|\xc7\xfc\x1c\xbb\xd5~\
-\xbae\xd7\xa3\xe5\xcb<\x7f\xce:\x0e\xb0\xb4r\xa5Y\
-y:%9\x8c\xf9\x12\x10@\x00\x9a\xffcSG\x99\
->\xfd\xeb\xbb\x1a|q\xee\xda\x0d\xd0\xf5\x06V\xcc\xc9\
-\x99E\x94 \x00\x7fqL\xf6L\xb3\xb2\xba\xa3\xdd\xf2\
-L\xe5*\xdf\x9c\xbb\x8eQ\xac0\x1c\x0b8*s\xaa\
-;\x95\x1a\x82I \xa7\x02\x1fk(\x00\xddv\xab\xc6\
-g\x1br\xbeT\xfb\xaa\x5c4\xec<\x93\xb2\xf4U\xa0\
-.H\xd2\xd7\x9f}A\x93\x8c\x14\xf5!\xd1\x88\xd5\xbe\
-\x8a\xfa\xbd\xe7\x16\x9cn^\xa7-N\xf7\xea\x85\x9a5\
-\x08\xc0\xf3'\x14I\x90\xa9\xe9\x93\xcd\xca{\xd1\x87\x17\
-\xbd\xac\xbd\xc2]\x89\xa8\x9b\x96Z\xa0oS\xfa*\x00\
-\xddFMS\x91\xf77\xb3\xb2\x8et?\xd6TtT\
-\x05R\x00\x81\xeb\x02\x14\xa5O0{\x9a4u7\xbb\
-\xaf\xd7\xfc\x88\xee\x11h\xc5\x91\x99\x87\x0b0\x06\xe0\x0b\
-\xa6eL1+k}\xc3F\xdfn\xbdm)\xae\xf1\
-\xa9c%\x85q\x00\x04\xe0\x97\x16\x80\x15\xeb\x1a>\xf0\
-m=\xe8r^\x9d!hr\x93D\xe2dB\xda8\
-\xa2\x05\x01x\x9f\xc9iv\x02\x18\x88\x95~\x96X\x1e\
-\x7f\x11\x99\x83\x11\x80\xd7\xd1\x85?\x9aW\xcf\x02\xdd?\
-\xcfo\xa3\xff\xfb\xb3\xa9y\xabYY\x87\xa5\x8e!Z\
-\x10\x80\xb7\xb1\x9c\xfc\xf3i\xcbv\xdf\xd7\xc7\xd6\xe6m\
-fe\x8d3\xac[@\x00\xb1\x11@\xca(\xc3\xe0\xf1\
-\xbf\x00\xf4\xd5\x95\xd5\x0c\xc6\xd1)#%>\x12O\xc4\
- \x00\xef2*e\x04-\x80\xfd\xf8\xcch\x01\x93&\
-\x09\xb1\xd8\xbe\x1b\x10@\xcc(L\x1efV\xd6\x17m\
-%\x81\xa8\x93\xdd\x86\xe71\xc2\xb0~\x01\x01\x9832\
-\xc5\xe6\x06\xd5T_\x96\x0bj\x06V\x00\xa5\x9e\x14,\
- \x00St\x0a\xb0U\x22\xcb\xe2\xf6\xd2\xc0\x5c\xe0=\
-\x86\xe72$i0\x11\x83\x00\xbcI\xbea\x16\xdb\x92\
-@\x09\xa0\xdc\xae\x8e\x11\x00\x02\xf0*\x05\x86\x03T\x95\
-\x1d5\x81\xb9\xc0U\x9d5f\xfb\x07\x14 \x80\xc0\x11\
-\x98\xd5\x80\xb9\x89v\xa9\xab\xfc>\x01h_4\x97a\
-]g\xbdS?\x87>A\xaa/[\x88\x17\xb7\xedq\
-wL\xea\xfd\x8d\x98`\xb2w\xa3&n\xdd\xddn?\
-\x80\xabu\x88\x00<Lf|\xa6YY\xb5\x86y\xf5\
-\xbc@mW\x9d\x89\x00\xb2\xe23z\xfd\xdf\xea\x0eF\
-\xfa\xe9-\xbay\xcbs\xd3\x7fs\xc8\xc7\xa8\xdf\xf9p\
-\xd9S<\xda\xc3\xd6\x05\xc8J\xc80++H-\x00\
-K\xa1e\x1a\xd61 \x00\xe3\x16\x80\xdd\xcdY\xe7\x93\
-\xfc\x7f\xbd?\x1f\x9b\xe6\xab&\x09E\x02\x08 \xf0-\
-\x80\xc6\xee\xa6@]\xe4\x06\xc3-\xcc\xb2\xe2\x11\x00\x02\
-\xf0 }\x19\xa0\xfas\xb4v\xb7\x06\xea\x22\xb7\xf6\xd8\
-\x9dOfB&Q\x83\x00\xbcGZ|\xaaI9\x1d\
-=\x9d\xbe\xcd\x02\xf4\xa7h1\x14Zf\x0cvZ\x06\
-\x04p\xc8Xm\x01\xde\xd2\xd3\x1a\xb8\x8blyNV\
-\xf9\x16\x01\x01x\x92\xf6\x9e\xf6\xc0\x9dSGO\x07\x17\
-\x16\x82-\x808\xa3S\xe9\x8cv\x05\xee\x22\xb7\x1aJ\
-\x8dMB\x10@\xa0\xc7\x00\x82\xd8\x02\xe86\x94Zb\
-$\x81\xa8A\x00\x00\x80\x00<D\x02O\xa6~!5\
-.\x95J@\x00\xde\xc3j\xe3\x0a}\x0d\x184\x9a\x0d\
-_\x03\xea\x1e\x01\x80\x00<G\x8f\xf3cAR\x5cb\
-\xe0.2\xfdv\x08\xbc\x00Z\xba[\xb9\x9a\xfd\x22\xb5\
-(\x15\x8a\x00 \xac4w\xb7P\x09\x08\xc0{XM\
-\xdf%\xf7= \x00\x1f\xd2\xd6\xd3fRNj\x5cJ\
-\xf0\xba\x00\x11\xa6\xef\x02]\x80\xd0\xb6\x00,\xc7\x00\x9a\
-\xe8\x02 \x00/\xd2i\xf4\xfa.-\x80\xef\xb9\xd3\xe2\
-\xd3\xcc\xcab]\x01\x02\xf0$V\x83SVS\x8a=\
-%\x00\xc3nMG\x14\x01 \x00\x0f\xd2`\x98\xc5'\
-h\x12H5<\x9f\xa6.\xba\x00\x08\xc0\x834\x1a\xa6\
-\xbd\x0aZ7\xc0r`3\x88\xf9\x12\x10\x00-\x80?\
-\xc02\xbd\x98\x17\xc82L\xe3e\x95`\x14\x10\x80)\
-M\x86\x02\x18\x94\x98\x1b\xa8\x8b\x9c\x97`s>\xdd\xd1\
-nf\x5c\x22\x00\x8f\xb6\x00\x0cw\xf3\xcd\x0b\x9a\x00\x0c\
-6\x05\xb1\xaec@\x00\xa6\xec5l\x9aZ\x05L\xd0\
-\x04\xb0\x97\xe6?\x02\xf0*\x95\x1d\xd5fe\x0d6\xdc\
-ix\xa0I\x8c$\x9a%L\xad\x0a\xd0\xa6\xa9\x100\
-\x01\x94\xb7W\x9a\x95U\x98<,0\x17\xb80y\xa8\
-\x9dd;\xab\x89\x18\x04\xe0MZ{\xda\xcc\xb6\xf4\x1a\
-\x992<@\x02\xb0\x93YU\x07\x02@\x00\x1e\xa6\xa2\
-\xc3\xa6\x150$)?0)\xc6\x0aS\x86\x1a\xd6/\
-\x02@\x00!\xe8\x06\xe8&\x98#\x02\xd2\x0d\x18\x91l\
-\xd7\x9a\xd9\xddVB\xc4 \x00\xef\xb2\xa7\xbd\xdc\xac\xac\
-\x89i\x87\x05\xa2N&\xa4\x8d3+\xab\xb8\xbd\x94\x88\
-A\x00\xde\xe5\x8b\xb6b\xb3\xb2\x8a\xd2'\xf8\xbe>\x12\
-\x22\xf1rX\xeah\x93\xb2j:\xf72\x09\x08\x01x\
-\x9b\xcf[w\xd3\x02\xd8\x87\xc3R\xc7\x98\x8de\xec2\
-\x94+ \x80\x18\xb5\x00J\xccR\x83i\xd39\xc5\xe7\
-\xdb`\x15\xa5O4+\xeb\xb3\x96\x1dD\x0b\x02\xf06\
-]\xd1.\xd9\xd1\xba\xd3\xac\xf9|T\xe6\x11\xbe\xae\x8f\
-\x99Y\xd3\x0c\x05\xf09\xd1\x82\x00\xbc\xcf\x96\xe6mf\
-e\xcd\xca:\xd2\xc7\xfd\xff\x04\x99\x91i(\x80\xe6\xed\
-\xbe8o\xf6@\x08\xb9\x0065m5+\xeb\xd8\xec\
-\x99\xee+A?25c\x92Y\x1e\x00\x9df]\xd6\
-Q\xe9\x8b\xf3f\xf7\xe2\x90\x0b\xe0\xc3\xa6Mfe\x0d\
-M*\x90#2\x8a|Y\x0f'\xe6\x1eoV\xd6\x07\
-\x8d\x9b\x88\x14\x04\xe0\x0fj;\xeb\xa4\xb8\xcd\xee}\xf5\
-7\x07\x9d\xe0\xbb:\xd0\xa7\xe0\x82\xdc\xb9f\xe5ml\
-\x8a\xbd\x00\xda\x8c\xb6e\xb7L~\x82\x00|\xca\xba\x86\
-\x0f\xcc\xca\x9a\x9f;\xdbl5]\x7f1/\xe78\xb3\
-\xbc\x86Q\xe7\xe7\xbd\x86\x8d1?f\x1d\xc05\x11@\
-|\x06Q\x1dv\x01\xbcS\xbf\xde\xac,}\x15xn\
-\xc1\xe9\xbe9w\x1d\xb3\xb8`\xe8\xd9f\xe5mm\xde\
-.5\x9d\xb5\xfdr\xec\x16\x13\x8dh\x01 \x00\xa7\xc9\
-\xbaY\x9a\xba\x9b\xcd\xca\xfb\x96#\x00\xbf\xb4\x02\x16\xe4\
-\xce\x91\xd1)#\xcc\xca{\xa3\xfe\xdd~;v\x8bk\
-\x96\x93\x98MT\x87]\x00\xda\x9c\x5c[gw\xe3\xa6\
-\xc7\xa7\xc9\xa5\xc3/\xf0\xfcy\xeb\x0e@\xdf5<N\
-m\xfe\xbfV\xfb\xa6\xaf\x0404)?\x90[\xbc#\
-\x80>\xb2\xa6v\xadiyg\xe5\x7fSfx|b\
-\xd0e\xc3/4M\x00\xf2a\xe3\xa6~}\xfdg\x91\
-\xcfA\xbb@#\x93\x0b\x89\xec\xb0\x0b\xe0\xfd\xc6\x8fM\
-o^\xbd\xb1n\x19s\x9d\xfbj\xd0\x8b\xe8\xc0\xdfy\
-\x05g\x98\x96\xf9B\xcd\x9a~=\x07\xab\x94c\x13\xd2\
-\xc6\x12\xd9a\x17\x806__\xa8~\xc5\xb4\xcc\xdc\xc4\
-\x1c\xf9\xb7\x09\xb7I~\xe2 O\x9d\xab\xb6Ln\x1e\
-s\xadi\x99\xba\xfa\xef\xb5\xbdo\xf5\xaf\x00\x8cR\x8e\
-\xcd\xca:\x8a\xc8\x0e\xbb\x00\x94\xe7\xab_\x96\x0e\xa3M\
-C\xbfd\xb8\xd3\xc4\xbeo\xd2\x9d2\xceh\x99\xed\xa1\
-rR\xde7d\xd1\xf8[\xcd\xfb\xbdK+W\x9a\xbd\
-\x9a\xeb-V\x19\x87\xe6\xe6\x1c\xed9I#\x80\x01@\
-\xfb\x94/\xd5\xda7c5e\xd8\x7fLZ$\x7f\x95\
-\x7f\xea\x80M\x15\xd6\xf7\xfc7\x8c\xbaJ\xfe\xc1y\xf2\
-'\x18oi\xae\xdb\xac\xad\xacz\xa9\xdf\xcf\xc9*\xe3\
-\x90fB\xfe\xc9\xd8\xebM\xb7DC\x00>\xe5\x89\xf2\
-\x15fK\x84\xf7%9.I~0\xf2{r\xff\xe4\
-Erd\xe6\xe1\xfdv>\xf1N\xb0\xeb\xec\xc4\x87\xa7\
-\xfcB\xfer\xf0\xc91\xf9\x8e\x87\xcb\x9fv\x93\xac\xf6\
-7;Zw\x99\x95\xa5S\xb8\x17\x17\xfd\x5c\xe6\xe5\xce\
-v\x85\x00_Od\xc1\x86s\xa2A?I\x0dT}\
-Z\xc7\x92\xcd\xcd\x9f9]\x8e\xff\x96\xb5u\xef\x98m\
-U\xbe/\x05I\x83\xe5\xe4\xbcyr\xc6\xe0\x85\xee?\
-\xc7\x8a\x92\xf6R\xb9t\xf3u1\x91f\xaf\x84=\xf5\
-\x97n\x0b\xcb\x12\x9df\xbc\xb5y\x9bsneR\xef\
-\xb4\x0a\xf5\xdcT\xe0*\x86t\xa7%\x15\x1fIpZ\
-T)\xee\xdf\xfa\xef\xb5\xe5\xa0\xab)\xf5\xf5\xaf\xb6\xae\
-R\x9c\xbf?j\xda,\xb7\xec\xb8+p\xb1\x11\x8a\xb5\
-\x93\xbf)[\xea\xf6\x95c9\x99gJ\xfaD\xf7\xf3\
-\xc3QW\xca\xc6\xc6O\xdc\xc9H\x9b\x9a\xb7\xb83\xe9\
-\x0ef\x9e\xbb\xee\xe63%}\x92LM\x9f,\xd3\x9d\
-\x16\xc6\xa4~\xcaPto\xf1\x83\x03\x16\xfc\x8a\xae\xe6\
-\x1c\x92g+\x00\x9d\xcdyd\xe6T\xf7s\xb0\x04m\
-\xc3\xd8P\x09@w\xb4\xfdU\xe9\x13nK \xe6\x15\
-\xea<9ffMw?\xfb\x8eE\x94\xb7W\xb8\xaf\
-%u\xba\xab\x0a\xa1\xcdibk\xa0\xe9\xcd\xa9\xff\x8f\
-\xca)+!\xc3}\xfa\xe9\xabF\xab\xb9\xfc}\xe1\xd9\
-\xaa\x17eC?\xcc\xfb?\x10\xba\x9a\xf3\xc4\xbc\xe3=\
-w\x0fik\x00\x01\xf8\x18\xbd\xb9u\x9a\xec@,\xef\
-\xcdq\x9e\x1e\xfa\x99\xec\xe1D\xa3\xda<^\xbc\xe7\x91\
-\x01?\x8e\xf7\x1b>\xf2d\xfd\x04U\x00qa\x11\x80\
-\xce\x0bX\xb4\xeb>2\xdb~\x0d:\xe0w\xeb\x8eE\
-\x032\xf0\xb7?\xdaJ\xfa\xb4e;\x02@\x00\xb1\xb9\
-\xb9\xeer$\x00\x7f(\xc6;w\xde\xe3&T\xf5\x0a\
-\xabk_\xf7\x5c=\xe9\xc0\xa0_\xb3C!\x80}x\
-\xb3~\x9d\xfc\xaa\xf4q\x22\xff\xff\xf8\xf7\xdd\xbf\x94\xb7\
-\xea\xdf\xf3\xd41\xad\xae]k\x96 \x84V\x00\x02\xf8\
-#\x1e-_&\xcb*\x9f\x0f}\xf0\xdfS\xbcX~\
-W\xbd\xdas\xc7\xa5\xaf\xea\x96W\xad\xf2\xdcq\xf9-\
-1\x0c\x028\x00\xf7\x97\xfcZ\x9e\xacX\x11\xcas\xd7\
-\xb7\x0f\xff\xbc\xeb^yn\x00f\xfb\xf5\x16\xbd6\xf5\
-F\xbb=\xd3\x02@\x00_\xdb\xf7\xd5Q\xef_\x14?\
-$=\xd1\x9e\xd0\x9cwCW\xa3\xdc\xb4\xfd\xa7\x9e\xec\
-g\xef\x8bNG\xfe\xf9\xee\x07\x10\x00\x02\x88-\xda\xd4\
-\xbc\xd1\x09\x88\xfeJ{5\x90\xe8l\xb6\xcb\xb7\xdc \
-\x1f6~\xe2\x8b\xe3}\xa3n\x9d<\x5c\xf64\x02@\
-\x00\xb1E\x13_\x5c\xb6\xe5\x87\xb2f\xef\x1b\x81=G\
-}\xc5\xa7SY\xab:k|u\xdc\x0f\x97=%\x0f\
-\x96>\x86\x00bD\xfc\xd8+\x8bnG\x01\x22\xed=\
-\x1d\xf2z\xdd;\xeeT\xd4I\xe9\xe3\xdd\x89;AB\
-w\xcc\xd1\x19\x87\xeb\x1b7\xfa\xee\xd8?n\xda\xe2\xae\
-\xb5\x98\x9eq\xf8\x80\x06\xa1&\x99\xf1\xe2\x1c\x05\x04`\
-HYG\x85\xbb\xa8\xa7\xdc\xf9=&u\x94;=7\
-(\xe8\x96\xe7o\xd5\xaf\x97\xda\xae:\xdf\x1d{i{\
-\xb9\xac\xac~\xd9\x15\xb5f\xfc\xd1E;\xfd.\xa2\xe6\
--\xa6;Oy\x81P\xac\x06<\xe8\xcaq~t{\
-0\xcd\x07\xa8\xfb\x04\x06a\x22\x88>\xc1\xae\xd9\xfac\
-w\x10\xd4\xafh\xf2\x93y9\xb3e\xe1\xa0\xf92-\
-\xa3(f\xcb}\xcb;*\xdd%\xca;[w\xcb\x8e\
-\x96]\xb2\xa9y\xab\x9b)\x09\x01\x84\x90A\x89yr\
-B\xee\x1c9>\xe7X9<c\x92\xafep_\xf1\
-\x83\xb2\xa2\xea\x85@\x5c\x17\xdd\x05iz\xc6\x14\x99\xec\
-t\xdb\xc6\xa5\x8eqS\xa2\xeb\x82\xaa\xdel\xed\xae\x19\
-\x8f4\xa0u\x00xO{\x85\xd3\xca(sw\x95\xd2\
-u\x11\xba,:\x0c\xd3\xc6\x11\xc0A\xa0\x9bO\xcc\xcc\
-\x9c\xe6<}\xa6\xb8\x8b\x8b\xc6:]\x05?\x09Ao\
-\xec\x8b7\xff \xd0o>T\x0c\xf9\x8e\xb4u-\x7f\
-\x5c$\xce]\xef\xdf\x1d\xed\x91\xd6\xee6i\xedi\x95\
-f\xa7\x0et\x95h\xe8[\xb9\x08\xc0\xe2fK\x921\
-)#\xdd<\x81\x85\xc9\xc3\xdc\xd4\xdcC\x93\x0b$/\
-1Wr\x13\xb2\xdd\xc1\xb7\xbe\xa0O\xa6R\xe7\x89T\
-\xdc\xbe\xc7\x1d\xfc\x9a\x96>E\x8e\xc9\x9eaz\xcc:\
-\xe0y\xfb\xe7\xff\xca\xc5C\x00\x08 \xd6\xe8\xda~\x9d\
-F\xaa\x0bJ\xb4\xbf\x9a\xea<\x8d\xe2#\xff\xff\x06V\
-\x9fJ\xfatj\xeeiq'\xea\xec\x9fQH3\x00\
--\x99r\xafy\x8e;}-\xf8\xb6\xe16j\x80\x00\
- F\x9c?\xe4,\xb9\xaa\xf0\x22\xd32+;\xaa\xe5\
-\x12\xa7+\xe0\xc5\x857\xd0?0\x11\xc8'\xe8\xe2%\
-\x1d\x8d\xb6D[\x16\x97\x0c\xfb6\x95\x8b\x00\xc0\xebt\
-G\xbb\xdd\xd5{\xd6|\xab\xe0\x0c\xcf\xecq\x00\x08\x00\
-\x0e\x80\xce\x88{\xd1x\xbb.\x1d!\xbfa\xd4\xd5\x81\
-Lv\x01\x08 p\xfc\xe7\x9eG\xa4\xb1\xbb\xc9\xb4L\
-\x9d!xf\xfe)Tn\xf8h@\x00>C\xd7\xc8\
-/\xde\xf3\xa8y\xb9\x97\x0f\xff\x8e\x0cJ\xcc\xa5\x82C\
-\x14\xfc\xceg!\x02\xf0!\xab\xaaW\xbb\xf3\x03,\xd1\
-W\x95\x7f;\xe2R*7D\xc1\xff\xea\xccg\xdeE\
-\x00>D\xe7\xf1\xdf\xb3{\xb1y\x22\x13\xddF\xcbz\
-\xc2\x11x7\xf8\x19\x03\xf01\xdb[w\xca\xf2\x18\xcc\
-\xe7\xbfn\xe4\x15\xee4Z\x08~\xf0#\x00\x9f\xb3\xa4\
-\xec\x09\xf3\xd5i\xba\x90\xe6\xe2a\xe7S\xb9!\x08~\
-\x04\xe0stQ\xcf\xfd%K\xcc\xcb=\x8f\xb9\x01\xa1\
-\x08~\x04\x10\x00^\xdd\xfb\xa6lh\xb4\xddNK\xb7\
- \xd7MN\x99\x1b\x10\xec\xe0G\x00\x01\xe1\xde\xdd\x8b\
-\xdd\x15\x84\x96\xe8\xce\xc4\xa7\x0f^H\xe5\x068\xf8\x11\
-@@\xd0\x04\x16\x8f\x97/7/\xf7\x8a\xc2\xef\xb8\xdb\
-\x94C0\x83\x1f\x01\x04\x88\xc7+\x96IY{\x85\xe9\
-\xf8\x82\xe6F\x0c\xd3\x9e\x09a\x0b~%\x81\xba\x0a\x06\
-\x1d=\x9dro\xf1\x7f\xc9\xa2\xf1?9\xa4rj;\
-\xebdY\xd5\xf3\xb2\xb2\xeaei\xean\xa6b\x03\x1c\
-\xfc\x08 `\xack\xf8@\xfe\xa7\xeem\x99\x97s\xdc\
-Au#\x9e\xaexV^\xaayM:\xa3\x9dTf\
-\x08\x82\x1f\x01\x04\x90\xfb\x8b\x97\xc8\xd1YG\xf5:{\
-\x90f\x09~\xb2|\x85\x9b\x22\xcc\xcf\x99\x82\xa1\xef\xc1\
-\x8f\x00\x02\x88\xee\xfc\xa3\xbb\xe9\x5cUx\xf1\x01\xff\xbb\
-\xf5\x0d\x1b\xe5\x89\x8a\xe5\xf2A\xe3\xc7TZH\x83\x1f\
-\x01\x04\x94e\x95\xbf\x93\x85y\xf3\xffh2\x8f\x0e\xe8\
-\xbdV\xf7\x96\xfb\xc4\xd7\xa9\xc4\x10\xee\xe0G\x00\x01\xe5\
-\xcb\xecA\xf7M\xbc\xd3\xfd[\x07\x08W\xd5\xac\x96\xa5\
-\x15\xcfIYG%\x15\x14\x1c\xaa\x9d\xcf\x89N\xf0\x1f\
-\xf4L0\x04\x10Pt\x0b\xab\xa5\x95+\xa5\xad\xbbM\
-\x9e\xa9Z\xe5\xe6\x11\x80\xc0\x05\xff\x09N\xf0\x1fR\x1f\
-\x8e\xac\xc0\x00!\x0d~\x85\x89@\x00!\x0d~\x04\x00\
-\x10\xe2\xe0G\x00\x00!\x0e~\x04\x00\x10\xe2\xe0G\x00\
-\x00!\x0e~\x04\x00\x10\xe2\xe0G\x00\x00!\x0e~\x04\
-\x00\x10\xe2\xe0G\x00\x00!\x0e~\x04\x00\x10\xe2\xe0G\
-\x00\x00!\x0e~\x04\x00\x10\xe2\xe0G\x00\x00!\x0e~\
-\x04\x00\x10\xe2\xe0G\x00\x00!\x0e~\x04\x00\x10\xe2\xe0\
-G\x00\x00!\x0e~%\x12\x8d\x92\x10\x08 \xac\xd0\x02\
-\x00@\x00\x00\x80\x00\x00\x00\x01\x00\x00\x02\x00\x00\x04\x00\
-\x00\x08\x00\x00\x10\x00\x00 \x00\x00@\x00\x00\x80\x00\x00\
-\x00\x01\x00\x00\x02\x00\x00\x04\x00\x00\x08\x00\x00\x10\x00\x00\
- \x00\x00@\x00\x00\x80\x00\x00\x00\x01\x00\x00\x02\x00\x00\
-\x04\x00\x00\x08\x00\x00\x10\x00\x00 \x00\x00@\x00\x00\x80\
-\x00\x00\x00\x01\x00\x00\x02\x00\x00\x04\x00\x00\x08\x00\x00\x10\
-\x00\x00 \x00\x008\x00\xff+\xc0\x00\x1c{0\x19G\
-\x03\xd4k\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
+\x00\x00\x18\x8azTXtRaw prof\
+ile type exif\x00\x00x\
+\xda\xd5\x9bYv\xdc\xb8\x96E\xff1\x8a\x1a\x02\xfaf\
+8h\xd7\xaa\x19\xd4\xf0k\x1f0\xa4\xb4l\xcb\x96^\
+~=+\x1d!\x07\x19$p\x9b\xd3\x00L\xb3\xff\xef\
+\x7f\x8f\xf9\x1f\xfe\x14\xe7\xac\x89\xa9\xd4\xdcr\xb6\xfc\x89\
+-6\xdf\xf9\xa5\xda\xe7O\xbf\xaf\xce\xc6\xfb\xfa\xf6\xc7\
+\xbd^?|n\xde\x7f\xf5\xbc\x07\xde\xc3s\xa0\xe6\xd7\
+\xb7\xde>w\x1f.c]\xe7\xb7\xf4\xc3\x85\xea|\x1d\
+\x18\x1f\x0f\xb4\xf8\xbc\xfb\xfa\xd3\x85^7\x0a\x1a\x91\xe7\
+\x97\xf5\xbaP{](\xf8\xe7\x80{]\xa0?\xd3\xb2\
+\xb9\xd5\xf2\xe3\x14\xc6~\xde\xd7\xdbD\xeb\xf3\xd7\xe8\xa5\
+\x8e\xe7>.\xbd\x8e\xfd\xf4\xefX\x88\xdeJ\xdc'x\
+\xbf\x83\x0b\x96\xd7\x10^\x03\x08\xfa\x1bL\xe8\xfc\x12x\
+\xf5!r\xa2\xe3\xa7\x87x_]x\x8b\x09\x01\xf9]\
+\x9c\xde\xff4Ft4\xd4\xf8\xdb\x93\xbe\x94\xad\xb7\xdf\
+\xcc\xcf\xd9\x8a\xfeuJ\xf8)\xc8\xf9\xfd\xfd\xb7\x9f\x1b\
+\xe2\xf0\xdb\xac\xdc\xd0\xffp\xe7X\xdf\xcb\xe4\xc3\xe7\xa5\
+\xb8\xfeVG\x1f\xa2\xaf\xbf\xe7\xacz\xee\x9c\x99E\x8f\
+\x99P\xe7\xd7\xa4\xde\xa3\xa6_8op\x0b\xdd\xba\x1a\
+\x86\x96m\xe1o\xe2\x12\xe5\xfe4~*U=)\x85\
+e\xa7\x1d\xfcL\xd7\x9c'\xfa\xc7E\xb7\x5cw\xc7\xed\
+\xfb>\xddd\x88\xd1o\xe3\x0b\xbfx?}\xb8\x1f\xd6\
+P|\xf33(\x7fQ?\xee\xf8\x12ZX\xa1\x92\xd7\
+y\xd3\x1e\x83\x7f\x1f\x8b\xbb\xb7mv\x9a{\xb7\xca\x9d\
+\x97\xe3T\xef\xb8\x98\xe3+\xdf\xfe1\xdf\xfd\xc29j\
+\x05\xda\xbd\xbe\xc7\x8aqy\xaf`3\x0ceN\xaf\x9c\
+FF\xdcy\x055\xdd\x00\xbf\xfd\xfc\xfcGy\x0dd\
+0)\xcaj\x91F`\xc7s\x89\x91\xdc?H\x10n\
+\xa2\x03'&\xde\x9f\x1ete\xbd.@\x88\xb8ub\
+0tCtd\xcd\x85\xe4\xb2\xb3\xc5{\x00\x8a@V\
+\x12\xd4\x19\xbazf\x90\x01\x97\x92_\x0c\xd2\xc7\x102\
+\xb9\xa9^\xb7\xe6+\xc5\xddS}\xf2|l\xf8\x1c0\
+#\x13)\xe4P\xc8M\x0b\x9dd\xc5\x98\xa8\x9f\x12+\
+5\xd4SH1\xa5\x94SI5\xb5\xd4s\xc81\xa7\
+\x9cs\xc9\x02\xc5^B\x89\xa6\xa4\x92K)\xb5\xb4\xd2\
+k\xa8\xb1\xa6\x9ak\xa9\xb5\xb6\xda\x9bo\x01\xd0L-\
+\xb7\xd2jk\xadw\xee\xd9\xb9r\xe7\xdb\x9d\x13z\x1f\
+~\x84\x11G2#\x8f2\xeah\xa3O\xcag\xc6\x99\
+f\x9ee\xd6\xd9f_~\x85\x05~\xac\xbc\xca\xaa\xab\
+\xad\xbe\xdd\xa6\x94v\xdci\xe7]v\xddm\xf7C\xa9\
+\x9d`N<\xe9\xe4SN=\xed\xf4\xf7\xac\xbd\xd2\xfa\
+\xcb\xcf7\xb2\xe6^Y\xf37S:\xb1\xbcg\x8dO\
+Ky\xbb\x84\x13\x9c$\xe5\x8c\x84y\x13\x1d\x19/J\
+\x01\x05\xed\x953[]\x8c^\x99S\xcel\x03\xfeB\
+\xf2\x0c2)g\xcb)cd0n\xe7\xd3qo\xb9\
+3\xfe\xc9\xa82\xf7\xaf\xf2fJ\xfc\x907\xff\x9ff\
+\xce(u\xdf\xcc\xdc\xafy\xfb]\xd6\x96\xf0n\xde\x8c\
+=]\xa8\xa0\xda@\xf7q|\xd7\xeek\x17\xd9\xfd\xf2\
+n>;\xf0\xdd\xf7\xff\x9a\x0b\x8dQ\x8e]g\x862\
+\xd6*!.\xe0\x83\xec\x12M[{\x14\xa4\x86\x98\xc6\
+\xea1\x9d}\xb2\xd8\xd6\x80\xc6\xab\xf4\xc3\xc1P\x00\xbf\
+\xb2\x09\xec\xc8\x87Z\x99yPn\xa7S\x8b+\x9f<\
+w8\xbcw\xa8\xfa\xec}:\xaf\xfe\xf4\xb2\xf6I\x8d\
+s\xe9~\xbf\xba\x0f\xbb\x9c\xe0\xe7Z+\xb42\xa8\x81\
+\xb1R\xde\xe7\x08\xe0\xe7\xd0\xfbv\xf1\xe8}\xc5R\xf4\
+\xeeS8g@\xec\xe79b~=t\x92U\xcd1\
+\xee1\xda\x8e\xe5\xe4\xb1\x19m\xd39\x96\xa9D*W\
+\xbfO\xdf\xee\xa5{\xe5\x8e\xdb\xc4\xce\xa7\x99\xfa>\x1f\
+\x0f\xbc>O\xbb\xbb\x98\xdc^>\xad\xc9\xa4\xe9\xaeq\
+\xe69\x15\x16\xf0w\xb0w@\x12\x11\xcf\x80\xeep\xe8\
+\xfe\xf7\xb1R\x80?\x1f\xb9C\xad'7\xbf\xb7\xa3r\
+O]\x87\x90L\x02\xd9\x9c\xd9\xe9~\xc9\xf6;\xdc\xdd\
+\xc3\x8dH\xd3\xe8\xe8\x07h\xe5\x93#\xb4Yr\xb1\x8c\
+\xd8\x00\x96\xb3\x97)3\x9f\xc3(@\xa4Yi\x1a\x9d\
+\x5c5\x08\xde\x93[\xc0T\xbb\xe3\xdbs\xd7?\x1c\x1b\
+fE*\xe7\x89l\xfd1\xae\xefQ\xbd\xa1c\xcc7\
+t|)>#\xfc'\xac\xcf1\xf3\xf1\xe0g\xb1e\
+$\xfef\xf6\xd3b0\x1f\xab\xe1\x93b\xf8,\xc2\x0a\
+\xb0\x8a\x82q \xfdn\x14\xdb3\xc8W|\xef\xa1_\
+\x8e\xfc\x1c\xdf\x1b^A\x8c\x02l\x9e\x083\xcf\xfa\xa4\
+\xf9\xdc(Rn\x8a\xe3\x13\xe1O\x8e\x8c\x0f\xe15_\
+\xab\xdb\xbf\x97\xad\xf9Z\xdd\xfe\xbdl\xcd\xd7\xea\xf6\xef\
+ek\xbeV\xb7\x7f/[\xf3\xb5\xba\xfd{\xd9\x9a\xaf\
+\xd5\xed\xdf\xcb\xd6|\xac\xdb\x9d-h\x99\xe1\xe7S5\
+\xa5\xb1\x138\xd9\xa7 \xb5\x8e\x19\x80\xd7\x11\xee\xd8\xd3\
+\xd8u\xea*\xbc\x87S\x87\xd9\xed\x94\xfa\x1f|Q\xdf\
+\x1b+\xe7\xbe{\x8a\xbbVsR\x09i\xae\xd2\xf2!\
+\x0e\xc2\xefq\x96\xb4!cO\xb5\x1d\x982\xea\x1f\xf6\
+/\xef\xc6~\xf1\xc4\x7fy\xa1\x04\xa1\xe7\x05?\x8c\x98\
+\x97\xdf\x85\xec\xed9\x08\xa9Ksd4B\xf3\xf1z\
+\xd0b\x90\x1b\xd1\x9e\xb8s\x05\xf0]\xf1\x99\xd7\xb5\x9a\
+_\x9b\x9f\x91\xdb\xca\x5c\x06\xc5\x10\xf9\xfe\x1aS\x84\xb0\
+\xd6\xc0\x19S\xd2\xb0\x5c\x18\xad\x1f8'\x9b\xb0\xfd\x9c\
+\xc9\x8d\xd9\x5c\xa6\xae\xe1\xa5\x1cjB\x9bT\xac\x0a\x8a\
+f\x17\x8bb\xf2\x16\xd9\xc1\xeb\x09\xb3n>th\x96\
+\xb6}\x1c\xeb\xb8\x901P\xdbt\x94\xc9\xac\x0d\xb5&\
+\xa5F\xd2\x90a\xbb\xc7S\xc2\xc2l\xc9\xd8\x85\x94\x8f\
+\xa3\x14{;\x09\x19\xc6l\xda\xf4\xbe\xa7D\x9e\x18\x9b\
+\x7f\xa0\x04\x18\xd9$\xacL(\xd3\x93b\xe4\x98\x1b\xc9\
+\x97\x9aCs\x08\xdflc\xaa\x93\xd1\xb7+N\xc7\xa0\
+N\x0e$\x9e\xda\x85\x14z\x8a\xb2\xbft\x14\x1d\xf5\x7f\
+\xfb\xcc\xaa\x90\xe1i\x8f\x0a\x82p\xa9\xdc\x19\x0b\x88I\
+\x8d\xe2\x9c\x18\xa8\x8fh4\xea\x9d\xc1\xa1\xa7\x96\xcd'\
+]\x8f\xa3\x82w\x04{\xaf03\xfa\xd9\x0f\xdf\xa2B\
+5\x5c\xc9\xc4\xad\xe4\xeds\x0b\x93\xab\xc0\xf8;\xe6R\
+\xb9;G%5f\xa5\xfcOl\x9dz\xedg\x88\xd7\
+\xea\xe8\xa9\xcc\xd4\xc6\xaa\x05\xf1\xd9\xfb\xaa\xb3(\xc2\xb9\
+\xb7\x86Qa2\x0e\xe9<\xa3\xe3\xcb\x04\xce\x06\x92\x82\
+\xe0\xab\xad\x13\x81Vb;\xe8\xe4h\xe8\x07\xbf\xd1\x1e\
+\xd1\x8eV\xaa;D\x09\xcf\x9f\x8bW+x\x8bxe\
+(\x03\x1c\xd9+\x85\xd5\xd2^s\x033\xc3%\xce\x9c\
+\x13\xc38c\x5c\xa3\x19'\xec\x09\xc2\xb9\xecC\xc7\x0a\
+9\xdfs\xdb\xb34$\xedl\xb9\xa6\x14\xd1(\x07m\
+$\xbc+\xd8Y\xc4*\xf58\x0f_\x9b(&\xb2\x84\
+\x801\xbeSv\x8e\x8a\xf5I\xd7\xb7\x01_u\x16\x02\
+\x95\xf4\xee\xb4\xecA\x87#\x84)\xaf>7\xdfF\x90\
+\x0f\xf0$\xe6L1\xa1\xb4\xebK\x9c\x99\x89!F\xdf\
+\xd6SQ\xbe\x83VV\xdc\xe3(\x0c\x07\xda\x18c\xe4\
+:\x171u\xb1\xa2\xcfq\x12\xfb\x14\x8a\x14N\xd96\
+\x15W\xde\x8a\xc0\x8c\x9b\xfa_\x8b\x00\xdd\xbf\x06\xc8\xb0\
+\xfa$c\x94\x16\xff\xd5\x15\x93\x8f\x8c\x0e%\x18Si\
+\x93Z\xe0{\xfd\xd6Q\x22\xbe(\xba\xc1T\xd7$\x90\
+\x13{\x9eK;\x88y\xc5\xf5\xa0\xf8H\x8e0\xc8\x0b\
+\xf2zm2h\x0e\xb5\xee\x87\xdd\x94\x00\xa5\xe9\x11w\
+\x06P\xf7\xa3^\xf8\x89\x951\xf7;g\xfb\xf5\xf7\xe3\
+\x08{;\xa6_\xb0\xc7\x9aP\x8e`\x9d\xf3\x99\xb1\xc1\
+h\x80\xdf\x22\x9e\xd8\x19ej\xba\xd5\x03\xe3\x02@p\
+5\xa5/\xd2\xb1&\xa6\x0a5:\x17h\xeeL\x83\x88\
+\xa8+\x82l\x99n\xc5\x99\xb5Y\xc6q\xe9\x84\xac\xb9\
+\xce\x01K`\x8e\x16Q\x1e;7R\x12\xe9B\xee\x0d\
+~\xce\x16\xaa\x9b:\xdc\x0dL\x805\x0a\x8c\xa22\xe7\
+^RZ\x09\xc2)4R\xc6Y\x95\x13\x09-\x99J\
+\x8b\xa8\x12\x9c\xe1\xea(t1 P*\xdekS\x13\
+eXw\xf5\xd1\xcaN\xf0\xd6;\xe5\xba\x86\x94z\xf4\
+\xc8\x84v\xec\xf6k\xcd~\x9d\x13m\xd2I\x88{\xf8\
+\x14#\x07X\xd0>m\xd8\xc2t\x86AWK\x0b3\
+\x87\xe0\x00\x9c\xd4\x03|XJ\xf7\x9e\x91\x04\x8a\x99\xda\
+\xee\xb8@+h\xc5\x0f\x14\x1b\x89L\x1a-Y\xd4x\
+.\xb6Q\xc582S\x99\x8eZ\xbc\xe0f\xc9\x1c\x97\
+\xf3Q\xcb\x0b\xb38\xb2\x92\xb8\x84\xd3\x12P\xc1\xd2\x12\
+\xdb\x88\x11\xe0\x1aX\x83\x02\xb4\xe6N\x22\xf0\x84\x07\x7f\
+iZ\xc8\xd0\x0ee\xc7\x8c\xa9\xb2U\xb8\x10U\x05\x9a\
+\xa5](\x1e\xea%$J\x17g\x89\x8b\x83\xb0}q\
+\x9b\xd7\x1be\x97\x06\x9e\x84A\xd5f\xb8i[\xa1\xd0\
+f\x05\x87\x0a\xe3V\xa2\xe1\x1d7$\xaa\xccx\x8c\x9e\
+W\x00\x82g\x0c\x80\xe6T\x83\xa3(`\xe3-\x10]\
+\xd3\xeeLk5C^G\xa4\x91\xc9V\xe0\xee`\x0a\
+}a\xd1\x144Z\xb5\xb1\x12\xf7\x10\xd6t\x88\x85Q\
+U\x14*\x9cA\xc0\x8a\xb2>\xe2n\xc3\x13\xc6e:\
+\x97-\x1e\x99Z\xb5\x9e\xd2T\x15.-h\xa0PB\
+)\xec\x19<\xd3\x1e3\xa5P\xc8\x06\x08r\xb0\xbbS\
+\xab.\x8b\xacP\x03\x85\xfe\x1d\xd9\x0cn9\xc5\x14\x90\
+\xbc\xbf\x8c\xe0f.4\xd1\x14\xa2-\x01\xec\xd4H0\
+\xf0\x89\x0c\x88\x86\xfc\x8c{\x00\xe0h\x12\xe6\x16w\x0c\
+\x80\x8f\xa9\x90U\xd1\x90A8B9U\xc3\xfe\x02A\
+\xd1w\x98\xedB\xc4\xe1\xc4\x01\xe2\x025V\xb2\x8e\xd2\
+\xe1~\xd5\xcb\xc11H\x90\xb0wC\xf6=g\xd4\x12\
+\xb7s\x9d\xc1&\xe9\xc3q:\xad?\x1eW=\xe3i\
+\x0c\x85\xf0z4\xd0\xacX9n\x04\xf9\x028\x1d\xfc\
+\xa1\x96\x88\x11~\x93B@&\x82\xfa\x85+\xd0>\x87\
+y\x94\xbe\x9d\x1f\xd4:\xba1`\x18=\xe4U@F\
+2/Jr\xb7\xd5[\x9dw\xf9\xef\xe2\xd1\xa2\xa2\xb6\
+z\xe3\xcaM\xfb(\xca\x1c\xaeD\xcd\xe8\xa1\x93!\x19\
+\x14%\xd5\xa6\x12,\xe4\xeb\xcatZ80\xd0\x1d_\
+Xk\xe0\xe0\xf5]\x10\x0a\x8c\xbaBv\x95F;\x16\
+\x90\x80\x13\xcdD\x8ePBP\x00\xa0\x9e\x8b\x93\xe4\xb2\
+\x05\xdaJ)\xc1N\x09\x84\xec\xda\x16`X +b\
+F\x08\x9e\xaeJA\xa3\x14q\x13\x15{\x1a\xd2oh\
+\xe5F\x18\xd4\x1a\xae\x99\xd8\xb5\xa0f\xf1 D;9\
+q\x1f\x0a{zJ\xb1\xf0\x0d>\xd3\xb2\xcfD.\xc5\
+\x15\xe9\x9e\x01$\xd6Fe\xe78jC\x84 \xa1 \
+\x07\xce\xa1\x99\xcf@&\x9c\xd8\x85\xbf\xb4;H\x16c\
+\x1d\x14X%\x9a4w\xb6\x9e\xfa\xb5\xb7\x8fa\x93\xb6\
+-\x05\x09R#F2\xc4=\x93gZ\x1d\xccm\xe8\
+3-$1.j\xc5\xceNz\xa0\x94q\xb4\x8a\x04\
+\xab\x13\xd7\xedmo\xf4\xbe\xa5\xbe\x80\xbf\xf1\x18?\xf7\
+\x0a\xfd\xd4\x92\xcd\x0f\xb8~\x13\x0b\xbfC\x88\xdc{\x07\
+\xdb$6\x98\xda\x96\x06B\xe3u4\x95\xe4X\x0a\xa8\
+Z\x98\xaaA\xa7+\x81\xd4\x94\x8c*\xa1\x1c\x07\xc0\xf3\
+\xeb\xb8\x5cC\x9f\xb9\x10!\xa2\x09\xef\x00^\x9d\x92\x91\
+Pd\xd4~\x12\xe8\xb3\xc8\x1a\x818k\x87\x95\xe1y\
+\x11\x85G\x05\x80\x1c\xcc\x02\x05t\x02\xec\x07\x02T\xe8\
+\x10\xa0\x93\x96k\xd0m(\xb4\xbc\x1a\x88\x99\xddD8\
+o\x0d\xb4\x89\x09r\xb4\x04G\xc1\xc9[\x96so\xd8\
+\xf5*>\x07Z2\x80\x81\xa4\x88\xa2\x0d\x10\xc9:\x8c\
+\x15\x84\xd0\x22\xf2-g\x14+\xfdf\xe6!\xca\xb3\x8b\
+\xe5bG\xec\xc3s\xe8\x05\xfa7\xa9F>\xca\xbb_\
+\x89]\xea\xea\x00\x8cg\x1b:uq\x03\xb8\xaf\x91\x05\
+\x8c\x94\x1f2\x9f9\xc1\x194\xee\xd1\xa2\x22\xect\xc6\
+\xc4\xca\xe5-6\x99]\x0c\xc6\xb7\x0a\xe2\x03\x01\x0a\x9e\
+\x94aZ\xb3~\xdfh\xd4\x04\xf0\x80\xd9-\xa0\x9b\xe8\
+\xa3\x15i\xaf\xb5V\xd5\xdf\x08\xad\x80\x8b\x09\xa1\xd8\xa3\
+\x1f\x12\xcf\xcb5\x00\x87\xeeF\xfalm\xb0\xa4dS\
+&T\x01q\x05]\xc3x\x09exEF\xdcwJ\
+\x99)\xc1l\xf9\x84 \xabJ\xfd\xb6\x80\x1cG\xd7\xa9\
+\x99@\x83\xd0\x87Qt_Ax\x0f\xc1\xe3\xd3&p\
+\xb5\x1a\x93)o\x8e\x0d\xbd\xd70@\xa8\xad\x22\x9f\x0a\
+U\xdd\x1eX\x01J1\xb3D\xa6\x011\x12\x99\x98G\
+\xe2\x82\xdd\xc2X\xdc\x00>{\xad:\xc07\x13,\x9a\
+\x81\xc4\xca\xe7\xa1~\xdcO\x030?\x8e` 9\xa6\
+\x05\x0d\x91\x02\xa5\x86\x002n\xf1\xa7GP\x12\xe3\xb5\
+\xa4\xb2R\xa3\xd8\xe8\xb6\x00\xff\x85\x85j\xab7\x8ff\
+\xc2\x7f\xfd\x0e|Y\xa7\xc5]]\x92\xc3\xcfz\x04\x84\
+\xcd}`\x1d\x12\x873\x86\xe0\x10\xbf\x04\xba\xfa\x0c\xcc\
+\x07:\x87\x86\x01\xf4\xe8~Wa\x890AW\xe6\xaf\
+\xe5\xd6\x18@\x9d\xadM\x9f\x956\xce\x83qRjc\
+h\xeb\xecv\xe1p\xb7\x9a\x7fZ(4\x9f-->\
+\x0b\x1dU\xb1\x08\xf6\x82\xeb\xb8\xaf\x07N\x1cS\xda\x91\
+*\x0c@\xf3\x9cdr/\xc5\x08\x0f\x81k\xb1}7\
+2)\xac_R\xb9|\xa9x\xf8\x89\x0b\xe1\xab!\x81\
+\xbb\x84\x01\xf0\xe1\xd4)\xa6\x9b\x86\xda\x0b\xb6\x84\xbf\x16\
+O[_\xcb<\x04\xb8\xdd\xb0e\xd8\xe4DI\xbe\x81\
+\xf5\x00\x7f\x90\x11\x93\xc9\xdf8\xc2\x0b\x08\xf7$Y\xf4\
+\xcc3@\x99\xfa\xd5\xbc\x90\xe7O\x13\x811)\xea\x0f\
+\x13y\xcdc0\x05\xc7\x10\xfc\xec\x06\xb2<\xd9\x1d\xdc\
+@k\x1b\xe0\x04E\xe6ky\x83\x06\x8f\xeb\xb9(\x1f\
+t\xdf6v\x05{\x8eP\xd1:E=X\x02\xf1Z\
+zx\x0d\xf1\x94\xb8\xe1v\xf0-u\x8f\x11[\x9d\x1b\
+\xd5\xbbZ\xc1\xe4\xaeGV9\xf2S?\xa7S\x03\x9f\
+\x22\xfe+lw\xa8\xa8t\x83\xb8T\x83\x00\x02\x82t\
+\xa2USd\x0chR<2\xd3\xda-\x0a\xf2\xe2\x91\
+\xa9\xb96\x14\x91\x02f\xe7\xab.e\x11\xdeBa\xef\
+\xe1\x89&!\x0eU/\xf1\xae\x09!\x16\xd0\x154Z\
+\x9ew\xc2K\xe8\xe2\x09\xc9]m\xd0ffi\xfd\xbb\
+\x8b\x06Z\xa1\x99\x99[\xb6\xaa`\x0c-\xd6-\xb4\xb5\
+\xa2\xac\xfe\x83\x1eV\xf7yY\xc1|\xed\x1b\x17\xb5\xb7\
+`\x08D\xdfj\xfd\xda\xe4Kq\xd6\x80\x0f\xba\x08\x8a\
+\x8eT\x03\x95W\x0c\xb6\x15\xd5\x851\xe5\x1f$\xf7\x93\
+\x9c\xdc\x94 Jh0a\xf2e\xa3\x04\xd5\xe0ya\
+V\x00a\x1a\x04\xbd@\xb1\xda\x82\xe0\x0c#Udh\
+'\xf5\xd2h\x89\x92\xc6\x15 \xf5\xb4\x08\x8er\x14\xdf\
+\x9f\xfeV\x8b\xda\xdc|'Ask\xf1V\xa2\x8c=\
+cP%*\xfco\x95\xd8\xc6\xf6\xda\x04\xa1\x87\x0b\x16\
+\xces>\xcatZ\xb4\xeb\xc1\x1bb\x06*\xd2\x91^\
+\x93\x13*\x94\x0e\x94\x81\xcf\x97zgJN\xae]\xe0\
+\x86\x22jW\xcd\x7f\xdak\xdcd\x003\xe8l4\x22\
+r\x99QY\xc1\x16B\x19,\x81\x96\x98,\xd8N$\
+\x91$@\xa3\xd8\x94\x5cM\xd4_\x1fS\xfb\xf6\xc5.\
+$\xf4\x9eO\xa7\xa2\xd8\x1e\xa1\xb8\x11/6j\x1d\xf2\
+\x8f\xc5)jT\x81\xe1%\x9f4\x10\x9ag\x85}I\
+.\xc36\xbb\x03\x19\xa0\x07\x83\x19j\x13/\x1dt\x19\
+R\xab\xb6W\x0b^%\x08:<Z\xf0\x96\xd2?Z\
+\xd2\xbc\x89\xc97-\x89\xa5\xc0Y\xe2i\xd7\x03*\x1a\
+;\xa9j\xaf\xfct1\xe0\xef\xc0\xd0\xfci\x03F\x0b\
+\xa3\x85\xa8#\xdep)#E>\x07\xa3k\xc4\xab\xe1\
+o\x90WZ\x82\xe1\xac(YSW\xa9\x80\xfd\x0a\x08\
+\x0cl\x16&\x0d\xc1\xd5=ra0\xc8\xa2*\x83\x0d\
+h\xb6X\xae\xb0G\x19\xd0\x0c\xb1\xf5\xb8/:\x16\x0a\
+\xa4jWt\x22\xaf`\x81\x00\xb3k5v]\x1b\xc3\
+\xb7\x06\xa2\xa07\x81\x167Ar\xad\x94\x00\x8d\xce\xe0\
+\x08a81&\x84 \x0a\xd36\xfcA\xcd&\xd2N\
+\xf85m\xc2#I\x82\x97n\xd1B\x18\xb6{7\xcf\
+8\x91\x9bE\xb5\x88)\x18\x9b\xae[\xcb\xc6-\x91\x80\
+\x81\xd3Z\x1a\xe4\x94\xa3\xdb\x06|=\xe8\x15\xc4I\xef\
+\x97\x19p\xe0uh\xaf\x89b`\x1c'\xb6-\xc7H\
++;\xf2\x82m\xda\xc8l-\xb7\x04ms\xeaz'\
+\x92I\xc3\xd7;\xbe\x0f;4\xb4|\x02\xb7U\x89\x0d\
+ej\x95\xdd\x9feda$\x9a\xba\xbe\x16\x1a\xac\xf8\
+\x15H\x8e\xc8\xbbp\xc4\x84\xb9\x18\xd0\x14O\x80\x08b\
+\x02\x03\xfds\xd0\xb1Yf:x\xc4H\xb1J=\xe2\
+\xba\x82m\xd4\x22*\xb0bz\xec\xdeb\xf4\xc9\xbd\x91\
+\x9ah\xca\xe4\xcdjz\x1c ]\x1esx'=\xae\
+@\xc3\xa3\xe0#\x8d\x93\x94Q\x92\xac5\x84\xcd\x99D\
+1\x90\x1e\xa0\x1c\xdb\xab-\xcb\xc7\xc7\xe0}\x88\x117\
+\x06\xe9\x88\xaf\x9a\x15?\xae\x95%\xf4\x8fv\xdb\xda|\
+\xd9\x9b\xa4\x85#.\xb5\x04s\x82\xc01\x1d~\xcc\xaa\
+Xd\xe8\xacC\xf9\xa3\xc2\xa4\x08\x98\x06\x9a.\xa2\xbf\
+m\x90\x1b\x8c\x1e\x81\x05\xf3n4\x0f\x86\xb7\xfb\x82\x1a\
++\xa0$l\x89\x03\xd5\xc6\xed\xe9M\xcfR\xdc\x10\xa2\
+j)^\x12\xf1\xa1\x17\x9fN|\xda0\xa0U\xc2\xa7\
+\x96\xaf\xa4\x95\xb4\x15\xe2\x0c\xc5\xd9\x04g=QdA\
+\xf9\xff\x8cEd\xfejt\xc09v*\xe1\x00v\xa7\
+\x84\xee\x964n\xc4\xc4\x0ar\xdcu_\xc0\xec\xdc\xec\
+\xf8\x7f\x98\xa7\xdc\x9d\xc7\x0f\xbcsi\xa7\xfeB/\xe6\
+o\xfc#\x90E#\x0f\x10\x8d\xe2s\xe0S\xe7\xe2\x99\
+\x86\x92\xc5*Q\xe5\x80ro\xc0\xc8\x96\x88\xc74Q\
+\xa5J\xba\xc5?,O\xf7\xd3\xad\xa9a\x91+\x05\x01\
+\xe2V\xb4i\xefQ\xb5\xcfP\xe5\x82\xa4\x0c\xa8,b\
+\xdf,\x1a2\x00T]\x126\x07OK\xc6\x11\xa8\x0b\
+,\xfc\xa1[\x8bl\xbd\xe0}\x07\xad\xfa\xc2\xa4q \
+MI\xefq\xf8\x84E_\xd6IJqr\x06\xd7\xc5\
+\xd9\xce\xa1\xcbK\x9c9\xa2\xf2\xdc\xc1R\xe2\xdeh\xfc\
+\x08Zw\x10\x8e\x82\xc4h\x8dN_$\xbbr\x9f\x88\
+\x19\xa1/\x0d\xa1=\xaa:\xa7\xa1'0HT\x9cu\
+\xa32\x82\xa1Up\xac\xd4\x8e\x5c\xf8d\xb1/}\x9b\
+\x89\xee\xa2\xf0\x0e\xe8\xa2\xb5A\xcc\xf5@\xb1W\x00O\
+\x0bE8,\xe3\xf6\x12\xf9\xe2\x15A\x0aOk\xf6\x81\
+1\xe5\x18\x22\xa5\xaevTwR\x5c9<;9#\
+\xf4\x0b\xcd\x90\xc9\x15\xe3L\x18\xc9u7|\xab\x9e\x17\
+\xa0\x8d\xb5\x0c\xb6\x19\x04S_Z\x98w\x8b\xfc,|\
+\x858\xb4\xc1]Y52\x22\xf81\xddlZ\xb3\xef\
+NK\xe6w\xc1\xcal_k\xcd\x00~\xac\x085j\
+na4\xee\xce\x81t@\x19\xaf\x9d\x83\x15\x92\xd6\xd8\
+\x9e\x9d\x03\xd4\x95\x96\x9b,\x83\xa3\xaa\xb4\xbac!H\
+J\x04\x98\xddx\xd1\xdc\x18\x82VS*\x91Dqp\
+\xe7\xeeI#\xf3\xe8\xb6j\x1dkg\x9aV\xad\x83<\
+\xc1\x9e\xc8\x91\xca\xd3\x8e\x16\xb1\xa2U\x8fgH\x81P\
+\xeb\x05\xcb\x12\xa1\xe3\x0d \xb9\xcd\x84]E\xde\xe0^\
+<\xfeeG\x8a\xed\xc0\xfa[\xf2\x12\x0a\xb1\xb02\x11\
+F\xe0\x80\xfb\x86\xe1j5\xa8j\x91\x19\x09T\x05\x22\
+\xf4z\xadc\x11bY\xba\x0d\xdf'\x89\xa56Gk\
+\x22w\xeav\x0b\xc3F\xd7\xf8\xf0\x03\xf6\xf2\x1a\xc9\x93\
+\x92\xc6gxd)\x81\x90|\xa0\x88z\xce\xae\x12~\
+\x8c\xdfP\xd5d\x0b\xca\xe8\xd1\x80\x84\x0c\xe1\x12]\xcb\
+B\xa0\x86\xe7\x15`\xab5\x90\x0a\xf47\xe7\xa9\x99!\
+\x89\xfb\xf8\x01\xb1Gw\xce\xcdD\xb4\xe5\x02ZQX\
+\xb2g@c\x09Ryw\x9d\xad\xa1\x7f\x82\x9e\x821\
+\xe8|-r\xd9\xd7>\xdf$\xa6\xf1.\x8d\x00b9\
+l!\xc3\x8cZ +\x87\xbbPM-<\xe2^\xab\
+dwq\x90\x89/\x7f\xcc^\xd4\x1fc*\x996\xa2\
+\x9b\xa5e\x9cx\xa6\xea\xec\xa0\xcdI\xd9\xa7\xdd\x8a\xa3\
+=:x8c\xcdi\xd0\x1b\xa9Y\xfam\xd3\xcaH\
+\x22\xa3\xf83\x10\x18`\xe1\xccP>\xbd\xf6\x0e.D\
+<\xe6\x08\xa8\xa3\x82\x80\xc6j\xef\x8c\x99O\xe1>r\
+\xe7\xf2\xd4J\xb94\xde\xbe\xde\x1c\x0c7\xda\x05\xc6Q\
+\xf6\xb5\x1c4Z\xb5i\xe7\xb3\x05\x14W\x22\xe7\x84\x98\
+P\x83\xeb\xd2\x85tURU\xc3\xc9\x95\x9a\x1d \x15\
+\xce0\xabk\x11ZC\x22U\x9a3\x83\x9a\xfb8 \
+\x98a`\xb6r\xbfe\xa3uen\xa5us.!\
+QA\x07B\xbe-\x06+l\xd6\xca\xf9\x86\x15L\xb8\
+P\x98\xc1\x87\xfd\x0f\x8f~\xf5\x9d\x8b\xe8\xe9M\x9a6\
+\x99\x5ca*\xe4\xeb\x94[\x95Q\xe8=\xc7\x88\x9c\xa4\
+\xa6%2urh\x22N\x0b.\x80\xbeA\x0f\x01Q\
+%D0P\xb6p/\x8e\x0e\x11\xd16\xaa\xdb\xeb\x89\
+\x15R\xc6I\xbaW\xb7\x1d\x08\xe4\x03\x88r\x03\xfa]\
+\xfb\xc6\x7f\xdcc\xc7\x1d!\x05IOw\xadg\xbf5\
+\xa0|\xb8t9\x8a\xc3\x9f\xf6\xaf)\xc6:0g{\
+j\xf5|Y\x83\xd6\xd6\xbc6zZ6$\xa5\xd1\xf0\
+\xe1 \x22\x93\xc9 \x08\xcd\xb9\xa7E\xfc/\xd0\x11\xf3\
+Z\xb4\x0e\x1c1\xdf^\xf0\x08\xbd\xb5\xe42mdH\
+4\xba\xc6\xce\x9am\x91\xc2:Q+\xaf\xa8\x5c\xa4\xc3\
+a\xaa\x89le\xb2N\xf5\xee\x96\xaf\x1b\x9c\x93\xa2\x1f\
+@o\x04{\xb4\x83C\xdf\x1c\x83\xa8\x99q\x11B\xba\
+'\x22\xd2\xc5\x04\xd3YZK\xff\xa9\xc3\x98\xa1C\xd7\
+9\x8f\x8f\xa6\xcc\x88\x18J\xa7\xa2\xa0\x8e\xd7b\xa6\x05\
+\xd0g\xf3\x06v\xa17%\xda\xe8N\xb4C\x9e\xb4X\
+R\xff\xa1\xb9\x91s\xa8\x16\xa4\x02\xc4\xd1\xf0M\x0d\xc9\
+\x00\x9fP\xe2X\xd4.gQ\xa3D\x0f\xb6\x02\xe3\xb7\
+\xa1.\xbe\x06\xd8p\x87\xa2\x87\x13\xdbD\xd0u\x9ai\
+\xab?\xb5;K\x0dc9\xa2\xd6\x18\xc7\x09\xb4\x1c\x8a\
+\x82\xf2\x86n\xa5\x9d+4d\x9c\x96\xeaH\xed\xd4\xc6\
+\x8ev\xba\x06\xcd\x1f\xe2\x0e\xa0\x9e l\x06\xe2\x86U\
+m3\xf4\x80(\xd5\xda\xf1k\xd1\x16\x1cs\xe4\x99\xee\
+\x07\xad\x0d\xa4\x97GM\xf6\xee\xac!5'~\xe0\xee\
+\x5c\xa1\x99\xb7\x9eD%l\xd8G\x8a\xaf\x93\x17O?\
+-=\xc9\xe6D\xf8\x98\x80$\xc6r[\x0f\xc4\xb5\x83\
+X\xc3Thu\x1cq?\x1a4\xd9\xb4\x12xwZ\
+\xd1\xd8\xc0$*\x1fo\xae\x0d\xa0O\x9f\x042\xf7\xa9\
+\xa5\xf3<\xb5DG\x87,\xf9C\xbe\xdf\x9e\xaa\x80\x5c\
+\xc0\x97\x16\xd0\xbb\xd22D\xdd\xc1QQl+\x19\xed\
+}\x13\xdb\xfaf,n\x0fL\xca\x03\x06\xf3\xdaaA\
+o\xf9q\xd7\xb6BVL\xab6?I\xc5Xw\x15\
+\xd3\x92\x8a\xe1\xc0%Z\x0f\xf8f\x06\xb4\x17i7h\
+\x06l\x11|\x90\x226\xe2\xb5f\x0b\x9b~h\xf5\x80\
+\xd0\x04\xb8\xb3G\xdd\xe9\xb9\xc1}\xb7$6\x83\xd2\x83\
+\xe1\xbbSBf\xea\xd9\xf2\xf5\x1f>3\x80\xf2\x22\xe5\
+GOS\x1a=\xfcB}\xc0E(\x12\x04s^-\
+k\xdfjC\xca\xa1\xae\xd9\xe5\xb2\xbd*\x1e\xb8\xd3\x7f\
+\x90\x22\x10p\xe2Y\x04s\xc8\x01\xc48\xf22\xb4\xa5\
+\x9eu\xa4\xae\xf4\x08Kn\xc8\xf9\xb1\x93Oz\x18\x19\
+}#\xa7G\xebo\x22\x03\x80`\xeb\xb5.<\x22\xaa\
+a\xa7\x94s\xa1\xc0\xc0Vj\xd7\xa4\x8eo`jE\
+a\x86\xac\x91\x08\x1b\x00\x0d\xd4\x11BY\x9b+\xc8\x0d\
+4\x88\x5c\x0d\x15\x88\xc0@*\xe89\xc7\xa0\x07\x04N\
+\x81\x17\x81=Oe\xa3\x08\xe1\xd65igl4\xc6\
+S\xef\x03\xb6\x05O\xc8\xc0b\x5c\x11\x8d\x94\x11\x0c\x07\
+\xd3\xe8\x1e\x19\x16z\xd3F\xac\xb6\xd8P#\xb833\
+\xd0\xa1\x8dXh\xe3\xc6\xa3\x06b\xd3\x86O_\xafe\
+=\xadQ|\xe5\xd1\xc1f\x9a\xa7, \x9a\x80\xd5A\
+qi\x9f\xaf\xe9\xc9\xcfp\xf7\xf9\xa0\xa4\x93U\x04\x91\
+\x1a\xc2c0Cq\xfe\xddF@\xf2R\x96\xdaF\xa0\
+\xff\xf1\xfd\xf5\xaemR\x1a\x5c\x04\xd69 UM2\
+Q\x05\xb5+\xd7A\x84\x10LL4\x92+\x87\x05\xbf\
+\xbb\x15J\xbb\x9bX[\x04\xc5\xca\x0eU\x8b\x1d\x06\xfa\
+\x98\x5c\xc3~\x96_\xbe\x01S\x03>zp#\xd1\x8d\
+\xda\x0fh\xe90\xf8\x94\xd5\xf7\xf86I\x0eZ\xd5\x88\
+\x8b\x8e6\x97\xee^\xf2\xb9j\x13\x91-\xad)\xe3_\
+\x9e\x85\xe8\x83\x16\x0a\x0fWk\x99WL\x9d\x9fU\xad\
+\xf1P\x837\xf4)2\xe3>G\xb5\xf5\xfc*\xff8\
+J\x9e\xb6\xcf\xab\x8c\xbf\xd7sM\x1c\x04\x07^k\x80\
+\xe7Y\xcf\x81\xdc\x9e'\xcc\x86\x1e$\xba\xfb\x22L\xe6\
+\xae\xc1\x1c\xad/\xcaIB\xccCHt\xb2\xcf\x9e\x89\
+\xdc\x85z\x94\x19\x1a\xe3\xb3q=\x1b,\xfe\xedy\xa8\
+\x8f\xf3\xba\x1a\xfay\x8c\x8a\x99\xad\x86\xf8:t\xbe+\
+\xab\x95\x85\x22t\x0b\xa0\x0e\xd2\xe1COh\xca\x88\xfe\
+8$\x22\xe2\x9e\x07\xa2\xfe4)\x95\x1c0][\x1d\
+h\xb7}\x0c\xc8\xf2\xaf\x03\xcd|\xb2IP\xd0\x97\xa2\
+|\x87\xc3e_1\xbe\x11\xfea.\xe6\x87\xc9|!\
+\xbe\x8fF\xd3j\xe0\x1d\xce\x13\xdc;\x13\xf3\xc9T\xfe\
+\x14Y\xfb6\x9c\x1f\xf3m\xfeI\xf8\x1f'\xf3sl\
+\x7f\x08\xed\x93m\xf3y\xba\xff<\xa1\xfcSp\xcd\xf7\
+k\xf8\xf7%l\xbe_\xc3\xbf/a\xf3\xfd\x1a\xfe}\
+\x09\x9b\xef\xd7\xf0\xefK\xd8|\xbf\x86\x7f_\xc2\xe6\xfb\
+5\xfc\xfb\x126\xaf\xf8\x22\xe0`bW\xa5\xe9e\x82\
+p\xc8q\x04\x84\xc5\xb4H\xeb\xde|\x19z\x8c\xa60\
+\xa3\xa2M\xa8\xa5Uk\xfd_;9#;\xd1\x0a\x06\
+_}\x9f\x9a\xc0\x19bc\xa1\xc3)\x0d\x0a\xa4\x8b\xb1\
+H\x9d\x1e\xdf\xc0^\xae,\xf9\x81\xa4\xc8\xe2\xb5]\xf0\
+<h\x16\xe7q\xfb\xc8\x8f\xb8\xa3\xb1{\xdcDZW\
+\xf5\xb8\x05\x1c\x1aF\xd6CL\xa8\x13\xf8z\x91>\x94\
+\x89\x085\xde\x95o\xff\xf0\xfe\xdd\xef\xfcQ\x0a\x98\x7f\
+\xff\xdc\xe1\x7f\xe5\x85(\x1el\x87\xb5\xe6\xff\x015\x94\
+3\xa6\xf6\xe2\x8e\xf3\x00\x00\x01\x85iCCPIC\
+C profile\x00\x00x\x9c}\x91=\
+H\xc3@\x1c\xc5_S\xa5R*\x0ev\xa8\xe2\x90\xa1\
+\x8a\x83\x05Q\x11G\xadB\x11*\x84Z\xa1U\x07\x93\
+K\xbf\xa0IC\x92\xe2\xe2(\xb8\x16\x1c\xfcX\xac:\
+\xb88\xeb\xea\xe0*\x08\x82\x1f \xae.N\x8a.R\
+\xe2\xff\xd2B\x8b\x18\x0f\x8e\xfb\xf1\xee\xde\xe3\xee\x1d \
+\xd4\xcbL\xb3\xba\xc6\x01M\xb7\xcdT\x22.f\xb2\xab\
+b\xe0\x15~D\x10\xc4(\x06df\x19s\x92\x94\x84\
+\xe7\xf8\xba\x87\x8f\xafw1\x9e\xe5}\xee\xcf\xd1\xab\xe6\
+,\x06\xf8D\xe2Yf\x986\xf1\x06\xf1\xf4\xa6mp\
+\xde'\x0e\xb3\xa2\xac\x12\x9f\x13\x8f\x99tA\xe2G\xae\
++M~\xe3\x5cpY\xe0\x99a3\x9d\x9a'\x0e\x13\
+\x8b\x85\x0eV:\x98\x15M\x8dx\x8a8\xaaj:\xe5\
+\x0b\x99&\xab\x9c\xb78k\xe5*k\xdd\x93\xbf0\x94\
+\xd3W\x96\xb9Ns\x08\x09,b\x09\x12D(\xa8\xa2\
+\x842l\xc4h\xd5I\xb1\x90\xa2\xfd\xb8\x87\x7f\xd0\xf5\
+K\xe4R\xc8U\x02#\xc7\x02*\xd0 \xbb~\xf0?\
+\xf8\xdd\xad\x95\x9f\x9ch&\x85\xe2@\xf7\x8b\xe3|\x0c\
+\x03\x81]\xa0Qs\x9c\xefc\xc7i\x9c\x00\xfeg\xe0\
+Jo\xfb+u`\xe6\x93\xf4Z[\x8b\x1e\x01}\xdb\
+\xc0\xc5u[S\xf6\x80\xcb\x1d \xf2d\xc8\xa6\xecJ\
+~\x9aB>\x0f\xbc\x9f\xd17e\x81\xfe[ \xb8\xd6\
+\xec\xad\xb5\x8f\xd3\x07 M]%o\x80\x83C`\xa4\
+@\xd9\xeb\x1e\xef\xee\xe9\xec\xed\xdf3\xad\xfe~\x00p\
+\xa2r\xa6'\xfd-\xde\x00\x00\x0d\x1aiTXtX\
+ML:com.adobe.xmp\
+\x00\x00\x00\x00\x00<?xpacket b\
+egin=\x22\xef\xbb\xbf\x22 id=\x22W\
+5M0MpCehiHzreSzN\
+Tczkc9d\x22?>\x0a<x:xm\
+pmeta xmlns:x=\x22a\
+dobe:ns:meta/\x22 x\
+:xmptk=\x22XMP Core\
+ 4.4.0-Exiv2\x22>\x0a \
+<rdf:RDF xmlns:r\
+df=\x22http://www.w\
+3.org/1999/02/22\
+-rdf-syntax-ns#\x22\
+>\x0a <rdf:Descrip\
+tion rdf:about=\x22\
+\x22\x0a xmlns:xmpM\
+M=\x22http://ns.ado\
+be.com/xap/1.0/m\
+m/\x22\x0a xmlns:st\
+Evt=\x22http://ns.a\
+dobe.com/xap/1.0\
+/sType/ResourceE\
+vent#\x22\x0a xmlns\
+:dc=\x22http://purl\
+.org/dc/elements\
+/1.1/\x22\x0a xmlns\
+:GIMP=\x22http://ww\
+w.gimp.org/xmp/\x22\
+\x0a xmlns:tiff=\
+\x22http://ns.adobe\
+.com/tiff/1.0/\x22\x0a\
+ xmlns:xmp=\x22h\
+ttp://ns.adobe.c\
+om/xap/1.0/\x22\x0a \
+xmpMM:DocumentID\
+=\x22gimp:docid:gim\
+p:b21310e5-9d21-\
+44d1-ab3c-9dd6d0\
+c05628\x22\x0a xmpMM\
+:InstanceID=\x22xmp\
+.iid:a07b1f50-06\
+03-4181-85bb-849\
+97bf046ec\x22\x0a xm\
+pMM:OriginalDocu\
+mentID=\x22xmp.did:\
+568dcc6e-5cfb-43\
+c4-9d41-f5c9e488\
+6fd8\x22\x0a dc:Form\
+at=\x22image/png\x22\x0a \
+ GIMP:API=\x222.0\x22\
+\x0a GIMP:Platfor\
+m=\x22Linux\x22\x0a GIM\
+P:TimeStamp=\x22167\
+9654470333966\x22\x0a \
+ GIMP:Version=\x22\
+2.10.30\x22\x0a tiff\
+:Orientation=\x221\x22\
+\x0a xmp:CreatorT\
+ool=\x22GIMP 2.10\x22>\
+\x0a <xmpMM:Histo\
+ry>\x0a <rdf:Seq\
+>\x0a <rdf:li\x0a \
+ stEvt:actio\
+n=\x22saved\x22\x0a \
+stEvt:changed=\x22/\
+\x22\x0a stEvt:in\
+stanceID=\x22xmp.ii\
+d:e3a96143-5dee-\
+4ed6-917c-416fe8\
+b91c1a\x22\x0a st\
+Evt:softwareAgen\
+t=\x22Gimp 2.10 (Li\
+nux)\x22\x0a stEv\
+t:when=\x222023-03-\
+24T11:41:10+01:0\
+0\x22/>\x0a </rdf:S\
+eq>\x0a </xmpMM:H\
+istory>\x0a </rdf:\
+Description>\x0a </\
+rdf:RDF>\x0a</x:xmp\
+meta>\x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a\
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+\x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a\
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \x0a<?xpacket \
+end=\x22w\x22?>\x88u\x1fu\x00\x00\x00\
+\x09pHYs\x00\x00\x10\xdf\x00\x00\x10\xdf\x01tU\
+^0\x00\x00\x00\x07tIME\x07\xe7\x03\x18\x0a)\
+\x0a\xbc\x9cw\x19\x00\x00\x02\xdfPLTE\x00\x00\x00\
+\x00\xff\xff\x00\xff\x80U\xff\xaa@\xbf\x803\xcc\x99+\
+\xd5\x80$\xdb\x92 \xdf\x809\xe3\x8e3\xe6\x80.\xe8\
+\x8b+\xd5\x80$\xdb\x803\xdd\x880\xdf\x80-\xe1\x87\
++\xe3\x80(\xe4\x86&\xd9\x801\xdb\x86,\xde\x85+\
+\xdf\x8a)\xe0\x85'\xe2\x89/\xe3\x84.\xdb\x89,\xdc\
+\x84+\xdd\x88)\xde\x840\xdf\x87.\xe0\x83-\xe1\x87\
+,\xdb\x83+\xdc\x87)\xdd\x83/\xdd\x86.\xde\x83-\
+\xdf\x86,\xe0\x83+\xe1\x86*\xdb\x82.\xdc\x85-\xdd\
+\x82,\xde\x85+\xde\x88+\xdf\x85*\xe0\x87.\xe0\x85\
+-\xdc\x87,\xdd\x84+\xdd\x87+\xde\x84*\xdf\x86.\
+\xdf\x84-\xe0\x86,\xdc\x84+\xdc\x86+\xdd\x84.\xde\
+\x86-\xde\x84-\xdf\x86,\xdf\x83+\xe0\x85+\xdc\x83\
+.\xdd\x85-\xdd\x83,\xde\x85,\xde\x87+\xdf\x85+\
+\xdf\x87-\xe0\x85-\xdd\x86,\xdd\x85,\xdd\x86+\xde\
+\x84+\xde\x86-\xdf\x84-\xdf\x86,\xe0\x84,\xdd\x86\
++\xdd\x84+\xde\x86-\xde\x84,\xde\x85,\xdf\x84+\
+\xdf\x85+\xdd\x84-\xdd\x85,\xde\x85,\xde\x86+\xde\
+\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\xde\x86\
++\xde\x85+\xde\x86-\xdf\x85,\xdf\x84,\xdd\x86+\
+\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xdf\x85+\xdf\
+\x84+\xdd\x85-\xdd\x84,\xde\x85,\xde\x84,\xde\x85\
++\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\xde\x86,\
+\xde\x85+\xde\x86-\xde\x85-\xdf\x86,\xdf\x85,\xdd\
+\x85+\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xde\x84\
+,\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x84,\
+\xde\x85+\xde\x86+\xdf\x85-\xdd\x86,\xdd\x85,\xde\
+\x86,\xde\x85+\xde\x86-\xde\x85,\xde\x85,\xdf\x85\
+,\xdd\x85,\xdd\x85+\xde\x85-\xde\x84,\xde\x85,\
+\xde\x84+\xdd\x85-\xde\x84,\xde\x85,\xde\x84,\xde\
+\x85,\xde\x86+\xdf\x85-\xdf\x86,\xdd\x85,\xde\x86\
+,\xde\x85,\xde\x86-\xde\x85,\xde\x85,\xdf\x85,\
+\xdd\x85,\xdd\x85+\xde\x85-\xde\x85,\xde\x85,\xde\
+\x84,\xde\x85,\xdf\x84+\xdd\x85-\xde\x84,\xde\x85\
+,\xde\x84,\xde\x85+\xde\x85-\xdf\x86,\xdd\x85,\
+\xde\x86,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xdf\
+\x85,\xde\x85,\xde\x85-\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xdf\x85,\xdd\x85-\xde\x84,\xde\x85,\
+\xde\x84,\xde\x85,\xde\x86,\xde\x85-\xdf\x86,\xdd\
+\x85,\xde\x85,\xde\x85,\xde\x85+\xde\x85,\xde\x85\
+,\xdf\x85,\xde\x85,\xde\x85+\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xdd\x85-\xde\x85,\xde\
+\x85,\xde\x84,\xde\x85,\xde\x86,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85\x1ci\x96\x02\
+\x00\x00\x00\xf4tRNS\x00\x01\x02\x03\x04\x05\x06\x07\
+\x08\x09\x0a\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x17\x18\x19\
+\x1a\x1b\x1c\x1d\x1e\x1f !\x22#$%&'()\
+*+,-./0123456789\
+:;<=>?@ABCDEFGHI\
+JKLMNOPQRSTUVWXY\
+Z\x5c]^_`abcdefhijk\
+lmopqrstuvwxyz{|\
+}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8b\x8c\x8d\
+\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9f\
+\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\
+\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbc\xbd\xbe\xbf\xc0\
+\xc1\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\
+\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdc\xdd\xde\xdf\xe0\xe1\xe2\
+\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\
+\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\x88\x04\x8a\x05\
+\x00\x00\x00\x01bKGD\x00\x88\x05\x1dH\x00\x00\x09\
+vIDATx\xda\xed\x9d\xf9_UE\x18\xc6\x0f\
+\x8ak\xd2&Y\xeeK\x0be\x92\x91\xa5\xa5\x94\x8a\x9a\
+\x99\xa6Yi\x0b\xe6Jfj\x8bXR\x16b\xde\x8a\
+\xd2\x16\xcb\x12\x836\xcd\xca\xa5\x05\x13\xc3\x0c\xcd\xc4\xd4\
+J\x055KD\xad@\x13Q\x90\xcb\x9d? \xf9T\
+Z\xcc{\xce\x9d\x99{\xb9s\xde;\xef\xf3\xabg\x9e\
+\x99\xe7\x8b\xf7\x9c3s\xde3\xc7\xb2H$\x12\x89D\
+\x22\x91H$\x12\x89D\x22\x91H$\x12\x89D\x22\x91\
+H$\x12\x89D\x22\x91H$\x92\xb1\xea\x7f\x9c\x85\xbd\
+L\xcf\xef\x04\xa0\x9f\x09\xf9\x99\xe9\xf9\x99\xe9\xf9\x99\xe9\
+\xf9\x99\xe9\xf9\x99\xe9\xf9\x99\xe9\xf9\x99\xe9\xf9\x99\xe9\xf9\
+\x99\xe9\xf9\x99\xe9\xf9\x99\xe9\xf9k\x03\x88?\xc6\x8c\x06\
+`^~fz~fz~fz~fz~f\
+z~fz\xfe\x7f\x01\xc4\x971\xa3\x01\x98\x9b\x9f\x99\
+\x9e\x9f\x99\x9e\xbf\x06@/\x93\xf33\xd3\xf33\xabO\
+y\x1d\xb8V\xee\xca\xc9\x98y\xff\xa0\x84\xeb\xe2:\xb6\
+k\xd9!6\xaeo\xff{\xa6\xbd\xba\xf2\x87?\xdd\x08\
+ \xe8\xf9\x0b2'v\x8d\xb4Ymo;\xf2\xa5\xf5\
+\x15.\x03\x10T\xb7\xaa\xec1\xcd\xfd=rn\xd4\x7f\
+aI\x98\x02\xc8\x1d\x7f\xbe\xd8c\xf7\x06\x03\x17\x1d\x0f\
+;\x00\xde\xb7\xaf\x92)=\x88~\xf2\x8f\xf0\x02\xb0\xf4\
+2\xd9\xea\x8b\xa8\xd4\xf2\xf0\x01P\xd8O\xa5\x00\xa5\xdd\
+\x8ap\x01\x90y\x96b\x0dN\xe2\xd1p\x00P>B\
+\xbd\x0a\xe9\x92\x9d\xfe\xfdWyj\xeb\x90\xab\x00\x14\xc7\
+\x05R\x87uN\x8e\xdf\x0e&r\x8d\xbew\x13\x80\xe2\
+\xcb\x03\xabDk\xb4\x0c7\x80\x83\x9d\x02\xad\xc5k\xb8\
+\x1a3\x80\xb2k\x02\xafF\x8c\xda\x8a\x18\xc0}\xc1\xa8\
+\xc7l[\x82\x16\xc0[\xc1\xa9H\x1d\x8e\x15\xc0\x81s\
+\x82T\x93\xbb\x0c)\x80;\x9dB]<2%#w\
+S\xc1\xde\xe2\xdd\xf9y\x1f\xce\x19\xd7#\xd2\xe1\xd8\xd6\
+e(\x01|f\x1b(rX\xe6>\xee|\xf9\xc5d\
+\xfb\xc9\xe2T\x8c\x00*\xdb\xdb\xa49?\xad\x18nQ\
+\xf1\xee\xd5v\xc4\xb6#\x04\xb0\xd0f\xb2?\xe1w\xfb\
+6\xbe\xcc\x166\xb3\x02|\x00\xbc\x17\xc3\xd7\xb4|\xe7\
+f\xa5\x03\xe1\xff\x02{\xd0\x01x\x1f\x0cr\xd3o\xfe\
+\xdaUO\x07\x1b>\x80\x0d\x80\xaf\x0b\x14\xa3\xa7\xc8R\
+\xd7\x0c\xa8e\xe3\x83\xc8\x00\xe4A)\xae,\x15b7\
+\x16j\xfb\x022\x00I\xd0\xcc\xee'\xc1\xebGg\xa0\
+q,.\x00\x95\xd05\xfd9\xd1\xd6\x9b\x1b\x00\xad\xb7\
+\xa2\x02\xb0\x14Hpy\x95p\xf3\x07\x81\xe6\x8f\xa2\x02\
+0\x14H\xf0\xbex\xf3_\x1b\xf2\xcd[\xfa\x10\x01\xa8\
+l\xc6\x07\x88\xa9\x960\x80\xce\x83\xdb\x10\x01\xc8\x05\xc6\
+?_\xc6`\xab\xf8u\xc0\x95\x00\x80Ky\xe3R)\
+\x87X\xdea\x00\x22\x00\xdd\xf8\xe1\x8f\x90sH\xe7\x1d\
+\x9a\x9c@\x03\xa0\xa4>?\xfc\x8f\xe5,\xf6\x01\xbf\x81\
+\xff,\x8f\x96L8-~\xd9y\xf8\x04H\xd3B\x08\
+\xe0S`\x12xD\xd2\x03XN\x9f}\xe6_\x7f\x91\
+_V\xba(\x84\x00R\x81Y\x90\xac\xc7T\xde\xe3\x0e\
+4\x00n\xe7\xbb\x9f#\xeb\xf19\xef\xd1\x11\x0d\x80\xb6\
+|\xf7ke=J#8\x8f\x88R$\x00\xfe\xe0{\
+\xaf'\xff\x9c\x17x\xa6\x94\x8b\x04\xc0j`\x1e \xef\
+2\x92w\x99\x8b\x04\xc0\xebRkzvz\x9ew\x99\
+\x84\x04\xc04\xbe\xf7g\xe5]V\xf0.\xb7\x22\x01\x00\
+<\x10Y*\xef\xb2\x83w\xe9\x8c\x04@7\xe1\x99\x9c\
+\xe3\x8c\x92\xbf\x9d<\x0b\x09\x80h\xfe\x02\xa6R\xf1\xd5\
+\x81\x0fq\x08\x05\x802\xa0\xecO\xa5\xef\x1by\x9fo\
+Q\x00(\xe0;\xef\xa2\xd27p\x1d\x5c\x8e\x02\xc0z\
+\xe1\xa9\xbc\xb3\xa6\xf0>\x19(\x00\x00w\xf1\xa3T\xfa\
+\xf6\xf0>\xe9\xff\xfe\xdb\xa1\x84\xd3j\xc5\x1du]\x02\
+\xa4\x11!\x03\x90\xc5\x0f\x5ci.\xbe\x88\xf7\x99\x81b\
+Ad\xae\xe3L^\x5c\x1f\xf3>\x13Q\x00\x98\xc9\x0f\
+\xfc\x95 M)F\xa2\x00\xf0\x10?\xf0E*}o\
+\x046\xb0C\x01`\x5c\xc0\x0b\x82\xb6\xf7\xc2\xf1(\x00\
+\x8c\xe2\x07\xfe\xa5J\xdfE\xbcOw\x14\x00\xeevZ\
+\xc9\x90\xd0o\xbcO\x1c\x0a\x00\xc3\xf9\x81\xafS\xe9\xbb\
+\x14(0@\x01`\x08?\xf0\x0d*}\x1f\xe5}.\
+E\x01\xe0f~\xe0\x9bT\xfa>\xc1\xfbt@\x01\xa0\
+/?\xf0-*}W\x01\x8f\xc8Q\x00H\xb0\x823\
+$/P3\x8b\xf5'\xf0\x9dJ\xdf\x15@\x811\xd6\
+\x93\xe0z\x95\xbe\xcb\x9c\x16\x05M\xb8\x0c\x1e\xc6z\x1f\
+\x10\xac\x1b\xa1\xdfy\x9f\xebQ\x00H\xe4\x07\xbeJ\xa5\
+\xefb\xde\xa77\x0a\x00@\x81\xd3G*}\x17\xf2>\
+\x03\xb1N\x873T\xfa\xce\xe7}\x86b]\x10yY\
+\xa5\xef\x5c\xb1B#\xf7\x01\x98\xc7\x0f<M\xa5\xef\x95\
+\xbc\xcfh\x14\x00\xb2\xc4\xcb\x5c\x1d\xf5\x8e\x98\x8f\xfb\x00\
+\x00%R\xf7\xa9\xf4\x0dT\xcayP\x00\x00^\x15H\
+P\xe9\x1bx\xca\xbe\x10\x05\x80\x02\xb1[X\x95\xa5\xb5\
+OP\x00\x00\xee\xe1\x9b\xab\xf4=\xc0\xe1\xe1\xa8\xab\x01\
+0`\xaf \x95\xbd0\xae\xe0m\xf6\xe3\x00\x00\xbc3\
+\xbfY\xde\xa5\xba\x09_n\xea\xc5\x01\x00(\x91\xf9@\
+\xde\x05x\x00\xdc\x86\xe1\x00\xf0\x18?\xf4Ty\x97\x1c\
+\xde\xa5/\x12\x00\xf3\x03.\x96\xb7qy\x00\x09\x80\xd5\
+b\xcb\xb9~4\x86w\x99\x87\x04@\x09P\xe6+\xbf\
+5\x18\xf0\xeai6\x12\x00\xac\x9d\xe0\xd8\x9dt\x0c\xd8\
+Q\xe1 \x16\x00@\xb9\xfc\xf4 \x9c\x03[1,\x00\
+f\xf1\x83\xbf*\x083\x81!h\x00\x00\x9bgD\x14\
+Kz\x00\xdb\x0f\xce\x12\x04\x90\xaf\x1d\xc0a\xe0\xf7\xbb\
+@\xce\xa2\x88?\x91Z_\x0b\x02\xd8\xa0\x1d\x00\xeb!\
+\xb6\xa2\xed \xa0F\xae)\xbc\xdf\xea\xa4\xe0<\x85\x08\
+.\x80\xa7\x80B\xc5\x9dR\x0e1\x82\xf7\x81\xd0\xdbU\
+k\xf4\x03X'\xb9\x15\x8e\x90\xc1K\xa27\xde\xd9\xfa\
+\x01T\x9d\x0d\xbc;\xbb_\xc2\x00\xdaJe7|\xe8\
+\xe3\x81\xbc\xa6^W\x00\xd8=@\x80)\xe2\xcd\xbf\xb5\
+\xc4\xcacj\xc4\xbf\xa4\xf8\xaa\x0b\x00d\x03\x09\x1a\x0a\
+_\x9f\xab\x80\x93(\xb8 Z\xa3\x97\xb9#\x9fq\x01\
+\x00\xefE@\x84\xce\xa2\xdbf\xa7B;\x09\xd9\xddH\
+dr\x87&\xb9\x00\x00\xb4&`Y\xa3\xc4\xf6P\xf8\
+\x12\xdaBd\xb0\xdd\xd1+\x84\x1e\xa1\x86\x1c\xc0\x8f`\
+\xcd\xfeD\x9f@\xd3\xdc\xa6P\xd3\x1c\xbb\xc3\xf9\xd7\x13\
+.t\x03\x00\xa8P\xe6\x94\xee\xf5\xff\xb5\x9a\xc5\xcd\xa0\
+\x86\xd7\xda\x1e\x0f\xbch\xbf\xcf\x0d\x00\xbe\x81\xdf\xdb\x88\
+\xf1\xb3Chy\x12\xdc\xce~OEod]^\x06\
+\x02\xd8M\xae\x0f\x9c\xa4\xfeX\x87\xbfO\xd5\x9b-\xe1\
+V\xbd\x1c:j\xc3\x1d}\x8d\xcf\x0d\x00\xd6\xd8\xbd\xbc\
+\xd3$1\x07>\x19\xeeM\xebh\xd3\xa4\xde&\xb9\x1f\
+\xdb\x0c7\x00`\xb7\xd9\xbf\xc0\xd4ztF\xe1\xff\x0f\
+>\xf2\xd9\xe3=\x22l\x8fO\x92\x5c9\xb0\x06o\xf4\
+\xe9\x07P\x14\xe5\xf8\x16W\xe3\x98A\xe3\xa7\xa5x<\
+\xa9\xc9\x0f\xdeum\xb4\xe3\xa1\xed\x1d\x1f,e\x81m\
+.\xb8{\xca\xactOJr\xd2\xf8;\x87%\xf4\x8a\
+\x8b\xe90$\xe4\x00\xa0\x85m%\xd5w.2\xdb%\
+\xe6\x12\x1bz\x00\xd5\xbd\x82\x03\xe0\x05?\xfd\xb4\x11r\
+i\x1fz\x00\xac\xe8\x82`\xe4\xbf\xd7_7\xf7\x0b\xd9\
+\x9c\xa7\x01\x00[\xd7$\xf0\xfc\xb7T*,AB\x93\
+\x09\x9f\x06\x00le\x83@\xf3\xf7\xf1\xbf\x0b\xe7\xc9h\
+!\xa7c:\x00\xb0\xe5\x8d\x03\xcb?\x5cd\x17\xd2d\
+!\xab\xfdZ\x00\xb0\xb5\xcd\x03\xc9?Uh\xfexH\
+\xe8#&\xdb\xf5\x00`{\xd5\xbf\xb1q\xf6\x12\xc1>\
+\x9e\x14q\xdb\xa0\x09\x00;\x99\x12\xa9\x08@\xf8=\x8b\
+\xcaX\x01\xb7U\xba\x000\xb6%^\x0d\xc08\xe1\x1e\
+\x0a[\xf8w[\xa2\x0f\x00\xf3\xadP\xba'\x8a\x10\x7f\
+\xc4\xb1\xedB\xbfn\x0b5\x028\xa5\xbca\xf5\xe4\x09\
+t>)\xec\x7f\xa0\xb7?\xb3t\xbd\x00\x18\xfb9\xbd\
+\xa74\x03\x89M\xe8\xaa3[;{\xcd\xd4\x0d\xa0\xe6\
+\xcf\xf4\xc6\xb0VR\x00\x9a\xee\x91p\xafx'\xdev\
+F\xdd\xac\xfb\x84\x5c\x17\x00\xa8Q\xf1\xf2\x94\xc1W\x9e\
+\xcb\x8f\xb0\x1f\xb8\x1f\xff@I\xc2o'v\xa9u\xf3\
+\x19}\xc3\xe89\x1f\xed\xaaV\x1cm\x1d\x00\xf8[e\
+?e/^0\xdf\x93\x96\x9c\xfc\x8cg\xc1\xa2%_\
+\xfd\xeacy\xe0\x0fd\xb1\xfcew{NV\xba\xe7\
+\x89\xe4\xe9\x9e\xb9Ykv\x04\xf8\xcd\xd8:\x03\x00i\
+\x1c\x04\xa0\xc5a\xa6S!\x05P\x02\xde5O2\x07\
+\x00{\x13\x5c\x10\xcd3\x07@5\xf4P\xd4\xear\xd2\
+\x18\x00l\x1b8kx\xd1\x1c\x00l2x3\xf0\xb3\
+9\x00\x8e\x82O\x86\x86\x9a\x03\x80\xbd'\xf9d0\xec\
+\x00@\x1bp\xf8\xf9\xdaZ]\xaa<\xf4\x00\x0a\x1bA\
+\x04\x1e\xd6\x94\xbfo\xe8\x01\xc0\xdfY\xaa\xbfYS~\
+\x0d\x00\x8e\x83_\xa9\xeb\xe6\xd5\x93_\x03\x00hG\xca\
+SzMO~\x1d\x00\xa0]X,+\xaaHK~\
+-\x00\xf6\x82UR\x8fh\xc9\xaf\x05\x00\x9b\xcd\xc7\xbf\
+:\xd3\xab%\xbf\x1e\x00\x95\xb5k\xc5{\xae\x0c\xf5\x99\
+\xf8\xf4\xed\x88\x9e\xeb\xef\xda\xff\xae\xed\xd5\x1b\xbc1\xe4\
+W\xa23\xdb\x81i\xba\x03;Sl\xdd(\xb1\x80i\
+\xcc\xaf\x0b\xc0\xc1\x7f\xbe\xd9\x1c5\xb9\x98i\xcd\xaf\x0b\
+\xc0\xdf;\xb1\xb4x\xfa\x08\xd3\x9c_\x1b\x00oW\xab\
+\xd3\xbc\x13L{~m\x00X\xfe\xb2j\xe6\x82\xfc\xfa\
+\x00hR\xed\xfc\x96\xe9\xf9-\xd3\xf3[\xa6\xe7\xb7L\
+\xcfo\x99\x9e\xdf \x00\x15\x83,\xa3\x01\xd8\xe4\xb7L\
+\xcfo\x99\x9e\xdf2=\xbfez~\xcb\xf4\xfc\x96\xe9\
+\xf9-\xd3\xf3\x93H$\x12\x89D\x22\x91H$\x12\x89\
+D\x22\x91H$\x12\x89D\x22\x91H$\x12\x89D\x22\
+\x91H$RX\xeb/\xa5p6\xac\x5c\xb9\xe4\xd3\x00\
+\x00\x00\x00IEND\xaeB`\x82\
"
qt_resource_name = b"\
@@ -1838,41 +2207,41 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x000\x00\x00\x00\x00\x00\x01\x00\x00\x06\x9f\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x00h\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x8a\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x01\x00\x00&\x02\
-\x00\x00\x01\x82Y\xad^\x0f\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x000\x00\x00\x00\x00\x00\x01\x00\x00\x06\xd5\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x00h\x00\x01\x00\x00\x00\x01\x00\x00\x0b\xec\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x1fg\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
\x00\x00\x01\x0c\x00\x02\x00\x00\x00\x06\x00\x00\x00\x0e\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00,\xcb\
-\x00\x00\x01\x82_\xc7\xcc\xde\
-\x00\x00\x00P\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xbf\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x00\xa2\x00\x01\x00\x00\x00\x01\x00\x00\x16\x06\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x010\x00\x00\x00\x00\x00\x01\x00\x00.\x07\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x01\x00\x00\x1b\xb6\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x01d\x00\x00\x00\x00\x00\x01\x00\x009S\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x01J\x00\x00\x00\x00\x00\x01\x00\x006\xe7\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x00N\xca\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x02\x06\x00\x00\x00\x00\x00\x01\x00\x00RE\
-\x00\x00\x01\x82_\xc1\xa7\xb9\
-\x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x00C1\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x00A\xf8\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x01~\x00\x00\x00\x00\x00\x01\x00\x00>\xcb\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x01\xc8\x00\x00\x00\x00\x00\x01\x00\x00Ik\
-\x00\x00\x01\x82Y\xad^\x0f\
+\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00&X\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x00P\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x1c\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x00\xa2\x00\x01\x00\x00\x00\x01\x00\x00\x0f)\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x010\x00\x00\x00\x00\x00\x01\x00\x00'\x9f\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x01\x00\x00\x14\xce\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x01d\x00\x00\x00\x00\x00\x01\x00\x0039\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x01J\x00\x00\x00\x00\x00\x01\x00\x000\xbf\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x00H\xdd\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x02\x06\x00\x00\x00\x00\x00\x01\x00\x00LX\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x00=D\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x00<\x0b\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x01~\x00\x00\x00\x00\x00\x01\x00\x008\xde\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x01\xc8\x00\x00\x00\x00\x00\x01\x00\x00C~\
+\x00\x00\x01\x87V\x12\x92B\
"
def qInitResources():
diff --git a/examples/quick/window/doc/window.rst b/examples/quick/window/doc/window.rst
index 8736bb629..6a8f73eed 100644
--- a/examples/quick/window/doc/window.rst
+++ b/examples/quick/window/doc/window.rst
@@ -17,7 +17,7 @@ For the "shared" module approach to work with QML and rcc, you need:
* A module definition *qmldir* file
* A Qt Resource Collection file (.qrc) specifying all the QML files and other
-resources, plus the *qmldir* file
+ resources, plus the *qmldir* file
The .qrc file is the input to rcc. This will generate a Python module (called
*shared_rc* here) that can then be imported from the Python code. At runtime,
@@ -28,7 +28,7 @@ module.
For the example, rcc needs:
* A Qt Resource Collection file (.qrc) specifying all the QML files and other
-resources. There is no qmldir file here because this is not a module.
+ resources. There is no qmldir file here because this is not a module.
This will generate a Python module (called *window_rc* here) that can then be
imported from the Python code. Again, only the Python module is needed at
diff --git a/examples/quick/window/main.py b/examples/quick/window/main.py
index 8f8260b56..62ba6a5e9 100644
--- a/examples/quick/window/main.py
+++ b/examples/quick/window/main.py
@@ -9,17 +9,20 @@ from PySide6.QtCore import QUrl, qWarning
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlComponent, QQmlEngine
from PySide6.QtQuick import QQuickWindow
+from PySide6.QtQuickControls2 import QQuickStyle
-import window_rc
+import rc_window # noqa: F401
# Append the parent directory of this file so that Python can find and
# import from the "shared" sibling directory.
sys.path.append(os.fspath(Path(__file__).parent.parent))
-from shared import shared_rc
+from shared import shared_rc # noqa: F401, E402
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
+ if sys.platform == "win32":
+ QQuickStyle.setStyle("Fusion")
engine = QQmlEngine()
# Add the qrc root as QML import path so that the "shared" module
diff --git a/examples/quick/window/rc_window.py b/examples/quick/window/rc_window.py
new file mode 100644
index 000000000..30b1fbf0a
--- /dev/null
+++ b/examples/quick/window/rc_window.py
@@ -0,0 +1,335 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x05\x12\
+/\
+/ Copyright (C) \
+2021 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0aimport QtQuick\
+.Controls\x0d\x0a\x0d\x0aCol\
+umn {\x0d\x0a id: r\
+oot\x0d\x0a spacing\
+: 8\x0d\x0a\x0d\x0a Label\
+ {\x0d\x0a text\
+: \x22Total number \
+of screens: \x22 + \
+screenInfo.count\
+\x0d\x0a font.b\
+old: true\x0d\x0a }\
+\x0d\x0a\x0d\x0a Flow {\x0d\x0a\
+ spacing:\
+ 12\x0d\x0a wid\
+th: parent.width\
+\x0d\x0a\x0d\x0a Repe\
+ater {\x0d\x0a \
+ id: screenIn\
+fo\x0d\x0a \
+model: (Qt.appli\
+cation as Applic\
+ation).screens\x0d\x0a\
+ Labe\
+l {\x0d\x0a \
+ required pr\
+operty string na\
+me\x0d\x0a \
+ required pro\
+perty int virtua\
+lX\x0d\x0a \
+ required pro\
+perty int virtua\
+lY\x0d\x0a \
+ required pro\
+perty var modelD\
+ata // avoid sha\
+dowing Label.wid\
+th and height\x0d\x0a\x0d\
+\x0a \
+ lineHeight: 1.5\
+\x0d\x0a \
+ text: name + \x22\
+\x5cn\x22 + virtualX +\
+ \x22, \x22 + virtualY\
+ + \x22 \x22 + modelDa\
+ta.width + \x22x\x22 +\
+ modelData.heigh\
+t\x0d\x0a }\
+\x0d\x0a }\x0d\x0a \
+ }\x0d\x0a\x0d\x0a Compon\
+ent.onCompleted:\
+ {\x0d\x0a var \
+screens = (Qt.ap\
+plication as App\
+lication).screen\
+s;\x0d\x0a for \
+(var i = 0; i < \
+screens.length; \
+++i)\x0d\x0a \
+ console.log(\x22s\
+creen \x22 + screen\
+s[i].name + \x22 ha\
+s geometry \x22 +\x0d\x0a\
+ \
+ screens[\
+i].virtualX + \x22,\
+ \x22 + screens[i].\
+virtualY + \x22 \x22 +\
+\x0d\x0a \
+ screen\
+s[i].width + \x22x\x22\
+ + screens[i].he\
+ight)\x0d\x0a }\x0d\x0a}\x0d\
+\x0a\
+\x00\x00\x04\x8a\
+\x00\
+\x00\x16\xa7x\xda\xcdXYo\xdbF\x10~7\xe0\xff\
+0a_\xec\x06\xba\x93\x17\x15Fa+H\x1d\xc0A\
+b\xcb\xa8\x03\x14}\xa0\xc9\x91\xb8\xf5\x8a+\xec.-\
+9\xae\xff{\x87\xc7\x92\x94\xb8$\xe5ZnJ\x08\x10\
+\xb9;;\xc77\x07g\xd8\xeb\xc1D,\x1f$\x9b\x07\
+\x1a\x8e&\xc70\xec\x0f\x07p\x1d \x5cj\xdaY,\
+\xdd\xf0\x01.\xb4\xdf=<\xe8\xf5`\xfa\xf5\xc3\xb7\xce\
+\x05\xf30T\xd8\xf9\xe4c\xa8\xd9\x8c\xa1\x1cC\xb6v\
+\x85\xb3\xce\xa5\xee\xd0\xb9\x05J\x8f\xb9\x1c\xbe\x5c\xc1\xd9\
+\xf4Cg\xd4\x99p7Rxxpx\xc0\x16K!\
+5\xf1\xbf\x8c\x98w\xb7\xfd\xdc\x9d\x88PK\xc1UL\
+z\xa9\xbf\xdc\xfe\x85\x9e\x86\xc7\xc3\x03\xa0\x8b\xf9c\x90\
+B\xe8\xf4i)\xc5\x12\xa5~\x00\x89$\xc9\xc7\x99\x1b\
+q=]\xba\x1e\x0b\xe7c\x18\xf4\xb7\xa8\xa6\x0fJ\xe3\
+\xe2\xab\xcbQk\x84e\xfa?\xdeZ~\x84\xa7X\xf0\
+\xc6\xc1{W\x82\x97ju\xc3B_\xac\xc6\x90\xfe\x1b\
+\xb5\xe2k\xc5|\x1d\x8c\x89\x8ew\xc9 \xce<\xa6o\
+\xe2%x\x9bh\xdc\xddT\x0f~\x86aq6\xc0\x18\
+\xfe\xcd\xc3\xe7\xc9\xda.\xa7\xe9\x94\x90).\xdd\xcc\xaa\
+\xee*\xd1\xaf\xa0\xd1Ls\xb2\xd5\xc9\xc0\xcd\xf4w\x0a\
+\x82\x89\xe0\xd1\x22,\x1bd\xf0&\xf6\x9b\x8bn\xe8\x05\
+B\xaa\xee\x8cq>&\x1c%\x85\x81\x9db\xe1\xca9\
+\x0b\xd5\xd8f\xc3\xe6\x09e\xbc\xd6J\xb9\xe9t\x0f9\
+\xbf)\x90O\x9c\x00=\x18A\xc7\xb0\xdc<}\xe1\xde\
+\x22''k\x5c\xeb\x12\x1c\x9a\xe2]!\xf9\xd8\x87\x14\
+\xb9\xb1\x13\xc7A\xf9\xe4o\x92\xf9\xdb\xf0\x18\x88\xe6\xb4\
+W\xdd\xf1\x12H\xc9\xfaQuow{K\xb1\x95B\
+\x9d\x1aY%:\x8b\xb4\x16\xa1ME\xa3\xa6\x0a\xc4*\
+\xa5\xb2\xd3\x94B8\xc7\xd5N\x99\xc2\x97\xe8\xaeQ\xe9\
+4\x9a\xba\xf7L\xb1[\x8e\xf0+8\xe7\xccG\x07\x08\
+\xe1i\xb0\x11f\xe5K\x84\x13\x8a\xf4;\xf4\xeb9\x9d\
+\xc0\x9b\x9a\xad*\xcb\xa7\xeaR\xaf\xf7\x06\xfeH\x1d\x8a\
+\xfe$@\xef\xeeV\xac\xff\xac\xd2%[gb]\x07\
+^\x16-7\x19\xa7\x1a{L\x16\x170w\xd3\xa5\x97\
+\xa2}Fr\xe3\xac'\xefz\xb1\xa6H\x81HE\x89\
+GX\x83\x1c\xe3\x8c\x12\xe4\xe4\xe4$\xcb\xf3\xae\xd1\xdc\
+\x06\xd2.\xae\xc8\x18n\xb3\xfbO\x9d\xf0j\xf0f\xde\
+\xfd\x18q\x0eSO\x22\x86\xcek\xf9!\x96\x91\x8a\xd8\
+\x93'\x0a\x86;\xf9\xa2\xbdF\xb8\x91\x16\xfb\xac\x11\xce\
+)1\x5c\xb8\x9ay\xce^\x0c\xce\xd9\xfd\x9eo\xeed\
+\xf9\xae\xd1U\xd8\xdf\x18]\x99q\x9fY\xc8\x16\xec{\
+mIxy\xc4\xe4\x12\xf6\x1409\xbf\x1f\x89\x9a\xbb\
+~m\xd4\x8c\x84}\xa1f\xf8\xb5\xa2\xb6\xf58\x8bB\
+O32\xa4\xe0z-\xa6Z\x92yG\xf7\xc76X\
+\xd5\x8ai/\x80\x9a]\xcfU\xb8]\x85\xc7v\x13%\
+\xeaH\x86\xe0\x98\xd2\xeb\xfc\xd2\xcc.\x8f\x8c\x16~\x8b\
+<\xe6\xdb\x18\x1a\xd0\xda\x18\xe6\xe1\xd0\xc2\xb0(v-\
+\x1cgD\xa8\xd2J\xde\xc2\xd2RNZx\xbby=\
+kaM-\x90\xdf\xaai\x90\x10\xd9XY\x02\xd7\x1c\
+\x8a\xc2\xbbP\xac*\xa7\x9e\xac\xad\xae\xbdc-\xc21\
+!\xab\x12e\xa9\xba\xd1\x14\x03S\xe0\xd0Dr\xd4\xd0\
+\xf8e\xb7I\xef\xc7B\xf3t\x0co\xed8\x001t\
+I@\xe0\xaa\x92N\x89\x94\xac\xdb\xb5$N}\xc6\x1e\
+7\x22rE\x93\xa4\x1b\xceI\xd1Gk\xb7^\x99\xa2\
+b\x10\xfee7n*\xe3\xa0Q\xa3I$c&Y\
+K\xf0\xf8\xffW\xf8\xd4d\xa0\x22m-|\xcb\xf4\xd9\
+\xad}\x9e.\xdc\xd70L\x8f\x86\xfd\xea\x90<|\xd7\
+\xaf\xcc\xbe\xceO\xc3\xc1\xfbw\xfd\xbeS\x9dx\xafI\
+\x90\x91@\xa55H\x8f$\x11\x96\xdc\x15'f\xdc\x9d\
+\xd3\xb4v\xa9\xb3\xca\x0a\x7f\x17\xf7\x1f\xf3\x8a\x92\xbe\xe6\
+\xceYy\xe6\xad\xf5\xd3k\x8c\xca\xb5ymXy$\
+\x04\xe5\xa7\xd0.\xb0\x94\xdc\xd34\xb9+\xdf\x02,~\
+\xff,\x22\x85\xa74r7\x09\xae\xb7\xb2\xe5\x95\x9b\xba\
+\xe4\x84\xdc\x88}o4\xc0f]\xea\x9bX\xa3\x88L\
+#%\x0bLioH\x0c\xb1\x16\xcb\x9c\x94\xee\xeb\x09\
+wwQ\xcb\x88\xdc4\x16P\x09\xc55\xd3Pz\x85\
+\xc5\xa5t.\xca+\xb5)>x\xdfo\x04\xbe\xae\xf1\
+\x9f\xc1\xd1s5=\xae+\xe8\xb0\xbf>>\xbe\x90+\
+|\x99\xa8g\xccH\xcf\x8e4\x8e\xb3\x22\xd0\xe2\x87\x1f\
+\x14g\xce\xb7\xfa\xa0\x18\xf5\x9f\x97\x8c\x5c(<\xaa\x7f\
+\x936\x96u\xb5\xe4\xae\x0aLa\x9f&Oe\xfcD\
+x\xcd\x16(\x22\x93\x1a\x1b\x9fUK\x9f}\xb4\x8c0\
+\x97C\xbf\x7f\x00\xe8k\x05\xe6\
+\x00\x00\x04$\
+/\
+/ Copyright (C) \
+2021 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0aimport shared\x0d\
+\x0a\x0d\x0a//! [splash-p\
+roperties]\x0d\x0aWind\
+ow {\x0d\x0a id: sp\
+lash\x0d\x0a color:\
+ \x22transparent\x22\x0d\x0a\
+ title: \x22Spla\
+sh Window\x22\x0d\x0a \
+modality: Qt.App\
+licationModal\x0d\x0a \
+ flags: Qt.Spl\
+ashScreen\x0d\x0a p\
+roperty int time\
+outInterval: 200\
+0\x0d\x0a signal ti\
+meout\x0d\x0a//! [spla\
+sh-properties]\x0d\x0a\
+//! [screen-prop\
+erties]\x0d\x0a x: \
+(Screen.width - \
+splashImage.widt\
+h) / 2\x0d\x0a y: (\
+Screen.height - \
+splashImage.heig\
+ht) / 2\x0d\x0a//! [sc\
+reen-properties]\
+\x0d\x0a width: spl\
+ashImage.width\x0d\x0a\
+ height: spla\
+shImage.height\x0d\x0a\
+\x0d\x0a Image {\x0d\x0a \
+ id: splas\
+hImage\x0d\x0a \
+source: Images.q\
+tLogo\x0d\x0a M\
+ouseArea {\x0d\x0a \
+ anchors.\
+fill: parent\x0d\x0a \
+ onClic\
+ked: Qt.quit()\x0d\x0a\
+ }\x0d\x0a }\
+\x0d\x0a //! [timer\
+]\x0d\x0a Timer {\x0d\x0a\
+ interval\
+: splash.timeout\
+Interval; runnin\
+g: true; repeat:\
+ false\x0d\x0a \
+onTriggered: {\x0d\x0a\
+ spla\
+sh.visible = fal\
+se\x0d\x0a \
+splash.timeout()\
+\x0d\x0a }\x0d\x0a \
+ }\x0d\x0a //! [tim\
+er]\x0d\x0a Compone\
+nt.onCompleted: \
+visible = true\x0d\x0a\
+}\x0d\x0a\
+\x00\x00\x03\x08\
+\x00\
+\x00\x0a\xb7x\xda\xadV\xdfo\xda0\x10~G\xe2\x7f\
+\xb8\xe5\x09\xb6\x91\x00\xeb\xa6)}\x986\xaam\x95\xd0\
+\xdaB\xa5uZ\xf7`\x92\x03\xac&v\xe48\x144\
+\xf5\x7f\x9f\x9d\x1f\x8d\x01\x0f\x82\xb6\x08\x89\xdc\xf9\xbb\xfb\
+>\xdbg_<\x0fF<\xd9\x08\xbaXJ\xe8\x8c\xba\
+0\xec\x0f\x07p\xbbD\xb8\x91j$N\x08\xdb\xc0X\
+\x86n\xbb\xe5y0\xbd\xbe\xb8\xeb\x8di\x80,\xc5\xde\
+e\x88L\xd29E\xe1C\xe9\x9b\xe0\xbcw#{*\
+.F\x11P\x12\xc1\xd5\x04>M/zoz\xa3\x88\
+d)\xb6[\xed\x16\x8d\x13.\xa4\xca\x7f\x93\xd1\xe0a\
+\xd7vG\x9cI\xc1\xa3TC/%\xc6\xf0\xbb\xdd\x02\
+\xf5\xd0\xd0\x07\xc1\xb9,\xacG\x1a\xca\xa5\x0fg\xfd~\
+a/Q\xcf\xc0\x87D\xf0\x04\x85\xdc|\x114tU\
+\xe6\x88\x06T~\xcd\x07\xe1\x15\x0c\xde\xe9\xac\x1a?\xcf\
+X )g\xc0\x05U\xd3 \xfa\xfd\x96O\xa5\xa0l\
+\xd1\xe1\xdd\x8aT?\xe9#\x95\xc1\x12v\xbc\x01I\xf5\
+\x1a\xb9\xd7\x82\xc6Dl\xae\xea4~\x0d\xd2\x8f@\x99\
+\x09\x06NR\x00\x9dsK\x0e5\x7fA\xa8l\x90\xa4\
+D\xda\xb2\x8c\x09\x0b\xd3\x80$x<MTAmy\
+.\xd9J\xad \x86\xcdU\xd12\x02\x0e\xc9\xab\xd2\x9e\
+ \xf39\xafU\xefS\xfdZ\x05d\xec\x81\xf1GV\
+\xa1\x9e\xaa\xdd\xd6\xd5`n\x9e\xae%\xb3R\x0c\xb5<\
+\xcab\x96\xfa04\x0a !\x81*\x0b\x1f\xde\xd7\xbe\
+\xb5_\xb9k\xdf\xc6\xf0\xd5^\xcf{\x01?\xd3@ \
+\xb2_\xb5wLf\x18\x99\x92\xf4#q\xadJ\xd8\x99\
+\xe6`\xb8w\x1cU\xb2\x85\xe12\x12\xa3\xb2\x9c{\xc7\
+w\xb6\x83\xe6\xea\xbc\xb83\x1e\xa9)I\x91\xa1u}\
+\x8asT\x1d\x9a\xc1\xf9\xf3q\x19\xc0\x93\x12\x98\xcbF\
+a\xaa.\xf5U\x92b\xc2\xb29\x09\xd4*\xa3p\xcc\
+\xcc\xdb\xb8R\xac\x89\x86\x0fV\xaf_oV\xbdM6\
+b\x1eb\xd4\x80Q\xc3\x0c\xaa\xdcl\xca\x91\xa2\xd0W\
+\x15\xcb\xe2Y\x93\xd9\x15\xf0o9\xba\xa6\xdc\xf26e\
+\x0ei\xac\xaeMu\x00\xd2\xe3\xb4\xf9\xe6\xe9\x12X\x1b\
+eQ\xec\xe3A\x8e\x84\xae\x95\x19j\x1e\xb99N\x93\
+\xc3/\x0a\xb4+\xf9ge\x86\x9daW\x13C\xc8e\
+\xea\xc51t\xb4\x82\x8e%\x00^\xc2\xf0\xad{\xd6\xb5\
+\x06R\x16,\xbb\x87\xd7#\xe2\x0b\x1a\xa8\xad8Qs\
+\x19v}\xaatK\xdc\xbf\xce \xc4\x95j\x85\xe5\x04\
+\x84\xbe\xdc\x8e\xcb/br\x15\x13\x1dar\x1f\xe2\x22\
++B#2\x8b\x10VT\xc8\x8c\xe8\x15K\x1f$O\
+\x9aP\xe6\xc0\x8fU\x86\xef\xb6\xe2\xda\x05}mPl\
+\x5c-\xa2n\xab\x94\x9d.\xaa\x0c\xb8\xd3:^\x83!\
+\xa4\x1c\xf8q\x90\xdah\xe4\x07\xa8\xf4\x17\x84k\xeb\xf9\
+%\x951Tl|\xc7\xd0a\x0c\xea\xb1#\xa5P6\
+|\xf8?\xc2\x92\xbd\xef\x8c}}\xfb\x98Z\xa6\xbd\x1d\
+\xfdU\xfc\xa0\xaf\x0e\x8b\xc0@\x12\xb6\x88p+\xc3\xa4\
+\xf2\xee\xb6/\xd5;\xb9\xfa\x16t\x04\x86;=\xaal\
+<\xf6\x1bc\xd0\xdf\x06W\xbd)\x0f\xdakg\xeaO\
+\xfd\xfe\x00\x1e\x91\x1e\xa9\
+"
+
+qt_resource_name = b"\
+\x00\x06\
+\x07\xe0Kg\
+\x00w\
+\x00i\x00n\x00d\x00o\x00w\
+\x00\x0e\
+\x0ei\x17\x5c\
+\x00A\
+\x00l\x00l\x00S\x00c\x00r\x00e\x00e\x00n\x00s\x00.\x00q\x00m\x00l\
+\x00\x0a\
+\x0bi\x98\xbc\
+\x00w\
+\x00i\x00n\x00d\x00o\x00w\x00.\x00q\x00m\x00l\
+\x00\x0a\
+\x08\x90\x1a|\
+\x00S\
+\x00p\x00l\x00a\x00s\x00h\x00.\x00q\x00m\x00l\
+\x00\x11\
+\x02YG\x1c\
+\x00C\
+\x00u\x00r\x00r\x00e\x00n\x00t\x00S\x00c\x00r\x00e\x00e\x00n\x00.\x00q\x00m\x00l\
+\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00h\x00\x01\x00\x00\x00\x01\x00\x00\x0d\xcc\
+\x00\x00\x01\x87V\x12\x92R\
+\x00\x00\x00N\x00\x00\x00\x00\x00\x01\x00\x00\x09\xa4\
+\x00\x00\x01\x87V\x12\x92R\
+\x00\x00\x004\x00\x01\x00\x00\x00\x01\x00\x00\x05\x16\
+\x00\x00\x01\x87V\x12\x92R\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x87V\x12\x92R\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/quick/window/window.pyproject b/examples/quick/window/window.pyproject
index 8ce352cd2..d3375e95b 100644
--- a/examples/quick/window/window.pyproject
+++ b/examples/quick/window/window.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["main.py", "window.qml", "Splash.qml", "AllScreens.qml", "CurrentScreen.qml"]
+ "files": ["main.py", "window.qml", "window.qrc", "Splash.qml", "AllScreens.qml", "CurrentScreen.qml"]
}
diff --git a/examples/quick/window/window_rc.py b/examples/quick/window/window_rc.py
deleted file mode 100644
index 71a65fc44..000000000
--- a/examples/quick/window/window_rc.py
+++ /dev/null
@@ -1,328 +0,0 @@
-# Resource object code (Python 3)
-# Created by: object code
-# Created by: The Resource Compiler for Qt version 6.5.0
-# WARNING! All changes made in this file will be lost!
-
-from PySide6 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x04\xe8\
-/\
-/ Copyright (C) \
-2021 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0a\x0ai\
-mport QtQuick\x0aim\
-port QtQuick.Con\
-trols\x0a\x0aColumn {\x0a\
- id: root\x0a \
- spacing: 8\x0a\x0a \
- Label {\x0a \
- text: \x22Total nu\
-mber of screens:\
- \x22 + screenInfo.\
-count\x0a fo\
-nt.bold: true\x0a \
- }\x0a\x0a Flow {\x0a\
- spacing:\
- 12\x0a widt\
-h: parent.width\x0a\
-\x0a Repeate\
-r {\x0a \
-id: screenInfo\x0a \
- model\
-: (Qt.applicatio\
-n as Application\
-).screens\x0a \
- Label {\x0a \
- re\
-quired property \
-string name\x0a \
- requ\
-ired property in\
-t virtualX\x0a \
- requi\
-red property int\
- virtualY\x0a \
- requir\
-ed property var \
-modelData // avo\
-id shadowing Lab\
-el.width and hei\
-ght\x0a\x0a \
- lineHeight:\
- 1.5\x0a \
- text: name \
-+ \x22\x5cn\x22 + virtual\
-X + \x22, \x22 + virtu\
-alY + \x22 \x22 + mode\
-lData.width + \x22x\
-\x22 + modelData.he\
-ight\x0a \
- }\x0a }\x0a \
- }\x0a\x0a Componen\
-t.onCompleted: {\
-\x0a var scr\
-eens = (Qt.appli\
-cation as Applic\
-ation).screens;\x0a\
- for (var\
- i = 0; i < scre\
-ens.length; ++i)\
-\x0a con\
-sole.log(\x22screen\
- \x22 + screens[i].\
-name + \x22 has geo\
-metry \x22 +\x0a \
- \
- screens[i].vir\
-tualX + \x22, \x22 + s\
-creens[i].virtua\
-lY + \x22 \x22 +\x0a \
- \
- screens[i].wi\
-dth + \x22x\x22 + scre\
-ens[i].height)\x0a \
- }\x0a}\x0a\
-\x00\x00\x04\x8e\
-\x00\
-\x00\x16\x10x\x9c\xcdXKo\xdb8\x10\xbe\xfbW\xb0\
-\xdaK\xb2\x85\xdf\xed\xc5E\xb0H\x5ctS E\x9b\
-8h\x0a,\xf6\xa0Hc\x8b\x1bZ4H*v6\
-\x9b\xff\xbe#\x91\xd4\xc3\xa2d\xa7q\xb7\xcb\x8b%r\
-\xf8q\xe6\x9b\x878\xee\xf7\xc9\x94\xaf\x1e\x04]D\x8a\
-\x1cM\x8f\xc9h0\x1a\x92\xeb\x08\xc8\xa5\xc2\x95\xe5\xca\
-\x8f\x1f\xc8\x85\x0a{\x9d~\x9f\xcc\xbe\xbc\xff\xd6\xbd\xa0\
-\x01\xc4\x12\xba\x1fC\x88\x15\x9dS\x10\x13b\xe6\xae`\
-\xde\xbdT]\xdc\xb6\x04\x11P\x9f\x91\xcfW\xe4l\xf6\
-\xbe;\xeeN\x99\x9fH\xe8t\xe8r\xc5\x85B\xf0\xcb\
-\x84\x06w[\xaf\xbd)\x8f\x95\xe0Lv:\x97\xea\xf3\
-\xed_\x10(\xf2\xd8!8h8!\x82s\x95\xbd\xac\
-\x04_\x81P\x0fD\x00\x1e\x11\xc2\xdcO\x98\x9a\xad\xfc\
-\x80\xc6\x8b\x09\x19\x0e\xaaB\xb3\x07\xa9`\xf9\xc5g\xa0\
-\x14\x90\x95\xfe\x9dlM?\x92\xa7Nu\xdb\xbd/H\
-\xa0\xd5\xb9\xa1q\xc8\xd7\x13\xa2\x7f\x8dF\xe9X\xd3P\
-E\x13\x14c=4\x84\xd1\x80\xaa\x9bt\x8a\xbc\xce\x94\
-\xedUU#\xbf\x92Q\xbe5\x82\x94\xf1\xea\xde\xf3l\
-n\x8f\xcd\xb8\x89\x0bMH\xcf\x18\xd4[g\xca\xe5\x22\
-\x8a*\x86Vz\x86Q\xa3\xbb\x97\xafO9K\x96q\
-\xc9\x16\xcb2bW\xe6\xfc8\x88\xb8\x90\xbd9el\
-\x82\xf4\x09\xf4\xbaS`\xe9\x8b\x05\x8d\xe5\xc4\xa5}e\
-\x83\xb4\x9e\xda%X\xf5s\x00\x8c\xdd\x14\x84g\xdc\x93\
->\x19\x93\xaeE\xacl\xbe\xf0o\x81\xa1_\x15lT\
-\x89\x07\x85\x91-\x01\x1d\x1b\x12\xcd\xd8\xc4C\xd7\x977\
-\xfe.h\xb8\xc5\x8b\xe5f\x81K\xb5\x85 c\x12\xed\
-\x1e\xd7\x96\xf6\xb64\x1d&\x984\xc3\xda\xbc\x9a\xccY\
-\xa2\x14\xdf\xf6ZYC\x19\xf1\xb5\x16r\x8a\x94\x026\
-\xa7\xd3)\xa8Y\xcb\xd4V \x95\x8e\x9e\xde=\x95\xf4\
-\x96\x01\xf9\x8dx\xe74\x04\x8f \xb1\xb3\xa8\x1cV\xe5\
-\xc1\xe3)\x86\xf5\x1d\x84\xcd@'\xe4U\xc3R\x0d\xf1\
-\xa96\xd3\xef\xbf\x22\x7fh'B8\x8d \xb8\xbb\xe5\
-\x9b?kb\xd9\xca\x19\xdf4\xb0f\xe2\xe3\xc6\xe0\xb8\
-M\xb1\xd9Z\xd0\xdb\xd3S/c\xf9\x0c\x0fMs\x1b\
-]\x1a\xa4Z\x02\x06\x1e\x16\x1e\x96@\x03e\x94QL\
-\x87\x93\x93\x13\x93\xcf=\xab\xb6\x83\x9et\xecr\x81\xc1\
-\xdbF\xfb\xcf\xc8\xffA\xbc\x1a\x9f~H\x18#\xb3@\
-\x00\xc4n\xb7\xbe\x9c\xff\xf4\x08}\xc2a<P\xe0\xed\
-\xe1\x83\x9d\xd5\xc0O\x14?\x5c5\xf0N\x11n\xe9+\
-\x1a|_\xbeo\x99\x9a\xa3}\xcd\x17\xf7\xb0y\xcf\x80\
-*,o\x0b(c\xd7'\x1a\xd3%\xfd\xbb)\xf9_\
-\x1e%\xf9\x01\x87\x09\x92\x1c\xeeg\xf1\xe5o~0_\
-\xf6\x80\x03\xf1e\xe1v\xf0U}\x9b'q\xa0(\x1a\
-Q@^\xf3\x99\x12h\xda\xd1\xfd\xb1\x83O\xb9\xa6*\
-\x88\x88{1\xf0%l\x97\xd9\x89\xd38\x01*\x111\
-\xf1lq\xf5\xde\xb5\x82\xe5\xc1\xd0\x8e\xb6\xccc|\x07\
-\x9c\xe5j\x07\x5c\x1e\x02\xedpE=k\xc7\x9b\xa3\x9c\
-\xd4\x95\xba\x1d\xd0Q5\xda\x91\xfd\xbch\xb5\x03\xe3\x85\
-&\xdc\xa5e\x94\xc98\x80\xeaaj\xb7$\xf1]\xcc\
-\xd7\xdb{\xaa\xf2\xe6\xaa\xea\xbcr\x16\xc1\x97I\xd5d\
-LJV\xae\xb4\x84J\xe2a\x1bq\xd4r\x7f3\x8f\
-\xd9\x15\x8e\xc6\xf6\xed\x98\xbcv\x12@\x10\xcfG\xfc\xc8\
-\x97%\x8d\xb2C\xcc}\xd5\x91$\xcd\xa9y\xdcB\xc6\
-\x156}~\xbc@-\x1dI\xe4\xe8{R\x02\xbe\xeb\
-.mK\xdf\xb0E\x99i\x22R\x04\xf3\x85\x7f\xfc?\
-\xabzj\x13M\xa2\x9e\x0e\xd0\x92\xb8~r5\xbc\x85\
-\xb7\x9a\xbb\xdd\xf1hP\xebbGo\x8a9c\xb9\xf7\
-\xcbh\xf8\xf6\xcd`P|#lKz\x8d\x87Xt\
-,\x99\x91\xde\x91\x05S\xf6\x94o\x983\x7f\x81}\xd5\
-\xa52\x15\x93\xfcS<\x7f\xc8\x0b\x86\xfel\x9d\xd3R\
-[\xda\xe4\x98\xc3\xf7\xb2M\xa9k\x81\x02<\x01\xc4\xc7\
-\xd8yZF\x8a\xce\xdf\x99\xce\xdf\xed.\xbd\xee\xe6O\
-<\x91p\x8a\x0dq\xcb\xa1\x8d\xe6\xa5\xa3\xe5\xdb\xa9\xfd\
-p\x82\xae\x83A0\x1eB\x9b\x1e\x8dwO\xab\x84\xd0\
-\x91aBP8\xef\x14VV\xf1U.\x89\xcf\x8dr\
-{\xbb\xa5`\xf6\xd9\xd7x\xac\x8d\xb0\xa1\x8a\x94\xbeH\
-i\x8d\x5c\xf0\xf2LS\x16\x0f\xdf\x0e\xda\x08o\xb8\xa9\
-\xcf\x1b*u\x8b\x9a\xc7N\xa4t\x1c\xea\xea\x9d\x0e`\
-\xb2\xde\x88?\xe7\xa0\xbd\xdb\x99g\x06\x17\x83y\x11[\
-\xe9\xcb\xcf\x08-\xef[c\x1c\x8c[\xc3\xa0\x96w\x8c\
-K8j\xfa(6Wk\xb9b\xbe\x8cl\xbd\x9ee\
-o%\xd2x|M\x97\xc0\x13\x9b\x05\x95\x7f3K\x7f\
-\xc1(\x91\x809\xe3\xa9\xf3/I\x8e\xfe,\
-\x00\x00\x03\xfa\
-/\
-/ Copyright (C) \
-2021 The Qt Comp\
-any Ltd.\x0a// SPDX\
--License-Identif\
-ier: LicenseRef-\
-Qt-Commercial OR\
- BSD-3-Clause\x0a\x0ai\
-mport QtQuick\x0aim\
-port shared\x0a\x0a//!\
- [splash-propert\
-ies]\x0aWindow {\x0a \
- id: splash\x0a \
- color: \x22transpa\
-rent\x22\x0a title:\
- \x22Splash Window\x22\
-\x0a modality: Q\
-t.ApplicationMod\
-al\x0a flags: Qt\
-.SplashScreen\x0a \
- property int t\
-imeoutInterval: \
-2000\x0a signal \
-timeout\x0a//! [spl\
-ash-properties]\x0a\
-//! [screen-prop\
-erties]\x0a x: (\
-Screen.width - s\
-plashImage.width\
-) / 2\x0a y: (Sc\
-reen.height - sp\
-lashImage.height\
-) / 2\x0a//! [scree\
-n-properties]\x0a \
- width: splashI\
-mage.width\x0a h\
-eight: splashIma\
-ge.height\x0a\x0a I\
-mage {\x0a i\
-d: splashImage\x0a \
- source: I\
-mages.qtLogo\x0a \
- MouseArea {\
-\x0a anc\
-hors.fill: paren\
-t\x0a on\
-Clicked: Qt.quit\
-()\x0a }\x0a \
- }\x0a //! [time\
-r]\x0a Timer {\x0a \
- interval:\
- splash.timeoutI\
-nterval; running\
-: true; repeat: \
-false\x0a on\
-Triggered: {\x0a \
- splash.\
-visible = false\x0a\
- spla\
-sh.timeout()\x0a \
- }\x0a }\x0a \
- //! [timer]\x0a \
- Component.onCom\
-pleted: visible \
-= true\x0a}\x0a\
-\x00\x00\x02\xff\
-\x00\
-\x00\x0adx\x9c\xadV\xdfo\xda0\x10~\xcf_q\
-\xcb\x13l#\x01\xd6MS\xfa0mT[+\xa1\xb5\
-\x85J\xeb\xb4\xee\xc1$\x07XM\xec\xc8q(h\xe2\
-\x7f\x9f\x9d_8\x90\x12\xaa-O\xb9\xf3w\xf7}\xf1\
-\x9d}q]\x18\xf1x#\xe8b)\xa13\xea\xc2\xb0\
-?\x1c\xc0\xdd\x12\xe1V\xaa\x95(&l\x03c\x198\
-\x96\xeb\xc2\xf4\xe6\xe2\xbe7\xa6>\xb2\x04{W\x012\
-I\xe7\x14\x85\x07\x85o\x82\xf3\xde\xad\xec\xa9\xb0\x08\x85\
-OI\x08\xd7\x13\xf82\xbd\xe8\xbd\xeb\x8dB\x92&h\
-Y4\x8a\xb9\x90*\xf9mJ\xfd\xc7=\xd3\x19q&\
-\x05\x0f\x13\xcb\xba\x92\x18\xc1\x1f\x0b\xd4C\x03\x0f\x04\xe7\
-23\x9eh \x97\x1e\x9c\xf5\xfb\x99\xb9D-\xdc\x83\
-X\xf0\x18\x85\xdc|\x134pT\xd2\x90\xfaT^f\
-\x8b\xf0\x06\x06\x1f\xac\x0c=O\x99/)g\xc0\x05U\
-\xe2\x89~\xbf\xe3S)([tx\xb7\xe0\xd3O\xf2\
-D\xa5\xbf\x84\xba\xd3'\x89\xde\x16\xe7F\xd0\x88\x88\xcd\
-\xf5.\x89Wa\xf4#P\xa6\x82\x81\x1d\xe78\xfb\xfc\
-0\x83\xfahA\xa8lOQ\x00\x1br\x8c\x09\x0b\x12\
-\x9f\xc4\xd8\x9a$,\x91\x0dY\xae\xd8J\xed\x1b\x06'\
-+\xa2E\x00\x1c\x91V&=]b\x95\xb5I\xeb\xd6\
-\xda\x87\xa7\xec\x91\xf1'V`\xb6yuu\xed\x8dj\
-\xe9\xb61\xdbb\xa7\x92\x87i\xc4\x12\x0f\x86\xbbr\xc7\
-\xc4W=\xe0\xc1\xc7\xca\xb5\xf6Jo\xe5\xda\xec\x5c\x95\
-\xcfu_\xc1\xaf\xc4\x17\x88\xecw\xe5\x1c\x93\x19\x86\x86\
-\x14\xfdH\x5c\xab>\xb5\xa7\x19\x14\x1el[\xf5en\
-8\x8cD\xa8,\xfb\xc1\xf6\xecZ\xcc\x5c\x1d\x07g\xc6\
-C\xf5%R\xa4\xd8\xb0!\xf91)O\xc5\xe0\xbc:\
-\x10\x03\xd8*m\x99^\x14\xd6\xbe\xb2RMDX:\
-'\xbe\xdaT\x14\xb6\x91\xb6\x0e+d\x9a`\xf8\xd4\xe8\
-\xf5v\xa5)\xab\xd2\xc4\xca\x03\x0c\xdb\xe94\xca\xe0\xc9\
-\xcc\xd3\x08\x12\x14\xfa\xf2ai4;\xe1\xbbr\xf4\xf7\
-\x0c\xbc\xe3\xabyO\xa3\x0dh\xa4nA\xd5\xe3I+\
-gV0]\xf3\xb5\xd1\x07y\xed\x8e\x10\xc4t\xad\xcc\
-@\x93\xc8M+G\x86\xbe\xc8\xc1\x8e\xe4_\x95\x19t\
-\x86]\xcd\x0a\x01\x97\x89\x1bE\xd0\xd1\xf4\x9d\x86\x00x\
-\x0d\xc3\xf7\xceY\xb71\x902\x7f\xd9=\xb6\x13!_\
-P_U\xe0e\x82\x8b\xa8\x9b\x97\xean\x88\xfb7\xf9\
-\x01\xae\xd4@+\xd4\x0b}m\xb5j\xcfC2\x09\x13\
-\x1d`\x12?ODV\x84\x86d\x16\x22\xac\xa8\x90)\
-\xd1{\x95<J\x1e\x9f\xc0\x97\xe1>\x97\x09~45\
-\xd4>\xe8\xb2\xb5\xc1\xb8\xda<= ){\xb1\xa2\x02\
-\x7f\xafE\xbc\x05CE\xb1\xf0\xf3\x08\xaf1\x8f\x9f\xe7\
-\xd1\xff\x00N\xd3\xe4.x\x8c\xa5\xbc\xd8\x1dC\x84\xb1\
-\xa8\xd7\x8e\x96\xbf\x98\xdb\xf0_T\xc5\x07?\x0b\x87\xe2\
-\x0e1\x95\xc6\x92\xb46g\x9e\x13>\xe8\xab\xa3!\xd0\
-\x97\x84-B4\xc3'\xa5so*\xa9Y\xc8\xd5\xff\
-\x9b-0\xa8\x8f\x9eb\xa24\xdf\x0c\x83~\x0d[\xce\
-\x9c,foHm\xad\xad\xf5\x17o|\x1ar\
-"
-
-qt_resource_name = b"\
-\x00\x06\
-\x07\xe0Kg\
-\x00w\
-\x00i\x00n\x00d\x00o\x00w\
-\x00\x0e\
-\x0ei\x17\x5c\
-\x00A\
-\x00l\x00l\x00S\x00c\x00r\x00e\x00e\x00n\x00s\x00.\x00q\x00m\x00l\
-\x00\x0a\
-\x0bi\x98\xbc\
-\x00w\
-\x00i\x00n\x00d\x00o\x00w\x00.\x00q\x00m\x00l\
-\x00\x0a\
-\x08\x90\x1a|\
-\x00S\
-\x00p\x00l\x00a\x00s\x00h\x00.\x00q\x00m\x00l\
-\x00\x11\
-\x02YG\x1c\
-\x00C\
-\x00u\x00r\x00r\x00e\x00n\x00t\x00S\x00c\x00r\x00e\x00e\x00n\x00.\x00q\x00m\x00l\
-\
-"
-
-qt_resource_struct = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00h\x00\x01\x00\x00\x00\x01\x00\x00\x0d|\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x00N\x00\x00\x00\x00\x00\x01\x00\x00\x09~\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x004\x00\x01\x00\x00\x00\x01\x00\x00\x04\xec\
-\x00\x00\x01\x82Y\xad^\x0f\
-\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x82Y\xad^\x0f\
-"
-
-def qInitResources():
- QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
- QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
diff --git a/examples/quick3d/customgeometry/main.py b/examples/quick3d/customgeometry/main.py
index ff1ce384e..148330d91 100644
--- a/examples/quick3d/customgeometry/main.py
+++ b/examples/quick3d/customgeometry/main.py
@@ -11,9 +11,9 @@ from PySide6.QtQml import QQmlApplicationEngine
from PySide6.QtQuick3D import QQuick3D
# Imports to trigger the resources and registration of QML elements
-import resources_rc
-from examplepoint import ExamplePointGeometry
-from exampletriangle import ExampleTriangleGeometry
+import resources_rc # noqa: F401
+from examplepoint import ExamplePointGeometry # noqa: F401
+from exampletriangle import ExampleTriangleGeometry # noqa: F401
if __name__ == "__main__":
os.environ["QT_QUICK_CONTROLS_STYLE"] = "Basic"
diff --git a/examples/quick3d/proceduraltexture/ProceduralTextureModule/Main.qml b/examples/quick3d/proceduraltexture/ProceduralTextureModule/Main.qml
new file mode 100644
index 000000000..610c08a27
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/ProceduralTextureModule/Main.qml
@@ -0,0 +1,188 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick3D
+import QtQuick3D.Helpers
+import QtQuick.Controls
+import QtQuick.Layouts
+
+import ProceduralTextureModule
+
+ApplicationWindow {
+ id: window
+ width: 480
+ height: 320
+ visible: true
+ title: "Procedural Texture Example"
+
+ QtObject {
+ id: applicationState
+ property int size: size256.checked ? 256 : 16
+ property color startColor: "#00dbde"
+ property color endColor: "#fc00ff"
+ property int filterMode: size === 256 ? Texture.Linear : Texture.Nearest
+ property Texture texture: pythonModeRadio.checked ? textureFromPython : textureFromQML
+
+ function randomColor() : color {
+ return Qt.rgba(Math.random(),
+ Math.random(),
+ Math.random(),
+ 1.0);
+ }
+ }
+
+ View3D {
+ anchors.fill: parent
+
+ DirectionalLight {
+ }
+
+ PerspectiveCamera {
+ z: 300
+ }
+
+ Texture {
+ id: textureFromPython
+
+ minFilter: applicationState.filterMode
+ magFilter: applicationState.filterMode
+ textureData: gradientTexture
+
+ GradientTexture {
+ id: gradientTexture
+ startColor: applicationState.startColor
+ endColor: applicationState.endColor
+ width: applicationState.size
+ height: width
+ }
+ }
+
+ Texture {
+ id: textureFromQML
+ minFilter: applicationState.filterMode
+ magFilter: applicationState.filterMode
+ textureData: gradientTextureDataQML
+
+ ProceduralTextureData {
+ id: gradientTextureDataQML
+
+ property color startColor: applicationState.startColor
+ property color endColor: applicationState.endColor
+ width: applicationState.size
+ height: width
+ textureData: generateTextureData()
+
+ function linearInterpolate(startColor : color, endColor : color, fraction : real) : color{
+ return Qt.rgba(
+ startColor.r + (endColor.r - startColor.r) * fraction,
+ startColor.g + (endColor.g - startColor.g) * fraction,
+ startColor.b + (endColor.b - startColor.b) * fraction,
+ startColor.a + (endColor.a - startColor.a) * fraction
+ );
+ }
+
+ function generateTextureData() {
+ let dataBuffer = new ArrayBuffer(width * height * 4)
+ let data = new Uint8Array(dataBuffer)
+
+ let gradientScanline = new Uint8Array(width * 4);
+
+ for (let x = 0; x < width; ++x) {
+ let color = linearInterpolate(startColor, endColor, x / width);
+ let offset = x * 4;
+ gradientScanline[offset + 0] = color.r * 255;
+ gradientScanline[offset + 1] = color.g * 255;
+ gradientScanline[offset + 2] = color.b * 255;
+ gradientScanline[offset + 3] = color.a * 255;
+ }
+
+ for (let y = 0; y < height; ++y) {
+ data.set(gradientScanline, y * width * 4);
+ }
+
+ return dataBuffer;
+ }
+ }
+ }
+
+ Model {
+ source: "#Cube"
+
+ materials: [
+ PrincipledMaterial {
+ baseColorMap: applicationState.texture
+ }
+ ]
+
+ PropertyAnimation on eulerRotation.y {
+ from: 0
+ to: 360
+ duration: 5000
+ loops: Animation.Infinite
+ running: true
+ }
+ }
+ }
+
+ Pane {
+ ColumnLayout {
+
+ GroupBox {
+ title: "Size:"
+
+ ButtonGroup {
+ id: sizeGroup
+ }
+
+ ColumnLayout {
+ RadioButton {
+ id: size256
+ text: "256x256"
+ checked: true
+ ButtonGroup.group: sizeGroup
+ }
+ RadioButton {
+ id: size512
+ text: "16x16"
+ checked: false
+ ButtonGroup.group: sizeGroup
+ }
+ }
+ }
+
+ GroupBox {
+ title: "Backend:"
+
+ ButtonGroup {
+ id: backendGroup
+ }
+
+ ColumnLayout {
+ RadioButton {
+ id: pythonModeRadio
+ text: "Python"
+ checked: true
+ ButtonGroup.group: backendGroup
+ }
+ RadioButton {
+ id: qmlModeRadio
+ text: "QML"
+ checked: false
+ ButtonGroup.group: backendGroup
+ }
+ }
+
+ }
+
+ Button {
+ text: "Random Start Color"
+ onClicked: applicationState.startColor = applicationState.randomColor();
+ }
+ Button {
+ text: "Random End Color"
+ onClicked: applicationState.endColor = applicationState.randomColor();
+ }
+ }
+ }
+}
diff --git a/examples/quick3d/proceduraltexture/ProceduralTextureModule/app.qrc b/examples/quick3d/proceduraltexture/ProceduralTextureModule/app.qrc
new file mode 100644
index 000000000..f0719ad5b
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/ProceduralTextureModule/app.qrc
@@ -0,0 +1,6 @@
+<RCC>
+ <qresource prefix="/qt/qml/ProceduralTextureModule">
+ <file>qmldir</file>
+ <file>Main.qml</file>
+ </qresource>
+</RCC>
diff --git a/examples/quick3d/proceduraltexture/ProceduralTextureModule/qmldir b/examples/quick3d/proceduraltexture/ProceduralTextureModule/qmldir
new file mode 100644
index 000000000..7a5644075
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/ProceduralTextureModule/qmldir
@@ -0,0 +1,2 @@
+module ProceduralTextureModule
+Main 1.0 Main.qml
diff --git a/examples/quick3d/proceduraltexture/doc/proceduraltexture-example.webp b/examples/quick3d/proceduraltexture/doc/proceduraltexture-example.webp
new file mode 100644
index 000000000..60bc9a3df
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/doc/proceduraltexture-example.webp
Binary files differ
diff --git a/examples/quick3d/proceduraltexture/doc/proceduraltexture.rst b/examples/quick3d/proceduraltexture/doc/proceduraltexture.rst
new file mode 100644
index 000000000..f2af3ee52
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/doc/proceduraltexture.rst
@@ -0,0 +1,12 @@
+Procedural Texture Example
+==========================
+
+Demonstrates how to provide custom texture data from Python.
+
+.. image:: proceduraltexture-example.webp
+ :width: 400
+ :alt: QtQuick3D Procedural Texture Example
+
+In this example, we leverage `QQuick3DTextureData` and the `textureData`
+property of `Texture` to produce texture data dynamically from Python, rather
+than sourcing it from a static asset.
diff --git a/examples/quick3d/proceduraltexture/gradienttexture.py b/examples/quick3d/proceduraltexture/gradienttexture.py
new file mode 100644
index 000000000..a577f7ebd
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/gradienttexture.py
@@ -0,0 +1,105 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Signal, Property, QSize
+from PySide6.QtGui import QColor
+from PySide6.QtQuick3D import QQuick3DTextureData
+from PySide6.QtQml import QmlElement
+
+QML_IMPORT_NAME = "ProceduralTextureModule"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class GradientTexture(QQuick3DTextureData):
+
+ heightChanged = Signal(int)
+ widthChanged = Signal(int)
+ startColorChanged = Signal(QColor)
+ endColorChanged = Signal(QColor)
+
+ def __init__(self, parent=None):
+ super().__init__(parent=parent)
+ self._height = 256
+ self._width = 256
+ self._startcolor = QColor("#d4fc79")
+ self._endcolor = QColor("#96e6a1")
+ self.updateTexture()
+
+ @Property(int, notify=heightChanged)
+ def height(self):
+ return self._height
+
+ @height.setter
+ def height(self, val):
+ if self._height == val:
+ return
+ self._height = val
+ self.updateTexture()
+ self.heightChanged.emit(self._height)
+
+ @Property(int, notify=widthChanged)
+ def width(self):
+ return self._width
+
+ @width.setter
+ def width(self, val):
+ if self._width == val:
+ return
+ self._width = val
+ self.updateTexture()
+ self.widthChanged.emit(self._width)
+
+ @Property(QColor, notify=startColorChanged)
+ def startColor(self):
+ return self._startcolor
+
+ @startColor.setter
+ def startColor(self, val):
+ if self._startcolor == val:
+ return
+ self._startcolor = val
+ self.updateTexture()
+ self.startColorChanged.emit(self._startcolor)
+
+ @Property(QColor, notify=endColorChanged)
+ def endColor(self):
+ return self._endcolor
+
+ @endColor.setter
+ def endColor(self, val):
+ if self._endcolor == val:
+ return
+ self._endcolor = val
+ self.updateTexture()
+ self.endColorChanged.emit(self._endcolor)
+
+ def updateTexture(self):
+ self.setSize(QSize(self._width, self._height))
+ self.setFormat(QQuick3DTextureData.RGBA8)
+ self.setHasTransparency(False)
+ self.setTextureData(self.generate_texture())
+
+ def generate_texture(self):
+ # Generate a horizontal gradient by interpolating between start and end colors.
+ gradientScanline = [
+ self.linear_interpolate(self._startcolor, self._endcolor, x / self._width)
+ for x in range(self._width)
+ ]
+ # Convert the gradient colors to a flattened list of RGBA values.
+ flattenedGradient = [
+ component
+ for color in gradientScanline
+ for component in (color.red(), color.green(), color.blue(), 255)
+ ]
+ # Repeat the gradient vertically to form the texture.
+ return bytearray(flattenedGradient * self._height)
+
+ def linear_interpolate(self, color1, color2, value):
+ output = QColor()
+
+ output.setRedF(color1.redF() + (value * (color2.redF() - color1.redF())))
+ output.setGreenF(color1.greenF() + (value * (color2.greenF() - color1.greenF())))
+ output.setBlueF(color1.blueF() + (value * (color2.blueF() - color1.blueF())))
+
+ return output
diff --git a/examples/quick3d/proceduraltexture/main.py b/examples/quick3d/proceduraltexture/main.py
new file mode 100644
index 000000000..a732cc015
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/main.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import QQmlApplicationEngine
+
+from gradienttexture import GradientTexture # noqa: F401
+
+from pathlib import Path
+
+import os
+import sys
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ app.setOrganizationName("QtProject")
+ app.setApplicationName("ProceduralTexture")
+
+ engine = QQmlApplicationEngine()
+ app_dir = Path(__file__).parent
+ engine.addImportPath(os.fspath(app_dir))
+ engine.loadFromModule("ProceduralTextureModule", "Main")
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ ex = app.exec()
+ del engine
+
+ sys.exit(ex)
diff --git a/examples/quick3d/proceduraltexture/proceduraltexture.pyproject b/examples/quick3d/proceduraltexture/proceduraltexture.pyproject
new file mode 100644
index 000000000..0815cd8b8
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/proceduraltexture.pyproject
@@ -0,0 +1,9 @@
+{
+ "files": [
+ "main.py",
+ "gradienttexture.py",
+ "ProceduralTextureModule/qmldir",
+ "ProceduralTextureModule/Main.qml",
+ "ProceduralTextureModule/app.qrc"
+ ]
+}
diff --git a/examples/quickcontrols/contactslist/Contact/ContactDelegate.ui.qml b/examples/quickcontrols/contactslist/Contact/ContactDelegate.ui.qml
new file mode 100644
index 000000000..affcccc3e
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/ContactDelegate.ui.qml
@@ -0,0 +1,82 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+
+ItemDelegate {
+ id: delegate
+
+ checkable: true
+
+ contentItem: ColumnLayout {
+ spacing: 10
+
+ Label {
+ text: fullName
+ font.bold: true
+ elide: Text.ElideRight
+ Layout.fillWidth: true
+ }
+
+ GridLayout {
+ id: grid
+ visible: false
+
+ columns: 2
+ rowSpacing: 10
+ columnSpacing: 10
+
+ Label {
+ text: qsTr("Address:")
+ Layout.leftMargin: 60
+ }
+
+ Label {
+ text: address
+ font.bold: true
+ elide: Text.ElideRight
+ Layout.fillWidth: true
+ }
+
+ Label {
+ text: qsTr("City:")
+ Layout.leftMargin: 60
+ }
+
+ Label {
+ text: city
+ font.bold: true
+ elide: Text.ElideRight
+ Layout.fillWidth: true
+ }
+
+ Label {
+ text: qsTr("Number:")
+ Layout.leftMargin: 60
+ }
+
+ Label {
+ text: number
+ font.bold: true
+ elide: Text.ElideRight
+ Layout.fillWidth: true
+ }
+ }
+ }
+
+ states: [
+ State {
+ name: "expanded"
+ when: delegate.checked
+
+ PropertyChanges {
+ // TODO: When Qt Design Studio supports generalized grouped properties, change to:
+ // grid.visible: true
+ target: grid
+ visible: true
+ }
+ }
+ ]
+}
diff --git a/examples/quickcontrols/contactslist/Contact/ContactDialog.qml b/examples/quickcontrols/contactslist/Contact/ContactDialog.qml
new file mode 100644
index 000000000..d906f00e6
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/ContactDialog.qml
@@ -0,0 +1,45 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Dialog {
+ id: dialog
+
+ signal finished(string fullName, string address, string city, string number)
+
+ function createContact() {
+ form.fullName.clear();
+ form.address.clear();
+ form.city.clear();
+ form.number.clear();
+
+ dialog.title = qsTr("Add Contact");
+ dialog.open();
+ }
+
+ function editContact(contact) {
+ form.fullName.text = contact.fullName;
+ form.address.text = contact.address;
+ form.city.text = contact.city;
+ form.number.text = contact.number;
+
+ dialog.title = qsTr("Edit Contact");
+ dialog.open();
+ }
+
+ x: parent.width / 2 - width / 2
+ y: parent.height / 2 - height / 2
+
+ focus: true
+ modal: true
+ title: qsTr("Add Contact")
+ standardButtons: Dialog.Ok | Dialog.Cancel
+
+ contentItem: ContactForm {
+ id: form
+ }
+
+ onAccepted: finished(form.fullName.text, form.address.text, form.city.text, form.number.text)
+}
diff --git a/examples/quickcontrols/contactslist/Contact/ContactForm.ui.qml b/examples/quickcontrols/contactslist/Contact/ContactForm.ui.qml
new file mode 100644
index 000000000..56c918619
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/ContactForm.ui.qml
@@ -0,0 +1,72 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+
+GridLayout {
+ id: grid
+ property alias fullName: fullName
+ property alias address: address
+ property alias city: city
+ property alias number: number
+ property int minimumInputSize: 120
+ property string placeholderText: qsTr("<enter>")
+
+ rows: 4
+ columns: 2
+
+ Label {
+ text: qsTr("Full Name")
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ }
+
+ TextField {
+ id: fullName
+ focus: true
+ Layout.fillWidth: true
+ Layout.minimumWidth: grid.minimumInputSize
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ placeholderText: grid.placeholderText
+ }
+
+ Label {
+ text: qsTr("Address")
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ }
+
+ TextField {
+ id: address
+ Layout.fillWidth: true
+ Layout.minimumWidth: grid.minimumInputSize
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ placeholderText: grid.placeholderText
+ }
+
+ Label {
+ text: qsTr("City")
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ }
+
+ TextField {
+ id: city
+ Layout.fillWidth: true
+ Layout.minimumWidth: grid.minimumInputSize
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ placeholderText: grid.placeholderText
+ }
+
+ Label {
+ text: qsTr("Number")
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ }
+
+ TextField {
+ id: number
+ Layout.fillWidth: true
+ Layout.minimumWidth: grid.minimumInputSize
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ placeholderText: grid.placeholderText
+ }
+}
diff --git a/examples/quickcontrols/contactslist/Contact/ContactList.qml b/examples/quickcontrols/contactslist/Contact/ContactList.qml
new file mode 100644
index 000000000..0b7af32b5
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/ContactList.qml
@@ -0,0 +1,70 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ApplicationWindow {
+ id: window
+
+ property int currentContact: -1
+
+ width: 320
+ height: 480
+ visible: true
+ title: qsTr("Contact List")
+
+ ContactDialog {
+ id: contactDialog
+ onFinished: function(fullName, address, city, number) {
+ if (currentContact == -1)
+ contactView.model.append(fullName, address, city, number)
+ else
+ contactView.model.set(currentContact, fullName, address, city, number)
+ }
+ }
+
+ Menu {
+ id: contactMenu
+ x: parent.width / 2 - width / 2
+ y: parent.height / 2 - height / 2
+ modal: true
+
+ Label {
+ padding: 10
+ font.bold: true
+ width: parent.width
+ horizontalAlignment: Qt.AlignHCenter
+ text: currentContact >= 0 ? contactView.model.get(currentContact).fullName : ""
+ }
+ MenuItem {
+ text: qsTr("Edit...")
+ onTriggered: contactDialog.editContact(contactView.model.get(currentContact))
+ }
+ MenuItem {
+ text: qsTr("Remove")
+ onTriggered: contactView.model.remove(currentContact)
+ }
+ }
+
+ ContactView {
+ id: contactView
+ anchors.fill: parent
+ onPressAndHold: {
+ currentContact = index
+ contactMenu.open()
+ }
+ }
+
+ RoundButton {
+ text: qsTr("+")
+ highlighted: true
+ anchors.margins: 10
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ onClicked: {
+ currentContact = -1
+ contactDialog.createContact()
+ }
+ }
+}
diff --git a/examples/quickcontrols/contactslist/Contact/ContactView.ui.qml b/examples/quickcontrols/contactslist/Contact/ContactView.ui.qml
new file mode 100644
index 000000000..3b82b681e
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/ContactView.ui.qml
@@ -0,0 +1,36 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import Backend
+
+ListView {
+ id: listView
+
+ signal pressAndHold(int index)
+
+ width: 320
+ height: 480
+
+ focus: true
+ boundsBehavior: Flickable.StopAtBounds
+
+ section.property: "fullName"
+ section.criteria: ViewSection.FirstCharacter
+ section.delegate: SectionDelegate {
+ width: listView.width
+ }
+
+ delegate: ContactDelegate {
+ id: delegate
+ width: listView.width
+ onPressAndHold: listView.pressAndHold(index)
+ }
+
+ model: ContactModel {
+ id: contactModel
+ }
+
+ ScrollBar.vertical: ScrollBar { }
+}
diff --git a/examples/quickcontrols/contactslist/Contact/SectionDelegate.ui.qml b/examples/quickcontrols/contactslist/Contact/SectionDelegate.ui.qml
new file mode 100644
index 000000000..3a62409a8
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/SectionDelegate.ui.qml
@@ -0,0 +1,17 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ToolBar {
+ id: background
+
+ Label {
+ id: label
+ text: section
+ anchors.fill: parent
+ horizontalAlignment: Qt.AlignHCenter
+ verticalAlignment: Qt.AlignVCenter
+ }
+}
diff --git a/examples/quickcontrols/contactslist/Contact/qmldir b/examples/quickcontrols/contactslist/Contact/qmldir
new file mode 100644
index 000000000..339d45a1d
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/qmldir
@@ -0,0 +1,7 @@
+module Contact
+ContactList 1.0 ContactList.qml
+ContactDialog 1.0 ContactDialog.qml
+ContactDelegate 1.0 ContactDelegate.ui.qml
+ContactForm 1.0 ContactForm.ui.qml
+ContactView 1.0 ContactView.ui.qml
+SectionDelegate 1.0 SectionDelegate.ui.qml
diff --git a/examples/quickcontrols/contactslist/contactlist.pyproject b/examples/quickcontrols/contactslist/contactlist.pyproject
new file mode 100644
index 000000000..75b0bd693
--- /dev/null
+++ b/examples/quickcontrols/contactslist/contactlist.pyproject
@@ -0,0 +1,10 @@
+{
+ "files": ["main.py",
+ "contactmodel.py",
+ "Contact/ContactDialog.qml",
+ "Contact/ContactDelegate.ui.qml",
+ "Contact/ContactForm.ui.qml",
+ "Contact/ContactList.qml",
+ "Contact/ContactView.ui.qml",
+ "Contact/SectionDelegate.ui.qml"]
+}
diff --git a/examples/quickcontrols/contactslist/contactmodel.py b/examples/quickcontrols/contactslist/contactmodel.py
new file mode 100644
index 000000000..5d2746c2e
--- /dev/null
+++ b/examples/quickcontrols/contactslist/contactmodel.py
@@ -0,0 +1,116 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import bisect
+from dataclasses import dataclass
+from enum import IntEnum
+
+from PySide6.QtCore import (QAbstractListModel, QEnum, Qt, QModelIndex, Slot,
+ QByteArray)
+from PySide6.QtQml import QmlElement
+
+QML_IMPORT_NAME = "Backend"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class ContactModel(QAbstractListModel):
+
+ @QEnum
+ class ContactRole(IntEnum):
+ FullNameRole = Qt.DisplayRole
+ AddressRole = Qt.UserRole
+ CityRole = Qt.UserRole + 1
+ NumberRole = Qt.UserRole + 2
+
+ @dataclass
+ class Contact:
+ fullName: str
+ address: str
+ city: str
+ number: str
+
+ def __init__(self, parent=None) -> None:
+ super().__init__(parent)
+ self.m_contacts = []
+ self.m_contacts.append(self.Contact("Angel Hogan", "Chapel St. 368 ", "Clearwater",
+ "0311 1823993"))
+ self.m_contacts.append(self.Contact("Felicia Patton", "Annadale Lane 2", "Knoxville",
+ "0368 1244494"))
+ self.m_contacts.append(self.Contact("Grant Crawford", "Windsor Drive 34", "Riverdale",
+ "0351 7826892"))
+ self.m_contacts.append(self.Contact("Gretchen Little", "Sunset Drive 348", "Virginia Beach",
+ "0343 1234991"))
+ self.m_contacts.append(self.Contact("Geoffrey Richards", "University Lane 54", "Trussville",
+ "0423 2144944"))
+ self.m_contacts.append(self.Contact("Henrietta Chavez", "Via Volto San Luca 3",
+ "Piobesi Torinese", "0399 2826994"))
+ self.m_contacts.append(self.Contact("Harvey Chandler", "North Squaw Creek 11",
+ "Madisonville", "0343 1244492"))
+ self.m_contacts.append(self.Contact("Miguel Gomez", "Wild Rose Street 13", "Trussville",
+ "0343 9826996"))
+ self.m_contacts.append(self.Contact("Norma Rodriguez", " Glen Eagles Street 53",
+ "Buffalo", "0241 5826596"))
+ self.m_contacts.append(self.Contact("Shelia Ramirez", "East Miller Ave 68", "Pickerington",
+ "0346 4844556"))
+ self.m_contacts.append(self.Contact("Stephanie Moss", "Piazza Trieste e Trento 77",
+ "Roata Chiusani", "0363 0510490"))
+
+ def rowCount(self, parent=QModelIndex()):
+ return len(self.m_contacts)
+
+ def data(self, index: QModelIndex, role: int):
+ row = index.row()
+ if row < self.rowCount():
+ if role == ContactModel.ContactRole.FullNameRole:
+ return self.m_contacts[row].fullName
+ elif role == ContactModel.ContactRole.AddressRole:
+ return self.m_contacts[row].address
+ elif role == ContactModel.ContactRole.CityRole:
+ return self.m_contacts[row].city
+ elif role == ContactModel.ContactRole.NumberRole:
+ return self.m_contacts[row].number
+
+ def roleNames(self):
+ default = super().roleNames()
+ default[ContactModel.ContactRole.FullNameRole] = QByteArray(b"fullName")
+ default[ContactModel.ContactRole.AddressRole] = QByteArray(b"address")
+ default[ContactModel.ContactRole.CityRole] = QByteArray(b"city")
+ default[ContactModel.ContactRole.NumberRole] = QByteArray(b"number")
+ return default
+
+ @Slot(int)
+ def get(self, row: int):
+ contact = self.m_contacts[row]
+ return {"fullName": contact.fullName, "address": contact.address,
+ "city": contact.city, "number": contact.number}
+
+ @Slot(str, str, str, str)
+ def append(self, full_name: str, address: str, city: str, number: str):
+ contact = self.Contact(full_name, address, city, number)
+ contact_names = [contact.fullName for contact in self.m_contacts]
+ index = bisect.bisect(contact_names, contact.fullName)
+ self.beginInsertRows(QModelIndex(), index, index)
+ self.m_contacts.insert(index, contact)
+ self.endInsertRows()
+
+ @Slot(int, str, str, str, str)
+ def set(self, row: int, full_name: str, address: str, city: str, number: str):
+ if row < 0 or row >= len(self.m_contacts):
+ return
+
+ self.m_contacts[row] = self.Contact(full_name, address, city, number)
+ self.dataChanged(self.index(row, 0), self.index(row, 0),
+ [ContactModel.ContactRole.FullNameRole,
+ ContactModel.ContactRole.AddressRole,
+ ContactModel.ContactRole.CityRole,
+ ContactModel.ContactRole.NumberRole])
+
+ @Slot(int)
+ def remove(self, row):
+ if row < 0 or row >= len(self.m_contacts):
+ return
+
+ self.beginRemoveRows(QModelIndex(), row, row)
+ del self.m_contacts[row]
+ self.endRemoveRows()
diff --git a/examples/quickcontrols/contactslist/doc/contactslist.rst b/examples/quickcontrols/contactslist/doc/contactslist.rst
new file mode 100644
index 000000000..b5540e39b
--- /dev/null
+++ b/examples/quickcontrols/contactslist/doc/contactslist.rst
@@ -0,0 +1,15 @@
+Qt Quick Controls - Contact List
+================================
+
+.. tags:: Android
+
+A QML app using Qt Quick Controls and a Python class that implements a simple
+contact list. This example can also be deployed to Android using
+**pyside6-android-deploy**
+
+A PySide6 application that demonstrates the analogous example in Qt
+`ContactsList <https://doc.qt.io/qt-6.6/qtquickcontrols-contactlist-example.html>`_
+
+.. image:: qtquickcontrols-contactlist.png
+ :width: 400
+ :alt: ContactList Screenshot
diff --git a/examples/quickcontrols/contactslist/doc/qtquickcontrols-contactlist.png b/examples/quickcontrols/contactslist/doc/qtquickcontrols-contactlist.png
new file mode 100644
index 000000000..9f1c30654
--- /dev/null
+++ b/examples/quickcontrols/contactslist/doc/qtquickcontrols-contactlist.png
Binary files differ
diff --git a/examples/quickcontrols/contactslist/main.py b/examples/quickcontrols/contactslist/main.py
new file mode 100644
index 000000000..d501bbdb4
--- /dev/null
+++ b/examples/quickcontrols/contactslist/main.py
@@ -0,0 +1,28 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""
+PySide6 port of Qt Quick Controls Contact List example from Qt v6.x
+"""
+import sys
+from pathlib import Path
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import QQmlApplicationEngine
+
+from contactmodel import ContactModel # noqa: F401
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ app.setOrganizationName("QtProject")
+ app.setApplicationName("ContactsList")
+ engine = QQmlApplicationEngine()
+
+ engine.addImportPath(Path(__file__).parent)
+ engine.loadFromModule("Contact", "ContactList")
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ ex = app.exec()
+ del engine
+ sys.exit(ex)
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/Main.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/Main.qml
new file mode 100644
index 000000000..7f7798ed8
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/Main.qml
@@ -0,0 +1,185 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls.Basic
+import QtQuick.Layouts
+import FileSystemModule
+
+pragma ComponentBehavior: Bound
+
+ApplicationWindow {
+ id: root
+
+ property bool expandPath: false
+ property bool showLineNumbers: true
+ property string currentFilePath: ""
+
+ width: 1100
+ height: 600
+ minimumWidth: 200
+ minimumHeight: 100
+ visible: true
+ color: Colors.background
+ flags: Qt.Window | Qt.FramelessWindowHint
+ title: qsTr("File System Explorer Example")
+
+ function getInfoText() : string {
+ let out = root.currentFilePath
+ if (!out)
+ return qsTr("File System Explorer")
+ return root.expandPath ? out : out.substring(out.lastIndexOf("/") + 1, out.length)
+ }
+
+ menuBar: MyMenuBar {
+ dragWindow: root
+ infoText: root.getInfoText()
+ MyMenu {
+ title: qsTr("File")
+
+ Action {
+ text: qsTr("Increase Font")
+ shortcut: StandardKey.ZoomIn
+ onTriggered: editor.text.font.pixelSize += 1
+ }
+ Action {
+ text: qsTr("Decrease Font")
+ shortcut: StandardKey.ZoomOut
+ onTriggered: editor.text.font.pixelSize -= 1
+ }
+ Action {
+ text: root.showLineNumbers ? qsTr("Toggle Line Numbers OFF")
+ : qsTr("Toggle Line Numbers ON")
+ shortcut: "Ctrl+L"
+ onTriggered: root.showLineNumbers = !root.showLineNumbers
+ }
+ Action {
+ text: root.expandPath ? qsTr("Toggle Short Path")
+ : qsTr("Toggle Expand Path")
+ enabled: root.currentFilePath
+ onTriggered: root.expandPath = !root.expandPath
+ }
+ Action {
+ text: qsTr("Reset Filesystem")
+ enabled: sidebar.currentTabIndex === 1
+ onTriggered: fileSystemView.rootIndex = undefined
+ }
+ Action {
+ text: qsTr("Exit")
+ onTriggered: Qt.exit(0)
+ shortcut: StandardKey.Quit
+ }
+ }
+
+ MyMenu {
+ title: qsTr("Edit")
+
+ Action {
+ text: qsTr("Cut")
+ shortcut: StandardKey.Cut
+ enabled: editor.text.selectedText.length > 0
+ onTriggered: editor.text.cut()
+ }
+ Action {
+ text: qsTr("Copy")
+ shortcut: StandardKey.Copy
+ enabled: editor.text.selectedText.length > 0
+ onTriggered: editor.text.copy()
+ }
+ Action {
+ text: qsTr("Paste")
+ shortcut: StandardKey.Paste
+ enabled: editor.text.canPaste
+ onTriggered: editor.text.paste()
+ }
+ Action {
+ text: qsTr("Select All")
+ shortcut: StandardKey.SelectAll
+ enabled: editor.text.length > 0
+ onTriggered: editor.text.selectAll()
+ }
+ Action {
+ text: qsTr("Undo")
+ shortcut: StandardKey.Undo
+ enabled: editor.text.canUndo
+ onTriggered: editor.text.undo()
+ }
+ }
+ }
+ // Set up the layout of the main components in a row:
+ // [ Sidebar, Navigation, Editor ]
+ RowLayout {
+ anchors.fill: parent
+ spacing: 0
+
+ // Stores the buttons that navigate the application.
+ Sidebar {
+ id: sidebar
+ dragWindow: root
+ Layout.preferredWidth: 50
+ Layout.fillHeight: true
+ }
+
+ // Allows resizing parts of the UI.
+ SplitView {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ // Customized handle to drag between the Navigation and the Editor.
+ handle: Rectangle {
+ implicitWidth: 10
+ color: SplitHandle.pressed ? Colors.color2 : Colors.background
+ border.color: SplitHandle.hovered ? Colors.color2 : Colors.background
+ opacity: SplitHandle.hovered || navigationView.width < 15 ? 1.0 : 0.0
+
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 1400
+ }
+ }
+ }
+
+ Rectangle {
+ id: navigationView
+ color: Colors.surface1
+ SplitView.preferredWidth: 250
+ SplitView.fillHeight: true
+ // The stack-layout provides different views, based on the
+ // selected buttons inside the sidebar.
+ StackLayout {
+ anchors.fill: parent
+ currentIndex: sidebar.currentTabIndex
+
+ // Shows the help text.
+ Text {
+ text: qsTr("This example shows how to use and visualize the file system.\n\n"
+ + "Customized Qt Quick Components have been used to achieve this look.\n\n"
+ + "You can edit the files but they won't be changed on the file system.\n\n"
+ + "Click on the folder icon to the left to get started.")
+ wrapMode: TextArea.Wrap
+ color: Colors.text
+ }
+
+ // Shows the files on the file system.
+ FileSystemView {
+ id: fileSystemView
+ color: Colors.surface1
+ onFileClicked: path => root.currentFilePath = path
+ }
+ }
+ }
+
+ // The main view that contains the editor.
+ Editor {
+ id: editor
+ showLineNumbers: root.showLineNumbers
+ currentFilePath: root.currentFilePath
+ SplitView.fillWidth: true
+ SplitView.fillHeight: true
+ }
+ }
+ }
+
+ ResizeButton {
+ resizeWindow: root
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/app.qrc b/examples/quickcontrols/filesystemexplorer/FileSystemModule/app.qrc
new file mode 100644
index 000000000..fec76fe67
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/app.qrc
@@ -0,0 +1,15 @@
+<RCC>
+ <qresource prefix="/qt/qml/FileSystemModule">
+ <file>qmldir</file>
+ <file>Main.qml</file>
+ <file>qml/About.qml</file>
+ <file>qml/Editor.qml</file>
+ <file>qml/Colors.qml</file>
+ <file>qml/FileSystemView.qml</file>
+ <file>qml/MyMenu.qml</file>
+ <file>qml/MyMenuBar.qml</file>
+ <file>qml/ResizeButton.qml</file>
+ <file>qml/Sidebar.qml</file>
+ <file>qml/WindowDragHandler.qml</file>
+ </qresource>
+</RCC>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons.qrc b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons.qrc
new file mode 100644
index 000000000..97d8a3d79
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons.qrc
@@ -0,0 +1,14 @@
+<RCC>
+ <qresource>
+ <file>icons/app_icon.svg</file>
+ <file>icons/folder_closed.svg</file>
+ <file>icons/folder_open.svg</file>
+ <file>icons/generic_file.svg</file>
+ <file>icons/globe.svg</file>
+ <file>icons/info_sign.svg</file>
+ <file>icons/light_bulb.svg</file>
+ <file>icons/qt_logo.svg</file>
+ <file>icons/read.svg</file>
+ <file>icons/resize.svg</file>
+ </qresource>
+</RCC>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/app_icon.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/app_icon.svg
new file mode 100644
index 000000000..5aae4221f
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/app_icon.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="#EBDBB2" d="M13.25 8.5a.75.75 0 1 1-.75-.75.75.75 0 0 1 .75.75zM9.911 21.35l.816.578C10.819 21.798 13 18.666 13 13h-1a15.503 15.503 0 0 1-2.089 8.35zM4 6.703V10a2.002 2.002 0 0 1-2 2v1a2.002 2.002 0 0 1 2 2v3.297A3.707 3.707 0 0 0 7.703 22H9v-1H7.703A2.706 2.706 0 0 1 5 18.297V15a2.999 2.999 0 0 0-1.344-2.5A2.999 2.999 0 0 0 5 10V6.703A2.706 2.706 0 0 1 7.703 4H9V3H7.703A3.707 3.707 0 0 0 4 6.703zM20 10V6.703A3.707 3.707 0 0 0 16.297 3H15v1h1.297A2.706 2.706 0 0 1 19 6.703V10a2.999 2.999 0 0 0 1.344 2.5A2.999 2.999 0 0 0 19 15v3.297A2.706 2.706 0 0 1 16.297 21H15v1h1.297A3.707 3.707 0 0 0 20 18.297V15a2.002 2.002 0 0 1 2-2v-1a2.002 2.002 0 0 1-2-2z"/><path fill="none" d="M0 0h24v24H0z"/></svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_closed.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_closed.svg
new file mode 100644
index 000000000..36f119c96
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_closed.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg51"
+ sodipodi:docname="folder_closed.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs55" />
+ <sodipodi:namedview
+ id="namedview53"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.45033482"
+ inkscape:cx="842.70632"
+ inkscape:cy="896"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg51" />
+ <path
+ fill="currentColor"
+ d="m 1718,672 v 704 q 0,92 -66,158 -66,66 -158,66 H 278 q -92,0 -158,-66 -66,-66 -66,-158 V 416 q 0,-92 66,-158 66,-66 158,-66 h 320 q 92,0 158,66 66,66 66,158 v 32 h 672 q 92,0 158,66 66,66 66,158 z"
+ id="path49" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_open.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_open.svg
new file mode 100644
index 000000000..daa55a7a1
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_open.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg139"
+ sodipodi:docname="folder_open.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs143" />
+ <sodipodi:namedview
+ id="namedview141"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.24358259"
+ inkscape:cx="149.84651"
+ inkscape:cy="1098.1901"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg139" />
+ <path
+ fill="currentColor"
+ d="M 1590,1376 V 672 q 0,-40 -28,-68 -28,-28 -68,-28 H 790 q -40,0 -68,-28 -28,-28 -28,-68 v -64 q 0,-40 -28,-68 -28,-28 -68,-28 H 278 q -40,0 -68,28 -28,28 -28,68 v 960 q 0,40 28,68 28,28 68,28 h 1216 q 40,0 68,-28 28,-28 28,-68 z m 128,-704 v 704 q 0,92 -66,158 -66,66 -158,66 H 278 q -92,0 -158,-66 -66,-66 -66,-158 V 416 q 0,-92 66,-158 66,-66 158,-66 h 320 q 92,0 158,66 66,66 66,158 v 32 h 672 q 92,0 158,66 66,66 66,158 z"
+ id="path137" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/generic_file.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/generic_file.svg
new file mode 100644
index 000000000..9c855676e
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/generic_file.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg147"
+ sodipodi:docname="generic_file.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs151" />
+ <sodipodi:namedview
+ id="namedview149"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.12179129"
+ inkscape:cx="-578.85911"
+ inkscape:cy="1687.3127"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg147" />
+ <path
+ fill="currentColor"
+ d="m 1586,476 q 14,14 28,36 H 1142 V 40 q 22,14 36,28 z m -476,164 h 544 v 1056 q 0,40 -28,68 -28,28 -68,28 H 214 q -40,0 -68,-28 -28,-28 -28,-68 V 96 Q 118,56 146,28 174,0 214,0 h 800 v 544 q 0,40 28,68 28,28 68,28 z m 160,736 v -64 q 0,-14 -9,-23 -9,-9 -23,-9 H 534 q -14,0 -23,9 -9,9 -9,23 v 64 q 0,14 9,23 9,9 23,9 h 704 q 14,0 23,-9 9,-9 9,-23 z m 0,-256 v -64 q 0,-14 -9,-23 -9,-9 -23,-9 H 534 q -14,0 -23,9 -9,9 -9,23 v 64 q 0,14 9,23 9,9 23,9 h 704 q 14,0 23,-9 9,-9 9,-23 z m 0,-256 v -64 q 0,-14 -9,-23 -9,-9 -23,-9 H 534 q -14,0 -23,9 -9,9 -9,23 v 64 q 0,14 9,23 9,9 23,9 h 704 q 14,0 23,-9 9,-9 9,-23 z"
+ id="path145" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/globe.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/globe.svg
new file mode 100644
index 000000000..081433813
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/globe.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg155"
+ sodipodi:docname="globe.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs159" />
+ <sodipodi:namedview
+ id="namedview157"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.12179129"
+ inkscape:cx="504.9622"
+ inkscape:cy="1720.1558"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg155" />
+ <path
+ fill="currentColor"
+ d="m 886,128 q 209,0 385.5,103 176.5,103 279.5,279.5 103,176.5 103,385.5 0,209 -103,385.5 Q 1448,1458 1271.5,1561 1095,1664 886,1664 677,1664 500.5,1561 324,1458 221,1281.5 118,1105 118,896 118,687 221,510.5 324,334 500.5,231 677,128 886,128 Z m 274,521 q -2,1 -9.5,9.5 -7.5,8.5 -13.5,9.5 2,0 4.5,-5 2.5,-5 5,-11 2.5,-6 3.5,-7 6,-7 22,-15 14,-6 52,-12 34,-8 51,11 -2,-2 9.5,-13 11.5,-11 14.5,-12 3,-2 15,-4.5 12,-2.5 15,-7.5 l 2,-22 q -12,1 -17.5,-7 -5.5,-8 -6.5,-21 0,2 -6,8 0,-7 -4.5,-8 -4.5,-1 -11.5,1 -7,2 -9,1 -10,-3 -15,-7.5 -5,-4.5 -8,-16.5 -3,-12 -4,-15 -2,-5 -9.5,-10.5 -7.5,-5.5 -9.5,-10.5 -1,-2 -2.5,-5.5 -1.5,-3.5 -3,-6.5 -1.5,-3 -4,-5.5 -2.5,-2.5 -5.5,-2.5 -3,0 -7,5 -4,5 -7.5,10 -3.5,5 -4.5,5 -3,-2 -6,-1.5 -3,0.5 -4.5,1 -1.5,0.5 -4.5,3 -3,2.5 -5,3.5 -3,2 -8.5,3 -5.5,1 -8.5,2 15,-5 -1,-11 -10,-4 -16,-3 9,-4 7.5,-12 -1.5,-8 -8.5,-14 h 5 q -1,-4 -8.5,-8.5 -7.5,-4.5 -17.5,-8.5 -10,-4 -13,-6 -8,-5 -34,-9.5 -26,-4.5 -33,-0.5 -5,6 -4.5,10.5 0.5,4.5 4,14 3.5,9.5 3.5,12.5 1,6 -5.5,13 -6.5,7 -6.5,12 0,7 14,15.5 14,8.5 10,21.5 -3,8 -16,16 -13,8 -16,12 -5,8 -1.5,18.5 3.5,10.5 10.5,16.5 2,2 1.5,4 -0.5,2 -3.5,4.5 -3,2.5 -5.5,4 -2.5,1.5 -6.5,3.5 l -3,2 q -11,5 -20.5,-6 -9.5,-11 -13.5,-26 -7,-25 -16,-30 -23,-8 -29,1 -5,-13 -41,-26 -25,-9 -58,-4 6,-1 0,-15 -7,-15 -19,-12 3,-6 4,-17.5 1,-11.5 1,-13.5 3,-13 12,-23 1,-1 7,-8.5 6,-7.5 9.5,-13.5 3.5,-6 0.5,-6 35,4 50,-11 5,-5 11.5,-17 6.5,-12 10.5,-17 9,-6 14,-5.5 5,0.5 14.5,5.5 9.5,5 14.5,5 14,1 15.5,-11 1.5,-12 -7.5,-20 12,1 3,-17 -5,-7 -8,-9 -12,-4 -27,5 -8,4 2,8 -1,-1 -9.5,10.5 Q 927,340 919,346 q -8,6 -16,-5 -1,-1 -5.5,-13.5 Q 893,315 888,314 q -8,0 -16,15 3,-8 -11,-15 -14,-7 -24,-8 19,-12 -8,-27 -7,-4 -20.5,-5 -13.5,-1 -19.5,4 -5,7 -5.5,11.5 -0.5,4.5 5,8 5.5,3.5 10.5,5.5 5,2 11.5,4 6.5,2 8.5,3 14,10 8,14 -2,1 -8.5,3.5 -6.5,2.5 -11.5,4.5 -5,2 -6,4 -3,4 0,14 3,10 -2,14 -5,-5 -9,-17.5 -4,-12.5 -7,-16.5 7,9 -25,6 l -10,-1 q -4,0 -16,2 -12,2 -20.5,1 -8.5,-1 -13.5,-8 -4,-8 0,-20 1,-4 4,-2 -4,-3 -11,-9.5 -7,-6.5 -10,-8.5 -46,15 -94,41 6,1 12,-1 5,-2 13,-6.5 8,-4.5 10,-5.5 34,-14 42,-7 l 5,-5 q 14,16 20,25 -7,-4 -30,-1 -20,6 -22,12 7,12 5,18 -4,-3 -11.5,-10 -7.5,-7 -14.5,-11 -7,-4 -15,-5 -16,0 -22,1 -146,80 -235,222 7,7 12,8 4,1 5,9 1,8 2.5,11 1.5,3 11.5,-3 9,8 3,19 1,-1 44,27 19,17 21,21 3,11 -10,18 -1,-2 -9,-9 -8,-7 -9,-4 -3,5 0.5,18.5 3.5,13.5 10.5,12.5 -7,0 -9.5,16 -2.5,16 -2.5,35.5 0,19.5 -1,23.5 l 2,1 q -3,12 5.5,34.5 8.5,22.5 21.5,19.5 -13,3 20,43 6,8 8,9 3,2 12,7.5 9,5.5 15,10 6,4.5 10,10.5 4,5 10,22.5 6,17.5 14,23.5 -2,6 9.5,20 11.5,14 10.5,23 -1,0 -2.5,1 -1.5,1 -2.5,1 3,7 15.5,14 12.5,7 15.5,13 1,3 2,10 1,7 3,11 2,4 8,2 2,-20 -24,-62 -15,-25 -17,-29 -3,-5 -5.5,-15.5 Q 541,919 539,915 q 2,0 6,1.5 4,1.5 8.5,3.5 4.5,2 7.5,4 3,2 2,3 -3,7 2,17.5 5,10.5 12,18.5 7,8 17,19 10,11 12,13 6,6 14,19.5 8,13.5 0,13.5 9,0 20,10 11,10 17,20 5,8 8,26 3,18 5,24 2,7 8.5,13.5 6.5,6.5 12.5,9.5 l 16,8 q 0,0 13,7 5,2 18.5,10.5 13.5,8.5 21.5,11.5 10,4 16,4 6,0 14.5,-2.5 8.5,-2.5 13.5,-3.5 15,-2 29,15 14,17 21,21 36,19 55,11 -2,1 0.5,7.5 2.5,6.5 8,15.5 5.5,9 9,14.5 3.5,5.5 5.5,8.5 5,6 18,15 13,9 18,15 6,-4 7,-9 -3,8 7,20 10,12 18,10 14,-3 14,-32 -31,15 -49,-18 0,-1 -2.5,-5.5 -2.5,-4.5 -4,-8.5 -1.5,-4 -2.5,-8.5 -1,-4.5 0,-7.5 1,-3 5,-3 9,0 10,-3.5 1,-3.5 -2,-12.5 -3,-9 -4,-13 -1,-8 -11,-20 -10,-12 -12,-15 -5,9 -16,8 -11,-1 -16,-9 0,1 -1.5,5.5 -1.5,4.5 -1.5,6.5 -13,0 -15,-1 1,-3 2.5,-17.5 1.5,-14.5 3.5,-22.5 1,-4 5.5,-12 4.5,-8 7.5,-14.5 3,-6.5 4,-12.5 1,-6 -4.5,-9.5 -5.5,-3.5 -17.5,-2.5 -19,1 -26,20 -1,3 -3,10.5 -2,7.5 -5,11.5 -3,4 -9,7 -7,3 -24,2 -17,-1 -24,-5 -13,-8 -22.5,-29 -9.5,-21 -9.5,-37 0,-10 2.5,-26.5 2.5,-16.5 3,-25 0.5,-8.5 -5.5,-24.5 3,-2 9,-9.5 6,-7.5 10,-10.5 2,-1 4.5,-1.5 2.5,-0.5 4.5,0 2,0.5 4,-1.5 2,-2 3,-6 -1,-1 -4,-3 -3,-3 -4,-3 7,3 28.5,-1.5 21.5,-4.5 27.5,1.5 15,11 22,-2 0,-1 -2.5,-9.5 Q 870,931 872,926 q 5,27 29,9 3,3 15.5,5 12.5,2 17.5,5 3,2 7,5.5 4,3.5 5.5,4.5 1.5,1 5,-0.5 3.5,-1.5 8.5,-6.5 10,14 12,24 11,40 19,44 7,3 11,2 4,-1 4.5,-9.5 0.5,-8.5 0,-14 Q 1006,989 1005,982 l -1,-8 v -18 l -1,-8 q -15,-3 -18.5,-12 -3.5,-9 1.5,-18.5 5,-9.5 15,-18.5 1,-1 8,-3.5 7,-2.5 15.5,-6.5 8.5,-4 12.5,-8 21,-19 15,-35 7,0 11,-9 -1,0 -5,-3 -4,-3 -7.5,-5 -3.5,-2 -4.5,-2 9,-5 2,-16 5,-3 7.5,-11 2.5,-8 7.5,-10 9,12 21,2 7,-8 1,-16 5,-7 20.5,-10.5 15.5,-3.5 18.5,-9.5 7,2 8,-2 1,-4 1,-12 0,-8 3,-12 4,-5 15,-9 11,-4 13,-5 l 17,-11 q 3,-4 0,-4 18,2 31,-11 10,-11 -6,-20 3,-6 -3,-9.5 -6,-3.5 -15,-5.5 3,-1 11.5,-0.5 8.5,0.5 10.5,-1.5 15,-10 -7,-16 -17,-5 -43,12 z m -163,877 q 206,-36 351,-189 -3,-3 -12.5,-4.5 -9.5,-1.5 -12.5,-3.5 -18,-7 -24,-8 1,-7 -2.5,-13 -3.5,-6 -8,-9 -4.5,-3 -12.5,-8 -8,-5 -11,-7 -2,-2 -7,-6 -5,-4 -7,-5.5 -2,-1.5 -7.5,-4.5 -5.5,-3 -8.5,-2 -3,1 -10,1 l -3,1 q -3,1 -5.5,2.5 -2.5,1.5 -5.5,3 -3,1.5 -4,3 -1,1.5 0,2.5 -21,-17 -36,-22 -5,-1 -11,-5.5 -6,-4.5 -10.5,-7 -4.5,-2.5 -10,-1.5 -5.5,1 -11.5,7 -5,5 -6,15 -1,10 -2,13 -7,-5 0,-17.5 7,-12.5 2,-18.5 -3,-6 -10.5,-4.5 -7.5,1.5 -12,4.5 -4.5,3 -11.5,8.5 -7,5.5 -9,6.5 -2,1 -8.5,5.5 -6.5,4.5 -8.5,7.5 -3,4 -6,12 -3,8 -5,11 -2,-4 -11.5,-6.5 -9.5,-2.5 -9.5,-5.5 2,10 4,35 2,25 5,38 7,31 -12,48 -27,25 -29,40 -4,22 12,26 0,7 -8,20.5 -8,13.5 -7,21.5 0,6 2,16 z"
+ id="path153" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/info_sign.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/info_sign.svg
new file mode 100644
index 000000000..517f76360
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/info_sign.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg163"
+ sodipodi:docname="info_sign.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs167" />
+ <sodipodi:namedview
+ id="namedview165"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.48716518"
+ inkscape:cx="72.870561"
+ inkscape:cy="896"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg163" />
+ <path
+ fill="currentColor"
+ d="m 1142,1376 v -160 q 0,-14 -9,-23 -9,-9 -23,-9 h -96 V 672 q 0,-14 -9,-23 -9,-9 -23,-9 H 662 q -14,0 -23,9 -9,9 -9,23 v 160 q 0,14 9,23 9,9 23,9 h 96 v 320 h -96 q -14,0 -23,9 -9,9 -9,23 v 160 q 0,14 9,23 9,9 23,9 h 448 q 14,0 23,-9 9,-9 9,-23 z M 1014,480 V 320 q 0,-14 -9,-23 -9,-9 -23,-9 H 790 q -14,0 -23,9 -9,9 -9,23 v 160 q 0,14 9,23 9,9 23,9 h 192 q 14,0 23,-9 9,-9 9,-23 z m 640,416 q 0,209 -103,385.5 Q 1448,1458 1271.5,1561 1095,1664 886,1664 677,1664 500.5,1561 324,1458 221,1281.5 118,1105 118,896 118,687 221,510.5 324,334 500.5,231 677,128 886,128 1095,128 1271.5,231 1448,334 1551,510.5 1654,687 1654,896 Z"
+ id="path161" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/light_bulb.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/light_bulb.svg
new file mode 100644
index 000000000..ed2ed55fb
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/light_bulb.svg
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1538 1538"
+ id="svg4"
+ sodipodi:docname="light_bulb.svg"
+ width="1538"
+ height="1538"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs8" />
+ <sodipodi:namedview
+ id="namedview6"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ fit-margin-top="1"
+ fit-margin-left="1"
+ fit-margin-right="1"
+ fit-margin-bottom="1"
+ lock-margins="true"
+ inkscape:zoom="0.16"
+ inkscape:cx="1234.375"
+ inkscape:cy="409.375"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg4" />
+ <path
+ fill="currentColor"
+ d="m 983,449 q 0,13 -9.5,22.5 Q 964,481 951,481 938,481 928.5,471.5 919,462 919,449 919,403 865,378 811,353 759,353 746,353 736.5,343.5 727,334 727,321 q 0,-13 9.5,-22.5 9.5,-9.5 22.5,-9.5 50,0 99.5,16 49.5,16 87,54 37.5,38 37.5,90 z m 160,0 q 0,-72 -34.5,-134 -34.5,-62 -90,-101.5 Q 963,174 895.5,151.5 828,129 759,129 690,129 622.5,151.5 555,174 499.5,213.5 444,253 409.5,315 375,377 375,449 q 0,101 68,180 10,11 30.5,33 20.5,22 30.5,33 128,153 141,298 h 228 q 13,-145 141,-298 10,-11 30.5,-33 20.5,-22 30.5,-33 68,-79 68,-180 z m 128,0 q 0,155 -103,268 -45,49 -74.5,87 -29.5,38 -59.5,95.5 -30,57.5 -34,107.5 47,28 47,82 0,37 -25,64 25,27 25,64 0,52 -45,81 13,23 13,47 0,46 -31.5,71 -31.5,25 -77.5,25 -20,44 -60,70 -40,26 -87,26 -47,0 -87,-26 -40,-26 -60,-70 -46,0 -77.5,-25 -31.5,-25 -31.5,-71 0,-24 13,-47 -45,-29 -45,-81 0,-37 25,-64 -25,-27 -25,-64 0,-54 47,-82 Q 514,957 484,899.5 454,842 424.5,804 395,766 350,717 247,604 247,449 247,350 291.5,264.5 336,179 408.5,122.5 481,66 572.5,33.5 664,1 759,1 q 95,0 186.5,32.5 91.5,32.5 164,89 72.5,56.5 117,142 Q 1271,350 1271,449 Z"
+ id="path2" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/qt_logo.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/qt_logo.svg
new file mode 100644
index 000000000..062daff3e
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/qt_logo.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="462pt"
+ height="339pt"
+ viewBox="0 0 462 339"
+ version="1.1"
+ id="svg2"
+>
+ <path
+ fill="#41cd52"
+ d=" M 63.50 0.00 L 462.00 0.00 L 462.00 274.79 C 440.60 296.26 419.13 317.66 397.61 339.00 L 0.00 339.00 L 0.00 63.39 C 21.08 42.18 42.34 21.13 63.50 0.00 Z"
+ id="path6"/>
+ <path
+ d=" M 122.37 71.33 C 137.50 61.32 156.21 58.79 174.00 58.95 C 190.94 59.16 208.72 62.13 222.76 72.24 C 232.96 79.41 239.59 90.48 244.01 101.93 C 251.16 120.73 253.26 141.03 253.50 161.01 C 253.53 181.13 252.62 201.69 245.96 220.86 C 241.50 233.90 233.01 245.48 221.81 253.52 C 229.87 266.58 238.09 279.54 246.15 292.60 C 236.02 297.27 225.92 301.97 215.78 306.62 C 207.15 292.38 198.56 278.11 189.90 263.89 C 178.19 265.81 166.21 265.66 154.44 264.36 C 140.34 262.67 125.97 258.37 115.09 248.88 C 106.73 241.64 101.48 231.51 97.89 221.21 C 92.01 203.79 90.43 185.25 90.16 166.97 C 90.02 147.21 91.28 127.14 97.24 108.18 C 101.85 93.92 109.48 79.69 122.37 71.33 Z"
+ id="path8"
+ fill="#ffffff"/>
+ <path
+ d=" M 294.13 70.69 C 304.73 70.68 315.33 70.68 325.93 70.69 C 325.96 84.71 325.92 98.72 325.95 112.74 C 339.50 112.76 353.05 112.74 366.60 112.75 C 366.37 121.85 366.12 130.95 365.86 140.05 C 352.32 140.08 338.79 140.04 325.25 140.07 C 325.28 163.05 325.18 186.03 325.30 209.01 C 325.56 215.30 325.42 221.94 328.19 227.75 C 330.21 232.23 335.65 233.38 340.08 233.53 C 348.43 233.50 356.77 233.01 365.12 232.86 C 365.63 241.22 366.12 249.59 366.60 257.95 C 349.99 260.74 332.56 264.08 316.06 258.86 C 309.11 256.80 302.63 252.19 299.81 245.32 C 294.76 233.63 294.35 220.62 294.13 208.07 C 294.11 185.40 294.13 162.74 294.12 140.07 C 286.73 140.05 279.34 140.08 271.95 140.05 C 271.93 130.96 271.93 121.86 271.95 112.76 C 279.34 112.73 286.72 112.77 294.11 112.74 C 294.14 98.72 294.10 84.71 294.13 70.69 Z"
+ id="path10"
+ fill="#ffffff"/>
+ <path
+ fill="#41cd52"
+ d=" M 160.51 87.70 C 170.80 86.36 181.60 86.72 191.34 90.61 C 199.23 93.73 205.93 99.84 209.47 107.58 C 214.90 119.31 216.98 132.26 218.03 145.05 C 219.17 162.07 219.01 179.25 216.66 196.17 C 215.01 206.24 212.66 216.85 205.84 224.79 C 198.92 232.76 188.25 236.18 178.01 236.98 C 167.21 237.77 155.82 236.98 146.07 231.87 C 140.38 228.84 135.55 224.09 132.73 218.27 C 129.31 211.30 127.43 203.69 126.11 196.07 C 122.13 171.91 121.17 146.91 126.61 122.89 C 128.85 113.83 132.11 104.53 138.73 97.70 C 144.49 91.85 152.51 88.83 160.51 87.70 Z"
+ id="path12"/>
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/read.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/read.svg
new file mode 100644
index 000000000..c3af473d2
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/read.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-11 0 1792 1792"
+ id="svg184"
+ sodipodi:docname="read.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs188" />
+ <sodipodi:namedview
+ id="namedview186"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.24358259"
+ inkscape:cx="519.33104"
+ inkscape:cy="1089.9794"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg184" />
+ <path
+ fill="currentColor"
+ d="m 1691.8576,478 q 40,57 18,129 l -275,906 q -19,64 -76.5,107.5 -57.5,43.5 -122.5,43.5 H 312.85764 q -77,0 -148.5,-53.5 Q 92.857644,1557 64.857644,1479 q -24,-67 -2,-127 0,-4 3,-27 3,-23 4,-37 1,-8 -3,-21.5 -4,-13.5 -3,-19.5 2,-11 8,-21 6,-10 16.5,-23.5 10.5,-13.5 16.499996,-23.5 23,-38 45,-91.5 22,-53.5 30,-91.5 3,-10 0.5,-30 -2.5,-20 -0.5,-28 3,-11 17,-28 14,-17 17,-23 21,-36 42,-92 21,-56 25,-90 1,-9 -2.5,-32 -3.5,-23 0.5,-28 4,-13 22,-30.5 18,-17.5 22,-22.5 19,-26 42.5,-84.5 23.5,-58.5 27.5,-96.5 1,-8 -3,-25.5 -4,-17.5 -2,-26.5 2,-8 9,-18 7,-10 18,-23 11,-13 17,-21 8,-12 16.5,-30.5 8.5,-18.5 15,-35 6.5,-16.5 16,-36 9.5,-19.5 19.5,-32 10,-12.5 26.5,-23.5 16.5,-11 36,-11.5 19.5,-0.5 47.5,5.5 l -1,3 q 38,-9 51,-9 h 760.99996 q 74,0 114,56 40,56 18,130 l -274,906 q -36,119 -71.5,153.5 -35.5,34.5 -128.5,34.5 H 208.85764 q -27,0 -38,15 -11,16 -1,43 24,70 144,70 h 922.99996 q 29,0 56,-15.5 27,-15.5 35,-41.5 l 300,-987 q 7,-22 5,-57 38,15 59,43 z m -1063.99996,2 q -4,13 2,22.5 6,9.5 20,9.5 h 607.99996 q 13,0 25.5,-9.5 12.5,-9.5 16.5,-22.5 l 21,-64 q 4,-13 -2,-22.5 -6,-9.5 -20,-9.5 H 690.85764 q -13,0 -25.5,9.5 -12.5,9.5 -16.5,22.5 z m -83,256 q -4,13 2,22.5 6,9.5 20,9.5 h 607.99996 q 13,0 25.5,-9.5 12.5,-9.5 16.5,-22.5 l 21,-64 q 4,-13 -2,-22.5 -6,-9.5 -20,-9.5 H 607.85764 q -13,0 -25.5,9.5 -12.5,9.5 -16.5,22.5 z"
+ id="path182" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/resize.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/resize.svg
new file mode 100644
index 000000000..e86d612f3
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/resize.svg
@@ -0,0 +1,6 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>
+ <line x1="00" y1="100" x2="100" y2="00" stroke="black" stroke-width="3" />
+ <line x1="20" y1="100" x2="100" y2="20" stroke="black" stroke-width="3" />
+ <line x1="40" y1="100" x2="100" y2="40" stroke="black" stroke-width="3" />
+ <line x1="60" y1="100" x2="100" y2="60" stroke="black" stroke-width="3" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/About.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/About.qml
new file mode 100644
index 000000000..178bf03e4
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/About.qml
@@ -0,0 +1,93 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+ApplicationWindow {
+ id: root
+ width: 650
+ height: 550
+ flags: Qt.Window | Qt.FramelessWindowHint
+ color: Colors.surface1
+
+ menuBar: MyMenuBar {
+ id: menuBar
+
+ dragWindow: root
+ implicitHeight: 27
+ infoText: "About Qt"
+ }
+
+ Image {
+ id: logo
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.margins: 20
+
+ source: "../icons/qt_logo.svg"
+ sourceSize.width: 80
+ sourceSize.height: 80
+ fillMode: Image.PreserveAspectFit
+
+ smooth: true
+ antialiasing: true
+ asynchronous: true
+ }
+
+ ScrollView {
+ anchors.top: logo.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.margins: 20
+
+ TextArea {
+ selectedTextColor: Colors.textFile
+ selectionColor: Colors.selection
+ horizontalAlignment: Text.AlignHCenter
+ textFormat: Text.RichText
+
+ text: qsTr("<h3>About Qt</h3>"
+ + "<p>This program uses Qt version %1.</p>"
+ + "<p>Qt is a C++ toolkit for cross-platform application "
+ + "development.</p>"
+ + "<p>Qt provides single-source portability across all major desktop "
+ + "operating systems. It is also available for embedded Linux and other "
+ + "embedded and mobile operating systems.</p>"
+ + "<p>Qt is available under multiple licensing options designed "
+ + "to accommodate the needs of our various users.</p>"
+ + "<p>Qt licensed under our commercial license agreement is appropriate "
+ + "for development of proprietary/commercial software where you do not "
+ + "want to share any source code with third parties or otherwise cannot "
+ + "comply with the terms of GNU (L)GPL.</p>"
+ + "<p>Qt licensed under GNU (L)GPL is appropriate for the "
+ + "development of Qt&nbsp;applications provided you can comply with the terms "
+ + "and conditions of the respective licenses.</p>"
+ + "<p>Please see <a href=\"http://%2/\">%2</a> "
+ + "for an overview of Qt licensing.</p>"
+ + "<p>Copyright (C) %3 The Qt Company Ltd and other "
+ + "contributors.</p>"
+ + "<p>Qt and the Qt logo are trademarks of The Qt Company Ltd.</p>"
+ + "<p>Qt is The Qt Company Ltd product developed as an open source "
+ + "project. See <a href=\"http://%4/\">%4</a> for more information.</p>")
+ .arg(Application.version).arg("qt.io/licensing").arg("2023").arg("qt.io")
+ color: Colors.textFile
+ wrapMode: Text.WordWrap
+ readOnly: true
+ antialiasing: true
+ background: null
+
+ onLinkActivated: function(link) {
+ Qt.openUrlExternally(link)
+ }
+ }
+ }
+
+ ResizeButton {
+ resizeWindow: root
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Colors.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Colors.qml
new file mode 100644
index 000000000..285667773
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Colors.qml
@@ -0,0 +1,23 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+pragma Singleton
+
+QtObject {
+ readonly property color background: "#292828"
+ readonly property color surface1: "#171819"
+ readonly property color surface2: "#090A0C"
+ readonly property color text: "#D4BE98"
+ readonly property color textFile: "#E1D2B7"
+ readonly property color disabledText: "#2C313A"
+ readonly property color selection: "#4B4A4A"
+ readonly property color active: "#292828"
+ readonly property color inactive: "#383737"
+ readonly property color folder: "#383737"
+ readonly property color icon: "#383737"
+ readonly property color iconIndicator: "#D5B35D"
+ readonly property color color1: "#A7B464"
+ readonly property color color2: "#D3869B"
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Editor.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Editor.qml
new file mode 100644
index 000000000..80f7c04c5
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Editor.qml
@@ -0,0 +1,160 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+import FileSystemModule
+
+pragma ComponentBehavior: Bound
+
+// This is the text editor that displays the currently open file, including
+// their corresponding line numbers.
+Rectangle {
+ id: root
+
+ required property string currentFilePath
+ required property bool showLineNumbers
+ property alias text: textArea
+ property int currentLineNumber: -1
+ property int rowHeight: Math.ceil(fontMetrics.lineSpacing)
+
+ color: Colors.background
+
+ onWidthChanged: textArea.update()
+ onHeightChanged: textArea.update()
+
+ RowLayout {
+ anchors.fill: parent
+ // We use a flickable to synchronize the position of the editor and
+ // the line numbers. This is necessary because the line numbers can
+ // extend the available height.
+ Flickable {
+ id: lineNumbers
+
+ // Calculate the width based on the logarithmic scale.
+ Layout.preferredWidth: fontMetrics.averageCharacterWidth
+ * (Math.floor(Math.log10(textArea.lineCount)) + 1) + 10
+ Layout.fillHeight: true
+
+ interactive: false
+ contentY: editorFlickable.contentY
+ visible: textArea.text !== "" && root.showLineNumbers
+
+ Column {
+ anchors.fill: parent
+ Repeater {
+ id: repeatedLineNumbers
+
+ model: LineNumberModel {
+ lineCount: textArea.text !== "" ? textArea.lineCount : 0
+ }
+
+ delegate: Item {
+ required property int index
+
+ width: parent.width
+ height: root.rowHeight
+ Label {
+ id: numbers
+
+ text: parent.index + 1
+
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+
+ color: (root.currentLineNumber === parent.index)
+ ? Colors.iconIndicator : Qt.darker(Colors.text, 2)
+ font: textArea.font
+ }
+ Rectangle {
+ id: indicator
+
+ anchors.left: numbers.right
+ width: 1
+ height: parent.height
+ color: Qt.darker(Colors.text, 3)
+ }
+ }
+ }
+ }
+ }
+
+ Flickable {
+ id: editorFlickable
+
+ property alias textArea: textArea
+
+ // We use an inline component to customize the horizontal and vertical
+ // scroll-bars. This is convenient when the component is only used in one file.
+ component MyScrollBar: ScrollBar {
+ id: scrollBar
+ background: Rectangle {
+ implicitWidth: scrollBar.interactive ? 8 : 4
+ implicitHeight: scrollBar.interactive ? 8 : 4
+
+ opacity: scrollBar.active && scrollBar.size < 1.0 ? 1.0 : 0.0
+ color: Colors.background
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 500
+ }
+ }
+ }
+ contentItem: Rectangle {
+ implicitWidth: scrollBar.interactive ? 8 : 4
+ implicitHeight: scrollBar.interactive ? 8 : 4
+ opacity: scrollBar.active && scrollBar.size < 1.0 ? 1.0 : 0.0
+ color: Colors.color1
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 1000
+ }
+ }
+ }
+ }
+
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ ScrollBar.horizontal: MyScrollBar {}
+ ScrollBar.vertical: MyScrollBar {}
+
+ boundsBehavior: Flickable.StopAtBounds
+
+ TextArea.flickable: TextArea {
+ id: textArea
+ anchors.fill: parent
+
+ focus: false
+ topPadding: 0
+ leftPadding: 10
+
+ text: FileSystemModel.readFile(root.currentFilePath)
+ tabStopDistance: fontMetrics.averageCharacterWidth * 4
+
+ // Grab the current line number from the C++ interface.
+ onCursorPositionChanged: {
+ root.currentLineNumber = FileSystemModel.currentLineNumber(
+ textArea.textDocument, textArea.cursorPosition)
+ }
+
+ color: Colors.textFile
+ selectedTextColor: Colors.textFile
+ selectionColor: Colors.selection
+
+ textFormat: TextEdit.PlainText
+ renderType: Text.QtRendering
+ selectByMouse: true
+ antialiasing: true
+ background: null
+ }
+
+ FontMetrics {
+ id: fontMetrics
+ font: textArea.font
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/FileSystemView.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/FileSystemView.qml
new file mode 100644
index 000000000..db955168c
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/FileSystemView.qml
@@ -0,0 +1,156 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Effects
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+pragma ComponentBehavior: Bound
+
+// This is the file system view which gets populated by the C++ model.
+Rectangle {
+ id: root
+
+ signal fileClicked(string filePath)
+ property alias rootIndex: fileSystemTreeView.rootIndex
+
+ TreeView {
+ id: fileSystemTreeView
+
+ property int lastIndex: -1
+
+ anchors.fill: parent
+ model: FileSystemModel
+ rootIndex: FileSystemModel.rootIndex
+ boundsBehavior: Flickable.StopAtBounds
+ boundsMovement: Flickable.StopAtBounds
+ clip: true
+
+ Component.onCompleted: fileSystemTreeView.toggleExpanded(0)
+
+ // The delegate represents a single entry in the filesystem.
+ delegate: TreeViewDelegate {
+ id: treeDelegate
+ indentation: 8
+ implicitWidth: fileSystemTreeView.width > 0 ? fileSystemTreeView.width : 250
+ implicitHeight: 25
+
+ // Since we have the 'ComponentBehavior Bound' pragma, we need to
+ // require these properties from our model. This is a convenient way
+ // to bind the properties provided by the model's role names.
+ required property int index
+ required property url filePath
+ required property string fileName
+
+ indicator: Image {
+ id: directoryIcon
+
+ x: treeDelegate.leftMargin + (treeDelegate.depth * treeDelegate.indentation)
+ anchors.verticalCenter: parent.verticalCenter
+ source: treeDelegate.hasChildren ? (treeDelegate.expanded
+ ? "../icons/folder_open.svg" : "../icons/folder_closed.svg")
+ : "../icons/generic_file.svg"
+ sourceSize.width: 20
+ sourceSize.height: 20
+ fillMode: Image.PreserveAspectFit
+
+ smooth: true
+ antialiasing: true
+ asynchronous: true
+ }
+
+ contentItem: Text {
+ text: treeDelegate.fileName
+ color: Colors.text
+ }
+
+ background: Rectangle {
+ color: (treeDelegate.index === fileSystemTreeView.lastIndex)
+ ? Colors.selection
+ : (hoverHandler.hovered ? Colors.active : "transparent")
+ }
+
+ // We color the directory icons with this MultiEffect, where we overlay
+ // the colorization color ontop of the SVG icons.
+ MultiEffect {
+ id: iconOverlay
+
+ anchors.fill: directoryIcon
+ source: directoryIcon
+ colorization: 1.0
+ brightness: 1.0
+ colorizationColor: {
+ const isFile = treeDelegate.index === fileSystemTreeView.lastIndex
+ && !treeDelegate.hasChildren;
+ if (isFile)
+ return Qt.lighter(Colors.folder, 3)
+
+ const isExpandedFolder = treeDelegate.expanded && treeDelegate.hasChildren;
+ if (isExpandedFolder)
+ return Colors.color2
+ else
+ return Colors.folder
+ }
+ }
+
+ HoverHandler {
+ id: hoverHandler
+ }
+
+ TapHandler {
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+ onSingleTapped: (eventPoint, button) => {
+ switch (button) {
+ case Qt.LeftButton:
+ fileSystemTreeView.toggleExpanded(treeDelegate.row)
+ fileSystemTreeView.lastIndex = treeDelegate.index
+ // If this model item doesn't have children, it means it's
+ // representing a file.
+ if (!treeDelegate.hasChildren)
+ root.fileClicked(treeDelegate.filePath)
+ break;
+ case Qt.RightButton:
+ if (treeDelegate.hasChildren)
+ contextMenu.popup();
+ break;
+ }
+ }
+ }
+
+ MyMenu {
+ id: contextMenu
+ Action {
+ text: qsTr("Set as root index")
+ onTriggered: {
+ fileSystemTreeView.rootIndex = fileSystemTreeView.index(treeDelegate.row, 0)
+ }
+ }
+ Action {
+ text: qsTr("Reset root index")
+ onTriggered: fileSystemTreeView.rootIndex = undefined
+ }
+ }
+ }
+
+ // Provide our own custom ScrollIndicator for the TreeView.
+ ScrollIndicator.vertical: ScrollIndicator {
+ active: true
+ implicitWidth: 15
+
+ contentItem: Rectangle {
+ implicitWidth: 6
+ implicitHeight: 6
+
+ color: Colors.color1
+ opacity: fileSystemTreeView.movingVertically ? 0.5 : 0.0
+
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 500
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenu.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenu.qml
new file mode 100644
index 000000000..1f1d30c56
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenu.qml
@@ -0,0 +1,45 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+Menu {
+ id: root
+
+ delegate: MenuItem {
+ id: menuItem
+ contentItem: Item {
+ Text {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 5
+
+ text: menuItem.text
+ color: enabled ? Colors.text : Colors.disabledText
+ }
+ Rectangle {
+ id: indicator
+
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ width: 6
+ height: parent.height
+
+ visible: menuItem.highlighted
+ color: Colors.color2
+ }
+ }
+ background: Rectangle {
+ implicitWidth: 210
+ implicitHeight: 35
+ color: menuItem.highlighted ? Colors.active : "transparent"
+ }
+ }
+ background: Rectangle {
+ implicitWidth: 210
+ implicitHeight: 35
+ color: Colors.surface2
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenuBar.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenuBar.qml
new file mode 100644
index 000000000..4874a2c03
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenuBar.qml
@@ -0,0 +1,177 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+// The MenuBar also serves as a controller for our window as we don't use any decorations.
+MenuBar {
+ id: root
+
+ required property ApplicationWindow dragWindow
+ property alias infoText: windowInfo.text
+
+ // Customization of the top level menus inside the MenuBar
+ delegate: MenuBarItem {
+ id: menuBarItem
+
+ contentItem: Text {
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+
+ text: menuBarItem.text
+ font: menuBarItem.font
+ elide: Text.ElideRight
+ color: menuBarItem.highlighted ? Colors.textFile : Colors.text
+ opacity: enabled ? 1.0 : 0.3
+ }
+
+ background: Rectangle {
+ id: background
+
+ color: menuBarItem.highlighted ? Colors.selection : "transparent"
+ Rectangle {
+ id: indicator
+
+ width: 0; height: 3
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+
+ color: Colors.color1
+ states: State {
+ name: "active"
+ when: menuBarItem.highlighted
+ PropertyChanges {
+ indicator.width: background.width - 2
+ }
+ }
+ transitions: Transition {
+ NumberAnimation {
+ properties: "width"
+ duration: 175
+ }
+ }
+ }
+ }
+ }
+ // We use the contentItem property as a place to attach our window decorations. Beneath
+ // the usual menu entries within a MenuBar, it includes a centered information text, along
+ // with the minimize, maximize, and close buttons.
+ contentItem: RowLayout {
+ id: windowBar
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+
+ spacing: root.spacing
+ Repeater {
+ id: menuBarItems
+
+ Layout.alignment: Qt.AlignLeft
+ model: root.contentModel
+ }
+
+ Item {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Text {
+ id: windowInfo
+
+ width: parent.width; height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ leftPadding: windowActions.width
+ color: Colors.text
+ clip: true
+ }
+ }
+
+ RowLayout {
+ id: windowActions
+
+ Layout.alignment: Qt.AlignRight
+ Layout.fillHeight: true
+
+ spacing: 0
+
+ component InteractionButton: Rectangle {
+ id: interactionButton
+
+ signal action()
+ property alias hovered: hoverHandler.hovered
+
+ Layout.fillHeight: true
+ Layout.preferredWidth: height
+
+ color: hovered ? Colors.background : "transparent"
+ HoverHandler {
+ id: hoverHandler
+ }
+ TapHandler {
+ id: tapHandler
+ onTapped: interactionButton.action()
+ }
+ }
+
+ InteractionButton {
+ id: minimize
+
+ onAction: root.dragWindow.showMinimized()
+ Rectangle {
+ anchors.centerIn: parent
+ color: parent.hovered ? Colors.iconIndicator : Colors.icon
+ height: 2
+ width: parent.height - 14
+ }
+ }
+
+ InteractionButton {
+ id: maximize
+
+ onAction: root.dragWindow.showMaximized()
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 7
+ border.color: parent.hovered ? Colors.iconIndicator : Colors.icon
+ border.width: 2
+ color: "transparent"
+ }
+ }
+
+ InteractionButton {
+ id: close
+
+ color: hovered ? "#ec4143" : "transparent"
+ onAction: root.dragWindow.close()
+ Rectangle {
+ anchors.centerIn: parent
+ width: parent.height - 8; height: 2
+
+ rotation: 45
+ antialiasing: true
+ transformOrigin: Item.Center
+ color: parent.hovered ? Colors.iconIndicator : Colors.icon
+
+ Rectangle {
+ anchors.centerIn: parent
+ width: parent.height
+ height: parent.width
+
+ antialiasing: true
+ color: parent.color
+ }
+ }
+ }
+ }
+ }
+
+ background: Rectangle {
+ color: Colors.surface2
+ // Make the empty space drag the specified root window.
+ WindowDragHandler {
+ dragWindow: root.dragWindow
+ }
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/ResizeButton.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/ResizeButton.qml
new file mode 100644
index 000000000..0df65bf82
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/ResizeButton.qml
@@ -0,0 +1,23 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick.Controls
+import FileSystemModule
+
+Button {
+ required property ApplicationWindow resizeWindow
+
+ icon.width: 20; icon.height: 20
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ rightPadding: 3
+ bottomPadding: 3
+
+ icon.source: "../icons/resize.svg"
+ icon.color: hovered ? Colors.iconIndicator : Colors.icon
+
+ background: null
+ checkable: false
+ display: AbstractButton.IconOnly
+ onPressed: resizeWindow.startSystemResize(Qt.BottomEdge | Qt.RightEdge)
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Sidebar.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Sidebar.qml
new file mode 100644
index 000000000..aac530394
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Sidebar.qml
@@ -0,0 +1,138 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+Rectangle {
+ id: root
+
+ property alias currentTabIndex: topBar.currentIndex
+ required property ApplicationWindow dragWindow
+ readonly property int tabBarSpacing: 10
+
+ color: Colors.surface2
+
+ component SidebarEntry: Button {
+ id: sidebarButton
+
+ Layout.alignment: Qt.AlignHCenter
+ Layout.fillWidth: true
+
+ icon.color: down || checked ? Colors.iconIndicator : Colors.icon
+ icon.width: 27
+ icon.height: 27
+
+ topPadding: 0
+ rightPadding: 0
+ bottomPadding: 0
+ leftPadding: 0
+ background: null
+
+ Rectangle {
+ id: indicator
+
+ anchors.verticalCenter: parent.verticalCenter
+ x: 2
+ width: 4
+ height: sidebarButton.icon.height * 1.2
+
+ visible: sidebarButton.checked
+ color: Colors.color1
+ }
+ }
+
+ // TabBar is designed to be horizontal, whereas we need a vertical bar.
+ // We can easily achieve that by using a Container.
+ component TabBar: Container {
+ id: tabBarComponent
+
+ Layout.fillWidth: true
+ // ButtonGroup ensures that only one button can be checked at a time.
+ ButtonGroup {
+ buttons: tabBarComponent.contentChildren
+
+ // We have to manage the currentIndex ourselves, which we do by setting it to the index
+ // of the currently checked button. We use setCurrentIndex instead of setting the
+ // currentIndex property to avoid breaking bindings. See "Managing the Current Index"
+ // in Container's documentation for more information.
+ onCheckedButtonChanged: tabBarComponent.setCurrentIndex(
+ Math.max(0, buttons.indexOf(checkedButton)))
+ }
+
+ contentItem: ColumnLayout {
+ spacing: tabBarComponent.spacing
+ Repeater {
+ model: tabBarComponent.contentModel
+ }
+ }
+ }
+
+ ColumnLayout {
+ anchors.fill: root
+ anchors.topMargin: root.tabBarSpacing
+ anchors.bottomMargin: root.tabBarSpacing
+
+ spacing: root.tabBarSpacing
+ TabBar {
+ id: topBar
+
+ spacing: root.tabBarSpacing
+ // Shows help text when clicked.
+ SidebarEntry {
+ id: infoTab
+ icon.source: "../icons/light_bulb.svg"
+ checkable: true
+ checked: true
+ }
+
+ // Shows the file system when clicked.
+ SidebarEntry {
+ id: filesystemTab
+
+ icon.source: "../icons/read.svg"
+ checkable: true
+ }
+ }
+
+ // This item acts as a spacer to expand between the checkable and non-checkable buttons.
+ Item {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ // Make the empty space drag our main window.
+ WindowDragHandler {
+ dragWindow: root.dragWindow
+ }
+ }
+
+ TabBar {
+ id: bottomBar
+
+ spacing: root.tabBarSpacing
+ // Opens the Qt website in the system's web browser.
+ SidebarEntry {
+ id: qtWebsiteButton
+ icon.source: "../icons/globe.svg"
+ checkable: false
+ onClicked: Qt.openUrlExternally("https://www.qt.io/")
+ }
+
+ // Opens the About Qt Window.
+ SidebarEntry {
+ id: aboutQtButton
+
+ icon.source: "../icons/info_sign.svg"
+ checkable: false
+ onClicked: aboutQtWindow.visible = !aboutQtWindow.visible
+ }
+ }
+ }
+
+ About {
+ id: aboutQtWindow
+ visible: false
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/WindowDragHandler.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/WindowDragHandler.qml
new file mode 100644
index 000000000..0e140aca3
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/WindowDragHandler.qml
@@ -0,0 +1,16 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+// Allows dragging the window when placed on an unused section of the UI.
+DragHandler {
+
+ required property ApplicationWindow dragWindow
+
+ target: null
+ onActiveChanged: {
+ if (active) dragWindow.startSystemMove()
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qmldir b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qmldir
new file mode 100644
index 000000000..b1f684600
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qmldir
@@ -0,0 +1,11 @@
+module FileSystemModule
+Main 1.0 Main.qml
+About 1.0 qml/About.qml
+Editor 1.0 qml/Editor.qml
+MyMenu 1.0 qml/MyMenu.qml
+Sidebar 1.0 qml/Sidebar.qml
+MyMenuBar 1.0 qml/MyMenuBar.qml
+singleton Colors 1.0 qml/Colors.qml
+ResizeButton 1.0 qml/ResizeButton.qml
+FileSystemView 1.0 qml/FileSystemView.qml
+WindowDragHandler 1.0 qml/WindowDragHandler.qml
diff --git a/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.rst b/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.rst
new file mode 100644
index 000000000..b46cbec79
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.rst
@@ -0,0 +1,52 @@
+.. _filesystemexplorer_example:
+
+Qt Quick Controls - Filesystem Explorer
+=======================================
+
+This example demonstrates how to create a **modern-looking** filesystem
+explorer with a dark-themed user interface that has a uniform look
+across all operating systems. Custom Qt Quick Controls have been
+implemented to provide a clean and intuitive UI for opening and
+navigating text-files from the filesystem.
+
+Frameless Window
+----------------
+
+To maximize the available space, we use a **frameless window**. The basic
+functionality, such as minimizing, maximizing, and closing the window,
+has been moved to a customized MenuBar called ``MyMenuBar``. Users can
+drag the window thanks to the ``WindowDragHandler`` added to the Sidebar
+and MenuBar.
+
+Customization
+-------------
+
+Combining **customized animations** and **colors** with QtQuick Controls
+allows us to easily create custom user interfaces. This example
+showcases the potential of QtQuick Controls for creating aesthetically
+pleasing UIs.
+
+..
+
+ With the knowledge gained from this example, developers can apply
+ similar techniques to create **their own** customized UIs using PySide's
+ QtQuick Controls.
+
+
+
+.. image:: filesystemexplorer.webp
+ :target: filesystemexplorer.webp
+ :alt: QtQuickControls Filesystem Explorer Screenshot
+
+References
+----------
+
+If you're interested in the C++ version of this example, you can find it
+`here <https://doc-snapshots.qt.io/qt6-dev/qtquickcontrols-filesystemexplorer-example.html>`_.
+
+Additionally, there is a detailed
+`tutorial <https://doc.qt.io/qtforpython-6/tutorials/extendedexplorer/extendedexplorer.html>`_
+available that provides step-by-step instructions on how to extend this example
+with additional features. This tutorial can be helpful if you want to explore
+and learn more about building upon the existing functionality of the filesystem
+explorer.
diff --git a/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.webp b/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.webp
new file mode 100644
index 000000000..10ad0d26e
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.webp
Binary files differ
diff --git a/examples/quickcontrols/filesystemexplorer/editormodels.py b/examples/quickcontrols/filesystemexplorer/editormodels.py
new file mode 100644
index 000000000..688147726
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/editormodels.py
@@ -0,0 +1,116 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QFileSystemModel
+from PySide6.QtQuick import QQuickTextDocument
+from PySide6.QtQml import QmlElement, QmlSingleton
+from PySide6.QtCore import (Qt, QDir, QAbstractListModel, Slot, QFile, QTextStream,
+ QMimeDatabase, QFileInfo, QStandardPaths, QModelIndex,
+ Signal, Property)
+
+QML_IMPORT_NAME = "FileSystemModule"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@QmlSingleton
+class FileSystemModel(QFileSystemModel):
+
+ rootIndexChanged = Signal()
+
+ def getDefaultRootDir():
+ return QStandardPaths.writableLocation(QStandardPaths.StandardLocation.HomeLocation)
+
+ def __init__(self, parent=None):
+ super().__init__(parent=parent)
+ self.mRootIndex = QModelIndex()
+ self.mDb = QMimeDatabase()
+ self.setFilter(QDir.Filter.AllEntries | QDir.Filter.Hidden | QDir.Filter.NoDotAndDotDot)
+ self.setInitialDirectory()
+
+ # check for the correct mime type and then read the file.
+ # returns the text file's content or an error message on failure
+ @Slot(str, result=str)
+ def readFile(self, path):
+ if path == "":
+ return ""
+
+ file = QFile(path)
+
+ mime = self.mDb.mimeTypeForFile(QFileInfo(file))
+ if ('text' in mime.comment().lower()
+ or any('text' in s.lower() for s in mime.parentMimeTypes())):
+ if file.open(QFile.OpenModeFlag.ReadOnly | QFile.OpenModeFlag.Text):
+ stream = QTextStream(file).readAll()
+ file.close()
+ return stream
+ else:
+ return self.tr("Error opening the file!")
+ return self.tr("File type not supported!")
+
+ @Slot(QQuickTextDocument, int, result=int)
+ def currentLineNumber(self, textDocument, cursorPosition):
+ td = textDocument.textDocument()
+ tb = td.findBlock(cursorPosition)
+ return tb.blockNumber()
+
+ def setInitialDirectory(self, path=getDefaultRootDir()):
+ dir = QDir(path)
+ if dir.makeAbsolute():
+ self.setRootPath(dir.path())
+ else:
+ self.setRootPath(self.getDefaultRootDir())
+ self.setRootIndex(self.index(dir.path()))
+
+ # we only need one column in this example
+ def columnCount(self, parent):
+ return 1
+
+ @Property(QModelIndex, notify=rootIndexChanged)
+ def rootIndex(self):
+ return self.mRootIndex
+
+ def setRootIndex(self, index):
+ if (index == self.mRootIndex):
+ return
+ self.mRootIndex = index
+ self.rootIndexChanged.emit()
+
+
+@QmlElement
+class LineNumberModel(QAbstractListModel):
+
+ lineCountChanged = Signal()
+
+ def __init__(self, parent=None):
+ self.mLineCount = 0
+ super().__init__(parent=parent)
+
+ @Property(int, notify=lineCountChanged)
+ def lineCount(self):
+ return self.mLineCount
+
+ @lineCount.setter
+ def lineCount(self, n):
+ if n < 0:
+ print("lineCount must be greater then zero")
+ return
+ if self.mLineCount == n:
+ return
+
+ if self.mLineCount < n:
+ self.beginInsertRows(QModelIndex(), self.mLineCount, n - 1)
+ self.mLineCount = n
+ self.endInsertRows()
+ else:
+ self.beginRemoveRows(QModelIndex(), n, self.mLineCount - 1)
+ self.mLineCount = n
+ self.endRemoveRows()
+
+ def rowCount(self, parent):
+ return self.mLineCount
+
+ def data(self, index, role):
+ if not self.checkIndex(index) or role != Qt.ItemDataRole.DisplayRole:
+ return
+ return index.row()
diff --git a/examples/quickcontrols/filesystemexplorer/filesystemexplorer.pyproject b/examples/quickcontrols/filesystemexplorer/filesystemexplorer.pyproject
new file mode 100644
index 000000000..8053cfab0
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/filesystemexplorer.pyproject
@@ -0,0 +1,29 @@
+{
+ "files": [
+ "main.py",
+ "editormodels.py",
+ "FileSystemModule/qmldir",
+ "FileSystemModule/app.qrc",
+ "FileSystemModule/qmldir",
+ "FileSystemModule/Main.qml",
+ "FileSystemModule/qml/About.qml",
+ "FileSystemModule/qml/Colors.qml",
+ "FileSystemModule/qml/Editor.qml",
+ "FileSystemModule/qml/FileSystemView.qml",
+ "FileSystemModule/qml/MyMenu.qml",
+ "FileSystemModule/qml/MyMenuBar.qml",
+ "FileSystemModule/qml/ResizeButton.qml",
+ "FileSystemModule/qml/Sidebar.qml",
+ "FileSystemModule/qml/WindowDragHandler.qml",
+ "FileSystemModule/icons/app_icon.svg",
+ "FileSystemModule/icons/folder_closed.svg",
+ "FileSystemModule/icons/folder_open.svg",
+ "FileSystemModule/icons/generic_file.svg",
+ "FileSystemModule/icons/globe.svg",
+ "FileSystemModule/icons/info_sign.svg",
+ "FileSystemModule/icons/light_bulb.svg",
+ "FileSystemModule/icons/qt_logo.svg",
+ "FileSystemModule/icons/read.svg",
+ "FileSystemModule/icons/resize.svg"
+ ]
+}
diff --git a/examples/quickcontrols/filesystemexplorer/main.py b/examples/quickcontrols/filesystemexplorer/main.py
new file mode 100644
index 000000000..8fad951cb
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/main.py
@@ -0,0 +1,48 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""
+This example shows how to customize Qt Quick Controls by implementing a simple filesystem explorer.
+"""
+
+# Compile both resource files app.qrc and icons.qrc and include them here if you wish
+# to load them from the resource system. Currently, all resources are loaded locally
+# import FileSystemModule.rc_icons
+# import FileSystemModule.rc_app
+
+from editormodels import FileSystemModel # noqa: F401
+from PySide6.QtGui import QGuiApplication, QIcon
+from PySide6.QtQml import QQmlApplicationEngine
+from PySide6.QtCore import QCommandLineParser, qVersion
+
+import sys
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ app.setOrganizationName("QtProject")
+ app.setApplicationName("File System Explorer")
+ app.setApplicationVersion(qVersion())
+ app.setWindowIcon(QIcon(sys.path[0] + "/FileSystemModule/icons/app_icon.svg"))
+
+ parser = QCommandLineParser()
+ parser.setApplicationDescription("Qt Filesystemexplorer Example")
+ parser.addHelpOption()
+ parser.addVersionOption()
+ parser.addPositionalArgument("", "Initial directory", "[path]")
+ parser.process(app)
+ args = parser.positionalArguments()
+
+ engine = QQmlApplicationEngine()
+ # Include the path of this file to search for the 'qmldir' module
+ engine.addImportPath(sys.path[0])
+
+ engine.loadFromModule("FileSystemModule", "Main")
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ if (len(args) == 1):
+ fsm = engine.singletonInstance("FileSystemModule", "FileSystemModel")
+ fsm.setInitialDirectory(args[0])
+
+ sys.exit(app.exec())
diff --git a/examples/quickcontrols2/gallery/+Material/ToolBar.qml b/examples/quickcontrols/gallery/+Material/ToolBar.qml
index f7ecbf116..f7ecbf116 100644
--- a/examples/quickcontrols2/gallery/+Material/ToolBar.qml
+++ b/examples/quickcontrols/gallery/+Material/ToolBar.qml
diff --git a/examples/quickcontrols2/gallery/ToolBar.qml b/examples/quickcontrols/gallery/ToolBar.qml
index 03d68dfba..03d68dfba 100644
--- a/examples/quickcontrols2/gallery/ToolBar.qml
+++ b/examples/quickcontrols/gallery/ToolBar.qml
diff --git a/examples/quickcontrols2/gallery/doc/gallery.png b/examples/quickcontrols/gallery/doc/gallery.png
index 615ea9e3c..615ea9e3c 100644
--- a/examples/quickcontrols2/gallery/doc/gallery.png
+++ b/examples/quickcontrols/gallery/doc/gallery.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/doc/gallery.rst b/examples/quickcontrols/gallery/doc/gallery.rst
index 29cd49f14..acd5096f6 100644
--- a/examples/quickcontrols2/gallery/doc/gallery.rst
+++ b/examples/quickcontrols/gallery/doc/gallery.rst
@@ -1,6 +1,8 @@
Qt Quick Controls 2 - Gallery
=============================
+.. tags:: Android
+
The gallery example is a simple application with a drawer menu that contains
all the Qt Quick Controls 2. Each menu item opens a page that shows the
graphical appearance of a control, allows you to interact with the control, and
diff --git a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-drawer.png b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-drawer.png
index 0df43fbc4..0df43fbc4 100644
--- a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-drawer.png
+++ b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-drawer.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-menu.png b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-menu.png
index 3bdaae942..3bdaae942 100644
--- a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-menu.png
+++ b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-menu.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-welcome.png b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-welcome.png
index ded30381d..ded30381d 100644
--- a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-welcome.png
+++ b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-welcome.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/gallery.py b/examples/quickcontrols/gallery/gallery.py
index 1cdc30bab..6c2a3612e 100644
--- a/examples/quickcontrols2/gallery/gallery.py
+++ b/examples/quickcontrols/gallery/gallery.py
@@ -17,7 +17,7 @@ from PySide6.QtCore import QSettings, QUrl
from PySide6.QtQml import QQmlApplicationEngine
from PySide6.QtQuickControls2 import QQuickStyle
-import rc_gallery
+import rc_gallery # noqa: F401
if __name__ == "__main__":
QGuiApplication.setApplicationName("Gallery")
diff --git a/examples/quickcontrols2/gallery/gallery.pyproject b/examples/quickcontrols/gallery/gallery.pyproject
index 894fdb5fd..5b5fe35da 100644
--- a/examples/quickcontrols2/gallery/gallery.pyproject
+++ b/examples/quickcontrols/gallery/gallery.pyproject
@@ -2,7 +2,6 @@
"files": ["gallery.py",
"gallery.qml",
"gallery.qrc",
- "rc_gallery.py",
"qmldir",
"qtquickcontrols2.conf",
"ToolBar.qml",
diff --git a/examples/quickcontrols2/gallery/gallery.qml b/examples/quickcontrols/gallery/gallery.qml
index 2a66afc78..65851f8c9 100644
--- a/examples/quickcontrols2/gallery/gallery.qml
+++ b/examples/quickcontrols/gallery/gallery.qml
@@ -1,10 +1,12 @@
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+pragma ComponentBehavior: Bound
+
+import QtCore
import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
-import Qt.labs.settings
import "." as App
@@ -15,11 +17,15 @@ ApplicationWindow {
visible: true
title: "Qt Quick Controls"
+ //! [orientation]
+ readonly property bool portraitMode: window.width < window.height
+ //! [orientation]
+
function help() {
let displayingControl = listView.currentIndex !== -1
let currentControlName = displayingControl
? listView.model.get(listView.currentIndex).title.toLowerCase() : ""
- let url = "https://doc.qt.io/qt-5/"
+ let url = "https://doc.qt.io/qt-6/"
+ (displayingControl
? "qml-qtquick-controls2-" + currentControlName + ".html"
: "qtquick-controls2-qmlmodule.html");
@@ -41,7 +47,7 @@ ApplicationWindow {
Shortcut {
sequence: StandardKey.HelpContents
- onActivated: help()
+ onActivated: window.help()
}
Action {
@@ -72,14 +78,16 @@ ApplicationWindow {
RowLayout {
spacing: 20
anchors.fill: parent
+ anchors.leftMargin: !window.portraitMode ? drawer.width : undefined
ToolButton {
action: navigateBackAction
+ visible: window.portraitMode
}
Label {
id: titleLabel
- text: listView.currentItem ? listView.currentItem.text : "Gallery"
+ text: listView.currentItem ? (listView.currentItem as ItemDelegate).text : "Gallery"
font.pixelSize: 20
elide: Label.ElideRight
horizontalAlignment: Qt.AlignHCenter
@@ -101,7 +109,7 @@ ApplicationWindow {
}
Action {
text: "Help"
- onTriggered: help()
+ onTriggered: window.help()
}
Action {
text: "About"
@@ -114,9 +122,13 @@ ApplicationWindow {
Drawer {
id: drawer
+
width: Math.min(window.width, window.height) / 3 * 2
height: window.height
- interactive: stackView.depth === 1
+ modal: window.portraitMode
+ interactive: window.portraitMode ? (stackView.depth === 1) : false
+ position: window.portraitMode ? 0 : 1
+ visible: !window.portraitMode
ListView {
id: listView
@@ -125,17 +137,6 @@ ApplicationWindow {
currentIndex: -1
anchors.fill: parent
- delegate: ItemDelegate {
- width: listView.width
- text: model.title
- highlighted: ListView.isCurrentItem
- onClicked: {
- listView.currentIndex = index
- stackView.push(model.source)
- drawer.close()
- }
- }
-
model: ListModel {
ListElement { title: "BusyIndicator"; source: "qrc:/pages/BusyIndicatorPage.qml" }
ListElement { title: "Button"; source: "qrc:/pages/ButtonPage.qml" }
@@ -165,13 +166,34 @@ ApplicationWindow {
ListElement { title: "Tumbler"; source: "qrc:/pages/TumblerPage.qml" }
}
+ delegate: ItemDelegate {
+ id: delegateItem
+ width: ListView.view.width
+ text: title
+ highlighted: ListView.isCurrentItem
+
+ required property int index
+ required property var model
+ required property string title
+ required property string source
+
+ onClicked: {
+ listView.currentIndex = index
+ stackView.push(source)
+ if (window.portraitMode)
+ drawer.close()
+ }
+ }
+
ScrollIndicator.vertical: ScrollIndicator { }
}
}
StackView {
id: stackView
+
anchors.fill: parent
+ anchors.leftMargin: !window.portraitMode ? drawer.width : undefined
initialItem: Pane {
id: pane
@@ -203,6 +225,7 @@ ApplicationWindow {
source: "images/arrow.png"
anchors.left: parent.left
anchors.bottom: parent.bottom
+ visible: window.portraitMode
}
}
}
diff --git a/examples/quickcontrols2/gallery/gallery.qrc b/examples/quickcontrols/gallery/gallery.qrc
index 330197941..330197941 100644
--- a/examples/quickcontrols2/gallery/gallery.qrc
+++ b/examples/quickcontrols/gallery/gallery.qrc
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20/back.png b/examples/quickcontrols/gallery/icons/gallery/20x20/back.png
index 1f89ee058..1f89ee058 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20/back.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20/back.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20/drawer.png b/examples/quickcontrols/gallery/icons/gallery/20x20/drawer.png
index 1e974efae..1e974efae 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20/drawer.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20/drawer.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20/menu.png b/examples/quickcontrols/gallery/icons/gallery/20x20/menu.png
index a10473d9e..a10473d9e 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20/menu.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20/menu.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/back.png b/examples/quickcontrols/gallery/icons/gallery/20x20@2/back.png
index 88e290b13..88e290b13 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/back.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@2/back.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/drawer.png b/examples/quickcontrols/gallery/icons/gallery/20x20@2/drawer.png
index eba3b6ccc..eba3b6ccc 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/drawer.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@2/drawer.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/menu.png b/examples/quickcontrols/gallery/icons/gallery/20x20@2/menu.png
index 649c2a08c..649c2a08c 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/menu.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@2/menu.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/back.png b/examples/quickcontrols/gallery/icons/gallery/20x20@3/back.png
index 4402c7d30..4402c7d30 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/back.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@3/back.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/drawer.png b/examples/quickcontrols/gallery/icons/gallery/20x20@3/drawer.png
index 3584ed6d8..3584ed6d8 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/drawer.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@3/drawer.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/menu.png b/examples/quickcontrols/gallery/icons/gallery/20x20@3/menu.png
index 9554b6952..9554b6952 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/menu.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@3/menu.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/back.png b/examples/quickcontrols/gallery/icons/gallery/20x20@4/back.png
index 9982478c1..9982478c1 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/back.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@4/back.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/drawer.png b/examples/quickcontrols/gallery/icons/gallery/20x20@4/drawer.png
index 60d93aff7..60d93aff7 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/drawer.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@4/drawer.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/menu.png b/examples/quickcontrols/gallery/icons/gallery/20x20@4/menu.png
index 187c171cd..187c171cd 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/menu.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@4/menu.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/index.theme b/examples/quickcontrols/gallery/icons/gallery/index.theme
index a1bcd5e03..a1bcd5e03 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/index.theme
+++ b/examples/quickcontrols/gallery/icons/gallery/index.theme
diff --git a/examples/quickcontrols2/gallery/images/arrow.png b/examples/quickcontrols/gallery/images/arrow.png
index 9835108eb..9835108eb 100644
--- a/examples/quickcontrols2/gallery/images/arrow.png
+++ b/examples/quickcontrols/gallery/images/arrow.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrow@2x.png b/examples/quickcontrols/gallery/images/arrow@2x.png
index a5187d48c..a5187d48c 100644
--- a/examples/quickcontrols2/gallery/images/arrow@2x.png
+++ b/examples/quickcontrols/gallery/images/arrow@2x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrow@3x.png b/examples/quickcontrols/gallery/images/arrow@3x.png
index a512f648c..a512f648c 100644
--- a/examples/quickcontrols2/gallery/images/arrow@3x.png
+++ b/examples/quickcontrols/gallery/images/arrow@3x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrow@4x.png b/examples/quickcontrols/gallery/images/arrow@4x.png
index fd893ebb0..fd893ebb0 100644
--- a/examples/quickcontrols2/gallery/images/arrow@4x.png
+++ b/examples/quickcontrols/gallery/images/arrow@4x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrows.png b/examples/quickcontrols/gallery/images/arrows.png
index 3a4cc9b95..3a4cc9b95 100644
--- a/examples/quickcontrols2/gallery/images/arrows.png
+++ b/examples/quickcontrols/gallery/images/arrows.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrows@2x.png b/examples/quickcontrols/gallery/images/arrows@2x.png
index 8c80a2b45..8c80a2b45 100644
--- a/examples/quickcontrols2/gallery/images/arrows@2x.png
+++ b/examples/quickcontrols/gallery/images/arrows@2x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrows@3x.png b/examples/quickcontrols/gallery/images/arrows@3x.png
index 22f23cefb..22f23cefb 100644
--- a/examples/quickcontrols2/gallery/images/arrows@3x.png
+++ b/examples/quickcontrols/gallery/images/arrows@3x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrows@4x.png b/examples/quickcontrols/gallery/images/arrows@4x.png
index 6d1afeef5..6d1afeef5 100644
--- a/examples/quickcontrols2/gallery/images/arrows@4x.png
+++ b/examples/quickcontrols/gallery/images/arrows@4x.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/images/qt-logo.png b/examples/quickcontrols/gallery/images/qt-logo.png
new file mode 100644
index 000000000..05684292b
--- /dev/null
+++ b/examples/quickcontrols/gallery/images/qt-logo.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/images/qt-logo@2x.png b/examples/quickcontrols/gallery/images/qt-logo@2x.png
new file mode 100644
index 000000000..2b7683ca0
--- /dev/null
+++ b/examples/quickcontrols/gallery/images/qt-logo@2x.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/images/qt-logo@3x.png b/examples/quickcontrols/gallery/images/qt-logo@3x.png
new file mode 100644
index 000000000..7cc98348d
--- /dev/null
+++ b/examples/quickcontrols/gallery/images/qt-logo@3x.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/images/qt-logo@4x.png b/examples/quickcontrols/gallery/images/qt-logo@4x.png
new file mode 100644
index 000000000..0e1bc9d93
--- /dev/null
+++ b/examples/quickcontrols/gallery/images/qt-logo@4x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/pages/BusyIndicatorPage.qml b/examples/quickcontrols/gallery/pages/BusyIndicatorPage.qml
index 616e64568..5f391abfb 100644
--- a/examples/quickcontrols2/gallery/pages/BusyIndicatorPage.qml
+++ b/examples/quickcontrols/gallery/pages/BusyIndicatorPage.qml
@@ -1,6 +1,8 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+pragma ComponentBehavior: Bound
+
import QtQuick
import QtQuick.Controls
diff --git a/examples/quickcontrols2/gallery/pages/ButtonPage.qml b/examples/quickcontrols/gallery/pages/ButtonPage.qml
index 06051767e..06051767e 100644
--- a/examples/quickcontrols2/gallery/pages/ButtonPage.qml
+++ b/examples/quickcontrols/gallery/pages/ButtonPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/CheckBoxPage.qml b/examples/quickcontrols/gallery/pages/CheckBoxPage.qml
index 003e44c82..003e44c82 100644
--- a/examples/quickcontrols2/gallery/pages/CheckBoxPage.qml
+++ b/examples/quickcontrols/gallery/pages/CheckBoxPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/ComboBoxPage.qml b/examples/quickcontrols/gallery/pages/ComboBoxPage.qml
index 35c3d60d1..2dc10cee3 100644
--- a/examples/quickcontrols2/gallery/pages/ComboBoxPage.qml
+++ b/examples/quickcontrols/gallery/pages/ComboBoxPage.qml
@@ -33,16 +33,17 @@ ScrollablePage {
}
ComboBox {
+ id: comboBox
+
editable: true
model: ListModel {
- id: model
ListElement { text: "Banana" }
ListElement { text: "Apple" }
ListElement { text: "Coconut" }
}
onAccepted: {
if (find(editText) === -1)
- model.append({text: editText})
+ comboBox.model.append({text: comboBox.editText})
}
anchors.horizontalCenter: parent.horizontalCenter
}
diff --git a/examples/quickcontrols2/gallery/pages/DelayButtonPage.qml b/examples/quickcontrols/gallery/pages/DelayButtonPage.qml
index 4c0e8725b..4c0e8725b 100644
--- a/examples/quickcontrols2/gallery/pages/DelayButtonPage.qml
+++ b/examples/quickcontrols/gallery/pages/DelayButtonPage.qml
diff --git a/examples/quickcontrols/gallery/pages/DelegatePage.qml b/examples/quickcontrols/gallery/pages/DelegatePage.qml
new file mode 100644
index 000000000..26d346a91
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/DelegatePage.qml
@@ -0,0 +1,201 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+
+Pane {
+ ColumnLayout {
+ spacing: 40
+ anchors.fill: parent
+ anchors.topMargin: 20
+
+ Label {
+ Layout.fillWidth: true
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "Delegate controls are used as delegates in views such as ListView."
+ }
+
+ ListView {
+ id: listView
+ clip: true
+ section.property: "type"
+ section.delegate: Pane {
+ id: sectionPane
+ required property string section
+ width: ListView.view.width
+ height: sectionLabel.implicitHeight + 20
+ Label {
+ id: sectionLabel
+ text: sectionPane.section
+ anchors.centerIn: parent
+ }
+ }
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+
+ readonly property var delegateComponentMap: {
+ "ItemDelegate": itemDelegateComponent,
+ "SwipeDelegate": swipeDelegateComponent,
+ "CheckDelegate": checkDelegateComponent,
+ "RadioDelegate": radioDelegateComponent,
+ "SwitchDelegate": switchDelegateComponent
+ }
+
+ Component {
+ id: itemDelegateComponent
+
+ ItemDelegate {
+ // qmllint disable unqualified
+ text: value
+ // qmllint enable unqualified
+ width: parent.width
+ }
+ }
+
+ Component {
+ id: swipeDelegateComponent
+
+ SwipeDelegate {
+ id: swipeDelegate
+ // qmllint disable unqualified
+ text: value
+ // qmllint enable unqualified
+ width: parent.width
+
+ Component {
+ id: removeComponent
+
+ Rectangle {
+ color: SwipeDelegate.pressed ? "#333" : "#444"
+ width: parent.width
+ height: parent.height
+ clip: true
+
+ SwipeDelegate.onClicked: {
+ // qmllint disable unqualified
+ view.model.remove(ourIndex)
+ // qmllint enable unqualified
+ }
+
+ Label {
+ // qmllint disable unqualified
+ font.pixelSize: swipeDelegate.font.pixelSize
+ // qmllint enable unqualified
+ text: "Remove"
+ color: "white"
+ anchors.centerIn: parent
+ }
+ }
+ }
+
+ SequentialAnimation {
+ id: removeAnimation
+
+ PropertyAction {
+ // qmllint disable unqualified
+ target: delegateItem
+ // qmllint enable unqualified
+ property: "ListView.delayRemove"
+ value: true
+ }
+ NumberAnimation {
+ // qmllint disable unqualified
+ target: delegateItem.item
+ // qmllint enable unqualified
+ property: "height"
+ to: 0
+ easing.type: Easing.InOutQuad
+ }
+ PropertyAction {
+ // qmllint disable unqualified
+ target: delegateItem
+ // qmllint enable unqualified
+ property: "ListView.delayRemove"
+ value: false
+ }
+ }
+
+ swipe.left: removeComponent
+ swipe.right: removeComponent
+ ListView.onRemove: removeAnimation.start()
+ }
+ }
+
+ Component {
+ id: checkDelegateComponent
+
+ CheckDelegate {
+ // qmllint disable unqualified
+ text: value
+ // qmllint enable unqualified
+ }
+ }
+
+ ButtonGroup {
+ id: radioButtonGroup
+ }
+
+ Component {
+ id: radioDelegateComponent
+
+ RadioDelegate {
+ // qmllint disable unqualified
+ text: value
+ ButtonGroup.group: radioButtonGroup
+ // qmllint enable unqualified
+ }
+ }
+
+ Component {
+ id: switchDelegateComponent
+
+ SwitchDelegate {
+ // qmllint disable unqualified
+ text: value
+ // qmllint enable unqualified
+ }
+ }
+
+ model: ListModel {
+ ListElement { type: "ItemDelegate"; value: "ItemDelegate1" }
+ ListElement { type: "ItemDelegate"; value: "ItemDelegate2" }
+ ListElement { type: "ItemDelegate"; value: "ItemDelegate3" }
+ ListElement { type: "SwipeDelegate"; value: "SwipeDelegate1" }
+ ListElement { type: "SwipeDelegate"; value: "SwipeDelegate2" }
+ ListElement { type: "SwipeDelegate"; value: "SwipeDelegate3" }
+ ListElement { type: "CheckDelegate"; value: "CheckDelegate1" }
+ ListElement { type: "CheckDelegate"; value: "CheckDelegate2" }
+ ListElement { type: "CheckDelegate"; value: "CheckDelegate3" }
+ ListElement { type: "RadioDelegate"; value: "RadioDelegate1" }
+ ListElement { type: "RadioDelegate"; value: "RadioDelegate2" }
+ ListElement { type: "RadioDelegate"; value: "RadioDelegate3" }
+ ListElement { type: "SwitchDelegate"; value: "SwitchDelegate1" }
+ ListElement { type: "SwitchDelegate"; value: "SwitchDelegate2" }
+ ListElement { type: "SwitchDelegate"; value: "SwitchDelegate3" }
+ }
+
+ delegate: Loader {
+ id: delegateLoader
+ width: ListView.view.width
+ // qmllint disable unqualified
+ sourceComponent: listView.delegateComponentMap[type]
+ // qmllint enable unqualified
+
+ required property string value
+ required property string type
+ required property var model
+ required property int index
+
+ property Loader delegateItem: delegateLoader
+ // qmllint disable unqualified
+ property ListView view: listView
+ // qmllint enable unqualified
+ property int ourIndex: index
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols2/gallery/pages/DialPage.qml b/examples/quickcontrols/gallery/pages/DialPage.qml
index 17c9e090b..17c9e090b 100644
--- a/examples/quickcontrols2/gallery/pages/DialPage.qml
+++ b/examples/quickcontrols/gallery/pages/DialPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/DialogPage.qml b/examples/quickcontrols/gallery/pages/DialogPage.qml
index 982a7f38d..ffabb415e 100644
--- a/examples/quickcontrols2/gallery/pages/DialogPage.qml
+++ b/examples/quickcontrols/gallery/pages/DialogPage.qml
@@ -25,7 +25,7 @@ ScrollablePage {
Button {
text: "Message"
anchors.horizontalCenter: parent.horizontalCenter
- width: buttonWidth
+ width: page.buttonWidth
onClicked: messageDialog.open()
Dialog {
@@ -46,7 +46,7 @@ ScrollablePage {
id: button
text: "Confirmation"
anchors.horizontalCenter: parent.horizontalCenter
- width: buttonWidth
+ width: page.buttonWidth
onClicked: confirmationDialog.open()
Dialog {
@@ -77,7 +77,7 @@ ScrollablePage {
Button {
text: "Content"
anchors.horizontalCenter: parent.horizontalCenter
- width: buttonWidth
+ width: page.buttonWidth
onClicked: contentDialog.open()
Dialog {
@@ -139,7 +139,7 @@ ScrollablePage {
Button {
text: "Input"
anchors.horizontalCenter: parent.horizontalCenter
- width: buttonWidth
+ width: page.buttonWidth
onClicked: inputDialog.open()
Dialog {
diff --git a/examples/quickcontrols2/gallery/pages/FramePage.qml b/examples/quickcontrols/gallery/pages/FramePage.qml
index 852644253..852644253 100644
--- a/examples/quickcontrols2/gallery/pages/FramePage.qml
+++ b/examples/quickcontrols/gallery/pages/FramePage.qml
diff --git a/examples/quickcontrols2/gallery/pages/GroupBoxPage.qml b/examples/quickcontrols/gallery/pages/GroupBoxPage.qml
index 9e24d8e6c..9e24d8e6c 100644
--- a/examples/quickcontrols2/gallery/pages/GroupBoxPage.qml
+++ b/examples/quickcontrols/gallery/pages/GroupBoxPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/PageIndicatorPage.qml b/examples/quickcontrols/gallery/pages/PageIndicatorPage.qml
index e83c86563..e83c86563 100644
--- a/examples/quickcontrols2/gallery/pages/PageIndicatorPage.qml
+++ b/examples/quickcontrols/gallery/pages/PageIndicatorPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/ProgressBarPage.qml b/examples/quickcontrols/gallery/pages/ProgressBarPage.qml
index d712aae10..d712aae10 100644
--- a/examples/quickcontrols2/gallery/pages/ProgressBarPage.qml
+++ b/examples/quickcontrols/gallery/pages/ProgressBarPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/RadioButtonPage.qml b/examples/quickcontrols/gallery/pages/RadioButtonPage.qml
index 644543c00..644543c00 100644
--- a/examples/quickcontrols2/gallery/pages/RadioButtonPage.qml
+++ b/examples/quickcontrols/gallery/pages/RadioButtonPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/RangeSliderPage.qml b/examples/quickcontrols/gallery/pages/RangeSliderPage.qml
index 0ca235822..0ca235822 100644
--- a/examples/quickcontrols2/gallery/pages/RangeSliderPage.qml
+++ b/examples/quickcontrols/gallery/pages/RangeSliderPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/ScrollBarPage.qml b/examples/quickcontrols/gallery/pages/ScrollBarPage.qml
index 248e74ca7..248e74ca7 100644
--- a/examples/quickcontrols2/gallery/pages/ScrollBarPage.qml
+++ b/examples/quickcontrols/gallery/pages/ScrollBarPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/ScrollIndicatorPage.qml b/examples/quickcontrols/gallery/pages/ScrollIndicatorPage.qml
index 04ce97483..04ce97483 100644
--- a/examples/quickcontrols2/gallery/pages/ScrollIndicatorPage.qml
+++ b/examples/quickcontrols/gallery/pages/ScrollIndicatorPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/ScrollablePage.qml b/examples/quickcontrols/gallery/pages/ScrollablePage.qml
index 69bc0cd97..69bc0cd97 100644
--- a/examples/quickcontrols2/gallery/pages/ScrollablePage.qml
+++ b/examples/quickcontrols/gallery/pages/ScrollablePage.qml
diff --git a/examples/quickcontrols2/gallery/pages/SliderPage.qml b/examples/quickcontrols/gallery/pages/SliderPage.qml
index fd03680a0..fd03680a0 100644
--- a/examples/quickcontrols2/gallery/pages/SliderPage.qml
+++ b/examples/quickcontrols/gallery/pages/SliderPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/SpinBoxPage.qml b/examples/quickcontrols/gallery/pages/SpinBoxPage.qml
index 18c9b06c1..18c9b06c1 100644
--- a/examples/quickcontrols2/gallery/pages/SpinBoxPage.qml
+++ b/examples/quickcontrols/gallery/pages/SpinBoxPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/StackViewPage.qml b/examples/quickcontrols/gallery/pages/StackViewPage.qml
index 4472150e5..841d491ef 100644
--- a/examples/quickcontrols2/gallery/pages/StackViewPage.qml
+++ b/examples/quickcontrols/gallery/pages/StackViewPage.qml
@@ -1,6 +1,8 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+pragma ComponentBehavior: Bound
+
import QtQuick
import QtQuick.Controls
@@ -43,6 +45,13 @@ StackView {
anchors.horizontalCenter: parent.horizontalCenter
onClicked: stackView.pop()
}
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "Stack Depth: " + stackView.depth
+ }
}
}
}
diff --git a/examples/quickcontrols2/gallery/pages/SwipeViewPage.qml b/examples/quickcontrols/gallery/pages/SwipeViewPage.qml
index f982f4cf2..03958320e 100644
--- a/examples/quickcontrols2/gallery/pages/SwipeViewPage.qml
+++ b/examples/quickcontrols/gallery/pages/SwipeViewPage.qml
@@ -16,8 +16,8 @@ Pane {
model: 3
Pane {
- width: view.width
- height: view.height
+ width: SwipeView.view.width
+ height: SwipeView.view.height
Column {
spacing: 40
diff --git a/examples/quickcontrols2/gallery/pages/SwitchPage.qml b/examples/quickcontrols/gallery/pages/SwitchPage.qml
index cca200582..cca200582 100644
--- a/examples/quickcontrols2/gallery/pages/SwitchPage.qml
+++ b/examples/quickcontrols/gallery/pages/SwitchPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/TabBarPage.qml b/examples/quickcontrols/gallery/pages/TabBarPage.qml
index c03e4a014..d4dfeb895 100644
--- a/examples/quickcontrols2/gallery/pages/TabBarPage.qml
+++ b/examples/quickcontrols/gallery/pages/TabBarPage.qml
@@ -16,8 +16,8 @@ Page {
model: 3
Pane {
- width: swipeView.width
- height: swipeView.height
+ width: SwipeView.view.width
+ height: SwipeView.view.height
Column {
spacing: 40
diff --git a/examples/quickcontrols2/gallery/pages/TextAreaPage.qml b/examples/quickcontrols/gallery/pages/TextAreaPage.qml
index 7d7647f3b..3e9d7ee52 100644
--- a/examples/quickcontrols2/gallery/pages/TextAreaPage.qml
+++ b/examples/quickcontrols/gallery/pages/TextAreaPage.qml
@@ -19,7 +19,7 @@ ScrollablePage {
}
TextArea {
- width: Math.max(implicitWidth, Math.min(implicitWidth * 3, pane.availableWidth / 3))
+ width: page.availableWidth / 3
anchors.horizontalCenter: parent.horizontalCenter
wrapMode: TextArea.Wrap
diff --git a/examples/quickcontrols2/gallery/pages/TextFieldPage.qml b/examples/quickcontrols/gallery/pages/TextFieldPage.qml
index 2b06894c8..2b06894c8 100644
--- a/examples/quickcontrols2/gallery/pages/TextFieldPage.qml
+++ b/examples/quickcontrols/gallery/pages/TextFieldPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/ToolTipPage.qml b/examples/quickcontrols/gallery/pages/ToolTipPage.qml
index dd92c89b4..dd92c89b4 100644
--- a/examples/quickcontrols2/gallery/pages/ToolTipPage.qml
+++ b/examples/quickcontrols/gallery/pages/ToolTipPage.qml
diff --git a/examples/quickcontrols2/gallery/pages/TumblerPage.qml b/examples/quickcontrols/gallery/pages/TumblerPage.qml
index 4d01f02e8..4d01f02e8 100644
--- a/examples/quickcontrols2/gallery/pages/TumblerPage.qml
+++ b/examples/quickcontrols/gallery/pages/TumblerPage.qml
diff --git a/examples/quickcontrols2/gallery/qmldir b/examples/quickcontrols/gallery/qmldir
index 6b7f86bfa..6b7f86bfa 100644
--- a/examples/quickcontrols2/gallery/qmldir
+++ b/examples/quickcontrols/gallery/qmldir
diff --git a/examples/quickcontrols2/gallery/qtquickcontrols2.conf b/examples/quickcontrols/gallery/qtquickcontrols2.conf
index da1a8f41d..da1a8f41d 100644
--- a/examples/quickcontrols2/gallery/qtquickcontrols2.conf
+++ b/examples/quickcontrols/gallery/qtquickcontrols2.conf
diff --git a/examples/quickcontrols/gallery/rc_gallery.py b/examples/quickcontrols/gallery/rc_gallery.py
new file mode 100644
index 000000000..786c9cfbc
--- /dev/null
+++ b/examples/quickcontrols/gallery/rc_gallery.py
@@ -0,0 +1,4410 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x09\xc1\
+\x00\
+\x00)\xbbx\xda\xc5Z\xdds\xdb6\x12\x7f\xd7_\x81\
+\xb0/RcQ\xb6s\xc9\x03\xdb\xdc\x8d-'\x8d\xe7\
+\x9cKb\xf9\x9a\xcet\xfa\x00\x91\x90\x843\x04\xd0\x00\
+h[\xcd\xf9\x7f\xbf\x05\xf8!~\x00\xb2\xc4I\xe78\
+\x93\x98\x04\x16\x8b\xc5b?~Xh2AS\x91n\
+$]\xae4\x1aNG\xe8\xf4\xf8\xf4\x04\xdd\xac\x08\xfa\
+\xa2\xa1g\x9db\xbeAW:\x09\x07\x93\x09\x9a}\xbe\
+\xf8m|Ec\xc2\x15\x19_&\x84k\xba\xa0DF\
+\xa8h\xbb&\x8b\xf1\x17=\x86ak\x22c\x8a\x19\xfa\
+t\x8d\xceg\x17\xe3W\xe3)\xc3\x99\x22\x83A*\xf1\
+r\x8d-g\xc1\x81\xc19Y\xe1{*\x80\xc7\xb9\xc8\
+x2\x18P\xe8\x90\x1af\x9f\x0aI\xb6__2\x1a\
+\xdf\xb6>\xc3+\xbc\x11\x99V\xed\xe6\xa9\xe0Z\x0a\xa6\
+*fA\x18 \xac\xd0Y\x9a\x0e\x06\xf0\x1f\xa31\xd6\
+T\xf0\xaf\x94'\xe2\x01}\x1b xh\x12\xa1\x07\xdb\
+`?\x1fh\xa2W\x11z\xf5\xe6\xd8~\xae\x88QP\
+\x84^\x9f\xe6\xdf\xf7T\xd19#\x11\xd22#\xb6E\
+Sm\xbe\x03P\x9b\x95\x02\x95R\x04\x03\xdb?\x99\xbc\
+@\xbf\x0bIa\xcdv\xf2?l\xab$8\x11\x9cm\
+P*EJ\xa4\xde\xa0\xb9\x10\x0c\x19\xa9%\xa6\xfa\xa3\
+HH)VhEB?\x97\x9f\xb9H\x1e\xde\xb6y\
+\x91\xf1\xd8|\x82\xf4,\x1d\x8e\x8a\x85\x9a\x87\x11\x8d\x12\
+\xaaR\x867\x94/\x0bI\xd1[\xc4\xa8\xd2\xbfR\xf2\
+\x10\xc6\x99\x94\xc0\xed\x92'\xe4\x11\xbdx\xfb\x16\x8dO\
+\x1a\x83\x8b\xfeb\xe4\xbf\xf0\x9a\xc0\xe8\x0e\xc7j\x88y\
+\xfe\xb1\xe5\xbe\x86e\xb1pI\xf4\xd09\xe1(\xb4\xca\
+\x0c\xb5\xb8\x12\x0fDN\xb1\x22 =\xe86h\xc8\x90\
+I#r\xb0\xd2:U\xd1d\x92\x888\xbc\xd3!\x15\
+\x93;=~3\x09\x1a\x93\xbfD\xc3\xdd\xd2Y\x01\x83\
+\xbb5\x1b\xdf\xe9;\xb3\x7f\xe3\xb8\xd8\xbf\xd3q\x00\xc3\
+\x1d\x0b~\x09v\xb5\xd2k\x16\xb4\x19\x81\xa4]&\xc0\
+\x1a\x96\x9d\xc1\xb2\xec\x98\xd1O\xd5\xa8/:\x84\xbd\xe7\
+\xff\x96\xec\xdd\xa3&\x92c\xc66CX\xdc\xc8R<\
+\x0d\x0aC\x01\x86\x92$[C\xb9\xc7\x12\xcd3\xca@\
+g3\xbdaD\xe5\x843\xa25\xacQ\xd5v\xdb\x98\
+\xb6*\x9a\xab\xc6\x8a\x8f\xd2\x12:\xe0\x0f\xf0\xa8\xcf8\
+[\x81\x11\xc6\x99\xae1R \x04\xe11Q\x11\xfa=\
+x\xa7\xe2\xe0\x08\x05\xe78\xbe\x0d\xfe\xa8H\x08\xc7\xe0\
+\x17fB\x0d\x1dvk\x13\x92\x82\xdd\xfe\x1dm-H\
+\xf030\xcc{\xac\x0d!\x07\xff_\xc2\xabatf\
+\xed5\x04\x89\x96K\x22\x87\xa3=\xe5\x89\xd0Lc\x9e\
+`\x99\xfc\x93l\xc2\x0f`\xedf\x9f`\xbb\x94{\xca\
+\xca\x83\x8c[\xd4\xe7\xc8\xe7o\xa9\xae+\xe0\xb6\x1b\xf6\
+7\xe4`\x0c\xce\xf5\x1a\x8b\x9a\x1b\xf5\x18\x8bH$\x06\
+[\x0ej\x02\xdd\xe4\xab4\x02}k\x98\x10]\xa0\xa1\
+\x83\xdd\xa8Ef5P\x91\xa5\xa2\x5cK\xfdq;t\
+\xc3\x9d\xed\xf2\x11a\x8a8\xf8\xe7R[\xfblq\x7f\
+\x1a4\xdf\xf6\xd9\xa5\xe0#\xe1Y\xe0\xde\x13\x91\x1a\xcd\
+*C\xb1\xcb\x0a\x9c;\xd4\x19\xeb\xda\xa0`\xdd\x9a\xbc\
+\xa6\xff\x1a\x83\xfaZ\x8b9W\x10\xa4M\x96\x83\xd4\x11\
+\xde@x>\x07\xcf\xdb\x0ap-\x1e\xf2<\xd4R\x9f\
+Jq\x0c\x8e\x15\xa1\x22e\x94\x0f\xe61\xe8H\x85\x0b\
+\xcaX\x84Rl\xb6\xc5I\xc0\xc8B\x7f\xc4rIy\
+\x84^\x14&[O\x0c`^\xc5\xf6\xe4\x99!B\x90\
+@\xc9\x82r\x92\x0c\x1a\x0c\xad\xcc\x99\xd6\x0d\xbdU\xb3\
+Y\x85\xed\xb4\xf2\xf2\xa9\x92\x9eC\x98\x96m4>\xaf\
+\xf0\x9c0\xc7\xd4f\xebl\xa4\xb7\x04\x9dnM\x1e!\
+\xe3v,X\x935\xac|\xe8l\x87$o\xfe^\x10\
+F\xccZ \x91\x00\x0f\xe3}\xbf@P%r\xd3\x09\
+\xd5h\x01\x81\x22L\xe9#a3\xfa'\xe9l\x96\x0d\
+i\x8c\x9a,l\x85\x0c\xdf\x99\x8f\xeb*\xf3\xd6\x1f\xd8\
+4\xfa'\xb0\xc3\xec\x8c\xd1%\x07s\x03\xf1!\xb8\xdb\
+\xaf\x0fS\xf8$\xb2\xabS\x88\xc1\x00G\x5cC~\xf5\
+\x0c\xc9\xad\xcd\xda\xcf\xd7\x1c\xa5T \xc4\xb3\x01{\x19\
+@\xd7\x89:\xa4\xa6\xcf\xc1\xc1\xe1\x86N\x9a\xc7\xd2\xdc\
+\x0b\x83\x1d\xe7(\xcbI\x0b\x86\xc5\xd5B\xc8\xf5'\xf0\
+R\xe3\x01\xd67oD\x9a\xeb\xde9\xa6\x13\x1b\xdc\x16\
+\x15\x94)2\xf0\x126\x82C\x99:/\x00\xd0\x8a\xa5\
++\x16vcb\x1f\xb1L\xde\xdaS\xa4n\x02\xfb\xbe\
+\xa2\x9c\xcd\xc1\xc2\xf6\x94\x05\x1b\xda>\xbay\xda'\x9f\
+\x5c\xd8\x08\xd7\x8a\xf7y\xd8\xdb\x1aA\x01\xd6?b\xbd\
+\x0a\xd7\x94\x0f\xeb\x80\xf9\xa8\x89\x97Gh\x82^\xa1\x1f\
+\xd1i5\xb8\x84\xf6]Xm\x1e\xc0l\x98\xed\x8ex\
+\xd4x\xa9\xf1\xa2{wh4\xd1\xaa\x9d\xce\xdf\x02\xa4\
+>1\x98v\x81!\xf1nA\x99P4\xf7F7\x9f\
+c\x18\xb1\xcd\xdcU<ve\x87\xadv\xae\x8aH\xd9\
+F\x19\xc96\xb86\xfdi!\xe2L9\xa2J\x1dC\
+Dm\x08\xe1Lk\x0d\x0a\x8b\xfa#+\x8e\x11\xd0\x95\
+\x11L\xdf;FL\x1cD\xdf\xaa#\xd5y\xa660\
+\xa99\xb5\x09\x19\xfc\x84\x94\xc8\xa4\x85\x13w2\x8e&\
+)^\x125i\xd0|\x86\xa6\x10\x00w\xe0\xb0:\xdf\
+\x14&:zy\x9b\xce\xc3\x99NW$\xbe=\x17\x8f\
+\x1e\xb6ew\x0f\xc6b=\x17;\x18\x17\xdd\x873\x86\
+\xc4\x897;uQ\xa3\xe8\xc1\x1e\xa2\x84\x8f/t\xf5\
+c(\x96;X\x8ae/%X\xf4\xa0\xfc*\xb0\xfd\
+\x87s~/\x01\x89z\xb8\xda\xbe\xc3Y\xfe\x22E\x96\
+\xfaM\xa1\xec>\x9c\xb1\x19\xf1\x9c\xd35hzL!\
+\xc5R\x12\xa5\x00O\xfb&\xd8R\x1c\xce\xfe\x1a'T\
+\xec4\xe6\x1aE\x1f\xf6|If\x06\x0eJ/\xfb\x8a\
+\xe2p\xf6\xb3X\x0a\xc6\xfc\xaa\xa9\xfa\xfb\xb2~ns\
+[T=\xa6\xd9\xa5\x9b\xdejI)\xf7\x9b{\xd1\xdb\
+\x83m\x99\x9f}\x8c\xcb\xfe\x1e\xac\x1fhJv\xb1.\
+\xfb{\xb1\xd6\xf1\xca\xcf\x17:\x0fgz\x83\xe7~\xab\
+\xcb;{0\x05\x5cy&\x09\xf6\xb1-\xba\xfb1~\
+O\x09Kvp\xb6\xfd=X\xc3\xa9\xe9\x86\xa6>\xc6\
+yo\x0f\xb6\xd9\x1a@\x9bW\xc1y\xaf\x8fm\xeb`\
+\x97\x14\xa9(j\x1c{=G\xed\x92\xd8\x90v\x08\x0a\
+\x08]b\xc5\xf0\xde\xfc\xe7>\x9e\xe5g\x04\xbb\x9c\xee\
+\x19\x18\xc033\x00\xda\x9c\x0c*fTM\xb7\x87\xf4\
+\xee\xd9\xad[\xdb\x04H\x0d\xff\x00f\xeeAk\xea\xa0\
+\x16Z\xeeA[\xd4:\xdd\xb2{\xc9\xf3}\xea\xca-\
+\xf8\x94\xd1\xf8\xb6[\xc0{\xae\xfa\xe6^Z\xab\x9e\x97\
+\xa9\xd50\x9f\xd9}\xa02UB\x07\xee\x1fyOm\
+E\xb1(f\xc2\xd4\xd3\x9f=\x8e5>[\xc9 ,\
+\xcb\x16Q\xbb\x07\x0c\xddW\x19,\x97\xd6\xaeL\x97\xed\
+\xdb\x19w\x96\xc8\xbeky\x8cr8oaf\xec2\
+B\x9f1'\x8eCR\x0a\xcdMm\x5c\xae\xc1==\
+^\x06\x90S\xf8\xbc\xcbp\x0a\xf1=\xa6\xcc\x14\xc9m\
+\xf1\x06\x8e\xa3\xa7]/*\x8e\xa4M\xfa\x0f\xb6\xd59\
+\xa0\xd4Il+F\x97\xdcYW\xac\x13\x96\xfb\x97\x97\
+\x98>-\x16\x8a\xc0|\xe3\xd7\xdd\xea\x97\xd9\x83\xfc\x1a\
+\xca\xae:\xfc\x0cx\x8c\xc8{r\xa6R\x12Ch\xed\
+\xceQ\x855\xba\xb6!\xedN\x8f\x8dR\xc2\x94/\x83\
+>e\xc2\xa2&\xd1\xb9X3~z\x0f(B!l\
+j4H,Py\xdd\x82\xf4\x0ak\x14c\x8e\xe6\x04\
+e\x0a|Z\x0b{Y\x92\x00\xc9:e\x04\x82\xa4=\
+\xb6/p\x0c\xe3)G%\xf70\xf0\xealm\x8dM\
+9k\x84%\x8d\x16in\x02\xe1\x5c\x00\xac\x5c{\x09\
+\x8d\xf5V\xe50\xf3\xe1\xa5\x94\xa5-XR\xe9,=\
+\x96\xb4\xf9\xa4\x11\xc2R\x827\x800\xfb\x15)\xf3\xd2\
+\xe6\xa1u\xca\xda(_\xa9\xf2A\xe247\x9e\x9c\xf8\
++|\xef2\x81]\x8ee\xd7\xf4\xac\xb1\xe5+\xef\x98\
+Z?\xd5\x97\xea,h=[z@Y\xdc]\xe2\xb2\
+\xe7T\xcf}]\xde9\xa8\x95Pm\x95K\x9a\xcb\xf2\
+a\xa3\xd0U\x96SM\x85\xebt\x1b\xde7\x8d\x11\x8d\
+\x22\x17\x10\xbe\x199\x8bh9\xf1A\xf5\xb4Q\xbbd\
+\xd6(\x1f\xb9JJ\x15\x8a\xad\xca\xb1\x83Z\x1a\xb4\xd7\
+y\xf9\xd9\x0c\x06\x16\xf5\xc5O\xb7\xe8\xbf\xe5\xfb\x14v\
+\xa9\x96\xf4\xcdeRLR\xdd\xcd\xc6\xa5*C{\xc5\
+\x09\xe9\xd7\xfe\x85cBX\x5c\x09\x1b\x8c\xe8\x1cQ\xcc\
+\xd4\xce\x98O\xb5I\xaf\xc9\x7f \x0c:&-\xe7h\
+\xa5\xfe\xaa\xdd\xbe\x5cv\x80\xc0\xb3SW\xafq~\xc5\
+\x99\xa7\xae\xa9`\xd9\x9a;\xef\xa1\xea\xd6\x94\x93y\xaf\
+\xa9\x1a\x1d\xbe{\xad\xc6\xa0\x93\xe3\x81\xe3~\xc2\x1d\xc7\
+\xeb\x15x\xb3\xf8(p`\x90NSY\xcc\xdaq\xef\
+P\xea\xd4I\xd0\xc0\x94[\xa5w\xea\x97\xad*ea\
+\xe4\xcd\x0bv\x17}\xf5K\x96\x10\xe0`\x91[\xbc\x80\
+\xb0\xb2\x8c\xd2\x1c\x00\x8e$\xc3\xa6\x81\x1e\x99\x0b p\
+\xbdx\xf5\x9e>\x92df1\xa8\x1f\xd5\xe5\x97\xc5\x15\
+\xcb\xfc\xb7\x1a~\xf2v\x1d\xb74\xc9K/$u\xdf\
+$\xecq\x09\xf5,\xa8|&\xe1_\x13\x08\x03RW\
+\xb8\xbck.\xb1`\xe6\x97C\xc1\x0f\xe4o'\xe4\xf4\
+u\x97@\x18;\xd5\x9b\xc8\xe3\x8eFY\x0e\x87\x04\xe4\
+x\x12\x9aR\xfbqx\xfc\x7fN\xa0{\xaa\xb9F\xf6\
+\xa1\xc0\x8e\x8e;\xc1\xfd\xb3O\xedN\xa7wXo\xdd\
+!\x81\xc7\xf9\xd3U=[uR\xd4\xf7\xb9\xe6)\xc2\
+e\xa9\x1e\xbb\xc2<\x1c\x96W>\x83\xadK\x9bfG\
+\x18\xad\x0d\xda/\x86\xfa,\xbcXI\xfd\xea\xacy,\
+\xf0\xf9D\xf1\xc3\xbc\x16\x10\xce\x7fXd\x0e\xf8\x14\xcc\
+\xcc\xa0_\x82\xb8\xb9\xf9^\x12N\xa4\xfdI\x98A\xc1\
+r\x8by\xb7Hy\x8e\x0d<\x16;\x11\xf0\xb30\xce\
+u\x93~r\xda\xc7\xf7{k\xe6\x92[h\x8f%U\
+\xb0\x18\x80\xfb]5\x9d\x1c9\x1a\xdd\xb7\x9c/Q\x00\
+\x98\x0f\x80 \x122\x01\xc5\xc1\xd9\x02\xf0%\x1c\x163\
+8X*j\xc2\xbc<By\xa5\x03^\x00\xad\xa0\x05\
+V\xf0\xfe\x97i\xaf\xed\xbcO\x83\xff\x01\x9e\xca\xab\x1d\
+\
+\x00\x00\x00`\
+[\
+Material]\x0aPrimar\
+y=#41cd52\x0aAccent\
+=#41cd52\x0aTheme=S\
+ystem\x0a\x0a[Universa\
+l]\x0aAccent=#41cd5\
+2\x0aTheme=System\x0a\
+\x00\x00\x00\x94\
+/\
+/ Copyright (C) \
+2021 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick.Co\
+ntrols\x0a\x0aToolBar \
+{}\x0a\
+\x00\x00\x00\x0b\
+m\
+odule App\x0a\
+\x00\x00\x03\x0b\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22SpinBox\
+ allows the user\
+ to choose an in\
+teger value by c\
+licking the up o\
+r down indicator\
+ buttons, \x22\x0a \
+ + \x22b\
+y pressing up or\
+ down on the key\
+board, or by ent\
+ering a text val\
+ue in the input \
+field.\x22\x0a \
+}\x0a\x0a SpinB\
+ox {\x0a \
+ id: box\x0a \
+ value: 50\x0a \
+ ancho\
+rs.horizontalCen\
+ter: parent.hori\
+zontalCenter\x0a \
+ editabl\
+e: true\x0a \
+}\x0a }\x0a}\x0a\
+\x00\x00\x02\x84\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22PageInd\
+icator is used t\
+o indicate the c\
+urrently active \
+page in a contai\
+ner of pages.\x22\x0a \
+ }\x0a\x0a \
+ PageIndicator \
+{\x0a co\
+unt: 5\x0a \
+ currentIndex:\
+ 2\x0a a\
+nchors.horizonta\
+lCenter: parent.\
+horizontalCenter\
+\x0a }\x0a }\
+\x0a}\x0a\
+\x00\x00\x05{\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aPage {\x0a \
+ id: page\x0a\x0a \
+SwipeView {\x0a \
+ id: swipeVie\
+w\x0a anchor\
+s.fill: parent\x0a \
+ currentIn\
+dex: tabBar.curr\
+entIndex\x0a\x0a \
+ Repeater {\x0a \
+ model: \
+3\x0a\x0a P\
+ane {\x0a \
+ width: Swi\
+peView.view.widt\
+h\x0a \
+ height: SwipeV\
+iew.view.height\x0a\
+\x0a \
+ Column {\x0a \
+ sp\
+acing: 40\x0a \
+ wi\
+dth: parent.widt\
+h\x0a\x0a \
+ Label {\x0a \
+ \
+ width: pa\
+rent.width\x0a \
+ \
+ wrapMode: Lab\
+el.Wrap\x0a \
+ \
+horizontalAlignm\
+ent: Qt.AlignHCe\
+nter\x0a \
+ tex\
+t: \x22TabBar is a \
+bar with icons o\
+r text which all\
+ows the user \x22\x0a \
+ \
+ + \x22\
+to switch betwee\
+n different subt\
+asks, views, or \
+modes.\x22\x0a \
+ }\x0a\x0a \
+ \
+ Image {\x0a \
+ \
+ source: \x22../i\
+mages/arrows.png\
+\x22\x0a \
+ anchor\
+s.horizontalCent\
+er: parent.horiz\
+ontalCenter\x0a \
+ \
+}\x0a \
+ }\x0a \
+}\x0a }\x0a \
+}\x0a\x0a footer: T\
+abBar {\x0a \
+id: tabBar\x0a \
+ currentIndex:\
+ swipeView.curre\
+ntIndex\x0a\x0a \
+ TabButton {\x0a \
+ text: \x22\
+First\x22\x0a }\
+\x0a TabButt\
+on {\x0a \
+ text: \x22Second\x22\x0a\
+ }\x0a \
+ TabButton {\x0a \
+ text: \
+\x22Third\x22\x0a \
+}\x0a }\x0a}\x0a\
+\x00\x00\x02\xc6\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ap\
+ragma ComponentB\
+ehavior: Bound\x0a\x0a\
+import QtQuick\x0ai\
+mport QtQuick.Co\
+ntrols\x0a\x0aScrollab\
+lePage {\x0a id:\
+ page\x0a\x0a Colum\
+n {\x0a spac\
+ing: 40\x0a \
+width: parent.wi\
+dth\x0a\x0a Lab\
+el {\x0a \
+ width: parent.w\
+idth\x0a \
+ wrapMode: Label\
+.Wrap\x0a \
+ horizontalAlig\
+nment: Qt.AlignH\
+Center\x0a \
+ text: \x22BusyIn\
+dicator is used \
+to indicate acti\
+vity while conte\
+nt is being load\
+ed,\x22\x0a \
+ + \x22 or wh\
+en the UI is blo\
+cked waiting for\
+ a resource to b\
+ecome available.\
+\x22\x0a }\x0a\x0a \
+ BusyIndicat\
+or {\x0a \
+ anchors.horizon\
+talCenter: paren\
+t.horizontalCent\
+er\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x02\x01\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aPage {\x0a \
+ id: page\x0a\x0a \
+default property\
+ alias content: \
+pane.contentItem\
+\x0a\x0a Flickable \
+{\x0a anchor\
+s.fill: parent\x0a \
+ contentHe\
+ight: pane.impli\
+citHeight\x0a \
+ flickableDirec\
+tion: Flickable.\
+AutoFlickIfNeede\
+d\x0a\x0a Pane \
+{\x0a id\
+: pane\x0a \
+ width: parent\
+.width\x0a }\
+\x0a\x0a Scroll\
+Indicator.vertic\
+al: ScrollIndica\
+tor { }\x0a }\x0a}\x0a\
+\
+\x00\x00\x03O\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22Progres\
+sBar indicates t\
+he progress of a\
+n operation. It \
+can be set in an\
+ \x22\x0a \
+ + \x22indetermin\
+ate mode to indi\
+cate that the le\
+ngth of the oper\
+ation is unknown\
+.\x22\x0a }\x0a\x0a \
+ ProgressBa\
+r {\x0a \
+id: bar\x0a \
+ value: 0.5\x0a \
+ ancho\
+rs.horizontalCen\
+ter: parent.hori\
+zontalCenter\x0a \
+ }\x0a\x0a \
+ProgressBar {\x0a \
+ indete\
+rminate: true\x0a \
+ anchor\
+s.horizontalCent\
+er: parent.horiz\
+ontalCenter\x0a \
+ }\x0a }\x0a}\x0a\
+\x00\x00\x02\xda\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22A tool \
+tip is a short p\
+iece of text tha\
+t informs the us\
+er of a control'\
+s function.\x22\x0a \
+ }\x0a\x0a \
+Button {\x0a \
+ text: \x22Tip\x22\
+\x0a anc\
+hors.horizontalC\
+enter: parent.ho\
+rizontalCenter\x0a\x0a\
+ Tool\
+Tip.timeout: 500\
+0\x0a To\
+olTip.visible: p\
+ressed\x0a \
+ ToolTip.text:\
+ \x22This is a tool\
+ tip.\x22\x0a }\
+\x0a }\x0a}\x0a\
+\x00\x00\x02\x9b\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22TextAre\
+a is a multi-lin\
+e text editor.\x22\x0a\
+ }\x0a\x0a \
+ TextArea {\x0a \
+ width:\
+ page.availableW\
+idth / 3\x0a \
+ anchors.hor\
+izontalCenter: p\
+arent.horizontal\
+Center\x0a\x0a \
+ wrapMode: Te\
+xtArea.Wrap\x0a \
+ text: \x22T\
+extArea\x5cn...\x5cn..\
+.\x5cn...\x22\x0a \
+}\x0a }\x0a}\x0a\
+\x00\x00\x02\xff\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22Slider \
+is used to selec\
+t a value by sli\
+ding a handle al\
+ong a track.\x22\x0a \
+ }\x0a\x0a \
+ Slider {\x0a \
+ id: slider\
+\x0a val\
+ue: 0.5\x0a \
+ anchors.hori\
+zontalCenter: pa\
+rent.horizontalC\
+enter\x0a }\x0a\
+\x0a Slider \
+{\x0a or\
+ientation: Qt.Ve\
+rtical\x0a \
+ value: 0.5\x0a \
+ anchor\
+s.horizontalCent\
+er: parent.horiz\
+ontalCenter\x0a \
+ }\x0a }\x0a}\x0a\
+\x00\x00\x02E\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22Tumbler\
+ is used to sele\
+ct a value by sp\
+inning a wheel.\x22\
+\x0a }\x0a\x0a \
+ Tumbler {\x0a \
+ model:\
+ 10\x0a \
+anchors.horizont\
+alCenter: parent\
+.horizontalCente\
+r\x0a }\x0a \
+}\x0a}\x0a\
+\x00\x00\x04i\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Lay\
+outs\x0aimport QtQu\
+ick.Controls\x0a\x0aSc\
+rollablePage {\x0a \
+ id: page\x0a\x0a \
+ Column {\x0a \
+ spacing: 40\x0a \
+ width: par\
+ent.width\x0a\x0a \
+ Label {\x0a \
+ width: pa\
+rent.width\x0a \
+ wrapMode:\
+ Label.Wrap\x0a \
+ horizont\
+alAlignment: Qt.\
+AlignHCenter\x0a \
+ text: \x22\
+Button presents \
+a push-button th\
+at can be pushed\
+ or clicked by t\
+he user. \x22\x0a \
+ + \x22Bu\
+ttons are normal\
+ly used to perfo\
+rm an action, or\
+ to answer a que\
+stion.\x22\x0a \
+}\x0a\x0a Colum\
+nLayout {\x0a \
+ spacing: 2\
+0\x0a an\
+chors.horizontal\
+Center: parent.h\
+orizontalCenter\x0a\
+\x0a But\
+ton {\x0a \
+ text: \x22Fir\
+st\x22\x0a \
+ Layout.fillW\
+idth: true\x0a \
+ }\x0a \
+ Button {\x0a \
+ id\
+: button\x0a \
+ text: \x22\
+Second\x22\x0a \
+ highligh\
+ted: true\x0a \
+ Layout\
+.fillWidth: true\
+\x0a }\x0a \
+ Butto\
+n {\x0a \
+ text: \x22Third\
+\x22\x0a \
+ enabled: false\
+\x0a \
+ Layout.fillWidt\
+h: true\x0a \
+ }\x0a }\x0a\
+ }\x0a}\x0a\
+\x00\x00\x03\xa5\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22Switch \
+is an option but\
+ton that can be \
+dragged or toggl\
+ed on or off. \x22\x0a\
+ \
++ \x22Switches are \
+typically used t\
+o select between\
+ two states.\x22\x0a \
+ }\x0a\x0a \
+ Column {\x0a \
+ spacing: 2\
+0\x0a an\
+chors.horizontal\
+Center: parent.h\
+orizontalCenter\x0a\
+\x0a Swi\
+tch {\x0a \
+ text: \x22Fir\
+st\x22\x0a \
+}\x0a Sw\
+itch {\x0a \
+ text: \x22Se\
+cond\x22\x0a \
+ checked: t\
+rue\x0a \
+}\x0a Sw\
+itch {\x0a \
+ text: \x22Th\
+ird\x22\x0a \
+ enabled: fa\
+lse\x0a \
+}\x0a }\x0a \
+}\x0a}\x0a\
+\x00\x00\x02a\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22TextFie\
+ld is a single-l\
+ine text editor.\
+\x22\x0a }\x0a\x0a \
+ TextField {\
+\x0a id:\
+ field\x0a \
+ placeholderTe\
+xt: \x22TextField\x22\x0a\
+ anch\
+ors.horizontalCe\
+nter: parent.hor\
+izontalCenter\x0a \
+ }\x0a }\x0a}\x0a\
+\
+\x00\x00\x05\xcc\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22ComboBo\
+x is a combined \
+button and popup\
+ list. It presen\
+ts \x22\x0a \
+ + \x22a list o\
+f options to the\
+ user that occup\
+ies minimal scre\
+en space.\x22\x0a \
+ }\x0a\x0a Co\
+mboBox {\x0a \
+ model: [\x22Fi\
+rst\x22, \x22Second\x22, \
+\x22Third\x22]\x0a \
+ anchors.hor\
+izontalCenter: p\
+arent.horizontal\
+Center\x0a }\
+\x0a\x0a Label \
+{\x0a wi\
+dth: parent.widt\
+h\x0a wr\
+apMode: Label.Wr\
+ap\x0a h\
+orizontalAlignme\
+nt: Qt.AlignHCen\
+ter\x0a \
+text: \x22ComboBox \
+can be made \x5cl e\
+ditable. An edit\
+able combo box a\
+uto-\x22\x0a \
+ + \x22complet\
+es its text base\
+d on what is ava\
+ilable in the mo\
+del.\x22\x0a }\x0a\
+\x0a ComboBo\
+x {\x0a \
+id: comboBox\x0a\x0a \
+ editab\
+le: true\x0a \
+ model: List\
+Model {\x0a \
+ ListElem\
+ent { text: \x22Ban\
+ana\x22 }\x0a \
+ ListEleme\
+nt { text: \x22Appl\
+e\x22 }\x0a \
+ ListElement\
+ { text: \x22Coconu\
+t\x22 }\x0a \
+ }\x0a o\
+nAccepted: {\x0a \
+ if \
+(find(editText) \
+=== -1)\x0a \
+ comb\
+oBox.model.appen\
+d({text: comboBo\
+x.editText})\x0a \
+ }\x0a \
+ anchors.h\
+orizontalCenter:\
+ parent.horizont\
+alCenter\x0a \
+ }\x0a }\x0a}\x0a\
+\x00\x00\x04\xce\
+\x00\
+\x00\x1c\xd2x\xda\xedY\xddo\xdb6\x10\x7f\xd7_A\
+\xa8/\x096+\xb1\x13`\x80\xfa0\xb4N\xb1\x04p\
+\xd6\xc4\x1e\xd6\x02\xc3\x1e\x18\xe9l\x13\xa1H\x85\xa2\xe2\
+\xb8C\xfe\xf7\x91\x92,\x93\xd6\x87\xe5D)V`~\
+\x08B\xde\x07y\xbf;\xde\x1d\xa9\x93\x134\xe6\xf1Z\
+\x90\xc5R\xa2\xa3\xf11\x1a\x9d\x0e\x7fA\x7f,\x01\xdd\
+JE\x89b\xcc\xd6h\x22C\xcf99A\xb3\x9b\x8b\
+\xaf\x83\x09\x09\x80%0\xb8\x0a\x81I2' |T\
+\xccMa>\xb8\x95\x03%\x16\x81\x08\x08\xa6\xe8\xf3\x14\
+}\x9c]\x0c\xce\x06c\x8a\xd3\x04\x1c\x87D1\x17R\
+)\xbfMIp\xbf3\xf4&x\xcdS\x99\xecN\x8f\
+9\x93\x82\xd3\xc4qn0\x03\xf4\x8f\x83\xd4o\xcci\
+\x1a\xb1\x5c\xa2\x98\xd2\xbf$\xc6\x01a\x0b\x1f\x9d\x9f\x96\
+s\x98\x05K.\x12oN(\xf5Q\x8c\x85\xday\x85\
+(y|\x8d\xc5\x820_a\xe0\x94\xe4\x09\xbe\x03j\
+\xe8\xcf\xe7\xf4\xa2\x99\xba/$\x94K\x1fI\x91\x82\xc5\
+\xb2\x128\xbe\xe6!\xf8\xb9\x02\xef\x8b\x1a[\x0cjM\
+\xf2M\xd9\x85\xe9\x07J\x16,R[\xf2\x95\xc1^6\
+\xba\x1c\xab!\x08K@\xc2\x93\xe2p/\x80\xc2\x02K\
+@A\x01\x0aR\xe6 \x85m\x88p\x82\xc2\x82\x9a \
+\xc2\xd0#\x81U\x82\x924Xj\xd2\x84$\xf2O5\
+\xe3\xb9\xa5\xdag\xc3\xcc\x82\xbac)\x09}D\x0b\x92\
+E\x08(\x89k\xccN \x90\x843/\x16<\x06!\
+\xd7j\xc3r\x1d\x83[\xcb\xb4\xd9\xac\x8f\x0c\xb7\xee\xae\
+^0k\x8e\x0a]\xc0CJ\x84\xb2|\xb3\x1cJ\xa4\
+P\xce\xdf\x08U\x04V\xb9\xb7J(4B^6Y\
+a]\x82>\x12\xe5\xfa\xb9\x17U\x5cR\x12\x10y\x99\
+\x11\xd1O:Rv\x05\xeb\x02\xa6\xc6\xa0\x8c\xad\x96)\
+w\xb4a\xb7\xd7d\x8e\x19\xbeA\x161W\xac\x12\xdf\
+[g\xdb\xa3C#\xda`\xb9,\xb0\xc9x\x1c\xdb#\
+8\xe4\x8c\xae\xb7\x1ey\xc4\xa2\x8cJ\x9dO8S\x9b\
+\xbb\xc6*x\xaa\x10\xb9W\x12\xa2M\x80\xbb>\x22\xc6\
+\xb0\x94\xfd\xb9*6[\x91\x18\x0c\xb9\xc4\x1c\xb7\x09\x8e\
+\x97\x10\xdc\x1b\x82\x819n\x13\x9c\xe2\x90pCP\x98\
+\xe3=[\x95\xc1\xd2\xde\xab1Q\x8a\xb69\xabdj\
+82\xb5\xb09\x15V\x13\xec\x86xU9\xff!\xa2\
+\x94\xa8\xa5B\x92\xe0;\xaa2\x0d{H1\xd5y?\
+l\x89\xdeGLS\xd8\xa7\x12X'\x8d\xc5\xa1\xcd\xc3\
+\xba\xe1\xb4>\xbf\x06\xaf\xfap\xa9\x02f\x85Y\xdb\x09\
+7\xf9~,\x5ck\x19\xdb\xf03\xed\x16\x10\xf1\xc76\
+\x007\xbf\xa9\xcag\x98-(\xb4(\xcc\x8a\x0c\xa7\x5c\
+u\x17\x16\xee\xaa\xb4@\xa2\xab\xdd\xaf\xc8}wvv\
+\xe6\x22Uc\xde\x9d\x9f\x9f\xbb\xad\xaa\xba\x04Q]\xfa\
+/\x04\xf2a\xfbf\xb7\x15\xb1\x95\xcf\xb6\x86\xb3\xb1\xaa\
+(\xf7\x10\xfa{\xb0xa\xd8\x98\xbf\xac\xdaE\xaa)\
+\xa1^\xee\xaa#\x9e\xaa\x8a\x11\xc2\xd3\xf1!Kw\x0c\
+\xaf\x86\xc3xH\xb9\xec\xd1\xf6\xb9\xea\x96\xbc\x98<\x01\
+\x9d\x91o\xb0sF=\x9b\xfa\x86`\x18\x8d\xdc4s\
+\x81\xbb\x97\xbd8\x04\xeej\xa9\xf2\xfa~\xf6\xce\xfd@\
+s\xfa\xdcOi\xf0\xe9L\xf5c\xfaR\xa0zZF\
+\x22\xac{\x96N)\xa3\xe4n\x0e\x95\x9b\xa2\x9f\xf8\x10\
+\xec\xd1\xfa\xcaX\x91\xea\x0a\x00\xca=\x9b\x96E\x17I\
+\xe7mb\xc1\xe8\x91\xcb\x86T-\x8b\xd7]\x22#+\
+\x045]Z7\xaf\xfe\x9eFw \xba8\xe9\x0d\xe0\
+\xf4\xc8w\xc14O\xd9\xed(J\xee\xa3\xd3V\x0e\xc0\
+\x89\xbaPx\xfa\x12\xe3\xa3O\xf9\xe0\x8a}N\xd5\xcd\
+\x14\x87/@\xfe\xff8\xae\x8d\xe39\xa6\x09\xf4\x93\x84\
+\xb2\xcc\xeeQ\x98\xcbjG\xd2\xcc/\xf2r\xdfE\xa0\
+4\x92\xb3\xdc\xc2J\x1a\xf3\x12\x05\xbf<:\xee\xb7M\
+\xad\xbf\x9cTA\xb0.5\xff\xd5\xc6\xbe\x15\x89\x8f\xa9\
+\x94\x9c\xfd&x\x1a7`\x91\xdd\xb7\x0c\xb6\xd7\xe0Z\
+\x7fw\xab\xe2j\xdd\xf9\xbe\x1f\xae\x86\x95\xdeB\xff\xdd\
+c\xfd\x1b\xf8\xa3\xc3\x05\xaa\xf6\x0e[w\x832\x18\x7f\
+\xc8\xd8\xcc\xfa\xe7\xfc\x09I\xbf\xef\xd5\xb5\xae\x9a\xf6\x89\
+B\x94\x01\x86\xf2\xd2a?m\xbc\xdf\xe4=kz\xe8\
+\xd6d\xba\x97*\x1b\xf5\xa9\xec\xac\xb32\xfb)f\xab\
+\xcd\x9a\x1f\xf6\xabn\xd4\xaf\xba\xee\xc6\xda\xcfG[u\
+\xd6\xfc\xb0_u\xa3~\xd5u7\xd6~\xf2\xda\xaa\xb3\
+\xe6\x87\xfd\xaa\x1b\xf5\xab\xee\xa006\x9f\xe9\xacH1\
+\x08\xc3\xbe\x15\x8e\xfaVX1y'\x9dm\xdf\xe0'\
+\x1c\x87 \x1a2\xfc\x86-gz\xcd\xbb\xfa\x81\xd9=\
+\xe1\xa9\x08\xb6%e\xfb5\xc2\xab{T\xfeK\x83\xf3\
+\xb7sX\xfa\xef\xfeY\xa1\xbe\xc04\xb2\xeb\xcdt\xe0\
+\xd6/\xe4YU\xe9\xc0\xabM \xfa\xc5\xa6\xba\xeb\x92\
+\xa7p\xa4\xd9\xf9\xefu\xe0\x81^\xd9\xae\xb5\xf9l\xa4\
+=\xde\xf0\xa9\xe8\xf0\x02l\x99\xbby\xa3\xf2\x0b\xc3\xeb\
++u\xfe\xdf\xb3\xf3\xec\xfc\x0b\x01\xe6r&\
+\x00\x00\x02\xc8\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22The Dia\
+l is similar to \
+a traditional di\
+al knob that is \
+found on devices\
+ such as \x22\x0a \
+ + \x22st\
+ereos or industr\
+ial equipment. I\
+t allows the use\
+r to specify a v\
+alue within a ra\
+nge.\x22\x0a }\x0a\
+\x0a Dial {\x0a\
+ valu\
+e: 0.5\x0a \
+ anchors.horiz\
+ontalCenter: par\
+ent.horizontalCe\
+nter\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x04\xe8\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a readon\
+ly property int \
+itemWidth: Math.\
+max(button.impli\
+citWidth, Math.m\
+in(button.implic\
+itWidth * 3, pag\
+e.availableWidth\
+ / 3 * 2))\x0a\x0a \
+Column {\x0a \
+ spacing: 40\x0a \
+ width: pare\
+nt.width\x0a\x0a \
+ Label {\x0a \
+ width: par\
+ent.width\x0a \
+ wrapMode: \
+Label.Wrap\x0a \
+ horizonta\
+lAlignment: Qt.A\
+lignHCenter\x0a \
+ text: \x22F\
+rame is used to \
+layout a logical\
+ group of contro\
+ls together, wit\
+hin a visual fra\
+me.\x22\x0a }\x0a\x0a\
+ Frame {\x0a\
+ anch\
+ors.horizontalCe\
+nter: parent.hor\
+izontalCenter\x0a\x0a \
+ Colum\
+n {\x0a \
+ spacing: 20\x0a\
+ \
+width: page.item\
+Width\x0a\x0a \
+ RadioButt\
+on {\x0a \
+ text: \x22\
+First\x22\x0a \
+ check\
+ed: true\x0a \
+ wid\
+th: parent.width\
+\x0a \
+ }\x0a \
+ RadioButton {\
+\x0a \
+ id: button\x0a\
+ \
+ text: \x22Secon\
+d\x22\x0a \
+ width: pa\
+rent.width\x0a \
+ }\x0a \
+ Rad\
+ioButton {\x0a \
+ t\
+ext: \x22Third\x22\x0a \
+ \
+ width: parent.w\
+idth\x0a \
+ }\x0a \
+ }\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x05B\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aPane {\x0a \
+ id: pane\x0a\x0a \
+SwipeView {\x0a \
+ id: view\x0a \
+ currentInde\
+x: 1\x0a anc\
+hors.fill: paren\
+t\x0a\x0a Repea\
+ter {\x0a \
+ model: 3\x0a\x0a \
+ Pane {\x0a \
+ w\
+idth: SwipeView.\
+view.width\x0a \
+ heigh\
+t: SwipeView.vie\
+w.height\x0a\x0a \
+ Column\
+ {\x0a \
+ spacing: \
+40\x0a \
+ width: pa\
+rent.width\x0a\x0a \
+ \
+Label {\x0a \
+ \
+width: parent.wi\
+dth\x0a \
+ wrap\
+Mode: Label.Wrap\
+\x0a \
+ horizon\
+talAlignment: Qt\
+.AlignHCenter\x0a \
+ \
+ text: \x22Swi\
+peView provides \
+a navigation mod\
+el that simplifi\
+es horizontal pa\
+ged scrolling. \x22\
+\x0a \
+ + \x22The \
+page indicator o\
+n the bottom sho\
+ws which is the \
+presently active\
+ page.\x22\x0a \
+ }\x0a\x0a \
+ \
+ Image {\x0a \
+ \
+ source: \x22../i\
+mages/arrows.png\
+\x22\x0a \
+ anchor\
+s.horizontalCent\
+er: parent.horiz\
+ontalCenter\x0a \
+ \
+}\x0a \
+ }\x0a \
+}\x0a }\x0a \
+}\x0a\x0a PageIndic\
+ator {\x0a c\
+ount: view.count\
+\x0a current\
+Index: view.curr\
+entIndex\x0a \
+ anchors.bottom:\
+ parent.bottom\x0a \
+ anchors.h\
+orizontalCenter:\
+ parent.horizont\
+alCenter\x0a }\x0a}\
+\x0a\
+\x00\x00\x04;\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aFlickable\
+ {\x0a id: flick\
+able\x0a\x0a conten\
+tHeight: pane.he\
+ight\x0a\x0a Pane {\
+\x0a id: pan\
+e\x0a width:\
+ flickable.width\
+\x0a height:\
+ flickable.heigh\
+t * 1.25\x0a\x0a \
+ Column {\x0a \
+ id: colum\
+n\x0a sp\
+acing: 40\x0a \
+ width: par\
+ent.width\x0a\x0a \
+ Label {\x0a \
+ w\
+idth: parent.wid\
+th\x0a \
+ wrapMode: Lab\
+el.Wrap\x0a \
+ horizont\
+alAlignment: Qt.\
+AlignHCenter\x0a \
+ tex\
+t: \x22ScrollBar is\
+ an interactive \
+bar that can be \
+used to scroll t\
+o a specific pos\
+ition. \x22\x0a \
+ + \x22\
+A scroll bar can\
+ be either verti\
+cal or horizonta\
+l, and can be at\
+tached to any Fl\
+ickable, \x22\x0a \
+ +\
+ \x22such as ListVi\
+ew and GridView.\
+\x22\x0a }\x0a\
+\x0a Ima\
+ge {\x0a \
+ rotation: 9\
+0\x0a \
+ source: \x22../im\
+ages/arrows.png\x22\
+\x0a \
+ anchors.horizon\
+talCenter: paren\
+t.horizontalCent\
+er\x0a }\
+\x0a }\x0a }\
+\x0a\x0a ScrollBar.\
+vertical: Scroll\
+Bar { }\x0a}\x0a\
+\x00\x00\x03v\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22RangeSl\
+ider is used to \
+select a range s\
+pecified by two \
+values, by slidi\
+ng each handle a\
+long a track.\x22\x0a \
+ }\x0a\x0a \
+ RangeSlider {\x0a\
+ id: \
+slider\x0a \
+ first.value: \
+0.25\x0a \
+ second.value: 0\
+.75\x0a \
+anchors.horizont\
+alCenter: parent\
+.horizontalCente\
+r\x0a }\x0a\x0a \
+ RangeSlider\
+ {\x0a o\
+rientation: Qt.V\
+ertical\x0a \
+ first.value:\
+ 0.25\x0a \
+ second.value: \
+0.75\x0a \
+ anchors.horizon\
+talCenter: paren\
+t.horizontalCent\
+er\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x05\x17\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a readon\
+ly property int \
+itemWidth: Math.\
+max(button.impli\
+citWidth, Math.m\
+in(button.implic\
+itWidth * 3, pag\
+e.availableWidth\
+ / 3 * 2))\x0a\x0a \
+Column {\x0a \
+ spacing: 40\x0a \
+ width: pare\
+nt.width\x0a\x0a \
+ Label {\x0a \
+ width: par\
+ent.width\x0a \
+ wrapMode: \
+Label.Wrap\x0a \
+ horizonta\
+lAlignment: Qt.A\
+lignHCenter\x0a \
+ text: \x22A\
+ GroupBox provid\
+es a frame, a ti\
+tle on top of it\
+, and a logical \
+group of control\
+s within that fr\
+ame.\x22\x0a }\x0a\
+\x0a GroupBo\
+x {\x0a \
+title: \x22Title\x22\x0a \
+ ancho\
+rs.horizontalCen\
+ter: parent.hori\
+zontalCenter\x0a\x0a \
+ Column\
+ {\x0a \
+ spacing: 20\x0a \
+ w\
+idth: page.itemW\
+idth\x0a\x0a \
+ RadioButto\
+n {\x0a \
+ text: \x22F\
+irst\x22\x0a \
+ checke\
+d: true\x0a \
+ widt\
+h: parent.width\x0a\
+ \
+}\x0a \
+ RadioButton {\x0a\
+ \
+ id: button\x0a \
+ \
+ text: \x22Second\
+\x22\x0a \
+ width: par\
+ent.width\x0a \
+ }\x0a \
+ Radi\
+oButton {\x0a \
+ te\
+xt: \x22Third\x22\x0a \
+ \
+width: parent.wi\
+dth\x0a \
+ }\x0a \
+ }\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x03\xc7\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22RadioBu\
+tton presents an\
+ option button t\
+hat can be toggl\
+ed on or off. \x22\x0a\
+ \
++ \x22Radio buttons\
+ are typically u\
+sed to select on\
+e option from a \
+set of options.\x22\
+\x0a }\x0a\x0a \
+ Column {\x0a \
+ spacing\
+: 20\x0a \
+ anchors.horizon\
+talCenter: paren\
+t.horizontalCent\
+er\x0a\x0a \
+RadioButton {\x0a \
+ te\
+xt: \x22First\x22\x0a \
+ }\x0a \
+ RadioButto\
+n {\x0a \
+ text: \x22Secon\
+d\x22\x0a \
+ checked: true\
+\x0a }\x0a \
+ Radio\
+Button {\x0a \
+ text: \x22\
+Third\x22\x0a \
+ enabled: \
+false\x0a \
+ }\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x04U\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aFlickable\
+ {\x0a id: flick\
+able\x0a\x0a conten\
+tHeight: pane.he\
+ight\x0a\x0a Pane {\
+\x0a id: pan\
+e\x0a width:\
+ flickable.width\
+\x0a height:\
+ flickable.heigh\
+t * 1.25\x0a\x0a \
+ Column {\x0a \
+ id: colum\
+n\x0a sp\
+acing: 40\x0a \
+ width: par\
+ent.width\x0a\x0a \
+ Label {\x0a \
+ w\
+idth: parent.wid\
+th\x0a \
+ wrapMode: Lab\
+el.Wrap\x0a \
+ horizont\
+alAlignment: Qt.\
+AlignHCenter\x0a \
+ tex\
+t: \x22ScrollIndica\
+tor is a non-int\
+eractive indicat\
+or that indicate\
+s the current sc\
+roll position. \x22\
+\x0a \
+ + \x22A scroll\
+ indicator can b\
+e either vertica\
+l or horizontal,\
+ and can be atta\
+ched to any Flic\
+kable, \x22\x0a \
+ + \x22\
+such as ListView\
+ and GridView.\x22\x0a\
+ }\x0a\x0a \
+ Image\
+ {\x0a \
+ rotation: 90\x0a\
+ \
+source: \x22../imag\
+es/arrows.png\x22\x0a \
+ a\
+nchors.horizonta\
+lCenter: parent.\
+horizontalCenter\
+\x0a }\x0a \
+ }\x0a }\x0a\x0a\
+ ScrollIndica\
+tor.vertical: Sc\
+rollIndicator { \
+}\x0a}\x0a\
+\x00\x00\x05\x99\
+\x00\
+\x00\x17\x96x\xda\xcdXKs\xdb6\x10\xbe\xf3W\xec\
+\xf8d'\x16\x948\x99\xe9\x8c.\x9dD\x8e'\x9e\xb1\
+\xe3W\xd2\xb43\xbd@\xc4RB\x0d\x024\x00\xdaV\
+S\xff\xf7.H=(\xf1!\xc5I\xed\xf2 \x11\xc0\
+.\xf6\xf5\xedb\xc1~\x1f\x86&\x9bZ9\x9ex\xd8\
+\x1d\xee\xc1\xc1\xab\xd7\xbf\xc0\xe7\x09\xc2\x85\xa7\x954\xe3\
+z\x0a'^\xb0\xa8\xdf\x87\xab\xf3\xc3\xdf{'2F\
+\xed\xb0w,P{\x99H\xb4\x03\x98\xcd]b\xd2\xbb\
+\xf0=bK\xd1\xc6\x92+8\xbb\x84\xf7W\x87\xbd7\
+\xbd\xa1\xe2\xb9\xc3(\x92if\xac\xa7\xcd/r\x19_\
+\xaf\x0d\xd9\x09\x9f\x9a\xdc\xbb\xf5\xe9\xa1\xd1\xde\x1a\xe5\xa2\
+\xe8*\xa6\x7f\xc5G\x0a\xcf\xf9\x18\xe1[\x04\xf4H1\
+\x80\x8c\x86Q1\xb2\xc8\x85\xd1j\x0a\x995\x19Z?\
+\x05\xa9=\x8cr\xef\x8d\xfe*\x85\x9f\x0c\xe0\x94\xfb\x09\
+K\xf9\xfdn9\xcbH\x9c\x92\xb1\xf4\xc5\xf2\xfelY\
+\xea\xc6ex\x01\x07\xfb\x858\xc6o\xb9,t)\x17\
+\xfa\xf0fo\xaf\xd4ahT\x9e\xea\x99z\xe1q\x19\
+\x8f\xa5\x1e\x0f\xe0\xed\xab\xc5\xdc]\xa9L\xc6-9\x92\
+\x15\xa3h\xb1x\xc2G\xa8*\x1b\xb41\xac\xac[\x9e\
+\x9d\x1a\x81\x83\x92\x9b}\xa5\xf1\x0a\xc1\xc4X\xf97\xf9\
+\x92\xabwJ\x8euJ\xdb\x0c\xc8\xc9\xac\x18}\x1c\xd2\
+\x10\xed\x0a\x83\xc7{\xa2\xd89\xa4P\x9a1H\x07\x1c\
+2\x93\xe5\x19\xf8\x09\xf7a\x9c\x1a\xe7\xc9\xd5\x14Z\x01\
+\x89\xb1\xe0H\x84\xef\xd16)x\xee\xae\x1d\xec\xac\xec\
+\x17\x9e\x97\xb0\xc3\xb5\x80\x91\x95\x98@LP\xc9\xb5\x8c\
+\xb9\x97F;\xb2\x90\xfc\xe8\x09|\xb4\xa1eK\xde\x87\
+\xa5c\xde\x171Y\xf3\xccL\xcfSt\x8e\x02\xb3*\
+\x93\xeb\x98\x94rli|i\xe8\xc2\x91\xeb\x0b\xcd>\
+\xa7xW0\xb4Bc\xf4\x90\xf0q\x8d\x04\xc3\xb4\xd4\
+\xa0t\x18#\xfc\xe9\xdd\xbdh\x85x\xe6\xcbo5\xbf\
+\xc8u\xf6\xa8Fr?\x80\xddj\xf4\xa1W\xea\xb7G\
+\xd8;\xa8QO\x97\xd4\x13,\xf2\xbb\x07\xe5KI_\
+c\xf0\xd2+\xac\xba\xb1F\xd1\x84\xca\xb5\x18\x9c\x18\x8b\
+)\xc8\xcc\xe5)\x08\xa3\x02&\xa4\x07\x9e\xa2g\x8c\xd5\
+\xd1\xf0\x105\x8f6E<x\xab\x8cG\x13\x10\xa8`\
+$\xd2\xa6\x05\xaa\x9e\x11\x0dqE\x8d\xc7B\xa2\xbe\xc7\
+\x7f\x8d\x8bu\xfa\x92v\x00g\xb7h\x15\x9f2S\xfe\
+\xd7\xd5H\x8d\xe0j\x00\xde\xe6\xd8\x8a\xad\xf6\xc8\x14e\
+\xd2Si\xe0V\x94!w\x83\x99k\xd8\x1f\xe8\xe0\x9f\
+\xf9\xe0\x93\xa9\x8b\xae\x15\xdc\x95]\xe7\xc5\xf7\xe0U\xe3\
+\xfa\x1c\x13\x89Tj\x8e\x83F\xc2.\xf8W\xd0\x17N\
+Oa\xe2<\xd4W\x98p\x07#D\x1d\xbc\x13NK\
+\xc1\xfe\xd4\x87\x06\xe8\x9c\x83;N\xeb\xde\x80\xe3\xb7\x18\
+&,\xc4\x13\xae\xc7\xe8~\xddi\x14\xf1\xd08;\x9c\
+`|\xfd\xde\xdco\xd6\x8b\xc4jC\xb9\xe8\xae\x81\x8f\
+\xb9\xd4;\xad\x0cs\x8f\x14m\xc1\x225\x8a\xd1\x96\x9a\
+=6\xaf\x97\x09\xecI\xe4\xf3\xe6n\xd0\xe0\x07\xd2v\
+\xc9\xfe\xd4\x19{Wms\xa8\x8f)l\xbe+\x9b\x9b\
+\xe2}\xc9\xfc&\xf43\xb5\x0df\xda\x7f\xc42\xfed\
+\x82\x99K~\xf1\x04\x15\xa2\x1e\xfa\xae\xe20T\xc6a\
+]\xd6Q\x88d\xe8\xceZ\x12#D)\x99\xd34R\
+\xc4Jf-\xca~W\xd9X\xf3f\x5c\xd4\xaa\x99?\
+\xa3\xe6\x9c\xee*gK\x88\x05\xa2V\x92MUoc\
+\x0b\xba\xfe\x1c\xa7\xcb\x96\xbbK\xaf\x80\x96N\xa2\x06\xa9\
+\x8d0\xfey\xb9\xbf\xfe\x84\x90\x95\x9dra\x14;\xb7\
+H\x0d\xe7-\xbes\x19\xc6\xfeH\xfaNnG\xa5:\
+\x0ePe\xac/\x03\xbf\xeb\xdf\xf8^\x91$\x99\x1e\xb7\
+W\xd5\x87v\xdfn:Y\xb6i\xff\xbf\xbb!\xdb\x0f\
+\xc8td0z:{\xb8\x90\x99t\x012\x80Jz\
+\x06\x9fr\x1d\x93\xa7\xb4\x1c\xe5M}|C_/5\
+\xa0\xf3p\x93\xd3\xcd@q\x92KM\x1f\x1c\x87h\x08\
+\x12\x8e\x1eR\xae\xd0\xe5\x5cpHH\x01\xbaN\xc4\x14\
+X\x8f3\xed2+S\xb9\xbd\xa8\x84\xe7q\xd0\x8d\xc1\
+0\xb7|$\x83\x118&)\x7f\xe5.\x9c\xaatQ\
+\x0c\xb7\xb6\x5c\x04\xb5\xb4L\x17\x0c0\x92#\xd4\xa4\x12\
+\xdbN\xd6UN\xb0\xd0B:\x87t\xfd\x09\xa9,\x19\
+\xfcF\x96\xd2f\x94\x82\x10\xe7\xd6\xd1\xae\x853or\
+\x1e\xcc\xcc-\x19\x22\xc5\x8a\x12[J;\x0c\xdeK(\
+w\x95t\xf46!\xc9\x16-\x85\xac\x12\xac\xaa\xc9\x8e\
+g\x92\xda\x0bO\x17/c\xf7\x01\x93\xa4\x10h\xb7\xf4\
+\xa3\x00\xf2\x0aq\x82\xc6\xb8\xcaM~\xd4\xd2)\x06_\
+<\xdc\xa2FM-\x9b\x03\xb4\x86\xec\xd2\xa0\x0362\
+\xc5c\xb4\x9cp\xb4\x95(\xcc\x81+I\x0eJ\xcbp\
+\x90\xcfb\x82\x9cg\xdd\xdc\x1bo\xb5\x9b[\xa4\x96\xc4\
++?&\x1cSd\xe9\xfei,\xa3S\xcb\xd3+\x15\
+\xf3\xb5\x95\x8e\xc4\x9c\x1f}\xab\xed\xc2lt\xec1\xdd\
+\xd8cy\x93U\x0e\xa20\xdc\xc822t\x02\xa6U\
+\xaer\xe6\xa7\xf5s5\x9eSn\xc7R\x0f\xa0\xb7j\
+g\xb1v\xce\x85\x08U\xe3%\xbc~\x9a\xe6\xf0Xg\
+\xf9s\xb6\x862\xc8\x7flcXa\xfe\xdf^\xe4\x12\
+\xba\xbc\xb8\x96\xceg\x9b\x16\xae!@]\x0d\xdc\xd9\xf5\
+\xf2r7\xa4H\xa2j\xbb\xe0\x95\xdf\x07\x9f\xfb\x9aG\
+\xc7\xe3\xb2\x1c}\x08\x83\xcb\xceL\x9a\xc1\xf6\x5c!\xa7\
+\x13\xa4\x80_\xf1\x91+\xb6X|C\xe5\xca\x0dv:\
+Z\x83`s\xa1\xf5\xec\xf3ekG\xda\x5c\xfd>\x93\
+\xf8#\x89Jt\x98\xd4\x15\xf1\x05|B\xb9\x9f\x18%\
+\xd0~.-\xfaBM\x93\xa6\x83\xfc\x99\x95\xaf+v\
+\xce\x9d\xbb3V\xb4+\x86\x84\x85\xf2TYH`s\
+\xae\x0f\xb4v\xa6?\x88\x8e6\xf0\x87\xecj/\x7f\xe5\
+\xefC\xf4/yY\x0ax\
+\x00\x00\x03\xe0\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22CheckBo\
+x presents an op\
+tion button that\
+ can be toggled \
+on or off. \x22\x0a \
+ + \x22\
+Check boxes are \
+typically used t\
+o select one or \
+more options fro\
+m a set of optio\
+ns.\x22\x0a }\x0a\x0a\
+ Column {\
+\x0a spa\
+cing: 20\x0a \
+ anchors.hor\
+izontalCenter: p\
+arent.horizontal\
+Center\x0a\x0a \
+ CheckBox {\x0a \
+ t\
+ext: \x22First\x22\x0a \
+ che\
+cked: true\x0a \
+ }\x0a \
+ CheckBox {\x0a\
+ \
+text: \x22Second\x22\x0a \
+ }\x0a \
+ CheckBo\
+x {\x0a \
+ text: \x22Third\
+\x22\x0a \
+ checked: true\x0a\
+ \
+enabled: false\x0a \
+ }\x0a \
+ }\x0a }\x0a}\x0a\
+\x00\x00\x02\xb5\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22DelayBu\
+tton is a checka\
+ble button that \
+incorporates a d\
+elay before the \
+\x22\x0a \
+ + \x22button is a\
+ctivated. This d\
+elay prevents ac\
+cidental presses\
+.\x22\x0a }\x0a\x0a \
+ DelayButto\
+n {\x0a \
+text: \x22DelayButt\
+on\x22\x0a \
+anchors.horizont\
+alCenter: parent\
+.horizontalCente\
+r\x0a }\x0a \
+}\x0a}\x0a\
+\x00\x00\x07\x9f\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ap\
+ragma ComponentB\
+ehavior: Bound\x0a\x0a\
+import QtQuick\x0ai\
+mport QtQuick.Co\
+ntrols\x0a\x0aStackVie\
+w {\x0a id: stac\
+kView\x0a initia\
+lItem: page\x0a\x0a \
+ Component {\x0a \
+ id: page\x0a\x0a \
+ Pane {\x0a \
+ id: pa\
+ne\x0a w\
+idth: parent ? p\
+arent.width : 0 \
+// TODO: fix nul\
+l parent on dest\
+ruction\x0a\x0a \
+ Column {\x0a \
+ sp\
+acing: 40\x0a \
+ width:\
+ parent.width\x0a\x0a \
+ L\
+abel {\x0a \
+ width\
+: parent.width\x0a \
+ \
+ wrapMode: Lab\
+el.Wrap\x0a \
+ hori\
+zontalAlignment:\
+ Qt.AlignHCenter\
+\x0a \
+ text: \x22Stac\
+kView provides a\
+ stack-based nav\
+igation model wh\
+ich can be used \
+with a set of in\
+terlinked pages.\
+ \x22\x0a \
+ + \x22Items \
+are pushed onto \
+the stack as the\
+ user navigates \
+deeper into the \
+material, and po\
+pped off again \x22\
+\x0a \
+ + \x22when he \
+chooses to go ba\
+ck.\x22\x0a \
+ }\x0a\x0a \
+ Button {\
+\x0a \
+ id: button\x0a\
+ \
+ text: \x22Push\x22\
+\x0a \
+ anchors.hor\
+izontalCenter: p\
+arent.horizontal\
+Center\x0a \
+ width\
+: Math.max(butto\
+n.implicitWidth,\
+ Math.min(button\
+.implicitWidth *\
+ 2, pane.availab\
+leWidth / 3))\x0a \
+ \
+ onClicked: sta\
+ckView.push(page\
+)\x0a \
+ }\x0a\x0a \
+ Button {\x0a \
+ \
+ text: \x22Pop\x22\x0a \
+ \
+ enabled: stack\
+View.depth > 1\x0a \
+ \
+ width: Math.m\
+ax(button.implic\
+itWidth, Math.mi\
+n(button.implici\
+tWidth * 2, pane\
+.availableWidth \
+/ 3))\x0a \
+ anchor\
+s.horizontalCent\
+er: parent.horiz\
+ontalCenter\x0a \
+ \
+onClicked: stack\
+View.pop()\x0a \
+ }\x0a\x0a \
+ La\
+bel {\x0a \
+ width:\
+ parent.width\x0a \
+ \
+ wrapMode: Labe\
+l.Wrap\x0a \
+ horiz\
+ontalAlignment: \
+Qt.AlignHCenter\x0a\
+ \
+ text: \x22Stack\
+ Depth: \x22 + stac\
+kView.depth\x0a \
+ }\x0a \
+ }\x0a \
+ }\x0a }\x0a}\x0a\
+\x00\x00\x01?\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
+\x00\x00\x000PLTE\x00\x00\x00\xff\xff\xffA\xcd\
+RP\xcaNA\xcdRA\xcdRH\xcbPB\xccQ\
+I\xcbPD\xccQE\xccQE\xccQD\xccQD\
+\xccQC\xccQA\xcdR\xb0DE*\x00\x00\x00\x0f\
+tRNS\x00\x00\x186Oc\xab\xae\xb8\xbd\xc9\xd6\
+\xdf\xe9\xf0r\xc1;\x05\x00\x00\x00\xafIDAT(\
+\xcf\x8d\xd2\xb1\x0d\xc20\x14\x04\xd0[\x81\x0d~\x81\x98\
+\x81\x01\xe8-e\x01F@\xf2\x14t\xec\xe0E\xd8!\
+\xca\x08\xac\x10YXXG\x11'v\xf0\x15\x5c\xf9\xf4\
+\x8b\xff\xed\x03\xd6\xb8\x80>.\x99@\x06\x85\xd9\x04r\
+T\xd8\x8f:\x92/\x13\xc8A\xe1l\x02\x7fG\x17\x8c\
+\x06\x00\xe7{\xc9\x93$I\x0f\x00\x0f\xee\x13M \xbd\
+\xc2d\x02\x19\x14&\x13\xc8\xa00+\xe4\xdf8+\x1c\
+\x04Nb\xa5\xac.\x1a\xc5\xed\x1f\x03p\xeb/\x07\x8e\
+\x97\x92\xeb\xf6F\xddw,\xd59\xacq$\xf96\x81\
+\x1e=F\x13X\x06w\xb8\xf5\xa3\xc5\xad\x1e\x0d\xd6\x22\
+5X{Tq\xb2\x1eO\xd5\xbe:U\x87P(\x16\
+\xe3k\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x01\xca\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00@\x00\x00\x00;\x04\x03\x00\x00\x009\xa2\x91\xef\
+\x00\x00\x000PLTE\x00\x00\x00A\xcdRP\xca\
+NA\xcdRA\xcdRF\xccPH\xcbPB\xccQ\
+I\xcbPD\xccQE\xccQE\xccQD\xccQD\
+\xccQC\xccQA\xcdR\x96\x12X7\x00\x00\x00\x0f\
+tRNS\x00\x186Oc\x9d\xab\xae\xb8\xbd\xc9\xd6\
+\xdf\xe9\xf0URDE\x00\x00\x01:IDAT8\
+\xcb\x85\xd4\xcdM\xc40\x10\x05\xe0\x99\x0e,\x05\x11)\
+\x88;\xc7E\x14`QAj\xa0\x02D\x05{B\xe2\
+F\x0d[\x81K\xa0\x06D\x019P\xc0\x1e\x12\x09\xf1\
+\xb3z\x1c\x9c\xc4\xcex\xd63\xd7|yR</&\
+\xd2\xc6\x1f\xa8>\xfe\xc7\x19\x00\x07\x0b\x9c\x9c\x01\xf0n\
+\x81z\x84\x07\xf0\xe9\x0c\x80{\x0bL\xce\x00\xb5\x88\x08\
+\xbe\x8a\x88\x9b\x97y\xde\x00\x00x\x92\xe0\x15\xdb)\x22\
+$(\x22\x0a wV\x00\xb9\xb3\x12\x88\x88\x12\x88\x08\
+\x05\x9c\xd2S~\xd0\x00\x12\xe8\xc6:\xe0\xa0\x82i\x05\
+\xd7P\xc1\xba0\x1eT\xf0\xe1R\x80\x06R\xef\x9a\xa3\
+\x0a\xd6\xe6r\x0f\x0d\xfc\xad\x01\x17\x000\xd2\xe3\xb9c\
+\xe4>\x82\xe6n\x9e^,\xa2E\x04\xa2r)`\x1f\
+\xcfdy\xff6\x82o\x11\x90\x7f\x9c\xdf\xd4i\x0e\xc8\
+f\xe7\x91\x17\xb2\x83\x0aR@P\xc1T\x09\xc0\xce\xe7\
+[\x0a*\x98\xf2-i \xfd\x97\x83\x0a\xd2\x9a\x09\x1a\
+\xb8\xcc\xda\x1e4\x90W\xbd\xb5@y\x8e\x02h\x11[\
+\xa0DlA\xacS\x0d\xc4>U\xc0\x12\xf1\xbb\xdcP\
+\xcf\xf2\xe6\x99#F:;\xcd`\x80\xb8\xb1\x1a\xe0\xc1\
+\x00te\x01\x0e\x06\xa0\xce\x02\x1c\x0c@\xad\x05xo\
+\x00ju\xf0\x0fRR\x00X\xeb\xfc\xd3\xe9\x00\x00\x00\
+\x00IEND\xaeB`\x82\
+\x00\x00%!\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x03 \x00\x00\x02;\x08\x03\x00\x00\x00#\xc8\x0f\xb6\
+\x00\x00\x00\x09pHYs\x00\x004\xba\x00\x004\xba\
+\x010P\xac\x88\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00\x03\x00PL\
+TE\x00\x00\x00\x00\xff\xff\x00\xff\x80U\xff\xaa@\xbf\
+\x803\xcc\x99+\xd5\x80$\xdb\x92 \xdf\x809\xe3\x8e\
+3\xe6\x80.\xe8\x8b+\xd5\x80'\xd8\x89$\xdb\x803\
+\xdd\x880\xdf\x80-\xe1\x87+\xe3\x80(\xe4\x86&\xd9\
+\x801\xdb\x86.\xdc\x80,\xde\x85+\xdf\x8a)\xe0\x85\
+'\xe2\x89/\xe3\x84.\xdb\x89,\xdc\x84+\xdd\x88)\
+\xde\x840\xdf\x87.\xe0\x83-\xe1\x87,\xdb\x83+\xdc\
+\x87)\xdd\x83/\xdd\x86.\xde\x83-\xdf\x86,\xe0\x83\
++\xe1\x86*\xdb\x82.\xdc\x85-\xdd\x82,\xde\x85+\
+\xde\x88+\xdf\x85*\xe0\x87.\xe0\x85-\xdc\x87,\xdd\
+\x84+\xdd\x87+\xde\x84*\xdf\x86.\xdf\x84-\xe0\x86\
+,\xdc\x84+\xdc\x86+\xdd\x84.\xde\x86-\xde\x84-\
+\xdf\x86,\xdf\x83+\xe0\x85+\xdc\x83.\xdd\x85-\xdd\
+\x83,\xde\x85,\xde\x87+\xdf\x85+\xdf\x87-\xe0\x85\
+-\xdd\x86,\xdd\x85,\xdd\x86+\xde\x84+\xde\x86-\
+\xdf\x84-\xdf\x86,\xe0\x84,\xdd\x86+\xdd\x84+\xde\
+\x86-\xde\x84,\xde\x85,\xdf\x84+\xdf\x85+\xdd\x84\
+-\xdd\x85-\xdd\x84,\xde\x85,\xde\x86+\xde\x85+\
+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\xde\x86+\xde\
+\x85+\xde\x86-\xdf\x85-\xdf\x86,\xdf\x84,\xdd\x86\
++\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xdf\x84,\
+\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x85,\xde\
+\x84,\xde\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85\
+,\xde\x86,\xde\x85+\xde\x86-\xde\x85-\xdf\x86,\
+\xdf\x85,\xdd\x85+\xdd\x84+\xde\x85-\xde\x84,\xde\
+\x85,\xde\x84,\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84\
+,\xde\x85,\xde\x84,\xde\x85+\xde\x86+\xdf\x85-\
+\xdd\x86,\xdd\x85,\xde\x86,\xde\x85+\xde\x86-\xde\
+\x85,\xde\x85,\xdf\x85,\xdd\x85,\xdd\x85+\xde\x85\
+-\xde\x84,\xde\x85,\xde\x84,\xdf\x85,\xdf\x84+\
+\xdd\x85-\xde\x84,\xde\x85,\xde\x84,\xde\x85,\xde\
+\x86+\xdf\x85-\xdf\x86,\xdd\x85,\xde\x86,\xde\x85\
+,\xde\x86-\xde\x85,\xde\x85,\xdf\x85,\xdd\x85,\
+\xdd\x85+\xde\x85-\xde\x85,\xde\x85,\xde\x84,\xde\
+\x85,\xdf\x84+\xdd\x85-\xde\x84,\xde\x85,\xde\x84\
+,\xde\x85,\xde\x86+\xde\x85-\xdf\x86,\xdd\x85,\
+\xde\x86,\xde\x85,\xde\x85+\xde\x85,\xde\x85,\xde\
+\x85,\xdf\x85,\xde\x85,\xde\x85-\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xdf\x85,\xdd\x85-\xde\x84,\
+\xde\x85,\xde\x84,\xde\x85,\xde\x86,\xde\x85-\xdf\
+\x86,\xdd\x85,\xde\x85,\xde\x85,\xde\x85+\xde\x85\
+,\xde\x85,\xde\x85,\xdf\x85,\xde\x85,\xde\x85+\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xdd\
+\x85-\xde\x85,\xde\x85,\xde\x84,\xde\x85,\xde\x86\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85\xf8\xdf\x16\xb8\x00\x00\x00\xfftRNS\x00\x01\
+\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\
+\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\
+\x22#$%&'()*+,-./01\
+23456789:;<=>?@A\
+BCDEFGHIJKLMNOPQ\
+RSTUVWXYZ[\x5c]^_`a\
+bcdefghijklmnopq\
+rstuvwxyz{|}~\x7f\x80\x81\
+\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\
+\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\
+\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\
+\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\
+\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\
+\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\
+\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\
+\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xeb\x08\xd9\
+5\x00\x00 \x97IDATx\xda\xed\x9dy\x80\x8f\
+\xd5\xfe\xc7\x9f\x991\xf6m\x0a\xd9\xcb(\x09\x89\x88H\
+\x12\x92\x8aV$\x22\xf5+*j\xda\x10mC\xc9T\
+7.\xb7M\xbb\xa5\xba\xd9Z\xdc\xeaj,\xddH*\
+\x89\xac\x955\xfb\xbe\xaf\xb3|\x7f\xc9u\xb9\xb7\x06s\
+>\xe7y\xce9\xcf\xf3z\xfd_\xf3y\x9f\xcf\xe7\xe5\
+\xfb\xac\xe7\xf1<\xdf8{m\x0c\xc0q\xf0\x03\xc0\x84\
+ \xf8\x01\x08\x82\x1f\x80 \xf8\x01\x08\x82\x1f\x00A\x09\
+\x82\x1f\x80 9S\x15?\x00A\xf0\x03\x10\x04?\x00\
+A\xf0\x03 A\xf0\x03\x10\x04?\x00A\xf0\x03 \
+\x86\x1f\x00\x01\x09\x82\x1f\x80 \xf8\x01\x08\x82\x1f\x00z\
+\x05\xa9\xba\x8e\xc5\x04\x04\xc1\x0f@\x10\xfc\x00\xd0)\x08\
+~\x00\x82\xe0\x07 \x08~\x00\xe8\x15\x04?\x00A\xf0\
+\x03\x10\x04?\x00\xf4\x0ar\x0e~\x00\x82\xe0\x07 \x08\
+~\x00h\x15\x04?\x00A\xf0\x03\x10\x04?\x00\xf4\x0a\
+\x82\x1f\x80 \xf8\x01\x08\x82\x1f\x00z\x05\xa9\xb9\x89\xa5\
+\x03\x04\xc1\x0f@\x10\xfc\x00\xd0)\x08~\x00\x82\xe0\x07\
+\x80\x8a \xf8\x01\x08\x82\x1f\x00*\x82\x9c\x87\x1f\x80 \
+\xf8\x01\xa0 \x08~\x00\x82\xe0\x07\x80\x8a \xf8\x01\x08\
+\x82\x1f\x00*\x82\xe0\x07 \x08~\x00\xa8\x08\x82\x1f\x80\
+ \xf8\x01\xa0\x22\x08~\x00\x82\xe0\x07\x80\x8a \xf8\x01\
+\x08\x82\x1f\x00*\x82\xe0\x07 H\xce\xd4\xc2\x0f@\x90\
+\x9c\xfd\xd8\xcc\x1a\x01\x82\xe0\x07@\xee\x05\xc1\x0f@\x10\
+\xfc\x00P\x11\x04?\x00A\xf0\x03@E\x10\xfc\x00\x88\
+\xe1\x07\x80\x82 \xf8\x01\x90\xb3 \xf8\x01\x90\xb3 \xf8\
+\x01\x90\xb3 \xf8\x01\x90\xb3 \xf8\x01\x90\xb3 \xf8\x01\
+\x90\xb3 \xf8\x01\x90\xb3 \xf8\x01\x90\xb3 \xf8\x01\x90\
+\xb3 \xf8\x01\x90\xb3 \xf8\x01\x90\xb3 \xb5\xf1\x03 \
+GA\xf0\x03 gA\xf0\x03 gA\xf0\x03 g\
+A\xf0\x03 gA\xf0\x03 gAjoa)\x00\
+r\x12\x04?\x00r\x16\x04?\x00r\x16\xa4\xeeV\xd6\
+\xe1x\xec^\xbbx\xd6\xacY\x93\xd2\xd3?\x1b}\x88\
+\x09\xe9\xe9\xe9\xdf\xce\x9a\xb5`\xd5\x0e\x96&\x12\x82\xe0\
+\xc7\x1f\xd9\xb1p\xea\xa8A\x0ftl\xd5\xb8VrR\
+B\xce[#%\x9d~n\xc3\x96\xedS\xd2\x86O\x9c\
+\xc7&\xf8a\x15\x04?\x8e\xfd\xb1\xf8a\xcc\xd3\xb7]\
+\x5c\xb9\xa0\x97{\xf2Vh\xd0\xe1\x89Q3\xb9\x1a\x18\
+2A\xeanc\x11\x0e\xb1m\xea\xa0\xdb/)\xe7\xc9\
+9\xa5^\x87''\xacfA\xc3\x22\x08~\xc4\xd6~\
+\xf2\xd4\x0d\xc9\x9e^J]\xfe\xf0\xe8_\xb2Y[\xf7\
+\x05\x89x\xfe\x85\xaf\xdcT\xd6\xf3\x8bb\xad\x9e\x9d\x99\
+\xc1\x8c!\x88\xa3,\x1d\xd6\xb9\x82\xe77\x85\x9a\xa7\xa6\
+\xefg\xce\x10\xc41\xf6\xa5\xa7\x94\xf7\x82\xa2`\xeba\
+\xeb\x185\x04q\x86\xcd\xa3;\x17\xf5\x82%\xa1N\xea\
+\x02\xa6\x0dA\x1c`\xdb+\x8d\x13<#\x9c\xd3o\x19\
+\x03\x87 V\x93\x95\xde\xb9\x90g\x90:\xc3\xb8\xfd\x8e\
+ \xd62\xff\xa12\x9ei\x0a\xde\xfcy\x16c\x87 \
+6\xfex\xb4\xf6\xec\xa0r\xdav\x06\x0fA\xecb\xd7\
+\xb0s<{(\x9a\xb2\x92\xd1C\x10{\xf8\xb5Wq\
+\xcf.\x12\xdb\x7f\xcb\xf0!\x88\x1dl\xec\x9d\xdf\xb3\x90\
+\xe6\xb3\x18?\x041\xcf\xd6\xd4\x22\x9e\x9d\xc4\xb5]\xcc\
+\x00\x22\x88Yv\xa7%y\xf6\x12\xdfv)#\x88 \
+\xe6\xc8~\xfd4\xcfn\xf2\xf5\xde\xcd\x10\x22\x88!\xe6\
+^\xe4\xd9O\xb9\x11L!\x82\x98`Oj^\xcf\x09\
+Z/g\x0e\x11$p\xc6W\xf0\x5c\xa1`\xdaA&\
+\x11A\x02eGG\xcf%\xea\xfe\xc4(\x22H\x80|\
+\x9d\xec\xb9E\x81!\xcc\x22\x82\x04EFZ\xa2\xe7\x1c\
+\xd7\xb3\x1f\x0a\x82\x04\xc3\xf2\x86\x9e\x8bT\x98\xca8\x22\
+H\x00L,\xee\xb9I\xc2\xe0`\x17j\xdfV5\xb2\
+\x11\xc4e\x86%z\xce\xf2\x7f\x07\x82\x5c\xa9g\x15\xab\
+\xdc\x80 \x0e\x9f~\xf4\xf0\x5c\xe6\xa2\x0d\x08\x82 >\
+\xb2\xa5\xa9\xe76\xc9\xf3\x11\x04A|\xe3\x973=\xd7\
+):\x05A\x10\xc4'\x16\x97\xf3\xdc'\xdfG\x08\x82\
+ \xbe\xb0\xb0\x8c\x17\x06\xf2\x8eG\x10\x04\xf1\x81\xd9%\
+\xbcp\x900\x12A\x10D;\xdf\x9d\xe2\x85\x85\x84\xb7\
+\x10\x04At\xfbQ\xc4\x0b\x0f\xf1\xa3\x11\x04A\xb4\xb2\
+\xf44/L\xe4MG\x10\x04\xd1\xc8\xa6*^\xb8(\
+:\x07A\x10D\x1b{\x1axa\xa3\xecJ\x04A\x10\
+Md^\xe3\x85\x8fj[\x11\x04A\xf4\xd0\xcd\x0b#\
+\xcd3\x11\x04At\xf0\x8e\x17N\x1eC\x10\x04\xd1\xc0\
+\xbc\x82!\x15$\xfeS\x04A\x101\xbb\xce\xf1\xc2J\
+\xd22\x04A\x10)\x1d\xbd\xf0Ro?\x82 \x88\x8c\
+!^\x98\xb9\x17A\x10D\xc4\xa2\xfc\xa1\x16$n\x22\
+\x82 \x88\x80\xccz^\xb89c'\x82 \x88:\x03\
+\xbd\xb0\xd3\x1dA\x10\x84\x03\xac\xe3\x1cd}\x8e \x08\
+b\xfb\x01V\xe1\x0a5\x1b_\xd3\xb6}\xd7\xae]{\
+\xdd\xdd\xb5k\xe7\xb6m\x9a\xd5IN\x8a\x0b\xe6o'\
+\xefF\x10\x04Q\xe3\x19\x9fg3O\x95\xebR\x06\x8d\
+\x9e\xb1:\xe3\xcf\xff\xfc\xc69\x1f\xbf\xd8\xa7c\x1d\xbf\
+\xefS\xde\x87 \x08\xa2\xc4\xaf\x85\xfc\x9b\xca\x22\xcd\xfa\
+\xbc;\xe7\xe4\xeeBd-\xfdx`\x9b\xb2>j:\
+\x1fA\x10D\x85\xf6>M\xe4i\x9d^\x9a\x93\xeb\x07\
+\x05W\xbe{o5\x9f\xeai\x86 \x08\xa2\xc0t?\
+N\x02\xe2\xeb\xf4\x9e\x9e\xa5Z\xd1\xf2am}y\xf1\
+w\x1c\x82 H\xee\xcf\xd0\xcf\xd3?\x89\xd5\xd3\xd6\x0a\
+\xab\xda7\xa1\xad\xfe\xbd\x81+\xeeA\x10\x04\xc9-/\
+\xeb\x1e\xc3\xd2}\x17h)l\xc3\xd0\x9a\xbaK\xeb\x8f\
+ \x08\x92K\xb6h\xde\x05\xab\xd6\xdb\x1a\x1f\x0c\x9c\xdc\
+:^kq\x05W!\x08\x82\xe4\x8e^Z'\xb0\xc5\
+T\xcd\xe5\xfd\xdcM\xeb\x91V7\x04A\x90\x5c\xb1N\
+\xe7\xdd\x87\x0b'\xfbP\xe1\x8a\xae\x09\xfa*L\x5c\x8a\
+ \x08\x92\x1bR\xf4\x0d_\xb5\x09>\xd58\xb7\xa5\xbe\
+\x22oE\x10\x04\xc9\x05k\x0a\xe8\x9a\xbc\x02\xa9>\xbe\
+\x944\xa1\xbc\xae2\x13\x16#\x08\x82\x9c<\xda\xf61\
+i\xb2\xc8\xd7:\xb7\xa7\xe8:\xce\xba\x19A\x10\xe4\xe4\
+\x8f\xef\xf3\xea\x99\xba\xfcC|\xff \xe5\x14M\x0f\xa1\
+$,D\x10\x049Yn\xd53tU\xe7\x06P\xeb\
+\xfa\x16z\x8a\xed\x88 \x08r\xb2g z~@:\
+\xed\x0e\xa4\xda\xac\x01Zn\x8a$\xfe\x8a \x08rr\
+<\xac\xe5M\xa4\xd4\xc0\xea\x1d\xaf\xe5\x9atO\x04A\
+\x90\x93b\xcf\xa9\x1a\xc6-\xef\xc8\x00+\x9eYJC\
+\xc5E\xb7#\x08\x82\x9c\x0c\x7f\xd3\xf1\xbe\xc7\x17\x81\x96\
+\xbc\xe4\x0c\x0d5\x0fF\x10\x049\x092+\xcbg\xad\
+\xd0\xd4\x80\x8b^\xa9\xc1\x90\xd33\x10\x04AN\xccX\
+\x0d\x0f\xffM\x0d\xbc\xea\x15\xa7\xcb\xcb\x1e\x8d \x08r\
+b\x1a\xc9o\x7f|a\xa0\xec\x9f\xe4\xe7!\x8d\x10\x04\
+AN\xc8B\xf9\xf5\xabQF\x0a\xff*\x9f\xb8\xf2\x85\
+\x08\x82 'B\xfe\x98b\xaa\xa1\xca\xdf\x17\xbf#\xdc\
+\x13A\x10\xe4\x04\xec\x13_\xe3m\x9fm\xaa\xf6\xbe\xd2\
+\xd2K\x1d@\x10\x049>\xefJ\x87\xec\xac]\xc6j\
+\xcfj*-~,\x82 \xc8\xf1\xb9T8b\xf9f\
+\x1b,~\xb5\xf4\xe7\xef\x0a\x04A\x90\xe3\xb2Tz\x1c\
+?\xd8h\xf9\xe3\x85\xd5\xc7\xaf@\x10\x049\x1e\xd2\xc7\
+\xb0Zd\x9b\xad_\xfa\x1cr\x7f\x04A\x90\xe3\x90-\
+\xbc\xddV`\x89\xe1\x00[J\x0a\x9f\xd0G\x10\x049\
+\x0e\xd3\x84\xff\x00?i<\xc1k\xc2\x04\xf3\x10\x04A\
+r\xa6\x87\xf0\x0a\xd6>\xe3\x09\xb2\x1a\xc8\x22<\x8a \
+\x08\x92#\x99ed\xd3\xf5O\x0b2\xcc\x92]f8\
+\x0bA\x10$G&\xcb\xfc\xb8\xc4\x8a\x10md!f\
+#\x08\x82\xe4DW\xd9l}mE\x88\xc5yD!\
+z#\x08\x82\xe4@\x86\xec\x81\xd8\xeb,\x89\xd1I\x94\
+\xa2R6\x82 \xc8\x9f3Qv\x93m\xbe%1\x96\
+\xc8\xf6\xca\xfa\x1eA\x10\xc4\x8fkX\xd7X\x93\xa3\x9d\
+\x1d\x97\xaa\x11$l\x82\xc8\xde\xb5\x9dnM\x8e\xefD\
+9.D\x10\x04\xf9S\xe6\x8b\xe6\xaa\xbeEI.\x16\
+\x1d*n@\x10\x04\xf93d_}\xfe\xd0\xa2$\x1f\
+\x8a\x92\x8c@\x10\x04\xf93\x1aK\xa6\xaab\xa6EI\
+\xb2D\x8f\x94\xb5G\x10\x04\xf9\x13\xb6\x8a\xee\x1f\x0c\xb0\
+*K\xaa$JR\x06\x82 \xc8\x1f\x11\xbdK\x98g\
+\x8dUYV\x89\xae\xf4~\x89 \x08\xf2GD\xf7\xd7\
+\xae\xb7,\xccU\x920}\x11\x04A\xfeH9\xd7\x1f\
+S<\x96\x0f$a\x1a \x08\x82\xfc\x81\x9f$#U\
+:\xd3\xb24\x07N\x91\x1c/\xeeD\x10\x04\xf9_\x86\
+I\x04\xb9\xcf\xba8\xb7I\xe2LD\x10\x04\xf9_n\
+\x92L\xd47\xd6\xc5\x99h\xfe$\x04AB%\x88\xe4\
+[\x7f\x95\xb3\xad\x8b\x93y\x9a OC\x04A\x10\x9d\
+\xa7 }-\x0ct\x97 O\xe2.\x04A\x10\x8d\xa7\
+ \xdfY\x18\xe8\x9f~_\x94\x9b\xd1\xf5\x04\xd4W\xfc\
+\xe3\x9d\xbaja/\x82\xd8r\x0aR.\xdb\xc2@\xfb\
+\x0b\x0b\x12\xf59\x89?\xf0\xb6g7\xdb\x11D'\xe5\
+\x05\xad\xe8fe\xa2\xeb\x04\x89\x9a \x08\x82\xfc\x17k\
+$\xad\xf8\xd4\xcaHo\x08\x12\x15\xceD\x10\x049\x96\
+q\x92i\xdage\xa4\x0d\x92\xcf\xa7\xcfG\x10\x049\
+\x16\xc9\x9e\xbc\xad,\xcdT[\x90\xe9M\x04A\x90c\
+i\x22\xe8\xc4_-\xcd\xf4\xa0 \xd3]\x08\x82 \xc7\
+\x90UT\xd0\x89y\x96\x86\xfa\x87 S\x1d\x04A\x90\
+c\x98'hD\xa9lKC\xedL\x14\xdc*\xdc\x8b\
+ \x08r\x94\xd7\x05\x8d\xe8`m*\xc9>\xd63\x10\
+\x04A\x8e\xd2M\xd0\x88\xd7\xadM%\xf9\xa8\xe7\x10\x04\
+A\x90\xa3\xd4\x154b\xb1\xb5\xa9>\x11\xa4\xfa?\x04\
+A\x90\xa3\xe7\xe8\x85\xd4\xfbpj\xb6\xb5\xb1\xb6\x0a\xbe\
+\x84P\x0fA\x10\xe4?H\x1e\xe5mmq\xae\xb3\xd5\
+c\x15\xcaB\x10\x049\xc2XA\x1f\x9e\xb68W\x17\
+A\xae%\x08\x82 GxB\xd0\x87/,\xce\xf5\x8a\
+ \xd7\x07\x08\x82 G\xb8A\xbd\x0d\x09\xbb-\xce5\
+G0_\xfd\x10\x04A\x8ep\x96z\x1bj\xd8\x9c+\
+#\xbfz\xb0\xb6\x08\x82 \xfff\x8f\xe0\xb9\xd7Na\
+\xbd|]\x15A\x10\xe4\xdfH\xbe\xa7\xf1\xbc\xd5\xc9n\
+\x17\x1c;\xeeC\x10\x04\x91\xb7z\x8a\xd5\xc9^\xf0\xf1\
+\x19L\x04\x89\x8c \x8f\xa8w!n\xab\xd5\xc9\xbe\xf2\
+\xf12\x16\x82DF\x90\x1b\xd5\xbbP\xc9\xeed\xbb\x04\
+gW\xcf\x22\x08\x82\x1c\xe6\xfcp\xdeG?D%\xf5\
+h\xdd\x10\x04A\x0eSL\xbd\x0b\xbd-\x8fv\xa5z\
+\xb4\xa6\x08\x82 \xbf\xb3^\xd0\x85\xb7-\xcf\xf6\x80z\
+\xb4\x8a\x08\x82 \xbf3M\xd0\x85o,\xcf\xf6\xaaz\
+\xb4\xf8\xbd\x08\x82 \x87xSp\x11kG\x88\xe5\x9f\
+\x8f \x08r\x08\xc1\x8bw\x15l\xcf\xb6Y0a\x1f\
+\x22\x08\x82\x1c\xa2\x9dz\x13\x9a[\x1f\xae\x84o\x0f\x09\
+ HT\x04\xb9\xc0\xbfK\xa1\xe6\xa9\xa7\x1e.\x05A\
+\x10\xe4\x10\xa5\xd5\x9b\xf0\x8c\xf5\xe1\xda\xab\x87\xbb\x1eA\
+\x10\xe47\x0e\x0a\xee6\x8f\xb1>]\x1f\xf5p\x17 \
+\x08\x82\xfc\xc6rA\x13f[\x9fNp\x9d\xb7\x0c\x82\
+ \xc8o|)h\xc26\xeb\xd3M\x12\xdc\x089\x80\
+ \x08\x12\x8b\xbd\xa3\xde\x83S\xedO\xb7L0b\xcb\
+\x11\x04Ab\xb1g\xd4{p\xbe\xfd\xe92\x12\xd4\xe3\
+}\x89 \x08\x12\x8b\xf5P\xef\xc15\x0et\xa0\x9cz\
+\xbcw\x10\x04Ab\xb1k\xd4{\xd0\xdd\x81\x0e\x08n\
+\x84\xa4!\x08\x82\x8866x\xda\x81\x0e\x08\xbe\xe5y\
+\x0f\x82 \x88\xe8\x18d\x84\x03\x1d\xb8G=\xde\x8d\x08\
+\x82 \xb1\xec\xbc\xea=\x98\xe2@\x07\xd2\xd4\xe3]\x8a\
+ \x08\x12\xdb&\xe8\xc1\xcf\x0et`\xa4z\xbc\x1a\x08\
+\x82 \xb1\x9f\x05=\xd8\xe5@\x07&\xab\xc7+\x85 \
+\x08\x22y\xa5\xa8\xa0\x0b\x1d\x10|~1!\x13A\x10\
+d\x9cz\x0b\xcep\xa1\x03\x1b\x043\xb6\x09A\x10\xe4\
+e\xf5\x16\xd4s\xa1\x03\x99\x82[\xe9\x0b\x10\x04A\xfa\
+\xab\xb7\xa0\x95\x13-(\xa9\x1e\xf0\x0b\x04A\x10\xc1}\
+\x82[\x9dhA5\xf5\x80\xa3\x8f\xf7\xff\xdd<\xeb\x04\
+\xa4(\xfe\xd5\xcfgi!\x13A\xb4 x\xe5\xae\xb7\
+\x13-h\xa2\x1e\xf0E\xd1\x1f~V\xf1\xafn\x88E\
+\x08\xfb\x05\xb9L}~\xfe\xe2D\x0b\xda\xaa\x07|\x0a\
+A\x10D\xb0e\xc3\x9bN\xb4\xe0N\xf5\x80\xbd\x10\x04\
+A\xaa\xa8\xcf\xcfx'Z\xf0\xb0z\xc0n\x08\x82 \
+\xa7\xa9\xcf\xcfT'Z0P=`{\x04A\x10\xc1\
+w.\x7fp\xa2\x05\x82\x1b=W H\xe4\x059 \
+\xb8\xd2\xbe\xc2\x89\x16\xbc\xa7\x1e\xb0!\x82D^\x90\x8d\
+\xa1\xbf\x15\xf5\x99z\xc0\xea\x08\x12yA\x96\xa8\x8fO\
+|\x96\x13-\xf8Z=ay\x04\x89\xbc \xdf\xab\x8f\
+O17Z\xb0H=a\x11\x04\x89\xbc S\xd4\xc7\
+\xa7\x9c\x1b-X\xa5\x9e0.\x13A\xa2.\xc8\x07\xea\
+\xe3S\xc5\x8d\x16l5u\x96\x85 a\x10d\x94\xfa\
+\xf4\xd4v\xa3\x05\x92\xebt\xeb\x10$\xea\x82\xbc\xa6>\
+=\x17;\xd2\x83D\xf5\x88\xcb\x10$\xea\x82\xfcM}\
+zZ:\xd2\x83\xe2>\xbd1\x85 Q\x10\xe4Y\xf5\
+\xe9\xb9\xc1\x91\x1e\x086\xfe\xfa\x1eA\xa2.H?\xf5\
+\xe9\xe9\xecH\x0f\x04\x8fcNG\x90\xa8\x0b\x22\xf8\x02\
+S7Gzp\xbez\xc4t\x04\x89\xba \xf7\xa9O\
+\xcf=\x8e\xf4\xa0\xbez\xc4\x09\x08\x12uA\x04\xaf\x13\
+\xdd\xefH\x0f.\xf2\xe9\xa5t\x04\x89\x82 \xb7\xa8O\
+OOGzp\x89z\xc4\xe1\x08\x12uA\xda\xa9O\
+O\x1fGz\xd0\x5c=\xe20\x04\x89\xba W\xabO\
+\xcfc\x8e\xf4\xa0\xa5z\xc4\xbf\x22H\xd4\x05\xb9B}\
+z\xfa9\xd2\x83V\xea\x11\x9fG\x90\xa8\x0b\xd2B}\
+z\x068\xd2\x83k\xd5#>\x8b Q\x17\xa4\x99\xa1\
+\xe9\x09\x10\xc1\xc6X\x03\x11$\xea\x824Q\x9f\x9eA\
+\x8e\xf4\xe0&\xf5\x88O!H\xd4\x05i\xac>=C\
+\x1d\xe9A'C\xa7Y\x08\x12\x06A\x04w\xd1^r\
+\xa4\x07\xb7\xaaG|\x1cA\xa2.\xc8\x85\xea\xd3\xf3\x9a\
+#=\xb8C=\xe2#\x08\x12uA\xea\xa9O\xcf[\
+\x8e\xf4\xe0nC\xf7B\x11$\x0c\x82\xd4Q\x9f\x9e\x91\
+\x8e\xf4\xe0^\xf5\x88\xbd\x10$\xea\x82\xd4R\x9f\x9e\xbf\
+;\xd2\x83\x07\xd4#>\x88 Q\x17\xa4\xa6\xfa\xf4\x8c\
+u\xa4\x07\xbd\xd4#\xde\x87 Q\x17\xa4\x86\xfa\xf4\x8c\
+s\xa4\x07}\xd5#\xa6 \x08\xbf \xca\xbc\xefH\x0f\
+\x1e\xe6\x10\x0bA\x94\xa9\xad>=\xef8\xd2\x83\x87\xd4\
+#\xf6F\x90\xa8\x0bR\xd7\xd0\xdbD\x01\x22x\xab\xb8\
+/\x82D]\x10\xc1}\x907\x1c\xe9A\x0f\xee\xa4#\
+\x882\x0d\x0c\xbdn\x17 \x82\xd7\xeey\x16+\xf2\x82\
+4R\x9f\x9e\x17\x1d\xe9\xc1\xed<\xcd\x8b \xca\x08\x9e\
+\xe6\x1d\xe2H\x0f\xba\xa8GLC\x90\xa8\x0br\xa9\xfa\
+\xf4\xfc\xc5\x91\x1e\xdcl(\x22\x82\x84A\x90\xe6\x86\xfe\
+y\x0d\x90\xf6\xea\x11\x07#H\xd4\x05ia\xe8\x00=\
+@\xda\xa8G\xfc\x1b\x82D]\x90+\xd5\xa7'\xd5\x91\
+\x1e\x086mx\x09A\xa2.\x88`z\x5c\xd9\x17\xeb\
+*\xf5\x88\xaf\x22H\xd4\x05\x11\x1c\xa0\xbb\xb2\xb3\xe2\xe5\
+\xea\x11\xdfD\x90\xa8\x0b\x22xa\xdb\x95\xbdy\x05;\
+\x1b\xb17o\xe4\x05\x11\xbc\x8fz\x9f#=\x10l^\
+\xfd\x1e\x82D]\x10\xc1\xebv\xae|\x1fD\xb0q\xcb\
+\xc7\x08\x12uA\x1eQ\x9f\x9e\xdb\x1d\xe9\x81\xe0\x03:\
+\x93\x11$\xea\x82<\xa9>=\x1d\x1c\xe9Au\xf5\x88\
+3\x11$\xea\x82<\xa7>=\xd78\xd2\x83\x8a\xea\x11\
+\xe7!H\xd4\x05yA}z\x9a;\xd2\x03\xc1w\xd2\
+\x97!H\xd4\x05yC}z\x1a8\xd2\x83<\xea\x11\
+7 H\xd4\x05yW}zj\xba\xd1\x82\xbd\xea\x09\
+\xbd\xdd\x08\x12uA>R\x9f\x9e\xcan\xb4`\x83z\
+\xc2\xb8l\x04\x89\xba _\xa8\x8fOi7Z\xb0D\
+=a\xa1\x18\x82D]\x90\x1f\xd4\xc7\xa7\xa0\x1b-\x10\
+$,\x85 \x91\x17d\xa9\xe0\x08}\xbf\x13-\xf8R\
+=`%\x04\x89\xbc \x9b=C\xd7x\x02\xe3\x1f\xea\
+\x01k H\xe4\x05\xc9\x10\x08\xf2\x93\x13-xO=\
+`}\x04\x89\xbc \xb1B\xea\xf3\xf3\x8d\x13-xM\
+=`S\x04A\x90\xd2\xea\xf33\xd1\x89\x16<\xaf\x1e\
+\xb0\x1d\x82 \xc8\xd9\xea\xf3\xe3\xc6\xf6\xee\xa9\xea\x01\xef\
+B\x10\x04\x11<\x0c\xee\xc6\xde\xa3\x0f\xaa\x07|\x04A\
+\x10D\xb0\xef\xcf\x00'Z \xd8yt0\x82 H\
+\x87\xb0\xbfs{\x8dz\xc0\x91\x08\x82 )a\x7fc\
+J\xb0\x7f\xfd\xa7\x08\x82 O\xa9\xcf\xcfeN\xb4\xe0\
+L\xf5\x80\xdf\x22\x08\x82\xbc\xaa>?\xb5\x9chA1\
+\xf5\x80K\x11\x04A>P\x9f\x9f\xb2.t\xe0@\x9c\
+z\xc0\xed\x08\x82 _\xa9\xcfO\xdel\x07:\xb0F\
+=_\x9el\x04A\x90\x9f\x05\x0fcmv\xa0\x03s\
+\xd4\xe3\x9d\x16C\x10\x04\xd9.\x10d\x8e\x03\x1d\xf8D\
+=^u\x04A\x90X,\x9f\xfa\x04}\xe2@\x07\x04\
+\xcf*6F\x10\x04\x89\xc5\xca\x85\xfbY\x93~\xea\xf1\
+\xda \x08\x82\xc4b\x17\xa8O\xd0\xe3\x0et\xe0\x0e\xf5\
+x\x0f \x08\x82\xc4b\xd7\xa9O\xd0m\x0et@\xf0\
+\x09\xadA\x08\x82 \xb1\xd8\xbd\xea\x13t\xb9\x03\x1d8\
+O=\xde\x18\x04A\x10\xf5>\xfeFU\x07:PJ\
+=\xde\x0c\x04A\x10\xd1;\xdb\xf9\xb3\xacO\xb7Gp\
+#}5\x82 H,6\xcd36B\x010_p\
+#=\x13A\x10$\x16[!\x10d\x9a\xf5\xe9&\xa8\
+\x87\xab\x18C\x10\x04\x89\xc5\x0e&\xa8\xcf\xd0p\xeb\xd3\
+\x0dU\x0f\xd7\x10A\x10\xe4\x10e\xd5g(\xd5\xfap\
+\xf7\xab\x87\xbb\x11A\x10\xe4\x10\xf5\xd4g\xa8\x93\xf5\xe1\
+\xae5v\x9f\x10A\xc2\x22H{\xf5\x19\xaag}\xb8\
+\x9a\xa6\xb6l@\x90\xd0\x08\xf2\x98\xfa\x0c\x15\xb5\xfd\x8d\
+\x90\xac\x02\xc6\xee\x13\x22HX\x04\x19\x1e\xe2\xeb\xbc\x92\
+\xcd\xeb\x7f@\x10\x049\x84\xe0\x9dB\xefs\xcb\xb3\x09\
+\xde\x06\x89\xdb\x85 \x08r\x88\x8d\x02A\x86X\x9eM\
+\xb01o\x85\x18\x82 \xc8\xef\x08\xbe\x93|\xa7\xe5\xd1\
+\xba\xaaGk\x8e \x08r\x98\xba\xeaS\xd4\xc8\xf2h\
+\x8d\xd5\xa3uG\x10\x049\x8c\xe0:oa\xbb\x1fW\
+\xccNR\x8f6\x14A\x10\xe40\x82\xeb\xbc\xde\xcfV\
+'[.H6\x11A\x10\xe40\xa3\x04cd\xf77\
+B>\x14$[\x81 \x08r\x18\xc1\xd6Q^\x1f\xab\
+\x93=\xa1\x1e\xac@\x16\x82 \xc8a\xf6'\xaa\xcfQ\
+K\xab\x93\x09>}p^\x0cA\x10\xe4\xdfTW\x9f\
+\xa3\x92V?lr\x86z\xb0v\x08\x82 G\xb81\
+\xa4g\xe9\x1b\x04\xb9\x1eC\x10\x049\x82\xe0\x1b!V\
+\xbf3\xf5\x91 \xd7h\x04A\x10\x1d\x83d\xf3\xbd\xf4\
+\x87\x05\xb9\x96\x22\x08\x82\x1ca\x99`\x90jZ\x9c\xeb\
+\x12\xf5X\xc5\xb3\x11\x04A\x8e\x90]D}\x92\x12v\
+X\x1b+\xa3\xb0z\xacKc\x08\x82 \xff\xa1\xa1\xe0\
+'\xc4\xde-\xdeg\x0bR=\x88 \x08r\x94\x14\xb3\
+\xa3\xe4\x13\x83\x04\xa9\xdeC\x10\x049\xca;\x82Q\xb2\
+\xf7S\x9e\xad\x04\xa9~B\x10\x049\xca\x12\xc1(\xc5\
+m\xb4\xf5\x14\xa4\xa8\xe0e\xfb,\x04A\x90c\xce\xd2\
+K\x18\xbdc\xe0\x0f_\x0b2]\x12C\x10\x049\x86\
++\x04\xc3t\x87\xa5\x99\x06\x082\xdd\x87 \x08r,\
+\x82\xc7^\xbd2\x96>\x8e%\xb8\x0b\xe2\x8d4(\xc8\
+z\x04\xb1\x0f\xc1\xee\x1f\x9e\xf7\x8d\x95\x91\xb6\xe6\x11D\
+ZlP\x90\xb5\x08b\x1f\x9b\x05\x9f\xd1\xf0\x1e\xb52\
+\x92\xe45\xb0\xd2\xd9\x06\x05Y\x8d \x16R%tO\
+\x9b\x08\xde\xb4\x17\xef[-\x12d%\x82XHW\xc9\
+1\xd62\x0b\x03\x1d\x14lf\xe4\xbdlR\x90\xe5\x08\
+b!\xefJ\x04y\xda\xc2@\xe9\x92@\x8bL\x0a\xb2\
+\x14A,d\xadd\x9ejX\x18\xe86\xd3\xa7 \xb1\
+\xe7B\xb9QLT\x05\x89U\x95\x182\xd7\xba8\xfb\
+%GX\xed\xb5\x940\xd8\xe0\x154\x04\xd1N7\x89\
+ \xf6\xedm2^\x12\xe7\x15-%\xbc\xa0\xf8\xd7\x7f\
+D\x10\x1b\xf9\xbbd\xa2*f\xda\x16\xa7\x9d\xf1S\x90\
+\xd8\xb0P\xddV\x8a\xbc \xeb$wB\xbc\x7fX\x96\
+f\x8b\xe0\xc39^\x19=5\xbc\xa9\xf8\xe7\xff\x85 \
+VRM\x22H+\xcb\xc2\x0c\xf6\x8c\x9f\x82\xc4F(\
+\xfe\xf9\x89\x08b%=%3\x15\xbf<D\xb6\xbf\xa9\
+\xa7\x06\xd5+\xe7\x1f#\x88\x95|!\x99)\xcb\x1e7\
+\x11e\x89[\xa7\xa7\x88\xb1\x8a\x7f\xff}\x04\xb1\x92\x0c\
+\xc9\x85Q\xaf\xe4\x1e\x9b\xb2Hv\xc2\xf3\xeaj*B\
+u\xe7\xec\xe1\x08b'\xedE?!C-J\xb2L\
+\xf2 \xaf\x97\xaa\xa9\x0a\xd5'\xa4_@\x10;\x19)\
+\x12\xa4\xc2A{\x92\xdc%J\xf2\x9d\xa6*&*\xfe\
+\xfd\x01\x08b'[\x12Ds5\xc2\x9a \x1b$\xd7\
+x\xbdr\xba\xde\xff\x9a\xa2X@/\x04\xb1\x94\x8bD\
+\x82T\xcd\xb0%G_Q\x8e\x1e\xba\xca\x98\xa6X@\
+7\x04\xb1\x944\xd1`y\xafZ\x12c}aQ\x8c\
+\xa9\xba\xea\x98\xa9X\xc0M\x08b)KE7\xd3\xbd\
+\xb2\x96\x5c\xc8\xea.JQJ\xdbS3\x0b\x14+\xb8\
+\x12Al\xa5\x9e\xec'\xc4\x8e\xb3\xcb_\x12E!\xba\
+j+d\x8db\x05\x17 \x88\xad\x0c\x92\x09Rd\x95\
+\x0d!\xdazv\x1ca\xc5\xf6\xa8^\x0fD\x10[Y\
+\x13/\x1b.\x1b\x0e\x0e>\x95E8]\xe3\x87\xdf\xf3\
+\xaa\x95\x90/\x1bAl\xa5\xb1l\xba\xbc\xb1\xc6\x13\xec\
+\xae$K\xf0\x88\xc6ZJ*\xd6\xb0\x15Al\xe5E\
+\xa1 e\x8c\xf7\xf6\x1ea\x82E\x1ak9K\xb1\x86\
+\x85\x08b+\x1b\xf2\x08\xe7\xebZ\xc3\x87\x07\x93\x84\x07\
+\x89\xf5u\x16s\x81b\x11\x93\x11\xc4ZZ\x09\x05\xf1\
+\x06\x1b-\x7f}\x19a\xf9o\xe8\xac\xe62\xc5\x22^\
+G\x10k\xf9H*H\xe2W\x06\xab\xcfl&\xac\xbe\
+\xd8n\x1b\xae\xa7\xf5E\x10k\xc9('5\xa4\x82\xc1\
+\x9d3\x1f\x92\x16\xdfCk9\xb7\x9b}\xa3\x11A\xfc\
+\xe0Q\xe9\x8cy\xd5\x8d\x9d\xa8\xbf,\xae\xfdG+|\
+\xad\x87 \xf6\xb2\x22^<eM\x0f\x98)}\xac\xb8\
+\xf4K\xf4\x16\xf4\x94b\x19\xc5\xb3\x11\xc4^Z\x8a\x05\
+\xf1\xda\x18y5dJ~q\xe1\x1f\xe9\xadHu\xdf\
+\x9f(\xed\xce\xeb\x9e \xe3\xe4\x82xW\xed\x0b\xbe\xee\
+\xcf\x0a\x88\xcb\xae\x92\xa5\xb7\xa4\x8fU\x0b\x19\x8f \xf6\
+r\xb0\xa2\x06CZ\x04\xfe`\xef\xb8\xbc\xf2\xaa_\xd6\
+\x5c\xd3w\xaa\x85<\x8e \x16\xf3\xbc\x06A\xbc\x86\x01\
+\x7fG\xec\x8d<\xf2\x9a\xb5\xef;\xb1Z\xf9\x17\x18A\
+,fgq\x1d\x86\x94\xfb6\xc0\x923z\xeb(y\
+\xa0\xf6\xb2T\xdfa.r\x10A,F\xcb\xb4y\x05\
+\xdf\x0b\xac\xe0M\x97\xea(\xf8\x94\x9d\xda\x0b+\xadZ\
+\xcbW\x08b1k\xf2j1\xc4\xbb}g0\xf5N\
+\xae\xa8\xa5\xdc\xfe\xfa+\xab\xafZK?\x04\xb1\x99.\
+z\x04\xf1\x92\xa7\x05P\xec\xde{\xe3\xb4\x14[|\xbb\
+\xfe\xda\x94w\x1a\xab\x85 63/N\x93!\x09\x0f\
+\xec\xf0\xbb\xd6igk\xaa5\xcd\x87\xe2\xfa(W\xf3\
+\x03\x82\xd8L\x1bO\x17\xa5\xdf\xf6\xf5\xae\xf0\xaf7\xe9\
+r\xb9\xfc^\x1f\xcaS\xbeS\xe8\xa5 \x88\xcd,L\
+\xd0f\x88w\xe1t\xdf\xca\xdc\xdd\xaf\xa0\xb62\xdf\xf0\
+\xa3\xc0\xcf\x95\xcb)\xbc\x06Al\xe6\x16O#\xcd\xbf\
+\xf4\xa5\xc6\x1d\x03J\xe8\xab\xb1\x86/\x9f\xc8Z\xa6^\
+Pg\x04\xb1\x99\xe5yu\x1a\xe25\x99\x98\xa5\xbb\xc2\
+\x8dO$\xe9\xac0\xdd\x97e\xccR\xff\x85\x8b\xff\x0c\
+Al\xa6\xbb\xa7\x97\xcai\x1bu\x967\xabk\x01\xad\
+\xe5\xdd\xe0\xd32\xd6R/\xa9\xc8l\x04\xb1\x98\xb5\x05\
+5\x1b\xe2\xe5\xef8a\xbf\xa6\x03\x97\xb4\xb35\xd7V\
+p\x85O\xcbx\x93\xa0\xa8\xb2\xb3\x11\xc4b\x1e\xf5\xf4\
+S\xbc\xb3\xdc\x91%\x03\xeb\xe8/\xac\xbf_\xab\xd8O\
+RU\x817\x10\xc4^\xf6T\xf4\xfc\xa0`\xcb\xbf\xcc\
+U\xbe\xf0\xbbe\xdc]U\xfc(\xaa\xda~\xbfVQ\
+\xf8\xee\xc0\xb5\x0b\x10\xc4Z\xc6y~q\xdauOO\
+\xca\xedm\xeb\xcc\xf9ow\xaf\x93\xe0O=\xf13|\
+[\xc4e\xc2\xd2\x12\xba\xccF\x10[i\xe1\xf9H\x5c\
+\xd5\xb6\x8f\xbe3\xebd\x1e\xd6\xca\x5c\xf2\xe9\xa0n\x8d\
+\x0b\xfbX\x8b\x8f7\xe5\xb2O\x11WwN\xff9\xb9\
+\xb9\x04}p\xeb\xda\xa5?\xce\x9a\x92>z\x0e\x82\xf8\
+\xcc\xe2\xbc\x9e\xef\x94\xa9{\xf5\xddO\xbe\xfd\xf1\xbf\xe6\
+\xae\xd8\xf6_\x7f{\xef\xbaE3'\xbe;\xf8\xc1\x0e\
+\x17\x9f\xe5{\x15\x95v\xfb\xb8\x88\xcdtTX\xa4i\
+\xdf\xe1S\x96\x1cs\x1c\xb8k\xeb\xf2%\xb3\xbeI\xff\
+d\xf4\xf0a\xcf\xa7\xf5\xe9\xd5\xf5\xb6\xb6W7oX\
+\xa7J\xf2)\xc5\x8e\xfeGw\x22\x88\xdf<\xec\x05J\
+|RRR\xc5\xe4\xe4\x12II\x05\x83\xfc\xb3\x09\xbe\
+>Q\xd9Sc\xa5E\x92*\x9dY+\xb9|\xd2\xc9\
+\xbd{\xdf\x01A\xfcfwe/\x02\xf8\xfb\x81\xf71\
+\xc6r]\x85 \xbe\xf3UB\xf8\xfd\xa8\xe3\xef\xcb{\
+\xeb\x8d\x05k\x84 \xfe\xd33\xf4~\x14\xfd\xd9\xe7%\
+<\xd3T\xb2s\x11\xc4\x7f\xf6\xd7\x0c\xb9\x1fqc\xfc\
+^\xc2[LE;\x1dA\x02`v\xdep\x0b\xd2\xd3\
+\xf7\x15|\xcdT\xb4\xe2\x08\x12\x04O\x85\xda\x8f&\xfe\
+\x7f\xda}\x85\xa9l\xf1\xd9\x08\x12\x00YW\x86\xd8\x8f\
+36\x04\xb0\x82g\x9bJ\xb7\x0bA\x82`\xeb\x99\xa1\
+\xf5\xa3\xc8\x8fA,`\x8a\xa9x\xab\x11$\x10\xe6\x16\
+\x0a\xa9\x1f\x09\xc1\xbc\x92\xf4\xa9\xa9|\xf3\x11$\x18\xde\
+\x0b\xa9 /\x05\xb3|\xfb\x8a\x18\xca7\x03A\x02\xe2\
+\xa1P\xfa\x11\xd8\xdel7\x19\x0a\xf8O\x04\x09\x88\xcc\
+kC\xe8G\x8f\xc0\x96o\x9c\xa1\x84\x7fG\x90\xa0\xd8\
+\xd74t~t\xc8\x0al\xf5\xf6\x18:\x89\x1b\x86 \
+\xc1\xf5\xb8a\xc8\xfch\x9b\x11\xe0\xeau2\x93\xf19\
+\x04\x09\x8eM\xd5B\xe5G\x9b \xfd\x88}a&\xe4\
+c\x08\x12 \xab*\x86\xc8\x8f\x1b\x03\xf5#\x96}\x96\
+\x91\x94\xf7\x22H\x90,\x0b\xcf\x0d\xc3n\x99\x01\xaf]\
+\x9a\x91\x98\xb7 H\xa0\xac\xaf\x15\x12?z\x07\xbet\
+[\x0a\x9b\xc8y\x1d\x82\x04\xcb\xb6F\xa1\xb8\x7f\xfe\x82\
+\x81\xa5\xeba\x22iS\x04\x09\xfaZV\x08\x1e\x5c,\
+\xfc\xa1\x91\xe3\xd3<\x06\xa2\xd6A\x90\xa09\xd8\xd9u\
+?N\x9fkf\xe5:\x1a\xc8z\x16\x82\x04\xcf_\xf3\
+8\xedG\xd0\x1f\xa7\xfe\x0fK\x0c\xbcxV\x0aA\x0c\
+\xf0ei\x87\xfd\xe8z\xc0\xd8\xbau\x0f>m>\x04\
+1\xc1\xca\xba\xae\xeaQ\xe4}\x93\xd7\x00\x8b\x05\x1fx\
+\x1f\x82\x98`\xdf\xadn\xfaQ{\x91\xd1e{)\xf8\
+\xc4\x1b\x10\xc4\x0ccJ\xb8\xa7G\x5c\xca~\xb3\x8b\x96\
+\x15\xfc\xe3l\xbf \x88!\xd6\xb5v\xcd\x8f\x0aS\x8d\
+/\xda\xfc\x02A\x87\xfe\x0eA\x8c1:\xc9-A\xaa\
+\xec7\xbff\xaf\x06\x1dz2\x82\x98c\xc5en\x19\
+\xd2\xdf\x825\x0b\xfa\xd5\xc2\xf1\x08b\x92\x09\xc9.\x09\
+\x92o\xb1\xf9\x15\xdb{a\xb0\x99\xdfF\x10\xa3\x1c\x18\
+R\xd8!C\x9aX\xb0\x8f\xda\xa6`\x9f{\x1f\x82 \
+\xa6\xef\x89\xb4s\xc8\x90\x91\x16,\xd8\xe22Q;\xac\
+\x8c\xb6 \xb1\xd8\xf4\xe6\xce\x08Rj\x8b\x05\xeb\xf5S\
+\x85\x00\x13?\x84 \x160\xcd\x19E\xee\xb0a\xb9\x96\
+U\x8eX\xe0\xc8\x0b\x12\x8b\xcdp\xe4\xaeH\xdct\x1b\
+VkK\xb3\xc0\x02\xdf\x88 \x96\xf0U\x1b'\x1e\xf2\
+\xadq\xd0\x86\xc5:xwPy[\x22\x885\xacM\
++\xe7\x80!\x03\xedX\xacq\xa7\x06\x13\xb7\x01\x82X\
+\xc4\xfe\x91\xf5\xad\x17\xa4\xe0R;\xd6j\xcd\xe5\x81\xc4\
+\xad\x86 v\xf1\xfd}e,7\xc4\x9a\x83\x8e\xf7\xcb\
+\x07\x90\xb6<\x82\xd8F\xe6\xa4\xdb\x8a[m\x885\xfb\
+\xd5\xeez\xd8\xff\x8f\xc1\x17A\x10\x1b\x0f\xb5\xc6\xb7\xb1\
+\xf8\x06{\x99\xed\xd6,\xd4\xba{\xf3\xfb}\xd9.\x13\
+A\xect$\xfd\xfe*\xb6\x1ar\xb7E\xeb\xb4\xfaa\
+\x9f\xcf\xd6\xb7!\x88\xb5,\x19zy~\x1b\x05\x89\x9f\
+i\xd3*\xed}\xb5\xb6_A\x13kv|f/\x82\
+\xd8L\xc6\xac!m\xed{\xf7\xf0\xdc\x83v\xad\xd2\x82\
+\xd43tGLj\x942l\xfa^G\xa6$\xc2\x82\
+\x1c\x22{\xc1\xb0\xceU\xe2\xad2\xc4\xba\xaf\x02dN\
+\xef\xadk\xef\xfc\xfc\xe7w\x194i\xa3S\x13\x12q\
+A~g\xf7\xccaw7*\xaa\xe7\xbc3N\xfc\xbf\
+(\xb4\xc2\xc6#\xd2a\x1d\xca\x8aR\x95h\xd0e\xc0\
+\x98\x05\x19\xee\x0d\x07\x82\x1c\xf9-Y\xfa\xe1sw]\
+~f\xa2@\x8e*\x9dG\xac\xd3\xf01\x9a\xd6\x96\xae\
+\xd0O#R\x1a\xe5\xfecT\x85k\xb7{t\xc4\xcc\
+-\xce\xce\x05\x82\xfc\xcf\x89\xc9\xb2I\xc3\xfav\xb9\xb2\
+v\xd9\xdc<\xbdU\xe8\xdck\x1f|\xf1\xf3\xdf\xaf\xc9\
+\xac\xd7p\x9fe\x9c\xbd\xcb\x93\xf9\xf3G\xcf\xdcvQ\
+\xb9\x938(-pv\xb3.O\xbc>u\xb5\xeb\x03\
+\x81 9\xfd\xa2\xac\xffq\xe2\xa8\x97\xd3\xfa\xf4\xb8\xe5\
+\xfa\xe6u\xab&'\x9f\x9a\x94td\xf6\x93\x92\x92\xca\
+%'W\xa9\x7fE\x87\xee\x8f>\xff\xe6\x87\xd3\xd7\x1d\
+\xfb\xdf\xbd\xa8\xe1\x0e\xf3N\xdb\x17\xe7\xe0\x8ai\xef\x0e\
+}\xa2\xfb\x8d\xcd/</\xb9dR\xbe\xc3e\xe7K\
+*Q\xb9N\xb3\xebo\xed5h\xd4\xa4y\x1b\xc32\
+\x07\x08\xa2\x99,\x0d\x8f|\xa5\xb0\x8c\x08\x12Zf%\
+\x84\xecf\x08\x82\x80V\xee\x92\xff\x84\xd4\xc9d\x19\x11\
+$\xacl\xd7\xf0\xcc\xf0\x10\x96\x11AB\xcbp\x0d\x0f\
+\xba\xaeb\x19\x11$\xacd_*7\xe4z\x96\x11A\
+B\xcb\x82D\xb9!\x1f\xb1\x8c\x08\x12Zz\xc9\x05\xa9\
+\xb8\x8beD\x90\xb0\xb2G\xc3\x13\xb0\x0f\xb1\x8c\x08\x12\
+Z\xc6\xcb\x05\xc93\x9beD\x90\xd0\xd2Jn\xc8\x05\
+\xdc\x0cA\x90\xd0\xb2\xa2\x90\xdc\x90\x17YF\x04\x09-\
+\xfd\xe5\x82\x14]\xcd2\x22HX9P5\x22\x9b\xd7\
+\x22\x08(\x91\xae\xe1\x05\xc5\x09,#\x82\x84\x96\xf6r\
+AN\xdf\xcd2\x22HXYWLnH\x1f\x96\x11\
+AB\xcb`\x0d7C\xe6\xb0\x8c\x08\x12V25\xec\
+\xbaV?\x8buD\x90\xb0\xf2\xad\x86\x1d\xb7^e\x19\
+\x11$\xb4\xdc\xaea\x1b\xc2\x0d,#\x82\x84\x95-%\
+\xe5\x86\xdc\xcc2\x22Hhy]\xc3\xcd\x90t\x96\x11\
+A\xc2J\xf6%rA\xce\xdc\xc7:\x22HX\x99\xa7\
+\xe1\xe5\xc2\xc7YF\x04\x09-\xf7\xcb\x05\xc9\xbb\x90e\
+D\x90\xb0\xb2S\xc3\xf7\xa7\x1bg\xb3\x8e\x08\x12V\xde\
+\xd7p\x9e\xfe\x16\xcb\x88 \xa1\xa5\x85\x5c\x90\x12\x9bX\
+F3lC\x10\xdf\xf9E\xc3\xc7\x10oe\x19\x8d\xb0\
+\xbd\x1e\x82\xf8\xcf\xe3\x1a\xbe\x5c5\x99e4\xe3\x07\x82\
+\xf8\xcf~\x0d\x1f\x9d\xae\xc2\xcd\x10\x03\xc7W\xbf\xf9\x81\
+ \x010Q\xc3yz\x7f\x96\xd1\x88\x1f\x08\x12\x047\
+\xc8\x05\xc9\xb7\x98e4\xe1\x07\x82\x04\xc1\xaa\xc2rC\
+\x9ap3\xc4\x84\x1f\x08\x12\x08\xcfj8\xc8\x1a\xc52\
+\x1a\xf0\x03A\x02!\xe3<n\x86\xb8\xe9\x07\x82\x04\xc3\
+\xb48\xb9!w\xb0\x8c\x81\xf9q\x81\x87 \xc1\xd2E\
+\xc3\xcd\x90\xe9,c\xe0~ H@l.!7\xa4\
+\xfaA\xd61h?\x10$(^\xd6p\x9e>\x90e\
+\x0c\xda\x0f\x04\x09\x8a\xac\x0b\xe5\x82\x14X\xc2:\x06\xec\
+\x07\x82\x04\xc6\xf7\x09rC.g\x19\x03\xf6\x03A\x82\
+\xa3\x87\x86\x83\xac\xf7Y\xc6`\xfd@\x90\xe0\xd8QV\
+.H\xe9m\xacc\xa0~ H\x80\x8c\xd2\xf0\x13r\
+7\xcb\x18\xa8\x1f\x08\x12$M\xe5\x82\xc4\xcf`\x19\x83\
+\xf4\x03A\x82dQ^\xf9\xf7\xd3\xc7\xb0\x8c~\xb1\xe5\
+|\x0fA\xcc\xd2G\xba\x89\xdc\x90\xfd,b\x90\xbf\x1f\
+\x08\x12,{+I\xf4\xa83\x82\x8f!\x04\xed\x07\x82\
+\x04\xcb\xa7\xeaOb\xb5\xe6Q,\x03~ H\xc0\x5c\
+\xad\xa6Gb\xe7\xf9\xac\x9d\x09?\x10$`V\x16R\
+\xd0\xa3P\xcaJV\xce_?\xeaz\x08b\x07\x03r\
+\xff\xa6T\xeaf\x96\xcd\x94\x1f\x08\x124\x07\xce\xc9\xe5\
+\xa7\xa0\x87\xeca\xd1\xcc\xf9\x81 \x81\xf3\xaf\xdc\xbc\x5c\
+x\xee\x88\x0cV\xcc\xa4\x1f\x08\x12<\x1dOZ\x8fF\
+\x13\xd8\xca\xc4\xb0\x1f\x08\x12<\xeb\x8b\x9f\xdcC%\xad\
+y\xaa\xc4\xbc\x1f\x08b\x80\xa1'\xf3\xd5\x9c\xce\x0bX\
+(\x0b\xfc@\x10\x03d\xd5;\x91\x1e\x85S~e\x99\
+\xac\xf0\x03AL\xf0\xdd\xf1_.,\x99\xba\x855\xb2\
+\xc4\x0f\x041\xc2\x9d\xc7\xe9H%\xae\xeb\x06\xc6\xd6\x13\
+\xfa\x81 f\x1aS*\xa7~\x9c\xc7u]\xab\xfc@\
+\x103\xbc\xc5u]7\xfc@\x103d7\xf9\xb3\xeb\
+\xba_\xb30\xb6\xf9\x81 \x86\x98\x9f\xf8\x87\xeb\xba\x8b\
+X\x15\xfb\xfc@\x10S\xf4\xfc\xaf6\x14IY\xcd\x92\
+\xd8\xe8\x07\x82\x98b\xcf\x19G\x9bP*u+\x0b\x12\
+\xb0\x1fu<\x04\xb1\x9b\xb1GZ\x90<d/\xaba\
+\xab\x1f\x08b\x8e\xab~o@\xad\x11\x99,\x85\xbd~\
+ \x889\x96\xe4?t]\x97u\xb0\xda\x0f\x041\xc8\
+\x80\xf6\xb3Y\x04\x03l\xca\xcd\x07\xf1X.\xe0\xf7\x03\
+A\x00\x94\xfc@\x10\xc0\x0f\x04\x01P\xf3\x03A\x00?\
+\x10\x04@\xcd\x0f\x04\x01\xfc@\x10\x80XlcM\x0f\
+A\x00t\xfa\x81 \x80\x1f\x08\x02\xf8q\xae\x87 \x00\
+\x9a\xfd@\x10\xc0\x0f\x04\x01\xfc@\x10\x00\xed~ \x08\
+\xe0\x07\x82\x00~ \x08\x80v?\x10\x04\xf0\x03A\x00\
+?\x10\x04@\xbb\x1f\x08\x02\xf8\x81 \x80\x1f\x08\x02\xa0\
+\xdd\x0f\x04\x01\xfc@\x10\xc0\x0f\x04\x01\xd0\xee\x07\x82\x00\
+~ \x08\xe0\x07\x82\x00h\xf7\x03A |l\xd0\xe7\
+\x07\x82@\xf8\xfc\xa8\xe1!\x08@\x10~ \x08\xe0\x07\
+\x82\x00~ \x08\x80v?\x10\x04\xf0\x03A\x00?\x10\
+\x04\xf0\xc3C\x10\x80\x00\xfd@\x10\xc0\x0f\x04\x01\xfc@\
+\x10\xc0\x0f\x04\x01\x08\xd2\x0f\x04\x01\xfc@\x10\xc0\x0f\x04\
+\x81\xc8\xfaQ\xddC\x10\x00\x03~\xfc?\xf8\x1a\xb7\x9e\
+cx\x86\x0f\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x02\xbb\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00v\x08\x03\x00\x00\x007+k\xfd\
+\x00\x00\x003PLTE\x00\x00\x00A\xcdRP\xca\
+NA\xcdRA\xcdRF\xccPH\xcbPB\xccQ\
+I\xcbPD\xccQE\xccQJ\xcbOE\xccQD\
+\xccQD\xccQC\xccQA\xcdRz\x18s\xcb\x00\
+\x00\x00\x10tRNS\x00\x186Oc\x9d\xab\xae\xb8\
+\xbd\xc9\xcd\xd6\xdf\xe9\xf0\xb8\x82#\xe9\x00\x00\x02'I\
+DATh\xde\xc5\xda[v\x830\x0c\x04PT\xd3\
+\x90\x07\xa5\xda\xffj\xfb\x91\xa4!`\x9f\x18i\xa4\xd1\
+\x06\xe6\xf2\x01#\xc0\xc3\x101E\x17\x19\x98ST\x97\
+\x22\x5c\x80\xea(d\x00Sp\x07\x10\x05\x0f\x00O\xf0\
+\x04\xe8$d\x00K\xf0\x02\x90\x04+\x00G\xb0\x06\xe8\
+U\xc8\x00\x86\xe0\x1d@\x10l\x00:\x0b\x19\x90^\x8e\
+;@\xb6`\x0fH\xae\xe7\x0a \xb7\x18\xaa\x80LA\
+\x1d\x90(h\x00\xf2\x04-\x00\xa4\x18\xa4|\x9eQ\x03\
+\x05\xdf\xea\x1a\xbf\xe0\xacd\x81\x17\xe0\xae&7\xc0+\
+\xf0\x03\x9c\x02\x00\xc0W\xcf\x08\x80\xab\x1c!\x00\x8f\x00\
+\x03p\x08@\x00\xfd\xb5.\x08(\x80\xb9\x9ap\x00\xa3\
+\x00\x08\xb0\x09\x90\x00S1@\x01:\xb1\x01\xda\xbf\x86\
+\xdc\x84\x09\x90Q\xb5\x10\x012j\x10`\xec\xcf\x8f\x00\
+t\xbe.\xdd\xf3\x03\x00\x9d} \x93\xc6\x00\x0e\xe6\xc3\
+\x01\xf3\xc1|4\xa0s/\x93\x8b\xc6\x00z\xf3\xaf\x1a\
+\x030\xe4C\x01\x93!\x1f\x09\xe8\xcd\xff\xd1\x18@o\
+\xfe\xa21\x00c>\x0c\xd0\xb7\x06I\xd9\xe6\xa3\x00\xe3\
+\x91\xc7\x7f\x0d\xf0u\xfe<sD\xfe\x13\xd03%\x22\
+\x1f\x018V\xbfx\xc0\xd1\xfaC\x03\x9c\xf9n\xc0\xec\
+\xcc\xf7\x02\x8e\xd7\xef\xee\x0a:\xee\xbf\x93\xb4\x00\x96\xfa\
+\xb3Li\x00\xb2\xf2[\x80)+\xbf\x01\xb0\xd5/\x0e\
+`\xad?\x14 3\xbf\x060\xd7/\x08\xe0\xa9\x1f\x04\
+ 9\x7f\x07\xc8\xce\xdf\x00|\xf5\xeb\x07x\xeb\xcf\x0b\
+`\xe4\xaf\x013#\x7f\x05\xe8\xfd+q\xd1\x18@\xf7\
+_\x11\x8d\x00\xc8\xed\xd4\xfd\x09t\x89\x00\x1c\x19Y\xc8\
+\x00\xb0\xc0\x00@\xac!>\x00T`\x02 \x056\x00\
+P`\x04\xe0\x9e\x87V\x00L`\x06\xa0\x04v\x00H\
+\xe0\x00`\xf6\x12\x0f\x00\x22p\x01\x10\x02\x1f\x00\xf0v\
+\xe0\x04\xb8\xab\x09pj\xaf-\x18;N0!\x8ej\
+5\x05eH\x9aV1\xa4\x01Z\x82<@C\x90\x08\
+\xa8\x0b2\x01\xd5bH\x05\xd4\x04\xb9\x80\x8a \x19\xb0\
+\x17d\x03v\xd5\x94\x0e\xd8\x0a\xf2\x01\x1b\x01\x01\xf0^\
+\xcf\x0c\xc0[5q\x00+\x01\x09\xf0\x12\xb0\x00\xff\xc5\
+@\x03<\x05<\xc0C@\x04\xdc\x05L\xc0 \x13\x19\
+0\xc8\x14\x04\xf8\x03L-q\xaa\x9e\xb6\xb9\xda\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x02\xf6\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x9e\x00\x00\x00\x9d\x04\x03\x00\x00\x00\xb7?\xdc\xe6\
+\x00\x00\x00$PLTE\x00\x00\x00\xff\xff\xffA\xcd\
+RA\xcdRA\xcdRH\xcbPB\xccQE\xccQ\
+J\xcbOD\xccQC\xccQA\xcdRE\xef\x01u\
+\x00\x00\x00\x0btRNS\x00\x00\x18Oc\xab\xae\xc9\
+\xd7\xe9\xf0\xc1\xad8\xf5\x00\x00\x02vIDATh\
+\xde\xcd\xda\xdbM\xc40\x10\x85\xe1\x15i\x00:\x88D\
+\x07\xc0\xdb\xbem))!=\xd0\xc0\xd6\xb2J\xb4\xeb\
+\xe6x\x08\xb98\xbe\x8dg\xfe\x07\xa7\x80OG \x0e\
+\xe3\xb1/\x17\xc1\xd7=\xfb\x0b\xf9u\xee\x0e{\xaf/\
+\xd6s\x8f\x9e\xf5\xdc\x0d\xf6\xc8\x80\x9ds\xce\x0d\xb07\
+\xf5\xac\x07\x06\x5c<.\xe0\xe2\xb9\x11\xf6\xe6\x9e\xf5\xb0\
+\x80\xabG\x05\x5c=\xaa\x166\x0f\xea\xad\xcd\x83\x02\xee\
+\x1e\xd3[\xbb\xc7\xd4\xc2\xc1Cz\xeb\xe8\x11\x01\x8f\x1e\
+Q\x0b\x9e\x07\xd4\x82\xe7\x01\x01}\xcf\x1e\xd0\xf7\xec\xb5\
+p\xf2\xcc\xb5p\xf2\xcc\x01\xcf\x9e5\xe0\xd9\xb3\xd6B\
+\xe0\x19{+\xf0\x8c\x01C\xcf\xd6[\xa1g\xab\x85\x88\
+g\xea\xad\x98g\x09\x18\xf3,\xb5\x10\xf5\x0c\xb5\x10\xf5\
+\x0c\x01\xe3\x9e>`\xdc\xd3\xd7B\xc2S\xd7B\xc2S\
+\x07Ly\xda\x80)O[\x0bI/\xd2[\x9f\xdf\xe5\
+\xef\xc7\xc9\x03^\x9d\xe5\x0b{\xcb\xe6\x85\xb5`\xf4\x82\
+\xde\xb2z\xe7\x80V\xef\x5c\x0bf\xefT\x0bf\xef\x14\
+\xd0\xee\xf9\x01\xed\x9e_\x0b\x80\xe7\xd5\x02\xe0y\x01\x09\
+\xef\x18\x90\xf0\x8e\xb5\x80x\x87\xdeB\xbcC@\xc6\xdb\
+{\x8b\xf1\xf6Z\x80\xbc\xad\xb7(o\x0dHyk-\
+`\xde\x7f-`\xde\x7f@\xce[\x02r\xdeR\x0b\xa0\
+7\xf7\xac\xe7F\xd8\x9b{\xd6sw\xd8{\xf6\xac\xe7\
+\xee\xb0\xf7\x82=\x07{\xcf\xb6\x7f~3\xfc\xfb\x1d\xdb\
+\xfe\xfb\x80\xff~'\xb8_\x86\xb6\xfb\x19\xfe\xff\xf1\x80\
+\xff\xbf\xdd\x9a\x9e\x0f\xb6\x01\xebJ\x15\x01\xea\xed\x03j\
+\x93\xf3\xe9\x0c\xcf\xcfc\xdb\xe7\x0f\xf8|4\xc1\xe7\xb7\
+\xa1\xed\xf3/|>\x7f\xc0\xfb\x83[\xd3\xfb\x97`\x81\
+u\xa5\x8a\x00\xf1\xc2\x05 \xbd\xff3\xed'\x95\x0b\xd4\
+N\xb4\xc9io\xbf\x0b\xef\x9f'x?>\xb0\xfb{\
+\xfa~!\x1e\xef#\xff\xbd'\xbd\xc4\x05\x92\xdaK\x5c\
+pi\xbd\xd4\xfd\x96\xd2K^\x10*\xbdd\x11\xe8\xbc\
+\xf4\x05\xab\xceK\xf7\x94\xca\xcb\x14\x81\xca\xcb\x14\x81\xc6\
+\xcb\xf5\x94\xc6\xcb\xf5\x94\xc2\xcb\x16\x81\xc2\xcb\xf6T\xbd\
+\x97\xef\xa9z/_\xa3\xd5^\xe1\xa2\xbb\xda+\x5c\xc4\
+\xd7z\xa5{\xf8J\xaf\xf8\x90\xa1\xd2+\x0e,u^\
+\xf9!H\x9dW\x9e\xa7\xaa<\xc1\xc0R\xe5\x09\x06\x96\
+\x1aO2O\xd5x\x92y\xaa\xc2\x13\x0d,\x15\x9eh\
+\x9e\x92{\xb2yJ\xee\xc9\xc6=\xb1'|\x90#\xf6\
+\x84\x0f\x86\xa4\x9e\xf4\xbd\x90\xd0\x13?\xb8\x12z\xe2\x83\
+\x95\xcc\x93?X\x93y\xf2s\x9f\xc4{\xfb\x15\xc7\xfb\
+\x03\xfd\xb9\xba%(\xb7\xb7:\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x02c\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00w\x00\x00\x00w\x04\x03\x00\x00\x00\xcb\x17\xc2\xb9\
+\x00\x00\x00'PLTE\x00\x00\x00\xff\xff\xffA\xcd\
+RA\xcdRA\xcdRB\xccQD\xccQE\xccQ\
+E\xccQD\xccQD\xccQC\xccQA\xcdR\xeb\
+\xfeC\xda\x00\x00\x00\x0ctRNS\x00\x00\x18Oc\
+\xae\xbd\xc9\xd6\xdf\xe9\xf0v\x89\xbe\xf7\x00\x00\x01\xdfI\
+DATX\xc3\xc5\xd8\xbbm\xc30\x14\x05P\xc1Z\
+ \xd9\x80e\x902I\xe9\x22\xd0\x08\x9c\xc4\xf0H\xd2\
+\x22)(\x07R\xdeP)\xa2\x0fI\x89|\x9f[\x84\
+\xfd\xc1\x05l]>\x92MS^\xed\xb7k\xcc\xab\xa5\
+\x1e\xc1\xb3\x030\x10\xdd\x12\xfd\xbc\x01\x98\x82\x030u\
+\x08\xb6F\xb7DD\xe4\x11<:\x00\x1b\xa3\x17l\x8b\
+^0\xdd\x11l\xea\xc7\x8aM\xd1\x1b\xb6Do\xd8\xd2\
+\x8f\x1d\x1b\xaa\xb9cCt\x84\xf5\xd5\x8c\xb0\xbe\x1f1\
+VW3\xc1\xda\xe8\x04k\xfb\x91be?R\xac\x8c\
+\xce\xb0.:\xc3\xba~\xe4X\xd5\x8f\x1c\xab\xa2\x0fX\
+\x13}\xc0\x9a~\x1c\xb1\xa2\x9aG\x9cG_\xde\x8b\xeb\
+\xe3\x88\xb3j\xbe\x92j\xa5\xfd\xb8\xeapZM-N\
+\xa2\xb58\xe9\x87\x1a\xc7\xfdP\xe38Z\x8f\xa3h=\
+\x8e\xfaa\xc0{?\x0cx\x8f\xb6\xe0-\xda\x82\xb7~\
+\x98\xf0ZM\x13^\xa3mx\xa9\xa6\x0d/\xfd0\xe2\
+\xbfjZqp\x00&\x8f\xe0\xd1\x01\x98<\x82G\x07\
+`\xba!\xf8\xeb\xdf\xf0'\x80\x03\xf2\x83u\xc0_5\
+\x00\x1f\xc9\x8c|\xdb=\xd0\xaa\x09\xe9\xf3\x1d\xd8I\x96\
+\xcd\xf7\x0a\x04\xdb\xf0\x03\xd9z=\xb0\xe9\x8f\xc8\xb8\xf1\
+\xc0\xa0\x0b\xc8\x88\xed\x80\xe1\x1e\x90cE\x07\x1ch\x06\
+\xe0(5#'\xc0\x1e8{N\xc9\xa9\xf7\xc5z\x06\
+\xd3\x1f\xd6\xe5W\x94\x96\x0b\xd6\xe1\x07rA\xf1\xc0\xd5\
+hD.e\x1e\xb8\x0e\x06\xe4\x22z|sx.\xad\
+\xa7\x1c\x9f\x04\xcb\xf1\xc9c\x87\x18\x0f\xce\x8eO/\xb0\
+R|zu\x16\xe2\xc9\x01\xf8\xbc\x112\x5c\xa8\xa2\x0c\
+\x17\xaa(\xc2\xa5*\x8ap\xa9\x11\x12\x5c\xac\xa2\x04\x17\
+\xab(\xc0\xe5*\x0ap\xf9\xf9\x8f\xc7\x95=\x80\xc7\x95\
+wG\x16\x0f\xce\x8e\xaboI\x1c\xae\xbeb1xr\
+\x00\xae\x0f\xa7:f\xa6b\x1d3S\xb1\x8a\xb9\xa9X\
+\xc5\xdcp\xaaav*V\xf0\x85{\x8b\xff\x05\xc8d\
+f\xae\xfe\xc1\x88\xef\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x1cV\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x02X\x00\x00\x01\xad\x08\x03\x00\x00\x00\xfd\x0f\xfa\xd9\
+\x00\x00\x00\x09pHYs\x00\x00'\x8b\x00\x00'\x8b\
+\x01q}\xe4H\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00\x03\x00PL\
+TE\x00\x00\x00\x00\xff\xff\x00\xff\x80U\xff\xaa@\xbf\
+\x803\xcc\x99+\xd5\x80$\xdb\x92 \xdf\x809\xe3\x8e\
+3\xe6\x80.\xe8\x8b+\xd5\x80'\xd8\x89$\xdb\x803\
+\xdd\x880\xdf\x80-\xe1\x87+\xe3\x80(\xe4\x86&\xd9\
+\x801\xdb\x86.\xdc\x80,\xde\x85+\xdf\x8a)\xe0\x85\
+'\xe2\x89/\xe3\x84.\xdb\x89,\xdc\x84+\xdd\x88)\
+\xde\x840\xdf\x87.\xe0\x83-\xe1\x87,\xdb\x83+\xdc\
+\x87)\xdd\x83/\xdd\x86.\xde\x83-\xdf\x86,\xe0\x83\
++\xe1\x86*\xdb\x82.\xdc\x85-\xdd\x82,\xde\x85+\
+\xde\x88+\xdf\x85*\xe0\x87.\xe0\x85-\xdc\x87,\xdd\
+\x84+\xdd\x87+\xde\x84*\xdf\x86.\xdf\x84-\xe0\x86\
+,\xdc\x84+\xdc\x86+\xdd\x84.\xde\x86-\xde\x84-\
+\xdf\x86,\xdf\x83+\xe0\x85+\xdc\x83.\xdd\x85-\xdd\
+\x83,\xde\x85,\xde\x87+\xdf\x85+\xdf\x87-\xe0\x85\
+-\xdd\x86,\xdd\x85,\xdd\x86+\xde\x84+\xde\x86-\
+\xdf\x84-\xdf\x86,\xe0\x84,\xdd\x86+\xdd\x84+\xde\
+\x86-\xde\x84,\xde\x85,\xdf\x84+\xdf\x85+\xdd\x84\
+-\xdd\x85-\xdd\x84,\xde\x85,\xde\x86+\xde\x85+\
+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\xde\x86+\xde\
+\x85+\xde\x86-\xdf\x85-\xdf\x86,\xdf\x84,\xdd\x86\
++\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xdf\x84,\
+\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x85,\xde\
+\x84,\xde\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85\
+,\xde\x86,\xde\x85+\xde\x86-\xde\x85-\xdf\x86,\
+\xdf\x85,\xdd\x85+\xdd\x84+\xde\x85-\xde\x84,\xde\
+\x85,\xde\x84,\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84\
+,\xde\x85,\xde\x84,\xde\x85+\xde\x86+\xdf\x85-\
+\xdd\x86,\xdd\x85,\xde\x86,\xde\x85+\xde\x86-\xde\
+\x85,\xde\x85,\xdf\x85,\xdd\x85,\xdd\x85+\xde\x85\
+-\xde\x84,\xde\x85,\xde\x84,\xdf\x85,\xdf\x84+\
+\xdd\x85-\xde\x84,\xde\x85,\xde\x84,\xde\x85,\xde\
+\x86+\xdf\x85-\xdf\x86,\xdd\x85,\xde\x86,\xde\x85\
+,\xde\x86-\xde\x85,\xde\x85,\xdf\x85,\xdd\x85,\
+\xdd\x85+\xde\x85-\xde\x85,\xde\x85,\xde\x84,\xde\
+\x85,\xdf\x84+\xdd\x85-\xde\x84,\xde\x85,\xde\x84\
+,\xde\x85,\xde\x86+\xde\x85-\xdf\x86,\xdd\x85,\
+\xde\x86,\xde\x85,\xde\x85+\xde\x85,\xde\x85,\xde\
+\x85,\xdf\x85,\xde\x85,\xde\x85-\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xdf\x85,\xdd\x85-\xde\x84,\
+\xde\x85,\xde\x84,\xde\x85,\xde\x86,\xde\x85-\xdf\
+\x86,\xdd\x85,\xde\x85,\xde\x85,\xde\x85+\xde\x85\
+,\xde\x85,\xde\x85,\xdf\x85,\xde\x85,\xde\x85+\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xdd\
+\x85-\xde\x85,\xde\x85,\xde\x84,\xde\x85,\xde\x86\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85\xf8\xdf\x16\xb8\x00\x00\x00\xfftRNS\x00\x01\
+\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\
+\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\
+\x22#$%&'()*+,-./01\
+23456789:;<=>?@A\
+BCDEFGHIJKLMNOPQ\
+RSTUVWXYZ[\x5c]^_`a\
+bcdefghijklmnopq\
+rstuvwxyz{|}~\x7f\x80\x81\
+\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\
+\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\
+\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\
+\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\
+\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\
+\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\
+\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\
+\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xeb\x08\xd9\
+5\x00\x00\x17\xccIDATx\xda\xed\xdd{\x9cM\
+\xe5\xfe\x07\xf0\xb5gh\x90\xeb\xb8D\xe4\xb8F\xb9\x95\
+q\x8b\x944'\xe4\x1aM\xa1\xa2NE\xc2\xe8\xa2\xa6\
+R\x19Q8(\xa4N\xa3\x9bD\x0e\x91J9\x95\xe6\
+\xd0\xa9\x8e\x5c\x0e\xe1'\x84\xdc\xefL\x0d&\xc3\xcc\xec\
+9\xbf\xdf\xef\x9c\x84\xb9\xec\xfdYk}\xd7\xf7Y3\
+\x9f\xcf\xdf^\xf3|\xd7\xf7y\xdb{\xed\xb5\x9e\xf5,\
+\xcbr\x9eJ\xff\x93\xcd0\xe7\x87\xae\x18CaU\xda\
+\xc0.2\xee\xc3\xa2+F\x02\x16]1\x12\xb0\xe8\x8a\
+\x91\x80EW\x8c\x04,\xbab$`\xd1\x15#\x01\x8b\
+\xae\x18\x09Xt\xc5H\xc0\xa2+F\x02\x16]1\x12\
+\xb0*\xd2\x15#\x00\xab\xe2zv\x8eq\x1f\x16]1\
+\x12\xb0\xe8\x8a\x91\x80EW\x8c\x04,\xbab$`\xd1\
+\x15#\x01\x8b\xae\x18\x09Xt\xc5H\xc0\xa2+F\x02\
+\x16]1\x12\xb0\xe8\x8a\x91\x80EW\x8c\x04,\xbab\
+$`\xd1\x15#\x01\x8b\xae\x18\x09X\x15\xd7\xb1U\x8c\
+\xfb\xb0\xe8\x8a\x91\x80Un5\x1b\xc5\xb8\x0f\x8b\xae\x18\
+\x09Xt\xc5H\xc0\xa2+F\x02\x16]1\x12\xb0\xe8\
+\x8a\x91\x80EW\x8c\x04,\xbab$`\xd1\x15#\x01\
+\x8b\xae\x18\x09X\xe5V\xb1=\x8c\xfb\xb0\xe8\x8a\x91\x80\
+U\x96\xae\x18\x01Xt\xc5H\xc0\xa2+F\x02\x16]\
+1\x12\xb0\xe8\x8a\x91\x80EW\x8c\x04,\xbab$`\
+\xd1\x15#\x01\x8b\xae\x18\x09XeW\xb2'\x8c\xfb\xb0\
+\xe8\x8a\x91\x80EW\x8c\x04,\xbab$`\xd1\x15#\
+\x01\x8b\xae\x18\x09Xt\xc5H\xc0\xa2+F\x02\x16]\
+1\x12\xb0\xe8\x8a\x91\x80EW\x8c\x04\xac\xb2+\xd8\x08\
+\xc6}Xt\xc5H\xc0*\xc0\xcfy\xa5\xa6\xa4\x1c\xdb\
+\xfe\x7f9\x90\x92\x92\x92\xc9\xd9\xf6\x14V\xc1r\x95\xb6\
+\xf5\xeb\xb9\x93\x13\xfa\xdfrcL\x9dJ\xc5.\xb8\xc3\
+\x1eQ\xaef\x93\xb6\x9d\xfb\xc4\xbf0\xe3o\xeb\x0fr\
+\xea\x85a\x15\x94\xf5W\xc7V\xcc\x1a\xd9\xb7y\xb9\xb0\
+\xf7\xad/Z\xf7\xe6a\xd3>\xdf\xce\x8f1)X\x05\
+\xc0\xd5\xce\x85\xcfv\xadf\xd9K\x89V\x0f$\xad:\
+E\x07\xee\xc3\xf2w\xf9\x19\xdf\x8d\xef\x1cm9M\x91\
+\xab\xe2\x17\x1c\xa6\x05\xc2\xfao\xd6\xbc\xd0\xa1\xa4\xe5V\
+\x02\x0d\x06/8A\x0f\x85\x1eV\xe67\xc3.\xb3\xdc\
+N\xb1\xd8){H\xa2\x10\xc3\xca\xfc\xa4wiK&\
+\x81f\x93\x0ePE\xe1\x84\xf5CbuK2\x11\xb1\
+3\xd3\x08\xa3\xb0\xc1J\x7f\xb3\x99%\x9frC\xb7\x92\
+Fa\x82ux\x5cU\xcb\x9bD\xc4.\x22\x8e\xc2\x02\
+k\xeb}\xc5,\x0f\xd3\xf4\xafY\xf4Q\x08`\x1dJ\
+\x88\xb2<N\x83yA\x0a)\xe0\xb0\x8e%\x14\xb7\x14\
+\xd2*\x99D\x0a2\xac\xcc\xa9e,\xa5t\xdfE$\
+\x05\x16\xd6\x9a\x16\x96^J$\x9e&\x93\x02\x09\xeb\x97\
+\xc1\x11\x96j\x1a~C'\x05\x10\xd6\xf2Z\x96v\x02\
+\xc3\xf8\xa1U\xd0`e$FZ\x06\xa4\xd9\x8f\xa4R\
+\xa0`\xedhm\x99\x91R3h\xa5\x00\xc1J\x8e\xb6\
+\x8c\xc9\xe0\x0c\xd7\x0fo[R\xb8\xd9AXnfz\
+Q\xcb\xa0\xfc1\xc5\xed\xe3\x9b\x13\xf6\xd8\x0b\x09\xcb\xc5\
+\x8bW\x09\x96Y\xa9\xb3\x89\xb0\x0a\x00\xac_o\xb6L\
+K\xf4*\xc2\xf2=\xac\xb4X\xcb\xbc\x94\xf9\x96\xb0|\
+\x0e\xebd{\xcb\xc4\x5c\xfc%a\xf9\x1a\xd6/\xad,\
+3Sb\x09a\xf9\x18\xd6\xe9\x1b-SSb9a\
+\xf9\x16VV\x9cen*l!,\xbf\xc2z\xc82\
+9\xb5\x0f\x12\x96?aM\xb2\xccN\xcbS\x84\xe5G\
+XK#\x0d\x87e\x0d ,\x1f\xc2:X\xc52>\
+o\x13\x96\xef`e\x5cg\xbe+\xab\xf8Z\xc2\xf2\x1b\
+\xac\x04\xcb\x0f\xa9w\x92\xb0\xfc\x05\xeb\xdb\x08_\xc0\xb2\
+\x86\x12\x96\xaf`\xa5\xd5\xf5\x87++b\x19a\xf9\x09\
+\xd60\xcb/\xa9y\x82\xb0\xfc\x03\xebk\xf7\xbe\x08#\
+\xab\xb6\xbe\xe5\x9eGFOKJzs\xde\xec\xa4\xa4\
+\xa4\x09O\x0d\xeas\xd3\x95\xeem\xd4f\xc5\x13\x96o\
+`\x9d\xae\xe7\xca\xf2\xf4\xb6\x03_N\xde\x95\xc7B\xe2\
+\x94\xb5sF\xf4\xac\xe3\xca\x97\xe1j\xc2\xf2\x0b\xac\x09\
+\x8eg\xbbJ\xff\xd7\xd6\x85\xb1\x11\xf2\xe1\x8f\x9fl\xed\
+\xf82l\x9b a\xf9\x03\xd6\x01\x87\xdb\xf45\x1f\xb3\
+\x06\x98\xeb\xa3\xb3\xfb\x96r6\xde,\xc2\xf2\x07\xac\xbb\
+\x1d\x9dL?\xb3\x19\xff\x0d:\xbb\x93\x93\xcf\xad\xaa'\
+\x08\xcb\x0f\xb0V88so\xff\xb1\xcd\xbd\xacv>\
+\xea`\xbb\x91\xa7\x09\xcb\x0f\xb0\xda\xd9\x9d\xdf@\xcf\xef\
+\x1d\x0c{|b\x05\xdb\x0b\x95\x0f\x11\x96\xf9\xb0\xbe\xb4\
+;\xbd79}v&u\xa4\xdd\x93\xadG\x08\xcb|\
+Xmm\xfe\x0e\x9c\xe7\xc2\xd8\xfb\xfb\xd9\x1b\xbc\xd8^\
+\xc22\x1d\xd6b{\xdf\x82C\x8f\xbb3\xfc\x87\xf6\x16\
+\xeb\x0c%,\xc3a\x05m\xed\xb2]q\xb1k\x05\x1c\
+\xeah\xa7\x80\xa8=\x84e6\xac/\xecL\xebu\xfb\
+\xdc\xa4=\xd6\xce\xa5\x87\xc7\x09\xcblX7\xd9\x98\xd4\
+\xdb\x5c~\x1d\xdc\x87%\xf0\x1aJ\xa7\x12\x96\xc9\xb06\
+\x04\xf09}\xc6\xf5\xbd\xb2WT\xc2\xab\x98BX&\
+\xc3\xb2q\xd1}\x8c@\x19\x9b*\xc3e\xd4\xc8$,\
+sa\x1d\xc0\xdf\x0d\xf0\x82H!\xeb\xca\xc3\x85\xcc'\
+,sa\x8d\xf2\xf6\xa49\xbfoC\xf8=\x05\xb1\x84\
+e,\xac\xac?\xa0\xb3y\xb3\xd8K\xc2\xdfG\xcf\xf6\
+\x02\xdb\x08\xcbTX\x9f\xa1\xae\x9a\x9c\x94+\xe6i\xef\
+nE\x13\x96pz\xa17\x7f7I~|\xa27\xc3\
+\xabf\x12\x96\x99\xb0\x8e\xa0\xa7\xeeo\x88\x96\xb3\x07\xdd\
+\xaa\xf9S\xc22\x13\xd6Dp\x22\xbb\x0b\xd73\x13\xac\
+\xe7V\xc22\x13\xd6\xd5\xd8<\x96\xd8!]\x10\xb8M\
+e\xb1T\xc22\x11\xd66\xf0\x03b\xbcxE\x1b\xc1\
+\xfd\xe5g\x13\x96\x89\xb0\xc6`\xb3X\xf7\x8c|I\xc3\
+\xbc\xf9n&,\xd14\xc4fq\xae\x07%\x1d\xc6\x96\
+\x94F\xfdBX\xe6\xc1\xda\x84\xb9j\xec\xc9\x1b\xc0\x9f\
+\xc0\x8az\x87\xb0\xcc\x83\x05\xde\xceY\xe4IQ\xc7J\
+z\xf1]HX\x92\xc1\x96\x8e^\xe1\xd1{\xe5\xe3\xb1\
++\xb6\xe9\x84e\x1a\xac\x03\xd8\xbd9\xaf^\x1b\xb8\xa3\
+\x08T\xd6\x17\x84e\x1a\xac7\xa1\x09\xbc\xd4\xb3w\xe8\
+\xde\x0a\xd55\x8c\xb0L\x83\xd5\x13\x9a\xc0\x91\x9e\xd5\x85\
+=\xe6X\x9b\xb0\x0c\x83u\x1a\xfaa\x1f\xb9\xd3\xb3\xc2\
+\x82\xd8^G?\x12\x96Y\xb0\x92\xa1\xe9\xeb\xeaae\
+/@\x95\xbdLXf\xc1\xc2V?}\xe8ae\xfb\
+\xa0=Jz\x11\x96Y\xb0\xaeEf\xafl\xba\x97\xa5\
+A\xeb\xb2\xcag\x11\x96I\xb0\xd2\xa0\xa5X\xf7yZ\
+\xdb_\xa0\x0f\xd3\xf5\x84e\x12\xac%\xd0\xe4%{Z\
+\xdb\x11\xe8R\xd6T\xc22\x09\xd6\x08\xe8\xeb&\xd3\xdb\
+\xe2n@\x8a\xeb\x99\xf7\xdf\xc9L\xca#\xf7\x85\xfd\xd7\
+\x07%\xd9\xc8w\x85\x18\x16t\x8a\xd5\xcf\xe3\xe2\xa0\xd7\
+\xdbU\xc8\xfb^S\xba\xa5\x93\xc7\x0a/\xac\xd3\xd0)\
+\xd6|\x8f\xab\xdb\x0cM\xe3V\xc22\x07\xd6\x0ah\xd5\
+\xd3q\xaf\xcb\x83\xde\xbf2\x9b\xb0\xcc\x815\x0d\xe9S\
+{\xcf\xcb\x1b\x82\x94\xf7\x10a\x99\x03\xeb.\xfd\xdd\x1a\
+\xf2\xcb\x07Hym\x08\xcb\x1cX\x97#}Z\xe1y\
+y?#[\xb1\x15?CX\xa6\xc0\xfa\x19Y\x8bU\
+&\xd3\xfb\x02c\x90y\x5cKX\xa6\xc0\x82\xf6\x87\xec\
+\xacP\xe0\xc3\xae<\x9fMX^\x07z)\xd3(\x85\
+\x02\xdfse\xb1\x1fay\x1dhw\xf5\xc5\x0a\x05\xfe\
+\xe8\xca\xafV\xc2\xf2:\xd0\xb3\xf5\x87\x15\x0a\x0c\x22\xfb\
+\x83T ,C`e\x22\xbb\xe7\xd5T)1\x16\x99\
+\xc8\x83\x84e\x06,\xe8Q\xd5\xdbUJ\x84\x1e\x5c]\
+BXf\xc0\x9a\x87ti\xa2J\x89\xef#%\xbeH\
+Xf\xc0JD\xba\xb4L\xa5\xc4\x9dn\xacC$,\
+\x8f\xd3\x17hR\xc4q\x9d\x1a\x91W\x0a\xb4#,3\
+`\xb5\x00\x9aT_\xa9\xc6\x0e@\x8dU\x09\xcb\x0cX\
+\xe5\x80&uW\xaaq(Pc\xe0$a\x99\x00\xeb\
+\x88\x1f\x9a4\xd5\x85\x07*\x08\xcb\xdb\xfc\x13i\xd2t\
+\xa5\x22\xff\x86\x14\xf9\x01a\x99\x00\x0b\xda\x9cx\x99R\
+\x91\xd0\x06\xa9\xe3\x09\xcb\x04X\xcf\x22M\xda\xa7Td\
+\x06\xb2\xcf\xed\x00\xc22\x01V\x7f\xa0G%\x83ZU\
+\x22k\x11;\x11\x96\x09\xb0\x90\xdd\xd4\x9b\xaaU\xd9\x19\
+\xa8\xb2!a\x99\x00\x0by\x06\xa6\xb7Z\x95\x0f!\x8b\
+\x5c\x09\xcb\x04X\xc8\x1b\x98\x9fU\xab\xf2\x15d*\x8f\
+\x13\x96>\xac\xa3H\x8ff\xa8\x95\x09\xbd\xf2n#a\
+\xe9\xc3Z\xe3\xc6\x8a\x14\xf9\xacG\xca\xfc\x9c\xb0\xf4a\
+}\xec\xc25m\xd3\xee\x0f\xbcAX\xfa\xb0^Cz\
+tD\xad\xcc r!k\x0ca\xe9\xc3B\xdeHq\
+QP\xafC\xd5\x80:\x87\x11\x96>,dc\x84\xea\
+\x8a\x1dB\xde\x9c\xd1\x87\xb0\xf4a\xdd\x0e\xb4\xa8\xa5b\
+\x87\xba\x02u\xdeHX\xfa\xb0\x90\xfd\xf2z(v\xe8\
+~\xa0\xce\xc6\x84\xa5\x0f\x0byM\xe1\x03\x8a\x1dz\x06\
+\xa8\xb32a\xe9\xc3\xba\x04hQ\xa2b\x87\x90K\xef\
+Er\xfd\x91\x919.\x8f\xf4\x09\xfb\x0f\xf7\x1bg#\
+\x7f/\x94\xb0\xb2\x90-\x82\x92\x14;\x04m\x92u\x0c\
+\xfa\xd3\xdc5Y ?\xbb\xb04\xd3\x93|\x83\x14\xba\
+\x8d\xb0\xb4a\xedD\xe6+Y\xb1C\x1b\x90B\xd7\x12\
+\x966\xacu\xc8|\xadT\xec\x10\xf4?`\x19ai\
+\xc3\xfa\x072_\x9b\x15;\x94\x82\x14\xfa\x11ai\xc3\
+Z\x84\xcc\xd7~\xc5\x0ee \x85\xce$,mX\xb3\
+\x90\xf9:\xa9\xd9\x22d\xb3\xa5\x97\x09K\x1b\x16ry\
+(2\xa8\xd9\x22\xe4\x82\xdb\x18\xc2\xd2\x865\xd6\xf9Z\
+r\x8f\x82\xac\xcd\x7f\x8c\xb0\xb4a!\xef\xfd\xaa\xae\xda\
+\xa2\xa6@\xa5C\x08K\x1b\xd6\xa3\xc0t5PmQ\
+;\xa0\xd2{\x09K\x1b\xd6\x83\xc0t]\xa3\xda\x22d\
+\xddL_\xc2\xd2\x86u\x0f0]\x1dT[t\x07P\
+iO\xc2\xd2\x86\xd5\x07\x98\xae\x1e\xaa-\x1a\x08T\xda\
+\x89\xb0\xb4a\xf5\x00\xa6+N\xb5E\x83\x81J\xdb\x11\
+\x966\xac\x8e\x8e\x97\x92{\x15\xe4!\xfbV\x84\xa5\x0d\
+\xebz`\xba\xeeRm\xd1p\xa0\xd2&\x84\xa5\x0d\xab\
+\x150]\xf7\xa8\xb6\x08y\x89\xc0\x15\x84\xa5\x0d\xab9\
+0]\x03T[\xf44P\xe9\xe5\x84\xa5\x0d\x0b\xb9\x9e\
+\xfd\xa0j\x8b\x12\x81Jk\x13\x966\xac&\xc0t\xc5\
+\xab\xb6h\x0cPiM\xc2\xd2\x86\x85<\xfd\xf5\x88j\
+\x8b\xc6\x89\xdd\xd5$,\x81\x5c\x09LW\x82j\x8b&\
+\x02\x95V%,mX\xf5\x80\xe9\x1a\xa1\xda\xa2)\x8e\
+\x9fX%,\x0fS\x07\x98\xae\x91\xaa-B\x96$V\
+\x22,mX\xb5\x80\xe9zN\xb5E\xd3\x81J\xcb\x13\
+\x96\x9f`%\xaa\xb6\xe8u\xa0\xd2\x8a\x84\xe5\xa7\xaf\xc2\
+gT[\xf4*Pi\x15\xc2\xf2\xd3\xc9\xfb\x93\xaa-\
+B^\x00V\x8d\xb0\xb4a]\xe1\x97\xfdx\xb2_\x04\
+*\xadAX\xda\xb0\x90\x0b\xa4\x0f\xab\xb6h<Pi\
+\x1d\xc2\xd2\x86\x85\xdc\xd2\x19\xaa\xda\xa2\xe7\x81J\xeb\x11\
+\x966\xac\xab\x81\xe9\x1a\xa4\xda\x22d{\xe7\x06\x84\xa5\
+\x0d\x0b\xd9\x8c\xf8~\xd5\x16!\xefUlLX\xda\xb0\
+Z\x02\xd3u\xb7j\x8b\x9e\x02*mJX\xda\xb0\x90\
+\xa5\xc9w\xaa\xb6\xe81\xa0\xd2\x16\x84\xa5\x0d\xab\x030\
+]\xbdU[\xf4\xb0\xd8\xa3\xb5\x84%\x90[\x80\xe9\xea\
+\xa5\xda\xa2\xa1|\xfc\xcbO\xb0\x90\x07V\xbb\xaa\xb6h\
+\x10Pig\xc2\xd2\x86\x85<b\x7f\x83j\x8b\x90\x97\
+\xa2\xdfFX\xda\xb0\x90MA\x9a\xa9\xb6\xa8\xa7\xd8\x83\
+j\x84%\x10d\x1b\xa3z\xaa-\x8a\xe5\xfeX~\x82\
+\x85<\xadWE\xb5E\xc8\xa3\xb5\x09\x84\xa5\x0d\x0by\
+\xf6\xa5\xa4j\x8b\x90\xc7>\x9e#,mX\xc8\xf2\xb9\
+@\xa6f\x8b.\x03*\x9dDX\xda\xb0f\x03\xd3e\
+\xa5j\xb6\xa8,P\xe8k\x84\xa5\x0d\x0bz\x81\xc0\x1e\
+\xcd\x16\x15\x01\x0a}\x97\xb0\xb4aA\xaf<\xd9\xa8\xd8\
+\xa1_\x91B\x17\x10\x966,\xe8%M\xdf)v\xe8\
+\x10R\xe8R\xc2\xd2\x86\xb5\x03\x99\xaf%\x8a\x1d\xda\x86\
+\x14\xba\x81\xb0\xb4aA/\xd5\x9a\xab\xd8\xa15H\xa1\
+\xfb\x08K\x1bV\x109'\x9e\xac\xd8\xa1\xcf\x10X\xe9\
+\x84\xa5\x0d\x0bz\xf7\x91\xe6\x83\x853\x80:Ke\x13\
+\x96:\xacF>Y\x9b\x8c\xdc\x22\xa8IX\xfa\xb0n\
+\x04&\xac\xa3b\x87\x90\x05\xa4\xcd\x08K\x1fVo`\
+\xc2\xaeR\xecP\x1f\xb9\xff\x00\x84%\x91x\xb1\xfd\xcc\
+\xdc\xcd\x0d@\x9dw\x10\x96>\xac\xd1\xc0\x84Ed\xe8\
+u\x08\xd9d\x22\x9e\xb0\xf4a%!?\xe3\x15\xdf6\
+\x1e\x0d\x94\xf9<a\xe9\xc3\xfa\x04\x81\xb5F\xad\xcc\xf4\
+\x80\xd8=h\xc2\x12\xc9\xf7\x08\xac\xc5je\xeeF\xca\
+\xfc;a\xe9\xc3:\x86\xcc\xd8\xabje~\x87\x94\xb9\
+\x95\xb0\xf4ae_\xec\x8b\x1d\xb2\x90\x05\x89\x81S\x84\
+e\x00\xac\xcb\x81)\xeb\xa2Ve\x22Pe\xc5l\xc2\
+2\x00\x16r\xe9\xfdr\xb5*\xef\x14\xdbk\x86\xb0\x84\
+\x82<a\x5c\xf4\x8cV\x95\xc8\xc3_\xdd\x08\xcb\x04X\
+#\x05O\x8b\xddKy\xa0\xc8\xc1\x84e\x02\xacw\xfd\
+p\xbd\xe1g\xa4\xc8\xb1\x84e\x02\xac\xe5\xc8\x9cMQ\
+*r%R\xe4|\xc22\x01\xd6Qd\xce\x86(\x15\
+\x09=\xfe\xb8\x81\xb0L\x80\x95]\x0e\x98\xb3?*\xd5\
+\xf8\x1cr\xab\xfc\x14a\x19\x01\xab\x85\xe0%\x22\xb7\xd2\
+Wn\xfd(a\x990i\xd6N\x9d\x1a\xebJ\xaes\
+%,\xfd\xaf\x19\xeb}\x95\x12\x7fA\xd66\x0c#,\
+3`}\x80\xc0z\x5c\xa5\xc4/E\xef\x94\x13\x96L\
+\xb6\x22\xb3\xa6\xb3\x0f)\xf2\x88\x8e\x95LXf\xc0\xca\
+B\xd67\x94\xce\xd2(1\x0e\x81\xb5\x97\xb0\xcc\x80\x95\
+\xdd\x1c\x99\xb6M\x1a\x15\xd6\x00\x0a\xac\x90MX\x86\xc0\
+\xfa\x13\x02k\xa6B\x81G\x90\x02;\x10\x96)\xb0^\
+2\xfd\xda;\xb4o\xc3\x93\x84e\x0a\xace\xc8\xbc5\
+R(0Q\xf6\x82\x08a\x09\xe5$\xb2\xe3L\xe0\x80\
+\xf7\x05^\x87\xc0\xdaAX\xa6\xc0\xcan\x8cL\xdc\x1c\
+\xcf\xcbK\x8b\x02\xca\x8b\x0e\x12\x961\xb0\xeeC`\xdd\
+\xebyy\x9f#\xe5\xc5f\x13\x961\xb0\xa6#3w\
+i\xd0\xeb\xf2\x86\x0b\xdf\x1a ,\xa9@;\xdcZ+\
+\xbd.\xaf\xbe\xe4*?\x08\xd6<\xc2\x82\x92Y\x12\x99\
+\xba\xa7=\xae\x0e\xba\xe5\x148,\x09k6aaA\
+^\xe0\x0b\xbe\x22\xde\xe3\xcbl\x0d\xb3%a\xcd ,\
+,c\xa1\xef\xc2\x1f\x0c\xbe\xd80D\x14\xd6\xeb\x84\x85\
+\x05z\xa0\xc2z\xc6\xd3\xdavG\x08\x9fbe\xcf\x0d\
+\xfb\xaf\xbfBXX2J!\x93W\xdb\xd3\xdf\x85\xe3\
+\xa1S\xacC6F\x08\x7fA\xda\x14\xc2\x02\xd3\x11\xfa\
+\xc8\xfa\xd6\xcb\xd2\xae\x96>\xc5\x02^T5\x81\xb0\xc0\
+@+\xe9\xac~\x1eV\xf6/K\xfa\x14\x0b\xb8\xc7\xfd\
+\x02a\x81Y\x0bM_\xf1\xa3\xdeU6\x00\xaa\xecC\
+;C$\x87\xfd\xe7G\x11\x16\x98`5h\xfe&y\
+V\xd8q\xe8\xec\xafx\x9a\x9d1\xbe2\xf6\x12\x9e\xff\
+ae\x0f\x84`U\xf7l\xd7\x99\xa9P]\xddl\x8d\
+\xf1\xcf\xb0\xff\xfe\xa3\x84\x85\xe6ch\x02\xadw\xbc\xfa\
+\xb9\xfa\x07\xa8\xac7m\x0d\xb2*\xec\xbf\x7f7a\xa1\
+I+\x06\xcd`\x03\x8f\x9e\xa9\x80\xb6\xc2\xb1\x22\x0e\xd9\
+\x1a$\xfc\xfd}\xbb\x12\x16\x9cN\xd8G\x967w\xcd\
+2\x1b@E\xb5\xb67\xcaF\xe9\x01\x0a5\xac71\
+X\xb5N{Q\xd4\xdbXQ\xe3\xed\x8d\xf2S\xd8\x03\
+\xd4#,8)\x17a\x93\xe8\xc5K1OU\xc7j\
+\xdal\xf3\xd0\x8d\xdf\x13\xc5\xcf\xb0\xb2\xbb`\x93X\xd6\
+\x83\xd7\x9f\x8c\xc6Jje\xf7\x0b7\xec\x9d!\x22\xb3\
+\x08K\xf8<\xd9\xb2\xe2\xc4+\xda\x82\xfd\xa0\xb0\xa6\xdb\
+\x1d\xa8t\xd8C\xa4\x10\x16~)\xb28(Kz\x9d\
+nV[\xac\x9e\x8bS\xed\x8e\x14\xfe7\xeeV\xc2\xc2\
+\x13\x07\xc2\x8a\xde%[\xcf\xf3`=\xfdm\x8f\x14\xfe\
+SJ_\x11\x16\x9e\xcf\xc0\x89\xb4Z\x88\xfe2\x5cV\
+\x04,\xc7\xfe\xa4\x87\xbf\x94\xf0m\xc2\xb2\xf1\xd5S\x03\
+\x95u\xbf`5\xbb\xab\x80\xc5\xd4\xb1\xbfJ\xac\xab\xa1\
+k\x1c\x0b\x08,\xf4G\xd8\xff\xe69\xb1Z\x8e]\x89\
+\xd62\xd6\xfe`w\x85=\xc8\x1d\x84e#{\xd1/\
+\x1f+0]\xa8\x94\xb4k\xd1RJ9\xf8\xc1\xf6\xb0\
+\xb1\x0f\x92\x14\x0cX\xd9\xdd\xe0\x8f\xac\xc04\x91BR\
+\xdb\xc2\x95\x0cw0\xdc\xa4\xb0G)\x9aNX6\x92\
+l\xe1\x19+P\xc7\xd1\xe6p\x19Q{\x1d\x8c7/\
+\xfcqV\x13\x96\x9d4\xb5!\xeb\x8e_\xdd\xaebs\
+}\xbc\x0aG\xbf#\x80\x87\x94&\x13\x96\x9d\xcc\xb6\x01\
+\xcbj\xbd\xcf\xdd\x22\xe6\x97\xc4k\x88\xd8\xe2\xe8\xe42\
+\xfc\x81\xba\x10\x96\x9d\x80\xeb\xea~\xbbR:\xd7\xc5\x12\
+N\x0c\x08\xd8(\xe1VGcf\x16\x0d\xff7\xc2)\
+\xc2\xb2\x93\x17-[\xe9{\xc8\xad\x02\xbe\xaaeg\xfc\
+\xc8\xf5\xceF\x05\xfe?\xcd%,;9Y\xd9\x9e\xac\
+2/\xb9\xb2\x0a~w\xef\x80\xad\xe1\x07:\x1c\x17\xb8\
+\xb8\xd1\x81\xb0le\xaae3\xf5\xdfs\xbc\xa4\xe4\xc8\
+S%\xec\x8d]\xda\xe9\x07&\xf2:\xa1e\x84e'\
+\xe95,\xdb\xb4f:\xbaw\xb8\x7fxI\xbb#\x8f\
+sz\xd4c\x80\xc1\x9a\xfcJXv\xf2\x96e?\x95\
+\x12\xb6\xdb\x1c5kI\x5cQ\xdb\xc3\xd6t|B\x0d\
+=\xa3\xd4%\x93\xb0\xec\xfcB\xba\xc2\x81,+\xe2\xfa\
+W\xf0]\x95\x83+\x1f\xab\xe1dP\xe7\xfb\xec\xed\x80\
+\xc6\xeb\xfe3a\xd9\xc8\xe7\x96\xb3D\xb6\x1d\xbd\x1c\xf8\
+?}l\xc1\xa0\x1a\xce\x06\xbc\xc9\xf9\xe67\xc1\xd2\xd0\
+\x88\xb5?!,\x1b\xe9i9N\xd9N\xcf.:\x18\
+\xfa\xc3q\xfd[\x83\x9aF:\x1d\xab\xccn\x17\x8e\xb9\
+58h\xdb\xf9\xa7\x08\x0b\xcd\xce\x12\x96+)\xdf\xe6\
+\xde?\xcf\xf9\xfa\xa7\x5cn\xdb\x1e\xdd\xf0\xe9\x1bO\xf4\
+l\x10\xe5\xca0o\xb9q\xcc\x03q\xcf}^^\x9d\
+\xf3\xd02R\x0el\xdf\xb0z\xe9\x92\xf7\xff\x9a4m\
+\x5cb\xc2\x90\x01\xbd\xe3b\x7f\x22\xac\xfff\xb4\xe5j\
+J]\xd6\xf0\xda\xd8\x1eqqw\xc6\xc5\xc5\xdd\x1c\xdb\
+\xacn\xa5(7\xff\xba;\xf7X\xa6\xd9\x1a;P\xa5\
+e\xb7\xb8?\x0d\xb87\xae{l\x9b\x98z\xb5\xca\x97\
+\xcd\xf5_}KX\xbf]rh`\xf9&\xd1\xee<\
+\x85\xb6B\xb0\xc4\xc5\x84\xf5[V\x17\xf5\x0d\xac\xf7\xdc\
+9\xe2\x8c2r%\xce!\xac\xb3\x19\xe5\x17W\x0f\xba\
+u\xc4\x9d\xe5jL\x22\xac\xdf\xff\x03\xb7\xf0\x87\xab6\
+\xae='4Q\xae\xc8\x09\x84\xf5{6\x95\xf4\x83\xab\
+\xcb\x5c[T\x91\xbdF\xae\xca\xa7\x09\xeb\x9c,\x0c\x98\
+\xef\xaa\x98\x8bo\xf5\xc9*/Vf<a\x9d\x9b\x04\
+\xf3a\xcdr\xf3xo\x11+\xb3?a\x9dwY\xfc\
+&\xd3]\x8dq\xf5xg\x88\xd5\xd9\x83\xb0\xce\xcb\xb1\
+\xfaf\xbbz\xd2\xdd\xc3E\xf7\x07\x0b?7\x10\xd6\xf9\
+\xd9}\x99\xc9\xae\x5c?s\xe9$Ui\x0ca]\x90\
+\xad\x97\x98\xeb\xaa\xbf\xeb[\xa0\xcd\x91*\xb5\x0ea\xe5\
+\xb8\x02_\xdaTW}\xdd_lw*Z\xa8\xd6\x8a\
+\x84\x95#\xcb\xa3\xcdt5Xb\x11g\xbcP\xb1Q\
+\x84\x953\x1b\xab\x1a\xc8*\x90(r\xac?E\x0a\xd5\
+\x9bNX9\xb3\xa3\x8eq\xae\xa2\xa4\xf6\x98\xef%T\
+\xf0!\xc2\xca%\xfbcL[(\xf3\x0f\xb1SJ\xa1\
+\xbb\x0d[\x08+\xd7\x93\xda~F\xb9j\xb4Y\xeeP\
+o\x93)y\x15a\xe5\x9e)E\xccq5P\xf2\xa9\
+\xbe-2\x17I\xbf$\xac<\xb2\xb4\x8a!\xac\xca\x08\
+\xef\x9c0B\xa4\xea\x05\x84\x95W\x8e\xden\x84\xab\xe6\
+\xdb\x85\x8f\xf3T]\x89\xb2\xdf&\xac|\xaeK\x1bp\
+E\xab\xc8.\xf1\xc3\x5c)\xf1e8\x99\xb0\xf2\xc9\xbe\
+\x1e\xfa\xb2z\xcb\x1f\xe6K\x02e\x8f\x22\xac|\x93\xdc\
+P]\x96\x07O ?\xe8~\xd5\xc3\x09+\xff\x9c\x99\
+\xa8}\xef\xb0\xb6\xfcN/\x19]\x5c\xaf\xfa~\xc2\x0a\
+\x95\x83\x0f\x15\xd7\x955B\xfe\x18\xd3\xbb\xbb]\xf4m\
+\x84\x15:\x07ti]\xb4\xd1\x83\x0f\xe6\xbb].\xba\
+\x03a\x85E\xeb\x912\x8a\xb2\xae\x0bzp\x88\x13\xdd\
+\xbd\x1d}\x0da\x85\x97\x13I\x8d\xf4d\xbd\xe5\xc5\x11\
+.w\xf5\xd6\xfb\x95\x84\x15\xfe/\xc4^\x17)\xc1*\
+\x7f\xc4\x8b\xe3K\x1d\x18\xe1^\xc9U\x09\x0bH\xca\xf4\
+\xeb#Td\xf5\xf7\xe6\xf8V\xb6t\xad\xe2R\x84\x85\
+e\xcf\x84\x96\x0a\xb6\x02K\xbd9\xba\xe0GM\xdc\xaa\
+8\x93\xb0\xd0\x1c~\xb7\x8f\xe7\xf7z\xea{\xb5\x223\
+\xf8Y'WVh\x95J%,\x1b\xc9\xfcv\xcc\xcd\
+\xde\xfeN|\xce\xbb\x83\xdb\xfalM'\x95F\xd4\xb9\
+u\xd4\xc2\xed\xc1l\xc2\xb2\x99\xacu\xd3\xfa\xd6\x8f\xf4\
+\x0aV\xb1\x1f=<\xb4\xe0\xf2'm\xdd\xca*{\xdd\
+\x90\xe9+N\xaa\xcf\x8c\xcfa\xfd\x7f\xd2VN\x1f\xd2\
+\xb6\x22:\x01\x17\xc7\xe2\xf3\x16\xeb\xf1\x91\xed\x9du\x7f\
+\xe3\xb0\xf7\xa2\xbb\xa8^\xb7\xe1IK\xf7\x192)\x05\
+\x01\xd6\x7fr|\xed\x82??\xd0\xb1\xd1%a\x9c\x9d\
+Tn\xd3o\xd2\x8a\x8c\xec\x0d\xf8\xfe\x81\xb3\xbc?\xae\
+3\xeb\xde}\xbcC\xb5|~\xacDT\x89\xe9:x\
+\xf2\xe2m\x19FMG\xc1\x81u\xf6\xd4k\xff\xdaO\
+\xdf\x9966a\xd0\x9d\xddcccbb\xae\xaaU\
+\xabV\x83\x98\x98\x16\xb1\xb1]\xee\x8a\x1f9\xf9\x9d\x8f\
+\xd7\x9d\xfd\x9e\x18\x0e\xc3\xba$E\xe9\xa82\xf6\xad^\
+\xf4\xfa\xa8\x07o\x8f\xeb\x14\xdb&\xa6Q\xad+c\xda\
+w\x8a\xbb\xe7\x81\x11S\x17.\xdf\x9ba\xe44\x14<\
+X\xc8w(\xfe\x96\xc4\x81\xd9\x0ca\x85\xcc\xfb\xf8\xcf\
+\xadoh\x86\xb0B\x07\xdfZ\xb6\xe1\x19\xa2!\xac\x90\
+\xd9V\x0c\x965\x9eh\x08+t\x12aX%\xb6S\
+\x0da\x85Lz=XVG\xaa!\xac\xd0\xb1\xf12\
+\xbb\xf9dCX\xa1s+\x0c\xab\xca/tCX!\
+\xb3\x07\x7feA<\xdd\x10V\xe8L\xc0/f-g\
+\xd7\x08+d2\xf0uu\x8d3\xd86\xc2\x0a\x99\xaf\
+\xf1Uu\x93\xd95\xc2\x0a\x9d\xfe\xf8\xda\xcc=\xec\x1a\
+a\x85\xccQ\xfcEI=\xd95\xc2\x0a\x9dW\xf1\x8b\
+Y\x1f\xb1k\x84\x152Y\xad`X\xd5O\xb0m\x84\
+\x152\xab\xf1u\xf3\xc3\xd95\xc2\x0a\x9d\xc1\xf86\x7f\
+k\xd85\xc2\x0a\x99T|\x1b\xdd\xe6Yl\x1ba\x85\
+\xccL\xfc\xfc\xfd/\xec\x1aa\x85N{\x18V\xe9}\
+\xec\x1aa\x85\xccF\xfca\xb0\xde\xecZ^YEX\
+g\xf38\xfee\xf8)\xbb\x96{\xd6D\x13\xd6\xd9\xa4\
+\xd5\x80a\xd5\xf9\x95m\xcb\xc3\x15a\xfd\x9e\x05F\xee\
+y\xebSW\x84uN\xf0\x0d\xb1\xbd\xd8\xf3\xd6\x9f\xae\
+\x08\xeb\x9c\xec,\x01\xcbj\x1bd\xdbruEX\xe7\
+f\x94\xa1{\xde\xfa\xd0\x15a\x9d\x9b\xd3\xf8\xc3`\xd1\
+\x87\xd9\xb6\xf3\x5c\xfd\xb6\x04\x89\xad87_\xe0\x1fY\
+w\xb3k\xb9\xb9\x22\xac\xf3\x83\xbfD7\x90\xcc\xae\x9d\
+\xcd\xda\xdf\x97L\xb2\x19\xe7\xe5\x00\xbe\xab\xe9\xe5\xa7\xd8\
+\xb6\x9c\xae\x08\xeb\x82L2z\xcf[\xff\xb8\x22\xac\x0b\
+b\xe3a\xb0\xa8\xcdl[\x0eW\x84ua\xbe\xc1\x1f\
+\x06k\xc7\x8bY9\x5c\x11V\x8e\xdc\x03\xc3j}\x90\
+]\xcb\xfe\xd7\x05/t`G.\xcc\xd1\x0a\x18\xabk\
+\x17\xb1g9>\xaf\x08+\x97\xbc\x86l\xe3\xd0u\x15\
+\x1b\x96\x9b+\xc2\xca\x99\xack\xc2>m\xef\xf7#\xdb\
+\x95\xbb+\xc2\xca%\xeb\x8a\x84\xb74y\xd8~\xf6*\
+/W\x84\x95[\x86\x86\xc1\xaar\x22\xf7_\xcb\xc7\x15\
+a\xe5\x96\xd4KC\xae\x1d\x9d\xc2\xeb\xed\xf9\xba\x22\xac\
+\x5c3+\x7fV133\xd9\xa3\xfc]\x11V\xeei\
+\xcf\xeb\x0b\xce\x5c\x11V\xee\xd9\x12\xc5\xeb\x0b\x8e\x5c\x11\
+V\x1ey\x82\xd7\x17\x1c\xb9\x22\xac<\x92V\x93\xd7\x17\
+B\xe7\xfb\xbc\xb7\xaccs\xf2\xc8B^_\x08\xed*\
+\x9f\xbb_\xecN^\xe9z\xc1\xf5\x85t\xb6\x04pE\
+Xyf\xd7\xc5\xbc\xbe`\xdf\x15a\xe5\x9d\xd1\xbc\xbe\
+`\xdf\x15a\xe5\x9d\xd3\xf5\xffs}a5[\x81\xbb\
+\x22\xac|\xb2\x84\xd7\x17l\xbb\x22\xac\xfc2h\xe4\x11\
+6\xc1\x9e+\xc2bD\x5c\x11\x16#\xe2\x8a\xb0\x18\x11\
+W\x84\xc5\xa0Y\x17\xd6\xd3&\xec\x13#\xe1\x8a\xb0\x18\
+\x11W\x84\xc5\x88\xb8\x22,F\xc4\x15a1\x22\xae\x08\
+\x8b\x09??T\xb6\x08\x8bQuEX\x8c\x88+\xc2\
+bD\x5c\x11\x16#\xe2\x8a\xb0\x18\x11W\x84\xc5\x84\x93\
+M\xa8+\xc2bD\x5c\x11\x16#\xe2\x8a\xb0\x18\x11W\
+\x84\xc5\x88\xb8\x22,F\xc4\x15a1\x22\xae\x08\x8b\x11\
+qEXL\xbe\xae\xaaX\x84\xc5\x18\xe4\x8a\xb0\x18\x11\
+W\x84\xc5\x88\xb8\x22,F\xc4\x15a1\x22\xae\x08\x8b\
+\x11qEXL\xae\xd9\xec\xd0\x15a1\x22\xae\x08\x8b\
+\x11qEX\x8c\x88+\xc2bD\x5c\x11\x16#\xe2\xea\
+\xdfK\xb1\x10m(`\xee\x87\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x01\xdc\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00O\x00\x00\x00O\x04\x03\x00\x00\x00X\x1a\x85\xb5\
+\x00\x00\x000PLTE\x00\x00\x00\xff\xff\xffA\xcd\
+RP\xcaNA\xcdRA\xcdRF\xccPH\xcbP\
+B\xccQI\xcbPE\xccQJ\xcbOE\xccQD\
+\xccQC\xccQA\xcdR\x000]\xbe\x00\x00\x00\x0f\
+tRNS\x00\x00\x186Oc\x9d\xab\xae\xb8\xc9\xcd\
+\xd6\xe9\xf0\xbb\x00_o\x00\x00\x01LIDATH\
+\xc7\xc5\xd6\xbdM\xc4@\x10\x86\xe1+\x01:\x98\x80\x8c\
+\x0aH\x11\xf9\x227@\x09HT\x80\xdc\x05\x11\x92K\
+\xa1\x01$\xebJ\xa0\x00\x12K\xd6\xc9\xd6\x10\x9c\x7f\xd6\
+\xbb\xb3;o\xc6\xc4\x8f>\xe9\xee\xbe\x9d\x9b\xd3)\x9b\
+\xd0\x9f\xd8\x84\xf9\x11B\x1d\x04Bm(d\x91Aa\
+dP\xd5Q \xd4\x96B\x12\x19\x14F^\xe1E \
+\xd4\x8eB?r\x81\xfaE\xe1,\x10jO\xa1W\xb7\
+\x0dz\xdd\xd8\xa1\xd3\x8d\x08\xd6##X\x8f\x8ca\xd4\
+\x8d\xbb\xa7t^\x22\x18u\xe3U\xab\xb3G~\xd6\xe1\
+\x1e\xe9\xc1\xad\x1b\x1e\xdc\xea\xe6\xc25\xd2\x85k\xdd|\
+\xb8\xd4\xcd\x87K\xdd\x00\xbcF\x02\xa8?\x02\xa16\x14\
+\x0e\x02\xa16\x14\x8e\x02\xa1\xbeS\xf8\xfb\x7f\xf0\x19\xc2\
+3\xfc\xd43\xfd\xc2{\xf8\x13N\xb4\x14\x1d\xac\xd9\x85\
+\xf6\xb1\x83\x0d\x1f\xe9\x9bi\xe1+\x1c\xe9\xbbn\xe1\xa6\
+\x18\xe8\xee\xd9v\xee\xc3G:\xdff\xa0\xb3\x9a\xabK\
+<\x1c\xeb\xb5\xcem:7!\xdbO>\x8c\xff\x0dk\
+p\x12\x08\x0fG@\x05\x1eo\x80\x0a<^\x15e\x98\
+\x9c>e\x98\x5c>E\x98\xdeRE\x98\x9eR%\x98\
+\xb5\xa1\x04\xb36\x14`^\xaf\x02\xcc\xebe\xc3\xb30\
+h][&\xb4\x8e-\x0bN\x02\xa1yc\x1a\xd0>\
+1sx\xfff\xb9?\x9e\xd1\xe7wR\xc2\xd3\xb8\x00\
+\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x13H\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x01\x90\x00\x00\x01\x1e\x08\x03\x00\x00\x00\x93\xdb\xb3V\
+\x00\x00\x00\x09pHYs\x00\x00\x1a]\x00\x00\x1a]\
+\x01\x87\x7f\xcb\xb2\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00\x02\xfdPL\
+TE\x00\x00\x00\x00\xff\xff\x00\xff\x80U\xff\xaa@\xbf\
+\x803\xcc\x99+\xd5\x80$\xdb\x92 \xdf\x809\xe3\x8e\
+3\xe6\x80.\xe8\x8b+\xd5\x80'\xd8\x89$\xdb\x803\
+\xdd\x880\xdf\x80-\xe1\x87+\xe3\x80(\xe4\x86&\xd9\
+\x801\xdb\x86.\xdc\x80,\xde\x85+\xdf\x8a)\xe0\x85\
+'\xe2\x89/\xe3\x84.\xdb\x89,\xdc\x84+\xdd\x88)\
+\xde\x840\xdf\x87.\xe0\x83-\xe1\x87,\xdb\x83+\xdc\
+\x87)\xdd\x83/\xdd\x86.\xde\x83-\xdf\x86,\xe0\x83\
++\xe1\x86*\xdb\x82.\xdc\x85-\xdd\x82,\xde\x85+\
+\xde\x88+\xdf\x85*\xe0\x87.\xe0\x85-\xdc\x87,\xdd\
+\x84+\xdd\x87+\xde\x84*\xdf\x86.\xdf\x84-\xe0\x86\
+,\xdc\x84+\xdc\x86+\xdd\x84.\xde\x86-\xde\x84-\
+\xdf\x86,\xdf\x83+\xe0\x85+\xdc\x83.\xdd\x85-\xdd\
+\x83,\xde\x85,\xde\x87+\xdf\x85+\xdf\x87-\xe0\x85\
+-\xdd\x86,\xdd\x85,\xdd\x86+\xde\x84+\xde\x86-\
+\xdf\x84-\xdf\x86,\xe0\x84,\xdd\x86+\xdd\x84+\xde\
+\x86-\xde\x84,\xde\x85,\xdf\x84+\xdf\x85+\xdd\x84\
+-\xdd\x85-\xdd\x84,\xde\x85,\xde\x86+\xde\x85+\
+\xdf\x86-\xdd\x86,\xdd\x85,\xde\x86+\xde\x85+\xde\
+\x86-\xdf\x85-\xdf\x86,\xdf\x84,\xdd\x86+\xdd\x84\
++\xde\x85-\xde\x84,\xde\x85,\xdf\x84,\xdf\x85+\
+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x85,\xde\x84,\xde\
+\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\xde\x86\
+,\xde\x85+\xde\x86-\xde\x85-\xdf\x86,\xdf\x85,\
+\xdd\x85+\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xde\
+\x84,\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x85\
+,\xde\x84,\xde\x85+\xde\x86+\xdf\x85-\xdd\x86,\
+\xdd\x85,\xde\x86,\xde\x85+\xde\x86-\xde\x85,\xde\
+\x85,\xdf\x85,\xdd\x85,\xdd\x85+\xde\x85-\xde\x84\
+,\xde\x85,\xde\x84,\xdf\x85,\xdf\x84+\xdd\x85-\
+\xde\x84,\xde\x85,\xde\x84,\xde\x85,\xde\x86+\xdf\
+\x85-\xdf\x86,\xdd\x85,\xde\x86,\xde\x85,\xde\x86\
+-\xde\x85,\xde\x85,\xdf\x85,\xdd\x85,\xdd\x85+\
+\xde\x85-\xde\x85,\xde\x85,\xde\x84,\xde\x85,\xdf\
+\x84+\xdd\x85-\xde\x84,\xde\x85,\xde\x84,\xde\x85\
+,\xde\x86+\xde\x85-\xdf\x86,\xdd\x85,\xde\x86,\
+\xde\x85,\xde\x85+\xde\x85,\xde\x85,\xde\x85,\xdf\
+\x85,\xde\x85,\xde\x85-\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xdf\x85,\xdd\x85-\xde\x84,\xde\x85,\
+\xde\x84,\xde\x85,\xde\x86,\xde\x85-\xdf\x86,\xdd\
+\x85,\xde\x85,\xde\x85,\xde\x85+\xde\x85,\xde\x85\
+,\xde\x85,\xdf\x85,\xde\x85,\xde\x85+\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xdd\x85-\xde\
+\x85,\xde\x85,\xde\x84,\xde\x85,\xde\x86,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\xbf\
+\x5c\xdf:\x00\x00\x00\xfetRNS\x00\x01\x02\x03\x04\
+\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\
+\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\x22#$\
+%&'()*+,-./01234\
+56789:;<=>?@ABCD\
+EFGHIJKLMNOPQRST\
+UVWXYZ[\x5c]^_abcde\
+fghijklmnopqrstu\
+vwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\
+\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\
+\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\
+\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\
+\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\
+\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\
+\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\
+\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\
+\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfeV\xf3|\x8f\x00\x00\x0e\
+\xc2IDATx\xda\xed\xddy|NW\x1a\x07\xf0\
+\x9b}A\x88\x18\xc5\x08\x95\xc6\xbe7(e*\x94Z\
+\x83\xb6t\xaa\x22cmP\x8dA\xd1N-E\x8d)\
+UK-U\xc5\xd8F\xa2C\xec%j,\xa1*v\
+\xad6\xda\xd4:\x12%!MR\x917y\xcfg\x92\
+\x98\x96\x90<\xe7\xde{\xce\xbd\xce\xb9\xf7\xf9\xfd\x9d\xf7\
+<\xf7\x9co\xde\xf7n\xe7\x9e\xab(\x1a\xe2\xfb%\xc1\
+\x18\x1c\xf4\x90\x17\xc4w\x0f\x0e\x97H \xe8!\x16\x08\
+z\x88\x05\x82\x1eb\x81\xa0\x87X \xe8!\x16\x08z\
+\x88\x05\xe2\x83\x1eB\x81\xf8\xc4\xe10\x89\x04\x82\x1eb\
+\x81\xa0\x87X \xe8!\x16\x08z\x88\x05\x82\x1eb\x81\
+\xa0\x87X \xe8!\x16\x08z\x88\x05\x82\x1eb\x81x\
+m\xc3\xc1\x11\x09\x04=\xc4\x02A\x0f\xb1@\xd0C,\
+\x10\xf4\x10\x0b\x04=\xc4\x02A\x0f\xb1@\xd0C,\x10\
+\xf4\x10\x0b\xc4k+\x8e\x89H \xe8!\x16\x08z\x88\
+\x05\xe2\x89\x1eB\x81\xa0\x87X \xe8!\x16\x08z\x88\
+\x05\x82\x1eb\x81\xa0\x87X \xe8!\x16\x08z\x88\x05\
+\x82\x1eb\x81xn\xc1q\x10\x09\x04=\xc4\x02\xf1\xda\
+!\xdcF\xa5\xa7\x15&\xdb\x96 ^\xdb\x85\xd8\x8e\xbc\
+\x0b\xbbWL\x1f\xf9\xf2sM\x82\xfc]\x1f\x98\xacW\
+\xa9V\xb3N\x11\xe3\xe7F\x1fM\xb3\x0d\xc8\xe3\xf7\xb8\
+\x14;\xb9W]/\xda\x83*\x01-\x07\xce?\xf8\x8b\
+\x0d@\x1e\xef\xf7\xe2\xe4\xdc^\x154,\xb7\xe2Zo\
+\xd8\xbf\xae!\x88Q{\x8a\x98~\xe5\x15\x1d\xa9?\xe1\
+p\x1e\x82\xf0\xce\x9d\xf5]=\x15\xdd\xa9\xf8F\x02\x82\
+\xf0\xcc\xe9\xc8r\x0ac\xea\xcf\xbe\x85 |\xe2\x8c\x0b\
+sQ8\xa4\xf4\xd0s\x08\xc2!\xb1\x0d\x14^q\xed\
+\x9f\x84 \x8c\xd9\xd7R\xe1\x19\x8f\xc8\x14\x04aHJ\
+\x84\x8b\xc29\xe5\xe6\xe5\x22\x88\xde\x9d\xc7\x92r\x8a\x01\
+iq\x16At\xe5F\x0f\xc5\x98x\xcfs\x22\x88\xf6\
+\xec\xad\xa2\x18\x96\xb0[\x08\xa25\x8b\xdc\x15\x03S\xfb\
+\xbc\xae\x8d:\xe2_r&Y\x1a\xc41B16\xe5\
+u-\xf2\x1c\x0f\xb4\xf8\x96\x95A\x1c\xfd\x14\xa3\xe3\xb9\
+\x09AT\xe7\xee\x8b\x8a\xf1\xf1\xd8\x80 *\x93\xdbC\
+1#\xee[\x10D]F(\xe6\xc4'\x1eA\xd4d\
+\xaabV*\x9cG\x10z\xb6\xb9\x98\x06\xa24\xc8B\
+\x10Z.\x05(&\xe65\x04\xa1$\xa7\x85bjV\
+ \x08\x9c\xf7\xcc\xf5P\xca^F\x10(gt\xde8\
+/S\xde\xdfK\xdf'\xbb\x22\x08t\x06\x12\xa2\xed\xde\
+F\xcb\xf0)k\x8e$\xa5f\xde\xfbtZrb\xdc\
+\xe21=\xebk\xbb\x0a\xb6\x06AJ\xceb\xf5\xe3X\
+\xaa\xc3\xcc\xf8\x9c\xe2[\xc9\x8c\x1b\xdf\xc6CuC\x95\
+\xd2\x11\xa4\xa4\xa4\xa9\x9d\x04Wv\xe0^\x07\xdcT\xea\
+\xb2PW\x95\x8d\xbd\x8d %%J\xdd\x08\x06\x7f\x9c\
+\xa1\xa6\xb5\xc4a\xbe\xea\xeeW]@\x90\x12NAT\
+\xed\x97\xab/W}S\xfc\xda\x08U\xc7\x08\x83\x10\xa4\
+\xf8\x0cVs\x8d6*SK\x93\xe7\x9fW\xd1\xa6[\
+\x22\x82\x14\x97\x1fU\xec\x88\xeb\x9e\xd6\xd8\xa8s\x8e\x8a\
+/I\x04\x82\x14\x97H\xfa\xc8\xf5\xcd\xd4\xde\xecQ\xfa\
+\xbdy\x8f\xcb\x08\xf2hn\xf8P\x07\xee\x1d]\xb3E\
+.\xd3\xa7>\x8eE\x10=\x17M\xa6\xe9l\xf9\xd6\xd3\
+\xb4\x96\xfdn#\xc8\xc3\xb9[\x896j\x13u\xb7\xfd\
+sMZ\xdb\xf3\x11\xe4\xe1l\xa0\x8dY\x1f\x86\xd9m\
+\xdf\xfbS\x1ao\x88 \x0f\xa73\xed^\xd2\xaf,\xad\
+o\xa6\xdd\xf5J@\x90\xa2\xb9H\xb9\xd0\xe1\xcd8!\
+w\x18\x05$\x12A\x8af\xbaA;\xf4\xdf\x92Q\x95\
+2q.\x07A\x8a\xa4!e\xea'\xf3\xa2\x00\xb4}\
+\xd4v\x04y0\xdfQ\x86+\x9a\xbdD3\xb8\xc2_\
+\x10\xe4\xc1L\xa6\x5c1\xe1\xf0\x5c\xf3\xbf)W\xf4\xb3\
+\x11D\xfd/\xd6Z\x0e%\x9c\x94\x13\xf68\x04y\xe0\
+\xea\x06|T\x1a\xec\xe0Qd\x0d\x0c2\x0aA\xee\x87\
+r\xebv!\x97\x22\x8e\xca`\x91\x9a\x08r?a\xf0\
+9\x08\xa7\xa5}\xc6\xc0\xec\xe7\x11\xe4\xf7\xff\xdd2\xe0\
+H\xfd\x99S\x99\xb30\xc8b\x04\xf9-\x87\xe1\x91\xe2\
+\xb6bZcVw\xbb\x80\xcc\x00\x07\xea\x09\x07\xaf:\
+\xb3\xc1:\x15\x9d\x08\xf2\xfft\x02\x07j8\xbf\x0bf\
+\xf07\xf1\xd1\xa5P\x16\x0d-\x1a\xe8I\xa2\xc6C\xe9\
+q\xc8\x01\x92\x0b\xefB8\xae\xb9Y\x07,\xf4\xe9#\
+\x7f\xdf\x8b\xf3L\xe2l9@N\xc3Ogf\xf0\xab\
+\xf4&Xi(\x82\xdc\xcb\xa7`':p\xac\xb4\x0d\
+\xac\xd4\x04A\xeee\x08\xd8\x89Y\x1c+e\x82S\xf1\
+\xdc2\x11\xa40M\xc0N\x9c\xe6Y*\x14,u\x08\
+A\x0a\x92\x03Ne+\xcdu5\xa5\xf1\xe0x-A\
+\x90\x82\x9c\x01\xfb\xd0\x96k-\xf86\xd5\x08\x04)\xc8\
+Z\xb0\x0f|\xcf\xb7.\x80\xb5\x9eC\x90\x82L\x00\xfb\
+\x10\xc3\xb7\xd8\x1f\xa0Z\xfe\x08R\x90\x9e`\x1f~\xe2\
+[\x0c\x9emt\x1dA\xf2\xd3\x08\xeaB\x00\xe7b\x7f\
+\x03\x07\xec\x08\x82\xe4\x07\xbcp\xd2\x9as\xb1\xd5\xe0\x80\
+\xadG\x10Bn\x82]\x18\xc0\xb9\xda\x11\xb0\xdaL\x04\
+!$\x01\xec\xc2\x0c\xce\xd5\xd24\xcd_\xb4%H\x0c\
+\xd8\x85\xcfy\x97\x03_\xb0\xd0\x09A\x08\xf9\x00\xec\xc2\
+\x19\xde\xe5\x9e\x81\xaa\xd5B\x10\xca4h\x97_y\x97\
+\x0b\x87\xcay\xe5!\x08\xe9\x02\xf5\xa0\x0a\xf7r\xf0\x1c\
+\xc9\xab\x08B\xeaB=\x08\xe1^n\x098b\xf1\x08\
+B\xfc\xa0\x1et\xe7^.V\xcb1\x84\x1dAr\xc0\
+Y\xa4C\xb8w\x00>\x11\xf9\x04AR\xc0\x1e\xf0_\
+\xbf\x1b\x9ey\xf2w\x049\xc7:\x9bPc\xb2\xc1o\
+\xe48\x04\x89\x07{\xb0\x91\x7f\x0f\xc03\xc3\xc1E\xff\
+\xf6PL\xd1L\x03>\xda#\x86\x9e<\x09@\xb6\x80\
+ \x87\xf9\xf7\xa0\x1eT\xef%\xfd\xff=V\x99\xb9\xb8\
+\x02\x04\xf9\x96\x7f\x0fZA\xf5B\x11\x04\x9eo{\x85\
+\x7f\x0f\xc0y\xab\x8d\x10\x04\xbec\x94\xce\xbf\x07\xbd\xa1\
+zU\x11\x04\xbe\x94e\xc0^p T\xd0\x17A^\
+\x85\xc6\xa7\x8c\x01=\x18\xc5p`j\x07\x10p\x8a\xc3\
+\x1f\x0d\xe8\xc1D\x10\xe4\x17\xdb\x83t\x85\x86\xa7\xae\x01\
+=\x80\xef\xbf\xdc\xb4=HGhx\x9a\x19\xd0\x03\xf8\
+r\xef5\xdb\x83\xb4\x85\x86\xa7\x95\x01=\xf8\x0c\x04\xb9\
+d{\x10\xf0<\xedO\x06\xf4\xe0\x9f \xc8\x0f\xb6\x07\
+\x01\xd7\x84io@\x0f\xd62\x5c\x1a\xb0\x03\x088o\
+\xf1\x05\x03z\x10\x0d\x82\x9c\xb4=\x08\xf8\x1cfW\x03\
+z\x00\xaf\x0at\xd4\xf6 OA\xc3\xd3\xc3\x80\x1el\
+\xd1rS\xdd\x86 \x81\xd0\xf0\xbcl@\x0fv\x80 \
+{m\x0f\x02.\xd7\xfb\x8a\x01=\x88\x03A\xbe\xb0=\
+\x08\xb8fR\x1f\x03z\xb0\x07\x04\xd9e{\x90j\x0c\
+7\xf0te'\x08\xf2\xa5\xedA\x82\xcd\xde\xa9o\x05\
+A\xf6\xd9\x1e\xa4\xae\xd9\x87\xbd\x1b\xf1(\x0bLc\xb3\
+O\x0c\xe1\xc7\x1f\xbe\xc2K'f_:Y\x07\x82$\
+\xd8\x1e\xe4YM\x0f\x8es\xc8*\xbct\x02&\xd4\xec\
+\xcb\xef\xf0\xbc\xa3\xb3\xb6\x07y\x01\x1a\x9e\xa7\x0d\xe8\xc1\
+R\x86\xc7\xe2\xed\x00\xd2\x0d\x1a\x9e\x9a\x06\xf4`\x0e\x08\
+\xf2\xb3\xedA\xc0\xf9\xcc\x95\x0c\xe8\xc1{ H\x96\xed\
+A^c\x98&\xa5+c\x19&\x82\xd9\x01\xe4\x0dp\
+|r\xf9\xf7`(T\xb0\x14\xb1=\xc8$\xf0\x17\xe4\
+\x16\xff\x1e\xf4\x85\xeaUD\x90\x8f\x18&\x81\xe8\x0a\xb8\
+\xce|\x10\x82\xc0\x93@\xbe\xe1\xdf\x03p\xdeQs\x04\
+\x81/\xbe\x1e\xe0\xdf\x83\xa6Z\xd6\xd6\xb0!\xc8!\x10\
+$\x86\x7f\x0f\xc0;b\xe1\x08\x02\xbf\x0el\x1e\xf7\x0e\
+\xe4\xb9C\xf5\xa2\x10\xe4:\x08\xf2\x0e\xf7\x0e\xc0\x8fa\
+OE\x10\x07\xf8\x98\xf2@\xee\x1d8\x05\x82,D\x10\
+xi\x8d.\xdc\xcb\xedb\xd9g\xd9\x02\x04|L\xb9\
+)\xf7r+\x19n\x18\xda\x03\xa4\x1b\xc3\x99\xb3\x8e\xfc\
+\x03\x04\xb9\x8c d\x84\xb9\xd7N^\x87\xaa\xb99\x10\
+\x84\xccb\xb8\xc7\xad#\xcfC\xd5\x02\x09\x82P\xd6\xc7\
+_\xc7\xbb\x5c5\x96[\xc6\xb6\x009\x06\x82L\xe1\x5c\
+\xed\x8e+\xcb\xd4U[\x80\xc0\x0b)\xf7\xe3\x5c\xed[\
+\xa6\xf3P{\xbc6\xcf\x8f\xe1\xf2\xab\xe6l\x06AV\
+\x22\x08\xa1<\xd4\xe6\xcb\xf9\xd5\x7f3YNCl\x02\
+\x02/\xdbv\x8ao1p\xe9\x19%\x0dA\x08m=\
+\xa0e|\x8bUg:\x0d\xb5\x07\xc8z\x10\xe4u\xae\
+\xb5n(L\x8f\xc5\xdb\x03\x04>\xf0\xe1\xbb\x942\xfc\
+\x80\xe1H\x04)\x88\x03|\xdb\xa3\xe7\x1d\x9e\xb5\xa6\x81\
+ \xcb\x11\xa40\xcd\xc1Q\xda\xcd\xb3Tg\xb6\x03\x08\
+\x9b\x80\xc0\x97\x17\xc7\xf0<O\xf7\x85*y\xe7 H\
+a\xe0\x99@\xf58V\x82\xefN\xb5 \x08R\x18x\
+\x9e\x03\xcf\xc9r\xa3\xc1B\xc3\x99@F[\x07\xc4\x09\
+.6\xfd\xe8\x1bj\xf5\xa7>Xh=\x13\xc8H\xeb\
+\x80P^-\xc9\xef\xc9O\xf8\xc5\xab.\xc9L \x91\
+\x16\x02\x81\xe7\xf7\xbaq[My*X\xa7\x0e\xbd\x81\
+\xc3\xc0\xc7\x07Y\x08\xe4\x04\xbc\x13y\x9f\xd7O#\xb8\
+\xf2\x902\x8c\xde\x02\xf4\x8a\xbf\x08\x0b\x81\xe4\x05\x80#\
+U\xd3\xc9\xa7\xcc~\x85q\x17\x02N\xea\xeak!\x10\
+\xf81*E9\xc8\xa7\xca\x00\xb0\x88{*\xbd\x85o\
+\x80\xcf\xf7\xb6\x12\x08\xbc\x0e\x22\xa77Q]/\x05\x16\
+i\xa7\xa2\x89D\x93\x97\x01yl i\xee\xb0\xc8\xd7\
+<\x8a\xbc\x05\xd7\x98\xab\xa2\x89$\xe0\xf3\xcfX\x09\x84\
+<\x07\x0fVW\xe3\xbf \xaa^\xdc~\x05\xf8|\xb0\
+\xa5@\x16\xc0\x83\xf5\xc8\x8b\xce\xf9\x7fA\x1a\xa9i\xe3\
+6\xd0\x80\xbf\xa5@R\xdc\xe0\xe1j\xc1\xfc8n\x92\
+/\x5ca\x96\xaa\xc3A`\x12\x91k\xae\x95@\xe0\x09\
+\x85\xf9\xf9\x88\xf5\x1c\x84R\xc0#EU3\xfe@\x13\
+7,\x05\xb2\x9c\x02\xe2}\x82\xad\xfd\x0f)\xed\xf7R\
+\xd7L\x0d\xa0\x89\xe3\x96\x02\xc9\xf4\xa3\x8cX0\xd3?\
+\xe0A\x0fJ\xf3[\xd4\xb5\x03=1\xba\xc6R $\
+\x922bJ+\x867y\x9f+Oi<P\xe5\xf4\
+\xafv@\x1b\xefZ\x0b\xe48\x0dD\xe9\x90\xa9\xb7\xed\
+\xc4\xaa\x0a\xa7]T_\xe1N\xd5\x0d\x03!m\xa8\x22\
+mt\xfej\x9dx\x82\xd6r\x80Z\xebqlW\x8b\
+\xa5\x02\xd9L\x05Qj\x9c\xd6\xd3\xf0:_j\xc3\xaa\
+\xe7\xd8/`\xbb\x9f\x22\x15H^\x1d\xba\x88\xf7l\xcd\
+\xef\xd1K\x1f@o\xb6\xf4M\xb5\xadm\x82\x9aYa\
+-\x10\xea\x91\xef\xbd+FG\xb5\x9d~\xac\x0fT\xd1\
+\xe84\xd5\xed\x81\x0f\xb3\x84Z\x0c\xc4Q[\x8d\x88\xeb\
+\xab\x1a\xde\x8f\xbb\xebY5MVS\x7f\xfc\x06OE\
+\xddk-\x10\xca\xbbo\xee\x93\xf4\xd8\xa1\xea\x87+\xeb\
+\xb3f\xea\x1a\x5c\xaba\x1b\xc1\x95R\xaa\xff\xd7Z \
+\xce\x10Ee\x02G\x1d\xa4Lj\xcb\x88\x0d\xf7S\xd9\
+XK-7$\xc1ET\x95\xa7NY\x0a\x84\x1cv\
+QT\xc7\xb7\xfd\xe4=%\x1c\xac&\x7f\x1e\xd5\xcc]\
+uC^\x9a\xd6\xe4\x1aC\xb9$\x16\xf9\x9d\x95@\xc8\
+\x00E[\xaa\xb4\x0e\x9f\xb8|s\xdc\x91\x93I\xd7.\
+\xfep,>n\xe3\xc7c{\x87\x04hkc\xa6\xa6\
+-\x5cIm\xaf\xc9\xc8\x95\xfb\xcf'\xa7\xa5&%\xe6\
+oPl\xcc\xb2Of\xbe?\xfe\xafC\xfb\xf7\xe9\xd2\
+\xa1y\x7f\xe9@\xaek\x1cL\x0ei\xa9\xed\xaa\xf9i\
+\x96Z\xb5\xa5\x03Q\xbb_\xe7\x97\xd2\xdfk<[b\
+\xf9\x97\xa9,\x1f\x08\xfc6o\xfeq\x89\xd6\xba\x81/\
+1T\xf3\x95\x10$\xb5\x86\xa9 \x135o\xe0\x02\x96\
+r9\xf2\x81\x90\x93\xbe&z\xf4\xd0|%\x06\x9c\x9a\
+E\xcdM\x09A\xc8j\xf3<Ze\xe8\xd8\xbe:\x0c\
+\x05\x93d\x04\xa1L\x89\xe6\x98\xc6\xa9fo\xdeI)\
+Ah'_\xbcR;E\xd7\xd6]p\xd1_r\x9f\
+\x9c \xce!fx4\xd5{\xfb\xa2\xb5\xfe\x9a\x9b\xe5\
+\x04!\xce\xf1\xc6{tL\xd7\xbbu\x1b\xf5\x17]-\
+)\x08!\x1f\xb8\x1a\xec1H\xff\xa26\xce\xc6\xba\xab\
+.\x90\x16\x84l+g$\x87'\xd3\xbc\xbb\x0d\xba\xeb\
+N\x97\x17\x84$60\xce#\x88m%\xc7\xbc\xb6z\
+\x0b\x8f\x93\x18\x84\xdc\x19c\xd4\xcfV\xcf\xdb\x8c\x9b\xf6\
+S\x19\x9d\x95#e\x06!d\x7fMc@\xd8_\x0a\
+\xbeTg\xe5\xber\x83\x90\x9cy~\x86\x88le\xde\
+2\x9d\x87\x81\xdd$\x07!\xe4\xea\x00w\x03@jd\
+1\x1f\x98G\xea*\xdcFz\x10B\x92\x06z\xf0\x17\
+\x99\xc0\xbcYy\x13\xf4\x9c\xb07\xb4\x00\x08!\x97&\
+T\xe0\x0d\xe2q\x96}\xb3\xb6\xf8k\xaf[\xcd\x12 \
+\xf9\x07\x5c+B9\x1fq\xb5\xe6\xf0\xe8\xfb\xc5\xde\x9a\
+\xbf$e-\x02\x92\x9f+\xb3\x9b\xb9\xf0\x14Y\xcac\
+\xa3\x0e\xb5\xd2X\xd5\xd5i\x19\x90\xfc$/\xef\xcd\xef\
+\xf4\xbd\xfcu.\xdbt \xdc[}M\xb7\xda}\xb2\
+\xad\x04R\xb0+=\xb3(<\x98\xcf\xafW8\xa7M\
+J]\xd8\xbd\x94\x0a\xffvo.K\xc82bH\x1e\
+/Ha2\x0e/\x1e\xde\xb9\x96'x\xabc\xd0p\
+\xea\xf4\x86=\xdc6\xe8\xee\xdew\xc3\x9e,i\x1a^\
+\xfd\x17\xc7-\xdb\x9fb\xdch\x08\x00r/\xb9\x97\x0e\
+mZ8)\xb2_\xcf\xf6!\x0d\x83\x82\x82*V\x0d\
+\x0a\xaa\x13\xd2&,\x22jFtBZ\xfew\xa9\x05\
+M\xa4\x16\xd7\xe5N\xc9\xed\xf85\x1f\x8e\xee\xd7\xb1y\
+H\xed\xa0\xca5\xea\x84\x84v\x8ax{\xfe\xa6\xaf\xae\
+\xe6\x19=\x0e\xc2\x80\xd0r\xdc\x8d&2\x99X!\xd2\
+\x80\xc0\xef\x05/\xbc\x06\x7f\x0eA\xccLz\x15\x9aH\
+['\x82\x98\x19\xfa|\xa2U\x08bj\xda\xd3@\x02\
+n \x88\x99I\xf4\xa2\x89\x0cF\x10SC\xbdk\xe1\
+\xf2\x1f\x0413YO\xd2D\xea\xe7 \x88\x99\xa1O\
+\xa1\x9a\x81 \xa6\xa6;\x0d\xc4\xe7G\x0413\x17\xa9\
+\x17\xfe:!\x88\xa9\xa1\xcfU\x8fF\x103s\x97\xba\
+<D\xa5[\x08bfvS\xbf\x22#\x10\xc4\xd4\xbc\
+B\xbd\xaf\xfa\xb5\xc4\x1e\xdb\xe5\x03I.K\x13i$\
+\xef\xc9\xc8No\xf9@\xa8\x0b\x92*\xca\x1cY=\xbe\
+\xf0V$\x04q4\xa1>?~A^\x0f\x09AH\
+<u\x02QWy=d\x04Q\xb1\xa6M\xac\xb4\x1e\
+R\x82\xdc\xa4\xceE\x0d\xcc\x90\xd5CJ\x10\xb2\x84\xfa\
+\x15\x19-\xab\x87\x9c y\xd49\x9fn'$\xf5\x90\
+\x13\x84\x9cp\xb3\xd6\xf9\xfa\xce\xfb3X%=b\x1f\
+Iy\x92f\xabT\xbd\xd9\xf5\xc0\x8cbIA\xa0I\
+A\xaea\x09DZ\x0fYA\xc8\x9a\x928\xbc\x22\xce\
+\x13\x89=\xa4\x05)aR\x90_\xd45\x22\xb5\x87\xbc\
+ \xc5M\x0a\xaa4\xe5\xb6t\xfd\xd8\xe5\xa3X\x03\x84\
+Lx\x98#x^6\x91\xdeCb\x90\xac\xa2\xcb9\
+\x86\xac\xca%\x16\xf0\x90\x18\xa4\xc8\xbb&$;\xce-\
+\xd9Cf\x10\x12\xf6\xfbq\xee1b\x15\x0f\xa9A.\
+\x95\x92\xf38\x17\xf2\x90\x1a\x84LS\x94\xb2Q\xc9\xc4\
+J\x1er\x83dw\x98\x9bI\xac\xe5!7\x88\xcc\xd9\
+]\xbc\x07\x82\x08\xe6\x81 \x82y \x88`\x1e\x08\x22\
+\x98\x07\x82\x08\xe6\x81 \x82y \x88`\x1e\x08bv\
+\xf6S\x1e\x02\xc3\x11\x12\xcb\x03A\x04\xf3@\x10\xc1<\
+\x10D0\x0f\x04\x11\xcc\x03A\x04\xf3@\x10\xf3<J\
++\x08\x22\x9f\x07\x82\x08\xe6\x81 \xe6\xe4\x80Z\x0f\x04\
+\x11\xcc\x03A\x04\xf3@\x10\xc1<\x10D0\x0f\x04\x11\
+\xcc\xe3\x7f\xb9\x0bd\xb5'\xfb\xb9\xcc\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x04\xbb\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x01\x00\x00\x00\x00\xeb\x04\x03\x00\x00\x00t\xa8U\xa0\
+\x00\x00\x000PLTE\x00\x00\x00A\xcdRA\xcd\
+RA\xcdRH\xcbPB\xccQI\xcbPD\xccQ\
+E\xccQJ\xcbOE\xccQJ\xcbOD\xccQD\
+\xccQC\xccQA\xcdR\xaa`?\xbc\x00\x00\x00\x0f\
+tRNS\x00\x18Oc\xab\xae\xb8\xbd\xc9\xcd\xd6\xd7\
+\xdf\xe9\xf0\x91\xee\xa9J\x00\x00\x04+IDATx\
+\xda\xc5\xda\xc1m\x13A\x18\xc5\xf1\xddT`%Bp\
+ R\x02'N\x08\x1ap\x0dT`q\xa1\x0f*\xa0\
+\x0b*\xa0\x91T\xe0\x1e@\x96|q\x86\x83c\xc7\xbb\
+;\x93\xcc|\xef\xcd{\xd3\xc0\xfe\xf4\x0e\xfb\x9f\x95v\
+\x18z\x9c\xab\xc3j\xb0\x9e\xab\xf4\xe0\x06<\xde\x9b\x01\
+\xe9\xdf\xca\x0cH_\xdc\x00\xeb\x04W)\xa5\xf4\xcd\x0d\
+\xd8\xad\xcc\x00\xe7\x04G\x80q\x82# \xfdt\x03\xf6\
++3\xc07\xc1\x09`\x9b\xe0\x04\xb05\xe9\x0cpe\
+\xf9\x0cpM\xf0\x0c0e\xf9\x19`j\xd2\x05\xc0\x93\
+\xe5K\x80e\x82K\x80\xa5I\x13\x80\xa3I\x13\x80c\
+\x82)\xc00\xc1\x14`h\xd2\x0c\xa0o\xd2\x0c\xa0\x9f\
+`\x0e\x90O0\x07\xc8\x9b\xb4\x00\xa8\xb3\xbc\x00\xa8'\
+X\x02\xc4Y^\x02\xc4M\xca\x00\xb4Y\xce\x01\xa4\x13\
+\xe4\x00\xd2&e\x01\xca&e\x01\xca\x09\xf2\x00\xe1\x04\
+y\x80\xb0I\x05\x80\xaeI\x05\x80n\x82\x12@6A\
+\x09 kR\x11\xc0\xc8\xf2\xf5\x87\xd7\xcf\xc7\xd4q\x82\
+\xcf\x099\x84,c\x00B\x93@\x00\x9ee\x14\x00O\
+\x80\x02\xe0&\xc1\x00\xb4I0\x00\x9d\x00\x07\x80\x13\xe0\
+\x00\xb0I\x04\x00\xd6$\x02\x00\x9b\x80\x01\x80&`\x00\
+\xa0&Q\x00H\x96)\x00d\x02\x0e\x00\xc82\x07\x00\
+4\x89\x04\x88g\x99\x05\x08O\xc0\x02\x84\x9bD\x03D\
+\x9bD\x03D'\xe0\x01\x82\x13\xf0\x00\xc1&\x11\x01\xb1\
+&\x11\x01\xb1\x09\x98\x80\xd0\x04L@\xa8IT@$\
+\xcbT@d\x02.\xe0\xb1\xfa\xb9\xe3\xa7U\x0f@\xaa\
+\x06\xbcIw=\x00\x87\xea\x016}\x00\x0f\xf5\x03t\
+\x01T\xbf\x08\xc6M\x1f@\xf5\xab\xf0]\xea\x02\xa8\x1f\
+\xe0W\x1f@\xd3\x00\x1d\x00\xbb\xa6\x01:\x00\xaa\xafD\
+\xb7\xa9\x0b\xa0~\x80m\x1f@\xe3\x00t@\xf5\x87\xc1\
+\xf5\xb6\x0f\xa0\xf6\xd3h\x5c\xa7.\x80\xea\x01nR\x17\
+@\xf5\xe7\xf1y\x002\xa0\xa5B=\x00\x87\x96\x0a\xf5\
+\x00\x04\x06\xa0\x02\xf6\x81\x01\xa8\x80\xb6\x0a\xf1\x01m\x19\
+\xee\x00\x08\x0d@\x04\xecB\x03\x10\x01\xad\x15b\x03Z\
+3L\x07\x04\x07\xa0\x01\x9a3\xcc\x064g\x98\x0ch\
+\xcf0\x17\x10\xc80\x17\x10\xa9\x10\x13\x10\xc9\xf0\x0c \
+\xfa\x7f`9\xc0\x09\x00\xfdA\xb1\x07\x06\xa0\x00b\x15\
+\xe2\x01b\x19&\x02\xa0\x01\x08\x80\x1d4\x00\x01\x10\xad\
+\x10\x0b\x10\xcd0\x0d\x00\x0e\x00\x03\xc2\x19f\x01\xc2\x19\
+&\x01\xe2\x19\xe6\x00\x80\x0cs\x00H\x85\x9e\xce\xd7\x8a\
+\x0c\xde\x97\x00H\x86[\xce\xdf\x12\x800\x00\x04\xd8\x8b\
+\x06(\x02\xb0\x0a\xe1\x00,\xc3\x04\x80l\x80\x02`'\
+\x1b\xa0\x00@+\x84\x02\xd0\x0c\xc3\x00\xe1\x00Y\x00\x9c\
+a\x14\x00g\x18\x04\xe0\x19\xc6\x00\x84\x0cc\x00U\x85\
+J\x00U\x86\x8b\x00\xf1\x00\x0b\xc0^<\xc0\x02\xa0\xab\
+P\x1e\xa0\xcbp\x01 \x1f`\x06\xd8\xc9\x07\x98\x01\x94\
+\x15\xca\x01\x94\x19\xce\x02\x0c\x03L\x00\xd2\x0c\xe7\x00\xd2\
+\x0cg\x00\xda\x0c/\x01\xe2\x0c/\x01\xea\x0a\xcd\x01\xf5\
+\xff\xe9m\xfa\x00\xea\x7f\xd3K=\x00\xe3\x9f\x95\x17\xd0\
+r\xd6n\x00\xf35\x14\x020_\xc41\xc0\xb85\x03\
+\x86\xf7n\x00\xef:\x12\x04\xf0.dQ\x00q\x82\x18\
+`x\xeb\x06\x8c\x1b3\x80\x97\xc4(\x806A\x14@\
+\xbb\x16\x85\x01\xac{Q\x18\xc0\x9a \x0e M\x10\x07\
+\x90\xb2\x0c\x008YF\x00\x94,#\x00J\x96!\x00\
+\xa3I\x10\x80\x91e\x0c@\x98\x00\x03\x10\xb2\x0c\x02\xf0\
+&\x81\x00<\xcb(\x00\x9e\x00\x05\xc0M\x82\x01h\x93\
+`\x00:\x01\x0exa\x82\xdf?^?\xdfa\xc0\x0b\
+Y\xbe\x1b4\xe7\xd6\x0d(fY\x05(fY\x06(\
+5I\x06(eY\x07(L\xa0\x03\x14\xb2,\x04\xe4\
+\x9b$\x04\xe4\xb3\xac\x04d'P\x02\xb2M\x92\x02r\
+M\x92\x02r\x13h\x01\x99\x09\xb4\x80L\x96\xc5\x80e\
+\x96\xd5\x80E\x96\xd5\x80E\x96\xe5\x80y\x93\xe4\x80y\
+\x96\xf5\x80\xd9\x04z\xc0,\xcb\x06\xc0\xb4I\x06\xc04\
+\xcb\x0e\xc0d\x02\x07`\xd2$\x0b\xe0\xb2I\x16\xc0\xe5\
+\x04\x1e\xc0\xc5\x04\x1e\xc0E\x96M\x80\xe7,\xbb\x00\xe7\
+,\xbb\x00\xe7,\xdb\x00\xa7&\xd9\x00\xa7,\xfb\x00O\
+\x13\xf8\x00OY6\x02\x8eM2\x02\x8eYv\x02\xc6\
+\x8d\x190\xdc\xb8\x01\xe3\xda\x0c\x18n\xdc\x80qm\x06\
+\x0c\xd7\xdb>\x80\xffx\xf2iE\x15\xa8J\x8b\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x0b!\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\xc8\x00\x00\x00\x8f\x08\x03\x00\x00\x00\x88\xdbdx\
+\x00\x00\x00\x09pHYs\x00\x00\x0d.\x00\x00\x0d.\
+\x01\xb5\xcb\x89]\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00\x02\xacPL\
+TE\x00\x00\x00\x00\xff\xff\x00\xff\x80U\xff\xaa@\xbf\
+\x803\xcc\x99+\xd5\x80$\xdb\x92 \xdf\x809\xe3\x8e\
+3\xe6\x80.\xe8\x8b+\xd5\x80'\xd8\x89$\xdb\x803\
+\xdd\x880\xdf\x80-\xe1\x87+\xe3\x80(\xe4\x86&\xd9\
+\x801\xdb\x86.\xdc\x80,\xde\x85+\xdf\x8a)\xe0\x85\
+'\xe2\x89/\xe3\x84,\xdc\x84+\xdd\x88)\xde\x84.\
+\xe0\x83-\xe1\x87,\xdb\x83+\xdc\x87)\xdd\x83/\xdd\
+\x86.\xde\x83-\xdf\x86,\xe0\x83+\xe1\x86*\xdb\x82\
+.\xdc\x85-\xdd\x82,\xde\x85+\xde\x88+\xdf\x85*\
+\xe0\x87.\xe0\x85-\xdc\x87,\xdd\x84+\xdd\x87+\xde\
+\x84*\xdf\x86.\xdf\x84-\xe0\x86,\xdc\x84+\xdc\x86\
++\xdd\x84.\xde\x86-\xde\x84-\xdf\x86,\xdf\x83+\
+\xe0\x85+\xdc\x83-\xdd\x83,\xde\x85,\xde\x87+\xdf\
+\x87-\xe0\x85-\xdd\x86,\xdd\x86+\xde\x84+\xde\x86\
+-\xdf\x86,\xe0\x84,\xdd\x86-\xde\x84,\xdf\x84+\
+\xdf\x85+\xdd\x84-\xdd\x85-\xdd\x84,\xde\x85,\xde\
+\x86+\xde\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85\
++\xde\x85+\xde\x86-\xdf\x85-\xdf\x86,\xdd\x86+\
+\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xdf\x84,\xdf\
+\x85+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x85,\xde\x84\
+,\xde\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\
+\xde\x86,\xde\x85+\xde\x86-\xde\x85,\xdd\x85+\xdd\
+\x84+\xde\x85,\xde\x85,\xdf\x85+\xdf\x84+\xdd\x85\
+-\xdd\x84,\xde\x85,\xde\x84+\xde\x86+\xdf\x85,\
+\xdd\x85,\xde\x86,\xde\x85+\xde\x86,\xde\x85,\xdf\
+\x85,\xdd\x85,\xdd\x85+\xde\x85-\xde\x84,\xde\x85\
+,\xdf\x85,\xdf\x84+\xdd\x85-\xde\x84,\xde\x85,\
+\xde\x84,\xde\x85,\xde\x86+\xdf\x85,\xdd\x85,\xde\
+\x86,\xde\x85,\xde\x86-\xde\x85,\xde\x85,\xdf\x85\
+,\xdd\x85,\xdd\x85+\xde\x85-\xde\x85,\xde\x84,\
+\xde\x85,\xdf\x84+\xdd\x85-\xde\x84,\xde\x85,\xde\
+\x84,\xde\x86-\xdf\x86,\xdd\x85,\xde\x86,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xdf\x85,\xde\x85,\
+\xde\x85-\xde\x85,\xde\x85,\xde\x85,\xdf\x85,\xdd\
+\x85-\xde\x84,\xde\x85,\xde\x84,\xde\x85,\xde\x85\
+,\xdd\x85,\xde\x85,\xde\x85,\xde\x85+\xde\x85,\
+\xde\x85,\xde\x85,\xdf\x85,\xde\x85,\xde\x85+\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xdd\x85\
+-\xde\x85,\xde\x85,\xde\x84,\xde\x86,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\x83p\
+\xec\x06\x00\x00\x00\xe3tRNS\x00\x01\x02\x03\x04\x05\
+\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\
+\x16\x17\x18\x19\x1a\x1b\x1d\x1e\x1f!\x22#$%&'\
+()*+,-./01234567\
+89:;<=>?@ABDEFHI\
+JLMNPQRUWXYZ[\x5c]^\
+_`abdefgijklmnop\
+qrstuvwxyz{|}\x80\x81\x82\
+\x84\x86\x87\x88\x89\x8a\x8b\x8d\x8e\x90\x91\x92\x93\x95\x96\x97\
+\x98\x99\x9a\x9b\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa7\xa8\xa9\
+\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xbb\
+\xbd\xbe\xbf\xc0\xc1\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcc\xcd\xce\
+\xcf\xd0\xd1\xd3\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\
+\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\
+\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe.\xcby\
+/\x00\x00\x07\x07IDATx\xda\xdd\xdc\xf9_\x94\
+E\x1c\x07\xf0\xd9\x85\xf5@E\x17\x0d\xf3B\x84\x0c\x8f\
+\x14\xb7,\x8d4O\x14+\x0c\x0f4M\xad\x14\xad\xc4\
+\xbc\x22q\xb3\x8c\xf2H\x10I3\xcb\x83\xd4\xb4C\xcd\
+\xf2\xca#\xb5T\xa4\xbc\xc8\xa3\x02\x95\x92c\xbf\xffH\
+?\xa8\xaf\xf8~\x9fk\xf6\xc1yf\xf6\x99\x1fe>\
+\xcf\xcc\xdb=\x9e9\x9eY\xc6\xf4JT\x09DZ\xd1\
+ux#\xcf\xa1\x0b\xf1\xae\x03W@\x22\xd2\x01nq\
+\x80[\x1c\xe0\x16\x07\xb8\xc5\x01nq\x80[\x1c\xe0\x16\
+\x07\xb8\xc5\xd1\x00\xe2Y\x0d\xae\x80D\xb8\x03\xdc\xe2\x00\
+\xb78\xc0-\x0ep\x8b\x03\x18c\xcc\xb3\x0a\x5c\x01q\
+\x85\x03\xdc\xe2\x00\xe6-z`\xd7\xba}G&\xa4\xd1\
+\x8ek;>\xc8y>\x90\xe0\x8fa\x8c\xb1X\x7f\xe2\
+\xc0\xacy+\xf6\xdet\x1e\xd2\xa8\xf4\xf5\xc2\x09I\xfa\
+\xebI}\xa6o\xae\x8e\x14\xc8\xad\xe2\x91>fRZ\
+f\x95\xd6E\x00\xa4\xaa\xa0\x03\xb3,]\x0b\xfeQ\x1c\
+R\xf7n\x1b\xc6U\xba|\xae4\xe4d\x7f\xc6]F\
+_V\x17R\xd8\x94\x85Q\x1e\xdag\xf2\x06\x0d6,\
+\xeb\x1d\x86\x04Yx\xa5\xe9g\x86\x97\xba\x80*>\xed\
+($4\x83\x85[\xbc\x85*B\x96\xb2\xf0K\xd4W\
+\xeaAvE\xd9\x800\xff\x19\xd5 \xbf\xc72[\xa5\
+w\x8db\x901\xfa\xfd\x8c{r\xfc\xdcE\xc1\xe0\xfc\
+\xd73S[\xea\xd7\x08\xaa\x05\xd9\xaa\xf7Q\x1e\xbe\xe2\
+T\xc3{\xe5\xe1`\xaaN\xad\x98\xf3*A\xeet\xd1\
+t\xd07\xf3\x9c\xb6\xde\xe1\x17\xb4\x92L\x95 \x85\x9a\
+\xee\x0d:\xad_\xf3\xbbn\x9a\x17\xee\xb4:\x90:\xcd\
+\x98}f\xadQ\xdd\x1b#h\xddI\xea@6\xd2\xbe\
+\xbde\xf66\xa4\x12\xdf\x05e CI\xd7\xc6\x87\xcc\
+j\xdf|\x8cT_\xa2\x0a\xe4\x12\xb9\x17v\xfa\xcb\xbc\
+\xfeq2\xefzD\x15H>\xf9\x1f.\xb5\x0a\xcc%\
+\x81\xc3\x8a@z\xe1n=\x1e\xb2\x0a\x5c\x8d\xc1\x897\
+\xd4\x80\x5c$\xff\xbf[\xad#\xb3p\xa2\x97\x1a\x90\xb5\
+\xb8W\xedk\xac#\xc7\x88\xfd\xa2\x12\x90,\xdc\xa97\
+y2\xe4\x8b\xabD\x09H<\xee\xd4\x01\x9eL\x1e\xce\
+d\xdf\xff\xf7\xaf\x03wKo\xbc\x80\x14\xa0e\xa5\x00\
+\xc8y2\xde\xe5Z\xb3:\x80C=\x0co\xad\x06e\
+\x91\x00\xc8\x16\xdc\xc4X\xbeAM\x1c\x9e)\xdeV\x00\
+\xb2\x107\xf1\x11_j\xa4\xfe\xfbQ&$\x1d7q\
+\x90/\xb5\x18\xa7V*\x00\xc1S\x11\x1f\xe7Zh)\
+\x19-\xcb\x87\xd4\xe0\x81Vw\xce\xd8\x19\xdc\xb1\x0c\xf9\
+\x90s\xfa=\xb2*\xb5>\xdd{\xbbD\xc87V\xc3\
+&\x83\x82\xe7b-\xe4C\x0am}i\x01\x0c\xc7\xb9\
+\xab\xd2!\xe4\x1e\xbd\x997\x97\x8ds'\xa4C\xc8@\
+\xf6G\xde\x5c.\xce\xed\x91\x0e\x99\x88[(\xe3\xcd-\
+\xc7\xb9-\xf7\xa6\xc1ew\xcb~\xf4\xc7@\x19-7\
+\x1e<d\x14\xee\xd0\x9f\xbc\xb9b\x9c+\x94>\xfa}\
+\x0aw\xa8\xd6\xe6\x10-(\x1d\x92\x82\x17@\xc1\xe6\xd7\
+\xf6\x02\xe9\x10\xbcr\xd8\x9e\xbb\x81\x83\xa6\xd31\x09\x90\
+\xcex\xb3\x96\xbb\x012\xdb\xcd\x91\x0ey\x185\x99\xc8\
+\xdd\xc0\xcf\x182C:$\xcej\xad\xcd\xa0\x9c\xc6\x90\
+\xa9\xd2!\xad\xf4\xe7\xac\xe1\x0e6'J\x87\xc4\xda\x1a\
+\xc5k\xc6\xf1\x93\xa4C\xda\xa2&\x13\xb8\x1b8\x81!\
+\xd3\x15\xfb\xb0\xc7s7p\x08CfI\x87\xe0\x99n\
+,w\x03{1$W\xb1\x1b\xa2\x8f\xbb\x81\xdd\x18\xb2\
+X:\xa4\x07\xee\x10\xf7#e\xa5\xa6\x9b=\x12 \x03\
+q\x87n\xf1\xe6\xc8\xcc\xe3=\xe9\x90\xd1\xb8C\xd7l\
+\x0e\xe3WI\x87\x90)\xebY\xde\xdc\x87\xa6\x9b*\x12\
+ \xb3q\x87\xbe\xe7\xcd-0\x9d\x22K\x80\xbc\x83;\
+\xf4\x05on\x8a\xe9\x14Y\x02\xa4\x08w\xa8\xc0\xe6\x14\
+\xf9\xb6t\xc8\xb7\xa6\xf3\x0a\xde\x99%\xbd\x91J\x80\x94\
+aH:g\xac\xbe\x19\x8a%\xcb\x87\x90E\xec$\xce\
+\xd8o\xd8?J>\x04\x12\xf0\xde\x13\xe7c\xfc;1\
+d\x9e\x02\x10rG\xdc\xc7\x97z\x1b\xa76(\x00!\
+{O\xef\xf3\xa52p\xea\xb8\x02\x90m\xe4Iq\xae\
+P\x1d\x9e\x8fE\xff\xab\x00\x84|l[p\xed\xbd\x91\
+U\xad\x9e`\x0a\x19\xe8\x08\x04\xc81\x8b]6>\x22\
+\xaf\x98C\xfa;\x03!\xeb\xf1\xe3y2\x8f\xe2\xcc\x97\
+\xf4\xefW\xd0\x9fS\x9d\x81\xac\xc7\x9dj\xfe\xb7u\x84\
+<\xf8\xe0\xab\xa2\x15*\xcd\xdfyb \x15\x1e\xdc\xad\
+|\xeb\x08y\x0eg\xb0\xa6B->\x00\xe4\x0c\x04\x9e\
+\xc0\xddj[i\x158\x15eIoboI\xa3q\
+\x102G\xa2\xeb\xb8\x9a\x12\x22\x1b\xa1\x1e\x9dG\x9d\xd1\
+\x09'O\x8d3\x90kMH\xc7v\x9a\xd7'\xbbn\
+l\x88N\x9d\x8e\xf66\xf4\x1a\x07\x81\xe7\xe8\x01\xbd\xfd\
+f\xb57\xd1\x03\x1az\xe7\xc6\xba\xa3\x1a;\x1c\x82\xec\
+\xa1\x9b\xae\xb1\xdb\x8c+\xaf\xa2\x87\x14\x93\xf5\x96\x90\xf0\
+\xa3\xc4y\x0eA \x8dJ<\xaf\x19\xec\x8a^\xca\xd4\
+l5\x17\xeb\xd5\x9b\x84\xaa\xf4s\x0a\xb2[\xe7\xacN\
+~\x85\xb6^yn\x8c\xa6bj\xbd\xde\x15\xf3\xccG\
+\xc7\xa2 0DgS?zT\xc1\xd1\x06\xef\x9a;\
+?,\x1b\xe4\xd19e\xa2\xbf\xeeB\x0e\xa44[r\
+\xd3\x19\xc8\x99\xe6\xfaO(4I\x1e\x915mN\xce\
+\xb4\x17\x87v\x8d\xd6\xaf1[\xff\x82\xe74Wz6\
+{N\xee\xb4\x9723\x86\x0d\x08$'\x16\x89\x82\xd8\
+:\xf3\xc6\x18c}\xaa\xf9\x86\xa2\xa4,\x15\x06\xa9\x1d\
+f\xcb\xd1\xae\xdc\xe8\x82\xe3Ls\xf3\x85A\xa0\xb2\xb7\
+\x0dG\x0b\xe3\x85\xc9M\xa6\xc1W\xc5A\xa0\xbcS\xd8\
+\x8eV{\x8d/W\xdd\xda,9A \x04.\xf7\x0b\
+\xd3\xd1\xe1\x88\xd9\xe5r\xcd\xa2cDB\xa0*=,\
+\xc73\x97L\xaf\xf6\x87\xd9\xc9\xf8\xc1B!\x10Z\xdd\
+\x86\xdf\x91b\xf5 Q\x89I\xb8\xafX\x08\xc0\x95\xb1\
+^n\xc9v\xab\x8b\x99\xbc\xb9\x12EC\x00~\x99\xca\
+{:?\xc1r\x9bnY\xb4Q\xb6\xadx\x08@\xc5\
+\xf24\xbe\x97e\xae\xe5\xa5\x8e\x0c6\x88\xfa\x9c\x80\x00\
+@\xc5\x9a\xc9=\xad\x8f\x85G\x9f\xe0X\xa6\x98\x12\xaf\
+\x19\x9du\xcb\x98W\x12r\x06\x02\x00P\xb5o]\xde\
+\xcb\xe9\x81\x94\xc4x\xbf\xbfsR -;\x7f;=\
+*>\xa0\x9eg\x03\xe2\xd8\x9a\x99\xa3\x03\x89q~\x7f\
+\xe7\x94\xa1\xd9\x0b7\xfc\x14\xde\x0f\xc44\x1e\xc21\xc7\
+e\x0e\xfc~\x97\x10H]_\x02i}92!p\
+\x88~\x0b\x8c\x8bP\x08\xdd\xcbelg\x84B\xae\xb7\
+#\x90\xa4\xea\xc8\x84\xc0\xc7\xf6\x9frW\x0bR?\x80\
+NaOF&\x04\x8e\xd2\x1b\xe5\xa0\x90HG\x910\
+\x08=\xa7a\xb0\xae\xf5\xa0\x1c^q\x90\xca\x8et\x00\
+xUX[k\xbdL\x1c\x04>\xa5/\xc9d\x91\x0e\
+\x81\x10\xcdODx\x8e\x0a{_\x89\x85\xfc\x8ag,\
+i\xdb\x05\xbe\x1eB!0\xbf\xc1\x98<\xe3\x08\x08u\
+\x08\x85Tw\xbd\xff\x9bg\xd9gA\xb0C(\xe4\xde\
+\xb3\xb2\xads*@\xb8C,\x042\x18K\x08V\x8a\
+\xbb~\xf1\xff\xc3l\xb1\x90\xf2\xfe\x9f\xd4\x80#\x0e\xc1\
+\x10\xb1\xa5\xa1\x83\xb9\xc5\xc1\xdc\xe2\x88\x5c\xc8F2\xbc\
+v\x8b\x83\xb9\xc5\xc1\xdc\xe2`nq0\xb78\x98[\
+\x1c\xcc-\x8e\xc8\x83l\xd4\xdf\x15\xfa\x0f\x13\xf4\xa6<\
+X\xcd\xe8\x1c\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x03\xae\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\xc0\x00\x00\x00\xb0\x04\x03\x00\x00\x00\xab\xd0|\xf5\
+\x00\x00\x00-PLTE\x00\x00\x00A\xcdRA\xcd\
+RA\xcdRD\xccQH\xcbPB\xccQI\xcbP\
+D\xccQE\xccQE\xccQD\xccQD\xccQC\
+\xccQA\xcdR\x9e%\xfb\x88\x00\x00\x00\x0etRN\
+S\x00\x18Oc\x8f\xab\xae\xb8\xbd\xc9\xd6\xdf\xe9\xf0\xe7\
+5\xddl\x00\x00\x03\x22IDATx\xda\xb5\xd8\xc1\
+\x89\xdb@\x18\xc5q)\x15\x08\x1b\x0cY\xf6\x90l\x01\
+\x82m\xc0\x90R\xdc\x80o!\xe7\x94\xa0\x06\x5cB \
+%\xa4\x01\x1fR@\x0e\xbb\x10\xd8\xb0L\x0d9\xd8\xb2\
+\xa5\x19[\xf3\xbd\xf7}o\xee\xf6\x8fw\xd0\x7f\x84\x9a\
+\xc6y\xfa\xa1\xd1\x9e\xfe\xbd\x13\x03\xe9\x97\x1a\x10O\xe8\
+S\xfa\xdd\x89\x81\xf4\xac\x06^;1 \x9d\xd0\xa7\x94\
+\xd2\xdfN\x0c\xa4\x9d\x1a\x10N8\x01\xc2\x09g\xe0\xad\
+\x13\x03iP\x03\xb2\x09# \x9bp\x01T\xcd\xbb\x00\
+\xaal_\x01\xd1\x84+ \xca\xf6\x04\xd04o\x0aH\
+\xb2=\x05$\x13f\x80\xa2y3@\xd1\xbc9 \x98\
+0\x07\x04\x132 \xbey\x19\x10\xdf\xbc\x1c\x08\x9f\x90\
+\x03\xe1\x13\x0a \xbay\x05\x10\x9d\xed\x12`&\xac\x9e\
+\xee\x9em\x01\x10\xd9n\x8f\x09:p\xf3>`\xff\x8f\
+g\x1b\x05\xe0\x090\x806\x0f\x06\xd0\xe6\xe1\x008\x01\
+\x07\xc0\x09\x04\x805\x8f\x00\xb0\xe61\x004\x81\x01\xa0\
+\x09\x14\x804\x8f\x02\x90ls\x000\x81\x03\x80l\x93\
+\x80\xbdy,`\xce6\x0b\x98'\xd0\x80\xb5y4`\
+m\x1e\x0f\x18'\xf0\x80q\x82\x03x\xab\xbd\xb0|q\
+\x02\xa9\x02<\xbch\x81\xf6\xe8\x05^\x97\x81\xc7\xe4\x05\
+\x96\x1f\xb5\xd5\xd1\x0b,\xc7\xa2\xdd&'\xf0\xfeyq\
+\xc0:y\x81\xe5;\xa7\xddz\x81\xca\x95\xb3N^\xe0\
+\xe7\xf2\x80\xbd\x17\xa8\xbc\xb9l\x92\x17\x18\x0c\x03<\x80\
+i\x80\x07\xf8\xbe<\xe0\xe0\x05*W\xc1\xc7\xe4\x05v\
+\xa6\x01<P\x19\xf0\x90\xbc\xc0s%\xd3^\xa0\xf2J\
+\xf4\x98\xbc@5\xd3N\xa0\x9ei\x1f`\xc8\xb4\x0f0\
+d\xda\x05X2\xed\x02,\x99\x9e\x01\xed\x0fA\xe5\xa6\
+\x00\xf8Aj\x00\x06\x9c\x81\x85\xd3\xfb\x060\x80-\xd3\
+<`\xcc4\x0f\xec\xa0\x018`\xcd4\x0dX3\xcd\
+\x02\xe6L\xb3\x809\xd3$`\xcf\xf4\xe5\x17\xf7\x9f\xe1\
+\xa7\xae\x00\x80L[\xce\xa7\x02\x002M\x01H\xa6)\
+\x00\xc94\x03`\x95#\x80!x@\x0e\x84\x0f\xc8\x01\
+,\xd38\x00f\x1a\x07v\xe1\x03\xe6\x00\x9ai\x18@\
+3\x8d\x02p\xa6Q\x00\xce4\x08\xe0\x99\xc6\x80\xe0L\
+\x97@p\xa6\x0b :\xd3\x05\x10\x9d\xe9\x1c\x88\xaf\x5c\
+\x06\x0c\xa2\x01# \x1b0\x02\xcb\x99n\x0e^\xa0\xf6\
+\xfd;y\x81\xda\xe7\xef\xa3\x13XU\x06\x90\x9d\xbb\x02\
+\xd5\xd3\x1e\xc4\x00uYB\x00?\xc1\x08\xf0\x13\xac\x00\
+\xfd,[\x01\xfaa6\x03\xec\x043\xc0N\xb0\x03\xe4\
+\x9df\x07\xc8K\x0d\x00\xb8\x09\x00\xd0\xac\xfe\x88\x01\xaa\
+y\x10\xc0\xbc\x9dB\x003\x01\x03\x88\xe6a\x00\xd1<\
+\x10\xc0'\x80\x00>\x01\x05\xe0\xe6\xa1\x00\xdc<\x18\xb8\
+5\xe1\xdf\xb7\xbb\xe7k\xd7\x04Lxi\x22\xcf\x8d\xe6\
+\xc5\x027\xb2\x1d\x0c\x94\x13\x82\x812\xdb\xd1@\xd1\xbc\
+p \xcfv8\x90O\x88\x07\xb2\xe6\xc5\x03Y\xf3\x04\
+\xc0|\x82\x00\x98OP\x00\xb3\xe6)\x80Y\xf3$\xc0\
+t\x82\x04\x98N\xd0\x00\x93\xe6i\x80I\xb6E\xc0u\
+\x82\x08\xb8f[\x05\x5c\x9a'\x03\xc6l\xcb\x80q\x82\
+\x0e87O\x07\x9c\x9b'\x04N\x13\x84\xc0i\x82\x12\
+h\xf7b\xa0\xd9\xa8\x81v/\x06\x9a\x8d\x1ah\xb7b\
+\xa0Y\xab\x81v\xeb\x06\xfe\x03$\xe7\x91\x89\x97#\xf5\
+\xaf\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00\xbf\
+/\
+/ Copyright (C) \
+2020 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick.Co\
+ntrols.Material\x0a\
+\x0aToolBar {\x0a M\
+aterial.foregrou\
+nd: \x22white\x22\x0a}\x0a\
+\x00\x00\x01\x0a\
+[\
+Icon Theme]\x0aName\
+=Gallery\x0aComment\
+=Qt Quick Contro\
+ls 2 Gallery Exa\
+mple Icon Theme\x0a\
+\x0aDirectories=20x\
+20,20x20@2,20x20\
+@3,20x20@4\x0a\x0a[20x\
+20]\x0aSize=20\x0aType\
+=Fixed\x0a\x0a[20x20@2\
+]\x0aSize=20\x0aScale=\
+2\x0aType=Fixed\x0a\x0a[2\
+0x20@3]\x0aSize=20\x0a\
+Scale=3\x0aType=Fix\
+ed\x0a\x0a[20x20@4]\x0aSi\
+ze=20\x0aScale=4\x0aTy\
+pe=Fixed\x0a\
+\x00\x00\x00\xe3\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00<\x00\x00\x00<\x04\x03\x00\x00\x00\xc8\xd2\xc4A\
+\x00\x00\x00$PLTE\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6X\x02G\
+\x00\x00\x00\x0ctRNS\x00\x1c\x1d\x1e=l|}\
+\xd8\xd9\xda\xfa\x85T\xfd\xb6\x00\x00\x00bIDAT\
+8\xcbc`\xa070\xc5+\xcb4\xbb\x00\x9f\xb4\xd5\
+\xeemx5\xef\xde]\x80O\xf3\xee\xdd[\xf0j\xde\
+\x9d\x80W\xf36r5k\x8ej\x1e\x11\x9a\xadh\xa7\
+\x99A\x02(\xbd\x1d\xb74c\xf7n\x82\x89\x7f\x1b\xf9\
+\xda)\xb4}T\xfb\x10\xd5Na\xb2\xc1_\xe4\x82\xb5\
+'\x90]\xdc\x03\xb5'PP\xd5P\x0d\x00\x00^\xe9\
+\x99\xeb`\xde0?\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x00\x82\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00<\x00\x00\x00<\x02\x03\x00\x00\x00G\x921\xe1\
+\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
+\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
+\x93\xcd8\x00\x00\x00&IDAT(\xcfc\x08E\
+\x05\x0c\x03\xcd\x0f[\x85\x0c\xa6R\x9d\x1f\xc2\x80\x0cD\
+\x87\x1c\x7f4|\x066|\x06Y~\x01\x00\x0e\xe9\x0f\
+x\xb7\x12\x1d\x13\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x00\xc1\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00<\x00\x00\x00<\x04\x03\x00\x00\x00\xc8\xd2\xc4A\
+\x00\x00\x00\x15PLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
+\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1fI:\x15\
+.\x00\x00\x00\x06tRNS\x00\x00 0\x9f\xef,\
+\x93$\x03\x00\x00\x00UIDAT8\xcbc\x10\xc4\
+\x0b\x18\xa8'\xcd\xa0\x12\x96\xea\xc4\x80S\x9a9,-\
+-\xd5\x00\xa7\xb4j\x1a\x10\x04\xe1\x94v\x03I\xa7\xe0\
+\x94\x0e\x03I\xa7\xe2\x94N\x03\x03r\xa5\x09\x18N\xc0\
+i\x04<F X\x08\x04*\x03\x18\x8cJ\x8f&\xc5\
+\xd1\xa48\x9a\x14G\x93\x22m\xaa9\x00L\x0e\xa9W\
+\xb5\x91\xf7\x9e\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x00\xf6\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00P\x00\x00\x00P\x04\x03\x00\x00\x00|?\xef\x9e\
+\x00\x00\x00\x1bPLTE\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x94Q\xe2 \x00\x00\x00\x09tRNS\x00\
+1267\xe8\xe9\xeb\xfa\x91\xc7O\xc2\x00\x00\x00\x81\
+IDATH\xc7\xed\xd6\xb1\x0d\x800\x0cDQ\x93\
+\xcc\x90\x15R#Q\xd0\xb2\x05l\x00=\x14\xd9 7\
+6#\xf0\x0b\x22\x82d\xd7\xa7gW\xd6\x99\xfd{&\
+\x98\x0b\xfb\xc2\x82Y\x17\xca\xc5\xa2:2P\x88\x0c\x87\
+\xa4\xba0\x90\xec\x0e\x87$\x9d\xcf\xe0\xfc6\x98\x1dt\
+\xd0\xc1\x9e\xc1X\xbe\x02\x87M\xf0#&\xc1\x8f\x88w\
+s\xb2\xc1\x95N:\xe9d{\x92\xd6\x99fW\xa2^\
+\x98\xe0\xc7\xe2E\xd3\x12\x03\xcd\x86\x95\x81\xbc^w3\
+7\xa7\xd5\xc3\xb4x\xa1\x14\xf6\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x00\x83\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00P\x00\x00\x00P\x02\x03\x00\x00\x00\xf3\x7f\x1a>\
+\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
+\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
+\x93\xcd8\x00\x00\x00'IDAT8\xcbc\x08\xc5\
+\x02\x18F\x8a\xe0*\x0c08\x05\x190\xc0\xa8 %\
+\x82\xa3\xf1>\x1a\xef\x839\xdeGn\x99\x0c\x00\xaa\xfe\
+\xe3\x80<\x1b\xa3\xfb\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x00\xdf\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00P\x00\x00\x00P\x04\x03\x00\x00\x00|?\xef\x9e\
+\x00\x00\x00\x18PLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
+\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\
+G\xb0\x1c\xf2\x00\x00\x00\x07tRNS\x00\x00 `\
+\xbf\xcf\xef\x1dV\xbf\x1a\x00\x00\x00oIDATH\
+\xc7c\x10$\x120\x0c\x22\x85\x0c\x0c&\xe5\xe5\xce\x0c\
+\x0c\x84\x15\xaa\x96\x03A\x10a\x85L\xe9 \x85e\x0a\
+\x04\x15\xb2\x96\x83A\x00A\x85\xe6\x10\x85\xc5\x04\x15\xba\
+C\x14\x96\x10TX\x0e\x05\x83Y!\xd1\x9e!:x\
+\x88\x0ep\xa2\xa3\x90\xe8DA|2\x83\x82Q\x85#\
+A\xe1h\xd93Z\xf6\x8c\x96=\xa3\x0aG\xcb\x9e\xd1\
+\xb2gd\x97=\x83\xb0\xaf\x00\x00G\x10>\xf2\xcfQ\
+\xf1\x00\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00\x92\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\
+\x00\x00\x00YIDAT8\x8d\xed\xd4\xb1\x09\x80@\
+\x0c\x05\xd0\x87\x16\x8e\xe4\xa6\xda\x0a\xeeegw\x13X\
+\xd9Z\x08\xe2%bs\xbf\xcfKB $\xa7\xaf\xac\
+\x99P\xb0g\x0c\xb0\xe2\xc0\x86!\x0b+\x18\xa3\xd8\xd2\
+\xb0\x7f\xb1\xeakv\x91\xceo\x92\xbarC\xbfE\xd3\
+\x9e\xc3\x1d\x1a~_Wt\x964\xe1cN\x85\xa7,\
+\x143\xcaZ\x14\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x00{\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\
+\x00\x00\x00BIDATx\xda\xec\x94\xc1\x0d\x000\
+\x08\x02\x8f\xc6\xfdW\xc6\x1d\x1a|)\x03\x10\xf0\x0c\xb2\
+MR\x8f\xb0\xe2\x86\x05 )\xd2\xdb\xb6f\x12\x02\xda\
+\x03e\xec\x86\xa9\xef>\xcaG\xf9\xcbq\xdf\xc06\x00\
+\x00\x00\xff\xff\x03\x00\xf7\x83\x0c-\xe7\xf9\xf9<\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00{\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x02\x03\x00\x00\x00\xf0\xe7\xf5\x9e\
+\x00\x00\x00\x0cPLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
+\x1f\x22\x1f\x1f\x13\xee\x05I\x00\x00\x00\x03tRNS\
+\x00\x00\x80\x17\xceG\xfe\x00\x00\x00\x1bIDAT\x08\
+[c\x08\x05\x01\x86\xd0\xd0}`\xf2?\x12\x09\x11\xc1\
+D\x94\xab\x04\x02\x00\xd4P%\xa9\xa8Z\xf7\x1d\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00\xb8\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
+\x00\x00\x00\x18PLTE\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+V7\x1c*\x00\x00\x00\x08tRNS\x00\x0b\x0e\x90\
+\xbc\xbd\xc2\xfa`jr\x94\x00\x00\x00GIDAT\
+(\xcfc` \x0f(+`\x8a1\xa5'a\x0a\x8a\
+\x96\x97a(e\x0c\xc7\x22\xa8V^\x9eD\x94B\xd1\
+\xe1\xa4\x10\x9b\xaf\x99\xd2\xb1\x85\x99;\x16A\xac\xdaq\
+(\x15\x19\x9eJI\x0a\x01,\x82X\x13-\xd6\xe4\x8d\
+\x17\x00\x00\xbe(.\x06\xf5\xa2\x90\xab\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x00~\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x02\x03\x00\x00\x00\xf1\x90P\xfe\
+\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
+\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
+\x93\xcd8\x00\x00\x00\x22IDAT\x18\x95c\x08\x85\
+\x03\x062\x99Q\xab\xa0`)af\x00\x03\x14\xb0R\
+\x979\xd4\xdc@q\xa8\x03\x00\xea\x17x\xdd\x86\xef\x87\
+\xad\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00\x9e\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
+\x00\x00\x00\x0fPLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
+\x1f\x22\x1f\x1f\x22\x1f\x1f\xc1T\xc5\x91\x00\x00\x00\x04t\
+RNS\x00\x00P\xdf\x1fD\xf4\x8b\x00\x00\x00:I\
+DAT(\xcfc\x10\xc4\x02\x18\xf0\x0a2\x998+\
+`\x08\xaa\xb8\xb88a\x08\x9a\xb8\xb88c\x08\xba\x00\
+\x01q\x82X\xb5c\xb5\x08\xab\x93\x18\x80`\xe0\x04G\
+Ci8\x85\x12\xc1\xdc\x01\x00\xcb~A\x15\x05\x8a+\
+\xbc\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x05\
+\x00o\xa6S\
+\x00i\
+\x00c\x00o\x00n\x00s\
+\x00\x0b\
+\x0cCR|\
+\x00g\
+\x00a\x00l\x00l\x00e\x00r\x00y\x00.\x00q\x00m\x00l\
+\x00\x15\
+\x08\x1e\x16f\
+\x00q\
+\x00t\x00q\x00u\x00i\x00c\x00k\x00c\x00o\x00n\x00t\x00r\x00o\x00l\x00s\x002\x00.\
+\x00c\x00o\x00n\x00f\
+\x00\x09\
+\x08\xac\xef\x1c\
+\x00+\
+\x00M\x00a\x00t\x00e\x00r\x00i\x00a\x00l\
+\x00\x0b\
+\x083\x9c<\
+\x00T\
+\x00o\x00o\x00l\x00B\x00a\x00r\x00.\x00q\x00m\x00l\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x06\
+\x07\x84+\x02\
+\x00q\
+\x00m\x00l\x00d\x00i\x00r\
+\x00\x05\
+\x00v}\xc3\
+\x00p\
+\x00a\x00g\x00e\x00s\
+\x00\x0f\
+\x07\x87\xe7<\
+\x00S\
+\x00p\x00i\x00n\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x15\
+\x02E\x02\xfc\
+\x00P\
+\x00a\x00g\x00e\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\x00g\x00e\
+\x00.\x00q\x00m\x00l\
+\x00\x0e\
+\x09\x09P|\
+\x00T\
+\x00a\x00b\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x15\
+\x0fE\xff\x5c\
+\x00B\
+\x00u\x00s\x00y\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\x00g\x00e\
+\x00.\x00q\x00m\x00l\
+\x00\x12\
+\x05P\x5c\x1c\
+\x00S\
+\x00c\x00r\x00o\x00l\x00l\x00a\x00b\x00l\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\
+\x00l\
+\x00\x13\
+\x0dr\xfb|\
+\x00P\
+\x00r\x00o\x00g\x00r\x00e\x00s\x00s\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\
+\x00m\x00l\
+\x00\x0f\
+\x0b\xe33|\
+\x00T\
+\x00o\x00o\x00l\x00T\x00i\x00p\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x10\
+\x06\xd3\x8b\x1c\
+\x00T\
+\x00e\x00x\x00t\x00A\x00r\x00e\x00a\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0e\
+\x02%\xd0|\
+\x00S\
+\x00l\x00i\x00d\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0f\
+\x00\xf4\xb9\xfc\
+\x00T\
+\x00u\x00m\x00b\x00l\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0e\
+\x0e\xa2\x84\x9c\
+\x00B\
+\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0e\
+\x0b\xc5|\x5c\
+\x00S\
+\x00w\x00i\x00t\x00c\x00h\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x11\
+\x0fw<\xdc\
+\x00T\
+\x00e\x00x\x00t\x00F\x00i\x00e\x00l\x00d\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\
+\x00\x10\
+\x05\xb8\x16\x1c\
+\x00C\
+\x00o\x00m\x00b\x00o\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x10\
+\x00w\xb4\x5c\
+\x00D\
+\x00e\x00l\x00e\x00g\x00a\x00t\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0c\
+\x0e\x8bV\xfc\
+\x00D\
+\x00i\x00a\x00l\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0d\
+\x0c\xc8%\xdc\
+\x00F\
+\x00r\x00a\x00m\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x11\
+\x03$Q\x5c\
+\x00S\
+\x00w\x00i\x00p\x00e\x00V\x00i\x00e\x00w\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\
+\x00\x11\
+\x00\xa3\xff|\
+\x00S\
+\x00c\x00r\x00o\x00l\x00l\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\
+\x00\x13\
+\x002\xb3\xbc\
+\x00R\
+\x00a\x00n\x00g\x00e\x00S\x00l\x00i\x00d\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\
+\x00m\x00l\
+\x00\x10\
+\x0fY+\x5c\
+\x00G\
+\x00r\x00o\x00u\x00p\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x13\
+\x0fN\x9e\x5c\
+\x00R\
+\x00a\x00d\x00i\x00o\x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\
+\x00m\x00l\
+\x00\x17\
+\x0a>\xfa\x1c\
+\x00S\
+\x00c\x00r\x00o\x00l\x00l\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\
+\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0e\
+\x08\xd2\xfe\x5c\
+\x00D\
+\x00i\x00a\x00l\x00o\x00g\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x10\
+\x048\xf8\x1c\
+\x00C\
+\x00h\x00e\x00c\x00k\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x13\
+\x05\xac\xa6\xdc\
+\x00D\
+\x00e\x00l\x00a\x00y\x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\
+\x00m\x00l\
+\x00\x11\
+\x07%R|\
+\x00S\
+\x00t\x00a\x00c\x00k\x00V\x00i\x00e\x00w\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\
+\x00\x09\
+\x09j\x86g\
+\x00a\
+\x00r\x00r\x00o\x00w\x00.\x00p\x00n\x00g\
+\x00\x0a\
+\x06\xebDg\
+\x00a\
+\x00r\x00r\x00o\x00w\x00s\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0d=\xfd'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x004\x00x\x00.\x00p\x00n\x00g\
+\x00\x0d\
+\x02\xa9\x8a\x07\
+\x00a\
+\x00r\x00r\x00o\x00w\x00s\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x0e\xa8z'\
+\x00a\
+\x00r\x00r\x00o\x00w\x00@\x004\x00x\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x0e\xb8z'\
+\x00a\
+\x00r\x00r\x00o\x00w\x00@\x003\x00x\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0d-\xfd'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x003\x00x\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x0e\x88z'\
+\x00a\
+\x00r\x00r\x00o\x00w\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0d\x1d\xfd'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0d\
+\x02\x89\x8a\x07\
+\x00a\
+\x00r\x00r\x00o\x00w\x00s\x00@\x004\x00x\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x05R\xbf'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00.\x00p\x00n\x00g\
+\x00\x0d\
+\x02\x99\x8a\x07\
+\x00a\
+\x00r\x00r\x00o\x00w\x00s\x00@\x003\x00x\x00.\x00p\x00n\x00g\
+\x00\x07\
+\x0d\x83,Y\
+\x00g\
+\x00a\x00l\x00l\x00e\x00r\x00y\
+\x00\x07\
+\x05{TR\
+\x002\
+\x000\x00x\x002\x000\x00@\x002\
+\x00\x05\
+\x005{P\
+\x002\
+\x000\x00x\x002\x000\
+\x00\x07\
+\x05{TT\
+\x002\
+\x000\x00x\x002\x000\x00@\x004\
+\x00\x0b\
+\x0b\xba\x81\xb5\
+\x00i\
+\x00n\x00d\x00e\x00x\x00.\x00t\x00h\x00e\x00m\x00e\
+\x00\x07\
+\x05{TS\
+\x002\
+\x000\x00x\x002\x000\x00@\x003\
+\x00\x08\
+\x07\x9eZG\
+\x00b\
+\x00a\x00c\x00k\x00.\x00p\x00n\x00g\
+\x00\x0a\
+\x0d\xc8&G\
+\x00d\
+\x00r\x00a\x00w\x00e\x00r\x00.\x00p\x00n\x00g\
+\x00\x08\
+\x0cXY'\
+\x00m\
+\x00e\x00n\x00u\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x001\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x1b\x00\x00\x00\x16\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x90\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x0a\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xc1\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x00,\x00\x00\x00\x00\x00\x01\x00\x00\x09\xc5\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x00t\x00\x00\x00\x00\x00\x01\x00\x00\x0a)\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x00\x5c\x00\x02\x00\x00\x00\x01\x00\x00\x00\x09\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x10\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x00t\x00\x00\x00\x00\x00\x01\x00\x00\xe93\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x05\xf6\x00\x00\x00\x00\x00\x01\x00\x00\xd5\x9d\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x062\x00\x00\x00\x00\x00\x01\x00\x00\xe5\x81\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x058\x00\x00\x00\x00\x00\x01\x00\x00\x9b\xf7\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\x16\x00\x00\x00\x00\x00\x01\x00\x00\xda\x5c\
+\x00\x00\x01\x87\x137-\xff\
+\x00\x00\x04\xfc\x00\x00\x00\x00\x00\x01\x00\x00u\x04\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x04\xe4\x00\x00\x00\x00\x00\x01\x00\x00s\xc1\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x05\xd4\x00\x00\x00\x00\x00\x01\x00\x00\xc2Q\
+\x00\x00\x01\x87\x137\xd0\xfa\
+\x00\x00\x05\x94\x00\x00\x00\x00\x00\x01\x00\x00\xa4\x17\
+\x00\x00\x01\x87\x137\xd0\xfa\
+\x00\x00\x05\x16\x00\x00\x00\x00\x00\x01\x00\x00v\xd2\
+\x00\x00\x01\x87\x137\xd0\xfe\
+\x00\x00\x05\xb6\x00\x00\x00\x00\x00\x01\x00\x00\xc0q\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x05X\x00\x00\x00\x00\x00\x01\x00\x00\x9e\xb6\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x05v\x00\x00\x00\x00\x00\x01\x00\x00\xa1\xb0\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x03\x96\x00\x00\x00\x00\x00\x01\x00\x00O+\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02\xe2\x00\x01\x00\x00\x00\x01\x00\x009\x1c\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x03n\x00\x00\x00\x00\x00\x01\x00\x00J\xec\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02,\x00\x00\x00\x00\x00\x01\x00\x00&\x88\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x00#\x85\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xdf\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x03F\x00\x00\x00\x00\x00\x01\x00\x00E\xa6\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x04j\x00\x00\x00\x00\x00\x01\x00\x00e\x81\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x01j\x00\x00\x00\x00\x00\x01\x00\x00\x18\xb0\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x04\x90\x00\x00\x00\x00\x00\x01\x00\x00ie\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02\xbc\x00\x00\x00\x00\x00\x01\x00\x003L\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x01\xe4\x00\x00\x00\x00\x00\x01\x00\x00 \xe6\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x04\xbc\x00\x00\x00\x00\x00\x01\x00\x00l\x1e\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xd0\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x04H\x00\x01\x00\x00\x00\x01\x00\x00_\xe4\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x10g\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x04\x14\x00\x00\x00\x00\x00\x01\x00\x00[\x8b\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02r\x00\x00\x00\x00\x00\x01\x00\x00->\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x01\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x1e\x08\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x03&\x00\x00\x00\x00\x00\x01\x00\x00@\xba\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x01\x94\x00\x00\x00\x00\x00\x01\x00\x00\x1a\xb5\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x03\x08\x00\x00\x00\x00\x00\x01\x00\x00=\xee\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02P\x00\x00\x00\x00\x00\x01\x00\x00(\xd1\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x01:\x00\x00\x00\x00\x00\x01\x00\x00\x15\xe6\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x03\xe8\x00\x00\x00\x00\x00\x01\x00\x00W\xc0\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x00R\xa5\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02\x94\x00\x00\x00\x00\x00\x01\x00\x000\xe7\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06R\x00\x02\x00\x00\x00\x05\x00\x00\x002\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x06z\x00\x02\x00\x00\x00\x03\x00\x00\x00@\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x06f\x00\x02\x00\x00\x00\x03\x00\x00\x00=\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x06\xba\x00\x02\x00\x00\x00\x03\x00\x00\x00:\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x06\x8a\x00\x02\x00\x00\x00\x03\x00\x00\x007\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x06\x9e\x00\x00\x00\x00\x00\x01\x00\x00\xe9\xf6\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x00\xed6\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x00\xee\xb7\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xee0\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x00\xeb\x04\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x00\xecq\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xeb\xeb\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x00\xf1.\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x00\xf2l\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xf1\xea\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x00\xef\x9a\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x00\xf0\xaf\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xf00\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/quickcontrols2/gallery/images/qt-logo.png b/examples/quickcontrols2/gallery/images/qt-logo.png
deleted file mode 100644
index dff772951..000000000
--- a/examples/quickcontrols2/gallery/images/qt-logo.png
+++ /dev/null
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/qt-logo@2x.png b/examples/quickcontrols2/gallery/images/qt-logo@2x.png
deleted file mode 100644
index dbd73aab7..000000000
--- a/examples/quickcontrols2/gallery/images/qt-logo@2x.png
+++ /dev/null
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/qt-logo@3x.png b/examples/quickcontrols2/gallery/images/qt-logo@3x.png
deleted file mode 100644
index 68e763b59..000000000
--- a/examples/quickcontrols2/gallery/images/qt-logo@3x.png
+++ /dev/null
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/qt-logo@4x.png b/examples/quickcontrols2/gallery/images/qt-logo@4x.png
deleted file mode 100644
index 08fd88257..000000000
--- a/examples/quickcontrols2/gallery/images/qt-logo@4x.png
+++ /dev/null
Binary files differ
diff --git a/examples/quickcontrols2/gallery/pages/DelegatePage.qml b/examples/quickcontrols2/gallery/pages/DelegatePage.qml
deleted file mode 100644
index 0a15ece4b..000000000
--- a/examples/quickcontrols2/gallery/pages/DelegatePage.qml
+++ /dev/null
@@ -1,170 +0,0 @@
-// Copyright (C) 2017 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-Pane {
- padding: 0
-
- property var delegateComponentMap: {
- "ItemDelegate": itemDelegateComponent,
- "SwipeDelegate": swipeDelegateComponent,
- "CheckDelegate": checkDelegateComponent,
- "RadioDelegate": radioDelegateComponent,
- "SwitchDelegate": switchDelegateComponent
- }
-
- Component {
- id: itemDelegateComponent
-
- ItemDelegate {
- text: labelText
- width: parent.width
- }
- }
-
- Component {
- id: swipeDelegateComponent
-
- SwipeDelegate {
- id: swipeDelegate
- text: labelText
- width: parent.width
-
- Component {
- id: removeComponent
-
- Rectangle {
- color: SwipeDelegate.pressed ? "#333" : "#444"
- width: parent.width
- height: parent.height
- clip: true
-
- SwipeDelegate.onClicked: view.model.remove(ourIndex)
-
- Label {
- font.pixelSize: swipeDelegate.font.pixelSize
- text: "Remove"
- color: "white"
- anchors.centerIn: parent
- }
- }
- }
-
- swipe.left: removeComponent
- swipe.right: removeComponent
- }
- }
-
- Component {
- id: checkDelegateComponent
-
- CheckDelegate {
- text: labelText
- }
- }
-
- ButtonGroup {
- id: radioButtonGroup
- }
-
- Component {
- id: radioDelegateComponent
-
- RadioDelegate {
- text: labelText
- ButtonGroup.group: radioButtonGroup
- }
- }
-
- Component {
- id: switchDelegateComponent
-
- SwitchDelegate {
- text: labelText
- }
- }
-
- ColumnLayout {
- id: column
- spacing: 40
- anchors.fill: parent
- anchors.topMargin: 20
-
- Label {
- Layout.fillWidth: true
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "Delegate controls are used as delegates in views such as ListView."
- }
-
- ListView {
- id: listView
- Layout.fillWidth: true
- Layout.fillHeight: true
- clip: true
- model: ListModel {
- ListElement { type: "ItemDelegate"; text: "ItemDelegate" }
- ListElement { type: "ItemDelegate"; text: "ItemDelegate" }
- ListElement { type: "ItemDelegate"; text: "ItemDelegate" }
- ListElement { type: "SwipeDelegate"; text: "SwipeDelegate" }
- ListElement { type: "SwipeDelegate"; text: "SwipeDelegate" }
- ListElement { type: "SwipeDelegate"; text: "SwipeDelegate" }
- ListElement { type: "CheckDelegate"; text: "CheckDelegate" }
- ListElement { type: "CheckDelegate"; text: "CheckDelegate" }
- ListElement { type: "CheckDelegate"; text: "CheckDelegate" }
- ListElement { type: "RadioDelegate"; text: "RadioDelegate" }
- ListElement { type: "RadioDelegate"; text: "RadioDelegate" }
- ListElement { type: "RadioDelegate"; text: "RadioDelegate" }
- ListElement { type: "SwitchDelegate"; text: "SwitchDelegate" }
- ListElement { type: "SwitchDelegate"; text: "SwitchDelegate" }
- ListElement { type: "SwitchDelegate"; text: "SwitchDelegate" }
- }
-
- section.property: "type"
- section.delegate: Pane {
- width: listView.width
- height: sectionLabel.implicitHeight + 20
-
- Label {
- id: sectionLabel
- text: section
- anchors.centerIn: parent
- }
- }
-
- delegate: Loader {
- id: delegateLoader
- width: listView.width
- sourceComponent: delegateComponentMap[text]
-
- property string labelText: text
- property ListView view: listView
- property int ourIndex: index
-
- // Can't find a way to do this in the SwipeDelegate component itself,
- // so do it here instead.
- ListView.onRemove: SequentialAnimation {
- PropertyAction {
- target: delegateLoader
- property: "ListView.delayRemove"
- value: true
- }
- NumberAnimation {
- target: item
- property: "height"
- to: 0
- easing.type: Easing.InOutQuad
- }
- PropertyAction {
- target: delegateLoader
- property: "ListView.delayRemove"
- value: false
- }
- }
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/rc_gallery.py b/examples/quickcontrols2/gallery/rc_gallery.py
deleted file mode 100644
index 9b1591af7..000000000
--- a/examples/quickcontrols2/gallery/rc_gallery.py
+++ /dev/null
@@ -1,7855 +0,0 @@
-# Resource object code (Python 3)
-# Created by: object code
-# Created by: The Resource Compiler for Qt version 6.2.2
-# WARNING! All changes made in this file will be lost!
-
-from PySide6 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x00\x0b\
-m\
-odule App\x0a\
-\x00\x00\x00`\
-[\
-Material]\x0aPrimar\
-y=#41cd52\x0aAccent\
-=#41cd52\x0aTheme=S\
-ystem\x0a\x0a[Universa\
-l]\x0aAccent=#41cd5\
-2\x0aTheme=System\x0a\
-\x00\x00\x09\xbb\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2021 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick.Controls\x0a\x0aT\
-oolBar {}\x0a\
-\x00\x00\x0d\x09\
-\x00\
-\x00/\xa5x\x9c\xbdZ_s\xe3\xb6\x11\x7f\xf7\xa7@\
-\xd5<\xd8\x89L\x9f\x9d^\x1e\x94\xb9vd\x89\xb69\
-\x95%\x1fI\x9f{\xd3\xe9d(\x12\x92PS\x04\x0f\
-\x84,+\xa9\xbf{w\x01\x90\x22ER\xb6\xd5\xa4\x9c\
-\x9b3\x09,~\xfb\x07\x8b\xc5b\xa1\xb3\xef\x7f\xc7\xe7\
-H\xfd#\x03\x9en\x04\x9b/$9\x1e\x9c\x90\x8b\x0f\
-\x17\xe7\xc4_P\xf2YB\xcf2\x0d\x92\x0d\x19\xc9\xc8\
-\xd2\x94\x89\x0cB\xd9#\x0b)\xd3\xacwv\xb6^\xaf\
-\xado\xd2b\xfc,f!M2\x96\xcc\xcf\x0c\xaa\xbf\
-`\x19\x99\xb1\x98\x12\xf8\x9b\x06B\x12>#\x12p\xe9\
-s\xb0Lc\x9a\xe5\xdf\xc0\xc7\xe7<~d\xd22C\
-\xbf\xfb\xec\xffri_;\xe3_F\xce\xc0\x1e{v\
-\xef\xd2\x1b~\xa7\x05X.\xa9\x08Y\x10\x93\x91bH\
-\xc9}\x16\xcc)\xf6\x99\x06\x00^\xf08\x02I\xc8S\
-\x10\xb3\x88\x84\xdb1\xc0J\xcb\x09D\xcb`CV0\
-^n\xe5L\x10&\x08C.\xa2 \x09)Y3\xb9\
-P\x22\x96 \xccx\x12\xcc\x05\xa5K\x9aH\x92\x0a\xfe\
-\xc4\x22\x1a\x15\xe4\x88\xe2\xf1\x99\x5c\x07\x82\x12.\xba$\
-\x88%\x15I \xd9\x13\x8d7]\xe0\xd3\xc8\x04h\x96\
-\x19\xb0\x02\x13\xb3\x04\xe0\x8c8d-\x98\x944)q\
-\x9cR\xb9\xa6\xd0\xb2\xe1+\x12$\xd1\xcelY\xe4\x8a\
-\x0bR\xcc\x87\xc6UP\x09\x1a#\x89\x98d<\xc9\x08\
-\x98\xaaa\x1e\x15\xf5\xe9\x96L\xa3\xcdV\x02D\x14\x88\
-\xc2\x92\x19\x17\xcb\x00;\x8d\xfd\xa8\x16:\x94\x04{H\
- \x1b`\x0d\xc5\xe9*\xcb'\x19\xa6\xb4>\x87\xfd\xaa\
-\xa5P\xc1\xfa<\xad\x92\x88\x8a\x92\xc9\x8c\x1f!\xa0\x99\
-\x1d\xa5-P\xf38\xe6\xeb\xacg8v\x5c\x1a\xb1L\
-\x0a6])\xe9\xd1\x1e\x88\x0c\xf3\x91\xf1\x95\x80\xb9\xc0\
-\x96)K\x02\xb1Q\xaad]=;`\x00\xfc\xcbW\
-\x12a\x96<b3\x16*\x0b\xc0\xdc\xc2\x1c\xa7 \x06\
-\xceQ\xb4\xf5\x05\xb9\x003\xa0TZ\x06\x9c\x87\x92\xe9\
-a\x90B\xa2\x12e#\x84|O\xaa\xb2)\xa5\x8cP\
-!\x8f(Y\xae2I\x04E\xd7P\xb0\xc1\x94?a\
-\x97Y\xb9\x1a\x85\x90\x84K\xb0@W\x1b+\x06@\xc4\
-)3N\xa2\x1d\xa9\x80k\x18\x07\x0c\xdc\xdbj\x13\x05\
-X\x96\x8c\x92\x8b\x02\xaaF\xab\x90\xfeQ\xd2\x18\xf7\xc7\
-\x07I\x22\x1e\xae\xd0\xf7\x83|\xe6\xce`R8\xfa$\
-8\x08\xb8\x01,\xcd\xacy%\xe2S\xd6\xa7PsL\
-\x99\x1a\x8f\xf0I\xb0\xa4(\x5c=\xee\x81\x12[\x125\
--Lf9.z\xb5\xc2\xe5B\x07\x94)E\x8f\x02\
-\xad8\xa1I\x04\xad\x18\x00P\xae%\x97\x94h\x93\xc9\
-\x8c\x80\xff\x82\x87G9\xcc\x0c\xfa\xb5\x91\xb2<l\x18\
-\x7f#YJC\xf46\x18\xcb\xd0\x0dM,P\x1e\x97\
-eF\x9d<\xe2\xde8\x1e\xf1&W\xfeC\xdf\xb5\x09\
-\xbc\xdf\xb9\x93/\xce\xd0\x1e\x92\xcb\xaf\xd0i\x93\xc1\xe4\
-\xee\xab\xeb\x5c\xdf\xf8\xe4f2\x1a\xda\xaeG\xfa\xe3!\
-\xb4\x8e}\xd7\xb9\xbc\xf7'\xae\xa7\x96I\xdf\x83\xc1\x1d\
-\xd5\xd7\x1f\x7f%\xf6?\xee\x5c\xdb\xf3\xc8\xc4%\xce\xed\
-\xdd\xc8\x01<`\xe0\xf6\xc7\xbec{]\xe2\x8c\x07\xa3\
-\xfb\xa13\xbe\xee\x12\xc0 \xe3\x89\xaf\x82\xb1s\xeb\xf8\
-@\xe9O\xba\x8au}$\x99\x5c\x91[\xdb\x1d\xdc\xc0\
-g\xff\xd2\x199\xfeW\xc5\xf2\xca\xf1\xc7\xc8\xeej\xe2\
-\xaa\x88@\xee\xfa\xae\xef\x0c\xeeG}\x97\xdc\xdd\xbbw\
-\x13\xcf&\xa8\xdf\xd0\xf1\x06\xa3\xbesk\x0f-\x90\x01\
-\xf8\x12\xfb\x8b=\xf6\x89w\xd3\x1f\x8d\xaa\xea\x22\xce\xe4\
-al\xbb\xa8CY]ri\x83\xa4\xfd\xcb\x91\x8d\xec\
-\x94\xb6C\xc7\xb5\x07>\xaa\xb5}\x1b\x80\x11A\xc8Q\
-WE\xf6;{\xe0\xc0;\xd8\xc5\x06\xa5\xfa\xee\xd7\xae\
-\x81\xf5\xec\xcf\xf7@\x07\x9dd\xd8\xbf\xed_\x83\x8e\xc7\
-\xaf[\x07&ip\xef\xda\xb7(;\x98\xc4\xbb\xbf\xf4\
-|\xc7\xbf\xf7mr=\x99\x0c\x95\xd9=\xdb\xfd\x02\x1b\
-\xa1\xf73\x19M<e\xb8{\xcfV\xc2\x0c\xfb~_\
-\xb1\x07\x140\x1cP\xc0\xfb\xe5\xbd\xe7(\x13:c\xdf\
-v\xdd\xfb;\xdf\x99\x8cO`\xce\x1f\xc0B i\x1f\
-F\x0f\x95\xad'c\xd4Y\xfb\x8e=q\xbf\x224\xda\
-C\xcdF\x97<\xdc\xd8\xd0\xee\xa2y\x95\xd5\xfah\x0e\
-\x0f\xac7\xf0\xcbd\xc0\x12\x8c\xa9\x14\xdb\xeaK\xc6\xf6\
-\xf5\xc8\xb9\xb6\xc7\x03\x1b\x09&\x08\xf4\xe0x\xf6\x09L\
-\x9e\xe3!\x81\xa3\x98\x83G\x00\xdb{\xa5;N\x1a\xc8\
-\xa6\xa6\xeb\xaa\xea\xce]5\xbb\xc4\xb9\x22\xfd\xe1\x17\x07\
-\xe57\xf4\xe0\x0f\x9ec\xdcG\x99opc\xacou\
-J\xe9\x84=\x1e\xe6\xc9\xc4w\xba\xf9\xf7{\xce\x8e\x8e\
-\xd82\xe5\x90\xe1|\x96\x9fW,|\xdc\xf9\xb4F\x01\
-ld\x105v\x9a1\x9b\x12<.\xb5[q0\xcd\
-\xac\x8cJ\x09\xc10+`;V\x07\xb7\xb3~\x9a\x1e\
-\x1d\xc1\x7f\xb1\xd9|\x1e\x18\x84\x985\xf9\xed\x08c\x08\
-\x8bz\x104\xb0A}\xaeY$\x17=\xf2\xe3O\x1f\
-\xd4\xe7\x82b\x5c\xee\x91\x8f\x17\xfa\xfb\x89el\x1a\xd3\
-\x1e\x91bEU\x8bd\x12\xbf;\x10\xfd\x94t$\x97\
-\xaes\xa4\xfag\xab$T\xb1wA\xe3\xf4\xf8\xc4p\
-\xc5'\xa6\x12\x03l\x1a\x07\x1b\x90\xda\x0c#\x9fT\xc0\
-\xff\xc2\xe8\xda\x0aWB@\xe8v`\xdb~&\x7f\xfa\
-\xf4\x89\x9c\x9eW\x06\x9b~3r\x8c\xa1\xf8S\x1d\xb1\
-\x18\x82\xcf\xdf\xb6\xe8\xb0\x1d\xd3\xd8\x9aSy\xdc\xc8\xf0\
-\xc4R\x9aY\x92\x8f\xf8\x9a\x8aA\x90Q\x90\x1e\x14\xed\
-TdX\x09\x14\xb9\x93'.\xb0\xdd\x98\xc4\xe5\x9b<\
-\xfdx\xd6\xa90\xff\x81\x1c\xef\x97N\x09\xd8\xf9\xb6\x8c\
-O\xbf\xc9oh\xcc\xd3\xd0\x18\xf3\xe2\xb4\x03\xc3\x1b\x14\
-\xfe\x01&y!\x97qg\x17\x08$\xad\x83\x004\xa8\
-\xbd\x02\xb5\xd4\x98\x93\x9f\x8bQ\xe0C<\xa5\xc9\xbd\x88\
-\xedg\x95J\xc5\xf1\xe6\x18\x94;Q\x14/z.\x05\
-\x05@\xa1\xd3\x15\xd8I\xe4\x062eA\xa6+\x16\x83\
-\xcd<\xb9\x81\xe4\x5c\x13z\xc6\x13K\xb3\x8d~V8\
-h\xdeX\xe0\xe06\x0b\xdbx\x86\x18e\x8e\xde\x02\xfc\
-8\x84\xfdl\x0b\x94\x81\x10\x14\x12\xe0\xacG\xfe\xd9\xb1\
-\xb3\xb0\xd3%\x9d\xcb |\xec\xfc\xab \xa1I\x00N\
-\x8a\x0c!w|TS\x1b\xd1\x14\xb6\xf6\xbf\x92\xad\x07\
-\xf1\xa4\x0f\x8e\xf9\x04I\x00\x10&\xc1\x13\x9b\xc3+\x02\
-\xf5\x95\xbfZ \xd1|N\xc5\xf1\xc9\x1b\xe5\xe9\x11O\
-B~\x11\x88\xe8\xeftc\xdd\x80\xb7\xe3<\xc1te\
-\xcd,\xf5z(\x83k\xc6;6\xabK\xb6\xed\x86\x89\
-\xb50\xbdhT\x14]i\x8avAW\x88D\x00N\
-\xdc)I\xe2k\xf5P\x92\xdf*\xbe\xc3f\xe4\xb8\x01\
-\xeed\x87L\xa9^\x90\xa5<\xd7\xa5\xfc4\xaf\xe4\xca\
-:V\xea\x13\x1aC\xc2S\xc7\xd7R+\xc7\xdcA\x7f\
-9\xaa\xbe\xbdez:\xb74Yu\x9a'\x83\xa7*\
-\xb3D\x8a}\xd3\xdf8C\xb5\xb1M\x13\xd4Y\xee0\
-/\xd9\xbf\x04P\xd6\xd5\xf0\x5c\xd0\x00\xd2\xbe\x1eFq\
-\x0b\xcf\xbb\x97\xb0\xe4\xb6\x02\xb8|\xadw\x89\x1d\xf3e\
-i\x10\xc2\x8a\xea\x11\x13\xb8\xf3\x07\x8e\x8e`\xa3\xcc\x82\
-\x03Q\xdc\xc3\xe35L\xcbQ\x85B\xf1XIY\xd1\
-\xb3\x18\xae\x14\xdc\xeb\x95%\xd1\xf3g\x14Li\xdc\x80\
-\x86\xd6SQV\x11\xd4\xba%}\x86\xad\xa7\xe6D\x92\
-.\xcbq\xbc\xd4l\xe1\x08t\xf7k\x08_Tlj\
-A\x11N\x0c\x89\xb4R\xf6Lc\x8f\xfdJk\xd6\xc1\
-\x87\xc2\xd9\x1fz\x94H\x96\x8d\x1f\xae:\x9b\xec\xd2\x81\
-\x19\xd9\xafx:\x8d\xfb1\x9b'x\xc8\xe8a\x18U\
-_7\x03\xf8\x84s\xef\xee\xa0'\x88v\xb0\x0b7\x0d\
-\xf9\xd22DO\xaf\x9a\xb0\x07\xbd9\x17{o\x8b\xb9\
-\xdf4\x83u\xaf\xad\x91b_\x03\x02>;~\xdfH\
-\xf3\x9c\xfb\x97\xa5\x92\x0ar\xaa\x93\x8bFZ)\x82$\
-\xc3S\xe2\x04\x96\x05\x03\xf1\xd4b\xf0y\xaam\xdf8\
-\xa6\xb6\x18k\xa0\xca\x7f:\xf9fT\xf7\x86\xfc\xa9\xac\
-\xc6|\x93\x1a\xc2\xd1\x90\xcf\x9b\x82O\xfe\xbc\xfcOb\
-\xe1\x0e\xf1F\x91J[\xc5\xef+C\x7f\x0a\xae\xf5F\
-!\x02\xa4=\xc4(/G\xcd_\x95\xc8=T\xa1~\
-'\xb2\xea\xf8_4\x99\xdc\xf46\x90\x0bk\xc9\x92c\
-\x9d\xb6j\xef\xea\x9a$\xd6\xd2\x19\xeb\x099#?\xc2\
-Y\xfd\xa2\x18\x9cg\xb2\x15\xb2-7\x5cz\xb84\x9e\
-\x1a6\xd3O\x90z\x9eo}pd\x22\xcf\xee\xbe\x19\
-mcU\xd5ag<\x5ce\x0d\xcb\xb6\xbc+\xf6v\
-7\xc5\xd7\x035\xa4\xaf\x14cp\x8f`\xec\x1b\x9a\xaf\
-\x86I7v+\x22f\xf32\xd4.\xa1\xb3b\x15\x94\
-\xeb\x11\x0fL\x16\xa3\xd9\xd0\x1dr+X,\x1bl#\
-pm\x0cO\x06p\xecx\xac\xa7\x19\xf9\xd3\x96#0\
-\xfc\xdb8\xa2\x94u\xac\xb2\xc5\xb1\x96X\xd7\xbc\x9a]\
-\xd2\xa4\x11a\xcc1\x87\x7f\xd5?+\x9f\x0a]k{\
-\x8b\xaf\x0dZ`\x9f\x1d\xeb\x0a\xebo\xc5y\xe8r\x95\
-m@\x17<rq\xd1\xf9\xd9\x14\xe50+\x17a\xef\
-,\x0d\xe64;\xab\xd0\xdcA\x93\x05\x09z\xa7a\x09\
-\xb5\xb1\xc0\x18\xdf\x8a\x8d\x9d\xef\x07\x1d,h\xf8x\xc9\
-\x9f[`\xf3\xee\x03\x80\xf9r\xca\xf7\x00\x9b\xee\xf7\x03\
-\x83\xe7\x07\x9b\xbd\xb6(Q\x1c\x00\x0f!\xaf\x0d\x17\xba\
-\x0e\x03\xe4\xf3=\x90|~\x90\x11\xd4\xf2\xcf\xdaM\xa0\
-\xfa\xdf\x8f|% \x81mAU}\xef\x87\xbc\x16|\
-\x95\xb6\xbbB\xde\xfd~`\x1c\xf1\xda\xa2\xab\xd0\x1c\xc0\
-B\xf0\xb9\xa0Y\x06ix\x1b\x83-\xc5\xfb\xe1\xdd \
-b|\xaf3\x97(\x0e\x81O\xe6\xd4\xc3\xa4\xb6M\xfa\
-\x12\xc5\xfb\xe1\xbdP\xf08n7M\xd1\x7f(\xf4k\
-\x93\xbbCu\x00\x9b}\xb69\xd8,)K\xda\xdd\xdd\
-\xf4\x1e\x00\x9bo\x84m\xc0y\xff\x01\xd0k\x96\xd2}\
-\xd0y\xffA\xd02\x5c\xb4\xe3B\xe7\xfbA\xfd`\xda\
-\xeeu\xba\xf3\x00P\xc8\x88\xfa\x82\x06m\xb0\xa6\xfb0\
-\xe0+F\xe3h\x0f\xb2\xea?\x00\x1a\xce~>K\xdb\
-\x80u\xef\x01\xb0\xab\xe54n]\x17\xa6\xb7\x0dv'\
-\xa5\xdaY\xa3V~&\xee\xed\xf6\x00\xff\xb6:O\xee\
-\xd9\xbb\x05\xc6\xbc\xbdh\xdd\x9fF\xb3\x84I\xd8p1\
-s\xed\x91\xbb \xd9\xcd\x9e\x113\x85\xe6\xaa\x02\xce\x12\
-\x14m)g\xc0\xe6\xcd\xdb\x12pD\xb2\x82\xa7\x80\xc5\
-X\x9eT\x87y8\xa6\x5c\xd4\xc8\xf3\xa3J\x95\xfeF\
-\xb56\x0e\xc8\x95\x0cU\x05\xc1I\x0aE\xdb\x08s\x93\
-\xeb\x92\xc3d6\x83C/\x9c@>\xd6\xab!h7\
-L|{Zk\xeb\x0ev6*\x9eh\x1f/\x18\xc1\
-I\xeb<\x0a\x07aK\xe5\x1c\xdf\xe4)\x1a\xc5J\x93\
-yg\x9f[\xb4\x15\x89\xccQ\xb5v\xbf\x90\xdf\xdaf\
-$\xc03\xbb\xb9\x22\xd6]\xea\x16=\x0c\x92\xf2\xbd*\
-\x96\xa9\xd5\x8f:\xd2\x98J\xaaO|\xb3 \xa4\xea\x9e\
-:G\xb7\xea\x87\xe1\xdcf\xcb@\xccY\x925\xd6\x8c\
-r\x1a\xc9S\xed\x02\xd6\x94\xc3\x06]?\x0e\xe5\x841\
-\x9d\xc9\xa2<\x82\x1f\xad\x94\x22\xf7\x05E*\x1aKQ\
-9\xadf\x0aGu!\xe0\x88\x0b\xc2\xbc\xadh\xa5K\
-]\xef\xad[\x95F\xb5\x95\xae\xd6\x22H\xb5\xf3h\xe2\
-\x07\xf8\xde\xe7\x02\xfb\x16\x96\xd2\xe9Ug\xd3\x9a\xd7\x5c\
-\xadl\xa4\xb7\x9b>7\xa7\xa1m\x98\xd2\xb6b\x86J\
-\xe2[.?tg\xd1\xf5l\x0a\x1a\x90\xf3&\xd1q\
-\xa5\xa6\x91W\xcc\xb0\x98q\xb1=\xb7n*#*\xf5\
-\x0c \xfciKX\xae\x97h\xe2w\x95N\xb6@p\
-\x08\xc6\xf0\x5c)`4\x155\x8a-\xbe\xa8\xb8\x15]\
-\x99\xb9\x1b\xd1\x89+\x0c4\x95\xa4\xc9#\xf9O\xfe>\
-\xc0\xdf5m\xcb\xc0X\xa0\x0fi*\xeb\xb5\x83\xdc\x94\
-\x96\xba/\x22\x9f\xf4\xbd\x11\xe4P\x96\xb9_\xc3\x0d\xb4\
-q\x84\xe1\xb4[\x0ax)1u\xe9\xbf!\xb250\
-\xcdy\xec\x14*\x8av\xf5\xe2\xd4\xca\x16\xaf\xb2.^\
-C}_\xa4w\xa3\x01\x8fW\xcb\xa4\xb1\xb6_\xf6&\
-MVeX*\xfdW:\xda\xee\x0a*\x83\xce?\xd4\
-\xab\xadm\xa1\x19\x9f\xbc\xc8\x8a\xca\xf7\xea\xab\xee\xa5\x8e\
-\x96\x9f\xf4\xf7\x94\x96s\x9b6\x12\x14\x97\x86\x10\xc2\xc9\
-\xd6\xe8\xb5\x0aZ\xfe\x98\x12\x8eq\xf2\xeame\x13=\
-\xfe\x88\x87'\xb8\xe2y20\xdbEk\xf9\x0a\x9f\xad\
-\x0c\xe0\x0e3`s\x5cu\xd0.\xd6\xf8a\xe9\x85\x8b\
-+\xf6L#O\xddu6\x97\xaa\x94\x01\xd4\x05\x5c\x01\
-\xa9/\xbe\xdb\xc9\xf1ir\xc9\xba'\xe6Os\xcd\xf8\
-\x0d\xf7\x0c\xf5\xc1\xef\xdb\xc3]\x0aa@\xc8\xe2\x1e\xb9\
-\xee.!\x8f\xb9\x00\xca?\xd3\xbf\x9c\xd3\x8b\x8fu\x02\
-\x8e~*7\xbd\x96\xe5\x88\xc6jX\x90\xe4o\xe4\xdc\
-\xfa@z\xe4\x83U\xdf\xbc\xff\xbf{\xe2\x1b\xcd\x5c\x22\
-\xbb1\xe9`\xc3\xb5O\xf5m\xdf\xeeS\xaa\xde\x1f\x1c\
-\xd6wn\x0b`\xc5\xb5oW\xe5\xdd\xaa\xb6E5\xee\
-P\xef\xae\xe8\x9bp\x99\x9bGi\xa8\xc3a^\xdd/\
-HusC\x18-\x0dz[\x0cm\xf3p\xa3I\xf9\
-\x92\xa4\x9a\xe9\xb7\xad\x09\xf3\xcb\xc1\x9d\xdcV\xffJ\x03\
-K\xfc\x0c\xdc,\xd3?$\xc4\xcb\xcd9M\xa8(~\
-D+\xb6i\xec6\xf9\x9d\x06\x98\xf1\xf2\xbdI\xed\xab\
-\x99\x99\xf6\x85\xeae\xe9\xf9\xc5!k\xff`\xcb8\x89\
-\xca\xd6\x03\xc12P\x062\xf8\xba\x99\xce\xbb\x0d\x8d\xcd\
-\xf7Y?\x90\x0e\xfe>\x12\xce\x04\x5c\xe0\xcf\x80\xe1\xb8\
-\x00)#\x9c\xffV\x11%\x19\xc30/\xbaD_o\
-\xe0O\xaf\x93\x88\xcc\x82\x0c\xde\xff0\xebU\xdf^\x8e\
-^\x8e\xfe\x0b\xf7\x83q(\
-\x00\x00\x09\xe6\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2020 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick.Controls.Ma\
-terial\x0a\x0aToolBar \
-{\x0a Material.f\
-oreground: \x22whit\
-e\x22\x0a}\x0a\
-\x00\x00\x0e\xe1\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-ComboBox is a co\
-mbined button an\
-d popup list. It\
- presents \x22\x0a \
- + \x22a\
- list of options\
- to the user tha\
-t occupies minim\
-al screen space.\
-\x22\x0a }\x0a\x0a \
- ComboBox {\x0a\
- mode\
-l: [\x22First\x22, \x22Se\
-cond\x22, \x22Third\x22]\x0a\
- anch\
-ors.horizontalCe\
-nter: parent.hor\
-izontalCenter\x0a \
- }\x0a\x0a \
- Label {\x0a \
- width: pare\
-nt.width\x0a \
- wrapMode: L\
-abel.Wrap\x0a \
- horizontal\
-Alignment: Qt.Al\
-ignHCenter\x0a \
- text: \x22Co\
-mboBox can be ma\
-de \x5cl editable. \
-An editable comb\
-o box auto-\x22\x0a \
- + \x22\
-completes its te\
-xt based on what\
- is available in\
- the model.\x22\x0a \
- }\x0a\x0a \
-ComboBox {\x0a \
- editable:\
- true\x0a \
- model: ListMod\
-el {\x0a \
- id: model\x0a \
- L\
-istElement { tex\
-t: \x22Banana\x22 }\x0a \
- Li\
-stElement { text\
-: \x22Apple\x22 }\x0a \
- List\
-Element { text: \
-\x22Coconut\x22 }\x0a \
- }\x0a \
- onAccepted\
-: {\x0a \
- if (find(edi\
-tText) === -1)\x0a \
- \
- model.append(\
-{text: editText}\
-)\x0a }\x0a\
- anch\
-ors.horizontalCe\
-nter: parent.hor\
-izontalCenter\x0a \
- }\x0a }\x0a}\x0a\
-\
-\x00\x00\x08Q\
-\x00\
-\x00\x1dpx\x9c\xd5Ymo\xdb8\x12\xfe\xee_1\
-\xf0\x15\xb8v\xd7\xabt\xb7\x05\x16\xf0~8\xc8\xb2\x92\
-\x08p$G\x92\x93\x0b\x0e\x87\x05#\xd16QY\xf4\
-JT\x5c\xef\x22\xff\xfdf\xa8\x17K\xb6\xdc\xa6{{\
-\xc0\x85(j\x89\x1c\x0e\x9fyf8\x1c*\x17\xdf\xfd\
-\x85m\xa0\xff\x81%\xb7\xfbL\xac\xd6\x0a\xdeZ\xef\xe0\
-\xa7\xf7?\xfe\x0c\xe1\x9a\xc3\xad\xc2\x91\xcd\x96\xa5{\x98\
-\xa9\xd8(%S\xc5\x225\x86\xb5R\xdb||q\xb1\
-\xdb\xed\x8c\xdf\x94!\xe4E\x22\x22\x9e\xe6\x22]]T\
-Z\xc3\xb5\xc8a)\x12\x0e\xf8\xbbe\x99\x02\xb9\x04\x85\
-z\xf9g\xb6\xd9&<\xaf\xdfq\x9dP\xca\xe4\x93P\
-F5\xf5\xcdm\xf8\xeb\xc4\xber\xdc_g\x8ee\xbb\
-\x81=\x9e\x04\xd37%\x80\xcd\x86g\x91`\x09\xcc\xf4\
-\x82\x1c\x169[q\x1a\xab:P\xf1Z&1\x22\x81\
-'\x96\x88\x18\xa2\xc3\x1c\x5c\xaa\xc4\x89B\x1b\xb6\x87\x02\
-\xe7\xab\x03\xce\x94\xd4\xb0(\x92Y\xcc\xd2\x88\xc3N\xa8\
-\xb5\x86\xd8RQ\xcd\x07\xb6\xca8\xdf\xf0T\xc16\x93\
-O\x22\xe6q#NZ\x02\xb9T;\x96q\x90\xd9\x08\
-X\xa2x\x962%\x9ex\xb2\x1f\xe1:\xbd\x8b\xa0\xcc\
-&\xc7\xa5\x90b\x91\xa2\xba\x0a\x0e\xec2\xa1\x14O[\
-+>r\xb5\xe3\xd8\xb3\x97\x05\xb04>\xf2\x96\x01\x97\
-2\x83\xc6\x1f\xa5^\xad*%2\xd2X(!\xd3\x1c\
-\x90\xaa\x1e?j\xe9\x1f\x0eb\xa5\xb6e\x91!\xc4\x8c\
-\xb4\x88t)\xb3\x0d\xa3\xc1\x8a?^\x82\x8e\x14\xd0\x08\
-0\xd5\xa3\xb6\x92\xf8\xa1\xc8k'\xa3KO}hv\
-\x99\x22\x03O\xfdT\xa41\xcfZ\x94UqD\x0a+\
-\xefhkQZ&\x89\xdc\xe5\xe3j\xc5\xa1\xcfc\x91\
-\xabL<\x16\x1a=\xf1A\x9a\xd1\x1f\xb9,2\xf4\x05\
-\xf5<\x8a\x94e{mJ>*\xbd\x83\x04\xd0\xaf,\
-\x14\xa9\xd9\xc8X,E\xa4\x19@\xdf\xa2\x8f\xb7\x08\x83\
-|\x14\x1fbA\xad\x91\x06BUb ?\xb4\xa8\xc7\
-IZ\x13W\x84\x0d\x00\xbe\x83.6mT\x05*\x92\
-1\x87M\x91+\xc88\x85\x86V\xcb\x1e\xe5\x13\x0dU\
-;\xb7\xd4\x02\x90J\x85\x0c\x8cJ\xb2\x12THz\xda\
-\x0b\xa7\xf1\x11*\x5c5J\x98\xc0\xf06\xceA\xc1%\
-[\xa4\xd4P\xd0\xd4\xb8\x88\xf8\xff\x0aM\x15\xfe\xd4H\
-$\x96QA\xb1\xcfj\xcf]\xa0S$\xc5$\x06\x08\
-\x86\x01n\xcd\xbc\x7f'Rk\xdb\xd3\x98\xe9r\xa1\xe7\
-\x93\xfa\x94m8\x81;\xcd{h\xc4AD\xbbE\xa8\
-\xbc\xd6KQ\xad\xf5\xca\xacL(\x8f\x9c\x22\x0a\xad\x92\
-\xc0\xd3\x18{)\x01\x10\xae\x8dT\x1cJ\xcaT\x0e\x18\
-\xbf\x18\xe1q\xadf\x89\xe3%Iy\x9d6\xaax\x83\
-|\xcb#\x8a6\x9c+(\x0c\xab\x5c\xa0#.\xcf+\
-s\xea\x8c{\xed\x04\x10x\x97\xe1\xbd\xe9\xdb\x80\xcfs\
-\xdf\xbbs\xa6\xf6\x14&\x0f8h\x83\xe5\xcd\x1f|\xe7\
-\xea:\x84ko6\xb5\xfd\x00Lw\x8a\xbdn\xe8;\
-\x93E\xe8\xf9\x81\xde&f\x80\x93\x87z\xcct\x1f\xc0\
-\xfe\xe7\xdc\xb7\x83\x00<\x1f\x9c\x9b\xf9\xccA}\xb8\x80\
-o\xba\xa1c\x07#p\x5ck\xb6\x98:\xee\xd5\x08P\
-\x07\xb8^\xa8\x93\xb1s\xe3\x84(\x19z#\xbd\xf4\xe9\
-L\xf0.\xe1\xc6\xf6\xadk|5'\xce\xcc\x09\x1f\xf4\
-\x92\x97N\xe8\xd2r\x97\x9e\xaf3\x02\xccM?t\xac\
-\xc5\xcc\xf4a\xbe\xf0\xe7^`\x03\xd97u\x02kf\
-:7\xf6\xd4@\x0c\xb8.\xd8w\xb6\x1bBpm\xce\
-f]sI\x8fw\xef\xda>\xd9\xd06\x17&6\x22\
-5'3\x9b\x96\xd3\xd6N\x1d\xdf\xb6B2\xeb\xf0d\
-!\x89\x08r6\xd2\x99}n[\x0e>#/6\x1a\
-e\xfa\x0f\xa3Jm`\xdf.P\x0e\x07aj\xde\x98\
-Wh\xe3\xdb\xaf\xb3\x83N\xb2\x16\xbe}C\xd8\x91\x92\
-`1\x09B'\x5c\x846\x5cy\xdeT\xd3\x1e\xd8\xfe\
-\x1d\x1e\x84\xc1/0\xf3\x02M\xdc\x22\xb05\x98\xa9\x19\
-\x9azy\xd4\x82\xc4\xa1\x04>O\x16\x81\xa3)t\xdc\
-\xd0\xf6\xfd\xc5<t<\xf7\x1d\xfa\xfc\x1e\x19B\xa4&\
-\xce\x9ej\xae=\x97l.c\xc7\xf6\xfc\x07RM|\
-ho\x8c\xe0\xfe\xda\xc6~\x9f\xe8\xd5\xac\x99DG\x80\
-\xecYa[\x0c\x97D2\xb5a\x07{\xc1\xb5\xaff\
-\xce\x95\xedZ6\x09x\xa4\xe8\xde\x09\xecw\xe8<'\
- \x01G/\x8e\x11\x81\xcb.\xb4\xed\xe44\xc4\xa6\xdd\
-u\xd9\x0d\xe7\x91\xf6.8\x97`N\xef\x1c\xc2_\xc9\
-c<\x04N\x15>\x9a>\xeb\xbab\xdf\x18\xb6\xca\x09\
-\xdb\x9d\xd6\xc5\xc4\x9b\xb2\xfb\xafk\x17\x83\x81\xd8l%\
-V8\xb7\xea\xb6\x10\xd1\xa7\xa3Wc\xc6\xf0 \xc3\xac\
-q\xd4M\xd5T&\x93|0\x98\xb3\x94\xc3\x1f\x03\xca\
-\x05[\x16S\xed2\x86\xf7\x83\xf2=\x93\xb8\xd9\xd5\x1e\
-\x8b\x99\x0c\xf3F\xc2W\x98\xee(?\xc9\x14\xd3\xe1\x0d\
-\xdb\x8e\xab\x89\xd4\x86\x8e\xe2\x9bi%4\x1cc\xaa:\
-\xbc6sF\x07\xf1`'\xb6\xbc%\x9f\xb7\xdf\xfb&\
-Xk\x1e}jM\x88\xda\xef}\x13|\x16\x0b\xd9\x9a\
-\x90\xb5\xdf\xcf@R\xd1\xba\x8b\xa9\xd5\xd1L\xd13\x9e\
-K\x8e\x9a\xce\x16\x15\x22>c\xfe\xa0\x11i\x93\xd5\x9a\
-\xa9\x8f\x1c\xfe\x19\xab\xdc\x84=\xf2$\xc4\xc7\xce\xd8N\
-\xc4j=\xa6\x92\x16\xb5\x19\xfa\xad\x19\x7f~\x09\xac~\
-\x96\x0f\xb8:^9\x02v2\xff\xbf\x82\xdd\x11\xe8\x83\
-\xdb^6\xe3\x1b<\xe5{\xf0\xd6\xcd\xe7\x91b\xe9*\
-9\xc6\x5c\xb7H&2\x1bw\xcd3\xb6\x19\xcf\xe9\xc4\
-\xfc\x07\x0c\xff\xf6\xe1\xc3\x87!\x8c\xf1\xe1\xe3\xc7\x8f\xc3\
-^\x15_\xe2\xbe\xdd\xd6\x9c\xea\x90F\xb0|\xed\x07\x95\
-\x08\xdcB*+\xf8\xa9A\xd4\xbaheja\x89\xf9\
-\x89#\x1dO\x82\xef\x0c\xac\x05yb\x94\xcc\xbc\xc5r\
-\xcd\xc1\xd2\xf4\xf3\xbb~M3r\xcb\x19j\xa8-1\
-\x1d\x18[\xf1\x99'\x81\xf8\x9d\x1f\xb9\xd9\xe8\x8e\x9eU\
-RF\x00V\xba\x84\xa8\x9fCmu\xe9\x8a\xe1n\x8d\
-{\xe4\xbc\x18^P\xd6X\xc4\x18XTc\x8d\xe5\xa4\
-5\xa1\xbd\x13\x9eOz\xbb=\xcf]Z\xb4yF\xc2\
-\x97\xea4\xb4N\xe5\xb2\xd2\x9f\xe7\x04_\xb4\xef\xfa\x93\
-\xd5\x01U'\xb9\xbd0!t\x16\x9e\x14J\xc9\xf4*\
-\x93\xc5\xf6hi\x9d\xf6Z\xc3/\x81\xdb\x9f*\x0fp\
-;\xa9\xf5\x1b\xf2W\x0b\x86\xb1\xa2\xff\xcf\xc0{1\xaf\
-\xe72t;\xa1\xb5\x04\xfe\x0c\xb3\x96L\x8aMZ\x9e\
-\xa3\xc7^\xd5CMW\xbee\x91>??\xbeo\xfa\
-\xea0\xc6\xdbcr\x12\xc2\xf5\xa0\x92\xdb\x1b\x96\xad\x04\
-\x06\xf9O\xef\x0f\xd8\xfbvm\x89C\xab\xbb/\x13\x92\
-\xce\x1fm\x91]\xc6\xb67\x98\x1c\xc6\xa5\x02\xe3\x1e\xdf\
-;\x02\xb8\xa6\xf8\x9d.\xc5\x89\x99\x88UJw\x9b1\
-V\x06\x86~\xbb\xb6\xf4\x86\xeb\xe1i\xd8\xb0\x18U\xd5\
-\x83\xbe\x81\xeaK\x07\xcb\x9b\x02A_\xda(C\xe1\x95\
-\xa2\x88\xd644\xc3;\xd0\x1d\xe5\xaca\x8b\xe2\x83\x99\
-\xd5h\xcfq\x93TC\xdfJAK\xe4\xbaJ\xc7'\
-2\xad\xec\xdb\xee\xd6iu\xacA\x11\x89}Y\x93\xc6\
-\xec\xa4\xfc\x1e\xf2\x07\xa8\xfd\x16\xa9\xee\x96?\xbf\xd4\x94\
-uz{\xd2\xd4+R\xd5-\xd8\x1a]\xdd\xee\xd7\xaf\
-\xac[f6\xca\xba\xdd\xaf_Y\xb78n\x94u\xbb\
-_\xbf\xb2\xa3\x92\xbe\x1d\x1b\xed\xfeW\xa5\xee\xb8\x98\xc1\
-\xd2\x97>\xc6\xd4\xb75\x9cO\xea\x87\xbdBu\x92\x1e\
-C\xeb\xde\xd7nU\x95['\xde3un]\xe3V\
-j\xcbs\x06\xaf\x98X\xa0\x0aUf\x5c\xf8\xbes\x96\
-5<|\xa1\x12\xd5\x07zKc\xafPIQ%\xd6\
-+\xf1\xe2\xca\xf1\x8b\xb4\x1e\x98\x9aIF\x1f}\xfbo\
-&\xb5X)\xf4'\xe9,\xbf\xb66\xd5\xcb\xb8\xf7\xb2\
-\xfd/\xb2\xfc\xdf\xa7\x8c6\xb7t\xfa\xce\x98\xae\x0e\xe5\
-\xccXsu^\xbe9w\xe9\xb0>s\xd6v&\x08\
-\x8c\xdd\xfa\xa2\x817\x5c\xfa9\x85sq\x01\x16K\xff\
-\xae`\x89\x02\xf4'\x04\xb6\xa7O\x92\xb1,\xbf2V\
-\xdf\x90\xbb\xf7\xcc\xa8\xa9\xee\x84\xcay\xb2\x1c\xf5i\xcd\
-\xb5\x12\xa10\xf82\xfap\x9e+\xceb\xa3w\xa3i\
-\xaaeZ\xdeD\xf0\xd6\xc7\x7f+P\xb9\xc0z'\x15\
-\xd5\x9f\x0f\xfa#p^\x99jF_\x10\xa2\xa6\xb0\x5c\
-\xe3\xea\xab\xee?\xa6\x10\xf7f\x83\x0f\xa7\xb2\xfd\xd7.\
-KO,)xO\x95R\xb7\xd3DC\xcd-6\x8f\
-<\xfb\x9a\xb1m;\xe8s\xc5K\xd0\x97\x1b\xff<^\
-%\xe9\xeb\xd1\xb9Q\xce\xe8\xafBF\x99\xfd\xec\xf2\xc5\
-I\xbdB\xdd\x16,\xfe\x06\xfb\xfe_\xdd\xb4dI\xfe\
-R?\x1d'\x9f\xee\xd3\xf3\xe0y\xf0\x1f\x86VO'\
-\
-\x00\x00\x0b\xef\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-The Dial is simi\
-lar to a traditi\
-onal dial knob t\
-hat is found on \
-devices such as \
-\x22\x0a \
- + \x22stereos or \
-industrial equip\
-ment. It allows \
-the user to spec\
-ify a value with\
-in a range.\x22\x0a \
- }\x0a\x0a \
-Dial {\x0a \
- value: 0.5\x0a \
- anchor\
-s.horizontalCent\
-er: parent.horiz\
-ontalCenter\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0c2\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-SpinBox allows t\
-he user to choos\
-e an integer val\
-ue by clicking t\
-he up or down in\
-dicator buttons,\
- \x22\x0a \
- + \x22by pressin\
-g up or down on \
-the keyboard, or\
- by entering a t\
-ext value in the\
- input field.\x22\x0a \
- }\x0a\x0a \
- SpinBox {\x0a \
- id: box\x0a\
- valu\
-e: 50\x0a \
- anchors.horizo\
-ntalCenter: pare\
-nt.horizontalCen\
-ter\x0a \
-editable: true\x0a \
- }\x0a }\x0a}\
-\x0a\
-\x00\x00\x0e\x0f\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- readonly proper\
-ty int itemWidth\
-: Math.max(butto\
-n.implicitWidth,\
- Math.min(button\
-.implicitWidth *\
- 3, page.availab\
-leWidth / 3 * 2)\
-)\x0a\x0a Column {\x0a\
- spacing:\
- 40\x0a widt\
-h: parent.width\x0a\
-\x0a Label {\
-\x0a wid\
-th: parent.width\
-\x0a wra\
-pMode: Label.Wra\
-p\x0a ho\
-rizontalAlignmen\
-t: Qt.AlignHCent\
-er\x0a t\
-ext: \x22Frame is u\
-sed to layout a \
-logical group of\
- controls togeth\
-er, within a vis\
-ual frame.\x22\x0a \
- }\x0a\x0a F\
-rame {\x0a \
- anchors.horiz\
-ontalCenter: par\
-ent.horizontalCe\
-nter\x0a\x0a \
- Column {\x0a \
- spaci\
-ng: 20\x0a \
- width: pa\
-ge.itemWidth\x0a\x0a \
- Ra\
-dioButton {\x0a \
- \
-text: \x22First\x22\x0a \
- \
- checked: true\x0a\
- \
- width: paren\
-t.width\x0a \
- }\x0a \
- RadioB\
-utton {\x0a \
- id: \
-button\x0a \
- text:\
- \x22Second\x22\x0a \
- wi\
-dth: parent.widt\
-h\x0a \
- }\x0a \
- RadioButton \
-{\x0a \
- text: \x22Thi\
-rd\x22\x0a \
- width: p\
-arent.width\x0a \
- }\x0a \
- }\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0b\xab\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-PageIndicator is\
- used to indicat\
-e the currently \
-active page in a\
- container of pa\
-ges.\x22\x0a }\x0a\
-\x0a PageInd\
-icator {\x0a \
- count: 5\x0a \
- curren\
-tIndex: 2\x0a \
- anchors.ho\
-rizontalCenter: \
-parent.horizonta\
-lCenter\x0a \
-}\x0a }\x0a}\x0a\
-\x00\x00\x0e\x98\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aPa\
-ge {\x0a id: pag\
-e\x0a\x0a SwipeView\
- {\x0a id: s\
-wipeView\x0a \
- anchors.fill: p\
-arent\x0a cu\
-rrentIndex: tabB\
-ar.currentIndex\x0a\
-\x0a Repeate\
-r {\x0a \
-model: 3\x0a\x0a \
- Pane {\x0a \
- wid\
-th: swipeView.wi\
-dth\x0a \
- height: swip\
-eView.height\x0a\x0a \
- Co\
-lumn {\x0a \
- spaci\
-ng: 40\x0a \
- width\
-: parent.width\x0a\x0a\
- \
- Label {\x0a \
- \
- width: paren\
-t.width\x0a \
- \
-wrapMode: Label.\
-Wrap\x0a \
- hor\
-izontalAlignment\
-: Qt.AlignHCente\
-r\x0a \
- text: \
-\x22TabBar is a bar\
- with icons or t\
-ext which allows\
- the user \x22\x0a \
- \
- + \x22to \
-switch between d\
-ifferent subtask\
-s, views, or mod\
-es.\x22\x0a \
- }\x0a\x0a \
- \
-Image {\x0a \
- \
-source: \x22../imag\
-es/arrows.png\x22\x0a \
- \
- anchors.h\
-orizontalCenter:\
- parent.horizont\
-alCenter\x0a \
- }\x0a \
- }\
-\x0a }\x0a \
- }\x0a }\x0a\x0a\
- footer: TabB\
-ar {\x0a id:\
- tabBar\x0a \
-currentIndex: sw\
-ipeView.currentI\
-ndex\x0a\x0a Ta\
-bButton {\x0a \
- text: \x22Fir\
-st\x22\x0a }\x0a \
- TabButton \
-{\x0a te\
-xt: \x22Second\x22\x0a \
- }\x0a T\
-abButton {\x0a \
- text: \x22Th\
-ird\x22\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0b\xcc\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-BusyIndicator is\
- used to indicat\
-e activity while\
- content is bein\
-g loaded,\x22\x0a \
- + \x22\
- or when the UI \
-is blocked waiti\
-ng for a resourc\
-e to become avai\
-lable.\x22\x0a \
-}\x0a\x0a BusyI\
-ndicator {\x0a \
- anchors.h\
-orizontalCenter:\
- parent.horizont\
-alCenter\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0b(\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aPa\
-ge {\x0a id: pag\
-e\x0a\x0a default p\
-roperty alias co\
-ntent: pane.cont\
-entItem\x0a\x0a Fli\
-ckable {\x0a \
- anchors.fill: p\
-arent\x0a co\
-ntentHeight: pan\
-e.implicitHeight\
-\x0a flickab\
-leDirection: Fli\
-ckable.AutoFlick\
-IfNeeded\x0a\x0a \
- Pane {\x0a \
- id: pane\x0a \
- width:\
- parent.width\x0a \
- }\x0a\x0a \
- ScrollIndicator\
-.vertical: Scrol\
-lIndicator { }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0cv\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-ProgressBar indi\
-cates the progre\
-ss of an operati\
-on. It can be se\
-t in an \x22\x0a \
- + \x22ind\
-eterminate mode \
-to indicate that\
- the length of t\
-he operation is \
-unknown.\x22\x0a \
- }\x0a\x0a Pro\
-gressBar {\x0a \
- id: bar\x0a \
- value\
-: 0.5\x0a \
- anchors.horizo\
-ntalCenter: pare\
-nt.horizontalCen\
-ter\x0a }\x0a\x0a \
- ProgressB\
-ar {\x0a \
- indeterminate: \
-true\x0a \
- anchors.horizon\
-talCenter: paren\
-t.horizontalCent\
-er\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0eU\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aPa\
-ne {\x0a id: pan\
-e\x0a\x0a SwipeView\
- {\x0a id: v\
-iew\x0a curr\
-entIndex: 1\x0a \
- anchors.fill\
-: parent\x0a\x0a \
- Repeater {\x0a \
- model: \
-3\x0a\x0a P\
-ane {\x0a \
- width: vie\
-w.width\x0a \
- height: \
-view.height\x0a\x0a \
- Col\
-umn {\x0a \
- spacin\
-g: 40\x0a \
- width:\
- parent.width\x0a\x0a \
- \
- Label {\x0a \
- \
- width: parent\
-.width\x0a \
- w\
-rapMode: Label.W\
-rap\x0a \
- hori\
-zontalAlignment:\
- Qt.AlignHCenter\
-\x0a \
- text: \x22\
-SwipeView provid\
-es a navigation \
-model that simpl\
-ifies horizontal\
- paged scrolling\
-. \x22\x0a \
- + \x22T\
-he page indicato\
-r on the bottom \
-shows which is t\
-he presently act\
-ive page.\x22\x0a \
- }\
-\x0a\x0a \
- Image {\x0a \
- \
- source: \x22.\
-./images/arrows.\
-png\x22\x0a \
- anc\
-hors.horizontalC\
-enter: parent.ho\
-rizontalCenter\x0a \
- \
- }\x0a \
- }\x0a \
- }\x0a }\x0a \
- }\x0a\x0a PageIn\
-dicator {\x0a \
- count: view.co\
-unt\x0a curr\
-entIndex: view.c\
-urrentIndex\x0a \
- anchors.bott\
-om: parent.botto\
-m\x0a anchor\
-s.horizontalCent\
-er: parent.horiz\
-ontalCenter\x0a \
-}\x0a}\x0a\
-\x00\x00\x0b\xf8\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-TextArea is a mu\
-lti-line text ed\
-itor.\x22\x0a }\
-\x0a\x0a TextAr\
-ea {\x0a \
- width: Math.max\
-(implicitWidth, \
-Math.min(implici\
-tWidth * 3, pane\
-.availableWidth \
-/ 3))\x0a \
- anchors.horizo\
-ntalCenter: pare\
-nt.horizontalCen\
-ter\x0a\x0a \
- wrapMode: TextA\
-rea.Wrap\x0a \
- text: \x22Text\
-Area\x5cn...\x5cn...\x5cn\
-...\x22\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0db\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aFl\
-ickable {\x0a id\
-: flickable\x0a\x0a \
- contentHeight: \
-pane.height\x0a\x0a \
- Pane {\x0a \
-id: pane\x0a \
- width: flickabl\
-e.width\x0a \
-height: flickabl\
-e.height * 1.25\x0a\
-\x0a Column \
-{\x0a id\
-: column\x0a \
- spacing: 40\
-\x0a wid\
-th: parent.width\
-\x0a\x0a La\
-bel {\x0a \
- width: par\
-ent.width\x0a \
- wrapMo\
-de: Label.Wrap\x0a \
- h\
-orizontalAlignme\
-nt: Qt.AlignHCen\
-ter\x0a \
- text: \x22Scrol\
-lBar is an inter\
-active bar that \
-can be used to s\
-croll to a speci\
-fic position. \x22\x0a\
- \
- + \x22A scroll \
-bar can be eithe\
-r vertical or ho\
-rizontal, and ca\
-n be attached to\
- any Flickable, \
-\x22\x0a \
- + \x22such as\
- ListView and Gr\
-idView.\x22\x0a \
- }\x0a\x0a \
- Image {\x0a \
- rota\
-tion: 90\x0a \
- source:\
- \x22../images/arro\
-ws.png\x22\x0a \
- anchors.\
-horizontalCenter\
-: parent.horizon\
-talCenter\x0a \
- }\x0a \
-}\x0a }\x0a\x0a Scr\
-ollBar.vertical:\
- ScrollBar { }\x0a}\
-\x0a\
-\x00\x00\x0c\x01\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-A tool tip is a \
-short piece of t\
-ext that informs\
- the user of a c\
-ontrol's functio\
-n.\x22\x0a }\x0a\x0a \
- Button {\x0a\
- text\
-: \x22Tip\x22\x0a \
- anchors.hori\
-zontalCenter: pa\
-rent.horizontalC\
-enter\x0a\x0a \
- ToolTip.timeo\
-ut: 5000\x0a \
- ToolTip.vis\
-ible: pressed\x0a \
- ToolTi\
-p.text: \x22This is\
- a tool tip.\x22\x0a \
- }\x0a }\x0a}\x0a\
-\
-\x00\x00\x0c&\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-Slider is used t\
-o select a value\
- by sliding a ha\
-ndle along a tra\
-ck.\x22\x0a }\x0a\x0a\
- Slider {\
-\x0a id:\
- slider\x0a \
- value: 0.5\x0a \
- ancho\
-rs.horizontalCen\
-ter: parent.hori\
-zontalCenter\x0a \
- }\x0a\x0a \
-Slider {\x0a \
- orientation\
-: Qt.Vertical\x0a \
- value:\
- 0.5\x0a \
- anchors.horizon\
-talCenter: paren\
-t.horizontalCent\
-er\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0bl\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-Tumbler is used \
-to select a valu\
-e by spinning a \
-wheel.\x22\x0a \
-}\x0a\x0a Tumbl\
-er {\x0a \
- model: 10\x0a \
- anchors.h\
-orizontalCenter:\
- parent.horizont\
-alCenter\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0c\x9d\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-RangeSlider is u\
-sed to select a \
-range specified \
-by two values, b\
-y sliding each h\
-andle along a tr\
-ack.\x22\x0a }\x0a\
-\x0a RangeSl\
-ider {\x0a \
- id: slider\x0a \
- first.\
-value: 0.25\x0a \
- second.v\
-alue: 0.75\x0a \
- anchors.h\
-orizontalCenter:\
- parent.horizont\
-alCenter\x0a \
- }\x0a\x0a Rang\
-eSlider {\x0a \
- orientatio\
-n: Qt.Vertical\x0a \
- first\
-.value: 0.25\x0a \
- second.\
-value: 0.75\x0a \
- anchors.\
-horizontalCenter\
-: parent.horizon\
-talCenter\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0e>\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- readonly proper\
-ty int itemWidth\
-: Math.max(butto\
-n.implicitWidth,\
- Math.min(button\
-.implicitWidth *\
- 3, page.availab\
-leWidth / 3 * 2)\
-)\x0a\x0a Column {\x0a\
- spacing:\
- 40\x0a widt\
-h: parent.width\x0a\
-\x0a Label {\
-\x0a wid\
-th: parent.width\
-\x0a wra\
-pMode: Label.Wra\
-p\x0a ho\
-rizontalAlignmen\
-t: Qt.AlignHCent\
-er\x0a t\
-ext: \x22A GroupBox\
- provides a fram\
-e, a title on to\
-p of it, and a l\
-ogical group of \
-controls within \
-that frame.\x22\x0a \
- }\x0a\x0a \
-GroupBox {\x0a \
- title: \x22T\
-itle\x22\x0a \
- anchors.horizo\
-ntalCenter: pare\
-nt.horizontalCen\
-ter\x0a\x0a \
- Column {\x0a \
- spacin\
-g: 20\x0a \
- width: pag\
-e.itemWidth\x0a\x0a \
- Rad\
-ioButton {\x0a \
- t\
-ext: \x22First\x22\x0a \
- \
- checked: true\x0a \
- \
- width: parent\
-.width\x0a \
- }\x0a \
- RadioBu\
-tton {\x0a \
- id: b\
-utton\x0a \
- text: \
-\x22Second\x22\x0a \
- wid\
-th: parent.width\
-\x0a \
- }\x0a \
- RadioButton {\
-\x0a \
- text: \x22Thir\
-d\x22\x0a \
- width: pa\
-rent.width\x0a \
- }\x0a \
- }\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0c\xee\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-RadioButton pres\
-ents an option b\
-utton that can b\
-e toggled on or \
-off. \x22\x0a \
- + \x22Radio \
-buttons are typi\
-cally used to se\
-lect one option \
-from a set of op\
-tions.\x22\x0a \
-}\x0a\x0a Colum\
-n {\x0a \
-spacing: 20\x0a \
- anchors.\
-horizontalCenter\
-: parent.horizon\
-talCenter\x0a\x0a \
- RadioButt\
-on {\x0a \
- text: \x22Firs\
-t\x22\x0a }\
-\x0a Rad\
-ioButton {\x0a \
- text:\
- \x22Second\x22\x0a \
- checke\
-d: true\x0a \
- }\x0a \
- RadioButton {\x0a\
- \
-text: \x22Third\x22\x0a \
- en\
-abled: false\x0a \
- }\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0d|\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aFl\
-ickable {\x0a id\
-: flickable\x0a\x0a \
- contentHeight: \
-pane.height\x0a\x0a \
- Pane {\x0a \
-id: pane\x0a \
- width: flickabl\
-e.width\x0a \
-height: flickabl\
-e.height * 1.25\x0a\
-\x0a Column \
-{\x0a id\
-: column\x0a \
- spacing: 40\
-\x0a wid\
-th: parent.width\
-\x0a\x0a La\
-bel {\x0a \
- width: par\
-ent.width\x0a \
- wrapMo\
-de: Label.Wrap\x0a \
- h\
-orizontalAlignme\
-nt: Qt.AlignHCen\
-ter\x0a \
- text: \x22Scrol\
-lIndicator is a \
-non-interactive \
-indicator that i\
-ndicates the cur\
-rent scroll posi\
-tion. \x22\x0a \
- + \x22A\
- scroll indicato\
-r can be either \
-vertical or hori\
-zontal, and can \
-be attached to a\
-ny Flickable, \x22\x0a\
- \
- + \x22such as L\
-istView and Grid\
-View.\x22\x0a \
- }\x0a\x0a \
- Image {\x0a \
- rotati\
-on: 90\x0a \
- source: \x22\
-../images/arrows\
-.png\x22\x0a \
- anchors.ho\
-rizontalCenter: \
-parent.horizonta\
-lCenter\x0a \
- }\x0a }\x0a\
- }\x0a\x0a Scrol\
-lIndicator.verti\
-cal: ScrollIndic\
-ator { }\x0a}\x0a\
-\x00\x00\x09\x89\
-\x00\
-\x00 \xa9x\x9c\xcdYmo\xdb8\x12\xfe\x9e_1\
-\x08\xfa\xa1\xd9u\x94nw\x81\x03|\x1f\x0e~Q\x12\
-\x01\x8e\xedJrs\x01\x0eX\xd0\x12\x1d\xf3\x22\x89*\
-I\xc5\xf5\xed\xf5\xbf\xdf\x0c)\xc7\xb2-'A\xdb\xdd\
-\x1eQ4\xa28\xaf\xcf\x0c\x87C\xf9\xe2\xa7\xef8N\
-\xec?\x18\xc8r\xad\xc4\xfd\xd2\xc0\xdb\xc1\x19\xbc\x7f\xf7\
-\xcb\xdf ^r\xf8`p%/Y\xb1\x86\x91I=\
-GY\x18\x96\x98.,\x8d)u\xf7\xe2b\xb5Zy\
-\x9f\x8c'\xe4E&\x12^hQ\xdc_\xd4R\xe3\xa5\
-\xd0\xb0\x10\x19\x07\xfc[2e@.\xc0\xa0\x5c\xfe\x99\
-\xe5e\xc6\xf5f\x8ezb)\xb3\x07a\xbc\x9a\xf5\xcd\
-\x87\xf8\xf7\xbe\x7f\x15\x8c\x7f\x1f\x05\x03\x7f\x1c\xf9\xdd~\
-4|\xe3\x0c\xc8s\xae\x12\xc12\x18Y\x85\x1cf\x9a\
-\xddsZ\xab_\xa0\xe0\xa5\xccR\xb4\x04\x1eY&R\
-H\xb6<\xa8\xca\xd9\x89D9[C\x85\xfcfkg\
-AbX\x92H\x95\xb2\x22\xe1\xb0\x12fiMl\x88\
-\xa8\xf9\x81\xdd+\xces^\x18(\x95|\x14)O\x9f\
-\xc8IJ$\x17f\xc5\x14\x07\xa9:\xc02\xc3U\xc1\
-\x8cx\xe4\xd9\xba\x83zZ\x95 M\xaeQ\x15B,\
-\x0a\x14W\x9b\x03+%\x8c\xe1EC\xe3\x9c\x9b\x15\xc7\
-7kY\x01+\xd2\xbdhyp)\x15<\xc5\xc3\xc9\
-\xb5\xa2\x0a\x02\xa3H\x85\x11\xb2\xd0\x80P\xb5\xc4\xd1R\
-\x9fo\xc9\x9c\xb4E\xa5\xd0DERD\xb1\x90*g\
-\xb4X\xe3\xc7\x9d\xd1\x89\x01Z\x01fZ\xc4\xd6\x14\xe7\
-\x95\xde\x04\x19Cz\x18\xc3\xde.R\xe4\xe0a\x9c\xaa\
-\x22\xe5\xaa\x01Y\x9dG$\xb0\x8e\x8e\xf5\x16\xa9e\x96\
-\xc9\x95\xee\xd6\x1aOC\x9e\x0am\x94\x98W\xd6z\xc2\
-\x83$c<\xb4\xac\x14\xc6\x82\xde\xccE\xc1\xd4\xda\xba\
-\xa2;.:\x08\x00\xfd\x95\x95!1\xb9L\xc5B$\
-\x16\x01\x8c-\xc6\xb8D3(F\xe96\x17\xcc\x12a\
- \xab\x9c\x0d\x14\x87\x06\xf4\xc8d%qC\xb6\x01\xc0\
-O\xb0k\x9bu\xaa6*\x91)\x87\xbc\xd2\x06\x14\xa7\
-\xd4\xb0b\xd9\x5c>\xd2R\xbds\x9d\x14\x80B\x1aD\
-\xa0\xe3\xc0\xcaP \xc9i*.\xd2=\xabPk\x92\
-1\x81\xe9\xed\x1d3\x05U6@\xd9\x98\x82\xae\xa6U\
-\xc2\xff,k\xea\xf4\xa7A$\xa9L*\xca}\xb6\x89\
-\xdc\x05\x06ERNb\x82`\x1a\xe0\xd6\xd4\xed;\x91\
-F\xd3\x9f'7\xc7\x5cX~\x12_\xb0\x9c\x93q\x87\
-u\x0f\x9d\xd8\x92\xd8\xb0\x08\xa37r)\xab\xad\x5c\xa9\
-\x5cA\x99s\xca(\xf4J\x02/R|K\x05\x80\xec\
-\xca\xa5\xe1\xe0 3\x1a0\x7f1\xc3\xd3\x8d\x98\x05\xae\
-;\x90\xf4\xa6l\xd4\xf9\x06\xba\xe4\x09e\x1b\xf2\x0aJ\
-\xc3\xba\x16\xd8\x8c\xd3\xbavgSq\xaf\x83\x08\xa2\xc9\
-e|\xdb\x0b}\xc0\xe7i8\xf9\x18\x0c\xfd!\xf4\xef\
-p\xd1\x87\xc1dz\x17\x06W\xd71\x5cOFC?\
-\x8c\xa07\x1e\xe2\xdbq\x1c\x06\xfdY<\x09#\xbbM\
-z\x112\x9f\xda\xb5\xde\xf8\x0e\xfc\x7fNC?\x8a`\
-\x12Bp3\x1d\x05(\x0f\x15\x84\xbdq\x1c\xf8Q\x07\
-\x82\xf1`4\x1b\x06\xe3\xab\x0e\xa0\x0c\x18Ob[\x8c\
-\x83\x9b F\xcax\xd2\xb1\xaa\x0f9ar\x097~\
-8\xb8\xc6i\xaf\x1f\x8c\x82\xf8\xce\xaa\xbc\x0c\xe21\xa9\
-\xbb\x9c\x84\xb6\x22\xc0\xb4\x17\xc6\xc1`6\xea\x850\x9d\
-\x85\xd3I\xe4\x03\xf97\x0c\xa2\xc1\xa8\x17\xdc\xf8C\x0f\
-m@\xbd\xe0\x7f\xf4\xc71D\xd7\xbd\xd1h\xd7]\x92\
-3\xb9\x1d\xfb!\xf9\xd0t\x17\xfa>Z\xda\xeb\x8f|\
-Rg\xbd\x1d\x06\xa1?\x88\xc9\xad\xed\xd3\x00AD#\
-G\x1d[\xd9\xa7\xfe \xc0g\xc4\xc5G\xa7z\xe1]\
-\xa7\x16\x1b\xf9\x1ffH\x87\x8b0\xec\xdd\xf4\xae\xd0\xc7\
-\xb7/\xa3\x83A\x1a\xccB\xff\x86lGH\xa2Y?\
-\x8a\x83x\x16\xfbp5\x99\x0c-\xec\x91\x1f~\xc4\x83\
-0\xfa;\x8c&\x91\x05n\x16\xf9\xd6\x98a/\xeeY\
-\xf5(\x05\x81C\x0a|\xee\xcf\xa2\xc0B\x18\x8cc?\
-\x0cg\xd38\x98\x8c\xcf0\xe6\xb7\x88\x10Z\xdaC\xee\
-\xa1\xc5z2&\x9f]\xee\xf8\x93\xf0\x8eD\x13\x1e6\
-\x1a\x1d\xb8\xbd\xf6\xf1}H\xf0Z\xd4z\x04G\x84\xe8\
-\x0d\xe2&\x19\xaaD0\xadc[\x7fa\xec_\x8d\x82\
-+\x7f<\xf0\x89`B\x82n\x83\xc8?\xc3\xe0\x05\x11\
-\x11\x04V9f\x04\xaa\x9dY\xdf)hh\x9b\x0d\xd7\
-\xe5n:wlt!\xb8\x84\xde\xf0c@\xf6\xd7\xf4\
-\x98\x0fQP\xa7\x8f\x85op]\xa3\xef\x9d6\xda\x09\
-\x7f<\xdc4\x13o\xdc\xeb\xef7.NND^J\
-\xecp>\x98\x0f\x95H\x1e\xf6\xa6\xde\x88\xe1A\x86U\
-c\xef5uSJf\xfa\xe4$J\xf0o\xc6\xe6\x19\
-\x9f\xe2A\x08\x7f\x9cPU\x10i\x17\xfb&<\x17\xed\
-Lq\x96\xca\x22[S\x11\xc1\xddo\xd6X \xb1\x13\
-\xa8\x8c\x91\xc5\xadH\xcd\xb2\x0b7\xcc,\xbd\x9c}~\
-\xeb\xdez\xa8\x0e\xcfCa\xecr\xa7^\x16E\xeb2\
-\xd6\xc3\xf7\x1d\xab\xcec\x8fLX[\xdc\xc2\x05\xfcz\
-v\xe6l\x18\xc8\xac\xca\x8b\xda<\x1a\xbad\x09\x96\xed\
-.\xfc\xf6\xee\xe9\xdd\xca\x19\x83\x1d\x1f\x96k\xcf\xceN\
-\x9e\x16Gl\xce\xb3\x86\x80c\x0c;\xeb\x8a\x957x\
-\x06v\x1d\xb7w\x8b\xf3\x1d\x82\xa5T\xe2?\xd4_d\
-\xbdL\xdc\x17tLt\x11d\xcf\xce\xae\x078\xc5\xce\
-\xa5\xc9`\xf8g\xa48\x1d\xe2\xa1!\xef\xa9=eP\
-\xca\xb2*\xdd\xa9\x8d\xf3\x5cj\x93\xad])\xc73\x0f\
-4\xaa0\xe7\xd4m\x80a\xfaA\xc3\xe9\x8e<\x1a?\
-\xc3\xa9\xed\x1e\x94\xe0\x0b\xdb/VE\xdd#\xe8m\x8b\
-\x87\x02\x95\xb7\xe5\xfd\xb2\x05\xa6oc\xb2\x87Lm\xe7\
-\x0d\xd7\xd4\x1f\xed\xea\xc4\xde\x11\x8d\xd2\xde\xd6y\xe7\xe8\
-\x13\x90\xfb\x0bm\x987\xd2ggY\x16\x03L\x8d\x07\
-\x8e\x19\x98;\xe5\x0e+\x0fS\xafx{v\xb2C\x5c\
-\xc3\xf8\xc7\x01$b\x9f\xfd\xe4\x80\xe4s\x17\xde6\x03\
-\x0f\xe7\xce\xb43L\xbb\xf7\x07\xd4\xeb-\xf5\x92\xdb\x0b\
-\xcb9\xb8\x07G\x7f\xc0`\x84\xc9x\x13\xc1\x03\x8a\xb6\
-\x84\xdc\x83\x7f$\x15\xcfA\x94\xba\xca\xb1\x0d\xc9(\x1d\
-\x84\x01\xec\x06\x8c\xe7y\x87\x89\xf0\xe5\xa4}\xf6R\xb0\
-\x09-\x17\x8f\xb6\x1c\xc0Z\xb1\x10u\xdb\xfdc\x12!\
-iX\xf0\xb5\xd9p(\xe3\xcfN\x89}zG\xdb\x85\
-\xc9#W\x19[{\xd2\xfd=4\x03\xbb|\x96u\xc1\
-\xa8\x8a\x1fM\xab\xe3A\xa1\xa1\x0d\x16\x04\xa6R\x17m\
-\xdd\xad\xa1\xf1\xee\xb0\x8d\xfc\xeff2\x96\x87\xaa\x0f\xca\
-\xec\x8e\xd4M\xc9}\xff\xaeu}\x93\x0exS\xca6\
-)\xd0J\xf8\x5c\xe6[']\xe2\xc5\x8d\xe6\x1b\x96x\
-\xa9\x9a\xd3\xcd\xd3\xdd\x81x\xea\xfd\xab\x18J{M[\
-1\x5c\xc7\xb6W3\xbc\x09\xe0\x0b\x05\xc9\x92\x15\xf7\x5c\
-\xff\xe3\x10\x19\x1a_Z\xdf\x0e\x96<y\xe8\xcb\xcf/\
-\xdb\x85j\xf1z\x81\xb7\xbc\x07\xbc\x18\xe3\xad\xa8]K\
-\x13\x11{5y\xda\x15\xee\xa2\xf2:\xcb\xbevKo\
-\xf7.\xf6\xec\xe6\x87m[R\xfe\x0d;v\xcb\xfeW\
-o\xd6U\xb3\xaf\xc1\xc6\xc5\xb6'+\xd7\xcd\xd8\xe7-\
-\xf3\xaf\xd4\xc0\x1c\x08\xa8\xad\xbf\xe6.\xf4\xe8\x82\xdch\
-n#\xff\xde\xc5\xe10\xea4\x8e\xd5\x85A&5?\
-\xd4uI\x91\xa4v\xec\xc8\x9e\xa0(-64\xad\x14\
-I&\xca#\xc6\xd2xu\xc5\xd8C3\xb1e\xaa\xc6\
-\xf3\xd0n\x1a\xcfV\xb2\x8d\xf1N\xceQ\x92\x97\x0a\x1e\
-\x8dg{\xce\xfd\x11\xe4\xdb\x1e\xfb9\xbb([\x9e%\
-j\xd1\xda\x9a\xc6\xcd\xf1m\xdb~\x7fP\xc8\x5ckl\
-\x9d\xf2\xa6\x8ac\x87\xf9\xc8{\xf4\xd9\xc0\x5c\x8a\xf68\
-n\x86\xfb\xbe\x84\xa9\xeay\x17\x82\xf8\xf5\xc5'sn\
-7IY\xdc\x1f/\xa8_\x8ec\xfb\xd2\xa1B\xe3\xa5\
-~\x7f\x7f\xbc\xd8\x86u(35:\xcc\x0d\x1e;,\
-\x15\xa5\xd0\x942\xc03a<\x18WE\x82H\x15b\
-^\xb55\xee\xfb\x03\x1byQ\x00\xd7\x06>U\xf4\xd9\
-\x8a\xa1^l\xf5 \xa0h\xa4\xa8\x9c\x1b\xc8Y\xc6u\
-\xc5R\x06\x0b\xfbU\x88%\x18X\xc3k\xebJ%r\
-\xf1zU\x0bV%d\x9b\x07\x83J\xb1\xb9 '\xf8\
-=j\xf9w\xa5\xe9@\xc5\x9b!]\xd3\xaa\x94\xcc*\
-D\xfe\xc4\x00s1\xe7\x05\x9a\xe4\xbdNWTaZ\
-\x14\xa9\xd0\x9a\xe3}\x87\xb6\xb2\xf0\xe0#z\x8a\xc2p\
-\x0bBR)]i\x07\xe6\xa7\x8a\x91\x9b\x95BGD\
-\xbac\xc4+\xb5\x0d\x09\xbd\x05\xee\xddLh|Z\xa2\
-f\xc5\x15\x86\xac\x11\xac\xa6\xcb\x9a\x95\x02;\x0b\x837\
--\xfaf\xce\x17\x0b\xabP\xbd\x12\xc7\x14\x10\x15\xe4\x84\
-\x82'Mn\xc4\xb1\x10:\xf3`f\xe0\x91\x17\x9c>\
-.k\xe0J\xda\xef\x9a\x05\xe5F\x99\xb1\x84+\x86y\
-\xf4*U\xbc\x02\x96\x09\x04(w\xe1@\xcc\x12L9\
-\xd3r\x17h\x8e\x17\xaf\xb1\xcd\xd1\xde\x1d\x1d\xd9x\xee\
-\xebA\x80\x91\xc5\x0b\xa7T\x1e\x9eZ\x06\x1f\xb1\x98\xef\
-\xad<\xb317G\xdfn\xbbP\xcf\x02\xc3\xf3\x17\xdb\
-+#\xcb\xc6AD\xd3\x17Y\xe6\x12O\xc0\xbc\xc9\xe5\
-\xde|\xb7V\xee\x80\xe7\x86\xa9{Qt\xe1|\xd7O\
-\xbb6e\xa9\xfd\xd5\xe8g\xf8\xe5\xaf\xe9\x0b\x83\xa2\xac\
-~PW(H\xf5\xd7\xf6\x84\x0d\xe6\xff\xdb\xeb\xdb\x02\
-\xaf,\xfaH\xd3\xf3\x9a\xee\xad%64\x8e\xf5n\x93\
-\x87\xed\x95n@?\xebe\xc7\xaeu\xee[\xe0\x8f\xbe\
-\xdc\xe1\xc9\xb8\xadD>M\xc2g7Q\x9d\xb1\xd3\x8c\
-3<<l\xe6\xb9\x1f\xfe\x14O\xe9\x1ca\x99\xee\x1e\
-/\x7f\xcegku\xfd\xa9\xf2h3\xda^\xf8bT\
-\x7f)x\x96>\xe3\xd2s\x11\xdf\x0c[\xe9\xe9\xd7a\
-\xaeb\xe7\xd1L\xd3\xef\x8d9\xff\xc1\xc6\x1f\x1a6e\
-Z\xaf\xa4J\x8f\x1b\xc61\x17\xdc\x81\xf2\xa4\xc1\xdbp\
-\xf9\xb86)\xfc\xf4\x99\x0e\xf0\x9b\xfc:^\xf9\xdc\xff\
-_N\xfe\x07\xb1\xa6\xc9\xb6\
-\x00\x00\x0d\x90\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Layouts\x0aimpo\
-rt QtQuick.Contr\
-ols\x0a\x0aScrollableP\
-age {\x0a id: pa\
-ge\x0a\x0a Column {\
-\x0a spacing\
-: 40\x0a wid\
-th: parent.width\
-\x0a\x0a Label \
-{\x0a wi\
-dth: parent.widt\
-h\x0a wr\
-apMode: Label.Wr\
-ap\x0a h\
-orizontalAlignme\
-nt: Qt.AlignHCen\
-ter\x0a \
-text: \x22Button pr\
-esents a push-bu\
-tton that can be\
- pushed or click\
-ed by the user. \
-\x22\x0a \
- + \x22Buttons are\
- normally used t\
-o perform an act\
-ion, or to answe\
-r a question.\x22\x0a \
- }\x0a\x0a \
- ColumnLayout {\
-\x0a spa\
-cing: 20\x0a \
- anchors.hor\
-izontalCenter: p\
-arent.horizontal\
-Center\x0a\x0a \
- Button {\x0a \
- tex\
-t: \x22First\x22\x0a \
- Layou\
-t.fillWidth: tru\
-e\x0a }\x0a\
- Butt\
-on {\x0a \
- id: button\x0a\
- \
-text: \x22Second\x22\x0a \
- h\
-ighlighted: true\
-\x0a \
- Layout.fillWidt\
-h: true\x0a \
- }\x0a \
- Button {\x0a \
- text:\
- \x22Third\x22\x0a \
- enabled\
-: false\x0a \
- Layout.f\
-illWidth: true\x0a \
- }\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0d\x07\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-CheckBox present\
-s an option butt\
-on that can be t\
-oggled on or off\
-. \x22\x0a \
- + \x22Check box\
-es are typically\
- used to select \
-one or more opti\
-ons from a set o\
-f options.\x22\x0a \
- }\x0a\x0a C\
-olumn {\x0a \
- spacing: 20\x0a\
- anch\
-ors.horizontalCe\
-nter: parent.hor\
-izontalCenter\x0a\x0a \
- Check\
-Box {\x0a \
- text: \x22Fir\
-st\x22\x0a \
- checked: tru\
-e\x0a }\x0a\
- Chec\
-kBox {\x0a \
- text: \x22Se\
-cond\x22\x0a \
- }\x0a \
-CheckBox {\x0a \
- text:\
- \x22Third\x22\x0a \
- checked\
-: true\x0a \
- enabled: \
-false\x0a \
- }\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0b\xdc\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-DelayButton is a\
- checkable butto\
-n that incorpora\
-tes a delay befo\
-re the \x22\x0a \
- + \x22butt\
-on is activated.\
- This delay prev\
-ents accidental \
-presses.\x22\x0a \
- }\x0a\x0a Del\
-ayButton {\x0a \
- text: \x22De\
-layButton\x22\x0a \
- anchors.h\
-orizontalCenter:\
- parent.horizont\
-alCenter\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0c\xcc\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-Switch is an opt\
-ion button that \
-can be dragged o\
-r toggled on or \
-off. \x22\x0a \
- + \x22Switch\
-es are typically\
- used to select \
-between two stat\
-es.\x22\x0a }\x0a\x0a\
- Column {\
-\x0a spa\
-cing: 20\x0a \
- anchors.hor\
-izontalCenter: p\
-arent.horizontal\
-Center\x0a\x0a \
- Switch {\x0a \
- tex\
-t: \x22First\x22\x0a \
- }\x0a \
- Switch {\x0a \
- te\
-xt: \x22Second\x22\x0a \
- che\
-cked: true\x0a \
- }\x0a \
- Switch {\x0a \
- te\
-xt: \x22Third\x22\x0a \
- enab\
-led: false\x0a \
- }\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0f\xb4\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSt\
-ackView {\x0a id\
-: stackView\x0a \
-initialItem: pag\
-e\x0a\x0a Component\
- {\x0a id: p\
-age\x0a\x0a Pan\
-e {\x0a \
-id: pane\x0a \
- width: pare\
-nt ? parent.widt\
-h : 0 // TODO: f\
-ix null parent o\
-n destruction\x0a\x0a \
- Colum\
-n {\x0a \
- spacing: 40\x0a\
- \
-width: parent.wi\
-dth\x0a\x0a \
- Label {\x0a \
- \
- width: parent.w\
-idth\x0a \
- wrapMod\
-e: Label.Wrap\x0a \
- \
- horizontalAlig\
-nment: Qt.AlignH\
-Center\x0a \
- text:\
- \x22StackView prov\
-ides a stack-bas\
-ed navigation mo\
-del which can be\
- used with a set\
- of interlinked \
-pages. \x22\x0a \
- + \x22\
-Items are pushed\
- onto the stack \
-as the user navi\
-gates deeper int\
-o the material, \
-and popped off a\
-gain \x22\x0a \
- + \x22wh\
-en he chooses to\
- go back.\x22\x0a \
- }\x0a\x0a \
- Bu\
-tton {\x0a \
- id: b\
-utton\x0a \
- text: \
-\x22Push\x22\x0a \
- ancho\
-rs.horizontalCen\
-ter: parent.hori\
-zontalCenter\x0a \
- \
- width: Math.max\
-(button.implicit\
-Width, Math.min(\
-button.implicitW\
-idth * 2, pane.a\
-vailableWidth / \
-3))\x0a \
- onClicke\
-d: stackView.pus\
-h(page)\x0a \
- }\x0a\x0a \
- Butto\
-n {\x0a \
- text: \x22P\
-op\x22\x0a \
- enabled:\
- stackView.depth\
- > 1\x0a \
- width: \
-Math.max(button.\
-implicitWidth, M\
-ath.min(button.i\
-mplicitWidth * 2\
-, pane.available\
-Width / 3))\x0a \
- \
-anchors.horizont\
-alCenter: parent\
-.horizontalCente\
-r\x0a \
- onClicked:\
- stackView.pop()\
-\x0a \
- }\x0a }\
-\x0a }\x0a }\
-\x0a}\x0a\
-\x00\x00\x0b\x88\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-TextField is a s\
-ingle-line text \
-editor.\x22\x0a \
- }\x0a\x0a Text\
-Field {\x0a \
- id: field\x0a \
- placeh\
-olderText: \x22Text\
-Field\x22\x0a \
- anchors.horiz\
-ontalCenter: par\
-ent.horizontalCe\
-nter\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x04\xbb\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x01\x00\x00\x00\x00\xeb\x04\x03\x00\x00\x00t\xa8U\xa0\
-\x00\x00\x000PLTE\x00\x00\x00A\xcdRA\xcd\
-RA\xcdRH\xcbPB\xccQI\xcbPD\xccQ\
-E\xccQJ\xcbOE\xccQJ\xcbOD\xccQD\
-\xccQC\xccQA\xcdR\xaa`?\xbc\x00\x00\x00\x0f\
-tRNS\x00\x18Oc\xab\xae\xb8\xbd\xc9\xcd\xd6\xd7\
-\xdf\xe9\xf0\x91\xee\xa9J\x00\x00\x04+IDATx\
-\xda\xc5\xda\xc1m\x13A\x18\xc5\xf1\xddT`%Bp\
- R\x02'N\x08\x1ap\x0dT`q\xa1\x0f*\xa0\
-\x0b*\xa0\x91T\xe0\x1e@\x96|q\x86\x83c\xc7\xbb\
-;\x93\xcc|\xef\xcd{\xd3\xc0\xfe\xf4\x0e\xfb\x9f\x95v\
-\x18z\x9c\xab\xc3j\xb0\x9e\xab\xf4\xe0\x06<\xde\x9b\x01\
-\xe9\xdf\xca\x0cH_\xdc\x00\xeb\x04W)\xa5\xf4\xcd\x0d\
-\xd8\xad\xcc\x00\xe7\x04G\x80q\x82# \xfdt\x03\xf6\
-+3\xc07\xc1\x09`\x9b\xe0\x04\xb05\xe9\x0cpe\
-\xf9\x0cpM\xf0\x0c0e\xf9\x19`j\xd2\x05\xc0\x93\
-\xe5K\x80e\x82K\x80\xa5I\x13\x80\xa3I\x13\x80c\
-\x82)\xc00\xc1\x14`h\xd2\x0c\xa0o\xd2\x0c\xa0\x9f\
-`\x0e\x90O0\x07\xc8\x9b\xb4\x00\xa8\xb3\xbc\x00\xa8'\
-X\x02\xc4Y^\x02\xc4M\xca\x00\xb4Y\xce\x01\xa4\x13\
-\xe4\x00\xd2&e\x01\xca&e\x01\xca\x09\xf2\x00\xe1\x04\
-y\x80\xb0I\x05\x80\xaeI\x05\x80n\x82\x12@6A\
-\x09 kR\x11\xc0\xc8\xf2\xf5\x87\xd7\xcf\xc7\xd4q\x82\
-\xcf\x099\x84,c\x00B\x93@\x00\x9ee\x14\x00O\
-\x80\x02\xe0&\xc1\x00\xb4I0\x00\x9d\x00\x07\x80\x13\xe0\
-\x00\xb0I\x04\x00\xd6$\x02\x00\x9b\x80\x01\x80&`\x00\
-\xa0&Q\x00H\x96)\x00d\x02\x0e\x00\xc82\x07\x00\
-4\x89\x04\x88g\x99\x05\x08O\xc0\x02\x84\x9bD\x03D\
-\x9bD\x03D'\xe0\x01\x82\x13\xf0\x00\xc1&\x11\x01\xb1\
-&\x11\x01\xb1\x09\x98\x80\xd0\x04L@\xa8IT@$\
-\xcbT@d\x02.\xe0\xb1\xfa\xb9\xe3\xa7U\x0f@\xaa\
-\x06\xbcIw=\x00\x87\xea\x016}\x00\x0f\xf5\x03t\
-\x01T\xbf\x08\xc6M\x1f@\xf5\xab\xf0]\xea\x02\xa8\x1f\
-\xe0W\x1f@\xd3\x00\x1d\x00\xbb\xa6\x01:\x00\xaa\xafD\
-\xb7\xa9\x0b\xa0~\x80m\x1f@\xe3\x00t@\xf5\x87\xc1\
-\xf5\xb6\x0f\xa0\xf6\xd3h\x5c\xa7.\x80\xea\x01nR\x17\
-@\xf5\xe7\xf1y\x002\xa0\xa5B=\x00\x87\x96\x0a\xf5\
-\x00\x04\x06\xa0\x02\xf6\x81\x01\xa8\x80\xb6\x0a\xf1\x01m\x19\
-\xee\x00\x08\x0d@\x04\xecB\x03\x10\x01\xad\x15b\x03Z\
-3L\x07\x04\x07\xa0\x01\x9a3\xcc\x064g\x98\x0ch\
-\xcf0\x17\x10\xc80\x17\x10\xa9\x10\x13\x10\xc9\xf0\x0c \
-\xfa\x7f`9\xc0\x09\x00\xfdA\xb1\x07\x06\xa0\x00b\x15\
-\xe2\x01b\x19&\x02\xa0\x01\x08\x80\x1d4\x00\x01\x10\xad\
-\x10\x0b\x10\xcd0\x0d\x00\x0e\x00\x03\xc2\x19f\x01\xc2\x19\
-&\x01\xe2\x19\xe6\x00\x80\x0cs\x00H\x85\x9e\xce\xd7\x8a\
-\x0c\xde\x97\x00H\x86[\xce\xdf\x12\x800\x00\x04\xd8\x8b\
-\x06(\x02\xb0\x0a\xe1\x00,\xc3\x04\x80l\x80\x02`'\
-\x1b\xa0\x00@+\x84\x02\xd0\x0c\xc3\x00\xe1\x00Y\x00\x9c\
-a\x14\x00g\x18\x04\xe0\x19\xc6\x00\x84\x0cc\x00U\x85\
-J\x00U\x86\x8b\x00\xf1\x00\x0b\xc0^<\xc0\x02\xa0\xab\
-P\x1e\xa0\xcbp\x01 \x1f`\x06\xd8\xc9\x07\x98\x01\x94\
-\x15\xca\x01\x94\x19\xce\x02\x0c\x03L\x00\xd2\x0c\xe7\x00\xd2\
-\x0cg\x00\xda\x0c/\x01\xe2\x0c/\x01\xea\x0a\xcd\x01\xf5\
-\xff\xe9m\xfa\x00\xea\x7f\xd3K=\x00\xe3\x9f\x95\x17\xd0\
-r\xd6n\x00\xf35\x14\x020_\xc41\xc0\xb85\x03\
-\x86\xf7n\x00\xef:\x12\x04\xf0.dQ\x00q\x82\x18\
-`x\xeb\x06\x8c\x1b3\x80\x97\xc4(\x806A\x14@\
-\xbb\x16\x85\x01\xac{Q\x18\xc0\x9a \x0e M\x10\x07\
-\x90\xb2\x0c\x008YF\x00\x94,#\x00J\x96!\x00\
-\xa3I\x10\x80\x91e\x0c@\x98\x00\x03\x10\xb2\x0c\x02\xf0\
-&\x81\x00<\xcb(\x00\x9e\x00\x05\xc0M\x82\x01h\x93\
-`\x00:\x01\x0exa\x82\xdf?^?\xdfa\xc0\x0b\
-Y\xbe\x1b4\xe7\xd6\x0d(fY\x05(fY\x06(\
-5I\x06(eY\x07(L\xa0\x03\x14\xb2,\x04\xe4\
-\x9b$\x04\xe4\xb3\xac\x04d'P\x02\xb2M\x92\x02r\
-M\x92\x02r\x13h\x01\x99\x09\xb4\x80L\x96\xc5\x80e\
-\x96\xd5\x80E\x96\xd5\x80E\x96\xe5\x80y\x93\xe4\x80y\
-\x96\xf5\x80\xd9\x04z\xc0,\xcb\x06\xc0\xb4I\x06\xc04\
-\xcb\x0e\xc0d\x02\x07`\xd2$\x0b\xe0\xb2I\x16\xc0\xe5\
-\x04\x1e\xc0\xc5\x04\x1e\xc0E\x96M\x80\xe7,\xbb\x00\xe7\
-,\xbb\x00\xe7,\xdb\x00\xa7&\xd9\x00\xa7,\xfb\x00O\
-\x13\xf8\x00OY6\x02\x8eM2\x02\x8eYv\x02\xc6\
-\x8d\x190\xdc\xb8\x01\xe3\xda\x0c\x18n\xdc\x80qm\x06\
-\x0c\xd7\xdb>\x80\xffx\xf2iE\x15\xa8J\x8b\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x01?\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
-\x00\x00\x000PLTE\x00\x00\x00\xff\xff\xffA\xcd\
-RP\xcaNA\xcdRA\xcdRH\xcbPB\xccQ\
-I\xcbPD\xccQE\xccQE\xccQD\xccQD\
-\xccQC\xccQA\xcdR\xb0DE*\x00\x00\x00\x0f\
-tRNS\x00\x00\x186Oc\xab\xae\xb8\xbd\xc9\xd6\
-\xdf\xe9\xf0r\xc1;\x05\x00\x00\x00\xafIDAT(\
-\xcf\x8d\xd2\xb1\x0d\xc20\x14\x04\xd0[\x81\x0d~\x81\x98\
-\x81\x01\xe8-e\x01F@\xf2\x14t\xec\xe0E\xd8!\
-\xca\x08\xac\x10YXXG\x11'v\xf0\x15\x5c\xf9\xf4\
-\x8b\xff\xed\x03\xd6\xb8\x80>.\x99@\x06\x85\xd9\x04r\
-T\xd8\x8f:\x92/\x13\xc8A\xe1l\x02\x7fG\x17\x8c\
-\x06\x00\xe7{\xc9\x93$I\x0f\x00\x0f\xee\x13M \xbd\
-\xc2d\x02\x19\x14&\x13\xc8\xa00+\xe4\xdf8+\x1c\
-\x04Nb\xa5\xac.\x1a\xc5\xed\x1f\x03p\xeb/\x07\x8e\
-\x97\x92\xeb\xf6F\xddw,\xd59\xacq$\xf96\x81\
-\x1e=F\x13X\x06w\xb8\xf5\xa3\xc5\xad\x1e\x0d\xd6\x22\
-5X{Tq\xb2\x1eO\xd5\xbe:U\x87P(\x16\
-\xe3k\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x01\xca\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00@\x00\x00\x00;\x04\x03\x00\x00\x009\xa2\x91\xef\
-\x00\x00\x000PLTE\x00\x00\x00A\xcdRP\xca\
-NA\xcdRA\xcdRF\xccPH\xcbPB\xccQ\
-I\xcbPD\xccQE\xccQE\xccQD\xccQD\
-\xccQC\xccQA\xcdR\x96\x12X7\x00\x00\x00\x0f\
-tRNS\x00\x186Oc\x9d\xab\xae\xb8\xbd\xc9\xd6\
-\xdf\xe9\xf0URDE\x00\x00\x01:IDAT8\
-\xcb\x85\xd4\xcdM\xc40\x10\x05\xe0\x99\x0e,\x05\x11)\
-\x88;\xc7E\x14`QAj\xa0\x02D\x05{B\xe2\
-F\x0d[\x81K\xa0\x06D\x019P\xc0\x1e\x12\x09\xf1\
-\xb3z\x1c\x9c\xc4\xcex\xd63\xd7|yR</&\
-\xd2\xc6\x1f\xa8>\xfe\xc7\x19\x00\x07\x0b\x9c\x9c\x01\xf0n\
-\x81z\x84\x07\xf0\xe9\x0c\x80{\x0bL\xce\x00\xb5\x88\x08\
-\xbe\x8a\x88\x9b\x97y\xde\x00\x00x\x92\xe0\x15\xdb)\x22\
-$(\x22\x0a wV\x00\xb9\xb3\x12\x88\x88\x12\x88\x08\
-\x05\x9c\xd2S~\xd0\x00\x12\xe8\xc6:\xe0\xa0\x82i\x05\
-\xd7P\xc1\xba0\x1eT\xf0\xe1R\x80\x06R\xef\x9a\xa3\
-\x0a\xd6\xe6r\x0f\x0d\xfc\xad\x01\x17\x000\xd2\xe3\xb9c\
-\xe4>\x82\xe6n\x9e^,\xa2E\x04\xa2r)`\x1f\
-\xcfdy\xff6\x82o\x11\x90\x7f\x9c\xdf\xd4i\x0e\xc8\
-f\xe7\x91\x17\xb2\x83\x0aR@P\xc1T\x09\xc0\xce\xe7\
-[\x0a*\x98\xf2-i \xfd\x97\x83\x0a\xd2\x9a\x09\x1a\
-\xb8\xcc\xda\x1e4\x90W\xbd\xb5@y\x8e\x02h\x11[\
-\xa0DlA\xacS\x0d\xc4>U\xc0\x12\xf1\xbb\xdcP\
-\xcf\xf2\xe6\x99#F:;\xcd`\x80\xb8\xb1\x1a\xe0\xc1\
-\x00te\x01\x0e\x06\xa0\xce\x02\x1c\x0c@\xad\x05xo\
-\x00ju\xf0\x0fRR\x00X\xeb\xfc\xd3\xe9\x00\x00\x00\
-\x00IEND\xaeB`\x82\
-\x00\x00\x05\x15\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\xc8\x00\x00\x00\x93\x08\x03\x00\x00\x00\xfc\xcf\xa6\x98\
-\x00\x00\x00HPLTE\x00\x00\x00A\xcdRA\xcd\
-RA\xcdRA\xcdRA\xcdRA\xcdRA\xcdR\
-M\xd0]Y\xd3he\xd6rq\xda}|\xdd\x88\x88\
-\xe0\x93\x94\xe3\x9e\xa0\xe6\xa9\xac\xe9\xb3\xb8\xec\xbe\xc4\xef\
-\xc9\xd0\xf3\xd4\xdb\xf6\xdf\xe7\xf9\xe9\xf3\xfc\xf4\xff\xff\xff\
-Y\xd7\x80\x18\x00\x00\x00\x07tRNS\x00\x100\xaf\
-\xbf\xcf\xefPN\xd4S\x00\x00\x04uIDATx\
-\xda\xed\xdc\xdbz\xa4 \x0c\x00`\xbb\xdb.hTD\
-\x14\xde\xffM\xf7\xa2\x9d\xb6rP@#\x87\xcf\x5cO\
-;\xf3\x0b\x84(`\xd38\xe3\xcf?RN\xbcW\xe2\
-\xd8\x81\x94\xe5pC\x0as8!\xa59\x5c\x90\xe2\x1c\
-\x0eHy\x0e;\xa4@\x87\x15R\xa2\xc3\x06)\xd2a\
-\x81\x94\xe90!\x85:\x0cH\xa9\x0e\x1dR\xacC\x83\
-\x94\xeb\xd8B\x0avl %;~C\x8av\xfc\x82\
-\x94\xed\xf8\x81\x14\xee\xf8\x86\x94\xeexA\x8aw|A\
-\xcaw|B*p\x90\xf7J\x1c\xe4\xfd\x12G\x0b\x00\
-#c\xac\x07\x00\x9a\x0ar\xce\xd1\x0e\x93\x90j\x1b\xab\
-`=\xbd\x1fr\xc2\xd1\xf3U\xb9b\x99\xba\x9b!\xd1\
-m1I\xb5\x1f\xebH\xf3\x87\xb4\x5cy\x84d4s\
-\x08S\x9e\xb1\xf6G\xff\xe9w\x0c7C\xbaE\xf9\x07\
-\xdfo\x94\xcdg\xc5\xbd\x90^\xaa\x90Xh\xa6\x90A\
-\x05\x86\xec\xb2\x84\x04;\x94Zi\x86\x90NE\xc4N\
-\xefJ\x05\xa12\x06\xa2\xa6\xec \xb3\x8a\x0b\xc8\x0c\xd2\
-\xdb\x7f\xa6\x98F\xf8\x0c\xc6\x97\xb0a\x92\x08b\xab\xad\
-fm\xce\xa3\x83\xb0|\x8ae\x05\xb1d,\xdeZ>\
-\x07&E\xd2\x9c F\x83HW\xdf\x1f}\x9b$\x09\
-d\x08H\xab\x9d\x9e\xdedF\x90%`\xa23'\x9c\
-!\x1b\x88\xf1\xd3\xf6o\x9d\xf4\xde\xb5d\x03\x99<\x13\
-\xd1+\xf4\x11\xdf\xe6\x02\xd1\x86\xfaz\xf4y\xd0 c\
-&\x90\xce\xab\xcf\xef4\x89\xc8\x04\xc2\xfc&\x86\x9d:\
-\xe0\xe7/:x\xc5v\x18\x81\x1e\x14\x01\xa2]_\x1e\
-\xde\x19{\xe7\xf0\x09\xaf\xd1N@\x22\xbebr\xd5\xc0\
-)!\xe05\xbf\xed\xfe\x8d\xc8\x02\xa2M\x0bsL+\
-f\x01\xe1\x1e\xb9\xf4h\x5cu9@\x96\x90Y\xdd\x91\
-\xe9\xfa\x1c \xae^\x12\x92\x80Y\x06\x90V\xc5L]\
-\x9dc`%\x84@\xf8,b\xb6\xa3\xc8\x002\x86\x15\
-\x8c\xf6\x91%3\x80\xb0\xd0B\xcb\xfa\x8b3\x80Lq\
-_\xc0\xed\xd5\x96\x03\x22\x85\x1e\xdd\xe5\x10\x11\x93}\x8d\
-\x86\x84\xfd\xa1wG\xf5+b\xb2oE\x90!;\x88\
-\x8a\x83\xc0A\xb2K\x0dYk\x81\x88\x07\xf2@\x1e\xc8\
-5\x90\xeei\x91\x07\xf2@\x1eH\x0e\x10Y\x0b$\xb6\
-h\x1c\x8b-\xe3\xfb\xe7\xc6\xea&\x08\x14\x0b\xb9\xf6\xe1\
-CB\xc8\xb5\x8f\x83\x12B\xae}@\x97\x10\x021\xcb\
-#\xc7\xf3\xe8\xfd\x90\xd6g\xf5\xdf\xfb!vB\xc8\xb5\
-\xcb\x0a)!KL\xdar-\xf4\xa4\x84\x5c\xba\xf4\x96\
-\x12r\xe9bhJH\xcc\xf2t\x7fX\xfcC\x5cQ\
-}\x06\xa2_\xdd>\xbc;\xb2\xc3\xcbs\x0bD\x84\xf7\
--y\x9c \x12@F\x9f\xedW\x9b\x18<Rv\x02\
-\x88\xbe\xcd\xe9x=t\xf5h\xc3\xd0\x8bs\x01\xc4\xd8\
-c\xda\x066\xc8p\x0c\x81[ L\x05\x95)\xfa6\
-z\xfb\x06/\x19UT\x9f\x83\xb4*\xa4s\xd1\xc5\xeb\
-\xd3\x22j\xf9\xfe\x1c\xc4\x5c\x8b\xe5\x01\x0eGO\x9c/\
-\x9aH\x82 `\xee\xeew\x8d\x13\xf3\x18\x96\xf0\xea\xaf\
-\xfc\x16\x88ey\xdc~@\xcfv\xb8\xaf\xf3\xcb\x08\x9b\
-#\x038{\x1a\xadM\xa2\x94\xe4\xc6i\x05\xdb!\x13\
-\xee\x99\xd4\x95R\x8b\x10+\xe6\x9eF{\x93|\x9d\x1f\
-a=\x00\x00\x0c\xae\xf3#\xee=\xa9\xf2\xf6\xcd\x99\x84\
-\x10\xd2\xc6\x9dL\xda\xab\xcc\xe6$\x10\xcbq\x8a\x93g\
-\xac\x0eN\xd1\xa1A\x08\x8fq\x88\x80y3\xeeiM\
-8\x84.\xe1\x8e\xfd\xb3\xa1,\x0d$B\x22hP)\
-s\x17\x84\xd0\xc0\xdeu8\xc7\x0d\x89 \x84\x8c\xf2\x92\
-|\xe5#\xe1\xa8\x10\xd2\x0a\x7f\x88OA;\xc8\x984\
-q\x01\xc4z@\xcfuv\xda\xa7\xcap\xbe\xb0\x00\x1d\
-B\x08py\xd1\x18\xf9\xa4\x8c\xc6\xa5Yf\x06->\
-\x84\xec\xbf\x85#fR\x83\x811!\x84\x10\x8c\x0d\x10\
-x\xd7{\x0aB\x08i{6o/\xa5\x9c\x8d\xf7\xa4\
-\x90\x1b\xe2,\xe4\x95\x92_G\x89:\xdb\x0c\xc7\xca\x81\
-\xec>\xef>\xf3p$-\x04\xa2sOf\x10\xb3\xb2\
-\xec\x0b\x85\x18\xe5\x93D\x7fc\xcd_\x14\x88y\xdb2\
-!;>\xdep \xe6x\x07l\x07\x12\xc4x\xa6\xb0\
-`;\x90 \xc6Qk\xcc\xc9\xe4\xe3\xad\xc1\x83\x98\xe3\
-\xbd\xc5u`A\xcc\x9b\x0c\x81\xeb@\x83\x98\xcf\xc0z\
-T\x07\x1eD\x1b\xefb\xc0u\xe0A6\xc5\xa3\x00\x82\
-\xec@\x84\xd0\xef\xbb\x15\xde\x11t\x07\x22\xe4\xb5\xcc\xce\
-\xb1\xf3\x15:\x84\x08\xdc\x17\x03n\x1c\xa8\x90v\xc5|\
-\xbf\xe1\xd6\x81\x0aA\xaf\xafj\x80\xe8\x8e\xa6\x16GS\
-\x8b\xa3\xa9\xc5\xd1\xd4\xe2hjq4\xb58\x9aZ\x1c\
-M-\x8e\xa6\x16GS\x8b\xa3\xa9\xc5\xd1\xd4\xe2\xf8\x0f\
-/\xf3I\xa9\x5c\xdd\xff\xd4\x00\x00\x00\x00IEND\
-\xaeB`\x82\
-\x00\x00\x01\xdc\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00O\x00\x00\x00O\x04\x03\x00\x00\x00X\x1a\x85\xb5\
-\x00\x00\x000PLTE\x00\x00\x00\xff\xff\xffA\xcd\
-RP\xcaNA\xcdRA\xcdRF\xccPH\xcbP\
-B\xccQI\xcbPE\xccQJ\xcbOE\xccQD\
-\xccQC\xccQA\xcdR\x000]\xbe\x00\x00\x00\x0f\
-tRNS\x00\x00\x186Oc\x9d\xab\xae\xb8\xc9\xcd\
-\xd6\xe9\xf0\xbb\x00_o\x00\x00\x01LIDATH\
-\xc7\xc5\xd6\xbdM\xc4@\x10\x86\xe1+\x01:\x98\x80\x8c\
-\x0aH\x11\xf9\x227@\x09HT\x80\xdc\x05\x11\x92K\
-\xa1\x01$\xebJ\xa0\x00\x12K\xd6\xc9\xd6\x10\x9c\x7f\xd6\
-\xbb\xb3;o\xc6\xc4\x8f>\xe9\xee\xbe\x9d\x9b\xd3)\x9b\
-\xd0\x9f\xd8\x84\xf9\x11B\x1d\x04Bm(d\x91Aa\
-dP\xd5Q \xd4\x96B\x12\x19\x14F^\xe1E \
-\xd4\x8eB?r\x81\xfaE\xe1,\x10jO\xa1W\xb7\
-\x0dz\xdd\xd8\xa1\xd3\x8d\x08\xd6##X\x8f\x8ca\xd4\
-\x8d\xbb\xa7t^\x22\x18u\xe3U\xab\xb3G~\xd6\xe1\
-\x1e\xe9\xc1\xad\x1b\x1e\xdc\xea\xe6\xc25\xd2\x85k\xdd|\
-\xb8\xd4\xcd\x87K\xdd\x00\xbcF\x02\xa8?\x02\xa16\x14\
-\x0e\x02\xa16\x14\x8e\x02\xa1\xbeS\xf8\xfb\x7f\xf0\x19\xc2\
-3\xfc\xd43\xfd\xc2{\xf8\x13N\xb4\x14\x1d\xac\xd9\x85\
-\xf6\xb1\x83\x0d\x1f\xe9\x9bi\xe1+\x1c\xe9\xbbn\xe1\xa6\
-\x18\xe8\xee\xd9v\xee\xc3G:\xdff\xa0\xb3\x9a\xabK\
-<\x1c\xeb\xb5\xcem:7!\xdbO>\x8c\xff\x0dk\
-p\x12\x08\x0fG@\x05\x1eo\x80\x0a<^\x15e\x98\
-\x9c>e\x98\x5c>E\x98\xdeRE\x98\x9eR%\x98\
-\xb5\xa1\x04\xb36\x14`^\xaf\x02\xcc\xebe\xc3\xb30\
-h][&\xb4\x8e-\x0bN\x02\xa1yc\x1a\xd0>\
-1sx\xfff\xb9?\x9e\xd1\xe7wR\xc2\xd3\xb8\x00\
-\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x02\xf6\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x9e\x00\x00\x00\x9d\x04\x03\x00\x00\x00\xb7?\xdc\xe6\
-\x00\x00\x00$PLTE\x00\x00\x00\xff\xff\xffA\xcd\
-RA\xcdRA\xcdRH\xcbPB\xccQE\xccQ\
-J\xcbOD\xccQC\xccQA\xcdRE\xef\x01u\
-\x00\x00\x00\x0btRNS\x00\x00\x18Oc\xab\xae\xc9\
-\xd7\xe9\xf0\xc1\xad8\xf5\x00\x00\x02vIDATh\
-\xde\xcd\xda\xdbM\xc40\x10\x85\xe1\x15i\x00:\x88D\
-\x07\xc0\xdb\xbem))!=\xd0\xc0\xd6\xb2J\xb4\xeb\
-\xe6x\x08\xb98\xbe\x8dg\xfe\x07\xa7\x80OG \x0e\
-\xe3\xb1/\x17\xc1\xd7=\xfb\x0b\xf9u\xee\x0e{\xaf/\
-\xd6s\x8f\x9e\xf5\xdc\x0d\xf6\xc8\x80\x9ds\xce\x0d\xb07\
-\xf5\xac\x07\x06\x5c<.\xe0\xe2\xb9\x11\xf6\xe6\x9e\xf5\xb0\
-\x80\xabG\x05\x5c=\xaa\x166\x0f\xea\xad\xcd\x83\x02\xee\
-\x1e\xd3[\xbb\xc7\xd4\xc2\xc1Cz\xeb\xe8\x11\x01\x8f\x1e\
-Q\x0b\x9e\x07\xd4\x82\xe7\x01\x01}\xcf\x1e\xd0\xf7\xec\xb5\
-p\xf2\xcc\xb5p\xf2\xcc\x01\xcf\x9e5\xe0\xd9\xb3\xd6B\
-\xe0\x19{+\xf0\x8c\x01C\xcf\xd6[\xa1g\xab\x85\x88\
-g\xea\xad\x98g\x09\x18\xf3,\xb5\x10\xf5\x0c\xb5\x10\xf5\
-\x0c\x01\xe3\x9e>`\xdc\xd3\xd7B\xc2S\xd7B\xc2S\
-\x07Ly\xda\x80)O[\x0bI/\xd2[\x9f\xdf\xe5\
-\xef\xc7\xc9\x03^\x9d\xe5\x0b{\xcb\xe6\x85\xb5`\xf4\x82\
-\xde\xb2z\xe7\x80V\xef\x5c\x0bf\xefT\x0bf\xef\x14\
-\xd0\xee\xf9\x01\xed\x9e_\x0b\x80\xe7\xd5\x02\xe0y\x01\x09\
-\xef\x18\x90\xf0\x8e\xb5\x80x\x87\xdeB\xbcC@\xc6\xdb\
-{\x8b\xf1\xf6Z\x80\xbc\xad\xb7(o\x0dHyk-\
-`\xde\x7f-`\xde\x7f@\xce[\x02r\xdeR\x0b\xa0\
-7\xf7\xac\xe7F\xd8\x9b{\xd6sw\xd8{\xf6\xac\xe7\
-\xee\xb0\xf7\x82=\x07{\xcf\xb6\x7f~3\xfc\xfb\x1d\xdb\
-\xfe\xfb\x80\xff~'\xb8_\x86\xb6\xfb\x19\xfe\xff\xf1\x80\
-\xff\xbf\xdd\x9a\x9e\x0f\xb6\x01\xebJ\x15\x01\xea\xed\x03j\
-\x93\xf3\xe9\x0c\xcf\xcfc\xdb\xe7\x0f\xf8|4\xc1\xe7\xb7\
-\xa1\xed\xf3/|>\x7f\xc0\xfb\x83[\xd3\xfb\x97`\x81\
-u\xa5\x8a\x00\xf1\xc2\x05 \xbd\xff3\xed'\x95\x0b\xd4\
-N\xb4\xc9io\xbf\x0b\xef\x9f'x?>\xb0\xfb{\
-\xfa~!\x1e\xef#\xff\xbd'\xbd\xc4\x05\x92\xdaK\x5c\
-pi\xbd\xd4\xfd\x96\xd2K^\x10*\xbdd\x11\xe8\xbc\
-\xf4\x05\xab\xceK\xf7\x94\xca\xcb\x14\x81\xca\xcb\x14\x81\xc6\
-\xcb\xf5\x94\xc6\xcb\xf5\x94\xc2\xcb\x16\x81\xc2\xcb\xf6T\xbd\
-\x97\xef\xa9z/_\xa3\xd5^\xe1\xa2\xbb\xda+\x5c\xc4\
-\xd7z\xa5{\xf8J\xaf\xf8\x90\xa1\xd2+\x0e,u^\
-\xf9!H\x9dW\x9e\xa7\xaa<\xc1\xc0R\xe5\x09\x06\x96\
-\x1aO2O\xd5x\x92y\xaa\xc2\x13\x0d,\x15\x9eh\
-\x9e\x92{\xb2yJ\xee\xc9\xc6=\xb1'|\x90#\xf6\
-\x84\x0f\x86\xa4\x9e\xf4\xbd\x90\xd0\x13?\xb8\x12z\xe2\x83\
-\x95\xcc\x93?X\x93y\xf2s\x9f\xc4{\xfb\x15\xc7\xfb\
-\x03\xfd\xb9\xba%(\xb7\xb7:\x00\x00\x00\x00IEN\
-D\xaeB`\x82\
-\x00\x00\x03\xae\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\xc0\x00\x00\x00\xb0\x04\x03\x00\x00\x00\xab\xd0|\xf5\
-\x00\x00\x00-PLTE\x00\x00\x00A\xcdRA\xcd\
-RA\xcdRD\xccQH\xcbPB\xccQI\xcbP\
-D\xccQE\xccQE\xccQD\xccQD\xccQC\
-\xccQA\xcdR\x9e%\xfb\x88\x00\x00\x00\x0etRN\
-S\x00\x18Oc\x8f\xab\xae\xb8\xbd\xc9\xd6\xdf\xe9\xf0\xe7\
-5\xddl\x00\x00\x03\x22IDATx\xda\xb5\xd8\xc1\
-\x89\xdb@\x18\xc5q)\x15\x08\x1b\x0cY\xf6\x90l\x01\
-\x82m\xc0\x90R\xdc\x80o!\xe7\x94\xa0\x06\x5cB \
-%\xa4\x01\x1fR@\x0e\xbb\x10\xd8\xb0L\x0d9\xd8\xb2\
-\xa5\x19[\xf3\xbd\xf7}o\xee\xf6\x8fw\xd0\x7f\x84\x9a\
-\xc6y\xfa\xa1\xd1\x9e\xfe\xbd\x13\x03\xe9\x97\x1a\x10O\xe8\
-S\xfa\xdd\x89\x81\xf4\xac\x06^;1 \x9d\xd0\xa7\x94\
-\xd2\xdfN\x0c\xa4\x9d\x1a\x10N8\x01\xc2\x09g\xe0\xad\
-\x13\x03iP\x03\xb2\x09# \x9bp\x01T\xcd\xbb\x00\
-\xaal_\x01\xd1\x84+ \xca\xf6\x04\xd04o\x0aH\
-\xb2=\x05$\x13f\x80\xa2y3@\xd1\xbc9 \x98\
-0\x07\x04\x132 \xbey\x19\x10\xdf\xbc\x1c\x08\x9f\x90\
-\x03\xe1\x13\x0a \xbay\x05\x10\x9d\xed\x12`&\xac\x9e\
-\xee\x9em\x01\x10\xd9n\x8f\x09:p\xf3>`\xff\x8f\
-g\x1b\x05\xe0\x090\x806\x0f\x06\xd0\xe6\xe1\x008\x01\
-\x07\xc0\x09\x04\x805\x8f\x00\xb0\xe61\x004\x81\x01\xa0\
-\x09\x14\x804\x8f\x02\x90ls\x000\x81\x03\x80l\x93\
-\x80\xbdy,`\xce6\x0b\x98'\xd0\x80\xb5y4`\
-m\x1e\x0f\x18'\xf0\x80q\x82\x03x\xab\xbd\xb0|q\
-\x02\xa9\x02<\xbch\x81\xf6\xe8\x05^\x97\x81\xc7\xe4\x05\
-\x96\x1f\xb5\xd5\xd1\x0b,\xc7\xa2\xdd&'\xf0\xfeyq\
-\xc0:y\x81\xe5;\xa7\xddz\x81\xca\x95\xb3N^\xe0\
-\xe7\xf2\x80\xbd\x17\xa8\xbc\xb9l\x92\x17\x18\x0c\x03<\x80\
-i\x80\x07\xf8\xbe<\xe0\xe0\x05*W\xc1\xc7\xe4\x05v\
-\xa6\x01<P\x19\xf0\x90\xbc\xc0s%\xd3^\xa0\xf2J\
-\xf4\x98\xbc@5\xd3N\xa0\x9ei\x1f`\xc8\xb4\x0f0\
-d\xda\x05X2\xed\x02,\x99\x9e\x01\xed\x0fA\xe5\xa6\
-\x00\xf8Aj\x00\x06\x9c\x81\x85\xd3\xfb\x060\x80-\xd3\
-<`\xcc4\x0f\xec\xa0\x018`\xcd4\x0dX3\xcd\
-\x02\xe6L\xb3\x809\xd3$`\xcf\xf4\xe5\x17\xf7\x9f\xe1\
-\xa7\xae\x00\x80L[\xce\xa7\x02\x002M\x01H\xa6)\
-\x00\xc94\x03`\x95#\x80!x@\x0e\x84\x0f\xc8\x01\
-,\xd38\x00f\x1a\x07v\xe1\x03\xe6\x00\x9ai\x18@\
-3\x8d\x02p\xa6Q\x00\xce4\x08\xe0\x99\xc6\x80\xe0L\
-\x97@p\xa6\x0b :\xd3\x05\x10\x9d\xe9\x1c\x88\xaf\x5c\
-\x06\x0c\xa2\x01# \x1b0\x02\xcb\x99n\x0e^\xa0\xf6\
-\xfd;y\x81\xda\xe7\xef\xa3\x13XU\x06\x90\x9d\xbb\x02\
-\xd5\xd3\x1e\xc4\x00uYB\x00?\xc1\x08\xf0\x13\xac\x00\
-\xfd,[\x01\xfaa6\x03\xec\x043\xc0N\xb0\x03\xe4\
-\x9df\x07\xc8K\x0d\x00\xb8\x09\x00\xd0\xac\xfe\x88\x01\xaa\
-y\x10\xc0\xbc\x9dB\x003\x01\x03\x88\xe6a\x00\xd1<\
-\x10\xc0'\x80\x00>\x01\x05\xe0\xe6\xa1\x00\xdc<\x18\xb8\
-5\xe1\xdf\xb7\xbb\xe7k\xd7\x04Lxi\x22\xcf\x8d\xe6\
-\xc5\x027\xb2\x1d\x0c\x94\x13\x82\x812\xdb\xd1@\xd1\xbc\
-p \xcfv8\x90O\x88\x07\xb2\xe6\xc5\x03Y\xf3\x04\
-\xc0|\x82\x00\x98OP\x00\xb3\xe6)\x80Y\xf3$\xc0\
-t\x82\x04\x98N\xd0\x00\x93\xe6i\x80I\xb6E\xc0u\
-\x82\x08\xb8f[\x05\x5c\x9a'\x03\xc6l\xcb\x80q\x82\
-\x0e87O\x07\x9c\x9b'\x04N\x13\x84\xc0i\x82\x12\
-h\xf7b\xa0\xd9\xa8\x81v/\x06\x9a\x8d\x1ah\xb7b\
-\xa0Y\xab\x81v\xeb\x06\xfe\x03$\xe7\x91\x89\x97#\xf5\
-\xaf\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x02c\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00w\x00\x00\x00w\x04\x03\x00\x00\x00\xcb\x17\xc2\xb9\
-\x00\x00\x00'PLTE\x00\x00\x00\xff\xff\xffA\xcd\
-RA\xcdRA\xcdRB\xccQD\xccQE\xccQ\
-E\xccQD\xccQD\xccQC\xccQA\xcdR\xeb\
-\xfeC\xda\x00\x00\x00\x0ctRNS\x00\x00\x18Oc\
-\xae\xbd\xc9\xd6\xdf\xe9\xf0v\x89\xbe\xf7\x00\x00\x01\xdfI\
-DATX\xc3\xc5\xd8\xbbm\xc30\x14\x05P\xc1Z\
- \xd9\x80e\x902I\xe9\x22\xd0\x08\x9c\xc4\xf0H\xd2\
-\x22)(\x07R\xdeP)\xa2\x0fI\x89|\x9f[\x84\
-\xfd\xc1\x05l]>\x92MS^\xed\xb7k\xcc\xab\xa5\
-\x1e\xc1\xb3\x030\x10\xdd\x12\xfd\xbc\x01\x98\x82\x030u\
-\x08\xb6F\xb7DD\xe4\x11<:\x00\x1b\xa3\x17l\x8b\
-^0\xdd\x11l\xea\xc7\x8aM\xd1\x1b\xb6Do\xd8\xd2\
-\x8f\x1d\x1b\xaa\xb9cCt\x84\xf5\xd5\x8c\xb0\xbe\x1f1\
-VW3\xc1\xda\xe8\x04k\xfb\x91be?R\xac\x8c\
-\xce\xb0.:\xc3\xba~\xe4X\xd5\x8f\x1c\xab\xa2\x0fX\
-\x13}\xc0\x9a~\x1c\xb1\xa2\x9aG\x9cG_\xde\x8b\xeb\
-\xe3\x88\xb3j\xbe\x92j\xa5\xfd\xb8\xeapZM-N\
-\xa2\xb58\xe9\x87\x1a\xc7\xfdP\xe38Z\x8f\xa3h=\
-\x8e\xfaa\xc0{?\x0cx\x8f\xb6\xe0-\xda\x82\xb7~\
-\x98\xf0ZM\x13^\xa3mx\xa9\xa6\x0d/\xfd0\xe2\
-\xbfjZqp\x00&\x8f\xe0\xd1\x01\x98<\x82G\x07\
-`\xba!\xf8\xeb\xdf\xf0'\x80\x03\xf2\x83u\xc0_5\
-\x00\x1f\xc9\x8c|\xdb=\xd0\xaa\x09\xe9\xf3\x1d\xd8I\x96\
-\xcd\xf7\x0a\x04\xdb\xf0\x03\xd9z=\xb0\xe9\x8f\xc8\xb8\xf1\
-\xc0\xa0\x0b\xc8\x88\xed\x80\xe1\x1e\x90cE\x07\x1ch\x06\
-\xe0(5#'\xc0\x1e8{N\xc9\xa9\xf7\xc5z\x06\
-\xd3\x1f\xd6\xe5W\x94\x96\x0b\xd6\xe1\x07rA\xf1\xc0\xd5\
-hD.e\x1e\xb8\x0e\x06\xe4\x22z|sx.\xad\
-\xa7\x1c\x9f\x04\xcb\xf1\xc9c\x87\x18\x0f\xce\x8eO/\xb0\
-R|zu\x16\xe2\xc9\x01\xf8\xbc\x112\x5c\xa8\xa2\x0c\
-\x17\xaa(\xc2\xa5*\x8ap\xa9\x11\x12\x5c\xac\xa2\x04\x17\
-\xab(\xc0\xe5*\x0ap\xf9\xf9\x8f\xc7\x95=\x80\xc7\x95\
-wG\x16\x0f\xce\x8e\xaboI\x1c\xae\xbeb1xr\
-\x00\xae\x0f\xa7:f\xa6b\x1d3S\xb1\x8a\xb9\xa9X\
-\xc5\xdcp\xaaav*V\xf0\x85{\x8b\xff\x05\xc8d\
-f\xae\xfe\xc1\x88\xef\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-\x00\x00\x17\x1c\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x03 \x00\x00\x02L\x08\x03\x00\x00\x005\xef2\xcf\
-\x00\x00\x00EPLTE\x00\x00\x00~\xdbrA\xcd\
-RA\xcdRA\xcdRA\xcdRA\xcdRM\xd0]\
-Y\xd3he\xd6rq\xda}|\xdd\x88\x88\xe0\x93\x94\
-\xe3\x9e\xa0\xe6\xa9\xac\xe9\xb3\xb8\xec\xbe\xc4\xef\xc9\xd0\xf3\
-\xd4\xdb\xf6\xdf\xe7\xf9\xe9\xf3\xfc\xf4\xff\xff\xff\xd4\x9f\x8c\
-\x95\x00\x00\x00\x06tRNS\x00\x00\x10\xaf\xbf\xcf\x84\
-\x1d'\x05\x00\x00\x16\x80IDATx\xda\xed\xdd\xe9\
-\xa2\x9b8\x12\x86\xe1\xf6,,\x02\x04\x08\xd0\xfd_\xea\
-\xfc\xc8\xd2\xc9t\x9c\x9cCi)\x15\xefw\x05\x06\xfb\
-A\xaa\x92\x84\xff\xfa\xabd\xfe\xf5\xdf\x8e\x90v\xf2\x9f\
-\x17>\x08y\x0f\x04\x1f\x84(\x01\x82\x0f\x02\x10|\x10\
-\x80\xe0\x83\x00\x04\x1f\x04 \xf8 \xa4>\x10|\x10\x80\
-\xe0\x83\x00\x04\x1f\x04 \xf8 \xa4\x14\x10|\x10\x80\xe0\
-\x83\x00\x04\x1f\x04 \xf8 \xa4\x14\x10|\x90\xb6\x81\xbc\
-\xf0AH\xa5\x11\x04\x1f\x04 \xf8 \x00\xc1\x07\x01\x08\
->\x08)\x05\x04\x1f\x04 \xf8 \x00\xc1\x07\x01\x08>\
-\x08)\x05\x04\x1f\x04 \xf8 \x00\xc1\x07\x01\x08>\x08\
-)\x05\x04\x1f\x04 \xf8 \x00\xc1\x07\x01\xc8\x0b\x1f\x84\
-\x14\x1aA\xf0A\x00\x82\x0f\x02\x10|\x10\x92\x16\x08>\
-\x08@\xf0A\x00\x82\x0fB\xd2\x02\xc1\x07\x01\x08>\x08\
-@\xf0AHZ \xf8 \x00\xc1\x07\x01\x08>\x08I\
-\x0b\x04\x1f\x04 \xf8 \x00\xc1\x07!\xff\x0f\xe4\x85\x0f\
-B2\x8d \xf8 \x00\xc1\x07\x01\x08>\x08I\x0b\x04\
-\x1f\x04 \xf8 \x00\xc1\x07!i\x81\xe0\x83\x00\x04\x1f\
-\x04 \xf8 $-\x10|\x10\x80\xe0\x83\x90;@\xf0\
-A\x00\x82\x0fB\xee\x00\xc1\x07\x01\x08>\x08\xf9\x02\xe4\
-\x85\x0fB\x12\x8d \xf8 \x00\xc1\x07!w\x80\xe0\x83\
-\x00\x04\x1f\x84\xdc\x01\x82\x0f\x02\x10|\x10r\x07\x08>\
-\x08@\xf0A\xc8\x1d \xf8 \x00\xc1\x07!w\x80\xe0\
-\x83\x00\x04\x1f\x84\xdc\x01\x82\x0f\x02\x10|\x10r\x07\x08\
->\xc8\xb3\x81\xbc\xf0A\xc8\xcd\x11\x04\x1f\x04 \xf8 \
-\xe4\x0e\x10|\x10\x80\xe0\x83\x90;@\xf0A\xc8{ \
-\xf8 \xe4=\x10|\x10\xf2\x1e\x08>\x08y\x0f\x04\x1f\
-\x84\xbc\x07\x82\x0fB\xde\x03\xc1\x07!\xef\x81\xe0\x83\x90\
-\xf7@\xf0A\xc8{ \xf8 \xe4=\x10|\x10\xf2#\
-\x90\x17>\x08\xf9\xe0\x08\x82\x0fB\xde\x03\xc1\x07!\xef\
-\x81\xe0\x83\x90\xf7@\xf0A\xc8{ \xf8x\x97\xde\xfd\
-\x1c\xee\xc8\x13\x81\xe0\xe3\xef87{\xbf\x86\x10\x8e\xf8\
->!\x84\xe0\xbd\x9f\x00\xf3\x08 \xf8\xe8\xba\xde\xcd~\
-\x0bg\xfc|\x8e\xb0\xf9\xd9\xf5\xdcB\xb3@\x1e\xeec\
-\x98\xfc\x1e\xa2<a\xf3n\xe0Ge\x0f\xc8\x83}\x8c\
-\xf3\x9a\x82\xc6\x0f\xb9\xc2:\xa3\xc4\x14\x90\xa7\xfap>\
-\x5c1O\xae\xe0\xa9M\xac\x00y\xa4\x0f\xe7C\xcc\x1d\
-\x90\x98\x00\xf2<\x1f\xc3\xb2\xc7B\xb9v\xa6[\xad\x03\
-y\x98\x8f\xd1\x1f\xb1l\x8e\x05#-\x03y\x94\x8e\xf5\
-\x8c5\x82\x11\x80\xe8O\xbf\x1c\xb1^\x8e\x99u\x92\x16\
-\x81\xbc\x9e\x02d\xdac\xedl\xd4\xec\x8c Z\x07\x8f\
-3j\xc8\xc90\x02\x10\x85]\xab\xed\x8aZr\xadT\
-#\x00Q\x15\xb7G]\xd9 \x02\x10=<B\xd4\x17\
-\x88\x00DGF\x8d< \x02\x10-\xb5G\xd4\x9b\x95\
-r\x1d u;W>\xaa\xce\xb5\xf0\xf3\x03H\xbdL\
-g\xd4\x9e\x83u\x11\x80\xd4\x9a]\x85\xd8Bj\xcf\xb3\
-\xdc\xbd\x00\xa4\xf5,Wl#\xd7T\xf5>\xdd\xfc\xd4\
-\x00i|\xf88b;\xd9{\x80\x00\x84\xe1\xe37\xdb\
-O\x1c@\x00R\xb0y\xb5\xc7\xd6\xe2\x01\x02\x90R\x19\
-\xcf\xd8^B\x0f\x10\x80\x14\xc9\x1c\x9b\xcc9\x02D)\
-\x10[\xe7A\xb6\xd8h\xae\x19 \x8c \xd9\xcb\x8f#\
-\xb6\x1b\x0f\x10\x80d.?Z\xf6\x11\xe3\x06\x10\x80d\
-\xf5q\xc5\xb6SaE\x04 \xcf\x01\xd2\xbc\x8f\x18\x8f\
-\x1e \x00\xc9\x94\xa9}\x1f\x15\x84\x00\xe4)@\xe6h\
-\x22\xa5\x85\x00\xe4!@\x5c\x8c\x08\x01\x08@\xec\xd6\x1f\
-\xdf\x85\x00\x04 \xf8\xd0\xd2\xed\x05\xc8\x13\x80\x0c\x96|\
-\x94\x15\x02\x90\x07\x00\xe9\x8fh+3@\x00\x920!\
-Z\x8b\x03\x08@\x92e3\xe7#^\x03@\x00\x92(\
-s4\x98b\xcd^\x80X\x072F\x93\xd9\x00\xa2\x05\
-H\xdb\xe7A\xfa\xd3&\x90R\x85:@\x8c\x8f \xbb\
-Q\x1f\xa5\xca\x10\x80\xd8\x062G\xb3\x09\x00\x01\x884\
-\xc6V\x08\x7f\x8e\x07\x08@\x84\x09\xd1rF\x80\x00D\
-\x94\xc5\xb4\x8f\x22\xdb\x16\x01b\x18\x88\xe9\x09V\xa1I\
-\x16@\x0c\x03)\xd2\xc1:BX\xbd\xf7\xfe\xfb\x8b\xcd\
-\x17\xef\xbd\x0f\xa1\xc8\xecn\x00\x08@ng\xca\xdbf\
-\x0d\xab\xff\xc3k\xfeG\xb7\xac!\xeb(\x16\x00\x02\x90\
-\xbb\xc9\xb7Dx\x05\xef>\xfe\xec\xee\x9d\xdf\xb3)\x99\
-\x01\x02\x90\x9b\xc9\xf4\xffj\xfbr\xa7y4\xccy\x90\
-\x5c=@\x00r\xafB\xcf\xf1s\xdc$\xfff\xe3\xd6\
-\x0cc\x9a\x07\x08@tT\xe82\x1d_\xab\x925\xf9\
-82\x00\x04 w\x1e\xd7\xa9\x9bUs\xa2\xc9\xcc\x9c\
-\xb8\xbd\xb5\x01\x04 7\x92\xf6g\xb8\xa5<\xc2\x97\xf8\
-\xcf\xd9\x1d@\x00\xf2\xf9\xe7tR\x1e\xa9\xa71I\x89\
-\x04\x80\xd4\x05\xd2\xe4y\x90\x84\xe5\xf0\x9ec\x96\x9f\x92\
-\x88\x03\x08#H\xb5\x01\xe4\xc8\xf5\xf3s\xa1\x89!\x04\
- &\x81\xa4\x1a@\xae\x9c]\xd4d\xff\xb5\xeb\x00\x02\
-\x90*\x03H\xc8\xdbC\x1d\x82\xfe!\x04 \x16\x81$\
-\x1a@\xf2o\x96]\xd4\x0f!\x001\x08$\xcd\x00r\
-\x958\x8f\x94\xe6?\xa9\x03@\x00Rz\x00)\xf4\xe6\
-\xa94\xafE\x1d\x01\x02\x90\x8f\xf7\x87\x1aX\xa0\xfe!\
-\x9b\xeaO\x0b\x10{@R\x94\xbek\xc1\xcf\x9bB\xc8\
-\x00\x10\x80|\xb47\xd4\xc21\x8b\x9f\xb2*\x06\x0d\x10\
-s@\xb6\xd6|\xa4\x10\x92\xed\x5c\x08@\xac\x01\xe9\xe5\
-\xcboK\x83\xa8g\x80\x00\xe4CY\x1a\xaa\xcf\x13\x0a\
-9\x00\x02\x90\x0f\xe5l\xd1G\xd7\x89\xbb\xbd#@\x00\
-\xf2\x81\x88{\xbc\xa5\xff\x88\xfc\xdb\xcc\xf0\xd4\xe9\x1a \
-\xc6\x80H\xe7*\xe5\xfe\xbb\xe9\xff2\xea,\xd3\x01\xf2\
-G M\x9d\x07\xe9\xa5\x03\xc8T\xed\xa3/*\xcbt\
-\x80\xd8\x1aA\xa4\xdb\xb0\xd6\x8a\x9f]\xb8\xc0\x19\x00\x02\
-\x90\xdc\xb5n\xa5\x02\xe4K\xa4\xaf\x12\x1e\x00\x02\x90?\
-\xfd\xc6\xd4n\xfa+0\xc9Z\x00\x02\x90?\xc4\xb7;\
-\xc1\x92O\xb2\x0e\x80\x00\xe4\x0f956\x82\x8au\xb2\
-F\x80\x00$\xe7\x0fl\xae~\x01\x9b\xba\x01\x10 \x96\
-\x80\xac\xfa\xa6(\x9f\x8bl#\xd9\x09\x10\x80d\x9ca\
-9\x05W\xe0\xb5\xcd\xb1\x00b\x08\x88l\x86\x154\x5c\
-\x82l\x08Y\x00\x02\x90l3,\xa7\xe2\x1a\xbc\xb2I\
-\x22@\x0c\x019\x9a\x1f@\xa4C\xc8\x00\x10\x80\xbc\xcd\
-\xd0x\x0b+\xc10\xb8\x00\x04 o\xb3h\xeb\x00\x95\
-g\xbe\x03\x04 o\x13,\x0c \xc2\xb5\x10\x80\x00\xe4\
-\xed\xec\xbd\xe9E\xf4\xbf#:\xf25\x01\xa48\x90V\
-\xce\x83\x88\xfe\x16}St!\x92\xd5\x9c\x15 \x8c \
-9\xa6&\xa3\xa2\x0bY4\x95R\x001\x03D\xf2\xe0\
-=4]\x88h\xae\xf8\xe1F\xef\xe0>\x94\xbb\x8bJ\
-)2\x02DK\xf7gVu)[\x89+\x11\x9e\x0c\
-(\x91\x00\x90\x84\x11\x1d\xb6\xedU]\xcaT\xa2\x98\x02\
-\xc8\xc3\x80\xec\xaa\x96\x0fd\xb9\x0a\x14!\x00y\x18\x10\
-\xc9\x16\x8dI\xd9\xb5l\x05\x8a\x10\x80<\x0b\x88d'\
-\xefe\xa9c=\x03\x04 \x89{\xa3\x9b\xba\xab\xb9\xf2\
-_\x0c@\x9e\x05d34\xc3\x12]\xcd\x09\x10\x80$\
-^\x05\xe9\xd5]\xcd\x94\xffj\x00\xf2( \x92U\x90\
-]\xe1\xf5\xe4\x1f\x0f\x01\xf2( \x92G\xee\xa2\xf0z\
-\x04Mk\x0f\x10\x80\xfc#\x92cF\x83\xc2\xebY\xb2\
-\xff\xac\x00\xf2( \x82\xb3 \xa7\xc6\xeb\x91L\x19\x01\
-\x02\x90\x94s\xf6U\xe5\x05\x09\x9a\x0e#@\x8a\x02i\
-\xe1<\x88\xe4\x90\xd1\xa4\xf2\x8a\x04\x8d\xde\x19 \x8c \
-\xe9\xa6\xec\x0a\x9b\xbc]'\xda{\xb9\x02\x04 \xe9\x9e\
-\xb7\x87\xce+\x1ar\xff\xae\x00\xf2$ G\xee\xe7m\
-SE\x08@\x00\x92\xaeF\x9f\x94^\x92`P\x1c\x01\
-\x02\x90\x9f\x22\xd9\xca\xdb+\xbd\xa6%\xb3y\x80<\x08\
-\x88\xa0\xa2=\x0c\xa2\xf7\x00\x01H\xaa/{S{Q\
-\x99\x7fX\x00y\x10\x10\xc1:\xfab\xf0\xa2N\x80\x00\
-\xe4\xa7\x08\xce\x17\xe9}\xb5\x8c`{\x19@\x00\xf2c\
-$/\x922YX9\x80\x00\xe4\x878\x93\xdf\x81\xa0\
-J\x9f\x01\x02\x904\x1d\xd1U\xf1e\xe5mc\x01\xe4\
-9@\x04\xdf\xf5\xa2\xf8\xb2\xeeW\xe9;@\x00\x92\xa6\
-\x89\xe5\x14_\xd6\xfd\xb5\xf4\x03 \x00\xf9!\xb9\xb7-\
-\xb57s\x04HA \xfa\xcf\x83\xdc\xff\x0aN\xcd\x97\
-%\xe8=\x0c\x00a\x04I\xd1\xeeQ\xfd\x15\xf4Yg\
-\x8e\x00y\x0c\x10\xc1\x93\xd6\xab\xbe\xb0\xac\xbd\x07\x80<\
-\x06\x88\xe0\xab\x9eU_X\xc8\x09\x1f \x8f\x01\xb2f\
-\x9d\x8a4\xd9\xc6\xda\x01\x02\x90\x14]^\xabCc\x00\
-\x08@\xbe\xe7\xfey\xdbK\xf7\x85M9/\x0c \x8f\
-\x01b\xf6\x1bp9\x87F\x80<\x05\x88\xa0\x1b\xba\x99\
-\xa5?\x02\x04 \xd6\xbb\xbc\x12 \x0e \x00\x91\x03\x99\
-\x95\xdf\xfb\x90\xf1\xca\x00\xf2\x14 >\xe7s\xd6\xeeB\
-\x08@\x00\x92b\xcbR\xa3\x97\xb6\x02\x04 _#\xf8\
-\xaf\x99\xce,\x90\x00\x10\x80\x88\xe7!\xa7\xf6{?\x01\
-\x04 \xe2\x1cv\xbf\x80\xfb\xfd\x87\x0b \xc5\x80h?\
-\x0fr\xff\x0b\xd8\xb5\xdf\xfb!\xe3\xec\x11 O\x19A\
-\xec.\x83H\xae\x0d \x00\xf9\x92\x11 \xb7:\xd8\x83\
-\xfbH\x96\x5c>\xedD;\x10\xc1:\xe1\xa4\xfe\xe6\x87\
-|@\xf2\xde]\x80X\x00\xe2\x0c\x03\x99\x00\x02\x10\xe9\
-\x5cZ?\x90\xbd\xf6\xf4\x11 O\x06\xa2\xff\xe6{\x80\
-\x00\x04 \x00\x01\x88\xc6YH\x03\xdf\xe2\xfdw\xc7\x05\
-\x80\x00DX\xc76\xd0fw\x00\x01\x08@\x00\x02\x90\
-|9\x00\x92q#&@\x9a\x07r\xbf\x04Y\x1b\xb8\
-\xfb\xb5\x0b,\x80<\x18\x88\x07\x08@\x00\x02\x10\x80<\
-\x19\xc8\x00\x90_\xa7\x07H! \xba\xcf\x83\x98\xde\x8a\
-U\x7f\xb7\x22@Z\x1fA\x00\x02\x10\x80\x00\x04 \x00\
-\x01\x08@\x00\x92<\xf3} c\x03w\xff\xfeN\xb3\
-\x09 \x00\xe9\x8co\xe6\xad\xbf\x9d\x17 \x00\x01\x08@\
-\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\x00\x02\x90\x8fg\
-\x05\x08@\x00\xf2>\xa6\xcfKI\x96yV\x80\x00\x04\
- \xb9/\x0f \x00\x01\x08@\x00\x02\x10\x80\x00\x04 \
-\x00\xa9\x00\xe4\x05\x10\x80\x00\x84\x11\x04 \x00\x01\x08@\
-\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\x00\x02\x10\x80\x00\
-\x04 \x00\x01\x08@\x00\x02\x10\x80\x00\xc4\x0a\x90\xad\x85\
-\xbb?\x00\x04 \x95\x80\xf8&n?@\x00\x22\xca\xfd\
-\xbf\x07i\xe1\xdf\x0f\xba\x11 \x00\xa9\x04$\x00\x04 \
-L\xb1(\xd2\x01\x02\x10\x80\x00\x04 \x00\x01\x88J \
-\x9c\x07\x01\x08@\x18A\x00\x02\x10\x80\x00\x04 \x00\x01\
-\x08@\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\x00\x02\x10\
-\x80\x00\x04 \x00\x01\x08@\x00\xd2\x06\x90\x1d \x00\x11\
-\x019m\x03\xe1\xffA\x00\xd2u\xe6\xffaj\x01\x08\
-@\x00\x92\xe3\xf2\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\
-\x00\x02\x90f\x81\xbc\xac\x02\xe9M\x03Y\x00\xc2\x08\xd2\
-u\xdd|\x1f\x88k\xe0\xeeo\x95\xaf\x0e \xad\x03q\
-\xb6\x81\x04\x80\x00\x04 \x00\x01\x08@\x00\x02\x90\xb6\x80\
-\xcc\xa6\x81\x8c\x00\x01H\xd7u\xfd} -\xbc\x9c\xf7\
-\xaa\xdc\xc4\x06H\xeb@:\xdb@\x22@\x00\x02\x10\x80\
-\x00D\xe1Oh\x03\x08@\xec\x031\xfdz\xf7\xda/\
-w\x07H\xfb@L\x1f)t\x00\x01H5 \x07@\
-\x00b\x1f\xc8ny;\xef\xfd\x9df;@\x00\xd2u\
-\x9d\xf1\xfd\xee\xb5w\xbb\x03\xe4\xd1@z\x80\x00D\x0e\
-\xe4e\x16\x88\xfe\xcdX\xf7w\xbb/\x00a\x04\x11\xd6\
-\xb1\x0d\x00\xa9\xbdW\x11 \x8f\x062\x03\x04 \xe6\x81\
-\xdc_Kk`\xaf\xc9\xfd\xbd\x8a#@\x00\xf2%\x96\
-\x81T\xef\xd0\x01\xe4\xc9@\xd4/\xa5\xf7\x00\x01\x888\
-\xa7] \xf7\xeb\xab\x13 \x00\x11\x17\xb2\x97] \x01\
- \x00\xf9\x1a\xc3{M<@\x00R\xf1W\x94\xaa\xd5\
-\xa3\xf0\xd2<@\x00\x22\x07\xa2}\xa5p\x07\x08@*\
-N\xd4S\xed\xc7PX^M\x00\x01\x88\x1c\x88\xf6\x85\
-\x90\xab\xfa\xd8\x08\x90\xf6\x81\x08\x16\x0bv\xe5\xf7\xfe\xfe\
-\x95\x0d\x00\x01\x88\xfcg\xa4|!D06v\x00\x01\
-\xc8\xb7\x1c\xf5\x7fGy2U_'\x04\xc8\x07\x80\xbc\
-\xb4\x03\x09\xf5g\x22\xda\xfas\x01 \x8c \xdf\xb3Z\
-\xed\xf3\xde?.\xb5\x01\x04 \x09\x1e\xb4\xca\xfb\xbc\xf7\
-\x87F\x0f\x10\x80\xa4\xa8eW\xd5\x17v\xbf\xcb;\x01\
-\x04 \xdf3\x1amc\xf5\x0a\xa6\x8e\x001\x00D\xd0\
-\xe7U\xbd\x9fW02\xf6\x00\x01\xc8\xdf9\x15\xfc\x92\
-2dQ\xe0\x1e \x16\x80\x04\x9bm\xacM\xc1\xcc\x11\
- \x16\x80\x08\xdaX\xde\xa4\xfb\x0d \x00I2\x17Q\
-\xbd\x1bK\x03{\x80X\x00\x22\xa8fO\xbdW5j\
-\x988\x02\xc4\x02\x10A?Tq\x95~\xff\xcd\xee\x09\
-w\xd0\x00\xc4\x02\x10\xc1\x8a\x9a\xe2*]\xb0\x83\xa6\x03\
-\x08@\x12\xb5\xb1\xbc\xc1\x8b\x0a\x00\x01H\xaa6\x96\xde\
-*=*hb\x01\xc4\x06\x10\xc1t]\xedZ\xba\x8e\
-w\x0e\x03\xe4\xcf@^\xfa\x81\x08~Lj_\xfd\xb3\
-\xa8\xa8\xab\x00bb\x04\x11LG\xd4\xeex\x17\xbc\x0f\
-\xaf\x07\x08@\x92U\xe9Z\x8b\x90\xfb\x9d\xb9\x94k;\
-\x00\xb1\x01d3W\x84\x8c:\xc8\x03\xc4\x06\x90\xd9\x5c\
-\x11\xb2\xa8\xa8\xd1\x01b\x04\xc8h\xae\x08\xd9U\xd4\xe8\
-\x001\x02DR\xa5\xeb,B.\x155:@\xac\x00\
-\x11T\xe9*\xbfL\xc1\x90\x98t\xff%@\x8c\x00\x11\
-l\x5cJ\xf7\x86\x83\x84\x11\xec\x0d\xd84\x00\x19\x00\xa2\
-+ST\xf2\x8bJ\x94CIM\xe5\x14\xd4A\x00I\
-\x10\xc9\x8ew\x85\x8d\xdeAKW\x0e F\x80H^\
-\xdc\xa0\xb0\xd1\xabfs\x19@\xac\x00\x11,\x15*|\
-}\x9c\xa0\xc9\x1b\x00\x02\x90\xb4\xcf\x5c}\xe7n%\x13\
-F\x0f\x10\x80$\x9e\xb5\xab\xebcI\xb4'\xfei\x02\
-\xc4\x08\x10Q\x11\xa2\xad\x8f\x15\xf4t\x1c\x0c\xb5\xces\
-\x01y\xb5\x01DR\x84\x5c\xba^\xdd \x19\x0dw\x1d\
-@\xfc\x83\x8042\x82H\xa6%qVu)\x82\x8d\
-\x8a\xc9w\x96\x01\xc4\x0a\x10Ia\x1b\x0f3\xb3\xc5\x11\
- \x00\xf9u\x8e\xa8\xe8wU\xa3s\x94\xa5!\x07\x10\
-3@$\xdb\xb1T\x95\xe9\x9b\xa6\xebP\xb1\x1a\x03\x90\
-\xda\x0f^MoX\xd4\xd5\xb0\x06\x88\x19 \x92#\x14\
-\x9a\xe6\x04^\x95\xf3\x00\x103@$S\x13=\x9d\xde\
-^\xe2<\xfd\xe1\xaf\x9b@.\x80\xe8\x8b\xa8\xd1\xabf\
-\x08\x11\x0d \x8b\x16 \x11 \xfa\x22j\xf4j\x19B\
-D\x03H\x86sJ\xa1\xf9\x9a\x0e \xdf\xb3\x1b\x18B\
-D\x03\xc8\xa1\xe7\x9e:\x80X\x9bc\xa9\x18Bd\x03\
-\xc8\xa2\x07,@\xcc\xcd\xb1T\xac\x85\x88\x06\x90\x1c'\
-\xc1}\xe3%\x1d@\xd2\xcd\xb1\x14<\xf5Dk Y\
-6\xcc\xdc\x05\xb2\x02\xc4\xdc\x1cK\xc1\x8e\xac \xfa\xfc\
-9\xb6\x5c\xde}\x1bF\x00\x88\xbd9V\xf5y\xc1$\
-\xfb\xf89\x8a\xa8\xbb\xfb\x13\xce\xe7\x00y\xb5\x03D:\
-\xc7\xaa\xbcgQV\xa1\xe7yE\xe4\xed\x0d<\x8c \
-\x06\xe7X\xf1\xa8\xda\xc9\x92M\xb0\xf2\x9c\xe2\xeb\xdb-\
-\xe8\x00\xf2\x8b\x5cB!5;Y\xb2\x0eV\xaeI\x8d\
-\xa2\x963@\xe4\xd9\x84@*\x9e-t:\x0b\xa8\xab\
-\xc1G\x0d@\xdef\x94\x02\xa965\x18\xa5\x83_\xa6\
-\xd7\xe1\x06\xaatK@d\xe7\x0ac\x8c\xf1\xaaS\xa8\
-\xf7\xd2\x0f\x9e\xeb_\x1c\x822\xb0\x00\xa9[\xa6W\x12\
-\x22\xf6\x91m\xe4\xf3\xedMV\x01\x92\xafUZI\x88\
-\xdcG\xb6\x19\x8d\xd76\xa4\x01\xa4r\x99^A\x88\xdc\
-G\xbe\xe7\xf5\xfd\xc5\xcb\x1e \x1a3\xc4\xe6\x84$\xf0\
-\x91\xaf$v\x919\x96) \xd2\xe5\xb6/BJ~\
-\xb9\xe3)\xff\xc0\x197\xc9(D\x0b\x90:\x8f\xbc:\
-\xdb\xb2\xa6+\x01\xe8\x8c\xd3\x99\x8b!\xc4\x16\x90\xeeL\
-\x22$\x14\x9aB\xaf\xda9\x07\x95l\x01r?s\x12\
- \xf1*\xb1d8\x1cI>j\xce_\xa2\xa0\xebq\
-\xf4\x00\xb1;\x84\xc4\xb8f\xff~\x97K\xff|P\xb2\
-E\xec\x09B\x1a\x04\x92h\x08\xc9^\xab\x8fG\xa2\x8f\
-\x99\xf5g(\xaa\xe9\x0e\xfb\xeb\xe9M\x9d\x07I<\x84\
-\xc4\x18\xf2\xcd\xb3\xfa-\xd5\x87\xcc\xbbqV\xd67\xbf\
-\xcc\xef\xeamp\x04I7\x84\xc4\x18\xb7<\xcf\xc0\xde\
-_\xa9>a\xeev\xaa\xf0\x83\x9es\x0f\x10\xbbCH\
-\x8cq\x1b5\xf3\xc8\xffwg\xe2\x85\xa5k\x9b>e\
-\xc49\xe7\x9c[\xfc\x00\x90\x16\x86\x90\x18cH\xfb\x1b\
-\x1c\xb7\xa4\x1f.\xf7\xcd\xf4)>\xe5\xb1.\xee\xe7\x1f\
-|\xff\xc5\x81\xf7\xde{\xbf\x87\x10B8Z<\x94\xd8\
-$\x90\xb4CH\x8c\xf1L\xf68\xeb\xe7#\xedG\xcb\
-\xbe-fJ\xf8a\xaf\x10B\xf8\xe8\xe8\x09\x906\xbe\
-\xd4o\xcf\xc0eH\xa0cO\xfd\xb1\xf2\xbf\x80j\x88\
-\x95\x02\x10\xcd\x13\xe7_\x1a\xf1\x92\xc7\xf5\xb0\xec\xe9?\
-R\x89\xd5\xea\xab\x12\x10\x0f\x90|\x193}i\xd7\xbe\
-\xdcy\xb0\x0d\xf3vf\xf9<%\xfe\x90|\x07\x88=\
- i\xf68\xbd\xab\x8b\xd7O(\x19'\x1f\xb2=\x83\
-\x8b\x9cJZ\x00b\x10H\x9f{bp\x85\xcd\xcf\xee\
-\xfd\x9ckt\x93_\xc3\x99\xf73\x14\xe9\x84\x8e\x001\
-\x08$u\xab\xf7w\x03J\x08!\xf8o\xd9?\xd3\xa8\
-Q\xbd\x86^\xbb\x08\xd9\x00\xd2^\x9d\xae*\xa5\x8e}\
-ou./\x00$o{\xf22\xee\xa3\xd8y\x8b\x19\
- \x16\x81T+.\xcd\xad\x13\xf4\x001\x09\xc4\xf8$\
-\xab`\x0d{\x00\xc4$\x10\xd3\x93\xac`\x7f,n\x03\
-\xc8\xab] \xb5&\xcf\xa6\x0a\x90\xae\xab\xb6\xdb\x84\x11\
-\xc4j\xff\xa5@\xca\xbe\xba\xeb\x00\x88M \xfda\xd4\
-G\xe1W\xea,\x00\xb1\x09D\xfe\xaf\x02:S\xfaO\
-d\xeb\xf4\xb1\x06\x80P\x864\xb2\xc6\x5ce\xae\xea\x00\
-R \xde\x9e\x8f\x0ao\xd3q\x00\xb1\x0a\xc4^\xa1^\
-\xe5mS'@\xac\x02\xb1V\xa8\xd7y\x1b\xdb\x0c\x10\
-\xab@\x8c\x09\xa9\xf5\xc6\xdb\x0aC\x88\x07\x08B>\xed\
-c\xact\x13g\x80\x98\x05b\xa8\xd9{\x8c\xd5n\xe2\
-\x09\x10\xb3@\xcc\x08\xa9\xf96\xe8\x19 v\x81${\
-Q\xf4s}T\xd8\x1c\xbd\x01\x84:\xe43\x09u\xdf\
-r[\xfclz\x00\x08BZz\xa0\xae\x001\x0c$\
-\xe1\xff\x0d\xd4\xc9\xf2\xb8gL\x1b@^V\x80\x94\x7f\
-\x02&m\xefN\x0an\xe0\x08\x10\xc3#H\xd7us\
-\xb3\xcd\xac\x8a\xed\xdd\x8a\x9d,\x80\x14\x7f\x04\x9em\xfa\
-\xd8\xb4\xfc\x09\xcd\x06\x10\xd3@\xba~oqz\xa5\xe8\
-\x1f\xc77\x80\x98\x06\x92\xec\x9feKN\xafT\x1d\x1c\
-\x0a\x00\xb1\x0d\xa4\xb95Ce\xeb\xc9%\x9b\x81\x03@\
-\xaa\xa4\xad3T\x93\xb6\xdbWN\x88\x03H\xa5A\xa4\
-\xa5W\xca]\xfdc\x1f0\x00\xa1\x12\xf9@Vuw\
-\xcf]\x001\x0e\xa4\xa9uu}\xbf\x93>\x00\xc48\
-\x90\x96\xe6Y\xc7S\x87`\x0f\x90\xba3\x85V\x88h\
-\xfc\xa1\x94\x18\x82\x01R;s\x1b+\xeb\xd7\xf0\xcc\xe7\
-\x0b@\x14\x10ib\x14Q\xbam/7\x11\x800\xd1\
-ju1\xe4[!\x97u\xa2\xb5\x01DE\x86M}\
-\xd3\xf7\xec\xb5\xde\xbc~\xc9\xb23\xe1\xdc\xfd\xd4\xc6\xbb\
-y_\xf6\x81t]?k\xdf\x7f\xb2*\xbe{\xe3\x9a\
-\xb4\x94\x0b\xeb\xe2\xfaf~:O\x18A\xbe~\xcb\xba\
-\x87\x91Q\xf7\xdd[RLT\xc3\xe6\xdd\xd0\xd8\xef\xe6\
-1@\xba\xae\x9b4O\xb5\x0e\xf5\xb7\xcf\xf9\xdb\xff\x0f\
-\x7f\x86\xb5=\x1a\xcf\x03\xa2\xdb\xc8\xd2\xc2\xfd\x1b&\x1f\
->3\xdf:\xc2\xea\xdd\xd8\xf2/\xe6a@\xba\xae\x9b\
-V\x9d\x8b#W;O\xd8\xd1-~\x0f\xef']W\
-\x08\x9b\xf7\xae\xa1J\x03 ??\x07\x97]\xe1@\xb2\
-\xb7X\xd99\xe7\x9c\xf3_3;\xe7\x1a\x9dI\x01\xe4\
-\x9fe\xe7\xaem$\x99:\x02\x10]3\xeaU\xd3*\
-\xe2\xd9\xf3{\x04\x88\xc6\xbasO\xb1Jr\xc9gm\
-\x9e\xdf#@\xb4\xce\xb8&\xbf\x85\xfbs\xae\xe0]\x8a\
-\x97J\x8d|\x11\x00\xd1=\x9c\xb8\xc9\xff\xb6A\xf3\xcb\
->\xe6\xd7\xbaT>]\x0b|\x03\x00i\xc7\x8as\xd3\
-\x97\xee\xcc\x16~\xcc\xea\xbd\xf7~\xf9g\xc3fx\xc8\
-b\x08@\xc8\xbd\xc8\xdfvpQ\xa7\x03\xc4n\xfa\xf3\
-\x91\x8b!\x00!\x1f\xcc\xf4\x8c\x17\x19\x00\x84\xdcL`\
-1\xc4\x1a\x90\x17@RV\xf6,\x860\x82\x90\xacu\
-:\x8b!\x00\xb1\x9c\x93\xc5\x10\x80\x90\xf7q\xf2!d\
-\xe6.\x02\xc4nv\x16C\x00B\xb2\xd6\xe9\x1bw\x11\
- v\xb3\xb0\x18\x02\x10\xf2\x9b\xc87\xcf\x9f\xdcD\x80\
-P\xa7\xb3\x18\x02\x90g&\xc1\xfb:\x07\xee\x22@\xcc\
-\xa6\xbfX\x0c\x01\x08\xc9Z\xa7\xb3\x18\x02\x10\xc3\x09,\
-\x86\x18\xc9\xbf\x01\x92#\xa3\xed\xd7Y?'\xff\xfd\x17\
-@\xb2de1\xc4\x8a\x0f\x80(\xad\xd3\x0f\xee\xa2\x06\
-\x1f\x9c\x07\xc9\x93\x99\xc5\x10\x1b\xe3\x07#\x88\xde:\x9d\
-\xc5\x10\x0d>\x00\x92'\x09^\x02\xc4b\x88\x06\x1f\x00\
-\xc9\x94\x04\x87\x0by\x9d\xb5\x02\x1f\x00\xc9U\xa7\x9f,\
-\x86X\xf0\x01\x90\x5c\x99X\x0c\xb1\xe0\x03 \x8a\xebt\
-\xde\xe0P\xdf\x07@\xf2\xd5\xe9,\x86\x18\xf0\x01\x10\xd5\
-u:\xaf\xb3\xae\xed\x03 \x19s\xb2\x18\xd2\xbc\x0f\x80\
-dL\x82\xc3\x85\xbc\xce\xba\xb2\x0f\x80\xe4\xcc\xcebH\
-\xeb>\x00\xa2\xbcN\xe7u\xd6u}\x00$k\x16\x16\
-C\x1a\xf7\x01\x90\xbc9X\x0ci\xdb\x07@\xd4\xd7\xe9\
-lZ\xac\xe8\x83\xf3 \xb9\xb3\xb1\x18\xd2\xf2\xf8\xc1\x08\
-\x92;\x09\x0e\x17\xb2i\xb1\xa2\x0f\x804P\xa7\xb3\x18\
-R\xcf\x07@\xb2'\xc1\xa6E\xde\xe0P\xcd\x07@\xb2\
-'\xc1K\x80X\x0c\xa9\xe6\x03 \xf9\x93\xe0%@\xbc\
-\xc1\xa1\x96\x0f\x804Q\xa7\xb3\x18R\xcb\x07@\x0ad\
-f1\xa4Y\x1f\x00i\xa4N\xe7u\xd6u|\x00\xa4\
-D\x12\xbc\x04\x88\xc5\x90:>\x00R$\xf2\xc3\x85\x1b\
-@\xaa\xf8\x00H\x99:]v\xb8\xf0Z9YX\xc9\
-\x07@\xcaD\xf2\x12\xa0\xcb3zT\xf3\x01\x10\xedu\
-\xfa9\xc3\xa3\xa2\x0f\x80\x94\xaa\xd3\xaf\x9b<\xb8uU\
-}\x00Ds\x9d\x1e\xd8\x84U\xd9\x07\xe7A\xca\xe5\xd3\
-u\xfa\x06\x8f\xea\xe3\x07#H\xb9|\xf2p\xe1F\xe3\
-J\x83\x0f\x80\x94\xcb\xfe\x99\xc6\x15<t\xf8\x00\x88\xc2\
-:\x9d\xbe\xae\x1e\x1f\x00)\x98\x85\xc6Us>\x00R\
-2\x1fx\x09\xd0\x01\x0fU>\x00\xa2\xaaN\xa7\xaf\xab\
-\xcd\x07@\x8af\xa3\xaf\xdb\x98\x0f\x80\x14\xcd\xef\x0e\x17\
-\xd2\xd7\xd5\xe8\x03 :\xeat\xfa\xbaJ}\x00\xa4p\
-\x02}\xdd\xa6|\x00\xa4pF\xfa\xbaM\xf9\x00H\xe9\
-\xac\xf4u[\xf2\x01\x90\xbau:}]\xe5>\x00R\
-<3}\xdd\x86|\x00\xa4^\x9dN_W\xbf\x0f\xce\
-\x83T\xc8@_\xb7\x99\xf1\x83\x11\xa4F<}\xddf\
-|\x00\xa4F\x9dN\xe3\xaa\x19\x1f\x00!\xf8\x00\x08\xc1\
-\x07@\x08I\xee\x03 \x04\x1f\x00!\xf8\x00\x08!\xc9\
-}\x00\x84\xe0\x03 \x04\x1f\x00!$\xb9\x0f\x80\x10|\
-\x00\x84\xe0\x03 \x84$\xf7\x01\x10\x82\x0f\xce\x83\x10|\
-0\x82\x10\x92\xdc\x07@\x08>\x00B\xf0\x01\x10B\x92\
-\xfb\x00\x08\xc1\x07@\x08>\x00BHr\x1f\x00!\xf8\
-\x00\x08\xc1\x07@\x08I\xee\x03 \x04\x1f\x00!\xf8\x00\
-\x08\xc1\xc7_\x00!\xa4\xa0\x0f\x80\x10|p\x1e\x84\xe0\
-\x83\x11\x84\xe0\x03 \x84\x94\xf4\x01\x10\x82\x0f\x80\x10|\
-\x00\x84\xe0\x03 \x84\x94\xf4\x01\x10\x82\x0f\x80\x10|\x00\
-\x84\xe0\x03 \x84\x94\xf4\x01\x10\x82\x0f\x80\x10|\x00\x84\
-\xe0\x03 \x84\x94\xf4\x01\x10\x82\x0f\xce\x83\x10|0\x82\
-\x10|\x00\x84\x90\x92>\x00B\xf0\x01\x10\x82\x0f\x80\x10\
-|\x00\x84\x90\x92>\x00B\xf0\x01\x10\x82\x0f\x80\x10|\
-\x00\x84\xe0\xa3d\xfe\x07\xdagL\x80\x9f`\x0d\xd4\x00\
-\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x02\xbb\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x80\x00\x00\x00v\x08\x03\x00\x00\x007+k\xfd\
-\x00\x00\x003PLTE\x00\x00\x00A\xcdRP\xca\
-NA\xcdRA\xcdRF\xccPH\xcbPB\xccQ\
-I\xcbPD\xccQE\xccQJ\xcbOE\xccQD\
-\xccQD\xccQC\xccQA\xcdRz\x18s\xcb\x00\
-\x00\x00\x10tRNS\x00\x186Oc\x9d\xab\xae\xb8\
-\xbd\xc9\xcd\xd6\xdf\xe9\xf0\xb8\x82#\xe9\x00\x00\x02'I\
-DATh\xde\xc5\xda[v\x830\x0c\x04PT\xd3\
-\x90\x07\xa5\xda\xffj\xfb\x91\xa4!`\x9f\x18i\xa4\xd1\
-\x06\xe6\xf2\x01#\xc0\xc3\x101E\x17\x19\x98ST\x97\
-\x22\x5c\x80\xea(d\x00Sp\x07\x10\x05\x0f\x00O\xf0\
-\x04\xe8$d\x00K\xf0\x02\x90\x04+\x00G\xb0\x06\xe8\
-U\xc8\x00\x86\xe0\x1d@\x10l\x00:\x0b\x19\x90^\x8e\
-;@\xb6`\x0fH\xae\xe7\x0a \xb7\x18\xaa\x80LA\
-\x1d\x90(h\x00\xf2\x04-\x00\xa4\x18\xa4|\x9eQ\x03\
-\x05\xdf\xea\x1a\xbf\xe0\xacd\x81\x17\xe0\xae&7\xc0+\
-\xf0\x03\x9c\x02\x00\xc0W\xcf\x08\x80\xab\x1c!\x00\x8f\x00\
-\x03p\x08@\x00\xfd\xb5.\x08(\x80\xb9\x9ap\x00\xa3\
-\x00\x08\xb0\x09\x90\x00S1@\x01:\xb1\x01\xda\xbf\x86\
-\xdc\x84\x09\x90Q\xb5\x10\x012j\x10`\xec\xcf\x8f\x00\
-t\xbe.\xdd\xf3\x03\x00\x9d} \x93\xc6\x00\x0e\xe6\xc3\
-\x01\xf3\xc1|4\xa0s/\x93\x8b\xc6\x00z\xf3\xaf\x1a\
-\x030\xe4C\x01\x93!\x1f\x09\xe8\xcd\xff\xd1\x18@o\
-\xfe\xa21\x00c>\x0c\xd0\xb7\x06I\xd9\xe6\xa3\x00\xe3\
-\x91\xc7\x7f\x0d\xf0u\xfe<sD\xfe\x13\xd03%\x22\
-\x1f\x018V\xbfx\xc0\xd1\xfaC\x03\x9c\xf9n\xc0\xec\
-\xcc\xf7\x02\x8e\xd7\xef\xee\x0a:\xee\xbf\x93\xb4\x00\x96\xfa\
-\xb3Li\x00\xb2\xf2[\x80)+\xbf\x01\xb0\xd5/\x0e\
-`\xad?\x14 3\xbf\x060\xd7/\x08\xe0\xa9\x1f\x04\
- 9\x7f\x07\xc8\xce\xdf\x00|\xf5\xeb\x07x\xeb\xcf\x0b\
-`\xe4\xaf\x013#\x7f\x05\xe8\xfd+q\xd1\x18@\xf7\
-_\x11\x8d\x00\xc8\xed\xd4\xfd\x09t\x89\x00\x1c\x19Y\xc8\
-\x00\xb0\xc0\x00@\xac!>\x00T`\x02 \x056\x00\
-P`\x04\xe0\x9e\x87V\x00L`\x06\xa0\x04v\x00H\
-\xe0\x00`\xf6\x12\x0f\x00\x22p\x01\x10\x02\x1f\x00\xf0v\
-\xe0\x04\xb8\xab\x09pj\xaf-\x18;N0!\x8ej\
-5\x05eH\x9aV1\xa4\x01Z\x82<@C\x90\x08\
-\xa8\x0b2\x01\xd5bH\x05\xd4\x04\xb9\x80\x8a \x19\xb0\
-\x17d\x03v\xd5\x94\x0e\xd8\x0a\xf2\x01\x1b\x01\x01\xf0^\
-\xcf\x0c\xc0[5q\x00+\x01\x09\xf0\x12\xb0\x00\xff\xc5\
-@\x03<\x05<\xc0C@\x04\xdc\x05L\xc0 \x13\x19\
-0\xc8\x14\x04\xf8\x03L-q\xaa\x9e\xb6\xb9\xda\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x0a3\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x01\x90\x00\x00\x01&\x08\x03\x00\x00\x00{\xf26\x96\
-\x00\x00\x00BPLTE\x00\x00\x00A\xcdRA\xcd\
-RA\xcdRA\xcdRA\xcdRM\xd0]Y\xd3h\
-e\xd6rq\xda}|\xdd\x88\x88\xe0\x93\x94\xe3\x9e\xa0\
-\xe6\xa9\xac\xe9\xb3\xb8\xec\xbe\xc4\xef\xc9\xd0\xf3\xd4\xdb\xf6\
-\xdf\xe7\xf9\xe9\xf3\xfc\xf4\xff\xff\xffzo\xb3\xfe\x00\x00\
-\x00\x05tRNS\x00\x10`\x80\xcf\xea\xfd\xddd\x00\
-\x00\x09\x9bIDATx\xda\xed\xddQ\x82\xa4(\x0c\
-\x06\xe0\x99\xdd\x11EEE\xe1\xfeW\xdd\x87\x9e\xdd\xed\
-\xe9\xae\x12\x90\x80\x89\xfc9\x80V\xd5'\x90`\xb4~\
-\xfc\xb8\x14\x7fu\x88\x22\xf17<\x9e\x00\x02\x0f^ \
-\xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\
-\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\
-\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^\
- \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\
-\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\
-\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f\
-^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \
-\xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\
-\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\
-\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^\
- \xf0\xe0\x05\x02\x0f^ <<\xb4\x1e\x8d1f\xb1\
-\x1f\xb1\x1ac\xcc\xa4u\xdf\x1e\xc8\xcd\x1eJ\x9b\xc5\xee\
-\xfe}8\xbb\x99qh\x07\xe4N\x0fm\xac\xf3\x91\xb1\
-/S\xdf\x02\xc8m\x1e\x83\xb1>5\x8euRO\x07\
-\xb9\xe7\xbc\xe3z\xf8\x8b\xb1=\xda\xe4\x16\x90~\xb9\xac\
-\xf1\xdbd\x04\x08\xe1\xba\xb1\xf9\xfc8\x8c\x02\x08IL\
-\x87\xa7\x09\xf7L\x92\xca z\xf7t\xf1H\x92\xaa \
-\xbd\xf5\xb4\xe1&\x80d\x84\xf1\xf4a3K\x13\xfb>\
-\xa6\x87\x83\x0c\xbb/\x11n\xce\xfaT'G6\xcf\x06\
-\x99\x9c/\x14\x9b\x02Hz\xac\xbe\x5c\xec\x03@R\xf7\
-\x0fw_2\xdc\x00\x10N\x1e9\xd9V\x93 \xc3\xe1\
-\x8b\xc7\x04\x90\xf8\xf1Q\xc1\xc3\xfb\x11 \x5c\xe6\xab\xac\
-u\xa4A\x90:\x1e\xde\xbb\x1e w\xe7\xbb_\xb2_\
-\x05\x90\x88z\xd0\xd7\x8b\x15 \xe1\x04\xcbU\x04\xb9\xb2\
-\xb0\xb7\x06\xb2\xd7\xf4\xf0N\x01\xa4\xfe\xfe\xee\xe9\xb6\x16\
-@N\xa3O\x9c\xb0\x9c]\x8d\x19\xf5\xef\x98\x8c\xb1{\
-\xe9I\xab-\x90\x94\xfbQ\xd6\xe8\x97\x13\xce0\xa5t\
-D\x1c\x0a \xefCG\x8f\x8c\xf5\xfc\xca\xee\xe7\xe8\x91\
-b\x00\xf2>\x22\xaf\xec=\xa6\xcf\xaa_\xe2\xa6\xbf\xd4\
-\xf2\xb0%\x90\xb8\x12\xc4\xea\xd8-\x18\xe3\x0a\x14#-\
-\x81\xc4\x0c\x90\xa4}\xf3>\xaa\xa1\xab\x07\xc8\xf5\x01\x92\
-z\xf7ut\xd4C\xa4!\x90\x88\x01\x92~\x13#f\
-\xeb\xb8\x07\xc8\xb5\x01rm\xc3|\xa5M\xb4\xda\x01\xb1\
-e<\x22D\x926P\x9a\x01\x19\xca5&\xac\x943\
-a3 \xc1_M_?vh\x1d\xd9\x01\xf2}\xf1\
-\x0d\xa5Cs\xc9\x83\x0f\x00I]\xd2m\xd6\xd1\xc7\xc0\
-\xd1\x17\x80$.\xe9.\xf39\x82@\x85x\x00\xe4k\
-M]p\xc2\x8a\x99\xb4F\x80\xfc\x193\xd9\x15\xfc&\
-\x0cU\xb5\xde\x08\xc8^\xa6\xcd0z\x88\x1c\x00\xf9\xf3\
-\xe7*=@\x82Cd\x00HB\x8eE\xf1hR`\
-\x88\x18\x80\xc4'A\x8e\xe4Q\xcd\x95\xa66l\x03\xc4\
-\x91\xf7\xb3%\xef\xcd\xbcBW\xfa{\x9c}N\x1d\x8c\
-^\x06\xc8@VG_O\x1c^%\xbe\xd1\xf7\xf8\xa3\
-\xc3\xc8\x001\xc5\x97\xf4pj\xbd\x00$\xb6L\x9f\x89\
-\xce\xd2'/\x22\xcd\x82\xb8\x1a3Vh\xceR\x00\x89\
-[B\x8eJ3\xa3\x06\xc8\xf5\xc9\xbd\x04\xbc\x01H\x5c\
-\x850V\x9a\x1a-@.\xcf\xedE\xeaO\x07\x90\x88\
-\xe27\xed\xf6j\xde\xdc\xd8\x03$\xe6k/\xd5\xce\xa4\
-\x01\x12\xb3\xb38V\x1b\x8b\x06 \x1f\xb1\x10v\xde\xe6\
-\xacV+@\x22\xeatW/\x9f\xb3\x00\xb9\x96\x8c\x16\
-[\xd5\x01rib/\xb7\xaa+\x80\x84\xbf5\xed{\
-\x0cUZ\x9a\xd5&\xc8X\xaa\x814yz\x9c\x00\x12\
-\xde\xf2\xab\x99@\x18\x80\x04\xb3^G|\xb25)\xef\
-m\x13\xc4\xd6K\xb2\x02\xc3\xd1\x02$\x08\xb2\x11\x9fl\
-J\xda6k\x13\xa4\xea\x17\xd0I\x0b\x16@\x8a\x7f\x81\
-\x01 \xa1\xe8kf\xbd\x01\xfe\xaf\xfbf\xc3\xf7\xf7\xbb\
-\x9f\xed\x86Y\x13\x0c\xcd\x1fD3\x02\xd1y\x1f\xf7\x19\
-\x9d\x8b\xba\xde^o\xd7\x05\x1e\x86\x07H\xf0n\x08\xf9\
-\xc7\xb7\x99\xfb4\xcf\x071\x8c@\x0c@\x02 \x8e\xfc\
-\xe3\xaf\x00!\xad\x9d\xcb\x9e\x0e ]\xa05\xa72\xc8\
-\x06\x90\xca[Y\xf9\x03\x12 \x00\xe1\x04B\xff\x155\
-@\x00\x22\x0bd\x07\x08/\x10\xcf\x08\xc4\x01\x84\x17\x88\
-\x07\x08@\x00\x02\x10\x80\x00\x04 \x00i\x03d$\xff\
-\xf8\x0a 9 \x13F\x08\xa6,\x80\x00\x04 \x00\x01\
-\x08@\x00\x02\x10\x80\x10\x83\x1c\x00\xc1\x1dC\x80\x00$\
-\x03d\x01\x08/\x10\xfa6\xa0\x19 \xbc@\xd0\x97\x15\
-\x0aN\xad\xa4+@\xd0l-\x0b\x04\x8f#0\x03\xc1\
-\x03;\xf5A\xf0H\x1b3\x90\xf3\xcd\xa5\x81\xfa\xe3\xef\
-x\xe83\x0b\x04\x8fEW\x07\xe1\xfc\xe2\x80&A8\
-\xbfZ\x03 \xcc^>\xd3&H\xd5\xbd\x93)\xf7d\
-\x00a\xb6/\xd0\x00\xc8R\xb3\x10Ys7\xfb\x1b\x00\
-9/\xd5U\xc5\xe1h\x00\xd2u\x9c^\x13;\x02$\
-\x9c\xf8\xcc\xa4\xe7R\xd9\xf8\x0d\x80\x9c\xe7\xbdKE|\
-\x05\x90\xae\xeb\x02\xef\x14\xab\xf82~\xd7\x01$\xbc\xd0\
-\xd2\xa6Yk\xb6}\x0b K\xbd\xfd\xde={vl\
-\x01d\xaa\xf7\xccN~\xfe\xd0\x02\xc8\xf9J\xbbV;\
-\x93\x06H\xccu{\x10\x9e\x88\xa0\x06m\x02d\xcf\xbd\
-IA\x92>\x1c\x1d@br\x1f\xcaE\xc4g\xbe\xdf\
-\xaf\x15\x90\xb9\xd2\x22B\xb1'\xa0\xabv\x22\xdf\x04r\
-~\x1b\x8f\xae7k!\xd85\xd3U\xdb\xfan\x02\x09\
-\xfc\xc1=\xd9\xdb\x03\x0e\x82\x0a\xb4\x0d\x90\xad\xca\x9cu\
->\x10#\x7f\xcd\xbe\x09\x90\xf3E\xc4\xa9\x1a3V\xec\
-\x8a\xdc\x04\xc8\xf9\xb5K\x95g\x1d$7^\x9a\x00\x09\
-,\x224\x7f\xa9>\xd2\xa4\x0e\x95j\xd8\x9bA\xce+\
-\x11\x9a\xdb\x86\x96\xa0\x0a\x09\xd42\xcf\x019\xbfzI\
-\xe6\x02M4-\xb6\x01r~k\x95d\x88\x9c\x0f\x90\
-\xf8f\x8a\xaa\xad\xe1\xb7\x81\x04\x12_\x82!\x12\x18 \
-\x1b\x09\xac~\x0e\xc8\xe4\x0b'Z;\xd5\xf1m\xb5\x8e\
-\x8c[ABsVn-2{\xa2\x19\xeb\x14\xc4<\
-\x07$\x94geNZ\x81B'e3`\xe1V\x88\
-\x14\x02\x09\xe4Yy[\xa9\xea\xa0K\x1aL\xd5gT\
-\xef\x03\xe9B\xbfY\xc62\xa2\x02\x0bHRE7q\
-K\xb3J\x81\x18_J$\xe8\x91td]\xf7\xdd,\
-\xf7\x81\xa8 \xc8\xc553\xec\x914\xd3\xf4\x9e\xd9\xe6\
-I)\x90\xe0\xb2\xee\xbd\xdf.\xe4Z\xc3A\x0c]\xb1\
-\x15\xf9^\x90>\x0c\xe2\x0fM?\x13\xa6\xa6\xd4{\x9d\
-\xbbi\xf7\x83\xc4\x0c\x11\xef\xd7\xa4&\x14\xbd{\xf2\x99\
-p+1\xaf\xb2\x04\x89\x19\x22\xde;\x13M\xa2m\xcc\
-\x01\x0f\xe21w\x987\xb9\x96\xd6Z+I qC\
-\xc4{\xbf\xc6L\x5cj\xda\xe3\x8e\x96:\xc9\xe8\x88\x8b\
-\xc6.\x1f\xffg\xbfYk\xad=\x8a\xeev\x15\x04\xe9\
-}l\x1c\x8b\x0ehl\xb1\x87J\xae\xae\x95\xcf\x08Y\
- 1+\xf0\xa7_\xd2\x8c/'/=-{\xfcQ\
-\x5czc\xe4\xd1\x0e\x88J\xfe\xae\xbb]\x8d1\x93\xd6\
-Z\x1bc\x8c\xb5.\xf1\x00\xa6\xdc\xccZ)\x09+\x09\
-\x12\xde\xd1\xa2\x0e[\xf9C\x1aa \xddV\xd7\xc3]\
-\xe9\xe4V-\x81(W\x15d\xac}\xd5\x88\x03\x89I\
-*\xe9\xe2\xe2\xcf3\xb5\x04\x92\x96i\xe5\xc5Z\x7f\x18\
-o\xf2@\xb2\x92\x98\xb4\x0cM\xd5\xff\x88V \x88\xda\
-\xb9{$T\xb0O\x00\xa9$\xb2\xab;F\xb1H\x90\
-*\x22Y\x1e\xd7\x87\xc8.\x12\xa4\x82\xc8\x96\xb9\xedz\
-9\xf5\x90\x09\xd2\xa9\xc2+\xfbr\xdb%#\x14\xa4l\
-\xf6\xeb\x08\x1e8\x19\x5cc \x9d.V\xb3\xef$\xcd\
-:Ck \x9d*\xb4\xafE\xb5\xae^\x1b#\x83\x5c\
-\x90\xae\x1b\xcb\x0c\x12\xaa{\x12\xc3q\xe3\xc9o\x01\xe9\
-T\x91\x95\xe4\xb8s\x0c\xcb\x06\xe9\xba\xbeD\xbaE\xb7\
-\xc3\xa7\x8f\xd6@\xca\x90\x10\xbe\xcffJ\xcc\x7fG\xf1\
- ]\xa7\xccA\x0cB\xba\x811\xac\x91K\x9d\xb3f\
-*\xd0\x8d]\x1f\xa4\xeb\xbaq\xa5]\xdf\x89\xaf\xd3\xc1\
-\xd8P[\xd0\x5c\xa2%\xeb>\x10j\x13G\xff\xeb\x0c\
-\xd3\xf7\x16\x0bg\xad1c\xe1'\x0f\xef\x02\x89\xb8\x10\
-k\xee\x9d\xbc_\xe7\xff\x8dZ\xcf\x8a\xdc\x08\xf2q!\
-.\x96S1r\x7f\xdc\x0c\xf2\x91y\xe9\xd9l\xf6x\
-;aO\xe1\xd4l\x07H\x91\x04Lk\xad\xf5\xf4\xd1\
-H\xab?u3\x87o{\x1b\x80T\x8d9\xb8\xae\xf7\
-\x00\xa9\x1a{\xd5b\x04 \xe1\xd5\xff\x8e>[\x80\x9c\
-\xc4\x12\xdcdT\x00\xa9\xba\xe0\xbb\xfb\x8a\x11\x80\xbc\x8a\
-p\xc7\xe7\x00\x90\xaaa\x9b(F\x04\x81\x84\xd7\xf5\x19\
- U\xc34P\x8c\xfc\xfa)\x08$\xfc\x88\xdc\xf6\x00\
-\x0fA \x11O\x9f\x8d\xf2=$\x81\x84\xd7u\xd9\xc5\
-\xc8\xaf\x9f?\x84\x81\x84\xbb\xa2\x8dx\x0fQ \x11-\
-\xa9\x83t\x0fY \xe1\xc7\xfc\xadt\x0fa \xfa\xa9\
-\xc5\xc8\x7f\x1e\xc2@\xc2\x0f1;%\xdbC\x1aH\xef\
-\x9eX\x8c|\xf2\x90\x06\x12\xbey(\xb0\xe3\xe1\xb3\x87\
-8\x90\xf0\xcdCq\xc5\xc8\x1f\x1e\xf2@\xf4\xd3\x8a\x91\
-?=\xe4\x81D<\xc5\xdc\x0b\xf6\x10\x08\xf2\xac\x9b\x87\
-_=\x04\x82\x84\xd6u\xab%{H\x049\xddd\x5c\
-E\xcfWBA\xde\xde<t\xb28^y\x88\x04y\
-\xd3\x14\xe4\x8c\xb0\x84\xf7\x95\x87L\x90W\xeb\xfa1\xcb\
-\xae?D\x83|o\x0a:&q\xdf\xe1\xb5\x87P\x90\
-/\xeb\xba\x15x\xef\xf6\x8d\x87T\x90^j\x9e\x1b\xf2\
-\x90\x0a\xf2\xff\xcd\xc3Ud\xf3\xcf[\x0f\xb1 \x1fM\
-AN&\xc7\x89\x87X\x90n\x14\x98\xe7Fx\xc8\x05\
-\xe9\xd6Yj\xd3\xcf\x99\x87`\x10\xb1q\xea\x01\x10f\
-\x1e\x00a\xe6\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\x00\
-a\xe6\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\x00a\xe6\
-\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\x00a\xe6\x01\x10\
-f\x1e\x00a\xe6\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\
-\x00a\xe6\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\x00a\
-\xe6\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\xff\x00/\xf5\
-\x9c\xae\x85\xeb4\xef\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-\x00\x00\x10;\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x02X\x00\x00\x01\xb9\x08\x03\x00\x00\x00eH\xbaT\
-\x00\x00\x00?PLTE\x00\x00\x00A\xcdRA\xcd\
-RA\xcdRA\xcdRM\xd0]Y\xd3he\xd6r\
-q\xda}|\xdd\x88\x88\xe0\x93\x94\xe3\x9e\xa0\xe6\xa9\xac\
-\xe9\xb3\xb8\xec\xbe\xc4\xef\xc9\xd0\xf3\xd4\xdb\xf6\xdf\xe7\xf9\
-\xe9\xf3\xfc\xf4\xff\xff\xff=\xe2\xeb\x0e\x00\x00\x00\x04t\
-RNS\x00\x10\x9f\xcfR\xb7\x8c\x1e\x00\x00\x0f\xa7I\
-DATx\xda\xed\xdd\xd9b\xdb\xb8\x12E\xd1\xdcn\
-S\x9c\xc0\x99\xff\xff\xad7v\x86\xce`[*\x12\x07\
-(\x88\xfb<\xe6\xc5\x08\xb5\x04\x14\x8a \xf5\xe5K\xf4\
-\xfc\xf3B.\x9f/\xb8\x22e\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0z\x16W\xb7\xa6\xe9C\x18\xe6\xd7\
-l\xfb\xcflo\xff0\x86\x10\x9a\xa6\xe6CO\x07\xeb\
-\x9f\xf2A\xf5a\x9e\xf7\x073\xcf_\x85\xdd\xf8\xf0\xe5\
-\xb0\x8av\xd5\xf4\xe3\xc3\xa2~\xcf2\x85\xa6\x82\x80\x0e\
-V\xb1\xaen\xdd\xb8\xec'\xb3N=\x8b\xa3\x06\xd6?\
-\xa5\xa2Z\xf7H\xd9\xa6\x9e\x851:\xac\x12]\xd5\xc3\
-\xb2G\xce:\xb4h\x88\x0a\xab@U\xeb.\xc96b\
-\xeb\xb2\xb0nA\xa4\xea\xbb\xad\x81\x82\xeb\x8a\xb0\xdai\
-\x97g\xe9Pq-XU\xbf\xeeI\xb2\x05\x9a\x10\xd7\
-\x81U\x85mO\x97\x91]\xe25`\xa5e\x05\xad\xab\
-\xc0J\xce\xea5,\x88\xcf\x0e\xab]\xf7,\xd9(\xe3\
-\x9f\x19\xd6m\xde\xb3e\xa1\xf9\xf0\xb4\xb0\xc2\x9e5A\
-\xfb\xbf{x\x1c\x0d\xb0\xa2\xa6^\xf6\xcc\xd1NZ\xc0\
-\xca\x93~\xdb\xf3\xa7\x07\xd6\x93\xc1\xaa\xa6\xddE\xa6\x0a\
-X\xcf\x04+\xff2\xf8\xf3\xe4C\x0d\xac\xe7\x81\xd5n\
-\xbb\x9bl-\xb0\x9e\x05V\xb7\xbbJ\x07\xac\xe7\x805\
-\xec\xce2\x00\xeb\x19`\x8d\xbb\xbb\x8c\xc0*\x1f\x96C\
-W\x1aY\xc0\xc2\x95D\x16\xb0p%i\x95\x02+e\
-\xbb}w\x9b\x0eX\xe5\xc2\xeav\xc7i\x80U*\xac\
-\xda\xb3\xab}\xbb\x01\xabLX\xd5\xe6\x1a\xd6\xbeT\xc0\
-*\x12\xd6\xbc;\xcf\x08\xac\x12a\x85\xdd}Z`\x95\
-\x07\xab\xf1\xef*n\x99\x05\xac4\x05\xd6Z\x00\xac}\
-\x06Vi\xb0\x86\xbd\x88\xf4\xc0*\x0bVS\x86\xab\x98\
-\x8b!\xb0\xcaZ\x08\x97y\x0a!\xb4\xcd\x8f\x84\xb7\x17\
-\xde:\x5c\x0c\x81U\xca\x8ep\x1e\xfaO\xde+\xdat\
-a\x8e\xd1(k\x81U\x0e\xac\xdb\xf9\x87\x1e\xfa\x87.\
-\x7f\x84\x97L\xae\x15\xb0\x8a\x81un\xa52\xbe\x8d\xaf\
-\xee\xcf=\xa9\x11\x80U\x0a\xacS\x95\xfbt`m\xaa\
-\x873\x8b\xe2\x0dX\x85\xc0:>\x83l\xe1\xe8\xa7\xdc\
-\x1d_\x12G`\x95\x01\xab;\xce\xeaL\xbd\xd3,y\
-\xa7,`\xa9st\xee8\xfd\x12\xab\xa3\xb3\xd6\x0c\xac\
-\x12`\x1d\x9c\xb0\xe6\x08\xf3Fu\xb0\xcd\xd1\x00\xab\x00\
-X\x87\xa6\x8d-\xd2\xbd\x95c\xcf\xf2O\xc0\xf2\x0f\xeb\
-\xd0\x84\xb5D\xbb\xb3R\x8d\xb9\xaa,`\xf9\x9b\xb0\xc6\
-\xdc\xb2G`y\x87\xd5\xe6\x7f`\xa6\xde\xb2LY\xc0\
-\x92f\xce\xee\xea\x90\xac\x00,\xdf\xb0j\x07\xae\x8e\xc8\
-\xda*`\xb9\x865zpuDV\x07,\xcf\xb0*\
-\x1f\xae\x0e\xcc\x9c\x0b\xb0<\xc32?R?\xa8Fb\
-\xde\x1b\xd6\xc0r\x0c\xcb\xdak\x98uC\x19Sw\x1c\
-\x80\xe5\xa7t\xdf\x84?qS\x19{\xf0\x1b\xb0\xfc\xc2\
-\xb2\xce\x12\xad'\xe5\x1d\xb0\xdc\xc2\xda\x12\xaf>\x9f\xc7\
-xGz\x02\x96WX\xad\x9f\x85\xf0m14V|\
-\x15\xb0\x9c\xc2\x1a]t\x1a\x0eC\xef\x80\xe5\x14\x96m\
-%\x5c\xf5\x03\x9aS\xae\x85\xc0r2A\xb4\xfa\x115\
-)\xd7B`\xf9X\x09\x97\x14C\x9a\x13\xae\x85\xc0\xf2\
-\xb1\x12&\xf9-\xdd&\xe1Z\x08,\x17\x1f\xe2\x9af\
-P\xa6)k\x03\x96GX\x83\xbf\x09\xcbz\xcb\xb0\x01\
-\x96CX\xab\xa7\x1e\xd6\xb1Q\x0d\xc0\xf2\x07\xcb\xf6\x22\
-\x901\xd5\xb0B\xb2\x0d\x05\xb0<,:\xb5O\xefw\
-\x8e\xbe7\x9f\xe5\xe1?\xd27\xf6\xdc\xae\x0bkr\xd7\
-k8P\xbew\x91&\xa5\xe8\x09\xd7\x85ej6\xf4\
-Ng\xd2\x11X\xde`\xd9\x0e\xa9T\xe9\x06f:-\
-\xbd\x02\xcb\x1b,\xd3\xa1\xe4)\xe5\xc8\xa6xE\x16\xb0\
-\x9c\x97X]\xca\x91u\xf1F\x06,\xe7%V\xd2=\
-\x8ei-\x1c\x80\xe5\x0b\x96\xa9\xc4Z\xd2\x8em\x8e6\
-4`\xf9\xeeb%\xbeJ\xa6\xf2\x0fX\xbe`\x99\x8e\
-\xcc\xd4\x8eg\xd3\x06X\xae`Y\x9e\xb5\xdaR\x0f\xce\
-R\xff\xf5\xc0r\x05\xcbm\xb3\xc1\xbac\x1d\x81\xe5\x09\
-\x96\xe9,V\x9fzt}\xac\xea\x1dX\xae\xdb\xa3u\
-\xea\xd1\xd5\xb1\xaaw`y\xae\xdd\xb7\xf4\xc3\xdb\x22U\
-\xef\xc0J\x9d\xd9s\x89e\x1b^\x0f,G\xb0\x9c_\
-#\xcbi\xbf\x01X~`\xc5\xeb\x14\xe5\xdf[\xcc\xc0\
-\xf2\x03\xcb\xf4\xa8j\x95~|U\xa4\x12\x10X\x8e\x97\
-\x9a5\xc7\x00\xd78\xf0\x81\xe5\xb8\x039\xe5\x18\xe0\x1c\
-g\xa9\x06\x96\xe3\xcf-x\x9fR;`\xb9\x81\xe5\xbc\
-v\xb7\x15\x81\x01X^`\x99\x8e\xd2ey\x90\xa9\x8e\
-\xb3V\x03\xcb\xefn~w?\xa7\xce\xc0\xf2\x02\xab\x8b\
-\xf3\xb1)\xb3D\xa1\x0f,\xbf\xa5\xf1\x98g\x88\x96\xed\
-E\x05,'\xb0&\xffW\xc8b\xbf\x01\x96\x13X\x96\
-\xe9\xa0\xcd3\xc4\x1eX\x05\xc2\x8au*\xc5\xc9\xfe\x22\
-\x00\xcb\x09,\xe7w\x0a\xad\xfd\x06`9\x81ezS\
-P\x01=\xdc\x19X>`Y\x96\x99%\xd7\xc5\xd9\x80\
-U\x1c\xac6\xcal\xe0g\x83\xb1\x02\xcb\x07\xacX\xe7\
-3\xdd\xec\x5c\x81U\x1e\xacl\x17(\x00\xab8X\x96\
-Gt\xfa\x12`}\xf8|Z\xf8$\x8f_\x05\xdeA\
-*Xe\xb2\xbd1\xb8W\x0f\xb2\xf1\x7f\x0d\x80\x95y\
-\xeb\x0a,\x1f\xb0,\x8d\xf7\xaa\x04X\x01X.`\x95\
-\xd0\x1f5uq\x81\x05,\xc9(\x81\xe5\x02\x96e.\
-X\x8a\x805\x02\xcb\x03\xacX\x8f\x19\xfb\xa9\x04g`\
-\x01K\xb1w\x05Vq\xb0&`\x01\xeb\xd1t\xea\xb2\
-89\xac\x15X\x1e`\x852`M\xe2\xbd+\xb0.\
-\x0a+\x00\x0bX\xc0\x02\x96\xed\x13k\x81\x05\xacGc\
-95\xd3\x94\x01\xab\x02\x96\x03X\xf3\xf3\xc1j\x80\x05\
-\xacG\xd3\x02\x0bX\x8a4\xc0\x02\x16\xb0\x80\x05,`\
-9\x80\xf5\x02,`\x01\x0bXYa-\xc0\x02\x96\x22\
-;\xb0\x80\x05,\xd9\x9d'`\x01Kr\xaf\x1cX\xc0\
-\x02\x16\xb0\x80\x05,\xe7\xb0j`\x01+\xf78\x81\x05\
-,`\x01\x8b\xa5\x10X\x14\xef\xc0\x02\x16\xb0\x80U\x08\
-\xac\x1eX\xc0R\xc0\xe2^!\xb0\x80\xf5\xb4\xb08\x8f\
-\x05,`\x01\xeb9a\xdd\x80\x05,\x05,\x1e\xa6\x00\
-\x16\xb0\x80\x05,`\x01\x0bX\xc0z*XQ~\xa5\
-\x09X\x09\xf3\x84\xaf1z\x01\x96\x03X\x96O\xac\x03\
-\x16\xb0\x14\x9f\x18\xaf\x8a\x04\x16\xb0\x80\x05\xac\x07\xc2\xeb\
-\xb8K\x83\xf5|? \xb0\x00\xcb\x03,~K\x07X\
-\xc0\x02\x16\xb0\x22\x87\x9f\x95+\x0d\x96\xe5\x870\xd7|\
-W\xc70\xca\x01X\x1e`\xf1\xd3\xbd\xc0\xba0\xac\x0a\
-X\xc5\xc12T/\xf9\x8e\x90\xaa\x9f\xfe\x02V\xd6\xfd\
-V\xbe\x8b\xaa>5\x03\xac\x8b\xc2\xea\x80U\x1c\xacQ\
-\xbd\xca\xc4HP\xaf\xd7\xc0\xca\xfa\x99\x85\x12`\xbd\x00\
-\xab8Xc\xae\x8b3\x03\xab8X\x96\x1fl\x9b\x0b\
-\x80\xb5\x00\xcb\x07,\xcb\x86k\xc9uq\xd4wt\x80\
-\x15?\x96{:\xd9:\xa4\x86!N\xc0\xf2\x01\xcb\xd4\
-z\xaf\xf2\x0c\xb1\x96o0\x80\x95u\x99\xc9uU\xe5\
-\x8dw`e\xdeqezN\xa7\x97\xdb\x07V\xfcL\
-\xfe\x1bY\x01X\x05\xc2\x0a\xf2\xca\xd8\x7f\x1b\x0bX\x82\
-t\xfe\xfb\x0d\x86_\xeb\xdc\x80\xe5\x05V\xe3\xbf\xdf\xa0\
-\xef\xe1\x02+~,\x87\xe8\x0e\xbdp#i\xb7a\x02\
-\x96\x17X\xa6FV\x9bc\x80\xad~{\x01\xac\xcc\xa5\
-q\x96ma\xd0\xcb\x07V\xe6~\xc3\xec]~\x03,\
-7\xb0,\x13\xc2\x96c\x80\xab~w\x01\xac\xcc%L\
-\x8e\xe7),\xbb\x8b\x15X~`\xd5\xce\xab\xf7\x14\x0f\
-k\x03+\xf7\xb6pH?\xbc\x14\x87\xa7\x81\x95\xbb8\
-\x9e}\x0f\xaf\x05\x96#X\x96\x07u2\xf4\xde-\xe7\
-zj`9\x82e9\x95\x92\xfe\xc2\xd6)\xd8\x03+\
-wu\x9c\xbeE\xda\xa7X\xa8\x81\x95\xbdzO~\xc0\
-aJ\xb1\xb5\x00\x96$\x8bEV\xeas\xef\x96\x12\xab\
-\x03\x96+X\x83\xe3N\x96i\x9d\xae\x81\xe5\x0a\x96\xe5\
-\xac_\xea\xc7\xa1-\xe8\xb7\x04|\x03\xb0\x1e\x8f\xe9\xd9\
-\xc2\xc4\xb7\x0b-\xcb\xf4\x04,_\xb0L\xb7y\xd3\xae\
-\x85\xb74;V`\xe5\xdfy\xa5]\x0b\x13\xf5\xd8\x80\
-\xe5\xe0\xe3K\xba\x16\x9a6\xac\xc7\xffL\x05,IL\
-\xdd\xed\x94k\xa1i%<s\x1f\x13X\x0e\x8a\xac\x84\
-O\x17ZN6\x9cz\xe1\xa0\xe7\xe3\x1d%\xc32\xdd\
-\x87Nx\xdaoM\xd2\xc5\xb2\xc0\x9a\x81%\xebd\xa5\
-[\x0e\xdad\xb5\x1f\xb041=\x5c\x98\xee\xb7O\xd2\
-\xedV\x81\xe5a\xf7\x95\xea\xad3\xb7t\x83\xf2\xfd8\
-I\xc1\xb0\x82\xc7)\xcbV\xf9\x9d\xba;\xbe&\xe8i\
-\x5c\x12\x96\xad\xe1\x90f\xca\xb2MX\xe7\xf6\xaa3\xb0\
-<\xec\xbf\xd2LY\xb6\x09\xabO\x04\xab\x01\x96)\x83\
-\xbb)\xcb6a\x9d\xec\x81\x00\xcb\xc9Z\xb8\xe9\xcf\xfb\
-\x99\xb6\x84gO\xb6\x8e\x89f\xc6\xeb\xc12\xae\x85\xfa\
-\x0et\x93t\x0a}|\xf3\x12\x80%]\x0b\xd5KB\
-e\x84^\xa5\x825\x03K\xba\x16\xeek\xe5\xc9\xf9\xd9\
-\xb3<\xbd\xb7V\xcb\xf3\xc02\xf6H\xc5\xf7\xa2[\xe3\
-`\xce\x9e\xb8h\x92\xcd\x8d\xd7\x83\xd5\x1b?Ke\x19\
-[o{\xda\xf6G\x93\xce\xf0\xe5`UVX\xba\x9e\
-C\xb5\xa46^9\xda\xb6<\x1b,cC\xf2\xecA\
-\x95\x98\xae\x22,O\x8e\x1f\xd9-\x1eVc\x86\xb5\xd5\
->\x5cE8\x86o\xd8\x84\xde\x80\xa5me\xbd\xcaj\
-=\xb8\x8a\xf1Q\xcf.j\xcb'\x85\xd5\xed{\xfe:\
-\xebfw\x15c\x7f:\xecO\xdap\xf0\x00\xebe;\
- +\xf2\xd3`\xcd\x811\xc4\xe8\xd5\x86\xfdI\xa7,\
-\x17\xb0\xc2\x01X\xfbr\xcb<\x82(\xbd\xf0&{i\
-\xf9\xcc\xb0\xaa#S\xd6\xbeE\xfb\x06\xd7\xcb\x91\xbf\x1f\
-\xe5\xe6R\xbd?\xa9,\x17\xb0\x8eMY_\xe7\x8c(\
-\x9fmu\xec\xafG\xbayg\xfb.5\xc0J0e\
-\xbdVZ\xe7\xd7\xc3n=\xf6\xa7#\xad\xc4\xb3q\xc3\
-p\x03V\x82)\xeb<\xad\xa3\xac\xa2m\x1e\xcc\xed\xe1\
-\xb9\xbb\xff?n\xdeR\x01\xeb\xf8\x94\xf5\xfa%>\xdc\
-\xd4\xba\x85\xa3\xac\xe2\x9d8\xec\x0f\xfc\xf1u\x0a]\xf3\
-3\xe1-\xd3\xfc\x9a\xc5\xcd\xa1S'\xb0NLY\xaf\
-\x17z80mU\xddt\xe2OF;w\xd7\xec\xb2\
-\x00\xeb\xc5~\xc0\xeeo[\xa6\xcbx;\xa5*\xea\x8d\
-;`i\xd3\x9d\xbe\x8e\xdb\x14\x1e*+\xean\x5c\x1d\
-}f\xb3\x0cV\x0f\xacx\x17\xf8\xad\xfc\xa8>\xaci\
-\xc3\x18\xe5\xcf\xc4<\xc2\x12d\xb0\x02\xb0\xcc\xad\xc2\xbb\
-\xb3\xd7\xd7B6\xfc\x92\xe9\x8f\xba\xf6\xa4\xde\x98\xfb\xad\
-\x06X\x9e\xeb\xf7\xa4\x89[\xbc\x00\xcby\xfd\x9e,\x91\
-?\xb0I5\xce\x01X\xf2\x9dw\xcc\xc4>\xca\xd9\xa9\
-\x06:\x03\xab\xa4\xc5p\x8b}S\xe5\x06,y\x96\xcb\
-\x15X\xca\xff5\xb0\xfe\xfb\xf2n\xee]\x09\x9aC\x1d\
-\xb0\xe4i\xbd\xbbR\xfc\x8cA\xa5Z\xb4\x81UL\x99\
-\xa5\x99\x04F\xd1h\x81\x95\xe0\x22\xc7\xd9\x10jN\xa2\
-4\xc0J\xd0\xcdZ.\xe7Jv\xbf\x10Xe\xc8\x92\
-\xb9RMY\x15\xb0J\x90\xb5\x08?'\xcd\x94\xd5\x00\
-\xab\x00YJW\xa2)\x0bX\x05\xc8Z\xb4\xeb\xca\x04\
-\xack\xcaR\xff\x0c\xa7\xa45\x0c\xac\xbfe9\xeb:\
-\xe8O\xa0(\xda\xef=\xb0|wJ\xb7\x14o\xd3\x1b\
-K\xfc:\x14\x08\xeb\xa5us\xdfpI\xf2d\xbb`\
-\xf9\x07\xd6\xbb\xa9\x9d\x14ZC\xa2vP|Y\xc0\xfa\
- \xc3U\x96A\x91\xac\x01X\x1f\xb5w\xf2\x9fVN\
-\xf9\xad\x8f-k\x06\xd6\x87\x97:\xff\xa4\x95\xf2-\x1c\
-\xd5\x04\xacd\x95\xd6\x9c\x19V\xdaO'\x00+Y\xba\
-\xcc\xeba\xda7\xf7\xc7\xdc\xb2\x00\xeb\xde\xd78k\xe7\
-aK|H\xa0\x8f\xf6\xbf\xdd\x80u\xaf\xf6\xc8Jk\
-(\xf6\x7f\x0b\xac\xfb\x17;\xe7\x82\xd8\xa4\xff\x22\xad\xc0\
-J\xd7\x8a\xcfV\xc6\xe7\xf8\xb5\x91\x93\xefY\xda\x97\xb1\
-o8\xe8\xf7`nC\xa6\x151\xe4\x99\xa4\x8f\xd9Z\
-\xe7\xd0\xe6\x7f\xbdrQ\xb0^\xa7\xad1\x87\xad-\xd7\
-+e\x9b`\x99\xa6\xe7)\xb4^\xde\xab\x5c\x1a\xacL\
-\xb6rn\xdc\xeb.\xdcy\x07\xd3:\xbf\xbe\x15\xcc\xd7\
-\xfb\x94\x0b\x84\xf5\xfaE\x1eR\xdf\xa0\xce\xfe3\x94\xd5\
-\xdb[l\xbf\xbd\xc2\xf6G\xc6\x10\xfa\xcc/G~2\
-X\xaf\x17\xbaM\x8ak\xad^\xc8%`}\xfb\x16\x87\
-)U\x17b\xc0\xcau`}_\x17\xfb0\x1by-\
-\x83\xbduQ\x83\xe5b\xb0\xbe\xb7\x22\x9a.\x0c\xf3\xbc\
-\xdd\xdd\x8b\x8fo\xefV\xae\x8bhf\x01\xcb\x17\xb1\xaf\
-\xe9\xc3\x1f\xf9Z\xe56\xbfN:\xf6\xf38=Z\xae\
-\x0d\xeb\xc1\xfal+\xa6\x99\x05\xac\xa2b\x7f\xdej\x82\
-\x0b\xb0\x1e\xc8\x5c^3\x0bXE\xd4b4\xb3\x80%\
-I\xa0\x99\x05,I\xfd\xbe\xd2\xcc\x02\x96\x22mQ7\
-\xa3\x81\xf5\xcc\xf5;\xcd,`=R\xbf\xdb\x9bY\xd4\
-\xef\xc0\x92\xd4\xef4\xb3\x80\xf5H\xec\xf5{\x03\x1a`\
-\xddOC3\x0bX\x92\xd8\x1fX\x08\xa8\xb9\x9f\x7f/\
-\x0f\xeb\xc0\xcb?if\xddw\xf5\xbf\xcb\xc3z\xe9i\
-fI\x5c]\x1e\xd6\x81\x9f\x0b\xec\xa0s\xdf\x15\xb0\xec\
-\xf5;\xcd\xac\x07\x5c\x01\xeb\xc0\xfb\x8aG.\xda]W\
-\xc0:p\x98\x94f\xd6}W\xc0:R\xbf\xaf\x5c\xb4\
-{\xae\x80\xf5r\xe4f4\xcd\xac{\xae\x80\xf5r\xe4\
-a\xb0\x9d'+\xee\xb8\x02\xd6k\x06\x9aY\xb1]\x01\
-\xeb`\xfdN3\xebsW\xc0zKG3+\xb2+\
-`\x1d\xad\xdfy\xb2\xe2SW\xc0\xfa\x16\xfb\xc3`4\
-\xb3>u\x05\xac\xef\xb1\x1f&\xe55!\x9f\xb9\x02\xd6\
-\x8f\xfa}\xa5\x99\x15\xd3\x15\xb0~\xc4\xfe0\x18\xaf\x09\
-\xf9\xc4\x15\xb0N\xd4\xef4\xb3>v\x05\xac\xff\xeaw\
-{3\x8b\xd7\x84|\xe8\x0aXg\xeaw\x9aY\x1f\xba\
-\x02\xd6/YifEs\x05\xac_b?L\xca\xf3\
-\xab\x1f\xb9\x02\xd6\xaf1>\x0c6\xb2-\xfc\xd0\x15\xb0\
-\x8e\xd6\xef\xdb\x00\xabO\x5c\x01\xeb\xb7<|\x98t\x0b\
-\xd4\xed\x9f\xba\x02\xd6\xefy\xeca\xb0\xb5\x83\xd5\x1dW\
-\xc0\xb2\xd7\xef+g\xb1\xee\xbb\x02\xd6\x1f\xb9\xfb0\xd8\
-\xcc\xa9\x86G\x5c\x01\xeb\x8f\xdc9L:\xc1\xea1W\
-\xc0\xb2\xd4\xef\xf4\x17\x1ev\x05\xac\xbf2\xd3_\x88\xe0\
-\x0aX\x7f\xa5\xa6\xbf\x10\xc1\x15\xb0\xfe\xce@\x7f\xe1\xbc\
-+`=P\xbf\xd3_\xb0\xbb\x02\xd6;\xe9\xe8/\x9c\
-v\x05\xac;\xf5;\xfd\x85c\xae\x80\xf5^n\xf4\x17\
-\xce\xba\x02\xd6\xbb\x09\xf4\x17N\xba\x02\xd6\xfb\xf5\xfbJ\
-\x7f\xe1\x9c+`\xbd\x9f\x96\xfe\xc29W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xff\x07\xd4\xfa\xa4\xe6\x83\xa4\x94\xc0\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x01\x0a\
-[\
-Icon Theme]\x0aName\
-=Gallery\x0aComment\
-=Qt Quick Contro\
-ls 2 Gallery Exa\
-mple Icon Theme\x0a\
-\x0aDirectories=20x\
-20,20x20@2,20x20\
-@3,20x20@4\x0a\x0a[20x\
-20]\x0aSize=20\x0aType\
-=Fixed\x0a\x0a[20x20@2\
-]\x0aSize=20\x0aScale=\
-2\x0aType=Fixed\x0a\x0a[2\
-0x20@3]\x0aSize=20\x0a\
-Scale=3\x0aType=Fix\
-ed\x0a\x0a[20x20@4]\x0aSi\
-ze=20\x0aScale=4\x0aTy\
-pe=Fixed\x0a\
-\x00\x00\x00\x83\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00P\x00\x00\x00P\x02\x03\x00\x00\x00\xf3\x7f\x1a>\
-\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
-\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
-\x93\xcd8\x00\x00\x00'IDAT8\xcbc\x08\xc5\
-\x02\x18F\x8a\xe0*\x0c08\x05\x190\xc0\xa8 %\
-\x82\xa3\xf1>\x1a\xef\x839\xdeGn\x99\x0c\x00\xaa\xfe\
-\xe3\x80<\x1b\xa3\xfb\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-\x00\x00\x00\xdf\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00P\x00\x00\x00P\x04\x03\x00\x00\x00|?\xef\x9e\
-\x00\x00\x00\x18PLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
-\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\
-G\xb0\x1c\xf2\x00\x00\x00\x07tRNS\x00\x00 `\
-\xbf\xcf\xef\x1dV\xbf\x1a\x00\x00\x00oIDATH\
-\xc7c\x10$\x120\x0c\x22\x85\x0c\x0c&\xe5\xe5\xce\x0c\
-\x0c\x84\x15\xaa\x96\x03A\x10a\x85L\xe9 \x85e\x0a\
-\x04\x15\xb2\x96\x83A\x00A\x85\xe6\x10\x85\xc5\x04\x15\xba\
-C\x14\x96\x10TX\x0e\x05\x83Y!\xd1\x9e!:x\
-\x88\x0ep\xa2\xa3\x90\xe8DA|2\x83\x82Q\x85#\
-A\xe1h\xd93Z\xf6\x8c\x96=\xa3\x0aG\xcb\x9e\xd1\
-\xb2gd\x97=\x83\xb0\xaf\x00\x00G\x10>\xf2\xcfQ\
-\xf1\x00\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00\xf6\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00P\x00\x00\x00P\x04\x03\x00\x00\x00|?\xef\x9e\
-\x00\x00\x00\x1bPLTE\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x94Q\xe2 \x00\x00\x00\x09tRNS\x00\
-1267\xe8\xe9\xeb\xfa\x91\xc7O\xc2\x00\x00\x00\x81\
-IDATH\xc7\xed\xd6\xb1\x0d\x800\x0cDQ\x93\
-\xcc\x90\x15R#Q\xd0\xb2\x05l\x00=\x14\xd9 7\
-6#\xf0\x0b\x22\x82d\xd7\xa7gW\xd6\x99\xfd{&\
-\x98\x0b\xfb\xc2\x82Y\x17\xca\xc5\xa2:2P\x88\x0c\x87\
-\xa4\xba0\x90\xec\x0e\x87$\x9d\xcf\xe0\xfc6\x98\x1dt\
-\xd0\xc1\x9e\xc1X\xbe\x02\x87M\xf0#&\xc1\x8f\x88w\
-s\xb2\xc1\x95N:\xe9d{\x92\xd6\x99fW\xa2^\
-\x98\xe0\xc7\xe2E\xd3\x12\x03\xcd\x86\x95\x81\xbc^w3\
-7\xa7\xd5\xc3\xb4x\xa1\x14\xf6\x00\x00\x00\x00IEN\
-D\xaeB`\x82\
-\x00\x00\x00{\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\
-\x00\x00\x00BIDATx\xda\xec\x94\xc1\x0d\x000\
-\x08\x02\x8f\xc6\xfdW\xc6\x1d\x1a|)\x03\x10\xf0\x0c\xb2\
-MR\x8f\xb0\xe2\x86\x05 )\xd2\xdb\xb6f\x12\x02\xda\
-\x03e\xec\x86\xa9\xef>\xcaG\xf9\xcbq\xdf\xc06\x00\
-\x00\x00\xff\xff\x03\x00\xf7\x83\x0c-\xe7\xf9\xf9<\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00{\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x14\x00\x00\x00\x14\x02\x03\x00\x00\x00\xf0\xe7\xf5\x9e\
-\x00\x00\x00\x0cPLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
-\x1f\x22\x1f\x1f\x13\xee\x05I\x00\x00\x00\x03tRNS\
-\x00\x00\x80\x17\xceG\xfe\x00\x00\x00\x1bIDAT\x08\
-[c\x08\x05\x01\x86\xd0\xd0}`\xf2?\x12\x09\x11\xc1\
-D\x94\xab\x04\x02\x00\xd4P%\xa9\xa8Z\xf7\x1d\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00\x92\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\
-\x00\x00\x00YIDAT8\x8d\xed\xd4\xb1\x09\x80@\
-\x0c\x05\xd0\x87\x16\x8e\xe4\xa6\xda\x0a\xeeegw\x13X\
-\xd9Z\x08\xe2%bs\xbf\xcfKB $\xa7\xaf\xac\
-\x99P\xb0g\x0c\xb0\xe2\xc0\x86!\x0b+\x18\xa3\xd8\xd2\
-\xb0\x7f\xb1\xeakv\x91\xceo\x92\xbarC\xbfE\xd3\
-\x9e\xc3\x1d\x1a~_Wt\x964\xe1cN\x85\xa7,\
-\x143\xcaZ\x14\x00\x00\x00\x00IEND\xaeB`\
-\x82\
-\x00\x00\x00~\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00(\x00\x00\x00(\x02\x03\x00\x00\x00\xf1\x90P\xfe\
-\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
-\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
-\x93\xcd8\x00\x00\x00\x22IDAT\x18\x95c\x08\x85\
-\x03\x062\x99Q\xab\xa0`)af\x00\x03\x14\xb0R\
-\x979\xd4\xdc@q\xa8\x03\x00\xea\x17x\xdd\x86\xef\x87\
-\xad\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00\x9e\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
-\x00\x00\x00\x0fPLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
-\x1f\x22\x1f\x1f\x22\x1f\x1f\xc1T\xc5\x91\x00\x00\x00\x04t\
-RNS\x00\x00P\xdf\x1fD\xf4\x8b\x00\x00\x00:I\
-DAT(\xcfc\x10\xc4\x02\x18\xf0\x0a2\x998+\
-`\x08\xaa\xb8\xb88a\x08\x9a\xb8\xb88c\x08\xba\x00\
-\x01q\x82X\xb5c\xb5\x08\xab\x93\x18\x80`\xe0\x04G\
-Ci8\x85\x12\xc1\xdc\x01\x00\xcb~A\x15\x05\x8a+\
-\xbc\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00\xb8\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
-\x00\x00\x00\x18PLTE\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-V7\x1c*\x00\x00\x00\x08tRNS\x00\x0b\x0e\x90\
-\xbc\xbd\xc2\xfa`jr\x94\x00\x00\x00GIDAT\
-(\xcfc` \x0f(+`\x8a1\xa5'a\x0a\x8a\
-\x96\x97a(e\x0c\xc7\x22\xa8V^\x9eD\x94B\xd1\
-\xe1\xa4\x10\x9b\xaf\x99\xd2\xb1\x85\x99;\x16A\xac\xdaq\
-(\x15\x19\x9eJI\x0a\x01,\x82X\x13-\xd6\xe4\x8d\
-\x17\x00\x00\xbe(.\x06\xf5\xa2\x90\xab\x00\x00\x00\x00I\
-END\xaeB`\x82\
-\x00\x00\x00\x82\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00<\x00\x00\x00<\x02\x03\x00\x00\x00G\x921\xe1\
-\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
-\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
-\x93\xcd8\x00\x00\x00&IDAT(\xcfc\x08E\
-\x05\x0c\x03\xcd\x0f[\x85\x0c\xa6R\x9d\x1f\xc2\x80\x0cD\
-\x87\x1c\x7f4|\x066|\x06Y~\x01\x00\x0e\xe9\x0f\
-x\xb7\x12\x1d\x13\x00\x00\x00\x00IEND\xaeB`\
-\x82\
-\x00\x00\x00\xc1\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00<\x00\x00\x00<\x04\x03\x00\x00\x00\xc8\xd2\xc4A\
-\x00\x00\x00\x15PLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
-\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1fI:\x15\
-.\x00\x00\x00\x06tRNS\x00\x00 0\x9f\xef,\
-\x93$\x03\x00\x00\x00UIDAT8\xcbc\x10\xc4\
-\x0b\x18\xa8'\xcd\xa0\x12\x96\xea\xc4\x80S\x9a9,-\
--\xd5\x00\xa7\xb4j\x1a\x10\x04\xe1\x94v\x03I\xa7\xe0\
-\x94\x0e\x03I\xa7\xe2\x94N\x03\x03r\xa5\x09\x18N\xc0\
-i\x04<F X\x08\x04*\x03\x18\x8cJ\x8f&\xc5\
-\xd1\xa48\x9a\x14G\x93\x22m\xaa9\x00L\x0e\xa9W\
-\xb5\x91\xf7\x9e\x00\x00\x00\x00IEND\xaeB`\x82\
-\
-\x00\x00\x00\xe3\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00<\x00\x00\x00<\x04\x03\x00\x00\x00\xc8\xd2\xc4A\
-\x00\x00\x00$PLTE\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6X\x02G\
-\x00\x00\x00\x0ctRNS\x00\x1c\x1d\x1e=l|}\
-\xd8\xd9\xda\xfa\x85T\xfd\xb6\x00\x00\x00bIDAT\
-8\xcbc`\xa070\xc5+\xcb4\xbb\x00\x9f\xb4\xd5\
-\xeemx5\xef\xde]\x80O\xf3\xee\xdd[\xf0j\xde\
-\x9d\x80W\xf36r5k\x8ej\x1e\x11\x9a\xadh\xa7\
-\x99A\x02(\xbd\x1d\xb74c\xf7n\x82\x89\x7f\x1b\xf9\
-\xda)\xb4}T\xfb\x10\xd5Na\xb2\xc1_\xe4\x82\xb5\
-'\x90]\xdc\x03\xb5'PP\xd5P\x0d\x00\x00^\xe9\
-\x99\xeb`\xde0?\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-"
-
-qt_resource_name = b"\
-\x00\x05\
-\x00o\xa6S\
-\x00i\
-\x00c\x00o\x00n\x00s\
-\x00\x06\
-\x07\x03}\xc3\
-\x00i\
-\x00m\x00a\x00g\x00e\x00s\
-\x00\x06\
-\x07\x84+\x02\
-\x00q\
-\x00m\x00l\x00d\x00i\x00r\
-\x00\x15\
-\x08\x1e\x16f\
-\x00q\
-\x00t\x00q\x00u\x00i\x00c\x00k\x00c\x00o\x00n\x00t\x00r\x00o\x00l\x00s\x002\x00.\
-\x00c\x00o\x00n\x00f\
-\x00\x05\
-\x00v}\xc3\
-\x00p\
-\x00a\x00g\x00e\x00s\
-\x00\x0b\
-\x083\x9c<\
-\x00T\
-\x00o\x00o\x00l\x00B\x00a\x00r\x00.\x00q\x00m\x00l\
-\x00\x0b\
-\x0cCR|\
-\x00g\
-\x00a\x00l\x00l\x00e\x00r\x00y\x00.\x00q\x00m\x00l\
-\x00\x09\
-\x08\xac\xef\x1c\
-\x00+\
-\x00M\x00a\x00t\x00e\x00r\x00i\x00a\x00l\
-\x00\x10\
-\x05\xb8\x16\x1c\
-\x00C\
-\x00o\x00m\x00b\x00o\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x10\
-\x00w\xb4\x5c\
-\x00D\
-\x00e\x00l\x00e\x00g\x00a\x00t\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0c\
-\x0e\x8bV\xfc\
-\x00D\
-\x00i\x00a\x00l\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0f\
-\x07\x87\xe7<\
-\x00S\
-\x00p\x00i\x00n\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0d\
-\x0c\xc8%\xdc\
-\x00F\
-\x00r\x00a\x00m\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x15\
-\x02E\x02\xfc\
-\x00P\
-\x00a\x00g\x00e\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\x00g\x00e\
-\x00.\x00q\x00m\x00l\
-\x00\x0e\
-\x09\x09P|\
-\x00T\
-\x00a\x00b\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x15\
-\x0fE\xff\x5c\
-\x00B\
-\x00u\x00s\x00y\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\x00g\x00e\
-\x00.\x00q\x00m\x00l\
-\x00\x12\
-\x05P\x5c\x1c\
-\x00S\
-\x00c\x00r\x00o\x00l\x00l\x00a\x00b\x00l\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\
-\x00l\
-\x00\x13\
-\x0dr\xfb|\
-\x00P\
-\x00r\x00o\x00g\x00r\x00e\x00s\x00s\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\
-\x00m\x00l\
-\x00\x11\
-\x03$Q\x5c\
-\x00S\
-\x00w\x00i\x00p\x00e\x00V\x00i\x00e\x00w\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\
-\x00\x10\
-\x06\xd3\x8b\x1c\
-\x00T\
-\x00e\x00x\x00t\x00A\x00r\x00e\x00a\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x11\
-\x00\xa3\xff|\
-\x00S\
-\x00c\x00r\x00o\x00l\x00l\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\
-\x00\x0f\
-\x0b\xe33|\
-\x00T\
-\x00o\x00o\x00l\x00T\x00i\x00p\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0e\
-\x02%\xd0|\
-\x00S\
-\x00l\x00i\x00d\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0f\
-\x00\xf4\xb9\xfc\
-\x00T\
-\x00u\x00m\x00b\x00l\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x13\
-\x002\xb3\xbc\
-\x00R\
-\x00a\x00n\x00g\x00e\x00S\x00l\x00i\x00d\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\
-\x00m\x00l\
-\x00\x10\
-\x0fY+\x5c\
-\x00G\
-\x00r\x00o\x00u\x00p\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x13\
-\x0fN\x9e\x5c\
-\x00R\
-\x00a\x00d\x00i\x00o\x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\
-\x00m\x00l\
-\x00\x17\
-\x0a>\xfa\x1c\
-\x00S\
-\x00c\x00r\x00o\x00l\x00l\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\
-\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0e\
-\x08\xd2\xfe\x5c\
-\x00D\
-\x00i\x00a\x00l\x00o\x00g\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0e\
-\x0e\xa2\x84\x9c\
-\x00B\
-\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x10\
-\x048\xf8\x1c\
-\x00C\
-\x00h\x00e\x00c\x00k\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x13\
-\x05\xac\xa6\xdc\
-\x00D\
-\x00e\x00l\x00a\x00y\x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\
-\x00m\x00l\
-\x00\x0e\
-\x0b\xc5|\x5c\
-\x00S\
-\x00w\x00i\x00t\x00c\x00h\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x11\
-\x07%R|\
-\x00S\
-\x00t\x00a\x00c\x00k\x00V\x00i\x00e\x00w\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\
-\x00\x11\
-\x0fw<\xdc\
-\x00T\
-\x00e\x00x\x00t\x00F\x00i\x00e\x00l\x00d\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\
-\x00\x0d\
-\x02\x89\x8a\x07\
-\x00a\
-\x00r\x00r\x00o\x00w\x00s\x00@\x004\x00x\x00.\x00p\x00n\x00g\
-\x00\x09\
-\x09j\x86g\
-\x00a\
-\x00r\x00r\x00o\x00w\x00.\x00p\x00n\x00g\
-\x00\x0a\
-\x06\xebDg\
-\x00a\
-\x00r\x00r\x00o\x00w\x00s\x00.\x00p\x00n\x00g\
-\x00\x0b\
-\x05R\xbf'\
-\x00q\
-\x00t\x00-\x00l\x00o\x00g\x00o\x00.\x00p\x00n\x00g\
-\x00\x0c\
-\x0e\x88z'\
-\x00a\
-\x00r\x00r\x00o\x00w\x00@\x002\x00x\x00.\x00p\x00n\x00g\
-\x00\x0c\
-\x0e\xa8z'\
-\x00a\
-\x00r\x00r\x00o\x00w\x00@\x004\x00x\x00.\x00p\x00n\x00g\
-\x00\x0d\
-\x02\x99\x8a\x07\
-\x00a\
-\x00r\x00r\x00o\x00w\x00s\x00@\x003\x00x\x00.\x00p\x00n\x00g\
-\x00\x0c\
-\x0e\xb8z'\
-\x00a\
-\x00r\x00r\x00o\x00w\x00@\x003\x00x\x00.\x00p\x00n\x00g\
-\x00\x0e\
-\x0d=\xfd'\
-\x00q\
-\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x004\x00x\x00.\x00p\x00n\x00g\
-\x00\x0d\
-\x02\xa9\x8a\x07\
-\x00a\
-\x00r\x00r\x00o\x00w\x00s\x00@\x002\x00x\x00.\x00p\x00n\x00g\
-\x00\x0e\
-\x0d\x1d\xfd'\
-\x00q\
-\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x002\x00x\x00.\x00p\x00n\x00g\
-\x00\x0e\
-\x0d-\xfd'\
-\x00q\
-\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x003\x00x\x00.\x00p\x00n\x00g\
-\x00\x07\
-\x0d\x83,Y\
-\x00g\
-\x00a\x00l\x00l\x00e\x00r\x00y\
-\x00\x07\
-\x05{TS\
-\x002\
-\x000\x00x\x002\x000\x00@\x003\
-\x00\x07\
-\x05{TR\
-\x002\
-\x000\x00x\x002\x000\x00@\x002\
-\x00\x05\
-\x005{P\
-\x002\
-\x000\x00x\x002\x000\
-\x00\x07\
-\x05{TT\
-\x002\
-\x000\x00x\x002\x000\x00@\x004\
-\x00\x0b\
-\x0b\xba\x81\xb5\
-\x00i\
-\x00n\x00d\x00e\x00x\x00.\x00t\x00h\x00e\x00m\x00e\
-\x00\x0a\
-\x0d\xc8&G\
-\x00d\
-\x00r\x00a\x00w\x00e\x00r\x00.\x00p\x00n\x00g\
-\x00\x08\
-\x0cXY'\
-\x00m\
-\x00e\x00n\x00u\x00.\x00p\x00n\x00g\
-\x00\x08\
-\x07\x9eZG\
-\x00b\
-\x00a\x00c\x00k\x00.\x00p\x00n\x00g\
-"
-
-qt_resource_struct = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x001\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00d\x00\x02\x00\x00\x00\x1b\x00\x00\x00\x16\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x10\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x0a\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x22\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x004\x00\x00\x00\x00\x00\x01\x00\x00\x00\x0f\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x00t\x00\x00\x00\x00\x00\x01\x00\x00\x00s\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x00\xac\x00\x02\x00\x00\x00\x01\x00\x00\x00\x09\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x90\x00\x01\x00\x00\x00\x01\x00\x00\x0a2\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x00t\x00\x00\x00\x00\x00\x01\x00\x00\x17?\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x04\xe4\x00\x00\x00\x00\x00\x01\x00\x01u/\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x05\x8e\x00\x00\x00\x00\x00\x01\x00\x01\x86\xf2\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x05\xee\x00\x00\x00\x00\x00\x01\x00\x01\xa4+\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x056\x00\x00\x00\x00\x00\x01\x00\x01|\xff\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x05\x1c\x00\x00\x00\x00\x00\x01\x00\x01{1\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x05\x04\x00\x00\x00\x00\x00\x01\x00\x01y\xee\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\x0e\x00\x00\x00\x00\x00\x01\x00\x01\xa6\xea\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x060\x00\x00\x00\x00\x00\x01\x00\x01\xb1!\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x05\xcc\x00\x00\x00\x00\x00\x01\x00\x01\x8d\x0b\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x05R\x00\x00\x00\x00\x00\x01\x00\x01\x82\x18\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x05p\x00\x00\x00\x00\x00\x01\x00\x01\x83\xf8\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x05\xae\x00\x00\x00\x00\x00\x01\x00\x01\x8a\xa4\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x03*\x00\x00\x00\x00\x00\x01\x00\x00\xe7\xba\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x00\xea\x00\x01\x00\x00\x00\x01\x00\x000\x0e\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x02\x98\x00\x00\x00\x00\x00\x01\x00\x00\xb6\xb5\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x03\x06\x00\x00\x00\x00\x00\x01\x00\x00\xdcJ\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xd0 \
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x01r\x00\x00\x00\x00\x00\x01\x00\x00^\x9f\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x02J\x00\x00\x00\x00\x00\x01\x00\x00\x9c`\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x04 \x00\x00\x00\x00\x00\x01\x00\x0140\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x84\xba\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x04F\x00\x00\x00\x00\x00\x01\x00\x01A;\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x00!)\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x02r\x00\x00\x00\x00\x00\x01\x00\x00\xaa\xb9\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x04\x94\x00\x00\x00\x00\x00\x01\x00\x01Y\xeb\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x01.\x00\x00\x00\x00\x00\x01\x00\x00DV\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x03\xdc\x00\x01\x00\x00\x00\x01\x00\x01\x1d\x0f\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x01\xa2\x00\x00\x00\x00\x00\x01\x00\x00jN\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x03\xa8\x00\x00\x00\x00\x00\x01\x00\x01\x0f\x8f\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x04r\x00\x00\x00\x00\x00\x01\x00\x01M\x1b\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x02\xc0\x00\x00\x00\x00\x00\x01\x00\x00\xc4\x1b\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x01R\x00\x00\x00\x00\x00\x01\x00\x00P\x8c\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x02\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x8f\xe6\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x01\x10\x00\x00\x00\x00\x00\x01\x00\x008c\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x03\xfe\x00\x00\x00\x00\x00\x01\x00\x01&\x9c\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x01\xc4\x00\x00\x00\x00\x00\x01\x00\x00x\xea\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x03|\x00\x00\x00\x00\x00\x01\x00\x01\x02\x9d\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x03V\x00\x00\x00\x00\x00\x01\x00\x00\xf4[\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x04\xbc\x00\x00\x00\x00\x00\x01\x00\x01i\xa3\
-\x00\x00\x01z\xe7\xee&\xfd\
-\x00\x00\x06R\x00\x02\x00\x00\x00\x05\x00\x00\x002\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x06\x8e\x00\x02\x00\x00\x00\x03\x00\x00\x00@\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x06z\x00\x02\x00\x00\x00\x03\x00\x00\x00=\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x06f\x00\x02\x00\x00\x00\x03\x00\x00\x00:\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x06\x9e\x00\x02\x00\x00\x00\x03\x00\x00\x007\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x06\xb2\x00\x00\x00\x00\x00\x01\x00\x01\xc1`\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x01\xc3\xd8\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xe8\x00\x00\x00\x00\x00\x01\x00\x01\xc2\xf5\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x01\xc2n\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x01\xc9\x91\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xe8\x00\x00\x00\x00\x00\x01\x00\x01\xc8\xcc\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x01\xc8F\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x01\xc7\x8a\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xe8\x00\x00\x00\x00\x00\x01\x00\x01\xc6\xe8\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x01\xc6f\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x01\xc5\xd0\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xe8\x00\x00\x00\x00\x00\x01\x00\x01\xc5Q\
-\x00\x00\x01z\xe7\xee&\xf9\
-\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x01\xc4\xd2\
-\x00\x00\x01z\xe7\xee&\xf9\
-"
-
-def qInitResources():
- QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
- QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
diff --git a/examples/samplebinding/CMakeLists.txt b/examples/samplebinding/CMakeLists.txt
index 896b3610c..4807904c1 100644
--- a/examples/samplebinding/CMakeLists.txt
+++ b/examples/samplebinding/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
cmake_minimum_required(VERSION 3.18)
cmake_policy(VERSION 3.18)
@@ -132,7 +135,7 @@ target_compile_definitions(${sample_library} PRIVATE BINDINGS_BUILD)
# Set up the options to pass to shiboken.
set(shiboken_options --generator-set=shiboken --enable-parent-ctor-heuristic
- --enable-return-value-heuristic --use-isnull-as-nb_nonzero
+ --enable-return-value-heuristic --use-isnull-as-nb-bool
--avoid-protected-hack
-I${CMAKE_SOURCE_DIR}
-T${CMAKE_SOURCE_DIR}
diff --git a/examples/samplebinding/doc/bindings.h.rstinc b/examples/samplebinding/doc/bindings.h.rstinc
new file mode 100644
index 000000000..e2a0b6fef
--- /dev/null
+++ b/examples/samplebinding/doc/bindings.h.rstinc
@@ -0,0 +1,2 @@
+The Shiboken generator needs a header file that includes
+the types we are interested in:
diff --git a/examples/samplebinding/doc/bindings.xml.rstinc b/examples/samplebinding/doc/bindings.xml.rstinc
new file mode 100644
index 000000000..60b9b1a48
--- /dev/null
+++ b/examples/samplebinding/doc/bindings.xml.rstinc
@@ -0,0 +1,31 @@
+Shiboken requires an XML-based typesystem file that defines the
+relationship between C++ and Python types.
+
+It declares the two aforementioned classes. One of them as an
+“object-type” and the other as a “value-type”. The main difference is that
+object-types are passed around in generated code as pointers, whereas
+value-types are copied (value semantics).
+
+By specifying the names of these classes in the typesystem file, Shiboken
+automatically tries to generate bindings for all methods of those
+classes. You need not mention all the methods manually in the XML file, unless
+you want to modify them.
+
+**Object ownership rules**
+
+Shiboken doesn't know if Python or C++ are responsible for freeing the C++
+objects that were allocated in the Python code, and assuming this might lead to
+errors. There can be cases where Python should release the C++ memory when the
+reference count of the Python object becomes zero, but it should never delete
+the underlying C++ object just from assuming that it will not be deleted by
+underlying C++ library, or if it's maybe parented to another object (like
+QWidgets).
+
+In our case, the :code:`clone()` method is only called inside the C++ library,
+and we assume that the C++ code takes care of releasing the cloned object.
+
+As for :code:`addIcecreamFlavor()`, we know that a :code:`Truck` owns the
+:code:`Icecream` object, and will remove it once the :code:`Truck` is
+destroyed. That's why the ownership is set to “c++” in the typesystem file,
+so that the C++ objects are not deleted when the corresponding Python names
+go out of scope.
diff --git a/examples/samplebinding/doc/samplebinding.pyproject b/examples/samplebinding/doc/samplebinding.pyproject
index 82c485a09..b0786355f 100644
--- a/examples/samplebinding/doc/samplebinding.pyproject
+++ b/examples/samplebinding/doc/samplebinding.pyproject
@@ -1,5 +1,6 @@
{
"files": ["../bindings.h",
+ "../bindings.xml",
"../icecream.cpp",
"../icecream.h",
"../macros.h",
diff --git a/examples/samplebinding/doc/samplebinding.rst b/examples/samplebinding/doc/samplebinding.rst
index 8d74be281..defb55d6b 100644
--- a/examples/samplebinding/doc/samplebinding.rst
+++ b/examples/samplebinding/doc/samplebinding.rst
@@ -54,8 +54,8 @@ done by specifying a special XML file called a typesystem file.
In the typesystem file you specify things like:
- * which C++ classes should have bindings (Icecream) and what kind of
- semantics (value / object)
+ * Which C++ classes should have bindings (Icecream, Truck) and with what
+ kind of semantics (value / object)
* Ownership rules (who deletes the C++ objects, C++ or Python)
@@ -181,17 +181,30 @@ On Windows:
mkdir build
cd build
- cmake -H.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release
+ cmake -S.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=cl.exe
ninja
ninja install
cd ..
+Use the Python module
++++++++++++++++++++++
+
The final example can then be run by:
.. code-block:: bash
python main.py
+In the ``main.py`` script, two types are derived from :code:`Icecream` for
+different “flavors” after importing the classes from the :code:`Universe`
+module. Then, a :code:`truck` is created to deliver some regular flavored
+Icecreams and two special ones.
+
+If the delivery fails, a new :code:`truck` is created with the old flavors
+copied over, and a new *magical* flavor that will surely satisfy all customers.
+
+Try running it to see if the ice creams are delivered.
+
Windows troubleshooting
+++++++++++++++++++++++
@@ -207,13 +220,13 @@ passing the compiler on the command line:
.. code-block:: bash
- cmake -H.. -B. -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe
+ cmake -S.. -B. -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe
or by using the -G option:
.. code-block:: bash
- cmake -H.. -B. -G "Visual Studio 14 Win64"
+ cmake -S.. -B. -G "Visual Studio 14 Win64"
If the ``-G "Visual Studio 14 Win64"`` option is used, a ``sln`` file
will be generated, and can be used with ``MSBuild``
diff --git a/examples/scriptableapplication/CMakeLists.txt b/examples/scriptableapplication/CMakeLists.txt
index e9c19dc30..fbfa00b98 100644
--- a/examples/scriptableapplication/CMakeLists.txt
+++ b/examples/scriptableapplication/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
cmake_minimum_required(VERSION 3.18)
cmake_policy(VERSION 3.18)
@@ -98,7 +101,7 @@ set(WRAPPED_HEADER ${CMAKE_SOURCE_DIR}/wrappedclasses.h)
set(TYPESYSTEM_FILE ${CMAKE_SOURCE_DIR}/scriptableapplication.xml)
set(SHIBOKEN_OPTIONS --generator-set=shiboken --enable-parent-ctor-heuristic
- --enable-pyside-extensions --enable-return-value-heuristic --use-isnull-as-nb_nonzero
+ --enable-pyside-extensions --enable-return-value-heuristic --use-isnull-as-nb-bool
--avoid-protected-hack
${INCLUDES}
-I${CMAKE_SOURCE_DIR}
diff --git a/examples/scriptableapplication/doc/scriptableapplication.rst b/examples/scriptableapplication/doc/scriptableapplication.rst
index b00d65415..146911f13 100644
--- a/examples/scriptableapplication/doc/scriptableapplication.rst
+++ b/examples/scriptableapplication/doc/scriptableapplication.rst
@@ -84,7 +84,7 @@ On Windows:
mkdir build
cd build
- cmake -H.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release
+ cmake -S.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release
ninja
./scriptableapplication
@@ -127,13 +127,13 @@ passing the compiler on the command line:
.. code-block:: bash
- cmake -H.. -B. -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe
+ cmake -S.. -B. -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe
or using the -G option:
.. code-block:: bash
- cmake -H.. -B. -G "Visual Studio 14 Win64" -DCMAKE_BUILD_TYPE=Release
+ cmake -S.. -B. -G "Visual Studio 14 Win64" -DCMAKE_BUILD_TYPE=Release
If the ``-G "Visual Studio 14 Win64"`` option is used, a ``sln`` file
diff --git a/examples/scriptableapplication/mainwindow.cpp b/examples/scriptableapplication/mainwindow.cpp
index 27e6f1247..ece7989e7 100644
--- a/examples/scriptableapplication/mainwindow.cpp
+++ b/examples/scriptableapplication/mainwindow.cpp
@@ -19,37 +19,44 @@
#include <QtCore/QDebug>
#include <QtCore/QTextStream>
-static const char defaultScript[] = R"(
-import AppLib
+using namespace Qt::StringLiterals;
+
+static const auto defaultScript = R"(import AppLib
print("Hello, world")
mainWindow.testFunction1()
-)";
+)"_L1;
MainWindow::MainWindow()
- : m_scriptEdit(new QPlainTextEdit(QString::fromLatin1(defaultScript).trimmed(), this))
+ : m_scriptEdit(new QPlainTextEdit(defaultScript, this))
{
setWindowTitle(tr("Scriptable Application"));
- QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
- const QIcon runIcon = QIcon::fromTheme(QStringLiteral("system-run"));
- QAction *runAction = fileMenu->addAction(runIcon, tr("&Run..."), this, &MainWindow::slotRunScript);
+ auto *fileMenu = menuBar()->addMenu(tr("&File"));
+ const QIcon runIcon = QIcon::fromTheme("system-run"_L1);
+ auto *runAction = fileMenu->addAction(runIcon, tr("&Run..."),
+ this, &MainWindow::slotRunScript);
runAction->setShortcut(Qt::CTRL | Qt::Key_R);
- QAction *diagnosticAction = fileMenu->addAction(tr("&Print Diagnostics"), this, &MainWindow::slotPrintDiagnostics);
+ auto *diagnosticAction = fileMenu->addAction(tr("&Print Diagnostics"),
+ this, &MainWindow::slotPrintDiagnostics);
diagnosticAction->setShortcut(Qt::CTRL | Qt::Key_D);
- fileMenu->addAction(tr("&Invoke testFunction1()"), this, &MainWindow::testFunction1);
- const QIcon quitIcon = QIcon::fromTheme(QStringLiteral("application-exit"));
- QAction *quitAction = fileMenu->addAction(quitIcon, tr("&Quit"), qApp, &QCoreApplication::quit);
+ fileMenu->addAction(tr("&Invoke testFunction1()"),
+ this, &MainWindow::testFunction1);
+ const QIcon quitIcon = QIcon::fromTheme(QIcon::ThemeIcon::ApplicationExit);
+ auto *quitAction = fileMenu->addAction(quitIcon, tr("&Quit"),
+ qApp, &QCoreApplication::quit);
quitAction->setShortcut(Qt::CTRL | Qt::Key_Q);
- QMenu *editMenu = menuBar()->addMenu(tr("&Edit"));
- const QIcon clearIcon = QIcon::fromTheme(QStringLiteral("edit-clear"));
- QAction *clearAction = editMenu->addAction(clearIcon, tr("&Clear"), m_scriptEdit, &QPlainTextEdit::clear);
+ auto *editMenu = menuBar()->addMenu(tr("&Edit"));
+ const QIcon clearIcon = QIcon::fromTheme(QIcon::ThemeIcon::EditClear);
+ auto *clearAction = editMenu->addAction(clearIcon, tr("&Clear"),
+ m_scriptEdit, &QPlainTextEdit::clear);
- QMenu *helpMenu = menuBar()->addMenu(tr("&Help"));
- const QIcon aboutIcon = QIcon::fromTheme(QStringLiteral("help-about"));
- QAction *aboutAction = helpMenu->addAction(aboutIcon, tr("&About Qt"), qApp, &QApplication::aboutQt);
+ auto *helpMenu = menuBar()->addMenu(tr("&Help"));
+ const QIcon aboutIcon = QIcon::fromTheme(QIcon::ThemeIcon::HelpAbout);
+ auto *aboutAction = helpMenu->addAction(aboutIcon, tr("&About Qt"),
+ qApp, &QApplication::aboutQt);
- QToolBar *toolBar = new QToolBar;
+ auto *toolBar = new QToolBar;
addToolBar(toolBar);
toolBar->addAction(quitAction);
toolBar->addSeparator();
@@ -62,26 +69,29 @@ MainWindow::MainWindow()
m_scriptEdit->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
setCentralWidget(m_scriptEdit);
- if (!PythonUtils::bindAppObject("__main__", "mainWindow", PythonUtils::MainWindowType, this))
+ if (!PythonUtils::bindAppObject("__main__"_L1, "mainWindow"_L1,
+ PythonUtils::MainWindowType, this)) {
statusBar()->showMessage(tr("Error loading the application module"));
+ }
}
void MainWindow::slotRunScript()
{
const QString text = m_scriptEdit->toPlainText().trimmed();
- const QStringList script = text.split(u'\n', Qt::SkipEmptyParts);
- if (!script.isEmpty())
- runScript(script);
+ if (!text.isEmpty())
+ runScript(text);
}
void MainWindow::slotPrintDiagnostics()
{
- const QStringList script = QStringList()
- << "import sys" << "print('Path=', sys.path)" << "print('Executable=', sys.executable)";
+ const QString script = R"P(import sys
+print('Path=', sys.path)
+print('Executable=', sys.executable)
+)P"_L1;
runScript(script);
}
-void MainWindow::runScript(const QStringList &script)
+void MainWindow::runScript(const QString &script)
{
if (!::PythonUtils::runScript(script))
statusBar()->showMessage(tr("Error running script"));
diff --git a/examples/scriptableapplication/mainwindow.h b/examples/scriptableapplication/mainwindow.h
index b7cafc3e6..e72f5ca72 100644
--- a/examples/scriptableapplication/mainwindow.h
+++ b/examples/scriptableapplication/mainwindow.h
@@ -6,7 +6,7 @@
#include <QtWidgets/QMainWindow>
-class QPlainTextEdit;
+QT_FORWARD_DECLARE_CLASS(QPlainTextEdit)
class MainWindow : public QMainWindow
{
@@ -16,12 +16,14 @@ public:
void testFunction1();
+ static constexpr auto TEST = QLatin1StringView("test");
+
private Q_SLOTS:
void slotRunScript();
void slotPrintDiagnostics();
private:
- void runScript(const QStringList &);
+ void runScript(const QString &);
QPlainTextEdit *m_scriptEdit;
};
diff --git a/examples/scriptableapplication/pythonutils.cpp b/examples/scriptableapplication/pythonutils.cpp
index b167bb240..8104bb167 100644
--- a/examples/scriptableapplication/pythonutils.cpp
+++ b/examples/scriptableapplication/pythonutils.cpp
@@ -114,20 +114,14 @@ bool bindAppObject(const QString &moduleName, const QString &name,
return true;
}
-bool runScript(const QStringList &script)
+bool runScript(const QString &script)
{
if (init() == PythonUninitialized)
return false;
- // Concatenating all the lines
- QString content;
- QTextStream ss(&content);
- for (const QString &line: script)
- ss << line << "\n";
-
// Executing the whole script as one line
bool result = true;
- const QByteArray line = content.toUtf8();
+ const QByteArray line = script.toUtf8();
if (PyRun_SimpleString(line.constData()) == -1) {
if (PyErr_Occurred())
PyErr_Print();
diff --git a/examples/scriptableapplication/pythonutils.h b/examples/scriptableapplication/pythonutils.h
index 80698d234..09e959159 100644
--- a/examples/scriptableapplication/pythonutils.h
+++ b/examples/scriptableapplication/pythonutils.h
@@ -6,7 +6,7 @@
#include <QtCore/QStringList>
-class QObject;
+QT_FORWARD_DECLARE_CLASS(QObject)
namespace PythonUtils {
@@ -27,7 +27,7 @@ State init();
bool bindAppObject(const QString &moduleName, const QString &name,
int index, QObject *o);
-bool runScript(const QStringList &script);
+bool runScript(const QString &script);
} // namespace PythonUtils
diff --git a/examples/serialbus/can/main.py b/examples/serialbus/can/main.py
index 77d2e6012..97cdcc908 100644
--- a/examples/serialbus/can/main.py
+++ b/examples/serialbus/can/main.py
@@ -16,4 +16,3 @@ if __name__ == "__main__":
w = MainWindow()
w.show()
sys.exit(QCoreApplication.exec())
-
diff --git a/examples/serialbus/can/mainwindow.py b/examples/serialbus/can/mainwindow.py
index e5d068e07..ae2a08f1f 100644
--- a/examples/serialbus/can/mainwindow.py
+++ b/examples/serialbus/can/mainwindow.py
@@ -74,7 +74,7 @@ class MainWindow(QMainWindow):
self.m_ui.actionDisconnect.triggered.connect(self.disconnect_device)
self.m_ui.actionResetController.triggered.connect(self._reset_controller)
self.m_ui.actionQuit.triggered.connect(self.close)
- self.m_ui.actionAboutQt.triggered.connect(qApp.aboutQt)
+ self.m_ui.actionAboutQt.triggered.connect(qApp.aboutQt) # noqa: F821
self.m_ui.actionClearLog.triggered.connect(self.m_model.clear)
self.m_ui.actionPluginDocumentation.triggered.connect(show_help)
self.m_ui.actionDeviceInformation.triggered.connect(self._action_device_information)
@@ -109,9 +109,11 @@ class MainWindow(QMainWindow):
else:
self.m_model.set_queue_limit(0)
- device, error_string = QCanBus.instance().createDevice(p.plugin_name, p.device_interface_name)
+ device, error_string = QCanBus.instance().createDevice(
+ p.plugin_name, p.device_interface_name)
if not device:
- self.m_status.setText(f"Error creating device '{p.plugin_name}', reason: '{error_string}'")
+ self.m_status.setText(
+ f"Error creating device '{p.plugin_name}', reason: '{error_string}'")
return
self.m_number_frames_written = 0
@@ -136,18 +138,22 @@ class MainWindow(QMainWindow):
config_bit_rate = self.m_can_device.configurationParameter(QCanBusDevice.BitRateKey)
if config_bit_rate > 0:
is_can_fd = bool(self.m_can_device.configurationParameter(QCanBusDevice.CanFdKey))
- config_data_bit_rate = self.m_can_device.configurationParameter(QCanBusDevice.DataBitRateKey)
+ config_data_bit_rate = self.m_can_device.configurationParameter(
+ QCanBusDevice.DataBitRateKey)
bit_rate = config_bit_rate / 1000
if is_can_fd and config_data_bit_rate > 0:
data_bit_rate = config_data_bit_rate / 1000
- m = f"Plugin: {p.plugin_name}, connected to {p.device_interface_name} at {bit_rate} / {data_bit_rate} kBit/s"
+ m = (f"Plugin: {p.plugin_name}, connected to {p.device_interface_name} "
+ f"at {bit_rate} / {data_bit_rate} kBit/s")
self.m_status.setText(m)
else:
- m = f"Plugin: {p.plugin_name}, connected to {p.device_interface_name} at {bit_rate} kBit/s"
+ m = (f"Plugin: {p.plugin_name}, connected to {p.device_interface_name} "
+ f"at {bit_rate} kBit/s")
self.m_status.setText(m)
else:
- self.m_status.setText(f"Plugin: {p.plugin_name}, connected to {p.device_interface_name}")
+ self.m_status.setText(
+ f"Plugin: {p.plugin_name}, connected to {p.device_interface_name}")
if self.m_can_device.hasBusStatus():
self.m_busStatusTimer.start(2000)
diff --git a/examples/serialbus/can/sendframebox.py b/examples/serialbus/can/sendframebox.py
index 99e4ab7c2..6472fc473 100644
--- a/examples/serialbus/can/sendframebox.py
+++ b/examples/serialbus/can/sendframebox.py
@@ -157,8 +157,8 @@ class SendFrameBox(QGroupBox):
@Slot(bool)
def _flexible_datarate(self, value):
- l = MAX_PAYLOAD_FD if value else MAX_PAYLOAD
- self.m_hexStringValidator.set_max_length(l)
+ len = MAX_PAYLOAD_FD if value else MAX_PAYLOAD
+ self.m_hexStringValidator.set_max_length(len)
self.m_ui.bitrateSwitchBox.setEnabled(value)
if not value:
self.m_ui.bitrateSwitchBox.setChecked(False)
diff --git a/examples/serialbus/can/ui_canbusdeviceinfobox.py b/examples/serialbus/can/ui_canbusdeviceinfobox.py
index 250e653be..d2f0e74a5 100644
--- a/examples/serialbus/can/ui_canbusdeviceinfobox.py
+++ b/examples/serialbus/can/ui_canbusdeviceinfobox.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'canbusdeviceinfobox.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.1
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
diff --git a/examples/serialbus/can/ui_canbusdeviceinfodialog.py b/examples/serialbus/can/ui_canbusdeviceinfodialog.py
index fd391a2a8..c32e9ca2d 100644
--- a/examples/serialbus/can/ui_canbusdeviceinfodialog.py
+++ b/examples/serialbus/can/ui_canbusdeviceinfodialog.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'canbusdeviceinfodialog.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.1
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -35,7 +35,7 @@ class Ui_CanBusDeviceInfoDialog(object):
self.horizontalLayout = QHBoxLayout()
self.horizontalLayout.setObjectName(u"horizontalLayout")
- self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer)
diff --git a/examples/serialbus/can/ui_connectdialog.py b/examples/serialbus/can/ui_connectdialog.py
index 815fcf594..f01adc4eb 100644
--- a/examples/serialbus/can/ui_connectdialog.py
+++ b/examples/serialbus/can/ui_connectdialog.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'connectdialog.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.1
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -169,7 +169,7 @@ class Ui_ConnectDialog(object):
self.horizontalLayout = QHBoxLayout()
self.horizontalLayout.setObjectName(u"horizontalLayout")
- self.horizontalSpacer = QSpacerItem(96, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+ self.horizontalSpacer = QSpacerItem(96, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer)
diff --git a/examples/serialbus/can/ui_mainwindow.py b/examples/serialbus/can/ui_mainwindow.py
index cce2375cf..4ba4dd309 100644
--- a/examples/serialbus/can/ui_mainwindow.py
+++ b/examples/serialbus/can/ui_mainwindow.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.1
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -95,7 +95,7 @@ class Ui_MainWindow(object):
self.horizontalLayout.addWidget(self.busStatus)
- self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer)
@@ -119,7 +119,7 @@ class Ui_MainWindow(object):
MainWindow.setMenuBar(self.menuBar)
self.mainToolBar = QToolBar(MainWindow)
self.mainToolBar.setObjectName(u"mainToolBar")
- MainWindow.addToolBar(Qt.TopToolBarArea, self.mainToolBar)
+ MainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.mainToolBar)
self.statusBar = QStatusBar(MainWindow)
self.statusBar.setObjectName(u"statusBar")
MainWindow.setStatusBar(self.statusBar)
diff --git a/examples/serialbus/can/ui_sendframebox.py b/examples/serialbus/can/ui_sendframebox.py
index b769645e0..79f013c89 100644
--- a/examples/serialbus/can/ui_sendframebox.py
+++ b/examples/serialbus/can/ui_sendframebox.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'sendframebox.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.1
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -88,7 +88,7 @@ class Ui_SendFrameBox(object):
self.frameIdEdit = QLineEdit(SendFrameBox)
self.frameIdEdit.setObjectName(u"frameIdEdit")
- sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(1)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.frameIdEdit.sizePolicy().hasHeightForWidth())
@@ -109,7 +109,7 @@ class Ui_SendFrameBox(object):
self.payloadEdit = QLineEdit(SendFrameBox)
self.payloadEdit.setObjectName(u"payloadEdit")
- sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
sizePolicy1.setHorizontalStretch(2)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.payloadEdit.sizePolicy().hasHeightForWidth())
diff --git a/examples/serialbus/modbus/modbusclient/mainwindow.py b/examples/serialbus/modbus/modbusclient/mainwindow.py
index 80a336c59..02f9d478b 100644
--- a/examples/serialbus/modbus/modbusclient/mainwindow.py
+++ b/examples/serialbus/modbus/modbusclient/mainwindow.py
@@ -316,7 +316,7 @@ class MainWindow(QMainWindow):
# do not go beyond 10 entries
number_of_entries = min(int(self.ui.readSize.currentText()),
- 10 - start_address)
+ 10 - start_address)
return QModbusDataUnit(table, start_address, number_of_entries)
def write_request(self):
@@ -327,5 +327,5 @@ class MainWindow(QMainWindow):
# do not go beyond 10 entries
number_of_entries = min(int(self.ui.writeSize.currentText()),
- 10 - start_address)
+ 10 - start_address)
return QModbusDataUnit(table, start_address, number_of_entries)
diff --git a/examples/serialbus/modbus/modbusclient/modbusclient.pyproject b/examples/serialbus/modbus/modbusclient/modbusclient.pyproject
index 863a7bc77..11322fa9b 100644
--- a/examples/serialbus/modbus/modbusclient/modbusclient.pyproject
+++ b/examples/serialbus/modbus/modbusclient/modbusclient.pyproject
@@ -1,5 +1,5 @@
{
"files": ["main.py", "mainwindow.py", "mainwindow.ui", "settingsdialog.py",
- "settingsdialog.ui", "ui_settingsdialog.py",
+ "settingsdialog.ui",
"writeregistermodel.py", "modbusclient.qrc"]
}
diff --git a/examples/serialbus/modbus/modbusclient/settingsdialog.py b/examples/serialbus/modbus/modbusclient/settingsdialog.py
index a4a1970cb..a5e4a37ca 100644
--- a/examples/serialbus/modbus/modbusclient/settingsdialog.py
+++ b/examples/serialbus/modbus/modbusclient/settingsdialog.py
@@ -1,7 +1,7 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from PySide6.QtCore import Qt, Slot
+from PySide6.QtCore import Slot
from PySide6.QtWidgets import QDialog
from PySide6.QtSerialPort import QSerialPort
diff --git a/examples/serialbus/modbus/modbusclient/ui_mainwindow.py b/examples/serialbus/modbus/modbusclient/ui_mainwindow.py
index 10fb0874f..1535fc8d8 100644
--- a/examples/serialbus/modbus/modbusclient/ui_mainwindow.py
+++ b/examples/serialbus/modbus/modbusclient/ui_mainwindow.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.1
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -61,7 +61,7 @@ class Ui_MainWindow(object):
self.gridLayout.setObjectName(u"gridLayout")
self.label_27 = QLabel(self.centralWidget)
self.label_27.setObjectName(u"label_27")
- sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred)
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_27.sizePolicy().hasHeightForWidth())
@@ -71,7 +71,7 @@ class Ui_MainWindow(object):
self.connectButton = QPushButton(self.centralWidget)
self.connectButton.setObjectName(u"connectButton")
- sizePolicy1 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed)
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Fixed)
sizePolicy1.setHorizontalStretch(0)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.connectButton.sizePolicy().hasHeightForWidth())
@@ -81,7 +81,7 @@ class Ui_MainWindow(object):
self.gridLayout.addWidget(self.connectButton, 0, 7, 1, 1)
- self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.gridLayout.addItem(self.horizontalSpacer, 0, 4, 1, 1)
@@ -115,7 +115,7 @@ class Ui_MainWindow(object):
self.portEdit = QLineEdit(self.centralWidget)
self.portEdit.setObjectName(u"portEdit")
- sizePolicy2 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
+ sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
sizePolicy2.setHorizontalStretch(0)
sizePolicy2.setVerticalStretch(0)
sizePolicy2.setHeightForWidth(self.portEdit.sizePolicy().hasHeightForWidth())
@@ -255,7 +255,7 @@ class Ui_MainWindow(object):
self.horizontalLayout.addWidget(self.writeTable)
- self.horizontalSpacer_2 = QSpacerItem(13, 17, QSizePolicy.Expanding, QSizePolicy.Minimum)
+ self.horizontalSpacer_2 = QSpacerItem(13, 17, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer_2)
diff --git a/examples/serialbus/modbus/modbusclient/ui_settingsdialog.py b/examples/serialbus/modbus/modbusclient/ui_settingsdialog.py
index f1c299594..af3a0665c 100644
--- a/examples/serialbus/modbus/modbusclient/ui_settingsdialog.py
+++ b/examples/serialbus/modbus/modbusclient/ui_settingsdialog.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'settingsdialog.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.1
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -26,7 +26,7 @@ class Ui_SettingsDialog(object):
SettingsDialog.resize(239, 256)
self.gridLayout = QGridLayout(SettingsDialog)
self.gridLayout.setObjectName(u"gridLayout")
- self.verticalSpacer = QSpacerItem(20, 43, QSizePolicy.Minimum, QSizePolicy.Expanding)
+ self.verticalSpacer = QSpacerItem(20, 43, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.gridLayout.addItem(self.verticalSpacer, 3, 1, 1, 1)
diff --git a/examples/serialport/terminal/mainwindow.py b/examples/serialport/terminal/mainwindow.py
index c35ed2854..bdfb0fb0e 100644
--- a/examples/serialport/terminal/mainwindow.py
+++ b/examples/serialport/terminal/mainwindow.py
@@ -47,7 +47,7 @@ class MainWindow(QMainWindow):
self.m_ui.actionConfigure.triggered.connect(self.m_settings.show)
self.m_ui.actionClear.triggered.connect(self.m_console.clear)
self.m_ui.actionAbout.triggered.connect(self.about)
- self.m_ui.actionAboutQt.triggered.connect(qApp.aboutQt)
+ self.m_ui.actionAboutQt.triggered.connect(qApp.aboutQt) # noqa: F821
self.m_serial.errorOccurred.connect(self.handle_error)
self.m_serial.readyRead.connect(self.read_data)
diff --git a/examples/serialport/terminal/settingsdialog.py b/examples/serialport/terminal/settingsdialog.py
index 07034e4a6..c9373d5b0 100644
--- a/examples/serialport/terminal/settingsdialog.py
+++ b/examples/serialport/terminal/settingsdialog.py
@@ -29,7 +29,7 @@ class Settings():
self.string_data_bits = ""
self.parity = QSerialPort.NoParity
self.string_parity = ""
- self.stop_bits = QSerialPort.OneStop
+ self.stop_bits = QSerialPort.OneStop
self.string_stop_bits = ""
self.flow_control = QSerialPort.SoftwareControl
self.string_flow_control = ""
@@ -52,7 +52,8 @@ class SettingsDialog(QDialog):
self.m_ui.applyButton.clicked.connect(self.apply)
self.m_ui.serialPortInfoListBox.currentIndexChanged.connect(self.show_port_info)
self.m_ui.baudRateBox.currentIndexChanged.connect(self.check_custom_baud_rate_policy)
- self.m_ui.serialPortInfoListBox.currentIndexChanged.connect(self.check_custom_device_path_policy)
+ self.m_ui.serialPortInfoListBox.currentIndexChanged.connect(
+ self.check_custom_device_path_policy)
self.fill_ports_parameters()
self.fill_ports_info()
diff --git a/examples/serialport/terminal/ui_mainwindow.py b/examples/serialport/terminal/ui_mainwindow.py
index 6aa0fcc53..21adbd5c1 100644
--- a/examples/serialport/terminal/ui_mainwindow.py
+++ b/examples/serialport/terminal/ui_mainwindow.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.0
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -74,7 +74,7 @@ class Ui_MainWindow(object):
MainWindow.setMenuBar(self.menuBar)
self.mainToolBar = QToolBar(MainWindow)
self.mainToolBar.setObjectName(u"mainToolBar")
- MainWindow.addToolBar(Qt.TopToolBarArea, self.mainToolBar)
+ MainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.mainToolBar)
self.statusBar = QStatusBar(MainWindow)
self.statusBar.setObjectName(u"statusBar")
MainWindow.setStatusBar(self.statusBar)
diff --git a/examples/serialport/terminal/ui_settingsdialog.py b/examples/serialport/terminal/ui_settingsdialog.py
index 212b60b25..6c5a417cc 100644
--- a/examples/serialport/terminal/ui_settingsdialog.py
+++ b/examples/serialport/terminal/ui_settingsdialog.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'settingsdialog.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.0
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -128,7 +128,7 @@ class Ui_SettingsDialog(object):
self.horizontalLayout = QHBoxLayout()
self.horizontalLayout.setObjectName(u"horizontalLayout")
- self.horizontalSpacer = QSpacerItem(96, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+ self.horizontalSpacer = QSpacerItem(96, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer)
diff --git a/examples/spatialaudio/audiopanning/main.py b/examples/spatialaudio/audiopanning/main.py
index 55770e3b6..19b6c3bbd 100644
--- a/examples/spatialaudio/audiopanning/main.py
+++ b/examples/spatialaudio/audiopanning/main.py
@@ -149,7 +149,7 @@ class AudioWidget(QWidget):
self._file_dialog = QFileDialog(self, "Open Audio File", directory)
self._file_dialog.setAcceptMode(QFileDialog.AcceptOpen)
mime_types = ["audio/mpeg", "audio/aac", "audio/x-ms-wma",
- "audio/x-flac+ogg", "audio/x-wav"]
+ "audio/x-flac+ogg", "audio/x-wav"]
self._file_dialog.setMimeTypeFilters(mime_types)
self._file_dialog.selectMimeTypeFilter(mime_types[0])
diff --git a/examples/speech/hello_speak/doc/hello_speak.rst b/examples/speech/hello_speak/doc/hello_speak.rst
new file mode 100644
index 000000000..b7c17c35f
--- /dev/null
+++ b/examples/speech/hello_speak/doc/hello_speak.rst
@@ -0,0 +1,16 @@
+Hello Speak
+===========
+
+The Hello Speak example reads out user-provided text.
+
+The Hello Speak example demonstrates how QTextToSpeech can be used in a Qt C++
+application to read out text, and to control the speech.
+
+The example uses a widget UI to provide controls for the pitch, volume, and
+rate of the speech. It also lets the user select an engine, the language, and a
+voice.
+
+.. image:: hello_speak.webp
+ :width: 400
+ :alt: Hello Speak Screenshot
+
diff --git a/examples/speech/hello_speak/doc/hello_speak.webp b/examples/speech/hello_speak/doc/hello_speak.webp
new file mode 100644
index 000000000..c378d1a4b
--- /dev/null
+++ b/examples/speech/hello_speak/doc/hello_speak.webp
Binary files differ
diff --git a/examples/speech/hello_speak/hello_speak.pyproject b/examples/speech/hello_speak/hello_speak.pyproject
new file mode 100644
index 000000000..0cefc7531
--- /dev/null
+++ b/examples/speech/hello_speak/hello_speak.pyproject
@@ -0,0 +1,5 @@
+{
+ "files": ["main.py",
+ "mainwindow.py",
+ "mainwindow.ui"]
+}
diff --git a/examples/speech/hello_speak/main.py b/examples/speech/hello_speak/main.py
new file mode 100644
index 000000000..b025dd6c0
--- /dev/null
+++ b/examples/speech/hello_speak/main.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the hello_speak example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCore import QLoggingCategory
+from PySide6.QtWidgets import QApplication
+
+from mainwindow import MainWindow
+
+
+if __name__ == "__main__":
+ QLoggingCategory.setFilterRules("qt.speech.tts=true\nqt.speech.tts.*=true")
+
+ app = QApplication(sys.argv)
+ win = MainWindow()
+ win.show()
+ sys.exit(app.exec())
diff --git a/examples/speech/hello_speak/mainwindow.py b/examples/speech/hello_speak/mainwindow.py
new file mode 100644
index 000000000..7790fec8c
--- /dev/null
+++ b/examples/speech/hello_speak/mainwindow.py
@@ -0,0 +1,134 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QLocale, QSignalBlocker, Slot
+from PySide6.QtWidgets import QMainWindow
+from PySide6.QtTextToSpeech import QTextToSpeech, QVoice
+
+from ui_mainwindow import Ui_MainWindow
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._speech = None
+ self._voices = []
+
+ self._ui = Ui_MainWindow()
+ self._ui.setupUi(self)
+
+ # Populate engine selection list
+ self._ui.engine.addItem("Default", "default")
+ engines = QTextToSpeech.availableEngines()
+ for engine in engines:
+ self._ui.engine.addItem(engine, engine)
+ self._ui.engine.setCurrentIndex(0)
+ self.engine_selected(0)
+
+ self._ui.pitch.valueChanged.connect(self.set_pitch)
+ self._ui.rate.valueChanged.connect(self.set_rate)
+ self._ui.volume.valueChanged.connect(self.set_volume)
+ self._ui.engine.currentIndexChanged.connect(self.engine_selected)
+ self._ui.voice.currentIndexChanged.connect(self.voice_selected)
+ self._ui.language.currentIndexChanged.connect(self.language_selected)
+
+ @Slot(int)
+ def set_rate(self, rate):
+ self._speech.setRate(rate / 10.0)
+
+ @Slot(int)
+ def set_pitch(self, pitch):
+ self._speech.setPitch(pitch / 10.0)
+
+ @Slot(int)
+ def set_volume(self, volume):
+ self._speech.setVolume(volume / 100.0)
+
+ @Slot(QTextToSpeech.State)
+ def state_changed(self, state):
+ if state == QTextToSpeech.Speaking:
+ self._ui.statusbar.showMessage("Speech started...")
+ elif state == QTextToSpeech.Ready:
+ self._ui.statusbar.showMessage("Speech stopped...", 2000)
+ elif state == QTextToSpeech.Paused:
+ self._ui.statusbar.showMessage("Speech paused...")
+ else:
+ self._ui.statusbar.showMessage("Speech error!")
+
+ self._ui.pauseButton.setEnabled(state == QTextToSpeech.Speaking)
+ self._ui.resumeButton.setEnabled(state == QTextToSpeech.Paused)
+ can_stop = state == QTextToSpeech.Speaking or state == QTextToSpeech.Paused
+ self._ui.stopButton.setEnabled(can_stop)
+
+ @Slot(int)
+ def engine_selected(self, index):
+ engine_name = self._ui.engine.itemData(index)
+ self._speech = None
+ self._speech = (QTextToSpeech(self) if engine_name == "default"
+ else QTextToSpeech(engine_name, self))
+
+ # Block signals of the languages combobox while populating
+ current = self._speech.locale()
+ with QSignalBlocker(self._ui.language):
+ self._ui.language.clear()
+ # Populate the languages combobox before connecting its signal.
+ locales = self._speech.availableLocales()
+ for locale in locales:
+ lang = QLocale.languageToString(locale.language())
+ territory = QLocale.territoryToString(locale.territory())
+ self._ui.language.addItem(f"{lang} ({territory})", locale)
+ if locale.name() == current.name():
+ current = locale
+
+ self.set_rate(self._ui.rate.value())
+ self.set_pitch(self._ui.pitch.value())
+ self.set_volume(self._ui.volume.value())
+
+ self._ui.speakButton.clicked.connect(self.speak_text)
+ self._ui.stopButton.clicked.connect(self.stop_speaking)
+ self._ui.pauseButton.clicked.connect(self.pause_speaking)
+ self._ui.resumeButton.clicked.connect(self._speech.resume)
+
+ self._speech.stateChanged.connect(self.state_changed)
+ self._speech.localeChanged.connect(self.locale_changed)
+
+ self.locale_changed(current)
+
+ @Slot()
+ def speak_text(self):
+ self._speech.say(self._ui.plainTextEdit.toPlainText())
+
+ @Slot()
+ def stop_speaking(self):
+ self._speech.stop()
+
+ @Slot()
+ def pause_speaking(self):
+ self._speech.pause()
+
+ @Slot(int)
+ def language_selected(self, language):
+ locale = self._ui.language.itemData(language)
+ self._speech.setLocale(locale)
+
+ @Slot(int)
+ def voice_selected(self, index):
+ self._speech.setVoice(self._voices[index])
+
+ @Slot(QLocale)
+ def locale_changed(self, locale):
+ self._ui.language.setCurrentIndex(self._ui.language.findData(locale))
+
+ with QSignalBlocker(self._ui.voice):
+ self._ui.voice.clear()
+ self._voices = self._speech.availableVoices()
+ current_voice = self._speech.voice()
+ for voice in self._voices:
+ name = voice.name()
+ gender = QVoice.genderName(voice.gender())
+ age = QVoice.ageName(voice.age())
+ self._ui.voice.addItem(f"{name} - {gender} - {age}")
+ if voice.name() == current_voice.name():
+ self._ui.voice.setCurrentIndex(self._ui.voice.count() - 1)
diff --git a/examples/speech/hello_speak/mainwindow.ui b/examples/speech/hello_speak/mainwindow.ui
new file mode 100644
index 000000000..6f3accf6c
--- /dev/null
+++ b/examples/speech/hello_speak/mainwindow.ui
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>551</width>
+ <height>448</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>MainWindow</string>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QPlainTextEdit" name="plainTextEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="plainText">
+ <string>Hello QtTextToSpeech,
+this is an example text in English.
+
+QtSpeech is a library that makes text to speech easy with Qt.
+Done, over and out.</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Engine</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Pitch:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>&amp;Language:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="buddy">
+ <cstring>language</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2">
+ <widget class="QSlider" name="pitch">
+ <property name="minimum">
+ <number>-10</number>
+ </property>
+ <property name="maximum">
+ <number>10</number>
+ </property>
+ <property name="singleStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Voice name:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QSlider" name="volume">
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="singleStep">
+ <number>5</number>
+ </property>
+ <property name="pageStep">
+ <number>20</number>
+ </property>
+ <property name="value">
+ <number>70</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="2">
+ <widget class="QComboBox" name="language">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="2">
+ <widget class="QComboBox" name="voice"/>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Rate:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Volume:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2">
+ <widget class="QSlider" name="rate">
+ <property name="minimum">
+ <number>-10</number>
+ </property>
+ <property name="maximum">
+ <number>10</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="2">
+ <widget class="QComboBox" name="engine">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="speakButton">
+ <property name="text">
+ <string>Speak</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pauseButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Pause</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="resumeButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Resume</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="stopButton">
+ <property name="text">
+ <string>Stop</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ </widget>
+ <tabstops>
+ <tabstop>plainTextEdit</tabstop>
+ <tabstop>speakButton</tabstop>
+ <tabstop>pauseButton</tabstop>
+ <tabstop>resumeButton</tabstop>
+ <tabstop>stopButton</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/speech/hello_speak/ui_mainwindow.py b/examples/speech/hello_speak/ui_mainwindow.py
new file mode 100644
index 000000000..ab132e7fb
--- /dev/null
+++ b/examples/speech/hello_speak/ui_mainwindow.py
@@ -0,0 +1,211 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'mainwindow.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QComboBox, QGridLayout, QHBoxLayout,
+ QLabel, QMainWindow, QPlainTextEdit, QPushButton,
+ QSizePolicy, QSlider, QSpacerItem, QStatusBar,
+ QVBoxLayout, QWidget)
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ if not MainWindow.objectName():
+ MainWindow.setObjectName(u"MainWindow")
+ MainWindow.resize(551, 448)
+ self.centralwidget = QWidget(MainWindow)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.verticalLayout = QVBoxLayout(self.centralwidget)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.plainTextEdit = QPlainTextEdit(self.centralwidget)
+ self.plainTextEdit.setObjectName(u"plainTextEdit")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.plainTextEdit.sizePolicy().hasHeightForWidth())
+ self.plainTextEdit.setSizePolicy(sizePolicy)
+
+ self.verticalLayout.addWidget(self.plainTextEdit)
+
+ self.gridLayout = QGridLayout()
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.label_5 = QLabel(self.centralwidget)
+ self.label_5.setObjectName(u"label_5")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Preferred)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth())
+ self.label_5.setSizePolicy(sizePolicy1)
+ self.label_5.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label_5, 4, 0, 1, 1)
+
+ self.label_3 = QLabel(self.centralwidget)
+ self.label_3.setObjectName(u"label_3")
+ sizePolicy1.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
+ self.label_3.setSizePolicy(sizePolicy1)
+ self.label_3.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
+
+ self.label_4 = QLabel(self.centralwidget)
+ self.label_4.setObjectName(u"label_4")
+ sizePolicy1.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth())
+ self.label_4.setSizePolicy(sizePolicy1)
+ self.label_4.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label_4, 5, 0, 1, 1)
+
+ self.pitch = QSlider(self.centralwidget)
+ self.pitch.setObjectName(u"pitch")
+ self.pitch.setMinimum(-10)
+ self.pitch.setMaximum(10)
+ self.pitch.setSingleStep(1)
+ self.pitch.setOrientation(Qt.Horizontal)
+
+ self.gridLayout.addWidget(self.pitch, 3, 2, 1, 1)
+
+ self.label_6 = QLabel(self.centralwidget)
+ self.label_6.setObjectName(u"label_6")
+ self.label_6.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label_6, 6, 0, 1, 1)
+
+ self.volume = QSlider(self.centralwidget)
+ self.volume.setObjectName(u"volume")
+ self.volume.setMaximum(100)
+ self.volume.setSingleStep(5)
+ self.volume.setPageStep(20)
+ self.volume.setValue(70)
+ self.volume.setOrientation(Qt.Horizontal)
+
+ self.gridLayout.addWidget(self.volume, 1, 2, 1, 1)
+
+ self.language = QComboBox(self.centralwidget)
+ self.language.setObjectName(u"language")
+ sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
+ sizePolicy2.setHorizontalStretch(0)
+ sizePolicy2.setVerticalStretch(0)
+ sizePolicy2.setHeightForWidth(self.language.sizePolicy().hasHeightForWidth())
+ self.language.setSizePolicy(sizePolicy2)
+
+ self.gridLayout.addWidget(self.language, 5, 2, 1, 1)
+
+ self.voice = QComboBox(self.centralwidget)
+ self.voice.setObjectName(u"voice")
+
+ self.gridLayout.addWidget(self.voice, 6, 2, 1, 1)
+
+ self.label = QLabel(self.centralwidget)
+ self.label.setObjectName(u"label")
+ sizePolicy1.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
+ self.label.setSizePolicy(sizePolicy1)
+ self.label.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label, 2, 0, 1, 1)
+
+ self.label_2 = QLabel(self.centralwidget)
+ self.label_2.setObjectName(u"label_2")
+ sizePolicy1.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
+ self.label_2.setSizePolicy(sizePolicy1)
+ self.label_2.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+
+ self.rate = QSlider(self.centralwidget)
+ self.rate.setObjectName(u"rate")
+ self.rate.setMinimum(-10)
+ self.rate.setMaximum(10)
+ self.rate.setOrientation(Qt.Horizontal)
+
+ self.gridLayout.addWidget(self.rate, 2, 2, 1, 1)
+
+ self.engine = QComboBox(self.centralwidget)
+ self.engine.setObjectName(u"engine")
+ sizePolicy2.setHeightForWidth(self.engine.sizePolicy().hasHeightForWidth())
+ self.engine.setSizePolicy(sizePolicy2)
+
+ self.gridLayout.addWidget(self.engine, 4, 2, 1, 1)
+
+
+ self.verticalLayout.addLayout(self.gridLayout)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.speakButton = QPushButton(self.centralwidget)
+ self.speakButton.setObjectName(u"speakButton")
+
+ self.horizontalLayout.addWidget(self.speakButton)
+
+ self.pauseButton = QPushButton(self.centralwidget)
+ self.pauseButton.setObjectName(u"pauseButton")
+ self.pauseButton.setEnabled(False)
+
+ self.horizontalLayout.addWidget(self.pauseButton)
+
+ self.resumeButton = QPushButton(self.centralwidget)
+ self.resumeButton.setObjectName(u"resumeButton")
+ self.resumeButton.setEnabled(False)
+
+ self.horizontalLayout.addWidget(self.resumeButton)
+
+ self.stopButton = QPushButton(self.centralwidget)
+ self.stopButton.setObjectName(u"stopButton")
+
+ self.horizontalLayout.addWidget(self.stopButton)
+
+
+ self.verticalLayout.addLayout(self.horizontalLayout)
+
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.verticalLayout.addItem(self.verticalSpacer)
+
+ MainWindow.setCentralWidget(self.centralwidget)
+ self.statusbar = QStatusBar(MainWindow)
+ self.statusbar.setObjectName(u"statusbar")
+ MainWindow.setStatusBar(self.statusbar)
+#if QT_CONFIG(shortcut)
+ self.label_4.setBuddy(self.language)
+#endif // QT_CONFIG(shortcut)
+ QWidget.setTabOrder(self.plainTextEdit, self.speakButton)
+ QWidget.setTabOrder(self.speakButton, self.pauseButton)
+ QWidget.setTabOrder(self.pauseButton, self.resumeButton)
+ QWidget.setTabOrder(self.resumeButton, self.stopButton)
+
+ self.retranslateUi(MainWindow)
+
+ QMetaObject.connectSlotsByName(MainWindow)
+ # setupUi
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
+ self.plainTextEdit.setPlainText(QCoreApplication.translate("MainWindow", u"Hello QtTextToSpeech,\n"
+"this is an example text in English.\n"
+"\n"
+"QtSpeech is a library that makes text to speech easy with Qt.\n"
+"Done, over and out.", None))
+ self.label_5.setText(QCoreApplication.translate("MainWindow", u"Engine", None))
+ self.label_3.setText(QCoreApplication.translate("MainWindow", u"Pitch:", None))
+ self.label_4.setText(QCoreApplication.translate("MainWindow", u"&Language:", None))
+ self.label_6.setText(QCoreApplication.translate("MainWindow", u"Voice name:", None))
+ self.label.setText(QCoreApplication.translate("MainWindow", u"Rate:", None))
+ self.label_2.setText(QCoreApplication.translate("MainWindow", u"Volume:", None))
+ self.speakButton.setText(QCoreApplication.translate("MainWindow", u"Speak", None))
+ self.pauseButton.setText(QCoreApplication.translate("MainWindow", u"Pause", None))
+ self.resumeButton.setText(QCoreApplication.translate("MainWindow", u"Resume", None))
+ self.stopButton.setText(QCoreApplication.translate("MainWindow", u"Stop", None))
+ # retranslateUi
+
diff --git a/examples/sql/books/bookdelegate.py b/examples/sql/books/bookdelegate.py
index 1d1dba86e..78295adf1 100644
--- a/examples/sql/books/bookdelegate.py
+++ b/examples/sql/books/bookdelegate.py
@@ -13,7 +13,8 @@ class BookDelegate(QSqlRelationalDelegate):
def __init__(self, parent=None):
QSqlRelationalDelegate.__init__(self, parent)
- self.star = QPixmap(":/images/star.png")
+ self.star = QPixmap(":/images/star.svg")
+ self.star_filled = QPixmap(":/images/star-filled.svg")
def paint(self, painter, option, index):
""" Paint the items in the table.
@@ -43,17 +44,19 @@ class BookDelegate(QSqlRelationalDelegate):
if option.state & QStyle.State_Selected:
painter.fillRect(option.rect,
- option.palette.color(color_group, QPalette.Highlight))
+ option.palette.color(color_group, QPalette.Highlight))
rating = model.data(index, Qt.DisplayRole)
width = self.star.width()
height = self.star.height()
x = option.rect.x()
y = option.rect.y() + (option.rect.height() / 2) - (height / 2)
- for i in range(rating):
- painter.drawPixmap(x, y, self.star)
+ for i in range(5):
+ if i < rating:
+ painter.drawPixmap(x, y, self.star_filled)
+ else:
+ painter.drawPixmap(x, y, self.star)
x += width
-
pen = painter.pen()
painter.setPen(option.palette.color(QPalette.Mid))
painter.drawLine(option.rect.bottomLeft(), option.rect.bottomRight())
diff --git a/examples/sql/books/books.qrc b/examples/sql/books/books.qrc
index d6ad21337..a52ee381b 100644
--- a/examples/sql/books/books.qrc
+++ b/examples/sql/books/books.qrc
@@ -1,5 +1,6 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
- <file>images/star.png</file>
+ <file>images/star.svg</file>
+ <file>images/star-filled.svg</file>
</qresource>
</RCC>
diff --git a/examples/sql/books/bookwindow.py b/examples/sql/books/bookwindow.py
index 0eb5fecad..7f9e0f94b 100644
--- a/examples/sql/books/bookwindow.py
+++ b/examples/sql/books/bookwindow.py
@@ -2,7 +2,7 @@
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtWidgets import (QAbstractItemView, QDataWidgetMapper,
- QHeaderView, QMainWindow, QMessageBox)
+ QHeaderView, QMainWindow, QMessageBox)
from PySide6.QtGui import QKeySequence
from PySide6.QtSql import QSqlRelation, QSqlRelationalTableModel, QSqlTableModel
from PySide6.QtCore import Qt, Slot
@@ -58,7 +58,7 @@ class BookWindow(QMainWindow, Ui_BookWindow):
# Lock and prohibit resizing of the width of the rating column:
self.bookTable.horizontalHeader().setSectionResizeMode(model.fieldIndex("rating"),
- QHeaderView.ResizeToContents)
+ QHeaderView.ResizeToContents)
mapper = QDataWidgetMapper(self)
mapper.setModel(model)
@@ -75,24 +75,24 @@ class BookWindow(QMainWindow, Ui_BookWindow):
self.bookTable.setCurrentIndex(model.index(0, 0))
self.create_menubar()
- def showError(err):
+ def showError(self, err):
QMessageBox.critical(self, "Unable to initialize Database",
- f"Error initializing database: {err.text()}")
+ f"Error initializing database: {err.text()}")
def create_menubar(self):
file_menu = self.menuBar().addMenu(self.tr("&File"))
quit_action = file_menu.addAction(self.tr("&Quit"))
- quit_action.triggered.connect(qApp.quit)
+ quit_action.triggered.connect(qApp.quit) # noqa: F821
help_menu = self.menuBar().addMenu(self.tr("&Help"))
about_action = help_menu.addAction(self.tr("&About"))
about_action.setShortcut(QKeySequence.HelpContents)
about_action.triggered.connect(self.about)
aboutQt_action = help_menu.addAction("&About Qt")
- aboutQt_action.triggered.connect(qApp.aboutQt)
+ aboutQt_action.triggered.connect(qApp.aboutQt) # noqa: F821
@Slot()
def about(self):
QMessageBox.about(self, self.tr("About Books"),
- self.tr("<p>The <b>Books</b> example shows how to use Qt SQL classes "
- "with a model/view framework."))
+ self.tr("<p>The <b>Books</b> example shows how to use Qt SQL classes "
+ "with a model/view framework."))
diff --git a/examples/sql/books/images/star-filled.svg b/examples/sql/books/images/star-filled.svg
new file mode 100644
index 000000000..8a2aee27f
--- /dev/null
+++ b/examples/sql/books/images/star-filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#0d0d0d"><path d="M8.41 18.138L12 15.845l3.59 2.323-.94-4.345 3.162-2.897-4.159-.392L12 6.43l-1.652 4.073-4.159.392 3.162 2.927-.94 4.315zm-1.346 3.696a1.04 1.04 0 0 1-1.567-1.104l1.318-6.033-4.476-4.11c-.665-.611-.293-1.726.604-1.808l5.866-.539 2.229-5.587c.348-.872 1.575-.872 1.923 0l2.229 5.587 5.866.539c.897.082 1.269 1.197.604 1.808l-4.476 4.11 1.318 6.033a1.04 1.04 0 0 1-1.567 1.104L12 18.681l-4.935 3.153z"/><path d="M12 5l-1.796 5.528H4.392l4.702 3.416-1.796 5.528L12 16.056l4.702 3.416-1.796-5.528 4.702-3.416h-5.812L12 5z"/></svg>
diff --git a/examples/sql/books/images/star.png b/examples/sql/books/images/star.png
deleted file mode 100644
index 87f4464bd..000000000
--- a/examples/sql/books/images/star.png
+++ /dev/null
Binary files differ
diff --git a/examples/sql/books/images/star.svg b/examples/sql/books/images/star.svg
new file mode 100644
index 000000000..d959abc18
--- /dev/null
+++ b/examples/sql/books/images/star.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path d="M8.41 18.138L12 15.845l3.59 2.323-.94-4.345 3.162-2.897-4.159-.392L12 6.43l-1.652 4.073-4.159.392 3.162 2.927-.94 4.315zm-1.346 3.696a1.04 1.04 0 0 1-1.567-1.104l1.318-6.033-4.476-4.11c-.665-.611-.293-1.726.604-1.808l5.866-.539 2.229-5.587c.348-.872 1.575-.872 1.923 0l2.229 5.587 5.866.539c.897.082 1.269 1.197.604 1.808l-4.476 4.11 1.318 6.033a1.04 1.04 0 0 1-1.567 1.104L12 18.681l-4.935 3.153z" fill="#0d0d0d"/></svg>
diff --git a/examples/sql/books/main.py b/examples/sql/books/main.py
index 9a6575dc2..025b55884 100644
--- a/examples/sql/books/main.py
+++ b/examples/sql/books/main.py
@@ -4,7 +4,7 @@
import sys
from PySide6.QtWidgets import QApplication
from bookwindow import BookWindow
-import rc_books
+import rc_books # noqa: F401
if __name__ == "__main__":
app = QApplication([])
diff --git a/examples/sql/books/rc_books.py b/examples/sql/books/rc_books.py
index b589380e4..123d50de8 100644
--- a/examples/sql/books/rc_books.py
+++ b/examples/sql/books/rc_books.py
@@ -1,62 +1,86 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 6.2.2
+# Created by: The Resource Compiler for Qt version 6.6.1
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
qt_resource_data = b"\
-\x00\x00\x03\x0e\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\
-\x00\x00\x00\x09pHYs\x00\x00\x0b\x11\x00\x00\x0b\x11\
-\x01\x7fd_\x91\x00\x00\x00\x07tIME\x07\xd4\x09\
-\x03\x12\x11\x08\x18~\xe5:\x00\x00\x00\x06bKGD\
-\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x02\x9bID\
-AT8\xcbc\x98:c\x1e#:\xe6\xe5d\xcf\x17\
-\x12\x12\x16\xc4&\x87\x8e\x19\xb0\x09v\xc6\x18\xb7x\xea\
-\x8b\xcd\x9c=o\x09i\x06,X4\x8f\xf1\xd2\xa5\x99\
-L\xb9\xa1\x16\xc5\xc7\xbb\xed\xff\x0a\xf2\xb2;M\x9f\xb5\
-\x908\x03\x16,\x9a\xcb\xf8\xe0\xde\x04\x96\xc7\x0f\xdby\
-\xe7MO\xc8\xfbv\xbf\xe5\xff\xb4\x0a\x9b\x9by\x851\
-\xdc\xd3g-\x82k\x983\x7f)\xe3l F1`\
-\xca\xf4y\x8c\xd7\xaeMg\x02i~\xf2\xa8Y\xe1\xd2\
-\xa5\xfa\xdc_\x9f7\xfd\xffx\xbf\xea\x7fE\x96m\x97\
-\x81\x81>'33\x8b\xa5\x9e8gi\xb8\x9e\xc0f\
-&&\xa6D\x14\x03&N\x9d\xc7x\xef\xdeD\x96'\
-\x0f[E\x9f>j\xd6\xbdu\xb3\x22\xef\xd7\xb7=\xff\
-\xbe\x7f\xe8\xfb\x7f~S\xcc\xef\x05\xc5\xea\x9fNOQ\
-\xfb\x7f\xbaM\xed\xbf\x87\x1a\xefn5-\x1dV\x14\x03\
-f\xcf[\xce\xa8\xa4\xa9![W\xed\x9b}\xefJ\xcb\
-\xcew\xaf&\x7f\xfa\xfee\xc9\xff\xef\x1f\xfa\xff\xbf\xbf\
-\x95\xf2\xff\xc9^\x83\xffW\x17\xaa\xfdot\x12{\xc4\
-\xc7\xc7/\x8e\x12\x06Y\xb9\x85\xcc\xb2\x82\x1c\xf3\xa7D\
-\xab\xfe\xfa\xbe%\xe2\xff\x8fgm\xff\x7f|\x9a\x08\xd6\
-\xfc\xf5Y\xcd\xff\xd7\xe7\xfc\xfe\xdf\xde\xa0\xf5\x7fE\x94\
-\xecO\x16\x16V\xebi3\xe7\xa3\x06\xe2\xe4is\x18\
-\xe7/Z\xc1\xc8\xce\xc1i\x10\xe5\xa8\xd2\xbe\xa6\xcd\xe7\
-\xf6\xc3m\x99\xff~^(\xf8\xff\xe1j\xe0\xff\x17G\
-L\xff\xdf\xdf\xae\xf6\xbf\xc2]\xf4\xba\x9a\x9a\x06\x1bF\
-,\x00\x01#2\xe6\xe6\xe6`Q\xd6\x941_\xde\xe4\
-q\xfb\xc3y\xd3\xff\x1b\x8aT\xff\xbf?`\xff\xff\xdc\
-l\xe5\xff\xea\xc2\x1c9\xd3g-\xc0i\x00\x13\x10\x8b\
-\x03\xb1?\x10\xe7\xf5\x16\xd8\xde\xf8p\xc6\xe4\xbf\x9d<\
-\xf7t\x7fC\xe9\x95\xb7\x96\xd9\xff\x9b\x9c,\xfdN@\
-@H\x14\x9b\x01LP,\x06\xc4\x19@|\x22;\xca\
-\xf0\xe7\xe9\xf9\x06\xff\x81\xec\x03@\xbc^\x82\x9f\xf3\xf6\
-\x9e\x1a\xf3_az\x823P\xd2\x01T#3\x10\x0b\
-\x00\xb1\x1e\x10\x17\x03\xf1\xd1\xa8@\xdd\x9f\xad\x09J \
-\x03\xfe\x00\xf17 >\x0f\xb4kf\xb9\xa7\xea\x0d}\
-i>#d\x03\xb4\x808\x08\x88k\x81x\x09\xd4\xc6\
-\x1b\x11a\x06\xdf\xec\x94\xb8\xdf\x03\xd9;\x81x\x1a\x10\
-\xf7\x82\xd4\xb0\xb2\xb1G\xf9\xda\x99:L\x9d9\x9f\x09\
-f\x80\x0e\x10;\x02\xb1\x13\x10[\x00\xb1\x01\x10\x07\x06\
-{h\x9c\x02\xd2k\xa0\x86\x8b\x001\x17\x10\xf3\x80\xb0\
-\x88\x88(\xcb,hFC\xf6\x02\x08\xb3\x001+\x10\
-K122\xe4\x01i7 \x96\x01b6\xa88\x0b\
-T=cW\xef$\xb0\x01\x00\xceo{\xf5UL\xf0\
-\xac\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x02e\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 width=\x2224\
+\x22 height=\x2224\x22 fi\
+ll=\x22#0d0d0d\x22><pa\
+th d=\x22M8.41 18.1\
+38L12 15.845l3.5\
+9 2.323-.94-4.34\
+5 3.162-2.897-4.\
+159-.392L12 6.43\
+l-1.652 4.073-4.\
+159.392 3.162 2.\
+927-.94 4.315zm-\
+1.346 3.696a1.04\
+ 1.04 0 0 1-1.56\
+7-1.104l1.318-6.\
+033-4.476-4.11c-\
+.665-.611-.293-1\
+.726.604-1.808l5\
+.866-.539 2.229-\
+5.587c.348-.872 \
+1.575-.872 1.923\
+ 0l2.229 5.587 5\
+.866.539c.897.08\
+2 1.269 1.197.60\
+4 1.808l-4.476 4\
+.11 1.318 6.033a\
+1.04 1.04 0 0 1-\
+1.567 1.104L12 1\
+8.681l-4.935 3.1\
+53z\x22/><path d=\x22M\
+12 5l-1.796 5.52\
+8H4.392l4.702 3.\
+416-1.796 5.528L\
+12 16.056l4.702 \
+3.416-1.796-5.52\
+8 4.702-3.416h-5\
+.812L12 5z\x22/></s\
+vg>\x0a\
+\x00\x00\x01\xfa\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 width=\x2224\
+\x22 height=\x2224\x22 fi\
+ll=\x22none\x22><path \
+d=\x22M8.41 18.138L\
+12 15.845l3.59 2\
+.323-.94-4.345 3\
+.162-2.897-4.159\
+-.392L12 6.43l-1\
+.652 4.073-4.159\
+.392 3.162 2.927\
+-.94 4.315zm-1.3\
+46 3.696a1.04 1.\
+04 0 0 1-1.567-1\
+.104l1.318-6.033\
+-4.476-4.11c-.66\
+5-.611-.293-1.72\
+6.604-1.808l5.86\
+6-.539 2.229-5.5\
+87c.348-.872 1.5\
+75-.872 1.923 0l\
+2.229 5.587 5.86\
+6.539c.897.082 1\
+.269 1.197.604 1\
+.808l-4.476 4.11\
+ 1.318 6.033a1.0\
+4 1.04 0 0 1-1.5\
+67 1.104L12 18.6\
+81l-4.935 3.153z\
+\x22 fill=\x22#0d0d0d\x22\
+/></svg>\x0a\
"
qt_resource_name = b"\
@@ -64,19 +88,25 @@ qt_resource_name = b"\
\x07\x03}\xc3\
\x00i\
\x00m\x00a\x00g\x00e\x00s\
+\x00\x0f\
+\x02\x11 \x07\
+\x00s\
+\x00t\x00a\x00r\x00-\x00f\x00i\x00l\x00l\x00e\x00d\x00.\x00s\x00v\x00g\
\x00\x08\
-\x0a\x85X\x07\
+\x0a\x85U\x87\
\x00s\
-\x00t\x00a\x00r\x00.\x00p\x00n\x00g\
+\x00t\x00a\x00r\x00.\x00s\x00v\x00g\
"
qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01z\xe7\xee&\xfd\
+\x00\x00\x01\x8c\xd4\xc79\xcf\
+\x00\x00\x006\x00\x00\x00\x00\x00\x01\x00\x00\x02i\
+\x00\x00\x01\x8c\xd4\xc79\xcf\
"
def qInitResources():
diff --git a/examples/sql/books/ui_bookwindow.py b/examples/sql/books/ui_bookwindow.py
index 175891577..52795217e 100644
--- a/examples/sql/books/ui_bookwindow.py
+++ b/examples/sql/books/ui_bookwindow.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'bookwindow.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.3
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
diff --git a/examples/statemachine/eventtrans/eventtrans.py b/examples/statemachine/eventtrans/eventtrans.py
deleted file mode 100644
index b1c74a21f..000000000
--- a/examples/statemachine/eventtrans/eventtrans.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import sys
-
-from PySide6.QtCore import QEvent, QRect, Qt
-from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
-from PySide6.QtStateMachine import QEventTransition, QState, QStateMachine
-
-
-class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
- button = QPushButton(self)
- button.setGeometry(QRect(100, 100, 100, 100))
-
- machine = QStateMachine(self)
- s1 = QState()
- s1.assignProperty(button, 'text', 'Outside')
- s2 = QState()
- s2.assignProperty(button, 'text', 'Inside')
-
- enter_transition = QEventTransition(button, QEvent.Enter)
- enter_transition.setTargetState(s2)
- s1.addTransition(enter_transition)
-
- leave_transition = QEventTransition(button, QEvent.Leave)
- leave_transition.setTargetState(s1)
- s2.addTransition(leave_transition)
-
- s3 = QState()
- s3.assignProperty(button, 'text', 'Pressing...')
-
- press_transition = QEventTransition(button, QEvent.MouseButtonPress)
- press_transition.setTargetState(s3)
- s2.addTransition(press_transition)
-
- release_transition = QEventTransition(button, QEvent.MouseButtonRelease)
- release_transition.setTargetState(s2)
- s3.addTransition(release_transition)
-
- machine.addState(s1)
- machine.addState(s2)
- machine.addState(s3)
-
- machine.setInitialState(s1)
- machine.start()
-
- self.setCentralWidget(button)
- self.show()
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- main_win = MainWindow()
- sys.exit(app.exec())
diff --git a/examples/statemachine/eventtrans/eventtrans.pyproject b/examples/statemachine/eventtrans/eventtrans.pyproject
deleted file mode 100644
index b2f660a8f..000000000
--- a/examples/statemachine/eventtrans/eventtrans.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["eventtrans.py"]
-}
diff --git a/examples/statemachine/factstates/factstates.py b/examples/statemachine/factstates/factstates.py
deleted file mode 100644
index aacf8f19b..000000000
--- a/examples/statemachine/factstates/factstates.py
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import sys
-
-from PySide6.QtCore import QCoreApplication, QObject, Qt, Property, Signal
-from PySide6.QtStateMachine import (QFinalState, QSignalTransition, QState,
- QStateMachine)
-
-
-class Factorial(QObject):
- x_changed = Signal(int)
-
- def __init__(self):
- super().__init__()
- self.xval = -1
- self.facval = 1
-
- def get_x(self):
- return self.xval
-
- def set_x(self, x):
- if self.xval == x:
- return
- self.xval = x
- self.x_changed.emit(x)
- x = Property(int, get_x, set_x)
-
- def get_fact(self):
- return self.facval
-
- def set_fact(self, fac):
- self.facval = fac
-
- fac = Property(int, get_fact, set_fact)
-
-
-class FactorialLoopTransition(QSignalTransition):
- def __init__(self, fact):
- super().__init__(fact.x_changed)
- self.fact = fact
-
- def eventTest(self, e):
- if not super(FactorialLoopTransition, self).eventTest(e):
- return False
- return e.arguments()[0] > 1
-
- def onTransition(self, e):
- x = e.arguments()[0]
- fac = self.fact.fac
- self.fact.fac = x * fac
- self.fact.x = x - 1
-
-
-class FactorialDoneTransition(QSignalTransition):
- def __init__(self, fact):
- super().__init__(fact.x_changed)
- self.fact = fact
-
- def eventTest(self, e):
- if not super(FactorialDoneTransition, self).eventTest(e):
- return False
- return e.arguments()[0] <= 1
-
- def onTransition(self, e):
- print(self.fact.fac)
-
-
-if __name__ == '__main__':
- app = QCoreApplication(sys.argv)
- factorial = Factorial()
- machine = QStateMachine()
-
- compute = QState(machine)
- compute.assignProperty(factorial, 'fac', 1)
- compute.assignProperty(factorial, 'x', 6)
- compute.addTransition(FactorialLoopTransition(factorial))
-
- done = QFinalState(machine)
- done_transition = FactorialDoneTransition(factorial)
- done_transition.setTargetState(done)
- compute.addTransition(done_transition)
-
- machine.setInitialState(compute)
- machine.finished.connect(app.quit)
- machine.start()
-
- sys.exit(app.exec())
diff --git a/examples/statemachine/factstates/factstates.pyproject b/examples/statemachine/factstates/factstates.pyproject
deleted file mode 100644
index 751a5005b..000000000
--- a/examples/statemachine/factstates/factstates.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["factstates.py"]
-}
diff --git a/examples/statemachine/moveblocks/doc/moveblocks.png b/examples/statemachine/moveblocks/doc/moveblocks.png
new file mode 100644
index 000000000..56353d181
--- /dev/null
+++ b/examples/statemachine/moveblocks/doc/moveblocks.png
Binary files differ
diff --git a/examples/statemachine/moveblocks/doc/moveblocks.rst b/examples/statemachine/moveblocks/doc/moveblocks.rst
new file mode 100644
index 000000000..4cffd3b85
--- /dev/null
+++ b/examples/statemachine/moveblocks/doc/moveblocks.rst
@@ -0,0 +1,10 @@
+Move Blocks Example
+===================
+
+The Move Blocks example shows how to animate items in a QGraphicsScene
+using a QStateMachine with a custom transition.
+
+
+.. image:: moveblocks.png
+ :width: 400
+ :alt: Move Blocks Screenshot
diff --git a/examples/statemachine/moveblocks/moveblocks.py b/examples/statemachine/moveblocks/moveblocks.py
new file mode 100644
index 000000000..0d52c5b00
--- /dev/null
+++ b/examples/statemachine/moveblocks/moveblocks.py
@@ -0,0 +1,222 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the examples/statemachine/moveblocks example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCore import (QAbstractAnimation, QEasingCurve, QEvent, QObject,
+ QParallelAnimationGroup, QPropertyAnimation,
+ QRandomGenerator, QRect, QSequentialAnimationGroup,
+ Qt, QTimer)
+from PySide6.QtGui import QPainter, QResizeEvent
+from PySide6.QtWidgets import (QApplication, QGraphicsView, QGraphicsScene,
+ QGraphicsWidget, QStyleOptionGraphicsItem,
+ QWidget)
+from PySide6.QtStateMachine import (QAbstractTransition, QState, QStateMachine)
+
+
+StateSwitchType = QEvent.Type(QEvent.Type.User + 256)
+
+
+class StateSwitchEvent(QEvent):
+ def __init__(self, rand: int = 0) -> None:
+ super().__init__(StateSwitchType)
+ self._rand = rand
+
+ def rand(self) -> int:
+ return self._rand
+
+
+class QGraphicsRectWidget(QGraphicsWidget):
+ def __init__(self):
+ super().__init__()
+
+ def paint(self, painter: QPainter,
+ option: QStyleOptionGraphicsItem, widget: QWidget | None = None):
+ painter.fillRect(self.rect(), Qt.blue)
+
+
+class StateSwitchTransition(QAbstractTransition):
+ def __init__(self, rand: int = 0) -> None:
+ super().__init__()
+ self._rand = rand
+
+ def eventTest(self, event: QEvent) -> bool:
+ return event.type() == StateSwitchType and event.rand() == self._rand
+
+ def onTransition(self, event: QEvent):
+ pass
+
+
+class StateSwitcher(QState):
+ def __init__(self, machine: QStateMachine) -> None:
+ super().__init__(machine)
+ self._state_count = 0
+ self._last_index = 0
+ self.rg = QRandomGenerator.global_()
+
+ def onEntry(self, event: QEvent) -> None:
+ while True:
+ n = int(self.rg.bounded(self._state_count)) + 1
+ if n != self._last_index:
+ break
+ self._last_index = n
+ self.event = StateSwitchEvent(n)
+ self.machine().postEvent(self.event)
+
+ def onExit(self, event: QEvent) -> None:
+ pass
+
+ def addState(self, state: QState, animation: QAbstractAnimation) -> None:
+ self._state_count += 1
+ trans = StateSwitchTransition(self._state_count)
+ trans.setTargetState(state)
+ self.addTransition(trans)
+ trans.addAnimation(animation)
+
+
+def createGeometryState(w1: QObject, rect1: QRect,
+ w2: QObject, rect2: QRect,
+ w3: QObject, rect3: QRect,
+ w4: QObject, rect4: QRect, parent: QState) -> QState:
+ result = QState(parent)
+ result.assignProperty(w1, "geometry", rect1)
+ result.assignProperty(w2, "geometry", rect2)
+ result.assignProperty(w3, "geometry", rect3)
+ result.assignProperty(w4, "geometry", rect4)
+
+ return result
+
+
+class GraphicsView(QGraphicsView):
+ def __init__(self, scene: QGraphicsScene, parent: QWidget | None = None):
+ super().__init__(scene, parent)
+
+ def resizeEvent(self, event: QResizeEvent) -> None:
+ self.fitInView(self.sceneRect())
+ super().resizeEvent(event)
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+
+ button1, button2 = QGraphicsRectWidget(), QGraphicsRectWidget()
+ button3, button4 = QGraphicsRectWidget(), QGraphicsRectWidget()
+
+ button2.setZValue(1)
+ button3.setZValue(2)
+ button4.setZValue(3)
+
+ scene = QGraphicsScene(0, 0, 300, 300)
+ scene.setBackgroundBrush(Qt.black)
+ scene.addItem(button1)
+ scene.addItem(button2)
+ scene.addItem(button3)
+ scene.addItem(button4)
+
+ window = GraphicsView(scene)
+ window.setFrameStyle(0)
+ window.setAlignment(Qt.AlignLeft | Qt.AlignTop)
+ window.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
+ window.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
+
+ machine = QStateMachine()
+
+ group = QState()
+ group.setObjectName("group")
+ timer = QTimer()
+ timer.setInterval(1250)
+ timer.setSingleShot(True)
+
+ group.entered.connect(timer.start)
+
+ state1, state2, state3 = QState(), QState(), QState()
+ state4, state5, state6 = QState(), QState(), QState()
+ state7 = QState()
+
+ state1 = createGeometryState(button1, QRect(100, 0, 50, 50),
+ button2, QRect(150, 0, 50, 50),
+ button3, QRect(200, 0, 50, 50),
+ button4, QRect(250, 0, 50, 50),
+ group)
+ state2 = createGeometryState(button1, QRect(250, 100, 50, 50),
+ button2, QRect(250, 150, 50, 50),
+ button3, QRect(250, 200, 50, 50),
+ button4, QRect(250, 250, 50, 50),
+ group)
+ state3 = createGeometryState(button1, QRect(150, 250, 50, 50),
+ button2, QRect(100, 250, 50, 50),
+ button3, QRect(50, 250, 50, 50),
+ button4, QRect(0, 250, 50, 50),
+ group)
+ state4 = createGeometryState(button1, QRect(0, 150, 50, 50),
+ button2, QRect(0, 100, 50, 50),
+ button3, QRect(0, 50, 50, 50),
+ button4, QRect(0, 0, 50, 50),
+ group)
+ state5 = createGeometryState(button1, QRect(100, 100, 50, 50),
+ button2, QRect(150, 100, 50, 50),
+ button3, QRect(100, 150, 50, 50),
+ button4, QRect(150, 150, 50, 50),
+ group)
+ state6 = createGeometryState(button1, QRect(50, 50, 50, 50),
+ button2, QRect(200, 50, 50, 50),
+ button3, QRect(50, 200, 50, 50),
+ button4, QRect(200, 200, 50, 50),
+ group)
+ state7 = createGeometryState(button1, QRect(0, 0, 50, 50),
+ button2, QRect(250, 0, 50, 50),
+ button3, QRect(0, 250, 50, 50),
+ button4, QRect(250, 250, 50, 50),
+ group)
+ group.setInitialState(state1)
+
+ animation_group = QParallelAnimationGroup()
+ sub_group = QSequentialAnimationGroup()
+
+ anim = QPropertyAnimation(button4, b"geometry")
+ anim.setDuration(1000)
+ anim.setEasingCurve(QEasingCurve.OutElastic)
+ animation_group.addAnimation(anim)
+
+ sub_group = QSequentialAnimationGroup(animation_group)
+ sub_group.addPause(100)
+ anim = QPropertyAnimation(button3, b"geometry")
+ anim.setDuration(1000)
+ anim.setEasingCurve(QEasingCurve.OutElastic)
+ sub_group.addAnimation(anim)
+
+ sub_group = QSequentialAnimationGroup(animation_group)
+ sub_group.addPause(150)
+ anim = QPropertyAnimation(button2, b"geometry")
+ anim.setDuration(1000)
+ anim.setEasingCurve(QEasingCurve.OutElastic)
+ sub_group.addAnimation(anim)
+
+ sub_group = QSequentialAnimationGroup(animation_group)
+ sub_group.addPause(200)
+ anim = QPropertyAnimation(button1, b"geometry")
+ anim.setDuration(1000)
+ anim.setEasingCurve(QEasingCurve.OutElastic)
+ sub_group.addAnimation(anim)
+
+ state_switcher = StateSwitcher(machine)
+ state_switcher.setObjectName("state_switcher")
+ group.addTransition(timer.timeout, state_switcher)
+ state_switcher.addState(state1, animation_group)
+ state_switcher.addState(state2, animation_group)
+ state_switcher.addState(state3, animation_group)
+ state_switcher.addState(state4, animation_group)
+ state_switcher.addState(state5, animation_group)
+ state_switcher.addState(state6, animation_group)
+ state_switcher.addState(state7, animation_group)
+
+ machine.addState(group)
+ machine.setInitialState(group)
+ machine.start()
+
+ window.resize(300, 300)
+ window.show()
+
+ sys.exit(app.exec())
diff --git a/examples/statemachine/moveblocks/moveblocks.pyproject b/examples/statemachine/moveblocks/moveblocks.pyproject
new file mode 100644
index 000000000..8c3eff508
--- /dev/null
+++ b/examples/statemachine/moveblocks/moveblocks.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["moveblocks.py"]
+}
diff --git a/examples/statemachine/rogue/rogue.py b/examples/statemachine/rogue/rogue.py
index a43d4d1bc..f0ce9c28c 100644
--- a/examples/statemachine/rogue/rogue.py
+++ b/examples/statemachine/rogue/rogue.py
@@ -18,11 +18,11 @@ class MovementTransition(QEventTransition):
self.window = window
def eventTest(self, event):
- if (event.type() == QEvent.StateMachineWrapped and
- event.event().type() == QEvent.KeyPress):
+ if (event.type() == QEvent.StateMachineWrapped
+ and event.event().type() == QEvent.KeyPress):
key = event.event().key()
- return (key == Qt.Key_2 or key == Qt.Key_8 or
- key == Qt.Key_6 or key == Qt.Key_4)
+ return (key == Qt.Key_2 or key == Qt.Key_8
+ or key == Qt.Key_6 or key == Qt.Key_4)
return False
def onTransition(self, event):
@@ -74,8 +74,8 @@ class MainWindow(QMainWindow):
for x in range(self.width):
column = []
for y in range(self.height):
- if (x == 0 or x == self.width - 1 or y == 0 or
- y == self.height - 1 or generator.bounded(0, 40) == 0):
+ if (x == 0 or x == self.width - 1 or y == 0
+ or y == self.height - 1 or generator.bounded(0, 40) == 0):
column.append('#')
else:
column.append('.')
@@ -113,7 +113,7 @@ class MainWindow(QMainWindow):
input_state.addTransition(quit_transition)
machine.setInitialState(input_state)
- machine.finished.connect(qApp.quit)
+ machine.finished.connect(qApp.quit) # noqa: F821
machine.start()
def sizeHint(self):
diff --git a/examples/statemachine/trafficlight/doc/trafficlight.png b/examples/statemachine/trafficlight/doc/trafficlight.png
index ec88a8e8b..24d40beec 100644
--- a/examples/statemachine/trafficlight/doc/trafficlight.png
+++ b/examples/statemachine/trafficlight/doc/trafficlight.png
Binary files differ
diff --git a/examples/statemachine/twowaybutton/twowaybutton.py b/examples/statemachine/twowaybutton/twowaybutton.py
deleted file mode 100644
index 35a582f93..000000000
--- a/examples/statemachine/twowaybutton/twowaybutton.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import sys
-
-from PySide6.QtWidgets import QApplication, QPushButton
-from PySide6.QtStateMachine import QState, QStateMachine
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- button = QPushButton()
- machine = QStateMachine()
-
- off = QState()
- off.assignProperty(button, 'text', 'Off')
- off.setObjectName('off')
-
- on = QState()
- on.setObjectName('on')
- on.assignProperty(button, 'text', 'On')
-
- off.addTransition(button.clicked, on)
- on.addTransition(button.clicked, off)
-
- machine.addState(off)
- machine.addState(on)
- machine.setInitialState(off)
- machine.start()
- button.resize(100, 50)
- button.show()
- sys.exit(app.exec())
diff --git a/examples/statemachine/twowaybutton/twowaybutton.pyproject b/examples/statemachine/twowaybutton/twowaybutton.pyproject
deleted file mode 100644
index 223a51e32..000000000
--- a/examples/statemachine/twowaybutton/twowaybutton.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["twowaybutton.py"]
-}
diff --git a/examples/texttospeech/hello_speak/hello_speak.py b/examples/texttospeech/hello_speak/hello_speak.py
deleted file mode 100644
index d7612f362..000000000
--- a/examples/texttospeech/hello_speak/hello_speak.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-"""PySide6 QTextToSpeech example"""
-
-import sys
-from PySide6.QtCore import Qt, Slot
-from PySide6.QtWidgets import (QApplication, QComboBox, QFormLayout,
- QHBoxLayout, QLineEdit, QMainWindow, QPushButton, QSlider, QWidget)
-
-from PySide6.QtTextToSpeech import QTextToSpeech
-
-
-class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
-
- centralWidget = QWidget()
- self.setCentralWidget(centralWidget)
- layout = QFormLayout(centralWidget)
-
- textLayout = QHBoxLayout()
- self.text = QLineEdit('Hello, PySide6')
- self.text.setClearButtonEnabled(True)
- textLayout.addWidget(self.text)
- self.sayButton = QPushButton('Say')
- textLayout.addWidget(self.sayButton)
- self.text.returnPressed.connect(self.sayButton.animateClick)
- self.sayButton.clicked.connect(self.say)
- layout.addRow('Text:', textLayout)
-
- self.voiceCombo = QComboBox()
- layout.addRow('Voice:', self.voiceCombo)
-
- self.volumeSlider = QSlider(Qt.Horizontal)
- self.volumeSlider.setMinimum(0)
- self.volumeSlider.setMaximum(100)
- self.volumeSlider.setValue(100)
- layout.addRow('Volume:', self.volumeSlider)
-
- self.engine = None
- engineNames = QTextToSpeech.availableEngines()
- if len(engineNames) > 0:
- engineName = engineNames[0]
- self.engine = QTextToSpeech(engineName)
- self.engine.stateChanged.connect(self.stateChanged)
- self.setWindowTitle(f'QTextToSpeech Example ({engineName})')
- self.voices = []
- for voice in self.engine.availableVoices():
- self.voices.append(voice)
- self.voiceCombo.addItem(voice.name())
- else:
- self.setWindowTitle('QTextToSpeech Example (no engines available)')
- self.sayButton.setEnabled(False)
-
- @Slot()
- def say(self):
- self.sayButton.setEnabled(False)
- self.engine.setVoice(self.voices[self.voiceCombo.currentIndex()])
- self.engine.setVolume(float(self.volumeSlider.value()) / 100)
- self.engine.say(self.text.text())
-
- @Slot("QTextToSpeech::State")
- def stateChanged(self, state):
- if (state == QTextToSpeech.State.Ready):
- self.sayButton.setEnabled(True)
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- mainWin = MainWindow()
- mainWin.show()
- sys.exit(app.exec())
diff --git a/examples/texttospeech/hello_speak/hello_speak.pyproject b/examples/texttospeech/hello_speak/hello_speak.pyproject
deleted file mode 100644
index 15b9b8529..000000000
--- a/examples/texttospeech/hello_speak/hello_speak.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["hello_speak.py"]
-}
diff --git a/examples/uitools/uiloader/uiloader.py b/examples/uitools/uiloader/uiloader.py
index a7bcf2506..265c93837 100644
--- a/examples/uitools/uiloader/uiloader.py
+++ b/examples/uitools/uiloader/uiloader.py
@@ -7,8 +7,8 @@
from argparse import ArgumentParser, RawTextHelpFormatter
import sys
-from PySide6.QtCore import Qt, QFile, QIODevice
-from PySide6.QtWidgets import QApplication, QWidget
+from PySide6.QtCore import QFile, QIODevice
+from PySide6.QtWidgets import QApplication
from PySide6.QtUiTools import QUiLoader
diff --git a/examples/utils/pyside_config.py b/examples/utils/pyside_config.py
index feb56ed1c..d3067eec1 100644
--- a/examples/utils/pyside_config.py
+++ b/examples/utils/pyside_config.py
@@ -78,10 +78,12 @@ options.append(("--shiboken-module-shared-libraries-cmake",
options.append(("--pyside-shared-libraries-qmake",
lambda: get_shared_libraries_qmake(Package.PYSIDE_MODULE), pyside_libs_error,
- "Print paths of f{PYSIDE_MODULE} shared libraries (.so's, .dylib's, .dll's) for qmake"))
+ "Print paths of f{PYSIDE_MODULE} shared libraries (.so's, .dylib's, .dll's) "
+ "for qmake"))
options.append(("--pyside-shared-libraries-cmake",
lambda: get_shared_libraries_cmake(Package.PYSIDE_MODULE), pyside_libs_error,
- f"Print paths of {PYSIDE_MODULE} shared libraries (.so's, .dylib's, .dll's) for cmake"))
+ f"Print paths of {PYSIDE_MODULE} shared libraries (.so's, .dylib's, .dll's) "
+ "for cmake"))
options_usage = ''
for i, (flag, _, _, description) in enumerate(options):
@@ -153,11 +155,11 @@ def link_option(lib):
# libraries when compiling the project
baseName = os.path.basename(lib)
link = ' -l'
- if sys.platform in ['linux', 'linux2']: # Linux: 'libfoo.so' -> '/absolute/path/libfoo.so'
+ if sys.platform in ['linux', 'linux2']: # Linux: 'libfoo.so' -> '/absolute/path/libfoo.so'
link = lib
- elif sys.platform in ['darwin']: # Darwin: 'libfoo.so' -> '-lfoo'
+ elif sys.platform in ['darwin']: # Darwin: 'libfoo.so' -> '-lfoo'
link += os.path.splitext(baseName[3:])[0]
- else: # Windows: 'libfoo.dll' -> 'libfoo.dll'
+ else: # Windows: 'libfoo.dll' -> 'libfoo.dll'
link += os.path.splitext(baseName)[0]
return link
@@ -194,7 +196,7 @@ def find_package_path(dir_name):
return None
-# Return version as "3.7"
+# Return version as "x.y" (e.g. 3.9, 3.12, etc)
def python_version():
return str(sys.version_info[0]) + '.' + str(sys.version_info[1])
@@ -212,7 +214,7 @@ def python_link_flags_qmake():
# e.g.: "Program Files" to "Progra~1"
for d in libdir.split("\\"):
if " " in d:
- libdir = libdir.replace(d, d.split(" ")[0][:-1]+"~1")
+ libdir = libdir.replace(d, d.split(" ")[0][:-1] + "~1")
lib_flags = flags['lib']
return f'-L{libdir} -l{lib_flags}'
elif sys.platform == 'darwin':
diff --git a/examples/webchannel/standalone/ui_dialog.py b/examples/webchannel/standalone/ui_dialog.py
index 866d2a2e4..36c2fe400 100644
--- a/examples/webchannel/standalone/ui_dialog.py
+++ b/examples/webchannel/standalone/ui_dialog.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'dialog.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.3
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
diff --git a/examples/webenginequick/nanobrowser/BrowserDialog.qml b/examples/webenginequick/nanobrowser/BrowserDialog.qml
index c155c3f35..7af347ec3 100644
--- a/examples/webenginequick/nanobrowser/BrowserDialog.qml
+++ b/examples/webenginequick/nanobrowser/BrowserDialog.qml
@@ -8,7 +8,7 @@ import QtWebEngine
Window {
id: window
property alias currentWebView: webView
- flags: Qt.Dialog | Qt.WindowStaysOnTopHint
+ flags: Qt.Dialog
width: 800
height: 600
visible: true
diff --git a/examples/webenginequick/nanobrowser/BrowserWindow.qml b/examples/webenginequick/nanobrowser/BrowserWindow.qml
index 7c2a21cd5..a517c5a51 100644
--- a/examples/webenginequick/nanobrowser/BrowserWindow.qml
+++ b/examples/webenginequick/nanobrowser/BrowserWindow.qml
@@ -1,7 +1,7 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-import Qt.labs.settings
+import QtCore
import QtQml
import QtQuick
import QtQuick.Controls
@@ -510,6 +510,8 @@ ApplicationWindow {
}
}
]
+ settings.localContentCanAccessRemoteUrls: true
+ settings.localContentCanAccessFileUrls: false
settings.autoLoadImages: appSettings.autoLoadImages
settings.javascriptEnabled: appSettings.javaScriptEnabled
settings.errorPageEnabled: appSettings.errorPageEnabled
@@ -557,13 +559,6 @@ ApplicationWindow {
request.accept();
}
- onQuotaRequested: function(request) {
- if (request.requestedSize <= 5 * 1024 * 1024)
- request.accept();
- else
- request.reject();
- }
-
onRegisterProtocolHandlerRequested: function(request) {
console.log("accepting registerProtocolHandler request for "
+ request.scheme + " from " + request.origin);
@@ -608,6 +603,12 @@ ApplicationWindow {
findBar.reset();
}
+ onFeaturePermissionRequested: function(securityOrigin, feature) {
+ featurePermissionDialog.securityOrigin = securityOrigin;
+ featurePermissionDialog.feature = feature;
+ featurePermissionDialog.visible = true;
+ }
+
Timer {
id: reloadTimer
interval: 0
@@ -646,22 +647,21 @@ ApplicationWindow {
Dialog {
id: sslDialog
anchors.centerIn: parent
- contentWidth: Math.max(mainText.width, detailedText.width)
- contentHeight: mainText.height + detailedText.height
+ contentWidth: Math.max(mainTextForSSLDialog.width, detailedTextForSSLDialog.width)
+ contentHeight: mainTextForSSLDialog.height + detailedTextForSSLDialog.height
property var certErrors: []
// fixme: icon!
// icon: StandardIcon.Warning
standardButtons: Dialog.No | Dialog.Yes
title: "Server's certificate not trusted"
contentItem: Item {
- id: textContentItem
Label {
- id: mainText
+ id: mainTextForSSLDialog
text: "Do you wish to continue?"
}
Text {
- id: detailedText
- anchors.top: mainText.bottom
+ id: detailedTextForSSLDialog
+ anchors.top: mainTextForSSLDialog.bottom
text: "If you wish so, you may continue with an unverified certificate.\n" +
"Accepting an unverified certificate means\n" +
"you may not be connected with the host you tried to connect to.\n" +
@@ -687,6 +687,68 @@ ApplicationWindow {
visible = certErrors.length > 0
}
}
+ Dialog {
+ id: featurePermissionDialog
+ anchors.centerIn: parent
+ width: Math.min(browserWindow.width, browserWindow.height) / 3 * 2
+ contentWidth: mainTextForPermissionDialog.width
+ contentHeight: mainTextForPermissionDialog.height
+ standardButtons: Dialog.No | Dialog.Yes
+ title: "Permission Request"
+
+ property var feature;
+ property url securityOrigin;
+
+ contentItem: Item {
+ Label {
+ id: mainTextForPermissionDialog
+ text: featurePermissionDialog.questionForFeature()
+ }
+ }
+
+ onAccepted: currentWebView && currentWebView.grantFeaturePermission(securityOrigin, feature, true)
+ onRejected: currentWebView && currentWebView.grantFeaturePermission(securityOrigin, feature, false)
+ onVisibleChanged: {
+ if (visible)
+ width = contentWidth + 20;
+ }
+
+ function questionForFeature() {
+ var question = "Allow " + securityOrigin + " to "
+
+ switch (feature) {
+ case WebEngineView.Geolocation:
+ question += "access your location information?";
+ break;
+ case WebEngineView.MediaAudioCapture:
+ question += "access your microphone?";
+ break;
+ case WebEngineView.MediaVideoCapture:
+ question += "access your webcam?";
+ break;
+ case WebEngineView.MediaVideoCapture:
+ question += "access your microphone and webcam?";
+ break;
+ case WebEngineView.MouseLock:
+ question += "lock your mouse cursor?";
+ break;
+ case WebEngineView.DesktopVideoCapture:
+ question += "capture video of your desktop?";
+ break;
+ case WebEngineView.DesktopAudioVideoCapture:
+ question += "capture audio and video of your desktop?";
+ break;
+ case WebEngineView.Notifications:
+ question += "show notification on your desktop?";
+ break;
+ default:
+ question += "access unknown or unsupported feature [" + feature + "] ?";
+ break;
+ }
+
+ return question;
+ }
+ }
FullScreenNotification {
id: fullScreenNotification
diff --git a/examples/webenginequick/nanobrowser/quicknanobrowser.py b/examples/webenginequick/nanobrowser/quicknanobrowser.py
index 9cd3799ac..aee79c2aa 100644
--- a/examples/webenginequick/nanobrowser/quicknanobrowser.py
+++ b/examples/webenginequick/nanobrowser/quicknanobrowser.py
@@ -14,7 +14,7 @@ from PySide6.QtQml import QQmlApplicationEngine, QmlElement, QmlSingleton
from PySide6.QtGui import QGuiApplication
from PySide6.QtWebEngineQuick import QtWebEngineQuick
-import rc_resources
+import rc_resources # noqa: F401
# To be used on the @QmlElement decorator
@@ -40,20 +40,25 @@ class Utils(QObject):
if __name__ == '__main__':
- QCoreApplication.setApplicationName("Quick Nano Browser");
- QCoreApplication.setOrganizationName("QtProject");
+ QCoreApplication.setApplicationName("Quick Nano Browser")
+ QCoreApplication.setOrganizationName("QtProject")
QtWebEngineQuick.initialize()
argument_parser = ArgumentParser(description="Quick Nano Browser",
formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("--single-process", "-s", action="store_true",
+ help="Run in single process mode (trouble shooting)")
argument_parser.add_argument("url", help="The URL to open",
nargs='?', type=str)
options = argument_parser.parse_args()
url = url_from_user_input(options.url) if options.url else QUrl("https://www.qt.io")
- app = QGuiApplication([])
+ app_args = sys.argv
+ if options.single_process:
+ app_args.extend(["--webEngineArgs", "--single-process"])
+ app = QGuiApplication(app_args)
engine = QQmlApplicationEngine()
qml_file = os.fspath(Path(__file__).resolve().parent / 'ApplicationRoot.qml')
engine.load(QUrl.fromLocalFile(qml_file))
diff --git a/examples/webenginewidgets/markdowneditor/main.py b/examples/webenginewidgets/markdowneditor/main.py
index f89aa97d7..4d787f0f0 100644
--- a/examples/webenginewidgets/markdowneditor/main.py
+++ b/examples/webenginewidgets/markdowneditor/main.py
@@ -9,7 +9,7 @@ from PySide6.QtCore import QCoreApplication
from PySide6.QtWidgets import QApplication
from mainwindow import MainWindow
-import rc_markdowneditor
+import rc_markdowneditor # noqa: F401
if __name__ == '__main__':
diff --git a/examples/webenginewidgets/markdowneditor/mainwindow.py b/examples/webenginewidgets/markdowneditor/mainwindow.py
index 3f18d29a5..6f74cf93d 100644
--- a/examples/webenginewidgets/markdowneditor/mainwindow.py
+++ b/examples/webenginewidgets/markdowneditor/mainwindow.py
@@ -77,7 +77,7 @@ class MainWindow(QMainWindow):
return
self.m_file_path = ''
- self._ui.editor.setPlainText(tr("## New document"))
+ self._ui.editor.setPlainText("## New document")
self._ui.editor.document().setModified(False)
@Slot()
@@ -105,18 +105,19 @@ class MainWindow(QMainWindow):
name = QDir.toNativeSeparators(self.m_file_path)
if not f.open(QIODevice.WriteOnly | QIODevice.Text):
error = f.errorString()
- QMessageBox.warning(self, windowTitle(),
+ QMessageBox.warning(self, self.windowTitle(),
f"Could not write to file {name}: {error}")
return
text = self._ui.editor.toPlainText()
f.write(bytes(text, encoding='utf8'))
f.close()
+ self._ui.editor.document().setModified(False)
self.statusBar().showMessage(f"Wrote {name}")
@Slot()
def onFileSaveAs(self):
dialog = QFileDialog(self)
- dialog.setWindowTitle("Open MarkDown File")
+ dialog.setWindowTitle("Save MarkDown File")
dialog.setMimeTypeFilters(["text/markdown"])
dialog.setAcceptMode(QFileDialog.AcceptSave)
dialog.setDefaultSuffix("md")
diff --git a/examples/webenginewidgets/markdowneditor/markdowneditor.pyproject b/examples/webenginewidgets/markdowneditor/markdowneditor.pyproject
index b10b12512..e18e05096 100644
--- a/examples/webenginewidgets/markdowneditor/markdowneditor.pyproject
+++ b/examples/webenginewidgets/markdowneditor/markdowneditor.pyproject
@@ -4,6 +4,5 @@
"mainwindow.py",
"mainwindow.ui",
"previewpage.py",
- "resources/markdowneditor.qrc",
- "ui_mainwindow.py"]
+ "resources/markdowneditor.qrc"]
}
diff --git a/examples/webenginewidgets/markdowneditor/resources/index.html b/examples/webenginewidgets/markdowneditor/resources/index.html
index 289a2110b..c8e30b49b 100644
--- a/examples/webenginewidgets/markdowneditor/resources/index.html
+++ b/examples/webenginewidgets/markdowneditor/resources/index.html
@@ -14,7 +14,7 @@
var placeholder = document.getElementById('placeholder');
var updateText = function(text) {
- placeholder.innerHTML = marked(text);
+ placeholder.innerHTML = marked.parse(text);
}
new QWebChannel(qt.webChannelTransport,
diff --git a/examples/webenginewidgets/markdowneditor/ui_mainwindow.py b/examples/webenginewidgets/markdowneditor/ui_mainwindow.py
index 0705ebfda..0be769119 100644
--- a/examples/webenginewidgets/markdowneditor/ui_mainwindow.py
+++ b/examples/webenginewidgets/markdowneditor/ui_mainwindow.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.3
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
diff --git a/examples/webenginewidgets/notifications/notificationpopup.py b/examples/webenginewidgets/notifications/notificationpopup.py
index bbea86102..e68ce3d6f 100644
--- a/examples/webenginewidgets/notifications/notificationpopup.py
+++ b/examples/webenginewidgets/notifications/notificationpopup.py
@@ -51,8 +51,8 @@ class NotificationPopup(QWidget):
self.notification.closed.connect(self.onClosed)
QTimer.singleShot(10000, lambda: self.onClosed())
- self.move(self.parentWidget().mapToGlobal(self.parentWidget().rect().bottomRight() -
- QPoint(self.width() + 10, self.height() + 10)))
+ self.move(self.parentWidget().mapToGlobal(self.parentWidget().rect().bottomRight()
+ - QPoint(self.width() + 10, self.height() + 10)))
@Slot()
def onClosed(self):
diff --git a/examples/webenginewidgets/simplebrowser/browser.py b/examples/webenginewidgets/simplebrowser/browser.py
new file mode 100644
index 000000000..a124ea084
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/browser.py
@@ -0,0 +1,69 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWebEngineCore import (qWebEngineChromiumVersion,
+ QWebEngineProfile, QWebEngineSettings)
+from PySide6.QtCore import QObject, Qt, Slot
+
+from downloadmanagerwidget import DownloadManagerWidget
+from browserwindow import BrowserWindow
+
+
+class Browser(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._windows = []
+ self._download_manager_widget = DownloadManagerWidget()
+ self._profile = None
+
+ # Quit application if the download manager window is the only
+ # remaining window
+ self._download_manager_widget.setAttribute(Qt.WA_QuitOnClose, False)
+
+ dp = QWebEngineProfile.defaultProfile()
+ dp.downloadRequested.connect(self._download_manager_widget.download_requested)
+
+ def create_hidden_window(self, offTheRecord=False):
+ if not offTheRecord and not self._profile:
+ name = "simplebrowser." + qWebEngineChromiumVersion()
+ self._profile = QWebEngineProfile(name)
+ s = self._profile.settings()
+ s.setAttribute(QWebEngineSettings.PluginsEnabled, True)
+ s.setAttribute(QWebEngineSettings.DnsPrefetchEnabled, True)
+ s.setAttribute(QWebEngineSettings.LocalContentCanAccessRemoteUrls, True)
+ s.setAttribute(QWebEngineSettings.LocalContentCanAccessFileUrls, False)
+ self._profile.downloadRequested.connect(
+ self._download_manager_widget.download_requested)
+
+ profile = QWebEngineProfile.defaultProfile() if offTheRecord else self._profile
+ main_window = BrowserWindow(self, profile, False)
+ self._windows.append(main_window)
+ main_window.about_to_close.connect(self._remove_window)
+ return main_window
+
+ def create_window(self, offTheRecord=False):
+ main_window = self.create_hidden_window(offTheRecord)
+ main_window.show()
+ return main_window
+
+ def create_dev_tools_window(self):
+ profile = (self._profile if self._profile
+ else QWebEngineProfile.defaultProfile())
+ main_window = BrowserWindow(self, profile, True)
+ self._windows.append(main_window)
+ main_window.about_to_close.connect(self._remove_window)
+ main_window.show()
+ return main_window
+
+ def windows(self):
+ return self._windows
+
+ def download_manager_widget(self):
+ return self._download_manager_widget
+
+ @Slot()
+ def _remove_window(self):
+ w = self.sender()
+ if w in self._windows:
+ del self._windows[self._windows.index(w)]
diff --git a/examples/webenginewidgets/simplebrowser/browserwindow.py b/examples/webenginewidgets/simplebrowser/browserwindow.py
new file mode 100644
index 000000000..43b811200
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/browserwindow.py
@@ -0,0 +1,500 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWebEngineCore import QWebEnginePage
+from PySide6.QtWidgets import (QMainWindow, QFileDialog,
+ QInputDialog, QLineEdit, QMenu, QMessageBox,
+ QProgressBar, QToolBar, QVBoxLayout, QWidget)
+from PySide6.QtGui import QAction, QGuiApplication, QIcon, QKeySequence
+from PySide6.QtCore import QUrl, Qt, Slot, Signal
+
+from tabwidget import TabWidget
+
+
+def remove_backspace(keys):
+ result = keys.copy()
+ # Chromium already handles navigate on backspace when appropriate.
+ for i, key in enumerate(result):
+ if (key[0].key() & Qt.Key_unknown) == Qt.Key_Backspace:
+ del result[i]
+ break
+ return result
+
+
+class BrowserWindow(QMainWindow):
+
+ about_to_close = Signal()
+
+ def __init__(self, browser, profile, forDevTools):
+ super().__init__()
+
+ self._progress_bar = None
+ self._history_back_action = None
+ self._history_forward_action = None
+ self._stop_action = None
+ self._reload_action = None
+ self._stop_reload_action = None
+ self._url_line_edit = None
+ self._fav_action = None
+ self._last_search = ""
+ self._toolbar = None
+
+ self._browser = browser
+ self._profile = profile
+ self._tab_widget = TabWidget(profile, self)
+
+ self._stop_icon = QIcon.fromTheme(QIcon.ThemeIcon.ProcessStop,
+ QIcon(":process-stop.png"))
+ self._reload_icon = QIcon.fromTheme(QIcon.ThemeIcon.ViewRefresh,
+ QIcon(":view-refresh.png"))
+
+ self.setAttribute(Qt.WA_DeleteOnClose, True)
+ self.setFocusPolicy(Qt.ClickFocus)
+
+ if not forDevTools:
+ self._progress_bar = QProgressBar(self)
+
+ self._toolbar = self.create_tool_bar()
+ self.addToolBar(self._toolbar)
+ mb = self.menuBar()
+ mb.addMenu(self.create_file_menu(self._tab_widget))
+ mb.addMenu(self.create_edit_menu())
+ mb.addMenu(self.create_view_menu())
+ mb.addMenu(self.create_window_menu(self._tab_widget))
+ mb.addMenu(self.create_help_menu())
+
+ central_widget = QWidget(self)
+ layout = QVBoxLayout(central_widget)
+ layout.setSpacing(0)
+ layout.setContentsMargins(0, 0, 0, 0)
+ if not forDevTools:
+ self.addToolBarBreak()
+
+ self._progress_bar.setMaximumHeight(1)
+ self._progress_bar.setTextVisible(False)
+ s = "QProgressBar {border: 0px} QProgressBar.chunk {background-color: #da4453}"
+ self._progress_bar.setStyleSheet(s)
+
+ layout.addWidget(self._progress_bar)
+
+ layout.addWidget(self._tab_widget)
+ self.setCentralWidget(central_widget)
+
+ self._tab_widget.title_changed.connect(self.handle_web_view_title_changed)
+ if not forDevTools:
+ self._tab_widget.link_hovered.connect(self._show_status_message)
+ self._tab_widget.load_progress.connect(self.handle_web_view_load_progress)
+ self._tab_widget.web_action_enabled_changed.connect(
+ self.handle_web_action_enabled_changed)
+ self._tab_widget.url_changed.connect(self._url_changed)
+ self._tab_widget.fav_icon_changed.connect(self._fav_action.setIcon)
+ self._tab_widget.dev_tools_requested.connect(self.handle_dev_tools_requested)
+ self._url_line_edit.returnPressed.connect(self._address_return_pressed)
+ self._tab_widget.find_text_finished.connect(self.handle_find_text_finished)
+
+ focus_url_line_edit_action = QAction(self)
+ self.addAction(focus_url_line_edit_action)
+ focus_url_line_edit_action.setShortcut(QKeySequence(Qt.CTRL | Qt.Key_L))
+ focus_url_line_edit_action.triggered.connect(self._focus_url_lineEdit)
+
+ self.handle_web_view_title_changed("")
+ self._tab_widget.create_tab()
+
+ @Slot(str)
+ def _show_status_message(self, m):
+ self.statusBar().showMessage(m)
+
+ @Slot(QUrl)
+ def _url_changed(self, url):
+ self._url_line_edit.setText(url.toDisplayString())
+
+ @Slot()
+ def _address_return_pressed(self):
+ url = QUrl.fromUserInput(self._url_line_edit.text())
+ self._tab_widget.set_url(url)
+
+ @Slot()
+ def _focus_url_lineEdit(self):
+ self._url_line_edit.setFocus(Qt.ShortcutFocusReason)
+
+ @Slot()
+ def _new_tab(self):
+ self._tab_widget.create_tab()
+ self._url_line_edit.setFocus()
+
+ @Slot()
+ def _close_current_tab(self):
+ self._tab_widget.close_tab(self._tab_widget.currentIndex())
+
+ @Slot()
+ def _update_close_action_text(self):
+ last_win = len(self._browser.windows()) == 1
+ self._close_action.setText("Quit" if last_win else "Close Window")
+
+ def sizeHint(self):
+ desktop_rect = QGuiApplication.primaryScreen().geometry()
+ return desktop_rect.size() * 0.9
+
+ def create_file_menu(self, tabWidget):
+ file_menu = QMenu("File")
+ file_menu.addAction("&New Window", QKeySequence.New,
+ self.handle_new_window_triggered)
+ file_menu.addAction("New &Incognito Window",
+ self.handle_new_incognito_window_triggered)
+
+ new_tab_action = QAction("New Tab", self)
+ new_tab_action.setShortcuts(QKeySequence.AddTab)
+ new_tab_action.triggered.connect(self._new_tab)
+ file_menu.addAction(new_tab_action)
+
+ file_menu.addAction("&Open File...", QKeySequence.Open,
+ self.handle_file_open_triggered)
+ file_menu.addSeparator()
+
+ close_tab_action = QAction("Close Tab", self)
+ close_tab_action.setShortcuts(QKeySequence.Close)
+ close_tab_action.triggered.connect(self._close_current_tab)
+ file_menu.addAction(close_tab_action)
+
+ self._close_action = QAction("Quit", self)
+ self._close_action.setShortcut(QKeySequence(Qt.CTRL | Qt.Key_Q))
+ self._close_action.triggered.connect(self.close)
+ file_menu.addAction(self._close_action)
+
+ file_menu.aboutToShow.connect(self._update_close_action_text)
+ return file_menu
+
+ @Slot()
+ def _find_next(self):
+ tab = self.current_tab()
+ if tab and self._last_search:
+ tab.findText(self._last_search)
+
+ @Slot()
+ def _find_previous(self):
+ tab = self.current_tab()
+ if tab and self._last_search:
+ tab.findText(self._last_search, QWebEnginePage.FindBackward)
+
+ def create_edit_menu(self):
+ edit_menu = QMenu("Edit")
+ find_action = edit_menu.addAction("Find")
+ find_action.setShortcuts(QKeySequence.Find)
+ find_action.triggered.connect(self.handle_find_action_triggered)
+
+ find_next_action = edit_menu.addAction("Find Next")
+ find_next_action.setShortcut(QKeySequence.FindNext)
+ find_next_action.triggered.connect(self._find_next)
+
+ find_previous_action = edit_menu.addAction("Find Previous")
+ find_previous_action.setShortcut(QKeySequence.FindPrevious)
+ find_previous_action.triggered.connect(self._find_previous)
+ return edit_menu
+
+ @Slot()
+ def _stop(self):
+ self._tab_widget.trigger_web_page_action(QWebEnginePage.Stop)
+
+ @Slot()
+ def _reload(self):
+ self._tab_widget.trigger_web_page_action(QWebEnginePage.Reload)
+
+ @Slot()
+ def _zoom_in(self):
+ tab = self.current_tab()
+ if tab:
+ tab.setZoomFactor(tab.zoomFactor() + 0.1)
+
+ @Slot()
+ def _zoom_out(self):
+ tab = self.current_tab()
+ if tab:
+ tab.setZoomFactor(tab.zoomFactor() - 0.1)
+
+ @Slot()
+ def _reset_zoom(self):
+ tab = self.current_tab()
+ if tab:
+ tab.setZoomFactor(1)
+
+ @Slot()
+ def _toggle_toolbar(self):
+ if self._toolbar.isVisible():
+ self._view_toolbar_action.setText("Show Toolbar")
+ self._toolbar.close()
+ else:
+ self._view_toolbar_action.setText("Hide Toolbar")
+ self._toolbar.show()
+
+ @Slot()
+ def _toggle_statusbar(self):
+ sb = self.statusBar()
+ if sb.isVisible():
+ self._view_statusbar_action.setText("Show Status Bar")
+ sb.close()
+ else:
+ self._view_statusbar_action.setText("Hide Status Bar")
+ sb.show()
+
+ def create_view_menu(self):
+ view_menu = QMenu("View")
+ self._stop_action = view_menu.addAction("Stop")
+ shortcuts = []
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_Period))
+ shortcuts.append(QKeySequence(Qt.Key_Escape))
+ self._stop_action.setShortcuts(shortcuts)
+ self._stop_action.triggered.connect(self._stop)
+
+ self._reload_action = view_menu.addAction("Reload Page")
+ self._reload_action.setShortcuts(QKeySequence.Refresh)
+ self._reload_action.triggered.connect(self._reload)
+
+ zoom_in = view_menu.addAction("Zoom In")
+ zoom_in.setShortcut(QKeySequence(Qt.CTRL | Qt.Key_Plus))
+ zoom_in.triggered.connect(self._zoom_in)
+
+ zoom_out = view_menu.addAction("Zoom Out")
+ zoom_out.setShortcut(QKeySequence(Qt.CTRL | Qt.Key_Minus))
+ zoom_out.triggered.connect(self._zoom_out)
+
+ reset_zoom = view_menu.addAction("Reset Zoom")
+ reset_zoom.setShortcut(QKeySequence(Qt.CTRL | Qt.Key_0))
+ reset_zoom.triggered.connect(self._reset_zoom)
+
+ view_menu.addSeparator()
+ self._view_toolbar_action = QAction("Hide Toolbar", self)
+ self._view_toolbar_action.setShortcut("Ctrl+|")
+ self._view_toolbar_action.triggered.connect(self._toggle_toolbar)
+ view_menu.addAction(self._view_toolbar_action)
+
+ self._view_statusbar_action = QAction("Hide Status Bar", self)
+ self._view_statusbar_action.setShortcut("Ctrl+/")
+ self._view_statusbar_action.triggered.connect(self._toggle_statusbar)
+ view_menu.addAction(self._view_statusbar_action)
+ return view_menu
+
+ @Slot()
+ def _emit_dev_tools_requested(self):
+ tab = self.current_tab()
+ if tab:
+ tab.dev_tools_requested.emit(tab.page())
+
+ def create_window_menu(self, tabWidget):
+ menu = QMenu("Window")
+ self._next_tab_action = QAction("Show Next Tab", self)
+ shortcuts = []
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_BraceRight))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_PageDown))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_BracketRight))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_Less))
+ self._next_tab_action.setShortcuts(shortcuts)
+ self._next_tab_action.triggered.connect(tabWidget.next_tab)
+
+ self._previous_tab_action = QAction("Show Previous Tab", self)
+ shortcuts.clear()
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_BraceLeft))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_PageUp))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_BracketLeft))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_Greater))
+ self._previous_tab_action.setShortcuts(shortcuts)
+ self._previous_tab_action.triggered.connect(tabWidget.previous_tab)
+
+ self._inspector_action = QAction("Open inspector in window", self)
+ shortcuts.clear()
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.SHIFT | Qt.Key_I))
+ self._inspector_action.setShortcuts(shortcuts)
+ self._inspector_action.triggered.connect(self._emit_dev_tools_requested)
+ self._window_menu = menu
+ menu.aboutToShow.connect(self._populate_window_menu)
+ return menu
+
+ def _populate_window_menu(self):
+ menu = self._window_menu
+ menu.clear()
+ menu.addAction(self._next_tab_action)
+ menu.addAction(self._previous_tab_action)
+ menu.addSeparator()
+ menu.addAction(self._inspector_action)
+ menu.addSeparator()
+ windows = self._browser.windows()
+ index = 0
+ title = self.window().windowTitle()
+ for window in windows:
+ action = menu.addAction(title, self.handle_show_window_triggered)
+ action.setData(index)
+ action.setCheckable(True)
+ if window == self:
+ action.setChecked(True)
+ index += 1
+
+ def create_help_menu(self):
+ help_menu = QMenu("Help")
+ help_menu.addAction("About Qt", qApp.aboutQt) # noqa: F821
+ return help_menu
+
+ @Slot()
+ def _back(self):
+ self._tab_widget.trigger_web_page_action(QWebEnginePage.Back)
+
+ @Slot()
+ def _forward(self):
+ self._tab_widget.trigger_web_page_action(QWebEnginePage.Forward)
+
+ @Slot()
+ def _stop_reload(self):
+ a = self._stop_reload_action.data()
+ self._tab_widget.trigger_web_page_action(QWebEnginePage.WebAction(a))
+
+ def create_tool_bar(self):
+ navigation_bar = QToolBar("Navigation")
+ navigation_bar.setMovable(False)
+ navigation_bar.toggleViewAction().setEnabled(False)
+
+ self._history_back_action = QAction(self)
+ back_shortcuts = remove_backspace(QKeySequence.keyBindings(QKeySequence.Back))
+
+ # For some reason Qt doesn't bind the dedicated Back key to Back.
+ back_shortcuts.append(QKeySequence(Qt.Key_Back))
+ self._history_back_action.setShortcuts(back_shortcuts)
+ self._history_back_action.setIconVisibleInMenu(False)
+ back_icon = QIcon.fromTheme(QIcon.ThemeIcon.GoPrevious,
+ QIcon(":go-previous.png"))
+ self._history_back_action.setIcon(back_icon)
+ self._history_back_action.setToolTip("Go back in history")
+ self._history_back_action.triggered.connect(self._back)
+ navigation_bar.addAction(self._history_back_action)
+
+ self._history_forward_action = QAction(self)
+ fwd_shortcuts = remove_backspace(QKeySequence.keyBindings(QKeySequence.Forward))
+ fwd_shortcuts.append(QKeySequence(Qt.Key_Forward))
+ self._history_forward_action.setShortcuts(fwd_shortcuts)
+ self._history_forward_action.setIconVisibleInMenu(False)
+ next_icon = QIcon.fromTheme(QIcon.ThemeIcon.GoNext,
+ QIcon(":go-next.png"))
+ self._history_forward_action.setIcon(next_icon)
+ self._history_forward_action.setToolTip("Go forward in history")
+ self._history_forward_action.triggered.connect(self._forward)
+ navigation_bar.addAction(self._history_forward_action)
+
+ self._stop_reload_action = QAction(self)
+ self._stop_reload_action.triggered.connect(self._stop_reload)
+ navigation_bar.addAction(self._stop_reload_action)
+
+ self._url_line_edit = QLineEdit(self)
+ self._fav_action = QAction(self)
+ self._url_line_edit.addAction(self._fav_action, QLineEdit.LeadingPosition)
+ self._url_line_edit.setClearButtonEnabled(True)
+ navigation_bar.addWidget(self._url_line_edit)
+
+ downloads_action = QAction(self)
+ downloads_action.setIcon(QIcon(":go-bottom.png"))
+ downloads_action.setToolTip("Show downloads")
+ navigation_bar.addAction(downloads_action)
+ dw = self._browser.download_manager_widget()
+ downloads_action.triggered.connect(dw.show)
+
+ return navigation_bar
+
+ def handle_web_action_enabled_changed(self, action, enabled):
+ if action == QWebEnginePage.Back:
+ self._history_back_action.setEnabled(enabled)
+ elif action == QWebEnginePage.Forward:
+ self._history_forward_action.setEnabled(enabled)
+ elif action == QWebEnginePage.Reload:
+ self._reload_action.setEnabled(enabled)
+ elif action == QWebEnginePage.Stop:
+ self._stop_action.setEnabled(enabled)
+ else:
+ print("Unhandled webActionChanged signal", file=sys.stderr)
+
+ def handle_web_view_title_changed(self, title):
+ off_the_record = self._profile.isOffTheRecord()
+ suffix = ("Qt Simple Browser (Incognito)" if off_the_record
+ else "Qt Simple Browser")
+ if title:
+ self.setWindowTitle(f"{title} - {suffix}")
+ else:
+ self.setWindowTitle(suffix)
+
+ def handle_new_window_triggered(self):
+ window = self._browser.create_window()
+ window._url_line_edit.setFocus()
+
+ def handle_new_incognito_window_triggered(self):
+ window = self._browser.create_window(True)
+ window._url_line_edit.setFocus()
+
+ def handle_file_open_triggered(self):
+ filter = "Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*)"
+ url, _ = QFileDialog.getOpenFileUrl(self, "Open Web Resource", "", filter)
+ if url:
+ self.current_tab().setUrl(url)
+
+ def handle_find_action_triggered(self):
+ if not self.current_tab():
+ return
+ search, ok = QInputDialog.getText(self, "Find", "Find:",
+ QLineEdit.Normal, self._last_search)
+ if ok and search:
+ self._last_search = search
+ self.current_tab().findText(self._last_search)
+
+ def closeEvent(self, event):
+ count = self._tab_widget.count()
+ if count > 1:
+ m = f"Are you sure you want to close the window?\nThere are {count} tabs open."
+ ret = QMessageBox.warning(self, "Confirm close", m,
+ QMessageBox.Yes | QMessageBox.No,
+ QMessageBox.No)
+ if ret == QMessageBox.No:
+ event.ignore()
+ return
+
+ event.accept()
+ self.about_to_close.emit()
+ self.deleteLater()
+
+ def tab_widget(self):
+ return self._tab_widget
+
+ def current_tab(self):
+ return self._tab_widget.current_web_view()
+
+ def handle_web_view_load_progress(self, progress):
+ if 0 < progress and progress < 100:
+ self._stop_reload_action.setData(QWebEnginePage.Stop)
+ self._stop_reload_action.setIcon(self._stop_icon)
+ self._stop_reload_action.setToolTip("Stop loading the current page")
+ self._progress_bar.setValue(progress)
+ else:
+ self._stop_reload_action.setData(QWebEnginePage.Reload)
+ self._stop_reload_action.setIcon(self._reload_icon)
+ self._stop_reload_action.setToolTip("Reload the current page")
+ self._progress_bar.setValue(0)
+
+ def handle_show_window_triggered(self):
+ action = self.sender()
+ if action:
+ offset = action.data()
+ window = self._browser.windows()[offset]
+ window.activateWindow()
+ window.current_tab().setFocus()
+
+ def handle_dev_tools_requested(self, source):
+ page = self._browser.create_dev_tools_window().current_tab().page()
+ source.setDevToolsPage(page)
+ source.triggerAction(QWebEnginePage.InspectElement)
+
+ def handle_find_text_finished(self, result):
+ sb = self.statusBar()
+ if result.numberOfMatches() == 0:
+ sb.showMessage(f'"{self._lastSearch}" not found.')
+ else:
+ active = result.activeMatch()
+ number = result.numberOfMatches()
+ sb.showMessage(f'"{self._last_search}" found: {active}/{number}')
+
+ def browser(self):
+ return self._browser
diff --git a/examples/webenginewidgets/simplebrowser/certificateerrordialog.ui b/examples/webenginewidgets/simplebrowser/certificateerrordialog.ui
new file mode 100644
index 000000000..a97f25b6e
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/certificateerrordialog.ui
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>CertificateErrorDialog</class>
+ <widget class="QDialog" name="CertificateErrorDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>370</width>
+ <height>141</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="leftMargin">
+ <number>20</number>
+ </property>
+ <property name="rightMargin">
+ <number>20</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="m_iconLabel">
+ <property name="text">
+ <string>Icon</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_errorLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Error</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_infoLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>If you wish so, you may continue with an unverified certificate. Accepting an unverified certificate mean you may not be connected with the host you tried to connect to.
+
+Do you wish to override the security check and continue ? </string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::No|QDialogButtonBox::Yes</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>CertificateErrorDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>CertificateErrorDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/COPYING b/examples/webenginewidgets/simplebrowser/data/3rdparty/COPYING
new file mode 100644
index 000000000..220881da6
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/COPYING
@@ -0,0 +1 @@
+The icons in this repository are herefore released into the Public Domain.
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/dialog-error.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/dialog-error.png
new file mode 100644
index 000000000..cdd95bade
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/dialog-error.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/edit-clear.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/edit-clear.png
new file mode 100644
index 000000000..5542948bc
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/edit-clear.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/go-bottom.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-bottom.png
new file mode 100644
index 000000000..bf973fedc
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-bottom.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/go-next.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-next.png
new file mode 100644
index 000000000..a68e2db77
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-next.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/go-previous.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-previous.png
new file mode 100644
index 000000000..c37bc0414
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-previous.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/process-stop.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/process-stop.png
new file mode 100644
index 000000000..e7a8d1722
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/process-stop.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/qt_attribution.json b/examples/webenginewidgets/simplebrowser/data/3rdparty/qt_attribution.json
new file mode 100644
index 000000000..d81f5bf23
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/qt_attribution.json
@@ -0,0 +1,24 @@
+{
+ "Id": "simplebrowser-tango",
+ "Name": "Tango Icon Library",
+ "QDocModule": "qtwebengine",
+ "QtUsage": "Used in WebEngine SimpleBrowser example.",
+
+ "QtParts": [ "examples" ],
+ "Description": "Selected icons from the Tango Icon Library",
+ "Homepage": "http://tango.freedesktop.org/Tango_Icon_Library",
+ "Version": "0.8.90",
+ "DownloadLocation": "http://tango.freedesktop.org/releases/tango-icon-theme-0.8.90.tar.gz",
+ "LicenseId": "urn:dje:license:public-domain",
+ "License": "Public Domain",
+ "LicenseFile": "COPYING",
+ "Copyright": "Ulisse Perusin <uli.peru@gmail.com>
+Steven Garrity <sgarrity@silverorange.com>
+Lapo Calamandrei <calamandrei@gmail.com>
+Ryan Collier <rcollier@novell.com>
+Rodney Dawes <dobey@novell.com>
+Andreas Nilsson <nisses.mail@home.se>
+Tuomas Kuosmanen <tigert@tigert.com>
+Garrett LeSage <garrett@novell.com>
+Jakub Steiner <jimmac@novell.com>"
+}
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/text-html.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/text-html.png
new file mode 100644
index 000000000..a896697d7
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/text-html.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/view-refresh.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/view-refresh.png
new file mode 100644
index 000000000..606ea9eba
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/view-refresh.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/AppLogoColor.png b/examples/webenginewidgets/simplebrowser/data/AppLogoColor.png
new file mode 100644
index 000000000..2a4971782
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/AppLogoColor.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/ninja.png b/examples/webenginewidgets/simplebrowser/data/ninja.png
new file mode 100644
index 000000000..e5d7b6fd7
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/ninja.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/rc_simplebrowser.py b/examples/webenginewidgets/simplebrowser/data/rc_simplebrowser.py
new file mode 100644
index 000000000..5d5a3736a
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/rc_simplebrowser.py
@@ -0,0 +1,1391 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x06\xdf\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x06\x96IDATX\x85\xe5\x97[l\x1cW\
+\x19\xc7\x7f3\xb3\xde\xab\xd7^{}\x8d\xe38I\xeb\
+]\xe7\x82\x1b\xa3\xdaN\xda\x105\x12\x17\x89\x0a\x19!\
+\x11\x10O\x01E\x02a\xc4\xe5\xa5\xe2\x01\xa1\xc0\x0b\xbc\
+\x80DE@\x88\x16\xfc\xd0\x82\x84J\xaa\x906\x94\xf4\
+B\xd2`\x92Z\xd8M\x1c\xdb\x91/\xc9:\xb1\x1dg\
+\xed\xb5\xd7;3;\xb3\xbbs\xe3!\xde\xcd\xda^\xbb\
+N%\x9e\xf8\xa4\xa39\xe7\xcc\xd9\xf3\xfd\xe6\xff}\xe7\
+\xb2\xf0\xffn\xc2\xfa\x8e3g\xce|\xc9\xe5r\xf5\x01\
+AI\x92\x10E\x11\xdb\xb6\xb1,\xabPL\xd3,<\
+\x8b\xeb[\xf5\x01\x8ai\x9a'\xfb\xfa\xfa\xce\x16\xfbs\
+m \x12\x84\x97O\x9d:\x15\x5c\xadc\x9a&.\x97\
+\x0b\xc7q\xd6\x8c+no\xb3\x1e\xec\xed\xed}\x19\xd8\
+\x1a\xc0\xb2\xac\x10@,\x16C\x10\x04,\xcb\x22\x10\x08\
+\x90\xcb\xe5\xf2\x80\x08\xc2#\xe1\x8a\xeb\xa5\xday\x90\xba\
+\xba:r\xb9\x5ch\xfd\xbb\x0d\x00\x8e\xe3\x14\x9c\xe4'\
+[_/\xf5\xdc\xcc\xf9G\xd9\x06\x00\xdb\xb6\xd78-\
+v455Ux\xbf\x1d\xa7\x92$\x11\x89D\xd6|\
+\xdc\xb6\x00\xf2*\xac\x07imm\xfd\xdf+`Y\xd6\
+\x9a\x09\x8bU\xf88\x0aD\xa3\xd1B{\xdb\x0a\x94r\
+.\x08\x02\x91H\xe4c)\x90\xef\xdf\x16@^\x81R\
+I899\x89eY\xdb\x96]\x92$\xda\xda\xda\x0a\
+\xed\xc7\x02\x00\x18\x1a\x1a\xa2\xa3\xa3\xa3\x00\x90\x97\xb3\x18\
+\xce\xb2\x1c\x06\x06\xc6\xb9\xd2\x7f\x8b\xf1\x899\x94\x94\x0a\
+@\xb0\xb2\x9ch\xa4\x89d\x12:;#\x8f\x07\x90O\
+\xc2\xae\xae\xae5\xeb\x7fbbb\x8d\x02\xa3\xa3s\xfc\
+\xed\x8d\x9b\xb4}\xe2I\x9e=\xd6\xc17\xbe\xd9CM\
+\xc8\x8f\x961\x89\xcd+\x0c\x8f\xde\xe5\xfc\xdb#\xfc\xee\
+\xf7\xff\xe0\x07\xdf\xfb\xe2\xe3\x87\xc0\xb6\xed5\x12G\xa3\
+\xd1B\xfb\x8f}\xefp}d\x8e\x9f\xfc\xec[\xb4\xed\
+\xadeA\xce\xd2X\xe9&\x18,\xe7R\xff\x00\xde\xda\
+'\xe8:\xbc\x9f\xe7\x8e\xeeg|r\x96\xdf\xbet\x81\
+t\xaa\x1c\x1en\xff\x05\x12i=\xc0\xd1\xa3GO\x1f\
+?~\x1cUU\x11\x04\x01\xc7qp\xbb\xdd8\x8e\xc3\
+\xc4\xc4\x04\x0b\x0b\x0b\xbc\xf2\xea%\xe6\x97\x0c^\xfc\xc5\
+),\xc7d\xe2\xde<9\x13ty\x99\xc1[w\xf1\
+\x94\xd7\x90s$4E!(\xa6y\xfa\xc0.:\xbb\
+[\xf9`h\x9e``\x9fwvf\xe0\x9d\xbc?q\
+\xab\x10\xacO\xc2\xb6\xb66\x0c\xc3GlF\xe5\x97?\
+?Il6\x8e\x91\xcb\xd2T\xe5\xa7\xbe\xa1\x81@\xdd\
+^Z\xf7\xb5SU\xdb\x80O\xc8\x81\xa9\x12_\x92q\
+{\xdc47\x86\xf9\xe9\x8fNP\x11\xae\xea\xed\xee\xee\
+\xfd\xcc\xa6\x00\xab'WI\x1b\x1b\xbb\xc5\x8bg\xde\xe0\
+\x85\x17\xbe\x8c\xdf\xe7\xe5`\xa4\x85=\xcd\x0d\xcc\xdc\x8f\
+\xa3\xa7\x15\xdc\x1e\x0fn\xb7\x0b\x97K\xc2\xb2\xa1s\xdf\
+.>{\xac\x13\x9f\xd7\x8b(\x8a\x84\xab\x82|\xfd\xe4\
+1\xbf\xe0*\xfb\x0d\x9c\x167U\xa0\xf8\xab\x8b\x8b\xa2\
+\x88\xec\xd8\xd3\xcc\xa1\x83{\x00\xd04\x9d\xcb\xd7\xae\xd3\
+\x1c\xed\xa0\xa2\xaa\x16\xc7\x01Q\x10\x11\x04\x91\xfa\xa0\xc3\
+\xc5\xf7\xff\xc3\xb9\xb7\xfb\x99\xbc\x1d\xc3\xe5ra\x18\x06\
+\x9f\xea\xde'\xee\xd8\xdd\xd4p\xe4\xc8b\xcf\x96\x00\xa5\
+\xec\xf2\x951>\xf7\xe9C\x88\xab\xb9\xf1\xd6\x95AZ\
+\x9fz\x06\xb7\xc7\x87\x03\xd8\xf9\xe28,\xa5\xd2\x1c\xeb\
+n\xc7\xe7\xf518\x95\xe0\xdd\xab7V\xe77\xe9\xea\
+l\xf6#I_\x83\x8fX\x86\xeb\xf3\xe0\xe6H\x8co\
+\xf7\xf6p\xfe\xbd\x0fX\xd2%\x1a[\x9e\x22\xa5\x19T\
+\x07\xcapx\x98\xde\x86i\x91^\x9e\xe7\xf0\xa1}\x00\
+45\xd6\x030tc\x0c5\xad142ISS\
+5\xc0\xd1\x92\x0a\x14\xe7\xc0\xc0\xc0\x00\xa2\xf8h\x88\xa6\
+f\xf0\xfb=\xd4\x84*0]\xe5d\x0d\x1b9\x9d%\
+\xa1d\xd1\xb3&Z\xc6@\xd5\x0d|\x92\xb1A\xbd'\
+v\xef\xe4\xda\xf5qv\xd4V\x92\x16\x83\x0e\xb6\x13\xde\
+T\x81\xbc\x1d9r\x84l6[P\x00\xc7\xe1\xce\x03\
+\x9d\xe9\xb8L\xb8\x0c|Y\x1bM\x13\xd0\xcb\x1bH\xba\
+$D\xc0\xb4l\x02\x99\xf4\x9a9\x1d\xc7\xc14\x0d\x1a\
+\xc3A^\xbb4F\xa4\xad\xbd\xf0n\xd3\x10\xe4\xeb\xc5\
+a\xa8\xa8\x0a\xb2\xb0\xac\x90\x96jXPT\xbes<\
+\x8a$I\x5c\xb84\xc0\xb2\xa7\x05\xdbq0\x0c\x8bL\
+\xc6\xcf\xfc\x9b\x97I\xach|\xf5\xf9gp\xbb$t\
+]\xa7\xaa2\x80fH\xa8)\xcdD\x14\x92%C\xb0\
+\xfe8.\xb6\x9dM!F\xc7\xeeQ\xee\x91\xa8\xf2\x9a\
+H\xd2\xc3}\xec\xf3\xcfu\x11\x0d\xae\xa0,\xddgE\
+\xd1Y\xd1L\xc6\xe4jb\xd9:&\xee\xcc\xa0\xaa*\
+\xe9t\x9a\xd7/^#\x18\xaagfnQ\x04\xfeU\
+\x12 \x9f\x03\xa5N\xb9/<\x7f\x98[\x1f\x8eS\xe9\
+\x97\x98\x8e\xab\x18\xc6\xa3Xw\x1c\x8cb\xa4\xe6I*\
+\x1a+\x8aNJ\xd5\x91\xd3\x19>\x1c\x9fE\x96e\x14\
+E!\xb1\x92\xa61\x1c`z\xe4v\x06\xcb\xfa\xd3\xa6\
+\x0a\x94:4\x00**\x1cR\xf1\x07\xdc\x1a\x9f!\x1c\
+\xae\xe5W\xaf\xbc\x85,\xcbh\x9aF6\x9b%\xb6\x0c\
+\xcb\xb2\xbe\x0a\x90ANg0s\x19R\xa9\x143\xb3\
+\xf7\x09U\xd71\x1fW\xf4\xa5\xb9\x07\xf1\xabWk\xcf\
+m\x19\x82R\x10\x07\x0e\xec\xe7\xfb\xdf\xed\xe1\xfds\xef\
+Q\xe9\x11\xc8z\x9bX\x5c\x5c$\x91H\xf0\xeb\xbe\xb3\
+$r>\x92\xb2F\xb2\x08b\xe4n\x92d2I|\
+)EEM37\xde\xfd\xb7\xa3)\xf1\x1f\xc2i{\
+\xcb\x10lf\xed\xed\xbb\xf9d\xfb\x0e\xce\xbdz\x81\x1d\
+\x95ed\xb29b\xd3\xf7\xb8r\xc7&\xa9fI\xca\
+:IE#\xa9\xe8\xa4U\x85\xb8\x22\xb2\xb8,\xa3\xda\
+!\xfa\xff\xdeO\xe2A\xec\xdc\xf0\xf0\x9fo\x02e\xb0\
+q\x15\x04EQ\x94\x1d\xc7\xa9\x08\x85B\x05E\xca\xca\
+\xca\x0a\x8a\x98\xa6\xc9WN<\x8b\xfa\x87\x8b\x9c}\xe9\
+\xafd{\x9e\xc6[\x19b\x7fd7s\x09\x95\xb4\x96\
+\xc5\xe3\x18x\x03\x02\xf5\x95\xe54\x84\x1b\x19\xbe\xaf2\
+\xfc\xcfk\xac,\x8d\x9b\xc3\xd7_{\x1d\xf0\xf0p\xd3\
+\x5c\xf3\xd7,\x08\xd4vww\x9fhii\xf91\xe0\
+\xdbL\x85\x5c.\x87\xae\xebh\x9a\x1b\xc3\xdeIC\xcb\
+.vF\x9f\xa4\xae!\x84?\xe0\xc3\xb6\x1d\x14Ye\
+!\x9ebn|\x8a\xc4\xec,\x8e\x15\xb3\xe6\xe6F\xff\
+2;;{\x1e\x18\x04\xa6\x00\xbb\x18\xc0\x0d\xd4\x03a\
+ \xb4J\xb9\xe1\xbe\xb0n|\x95(z\xaa\x9b\x9a\x0e\
+u\x86\xaa\xf7\x1e\xf2zC;]\x92\xe8\x050-;\
+\xa3\xeb\xcb\x0f\x92K\xb7G\xe7\xe7\x87\x07m;'\x03\
+w\x81I`\x1aP\xd7+\x907\x0f\xe0]u\xb0\x9d\
+\x8b\xbe\xb8:>\x00\xf8W\x7f'\x01\x16\x90\x014@\
+Yu\x98\x01\xb2\x14\xdd\x88\xfe\x0b\xd2\xfcz\x18\x9f\x9f\
+e\xa7\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x04\xc3\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x04zIDATX\x85\xed\x96\x7fhUe\
+\x18\xc7?\xef{\xceq\xded\xea\xa6\xce\x143S\x0b\
+\x8a~\x97.\xe7(*\x13-\x09\xcb\xfaC\x8a2#\
+(\x0cB7#\x09\xc2\xa0\xa2\xc8\xfe\x91D#,\x84\
+\xe5\x0f\xa4\x85\x18e\xaci\xb36\xdcr*\xe6\xaf\xd0\
+\xcd\x99S7\x9b\xda\xb6\xbb\xbb{~\xbc\xef\xdb\x1f\xf7\
+\x9cyw\xdd\xe6\x9c\xe0_{\xe0\xb9\xcf\xcb=\xe7y\
+\xbe\xdf\xf3}\x9e\xf3\xbe\x07\x06m\xd0\x06h\x05E\xb6\
+\x99Ql=w\xbdu\xe4\xf5$O\x1e{\xe7\xc6\xc2\
+b{% \x06Z\xc3\x1ah\xe2-\x05r\xe5\x87\xaf\
+}k\xc7\x93\xad\x8f0\xb5nz\xdel\xbd\xed\xdco\
+\xf8\xd7Z\xe7\xba\x14\x90R0\xbfp\xf1\xd0\x05\x8f\xbd\
+1'\x96p\xf6\xe5\xbf\xcb\x84\x1bJ\xc0S.G\x9b\
+\xab\xb8gj\xbe\xf3\xfa\xbc\xf7o\x1ffe\x1f,(\
+\xb6g\xdc0\x02Z\x07$\x838G\x9b*\x199b\
+\xb8|\xfb\x85\x8frF\x0d\x1f[^\xb0\xccZ\xd4\xdf\
+\x1a=\x0eOA\x91m\x10t\xf6\x99i\x88}\xfa\xd6\
+w\x1ch,\xc3S.\xc6h\xc6dOdLl\x12\
+\x9b\xcb\xd6$\xeb\x9b\x0e\x7f=\xbeA-\xdd\xba\x155\
+ \x02\x1f,^\x8be9H$B\x08\x04\x02\xa2\x18\
+fJa\xf3\xe7\xa9\x1f\xf1\xb5\x8b\xd6\x0a\x83&;k\
+4SF?HyMi\xb2\xfa\xe8\xce=I\x19\xcc\
+\xaf\xfd\x8c\xd6\xde\x08\xd8\xbdS3\xec>\xb1\x09)\xac\
+.\x17B\xa4\x91\xb9,\x85\xd6\x1am\x0c\xda(Z:\
+N\xd3\x9e\xbc\xc0\xa3\x0f\xcd\x1d:*gl\xe1\xcfU\
+\x9b\xff\xca_.\x9f\xac\xfe\xdc=\xde\x13L\xaf3\xa0\
+\x8c\xc2W\x1e\xbe\xf6\x08\xb4\x87\xaf]|\x95Z\x07x\
+(<t\x18\x95\xf0P\xc2E\x91\xba\xde\xee^\xa0\xe6\
+\xd4v&N\xb8\xcd~i\xce\x92\x09\xc3\x9c\xac\xda\x99\
+E\xf6S\xd7D\xc0\x18\x9d\x02S\x1e\xber\xf1\xb5\x1b\
+\x82\x84.|\x02\xe1\xa1\x84\x8f\x16>\x0a\x97\xb8\xdf\xc2\
+\xc5d#\xe7;Nr\xae\xad\x8e\xdd\xc77\xe1Yq\
+\xf1\xea\xbcw\xb2sF\xe4m\x9b\xb9\xdcY\xda\xef\x16\
+h\xad\x08\xb4\x87@\x22\xa5\xc4\x16V\x8a\xaf\x94a\xff\
+\x05\xca\x04tx\x97hK\xb6\x90\xf0\xdb\xd1J\xa1\x95\
+Ish\xfe\xbb\x81;\xf2\xa6\xf3\xf2\xdc%\xb1m\x15\
+%\x1fS||V\xe5\xaa\xe0\x99\xab\x12\xf0\xb5K\xc2\
+k\xc3\x926\x8e\xe3\x10h\x83\x09\x14F\x05\x04\xc6\xc5\
+\xd5q<\x95\xc0\x08\x00\x83\xb4\x09g\x04R?\x1ac\
+\x0cFC\xa0=<\xed\xa2M \x80)\xfdR \xe1\
+\xb5\xd3\xd4V\x8f\x90`9\x12\xcb\x16X\xb6@\xda\x02\
+i\x09\xa4\x04\xe9\xa4\xde\x09\x83\xc0h\x83\x8e\xc0\x85\x01\
+#\xc0\x08\xee\x1e\xff\x04y\xb1\xc9l\xd9\xb1\xae\xb3\xb5\
+\xfd\xe2\xea\xcaU\xc1\x8a\xab\x11\xe86\x17\xd2\x12H+\
+\x8c\xb6\xc0\x0a\xa3\x94\x02\x11\xdei\x0c\x18\x1d)`\x00\
+\x83-b<<\xe9Y\xfc\xb86\xdf\x97m\xe8Lt\
+t\xbeY\xbdZm\x02L_\x04D\xfa\x7fB\xa6\xf6\
+{)\xc3\xa7\x8e\xc0\xbbT\x10!\x01\x83\xd1\xe1\x93\x03\
+\xc3\x9c\x5c\xa6\xdd\xfc<\xf5'\xeb\x82\x8a\x9a\xb2\xb6\xd6\
+F\xb3\xe0\xd0fUK\xea\xf0S\xe9$2\x09\xc8t\
+\x05^|`E\x17P\xa4\x82\x90)\xf9\x85L\xf5\xbb\
+\xec\xcc\x97\xf8\x81\x8bV\xa9\x9acb\x13\xb97\xf7i\
+*\xf7\xee\xf6\x0e\x1e\xa9\xad;\xf5G\xb0\xf0L\x0dg\
+\xc3\xba\xe1$_\xde\x1d{j\x81\x00X\xbb\xe5\x93\x1e\
+.u\xb7\xe2%+\xb0\x1c\x81\x0e\x87\xef\xd6\xec\xfb\x98\
+\x14\xcbg\xfb/\xa5\xc9\x86\xd3\x0d;\x8flT\xcb\xda\
+[\x88\xa7\xd7%c\xf7\xcd$`\x00]\xf5E0\x1c\
+\x18\x028\xa1\xa7\xaf\x1d\xc0),\xb6+\x10dY\x96\
+@\x1b\x8b\xbbF>N\xcc\x1dGI\xe9\x06\xf7\xdf\x7f\
+.\xae\xa9\xfdF\xad\x03\xfc\xb0f\xbaw;\x1b2\x09\
+\xe8\xd0\x15\x10\x84l#\xef\x22\xd8UD\x08\x86f\xdd\
+\xc4\xfd\xb9\xb3\xb8t\xb6\xd3\x94\xfc\xb4>q\xeeXr\
+\xe9\xb1\x1f\xd4\xae0?r\x95\xb6\xees\x08I\x03\xbe\
+B\x99\xb4B\x16\x80-\x860-g!\xfb\xf7\xef\x0b\
+v\xfd\xfekK\xe3>\xfd\xca\xc9ru\x22\x03\xdcO\
+\x8bW|1\xf5D\xc0\x00^\x08\x18\x01\x07\xe1\xbd\x16\
+\xd1 \x09\x8c\xf2\xa1\xac\xa2\xdc=pd\xef\xc1\xfa\x1d\
+\xfe\xa2\xa6\xc3\xfc\x97A4\x8a.\xf4|,\xf7\xe7c\
+\xd2\xbe\x02\x1cdA\x91}!/w\x9c\xdft\xfel\
+\xc9\xa1\xf5\xea\xbdx\x9c\x80\xcb-\x8cH\xfb\xbd\x01\xf7\
+\xa5@\xa6ERF\xb3\xd0\xf5\xaa677-\xdf\xb3\
+Z}E\xf7\x01\x8bT\x1b\xb4A\xeb\x97\xfd\x0f\xcc\x13\
+\x1e)\xc9\x8aX\x89\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x04\xef\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x04\xa6IDATX\x85\xed\x97]\x88UU\
+\x14\xc7\x7f{\x9fs\xef\x5c?\x82RqP\xfb\x18\xc3\
+\xac\x87\x14\xcb\xaf\xcaJK\xc8\x87\x12\xc6@\xa3D\x83\
+\x0a\x83\xa0\x82B{\xe9a\xc2zP{\xec\xc1\x08\x09\
+#$\x13\x95\x88P\xc8\xaf\xc1\x994t*1\xa7\xd4\
+1u\x1amrR\x9bf\xee\xd79g\xaf\xd5\xc3\xb9\
+\xf7:\xe3\xdc\x9b\xf7\x12C/m\xd8\xac}\xf69\xe7\
+\xbf~g\xed}\xd6:\x07\xfeo\xffq3\xd5\x5c4\
+o\xb5\xd5Z\x85[7HU\xda~\xb5\x82\xef\xad\xfa\
+\x14'\x11A\x94\xc5i\x84\x93\xb8\x8bF\xf1\xb1\x8b-\
+\x186\xed\xdc\x00d\xab\xd2\xad\x1a ty\x8e]\xd8\
+O\x7f\xee\x0a\xa1\xe4\x09%O\xe4r\x84. (\xd8\
+|\x94a\xd1=/U+\x09\x80\xad\xf6BU%\x92\
+\x00\xa7!\x91\x04D. t\x01\xa1\xcb\x17\xc6y\xc2\
+(\x87\x93px\x00\xaai\x82\xd4|O\x0d\x00\xf1>\
+T\x1dl\xe33\xf1\xd8I4\x9c\x00\xa0*(:\x08\
+\xe2\xdaX\x90\xe1\x04P\x95\xd8!J\xfc\xcc\x05\x98\x02\
+P\xe0r\xa5H\x0c\x0b\x80\x14\x9d\xaa E\x18\x8da\
+\x9cD\xe4\xc3t\xcd\xce\xa1\xcckX1\xe9\xa8\x22\xe2\
+P\x04\xac`P\xacQ\x5c\x98##\x97\xf1\x92\xa0j\
+0\xde\x10\x9d\x00HB\xf9\xe444\x0fX\xf3\xcc\xa4\
+\xb1\x937\xbf\xd2\xb86e\xadE\xd4\x15\x9e\xd8\xc5\x8e\
+\xad`\x00!\xa0/\xe8!\xebz\xb1\x09\xb0XT!\
+\x99H\xb1j\xe9\x9a8B\x02\xe24\xb9c\xef\xc7a\
+\xcf\xd5\x8b\xaf\x96{\xae\xb2\xe9\xf2\xe1\xb7\xec\xdaiw\
+>\xf8\xe6\xd3\x8f\xbe8\xe2\xfb\xae=\xa4\xc3^\x94\x10\
+gB\x1cy\xaed\xbb\xe8\x0b\xfe\x00\xab`\x0c&\x0e\
+\x10\xa8\xa2\x0a\x22J\xc2\x8cdA\xc3\x0aZ\xdb\xf6g\
+;:\x7f\xfc\xa8e\xbd\xbc^\xce\x97Wn\xb2\xb3U\
+\x0f\x8c\xb8\xb7k\x8e\xb5~\xc3\xf4\xc9\x8f\xf8\x97\xd2\x1d\
+8\x1b\x12i\x96\x8b\xfd'\xc9\xe9_\xd8\x84\xc1\xf3\x0c\
+\xd63X?\xb6\xc63\x18\x0b\xbe\xe73\xef\x8e\xa5t\
+\x9c=\x1d\x1c?}\xf8\xf0\x84_ty{{\xf9\x1d\
+Zi\x13j&\xa5\xcf\xee\xfbng\xc7\xb9\x8b\xedn\
+j\xfd\x5c\x94\x88\xee\xf4)\x9c\xcd\xe1%\x0c~\xc2\xe0\
+%-~\xd2\xe2'\x8a\xd6\xe0',\xf7Mz\x82\xbe\
+\xde\xb4~{l_wF\xb5q\xdb6\x5c\x05?\x95\
+\xdf\x82\xb6&2.\x90E\xdb\x9b7\xfd\x99\xcf\x05:\
+n\xf4\xad\x84&\x8b\xe7\x9b\xb8\x17 \xfc\x22D\xd2\xe2\
+%-S\xc6\xcdb\xb4\xa9gw\xf3\x8e\xfe\xc8\xc8\xc2\
+\xb6u\xf4V\xf2Qq\x09\x8a\xad\xeb0}\xb7\xcdq\
+{O\xfez|\xc5\xfdw?\x94\x10/\xa0\xdf\xf5`\
+}\x8bW\xea\xf1\x12\x18k\x18?\xaa\x81\xa97\xcd\xe7\
+\xf3/?\xc9f\xb3\xb9\xc6o\xd6\xcb\xd1\x7f\xd2\xbf!\
+\x00@\xe7!~\x1b\xff@x\xfa|\xd7\x99\xa7\x1e\x9b\
+\xb1$\xd1\xeb\xba\x09\xe8\xc3KX\xbc\x84\x89\xado\x18\
+\x9d\x1c\xc3\xcc\xb1K\xd8\xb9kk\xa6\xe7\xf2\xefo\xb7\
+\xbe\xef\xb6\xdcH\xbb*\x00\x80\xae\x16m\xaf\x9f\x9bM\
+^\xba\xdc={\xc1\xf4\xc6\xc4\xa5\xfc\x19\xc4\xe6K\x11\
+\xa8K\xa6\x98=v\x19\xcd\xad\xfbs\x1d\xe7\x7f\xda\xd1\
+\xb2N\xd6T\xa3[5\x00@g\x8b6\xdf<\xe3\xea\
+\xac(\x92\x86Yw=\xeew\xe7~\x06+x\xd62\
+cL#\x1d\xa7\xceF\x87\x8e\x1c<q%\xe5\x16\xf7\
+\x1c\xa8\xbc\xe9\xaeo\xb5\x14#\xcd\xd4\xe9\xf2\x1fN\x1c\
+9s\xee\xdc\xf9h\xfa-O\xa2\x0e\xa6\x8c\x9aO\x7f\
+O\xa0{\x9aw_\xc5D\x8bN4\x11\xd4\xa094\
+\x11\xcdlb\xe4\x88\x1cu\x15)\x94\x89\x16\xef\xe8\xb2\
+\xc5+\xeb&N\xb8\xdd\xf4\xf5\xf7\xb2y\xeb\x87\x12\x06\
+\xe1B\xfc\xe8X\xa5\xfb\xb2)\xf2mMd\xae\x9f\x1f\
+\x92\x8aSi\x9b\xc6\x90+\x8f\x17O\x89hj\xfbW\
+\x9f\xf1\xf2\xf3\xaf\xf1\xc5\xd7[\x5c\x10\xe6=\xeb\xb3\x0b\
+l\x9cm\xca\xa4\x9cT\x9a\x14TS\x0b\x807\x9e\xdb\
+\x90*\xea\x18\x0b\xd6\xc4\xd6X\xc0*\xc6\x98\xd8\x02/\
+4\xae\xf6\xe2\xc8h\x0a\x15\xa4P%E\x04u\xe0D\
+\x10Q>\xd8\xf2N\xd9\xc8\x94\x05\x88$d\xdf\x85\x8d\
+x\xd6\xc3X\xc5\xfa\x03K\xb1\xc3\xa9\xc3\x89\xa0\x02.\
+\x8a\x8b\x95D\x82\x08H\xe4P\x0c\xea\xb4T\x90\x96L\
+[]\xd6yE\x80|\x94a^\xfd\xcak\x13\xa6\x18\
+\x05\x83)F\xc3\x98\xd2\x12\x19S,F\xf1q\x1c\x81\
+xNE\x11)\xad\x89\x0f\x0c\xfal*\x0b\xb0q\xdb\
+\xbb\x15\x89\xffe\xb3\xc4\xd8%\xa2J\x7f/\x16H\x10\
+\x03z\x03\xec\xc0^\x14+\x0a* \x80\xbb\xaeG\x05\
+\x1b\x14\xc6\x83\xb6\xe8\x8d~\x9fL\xc1\xd1@\x08;`\
+\xbexMQT\x0a\xe3\xa2\xe3\xa80W\xf1{\xbd\xaa\
+\xff\xb7*\xef\xad\xfd\x8b\x14\xf8\x1b\xa76\x84\xbb\x5c\xf4\
+\x09<\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x07\xe8\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x07\x9fIDATX\x85\xc5\x97ilT\xd7\
+\x15\xc7\xff\xf7\xde\xb7\xcc\xe6\x19\x0f\xb6\xd9q\x0dij\
+\x84\xa1,\x06\x5c5\xe4\x03(%%Q\x8bB\x15Z\
+\xe3\x80\x9a\x14\xe3\xa6\x8a\x14\xb5R\x94\x96\xb6R\xfb\xa1\
+\xf9P\xa9\xad\xd4FE\xa1,i\xb0I\x05\xa1\xca\xd2\
+\xaa\x09\x11qC\x09M\x00c\x96\x1a\x12\x88\xb1\x0dx\
+\xb7g\xb3g\xe6\xad\xf7\xf4\xc3\xcc\xd0\xe7\x05\xdb\xdfz\
+\xa4\xab7\xf7\xcd\xb9\xe7\xff;w\xce=\xef\x0d\xf0\x7f\
+66\x13\xa7\xd5O7.\xf3\xf9\xd5\xef(\x1c\x8f;\
+\x0eU8\xae[\xc49s\x18X\x96\x0b\xd6n\xbb\xf2\
+#\xd7u\xde1\x93\xbe3m\xc7\xb7[S\xc5Z[\
+\x7f\xe4[\x17\xfe\xb4\xf3\xc4\x8c\x00\xd6\xd5\x1f\xad\xd25\
+~0\x12\xf2-\xdd\xb0\xb2<T>\xafX\x84\x83\x1a\
+tM\x81#%L\xc3\xc6p\xca@\xcf`\xca\xbd|\
+s }\xb7?E\x8c\xd3A\xd3\xa2\xdf\xb7\x1e\xac\xeb\
+\x1a\x1f\xaf\xfa\x99\xc6\xcd\xe0x\xaf\xe5\xc0S\xf7t\xef\
+\x0b\xb0\xae\xbe\xe9\xbb~]\xf9\xc3\xf6\xafU\x05\x97.\
+.eD\x80$\x02I\x82K\x04)s~\x04\x803\
+@\xe1\x0c\xa9\x8c\x8d\xd6\x1b}\xf6\xe9\xf3\x9d\xb6Cn\
+\x93#\xb1\xb7e\xff\x8e!\x00X\xfb\xbd\xc6\x87\x14E\
+\x9c\xb4]70-\xc0\xba\x86\xa6m\x01]=\xf2\xfc\
+\xb7k\x02\xc5a\x1fd^\x90@ \x99\x03q$\x81\
+\x88 %A\x12 )\x07\xa2\xab\x1c\xae$|t\xe9\
+\xb6}\xba\xa5\xd3p\x80\x06&\xe9\xba\x10\xfc_[7\
+U\x85\xde8y\x05^\x00e\xbc\xf8\xfa]\x7f.\xe1\
+\x8c\x1fjx\xa2:0+\xe2\x83K\x04\xc3r\x10K\
+daX\x0e\x14!P\x14\xd4\x10\x09\xe9 \x02lW\
+\xc2r$H\x12lI0m\x17\x823<\xbc\xbaB\
+\xad\xac(S\xffr\xf2\xca\x81x2\x1bxb\xd32\
+Z87<!\xd9\x09\x00\x14P\xeb\xd7/\x9f\xaf\xcf\
+++\xc2\xd5\xf6\x01z\xff\xe3[r0\x91\xe1\x8c\x81\
+\x11Q\xce\x87H\x0a\xce\xec\xc5\xf3\xa3\xe6\xaa\xa5\xf3C\
+\x95\x15%\xdc\xa72\xa4M\x17\x19\xd3F2c!\x95\
+I!\xa8+\xd8\xb1eU k\xd8\xd0t\x95\xb9\x92\
+\xa6\x07\xd0\x05\xdfSS\xb5\xc0w\xe8\xed\x8b\xee\xad\xbb\
+\x098\x92\x84\xe0\xdc\xb4,\xa7\x9b\xb8\xbb\xa3e\xff\xae\
+O\x00\xa0z\xcf\xb1\xc8\xf5[C5\xed\xdd\xf1\xdd\x80\
+||M\xe5\x02\xb6\xa2r\x9e\x1f\x5c m\xb8p%\
+\x10O\xdb\x185]\xcc\x89\xe8h\xef\x1b\xc5\xb2\x85\x13\
+w`L\x0dT\xefy%\xe0W\x8a\x07WV\xce\xd1\
+.~\xda\x87h8\xa8(\x0aG\xdfP\x22.\x1c\xf5\
+\x8b\xff>\xb8=6Y\xcd\xacx\xb6)\xeaw\xf9\xb3\
+\x82\xb3\x9f|e\xe5\x22\xdf\xca\xcay\xca`\xd2D<\
+cCJB!\xf3\xb5\x0fD\xf1\xebW\xcfP\xcb\x81\
+:^X\xcb\xbd\x818\x15-&P\xe0\xd2g\xbd\xe2\
+\x0b\x0bJXI4\x18\x13B\xf4\x83X\xdb\xfd\xc4\x01\
+\xe0\xea\xbe\xba\xf8\xb9\xfd\xb5/\x19\x16U\x9e\xbd\xdcu\
+\xf2\xd57/\xa0$\xa4\xa0\xbc4\x00\xa2\x5c\xb1\x02\x00\
+\xe7\x0c\x9c\xc1\x1c\xa3\xe9\x9dH&\xb9a9\xd0|\xbe\
+\xe1\x90\xdf\xf7A@\xd7?p\x1c\xe7&\x91;\xe1L\
+Of\xad\x87j{\x00\xfaXQ\xb8\xa5(\x0a\xe2\xa3\
+\x16\x88\x00\x22\x801\x80\xb3\x89\x87nL\x0d(6\x5c\
+G\x00\xb3\xa3\xa1\x7f\x04\x03\xfa5\xc6y\xb28\x12\x0c\
+\x0c\x0d\x8f\xcc\xa8cV\xd77~?\xec\xd7\x7f\x5c\xfb\
+\xd8*\xad?i \x91\xb6 \x91\xeb\x15\x85\x1d\x98\x12\
+ \xeb\xc8.Up\x8cf\xb2\x1f\xf6w;\xed\xb6\x22\
+F\x93\xd9\x84\xe9\xba\xf6\xe8t\xe25\x0dM[}\xba\
+\xf6\xdb]\xdfX\xed\xd7u\x15A\x9f\x86\xf2\xd2\x00\xc0\
+\x00\x06\x06Up\x08\x06\x0fN\xce& \xad{\xfa\xf5\
+E\xe7\x0f\xd7\xde\x99I\xc6\x05[\xb3\xfb\xb5M\x0c\xfc\
+\xd4L\xfd\xa7\xec\x84\xd5\xbb\x1bIp\x96-\xcc%\x91\
+B\x04u\xb2@\xd2\xd5f\xb7\x1e\xde>8S\xe1'\
+\x9f<&\xba\x22F\xf9\xb9\x03\xbb:\x0a\xf7&\xf4\x01\
+\x00x\xf9\x85\xaf\xfb\x81\x5c\xf1H\x22\xd8\xae\x84\x94\xb9\
+B\xea\xe8Mb\xdf\x89\xf3)\xdbr\xab\xa7\x13on\
+\xee\xf0m\xdc\xb8\xd8(\xcc\xdb\x8b\xado2\xe2\x7f\x85\
+'q>\xd9BI\x84\xcb\x9d\x09\xb4v\xc4q\xb93\
+\x81kwR\x88\x8d\x9a\x18\x88gp\xe0\xcd\x96\xb4\xe3\
+:\x9b/\x1e\xdc\xf9\xf9\x94\xe9\x1217\xaa\x967\xb7\
+\x0d\xcc\xfd\x9f\x18\xb9@\xae\x89M\x090\xdef\x854\
+\xa8\x82\xe1\x8f\xc7\xceI\xc3v\xeb\x0a\xddp*\xfb\xc5\
+/\xc1\xae\xdf\xcd>, \xabN]\xed\x7f\xa0\xb9\xb9\
+YQUmk\xee[c\x1a\x00O\xa12\x06\x94\x14\
+i\xc8dm\x00\xc4\x05xm\xf5\x9e\xa3\xa5\xd3\x01t\
+F.\x85\xe3i\xf7\xab\x00_\xa6p\xaaj\x8b\xcf\xd9\
+H$w0\x06XB\x8cL\x09\xe0}f\x10\x017\
+{G 9\xc7\x0fw>\x84\x0dk\xca\xb7\x09\x8e\xf6\
+u\xf5G\x9e\xaf\xa9k\x9c\xd8\xdc\xf3\x96\x96\xf6\xa3\xaa\
+\xc2\xaa8\xa3e\x89\xb4\xb5\xf6\xf8\xe9\xebME\xe1\x22\
+\xc19\x1f\xb9\xba\xaf.^\xf0\x9b\xb4\x08%\x118c\
+\x98_\xeaGO,\x0b\xdb%\xc4F,\xc4F\x80%\
+\x8b\xca\xd4Y\xd1\x22\xf5\xf2\xa7\xbd/uv\x0f\xfdj\
+}\xc3\xd1\x13\xb6#_\xd3\x0c\x9c\xff\xa4\xe9\xa9T\xf5\
+\x8b\xefG\x8a\x84\xef\xb9\xd1\xb4\xf3\xe2\xf2\x8aP\xea\xed\
+\xb3w\xe6\x9e\xb9\xd4\xb1 \x10\xf0\x91/\xe0S\x13\x89\
+\xd4\x05\xaf\xd6\xa4\xc7\xf0w?\xda\x8c\xac\xe5\x22\x91\xca\
+\x22\x1c\xf2\xa3/\x91E\xf7p\x16\xfd\x09\x13\xae\x94\xd0\
+U\x81hP\x85\x94\x84\xae\x9e\x98{\xb7'\x96\x8e\x8f\
+dt!\x14\x9dq\x05\x94\x7fvK\xc7A \xa8\xbb\
+\xd1hX\xd1\x03~\xdc\xe9\xea\x19\xc9\x9a\xe6\x0f.\xbe\
+\xb2\xa3q\xca\x1d \x02n\xdeI\xc8\xc3o\xb5\xf0\x07\
+\xcbK\xb2[6<\xe8W\x04\x07c\x04\x02\x901\x1d\
+\xa4\x0d\x07B0D\xa3a1\xbb,\x12&\x09\x8c\xa4\
+\x0d\xa4\x0d\x1b\x8eK\xe0\x9c1\xaehpI*\x8e\x0b\
+\xa4\x92iX\x861j\xc6\xd5c^\xad\xf1\x00\x0c\x00\
+n\xf5&\xd0\xf8\xf7\xd6\x91\xe1\xdb\xe7\x1f\xb5S\x15\x9b\
+:zb?_\xb3t\xa1\xba\xa4b\xb6\x92L\xdb\x88\
+\xa5-\xd8\x0e\xc1r$L[B\x12\xdd[\xce5\x1d\
+B\xe6\xfa\x86\xe5\xba\x001d2Y\x0c\xf6\xf5g\x8d\
+D\xcf\xae\xb6\xe3/0\xe4jO\x02\x80\xf0\x88s\x00\
+\xfa\x82\xeam?\xbbr\xa3?=t\xfbR\xed\xadw\
+\x7fs\xab\xbf\xed\xbd\xcf\xccl\xf2o#|\xf6\xbc\xcf\
+o\xc7\x17\xfau\x05s\xa2!\xee\xd7\x150\x86\xfc{\
+!@2w\x95$\xf3y\xe4v+>\x9c\x94\x03\xbd\
+\x83\x99\xcc`{C\xdb\x89\xbdg\xf3:9\x07@\xb2\
+{\xe8\x80\x06@\xab\xde\xdd\x98\xca&n?s\xed\x8d\
+\xbd\xcd\x85{\x85QZ\xf5\xc8\x92\xf9\xcb\x1f\xab\xf5E\
+J\x1f)\x0e\x07eii\xd4\x1f\x0c\xf8\x98\xa6\xa9\x00\
+cp$`\x9a6\xd2\x86\x85d2\xed&c\x89\xac\
+mf\xfe\xd3}\xf1\xad\x9f\xf6_y\xa7\x03\x805n\
+\x98\xcc\x93\xbd\x06@\xffr\xed\xcb{\xae\xbc\xfe\xdcQ\
+\x00\xfa8\x80{s\xcd\x1f)*[\xbeee\xf1\xc2\
+\x155zQ\xd9\x97\xb8\xa6\x97\x81\xb8B\x8c\x09\x069\
+*\x1d\xb3\xd7\x88\xf7}8t\xe3\x9f\xef\x0e\x5c?\xd5\
+Y\x10\xf3\x0a\xe7\xaf\x86\xf7\x14L*\x96\x1f\xea\xb8\xcf\
+j\xbe~\x84w;\x018\x00l\xcf\x18\x9f\xf1\x98\xec\
+\x01\x98\xde\x22\xb41\xf6X\x16\x82\xba\xf9\xc0N~a\
+AX`l#\xa3\xbc\xaf\xd7\xdf\xf6\xac\xf3B\x19\xf9\
+\xeb\xa4\x7fL\x0a?\x87\x8a\xb1\xd9\x8e\x17.\x14S!\
+F\x01\xb8\x00=\x19HA\xf8^\xaf\x9d\xeeUK\xe4\
+\x85\x0b\x10\xdc\x03\xe0\x15/\x00x!\xbc\xc2N\xfe\xde\
+\x04\x9b\xd1\xbb\xde$k\xbc\xa3 \xee\x85\x98\xf8\x0f\xe4\
+>\xf6_\x84=\xc2\x88m2sv\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x07\x87\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x07>IDATX\x85\x9d\x97ilT\xd7\
+\x15\xc7\x7fo\x1bw\xc66\x06\xef@\x10I\xb0\x0dF\
+\xd8\xc6\xae\xb1\xc3\x14\x09\xc5U\x95\x0f\xa9\x1aAEi\
++5!J\xd5\xaa\x12k\x11\x04\x15U\x15\xadZ\xe1\
+\x88\x86\x90\x14\x1a)\xf9\x80\x95D\x09\xf9\x12U\xaaT\
+\xb58\xa8iTZ\x88\xa1j\x95Pd\xeca\x16\xdb\
+\xe3M\xf60\xdb\x9b7o\xeb\x87yo\xc6c\x8fk\
+\xb7W:z\xdb\x99\xfb\xfb\xdfs\xce]F`\x15\xed\
+\x97\xf0}\x01\xdeZ\x8d\xaf\xdb$\xf8\xcd\xcbpd%\
+?a%\x87W\xe0\x07U\xb5\xb5\xaf}\xf7\xd4)\xaf\
+\xec\xf3-u\xb0m\xb0,\xb0ml\xd3\x04\xcb\xc26\
+M~\xf7\xe6\x9b\xeaX(t\xf94\x9c\xfa\xbf\x05\x9c\
+\x87\x1f\xad\xab\xab\xfb\xf5\xb7\x8f\x1e\xf5\xa6\xc3a\xe2\x0f\
+\x1e,\x85\x03\xb6m\xe7\xee\x1d\xf364\xb0v\xfbv\
+~\x7f\xf5\xaa\x1a\x19\x1b\xbbx\x06\xce.\xc7\x90\x96\xfb\
+\xd0\x0f\x87k\xea\xeb/\x1c<v\xcc\x9b\x8eD\x88\x8f\
+\x8e\x82 \x14\x0c\xf2\xd7\xc5\xa30\x92I\x0cU\xa5\xfd\
+\xe9\xa7\x95\xc9@\xa0\xbb'\x91\xf0\x0c\xc2\x9fW-\xa0\
+\x1f\x8eV\xd7\xd7\xf7\x1f<v\xcc\x9b\x0a\x85H\x04\x02\
+ \x08\x08\xa2\x88\xb0\x08\xee\xb6R\x22\xccL\x86\xb6\xbd\
+{\x95h \xd0\xd3\x9bL\xda\x83\xf0\xe9\x8a\x02^\x81\
+\x13\xb5\x8d\x8d\xbf\xfa\xd6\xd1\xa3\xbed0H\xf2\xe1C\
+\x04\x07\xee\x8e^\x10\x84\x92\xb9\xcb\xbfsRc$\x93\
+\x98\x9aF\xdb\x9e=\xcaX \xe0\xf7\xa7R\x99A\xf8\
+\xdb\xb2\x02\xfa\xe1d]c\xe3/\x0e\x1c9\xe2K\x04\
+\x02\xa4\x82\xc1\x1cT\x14s\xb60\xfc%F\xed\x82\x0b\
+\x8f6z2\x89\xa9\xebt\xf8\xfdJ$\x10\xd8\xf3\x95\
+t:u\x1dn-\x11\xd0\x0f\xa7\x1a\xd6\xaf\xff\xf97\
+\x8f\x1c\xf1%FGI\x86B\xb9p;\x02\xcae\x99\
+\x8d\x1e\x0f\x09\xd3\xc4.\xa6\x14Ak\x14\x85:E\xe1\
+\x91a`\xdb66\x90M&\xb1L\x93\xf6\xde^%\
+\x1c\x08\xec\xf5\xab\xea\xdc \x0c\xe5\x05\x9c\x873\x8d\x1b\
+6\xfcl\xff\xe1\xc3\xbe\xf8\xf00\xa9p8\x1fj\x04\
+\x81rY\xa6\xb6\xa1\x81\xf4\xbe}\xac\x1b\x19!\x99\xcd\
+\x16D,\x10\xb0\xce\xe3\xa1\xbc\xa5\x05\xbd\xa7\x875\xe1\
+0q\xc7\xcf\x064G\xc4\x8e\xeen%\x1c\x08\xf4=\
+\xa5iS7\xe0\xae\x04\xd0\x07\x9f\xbet\xee\x9c\x12\xfb\
+\xfc\xf3\x1c\xdc\x0d\xb1\x03\xaf\xa9\xafg\xee\xecY\xf4-\
+[\xa0\xbe\x9e\xea{\xf7HjZn\xfa9\xad\xba\xac\
+\x8c\x8a\xe6fb\xa7O\x93mkC6M\xd6\x86\xc3\
+<\xd2\xb4\xbcO&\x99\x04\xdb\xa6k\xf7n\xe5\xce\x9d\
+;\xdf\xf8\x18\xce\x89y\x98,\x93\x0c\x85\x8aFd\xdb\
+6\x0d@\xfa\xd9g\xb1}>\x04A@\xdb\xb5\x8b\xcc\
+\x8b/\xb2\xb1\xb2\x12\xd1\x99\xf7\xd5^/\xe5\xad\xad\xc4\
+\xcf\x9cA\xf4x\x10E\x11\xf5\x99g\xa8\x04\xca$\x09\
+\x0b\xb0\x9c~\xe3SS\x88\x8a\x92g\xc8\x8b\xebhq\
+X\x83\xba\xcec\xd7\xaeAE\x05\xd9\xae.\x04A@\
+\xef\xedE\x90e6\x0e\x0c\x90J\xa7)om%y\
+\xfcxn\xa6\xd86b:M\xd5\x85\x0b\x04\xb3Y\xd2\
+\x0bj\xc1v\x06\x85e-#\xc0q\x5c8\x9dLA\
+ \x12\x8b\xb1\xe9\xddw\x11e\x99\xec\xce\x9d\x08\x82\x80\
+\xb1k\x17\xa2$Qy\xe3\x06\x89\x13'@\x14\x11\x01\
+!\x95\xa2\xf2\xe2E&B!\xe2\xaaZ\x04\xce\x0b)\
+)\xc0]J\x9d\x1f`\xdb\xf9E\xc72M\x22\xd1(\
+\x9b\xde\x7f\x1fQQ\xd0\xdb\xdbs\x22\xba\xbb1\xba\xbb\
+\xc9\xe71\x95\xa2\xfc\xf5\xd7\x99\x18\x1d%\x9eH\x14\xa0\
+\xffK\x04\xb0\xed\xfc|_(\xc4\xb2m\x22\xc1 \x8f\
+]\xbb\x86(\x08\xe8\x1d\x1d\x85U\x11@U\xf1]\xb9\
+\xc2\xf8\xfd\xfb\xc4c\xb1\x22\xb8\xa5\xebX\x86\x81\xe5\xa6\
+#\x9b-\x1d\x01\xdb\xb2\x8a;u\xc4\xb8\xd5nZ\x16\
+\xe9x\x9c\xca\x9b71;;\x8b|\xa5\xc9I\xa4L\
+\x86\xe4\xfc<\xd9\x99\x19\x8cx\x1c3\x95\xc2PUl\
+\xcb*D\x000\xea\xea\x96OA\xbe\x06\xdcH\xb8\x05\
+)\x08To\xdeLEO\x0f\x99\xe7\x9fG\x14E\xe7\
+\xb5\x93\xa6\xa6&\xd4\xe7\x9e\xe3\x89p\x98\x7f\x0d\x0d\xa1\
+\xebz\x11\xd45\x0b\x8aR\x90O\x9f\xed\xec\xe9XV\
+N\xb1\x13\x11\xf7}\xf5\x93OR\xe5\xf7\x93}\xe1\x05\
+\x04YF\x14E$]G\x9a\x9ar\xf4\xdb\x98\x9d\x9d\
+\xd8\x87\x0f\xd3~\xf0 \x92\xc7\xb3\x04l\xb9\xcf%k\
+\xc0\xb2r\xe6\x86\xd5\x8d\x00P\xdd\xdcL\xd5\x9e=h\
+\x07\x0e H\x12\xa2(\x22f\xb3Ho\xbc\x8141\
+\x81~\xe8\x10f{;\x96eauu!\xca2\x1d\
+>\x1f\xff\x18\x18@\xd7\xb4\x02\x98\x05\x85XJ\x80m\
+\xdbK\xc2_\xdb\xd6F\xa5\xdfOf\xff\xfe\x02\x5c\xd3\
+\x10/]b\xe4\xbd\xf7\x88G\x22\xb4)\x0a\xb2\xa2`\
+\xb4\xb6\xe6j\xa5\xad\x0d\xf1\xd0!\xba**\xf8\xec\xf2\
+eLM+\x12P2\x05\x96iR\xbea\xc3\x92\xf0\
+W<\xfe8\xe6\xe6\xcd\xe0\x9e\x05T\x15\xf1\xca\x15F\
+?\xf8\x80\xb9\x91\x11tM\xe3\x9fo\xbf\x8d\xf1\xe1\x87\
+H\xc3\xc3\xb9\xadZ\x10\xb0\xd6\xaf\xc7\xd7\xd8\x88\xb2f\
+M\x11\x5c\x10\xc5\xa2\x14H\x00_\x83\x9a\xe9`\xb0c\
+G_\x9fl\xa6\xd3\xe8\xf1x\xbe \xe7\x87\x87\xa9\xf4\
+x\x90e\x19\xb3\xba\x1a\xcf\xc0\x00\xa3\xef\xbc\xc3\xdc\xfd\
+\xfb\xf9NM\xc3`\xea\xee]\xeakk\x11\x1b\x1bA\
+\x92\xf0|\xf4\x11C\xaf\xbeJrr\xb2\x08\xfeDS\
+\x13s\x89\x84=\x1a\x8b\x09\x1f\xc39\x09`\x10\xfe\xd0\
+;?_?=>\xde\xb1\xa3\xb7W6fgQ\xc7\
+\xc6\xd0gg\xd1\x22\x11f>\xf9\x84\xb5UUT\x8d\
+\x8d1|\xf5*s_|\xb1\xa4\xba\x0d\xc3`\xf2\xf6\
+m6l\xda\x847\x14b\xe8\xfcy\x12\xe3\xe3\xf9\xef\
+\xa2$\xb1\xa5\xa5\x85X&c\xdd\x08\x87c\x22|y\
+\x10f\x8b\xce\x14\xfdp\xb1\xa1\xa6\xe6\x87_\xef\xeb\xf3\
+N\xdf\xbeM\x22\x14*\xe4M\x92\xf0\xd4\xd4\xa0NO\
+/\xa9\xee\x85\xcf\x92\xd7\x8bXVF&\x16+\xc0e\
+\x99-\xcd\xcd\xcc\xa4R\xd6_\xc2\xe1\x99,\xec\xfe)\
+<\xcc\xa7\xc0m\x83\xf0\xc7\xdd\xaaZ=\x11\x8d\xee\xec\
+\xf0\xfb\x15#\x95B{\xf4(_\xb9z*\xf5_\xe1\
+n:\x8cL\xa6 H\x96\xd9\xd2\xd2B4\x910\xff\
+\x1a\x89L\x00\xbd?\x81\xfc\x9e\xbf\xe4L8\x08\x7f\xf2\
+g2k\xc7\xa2\xd1\xce\xce\xde^\xc5L\xa7\xc9\xc4\xe3\
++\x82K\x99\xac(4m\xddJ8\x163\xfe>>\
+\xfeP\x84\xa7NCt!\xaf\xe4\xa9\xf8:\x5c\xdf\x95\
+\xc9TG''w\xee\xec\xeeV\x0cU\xcd\x8bX-\
+\x5c\xf1xh\xda\xb6\x8d\x91\xd9Y\xe3\xb3h\xf4\xc1\x1d\
+\xf8\xeak0\xb9\x98\xb5\xdc\xff\x82\xf2\x1b0\xb4]\xd3\
+\xd6\xcdLN\xee\xe8\xec\xea\x92\xf5L\x065\x91X\x1d\
+\xbc\xac\x8c\xa6m\xdb\xf8\xf7\xf4\xb4qkjj\xf8-\
+\xf8\xdeMH\x93[\xe5\xb3\x0bA\xcb\x9d\xae+];\
+\x09/o\xad\xa8\xf8\xce\xbe\xbd{\xcb\x04wi\xb6,\
+,w\xe5\x5c`\xee;\xdb\xb2\xb8\x13\x0c\xea\xb7gf\
+\xee\xfd\x16\x8e\xcf\xc2,\x90\x00\xe2@\xcc\xd1\xb9\xac\x00\
+72k\x80\x0a\xa0\xe2\xc7p\xb2\x16^Z\xc6\xb7d\
+K\xc3\xadKp*\x01\xf3@\x8a\xdc5\x8e\xb3\x1f\xad\
+$`\xa1\x90/\xb9B\x9c{\x8fc\x0a\xb9\x95\xd4\xed\
+\xc3\x02\x0cr!\xce\xe64\x90\x00\x92@f1x\xb5\
+\x02J\xf9\x8b\x8e0\x17.P<AL\x0a\xb5\xbab\
+\xfb\x0fC+\x09\xef\xbdQ\xf6l\x00\x00\x00\x00IE\
+ND\xaeB`\x82\
+\x00\x00\x04\xb0\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x04gIDATX\x85\xed\x96mh\xd5U\
+\x1c\xc7?\xe7\x9c\xff\x7f\xbb\xce\xcc\x8a\x1c\xa4\x22\xc3\xb4\
+\x15\x11\x14Y\xb3\xdd\xa9eV\x9b\xd9\x83J\x0b\x02S\
+\x12M{\x91\xd8\xe6^\xc6 \xa4^\xa8AA\xd0\x13\
+\xcc7EM\xca0\xf0EJ\x96\xe8E\x03\x89\x05\xea\
+\x16e\xea|\xdau\xde=\xde\xbb{\xefy\xe8\xc5\xff\
+\xbf\xdb\xbd\xd7\xad\xf6@\xef\xf6\x85\x1f\xbf?\xe7\xcf\xf9\
+\xfd\xbe\xe7\xf7t\x0eLa\x0a\x93\xc4\xe2FU_\xdd\
+\xe0\xb9\x89\xee\x97\x93\xf0-\xa2;\xbc\x9d\x0b\xee\xba\x7f\
+\xaf\xef\x95N\xd8\xc8\x84\x08<\xdd\xc8\xf4\x9a&\xef\xc0\
+\xe2\xfbV\xbc\xf5\xfa\x0boG<\xe5O\x98\x807\xde\
+\x0dUM\xccM\xe2\x1fZ\xb3t\xd3\xfcE\xf7.\xf3\
+\x95T\x13v\x0e\xe3\x8c@u\xa3\xf7\xd8t\xef\xd6\xb6\
+7V\xbf\xb3\xf0\xe1\xca%~{\xd7I\xac\xd3\x93\x22\
+0\xe6\x08D\x1b\xd4\xfaY3g\x7f\xb4\xf5\xc5\xe62\
+\xe5+:\xbaN\x921i\x1c \xc0\xfc\x7f\x04\x9a\x91\
+\xd1\xa4\xb7\xbbr\xceC[6\xd4\xed\x88\xf4e\xe2\x9c\
+\xef\xfe\x1dc5\xceYp\x0e\x07j,\x9dp|\xb7\
+\x16\xe3\x22\x10mb\x06\x83\xde\xfe\x9a\x07\xea\xaa\x9f\x8b\
+n\x88\x5c\xeai'\x91\xba\x8au\x06k\x0d\xc6i\xa4\
+\x904\xbf\xf6\x09\xd6Y\x1c\x06\xebl(\x06\x17jc\
+\x0d\xef\xb6\xbc94\xae\x08\xd4l\x8f\xccw\xc2\x1c^\
+\xbbl\xe3\x9cE\x95O\xf8\x1d]'Hf\xfap\xb8\
+\x9ca\xeb\x0c\xb1\xbf\xbe\xc5X\x8d\xb1\x1a\x1djc\xb3\
+h\x9b\xcd\xe9\xe5\xf7\xbc:\xea!G$P\xd3\xe8=\
+^\xe2\xfb\xdf\xad\xab\xdb1c\xf6\x9d\xf3D\xdb\xe5\x1f\
+\xc9\x9at\xf8\xd7\xe1\xb0 \x1c\x16\x83\xc5\xe0\xa4\xc6\xa2\
+q.\xd0\xc3\xe4\xac38,\xce\x8d\x9e\x9d\x9b\x08D\
+\x1b\xfc-w\xcc,\xdf\xb3\xaev\xfb4\xe9C\xdb\xe5\
+#A\xae\x85@\x08\x10\x12\x10\x00\x16+\x0c\x16\x1b\x90\
+\x10\x1a'\x0d\xe4\xa5'\x08\xbf\x06,\x0eF\xec\xd7\x02\
+\x02\xd1&\xff\xab\x8a\xf2\xca\xe7\xd7\xafl\x8c\x5c\xea;\
+Kg\xf7Y\x04\x02!\x04R\x06Z\x00B\x10\x9c\x0c\
+K\xca\xf4\x93\xcc\xf42\xa4\x93h\x93\xc6\x1a\x87p\x0a\
+\xe9|\x14%amXp\x8c8\xad\x0a\x08Xk\xab\
+\x85\x07\x83\x99\x04}C\xd7\xd1&\x03\x04\xce\x95\x10\x01\
+\x19\x1c\x83\x99\x1e\xfa3q\xfa\xb3\xd7\xc9\xd8T\xd0\x09\
+\x0e\x9c\x05k\x1dV;\xacq\x18\xed\xf0\x88\x90\xd6\xa9\
+\xb1\xa5`\xeeySq\x8e\xb3\xbb>\xde\xbfs\xf3\xb3\
+K_*S\xd2\xe7\xcc\xb5\x18\xa5%>\xd2\x03C\x1a\
+-\xd2 \x0dR\x09\x84\x14xR\xe0\x10\xe0\x1c\xd6\x82\
+0a\x86\x00\xe7 \x9bM\xe5\x13P\x14\xcd\x8c\x82I\
+\xd8\xda\x8a9\xb6Ko\xef\xedKl\xdd\xf7\xc3\xde\xa4\
+o\xca\xdc\xa3\x15u\xa4\xed \x03\xd9n2\x0c\x22\x94\
+Ey\x12\xe5\x89@|\x81\xe7\x8b\x7f\xd6\x94@z\x02\
+\xa9\x04R\x81T\x05\xad\xefST\x0b#\x8db\x19\xdb\
+c\xbe\xee\xbf\x92\xa9\xfd\xfe\xa7}\x89+W\xaf\xea'\
+\x17\xae\xe7\xb6\xb2Y\xa1\xd1\xc0\x81\xf2$\xca\x17(_\
+\xa2|\x89\xf4C\xc79\xe7A\xea\x82\xda)\x88xA\
+\xd4GjC\x09\xc8S-\xbam\xde\x12\x96\x1c\xb3\x87\
+[o$\xba\xee^Z\xf5J\xe9o\xdd\x07\x89\xa7\xff\
+D\xe59YY\xd1\x00\x8e\xb0\x06\x824\x04\xdaau\
+X\x13\xc6\x15\xd8\x0e\xc5\x8eF \x87\x0bG\x89\xf7v\
+\xe8U\xba\xbemOO_\xa2v\xd5Sk#\x9dC\
+\xbfr~\xf0\x97\x80\x84\x17\xd4\xc1{\x1f4\xff\x9b\x99\
+|\x8ci\x14\xbb\x90\x9d\x03l\xef5\x86N|h\xb6\
+e7vn\xfeb\xa0\xa5a\xcd\xaa\xfa\xc8\xed\xe5\xe5\
+\x9c\xee?\x84P&\x97\xe3\xe3\xbbu\x14\xd0\xa1d\xf3\
+$\x93\xf7m\xf3\xec\xe7BR\x0cS$\x1a\xd0\xa7>\
+\xd7\x9fv\x9e\xee\xd9\xf4\xe57-\x03\x83q\xe7\xaa\xca\
+\xeb\x99\xe6\xdf\x12\x0c\xa6\x00I`\x08H\x179\xd5y\
+b\xc2\xb5\x1cF{M\xb8\x11\xbe]\xfc\x8c\xbb \x15\
+\x07/\xa7\xce\xac\x88\xa8\xb2\xb2G\x16<\xa3JT)\
+GcG\xb8\x18\xb3\xef\x17\x9d\xb8\x98D6$W\xd0\
+\x86\xa3\xd5\x80\x0b\x0d\xd8<\xd1\x80w\xeeg\xdd>p\
+\x89\xe5\xce\x1e\xfd\xac\xab;^\xb5\xba\xb6>\x92\x17\x81\
+\xe1\xf0\x16Gp\x98\xd0M\x97\xc2\x7f\xbd\xa7\x86\x1d\x9b\
+p\xb3\x01t2A\xeab\xcc\xb6\x96.\xb81\xbd\xe3\
+\x8f\xf6\x07\x93C\x03\xde\xc5\x98\xddYt\xf2t\x9eL\
+\xee\xd9T\x04\x11\x12\xf7\x00\x7f\xf16\xf5r\xf8\x18\xf1\
+\xc3\xb5\xdcu5\x85)\x8c\x05\x7f\x03\x8dcF\xa6\x8c\
+\x98\x19\x1a\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x06\x92\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x06IIDATX\x85\xb5\xd5}l]u\
+\x1d\xc7\xf1\xf79\xf7\xdc\xc7\xf6\xde\xdbvm\xd7\xadv\
+\xed\xba\x95\x87\xb5\x85\xd9\xb1\xb1\x8d=\xb0\x11\x10\xcc\x88\
+\x89\x93\xb1dVS6j\xe2\x031\xe8bD\xd1\x09\
+F\x0d\xa0\x18\xd82\x15\x12\xca@c\xda1\x13\x94\x02\
+\xdbD]]\xd9D\xd9CW\xba\xa7\x92>\xdc\xc7\xde\
+\xb6\xf7\xe1\xdc\xc7\xf3\xe8\x1f\xde\xe2\x9d\x94tv\xeb7\
+\xf9\xe6\xe4wrr\xce\xeb\xf79\xbfs~\x02\x05\xf5\
+\xdc}\xd8)\xb3\xbcd\xc2}\x98h\x02f7\xaa\xf1\
+\xedG\xba\x880G%\x14\x0e\x9e\xdf!\xfd\xa4\xe6\x86\
+[\x1em\xb9\xe7k\xf6\x5c&\x81o\xe0\x98v\xf6\xf8\
+\xeb#\xba\xaa7=\xdaEf.\x00\xd2\x95\x1c\xf3K\
+\xb7\xdc\xd9f?r\xe0\xbb(\xaaFIE\x8d\xb4\xb0\
+\xbeqa\xe0\xc3\xfeV\xd0\x7f3\x17\x00\xb1p`\x18\
+\xa6W\x8e\x06\xb1\xb8\xcax\xf0\xa9\x8b\xc8\xd11\xea\x1b\
+\xd7;\x04\x81\x1f\xee\xd9s\xe5\xb5s\x02\x10\x11\xdeM\
+\xc7|\xa6\xa1\xa49\xf8X3\x129*k\x9b\xf0\x94\
+Vz=\x17-\xf7\xcf\x05\xc0R8\xb8\xb7\xd9\xfc \
+4|\xa1\xf5\xee\x1d\x8f[]F\x04\xb7\x11\x04\x0c\x8a\
+\xbd\x95\xb6\xb0\xff\xf2\xd27\xcf\x9a/\xcc)\xe0\xad>\
+\x82\x9fi2\x84\x09\xff\xf9\xd5M\x1b[\xad\xa9P\x1f\
+\xd9\xe8\x10\xa5\x8b\x963|\xf9\x83\xd2\xbbn\xd6\xba\x0f\
+\x9f#t=\x01\x1f{\xaf\xd1\x06\xe3\xa7\x93\xa1\x91s\
+\x17N\x1e\xd2J\x16\xafCS2\xc8\xc1\x01\x16TU\
+\xd9\x9c\x0e\xe1\x07\xef\xfe\xd6\xfe\xfc\xdf;0;;\xaf\
+\xc4\xcf\xb6\x84\xe9N\xfe|;5\x16\x8b\xa5\xbf\xe5\xf6\
+\x8dn33N:\x1e\xc2V!b+\x99`A\xc3\
+z%2\xf2\x0f\x8b\x91N.\xb9c\x17\xc3s\x02\x00\
+\xf8\xe5\x83\x96\x07\xac\x0e\xebK7\xdf\xba\xb0\xc8^\x1a\
+\xc4=\xaf\x86\xfa\x15\xad@\x19\xaf\xb4\x7f_\xb9p8\
+\x96PU\xb3}\x1f\xfcaN\x00\xbd\xaf\xb04#\x0b\
+\xc7\x8b\xbc\xde\xca\x86\x95_\xc0[\xb1\x8c\x13\xaf\xf6\xf0\
+\xc6\x9e\xa3\xd49\x8bX`\x88\x1c\x09\x04d\x0dj\xf7\
+Ct\xb6\x00i\xba\x93=\x1d|\xcb0\xc4g\x16\xde\
+t\xa3^\xb9\xe86\x82}a\xf6\xef~\x0d)a\xd2\
+\xde\xb2\x1a\xaf(\xe2\xf3\xf9p\x84\xc3bZ\xd7[\x80\
+?\xcf\x160m\x02\xc7\x0e\xb0Q48\x22\x08\xd5\xc6\
+\xfb\x1d\x9a}\xe4\xc48k\x1cnV\xd6/\xa1\xb4\xaa\
+\x8a\xf7\x02~\xfe8\xd0G\xcdm\xa6\xbe\xeaa\x06L\
+\xc3\xf8\xce\xba6\xba\xaf\x1b\x00\xe0\xc4\xabx\xba\xda\x09\
+\xd5\xe7p.\xd3\xc1SR\x82\xec\xf5\xf2\xb7D\x04\xeb\
+|\xc1\xdc\xb6\xaf]X\xbc\xa2\x8eXd\x90\xe1s\xaf\
+\xa7\xb3\xf2\xd0A\xaf\x83\x87\x1b\xb7\xa1\x5c\x17\x00\xc0#\
+0\xb4\x0ej\xdd\xc0Y\x87\xc8\xb8\x0d\xb6\xfcx\x0b\xeb\
+w\xb6c\xe6z!\xf7>\x8anE1\x1a\x09\x0e\xf6\
+f'}\xc7\xce\xe44\xee\xdd\xd4F\xec\xba\x00\xbe\x02\
+\x9f\xb5\x0bt\x09V\x9c\x9f\xdeZ\xcc\xf6g\x9f\x10l\
+v\x15\xd3\x88\xa3e\xc7\xb0\x08\xe3\xe8\xba\x1f9\x91\xc2\
+\xb0\xad!\x19O\xab\xa1\x81\xceQ\x0c}\xc3\xda/\xe3\
+\xbff@\x1e\xd1\xb0\xf5\x17<\xd1\xb8\xe9\xfe\xed\xf3\xab\
+\xab@\x0b\xa3SJ&\x95\xc4\xeeP\xd1\xb3~\x14-\
+A,\x1a\xc5\xe6^\x87(.1\x86\xcf\xfcj\xc2\xcc\
+\xa56\xacm\xe3\xfcL\xf7\x9fq\x87\xfb5\x5c*\x9a\
+GR3T\x145\x05F\x0c%\x1d\xc4n\x13H\x8c\
+\x87A\x90\xd0r\x06v\x87\x97X\xa0\x1bM\x1b\x10\xeb\
+W=V.9\xcbO\xf6\x1c\xe0\xf6k\x06\x00`\xe0\
+W3qCUA\xd3dtu\x12AHbh9\
+\xb2\xa94JV\xc7\xd43\x14y\xeb\x99\x1cy\x9bl\
+\xa2G\xa8_\xfd\xb8\xa7\xc8\xdd\xf0\xce\xf1\x97\xf9\xe25\
+\x03\x0c\x81\x0f\xd3\x89HV\xd3\xec\xa4\x92\x09\x102\xa4\
+\x13AJ\xca\x8b\x89\x04\x82\xb8<^\x921\x0d\x84\x08\
+\xee\x8af&\x86\x8f\x12\x0fuR\xb7r\xb7\xab\xa4z\
+\xf3\x0b\xbd\x07x\xb1\xb7\x13\xe7\xac\x01\x02\xfc+#\x87\
+uC\xf0\x90\x92\x13\x18\x86B\x22:\x8eER(*\
+q\x13\x1e\xf5\xe1\xf2T#GR\x98\xda(e5k\
+\x89\xfa\xfe\xc9\xd8\xe0~\x16\xde\xf4\x80\xa3\xfa\xd6o\xb6\
+\x8aZ\xf1\xc8\xf1\x0e\xb6\xce\x0ap\xc7\x10\x03ZN\x16\
+45EN\xb5\xa1\xe4\x92(J\x8ed<JiU\
+\x1d\x89\x09\x19\x8b\x94C\x94\xaaI\xc7&1\xf4Q*\
+\x97\xdeIj|\x90\x91\xd3?\xc3]\xd6`\xbba\xfd\
+s\xe5\xa2\xcd{\xb0\xa7\x83\xf6\xc2{_\xd5\x96\xfa\xa3\
+\xbfb\xee\xfc<-6\x97g\x99(\x15\xa1\xa4G\x11\
+D\x89\xb4\x9c\xc6\xe9.\xc6\xeeZDx\xa8\x9f\x8a\xba\
+f\xa2\xfe\x08\x82e\x1c\xab\xc3\x8bg\xferL\xcdJ\
+\xe0\xc2!R\xe3g\x94dbt\xefW\x9f\xe1\xe9H\
+\x04\xe3\xffJ\x00\x90bq^\x8e\x05\xfbe\xa7\xbb\x89\
+\x94\xacb\xb5\xdb\x88Od\xc8$\xfc\x14\x97\xd7\x83X\
+L*z\x91y\x8bW!\x8f\x09\xa8\x990.\xcf\x1a\
+\x8a+\x96\xa3g\xe3\xb9\xa0\xaf\xbfc\xd3C<\xd9\xdf\
+\x8f\x13p\x026@\xb8\x9a\x04\xac\x80\xad\xbb\x17\xff\xb6\
+\xcd\xe9]\x9e\xca\x06\xb7axQ\x95\xcbX\x1du\xc8\
+\x13\x01\x1c\x1e\x0fNO-\xa1\xc1\xd3\x94U7\xe0\xf0\
+4\x13\x1d\xbdL*~^\x09]z3\xfe\x97\x93\xfa\
+C;\xf7\xd0\x99\x9f\xb0P\xd83\x01,y\x805\x9b\
+E\xbag5\xb2\xc3\x12\xddPQ\xbb\xc5\x9a\x18;\x85\
+\xbb\xa2\x96X \x84(%q\x95.\xc7\xc4\x81\x92\xd2\
+\xb19K\x8cx\xe8\xb4\x16\x0aFz\xbf\xf1\x14\xbb\xba\
+\x0e\xe3+xha\x993\xfd\x09\xa5|TV\xc0\xe6\
+tb{k/\xef|\xaaq\xf3R\xc9\xbeB4\xf5\
+SH\xd6\x1aF\xfb\xbb\xa8k\xf9:\xe9\xf8\xa0\x1e\x1a\
+8$N\xc8\xfa{\xbf\xfb\x13{\x7f\xff6\x97\x00\x15\
+P>\xe98\x13\xe0\xa3\x04\xa6 \xbb\xdb\xb8\xf1s\x1b\
+\x85\xee\xea\xc6\x1d\xael2\x85\xd5\x966&}\xa7\xd4\
+l:B`\xcc|\xa3\xeb(\x07_;\xc20\xa0\x03\
+Z\xbe\xd5\xff\xe9)\x80:\xe3^\x90O\xc1Z\xd0\xd2\
+\xbe\xef\xb1\xb9y\x09O\xea&F<\xc1\x89\xd3\x179\
+\xfc\xf4\x8b\xf4\xa5T\xcc\xa9h\xf3\xadO\x03)\x04\xe5\
+\xae\x06\x00\xffyw\x1f\x01\xf2m)h\x91\xff.\xb0\
+B\x80\x91\xef)\xc4\xd4Q\xc9\xf7\x8ck`\xba\xb2\x14\
+ \xc4\xfcX\xe0\xe3\x9ft!bj\xd6S\x89\x5c1\
+\xb3k\xad\xc2\xd5]\x98@!\xe2\x13\xeb\xdf4\xc1\xdb\
+\x049\x93)\x01\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x17\xe1\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x90\x00\x00\x00\x90\x08\x06\x00\x00\x00\xe7F\xe2\xb8\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x03(iTXtXML\
+:com.adobe.xmp\x00\x00\
+\x00\x00\x00<?xpacket beg\
+in=\x22\xef\xbb\xbf\x22 id=\x22W5M\
+0MpCehiHzreSzNTc\
+zkc9d\x22?> <x:xmpm\
+eta xmlns:x=\x22ado\
+be:ns:meta/\x22 x:x\
+mptk=\x22Adobe XMP \
+Core 5.6-c067 79\
+.157747, 2015/03\
+/30-23:40:42 \
+ \x22> <rdf:RDF \
+xmlns:rdf=\x22http:\
+//www.w3.org/199\
+9/02/22-rdf-synt\
+ax-ns#\x22> <rdf:De\
+scription rdf:ab\
+out=\x22\x22 xmlns:xmp\
+=\x22http://ns.adob\
+e.com/xap/1.0/\x22 \
+xmlns:xmpMM=\x22htt\
+p://ns.adobe.com\
+/xap/1.0/mm/\x22 xm\
+lns:stRef=\x22http:\
+//ns.adobe.com/x\
+ap/1.0/sType/Res\
+ourceRef#\x22 xmp:C\
+reatorTool=\x22Adob\
+e Photoshop CC 2\
+015 (Macintosh)\x22\
+ xmpMM:InstanceI\
+D=\x22xmp.iid:A7137\
+DD0390811E5A111E\
+32F6F5F6555\x22 xmp\
+MM:DocumentID=\x22x\
+mp.did:A7137DD13\
+90811E5A111E32F6\
+F5F6555\x22> <xmpMM\
+:DerivedFrom stR\
+ef:instanceID=\x22x\
+mp.iid:A7137DCE3\
+90811E5A111E32F6\
+F5F6555\x22 stRef:d\
+ocumentID=\x22xmp.d\
+id:A7137DCF39081\
+1E5A111E32F6F5F6\
+555\x22/> </rdf:Des\
+cription> </rdf:\
+RDF> </x:xmpmeta\
+> <?xpacket end=\
+\x22r\x22?>\x03\xa0\x95\x84\x00\x00\x14OIDA\
+Tx\xda\xec\x9d\x09t\x94U\x96\x80o\xedK\x92J\
+\x08\xa9$$\x10@$\xec\x10\x10\x05Yd\xd8\x0d\x10\
+\x04\xba\xc7qN\xdb2n\xa0c\x9f\x86\xc1n4c\
+K\xd3\xea4HK+Gi\x15\xa1\x15\xd43\xda\xa7\
+\x15\x9aEF\x86\x0ez@\x16A\xc0\x80\xec\x8b$$\
+d_\xaaR{\xfdU\xf3nQa\xd2\xe1\xff+U\
+\x95Z\xde\xab\xbc\xcby\xfc\x81,\xff}\xef}\xb9\xf7\
+\xbe\xed>\x99\xd7\xeb\x05.\x5c\xc2\x15%\xfe%\x93\xc9\
+\xbad\xe5W\xee\x9f\x22\xabm\x19\x93/x4Ce\
+2!O\x0eB\x8eL\xe6\xce&\x9f\xd2`\x91\xcb\x9d\
+\xf8\x04\x8fG\xed \x0f_\xf1z\x95U\x1ePTz\
+\xbd\x8a2\x85\xdcq\xda\x98|\xe4\xc2\xca\x89%]\xf2\
+\xb7\x10\x8d\x8f\xcc\xf7W\x82\x03\xb4\xe4\xcb%z\x87\xbb\
+\xdb\x1c\xd2\xe1\x93\x95r\xcbH\xa5\xc2\xd2W\xadhN\
+U+L\x1a\x02L'\x1bQ\x09N\xc1\xe0p\x0a\xa9\
+\xcdn!\xe9\xaa\xdb\x93t\x82\x00\xb9O\xa3l\xdc\xb9\
+n\xe6:+\x07\x88Ayfwq&xeO+\
+\x14\xd6B\xad\xb2n\x90NUm \x16&\xc6\x8d\xab\
+\x00\x9b+\xcbdwg\x9c\x15\x04\xfdn\xd2\xd2o\xaf\
+/\x5cU\xc3\x01\xa2T\xfe\xfd\x8b\xdfLV\xc8\xed\xcf\
+j\x95\xb5\xe3\xf4\xea\x8an2\x99\x87\xb2\xc6\x96\x83\xd5\
+\x99\xdbhw\x1b\x0f\x0a\x1e\xed\xda?\xcdze\x1f\x07\
+(\xce\xf2\xd4\xae\x97\xeeU)L+\x93\xd4\xe5\x13\xb5\
+\xaaZ\x1dK\xba\xdb]F\x9b\xc5\xd9k\xbfK0\xac\
+|g\xf6\x8aC\x1c\xa0\xd8\xb9\xa7$\x8fW\xf5r\x92\
+\xba\xec\x91dMYw\xf6\x1d\x81\x0cZ\x1c\xbd\xea-\
+\xce\xbc-r\x99\xebE\xe2\xe6,\x1c\xa0(\xc8\x13;\
+\xd6\xe4\xebT\xb5\xebS\xb5\xe7\xa6\x90 X\x9e\x88A\
+)\x09\xc2=\xcd\xf6\x81%6\x97\xf1\x99\x8dE\xcb/\
+p\x80\x22 \x8bw\xbd4Z\xa7\xac\xddd\xd0]\x18\
+N~C\xbb\xc4\xf0\x98XX0\xd9\xf2Kmn\xe3\
+\xe3\xef\xce^q\x8c\x03\x14\x86,\xda\xb9j\xb8VU\
+\xbd9Mw\xb6\xa0\xab\x80#\x06R\x93m\xd0I\xbb\
++k\xe1\x869\xc5\xa5\x1c\xa0 \xe4\xf1\xed\x7fL\xd7\
+\xab+\xff\xd2M\x7fj\x0a\x01\xa7k\xcep\xde\x0e\x92\
+\xb7\xd1:\xac\xc4\xea\xccyp\xd3\xdce\x0d\x1c \xe9\
+\xa1\xf8ki\xba3K\xd4\xca&%\xc7\xe6vq\xba\
+\xd3\xdcM\xb6\xc1\xeb\xfe4\xeb\x95_q\x80\xda\xc8\x93\
+;V\x8f5h/oK\xd1^\xce\xe2\x98t,f\
+{\xbfj\x93\xbd\xdf\xbc\xf7\x8a\x9e?\xdc\xa5\x01\xf2\xad\
+E\x99\xc7~\x9c\x9et\xe2!\x85\xdc\xc1\xddU\x08\x22\
+x4\xde\x06\xcb\xc8O\x8c)\x87\x7f\x16\xaf\xb5\xb8\xb8\
+\x02\xf4\xc4\xf6\xb5CRu\xe7J\x88\xd5\xc9\xe48t\
+\xce\x1a5\xdb\x06N\xdd8\xf7\xd9\x1f\xe2\x01P\x5c\xe6\
+S\x9e\xda\xf5\xbb_g\x19\xbe.\xe5\xf0t^\xd0\xed\
+c[b\x9b\xc6\xe3\xfd1\xb5@d\x84%\xd7\xa9\xaa\
+vg$\x7f7\x83\xf0\xcb{?\xb2]\x09u-w\
+\xed\xb1\xb9\xb2\x0b\xc9H-&\x0b\x811ua\x04\x9e\
+L\xe2\xb2N\x1a\xb4\x97z\xf0\xce\x8e\x9e\x98\xecw\xde\
+ e\xc4\xc6\xa2\xe5\xb5\x09\x03\x10\x19e\x15\xa4'\x95\
+\x1e$\xd6G\xc7\xbb8\xfaB\xac\x90\xb5\xde2r\xfc\
+\xc6\xa2_\x9fd>\x06Z\xb4s\xd5<c\xca\x91c\
+\x1c\x9e\xd8\x09ik}f\xca\xc1c\xd8\xf6\xd1~W\
+T\x01Z\xbc\xf3\xbf\x1e\xcbL\xf9\xe6s\xb5\xa2Y\xc1\
+\xbb5\xb6\x82m\x8em\x8f}\xc0$@\x8bw\xbe\xfc\
+KR\x81\x8dJ\xb9\x95\xcf\xef\xc4I\xb0\xed\xb1\x0f\xb0\
+/\x98\x02h\xc6\xe6\x0b\x93\x04\xafv\xadBn\xe7\xf0\
+\xc4Y\xb0\x0f\xb2\x0c\x07\xd6E\x0b\x22y\x14\xe0\x19C\
+\x1e\xdb\xcb\x1a\x1ePV4\xcd\xe4=H\x81\xe0n\x86\
+\xcc\x94CoD\xc3\x9dEt\x14F\xe0\x19J\x1e_\
+\x91rk\xa7`\xef\xf4\xad\x90\x9b\xf6%\xefE\x0a\xc4\
+\xed\xd1{k\xcc\xe3\x17l\x98S\xbc\x8d\xbaa<\x81\
+\x07\xe7w\x8e\x90\xd2\xab\xfd\xe78D\xf4\x88SH\x15\
+j\xcc\xe3FGb\x88\x1f\xb1a<\x81'\x89<v\
+\x89\xc1\x83r\xada>pwF\xcf\xe8\xac{\xd2\x89\
+o\x9e\xd8\xb1\xc6HE\x0cD\xe0A\xf3\xf51)#\
+\x03}\x1d\x87\x88\x1e\xc1y\x22\x83\xf6\xd2\xf7\xb8\xb4D\
+C\x10]L\xca\x03\xc1|!\x87\x88\x1e\xc1%%\x5c\
+\x97\x8c+@\xc4\xfaL%\x8f\x97C\xf9\x1e\x0e\x11=\
+\x82\x8b\xda\x9d]\xc5\x0f;\x88&\xf0\xe0\xee\xc1S\xa4\
+\x84\xe5Ky`M\x87\xb8\x84dO\xb5i\xd2\xf0p\
+\xf6\x13u6\x88\xde\x14.<\xdc\x12\xd1#*E\x8b\
+<Uw\xee\xef\xb8;4f.\x8cX\x9f\xc5\xe41\
+\xbb\xb3\xcas\x88\xe8\x10\xdc\x94V\xdb2\xe6\xa3\x98\xb8\
+0\x02O\x1ey\x9c!%)R\x15\xe0\xee,\xfe\x82\
+{\xac\xabL\x93\xc6\x85\xb2Q?\x5c\x17\xf6V$\xe1\
+\xe1\x96\x88\x0e\xc1C\x0dx2&\xaa.\x8cX\x9f\x05\
+\xe4Q\x14\x8d\x0ap\x88\xe8pex6/*.\x8c\
+\xc0\x83\x1b\xc2\xce\x83\xc4l3wg\x89!xx\xb1\
+\xda<!+\x98\x13\xb0\xa1\xba\xb0\xff\x886<\xdc\x12\
+\xc5_\xf0T0\x1e-\x8f\xa8\x05\xf2\xcf\xf9\x5cD+\
+\x17\xab\x8apK\x14?\xc1\xb3\xf8U\xa6\xfbFl\x98\
+\xf3\xc2\xa9HY\xa0\xe2X\xc2\xc3-Q|\x05\x93Z\
+hU\xb5[\x22b\x81\xfc\xdb4\xae\x90\xa2\x8dGe\
+\xb8%\x8a\x9b\x15\x82j\xf3\xf8\xbb\x03\xe5'Bv\x82\
+\xc9\x82\xf1\x5c\xbc\xe0i\xb5D(\xd1\x84H&\x93C\
+\x86\xae\x17\xa4\xebzB\xba6\x07\x0c\x1a#\xa8\xe5Z\
+P)nV\xdb%\xd8\xc1\xe9\xb1\x83\xc9Q\x0b\x0d\xf6\
+Jh\xb0]\x87:[9i@O\x22[!\xc0\xc4\
+^\xe4\xc3\x11a[ b}pg\xe1\xf5x\x02\x14\
+-K\xd4\x9d\xc02\xb0\xfb\x04\xe8\x9bZ\x00\xbd\x0cC\
+@\xad\xd0\x876Z\x11\xacPn\xfa\x01\xae6\x9f\x84\
+s\xf5\x07\xa0\xdev=!\xadPe\xf3\xd4\x01R\xe9\
+\xf6\x82\xb1@\x8bh\x80'R\x96\x08!\x19\x95U\x08\
+\xc33\xa7A\x8f\xe4\xfc\xce\x8dV\xc8\xcf\xea\xd7\xedn\
+_\x99\xd6\xe7I\xb8\xd1r\x01Jk\xf6\xc2\xf1\xea\xdd\
+>\xb8\x12\xc6\x0a\xa9j\xd7\x93\x0f\xa7\x87l\x81\x88\xf5\
+A\xb8~\xc4>\xa3\xa9R\xe1X\xa2$U\x1a\x8c\xcd\
+\xfd)\xdc\x9d=\x174\xca\xa4\xa8\xea\xe7p[\xe0h\
+\xd5v8\x5c\xf1W\xb0\xb8\x9a\x98\x87\x08\x13\x7f6\xda\
+\x86\x1a\xc4\xb2\xc7vd\x81\xe6\xd1\x06O\xa8\x96H.\
+S\xc0\x98\x9c\xf90)o!hBtQ\xe1\x0a\x02\
+:\xa1\xe7\xbf\xc2\xdd=\x1e\x80\xaf\xcb6\xc3\x91\xca\xad\
+\xc4\x15\x08\xcc\x02\x84\x19q1\xad2\xf9p\x99h\x1b\
+\x07\xf8\xde\xc7h\xadT0C\xfc\xdc\x94\x81\xf0\xf4\xc8\
+\x8d0\xa3\xef\xd31\x83\xe7\x1f@\x22\xef\xc4w\xa3\x0e\
+\xa8\x0b\xcb\x829\xb9Cra\xc4}\xa1\xe5)\x03\x00\
+\xaa\xf31\x8b\xbb3\x99\xcf\x02L\xe9\xfd\xa8ot\x15\
+\x8a\xd8\xdc\x1e\xa80\xb9\xa0\x92\x14\xb3S\x00\xbb\xfb\xe6\
+(K\xab\x94C\x8aZ\x019\x06\x15\xe4\x92\xa2S\x86\
+\xf6sq\xb4Vr\xed}8p\xfd\xbf\x81\xcd\xb46\
+2\xa86M\x18\xfb\xf6\xec\xdf\x1d\x09\xd6\x85=L;\
+<b\xeeL%\xd7\xc0\xfc\x01\xc50\xa8\xfb\xc4\xa0\xbe\
+_ \x0dp\xbc\xd2\x0a\xdfVX\xa1\xb4\xca\x0a\xd7\x9a\
+\x9c\x1dv/\xfe\xaa\xf5NS\xc3\xf0l=\xdc\x93K\
+\x82\xf2\x1c=(:\x98\xc9G\x90\xa7\xf6y\x1crR\
+\xf2a\xeb\xf9U\xe0\xf28\x18\x03\xc8\x8b\xae\xec%\xf2\
+\xc1mf_\x0a\xa0\x07Y\xa9Z+Dwd\x1c\x80\
+\x9f\x0fy\x95\xb8\x8bA\x1d~O\x9d\xd5\x0d\x9f\x9fi\
+\x82\xbf_1A\x93]\x08\xb1)\xc9\xc8\x82\x80\x86e\
+\xfb\xb9&H\xd3*`\xea\x1d\x06X08\x0d2\xf4\
+\x81\x07\xb5\x08\xb6aX\x06|\xf8\xc3s\xbe`\x9b-\
+7V>1(\x17\xe6\xdf0v\x8d\xad\xca\xc9\xe1\xcd\
+\xd9\xa9\x04\x9e\x8c\x80_gr\x08\xb0\xe5d=\xec\xbe\
+h\x02\xb7'\xb2\xaeD)\x97Aa\x7f\x03<R\xd0\
+\x1d\x0c\x9a\xc0\xc9Hj\xacW\xe1\xfd\xd2\xa5\xc4E\xb6\
+0\x05Q\x8dy\xdc\x94\xb6\xb7\x0cI\xad\x85\xfd\x84\xa5\
+Ji\x942\xf8\xfd\xb4\xdc\x0e\xe1\xd9}\xb1\x19\x1e\xdb\
+v\x0dv\x9co\x8e8<\xbe\xe1.\xf9\x99\xf8\xb3\xf1\
+\x1d\xf8\xae@\x92\xa9\xef\x0b\x0f\x0fY\xeds\xb9,\x09\
+^\xa7\x15\xcc(l\x16;\xa1\x1d\xc0s\x13\xb2a`\
+\x86\xf4\x5cg\x8b\xd3\x03\xaf|}\x03\xde8T\x03f\
+G\xf4\x87\xd3\xf8\x0e|\x17\xbe\x13\xdf-=J\x1c\x04\
+\xf3\xf3\x9f\xf7\xd7\x82\x0d\xc1\xbb\xd8\x02\x02D\xdc\x17\xf6\
+\xc4DV*\xf4/\xc3\xd2a|^\xb2\xb4\xc9\xb5\xb8\
+a\xc9\x17\xe5\xb0\xffZ\xec]\x05\xbe\x13\xdf\x8d:H\
+\xc6D\x19\xf7\xc1\xd8\x9c\x05\xcc\x00\x84\x17\xf9\xf9n\x83\
+\x0c`\x81\x10\x1e&\xec\xea\x00bu\x16\x16H_\x17\
+\x86A\xee\xd2\xdd\xe5p\xdd\xe4\x8c\x9b\x8e\xf8n\xd4\x01\
+u\x91\x92\xe9}\x17AN\xf2\x006,>\xde\x02\xe9\
+\x95=\x1d\x08\xa0\xc9L\xf8b\x12\xf4\xffj|\x16\xc8\
+e\xd2\x96\xe7\x85\xbd\x15Pou\xc7]W\xd4\x01u\
+\x91\xb2Dr\x99\x12\xe6\xe5/\xf7\xcd\x9a3\xd1\xf6\x0a\
+ka \x80\xc6\xb0P\x89y\x83\xd2 /U-\xfa\
+9\x0b\x89;\x8a\xff\xb7\xc27T\xa7EP\x17\xd4\xc9\
+\x22\x11\x13\x19\xf5}\x88+cc\xec\x82\x97\x18\x8b\x02\
+D\xe2\x1f\xfc\x15\xb8\x87\xf6\x0a\xe0\xbc\xcb\xc3#\xd2%\
+?\xff\xfa\xa1\xea\xb8\xba\xad@\xee\x0cu\x93\x92Iy\
+\x8f\x80^\x95J=@x\x036^\xa3.f\x81\x90\
+\xacd\xda+0\x9fX\x1f\xbdJ|\x92\xfc\xcbK\xa6\
+\xb8\x04\xcc\xa1\x04\xd6\xa8\xa3\x98\xa8\x15:\xb87\xf7\x9f\
+\x19\x88\x83\x04<\xb91[\x0c\xa0\xa1\xf4\xd3/\x87\xa2\
+\x01i\x92\xc3\xe7\xf7\xbe\xab\xa3\xbe\x03PG\xa9\xe9\x04\
+\xdcn\xa2UR\xff;\x0cr\xb9s\x8a\x18@\x83i\
+W\xfc\xfe;\x0d\xbeYg1\xd9r\xb2!&\xf3<\
+\x9d\x15\xb3o6\x5c\xfc\xc8\x15n\x05\x19n\x9cF}\
+\x1d\x94r\xcbH1\x80\x86\xd1\xae8\xae9\x89I\xa3\
+M\x80/:\x98\xfd\xa5IPW\xd4YL\x0a\xb2\xe8\
+?\x89\xa2R\xb4\xf4\x11\x03\xa8\x1f\xcdJ\xf74\xa8\xa1\
+\x7fw\xf1)\xaa\xadg\x1b\xa3\xb2<\x11-A]Q\
+g1\xc1\xad\xb6\x19\xfa<\xca\x012\xa5\x89\x01D\xb5\
+\xd6\xe3\xf2\xc4\xb7\xa2z\x097{.\x9b\x805A\x9d\
+\xbd\x12\xcc\xf7\xefF\xf7`X\xad0iZ\xf3\x09\xc9\
+\xfdCx\x1c?R=\x86\x1c\x91-\xbe\xab\xf0d\x95\
+U\xd2\x1d\xd0,\xa83\xea.&\xfd\xd2FS>\x12\
+sCm\xcb\x98\xfc\xb6\x16(\x97f\x85q\xc6y\xb0\
+Q|\xc1\xf4\xf0u\x0b\xb0*R\xba\xe7\xa5\x0e\x07\x19\
+\xe5\x8b\xac\x82G3\xb4-@\xe9\xb4\xc7?Rs?\
+\xa7\xaam\xcc\x02$\xa5;n\xf3\xe8\xa6\xcd\xa1\xdc\x0a\
+\x09y\xcc\x00\x84\xfb\x90\xc5\xc4\xe1\xf6\xc2\x95F\x07\xb3\
+\x00\xa1\xeeX\x071\xc9L\xeaK\xb5\xeer\x10r\x98\
+\x01('E|\xdd\xab\xd2\xec\x94\x0cDY\x10\xd4\x1d\
+\xeb &\xe9\xd4[ wv[\x80\xb44+kL\
+RJ\x00\xe4\x02\xd6E\xaa\x0e\x0c\xac\x8bi\x98\x01H\
+\xab\x14\x0f(\xcdN\xf6\x93\x1bH\xd5\x815\x80\x80n\
+\x80\xc4\xd5\xb4\xb9\xd8\x07H\xaa\x0e\xb4\xef\x0f\x92\xcb\x9d\
+\xec\x00\xc4\x85\xe6`\x9a\x01i=!\xda^t*\xf6\
+\xf9\x97\xaa\x03\xed\xe7\xe9=\x1e\xb5\xa3-@v\xba\x01\
+\x12\x1fj\xa5\xa8\xd9\x07(Y\x02 \xab\x8b\xfa\xc5a\
+v\x00\xaa\x95\xd8O\x9c\x93\xa2b\x1e \xa99.\xb3\
+\xb3\x9e)\x80\x1ah\xd6Tj\xae\x04\xe7\x87d\x0c\xdf\
+\x0b\x8d\xbaK\xcdq5;j\xa8\xd6\xdd\xebUV1\
+\x03\x10f\xcc\x10\x1dG\x92\xe1\xfd\x1d\xdd4\xcc\x02\x84\
+\xbak$\xa6(\xaa-\x97\xe9\x8e\x81@Q\xc9\x0c@\
+\xb8!\xdd*1\xdc\x1d\x96\xa5c\x16 )\xdd\x1d\x82\
+\x15\x1a\xed7(\xb7@\x8a\xb2\xb6\x00UPM;\x89\
+\xa1\xcf\xd4\x8a\x87ic{&1\x0b\x90\x94\xee\xe5\xa6\
+\xd3\xd4\xeb\xae\x90;N\xdf\x02h\xcf\xc2|\x0c\xf9\xa9\
+\x0e\xfb\xbf\x97\xd8;S\x90\xad\x87n:\x05s\xf0\xa0\
+\xce\x05\x12{\x9c.5\x1e\xa5=\xfe\x01c\xf2\x91\x0b\
+m-\x10J\x19\xcdJ\x1f,\xb3H\x06\xa23\xfa\x19\
+\x98\x03\x08u\x96\x1a\x00\x5ch8L\xb5\xeeN\xc1\xe0\
+X9\xb1\xc4\xdb\x1e\xa0K\xb4\xc7A\x17\xeb\xc5\xb7n\
+\xcc\x1f\xd4\xcd\x97\x9f\x87\x15A]Qg\xd1\x01\x83\xf9\
+\x1c\x89\x7f*\xa9\xd6\xdf%\x18n\xa5\x9fm\x0b\x10\xf5\
+\x8e\x173\x8aI\xb9\x83Y\xfdS\x99\x01\x08u\x95r\
+\xbb\xc7\xabwQ\xaf\xbfKH\xfeQ\x0c\xa03\xb4+\
+\xfe?\x97L\x92\xe7\xcb\x1f)H\x87\x14\x0d\xfd\xb1\x10\
+\xea\x88\xba\x8a\x8e\xbe\xdc\x168]\xfb\x15\xf5up{\
+\x92N\x88\x01t\x8av\xc5q\xe5z\xc7\xf9&\xc9\x8e\
+y\xf2\xae\x0c\xea\x1b\x1fu\x94\x02\xfdp\xe5gLd\
+\xb9\x17<\x9a}b\x00\x9d#\x85\xfa\xa4}[\xcf6\
+I\xce\x09\xcd\xbc\xd3\x00\x13{\xd3{4\x18uC\x1d\
+\xa5\xac\x0f\x02D\xbbx\xbd\x0a\xd0(\x1bw\xde\x06\x10\
+\x19\xca\xe3\xf2\xef\xb7\xb4W\x00\xb3\xaa~\xf4\xbd\xf4\xbc\
+\xe7\xd2{\xb3|\x9b\xf0i\x13\xd4\x09u\x93\x92}e\
+\x1f0\x91t\xd3\xe6\xca2\xad\x9b\xb9\xce*f\x81P\
+\x8e\xb0\x10\x84n#V\xa8\xacY|},Y-\x87\
+U\xd3s\xa1\xbb^I\x8d\xbe\xa8\x0b\xea\x94,\xb1{\
+\xa0\xb2\xe5<|{c\x1b\x0bMO \xcf8\xdb\xf6\
+\xdf\xedk\xb4\x8f\x85J`\x82\xf0\xd7\xbe\xa9\x06\xa9\xd3\
+\xcc\x99IJ_\xe6V\x1a B\x1dP\x97L\x89}\
+\xdd\x82\xd7\x0d;.\xfe\x91\x99\xbb\xc7\x04A\xbf;\x10\
+@\xfb\xc1\xbfLO\xbb\x9c\xaf\xb3\xc3\xe6\x93\xd2[\x1e\
+\xfa\xa4\xa9\xe1\xf5\xfb{\xc6\xd5\x9d\xe1\xbbQ\x07\xd4E\
+rdy\xf9-\xa8\xb2\x5cb\x02\x1e\xafW\x8e\x99\xc5\
+\xdf\x96\x04\x88\xc4Av?DL\xc8\xa7\xa7\x1a\xe0\x9b\
+2\xe9\xb8!+Y\x05\xebf\xf5\x8aK`\x8d\xef\xc4\
+w\xa3\x0eR\x82\x17\xd5\x1d\xab\xda\xc1Js\x83\xd5\x99\
+\xdb\xb8\xbepUM \x0b\x84\xf2\x05+\x15B\x0f\xf6\
+\xea\x81*8W'\xbd\x1f\x0e\xe3\x8e\xdfL\xeaA\x02\
+\xd8\xcc\x98\xcc\x13\xe1;\xf0]\xf8\xce\xe4\x0evL\xf6\
+M\x1b\x15\xd4\xd5\x0c\xf4\xc4?\xc6\x83\xed\xffO\xac\x86\
+\x9f\x01C\x82';\xffsoE\xc0T\xba(\x85\xfd\
+S\xe1\xcf\xf3zC\xd1\x80\xd4\xa8,{\xe0\xcf\xc4\x9f\
+\x8d\xef(\x0crV\x1c\xaf\x84\xfa\xf9\xd05\xcc@$\
+x\xb4k\xdb\xff\x9f\xd4uO\xdf\x91\xc7(\x96@\xc2\
+\xcce\x18\xac\x06\xcaZ\xdf*\x985\x15\xe7\x93\xf6^\
+\x0e\xfd\xb2\x95\xf6\x82I?\xa7\xf53\xf8r7f\x84\
+\x19\xb4\xe3\xfe\x9f\x0fO/\x87\x0a\xf3Yz\xad\x8f\xcb\
+h[=\xe5S\xfd?\xc6D^I\x80\xf0\xa6\xe6\xd5\
+\xc0\x98\xe0\xee>\xbc\xfa P\xf6\xfa\xf6\xa3\xb9X\x5c\
+\xf7\x94\x08\x10\xd5[F\xedy\xf3\xfe\xd7f\x06\x0b\x10\
+\x1e\xcc.\x07\x06\xcf\x8daM\xf0\x0a\x04\xccb\x1f\xaa\
+\xa7j{\xe1\x5c\x8bS\xf0\xfd\x1b\x05/\x98K\xee\xc4\
+\x85s.\xc1\x0b\x9b\x8e\xd7\xf9\xb2\xebO\xee\x9b\xc2$\
+DU\xa6\x7f\x1a\xf7\xce\xec\x15\x87\x82\x02\xc8\x0f\x11\x06\
+\xd3\x85\xc0\xa8`ga6{\xa9\x84\xe4\xb1\x92\xab\x8d\
+\x0eXs\xa0\xda\x97\x89\x03\x81^N,$k\x10\xb5\
+8\xf2\xea_\x9b\xf6A\xc6\xed\xc3zo@\x0b\xf3g\
+`Xp\x9e\xe8\xa9\xede\xb0\xe1X\x9d\xe4\xdaYT\
+\x87\xbc\xe4\x9do\x1f\xad\x85gv\x96\xdfJA\x83\x13\
+\x9fk\xc8\xa8q\xdfU3S\x81\xb5\xc5\x99\xb7E\xea\
+s\x81\x00\xc2\xb9\xf5\x0a\x96!\xc2\x18\xe7\xb33\x8d\xf0\
+\xe8\xd6\x1f\xe1\xd3\xd3\x8d\x92[A\x22\xdb\xd8\x1e\xf8\xb8\
+\xb4\x01\xfe\xed\xf3\x1f}K.B\xbb\xfc3\xacA\x84\
+\xd7~\xcbe\xae\x17%C\x06)\x17\xe6wc\xc5\xe4\
+\xf1{H\x10\xc1c\xc4\x98k\x1a\xd3\x05Ke|\x0d\
+W.58|\x17\xcd\x95\x5c1\x07e\xf1Xqg\
+\xf5\x96\xbb\xf6\xbey\xff\x1f\xa6\x8b}.`\x0c\xe4\x07\
+\x08\xefS\xba\x0e\x94\xa7\x7f\x09Gp\x99\x013\xbfb\
+\xf2N\xcc\xbf\xa8\x0f\xf1\x9c=\xeeM\xc2\x09\xcc\xa3d\
+\x04w\xe4\xba%\xac\xfb9h\x87\xc8\xe3UAe\xf3\
+\xd4\x01\x1b\x8b\x96_\x08\x0b ?Do\x90\xc7\x12H\
+`\xc1\x8eD\xa0p\x84\x85'E1\xa1\x15\xe6$j\
+M+\x83\xa3(\xbc\x06\xbc\xde*@U\x8b\x0b\xca\x9b\
+\x9dPn\x8aLv4\x9a!j\xb2\x0e)}c\xe6\
+\x9b#\xa4>\x1f\xe8\xda\xef\xb6\xf2*)\x8b\x13\xd1\x0a\
+\xb5\x8dKp{\xc8\xcd-\x22\x96\x98\xbf\x1bc\x22\x14\
+)\x88Zc\xa2XB\x84\xd6\xc7\xe66>\xde\xe1/\
+@G_\xb0ga>\x1e\x91|\x17\xb8D\x1d\x22\x9a\
+\x02\xeb&\xdb\xa0\x93\xef\xce^q\xac\xd3\x00\xf9\x05\x03\
+i3\xef\xea\xae\x01\x11\xb1>^\xbb+kaP.\
+8\x98/\x22V\x08\x97\xf0W\xf3n\xee\x1a\x105Z\
+\x87\x95l\x98S\x5c\x1a1\x80\xfc\xf2:\xdc\x5c\xde\xe0\
+\x92\xc0\x109\xddin\xab3\xe7\xc1\xa0\x07\x01\xc1~\
+!\xb1B\x98V})\xef\xe2\xc4\x86\xa8\xc96x\xdd\
+\xa6\xb9\xcb\x82\xce\xd6\xd2\xe10^dX\xbf\x9d<\x8a\
+x7\xc7fz!\x96C|\xb3\xbd_\xf5\xda\xe9\xef\
+e\x07\xfb\xf5\x1d\xad\x85I\xc9/b>\xd6\xe5\x96(\
+\xea\x96H\xf0h\xbc&{\xbfy!C\x1e\xea7\x10\
+W\x86Y<\x96\xf1\xeeM,\x88\x1a,#?y\xaf\
+\xe8\xf9\xc3Q\x07\xc8\x0f\xd1\x06\xf2\xd8\xc9\xbb71 \
+\x22\xae\xab\xc6\x98r\xf8ga\xb9\xd9N\xd4\xeb\x09R\
+jy\xf7\xb2\x0d\x91KH\xf64\xdb\x06Ni\xcd\xf7\
+\x133\x80\x88\x15\xaa&\x8f\x87\xb0n\xbc{Y\x85H\
+\x86\xab\xed\xc5\x1b\xe7>\xfbC\xd8\x81~g*D \
+*!\x8f\x17y\xd7\xb2\x09Q]\xcb]{\xde\x99\xfd\
+\xdb5\x9d\x1a)F\xa0N\xab\xe0\xe6\xe63.\x0cA\
+d\xb2\xdfy\xc3\xe6\xca\xee\xf4\x96\xe5N\x03D\xac\x10\
+\xfaN\x0c\xc0\x8e\xf3\xaee\x03\x22\x02\x8e\x8d\xc4=\x05\
+\x9b\xe6.\xf3\xc4\x1d ?D\x98\xeec\x0e\xf0\xa5\x0e\
+\xea!r\x0a\xa9B\x83e\xf88\x02ODR\xe1\x87\
+<\x13\x1dHfl\xbe\x807\xf9~EJw\xde\xbd\
+\xb1\x93`g\xac?(]\xe1=^\x99\xb1`\xc3\x9c\
+\xe2\x88\x84\x1cA\xedH\x0c\x03\xa21h\x94H1\xf0\
+\xae\xa5\x07\x22/\xf9\xf3\xf5\xb5\xe3\xefN\xee3\xfa\xa9\
+H\xbd3\xdc\xa5\x8c\x8e\xdc\x19&\xa9\xc2\xb52\x1b\xef\
+Vz\xdcY\xc9\xd5\xa3\x1fF\x12\x9e\xa8\xb8\xb0v\x96\
+\xe8>\xf2\xd8\xc1-Q|-\x11\xee\xdb>~\xc3\xfa\
+\x87\xd1\xb9I\xcb#\xfd\xae\xa8\xb80\x11w\xb6\x8b\xc7\
+D\xf1\x81\x08s\x14\x9d\xb8a\xfd\xed==\x93_\x8a\
+\xc6{\xa2\x0eP\x9b\xc0\x1a\x8fI\xf7\xe2]\x1bS\x88\
+\xca\x7f96s\xf9\xac\xfc\xb4O\xa2\xf5\x8e\xa8\xc4@\
+\x221\x11f\xc0GK\xc4\xe7\x89b'\xc7IL4\
+&\x9a\xf0\xdc\x025\x16\xb5\xf1\x9f\xec\x98H\xca\xdfx\
+\xdfF]\xb0\x8d'\xfa\xdb\x1c\x12\x02 ?D8\xd9\
+8\x9f\x94\x17\x80/\xc0Fe \xe6o\xdb\xf9\xfe\xb6\
+\x8e\x89D=\x06\x92\x88\x8b\xa6\x90\x07\x9aW#\xef\xf7\
+\x88\x08n\xaby\xc8\xbf\xb8\x1d3\x89I\x0c$a\x8d\
+\xb0\xa2\xc3\x80oJ\x8b\x84`\x1b\x0e\x8b5<q\xb5\
+@\xed\xac\x11\x1e\x9b\xc6\xe4\x8dI\x9c\x85\x90\x04\xf7\xa5\
+?K\xc0\x89\xdb\xa9\xe1\x98\x0c\xe3\x83\x84(\x8f<\xde\
+\x02~\xda#X\xc1\x09\xda_\xf8\xf7\xa7C\x97\x07\xa8\
+\x0dH\x0b\xc8\x03\xb3\x81\xf09#q\xc1\xdd\x0eK\x09\
+8\x9f\xd3\xa0L\xdcb\xa0\x00\xb1\x116\xcc\x00\xffh\
+\x82\x9f\xc5\xff\x7f1\xfb\xdbd\x00-\xf0P\x13\x03\x05\
+\xb0Fx7\x12fHK\xe8\xd42\x1d\x08\xa6\xe0\xc7\
+\x18g\x95\x7f\x0f:UB\x9d\x0b\x93\x00\xa9\x07y<\
+\xd7\xc5@j\x05\xe7\xd5XM\x08&,@m@\xc2\
+\x05\xd9E\xa4<CJn\x82\x82\x83IM\xd7\x93\xb2\
+\x81\x80SO\xbb\xb2L\x01\xd4\x06$\xcc\xaa\x863\xda\
+\x8f\x92\x82\x99\xd3\xe5\x8cC\x833\xc8_\x92\xf2>)\
+[\x098nV\x14g\x12\xa0v0\xa1%z\x98\x14\
+LG2\x8a1\xf5qq\xf9/\xa4|D\xa0a2\
+\x9d2\xf3\x00\xb5\x83\x09\xe7\x92~\x0a7\xb3\xeb\xe3\xc2\
+\xad\x862\x151\xdb8\xde\xc5\x867\xfe\xfd5\xdes\
+8\x1c\xa0\xc00i\xfd\x10M\x86\x9b[I\xee!%\
+\xd6\xb7\xce\xe1Mxx\x891n\xf1\xc5\xabD\xf7\xfb\
+/\xf4K\x18IX\x80D\x80\xc2\x9b\xe6\xf0\x5c\x0bn\
+n\x1b\x027\xd7\xe1\xee \x05\xadVj'\x7f|3\
+)hM\xae\x90r\x8a\x14<&\x8c{\xa0\xce\xfao\
+\xc2NX\xe92\x00u\x00W\xaa\x7fT\x97\xde\xa6\xe8\
+D\x5c \xba <(\xd0\xd0\xa6T\x10H\x9a\xbbj\
+\xdb\xdd\x02\x88\x0b\x97p\xe5\xff\x04\x18\x00\xc3:\x8dd\
+\xf2\x87\x09m\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x06\x87\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x03#iTXtXML\
+:com.adobe.xmp\x00\x00\
+\x00\x00\x00<?xpacket beg\
+in=\x22\xef\xbb\xbf\x22 id=\x22W5M\
+0MpCehiHzreSzNTc\
+zkc9d\x22?> <x:xmpm\
+eta xmlns:x=\x22ado\
+be:ns:meta/\x22 x:x\
+mptk=\x22Adobe XMP \
+Core 5.6-c140 79\
+.160451, 2017/05\
+/06-01:08:21 \
+ \x22> <rdf:RDF \
+xmlns:rdf=\x22http:\
+//www.w3.org/199\
+9/02/22-rdf-synt\
+ax-ns#\x22> <rdf:De\
+scription rdf:ab\
+out=\x22\x22 xmlns:xmp\
+=\x22http://ns.adob\
+e.com/xap/1.0/\x22 \
+xmlns:xmpMM=\x22htt\
+p://ns.adobe.com\
+/xap/1.0/mm/\x22 xm\
+lns:stRef=\x22http:\
+//ns.adobe.com/x\
+ap/1.0/sType/Res\
+ourceRef#\x22 xmp:C\
+reatorTool=\x22Adob\
+e Photoshop CC (\
+Macintosh)\x22 xmpM\
+M:InstanceID=\x22xm\
+p.iid:7F517578FC\
+EF11E793C7AB30FF\
+B47C13\x22 xmpMM:Do\
+cumentID=\x22xmp.di\
+d:7F517579FCEF11\
+E793C7AB30FFB47C\
+13\x22> <xmpMM:Deri\
+vedFrom stRef:in\
+stanceID=\x22xmp.ii\
+d:7F517576FCEF11\
+E793C7AB30FFB47C\
+13\x22 stRef:docume\
+ntID=\x22xmp.did:7F\
+517577FCEF11E793\
+C7AB30FFB47C13\x22/\
+> </rdf:Descript\
+ion> </rdf:RDF> \
+</x:xmpmeta> <?x\
+packet end=\x22r\x22?>\
+@\xb2\x97\xa1\x00\x00\x02\xfaIDATx\xda\xacW\
+Ak\x1aA\x14~\xabV*z\x08\xd4@\x0d\x05i\
+\xa99\x05J\x14$ \xb94\xc5KI\xbd\x19\x08H\
+\xb1`1\xc6\x1e\xfa\x07z\xb0\x90\xdc,R\x1b\xa8=\
+Ti+\x18\xf1RA/\xa5\xa5\x16\xa1\x98DC\x0e\
+\x0d\x89\x05/\xb6\x87b\xa5\xa0\xa2P\xa2}\xb3]\xb7\
+\x094\xee\xcc\xee>\xf8|\xeb\xec{\xf3}\xfbfv\
+f\x96\x03F\x0b\x87\xc3W\xd0=D\xdcA\x5c\x17\x9a\
+\xbf\x22\xde\x22\x9e\xc4\xe3\xf1&K\x7f\x1c#\xb9\x1f\xdd\
+3\x84\xe1\x9c\x90>b\x1dE\xbc\xa4\xedS\xcb@\xbe\
+\x8e\xee9\xe2\xc2\x840r\xcf\xe3t:[\x95Je\
+G\xb5\x0a \xb9\x1d\xddg\x09\xf2\xd3\xf6\x1b\xb1\x80\x95\
+\xa8J\x05j(;\x8c1\x90\x8f+\x11S\xa5\x02\xf8\
+\xf4\x0et\xbb \xcf\x9cX\x85\x1d\xa5\x15X\x06\xf9v\
+[\x8d!XP @2WG\xd1\xc9e\xf2c\xb7\
+\xdb\xc1\xeb\xf5\x82\xd1h\x9c\x18\xdc\xeb\xf5`{{\x1b\
+\xaa\xd5\xaa\x98\xab\xb4\x02\x179\x8e\x83\x95\x95\x15Ir\
+b$\x86\x08\x15\xcc\xa0\x86\x80\x1f\xe3\x8b\xd1h\x04\x1b\
+\x1b\x1b\xb0\xb9\xb9y&\xe0\xbc\xf6\xd3\xb9J\x04\x1c\x12\
+\x02R\xd6\x93\x93\x13\xc9`\x12\x93\xcdf\xc7\x7f\xbf\xa8\
+1\x07>!\xee\xef\xed\xedA\xa3\xd1\x00\x97\xcb\x05\xb3\
+\xb3\xb3\xd0\xedv\xc5!!\xe3\xbe\xba\xba\x0a\xc7\xc7\xc7\
+\x10\x89D\xa0\xddn\x9f\xceU,\xe0\xfd\xf8\x82t\x9c\
+\xcf\xe7Y\xde\x82\x0f\x8a\x87\x00\x17\x92\xef2\x17\xa2]\
+\xcc\xfd\xa6\xd6R\xfcZ\x86\x00\xaa\x1cZ\x01o\x10\x03\
+\x06\xf2\x81\x90\xa3\x8e\x00,e\x0b\xdd\x16\x83\x80-!\
+G\xb5\x0a\x10{L&<E\x5cO\x88\x05U\x05\xe0\
+\x13\xfdBw@\x11z \xc4\xaa+\x00\xb7e\x0b:\
+\x1bE\xa8\xadX,\xde\xc0\xc5\x8b\xea\xb0\xc3M \xbc\
+\x8a\xee\x16\xe2&\xd9\xd7\x11\xd7h:\x5c\x5c\x5c\xe4\xf7\
+\x82~\xbf?\xdc\xdf\xdf?L\xa7\xd3\xe4`\xf2\x0e\xab\
+\xd2\x90\x14\x80\xa4&t\x01\x84\x0f1\xcf\xfa\xde\xb9\xdd\
+nX^\xfe{|h\xb5Z\x10\x8dF\xa1\xd3\xe9\x8c\
+o\xd7\x10\xaf\x10/PL\xf7\x8c\x00$&\xfe\x01\xe2\
+\x11\xe2\x12+1\xd9-=\x1e\x0f,--\xf1\xff\x09\
+)!'\x22\xfec?\x11\x11\xc4S\x142\xe2\x04\xf2\
+\x94\xf0\xd4\xcc\xa6\xd1h\xf8\x92\x93=\x82_\x00\x06\x03\
+\x88\xc5b\xd0lJ~\x1e\x90j\xdc%{\xc1=\xb9\
+\xe4Z\xad\x16|>\x1f8\x1c\x0eq'L$\x124\
+\xe4 p~$\x02\x82r\xc8\xf5z=\xf8\xfd~\x98\
+\x9b\x9b\x13\xcf\x04\xc9d\x12\xea\xf5:K7A\x9d\x9c\
+\xc9f0\x18 \x10\x08\x80\xcd\xf6\xef\xad\xccd2\x80\
+\xb3\x9e\xb5\xaby\x1d\xcb\xd7\x111\x93\xc9\x04\xc1`\x10\
+\xacV\xab\xd8V(\x14\xa0\x5c.\xcb\x1aE\x1dK\xf4\
+\xd4\xd4\x14\x84B!\xb0X,b[\xa9T\x02\x5cx\
+d\x1f\x9b\xa9\x05LOO\xf3\xe4f\xb3Yl\xab\xd5\
+j\x90\xcb\xe5@\x89Q\x09\x98\x99\x99\x81\xb5\xb55\xbe\
+\x02c;::\x82T*\x05\xc3\xe1P\x91\x80?\x02\
+\x0c\x00\xae\x14\xfd~;\x03\x1c1\x00\x00\x00\x00IE\
+ND\xaeB`\x82\
+\x00\x00\x06m\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x06$IDATX\x85\xc5\x97]l\x1cW\
+\x15\x80\xbf{g\xf6\xd7\xeb\xdd\xecn\xd7v\x8a\x93\xaa\
+\x09N\xec@\xab\xa4\x15\x85\x22\x81\x08/\xfd\xaf\xa1\xa1\
+\x91\xa8\xaa*o}\x02\xa9\x02\xc1\x03\x0fHH\xbc!\
+\xc4\x8f\xfaP\xde\xc2\x03Q\xd3\xa2\x22\xa52\xa9x\xa8\
+\x10T\x94\x86\xa8\xad\xed\xc4I\x14\x9aD\xae\xecl\xd6\
+k{\xed\x9d\xdd\xd9\x9d\xb9\xf7\xf2\xb03\x9b\xd9];\
+N\x11\x12W:\xba3g\xee\x9e\xf3\x9d\x9f\xb9w\x16\
+\xfe\xcfC\xdc\xed\xc2\xb3Ph\xc3Sq\xdb~\x01)\
+\x0fj\xa5\x8aJ\xeb!KJ\xc7\x92r\xc5h\xbd\xe0\
+)uJ\xc0\xcc\xd3\xb0\xf6?\x038\x03\x13\xb6e\xfd\
+F\xc37J\xa3\xa3z\xf7\x17\x0e\xa53\xbb\xc7H\xe4\
+\x0b\xc4s\xc3\xb4k\x1b\xb8\xab\xab8\xcb7Y\xbep\
+\xb1Q)\x97-a\xcc_<c^\x99\x86\xab\xff5\
+\xc0i\x88g\xa4\xfc5p\xe2\xf3\x0f\x1d\x89\xdf\xff\xf8\
+c\xd2\xf2=XY\x05\xc7\x81V\x1b|\x0f\xec\x18$\
+b04\x04\xc5<\xca\xb6\xf9\xf7\xcc;\xfa\x93\xd9\xb9\
+\x16\xc6\x9c\x5c\xd4\xfa\xfb/\x83\xf7\x99\x00f\xa0\x84\x10\
+\xef\xdc322\xf5\xe0K/&\xe3\xca\x87k7\xa0\
+\xe9\x0e\xac5\xfd\xd7\xe9\x14\xdc7N\xdb\x92|\xfc\xfb\
+?\xb8\xab\x95\x95\x0b\xda\x98\xc7\x9f\x81\x95\xbb\x02x\x1b\
+\xf2B\x88\xb9}SS\xa3\x07\x9f?fs\xf92\xac\
+o\xdc\xd1\xa91f@\xcf\xae\x1c\x1c\xdc\xc7\x957\xff\
+\xe4\xdfX\xb8|\xd31\xe6\x8b\xc7\xa1\xd6\xef\xcf\x8a\xde\
+\x9c\x06+)\xc4\xbb\xfb'''\x0e\x1c\xfb\x96\xcd\xdc\
+<\xd4\x1b\x83Q\x06Nu\xf4>2k\xc0\xb8-L\
+u\x8d\xe2\xd7\xbf\x22\xcdJ5\xe5VW\x8fN\xc3\xc9\
+7\xfa8e\xf4&+\xe5\xcfK\xc5\xc2\x03\x13\xcf\x7f\
+\xdb6s\x17;FB\xa3\xc6\xf4\x88\x898\x0bE\x85\
+\xce\xc3\xf5M\x175{\x89}\xc7\x9e\x8d\xe5\x8b\x85\xc3\
+\x19)\x7f\xd6\x9f\x81n\x09\xfe\x08\xbb3R.\x1c}\
+\xe5{9\xb9\xb8\x04\x1b\x9b\x03\xa9\x8d\xce\xfd\xba0+\
+\x03k\x8c\x81l\x063>\xca?~\xfb\xbb\xf5\x96\xd6\
+\x93\xd3P\x1e\xc8@Z\xca_\x1e84\x95\x91m\x0f\
+]\xdb\xe8F\xa9\xb7\x910J\x13dD\x05%\xd1\x11\
+}X&\xbdQG\xf8>{'\x0fd\xe2R\xfeb\
+\xa0\x04\xa7!\xa7\x8d\x99\xbe\xf7\x99',ucq[\
+\xc7\x03\xa5\x88>\x0bK\x13\xe8U\x1f\x88\xba\xbe\xc4\xbd\
+O|\xd3V\xc6<7\x03\xd9\x1e\x80\x14<U,\xe4\
+\x95P\x0a\xddj\xf7:\x8eD\xa9\xb7\x88\xb2\xab\x17\xa2\
+#\x91\xf4\x87:%%\xaa\xed!\x84$\x97\x1d\xd6\x1e\
+<\xd6\x03\x10\x13\xe2\xbb\xa3\x13\xfb3\xaa\xba\x8e\x89\x18\
+\xd1\xa1\x11)1Rv\x0d\x9a@\xa7-\x0bcY\x18\
+)1\x11\xbd\x0a\xd6w%\xd0\xfbk\x1b\x14\xf7\xed\xcd\
+\xd8B\xbc\x10\x02\xd8A\xc3L\xa6\xf7\xeeA7\x1a]\
+C\x08\x01\xaf\xbf\x1e-\x17\x82\xcfpx\x04\xa3y\xfc\
+x\xa7\x99\x85@7[\xa4>\xb7\x1b\xf1\xd1\x85\xa9\x1e\
+\x00\x0d\xa5\xf8H\x09S\xaev\x88\x83\x0c\xc8\xed\xacF\
+\x861\x06\xadu\xf7Z\x08\x81\x94\x12!:\xa8\xa1=\
+\x00\xed\xf9\xc4\x8a\xbb0P\x0a\x7f/\x01\xb41\x99X\
+!\x8fV\xaa\x93\xda u;\x0d\xad5J\xa9n\xa3\
+\x85\x10J)|\xdfGk\xdd\xe9\x95\xb0\x17\x8c!\x96\
+\xcb\xa0\x8d\x19\xee\x01\x90B\xd4\xdb\x8e\x83\x8e\xc5o\xd7\
+{\x07\x00\xa5T7\xf2;\x016\xce\x9f\xc7\xabV;\
+\xbd\x12\x8b\xe1\x96+\x08!6\xc356\x80\x80[\xcd\
+J%7\x94\x8c\xa3[\xad\x1d\x8d\xee\xe4\xb8\x07\xb4\xd1\
+\xc0\x9f\x9fG\xa4\xd3\xc4\xee\x1f\xc75\x1e\x02*=\x00\
+\xc0\xa5\xfa\xd5k\x13CG\x0ec6\x9dN\x03\x02\xee\
+\x89\x13\x9d\xd4\x1a\x83_.\xe3]\xbf\x8eq\x9c\xee\x0e\
+\x17\xf6J\xcf\xee\x17\xd9={\xf4\x8e\x83\xe5:46\
+\xeah\xb8\xd8\x03\xe0\x1bs\xaa<\x7f\xf1h\xe9KG\
+2=MS\xaf\xa3*\x15\xfc\xa5\xa5\xce\x1b\xb2\xcdV\
+\xdb\xaf\xeb\x07\x0c\x9f\xc9\xb1\x02\xb5\xcb\xd76\xb51\xa7\
+z\x00\x5c\x98\xd9\xd8\xac[\xed\xc5O\xf0\xfe\xb5\x801\
+\xa0[-\x8c\xebn\x19\xe5\xddD\xdf\x03d\x0c2\x9d\
+\xc0\xc4$\x8e\xdb\xb2\x81\xb3!\x80\x048\x0e5!\xc4\
+[\xcb\xff\x9c\xf5\xe5}cx\xb5\x1a\xcau\xbb\xa7[\
+\xb8\xf3\x85\xa2\xb8\xbd\xd5\xf6o\xcd\xa1^\x85\xe7C\xa0\
+\x8f\x1d\xd8C\xf9\x83\x05_\x1a\xde\x98\x86\xcd\x1e\x00\x00\
+W\xeb\x1f./\x95\xeb&\x9bF\xe4\xb3\xb7\x9dE\x0e\
+\x9a\x01\xa7\xdc>\x86U\x1f`\x14\x5c\xe63\x90\x8eS\
+\xbd\xb5Z\xf7\xe1GDF\x17\xe0\x18,#\xc4kW\
+\xdf\xfd\xa0\x91xx\x12\x93\x8c\xef\x18\xbd\xda\x02&\x0a\
+\xae\x8d\xc1\xa4\x12\xa4\x1e\x9a`\xf1o\xb3\x8e\x14\xe2\xd5\
+\xe8Q\xdc\x03\x00P\xd7\xfa'N\xd3\x9d\xfd\xf4\xef\x1f\
+z\xc9G\x1f\xc0\xa4\x12\x03\xa9\xdd*\xfa\x9elE\xa2\
+'\x9d`\xe8\xcb\x07Yzo\xae\xed\xb6\xda\x1f\xd5\xb5\
+\xfe)}c`k\x7f\x0bv\xd90_(\xe5G\xc6\
+\xbfv$\xe6\x9c\xbf\x84\xbfR\xebm\xb8-:<\xaa\
+\x07\xb0K9\x86\x0e\xefg\xf9\xbdyo\xb3Z[n\
+\xc2\x83[}\x13ny\xb6\x9c\x81{\x04\x9cM\xa5\x92\
+\x87\xf6\x1e}8e\x1a.\xcd\x0b\xd7QNs\xdb\xd7\
+0\x14k8Mjr\x1c\x91\x8a\xf3\xe9_?nz\
+n{\xae\x0dO>\x07\xd5\xad|m{\xb8\xbd\x06\xb1\
+1xU\x0a\xf1b~\xb4\x90\x18y\xe4\x90\xc4m\xd1\
+\xba\xb9\x8a\xbf\xee\xa0\xdd\x16\xdaS\x10\xb3\x90\xc9\x04V\
+.Ml,\x8f\x8c[\xdc:w\xc5\xaf\xddZ\xf3\xda\
+p\xf2$\xfc\xe0\x0c4\xb6\xf3\xb3\x15\x80\x002\xc0\x10\
+\x90\xf9\x0eLN\xc3\x8f\xb3\xf0H2\x95P\xd9\xb1B\
+*Y\xccb\x0f\xa7\xb1\x87\x92xN\x93V\xadA{\
+u\x83\xf5\x9bkM\xcfmY\xebp\xeeM\xf8\xd5\xdb\
+p\x05\xa8\x03Nd\xde\x11 \x1d\x00\x0cG\xe7=0\
+\xf6$<z\x18\xbe\x9a\x85\xb1\x04dl\x88\xfb\xe0\xb9\
+P_\x87\xca\x87\xf0\xfe\x9f\xe1\xdcR\xa7\xd3\xebt\xde\
+\xf7p\xde\xa4\xf3\x9fQ\xddM\x09\xd2t\xbe\xdb\xc2L\
+\xa4\x839\x15H\x02\x88\xd3\xf9_a\x02\xa3\x1e\xe0\x02\
+M:)\x0f%t\xbc\xd9\xef\xfcN\x00\xd1\xe7\xb1\xc0\
+a\x0aH\x06\x8e\xe3\x81\xde\x06\xfc\x08@\x1bh\x05\x8e\
+\xdd@7\xe04:\xfe\x03\xe7\x9a\x10E\xb3\x99\xaa\x5c\
+\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x0d\
+\x0e\xa1\xb1G\
+\x00t\
+\x00e\x00x\x00t\x00-\x00h\x00t\x00m\x00l\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x0c+\x1f\xc7\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00.\x00p\x00n\x00g\
+\x00\x0d\
+\x07\x1b{\x87\
+\x00g\
+\x00o\x00-\x00b\x00o\x00t\x00t\x00o\x00m\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x08\x15\x13g\
+\x00v\
+\x00i\x00e\x00w\x00-\x00r\x00e\x00f\x00r\x00e\x00s\x00h\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x08\xea\xfbg\
+\x00p\
+\x00r\x00o\x00c\x00e\x00s\x00s\x00-\x00s\x00t\x00o\x00p\x00.\x00p\x00n\x00g\
+\x00\x0f\
+\x0e6v\xc7\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0d\x8b9\xe7\
+\x00e\
+\x00d\x00i\x00t\x00-\x00c\x00l\x00e\x00a\x00r\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x05\xcb%G\
+\x00A\
+\x00p\x00p\x00L\x00o\x00g\x00o\x00C\x00o\x00l\x00o\x00r\x00.\x00p\x00n\x00g\
+\x00\x09\
+\x05\x04\xbdG\
+\x00n\
+\x00i\x00n\x00j\x00a\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x0f\xcb\x90g\
+\x00d\
+\x00i\x00a\x00l\x00o\x00g\x00-\x00e\x00r\x00r\x00o\x00r\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00CC\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00+^\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00<\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xaa\
+\x00\x00\x01\x83\x17\xd5\xbe\xb7\
+\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x10\x9d\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x18\x89\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00 \x00\x00\x00\x00\x00\x01\x00\x00\x06\xe3\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00$\xc8\
+\x00\x00\x01\x83\x17\xd5\xbe\xb7\
+\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00 \x14\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x01,\x00\x00\x00\x00\x00\x01\x00\x00I\xce\
+\x00\x00\x01\x83\x17\xd5\xbe\xb7\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/webenginewidgets/simplebrowser/data/simplebrowser.qrc b/examples/webenginewidgets/simplebrowser/data/simplebrowser.qrc
new file mode 100644
index 000000000..eda8e3f3d
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/simplebrowser.qrc
@@ -0,0 +1,16 @@
+<RCC>
+ <qresource prefix="/">
+ <file>AppLogoColor.png</file>
+ <file>ninja.png</file>
+ </qresource>
+ <qresource prefix="/">
+ <file alias="dialog-error.png">3rdparty/dialog-error.png</file>
+ <file alias="edit-clear.png">3rdparty/edit-clear.png</file>
+ <file alias="go-bottom.png">3rdparty/go-bottom.png</file>
+ <file alias="go-next.png">3rdparty/go-next.png</file>
+ <file alias="go-previous.png">3rdparty/go-previous.png</file>
+ <file alias="process-stop.png">3rdparty/process-stop.png</file>
+ <file alias="text-html.png">3rdparty/text-html.png</file>
+ <file alias="view-refresh.png">3rdparty/view-refresh.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/webenginewidgets/simplebrowser/doc/simplebrowser.rst b/examples/webenginewidgets/simplebrowser/doc/simplebrowser.rst
index 83dd109c5..abe707670 100644
--- a/examples/webenginewidgets/simplebrowser/doc/simplebrowser.rst
+++ b/examples/webenginewidgets/simplebrowser/doc/simplebrowser.rst
@@ -1,8 +1,177 @@
-Simple Browser Example
-======================
+Simple Browser
+==============
-A simple browser based on Qt WebEngine Widgets.
+Simple Browser demonstrates how to use the Qt WebEngine Widgets classes to
+develop a small Web browser application that contains the following elements:
-.. image:: simplebrowser.png
- :width: 400
+- Menu bar for opening stored pages and managing windows and tabs.
+- Navigation bar for entering a URL and for moving backward and
+ forward in the web page browsing history.
+- Multi-tab area for displaying web content within tabs.
+- Status bar for displaying hovered links.
+- A simple download manager.
+
+The web content can be opened in new tabs or separate windows. HTTP and
+proxy authentication can be used for accessing web pages.
+
+Class Hierarchy
++++++++++++++++
+
+We will implement the following main classes:
+
+- ``Browser`` is a class managing the application windows.
+- ``BrowserWindow`` is a ``QMainWindow`` showing the menu, a navigation
+ bar, ``TabWidget``, and a status bar.
+- ``TabWidget`` is a ``QTabWidget`` and contains one or multiple
+ browser tabs.
+- ``WebView`` is a ``QWebEngineView``, provides a view for ``WebPage``,
+ and is added as a tab in ``TabWidget``.
+- ``WebPage`` is a ``QWebEnginePage`` that represents website content.
+
+Additionally, we will implement some auxiliary classes:
+
+- ``WebPopupWindow`` is a ``QWidget`` for showing popup windows.
+- ``DownloadManagerWidget`` is a ``QWidget`` implementing the downloads
+ list.
+
+Creating the Browser Main Window
+++++++++++++++++++++++++++++++++
+
+This example supports multiple main windows that are owned by a ``Browser``
+object. This class also owns the ``DownloadManagerWidget`` and could be used
+for further functionality, such as bookmarks and history managers.
+
+In ``main.cpp``, we create the first ``BrowserWindow`` instance and add it
+to the ``Browser`` object. If no arguments are passed on the command line,
+we open the Qt Homepage.
+
+To suppress flicker when switching the window to OpenGL rendering, we call
+show after the first browser tab has been added.
+
+Creating Tabs
++++++++++++++
+
+The ``BrowserWindow`` constructor initializes all the necessary user interface
+related objects. The centralWidget of ``BrowserWindow`` contains an instance of
+``TabWidget``. The ``TabWidget`` contains one or several ``WebView`` instances
+as tabs, and delegates it's signals and slots to the currently selected one.
+
+In ``TabWidget.setup_view()``, we make sure that the ``TabWidget`` always
+forwards the signals of the currently selected ``WebView``.
+
+Implementing WebView Functionality
+++++++++++++++++++++++++++++++++++
+
+The class ``WebView`` is derived from ``QWebEngineView`` to support the
+following functionality:
+
+- Displaying error messages in case the render process dies
+- Handling ``createWindow()`` requests
+- Adding custom menu items to context menus
+
+Managing WebWindows
+-------------------
+
+The loaded page might want to create windows of the type
+``QWebEnginePage.WebWindowType``, for example, when a JavaScript program requests
+to open a document in a new window or dialog. This is handled by overriding
+``QWebView.createWindow()``.
+
+In case of ``QWebEnginePage.WebDialog``, we create an instance of a custom
+``WebPopupWindow`` class.
+
+Adding Context Menu Items
+-------------------------
+
+We add a menu item to the context menu, so that users can right-click to have
+an inspector opened in a new window. We override
+``QWebEngineView.contextMenuEvent()`` and use
+``QWebEnginePage.createStandardContextMenu()`` to create a default ``QMenu``
+with a default list of ``QWebEnginePage.WebAction`` actions.
+
+Implementing WebPage and WebView Functionality
++++++++++++++++++++++++++++++++++++++++++++++++
+
+We implement ``WebPage`` as a subclass of ``QWebEnginePage`` and ``WebView`` as
+as subclass of ``QWebEngineView`` to enable HTTP, proxy authentication, as well
+as ignoring SSL certificate errors when accessing web pages.
+
+In all the cases above, we display the appropriate dialog to the user. In
+case of authentication, we need to set the correct credential values on the
+QAuthenticator object.
+
+The ``handleProxyAuthenticationRequired`` signal handler implements the very same
+steps for the authentication of HTTP proxies.
+
+In case of SSL errors, we just need to return a boolean value indicating
+whether the certificate should be ignored.
+
+Opening a Web Page
+++++++++++++++++++
+
+This section describes the workflow for opening a new page. When the user
+enters a URL in the navigation bar and presses Enter, the
+``QLineEdit.:returnPressed()`` signal is emitted and the new URL is then handed
+over to ``TabWidget.set_url()``.
+
+The call is forwarded to the currently selected tab.
+
+The ``set_url()`` method of ``WebView`` just forwards the url to the associated
+``WebPage``, which in turn starts the downloading of the page's content in the
+background.
+
+Implementing Private Browsing
++++++++++++++++++++++++++++++
+
+*Private browsing*, *incognito mode*, or *off-the-record* mode is a feature of
+many browsers where normally persistent data, such as cookies, the HTTP cache,
+or browsing history, is kept only in memory, leaving no trace on disk. In this
+example we will implement private browsing on the window level with tabs in one
+window all in either normal or private mode. Alternatively we could implement
+private browsing on the tab-level, with some tabs in a window in normal mode,
+others in private mode.
+
+Implementing private browsing is quite easy using Qt WebEngine. All one has to
+do is to create a new ``QWebEngineProfile`` and use it in the
+``QWebEnginePage`` instead of the default profile. In the example, this new
+profile is owned by the ``Browser`` object.
+
+The required profile for *private browsing* is created together with its first
+window. The default constructor for ``QWebEngineProfile`` already puts it in
+*off-the-record* mode.
+
+All that is left to do is to pass the appropriate profile down to the
+appropriate ``QWebEnginePage`` objects. The ``Browser`` object will hand to
+each new ``BrowserWindow`` either the global default profile or one shared
+*off-the-record* profile instance.
+
+The ``BrowserWindow`` and ``TabWidget`` objects will then ensure that all
+``QWebEnginePage`` objects contained in a window will use this profile.
+
+Managing Downloads
+++++++++++++++++++
+
+Downloads are associated with a ``QWebEngineProfile``. Whenever a download is
+triggered on a web page the ``QWebEngineProfile.downloadRequested`` signal is
+emitted with a ``QWebEngineDownloadRequest``, which in this example is
+forwarded to ``DownloadManagerWidget.download_requested()``.
+
+This method prompts the user for a file name (with a pre-filled suggestion) and
+starts the download (unless the user cancels the ``Save As`` dialog).
+
+The ``QWebEngineDownloadRequest`` object will periodically emit the
+``QWebEngineDownloadRequest.receivedBytesChanged()`` signal to notify potential
+observers of the download progress and the
+``QWebEngineDownloadRequest.stateChanged()`` signal when the download is
+finished or when an error occurs.
+
+Files and Attributions
+++++++++++++++++++++++
+
+The example uses icons from the `Tango Icon Library`_.
+
+.. image:: simplebrowser.webp
+ :width: 800
:alt: Simple Browser Screenshot
+
+.. _`Tango Icon Library`: http://tango.freedesktop.org/Tango_Icon_Library
diff --git a/examples/webenginewidgets/simplebrowser/doc/simplebrowser.webp b/examples/webenginewidgets/simplebrowser/doc/simplebrowser.webp
new file mode 100644
index 000000000..0edc72c0b
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/doc/simplebrowser.webp
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.py b/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.py
new file mode 100644
index 000000000..7096b8b57
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWebEngineCore import QWebEngineDownloadRequest
+from PySide6.QtWidgets import QWidget, QFileDialog
+from PySide6.QtCore import QDir, QFileInfo, Qt
+
+from downloadwidget import DownloadWidget
+from ui_downloadmanagerwidget import Ui_DownloadManagerWidget
+
+
+# Displays a list of downloads.
+class DownloadManagerWidget(QWidget):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._ui = Ui_DownloadManagerWidget()
+ self._num_downloads = 0
+ self._ui.setupUi(self)
+
+ def download_requested(self, download):
+ assert (download and download.state() == QWebEngineDownloadRequest.DownloadRequested)
+
+ proposal_dir = download.downloadDirectory()
+ proposal_name = download.downloadFileName()
+ proposal = QDir(proposal_dir).filePath(proposal_name)
+ path, _ = QFileDialog.getSaveFileName(self, "Save as", proposal)
+ if not path:
+ return
+
+ fi = QFileInfo(path)
+ download.setDownloadDirectory(fi.path())
+ download.setDownloadFileName(fi.fileName())
+ download.accept()
+ self.add(DownloadWidget(download))
+
+ self.show()
+
+ def add(self, downloadWidget):
+ downloadWidget.remove_clicked.connect(self.remove)
+ self._ui.m_itemsLayout.insertWidget(0, downloadWidget, 0, Qt.AlignTop)
+ if self._num_downloads == 0:
+ self._ui.m_zeroItemsLabel.hide()
+ self._num_downloads += 1
+
+ def remove(self, downloadWidget):
+ self._ui.m_itemsLayout.removeWidget(downloadWidget)
+ downloadWidget.deleteLater()
+ self._num_downloads -= 1
+ if self._num_downloads == 0:
+ self._ui.m_zeroItemsLabel.show()
diff --git a/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.ui b/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.ui
new file mode 100644
index 000000000..b7544ac16
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.ui
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DownloadManagerWidget</class>
+ <widget class="QWidget" name="DownloadManagerWidget">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>212</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Downloads</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">#DownloadManagerWidget {
+ background: palette(button)
+}</string>
+ </property>
+ <layout class="QVBoxLayout" name="m_topLevelLayout">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetNoConstraint</enum>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QScrollArea" name="m_scrollArea">
+ <property name="styleSheet">
+ <string notr="true">#m_scrollArea {
+ margin: 2px;
+ border: none;
+}</string>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOn</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ </property>
+ <widget class="QWidget" name="m_items">
+ <property name="styleSheet">
+ <string notr="true">#m_items {background: palette(mid)}</string>
+ </property>
+ <layout class="QVBoxLayout" name="m_itemsLayout">
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <property name="leftMargin">
+ <number>3</number>
+ </property>
+ <property name="topMargin">
+ <number>3</number>
+ </property>
+ <property name="rightMargin">
+ <number>3</number>
+ </property>
+ <property name="bottomMargin">
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="m_zeroItemsLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">color: palette(shadow)</string>
+ </property>
+ <property name="text">
+ <string>No downloads</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/webenginewidgets/simplebrowser/downloadwidget.py b/examples/webenginewidgets/simplebrowser/downloadwidget.py
new file mode 100644
index 000000000..3b4973cb8
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/downloadwidget.py
@@ -0,0 +1,109 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from ui_downloadwidget import Ui_DownloadWidget
+
+from PySide6.QtWebEngineCore import QWebEngineDownloadRequest
+from PySide6.QtWidgets import QFrame, QWidget
+from PySide6.QtGui import QIcon
+from PySide6.QtCore import QElapsedTimer, Signal, Slot
+
+
+def with_unit(bytes):
+ if bytes < (1 << 10):
+ return f"{bytes} B"
+ if bytes < (1 << 20):
+ s = bytes / (1 << 10)
+ return f"{int(s)} KiB"
+ if bytes < (1 << 30):
+ s = bytes / (1 << 20)
+ return f"{int(s)} MiB"
+ s = bytes / (1 << 30)
+ return f"{int(s)} GiB"
+
+
+class DownloadWidget(QFrame):
+ """Displays one ongoing or finished download (QWebEngineDownloadRequest)."""
+
+ # This signal is emitted when the user indicates that they want to remove
+ # this download from the downloads list.
+ remove_clicked = Signal(QWidget)
+
+ def __init__(self, download, parent=None):
+ super().__init__(parent)
+ self._download = download
+ self._time_added = QElapsedTimer()
+ self._time_added.start()
+ self._cancel_icon = QIcon.fromTheme(QIcon.ThemeIcon.ProcessStop,
+ QIcon(":process-stop.png"))
+ self._remove_icon = QIcon.fromTheme(QIcon.ThemeIcon.EditClear,
+ QIcon(":edit-clear.png"))
+
+ self._ui = Ui_DownloadWidget()
+ self._ui.setupUi(self)
+ self._ui.m_dstName.setText(self._download.downloadFileName())
+ self._ui.m_srcUrl.setText(self._download.url().toDisplayString())
+
+ self._ui.m_cancelButton.clicked.connect(self._canceled)
+
+ self._download.totalBytesChanged.connect(self.update_widget)
+ self._download.receivedBytesChanged.connect(self.update_widget)
+
+ self._download.stateChanged.connect(self.update_widget)
+
+ self.update_widget()
+
+ @Slot()
+ def _canceled(self):
+ state = self._download.state()
+ if state == QWebEngineDownloadRequest.DownloadInProgress:
+ self._download.cancel()
+ else:
+ self.remove_clicked.emit(self)
+
+ def update_widget(self):
+ total_bytes_v = self._download.totalBytes()
+ total_bytes = with_unit(total_bytes_v)
+ received_bytes_v = self._download.receivedBytes()
+ received_bytes = with_unit(received_bytes_v)
+ elapsed = self._time_added.elapsed()
+ bytes_per_second_v = received_bytes_v / elapsed * 1000 if elapsed else 0
+ bytes_per_second = with_unit(bytes_per_second_v)
+
+ state = self._download.state()
+
+ progress_bar = self._ui.m_progressBar
+ if state == QWebEngineDownloadRequest.DownloadInProgress:
+ if total_bytes_v > 0:
+ progress = round(100 * received_bytes_v / total_bytes_v)
+ progress_bar.setValue(progress)
+ progress_bar.setDisabled(False)
+ fmt = f"%p% - {received_bytes} of {total_bytes} downloaded - {bytes_per_second}/s"
+ progress_bar.setFormat(fmt)
+ else:
+ progress_bar.setValue(0)
+ progress_bar.setDisabled(False)
+ fmt = f"unknown size - {received_bytes} downloaded - {bytes_per_second}/s"
+ progress_bar.setFormat(fmt)
+ elif state == QWebEngineDownloadRequest.DownloadCompleted:
+ progress_bar.setValue(100)
+ progress_bar.setDisabled(True)
+ fmt = f"completed - {received_bytes} downloaded - {bytes_per_second}/s"
+ progress_bar.setFormat(fmt)
+ elif state == QWebEngineDownloadRequest.DownloadCancelled:
+ progress_bar.setValue(0)
+ progress_bar.setDisabled(True)
+ fmt = f"cancelled - {received_bytes} downloaded - {bytes_per_second}/s"
+ progress_bar.setFormat(fmt)
+ elif state == QWebEngineDownloadRequest.DownloadInterrupted:
+ progress_bar.setValue(0)
+ progress_bar.setDisabled(True)
+ fmt = "interrupted: " + self._download.interruptReasonString()
+ progress_bar.setFormat(fmt)
+
+ if state == QWebEngineDownloadRequest.DownloadInProgress:
+ self._ui.m_cancelButton.setIcon(self._cancel_icon)
+ self._ui.m_cancelButton.setToolTip("Stop downloading")
+ else:
+ self._ui.m_cancelButton.setIcon(self._remove_icon)
+ self._ui.m_cancelButton.setToolTip("Remove from list")
diff --git a/examples/webenginewidgets/simplebrowser/downloadwidget.ui b/examples/webenginewidgets/simplebrowser/downloadwidget.ui
new file mode 100644
index 000000000..47f621486
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/downloadwidget.ui
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DownloadWidget</class>
+ <widget class="QFrame" name="DownloadWidget">
+ <property name="styleSheet">
+ <string notr="true">#DownloadWidget {
+ background: palette(button);
+ border: 1px solid palette(dark);
+ margin: 0px;
+}</string>
+ </property>
+ <layout class="QGridLayout" name="m_topLevelLayout">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetMinAndMaxSize</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="m_dstName">
+ <property name="styleSheet">
+ <string notr="true">font-weight: bold
+</string>
+ </property>
+ <property name="text">
+ <string>TextLabel</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QPushButton" name="m_cancelButton">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed"/>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">QPushButton {
+ margin: 1px;
+ border: none;
+}
+QPushButton:pressed {
+ margin: none;
+ border: 1px solid palette(shadow);
+ background: palette(midlight);
+}</string>
+ </property>
+ <property name="flat">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QLabel" name="m_srcUrl">
+ <property name="maximumSize">
+ <size>
+ <width>350</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string>TextLabel</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QProgressBar" name="m_progressBar">
+ <property name="styleSheet">
+ <string notr="true">font-size: 12px</string>
+ </property>
+ <property name="value">
+ <number>24</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/webenginewidgets/simplebrowser/main.py b/examples/webenginewidgets/simplebrowser/main.py
new file mode 100644
index 000000000..781ec29eb
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/main.py
@@ -0,0 +1,45 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt WebEngineWidgets Simple Browser example from Qt v6.x"""
+
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+from PySide6.QtWebEngineCore import QWebEngineProfile, QWebEngineSettings
+from PySide6.QtWidgets import QApplication
+from PySide6.QtGui import QIcon
+from PySide6.QtCore import QCoreApplication, QLoggingCategory, QUrl
+
+from browser import Browser
+
+import data.rc_simplebrowser # noqa: F401
+
+if __name__ == "__main__":
+ parser = ArgumentParser(description="Qt Widgets Web Browser",
+ formatter_class=RawTextHelpFormatter)
+ parser.add_argument("--single-process", "-s", action="store_true",
+ help="Run in single process mode (trouble shooting)")
+ parser.add_argument("url", type=str, nargs="?", help="URL")
+ args = parser.parse_args()
+
+ QCoreApplication.setOrganizationName("QtExamples")
+
+ app_args = sys.argv
+ if args.single_process:
+ app_args.extend(["--webEngineArgs", "--single-process"])
+ app = QApplication(app_args)
+ app.setWindowIcon(QIcon(":AppLogoColor.png"))
+ QLoggingCategory.setFilterRules("qt.webenginecontext.debug=true")
+
+ s = QWebEngineProfile.defaultProfile().settings()
+ s.setAttribute(QWebEngineSettings.PluginsEnabled, True)
+ s.setAttribute(QWebEngineSettings.DnsPrefetchEnabled, True)
+
+ browser = Browser()
+ window = browser.create_hidden_window()
+
+ url = QUrl.fromUserInput(args.url) if args.url else QUrl("https://www.qt.io")
+ window.tab_widget().set_url(url)
+ window.show()
+ sys.exit(app.exec())
diff --git a/examples/webenginewidgets/simplebrowser/passworddialog.ui b/examples/webenginewidgets/simplebrowser/passworddialog.ui
new file mode 100644
index 000000000..bbf5004f5
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/passworddialog.ui
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>PasswordDialog</class>
+ <widget class="QDialog" name="PasswordDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>399</width>
+ <height>148</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Authentication Required</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout" columnstretch="0,0" columnminimumwidth="0,0">
+ <item row="0" column="0">
+ <widget class="QLabel" name="m_iconLabel">
+ <property name="text">
+ <string>Icon</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLabel" name="m_infoLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Info</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="userLabel">
+ <property name="text">
+ <string>Username:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="m_userNameLineEdit"/>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="passwordLabel">
+ <property name="text">
+ <string>Password:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="m_passwordLineEdit">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ <zorder>userLabel</zorder>
+ <zorder>m_userNameLineEdit</zorder>
+ <zorder>passwordLabel</zorder>
+ <zorder>m_passwordLineEdit</zorder>
+ <zorder>buttonBox</zorder>
+ <zorder>m_iconLabel</zorder>
+ <zorder>m_infoLabel</zorder>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>PasswordDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>PasswordDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/webenginewidgets/simplebrowser/simplebrowser.pyproject b/examples/webenginewidgets/simplebrowser/simplebrowser.pyproject
index 6bc12af6b..eceac291e 100644
--- a/examples/webenginewidgets/simplebrowser/simplebrowser.pyproject
+++ b/examples/webenginewidgets/simplebrowser/simplebrowser.pyproject
@@ -1,3 +1,7 @@
{
- "files": ["simplebrowser.py"]
+ "files": ["main.py", "browser.py", "browserwindow.py", "certificateerrordialog.ui",
+ "data/simplebrowser.qrc", "downloadmanagerwidget.py",
+ "downloadmanagerwidget.ui", "downloadwidget.py",
+ "downloadwidget.ui", "passworddialog.ui", "tabwidget.py",
+ "webpage.py", "webpopupwindow.py", "webview.py"]
}
diff --git a/examples/webenginewidgets/simplebrowser/tabwidget.py b/examples/webenginewidgets/simplebrowser/tabwidget.py
new file mode 100644
index 000000000..bda321ac1
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/tabwidget.py
@@ -0,0 +1,241 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from functools import partial
+
+from PySide6.QtWebEngineCore import (QWebEngineFindTextResult, QWebEnginePage)
+from PySide6.QtWidgets import QLabel, QMenu, QTabBar, QTabWidget
+from PySide6.QtGui import QCursor, QIcon, QKeySequence, QPixmap
+from PySide6.QtCore import QUrl, Qt, Signal, Slot
+
+from webpage import WebPage
+from webview import WebView
+
+
+class TabWidget(QTabWidget):
+ link_hovered = Signal(str)
+ load_progress = Signal(int)
+ title_changed = Signal(str)
+ url_changed = Signal(QUrl)
+ fav_icon_changed = Signal(QIcon)
+ web_action_enabled_changed = Signal(QWebEnginePage.WebAction, bool)
+ dev_tools_requested = Signal(QWebEnginePage)
+ find_text_finished = Signal(QWebEngineFindTextResult)
+
+ def __init__(self, profile, parent):
+ super().__init__(parent)
+ self._profile = profile
+ tab_bar = self.tabBar()
+ tab_bar.setTabsClosable(True)
+ tab_bar.setSelectionBehaviorOnRemove(QTabBar.SelectPreviousTab)
+ tab_bar.setMovable(True)
+ tab_bar.setContextMenuPolicy(Qt.CustomContextMenu)
+ tab_bar.customContextMenuRequested.connect(self.handle_context_menu_requested)
+ tab_bar.tabCloseRequested.connect(self.close_tab)
+ tab_bar.tabBarDoubleClicked.connect(self._tabbar_double_clicked)
+ self.setDocumentMode(True)
+ self.setElideMode(Qt.ElideRight)
+
+ self.currentChanged.connect(self.handle_current_changed)
+
+ if profile.isOffTheRecord():
+ icon = QLabel(self)
+ pixmap = QPixmap(":ninja.png")
+ icon.setPixmap(pixmap.scaledToHeight(tab_bar.height()))
+ w = icon.pixmap().width()
+ self.setStyleSheet(f"QTabWidget.tab-bar {{ left: {w}px; }}")
+
+ @Slot(int)
+ def _tabbar_double_clicked(self, index):
+ if index == -1:
+ self.create_tab()
+
+ def handle_current_changed(self, index):
+ if index != -1:
+ view = self.web_view(index)
+ if view.url():
+ view.setFocus()
+ self.title_changed.emit(view.title())
+ self.load_progress.emit(view.load_progress())
+ self.url_changed.emit(view.url())
+ self.fav_icon_changed.emit(view.fav_icon())
+ e = view.is_web_action_enabled(QWebEnginePage.Back)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Back, e)
+ e = view.is_web_action_enabled(QWebEnginePage.Forward)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Forward, e)
+ e = view.is_web_action_enabled(QWebEnginePage.Stop)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Stop, e)
+ e = view.is_web_action_enabled(QWebEnginePage.Reload)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Reload, e)
+ else:
+ self.title_changed.emit("")
+ self.load_progress.emit(0)
+ self.url_changed.emit(QUrl())
+ self.fav_icon_changed.emit(QIcon())
+ self.web_action_enabled_changed.emit(QWebEnginePage.Back, False)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Forward, False)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Stop, False)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Reload, True)
+
+ def handle_context_menu_requested(self, pos):
+ menu = QMenu()
+ menu.addAction("New &Tab", QKeySequence.AddTab, self.create_tab)
+ index = self.tabBar().tabAt(pos)
+ if index != -1:
+ action = menu.addAction("Clone Tab")
+ action.triggered.connect(partial(self.clone_tab, index))
+ menu.addSeparator()
+ action = menu.addAction("Close Tab")
+ action.setShortcut(QKeySequence.Close)
+ action.triggered.connect(partial(self.close_tab, index))
+ action = menu.addAction("Close Other Tabs")
+ action.triggered.connect(partial(self.close_other_tabs, index))
+ menu.addSeparator()
+ action = menu.addAction("Reload Tab")
+ action.setShortcut(QKeySequence.Refresh)
+ action.triggered.connect(partial(self.reload_tab, index))
+ else:
+ menu.addSeparator()
+
+ menu.addAction("Reload All Tabs", self.reload_all_tabs)
+ menu.exec(QCursor.pos())
+
+ def current_web_view(self):
+ return self.web_view(self.currentIndex())
+
+ def web_view(self, index):
+ return self.widget(index)
+
+ def _title_changed(self, web_view, title):
+ index = self.indexOf(web_view)
+ if index != -1:
+ self.setTabText(index, title)
+ self.setTabToolTip(index, title)
+
+ if self.currentIndex() == index:
+ self.title_changed.emit(title)
+
+ def _url_changed(self, web_view, url):
+ index = self.indexOf(web_view)
+ if index != -1:
+ self.tabBar().setTabData(index, url)
+ if self.currentIndex() == index:
+ self.url_changed.emit(url)
+
+ def _load_progress(self, web_view, progress):
+ if self.currentIndex() == self.indexOf(web_view):
+ self.load_progress.emit(progress)
+
+ def _fav_icon_changed(self, web_view, icon):
+ index = self.indexOf(web_view)
+ if index != -1:
+ self.setTabIcon(index, icon)
+ if self.currentIndex() == index:
+ self.fav_icon_changed.emit(icon)
+
+ def _link_hovered(self, web_view, url):
+ if self.currentIndex() == self.indexOf(web_view):
+ self.link_hovered.emit(url)
+
+ def _webaction_enabled_changed(self, webView, action, enabled):
+ if self.currentIndex() == self.indexOf(webView):
+ self.web_action_enabled_changed.emit(action, enabled)
+
+ def _window_close_requested(self, webView):
+ index = self.indexOf(webView)
+ if webView.page().inspectedPage():
+ self.window().close()
+ elif index >= 0:
+ self.close_tab(index)
+
+ def _find_text_finished(self, webView, result):
+ if self.currentIndex() == self.indexOf(webView):
+ self.find_text_finished.emit(result)
+
+ def setup_view(self, webView):
+ web_page = webView.page()
+ webView.titleChanged.connect(partial(self._title_changed, webView))
+ webView.urlChanged.connect(partial(self._url_changed, webView))
+ webView.loadProgress.connect(partial(self._load_progress, webView))
+ web_page.linkHovered.connect(partial(self._link_hovered, webView))
+ webView.fav_icon_changed.connect(partial(self._fav_icon_changed, webView))
+ webView.web_action_enabled_changed.connect(partial(self._webaction_enabled_changed,
+ webView))
+ web_page.windowCloseRequested.connect(partial(self._window_close_requested,
+ webView))
+ webView.dev_tools_requested.connect(self.dev_tools_requested)
+ web_page.findTextFinished.connect(partial(self._find_text_finished,
+ webView))
+
+ def create_tab(self):
+ web_view = self.create_background_tab()
+ self.setCurrentWidget(web_view)
+ return web_view
+
+ def create_background_tab(self):
+ web_view = WebView()
+ web_page = WebPage(self._profile, web_view)
+ web_view.set_page(web_page)
+ self.setup_view(web_view)
+ index = self.addTab(web_view, "(Untitled)")
+ self.setTabIcon(index, web_view.fav_icon())
+ # Workaround for QTBUG-61770
+ web_view.resize(self.currentWidget().size())
+ web_view.show()
+ return web_view
+
+ def reload_all_tabs(self):
+ for i in range(0, self.count()):
+ self.web_view(i).reload()
+
+ def close_other_tabs(self, index):
+ for i in range(index, self.count() - 1, -1):
+ self.close_tab(i)
+ for i in range(-1, index - 1, -1):
+ self.close_tab(i)
+
+ def close_tab(self, index):
+ view = self.web_view(index)
+ if view:
+ has_focus = view.hasFocus()
+ self.removeTab(index)
+ if has_focus and self.count() > 0:
+ self.current_web_view().setFocus()
+ if self.count() == 0:
+ self.create_tab()
+ view.deleteLater()
+
+ def clone_tab(self, index):
+ view = self.web_view(index)
+ if view:
+ tab = self.create_tab()
+ tab.setUrl(view.url())
+
+ def set_url(self, url):
+ view = self.current_web_view()
+ if view:
+ view.setUrl(url)
+ view.setFocus()
+
+ def trigger_web_page_action(self, action):
+ web_view = self.current_web_view()
+ if web_view:
+ web_view.triggerPageAction(action)
+ web_view.setFocus()
+
+ def next_tab(self):
+ next = self.currentIndex() + 1
+ if next == self.count():
+ next = 0
+ self.setCurrentIndex(next)
+
+ def previous_tab(self):
+ next = self.currentIndex() - 1
+ if next < 0:
+ next = self.count() - 1
+ self.setCurrentIndex(next)
+
+ def reload_tab(self, index):
+ view = self.web_view(index)
+ if view:
+ view.reload()
diff --git a/examples/webenginewidgets/simplebrowser/ui_certificateerrordialog.py b/examples/webenginewidgets/simplebrowser/ui_certificateerrordialog.py
new file mode 100644
index 000000000..a963f0ac0
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/ui_certificateerrordialog.py
@@ -0,0 +1,87 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'certificateerrordialog.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialog, QDialogButtonBox,
+ QLabel, QSizePolicy, QSpacerItem, QVBoxLayout,
+ QWidget)
+
+class Ui_CertificateErrorDialog(object):
+ def setupUi(self, CertificateErrorDialog):
+ if not CertificateErrorDialog.objectName():
+ CertificateErrorDialog.setObjectName(u"CertificateErrorDialog")
+ CertificateErrorDialog.resize(370, 141)
+ self.verticalLayout = QVBoxLayout(CertificateErrorDialog)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.verticalLayout.setContentsMargins(20, -1, 20, -1)
+ self.m_iconLabel = QLabel(CertificateErrorDialog)
+ self.m_iconLabel.setObjectName(u"m_iconLabel")
+ self.m_iconLabel.setAlignment(Qt.AlignCenter)
+
+ self.verticalLayout.addWidget(self.m_iconLabel)
+
+ self.m_errorLabel = QLabel(CertificateErrorDialog)
+ self.m_errorLabel.setObjectName(u"m_errorLabel")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.m_errorLabel.sizePolicy().hasHeightForWidth())
+ self.m_errorLabel.setSizePolicy(sizePolicy)
+ self.m_errorLabel.setAlignment(Qt.AlignCenter)
+ self.m_errorLabel.setWordWrap(True)
+
+ self.verticalLayout.addWidget(self.m_errorLabel)
+
+ self.m_infoLabel = QLabel(CertificateErrorDialog)
+ self.m_infoLabel.setObjectName(u"m_infoLabel")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.MinimumExpanding, QSizePolicy.Policy.MinimumExpanding)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.m_infoLabel.sizePolicy().hasHeightForWidth())
+ self.m_infoLabel.setSizePolicy(sizePolicy1)
+ self.m_infoLabel.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter)
+ self.m_infoLabel.setWordWrap(True)
+
+ self.verticalLayout.addWidget(self.m_infoLabel)
+
+ self.verticalSpacer = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.verticalLayout.addItem(self.verticalSpacer)
+
+ self.buttonBox = QDialogButtonBox(CertificateErrorDialog)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.No|QDialogButtonBox.Yes)
+
+ self.verticalLayout.addWidget(self.buttonBox)
+
+
+ self.retranslateUi(CertificateErrorDialog)
+ self.buttonBox.accepted.connect(CertificateErrorDialog.accept)
+ self.buttonBox.rejected.connect(CertificateErrorDialog.reject)
+
+ QMetaObject.connectSlotsByName(CertificateErrorDialog)
+ # setupUi
+
+ def retranslateUi(self, CertificateErrorDialog):
+ CertificateErrorDialog.setWindowTitle(QCoreApplication.translate("CertificateErrorDialog", u"Dialog", None))
+ self.m_iconLabel.setText(QCoreApplication.translate("CertificateErrorDialog", u"Icon", None))
+ self.m_errorLabel.setText(QCoreApplication.translate("CertificateErrorDialog", u"Error", None))
+ self.m_infoLabel.setText(QCoreApplication.translate("CertificateErrorDialog", u"If you wish so, you may continue with an unverified certificate. Accepting an unverified certificate mean you may not be connected with the host you tried to connect to.\n"
+"\n"
+"Do you wish to override the security check and continue ? ", None))
+ # retranslateUi
+
diff --git a/examples/webenginewidgets/simplebrowser/ui_downloadmanagerwidget.py b/examples/webenginewidgets/simplebrowser/ui_downloadmanagerwidget.py
new file mode 100644
index 000000000..f0f61aa75
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/ui_downloadmanagerwidget.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'downloadmanagerwidget.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QLabel, QLayout, QScrollArea,
+ QSizePolicy, QVBoxLayout, QWidget)
+
+class Ui_DownloadManagerWidget(object):
+ def setupUi(self, DownloadManagerWidget):
+ if not DownloadManagerWidget.objectName():
+ DownloadManagerWidget.setObjectName(u"DownloadManagerWidget")
+ DownloadManagerWidget.resize(400, 212)
+ DownloadManagerWidget.setStyleSheet(u"#DownloadManagerWidget {\n"
+" background: palette(button)\n"
+"}")
+ self.m_topLevelLayout = QVBoxLayout(DownloadManagerWidget)
+ self.m_topLevelLayout.setObjectName(u"m_topLevelLayout")
+ self.m_topLevelLayout.setSizeConstraint(QLayout.SetNoConstraint)
+ self.m_topLevelLayout.setContentsMargins(0, 0, 0, 0)
+ self.m_scrollArea = QScrollArea(DownloadManagerWidget)
+ self.m_scrollArea.setObjectName(u"m_scrollArea")
+ self.m_scrollArea.setStyleSheet(u"#m_scrollArea {\n"
+" margin: 2px;\n"
+" border: none;\n"
+"}")
+ self.m_scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
+ self.m_scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
+ self.m_scrollArea.setWidgetResizable(True)
+ self.m_scrollArea.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignTop)
+ self.m_items = QWidget()
+ self.m_items.setObjectName(u"m_items")
+ self.m_items.setStyleSheet(u"#m_items {background: palette(mid)}")
+ self.m_itemsLayout = QVBoxLayout(self.m_items)
+ self.m_itemsLayout.setSpacing(2)
+ self.m_itemsLayout.setObjectName(u"m_itemsLayout")
+ self.m_itemsLayout.setContentsMargins(3, 3, 3, 3)
+ self.m_zeroItemsLabel = QLabel(self.m_items)
+ self.m_zeroItemsLabel.setObjectName(u"m_zeroItemsLabel")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.m_zeroItemsLabel.sizePolicy().hasHeightForWidth())
+ self.m_zeroItemsLabel.setSizePolicy(sizePolicy)
+ self.m_zeroItemsLabel.setStyleSheet(u"color: palette(shadow)")
+ self.m_zeroItemsLabel.setAlignment(Qt.AlignCenter)
+
+ self.m_itemsLayout.addWidget(self.m_zeroItemsLabel)
+
+ self.m_scrollArea.setWidget(self.m_items)
+
+ self.m_topLevelLayout.addWidget(self.m_scrollArea)
+
+
+ self.retranslateUi(DownloadManagerWidget)
+
+ QMetaObject.connectSlotsByName(DownloadManagerWidget)
+ # setupUi
+
+ def retranslateUi(self, DownloadManagerWidget):
+ DownloadManagerWidget.setWindowTitle(QCoreApplication.translate("DownloadManagerWidget", u"Downloads", None))
+ self.m_zeroItemsLabel.setText(QCoreApplication.translate("DownloadManagerWidget", u"No downloads", None))
+ # retranslateUi
+
diff --git a/examples/webenginewidgets/simplebrowser/ui_downloadwidget.py b/examples/webenginewidgets/simplebrowser/ui_downloadwidget.py
new file mode 100644
index 000000000..58c32fdf8
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/ui_downloadwidget.py
@@ -0,0 +1,86 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'downloadwidget.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QLabel,
+ QLayout, QProgressBar, QPushButton, QSizePolicy,
+ QWidget)
+
+class Ui_DownloadWidget(object):
+ def setupUi(self, DownloadWidget):
+ if not DownloadWidget.objectName():
+ DownloadWidget.setObjectName(u"DownloadWidget")
+ DownloadWidget.setStyleSheet(u"#DownloadWidget {\n"
+" background: palette(button);\n"
+" border: 1px solid palette(dark);\n"
+" margin: 0px;\n"
+"}")
+ self.m_topLevelLayout = QGridLayout(DownloadWidget)
+ self.m_topLevelLayout.setObjectName(u"m_topLevelLayout")
+ self.m_topLevelLayout.setSizeConstraint(QLayout.SetMinAndMaxSize)
+ self.m_dstName = QLabel(DownloadWidget)
+ self.m_dstName.setObjectName(u"m_dstName")
+ self.m_dstName.setStyleSheet(u"font-weight: bold\n"
+"")
+
+ self.m_topLevelLayout.addWidget(self.m_dstName, 0, 0, 1, 1)
+
+ self.m_cancelButton = QPushButton(DownloadWidget)
+ self.m_cancelButton.setObjectName(u"m_cancelButton")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.m_cancelButton.sizePolicy().hasHeightForWidth())
+ self.m_cancelButton.setSizePolicy(sizePolicy)
+ self.m_cancelButton.setStyleSheet(u"QPushButton {\n"
+" margin: 1px;\n"
+" border: none;\n"
+"}\n"
+"QPushButton:pressed {\n"
+" margin: none;\n"
+" border: 1px solid palette(shadow);\n"
+" background: palette(midlight);\n"
+"}")
+ self.m_cancelButton.setFlat(False)
+
+ self.m_topLevelLayout.addWidget(self.m_cancelButton, 0, 1, 1, 1)
+
+ self.m_srcUrl = QLabel(DownloadWidget)
+ self.m_srcUrl.setObjectName(u"m_srcUrl")
+ self.m_srcUrl.setMaximumSize(QSize(350, 16777215))
+ self.m_srcUrl.setStyleSheet(u"")
+
+ self.m_topLevelLayout.addWidget(self.m_srcUrl, 1, 0, 1, 2)
+
+ self.m_progressBar = QProgressBar(DownloadWidget)
+ self.m_progressBar.setObjectName(u"m_progressBar")
+ self.m_progressBar.setStyleSheet(u"font-size: 12px")
+ self.m_progressBar.setValue(24)
+
+ self.m_topLevelLayout.addWidget(self.m_progressBar, 2, 0, 1, 2)
+
+
+ self.retranslateUi(DownloadWidget)
+
+ QMetaObject.connectSlotsByName(DownloadWidget)
+ # setupUi
+
+ def retranslateUi(self, DownloadWidget):
+ self.m_dstName.setText(QCoreApplication.translate("DownloadWidget", u"TextLabel", None))
+ self.m_srcUrl.setText(QCoreApplication.translate("DownloadWidget", u"TextLabel", None))
+ pass
+ # retranslateUi
+
diff --git a/examples/webenginewidgets/simplebrowser/ui_passworddialog.py b/examples/webenginewidgets/simplebrowser/ui_passworddialog.py
new file mode 100644
index 000000000..11e0c4a2e
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/ui_passworddialog.py
@@ -0,0 +1,96 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'passworddialog.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialog, QDialogButtonBox,
+ QGridLayout, QLabel, QLineEdit, QSizePolicy,
+ QWidget)
+
+class Ui_PasswordDialog(object):
+ def setupUi(self, PasswordDialog):
+ if not PasswordDialog.objectName():
+ PasswordDialog.setObjectName(u"PasswordDialog")
+ PasswordDialog.resize(399, 148)
+ self.gridLayout = QGridLayout(PasswordDialog)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.m_iconLabel = QLabel(PasswordDialog)
+ self.m_iconLabel.setObjectName(u"m_iconLabel")
+ self.m_iconLabel.setAlignment(Qt.AlignCenter)
+
+ self.gridLayout.addWidget(self.m_iconLabel, 0, 0, 1, 1)
+
+ self.m_infoLabel = QLabel(PasswordDialog)
+ self.m_infoLabel.setObjectName(u"m_infoLabel")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.m_infoLabel.sizePolicy().hasHeightForWidth())
+ self.m_infoLabel.setSizePolicy(sizePolicy)
+ self.m_infoLabel.setWordWrap(True)
+
+ self.gridLayout.addWidget(self.m_infoLabel, 0, 1, 1, 1)
+
+ self.userLabel = QLabel(PasswordDialog)
+ self.userLabel.setObjectName(u"userLabel")
+
+ self.gridLayout.addWidget(self.userLabel, 1, 0, 1, 1)
+
+ self.m_userNameLineEdit = QLineEdit(PasswordDialog)
+ self.m_userNameLineEdit.setObjectName(u"m_userNameLineEdit")
+
+ self.gridLayout.addWidget(self.m_userNameLineEdit, 1, 1, 1, 1)
+
+ self.passwordLabel = QLabel(PasswordDialog)
+ self.passwordLabel.setObjectName(u"passwordLabel")
+
+ self.gridLayout.addWidget(self.passwordLabel, 2, 0, 1, 1)
+
+ self.m_passwordLineEdit = QLineEdit(PasswordDialog)
+ self.m_passwordLineEdit.setObjectName(u"m_passwordLineEdit")
+ self.m_passwordLineEdit.setEchoMode(QLineEdit.Password)
+
+ self.gridLayout.addWidget(self.m_passwordLineEdit, 2, 1, 1, 1)
+
+ self.buttonBox = QDialogButtonBox(PasswordDialog)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
+
+ self.gridLayout.addWidget(self.buttonBox, 3, 0, 1, 2)
+
+ self.userLabel.raise_()
+ self.m_userNameLineEdit.raise_()
+ self.passwordLabel.raise_()
+ self.m_passwordLineEdit.raise_()
+ self.buttonBox.raise_()
+ self.m_iconLabel.raise_()
+ self.m_infoLabel.raise_()
+
+ self.retranslateUi(PasswordDialog)
+ self.buttonBox.accepted.connect(PasswordDialog.accept)
+ self.buttonBox.rejected.connect(PasswordDialog.reject)
+
+ QMetaObject.connectSlotsByName(PasswordDialog)
+ # setupUi
+
+ def retranslateUi(self, PasswordDialog):
+ PasswordDialog.setWindowTitle(QCoreApplication.translate("PasswordDialog", u"Authentication Required", None))
+ self.m_iconLabel.setText(QCoreApplication.translate("PasswordDialog", u"Icon", None))
+ self.m_infoLabel.setText(QCoreApplication.translate("PasswordDialog", u"Info", None))
+ self.userLabel.setText(QCoreApplication.translate("PasswordDialog", u"Username:", None))
+ self.passwordLabel.setText(QCoreApplication.translate("PasswordDialog", u"Password:", None))
+ # retranslateUi
+
diff --git a/examples/webenginewidgets/simplebrowser/webpage.py b/examples/webenginewidgets/simplebrowser/webpage.py
new file mode 100644
index 000000000..2f2800a17
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/webpage.py
@@ -0,0 +1,29 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from functools import partial
+
+from PySide6.QtWebEngineCore import QWebEnginePage, QWebEngineCertificateError
+from PySide6.QtCore import QTimer, Signal
+
+
+class WebPage(QWebEnginePage):
+
+ create_certificate_error_dialog = Signal(QWebEngineCertificateError)
+
+ def __init__(self, profile, parent):
+ super().__init__(profile, parent)
+
+ self.selectClientCertificate.connect(self.handle_select_client_certificate)
+ self.certificateError.connect(self.handle_certificate_error)
+
+ def _emit_create_certificate_error_dialog(self, error):
+ self.create_certificate_error_dialog.emit(error)
+
+ def handle_certificate_error(self, error):
+ error.defer()
+ QTimer.singleShot(0, partial(self._emit_create_certificate_error_dialog, error))
+
+ def handle_select_client_certificate(self, selection):
+ # Just select one.
+ selection.select(selection.certificates()[0])
diff --git a/examples/webenginewidgets/simplebrowser/webpopupwindow.py b/examples/webenginewidgets/simplebrowser/webpopupwindow.py
new file mode 100644
index 000000000..fac27a61a
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/webpopupwindow.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QLineEdit, QSizePolicy, QWidget, QVBoxLayout
+from PySide6.QtGui import QAction
+from PySide6.QtCore import QUrl, Qt, Slot
+
+from webpage import WebPage
+
+
+class WebPopupWindow(QWidget):
+
+ def __init__(self, view, profile, parent=None):
+ super().__init__(parent, Qt.Window)
+ self.m_urlLineEdit = QLineEdit(self)
+ self._url_line_edit = QLineEdit()
+ self._fav_action = QAction(self)
+ self._view = view
+
+ self.setAttribute(Qt.WA_DeleteOnClose)
+ self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
+
+ layout = QVBoxLayout(self)
+ layout.setContentsMargins(0, 0, 0, 0)
+ layout.addWidget(self._url_line_edit)
+ layout.addWidget(self._view)
+
+ self._view.setPage(WebPage(profile, self._view))
+ self._view.setFocus()
+
+ self._url_line_edit.setReadOnly(True)
+ self._url_line_edit.addAction(self._fav_action, QLineEdit.LeadingPosition)
+
+ self._view.titleChanged.connect(self.setWindowTitle)
+ self._view.urlChanged.connect(self._url_changed)
+ self._view.fav_icon_changed.connect(self._fav_action.setIcon)
+ p = self._view.page()
+ p.geometryChangeRequested.connect(self.handle_geometry_change_requested)
+ p.windowCloseRequested.connect(self.close)
+
+ @Slot(QUrl)
+ def _url_changed(self, url):
+ self._url_line_edit.setText(url.toDisplayString())
+
+ def view(self):
+ return self._view
+
+ def handle_geometry_change_requested(self, newGeometry):
+ window = self.windowHandle()
+ if window:
+ self.setGeometry(newGeometry.marginsRemoved(window.frameMargins()))
+ self.show()
+ self._view.setFocus()
diff --git a/examples/webenginewidgets/simplebrowser/webview.py b/examples/webenginewidgets/simplebrowser/webview.py
new file mode 100644
index 000000000..e1282c1dd
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/webview.py
@@ -0,0 +1,294 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from functools import partial
+
+from PySide6.QtWebEngineCore import (QWebEngineFileSystemAccessRequest,
+ QWebEnginePage)
+from PySide6.QtWebEngineWidgets import QWebEngineView
+
+from PySide6.QtWidgets import QDialog, QMessageBox, QStyle
+from PySide6.QtGui import QIcon
+from PySide6.QtNetwork import QAuthenticator
+from PySide6.QtCore import QTimer, Signal, Slot
+
+from webpage import WebPage
+from webpopupwindow import WebPopupWindow
+from ui_passworddialog import Ui_PasswordDialog
+from ui_certificateerrordialog import Ui_CertificateErrorDialog
+
+
+def question_for_feature(feature):
+ if feature == QWebEnginePage.Geolocation:
+ return "Allow %1 to access your location information?"
+ if feature == QWebEnginePage.MediaAudioCapture:
+ return "Allow %1 to access your microphone?"
+ if feature == QWebEnginePage.MediaVideoCapture:
+ return "Allow %1 to access your webcam?"
+ if feature == QWebEnginePage.MediaAudioVideoCapture:
+ return "Allow %1 to access your microphone and webcam?"
+ if feature == QWebEnginePage.MouseLock:
+ return "Allow %1 to lock your mouse cursor?"
+ if feature == QWebEnginePage.DesktopVideoCapture:
+ return "Allow %1 to capture video of your desktop?"
+ if feature == QWebEnginePage.DesktopAudioVideoCapture:
+ return "Allow %1 to capture audio and video of your desktop?"
+ if feature == QWebEnginePage.Notifications:
+ return "Allow %1 to show notification on your desktop?"
+ return ""
+
+
+class WebView(QWebEngineView):
+
+ web_action_enabled_changed = Signal(QWebEnginePage.WebAction, bool)
+ fav_icon_changed = Signal(QIcon)
+ dev_tools_requested = Signal(QWebEnginePage)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._load_progress = 100
+ self.loadStarted.connect(self._load_started)
+ self.loadProgress.connect(self._slot_load_progress)
+ self.loadFinished.connect(self._load_finished)
+ self.iconChanged.connect(self._emit_faviconchanged)
+ self.renderProcessTerminated.connect(self._render_process_terminated)
+
+ self._error_icon = QIcon(":dialog-error.png")
+ self._loading_icon = QIcon.fromTheme(QIcon.ThemeIcon.ViewRefresh,
+ QIcon(":view-refresh.png"))
+ self._default_icon = QIcon(":text-html.png")
+
+ @Slot()
+ def _load_started(self):
+ self._load_progress = 0
+ self.fav_icon_changed.emit(self.fav_icon())
+
+ @Slot(int)
+ def _slot_load_progress(self, progress):
+ self._load_progress = progress
+
+ @Slot()
+ def _emit_faviconchanged(self):
+ self.fav_icon_changed.emit(self.fav_icon())
+
+ @Slot(bool)
+ def _load_finished(self, success):
+ self._load_progress = 100 if success else -1
+ self._emit_faviconchanged()
+
+ @Slot(QWebEnginePage.RenderProcessTerminationStatus, int)
+ def _render_process_terminated(self, termStatus, statusCode):
+ status = ""
+ if termStatus == QWebEnginePage.NormalTerminationStatus:
+ status = "Render process normal exit"
+ elif termStatus == QWebEnginePage.AbnormalTerminationStatus:
+ status = "Render process abnormal exit"
+ elif termStatus == QWebEnginePage.CrashedTerminationStatus:
+ status = "Render process crashed"
+ elif termStatus == QWebEnginePage.KilledTerminationStatus:
+ status = "Render process killed"
+
+ m = f"Render process exited with code: {statusCode:#x}\nDo you want to reload the page?"
+ btn = QMessageBox.question(self.window(), status, m)
+ if btn == QMessageBox.Yes:
+ QTimer.singleShot(0, self.reload)
+
+ def set_page(self, page):
+ old_page = self.page()
+ if old_page and isinstance(old_page, WebPage):
+ old_page.createCertificateErrorDialog.disconnect(self.handle_certificate_error)
+ old_page.authenticationRequired.disconnect(self.handle_authentication_required)
+ old_page.featurePermissionRequested.disconnect(self.handle_feature_permission_requested)
+ old_page.proxyAuthenticationRequired.disconnect(
+ self.handle_proxy_authentication_required)
+ old_page.registerProtocolHandlerRequested.disconnect(
+ self.handle_register_protocol_handler_requested)
+ old_page.fileSystemAccessRequested.disconnect(self.handle_file_system_access_requested)
+
+ self.create_web_action_trigger(page, QWebEnginePage.Forward)
+ self.create_web_action_trigger(page, QWebEnginePage.Back)
+ self.create_web_action_trigger(page, QWebEnginePage.Reload)
+ self.create_web_action_trigger(page, QWebEnginePage.Stop)
+ super().setPage(page)
+ page.create_certificate_error_dialog.connect(self.handle_certificate_error)
+ page.authenticationRequired.connect(self.handle_authentication_required)
+ page.featurePermissionRequested.connect(self.handle_feature_permission_requested)
+ page.proxyAuthenticationRequired.connect(self.handle_proxy_authentication_required)
+ page.registerProtocolHandlerRequested.connect(
+ self.handle_register_protocol_handler_requested)
+ page.fileSystemAccessRequested.connect(self.handle_file_system_access_requested)
+
+ def load_progress(self):
+ return self._load_progress
+
+ def _emit_webactionenabledchanged(self, action, webAction):
+ self.web_action_enabled_changed.emit(webAction, action.isEnabled())
+
+ def create_web_action_trigger(self, page, webAction):
+ action = page.action(webAction)
+ action.changed.connect(partial(self._emit_webactionenabledchanged, action, webAction))
+
+ def is_web_action_enabled(self, webAction):
+ return self.page().action(webAction).isEnabled()
+
+ def fav_icon(self):
+ fav_icon = self.icon()
+ if not fav_icon.isNull():
+ return fav_icon
+ if self._load_progress < 0:
+ return self._error_icon
+ if self._load_progress < 100:
+ return self._loading_icon
+ return self._default_icon
+
+ def createWindow(self, type):
+ main_window = self.window()
+ if not main_window:
+ return None
+
+ if type == QWebEnginePage.WebBrowserTab:
+ return main_window.tab_widget().create_tab()
+
+ if type == QWebEnginePage.WebBrowserBackgroundTab:
+ return main_window.tab_widget().create_background_tab()
+
+ if type == QWebEnginePage.WebBrowserWindow:
+ return main_window.browser().createWindow().current_tab()
+
+ if type == QWebEnginePage.WebDialog:
+ view = WebView()
+ WebPopupWindow(view, self.page().profile(), self.window())
+ view.dev_tools_requested.connect(self.dev_tools_requested)
+ return view
+
+ return None
+
+ @Slot()
+ def _emit_devtools_requested(self):
+ self.dev_tools_requested.emit(self.page())
+
+ def contextMenuEvent(self, event):
+ menu = self.createStandardContextMenu()
+ actions = menu.actions()
+ inspect_action = self.page().action(QWebEnginePage.InspectElement)
+ if inspect_action in actions:
+ inspect_action.setText("Inspect element")
+ else:
+ vs = self.page().action(QWebEnginePage.ViewSource)
+ if vs not in actions:
+ menu.addSeparator()
+
+ action = menu.addAction("Open inspector in new window")
+ action.triggered.connect(self._emit_devtools_requested)
+
+ menu.popup(event.globalPos())
+
+ def handle_certificate_error(self, error):
+ w = self.window()
+ dialog = QDialog(w)
+ dialog.setModal(True)
+
+ certificate_dialog = Ui_CertificateErrorDialog()
+ certificate_dialog.setupUi(dialog)
+ certificate_dialog.m_iconLabel.setText("")
+ icon = QIcon(w.style().standardIcon(QStyle.SP_MessageBoxWarning, 0, w))
+ certificate_dialog.m_iconLabel.setPixmap(icon.pixmap(32, 32))
+ certificate_dialog.m_errorLabel.setText(error.description())
+ dialog.setWindowTitle("Certificate Error")
+
+ if dialog.exec() == QDialog.Accepted:
+ error.acceptCertificate()
+ else:
+ error.rejectCertificate()
+
+ def handle_authentication_required(self, requestUrl, auth):
+ w = self.window()
+ dialog = QDialog(w)
+ dialog.setModal(True)
+
+ password_dialog = Ui_PasswordDialog()
+ password_dialog.setupUi(dialog)
+
+ password_dialog.m_iconLabel.setText("")
+ icon = QIcon(w.style().standardIcon(QStyle.SP_MessageBoxQuestion, 0, w))
+ password_dialog.m_iconLabel.setPixmap(icon.pixmap(32, 32))
+
+ url_str = requestUrl.toString().toHtmlEscaped()
+ realm = auth.realm()
+ m = f'Enter username and password for "{realm}" at {url_str}'
+ password_dialog.m_infoLabel.setText(m)
+ password_dialog.m_infoLabel.setWordWrap(True)
+
+ if dialog.exec() == QDialog.Accepted:
+ auth.setUser(password_dialog.m_userNameLineEdit.text())
+ auth.setPassword(password_dialog.m_passwordLineEdit.text())
+ else:
+ # Set authenticator null if dialog is cancelled
+ auth = QAuthenticator()
+
+ def handle_feature_permission_requested(self, securityOrigin, feature):
+ title = "Permission Request"
+ host = securityOrigin.host()
+ question = question_for_feature(feature).replace("%1", host)
+ w = self.window()
+ page = self.page()
+ if question and QMessageBox.question(w, title, question) == QMessageBox.Yes:
+ page.setFeaturePermission(securityOrigin, feature,
+ QWebEnginePage.PermissionGrantedByUser)
+ else:
+ page.setFeaturePermission(securityOrigin, feature,
+ QWebEnginePage.PermissionDeniedByUser)
+
+ def handle_proxy_authentication_required(self, url, auth, proxyHost):
+ w = self.window()
+ dialog = QDialog(w)
+ dialog.setModal(True)
+
+ password_dialog = Ui_PasswordDialog()
+ password_dialog.setupUi(dialog)
+
+ password_dialog.m_iconLabel.setText("")
+
+ icon = QIcon(w.style().standardIcon(QStyle.SP_MessageBoxQuestion, 0, w))
+ password_dialog.m_iconLabel.setPixmap(icon.pixmap(32, 32))
+
+ proxy = proxyHost.toHtmlEscaped()
+ password_dialog.m_infoLabel.setText(f'Connect to proxy "{proxy}" using:')
+ password_dialog.m_infoLabel.setWordWrap(True)
+
+ if dialog.exec() == QDialog.Accepted:
+ auth.setUser(password_dialog.m_userNameLineEdit.text())
+ auth.setPassword(password_dialog.m_passwordLineEdit.text())
+ else:
+ # Set authenticator null if dialog is cancelled
+ auth = QAuthenticator()
+
+ def handle_register_protocol_handler_requested(self, request):
+ host = request.origin().host()
+ m = f"Allow {host} to open all {request.scheme()} links?"
+ answer = QMessageBox.question(self.window(), "Permission Request", m)
+ if answer == QMessageBox.Yes:
+ request.accept()
+ else:
+ request.reject()
+
+ def handle_file_system_access_requested(self, request):
+ access_type = ""
+ type = request.accessFlags()
+ if type == QWebEngineFileSystemAccessRequest.Read:
+ access_type = "read"
+ elif type == QWebEngineFileSystemAccessRequest.Write:
+ access_type = "write"
+ elif type == (QWebEngineFileSystemAccessRequest.Read
+ | QWebEngineFileSystemAccessRequest.Write):
+ access_type = "read and write"
+ host = request.origin().host()
+ path = request.filePath().toString()
+ t = "File system access request"
+ m = f"Give {host} {access_type} access to {path}?"
+ answer = QMessageBox.question(self.window(), t, m)
+ if answer == QMessageBox.Yes:
+ request.accept()
+ else:
+ request.reject()
diff --git a/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py b/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py
deleted file mode 100644
index 0f9c8878a..000000000
--- a/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py
+++ /dev/null
@@ -1,239 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import json
-import os
-import warnings
-
-from PySide6 import QtCore
-from PySide6.QtCore import QDir, QFileInfo, QStandardPaths, Qt, QUrl
-from PySide6.QtGui import QIcon, QStandardItem, QStandardItemModel
-from PySide6.QtWidgets import QMenu, QMessageBox, QTreeView
-
-_url_role = Qt.UserRole + 1
-
-# Default bookmarks as an array of arrays which is the form
-# used to read from/write to a .json bookmarks file
-_default_bookmarks = [
- ['Tool Bar'],
- ['http://qt.io', 'Qt', ':/qt-project.org/qmessagebox/images/qtlogo-64.png'],
- ['https://download.qt.io/snapshots/ci/pyside/', 'Downloads'],
- ['https://doc.qt.io/qtforpython/', 'Documentation'],
- ['https://bugreports.qt.io/projects/PYSIDE/', 'Bug Reports'],
- ['https://www.python.org/', 'Python', None],
- ['https://wiki.qt.io/PySide6', 'Qt for Python', None],
- ['Other Bookmarks']
-]
-
-
-def _config_dir():
- location = QStandardPaths.writableLocation(QStandardPaths.ConfigLocation)
- return f'{location}/QtForPythonBrowser'
-
-
-_bookmark_file = 'bookmarks.json'
-
-
-def _create_folder_item(title):
- result = QStandardItem(title)
- result.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
- return result
-
-
-def _create_item(url, title, icon):
- result = QStandardItem(title)
- result.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
- result.setData(url, _url_role)
- if icon is not None:
- result.setIcon(icon)
- return result
-
-
-# Create the model from an array of arrays
-def _create_model(parent, serialized_bookmarks):
- result = QStandardItemModel(0, 1, parent)
- last_folder_item = None
- for entry in serialized_bookmarks:
- if len(entry) == 1:
- last_folder_item = _create_folder_item(entry[0])
- result.appendRow(last_folder_item)
- else:
- url = QUrl.fromUserInput(entry[0])
- title = entry[1]
- icon = QIcon(entry[2]) if len(entry) > 2 and entry[2] else None
- last_folder_item.appendRow(_create_item(url, title, icon))
- return result
-
-
-# Serialize model into an array of arrays, writing out the icons
-# into .png files under directory in the process
-def _serialize_model(model, directory):
- result = []
- folder_count = model.rowCount()
- for f in range(0, folder_count):
- folder_item = model.item(f)
- result.append([folder_item.text()])
- item_count = folder_item.rowCount()
- for i in range(0, item_count):
- item = folder_item.child(i)
- entry = [item.data(_url_role).toString(), item.text()]
- icon = item.icon()
- if not icon.isNull():
- icon_sizes = icon.availableSizes()
- largest_size = icon_sizes[len(icon_sizes) - 1]
- w = largest_size.width()
- icon_file_name = f'{directory}/icon{f:02}_{i:02}_{w}.png'
- icon.pixmap(largest_size).save(icon_file_name, 'PNG')
- entry.append(icon_file_name)
- result.append(entry)
- return result
-
-
-# Bookmarks as a tree view to be used in a dock widget with
-# functionality to persist and populate tool bars and menus.
-class BookmarkWidget(QTreeView):
- """Provides a tree view to manage the bookmarks."""
-
- open_bookmark = QtCore.Signal(QUrl)
- open_bookmark_in_new_tab = QtCore.Signal(QUrl)
- changed = QtCore.Signal()
-
- def __init__(self):
- super().__init__()
- self.setRootIsDecorated(False)
- self.setUniformRowHeights(True)
- self.setHeaderHidden(True)
- self._model = _create_model(self, self._read_bookmarks())
- self.setModel(self._model)
- self.expandAll()
- self.activated.connect(self._activated)
- self._model.rowsInserted.connect(self._changed)
- self._model.rowsRemoved.connect(self._changed)
- self._model.dataChanged.connect(self._changed)
- self._modified = False
-
- def _changed(self):
- self._modified = True
- self.changed.emit()
-
- def _activated(self, index):
- item = self._model.itemFromIndex(index)
- self.open_bookmark.emit(item.data(_url_role))
-
- def _action_activated(self, index):
- action = self.sender()
- self.open_bookmark.emit(action.data())
-
- def _tool_bar_item(self):
- return self._model.item(0, 0)
-
- def _other_item(self):
- return self._model.item(1, 0)
-
- def add_bookmark(self, url, title, icon):
- self._other_item().appendRow(_create_item(url, title, icon))
-
- def add_tool_bar_bookmark(self, url, title, icon):
- self._tool_bar_item().appendRow(_create_item(url, title, icon))
-
- # Synchronize the bookmarks under parent_item to a target_object
- # like QMenu/QToolBar, which has a list of actions. Update
- # the existing actions, append new ones if needed or hide
- # superfluous ones
- def _populate_actions(self, parent_item, target_object, first_action):
- existing_actions = target_object.actions()
- existing_action_count = len(existing_actions)
- a = first_action
- row_count = parent_item.rowCount()
- for r in range(0, row_count):
- item = parent_item.child(r)
- title = item.text()
- icon = item.icon()
- url = item.data(_url_role)
- if a < existing_action_count:
- action = existing_actions[a]
- if (title != action.toolTip()):
- action.setText(BookmarkWidget.short_title(title))
- action.setIcon(icon)
- action.setToolTip(title)
- action.setData(url)
- action.setVisible(True)
- else:
- short_title = BookmarkWidget.short_title(title)
- action = target_object.addAction(icon, short_title)
- action.setToolTip(title)
- action.setData(url)
- action.triggered.connect(self._action_activated)
- a = a + 1
- while a < existing_action_count:
- existing_actions[a].setVisible(False)
- a = a + 1
-
- def populate_tool_bar(self, tool_bar):
- self._populate_actions(self._tool_bar_item(), tool_bar, 0)
-
- def populate_other(self, menu, first_action):
- self._populate_actions(self._other_item(), menu, first_action)
-
- def _current_item(self):
- index = self.currentIndex()
- if index.isValid():
- item = self._model.itemFromIndex(index)
- if item.parent(): # exclude top level items
- return item
- return None
-
- def context_menu_event(self, event):
- context_menu = QMenu()
- open_in_new_tab_action = context_menu.addAction("Open in New Tab")
- remove_action = context_menu.addAction("Remove...")
- current_item = self._current_item()
- open_in_new_tab_action.setEnabled(current_item is not None)
- remove_action.setEnabled(current_item is not None)
- chosen_action = context_menu.exec(event.globalPos())
- if chosen_action == open_in_new_tab_action:
- self.open_bookmarkInNewTab.emit(current_item.data(_url_role))
- elif chosen_action == remove_action:
- self._remove_item(current_item)
-
- def _remove_item(self, item):
- message = f"Would you like to remove \"{item.text()}\"?"
- button = QMessageBox.question(self, "Remove", message,
- QMessageBox.Yes | QMessageBox.No)
- if button == QMessageBox.Yes:
- item.parent().removeRow(item.row())
-
- def write_bookmarks(self):
- if not self._modified:
- return
- dir_path = _config_dir()
- native_dir_path = QDir.toNativeSeparators(dir_path)
- directory = QFileInfo(dir_path)
- if not directory.isDir():
- print(f'Creating {native_dir_path}...')
- if not QDir(directory.absolutePath()).mkpath(directory.fileName()):
- warnings.warn(f'Cannot create {native_dir_path}.',
- RuntimeWarning)
- return
- serialized_model = _serialize_model(self._model, dir_path)
- bookmark_file_name = os.path.join(native_dir_path, _bookmark_file)
- print(f'Writing {bookmark_file_name}...')
- with open(bookmark_file_name, 'w') as bookmark_file:
- json.dump(serialized_model, bookmark_file, indent=4)
-
- def _read_bookmarks(self):
- bookmark_file_name = os.path.join(QDir.toNativeSeparators(_config_dir()),
- _bookmark_file)
- if os.path.exists(bookmark_file_name):
- print(f'Reading {bookmark_file_name}...')
- return json.load(open(bookmark_file_name))
- return _default_bookmarks
-
- # Return a short title for a bookmark action,
- # "Qt | Cross Platform.." -> "Qt"
- @staticmethod
- def short_title(t):
- i = t.find(' | ')
- if i == -1:
- i = t.find(' - ')
- return t[0:i] if i != -1 else t
diff --git a/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py b/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py
deleted file mode 100644
index 79dc0c78b..000000000
--- a/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-from functools import partial
-
-from bookmarkwidget import BookmarkWidget
-from webengineview import WebEngineView
-from historywindow import HistoryWindow
-from PySide6.QtCore import Qt, QUrl, Signal, Slot
-from PySide6.QtGui import QIcon
-from PySide6.QtWidgets import QMenu, QTabBar, QTabWidget
-from PySide6.QtWebEngineCore import QWebEngineDownloadRequest, QWebEnginePage
-
-
-class BrowserTabWidget(QTabWidget):
- """Enables having several tabs with QWebEngineView."""
-
- url_changed = Signal(QUrl)
- enabled_changed = Signal(QWebEnginePage.WebAction, bool)
- download_requested = Signal(QWebEngineDownloadRequest)
-
- def __init__(self, window_factory_function):
- super().__init__()
- self.setTabsClosable(True)
- self._window_factory_function = window_factory_function
- self._webengineviews = []
- self._history_windows = {} # map WebengineView to HistoryWindow
- self.currentChanged.connect(self._current_changed)
- self.tabCloseRequested.connect(self.handle_tab_close_request)
- self._actions_enabled = {}
- for web_action in WebEngineView.web_actions():
- self._actions_enabled[web_action] = False
-
- tab_bar = self.tabBar()
- tab_bar.setSelectionBehaviorOnRemove(QTabBar.SelectPreviousTab)
- tab_bar.setContextMenuPolicy(Qt.CustomContextMenu)
- tab_bar.customContextMenuRequested.connect(self._handle_tab_context_menu)
-
- def add_browser_tab(self):
- factory_func = partial(BrowserTabWidget.add_browser_tab, self)
- web_engine_view = WebEngineView(factory_func,
- self._window_factory_function)
- index = self.count()
- self._webengineviews.append(web_engine_view)
- title = f'Tab {index + 1}'
- self.addTab(web_engine_view, title)
- page = web_engine_view.page()
- page.titleChanged.connect(self._title_changed)
- page.iconChanged.connect(self._icon_changed)
- page.profile().downloadRequested.connect(self._download_requested)
- web_engine_view.urlChanged.connect(self._url_changed)
- web_engine_view.enabled_changed.connect(self._enabled_changed)
- self.setCurrentIndex(index)
- return web_engine_view
-
- def load(self, url):
- index = self.currentIndex()
- if index >= 0 and url.isValid():
- self._webengineviews[index].setUrl(url)
-
- def find(self, needle, flags):
- index = self.currentIndex()
- if index >= 0:
- self._webengineviews[index].page().findText(needle, flags)
-
- def url(self):
- index = self.currentIndex()
- return self._webengineviews[index].url() if index >= 0 else QUrl()
-
- @Slot(QUrl)
- def _url_changed(self, url):
- index = self.currentIndex()
- if index >= 0 and self._webengineviews[index] == self.sender():
- self.url_changed.emit(url)
-
- @Slot(str)
- def _title_changed(self, title):
- index = self._index_of_page(self.sender())
- if (index >= 0):
- self.setTabText(index, BookmarkWidget.short_title(title))
-
- @Slot(QIcon)
- def _icon_changed(self, icon):
- index = self._index_of_page(self.sender())
- if (index >= 0):
- self.setTabIcon(index, icon)
-
- @Slot(object,bool)
- def _enabled_changed(self, web_action, enabled):
- index = self.currentIndex()
- if index >= 0 and self._webengineviews[index] == self.sender():
- self._check_emit_enabled_changed(web_action, enabled)
-
- def _check_emit_enabled_changed(self, web_action, enabled):
- if enabled != self._actions_enabled[web_action]:
- self._actions_enabled[web_action] = enabled
- self.enabled_changed.emit(web_action, enabled)
-
- def _current_changed(self, index):
- self._update_actions(index)
- self.url_changed.emit(self.url())
-
- def _update_actions(self, index):
- if index >= 0 and index < len(self._webengineviews):
- view = self._webengineviews[index]
- for web_action in WebEngineView.web_actions():
- enabled = view.is_web_action_enabled(web_action)
- self._check_emit_enabled_changed(web_action, enabled)
-
- def back(self):
- self._trigger_action(QWebEnginePage.Back)
-
- def forward(self):
- self._trigger_action(QWebEnginePage.Forward)
-
- def reload(self):
- self._trigger_action(QWebEnginePage.Reload)
-
- def undo(self):
- self._trigger_action(QWebEnginePage.Undo)
-
- def redo(self):
- self._trigger_action(QWebEnginePage.Redo)
-
- def cut(self):
- self._trigger_action(QWebEnginePage.Cut)
-
- def copy(self):
- self._trigger_action(QWebEnginePage.Copy)
-
- def paste(self):
- self._trigger_action(QWebEnginePage.Paste)
-
- def select_all(self):
- self._trigger_action(QWebEnginePage.SelectAll)
-
- def show_history(self):
- index = self.currentIndex()
- if index >= 0:
- webengineview = self._webengineviews[index]
- history_window = self._history_windows.get(webengineview)
- if not history_window:
- history = webengineview.page().history()
- history_window = HistoryWindow(history, self)
- history_window.open_url.connect(self.load)
- history_window.setWindowFlags(history_window.windowFlags()
- | Qt.Window)
- history_window.setWindowTitle('History')
- self._history_windows[webengineview] = history_window
- else:
- history_window.refresh()
- history_window.show()
- history_window.raise_()
-
- def zoom_factor(self):
- return self._webengineviews[0].zoomFactor() if self._webengineviews else 1.0
-
- def set_zoom_factor(self, z):
- for w in self._webengineviews:
- w.setZoomFactor(z)
-
- def _handle_tab_context_menu(self, point):
- index = self.tabBar().tabAt(point)
- if index < 0:
- return
- tab_count = len(self._webengineviews)
- context_menu = QMenu()
- duplicate_tab_action = context_menu.addAction("Duplicate Tab")
- close_other_tabs_action = context_menu.addAction("Close Other Tabs")
- close_other_tabs_action.setEnabled(tab_count > 1)
- close_tabs_to_the_right_action = context_menu.addAction("Close Tabs to the Right")
- close_tabs_to_the_right_action.setEnabled(index < tab_count - 1)
- close_tab_action = context_menu.addAction("&Close Tab")
- chosen_action = context_menu.exec(self.tabBar().mapToGlobal(point))
- if chosen_action == duplicate_tab_action:
- current_url = self.url()
- self.add_browser_tab().load(current_url)
- elif chosen_action == close_other_tabs_action:
- for t in range(tab_count - 1, -1, -1):
- if t != index:
- self.handle_tab_close_request(t)
- elif chosen_action == close_tabs_to_the_right_action:
- for t in range(tab_count - 1, index, -1):
- self.handle_tab_close_request(t)
- elif chosen_action == close_tab_action:
- self.handle_tab_close_request(index)
-
- def handle_tab_close_request(self, index):
- if (index >= 0 and self.count() > 1):
- webengineview = self._webengineviews[index]
- if self._history_windows.get(webengineview):
- del self._history_windows[webengineview]
- self._webengineviews.remove(webengineview)
- self.removeTab(index)
-
- def close_current_tab(self):
- self.handle_tab_close_request(self.currentIndex())
-
- def _trigger_action(self, action):
- index = self.currentIndex()
- if index >= 0:
- self._webengineviews[index].page().triggerAction(action)
-
- def _index_of_page(self, web_page):
- for p in range(0, len(self._webengineviews)):
- if (self._webengineviews[p].page() == web_page):
- return p
- return -1
-
- @Slot(QWebEngineDownloadRequest)
- def _download_requested(self, item):
- self.download_requested.emit(item)
diff --git a/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.png b/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.png
deleted file mode 100644
index 27c3daa09..000000000
--- a/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.png
+++ /dev/null
Binary files differ
diff --git a/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.rst b/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.rst
deleted file mode 100644
index d8f5deb8d..000000000
--- a/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.rst
+++ /dev/null
@@ -1,58 +0,0 @@
-**********************
-Web Browser Example
-**********************
-
-The example demonstrates the power and simplicity offered by |project| to developers.
-It uses several |pymodname| submodules to offer a fluid and modern-looking UI that
-is apt for a web browser. The application offers the following features:
-
- * Tab-based browsing experience using QTabWidget.
- * Download manager using a QProgressBar and QWebEngineDownloadItem.
- * Bookmark manager using QTreeView.
-
-.. image:: tabbedbrowser.png
-
-The application's code is organized in several parts for ease of maintenance. For example,
-:code:`DownloadWidget` provides a widget to track progress of a download item. In the following
-sections, these different parts are discussed briefly to help you understand the Python code behind
-them a little better.
-
-BookmarkWidget or :code:`bookmarkwidget.py`
-===========================================
-
-This widget docks to the left of the main window by default. It inherits QTreeView and
-loads a default set of bookmarks using a QStandardItemModel. The model is populated at startup
-from a JSON file, which is updated when you add or remove bookmarks from the tree view.
-
-.. automodule:: bookmarkwidget
- :members:
-
-DownloadWidget or :code:`downloadwidget.py`
-=============================================
-
-The widget tracks progress of the download item. It inherits QProgressBar to display
-progress of the QWebEngineDownloadItem instance, and offers a context-menu with actions such as Launch,
-Show in folder, Cancel, and Remove.
-
-.. automodule:: downloadwidget
- :members:
-
-BrowserTabWidget or :code:`browsertabwidget.py`
-===============================================
-
-The widget includes a QWebEngineView to enable viewing web content. It docks to the right
-of BookmarkWidget in the main window.
-
-.. automodule:: browsertabwidget
- :members:
-
-MainWindow or :code:`main.py`
-=============================
-
-This is the parent window that collates all the other widgets together to offer the complete package.
-
-.. automodule:: main
- :members:
-
-
-Try running the example to explore it further.
diff --git a/examples/webenginewidgets/tabbedbrowser/downloadwidget.py b/examples/webenginewidgets/tabbedbrowser/downloadwidget.py
deleted file mode 100644
index 1a48b75a5..000000000
--- a/examples/webenginewidgets/tabbedbrowser/downloadwidget.py
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import sys
-from PySide6 import QtCore
-from PySide6.QtCore import QDir, QFileInfo, QStandardPaths, Qt, QUrl
-from PySide6.QtGui import QDesktopServices
-from PySide6.QtWidgets import QMenu, QProgressBar, QStyleFactory
-from PySide6.QtWebEngineCore import QWebEngineDownloadRequest
-
-
-# A QProgressBar with context menu for displaying downloads in a QStatusBar.
-class DownloadWidget(QProgressBar):
- """Lets you track progress of a QWebEngineDownloadRequest."""
- finished = QtCore.Signal()
- remove_requested = QtCore.Signal()
-
- def __init__(self, download_item):
- super().__init__()
- self._download_item = download_item
- download_item.finished.connect(self._finished)
- download_item.downloadProgress.connect(self._download_progress)
- download_item.stateChanged.connect(self._update_tool_tip())
- path = download_item.path()
- self.setMaximumWidth(300)
- # Shorten 'PySide6-5.11.0a1-5.11.0-cp36-cp36m-linux_x86_64.whl'...
- description = QFileInfo(path).fileName()
- description_length = len(description)
- if description_length > 30:
- description_ini = description[0:10]
- description_end = description[description_length - 10:]
- description = f'{description_ini}...{description_end}'
- self.setFormat(f'{description} %p%')
- self.setOrientation(Qt.Horizontal)
- self.setMinimum(0)
- self.setValue(0)
- self.setMaximum(100)
- self._update_tool_tip()
- # Force progress bar text to be shown on macoS by using 'fusion' style
- if sys.platform == 'darwin':
- self.setStyle(QStyleFactory.create('fusion'))
-
- @staticmethod
- def open_file(file):
- QDesktopServices.openUrl(QUrl.fromLocalFile(file))
-
- @staticmethod
- def open_download_directory():
- path = QStandardPaths.writableLocation(QStandardPaths.DownloadLocation)
- DownloadWidget.open_file(path)
-
- def state(self):
- return self._download_item.state()
-
- def _update_tool_tip(self):
- path = self._download_item.path()
- url_str = self._download_item.url().toString()
- native_sep = QDir.toNativeSeparators(path)
- tool_tip = f"{url_str}\n{native_sep}"
- total_bytes = self._download_item.totalBytes()
- if total_bytes > 0:
- tool_tip += f"\n{total_bytes / 1024}K"
- state = self.state()
- if state == QWebEngineDownloadRequest.DownloadRequested:
- tool_tip += "\n(requested)"
- elif state == QWebEngineDownloadRequest.DownloadInProgress:
- tool_tip += "\n(downloading)"
- elif state == QWebEngineDownloadRequest.DownloadCompleted:
- tool_tip += "\n(completed)"
- elif state == QWebEngineDownloadRequest.DownloadCancelled:
- tool_tip += "\n(cancelled)"
- else:
- tool_tip += "\n(interrupted)"
- self.setToolTip(tool_tip)
-
- def _download_progress(self, bytes_received, bytes_total):
- self.setValue(int(100 * bytes_received / bytes_total))
-
- def _finished(self):
- self._update_tool_tip()
- self.finished.emit()
-
- def _launch(self):
- DownloadWidget.open_file(self._download_item.path())
-
- def mouseDoubleClickEvent(self, event):
- if self.state() == QWebEngineDownloadRequest.DownloadCompleted:
- self._launch()
-
- def contextMenuEvent(self, event):
- state = self.state()
- context_menu = QMenu()
- launch_action = context_menu.addAction("Launch")
- launch_action.setEnabled(state == QWebEngineDownloadRequest.DownloadCompleted)
- show_in_folder_action = context_menu.addAction("Show in Folder")
- show_in_folder_action.setEnabled(state == QWebEngineDownloadRequest.DownloadCompleted)
- cancel_action = context_menu.addAction("Cancel")
- cancel_action.setEnabled(state == QWebEngineDownloadRequest.DownloadInProgress)
- remove_action = context_menu.addAction("Remove")
- remove_action.setEnabled(state != QWebEngineDownloadRequest.DownloadInProgress)
-
- chosen_action = context_menu.exec(event.globalPos())
- if chosen_action == launch_action:
- self._launch()
- elif chosen_action == show_in_folder_action:
- path = QFileInfo(self._download_item.path()).absolutePath()
- DownloadWidget.open_file(path)
- elif chosen_action == cancel_action:
- self._download_item.cancel()
- elif chosen_action == remove_action:
- self.remove_requested.emit()
diff --git a/examples/webenginewidgets/tabbedbrowser/findtoolbar.py b/examples/webenginewidgets/tabbedbrowser/findtoolbar.py
deleted file mode 100644
index 32d2d5afb..000000000
--- a/examples/webenginewidgets/tabbedbrowser/findtoolbar.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-from PySide6 import QtCore
-from PySide6.QtCore import Qt
-from PySide6.QtGui import QIcon, QKeySequence
-from PySide6.QtWidgets import QCheckBox, QLineEdit, QToolBar, QToolButton
-from PySide6.QtWebEngineCore import QWebEnginePage
-
-
-# A Find tool bar (bottom area)
-class FindToolBar(QToolBar):
-
- find = QtCore.Signal(str, QWebEnginePage.FindFlag)
-
- def __init__(self):
- super().__init__()
- self._line_edit = QLineEdit()
- self._line_edit.setClearButtonEnabled(True)
- self._line_edit.setPlaceholderText("Find...")
- self._line_edit.setMaximumWidth(300)
- self._line_edit.returnPressed.connect(self._find_next)
- self.addWidget(self._line_edit)
-
- self._previous_button = QToolButton()
- style_icons = ':/qt-project.org/styles/commonstyle/images/'
- self._previous_button.setIcon(QIcon(style_icons + 'up-32.png'))
- self._previous_button.clicked.connect(self._find_previous)
- self.addWidget(self._previous_button)
-
- self._next_button = QToolButton()
- self._next_button.setIcon(QIcon(style_icons + 'down-32.png'))
- self._next_button.clicked.connect(self._find_next)
- self.addWidget(self._next_button)
-
- self._case_sensitive_checkbox = QCheckBox('Case Sensitive')
- self.addWidget(self._case_sensitive_checkbox)
-
- self._hideButton = QToolButton()
- self._hideButton.setShortcut(QKeySequence(Qt.Key_Escape))
- self._hideButton.setIcon(QIcon(style_icons + 'closedock-16.png'))
- self._hideButton.clicked.connect(self.hide)
- self.addWidget(self._hideButton)
-
- def focus_find(self):
- self._line_edit.setFocus()
-
- def _emit_find(self, backward):
- needle = self._line_edit.text().strip()
- if needle:
- flags = QWebEnginePage.FindFlag(0)
- if self._case_sensitive_checkbox.isChecked():
- flags |= QWebEnginePage.FindCaseSensitively
- if backward:
- flags |= QWebEnginePage.FindBackward
- self.find.emit(needle, flags)
-
- def _find_next(self):
- self._emit_find(False)
-
- def _find_previous(self):
- self._emit_find(True)
diff --git a/examples/webenginewidgets/tabbedbrowser/historywindow.py b/examples/webenginewidgets/tabbedbrowser/historywindow.py
deleted file mode 100644
index 1cf539afa..000000000
--- a/examples/webenginewidgets/tabbedbrowser/historywindow.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-from PySide6.QtWidgets import QApplication, QTreeView
-
-from PySide6.QtCore import Signal, QAbstractTableModel, QModelIndex, Qt, QUrl
-
-
-class HistoryModel(QAbstractTableModel):
-
- def __init__(self, history, parent=None):
- super().__init__(parent)
- self._history = history
-
- def headerData(self, section, orientation, role=Qt.DisplayRole):
- if orientation == Qt.Horizontal and role == Qt.DisplayRole:
- return 'Title' if section == 0 else 'Url'
- return None
-
- def rowCount(self, index=QModelIndex()):
- return self._history.count()
-
- def columnCount(self, index=QModelIndex()):
- return 2
-
- def item_at(self, model_index):
- return self._history.itemAt(model_index.row())
-
- def data(self, index, role=Qt.DisplayRole):
- item = self.item_at(index)
- column = index.column()
- if role == Qt.DisplayRole:
- return item.title() if column == 0 else item.url().toString()
- return None
-
- def refresh(self):
- self.beginResetModel()
- self.endResetModel()
-
-
-class HistoryWindow(QTreeView):
-
- open_url = Signal(QUrl)
-
- def __init__(self, history, parent):
- super().__init__(parent)
-
- self._model = HistoryModel(history, self)
- self.setModel(self._model)
- self.activated.connect(self._activated)
-
- screen = QApplication.desktop().screenGeometry(parent)
- self.resize(screen.width() / 3, screen.height() / 3)
- self._adjustSize()
-
- def refresh(self):
- self._model.refresh()
- self._adjustSize()
-
- def _adjustSize(self):
- if (self._model.rowCount() > 0):
- self.resizeColumnToContents(0)
-
- def _activated(self, index):
- item = self._model.item_at(index)
- self.open_url.emit(item.url())
diff --git a/examples/webenginewidgets/tabbedbrowser/main.py b/examples/webenginewidgets/tabbedbrowser/main.py
deleted file mode 100644
index 1ec7f13f7..000000000
--- a/examples/webenginewidgets/tabbedbrowser/main.py
+++ /dev/null
@@ -1,358 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-"""PySide6 WebEngineWidgets Example"""
-
-import sys
-from bookmarkwidget import BookmarkWidget
-from browsertabwidget import BrowserTabWidget
-from downloadwidget import DownloadWidget
-from findtoolbar import FindToolBar
-from webengineview import WebEngineView
-from PySide6 import QtCore
-from PySide6.QtCore import Qt, QUrl
-from PySide6.QtGui import QAction, QKeySequence, QIcon
-from PySide6.QtWidgets import (QApplication, QDockWidget, QLabel,
- QLineEdit, QMainWindow, QToolBar)
-from PySide6.QtWebEngineCore import QWebEngineDownloadRequest, QWebEnginePage
-
-main_windows = []
-
-
-def create_main_window():
- """Creates a MainWindow using 75% of the available screen resolution."""
- main_win = MainWindow()
- main_windows.append(main_win)
- available_geometry = main_win.screen().availableGeometry()
- main_win.resize(available_geometry.width() * 2 / 3,
- available_geometry.height() * 2 / 3)
- return main_win
-
-
-def create_main_window_with_browser():
- """Creates a MainWindow with a BrowserTabWidget."""
- main_win = create_main_window()
- main_win.show()
- return main_win.add_browser_tab()
-
-
-class MainWindow(QMainWindow):
- """Provides the parent window that includes the BookmarkWidget,
- BrowserTabWidget, and a DownloadWidget, to offer the complete
- web browsing experience."""
-
- def __init__(self):
- super().__init__()
-
- self.setWindowTitle('PySide6 tabbed browser Example')
-
- self._tab_widget = BrowserTabWidget(create_main_window_with_browser)
- self._tab_widget.enabled_changed.connect(self._enabled_changed)
- self._tab_widget.download_requested.connect(self._download_requested)
- self.setCentralWidget(self._tab_widget)
- self.connect(self._tab_widget, QtCore.SIGNAL("url_changed(QUrl)"),
- self.url_changed)
-
- self._bookmark_dock = QDockWidget()
- self._bookmark_dock.setWindowTitle('Bookmarks')
- self._bookmark_widget = BookmarkWidget()
- self._bookmark_widget.open_bookmark.connect(self.load_url)
- self._bookmark_widget.open_bookmark_in_new_tab.connect(self.load_url_in_new_tab)
- self._bookmark_dock.setWidget(self._bookmark_widget)
- self.addDockWidget(Qt.LeftDockWidgetArea, self._bookmark_dock)
-
- self._find_tool_bar = None
-
- self._actions = {}
- self._create_menu()
-
- self._tool_bar = QToolBar()
- self.addToolBar(self._tool_bar)
- for action in self._actions.values():
- if not action.icon().isNull():
- self._tool_bar.addAction(action)
-
- self._addres_line_edit = QLineEdit()
- self._addres_line_edit.setClearButtonEnabled(True)
- self._addres_line_edit.returnPressed.connect(self.load)
- self._tool_bar.addWidget(self._addres_line_edit)
- self._zoom_label = QLabel()
- self.statusBar().addPermanentWidget(self._zoom_label)
- self._update_zoom_label()
-
- self._bookmarksToolBar = QToolBar()
- self.addToolBar(Qt.TopToolBarArea, self._bookmarksToolBar)
- self.insertToolBarBreak(self._bookmarksToolBar)
- self._bookmark_widget.changed.connect(self._update_bookmarks)
- self._update_bookmarks()
-
- def _update_bookmarks(self):
- self._bookmark_widget.populate_tool_bar(self._bookmarksToolBar)
- self._bookmark_widget.populate_other(self._bookmark_menu, 3)
-
- def _create_menu(self):
- file_menu = self.menuBar().addMenu("&File")
- exit_action = QAction(QIcon.fromTheme("application-exit"), "E&xit",
- self, shortcut="Ctrl+Q", triggered=qApp.quit)
- file_menu.addAction(exit_action)
-
- navigation_menu = self.menuBar().addMenu("&Navigation")
-
- style_icons = ':/qt-project.org/styles/commonstyle/images/'
- back_action = QAction(QIcon.fromTheme("go-previous",
- QIcon(style_icons + 'left-32.png')),
- "Back", self,
- shortcut=QKeySequence(QKeySequence.Back),
- triggered=self._tab_widget.back)
- self._actions[QWebEnginePage.Back] = back_action
- back_action.setEnabled(False)
- navigation_menu.addAction(back_action)
- forward_action = QAction(QIcon.fromTheme("go-next",
- QIcon(style_icons + 'right-32.png')),
- "Forward", self,
- shortcut=QKeySequence(QKeySequence.Forward),
- triggered=self._tab_widget.forward)
- forward_action.setEnabled(False)
- self._actions[QWebEnginePage.Forward] = forward_action
-
- navigation_menu.addAction(forward_action)
- reload_action = QAction(QIcon(style_icons + 'refresh-32.png'),
- "Reload", self,
- shortcut=QKeySequence(QKeySequence.Refresh),
- triggered=self._tab_widget.reload)
- self._actions[QWebEnginePage.Reload] = reload_action
- reload_action.setEnabled(False)
- navigation_menu.addAction(reload_action)
-
- navigation_menu.addSeparator()
-
- new_tab_action = QAction("New Tab", self,
- shortcut='Ctrl+T',
- triggered=self.add_browser_tab)
- navigation_menu.addAction(new_tab_action)
-
- close_tab_action = QAction("Close Current Tab", self,
- shortcut="Ctrl+W",
- triggered=self._close_current_tab)
- navigation_menu.addAction(close_tab_action)
-
- navigation_menu.addSeparator()
-
- history_action = QAction("History...", self,
- triggered=self._tab_widget.show_history)
- navigation_menu.addAction(history_action)
-
- edit_menu = self.menuBar().addMenu("&Edit")
-
- find_action = QAction("Find", self,
- shortcut=QKeySequence(QKeySequence.Find),
- triggered=self._show_find)
- edit_menu.addAction(find_action)
-
- edit_menu.addSeparator()
- undo_action = QAction("Undo", self,
- shortcut=QKeySequence(QKeySequence.Undo),
- triggered=self._tab_widget.undo)
- self._actions[QWebEnginePage.Undo] = undo_action
- undo_action.setEnabled(False)
- edit_menu.addAction(undo_action)
-
- redo_action = QAction("Redo", self,
- shortcut=QKeySequence(QKeySequence.Redo),
- triggered=self._tab_widget.redo)
- self._actions[QWebEnginePage.Redo] = redo_action
- redo_action.setEnabled(False)
- edit_menu.addAction(redo_action)
-
- edit_menu.addSeparator()
-
- cut_action = QAction("Cut", self,
- shortcut=QKeySequence(QKeySequence.Cut),
- triggered=self._tab_widget.cut)
- self._actions[QWebEnginePage.Cut] = cut_action
- cut_action.setEnabled(False)
- edit_menu.addAction(cut_action)
-
- copy_action = QAction("Copy", self,
- shortcut=QKeySequence(QKeySequence.Copy),
- triggered=self._tab_widget.copy)
- self._actions[QWebEnginePage.Copy] = copy_action
- copy_action.setEnabled(False)
- edit_menu.addAction(copy_action)
-
- paste_action = QAction("Paste", self,
- shortcut=QKeySequence(QKeySequence.Paste),
- triggered=self._tab_widget.paste)
- self._actions[QWebEnginePage.Paste] = paste_action
- paste_action.setEnabled(False)
- edit_menu.addAction(paste_action)
-
- edit_menu.addSeparator()
-
- select_all_action = QAction("Select All", self,
- shortcut=QKeySequence(QKeySequence.SelectAll),
- triggered=self._tab_widget.select_all)
- self._actions[QWebEnginePage.SelectAll] = select_all_action
- select_all_action.setEnabled(False)
- edit_menu.addAction(select_all_action)
-
- self._bookmark_menu = self.menuBar().addMenu("&Bookmarks")
- add_bookmark_action = QAction("&Add Bookmark", self,
- triggered=self._add_bookmark)
- self._bookmark_menu.addAction(add_bookmark_action)
- add_tool_bar_bookmark_action = QAction("&Add Bookmark to Tool Bar", self,
- triggered=self._add_tool_bar_bookmark)
- self._bookmark_menu.addAction(add_tool_bar_bookmark_action)
- self._bookmark_menu.addSeparator()
-
- tools_menu = self.menuBar().addMenu("&Tools")
- download_action = QAction("Open Downloads", self,
- triggered=DownloadWidget.open_download_directory)
- tools_menu.addAction(download_action)
-
- window_menu = self.menuBar().addMenu("&Window")
-
- window_menu.addAction(self._bookmark_dock.toggleViewAction())
-
- window_menu.addSeparator()
-
- zoom_in_action = QAction(QIcon.fromTheme("zoom-in"),
- "Zoom In", self,
- shortcut=QKeySequence(QKeySequence.ZoomIn),
- triggered=self._zoom_in)
- window_menu.addAction(zoom_in_action)
- zoom_out_action = QAction(QIcon.fromTheme("zoom-out"),
- "Zoom Out", self,
- shortcut=QKeySequence(QKeySequence.ZoomOut),
- triggered=self._zoom_out)
- window_menu.addAction(zoom_out_action)
-
- reset_zoom_action = QAction(QIcon.fromTheme("zoom-original"),
- "Reset Zoom", self,
- shortcut="Ctrl+0",
- triggered=self._reset_zoom)
- window_menu.addAction(reset_zoom_action)
-
- about_menu = self.menuBar().addMenu("&About")
- about_action = QAction("About Qt", self,
- shortcut=QKeySequence(QKeySequence.HelpContents),
- triggered=qApp.aboutQt)
- about_menu.addAction(about_action)
-
- def add_browser_tab(self):
- return self._tab_widget.add_browser_tab()
-
- def _close_current_tab(self):
- if self._tab_widget.count() > 1:
- self._tab_widget.close_current_tab()
- else:
- self.close()
-
- def close_event(self, event):
- main_windows.remove(self)
- event.accept()
-
- def load(self):
- url_string = self._addres_line_edit.text().strip()
- if url_string:
- self.load_url_string(url_string)
-
- def load_url_string(self, url_s):
- url = QUrl.fromUserInput(url_s)
- if (url.isValid()):
- self.load_url(url)
-
- def load_url(self, url):
- self._tab_widget.load(url)
-
- def load_url_in_new_tab(self, url):
- self.add_browser_tab().load(url)
-
- def url_changed(self, url):
- self._addres_line_edit.setText(url.toString())
-
- def _enabled_changed(self, web_action, enabled):
- action = self._actions[web_action]
- if action:
- action.setEnabled(enabled)
-
- def _add_bookmark(self):
- index = self._tab_widget.currentIndex()
- if index >= 0:
- url = self._tab_widget.url()
- title = self._tab_widget.tabText(index)
- icon = self._tab_widget.tabIcon(index)
- self._bookmark_widget.add_bookmark(url, title, icon)
-
- def _add_tool_bar_bookmark(self):
- index = self._tab_widget.currentIndex()
- if index >= 0:
- url = self._tab_widget.url()
- title = self._tab_widget.tabText(index)
- icon = self._tab_widget.tabIcon(index)
- self._bookmark_widget.add_tool_bar_bookmark(url, title, icon)
-
- def _zoom_in(self):
- new_zoom = self._tab_widget.zoom_factor() * 1.5
- if (new_zoom <= WebEngineView.maximum_zoom_factor()):
- self._tab_widget.set_zoom_factor(new_zoom)
- self._update_zoom_label()
-
- def _zoom_out(self):
- new_zoom = self._tab_widget.zoom_factor() / 1.5
- if (new_zoom >= WebEngineView.minimum_zoom_factor()):
- self._tab_widget.set_zoom_factor(new_zoom)
- self._update_zoom_label()
-
- def _reset_zoom(self):
- self._tab_widget.set_zoom_factor(1)
- self._update_zoom_label()
-
- def _update_zoom_label(self):
- percent = int(self._tab_widget.zoom_factor() * 100)
- self._zoom_label.setText(f"{percent}%")
-
- def _download_requested(self, item):
- # Remove old downloads before opening a new one
- for old_download in self.statusBar().children():
- if (type(old_download).__name__ == 'DownloadWidget' and
- old_download.state() != QWebEngineDownloadItem.DownloadInProgress):
- self.statusBar().removeWidget(old_download)
- del old_download
-
- item.accept()
- download_widget = DownloadWidget(item)
- download_widget.remove_requested.connect(self._remove_download_requested,
- Qt.QueuedConnection)
- self.statusBar().addWidget(download_widget)
-
- def _remove_download_requested(self):
- download_widget = self.sender()
- self.statusBar().removeWidget(download_widget)
- del download_widget
-
- def _show_find(self):
- if self._find_tool_bar is None:
- self._find_tool_bar = FindToolBar()
- self._find_tool_bar.find.connect(self._tab_widget.find)
- self.addToolBar(Qt.BottomToolBarArea, self._find_tool_bar)
- else:
- self._find_tool_bar.show()
- self._find_tool_bar.focus_find()
-
- def write_bookmarks(self):
- self._bookmark_widget.write_bookmarks()
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- main_win = create_main_window()
- initial_urls = sys.argv[1:]
- if not initial_urls:
- initial_urls.append('http://qt.io')
- for url in initial_urls:
- main_win.load_url_in_new_tab(QUrl.fromUserInput(url))
- main_win.show()
- exit_code = app.exec()
- main_win.write_bookmarks()
- sys.exit(exit_code)
diff --git a/examples/webenginewidgets/tabbedbrowser/tabbedbrowser.pyproject b/examples/webenginewidgets/tabbedbrowser/tabbedbrowser.pyproject
deleted file mode 100644
index 1d26848b0..000000000
--- a/examples/webenginewidgets/tabbedbrowser/tabbedbrowser.pyproject
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "files": ["main.py", "bookmarkwidget.py", "browsertabwidget.py",
- "downloadwidget.py", "findtoolbar.py", "historywindow.py",
- "webengineview.py"]
-}
diff --git a/examples/webenginewidgets/tabbedbrowser/webengineview.py b/examples/webenginewidgets/tabbedbrowser/webengineview.py
deleted file mode 100644
index 95eb01f14..000000000
--- a/examples/webenginewidgets/tabbedbrowser/webengineview.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-from PySide6.QtWebEngineCore import QWebEnginePage
-from PySide6.QtWebEngineWidgets import QWebEngineView
-
-from PySide6.QtCore import Signal, Slot
-
-_web_actions = [QWebEnginePage.Back, QWebEnginePage.Forward,
- QWebEnginePage.Reload,
- QWebEnginePage.Undo, QWebEnginePage.Redo,
- QWebEnginePage.Cut, QWebEnginePage.Copy,
- QWebEnginePage.Paste, QWebEnginePage.SelectAll]
-
-
-class WebEngineView(QWebEngineView):
-
- enabled_changed = Signal(QWebEnginePage.WebAction, bool)
-
- @staticmethod
- def web_actions():
- return _web_actions
-
- @staticmethod
- def minimum_zoom_factor():
- return 0.25
-
- @staticmethod
- def maximum_zoom_factor():
- return 5
-
- def __init__(self, tab_factory_func, window_factory_func):
- super().__init__()
- self._tab_factory_func = tab_factory_func
- self._window_factory_func = window_factory_func
- page = self.page()
- self._actions = {}
- for web_action in WebEngineView.web_actions():
- action = page.action(web_action)
- action.changed.connect(self._enabled_changed)
- self._actions[action] = web_action
-
- def is_web_action_enabled(self, web_action):
- return self.page().action(web_action).isEnabled()
-
- def createWindow(self, window_type):
- if (window_type == QWebEnginePage.WebBrowserTab or
- window_type == QWebEnginePage.WebBrowserBackgroundTab):
- return self._tab_factory_func()
- return self._window_factory_func()
-
- @Slot()
- def _enabled_changed(self):
- action = self.sender()
- web_action = self._actions[action]
- self.enabled_changed.emit(web_action, action.isEnabled())
diff --git a/examples/webenginewidgets/simplebrowser/doc/simplebrowser.png b/examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.png
index 3fa5a0046..3fa5a0046 100644
--- a/examples/webenginewidgets/simplebrowser/doc/simplebrowser.png
+++ b/examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.png
Binary files differ
diff --git a/examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.rst b/examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.rst
new file mode 100644
index 000000000..d9358a230
--- /dev/null
+++ b/examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.rst
@@ -0,0 +1,8 @@
+Qt Widgets Nano Browser Example
+===============================
+
+A minimal browser based on Qt WebEngine Widgets.
+
+.. image:: widgetsnanobrowser.png
+ :width: 400
+ :alt: Minimal Browser Screenshot
diff --git a/examples/webenginewidgets/simplebrowser/simplebrowser.py b/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py
index 48f60c6a8..2db865996 100644
--- a/examples/webenginewidgets/simplebrowser/simplebrowser.py
+++ b/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py
@@ -7,7 +7,7 @@ import sys
from PySide6.QtCore import QUrl, Slot
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import (QApplication, QLineEdit,
- QMainWindow, QPushButton, QToolBar)
+ QMainWindow, QPushButton, QToolBar)
from PySide6.QtWebEngineCore import QWebEnginePage
from PySide6.QtWebEngineWidgets import QWebEngineView
diff --git a/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.pyproject b/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.pyproject
new file mode 100644
index 000000000..c054184df
--- /dev/null
+++ b/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["widgetsnanobrowser.py"]
+}
diff --git a/examples/widgetbinding/CMakeLists.txt b/examples/widgetbinding/CMakeLists.txt
index 909208e3a..1c5eefa50 100644
--- a/examples/widgetbinding/CMakeLists.txt
+++ b/examples/widgetbinding/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
cmake_minimum_required(VERSION 3.18)
cmake_policy(VERSION 3.18)
@@ -20,8 +23,8 @@ find_package(Qt6 COMPONENTS Core Gui Widgets)
# ================================ General configuration ======================================
-# Set CPP standard to C++11 minimum.
-set(CMAKE_CXX_STANDARD 11)
+# Set CPP standard to C++17 minimum.
+set(CMAKE_CXX_STANDARD 17)
# The wiggly library for which we will create bindings. You can change the name to something
# relevant for your project.
diff --git a/examples/widgetbinding/dialog.py b/examples/widgetbinding/dialog.py
index 20dbd476c..1bd127804 100644
--- a/examples/widgetbinding/dialog.py
+++ b/examples/widgetbinding/dialog.py
@@ -21,12 +21,13 @@ class Dialog(QDialog):
layout.addWidget(wiggly_widget_py)
layout.addWidget(wiggly_widget_cpp)
layout.addWidget(lineEdit)
+ lineEdit.setClearButtonEnabled(True)
wiggly_widget_py.running = True
wiggly_widget_cpp.setRunning(True)
lineEdit.textChanged.connect(wiggly_widget_py.setText)
lineEdit.textChanged.connect(wiggly_widget_cpp.setText)
- lineEdit.setText("Hello world!")
+ lineEdit.setText("🖖 Hello world!")
self.setWindowTitle("Wiggly")
self.resize(360, 145)
diff --git a/examples/widgetbinding/README.md b/examples/widgetbinding/doc/widgetbinding.md
index 5fee93c8c..6355ea311 100644
--- a/examples/widgetbinding/README.md
+++ b/examples/widgetbinding/doc/widgetbinding.md
@@ -1,7 +1,5 @@
-# WigglyWidget
-
-The original Qt/C++ example can be found here:
-https://doc.qt.io/qt-6/qtwidgets-widgets-wiggly-example.html
+(widgetbinding-example)=
+# WigglyWidget Example
This example shows how to interact with a custom widget from two
different ways:
@@ -55,7 +53,7 @@ cd C:\pyside-setup\examples\widgetbinding
```bash
mkdir build
cd build
-cmake -H.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release
+cmake -S.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release
ninja
ninja install
cd ..
diff --git a/examples/widgetbinding/doc/widgetbinding.pyproject b/examples/widgetbinding/doc/widgetbinding.pyproject
new file mode 100644
index 000000000..e423ea347
--- /dev/null
+++ b/examples/widgetbinding/doc/widgetbinding.pyproject
@@ -0,0 +1,10 @@
+{
+ "files": ["../bindings.h",
+ "../dialog.py",
+ "../macros.h",
+ "../main.py",
+ "../registerwigglywidget.py",
+ "../wigglywidget.cpp",
+ "../wigglywidget.h",
+ "../wigglywidget.py"]
+}
diff --git a/examples/widgetbinding/wigglywidget.cpp b/examples/widgetbinding/wigglywidget.cpp
index 79fc79ee4..6fdc65f39 100644
--- a/examples/widgetbinding/wigglywidget.cpp
+++ b/examples/widgetbinding/wigglywidget.cpp
@@ -39,14 +39,16 @@ void WigglyWidget::paintEvent(QPaintEvent * /* event */)
//! [3]
QPainter painter(this);
//! [3] //! [4]
- for (int i = 0; i < m_text.size(); ++i) {
- int index = (m_step + i) % 16;
+ int offset = 0;
+ const auto codePoints = m_text.toUcs4();
+ for (char32_t codePoint : codePoints) {
+ const int index = (m_step + offset++) % 16;
color.setHsv((15 - index) * 16, 255, 191);
painter.setPen(color);
- const QChar c = m_text.at(i);
+ QString symbol = QString::fromUcs4(&codePoint, 1);
const int dy = (sineTable[index] * metrics.height()) / 400;
- painter.drawText(x, y - dy, c);
- x += metrics.horizontalAdvance(c);
+ painter.drawText(x, y - dy, symbol);
+ x += metrics.horizontalAdvance(symbol);
}
}
//! [4]
diff --git a/examples/widgets/animation/animatedtiles/animatedtiles.py b/examples/widgets/animation/animatedtiles/animatedtiles.py
index b621ec117..02fc75bf5 100644
--- a/examples/widgets/animation/animatedtiles/animatedtiles.py
+++ b/examples/widgets/animation/animatedtiles/animatedtiles.py
@@ -15,7 +15,7 @@ from PySide6.QtWidgets import (QApplication, QGraphicsItem, QGraphicsPixmapItem,
QGraphicsWidget, QStyle)
from PySide6.QtStateMachine import QState, QStateMachine
-import animatedtiles_rc
+import animatedtiles_rc # noqa: F401
# Deriving from more than one wrapped class is not supported, so we use
@@ -95,7 +95,7 @@ class Button(QGraphicsWidget):
painter.drawEllipse(r.adjusted(5, 5, -5, -5))
painter.drawPixmap(-self._pix.width() / 2, -self._pix.height() / 2,
- self._pix)
+ self._pix)
def mousePressEvent(self, ev):
self.pressed.emit()
@@ -123,7 +123,7 @@ if __name__ == '__main__':
for i in range(64):
item = Pixmap(kinetic_pix)
item.pixmap_item.setOffset(-kinetic_pix.width() / 2,
- -kinetic_pix.height() / 2)
+ -kinetic_pix.height() / 2)
item.pixmap_item.setZValue(i)
items.append(item)
scene.addItem(item.pixmap_item)
@@ -161,23 +161,25 @@ if __name__ == '__main__':
for i, item in enumerate(items):
# Ellipse.
ellipse_state.assignProperty(item, 'pos',
- QPointF(math.cos((i / 63.0) * 6.28) * 250,
- math.sin((i / 63.0) * 6.28) * 250))
+ QPointF(math.cos((i / 63.0) * 6.28) * 250,
+ math.sin((i / 63.0) * 6.28) * 250))
# Figure 8.
figure_8state.assignProperty(item, 'pos',
- QPointF(math.sin((i / 63.0) * 6.28) * 250,
- math.sin(((i * 2) / 63.0) * 6.28) * 250))
+ QPointF(math.sin((i / 63.0) * 6.28) * 250,
+ math.sin(((i * 2) / 63.0) * 6.28) * 250))
# Random.
random_state.assignProperty(item, 'pos',
- QPointF(-250 + generator.bounded(0, 500),
- -250 + generator.bounded(0, 500)))
+ QPointF(-250 + generator.bounded(0, 500),
+ -250 + generator.bounded(0, 500)))
# Tiled.
+ width = kinetic_pix.width()
+ height = kinetic_pix.height()
tiled_state.assignProperty(item, 'pos',
- QPointF(((i % 8) - 4) * kinetic_pix.width() + kinetic_pix.width() / 2,
- ((i // 8) - 4) * kinetic_pix.height() + kinetic_pix.height() / 2))
+ QPointF(((i % 8) - 4) * width + width / 2,
+ ((i // 8) - 4) * height + height / 2))
# Centered.
centered_state.assignProperty(item, 'pos', QPointF())
@@ -188,8 +190,7 @@ if __name__ == '__main__':
view.setViewportUpdateMode(QGraphicsView.BoundingRectViewportUpdate)
view.setBackgroundBrush(QBrush(bg_pix))
view.setCacheMode(QGraphicsView.CacheBackground)
- view.setRenderHints(
- QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
+ view.setRenderHints(QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
view.show()
states = QStateMachine()
diff --git a/examples/widgets/animation/animatedtiles/animatedtiles.pyproject b/examples/widgets/animation/animatedtiles/animatedtiles.pyproject
index 08ee55685..20f4abe43 100644
--- a/examples/widgets/animation/animatedtiles/animatedtiles.pyproject
+++ b/examples/widgets/animation/animatedtiles/animatedtiles.pyproject
@@ -1,4 +1,3 @@
{
- "files": ["animatedtiles.qrc", "animatedtiles.py",
- "animatedtiles_rc.py"]
+ "files": ["animatedtiles.qrc", "animatedtiles.py"]
}
diff --git a/examples/widgets/animation/appchooser/appchooser.py b/examples/widgets/animation/appchooser/appchooser.py
index e49f37dec..610050210 100644
--- a/examples/widgets/animation/appchooser/appchooser.py
+++ b/examples/widgets/animation/appchooser/appchooser.py
@@ -11,7 +11,7 @@ from PySide6.QtWidgets import (QApplication, QGraphicsScene, QGraphicsView,
QGraphicsWidget)
from PySide6.QtStateMachine import QState, QStateMachine
-import appchooser_rc
+import appchooser_rc # noqa: F401
class Pixmap(QGraphicsWidget):
diff --git a/examples/widgets/animation/appchooser/appchooser.pyproject b/examples/widgets/animation/appchooser/appchooser.pyproject
index 14bc351a1..f4c122bef 100644
--- a/examples/widgets/animation/appchooser/appchooser.pyproject
+++ b/examples/widgets/animation/appchooser/appchooser.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["appchooser_rc.py", "appchooser.py", "appchooser.qrc"]
+ "files": ["appchooser.py", "appchooser.qrc"]
}
diff --git a/examples/widgets/animation/easing/easing.py b/examples/widgets/animation/easing/easing.py
index f8cba0060..ba5032458 100644
--- a/examples/widgets/animation/easing/easing.py
+++ b/examples/widgets/animation/easing/easing.py
@@ -125,7 +125,6 @@ class Window(QWidget):
curve_types = [(f"QEasingCurve.{e.name}", e) for e in QEasingCurve.Type if e.value <= 40]
-
with QPainter(pix) as painter:
for curve_name, curve_type in curve_types:
@@ -144,14 +143,13 @@ class Window(QWidget):
# Start point.
painter.setBrush(Qt.red)
- start = QPoint(y_axis,
- x_axis - curve_scale * curve.valueForProgress(0))
+ start = QPoint(y_axis, x_axis - curve_scale * curve.valueForProgress(0))
painter.drawRect(start.x() - 1, start.y() - 1, 3, 3)
# End point.
painter.setBrush(Qt.blue)
end = QPoint(y_axis + curve_scale,
- x_axis - curve_scale * curve.valueForProgress(1))
+ x_axis - curve_scale * curve.valueForProgress(1))
painter.drawRect(end.x() - 1, end.y() - 1, 3, 3)
curve_path = QPainterPath()
@@ -159,7 +157,7 @@ class Window(QWidget):
t = 0.0
while t <= 1.0:
to = QPointF(y_axis + curve_scale * t,
- x_axis - curve_scale * curve.valueForProgress(t))
+ x_axis - curve_scale * curve.valueForProgress(t))
curve_path.lineTo(to)
t += 1.0 / curve_scale
@@ -185,14 +183,14 @@ class Window(QWidget):
self._anim.setCurrentTime(0)
is_elastic = (curve_type.value >= QEasingCurve.InElastic.value
- and curve_type.value <= QEasingCurve.OutInElastic.value)
+ and curve_type.value <= QEasingCurve.OutInElastic.value)
is_bounce = (curve_type.value >= QEasingCurve.InBounce.value
- and curve_type.value <= QEasingCurve.OutInBounce.value)
+ and curve_type.value <= QEasingCurve.OutInBounce.value)
self._ui.periodSpinBox.setEnabled(is_elastic)
self._ui.amplitudeSpinBox.setEnabled(is_elastic or is_bounce)
self._ui.overshootSpinBox.setEnabled(curve_type.value >= QEasingCurve.InBack.value
- and curve_type.value <= QEasingCurve.OutInBack.value)
+ and curve_type.value <= QEasingCurve.OutInBack.value)
def path_changed(self, index):
self._anim.set_path_type(index)
diff --git a/examples/widgets/animation/easing/images/qt-logo.png b/examples/widgets/animation/easing/images/qt-logo.png
deleted file mode 100644
index 14ddf2a02..000000000
--- a/examples/widgets/animation/easing/images/qt-logo.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/animation/easing/ui_form.py b/examples/widgets/animation/easing/ui_form.py
index 0ff7a1547..2925cbae7 100644
--- a/examples/widgets/animation/easing/ui_form.py
+++ b/examples/widgets/animation/easing/ui_form.py
@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
################################################################################
-## Form generated from reading UI file 'form2.ui'
+## Form generated from reading UI file 'form.ui'
##
-## Created by: Qt User Interface Compiler version 6.4.0
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -29,7 +29,7 @@ class Ui_Form(object):
self.gridLayout.setObjectName(u"gridLayout")
self.easingCurvePicker = QListWidget(Form)
self.easingCurvePicker.setObjectName(u"easingCurvePicker")
- sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.easingCurvePicker.sizePolicy().hasHeightForWidth())
@@ -73,7 +73,7 @@ class Ui_Form(object):
self.groupBox = QGroupBox(Form)
self.groupBox.setObjectName(u"groupBox")
- sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred)
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Preferred)
sizePolicy1.setHorizontalStretch(0)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth())
@@ -83,7 +83,7 @@ class Ui_Form(object):
self.formLayout.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow)
self.label = QLabel(self.groupBox)
self.label.setObjectName(u"label")
- sizePolicy2 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
+ sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
sizePolicy2.setHorizontalStretch(0)
sizePolicy2.setVerticalStretch(0)
sizePolicy2.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
@@ -95,7 +95,7 @@ class Ui_Form(object):
self.periodSpinBox = QDoubleSpinBox(self.groupBox)
self.periodSpinBox.setObjectName(u"periodSpinBox")
self.periodSpinBox.setEnabled(False)
- sizePolicy3 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
+ sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
sizePolicy3.setHorizontalStretch(0)
sizePolicy3.setVerticalStretch(0)
sizePolicy3.setHeightForWidth(self.periodSpinBox.sizePolicy().hasHeightForWidth())
@@ -142,7 +142,7 @@ class Ui_Form(object):
self.verticalLayout.addWidget(self.groupBox)
- self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout.addItem(self.verticalSpacer)
@@ -151,7 +151,7 @@ class Ui_Form(object):
self.graphicsView = QGraphicsView(Form)
self.graphicsView.setObjectName(u"graphicsView")
- sizePolicy4 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
sizePolicy4.setHorizontalStretch(0)
sizePolicy4.setVerticalStretch(0)
sizePolicy4.setHeightForWidth(self.graphicsView.sizePolicy().hasHeightForWidth())
diff --git a/examples/widgets/animation/states/states.py b/examples/widgets/animation/states/states.py
index 9b85e8373..509c3a7aa 100644
--- a/examples/widgets/animation/states/states.py
+++ b/examples/widgets/animation/states/states.py
@@ -16,7 +16,7 @@ from PySide6.QtWidgets import (QApplication, QGraphicsLinearLayout,
from PySide6.QtStateMachine import QState, QStateMachine
-import states_rc
+import states_rc # noqa: F401
class Pixmap(QGraphicsObject):
diff --git a/examples/widgets/animation/states/states.pyproject b/examples/widgets/animation/states/states.pyproject
index d94cf2e65..45ad44e97 100644
--- a/examples/widgets/animation/states/states.pyproject
+++ b/examples/widgets/animation/states/states.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["states.py", "states_rc.py"]
+ "files": ["states.py"]
}
diff --git a/examples/widgets/codeeditor/codeeditor.py b/examples/widgets/codeeditor/codeeditor.py
deleted file mode 100644
index 22f0b685b..000000000
--- a/examples/widgets/codeeditor/codeeditor.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-from PySide6.QtCore import Slot, Qt, QRect, QSize
-from PySide6.QtGui import QColor, QPainter, QTextFormat
-from PySide6.QtWidgets import QPlainTextEdit, QWidget, QTextEdit
-
-
-class LineNumberArea(QWidget):
- def __init__(self, editor):
- QWidget.__init__(self, editor)
- self._code_editor = editor
-
- def sizeHint(self):
- return QSize(self._code_editor.line_number_area_width(), 0)
-
- def paintEvent(self, event):
- self._code_editor.lineNumberAreaPaintEvent(event)
-
-
-class CodeEditor(QPlainTextEdit):
- def __init__(self):
- super().__init__()
- self.line_number_area = LineNumberArea(self)
-
- self.blockCountChanged[int].connect(self.update_line_number_area_width)
- self.updateRequest[QRect, int].connect(self.update_line_number_area)
- self.cursorPositionChanged.connect(self.highlight_current_line)
-
- self.update_line_number_area_width(0)
- self.highlight_current_line()
-
- def line_number_area_width(self):
- digits = 1
- max_num = max(1, self.blockCount())
- while max_num >= 10:
- max_num *= 0.1
- digits += 1
-
- space = 3 + self.fontMetrics().horizontalAdvance('9') * digits
- return space
-
- def resizeEvent(self, e):
- super().resizeEvent(e)
- cr = self.contentsRect()
- width = self.line_number_area_width()
- rect = QRect(cr.left(), cr.top(), width, cr.height())
- self.line_number_area.setGeometry(rect)
-
- def lineNumberAreaPaintEvent(self, event):
- with QPainter(self.line_number_area) as painter:
- painter.fillRect(event.rect(), Qt.lightGray)
- block = self.firstVisibleBlock()
- block_number = block.blockNumber()
- offset = self.contentOffset()
- top = self.blockBoundingGeometry(block).translated(offset).top()
- bottom = top + self.blockBoundingRect(block).height()
-
- while block.isValid() and top <= event.rect().bottom():
- if block.isVisible() and bottom >= event.rect().top():
- number = str(block_number + 1)
- painter.setPen(Qt.black)
- width = self.line_number_area.width()
- height = self.fontMetrics().height()
- painter.drawText(0, top, width, height, Qt.AlignRight, number)
-
- block = block.next()
- top = bottom
- bottom = top + self.blockBoundingRect(block).height()
- block_number += 1
-
- @Slot(int)
- def update_line_number_area_width(self, newBlockCount):
- self.setViewportMargins(self.line_number_area_width(), 0, 0, 0)
-
- @Slot(QRect, int)
- def update_line_number_area(self, rect, dy):
- if dy:
- self.line_number_area.scroll(0, dy)
- else:
- width = self.line_number_area.width()
- self.line_number_area.update(0, rect.y(), width, rect.height())
-
- if rect.contains(self.viewport().rect()):
- self.update_line_number_area_width(0)
-
- @Slot()
- def highlight_current_line(self):
- extra_selections = []
-
- if not self.isReadOnly():
- selection = QTextEdit.ExtraSelection()
-
- line_color = QColor(Qt.yellow).lighter(160)
- selection.format.setBackground(line_color)
-
- selection.format.setProperty(QTextFormat.FullWidthSelection, True)
-
- selection.cursor = self.textCursor()
- selection.cursor.clearSelection()
-
- extra_selections.append(selection)
-
- self.setExtraSelections(extra_selections)
diff --git a/examples/widgets/codeeditor/codeeditor.pyproject b/examples/widgets/codeeditor/codeeditor.pyproject
deleted file mode 100644
index f51cfc6d2..000000000
--- a/examples/widgets/codeeditor/codeeditor.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["codeeditor.py", "main.py"]
-}
diff --git a/examples/widgets/codeeditor/doc/codeeditor.png b/examples/widgets/codeeditor/doc/codeeditor.png
deleted file mode 100644
index e3def6b04..000000000
--- a/examples/widgets/codeeditor/doc/codeeditor.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/codeeditor/doc/codeeditor.rst b/examples/widgets/codeeditor/doc/codeeditor.rst
deleted file mode 100644
index 16345eaa3..000000000
--- a/examples/widgets/codeeditor/doc/codeeditor.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Code Editor Example
-===================
-
-The Code Editor example shows how to create a simple editor that has line
-numbers and that highlights the current line.
-
-.. image:: painter.png
- :width: 400
- :alt: Code Editor Screenshot
diff --git a/examples/widgets/codeeditor/main.py b/examples/widgets/codeeditor/main.py
deleted file mode 100644
index cffcca02c..000000000
--- a/examples/widgets/codeeditor/main.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import sys
-from PySide6.QtWidgets import QApplication
-from codeeditor import CodeEditor
-
-"""PySide6 port of the widgets/codeeditor example from Qt5"""
-
-if __name__ == "__main__":
- app = QApplication([])
- editor = CodeEditor()
- editor.setWindowTitle("Code Editor Example")
- editor.show()
- sys.exit(app.exec())
diff --git a/examples/widgets/desktop/systray/window.py b/examples/widgets/desktop/systray/window.py
index c04a33e3a..0b5bc39dc 100644
--- a/examples/widgets/desktop/systray/window.py
+++ b/examples/widgets/desktop/systray/window.py
@@ -9,7 +9,7 @@ from PySide6.QtWidgets import (QCheckBox, QComboBox, QDialog,
QSpinBox, QStyle, QSystemTrayIcon, QTextEdit,
QVBoxLayout)
-import rc_systray
+import rc_systray # noqa: F401
class Window(QDialog):
@@ -190,8 +190,8 @@ class Window(QDialog):
self._body_label = QLabel("Body:")
self._body_edit = QTextEdit()
- self._body_edit.setPlainText("Don't believe me. Honestly, I don't have a clue."
- "\nClick this balloon for details.")
+ self._body_edit.setPlainText("Don't believe me. Honestly, I don't have a clue.\n"
+ "Click this balloon for details.")
self._show_message_button = QPushButton("Show Message")
self._show_message_button.setDefault(True)
@@ -222,7 +222,7 @@ class Window(QDialog):
self._restore_action.triggered.connect(self.showNormal)
self._quit_action = QAction("Quit", self)
- self._quit_action.triggered.connect(qApp.quit)
+ self._quit_action.triggered.connect(qApp.quit) # noqa: F821
def create_tray_icon(self):
self._tray_icon_menu = QMenu(self)
diff --git a/examples/widgets/dialogs/classwizard/classwizard.py b/examples/widgets/dialogs/classwizard/classwizard.py
index b657308e0..0efbde69f 100644
--- a/examples/widgets/dialogs/classwizard/classwizard.py
+++ b/examples/widgets/dialogs/classwizard/classwizard.py
@@ -13,9 +13,9 @@ from PySide6.QtWidgets import (QApplication, QComboBox, QCheckBox, QFormLayout,
QMessageBox, QToolButton, QVBoxLayout, QWizard,
QWizardPage)
-from listchooser import ListChooser, PropertyChooser, SignalChooser
+from listchooser import PropertyChooser, SignalChooser
-import classwizard_rc
+import classwizard_rc # noqa: F401
BASE_CLASSES = ['<None>', 'PySide6.QtCore.QObject',
@@ -333,7 +333,7 @@ class OutputFilesPage(QWizardPage):
def _choose_output_dir(self):
directory = QFileDialog.getExistingDirectory(self, "Output Directory",
- self.output_dir())
+ self.output_dir())
if directory:
self.set_output_dir(directory)
diff --git a/examples/widgets/dialogs/classwizard/classwizard.pyproject b/examples/widgets/dialogs/classwizard/classwizard.pyproject
index 6086099b8..fcc96ef28 100644
--- a/examples/widgets/dialogs/classwizard/classwizard.pyproject
+++ b/examples/widgets/dialogs/classwizard/classwizard.pyproject
@@ -1,4 +1,3 @@
{
- "files": ["classwizard.qrc", "classwizard.py", "classwizard_rc.py",
- "listchooser.py", "classwizard_rc.pyc"]
+ "files": ["classwizard.qrc", "classwizard.py", "listchooser.py"]
}
diff --git a/examples/widgets/dialogs/classwizard/listchooser.py b/examples/widgets/dialogs/classwizard/listchooser.py
index bf15be88c..6bf47c6d1 100644
--- a/examples/widgets/dialogs/classwizard/listchooser.py
+++ b/examples/widgets/dialogs/classwizard/listchooser.py
@@ -27,7 +27,7 @@ class ValidatingInputDialog(QDialog):
self._lineedit = QLineEdit()
self._lineedit.setClearButtonEnabled(True)
re = QRegularExpression(pattern)
- assert(re.isValid())
+ assert re.isValid()
self._validator = QRegularExpressionValidator(re, self)
self._lineedit.setValidator(self._validator)
self._form_layout.addRow(label, self._lineedit)
diff --git a/examples/widgets/dialogs/findfiles/findfiles.py b/examples/widgets/dialogs/findfiles/findfiles.py
deleted file mode 100644
index 7f2093c42..000000000
--- a/examples/widgets/dialogs/findfiles/findfiles.py
+++ /dev/null
@@ -1,184 +0,0 @@
-# Copyright (C) 2013 Riverbank Computing Limited.
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-"""PySide6 port of the widgets/dialogs/findfiles example from Qt v5.x"""
-
-import sys
-
-from PySide6.QtCore import (QCoreApplication, QDir, QFile, QFileInfo,
- QIODevice, QTextStream, QUrl, Qt)
-from PySide6.QtGui import QDesktopServices
-from PySide6.QtWidgets import (QAbstractItemView, QApplication, QComboBox,
- QDialog, QFileDialog, QGridLayout, QHBoxLayout,
- QHeaderView, QLabel, QProgressDialog,
- QPushButton, QSizePolicy, QTableWidget,
- QTableWidgetItem)
-
-
-class Window(QDialog):
- def __init__(self, parent=None):
- super().__init__(parent)
-
- self._browse_button = self.create_button("&Browse...", self.browse)
- self._find_button = self.create_button("&Find", self.find)
-
- self._file_combo_box = self.create_combo_box("*")
- self._text_combo_box = self.create_combo_box()
- self._directory_combo_box = self.create_combo_box(QDir.currentPath())
-
- file_label = QLabel("Named:")
- text_label = QLabel("Containing text:")
- directory_label = QLabel("In directory:")
- self._files_found_label = QLabel()
-
- self.create_files_table()
-
- buttons_layout = QHBoxLayout()
- buttons_layout.addStretch()
- buttons_layout.addWidget(self._find_button)
-
- main_layout = QGridLayout()
- main_layout.addWidget(file_label, 0, 0)
- main_layout.addWidget(self._file_combo_box, 0, 1, 1, 2)
- main_layout.addWidget(text_label, 1, 0)
- main_layout.addWidget(self._text_combo_box, 1, 1, 1, 2)
- main_layout.addWidget(directory_label, 2, 0)
- main_layout.addWidget(self._directory_combo_box, 2, 1)
- main_layout.addWidget(self._browse_button, 2, 2)
- main_layout.addWidget(self._files_table, 3, 0, 1, 3)
- main_layout.addWidget(self._files_found_label, 4, 0)
- main_layout.addLayout(buttons_layout, 5, 0, 1, 3)
- self.setLayout(main_layout)
-
- self.setWindowTitle("Find Files")
- self.resize(500, 300)
-
- def browse(self):
- directory = QFileDialog.getExistingDirectory(self, "Find Files",
- QDir.currentPath())
-
- if directory:
- if self._directory_combo_box.findText(directory) == -1:
- self._directory_combo_box.addItem(directory)
-
- self._directory_combo_box.setCurrentIndex(self._directory_combo_box.findText(directory))
-
- @staticmethod
- def update_combo_box(comboBox):
- if comboBox.findText(comboBox.currentText()) == -1:
- comboBox.addItem(comboBox.currentText())
-
- def find(self):
- self._files_table.setRowCount(0)
-
- file_name = self._file_combo_box.currentText()
- text = self._text_combo_box.currentText()
- path = self._directory_combo_box.currentText()
-
- self.update_combo_box(self._file_combo_box)
- self.update_combo_box(self._text_combo_box)
- self.update_combo_box(self._directory_combo_box)
-
- self._current_dir = QDir(path)
- if not file_name:
- file_name = "*"
- files = self._current_dir.entryList([file_name],
- QDir.Files | QDir.NoSymLinks)
-
- if text:
- files = self.find_files(files, text)
- self.show_files(files)
-
- def find_files(self, files, text):
- progress_dialog = QProgressDialog(self)
-
- progress_dialog.setCancelButtonText("&Cancel")
- progress_dialog.setRange(0, len(files))
- progress_dialog.setWindowTitle("Find Files")
-
- found_files = []
-
- for i in range(len(files)):
- progress_dialog.setValue(i)
- n = len(files)
- progress_dialog.setLabelText(f"Searching file number {i} of {n}...")
- QCoreApplication.processEvents()
-
- if progress_dialog.wasCanceled():
- break
-
- in_file = QFile(self._current_dir.absoluteFilePath(files[i]))
-
- if in_file.open(QIODevice.ReadOnly):
- stream = QTextStream(in_file)
- while not stream.atEnd():
- if progress_dialog.wasCanceled():
- break
- line = stream.readLine()
- if text in line:
- found_files.append(files[i])
- break
-
- progress_dialog.close()
-
- return found_files
-
- def show_files(self, files):
- for fn in files:
- file = QFile(self._current_dir.absoluteFilePath(fn))
- size = QFileInfo(file).size()
-
- file_name_item = QTableWidgetItem(fn)
- file_name_item.setFlags(file_name_item.flags() ^ Qt.ItemIsEditable)
- size_kb = int((size + 1023) / 1024)
- size_item = QTableWidgetItem(f"{size_kb} KB")
- size_item.setTextAlignment(Qt.AlignVCenter | Qt.AlignRight)
- size_item.setFlags(size_item.flags() ^ Qt.ItemIsEditable)
-
- row = self._files_table.rowCount()
- self._files_table.insertRow(row)
- self._files_table.setItem(row, 0, file_name_item)
- self._files_table.setItem(row, 1, size_item)
-
- n = len(files)
- self._files_found_label.setText(f"{n} file(s) found (Double click on a file to open it)")
-
- def create_button(self, text, member):
- button = QPushButton(text)
- button.clicked.connect(member)
- return button
-
- def create_combo_box(self, text=""):
- combo_box = QComboBox()
- combo_box.setEditable(True)
- combo_box.addItem(text)
- combo_box.setSizePolicy(QSizePolicy.Expanding,
- QSizePolicy.Preferred)
- return combo_box
-
- def create_files_table(self):
- self._files_table = QTableWidget(0, 2)
- self._files_table.setSelectionBehavior(QAbstractItemView.SelectRows)
-
- self._files_table.setHorizontalHeaderLabels(("File Name", "Size"))
- self._files_table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
- self._files_table.verticalHeader().hide()
- self._files_table.setShowGrid(False)
-
- self._files_table.cellActivated.connect(self.open_file_of_item)
-
- def open_file_of_item(self, row, column):
- item = self._files_table.item(row, 0)
-
- QDesktopServices.openUrl(QUrl(self._current_dir.absoluteFilePath(item.text())))
-
-
-if __name__ == '__main__':
-
- import sys
-
- app = QApplication(sys.argv)
- window = Window()
- window.show()
- sys.exit(app.exec())
diff --git a/examples/widgets/dialogs/findfiles/findfiles.pyproject b/examples/widgets/dialogs/findfiles/findfiles.pyproject
deleted file mode 100644
index c2fae6dff..000000000
--- a/examples/widgets/dialogs/findfiles/findfiles.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["findfiles.py"]
-}
diff --git a/examples/widgets/dialogs/standarddialogs/standarddialogs.py b/examples/widgets/dialogs/standarddialogs/standarddialogs.py
index 94a5eec52..ef677d5a8 100644
--- a/examples/widgets/dialogs/standarddialogs/standarddialogs.py
+++ b/examples/widgets/dialogs/standarddialogs/standarddialogs.py
@@ -5,6 +5,8 @@
"""PySide6 port of the widgets/dialogs/standarddialogs example from Qt v5.x"""
import sys
+from textwrap import dedent
+
from PySide6.QtCore import QDir, Qt, Slot
from PySide6.QtGui import QFont, QPalette
from PySide6.QtWidgets import (QApplication, QColorDialog, QCheckBox, QDialog,
@@ -37,10 +39,6 @@ class DialogOptionsWidget(QGroupBox):
class Dialog(QDialog):
- MESSAGE = ("<p>Message boxes have a caption, a text, and up to three "
- "buttons, each with standard or custom texts.</p>"
- "<p>Click a button to close the message box. Pressing the Esc "
- "button will activate the detected escape button (if any).</p>")
def __init__(self, parent=None):
super().__init__(parent)
@@ -143,8 +141,6 @@ class Dialog(QDialog):
self._warning_label.setFrameStyle(frame_style)
self._warning_button = QPushButton("QMessageBox.&warning()")
- self._error_label = QLabel()
- self._error_label.setFrameStyle(frame_style)
self._error_button = QPushButton("QErrorMessage.showM&essage()")
self._integer_button.clicked.connect(self.set_integer)
@@ -230,7 +226,6 @@ class Dialog(QDialog):
layout.addWidget(self._warning_button, 3, 0)
layout.addWidget(self._warning_label, 3, 1)
layout.addWidget(self._error_button, 4, 0)
- layout.addWidget(self._error_label, 4, 1)
spacer = QSpacerItem(0, 0, QSizePolicy.Ignored, QSizePolicy.MinimumExpanding)
layout.addItem(spacer, 5, 0)
toolbox.addItem(page, "Message Boxes")
@@ -240,14 +235,14 @@ class Dialog(QDialog):
@Slot()
def set_integer(self):
i, ok = QInputDialog.getInt(self,
- "QInputDialog.getInteger()", "Percentage:", 25, 0, 100, 1)
+ "QInputDialog.getInteger()", "Percentage:", 25, 0, 100, 1)
if ok:
self._integer_label.setText(f"{i}%")
@Slot()
def set_double(self):
d, ok = QInputDialog.getDouble(self, "QInputDialog.getDouble()",
- "Amount:", 37.56, -10000, 10000, 2)
+ "Amount:", 37.56, -10000, 10000, 2)
if ok:
self._double_label.setText(f"${d:g}")
@@ -255,23 +250,21 @@ class Dialog(QDialog):
def set_item(self):
items = ("Spring", "Summer", "Fall", "Winter")
- item, ok = QInputDialog.getItem(self, "QInputDialog.getItem()",
- "Season:", items, 0, False)
+ item, ok = QInputDialog.getItem(self, "QInputDialog.getItem()", "Season:", items, 0, False)
if ok and item:
self._item_label.setText(item)
@Slot()
def set_text(self):
text, ok = QInputDialog.getText(self, "QInputDialog.getText()",
- "User name:", QLineEdit.Normal,
- QDir.home().dirName())
+ "User name:", QLineEdit.Normal, QDir.home().dirName())
if ok and text != '':
self._text_label.setText(text)
@Slot()
def set_multiline_text(self):
text, ok = QInputDialog.getMultiLineText(self, "QInputDialog::getMultiLineText()",
- "Address:", "John Doe\nFreedom Street")
+ "Address:", "John Doe\nFreedom Street")
if ok and text != '':
self._multiline_text_label.setText(text)
@@ -306,9 +299,8 @@ class Dialog(QDialog):
options_value = self._file_options.value()
options = QFileDialog.Options(options_value) | QFileDialog.ShowDirsOnly
- directory = QFileDialog.getExistingDirectory(self,
- "QFileDialog.getExistingDirectory()",
- self._directory_label.text(), options)
+ directory = QFileDialog.getExistingDirectory(self, "QFileDialog.getExistingDirectory()",
+ self._directory_label.text(), options)
if directory:
self._directory_label.setText(directory)
@@ -317,10 +309,9 @@ class Dialog(QDialog):
options_value = self._file_options.value()
options = QFileDialog.Options(options_value)
- fileName, filtr = QFileDialog.getOpenFileName(self,
- "QFileDialog.getOpenFileName()",
- self._open_file_name_label.text(),
- "All Files (*);;Text Files (*.txt)", "", options)
+ fileName, _ = QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()",
+ self._open_file_name_label.text(),
+ "All Files (*);;Text Files (*.txt)", "", options)
if fileName:
self._open_file_name_label.setText(fileName)
@@ -329,9 +320,9 @@ class Dialog(QDialog):
options_value = self._file_options.value()
options = QFileDialog.Options(options_value)
- files, filtr = QFileDialog.getOpenFileNames(self,
- "QFileDialog.getOpenFileNames()", self._open_files_path,
- "All Files (*);;Text Files (*.txt)", "", options)
+ files, _ = QFileDialog.getOpenFileNames(self, "QFileDialog.getOpenFileNames()",
+ self._open_files_path,
+ "All Files (*);;Text Files (*.txt)", "", options)
if files:
self._open_files_path = files[0]
file_list = ', '.join(files)
@@ -342,18 +333,24 @@ class Dialog(QDialog):
options_value = self._file_options.value()
options = QFileDialog.Options(options_value)
- fileName, filtr = QFileDialog.getSaveFileName(self,
- "QFileDialog.getSaveFileName()",
- self._save_file_name_label.text(),
- "All Files (*);;Text Files (*.txt)", "", options)
+ fileName, _ = QFileDialog.getSaveFileName(self, "QFileDialog.getSaveFileName()",
+ self._save_file_name_label.text(),
+ "All Files (*);;Text Files (*.txt)", "", options)
if fileName:
self._save_file_name_label.setText(fileName)
@Slot()
def critical_message(self):
- reply = QMessageBox.critical(self, "QMessageBox.critical()",
- Dialog.MESSAGE,
- QMessageBox.Abort | QMessageBox.Retry | QMessageBox.Ignore)
+ m = dedent("""\
+ Activating the liquid oxygen stirring fans caused an
+ explosion in one of the tanks. Liquid oxygen levels
+ are getting low. This may jeopardize the moon landing mission.""")
+ msg_box = QMessageBox(QMessageBox.Critical, "QMessageBox.critical()",
+ "Houston, we have a problem",
+ QMessageBox.Abort | QMessageBox.Retry | QMessageBox.Ignore,
+ self)
+ msg_box.setInformativeText(m)
+ reply = msg_box.exec()
if reply == QMessageBox.Abort:
self._critical_label.setText("Abort")
elif reply == QMessageBox.Retry:
@@ -363,8 +360,16 @@ class Dialog(QDialog):
@Slot()
def information_message(self):
- reply = QMessageBox.information(self,
- "QMessageBox.information()", Dialog.MESSAGE)
+ m = dedent("""\
+ This phrase was often used by public address announcers at
+ the conclusion of Elvis Presley concerts in order to
+ disperse audiences who lingered in hopes of an encore.
+ It has since become a catchphrase and punchline.""")
+ msg_box = QMessageBox(QMessageBox.Information, "QMessageBox.information()",
+ "Elvis has left the building.",
+ QMessageBox.Ok, self)
+ msg_box.setInformativeText(m)
+ reply = msg_box.exec()
if reply == QMessageBox.Ok:
self._information_label.setText("OK")
else:
@@ -372,9 +377,17 @@ class Dialog(QDialog):
@Slot()
def question_message(self):
- reply = QMessageBox.question(self, "QMessageBox.question()",
- Dialog.MESSAGE,
- QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)
+ m = dedent("""\
+ A cheeseburger is a hamburger topped with cheese.
+ Traditionally, the slice of cheese is placed on top of the
+ meat patty. The cheese is usually added to the cooking
+ hamburger patty shortly before serving, which allows the
+ cheese to melt.""")
+ msg_box = QMessageBox(QMessageBox.Question, "QMessageBox.question()",
+ "Would you like cheese with that?",
+ QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)
+ msg_box.setInformativeText(m)
+ reply = msg_box.exec()
if reply == QMessageBox.Yes:
self._question_label.setText("Yes")
elif reply == QMessageBox.No:
@@ -384,25 +397,34 @@ class Dialog(QDialog):
@Slot()
def warning_message(self):
- msg_box = QMessageBox(QMessageBox.Warning,
- "QMessageBox.warning()", Dialog.MESSAGE,
- QMessageBox.NoButton, self)
- msg_box.addButton("Save &Again", QMessageBox.AcceptRole)
- msg_box.addButton("&Continue", QMessageBox.RejectRole)
+ msg_box = QMessageBox(QMessageBox.Warning, "QMessageBox.warning()",
+ "Delete the only copy of your movie manuscript?",
+ QMessageBox.NoButton, self)
+ m = "You've been working on this manuscript for 738 days now. Hang in there!"
+ msg_box.setInformativeText(m)
+ msg_box.setDetailedText('"A long time ago in a galaxy far, far away...."')
+ msg_box.addButton("&Keep", QMessageBox.AcceptRole)
+ msg_box.addButton("Delete", QMessageBox.RejectRole)
if msg_box.exec() == QMessageBox.AcceptRole:
- self._warning_label.setText("Save Again")
+ self._warning_label.setText("Keep")
else:
- self._warning_label.setText("Continue")
+ self._warning_label.setText("Delete")
@Slot()
def error_message(self):
- self._error_message_dialog.showMessage("This dialog shows and remembers "
- "error messages. If the checkbox is checked (as it is by "
- "default), the shown message will be shown again, but if the "
- "user unchecks the box the message will not appear again if "
- "QErrorMessage.showMessage() is called with the same message.")
- self._error_label.setText("If the box is unchecked, the message won't "
- "appear again.")
+ m = dedent("""\
+ This dialog shows and remembers error messages. If the
+ user chooses to not show the dialog again, the dialog
+ will not appear again if QErrorMessage.showMessage()
+ is called with the same message.""")
+ self._error_message_dialog.showMessage(m)
+ m = dedent("""\
+ You can queue up error messages, and they will be
+ shown one after each other. Each message maintains
+ its own state for whether it will be shown again
+ the next time QErrorMessage::showMessage() is called
+ with the same message.""")
+ self._error_message_dialog.showMessage(m)
if __name__ == '__main__':
diff --git a/examples/widgets/dialogs/trivialwizard/trivialwizard.py b/examples/widgets/dialogs/trivialwizard/trivialwizard.py
index 0eb9fb567..2e551ae19 100644
--- a/examples/widgets/dialogs/trivialwizard/trivialwizard.py
+++ b/examples/widgets/dialogs/trivialwizard/trivialwizard.py
@@ -15,7 +15,7 @@ def create_intro_page():
page.setTitle("Introduction")
label = QLabel("This wizard will help you register your copy of "
- "Super Product Two.")
+ "Super Product Two.")
label.setWordWrap(True)
layout = QVBoxLayout(page)
diff --git a/examples/widgets/draganddrop/draggabletext/draggabletext.py b/examples/widgets/draganddrop/draggabletext/draggabletext.py
index 4b470cc9d..6ffdbd70e 100644
--- a/examples/widgets/draganddrop/draggabletext/draggabletext.py
+++ b/examples/widgets/draganddrop/draggabletext/draggabletext.py
@@ -2,13 +2,14 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-"""PySide6 port of the widgets/draganddrop/draggabletext example from Qt v5.x, originating from PyQt"""
+"""PySide6 port of the widgets/draganddrop/draggabletext example from Qt v5.x,
+ originating from PyQt"""
from PySide6.QtCore import QFile, QIODevice, QMimeData, QPoint, Qt, QTextStream
from PySide6.QtGui import QDrag, QPalette, QPixmap
from PySide6.QtWidgets import QApplication, QFrame, QLabel, QWidget
-import draggabletext_rc
+import draggabletext_rc # noqa: F401
class DragLabel(QLabel):
diff --git a/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject b/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject
index 0d422076e..fd97c9096 100644
--- a/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject
+++ b/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject
@@ -1,4 +1,3 @@
{
- "files": ["draggabletext_rc.py", "words.txt", "draggabletext.qrc",
- "draggabletext.py"]
+ "files": ["words.txt", "draggabletext.qrc", "draggabletext.py"]
}
diff --git a/examples/widgets/effects/lighting/lighting.py b/examples/widgets/effects/lighting/lighting.py
index fe200357d..f074813c3 100644
--- a/examples/widgets/effects/lighting/lighting.py
+++ b/examples/widgets/effects/lighting/lighting.py
@@ -37,8 +37,7 @@ class Lighting(QGraphicsView):
def setup_scene(self):
self.m_scene.setSceneRect(-300, -200, 600, 460)
- linear_grad = QLinearGradient(QPointF(-100, -100),
- QPointF(100, 100))
+ linear_grad = QLinearGradient(QPointF(-100, -100), QPointF(100, 100))
linear_grad.setColorAt(0, QColor(255, 255, 255))
linear_grad.setColorAt(1, QColor(192, 192, 255))
self.setBackgroundBrush(linear_grad)
diff --git a/examples/widgets/gettext/doc/gettext.rst b/examples/widgets/gettext/doc/gettext.rst
new file mode 100644
index 000000000..ea1127fe7
--- /dev/null
+++ b/examples/widgets/gettext/doc/gettext.rst
@@ -0,0 +1,7 @@
+.. _gettext-example:
+
+GNU gettext Example
+===================
+
+This example demonstrates the use of GNU gettext for translating
+applications as described in :ref:`translations`.
diff --git a/examples/widgets/graphicsview/anchorlayout/anchorlayout.py b/examples/widgets/graphicsview/anchorlayout/anchorlayout.py
index d6e8e57b2..9d9be041f 100644
--- a/examples/widgets/graphicsview/anchorlayout/anchorlayout.py
+++ b/examples/widgets/graphicsview/anchorlayout/anchorlayout.py
@@ -41,7 +41,7 @@ if __name__ == '__main__':
f = create_item(QSizeF(30, 50), QSizeF(150, 50), max_size, "F")
g = create_item(QSizeF(30, 50), QSizeF(30, 100), max_size, "G")
- l = QGraphicsAnchorLayout()
+ l = QGraphicsAnchorLayout() # noqa: E741
l.setSpacing(0)
w = QGraphicsWidget(None, Qt.Window)
diff --git a/examples/widgets/graphicsview/collidingmice/collidingmice.py b/examples/widgets/graphicsview/collidingmice/collidingmice.py
index 53c5c1aab..fb24db3ab 100644
--- a/examples/widgets/graphicsview/collidingmice/collidingmice.py
+++ b/examples/widgets/graphicsview/collidingmice/collidingmice.py
@@ -5,14 +5,11 @@
import math
import sys
-from PySide6.QtCore import (QLineF, QPointF, QRandomGenerator, QRectF, QTimer,
- Qt)
-from PySide6.QtGui import (QBrush, QColor, QPainter, QPainterPath, QPixmap,
- QPolygonF, QTransform)
-from PySide6.QtWidgets import (QApplication, QGraphicsItem, QGraphicsScene,
- QGraphicsView)
+from PySide6.QtCore import (QLineF, QPointF, QRandomGenerator, QRectF, QTimer, Qt)
+from PySide6.QtGui import (QBrush, QColor, QPainter, QPainterPath, QPixmap, QPolygonF, QTransform)
+from PySide6.QtWidgets import (QApplication, QGraphicsItem, QGraphicsScene, QGraphicsView)
-import mice_rc
+import mice_rc # noqa: F401
def random(boundary):
@@ -26,7 +23,7 @@ class Mouse(QGraphicsItem):
# Create the bounding rectangle once.
adjust = 0.5
BOUNDING_RECT = QRectF(-20 - adjust, -22 - adjust, 40 + adjust,
- 83 + adjust)
+ 83 + adjust)
def __init__(self):
super().__init__()
@@ -103,7 +100,8 @@ class Mouse(QGraphicsItem):
if angle_to_center < Mouse.PI and angle_to_center > Mouse.PI / 4:
# Rotate left.
self.angle += [-0.25, 0.25][self.angle < -Mouse.PI / 2]
- elif angle_to_center >= Mouse.PI and angle_to_center < (Mouse.PI + Mouse.PI / 2 + Mouse.PI / 4):
+ elif (angle_to_center >= Mouse.PI
+ and angle_to_center < (Mouse.PI + Mouse.PI / 2 + Mouse.PI / 4)):
# Rotate right.
self.angle += [-0.25, 0.25][self.angle < Mouse.PI / 2]
elif math.sin(self.angle) < 0:
diff --git a/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject b/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject
index ea5821866..621bfd642 100644
--- a/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject
+++ b/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["collidingmice.py", "mice_rc.py"]
+ "files": ["collidingmice.py"]
}
diff --git a/examples/widgets/graphicsview/diagramscene/diagramscene.py b/examples/widgets/graphicsview/diagramscene/diagramscene.py
index ea39cf938..60e05613c 100644
--- a/examples/widgets/graphicsview/diagramscene/diagramscene.py
+++ b/examples/widgets/graphicsview/diagramscene/diagramscene.py
@@ -17,7 +17,7 @@ from PySide6.QtWidgets import (QAbstractButton, QApplication, QButtonGroup,
QMessageBox, QSizePolicy, QToolBox, QToolButton,
QWidget)
-import diagramscene_rc
+import diagramscene_rc # noqa: F401
class Arrow(QGraphicsLineItem):
@@ -30,8 +30,7 @@ class Arrow(QGraphicsLineItem):
self._my_end_item = endItem
self.setFlag(QGraphicsItem.ItemIsSelectable, True)
self._my_color = Qt.black
- self.setPen(QPen(self._my_color, 2, Qt.SolidLine,
- Qt.RoundCap, Qt.RoundJoin))
+ self.setPen(QPen(self._my_color, 2, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin))
def set_color(self, color):
self._my_color = color
@@ -163,19 +162,19 @@ class DiagramItem(QGraphicsPolygonItem):
self._my_polygon = path.toFillPolygon()
elif self.diagram_type == self.Conditional:
self._my_polygon = QPolygonF([
- QPointF(-100, 0), QPointF(0, 100),
- QPointF(100, 0), QPointF(0, -100),
- QPointF(-100, 0)])
+ QPointF(-100, 0), QPointF(0, 100),
+ QPointF(100, 0), QPointF(0, -100),
+ QPointF(-100, 0)])
elif self.diagram_type == self.Step:
self._my_polygon = QPolygonF([
- QPointF(-100, -100), QPointF(100, -100),
- QPointF(100, 100), QPointF(-100, 100),
- QPointF(-100, -100)])
+ QPointF(-100, -100), QPointF(100, -100),
+ QPointF(100, 100), QPointF(-100, 100),
+ QPointF(-100, -100)])
else:
self._my_polygon = QPolygonF([
- QPointF(-120, -80), QPointF(-70, 80),
- QPointF(120, 80), QPointF(70, -80),
- QPointF(-120, -80)])
+ QPointF(-120, -80), QPointF(-70, 80),
+ QPointF(120, 80), QPointF(70, -80),
+ QPointF(-120, -80)])
self.setPolygon(self._my_polygon)
self.setFlag(QGraphicsItem.ItemIsMovable, True)
@@ -291,8 +290,7 @@ class DiagramScene(QGraphicsScene):
item.setPos(mouseEvent.scenePos())
self.item_inserted.emit(item)
elif self._my_mode == self.InsertLine:
- self.line = QGraphicsLineItem(QLineF(mouseEvent.scenePos(),
- mouseEvent.scenePos()))
+ self.line = QGraphicsLineItem(QLineF(mouseEvent.scenePos(), mouseEvent.scenePos()))
self.line.setPen(QPen(self._my_line_color, 2))
self.addItem(self.line)
elif self._my_mode == self.InsertText:
@@ -328,10 +326,10 @@ class DiagramScene(QGraphicsScene):
self.removeItem(self.line)
self.line = None
- if (len(start_items) and len(end_items) and
- isinstance(start_items[0], DiagramItem) and
- isinstance(end_items[0], DiagramItem) and
- start_items[0] != end_items[0]):
+ if (len(start_items) and len(end_items)
+ and isinstance(start_items[0], DiagramItem)
+ and isinstance(end_items[0], DiagramItem)
+ and start_items[0] != end_items[0]):
start_item = start_items[0]
end_item = end_items[0]
arrow = Arrow(start_item, end_item)
@@ -484,24 +482,21 @@ class MainWindow(QMainWindow):
def text_color_changed(self):
self._text_action = self.sender()
self._font_color_tool_button.setIcon(self.create_color_tool_button_icon(
- ':/images/textpointer.png',
- QColor(self._text_action.data())))
+ ':/images/textpointer.png', QColor(self._text_action.data())))
self.text_button_triggered()
@Slot()
def item_color_changed(self):
self._fill_action = self.sender()
self._fill_color_tool_button.setIcon(self.create_color_tool_button_icon(
- ':/images/floodfill.png',
- QColor(self._fill_action.data())))
+ ':/images/floodfill.png', QColor(self._fill_action.data())))
self.fill_button_triggered()
@Slot()
def line_color_changed(self):
self._line_action = self.sender()
self._line_color_tool_button.setIcon(self.create_color_tool_button_icon(
- ':/images/linecolor.png',
- QColor(self._line_action.data())))
+ ':/images/linecolor.png', QColor(self._line_action.data())))
self.line_button_triggered()
@Slot()
@@ -532,7 +527,6 @@ class MainWindow(QMainWindow):
@Slot(QGraphicsItem)
def item_selected(self, item):
font = item.font()
- color = item.defaultTextColor()
self._font_combo.setCurrentFont(font)
self._font_size_combo.setEditText(str(font.pointSize()))
self._bold_action.setChecked(font.weight() == QFont.Bold)
@@ -542,7 +536,7 @@ class MainWindow(QMainWindow):
@Slot()
def about(self):
QMessageBox.about(self, "About Diagram Scene",
- "The <b>Diagram Scene</b> example shows use of the graphics framework.")
+ "The <b>Diagram Scene</b> example shows use of the graphics framework.")
def create_tool_box(self):
self._button_group = QButtonGroup()
@@ -550,12 +544,9 @@ class MainWindow(QMainWindow):
self._button_group.idClicked.connect(self.button_group_clicked)
layout = QGridLayout()
- layout.addWidget(self.create_cell_widget("Conditional", DiagramItem.Conditional),
- 0, 0)
- layout.addWidget(self.create_cell_widget("Process", DiagramItem.Step), 0,
- 1)
- layout.addWidget(self.create_cell_widget("Input/Output", DiagramItem.Io),
- 1, 0)
+ layout.addWidget(self.create_cell_widget("Conditional", DiagramItem.Conditional), 0, 0)
+ layout.addWidget(self.create_cell_widget("Process", DiagramItem.Step), 0, 1)
+ layout.addWidget(self.create_cell_widget("Input/Output", DiagramItem.Io), 1, 0)
text_button = QToolButton()
text_button.setCheckable(True)
@@ -581,14 +572,14 @@ class MainWindow(QMainWindow):
self._background_button_group.buttonClicked.connect(self.background_button_group_clicked)
background_layout = QGridLayout()
- background_layout.addWidget(self.create_background_cell_widget("Blue Grid",
- ':/images/background1.png'), 0, 0)
- background_layout.addWidget(self.create_background_cell_widget("White Grid",
- ':/images/background2.png'), 0, 1)
- background_layout.addWidget(self.create_background_cell_widget("Gray Grid",
- ':/images/background3.png'), 1, 0)
- background_layout.addWidget(self.create_background_cell_widget("No Grid",
- ':/images/background4.png'), 1, 1)
+ background_layout.addWidget(
+ self.create_background_cell_widget("Blue Grid", ':/images/background1.png'), 0, 0)
+ background_layout.addWidget(
+ self.create_background_cell_widget("White Grid", ':/images/background2.png'), 0, 1)
+ background_layout.addWidget(
+ self.create_background_cell_widget("Gray Grid", ':/images/background3.png'), 1, 0)
+ background_layout.addWidget(
+ self.create_background_cell_widget("No Grid", ':/images/background4.png'), 1, 1)
background_layout.setRowStretch(2, 10)
background_layout.setColumnStretch(2, 10)
@@ -604,38 +595,37 @@ class MainWindow(QMainWindow):
def create_actions(self):
self._to_front_action = QAction(
- QIcon(':/images/bringtofront.png'), "Bring to &Front",
- self, shortcut="Ctrl+F", statusTip="Bring item to front",
- triggered=self.bring_to_front)
+ QIcon(':/images/bringtofront.png'), "Bring to &Front",
+ self, shortcut="Ctrl+F", statusTip="Bring item to front",
+ triggered=self.bring_to_front)
self._send_back_action = QAction(
- QIcon(':/images/sendtoback.png'), "Send to &Back", self,
- shortcut="Ctrl+B", statusTip="Send item to back",
- triggered=self.send_to_back)
+ QIcon(':/images/sendtoback.png'), "Send to &Back", self,
+ shortcut="Ctrl+B", statusTip="Send item to back",
+ triggered=self.send_to_back)
self._delete_action = QAction(QIcon(':/images/delete.png'),
- "&Delete", self, shortcut="Delete",
- statusTip="Delete item from diagram",
- triggered=self.delete_item)
+ "&Delete", self, shortcut="Delete",
+ statusTip="Delete item from diagram",
+ triggered=self.delete_item)
self._exit_action = QAction("E&xit", self, shortcut="Ctrl+X",
- statusTip="Quit Scenediagram example", triggered=self.close)
+ statusTip="Quit Scenediagram example", triggered=self.close)
self._bold_action = QAction(QIcon(':/images/bold.png'),
- "Bold", self, checkable=True, shortcut="Ctrl+B",
- triggered=self.handle_font_change)
+ "Bold", self, checkable=True, shortcut="Ctrl+B",
+ triggered=self.handle_font_change)
self._italic_action = QAction(QIcon(':/images/italic.png'),
- "Italic", self, checkable=True, shortcut="Ctrl+I",
- triggered=self.handle_font_change)
+ "Italic", self, checkable=True, shortcut="Ctrl+I",
+ triggered=self.handle_font_change)
self._underline_action = QAction(
- QIcon(':/images/underline.png'), "Underline", self,
- checkable=True, shortcut="Ctrl+U",
- triggered=self.handle_font_change)
+ QIcon(':/images/underline.png'), "Underline", self,
+ checkable=True, shortcut="Ctrl+U",
+ triggered=self.handle_font_change)
- self._about_action = QAction("A&bout", self, shortcut="Ctrl+B",
- triggered=self.about)
+ self._about_action = QAction("A&bout", self, shortcut="Ctrl+B", triggered=self.about)
def create_menus(self):
self._file_menu = self.menuBar().addMenu("&File")
@@ -670,32 +660,29 @@ class MainWindow(QMainWindow):
self._font_color_tool_button = QToolButton()
self._font_color_tool_button.setPopupMode(QToolButton.MenuButtonPopup)
self._font_color_tool_button.setMenu(
- self.create_color_menu(self.text_color_changed, Qt.black))
+ self.create_color_menu(self.text_color_changed, Qt.black))
self._text_action = self._font_color_tool_button.menu().defaultAction()
self._font_color_tool_button.setIcon(
- self.create_color_tool_button_icon(':/images/textpointer.png',
- Qt.black))
+ self.create_color_tool_button_icon(':/images/textpointer.png', Qt.black))
self._font_color_tool_button.setAutoFillBackground(True)
self._font_color_tool_button.clicked.connect(self.text_button_triggered)
self._fill_color_tool_button = QToolButton()
self._fill_color_tool_button.setPopupMode(QToolButton.MenuButtonPopup)
self._fill_color_tool_button.setMenu(
- self.create_color_menu(self.item_color_changed, Qt.white))
+ self.create_color_menu(self.item_color_changed, Qt.white))
self._fill_action = self._fill_color_tool_button.menu().defaultAction()
self._fill_color_tool_button.setIcon(
- self.create_color_tool_button_icon(':/images/floodfill.png',
- Qt.white))
+ self.create_color_tool_button_icon(':/images/floodfill.png', Qt.white))
self._fill_color_tool_button.clicked.connect(self.fill_button_triggered)
self._line_color_tool_button = QToolButton()
self._line_color_tool_button.setPopupMode(QToolButton.MenuButtonPopup)
self._line_color_tool_button.setMenu(
- self.create_color_menu(self.line_color_changed, Qt.black))
+ self.create_color_menu(self.line_color_changed, Qt.black))
self._line_action = self._line_color_tool_button.menu().defaultAction()
self._line_color_tool_button.setIcon(
- self.create_color_tool_button_icon(':/images/linecolor.png',
- Qt.black))
+ self.create_color_tool_button_icon(':/images/linecolor.png', Qt.black))
self._line_color_tool_button.clicked.connect(self.line_button_triggered)
self._text_tool_bar = self.addToolBar("Font")
@@ -720,8 +707,7 @@ class MainWindow(QMainWindow):
self._pointer_type_group = QButtonGroup()
self._pointer_type_group.addButton(pointer_button, DiagramScene.MoveItem)
- self._pointer_type_group.addButton(line_pointer_button,
- DiagramScene.InsertLine)
+ self._pointer_type_group.addButton(line_pointer_button, DiagramScene.InsertLine)
self._pointer_type_group.idClicked.connect(self.pointer_group_clicked)
self._scene_scale_combo = QComboBox()
@@ -776,8 +762,7 @@ class MainWindow(QMainWindow):
color_menu = QMenu(self)
for color, name in zip(colors, names):
- action = QAction(self.create_color_icon(color), name, self,
- triggered=slot)
+ action = QAction(self.create_color_icon(color), name, self, triggered=slot)
action.setData(QColor(color))
color_menu.addAction(action)
if color == defaultColor:
diff --git a/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject b/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject
index 0acabdd78..79b8c8658 100644
--- a/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject
+++ b/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["diagramscene.qrc", "diagramscene.py", "diagramscene_rc.py"]
+ "files": ["diagramscene.qrc", "diagramscene.py"]
}
diff --git a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py
index 0bfd3e0db..9ed92b26e 100644
--- a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py
+++ b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py
@@ -13,7 +13,7 @@ from PySide6.QtWidgets import (QApplication, QGraphicsItem,
QGraphicsItemAnimation, QGraphicsScene,
QGraphicsView)
-import dragdroprobot_rc
+import dragdroprobot_rc # noqa: F401
def random(boundary):
@@ -103,8 +103,8 @@ class RobotPart(QGraphicsItem):
self.setAcceptDrops(True)
def dragEnterEvent(self, event):
- if (event.mimeData().hasColor() or
- (isinstance(self, RobotHead) and event.mimeData().hasImage())):
+ if (event.mimeData().hasColor()
+ or (isinstance(self, RobotHead) and event.mimeData().hasImage())):
event.setAccepted(True)
self._drag_over = True
self.update()
@@ -131,8 +131,7 @@ class RobotHead(RobotPart):
def paint(self, painter, option, widget=None):
if not self.pixmap:
- painter.setBrush(self._drag_over and self.color.lighter(130)
- or self.color)
+ painter.setBrush(self._drag_over and self.color.lighter(130) or self.color)
painter.drawRoundedRect(-10, -30, 20, 30, 25, 25, Qt.RelativeSize)
painter.setBrush(Qt.white)
painter.drawEllipse(-7, -3 - 20, 7, 7)
@@ -154,7 +153,7 @@ class RobotTorso(RobotPart):
def paint(self, painter, option, widget=None):
painter.setBrush(self._drag_over and self.color.lighter(130)
- or self.color)
+ or self.color)
painter.drawRoundedRect(-20, -20, 40, 60, 25, 25, Qt.RelativeSize)
painter.drawEllipse(-25, -20, 20, 20)
painter.drawEllipse(5, -20, 20, 20)
@@ -169,7 +168,7 @@ class RobotLimb(RobotPart):
def paint(self, painter, option, widget=None):
painter.setBrush(self._drag_over and self.color.lighter(130) or self.color)
painter.drawRoundedRect(self.boundingRect(), 50, 50,
- Qt.RelativeSize)
+ Qt.RelativeSize)
painter.drawEllipse(-5, -5, 10, 10)
@@ -177,35 +176,35 @@ class Robot(RobotPart):
def __init__(self):
super().__init__()
- self.torsoItem = RobotTorso(self)
- self.headItem = RobotHead(self.torsoItem)
- self.upperLeftArmItem = RobotLimb(self.torsoItem)
- self.lowerLeftArmItem = RobotLimb(self.upperLeftArmItem)
+ self.torsoItem = RobotTorso(self)
+ self.headItem = RobotHead(self.torsoItem)
+ self.upperLeftArmItem = RobotLimb(self.torsoItem)
+ self.lowerLeftArmItem = RobotLimb(self.upperLeftArmItem)
self._upper_right_arm_item = RobotLimb(self.torsoItem)
self._lower_right_arm_item = RobotLimb(self._upper_right_arm_item)
self._upper_right_leg_item = RobotLimb(self.torsoItem)
self._lower_right_leg_item = RobotLimb(self._upper_right_leg_item)
- self.upperLeftLegItem = RobotLimb(self.torsoItem)
- self.lowerLeftLegItem = RobotLimb(self.upperLeftLegItem)
+ self.upperLeftLegItem = RobotLimb(self.torsoItem)
+ self.lowerLeftLegItem = RobotLimb(self.upperLeftLegItem)
self.timeline = QTimeLine()
settings = [
- # item position rotation at
- # x y time 0 / 1
- ( self.headItem, 0, -18, 20, -20 ),
- ( self.upperLeftArmItem, -15, -10, 190, 180 ),
- ( self.lowerLeftArmItem, 30, 0, 50, 10 ),
- ( self._upper_right_arm_item, 15, -10, 300, 310 ),
- ( self._lower_right_arm_item, 30, 0, 0, -70 ),
- ( self._upper_right_leg_item, 10, 32, 40, 120 ),
- ( self._lower_right_leg_item, 30, 0, 10, 50 ),
- ( self.upperLeftLegItem, -10, 32, 150, 80 ),
- ( self.lowerLeftLegItem, 30, 0, 70, 10 ),
- ( self.torsoItem, 0, 0, 5, -20 )
+ # item position rotation at
+ # x y time 0 / 1
+ (self.headItem, 0, -18, 20, -20), # noqa: E241
+ (self.upperLeftArmItem, -15, -10, 190, 180), # noqa: E241
+ (self.lowerLeftArmItem, 30, 0, 50, 10), # noqa: E241
+ (self._upper_right_arm_item, 15, -10, 300, 310), # noqa: E241
+ (self._lower_right_arm_item, 30, 0, 0, -70), # noqa: E241
+ (self._upper_right_leg_item, 10, 32, 40, 120), # noqa: E241
+ (self._lower_right_leg_item, 30, 0, 10, 50), # noqa: E241
+ (self.upperLeftLegItem, -10, 32, 150, 80), # noqa: E241
+ (self.lowerLeftLegItem, 30, 0, 70, 10), # noqa: E241
+ (self.torsoItem, 0, 0, 5, -20) # noqa: E241
]
self.animations = []
for item, pos_x, pos_y, rotation1, rotation2 in settings:
- item.setPos(pos_x,pos_y)
+ item.setPos(pos_x, pos_y)
animation = QGraphicsItemAnimation()
animation.setItem(item)
animation.setTimeLine(self.timeline)
@@ -228,7 +227,7 @@ class Robot(RobotPart):
pass
-if __name__== '__main__':
+if __name__ == '__main__':
app = QApplication(sys.argv)
scene = QGraphicsScene(-200, -200, 400, 400)
diff --git a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject
index 587484a97..f31851b91 100644
--- a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject
+++ b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["dragdroprobot.qrc", "dragdroprobot_rc.py", "dragdroprobot.py"]
+ "files": ["dragdroprobot.qrc", "dragdroprobot.py"]
}
diff --git a/examples/widgets/graphicsview/elasticnodes/elasticnodes.py b/examples/widgets/graphicsview/elasticnodes/elasticnodes.py
index 58d9d4a90..90cb49626 100644
--- a/examples/widgets/graphicsview/elasticnodes/elasticnodes.py
+++ b/examples/widgets/graphicsview/elasticnodes/elasticnodes.py
@@ -20,8 +20,6 @@ def random(boundary):
class Edge(QGraphicsItem):
- item_type = QGraphicsItem.UserType + 2
-
def __init__(self, sourceNode, destNode):
super().__init__()
@@ -36,7 +34,7 @@ class Edge(QGraphicsItem):
self.adjust()
def item_type(self):
- return Edge.item_type
+ return QGraphicsItem.UserType + 2
def source_node(self):
return self.source()
@@ -119,7 +117,6 @@ class Edge(QGraphicsItem):
class Node(QGraphicsItem):
- item_type = QGraphicsItem.UserType + 1
def __init__(self, graphWidget):
super().__init__()
@@ -133,7 +130,7 @@ class Node(QGraphicsItem):
self.setZValue(-1)
def item_type(self):
- return Node.item_type
+ return QGraphicsItem.UserType + 1
def add_edge(self, edge):
self._edge_list.append(weakref.ref(edge))
@@ -157,7 +154,7 @@ class Node(QGraphicsItem):
line = QLineF(self.mapFromItem(item, 0, 0), QPointF(0, 0))
dx = line.dx()
dy = line.dy()
- l = 2.0 * (dx * dx + dy * dy)
+ l = 2.0 * (dx * dx + dy * dy) # noqa: E741
if l > 0:
xvel += (dx * 150.0) / l
yvel += (dy * 150.0) / l
@@ -192,7 +189,7 @@ class Node(QGraphicsItem):
def boundingRect(self):
adjust = 2.0
return QRectF(-10 - adjust, -10 - adjust,
- 23 + adjust, 23 + adjust)
+ 23 + adjust, 23 + adjust)
def shape(self):
path = QPainterPath()
@@ -348,9 +345,9 @@ class GraphWidget(QGraphicsView):
bottom_shadow = QRectF(scene_rect.left() + 5, scene_rect.bottom(),
scene_rect.width(), 5)
if right_shadow.intersects(rect) or right_shadow.contains(rect):
- painter.fillRect(right_shadow, Qt.darkGray)
+ painter.fillRect(right_shadow, Qt.darkGray)
if bottom_shadow.intersects(rect) or bottom_shadow.contains(rect):
- painter.fillRect(bottom_shadow, Qt.darkGray)
+ painter.fillRect(bottom_shadow, Qt.darkGray)
# Fill.
gradient = QLinearGradient(scene_rect.topLeft(), scene_rect.bottomRight())
@@ -362,7 +359,7 @@ class GraphWidget(QGraphicsView):
# Text.
text_rect = QRectF(scene_rect.left() + 4, scene_rect.top() + 4,
- scene_rect.width() - 4, scene_rect.height() - 4)
+ scene_rect.width() - 4, scene_rect.height() - 4)
message = self.tr("Click and drag the nodes around, and zoom with the "
"mouse wheel or the '+' and '-' keys")
@@ -376,7 +373,8 @@ class GraphWidget(QGraphicsView):
painter.drawText(text_rect, message)
def scale_view(self, scaleFactor):
- factor = self.transform().scale(scaleFactor, scaleFactor).mapRect(QRectF(0, 0, 1, 1)).width()
+ factor = self.transform().scale(scaleFactor, scaleFactor).mapRect(
+ QRectF(0, 0, 1, 1)).width()
if factor < 0.07 or factor > 100:
return
diff --git a/examples/widgets/imageviewer/imageviewer.py b/examples/widgets/imageviewer/imageviewer.py
index ded7f246a..93b1e87ba 100644
--- a/examples/widgets/imageviewer/imageviewer.py
+++ b/examples/widgets/imageviewer/imageviewer.py
@@ -34,7 +34,7 @@ class ImageViewer(QMainWindow):
self._image_label = QLabel()
self._image_label.setBackgroundRole(QPalette.Base)
self._image_label.setSizePolicy(QSizePolicy.Ignored,
- QSizePolicy.Ignored)
+ QSizePolicy.Ignored)
self._image_label.setScaledContents(True)
self._scroll_area = QScrollArea()
diff --git a/examples/widgets/itemviews/address_book/adddialogwidget.py b/examples/widgets/itemviews/address_book/adddialogwidget.py
index 276a8d2b4..ecb853e80 100644
--- a/examples/widgets/itemviews/address_book/adddialogwidget.py
+++ b/examples/widgets/itemviews/address_book/adddialogwidget.py
@@ -15,8 +15,8 @@ class AddDialogWidget(QDialog):
name_label = QLabel("Name")
address_label = QLabel("Address")
- button_box = QDialogButtonBox(QDialogButtonBox.Ok |
- QDialogButtonBox.Cancel)
+ button_box = QDialogButtonBox(QDialogButtonBox.Ok
+ | QDialogButtonBox.Cancel)
self._name_text = QLineEdit()
self._address_text = QTextEdit()
diff --git a/examples/widgets/itemviews/address_book/address_book.py b/examples/widgets/itemviews/address_book/address_book.py
index 2e1f6b9b0..af0cf3dee 100644
--- a/examples/widgets/itemviews/address_book/address_book.py
+++ b/examples/widgets/itemviews/address_book/address_book.py
@@ -25,16 +25,19 @@ class MainWindow(QMainWindow):
tool_menu = self.menuBar().addMenu("&Tools")
# Populate the File menu
- open_action = self.create_action("&Open...", file_menu, self.open_file)
- save_action = self.create_action("&Save As...", file_menu, self.save_file)
+ self.open_action = self.create_action("&Open...", file_menu, self.open_file)
+ self.save_action = self.create_action("&Save As...", file_menu, self.save_file)
file_menu.addSeparator()
- exit_action = self.create_action("E&xit", file_menu, self.close)
+ self.exit_action = self.create_action("E&xit", file_menu, self.close)
# Populate the Tools menu
- add_action = self.create_action("&Add Entry...", tool_menu, self._address_widget.add_entry)
- self._edit_action = self.create_action("&Edit Entry...", tool_menu, self._address_widget.edit_entry)
+ self.add_action = self.create_action(
+ "&Add Entry...", tool_menu, self._address_widget.add_entry)
+ self._edit_action = self.create_action(
+ "&Edit Entry...", tool_menu, self._address_widget.edit_entry)
tool_menu.addSeparator()
- self._remove_action = self.create_action("&Remove Entry", tool_menu, self._address_widget.remove_entry)
+ self._remove_action = self.create_action(
+ "&Remove Entry", tool_menu, self._address_widget.remove_entry)
# Disable the edit and remove menu items initially, as there are
# no items yet.
diff --git a/examples/widgets/itemviews/address_book/addresswidget.py b/examples/widgets/itemviews/address_book/addresswidget.py
index ab1330e48..cb2f46ea1 100644
--- a/examples/widgets/itemviews/address_book/addresswidget.py
+++ b/examples/widgets/itemviews/address_book/addresswidget.py
@@ -166,8 +166,9 @@ class AddressWidget(QTabWidget):
proxy_model.setFilterKeyColumn(0) # Filter on the "name" column
proxy_model.sort(0, Qt.AscendingOrder)
- # This prevents an application crash (see: https://www.qtcentre.org/threads/58874-QListView-SelectionModel-selectionChanged-Crash)
- viewselectionmodel = table_view.selectionModel()
+ # This prevents an application crash (see:
+ # https://www.qtcentre.org/threads/58874-QListView-SelectionModel-selectionChanged-Crash) # noqa: E501
+ self.viewselectionmodel = table_view.selectionModel()
table_view.selectionModel().selectionChanged.connect(self.selection_changed)
self.addTab(table_view, group)
diff --git a/examples/widgets/itemviews/address_book/tablemodel.py b/examples/widgets/itemviews/address_book/tablemodel.py
index a0d63bbe2..3c1dbd4cc 100644
--- a/examples/widgets/itemviews/address_book/tablemodel.py
+++ b/examples/widgets/itemviews/address_book/tablemodel.py
@@ -105,5 +105,5 @@ class TableModel(QAbstractTableModel):
"""
if not index.isValid():
return Qt.ItemIsEnabled
- return Qt.ItemFlags(QAbstractTableModel.flags(self, index) |
- Qt.ItemIsEditable)
+ return Qt.ItemFlags(QAbstractTableModel.flags(self, index)
+ | Qt.ItemIsEditable)
diff --git a/examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py b/examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py
index 834237404..a30b0abdf 100644
--- a/examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py
+++ b/examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py
@@ -46,11 +46,11 @@ class Window(QWidget):
self._filter_syntax_combo_box = QComboBox()
self._filter_syntax_combo_box.addItem("Regular expression",
- REGULAR_EXPRESSION)
+ REGULAR_EXPRESSION)
self._filter_syntax_combo_box.addItem("Wildcard",
- WILDCARD)
+ WILDCARD)
self._filter_syntax_combo_box.addItem("Fixed string",
- FIXED_STRING)
+ FIXED_STRING)
self._filter_syntax_label = QLabel("Filter &syntax:")
self._filter_syntax_label.setBuddy(self._filter_syntax_combo_box)
@@ -147,25 +147,25 @@ def create_mail_model(parent):
model.setHeaderData(2, Qt.Horizontal, "Date")
add_mail(model, "Happy New Year!", "Grace K. <grace@software-inc.com>",
- QDateTime(QDate(2006, 12, 31), QTime(17, 3)))
+ QDateTime(QDate(2006, 12, 31), QTime(17, 3)))
add_mail(model, "Radically new concept", "Grace K. <grace@software-inc.com>",
- QDateTime(QDate(2006, 12, 22), QTime(9, 44)))
+ QDateTime(QDate(2006, 12, 22), QTime(9, 44)))
add_mail(model, "Accounts", "pascale@nospam.com",
- QDateTime(QDate(2006, 12, 31), QTime(12, 50)))
+ QDateTime(QDate(2006, 12, 31), QTime(12, 50)))
add_mail(model, "Expenses", "Joe Bloggs <joe@bloggs.com>",
- QDateTime(QDate(2006, 12, 25), QTime(11, 39)))
+ QDateTime(QDate(2006, 12, 25), QTime(11, 39)))
add_mail(model, "Re: Expenses", "Andy <andy@nospam.com>",
- QDateTime(QDate(2007, 1, 2), QTime(16, 5)))
+ QDateTime(QDate(2007, 1, 2), QTime(16, 5)))
add_mail(model, "Re: Accounts", "Joe Bloggs <joe@bloggs.com>",
- QDateTime(QDate(2007, 1, 3), QTime(14, 18)))
+ QDateTime(QDate(2007, 1, 3), QTime(14, 18)))
add_mail(model, "Re: Accounts", "Andy <andy@nospam.com>",
- QDateTime(QDate(2007, 1, 3), QTime(14, 26)))
+ QDateTime(QDate(2007, 1, 3), QTime(14, 26)))
add_mail(model, "Sports", "Linda Smith <linda.smith@nospam.com>",
- QDateTime(QDate(2007, 1, 5), QTime(11, 33)))
+ QDateTime(QDate(2007, 1, 5), QTime(11, 33)))
add_mail(model, "AW: Sports", "Rolf Newschweinstein <rolfn@nospam.com>",
- QDateTime(QDate(2007, 1, 5), QTime(12, 0)))
+ QDateTime(QDate(2007, 1, 5), QTime(12, 0)))
add_mail(model, "RE: Sports", "Petra Schmidt <petras@nospam.com>",
- QDateTime(QDate(2007, 1, 5), QTime(12, 1)))
+ QDateTime(QDate(2007, 1, 5), QTime(12, 1)))
return model
diff --git a/examples/widgets/itemviews/dirview/dirview.py b/examples/widgets/itemviews/dirview/dirview.py
index aa1e62185..d1be6958e 100644
--- a/examples/widgets/itemviews/dirview/dirview.py
+++ b/examples/widgets/itemviews/dirview/dirview.py
@@ -57,4 +57,3 @@ if __name__ == "__main__":
tree.show()
sys.exit(app.exec())
-
diff --git a/examples/widgets/itemviews/editabletreemodel/mainwindow.py b/examples/widgets/itemviews/editabletreemodel/mainwindow.py
index c6abfa568..1489bf28b 100644
--- a/examples/widgets/itemviews/editabletreemodel/mainwindow.py
+++ b/examples/widgets/itemviews/editabletreemodel/mainwindow.py
@@ -52,7 +52,7 @@ class MainWindow(QMainWindow):
self.insert_child_action.setShortcut("Ctrl+N")
self.insert_child_action.triggered.connect(self.insert_child)
help_menu = menubar.addMenu("&Help")
- about_qt_action = help_menu.addAction("About Qt", qApp.aboutQt)
+ about_qt_action = help_menu.addAction("About Qt", qApp.aboutQt) # noqa: F821
about_qt_action.setShortcut("F1")
self.setWindowTitle("Editable Tree Model")
diff --git a/examples/widgets/itemviews/fetchmore/fetchmore.py b/examples/widgets/itemviews/fetchmore/fetchmore.py
index ecee86e38..5150250e0 100644
--- a/examples/widgets/itemviews/fetchmore/fetchmore.py
+++ b/examples/widgets/itemviews/fetchmore/fetchmore.py
@@ -49,7 +49,7 @@ class FileListModel(QAbstractListModel):
if role == Qt.BackgroundRole:
batch = row // BATCH_SIZE
- palette = qApp.palette()
+ palette = qApp.palette() # noqa: F821
return palette.base() if batch % 2 == 0 else palette.alternateBase()
if role == Qt.DecorationRole:
@@ -112,7 +112,7 @@ class Window(QWidget):
self.setWindowTitle("Fetch More Example")
- @Slot(str,int,int,int)
+ @Slot(str, int, int, int)
def update_log(self, path, start, number, total):
native_path = QDir.toNativeSeparators(path)
last = start + number - 1
diff --git a/examples/widgets/itemviews/jsonmodel/jsonmodel.py b/examples/widgets/itemviews/jsonmodel/jsonmodel.py
index c0adfc664..6e614c77f 100644
--- a/examples/widgets/itemviews/jsonmodel/jsonmodel.py
+++ b/examples/widgets/itemviews/jsonmodel/jsonmodel.py
@@ -3,7 +3,7 @@
import json
import sys
-from typing import Any, Iterable, List, Dict, Union
+from typing import Any, List, Dict, Union
from PySide6.QtWidgets import QTreeView, QApplication, QHeaderView
from PySide6.QtCore import QAbstractItemModel, QModelIndex, QObject, Qt, QFileInfo
@@ -182,10 +182,7 @@ class JsonModel(QAbstractItemModel):
item = index.internalPointer()
item.value = str(value)
- if __binding__ in ("PySide", "PyQt4"):
- self.dataChanged.emit(index, index)
- else:
- self.dataChanged.emit(index, index, [Qt.EditRole])
+ self.dataChanged.emit(index, index, [Qt.EditRole])
return True
diff --git a/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py b/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py
index 266b8c1e1..577f0faa5 100644
--- a/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py
+++ b/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py
@@ -10,6 +10,7 @@ from PySide6.QtCore import QModelIndex
"""PySide6 port of the widgets/itemviews/spinboxdelegate from Qt v6.x"""
+
#! [0]
class SpinBoxDelegate(QStyledItemDelegate):
"""A delegate that allows the user to change integer values from the model
@@ -52,7 +53,7 @@ class SpinBoxDelegate(QStyledItemDelegate):
if __name__ == '__main__':
app = QApplication(sys.argv)
- model= QStandardItemModel(4, 2)
+ model = QStandardItemModel(4, 2)
tableView = QTableView()
tableView.setModel(model)
diff --git a/examples/widgets/itemviews/stardelegate/stardelegate.py b/examples/widgets/itemviews/stardelegate/stardelegate.py
index 87bf1ff48..973eb14f6 100644
--- a/examples/widgets/itemviews/stardelegate/stardelegate.py
+++ b/examples/widgets/itemviews/stardelegate/stardelegate.py
@@ -111,15 +111,15 @@ if __name__ == "__main__":
# Create and populate the tableWidget
table_widget = QTableWidget(4, 4)
table_widget.setItemDelegate(StarDelegate())
- table_widget.setEditTriggers(QAbstractItemView.DoubleClicked |
- QAbstractItemView.SelectedClicked)
+ table_widget.setEditTriggers(QAbstractItemView.DoubleClicked
+ | QAbstractItemView.SelectedClicked)
table_widget.setSelectionBehavior(QAbstractItemView.SelectRows)
table_widget.setHorizontalHeaderLabels(["Title", "Genre", "Artist", "Rating"])
- data = [ ["Mass in B-Minor", "Baroque", "J.S. Bach", 5],
- ["Three More Foxes", "Jazz", "Maynard Ferguson", 4],
- ["Sex Bomb", "Pop", "Tom Jones", 3],
- ["Barbie Girl", "Pop", "Aqua", 5] ]
+ data = [["Mass in B-Minor", "Baroque", "J.S. Bach", 5],
+ ["Three More Foxes", "Jazz", "Maynard Ferguson", 4],
+ ["Sex Bomb", "Pop", "Tom Jones", 3],
+ ["Barbie Girl", "Pop", "Aqua", 5]]
for r in range(len(data)):
table_widget.setItem(r, 0, QTableWidgetItem(data[r][0]))
diff --git a/examples/widgets/itemviews/stardelegate/stareditor.py b/examples/widgets/itemviews/stardelegate/stareditor.py
index 1b44164a8..296afa950 100644
--- a/examples/widgets/itemviews/stardelegate/stareditor.py
+++ b/examples/widgets/itemviews/stardelegate/stareditor.py
@@ -55,8 +55,7 @@ class StarEditor(QWidget):
""" Calculate which star the user's mouse cursor is currently
hovering over.
"""
- star = (x / (self.star_rating.sizeHint().width() /
- self.star_rating.MAX_STAR_COUNT)) + 1
+ star = (x / (self.star_rating.sizeHint().width() / self.star_rating.MAX_STAR_COUNT)) + 1
if (star <= 0) or (star > self.star_rating.MAX_STAR_COUNT):
return -1
diff --git a/examples/widgets/itemviews/stardelegate/starrating.py b/examples/widgets/itemviews/stardelegate/starrating.py
index 4d49f7405..28dbacd6f 100644
--- a/examples/widgets/itemviews/stardelegate/starrating.py
+++ b/examples/widgets/itemviews/stardelegate/starrating.py
@@ -23,13 +23,13 @@ class StarRating(object):
self._star_polygon.append(QPointF(1.0, 0.5))
for i in range(1, 5):
self._star_polygon.append(QPointF(0.5 + 0.5 * cos(0.8 * i * pi),
- 0.5 + 0.5 * sin(0.8 * i * pi)))
+ 0.5 + 0.5 * sin(0.8 * i * pi)))
# Create the diamond shape we'll show in the editor
self._diamond_polygon = QPolygonF()
diamond_points = [QPointF(0.4, 0.5), QPointF(0.5, 0.4),
- QPointF(0.6, 0.5), QPointF(0.5, 0.6),
- QPointF(0.4, 0.5)]
+ QPointF(0.6, 0.5), QPointF(0.5, 0.6),
+ QPointF(0.4, 0.5)]
self._diamond_polygon.append(diamond_points)
def sizeHint(self):
diff --git a/examples/widgets/layouts/basiclayouts/basiclayouts.py b/examples/widgets/layouts/basiclayouts/basiclayouts.py
index a2d29e71f..827cb7850 100644
--- a/examples/widgets/layouts/basiclayouts/basiclayouts.py
+++ b/examples/widgets/layouts/basiclayouts/basiclayouts.py
@@ -27,7 +27,7 @@ class Dialog(QDialog):
big_editor = QTextEdit()
big_editor.setPlainText("This widget takes up all the remaining space "
- "in the top-level layout.")
+ "in the top-level layout.")
button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
@@ -75,8 +75,7 @@ class Dialog(QDialog):
layout.addWidget(line_edit, i + 1, 1)
self._small_editor = QTextEdit()
- self._small_editor.setPlainText("This widget takes up about two thirds "
- "of the grid layout.")
+ self._small_editor.setPlainText("This widget takes up about two thirds of the grid layout.")
layout.addWidget(self._small_editor, 0, 2, 4, 1)
diff --git a/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py b/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py
index 4e3791519..c9dfcc730 100644
--- a/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py
+++ b/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py
@@ -74,8 +74,8 @@ class Dialog(QDialog):
def show_help(self):
QMessageBox.information(self, "Dynamic Layouts Help",
- "This example shows how to change layouts "
- "dynamically.")
+ "This example shows how to change layouts "
+ "dynamically.")
def create_rotable_group_box(self):
self._rotable_group_box = QGroupBox("Rotable Widgets")
@@ -102,7 +102,8 @@ class Dialog(QDialog):
buttons_orientation_combo_box = QComboBox()
buttons_orientation_combo_box.addItem("Horizontal", Qt.Horizontal)
buttons_orientation_combo_box.addItem("Vertical", Qt.Vertical)
- buttons_orientation_combo_box.currentIndexChanged[int].connect(self.buttons_orientation_changed)
+ buttons_orientation_combo_box.currentIndexChanged[int].connect(
+ self.buttons_orientation_changed)
self._buttons_orientation_combo_box = buttons_orientation_combo_box
@@ -117,7 +118,8 @@ class Dialog(QDialog):
close_button = self._button_box.addButton(QDialogButtonBox.Close)
help_button = self._button_box.addButton(QDialogButtonBox.Help)
- rotate_widgets_button = self._button_box.addButton("Rotate &Widgets", QDialogButtonBox.ActionRole)
+ rotate_widgets_button = self._button_box.addButton(
+ "Rotate &Widgets", QDialogButtonBox.ActionRole)
rotate_widgets_button.clicked.connect(self.rotate_widgets)
close_button.clicked.connect(self.close)
diff --git a/examples/widgets/linguist/doc/linguist.rst b/examples/widgets/linguist/doc/linguist.rst
new file mode 100644
index 000000000..24a49a617
--- /dev/null
+++ b/examples/widgets/linguist/doc/linguist.rst
@@ -0,0 +1,7 @@
+.. _qt-linguist-example:
+
+Qt Linguist Example
+===================
+
+This example demonstrates the use of Qt Linguist and related tools for translating
+applications as described in :ref:`translations`.
diff --git a/examples/widgets/linguist/linguist.qrc b/examples/widgets/linguist/linguist.qrc
index 2b08ae577..6ca287c20 100644
--- a/examples/widgets/linguist/linguist.qrc
+++ b/examples/widgets/linguist/linguist.qrc
@@ -1,5 +1,5 @@
<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>translations/example_de.qm</file>
+<qresource prefix="translations">
+ <file>example_de.qm</file>
</qresource>
</RCC>
diff --git a/examples/widgets/linguist/main.py b/examples/widgets/linguist/main.py
index 16655432c..e4212e801 100644
--- a/examples/widgets/linguist/main.py
+++ b/examples/widgets/linguist/main.py
@@ -9,7 +9,7 @@ from PySide6.QtWidgets import (QAbstractItemView, QApplication, QListWidget,
QMainWindow)
-import linguist_rc
+import linguist_rc # noqa: F401
class Window(QMainWindow):
@@ -21,7 +21,7 @@ class Window(QMainWindow):
quit_action.triggered.connect(self.close)
help_menu = self.menuBar().addMenu(self.tr("&Help"))
about_qt_action = help_menu.addAction(self.tr("About Qt"))
- about_qt_action.triggered.connect(qApp.aboutQt)
+ about_qt_action.triggered.connect(qApp.aboutQt) # noqa: F821
self._list_widget = QListWidget()
self._list_widget.setSelectionMode(QAbstractItemView.MultiSelection)
diff --git a/examples/widgets/mainwindows/application/application.py b/examples/widgets/mainwindows/application/application.py
index 320c421a6..f69eade2e 100644
--- a/examples/widgets/mainwindows/application/application.py
+++ b/examples/widgets/mainwindows/application/application.py
@@ -11,7 +11,7 @@ from PySide6.QtGui import QAction, QIcon, QKeySequence
from PySide6.QtWidgets import (QApplication, QFileDialog, QMainWindow,
QMessageBox, QTextEdit)
-import application_rc
+import application_rc # noqa: F401
class MainWindow(QMainWindow):
@@ -73,61 +73,64 @@ class MainWindow(QMainWindow):
@Slot()
def about(self):
QMessageBox.about(self, "About Application",
- "The <b>Application</b> example demonstrates how to write "
- "modern GUI applications using Qt, with a menu bar, "
- "toolbars, and a status bar.")
+ "The <b>Application</b> example demonstrates how to write "
+ "modern GUI applications using Qt, with a menu bar, "
+ "toolbars, and a status bar.")
@Slot()
def document_was_modified(self):
self.setWindowModified(self._text_edit.document().isModified())
def create_actions(self):
- icon = QIcon.fromTheme("document-new", QIcon(':/images/new.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentNew, QIcon(':/images/new.png'))
self._new_act = QAction(icon, "&New", self, shortcut=QKeySequence.New,
- statusTip="Create a new file", triggered=self.new_file)
+ statusTip="Create a new file", triggered=self.new_file)
- icon = QIcon.fromTheme("document-open", QIcon(':/images/open.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen, QIcon(':/images/open.png'))
self._open_act = QAction(icon, "&Open...", self,
- shortcut=QKeySequence.Open, statusTip="Open an existing file",
- triggered=self.open)
+ shortcut=QKeySequence.Open, statusTip="Open an existing file",
+ triggered=self.open)
- icon = QIcon.fromTheme("document-save", QIcon(':/images/save.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentSave, QIcon(':/images/save.png'))
self._save_act = QAction(icon, "&Save", self,
- shortcut=QKeySequence.Save,
- statusTip="Save the document to disk", triggered=self.save)
+ shortcut=QKeySequence.Save,
+ statusTip="Save the document to disk", triggered=self.save)
self._save_as_act = QAction("Save &As...", self,
- shortcut=QKeySequence.SaveAs,
- statusTip="Save the document under a new name",
- triggered=self.save_as)
+ shortcut=QKeySequence.SaveAs,
+ statusTip="Save the document under a new name",
+ triggered=self.save_as)
- self._exit_act = QAction("E&xit", self, shortcut="Ctrl+Q",
- statusTip="Exit the application", triggered=self.close)
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.ApplicationExit)
+ self._exit_act = QAction(icon, "E&xit", self, shortcut="Ctrl+Q",
+ statusTip="Exit the application", triggered=self.close)
- icon = QIcon.fromTheme("edit-cut", QIcon(':/images/cut.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCut, QIcon(':/images/cut.png'))
self._cut_act = QAction(icon, "Cu&t", self, shortcut=QKeySequence.Cut,
- statusTip="Cut the current selection's contents to the clipboard",
- triggered=self._text_edit.cut)
+ statusTip="Cut the current selection's contents to the clipboard",
+ triggered=self._text_edit.cut)
- icon = QIcon.fromTheme("edit-copy", QIcon(':/images/copy.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCopy, QIcon(':/images/copy.png'))
self._copy_act = QAction(icon, "&Copy",
- self, shortcut=QKeySequence.Copy,
- statusTip="Copy the current selection's contents to the clipboard",
- triggered=self._text_edit.copy)
+ self, shortcut=QKeySequence.Copy,
+ statusTip="Copy the current selection's contents to the clipboard",
+ triggered=self._text_edit.copy)
- icon = QIcon.fromTheme("edit-paste", QIcon(':/images/paste.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditPaste, QIcon(':/images/paste.png'))
self._paste_act = QAction(icon, "&Paste",
- self, shortcut=QKeySequence.Paste,
- statusTip="Paste the clipboard's contents into the current selection",
- triggered=self._text_edit.paste)
+ self, shortcut=QKeySequence.Paste,
+ statusTip="Paste the clipboard's contents into the current "
+ "selection",
+ triggered=self._text_edit.paste)
- self._about_act = QAction("&About", self,
- statusTip="Show the application's About box",
- triggered=self.about)
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.HelpAbout)
+ self._about_act = QAction(icon, "&About", self,
+ statusTip="Show the application's About box",
+ triggered=self.about)
self._about_qt_act = QAction("About &Qt", self,
- statusTip="Show the Qt library's About box",
- triggered=qApp.aboutQt)
+ statusTip="Show the Qt library's About box",
+ triggered=qApp.aboutQt) # noqa: F821
self._cut_act.setEnabled(False)
self._copy_act.setEnabled(False)
@@ -181,10 +184,9 @@ class MainWindow(QMainWindow):
def maybe_save(self):
if self._text_edit.document().isModified():
ret = QMessageBox.warning(self, "Application",
- "The document has been modified.\nDo you want to save "
- "your changes?",
- QMessageBox.Save | QMessageBox.Discard |
- QMessageBox.Cancel)
+ "The document has been modified.\nDo you want to save "
+ "your changes?",
+ QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel)
if ret == QMessageBox.Save:
return self.save()
elif ret == QMessageBox.Cancel:
@@ -195,8 +197,7 @@ class MainWindow(QMainWindow):
file = QFile(fileName)
if not file.open(QFile.ReadOnly | QFile.Text):
reason = file.errorString()
- QMessageBox.warning(self, "Application",
- f"Cannot read file {fileName}:\n{reason}.")
+ QMessageBox.warning(self, "Application", f"Cannot read file {fileName}:\n{reason}.")
return
inf = QTextStream(file)
diff --git a/examples/widgets/mainwindows/application/application.pyproject b/examples/widgets/mainwindows/application/application.pyproject
index 0e0413982..a9365ed1a 100644
--- a/examples/widgets/mainwindows/application/application.pyproject
+++ b/examples/widgets/mainwindows/application/application.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["application.qrc", "application.py", "application_rc.py"]
+ "files": ["application.qrc", "application.py"]
}
diff --git a/examples/widgets/mainwindows/dockwidgets/dockwidgets.py b/examples/widgets/mainwindows/dockwidgets/dockwidgets.py
index 6d0e95a81..83487ee58 100644
--- a/examples/widgets/mainwindows/dockwidgets/dockwidgets.py
+++ b/examples/widgets/mainwindows/dockwidgets/dockwidgets.py
@@ -2,18 +2,20 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-"""PySide6 port of the widgets/mainwindows/dockwidgets example from Qt v5.x, originating from PyQt"""
+"""PySide6 port of the widgets/mainwindows/dockwidgets example from Qt v5.x,
+ originating from PyQt"""
import sys
from PySide6.QtCore import QDate, QFile, Qt, QTextStream
from PySide6.QtGui import (QAction, QFont, QIcon, QKeySequence,
- QTextCharFormat, QTextCursor, QTextTableFormat)
+ QTextCharFormat, QTextCursor, QTextTableFormat)
from PySide6.QtPrintSupport import QPrintDialog, QPrinter
from PySide6.QtWidgets import (QApplication, QDialog, QDockWidget,
- QFileDialog, QListWidget, QMainWindow, QMessageBox, QTextEdit)
+ QFileDialog, QListWidget, QMainWindow,
+ QMessageBox, QTextEdit)
-import dockwidgets_rc
+import dockwidgets_rc # noqa: F401
class MainWindow(QMainWindow):
@@ -62,8 +64,7 @@ class MainWindow(QMainWindow):
cursor.insertBlock()
cursor.insertText("Some Country")
cursor.setPosition(top_frame.lastPosition())
- cursor.insertText(QDate.currentDate().toString("d MMMM yyyy"),
- text_format)
+ cursor.insertText(QDate.currentDate().toString("d MMMM yyyy"), text_format)
cursor.insertBlock()
cursor.insertBlock()
cursor.insertText("Dear ", text_format)
@@ -103,7 +104,7 @@ class MainWindow(QMainWindow):
if not file.open(QFile.WriteOnly | QFile.Text):
reason = file.errorString()
QMessageBox.warning(self, "Dock Widgets",
- f"Cannot write file {filename}:\n{reason}.")
+ f"Cannot write file {filename}:\n{reason}.")
return
out = QTextStream(file)
@@ -143,8 +144,8 @@ class MainWindow(QMainWindow):
if cursor.isNull():
return
cursor.beginEditBlock()
- cursor.movePosition(QTextCursor.PreviousBlock, QTextCursor.MoveAnchor,
- 2)
+ cursor.movePosition(QTextCursor.PreviousBlock,
+ QTextCursor.MoveAnchor, 2)
cursor.insertBlock()
cursor.insertText(paragraph)
cursor.insertBlock()
@@ -152,43 +153,44 @@ class MainWindow(QMainWindow):
def about(self):
QMessageBox.about(self, "About Dock Widgets",
- "The <b>Dock Widgets</b> example demonstrates how to use "
- "Qt's dock widgets. You can enter your own text, click a "
- "customer to add a customer name and address, and click "
- "standard paragraphs to add them.")
+ "The <b>Dock Widgets</b> example demonstrates how to use "
+ "Qt's dock widgets. You can enter your own text, click a "
+ "customer to add a customer name and address, and click "
+ "standard paragraphs to add them.")
def create_actions(self):
icon = QIcon.fromTheme('document-new', QIcon(':/images/new.png'))
self._new_letter_act = QAction(icon, "&New Letter",
- self, shortcut=QKeySequence.New,
- statusTip="Create a new form letter", triggered=self.new_letter)
+ self, shortcut=QKeySequence.New,
+ statusTip="Create a new form letter",
+ triggered=self.new_letter)
icon = QIcon.fromTheme('document-save', QIcon(':/images/save.png'))
self._save_act = QAction(icon, "&Save...", self,
- shortcut=QKeySequence.Save,
- statusTip="Save the current form letter", triggered=self.save)
+ shortcut=QKeySequence.Save,
+ statusTip="Save the current form letter", triggered=self.save)
icon = QIcon.fromTheme('document-print', QIcon(':/images/print.png'))
self._print_act = QAction(icon, "&Print...", self,
- shortcut=QKeySequence.Print,
- statusTip="Print the current form letter",
- triggered=self.print_)
+ shortcut=QKeySequence.Print,
+ statusTip="Print the current form letter",
+ triggered=self.print_)
icon = QIcon.fromTheme('edit-undo', QIcon(':/images/undo.png'))
self._undo_act = QAction(icon, "&Undo", self,
- shortcut=QKeySequence.Undo,
- statusTip="Undo the last editing action", triggered=self.undo)
+ shortcut=QKeySequence.Undo,
+ statusTip="Undo the last editing action", triggered=self.undo)
self._quit_act = QAction("&Quit", self, shortcut="Ctrl+Q",
- statusTip="Quit the application", triggered=self.close)
+ statusTip="Quit the application", triggered=self.close)
self._about_act = QAction("&About", self,
- statusTip="Show the application's About box",
- triggered=self.about)
+ statusTip="Show the application's About box",
+ triggered=self.about)
self._about_qt_act = QAction("About &Qt", self,
- statusTip="Show the Qt library's About box",
- triggered=QApplication.instance().aboutQt)
+ statusTip="Show the Qt library's About box",
+ triggered=QApplication.instance().aboutQt)
def create_menus(self):
self._file_menu = self.menuBar().addMenu("&File")
@@ -241,21 +243,21 @@ class MainWindow(QMainWindow):
self._paragraphs_list.addItems((
"Thank you for your payment which we have received today.",
"Your order has been dispatched and should be with you within "
- "28 days.",
+ "28 days.",
"We have dispatched those items that were in stock. The rest of "
- "your order will be dispatched once all the remaining items "
- "have arrived at our warehouse. No additional shipping "
- "charges will be made.",
+ "your order will be dispatched once all the remaining items "
+ "have arrived at our warehouse. No additional shipping "
+ "charges will be made.",
"You made a small overpayment (less than $5) which we will keep "
- "on account for you, or return at your request.",
+ "on account for you, or return at your request.",
"You made a small underpayment (less than $1), but we have sent "
- "your order anyway. We'll add this underpayment to your next "
- "bill.",
+ "your order anyway. We'll add this underpayment to your next "
+ "bill.",
"Unfortunately you did not send enough money. Please remit an "
- "additional $. Your order will be dispatched as soon as the "
- "complete amount has been received.",
+ "additional $. Your order will be dispatched as soon as the "
+ "complete amount has been received.",
"You made an overpayment (more than $5). Do you wish to buy more "
- "items, or should we return the excess to you?"))
+ "items, or should we return the excess to you?"))
dock.setWidget(self._paragraphs_list)
self.addDockWidget(Qt.RightDockWidgetArea, dock)
self._view_menu.addAction(dock.toggleViewAction())
diff --git a/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject b/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject
index 2df11468e..9abbf7485 100644
--- a/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject
+++ b/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["dockwidgets.qrc", "dockwidgets.py", "dockwidgets_rc.py"]
+ "files": ["dockwidgets.qrc", "dockwidgets.py"]
}
diff --git a/examples/widgets/mainwindows/mdi/images/new.png b/examples/widgets/mainwindows/mdi/images/new.png
deleted file mode 100644
index 12131b010..000000000
--- a/examples/widgets/mainwindows/mdi/images/new.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/mainwindows/mdi/images/save.png b/examples/widgets/mainwindows/mdi/images/save.png
deleted file mode 100644
index daba865fa..000000000
--- a/examples/widgets/mainwindows/mdi/images/save.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/mainwindows/mdi/mdi.py b/examples/widgets/mainwindows/mdi/mdi.py
index 597479981..c1fa01b8c 100644
--- a/examples/widgets/mainwindows/mdi/mdi.py
+++ b/examples/widgets/mainwindows/mdi/mdi.py
@@ -9,12 +9,12 @@ from functools import partial
import sys
from PySide6.QtCore import (QByteArray, QFile, QFileInfo, QSettings,
- QSaveFile, QTextStream, Qt, Slot)
+ QSaveFile, QTextStream, Qt, Slot)
from PySide6.QtGui import QAction, QIcon, QKeySequence
from PySide6.QtWidgets import (QApplication, QFileDialog, QMainWindow,
- QMdiArea, QMessageBox, QTextEdit)
+ QMdiArea, QMessageBox, QTextEdit)
-import mdi_rc
+import PySide6.QtExampleIcons # noqa: F401
class MdiChild(QTextEdit):
@@ -106,7 +106,7 @@ class MdiChild(QTextEdit):
f = self.user_friendly_current_file()
message = f"'{f}' has been modified.\nDo you want to save your changes?"
ret = QMessageBox.warning(self, "MDI", message,
- QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel)
+ QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel)
if ret == QMessageBox.Save:
return self.save()
@@ -208,8 +208,8 @@ class MainWindow(QMainWindow):
@Slot()
def about(self):
QMessageBox.about(self, "About MDI",
- "The <b>MDI</b> example demonstrates how to write multiple "
- "document interface applications using Qt.")
+ "The <b>MDI</b> example demonstrates how to write multiple "
+ "document interface applications using Qt.")
@Slot()
def update_menus(self):
@@ -225,8 +225,8 @@ class MainWindow(QMainWindow):
self._previous_act.setEnabled(has_mdi_child)
self._separator_act.setVisible(has_mdi_child)
- has_selection = (self.active_mdi_child() is not None and
- self.active_mdi_child().textCursor().hasSelection())
+ has_selection = (self.active_mdi_child() is not None
+ and self.active_mdi_child().textCursor().hasSelection())
self._cut_act.setEnabled(has_selection)
self._copy_act.setEnabled(has_selection)
@@ -271,82 +271,85 @@ class MainWindow(QMainWindow):
def create_actions(self):
- icon = QIcon.fromTheme("document-new", QIcon(':/images/new.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentNew)
self._new_act = QAction(icon, "&New", self,
- shortcut=QKeySequence.New, statusTip="Create a new file",
- triggered=self.new_file)
+ shortcut=QKeySequence.New, statusTip="Create a new file",
+ triggered=self.new_file)
- icon = QIcon.fromTheme("document-open", QIcon(':/images/open.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen)
self._open_act = QAction(icon, "&Open...", self,
- shortcut=QKeySequence.Open, statusTip="Open an existing file",
- triggered=self.open)
+ shortcut=QKeySequence.Open, statusTip="Open an existing file",
+ triggered=self.open)
- icon = QIcon.fromTheme("document-save", QIcon(':/images/save.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentSave)
self._save_act = QAction(icon, "&Save", self,
- shortcut=QKeySequence.Save,
- statusTip="Save the document to disk", triggered=self.save)
+ shortcut=QKeySequence.Save,
+ statusTip="Save the document to disk", triggered=self.save)
self._save_as_act = QAction("Save &As...", self,
- shortcut=QKeySequence.SaveAs,
- statusTip="Save the document under a new name",
- triggered=self.save_as)
+ shortcut=QKeySequence.SaveAs,
+ statusTip="Save the document under a new name",
+ triggered=self.save_as)
- self._exit_act = QAction("E&xit", self, shortcut=QKeySequence.Quit,
- statusTip="Exit the application",
- triggered=QApplication.instance().closeAllWindows)
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.ApplicationExit)
+ self._exit_act = QAction(icon, "E&xit", self, shortcut=QKeySequence.Quit,
+ statusTip="Exit the application",
+ triggered=QApplication.instance().closeAllWindows)
- icon = QIcon.fromTheme("edit-cut", QIcon(':/images/cut.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCut)
self._cut_act = QAction(icon, "Cu&t", self,
- shortcut=QKeySequence.Cut,
- statusTip="Cut the current selection's contents to the clipboard",
- triggered=self.cut)
+ shortcut=QKeySequence.Cut,
+ statusTip="Cut the current selection's contents to the clipboard",
+ triggered=self.cut)
- icon = QIcon.fromTheme("edit-copy", QIcon(':/images/copy.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCopy)
self._copy_act = QAction(icon, "&Copy", self,
- shortcut=QKeySequence.Copy,
- statusTip="Copy the current selection's contents to the clipboard",
- triggered=self.copy)
+ shortcut=QKeySequence.Copy,
+ statusTip="Copy the current selection's contents to the clipboard",
+ triggered=self.copy)
- icon = QIcon.fromTheme("edit-paste", QIcon(':/images/paste.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditPaste)
self._paste_act = QAction(icon, "&Paste", self,
- shortcut=QKeySequence.Paste,
- statusTip="Paste the clipboard's contents into the current selection",
- triggered=self.paste)
+ shortcut=QKeySequence.Paste,
+ statusTip="Paste the clipboard's contents into the current "
+ "selection",
+ triggered=self.paste)
self._close_act = QAction("Cl&ose", self,
- statusTip="Close the active window",
- triggered=self._mdi_area.closeActiveSubWindow)
+ statusTip="Close the active window",
+ triggered=self._mdi_area.closeActiveSubWindow)
self._close_all_act = QAction("Close &All", self,
- statusTip="Close all the windows",
- triggered=self._mdi_area.closeAllSubWindows)
+ statusTip="Close all the windows",
+ triggered=self._mdi_area.closeAllSubWindows)
self._tile_act = QAction("&Tile", self, statusTip="Tile the windows",
- triggered=self._mdi_area.tileSubWindows)
+ triggered=self._mdi_area.tileSubWindows)
self._cascade_act = QAction("&Cascade", self,
- statusTip="Cascade the windows",
- triggered=self._mdi_area.cascadeSubWindows)
+ statusTip="Cascade the windows",
+ triggered=self._mdi_area.cascadeSubWindows)
self._next_act = QAction("Ne&xt", self, shortcut=QKeySequence.NextChild,
- statusTip="Move the focus to the next window",
- triggered=self._mdi_area.activateNextSubWindow)
+ statusTip="Move the focus to the next window",
+ triggered=self._mdi_area.activateNextSubWindow)
self._previous_act = QAction("Pre&vious", self,
- shortcut=QKeySequence.PreviousChild,
- statusTip="Move the focus to the previous window",
- triggered=self._mdi_area.activatePreviousSubWindow)
+ shortcut=QKeySequence.PreviousChild,
+ statusTip="Move the focus to the previous window",
+ triggered=self._mdi_area.activatePreviousSubWindow)
self._separator_act = QAction(self)
self._separator_act.setSeparator(True)
- self._about_act = QAction("&About", self,
- statusTip="Show the application's About box",
- triggered=self.about)
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.HelpAbout)
+ self._about_act = QAction(icon, "&About", self,
+ statusTip="Show the application's About box",
+ triggered=self.about)
self._about_qt_act = QAction("About &Qt", self,
- statusTip="Show the Qt library's About box",
- triggered=QApplication.instance().aboutQt)
+ statusTip="Show the Qt library's About box",
+ triggered=QApplication.instance().aboutQt)
def create_menus(self):
self._file_menu = self.menuBar().addMenu("&File")
@@ -432,6 +435,11 @@ if __name__ == '__main__':
options = argument_parser.parse_args()
app = QApplication(sys.argv)
+
+ icon_paths = QIcon.themeSearchPaths()
+ QIcon.setThemeSearchPaths(icon_paths + [":/qt-project.org/icons"])
+ QIcon.setFallbackThemeName("example_icons")
+
main_win = MainWindow()
for f in options.files:
main_win.load(f)
diff --git a/examples/widgets/mainwindows/mdi/mdi.pyproject b/examples/widgets/mainwindows/mdi/mdi.pyproject
index 7df26fd77..0272873a7 100644
--- a/examples/widgets/mainwindows/mdi/mdi.pyproject
+++ b/examples/widgets/mainwindows/mdi/mdi.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["mdi_rc.py", "mdi.py", "mdi.qrc"]
+ "files": ["mdi.py"]
}
diff --git a/examples/widgets/mainwindows/mdi/mdi.qrc b/examples/widgets/mainwindows/mdi/mdi.qrc
deleted file mode 100644
index 0a776fab4..000000000
--- a/examples/widgets/mainwindows/mdi/mdi.qrc
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>images/copy.png</file>
- <file>images/cut.png</file>
- <file>images/new.png</file>
- <file>images/open.png</file>
- <file>images/paste.png</file>
- <file>images/save.png</file>
-</qresource>
-</RCC>
diff --git a/examples/widgets/mainwindows/mdi/mdi_rc.py b/examples/widgets/mainwindows/mdi/mdi_rc.py
deleted file mode 100644
index bc8336765..000000000
--- a/examples/widgets/mainwindows/mdi/mdi_rc.py
+++ /dev/null
@@ -1,608 +0,0 @@
-# Resource object code (Python 3)
-# Created by: object code
-# Created by: The Resource Compiler for Qt version 6.2.2
-# WARNING! All changes made in this file will be lost!
-
-from PySide6 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x08\x19\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x07\xabIDATX\xc3\xad\
-W[P\x93g\x1a\xf6\xca\xce\xec\xcc\xf6b/\xbc\xd9\
-\xe9\xce\xecn\xbd\xda\xd9\x9b\xb5\xce\xba;{\xb0\xad\xcc\
-z\xb1\xce\xce:\xb3vTpu\xdb\xe2\x81\xd6\xb6T\
-\x04\xbb\xa5 m\xc1\x82\x06\x08\x07QB\x80\x80\x80\x02\
-!\x81\x10\x92@H\x10s$!gr\x80\x04B \
-\x9c\x09G\xb5Tx\xf6\xfb~\x13\x160X\x8b}g\
-\x9e\xf9/\x92\xfc\xcf\xfb>\xcf\xfb\xbe\xdf\x97]\x00v\
-\xfd\x98 \xf1\x0b\x82\x14\x02\x03\xc1u\x82\x03\xcf\xfd\xfe\
-\x8fH\xbc\x9b \xe1W\xaf\xef\xb5*\x8c\xd6e\xdb\x02\
-`\x19\x1e[\x09'\xf13\xfa\x19\x81\x22\xfc\xdc>v\
-H~\x8a\xa0\xb9\xb6Y\x1c2\xcf\xadB9\xfe\x1dD\
-\xf6Q\xd8\xc7\xe6\xe8\x87\x86={\xf6XSR\xae,\
-\xca::\x10N\xe2\xe5I\xc3\xc41\x04\xb7>I\xf9\
-,`\x9b]YSM\x03M\xb6\x114\xeb\xfb 1\
-y`\x19\x9d\xc5\xbb\xef\xbe?\xc5\xab\xbe\x83\xf1\x89)\
-LO\xcf\xae\x92\xef\xd7\xbct\x02\x11\x9f\x0f\xbe\x1d\xe3\
-\xb2\x04CO\xb43@\x8b{\x06\xcd=.4\xeb\xec\
-\xa8W\xf6 \x87S\x852^5C\xbc\xb0\xf4\x90\x81\
-\xc1`\x5c&\xbfK|\xe1\x04H\x1c$8A\xfd\xdd\
-\xeas'\xf1\xb9'\x04H\x87\x97\xc1\xd7\xbb \x22U\
-7\xdc7\xa2\xb8N\x88,V>\xccV\xdb:q\x04\
-,\x16k,\xfc\xce\xe7'\x10\x916\x93\x95?F}\
-\xa5\xfe\x12\xc4o\xf4Y1\xb6\x02~\xef Z{\x9c\
-\xe0?0\xa1L(CF\x0e\x1b\xb2\x0e\xf9&\xd2\xf9\
-\xc5e\xcc-,!4\xbf\x88\xbd{\xf7Z\xc9;~\
-\xbam\x02$~C\x90F=5\x13iu\xb3\x80\xd2\
-?\x0f\xcb\xc4\xe2\x9aP\xa1Z\xb4l\xf1Y\xa0\xb6\xa0\
-\xa6]\x8d/\xb2sq\xb7\x9e\xff\x0c1%\x9d\x09\xcd\
-cbj\x06\x83C\x81'\xe4\xdd\xbc-\xd3\xb0;\x92\
-\x033&\xd4S\xb5\xd3\xfbXO\x88\xc5\x03!\x88,\
-CP\xbaF\xd0\xed\x09B\xe5\x9bB\x9bs\xfc\xa9\xcf\
-Z\x1b\xee*t\xc8\xbc\xc9E\x09\xa7l\x93\xcf\x9b\x88\
-'\xa7\x11\x18\x1d\xc3\x80o\x08\xa2\xd6\xd6%\xc2Q\xdb\
-(\x12\x87\xc6\x1f\xaf\x82/b\x94M\x89$\x90\x22\xea\
-R-\x9aB\xab\xe8\x18y\x04\xa1\xc5\xcf\x10St\xf6\
-\x0d\xa3\xd3\xe1\x87\xd4<\x80\x16\xbd\x03\x0d]\x06\x14\xd5\
-\x0a\x90\x91\x95\x0d/y\xf1\xc6\xaa\xa9\xd4\xb3s\x0bL\
-\xc5\x94\xd8\xdd\xef\x85\xc9b\x05\xb7\xbc\x12\xa5\xe5\x95K\
-\x13\xf3\xcb\xab#\x0f\x017\xd9\x11\xe6\xd9\x15\x84\x97\x15\
-\x13\x06\xcb<\xd0h\xf2\xa3\xdd\xee_'\x96;\x86 \
-\xb3x\xd7}\xe6\x08\xa4\xf8<3\x1b*\x8d6\xaa\xdc\
-S3!\x8c\x8e\x8d3\x15\xd3&\xe47\x09\xf1\xc1\xc5\
-\x8fQs\xaf\x01\xbee`\xfc\x11\xa0#\x13#\xf2\xce\
-\xa1\xbe]\xb9\xb8Q\x01\x83\x81ttM\xa7\x1e\x0ag\
-\x80\xa9\xb8\xdd\xea\x83\xd8\xe8B\x93\xca\xcc\xf8|\xe5\xcb\
-,\x88\xda$Q\x89\xa7g\xe7\x18\x1b\x86\x86G`w\
-8I\x82:$|\xf8!\xae\xb3\x0b\xe1\x99\x5c\x80o\
-\x09\xd0\x90\xde\xe1\x0f,\x81\xab\x1f\xc4}\xef\x04\xdd\x07\
-\x1da\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6!H\xcc\xfdO\
-}\xee\xd4\x22\x9dU\x84\xaa\x9a\xbaM>G\xe4\x8e\xf8\
-<<\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2b\x9c~/\
-\x1e=\x03\x01\xf4/\x02\x83\x84\xbc\xc5\xff-\xee:C\
-(Q\x91\xf7\xf6\x05\xf1N\xdc\xbf}\x843i\xe3 \
-\x18\xf43\xab\xe0\xc9Th58\xd1\xd8\xdd\x0b\x9eX\
-\x89\xac\x5c\xf63>G\xaa\x9e\x9c\x9ee\xe4\xee\xf7\x0e\
-\xa2\xd7lAC\x03\x1f'b\xe3 \xe9\xd6\xc0E\xcf\
-\x01R\x90$\xb8\x86\xb2\x9e\x00n\xb4\xdbP\xd1\x1bD\
-\x85\xce\x8bJ~\x0bm\xbe\x9b['\xd1\xa0\x99\xf8\x16\
-e\x22\x05\xee)\xf4(\x13\xc8\x90x5\x0b\x1a\xad>\
-\xaa\xdcc\x13\x93\xf0\x0d\x0d\xc3f\xef\x83\xb4]\x8e\xc4\
-K\x97\x90\xc3\xca\xc3\xd4c\xc0NzI1N\xfa\x89\
-\x94\x7f[;\x84|\x85\x13%j\x1fJ\xd5\x03\xe8\xf2\
-0\xa3(\x22\xf8\xf93\x09t\x8f.\xa1\xa8\xbe\x15\xa5\
-|\x09\xb2J*\xf0\xcf\xe3qQ\xe5\xf6\x07F\xd1\xe7\
-\xf2@\xab7 \xfdj\x06\x92\xbfH\x83\xcd7\x02'\
-\xa9\xda@\x1aL\xe0{\x88R\x9d\x1fE\xdd\xfd\x0cq\
-A\x97\x1b\xc5\xdd\x1e\x88\x9cA\xfc\xf9\xcd\xb7]\x84\xeb\
-l\xb4C\xd0(\xf7N#\xa7\xfc\x1e\xb2K\xab\xf1Q\
-\xeaWH\xfeo\xea\xfaXQ\xb9G\x82\xe3\xf0\x0c\xf8\
-`4\x99Q\xc9\xab\xc2\xfbg\xcfA\xfe@\x03?\xe9\
-n\xb2\x8d\x19\xb9oi\x06\x19\xd2\x9b*/r\xe5\x0e\
-\xe4u\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca)\xc2S\
-\xb8\xdd)\xdc+v\x04\x90Q\xc8\xc5\x95ky8\x11\
-\x9f\x80\x9b\xb7n3c\x15\x91\xdbjs@\x22m\xc7\
-\x85\x84\x0fPt\xbb\x0c\xf3+\x80\x9f4X\xf7$ \
-\x1c|\x84J\xd3\x188\xfaa\x86\x9cV\xfdU\xb3\x1e\
-\xac\x0e;\xb8:\x1f\xd9!\x1ez/\xe0\x13\xbc\xba]\
-\x02&\xbe\xc1\x83\x94o\xd88\x9f\x9c\x8a\x03\x7f=\x04\
-c\xaf\x99\xe9n*\xb7F\xd7\x83\xa4\xcb\xc9H\xff:\
-\x8b\x8c\xd5<S\xb5q\xf6\xa9\xdc5\xf6i\x5c\x97Y\
-\x19\xd9\xbfn!\xa7\xa0\xd4\x82t\xbe\x1aW\x9b4`\
-\xc9\xcc\x10\xbb\x82\xf8\xe5\xaf_\xa7g\xc0;\xe1u\x1f\
-5\xcc5\xddf|\x94\x96\x85\xb8s\x17\xf1\x97C1\
-L\xd5t\x99\xf0\xaa\xaaq\xfa\xf4\x19h\xcc\x0e\x8c\x92\
--6\x14\x1e\xabZ\xc7\x0cx\xe6qp\x0d#L\xa3\
-e\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6^\x94t9\xd0f\xf7\
-\xaf\x1e=\x11KG.o\xc3y\x135,\x5c\x99\x1a\
-\xf1\x97>\xc7\xd1\xd83\xf881\x09\x86^\x13\x1a\x9b\
-\x04\xf8\xdd\x1b\xfbQO\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\
-\x93`+]\x0c9\xf5\xbc\xf0\xbeg\xbd\xea\xcc\x16=\
-JU\x1e\x08m\x01\x94\xd4\xf1C\xe1eS@\xf0\xca\
-\xf7%`+nj\xc7\xa9\x84D\xc4\x1c9\x8a\xdc|\
-6ZZ\xc58\x14\x13\x83/95\xc8\x14j\x98\xe6\
-\xa2\xd5\xd2'\xf5\x9azL\x13\xa1Id\xb7\x99\x90\xdb\
-nF\xb9\xda\x8d\x06\xa5v9,9=\xf9N\x13\xec\
-\xd9r\xd4G\x0d;\xabF\x88c\xff9\x8f\xdf\xee\xfb\
-=\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17p\xa3\xad\x07\x19\
-\xc4OJ\x14\xe9n\xbaX\xa8\xef,\xfa\x94\x98P(\
-\xb7@\xe9\x0e<\xf9W\xec)*w-\xc1g\x04\xfb\
-\xb6\xb9\xe4D\x8d\xbe\xcc\xb2Z\xfc\xe3\xe4\x19\x1c<\xf4\
-7\xb0r\xf3\xb0\xef\xc0\x1fP \xd1!\x89'e*\
-\xa6K\x85>\xbf!\xd5F\xe4.\x90[!\xb0\x0c\xae\
-\xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87o<\xaf<\xe7\x96\x15\
-5\x9ciE\xe5\xf8\xfb\xb1X\x1c?\x19\x877\xf6\xef\
-\xc7\x8d:\x11\x92\xab\xa4\x0c!\xedp\xea5U!\x8b\
-4[\xc9\x037*4n\xd4I:\x17\xc3rs\x08\
-\x8em\x95\xfb\x87$\xe0Jesp\xe4\xf8)\x1c>\
-|\x98\x8cc.2\x05*\x5c\x22\xd5\xd3]~M\xdc\
-\x0b6\xe9tv\xa7\x1dw\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\
-\x1a\x95\xfb\x22\xbdI\xfd\x80\x0bm\xf4\x042JxL\
-\x0f\x9cKI\xc3\xb5\xa6.|\xc2me6Y\xf1\x83\
-\x01\x5c\x97\x9a\xc1Q{ \xf3\x04\xd7\xce%&\x056\
-\xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce^NE\x81\
-X\x85x\xf6]\x5c\xa9U\x90\xaa\xfb\xc0\x96\xdbP\xad\
-u\xe3\xaeTA/\x10\xca\x0dr\xbf\xba\xd3j\xa3\x05\
-\xb7\xa2Q\xf8\x1d\xafC\x8dO\xb9-\x88\xcb\xe6\xe1\x9a\
-H\x8f\xaa\x1e/\x9a5\xe6\xc7\x7fz\xf3-Wx\xac\
-\xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5cu\x1f\xde\xcb\
-\xafE\xb9v\x002g`\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\
-\xd2\xa9\xdc;\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9dP\
-\x0b9\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3/\x22\xf7\x0e\
-\xff\xdam\x8a\xdda\x99\xd5\x1b\xb6\xd8k\xbb^2\xbe\
-/\x89\xff\x01f\xb9_\xfc\x11\x80=\xcf\x00\x00\x00\x00\
-IEND\xaeB`\x82\
-\x00\x00\x03T\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x02\xe6IDATX\xc3\xd5\
-\x97\xcdN\x13a\x14\x86\xeb5\x94\x95{q\xe1\xd2\xc4\
-\xe0\x05\xb8\xe2\x0e\x5c\xb8\xf4\x02\x5c\xb10\xea\x05\x18\x96\
-&bX\xb8\xb0\x91X \xd1\x9d\xbf\x89\xa4\x14\xb1R\
-\xa4HE\x94\xfe\xd0\x02C\xff\xa6\x9d\x19\xa6e\x80\xe3\
-y{\xfa\x85QJ\x82\xc9!\x86I\xde\x9c3\xa7\xf3\
-\xcd\xfb\x9c\xf3M\x9bN\x84\x88\x22\xffS\x91s\x01\xc0\
-\xc7\xd5\x90n\xff\xa5\xfb\xac\xc7==d\x0d\xa9\x02\xf0\
-12<<\xbcj4::\xba\x19V<\x1e\xaf&\
-\x93\xc9V:\x9dv\x13\x89Dk`` \xcdkn\
-h\x02\xa48\xd2\xe1\xe1q\x99\xba\xef\xb7\xc9\xb2,\xda\
-\xdf\xdf'\x86\xf1x\xcd\x18\xeb\x8a\x1a@?\xf3\xb0\x1c\
-\xc7\xa5Lf\xb9\x0b\x14\x04\x01\xc5b\xb1:\xaf{p\
-\x1a\x88S\x01\x1c\x1c\x10ww\xb2l\xdb\xa1\xf9\xf9\xcf\
-d\x0e\xd7u\xe9\xf9\xc4D\x17B\x05\x00&{\xc1\xc9\
-\xaa7\x1cJ\xce\xcdS\xf8p]\x0f\x8b\x17T\x00\x82\
-\x10@gO\x14\xce\xed\xa6G\x1fgf\xe9\xf5\x9b\xb7\
-\x14\x9f\x9c\xa4\xa9\xa9iz\xf7\xfe\x03E\xa3\xd1e^\
-\x7fA\x05\xc0\xef\x10\xed\xb6%\x86\x85\x9a\xe3\x05\x94]\
-\xcd\xd1\xe4\xf4+z2\xfe\x94\x9e\xc5^\xd0Lb\x0e\
-\x8b\x17U\x00\xda\x81\x18\xf5\x13 <\xff\x90j\xcd6\
-\x157\xab\x94/nS\x89c\x8d\xb7\x85\xd7~Q\x01\
-\xf0y\xcc\xcd]\x1e\xb5\xc7{\xdb\xee\x9f;\xbe\xe4\x88\
-]\xb8\xbd\xee\xe2\x94\xca3\xe0u\xe4\xc6uWb\xd8\
-\x109\xea\xe63D\xd4\x01\xa7\x06\xe0\xf4:\xad9\x22\
-\x98\x98hr\x80\x98kPS\x9d\x00\x00*-\xb91\
-\xe2NS\x8c\x10\x0d\x04\xf2m\xfb(\xb6|E\x00\x9b\
-;\xdbj\xfci\x8e<l\x88\x1a\xae9\x13\x80:\x8f\
-\xb7T#*\xd7\xc5\x04\x06\x06\x005(\x9c\x17\xab\xbc\
-%\xbb\xca\x13\xc0Ma\x0e\x15*rn\xcc~Z\x02\
-hj\xdd\xad\xf1\x94'\x00S\xdc\x1cqm[@`\
-\x9a\xab\x1cu\x9e\xeb\x81A\x15G\x11\xc0j\x891\x0c\
-\xd6w\x04 \x0cd&b\xb6iu\x8b\xa8\xaa\x09P\
-\xb6\xc5\xbc\xd0\x03\xf8\xbe)c\x87)`\x0c\x18\x84\x1c\
-\x00[ME\x00t\x03S\x98\xad\x94\xc5\x1c\xe7F\xe6\
-\x1c\x00\xc8q]\xa9\xa1\x08\x80\xfd\xfcV\x12s3\x01\
-\x085\x18B\xe8\xda|\x8e)\xa8N\x00[\x00\x03\xc8\
-\x98g6\x04\x002\xe6\x85\xde\xf8\x17\x0b\xfc,\xd8\x8a\
-\x00\x18g:O\xb4T\x14#\x98\x02\x00\x02\x0c>\xfb\
-\xc5S(\xf0C\xb8fI\xf7k\xf9R\x87\xd7\xbeT\
-\x01\xc8U\x8f\xbaN\xadK\x0e\x90\xaf\x85\xde\xb7\xc2\x92\
-=O\xa6\xb3\xde\xa3\xb1q\xeb\xda\xd0\xf5\x15\x98\xb3n\
-\xa9\x00l4\xa4k\x18\xff\xe0\x11\x7fZ\x17S\xd4\x13\
-\x0bYo\xe4\xee\xbd\xe2\xa5\xc1\xcbK|m\x8cu\x87\
-5\xa8\xfa\xb7\x1c\xdde\xd9<\x8f\x1f\x19\xfe\x9e\xcf\x1e\
-7\xbd\xc9\xbax&oF\x00h\xf2\xff\x81\x99\x94\x9e\
-\xe9?\xbf\x19\x01B\xd3\xf4\xfc\xbd\x9c\x9e\xa5~\x03Q\
-l%\xa1\x92\x95\x0aw\x00\x00\x00\x00IEND\xae\
-B`\x82\
-\x00\x00\x05:\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x04\xccIDATX\xc3\xb5\
-\x97]L[e\x1c\xc6wo\xbc\xd9\xe5\x12I q\
-\xd7&\xe3N\x13\xb8p\xd1\x85D\xbdP\xe3\x10\x18\xe5\
-+.&J\x04'\x86\xaa\x8b\x99\xe0\xd0\xa2l\x19\x86\
-9\x17\xdc\x1a\x16\x98\x80@l\xa6C\xca +\x83\x1e\
-(\xcc\xda\xd1\x96\xd2\xd2J{\xfa\x01\xa5\xd0\xef\x16\x1e\
-\xdf\xff\xdb\x1d\xc7\xcc\x04*\x87\x93<9o!\x9c\xe7\
-\xf7<\xefG\x0f\x87\x00\x1c\xcaF\xcf\xbd\xfa\xe9\xbbL\
-Z&a\x0fj`\xca\xd9\xe9y\xd9\x9a?]P\xf2\
-\xa5\xc1\xe9\x8f\xa7W\xc3@0\x02\x84\xa2\x19\xad\xc72\
-\x8a'\x81X\x22s\xbfyk\xdaK\x10r\x02\x1c{\
-\xe7\xac\xda\x1c\xd8\xc8\x98\x12@\x84\x99\x85\xe3\x19\x911\
-)\x1aKa%\x94D8\x9aBs\x87\xc6\xbe\x13\xc4\
-\xff\x02\x90\x12\x93y$\xf1\xc8X\x92\xcf\x1f\x84]\x8c\
-\xc2\xe5\x09\x22\x12K\xa3\xf4\xc3\xefM4uY\x01\xb0\
-\xeb\xd86\xd5\x90\x9e:\xfc\xcc\xb9\xe7_.\x11?V\
-\x9eEEU\x0d*\x99\xde\xaf\xad\xc3\x9d\xb1\x89\xc7\x00\
-\xac\xb6%\xfc\xb9\xe8\x87k\x15X\xf6\x04\x10\x08\xc6\xd2\
-\xaf\x9c\xbep\x9fA\x1c\xd9\x15\x80]\x87\x99\x1a\x8a\x8a\
-\x8a\xcc\x92Z[[\xdd\xa4\xafU\xad\xfe\xafT\xdf\xa6\
-\x06\x06\x06195\x85\xd9\xb99\xe8&&PPP\
-\x80!\xcdo|\xdeI\xa6\xf9\x05\xcc\x98\x5c\x1c\xc0\xe1\
-OA\xf4\x85\xf0C\xaf\xce\xcd\x00j\xf6\x02PCf\
-\xd8\xe5\x8a\xc7\xe3\xf0z\xbdH\xa7\xd3\x98\x9c\x9cDe\
-e5fg\x8d\xbc\x81\x07f\x1bt\xd3\x16\x0e@2\
--x\xf0\xdd\x8dQ\x8f\xac\x00\xe1p\x18F\xa3\x91\x8f\
-S\xa9\x14~\xea\xedE\xe3'\x9fa\x86A8\x96\xdc\
-Pwu\xe3LC#\xce5\x9d\xc7\xed\x91q\x5c\xbc\
->,/\xc0\xc6\xc6\x06\xf4z\xfdc@}}\xfdP\
-2\x88\xd0F\x1cf\x9b\x0b\x82\xc1\x88\xa9\x19\x13\xac\x0e\
-\x11\x97\xbadn\x80\x00\xa6\xd8:\xd8~E\x22\x11\x94\
-+*0\xae\x13@\xe7\x04mW\xda\xaa4\xbe|S\
-\xe65@f:\x9d\x0e\xc3\xc3\xc3\xe8e\xf5\xf7\xf7\xf7\
-C\xab\xd5\xa2\xaa\xba\x06cw\xf5\x90\x0e*w\x90\xed\
-\x04\xb6\x0e\xda\xbbe\x06\xa0y\xb7\xdb\xed\x18\x1a\x1aB\
-gg'zzz8PIi\x19ni\xf5\x10\xd7\
-\x00o\x08\xb0\xf9\x00g\x00\xb8\xd0%3\xc0\xd6\xd6\x16\
-\xdf\x09\x81@\x00\xa2(\xc2\xef\xf7cmm\x0d\xa7\x14\
-\x95\xd0\xfc\xae\xe7\xa9\xc9|\xc1\x0b\x98=@\x9b\xdc\x00\
-\xdbA677\xf9v\xa4V\x14\x15\xd5\xe8\xfbU\xe0\
-\xa9\x1d\x81G\x00\xe7;\x0f\x00\x80\xcc%\x80$3O\
-$\x12(+\xaf\xe2\x00\x7f\xb8\x00\x8b\x98\x01\xa06Z\
-\xd5\x070\x05\xff\x98'\x93<=MI\xc9\xa9J\x0e\
-\xa0\xb7\xb3\x03\x89=\xc5\xf8\x170\xb1\x00|q\xf5\x00\
-\x00\xa4\xea\xc9\x98\x14\x8b\xc5P\xa6\xa8\x82zH\xc0\x98\
-\x19\xb8k\x05\xe6\x9c\x99\xfb\xe7Wd\x04\x90\xd2Sj\
-\x02\x88F\xa3\xdc<\x14\x0a\xa1\xb8\xb4\x02\xd7\x06\x05\xdc\
-f\x87\xe4\xa0\x01\x1cd\xc4\x04(;d\x06H=\x9c\
-s\x12\x99\xd3\xb9@ \xc5eU\xb8\xd8-\xa0\x7f:\
-c\xae}\x90i\xe0\xa3v\x99\x00\xfe]=\xa5&\xad\
-\xae\xaer\x88\xb7J*p\xb9W\xc0=\x1b\xb8~\x9e\
-\x01\xee\xcc\x03g.\xed\x13@\xaa\x9dD\x8b\x8e\x92\xd3\
-qL\xdf\x01+++X__\xe7\x10'Y\x03\xdf\
-t\x09PO\x00\xbf\xcce\x1a\xb82\x064\xec\xa7\x01\
-\xc9X\xda\xebdNi)9\x1dD\x04@\xf5\xd3\xcf\
-\xde|[\x81\x96\xeb\x02O~u\x1c\xb8q\x0f\xf8q\
-,\x9e~\xbdNm\xa67\xaa\xac\x00\x9ed,m7\
-2%\x00\xd1#\xf2\xe4\x12\xcc\x1b'\x15h\xef\x11\xa0\
-\xbcf[\x7fO5\xe2<q\x9a\xbf\x8ei\xf7\xfcJ\
-&\x01\x90\xa9$i\xb5SB2\x0f\x06\x83p\xb9\x5c\
-\xdc\x90^J\xe8\xb3\xc7\xe3\x81\xdb\xed\xc6\xf1\x13\xaf%\
-\x9f}\xa1\x9cL;\x98\x8a\x99\x8e>\xc9xG\x00\x95\
-J\xc5\x01\xa4\x15.\xcd7\x19RR:\xf7)\xb5\xc3\
-\xe1\xe0\x22\xe3\xc5\xc5E\x0e\xf5\xe2\xf1\x97\x5c\xf4\x1e\xb9\
-\x93\xe9\xae\x00---n\xe9`\xa1\xd4\xd2\x97\x0d\x8d\
-\x97\x97\x97\xe1\xf3\xf9`\xb3\xd9\xf8}ii\x89C\x10\
-\x00\x8d\x0b\x0b\x0b\xcd\xb2\x00\xd0\xa2\x92R\x93\x11\x8d\xe9\
-N\xdfxT;5`\xb5Zy\xf5\xd4\x0a\xfd\xce`\
-0$\xf2\xf2\xf2\xee\xb3g\x1c\xd9\x17@SS\x93[\
-\x9agJO\x22\x13\xaa\x9a\xc6\x16\x8b\x997@\x9fG\
-GG#mmm\xde\xfc\xfc|\x13\xfb\xdbA\xa6\xb2\
-\xbd\x9a\xff'@ss3\x9f\x02JG\x10T?U\
-???\xcf\xeb\xd6h4\x91\xba\xba:\xe7\xc3\xb4]\
-L\x1f0\x1d\xcd\xc6xG\x00\xa5R\xe9v:\x9d\xbc\
-bJJo>\x94\xb4\xbe\xbe\xde\x99\x93\x93#\x99\x16\
-gSuV\x00\x8d\x8d\x8dn\x8b\xc5\x82\x81\x81\x81H\
-mm\xad377WV\xd3\xdd\x00\xf8\x7fFL\xc2\
-A\x99n\xd7\xdfC9V\x18\x85p\xc8\x04\x00\x00\x00\
-\x00IEND\xaeB`\x82\
-\x00\x00\x05+\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x04\xbdIDATX\xc3\xed\
-WkL\x93W\x18>#q\xc92\xe9\x16\x97\xa8T\
-e8\x9d\x02\x15\xf6\x03\x872\x93\x01f,[p\xc4\
-0\xff`\xa2.\x1a:\x1dN\x03\xba1\x89[\xb3\x80\
-\xd9\x0c\x84\x02\x19X\x1c\x14\x8b\x85\xb2\x82\x95^\xe4f\
-\x0b\x8e1\xf8\xc3F\xcb-\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\
-ji\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0da\xd9\xb2\x93\
-<\xed\x97\xf3}\xfd\xde\xe7\xbc\xef\xf3^J\x00\x80\xfc\
-\x93 \xff\x0a\x02t\x09(D\x14\xd9\x14q\x14\x01+\
-F\x80\xae\xddd\xdd\xc6f\x22L\xf8\x95\xc4\x8bG\xc8\
-\xa1\xd3\xf7\xc8\x8e\x97;82a+A \x85\x9c\xbe\
-0H.\xdd\x80\x19@2\xabyM\xf4\xbe\xfbr\x13\
-hd\x06\x91\x04^\xa3Q\xf4\x06\xee\x85G\xf5\xd0\xbd\
-\x83\xcbM \x9b\x9d\xf6@t/\xbd\x162= \x89\
-?H\xa5,\x1b\x01\x8c1y\xc1\xbb\x9d\x88K\xc6\xd7\
-\xc6&\x0e\xa0\x10\xb9\xfdB\xfe\xc5+6F\x8c\x12\x5c\
-N\x02\x93\xa7\xa7\xa7\x0d\xcc\xd39\xb9\x98c6\x14\x0a\
-\xd2\xe4\xa3+A \x8c)\x9e*\xdf7G\xeb\xdc{\
-\xb5\xcc\x89\x9e@D\x96T\x83+,\x0b6FH\x08\
-\x13\xf5d*{.T\x03\x01\xf8\x037\xbf\xc0\x0e4\
-*T\xdfb\x88R\xd5,X\x03t\x1d\x16\x08\x04z\
-EU\xf5\xc8\xa0mt\xc2\xd4s\xf7!\xbesQ\x95\
-\x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc.\x03\
-\xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf>\xbf\xd2`\xb5\xdb\
-\xed\x80\xf8y\xe4>\xc4^\xab\xb4\xb9\x88/\x86\x80'\
-\xd3\xc0g\xf9\x8e\x19\xf5`\xd7^3\xbav\xdas\xee\
-h\xd8\xc7\xc7G\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\
-\xf6.\xe7\x967\xf7wsa\xd8\xbd\xe8^\x80/f\
-\x9a\xa0\x86\xdf\xa96B\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\
-\xe7\x1a\x8a\x98-~\xfem\x97T\x1ak__\x1f\xb8\
-\xd0\xd1s\x07br\x15VN\xc4\x87\x97\xd4\x8c0\x14\
-\xe9\x15\xb7\x1e8\x1c\x0e@\xa4\xd6\x191\x9e\x85\x9b\x05\
-~m\xa9%\x1a[\x97\xd9\x0c\xe6.\x0a\xf3$\x14\xdf\
-6\x8e{\xbd\x1e\xd1\xcdB\xc8\x09o\xa9\x04<\xd1\xbd\
-V\xab\x15\x10w\x7f\x1b\x84\xf3\x92\x5c\xbbR\xa9\x84\xfa\
-\xfaz0\x99L\x0cu\xdf5\xc1Q\xb1d\x18\xc9Q\
-D>\xb6v\xcc\xb4@O\x93_~\xd3\xd6\xdf\xdf\x0f\
-2\x99\x0cD\x22\x11\xa8T*\x90J\xa5\xa0\xd1h \
-K[9\xbe\xe9\x95\xe0\x1f\xb8S\xafy,\xf3\x00\x97\
-\x8e\x22\x9e\xc7\x86\xe6S)\x19\xf6\x82\x82\x02\xe6\xe2\xa0\
-\xa0 \xe0\xf1x`\xb1X@[^\x01\xfb\xcf&\x0c\
--\xa6S\xceg\x94\xcf\x09L\x83\xe2[{\xe6\xc2`\
-\x9a\xb2\x14\x14\x0a\x05\x88\xc5b\xc8\xcc\xcc\x84\xa2\xa2\x22\
-P\xab\xd5\xd0\xd9\xd9\xc9`\xec\xfe\xc9\xb9\xc9\xdb\xa7u\
-.\xb7\xcfK\x80\xae\xb7\xd8)p\x0e\xc0j\x97\xacx\
-\x88\xca\x7f\x82\xe2)\x89\x0e>\x97+![\x96\x0f\x07\
-c\xe3G\x84\x1f&\xd8\x92rd\x8eo\x1a\xbf\x07\xa3\
-\xd1\x08-\xad-\xf0\xcb\xc0 \x1c8\xf1\xbe\x05\xb3b\
-\xc1\x04\x5ci\x84\x85\x85\x84F\xdc&\xe72\xac,\xcf\
-3\xb5\x13\xec;\xe3\xba\xd33\xaf\x82\xe5\xfez\x89\x06\
-\x9e\xde\xfcb\x1b\xf7<\x92\x8d{f\xabO[\xca5\
-\xedXCC=444\x80\xa5\xb7\x172\x14\xc5\xc3\
-\xf3\xe9\xc0e<\x92\xe5(\x9e6]\xe5\x9c*2x\
-}\xf4\x83.Zl\x121\x0c\x1b%\xeaq\xf7/\xcb\
-'\xef\x05\x87_\xfe\xd3\xe4D\x0bLh\xf4\xc9>u\
-\x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x961\xae\x81\x09\
-f\xf16m8h<I::e\xf8b\x81\x83D\
-\xbdWC\xb6\x0a^\x9b*\xc3\x94\x5c\xb0B\x0f\xab$\
-\xb4\x04\x9fJ\xaa\x9bC71(\xd4O\xf2\x0a\xc7t\
-:\x1d\xd4\xd6\xd6\x82\xc9|\xdb\xb9a\x9b\xf7_\xeab\
-\xb2\xe5~\x9cu\x1f\x0d\xf3\xb2\xd4N\xf2\xf6\xb1\xeb.\
-\xb6\xae\x94\xc3\x90l\x97U\xc1KW\xab\x80\x9cMn\
-Z\xd0\x1cI\xbd\xb1\xe7\x88\xb0\xef\xcaW\xc5PZZ\
-\x0a\x1d?\xf6L\x04\x06\x87t<\xaa\x0b\xc2\x84F\x8d\
-\x07\xc8o\x02\xd9\xf9\xaa~\x9a\xf10F\x8e6 \xaf\
-\xbcJxCi\x00\x92(\x1d\x98\xcd\x95\xb3y\xc3}\
-=\xbf\xf9Dj\xa6].\x97CSK+D\x1c{\
-\xf7\xce\xf4\x14%\xae\xf1\x8a\xf5w\x9c\xf5p\x02\xc2\xd9\
-\x0f\x89\xd1\x81\x03O\x8e\xf7\xdc\xd2i\xe7\xf3\xdfu\xfc\
-o\x14.6\xd2\xef\xd8\x17iI\xbe,\x9d\xc8\xd3\x96\
-;\xa7\x0f1\x8c%\xc6\xdf\x9f\xbaw_q5\xa0A\
-l\xb5\x08\x8c\xf9\x94\xf1\xe0\xf03K\x9a|h\x13Z\
-\xbd\xce\xa3\xd9kOH\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\
-\xf9/\xee\xb9In\x00\xf6{>\xed\xf7\x08\x1e*>\
-]\xe5X\xaa\xf1GZ\xf5\xb6Y\x0b\x11\x1d\xb3C\xc9\
-\x918\x099\xf9\xa9\x96!\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\
-7\xfcO\x13\xf8\x1d\xe7\x87\x19\xb9D\xc3\x01\xcf\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x06m\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x064IDATx^\xad\x97[lT\xc7\
-\x1d\xc6\x7fs\xce\xd9\x8b\xbd\xf6\xfa\x16\xa0\xbe\x00\x0e\xb2\
-ic$BJ!\x22\xa1-\x95b\xa5/\xeeKh\
-+\x95\xa6U\xa5\xc6`U\xaa\xda\xb4\xaa\xfaV\x09U\
-\xca\x03\x94'\xda\x07\x84\x14)\xad\xc4\x8b\xa5R\x83y\
-\x08\xc5\x189\x0ei\xd3\x84\x9a\x9bcj\xec\xb2\x04\x1b\
-;\xbb\xf6z\x8f\xbd\xbb\xde\xb3g\xa6\xc3h\x85\xe5r\
-l\x88\xc9'}\xfa\x9f\x9d\x87\xfd~\xf3\x9f\x99s\x11\
-J)\x82$\x84x\x05x\x9e\xc7kH)\xf5w\xd6\
-(' \xb8C\xbb\x01h\x97R\xbe\xc6cdY\xd6\
-\x07\x1a\xf6\xbb@\xb7\x069\xff\x14\x00&\xfc\xb7\xed\xf5\
-\xe2`]DDn\xce\x89\x8a+W\xaeP]S\x8d\
-@\x00\xa0P\x08e(A)f\xd3i^\xa9\x17/\
-\xbc\xb4Nl;\xf1\x1f\xb9G\x83|[CL<M\
-\x07\xf6\xff`\x8b\xdd,%\xf8J2<<Lee\
-%+\xc9u]\x1e\xc0n\xa9\xb0\x22\x1b\xa2*r?\
-\xa7\xea\x81\xb5\x03\x08-\x05H\xa1\x0d\xf4]\xbcH.\
-\x97\xc3/\x16QJ\x91\xcf\xe7Y\x5c\x5c\xa4P(P\
-\xd4c\xb5\xb5\xb5\x94\x01X\x80\xf8\x82\xf6\x80\x01\x006\
-D\x05\x1f\x0f\xbcK>;\x8f\x85D\x952\xe2\xb6\xc4\
-\xb6\x04!!p>Sl\x8c;\x80D*\x04\xf0\x9c\
-\x10\x02\xe0\xcb@\x05P\x0f4`\xc4Hi\x9f$\x02\
-\x01N\x9c8!\x00\x81\x05\xd2\x87\x96\x96g\x09em\
-\x14\xe5(\xa5\xb4A\x08XW\x19%\xe2\xd8DB\x16\
-\xc3\x13s\x5c\xbc=A\xf7X\x8e\x5c$\xbe\xa9\xbd}\
-\xf7\xef-\xcbZ\xdc\xb1cGYUU\x95\xd3\xd8\xd8\
-\x18~\xe0\x86\x86\x86\xd0\xa5K\x97\xdc\xae\xae\xae\x08\xf0\
-\xd6\xaa\x1d\x00\x13DU,\xc2s\xd51\xf2\x9eO\xa1\
-(\x91Ja\x09A\xd8\xb1\x88\x86l\xe6r\x05\x12\xa2\
-\x8e?\x9f\xff+\x0dM\x1b\x01\x22\xc0f\x96\x84\xef\xfb\
-x\x9eGuu\xb5\x9ePK\xf4\xea\xd5\xab\x87\x84\x10\
-(\xa5\xdeZ\x11\xc0\xb2A\x00\xb6-\x90\xda\xb6\x148\
-\x08\xa4\x12X\xc2\x8c\x1b\x8fL\xb9\xec{\xf5;\xd47\
-6\x11|/\xc1\x84g2\x19\xca\xcb\xcb\xcdf>v\
-\xec\xd8&\xbd\x7f\x0e.A,\x01\xd0\xd9\xd9\xa9\x0e\x1d\
-:\xa4l!\x08Y\x10\xb6-\x1c\xc7\xc6BP\xb4\xcd\
-\x1a\x1b\x00\xc7\xb2\x888\x96\xae\x02`Yx\x10\xc0\xdc\
-\xdc\x1c555\x06 \x1a\x8dr\xe4\xc8\x91\xcd\xc0\x03\
-\x88\x1b\x1a\xa2\xc7b\xb9\xb0mt0f\x8d\xcb#6\
-\xb1\xa8\xa3\xc7,2\x8b\x1e\x93\x99\x1cc\xa9y\xee\xcc\
-.\xe8\xdfEr\xf9<\xab\xc8,A6\x9b5\xa7f\
-\xe9\xffm\x0e\x1c8\xb0\x1e\xe8\x00X\x06\xa0\xb4t\x16\
-\x8e\x0d\xe1\x90\xc0S\x8a\xb1\xa4\xcb\x8d\x8c\x83\xd3\xb2\x97\
-\xa6}\xaf\xb3\xb5\xe3\x17\xac\xdb\xfb:\x0d/\xb4s\xfb\
-\xce$\xfd\xfd\xfd$\x93I\x94R\xe6\xfa\xf8\xf1\xe3\xe8\
-\xba\xac3\xe7\xce\x9d\xe3\xe8\xd1\xa3\x1c>|\x98\xde\xde\
-^\x12\x89\x84\x04,\xa1\x15\xdc\x01\xed\xff\xce\xe6\xf8\xe7\
-\x94Ok\xc7\xcf\xf8\xe6/\xdf&\xf6\xf57\x99|\xa6\
-\x83k\xfe.\xae\xf1-dk\x17\xad{\x7fN^V\
-s\xfaog\xd1wM\xee\xdc\x9d\xe2\x1b\xafvr\xfd\
-\xfau\x03\xa0gk\xd6?\x16\x8b\x99\xebx<\x8e\xe3\
-8%8\x04\xc0#\x00\x96%\x98\xcaA:\xde\xca\xfe\
-\xdf\xbdM\xd5\xae\xd7(\x84b\x08\xdbBY\x82lA\
-r\x7ff\x91O\xeef\x18\xb8\xear\xfa\x1fad\xd5\
-^\xae\x8f\xdcg2\xd7\xc6\x85\x0f\xee\x9b\x00\xed\x87\xa1\
-\xcd\xcd\xcd\xb4\xb5\xb5\x19755\xa1\xa1\x14 \x83\x1f\
-F\x16\xdcq\x15\xdf\xff\xe9o\xa8l\xd8H\xe2\xec;\
-L\x8f^\xc3\x89\x94\xb1\xb5y\x07\x9b[\xb6\xf3Iy\
-%c\x09\x97\xcff\xf2\xdc\x9d\xce2\xa1\xed\x88\x0dL\
-'\xe7\xd8\xb7+\xca\xfa%\x003{=k\xea\xea\xea\
-\x00\xccu*\x952\x00J+\x10\xa0\xb9Zp\xe1\x9d\
-c(,\xca\xe6\xc6\xd9\x10\x8fR\x94\x92{\xc3}$\
-e\x05\xdb\xda\x7fLM\xdb\xcb|<\x9cf\xd2_\xc0\
-\xcdx,\xcck/x \x00\xb5t:B\xa1\x90\x09\
--\xdd\xea\x1f\x8e\x01*\xf8>`\xc1\xc6\xb8\xa0P\x1c\
-#\x1c\x8bS\xb7\xa5\x96\x92xv}\x05\xe9\xac\xc7h\
-\xff\x9f\x98\xae\xbcL\xcb\xf6\x83\xb8\x0ba\xbc\x82\xa4X\
-\x94x\xda!\xc7B-\xaa\x80\xe3i\xa0\x96\xd5\x15\x01\
-\x00\xd6\xc7C\x84\xca#\xfc\xbfjc!\x9e\xa9\x0cs\
-\xe1\xdf\x83\xec\xd9\xf9\x13\xca\xa3\x0e\xb92G\x03(\x03\
-ak\x00\x16K!\xa5\x1c%0*\x15\xa4\x5c\x05@\
-X\xa5*\xcc\xf5#\xfapl\x86\xf1Y\x8f\xef\xfd\xfa\
-\x8f\xdc\xca\xd4\xe0D\x5c\xa2\x11\x1b\xcf\x93\x14=\x07\xd3\
-\x01\xa5\x90R\xf2PjY\x01V\x05\x10\x08L\x0d\x04\
-\x18\x9dv\xf9\xd5_\x86\x18\xbd\xb7\x80=\x93g\xd3\xba\
-2\xf2y_\xbbh\xea\xce\xaf\xd4p\xf9\xdd\xe0%\x00\
-\x9ex\x09L\xb8\x10<\xa2\xd6/U\xf2\x87\x1f>\xcf\
-\xf5O3D\x1b\xb7\xb1\xf3\xc5\x97Y\x12\x5cN`\x8e\
-\xdbS\x01(\xc0\x12%\x00m\xd4R}\xb1\xb5\x96\xdd\
-[\xe2t\xbf\x97\xa5j\xf7W\xf9\xd1\x1bo\x10\xa0\xb5\
-\x03\x98\xb57\xd5\xd8\x08\x01\xd2\xcbSpSx\xf33\
-\x14\xb3i\x0a\x19\x1f%\xfd\xd5\x82\xd6\x08\xf0\xf0)\xe7\
-\xe3\xe73\x14\xe6u\xa8\x0e\xd6\x00\xcb\xf7\x89\x10\xc13\
-}\xfa\xd7r\x8c\xb2\x137\x03\xc7\x01\xb2\x1e\xfe\xad\x94\
-\xcco\xf7DT\x03\xd8_p\x07\x08\x92\x09\xfd\xd7=\
-?\xfd~B\xa6\xcf\xdf\xf6\xef\x02\xeev;\xfc\x92\x06\
-\xa8\xe3s\xcau]\x1fpW\xed\x00@2\xab\x0a\x1f\
-~*\xd3\xbd\xb7\xfc\xd4\xcdi9\x05\xf4\x03\x97th\
-\xbf\x10\xa2\xd3\xb6\xed\xaf}\x9e%XXX\xf0\x07\x06\
-\x06\xd2'O\x9e\x9c\x06\xba\x83\x00>\x1aI\xca\xad\xe3\
-\xb3*\xd7;\xe2\xa7nL\xcb\xd1R\xe8Y\x1dt\x8b\
-\x00=\x09\xc0\xd0\xd0\x90\xdb\xd3\xd3\x93\xd2N\xcf\xce\xce\
-\x9e.\xbd\x1d\xdf\x08\x02\xe8\xee\xea)\x00\x8c\x04\x84\x06\
-\x85\xaf\x08055U\xd0/\x22\xa9S\xa7N%\xc7\
-\xc7\xc7/\x03g\x81~\x1d\xec\xae\xb8\x09K\xdfv\xda\
-O&\x85\x01@\x08@aZ\xfc\xde\xe0`\xba\xbb\xbb\
-;\xa5\xdf\x8a\xcc$\xd0^\xeds\xcda\xed\x9aw3\
-n\x11`p\xf0\xfdt___\xfa\xcc\x993\xa6\xc5\
-\xa5\xd0\x8fx\x02\x89\xb5\x9ec!D\x18x\x13\xd8O\
-is\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa*_\xf2\xd8\x15\x9d\
-\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x04\xa3\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x045IDATX\xc3\xe5\
-\x97\xcd\x8fTE\x14\xc5\x7f\xb7\xea\xd6{\xaf\xdbn\xc7\
-\xf9@\x9d\x89FM4\x99D\x8d\x1aH\x98\xc4\x8c\x1f\
-\x1b\xfe\x02L\x5c\xf1\x07\x18\x16.M\x5ckX\xc3\x8e\
-\xc4\x8d\x1b\x17\xce\x82htA\x5c\x18\x0d\xe2\xc4\xc6\x00\
-=`PQ\x19`\x02\xa2\x0e\x0c\x83\xd3\xfd^\xf7\x94\
-\x8b\xaa\xee\xf9`\xe6\x0d\x84Q\x16VR\xa9\xce{\xb7\
-\xeb\x9e:\xf7\xd4\xa9z\xea\xbd\xe7~6\xe5>\xb7>\
-\x80]\xbbv\xbd\x03\xec\xfd\x8f\xf2N5\x1a\x8d\x03\xeb\
-\x19\xd8\xbb\xef\xbd\xa3;\x1f\x1fv\x00\x9c<:\xcf\xcc\
-\x977X\x9c\xef\xdcS\xa6\xda\xa0\xf2\xdck\x03\xbc\xb8\
-g\x10\x80\x8b\x7f\x16|\xf8\xee\x1e\x80\xdb\x00p\xfc\xec\
-\x1c\xdf?0\x04x.\xfd\xb8\xc0\xfe\xb7\xceo\xcbr\
-\x0f\x1dy\x9a\x0b#\x96\xd3\x9f\x1fd\xfc\xd5}\x9bk\
-@E\xb0\x16@xp,#\xcb\xb2m\x0100\x96\
-a\x8dP\x1b|\x14#%\x22\x14+\xd8\x18\x91\xd5\x95\
-s\xe7\xce\x83*\xb8\x04\xd2\x14\xb2\x0c\xd2,\x8cI\x0a\
-I\x12\xdew:\x90\xe7\x90\xb7\xa1\xd5\x82v+\x8em\
-(r\xb2\xfa8\xd6\x0a\xe3\xaf\xbcIk\xf1\xfa\xe6\x00\
-\xac\x15\xac\x15\x04\xb0F\xd8\xbd{\xe7\x16k\xeb\x86\xae\
-\x80Z\xa8V\x81\xeamQ\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\
-\x84\x01g\x055\x82\x08\xa8\x0a\x95,\xc3# \x1e\x08\
-\xc0\xf0\x1e/\x02\xde#\x12&\x15|\x88#\xc4!\x1e\
-<!^@MX\x18@\xd7J\x89\x06\xac\xa0\xdac\
-\x00\x9a3\xbf\x05\x8aS\x07i\x02\x95\x04\xb24\xf6\x04\
-\x12\x07N\xa1\xe8@^@+\x8f\xbd\x05K9\xb4s\
-\xc8\x0bT\x87q=\x00*\xe5%p1@\xd509\
-\xf9\xd2\xd6\x0a\xf3>\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8'a\
-a\xbd\x1c%% \x00\xf0\x81\x8d4M\xa3:\xc3\xb3\
-\x98\x11\x89l\x07\xdac\x09V\x98_)F\xfca\xcd\
-r\x7fa\x1d-\xd1\x80:\x09TI\x18O4/\xe0\
-\x9d\x85\xc4!\x89\xc3g\x09\x92i\xd8\x11\x89\xe2\x13\x87\
-X\x8b\xefv\x91\xbc\x80\xbc\x03\xed\x02\xdfj#\xed\x02\
-\xf2\x02\x9fwP\x1dE\xd5 x:\xebTx\x9b\x06\
-\x9c3x\x0f\x03\x8f$\xbc\xfe\xf2\xf3wh\xe86h\
-\xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04R^\x82DM_\x84\
-\x8f\x0d\xa58\xe7\xb6\xc5\x88\x9e\x18K\xb9v\xb3\x03\x08\
-\x9dR\x11\xaa\x90\xb8P\xefZ\xc50}\xb1\xcb@\xc5\
-\xb0\x0e\xf4&\xadW\xf9U.\xe1\xe1\xc6\xd22\xf5\xcc\
-p}\xc9\x84-\xe9J\x19\x10\x9c\x1a\xc0s\xe5f\x97\
-+7\xbb\xacQW?\xd7\xaad~\xc5'\xa2)\xac\
-\x05\x15\xc3\x9c\x0b\xb5w\xa6l\x17\xa8\xc1\xa9 \xc8\x1a\
-5\xaf\x9b5\x1a\x8fY1\x9e\xfe{\xe9\xef\x14\x00\xf1\
-\x82\xef\x9bX0+WV\x02U!\xd1\x90\xfc\xe7S\
-\xdf\xf2\xeb\x99\x13,-\xde\xb8\xa7\xfaWj\x03<\xf5\
-\xecN\x9eya\x02\x0f\xa83[1\x10\x03|\x87\xf7\
-\xf7\xbf\xc1\xc2\xc2\x02\xb7n\xdd\xa2(\x0aD\x04k-\
-\xd6ZT\x15U\xc59\x87\xaab\xad\xc5\x98\xf0\xdf\xe5\
-\xe5e\xf2<\xef\xf7#\xcd\xf9\xb8\xf2-\x18pVP\
-\x17\x18\xdc1:\xb6rO8~\x9c\xe9\xe9i\x8c1\
-x\xef\x99\x98\x98`rr\xf2\x8eY\xd81:\xd6\xdf\
-\x86\xae\xd4\x09Up6\xac\xa2V\xaf\xf7k933\
-\xc3\xd0\xd0\x10\xd6Z\xbc\xf74\x9b\xcd\xbb\x02P\xab\xd7\
-p\xd1\x88\xb4\xd4\x88\x14\x9c\x0b'\x5c\xa0*\x00\xa8V\
-\xabdY\xd6\xa7\xb87\xdeis\x1a\xa9\x17AK\xad\
-8\x1e\xc7\xbd#\xb4\xd7\x8c1\x88D\xdf\x8f:\xb8\xab\
-\x9b\xaf5\xa8\x0d\xf3\xf6\x18.=\x8e\x83)m\xe3\xd5\
-\xdb\x12\xa9\xf7\xe5Vl\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\
-\xdb\x02\xe0\xa1\x91a\xd4\xc2\xb5+\x97Y\x9c\xbf\xbe\x05\
-\x036\xf8\xc0`\xad\x02\x0b\xdb\xc3\xc0P\xad\xc2\xec\xc5\
-K\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa66\x04`$^\
-J\x05\x12\x0b\xed\x91'\xa9=\x0co\x1f8\xc8f\xc7\
-\x81':\xf1*\xe75\x1e2\x81\x14(\xbap\xf9\xea\
-U\xce4\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1fN\x1d\x02\x0eo\
-\x08\xe0\xb3\x8f>\xe0\xa7\xd3'W\x99\xe9\xda\xa3\x86U\
-\xe6\xbb\x1e\x04\x1b<_\x1do|w\xee\x8f\xd9_\x0e\
-\x01\x87\x1b\x8d\xc6_\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5s\
-l}\xf25\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1?M\xf0\
-K\xb9\xe8F\x89\xaf\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-"
-
-qt_resource_name = b"\
-\x00\x06\
-\x07\x03}\xc3\
-\x00i\
-\x00m\x00a\x00g\x00e\x00s\
-\x00\x08\
-\x06\xc1Y\x87\
-\x00o\
-\x00p\x00e\x00n\x00.\x00p\x00n\x00g\
-\x00\x07\
-\x04\xcaW\xa7\
-\x00n\
-\x00e\x00w\x00.\x00p\x00n\x00g\
-\x00\x08\
-\x06|Z\x07\
-\x00c\
-\x00o\x00p\x00y\x00.\x00p\x00n\x00g\
-\x00\x07\
-\x0a\xc7W\x87\
-\x00c\
-\x00u\x00t\x00.\x00p\x00n\x00g\
-\x00\x09\
-\x0a\xa8\xbaG\
-\x00p\
-\x00a\x00s\x00t\x00e\x00.\x00p\x00n\x00g\
-\x00\x08\
-\x08\xc8Xg\
-\x00s\
-\x00a\x00v\x00e\x00.\x00p\x00n\x00g\
-"
-
-qt_resource_struct = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00(\x00\x00\x00\x00\x00\x01\x00\x00\x08\x1d\
-\x00\x00\x01z\xe7\xee'\x09\
-\x00\x00\x00<\x00\x00\x00\x00\x00\x01\x00\x00\x0bu\
-\x00\x00\x01z\xe7\xee'\x09\
-\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01z\xe7\xee'\x09\
-\x00\x00\x00~\x00\x00\x00\x00\x00\x01\x00\x00\x1cS\
-\x00\x00\x01z\xe7\xee'\x09\
-\x00\x00\x00f\x00\x00\x00\x00\x00\x01\x00\x00\x15\xe2\
-\x00\x00\x01z\xe7\xee'\x09\
-\x00\x00\x00R\x00\x00\x00\x00\x00\x01\x00\x00\x10\xb3\
-\x00\x00\x01z\xe7\xee'\x09\
-"
-
-def qInitResources():
- QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
- QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
diff --git a/examples/widgets/painting/basicdrawing/basicdrawing.py b/examples/widgets/painting/basicdrawing/basicdrawing.py
index c1f2a5b0c..858a8cd9f 100644
--- a/examples/widgets/painting/basicdrawing/basicdrawing.py
+++ b/examples/widgets/painting/basicdrawing/basicdrawing.py
@@ -6,11 +6,12 @@
from PySide6.QtCore import QPoint, QRect, QSize, Qt, qVersion
from PySide6.QtGui import (QBrush, QConicalGradient, QLinearGradient, QPainter,
- QPainterPath, QPalette, QPen, QPixmap, QPolygon, QRadialGradient)
+ QPainterPath, QPalette, QPen, QPixmap, QPolygon,
+ QRadialGradient)
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QGridLayout,
- QLabel, QSpinBox, QWidget)
+ QLabel, QSpinBox, QWidget)
-import basicdrawing_rc
+import basicdrawing_rc # noqa: F401
class RenderArea(QWidget):
@@ -190,12 +191,9 @@ class Window(QWidget):
pen_join_label.setBuddy(self._pen_join_combo_box)
self._brush_style_combo_box = QComboBox()
- self._brush_style_combo_box.addItem("Linear Gradient",
- Qt.LinearGradientPattern)
- self._brush_style_combo_box.addItem("Radial Gradient",
- Qt.RadialGradientPattern)
- self._brush_style_combo_box.addItem("Conical Gradient",
- Qt.ConicalGradientPattern)
+ self._brush_style_combo_box.addItem("Linear Gradient", Qt.LinearGradientPattern)
+ self._brush_style_combo_box.addItem("Radial Gradient", Qt.RadialGradientPattern)
+ self._brush_style_combo_box.addItem("Conical Gradient", Qt.ConicalGradientPattern)
self._brush_style_combo_box.addItem("Texture", Qt.TexturePattern)
self._brush_style_combo_box.addItem("Solid", Qt.SolidPattern)
self._brush_style_combo_box.addItem("Horizontal", Qt.HorPattern)
@@ -260,24 +258,23 @@ class Window(QWidget):
self.setWindowTitle("Basic Drawing")
def shape_changed(self):
- shape = self._shape_combo_box.itemData(self._shape_combo_box.currentIndex(),
- id_role)
+ shape = self._shape_combo_box.itemData(self._shape_combo_box.currentIndex(), id_role)
self._render_area.set_shape(shape)
def pen_changed(self):
width = self._pen_width_spin_box.value()
style = Qt.PenStyle(self._pen_style_combo_box.itemData(
- self._pen_style_combo_box.currentIndex(), id_role))
+ self._pen_style_combo_box.currentIndex(), id_role))
cap = Qt.PenCapStyle(self._pen_cap_combo_box.itemData(
- self._pen_cap_combo_box.currentIndex(), id_role))
+ self._pen_cap_combo_box.currentIndex(), id_role))
join = Qt.PenJoinStyle(self._pen_join_combo_box.itemData(
- self._pen_join_combo_box.currentIndex(), id_role))
+ self._pen_join_combo_box.currentIndex(), id_role))
self._render_area.set_pen(QPen(Qt.blue, width, style, cap, join))
def brush_changed(self):
style = Qt.BrushStyle(self._brush_style_combo_box.itemData(
- self._brush_style_combo_box.currentIndex(), id_role))
+ self._brush_style_combo_box.currentIndex(), id_role))
if style == Qt.LinearGradientPattern:
linear_gradient = QLinearGradient(0, 0, 100, 100)
diff --git a/examples/widgets/painting/basicdrawing/basicdrawing.pyproject b/examples/widgets/painting/basicdrawing/basicdrawing.pyproject
index 9ecbfadcf..976bb9e35 100644
--- a/examples/widgets/painting/basicdrawing/basicdrawing.pyproject
+++ b/examples/widgets/painting/basicdrawing/basicdrawing.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["basicdrawing_rc.py", "basicdrawing.qrc", "basicdrawing.py"]
+ "files": ["basicdrawing.qrc", "basicdrawing.py"]
}
diff --git a/examples/widgets/painting/concentriccircles/concentriccircles.py b/examples/widgets/painting/concentriccircles/concentriccircles.py
index 0edc9cb9f..d2c60178f 100644
--- a/examples/widgets/painting/concentriccircles/concentriccircles.py
+++ b/examples/widgets/painting/concentriccircles/concentriccircles.py
@@ -2,12 +2,13 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-"""PySide6 port of the widgets/painting/concentriccircles example from Qt v5.x, originating from PyQt"""
+"""PySide6 port of the widgets/painting/concentriccircles example from Qt v5.x, originating
+ from PyQt"""
from PySide6.QtCore import QRect, QRectF, QSize, Qt, QTimer
from PySide6.QtGui import QColor, QPainter, QPalette, QPen
from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QLabel,
- QSizePolicy, QWidget)
+ QSizePolicy, QWidget)
class CircleWidget(QWidget):
@@ -52,10 +53,10 @@ class CircleWidget(QWidget):
if self._float_based:
painter.drawEllipse(QRectF(-diameter / 2.0,
- -diameter / 2.0, diameter, diameter))
+ -diameter / 2.0, diameter, diameter))
else:
painter.drawEllipse(QRect(-diameter / 2,
- -diameter / 2, diameter, diameter))
+ -diameter / 2, diameter, diameter))
class Window(QWidget):
diff --git a/examples/widgets/painting/painter/painter.py b/examples/widgets/painting/painter/painter.py
index 58584baff..2ca078ad9 100644
--- a/examples/widgets/painting/painter/painter.py
+++ b/examples/widgets/painting/painter/painter.py
@@ -116,15 +116,17 @@ class MainWindow(QMainWindow):
self.bar = self.addToolBar("Menu")
self.bar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self._save_action = self.bar.addAction(
- qApp.style().standardIcon(QStyle.SP_DialogSaveButton), "Save", self.on_save
+ qApp.style().standardIcon(QStyle.SP_DialogSaveButton), # noqa: F821
+ "Save", self.on_save
)
self._save_action.setShortcut(QKeySequence.Save)
self._open_action = self.bar.addAction(
- qApp.style().standardIcon(QStyle.SP_DialogOpenButton), "Open", self.on_open
+ qApp.style().standardIcon(QStyle.SP_DialogOpenButton), # noqa: F821
+ "Open", self.on_open
)
self._open_action.setShortcut(QKeySequence.Open)
self.bar.addAction(
- qApp.style().standardIcon(QStyle.SP_DialogResetButton),
+ qApp.style().standardIcon(QStyle.SP_DialogResetButton), # noqa: F821
"Clear",
self.painter_widget.clear,
)
diff --git a/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.rst b/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.rst
new file mode 100644
index 000000000..c33c6660a
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.rst
@@ -0,0 +1,34 @@
+.. _rhi-widget-example:
+
+Simple RHI Widget Example
+=========================
+
+Shows how to render a triangle using ``QRhi``, Qt's 3D API and shading
+language abstraction layer.
+
+This example is, in many ways, the counterpart of the :ref:`rhi-window-example`
+in the QWidget world. The ``QRhiWidget`` subclass in this applications renders
+a single triangle, using a simple graphics pipeline with basic vertex and
+fragment shaders. Unlike the plain ``QWindow``-based application, this example
+does not need to worry about lower level details, such as setting up the window
+and the ``QRhi``, or dealing with swapchain and window events, as that is taken
+care of by the ``QWidget`` framework here. The instance of the ``QRhiWidget``
+subclass is added to a ``QVBoxLayout``. To keep the example minimal and
+compact, there are no further widgets or 3D content introduced.
+
+Once an instance of ``ExampleRhiWidget``, a ``QRhiWidget`` subclass, is added
+to a top-level widget's child hierarchy, the corresponding window automatically
+becomes a Direct 3D, Vulkan, Metal, or OpenGL-rendered window. The
+``QPainter``-rendered widget content, i.e. everything that is not a
+``QRhiWidget``, ``QOpenGLWidget``, or ``QQuickWidget``, is then uploaded to a
+texture, whereas the mentioned special widgets each render to a texture. The
+resulting set textures is composited together by the top-level widget's
+backingstore.
+
+As opposed to the C++ example, the cleanup is done by reimplementing
+``QRhiWidget.releaseResources()``, which is called from QWidget.closeEvent() of
+the top level widget to ensure a deterministic cleanup sequence.
+
+.. image:: simplerhiwidget.webp
+ :width: 400
+ :alt: Screenshot of the Simple RHI Widget example
diff --git a/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.webp b/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.webp
new file mode 100644
index 000000000..fdb8d20ec
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.webp
Binary files differ
diff --git a/examples/widgets/rhi/simplerhiwidget/examplewidget.py b/examples/widgets/rhi/simplerhiwidget/examplewidget.py
new file mode 100644
index 000000000..5b3e40f50
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/examplewidget.py
@@ -0,0 +1,135 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import numpy
+
+from PySide6.QtCore import (QFile, QIODevice)
+from PySide6.QtGui import (QColor, QMatrix4x4)
+from PySide6.QtGui import (QRhiBuffer,
+ QRhiDepthStencilClearValue,
+ QRhiShaderResourceBinding,
+ QRhiShaderStage,
+ QRhiVertexInputAttribute, QRhiVertexInputBinding,
+ QRhiVertexInputLayout, QRhiViewport,
+ QShader)
+from PySide6.QtWidgets import QRhiWidget
+from PySide6.support import VoidPtr
+
+VERTEX_DATA = numpy.array([ 0.0, 0.5, 1.0, 0.0, 0.0, # noqa E:201
+ -0.5, -0.5, 0.0, 1.0, 0.0, # noqa E:241
+ 0.5, -0.5, 0.0, 0.0, 1.0],
+ dtype=numpy.float32)
+
+
+def getShader(name):
+ f = QFile(name)
+ if f.open(QIODevice.ReadOnly):
+ return QShader.fromSerialized(f.readAll())
+ return QShader()
+
+
+class ExampleRhiWidget(QRhiWidget):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_rhi = None
+ self.m_vbuf = None
+ self.m_ubuf = None
+ self.m_srb = None
+ self.m_pipeline = None
+ self.m_viewProjection = QMatrix4x4()
+ self.m_rotation = 0.0
+
+ def releaseResources(self):
+ self.m_pipeline.destroy()
+ del self.m_pipeline
+ self.m_pipeline = None
+ self.m_srb.destroy()
+ del self.m_srb
+ self.m_srb = None
+ self.m_ubuf.destroy()
+ del self.m_ubuf
+ self.m_ubuf = None
+ self.m_vbuf.destroy()
+ del self.m_vbuf
+ self.m_buf = None
+
+ def initialize(self, cb):
+ if self.m_rhi != self.rhi():
+ self.m_pipeline = None
+ self.m_rhi = self.rhi()
+
+ if not self.m_pipeline:
+ vertex_size = 4 * VERTEX_DATA.size
+ self.m_vbuf = self.m_rhi.newBuffer(QRhiBuffer.Immutable,
+ QRhiBuffer.VertexBuffer, vertex_size)
+ self.m_vbuf.create()
+
+ self.m_ubuf = self.m_rhi.newBuffer(QRhiBuffer.Dynamic,
+ QRhiBuffer.UniformBuffer, 64)
+ self.m_ubuf.create()
+
+ self.m_srb = self.m_rhi.newShaderResourceBindings()
+ bindings = [
+ QRhiShaderResourceBinding.uniformBuffer(0, QRhiShaderResourceBinding.VertexStage,
+ self.m_ubuf)
+ ]
+ self.m_srb.setBindings(bindings)
+ self.m_srb.create()
+
+ self.m_pipeline = self.m_rhi.newGraphicsPipeline()
+ stages = [
+ QRhiShaderStage(QRhiShaderStage.Vertex,
+ getShader(":/shader_assets/color.vert.qsb")),
+ QRhiShaderStage(QRhiShaderStage.Fragment,
+ getShader(":/shader_assets/color.frag.qsb"))
+ ]
+ self.m_pipeline.setShaderStages(stages)
+ inputLayout = QRhiVertexInputLayout()
+ input_bindings = [QRhiVertexInputBinding(5 * 4)] # sizeof(float)
+ inputLayout.setBindings(input_bindings)
+ attributes = [ # 4: sizeof(float)
+ QRhiVertexInputAttribute(0, 0, QRhiVertexInputAttribute.Float2, 0),
+ QRhiVertexInputAttribute(0, 1, QRhiVertexInputAttribute.Float3, 2 * 4)
+ ]
+ inputLayout.setAttributes(attributes)
+ self.m_pipeline.setVertexInputLayout(inputLayout)
+ self.m_pipeline.setShaderResourceBindings(self.m_srb)
+ self.m_pipeline.setRenderPassDescriptor(self.renderTarget().renderPassDescriptor())
+ self.m_pipeline.create()
+
+ resourceUpdates = self.m_rhi.nextResourceUpdateBatch()
+ resourceUpdates.uploadStaticBuffer(self.m_vbuf, VoidPtr(VERTEX_DATA.tobytes(),
+ vertex_size))
+ cb.resourceUpdate(resourceUpdates)
+
+ outputSize = self.renderTarget().pixelSize()
+ self.m_viewProjection = self.m_rhi.clipSpaceCorrMatrix()
+ r = float(outputSize.width()) / float(outputSize.height())
+ self.m_viewProjection.perspective(45.0, r, 0.01, 1000.0)
+ self.m_viewProjection.translate(0, 0, -4)
+
+ def render(self, cb):
+ resourceUpdates = self.m_rhi.nextResourceUpdateBatch()
+ self.m_rotation += 1.0
+ modelViewProjection = self.m_viewProjection
+ modelViewProjection.rotate(self.m_rotation, 0, 1, 0)
+ projection = numpy.array(modelViewProjection.data(),
+ dtype=numpy.float32)
+ resourceUpdates.updateDynamicBuffer(self.m_ubuf, 0, 64,
+ projection.tobytes())
+ clearColor = QColor.fromRgbF(0.4, 0.7, 0.0, 1.0)
+ cv = QRhiDepthStencilClearValue(1.0, 0)
+ cb.beginPass(self.renderTarget(), clearColor, cv, resourceUpdates)
+
+ cb.setGraphicsPipeline(self.m_pipeline)
+ outputSize = self.renderTarget().pixelSize()
+ cb.setViewport(QRhiViewport(0, 0, outputSize.width(),
+ outputSize.height()))
+ cb.setShaderResources()
+ vbufBinding = (self.m_vbuf, 0)
+ cb.setVertexInput(0, [vbufBinding])
+ cb.draw(3)
+ cb.endPass()
+
+ self.update()
diff --git a/examples/widgets/rhi/simplerhiwidget/main.py b/examples/widgets/rhi/simplerhiwidget/main.py
new file mode 100644
index 000000000..59be81ddc
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/main.py
@@ -0,0 +1,35 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt Simple RHI Widget Example example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtWidgets import QApplication, QVBoxLayout, QWidget
+
+from examplewidget import ExampleRhiWidget
+import rc_simplerhiwidget # noqa F:401
+
+
+class Widget(QWidget):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ layout = QVBoxLayout(self)
+ self._rhi_widget = ExampleRhiWidget(self)
+ layout.addWidget(self._rhi_widget)
+
+ def closeEvent(self, e):
+ self._rhi_widget.releaseResources()
+ e.accept()
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ w = Widget()
+ w.resize(1280, 720)
+ w.show()
+ exit_code = app.exec()
+ del w
+ sys.exit(exit_code)
diff --git a/examples/widgets/rhi/simplerhiwidget/rc_simplerhiwidget.py b/examples/widgets/rhi/simplerhiwidget/rc_simplerhiwidget.py
new file mode 100644
index 000000000..ee8b41242
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/rc_simplerhiwidget.py
@@ -0,0 +1,163 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.7.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x02\xe2\
+\x00\
+\x00\x07\xc4x\x9c\xb5T]k\xd4@\x14\x9d\xed\xa6]\
+\x9b\xd6\xda\x0f\xd07\x19\xe9\xcb\x16%\xa6\xb5\x15q\xdd\
+\xfa\xb0U)\x14Z\xdbR\x84e\x091\x9bM\x07\xb2\
+\xc9\x92\x8fE)\x05\xdf}\xf7w\xf8'\xfcO\xbe\x88\
+\xde;s\xd3\xcc\xa6[*\x88\x03\xb3\x999s\xef=\
+g\xceM\x9616\xcf\x183`\xd6`.\xb11s\
+\x98\xc7b\x16\xc2L\x00\xa9\xc3d\xbfi\xb0)\x03\xd3\
+V\xd9\x00\x82]\x16\xb0\x8e\x96j\xdc\x96\xfa\xafc\x8e\
+\x9e}M\xcd\xf7\xfa\xccz\x03U\x99\xec\x0e[#t\
+\x85\xcdH\x9d\x0b\x90\x82\xcfw\x07'\x07V\x9a\xf5\xad\
+\xed\x1d\x1b\xcf\x97\xd45\xe5\xd9=\xd6\x90\xcaq\x0e]\
+\x11!\x8e\x16-\xc2\x5c\x868\xc4\x1bX\x03V\x88?\
+$\x0e\xdc/j\xfb5\xe0\x9c\x81\xe7#\xc8\xc1\xea\xb8\
+\xbe\x0f+\x14\xcda>\x80\xf8\x06]\xc2\x90\x98\x01\x8a\
+\x95\xe1\x88\xb7h?O\x18\xc6\x9b\x14_\xa7\xf8\x05\xd2\
+lR\xfc\x02\xe9D\xec1\xec\xe7\xe4\xddp|y\xfd\
+\x9c\xcdJ\x0d\x06\xe9\xc3\x1a?\x01\x99\x85g\x9bj\xdf\
+\xa5\xfc\xf7\x80\xceI/\x14\xc64l\x99\xb0\x9a\x86\xad\
+\x10\x86\xf5\x8f@=\xea_\xa5\xfce:G\x1d\xbb\xc0\
+:Og\xbf\xa0\xc2\x0bY\x85\x19\xe4s\x8dzY#\
+\xca\xaf\xebc?IE\x1c\xf1M\xdb6G\x89\xef\x09\
+\xb9;\x17\xc1\xf9\x88\x0f\xc2\xd8\xcdZ\xd7`\x11\x01h\
+\x8e\xdd\xe4\xb3\x88\x02>\xf6\xbdg|\xecxq\x18'\
+\x08\xc7\xa2\xcf\x91\xad\xb9a^\x98\x1cF\x10:o\x13\
+7\xd8s3\xb7k\xf7x\x1b3\xb6\x9b\x94\xf1\x84o\
+Z\xf6F\xcb\xbc4\xcd\x8a\xccO\xe5+\xc7\x9cR\xe6\
+\x96\xfd\xff\xa9\xbfi\xd4\xa2\xa4\xde\x01\xea8\xcfd\x11\
+>\x80\xba\x1dE,\xa2\xdb\x95\x5c\x85\xff\x95\x08\xec\xf2\
+V\xa9\xa1\xf6#\xcd\xdcLx\xaa!\x13\xdc\xfa\x81\xae\
+ \xcd\x92\xdc\xcb\xf8\xc9\xd1\xfe\xf1\x99\xd3I\xe24u\
+\xf6\xa3Q\x9e\x15r&\xe2\xf9K~\xfa\xe6C\xe7\xf0\
+\xf0x\xcf\x06)\xd3\xd3\x0f\xf3\xac\x92\xaf\x09\x81\x0a'\
+g\xce\xa9\x9b\x04~F%\xa4\x07\x18\xe0\xdch\x84\xaa\
+2a\xc5@yq\x9dX\xd9y\xed>\x1c\x0c\x08|\
+G\xe0\xba\xa0(n\xd5\xd6\x0f\xad+o\x0a\x15\xa4K\
+\x01S\x08Ur,7*HG\xac\x89\x8b\x94\x0d\xc1\
+\xb8\xc4\xcf\xf2$\xaa\x14\xb8\xd4\x1bl\xd0\xdf@\xd1\xe0\
+\xfdu\x11ya\xde\xf7\xf9\xab\xa1\x9f\xb9\xa1\x03\x7f\x9d\
+\xa1\xf8\xb8k\x96x*\x86\xfd\xa7\xf8c\x9d\xef\x9af\
+\x9e\xe2\x07\x10\xb9C?\x1d\xb9\x9e\xcfeV\xd98\xa4\
+\xb1\x91\xfa\xa6~u\xbb\xd2\x8d\xa6\xbd\xd1\xebM\xb4\x5c\
+e\x8ah\xfa\x8b\xd2\xed\xe6\xa9\x9f4\xc3\xd8\x8b\xcaL\
+\xac:\xf4#\x8dU\xad\x9aE-\xf8\xc7\x80\xcc\xa2\x19\
+\xbd^\xd1\xa82\x1eg\x9b_\x5c*\xff\xe2\xaa\xbd\xea\
+=\x11\x91U\xf9j4\xb3c\xe51\x9a<+\xeb\xd2\
+gT\xf9\x94\xe4\xa8\xb8_\xb6\xe1\xa6\xb3?Y\xbd\xa1\
+\xc8\
+\x00\x00\x04C\
+\x00\
+\x00\x0c\xf4x\x9c\xddW[o\x1bE\x14\x1e_\x92\x92\
+-\xb9\xb4i\x93\x16\xda2\xa9%dCe\x9c4A\
+\xa8&\x11\xa8 Z\xa9R\xaa\x06UHV\xb4Z\xaf\
+\xd7\xe9\xc2^\xac\xddY7\xa8\xf2\x8f\xe0\x85\xbf\xc3o\
+\xe0o\xf0\xc8\x13/U9g\xe6\xcc\xee\xec\xda\xa1*\
+\x0f<0\xd2d\xe7\x5c\xe6|\xe7|sf\x920\xc6\
+V\x98\x1au\x98\x16sY\xcc\x02\x98\x09H\x0d\x98\xb5\
+74\xd8\x82\xb1\xc1&\xe0\x9a2\x9f\x09\x981\x8b@\
+\xd7D\xc3?m\xaa\xc1\x5ccSf\xcfa\xbdu\xdb\
+2\x1b\xb2\x8c\x8d\xe5\xcaf{\xec\x00V_\xcd\xf9\x84\
+\x10|\x02\xab\xcb\xa45=6\x16\x85~\x97Q\xa3o\
+\x93\xbe\xcb\xf4\x1d\x15.\x8d\x17\x8dz\xeb\x12\xbaZ\xec\
+=\xd6\x22\xed\x15 \xb8&\xb3Z\x96\xdf\xef\x9e\x9c<\
+\xe9\xa6b\xd4\xdd?\xe8\xa1}MQ m\xebt(\
+\x08\x12:>\xd2*5X\xd1&\xcc;\xb8\x1f\xac+\
+\xb4f$_&\x19c<bK\x80\xa9\x86fB\xeb\
+j\xa43\xfd\xea\xa4k\xc8X\x8d\x5c\xf7\x08\xe2n\xd3\
+\xfe%\xf2\xd7r\xcb\x88\xabuP\xb8d\x19clS\
+\x0c\xcc\xed&|\xef\x1a\xb9\xa2\xbcc\xc8w\x8cZ6\
+aW]\xda\x1b2\x1f\x5co\xc1\x0a\xc9\xe60\xb7\xc1\
+\xff\x12\x91\xdf\x90\xba&0\xad\xd6\xa8\xef\x93\xbcb\xd8\
+-\xaaW\xdb-\x83\x03\x8c\xb7J\xf1\x90\xf3\xeb\xf0s\
+\x8d\xb0p|J\xf2:\xf9\xdf\x02y\x83\xfc\xd7e\xde\
+\x8aC\x1dc\x830\xaf\x12\xfe\x15\xc2\xbcJ\xe7\xd7 \
+\x8ck\x84Q#\x8ckR\xaf\xc6\x0d\x90\xb7(fS\
+b(>\xb7(\xf6\x0d\xe2e\x9bb\xa3|\x93th\
+\xff \xe7M\xc9\xb7\x09g\x95\xfco\xb3\xa2W\xd0\xbe\
+Cy\xa1\xfds\xa8\xa7\xce\x8a&G\xfd_\xa0\xc1\xf3\
+?$\xee\xdf'\xfe\x8e\xc0\xbaB\xf2\xd7\xe0\x81\xb8\x1f\
+R.\xd7\xc9\x7fKr\xa6\xf4\x87\xc4\xf5G\x84\xff\x0b\
+\xecY%\x1en\x91\x1e\xe3\xecP\xbflR\x1c\xc4\xb9\
+K~\xaf!\xeb/\xd4Ul\xd2\xfd@a\xc4\x8a\xfb\
+\xf9{k\xea%\xa9\x1fG|\xb7\xd7\xb3\xacT$\x99\
++\xf80\x1b[\xaf,\x0e#t\xc4>\x0f\xa7\x93\xbe\
+5\xeb[V\x16\xf9\xe38\x09\xd1\xce\xed\xbd\x03\xd0L\
+\x9d\xe4g?:\xe3S\xcf\xbd\xcf\xa7\xb6\x1b\x07q\xd2\
+\xb7\x1c!\x12\x7f\x98\x09O\xe9\x17i\xf7\xf9$N}\
+\x01\xc8\x18%\xf6G\x1c3lw\x08\x97B\xf1C\xbd\
+\x19\x95g\x81\xfd\x946\x81\x01\x12\xe8Bf\xfc\x13#\
+\xd2\xcc\xb2*\xc5\x9e\xb3b\x18\xc5\xee\xfd/\x8b\xfd\xd5\
+(\xf6\xb7\xa2\xd8\x83\x7fSl\x9c\x89J\xa1~T\xaa\
+P\x89\xffEix\xc7\xf6\x8a\xca\xea\x7f\xb8\x90\xe6\xd8\
+Kd\xb6\x0fx\xe2\x9d\xf9\xa9\xf0\x92\xf6\xb0\xa7a\x93\
+\xf8\xa5\x1d:?\x02\xf08\x88\xa1\xd0\xf3}\x84\xb1\x11\
+\xe6\x01\x9f8\xeeO\xf1x\x9cz\xa2\xed\xf6:\xaa~\
+\xe0\xc7\x11\xbeK\xeef\x86\xfd\x92\xc9\xa0\xa3\xac^\xa0\
+,QC\xfc\x9f<}\xfc\xec\xb9\xfd0\x89\xd3\xd4~\
+\x1cM2A\x09W6@\x96\xdf\x7f\xfb\xc3\xc3\xe3\xe3\
+g\xdf\xf4\xfa\x85\x03\xc1\x18\xd6]\x95\xfe\x82\xe8\xc7\x99\
+\xa8\x84\xcfs\xbf z\xa9l\xf09yn\x900\xd3\
+\xc7\x0b]%\xecw=\xe30\x0b\xda\xba\xb6{\xfa(\
+:\xf2\x9c\xe7sV\x1d4\xc7\x14\x07n\xcf<\xdb\xc7\
+\xb5\x86\xd6\xc0\x86\xa9k$1)20=\x8ac\x91\
+\xe9\x17\x05)\xc5\x82\x8c\xd4\xeeX\x0a\xca\xc9\xd4t\xcb\
+\xc5\x96\x9ag\xce\xb7`+\xef$\xd9\xb1\x9e\xc8\x92\xa8\
+\x0243oA\x93~{\xd0\xa8\xfd\xd9\xf2#7\xc8\
+F\x1e\xff2\xf4\x84\x13\xd8\xf0WR\xe0\x0f\x8f\xacB\
+\x9f\xfa\xe1\xe83\xfc\xd1}q\x04w<\xc5\xc7+r\
+B/\x85+\xe0q\xb9\xab\xbf\xe0i\xc8\xefL\xfe<\
+\x90\x0bf\xd2\xc3\xec\x16\xb7\xd5`\x90\xa5p\x0d\x83\xd8\
+\x8dz\x9d\xd3\xd3\x0b[k0\xd0'\x80Ns\xf1\xfd\
+\xe8\x82K1\x18\xe4\xafj\xbb\x02\xa0o\x86\xe9\xb2\xdb\
+\xd1\xe1\xf1\x88\xbd\xf3\x22}\xb5jk8\xeecl\xdd\
+!\xa7\xa7\xf7 X\x04b$I\xf9\x18\xfb\x15\xec\xea\
+\xcd\x91\xc0\x9d\xfc\x0d\xd5\x01q\x1e\xf2W3\x95R\x5c\
+:g?2{2\x9e\xeb\x97\xe2\x01\x04\xcfroR\
+W\xc4\xaa\x19\xb0\x1b\x96$&=\x8a\x95\x871\xff\xad\
+\xce\xe8\xbf\x83J\xcb\xcc\xd9\xb5\xae\xea'\xc7\xdf%\xe1\
+\xb4\xa2\
+"
+
+qt_resource_name = b"\
+\x00\x0d\
+\x06E\xc5\xd3\
+\x00s\
+\x00h\x00a\x00d\x00e\x00r\x00_\x00a\x00s\x00s\x00e\x00t\x00s\
+\x00\x0e\
+\x04\x16\xeb\xb2\
+\x00c\
+\x00o\x00l\x00o\x00r\x00.\x00f\x00r\x00a\x00g\x00.\x00q\x00s\x00b\
+\x00\x0e\
+\x00\xfb\xe9\x92\
+\x00c\
+\x00o\x00l\x00o\x00r\x00.\x00v\x00e\x00r\x00t\x00.\x00q\x00s\x00b\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00B\x00\x00\x00\x00\x00\x01\x00\x00\x02\xe6\
+\x00\x00\x01\x8a!\x0c\xa5\xeb\
+\x00\x00\x00 \x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x8a!\x0c\xa5\xeb\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/widgets/rhi/simplerhiwidget/shader_assets/color.frag.qsb b/examples/widgets/rhi/simplerhiwidget/shader_assets/color.frag.qsb
new file mode 100644
index 000000000..32bd2d595
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/shader_assets/color.frag.qsb
Binary files differ
diff --git a/examples/widgets/rhi/simplerhiwidget/shader_assets/color.vert.qsb b/examples/widgets/rhi/simplerhiwidget/shader_assets/color.vert.qsb
new file mode 100644
index 000000000..bf97035d7
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/shader_assets/color.vert.qsb
Binary files differ
diff --git a/examples/widgets/rhi/simplerhiwidget/shaders/color.frag b/examples/widgets/rhi/simplerhiwidget/shaders/color.frag
new file mode 100644
index 000000000..375587662
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/shaders/color.frag
@@ -0,0 +1,10 @@
+#version 440
+
+layout(location = 0) in vec3 v_color;
+
+layout(location = 0) out vec4 fragColor;
+
+void main()
+{
+ fragColor = vec4(v_color, 1.0);
+}
diff --git a/examples/widgets/rhi/simplerhiwidget/shaders/color.vert b/examples/widgets/rhi/simplerhiwidget/shaders/color.vert
new file mode 100644
index 000000000..e876f290e
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/shaders/color.vert
@@ -0,0 +1,16 @@
+#version 440
+
+layout(location = 0) in vec4 position;
+layout(location = 1) in vec3 color;
+
+layout(location = 0) out vec3 v_color;
+
+layout(std140, binding = 0) uniform buf {
+ mat4 mvp;
+};
+
+void main()
+{
+ v_color = color;
+ gl_Position = mvp * position;
+}
diff --git a/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.pyproject b/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.pyproject
new file mode 100644
index 000000000..ff0d62755
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py","examplewidget.py", "simplerhiwidget.qrc",
+ "shaders/color.frag", "shaders/color.vert"]
+}
diff --git a/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.qrc b/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.qrc
new file mode 100644
index 000000000..ddc6dfbe5
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+ <file>shader_assets/color.vert.qsb</file>
+ <file>shader_assets/color.frag.qsb</file>
+</qresource>
+</RCC>
diff --git a/examples/widgets/richtext/orderform/orderform.py b/examples/widgets/richtext/orderform/orderform.py
index fd0be01fe..9725624c3 100644
--- a/examples/widgets/richtext/orderform/orderform.py
+++ b/examples/widgets/richtext/orderform/orderform.py
@@ -89,8 +89,7 @@ class MainWindow(QMainWindow):
body_frame_format.setWidth(QTextLength(QTextLength.PercentageLength, 100))
cursor.insertFrame(body_frame_format)
- cursor.insertText("I would like to place an order for the following "
- "items:", text_format)
+ cursor.insertText("I would like to place an order for the following items:", text_format)
cursor.insertBlock()
cursor.insertBlock()
@@ -121,17 +120,17 @@ class MainWindow(QMainWindow):
cursor.insertBlock()
cursor.insertText("Please update my records to take account of the "
- "following privacy information:")
+ "following privacy information:")
cursor.insertBlock()
offers_table = cursor.insertTable(2, 2)
cursor = offers_table.cellAt(0, 1).firstCursorPosition()
cursor.insertText("I want to receive more information about your "
- "company's products and special offers.", text_format)
+ "company's products and special offers.", text_format)
cursor = offers_table.cellAt(1, 1).firstCursorPosition()
cursor.insertText("I do not want to receive any promotional "
- "information from your company.", text_format)
+ "information from your company.", text_format)
if sendOffers:
cursor = offers_table.cellAt(0, 0).firstCursorPosition()
@@ -153,8 +152,8 @@ class MainWindow(QMainWindow):
def create_sample(self):
dialog = DetailsDialog('Dialog with default values', self)
self.create_letter('Mr Smith',
- '12 High Street\nSmall Town\nThis country',
- dialog.order_items(), True)
+ '12 High Street\nSmall Town\nThis country',
+ dialog.order_items(), True)
@Slot()
def open_dialog(self):
@@ -162,7 +161,7 @@ class MainWindow(QMainWindow):
if dialog.exec() == QDialog.Accepted:
self.create_letter(dialog.sender_name(), dialog.sender_address(),
- dialog.order_items(), dialog.send_offers())
+ dialog.order_items(), dialog.send_offers())
@Slot()
def print_file(self):
@@ -193,8 +192,7 @@ class DetailsDialog(QDialog):
self._name_edit = QLineEdit()
self._address_edit = QTextEdit()
- self._offers_check_box = QCheckBox("Send information about "
- "products and special offers:")
+ self._offers_check_box = QCheckBox("Send information about products and special offers:")
self.setup_items_table()
@@ -250,9 +248,9 @@ class DetailsDialog(QDialog):
return
answer = QMessageBox.warning(self, "Incomplete Form",
- "The form does not contain all the necessary information.\n"
- "Do you want to discard it?",
- QMessageBox.Yes, QMessageBox.No)
+ "The form does not contain all the necessary information.\n"
+ "Do you want to discard it?",
+ QMessageBox.Yes, QMessageBox.No)
if answer == QMessageBox.Yes:
self.reject()
diff --git a/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py b/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py
index c329eefd6..021328977 100644
--- a/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py
+++ b/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py
@@ -12,7 +12,7 @@ from PySide6.QtCore import (QFile, Qt, QTextStream)
from PySide6.QtGui import (QColor, QFont, QFontDatabase, QKeySequence,
QSyntaxHighlighter, QTextCharFormat)
from PySide6.QtWidgets import (QApplication, QFileDialog, QMainWindow,
- QPlainTextEdit)
+ QPlainTextEdit)
class MainWindow(QMainWindow):
@@ -81,7 +81,7 @@ class MainWindow(QMainWindow):
quit_act.triggered.connect(self.close)
help_menu = self.menuBar().addMenu("&Help")
- help_menu.addAction("About &Qt", qApp.aboutQt)
+ help_menu.addAction("About &Qt", qApp.aboutQt) # noqa: F821
class Highlighter(QSyntaxHighlighter):
diff --git a/examples/widgets/richtext/textedit/main.py b/examples/widgets/richtext/textedit/main.py
index 88b679edc..330ea5fc5 100644
--- a/examples/widgets/richtext/textedit/main.py
+++ b/examples/widgets/richtext/textedit/main.py
@@ -11,7 +11,7 @@ from PySide6.QtWidgets import QApplication
from textedit import TextEdit
-import textedit_rc
+import textedit_rc # noqa: F401
if __name__ == '__main__':
diff --git a/examples/widgets/richtext/textedit/textedit.py b/examples/widgets/richtext/textedit/textedit.py
index 4f4146d34..8019446f0 100644
--- a/examples/widgets/richtext/textedit/textedit.py
+++ b/examples/widgets/richtext/textedit/textedit.py
@@ -55,7 +55,7 @@ class TextEdit(QMainWindow):
help_menu = self.menuBar().addMenu("Help")
help_menu.addAction("About", self.about)
- help_menu.addAction("About &Qt", qApp.aboutQt)
+ help_menu.addAction("About &Qt", qApp.aboutQt) # noqa: F821
text_font = QFont("Helvetica")
text_font.setStyleHint(QFont.SansSerif)
@@ -101,13 +101,14 @@ class TextEdit(QMainWindow):
tb = self.addToolBar("File self.actions")
menu = self.menuBar().addMenu("&File")
- icon = QIcon.fromTheme("document-new", QIcon(RSRC_PATH + "/filenew.png"))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentNew,
+ QIcon(RSRC_PATH + "/filenew.png"))
a = menu.addAction(icon, "&New", self.file_new)
tb.addAction(a)
a.setPriority(QAction.LowPriority)
a.setShortcut(QKeySequence.New)
- icon = QIcon.fromTheme("document-open",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen,
QIcon(RSRC_PATH + "/fileopen.png"))
a = menu.addAction(icon, "&Open...", self.file_open)
a.setShortcut(QKeySequence.Open)
@@ -115,7 +116,7 @@ class TextEdit(QMainWindow):
menu.addSeparator()
- icon = QIcon.fromTheme("document-save",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentSave,
QIcon(RSRC_PATH + "/filesave.png"))
self._action_save = menu.addAction(icon, "&Save", self.file_save)
self._action_save.setShortcut(QKeySequence.Save)
@@ -126,7 +127,7 @@ class TextEdit(QMainWindow):
a.setPriority(QAction.LowPriority)
menu.addSeparator()
- icon = QIcon.fromTheme("document-print",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentPrint,
QIcon(RSRC_PATH + "/fileprint.png"))
a = menu.addAction(icon, "&Print...", self.file_print)
a.setPriority(QAction.LowPriority)
@@ -151,32 +152,36 @@ class TextEdit(QMainWindow):
tb = self.addToolBar("Edit self.actions")
menu = self.menuBar().addMenu("&Edit")
- icon = QIcon.fromTheme("edit-undo",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditUndo,
QIcon(RSRC_PATH + "/editundo.png"))
self._action_undo = menu.addAction(icon, "&Undo", self._text_edit.undo)
self._action_undo.setShortcut(QKeySequence.Undo)
tb.addAction(self._action_undo)
- icon = QIcon.fromTheme("edit-redo", QIcon(RSRC_PATH + "/editredo.png"))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditRedo,
+ QIcon(RSRC_PATH + "/editredo.png"))
self._action_redo = menu.addAction(icon, "&Redo", self._text_edit.redo)
self._action_redo.setPriority(QAction.LowPriority)
self._action_redo.setShortcut(QKeySequence.Redo)
tb.addAction(self._action_redo)
menu.addSeparator()
- icon = QIcon.fromTheme("edit-cut", QIcon(RSRC_PATH + "/editcut.png"))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCut,
+ QIcon(RSRC_PATH + "/editcut.png"))
self._action_cut = menu.addAction(icon, "Cu&t", self._text_edit.cut)
self._action_cut.setPriority(QAction.LowPriority)
self._action_cut.setShortcut(QKeySequence.Cut)
tb.addAction(self._action_cut)
- icon = QIcon.fromTheme("edit-copy", QIcon(RSRC_PATH + "/editcopy.png"))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCopy,
+ QIcon(RSRC_PATH + "/editcopy.png"))
self._action_copy = menu.addAction(icon, "&Copy", self._text_edit.copy)
self._action_copy.setPriority(QAction.LowPriority)
self._action_copy.setShortcut(QKeySequence.Copy)
tb.addAction(self._action_copy)
- icon = QIcon.fromTheme("edit-paste", QIcon(RSRC_PATH + "/editpaste.png"))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditPaste,
+ QIcon(RSRC_PATH + "/editpaste.png"))
self._action_paste = menu.addAction(icon, "&Paste", self._text_edit.paste)
self._action_paste.setPriority(QAction.LowPriority)
self._action_paste.setShortcut(QKeySequence.Paste)
@@ -190,7 +195,7 @@ class TextEdit(QMainWindow):
tb = self.addToolBar("Format self.actions")
menu = self.menuBar().addMenu("F&ormat")
- icon = QIcon.fromTheme("format-text-bold",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatTextBold,
QIcon(RSRC_PATH + "/textbold.png"))
self._action_text_bold = menu.addAction(icon, "&Bold", self.text_bold)
self._action_text_bold.setShortcut(Qt.CTRL | Qt.Key_B)
@@ -201,7 +206,7 @@ class TextEdit(QMainWindow):
tb.addAction(self._action_text_bold)
self._action_text_bold.setCheckable(True)
- icon = QIcon.fromTheme("format-text-italic",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatTextItalic,
QIcon(RSRC_PATH + "/textitalic.png"))
self._action_text_italic = menu.addAction(icon, "&Italic", self.text_italic)
self._action_text_italic.setPriority(QAction.LowPriority)
@@ -212,7 +217,7 @@ class TextEdit(QMainWindow):
tb.addAction(self._action_text_italic)
self._action_text_italic.setCheckable(True)
- icon = QIcon.fromTheme("format-text-underline",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatTextUnderline,
QIcon(RSRC_PATH + "/textunder.png"))
self._action_text_underline = menu.addAction(icon, "&Underline",
self.text_underline)
@@ -226,36 +231,36 @@ class TextEdit(QMainWindow):
menu.addSeparator()
- icon = QIcon.fromTheme("format-justify-left",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyLeft,
QIcon(RSRC_PATH + "/textleft.png"))
self._action_align_left = QAction(icon, "&Left", self)
self._action_align_left.setShortcut(Qt.CTRL | Qt.Key_L)
self._action_align_left.setCheckable(True)
self._action_align_left.setPriority(QAction.LowPriority)
- icon = QIcon.fromTheme("format-justify-center",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyCenter,
QIcon(RSRC_PATH + "/textcenter.png"))
self._action_align_center = QAction(icon, "C&enter", self)
self._action_align_center.setShortcut(Qt.CTRL | Qt.Key_E)
self._action_align_center.setCheckable(True)
self._action_align_center.setPriority(QAction.LowPriority)
- icon = QIcon.fromTheme("format-justify-right",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyRight,
QIcon(RSRC_PATH + "/textright.png"))
self._action_align_right = QAction(icon, "&Right", self)
self._action_align_right.setShortcut(Qt.CTRL | Qt.Key_R)
self._action_align_right.setCheckable(True)
self._action_align_right.setPriority(QAction.LowPriority)
- icon = QIcon.fromTheme("format-justify-fill",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyFill,
QIcon(RSRC_PATH + "/textjustify.png"))
self._action_align_justify = QAction(icon, "&Justify", self)
self._action_align_justify.setShortcut(Qt.CTRL | Qt.Key_J)
self._action_align_justify.setCheckable(True)
self._action_align_justify.setPriority(QAction.LowPriority)
- icon = QIcon.fromTheme("format-indent-more",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatIndentMore,
QIcon(RSRC_PATH + "/format-indent-more.png"))
self._action_indent_more = menu.addAction(icon, "&Indent", self.indent)
self._action_indent_more.setShortcut(Qt.CTRL | Qt.Key_BracketRight)
self._action_indent_more.setPriority(QAction.LowPriority)
- icon = QIcon.fromTheme("format-indent-less",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatIndentLess,
QIcon(RSRC_PATH + "/format-indent-less.png"))
self._action_indent_less = menu.addAction(icon, "&Unindent",
self.unindent)
@@ -621,7 +626,7 @@ class TextEdit(QMainWindow):
above = QTextCursor(cursor)
above.movePosition(QTextCursor.Up)
if (above.currentList()
- and list_fmt.indent() + amount == above.currentList().format().indent()):
+ and list_fmt.indent() + amount == above.currentList().format().indent()):
above.currentList().add(cursor.block())
else:
list_fmt.setIndent(list_fmt.indent() + amount)
diff --git a/examples/widgets/tools/regularexpression/regularexpressiondialog.py b/examples/widgets/tools/regularexpression/regularexpressiondialog.py
index 4fc9c62a2..2d2bb2bb7 100644
--- a/examples/widgets/tools/regularexpression/regularexpressiondialog.py
+++ b/examples/widgets/tools/regularexpression/regularexpressiondialog.py
@@ -5,12 +5,14 @@ import re
import logging
from PySide6.QtCore import (QMargins, QRegularExpression, QRegularExpressionMatch,
- QRegularExpressionMatchIterator, Qt, Slot,)
+ QRegularExpressionMatchIterator, Qt, Slot,)
from PySide6.QtGui import (QAction, QColor, QContextMenuEvent, QFontDatabase,
- QGuiApplication, QIcon, QPalette,)
+ QGuiApplication, QIcon, QPalette,)
from PySide6.QtWidgets import (QCheckBox, QComboBox, QDialog, QFormLayout,
- QFrame, QGridLayout, QHBoxLayout, QLabel, QLineEdit, QPlainTextEdit,
- QSpinBox, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget,)
+ QFrame, QGridLayout, QHBoxLayout, QLabel,
+ QLineEdit, QPlainTextEdit, QSpinBox,
+ QTreeWidget, QTreeWidgetItem, QVBoxLayout,
+ QWidget)
def rawStringLiteral(pattern: str) -> str:
@@ -42,7 +44,7 @@ def codeToPattern(code: str) -> str:
if code_characters[index] == '\\':
del code_characters[index]
code_characters_size -= 1
- index +=1
+ index += 1
code = "".join(code_characters)
if code.startswith('"') and code.endswith('"'):
@@ -85,7 +87,7 @@ class PatternLineEdit(QLineEdit):
t = (
t[: selection_start]
+ escapedSelection
- + t[selection_start + len(selection) :]
+ + t[selection_start + len(selection):]
)
self.setText(t)
@@ -327,23 +329,20 @@ class RegularExpressionDialog(QDialog):
self.patternOptionsCheckBoxLayout = QGridLayout()
gridRow = 0
- self.patternOptionsCheckBoxLayout.addWidget(self.caseInsensitiveOptionCheckBox, gridRow, \
- 1)
- self.patternOptionsCheckBoxLayout.addWidget(self.dotMatchesEverythingOptionCheckBox, gridRow\
- ,2)
+ self.patternOptionsCheckBoxLayout.addWidget(self.caseInsensitiveOptionCheckBox, gridRow, 1)
+ self.patternOptionsCheckBoxLayout.addWidget(
+ self.dotMatchesEverythingOptionCheckBox, gridRow, 2)
gridRow = gridRow + 1
- self.patternOptionsCheckBoxLayout.addWidget(self.multilineOptionCheckBox, gridRow, \
- 1)
- self.patternOptionsCheckBoxLayout.addWidget(self.extendedPatternSyntaxOptionCheckBox, gridRow \
- , 2)
+ self.patternOptionsCheckBoxLayout.addWidget(self.multilineOptionCheckBox, gridRow, 1)
+ self.patternOptionsCheckBoxLayout.addWidget(
+ self.extendedPatternSyntaxOptionCheckBox, gridRow, 2)
gridRow = gridRow + 1
- self.patternOptionsCheckBoxLayout.addWidget(self.invertedGreedinessOptionCheckBox, gridRow,\
- 1)
- self.patternOptionsCheckBoxLayout.addWidget(self.dontCaptureOptionCheckBox, gridRow,\
- 2)
+ self.patternOptionsCheckBoxLayout.addWidget(
+ self.invertedGreedinessOptionCheckBox, gridRow, 1)
+ self.patternOptionsCheckBoxLayout.addWidget(self.dontCaptureOptionCheckBox, gridRow, 2)
gridRow = gridRow + 1
- self.patternOptionsCheckBoxLayout.addWidget(self.useUnicodePropertiesOptionCheckBox, gridRow,\
- 1)
+ self.patternOptionsCheckBoxLayout.addWidget(
+ self.useUnicodePropertiesOptionCheckBox, gridRow, 1)
form_layout.addRow("Pattern options:", self.patternOptionsCheckBoxLayout)
diff --git a/examples/widgets/tutorials/addressbook/part1.py b/examples/widgets/tutorials/addressbook/part1.py
index e26206d8f..648ddea46 100644
--- a/examples/widgets/tutorials/addressbook/part1.py
+++ b/examples/widgets/tutorials/addressbook/part1.py
@@ -5,9 +5,8 @@
import sys
from PySide6.QtCore import Qt
-from PySide6.QtWidgets import (QApplication, QGridLayout,
- QLabel, QGridLayout, QLineEdit, QTextEdit,
- QWidget)
+from PySide6.QtWidgets import (QApplication, QGridLayout, QLabel, QLineEdit,
+ QTextEdit, QWidget)
class AddressBook(QWidget):
diff --git a/examples/widgets/tutorials/addressbook/part2.py b/examples/widgets/tutorials/addressbook/part2.py
index 89c813006..3c0eb451d 100644
--- a/examples/widgets/tutorials/addressbook/part2.py
+++ b/examples/widgets/tutorials/addressbook/part2.py
@@ -102,17 +102,16 @@ class AddressBook(QWidget):
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
if not self.contacts:
diff --git a/examples/widgets/tutorials/addressbook/part3.py b/examples/widgets/tutorials/addressbook/part3.py
index 571a96a48..611796f5e 100644
--- a/examples/widgets/tutorials/addressbook/part3.py
+++ b/examples/widgets/tutorials/addressbook/part3.py
@@ -116,17 +116,16 @@ class AddressBook(QWidget):
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
if not self.contacts:
diff --git a/examples/widgets/tutorials/addressbook/part4.py b/examples/widgets/tutorials/addressbook/part4.py
index 505fe4db9..95f31d46c 100644
--- a/examples/widgets/tutorials/addressbook/part4.py
+++ b/examples/widgets/tutorials/addressbook/part4.py
@@ -128,34 +128,34 @@ class AddressBook(QWidget):
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if self._current_mode == self.AddingMode:
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._current_mode == self.EditingMode:
if self._old_name != name:
if name not in self.contacts:
QMessageBox.information(self, "Edit Successful",
- f'"{self.oldName}" has been edited in your address book.')
+ f'"{self.oldName}" has been edited in your '
+ 'address book.')
del self.contacts[self._old_name]
self.contacts[name] = address
else:
QMessageBox.information(self, "Edit Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._old_address != address:
QMessageBox.information(self, "Edit Successful",
- f'"{name}" has been edited in your address book.')
+ f'"{name}" has been edited in your address book.')
self.contacts[name] = address
self.update_interface(self.NavigationMode)
@@ -169,19 +169,18 @@ class AddressBook(QWidget):
@Slot()
def remove_contact(self):
name = self._name_line.text()
- address = self._address_text.toPlainText()
if name in self.contacts:
button = QMessageBox.question(self, "Confirm Remove",
- f'Are you sure you want to remove "{name}"?',
- QMessageBox.Yes | QMessageBox.No)
+ f'Are you sure you want to remove "{name}"?',
+ QMessageBox.Yes | QMessageBox.No)
if button == QMessageBox.Yes:
self.previous()
del self.contacts[name]
QMessageBox.information(self, "Remove Successful",
- f'"{name}" has been removed from your address book.')
+ f'"{name}" has been removed from your address book.')
self.update_interface(self.NavigationMode)
diff --git a/examples/widgets/tutorials/addressbook/part5.py b/examples/widgets/tutorials/addressbook/part5.py
index 72245703f..1e9c05862 100644
--- a/examples/widgets/tutorials/addressbook/part5.py
+++ b/examples/widgets/tutorials/addressbook/part5.py
@@ -134,34 +134,34 @@ class AddressBook(QWidget):
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if self._current_mode == self.AddingMode:
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._current_mode == self.EditingMode:
if self._old_name != name:
if name not in self.contacts:
QMessageBox.information(self, "Edit Successful",
- f'"{self.oldName}" has been edited in your address book.')
+ f'"{self.oldName}" has been edited in your '
+ 'address book.')
del self.contacts[self._old_name]
self.contacts[name] = address
else:
QMessageBox.information(self, "Edit Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._old_address != address:
QMessageBox.information(self, "Edit Successful",
- f'"{name}" has been edited in your address book.')
+ f'"{name}" has been edited in your address book.')
self.contacts[name] = address
self.update_interface(self.NavigationMode)
@@ -175,19 +175,18 @@ class AddressBook(QWidget):
@Slot()
def remove_contact(self):
name = self._name_line.text()
- address = self._address_text.toPlainText()
if name in self.contacts:
button = QMessageBox.question(self, "Confirm Remove",
- f'Are you sure you want to remove "{name}"?',
- QMessageBox.Yes | QMessageBox.No)
+ f'Are you sure you want to remove "{name}"?',
+ QMessageBox.Yes | QMessageBox.No)
if button == QMessageBox.Yes:
self.previous()
del self.contacts[name]
QMessageBox.information(self, "Remove Successful",
- f'"{name}" has been removed from your address book.')
+ f'"{name}" has been removed from your address book.')
self.update_interface(self.NavigationMode)
@@ -243,7 +242,7 @@ class AddressBook(QWidget):
self._address_text.setText(self.contacts[contact_name])
else:
QMessageBox.information(self, "Contact Not Found",
- f'Sorry, "{contact_name}" is not in your address book.')
+ f'Sorry, "{contact_name}" is not in your address book.')
return
self.update_interface(self.NavigationMode)
@@ -311,8 +310,7 @@ class FindDialog(QDialog):
text = self._line_edit.text()
if not text:
- QMessageBox.information(self, "Empty Field",
- "Please enter a name.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name.")
return
else:
self._find_text = text
diff --git a/examples/widgets/tutorials/addressbook/part6.py b/examples/widgets/tutorials/addressbook/part6.py
index f75fbf44f..d11298fb9 100644
--- a/examples/widgets/tutorials/addressbook/part6.py
+++ b/examples/widgets/tutorials/addressbook/part6.py
@@ -145,34 +145,34 @@ class AddressBook(QWidget):
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if self._current_mode == self.AddingMode:
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._current_mode == self.EditingMode:
if self._old_name != name:
if name not in self.contacts:
QMessageBox.information(self, "Edit Successful",
- f'"{self.oldName}" has been edited in your address book.')
+ f'"{self.oldName}" has been edited in your '
+ 'address book.')
del self.contacts[self._old_name]
self.contacts[name] = address
else:
QMessageBox.information(self, "Edit Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._old_address != address:
QMessageBox.information(self, "Edit Successful",
- f'"{name}" has been edited in your address book.')
+ f'"{name}" has been edited in your address book.')
self.contacts[name] = address
self.update_interface(self.NavigationMode)
@@ -186,19 +186,18 @@ class AddressBook(QWidget):
@Slot()
def remove_contact(self):
name = self._name_line.text()
- address = self._address_text.toPlainText()
if name in self.contacts:
button = QMessageBox.question(self, "Confirm Remove",
- f'Are you sure you want to remove "{name}"?',
- QMessageBox.Yes | QMessageBox.No)
+ f'Are you sure you want to remove "{name}"?',
+ QMessageBox.Yes | QMessageBox.No)
if button == QMessageBox.Yes:
self.previous()
del self.contacts[name]
QMessageBox.information(self, "Remove Successful",
- f'"{name}" has been removed from your address book.')
+ f'"{name}" has been removed from your address book.')
self.update_interface(self.NavigationMode)
@@ -254,7 +253,7 @@ class AddressBook(QWidget):
self._address_text.setText(self.contacts[contact_name])
else:
QMessageBox.information(self, "Contact Not Found",
- f'Sorry, "{contact_name}" is not in your address book.')
+ f'Sorry, "{contact_name}" is not in your address book.')
return
self.update_interface(self.NavigationMode)
@@ -304,8 +303,8 @@ class AddressBook(QWidget):
def save_to_file(self):
fileName, _ = QFileDialog.getSaveFileName(self,
- "Save Address Book", '',
- "Address Book (*.abk);;All Files (*)")
+ "Save Address Book", '',
+ "Address Book (*.abk);;All Files (*)")
if not fileName:
return
@@ -314,7 +313,7 @@ class AddressBook(QWidget):
out_file = open(str(fileName), 'wb')
except IOError:
QMessageBox.information(self, "Unable to open file",
- f'There was an error opening "{fileName}"')
+ f'There was an error opening "{fileName}"')
return
pickle.dump(self.contacts, out_file)
@@ -322,8 +321,8 @@ class AddressBook(QWidget):
def load_from_file(self):
fileName, _ = QFileDialog.getOpenFileName(self,
- "Open Address Book", '',
- "Address Book (*.abk);;All Files (*)")
+ "Open Address Book", '',
+ "Address Book (*.abk);;All Files (*)")
if not fileName:
return
@@ -332,7 +331,7 @@ class AddressBook(QWidget):
in_file = open(str(fileName), 'rb')
except IOError:
QMessageBox.information(self, "Unable to open file",
- f'There was an error opening "{fileName}"')
+ f'There was an error opening "{fileName}"')
return
self.contacts = pickle.load(in_file)
@@ -340,8 +339,7 @@ class AddressBook(QWidget):
if len(self.contacts) == 0:
QMessageBox.information(self, "No contacts in file",
- "The file you are attempting to open contains no "
- "contacts.")
+ "The file you are attempting to open contains no contacts.")
else:
for name, address in self.contacts:
self._name_line.setText(name)
@@ -375,8 +373,7 @@ class FindDialog(QDialog):
text = self._line_edit.text()
if not text:
- QMessageBox.information(self, "Empty Field",
- "Please enter a name.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name.")
return
self._find_text = text
diff --git a/examples/widgets/tutorials/addressbook/part7.py b/examples/widgets/tutorials/addressbook/part7.py
index 2f874f9bd..3829c003d 100644
--- a/examples/widgets/tutorials/addressbook/part7.py
+++ b/examples/widgets/tutorials/addressbook/part7.py
@@ -151,34 +151,34 @@ class AddressBook(QWidget):
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if self._current_mode == self.AddingMode:
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._current_mode == self.EditingMode:
if self._old_name != name:
if name not in self.contacts:
QMessageBox.information(self, "Edit Successful",
- f'"{self.oldName}" has been edited in your address book.')
+ f'"{self.oldName}" has been edited in your '
+ 'address book.')
del self.contacts[self._old_name]
self.contacts[name] = address
else:
QMessageBox.information(self, "Edit Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._old_address != address:
QMessageBox.information(self, "Edit Successful",
- f'"{name}" has been edited in your address book.')
+ f'"{name}" has been edited in your address book.')
self.contacts[name] = address
self.update_interface(self.NavigationMode)
@@ -192,19 +192,18 @@ class AddressBook(QWidget):
@Slot()
def remove_contact(self):
name = self._name_line.text()
- address = self._address_text.toPlainText()
if name in self.contacts:
button = QMessageBox.question(self, "Confirm Remove",
- f'Are you sure you want to remove "{name}"?',
- QMessageBox.Yes | QMessageBox.No)
+ f'Are you sure you want to remove "{name}"?',
+ QMessageBox.Yes | QMessageBox.No)
if button == QMessageBox.Yes:
self.previous()
del self.contacts[name]
QMessageBox.information(self, "Remove Successful",
- f'"{name}" has been removed from your address book.')
+ f'"{name}" has been removed from your address book.')
self.update_interface(self.NavigationMode)
@@ -260,7 +259,7 @@ class AddressBook(QWidget):
self._address_text.setText(self.contacts[contact_name])
else:
QMessageBox.information(self, "Contact Not Found",
- f'Sorry, "{contact_name}" is not in your address book.')
+ f'Sorry, "{contact_name}" is not in your address book.')
return
self.update_interface(self.NavigationMode)
@@ -313,8 +312,8 @@ class AddressBook(QWidget):
def save_to_file(self):
fileName, _ = QFileDialog.getSaveFileName(self,
- "Save Address Book", '',
- "Address Book (*.abk);;All Files (*)")
+ "Save Address Book", '',
+ "Address Book (*.abk);;All Files (*)")
if not fileName:
return
@@ -323,7 +322,7 @@ class AddressBook(QWidget):
out_file = open(str(fileName), 'wb')
except IOError:
QMessageBox.information(self, "Unable to open file",
- f'There was an error opening "{fileName}"')
+ f'There was an error opening "{fileName}"')
return
pickle.dump(self.contacts, out_file)
@@ -331,8 +330,8 @@ class AddressBook(QWidget):
def load_from_file(self):
fileName, _ = QFileDialog.getOpenFileName(self,
- "Open Address Book", '',
- "Address Book (*.abk);;All Files (*)")
+ "Open Address Book", '',
+ "Address Book (*.abk);;All Files (*)")
if not fileName:
return
@@ -341,7 +340,7 @@ class AddressBook(QWidget):
in_file = open(str(fileName), 'rb')
except IOError:
QMessageBox.information(self, "Unable to open file",
- f'There was an error opening "{fileName}"')
+ f'There was an error opening "{fileName}"')
return
self.contacts = pickle.load(in_file)
@@ -349,8 +348,7 @@ class AddressBook(QWidget):
if len(self.contacts) == 0:
QMessageBox.information(self, "No contacts in file",
- "The file you are attempting to open contains no "
- "contacts.")
+ "The file you are attempting to open contains no contacts.")
else:
for name, address in self.contacts:
self._name_line.setText(name)
@@ -372,7 +370,7 @@ class AddressBook(QWidget):
last_name = ''
file_name = QFileDialog.getSaveFileName(self, "Export Contact",
- '', "vCard Files (*.vcf);;All Files (*)")[0]
+ '', "vCard Files (*.vcf);;All Files (*)")[0]
if not file_name:
return
@@ -380,8 +378,7 @@ class AddressBook(QWidget):
out_file = QFile(file_name)
if not out_file.open(QIODevice.WriteOnly):
- QMessageBox.information(self, "Unable to open file",
- out_file.errorString())
+ QMessageBox.information(self, "Unable to open file", out_file.errorString())
return
out_s = QTextStream(out_file)
@@ -399,7 +396,7 @@ class AddressBook(QWidget):
out_s << 'END:VCARD' << '\n'
QMessageBox.information(self, "Export Successful",
- f'"{name}" has been exported as a vCard.')
+ f'"{name}" has been exported as a vCard.')
class FindDialog(QDialog):
@@ -427,8 +424,7 @@ class FindDialog(QDialog):
text = self._line_edit.text()
if not text:
- QMessageBox.information(self, "Empty Field",
- "Please enter a name.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name.")
return
self._find_text = text
diff --git a/examples/widgets/tutorials/cannon/t10.py b/examples/widgets/tutorials/cannon/t10.py
index c9c3fa7f6..8649bb562 100644
--- a/examples/widgets/tutorials/cannon/t10.py
+++ b/examples/widgets/tutorials/cannon/t10.py
@@ -43,8 +43,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -113,7 +113,7 @@ class MyWidget(QWidget):
quit = QPushButton("&Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange()
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t11.py b/examples/widgets/tutorials/cannon/t11.py
index 997eecbd1..fbfd2481d 100644
--- a/examples/widgets/tutorials/cannon/t11.py
+++ b/examples/widgets/tutorials/cannon/t11.py
@@ -45,8 +45,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -175,7 +175,7 @@ class MyWidget(QWidget):
quit = QPushButton("&Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange()
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t12.py b/examples/widgets/tutorials/cannon/t12.py
index 8847b2208..749c24684 100644
--- a/examples/widgets/tutorials/cannon/t12.py
+++ b/examples/widgets/tutorials/cannon/t12.py
@@ -62,8 +62,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -226,7 +226,7 @@ class MyWidget(QWidget):
quit = QPushButton("&Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange("ANGLE")
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t13.py b/examples/widgets/tutorials/cannon/t13.py
index 4eb45a374..f9a771d15 100644
--- a/examples/widgets/tutorials/cannon/t13.py
+++ b/examples/widgets/tutorials/cannon/t13.py
@@ -64,8 +64,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -259,7 +259,7 @@ class GameBoard(QWidget):
quit = QPushButton("&Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange("ANGLE")
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t14.py b/examples/widgets/tutorials/cannon/t14.py
index e4f1c350d..3c94408f3 100644
--- a/examples/widgets/tutorials/cannon/t14.py
+++ b/examples/widgets/tutorials/cannon/t14.py
@@ -65,8 +65,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -174,7 +174,8 @@ class CannonField(QWidget):
self._auto_shoot_timer.stop()
self.hit.emit()
self.can_shoot.emit(True)
- elif shot_r.x() > self.width() or shot_r.y() > self.height() or shot_r.intersects(self.barrier_rect()):
+ elif (shot_r.x() > self.width() or shot_r.y() > self.height()
+ or shot_r.intersects(self.barrier_rect())):
self._auto_shoot_timer.stop()
self.missed.emit()
self.can_shoot.emit(True)
@@ -301,7 +302,7 @@ class GameBoard(QWidget):
quit = QPushButton("&Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange("ANGLE")
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t4.py b/examples/widgets/tutorials/cannon/t4.py
index ba0ebc41b..37a2dc9dd 100644
--- a/examples/widgets/tutorials/cannon/t4.py
+++ b/examples/widgets/tutorials/cannon/t4.py
@@ -20,7 +20,7 @@ class MyWidget(QWidget):
self.quit.setGeometry(62, 40, 75, 30)
self.quit.setFont(QFont("Times", 18, QFont.Bold))
- self.quit.clicked.connect(qApp.quit)
+ self.quit.clicked.connect(qApp.quit) # noqa: F821
if __name__ == '__main__':
diff --git a/examples/widgets/tutorials/cannon/t5.py b/examples/widgets/tutorials/cannon/t5.py
index 42faeed01..ed5d085f8 100644
--- a/examples/widgets/tutorials/cannon/t5.py
+++ b/examples/widgets/tutorials/cannon/t5.py
@@ -25,7 +25,7 @@ class MyWidget(QWidget):
slider.setRange(0, 99)
slider.setValue(0)
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
slider.valueChanged.connect(lcd.display)
layout = QVBoxLayout(self)
diff --git a/examples/widgets/tutorials/cannon/t6.py b/examples/widgets/tutorials/cannon/t6.py
index 1cc2906f2..ea2e044e6 100644
--- a/examples/widgets/tutorials/cannon/t6.py
+++ b/examples/widgets/tutorials/cannon/t6.py
@@ -33,7 +33,7 @@ class MyWidget(QWidget):
quit = QPushButton("Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
layout = QVBoxLayout(self)
layout.addWidget(quit)
diff --git a/examples/widgets/tutorials/cannon/t7.py b/examples/widgets/tutorials/cannon/t7.py
index 51128e6c7..1175107b8 100644
--- a/examples/widgets/tutorials/cannon/t7.py
+++ b/examples/widgets/tutorials/cannon/t7.py
@@ -46,7 +46,7 @@ class MyWidget(QWidget):
quit = QPushButton("Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
previous_range = None
diff --git a/examples/widgets/tutorials/cannon/t8.py b/examples/widgets/tutorials/cannon/t8.py
index b82e24a01..9bb5516b8 100644
--- a/examples/widgets/tutorials/cannon/t8.py
+++ b/examples/widgets/tutorials/cannon/t8.py
@@ -43,8 +43,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning("LCDRange.setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -88,7 +88,7 @@ class MyWidget(QWidget):
quit = QPushButton("Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange()
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t9.py b/examples/widgets/tutorials/cannon/t9.py
index 297e98e50..7cdda4e7b 100644
--- a/examples/widgets/tutorials/cannon/t9.py
+++ b/examples/widgets/tutorials/cannon/t9.py
@@ -43,8 +43,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -94,7 +94,7 @@ class MyWidget(QWidget):
quit = QPushButton("Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange()
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/modelview/2_formatting.py b/examples/widgets/tutorials/modelview/2_formatting.py
index 73c993e5f..f39ec462c 100644
--- a/examples/widgets/tutorials/modelview/2_formatting.py
+++ b/examples/widgets/tutorials/modelview/2_formatting.py
@@ -32,7 +32,7 @@ class MyModel(QAbstractTableModel):
return "<--left"
if row == 1 and col == 1:
return "right-->"
- return f"Row{row}, Column{col+1}"
+ return f"Row{row}, Column{col + 1}"
elif role == Qt.FontRole:
if row == 0 and col == 0: # change font only for cell(0,0)
diff --git a/examples/widgets/tutorials/modelview/3_changingmodel.py b/examples/widgets/tutorials/modelview/3_changingmodel.py
index e277dd1e8..2148ec5d3 100644
--- a/examples/widgets/tutorials/modelview/3_changingmodel.py
+++ b/examples/widgets/tutorials/modelview/3_changingmodel.py
@@ -43,6 +43,7 @@ class MyModel(QAbstractTableModel):
self.dataChanged.emit(top_left, top_left, [Qt.DisplayRole])
#! [3]
+
if __name__ == '__main__':
app = QApplication(sys.argv)
table_view = QTableView()
diff --git a/examples/widgets/tutorials/modelview/6_treeview.py b/examples/widgets/tutorials/modelview/6_treeview.py
index 09300560c..cac3c6d53 100644
--- a/examples/widgets/tutorials/modelview/6_treeview.py
+++ b/examples/widgets/tutorials/modelview/6_treeview.py
@@ -8,6 +8,7 @@ from PySide6.QtWidgets import QApplication, QMainWindow, QTreeView
"""PySide6 port of the widgets/tutorials/modelview/6_treeview example from Qt v6.x"""
+
#! [1]
class MainWindow(QMainWindow):
def __init__(self, parent=None):
diff --git a/examples/widgets/tutorials/modelview/7_selections.py b/examples/widgets/tutorials/modelview/7_selections.py
index 6c519c865..c879d8f67 100644
--- a/examples/widgets/tutorials/modelview/7_selections.py
+++ b/examples/widgets/tutorials/modelview/7_selections.py
@@ -9,6 +9,7 @@ from PySide6.QtWidgets import QApplication, QMainWindow, QTreeView
"""PySide6 port of the widgets/tutorials/modelview/7_selections example from Qt v6.x"""
+
#! [1]
class MainWindow(QMainWindow):
def __init__(self, parent=None):
diff --git a/examples/widgets/widgets/charactermap/characterwidget.py b/examples/widgets/widgets/charactermap/characterwidget.py
index 1df2a3b74..0f01f9684 100644
--- a/examples/widgets/widgets/charactermap/characterwidget.py
+++ b/examples/widgets/widgets/charactermap/characterwidget.py
@@ -127,7 +127,7 @@ class CharacterWidget(QWidget):
self._square_size, self._square_size, QBrush(Qt.red))
text = chr(key)
- painter.drawText(column * self._square_size + (self._square_size / 2) -
- font_metrics.horizontalAdvance(text) / 2,
+ painter.drawText(column * self._square_size + (self._square_size / 2)
+ - font_metrics.horizontalAdvance(text) / 2,
row * self._square_size + 4 + font_metrics.ascent(),
text)
diff --git a/examples/widgets/widgets/charactermap/mainwindow.py b/examples/widgets/widgets/charactermap/mainwindow.py
index 5f0e2bce4..d79285def 100644
--- a/examples/widgets/widgets/charactermap/mainwindow.py
+++ b/examples/widgets/widgets/charactermap/mainwindow.py
@@ -30,7 +30,7 @@ class MainWindow(QMainWindow):
file_menu.addAction("Quit", self.close)
help_menu = self.menuBar().addMenu("Help")
help_menu.addAction("Show Font Info", self.show_info)
- help_menu.addAction("About &Qt", qApp.aboutQt)
+ help_menu.addAction("About &Qt", qApp.aboutQt) # noqa: F821
central_widget = QWidget()
diff --git a/examples/widgets/widgets/digitalclock/doc/digitalclock.rst b/examples/widgets/widgets/digitalclock/doc/digitalclock.rst
index ef800d9c0..d13275d24 100644
--- a/examples/widgets/widgets/digitalclock/doc/digitalclock.rst
+++ b/examples/widgets/widgets/digitalclock/doc/digitalclock.rst
@@ -1,6 +1,8 @@
Digital Clock Example
=====================
+.. tags:: Android
+
The Digital Clock example shows how to use QLCDNumber to display a number with
LCD-like digits.
diff --git a/examples/widgets/widgets/tetrix/tetrix.py b/examples/widgets/widgets/tetrix/tetrix.py
index 3accd557a..b5df2aa35 100644
--- a/examples/widgets/widgets/tetrix/tetrix.py
+++ b/examples/widgets/widgets/tetrix/tetrix.py
@@ -52,7 +52,7 @@ class TetrixWindow(QWidget):
start_button.clicked.connect(self.board.start)
pause_button.clicked.connect(self.board.pause)
- quit_button.clicked.connect(qApp.quit)
+ quit_button.clicked.connect(qApp.quit) # noqa: F821
self.board.score_changed.connect(score_lcd.display)
self.board.level_changed.connect(level_lcd.display)
self.board.lines_removed_changed.connect(lines_lcd.display)
@@ -134,11 +134,11 @@ class TetrixBoard(QFrame):
def sizeHint(self):
return QSize(TetrixBoard.board_width * 15 + self.frameWidth() * 2,
- TetrixBoard.board_height * 15 + self.frameWidth() * 2)
+ TetrixBoard.board_height * 15 + self.frameWidth() * 2)
def minimum_size_hint(self):
return QSize(TetrixBoard.board_width * 5 + self.frameWidth() * 2,
- TetrixBoard.board_height * 5 + self.frameWidth() * 2)
+ TetrixBoard.board_height * 5 + self.frameWidth() * 2)
@Slot()
def start(self):
@@ -190,16 +190,17 @@ class TetrixBoard(QFrame):
shape = self.shape_at(j, TetrixBoard.board_height - i - 1)
if shape != Piece.NoShape:
self.draw_square(painter,
- rect.left() + j * self.square_width(),
- board_top + i * self.square_height(), shape)
+ rect.left() + j * self.square_width(),
+ board_top + i * self.square_height(), shape)
if self._cur_piece.shape() != Piece.NoShape:
for i in range(4):
x = self._cur_x + self._cur_piece.x(i)
y = self._cur_y - self._cur_piece.y(i)
self.draw_square(painter, rect.left() + x * self.square_width(),
- board_top + (TetrixBoard.board_height - y - 1) * self.square_height(),
- self._cur_piece.shape())
+ board_top
+ + (TetrixBoard.board_height - y - 1) * self.square_height(),
+ self._cur_piece.shape())
def keyPressEvent(self, event):
if not self._is_started or self._is_paused or self._cur_piece.shape() == Piece.NoShape:
@@ -234,7 +235,8 @@ class TetrixBoard(QFrame):
super(TetrixBoard, self).timerEvent(event)
def clear_board(self):
- self.board = [Piece.NoShape for i in range(TetrixBoard.board_height * TetrixBoard.board_width)]
+ self.board = [
+ Piece.NoShape for _ in range(TetrixBoard.board_height * TetrixBoard.board_width)]
def drop_down(self):
drop_height = 0
@@ -283,7 +285,7 @@ class TetrixBoard(QFrame):
if line_is_full:
num_full_lines += 1
- for k in range(TetrixBoard.board_height - 1):
+ for k in range(i, TetrixBoard.board_height - 1):
for j in range(TetrixBoard.board_width):
self.set_shape_at(j, k, self.shape_at(j, k + 1))
@@ -328,7 +330,7 @@ class TetrixBoard(QFrame):
x = self._next_piece.x(i) - self._next_piece.min_x()
y = self._next_piece.y(i) - self._next_piece.min_y()
self.draw_square(painter, x * self.square_width(),
- y * self.square_height(), self._next_piece.shape())
+ y * self.square_height(), self._next_piece.shape())
self.nextPieceLabel.setPixmap(pixmap)
@@ -349,11 +351,10 @@ class TetrixBoard(QFrame):
def draw_square(self, painter, x, y, shape):
color_table = [0x000000, 0xCC6666, 0x66CC66, 0x6666CC,
- 0xCCCC66, 0xCC66CC, 0x66CCCC, 0xDAAA00]
+ 0xCCCC66, 0xCC66CC, 0x66CCCC, 0xDAAA00]
color = QColor(color_table[shape])
- painter.fillRect(x + 1, y + 1, self.square_width() - 2,
- self.square_height() - 2, color)
+ painter.fillRect(x + 1, y + 1, self.square_width() - 2, self.square_height() - 2, color)
painter.setPen(color.lighter())
painter.drawLine(x, y + self.square_height() - 1, x, y)
@@ -361,25 +362,25 @@ class TetrixBoard(QFrame):
painter.setPen(color.darker())
painter.drawLine(x + 1, y + self.square_height() - 1,
- x + self.square_width() - 1, y + self.square_height() - 1)
+ x + self.square_width() - 1, y + self.square_height() - 1)
painter.drawLine(x + self.square_width() - 1,
- y + self.square_height() - 1, x + self.square_width() - 1, y + 1)
+ y + self.square_height() - 1, x + self.square_width() - 1, y + 1)
class TetrixPiece(object):
coords_table = (
- ((0, 0), (0, 0), (0, 0), (0, 0)),
- ((0, -1), (0, 0), (-1, 0), (-1, 1)),
- ((0, -1), (0, 0), (1, 0), (1, 1)),
- ((0, -1), (0, 0), (0, 1), (0, 2)),
- ((-1, 0), (0, 0), (1, 0), (0, 1)),
- ((0, 0), (1, 0), (0, 1), (1, 1)),
- ((-1, -1), (0, -1), (0, 0), (0, 1)),
- ((1, -1), (0, -1), (0, 0), (0, 1))
+ ((0, 0), (0, 0), (0, 0), (0, 0)),
+ ((0, -1), (0, 0), (-1, 0), (-1, 1)),
+ ((0, -1), (0, 0), (1, 0), (1, 1)),
+ ((0, -1), (0, 0), (0, 1), (0, 2)),
+ ((-1, 0), (0, 0), (1, 0), (0, 1)),
+ ((0, 0), (1, 0), (0, 1), (1, 1)),
+ ((-1, -1), (0, -1), (0, 0), (0, 1)),
+ ((1, -1), (0, -1), (0, 0), (0, 1))
)
def __init__(self):
- self.coords = [[0,0] for _ in range(4)]
+ self.coords = [[0, 0] for _ in range(4)]
self._piece_shape = Piece.NoShape
self.set_shape(Piece.NoShape)
diff --git a/examples/widgets/widgetsgallery/main.py b/examples/widgets/widgetsgallery/main.py
index dadd1a91a..e40077a38 100644
--- a/examples/widgets/widgetsgallery/main.py
+++ b/examples/widgets/widgetsgallery/main.py
@@ -5,7 +5,6 @@
import sys
-from PySide6.QtCore import QCoreApplication, Qt
from PySide6.QtWidgets import QApplication
from widgetgallery import WidgetGallery
diff --git a/examples/widgets/widgetsgallery/widgetgallery.py b/examples/widgets/widgetsgallery/widgetgallery.py
index 6178ee0d7..d43ab26a5 100644
--- a/examples/widgets/widgetsgallery/widgetgallery.py
+++ b/examples/widgets/widgetsgallery/widgetgallery.py
@@ -3,13 +3,21 @@
import sys
-from PySide6.QtWidgets import *
+from PySide6.QtCore import (QDateTime, QDir, QLibraryInfo, QSysInfo, Qt,
+ QTimer, Slot, qVersion)
from PySide6.QtGui import (QCursor, QDesktopServices, QGuiApplication, QIcon,
QKeySequence, QShortcut, QStandardItem,
QStandardItemModel)
-from PySide6.QtCore import (QDateTime, QDir, QLibraryInfo,
- QSysInfo, QTimer, Qt, qVersion, Slot)
-
+from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox,
+ QCommandLinkButton, QDateTimeEdit, QDial,
+ QDialog, QDialogButtonBox, QFileSystemModel,
+ QGridLayout, QGroupBox, QHBoxLayout, QLabel,
+ QLineEdit, QListView, QMenu, QPlainTextEdit,
+ QProgressBar, QPushButton, QRadioButton,
+ QScrollBar, QSizePolicy, QSlider, QSpinBox,
+ QStyleFactory, QTableWidget, QTabWidget,
+ QTextBrowser, QTextEdit, QToolBox, QToolButton,
+ QTreeView, QVBoxLayout, QWidget)
POEM = """Twinkle, twinkle, little star,
How I wonder what you are.
@@ -156,8 +164,8 @@ class WidgetGallery(QDialog):
top_layout.addStretch(1)
top_layout.addWidget(disable_widgets_checkbox)
- dialog_buttonbox = QDialogButtonBox(QDialogButtonBox.Help |
- QDialogButtonBox.Close)
+ dialog_buttonbox = QDialogButtonBox(QDialogButtonBox.Help
+ | QDialogButtonBox.Close)
init_widget(dialog_buttonbox, "dialogButtonBox")
dialog_buttonbox.helpRequested.connect(launch_module_help)
dialog_buttonbox.rejected.connect(self.reject)
diff --git a/examples/xml/dombookmarks/dombookmarks.py b/examples/xml/dombookmarks/dombookmarks.py
index a641c5786..a35aeb0f2 100644
--- a/examples/xml/dombookmarks/dombookmarks.py
+++ b/examples/xml/dombookmarks/dombookmarks.py
@@ -6,9 +6,11 @@
import sys
-from PySide6.QtCore import QDir, QFile, Qt
-from PySide6.QtGui import QAction, QIcon
-from PySide6.QtWidgets import (QApplication, QFileDialog, QHeaderView, QMainWindow, QMessageBox, QStyle, QTreeWidget, QTreeWidgetItem, QWidget)
+from PySide6.QtCore import QDir, QFile, Qt, QTextStream
+from PySide6.QtGui import QAction, QIcon, QKeySequence
+from PySide6.QtWidgets import (QApplication, QFileDialog, QHeaderView,
+ QMainWindow, QMessageBox, QStyle, QTreeWidget,
+ QTreeWidgetItem)
from PySide6.QtXml import QDomDocument
@@ -19,7 +21,6 @@ class MainWindow(QMainWindow):
self._xbel_tree = XbelTree()
self.setCentralWidget(self._xbel_tree)
- self.create_actions()
self.create_menus()
self.statusBar().showMessage("Ready")
@@ -29,8 +30,8 @@ class MainWindow(QMainWindow):
def open(self):
file_name = QFileDialog.getOpenFileName(self,
- "Open Bookmark File", QDir.currentPath(),
- "XBEL Files (*.xbel *.xml)")[0]
+ "Open Bookmark File", QDir.currentPath(),
+ "XBEL Files (*.xbel *.xml)")[0]
if not file_name:
return
@@ -39,7 +40,7 @@ class MainWindow(QMainWindow):
if not in_file.open(QFile.ReadOnly | QFile.Text):
reason = in_file.errorString()
QMessageBox.warning(self, "DOM Bookmarks",
- f"Cannot read file {file_name}:\n{reason}.")
+ f"Cannot read file {file_name}:\n{reason}.")
return
if self._xbel_tree.read(in_file):
@@ -47,8 +48,8 @@ class MainWindow(QMainWindow):
def save_as(self):
file_name = QFileDialog.getSaveFileName(self,
- "Save Bookmark File", QDir.currentPath(),
- "XBEL Files (*.xbel *.xml)")[0]
+ "Save Bookmark File", QDir.currentPath(),
+ "XBEL Files (*.xbel *.xml)")[0]
if not file_name:
return
@@ -57,7 +58,7 @@ class MainWindow(QMainWindow):
if not out_file.open(QFile.WriteOnly | QFile.Text):
reason = out_file.errorString()
QMessageBox.warning(self, "DOM Bookmarks",
- "Cannot write file {fileName}:\n{reason}.")
+ f"Cannot write file {file_name}:\n{reason}.")
return
if self._xbel_tree.write(out_file):
@@ -65,35 +66,26 @@ class MainWindow(QMainWindow):
def about(self):
QMessageBox.about(self, "About DOM Bookmarks",
- "The <b>DOM Bookmarks</b> example demonstrates how to use Qt's "
- "DOM classes to read and write XML documents.")
-
- def create_actions(self):
- self._open_act = QAction("&Open...", self, shortcut="Ctrl+O",
- triggered=self.open)
-
- self._save_as_act = QAction("&Save As...", self, shortcut="Ctrl+S",
- triggered=self.save_as)
-
- self._exit_act = QAction("E&xit", self, shortcut="Ctrl+Q",
- triggered=self.close)
-
- self._about_act = QAction("&About", self, triggered=self.about)
-
- self._about_qt_act = QAction("About &Qt", self,
- triggered=qApp.aboutQt)
+ "The <b>DOM Bookmarks</b> example demonstrates how to use Qt's "
+ "DOM classes to read and write XML documents.")
def create_menus(self):
self._file_menu = self.menuBar().addMenu("&File")
- self._file_menu.addAction(self._open_act)
- self._file_menu.addAction(self._save_as_act)
- self._file_menu.addAction(self._exit_act)
+ self._file_menu.addAction(QAction("&Open...", self,
+ shortcut=QKeySequence(
+ Qt.CTRL | Qt.Key_O), triggered=self.open))
+ self._file_menu.addAction(QAction("&Save As...", self,
+ shortcut=QKeySequence(
+ Qt.CTRL | Qt.Key_S), triggered=self.save_as))
+ self._file_menu.addAction(QAction("E&xit", self,
+ shortcut=QKeySequence(
+ Qt.CTRL | Qt.Key_Q), triggered=self.close))
self.menuBar().addSeparator()
self._help_menu = self.menuBar().addMenu("&Help")
- self._help_menu.addAction(self._about_act)
- self._help_menu.addAction(self._about_qt_act)
+ self._help_menu.addAction(QAction("&About", self, triggered=self.about))
+ self._help_menu.addAction(QAction("About &Qt", self, triggered=qApp.aboutQt)) # noqa: F821
class XbelTree(QTreeWidget):
@@ -111,26 +103,27 @@ class XbelTree(QTreeWidget):
self._bookmark_icon = QIcon()
self._folder_icon.addPixmap(self.style().standardPixmap(QStyle.SP_DirClosedIcon),
- QIcon.Normal, QIcon.Off)
+ QIcon.Normal, QIcon.Off)
self._folder_icon.addPixmap(self.style().standardPixmap(QStyle.SP_DirOpenIcon),
- QIcon.Normal, QIcon.On)
+ QIcon.Normal, QIcon.On)
self._bookmark_icon.addPixmap(self.style().standardPixmap(QStyle.SP_FileIcon))
def read(self, device):
ok, errorStr, errorLine, errorColumn = self._dom_document.setContent(device, True)
if not ok:
QMessageBox.information(self.window(), "DOM Bookmarks",
- f"Parse error at line {errorLine}, column {errorColumn}:\n{errorStr}")
+ f"Parse error at line {errorLine}, "
+ f"column {errorColumn}:\n{errorStr}")
return False
root = self._dom_document.documentElement()
if root.tagName() != 'xbel':
QMessageBox.information(self.window(), "DOM Bookmarks",
- "The file is not an XBEL file.")
+ "The file is not an XBEL file.")
return False
elif root.hasAttribute('version') and root.attribute('version') != '1.0':
QMessageBox.information(self.window(), "DOM Bookmarks",
- "The file is not an XBEL version 1.0 file.")
+ "The file is not an XBEL version 1.0 file.")
return False
self.clear()
@@ -138,7 +131,7 @@ class XbelTree(QTreeWidget):
# It might not be connected.
try:
self.itemChanged.disconnect(self.update_dom_element)
- except:
+ except RuntimeError:
pass
child = root.firstChildElement('folder')
diff --git a/examples/xml/dombookmarks/dombookmarks.pyproject b/examples/xml/dombookmarks/dombookmarks.pyproject
index 9a688558d..0a0b203a6 100644
--- a/examples/xml/dombookmarks/dombookmarks.pyproject
+++ b/examples/xml/dombookmarks/dombookmarks.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["jennifer.xbel", "frank.xbel", "dombookmarks.py"]
+ "files": ["jennifer.xbel", "dombookmarks.py"]
}
diff --git a/examples/xml/dombookmarks/frank.xbel b/examples/xml/dombookmarks/frank.xbel
deleted file mode 100644
index e4184deee..000000000
--- a/examples/xml/dombookmarks/frank.xbel
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE xbel>
-<xbel version="1.0">
- <folder folded="yes">
- <title>Literate Programming</title>
- <bookmark href="http://www.vivtek.com/litprog.html">
- <title>Synopsis of Literate Programming</title>
- </bookmark>
- <bookmark href="http://vasc.ri.cmu.edu/old_help/Programming/Literate/literate.html">
- <title>Literate Programming: Propaganda and Tools</title>
- </bookmark>
- <bookmark href="http://www.isy.liu.se/%7Eturbell/litprog/">
- <title>Literate Programming by Henrik Turbell</title>
- </bookmark>
- <bookmark href="http://www.desy.de/user/projects/LitProg.html">
- <title>Literate Programming Library</title>
- </bookmark>
- <bookmark href="http://www.loria.fr/services/tex/english/litte.html">
- <title>Literate Programming Basics</title>
- </bookmark>
- <bookmark href="http://ei.cs.vt.edu/%7Ecs5014/courseNotes/4.LiterateProgramming/literate_prog.html">
- <title>Literate Programming Overview</title>
- </bookmark>
- <bookmark href="http://www.perl.com/pub/a/tchrist/litprog.html">
- <title>POD is not Literate Programming</title>
- </bookmark>
- <bookmark href="http://www.cornellcollege.edu/%7Eltabak/publications/articles/swsafety.html">
- <title>Computers That We Can Count On</title>
- </bookmark>
- <bookmark href="http://www.cs.auc.dk/%7Enormark/litpro/issues-and-problems.html">
- <title>Literate Programming - Issues and Problems</title>
- </bookmark>
- <bookmark href="http://c2.com/cgi/wiki?LiterateProgramming">
- <title>Literate Programming - Wiki Pages</title>
- </bookmark>
- <bookmark href="http://developers.slashdot.org/developers/02/05/19/2216233.shtml">
- <title>What is well-commented code?</title>
- </bookmark>
- <bookmark href="http://liinwww.ira.uka.de/bibliography/SE/litprog.html">
- <title>Bibliography on literate programming - A searchable bibliography</title>
- </bookmark>
- <bookmark href="http://www2.umassd.edu/SWPI/ProcessBibliography/bib-codereading.html">
- <title>Program comprehension and code reading bibliography</title>
- </bookmark>
- <bookmark href="http://www.cs.auc.dk/%7Enormark/elucidative-programming/">
- <title>Elucidative Programming</title>
- </bookmark>
- <bookmark href="http://www.msu.edu/%7Epfaffben/avl/index.html">
- <title>AVL Trees (TexiWeb)</title>
- </bookmark>
- <bookmark href="http://literate-programming.wikiverse.org/">
- <title>Literate Programming on Wikiverse</title>
- </bookmark>
- <bookmark href="http://www.pbrt.org/">
- <title>Physically Based Rendering: From Theory to Implementation</title>
- </bookmark>
- </folder>
- <folder folded="no">
- <title>Useful C++ Links</title>
- <folder folded="no">
- <title>STL</title>
- <bookmark href="http://www.sgi.com/tech/stl/table_of_contents.html">
- <title>STL Reference Documentation</title>
- </bookmark>
- <bookmark href="http://www.yrl.co.uk/~phil/stl/stl.htmlx">
- <title>STL Tutorial</title>
- </bookmark>
- <bookmark href="http://www.cppreference.com/cpp_stl.html">
- <title>STL Reference</title>
- </bookmark>
- </folder>
- <folder folded="no">
- <title>Qt</title>
- <bookmark href="http://doc.trolltech.com/2.3/">
- <title>Qt 2.3 Reference</title>
- </bookmark>
- <bookmark href="http://doc.trolltech.com/3.3/">
- <title>Qt 3.3 Reference</title>
- </bookmark>
- <bookmark href="http://doc.trolltech.com/4.0/">
- <title>Qt 4.0 Reference</title>
- </bookmark>
- <bookmark href="http://www.trolltech.com/">
- <title>Trolltech Home Page</title>
- </bookmark>
- </folder>
- <folder folded="yes">
- <title>IOStreams</title>
- <bookmark href="http://www.cplusplus.com/ref/iostream/index.html">
- <title>IO Stream Library</title>
- </bookmark>
- <bookmark href="http://courses.cs.vt.edu/~cs2604/fall01/binio.html">
- <title>Binary I/O</title>
- </bookmark>
- <bookmark href="http://www.parashift.com/c++-faq-lite/input-output.html">
- <title>I/O Stream FAQ</title>
- </bookmark>
- </folder>
- <folder folded="yes">
- <title>gdb</title>
- <bookmark href="http://www.cs.princeton.edu/~benjasik/gdb/gdbtut.html">
- <title>GDB Tutorial</title>
- </bookmark>
- <bookmark href="https://www.gnu.org/manual/gdb-4.17/html_mono/gdb.html">
- <title>Debugging with GDB</title>
- </bookmark>
- <bookmark href="http://www.cs.washington.edu/orgs/acm/tutorials/dev-in-unix/gdb-refcard.pdf">
- <title>GDB Quick Reference Page (PDF) (Handy)</title>
- </bookmark>
- </folder>
- <folder folded="yes">
- <title>Classes and Constructors</title>
- <bookmark href="http://www.parashift.com/c++-faq-lite/ctors.html">
- <title>Constructor FAQ</title>
- </bookmark>
- <bookmark href="http://www.juicystudio.com/tutorial/cpp/index.html">
- <title>Organizing Classes</title>
- </bookmark>
- </folder>
- </folder>
- <folder folded="yes">
- <title>Software Documentation or System Documentation</title>
- <bookmark href="http://www.martinfowler.com/distributedComputing/thud.html">
- <title>The Almighty Thud</title>
- </bookmark>
- <bookmark href="http://msdn.microsoft.com/library/techart/cfr.htm">
- <title>Microsoft Coding Techniques and Programming Practices</title>
- </bookmark>
- <bookmark href="http://www.bearcave.com/software/prog_docs.html">
- <title>Software and Documentation</title>
- </bookmark>
- <bookmark href="http://c2.com/cgi/wiki?TheSourceCodeIsTheDesign">
- <title>The Source Code is the Design</title>
- </bookmark>
- <bookmark href="http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm">
- <title>What is Software Design?</title>
- </bookmark>
- <bookmark href="http://www.mindprod.com/unmain.html">
- <title>How To Write Unmaintainable Code</title>
- </bookmark>
- <bookmark href="http://www.idinews.com/selfDoc.html">
- <title>Self Documenting Program Code Remains a Distant Goal</title>
- </bookmark>
- <bookmark href="http://www.sdmagazine.com/documents/s=730/sdm0106m/0106m.htm">
- <title>Place Tab A in Slot B</title>
- </bookmark>
- <bookmark href="http://www.holub.com/class/uml/uml.html">
- <title>UML Reference Card</title>
- </bookmark>
- </folder>
- <folder folded="yes">
- <title>TeX Resources</title>
- <bookmark href="http://www.tug.org/">
- <title>The TeX User's Group</title>
- </bookmark>
- <bookmark href="http://www.miktex.org/">
- <title>MikTeX website</title>
- </bookmark>
- <bookmark href="http://cm.bell-labs.com/who/hobby/MetaPost.html">
- <title>MetaPost website</title>
- </bookmark>
- <bookmark href="http://pauillac.inria.fr/%7Emaranget/hevea/">
- <title>HEVEA is a quite complete and fast LATEX to HTML translator</title>
- </bookmark>
- </folder>
- <folder folded="no">
- <title>Portable Document Format (PDF)</title>
- <bookmark href="http://www.adobe.com/">
- <title>Adobe - The postscript and PDF standards</title>
- </bookmark>
- <bookmark href="http://partners.adobe.com/asn/developer/technotes/acrobatpdf.html">
- <title>Reference Manual Portable Document Format</title>
- </bookmark>
- <bookmark href="http://partners.adobe.com/asn/developer/acrosdk/main.html">
- <title>Adobe Acrobat Software Development Kit</title>
- </bookmark>
- </folder>
- <folder folded="yes">
- <title>Literature Sites</title>
- <bookmark href="http://www.cc.columbia.edu/cu/libraries/subjects/speccol.html">
- <title>Guide to Special Collections (Columbia University)</title>
- </bookmark>
- <bookmark href="http://www.ipl.org/ref/litcrit/">
- <title>Literary Criticism on the Web from the Internet Public Library</title>
- </bookmark>
- <bookmark href="http://www.victorianweb.org/">
- <title>Victorian Web.</title>
- </bookmark>
- <bookmark href="http://vos.ucsb.edu/">
- <title>Voice of the Shuttle.</title>
- </bookmark>
- <bookmark href="http://www.modjourn.brown.edu/">
- <title>Modernist Journals Project</title>
- </bookmark>
- <bookmark href="http://www.poetspath.com">
- <title>Museum of American Poetics</title>
- </bookmark>
- <bookmark href="http://www.english.uiuc.edu/maps/">
- <title>Modern American Poetry</title>
- </bookmark>
- <bookmark href="http://www.findarticles.com/">
- <title>FindArticles.com</title>
- </bookmark>
- <bookmark href="http://www.literaryhistory.com">
- <title>Literary History</title>
- </bookmark>
- <bookmark href="http://www.litencyc.com/LitEncycFrame.htm">
- <title>Literary Encyclopedia</title>
- </bookmark>
- <separator/>
- <bookmark href="http://texts.cdlib.org/ucpress/">
- <title>The University of California Press</title>
- </bookmark>
- <bookmark href="http://www.letrs.indiana.edu/web/w/wright2/">
- <title>Wright American Fiction, 1851-1875</title>
- </bookmark>
- <bookmark href="http://docsouth.unc.edu/">
- <title>Documenting the American South: Beginnings to 1920</title>
- </bookmark>
- <bookmark href="http://etext.lib.virginia.edu/eng-on.html">
- <title>Electronic Text Center at the University of Virginia</title>
- </bookmark>
- <bookmark href="http://digital.nypl.org/schomburg/writers_aa19/">
- <title>The Schomburg Center for Research in Black Culture</title>
- </bookmark>
- <bookmark href="http://www.infomotions.com/alex2/">
- <title>Alex Catalog of Electronic Texts.</title>
- </bookmark>
- </folder>
-</xbel>
diff --git a/examples/xml/dombookmarks/jennifer.xbel b/examples/xml/dombookmarks/jennifer.xbel
index 939e6f583..d50423683 100644
--- a/examples/xml/dombookmarks/jennifer.xbel
+++ b/examples/xml/dombookmarks/jennifer.xbel
@@ -3,91 +3,67 @@
<xbel version="1.0">
<folder folded="no">
<title>Qt Resources</title>
+ <bookmark href="https://www.qt.io/">
+ <title>Qt home page</title>
+ </bookmark>
+ <bookmark href="https://www.qt.io/contact-us/partners">
+ <title>Qt Partners</title>
+ </bookmark>
+ <bookmark href="https://www.qt.io/qt-professional-services">
+ <title>Professional Services</title>
+ </bookmark>
+ <bookmark href="https://doc.qt.io/">
+ <title>Qt Documentation</title>
+ </bookmark>
<folder folded="yes">
- <title>Trolltech Partners</title>
- <bookmark href="http://partners.trolltech.com/partners/training.html">
- <title>Training Partners</title>
- </bookmark>
- <bookmark href="http://partners.trolltech.com/partners/service.html">
- <title>Consultants and System Integrators</title>
- </bookmark>
- <bookmark href="http://partners.trolltech.com/partners/tech.html">
- <title>Technology Partners</title>
+ <title>Community Resources</title>
+ <bookmark href="https://contribute.qt-project.org">
+ <title>The Qt Project</title>
</bookmark>
- <bookmark href="http://partners.trolltech.com/partners/resellers.html">
- <title>Value Added Resellers (VARs)</title>
+ <bookmark href="https://www.qtcentre.org/content/">
+ <title>Qt Centre</title>
</bookmark>
- </folder>
- <folder folded="yes">
- <title>Community Resources</title>
- <bookmark href="https://www.qtforum.org/">
- <title>QtForum.org</title>
+ <bookmark href="https://forum.qt.io/">
+ <title>Forum.Qt.org</title>
</bookmark>
- <bookmark href="http://www.digitalfanatics.org/projects/qt_tutorial/">
+ <bookmark href="https://digitalfanatics.org/projects/qt_tutorial/">
<title>The Independent Qt Tutorial</title>
</bookmark>
- <bookmark href="http://prog.qt.free.fr/">
- <title>French PROG.Qt</title>
- </bookmark>
<bookmark href="https://www.qtforum.de/">
<title>German Qt Forum</title>
</bookmark>
- <bookmark href="http://www.korone.net/">
+ <bookmark href="https://www.qt-dev.com/">
<title>Korean Qt Community Site</title>
</bookmark>
- <bookmark href="http://prog.org.ru/forum/forum_14.html">
+ <bookmark href="http://www.prog.org.ru/">
<title>Russian Qt Forum</title>
</bookmark>
- <bookmark href="http://qt4.digitalfanatics.org/">
- <title>Digitalfanatics: The QT 4 Resource Center</title>
- </bookmark>
- <bookmark href="https://www.qtquestions.org/">
- <title>QtQuestions</title>
- </bookmark>
</folder>
- <bookmark href="http://doc.trolltech.com/qq/">
- <title>Qt Quarterly</title>
- </bookmark>
- <bookmark href="http://www.trolltech.com/">
- <title>Trolltech's home page</title>
- </bookmark>
- <bookmark href="http://doc.trolltech.com/4.0/">
- <title>Qt 4.0 documentation</title>
- </bookmark>
- <bookmark href="http://www.trolltech.com/developer/faqs/">
- <title>Frequently Asked Questions</title>
- </bookmark>
</folder>
<folder folded="no">
<title>Online Dictionaries</title>
- <bookmark href="http://www.dictionary.com/">
+ <bookmark href="https://www.dictionary.com/">
<title>Dictionary.com</title>
</bookmark>
- <bookmark href="http://www.m-w.com/">
+ <bookmark href="https://www.merriam-webster.com/">
<title>Merriam-Webster Online</title>
</bookmark>
- <bookmark href="http://dictionary.cambridge.org/">
+ <bookmark href="https://dictionary.cambridge.org/">
<title>Cambridge Dictionaries Online</title>
</bookmark>
- <bookmark href="http://www.onelook.com/">
+ <bookmark href="https://www.onelook.com/">
<title>OneLook Dictionary Search</title>
</bookmark>
<separator/>
- <bookmark href="www.iee.et.tu-dresden.de/">
- <title>The New English-German Dictionary</title>
- </bookmark>
- <bookmark href="http://dict.tu-chemnitz.de/">
- <title>TU Chemnitz German-English Dictionary</title>
+ <bookmark href="https://dict.tu-chemnitz.de/">
+ <title>BEOLINGUS, a service of TU Chemnitz</title>
</bookmark>
<separator/>
<bookmark href="http://atilf.atilf.fr/tlf.htm">
<title>Trésor de la Langue Française informatisé</title>
</bookmark>
- <bookmark href="http://dictionnaires.atilf.fr/dictionnaires/ACADEMIE/">
+ <bookmark href="https://www.dictionnaire-academie.fr/">
<title>Dictionnaire de l'Académie Française</title>
</bookmark>
- <bookmark href="http://elsap1.unicaen.fr/cgi-bin/cherches.cgi">
- <title>Dictionnaire des synonymes</title>
- </bookmark>
</folder>
</xbel>