프로젝트

일반

사용자정보

개정판 298baf11

ID298baf11e21fb204d83442e48642ba8d4b952b25
상위 eea17edb
하위 9bd2b56e

백흠경이(가) 4년 이상 전에 추가함

upload icon files

Change-Id: I2a923c01c4d33c2412b6c0d18d8c8203d57f7bb3

차이점 보기:

DTI_PID/DTI_PID/CodeTableDialog.py
20 20
import FenceCommand
21 21
from GraphicsBoundingBoxItem import QGraphicsBoundingBoxItem
22 22

  
23

  
23 24
class QCodeTableDialog(QDialog):
24 25
    """ This code table dialog class """
25 26

  
......
41 42
        if not child_dialog:
42 43
            self.ui = CodeTable_UI.Ui_CodeTableDialog()
43 44
            self.ui.setupUi(self)
45
            self.ui.buttonBox.button(QDialogButtonBox.Ok).setIcon(QIcon(':/newPrefix/OK.svg'))
46
            self.ui.buttonBox.button(QDialogButtonBox.Cancel).setIcon(QIcon(':/newPrefix/Remove.svg'))
44 47

  
45 48
            # unused : valve oper code, eq tag, reserved table
46 49
            self.ui.tabWidget.removeTab(8)
DTI_PID/DTI_PID/ConfigurationAreaDialog.py
31 31

  
32 32
        self.ui = Configuration_Area_UI.Ui_AreaDialog()
33 33
        self.ui.setupUi(self)
34
        self.ui.buttonBox.button(QDialogButtonBox.Ok).setIcon(QIcon(':/newPrefix/OK.svg'))
35
        self.ui.buttonBox.button(QDialogButtonBox.Cancel).setIcon(QIcon(':/newPrefix/Remove.svg'))
34 36
        self.ui.tableWidgetEquipmentDescArea.setColumnCount(2)
35 37
        self.ui.tableWidgetEquipmentDescArea.setHorizontalHeaderLabels(['Drawing Name', 'Area'])
36 38
        for index in range(self.ui.tableWidgetEquipmentDescArea.columnCount()):
DTI_PID/DTI_PID/ConfigurationDialog.py
45 45
        try:
46 46
            self.ui = Configuration_UI.Ui_ConfigurationDialog()
47 47
            self.ui.setupUi(self)
48
            self.ui.buttonBox.button(QDialogButtonBox.Ok).setIcon(QIcon(':/newPrefix/OK.svg'))
49
            self.ui.buttonBox.button(QDialogButtonBox.Cancel).setIcon(QIcon(':/newPrefix/Remove.svg'))
48 50
            self.isAccepted = False
49 51
            self.delimiter = '"'
50 52
            self.lineNoDelimiter = '!-!'
DTI_PID/DTI_PID/CustomCodeTablesDialog.py
11 11

  
12 12
import CustomCodeTables_UI
13 13

  
14

  
14 15
class CustomCodeTablesDialog(QDialog):
15 16
    def __init__(self, parent, replace=False):
16 17
        QDialog.__init__(self, parent)
17 18

  
18 19
        self.ui = CustomCodeTables_UI.Ui_CustomCodeTables()
19 20
        self.ui.setupUi(self)
21
        self.ui.buttonBox.button(QDialogButtonBox.Ok).setIcon(QIcon(':/newPrefix/OK.svg'))
22
        self.ui.buttonBox.button(QDialogButtonBox.Cancel).setIcon(QIcon(':/newPrefix/Remove.svg'))
20 23

  
21 24
        self.ui.tableWidgetCustomCodeTable.setSortingEnabled(True)
22 25

  
DTI_PID/DTI_PID/DataExportDialog.py
12 12
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '\\UI')
13 13
import DataExport_UI
14 14

  
15

  
15 16
class QDataExportDialog(QDialog):
16 17
    """ This Data Transfer dialog class """
17 18

  
......
20 21

  
21 22
        self.ui = DataExport_UI.Ui_DataExportDialog()
22 23
        self.ui.setupUi(self)
24
        self.ui.buttonBox.button(QDialogButtonBox.Ok).setIcon(QIcon(':/newPrefix/OK.svg'))
25
        self.ui.buttonBox.button(QDialogButtonBox.Cancel).setIcon(QIcon(':/newPrefix/Remove.svg'))
23 26
        self.ui.pushButtonFolder.clicked.connect(self.on_select_folder)
24 27

  
25 28
        self.ui.treeWidgetDrawingList.setHeaderHidden(False)
DTI_PID/DTI_PID/DataTransferDialog.py
21 21

  
22 22
        self.ui = DataTransfer_UI.Ui_DataTransferDialog()
23 23
        self.ui.setupUi(self)
24
        self.ui.buttonBox.button(QDialogButtonBox.Ok).setIcon(QIcon(':/newPrefix/OK.svg'))
25
        self.ui.buttonBox.button(QDialogButtonBox.Cancel).setIcon(QIcon(':/newPrefix/Remove.svg'))
24 26
        self.ui.lineEditPassword.setEchoMode(QLineEdit.Password)
25 27
        self.ui.pushButtonTestConnection.clicked.connect(self.on_test_connection_clicked)
26 28

  
DTI_PID/DTI_PID/DetectSymbolDialog.py
1 1
# coding: utf-8
2 2
"""
3
    This is fluid code dialog module
3
    This is Symbol Manager dialog module
4 4
"""
5 5
import sys
6 6
import sqlite3
......
29 29
        self.parent = parent
30 30
        self.ui = DetectSymbol_UI.Ui_DetectSymbolDialog()
31 31
        self.ui.setupUi(self)
32
        self.ui.buttonBox.button(QDialogButtonBox.Ok).setIcon(QIcon(':/newPrefix/OK.svg'))
33
        self.ui.buttonBox.button(QDialogButtonBox.Cancel).setIcon(QIcon(':/newPrefix/Remove.svg'))
32 34
        self.ui.pushButtonImportSymbolLibrary.clicked.connect(self.import_symbol_library)
33 35
        self.ui.pushButtonExportSymbolLibrary.clicked.connect(self.export_symbol_library)
34 36

  
DTI_PID/DTI_PID/ImportTextFromCADDialog.py
14 14

  
15 15
import ImportTextFromCAD_UI
16 16

  
17

  
17 18
class QImportTextFromCADDialog(QDialog):
18 19
    def __init__(self, parent):
19 20
        QDialog.__init__(self, parent)
......
23 24

  
24 25
        self.isAccepted = False
25 26
 
26
        self.ui.toolButton.clicked.connect(self.addID2Click)
27
        self.ui.toolButton_2.clicked.connect(self.addCADClick)
27
        self.ui.toolButtonID2.clicked.connect(self.on_add_id2_click)
28
        self.ui.toolButtonCAD.clicked.connect(self.on_add_cad_click)
28 29
        self.ui.pushButtonImport.clicked.connect(self.importTextFromCAD)
29 30
        self.ui.pushButtonClose.clicked.connect(self.close)
30 31

  
31
        self.width = None
32
        self.height = None
33

  
34
    def addID2Click(self):
32
    def on_add_id2_click(self):
33
        """select id2 xml files"""
35 34
        project = AppDocData.instance().getCurrentProject()
36 35

  
37 36
        options = QFileDialog.Options()
38 37
        options |= QFileDialog.DontUseNativeDialog
39
        selectedDir = QFileDialog.getOpenFileNames(self, self.tr('Import', "Select ID2 xml File"), project.getTempPath(), "xml files (*.xml)", options=options)
40
        if selectedDir:
41
            self.ui.lineEditID2.setText(selectedDir[0][0]) if len(selectedDir[0]) == 1 else self.ui.lineEditID2.setText(str(len(selectedDir[0])) + ' files')
42
            self.xmls = selectedDir[0]
43

  
44
    def addCADClick(self):
38
        files = QFileDialog.getOpenFileNames(self, self.tr('Import', "Select ID2 xml File"),
39
                                                   project.getTempPath(), "xml files (*.xml)", options=options)
40
        if files:
41
            self.ui.lineEditID2.setText(files[0]) if len(files) == 1 else \
42
                self.ui.lineEditID2.setText(str(len(files)) + ' files')
43
            self.xmls = files
44

  
45
    def on_add_cad_click(self):
46
        """select autocad files"""
45 47
        project = AppDocData.instance().getCurrentProject()
46
        
47 48

  
48 49
        options = QFileDialog.Options()
49 50
        options |= QFileDialog.DontUseNativeDialog
50
        selectedDir = QFileDialog.getOpenFileNames(self, self.tr('Import', "Select CAD File"), os.path.join(project.getDrawingFilePath(), 'Native'), "dwg files (*.dwg)", options=options)
51
        if selectedDir:
52
            self.ui.lineEditCAD.setText(selectedDir[0][0]) if len(selectedDir[0]) == 1 else self.ui.lineEditCAD.setText(str(len(selectedDir[0])) + ' files')
53
            self.dwgs = selectedDir[0]
51
        files, _ = QFileDialog.getOpenFileNames(self, self.tr('Import', "Select CAD File"),
52
                                                   os.path.join(project.getDrawingFilePath(), 'Native'),
53
                                                   "dwg files (*.dwg)", options=options)
54
        if files:
55
            self.ui.lineEditCAD.setText(files[0]) if len(files) == 1 else \
56
                self.ui.lineEditCAD.setText(str(len(files)) + ' files')
57
            self.dwgs = files
54 58
    
55 59
    def importTextFromCAD(self):
56 60
        project = AppDocData.instance().getCurrentProject()
......
69 73
            dwgPath = dwgPaths[index]
70 74
            if os.path.exists(xmlPath) and os.path.exists(dwgPath) and scale > 0.001:
71 75
                try:
72
                    #filePath = os.path.join(os.path.dirname(os.path.realpath(__file__)) , 'bin64', 'OdReadExMgd.exe')
73
                    filePath = os.path.join('E:\Projects\OdReadExMgd\\bin\\x86\Debug', 'OdReadExMgd.exe')
74
                    command = filePath + ' {} {} {} {}'.format(dwgPath, xOffset, yOffset, scale)
75
                    subprocess.call(command, shell = False)
76
                    executable = os.path.join('E:\Projects\OdReadExMgd\\bin\\x86\Debug', 'OdReadExMgd.exe')
77
                    command = f"'{executable}' {dwgPath} {xOffset} {yOffset} {scale}"
78
                    subprocess.call(command, shell=False)
76 79

  
77
                    textXmlPath = os.path.join(os.path.join(project.getDrawingFilePath(), 'Native'), dwgPath.split('/')[-1].split('.')[0] + '.xml')
80
                    textXmlPath = os.path.join(os.path.join(project.getDrawingFilePath(), 'Native'),
81
                                               dwgPath.split('/')[-1].split('.')[0] + '.xml')
78 82
                    textXml = parse(textXmlPath)
79 83
                    originXml = parse(xmlPath)
80 84
                    textRoot = textXml.getroot()
81 85
                    originRoot = originXml.getroot()
82
                    self.width = int(originRoot.find('SIZE').text.split(',')[0])
83
                    self.height = int(originRoot.find('SIZE').text.split(',')[1])
86
                    width = int(originRoot.find('SIZE').text.split(',')[0])
87
                    height = int(originRoot.find('SIZE').text.split(',')[1])
84 88

  
89
                    """remove texts from id2 xml file"""
85 90
                    textInfo = originRoot.find(xg.TEXT_INFO_LIST_NODE_NAME)
86 91
                    textInfo.clear()
87
                    #for node in textInfo.iter('ATTRIBUTE'):
88
                    #    if node.find('AREA').text == 'None' or node.find('AREA').text == 'Drawing':
89
                    #        textInfo.remove(node)
90 92

  
91 93
                    noteInfo = originRoot.find(xg.NOTE_TEXT_INFO_LIST_NOTE_NAME)
92 94
                    noteInfo.clear()
93
                    #for node in noteInfo.iter('ATTRIBUTE'):
94
                    #    noteInfo.remove(node)
95

  
95 96
                    lineNoInfo = originRoot.find(xg.LINE_NOS_NODE_NAME)
96 97
                    lineNoInfo.clear()
97
                    #for node in lineNoInfo.iter('LINE_NO'):
98
                    #    lineNoInfo.remove(node)
99
                
98
                    """up to here"""
99

  
100
                    """add text from cad file to id xml file"""
100 101
                    for textNode in textRoot.iter('Text'):
101
                        node = self.toXml(textNode)
102
                        node = self.toXml(textNode, width, height)
102 103
                        if node:
103 104
                            textInfo.append(node)
104
                
105
                    originXml.write(xmlPath, encoding="utf-8", xml_declaration=True)
106 105

  
106
                    originXml.write(xmlPath, encoding="utf-8", xml_declaration=True)
107
                    """up to here"""
107 108
                except Exception as ex:
108 109
                    from App import App 
109 110
                    from AppDocData import MessageType
110 111

  
111
                    message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
112
                    message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \
113
                              f"{sys.exc_info()[-1].tb_lineno}"
112 114
                    App.mainWnd().addMessage.emit(MessageType.Error, message)
113 115

  
114 116
        QMessageBox.information(self, self.tr('Information'), self.tr('Importing Success!'), QMessageBox.Close)
115 117
    
116
    def toXml(self, textNode):
118
    def toXml(self, textNode, width: int, height: int):
117 119
        import uuid
118 120

  
119 121
        loc = [float(xy) for xy in textNode.find('Location').text.split(',')]
......
122 124
        text = textNode.find('Value').text
123 125
        angle = round(float(textNode.find('Angle').text), 2)
