added materials from curator

This commit is contained in:
2023-10-07 12:59:21 +03:00
commit 2b260b0762
40 changed files with 10322 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
{
"leds1": {
"red": 0,
"green": 0,
"blue": 0
},
"leds2": {
"red": 0,
"green": 0,
"blue": 0
},
"leds3": {
"red": 84,
"green": 69,
"blue": 255
},
"leds4": {
"red": 0,
"green": 0,
"blue": 0
},
"leds5": {
"red": 102,
"green": 255,
"blue": 173
},
"leds6": {
"red": 0,
"green": 0,
"blue": 0
},
"leds7": {
"red": 222,
"green": 255,
"blue": 58
},
"leds8": {
"red": 0,
"green": 0,
"blue": 0
},
"LED1": false,
"LED2": false,
"LED3": false
}

299
Python/Main.py Normal file
View File

@@ -0,0 +1,299 @@
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5 import uic
from PyQt5.QtGui import QColor, QPalette
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import *
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
import requests
import time
import json
import Res_rc
import copy
import pyqtgraph as pg
#import matplotlib.pyplot as plt
#import sys
colors = {}
last_clicked_label = None
plotLen = 20
valArr = [20] * plotLen
plot = None
def led1 (checked):
if checked:
form.pushButton_2.setText("Выкл")
print("I'm worked too much")
form.label_24.hide()
form.label_20.show()
else:
form.label_20.hide()
form.label_24.show()
form.pushButton_2.setText("Вкл")
print ("I'm worked too")
def led2 (checked):
if checked:
form.pushButton_3.setText("Выкл")
print("I'm worked too much")
form.label_27.hide()
form.label_26.show()
else:
form.label_26.hide()
form.label_27.show()
form.pushButton_3.setText("Вкл")
print ("I'm worked too")
def led3 (checked):
if checked:
form.pushButton_4.setText("Выкл")
print("I'm worked too much")
form.label_31.hide()
form.label_29.show()
#state = form.label_24.isVisible()
else:
form.label_29.hide()
form.label_31.show()
form.pushButton_4.setText("Вкл")
print ("I'm worked too")
def updateLCD():
global temp
form.lcdNumber.display(temp)
def sed ():
print ("I'm worked!")
led_data = {
"leds1": {"red": 0, "green": 0, "blue": 0},
"leds2": {"red": 0, "green": 0, "blue": 0},
"leds3": {"red": 0, "green": 0, "blue": 0},
"leds4": {"red": 0, "green": 0, "blue": 0},
"leds5": {"red": 0, "green": 0, "blue": 0},
"leds6": {"red": 0, "green": 0, "blue": 0},
"leds7": {"red": 0, "green": 0, "blue": 0},
"leds8": {"red": 0, "green": 0, "blue": 0},
}
def vkl():
for led in form.leds:
#caution! Naming will be the same for a Led and JSON led objects
led.setStyleSheet(f"background-color: yellow;")
led_data[led.objectName()]["red"] = 255
led_data[led.objectName()]["green"] = 255
led_data[led.objectName()]["blue"] = 0
def vikl():
for led in form.leds:
#caution! Naming will be the same for a Led and JSON led objects
led.setStyleSheet(f"background-color: black;")
led_data[led.objectName()]["red"] = 0
led_data[led.objectName()]["green"] = 0
led_data[led.objectName()]["blue"] = 0
def color():
color = QColorDialog.getColor()
if color.isValid():
palette = QPalette()
palette.setColor(QPalette.Button, color)
form.color_b.setPalette(palette)
for led in form.leds:
led.setStyleSheet(f"background-color: {color.name()};")
led_data[led.objectName()]["red"] = color.red()
led_data[led.objectName()]["green"] = color.green()
led_data[led.objectName()]["blue"] = color.blue()
def led_clicked(event):
colors = led.palette().color(QPalette.Background)
sender= QApplication.widgetAt(event.globalPos()) #QApplication.widgetAt() для получения текущего виджета, на котором было совершено действие
color = QColorDialog.getColor()
if color.isValid():
#caution! Naming will be the same for a Led and JSON led objects
sender.setStyleSheet(f"background-color: {color.name()};")
led_data[sender.objectName()]["red"] = color.red()
led_data[sender.objectName()]["green"] = color.green()
led_data[sender.objectName()]["blue"] = color.blue()
else:
form.leds.setStyleSheet(" ")
def sendMessage():
url = form.lineEdit.text()
labels_dict = {}
labels_dict["LED1"] = form.label_20.isVisible()
labels_dict["LED2"] = form.label_26.isVisible()
labels_dict["LED3"] = form.label_29.isVisible()
json_data = {}
json_data.update(led_data)
json_data.update(labels_dict)
json_str = json.dumps(json_data, separators=(',', ':'))
data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str
form.textEdit.setPlainText(data_str)
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} #заголовки запроса
response = requests.post(url, json=json_data, headers=headers) #отправка POST запроса
# обрабатываем ответ и выводим его в поле вывода
if response.status_code == 200:
form.textEdit.append('О, все прошло успешно!\n') #выводим значение в line_edit
else:
form.textEdit.append('Ошибка при получении данных')
def getValueFromMacket():
url = form.lineEdit_2.text()
response = requests.get(url) #отправка POST запроса
# обрабатываем ответ и выводим его в поле вывода
if response.status_code == 200:
data=response.json() #функция преобразования данных в объект питон
#Parse the date
form.textEdit.append(json.dumps(data)) #выводим значение в line_edit
form.textEdit.append(str(data["temperature"]))
bs = list()
bs.append(data["button1State"])
bs.append(data["button2State"])
bs.append(data["button3State"])
update_button(bs)
update_pressure(data["pressure"])
form.lcdNumber_7.display(data["ambient_light"])
form.lcdNumber_2.display (data["red_light"])
form.lcdNumber_3.display (data["green_light"])
form.lcdNumber_4.display (data["blue_light"])
form.lcdNumber_8.display (data["lightness"])
form.lcdNumber_5.display(data['acceleration_x'])
form.lcdNumber_9.display (data['acceleration_y'])
form.lcdNumber_6.display (data['acceleration_z'])
led1(data['LED1'])
led2(data['LED2'])
led3(data['LED3'])
valArr.pop(0)
valArr.append(data["temperature"])
print(valArr)
UpdatePlot(plot, valArr)
else:
form.textEdit.append('Ошибка при получении данных')
#json.load(file) @ACHT! Method to convert Str to JSON
def update_pressure(p):
form.lcd_pressure.display(p)
def update_button (bs):
for i in range(1, 4):
button_state = bs[i-1]
if button_state == 'True':
getattr(form, f'on_{i}').show()
getattr(form, f'off_{i}').hide()
else:
getattr(form, f'on_{i}').hide()
getattr(form, f'off_{i}').show()
def UpdatePlot(plot, val):
x = list(range(1, len(valArr)+1))
bargraph = pg.BarGraphItem(x = x, height = val, width = 0.6, brush ='g')
plot.clear()
plot.addItem(bargraph)
def Plots(form, valArr):
widget = QWidget()
plot = pg.plot() #создает объект PlotWidget из библиотеки PyqtGraph
x = list(range(1, len(valArr)+1))
bargraph = pg.BarGraphItem(x = x, height = valArr, width = 0.6, brush ='g')
plot.addItem(bargraph)
# Creating a grid layout
layout = QGridLayout()
layout.addWidget(plot, 0,0)
form.plotwidget.setLayout(layout)
return plot
if __name__ == "__main__":
# Opening JSON file
f = open('config.json') #открывает файл 'config.json', загружает его содержимое в переменную 'conf' в формате словаря (dictionary) при помощи функции 'json.load()', а затем выводит все ключи словаря 'conf' при помощи цикла 'for'.
conf = json.load(open('config.json'))
f.close()
print("Find an arguments:")
for i in conf:
print(i)
import sys
Form, Window = uic.loadUiType(conf['uiPath'] + conf['uiFileName'])
app = QApplication(sys.argv)# Создаем экземпляр QApplication и передаем параметры командной строки
window = Window()
form = Form()
form.setupUi(window)
window.show() # Окна скрыты по умолчанию!
window.setWindowTitle('Lr4') #nazvanie
form.pushButton.clicked.connect(sendMessage) #привязываем функцию к кнопке Отправить
form.lineEdit.setText("http://" + conf['defaultMDNSname'] + conf['defaultPostRoute'])
form.lineEdit_2.setText("http://" + conf['defaultMDNSname'] + conf['defaultGetRoute'])
form.pushButton_5.clicked.connect(getValueFromMacket) #привязываем функцию к кнопке Отправить GET запрос
form.pushButton_2.setCheckable(True) #вкл режим перекл
form.pushButton_2.setChecked(False) #нач значение
form.label_20.hide()
form.pushButton_2.toggled["bool"].connect(led1)
form.pushButton_3.setCheckable(True) #вкл режим перекл
form.pushButton_3.setChecked(False) #нач значение
form.label_26.hide()
form.pushButton_3.toggled["bool"].connect(led2)
form.pushButton_4.setCheckable(True) #вкл режим перекл
form.pushButton_4.setChecked(False) #нач значение
form.label_29.hide()
form.pushButton_4.toggled["bool"].connect(led3)
form.on_1.hide()
form.on_2.hide()
form.on_3.hide()
form.lcdNumber.display(45)
form.leds = [form.leds1, form.leds2, form.leds3, form.leds4, form.leds5, form.leds6, form.leds7, form.leds8]
for led in form.leds:
led.mousePressEvent = led_clicked
timer = QTimer()
timer.setInterval(1000)
#Connect the timer to the update_pressure function
#TODO connect to getSensValue from macket
#timer.timeout.connect(update_pressure)
#timer.timeout.connect (update_button)
#timer.timeout.connect (update_light)
#timer.timeout.connect (update_acceleration)
timer.start()
form.vkl_b.clicked.connect(vkl)
form.vikl_b.clicked.connect(vikl)
form.color_b.clicked.connect(color)
plot = Plots(form, valArr)
sys.exit (app.exec_()) # Запуск цикла событий

