From fb1f10608fc02f309d7b764f01fb416f35005977 Mon Sep 17 00:00:00 2001 From: BarsTiger Date: Sun, 18 Dec 2022 16:37:20 +0200 Subject: [PATCH] Added file explorer --- gui/gui.py | 90 ++- gui/gui.ui | 241 ++++++- gui/images.qrc | 2 + gui/images_rc.py | 978 +++++++++++++++++------------ gui/img/down.svg | 1 + gui/img/up.svg | 1 + gui/modules/explorer/__init__.py | 1 + gui/modules/explorer/handlers.py | 61 ++ gui/modules/explorer/initialize.py | 64 ++ gui/modules/handlers/register.py | 2 + gui/modules/initialize/setup_ui.py | 3 + gui/modules/initialize/styles.py | 105 ++-- modules/config/__init__.py | 1 + modules/config/model.py | 7 + modules/config/paths.py | 43 ++ 15 files changed, 1104 insertions(+), 496 deletions(-) create mode 100644 gui/img/down.svg create mode 100644 gui/img/up.svg create mode 100644 gui/modules/explorer/__init__.py create mode 100644 gui/modules/explorer/handlers.py create mode 100644 gui/modules/explorer/initialize.py create mode 100644 modules/config/paths.py diff --git a/gui/gui.py b/gui/gui.py index 3f1f900..69aa242 100644 --- a/gui/gui.py +++ b/gui/gui.py @@ -187,6 +187,78 @@ class Ui_MainWindow(object): self.content.addWidget(self.pads_page) self.browser_page = QtWidgets.QWidget() self.browser_page.setObjectName("browser_page") + self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.browser_page) + self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.browser_page_tabs = QtWidgets.QTabWidget(self.browser_page) + self.browser_page_tabs.setObjectName("browser_page_tabs") + self.first_filebrowser_tab = QtWidgets.QWidget() + self.first_filebrowser_tab.setObjectName("first_filebrowser_tab") + self.first_filebrowser_tab_lay = QtWidgets.QHBoxLayout(self.first_filebrowser_tab) + self.first_filebrowser_tab_lay.setContentsMargins(0, 0, 0, 0) + self.first_filebrowser_tab_lay.setObjectName("first_filebrowser_tab_lay") + self.folders_browser_treeview_first = QtWidgets.QTreeView(self.first_filebrowser_tab) + self.folders_browser_treeview_first.setObjectName("folders_browser_treeview_first") + self.first_filebrowser_tab_lay.addWidget(self.folders_browser_treeview_first) + self.files_browser_listwidget_first = QtWidgets.QListWidget(self.first_filebrowser_tab) + self.files_browser_listwidget_first.setObjectName("files_browser_listwidget_first") + self.first_filebrowser_tab_lay.addWidget(self.files_browser_listwidget_first) + self.browser_page_tabs.addTab(self.first_filebrowser_tab, "") + self.second_filebrowser_tab = QtWidgets.QWidget() + self.second_filebrowser_tab.setObjectName("second_filebrowser_tab") + self.second_filebrowser_tab_lay = QtWidgets.QHBoxLayout(self.second_filebrowser_tab) + self.second_filebrowser_tab_lay.setContentsMargins(0, 0, 0, 0) + self.second_filebrowser_tab_lay.setObjectName("second_filebrowser_tab_lay") + self.folders_browser_treeview_second = QtWidgets.QTreeView(self.second_filebrowser_tab) + self.folders_browser_treeview_second.setObjectName("folders_browser_treeview_second") + self.second_filebrowser_tab_lay.addWidget(self.folders_browser_treeview_second) + self.files_browser_listwidget_second = QtWidgets.QListWidget(self.second_filebrowser_tab) + self.files_browser_listwidget_second.setObjectName("files_browser_listwidget_second") + self.second_filebrowser_tab_lay.addWidget(self.files_browser_listwidget_second) + self.browser_page_tabs.addTab(self.second_filebrowser_tab, "") + self.browser_page_options_tab = QtWidgets.QWidget() + self.browser_page_options_tab.setObjectName("browser_page_options_tab") + self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.browser_page_options_tab) + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.first_browser_parent_dir_path_label = QtWidgets.QLabel(self.browser_page_options_tab) + self.first_browser_parent_dir_path_label.setObjectName("first_browser_parent_dir_path_label") + self.verticalLayout_3.addWidget(self.first_browser_parent_dir_path_label) + self.first_browser_parent_dir_path_widget = QtWidgets.QWidget(self.browser_page_options_tab) + self.first_browser_parent_dir_path_widget.setObjectName("first_browser_parent_dir_path_widget") + self.first_browser_parent_dir_path_lay = QtWidgets.QHBoxLayout(self.first_browser_parent_dir_path_widget) + self.first_browser_parent_dir_path_lay.setContentsMargins(0, 0, 0, 0) + self.first_browser_parent_dir_path_lay.setObjectName("first_browser_parent_dir_path_lay") + self.first_browser_parent_dir_box = QtWidgets.QLineEdit(self.first_browser_parent_dir_path_widget) + self.first_browser_parent_dir_box.setMinimumSize(QtCore.QSize(0, 30)) + self.first_browser_parent_dir_box.setObjectName("first_browser_parent_dir_box") + self.first_browser_parent_dir_path_lay.addWidget(self.first_browser_parent_dir_box) + self.first_browser_parent_dir_button = QtWidgets.QPushButton(self.first_browser_parent_dir_path_widget) + self.first_browser_parent_dir_button.setMinimumSize(QtCore.QSize(100, 30)) + self.first_browser_parent_dir_button.setObjectName("first_browser_parent_dir_button") + self.first_browser_parent_dir_path_lay.addWidget(self.first_browser_parent_dir_button) + self.verticalLayout_3.addWidget(self.first_browser_parent_dir_path_widget) + self.second_browser_parent_dir_path_label = QtWidgets.QLabel(self.browser_page_options_tab) + self.second_browser_parent_dir_path_label.setObjectName("second_browser_parent_dir_path_label") + self.verticalLayout_3.addWidget(self.second_browser_parent_dir_path_label) + self.second_browser_parent_dir_path_widget = QtWidgets.QWidget(self.browser_page_options_tab) + self.second_browser_parent_dir_path_widget.setObjectName("second_browser_parent_dir_path_widget") + self.second_browser_parent_dir_path_lay = QtWidgets.QHBoxLayout(self.second_browser_parent_dir_path_widget) + self.second_browser_parent_dir_path_lay.setContentsMargins(0, 0, 0, 0) + self.second_browser_parent_dir_path_lay.setObjectName("second_browser_parent_dir_path_lay") + self.second_browser_parent_dir_box = QtWidgets.QLineEdit(self.second_browser_parent_dir_path_widget) + self.second_browser_parent_dir_box.setMinimumSize(QtCore.QSize(0, 30)) + self.second_browser_parent_dir_box.setText("") + self.second_browser_parent_dir_box.setObjectName("second_browser_parent_dir_box") + self.second_browser_parent_dir_path_lay.addWidget(self.second_browser_parent_dir_box) + self.second_browser_parent_dir_button = QtWidgets.QPushButton(self.second_browser_parent_dir_path_widget) + self.second_browser_parent_dir_button.setMinimumSize(QtCore.QSize(100, 30)) + self.second_browser_parent_dir_button.setObjectName("second_browser_parent_dir_button") + self.second_browser_parent_dir_path_lay.addWidget(self.second_browser_parent_dir_button) + self.verticalLayout_3.addWidget(self.second_browser_parent_dir_path_widget) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_3.addItem(spacerItem) + self.browser_page_tabs.addTab(self.browser_page_options_tab, "") + self.verticalLayout_2.addWidget(self.browser_page_tabs) self.content.addWidget(self.browser_page) self.collections_page = QtWidgets.QWidget() self.collections_page.setObjectName("collections_page") @@ -284,8 +356,8 @@ class Ui_MainWindow(object): self.use_original_streaming_method_desc.setWordWrap(True) self.use_original_streaming_method_desc.setObjectName("use_original_streaming_method_desc") self.audio_devices_settings_tab_lay.addWidget(self.use_original_streaming_method_desc, 0, QtCore.Qt.AlignTop) - spacerItem = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.audio_devices_settings_tab_lay.addItem(spacerItem) + spacerItem1 = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.audio_devices_settings_tab_lay.addItem(spacerItem1) self.settings_tabs_widget.addTab(self.audio_devices_settings_tab, "") self.general_settings_tab = QtWidgets.QWidget() self.general_settings_tab.setObjectName("general_settings_tab") @@ -337,8 +409,8 @@ class Ui_MainWindow(object): self.pusher_settings_tab.setObjectName("pusher_settings_tab") self.api_keys_settings_tabs_widget.addTab(self.pusher_settings_tab, "") self.general_settings_tab_lay.addWidget(self.api_keys_settings_tabs_widget, 0, QtCore.Qt.AlignTop) - spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.general_settings_tab_lay.addItem(spacerItem1) + spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.general_settings_tab_lay.addItem(spacerItem2) self.clear_temp_button = QtWidgets.QPushButton(self.general_settings_tab) self.clear_temp_button.setMinimumSize(QtCore.QSize(0, 40)) self.clear_temp_button.setObjectName("clear_temp_button") @@ -402,6 +474,7 @@ class Ui_MainWindow(object): self.retranslateUi(MainWindow) self.menu.setCurrentRow(-1) self.pads_content.setCurrentIndex(0) + self.browser_page_tabs.setCurrentIndex(0) self.settings_tabs_widget.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) @@ -433,6 +506,15 @@ class Ui_MainWindow(object): self.edit_first_pads_collection_label.setText(_translate("MainWindow", "Pads collection 1")) self.edit_second_pads_collection_label.setText(_translate("MainWindow", "Pads collection 2")) self.pads_content.setTabText(self.pads_content.indexOf(self.edit_pads_tab), _translate("MainWindow", "Edit pads")) + self.browser_page_tabs.setTabText(self.browser_page_tabs.indexOf(self.first_filebrowser_tab), _translate("MainWindow", "First browser")) + self.browser_page_tabs.setTabText(self.browser_page_tabs.indexOf(self.second_filebrowser_tab), _translate("MainWindow", "Second browser")) + self.first_browser_parent_dir_path_label.setText(_translate("MainWindow", "First browser parent dir")) + self.first_browser_parent_dir_box.setPlaceholderText(_translate("MainWindow", "D:\\")) + self.first_browser_parent_dir_button.setText(_translate("MainWindow", "Choose folder")) + self.second_browser_parent_dir_path_label.setText(_translate("MainWindow", "Second browser parent dir")) + self.second_browser_parent_dir_box.setPlaceholderText(_translate("MainWindow", "C:\\")) + self.second_browser_parent_dir_button.setText(_translate("MainWindow", "Choose folder")) + self.browser_page_tabs.setTabText(self.browser_page_tabs.indexOf(self.browser_page_options_tab), _translate("MainWindow", "Options")) self.play_options_group.setTitle(_translate("MainWindow", "Play options")) self.output_device_play_label.setText(_translate("MainWindow", "Output device (or virtual mic input)")) self.preview_device_play_label.setText(_translate("MainWindow", "Preview device (your headphones)")) diff --git a/gui/gui.ui b/gui/gui.ui index 6530652..4313013 100644 --- a/gui/gui.ui +++ b/gui/gui.ui @@ -20,21 +20,22 @@ QWidget { - background-color: rgb(30, 30, 30); - color: rgb(255, 255, 255); + background-color: #1e1e1e; + color: white; font: 10pt "Segoe UI"; } + QScrollBar:vertical, QScrollBar:horizontal { border: none; - background: rgb(30, 30, 30); + background: #1e1e1e; width: 10px; margin: 15px 0 15px 0; border-radius: 0px; } QScrollBar::handle:vertical, QScrollBar::handle:horizontal { - background-color: rgb(139, 139, 139); + background-color: #8b8b8b; min-height: 30px; border-radius: 5px; } @@ -42,7 +43,7 @@ QScrollBar::handle:vertical:hover, QScrollBar::handle:vertical:pressed, QScrollBar::handle:horizontal:hover, QScrollBar::handle:horizontal:pressed { - background-color: rgb(149, 149, 149); + background-color: #959595; } QScrollBar::sub-line:vertical, QScrollBar::add-line:vertical, @@ -56,6 +57,7 @@ QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: none; } + QPushButton { color: white; border-width: 1px; @@ -75,6 +77,7 @@ QPushButton:disabled { background-color: #434343; border-color: #0000; } + QLineEdit, QTextBrowser, QPlainTextEdit, QTextEdit { border-width: 1px; border-radius: 5px; @@ -83,7 +86,8 @@ QLineEdit, QTextBrowser, QPlainTextEdit, QTextEdit { background-color: #242424; font: 10pt "Segoe UI"; } -QListWidget { + +QListWidget, QListView, QTreeView { border-width: 1px; border-radius: 15px; border-style: solid; @@ -92,16 +96,25 @@ QListWidget { background-color: #242424; font: 10pt "Segoe UI"; } -QListWidget:item { +QListWidget:item, QListView:item, QTreeView:item { background-color: #242424; selection-color: white; } -QListWidget:item:hover { +QListWidget:item:hover, QListView:item:hover, QTreeView:item:hover { background-color: #323232; } -QListWidget:item:selected { +QListWidget:item:selected, QListView:item:selected, QTreeView:item:selected { background-color: #777777; } + +QTreeView::branch:has-children:closed { + image: url(":/img/img/down.svg"); +} + +QTreeView::branch:has-children:open { + image: url(":/img/img/up.svg"); +} + QComboBox { border-width: 1px; @@ -109,7 +122,7 @@ QComboBox border-style: solid; border-color: #303030; background-color: #2c2d2e; - color: #ffffff; + color: white; } QComboBox::disabled { @@ -128,7 +141,7 @@ QComboBox:on QComboBox QAbstractItemView { background-color: #434343; - color: #ffffff; + color: white; selection-background-color: #777777; selection-color: white; outline: 0; @@ -139,10 +152,11 @@ QComboBox::drop-down subcontrol-position: top right; border-radius: 6px; } + QTabBar::tab { background-color: #2c2d2e; - color: #ffffff; + color: white; border-style: solid; border-width: 1px; border-top-left-radius: 3px; @@ -158,7 +172,7 @@ QTabBar::tab:disabled QTabWidget::pane { background-color: #a0a0a0; - color: #ffffff; + color: white; border: 3px solid; border-radius: 15px; border-color: #1c1c1c; @@ -166,7 +180,7 @@ QTabWidget::pane QTabBar::tab:selected { background-color: #262728; - color: #ffffff; + color: white; border-style: solid; border-width: 1px; border-top-left-radius: 3px; @@ -692,7 +706,204 @@ QListWidget:item:selected { - + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + First browser + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + Second browser + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + Options + + + + + + First browser parent dir + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 30 + + + + D:\ + + + + + + + + 100 + 30 + + + + Choose folder + + + + + + + + + + Second browser parent dir + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 30 + + + + + + + C:\ + + + + + + + + 100 + 30 + + + + Choose folder + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + diff --git a/gui/images.qrc b/gui/images.qrc index 6c3d15d..0f1f166 100644 --- a/gui/images.qrc +++ b/gui/images.qrc @@ -1,5 +1,7 @@ + img/down.svg + img/up.svg img/pause.png img/play.png img/kotopad.ico diff --git a/gui/images_rc.py b/gui/images_rc.py index 37bf6e2..73df22b 100644 --- a/gui/images_rc.py +++ b/gui/images_rc.py @@ -9,6 +9,164 @@ from PyQt5 import QtCore qt_resource_data = b"\ +\x00\x00\x03\xee\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x03\xa3\x49\x44\x41\x54\x78\x9c\xed\x9b\xbb\x8e\ +\x14\x47\x14\x86\xbf\xb3\xd6\x72\x91\x30\x96\xcc\x03\x70\x15\xac\ +\x8c\x13\x3b\x43\xb0\x04\xdc\x64\x9c\x61\x40\x83\xe5\x14\x02\x5b\ +\x7e\x03\x12\x67\x66\x25\x02\x44\x40\x8a\x40\x80\x80\x1c\x09\x04\ +\x04\xcb\x2e\x72\xe6\xc4\xc2\xcb\xc5\xc0\xfa\x01\x7c\x59\x8c\xd8\ +\xb5\x91\xf6\x77\x50\xbd\x62\x18\xba\xab\x7b\xb6\xab\xab\x66\x44\ +\x7f\x51\x8f\xea\x4c\xd7\xf9\x7f\xf5\x45\x75\xea\x34\xb4\xb4\xb4\ +\xb4\xb4\xbc\xbf\x58\xac\x89\x24\xad\x02\xc6\x80\xad\xc0\x06\xe0\ +\x63\x60\x4d\x36\xfc\x12\xf8\x13\x98\x05\x1e\x03\x33\x66\xf6\x6f\ +\x8c\xbc\x1a\x35\x40\xd2\x66\xa0\x03\xec\x03\x76\x00\xab\x2a\xfe\ +\x75\x1e\xf8\x09\xb8\x03\x5c\x33\xb3\x67\xcd\x64\xd8\x00\x92\x46\ +\x24\x75\x24\x4d\x49\x5a\x54\x7d\x16\xb3\x73\x1d\x95\x34\x92\x5a\ +\x9f\x97\x4c\xf8\xa3\x00\xa2\x8b\x98\x91\x74\x34\xb5\xce\x77\x90\ +\xb4\x45\xd2\xed\x06\x85\xf7\x72\x53\xee\xf6\x4a\x8f\xa4\xc3\x92\ +\xfe\x8e\x28\x7e\x89\x17\x92\xbe\x4e\x29\x7c\x44\xd2\x99\x04\xc2\ +\x7b\x39\x2d\x29\xda\xdb\x6c\x49\xfc\xa8\xa4\x2b\x89\x85\x77\x73\ +\x49\xd2\x68\x2c\xf1\x26\xe9\x42\x62\xc1\x79\x5c\x51\x8c\xb7\x84\ +\x06\xe3\xb2\x2f\xe2\x74\xd3\xe2\x3b\xa9\x15\x56\xe0\x9b\x7e\x34\ +\x55\x7e\x78\x48\xda\x02\xfc\x0c\x7c\xd8\xaf\x71\x91\x79\x01\x7c\ +\x6e\x66\x4f\xab\x04\xf7\x73\xcf\x9c\x65\xf0\xc5\x03\xac\x05\xce\ +\x55\x0d\xae\x64\x80\xa4\x0e\x70\x70\xb9\x19\x25\xe0\x80\xa4\xc3\ +\x55\x02\x4b\x6f\x01\x49\x1f\x00\x0f\x80\x6d\x75\xb3\x8a\xcc\x43\ +\x60\xbb\x99\x2d\xfa\x82\xaa\x5c\x01\x47\x08\x23\x7e\x0a\x38\x01\ +\x9c\x02\x16\x72\xc6\x17\x80\x1f\xb3\x98\xe9\x00\xf3\x8d\x01\x5f\ +\xd5\x3e\x8b\xdc\x4a\xac\x2e\x4f\x24\xad\xec\x3a\xe7\xf7\x39\x31\ +\xdf\x75\x8d\xaf\x94\xf4\x5b\x80\x79\x27\xcb\xf4\x79\xaf\x00\xb9\ +\x05\xc7\xce\x5a\x0e\x3a\xa6\x7b\x0a\x1c\x77\x72\x62\xee\x2e\x1d\ +\x64\xb1\x53\x01\xe6\x1d\x97\xb4\xd1\x17\x50\x76\x0b\x74\x08\x53\ +\x34\xf9\xaf\xe4\x37\xc0\xeb\x0a\x31\xfd\x62\x38\x0d\x85\x94\x19\ +\xb0\x2f\x40\x12\xa9\xd9\xe3\x1b\x2c\x34\x40\xae\x86\xb7\x23\x78\ +\x3a\xf1\xd9\xd5\xfd\xfc\xe9\xc5\x77\x05\x8c\x51\xbd\x86\x37\xc8\ +\xac\xc6\x15\x62\x73\xf1\x19\x30\x6c\xef\x7d\x1f\x85\x5a\x7c\x06\ +\x78\x9f\x9e\x43\xc6\xa6\xa2\x01\x9f\x01\x1f\x35\x90\x48\x2a\x0a\ +\xb5\xf8\x0c\x58\xe3\x19\x1b\x36\x0a\x17\x71\x83\x5d\x67\x8f\x80\ +\xcf\x80\x97\xd1\xb2\x68\x9e\x7f\x8a\x06\x7c\x06\xcc\x35\x90\x48\ +\x2a\x0a\xb5\xf8\x0c\x18\x9e\xfd\xb8\x72\x0a\xab\x43\x3e\x03\x1e\ +\x35\x90\x48\x2a\x0a\xb5\x94\x19\x30\x1f\x3e\x97\xe8\xbc\x02\x9e\ +\x14\x0d\x16\x1a\x60\x66\x0b\xb8\x2d\xea\x61\xe7\xbe\xaf\xd7\xa0\ +\xec\x35\x98\xb7\x6e\x1f\x36\xbc\x1a\xca\x0c\xb8\x06\x28\x40\x12\ +\x2b\x4a\x7e\x03\xf4\x6e\x6d\xe5\xc5\xf4\x8b\x80\xeb\xbe\x00\xaf\ +\x01\x59\x67\xc6\xfd\x00\x89\x8c\xf7\x2c\x49\x0f\xe4\xc4\xec\x5f\ +\x3a\xc8\x96\xe2\xbb\x03\xcc\x7b\xcf\xcc\x66\x6b\x9d\x41\xae\x33\ +\x23\x04\x53\x92\x8e\x4b\x9a\x90\xb4\x90\x33\x3e\x2f\xe9\x54\x16\ +\x33\x1d\x68\xce\xd2\xd2\x78\x95\xb2\xf8\x08\xf0\x0b\xf0\x49\x2d\ +\x27\xe3\x33\x03\x7c\x5a\xbb\x2c\x9e\x9d\xe0\x87\x50\x59\x45\xe4\ +\x64\x99\x78\xe8\x6f\x6f\xf0\x06\xf0\x65\xad\x94\xe2\x71\xcb\xcc\ +\xbe\xa8\x12\xd8\x8f\x01\x9b\x71\x9b\xa3\x6b\x97\x9b\x55\x24\xe6\ +\x80\xcf\xcc\xec\x79\x95\xe0\xca\xcb\xe1\x6c\xb7\xf5\xf8\x72\xb3\ +\x8a\xc8\xb7\x55\xc5\x2f\x0b\xb9\x9e\x9c\x41\x65\xa2\x31\xe1\x5d\ +\x06\x98\xa4\xf3\xa9\x95\xe6\x70\x59\xb1\x9a\xa5\xe4\x9a\xa4\x2e\ +\x25\x16\xdc\xcd\x45\xc5\x6a\x92\xea\x32\xc1\x34\x18\xb7\xc3\x84\ +\x62\xb7\xc9\xf5\x18\x71\x48\xd2\x5f\x09\x84\xcf\xc9\x35\x6e\xa4\ +\x47\xd2\x26\xb9\xf6\xd5\x58\xdc\x50\xc9\xae\x6f\x12\xe4\xda\x66\ +\x7f\x6d\x50\xf8\x03\x49\x87\x52\xeb\xf4\x22\xd7\x42\x7b\x44\xd2\ +\xa4\xc2\xb5\xcb\x4f\xca\x99\x1b\xbc\x8c\xdf\xf4\x07\x13\x1b\x80\ +\x63\xc0\x5e\x5c\xa3\xc5\xea\x8a\x7f\x7d\x85\x5b\x86\xdf\x05\xae\ +\x9a\xd9\xef\xcd\x64\x18\xf7\x93\x99\x15\xb8\x1d\xe7\x6d\xc0\x7a\ +\x60\x1d\x6f\x7f\x32\xf3\x07\x6f\x3e\x99\x79\x68\x66\x21\x1a\x24\ +\x5a\x5a\x5a\x5a\x5a\x5a\x3c\xfc\x0f\x39\x3c\xb9\xf6\x18\xe0\xcd\ +\xe8\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x05\xb0\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x05\x65\x49\x44\x41\x54\x78\x9c\xed\x9a\x4b\x8c\ +\x15\x45\x18\x85\xab\x07\x79\xc8\x63\x00\x11\x14\x70\x20\x01\xa3\ +\x40\x06\xd8\x88\x22\x8a\x31\x2a\xc2\x42\x23\x18\x13\xd4\x18\x16\ +\x6a\x74\x21\xc6\x9d\x8a\x31\xc6\x68\x22\xca\xce\xa5\x41\x45\xd0\ +\xf8\xd6\x88\x46\x21\x12\xe4\x11\x71\x23\x02\x0e\x20\xe0\x60\x10\ +\x1f\x80\x46\x03\x8a\x8a\x93\x00\x9f\x8b\xee\x61\xfa\x9e\xae\xfa\ +\xfb\xf6\xbd\x3d\xea\xa2\xcf\xae\xee\x9c\xff\x9c\x53\xd5\x5d\xdd\ +\x55\xd5\xe3\x5c\x85\x0a\x15\x2a\x54\xa8\x50\xa1\x42\x85\x0a\x15\ +\xf2\x00\x8c\x02\x9e\x07\xde\x03\x66\xfe\xd7\x79\xba\x01\xcc\x4c\ +\x32\x2d\x07\x46\xf5\x96\xc9\x70\xa0\x83\x1e\xfc\x02\xf4\xeb\x15\ +\xb3\x62\xb9\xfa\x27\x59\xba\xd1\x01\x0c\x2b\xdb\xe4\x6c\xe0\x53\ +\xb2\x18\x59\xaa\x51\x63\xd9\x46\x79\x72\x6d\x06\x06\x94\x69\xb2\ +\xdc\x63\xf2\x72\x69\x06\x4d\x02\x78\xc5\x93\xef\xb9\xb2\xc4\x17\ +\x7a\xc4\x37\x94\x3a\xc2\x4d\x02\xe8\x07\xac\xf3\xe4\xbc\xa3\x59\ +\xe1\xd1\xc0\x31\x11\xfd\x0a\x18\x5a\x52\xf6\xd2\x00\x0c\x03\xf6\ +\x4a\xd6\x63\xc0\xf9\xcd\x88\xbe\x2a\x82\x27\x80\xe9\x25\xe6\x2e\ +\x15\x40\x3b\xf0\x57\x29\x53\x15\xb8\xd2\x73\x4b\x2d\xce\xa9\x69\ +\x01\xa6\x00\xad\x0d\x99\xda\xda\xad\x89\x76\x4b\x0e\xef\x01\xc9\ +\x7c\x1a\xb8\xa2\x11\xc3\x8f\x45\xe8\x73\xa0\x8f\xc1\x1f\x02\x6c\ +\x4a\xb8\x47\x81\x4b\x0a\x9b\x86\xb5\x67\x24\x9a\x24\x1e\x43\x0c\ +\x6e\x1f\x60\x9b\x64\x5f\x5b\xd4\xf0\x52\xcf\xd5\x9f\x65\xf0\xfb\ +\x02\xeb\x85\xbf\xa2\x90\xa9\x9d\x67\x95\x68\xaf\x03\xce\x32\xf8\ +\xb3\x3d\xf9\xeb\xbf\x20\xc0\x4b\x52\xbc\x3e\x87\xbf\xcc\x63\xf8\ +\x58\x81\x3e\xe6\xe5\x79\xdc\xa3\xff\x74\x4e\xcd\x06\xe1\xbf\x58\ +\xaf\xd9\x20\xe0\xb8\x14\xcf\x35\xf8\xb3\x88\xe7\x59\x1a\x5f\x00\ +\x03\x0b\xf6\xd3\xca\x34\x90\xec\x6d\x7d\x0a\xb8\xdc\xa8\x99\x27\ +\xfc\xdf\xea\xca\x04\xdc\x2e\x85\xdf\x11\x78\xf0\x00\x11\xb0\x5d\ +\xf8\x87\x80\x0b\x9a\xe8\x6f\x28\x57\x1b\x70\x58\xbc\xb6\x01\x51\ +\x80\xdf\x02\x7c\x2f\xfc\x85\xf5\x18\xe9\xed\xbf\xd4\xe0\xce\x27\ +\x8b\x6b\x0d\xfe\x04\xe0\xed\x64\x90\xb6\x03\xf7\x62\x3c\x58\x3d\ +\xf5\xd7\x79\xfc\x6e\x32\xf8\xcf\x08\xf7\x85\x7a\x4c\x0e\x4a\xd1\ +\x55\x06\xf7\x13\xe1\x7e\x68\x70\x47\x02\x47\x3c\x1d\xe8\x00\xae\ +\xc9\x0d\xd6\xa3\xf3\x91\xd4\x07\x9f\x4f\xc0\xd5\xc2\x3d\x90\x27\ +\xde\x26\x05\x7f\x02\xfd\x03\xdc\x71\xc4\xf3\x30\x8d\x69\x86\xf6\ +\x83\x9e\xce\xa7\xf1\x2e\x30\xa1\x8e\x01\x98\x2e\x75\xa7\x08\x4c\ +\x39\xe2\x9d\xa2\x2e\x8c\xc6\xa6\x39\x3a\xb7\x27\x4b\x7b\x47\x14\ +\x45\x5d\x81\x2c\x73\xa5\x7e\x67\x14\x45\x1d\x46\x76\xd5\x56\x2c\ +\x70\xce\xed\x06\x9e\x02\x06\x87\x48\x51\x14\x7d\xe9\x9c\xdb\x95\ +\xfa\xa9\xc5\x39\x77\x7d\x80\xdb\xe5\x9c\xdb\x61\xe5\xd0\x01\xb8\ +\x48\xda\xfb\x8c\xc0\xb3\xa5\xbd\xda\xe0\x3a\xe7\x5c\xf0\xbd\x9d\ +\xc2\x00\xe7\xdc\x12\xe7\xdc\x3e\x60\x11\x81\x07\x9c\xc7\x2b\x38\ +\x4d\x5d\xb6\x0f\x35\x7d\xd4\x01\x18\x27\xed\x4e\x43\x78\x8a\xb4\ +\x37\x1a\xdc\xa2\x18\xe3\x9c\x5b\xe9\x9c\xdb\x04\x9c\xe7\xf9\xbb\ +\x7a\x69\x96\x34\xf6\x4b\xbb\xa6\x8f\x3a\x00\x7a\xeb\x1d\x33\x84\ +\xc7\x4b\xfb\x47\x83\xdb\x28\x66\x3b\xe7\x7c\x2b\x4a\xf5\xd2\x2c\ +\x69\x1c\x95\x76\xcd\x32\x5a\x07\x40\xd7\xd8\xc7\x0d\x61\xe5\x1e\ +\x36\xb8\xcd\x60\x1e\x70\x8e\xfc\x76\x48\xda\xd6\xe6\xeb\x77\x8b\ +\xab\x03\xa0\xed\xd3\x86\xb0\x72\x4f\x1a\xdc\x66\x10\x39\xe7\xf4\ +\xec\x51\xbd\xac\x1d\xa2\xf6\xa1\x25\xd8\x70\xd9\x2b\x1e\xdc\x75\ +\x79\xb8\xa3\x0d\x6e\x33\xd8\x1a\x45\xd1\x11\xf9\x6d\x4c\x4e\x96\ +\x34\xf4\xee\xa8\xe1\xea\x00\xfc\x91\x53\x9c\x86\xce\xc3\xde\x18\ +\x80\x83\xce\xb9\x45\x9e\xdf\x75\x00\x7e\x30\x34\xf4\xf4\xaa\x66\ +\x4a\xe8\x00\xe8\xdc\x9a\x68\x08\xef\x95\x76\x70\x63\xd2\x00\xba\ +\x9c\x73\xcb\x9c\x73\xd3\xa2\x28\xda\xe3\xf9\xbb\x7a\x69\x96\x34\ +\x74\x71\x55\xd3\x47\x1d\x80\xaf\xa5\x7d\xb1\x21\xbc\x45\xda\xc1\ +\x35\x79\x41\xac\x76\xce\xb5\x47\x51\xf4\x50\x14\x45\xfa\x00\x0b\ +\x79\x69\x96\x34\xb4\x0f\xda\xc7\x1e\x00\x17\xca\xb2\xf1\x28\x81\ +\xcd\x0a\x30\xd9\xb3\x24\xd5\x75\x44\x9a\xbf\x34\x67\x29\xbc\x0b\ +\x98\x63\x74\xa4\x5b\x67\x3c\xd9\x25\xb8\xf7\x42\x11\x9f\x0e\xe9\ +\xa1\x6e\x78\xb9\x4d\xbc\xbd\xfd\x59\x0a\x82\x27\x29\xc4\xfb\xfe\ +\x34\x82\x87\x0e\xc0\x24\xe2\x43\x55\xc5\xaf\xc0\x62\x8c\x13\x1e\ +\xd1\xd1\xdd\xea\x56\x83\xab\x27\x5b\x47\x08\xaf\x2e\xcf\x14\xbd\ +\x29\x45\x8f\x18\xdc\xbb\x85\x7b\x12\x98\x6a\xf0\xe7\x00\x9d\x09\ +\xf7\x38\xf0\x2c\xd9\x77\xbc\x95\x6d\x1a\xd9\xab\x7f\xa7\xc1\x7f\ +\x54\xb8\xaf\xd5\x63\x72\x8f\x14\xed\x36\xb8\xfd\x80\x6f\x85\xbf\ +\x13\xe3\xd0\x32\xa9\x1b\x01\xf4\xcd\x0d\x53\x5b\xd3\x4a\x3c\x4d\ +\xd2\x38\x60\xe9\x00\x7b\x84\x7f\x57\x3d\x46\x23\x80\x2e\x29\x9c\ +\x61\xf0\x6f\x26\x8b\xf7\xc9\x39\xbe\x2e\x02\xe2\xd3\x9d\x0f\x3c\ +\x3e\xf3\x8d\x9a\xcb\x84\xfb\x37\xf5\xde\x6d\xc4\x7b\xf3\x34\xde\ +\xc8\xe1\xbf\xee\x09\x77\x5f\xc1\x7e\x5a\xfa\xf7\x7b\xf4\xcd\xdb\ +\x19\x78\x4b\xf8\xef\x14\x31\xd4\x03\xc5\x53\x04\x9e\xb4\x09\xbf\ +\x95\xf8\x93\x59\x1a\xab\x0a\xf4\x31\x2f\x8f\x7e\xfc\xdc\x8d\xfd\ +\x6d\x60\x0a\xd9\x67\x45\xf0\x60\x37\x24\xb2\x55\x04\x82\xc7\x5d\ +\x09\xbf\x8d\x78\x4e\x42\xfc\x30\xbc\xa1\x90\xa1\xad\x7d\x63\xa2\ +\x49\xe2\xd1\x96\xc3\x5f\x2b\xd9\x83\x6f\x0a\x4b\x64\x01\x59\x2c\ +\xc8\xa9\x19\x0a\xdc\x02\xb4\x17\x36\xcc\xcf\xd3\x9e\x68\x9b\x1f\ +\x66\x13\x8e\x22\xf8\xac\xc8\x33\xd5\xaf\x3d\x3f\x01\xba\x0e\xff\ +\xdf\x00\x18\x4b\x76\x1d\xb3\x91\xbc\x77\xbf\x21\x38\x99\xec\x1b\ +\x61\x03\x75\x2e\x5a\xfe\x4d\x10\x7f\x9e\xdb\x2c\x59\xbb\x80\x49\ +\xcd\x0a\x2f\xf1\xdc\x52\x2b\x1a\x1e\xd5\x5e\x00\xf1\x0a\x76\xa5\ +\x27\xe7\xc3\x65\x88\xb7\x90\x7d\xa8\x00\x3c\x51\x42\xf6\x52\x00\ +\x3c\xe9\xc9\xb7\x86\xb2\xd6\x22\xc4\x1f\x35\x3a\xc5\xe0\x24\x65\ +\xff\x37\x56\x63\xd9\x86\xd3\xf3\x86\xe8\x46\x27\x70\x6e\xd9\x46\ +\x13\xa9\xfd\x36\x77\x02\x18\x54\xaa\x49\x63\xb9\x06\x53\xbb\xc9\ +\x3a\x4c\x1d\x1f\x58\x1a\x35\x9b\x0a\x6c\x01\xf6\x03\xb7\xf6\x8a\ +\x49\x03\x00\x6e\x03\xbe\x01\x3e\xc3\xd8\x8c\x55\xa8\x50\xa1\x42\ +\x85\x0a\x15\x2a\x54\xa8\x50\xe1\x0c\xfe\x01\xa9\x0d\x76\xe3\x5b\ +\x28\xb0\xb7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x76\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -83,6 +241,140 @@ qt_resource_data = b"\ \xff\x65\x66\x42\xd2\xdf\x75\xf9\xd6\xd2\xd2\xd2\xd2\x72\xbd\xf2\ \x1f\x4b\xef\x4d\x6e\xa1\x3d\xf0\xd6\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ +\x00\x00\x04\x45\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x03\xfa\x49\x44\x41\x54\x78\x9c\xed\x9a\x4d\x88\ +\x56\x55\x18\xc7\xff\x67\x34\x1d\x52\xca\xd4\xc9\x9a\xa2\x32\x50\ +\x17\x8a\x09\x42\x28\x58\x18\xcc\x46\xcc\xd9\x0d\x81\xa0\xb8\x8a\ +\xa4\x0f\x03\x17\xa2\x50\x04\x12\xcc\x26\x42\x5b\xb9\x30\xa8\x95\ +\x54\x9b\x98\x45\x41\x0b\xc9\x5a\x85\x0b\x4b\x67\x91\xa5\xe2\x07\ +\x65\xe8\xa0\x82\x33\xc3\xa4\xf6\x6b\x71\xce\x85\x3b\xaf\x77\xde\ +\x7b\xee\x7d\xcf\x7b\xcf\xd5\xb9\x3f\xb8\x30\x1f\xf7\x3c\xcf\xf3\ +\x3f\xf7\xdc\x73\x9e\xe7\xdc\x23\x35\x34\x34\x34\x34\x34\x34\xcc\ +\x56\x4c\x2c\xc7\xc0\x6a\x49\xaf\xba\x18\x7e\x34\xc6\x8c\xc6\x8a\ +\xa5\x32\x80\xf9\xc0\x10\xf0\x03\xf7\x73\x12\x78\x13\x58\x10\x3b\ +\xce\xe0\x00\x2b\x80\x61\xe0\x5a\x86\xf0\x56\x6e\x02\x47\x80\x35\ +\xb1\xe3\xee\x08\x60\x0e\xb0\xcd\x3d\xed\xff\x3c\x84\x67\x71\x12\ +\xd8\x09\x3c\x12\x5b\x8f\x37\x40\x3f\xb0\x0f\xb8\x54\x52\x74\x16\ +\x7f\x63\x47\xd0\x0b\xb1\xf5\x65\x02\xf4\x00\x03\xc0\x57\xc0\x9d\ +\x80\xc2\x5b\xb9\x87\x1d\x51\x43\xc0\x9c\xd8\xba\x05\x3c\x01\xec\ +\x01\xce\x75\x51\xf4\x4c\x5c\x01\x3e\x02\x9e\x8c\x21\x7c\x3d\x76\ +\xa2\x9a\x88\x20\xbc\x95\x29\xec\xc8\x1b\x00\xba\xb7\xac\x03\x8f\ +\x61\x97\xa9\x5f\x63\xaa\xcd\xe1\x77\xec\xfc\xb3\x38\xa4\x70\x03\ +\x7c\x0c\xdc\x8e\x2a\xad\x18\xb7\x81\x83\x78\x8c\x88\xdc\x1b\x80\ +\x41\x49\xdf\x06\xe9\xcd\xea\x19\x34\xc6\x8c\xb4\xbb\xa1\xc7\xc3\ +\x48\x7f\xa0\x60\x62\x90\x1b\xbb\xcf\x08\x58\x2a\xe9\x17\x49\xcb\ +\x43\x44\x54\x21\x17\x24\xbd\x6c\x8c\xb9\xde\xee\xa6\xdc\x11\xe0\ +\x0c\xac\x95\xf4\x8e\xa4\x33\x61\x62\xeb\x2a\xa3\x92\xde\x95\xb4\ +\x36\x4f\x7c\x29\xa8\xd7\x12\x98\x50\xcd\x52\xd8\xd2\x11\x8b\xb0\ +\x49\xd0\x9f\x11\x85\xc7\x4b\x86\x52\x1d\x51\x55\x1a\x9c\x50\xaf\ +\x74\x38\x0d\xf0\x34\x36\x11\xb9\xd8\x05\xe1\xf5\x2e\x88\xd2\x60\ +\x4b\xe1\x01\x60\x84\xf2\xa5\x70\xc2\xcf\xd8\xa7\x5d\xaf\x92\x18\ +\x9b\x21\xce\xf5\xb8\x6f\x05\xf0\x09\x30\x56\x40\xf4\x98\x6b\xb3\ +\xd2\xc3\xfe\x5c\xaa\x9a\xf8\x9c\xc3\xc7\xb1\x35\xc1\x19\xe0\xaa\ +\x1b\x96\xb9\x39\x02\xed\xb7\xc3\x12\x92\x6d\xb1\x47\x3d\xec\xa5\ +\xf7\x1d\xfe\x70\x3f\x2f\x0d\xa3\x32\xdb\xe1\x06\xe0\x0b\x60\x32\ +\x23\xf0\x7b\xd8\xe1\xbe\x15\xc8\xcd\x2d\x80\x75\xc0\x61\xe0\x94\ +\xbb\x3e\x03\xd6\x79\xb4\xeb\x71\x3e\x46\x80\xbb\x19\x71\x4c\xba\ +\x18\x37\x84\x51\x6d\x9d\xf6\x02\xdf\xb7\x1f\xb1\xd3\xb8\x00\x1c\ +\x00\x96\x05\x8c\x61\x19\xb0\xdf\xd9\xf6\xe5\x3b\xa0\x37\x84\xf3\ +\x9d\x05\x9c\xa6\x99\x02\x8e\x01\x9b\x29\xf1\x8e\x62\xe7\x98\xcd\ +\xce\xc6\x54\xc9\x18\x76\xe4\xf9\xf1\x29\x86\xca\x32\x4f\xd2\x1b\ +\x92\x8e\x4b\x1a\xc5\x26\x4d\x8b\xf2\x1a\x61\x13\xac\xf7\x64\x53\ +\xda\xe3\xce\xc6\xbc\x92\x31\x50\xb2\xdd\xb4\x80\x7a\xdd\x70\x0a\ +\xc1\x38\xf0\x39\xb0\x85\xd4\xf0\x74\x3e\xb6\xb8\xff\x8d\x07\xf2\ +\x15\xe6\x15\x48\x05\xd9\x6e\x12\x2c\xcb\x55\x77\x85\x62\x12\xf8\ +\x12\xd8\x18\x4c\x78\x46\x47\xa4\x97\xc1\xba\xd0\xfd\x65\x70\x86\ +\xce\xd8\x84\xad\x01\xfe\x8d\x20\xfa\x2e\x36\xa7\xd8\x46\x95\x89\ +\xd0\x0c\x1d\xf1\x94\x7b\x02\x45\x96\xa9\xb2\xfc\x85\x4d\xbe\x9e\ +\x8b\x2a\x3a\x0b\xa6\x57\x86\x59\x89\x4a\x59\xd2\x15\x60\x6e\xfa\ +\x5d\x0b\x80\x67\xb0\xb5\xfa\x3f\x1d\x08\xbf\x01\x1c\x02\x5e\x8c\ +\xad\xe7\x3e\x80\x3e\xfc\x6b\x80\xed\xc0\x89\x02\xc2\x4f\xb8\x36\ +\xf3\x3d\xec\x2f\x07\xfa\xc2\xa8\xf2\x80\xe9\x5b\x62\x85\x86\x26\ +\xb0\x0a\xfb\xfe\x66\x55\x86\xb7\x9c\xdd\x97\x3c\xec\xb4\xbe\x6a\ +\xdd\xdd\x12\x03\x16\x02\x6f\x03\xa7\xdb\x3c\xb5\xcb\xc0\x87\x40\ +\xee\x56\x34\xb0\x00\xd8\x05\x1c\x75\xd7\x2e\x60\xa1\x47\xbb\x7e\ +\xe7\xe3\x72\x9b\x38\x4e\xbb\x58\x73\xed\xf9\x8a\xef\xa3\xd8\xec\ +\x7e\x07\xf8\x26\xd4\xd3\xc0\xd6\x04\x03\xce\x66\x91\xe5\xf6\x3c\ +\x21\xf2\x02\x60\x77\x01\xa7\xad\x9c\x05\xf6\x02\x4b\x4a\xf8\x5d\ +\xe2\xda\x9e\xed\xc0\xff\x5b\x21\x3a\x60\xb0\x83\x00\x12\x92\x3a\ +\x3d\x37\x45\x05\x36\x12\x2e\xe5\x7e\x3d\xcf\x9f\xcf\x97\x21\x23\ +\xe9\xa0\xa4\xf7\x25\x85\x38\xc0\xf4\x9b\xa4\xaf\x65\x2b\xbd\x8b\ +\xee\x6f\xcf\x4b\x7a\x4d\xd2\x90\xec\x47\x98\x4e\x99\x90\xf4\xa9\ +\xa4\x0f\x8c\x31\x9d\x57\x84\xd2\x03\xf7\x79\xbc\xf0\x2b\x57\xb4\ +\x33\xea\xf4\x75\xa8\xfa\xaf\x42\xa9\x8e\x88\x7d\x44\x66\x18\x78\ +\xb6\x52\xd1\x33\x74\x44\x8c\x43\x52\xf5\xac\x09\xe8\xce\x31\xb9\ +\x64\xfb\xbd\xfe\x5f\x85\x12\x98\xad\x07\x25\xb3\x60\x36\x1e\x95\ +\xcd\x82\x1a\x1e\x96\x8e\x79\x5c\x7e\x8d\xa4\x57\xdc\xaf\x3f\x19\ +\x63\x1e\x84\xd3\x27\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0f\x11\xff\x03\ +\x5f\xf3\x27\x33\x6c\xb2\x97\x13\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x03\xd0\ +\x3c\ +\x73\x76\x67\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\ +\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ +\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\ +\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\ +\x77\x69\x64\x74\x68\x3d\x22\x32\x36\x70\x78\x22\x20\x68\x65\x69\ +\x67\x68\x74\x3d\x22\x32\x36\x70\x78\x22\x20\x76\x69\x65\x77\x42\ +\x6f\x78\x3d\x22\x30\x2c\x30\x2c\x32\x35\x36\x2c\x32\x35\x36\x22\ +\x3e\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\ +\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x34\x39\x2e\x32\x33\x30\x37\ +\x37\x2c\x34\x39\x2e\x32\x33\x30\x37\x37\x29\x20\x73\x63\x61\x6c\ +\x65\x28\x30\x2e\x36\x31\x35\x33\x38\x2c\x30\x2e\x36\x31\x35\x33\ +\x38\x29\x22\x3e\x3c\x67\x20\x66\x69\x6c\x6c\x3d\x22\x23\x37\x62\ +\x37\x62\x37\x62\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\ +\x22\x6e\x6f\x6e\x7a\x65\x72\x6f\x22\x20\x73\x74\x72\x6f\x6b\x65\ +\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\ +\x69\x64\x74\x68\x3d\x22\x31\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6c\x69\x6e\x65\x63\x61\x70\x3d\x22\x62\x75\x74\x74\x22\x20\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x22\ +\x6d\x69\x74\x65\x72\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\ +\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x20\x73\x74\ +\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3d\x22\ +\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x30\x22\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\ +\x69\x6c\x79\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x66\x6f\x6e\x74\x2d\ +\x77\x65\x69\x67\x68\x74\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x66\x6f\ +\x6e\x74\x2d\x73\x69\x7a\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\ +\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x3d\x22\x6e\x6f\x6e\x65\ +\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x6d\x69\x78\x2d\x62\x6c\x65\ +\x6e\x64\x2d\x6d\x6f\x64\x65\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x22\ +\x3e\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x73\ +\x63\x61\x6c\x65\x28\x39\x2e\x38\x34\x36\x31\x35\x2c\x39\x2e\x38\ +\x34\x36\x31\x35\x29\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x31\x33\x2c\x31\x35\x2e\x34\x30\x36\x32\x35\x6c\x38\x2e\x37\ +\x36\x35\x36\x33\x2c\x2d\x38\x2e\x35\x38\x35\x39\x34\x63\x30\x2e\ +\x33\x39\x30\x36\x33\x2c\x2d\x30\x2e\x33\x38\x32\x38\x31\x20\x31\ +\x2e\x30\x31\x35\x36\x33\x2c\x2d\x30\x2e\x33\x37\x38\x39\x31\x20\ +\x31\x2e\x34\x30\x36\x32\x35\x2c\x30\x2e\x30\x30\x37\x38\x31\x6c\ +\x31\x2e\x35\x33\x35\x31\x36\x2c\x31\x2e\x35\x33\x35\x31\x36\x63\ +\x30\x2e\x33\x39\x30\x36\x33\x2c\x30\x2e\x33\x39\x34\x35\x33\x20\ +\x30\x2e\x33\x39\x30\x36\x33\x2c\x31\x2e\x30\x32\x37\x33\x34\x20\ +\x2d\x30\x2e\x30\x30\x33\x39\x31\x2c\x31\x2e\x34\x31\x37\x39\x37\ +\x6c\x2d\x31\x30\x2e\x39\x39\x36\x30\x39\x2c\x31\x30\x2e\x39\x32\ +\x35\x37\x38\x63\x2d\x30\x2e\x31\x39\x35\x33\x31\x2c\x30\x2e\x31\ +\x39\x35\x33\x31\x20\x2d\x30\x2e\x34\x34\x39\x32\x32\x2c\x30\x2e\ +\x32\x39\x32\x39\x37\x20\x2d\x30\x2e\x37\x30\x37\x30\x33\x2c\x30\ +\x2e\x32\x39\x32\x39\x37\x63\x2d\x30\x2e\x32\x35\x37\x38\x31\x2c\ +\x30\x20\x2d\x30\x2e\x35\x31\x31\x37\x32\x2c\x2d\x30\x2e\x30\x39\ +\x37\x36\x36\x20\x2d\x30\x2e\x37\x30\x37\x30\x33\x2c\x2d\x30\x2e\ +\x32\x39\x32\x39\x37\x6c\x2d\x31\x30\x2e\x39\x39\x36\x30\x39\x2c\ +\x2d\x31\x30\x2e\x39\x32\x35\x37\x38\x63\x2d\x30\x2e\x33\x39\x34\ +\x35\x33\x2c\x2d\x30\x2e\x33\x39\x30\x36\x32\x20\x2d\x30\x2e\x33\ +\x39\x34\x35\x33\x2c\x2d\x31\x2e\x30\x32\x33\x34\x34\x20\x2d\x30\ +\x2e\x30\x30\x33\x39\x31\x2c\x2d\x31\x2e\x34\x31\x37\x39\x37\x6c\ +\x31\x2e\x35\x33\x35\x31\x36\x2c\x2d\x31\x2e\x35\x33\x35\x31\x36\ +\x63\x30\x2e\x33\x39\x30\x36\x33\x2c\x2d\x30\x2e\x33\x38\x36\x37\ +\x32\x20\x31\x2e\x30\x31\x35\x36\x33\x2c\x2d\x30\x2e\x33\x39\x30\ +\x36\x32\x20\x31\x2e\x34\x30\x36\x32\x35\x2c\x2d\x30\x2e\x30\x30\ +\x37\x38\x31\x7a\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x67\ +\x3e\x3c\x2f\x67\x3e\x3c\x2f\x67\x3e\x3c\x2f\x73\x76\x67\x3e\ \x00\x00\x08\xba\ \x00\ \x00\xa2\xbe\x78\x9c\xed\x5d\x5b\x6f\xd4\x56\x10\xf6\x12\x92\x08\ @@ -225,252 +517,6 @@ qt_resource_data = b"\ \xcb\xa1\xcb\x8b\x7a\x15\xec\xe5\xa8\xa6\xd7\x2b\xeb\xef\x6b\x7a\ \x9b\xa2\xcf\x6a\xfa\xb0\x62\x6f\x18\x2f\x2b\xc9\x78\x5a\x49\xc6\ \x5b\xff\xf5\xff\x01\x71\x48\x74\x75\ -\x00\x00\x03\xd3\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x03\x88\x49\x44\x41\x54\x78\x9c\xed\x9b\xcf\x6f\ -\x15\x55\x14\xc7\x3f\xa7\x8a\x45\x4d\x88\x06\x89\x06\x1a\x2d\xb5\ -\x44\xaa\x60\x63\x62\x8d\x5d\x68\x52\x03\x09\x3b\x03\x1b\x70\x23\ -\x0b\x13\x36\x54\x53\xd6\x24\x24\x24\x4a\xba\x20\x60\x52\xbb\xd1\ -\x7f\x40\x16\xc0\x92\x85\xae\x8c\x58\x5d\x18\x7f\x44\x4a\x5d\x50\ -\xda\x40\x42\x15\xd1\x14\x9b\xda\xa6\xa4\x5f\x17\x73\xd1\x47\x33\ -\xd3\xbe\x99\x77\x66\xe6\xbd\x74\x3e\xc9\x4d\xe6\xdd\xde\xf7\x3d\ -\x67\xbe\xef\xdc\x7b\xe7\xcd\x9b\x42\x45\x45\x45\xc5\x3a\xc6\xca\ -\x4e\x00\x40\xd2\x0b\xc0\x69\xe0\x45\x47\xd9\x45\xe0\x3c\x70\xd2\ -\xcc\xee\x39\xea\xfa\x22\x69\xa3\xa4\x6b\xca\x8f\x13\xab\xc5\x2f\ -\xbd\x02\x24\x0d\x02\x23\xe1\xe5\x57\xc0\x6f\x4e\xd2\xfd\x40\x07\ -\x70\x17\xe8\x32\xb3\x3b\x4e\xba\x7e\x48\x6a\x97\x74\x23\x7c\x52\ -\xb7\x24\x3d\xe6\xa8\x7d\xb0\xa6\x0a\x3e\xf4\xd2\x75\x45\xd2\xfb\ -\x35\x49\x0e\x39\x6b\xb7\x49\xfa\x39\x68\xff\x2d\x69\x4b\xdc\xb8\ -\xd2\xa6\x80\x24\x03\x26\x81\xce\xd0\xf5\x35\xb0\xe0\x1c\xe6\x79\ -\x60\x7b\x38\x3e\x65\x66\xc7\x9d\xf5\x1b\x43\x52\x9f\xa4\xe9\xfc\ -\xd6\xbf\x07\x98\x88\xcb\x61\xcd\x0a\x90\xd4\x06\xec\x04\x1e\x75\ -\x3a\xef\x65\x60\xd2\xcc\x66\xef\x9b\x00\x5c\x06\x36\x38\xe9\x27\ -\x31\x6d\x66\x9d\x6b\x0f\xab\x41\x52\x87\xa4\x5f\x72\xf8\x34\xe6\ -\x25\xbd\x5b\x13\xe7\x6c\x0e\x31\x56\x32\x15\x77\x8e\xab\x56\x80\ -\xa4\xf3\xc0\x81\x54\xae\xd5\xcf\x02\xb0\xc3\xcc\x6e\x4a\x7a\x86\ -\x68\x3d\xf0\xaa\xb2\x38\x62\x2b\x20\xd1\x00\x49\xbd\xc0\x0f\x61\ -\xcc\x17\xc0\x67\x4e\x89\x74\x01\xc3\xe1\x78\xd4\xcc\x06\x43\xbc\ -\x33\xc0\x31\xa7\x18\x71\xa4\x36\xe0\x02\xb0\x1f\x10\xf0\x8a\x99\ -\xfd\xe4\x95\x89\xa4\x31\xe0\x75\xa2\xcb\xd5\xee\x84\x2a\xf8\x3e\ -\xbc\xce\xc2\x53\xc0\xc0\x8a\xbe\xfa\xd7\x00\x49\xbd\x92\x96\xc3\ -\xdc\xb9\x24\xe9\x49\xe7\x76\xa8\x66\x6e\x7e\x52\x13\x77\xa4\xa6\ -\xff\x48\xc6\x93\x47\xd2\x1b\xf5\xae\x01\x49\x02\xe7\x32\x2f\x35\ -\xe9\x59\x90\xf4\x74\x88\x3b\x50\xd3\x5f\x88\x01\x6d\x09\x1a\xaf\ -\x65\x0d\x9e\x81\x76\xa0\x37\x1c\xcf\x14\x18\x17\x48\x36\xa0\xe8\ -\x2b\xc4\xa4\x3c\x72\xe7\xe1\xb2\x02\xd7\x41\x8f\xa4\x3d\x19\xdf\ -\xbb\xbb\xde\x81\xcd\x6c\xc0\x50\x68\xb9\x52\x5a\xe9\x35\x0b\x69\ -\x2b\xe0\x02\xf0\x79\xc6\x58\x5b\x80\xd1\x14\xe3\x3f\x05\xbe\xcc\ -\x18\xab\x07\x38\x99\xf1\xbd\x20\x69\x2a\x61\xcb\xca\x7c\x63\x41\ -\xd2\x73\xab\x6c\x85\xfb\xc2\x98\x9e\x66\xd9\x06\xd7\x0d\x95\x01\ -\x65\x27\x50\x36\x69\x17\xc1\xb7\x24\x0d\xaf\x3d\x2c\x96\x4d\x29\ -\xc7\xef\x97\xd4\x95\x31\x56\x47\xbd\x03\xd3\x1a\xd0\x1f\x5a\x11\ -\xec\x0b\x2d\x57\xd6\xfd\x14\x48\x6b\xc0\x47\x96\x11\xfe\xbf\xfb\ -\xdb\x54\x54\x15\x50\x76\x02\x65\xd3\xaa\x06\xcc\x01\x7f\x79\x08\ -\xb5\xa2\x01\xb3\x40\x37\xb0\x0d\xb8\xda\xa8\x58\xda\x6d\xf0\xa8\ -\xa4\x77\x0a\x8a\x95\xc4\x1c\xf0\xa7\x99\x2d\x49\xba\x4d\xf4\xc5\ -\x27\x33\x69\x93\x7a\x22\xb4\x32\xd9\x06\x5c\x96\x34\x0b\xbc\xd9\ -\xa8\x58\x33\xdf\x10\x59\x8d\x3e\x2f\xa1\x56\x5c\x03\xee\x23\x0f\ -\x91\x56\x34\x60\x1e\xd8\x05\x6c\x05\xa6\x1b\x15\x6b\x45\x03\x7e\ -\x07\xc6\xcd\x6c\x06\xf8\xb5\x51\x31\xcf\x35\xe0\x1b\x60\x1c\x38\ -\x4c\xbe\x3f\x75\x77\x02\x17\x25\xfd\x01\xec\x6d\x54\xcc\xcb\x80\ -\x45\x60\x8f\x99\xfd\xa3\xe8\xc9\x8f\xf7\x9c\x74\x93\x78\xdb\x4b\ -\xc8\x6b\x0a\x3c\x02\xbc\xac\xe8\x21\xa7\x97\x9c\x34\x0b\xc1\xab\ -\x02\x0c\xf8\x96\xa8\x12\xda\x9d\x34\x0b\xc1\x7b\x11\x6c\xa9\x93\ -\x07\x5f\x03\xae\x11\xdd\xc7\x77\xd9\x9f\x8b\xc2\xcb\x80\x25\xa0\ -\xcf\xcc\xf6\x92\xfd\x87\x93\x52\xf0\x32\xa0\x0d\xd8\xac\xe8\x89\ -\xb2\xcd\x4e\x9a\xde\x7c\x17\xd7\xe9\xb5\x08\x3e\x04\xfc\x08\xdc\ -\x01\x9e\x6d\x40\xe7\x3a\xf0\xaa\x4b\x46\x0f\x72\x0f\xb8\x12\xf7\ -\x07\xcf\x0b\xa1\xc7\x43\xcb\x8c\x99\x2d\x10\x3d\x1b\x54\x18\xad\ -\x78\x29\xec\x4a\x65\x40\xd9\x09\x94\x4d\x65\x40\x42\x7f\xd1\xff\ -\x63\xb3\x54\x70\xbc\xff\x48\xda\x05\x3e\x06\x3e\x20\xda\xde\xf2\ -\x66\x02\x18\x2b\x20\x4e\x45\x45\x45\x45\xc5\x4a\xfe\x05\x1d\xf3\ -\xed\xaf\x60\xc7\x60\x1b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ -\x60\x82\ -\x00\x00\x02\x38\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x01\xed\x49\x44\x41\x54\x78\x9c\xed\xd9\xbd\x6a\ -\x15\x51\x14\xc5\xf1\xff\x56\x8b\x80\x22\x88\x16\x82\x3e\x41\xaa\ -\x08\xa9\xb4\x13\x04\xb5\x14\x3b\x6d\x7c\x06\x8b\x20\x04\x44\x90\ -\xd8\xfb\x0a\x36\x82\x90\x4e\xfc\x80\x80\x85\xd8\x88\xd8\x58\x88\ -\x44\x92\x26\x70\x05\x31\x22\xdc\x44\x30\xba\x2c\x4c\x11\x2f\x23\ -\xcc\x1e\xce\xcc\x91\x9b\xf5\x83\x74\x7b\xef\xb3\x67\x85\x39\xdc\ -\x9b\x80\x99\x99\x99\x99\x99\x99\x59\x2b\x92\x66\x25\x3d\x90\xb4\ -\x26\xe9\x4b\xc3\xcf\xaa\xa4\x87\x92\xe6\x6a\xef\x5a\x9c\xa4\x0b\ -\x92\xc6\x6a\xe7\xa7\xa4\x3b\x92\x0e\xd6\xde\xbb\x08\x49\x87\x25\ -\x8d\x5a\x3e\xfc\x5e\x2b\x92\x4e\xd6\xde\xbf\x49\x64\x8a\x25\x5d\ -\x05\x1e\x75\x3c\xeb\x13\x70\x1b\x78\x0e\x7c\xed\x38\xa3\xc9\x76\ -\x44\x7c\x2f\x38\xef\xdf\x24\x2d\x74\xf8\xed\xf7\xed\x97\xa4\xd7\ -\x92\x2e\x75\x79\xa6\x03\xc9\xfa\x43\x5d\x0e\xe9\x59\x00\xf3\xc0\ -\x63\x49\x37\xb2\xcd\xd9\x00\xfe\x67\x01\xdc\x97\x74\x3c\xd3\x34\ -\x4d\x01\x00\x1c\x01\x52\xaf\xc2\xb4\x05\x00\x70\x3a\x53\x3c\x8d\ -\x01\xa4\x3e\x73\x64\x2f\xb5\x65\xe0\x43\xb2\x67\x68\xef\x32\xc5\ -\xd9\x00\x66\x80\x63\xc9\x9e\xa1\xcd\x64\x8a\xb3\x01\x5c\x06\xee\ -\x26\x7b\x86\xb6\x08\xbc\x6d\x5b\x3c\x8d\x77\x40\x8a\x03\xa8\xbd\ -\x40\x6d\x0e\xa0\xf6\x02\xb5\x39\x80\xda\x0b\xd4\xd6\xc7\xd7\xdb\ -\x0d\xe0\x29\xf0\xb9\xf0\xdc\x13\xc0\x45\xe0\x54\xc9\xa1\xa5\x03\ -\x78\x03\x9c\x8f\x88\x6f\x85\xe7\x02\x20\xe9\x28\xf0\x02\x38\x53\ -\x6a\x66\xe9\x57\xe0\x5e\x5f\x0f\x0f\xb0\x3b\x7b\xa9\xe4\xcc\xd2\ -\x01\xac\x17\x9e\xd7\x64\xad\xe4\x30\x5f\x82\x7d\x1f\x20\xe9\x2c\ -\xdd\x2f\xae\x8d\x88\x78\x55\x72\x9f\x49\x43\xfc\x91\xf3\x26\x70\ -\xa5\x63\xef\x32\xd0\x6b\x00\xfb\xfe\x15\x70\x00\xb5\x17\xa8\xcd\ -\x01\x24\xeb\x77\x7a\xd9\xa2\xac\x1f\x99\xe2\x6c\x00\x1f\x93\xf5\ -\x35\xac\x66\x8a\xb3\x01\x3c\x01\x46\xc9\x9e\x21\x8d\x80\x67\x99\ -\x86\x54\x00\x11\x31\x06\xae\x03\x5b\x99\xbe\x81\x6c\x01\xd7\x76\ -\x77\x6c\x2d\xfd\x41\x28\x22\x56\x24\xcd\x03\xb7\x80\x73\xfc\xfd\ -\x7f\x82\xa6\x3b\x62\x0c\x6c\x66\xcf\xd9\xd3\x3b\x69\x67\x62\xde\ -\x26\xf0\x92\x3f\x5f\xc4\xde\x77\x3c\xc7\xcc\xcc\xcc\xcc\xcc\xcc\ -\xf6\x95\xdf\xae\xe1\x7e\x3b\xac\x1c\xda\x2f\x00\x00\x00\x00\x49\ -\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x05\xb0\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x05\x65\x49\x44\x41\x54\x78\x9c\xed\x9a\x4b\x8c\ -\x15\x45\x18\x85\xab\x07\x79\xc8\x63\x00\x11\x14\x70\x20\x01\xa3\ -\x40\x06\xd8\x88\x22\x8a\x31\x2a\xc2\x42\x23\x18\x13\xd4\x18\x16\ -\x6a\x74\x21\xc6\x9d\x8a\x31\xc6\x68\x22\xca\xce\xa5\x41\x45\xd0\ -\xf8\xd6\x88\x46\x21\x12\xe4\x11\x71\x23\x02\x0e\x20\xe0\x60\x10\ -\x1f\x80\x46\x03\x8a\x8a\x93\x00\x9f\x8b\xee\x61\xfa\x9e\xae\xfa\ -\xfb\xf6\xbd\x3d\xea\xa2\xcf\xae\xee\x9c\xff\x9c\x53\xd5\x5d\xdd\ -\x55\xd5\xe3\x5c\x85\x0a\x15\x2a\x54\xa8\x50\xa1\x42\x85\x0a\x15\ -\xf2\x00\x8c\x02\x9e\x07\xde\x03\x66\xfe\xd7\x79\xba\x01\xcc\x4c\ -\x32\x2d\x07\x46\xf5\x96\xc9\x70\xa0\x83\x1e\xfc\x02\xf4\xeb\x15\ -\xb3\x62\xb9\xfa\x27\x59\xba\xd1\x01\x0c\x2b\xdb\xe4\x6c\xe0\x53\ -\xb2\x18\x59\xaa\x51\x63\xd9\x46\x79\x72\x6d\x06\x06\x94\x69\xb2\ -\xdc\x63\xf2\x72\x69\x06\x4d\x02\x78\xc5\x93\xef\xb9\xb2\xc4\x17\ -\x7a\xc4\x37\x94\x3a\xc2\x4d\x02\xe8\x07\xac\xf3\xe4\xbc\xa3\x59\ -\xe1\xd1\xc0\x31\x11\xfd\x0a\x18\x5a\x52\xf6\xd2\x00\x0c\x03\xf6\ -\x4a\xd6\x63\xc0\xf9\xcd\x88\xbe\x2a\x82\x27\x80\xe9\x25\xe6\x2e\ -\x15\x40\x3b\xf0\x57\x29\x53\x15\xb8\xd2\x73\x4b\x2d\xce\xa9\x69\ -\x01\xa6\x00\xad\x0d\x99\xda\xda\xad\x89\x76\x4b\x0e\xef\x01\xc9\ -\x7c\x1a\xb8\xa2\x11\xc3\x8f\x45\xe8\x73\xa0\x8f\xc1\x1f\x02\x6c\ -\x4a\xb8\x47\x81\x4b\x0a\x9b\x86\xb5\x67\x24\x9a\x24\x1e\x43\x0c\ -\x6e\x1f\x60\x9b\x64\x5f\x5b\xd4\xf0\x52\xcf\xd5\x9f\x65\xf0\xfb\ -\x02\xeb\x85\xbf\xa2\x90\xa9\x9d\x67\x95\x68\xaf\x03\xce\x32\xf8\ -\xb3\x3d\xf9\xeb\xbf\x20\xc0\x4b\x52\xbc\x3e\x87\xbf\xcc\x63\xf8\ -\x58\x81\x3e\xe6\xe5\x79\xdc\xa3\xff\x74\x4e\xcd\x06\xe1\xbf\x58\ -\xaf\xd9\x20\xe0\xb8\x14\xcf\x35\xf8\xb3\x88\xe7\x59\x1a\x5f\x00\ -\x03\x0b\xf6\xd3\xca\x34\x90\xec\x6d\x7d\x0a\xb8\xdc\xa8\x99\x27\ -\xfc\xdf\xea\xca\x04\xdc\x2e\x85\xdf\x11\x78\xf0\x00\x11\xb0\x5d\ -\xf8\x87\x80\x0b\x9a\xe8\x6f\x28\x57\x1b\x70\x58\xbc\xb6\x01\x51\ -\x80\xdf\x02\x7c\x2f\xfc\x85\xf5\x18\xe9\xed\xbf\xd4\xe0\xce\x27\ -\x8b\x6b\x0d\xfe\x04\xe0\xed\x64\x90\xb6\x03\xf7\x62\x3c\x58\x3d\ -\xf5\xd7\x79\xfc\x6e\x32\xf8\xcf\x08\xf7\x85\x7a\x4c\x0e\x4a\xd1\ -\x55\x06\xf7\x13\xe1\x7e\x68\x70\x47\x02\x47\x3c\x1d\xe8\x00\xae\ -\xc9\x0d\xd6\xa3\xf3\x91\xd4\x07\x9f\x4f\xc0\xd5\xc2\x3d\x90\x27\ -\xde\x26\x05\x7f\x02\xfd\x03\xdc\x71\xc4\xf3\x30\x8d\x69\x86\xf6\ -\x83\x9e\xce\xa7\xf1\x2e\x30\xa1\x8e\x01\x98\x2e\x75\xa7\x08\x4c\ -\x39\xe2\x9d\xa2\x2e\x8c\xc6\xa6\x39\x3a\xb7\x27\x4b\x7b\x47\x14\ -\x45\x5d\x81\x2c\x73\xa5\x7e\x67\x14\x45\x1d\x46\x76\xd5\x56\x2c\ -\x70\xce\xed\x06\x9e\x02\x06\x87\x48\x51\x14\x7d\xe9\x9c\xdb\x95\ -\xfa\xa9\xc5\x39\x77\x7d\x80\xdb\xe5\x9c\xdb\x61\xe5\xd0\x01\xb8\ -\x48\xda\xfb\x8c\xc0\xb3\xa5\xbd\xda\xe0\x3a\xe7\x5c\xf0\xbd\x9d\ -\xc2\x00\xe7\xdc\x12\xe7\xdc\x3e\x60\x11\x81\x07\x9c\xc7\x2b\x38\ -\x4d\x5d\xb6\x0f\x35\x7d\xd4\x01\x18\x27\xed\x4e\x43\x78\x8a\xb4\ -\x37\x1a\xdc\xa2\x18\xe3\x9c\x5b\xe9\x9c\xdb\x04\x9c\xe7\xf9\xbb\ -\x7a\x69\x96\x34\xf6\x4b\xbb\xa6\x8f\x3a\x00\x7a\xeb\x1d\x33\x84\ -\xc7\x4b\xfb\x47\x83\xdb\x28\x66\x3b\xe7\x7c\x2b\x4a\xf5\xd2\x2c\ -\x69\x1c\x95\x76\xcd\x32\x5a\x07\x40\xd7\xd8\xc7\x0d\x61\xe5\x1e\ -\x36\xb8\xcd\x60\x1e\x70\x8e\xfc\x76\x48\xda\xd6\xe6\xeb\x77\x8b\ -\xab\x03\xa0\xed\xd3\x86\xb0\x72\x4f\x1a\xdc\x66\x10\x39\xe7\xf4\ -\xec\x51\xbd\xac\x1d\xa2\xf6\xa1\x25\xd8\x70\xd9\x2b\x1e\xdc\x75\ -\x79\xb8\xa3\x0d\x6e\x33\xd8\x1a\x45\xd1\x11\xf9\x6d\x4c\x4e\x96\ -\x34\xf4\xee\xa8\xe1\xea\x00\xfc\x91\x53\x9c\x86\xce\xc3\xde\x18\ -\x80\x83\xce\xb9\x45\x9e\xdf\x75\x00\x7e\x30\x34\xf4\xf4\xaa\x66\ -\x4a\xe8\x00\xe8\xdc\x9a\x68\x08\xef\x95\x76\x70\x63\xd2\x00\xba\ -\x9c\x73\xcb\x9c\x73\xd3\xa2\x28\xda\xe3\xf9\xbb\x7a\x69\x96\x34\ -\x74\x71\x55\xd3\x47\x1d\x80\xaf\xa5\x7d\xb1\x21\xbc\x45\xda\xc1\ -\x35\x79\x41\xac\x76\xce\xb5\x47\x51\xf4\x50\x14\x45\xfa\x00\x0b\ -\x79\x69\x96\x34\xb4\x0f\xda\xc7\x1e\x00\x17\xca\xb2\xf1\x28\x81\ -\xcd\x0a\x30\xd9\xb3\x24\xd5\x75\x44\x9a\xbf\x34\x67\x29\xbc\x0b\ -\x98\x63\x74\xa4\x5b\x67\x3c\xd9\x25\xb8\xf7\x42\x11\x9f\x0e\xe9\ -\xa1\x6e\x78\xb9\x4d\xbc\xbd\xfd\x59\x0a\x82\x27\x29\xc4\xfb\xfe\ -\x34\x82\x87\x0e\xc0\x24\xe2\x43\x55\xc5\xaf\xc0\x62\x8c\x13\x1e\ -\xd1\xd1\xdd\xea\x56\x83\xab\x27\x5b\x47\x08\xaf\x2e\xcf\x14\xbd\ -\x29\x45\x8f\x18\xdc\xbb\x85\x7b\x12\x98\x6a\xf0\xe7\x00\x9d\x09\ -\xf7\x38\xf0\x2c\xd9\x77\xbc\x95\x6d\x1a\xd9\xab\x7f\xa7\xc1\x7f\ -\x54\xb8\xaf\xd5\x63\x72\x8f\x14\xed\x36\xb8\xfd\x80\x6f\x85\xbf\ -\x13\xe3\xd0\x32\xa9\x1b\x01\xf4\xcd\x0d\x53\x5b\xd3\x4a\x3c\x4d\ -\xd2\x38\x60\xe9\x00\x7b\x84\x7f\x57\x3d\x46\x23\x80\x2e\x29\x9c\ -\x61\xf0\x6f\x26\x8b\xf7\xc9\x39\xbe\x2e\x02\xe2\xd3\x9d\x0f\x3c\ -\x3e\xf3\x8d\x9a\xcb\x84\xfb\x37\xf5\xde\x6d\xc4\x7b\xf3\x34\xde\ -\xc8\xe1\xbf\xee\x09\x77\x5f\xc1\x7e\x5a\xfa\xf7\x7b\xf4\xcd\xdb\ -\x19\x78\x4b\xf8\xef\x14\x31\xd4\x03\xc5\x53\x04\x9e\xb4\x09\xbf\ -\x95\xf8\x93\x59\x1a\xab\x0a\xf4\x31\x2f\x8f\x7e\xfc\xdc\x8d\xfd\ -\x6d\x60\x0a\xd9\x67\x45\xf0\x60\x37\x24\xb2\x55\x04\x82\xc7\x5d\ -\x09\xbf\x8d\x78\x4e\x42\xfc\x30\xbc\xa1\x90\xa1\xad\x7d\x63\xa2\ -\x49\xe2\xd1\x96\xc3\x5f\x2b\xd9\x83\x6f\x0a\x4b\x64\x01\x59\x2c\ -\xc8\xa9\x19\x0a\xdc\x02\xb4\x17\x36\xcc\xcf\xd3\x9e\x68\x9b\x1f\ -\x66\x13\x8e\x22\xf8\xac\xc8\x33\xd5\xaf\x3d\x3f\x01\xba\x0e\xff\ -\xdf\x00\x18\x4b\x76\x1d\xb3\x91\xbc\x77\xbf\x21\x38\x99\xec\x1b\ -\x61\x03\x75\x2e\x5a\xfe\x4d\x10\x7f\x9e\xdb\x2c\x59\xbb\x80\x49\ -\xcd\x0a\x2f\xf1\xdc\x52\x2b\x1a\x1e\xd5\x5e\x00\xf1\x0a\x76\xa5\ -\x27\xe7\xc3\x65\x88\xb7\x90\x7d\xa8\x00\x3c\x51\x42\xf6\x52\x00\ -\x3c\xe9\xc9\xb7\x86\xb2\xd6\x22\xc4\x1f\x35\x3a\xc5\xe0\x24\x65\ -\xff\x37\x56\x63\xd9\x86\xd3\xf3\x86\xe8\x46\x27\x70\x6e\xd9\x46\ -\x13\xa9\xfd\x36\x77\x02\x18\x54\xaa\x49\x63\xb9\x06\x53\xbb\xc9\ -\x3a\x4c\x1d\x1f\x58\x1a\x35\x9b\x0a\x6c\x01\xf6\x03\xb7\xf6\x8a\ -\x49\x03\x00\x6e\x03\xbe\x01\x3e\xc3\xd8\x8c\x55\xa8\x50\xa1\x42\ -\x85\x0a\x15\x2a\x54\xa8\x50\xe1\x0c\xfe\x01\xa9\x0d\x76\xe3\x5b\ -\x28\xb0\xb7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x03\x03\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x02\xb8\x49\x44\x41\x54\x78\x9c\xed\x9a\x3b\x6b\ -\x14\x51\x18\x86\x9f\x2f\x78\xc1\xc2\x42\xc5\x4e\x7f\x80\x06\x24\ -\x90\xa0\x2e\x49\x21\x01\xb1\xb5\xb0\xb0\xd1\x4e\xb1\x0b\x88\xbf\ -\xc2\x80\x45\x22\xa2\x20\x36\xda\x58\x88\x45\xda\x20\x48\xc0\x4b\ -\x50\x10\x35\xfe\x01\x25\xe0\xb5\x89\xc5\x1a\x93\xbc\x16\xbb\x42\ -\xdc\xcc\xee\x5c\xf6\x9b\x39\x63\xf6\x3c\xd5\xe6\x30\x67\xbf\xe7\ -\x7b\x39\x73\xc9\x99\x85\x48\x24\x12\x89\x44\x22\x91\x1c\x48\x9a\ -\x94\xb4\x24\x69\x43\xe1\xd9\x90\xf4\x5e\xd2\x64\x91\x5e\xac\x40\ -\xf3\x87\x81\x25\x60\x6f\x91\x82\x25\xb2\x02\x0c\x9b\xd9\xc7\x3c\ -\x93\x86\x0a\x14\x9a\xa6\x7e\xcd\x43\xcb\xe9\x7a\xde\x49\xb9\x56\ -\x80\xa4\x71\x60\x21\xef\xbc\x8a\x39\x65\x66\x4f\xb3\x1e\x9c\xb9\ -\x11\x49\x43\xc0\x22\x30\x5a\xc4\xaa\x42\xde\x00\x63\x66\xb6\x9e\ -\xe5\xe0\x1d\x39\xbe\xf8\x32\xc9\xcd\xbf\x00\x6e\xe4\xf8\x1e\x4f\ -\xae\x02\x27\x3b\xc6\x46\x80\x4b\xc0\x6d\xb7\x2a\x92\xf6\x49\xfa\ -\x9a\x70\x05\x5e\x97\x34\xe6\x56\x28\xbf\xd7\x88\xa4\xb5\x04\xaf\ -\xef\x92\x0e\x78\x16\x9a\xed\x72\x0b\xf2\x4b\xb9\xb8\xdb\x9d\x2e\ -\x6e\x33\x5e\x05\x8e\x4a\x5a\x4d\x28\xf0\x43\xd2\x41\x97\x22\xfd\ -\xf9\xed\x97\xf4\x2d\xc1\x6f\x4d\xd2\x31\x8f\x02\x73\x5d\x12\x9e\ -\x72\xf0\x77\x41\xd2\x54\x17\xc7\xb9\xb4\xb9\xa9\x77\x01\x49\x4d\ -\x60\x77\xc7\xf0\x0a\x70\x05\xf8\x5d\x4c\xd9\x9d\x9d\xb4\x2e\x7a\ -\x9d\xcf\x27\x4d\x33\xdb\xd3\x6b\x62\x96\x00\xd4\x87\x58\x70\xcc\ -\xac\x67\x8f\x45\x9e\x04\xb7\x15\x31\x80\xd0\x02\xa1\x89\x01\x84\ -\x16\x08\xcd\xc0\x07\x90\xe7\x9f\x21\x6f\xd6\x80\x97\xed\xcf\x27\ -\x42\xb9\x84\x5a\x01\x2b\x40\xc3\xcc\x26\xcc\x6c\x02\x18\x07\x7e\ -\x86\x10\x09\x15\xc0\x8c\x99\xbd\xfa\xfb\x87\x99\x2d\x02\xb3\x21\ -\x44\x42\x05\xf0\x2e\x61\xec\x6d\xe5\x16\x84\x0b\x60\x23\x61\x2c\ -\xd3\x0e\x8e\x37\x03\x7f\x17\x88\x01\x84\x16\x08\x4d\x0c\x20\xb4\ -\x40\x68\x06\x3e\x80\x2a\x76\x84\x1e\x03\x8f\x80\xd5\x4d\x63\xcf\ -\xcd\xec\x53\x47\x9d\x43\x40\x63\xd3\xd0\x2e\xe0\x1c\x70\xb6\x9f\ -\xe2\x69\x3b\x42\xa9\x74\xd9\x6c\xcc\xca\xbc\xa4\xc2\x02\x92\x4c\ -\xd2\x93\x7e\x04\xd2\x6a\x94\x7d\x0a\x2c\x98\x59\xe1\x15\xd4\x9e\ -\xfb\xcc\xd1\x67\x0b\x65\x07\x70\x46\xad\x77\x8a\x85\x68\xcf\x3d\ -\xed\xe8\xb3\x85\xb2\x03\x68\x00\x77\x8b\x84\xd0\x3e\x75\x6e\x02\ -\xc7\xdd\xad\x72\x8a\x78\x70\x2f\x4f\x08\x6a\x9d\xfb\xb7\x3c\x0a\ -\xd7\x25\x00\x29\x63\x08\x72\x6c\x5e\xaa\x57\x00\x52\x4a\x08\x72\ -\x6e\x5e\xaa\x5f\x00\x52\x97\x10\x54\x42\xf3\x52\x3d\x03\x90\x3a\ -\x42\x50\x49\xcd\x4b\xe9\x01\x84\x7c\x37\xf8\x10\xb8\xd6\xfe\x3c\ -\x0d\x9c\x2f\xa3\x48\xda\x93\x60\x7c\x39\x5a\x95\x48\x5d\xc9\x12\ -\xc0\xff\xbc\x02\x92\xf6\x1e\xff\x21\x4b\x00\x5f\x1c\x44\x42\xf1\ -\x39\xed\x80\x2c\x01\xcc\x3b\x88\x84\x22\xd5\x3d\xcb\x45\x70\x18\ -\x78\xcd\xd6\x9f\xc9\xd4\x9d\x26\x30\x6a\x66\x1f\x7a\x1d\x94\xba\ -\x02\xcc\x6c\x09\xb8\x08\xfc\x72\x12\xab\x82\x26\x70\x21\xad\xf9\ -\x5c\xa8\xf5\x73\xb9\x07\x92\x96\xcb\x78\x60\x71\x62\x59\xd2\x7d\ -\x49\x47\xdc\x1a\x8f\x44\x22\x91\x48\x24\xb2\x6d\xf9\x03\x83\x15\ -\x47\xb9\xdf\x18\xff\xe9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ -\x60\x82\ \x00\x00\x05\x4e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -558,6 +604,69 @@ qt_resource_data = b"\ \x63\x89\x12\xfa\xea\x6c\x93\xec\xd5\xd9\x39\x31\x22\x17\x24\xed\ \xbb\x66\xaf\xce\x5e\x67\x1a\xf2\x0f\xac\x40\xde\xa1\xce\xa5\x28\ \x34\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x03\xcc\ +\x3c\ +\x73\x76\x67\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\ +\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ +\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\ +\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\ +\x77\x69\x64\x74\x68\x3d\x22\x32\x36\x70\x78\x22\x20\x68\x65\x69\ +\x67\x68\x74\x3d\x22\x32\x36\x70\x78\x22\x20\x76\x69\x65\x77\x42\ +\x6f\x78\x3d\x22\x30\x2c\x30\x2c\x32\x35\x36\x2c\x32\x35\x36\x22\ +\x3e\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\ +\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x34\x39\x2e\x32\x33\x30\x37\ +\x37\x2c\x34\x39\x2e\x32\x33\x30\x37\x37\x29\x20\x73\x63\x61\x6c\ +\x65\x28\x30\x2e\x36\x31\x35\x33\x38\x2c\x30\x2e\x36\x31\x35\x33\ +\x38\x29\x22\x3e\x3c\x67\x20\x66\x69\x6c\x6c\x3d\x22\x23\x37\x62\ +\x37\x62\x37\x62\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\ +\x22\x6e\x6f\x6e\x7a\x65\x72\x6f\x22\x20\x73\x74\x72\x6f\x6b\x65\ +\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\ +\x69\x64\x74\x68\x3d\x22\x31\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6c\x69\x6e\x65\x63\x61\x70\x3d\x22\x62\x75\x74\x74\x22\x20\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x22\ +\x6d\x69\x74\x65\x72\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\ +\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x20\x73\x74\ +\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3d\x22\ +\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x30\x22\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\ +\x69\x6c\x79\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x66\x6f\x6e\x74\x2d\ +\x77\x65\x69\x67\x68\x74\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x66\x6f\ +\x6e\x74\x2d\x73\x69\x7a\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\ +\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x3d\x22\x6e\x6f\x6e\x65\ +\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x6d\x69\x78\x2d\x62\x6c\x65\ +\x6e\x64\x2d\x6d\x6f\x64\x65\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x22\ +\x3e\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x73\ +\x63\x61\x6c\x65\x28\x39\x2e\x38\x34\x36\x31\x35\x2c\x39\x2e\x38\ +\x34\x36\x31\x35\x29\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x31\x33\x2c\x31\x30\x2e\x35\x39\x33\x37\x35\x6c\x38\x2e\x37\ +\x36\x35\x36\x33\x2c\x38\x2e\x35\x38\x35\x39\x34\x63\x30\x2e\x33\ +\x39\x30\x36\x33\x2c\x30\x2e\x33\x38\x32\x38\x31\x20\x31\x2e\x30\ +\x31\x35\x36\x33\x2c\x30\x2e\x33\x37\x38\x39\x31\x20\x31\x2e\x34\ +\x30\x36\x32\x35\x2c\x2d\x30\x2e\x30\x30\x37\x38\x31\x6c\x31\x2e\ +\x35\x33\x35\x31\x36\x2c\x2d\x31\x2e\x35\x33\x35\x31\x36\x63\x30\ +\x2e\x33\x39\x30\x36\x33\x2c\x2d\x30\x2e\x33\x39\x34\x35\x33\x20\ +\x30\x2e\x33\x39\x30\x36\x33\x2c\x2d\x31\x2e\x30\x32\x37\x33\x34\ +\x20\x2d\x30\x2e\x30\x30\x33\x39\x31\x2c\x2d\x31\x2e\x34\x31\x37\ +\x39\x37\x6c\x2d\x31\x30\x2e\x39\x39\x36\x30\x39\x2c\x2d\x31\x30\ +\x2e\x39\x32\x35\x37\x38\x63\x2d\x30\x2e\x31\x39\x35\x33\x31\x2c\ +\x2d\x30\x2e\x31\x39\x35\x33\x31\x20\x2d\x30\x2e\x34\x34\x39\x32\ +\x32\x2c\x2d\x30\x2e\x32\x39\x32\x39\x37\x20\x2d\x30\x2e\x37\x30\ +\x37\x30\x33\x2c\x2d\x30\x2e\x32\x39\x32\x39\x37\x63\x2d\x30\x2e\ +\x32\x35\x37\x38\x31\x2c\x30\x20\x2d\x30\x2e\x35\x31\x31\x37\x32\ +\x2c\x30\x2e\x30\x39\x37\x36\x36\x20\x2d\x30\x2e\x37\x30\x37\x30\ +\x33\x2c\x30\x2e\x32\x39\x32\x39\x37\x6c\x2d\x31\x30\x2e\x39\x39\ +\x36\x30\x39\x2c\x31\x30\x2e\x39\x32\x35\x37\x38\x63\x2d\x30\x2e\ +\x33\x39\x34\x35\x33\x2c\x30\x2e\x33\x39\x30\x36\x33\x20\x2d\x30\ +\x2e\x33\x39\x34\x35\x33\x2c\x31\x2e\x30\x32\x33\x34\x34\x20\x2d\ +\x30\x2e\x30\x30\x33\x39\x31\x2c\x31\x2e\x34\x31\x37\x39\x37\x6c\ +\x31\x2e\x35\x33\x35\x31\x36\x2c\x31\x2e\x35\x33\x35\x31\x36\x63\ +\x30\x2e\x33\x39\x30\x36\x33\x2c\x30\x2e\x33\x38\x36\x37\x32\x20\ +\x31\x2e\x30\x31\x35\x36\x33\x2c\x30\x2e\x33\x39\x30\x36\x33\x20\ +\x31\x2e\x34\x30\x36\x32\x35\x2c\x30\x2e\x30\x30\x37\x38\x31\x7a\ +\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x67\x3e\x3c\x2f\x67\ +\x3e\x3c\x2f\x67\x3e\x3c\x2f\x73\x76\x67\x3e\ \x00\x00\x05\x66\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -647,142 +756,159 @@ qt_resource_data = b"\ \x07\x76\x4b\xda\x5f\x56\xb2\x46\x8d\x1a\x35\x6a\xd4\x38\xbf\xf8\ \x1f\xdc\xa4\x61\xd1\x24\x69\x26\xe9\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ -\x00\x00\x04\x45\ +\x00\x00\x02\x38\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x03\xfa\x49\x44\x41\x54\x78\x9c\xed\x9a\x4d\x88\ -\x56\x55\x18\xc7\xff\x67\x34\x1d\x52\xca\xd4\xc9\x9a\xa2\x32\x50\ -\x17\x8a\x09\x42\x28\x58\x18\xcc\x46\xcc\xd9\x0d\x81\xa0\xb8\x8a\ -\xa4\x0f\x03\x17\xa2\x50\x04\x12\xcc\x26\x42\x5b\xb9\x30\xa8\x95\ -\x54\x9b\x98\x45\x41\x0b\xc9\x5a\x85\x0b\x4b\x67\x91\xa5\xe2\x07\ -\x65\xe8\xa0\x82\x33\xc3\xa4\xf6\x6b\x71\xce\x85\x3b\xaf\x77\xde\ -\x7b\xee\x7d\xcf\x7b\xcf\xd5\xb9\x3f\xb8\x30\x1f\xf7\x3c\xcf\xf3\ -\x3f\xf7\xdc\x73\x9e\xe7\xdc\x23\x35\x34\x34\x34\x34\x34\x34\xcc\ -\x56\x4c\x2c\xc7\xc0\x6a\x49\xaf\xba\x18\x7e\x34\xc6\x8c\xc6\x8a\ -\xa5\x32\x80\xf9\xc0\x10\xf0\x03\xf7\x73\x12\x78\x13\x58\x10\x3b\ -\xce\xe0\x00\x2b\x80\x61\xe0\x5a\x86\xf0\x56\x6e\x02\x47\x80\x35\ -\xb1\xe3\xee\x08\x60\x0e\xb0\xcd\x3d\xed\xff\x3c\x84\x67\x71\x12\ -\xd8\x09\x3c\x12\x5b\x8f\x37\x40\x3f\xb0\x0f\xb8\x54\x52\x74\x16\ -\x7f\x63\x47\xd0\x0b\xb1\xf5\x65\x02\xf4\x00\x03\xc0\x57\xc0\x9d\ -\x80\xc2\x5b\xb9\x87\x1d\x51\x43\xc0\x9c\xd8\xba\x05\x3c\x01\xec\ -\x01\xce\x75\x51\xf4\x4c\x5c\x01\x3e\x02\x9e\x8c\x21\x7c\x3d\x76\ -\xa2\x9a\x88\x20\xbc\x95\x29\xec\xc8\x1b\x00\xba\xb7\xac\x03\x8f\ -\x61\x97\xa9\x5f\x63\xaa\xcd\xe1\x77\xec\xfc\xb3\x38\xa4\x70\x03\ -\x7c\x0c\xdc\x8e\x2a\xad\x18\xb7\x81\x83\x78\x8c\x88\xdc\x1b\x80\ -\x41\x49\xdf\x06\xe9\xcd\xea\x19\x34\xc6\x8c\xb4\xbb\xa1\xc7\xc3\ -\x48\x7f\xa0\x60\x62\x90\x1b\xbb\xcf\x08\x58\x2a\xe9\x17\x49\xcb\ -\x43\x44\x54\x21\x17\x24\xbd\x6c\x8c\xb9\xde\xee\xa6\xdc\x11\xe0\ -\x0c\xac\x95\xf4\x8e\xa4\x33\x61\x62\xeb\x2a\xa3\x92\xde\x95\xb4\ -\x36\x4f\x7c\x29\xa8\xd7\x12\x98\x50\xcd\x52\xd8\xd2\x11\x8b\xb0\ -\x49\xd0\x9f\x11\x85\xc7\x4b\x86\x52\x1d\x51\x55\x1a\x9c\x50\xaf\ -\x74\x38\x0d\xf0\x34\x36\x11\xb9\xd8\x05\xe1\xf5\x2e\x88\xd2\x60\ -\x4b\xe1\x01\x60\x84\xf2\xa5\x70\xc2\xcf\xd8\xa7\x5d\xaf\x92\x18\ -\x9b\x21\xce\xf5\xb8\x6f\x05\xf0\x09\x30\x56\x40\xf4\x98\x6b\xb3\ -\xd2\xc3\xfe\x5c\xaa\x9a\xf8\x9c\xc3\xc7\xb1\x35\xc1\x19\xe0\xaa\ -\x1b\x96\xb9\x39\x02\xed\xb7\xc3\x12\x92\x6d\xb1\x47\x3d\xec\xa5\ -\xf7\x1d\xfe\x70\x3f\x2f\x0d\xa3\x32\xdb\xe1\x06\xe0\x0b\x60\x32\ -\x23\xf0\x7b\xd8\xe1\xbe\x15\xc8\xcd\x2d\x80\x75\xc0\x61\xe0\x94\ -\xbb\x3e\x03\xd6\x79\xb4\xeb\x71\x3e\x46\x80\xbb\x19\x71\x4c\xba\ -\x18\x37\x84\x51\x6d\x9d\xf6\x02\xdf\xb7\x1f\xb1\xd3\xb8\x00\x1c\ -\x00\x96\x05\x8c\x61\x19\xb0\xdf\xd9\xf6\xe5\x3b\xa0\x37\x84\xf3\ -\x9d\x05\x9c\xa6\x99\x02\x8e\x01\x9b\x29\xf1\x8e\x62\xe7\x98\xcd\ -\xce\xc6\x54\xc9\x18\x76\xe4\xf9\xf1\x29\x86\xca\x32\x4f\xd2\x1b\ -\x92\x8e\x4b\x1a\xc5\x26\x4d\x8b\xf2\x1a\x61\x13\xac\xf7\x64\x53\ -\xda\xe3\xce\xc6\xbc\x92\x31\x50\xb2\xdd\xb4\x80\x7a\xdd\x70\x0a\ -\xc1\x38\xf0\x39\xb0\x85\xd4\xf0\x74\x3e\xb6\xb8\xff\x8d\x07\xf2\ -\x15\xe6\x15\x48\x05\xd9\x6e\x12\x2c\xcb\x55\x77\x85\x62\x12\xf8\ -\x12\xd8\x18\x4c\x78\x46\x47\xa4\x97\xc1\xba\xd0\xfd\x65\x70\x86\ -\xce\xd8\x84\xad\x01\xfe\x8d\x20\xfa\x2e\x36\xa7\xd8\x46\x95\x89\ -\xd0\x0c\x1d\xf1\x94\x7b\x02\x45\x96\xa9\xb2\xfc\x85\x4d\xbe\x9e\ -\x8b\x2a\x3a\x0b\xa6\x57\x86\x59\x89\x4a\x59\xd2\x15\x60\x6e\xfa\ -\x5d\x0b\x80\x67\xb0\xb5\xfa\x3f\x1d\x08\xbf\x01\x1c\x02\x5e\x8c\ -\xad\xe7\x3e\x80\x3e\xfc\x6b\x80\xed\xc0\x89\x02\xc2\x4f\xb8\x36\ -\xf3\x3d\xec\x2f\x07\xfa\xc2\xa8\xf2\x80\xe9\x5b\x62\x85\x86\x26\ -\xb0\x0a\xfb\xfe\x66\x55\x86\xb7\x9c\xdd\x97\x3c\xec\xb4\xbe\x6a\ -\xdd\xdd\x12\x03\x16\x02\x6f\x03\xa7\xdb\x3c\xb5\xcb\xc0\x87\x40\ -\xee\x56\x34\xb0\x00\xd8\x05\x1c\x75\xd7\x2e\x60\xa1\x47\xbb\x7e\ -\xe7\xe3\x72\x9b\x38\x4e\xbb\x58\x73\xed\xf9\x8a\xef\xa3\xd8\xec\ -\x7e\x07\xf8\x26\xd4\xd3\xc0\xd6\x04\x03\xce\x66\x91\xe5\xf6\x3c\ -\x21\xf2\x02\x60\x77\x01\xa7\xad\x9c\x05\xf6\x02\x4b\x4a\xf8\x5d\ -\xe2\xda\x9e\xed\xc0\xff\x5b\x21\x3a\x60\xb0\x83\x00\x12\x92\x3a\ -\x3d\x37\x45\x05\x36\x12\x2e\xe5\x7e\x3d\xcf\x9f\xcf\x97\x21\x23\ -\xe9\xa0\xa4\xf7\x25\x85\x38\xc0\xf4\x9b\xa4\xaf\x65\x2b\xbd\x8b\ -\xee\x6f\xcf\x4b\x7a\x4d\xd2\x90\xec\x47\x98\x4e\x99\x90\xf4\xa9\ -\xa4\x0f\x8c\x31\x9d\x57\x84\xd2\x03\xf7\x79\xbc\xf0\x2b\x57\xb4\ -\x33\xea\xf4\x75\xa8\xfa\xaf\x42\xa9\x8e\x88\x7d\x44\x66\x18\x78\ -\xb6\x52\xd1\x33\x74\x44\x8c\x43\x52\xf5\xac\x09\xe8\xce\x31\xb9\ -\x64\xfb\xbd\xfe\x5f\x85\x12\x98\xad\x07\x25\xb3\x60\x36\x1e\x95\ -\xcd\x82\x1a\x1e\x96\x8e\x79\x5c\x7e\x8d\xa4\x57\xdc\xaf\x3f\x19\ -\x63\x1e\x84\xd3\x27\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0f\x11\xff\x03\ -\x5f\xf3\x27\x33\x6c\xb2\x97\x13\x00\x00\x00\x00\x49\x45\x4e\x44\ -\xae\x42\x60\x82\ -\x00\x00\x03\xee\ +\xa7\x93\x00\x00\x01\xed\x49\x44\x41\x54\x78\x9c\xed\xd9\xbd\x6a\ +\x15\x51\x14\xc5\xf1\xff\x56\x8b\x80\x22\x88\x16\x82\x3e\x41\xaa\ +\x08\xa9\xb4\x13\x04\xb5\x14\x3b\x6d\x7c\x06\x8b\x20\x04\x44\x90\ +\xd8\xfb\x0a\x36\x82\x90\x4e\xfc\x80\x80\x85\xd8\x88\xd8\x58\x88\ +\x44\x92\x26\x70\x05\x31\x22\xdc\x44\x30\xba\x2c\x4c\x11\x2f\x23\ +\xcc\x1e\xce\xcc\x91\x9b\xf5\x83\x74\x7b\xef\xb3\x67\x85\x39\xdc\ +\x9b\x80\x99\x99\x99\x99\x99\x99\x59\x2b\x92\x66\x25\x3d\x90\xb4\ +\x26\xe9\x4b\xc3\xcf\xaa\xa4\x87\x92\xe6\x6a\xef\x5a\x9c\xa4\x0b\ +\x92\xc6\x6a\xe7\xa7\xa4\x3b\x92\x0e\xd6\xde\xbb\x08\x49\x87\x25\ +\x8d\x5a\x3e\xfc\x5e\x2b\x92\x4e\xd6\xde\xbf\x49\x64\x8a\x25\x5d\ +\x05\x1e\x75\x3c\xeb\x13\x70\x1b\x78\x0e\x7c\xed\x38\xa3\xc9\x76\ +\x44\x7c\x2f\x38\xef\xdf\x24\x2d\x74\xf8\xed\xf7\xed\x97\xa4\xd7\ +\x92\x2e\x75\x79\xa6\x03\xc9\xfa\x43\x5d\x0e\xe9\x59\x00\xf3\xc0\ +\x63\x49\x37\xb2\xcd\xd9\x00\xfe\x67\x01\xdc\x97\x74\x3c\xd3\x34\ +\x4d\x01\x00\x1c\x01\x52\xaf\xc2\xb4\x05\x00\x70\x3a\x53\x3c\x8d\ +\x01\xa4\x3e\x73\x64\x2f\xb5\x65\xe0\x43\xb2\x67\x68\xef\x32\xc5\ +\xd9\x00\x66\x80\x63\xc9\x9e\xa1\xcd\x64\x8a\xb3\x01\x5c\x06\xee\ +\x26\x7b\x86\xb6\x08\xbc\x6d\x5b\x3c\x8d\x77\x40\x8a\x03\xa8\xbd\ +\x40\x6d\x0e\xa0\xf6\x02\xb5\x39\x80\xda\x0b\xd4\xd6\xc7\xd7\xdb\ +\x0d\xe0\x29\xf0\xb9\xf0\xdc\x13\xc0\x45\xe0\x54\xc9\xa1\xa5\x03\ +\x78\x03\x9c\x8f\x88\x6f\x85\xe7\x02\x20\xe9\x28\xf0\x02\x38\x53\ +\x6a\x66\xe9\x57\xe0\x5e\x5f\x0f\x0f\xb0\x3b\x7b\xa9\xe4\xcc\xd2\ +\x01\xac\x17\x9e\xd7\x64\xad\xe4\x30\x5f\x82\x7d\x1f\x20\xe9\x2c\ +\xdd\x2f\xae\x8d\x88\x78\x55\x72\x9f\x49\x43\xfc\x91\xf3\x26\x70\ +\xa5\x63\xef\x32\xd0\x6b\x00\xfb\xfe\x15\x70\x00\xb5\x17\xa8\xcd\ +\x01\x24\xeb\x77\x7a\xd9\xa2\xac\x1f\x99\xe2\x6c\x00\x1f\x93\xf5\ +\x35\xac\x66\x8a\xb3\x01\x3c\x01\x46\xc9\x9e\x21\x8d\x80\x67\x99\ +\x86\x54\x00\x11\x31\x06\xae\x03\x5b\x99\xbe\x81\x6c\x01\xd7\x76\ +\x77\x6c\x2d\xfd\x41\x28\x22\x56\x24\xcd\x03\xb7\x80\x73\xfc\xfd\ +\x7f\x82\xa6\x3b\x62\x0c\x6c\x66\xcf\xd9\xd3\x3b\x69\x67\x62\xde\ +\x26\xf0\x92\x3f\x5f\xc4\xde\x77\x3c\xc7\xcc\xcc\xcc\xcc\xcc\xcc\ +\xf6\x95\xdf\xae\xe1\x7e\x3b\xac\x1c\xda\x2f\x00\x00\x00\x00\x49\ +\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x03\xd3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x03\xa3\x49\x44\x41\x54\x78\x9c\xed\x9b\xbb\x8e\ -\x14\x47\x14\x86\xbf\xb3\xd6\x72\x91\x30\x96\xcc\x03\x70\x15\xac\ -\x8c\x13\x3b\x43\xb0\x04\xdc\x64\x9c\x61\x40\x83\xe5\x14\x02\x5b\ -\x7e\x03\x12\x67\x66\x25\x02\x44\x40\x8a\x40\x80\x80\x1c\x09\x04\ -\x04\xcb\x2e\x72\xe6\xc4\xc2\xcb\xc5\xc0\xfa\x01\x7c\x59\x8c\xd8\ -\xb5\x91\xf6\x77\x50\xbd\x62\x18\xba\xab\x7b\xb6\xab\xab\x66\x44\ -\x7f\x51\x8f\xea\x4c\xd7\xf9\x7f\xf5\x45\x75\xea\x34\xb4\xb4\xb4\ -\xb4\xb4\xbc\xbf\x58\xac\x89\x24\xad\x02\xc6\x80\xad\xc0\x06\xe0\ -\x63\x60\x4d\x36\xfc\x12\xf8\x13\x98\x05\x1e\x03\x33\x66\xf6\x6f\ -\x8c\xbc\x1a\x35\x40\xd2\x66\xa0\x03\xec\x03\x76\x00\xab\x2a\xfe\ -\x75\x1e\xf8\x09\xb8\x03\x5c\x33\xb3\x67\xcd\x64\xd8\x00\x92\x46\ -\x24\x75\x24\x4d\x49\x5a\x54\x7d\x16\xb3\x73\x1d\x95\x34\x92\x5a\ -\x9f\x97\x4c\xf8\xa3\x00\xa2\x8b\x98\x91\x74\x34\xb5\xce\x77\x90\ -\xb4\x45\xd2\xed\x06\x85\xf7\x72\x53\xee\xf6\x4a\x8f\xa4\xc3\x92\ -\xfe\x8e\x28\x7e\x89\x17\x92\xbe\x4e\x29\x7c\x44\xd2\x99\x04\xc2\ -\x7b\x39\x2d\x29\xda\xdb\x6c\x49\xfc\xa8\xa4\x2b\x89\x85\x77\x73\ -\x49\xd2\x68\x2c\xf1\x26\xe9\x42\x62\xc1\x79\x5c\x51\x8c\xb7\x84\ -\x06\xe3\xb2\x2f\xe2\x74\xd3\xe2\x3b\xa9\x15\x56\xe0\x9b\x7e\x34\ -\x55\x7e\x78\x48\xda\x02\xfc\x0c\x7c\xd8\xaf\x71\x91\x79\x01\x7c\ -\x6e\x66\x4f\xab\x04\xf7\x73\xcf\x9c\x65\xf0\xc5\x03\xac\x05\xce\ -\x55\x0d\xae\x64\x80\xa4\x0e\x70\x70\xb9\x19\x25\xe0\x80\xa4\xc3\ -\x55\x02\x4b\x6f\x01\x49\x1f\x00\x0f\x80\x6d\x75\xb3\x8a\xcc\x43\ -\x60\xbb\x99\x2d\xfa\x82\xaa\x5c\x01\x47\x08\x23\x7e\x0a\x38\x01\ -\x9c\x02\x16\x72\xc6\x17\x80\x1f\xb3\x98\xe9\x00\xf3\x8d\x01\x5f\ -\xd5\x3e\x8b\xdc\x4a\xac\x2e\x4f\x24\xad\xec\x3a\xe7\xf7\x39\x31\ -\xdf\x75\x8d\xaf\x94\xf4\x5b\x80\x79\x27\xcb\xf4\x79\xaf\x00\xb9\ -\x05\xc7\xce\x5a\x0e\x3a\xa6\x7b\x0a\x1c\x77\x72\x62\xee\x2e\x1d\ -\x64\xb1\x53\x01\xe6\x1d\x97\xb4\xd1\x17\x50\x76\x0b\x74\x08\x53\ -\x34\xf9\xaf\xe4\x37\xc0\xeb\x0a\x31\xfd\x62\x38\x0d\x85\x94\x19\ -\xb0\x2f\x40\x12\xa9\xd9\xe3\x1b\x2c\x34\x40\xae\x86\xb7\x23\x78\ -\x3a\xf1\xd9\xd5\xfd\xfc\xe9\xc5\x77\x05\x8c\x51\xbd\x86\x37\xc8\ -\xac\xc6\x15\x62\x73\xf1\x19\x30\x6c\xef\x7d\x1f\x85\x5a\x7c\x06\ -\x78\x9f\x9e\x43\xc6\xa6\xa2\x01\x9f\x01\x1f\x35\x90\x48\x2a\x0a\ -\xb5\xf8\x0c\x58\xe3\x19\x1b\x36\x0a\x17\x71\x83\x5d\x67\x8f\x80\ -\xcf\x80\x97\xd1\xb2\x68\x9e\x7f\x8a\x06\x7c\x06\xcc\x35\x90\x48\ -\x2a\x0a\xb5\xf8\x0c\x18\x9e\xfd\xb8\x72\x0a\xab\x43\x3e\x03\x1e\ -\x35\x90\x48\x2a\x0a\xb5\x94\x19\x30\x1f\x3e\x97\xe8\xbc\x02\x9e\ -\x14\x0d\x16\x1a\x60\x66\x0b\xb8\x2d\xea\x61\xe7\xbe\xaf\xd7\xa0\ -\xec\x35\x98\xb7\x6e\x1f\x36\xbc\x1a\xca\x0c\xb8\x06\x28\x40\x12\ -\x2b\x4a\x7e\x03\xf4\x6e\x6d\xe5\xc5\xf4\x8b\x80\xeb\xbe\x00\xaf\ -\x01\x59\x67\xc6\xfd\x00\x89\x8c\xf7\x2c\x49\x0f\xe4\xc4\xec\x5f\ -\x3a\xc8\x96\xe2\xbb\x03\xcc\x7b\xcf\xcc\x66\x6b\x9d\x41\xae\x33\ -\x23\x04\x53\x92\x8e\x4b\x9a\x90\xb4\x90\x33\x3e\x2f\xe9\x54\x16\ -\x33\x1d\x68\xce\xd2\xd2\x78\x95\xb2\xf8\x08\xf0\x0b\xf0\x49\x2d\ -\x27\xe3\x33\x03\x7c\x5a\xbb\x2c\x9e\x9d\xe0\x87\x50\x59\x45\xe4\ -\x64\x99\x78\xe8\x6f\x6f\xf0\x06\xf0\x65\xad\x94\xe2\x71\xcb\xcc\ -\xbe\xa8\x12\xd8\x8f\x01\x9b\x71\x9b\xa3\x6b\x97\x9b\x55\x24\xe6\ -\x80\xcf\xcc\xec\x79\x95\xe0\xca\xcb\xe1\x6c\xb7\xf5\xf8\x72\xb3\ -\x8a\xc8\xb7\x55\xc5\x2f\x0b\xb9\x9e\x9c\x41\x65\xa2\x31\xe1\x5d\ -\x06\x98\xa4\xf3\xa9\x95\xe6\x70\x59\xb1\x9a\xa5\xe4\x9a\xa4\x2e\ -\x25\x16\xdc\xcd\x45\xc5\x6a\x92\xea\x32\xc1\x34\x18\xb7\xc3\x84\ -\x62\xb7\xc9\xf5\x18\x71\x48\xd2\x5f\x09\x84\xcf\xc9\x35\x6e\xa4\ -\x47\xd2\x26\xb9\xf6\xd5\x58\xdc\x50\xc9\xae\x6f\x12\xe4\xda\x66\ -\x7f\x6d\x50\xf8\x03\x49\x87\x52\xeb\xf4\x22\xd7\x42\x7b\x44\xd2\ -\xa4\xc2\xb5\xcb\x4f\xca\x99\x1b\xbc\x8c\xdf\xf4\x07\x13\x1b\x80\ -\x63\xc0\x5e\x5c\xa3\xc5\xea\x8a\x7f\x7d\x85\x5b\x86\xdf\x05\xae\ -\x9a\xd9\xef\xcd\x64\x18\xf7\x93\x99\x15\xb8\x1d\xe7\x6d\xc0\x7a\ -\x60\x1d\x6f\x7f\x32\xf3\x07\x6f\x3e\x99\x79\x68\x66\x21\x1a\x24\ -\x5a\x5a\x5a\x5a\x5a\x5a\x3c\xfc\x0f\x39\x3c\xb9\xf6\x18\xe0\xcd\ -\xe8\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\xa7\x93\x00\x00\x03\x88\x49\x44\x41\x54\x78\x9c\xed\x9b\xcf\x6f\ +\x15\x55\x14\xc7\x3f\xa7\x8a\x45\x4d\x88\x06\x89\x06\x1a\x2d\xb5\ +\x44\xaa\x60\x63\x62\x8d\x5d\x68\x52\x03\x09\x3b\x03\x1b\x70\x23\ +\x0b\x13\x36\x54\x53\xd6\x24\x24\x24\x4a\xba\x20\x60\x52\xbb\xd1\ +\x7f\x40\x16\xc0\x92\x85\xae\x8c\x58\x5d\x18\x7f\x44\x4a\x5d\x50\ +\xda\x40\x42\x15\xd1\x14\x9b\xda\xa6\xa4\x5f\x17\x73\xd1\x47\x33\ +\xd3\xbe\x99\x77\x66\xe6\xbd\x74\x3e\xc9\x4d\xe6\xdd\xde\xf7\x3d\ +\x67\xbe\xef\xdc\x7b\xe7\xcd\x9b\x42\x45\x45\x45\xc5\x3a\xc6\xca\ +\x4e\x00\x40\xd2\x0b\xc0\x69\xe0\x45\x47\xd9\x45\xe0\x3c\x70\xd2\ +\xcc\xee\x39\xea\xfa\x22\x69\xa3\xa4\x6b\xca\x8f\x13\xab\xc5\x2f\ +\xbd\x02\x24\x0d\x02\x23\xe1\xe5\x57\xc0\x6f\x4e\xd2\xfd\x40\x07\ +\x70\x17\xe8\x32\xb3\x3b\x4e\xba\x7e\x48\x6a\x97\x74\x23\x7c\x52\ +\xb7\x24\x3d\xe6\xa8\x7d\xb0\xa6\x0a\x3e\xf4\xd2\x75\x45\xd2\xfb\ +\x35\x49\x0e\x39\x6b\xb7\x49\xfa\x39\x68\xff\x2d\x69\x4b\xdc\xb8\ +\xd2\xa6\x80\x24\x03\x26\x81\xce\xd0\xf5\x35\xb0\xe0\x1c\xe6\x79\ +\x60\x7b\x38\x3e\x65\x66\xc7\x9d\xf5\x1b\x43\x52\x9f\xa4\xe9\xfc\ +\xd6\xbf\x07\x98\x88\xcb\x61\xcd\x0a\x90\xd4\x06\xec\x04\x1e\x75\ +\x3a\xef\x65\x60\xd2\xcc\x66\xef\x9b\x00\x5c\x06\x36\x38\xe9\x27\ +\x31\x6d\x66\x9d\x6b\x0f\xab\x41\x52\x87\xa4\x5f\x72\xf8\x34\xe6\ +\x25\xbd\x5b\x13\xe7\x6c\x0e\x31\x56\x32\x15\x77\x8e\xab\x56\x80\ +\xa4\xf3\xc0\x81\x54\xae\xd5\xcf\x02\xb0\xc3\xcc\x6e\x4a\x7a\x86\ +\x68\x3d\xf0\xaa\xb2\x38\x62\x2b\x20\xd1\x00\x49\xbd\xc0\x0f\x61\ +\xcc\x17\xc0\x67\x4e\x89\x74\x01\xc3\xe1\x78\xd4\xcc\x06\x43\xbc\ +\x33\xc0\x31\xa7\x18\x71\xa4\x36\xe0\x02\xb0\x1f\x10\xf0\x8a\x99\ +\xfd\xe4\x95\x89\xa4\x31\xe0\x75\xa2\xcb\xd5\xee\x84\x2a\xf8\x3e\ +\xbc\xce\xc2\x53\xc0\xc0\x8a\xbe\xfa\xd7\x00\x49\xbd\x92\x96\xc3\ +\xdc\xb9\x24\xe9\x49\xe7\x76\xa8\x66\x6e\x7e\x52\x13\x77\xa4\xa6\ +\xff\x48\xc6\x93\x47\xd2\x1b\xf5\xae\x01\x49\x02\xe7\x32\x2f\x35\ +\xe9\x59\x90\xf4\x74\x88\x3b\x50\xd3\x5f\x88\x01\x6d\x09\x1a\xaf\ +\x65\x0d\x9e\x81\x76\xa0\x37\x1c\xcf\x14\x18\x17\x48\x36\xa0\xe8\ +\x2b\xc4\xa4\x3c\x72\xe7\xe1\xb2\x02\xd7\x41\x8f\xa4\x3d\x19\xdf\ +\xbb\xbb\xde\x81\xcd\x6c\xc0\x50\x68\xb9\x52\x5a\xe9\x35\x0b\x69\ +\x2b\xe0\x02\xf0\x79\xc6\x58\x5b\x80\xd1\x14\xe3\x3f\x05\xbe\xcc\ +\x18\xab\x07\x38\x99\xf1\xbd\x20\x69\x2a\x61\xcb\xca\x7c\x63\x41\ +\xd2\x73\xab\x6c\x85\xfb\xc2\x98\x9e\x66\xd9\x06\xd7\x0d\x95\x01\ +\x65\x27\x50\x36\x69\x17\xc1\xb7\x24\x0d\xaf\x3d\x2c\x96\x4d\x29\ +\xc7\xef\x97\xd4\x95\x31\x56\x47\xbd\x03\xd3\x1a\xd0\x1f\x5a\x11\ +\xec\x0b\x2d\x57\xd6\xfd\x14\x48\x6b\xc0\x47\x96\x11\xfe\xbf\xfb\ +\xdb\x54\x54\x15\x50\x76\x02\x65\xd3\xaa\x06\xcc\x01\x7f\x79\x08\ +\xb5\xa2\x01\xb3\x40\x37\xb0\x0d\xb8\xda\xa8\x58\xda\x6d\xf0\xa8\ +\xa4\x77\x0a\x8a\x95\xc4\x1c\xf0\xa7\x99\x2d\x49\xba\x4d\xf4\xc5\ +\x27\x33\x69\x93\x7a\x22\xb4\x32\xd9\x06\x5c\x96\x34\x0b\xbc\xd9\ +\xa8\x58\x33\xdf\x10\x59\x8d\x3e\x2f\xa1\x56\x5c\x03\xee\x23\x0f\ +\x91\x56\x34\x60\x1e\xd8\x05\x6c\x05\xa6\x1b\x15\x6b\x45\x03\x7e\ +\x07\xc6\xcd\x6c\x06\xf8\xb5\x51\x31\xcf\x35\xe0\x1b\x60\x1c\x38\ +\x4c\xbe\x3f\x75\x77\x02\x17\x25\xfd\x01\xec\x6d\x54\xcc\xcb\x80\ +\x45\x60\x8f\x99\xfd\xa3\xe8\xc9\x8f\xf7\x9c\x74\x93\x78\xdb\x4b\ +\xc8\x6b\x0a\x3c\x02\xbc\xac\xe8\x21\xa7\x97\x9c\x34\x0b\xc1\xab\ +\x02\x0c\xf8\x96\xa8\x12\xda\x9d\x34\x0b\xc1\x7b\x11\x6c\xa9\x93\ +\x07\x5f\x03\xae\x11\xdd\xc7\x77\xd9\x9f\x8b\xc2\xcb\x80\x25\xa0\ +\xcf\xcc\xf6\x92\xfd\x87\x93\x52\xf0\x32\xa0\x0d\xd8\xac\xe8\x89\ +\xb2\xcd\x4e\x9a\xde\x7c\x17\xd7\xe9\xb5\x08\x3e\x04\xfc\x08\xdc\ +\x01\x9e\x6d\x40\xe7\x3a\xf0\xaa\x4b\x46\x0f\x72\x0f\xb8\x12\xf7\ +\x07\xcf\x0b\xa1\xc7\x43\xcb\x8c\x99\x2d\x10\x3d\x1b\x54\x18\xad\ +\x78\x29\xec\x4a\x65\x40\xd9\x09\x94\x4d\x65\x40\x42\x7f\xd1\xff\ +\x63\xb3\x54\x70\xbc\xff\x48\xda\x05\x3e\x06\x3e\x20\xda\xde\xf2\ +\x66\x02\x18\x2b\x20\x4e\x45\x45\x45\x45\xc5\x4a\xfe\x05\x1d\xf3\ +\xed\xaf\x60\xc7\x60\x1b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +\x00\x00\x03\x03\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x02\xb8\x49\x44\x41\x54\x78\x9c\xed\x9a\x3b\x6b\ +\x14\x51\x18\x86\x9f\x2f\x78\xc1\xc2\x42\xc5\x4e\x7f\x80\x06\x24\ +\x90\xa0\x2e\x49\x21\x01\xb1\xb5\xb0\xb0\xd1\x4e\xb1\x0b\x88\xbf\ +\xc2\x80\x45\x22\xa2\x20\x36\xda\x58\x88\x45\xda\x20\x48\xc0\x4b\ +\x50\x10\x35\xfe\x01\x25\xe0\xb5\x89\xc5\x1a\x93\xbc\x16\xbb\x42\ +\xdc\xcc\xee\x5c\xf6\x9b\x39\x63\xf6\x3c\xd5\xe6\x30\x67\xbf\xe7\ +\x7b\x39\x73\xc9\x99\x85\x48\x24\x12\x89\x44\x22\x91\x1c\x48\x9a\ +\x94\xb4\x24\x69\x43\xe1\xd9\x90\xf4\x5e\xd2\x64\x91\x5e\xac\x40\ +\xf3\x87\x81\x25\x60\x6f\x91\x82\x25\xb2\x02\x0c\x9b\xd9\xc7\x3c\ +\x93\x86\x0a\x14\x9a\xa6\x7e\xcd\x43\xcb\xe9\x7a\xde\x49\xb9\x56\ +\x80\xa4\x71\x60\x21\xef\xbc\x8a\x39\x65\x66\x4f\xb3\x1e\x9c\xb9\ +\x11\x49\x43\xc0\x22\x30\x5a\xc4\xaa\x42\xde\x00\x63\x66\xb6\x9e\ +\xe5\xe0\x1d\x39\xbe\xf8\x32\xc9\xcd\xbf\x00\x6e\xe4\xf8\x1e\x4f\ +\xae\x02\x27\x3b\xc6\x46\x80\x4b\xc0\x6d\xb7\x2a\x92\xf6\x49\xfa\ +\x9a\x70\x05\x5e\x97\x34\xe6\x56\x28\xbf\xd7\x88\xa4\xb5\x04\xaf\ +\xef\x92\x0e\x78\x16\x9a\xed\x72\x0b\xf2\x4b\xb9\xb8\xdb\x9d\x2e\ +\x6e\x33\x5e\x05\x8e\x4a\x5a\x4d\x28\xf0\x43\xd2\x41\x97\x22\xfd\ +\xf9\xed\x97\xf4\x2d\xc1\x6f\x4d\xd2\x31\x8f\x02\x73\x5d\x12\x9e\ +\x72\xf0\x77\x41\xd2\x54\x17\xc7\xb9\xb4\xb9\xa9\x77\x01\x49\x4d\ +\x60\x77\xc7\xf0\x0a\x70\x05\xf8\x5d\x4c\xd9\x9d\x9d\xb4\x2e\x7a\ +\x9d\xcf\x27\x4d\x33\xdb\xd3\x6b\x62\x96\x00\xd4\x87\x58\x70\xcc\ +\xac\x67\x8f\x45\x9e\x04\xb7\x15\x31\x80\xd0\x02\xa1\x89\x01\x84\ +\x16\x08\xcd\xc0\x07\x90\xe7\x9f\x21\x6f\xd6\x80\x97\xed\xcf\x27\ +\x42\xb9\x84\x5a\x01\x2b\x40\xc3\xcc\x26\xcc\x6c\x02\x18\x07\x7e\ +\x86\x10\x09\x15\xc0\x8c\x99\xbd\xfa\xfb\x87\x99\x2d\x02\xb3\x21\ +\x44\x42\x05\xf0\x2e\x61\xec\x6d\xe5\x16\x84\x0b\x60\x23\x61\x2c\ +\xd3\x0e\x8e\x37\x03\x7f\x17\x88\x01\x84\x16\x08\x4d\x0c\x20\xb4\ +\x40\x68\x06\x3e\x80\x2a\x76\x84\x1e\x03\x8f\x80\xd5\x4d\x63\xcf\ +\xcd\xec\x53\x47\x9d\x43\x40\x63\xd3\xd0\x2e\xe0\x1c\x70\xb6\x9f\ +\xe2\x69\x3b\x42\xa9\x74\xd9\x6c\xcc\xca\xbc\xa4\xc2\x02\x92\x4c\ +\xd2\x93\x7e\x04\xd2\x6a\x94\x7d\x0a\x2c\x98\x59\xe1\x15\xd4\x9e\ +\xfb\xcc\xd1\x67\x0b\x65\x07\x70\x46\xad\x77\x8a\x85\x68\xcf\x3d\ +\xed\xe8\xb3\x85\xb2\x03\x68\x00\x77\x8b\x84\xd0\x3e\x75\x6e\x02\ +\xc7\xdd\xad\x72\x8a\x78\x70\x2f\x4f\x08\x6a\x9d\xfb\xb7\x3c\x0a\ +\xd7\x25\x00\x29\x63\x08\x72\x6c\x5e\xaa\x57\x00\x52\x4a\x08\x72\ +\x6e\x5e\xaa\x5f\x00\x52\x97\x10\x54\x42\xf3\x52\x3d\x03\x90\x3a\ +\x42\x50\x49\xcd\x4b\xe9\x01\x84\x7c\x37\xf8\x10\xb8\xd6\xfe\x3c\ +\x0d\x9c\x2f\xa3\x48\xda\x93\x60\x7c\x39\x5a\x95\x48\x5d\xc9\x12\ +\xc0\xff\xbc\x02\x92\xf6\x1e\xff\x21\x4b\x00\x5f\x1c\x44\x42\xf1\ +\x39\xed\x80\x2c\x01\xcc\x3b\x88\x84\x22\xd5\x3d\xcb\x45\x70\x18\ +\x78\xcd\xd6\x9f\xc9\xd4\x9d\x26\x30\x6a\x66\x1f\x7a\x1d\x94\xba\ +\x02\xcc\x6c\x09\xb8\x08\xfc\x72\x12\xab\x82\x26\x70\x21\xad\xf9\ +\x5c\xa8\xf5\x73\xb9\x07\x92\x96\xcb\x78\x60\x71\x62\x59\xd2\x7d\ +\x49\x47\xdc\x1a\x8f\x44\x22\x91\x48\x24\xb2\x6d\xf9\x03\x83\x15\ +\x47\xb9\xdf\x18\xff\xe9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ \x00\x00\x01\x36\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -812,46 +938,54 @@ qt_resource_name = b"\ \x00\x00\x70\x37\ \x00\x69\ \x00\x6d\x00\x67\ +\x00\x09\ +\x0c\x98\xba\x47\ +\x00\x70\ +\x00\x61\x00\x75\x00\x73\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0a\ +\x0b\x73\x00\x47\ +\x00\x73\ +\x00\x74\x00\x72\x00\x65\x00\x61\x00\x6d\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x02\x8c\x59\xa7\ \x00\x70\ \x00\x6c\x00\x61\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x08\ +\x07\xb6\x59\x87\ +\x00\x70\ +\x00\x61\x00\x64\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x08\ +\x06\xe1\x57\xa7\ +\x00\x64\ +\x00\x6f\x00\x77\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x0b\ \x06\x93\x99\x5f\ \x00\x6b\ \x00\x6f\x00\x74\x00\x6f\x00\x70\x00\x61\x00\x64\x00\x2e\x00\x69\x00\x63\x00\x6f\ -\x00\x0a\ -\x02\x78\x1b\x27\ +\x00\x0c\ +\x0b\xdf\x21\x47\ +\x00\x73\ +\x00\x65\x00\x74\x00\x74\x00\x69\x00\x6e\x00\x67\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x06\ +\x07\xc3\x5a\xc7\ +\x00\x75\ +\x00\x70\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0f\ +\x04\x04\xab\xc7\ \x00\x63\ -\x00\x6f\x00\x6c\x00\x6c\x00\x61\x00\x62\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x6f\x00\x6c\x00\x6c\x00\x65\x00\x63\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x05\x5b\xb1\x87\ \x00\x65\ \x00\x78\x00\x70\x00\x6c\x00\x6f\x00\x72\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ -\x0b\x73\x00\x47\ -\x00\x73\ -\x00\x74\x00\x72\x00\x65\x00\x61\x00\x6d\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x02\x78\x1b\x27\ +\x00\x63\ +\x00\x6f\x00\x6c\x00\x6c\x00\x61\x00\x62\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x08\x1a\x9d\x27\ \x00\x64\ \x00\x6f\x00\x77\x00\x6e\x00\x6c\x00\x6f\x00\x61\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0c\ -\x0b\xdf\x21\x47\ -\x00\x73\ -\x00\x65\x00\x74\x00\x74\x00\x69\x00\x6e\x00\x67\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0f\ -\x04\x04\xab\xc7\ -\x00\x63\ -\x00\x6f\x00\x6c\x00\x6c\x00\x65\x00\x63\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x08\ -\x07\xb6\x59\x87\ -\x00\x70\ -\x00\x61\x00\x64\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x09\ -\x0c\x98\xba\x47\ -\x00\x70\ -\x00\x61\x00\x75\x00\x73\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x0c\x58\x59\x27\ \x00\x6d\ @@ -861,18 +995,20 @@ qt_resource_name = b"\ qt_resource_struct_v1 = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x03\ -\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x38\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x03\ +\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x2f\xc3\ +\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x09\xa6\ +\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x28\x1d\ +\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x87\ +\x00\x00\x00\x80\x00\x01\x00\x00\x00\x01\x00\x00\x16\x3d\ +\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x12\x69\ +\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x0e\x20\ +\x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x00\x24\x4d\ +\x00\x00\x01\x28\x00\x00\x00\x00\x00\x01\x00\x00\x33\x9a\ +\x00\x00\x00\x24\x00\x00\x00\x00\x00\x01\x00\x00\x03\xf2\ +\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xfb\ +\x00\x00\x01\x46\x00\x00\x00\x00\x00\x01\x00\x00\x36\xa1\ \x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x21\x58\ -\x00\x00\x00\x58\x00\x00\x00\x00\x00\x01\x00\x00\x11\x0f\ -\x00\x00\x00\x22\x00\x01\x00\x00\x00\x01\x00\x00\x04\x7a\ -\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x26\xc2\ -\x00\x00\x00\x90\x00\x00\x00\x00\x00\x01\x00\x00\x18\xff\ -\x00\x00\x00\x76\x00\x00\x00\x00\x00\x01\x00\x00\x13\x4b\ -\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x06\ -\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x2e\xfd\ -\x00\x00\x01\x06\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x0b\ " qt_resource_struct_v2 = b"\ @@ -880,29 +1016,33 @@ qt_resource_struct_v2 = b"\ \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\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x03\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x03\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x38\ +\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x2f\xc3\ \x00\x00\x01\x84\x66\xd4\x57\x1a\ -\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x09\xa6\ \x00\x00\x01\x84\x7d\x15\x63\xff\ -\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x21\x58\ +\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x28\x1d\ \x00\x00\x01\x84\x66\xd2\x44\x59\ -\x00\x00\x00\x58\x00\x00\x00\x00\x00\x01\x00\x00\x11\x0f\ +\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x87\ \x00\x00\x01\x84\x65\xfc\xcd\xf8\ -\x00\x00\x00\x22\x00\x01\x00\x00\x00\x01\x00\x00\x04\x7a\ +\x00\x00\x00\x80\x00\x01\x00\x00\x00\x01\x00\x00\x16\x3d\ \x00\x00\x01\x84\x66\xf8\x27\x00\ -\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x26\xc2\ +\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x12\x69\ +\x00\x00\x01\x85\x0c\xc9\xbe\x51\ +\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x0e\x20\ \x00\x00\x01\x84\x65\xe2\xd8\xcb\ -\x00\x00\x00\x90\x00\x00\x00\x00\x00\x01\x00\x00\x18\xff\ +\x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x00\x24\x4d\ +\x00\x00\x01\x85\x0c\xc9\xe8\x83\ +\x00\x00\x01\x28\x00\x00\x00\x00\x00\x01\x00\x00\x33\x9a\ \x00\x00\x01\x84\x66\xd7\x6a\x2f\ -\x00\x00\x00\x76\x00\x00\x00\x00\x00\x01\x00\x00\x13\x4b\ +\x00\x00\x00\x24\x00\x00\x00\x00\x00\x01\x00\x00\x03\xf2\ \x00\x00\x01\x84\x66\xd6\x3f\x63\ -\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x06\ +\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xfb\ \x00\x00\x01\x81\x68\xf5\xcd\x75\ -\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x2e\xfd\ +\x00\x00\x01\x46\x00\x00\x00\x00\x00\x01\x00\x00\x36\xa1\ \x00\x00\x01\x81\x68\xf5\xcd\x75\ -\x00\x00\x01\x06\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x0b\ +\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\x84\x7d\x15\xd4\x2f\ " diff --git a/gui/img/down.svg b/gui/img/down.svg new file mode 100644 index 0000000..2b747d1 --- /dev/null +++ b/gui/img/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gui/img/up.svg b/gui/img/up.svg new file mode 100644 index 0000000..613edfe --- /dev/null +++ b/gui/img/up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gui/modules/explorer/__init__.py b/gui/modules/explorer/__init__.py new file mode 100644 index 0000000..d7ed779 --- /dev/null +++ b/gui/modules/explorer/__init__.py @@ -0,0 +1 @@ +from .handlers import * diff --git a/gui/modules/explorer/handlers.py b/gui/modules/explorer/handlers.py new file mode 100644 index 0000000..6bc90fe --- /dev/null +++ b/gui/modules/explorer/handlers.py @@ -0,0 +1,61 @@ +from gui.gui import Ui_MainWindow +from modules.config import PathsConfig +from modules.player.player import Player +from PyQt5.QtWidgets import QFileDialog +import os + + +def register_handlers(ui: Ui_MainWindow, p: Player): + ui.first_browser_parent_dir_box.textChanged.connect( + lambda: ( + ui.folders_browser_treeview_first.setRootIndex( + ui.dir_model_first.index(ui.first_browser_parent_dir_box.text()) + ), + PathsConfig.update("first_browser_path", ui.first_browser_parent_dir_box.text()) + ) + ) + + ui.second_browser_parent_dir_box.textChanged.connect( + lambda: ( + ui.folders_browser_treeview_second.setRootIndex( + ui.dir_model_second.index(ui.second_browser_parent_dir_box.text()) + ), + PathsConfig.update("second_browser_path", ui.second_browser_parent_dir_box.text()) + ) + ) + + ui.files_browser_listwidget_first.itemDoubleClicked.connect( + lambda: ( + p.set_media( + os.path.join( + ui.dir_model_first.filePath(ui.first_index), + ui.files_browser_listwidget_first.currentItem().text() + ) + ), + p.play(ui) + ) + ) + + ui.files_browser_listwidget_second.itemDoubleClicked.connect( + lambda: ( + p.set_media( + os.path.join( + ui.dir_model_second.filePath(ui.second_index), + ui.files_browser_listwidget_second.currentItem().text() + ) + ), + p.play(ui) + ) + ) + + ui.first_browser_parent_dir_button.clicked.connect( + lambda: ui.first_browser_parent_dir_box.setText( + QFileDialog.getExistingDirectory(caption="Select root directory for first browser") + ) + ) + + ui.second_browser_parent_dir_button.clicked.connect( + lambda: ui.second_browser_parent_dir_box.setText( + QFileDialog.getExistingDirectory(caption="Select root directory for second browser") + ) + ) diff --git a/gui/modules/explorer/initialize.py b/gui/modules/explorer/initialize.py new file mode 100644 index 0000000..88b67b7 --- /dev/null +++ b/gui/modules/explorer/initialize.py @@ -0,0 +1,64 @@ +from gui.gui import Ui_MainWindow +from PyQt5 import QtWidgets, QtCore +from modules.config import PathsConfig +from gui.modules.core import popup +import os + + +def fill_paths(ui: Ui_MainWindow): + ui.first_browser_parent_dir_box.setText(PathsConfig.get().first_browser_path) + ui.second_browser_parent_dir_box.setText(PathsConfig.get().second_browser_path) + + +def first_clicked(ui: Ui_MainWindow, index): + ui.first_index = index + ui.files_browser_listwidget_first.clear() + try: + ui.files_browser_listwidget_first.addItems( + [f for f in os.listdir(ui.dir_model_first.filePath(index)) + if os.path.isfile(os.path.join(ui.dir_model_first.filePath(index), f))] + ) + except Exception as e: + print(e) + popup.popup("Error", "Cannot access files in this folder") + + +def second_clicked(ui: Ui_MainWindow, index): + ui.second_index = index + ui.files_browser_listwidget_second.clear() + try: + ui.files_browser_listwidget_second.addItems( + [f for f in os.listdir(ui.dir_model_second.filePath(index)) + if os.path.isfile(os.path.join(ui.dir_model_second.filePath(index), f))] + ) + except Exception as e: + print(e) + popup.popup("Error", "Cannot access files in this folder") + + +def init_explorer(ui: Ui_MainWindow): + fill_paths(ui) + + ui.dir_model_first = QtWidgets.QFileSystemModel() + ui.dir_model_first.setFilter(QtCore.QDir.Filter.NoDotAndDotDot | QtCore.QDir.Filter.AllDirs) + ui.dir_model_first.setRootPath("") + ui.folders_browser_treeview_first.setModel(ui.dir_model_first) + ui.folders_browser_treeview_first.setRootIndex(ui.dir_model_first.index(ui.first_browser_parent_dir_box.text())) + + ui.folders_browser_treeview_first.clicked[QtCore.QModelIndex].connect(lambda idx: first_clicked(ui, idx)) + + ui.folders_browser_treeview_first.setHeaderHidden(True) + for i in range(1, 4): + ui.folders_browser_treeview_first.hideColumn(i) + + ui.dir_model_second = QtWidgets.QFileSystemModel() + ui.dir_model_second.setFilter(QtCore.QDir.Filter.NoDotAndDotDot | QtCore.QDir.Filter.AllDirs) + ui.dir_model_second.setRootPath("") + ui.folders_browser_treeview_second.setModel(ui.dir_model_second) + ui.folders_browser_treeview_second.setRootIndex(ui.dir_model_second.index(ui.second_browser_parent_dir_box.text())) + + ui.folders_browser_treeview_second.clicked[QtCore.QModelIndex].connect(lambda idx: second_clicked(ui, idx)) + + ui.folders_browser_treeview_second.setHeaderHidden(True) + for i in range(1, 4): + ui.folders_browser_treeview_second.hideColumn(i) diff --git a/gui/modules/handlers/register.py b/gui/modules/handlers/register.py index 9adb05a..a813f09 100644 --- a/gui/modules/handlers/register.py +++ b/gui/modules/handlers/register.py @@ -5,6 +5,7 @@ from gui.modules import pads from gui.modules import player from gui.modules import settings from gui.modules import restreammic +from gui.modules import explorer from modules.player.player import Player from modules.restream.restream import Restreamer @@ -15,3 +16,4 @@ def register_handlers(ui: Ui_MainWindow, MainWindow: QMainWindow, p: Player, rs: player.register_handlers(ui, p) settings.register_handlers(ui) restreammic.register_handlers(ui, MainWindow, rs) + explorer.register_handlers(ui, p) diff --git a/gui/modules/initialize/setup_ui.py b/gui/modules/initialize/setup_ui.py index 32fd976..38b16ba 100644 --- a/gui/modules/initialize/setup_ui.py +++ b/gui/modules/initialize/setup_ui.py @@ -8,6 +8,7 @@ from PyQt5 import QtCore from modules.config import Config from modules.player.player import Player from modules.restream.restream import Restreamer +from gui.modules.explorer import initialize def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow): @@ -26,6 +27,8 @@ def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow): p = Player(ui) rs = Restreamer() + initialize.init_explorer(ui) + (lambda: rs.restart(ui) if ui.restream_micro_checkbox.isChecked() else rs.stop())() register.register_handlers(ui, MainWindow, p, rs) diff --git a/gui/modules/initialize/styles.py b/gui/modules/initialize/styles.py index c5ff1fa..55ba540 100644 --- a/gui/modules/initialize/styles.py +++ b/gui/modules/initialize/styles.py @@ -8,7 +8,6 @@ QWidget { font: 10pt "Segoe UI"; } - QScrollBar:vertical, QScrollBar:horizontal { border: none; @@ -17,28 +16,24 @@ QScrollBar:horizontal { margin: 15px 0 15px 0; border-radius: 0px; } - QScrollBar::handle:vertical, QScrollBar::handle:horizontal { background-color: rgba(139, 139, 139, 0); min-height: 30px; border-radius: 5px; } - QScrollBar::handle:vertical:hover, QScrollBar::handle:vertical:pressed, QScrollBar::handle:horizontal:hover, QScrollBar::handle:horizontal:pressed { background-color: rgba(149, 149, 149, 0); } - QScrollBar::sub-line:vertical, QScrollBar::add-line:vertical, QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { height: 0px; } - QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical, QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical, QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal, @@ -46,7 +41,6 @@ QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: none; } - QPushButton { color: white; border-width: 1px; @@ -67,7 +61,6 @@ QPushButton:disabled { border-color: rgba(0, 0, 0, 0.7); } - QLineEdit, QTextBrowser, QPlainTextEdit, QTextEdit { border-width: 1px; border-radius: 5px; @@ -77,8 +70,7 @@ QLineEdit, QTextBrowser, QPlainTextEdit, QTextEdit { font: 10pt "Segoe UI"; } - -QListWidget { +QListWidget, QListView, QTreeView { border-width: 1px; border-radius: 15px; border-style: solid; @@ -87,17 +79,24 @@ QListWidget { background-color: rgba(100, 100, 100, 0); font: 10pt "Segoe UI"; } -QListWidget:item { +QListWidget:item, QListView:item, QTreeView:item { background-color: rgba(36, 36, 36, 0); selection-color: white; } -QListWidget:item:hover { +QListWidget:item:hover, QListView:item:hover, QTreeView:item:hover { background-color: rgba(50, 50, 50, 0); } -QListWidget:item:selected { +QListWidget:item:selected, QListView:item:selected, QTreeView:item:selected { background-color: rgba(119, 119, 119, 1); } +QTreeView::branch:has-children:closed { + image: url(":/img/img/down.svg"); +} + +QTreeView::branch:has-children:open { + image: url(":/img/img/up.svg"); +} QComboBox { @@ -108,33 +107,28 @@ QComboBox background-color: rgba(44, 45, 46, 0); color: white; } - QComboBox::disabled { background-color: rgba(67, 67, 67, 0); - color: #656565; + color: rgba(101, 101, 101, 1);; border-color: rgba(67, 67, 67); } - QComboBox:hover { background-color: rgba(50, 50, 50, 0); } - QComboBox:on { background-color: rgba(67, 67, 67, 0); } - QComboBox QAbstractItemView { background-color: rgba(67, 67, 67, 0); - color: #ffffff; + color: white; selection-background-color: rgba(119, 119, 119, 0); selection-color: white; outline: 0; } - QComboBox::drop-down { subcontrol-origin: padding; @@ -142,11 +136,10 @@ QComboBox::drop-down border-radius: 6px; } - QTabBar::tab { background-color: rgba(44, 45, 46, 0); - color: #ffffff; + color: white; border-style: solid; border-width: 1px; border-top-left-radius: 3px; @@ -154,26 +147,23 @@ QTabBar::tab border-color: rgba(48, 48, 48); padding: 5px; } - QTabBar::tab:disabled { background-color: rgba(101, 101, 101, 0); - color: #656565; + color: rgba(101, 101, 101, 1);; } - QTabWidget::pane { background-color: rgba(160, 160, 160, 0); - color: #ffffff; + color: white; border: 3px solid; border-radius: 15px; border-color: rgba(28, 28, 28); } - QTabBar::tab:selected { background-color: rgba(38, 39, 40, 0); - color: #ffffff; + color: white; border-style: solid; border-width: 1px; border-top-left-radius: 3px; @@ -181,83 +171,68 @@ QTabBar::tab:selected border-color: rgba(48, 48, 48); padding: 5px; } - QTabBar::tab:selected:disabled { background-color: rgba(64, 64, 64, 0); - color: #656565; + color: rgba(101, 101, 101, 1); } - QTabBar::tab:!selected { background-color: rgba(38, 38, 38, 0); } - QTabBar::tab:!selected:hover { background-color: rgba(50, 50, 50, 0); } - QTabBar::tab:top:!selected { margin-top: 3px; } - QTabBar::tab:bottom:!selected { margin-bottom: 3px; } - QTabBar::tab:top, QTabBar::tab:bottom { min-width: 8ex; margin-right: -1px; padding: 5px 10px 5px 10px; } - QTabBar::tab:top:selected { border-bottom-color: none; } - QTabBar::tab:bottom:selected { border-top-color: none; } - QTabBar::tab:top:last, QTabBar::tab:bottom:last, QTabBar::tab:top:only-one, QTabBar::tab:bottom:only-one { margin-right: 0; } - QTabBar::tab:left:!selected { margin-right: 3px; } - QTabBar::tab:right:!selected { margin-left: 3px; } - QTabBar::tab:left, QTabBar::tab:right { min-height: 8ex; margin-bottom: -1px; padding: 10px 5px 10px 5px; } - QTabBar::tab:left:selected { border-left-color: none; } - QTabBar::tab:right:selected { border-right-color: none; } - QTabBar::tab:left:last, QTabBar::tab:right:last, QTabBar::tab:left:only-one, QTabBar::tab:right:only-one { @@ -336,21 +311,22 @@ QListWidget:item:selected { centralwidget_g = """ QWidget { - background-color: rgb(30, 30, 30); - color: rgb(255, 255, 255); + background-color: #1e1e1e; + color: white; font: 10pt "Segoe UI"; } + QScrollBar:vertical, QScrollBar:horizontal { border: none; - background: rgb(30, 30, 30); + background: #1e1e1e; width: 10px; margin: 15px 0 15px 0; border-radius: 0px; } QScrollBar::handle:vertical, QScrollBar::handle:horizontal { - background-color: rgb(139, 139, 139); + background-color: #8b8b8b; min-height: 30px; border-radius: 5px; } @@ -358,7 +334,7 @@ QScrollBar::handle:vertical:hover, QScrollBar::handle:vertical:pressed, QScrollBar::handle:horizontal:hover, QScrollBar::handle:horizontal:pressed { - background-color: rgb(149, 149, 149); + background-color: #959595; } QScrollBar::sub-line:vertical, QScrollBar::add-line:vertical, @@ -372,6 +348,7 @@ QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: none; } + QPushButton { color: white; border-width: 1px; @@ -391,6 +368,7 @@ QPushButton:disabled { background-color: #434343; border-color: #0000; } + QLineEdit, QTextBrowser, QPlainTextEdit, QTextEdit { border-width: 1px; border-radius: 5px; @@ -399,7 +377,8 @@ QLineEdit, QTextBrowser, QPlainTextEdit, QTextEdit { background-color: #242424; font: 10pt "Segoe UI"; } -QListWidget { + +QListWidget, QListView, QTreeView { border-width: 1px; border-radius: 15px; border-style: solid; @@ -408,16 +387,25 @@ QListWidget { background-color: #242424; font: 10pt "Segoe UI"; } -QListWidget:item { +QListWidget:item, QListView:item, QTreeView:item { background-color: #242424; selection-color: white; } -QListWidget:item:hover { +QListWidget:item:hover, QListView:item:hover, QTreeView:item:hover { background-color: #323232; } -QListWidget:item:selected { +QListWidget:item:selected, QListView:item:selected, QTreeView:item:selected { background-color: #777777; } + +QTreeView::branch:has-children:closed { + image: url(":/img/img/down.svg"); +} + +QTreeView::branch:has-children:open { + image: url(":/img/img/up.svg"); +} + QComboBox { border-width: 1px; @@ -425,7 +413,7 @@ QComboBox border-style: solid; border-color: #303030; background-color: #2c2d2e; - color: #ffffff; + color: white; } QComboBox::disabled { @@ -444,7 +432,7 @@ QComboBox:on QComboBox QAbstractItemView { background-color: #434343; - color: #ffffff; + color: white; selection-background-color: #777777; selection-color: white; outline: 0; @@ -455,10 +443,11 @@ QComboBox::drop-down subcontrol-position: top right; border-radius: 6px; } + QTabBar::tab { background-color: #2c2d2e; - color: #ffffff; + color: white; border-style: solid; border-width: 1px; border-top-left-radius: 3px; @@ -474,7 +463,7 @@ QTabBar::tab:disabled QTabWidget::pane { background-color: #a0a0a0; - color: #ffffff; + color: white; border: 3px solid; border-radius: 15px; border-color: #1c1c1c; @@ -482,7 +471,7 @@ QTabWidget::pane QTabBar::tab:selected { background-color: #262728; - color: #ffffff; + color: white; border-style: solid; border-width: 1px; border-top-left-radius: 3px; @@ -618,7 +607,7 @@ QListWidget:item { padding-left: 12px; height: 60px; background-color: #191919; - selection-color: rgba(255, 255, 255); + selection-color: white; } QListWidget:item:hover { background-color: #323232; diff --git a/modules/config/__init__.py b/modules/config/__init__.py index b8ab3e1..e48ff16 100644 --- a/modules/config/__init__.py +++ b/modules/config/__init__.py @@ -1 +1,2 @@ from .settings import Config +from .paths import PathsConfig diff --git a/modules/config/model.py b/modules/config/model.py index bbe9a7a..096a4cb 100644 --- a/modules/config/model.py +++ b/modules/config/model.py @@ -13,3 +13,10 @@ class ConfigModel: out_micro: str restream: bool direct_stream: bool + + +@dataclass_json +@dataclass(frozen=True) +class PathsModel: + first_browser_path: str + second_browser_path: str diff --git a/modules/config/paths.py b/modules/config/paths.py new file mode 100644 index 0000000..e5db12a --- /dev/null +++ b/modules/config/paths.py @@ -0,0 +1,43 @@ +from modules.config.model import PathsModel +import json +import os + + +class PathsConfig: + @staticmethod + def default(): + return { + "first_browser_path": "", + "second_browser_path": "" + } + + @staticmethod + def fix() -> None: + try: + with open("data/config.path", "w") as file: + json.dump(PathsConfig.default(), file) + except FileNotFoundError: + if not os.path.exists('data'): + os.mkdir('data') + PathsConfig.fix() + + @staticmethod + def get() -> PathsModel: + try: + with open("data/config.path", "r") as file: + return PathsModel.from_dict(json.load(file)) + except: + PathsConfig.fix() + return PathsConfig.get() + + @staticmethod + def update(key: str, value: str | None) -> dict: + with open("data/config.path", "r") as file: + settings = json.load(file) + + settings[key] = value + + with open("data/config.path", "w") as file: + json.dump(settings, file) + + return settings