124 126

  
125
        height = round(float(textNode.find('Height').text))
126
        width = height * len(text) * 2 / 3#round( float(textNode.find('Width').text))
127
        _height = round(float(textNode.find('Height').text))
128
        _width = _height * len(text) * 2 / 3#round( float(textNode.find('Width').text))
127 129

  
128 130
        allowed_error = 0.01
129 131
        if abs(angle - 1.57) < allowed_error:
130
            height, width = width, height
131
            loc[0], loc[1] = loc[0] - width, loc[1] - height + width
132
            _height, _width = _width, _height
133
            loc[0], loc[1] = loc[0] - _width, loc[1] - _height + _width
132 134
        elif abs(angle - 4.71) < allowed_error:
133
            height, width = width, height
134
            loc[0], loc[1] = loc[0] - width, loc[1] + height - width
135
            _height, _width = _width, _height
136
            loc[0], loc[1] = loc[0] - _width, loc[1] + _height - _width
135 137

  
136
        if loc[0] <= 0 or loc[1] <= 0 or width <= 0 or height <= 0: return None
137
        if loc[0] >= self.width or loc[1] >= self.height or loc[0] + width >= self.width or loc[1] + height >= self.height: return None
138
        if loc[0] <= 0 or loc[1] <= 0 or _width <= 0 or _height <= 0:
139
            return None
140
        if loc[0] >= width or loc[1] >= height or loc[0] + width >= width or loc[1] + height >= height:
141
            return None
138 142

  
139 143
        node = Element('ATTRIBUTE')
140 144
        uidNode = Element('UID')
......
165 169
        node.append(angleNode)
166 170

  
167 171
        widthNode = Element('WIDTH')
168
        widthNode.text = str(round(width))
172
        widthNode.text = str(round(_width))
169 173
        node.append(widthNode)
170 174

  
171 175
        heightNode = Element('HEIGHT')
172
        heightNode.text = str(round(height))
176
        heightNode.text = str(round(_height))
173 177
        node.append(heightNode)
174 178

  
175 179
        areaNode = Element('AREA')
......
177 181
        node.append(areaNode)
178 182

  
179 183
        sceneNode = Element('SCENE')
180
        sceneNode.text = '{},{},{},{}'.format(round(loc[0]), round(loc[1]), round(width), round(height))
184
        sceneNode.text = f"{round(loc[0])},{round(loc[1])},{round(_width)},{round(_height)}"
181 185
        node.append(sceneNode)
182 186

  
183 187
        return node
DTI_PID/DTI_PID/ImportTextFromCAD_UI.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
# Form implementation generated from reading ui file './UI/ImportTextFromCAD.ui'
3
# Form implementation generated from reading ui file '.\UI\ImportTextFromCAD.ui'
4 4
#
5
# Created by: PyQt5 UI code generator 5.11.3
5
# Created by: PyQt5 UI code generator 5.13.0
6 6
#
7 7
# WARNING! All changes made in this file will be lost!
8 8

  
9

  
9 10
from PyQt5 import QtCore, QtGui, QtWidgets
10 11

  
12

  
11 13
class Ui_ImportTextFromCADDialog(object):
12 14
    def setupUi(self, ImportTextFromCADDialog):
13 15
        ImportTextFromCADDialog.setObjectName("ImportTextFromCADDialog")
......
21 23
        ImportTextFromCADDialog.setFont(font)
22 24
        self.verticalLayout = QtWidgets.QVBoxLayout(ImportTextFromCADDialog)
23 25
        self.verticalLayout.setObjectName("verticalLayout")
24
        self.formLayout = QtWidgets.QFormLayout()
25
        self.formLayout.setVerticalSpacing(4)
26
        self.formLayout.setObjectName("formLayout")
27
        self.horizontalLayout = QtWidgets.QHBoxLayout()
28
        self.horizontalLayout.setObjectName("horizontalLayout")
26
        self.gridLayout = QtWidgets.QGridLayout()
27
        self.gridLayout.setObjectName("gridLayout")
28
        self.toolButtonID2 = QtWidgets.QToolButton(ImportTextFromCADDialog)
29
        self.toolButtonID2.setText("")
30
        icon = QtGui.QIcon()