455
Python/Res_rc.py Normal file
View File

@@ -0,0 +1,455 @@
# -*- coding: utf-8 -*-
# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2)
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore
qt_resource_data = b"\
\x00\x00\x06\x1c\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x32\x33\x2e\x31\x2e\x30\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\
\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\x3d\x22\xd0\xa1\
\xd0\xbb\xd0\xbe\xd0\xb9\x5f\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\x78\x3d\x22\x30\x70\x78\x22\x20\
\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\
\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x35\x36\x20\x32\x35\x36\x22\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\
\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\
\x30\x20\x32\x35\x36\x20\x32\x35\x36\x3b\x22\x20\x78\x6d\x6c\x3a\
\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\
\x3e\x0d\x0a\x3c\x73\x74\x79\x6c\x65\x20\x74\x79\x70\x65\x3d\x22\
\x74\x65\x78\x74\x2f\x63\x73\x73\x22\x3e\x0d\x0a\x09\x2e\x73\x74\
\x30\x7b\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\
\x6b\x65\x3a\x23\x32\x41\x32\x45\x30\x30\x3b\x73\x74\x72\x6f\x6b\
\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x36\x3b\x73\x74\x72\x6f\x6b\
\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x72\x6f\x75\x6e\x64\x3b\
\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\
\x74\x3a\x31\x30\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\x31\x7b\x66\x69\
\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\
\x31\x35\x30\x30\x30\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\
\x64\x74\x68\x3a\x31\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\
\x6e\x65\x63\x61\x70\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\
\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\
\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\x32\x7b\x66\x69\x6c\x6c\x3a\x6e\
\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x36\x36\x36\x36\
\x36\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\
\x31\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\
\x70\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\
\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x7d\x0d\x0a\
\x3c\x2f\x73\x74\x79\x6c\x65\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
\x3c\x70\x61\x74\x68\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x30\
\x22\x20\x64\x3d\x22\x4d\x31\x38\x36\x2e\x38\x37\x2c\x34\x33\x63\
\x32\x39\x2e\x38\x32\x2c\x31\x37\x2e\x36\x33\x2c\x33\x39\x2e\x30\
\x37\x2c\x35\x35\x2e\x30\x36\x2c\x32\x30\x2e\x36\x35\x2c\x38\x33\
\x2e\x36\x31\x63\x2d\x31\x34\x2e\x37\x34\x2c\x32\x32\x2e\x38\x34\
\x2d\x34\x36\x2e\x30\x32\x2c\x32\x39\x2e\x39\x31\x2d\x36\x39\x2e\
\x38\x38\x2c\x31\x35\x2e\x38\x31\x0d\x0a\x09\x09\x63\x2d\x31\x39\
\x2e\x30\x39\x2d\x31\x31\x2e\x32\x38\x2d\x32\x35\x2d\x33\x35\x2e\
\x32\x34\x2d\x31\x33\x2e\x32\x31\x2d\x35\x33\x2e\x35\x31\x63\x39\
\x2e\x34\x33\x2d\x31\x34\x2e\x36\x31\x2c\x32\x39\x2e\x34\x35\x2d\
\x31\x39\x2e\x31\x34\x2c\x34\x34\x2e\x37\x32\x2d\x31\x30\x2e\x31\
\x32\x63\x31\x32\x2e\x32\x32\x2c\x37\x2e\x32\x32\x2c\x31\x36\x2c\
\x32\x32\x2e\x35\x35\x2c\x38\x2e\x34\x36\x2c\x33\x34\x2e\x32\x35\
\x0d\x0a\x09\x09\x63\x2d\x36\x2e\x30\x34\x2c\x39\x2e\x33\x35\x2d\
\x31\x38\x2e\x38\x35\x2c\x31\x32\x2e\x32\x35\x2d\x32\x38\x2e\x36\
\x32\x2c\x36\x2e\x34\x38\x63\x2d\x37\x2e\x38\x32\x2d\x34\x2e\x36\
\x32\x2d\x31\x30\x2e\x32\x34\x2d\x31\x34\x2e\x34\x33\x2d\x35\x2e\
\x34\x31\x2d\x32\x31\x2e\x39\x32\x63\x33\x2e\x38\x36\x2d\x35\x2e\
\x39\x39\x2c\x31\x32\x2e\x30\x36\x2d\x37\x2e\x38\x34\x2c\x31\x38\
\x2e\x33\x32\x2d\x34\x2e\x31\x34\x0d\x0a\x09\x09\x63\x35\x2c\x32\
\x2e\x39\x36\x2c\x36\x2e\x35\x35\x2c\x39\x2e\x32\x34\x2c\x33\x2e\
\x34\x36\x2c\x31\x34\x2e\x30\x33\x63\x2d\x32\x2e\x34\x37\x2c\x33\
\x2e\x38\x33\x2d\x37\x2e\x37\x32\x2c\x35\x2e\x30\x32\x2d\x31\x31\
\x2e\x37\x32\x2c\x32\x2e\x36\x35\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\
\x61\x74\x68\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x31\x22\x20\
\x64\x3d\x22\x4d\x31\x38\x36\x2e\x38\x37\x2c\x34\x33\x63\x32\x39\
\x2e\x38\x32\x2c\x31\x37\x2e\x36\x33\x2c\x33\x39\x2e\x30\x37\x2c\
\x35\x35\x2e\x30\x36\x2c\x32\x30\x2e\x36\x35\x2c\x38\x33\x2e\x36\
\x31\x63\x2d\x31\x34\x2e\x37\x34\x2c\x32\x32\x2e\x38\x34\x2d\x34\
\x36\x2e\x30\x32\x2c\x32\x39\x2e\x39\x31\x2d\x36\x39\x2e\x38\x38\
\x2c\x31\x35\x2e\x38\x31\x0d\x0a\x09\x09\x63\x2d\x31\x39\x2e\x30\
\x39\x2d\x31\x31\x2e\x32\x38\x2d\x32\x35\x2d\x33\x35\x2e\x32\x34\
\x2d\x31\x33\x2e\x32\x31\x2d\x35\x33\x2e\x35\x31\x63\x39\x2e\x34\
\x33\x2d\x31\x34\x2e\x36\x31\x2c\x32\x39\x2e\x34\x35\x2d\x31\x39\
\x2e\x31\x34\x2c\x34\x34\x2e\x37\x32\x2d\x31\x30\x2e\x31\x32\x63\
\x31\x32\x2e\x32\x32\x2c\x37\x2e\x32\x32\x2c\x31\x36\x2c\x32\x32\
\x2e\x35\x35\x2c\x38\x2e\x34\x36\x2c\x33\x34\x2e\x32\x35\x0d\x0a\
\x09\x09\x63\x2d\x36\x2e\x30\x34\x2c\x39\x2e\x33\x35\x2d\x31\x38\
\x2e\x38\x35\x2c\x31\x32\x2e\x32\x35\x2d\x32\x38\x2e\x36\x32\x2c\
\x36\x2e\x34\x38\x63\x2d\x37\x2e\x38\x32\x2d\x34\x2e\x36\x32\x2d\
\x31\x30\x2e\x32\x34\x2d\x31\x34\x2e\x34\x33\x2d\x35\x2e\x34\x31\
\x2d\x32\x31\x2e\x39\x32\x63\x33\x2e\x38\x36\x2d\x35\x2e\x39\x39\
\x2c\x31\x32\x2e\x30\x36\x2d\x37\x2e\x38\x34\x2c\x31\x38\x2e\x33\
\x32\x2d\x34\x2e\x31\x34\x0d\x0a\x09\x09\x63\x35\x2c\x32\x2e\x39\
\x36\x2c\x36\x2e\x35\x35\x2c\x39\x2e\x32\x34\x2c\x33\x2e\x34\x36\
\x2c\x31\x34\x2e\x30\x33\x63\x2d\x32\x2e\x34\x37\x2c\x33\x2e\x38\
\x33\x2d\x37\x2e\x37\x32\x2c\x35\x2e\x30\x32\x2d\x31\x31\x2e\x37\
\x32\x2c\x32\x2e\x36\x35\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\
\x0a\x3c\x6c\x69\x6e\x65\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\
\x32\x22\x20\x78\x31\x3d\x22\x31\x32\x39\x22\x20\x79\x31\x3d\x22\
\x31\x37\x34\x22\x20\x78\x32\x3d\x22\x31\x30\x37\x22\x20\x79\x32\
\x3d\x22\x32\x31\x39\x22\x2f\x3e\x0d\x0a\x3c\x6c\x69\x6e\x65\x20\
\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x32\x22\x20\x78\x31\x3d\x22\
\x31\x37\x31\x22\x20\x79\x31\x3d\x22\x31\x37\x32\x22\x20\x78\x32\
\x3d\x22\x32\x30\x30\x22\x20\x79\x32\x3d\x22\x32\x34\x36\x22\x2f\
\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\x00\x00\x04\xc6\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x32\x33\x2e\x31\x2e\x30\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\
\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\x3d\x22\xd0\xa1\
\xd0\xbb\xd0\xbe\xd0\xb9\x5f\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\x78\x3d\x22\x30\x70\x78\x22\x20\
\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\
\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x35\x36\x20\x32\x35\x36\x22\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\
\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\
\x30\x20\x32\x35\x36\x20\x32\x35\x36\x3b\x22\x20\x78\x6d\x6c\x3a\
\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\
\x3e\x0d\x0a\x3c\x73\x74\x79\x6c\x65\x20\x74\x79\x70\x65\x3d\x22\
\x74\x65\x78\x74\x2f\x63\x73\x73\x22\x3e\x0d\x0a\x09\x2e\x73\x74\
\x30\x7b\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\
\x6b\x65\x3a\x23\x39\x39\x39\x39\x39\x39\x3b\x73\x74\x72\x6f\x6b\
\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x36\x3b\x73\x74\x72\x6f\x6b\
\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x72\x6f\x75\x6e\x64\x3b\
\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\
\x74\x3a\x31\x30\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\x31\x7b\x66\x69\
\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\
\x34\x44\x34\x44\x34\x44\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\
\x64\x74\x68\x3a\x31\x35\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\
\x6e\x65\x63\x61\x70\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\
\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\
\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\x32\x7b\x66\x69\x6c\x6c\x3a\x6e\
\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x39\x39\x39\x39\
\x39\x39\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\
\x33\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\
\x70\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\
\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x7d\x0d\x0a\
\x09\x2e\x73\x74\x33\x7b\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\
\x73\x74\x72\x6f\x6b\x65\x3a\x23\x36\x36\x36\x36\x36\x36\x3b\x73\
\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x31\x3b\x73\
\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x72\x6f\
\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\
\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\
\x34\x7b\x66\x69\x6c\x6c\x3a\x23\x33\x33\x30\x30\x30\x37\x3b\x7d\
\x0d\x0a\x09\x2e\x73\x74\x35\x7b\x66\x6f\x6e\x74\x2d\x66\x61\x6d\
\x69\x6c\x79\x3a\x27\x4d\x79\x72\x69\x61\x64\x50\x72\x6f\x2d\x52\
\x65\x67\x75\x6c\x61\x72\x27\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\x36\
\x7b\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x31\x31\x37\x2e\x37\
\x38\x37\x32\x70\x78\x3b\x7d\x0d\x0a\x3c\x2f\x73\x74\x79\x6c\x65\
\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x63\
\x6c\x61\x73\x73\x3d\x22\x73\x74\x30\x22\x20\x64\x3d\x22\x4d\x31\
\x33\x33\x2c\x31\x39\x33\x63\x30\x2d\x38\x36\x2e\x37\x38\x2d\x35\
\x30\x2e\x35\x34\x2d\x31\x35\x37\x2d\x31\x31\x33\x2d\x31\x35\x37\
\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x63\x6c\x61\x73\
\x73\x3d\x22\x73\x74\x31\x22\x20\x64\x3d\x22\x4d\x31\x33\x33\x2c\
\x31\x39\x33\x63\x30\x2d\x38\x36\x2e\x37\x38\x2d\x35\x30\x2e\x35\
\x34\x2d\x31\x35\x37\x2d\x31\x31\x33\x2d\x31\x35\x37\x22\x2f\x3e\
\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\
\x61\x74\x68\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x32\x22\x20\
\x64\x3d\x22\x4d\x32\x32\x2c\x32\x33\x35\x63\x37\x37\x2e\x34\x37\
\x2d\x35\x37\x2e\x34\x35\x2c\x31\x37\x33\x2e\x36\x33\x2d\x35\x38\
\x2e\x37\x39\x2c\x32\x31\x35\x2d\x33\x22\x2f\x3e\x0d\x0a\x09\x3c\
\x70\x61\x74\x68\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x33\x22\
\x20\x64\x3d\x22\x4d\x32\x32\x2c\x32\x33\x35\x63\x37\x37\x2e\x34\
\x37\x2d\x35\x37\x2e\x34\x35\x2c\x31\x37\x33\x2e\x36\x33\x2d\x35\
\x38\x2e\x37\x39\x2c\x32\x31\x35\x2d\x33\x22\x2f\x3e\x0d\x0a\x3c\
\x2f\x67\x3e\x0d\x0a\x3c\x74\x65\x78\x74\x20\x74\x72\x61\x6e\x73\
\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x38\
\x30\x30\x32\x20\x30\x20\x30\x20\x31\x20\x31\x30\x30\x2e\x30\x34\
\x33\x35\x20\x39\x33\x2e\x35\x35\x33\x32\x29\x22\x20\x63\x6c\x61\
\x73\x73\x3d\x22\x73\x74\x34\x20\x73\x74\x35\x20\x73\x74\x36\x22\
\x3e\x4f\x46\x46\x3c\x2f\x74\x65\x78\x74\x3e\x0d\x0a\x3c\x2f\x73\
\x76\x67\x3e\x0d\x0a\
\x00\x00\x04\xc1\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x32\x33\x2e\x31\x2e\x30\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\
\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\x3d\x22\xd0\xa1\
\xd0\xbb\xd0\xbe\xd0\xb9\x5f\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\x78\x3d\x22\x30\x70\x78\x22\x20\
\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\
\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x35\x36\x20\x32\x35\x36\x22\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\
\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\
\x30\x20\x32\x35\x36\x20\x32\x35\x36\x3b\x22\x20\x78\x6d\x6c\x3a\
\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\
\x3e\x0d\x0a\x3c\x73\x74\x79\x6c\x65\x20\x74\x79\x70\x65\x3d\x22\
\x74\x65\x78\x74\x2f\x63\x73\x73\x22\x3e\x0d\x0a\x09\x2e\x73\x74\
\x30\x7b\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\
\x6b\x65\x3a\x23\x39\x39\x39\x39\x39\x39\x3b\x73\x74\x72\x6f\x6b\
\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x36\x3b\x73\x74\x72\x6f\x6b\
\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x72\x6f\x75\x6e\x64\x3b\
\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\
\x74\x3a\x31\x30\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\x31\x7b\x66\x69\
\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\
\x34\x44\x34\x44\x34\x44\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\
\x64\x74\x68\x3a\x31\x35\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\
\x6e\x65\x63\x61\x70\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\
\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\
\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\x32\x7b\x66\x69\x6c\x6c\x3a\x6e\
\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x39\x39\x39\x39\
\x39\x39\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\
\x33\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\
\x70\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\
\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x7d\x0d\x0a\
\x09\x2e\x73\x74\x33\x7b\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\
\x73\x74\x72\x6f\x6b\x65\x3a\x23\x36\x36\x36\x36\x36\x36\x3b\x73\
\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x31\x3b\x73\
\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x72\x6f\
\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\
\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\
\x34\x7b\x66\x69\x6c\x6c\x3a\x23\x30\x34\x32\x30\x30\x30\x3b\x7d\
\x0d\x0a\x09\x2e\x73\x74\x35\x7b\x66\x6f\x6e\x74\x2d\x66\x61\x6d\
\x69\x6c\x79\x3a\x27\x4d\x79\x72\x69\x61\x64\x50\x72\x6f\x2d\x52\
\x65\x67\x75\x6c\x61\x72\x27\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\x36\
\x7b\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x31\x31\x37\x2e\x37\
\x38\x37\x32\x70\x78\x3b\x7d\x0d\x0a\x3c\x2f\x73\x74\x79\x6c\x65\
\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x63\
\x6c\x61\x73\x73\x3d\x22\x73\x74\x30\x22\x20\x64\x3d\x22\x4d\x31\
\x33\x33\x2c\x31\x39\x33\x63\x30\x2d\x39\x30\x2e\x36\x35\x2c\x34\
\x38\x2e\x33\x2d\x31\x36\x34\x2c\x31\x30\x38\x2d\x31\x36\x34\x22\
\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x63\x6c\x61\x73\x73\
\x3d\x22\x73\x74\x31\x22\x20\x64\x3d\x22\x4d\x31\x33\x33\x2c\x31\
\x39\x33\x63\x30\x2d\x39\x30\x2e\x36\x35\x2c\x34\x38\x2e\x33\x2d\
\x31\x36\x34\x2c\x31\x30\x38\x2d\x31\x36\x34\x22\x2f\x3e\x0d\x0a\
\x3c\x2f\x67\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\
\x68\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x32\x22\x20\x64\x3d\
\x22\x4d\x32\x32\x2c\x32\x33\x35\x63\x37\x37\x2e\x34\x37\x2d\x35\
\x37\x2e\x34\x35\x2c\x31\x37\x33\x2e\x36\x33\x2d\x35\x38\x2e\x37\
\x39\x2c\x32\x31\x35\x2d\x33\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\
\x74\x68\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x33\x22\x20\x64\
\x3d\x22\x4d\x32\x32\x2c\x32\x33\x35\x63\x37\x37\x2e\x34\x37\x2d\
\x35\x37\x2e\x34\x35\x2c\x31\x37\x33\x2e\x36\x33\x2d\x35\x38\x2e\
\x37\x39\x2c\x32\x31\x35\x2d\x33\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\
\x3e\x0d\x0a\x3c\x74\x65\x78\x74\x20\x74\x72\x61\x6e\x73\x66\x6f\
\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x38\x30\x30\
\x32\x20\x30\x20\x30\x20\x31\x20\x34\x2e\x30\x34\x33\x35\x20\x39\
\x33\x2e\x35\x35\x33\x32\x29\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\
\x73\x74\x34\x20\x73\x74\x35\x20\x73\x74\x36\x22\x3e\x4f\x4e\x3c\
\x2f\x74\x65\x78\x74\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\
\x00\x00\x07\x72\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x32\x33\x2e\x31\x2e\x30\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\
\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\x3d\x22\xd0\xa1\
\xd0\xbb\xd0\xbe\xd0\xb9\x5f\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\x78\x3d\x22\x30\x70\x78\x22\x20\
\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\
\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x35\x36\x20\x32\x35\x36\x22\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\
\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\
\x30\x20\x32\x35\x36\x20\x32\x35\x36\x3b\x22\x20\x78\x6d\x6c\x3a\
\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\
\x3e\x0d\x0a\x3c\x73\x74\x79\x6c\x65\x20\x74\x79\x70\x65\x3d\x22\
\x74\x65\x78\x74\x2f\x63\x73\x73\x22\x3e\x0d\x0a\x09\x2e\x73\x74\
\x30\x7b\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\
\x6b\x65\x3a\x23\x46\x46\x46\x43\x33\x45\x3b\x73\x74\x72\x6f\x6b\
\x65\x2d\x77\x69\x64\x74\x68\x3a\x39\x3b\x73\x74\x72\x6f\x6b\x65\
\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x72\x6f\x75\x6e\x64\x3b\x73\
\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\
\x3a\x31\x30\x3b\x7d\x0d\x0a\x09\x2e\x73\x74\x31\x7b\x66\x69\x6c\
\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x37\
\x30\x37\x31\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\
\x74\x68\x3a\x31\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\
\x65\x63\x61\x70\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\
\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\
\x7d\x0d\x0a\x09\x2e\x73\x74\x32\x7b\x66\x69\x6c\x6c\x3a\x6e\x6f\
\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x46\x34\x46\x46\x30\
\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\
\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\
\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\
\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x7d\x0d\x0a\x09\
\x2e\x73\x74\x33\x7b\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\
\x74\x72\x6f\x6b\x65\x3a\x23\x36\x36\x36\x36\x36\x36\x3b\x73\x74\
\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x32\x3b\x73\x74\
\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x72\x6f\x75\
\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\
\x69\x6d\x69\x74\x3a\x31\x30\x3b\x7d\x0d\x0a\x3c\x2f\x73\x74\x79\
\x6c\x65\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\
\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x30\x22\x20\x64\x3d\x22\
\x4d\x31\x38\x2e\x35\x2c\x31\x32\x37\x2e\x35\x63\x30\x2d\x36\x32\
\x2e\x34\x36\x2c\x34\x34\x2e\x37\x33\x2d\x31\x31\x33\x2c\x31\x30\
\x30\x2d\x31\x31\x33\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\
\x3c\x70\x61\x74\x68\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x30\
\x22\x20\x64\x3d\x22\x4d\x34\x36\x2c\x31\x33\x36\x63\x30\x2d\x35\
\x35\x2e\x32\x37\x2c\x32\x39\x2e\x39\x37\x2d\x31\x30\x30\x2c\x36\
\x37\x2d\x31\x30\x30\x22\x2f\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\
\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x30\x22\x20\x64\x3d\x22\x4d\
\x37\x31\x2e\x35\x2c\x31\x34\x36\x2e\x35\x63\x30\x2d\x34\x35\x2e\
\x38\x38\x2c\x31\x35\x2e\x32\x31\x2d\x38\x33\x2c\x33\x34\x2d\x38\
\x33\x22\x2f\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x63\x6c\x61\x73\
\x73\x3d\x22\x73\x74\x30\x22\x20\x64\x3d\x22\x4d\x39\x30\x2e\x35\
\x2c\x31\x35\x34\x2e\x35\x63\x30\x2d\x33\x33\x2e\x31\x36\x2c\x34\
\x2e\x30\x33\x2d\x36\x30\x2c\x39\x2d\x36\x30\x22\x2f\x3e\x0d\x0a\
\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x63\x6c\x61\x73\
\x73\x3d\x22\x73\x74\x31\x22\x20\x64\x3d\x22\x4d\x31\x38\x36\x2e\
\x38\x37\x2c\x34\x33\x63\x32\x39\x2e\x38\x32\x2c\x31\x37\x2e\x36\
\x33\x2c\x33\x39\x2e\x30\x37\x2c\x35\x35\x2e\x30\x36\x2c\x32\x30\
\x2e\x36\x35\x2c\x38\x33\x2e\x36\x31\x63\x2d\x31\x34\x2e\x37\x34\
\x2c\x32\x32\x2e\x38\x34\x2d\x34\x36\x2e\x30\x32\x2c\x32\x39\x2e\
\x39\x31\x2d\x36\x39\x2e\x38\x38\x2c\x31\x35\x2e\x38\x31\x0d\x0a\
\x09\x09\x63\x2d\x31\x39\x2e\x30\x39\x2d\x31\x31\x2e\x32\x38\x2d\
\x32\x35\x2d\x33\x35\x2e\x32\x34\x2d\x31\x33\x2e\x32\x31\x2d\x35\
\x33\x2e\x35\x31\x63\x39\x2e\x34\x33\x2d\x31\x34\x2e\x36\x31\x2c\
\x32\x39\x2e\x34\x35\x2d\x31\x39\x2e\x31\x34\x2c\x34\x34\x2e\x37\
\x32\x2d\x31\x30\x2e\x31\x32\x63\x31\x32\x2e\x32\x32\x2c\x37\x2e\
\x32\x32\x2c\x31\x36\x2c\x32\x32\x2e\x35\x35\x2c\x38\x2e\x34\x36\
\x2c\x33\x34\x2e\x32\x35\x0d\x0a\x09\x09\x63\x2d\x36\x2e\x30\x34\
\x2c\x39\x2e\x33\x35\x2d\x31\x38\x2e\x38\x35\x2c\x31\x32\x2e\x32\
\x35\x2d\x32\x38\x2e\x36\x32\x2c\x36\x2e\x34\x38\x63\x2d\x37\x2e\
\x38\x32\x2d\x34\x2e\x36\x32\x2d\x31\x30\x2e\x32\x34\x2d\x31\x34\
\x2e\x34\x33\x2d\x35\x2e\x34\x31\x2d\x32\x31\x2e\x39\x32\x63\x33\
\x2e\x38\x36\x2d\x35\x2e\x39\x39\x2c\x31\x32\x2e\x30\x36\x2d\x37\
\x2e\x38\x34\x2c\x31\x38\x2e\x33\x32\x2d\x34\x2e\x31\x34\x0d\x0a\
\x09\x09\x63\x35\x2c\x32\x2e\x39\x36\x2c\x36\x2e\x35\x35\x2c\x39\
\x2e\x32\x34\x2c\x33\x2e\x34\x36\x2c\x31\x34\x2e\x30\x33\x63\x2d\
\x32\x2e\x34\x37\x2c\x33\x2e\x38\x33\x2d\x37\x2e\x37\x32\x2c\x35\
\x2e\x30\x32\x2d\x31\x31\x2e\x37\x32\x2c\x32\x2e\x36\x35\x22\x2f\
\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x63\x6c\x61\x73\x73\x3d\
\x22\x73\x74\x32\x22\x20\x64\x3d\x22\x4d\x31\x38\x36\x2e\x38\x37\
\x2c\x34\x33\x63\x32\x39\x2e\x38\x32\x2c\x31\x37\x2e\x36\x33\x2c\
\x33\x39\x2e\x30\x37\x2c\x35\x35\x2e\x30\x36\x2c\x32\x30\x2e\x36\
\x35\x2c\x38\x33\x2e\x36\x31\x63\x2d\x31\x34\x2e\x37\x34\x2c\x32\
\x32\x2e\x38\x34\x2d\x34\x36\x2e\x30\x32\x2c\x32\x39\x2e\x39\x31\
\x2d\x36\x39\x2e\x38\x38\x2c\x31\x35\x2e\x38\x31\x0d\x0a\x09\x09\
\x63\x2d\x31\x39\x2e\x30\x39\x2d\x31\x31\x2e\x32\x38\x2d\x32\x35\
\x2d\x33\x35\x2e\x32\x34\x2d\x31\x33\x2e\x32\x31\x2d\x35\x33\x2e\
\x35\x31\x63\x39\x2e\x34\x33\x2d\x31\x34\x2e\x36\x31\x2c\x32\x39\
\x2e\x34\x35\x2d\x31\x39\x2e\x31\x34\x2c\x34\x34\x2e\x37\x32\x2d\
\x31\x30\x2e\x31\x32\x63\x31\x32\x2e\x32\x32\x2c\x37\x2e\x32\x32\
\x2c\x31\x36\x2c\x32\x32\x2e\x35\x35\x2c\x38\x2e\x34\x36\x2c\x33\
\x34\x2e\x32\x35\x0d\x0a\x09\x09\x63\x2d\x36\x2e\x30\x34\x2c\x39\
\x2e\x33\x35\x2d\x31\x38\x2e\x38\x35\x2c\x31\x32\x2e\x32\x35\x2d\
\x32\x38\x2e\x36\x32\x2c\x36\x2e\x34\x38\x63\x2d\x37\x2e\x38\x32\
\x2d\x34\x2e\x36\x32\x2d\x31\x30\x2e\x32\x34\x2d\x31\x34\x2e\x34\
\x33\x2d\x35\x2e\x34\x31\x2d\x32\x31\x2e\x39\x32\x63\x33\x2e\x38\
\x36\x2d\x35\x2e\x39\x39\x2c\x31\x32\x2e\x30\x36\x2d\x37\x2e\x38\
\x34\x2c\x31\x38\x2e\x33\x32\x2d\x34\x2e\x31\x34\x0d\x0a\x09\x09\
\x63\x35\x2c\x32\x2e\x39\x36\x2c\x36\x2e\x35\x35\x2c\x39\x2e\x32\
\x34\x2c\x33\x2e\x34\x36\x2c\x31\x34\x2e\x30\x33\x63\x2d\x32\x2e\
\x34\x37\x2c\x33\x2e\x38\x33\x2d\x37\x2e\x37\x32\x2c\x35\x2e\x30\
\x32\x2d\x31\x31\x2e\x37\x32\x2c\x32\x2e\x36\x35\x22\x2f\x3e\x0d\
\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x6c\x69\x6e\x65\x20\x63\x6c\x61\
\x73\x73\x3d\x22\x73\x74\x33\x22\x20\x78\x31\x3d\x22\x31\x32\x39\
\x22\x20\x79\x31\x3d\x22\x31\x37\x34\x22\x20\x78\x32\x3d\x22\x31\
\x30\x37\x22\x20\x79\x32\x3d\x22\x32\x31\x39\x22\x2f\x3e\x0d\x0a\
\x3c\x6c\x69\x6e\x65\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x74\x33\
\x22\x20\x78\x31\x3d\x22\x31\x37\x31\x22\x20\x79\x31\x3d\x22\x31\
\x37\x32\x22\x20\x78\x32\x3d\x22\x32\x30\x30\x22\x20\x79\x32\x3d\
\x22\x32\x34\x36\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
\x0a\
"
qt_resource_name = b"\
\x00\x03\
\x00\x00\x70\x37\
\x00\x69\
\x00\x6d\x00\x67\
\x00\x0b\
\x05\x2c\x2e\x07\
\x00\x6c\
\x00\x65\x00\x64\x00\x5f\x00\x6f\x00\x66\x00\x66\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x07\
\x05\xc9\x5a\x27\
\x00\x6f\
\x00\x66\x00\x66\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x06\
\x05\x41\x5a\xc7\
\x00\x4f\
\x00\x4e\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x0a\
\x06\x6f\x0d\x87\
\x00\x6c\
\x00\x65\x00\x64\x00\x5f\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
"
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\x04\x00\x00\x00\x02\
\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xea\
\x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x06\x20\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x0f\xaf\
"
qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x84\xf8\x3a\xc3\xc5\
\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xea\
\x00\x00\x01\x84\xf8\x31\x3f\xc7\
\x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x06\x20\
\x00\x00\x01\x84\xf8\x33\x7b\x76\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x0f\xaf\
\x00\x00\x01\x84\xf8\x3a\x34\x95\
"
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
if qt_version < [5, 8, 0]:
rcc_version = 1
qt_resource_struct = qt_resource_struct_v1
else:
rcc_version = 2
qt_resource_struct = qt_resource_struct_v2
def qInitResources():
QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
def qCleanupResources():
QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
qInitResources()

