diff --git a/gui/gui.py b/gui/gui.py
index 3518b3f..f17df30 100644
--- a/gui/gui.py
+++ b/gui/gui.py
@@ -380,6 +380,87 @@ class Ui_MainWindow(object):
self.adding_item_main_layout.addWidget(self.new_item_finish_page)
self.verticalLayout_5.addWidget(self.adding_item_main_layout)
self.content.addWidget(self.add_page)
+ self.account_page = QtWidgets.QWidget()
+ self.account_page.setObjectName("account_page")
+ self.verticalLayout_13 = QtWidgets.QVBoxLayout(self.account_page)
+ self.verticalLayout_13.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout_13.setObjectName("verticalLayout_13")
+ self.top_menu_account = QtWidgets.QWidget(self.account_page)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.top_menu_account.sizePolicy().hasHeightForWidth())
+ self.top_menu_account.setSizePolicy(sizePolicy)
+ self.top_menu_account.setObjectName("top_menu_account")
+ self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.top_menu_account)
+ self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_5.setObjectName("horizontalLayout_5")
+ self.cancel_account = QtWidgets.QPushButton(self.top_menu_account)
+ self.cancel_account.setMinimumSize(QtCore.QSize(48, 48))
+ self.cancel_account.setMaximumSize(QtCore.QSize(48, 48))
+ self.cancel_account.setText("")
+ self.cancel_account.setIcon(icon5)
+ self.cancel_account.setIconSize(QtCore.QSize(32, 32))
+ self.cancel_account.setObjectName("cancel_account")
+ self.horizontalLayout_5.addWidget(self.cancel_account)
+ spacerItem18 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_5.addItem(spacerItem18)
+ self.create_new_account = QtWidgets.QPushButton(self.top_menu_account)
+ self.create_new_account.setMinimumSize(QtCore.QSize(48, 48))
+ self.create_new_account.setMaximumSize(QtCore.QSize(48, 48))
+ self.create_new_account.setText("")
+ self.create_new_account.setIcon(icon2)
+ self.create_new_account.setIconSize(QtCore.QSize(32, 32))
+ self.create_new_account.setObjectName("create_new_account")
+ self.horizontalLayout_5.addWidget(self.create_new_account)
+ self.remove_selected_account = QtWidgets.QPushButton(self.top_menu_account)
+ self.remove_selected_account.setMinimumSize(QtCore.QSize(48, 48))
+ self.remove_selected_account.setMaximumSize(QtCore.QSize(48, 48))
+ self.remove_selected_account.setText("")
+ icon8 = QtGui.QIcon()
+ icon8.addPixmap(QtGui.QPixmap(":/img/img/delete.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+ self.remove_selected_account.setIcon(icon8)
+ self.remove_selected_account.setIconSize(QtCore.QSize(32, 32))
+ self.remove_selected_account.setObjectName("remove_selected_account")
+ self.horizontalLayout_5.addWidget(self.remove_selected_account)
+ self.verticalLayout_13.addWidget(self.top_menu_account)
+ self.adding_new_item_lay = QtWidgets.QWidget(self.account_page)
+ self.adding_new_item_lay.setMinimumSize(QtCore.QSize(0, 0))
+ self.adding_new_item_lay.setMaximumSize(QtCore.QSize(16777215, 0))
+ self.adding_new_item_lay.setObjectName("adding_new_item_lay")
+ self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.adding_new_item_lay)
+ self.verticalLayout_14.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout_14.setObjectName("verticalLayout_14")
+ self.new_account_name_box = QtWidgets.QLineEdit(self.adding_new_item_lay)
+ self.new_account_name_box.setMinimumSize(QtCore.QSize(0, 30))
+ self.new_account_name_box.setObjectName("new_account_name_box")
+ self.verticalLayout_14.addWidget(self.new_account_name_box)
+ self.new_account_buttons = QtWidgets.QWidget(self.adding_new_item_lay)
+ self.new_account_buttons.setObjectName("new_account_buttons")
+ self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.new_account_buttons)
+ self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_6.setObjectName("horizontalLayout_6")
+ self.cancel_account_creation = QtWidgets.QPushButton(self.new_account_buttons)
+ self.cancel_account_creation.setMinimumSize(QtCore.QSize(0, 25))
+ self.cancel_account_creation.setObjectName("cancel_account_creation")
+ self.horizontalLayout_6.addWidget(self.cancel_account_creation)
+ self.accept_account_name = QtWidgets.QPushButton(self.new_account_buttons)
+ self.accept_account_name.setMinimumSize(QtCore.QSize(0, 25))
+ self.accept_account_name.setObjectName("accept_account_name")
+ self.horizontalLayout_6.addWidget(self.accept_account_name)
+ self.verticalLayout_14.addWidget(self.new_account_buttons)
+ self.verticalLayout_13.addWidget(self.adding_new_item_lay)
+ self.accounts_list = QtWidgets.QListWidget(self.account_page)
+ self.accounts_list.setStyleSheet("font: 16pt \"Segoe UI\";")
+ self.accounts_list.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
+ self.accounts_list.setDragEnabled(True)
+ self.accounts_list.setObjectName("accounts_list")
+ self.verticalLayout_13.addWidget(self.accounts_list)
+ self.use_this_account_button = QtWidgets.QPushButton(self.account_page)
+ self.use_this_account_button.setMinimumSize(QtCore.QSize(0, 30))
+ self.use_this_account_button.setObjectName("use_this_account_button")
+ self.verticalLayout_13.addWidget(self.use_this_account_button)
+ self.content.addWidget(self.account_page)
self.verticalLayout_4.addWidget(self.content)
MainWindow.setCentralWidget(self.centralwidget)
@@ -421,6 +502,10 @@ class Ui_MainWindow(object):
self.new_item_image_label.setText(_translate("MainWindow", "Paste here URL of image with item"))
self.new_item_image_box.setPlaceholderText(_translate("MainWindow", "https://www.gtabase.com/images/jch-optimize/ng/images_gta-5_vehicles_planes_main_luxor-deluxe.webp"))
self.new_item_finish_label.setText(_translate("MainWindow", "Fill all fields first"))
+ self.new_account_name_box.setPlaceholderText(_translate("MainWindow", "Account name"))
+ self.cancel_account_creation.setText(_translate("MainWindow", "Cancel"))
+ self.accept_account_name.setText(_translate("MainWindow", "Create"))
+ self.use_this_account_button.setText(_translate("MainWindow", "Use selected account"))
import gui.images_rc
diff --git a/gui/gui.ui b/gui/gui.ui
index 8b25427..433fe76 100644
--- a/gui/gui.ui
+++ b/gui/gui.ui
@@ -1306,6 +1306,259 @@ p, li { white-space: pre-wrap; }
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ 48
+ 48
+
+
+
+
+ 48
+ 48
+
+
+
+
+
+
+
+ :/img/img/cancel.png:/img/img/cancel.png
+
+
+
+ 32
+ 32
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 48
+ 48
+
+
+
+
+ 48
+ 48
+
+
+
+
+
+
+
+ :/img/img/plus.png:/img/img/plus.png
+
+
+
+ 32
+ 32
+
+
+
+
+ -
+
+
+
+ 48
+ 48
+
+
+
+
+ 48
+ 48
+
+
+
+
+
+
+
+ :/img/img/delete.png:/img/img/delete.png
+
+
+
+ 32
+ 32
+
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 16777215
+ 0
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 30
+
+
+
+ Account name
+
+
+
+ -
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 25
+
+
+
+ Cancel
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+ Create
+
+
+
+
+
+
+
+
+
+ -
+
+
+ font: 16pt "Segoe UI";
+
+
+ QAbstractItemView::NoEditTriggers
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 30
+
+
+
+ Use selected account
+
+
+
+
+
diff --git a/gui/images.qrc b/gui/images.qrc
index 174b0f8..f6cc643 100644
--- a/gui/images.qrc
+++ b/gui/images.qrc
@@ -1,11 +1,13 @@
- img/next.png
+ img/account.png
img/back.png
img/cancel.png
- img/account.png
+ img/delete.png
+ img/edit.png
img/icon.ico
img/menu.png
+ img/next.png
img/plus.png
img/settings.png
diff --git a/gui/images_rc.py b/gui/images_rc.py
index d0270eb..60857ad 100644
--- a/gui/images_rc.py
+++ b/gui/images_rc.py
@@ -71,6 +71,93 @@ qt_resource_data = b"\
\xb5\xc3\x1c\x6b\xf2\x54\x1f\x18\x18\x18\x18\x28\xe0\x1f\x07\x8c\
\x76\x28\x0c\x32\x8d\xaa\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\
+\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\x03\x49\x44\x41\x54\x78\x9c\xed\x9b\x5f\x68\
+\x96\x55\x1c\xc7\xbf\xc7\xb9\xb4\x3f\x0c\x1b\x92\x66\x13\x49\x88\
+\xc8\xa1\xdb\x72\x53\x23\xd2\x61\x60\x61\xd9\x4d\x66\xdd\x48\x97\
+\x29\xbb\x29\xba\x51\x2a\xa8\x8b\xea\xa6\xa2\x2b\xc5\xae\xd3\x9c\
+\x48\xd4\x65\xac\x6c\x4d\xb3\x36\x4c\xd6\x9f\x0d\x89\x22\x67\x53\
+\xca\x70\x4b\x42\x9d\x95\xfb\x74\x71\xde\x57\x9e\xde\xde\xe7\x7d\
+\xce\x79\xfe\x9c\x6d\xe6\xe7\xe6\x85\xf1\xfb\xbf\xe7\x79\xce\xbf\
+\xdf\x91\xae\xf3\xff\xc6\x84\x74\x06\x2c\x96\xb4\x59\xd2\x0d\x31\
+\x22\x17\x25\xed\x35\xc6\x8c\x85\x8b\x2a\x20\xc0\xe7\x24\xf3\xde\
+\x54\xc7\x59\x08\x40\x1d\x70\xc9\xa1\x00\x3f\x85\x8c\x6b\x56\x40\
+\x5f\x4b\x25\xcd\x75\x90\x5b\x02\x34\x14\x1d\x4c\x99\x90\x05\x58\
+\xe6\x28\x67\x24\x35\x17\x19\x48\x94\xe9\x58\x00\x49\x5a\x5e\x58\
+\x14\x15\xa4\x2a\x00\xd0\x06\x1c\x04\xb6\x7a\xa8\xdd\xe3\x21\xeb\
+\x5c\x00\x60\x2b\x70\x00\x68\xf5\xb0\x9f\x1e\xe0\x5e\xe0\x5c\xe4\
+\xa3\x75\x10\x68\x74\xd0\x3b\xe6\xf0\x01\x2c\xd3\xeb\x60\xaf\x01\
+\x78\x37\xa2\x33\x0e\xac\xca\x27\xcb\x78\xa7\x95\xc9\x97\x39\x05\
+\x74\xd6\xd0\x33\xc0\x1f\x1e\x05\x38\x97\x10\xc7\x6a\xe0\xc7\x2a\
+\x7a\xc5\x15\x01\xe8\x28\x39\x88\xe3\x6f\xe0\x55\xa0\x3e\xa2\xd3\
+\x00\x3c\x0d\x7c\xe4\x91\x7c\x99\x0f\x80\x27\x80\x1b\x23\xf6\x66\
+\x03\x2f\x97\x7c\xc5\x31\x06\xac\xcc\x3b\xf9\xf6\x84\xe4\xa3\xf4\
+\x03\x6b\x80\xd7\x80\xf3\x29\x12\xaf\xe4\x57\x60\x27\xb0\x02\x38\
+\xe2\xa8\xe3\x5c\x84\xc4\xa9\x30\xd0\x22\xa9\x57\xd2\xbc\xac\x85\
+\x0c\xcc\xb8\xa4\x4e\x63\xcc\x37\xb5\x84\x5c\x46\x81\x2e\xcd\xbc\
+\xe4\x25\xe9\x56\x49\xdb\x93\x84\x5c\x0a\xb0\x4f\xd2\x64\xe6\x70\
+\xc2\x33\x29\x69\x7f\x92\x50\x62\x01\x8c\x31\xbd\x92\xde\xce\x23\
+\xa2\xc0\xbc\x65\x8c\xf9\x2c\x49\xc8\x69\x39\x0c\xcc\x91\x34\x20\
+\x69\x45\xd6\xa8\x02\x31\x24\xa9\xdd\x18\x33\x91\x24\xe8\xbc\x1f\
+\x00\x34\x4b\x3a\x26\xb7\x05\xcd\x54\x72\x59\xd2\xaa\xa4\x8f\x5f\
+\x19\xe7\xa9\xb0\x31\x66\x48\xd2\x4b\x69\xa3\x0a\xc8\x0e\xd7\xe4\
+\x25\xcf\x1d\x21\x60\x96\xa4\x1e\x49\xeb\x7d\xa3\x0a\xc4\xc7\x92\
+\x1e\x32\xc6\x38\x7f\xb4\xbd\xb7\xc4\x80\x0e\xd9\xef\xc1\x74\xe4\
+\x6e\x63\xcc\xf7\x3e\x0a\x69\x56\x83\x4f\xa6\xd0\x09\xc5\x46\x5f\
+\x05\xdf\x57\xa0\x51\xd2\x88\xa4\x5b\x7c\x1d\x45\x38\x2a\xa9\x5b\
+\x52\x9f\xa4\x5f\x4a\x7f\xbb\x5d\xd2\x5a\xd9\xe2\xde\x97\xc1\xf6\
+\x69\x49\x77\x1a\x63\xfe\xca\x60\x23\x1e\xe0\x99\x0c\x73\xfa\x93\
+\xc0\xc3\x0e\x3e\x36\x62\x57\x97\x69\x79\xb4\xa8\xe4\xeb\x80\xbe\
+\x94\x41\xf5\x03\xb7\x79\xf8\x5a\x00\x0c\xa4\xf4\xd5\x0d\x38\x3f\
+\xd9\x55\x05\x81\x45\xb2\x5b\x58\xcd\x91\xdf\x56\x49\x37\xbb\x1a\
+\x8e\x30\x22\x3b\x2e\x9f\xf5\x51\x02\xe6\x4b\xea\x97\xdd\x4c\xf5\
+\xe5\x4f\x49\x3f\xc8\x4e\x88\x86\x23\xbf\x27\x8c\x31\x57\xe2\x1c\
+\x36\x61\x97\x9b\x13\x29\x2b\x1f\x47\xe2\x63\x1f\x07\xf0\x48\xce\
+\xb1\x5c\x02\x0e\x03\x4d\xd5\x9c\x75\xe5\xec\x0c\xe0\x48\xda\xe4\
+\x23\x71\x1d\x2d\x20\xae\xae\xb2\xfd\xe8\x30\x58\x5f\xc5\x7f\x56\
+\xba\x73\xb0\x71\x20\x07\x1b\x95\x5c\xcd\xb5\xe8\x6d\xf1\xcc\x4f\
+\x80\xec\x70\x59\x18\x45\x17\x60\x34\x07\x1b\xa7\x73\xb0\x11\x4b\
+\xd1\x05\xc8\xc3\x7e\xa1\x27\xd8\x45\x17\x60\x51\x0e\x36\xee\xc8\
+\xc1\x46\x2c\x45\x17\x60\x6d\x0e\x36\xd6\xe5\x60\x23\x96\x68\x01\
+\x2e\x17\x60\x3f\x8f\x85\xd3\x96\x1c\x6c\x54\xf2\xdf\x9d\x22\xa0\
+\x11\xd8\x0f\x8c\xe4\x3c\xe6\x7a\xaf\xd0\x22\x31\x6d\xca\x39\x96\
+\x93\xd8\x1c\xaf\x1e\xe5\xc5\x4d\x85\x1b\x24\xdd\x25\x3b\x05\x5e\
+\x29\x3b\x1d\x6e\x95\x34\x3f\x45\x1e\x67\x24\x75\x18\x63\xce\x78\
+\x26\xbf\x50\x76\xdf\x61\x71\x0a\x9f\xe7\x65\xa7\xc2\xc3\x92\xbe\
+\x92\x9d\x0a\x7f\x6d\x8c\xf9\x2d\x85\xad\x7f\x05\xe5\x7a\x32\x53\
+\xc9\x00\xb0\xc0\xc3\xcf\x42\xfc\x0e\x53\xa3\x24\x6e\x85\x67\x29\
+\xc0\xf6\x94\x41\x81\x7d\xb5\x12\x5f\x07\xec\x63\xff\x73\x06\x3f\
+\x5e\xcb\xe1\x34\x1b\x22\xa7\x94\x6e\x55\x58\xe6\x0b\xd9\xe9\x6d\
+\x9f\xec\xeb\x21\xd9\xe1\x72\x9d\xec\x47\x73\x75\x06\xdb\xa3\x92\
+\x96\x16\xb6\x21\x22\x49\xc0\x9b\x19\xfe\x3b\x45\xf3\xac\x6f\x3e\
+\x69\xe6\x01\xef\xa7\xd0\x09\x45\x8f\xaf\x82\x57\x01\x80\xd9\x92\
+\xde\xf0\x75\x12\x90\x3d\xa5\x18\x9d\xf1\x7d\x02\x5e\x91\xb4\xc6\
+\x53\x27\x24\xf7\x4b\x7a\xd1\x47\xc1\xe7\x68\xec\x01\x49\x9f\x4a\
+\xaa\xf3\x0c\x2a\x34\x93\x92\x1e\x2c\x1d\xea\x26\xe2\x7a\x38\x3a\
+\x4f\xd2\xa0\xa4\x25\x19\x02\x0b\xc9\xa8\xa4\x16\x97\x9e\x63\xd7\
+\x57\x60\xb7\x66\x4e\xf2\x92\xd4\x24\xe9\x1d\x17\xc1\xc4\x02\x60\
+\x7b\x01\x9f\xca\x1a\xd1\x14\xf0\x38\x0e\x7d\x8c\x2e\x4f\xc0\x63\
+\x39\x04\x33\x55\x6c\x4a\x12\x70\x69\x92\x6a\x95\x74\x48\xb6\xe7\
+\x66\x26\x31\x2e\x69\xbd\x31\x66\xb0\x96\x90\x4b\x8b\xcc\xa0\xa4\
+\x0d\x25\x83\x2e\x1c\x92\x5d\x41\xbe\x2e\xbb\x2a\xcb\xca\x59\x49\
+\x3b\x64\x57\xa4\x9f\x38\xea\x8c\x4b\xda\x90\x94\xbc\x17\xd8\x5e\
+\xc1\xb1\x1a\xd3\xd0\x09\xe0\x79\x6c\x0f\x41\x59\xa7\xdc\x28\xd9\
+\x93\x62\x5a\xfb\x21\xb0\x19\x98\x1b\xb1\x67\x80\xe7\xa8\x7d\xef\
+\x60\x0c\x68\xcf\x2d\xf1\x8a\x22\xb4\x51\xbd\x55\xf6\x3b\xa0\xad\
+\x86\x5e\x1d\x70\xd1\x23\xf9\xdf\xa9\x71\xbe\x07\x2c\x03\x8e\xc7\
+\xe8\x15\xde\x2f\x1c\x2d\xc2\x24\xb0\x07\xb8\xc9\x41\x6f\xd0\xa3\
+\x00\x87\x1d\xec\xd5\x63\xdb\x66\xaf\x04\x4b\x3e\xe2\xbc\x05\xd8\
+\x45\x8d\x06\xe9\x2a\x3a\x7b\x3d\x0a\xb0\xcb\xc3\x6e\x27\xb0\x1b\
+\x98\xde\x1d\x6c\xc0\x0b\x1e\x05\xd8\x16\x2a\xae\x90\x37\x46\x86\
+\x3d\x64\xbf\x2d\x2c\x8a\x0a\x42\x16\x60\xc8\x51\x0e\x0f\xd9\x99\
+\x03\xee\x23\xc1\xb5\x79\x6d\xae\xd4\x99\x71\xdc\x41\xf4\xcb\xa2\
+\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\x01\x36\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -93,6 +180,210 @@ qt_resource_data = b"\
\x01\xf6\x01\xe9\x29\xf2\xd8\x07\xd8\x07\x48\x92\x24\x49\x12\x70\
\x00\x67\x69\x63\x5e\x7b\xf6\xed\x1f\x00\x00\x00\x00\x49\x45\x4e\
\x44\xae\x42\x60\x82\
+\x00\x00\x03\x30\
+\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\xe5\x49\x44\x41\x54\x78\x9c\xed\x9b\xbd\x6e\
+\x13\x41\x14\x85\xbf\x9b\x90\x08\x25\x88\x0a\x70\x48\x47\x41\x12\
+\x40\xa1\x0e\x48\xa4\x42\x0a\x3d\xa2\x49\x05\x15\x82\x86\xe7\xa0\
+\x41\x02\xf1\xa7\x28\x0a\x1d\x0d\x11\x0f\x80\x78\x00\x78\x80\x84\
+\x9f\x8a\x2a\xb1\x0d\x0d\x42\x02\x62\x63\x1f\x8a\x5d\xa4\xc8\xda\
+\x59\x6f\x9c\xdd\x1d\x2f\x9e\x4f\x72\x73\x67\x3c\x3e\xf7\x78\x66\
+\x76\xbc\x7b\x0d\x81\x40\x20\x30\xc2\xd8\x20\x6f\x92\x64\x40\x0d\
+\x98\x01\x4e\xe4\xaa\xe8\xe0\x7c\x03\xea\x40\xc3\xcc\x54\xe8\x27\
+\x49\xba\x20\xe9\x99\xa4\xa6\x86\x8f\xa6\xa4\xa7\x92\xce\x17\x91\
+\xf8\xb4\xa4\x75\x49\x1d\x49\x7b\x3e\xb3\xec\x43\x4b\x91\xc6\x35\
+\x49\x53\x59\x72\xeb\xbb\x04\x24\xcd\x02\x6f\x80\xb3\xc0\xe4\x21\
+\xbd\x2c\x8b\x36\xf0\x11\x58\x31\xb3\xdd\xb4\x8e\xa9\x06\x48\x9a\
+\x06\xde\x03\x73\xc0\x44\x6e\xf2\xca\xe1\x9f\x09\x4b\x66\xf6\xd3\
+\xd5\x69\xac\xcf\x20\x0f\x89\xbe\xf9\xaa\x25\x0f\x91\xe6\x79\xe0\
+\x41\x5a\x27\xe7\x0c\x90\xb4\x00\x6c\xd1\xdf\xa4\x61\xa7\x0b\x5c\
+\x34\xb3\xad\xa4\xc6\xb4\xe4\xee\x01\x9d\x42\x24\x95\xcb\x1f\xe0\
+\xae\xab\x31\x71\x06\x28\xba\xce\x37\x80\x93\x05\x89\x2a\x9b\x26\
+\x30\x93\x74\x4e\x70\xcd\x80\x1a\xff\x4f\xf2\x00\xa7\x70\xe4\xe3\
+\x32\x60\xb6\x38\x2d\xde\x48\xcc\xc9\x65\xc0\xb1\x02\x85\xf8\xe2\
+\x78\x52\xd0\xc7\x0e\xdf\x1e\xb0\xad\x10\x8e\x94\xfd\x81\x44\x57\
+\x96\x75\xe0\x75\x4f\xfc\x3a\x70\x93\x92\xcf\x1c\x3e\x0c\x00\xf8\
+\x6c\x66\x6f\xf7\x07\x24\x2d\xfa\x10\x52\xf5\x43\xce\xa1\x09\x06\
+\xf8\x16\xe0\x9b\x60\x80\x6f\x01\xbe\x09\x06\xf8\x16\xe0\x9b\x91\
+\x37\x20\xaf\x83\x50\x9b\xe8\xc6\x43\x16\x26\x1d\x7d\xbb\x71\xdb\
+\x5e\xc6\x71\xc6\xc8\xe1\xd4\x98\x97\x01\x13\xc0\x73\xe0\x4b\x86\
+\xbe\x1d\x60\x33\x21\xfe\x2a\x1e\x67\x3c\xc3\x18\x67\x80\xdb\x99\
+\xd5\x1d\x14\x49\xcb\x03\xdc\x92\xbe\x52\x98\xa0\x7c\xf4\x2d\x27\
+\x8d\x35\xf2\x7b\x40\x30\xc0\xb7\x00\xdf\xe4\xf9\x73\x78\x55\xd2\
+\xe5\x0c\xfd\x3a\xc0\x4b\x33\xdb\xd9\x1f\x8c\x9f\x40\xad\x92\x7d\
+\x13\xcc\x85\x3c\x2f\x83\xb7\x32\xf6\x9d\x00\x5a\xc0\xa3\x9e\xf8\
+\x0d\xe0\x3e\xd9\xef\x0a\xb5\x19\xb2\xcb\x60\x56\x7e\x93\xbc\xf4\
+\xc6\x88\x8c\x39\x9a\x8b\xa2\x8c\x8c\xfc\x1e\x10\x0c\xf0\x2d\xc0\
+\x37\xc1\x00\xdf\x02\x7c\x13\x0c\xf0\x2d\xc0\x37\x23\x6f\x80\xaf\
+\x27\x43\x73\x92\xae\xf6\xc6\x7c\x08\xf1\x61\xc0\x38\x70\x27\x7e\
+\xf5\x52\xfa\xc3\x51\x1f\x4b\x20\xed\xd8\x5c\x7a\x31\x96\xcb\x80\
+\x1f\xa5\xaa\x28\x87\xef\x49\x41\x97\x01\x3b\x8e\x78\x95\x49\x2c\
+\x98\x74\x19\xd0\x04\xbe\x16\xa7\xa5\x74\x1a\x38\xf2\x49\x34\x20\
+\xae\xa6\xda\xc4\xc3\xa6\x54\x00\x2d\x60\xd3\x55\x49\x9e\x56\x28\
+\x39\x0f\x6c\x53\xfd\xb3\x42\x17\x58\x34\xb3\xed\xa4\x46\x67\x72\
+\x66\xf6\x09\xd8\xa0\xda\xb3\xa0\x0d\xac\xb9\x92\x87\xfe\xc5\xd2\
+\x53\xc0\x3b\x60\x81\xea\xd5\x0b\xb7\x81\x0f\x44\xc5\xd2\xbf\x5c\
+\x9d\x52\xa7\x77\x5c\x65\x7d\x8d\xa8\xea\xba\x4a\x33\xa1\x45\xb4\
+\x7c\x57\xd2\x92\x87\x0c\xeb\x3b\xbe\x7b\xbb\x04\xbc\x20\x5a\x4f\
+\xad\x3c\x14\x16\x44\x8b\x48\xe3\x06\x70\xc9\xcc\xea\xb9\x8e\x2e\
+\xe9\x9c\xa4\x27\x92\xea\x03\x3c\x9a\x2a\x9a\xba\xa4\xc7\x8a\xaa\
+\xdc\x33\x33\xd0\x9f\xa6\x62\x33\x6a\xc0\x69\x86\xe3\x4f\x53\xbb\
+\x66\xd6\xf0\xac\x23\x10\x08\x04\xaa\xc7\x5f\x97\x7c\xed\x09\x30\
+\x07\x1e\xe5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x01\x8a\
+\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\x3f\x49\x44\x41\x54\x78\x9c\xed\x9b\x31\x2e\
+\x04\x61\x00\x46\x1f\x71\x03\x59\xdb\x08\x9d\x88\x4a\xe5\x04\x8e\
+\x80\x02\x67\x51\x39\x97\x44\xa1\x51\xb2\xae\x42\x62\x37\x9e\xc2\
+\x12\x24\x33\x5b\xd8\x7f\x7e\x3b\xf3\xbd\x72\x36\x99\x7c\xef\x4d\
+\x66\x8a\xd9\x5d\x08\x21\xac\x12\xea\x8e\xba\x59\x7b\x47\xe7\xa8\
+\x63\xf5\xd6\x0f\x5e\xd5\xab\xda\x9b\x3a\x63\x2e\xff\xe4\x4f\xde\
+\xd4\xc3\xbf\x9e\x7b\x7d\x19\x03\x4b\xa2\x8e\x81\x1b\xe0\xe0\xd7\
+\x47\x6b\xc0\x7e\xf7\x8b\x3a\xa4\xe1\xca\x7f\xf2\xac\x6e\xd7\xde\
+\x58\x8c\xb9\xfc\xa4\x41\x7e\xaa\x9e\xd4\xde\x58\x0c\x75\x4b\x7d\
+\x6c\x90\x9f\xa9\xe7\xb5\x37\x16\x23\xf2\x91\x8f\x7c\xe4\x23\x1f\
+\xf9\xc8\x47\xbe\x97\x44\x3e\xf2\x91\x8f\x7c\xe4\x23\x1f\xf9\xc8\
+\xf7\x92\xc8\x0f\x58\x7e\x43\xbd\x6f\x90\x9f\xaa\x67\xb5\x37\x16\
+\x45\x3d\x5e\xe5\x2b\xbf\x8c\x6f\x86\x6c\x39\x3e\x5b\xc2\xf9\xff\
+\x37\x83\xbf\x05\x00\xd4\x91\xfa\xd0\x72\x2b\x5c\xd4\xde\x58\x9c\
+\x44\x20\x11\x80\x44\x00\x12\x01\x48\x04\x20\x11\x80\x44\x00\x12\
+\x01\x48\x04\x20\x11\x80\x44\x00\xbe\x22\xb4\xbd\x40\x19\x44\x84\
+\x45\x6f\x91\x12\x21\x11\x12\x21\x11\x12\x21\x11\x12\x61\xb8\x11\
+\x16\xfd\x5c\xfe\xb4\xf6\xc6\xe2\xd8\xfe\x87\x89\x17\x75\xb7\xf6\
+\xc6\xe2\x2c\x88\x70\x59\x7b\x5f\x27\xb4\x44\x38\xaa\xbd\xad\x33\
+\xe6\x11\xee\xbe\x3d\x08\xaf\x6b\x6f\xaa\x82\xba\xa7\x8e\x6a\xef\
+\x08\xa1\x27\xbc\x03\x85\x53\x0e\x31\xd2\xc1\xa0\x73\x00\x00\x00\
+\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x01\xf4\
+\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\xa9\x49\x44\x41\x54\x78\x9c\xed\x9b\x41\x4e\
+\xc3\x30\x10\x45\x03\xe7\x42\x5d\x82\x44\x41\x62\x83\x38\x0f\x50\
+\x54\x15\xa9\x7b\x2e\x5b\x3d\x36\x1d\x61\x4a\xe2\xa6\x8e\xed\x99\
+\x31\x7e\x52\x56\x49\x26\xff\xfd\x5a\x91\x92\xb6\xc3\xd0\xe9\x74\
+\x3a\x9d\xce\x28\xc0\x0a\xd8\x02\x8f\xda\x59\x2e\x05\x78\x01\xbe\
+\x80\xfb\xd4\x01\x2b\xe0\xc0\x0f\x9b\xcc\x19\x8b\x01\x6c\xf8\xcd\
+\x73\xca\x90\x2d\x7f\x31\x5f\xc2\x88\x3c\xc0\x3e\x65\xd0\xc3\xc8\
+\x20\xd3\x25\x4c\xc8\xa7\xad\x80\x33\x03\xcd\x95\x50\x2c\x2b\xf0\
+\x36\x31\xf8\x33\x53\xf6\xc5\x14\xcf\x68\xb9\x84\x6a\xd9\x2c\x96\
+\x50\x3d\x93\xa5\x12\xd4\xb2\x58\x28\x41\x3d\x83\x66\x00\x75\x79\
+\xcd\x20\x66\xe4\x35\x02\x99\x93\xaf\x19\xcc\xac\xbc\x50\x32\xa0\
+\x79\x79\x01\x78\xcd\x1d\x34\x22\xbf\xcb\x99\x3d\x1b\x39\x4b\x70\
+\x27\x2f\xe4\x28\xc1\xad\xbc\xb0\xa4\x04\xf7\xf2\x42\x4a\x09\xcd\
+\xc8\x0b\x97\x94\xd0\x9c\xbc\x30\xa7\x84\x66\xe5\x05\xa6\xdf\xd6\
+\xbc\x1f\xb7\x31\xcc\xbd\x75\x5a\x44\x64\x25\xb4\xfb\xc9\x9f\x32\
+\xb3\x84\x36\xe5\x85\x33\x25\x54\x97\xbf\xae\x7d\xc1\x61\x18\xae\
+\x12\xf7\xf9\x87\xe9\xbb\x7d\x88\xad\x87\x9c\x5c\xcc\x94\x6f\xb3\
+\x84\x88\xfc\x2e\xb2\xaf\x8d\x12\x62\xf2\xc1\x31\xd9\x1f\xa5\x4d\
+\x30\x47\x3e\x38\xb6\xad\x12\x2e\x91\x0f\xce\x69\xa3\x84\x14\xf9\
+\xe0\x5c\xdf\x25\x2c\x91\x0f\x66\xf8\x2c\x21\x87\x7c\x30\xcb\x57\
+\x09\x39\xe5\x83\x99\x3e\x4a\x28\x21\x1f\xcc\xb6\x5d\x42\x49\xf9\
+\xe0\x1a\x36\x4b\x88\xc8\xb7\xff\xd5\x98\x46\x20\x33\x25\x68\x06\
+\x51\x2f\x41\x3d\x80\x66\x06\x0b\xf2\x6a\x59\x2c\xc9\x57\xcf\x64\
+\x51\xbe\x5a\x36\xcb\xf2\x42\xb1\x8c\xfc\xe7\x9f\xca\x02\x4f\x5e\
+\xe4\x85\x48\x09\xeb\x94\x61\x7b\x4f\xf2\xc2\x44\x09\x1f\x29\x83\
+\xee\xbc\xc9\x0b\x27\x25\x1c\x80\x9b\xd4\x41\xb7\xc7\x95\xe0\xf1\
+\x2f\x33\xeb\x63\x11\x69\xf2\x9d\x4e\xa7\xd3\xf9\x07\x7c\x03\xe6\
+\x36\x04\x96\x36\x44\xc8\x08\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
+\x42\x60\x82\
+\x00\x00\x01\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\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
+\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\
+\xa8\x64\x00\x00\x01\x45\x49\x44\x41\x54\x78\x5e\xed\xdb\x3d\x4a\
+\xc4\x50\x18\x46\xe1\x20\xee\x40\xd4\x46\xb4\xb3\xb6\x72\x05\x2e\
+\x41\x45\xd4\xb5\xd8\xc4\x85\x45\x88\x45\xec\xf2\xe3\x52\x12\x49\
+\x32\xa3\x9e\xc0\x17\xe1\x12\x62\x21\x16\x7a\xbf\xf7\x69\x86\xcc\
+\xa4\x39\x2f\x33\x03\x13\x26\x89\x88\xfc\x8a\x3d\x1c\xc3\x0e\x7d\
+\x79\x40\xdf\xf7\xc3\x07\xb2\x2c\x7b\x3a\x84\xbd\x14\xbf\x33\x6c\
+\xb7\xdb\xf7\x29\x7e\xd6\x34\xcd\xab\x9b\x11\x6e\x60\xdd\x01\x37\
+\x23\x1c\xa1\x6d\xdb\xce\xba\x03\x6e\x46\xb8\xc4\x30\x0c\xa3\x75\
+\x07\xea\xba\x6e\x5c\x8c\x70\x8b\x71\x1c\x37\xd6\x1d\xa8\xaa\xaa\
+\x3e\x80\x9d\x1a\x2f\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\
+\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\
+\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x80\x6b\xac\x5d\
+\x6d\x2e\x8a\xe2\x65\x17\x76\x6a\xbc\xbe\x7b\x27\x5c\xc0\x4e\xfb\
+\xb1\x1d\x7b\xfc\xb3\x36\x98\x62\xed\x30\xb0\xf6\x7c\x34\x5c\x7f\
+\x04\xee\xb0\xf6\xd6\x2f\xcb\xb2\xda\x87\x9d\x1a\x1f\xc5\x2b\x7e\
+\x49\xf1\x8a\x8f\x94\xe2\x15\xbf\xa4\x78\xc5\x47\x4a\xf1\x2b\xf1\
+\xd3\x05\x0e\xd7\xf1\x51\x5f\xdd\x51\xbc\xe2\x97\x14\xaf\xf8\x48\
+\x29\xde\x6b\xfc\x15\xdc\xfe\x5d\xfe\x04\x5d\xd7\xbd\x59\x6f\xc0\
+\xc5\x0d\x13\xf7\xb0\xde\x80\x9b\xbb\x45\xce\x61\xcd\x5f\x5c\xdd\
+\x34\x35\x49\xd3\xf4\x71\xfe\x02\xcc\xf3\xfc\xd9\x55\xfc\x6c\xfa\
+\x35\x77\x0a\x3b\x14\x91\xff\x20\x49\x3e\x01\xba\x26\x04\xe0\xd9\
+\xf1\x5c\x00\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x01\x9e\
+\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\x53\x49\x44\x41\x54\x78\x9c\xed\x9a\xbb\x4a\
+\xc4\x40\x18\x46\xbf\x11\xd2\xe8\xa3\xe8\x03\xb8\x8d\x9d\x58\xd8\
+\xfb\x98\xee\x6b\xf8\x18\x96\xb6\x11\x11\xc1\xe2\xd8\x24\xe0\x42\
+\x36\x9b\x4c\xee\x7f\xbe\xd3\x26\x0c\x73\x0e\x73\x29\x12\xc9\x18\
+\x63\xcc\x36\x01\x0e\xc0\x61\xe9\x79\x2c\x42\x25\x5f\x02\x5f\xc0\
+\xc3\xd2\xf3\x99\x95\x7f\xf2\x35\xfb\x89\xd0\x20\xbf\x9f\x08\x2d\
+\xf2\xf1\x23\x74\x90\x8f\x1b\x01\xb8\xeb\x28\x5f\x53\x12\xe9\x76\
+\x00\x0a\xe0\xb5\x47\x80\x78\x2b\xc1\x11\xb4\xa3\x08\xc0\x75\xcb\
+\xb3\x02\x38\xf6\x8c\x70\xf6\x4c\xb8\x9a\x4e\x23\x8f\x6a\xa2\xef\
+\xc0\x73\xd3\xf3\x94\xd2\xaf\xa4\x17\x49\xc7\xbe\x43\x0f\x9d\xdb\
+\xe4\x70\x7a\xd5\xfd\x9c\x8b\x50\xbd\xdb\x75\x3b\x94\xc0\xfd\x9c\
+\x1e\x59\xd0\x7c\xcf\x0f\x8d\xb0\x69\xf9\xa1\x11\x42\xc8\xe7\x46\
+\x08\x25\xdf\x37\x42\x48\xf9\x9a\x6f\xe0\xb1\x65\xcc\x02\xb8\x9d\
+\xd3\x23\x8b\x4c\xf9\x4e\x2b\x61\xf5\x0c\x94\xdf\x76\x84\x91\xe4\
+\xb7\x19\x61\x64\xf9\x9a\x0f\xe0\x66\x69\xb7\x8b\x4c\x24\x1f\xfa\
+\xb4\xb7\xbc\xe5\x2d\x6f\x79\xcb\x5b\xde\xf2\x96\x5f\x37\x96\xb7\
+\xbc\xe5\x2d\x6f\x79\xcb\x5b\x3e\xae\xbc\x24\x4d\x24\xbf\x9a\xbf\
+\x37\xd2\xa5\x17\x80\x31\xbf\xaa\x7e\x4a\x7a\x4a\x29\xbd\x8d\x38\
+\xe6\x20\xe6\xfc\x3c\xbe\x3a\x79\x69\xbe\x00\xab\x94\xef\xc4\x48\
+\x7b\x7e\x1b\x07\x5e\x13\xbb\x96\x97\x06\x05\xd8\xbe\xbc\x94\x1d\
+\x20\x86\xbc\x94\x15\x20\x8e\xbc\xd4\x3b\x40\x2c\x79\xa9\x57\x80\
+\x78\xf2\xc6\x18\x63\x8c\x09\xcd\x1f\x1f\xf1\xd2\x58\xc2\x3d\x01\
+\xf9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x01\xe2\
+\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\x97\x49\x44\x41\x54\x78\x9c\xed\xdb\xbd\x2e\
+\x44\x51\x14\xc5\xf1\xff\x46\x22\x13\x24\x48\xd0\x9b\xa8\x25\xa3\
+\xd5\x50\x6b\x55\x1e\xc1\x83\x28\x28\x44\xad\x54\x49\x3c\x82\x78\
+\x00\x11\x51\x51\xf0\x02\x34\x08\xe3\x23\x26\x4b\xa1\xd1\xb9\xfb\
+\xce\xcc\xd9\x86\xfd\xab\xcf\xbe\x67\xdd\x95\x3b\x33\xb7\x38\x03\
+\x29\xa5\x94\xfe\x2f\x2b\xb5\x91\xa4\x16\xb0\x01\x8c\xff\xb0\xf4\
+\x09\x38\x30\xb3\xf3\xfe\xa7\x2a\x44\x52\x53\x52\x5b\xd5\xb5\x25\
+\x35\x4b\x64\x1b\xf1\x2c\x96\x34\x07\xac\x03\x63\xce\x7d\x96\x80\
+\x86\x63\x7d\x03\xd8\x92\x74\xe6\xdc\xe7\x19\x38\x34\xb3\xdb\xaa\
+\x03\x95\x3f\x02\x92\xa6\x81\x53\x60\xde\x19\xaa\xb4\x1b\xa0\x65\
+\x66\x8f\x55\x16\x0f\x39\x2e\xbc\xca\xef\xbf\x79\x80\x26\xb0\x5c\
+\x75\xb1\xa7\x80\x4b\xe0\xc3\x1d\xa7\xbc\x0e\x70\x55\x75\xb1\xeb\
+\x57\x40\xd2\x1a\xb0\x09\xcc\x38\x43\x95\x72\x07\xec\x9b\xd9\x51\
+\x74\x90\x94\xd2\x60\x70\xbf\x0a\x4b\x5a\x04\x4e\xfa\x90\xa5\x17\
+\x56\xcc\xec\xc2\x33\xe0\x7a\x13\xfc\x36\x33\x55\x63\xae\x04\xf7\
+\xfd\x78\xde\x03\xfe\xa4\x2c\x20\x3a\x40\xb4\x2c\x20\x3a\x40\xb4\
+\x2c\x20\x3a\x40\xb4\x2c\x20\x3a\x40\xb4\x2c\x20\x3a\x40\xb4\x2c\
+\x20\x3a\x40\xb4\x2c\x20\x3a\x40\xb4\x2c\x20\x3a\x40\xb4\x2c\x20\
+\x3a\x40\xb4\x2c\x20\x3a\x40\xb4\x2c\x20\x3a\x40\xb4\x2c\x20\x3a\
+\x40\xb4\x2c\x20\x3a\x40\xb4\x2c\x20\x3a\x40\xb4\x2c\x20\x3a\x40\
+\xb4\x2c\xa0\xc6\xcc\x6b\xcf\x53\xf4\xce\x8b\x77\xa0\xce\x11\x99\
+\x51\xbe\xce\xe3\x4d\x78\x67\xfb\xec\x01\x98\x35\xb3\x77\xcf\x90\
+\xfb\x09\x30\xb3\x37\x60\xc7\x3b\x57\xc0\xb6\xf7\xe6\x6b\x93\x34\
+\x2c\x69\x4f\x52\xc7\x71\x04\xbe\x5f\x3a\x92\x76\x25\xd5\xfa\x3e\
+\xeb\xea\x0f\x13\x92\x16\xf8\x3a\x44\x3d\xd9\xcd\x75\xba\x70\x0f\
+\x1c\x9b\xd9\x75\xd0\xfe\x29\xa5\x94\x52\x1a\x60\x9f\xc9\x63\x02\
+\x0c\xb1\xc5\x4e\x5f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\
+\x82\
\x00\x00\x78\x22\
\x00\
\x04\x20\x3e\x78\x9c\xec\xbd\x07\x54\x54\xcb\xd7\xe0\xfb\xff\x7f\
@@ -2018,236 +2309,6 @@ qt_resource_data = b"\
\xfa\x05\xe6\x7a\xbb\xd4\x27\x98\xe3\xaf\x33\x89\x1e\xfa\xe1\x25\
\x0a\x9a\xbf\x98\x7d\xc6\x39\x3f\xdb\xea\xd5\xff\x02\xf1\x29\xae\
\x82\
-\x00\x00\x01\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\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
-\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\
-\xa8\x64\x00\x00\x01\x45\x49\x44\x41\x54\x78\x5e\xed\xdb\x3d\x4a\
-\xc4\x50\x18\x46\xe1\x20\xee\x40\xd4\x46\xb4\xb3\xb6\x72\x05\x2e\
-\x41\x45\xd4\xb5\xd8\xc4\x85\x45\x88\x45\xec\xf2\xe3\x52\x12\x49\
-\x32\xa3\x9e\xc0\x17\xe1\x12\x62\x21\x16\x7a\xbf\xf7\x69\x86\xcc\
-\xa4\x39\x2f\x33\x03\x13\x26\x89\x88\xfc\x8a\x3d\x1c\xc3\x0e\x7d\
-\x79\x40\xdf\xf7\xc3\x07\xb2\x2c\x7b\x3a\x84\xbd\x14\xbf\x33\x6c\
-\xb7\xdb\xf7\x29\x7e\xd6\x34\xcd\xab\x9b\x11\x6e\x60\xdd\x01\x37\
-\x23\x1c\xa1\x6d\xdb\xce\xba\x03\x6e\x46\xb8\xc4\x30\x0c\xa3\x75\
-\x07\xea\xba\x6e\x5c\x8c\x70\x8b\x71\x1c\x37\xd6\x1d\xa8\xaa\xaa\
-\x3e\x80\x9d\x1a\x2f\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\
-\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\
-\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x80\x6b\xac\x5d\
-\x6d\x2e\x8a\xe2\x65\x17\x76\x6a\xbc\xbe\x7b\x27\x5c\xc0\x4e\xfb\
-\xb1\x1d\x7b\xfc\xb3\x36\x98\x62\xed\x30\xb0\xf6\x7c\x34\x5c\x7f\
-\x04\xee\xb0\xf6\xd6\x2f\xcb\xb2\xda\x87\x9d\x1a\x1f\xc5\x2b\x7e\
-\x49\xf1\x8a\x8f\x94\xe2\x15\xbf\xa4\x78\xc5\x47\x4a\xf1\x2b\xf1\
-\xd3\x05\x0e\xd7\xf1\x51\x5f\xdd\x51\xbc\xe2\x97\x14\xaf\xf8\x48\
-\x29\xde\x6b\xfc\x15\xdc\xfe\x5d\xfe\x04\x5d\xd7\xbd\x59\x6f\xc0\
-\xc5\x0d\x13\xf7\xb0\xde\x80\x9b\xbb\x45\xce\x61\xcd\x5f\x5c\xdd\
-\x34\x35\x49\xd3\xf4\x71\xfe\x02\xcc\xf3\xfc\xd9\x55\xfc\x6c\xfa\
-\x35\x77\x0a\x3b\x14\x91\xff\x20\x49\x3e\x01\xba\x26\x04\xe0\xd9\
-\xf1\x5c\x00\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x03\x30\
-\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\xe5\x49\x44\x41\x54\x78\x9c\xed\x9b\xbd\x6e\
-\x13\x41\x14\x85\xbf\x9b\x90\x08\x25\x88\x0a\x70\x48\x47\x41\x12\
-\x40\xa1\x0e\x48\xa4\x42\x0a\x3d\xa2\x49\x05\x15\x82\x86\xe7\xa0\
-\x41\x02\xf1\xa7\x28\x0a\x1d\x0d\x11\x0f\x80\x78\x00\x78\x80\x84\
-\x9f\x8a\x2a\xb1\x0d\x0d\x42\x02\x62\x63\x1f\x8a\x5d\xa4\xc8\xda\
-\x59\x6f\x9c\xdd\x1d\x2f\x9e\x4f\x72\x73\x67\x3c\x3e\xf7\x78\x66\
-\x76\xbc\x7b\x0d\x81\x40\x20\x30\xc2\xd8\x20\x6f\x92\x64\x40\x0d\
-\x98\x01\x4e\xe4\xaa\xe8\xe0\x7c\x03\xea\x40\xc3\xcc\x54\xe8\x27\
-\x49\xba\x20\xe9\x99\xa4\xa6\x86\x8f\xa6\xa4\xa7\x92\xce\x17\x91\
-\xf8\xb4\xa4\x75\x49\x1d\x49\x7b\x3e\xb3\xec\x43\x4b\x91\xc6\x35\
-\x49\x53\x59\x72\xeb\xbb\x04\x24\xcd\x02\x6f\x80\xb3\xc0\xe4\x21\
-\xbd\x2c\x8b\x36\xf0\x11\x58\x31\xb3\xdd\xb4\x8e\xa9\x06\x48\x9a\
-\x06\xde\x03\x73\xc0\x44\x6e\xf2\xca\xe1\x9f\x09\x4b\x66\xf6\xd3\
-\xd5\x69\xac\xcf\x20\x0f\x89\xbe\xf9\xaa\x25\x0f\x91\xe6\x79\xe0\
-\x41\x5a\x27\xe7\x0c\x90\xb4\x00\x6c\xd1\xdf\xa4\x61\xa7\x0b\x5c\
-\x34\xb3\xad\xa4\xc6\xb4\xe4\xee\x01\x9d\x42\x24\x95\xcb\x1f\xe0\
-\xae\xab\x31\x71\x06\x28\xba\xce\x37\x80\x93\x05\x89\x2a\x9b\x26\
-\x30\x93\x74\x4e\x70\xcd\x80\x1a\xff\x4f\xf2\x00\xa7\x70\xe4\xe3\
-\x32\x60\xb6\x38\x2d\xde\x48\xcc\xc9\x65\xc0\xb1\x02\x85\xf8\xe2\
-\x78\x52\xd0\xc7\x0e\xdf\x1e\xb0\xad\x10\x8e\x94\xfd\x81\x44\x57\
-\x96\x75\xe0\x75\x4f\xfc\x3a\x70\x93\x92\xcf\x1c\x3e\x0c\x00\xf8\
-\x6c\x66\x6f\xf7\x07\x24\x2d\xfa\x10\x52\xf5\x43\xce\xa1\x09\x06\
-\xf8\x16\xe0\x9b\x60\x80\x6f\x01\xbe\x09\x06\xf8\x16\xe0\x9b\x91\
-\x37\x20\xaf\x83\x50\x9b\xe8\xc6\x43\x16\x26\x1d\x7d\xbb\x71\xdb\
-\x5e\xc6\x71\xc6\xc8\xe1\xd4\x98\x97\x01\x13\xc0\x73\xe0\x4b\x86\
-\xbe\x1d\x60\x33\x21\xfe\x2a\x1e\x67\x3c\xc3\x18\x67\x80\xdb\x99\
-\xd5\x1d\x14\x49\xcb\x03\xdc\x92\xbe\x52\x98\xa0\x7c\xf4\x2d\x27\
-\x8d\x35\xf2\x7b\x40\x30\xc0\xb7\x00\xdf\xe4\xf9\x73\x78\x55\xd2\
-\xe5\x0c\xfd\x3a\xc0\x4b\x33\xdb\xd9\x1f\x8c\x9f\x40\xad\x92\x7d\
-\x13\xcc\x85\x3c\x2f\x83\xb7\x32\xf6\x9d\x00\x5a\xc0\xa3\x9e\xf8\
-\x0d\xe0\x3e\xd9\xef\x0a\xb5\x19\xb2\xcb\x60\x56\x7e\x93\xbc\xf4\
-\xc6\x88\x8c\x39\x9a\x8b\xa2\x8c\x8c\xfc\x1e\x10\x0c\xf0\x2d\xc0\
-\x37\xc1\x00\xdf\x02\x7c\x13\x0c\xf0\x2d\xc0\x37\x23\x6f\x80\xaf\
-\x27\x43\x73\x92\xae\xf6\xc6\x7c\x08\xf1\x61\xc0\x38\x70\x27\x7e\
-\xf5\x52\xfa\xc3\x51\x1f\x4b\x20\xed\xd8\x5c\x7a\x31\x96\xcb\x80\
-\x1f\xa5\xaa\x28\x87\xef\x49\x41\x97\x01\x3b\x8e\x78\x95\x49\x2c\
-\x98\x74\x19\xd0\x04\xbe\x16\xa7\xa5\x74\x1a\x38\xf2\x49\x34\x20\
-\xae\xa6\xda\xc4\xc3\xa6\x54\x00\x2d\x60\xd3\x55\x49\x9e\x56\x28\
-\x39\x0f\x6c\x53\xfd\xb3\x42\x17\x58\x34\xb3\xed\xa4\x46\x67\x72\
-\x66\xf6\x09\xd8\xa0\xda\xb3\xa0\x0d\xac\xb9\x92\x87\xfe\xc5\xd2\
-\x53\xc0\x3b\x60\x81\xea\xd5\x0b\xb7\x81\x0f\x44\xc5\xd2\xbf\x5c\
-\x9d\x52\xa7\x77\x5c\x65\x7d\x8d\xa8\xea\xba\x4a\x33\xa1\x45\xb4\
-\x7c\x57\xd2\x92\x87\x0c\xeb\x3b\xbe\x7b\xbb\x04\xbc\x20\x5a\x4f\
-\xad\x3c\x14\x16\x44\x8b\x48\xe3\x06\x70\xc9\xcc\xea\xb9\x8e\x2e\
-\xe9\x9c\xa4\x27\x92\xea\x03\x3c\x9a\x2a\x9a\xba\xa4\xc7\x8a\xaa\
-\xdc\x33\x33\xd0\x9f\xa6\x62\x33\x6a\xc0\x69\x86\xe3\x4f\x53\xbb\
-\x66\xd6\xf0\xac\x23\x10\x08\x04\xaa\xc7\x5f\x97\x7c\xed\x09\x30\
-\x07\x1e\xe5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x01\x8a\
-\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\x3f\x49\x44\x41\x54\x78\x9c\xed\x9b\x31\x2e\
-\x04\x61\x00\x46\x1f\x71\x03\x59\xdb\x08\x9d\x88\x4a\xe5\x04\x8e\
-\x80\x02\x67\x51\x39\x97\x44\xa1\x51\xb2\xae\x42\x62\x37\x9e\xc2\
-\x12\x24\x33\x5b\xd8\x7f\x7e\x3b\xf3\xbd\x72\x36\x99\x7c\xef\x4d\
-\x66\x8a\xd9\x5d\x08\x21\xac\x12\xea\x8e\xba\x59\x7b\x47\xe7\xa8\
-\x63\xf5\xd6\x0f\x5e\xd5\xab\xda\x9b\x3a\x63\x2e\xff\xe4\x4f\xde\
-\xd4\xc3\xbf\x9e\x7b\x7d\x19\x03\x4b\xa2\x8e\x81\x1b\xe0\xe0\xd7\
-\x47\x6b\xc0\x7e\xf7\x8b\x3a\xa4\xe1\xca\x7f\xf2\xac\x6e\xd7\xde\
-\x58\x8c\xb9\xfc\xa4\x41\x7e\xaa\x9e\xd4\xde\x58\x0c\x75\x4b\x7d\
-\x6c\x90\x9f\xa9\xe7\xb5\x37\x16\x23\xf2\x91\x8f\x7c\xe4\x23\x1f\
-\xf9\xc8\x47\xbe\x97\x44\x3e\xf2\x91\x8f\x7c\xe4\x23\x1f\xf9\xc8\
-\xf7\x92\xc8\x0f\x58\x7e\x43\xbd\x6f\x90\x9f\xaa\x67\xb5\x37\x16\
-\x45\x3d\x5e\xe5\x2b\xbf\x8c\x6f\x86\x6c\x39\x3e\x5b\xc2\xf9\xff\
-\x37\x83\xbf\x05\x00\xd4\x91\xfa\xd0\x72\x2b\x5c\xd4\xde\x58\x9c\
-\x44\x20\x11\x80\x44\x00\x12\x01\x48\x04\x20\x11\x80\x44\x00\x12\
-\x01\x48\x04\x20\x11\x80\x44\x00\xbe\x22\xb4\xbd\x40\x19\x44\x84\
-\x45\x6f\x91\x12\x21\x11\x12\x21\x11\x12\x21\x11\x12\x61\xb8\x11\
-\x16\xfd\x5c\xfe\xb4\xf6\xc6\xe2\xd8\xfe\x87\x89\x17\x75\xb7\xf6\
-\xc6\xe2\x2c\x88\x70\x59\x7b\x5f\x27\xb4\x44\x38\xaa\xbd\xad\x33\
-\xe6\x11\xee\xbe\x3d\x08\xaf\x6b\x6f\xaa\x82\xba\xa7\x8e\x6a\xef\
-\x08\xa1\x27\xbc\x03\x85\x53\x0e\x31\xd2\xc1\xa0\x73\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\
-\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\x03\x49\x44\x41\x54\x78\x9c\xed\x9b\x5f\x68\
-\x96\x55\x1c\xc7\xbf\xc7\xb9\xb4\x3f\x0c\x1b\x92\x66\x13\x49\x88\
-\xc8\xa1\xdb\x72\x53\x23\xd2\x61\x60\x61\xd9\x4d\x66\xdd\x48\x97\
-\x29\xbb\x29\xba\x51\x2a\xa8\x8b\xea\xa6\xa2\x2b\xc5\xae\xd3\x9c\
-\x48\xd4\x65\xac\x6c\x4d\xb3\x36\x4c\xd6\x9f\x0d\x89\x22\x67\x53\
-\xca\x70\x4b\x42\x9d\x95\xfb\x74\x71\xde\x57\x9e\xde\xde\xe7\x7d\
-\xce\x79\xfe\x9c\x6d\xe6\xe7\xe6\x85\xf1\xfb\xbf\xe7\x79\xce\xbf\
-\xdf\x91\xae\xf3\xff\xc6\x84\x74\x06\x2c\x96\xb4\x59\xd2\x0d\x31\
-\x22\x17\x25\xed\x35\xc6\x8c\x85\x8b\x2a\x20\xc0\xe7\x24\xf3\xde\
-\x54\xc7\x59\x08\x40\x1d\x70\xc9\xa1\x00\x3f\x85\x8c\x6b\x56\x40\
-\x5f\x4b\x25\xcd\x75\x90\x5b\x02\x34\x14\x1d\x4c\x99\x90\x05\x58\
-\xe6\x28\x67\x24\x35\x17\x19\x48\x94\xe9\x58\x00\x49\x5a\x5e\x58\
-\x14\x15\xa4\x2a\x00\xd0\x06\x1c\x04\xb6\x7a\xa8\xdd\xe3\x21\xeb\
-\x5c\x00\x60\x2b\x70\x00\x68\xf5\xb0\x9f\x1e\xe0\x5e\xe0\x5c\xe4\
-\xa3\x75\x10\x68\x74\xd0\x3b\xe6\xf0\x01\x2c\xd3\xeb\x60\xaf\x01\
-\x78\x37\xa2\x33\x0e\xac\xca\x27\xcb\x78\xa7\x95\xc9\x97\x39\x05\
-\x74\xd6\xd0\x33\xc0\x1f\x1e\x05\x38\x97\x10\xc7\x6a\xe0\xc7\x2a\
-\x7a\xc5\x15\x01\xe8\x28\x39\x88\xe3\x6f\xe0\x55\xa0\x3e\xa2\xd3\
-\x00\x3c\x0d\x7c\xe4\x91\x7c\x99\x0f\x80\x27\x80\x1b\x23\xf6\x66\
-\x03\x2f\x97\x7c\xc5\x31\x06\xac\xcc\x3b\xf9\xf6\x84\xe4\xa3\xf4\
-\x03\x6b\x80\xd7\x80\xf3\x29\x12\xaf\xe4\x57\x60\x27\xb0\x02\x38\
-\xe2\xa8\xe3\x5c\x84\xc4\xa9\x30\xd0\x22\xa9\x57\xd2\xbc\xac\x85\
-\x0c\xcc\xb8\xa4\x4e\x63\xcc\x37\xb5\x84\x5c\x46\x81\x2e\xcd\xbc\
-\xe4\x25\xe9\x56\x49\xdb\x93\x84\x5c\x0a\xb0\x4f\xd2\x64\xe6\x70\
-\xc2\x33\x29\x69\x7f\x92\x50\x62\x01\x8c\x31\xbd\x92\xde\xce\x23\
-\xa2\xc0\xbc\x65\x8c\xf9\x2c\x49\xc8\x69\x39\x0c\xcc\x91\x34\x20\
-\x69\x45\xd6\xa8\x02\x31\x24\xa9\xdd\x18\x33\x91\x24\xe8\xbc\x1f\
-\x00\x34\x4b\x3a\x26\xb7\x05\xcd\x54\x72\x59\xd2\xaa\xa4\x8f\x5f\
-\x19\xe7\xa9\xb0\x31\x66\x48\xd2\x4b\x69\xa3\x0a\xc8\x0e\xd7\xe4\
-\x25\xcf\x1d\x21\x60\x96\xa4\x1e\x49\xeb\x7d\xa3\x0a\xc4\xc7\x92\
-\x1e\x32\xc6\x38\x7f\xb4\xbd\xb7\xc4\x80\x0e\xd9\xef\xc1\x74\xe4\
-\x6e\x63\xcc\xf7\x3e\x0a\x69\x56\x83\x4f\xa6\xd0\x09\xc5\x46\x5f\
-\x05\xdf\x57\xa0\x51\xd2\x88\xa4\x5b\x7c\x1d\x45\x38\x2a\xa9\x5b\
-\x52\x9f\xa4\x5f\x4a\x7f\xbb\x5d\xd2\x5a\xd9\xe2\xde\x97\xc1\xf6\
-\x69\x49\x77\x1a\x63\xfe\xca\x60\x23\x1e\xe0\x99\x0c\x73\xfa\x93\
-\xc0\xc3\x0e\x3e\x36\x62\x57\x97\x69\x79\xb4\xa8\xe4\xeb\x80\xbe\
-\x94\x41\xf5\x03\xb7\x79\xf8\x5a\x00\x0c\xa4\xf4\xd5\x0d\x38\x3f\
-\xd9\x55\x05\x81\x45\xb2\x5b\x58\xcd\x91\xdf\x56\x49\x37\xbb\x1a\
-\x8e\x30\x22\x3b\x2e\x9f\xf5\x51\x02\xe6\x4b\xea\x97\xdd\x4c\xf5\
-\xe5\x4f\x49\x3f\xc8\x4e\x88\x86\x23\xbf\x27\x8c\x31\x57\xe2\x1c\
-\x36\x61\x97\x9b\x13\x29\x2b\x1f\x47\xe2\x63\x1f\x07\xf0\x48\xce\
-\xb1\x5c\x02\x0e\x03\x4d\xd5\x9c\x75\xe5\xec\x0c\xe0\x48\xda\xe4\
-\x23\x71\x1d\x2d\x20\xae\xae\xb2\xfd\xe8\x30\x58\x5f\xc5\x7f\x56\
-\xba\x73\xb0\x71\x20\x07\x1b\x95\x5c\xcd\xb5\xe8\x6d\xf1\xcc\x4f\
-\x80\xec\x70\x59\x18\x45\x17\x60\x34\x07\x1b\xa7\x73\xb0\x11\x4b\
-\xd1\x05\xc8\xc3\x7e\xa1\x27\xd8\x45\x17\x60\x51\x0e\x36\xee\xc8\
-\xc1\x46\x2c\x45\x17\x60\x6d\x0e\x36\xd6\xe5\x60\x23\x96\x68\x01\
-\x2e\x17\x60\x3f\x8f\x85\xd3\x96\x1c\x6c\x54\xf2\xdf\x9d\x22\xa0\
-\x11\xd8\x0f\x8c\xe4\x3c\xe6\x7a\xaf\xd0\x22\x31\x6d\xca\x39\x96\
-\x93\xd8\x1c\xaf\x1e\xe5\xc5\x4d\x85\x1b\x24\xdd\x25\x3b\x05\x5e\
-\x29\x3b\x1d\x6e\x95\x34\x3f\x45\x1e\x67\x24\x75\x18\x63\xce\x78\
-\x26\xbf\x50\x76\xdf\x61\x71\x0a\x9f\xe7\x65\xa7\xc2\xc3\x92\xbe\
-\x92\x9d\x0a\x7f\x6d\x8c\xf9\x2d\x85\xad\x7f\x05\xe5\x7a\x32\x53\
-\xc9\x00\xb0\xc0\xc3\xcf\x42\xfc\x0e\x53\xa3\x24\x6e\x85\x67\x29\
-\xc0\xf6\x94\x41\x81\x7d\xb5\x12\x5f\x07\xec\x63\xff\x73\x06\x3f\
-\x5e\xcb\xe1\x34\x1b\x22\xa7\x94\x6e\x55\x58\xe6\x0b\xd9\xe9\x6d\
-\x9f\xec\xeb\x21\xd9\xe1\x72\x9d\xec\x47\x73\x75\x06\xdb\xa3\x92\
-\x96\x16\xb6\x21\x22\x49\xc0\x9b\x19\xfe\x3b\x45\xf3\xac\x6f\x3e\
-\x69\xe6\x01\xef\xa7\xd0\x09\x45\x8f\xaf\x82\x57\x01\x80\xd9\x92\
-\xde\xf0\x75\x12\x90\x3d\xa5\x18\x9d\xf1\x7d\x02\x5e\x91\xb4\xc6\
-\x53\x27\x24\xf7\x4b\x7a\xd1\x47\xc1\xe7\x68\xec\x01\x49\x9f\x4a\
-\xaa\xf3\x0c\x2a\x34\x93\x92\x1e\x2c\x1d\xea\x26\xe2\x7a\x38\x3a\
-\x4f\xd2\xa0\xa4\x25\x19\x02\x0b\xc9\xa8\xa4\x16\x97\x9e\x63\xd7\
-\x57\x60\xb7\x66\x4e\xf2\x92\xd4\x24\xe9\x1d\x17\xc1\xc4\x02\x60\
-\x7b\x01\x9f\xca\x1a\xd1\x14\xf0\x38\x0e\x7d\x8c\x2e\x4f\xc0\x63\
-\x39\x04\x33\x55\x6c\x4a\x12\x70\x69\x92\x6a\x95\x74\x48\xb6\xe7\
-\x66\x26\x31\x2e\x69\xbd\x31\x66\xb0\x96\x90\x4b\x8b\xcc\xa0\xa4\
-\x0d\x25\x83\x2e\x1c\x92\x5d\x41\xbe\x2e\xbb\x2a\xcb\xca\x59\x49\
-\x3b\x64\x57\xa4\x9f\x38\xea\x8c\x4b\xda\x90\x94\xbc\x17\xd8\x5e\
-\xc1\xb1\x1a\xd3\xd0\x09\xe0\x79\x6c\x0f\x41\x59\xa7\xdc\x28\xd9\
-\x93\x62\x5a\xfb\x21\xb0\x19\x98\x1b\xb1\x67\x80\xe7\xa8\x7d\xef\
-\x60\x0c\x68\xcf\x2d\xf1\x8a\x22\xb4\x51\xbd\x55\xf6\x3b\xa0\xad\
-\x86\x5e\x1d\x70\xd1\x23\xf9\xdf\xa9\x71\xbe\x07\x2c\x03\x8e\xc7\
-\xe8\x15\xde\x2f\x1c\x2d\xc2\x24\xb0\x07\xb8\xc9\x41\x6f\xd0\xa3\
-\x00\x87\x1d\xec\xd5\x63\xdb\x66\xaf\x04\x4b\x3e\xe2\xbc\x05\xd8\
-\x45\x8d\x06\xe9\x2a\x3a\x7b\x3d\x0a\xb0\xcb\xc3\x6e\x27\xb0\x1b\
-\x98\xde\x1d\x6c\xc0\x0b\x1e\x05\xd8\x16\x2a\xae\x90\x37\x46\x86\
-\x3d\x64\xbf\x2d\x2c\x8a\x0a\x42\x16\x60\xc8\x51\x0e\x0f\xd9\x99\
-\x03\xee\x23\xc1\xb5\x79\x6d\xae\xd4\x99\x71\xdc\x41\xf4\xcb\xa2\
-\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\x01\xf4\
-\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\xa9\x49\x44\x41\x54\x78\x9c\xed\x9b\x41\x4e\
-\xc3\x30\x10\x45\x03\xe7\x42\x5d\x82\x44\x41\x62\x83\x38\x0f\x50\
-\x54\x15\xa9\x7b\x2e\x5b\x3d\x36\x1d\x61\x4a\xe2\xa6\x8e\xed\x99\
-\x31\x7e\x52\x56\x49\x26\xff\xfd\x5a\x91\x92\xb6\xc3\xd0\xe9\x74\
-\x3a\x9d\xce\x28\xc0\x0a\xd8\x02\x8f\xda\x59\x2e\x05\x78\x01\xbe\
-\x80\xfb\xd4\x01\x2b\xe0\xc0\x0f\x9b\xcc\x19\x8b\x01\x6c\xf8\xcd\
-\x73\xca\x90\x2d\x7f\x31\x5f\xc2\x88\x3c\xc0\x3e\x65\xd0\xc3\xc8\
-\x20\xd3\x25\x4c\xc8\xa7\xad\x80\x33\x03\xcd\x95\x50\x2c\x2b\xf0\
-\x36\x31\xf8\x33\x53\xf6\xc5\x14\xcf\x68\xb9\x84\x6a\xd9\x2c\x96\
-\x50\x3d\x93\xa5\x12\xd4\xb2\x58\x28\x41\x3d\x83\x66\x00\x75\x79\
-\xcd\x20\x66\xe4\x35\x02\x99\x93\xaf\x19\xcc\xac\xbc\x50\x32\xa0\
-\x79\x79\x01\x78\xcd\x1d\x34\x22\xbf\xcb\x99\x3d\x1b\x39\x4b\x70\
-\x27\x2f\xe4\x28\xc1\xad\xbc\xb0\xa4\x04\xf7\xf2\x42\x4a\x09\xcd\
-\xc8\x0b\x97\x94\xd0\x9c\xbc\x30\xa7\x84\x66\xe5\x05\xa6\xdf\xd6\
-\xbc\x1f\xb7\x31\xcc\xbd\x75\x5a\x44\x64\x25\xb4\xfb\xc9\x9f\x32\
-\xb3\x84\x36\xe5\x85\x33\x25\x54\x97\xbf\xae\x7d\xc1\x61\x18\xae\
-\x12\xf7\xf9\x87\xe9\xbb\x7d\x88\xad\x87\x9c\x5c\xcc\x94\x6f\xb3\
-\x84\x88\xfc\x2e\xb2\xaf\x8d\x12\x62\xf2\xc1\x31\xd9\x1f\xa5\x4d\
-\x30\x47\x3e\x38\xb6\xad\x12\x2e\x91\x0f\xce\x69\xa3\x84\x14\xf9\
-\xe0\x5c\xdf\x25\x2c\x91\x0f\x66\xf8\x2c\x21\x87\x7c\x30\xcb\x57\
-\x09\x39\xe5\x83\x99\x3e\x4a\x28\x21\x1f\xcc\xb6\x5d\x42\x49\xf9\
-\xe0\x1a\x36\x4b\x88\xc8\xb7\xff\xd5\x98\x46\x20\x33\x25\x68\x06\
-\x51\x2f\x41\x3d\x80\x66\x06\x0b\xf2\x6a\x59\x2c\xc9\x57\xcf\x64\
-\x51\xbe\x5a\x36\xcb\xf2\x42\xb1\x8c\xfc\xe7\x9f\xca\x02\x4f\x5e\
-\xe4\x85\x48\x09\xeb\x94\x61\x7b\x4f\xf2\xc2\x44\x09\x1f\x29\x83\
-\xee\xbc\xc9\x0b\x27\x25\x1c\x80\x9b\xd4\x41\xb7\xc7\x95\xe0\xf1\
-\x2f\x33\xeb\x63\x11\x69\xf2\x9d\x4e\xa7\xd3\xf9\x07\x7c\x03\xe6\
-\x36\x04\x96\x36\x44\xc8\x08\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
-\x42\x60\x82\
"
qt_resource_name = b"\
@@ -2259,19 +2320,15 @@ qt_resource_name = b"\
\x0c\x98\x63\x87\
\x00\x61\
\x00\x63\x00\x63\x00\x6f\x00\x75\x00\x6e\x00\x74\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\x08\
\x0c\x58\x59\x27\
\x00\x6d\
\x00\x65\x00\x6e\x00\x75\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x08\
-\x0a\x61\x42\x7f\
-\x00\x69\
-\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x69\x00\x63\x00\x6f\
-\x00\x08\
-\x0c\xf7\x59\xc7\
-\x00\x6e\
-\x00\x65\x00\x78\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x08\
\x03\xc6\x59\xa7\
\x00\x70\
\x00\x6c\x00\x75\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\
@@ -2279,28 +2336,42 @@ qt_resource_name = b"\
\x07\x9e\x5a\x47\
\x00\x62\
\x00\x61\x00\x63\x00\x6b\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\x0a\
\x09\xb2\x67\xc7\
\x00\x63\
\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x08\
+\x0c\xf7\x59\xc7\
+\x00\x6e\
+\x00\x65\x00\x78\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x08\
+\x0b\x07\x5a\x27\
+\x00\x65\
+\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0a\
+\x0c\xad\x0f\x07\
+\x00\x64\
+\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x08\
+\x0a\x61\x42\x7f\
+\x00\x69\
+\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x69\x00\x63\x00\x6f\
"
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\x08\x00\x00\x00\x03\
-\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x7e\xcb\
-\x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x00\x81\xff\
-\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x88\xdf\
-\x00\x00\x00\x3e\x00\x01\x00\x00\x00\x01\x00\x00\x04\xf1\
-\x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x83\x8d\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x03\
+\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x43\
+\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x77\
+\x00\x00\x00\x88\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x05\
+\x00\x00\x00\xe8\x00\x01\x00\x00\x00\x01\x00\x00\x16\x39\
+\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x12\xb1\
\x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x03\xb7\
+\x00\x00\x00\x46\x00\x00\x00\x00\x00\x01\x00\x00\x09\x09\
\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x7d\x17\
+\x00\x00\x00\xce\x00\x00\x00\x00\x00\x01\x00\x00\x14\x53\
+\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x10\xfd\
"
qt_resource_struct_v2 = b"\
@@ -2308,23 +2379,27 @@ 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\x08\x00\x00\x00\x03\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x03\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x7e\xcb\
+\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x43\
\x00\x00\x01\x82\x36\xc2\x4c\xa3\
-\x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x00\x81\xff\
+\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x77\
\x00\x00\x01\x82\x5f\x53\x50\xd3\
-\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x88\xdf\
+\x00\x00\x00\x88\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x05\
\x00\x00\x01\x82\x5f\x56\xe8\x76\
-\x00\x00\x00\x3e\x00\x01\x00\x00\x00\x01\x00\x00\x04\xf1\
+\x00\x00\x00\xe8\x00\x01\x00\x00\x00\x01\x00\x00\x16\x39\
\x00\x00\x01\x7b\x68\xc3\x67\xb7\
-\x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x83\x8d\
-\x00\x00\x01\x81\x68\xf5\xcd\x75\
+\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x12\xb1\
+\x00\x00\x01\x82\x73\xf5\xa1\x33\
\x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x03\xb7\
\x00\x00\x01\x81\x68\xf5\xcd\x75\
+\x00\x00\x00\x46\x00\x00\x00\x00\x00\x01\x00\x00\x09\x09\
+\x00\x00\x01\x81\x68\xf5\xcd\x75\
\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x82\x3f\x74\xb0\xd2\
-\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x7d\x17\
+\x00\x00\x00\xce\x00\x00\x00\x00\x00\x01\x00\x00\x14\x53\
+\x00\x00\x01\x82\x79\xb2\x70\x17\
+\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x10\xfd\
\x00\x00\x01\x82\x5f\x5d\x42\x4b\
"
diff --git a/gui/img/delete.png b/gui/img/delete.png
new file mode 100644
index 0000000..6688897
Binary files /dev/null and b/gui/img/delete.png differ
diff --git a/gui/img/edit.png b/gui/img/edit.png
new file mode 100644
index 0000000..8e03d79
Binary files /dev/null and b/gui/img/edit.png differ
diff --git a/gui/modules/account/__init__.py b/gui/modules/account/__init__.py
new file mode 100644
index 0000000..6b80e14
--- /dev/null
+++ b/gui/modules/account/__init__.py
@@ -0,0 +1,2 @@
+from .manager import *
+from .accounts import *
diff --git a/gui/modules/account/accounts.py b/gui/modules/account/accounts.py
new file mode 100644
index 0000000..722de60
--- /dev/null
+++ b/gui/modules/account/accounts.py
@@ -0,0 +1,19 @@
+from gui.gui import Ui_MainWindow
+from modules.database import Database
+from modules.config import Config
+
+
+def fill_accounts(ui: Ui_MainWindow):
+ ui.accounts_list.clear()
+ if not Database.get().profiles:
+ return
+
+ for i in range(len(Database.get().profiles)):
+ ui.accounts_list.addItem(list(Database.get().profiles)[i])
+ if list(Database.get().profiles)[i] == Config.get().profile:
+ ui.accounts_list.setCurrentRow(i)
+
+
+def set_current_profile(ui: Ui_MainWindow):
+ if ui.accounts_list.currentItem():
+ Config.update("profile", ui.accounts_list.currentItem().text())
diff --git a/gui/modules/account/manager.py b/gui/modules/account/manager.py
new file mode 100644
index 0000000..111dd56
--- /dev/null
+++ b/gui/modules/account/manager.py
@@ -0,0 +1,42 @@
+from PyQt5 import QtCore
+from gui.gui import Ui_MainWindow
+from gui.modules import account
+from modules.config import Config
+from modules.database import Database
+from modules.database.model import Profile
+
+
+def on_add_click(ui: Ui_MainWindow):
+ height = ui.adding_new_item_lay.geometry().height()
+ Ui_MainWindow.animation = QtCore.QPropertyAnimation(ui.adding_new_item_lay, b"maximumHeight")
+ Ui_MainWindow.animation.setDuration(300)
+
+ if height == 0:
+ Ui_MainWindow.animation.setStartValue(0)
+ Ui_MainWindow.animation.setEndValue(16777215)
+
+ else:
+ Ui_MainWindow.animation.setStartValue(height)
+ Ui_MainWindow.animation.setEndValue(0)
+
+ Ui_MainWindow.animation.setEasingCurve(QtCore.QEasingCurve.InOutQuart)
+ Ui_MainWindow.animation.start()
+
+
+def create_account(ui: Ui_MainWindow):
+ if ui.new_account_name_box.text() != "" and \
+ ui.new_account_name_box.text() not in list(Database.get().profiles):
+ Database.add_profile(Profile(ui.new_account_name_box.text(), []))
+ account.accounts.fill_accounts(ui)
+
+
+def remove_account(ui: Ui_MainWindow):
+ if ui.accounts_list.currentItem():
+ to_be_removed = ui.accounts_list.currentItem().text()
+ Database.remove_profile(to_be_removed)
+ account.accounts.fill_accounts(ui)
+ if Config.get().profile == to_be_removed:
+ if ui.accounts_list.currentItem():
+ Config.update("profile", ui.accounts_list.currentItem().text())
+ else:
+ Config.update("profile", None)
diff --git a/gui/modules/handlers/register.py b/gui/modules/handlers/register.py
index 48e854f..1a0a603 100644
--- a/gui/modules/handlers/register.py
+++ b/gui/modules/handlers/register.py
@@ -4,6 +4,7 @@ from gui.modules.handlers import on_item_remove
from gui.modules.adding_item import on_add_click
from gui.modules.filters import menu
from gui.modules.core import items_list
+from gui.modules import account
def register_handlers(ui: Ui_MainWindow):
@@ -19,4 +20,14 @@ def register_handlers(ui: Ui_MainWindow):
ui.filter_class_box.currentIndexChanged.connect(lambda: menu.refill_types(ui))
ui.filters_apply_button.clicked.connect(lambda: items_list.refill_list(ui))
+ ui.manage_profiles_button.clicked.connect(lambda: (ui.content.setCurrentWidget(ui.account_page),
+ account.accounts.fill_accounts(ui)))
+ ui.cancel_account.clicked.connect(lambda: ui.content.setCurrentWidget(ui.main_page))
+
+ ui.create_new_account.clicked.connect(lambda: account.manager.on_add_click(ui))
+ ui.remove_selected_account.clicked.connect(lambda: account.manager.remove_account(ui))
+ ui.cancel_account_creation.clicked.connect(lambda: account.manager.on_add_click(ui))
+ ui.accept_account_name.clicked.connect(lambda: account.manager.create_account(ui))
+ ui.use_this_account_button.clicked.connect(lambda: account.accounts.set_current_profile(ui))
+
on_add_click.register_add_handlers(ui)
diff --git a/gui/modules/initialize/setup_ui.py b/gui/modules/initialize/setup_ui.py
index 19bdbb8..1c99832 100644
--- a/gui/modules/initialize/setup_ui.py
+++ b/gui/modules/initialize/setup_ui.py
@@ -6,6 +6,7 @@ from modules.config import Config
from gui.modules.core import items_list
from gui.modules.handlers.register import register_handlers
from gui.modules.filters.menu import refill_filters
+from gui.modules import account
def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
@@ -20,5 +21,6 @@ def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
refill_filters(ui)
items_list.refill_list(ui)
+ account.accounts.fill_accounts(ui)
register_handlers(ui)
diff --git a/modules/config/settings.py b/modules/config/settings.py
index 13214e0..48852c1 100644
--- a/modules/config/settings.py
+++ b/modules/config/settings.py
@@ -29,7 +29,7 @@ class Config:
return Config.get()
@staticmethod
- def update(key: str, value: str) -> dict:
+ def update(key: str, value: str | None) -> dict:
with open("config.cfg", "r") as file:
settings = json.load(file)
diff --git a/modules/database/database.py b/modules/database/database.py
index 6f91a26..41b9af9 100644
--- a/modules/database/database.py
+++ b/modules/database/database.py
@@ -1,5 +1,5 @@
import json
-from modules.database.model import DatabaseModel, default_database, Item
+from modules.database.model import DatabaseModel, default_database, Item, Profile
from modules.config import Config
@@ -8,7 +8,10 @@ class Database:
def get():
try:
return DatabaseModel.from_dict(json.load(open(Config.get().database)))
- except:
+ except Exception as e:
+ print(f"Cannot load database: {e}. Writing default database")
+ print("Old data:")
+ print(open(Config.get().database).read())
with open(Config.get().database, 'w') as f:
json.dump(default_database, f, indent=4)
return DatabaseModel.from_dict(default_database)
@@ -18,6 +21,13 @@ class Database:
with open(Config.get().database, 'w') as f:
json.dump(db.to_dict(), f, indent=4, sort_keys=True)
+ @staticmethod
+ def add_item(item: Item):
+ db = Database.get()
+ db.items[item.item_name] = item
+
+ Database.write(db)
+
@staticmethod
def remove_item(item_name: str):
db = Database.get()
@@ -26,8 +36,15 @@ class Database:
Database.write(db)
@staticmethod
- def add_item(item: Item):
+ def add_profile(profile: Profile):
db = Database.get()
- db.items[item.item_name] = item
+ db.profiles[profile.profile_name] = profile
+
+ Database.write(db)
+
+ @staticmethod
+ def remove_profile(profile_name: str):
+ db = Database.get()
+ db.profiles.pop(profile_name)
Database.write(db)