31
        icon.addPixmap(QtGui.QPixmap(":/newPrefix/File.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
32
        self.toolButtonID2.setIcon(icon)
33
        self.toolButtonID2.setObjectName("toolButtonID2")
34
        self.gridLayout.addWidget(self.toolButtonID2, 0, 6, 1, 1)
29 35
        self.label = QtWidgets.QLabel(ImportTextFromCADDialog)
30 36
        self.label.setMinimumSize(QtCore.QSize(50, 0))
31 37
        self.label.setObjectName("label")
32
        self.horizontalLayout.addWidget(self.label)
33
        self.lineEditID2 = QtWidgets.QLineEdit(ImportTextFromCADDialog)
34
        self.lineEditID2.setObjectName("lineEditID2")
35
        self.horizontalLayout.addWidget(self.lineEditID2)
36
        self.toolButton = QtWidgets.QToolButton(ImportTextFromCADDialog)
37
        self.toolButton.setObjectName("toolButton")
38
        self.horizontalLayout.addWidget(self.toolButton)
39
        self.formLayout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout)
40
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
41
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
38
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
42 39
        self.label_2 = QtWidgets.QLabel(ImportTextFromCADDialog)
43 40
        self.label_2.setMinimumSize(QtCore.QSize(50, 0))
44 41
        self.label_2.setObjectName("label_2")
45
        self.horizontalLayout_2.addWidget(self.label_2)
42
        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
43
        self.toolButtonCAD = QtWidgets.QToolButton(ImportTextFromCADDialog)
44
        self.toolButtonCAD.setText("")
45
        self.toolButtonCAD.setIcon(icon)
46
        self.toolButtonCAD.setObjectName("toolButtonCAD")
47
        self.gridLayout.addWidget(self.toolButtonCAD, 1, 6, 1, 1)
46 48
        self.lineEditCAD = QtWidgets.QLineEdit(ImportTextFromCADDialog)
47 49
        self.lineEditCAD.setObjectName("lineEditCAD")
48
        self.horizontalLayout_2.addWidget(self.lineEditCAD)
49
        self.toolButton_2 = QtWidgets.QToolButton(ImportTextFromCADDialog)
50
        self.toolButton_2.setObjectName("toolButton_2")
51
        self.horizontalLayout_2.addWidget(self.toolButton_2)
52
        self.formLayout.setLayout(1, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_2)
53
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
54
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
50
        self.gridLayout.addWidget(self.lineEditCAD, 1, 1, 1, 5)
51
        self.pushButtonImport = QtWidgets.QPushButton(ImportTextFromCADDialog)
52
        icon1 = QtGui.QIcon()
53
        icon1.addPixmap(QtGui.QPixmap(":/newPrefix/OK.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
54
        self.pushButtonImport.setIcon(icon1)
55
        self.pushButtonImport.setObjectName("pushButtonImport")
56
        self.gridLayout.addWidget(self.pushButtonImport, 4, 4, 1, 1)
57
        self.lineEditID2 = QtWidgets.QLineEdit(ImportTextFromCADDialog)
58
        self.lineEditID2.setObjectName("lineEditID2")
59
        self.gridLayout.addWidget(self.lineEditID2, 0, 1, 1, 5)
60
        self.pushButtonClose = QtWidgets.QPushButton(ImportTextFromCADDialog)
61
        icon2 = QtGui.QIcon()
62
        icon2.addPixmap(QtGui.QPixmap(":/newPrefix/Remove.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
63
        self.pushButtonClose.setIcon(icon2)
64
        self.pushButtonClose.setObjectName("pushButtonClose")
65
        self.gridLayout.addWidget(self.pushButtonClose, 4, 5, 1, 1)
66
        self.horizontalLayout = QtWidgets.QHBoxLayout()
67
        self.horizontalLayout.setObjectName("horizontalLayout")
55 68
        self.label_3 = QtWidgets.QLabel(ImportTextFromCADDialog)
56 69
        self.label_3.setMaximumSize(QtCore.QSize(60, 16777215))
57 70
        self.label_3.setObjectName("label_3")
58
        self.horizontalLayout_5.addWidget(self.label_3)
71
        self.horizontalLayout.addWidget(self.label_3)
59 72
        self.doubleSpinBoxX = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog)
60 73
        self.doubleSpinBoxX.setMinimum(-100000.0)
61 74
        self.doubleSpinBoxX.setMaximum(100000.0)
62 75
        self.doubleSpinBoxX.setObjectName("doubleSpinBoxX")
63
        self.horizontalLayout_5.addWidget(self.doubleSpinBoxX)
76
        self.horizontalLayout.addWidget(self.doubleSpinBoxX)
64 77
        self.label_5 = QtWidgets.QLabel(ImportTextFromCADDialog)
65 78
        self.label_5.setMaximumSize(QtCore.QSize(60, 16777215))
66 79
        self.label_5.setObjectName("label_5")
67
        self.horizontalLayout_5.addWidget(self.label_5)
80
        self.horizontalLayout.addWidget(self.label_5)
68 81
        self.doubleSpinBoxY = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog)
69 82
        self.doubleSpinBoxY.setMinimum(-100000.0)
70 83
        self.doubleSpinBoxY.setMaximum(100000.0)
71 84
        self.doubleSpinBoxY.setObjectName("doubleSpinBoxY")
72
        self.horizontalLayout_5.addWidget(self.doubleSpinBoxY)
85
        self.horizontalLayout.addWidget(self.doubleSpinBoxY)
73 86
        self.label_4 = QtWidgets.QLabel(ImportTextFromCADDialog)
74 87
        self.label_4.setMaximumSize(QtCore.QSize(60, 16777215))
75 88
        self.label_4.setObjectName("label_4")
76
        self.horizontalLayout_5.addWidget(self.label_4)
89
        self.horizontalLayout.addWidget(self.label_4)
77 90
        self.doubleSpinBoxS = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog)
78 91
        self.doubleSpinBoxS.setDecimals(5)
79 92
        self.doubleSpinBoxS.setMaximum(1000.0)
93
        self.doubleSpinBoxS.setProperty("value", 1.0)
80 94
        self.doubleSpinBoxS.setObjectName("doubleSpinBoxS")
81
        self.horizontalLayout_5.addWidget(self.doubleSpinBoxS)
82
        self.formLayout.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_5)
83
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
84
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
85
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
86
        self.horizontalLayout_3.addItem(spacerItem)
87
        self.pushButtonImport = QtWidgets.QPushButton(ImportTextFromCADDialog)
88
        self.pushButtonImport.setObjectName("pushButtonImport")
89
        self.horizontalLayout_3.addWidget(self.pushButtonImport)
90
        self.pushButtonClose = QtWidgets.QPushButton(ImportTextFromCADDialog)
91
        self.pushButtonClose.setObjectName("pushButtonClose")
92
        self.horizontalLayout_3.addWidget(self.pushButtonClose)
93
        self.formLayout.setLayout(4, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_3)
94
        spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
95
        self.formLayout.setItem(3, QtWidgets.QFormLayout.FieldRole, spacerItem1)
96
        self.verticalLayout.addLayout(self.formLayout)
95
        self.horizontalLayout.addWidget(self.doubleSpinBoxS)
96
        self.gridLayout.addLayout(self.horizontalLayout, 2, 1, 1, 5)
97
        self.verticalLayout.addLayout(self.gridLayout)
97 98
        self.errorLabel = QtWidgets.QLabel(ImportTextFromCADDialog)
98 99
        self.errorLabel.setMaximumSize(QtCore.QSize(16777215, 0))
99 100
        self.errorLabel.setStyleSheet("")
......
109 110
        _translate = QtCore.QCoreApplication.translate
110 111
        ImportTextFromCADDialog.setWindowTitle(_translate("ImportTextFromCADDialog", "Import Text From CAD"))
111 112
        self.label.setText(_translate("ImportTextFromCADDialog", "ID2  : "))
112
        self.toolButton.setText(_translate("ImportTextFromCADDialog", "..."))
113 113
        self.label_2.setText(_translate("ImportTextFromCADDialog", "CAD : "))
114
        self.toolButton_2.setText(_translate("ImportTextFromCADDialog", "..."))
114
        self.pushButtonImport.setText(_translate("ImportTextFromCADDialog", "Import"))
115
        self.pushButtonClose.setText(_translate("ImportTextFromCADDialog", "Close"))
115 116
        self.label_3.setText(_translate("ImportTextFromCADDialog", "X offset : "))
116 117
        self.label_5.setText(_translate("ImportTextFromCADDialog", " Y offset : "))
117 118
        self.label_4.setText(_translate("ImportTextFromCADDialog", " Scale : "))
118
        self.pushButtonImport.setText(_translate("ImportTextFromCADDialog", "Import"))
119
        self.pushButtonClose.setText(_translate("ImportTextFromCADDialog", "Close"))
120

  
121

  
122
if __name__ == "__main__":
123
    import sys
124
    app = QtWidgets.QApplication(sys.argv)
125
    ImportTextFromCADDialog = QtWidgets.QDialog()
126
    ui = Ui_ImportTextFromCADDialog()
127
    ui.setupUi(ImportTextFromCADDialog)
128
    ImportTextFromCADDialog.show()
129
    sys.exit(app.exec_())
130

  
119
import MainWindow_rc
DTI_PID/DTI_PID/ItemDataExport_UI.py
2 2

  
3 3
# Form implementation generated from reading ui file '.\UI\ItemDataExport.ui'
4 4
#
5
# Created by: PyQt5 UI code generator 5.13.1
5
# Created by: PyQt5 UI code generator 5.13.0
6 6
#
7 7
# WARNING! All changes made in this file will be lost!
8 8

  
......
125 125
        self.pushButtonExport.setObjectName("pushButtonExport")
126 126
        self.horizontalLayout.addWidget(self.pushButtonExport)
127 127
        self.pushButtonClose = QtWidgets.QPushButton(ItemDataExportDialog)
128
        icon2 = QtGui.QIcon()
129
        icon2.addPixmap(QtGui.QPixmap(":/newPrefix/Remove.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
130
        self.pushButtonClose.setIcon(icon2)
128 131
        self.pushButtonClose.setObjectName("pushButtonClose")
129 132
        self.horizontalLayout.addWidget(self.pushButtonClose)
130 133
        self.gridLayout_10.addLayout(self.horizontalLayout, 2, 2, 1, 1)
131 134
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
132 135
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
133 136
        self.pushButtonSelectAll = QtWidgets.QPushButton(ItemDataExportDialog)
137
        icon3 = QtGui.QIcon()
138
        icon3.addPixmap(QtGui.QPixmap(":/newPrefix/SelectAll.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
139
        self.pushButtonSelectAll.setIcon(icon3)
134 140
        self.pushButtonSelectAll.setObjectName("pushButtonSelectAll")
135 141
        self.horizontalLayout_3.addWidget(self.pushButtonSelectAll)
136 142
        self.pushButtonUnSelectAll = QtWidgets.QPushButton(ItemDataExportDialog)
143
        icon4 = QtGui.QIcon()
144
        icon4.addPixmap(QtGui.QPixmap(":/newPrefix/UnselectAll.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
145
        self.pushButtonUnSelectAll.setIcon(icon4)
137 146
        self.pushButtonUnSelectAll.setObjectName("pushButtonUnSelectAll")
138 147
        self.horizontalLayout_3.addWidget(self.pushButtonUnSelectAll)
139 148
        self.gridLayout_10.addLayout(self.horizontalLayout_3, 2, 0, 1, 1)
DTI_PID/DTI_PID/ItemDataFormat_UI.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
# Form implementation generated from reading ui file './UI/ItemDataFormat.ui'
3
# Form implementation generated from reading ui file '.\UI\ItemDataFormat.ui'
4 4
#
5
# Created by: PyQt5 UI code generator 5.11.3
5
# Created by: PyQt5 UI code generator 5.13.0
6 6
#
7 7
# WARNING! All changes made in this file will be lost!
8 8

  
9

  
9 10
from PyQt5 import QtCore, QtGui, QtWidgets
10 11

  
12

  
11 13
class Ui_ItemDataFormatDialog(object):
12 14
    def setupUi(self, ItemDataFormatDialog):
13 15
        ItemDataFormatDialog.setObjectName("ItemDataFormatDialog")
......
26 28
        self.horizontalLayout.addItem(spacerItem)
27 29
        self.pushButtonApply = QtWidgets.QPushButton(ItemDataFormatDialog)
28 30
        self.pushButtonApply.setMaximumSize(QtCore.QSize(68, 16777215))
31
        icon = QtGui.QIcon()
32
        icon.addPixmap(QtGui.QPixmap(":/newPrefix/OK.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
33
        self.pushButtonApply.setIcon(icon)
29 34
        self.pushButtonApply.setObjectName("pushButtonApply")
30 35
        self.horizontalLayout.addWidget(self.pushButtonApply)
31 36
        self.pushButtonClose = QtWidgets.QPushButton(ItemDataFormatDialog)
32 37
        self.pushButtonClose.setMaximumSize(QtCore.QSize(68, 16777215))
38
        icon1 = QtGui.QIcon()
39
        icon1.addPixmap(QtGui.QPixmap(":/newPrefix/Remove.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
40
        self.pushButtonClose.setIcon(icon1)
33 41
        self.pushButtonClose.setObjectName("pushButtonClose")
34 42
        self.horizontalLayout.addWidget(self.pushButtonClose)
35 43
        self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 1, 1)
......
358 366
        self.pushButtonNoteColDelete.setText(_translate("ItemDataFormatDialog", "Delete"))
359 367
        self.pushButtonNoteColEdit.setText(_translate("ItemDataFormatDialog", "Edit"))
360 368
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabNoteList), _translate("ItemDataFormatDialog", "Note List"))
361

  
362

  
363
if __name__ == "__main__":
364
    import sys
365
    app = QtWidgets.QApplication(sys.argv)
366
    ItemDataFormatDialog = QtWidgets.QDialog()
367
    ui = Ui_ItemDataFormatDialog()
368
    ui.setupUi(ItemDataFormatDialog)
369
    ItemDataFormatDialog.show()
370
    sys.exit(app.exec_())
371

  
369
import MainWindow_rc
DTI_PID/DTI_PID/MainWindow.py
239 239
        self.actionOCR.triggered.connect(self.onAreaOcr)
240 240
        self.actionGenerateOutput.triggered.connect(self.generateOutput)
241 241
        self.pushButtonCreateSymbol.clicked.connect(self.onCreateSymbolClicked)
242
        self.pushButtonClearLog.clicked.connect(self.onClearLog)
242
        self.toolButtonClearLog.clicked.connect(self.on_clear_log)
243 243
        self.actionHMB_DATA.triggered.connect(self.onHMBData)
244 244
        self.actionItem_Data_List.triggered.connect(self.showItemDataList)
245 245
        self.actionText_Data_List.triggered.connect(self.showTextDataList)
......
265 265
        self.actionVendor.triggered.connect(self.onVendor)
266 266
        self.actionFitWindow.triggered.connect(self.fitWindow)
267 267
        self.actionpdf_to_image.triggered.connect(self.onConvertPDFToImage)
268
        self.actionImport_Text_From_CAD.triggered.connect(self.onImportTextFromCAD)
268
        self.actionImport_Text_From_CAD.triggered.connect(self.on_import_text_from_cad)
269 269
        self.actionSymbol_Thickness_Reinforcement.triggered.connect(self.onSymbolThickness)
270 270
        self.actionHelp.triggered.connect(self.on_help)
271 271
        self.graphicsView.scene().selectionChanged.connect(self.onSelectionChanged)
......
274 274
        self.addMessage.connect(self.onAddMessage)
275 275
        self.actionFindReplaceText.triggered.connect(self.findReplaceTextClicked)
276 276
        self.actionSymbol_Replace_Insert.triggered.connect(self.replaceInsertSymbolClicked)
277
        self.actionGlobal_Validation.triggered.connect(self.validationGlobalClicked)
277
        self.actionGlobal_Validation.triggered.connect(self.on_validation_global_clicked)
278 278
        self.actionEditRecognizeLine.triggered.connect(self.on_recognize_line)
279 279
        self.pushButtonDetectSymbol.clicked.connect(self.show_detect_symbol_dialog)
280 280
        self.actionUndo.triggered.connect(self._scene.undo_stack.undo)
......
284 284
        if configs and 1 == len(configs) and 'advanced' == configs[0].value:
285 285
            self.actionOCR_Training.triggered.connect(self.oCRTrainingClicked)
286 286
            self.actionSymbol_Training.triggered.connect(self.symbolTrainingClicked)
287
            self.actionMake_Label_Data.triggered.connect(self.make_label_data)
287
            self.actionMake_Label_Data.triggered.connect(self.on_make_label_data)
288 288
        else:
289 289
            # self.actionOCR_Training.setVisible(False)
290 290
            # self.actionSymbol_Training.setVisible(False)
......
685 685
        dlgTextItemEdit.show()
686 686
        dlgTextItemEdit.exec_()
687 687

  
688
    def validationGlobalClicked(self):
688
    def on_validation_global_clicked(self):
689 689
        """ global validation dialog """
690 690
        from ValidationGlobalDialog import QValidationGlobalDialog
691 691

  
692
        dlgGValidation = QValidationGlobalDialog(self)
693
        dlgGValidation.show()
694
        dlgGValidation.exec_()
692
        dlg = QValidationGlobalDialog(self)
693
        dlg.show()
694
        dlg.exec_()
695 695

  
696 696
    def replaceInsertSymbolClicked(self):
697 697
        """pop up replace and insert dialog"""
......
701 701

  
702 702
        from ReplaceSymbolDialog import QReplaceSymbolDialog
703 703

  
704
        dlgReplace = QReplaceSymbolDialog(self)
705
        dlgReplace.show()
706
        dlgReplace.exec_()
704
        dlg = QReplaceSymbolDialog(self)
705
        dlg.show()
706
        dlg.exec_()
707 707

  
708 708
    def on_recognize_line(self):
709 709
        """recognize lines in selected area"""
......
922 922
            print('error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
923 923
                                                       sys.exc_info()[-1].tb_lineno))
924 924

  
925
    '''
926
        @brief      clear log
927
        @author     humkyung
928
        @date       2018.08.01
929
    '''
930

  
931
    def onClearLog(self):
925
    def on_clear_log(self):
926
        """clear log"""
932 927
        self.listWidgetLog.clear()
933 928

  
934 929
    '''
......
1020 1015
                                                           sys.exc_info()[-1].tb_lineno)
1021 1016
            self.addMessage.emit(MessageType.Error, message)
1022 1017

  
1023
    def onImportTextFromCAD(self):
1018
    def on_import_text_from_cad(self):
1024 1019
        """ import text from cad """
1025 1020
        try:
1026 1021
            self.onCommandRejected()
......
1028 1023
            dialog.show()
1029 1024
            dialog.exec_()
1030 1025
        except Exception as ex:
1031
            message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
1032
                                                           sys.exc_info()[-1].tb_lineno)
1026
            message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \
1027
                      f"{sys.exc_info()[-1].tb_lineno}"
1033 1028
            self.addMessage.emit(MessageType.Error, message)
1034 1029

  
1035 1030
    def onSymbolThickness(self):
......
1851 1846
            self.onCommandRejected()
1852 1847
            QApplication.restoreOverrideCursor()
1853 1848

  
1854
    def make_label_data(self):
1849
    def on_make_label_data(self):
1855 1850
        """ make label data from symbol info """
1856 1851
        from xml.etree.ElementTree import Element, SubElement, dump, ElementTree, parse
1857 1852

  
DTI_PID/DTI_PID/MainWindow_UI.py
2 2

  
3 3
# Form implementation generated from reading ui file '.\UI\MainWindow.ui'
4 4
#
5
# Created by: PyQt5 UI code generator 5.13.1
5
# Created by: PyQt5 UI code generator 5.13.0
6 6
#
7 7
# WARNING! All changes made in this file will be lost!
8 8

  
......
146 146
        self.scrollArea.setWidgetResizable(True)
147 147
        self.scrollArea.setObjectName("scrollArea")
148 148
        self.scrollAreaWidgetContents = QtWidgets.QWidget()
149
        self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 284, 194))
149
        self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 284, 196))
150 150
        self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
151 151
        self.gridLayout_14 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents)
152 152
        self.gridLayout_14.setObjectName("gridLayout_14")
......
253 253
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
254 254
        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
255 255
        self.horizontalLayout_5.addItem(spacerItem2)
256
        self.pushButtonClearLog = QtWidgets.QPushButton(self.tabTerminal)
257
        self.pushButtonClearLog.setEnabled(True)
258
        self.pushButtonClearLog.setMaximumSize(QtCore.QSize(32, 16777215))
259
        self.pushButtonClearLog.setText("")
256
        self.toolButtonClearLog = QtWidgets.QToolButton(self.tabTerminal)
257
        self.toolButtonClearLog.setText("")
260 258
        icon4 = QtGui.QIcon()
261 259
        icon4.addPixmap(QtGui.QPixmap(":/newPrefix/Remove.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
262
        self.pushButtonClearLog.setIcon(icon4)
263
        self.pushButtonClearLog.setObjectName("pushButtonClearLog")
264
        self.horizontalLayout_5.addWidget(self.pushButtonClearLog, 0, QtCore.Qt.AlignRight)
260
        self.toolButtonClearLog.setIcon(icon4)
261
        self.toolButtonClearLog.setObjectName("toolButtonClearLog")
262
        self.horizontalLayout_5.addWidget(self.toolButtonClearLog)
265 263
        self.verticalLayout_3.addLayout(self.horizontalLayout_5)
266 264
        self.listWidgetLog = QtWidgets.QListWidget(self.tabTerminal)
267 265
        self.listWidgetLog.setObjectName("listWidgetLog")
......
299 297
        self.actionOpen.setObjectName("actionOpen")
300 298
        self.actionClose = QtWidgets.QAction(MainWindow)
301 299
        icon6 = QtGui.QIcon()
302
        icon6.addPixmap(QtGui.QPixmap(":/newPrefix/exit.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
300
        icon6.addPixmap(QtGui.QPixmap(":/newPrefix/Exit.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
303 301
        self.actionClose.setIcon(icon6)
304 302
        font = QtGui.QFont()
305 303
        font.setFamily("맑은 고딕")
......
379 377
        self.actionLineRecognition.setObjectName("actionLineRecognition")
380 378
        self.actionGenerateOutput = QtWidgets.QAction(MainWindow)
381 379
        icon14 = QtGui.QIcon()
382
        icon14.addPixmap(QtGui.QPixmap(":/newPrefix/Convert.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
380
        icon14.addPixmap(QtGui.QPixmap(":/newPrefix/Change.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
383 381
        self.actionGenerateOutput.setIcon(icon14)
384 382
        font = QtGui.QFont()
385 383
        font.setFamily("맑은 고딕")
......
516 514
        self.actionRotate.setObjectName("actionRotate")
517 515
        self.actionFindReplaceText = QtWidgets.QAction(MainWindow)
518 516
        icon25 = QtGui.QIcon()
519
        icon25.addPixmap(QtGui.QPixmap(":/newPrefix/find_replace.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
517
        icon25.addPixmap(QtGui.QPixmap(":/newPrefix/ReplaceText.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
520 518
        self.actionFindReplaceText.setIcon(icon25)
521 519
        self.actionFindReplaceText.setObjectName("actionFindReplaceText")
522 520
        self.actionReplaceText = QtWidgets.QAction(MainWindow)
......
525 523
        self.actionReplaceText.setFont(font)
526 524
        self.actionReplaceText.setObjectName("actionReplaceText")
527 525
        self.actionOCR_Training = QtWidgets.QAction(MainWindow)
528
        icon26 = QtGui.QIcon()
529
        icon26.addPixmap(QtGui.QPixmap(":/newPrefix/OCR.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
530
        self.actionOCR_Training.setIcon(icon26)
526
        self.actionOCR_Training.setIcon(icon12)
531 527
        self.actionOCR_Training.setObjectName("actionOCR_Training")
532 528
        self.actionOCR_Training_Editor = QtWidgets.QAction(MainWindow)
533 529
        self.actionOCR_Training_Editor.setObjectName("actionOCR_Training_Editor")
......
540 536
        self.actionViewInconsistency.setChecked(True)
541 537
        self.actionViewInconsistency.setObjectName("actionViewInconsistency")
542 538
        self.actionText_Data_List = QtWidgets.QAction(MainWindow)
543
        icon27 = QtGui.QIcon()
544
        icon27.addPixmap(QtGui.QPixmap(":/newPrefix/text_data_list.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
545
        self.actionText_Data_List.setIcon(icon27)
539
        icon26 = QtGui.QIcon()
540
        icon26.addPixmap(QtGui.QPixmap(":/newPrefix/text_data_list.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
541
        self.actionText_Data_List.setIcon(icon26)
546 542
        self.actionText_Data_List.setObjectName("actionText_Data_List")
547 543
        self.actionDrawing_Only = QtWidgets.QAction(MainWindow)
548 544
        self.actionDrawing_Only.setCheckable(True)
549 545
        self.actionDrawing_Only.setObjectName("actionDrawing_Only")
550 546
        self.actionVendor = QtWidgets.QAction(MainWindow)
551 547
        self.actionVendor.setCheckable(True)
552
        icon28 = QtGui.QIcon()
553
        icon28.addPixmap(QtGui.QPixmap(":/newPrefix/Vendor.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
554
        icon28.addPixmap(QtGui.QPixmap(":/newPrefix/vendor.png"), QtGui.QIcon.Normal, QtGui.QIcon.On)
555
        icon28.addPixmap(QtGui.QPixmap(":/newPrefix/vendor.png"), QtGui.QIcon.Active, QtGui.QIcon.On)
556
        self.actionVendor.setIcon(icon28)
548
        icon27 = QtGui.QIcon()
549
        icon27.addPixmap(QtGui.QPixmap(":/newPrefix/Vendor.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
550
        icon27.addPixmap(QtGui.QPixmap(":/newPrefix/vendor.png"), QtGui.QIcon.Normal, QtGui.QIcon.On)
551
        icon27.addPixmap(QtGui.QPixmap(":/newPrefix/vendor.png"), QtGui.QIcon.Active, QtGui.QIcon.On)
552
        self.actionVendor.setIcon(icon27)
557 553
        self.actionVendor.setObjectName("actionVendor")
558 554
        self.actionViewVendor_Area = QtWidgets.QAction(MainWindow)
559 555
        self.actionViewVendor_Area.setCheckable(True)
560 556
        self.actionViewVendor_Area.setChecked(True)
561 557
        self.actionViewVendor_Area.setObjectName("actionViewVendor_Area")
562 558
        self.actionImport_Text_From_CAD = QtWidgets.QAction(MainWindow)
559
        icon28 = QtGui.QIcon()
560
        icon28.addPixmap(QtGui.QPixmap(":/newPrefix/AutoCAD.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
561
        self.actionImport_Text_From_CAD.setIcon(icon28)
563 562
        self.actionImport_Text_From_CAD.setObjectName("actionImport_Text_From_CAD")
564 563
        self.actionSpecialItemTypes = QtWidgets.QAction(MainWindow)
564
        icon29 = QtGui.QIcon()
565
        icon29.addPixmap(QtGui.QPixmap(":/newPrefix/Special.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
566
        self.actionSpecialItemTypes.setIcon(icon29)
565 567
        self.actionSpecialItemTypes.setObjectName("actionSpecialItemTypes")
566 568
        self.actionDataTransfer = QtWidgets.QAction(MainWindow)
569
        self.actionDataTransfer.setIcon(icon14)
567 570
        self.actionDataTransfer.setObjectName("actionDataTransfer")
568 571
        self.actionOPCRelation = QtWidgets.QAction(MainWindow)
569
        icon29 = QtGui.QIcon()
570
        icon29.addPixmap(QtGui.QPixmap(":/newPrefix/OPC.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
571
        self.actionOPCRelation.setIcon(icon29)
572
        icon30 = QtGui.QIcon()
573
        icon30.addPixmap(QtGui.QPixmap(":/newPrefix/OPC.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
574
        self.actionOPCRelation.setIcon(icon30)
572 575
        self.actionOPCRelation.setObjectName("actionOPCRelation")
573 576
        self.actionHelp = QtWidgets.QAction(MainWindow)
577
        icon31 = QtGui.QIcon()
578
        icon31.addPixmap(QtGui.QPixmap(":/newPrefix/Help.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
579
        self.actionHelp.setIcon(icon31)
574 580
        self.actionHelp.setObjectName("actionHelp")
575 581
        self.actionDataExport = QtWidgets.QAction(MainWindow)
582
        self.actionDataExport.setIcon(icon14)
576 583
        self.actionDataExport.setObjectName("actionDataExport")
577 584
        self.actionSymbol_Thickness_Reinforcement = QtWidgets.QAction(MainWindow)
585
        icon32 = QtGui.QIcon()
586
        icon32.addPixmap(QtGui.QPixmap(":/newPrefix/Reinforcement.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
587
        self.actionSymbol_Thickness_Reinforcement.setIcon(icon32)
578 588
        self.actionSymbol_Thickness_Reinforcement.setObjectName("actionSymbol_Thickness_Reinforcement")
579 589
        self.actionExportEqpDatasheet = QtWidgets.QAction(MainWindow)
580
        icon30 = QtGui.QIcon()
581
        icon30.addPixmap(QtGui.QPixmap(":/newPrefix/Equipment.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
582
        self.actionExportEqpDatasheet.setIcon(icon30)
590
        icon33 = QtGui.QIcon()
591
        icon33.addPixmap(QtGui.QPixmap(":/newPrefix/Equipment.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
592
        self.actionExportEqpDatasheet.setIcon(icon33)
583 593
        self.actionExportEqpDatasheet.setObjectName("actionExportEqpDatasheet")
584 594
        self.actionSymbol_Training = QtWidgets.QAction(MainWindow)
595
        icon34 = QtGui.QIcon()
596
        icon34.addPixmap(QtGui.QPixmap(":/newPrefix/Valve.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
597
        self.actionSymbol_Training.setIcon(icon34)
585 598
        self.actionSymbol_Training.setObjectName("actionSymbol_Training")
586 599
        self.actionCustom_Code_Table = QtWidgets.QAction(MainWindow)
587 600
        self.actionCustom_Code_Table.setIcon(icon20)
588 601
        self.actionCustom_Code_Table.setObjectName("actionCustom_Code_Table")
589 602
        self.actionExportAsSVG = QtWidgets.QAction(MainWindow)
590
        icon31 = QtGui.QIcon()
591
        icon31.addPixmap(QtGui.QPixmap(":/newPrefix/Svg.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
592
        self.actionExportAsSVG.setIcon(icon31)
603
        icon35 = QtGui.QIcon()
604
        icon35.addPixmap(QtGui.QPixmap(":/newPrefix/Svg.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
605
        self.actionExportAsSVG.setIcon(icon35)
593 606
        self.actionExportAsSVG.setObjectName("actionExportAsSVG")
594 607
        self.actionExportAsXML = QtWidgets.QAction(MainWindow)
595
        icon32 = QtGui.QIcon()
596
        icon32.addPixmap(QtGui.QPixmap(":/newPrefix/Xml.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
597
        self.actionExportAsXML.setIcon(icon32)
608
        icon36 = QtGui.QIcon()
609
        icon36.addPixmap(QtGui.QPixmap(":/newPrefix/Xml.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
610
        self.actionExportAsXML.setIcon(icon36)
598 611
        self.actionExportAsXML.setObjectName("actionExportAsXML")
599 612
        self.actionExportAsImage = QtWidgets.QAction(MainWindow)
600
        icon33 = QtGui.QIcon()
601
        icon33.addPixmap(QtGui.QPixmap(":/newPrefix/Image.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
602
        self.actionExportAsImage.setIcon(icon33)
613
        icon37 = QtGui.QIcon()
614
        icon37.addPixmap(QtGui.QPixmap(":/newPrefix/Image.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
615
        self.actionExportAsImage.setIcon(icon37)
603 616
        self.actionExportAsImage.setObjectName("actionExportAsImage")
604 617
        self.actionEditRecognizeLine = QtWidgets.QAction(MainWindow)
618
        icon38 = QtGui.QIcon()
619
        icon38.addPixmap(QtGui.QPixmap(":/newPrefix/Polyline.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
620
        self.actionEditRecognizeLine.setIcon(icon38)
605 621
        self.actionEditRecognizeLine.setObjectName("actionEditRecognizeLine")
606 622
        self.actionRecognizeTable = QtWidgets.QAction(MainWindow)
607
        icon34 = QtGui.QIcon()
608
        icon34.addPixmap(QtGui.QPixmap(":/newPrefix/table_ocr.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
609
        self.actionRecognizeTable.setIcon(icon34)
623
        icon39 = QtGui.QIcon()
624
        icon39.addPixmap(QtGui.QPixmap(":/newPrefix/table_ocr.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
625
        self.actionRecognizeTable.setIcon(icon39)
610 626
        self.actionRecognizeTable.setObjectName("actionRecognizeTable")
611 627
        self.actionUndo = QtWidgets.QAction(MainWindow)
612
        icon35 = QtGui.QIcon()
613
        icon35.addPixmap(QtGui.QPixmap(":/newPrefix/undo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
614
        self.actionUndo.setIcon(icon35)
628
        icon40 = QtGui.QIcon()
629
        icon40.addPixmap(QtGui.QPixmap(":/newPrefix/undo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
630
        self.actionUndo.setIcon(icon40)
615 631
        self.actionUndo.setObjectName("actionUndo")
616 632
        self.actionRedo = QtWidgets.QAction(MainWindow)
617
        icon36 = QtGui.QIcon()
618
        icon36.addPixmap(QtGui.QPixmap(":/newPrefix/redo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
619
        self.actionRedo.setIcon(icon36)
633
        icon41 = QtGui.QIcon()
634
        icon41.addPixmap(QtGui.QPixmap(":/newPrefix/redo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
635
        self.actionRedo.setIcon(icon41)
620 636
        self.actionRedo.setObjectName("actionRedo")
621 637
        self.actionSymbol_Replace_Insert = QtWidgets.QAction(MainWindow)
638
        self.actionSymbol_Replace_Insert.setIcon(icon34)
622 639
        self.actionSymbol_Replace_Insert.setObjectName("actionSymbol_Replace_Insert")
623 640
        self.actionMake_Label_Data = QtWidgets.QAction(MainWindow)
641
        icon42 = QtGui.QIcon()
642
        icon42.addPixmap(QtGui.QPixmap(":/newPrefix/Training.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
643
        self.actionMake_Label_Data.setIcon(icon42)
624 644
        self.actionMake_Label_Data.setObjectName("actionMake_Label_Data")
625 645
        self.actionRotateCCW = QtWidgets.QAction(MainWindow)
626 646
        self.actionRotateCCW.setEnabled(False)
627
        icon37 = QtGui.QIcon()
628
        icon37.addPixmap(QtGui.QPixmap(":/newPrefix/Rotate_Minus.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
629
        self.actionRotateCCW.setIcon(icon37)
647
        icon43 = QtGui.QIcon()
648
        icon43.addPixmap(QtGui.QPixmap(":/newPrefix/Rotate_Minus.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
649
        self.actionRotateCCW.setIcon(icon43)
630 650
        self.actionRotateCCW.setObjectName("actionRotateCCW")
631 651
        self.actionReplace_Code_Table = QtWidgets.QAction(MainWindow)
632 652
        self.actionReplace_Code_Table.setIcon(icon20)
......
748 768
        self.tabWidgetItemExplorer.setTabText(self.tabWidgetItemExplorer.indexOf(self.tabDrawingList), _translate("MainWindow", "Drawing List"))
749 769
        self.EditToolbar.setWindowTitle(_translate("MainWindow", "Edit Toolbar"))
750 770
        self.dockWidgetOutputWnd.setWindowTitle(_translate("MainWindow", "Output Window"))
751
        self.pushButtonClearLog.setToolTip(_translate("MainWindow", "Clear"))
752 771
        self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tabTerminal), _translate("MainWindow", "Output"))
753 772
        self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tabInconsistency), _translate("MainWindow", "Inconsistency"))
754 773
        self.actionOpen.setText(_translate("MainWindow", "Open"))
......
810 829
        self.actionImport_Text_From_CAD.setText(_translate("MainWindow", "Import Text From CAD"))
811 830
        self.actionSpecialItemTypes.setText(_translate("MainWindow", "Special Item Types"))
812 831
        self.actionSpecialItemTypes.setToolTip(_translate("MainWindow", "Special Item Types"))
813
        self.actionDataTransfer.setText(_translate("MainWindow", "DataTransfer"))
832
        self.actionDataTransfer.setText(_translate("MainWindow", "Data Transfer"))
814 833
        self.actionDataTransfer.setToolTip(_translate("MainWindow", "Data Transfer"))
815 834
        self.actionDataTransfer.setShortcut(_translate("MainWindow", "Ctrl+T, Ctrl+D"))
816 835
        self.actionOPCRelation.setText(_translate("MainWindow", "OPCRelation"))
......
818 837
        self.actionHelp.setText(_translate("MainWindow", "Help"))
819 838
        self.actionHelp.setToolTip(_translate("MainWindow", "Help"))
820 839
        self.actionHelp.setShortcut(_translate("MainWindow", "F1"))
821
        self.actionDataExport.setText(_translate("MainWindow", "DataExport"))
840
        self.actionDataExport.setText(_translate("MainWindow", "Data Export"))
822 841
        self.actionDataExport.setToolTip(_translate("MainWindow", "Data Export"))
823 842
        self.actionDataExport.setShortcut(_translate("MainWindow", "Ctrl+T, Ctrl+E"))
824 843
        self.actionSymbol_Thickness_Reinforcement.setText(_translate("MainWindow", "Symbol Thickness Reinforcement"))
DTI_PID/DTI_PID/MainWindow_rc.py
2 2

  
3 3
# Resource object code
4 4
#
5
# Created by: The Resource Compiler for PyQt5 (Qt v5.13.1)
5
# Created by: The Resource Compiler for PyQt5 (Qt v5.13.0)
6 6
#
7 7
# WARNING! All changes made in this file will be lost!
8 8

  
......
33 33
\xa6\xd3\xaa\xf8\xef\xaa\xeb\xda\x57\x55\xe5\x49\x22\xcc\x9a\xfd\
34 34
\x0c\x00\x24\xab\x6e\xfa\x96\x21\xfc\xb8\x00\x00\x00\x00\x49\x45\
35 35
\x4e\x44\xae\x42\x60\x82\
36
\x00\x00\x14\xe2\
37
\x3c\
38
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
39
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
40
\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\
41
\x6e\x6f\x22\x3f\x3e\x0a\x3c\x73\x76\x67\x0a\x20\x20\x20\x78\x6d\
42
\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\
43
\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\
44
\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x0a\x20\x20\x20\x78\x6d\x6c\
45
\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\
46
\x65\x61\x74\x69\x76\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\
47
\x67\x2f\x6e\x73\x23\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\
48
\x72\x64\x66\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\
49
\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\
50
\x32\x2d\x72\x64\x66\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\
51
\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\
52
\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
53
\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\x78\
54
\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\
55
\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\
56
\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\
57
\x6f\x64\x69\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\
58
\x70\x6f\x64\x69\x2e\x73\x6f\x75\x72\x63\x65\x66\x6f\x72\x67\x65\
59
\x2e\x6e\x65\x74\x2f\x44\x54\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\
60
\x69\x2d\x30\x2e\x64\x74\x64\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\
61
\x73\x3a\x69\x6e\x6b\x73\x63\x61\x70\x65\x3d\x22\x68\x74\x74\x70\
62
\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\
63
\x6f\x72\x67\x2f\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x73\x2f\x69\
64
\x6e\x6b\x73\x63\x61\x70\x65\x22\x0a\x20\x20\x20\x69\x6e\x6b\x73\
65
\x63\x61\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
66
\x30\x20\x28\x34\x30\x33\x35\x61\x34\x66\x62\x34\x39\x2c\x20\x32\
67
\x30\x32\x30\x2d\x30\x35\x2d\x30\x31\x29\x22\x0a\x20\x20\x20\x68\
68
\x65\x69\x67\x68\x74\x3d\x22\x33\x32\x22\x0a\x20\x20\x20\x77\x69\
69
\x64\x74\x68\x3d\x22\x33\x32\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\
70
\x70\x6f\x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x53\x76\
71
\x67\x2e\x73\x76\x67\x22\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\x76\
72
\x67\x33\x36\x22\x0a\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\
73
\x22\x31\x2e\x31\x22\x0a\x20\x20\x20\x76\x69\x65\x77\x42\x6f\x78\
74
\x3d\x22\x30\x20\x30\x20\x33\x31\x2e\x39\x39\x39\x39\x39\x39\x20\
75
\x33\x32\x22\x3e\x0a\x20\x20\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\
76
\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6d\x65\x74\x61\x64\x61\
77
\x74\x61\x34\x32\x22\x3e\x0a\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\
78
\x52\x44\x46\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x63\x63\x3a\x57\
79
\x6f\x72\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\
80
\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\x20\x20\x20\x20\x20\
81
\x20\x20\x20\x3c\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\
82
\x61\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\
83
\x66\x6f\x72\x6d\x61\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\
84
\x3c\x64\x63\x3a\x74\x79\x70\x65\x0a\x20\x20\x20\x20\x20\x20\x20\
85
\x20\x20\x20\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\
86
\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\
87
\x67\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\x79\x70\x65\x2f\x53\x74\
88
\x69\x6c\x6c\x49\x6d\x61\x67\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\
89
\x20\x20\x20\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\x3e\x0a\x20\x20\
90
\x20\x20\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\x3c\
91
\x2f\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x20\x20\x3c\x64\x65\
92
\x66\x73\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x73\
93
\x34\x30\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x73\x6f\x64\x69\x70\x6f\
94
\x64\x69\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x0a\x20\x20\x20\
95
\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\
96
\x6e\x74\x2d\x6c\x61\x79\x65\x72\x3d\x22\x73\x76\x67\x33\x36\x22\
97
\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\
98
\x69\x6e\x64\x6f\x77\x2d\x6d\x61\x78\x69\x6d\x69\x7a\x65\x64\x3d\
99
\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\
100
\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x79\x3d\x22\x2d\x38\x22\x0a\
101
\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\
102
\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x2d\x38\x22\x0a\x20\x20\x20\x20\
103
\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\x3d\x22\x30\x2e\
104
\x33\x39\x31\x37\x36\x33\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x69\
105
\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x33\x31\x2e\x36\
106
\x38\x37\x34\x34\x34\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\
107
\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x36\x2e\x36\x34\x30\
108
\x36\x32\x35\x22\x0a\x20\x20\x20\x20\x20\x73\x68\x6f\x77\x67\x72\
109
\x69\x64\x3d\x22\x66\x61\x6c\x73\x65\x22\x0a\x20\x20\x20\x20\x20\
110
\x69\x64\x3d\x22\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x33\x38\x22\
111
\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\
112
\x69\x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x30\
113
\x31\x37\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\
114
\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\x22\
115
\x31\x39\x32\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\
116
\x61\x70\x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\
117
\x32\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\
118
\x3a\x70\x61\x67\x65\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x22\
119
\x0a\x20\x20\x20\x20\x20\x67\x75\x69\x64\x65\x74\x6f\x6c\x65\x72\
120
\x61\x6e\x63\x65\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x67\
121
\x72\x69\x64\x74\x6f\x6c\x65\x72\x61\x6e\x63\x65\x3d\x22\x31\x30\
122
\x22\x0a\x20\x20\x20\x20\x20\x6f\x62\x6a\x65\x63\x74\x74\x6f\x6c\
123
\x65\x72\x61\x6e\x63\x65\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\
124
\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\
125
\x31\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x63\x6f\
126
\x6c\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\x22\x0a\x20\x20\
127
\x20\x20\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x66\
128
\x66\x66\x66\x66\x66\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x6c\x69\x6e\
129
\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\
130
\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\
131
\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x33\x30\x37\
132
\x36\x38\x38\x32\x36\x2c\x30\x2c\x30\x2c\x30\x2e\x32\x35\x2c\x2d\
133
\x33\x2e\x36\x39\x32\x32\x35\x39\x31\x2c\x30\x29\x22\x0a\x20\x20\
134
\x20\x20\x20\x79\x32\x3d\x22\x36\x22\x0a\x20\x20\x20\x20\x20\x79\
135
\x31\x3d\x22\x31\x32\x32\x22\x0a\x20\x20\x20\x20\x20\x78\x32\x3d\
136
\x22\x32\x30\x2e\x30\x30\x31\x33\x34\x31\x22\x0a\x20\x20\x20\x20\
137
\x20\x78\x31\x3d\x22\x31\x30\x38\x2e\x30\x30\x31\x33\x34\x22\x0a\
138
\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\
139
\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\
140
\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x61\x22\x3e\
141
\x0a\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\
142
\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x32\x22\x0a\x20\x20\x20\
143
\x20\x20\x20\x20\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3d\x22\
144
\x23\x65\x36\x65\x36\x65\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\
145
\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\
146
\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x69\
147
\x64\x3d\x22\x73\x74\x6f\x70\x34\x22\x0a\x20\x20\x20\x20\x20\x20\
148
\x20\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x66\x66\
149
\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\
150
\x3d\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x6c\x69\x6e\x65\
151
\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x3c\x6c\
152
\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\
153
\x20\x20\x20\x79\x32\x3d\x22\x39\x37\x37\x2e\x31\x31\x37\x31\x33\
154
\x22\x0a\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x39\x39\x31\x2e\x36\
155
\x32\x31\x31\x35\x22\x0a\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x31\
156
\x31\x31\x2e\x37\x34\x39\x37\x33\x22\x0a\x20\x20\x20\x20\x20\x78\
157
\x31\x3d\x22\x31\x32\x32\x2e\x37\x35\x30\x30\x38\x22\x0a\x20\x20\
158
\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\
159
\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\
160
\x22\x0a\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\
161
\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\
162
\x28\x32\x2e\x34\x36\x31\x34\x32\x36\x31\x2c\x30\x2c\x30\x2c\x31\
163
\x2e\x39\x39\x39\x34\x34\x34\x39\x2c\x2d\x32\x37\x32\x2e\x36\x30\
164
\x31\x37\x37\x2c\x2d\x31\x39\x35\x32\x2e\x31\x39\x31\x39\x29\x22\
165
\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x62\x22\x3e\x0a\x20\x20\
166
\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x69\
167
\x64\x3d\x22\x73\x74\x6f\x70\x37\x22\x0a\x20\x20\x20\x20\x20\x20\
168
\x20\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x63\x39\
169
\x39\x63\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\
170
\x73\x65\x74\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\
171
\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\
172
\x73\x74\x6f\x70\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\
173
\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x65\x39\x62\x39\x31\
174
\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\
175
\x3d\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x6c\x69\x6e\x65\
176
\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x3c\x70\
177
\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\
178
\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x62\x29\x3b\x73\x74\x72\
179
\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x32\x37\x37\x33\
180
\x34\x38\x22\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\
181
\x68\x31\x32\x22\x0a\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\
182
\x75\x72\x6c\x28\x23\x62\x29\x22\x0a\x20\x20\x20\x20\x20\x64\x3d\
183
\x22\x4d\x20\x31\x2e\x36\x31\x36\x33\x37\x37\x31\x2c\x30\x20\x43\
184
\x20\x31\x2e\x35\x33\x39\x33\x34\x31\x32\x2c\x30\x20\x31\x2e\x34\
185
\x36\x32\x33\x31\x31\x34\x2c\x30\x2e\x30\x30\x32\x37\x38\x39\x20\
186
\x31\x2e\x33\x38\x35\x36\x31\x30\x39\x2c\x30\x2e\x30\x30\x38\x37\
187
\x38\x39\x20\x30\x2e\x32\x35\x37\x32\x39\x33\x34\x32\x2c\x30\x2e\
188
\x31\x38\x33\x37\x33\x39\x20\x2d\x30\x2e\x30\x31\x39\x32\x31\x39\
189
\x38\x37\x2c\x30\x2e\x35\x37\x35\x33\x35\x30\x37\x32\x20\x30\x2e\
190
\x30\x30\x31\x30\x31\x33\x37\x31\x2c\x31\x2e\x35\x30\x38\x33\x30\
191
\x30\x37\x20\x56\x20\x33\x30\x2e\x35\x30\x30\x34\x38\x37\x20\x43\
192
\x20\x30\x2e\x30\x30\x31\x31\x33\x36\x37\x38\x2c\x33\x31\x2e\x35\
193
\x34\x37\x33\x36\x32\x20\x30\x2e\x35\x35\x38\x33\x38\x37\x39\x32\
194
\x2c\x33\x31\x2e\x39\x39\x39\x39\x20\x31\x2e\x38\x34\x37\x31\x34\
195
\x33\x33\x2c\x33\x32\x20\x48\x20\x33\x30\x2e\x31\x35\x33\x38\x36\
196
\x35\x20\x63\x20\x31\x2e\x32\x38\x38\x37\x35\x32\x2c\x2d\x31\x30\
197
\x65\x2d\x35\x20\x31\x2e\x38\x34\x35\x34\x30\x34\x2c\x2d\x30\x2e\
198
\x34\x35\x32\x36\x33\x38\x20\x31\x2e\x38\x34\x35\x35\x32\x37\x2c\
199
\x2d\x31\x2e\x34\x39\x39\x35\x31\x33\x20\x56\x20\x31\x32\x2e\x35\
200
\x34\x35\x38\x39\x39\x20\x63\x20\x30\x2e\x30\x31\x34\x37\x37\x2c\
201
\x2d\x30\x2e\x35\x32\x37\x39\x37\x35\x20\x2d\x30\x2e\x32\x34\x30\
202
\x30\x31\x2c\x2d\x31\x2e\x30\x35\x37\x35\x36\x32\x20\x2d\x30\x2e\
203
\x36\x39\x32\x32\x39\x39\x2c\x2d\x31\x2e\x34\x33\x37\x30\x31\x32\
204
\x20\x4c\x20\x31\x38\x2e\x33\x33\x34\x39\x31\x31\x2c\x30\x2e\x35\
205
\x37\x31\x32\x38\x39\x30\x35\x20\x63\x20\x2d\x30\x2e\x34\x36\x37\
206
\x31\x32\x39\x2c\x2d\x30\x2e\x33\x36\x37\x32\x39\x39\x39\x38\x20\
207
\x2d\x31\x2e\x31\x31\x39\x32\x34\x33\x2c\x2d\x30\x2e\x35\x37\x34\
208
\x37\x32\x34\x39\x38\x20\x2d\x31\x2e\x37\x36\x39\x32\x30\x37\x2c\
209
\x2d\x30\x2e\x35\x36\x32\x35\x20\x48\x20\x31\x2e\x38\x34\x37\x31\
210
\x34\x33\x33\x20\x43\x20\x31\x2e\x37\x37\x30\x34\x37\x30\x34\x2c\
211
\x30\x2e\x30\x30\x32\x37\x38\x39\x30\x35\x20\x31\x2e\x36\x39\x33\
212
\x34\x31\x36\x31\x2c\x30\x20\x31\x2e\x36\x31\x36\x33\x37\x37\x31\
213
\x2c\x30\x20\x5a\x20\x4d\x20\x32\x33\x2e\x31\x35\x37\x35\x36\x35\
214
\x2c\x30\x2e\x30\x30\x33\x34\x31\x38\x20\x63\x20\x2d\x30\x2e\x30\
215
\x36\x34\x36\x31\x2c\x30\x20\x2d\x30\x2e\x31\x32\x39\x30\x36\x39\
216
\x2c\x30\x2e\x30\x30\x34\x32\x30\x37\x20\x2d\x30\x2e\x31\x39\x32\
217
\x39\x30\x35\x2c\x30\x2e\x30\x31\x32\x32\x30\x37\x20\x2d\x30\x2e\
218
\x38\x31\x39\x32\x31\x31\x2c\x30\x2e\x32\x31\x33\x32\x20\x2d\x31\
219
\x2e\x30\x39\x34\x38\x38\x38\x2c\x31\x2e\x32\x32\x36\x31\x33\x36\
220
\x37\x20\x2d\x30\x2e\x34\x36\x33\x33\x33\x36\x2c\x31\x2e\x37\x30\
221
\x32\x36\x33\x36\x37\x20\x6c\x20\x37\x2e\x34\x31\x33\x39\x36\x33\
222
\x2c\x36\x2e\x30\x35\x35\x31\x37\x35\x38\x20\x63\x20\x30\x2e\x36\
223
\x38\x34\x38\x39\x32\x2c\x30\x2e\x35\x33\x30\x34\x32\x35\x20\x32\
224
\x2e\x30\x34\x38\x36\x31\x39\x2c\x30\x2e\x30\x37\x36\x35\x35\x32\
225
\x20\x32\x2e\x30\x38\x34\x37\x30\x35\x2c\x2d\x30\x2e\x36\x39\x33\
226
\x38\x34\x37\x38\x20\x56\x20\x31\x2e\x30\x32\x34\x34\x31\x34\x20\
227
\x43\x20\x33\x31\x2e\x39\x39\x39\x39\x31\x38\x2c\x30\x2e\x34\x39\
228
\x35\x39\x38\x39\x30\x35\x20\x33\x31\x2e\x34\x31\x31\x33\x39\x2c\
229
\x30\x2e\x30\x31\x35\x37\x20\x33\x30\x2e\x37\x36\x34\x34\x33\x36\
230
\x2c\x30\x2e\x30\x31\x35\x36\x32\x35\x20\x48\x20\x32\x33\x2e\x33\
231
\x35\x31\x30\x37\x20\x43\x20\x32\x33\x2e\x32\x38\x37\x32\x2c\x30\
232
\x2e\x30\x30\x37\x36\x32\x35\x20\x32\x33\x2e\x32\x32\x32\x31\x36\
233
\x37\x2c\x30\x2e\x30\x30\x33\x34\x31\x38\x20\x32\x33\x2e\x31\x35\
234
\x37\x35\x36\x35\x2c\x30\x2e\x30\x30\x33\x34\x31\x38\x20\x5a\x22\
235
\x20\x2f\x3e\x0a\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\
236
\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\
237
\x28\x23\x61\x29\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\
238
\x68\x3a\x30\x2e\x32\x37\x37\x33\x34\x38\x22\x0a\x20\x20\x20\x20\
239
\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x31\x34\x22\x0a\x20\x20\x20\
240
\x20\x20\x66\x69\x6c\x6c\x3d\x22\x75\x72\x6c\x28\x23\x61\x29\x22\
241
\x0a\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x2e\x38\x34\x36\
242
\x35\x34\x36\x34\x2c\x31\x2e\x35\x20\x76\x20\x32\x39\x20\x48\x20\
243
\x33\x30\x2e\x31\x35\x33\x38\x37\x31\x20\x76\x20\x2d\x31\x38\x20\
244
\x4c\x20\x31\x36\x2e\x36\x31\x35\x35\x38\x39\x2c\x31\x2e\x35\x20\
245
\x5a\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x65\x6c\x6c\x69\x70\x73\x65\
246
\x0a\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\
247
\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x32\x37\x37\x33\
248
\x34\x38\x22\x0a\x20\x20\x20\x20\x20\x72\x79\x3d\x22\x34\x2e\x32\
249
\x34\x39\x39\x38\x37\x36\x22\x0a\x20\x20\x20\x20\x20\x72\x78\x3d\
250
\x22\x35\x2e\x32\x33\x30\x36\x38\x35\x32\x22\x0a\x20\x20\x20\x20\
251
\x20\x69\x64\x3d\x22\x63\x69\x72\x63\x6c\x65\x31\x36\x22\x0a\x20\
252
\x20\x20\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x36\
253
\x22\x0a\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x66\x30\
254
\x39\x65\x36\x66\x22\x0a\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x31\
255
\x38\x2e\x34\x39\x38\x35\x31\x36\x22\x0a\x20\x20\x20\x20\x20\x63\
256
\x78\x3d\x22\x31\x31\x2e\x39\x39\x38\x38\x39\x34\x22\x20\x2f\x3e\
257
\x0a\x20\x20\x3c\x65\x6c\x6c\x69\x70\x73\x65\x0a\x20\x20\x20\x20\
258
\x20\x72\x79\x3d\x22\x34\x2e\x37\x35\x30\x30\x32\x22\x0a\x20\x20\
259
\x20\x20\x20\x72\x78\x3d\x22\x35\x2e\x38\x34\x36\x31\x30\x31\x38\
260
\x22\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x63\x69\x72\x63\x6c\
261
\x65\x31\x38\x22\x0a\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\
262
\x2d\x77\x69\x64\x74\x68\x3d\x22\x30\x2e\x35\x35\x34\x37\x22\x0a\
263
\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x23\x64\x33\
264
\x36\x31\x31\x38\x22\x0a\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\
265
\x22\x23\x66\x39\x63\x66\x62\x35\x22\x0a\x20\x20\x20\x20\x20\x63\
266
\x79\x3d\x22\x31\x38\x2e\x34\x39\x39\x35\x34\x22\x0a\x20\x20\x20\
267
\x20\x20\x63\x78\x3d\x22\x31\x32\x2e\x30\x30\x31\x36\x38\x32\x22\
268
\x20\x2f\x3e\x0a\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\
269
\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\
270
\x69\x64\x74\x68\x3a\x30\x2e\x32\x37\x37\x33\x34\x38\x22\x0a\x20\
271
\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x32\x30\x22\x0a\
272
\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x31\x63\x39\x39\
273
\x65\x30\x22\x0a\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x35\
274
\x2e\x33\x38\x34\x35\x39\x36\x2c\x32\x34\x2e\x39\x39\x39\x36\x35\
275
\x20\x63\x20\x2d\x30\x2e\x31\x36\x39\x39\x33\x36\x2c\x2d\x32\x2e\
276
\x35\x65\x2d\x35\x20\x2d\x30\x2e\x33\x30\x37\x36\x35\x37\x2c\x2d\
277
\x30\x2e\x31\x31\x31\x39\x32\x35\x20\x2d\x30\x2e\x33\x30\x37\x36\
278
\x38\x38\x2c\x2d\x30\x2e\x32\x35\x20\x76\x20\x2d\x38\x20\x63\x20\
279
\x33\x2e\x31\x65\x2d\x35\x2c\x2d\x30\x2e\x31\x33\x38\x30\x37\x35\
280
\x20\x30\x2e\x31\x33\x37\x37\x35\x32\x2c\x2d\x30\x2e\x32\x34\x39\
281
\x39\x37\x35\x20\x30\x2e\x33\x30\x37\x36\x38\x38\x2c\x2d\x30\x2e\
282
\x32\x35\x20\x68\x20\x39\x2e\x38\x34\x36\x30\x32\x35\x20\x63\x20\
283
\x30\x2e\x31\x36\x39\x39\x33\x36\x2c\x32\x2e\x35\x65\x2d\x35\x20\
284
\x30\x2e\x33\x30\x37\x36\x35\x37\x2c\x30\x2e\x31\x31\x31\x39\x32\
285
\x35\x20\x30\x2e\x33\x30\x37\x36\x38\x38\x2c\x30\x2e\x32\x35\x20\
286
\x76\x20\x38\x20\x63\x20\x2d\x33\x2e\x31\x65\x2d\x35\x2c\x30\x2e\
287
\x31\x33\x38\x30\x37\x35\x20\x2d\x30\x2e\x31\x33\x37\x37\x35\x32\
288
\x2c\x30\x2e\x32\x34\x39\x39\x37\x35\x20\x2d\x30\x2e\x33\x30\x37\
289
\x36\x38\x38\x2c\x30\x2e\x32\x35\x20\x7a\x20\x6d\x20\x30\x2e\x33\
290
\x30\x37\x36\x38\x38\x2c\x2d\x30\x2e\x35\x20\x68\x20\x39\x2e\x32\
291
\x33\x30\x36\x34\x38\x20\x76\x20\x2d\x37\x2e\x35\x20\x68\x20\x2d\
292
\x39\x2e\x32\x33\x30\x36\x34\x38\x20\x7a\x22\x20\x2f\x3e\x0a\x20\
293
\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x73\x74\x79\x6c\
294
\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\
295
\x30\x2e\x32\x37\x37\x33\x34\x38\x22\x0a\x20\x20\x20\x20\x20\x69\
296
\x64\x3d\x22\x70\x61\x74\x68\x32\x32\x22\x0a\x20\x20\x20\x20\x20\
297
\x66\x69\x6c\x6c\x3d\x22\x23\x61\x61\x64\x63\x66\x37\x22\x0a\x20\
298
\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x35\x2e\x36\x39\x32\x32\
299
\x38\x34\x2c\x32\x34\x2e\x34\x39\x39\x36\x35\x20\x68\x20\x39\x2e\
300
\x32\x33\x30\x36\x34\x38\x20\x76\x20\x2d\x37\x2e\x35\x20\x68\x20\
301
\x2d\x39\x2e\x32\x33\x30\x36\x34\x38\x20\x7a\x22\x20\x2f\x3e\x0a\
302
\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x73\x74\x79\
303
\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\
304
\x3a\x30\x2e\x32\x37\x37\x33\x34\x38\x22\x0a\x20\x20\x20\x20\x20\
305
\x69\x64\x3d\x22\x70\x61\x74\x68\x32\x34\x22\x0a\x20\x20\x20\x20\
306
\x20\x66\x69\x6c\x6c\x3d\x22\x23\x65\x39\x62\x39\x31\x33\x22\x0a\
307
\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x33\x2e\x34\x31\x35\
308
\x34\x38\x34\x2c\x31\x38\x2e\x35\x31\x39\x34\x32\x35\x20\x63\x20\
309
\x2d\x30\x2e\x30\x36\x38\x32\x31\x2c\x30\x2e\x30\x31\x39\x37\x35\
310
\x20\x2d\x30\x2e\x31\x32\x36\x38\x39\x31\x2c\x30\x2e\x30\x35\x37\
311
\x38\x33\x20\x2d\x30\x2e\x31\x36\x32\x39\x32\x31\x2c\x30\x2e\x31\
312
\x30\x36\x20\x6c\x20\x2d\x33\x2e\x30\x32\x34\x36\x30\x37\x2c\x34\
313
\x2e\x30\x31\x30\x33\x32\x35\x20\x2d\x33\x2e\x30\x39\x34\x38\x38\
314
\x32\x31\x2c\x33\x2e\x39\x32\x38\x38\x32\x35\x20\x63\x20\x2d\x30\
315
\x2e\x31\x32\x35\x39\x30\x36\x2c\x30\x2e\x31\x34\x37\x31\x35\x20\
316
\x2d\x30\x2e\x30\x34\x39\x35\x36\x39\x2c\x30\x2e\x34\x34\x37\x34\
317
\x35\x20\x30\x2e\x33\x32\x39\x35\x30\x33\x34\x2c\x30\x2e\x34\x33\
318
\x34\x38\x35\x20\x68\x20\x36\x2e\x30\x36\x39\x31\x38\x31\x37\x20\
319
\x35\x2e\x39\x36\x34\x31\x39\x39\x20\x63\x20\x30\x2e\x33\x36\x35\
320
\x35\x30\x32\x2c\x30\x20\x30\x2e\x34\x34\x30\x34\x32\x34\x2c\x2d\
321
\x30\x2e\x33\x32\x31\x35\x35\x20\x30\x2e\x32\x34\x35\x33\x38\x31\
322
\x2c\x2d\x30\x2e\x35\x39\x37\x35\x20\x4c\x20\x31\x36\x2e\x38\x33\
323
\x35\x35\x36\x32\x2c\x32\x32\x2e\x36\x33\x35\x37\x35\x20\x31\x33\
324
\x2e\x38\x31\x30\x39\x35\x35\x2c\x31\x38\x2e\x36\x32\x35\x34\x32\
325
\x35\x20\x63\x20\x2d\x30\x2e\x30\x37\x34\x32\x31\x2c\x2d\x30\x2e\
326
\x31\x30\x31\x34\x32\x35\x20\x2d\x30\x2e\x32\x35\x33\x38\x34\x32\
327
\x2c\x2d\x30\x2e\x31\x34\x39\x35\x37\x35\x20\x2d\x30\x2e\x33\x39\
328
\x35\x34\x37\x31\x2c\x2d\x30\x2e\x31\x30\x36\x20\x7a\x20\x6d\x20\
329
\x30\x2e\x31\x31\x36\x32\x37\x35\x2c\x30\x2e\x37\x32\x34\x33\x35\
330
\x20\x32\x2e\x37\x36\x38\x37\x30\x32\x2c\x33\x2e\x36\x32\x31\x36\
331
\x35\x20\x32\x2e\x37\x36\x38\x36\x37\x31\x2c\x33\x2e\x36\x33\x39\
332
\x33\x32\x35\x20\x48\x20\x31\x33\x2e\x35\x33\x31\x37\x35\x39\x20\
333
\x37\x2e\x39\x39\x34\x34\x31\x36\x34\x20\x6c\x20\x32\x2e\x37\x36\
334
\x38\x36\x34\x30\x36\x2c\x2d\x33\x2e\x36\x33\x39\x33\x32\x35\x20\
335
\x7a\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\
336
\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\
337
\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x32\x37\x37\x33\x34\x38\x22\
338
\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x32\x36\
339
\x22\x0a\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x66\x64\
340
\x65\x39\x61\x39\x22\x0a\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\
341
\x31\x39\x2e\x30\x37\x34\x33\x36\x39\x2c\x32\x36\x2e\x35\x30\x30\
342
\x36\x38\x38\x20\x48\x20\x31\x33\x2e\x35\x33\x35\x39\x36\x38\x20\
343
\x37\x2e\x39\x39\x37\x35\x36\x37\x32\x20\x6c\x20\x32\x2e\x37\x36\
344
\x39\x32\x33\x34\x38\x2c\x2d\x33\x2e\x36\x32\x35\x30\x30\x35\x20\
345
\x32\x2e\x37\x36\x39\x31\x36\x36\x2c\x2d\x33\x2e\x36\x32\x34\x39\
346
\x39\x38\x20\x32\x2e\x37\x36\x39\x31\x36\x37\x2c\x33\x2e\x36\x32\
347
\x34\x39\x39\x38\x20\x7a\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x67\x0a\
348
\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\
349
\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x33\x30\x37\x36\x38\x38\x32\
350
\x36\x2c\x30\x2c\x30\x2c\x30\x2e\x32\x35\x2c\x2d\x33\x2e\x36\x39\
351
\x32\x32\x35\x39\x31\x2c\x30\x29\x22\x0a\x20\x20\x20\x20\x20\x69\
352
\x64\x3d\x22\x67\x33\x34\x22\x0a\x20\x20\x20\x20\x20\x73\x74\x72\
353
\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x22\x73\x71\x75\
354
\x61\x72\x65\x22\x0a\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\
355
\x3d\x22\x23\x34\x33\x63\x33\x33\x30\x22\x0a\x20\x20\x20\x20\x20\
356
\x66\x69\x6c\x6c\x3d\x22\x23\x63\x63\x66\x34\x63\x36\x22\x3e\x0a\
357
\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\
358
\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x32\x38\x22\x0a\x20\x20\x20\
359
\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x37\x33\x2e\x35\x30\x31\x33\
360
\x35\x35\x2c\x31\x30\x34\x2e\x35\x20\x68\x20\x35\x20\x76\x20\x35\
361
\x20\x68\x20\x2d\x35\x20\x7a\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\
362
\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\
363
\x22\x70\x61\x74\x68\x33\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\
364
\x64\x3d\x22\x6d\x20\x33\x33\x2e\x35\x30\x31\x33\x35\x35\x2c\x31\
365
\x30\x34\x2e\x35\x20\x68\x20\x35\x20\x76\x20\x35\x20\x68\x20\x2d\
366
\x35\x20\x7a\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\
367
\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\
368
\x68\x33\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\
369
\x20\x35\x33\x2e\x35\x30\x31\x33\x35\x35\x2c\x37\x32\x2e\x35\x20\
370
\x68\x20\x35\x20\x76\x20\x35\x20\x68\x20\x2d\x35\x20\x7a\x22\x20\
371
\x2f\x3e\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
372
\x0a\
373
\x00\x00\x06\xf5\
374
\x00\
375
\x00\x17\x86\x78\x9c\xd5\x58\x5b\x8f\xdb\x36\x16\x7e\x2f\xd0\xff\
376
\x40\x28\x2f\x0d\x2a\xd1\xbc\x8a\xa4\x33\x4e\x81\xdd\xa0\xe8\x02\
377
\xed\x4b\xb7\xdb\x05\xfa\x26\x4b\xb2\x47\x1d\x5b\x32\x24\xcd\x78\
378
\x26\xbf\x7e\x3f\xea\x66\xcd\xd8\x33\x49\x76\x83\x6e\xe2\x24\xb6\
379
\xce\x85\xd4\x39\xdf\xb9\xf0\x30\x57\x3f\xdc\xef\x77\xe4\x2e\xaf\
380
\x9b\xa2\x2a\x57\x01\xa7\x2c\x20\x79\x99\x56\x59\x51\x6e\x57\xc1\
381
\xbf\x7e\xfb\x31\xb2\x01\x69\xda\xa4\xcc\x92\x5d\x55\xe6\xab\xa0\
382
\xac\x82\x1f\xde\x7e\xfb\xcd\x55\x73\xb7\xfd\xf6\x1b\x42\x08\x96\
383
\x97\xcd\x32\x4b\x57\xc1\x75\xdb\x1e\x96\x8b\xc5\xe1\xb6\xde\xd1\
384
\xaa\xde\x2e\xb2\x74\x91\xef\xf2\x7d\x5e\xb6\xcd\x82\x53\xbe\x08\
385
\x66\xfa\xe9\x49\x3f\xad\xf3\xa4\x2d\xee\xf2\xb4\xda\xef\xab\xb2\
386
\xe9\x96\x96\xcd\xab\xb9\x76\x9d\x6d\x26\xf5\xe3\xf1\x48\x8f\xb2\
387
\xd3\xe2\xce\xb9\x05\x13\x0b\x21\x22\x68\x44\xcd\x43\xd9\x26\xf7\
388
\xd1\x93\xb5\xb0\xf3\xd2\x5a\xc1\x18\x5b\x40\x36\x53\xfd\x48\xb5\
389
\x65\x03\x70\x0e\xf8\x37\xe9\x8f\x0c\xda\x54\xb7\x75\x9a\x6f\xb0\
390
\x30\xa7\x65\xde\x2e\xde\xfd\xf6\x6e\x12\x46\x8c\x66\x6d\x36\xdf\
391
\xa7\x28\x6f\x9a\x34\x39\xe4\x8f\xde\x3b\x32\x7b\x18\x92\x7d\xde\
392
\x1c\x92\x34\x6f\x16\x23\xbf\xdf\xe0\xae\xc8\x8f\x7f\xab\xee\x57\
393
\x01\x23\x8c\x48\x41\x85\x96\x5c\x28\xff\xa4\x19\x1e\x75\xaf\x95\
394
\x97\xc9\x7a\x97\x47\xeb\x24\xbd\xd9\xd6\xd5\x6d\x99\x21\x7a\xf9\
395
\x91\xf8\x35\xda\xff\x1d\xf6\x3a\xc5\x9e\xf7\x9c\x02\x8a\xf0\x59\
396
\xf5\xd4\xe8\xc0\x32\xab\x52\x6f\xd0\x2a\xf8\x15\xb1\xda\x96\x45\
397
\x8b\x55\x74\xc2\xe6\x58\x64\xed\xf5\x2a\x98\x8c\xe9\xb9\xd7\x79\
398
\xb1\xbd\x6e\x3b\x76\x67\xd9\xc0\x1e\xbd\x59\xce\x13\x8f\x7c\xa7\
399
\x98\xd4\x89\xda\xac\x95\x0b\x89\x60\x82\x45\x4c\x47\x8c\xbf\x0e\
400
\xde\xfa\x45\x57\xfb\xbc\x4d\xb2\xa4\x4d\xba\x1d\x7a\x2b\x47\x16\
401
\x67\xbd\x0e\xb4\x90\x09\xcb\x5f\xdf\xfd\x38\x90\x60\xa4\xe9\xf2\
402
\xdf\x55\x7d\x33\xd2\xf8\x78\x95\x64\x5d\xdd\xc2\xae\xe0\xed\x89\
403
\x7f\x95\xa5\x4b\xc4\x6e\x9f\xb4\x6f\x8b\x7d\xb2\xcd\x7d\xdc\xbf\
404
\x47\xa8\xae\x16\x27\xc1\x63\xed\xf6\xe1\x90\xcf\xf6\xed\x77\xae\
405
\xf3\x3e\x0d\x2e\x16\x44\x96\xee\x0b\xbf\x6a\xf1\xcf\xb6\xd8\xed\
406
\xfe\xe1\x5f\x13\x90\xc5\xd3\x6d\x8b\x76\x97\xcf\xb8\x57\x8b\xc1\
407
\x87\xd1\xc7\xc5\xdc\xc9\xab\xc5\x88\x42\x4f\x66\xf9\xa6\x99\x41\
408
\xe4\x49\x3b\xbe\xe3\x6a\x0a\xa6\x8f\x64\xe6\xd3\x68\x54\x1d\x23\
409
\x82\x28\xdf\xfa\x9a\x8d\xea\xaa\x4d\xda\x2e\x36\x43\xa2\x10\x72\
410
\x80\xb9\x69\xb5\xab\xea\x55\xf0\x6a\xd3\x7d\x46\xc9\xba\xaa\xb3\
411
\xbc\x1e\x65\x71\xf7\x79\x2c\xab\x90\xc7\x70\x1d\x91\x1e\xf9\xd5\
412
\xfa\xcf\x3c\x6d\xdb\x6a\x97\xd7\x49\xe9\xf1\xe2\xd3\x8b\xb6\x35\
413
\xb2\xe9\xa2\xe0\xb6\xc8\xf2\x8b\x92\xc9\x01\x6f\xe4\xf4\xb2\xcb\
414
\xe2\xe6\x3a\xc9\xaa\xe3\x2a\x10\x67\xd2\x63\x51\x42\x12\x0d\xc9\
415
\xcc\x9d\x38\xdf\x60\x50\x19\x33\x9b\x33\x6e\x82\x19\xde\x13\xb0\
416
\x93\xff\xcd\x75\x75\xf4\x0e\xad\x82\x4d\xb2\x6b\xf2\xb3\x0d\xdf\
417
\x57\xd5\x7e\x15\x58\xaa\xcf\x24\x29\x2a\x5c\x70\x1a\x1b\x67\x8d\
418
\x39\x97\x3e\x74\x52\x69\x84\x13\xcf\x7a\x72\xef\xbd\xe0\xcf\x8a\
419
\xb1\x05\x1a\xfc\x33\xc2\x7d\x72\x5f\xec\x8b\xf7\x79\x36\x0b\xda\
420
\xe9\xed\xb7\x75\xed\xd3\x64\x97\x3c\xe4\xf5\xd0\x2f\xc6\x2c\x3b\
421
\x24\xed\xf5\xe8\x7c\xfb\xb0\x43\x9c\x36\xc8\xf6\x65\x89\x03\xe4\
422
\x4d\xd3\xd6\xd5\x4d\xbe\x7c\x25\x62\x95\xda\x74\x20\x7b\xc0\x97\
423
\x8c\x3a\x27\x8d\xd6\x23\x77\x57\x94\x39\x5e\xb6\x5c\xdf\xb6\xed\
424
\x9c\xf7\x67\x55\x94\x4b\x14\x52\x5e\x8f\xdc\x8e\xd8\xc1\xda\x76\
425
\xa9\x46\x5e\x96\x20\xce\x75\x9d\x3c\xcc\x5f\x1c\x0d\xa9\xb1\x9c\
426
\x3c\x82\x77\xbf\x10\x6e\xa9\x32\x8e\x09\x1b\xc2\x06\x61\x78\x0c\
427
\x50\xc9\xef\xc4\xc2\x20\x66\xb9\x8d\xc9\x35\x31\x94\x89\xd8\xe8\
428
\x79\xac\xbd\x9f\xd6\xd8\xaf\xd6\xef\xfd\x65\xbf\x07\x4f\x43\x4b\
429
\x59\x2c\x63\xcd\x25\x3f\x73\xda\xb2\x8f\x72\xda\x3f\x9d\xde\xfc\
430
\x22\x06\x9c\xfe\x7f\xc2\xee\x4c\x6c\xb5\x84\xfb\x56\x01\x09\xcb\
431
\x35\x61\x14\xbe\xfb\x2f\x1f\x12\x6d\x91\x06\x12\xc6\x39\xa6\x9d\
432
\x20\x3b\x22\x14\x35\x52\x00\x1f\xa8\xf0\x58\x19\x69\xcf\xc1\x99\
433
\xca\xed\xd4\x6e\x2b\xb4\x2d\xf4\x7d\x0c\x19\x29\x3e\x13\x78\x35\
434
\x3a\xe0\x63\xf0\x46\x43\x7d\x4e\xb8\x37\x1f\x84\x32\xcd\x73\xbb\
435
\x49\x9e\xa6\x93\x15\xc2\xc9\x33\xe8\xba\x19\xe0\x7f\x80\xee\xcd\
436
\x21\x29\x50\xf1\x5d\x3b\x5f\xee\x93\xfa\x06\x87\x37\xe9\x95\x88\
437
\x37\x6f\x0e\x84\x77\xcc\x5a\x35\xb2\x86\x86\x2a\x00\xb7\xb0\x5a\
438
\x4f\xbd\x71\xec\xa2\x8a\x32\xa3\xb9\xb1\x93\xc0\xf7\x2d\x41\x39\
439
\x63\x8e\x4d\x21\x43\xb3\x8a\x29\x17\x4e\x0b\xf1\x69\x35\xf7\x02\
440
\x48\x87\xfb\x4f\xcf\xba\x67\x72\x49\x62\xc4\x89\x85\xe6\xa1\xa6\
441
\x4e\xc7\x9c\x23\x95\x7e\x27\x9c\x0a\x23\x9d\xe3\x17\x4a\x28\xfe\
442
\x02\x7d\xe0\xd4\x98\x58\x3b\x8e\xda\x97\x56\xe2\xd4\xb1\xf0\x80\
443
\x6b\x29\x95\x11\xa1\xef\x15\x4c\x5b\xe5\xce\x7d\xb1\x2f\x67\xfc\
444
\x17\xe9\x29\x43\x60\xb8\x0e\x05\xa3\x8c\x09\xf8\x47\x7e\x22\xd2\
445
\x37\x62\xce\xa5\x25\x77\x24\xd2\x34\x96\xda\x5a\xd3\x0d\xcc\x3f\
446
\x7b\x99\x74\x0c\x71\x0d\x81\x88\xf5\x69\x7c\x1e\x53\xf7\xc1\xca\
447
\xff\xf2\xb0\xd8\xfb\xcc\x8d\xb9\x92\x5a\x87\x9c\x51\xc1\x10\x64\
448
\x05\xff\x05\x8d\x71\xb6\x59\x89\x9e\x17\xa1\x14\x95\xd5\xce\x09\
449
\x85\xae\xc7\x6c\x6c\x2e\xb8\xae\x3e\xe0\xfa\x45\xbf\x2f\x67\xcb\
450
\x79\x7a\x9d\x86\x94\xce\x62\xa1\xa9\x95\x9a\xbb\x38\xe4\x86\x5a\
451
\x24\xac\xe2\x3e\x5e\x3c\xd6\xb1\xeb\x4d\xb4\xa7\x8a\xfb\x24\x70\
452
\x11\x5b\x23\xa5\xfd\x6b\x8e\xa2\xaf\x77\x6e\x40\x00\x14\xba\x30\
453
\x8b\xd1\x14\x70\x4e\x76\x79\xe2\x61\x17\xce\x86\x38\x20\x51\x57\
454
\x48\x92\xa7\x71\x74\x42\x7f\xc6\x36\xf1\x12\x20\x9f\xaf\x36\xbc\
455
\xa3\x8a\x19\xcb\x43\x7f\xb3\x55\x4e\x2b\x3f\x20\x30\xc5\x95\x0d\
456
\x23\x45\x85\x94\xc6\x9e\x4d\x00\x98\xa4\x3e\xd2\xd1\xed\x6c\xe5\
457
\xd6\xea\x69\xa7\x16\xf7\x9b\xc6\xdf\x39\x61\x43\xd2\xd6\xc5\xfd\
458
\x77\x0c\x38\xe3\xf0\xe4\x16\xa3\x9a\xff\x83\x46\xed\xd0\x86\xd0\
459
\xaa\x51\x02\xb1\x31\x0a\x89\x1f\xfb\x89\x44\xa0\x08\x5e\x5f\xca\
460
\xfd\x57\xd9\x66\xad\x55\xfa\xdc\x24\x31\x48\x9f\x1b\xca\xfe\x9b\
461
\x8c\x19\xef\xab\xb3\x70\xce\xaa\x5a\x4e\xe7\xc8\x80\x75\x84\xa6\
462
\x2c\x5d\x6c\x9d\xe9\x1a\x11\xa6\x2c\xcd\xd1\x88\x1c\xd5\x71\x8c\
463
\x39\x0b\x8d\x08\xa7\x92\x36\x8a\x49\xe3\xb1\xb7\x10\x2b\x47\xde\
464
\x9f\x76\xf9\x7c\xde\xfe\x25\x75\xff\x14\x99\xaf\xc5\xfc\x79\xd4\
465
\x7e\x21\x9a\x4a\xde\xa5\xa1\xa3\x86\x6b\xd5\xdd\x9b\x10\x3e\x14\
466
\x48\xec\x38\xce\xcd\x48\x52\x26\x9d\x72\x52\x86\x5c\x61\xfe\x93\
467
\x56\x91\x3f\x82\x4b\xe9\x10\x9d\x2e\x15\x8b\xed\xe3\xfa\x78\x04\
468
\x8d\x61\x36\x5b\x3f\x85\x66\x5e\x83\x5b\xf5\x52\x1d\x19\x0c\xd6\
469
\x5c\xe3\x1c\x1f\xea\x28\x56\xce\xb8\x38\xee\xae\x3b\xca\xfa\xec\
470
\xb3\xd4\x3a\x26\x85\x7b\x7d\x39\x83\x3f\xde\x98\x93\x7b\xe2\x49\
471
\xae\x63\xea\xe0\xa8\x58\x49\x55\x4c\x52\x82\x6c\x8e\xb9\x0c\xfb\
472
\x9f\xee\xb8\xe5\x82\x9f\xc8\x18\x57\x0e\x1c\x6b\xbd\x9a\x08\xfd\
473
\xb7\x1a\x89\x5e\x97\xb0\xb0\xd3\xd2\x44\x61\x68\xf6\x3d\x98\x33\
474
\xe3\xc3\x80\x91\x14\x84\x56\x20\x70\x3e\x72\x1c\x98\x54\x2a\xdf\
475
\xc1\x9c\xbf\xc0\x28\xed\xf0\x2c\xb9\xf3\xf7\x1f\x87\x49\x07\x9d\
476
\xc4\xab\x08\xad\x50\x6d\xd8\x90\xdb\xb0\xfb\x86\x8d\xe8\xad\xc6\
477
\xeb\x39\x63\x30\x1b\x60\xc0\x1d\x9e\x31\xf6\x4a\xdc\x97\x3a\x39\
478
\x7a\x62\xf7\x33\x12\x5e\x0f\xa6\x45\x9d\x8e\x1f\x24\xfa\x2d\xfd\
479
\x8f\x20\x7f\x27\x02\x63\x85\x84\x0b\x1e\x6f\x4b\x04\xf7\xdd\xdb\
480
\x53\xb8\x7c\x7a\x4a\xc3\x69\x50\x1a\xfb\xf9\x5b\x97\x82\x0c\x43\
481
\x58\x6c\x3c\x25\x99\x0c\x0d\x44\x8f\x80\xfc\x83\xa0\x89\xf4\xd8\
482
\xf1\x1e\xa4\xd4\xa7\x9f\x52\x9d\x5c\x01\x33\x87\xd6\xed\x46\xc2\
483
\x4f\x35\x4e\x78\x5c\x3d\x43\x84\xd1\xc0\x1f\x28\xaf\x6b\xbd\xf5\
484
\xbd\x1e\xf1\x6c\xd9\x2b\x49\xd2\x09\x47\x62\xda\x68\xfe\xae\xfe\
485
\x79\xdc\x64\xd8\xe3\xfd\xe3\x0c\xbf\xf2\xff\xc7\x88\xdf\xff\x00\
486
\x73\xa2\xba\xa1\
487
\x00\x00\x0c\x38\
36
\x00\x00\x0b\x13\
488 37
\x3c\
489 38
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
490 39
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
......
517 66
\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x30\x20\x28\x34\x30\x33\x35\
518 67
\x61\x34\x66\x62\x34\x39\x2c\x20\x32\x30\x32\x30\x2d\x30\x35\x2d\
519 68
\x30\x31\x29\x22\x0d\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\
520
\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x54\x68\x65\x6d\x65\
521
\x2e\x73\x76\x67\x22\x0d\x0a\x20\x20\x20\x78\x6d\x6c\x3a\x73\x70\
522
\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x0d\x0a\
523
\x20\x20\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\
524
\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x31\x30\
525
\x30\x20\x31\x30\x30\x22\x0d\x0a\x20\x20\x20\x76\x69\x65\x77\x42\
526
\x6f\x78\x3d\x22\x30\x20\x30\x20\x33\x32\x20\x33\x32\x22\x0d\x0a\
527
\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x32\x22\x0d\x0a\
528
\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x33\x32\x22\x0d\x0a\x20\
529
\x20\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x20\x20\x20\x78\x3d\
530
\x22\x30\x70\x78\x22\x0d\x0a\x20\x20\x20\x69\x64\x3d\x22\x4c\x61\
531
\x79\x65\x72\x5f\x31\x22\x0d\x0a\x20\x20\x20\x76\x65\x72\x73\x69\
532
\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x3e\x3c\x6d\x65\x74\x61\x64\x61\
533
\x74\x61\x0d\x0a\x20\x20\x20\x69\x64\x3d\x22\x6d\x65\x74\x61\x64\
534
\x61\x74\x61\x38\x22\x3e\x3c\x72\x64\x66\x3a\x52\x44\x46\x3e\x3c\
535
\x63\x63\x3a\x57\x6f\x72\x6b\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
536
\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x3c\x64\x63\
537
\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\x76\
538
\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\
539
\x3e\x3c\x64\x63\x3a\x74\x79\x70\x65\x0d\x0a\x20\x20\x20\x20\x20\
540
\x20\x20\x20\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\
541
\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\
542
\x67\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\x79\x70\x65\x2f\x53\x74\
543
\x69\x6c\x6c\x49\x6d\x61\x67\x65\x22\x20\x2f\x3e\x3c\x2f\x63\x63\
544
\x3a\x57\x6f\x72\x6b\x3e\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\
545
\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x3c\x64\x65\x66\x73\
546
\x0d\x0a\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x73\x36\x22\x20\
547
\x2f\x3e\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\
548
\x64\x76\x69\x65\x77\x0d\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
549
\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\x65\x72\
550
\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x0d\x0a\x20\x20\x20\x69\
551
\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x6d\
552
\x61\x78\x69\x6d\x69\x7a\x65\x64\x3d\x22\x31\x22\x0d\x0a\x20\x20\
553
\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\
554
\x2d\x79\x3d\x22\x2d\x38\x22\x0d\x0a\x20\x20\x20\x69\x6e\x6b\x73\
555
\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x31\
556
\x39\x31\x32\x22\x0d\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\
557
\x65\x3a\x63\x79\x3d\x22\x31\x30\x2e\x36\x36\x34\x34\x34\x36\x22\
558
\x0d\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\
559
\x3d\x22\x36\x34\x2e\x38\x36\x38\x36\x31\x34\x22\x0d\x0a\x20\x20\
560
\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\
561
\x38\x2e\x35\x22\x0d\x0a\x20\x20\x20\x73\x68\x6f\x77\x67\x72\x69\
562
\x64\x3d\x22\x66\x61\x6c\x73\x65\x22\x0d\x0a\x20\x20\x20\x69\x64\
563
\x3d\x22\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x34\x22\x0d\x0a\x20\
564
\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\
565
\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x30\x31\x37\x22\x0d\
566
\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\
567
\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x39\x32\x30\x22\
568
\x0d\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\
569
\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\x32\x22\x0d\x0a\x20\x20\
570
\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\x70\
571
\x61\x63\x69\x74\x79\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x67\x75\
572
\x69\x64\x65\x74\x6f\x6c\x65\x72\x61\x6e\x63\x65\x3d\x22\x31\x30\
573
\x22\x0d\x0a\x20\x20\x20\x67\x72\x69\x64\x74\x6f\x6c\x65\x72\x61\
574
\x6e\x63\x65\x3d\x22\x31\x30\x22\x0d\x0a\x20\x20\x20\x6f\x62\x6a\
575
\x65\x63\x74\x74\x6f\x6c\x65\x72\x61\x6e\x63\x65\x3d\x22\x31\x30\
576
\x22\x0d\x0a\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\x61\x63\
577
\x69\x74\x79\x3d\x22\x31\x22\x0d\x0a\x20\x20\x20\x62\x6f\x72\x64\
578
\x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\
579
\x22\x0d\x0a\x20\x20\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\
580
\x22\x23\x66\x66\x66\x66\x66\x66\x22\x20\x2f\x3e\x0d\x0a\x3c\x70\
581
\x61\x74\x68\x0d\x0a\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\
582
\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x33\x32\
583
\x35\x34\x39\x36\x3b\x66\x69\x6c\x6c\x3a\x23\x35\x32\x37\x34\x62\
... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.

내보내기 Unified diff