24
Python/TODO.txt Normal file
View File

@@ -0,0 +1,24 @@
https://www.youtube.com/watch?v=CnMfhhx0GBI&list=PL0lO_mIqDDFXeDkOLHmEsL_HAEhw4-xDX&index=3&ab_channel=%D0%93%D0%BE%D1%88%D0%B0%D0%94%D1%83%D0%B4%D0%B0%D1%80%D1%8C
создаем UI
сохраняем .ui
преобразуем через cmd в .py в каталоге рабочем
pyuic5 -x PyQt_app.ui -o main.py
нужна библиотека для Py: в консоди Visual Studio вбиваем: python -m pip install requests
для компиляции py-программы в .exe:
# Открыть командную строку windows
# Установить pyinstaller
pip install pyinstaller
# Затем перейти в папку с Вашим файлом .py в командной строке (при помощи команды cd)
# Запустить команду pyinstaller не забудьте указать имя вашего скрипта
pyinstaller --onefile main.py
# Всё - у вас в папке появится папка src и там будет .exe файл.

Binary file not shown.

Binary file not shown.

Binary file not shown.

20
Python/config.json Normal file
View File

@@ -0,0 +1,20 @@
{
"uiFileName": "PyQt_app.ui",
"uiPath": "ui/",
"defaultMDNSname": "esp8266",
"defaultPostRoute": "/postvalue",
"defaultGetRoute": "/sensval",
"pressure": "355",
"temperature": [2, 45, 56, 66, 12, 30, 23, 25, 22, 15],
"button1State": "True",
"button2State": "False",
"button3State": "True",
"ambient_light": "1",
"red_light": "1",
"green_light":"1",
"blue_light":"0",
"lightness": "0",
"acceleration_x": "12",
"acceleration_y": "23",
"acceleration_z": "11"
}

