canns 0.14.0__py3-none-any.whl → 0.14.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- canns/pipeline/asa_gui/__init__.py +12 -4
- canns/pipeline/asa_gui/main_window.py +7 -6
- canns/pipeline/asa_gui/resources/__init__.py +5 -0
- canns/pipeline/asa_gui/resources/logo.ico +0 -0
- canns/pipeline/asa_gui/resources/logo.svg +369 -0
- {canns-0.14.0.dist-info → canns-0.14.1.dist-info}/METADATA +20 -7
- {canns-0.14.0.dist-info → canns-0.14.1.dist-info}/RECORD +10 -8
- {canns-0.14.0.dist-info → canns-0.14.1.dist-info}/WHEEL +0 -0
- {canns-0.14.0.dist-info → canns-0.14.1.dist-info}/entry_points.txt +0 -0
- {canns-0.14.0.dist-info → canns-0.14.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -42,12 +42,20 @@ def main() -> int:
|
|
|
42
42
|
app.setApplicationDisplayName("ASA GUI")
|
|
43
43
|
QGuiApplication.setApplicationDisplayName("ASA GUI")
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
from .resources import resource_path
|
|
46
|
+
|
|
47
|
+
logo_path = resource_path("logo_256.png")
|
|
48
|
+
if not logo_path.exists():
|
|
49
|
+
logo_path = resource_path("logo.svg")
|
|
47
50
|
if not logo_path.exists():
|
|
48
|
-
logo_path =
|
|
51
|
+
logo_path = resource_path("logo.ico")
|
|
49
52
|
if not logo_path.exists():
|
|
50
|
-
|
|
53
|
+
base = Path(__file__).resolve().parents[4] / "images"
|
|
54
|
+
logo_path = base / "logo_256.png"
|
|
55
|
+
if not logo_path.exists():
|
|
56
|
+
logo_path = base / "logo.svg"
|
|
57
|
+
if not logo_path.exists():
|
|
58
|
+
logo_path = base / "logo.ico"
|
|
51
59
|
icon = QIcon(str(logo_path)) if logo_path.exists() else QIcon()
|
|
52
60
|
if not icon.isNull():
|
|
53
61
|
app.setWindowIcon(icon)
|
|
@@ -20,7 +20,7 @@ from PySide6.QtWidgets import (
|
|
|
20
20
|
|
|
21
21
|
from .controllers import AnalysisController, PreprocessController
|
|
22
22
|
from .core import PipelineRunner, StateManager, WorkerManager
|
|
23
|
-
from .resources import load_theme_qss
|
|
23
|
+
from .resources import load_theme_qss, resource_path
|
|
24
24
|
from .views.pages.analysis_page import AnalysisPage
|
|
25
25
|
from .views.pages.preprocess_page import PreprocessPage
|
|
26
26
|
from .views.widgets.popup_combo import PopupComboBox
|
|
@@ -164,12 +164,13 @@ class MainWindow(QMainWindow):
|
|
|
164
164
|
pass
|
|
165
165
|
|
|
166
166
|
def _load_logo_pixmap(self, height: int):
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
base = Path(__file__).resolve().parents[4] / "images"
|
|
170
|
-
logo_path = base / "logo.svg"
|
|
167
|
+
logo_path = resource_path("logo.svg")
|
|
171
168
|
if not logo_path.exists():
|
|
172
|
-
|
|
169
|
+
from pathlib import Path
|
|
170
|
+
|
|
171
|
+
logo_path = Path(__file__).resolve().parents[4] / "images" / "logo.svg"
|
|
172
|
+
if not logo_path.exists():
|
|
173
|
+
return None
|
|
173
174
|
icon = QIcon(str(logo_path))
|
|
174
175
|
if icon.isNull():
|
|
175
176
|
return None
|
|
@@ -14,3 +14,8 @@ def load_theme_qss(theme: str) -> str:
|
|
|
14
14
|
fname = "light.qss"
|
|
15
15
|
path = Path(__file__).parent / fname
|
|
16
16
|
return path.read_text(encoding="utf-8")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def resource_path(name: str) -> Path:
|
|
20
|
+
"""Return the package resource path for a bundled file."""
|
|
21
|
+
return Path(__file__).parent / name
|
|
Binary file
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1099.81 387.71">
|
|
3
|
+
<defs>
|
|
4
|
+
<style>
|
|
5
|
+
.cls-1, .cls-2 {
|
|
6
|
+
fill: none;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.cls-3 {
|
|
10
|
+
fill: #9600bf;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-2, .cls-8, .cls-9, .cls-10, .cls-11, .cls-12, .cls-13, .cls-14, .cls-15, .cls-16, .cls-17, .cls-18, .cls-19 {
|
|
14
|
+
stroke: #fff;
|
|
15
|
+
stroke-linejoin: round;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.cls-4 {
|
|
19
|
+
fill: #009c70;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.cls-5 {
|
|
23
|
+
fill: #350400;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.cls-6 {
|
|
27
|
+
fill: #002faa;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.cls-7 {
|
|
31
|
+
fill: #00ce53;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.cls-8 {
|
|
35
|
+
fill: #9f2800;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.cls-9 {
|
|
39
|
+
fill: #8a0b00;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.cls-20 {
|
|
43
|
+
clip-path: url(#clippath-1);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.cls-10 {
|
|
47
|
+
fill: #1200df;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.cls-11 {
|
|
51
|
+
fill: #9f5000;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.cls-12 {
|
|
55
|
+
fill: #004b94;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.cls-13 {
|
|
59
|
+
fill: #7500b4;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.cls-14 {
|
|
63
|
+
fill: #c97700;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.cls-15 {
|
|
67
|
+
fill: #bc00c9;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.cls-16 {
|
|
71
|
+
fill: #d41a00;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.cls-17 {
|
|
75
|
+
fill: #2a72ff;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.cls-18 {
|
|
79
|
+
fill: #ff7e1f;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.cls-21 {
|
|
83
|
+
clip-path: url(#clippath);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.cls-19 {
|
|
87
|
+
fill: #00c570;
|
|
88
|
+
}
|
|
89
|
+
</style>
|
|
90
|
+
<clipPath id="clippath">
|
|
91
|
+
<polygon class="cls-1" points="799.99 32.33 799.99 32.41 750.01 59.66 700.02 32.36 700.02 32.33 750.01 5 750.01 5 799.99 32.33"/>
|
|
92
|
+
</clipPath>
|
|
93
|
+
<clipPath id="clippath-1">
|
|
94
|
+
<rect class="cls-1" x="695.02" width="109.97" height="64.66"/>
|
|
95
|
+
</clipPath>
|
|
96
|
+
</defs>
|
|
97
|
+
<g id="C">
|
|
98
|
+
<polygon class="cls-10" points="200.56 31.32 200.56 31.4 150.58 58.65 100.59 31.35 100.59 31.32 150.58 3.99 150.58 3.99 200.56 31.32"/>
|
|
99
|
+
<polygon class="cls-17" points="200.44 31.54 200.44 86.13 150.45 113.46 150.45 58.8 200.44 31.54"/>
|
|
100
|
+
<polygon class="cls-17" points="150.45 58.8 150.45 113.46 100.47 86.13 100.47 31.49 150.45 58.8"/>
|
|
101
|
+
<polygon class="cls-17" points="200.44 304.76 200.44 359.42 150.45 332.09 150.45 277.45 200.44 304.76"/>
|
|
102
|
+
<polygon class="cls-10" points="250.42 58.75 250.42 58.82 200.44 86.08 150.45 58.77 150.45 58.75 200.44 31.42 200.44 31.41 250.42 58.75"/>
|
|
103
|
+
<polygon class="cls-12" points="200.44 86.08 200.44 140.74 150.45 113.41 150.45 58.77 200.44 86.08"/>
|
|
104
|
+
<polygon class="cls-10" points="150.45 58.72 150.45 58.8 100.47 86.05 50.48 58.75 50.48 58.72 100.47 31.39 100.47 31.39 150.45 58.72"/>
|
|
105
|
+
<polygon class="cls-6" points="150.45 58.8 150.45 113.38 100.47 140.72 100.47 86.05 150.45 58.8"/>
|
|
106
|
+
<polygon class="cls-6" points="250.42 58.8 250.42 113.38 200.43 140.72 200.43 86.05 250.42 58.8"/>
|
|
107
|
+
<polygon class="cls-6" points="100.47 86.05 100.47 140.72 50.48 113.38 50.48 58.75 100.47 86.05"/>
|
|
108
|
+
<polygon class="cls-12" points="100.47 250.04 100.47 250.12 50.48 277.37 .5 250.07 .5 250.04 50.48 222.71 50.49 222.71 100.47 250.04"/>
|
|
109
|
+
<polygon class="cls-17" points="100.47 250.12 100.47 304.71 50.48 332.04 50.48 277.37 100.47 250.12"/>
|
|
110
|
+
<polygon class="cls-12" points="50.48 277.37 50.48 332.04 .5 304.7 .5 250.07 50.48 277.37"/>
|
|
111
|
+
<polygon class="cls-6" points="100.47 195.38 100.47 195.46 50.48 222.71 .5 195.41 .5 195.38 50.48 168.05 50.49 168.05 100.47 195.38"/>
|
|
112
|
+
<polygon class="cls-6" points="100.47 195.46 100.47 250.04 50.48 277.37 50.48 222.71 100.47 195.46"/>
|
|
113
|
+
<polygon class="cls-12" points="50.48 222.71 50.48 277.37 .5 250.04 .5 195.41 50.48 222.71"/>
|
|
114
|
+
<polygon class="cls-6" points="100.47 140.72 100.47 140.79 50.48 168.05 .5 140.74 .5 140.71 50.48 113.39 50.49 113.38 100.47 140.72"/>
|
|
115
|
+
<polygon class="cls-6" points="100.47 140.79 100.47 195.38 50.48 222.71 50.48 168.05 100.47 140.79"/>
|
|
116
|
+
<polygon class="cls-12" points="50.48 168.05 50.48 222.71 .5 195.38 .5 140.74 50.48 168.05"/>
|
|
117
|
+
<polygon class="cls-10" points="100.47 86.05 100.47 86.13 50.48 113.38 .5 86.08 .5 86.05 50.48 58.72 50.49 58.72 100.47 86.05"/>
|
|
118
|
+
<polygon class="cls-6" points="100.47 86.13 100.47 140.72 50.48 168.05 50.48 113.38 100.47 86.13"/>
|
|
119
|
+
<polygon class="cls-12" points="50.48 113.38 50.48 168.05 .5 140.71 .5 86.08 50.48 113.38"/>
|
|
120
|
+
<polygon class="cls-10" points="150.45 277.38 150.45 277.45 100.47 304.71 50.48 277.4 50.48 277.37 100.47 250.05 100.47 250.04 150.45 277.38"/>
|
|
121
|
+
<polygon class="cls-17" points="150.45 277.45 150.45 332.04 100.47 359.37 100.47 304.71 150.45 277.45"/>
|
|
122
|
+
<polygon class="cls-12" points="100.47 304.71 100.47 359.37 50.48 332.04 50.48 277.4 100.47 304.71"/>
|
|
123
|
+
<polygon class="cls-10" points="200.44 304.68 200.44 304.76 150.45 332.01 100.47 304.71 100.47 304.68 150.45 277.35 150.45 277.35 200.44 304.68"/>
|
|
124
|
+
<polygon class="cls-6" points="200.44 304.76 200.44 359.34 150.45 386.68 150.45 332.01 200.44 304.76"/>
|
|
125
|
+
<polygon class="cls-12" points="150.45 332.01 150.45 386.68 100.47 359.34 100.47 304.71 150.45 332.01"/>
|
|
126
|
+
</g>
|
|
127
|
+
<g id="A">
|
|
128
|
+
<g id="basic_A">
|
|
129
|
+
<polygon class="cls-4" points="450.34 222.79 450.34 277.38 425.6 290.91 425.59 290.91 403.98 302.73 400.36 304.71 400.35 304.71 400.35 250.04 400.36 250.04 400.6 249.9 425.59 236.28 425.6 236.28 450.34 222.79"/>
|
|
130
|
+
<polygon class="cls-7" points="450.34 222.71 450.34 222.79 400.36 250.04 350.37 222.74 350.37 222.71 400.36 195.38 400.36 195.38 450.34 222.71"/>
|
|
131
|
+
<polygon class="cls-19" points="400.36 250.04 400.36 304.71 350.37 277.37 350.37 222.74 400.36 250.04"/>
|
|
132
|
+
</g>
|
|
133
|
+
<g id="basic_A-2" data-name="basic_A">
|
|
134
|
+
<polygon class="cls-4" points="350.38 222.99 350.38 277.58 325.64 291.11 325.63 291.11 304.02 302.93 300.4 304.91 300.39 304.91 300.39 250.24 300.4 250.24 300.64 250.1 325.63 236.48 325.64 236.48 350.38 222.99"/>
|
|
135
|
+
<polygon class="cls-7" points="350.38 222.92 350.38 222.99 300.4 250.25 250.41 222.94 250.41 222.91 300.4 195.59 300.4 195.58 350.38 222.92"/>
|
|
136
|
+
<polygon class="cls-19" points="300.4 250.25 300.4 304.91 250.41 277.58 250.41 222.94 300.4 250.25"/>
|
|
137
|
+
</g>
|
|
138
|
+
<g id="basic_A-3" data-name="basic_A">
|
|
139
|
+
<polygon class="cls-4" points="300.4 195.58 300.4 250.17 275.66 263.7 275.65 263.7 254.04 275.52 250.42 277.5 250.41 277.5 250.41 222.83 250.42 222.83 250.66 222.69 275.65 209.07 275.66 209.07 300.4 195.58"/>
|
|
140
|
+
<polygon class="cls-7" points="300.4 195.51 300.4 195.58 250.41 222.84 200.43 195.53 200.43 195.5 250.41 168.18 250.42 168.17 300.4 195.51"/>
|
|
141
|
+
<polygon class="cls-19" points="250.41 222.84 250.41 277.5 200.43 250.17 200.43 195.53 250.41 222.84"/>
|
|
142
|
+
</g>
|
|
143
|
+
<g id="basic_A-4" data-name="basic_A">
|
|
144
|
+
<polygon class="cls-4" points="350.38 114.21 350.38 168.8 325.64 182.33 325.63 182.33 304.02 194.15 300.4 196.13 300.39 196.13 300.39 141.46 300.4 141.46 300.64 141.32 325.63 127.7 325.64 127.7 350.38 114.21"/>
|
|
145
|
+
<polygon class="cls-7" points="350.37 114.14 350.37 114.22 300.39 141.47 250.41 114.16 250.41 114.14 300.39 86.81 300.39 86.81 350.37 114.14"/>
|
|
146
|
+
<polygon class="cls-19" points="300.39 141.47 300.39 196.13 250.41 168.8 250.41 114.16 300.39 141.47"/>
|
|
147
|
+
</g>
|
|
148
|
+
<g id="basic_A-5" data-name="basic_A">
|
|
149
|
+
<polygon class="cls-4" points="450.36 114.21 450.36 168.8 425.62 182.33 425.61 182.33 404 194.15 400.38 196.13 400.37 196.13 400.37 141.46 400.38 141.46 400.62 141.32 425.61 127.7 425.62 127.7 450.36 114.21"/>
|
|
150
|
+
<polygon class="cls-7" points="450.36 114.14 450.36 114.21 400.38 141.47 350.39 114.16 350.39 114.14 400.38 86.81 400.38 86.8 450.36 114.14"/>
|
|
151
|
+
<polygon class="cls-19" points="400.38 141.47 400.38 196.13 350.39 168.8 350.39 114.16 400.38 141.47"/>
|
|
152
|
+
</g>
|
|
153
|
+
<g id="basic_A-6" data-name="basic_A">
|
|
154
|
+
<polygon class="cls-4" points="400.36 32.29 400.36 86.88 375.62 100.41 375.61 100.41 354 112.23 350.38 114.21 350.37 114.21 350.37 59.54 350.38 59.54 350.62 59.4 375.61 45.78 375.62 45.78 400.36 32.29"/>
|
|
155
|
+
<polygon class="cls-7" points="400.36 32.22 400.36 32.3 350.37 59.55 300.39 32.24 300.39 32.22 350.37 4.89 350.38 4.89 400.36 32.22"/>
|
|
156
|
+
<polygon class="cls-19" points="350.37 59.55 350.37 114.21 300.39 86.88 300.39 32.24 350.37 59.55"/>
|
|
157
|
+
</g>
|
|
158
|
+
<g id="basic_A-7" data-name="basic_A">
|
|
159
|
+
<polygon class="cls-4" points="550.33 277.42 550.33 332.01 525.59 345.54 525.58 345.54 503.97 357.36 500.35 359.34 500.34 359.34 500.34 304.67 500.35 304.67 500.59 304.53 525.58 290.91 525.59 290.91 550.33 277.42"/>
|
|
160
|
+
<polygon class="cls-7" points="550.33 277.35 550.33 277.42 500.35 304.68 450.36 277.37 450.36 277.35 500.35 250.02 500.35 250.02 550.33 277.35"/>
|
|
161
|
+
<polygon class="cls-19" points="500.35 304.68 500.35 359.34 450.36 332.01 450.36 277.37 500.35 304.68"/>
|
|
162
|
+
</g>
|
|
163
|
+
<g id="basic_A-8" data-name="basic_A">
|
|
164
|
+
<polygon class="cls-4" points="500.34 195.5 500.34 250.09 475.6 263.62 475.59 263.62 453.98 275.44 450.36 277.42 450.35 277.42 450.35 222.75 450.36 222.75 450.6 222.61 475.59 208.99 475.6 208.99 500.34 195.5"/>
|
|
165
|
+
<polygon class="cls-7" points="500.34 195.43 500.34 195.51 450.35 222.76 400.37 195.45 400.37 195.43 450.35 168.1 450.36 168.1 500.34 195.43"/>
|
|
166
|
+
<polygon class="cls-19" points="450.35 222.76 450.35 277.42 400.37 250.09 400.37 195.45 450.35 222.76"/>
|
|
167
|
+
</g>
|
|
168
|
+
<polygon class="cls-7" points="250.41 277.43 250.41 277.51 250.03 277.72 200.43 304.76 150.45 277.46 150.45 277.43 150.52 277.39 200.43 250.1 200.89 250.35 250.41 277.43"/>
|
|
169
|
+
<polygon class="cls-4" points="250.42 277.5 250.42 332.09 200.44 359.42 200.44 304.76 250.42 277.5"/>
|
|
170
|
+
</g>
|
|
171
|
+
<g id="s">
|
|
172
|
+
<g id="basic_s">
|
|
173
|
+
<polygon class="cls-8" points="1099.13 305.42 1099.13 305.46 1074.13 319.08 1049.14 305.43 1049.14 305.42 1074.13 291.75 1074.14 291.75 1099.13 305.42"/>
|
|
174
|
+
<polygon class="cls-5" points="1099.13 278.12 1099.13 305.41 1086.76 312.18 1086.75 312.18 1075.95 318.09 1074.14 319.08 1074.13 319.08 1074.13 291.74 1074.14 291.74 1074.26 291.67 1086.75 284.86 1086.76 284.86 1099.13 278.12"/>
|
|
175
|
+
<polygon class="cls-16" points="1099.13 278.08 1099.13 278.12 1074.13 291.74 1049.14 278.09 1049.14 278.08 1074.13 264.41 1074.14 264.41 1099.13 278.08"/>
|
|
176
|
+
<polygon class="cls-9" points="1074.13 291.74 1074.13 319.08 1049.14 305.41 1049.14 278.09 1074.13 291.74"/>
|
|
177
|
+
</g>
|
|
178
|
+
<g id="basic_s-2" data-name="basic_s">
|
|
179
|
+
<polygon class="cls-8" points="1074.14 319.09 1074.14 319.12 1049.14 332.75 1024.15 319.1 1024.15 319.08 1049.14 305.42 1049.14 305.42 1074.14 319.09"/>
|
|
180
|
+
<polygon class="cls-5" points="1074.14 291.79 1074.14 319.08 1061.77 325.85 1061.76 325.85 1050.96 331.76 1049.15 332.75 1049.14 332.75 1049.14 305.41 1049.15 305.41 1049.27 305.34 1061.76 298.53 1061.77 298.53 1074.14 291.79"/>
|
|
181
|
+
<polygon class="cls-16" points="1074.14 291.75 1074.14 291.79 1049.14 305.41 1024.15 291.76 1024.15 291.75 1049.14 278.08 1049.15 278.08 1074.14 291.75"/>
|
|
182
|
+
<polygon class="cls-9" points="1049.14 305.41 1049.14 332.74 1024.15 319.08 1024.15 291.76 1049.14 305.41"/>
|
|
183
|
+
</g>
|
|
184
|
+
<g id="basic_s-3" data-name="basic_s">
|
|
185
|
+
<polygon class="cls-8" points="1049.14 332.94 1049.14 332.98 1024.15 346.61 999.16 332.96 999.16 332.94 1024.15 319.28 1024.15 319.28 1049.14 332.94"/>
|
|
186
|
+
<polygon class="cls-5" points="1049.15 305.64 1049.15 332.94 1036.78 339.7 1036.77 339.7 1025.97 345.61 1024.16 346.6 1024.15 346.6 1024.15 319.27 1024.16 319.27 1024.28 319.2 1036.77 312.39 1036.78 312.39 1049.15 305.64"/>
|
|
187
|
+
<polygon class="cls-16" points="1049.14 305.61 1049.14 305.64 1024.15 319.27 999.16 305.62 999.16 305.6 1024.15 291.94 1024.15 291.94 1049.14 305.61"/>
|
|
188
|
+
<polygon class="cls-9" points="1024.15 319.27 1024.15 346.6 999.16 332.94 999.16 305.62 1024.15 319.27"/>
|
|
189
|
+
</g>
|
|
190
|
+
<g id="basic_s-4" data-name="basic_s">
|
|
191
|
+
<polygon class="cls-8" points="1024.15 346.61 1024.15 346.65 999.16 360.28 974.17 346.63 974.17 346.61 999.16 332.95 999.16 332.95 1024.15 346.61"/>
|
|
192
|
+
<polygon class="cls-5" points="1024.15 319.31 1024.15 346.61 1011.78 353.37 1011.78 353.37 1000.97 359.28 999.16 360.27 999.16 360.27 999.16 332.94 999.16 332.94 999.28 332.87 1011.78 326.06 1011.78 326.06 1024.15 319.31"/>
|
|
193
|
+
<polygon class="cls-16" points="1024.15 319.28 1024.15 319.31 999.16 332.94 974.17 319.29 974.17 319.27 999.16 305.61 999.16 305.61 1024.15 319.28"/>
|
|
194
|
+
<polygon class="cls-9" points="999.16 332.94 999.16 360.27 974.17 346.61 974.17 319.29 999.16 332.94"/>
|
|
195
|
+
</g>
|
|
196
|
+
<g id="basic_s-5" data-name="basic_s">
|
|
197
|
+
<polygon class="cls-8" points="1099.13 278.13 1099.13 278.17 1074.14 291.79 1049.14 278.14 1049.14 278.13 1074.14 264.46 1074.14 264.46 1099.13 278.13"/>
|
|
198
|
+
<polygon class="cls-5" points="1099.13 250.83 1099.13 278.12 1086.76 284.89 1086.75 284.89 1075.95 290.8 1074.14 291.79 1074.13 291.79 1074.13 264.45 1074.14 264.45 1074.26 264.38 1086.75 257.57 1086.76 257.57 1099.13 250.83"/>
|
|
199
|
+
<polygon class="cls-16" points="1099.13 250.79 1099.13 250.83 1074.14 264.45 1049.14 250.8 1049.14 250.79 1074.14 237.12 1074.14 237.12 1099.13 250.79"/>
|
|
200
|
+
<polygon class="cls-9" points="1074.14 264.45 1074.14 291.79 1049.14 278.12 1049.14 250.8 1074.14 264.45"/>
|
|
201
|
+
</g>
|
|
202
|
+
<g id="basic_s-6" data-name="basic_s">
|
|
203
|
+
<polygon class="cls-8" points="1099.13 250.75 1099.13 250.79 1074.14 264.42 1049.14 250.77 1049.14 250.75 1074.14 237.09 1074.14 237.09 1099.13 250.75"/>
|
|
204
|
+
<polygon class="cls-5" points="1099.13 223.45 1099.13 250.75 1086.76 257.51 1086.75 257.51 1075.95 263.42 1074.14 264.41 1074.13 264.41 1074.13 237.08 1074.14 237.08 1074.26 237.01 1086.75 230.2 1086.76 230.2 1099.13 223.45"/>
|
|
205
|
+
<polygon class="cls-16" points="1099.13 223.41 1099.13 223.45 1074.14 237.08 1049.14 223.43 1049.14 223.41 1074.14 209.75 1074.14 209.75 1099.13 223.41"/>
|
|
206
|
+
<polygon class="cls-9" points="1074.14 237.08 1074.14 264.41 1049.14 250.75 1049.14 223.43 1074.14 237.08"/>
|
|
207
|
+
</g>
|
|
208
|
+
<g id="basic_s-7" data-name="basic_s">
|
|
209
|
+
<polygon class="cls-8" points="1074.13 264.42 1074.13 264.45 1049.14 278.08 1024.15 264.43 1024.15 264.41 1049.14 250.75 1049.14 250.75 1074.13 264.42"/>
|
|
210
|
+
<polygon class="cls-5" points="1074.13 237.12 1074.13 264.41 1061.76 271.18 1061.76 271.18 1050.95 277.09 1049.14 278.08 1049.14 278.08 1049.14 250.74 1049.14 250.74 1049.26 250.67 1061.76 243.86 1061.76 243.86 1074.13 237.12"/>
|
|
211
|
+
<polygon class="cls-16" points="1074.13 237.08 1074.13 237.12 1049.14 250.74 1024.15 237.09 1024.15 237.08 1049.14 223.41 1049.14 223.41 1074.13 237.08"/>
|
|
212
|
+
<polygon class="cls-9" points="1049.14 250.74 1049.14 278.07 1024.15 264.41 1024.15 237.09 1049.14 250.74"/>
|
|
213
|
+
</g>
|
|
214
|
+
<g id="basic_s-8" data-name="basic_s">
|
|
215
|
+
<polygon class="cls-8" points="1049.14 278.1 1049.14 278.14 1024.15 291.77 999.16 278.11 999.16 278.1 1024.15 264.44 1024.15 264.43 1049.14 278.1"/>
|
|
216
|
+
<polygon class="cls-5" points="1049.15 250.8 1049.15 278.1 1036.78 284.86 1036.77 284.86 1025.97 290.77 1024.16 291.76 1024.15 291.76 1024.15 264.43 1024.16 264.43 1024.28 264.36 1036.77 257.55 1036.78 257.55 1049.15 250.8"/>
|
|
217
|
+
<polygon class="cls-16" points="1049.14 250.76 1049.14 250.8 1024.15 264.43 999.16 250.78 999.16 250.76 1024.15 237.1 1024.15 237.1 1049.14 250.76"/>
|
|
218
|
+
<polygon class="cls-9" points="1024.15 264.43 1024.15 291.76 999.16 278.09 999.16 250.78 1024.15 264.43"/>
|
|
219
|
+
</g>
|
|
220
|
+
<g id="basic_s-9" data-name="basic_s">
|
|
221
|
+
<polygon class="cls-8" points="1024.15 291.74 1024.15 291.78 999.16 305.41 974.17 291.76 974.17 291.74 999.16 278.08 999.16 278.08 1024.15 291.74"/>
|
|
222
|
+
<polygon class="cls-5" points="1024.15 264.44 1024.15 291.74 1011.78 298.5 1011.78 298.5 1000.97 304.41 999.16 305.4 999.16 305.4 999.16 278.07 999.16 278.07 999.28 278 1011.78 271.19 1011.78 271.19 1024.15 264.44"/>
|
|
223
|
+
<polygon class="cls-16" points="1024.15 264.41 1024.15 264.44 999.16 278.07 974.17 264.42 974.17 264.4 999.16 250.74 999.16 250.74 1024.15 264.41"/>
|
|
224
|
+
<polygon class="cls-9" points="999.16 278.07 999.16 305.4 974.17 291.74 974.17 264.42 999.16 278.07"/>
|
|
225
|
+
</g>
|
|
226
|
+
<g id="basic_s-10" data-name="basic_s">
|
|
227
|
+
<polygon class="cls-8" points="1024.15 264.5 1024.15 264.53 999.16 278.16 974.17 264.51 974.17 264.49 999.16 250.83 999.16 250.83 1024.15 264.5"/>
|
|
228
|
+
<polygon class="cls-5" points="1024.15 237.2 1024.15 264.49 1011.78 271.26 1011.78 271.26 1000.97 277.17 999.16 278.16 999.16 278.16 999.16 250.82 999.16 250.82 999.28 250.75 1011.78 243.94 1011.78 243.94 1024.15 237.2"/>
|
|
229
|
+
<polygon class="cls-16" points="1024.15 237.16 1024.15 237.2 999.16 250.82 974.17 237.17 974.17 237.16 999.16 223.49 999.16 223.49 1024.15 237.16"/>
|
|
230
|
+
<polygon class="cls-9" points="999.16 250.82 999.16 278.16 974.17 264.49 974.17 237.17 999.16 250.82"/>
|
|
231
|
+
</g>
|
|
232
|
+
<g id="basic_s-11" data-name="basic_s">
|
|
233
|
+
<polygon class="cls-8" points="1099.31 196.55 1099.31 196.58 1074.32 210.21 1049.32 196.56 1049.32 196.54 1074.32 182.88 1074.32 182.88 1099.31 196.55"/>
|
|
234
|
+
<polygon class="cls-5" points="1099.31 169.25 1099.31 196.54 1086.94 203.31 1086.93 203.31 1076.13 209.22 1074.32 210.21 1074.31 210.21 1074.31 182.87 1074.32 182.87 1074.44 182.8 1086.93 175.99 1086.94 175.99 1099.31 169.25"/>
|
|
235
|
+
<polygon class="cls-16" points="1099.31 169.21 1099.31 169.25 1074.32 182.87 1049.33 169.22 1049.33 169.21 1074.32 155.54 1074.32 155.54 1099.31 169.21"/>
|
|
236
|
+
<polygon class="cls-9" points="1074.32 182.87 1074.32 210.21 1049.33 196.54 1049.33 169.22 1074.32 182.87"/>
|
|
237
|
+
</g>
|
|
238
|
+
<g id="basic_s-12" data-name="basic_s">
|
|
239
|
+
<polygon class="cls-8" points="1074.32 210.17 1074.32 210.21 1049.33 223.83 1024.34 210.18 1024.34 210.17 1049.33 196.5 1049.33 196.5 1074.32 210.17"/>
|
|
240
|
+
<polygon class="cls-5" points="1074.32 182.87 1074.32 210.16 1061.95 216.93 1061.95 216.93 1051.14 222.84 1049.33 223.83 1049.33 223.83 1049.33 196.49 1049.33 196.49 1049.45 196.42 1061.95 189.61 1061.95 189.61 1074.32 182.87"/>
|
|
241
|
+
<polygon class="cls-16" points="1074.32 182.83 1074.32 182.87 1049.33 196.49 1024.34 182.84 1024.34 182.83 1049.33 169.16 1049.33 169.16 1074.32 182.83"/>
|
|
242
|
+
<polygon class="cls-9" points="1049.33 196.49 1049.33 223.83 1024.34 210.16 1024.34 182.84 1049.33 196.49"/>
|
|
243
|
+
</g>
|
|
244
|
+
<g id="basic_s-13" data-name="basic_s">
|
|
245
|
+
<polygon class="cls-8" points="1049.32 223.84 1049.32 223.87 1024.33 237.5 999.34 223.85 999.34 223.83 1024.33 210.17 1024.33 210.17 1049.32 223.84"/>
|
|
246
|
+
<polygon class="cls-5" points="1049.33 196.54 1049.33 223.83 1036.96 230.6 1036.95 230.6 1026.15 236.51 1024.34 237.5 1024.33 237.5 1024.33 210.16 1024.34 210.16 1024.46 210.09 1036.95 203.28 1036.96 203.28 1049.33 196.54"/>
|
|
247
|
+
<polygon class="cls-16" points="1049.33 196.5 1049.33 196.54 1024.33 210.16 999.34 196.51 999.34 196.5 1024.33 182.83 1024.34 182.83 1049.33 196.5"/>
|
|
248
|
+
<polygon class="cls-9" points="1024.33 210.16 1024.33 237.49 999.34 223.83 999.34 196.51 1024.33 210.16"/>
|
|
249
|
+
</g>
|
|
250
|
+
<g id="basic_s-14" data-name="basic_s">
|
|
251
|
+
<polygon class="cls-8" points="1024.34 237.51 1024.34 237.54 999.34 251.17 974.35 237.52 974.35 237.5 999.34 223.84 999.35 223.84 1024.34 237.51"/>
|
|
252
|
+
<polygon class="cls-5" points="1024.34 210.2 1024.34 237.5 1011.97 244.26 1011.96 244.26 1001.16 250.17 999.35 251.16 999.34 251.16 999.34 223.83 999.35 223.83 999.47 223.76 1011.96 216.95 1011.97 216.95 1024.34 210.2"/>
|
|
253
|
+
<polygon class="cls-16" points="1024.34 210.17 1024.34 210.21 999.35 223.83 974.35 210.18 974.35 210.17 999.35 196.5 999.35 196.5 1024.34 210.17"/>
|
|
254
|
+
<polygon class="cls-9" points="999.35 223.83 999.35 251.16 974.35 237.5 974.35 210.18 999.35 223.83"/>
|
|
255
|
+
</g>
|
|
256
|
+
</g>
|
|
257
|
+
<g>
|
|
258
|
+
<g class="cls-21">
|
|
259
|
+
<g class="cls-20">
|
|
260
|
+
<image width="230" height="136" transform="translate(694.68 -.39) scale(.48)" xlink:href="data:image/png;base64,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"/>
|
|
261
|
+
</g>
|
|
262
|
+
</g>
|
|
263
|
+
<polygon class="cls-2" points="799.99 32.33 799.99 32.41 750.01 59.66 700.02 32.36 700.02 32.33 750.01 5 750.01 5 799.99 32.33"/>
|
|
264
|
+
</g>
|
|
265
|
+
<g id="N2">
|
|
266
|
+
<g id="basic_N2">
|
|
267
|
+
<polygon class="cls-11" points="849.94 223.16 849.94 277.75 825.2 291.28 825.19 291.28 803.58 303.1 799.96 305.08 799.95 305.08 799.95 250.41 799.96 250.41 800.2 250.27 825.19 236.65 825.2 236.65 849.94 223.16"/>
|
|
268
|
+
<polygon class="cls-18" points="849.94 223.08 849.94 223.16 799.96 250.41 749.97 223.11 749.97 223.08 799.96 195.75 799.96 195.75 849.94 223.08"/>
|
|
269
|
+
<polygon class="cls-14" points="799.96 250.41 799.96 305.08 749.97 277.75 749.97 223.11 799.96 250.41"/>
|
|
270
|
+
</g>
|
|
271
|
+
<g id="basic_N2-2" data-name="basic_N2">
|
|
272
|
+
<polygon class="cls-11" points="849.94 168.6 849.94 223.19 825.2 236.72 825.19 236.72 803.58 248.54 799.96 250.52 799.95 250.52 799.95 195.85 799.96 195.85 800.2 195.71 825.19 182.09 825.2 182.09 849.94 168.6"/>
|
|
273
|
+
<polygon class="cls-18" points="849.94 168.52 849.94 168.6 799.96 195.85 749.97 168.55 749.97 168.52 799.96 141.19 799.96 141.19 849.94 168.52"/>
|
|
274
|
+
<polygon class="cls-14" points="799.96 195.85 799.96 250.52 749.97 223.18 749.97 168.55 799.96 195.85"/>
|
|
275
|
+
</g>
|
|
276
|
+
<g id="basic_N2-3" data-name="basic_N2">
|
|
277
|
+
<polygon class="cls-11" points="849.94 113.93 849.94 168.52 825.2 182.05 825.19 182.05 803.58 193.87 799.96 195.85 799.95 195.85 799.95 141.18 799.96 141.18 800.2 141.04 825.19 127.42 825.2 127.42 849.94 113.93"/>
|
|
278
|
+
<polygon class="cls-18" points="849.94 113.86 849.94 113.94 799.96 141.19 749.97 113.88 749.97 113.86 799.96 86.53 799.96 86.53 849.94 113.86"/>
|
|
279
|
+
<polygon class="cls-14" points="799.96 141.19 799.96 195.85 749.97 168.52 749.97 113.88 799.96 141.19"/>
|
|
280
|
+
</g>
|
|
281
|
+
<g id="basic_N2-4" data-name="basic_N2">
|
|
282
|
+
<polygon class="cls-11" points="849.95 59.72 849.95 114.31 825.21 127.84 825.2 127.84 803.59 139.66 799.97 141.64 799.96 141.64 799.96 86.97 799.97 86.97 800.21 86.83 825.2 73.21 825.21 73.21 849.95 59.72"/>
|
|
283
|
+
<polygon class="cls-18" points="849.94 59.64 849.94 59.72 799.96 86.98 749.98 59.67 749.98 59.64 799.96 32.31 799.96 32.31 849.94 59.64"/>
|
|
284
|
+
<polygon class="cls-14" points="799.96 86.98 799.96 141.64 749.98 114.31 749.98 59.67 799.96 86.98"/>
|
|
285
|
+
</g>
|
|
286
|
+
<g id="basic_N2-5" data-name="basic_N2">
|
|
287
|
+
<polygon class="cls-14" points="949.91 223.33 949.91 277.92 925.17 291.45 925.16 291.45 903.55 303.27 899.93 305.25 899.92 305.25 899.92 250.58 899.93 250.58 900.17 250.44 925.16 236.82 925.17 236.82 949.91 223.33"/>
|
|
288
|
+
<polygon class="cls-18" points="949.91 223.26 949.91 223.33 899.93 250.59 849.94 223.28 849.94 223.25 899.93 195.93 899.93 195.92 949.91 223.26"/>
|
|
289
|
+
<polygon class="cls-14" points="899.93 250.59 899.93 305.25 849.94 277.92 849.94 223.28 899.93 250.59"/>
|
|
290
|
+
</g>
|
|
291
|
+
<g id="basic_N2-6" data-name="basic_N2">
|
|
292
|
+
<polygon class="cls-11" points="899.93 141.59 899.93 196.18 875.19 209.71 875.18 209.71 853.57 221.53 849.95 223.51 849.94 223.51 849.94 168.84 849.95 168.84 850.19 168.7 875.18 155.08 875.19 155.08 899.93 141.59"/>
|
|
293
|
+
<polygon class="cls-18" points="899.93 141.52 899.93 141.59 849.94 168.85 799.96 141.54 799.96 141.52 849.94 114.19 849.95 114.18 899.93 141.52"/>
|
|
294
|
+
<polygon class="cls-14" points="849.94 168.85 849.94 223.51 799.96 196.18 799.96 141.54 849.94 168.85"/>
|
|
295
|
+
</g>
|
|
296
|
+
<g id="basic_N2-7" data-name="basic_N2">
|
|
297
|
+
<polygon class="cls-11" points="999.9 305.29 999.9 359.88 975.16 373.41 975.15 373.41 953.54 385.23 949.92 387.21 949.91 387.21 949.91 332.54 949.92 332.54 950.16 332.4 975.15 318.78 975.16 318.78 999.9 305.29"/>
|
|
298
|
+
<polygon class="cls-18" points="999.89 305.22 999.89 305.29 949.91 332.55 899.93 305.24 899.93 305.22 949.91 277.89 949.91 277.88 999.89 305.22"/>
|
|
299
|
+
<polygon class="cls-14" points="949.91 332.55 949.91 387.21 899.93 359.88 899.93 305.24 949.91 332.55"/>
|
|
300
|
+
</g>
|
|
301
|
+
<g id="basic_N2-8" data-name="basic_N2">
|
|
302
|
+
<polygon class="cls-11" points="999.9 250.58 999.9 305.17 975.16 318.7 975.15 318.7 953.54 330.52 949.92 332.5 949.91 332.5 949.91 277.83 949.92 277.83 950.16 277.69 975.15 264.07 975.16 264.07 999.9 250.58"/>
|
|
303
|
+
<polygon class="cls-11" points="999.9 250.51 999.9 250.58 949.91 277.84 899.93 250.53 899.93 250.5 949.91 223.18 949.92 223.17 999.9 250.51"/>
|
|
304
|
+
<polygon class="cls-14" points="949.91 277.84 949.91 332.5 899.93 305.17 899.93 250.53 949.91 277.84"/>
|
|
305
|
+
</g>
|
|
306
|
+
<g id="basic_N2-9" data-name="basic_N2">
|
|
307
|
+
<polygon class="cls-11" points="999.9 195.92 999.9 250.51 975.16 264.04 975.15 264.04 953.54 275.86 949.92 277.84 949.91 277.84 949.91 223.17 949.92 223.17 950.16 223.03 975.15 209.41 975.16 209.41 999.9 195.92"/>
|
|
308
|
+
<polygon class="cls-18" points="999.9 195.84 999.9 195.92 949.91 223.17 899.93 195.87 899.93 195.84 949.91 168.51 949.92 168.51 999.9 195.84"/>
|
|
309
|
+
<polygon class="cls-14" points="949.91 223.17 949.91 277.84 899.93 250.5 899.93 195.87 949.91 223.17"/>
|
|
310
|
+
</g>
|
|
311
|
+
<g id="basic_N2-10" data-name="basic_N2">
|
|
312
|
+
<polygon class="cls-11" points="999.91 141.73 999.91 196.32 975.17 209.85 975.16 209.85 953.55 221.67 949.93 223.65 949.92 223.65 949.92 168.98 949.93 168.98 950.17 168.84 975.16 155.22 975.17 155.22 999.91 141.73"/>
|
|
313
|
+
<polygon class="cls-18" points="999.91 141.66 999.91 141.73 949.93 168.99 899.94 141.68 899.94 141.65 949.93 114.33 949.93 114.32 999.91 141.66"/>
|
|
314
|
+
<polygon class="cls-14" points="949.93 168.99 949.93 223.65 899.94 196.32 899.94 141.68 949.93 168.99"/>
|
|
315
|
+
</g>
|
|
316
|
+
</g>
|
|
317
|
+
<g id="N1">
|
|
318
|
+
<g id="basic_N1">
|
|
319
|
+
<polygon class="cls-13" points="750.04 223.12 750.04 277.71 725.3 291.24 725.29 291.24 703.68 303.06 700.06 305.04 700.05 305.04 700.05 250.37 700.06 250.37 700.3 250.23 725.29 236.61 725.3 236.61 750.04 223.12"/>
|
|
320
|
+
<polygon class="cls-15" points="750.04 223.04 750.04 223.12 700.06 250.37 650.07 223.07 650.07 223.04 700.06 195.71 700.06 195.71 750.04 223.04"/>
|
|
321
|
+
<polygon class="cls-3" points="700.06 250.37 700.06 305.04 650.07 277.7 650.07 223.07 700.06 250.37"/>
|
|
322
|
+
</g>
|
|
323
|
+
<g id="basic_N1-2" data-name="basic_N1">
|
|
324
|
+
<polygon class="cls-13" points="750.04 168.6 750.04 223.19 725.3 236.72 725.29 236.72 703.68 248.54 700.06 250.52 700.05 250.52 700.05 195.85 700.06 195.85 700.3 195.71 725.29 182.09 725.3 182.09 750.04 168.6"/>
|
|
325
|
+
<polygon class="cls-15" points="750.04 168.52 750.04 168.6 700.06 195.85 650.08 168.55 650.08 168.52 700.06 141.19 700.06 141.19 750.04 168.52"/>
|
|
326
|
+
<polygon class="cls-3" points="700.06 195.85 700.06 250.51 650.08 223.18 650.08 168.55 700.06 195.85"/>
|
|
327
|
+
</g>
|
|
328
|
+
<g id="basic_N1-3" data-name="basic_N1">
|
|
329
|
+
<polygon class="cls-13" points="750.03 113.89 750.03 168.48 725.29 182.01 725.28 182.01 703.67 193.83 700.05 195.81 700.04 195.81 700.04 141.14 700.05 141.14 700.29 141 725.28 127.38 725.29 127.38 750.03 113.89"/>
|
|
330
|
+
<polygon class="cls-15" points="750.03 113.81 750.03 113.89 700.05 141.14 650.06 113.84 650.06 113.81 700.05 86.48 700.05 86.48 750.03 113.81"/>
|
|
331
|
+
<polygon class="cls-3" points="700.05 141.14 700.05 195.8 650.06 168.47 650.06 113.84 700.05 141.14"/>
|
|
332
|
+
</g>
|
|
333
|
+
<g id="basic_N1-4" data-name="basic_N1">
|
|
334
|
+
<polygon class="cls-13" points="750.02 59.73 750.02 114.32 725.28 127.85 725.27 127.85 703.66 139.67 700.04 141.65 700.03 141.65 700.03 86.98 700.04 86.98 700.28 86.84 725.27 73.22 725.28 73.22 750.02 59.73"/>
|
|
335
|
+
<polygon class="cls-15" points="750.02 59.66 750.02 59.73 700.04 86.99 650.05 59.68 650.05 59.65 700.04 32.33 700.04 32.32 750.02 59.66"/>
|
|
336
|
+
<polygon class="cls-3" points="700.04 86.99 700.04 141.65 650.05 114.32 650.05 59.68 700.04 86.99"/>
|
|
337
|
+
</g>
|
|
338
|
+
<g id="basic_N1-5" data-name="basic_N1">
|
|
339
|
+
<polygon class="cls-13" points="700.14 195.83 700.14 250.42 675.4 263.95 675.39 263.95 653.78 275.77 650.16 277.75 650.15 277.75 650.15 223.08 650.16 223.08 650.4 222.94 675.39 209.32 675.4 209.32 700.14 195.83"/>
|
|
340
|
+
<polygon class="cls-15" points="700.14 195.75 700.14 195.83 650.16 223.08 600.17 195.78 600.17 195.75 650.16 168.42 650.16 168.42 700.14 195.75"/>
|
|
341
|
+
<polygon class="cls-3" points="650.16 223.08 650.16 277.75 600.17 250.41 600.17 195.78 650.16 223.08"/>
|
|
342
|
+
</g>
|
|
343
|
+
<g id="basic_N1-6" data-name="basic_N1">
|
|
344
|
+
<polygon class="cls-13" points="650.3 168.68 650.3 223.27 625.56 236.8 625.55 236.8 603.94 248.62 600.32 250.6 600.31 250.6 600.31 195.93 600.32 195.93 600.56 195.79 625.55 182.17 625.56 182.17 650.3 168.68"/>
|
|
345
|
+
<polygon class="cls-15" points="650.3 168.61 650.3 168.69 600.32 195.94 550.33 168.63 550.33 168.61 600.32 141.28 600.32 141.28 650.3 168.61"/>
|
|
346
|
+
<polygon class="cls-3" points="600.32 195.94 600.32 250.6 550.33 223.27 550.33 168.63 600.32 195.94"/>
|
|
347
|
+
</g>
|
|
348
|
+
<g id="basic_N1-7" data-name="basic_N1">
|
|
349
|
+
<polygon class="cls-13" points="600.32 304.95 600.32 359.54 575.58 373.07 575.57 373.07 553.96 384.89 550.34 386.87 550.33 386.87 550.33 332.2 550.34 332.2 550.58 332.06 575.57 318.44 575.58 318.44 600.32 304.95"/>
|
|
350
|
+
<polygon class="cls-15" points="600.32 304.88 600.32 304.95 550.33 332.21 500.35 304.9 500.35 304.87 550.33 277.54 550.34 277.54 600.32 304.88"/>
|
|
351
|
+
<polygon class="cls-3" points="550.33 332.21 550.33 386.87 500.35 359.54 500.35 304.9 550.33 332.21"/>
|
|
352
|
+
</g>
|
|
353
|
+
<g id="basic_N1-8" data-name="basic_N1">
|
|
354
|
+
<polygon class="cls-13" points="600.32 250.29 600.32 304.88 575.58 318.41 575.57 318.41 553.96 330.23 550.34 332.21 550.33 332.21 550.33 277.54 550.34 277.54 550.58 277.4 575.57 263.78 575.58 263.78 600.32 250.29"/>
|
|
355
|
+
<polygon class="cls-15" points="600.32 250.21 600.32 250.29 550.33 277.54 500.35 250.24 500.35 250.21 550.33 222.88 550.34 222.88 600.32 250.21"/>
|
|
356
|
+
<polygon class="cls-3" points="550.33 277.54 550.33 332.2 500.35 304.87 500.35 250.24 550.33 277.54"/>
|
|
357
|
+
</g>
|
|
358
|
+
<g id="basic_N1-9" data-name="basic_N1">
|
|
359
|
+
<polygon class="cls-13" points="600.31 195.7 600.31 250.29 575.57 263.82 575.56 263.82 553.95 275.64 550.33 277.62 550.32 277.62 550.32 222.95 550.33 222.95 550.57 222.81 575.56 209.19 575.57 209.19 600.31 195.7"/>
|
|
360
|
+
<polygon class="cls-15" points="600.31 195.62 600.31 195.7 550.33 222.95 500.34 195.65 500.34 195.62 550.33 168.29 550.33 168.29 600.31 195.62"/>
|
|
361
|
+
<polygon class="cls-3" points="550.33 222.95 550.33 277.62 500.34 250.28 500.34 195.65 550.33 222.95"/>
|
|
362
|
+
</g>
|
|
363
|
+
<g id="basic_N1-10" data-name="basic_N1">
|
|
364
|
+
<polygon class="cls-13" points="600.31 141.03 600.31 195.62 575.57 209.15 575.56 209.15 553.95 220.97 550.33 222.95 550.32 222.95 550.32 168.28 550.33 168.28 550.57 168.14 575.56 154.52 575.57 154.52 600.31 141.03"/>
|
|
365
|
+
<polygon class="cls-15" points="600.31 140.96 600.31 141.03 550.33 168.29 500.34 140.98 500.34 140.96 550.33 113.63 550.33 113.63 600.31 140.96"/>
|
|
366
|
+
<polygon class="cls-3" points="550.33 168.29 550.33 222.95 500.34 195.62 500.34 140.98 550.33 168.29"/>
|
|
367
|
+
</g>
|
|
368
|
+
</g>
|
|
369
|
+
</svg>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: canns
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.1
|
|
4
4
|
Summary: A Python Library for Continuous Attractor Neural Networks
|
|
5
5
|
Project-URL: Repository, https://github.com/routhleck/canns
|
|
6
6
|
Author-email: Sichao He <sichaohe@outlook.com>
|
|
@@ -77,7 +77,7 @@ CANNs is a Python library built on top of brainpy with performance‑critical mo
|
|
|
77
77
|
- **Task-first API** – `canns.task.tracking` and `canns.task.open_loop_navigation` generate smooth tracking inputs, population coding stimuli, or import experimental trajectories.
|
|
78
78
|
- **Rich analysis suite** – `canns.analyzer` covers energy landscapes, tuning curves, spike embeddings, UMAP/TDA helpers, and theta-sweep animations.
|
|
79
79
|
- **Unified training** – `canns.trainer.HebbianTrainer` implements generic Hebbian learning and prediction, layered on the abstract `Trainer` base.
|
|
80
|
-
- **Pipeline workspace** – the ASA
|
|
80
|
+
- **Pipeline workspace** – the ASA GUI (Attractor Structure Analyzer) provides an end-to-end analysis workflow (TDA → decode → CohoMap/CohoSpace/FR/FRM) with interactive visualization, help tips, and bilingual UI.
|
|
81
81
|
- **Extensible foundations** – base classes (`BasicModel`, `Task`, `Trainer`, `Pipeline`) keep custom components consistent with the built-in ecosystem.
|
|
82
82
|
|
|
83
83
|
## Visual Gallery
|
|
@@ -128,6 +128,9 @@ pip install canns
|
|
|
128
128
|
pip install canns[cuda12]
|
|
129
129
|
pip install canns[tpu]
|
|
130
130
|
|
|
131
|
+
# GUI (recommended for pipeline usage)
|
|
132
|
+
pip install canns[gui]
|
|
133
|
+
|
|
131
134
|
```
|
|
132
135
|
|
|
133
136
|
## Quick Start
|
|
@@ -156,20 +159,30 @@ def step(t, stimulus):
|
|
|
156
159
|
|
|
157
160
|
us, inputs = bm.for_loop(
|
|
158
161
|
step,
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
task.data,
|
|
162
|
-
)
|
|
162
|
+
task.run_steps,
|
|
163
|
+
task.data,
|
|
163
164
|
)
|
|
164
165
|
```
|
|
165
166
|
|
|
166
|
-
For the ASA pipeline,
|
|
167
|
+
For the ASA pipeline, the recommended entrypoint is the GUI:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
canns-gui
|
|
171
|
+
# or
|
|
172
|
+
python -m canns.pipeline.asa_gui
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
> Note: ASA TUI (`python -m canns.pipeline.asa` / `canns-tui`) is a legacy interface kept for transition.
|
|
167
176
|
|
|
168
177
|
## Documentation & Notebooks
|
|
169
178
|
|
|
170
179
|
- [Quick Start Guide](https://routhleck.com/canns/en/notebooks/01_quick_start.html) – condensed tour of the library layout.
|
|
171
180
|
- [Design Philosophy](https://routhleck.com/canns/en/notebooks/00_design_philosophy.html) – detailed design rationale for each module.
|
|
172
181
|
- Interactive launchers: [](https://mybinder.org/v2/gh/routhleck/canns/HEAD?filepath=docs%2Fen%2Fnotebooks) [](https://colab.research.google.com/github/routhleck/canns/blob/master/docs/en/notebooks/)
|
|
182
|
+
- Tutorials (Chinese, online):
|
|
183
|
+
- [ASA GUI end-to-end](https://routhleck.com/canns/zh/3_full_detail_tutorials/04_pipeline/03_asa_gui.html)
|
|
184
|
+
- [ASA pipeline principles & parameters](https://routhleck.com/canns/zh/3_full_detail_tutorials/02_data_analysis/01_asa_pipeline.html)
|
|
185
|
+
- [Cell classification](https://routhleck.com/canns/zh/3_full_detail_tutorials/02_data_analysis/04_cell_classification.html)
|
|
173
186
|
|
|
174
187
|
## Development Workflow
|
|
175
188
|
|
|
@@ -81,10 +81,10 @@ canns/pipeline/asa/screens.py,sha256=DbqidxmoKe4KzSLuxuriVv1PIVFn5Z-PfScVfjrIiEA
|
|
|
81
81
|
canns/pipeline/asa/state.py,sha256=XukidfcFIOmm9ttT226FOTYR5hv2VAY8_DZt7V1Ml2g,6955
|
|
82
82
|
canns/pipeline/asa/styles.tcss,sha256=eaXI3rQeWdBYmWdLJMMiSO6acHtreLRVKKoIHb2-dBk,3349
|
|
83
83
|
canns/pipeline/asa/widgets.py,sha256=3vPGGQWP9V5FwuwqykCVp7dzAHdpcFkDqib0DtIw-lQ,8087
|
|
84
|
-
canns/pipeline/asa_gui/__init__.py,sha256=
|
|
84
|
+
canns/pipeline/asa_gui/__init__.py,sha256=38gJUuQGfZ5gTJOJfYx8gJuy_bF69Qdpi1HNEYDKaH8,2250
|
|
85
85
|
canns/pipeline/asa_gui/__main__.py,sha256=2UOQtIE5oXkcq9HcuY13M3Jk6-uaDu8A0VJfvr203ck,134
|
|
86
86
|
canns/pipeline/asa_gui/app.py,sha256=Wd-tVGNPE1mQ0S9bET-cyjfj5UWsTIFFHOQRu0lngBs,833
|
|
87
|
-
canns/pipeline/asa_gui/main_window.py,sha256=
|
|
87
|
+
canns/pipeline/asa_gui/main_window.py,sha256=kQp8DTmp7SuYVCglh5lVja7DyQ7hAOxPgCEUmjKHgbk,7019
|
|
88
88
|
canns/pipeline/asa_gui/analysis_modes/__init__.py,sha256=m5tra-3lOcKi09HV3WxvTnDuF5lgV92C_fHH_4V87zw,990
|
|
89
89
|
canns/pipeline/asa_gui/analysis_modes/base.py,sha256=-xuzrr5-XItZldl7DUYfeLLvvXi-i7wpzk1IkTaPAzQ,1220
|
|
90
90
|
canns/pipeline/asa_gui/analysis_modes/batch_mode.py,sha256=sua3cD6G4vTGT7fUSrdvYNwldA3KZ1O4MCCsSOX4knc,531
|
|
@@ -108,9 +108,11 @@ canns/pipeline/asa_gui/models/__init__.py,sha256=Pr5wfeu_iA8bh2ob9tfWQcWmzWydYjM
|
|
|
108
108
|
canns/pipeline/asa_gui/models/config.py,sha256=oDAeNlReKJEITc8B5AT9xxQl3Ug1yaGs6DrzSJcABXc,314
|
|
109
109
|
canns/pipeline/asa_gui/models/job.py,sha256=_HdhJIzdH9OSKrRpcl3WCS4O04Bvur5uT9yb9oOWBuE,852
|
|
110
110
|
canns/pipeline/asa_gui/models/presets.py,sha256=zEtR1_35ovSuGa3xMOvZoVDJJUK0rSi8OOlfkQWFvFE,519
|
|
111
|
-
canns/pipeline/asa_gui/resources/__init__.py,sha256=
|
|
111
|
+
canns/pipeline/asa_gui/resources/__init__.py,sha256=xaC4dS2THCTTKOF6MDHMOGGPni9Nnjmeqj7fCaoxzwI,575
|
|
112
112
|
canns/pipeline/asa_gui/resources/dark.qss,sha256=s9Uhyod7aLwIC5QqYOVIKN7NofcXbV1ESZk-j98YMY4,2990
|
|
113
113
|
canns/pipeline/asa_gui/resources/light.qss,sha256=B8rU85VrYMKf8QasvRiR-tCypov7pzIOFr7lcL81mcw,2883
|
|
114
|
+
canns/pipeline/asa_gui/resources/logo.ico,sha256=V54_QvIzs6TK1K28zX915taioAM1gPESAKRCRPAjR4U,125806
|
|
115
|
+
canns/pipeline/asa_gui/resources/logo.svg,sha256=UQqbGRtnROO2BdN3XMkovdBqWew69Z9Sr7SUof2_n3o,48323
|
|
114
116
|
canns/pipeline/asa_gui/resources/styles.qss,sha256=MaWWGn3f9yvOYpgdgy8VyITWk5vGGPut2H_rnQM4-EU,2188
|
|
115
117
|
canns/pipeline/asa_gui/utils/__init__.py,sha256=UDPlNIUi5Jl16YiQbmOWz7TTTjFFJn_nDwDuYleAlKM,35
|
|
116
118
|
canns/pipeline/asa_gui/utils/formatters.py,sha256=w9MP0mGior_hxPqGhjNCXxwNbItgnaCDTdxJ1zUPGgk,347
|
|
@@ -156,8 +158,8 @@ canns/trainer/utils.py,sha256=ZdoLiRqFLfKXsWi0KX3wGUp0OqFikwiou8dPf3xvFhE,2847
|
|
|
156
158
|
canns/typing/__init__.py,sha256=mXySdfmD8fA56WqZTb1Nj-ZovcejwLzNjuk6PRfTwmA,156
|
|
157
159
|
canns/utils/__init__.py,sha256=OMyZ5jqZAIUS2Jr0qcnvvrx6YM-BZ1EJy5uZYeA3HC0,366
|
|
158
160
|
canns/utils/benchmark.py,sha256=oJ7nvbvnQMh4_MZh7z160NPLp-197X0rEnmnLHYlev4,1361
|
|
159
|
-
canns-0.14.
|
|
160
|
-
canns-0.14.
|
|
161
|
-
canns-0.14.
|
|
162
|
-
canns-0.14.
|
|
163
|
-
canns-0.14.
|
|
161
|
+
canns-0.14.1.dist-info/METADATA,sha256=CQzDKQODTTCPR2zdw9q6mEzfhGdvuA8xOhIg0maVhTc,9751
|
|
162
|
+
canns-0.14.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
163
|
+
canns-0.14.1.dist-info/entry_points.txt,sha256=57YF2HZp_BG3GeGB8L0m3wR1sSfNyMXF1q4CKEjce6U,164
|
|
164
|
+
canns-0.14.1.dist-info/licenses/LICENSE,sha256=u6NJ1N-QSnf5yTwSk5UvFAdU2yKD0jxG0Xa91n1cPO4,11306
|
|
165
|
+
canns-0.14.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|