1991
Python/res/ON.ai Normal file

File diff suppressed because one or more lines are too long

23
Python/res/ON.svg Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Слой_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 256 256" style="enable-background:new 0 0 256 256;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#999999;stroke-width:26;stroke-linecap:round;stroke-miterlimit:10;}
.st1{fill:none;stroke:#4D4D4D;stroke-width:15;stroke-linecap:round;stroke-miterlimit:10;}
.st2{fill:none;stroke:#999999;stroke-width:36;stroke-linecap:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#666666;stroke-width:21;stroke-linecap:round;stroke-miterlimit:10;}
.st4{fill:#042000;}
.st5{font-family:'MyriadPro-Regular';}
.st6{font-size:117.7872px;}
</style>
<g>
<path class="st0" d="M133,193c0-90.65,48.3-164,108-164"/>
<path class="st1" d="M133,193c0-90.65,48.3-164,108-164"/>
</g>
<g>
<path class="st2" d="M22,235c77.47-57.45,173.63-58.79,215-3"/>
<path class="st3" d="M22,235c77.47-57.45,173.63-58.79,215-3"/>
</g>
<text transform="matrix(0.8002 0 0 1 4.0435 93.5532)" class="st4 st5 st6">ON</text>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

11
Python/res/Res.qrc Normal file
View File

@@ -0,0 +1,11 @@
<RCC>
<qresource prefix="img">
<file>led_off.svg</file>
<file>led_on.svg</file>
<file>off.svg</file>
<file>ON.svg</file>
</qresource>
<qresource prefix="img2">
<file>Svet.png</file>
</qresource>
</RCC>

BIN
Python/res/Svet.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
Python/res/led.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

1924
Python/res/led_off.ai Normal file

File diff suppressed because one or more lines are too long

22
Python/res/led_off.svg Normal file
View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Слой_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 256 256" style="enable-background:new 0 0 256 256;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#2A2E00;stroke-width:16;stroke-linecap:round;stroke-miterlimit:10;}
.st1{fill:none;stroke:#150004;stroke-width:12;stroke-linecap:round;stroke-miterlimit:10;}
.st2{fill:none;stroke:#666666;stroke-width:12;stroke-linecap:round;stroke-miterlimit:10;}
</style>
<g>
<path class="st0" d="M186.87,43c29.82,17.63,39.07,55.06,20.65,83.61c-14.74,22.84-46.02,29.91-69.88,15.81
c-19.09-11.28-25-35.24-13.21-53.51c9.43-14.61,29.45-19.14,44.72-10.12c12.22,7.22,16,22.55,8.46,34.25
c-6.04,9.35-18.85,12.25-28.62,6.48c-7.82-4.62-10.24-14.43-5.41-21.92c3.86-5.99,12.06-7.84,18.32-4.14
c5,2.96,6.55,9.24,3.46,14.03c-2.47,3.83-7.72,5.02-11.72,2.65"/>
<path class="st1" d="M186.87,43c29.82,17.63,39.07,55.06,20.65,83.61c-14.74,22.84-46.02,29.91-69.88,15.81
c-19.09-11.28-25-35.24-13.21-53.51c9.43-14.61,29.45-19.14,44.72-10.12c12.22,7.22,16,22.55,8.46,34.25
c-6.04,9.35-18.85,12.25-28.62,6.48c-7.82-4.62-10.24-14.43-5.41-21.92c3.86-5.99,12.06-7.84,18.32-4.14
c5,2.96,6.55,9.24,3.46,14.03c-2.47,3.83-7.72,5.02-11.72,2.65"/>
</g>
<line class="st2" x1="129" y1="174" x2="107" y2="219"/>
<line class="st2" x1="171" y1="172" x2="200" y2="246"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

1929
Python/res/led_on.ai Normal file

File diff suppressed because one or more lines are too long

29
Python/res/led_on.svg Normal file
View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Слой_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 256 256" style="enable-background:new 0 0 256 256;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#FFFC3E;stroke-width:9;stroke-linecap:round;stroke-miterlimit:10;}
.st1{fill:none;stroke:#707100;stroke-width:16;stroke-linecap:round;stroke-miterlimit:10;}
.st2{fill:none;stroke:#F4FF02;stroke-width:12;stroke-linecap:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#666666;stroke-width:12;stroke-linecap:round;stroke-miterlimit:10;}
</style>
<g>
<path class="st0" d="M18.5,127.5c0-62.46,44.73-113,100-113"/>
</g>
<path class="st0" d="M46,136c0-55.27,29.97-100,67-100"/>
<path class="st0" d="M71.5,146.5c0-45.88,15.21-83,34-83"/>
<path class="st0" d="M90.5,154.5c0-33.16,4.03-60,9-60"/>
<g>
<path class="st1" d="M186.87,43c29.82,17.63,39.07,55.06,20.65,83.61c-14.74,22.84-46.02,29.91-69.88,15.81
c-19.09-11.28-25-35.24-13.21-53.51c9.43-14.61,29.45-19.14,44.72-10.12c12.22,7.22,16,22.55,8.46,34.25
c-6.04,9.35-18.85,12.25-28.62,6.48c-7.82-4.62-10.24-14.43-5.41-21.92c3.86-5.99,12.06-7.84,18.32-4.14
c5,2.96,6.55,9.24,3.46,14.03c-2.47,3.83-7.72,5.02-11.72,2.65"/>
<path class="st2" d="M186.87,43c29.82,17.63,39.07,55.06,20.65,83.61c-14.74,22.84-46.02,29.91-69.88,15.81
c-19.09-11.28-25-35.24-13.21-53.51c9.43-14.61,29.45-19.14,44.72-10.12c12.22,7.22,16,22.55,8.46,34.25
c-6.04,9.35-18.85,12.25-28.62,6.48c-7.82-4.62-10.24-14.43-5.41-21.92c3.86-5.99,12.06-7.84,18.32-4.14
c5,2.96,6.55,9.24,3.46,14.03c-2.47,3.83-7.72,5.02-11.72,2.65"/>
</g>
<line class="st3" x1="129" y1="174" x2="107" y2="219"/>
<line class="st3" x1="171" y1="172" x2="200" y2="246"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

2033
Python/res/off.ai Normal file

File diff suppressed because one or more lines are too long

23
Python/res/off.svg Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Слой_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 256 256" style="enable-background:new 0 0 256 256;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#999999;stroke-width:26;stroke-linecap:round;stroke-miterlimit:10;}
.st1{fill:none;stroke:#4D4D4D;stroke-width:15;stroke-linecap:round;stroke-miterlimit:10;}
.st2{fill:none;stroke:#999999;stroke-width:36;stroke-linecap:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#666666;stroke-width:21;stroke-linecap:round;stroke-miterlimit:10;}
.st4{fill:#330007;}
.st5{font-family:'MyriadPro-Regular';}
.st6{font-size:117.7872px;}
</style>
<g>
<path class="st0" d="M133,193c0-86.78-50.54-157-113-157"/>
<path class="st1" d="M133,193c0-86.78-50.54-157-113-157"/>
</g>
<g>
<path class="st2" d="M22,235c77.47-57.45,173.63-58.79,215-3"/>
<path class="st3" d="M22,235c77.47-57.45,173.63-58.79,215-3"/>
</g>
<text transform="matrix(0.8002 0 0 1 100.0435 93.5532)" class="st4 st5 st6">OFF</text>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

1028
Python/ui/PyQt_app.ui Normal file

File diff suppressed because it is too large Load Diff