smart-chat-asp 1.0.1
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.
- package/README.md +364 -0
- package/README.zh.md +367 -0
- package/lib/Tableau10-2ff7471d.mjs +9 -0
- package/lib/arc-799ff210.mjs +86 -0
- package/lib/array-2ff2c7a6.mjs +6 -0
- package/lib/blockDiagram-38ab4fdb-bf5bbf65.mjs +1230 -0
- package/lib/blockDiagram-38ab4fdb-bf5bbf65.mjs.gz +0 -0
- package/lib/c4Diagram-3d4e48cf-2b0e6635.mjs +1580 -0
- package/lib/c4Diagram-3d4e48cf-2b0e6635.mjs.gz +0 -0
- package/lib/channel-3d875520.mjs +5 -0
- package/lib/classDiagram-70f12bd4-bc2c0590.mjs +221 -0
- package/lib/classDiagram-70f12bd4-bc2c0590.mjs.gz +0 -0
- package/lib/classDiagram-v2-f2320105-6e7dd432.mjs +207 -0
- package/lib/clone-37eeafe9.mjs +8 -0
- package/lib/createText-2e5e7dd3-81fb1c55.mjs +2966 -0
- package/lib/createText-2e5e7dd3-81fb1c55.mjs.gz +0 -0
- package/lib/edges-e0da2a9e-aa948eaf.mjs +1083 -0
- package/lib/edges-e0da2a9e-aa948eaf.mjs.gz +0 -0
- package/lib/erDiagram-9861fffd-198b71fe.mjs +933 -0
- package/lib/erDiagram-9861fffd-198b71fe.mjs.gz +0 -0
- package/lib/favicon.ico +0 -0
- package/lib/favicon.svg +1 -0
- package/lib/flowDb-956e92f1-0af0a180.mjs +1126 -0
- package/lib/flowDb-956e92f1-0af0a180.mjs.gz +0 -0
- package/lib/flowDiagram-66a62f08-e6a57d6e.mjs +798 -0
- package/lib/flowDiagram-66a62f08-e6a57d6e.mjs.gz +0 -0
- package/lib/flowDiagram-v2-96b9c2cf-94f961a9.mjs +26 -0
- package/lib/flowchart-elk-definition-4a651766-bd003eba.mjs +48407 -0
- package/lib/flowchart-elk-definition-4a651766-bd003eba.mjs.gz +0 -0
- package/lib/ganttDiagram-c361ad54-d7a489eb.mjs +2504 -0
- package/lib/ganttDiagram-c361ad54-d7a489eb.mjs.gz +0 -0
- package/lib/gitGraphDiagram-72cf32ee-8249845b.mjs +1265 -0
- package/lib/gitGraphDiagram-72cf32ee-8249845b.mjs.gz +0 -0
- package/lib/graph-abf26b74.mjs +512 -0
- package/lib/graph-abf26b74.mjs.gz +0 -0
- package/lib/index-202ce608.mjs +40 -0
- package/lib/index-202ce608.mjs.gz +0 -0
- package/lib/index-3862675e-11a90f38.mjs +373 -0
- package/lib/index-3862675e-11a90f38.mjs.gz +0 -0
- package/lib/index-5ab8ef6d.mjs +28 -0
- package/lib/index-5ab8ef6d.mjs.gz +0 -0
- package/lib/index-7d5bcc75.mjs +1475 -0
- package/lib/index-7d5bcc75.mjs.gz +0 -0
- package/lib/infoDiagram-f8f76790-e5a7c665.mjs +320 -0
- package/lib/infoDiagram-f8f76790-e5a7c665.mjs.gz +0 -0
- package/lib/init-f9637058.mjs +16 -0
- package/lib/journeyDiagram-49397b02-159b70e9.mjs +805 -0
- package/lib/journeyDiagram-49397b02-159b70e9.mjs.gz +0 -0
- package/lib/katex-78209485.mjs +11691 -0
- package/lib/katex-78209485.mjs.gz +0 -0
- package/lib/layout-7443d24c.mjs +1495 -0
- package/lib/layout-7443d24c.mjs.gz +0 -0
- package/lib/line-f99dda04.mjs +34 -0
- package/lib/linear-59a89be6.mjs +447 -0
- package/lib/linear-59a89be6.mjs.gz +0 -0
- package/lib/main-d5ddd425.mjs +117824 -0
- package/lib/main-d5ddd425.mjs.gz +0 -0
- package/lib/mindmap-definition-fc14e90a-65f56a67.mjs +19384 -0
- package/lib/mindmap-definition-fc14e90a-65f56a67.mjs.gz +0 -0
- package/lib/ordinal-980380c7.mjs +65 -0
- package/lib/path-428ebac9.mjs +91 -0
- package/lib/pieDiagram-8a3498a8-2789d871.mjs +503 -0
- package/lib/pieDiagram-8a3498a8-2789d871.mjs.gz +0 -0
- package/lib/pwa-192x192.png +0 -0
- package/lib/pwa-512x512.png +0 -0
- package/lib/quadrantDiagram-120e2f19-35c14026.mjs +905 -0
- package/lib/quadrantDiagram-120e2f19-35c14026.mjs.gz +0 -0
- package/lib/requirementDiagram-deff3bca-fe92cbda.mjs +770 -0
- package/lib/requirementDiagram-deff3bca-fe92cbda.mjs.gz +0 -0
- package/lib/sankeyDiagram-04a897e0-c6c540d3.mjs +818 -0
- package/lib/sankeyDiagram-04a897e0-c6c540d3.mjs.gz +0 -0
- package/lib/sequenceDiagram-704730f1-d7df402a.mjs +2235 -0
- package/lib/sequenceDiagram-704730f1-d7df402a.mjs.gz +0 -0
- package/lib/smart-chat.es.js +5 -0
- package/lib/stateDiagram-587899a1-29ee2eaf.mjs +269 -0
- package/lib/stateDiagram-587899a1-29ee2eaf.mjs.gz +0 -0
- package/lib/stateDiagram-v2-d93cdb3a-8f366fed.mjs +191 -0
- package/lib/style.css +1 -0
- package/lib/style.css.gz +0 -0
- package/lib/styles-6aaf32cf-52404081.mjs +960 -0
- package/lib/styles-6aaf32cf-52404081.mjs.gz +0 -0
- package/lib/styles-9a916d00-0919841c.mjs +1089 -0
- package/lib/styles-9a916d00-0919841c.mjs.gz +0 -0
- package/lib/styles-c10674c1-91e3afff.mjs +433 -0
- package/lib/styles-c10674c1-91e3afff.mjs.gz +0 -0
- package/lib/svgDrawCommon-08f97a94-64eed6c2.mjs +64 -0
- package/lib/timeline-definition-85554ec2-e738bba9.mjs +796 -0
- package/lib/timeline-definition-85554ec2-e738bba9.mjs.gz +0 -0
- package/lib/xychartDiagram-e933f94c-35ccc3b8.mjs +1285 -0
- package/lib/xychartDiagram-e933f94c-35ccc3b8.mjs.gz +0 -0
- package/license +21 -0
- package/package.json +82 -0
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
import { i as N, G as A } from "./graph-abf26b74.mjs";
|
|
2
|
+
import { l as H } from "./layout-7443d24c.mjs";
|
|
3
|
+
import { c as V } from "./clone-37eeafe9.mjs";
|
|
4
|
+
import { aS as $, a2 as s, Y as D, aa as X, a1 as J } from "./main-d5ddd425.mjs";
|
|
5
|
+
import { i as U, u as W, s as Y, a as _, b as q, g as T, p as O, c as z, d as K, e as Q, f as Z, h as L, j as p } from "./edges-e0da2a9e-aa948eaf.mjs";
|
|
6
|
+
import { a as I } from "./createText-2e5e7dd3-81fb1c55.mjs";
|
|
7
|
+
function m(e) {
|
|
8
|
+
var t = {
|
|
9
|
+
options: {
|
|
10
|
+
directed: e.isDirected(),
|
|
11
|
+
multigraph: e.isMultigraph(),
|
|
12
|
+
compound: e.isCompound()
|
|
13
|
+
},
|
|
14
|
+
nodes: tt(e),
|
|
15
|
+
edges: et(e)
|
|
16
|
+
};
|
|
17
|
+
return N(e.graph()) || (t.value = V(e.graph())), t;
|
|
18
|
+
}
|
|
19
|
+
function tt(e) {
|
|
20
|
+
return $(e.nodes(), function(t) {
|
|
21
|
+
var n = e.node(t), r = e.parent(t), i = { v: t };
|
|
22
|
+
return N(n) || (i.value = n), N(r) || (i.parent = r), i;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function et(e) {
|
|
26
|
+
return $(e.edges(), function(t) {
|
|
27
|
+
var n = e.edge(t), r = { v: t.v, w: t.w };
|
|
28
|
+
return N(t.name) || (r.name = t.name), N(n) || (r.value = n), r;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
let l = {}, g = {}, R = {};
|
|
32
|
+
const nt = () => {
|
|
33
|
+
g = {}, R = {}, l = {};
|
|
34
|
+
}, B = (e, t) => (s.trace("In isDescendant", t, " ", e, " = ", g[t].includes(e)), !!g[t].includes(e)), it = (e, t) => (s.info("Descendants of ", t, " is ", g[t]), s.info("Edge is ", e), e.v === t || e.w === t ? !1 : g[t] ? g[t].includes(e.v) || B(e.v, t) || B(e.w, t) || g[t].includes(e.w) : (s.debug("Tilt, ", t, ",not in descendants"), !1)), P = (e, t, n, r) => {
|
|
35
|
+
s.warn(
|
|
36
|
+
"Copying children of ",
|
|
37
|
+
e,
|
|
38
|
+
"root",
|
|
39
|
+
r,
|
|
40
|
+
"data",
|
|
41
|
+
t.node(e),
|
|
42
|
+
r
|
|
43
|
+
);
|
|
44
|
+
const i = t.children(e) || [];
|
|
45
|
+
e !== r && i.push(e), s.warn("Copying (nodes) clusterId", e, "nodes", i), i.forEach((a) => {
|
|
46
|
+
if (t.children(a).length > 0)
|
|
47
|
+
P(a, t, n, r);
|
|
48
|
+
else {
|
|
49
|
+
const d = t.node(a);
|
|
50
|
+
s.info("cp ", a, " to ", r, " with parent ", e), n.setNode(a, d), r !== t.parent(a) && (s.warn("Setting parent", a, t.parent(a)), n.setParent(a, t.parent(a))), e !== r && a !== e ? (s.debug("Setting parent", a, e), n.setParent(a, e)) : (s.info("In copy ", e, "root", r, "data", t.node(e), r), s.debug(
|
|
51
|
+
"Not Setting parent for node=",
|
|
52
|
+
a,
|
|
53
|
+
"cluster!==rootId",
|
|
54
|
+
e !== r,
|
|
55
|
+
"node!==clusterId",
|
|
56
|
+
a !== e
|
|
57
|
+
));
|
|
58
|
+
const u = t.edges(a);
|
|
59
|
+
s.debug("Copying Edges", u), u.forEach((f) => {
|
|
60
|
+
s.info("Edge", f);
|
|
61
|
+
const h = t.edge(f.v, f.w, f.name);
|
|
62
|
+
s.info("Edge data", h, r);
|
|
63
|
+
try {
|
|
64
|
+
it(f, r) ? (s.info("Copying as ", f.v, f.w, h, f.name), n.setEdge(f.v, f.w, h, f.name), s.info("newGraph edges ", n.edges(), n.edge(n.edges()[0]))) : s.info(
|
|
65
|
+
"Skipping copy of edge ",
|
|
66
|
+
f.v,
|
|
67
|
+
"-->",
|
|
68
|
+
f.w,
|
|
69
|
+
" rootId: ",
|
|
70
|
+
r,
|
|
71
|
+
" clusterId:",
|
|
72
|
+
e
|
|
73
|
+
);
|
|
74
|
+
} catch (w) {
|
|
75
|
+
s.error(w);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
s.debug("Removing node", a), t.removeNode(a);
|
|
80
|
+
});
|
|
81
|
+
}, k = (e, t) => {
|
|
82
|
+
const n = t.children(e);
|
|
83
|
+
let r = [...n];
|
|
84
|
+
for (const i of n)
|
|
85
|
+
R[i] = e, r = [...r, ...k(i, t)];
|
|
86
|
+
return r;
|
|
87
|
+
}, C = (e, t) => {
|
|
88
|
+
s.trace("Searching", e);
|
|
89
|
+
const n = t.children(e);
|
|
90
|
+
if (s.trace("Searching children of id ", e, n), n.length < 1)
|
|
91
|
+
return s.trace("This is a valid node", e), e;
|
|
92
|
+
for (const r of n) {
|
|
93
|
+
const i = C(r, t);
|
|
94
|
+
if (i)
|
|
95
|
+
return s.trace("Found replacement for", e, " => ", i), i;
|
|
96
|
+
}
|
|
97
|
+
}, S = (e) => !l[e] || !l[e].externalConnections ? e : l[e] ? l[e].id : e, st = (e, t) => {
|
|
98
|
+
if (!e || t > 10) {
|
|
99
|
+
s.debug("Opting out, no graph ");
|
|
100
|
+
return;
|
|
101
|
+
} else
|
|
102
|
+
s.debug("Opting in, graph ");
|
|
103
|
+
e.nodes().forEach(function(n) {
|
|
104
|
+
e.children(n).length > 0 && (s.warn(
|
|
105
|
+
"Cluster identified",
|
|
106
|
+
n,
|
|
107
|
+
" Replacement id in edges: ",
|
|
108
|
+
C(n, e)
|
|
109
|
+
), g[n] = k(n, e), l[n] = { id: C(n, e), clusterData: e.node(n) });
|
|
110
|
+
}), e.nodes().forEach(function(n) {
|
|
111
|
+
const r = e.children(n), i = e.edges();
|
|
112
|
+
r.length > 0 ? (s.debug("Cluster identified", n, g), i.forEach((a) => {
|
|
113
|
+
if (a.v !== n && a.w !== n) {
|
|
114
|
+
const d = B(a.v, n), u = B(a.w, n);
|
|
115
|
+
d ^ u && (s.warn("Edge: ", a, " leaves cluster ", n), s.warn("Descendants of XXX ", n, ": ", g[n]), l[n].externalConnections = !0);
|
|
116
|
+
}
|
|
117
|
+
})) : s.debug("Not a cluster ", n, g);
|
|
118
|
+
});
|
|
119
|
+
for (let n of Object.keys(l)) {
|
|
120
|
+
const r = l[n].id, i = e.parent(r);
|
|
121
|
+
i !== n && l[i] && !l[i].externalConnections && (l[n].id = i);
|
|
122
|
+
}
|
|
123
|
+
e.edges().forEach(function(n) {
|
|
124
|
+
const r = e.edge(n);
|
|
125
|
+
s.warn("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(n)), s.warn("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(e.edge(n)));
|
|
126
|
+
let i = n.v, a = n.w;
|
|
127
|
+
if (s.warn(
|
|
128
|
+
"Fix XXX",
|
|
129
|
+
l,
|
|
130
|
+
"ids:",
|
|
131
|
+
n.v,
|
|
132
|
+
n.w,
|
|
133
|
+
"Translating: ",
|
|
134
|
+
l[n.v],
|
|
135
|
+
" --- ",
|
|
136
|
+
l[n.w]
|
|
137
|
+
), l[n.v] && l[n.w] && l[n.v] === l[n.w]) {
|
|
138
|
+
s.warn("Fixing and trixing link to self - removing XXX", n.v, n.w, n.name), s.warn("Fixing and trixing - removing XXX", n.v, n.w, n.name), i = S(n.v), a = S(n.w), e.removeEdge(n.v, n.w, n.name);
|
|
139
|
+
const d = n.w + "---" + n.v;
|
|
140
|
+
e.setNode(d, {
|
|
141
|
+
domId: d,
|
|
142
|
+
id: d,
|
|
143
|
+
labelStyle: "",
|
|
144
|
+
labelText: r.label,
|
|
145
|
+
padding: 0,
|
|
146
|
+
shape: "labelRect",
|
|
147
|
+
style: ""
|
|
148
|
+
});
|
|
149
|
+
const u = structuredClone(r), f = structuredClone(r);
|
|
150
|
+
u.label = "", u.arrowTypeEnd = "none", f.label = "", u.fromCluster = n.v, f.toCluster = n.v, e.setEdge(i, d, u, n.name + "-cyclic-special"), e.setEdge(d, a, f, n.name + "-cyclic-special");
|
|
151
|
+
} else if (l[n.v] || l[n.w]) {
|
|
152
|
+
if (s.warn("Fixing and trixing - removing XXX", n.v, n.w, n.name), i = S(n.v), a = S(n.w), e.removeEdge(n.v, n.w, n.name), i !== n.v) {
|
|
153
|
+
const d = e.parent(i);
|
|
154
|
+
l[d].externalConnections = !0, r.fromCluster = n.v;
|
|
155
|
+
}
|
|
156
|
+
if (a !== n.w) {
|
|
157
|
+
const d = e.parent(a);
|
|
158
|
+
l[d].externalConnections = !0, r.toCluster = n.w;
|
|
159
|
+
}
|
|
160
|
+
s.warn("Fix Replacing with XXX", i, a, n.name), e.setEdge(i, a, r, n.name);
|
|
161
|
+
}
|
|
162
|
+
}), s.warn("Adjusted Graph", m(e)), F(e, 0), s.trace(l);
|
|
163
|
+
}, F = (e, t) => {
|
|
164
|
+
if (s.warn("extractor - ", t, m(e), e.children("D")), t > 10) {
|
|
165
|
+
s.error("Bailing out");
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
let n = e.nodes(), r = !1;
|
|
169
|
+
for (const i of n) {
|
|
170
|
+
const a = e.children(i);
|
|
171
|
+
r = r || a.length > 0;
|
|
172
|
+
}
|
|
173
|
+
if (!r) {
|
|
174
|
+
s.debug("Done, no node has children", e.nodes());
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
s.debug("Nodes = ", n, t);
|
|
178
|
+
for (const i of n)
|
|
179
|
+
if (s.debug(
|
|
180
|
+
"Extracting node",
|
|
181
|
+
i,
|
|
182
|
+
l,
|
|
183
|
+
l[i] && !l[i].externalConnections,
|
|
184
|
+
!e.parent(i),
|
|
185
|
+
e.node(i),
|
|
186
|
+
e.children("D"),
|
|
187
|
+
" Depth ",
|
|
188
|
+
t
|
|
189
|
+
), !l[i])
|
|
190
|
+
s.debug("Not a cluster", i, t);
|
|
191
|
+
else if (!l[i].externalConnections && // !graph.parent(node) &&
|
|
192
|
+
e.children(i) && e.children(i).length > 0) {
|
|
193
|
+
s.warn(
|
|
194
|
+
"Cluster without external connections, without a parent and with children",
|
|
195
|
+
i,
|
|
196
|
+
t
|
|
197
|
+
);
|
|
198
|
+
let d = e.graph().rankdir === "TB" ? "LR" : "TB";
|
|
199
|
+
l[i] && l[i].clusterData && l[i].clusterData.dir && (d = l[i].clusterData.dir, s.warn("Fixing dir", l[i].clusterData.dir, d));
|
|
200
|
+
const u = new A({
|
|
201
|
+
multigraph: !0,
|
|
202
|
+
compound: !0
|
|
203
|
+
}).setGraph({
|
|
204
|
+
rankdir: d,
|
|
205
|
+
// Todo: set proper spacing
|
|
206
|
+
nodesep: 50,
|
|
207
|
+
ranksep: 50,
|
|
208
|
+
marginx: 8,
|
|
209
|
+
marginy: 8
|
|
210
|
+
}).setDefaultEdgeLabel(function() {
|
|
211
|
+
return {};
|
|
212
|
+
});
|
|
213
|
+
s.warn("Old graph before copy", m(e)), P(i, e, u, i), e.setNode(i, {
|
|
214
|
+
clusterNode: !0,
|
|
215
|
+
id: i,
|
|
216
|
+
clusterData: l[i].clusterData,
|
|
217
|
+
labelText: l[i].labelText,
|
|
218
|
+
graph: u
|
|
219
|
+
}), s.warn("New graph after copy node: (", i, ")", m(u)), s.debug("Old graph after copy", m(e));
|
|
220
|
+
} else
|
|
221
|
+
s.warn(
|
|
222
|
+
"Cluster ** ",
|
|
223
|
+
i,
|
|
224
|
+
" **not meeting the criteria !externalConnections:",
|
|
225
|
+
!l[i].externalConnections,
|
|
226
|
+
" no parent: ",
|
|
227
|
+
!e.parent(i),
|
|
228
|
+
" children ",
|
|
229
|
+
e.children(i) && e.children(i).length > 0,
|
|
230
|
+
e.children("D"),
|
|
231
|
+
t
|
|
232
|
+
), s.debug(l);
|
|
233
|
+
n = e.nodes(), s.warn("New list of nodes", n);
|
|
234
|
+
for (const i of n) {
|
|
235
|
+
const a = e.node(i);
|
|
236
|
+
s.warn(" Now next level", i, a), a.clusterNode && F(a.graph, t + 1);
|
|
237
|
+
}
|
|
238
|
+
}, G = (e, t) => {
|
|
239
|
+
if (t.length === 0)
|
|
240
|
+
return [];
|
|
241
|
+
let n = Object.assign(t);
|
|
242
|
+
return t.forEach((r) => {
|
|
243
|
+
const i = e.children(r), a = G(e, i);
|
|
244
|
+
n = [...n, ...a];
|
|
245
|
+
}), n;
|
|
246
|
+
}, rt = (e) => G(e, e.children()), at = (e, t) => {
|
|
247
|
+
s.info("Creating subgraph rect for ", t.id, t);
|
|
248
|
+
const n = D(), r = e.insert("g").attr("class", "cluster" + (t.class ? " " + t.class : "")).attr("id", t.id), i = r.insert("rect", ":first-child"), a = X(n.flowchart.htmlLabels), d = r.insert("g").attr("class", "cluster-label"), u = t.labelType === "markdown" ? I(d, t.labelText, { style: t.labelStyle, useHtmlLabels: a }) : d.node().appendChild(L(t.labelText, t.labelStyle, void 0, !0));
|
|
249
|
+
let f = u.getBBox();
|
|
250
|
+
if (X(n.flowchart.htmlLabels)) {
|
|
251
|
+
const c = u.children[0], o = J(u);
|
|
252
|
+
f = c.getBoundingClientRect(), o.attr("width", f.width), o.attr("height", f.height);
|
|
253
|
+
}
|
|
254
|
+
const h = 0 * t.padding, w = h / 2, x = t.width <= f.width + h ? f.width + h : t.width;
|
|
255
|
+
t.width <= f.width + h ? t.diff = (f.width - t.width) / 2 - t.padding / 2 : t.diff = -t.padding / 2, s.trace("Data ", t, JSON.stringify(t)), i.attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("x", t.x - x / 2).attr("y", t.y - t.height / 2 - w).attr("width", x).attr("height", t.height + h);
|
|
256
|
+
const { subGraphTitleTopMargin: v } = T(n);
|
|
257
|
+
a ? d.attr(
|
|
258
|
+
"transform",
|
|
259
|
+
// This puts the label on top of the box instead of inside it
|
|
260
|
+
`translate(${t.x - f.width / 2}, ${t.y - t.height / 2 + v})`
|
|
261
|
+
) : d.attr(
|
|
262
|
+
"transform",
|
|
263
|
+
// This puts the label on top of the box instead of inside it
|
|
264
|
+
`translate(${t.x}, ${t.y - t.height / 2 + v})`
|
|
265
|
+
);
|
|
266
|
+
const y = i.node().getBBox();
|
|
267
|
+
return t.width = y.width, t.height = y.height, t.intersect = function(c) {
|
|
268
|
+
return p(t, c);
|
|
269
|
+
}, r;
|
|
270
|
+
}, ct = (e, t) => {
|
|
271
|
+
const n = e.insert("g").attr("class", "note-cluster").attr("id", t.id), r = n.insert("rect", ":first-child"), i = 0 * t.padding, a = i / 2;
|
|
272
|
+
r.attr("rx", t.rx).attr("ry", t.ry).attr("x", t.x - t.width / 2 - a).attr("y", t.y - t.height / 2 - a).attr("width", t.width + i).attr("height", t.height + i).attr("fill", "none");
|
|
273
|
+
const d = r.node().getBBox();
|
|
274
|
+
return t.width = d.width, t.height = d.height, t.intersect = function(u) {
|
|
275
|
+
return p(t, u);
|
|
276
|
+
}, n;
|
|
277
|
+
}, ot = (e, t) => {
|
|
278
|
+
const n = D(), r = e.insert("g").attr("class", t.classes).attr("id", t.id), i = r.insert("rect", ":first-child"), a = r.insert("g").attr("class", "cluster-label"), d = r.append("rect"), u = a.node().appendChild(L(t.labelText, t.labelStyle, void 0, !0));
|
|
279
|
+
let f = u.getBBox();
|
|
280
|
+
if (X(n.flowchart.htmlLabels)) {
|
|
281
|
+
const c = u.children[0], o = J(u);
|
|
282
|
+
f = c.getBoundingClientRect(), o.attr("width", f.width), o.attr("height", f.height);
|
|
283
|
+
}
|
|
284
|
+
f = u.getBBox();
|
|
285
|
+
const h = 0 * t.padding, w = h / 2, x = t.width <= f.width + t.padding ? f.width + t.padding : t.width;
|
|
286
|
+
t.width <= f.width + t.padding ? t.diff = (f.width + t.padding * 0 - t.width) / 2 : t.diff = -t.padding / 2, i.attr("class", "outer").attr("x", t.x - x / 2 - w).attr("y", t.y - t.height / 2 - w).attr("width", x + h).attr("height", t.height + h), d.attr("class", "inner").attr("x", t.x - x / 2 - w).attr("y", t.y - t.height / 2 - w + f.height - 1).attr("width", x + h).attr("height", t.height + h - f.height - 3);
|
|
287
|
+
const { subGraphTitleTopMargin: v } = T(n);
|
|
288
|
+
a.attr(
|
|
289
|
+
"transform",
|
|
290
|
+
`translate(${t.x - f.width / 2}, ${t.y - t.height / 2 - t.padding / 3 + (X(n.flowchart.htmlLabels) ? 5 : 3) + v})`
|
|
291
|
+
);
|
|
292
|
+
const y = i.node().getBBox();
|
|
293
|
+
return t.height = y.height, t.intersect = function(c) {
|
|
294
|
+
return p(t, c);
|
|
295
|
+
}, r;
|
|
296
|
+
}, lt = (e, t) => {
|
|
297
|
+
const n = e.insert("g").attr("class", t.classes).attr("id", t.id), r = n.insert("rect", ":first-child"), i = 0 * t.padding, a = i / 2;
|
|
298
|
+
r.attr("class", "divider").attr("x", t.x - t.width / 2 - a).attr("y", t.y - t.height / 2).attr("width", t.width + i).attr("height", t.height + i);
|
|
299
|
+
const d = r.node().getBBox();
|
|
300
|
+
return t.width = d.width, t.height = d.height, t.diff = -t.padding / 2, t.intersect = function(u) {
|
|
301
|
+
return p(t, u);
|
|
302
|
+
}, n;
|
|
303
|
+
}, ft = { rect: at, roundedWithTitle: ot, noteGroup: ct, divider: lt };
|
|
304
|
+
let j = {};
|
|
305
|
+
const dt = (e, t) => {
|
|
306
|
+
s.trace("Inserting cluster");
|
|
307
|
+
const n = t.shape || "rect";
|
|
308
|
+
j[t.id] = ft[n](e, t);
|
|
309
|
+
}, ut = () => {
|
|
310
|
+
j = {};
|
|
311
|
+
}, M = async (e, t, n, r, i, a) => {
|
|
312
|
+
s.info("Graph in recursive render: XXX", m(t), i);
|
|
313
|
+
const d = t.graph().rankdir;
|
|
314
|
+
s.trace("Dir in recursive render - dir:", d);
|
|
315
|
+
const u = e.insert("g").attr("class", "root");
|
|
316
|
+
t.nodes() ? s.info("Recursive render XXX", t.nodes()) : s.info("No nodes found for", t), t.edges().length > 0 && s.trace("Recursive edges", t.edge(t.edges()[0]));
|
|
317
|
+
const f = u.insert("g").attr("class", "clusters"), h = u.insert("g").attr("class", "edgePaths"), w = u.insert("g").attr("class", "edgeLabels"), x = u.insert("g").attr("class", "nodes");
|
|
318
|
+
await Promise.all(
|
|
319
|
+
t.nodes().map(async function(c) {
|
|
320
|
+
const o = t.node(c);
|
|
321
|
+
if (i !== void 0) {
|
|
322
|
+
const b = JSON.parse(JSON.stringify(i.clusterData));
|
|
323
|
+
s.info("Setting data for cluster XXX (", c, ") ", b, i), t.setNode(i.id, b), t.parent(c) || (s.trace("Setting parent", c, i.id), t.setParent(c, i.id, b));
|
|
324
|
+
}
|
|
325
|
+
if (s.info("(Insert) Node XXX" + c + ": " + JSON.stringify(t.node(c))), o && o.clusterNode) {
|
|
326
|
+
s.info("Cluster identified", c, o.width, t.node(c));
|
|
327
|
+
const b = await M(
|
|
328
|
+
x,
|
|
329
|
+
o.graph,
|
|
330
|
+
n,
|
|
331
|
+
r,
|
|
332
|
+
t.node(c),
|
|
333
|
+
a
|
|
334
|
+
), E = b.elem;
|
|
335
|
+
W(o, E), o.diff = b.diff || 0, s.info("Node bounds (abc123)", c, o, o.width, o.x, o.y), Y(E, o), s.warn("Recursive render complete ", E, o);
|
|
336
|
+
} else
|
|
337
|
+
t.children(c).length > 0 ? (s.info("Cluster - the non recursive path XXX", c, o.id, o, t), s.info(C(o.id, t)), l[o.id] = { id: C(o.id, t), node: o }) : (s.info("Node - the non recursive path", c, o.id, o), await _(x, t.node(c), d));
|
|
338
|
+
})
|
|
339
|
+
), t.edges().forEach(function(c) {
|
|
340
|
+
const o = t.edge(c.v, c.w, c.name);
|
|
341
|
+
s.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(c)), s.info("Edge " + c.v + " -> " + c.w + ": ", c, " ", JSON.stringify(t.edge(c))), s.info("Fix", l, "ids:", c.v, c.w, "Translating: ", l[c.v], l[c.w]), q(w, o);
|
|
342
|
+
}), t.edges().forEach(function(c) {
|
|
343
|
+
s.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(c));
|
|
344
|
+
}), s.info("#############################################"), s.info("### Layout ###"), s.info("#############################################"), s.info(t), H(t), s.info("Graph after layout:", m(t));
|
|
345
|
+
let v = 0;
|
|
346
|
+
const { subGraphTitleTotalMargin: y } = T(a);
|
|
347
|
+
return rt(t).forEach(function(c) {
|
|
348
|
+
const o = t.node(c);
|
|
349
|
+
s.info("Position " + c + ": " + JSON.stringify(t.node(c))), s.info(
|
|
350
|
+
"Position " + c + ": (" + o.x,
|
|
351
|
+
"," + o.y,
|
|
352
|
+
") width: ",
|
|
353
|
+
o.width,
|
|
354
|
+
" height: ",
|
|
355
|
+
o.height
|
|
356
|
+
), o && o.clusterNode ? (o.y += y, O(o)) : t.children(c).length > 0 ? (o.height += y, dt(f, o), l[o.id].node = o) : (o.y += y / 2, O(o));
|
|
357
|
+
}), t.edges().forEach(function(c) {
|
|
358
|
+
const o = t.edge(c);
|
|
359
|
+
s.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(o), o), o.points.forEach((E) => E.y += y / 2);
|
|
360
|
+
const b = z(h, c, o, l, n, t, r);
|
|
361
|
+
K(o, b);
|
|
362
|
+
}), t.nodes().forEach(function(c) {
|
|
363
|
+
const o = t.node(c);
|
|
364
|
+
s.info(c, o.type, o.diff), o.type === "group" && (v = o.diff);
|
|
365
|
+
}), { elem: u, diff: v };
|
|
366
|
+
}, bt = async (e, t, n, r, i) => {
|
|
367
|
+
U(e, n, r, i), Q(), Z(), ut(), nt(), s.warn("Graph at first:", JSON.stringify(m(t))), st(t), s.warn("Graph after:", JSON.stringify(m(t)));
|
|
368
|
+
const a = D();
|
|
369
|
+
await M(e, t, r, i, void 0, a);
|
|
370
|
+
};
|
|
371
|
+
export {
|
|
372
|
+
bt as r
|
|
373
|
+
};
|
|
Binary file
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { defineComponent as u, openBlock as I, createElementBlock as S, createElementVNode as N, createStaticVNode as y, createVNode as g, unref as t, withCtx as i, createTextVNode as A } from "vue";
|
|
2
|
+
import { u as T, N as D } from "./main-d5ddd425.mjs";
|
|
3
|
+
const x = "data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDAwIDMwMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48bWFzayBpZD0iYSIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMzYiIHk9IjMyIiB3aWR0aD0iMzI5IiBoZWlnaHQ9IjIzNyI+PHBhdGggZD0iTTM2NC41IDMySDM2djIzN2gzMjguNVYzMloiIGZpbGw9IiNmZmYiIC8+PC9tYXNrPjxnIG1hc2s9InVybCgjYSkiPjxnIG9wYWNpdHk9Ii40Ij48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE5NC4xOTYgNzcuOTAzYzIuMy42IDQuNSAxLjIgNi44IDEuOCAyLjMuNiA0LjYgMS4zIDYuOSAyIDQuOCAxLjQgOS41IDMuMSAxNCA1LjEgMS4yLjUgMi40IDEuMSAzLjYgMS44LjYuMyAxLjIuNyAxLjggMS4xLjYuNCAxLjEuOCAxLjcgMS4zIDIgMS43IDMuNyAzLjYgNS4xIDUuNyAyLjcgNCA0LjIgOC4xIDUuOCAxMiAxLjYgMy45IDMgNy43IDQuOCAxMS40IDEuNyAzLjYgNCA3IDYuNiAxMC4yIDIuNiAzLjEgNS44IDUuOCA5LjQgNy45IDMuNyAyLjEgNy42IDMuNyAxMS42IDQuNCAxLjkuMyAzLjkuNCA1LjguMiAxLjctLjIgMy40LS42IDUtMS4zIDIuOC0xLjMgNC44LTMuNSA1LjYtNi4xLjQtMS4zLjYtMi43LjUtNC0uMS0xLjQtLjMtMi45LS44LTQuMi0uMS0uNC0uMy0uNy0uNC0xLjFsLS41LTEuM2MtLjQtLjgtLjctMS43LTEuMS0yLjUtLjgtMS42LTEuNy0zLjItMi43LTQuOC0yLTMuMi00LjUtNi4zLTcuMS05LjgtMi45LTMuNy01LjQtNy41LTcuNi0xMS41LTIuMi00LjItMy45LTguNS01LjEtMTIuOS0uMi0uNS0uMy0xLjEtLjQtMS42bC0uNC0xLjVjLS4yLS44LS40LTEuNi0uNy0yLjUtLjUtMS43LTEuMS0zLjMtMS44LTQuOS0yLjgtNi40LTcuMS0xMi0xMi45LTE2LjItMy0yLjItNi4yLTQtOS44LTUuNC0xLjgtLjgtMy43LTEuNS01LjctMi0yLS42LTQuMS0xLjEtNi4xLTEuNi0yLjEtLjQtNC4zLS44LTYuNS0xLjEtMS0uMS0yLjQtLjMtMy42LS40LTEuMy0uMS0yLjUtLjMtMy43LS41LTQuOS0uOC05LjctMS44LTE0LjUtMy4yLTQuNy0xLjMtOS4yLTIuOC0xMy42LTQuNC0yLjItLjgtNC40LTEuNi02LjYtMi4zLTIuMS0uNy00LjMtMS4yLTYuNi0xLjQtNC43LS4zLTkuMy4zLTEzLjggMS41LTQuNCAxLjMtOC40IDMuNS0xMSA2LjUtLjcuNy0xLjIgMS41LTEuNyAyLjMtLjUuOC0uOCAxLjYtMS4xIDIuNS0uNiAxLjctLjcgMy40LS42IDUuMS40IDMuNCAyLjEgNi42IDQuNCA5LjUuMS4yLjMuNC40LjVsLjQuNGMuMy4zLjYuNS45LjguNi41IDEuMyAxIDIgMS41IDEuNSAxIDMuMiAxLjggNC45IDIuNSAzLjggMS42IDcuOCAyLjkgMTEuOSA0IDguNCAyLjMgMTcuNCA0LjMgMjYuNSA2LjVaTTIxMC4yIDk1YzIuMi40IDQuMy45IDYuMyAxLjQgMSAuMyAxLjkuNiAyLjguOS40LjIuOC4zIDEuMi41LjQuMS44LjMgMS4yLjUgMS42LjkgMy4xIDIgNC40IDMuMiAyLjcgMi43IDUgNi4xIDcgOS43IDQuMSA3LjEgNy41IDE1IDEzIDIyLjEgMS40IDEuOCAyLjkgMy41IDQuNSA1LjEgMS43IDEuNiAzLjUgMy4yIDUuNCA0LjYgMy45IDMgOC40IDUuNCAxMy4zIDcuMSAyLjcuOSA1LjUgMS40IDguMyAxLjYgMy4xLjIgNi4yLS4xIDkuMS0uOSAzLjItLjggNi0yLjIgOC41LTQgMi41LTEuOSA0LjUtNC4yIDYtNi43czIuNC01LjIgMi43LTcuOWMuMy0yLjcuMi01LjMtLjMtNy45LS4xLS43LS4yLTEuMy0uNC0xLjlsLS41LTEuN2MtLjMtMS4xLS43LTIuMi0xLjEtMy4zLS45LTIuMi0xLjgtNC4zLTIuOS02LjQtMi4xLTQuMS00LjYtNy45LTYuOC0xMS4zLTIuMS0zLjItMy45LTYuNi01LjUtMTAtMS41LTMuMy0yLjYtNi43LTMuNC0xMC4ybC0uNi0yLjhjLS4yLTEuMi0uNS0yLjQtLjktMy41LS43LTIuMy0xLjYtNC41LTIuNi02LjctMi00LjUtNC43LTguNi04LjEtMTIuNC0zLjQtMy45LTcuNS03LjItMTIuMi0xMC00LjYtMi43LTkuNy00LjctMTUuMi01LjktNS4yLTEuMi0xMC42LTEuNy0xNi0xLjUtMi42LjEtNS4yLjMtNy44LjYtMS4zLjItMi40LjQtMy41LjUtMS4xLjEtMi4zLjItMy40LjMtNC42LjQtOS4yLjQtMTMuOCAwLTIuMy0uMi00LjYtLjUtNi45LS45LTIuMy0uNC00LjctLjgtNi45LTEuNC0yLjItLjYtNC41LTEuMi02LjgtMS44LTEuMi0uMy0yLjMtLjYtMy41LS44LTEuMi0uMy0yLjQtLjQtMy43LS41LTQuOS0uMi05LjguMi0xNS4yIDEuNC01IDEtOS42IDMtMTMuNSA1LjktMSAuOC0xLjkgMS42LTIuNyAyLjUtLjguOS0xLjYgMS45LTIuMiAyLjktMS4zIDIuMi0yLjIgNC40LTIuNiA2LjgtLjQgMi4zLS40IDQuNyAwIDcuMS40IDIuMyAxIDQuNiAyIDYuOC4yLjMuMy41LjQuOGwuNS45Yy40LjYuNyAxLjEgMS4xIDEuNy44IDEuMSAxLjYgMi4xIDIuNiAzLjEuOSAxIDEuOSAxLjkgMyAyLjcgMS4xLjggMi4xIDEuNiAzLjIgMi4zIDQuMyAyLjcgOC44IDQuOSAxMy43IDYuNyA5LjQgMy40IDE4LjkgNS41IDI4LjIgNy4yIDIuNC40IDQuNy44IDcgMS4ybDYuOSAxLjFjMi4zLjQgNC41LjggNi43IDEuMloiIGZpbGw9IiNFQkVCRUIiIG9wYWNpdHk9Ii40IiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTU2LjMwMiAxMDAuOTk1Yy0xLjMuNy0yLjYgMS4zLTMuOSAybC0zLjggMmMtNSAyLjgtOS44IDUuNi0xNC42IDguMS0yLjQgMS4zLTQuOCAyLjUtNy4yIDMuNS0yLjMgMS00LjcgMS44LTcuMSAyLjUtMi4zLjUtNC43IDEtNy4xIDEuMi0yLjUuMy01IC41LTcuNi41aC04LjFsLTguNC0uMmMtNi0uMi0xMiAwLTE4IC42LTMuMy4zLTYuNS45LTkuNyAxLjctMy4zLjktNi42IDIuMS05LjYgMy42LTMuMSAxLjUtNS45IDMuNS04LjQgNS43LS42LjYtMS4zIDEuMi0xLjggMS44LS41LjYtMS4xIDEuMy0xLjYgMnMtMS4xIDEuNS0xLjQgMi4yYy0uMy43LS43IDEuNS0xIDIuMy0xIDMtMS4zIDYuMS0uNyA5LjEuNSAyLjYgMS40IDUuMiAyLjYgNy42IDEuMiAyLjMgMi41IDQuNSAzLjkgNi42IDEuMyAyLjEgMi44IDQuMiA0LjIgNi4yIDIuOSA0LjEgNS42IDguMSA4IDEyLjMgMi40IDQuMSA0LjIgOC41IDUuMyAxMy4xbDIuNyAxNC4yLjggMy41Yy4zIDEuMi41IDIuMy44IDMuNS4zIDEuMi42IDIuMy45IDMuNS4zIDEuMi42IDIuMy45IDMuNSAxLjIgNC43IDIuOCA5LjQgNC43IDE0IDEgMi4zIDIuMiA0LjcgMy41IDYuOSAxLjQgMi4zIDMgNC41IDQuOCA2LjYuOSAxLjEgMiAyLjEgMyAzLjEuNS40IDEuMS45IDEuNyAxLjQuMy4yLjYuNS45LjdsMSAuN2MyLjcgMS45IDUuNiAzLjQgOC44IDQuNS44LjMgMS43LjYgMi41LjguOS4yIDEuNy40IDIuNi42LjQuMS45LjIgMS4zLjNsMS4zLjIgMi43LjMgMi43LjFoMS4zbDMuOS0uMmMuOS0uMSAxLjctLjIgMi42LS4zIDEuNy0uMiAzLjMtLjUgNS0uOWwxLjItLjMgMS4yLS4zIDIuNC0uN2MuOC0uMiAxLjUtLjUgMi4zLS43LjgtLjMgMS41LS41IDIuMy0uOCAxLjYtLjYgMy4xLTEuMSA0LjYtMS44IDMuMi0xLjMgNi4zLTIuOSA5LjEtNC44IDMtMiA1LjYtNC4zIDcuOS02LjggMi4yLTIuNCA0LTQuOSA1LjYtNy42IDEuNS0yLjUgMi43LTUgMy44LTcuMyAyLjItNC43IDQuMi05LjIgNi4yLTEzLjYgNC04LjggOC43LTE3LjQgMTMuOS0yNS43bDEtMS42IDEtMS42Yy43LTEgMS40LTIuMSAyLjEtMy4xbDQuMy02LjNjLjgtMS4xIDEuNS0yLjMgMi4yLTMuNC43LTEuMSAxLjQtMi4zIDIuMS0zLjQuNy0xLjIgMS40LTIuMyAyLTMuNS42LTEuMiAxLjItMi4zIDEuOC0zLjUgMS4yLTIuNCAyLjItNC44IDMuMi03LjJsLjctMS44LjctMS44Yy41LTEuMi44LTIuNSAxLjItMy43LjctMi41IDEuNC01LjEgMS44LTcuNi41LTIuNi44LTUuMS45LTcuNy40LTUuMS0uMi0xMC4yLTEuNy0xNS4yLS40LTEuMi0uOC0yLjQtMS4zLTMuNmwtLjgtMS44Yy0uMy0uNi0uNi0xLjEtLjktMS43LTEuMi0yLjMtMi43LTQuNS00LjUtNi41LTEuOC0yLTMuOC0zLjgtNi01LjUtLjYtLjQtMS4xLS44LTEuNy0xLjJsLTEuOC0xLjJjLTEuMy0uNy0yLjctMS40LTQuMS0xLjktMy0xLjEtNi4yLTEuNS05LjUtMS40LTMuMi4yLTYuMy44LTkuMyAxLjgtMi45LjktNS42IDIuMS04LjMgMy40Wm0zLjQwMSA0LjUwM2MtMi4zIDEuNC00LjUgMi44LTYuNyA0LjQtNC40IDMuMS04LjYgNi41LTEzLjIgOS44LTIuMyAxLjctNC43IDMuMy03LjIgNC45LTIuNiAxLjctNS40IDMuMS04LjMgNC40LTYuMiAyLjYtMTIuNiAzLjgtMTguOCA0LjUtMTIuMyAxLjMtMjMuNy41LTMzLjkgMS4yLTUuMS4zLTkuNyAxLTEzLjggMi41LTIuMS43LTQgMS43LTUuOCAyLjgtMS42IDEtMyAyLjItNCAzLjctMSAxLjYtMS42IDMuMy0xLjggNS4xLS4yIDIuMSAwIDQuMi41IDYuMy41IDIuMiAxLjEgNC40IDEuOSA2LjYuOCAyLjIgMS43IDQuNCAyLjcgNi42IDEuOSA0LjQgNC4xIDguOCA2LjEgMTMuMiAxLjkgNC40IDMuNSA4LjkgNC43IDEzLjYgMSA0LjYwMSAyLjIgOS4yMDEgMy44IDEzLjcwMWwuNiAxLjcuNiAxLjdjLjQgMS4xLjkgMi4yIDEuMyAzLjMuOSAyLjIgMS45IDQuNCAyLjkgNi41IDIuMSA0LjIgNC42IDguMyA3LjYgMTIuMSAxLjQgMS45IDMgMy42IDQuNyA1LjMgMS42IDEuNiAzLjQgMy4xIDUuMyA0LjUuOS43IDEuOSAxLjIgMi44IDEuOGwxLjUuOGMuMi4xLjUuMy43LjRsLjguM2MxLjkuOSAzLjkgMS41IDYuMSAxLjguNS4xIDEgLjIgMS41LjJsMS42LjFjLjMgMCAuNS4xLjguMUgxMDcuMTAzbDEuNi0uMWMuMyAwIC41IDAgLjgtLjFsLjgtLjEgMS42LS4yIDEuNy0uNGMyLjMtLjUgNC41LTEuMiA2LjctMiAuNi0uMiAxLjItLjQgMS43LS42LjYtLjIgMS4yLS40IDEuNy0uNyAxLjEtLjUgMi4yLS45IDMuMi0xLjQgMi0uOSAzLjgtMiA1LjUtMy4yIDEuNi0xLjEgMy0yLjQgNC4yLTMuOCAyLjUtMi44IDQuNS02LjcgNi43LTExIDEuMS0yLjIgMi4xLTQuNCAzLjItNi43czIuMy00LjYgMy40LTYuOWM0LjgtOS4zIDEwLjMtMTguMjAxIDE2LjYtMjYuOTAxbDEuMi0xLjYgMS4yLTEuNmMuOC0xLjEgMS42LTIuMSAyLjQtMy4ybDQuOC02LjFjMS41LTIgMy0zLjkgNC41LTUuOWwyLjEtM2MuNy0xIDEuNC0yIDItMyAxLjMtMiAyLjYtNC4xIDMuOC02LjJsLjktMS42LjgtMS42Yy42LTEgMS4xLTIuMSAxLjYtMy4yIDItNC4yIDMuNi04LjYgNC42LTEzIC41LTIuMi44LTQuNC45LTYuNi4xLTIuMiAwLTQuNC0uMy02LjYtLjYtNC4zLTIuNC04LjUtNS4yLTEyLjItMS40LTEuOC0zLTMuNS00LjktNS0uNS0uNC0uOS0uOC0xLjQtMS4xbC0xLjQtMWMtMS0uNi0yLTEuMS0zLjEtMS41LTIuMi0uOC00LjYtMS4yLTctMS0yLjUuMi01IC44LTcuMyAxLjctMi41IDEtNC44IDIuMS03IDMuNVpNMjIxLjMwMiAxNzNsLS43IDEuOC0xLjQgMy40Yy0uOCAxLjktMS43IDMuOC0yLjggNS43LS4yLjQtLjQuOC0uNyAxLjItLjIuMi0uMy40LS40LjZsLS40LjVjLS4yLjQtLjUuNy0uOCAxLjFsLS41LjUtLjYuNmMtMi4xIDEuOS00LjMgMy45LTYuMyA2LTQuMiA0LjMtNy44IDguOC0xMC45IDEzLjctMS41IDIuNS0yLjcgNS4xLTMuNCA3LjgtLjYgMi43LS42IDUuNS4yIDguMS44IDIuNiAyLjEgNS4xIDMuNyA3LjNzMy42IDQuMyA1LjcgNi4zYzIuMiAyIDQuNiAzLjkgNy4xIDUuNiAyLjYgMS43IDUuMyAzLjIgOC4yIDQuNi43LjQgMS41LjcgMi4yIDEgLjcuMyAxLjQuNiAyLjIuOS44LjMgMS41LjYgMi4zLjguNy4yIDEuNS41IDIuMy43IDMuMi45IDYuNSAxLjUgOS44IDEuOCAzLjQuMyA2LjguMyAxMC4yIDAgMy41LS4zIDctMSAxMC4zLTIuMS44LS4yIDEuNy0uNiAyLjUtLjlsMS4yLS41LjYtLjMuNi0uMyAxLjItLjYgMS4yLS42Yy44LS41IDEuNi0uOSAyLjMtMS41LjctLjYgMS41LTEuMSAyLjEtMS43LjYtLjYgMS4zLTEuMiAxLjktMS44IDEuMS0xLjIgMi4yLTIuNSAzLjEtMy45bC43LTFjLjEtLjQuMy0uNy41LTEuMSAxLjEtMi4yIDEuNy00LjUgMS45LTYuOS4xLTIuOS0uMy01LjgtMS4yLTguNi0xLjctNS4zLTQuMi0xMC01LjktMTQuOC0uNS0xLjItLjktMi40LTEuMi0zLjYtLjEtLjYtLjMtMS4yLS40LTEuOGwtLjMtMS44Yy0uMS0uNi0uMi0xLjEtLjItMS43VjE5NWwuMS0uOC4yLTEuOGMuNy01LjEgMS40LTEwLjQgMS40LTE1LjgtLjEtMS4zLS4xLTIuNy0uMi00LjEgMC0uNy0uMS0xLjQtLjItMi4xLS4yLS44LS4zLTEuNS0uNC0yLjItLjMtMS41LS43LTMtMS4yLTQuNS0uNi0xLjctMS40LTMuNC0yLjMtNS4zbC0uNS0uN2MtLjItLjItLjQtLjUtLjYtLjdsLS42LS43Yy0uMi0uMi0uNC0uNS0uNy0uNy0uMy0uMy0uNS0uNC0uOC0uNy0uMy0uMy0uNi0uNS0uOS0uN2wtLjUtLjNjLS4xLS4xLS4zLS4yLS41LS4zLS40LS4yLS43LS40LTEuMS0uNi0uOC0uNC0xLjYtLjctMi40LTEtLjQtLjEtLjktLjItMS4zLS4zbC0uNy0uMWMtLjIgMC0uNC0uMS0uNi0uMS0uOS0uMS0xLjctLjItMi42LS4yaC0yYy0xIDAtMi4xLjEtMy4xLjNsLTEuNi4zLTEuNi40Yy0xLjEuMy0yLjEuNi0zLjIgMS0uNS4yLTEuMS41LTEuNi43bC0uOC4zLS44LjRjLTIgMS0zLjkgMi4yLTUuNSAzLjctMS40IDEuNC0yLjggMi44LTMuOSA0LjQtMSAxLjQtMS45IDIuOC0yLjcgNC4zLS43IDEuNC0xLjQgMi43LTEuOSA0bC0uOCAxLjlaTTExNC45MDQgOTMuOTk1Yy4zLS4yLjYtLjUuOS0uN2wuOC0uOGMxLTEuMSAxLjctMi40IDEuOS0zLjguMS0xIC4xLTItLjEtMy0uMi0uOC0uNS0xLjctLjgtMi41LTEuMy0zLjEtMy01LjUtNC41LThzLTIuOC01LjItNC4zLTcuOS0zLTUuNC01LjItNy43Yy0yLjEtMi4zLTQuOC00LjItNy44LTUuNi0zLjItMS40LTYuNy0yLjItMTAuMy0yLjQtMy44LS4xLTcuNi4xLTExLjMuNy0xLjguMy0zLjYuNy01LjMgMS4zLS44LjMtMS42LjctMi40IDEuMS0uNy41LTEuNCAxLTIgMS41LTEuMiAxLjEtMi4zIDIuMi0zLjMgMy4zLTEuMSAxLjMtMiAyLjctMi43IDQuMi0uOCAxLjctMS4zIDMuNC0xLjQgNS4yLS4xIDEuOCAwIDMuNy40IDUuNS43IDMuNCAyLjQgNi42IDQuOSA5LjMgMi4zIDIuNCA1IDQuNiA4IDYuNCAyLjkgMS44IDYgMy4yIDkuMyA0LjMgMy4zIDEuMSA2LjcgMiAxMC4xIDIuNiAzLjQuNyA3IDEuMiAxMC44IDEuMSAyLjEgMCA0LS4yIDYtLjYuNS0uMSAxLS4yIDEuNi0uNGwuOC0uMi44LS40Yy41LS4yIDEuMi0uNCAxLjctLjYuNi0uMiAxLjEtLjUgMS43LS44LjYtLjQgMS4xLS43IDEuNy0xLjFaIiBmaWxsPSIjRUJFQkVCIiBvcGFjaXR5PSIuNCIgLz48L2c+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNDguNiAyNTUuMmMwLTctNS43LTEyLjctMTIuNy0xMi43LTcgMC0xMi43IDUuNy0xMi43IDEyLjcgMCA3IDUuNyAxMi43IDEyLjcgMTIuNyA3IDAgMTIuNy01LjcgMTIuNy0xMi43Wm0tMjIuNC4xYzAgNS40IDQuMyA5LjcgOS43IDkuNyA1LjQgMCA5LjctNC4zIDkuNy05LjcgMC01LjQtNC40LTkuNy05LjctOS43LTUuMyAwLTkuNyA0LjMtOS43IDkuN1oiIGZpbGw9IiMwM0Q1QjciIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0xMzguMjk3IDE2My43OTcgMTIuNS00LjJjLjUtLjIuOC0uOC42LTEuMy0uMi0uNS0uOC0uOC0xLjMtLjZsLTEyLjUgNC4yYy0uNS4yLS44LjgtLjYgMS4zLjEuNC41LjcuOS43LjEgMCAuMy0uMS40LS4xWk0xNTUuNDAyIDE4OS43OTljMS45LS43IDMuNS0yLjEgNC40LTMuOSAxLjgtMy44LjMtOC40LTMuNS0xMC4zLTEuOS0uOS00LTEuMS01LjktLjQtMS45LjctMy41IDIuMS00LjQgMy45LTEuOCAzLjgtLjMgOC40IDMuNSAxMC4zIDEuMS41IDIuMi44IDMuNC44LjggMCAxLjYtLjEgMi41LS40Wm0tNC4yOTktMTIuNTk5Yy0xLjQuNS0yLjYgMS41LTMuMyAyLjktMS40IDIuOC0uMiA2LjIgMi42IDcuNiAxLjQuNyAyLjkuOCA0LjMuM3MyLjYtMS41IDMuMy0yLjljMS40LTIuOC4yLTYuMi0yLjYtNy42LS44LS40LTEuNy0uNi0yLjUtLjYtLjYgMC0xLjIuMS0xLjguM1pNMTY5LjAwNCAyMDEuNDA0bDcuNC0zNC4zYy4xLS42LS4zLTEuMS0uOC0xLjItLjYtLjEtMS4xLjMtMS4yLjhsLTcuNCAzNC4zYy0uMS42LjMgMS4xLjggMS4yaC4yYy40IDAgLjktLjMgMS0uOFoiIGZpbGw9IiNGRkM0MTIiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im01Mi40OTcgMjAwLjI5NyAxMy4zLTQuOGMuNS0uMi44LS44LjYtMS4zLS4yLS41LS44LS44LTEuMy0uNmwtMTMuMyA0LjhjLS41LjItLjguOC0uNiAxLjMuMS40LjUuNy45LjcuMSAwIC4yIDAgLjQtLjFaTTE0My44MDEgMTk3LjZsLTI0LjUtNGMtLjQgMC0uOC4yLTEgLjUtLjMuMy0uMi44IDAgMS4xbDIwLjQgMjguNWMuMi4yLjUuNC44LjQuMSAwIC4yIDAgLjMtLjEuNC0uMS43LS40LjgtLjhsNC0yNC41Yy4xLS41LS4zLTEtLjgtMS4xWm0tNC45MDEgMjMgMy41LTIxLjEtMjEuMS0zLjUgMTcuNiAyNC42WiIgZmlsbD0iIzAzRDVCNyIgLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTM0NS4xOTkgMTE4LjhjNC42IDAgOC40LTMuOCA4LjQtOC40LS4xLTQuNi0zLjktOC40LTguMS04LjRoLTEuNVY0MGMwLS4zLS4yLS41LS4yLS44IDAtLjMtLjEtLjYtLjItLjkgMC0uMS0uMi0uNC0uMi0uNmwtLjMtLjljLS4yLS4yLS4zLS40LS4zLS42LS4yLS4zLS40LS42LS42LS44LS4yLS4xLS4zLS40LS41LS42bC0uNi0uNmMwLS4xLS4zLS4zLS41LS4zIDAtLjEtLjEtLjItLjItLjItLjMtLjItLjUtLjMtLjgtLjUtLjItLjEtLjUtLjMtLjgtLjYtLjEgMC0uNC0uMi0uNi0uMi0uMy0uMS0uNy0uMS0uOS0uMy0uMyAwLS42LS4xLS44LS4yaC0yLjZjLS4yLjItLjQuMi0uNi4yLS40LjEtLjcuMS0uOS4zLS4zIDAtLjQuMi0uNi41LS4zIDAtLjYuMS0uOS4zLS4xLjItLjQuMy0uNi41LS4yLjMtLjUuNC0uOC41LS4yLjItLjMuNC0uNS42LS4xLjEtLjEuMy0uMy4zbC01Ni41IDcwLjItLjMuM2MtMi43IDMuNi0yIDguNyAxLjYgMTEuNCAxLjQgMS4yIDMuMyAxLjkgNS4yIDEuOGg0OC4xdjExLjZjLjIgNC41IDMuOCA4LjEgOC4yIDguMiA0LjYuMSA4LjUtMy42IDguNi04LjJ2LTExLjZoMS42Wm0tNDguOC0xNi44aDMwLjRWNjQuNGgtLjFsLTMwLjMgMzcuNloiIGZpbGw9IiNGRkM0MTIiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzEuMjk5IDczLjI5OWMuNC0yLjUtMS4yLTQuOS0zLjctNS4zLTIuNS0uNC00LjkgMS4yLTUuMyAzLjdsLTEuNiA4LjdjLS40IDIuNSAxLjIgNC45IDMuNyA1LjMgMi40LjUgNC44LTEuMiA1LjMtMy43bDEuNi04LjdaTTIzMy43OTUgNzUuMTk1Yy0uNC0yLjUtMi43LTQuMi01LjItMy45LTIuNS40LTQuMiAyLjctMy45IDUuMmwxLjMgOC43Yy40IDIuNSAyLjcgNC4yIDUuMiAzLjkgMi41LS4yIDQuMi0yLjYgMy45LTUuMWwtMS4zLTguOFpNMTQ4LjE5NSA0Ni43OTVjMS44LTEuNyAxLjktNC42LjItNi41LTEuNy0xLjgtNC42LTItNi41LS4ybC0zLjUgMy4yYy0xLjggMS43LTEuOSA0LjYtLjIgNi41IDEuOCAxLjkgNC43IDIgNi41LjJsMy41LTMuMlpNMTQ2LjM5NSAxMTguOGMtMS43LTEuOS00LjYtMi02LjUtLjItMS44IDEuNy0xLjkgNC42LS4yIDYuNWwzLjIgMy41YzEuNyAxLjggNC42IDEuOSA2LjUuMiAxLjgtMS44IDEuOS00LjcuMi02LjZsLTMuMi0zLjRaTTIyMC4wMDIgNDkuNjAybC01LjEgMy41Yy0uNy41LS45IDEuNC0uNCAyLjFsNi4zIDljLjUuNyAxLjQuOSAyLjEuNGw1LjEtMy41Yy43LS41LjktMS40LjQtMi4xbC02LjMtOWMtLjUtLjYtMS40LS44LTIuMS0uNFpNMjAwLjUwMSAxMzYuODAxYzIuNC0uOSAzLjYtMy41IDIuNy01LjktLjktMi40LTMuNS0zLjYtNS45LTIuN2wtNC41IDEuNmMtMi40LjktMy42IDMuNS0yLjcgNS45LjkgMi4zIDMuNSAzLjYgNS45IDIuN2w0LjUtMS42WiIgZmlsbD0iI0ZGQzcyNyIgLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2OS4wNTQgMzIuOTc1Yy0yOC43MjkgNC45OTgtNDcuOTY3IDMyLjM0LTQyLjk2OSA2MS4wNjkgNC45OTggMjguNzI5IDMyLjM0IDQ3Ljk2NyA2MS4wNjkgNDIuOTY5IDI4LjcyOC00Ljk5OCA0Ny45NjYtMzIuMzQgNDIuOTY4LTYxLjA2OS00Ljk5OC0yOC43MjgtMzIuMzQtNDcuOTY3LTYxLjA2OC00Mi45NjlaIiBmaWxsPSIjRkZDNDEyIiAvPjxwYXRoIG9wYWNpdHk9Ii4yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2OS43IDYwLjljLS44LjctMS43IDEuMy0yLjcgMS44LTIuMS45LTQuNSAxLjQtNi44IDEuMyAyLjQgMSA1LjEgMS4yIDcuNS40IDIuNi0uOSA0LjctMi42IDYtNSAxLjMtMi4yIDEuOS00LjggMS44LTcuNC0uMS0yLjUtLjktNS0yLjUtNyAuNyAyLjIgMSA0LjYuOCA2LjktLjEgMS4xLS40IDIuMi0uNyAzLjMtLjIuNi0uNCAxLjEtLjYgMS42LS4zLjUtLjUgMS0uOCAxLjUtLjYgMS0xLjIgMS44LTIgMi42Wk0xNjAuNDk1IDQ5LjM5N2MuNi0xLjIgMS43LTIuMiAyLjktMi45IDEuNC0uNyAyLjktMS4xIDQuNS0xLjItMS42LS44LTMuNS0xLTUuMi0uNS0xLjguNi0zLjQgMS44LTQuMyAzLjUtLjkgMS42LTEuMyAzLjQtMS4yIDUuMi4xIDEuOC44IDMuNSAyIDQuOC0uNy0zLS4zLTYuMSAxLjMtOC45Wk0xNzcuNyAxMTkuOGMtLjQgMS0xIDEuOC0xLjcgMi42cy0xLjUgMS4zLTIuNSAxLjVjLTEuMS4yLTIuMi4zLTMuMy4xIDEgLjggMi4yIDEuMiAzLjUgMS4yIDEuNCAwIDIuNy0uNiAzLjYtMS42LjktLjkgMS41LTIuMSAxLjctMy40LjItMS4yIDAtMi41LS43LTMuNiAwIDEuMi0uMiAyLjMtLjYgMy4yWk0xNzIuODk1IDExOC41Yy40LS41LjktLjggMS41LTEgLjctLjIgMS40LS4zIDIuMi0uMy0uNi0uNy0xLjUtMS4xLTIuNC0xLjEtMSAwLTEuOS40LTIuNiAxLjEtLjcuNy0xLjEgMS42LTEuMiAyLjUtLjEuOS4xIDEuOC43IDIuNS4xLTEuNC43LTIuNyAxLjgtMy43Wk0xNDcuNiAxMDUuNmMuMy44LjQgMS43LjIgMi42LS4xLjgtLjYgMS42LTEuMiAyLjItLjguOC0xLjcgMS41LTIuNiAyLjEgMS4yLjIgMi41IDAgMy42LS42IDEuMy0uNyAyLjItMS45IDIuNC0zLjMuMi0xLjQtLjEtMi44LS45LTMuOS0uOC0xLTEuOS0xLjctMy4yLTEuOS42LjkgMS4yIDEuOCAxLjcgMi44Wk0xNDIuNDk4IDEwOC42OTVjLS4xLS41LS4xLTEuMSAwLTEuNiAwLS41LjMtMSAuNi0xLjQuNS0uNSAxLTEuMSAxLjYtMS42LS44LS4zLTEuOC0uMi0yLjYuMi0uOS40LTEuNiAxLjMtMS44IDIuNC0uMiAxLjEuMSAyLjEuNyAyLjkuNi44IDEuNSAxLjIgMi40IDEuMi0uNC0uNy0uNi0xLjMtLjktMi4xWk0yMDQuOSA1Mi44Yy0uMy44LS45IDEuNS0xLjYgMi4xLS43LjYtMS41LjktMi40LjktMS4xIDAtMi4yIDAtMy4zLS4yLjggMSAxLjkgMS43IDMuMSAyIDEuNC4zIDIuOSAwIDQtLjkgMS4xLS44IDEuOC0yLjEgMS45LTMuNS4xLTEuMy0uMy0yLjYtMS4xLTMuNi0uMSAxLjEtLjMgMi4yLS42IDMuMlpNMTk5LjIwNCA1MS43OTVjLjItLjM5LjYtLjg5IDEtMS4xOS40LS4zMS45LS41IDEuNC0uNjEuOC0uMDkgMS41LS4yIDIuMy0uMi0uNS0uOC0xLjItMS40LTIuMS0xLjYtMS4xLS4zLTIuMi0uMDktMyAuNi0uOC42MS0xLjMgMS42MS0xLjQgMi42MS0uMSAxIC4zIDEuOSAxIDIuNS4xLS43LjQtMS40LjgtMi4xMVoiIGZpbGw9IiMwMDAiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMDEuNzk1IDgxLjM5NWMtMS4yLTYuMy03LjMtMTAuNS0xMy42LTkuMy02LjMgMS4yLTEwLjUgNy4zLTkuMyAxMy42IDEuMiA2LjMgNy4zIDEwLjUgMTMuNiA5LjMgNi4zLTEuMiAxMC41LTcuMyA5LjMtMTMuNloiIGZpbGw9IiNGRkM3MjciIC8+PHBhdGggb3BhY2l0eT0iLjEiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAxLjc5NSA4MS4zOTVjLTEuMi02LjMtNy4zLTEwLjUtMTMuNi05LjMtNi4zIDEuMi0xMC41IDcuMy05LjMgMTMuNiAxLjIgNi4zIDcuMyAxMC41IDEzLjYgOS4zIDYuMy0xLjIgMTAuNS03LjMgOS4zLTEzLjZaIiBmaWxsPSIjMDAwIiAvPjxwYXRoIG9wYWNpdHk9Ii4yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIwMC45MDMgNzguNTAyYy0yLjgtNS44LTkuNy04LjMtMTUuNS01LjYtNS44IDIuOC04LjMgOS43LTUuNiAxNS41IDEuNSAzLjEgNC4zIDUuNSA3LjYgNi4zLTQuNy0zLjUtNS43LTEwLjItMi4yLTE0LjkgMS42LTIgMy45LTMuNSA2LjUtNCAzLjMtLjYgNi43LjQgOS4yIDIuN1pNMjAzLjQgOTIuNWMtLjcgMS4yLTEuNSAyLjMtMi41IDMuMi0uNS41LTEgLjktMS42IDEuMy0uNi40LTEuMi43LTEuOCAxLTIuNyAxLjEtNS42IDEuNi04LjUgMS40IDIuOSAxLjEgNi4xIDEuMiA5LjEuMiAzLjEtMS4xIDUuNi0zLjIgNy4yLTYuMSAxLjYtMi44IDIuNC01LjkgMi4zLTkuMS0uMS0zLjEtMS4xLTYuMS0yLjktOC42LjkgMi44IDEuMyA1LjcgMS4xIDguNy0uMSAxLjQtLjQgMi44LS44IDQuMS0uMi43LS40IDEuNC0uNyAyLS4yLjctLjYgMS4zLS45IDEuOVoiIGZpbGw9IiMwMDAiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMjAuMTk4IDY2LjQ5OGMtLjgtMi4zLTMuNC0zLjMtNS43LTIuNS0yLjMuOC0zLjMgMy40LTIuNSA1LjcgMSAyLjMgMy41IDMuNCA1LjcgMi41IDIuMi0uOSAzLjMtMy40IDIuNS01LjdaIiBmaWxsPSIjRkZDNzI3IiAvPjxwYXRoIG9wYWNpdHk9Ii4xIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIyMC4xOTggNjYuNDk4Yy0uOC0yLjMtMy40LTMuMy01LjctMi41LTIuMy44LTMuMyAzLjQtMi41IDUuNyAxIDIuMyAzLjUgMy40IDUuNyAyLjUgMi4yLS45IDMuMy0zLjQgMi41LTUuN1oiIGZpbGw9IiMwMDAiIC8+PHBhdGggb3BhY2l0eT0iLjIiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjE5LjcwNCA2NS41MDVjLTEuNC0xLjktNC4yLTIuMy02LjEtLjktMS45IDEuNC0yLjMgNC4yLS45IDYuMS44IDEgMS45IDEuNyAzLjIgMS44LTItLjktMi44LTMuMy0xLjktNS4zLjQtLjkgMS4xLTEuNiAyLjEtMiAxLjItLjUgMi41LS40IDMuNi4zWk0yMjEuMyA3MC40Yy0uMyAxLS45IDEuOC0xLjcgMi40LS44LjYtMS44IDEtMi45IDEuMiAxLjEuMiAyLjMuMSAzLjQtLjVzMS45LTEuNiAyLjMtMi44Yy40LTEuMS41LTIuMy4yLTMuNS0uMy0xLjEtLjktMi4xLTEuOC0yLjkgMSAxLjkgMS4yIDQuMS41IDYuMVoiIGZpbGw9IiMwMDAiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMTEuMzAyIDEwNC4wMDJjLTEuOC0yLjktNS42LTMuOC04LjUtMi0yLjkgMS44LTMuOCA1LjYtMiA4LjUgMS44IDIuOSA1LjYgMy44IDguNSAyIDIuOS0xLjggMy44LTUuNiAyLTguNVoiIGZpbGw9IiNGRkM3MjciIC8+PHBhdGggb3BhY2l0eT0iLjEiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjExLjMwMiAxMDQuMDAyYy0xLjgtMi45LTUuNi0zLjgtOC41LTItMi45IDEuOC0zLjggNS42LTIgOC41IDEuOCAyLjkgNS42IDMuOCA4LjUgMiAyLjktMS44IDMuOC01LjYgMi04LjVaIiBmaWxsPSIjMDAwIiAvPjxwYXRoIG9wYWNpdHk9Ii4yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIxMC40MDEgMTAyLjgwMWMtMi41LTIuNC02LjQtMi4zLTguNy4yLTIuNCAyLjUtMi4zIDYuNC4yIDguNyAxLjMgMS4zIDMuMSAxLjkgNC45IDEuNy0zLS44LTQuNy00LTMuOS03IC4zLTEuMyAxLjItMi40IDIuNC0zLjIgMS41LS45IDMuNC0xLjEgNS4xLS40Wk0yMTMuOSAxMDQuOGMuNCAxLjQuNSAyLjkuMyA0LjQtLjIgMS41LS45IDIuOS0xLjkgMy45LTEuMSAxLjEtMi40IDEuOS0zLjkgMi4zIDEuNiAwIDMuMi0uNiA0LjUtMS42IDEuMy0xLjEgMi4yLTIuNyAyLjQtNC40LjItMS43IDAtMy4zLS42LTQuOS0uNi0xLjUtMS42LTIuOC0zLTMuNyAxIDEuMSAxLjggMi41IDIuMiA0WiIgZmlsbD0iIzAwMCIgLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0MS44OTggNzEuMDk4Yy01LjQuMS05LjYgNC4yLTkuNSA4LjkuMSA0LjcgNC42IDguNSAxMCA4LjMgNS40LS4xIDkuNi00LjEgOS41LTguOS0uMi00LjgtNC42LTguNC0xMC04LjNaIiBmaWxsPSIjRkZDNzI3IiAvPjxwYXRoIG9wYWNpdHk9Ii4xIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0MS44OTggNzEuMDk4Yy01LjQuMS05LjYgNC4yLTkuNSA4LjkuMSA0LjcgNC42IDguNSAxMCA4LjMgNS40LS4xIDkuNi00LjEgOS41LTguOS0uMi00LjgtNC42LTguNC0xMC04LjNaIiBmaWxsPSIjMDAwIiAvPjxwYXRoIG9wYWNpdHk9Ii4yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0NC41OTggNzMuODA1YzIuMi0uMSA0LjQuNiA2LjEgMS45LTEuOS0zLjEtNS4zLTQuOS04LjktNC43LTUuNC4xLTkuNiA0LjEtOS41IDguOS4xIDQuMSAzLjQgNy40IDcuNiA4LjItMi4yLTEuMy0zLjctMy42LTMuOC02LjItLjEtNC40IDMuOC04IDguNS04LjFaIiBmaWxsPSIjMDAwIiAvPjxwYXRoIG9wYWNpdHk9Ii4yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1NC4zIDc3LjdjLjMgMSAuMyAyLjEuMiAzLjEtLjEgMS0uNCAyLjEtLjggMy0uOSAxLjgtMi40IDMuNC00LjIgNC41LTIgMS4yLTQgMi4yLTYuMiAyLjkgMi40LjEgNC44LS40IDctMS40IDEuMS0uNiAyLjItMS4zIDMuMS0yLjEgMS0uOSAxLjctMS45IDIuMy0zLjEuNS0xLjEuNy0yLjQuOC0zLjcgMC0xLjMtLjItMi42LS43LTMuOC0xLTIuMi0yLjgtNC4xLTUuMS01IDEuNyAxLjUgMi45IDMuNSAzLjYgNS42WiIgZmlsbD0iIzAwMCIgLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwNy4zOTkgMzIuNmMtLjEgMC0uNC0uMi0uNi0uMi0uMy0uMS0uNy0uMS0uOS0uMy0uMyAwLS42LS4xLS44LS4yaC0yLjZjLS4yLjItLjQuMi0uNi4yLS40LjEtLjcuMS0uOS4zLS4zIDAtLjQuMi0uNi41LS4zIDAtLjYuMS0uOS4zLS4xLjItLjQuMy0uNi41LS4yLjMtLjUuNC0uOC41LS4yLjItLjMuNC0uNS42LS4xLjEtLjEuMy0uMy4zbC01Ni40IDcwLjItLjMuM2MtMi43IDMuNi0yIDguNyAxLjYgMTEuNCAxLjQgMS4yIDMuMyAxLjkgNS4yIDEuOGg0OC4ydjExLjZjLjIgNC41IDMuOCA4LjEgOC4yIDguMiA0LjYuMSA4LjUtMy42IDguNi04LjJ2LTExLjZoMS42YzQuNiAwIDguNC0zLjggOC40LTguNC0uMS00LjYtMy45LTguNC04LjMtOC40aC0xLjVWNDBjMC0uMy0uMi0uNS0uMi0uOCAwLS4zLS4xLS42LS4yLS45IDAtLjEtLjItLjQtLjItLjZsLS4zLS45Yy0uMi0uMi0uMy0uNC0uMy0uNi0uMi0uMy0uNC0uNi0uNi0uOC0uMi0uMS0uMy0uNC0uNS0uNmwtLjYtLjZjMC0uMS0uMy0uMy0uNS0uMyAwLS4xLS4xLS4yLS4yLS4yLS4zLS4yLS41LS4zLS44LS41LS4yLS4xLS41LS4zLS44LS42Wm0tNDIuMiA2OS40aDMwLjRsLS4xLTM3LjZMNjUuMiAxMDJaIiBmaWxsPSIjRkZDNDEyIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzM5LjAwMyAyNDEuNTk5Yy42LS4xLjktLjYuOC0xLjEtMTEuNC02MS4yLTMxLTk3LjktMzEuMi05OC4zLS4zLS41LS44LS43LTEuMy0uNC0uNS4zLS42LjgtLjQgMS4zLjIuNCAxOS42IDM2LjkgMzEgOTcuNy4xLjUuNS44LjkuOGguMloiIGZpbGw9IiMxNDJENkUiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNjQuNSAyNDAuN2MwLS41LS40LS45LS45LS45SDEwNi4xYy0uNSAwLS45LjQtLjkuOXMuNC45LjkuOWgyNTcuNWMuNSAwIC45LS40LjktLjlaTTEwMC45IDI0MC43YzAtLjUtLjQtLjktLjktLjlINDcuNWMtLjUgMC0uOS40LS45LjlzLjQuOS45LjlIMTAwYy41IDAgLjktLjQuOS0uOVpNMjU5LjMgMTIwLjMwM2wtNC43IDguNWMtNy41IDE2LjQtMjQuNSA1MS4yLTI3LjQgNTMuOS0uNy43LTQuMiAzLjQtOC42IDYuOC0yNi4zIDIwLjUtNDIuNyAzMy45LTQyLjggMzcuNSAwIC41LjIuOS41IDEuMi4xLjEuMy4yLjQuMiAxLjYuNCAzNy44IDEwLjEgNDcuNiAxMC4xaDEuNmM3LjUtMS4zIDMxLjEtMzMuNCAzNi4xLTQ0LjUuMi0uNSAwLTEuMS0uNS0xLjMtLjUtLjItMS4xIDAtMS4zLjUtNS4yIDExLjUtMjguNCA0Mi4zLTM0LjcgNDMuNC01LjIgMS0zMy01LjktNDcuNi05LjggMi00LjYgMzAuOS0yNy4yIDQyLTM1LjggNC44LTMuNyA4LTYuMiA4LjctNi45IDMuMy0zLjIgMjEtMzkuNSAyNy44LTU0LjVsNC42LTguNGMuMi0uNS4xLTEtLjQtMS4zLS41LS4yLTEtLjEtMS4zLjRaIiBmaWxsPSIjMTQyRDZFIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMTk1Ljg5OCAxNzcuNDA0IDkuMSAzOS4yYy42IDIuNCAzIDQgNS41IDMuNGw3LjEtMS43YzIuNC0uNiA0LTMgMy40LTUuNWwtOS4xLTM5LjJjLS42LTIuNC0zLTQtNS41LTMuNGwtNy4xIDEuN2MtMi41LjYtNCAzLjEtMy40IDUuNVoiIGZpbGw9IiNmZmYiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xOTkuMTA0IDE3MS4xOThjLTIuOS43LTQuOCAzLjYtNC4xIDYuNmw5LjEgMzkuMmMuNCAxLjQgMS4yIDIuNiAyLjUgMy40LjkuNSAxLjkuOCAyLjkuOC40IDAgLjgtLjEgMS4zLS4xbDcuMS0xLjdjMi45LS43IDQuOC0zLjYgNC4xLTYuNmwtOS4xLTM5LjJjLS40LTEuNC0xLjItMi42LTIuNS0zLjQtMS4zLS44LTIuOC0xLTQuMi0uN2wtNy4xIDEuN1ptOC4zOTItLjA5OGMtLjMgMC0uNSAwLS44LjFsLTcuMSAxLjdjLTIgLjUtMy4yIDIuNC0yLjcgNC40bDkuMSAzOS4yYy41IDIgMi40IDMuMiA0LjQgMi43bDcuMS0xLjdjMi0uNSAzLjItMi40IDIuNy00LjRsLTkuMS0zOS4yYy0uNS0xLjYtMi0yLjgtMy42LTIuOFoiIGZpbGw9IiMxNDJENkUiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xOTguMDAxIDE4MC4xMDFjMCAuMy4yLjUuNC42LjIuMS4zLjEuNS4xaC4ybDEwLjYtMi41Yy4zIDAgLjUtLjIuNi0uNC4xLS4yLjItLjUuMS0uN2wtNy42LTMyLjljLS4xLS41LS42LS44LTEuMS0uN2wtMTAuNiAyLjVjLS41LjEtLjguNi0uNyAxLjFsNy42IDMyLjlabTEuNTk5LTEuNTAxIDguOC0yLTcuMi0zMS04LjggMiA3LjIgMzFaIiBmaWxsPSIjMTQyRDZFIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTM0LjU5OSAxMDYuODk1YzYuNyAyOC43IDM1LjMgNDYuNSA2NCAzOS44IDI4LjctNi43IDQ2LjUtMzUuMyAzOS44LTYzLjktNi43LTI4LjctMzUuMy00Ni41LTY0LTM5LjktMjguNyA2LjctNDYuNSAzNS4zLTM5LjggNjRabTkyLjkwNi0yMS41Yy01LjItMjIuNy0yNy44MDEtMzYuNy01MC41MDEtMzEuNS0yMi43IDUuMi0zNi43OTkgMjcuOS0zMS41IDUwLjUwMSA1LjIgMjIuNyAyNy45IDM2LjggNTAuNSAzMS41IDIyLjYtNS4zIDM2LjctMjcuOSAzMS41MDEtNTAuNVoiIGZpbGw9IiMwM0Q1QjciIC8+PGcgb3BhY2l0eT0iLjMiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTc2LjkwNCA1My44MDFjLTIyLjcgNS4zLTM2LjggMjcuOS0zMS41IDUwLjUgNS4yIDIyLjcgMjcuOSAzNi44IDUwLjUgMzEuNSAyMi43LTUuMiAzNi44LTI3LjkgMzEuNS01MC41LTUuMi0yMi42LTI3LjgtMzYuNy01MC41LTMxLjVaIiBmaWxsPSIjZmZmIiBvcGFjaXR5PSIuMyIgLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE4NC41IDEzNi45YzIzLjEgMS4xIDQyLjctMTYuNiA0NC0zOS43bC00NCAzOS43Wk0xODguOSA1Mi44IDE0NC40IDkzYy0uMiAzLjguMSA3LjcgMSAxMS40LjggMy4zIDEuOSA2LjQgMy40IDkuNGw2MC4zLTU0LjRjLTYuMS0zLjktMTMtNi4xLTIwLjItNi42Wk0yMjIuODk5IDczLjdsLTYxLjEgNTUuMmMyLjIgMS43IDQuNiAzIDcuMSA0LjJsNTcuNC01MS44Yy0uOS0yLjYtMi01LjEtMy40LTcuNlpNMjEyLjQ5OSA2MS44bC02MS42IDU1LjZjLjIuNS41LjkuOCAxLjNsNjItNTUuOWMtLjMtLjMtLjctLjYtMS4yLTFaTTE3MS4zOTkgNTUuNmwtMjIuNCAyMC4yYy0uNiAxLjEtMS4xIDIuMi0xLjYgMy40bDI3LjUtMjQuOGMtMS4zLjMtMi40LjctMy41IDEuMloiIGZpbGw9IiNFQkVCRUIiIG9wYWNpdHk9Ii4zIiAvPjwvZz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1Ni40MDQgMTAwLjIwNGMwIC41My4wNSAxLjA2LjEzIDEuNTEtLjAxLS4wNy4wMS0uMDQuMDcuMTl2LjJjLjQgMS43LS42IDMuNC0yLjQgMy43LTEuNi41LTMuNC0uNC0zLjktMi4xLS4yLTEuNC0uNC0yLjgtLjUtNC4yLS40LTYuNC42LTEyLjggMi45LTE4LjggMy41LTguOSAxMC4zLTE1LjkgMTguNy0yMC40IDEuNS0uOSAzLjUtLjUgNC40IDEgLjkgMS41LjUgMy41LTEgNC40LTEuMy43LTIuNiAxLjUtMy44IDIuMy0uNi40LTEuMS44LTEuNyAxLjJsLS44LjdjMCAuMDQtLjA5LjExLS4xNi4xNy4yMi0uMTQtLjE0LjEzLS4xNC4xMy0xLjggMS42LTMuNiAzLjQtNS4xIDUuM2wtLjQ2My42NDhjLjAxOC0uMDI1LS4wMDQuMDItLjEzNy4yNTItLjMuNC0uNS44LS44IDEuMi0uNS44LTEuMSAxLjgtMS41IDIuNi0uNC44LS44IDEuNy0xLjIgMi41bC0uMy43Yy0uMDcuMjItLjA3LjI2LS4wNS4yMy0uMTEuMjgtLjI3LjYyLS4zNS45Ny0uNSAxLjYtMSAzLjItMS4zIDQuOS0uMi44LS4zIDEuNS0uNCAyLjNsLS4xLjZjLS4wMDkuMDA4LS4wMS4wMjQtLjAxLjAzNXYuMDA1Yy0uMDIuMjgtLjA5LjYtLjA5Ljg2LS4yIDIuMy0uMiA0LjYgMCA2LjlabTIuMjUtMTYuNTdjLjAyLS4wNS4wMy0uMDkuMDUtLjEzLjEzLS4zNC0uMDEuMDUtLjA1LjEzWm05LjY0LTEzLjUyMy4wMTItLjAwOS0uMDAyLjAwMi0uMDEuMDA3Wm0tNS43NjEgNi4yMTJjLjAzLS4wNDguMDg5LS4xNDQuMTA4LS4xN2wtLjAzNy4wNTEtLjA4OC4xNDYuMDE3LS4wMjdaTTE1NS41MDIgMTA5LjEwMmMtMS43LjUtMi42IDIuMy0yLjEgMy45czIuMyAyLjYgMy45IDIuMSAyLjYtMi4zIDIuMS0zLjljLS41LTEuNy0yLjMtMi42LTMuOS0yLjFaIiBmaWxsPSIjMDNENUI3IiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjk1LjQ5NyAxMjkuOTk4Yy00LjUtMTYuMi0xNi40LTIzLjctMTkuMyAxLjItMi4xIDE3LjktNSA0OC40LTYuNCA0Ny45LS43LS4yLTI0LjUtNC43LTMyLjMtOC02LjQtMy4zLTI1LjQtMTIuOS0zMS42LTEzLjQtNi40LS40LTE5LjEgMS4xLTIxLjcgNS4zLTIuMyAzLjguNyA3LjIuNyA3LjItMiAxLTMuNSAyLjYtNC40IDQuNy0xLjQgMy42IDMuNyA3LjQgMy43IDcuNC0xLjggMS41LTMuMiAzLjQtMy45IDUuNy0xIDMuNiAzLjYgOC4yIDMuNiA4LjItLjkgMi4zLTEgNC44LS4zIDcuMSAyLjMgNi4xIDEyLjEgOC4yIDE4LjMgOS41IDQuOCAxIDE3LjMuMSAyNC4zLS41IDIxLjMgNC4zIDUzLjEgMTAuOSA2Mi44IDYuMSA0LjItMi4xIDEwLjgtOC40IDEzLjYtMTcuNiA0LjQtMTQuNC43LTQyLjctNy4xLTcwLjhaIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMjI1LjA5OSAyMTMuNjAyIDEuMi0uMSAxLjYuM2MxNi4yIDMuMiAzNi44IDcuNCA1MC40IDcuNCA0LjggMCA4LjctLjUgMTEuMS0xLjcgNC45LTIuNCAxMS40LTkuMSAxNC4xLTE4LjIgNC4xLTEzLjggMS40LTQwLjUtNy4yLTcxLjUtMi42LTkuNi03LjctMTYtMTIuNC0xNS42LTMuMS4zLTcuMiAzLjQtOC43IDE3LS40IDMuOS0uOSA4LjQtMS40IDEzLTEuNCAxMy4xLTMuMyAzMC43LTQuNCAzNC0uNC0uMS0uOS0uMi0xLjgtLjQtNi40LTEuMy0yMy40LTQuNy0yOS43LTcuNC03LjYtMy45LTI1LjctMTMtMzEuOS0xMy40LTYuNi0uNC0xOS43IDEuMS0yMi42IDUuOC0xLjggMi44LS45IDUuNy4xIDcuNC0xLjcgMS4xLTMuMSAyLjctMy45IDQuNi0xLjMgMy4zIDEuNiA2LjQgMy4xIDcuOC0xLjUgMS41LTIuNyAzLjMtMy4zIDUuNC0xIDMuNCAyLjIgNy4zIDMuNCA4LjYtLjggMi4zLS45IDQuOC0uMSA3LjIgMi41IDYuNSAxMi4yIDguNiAxOC43IDEwbC40LjFjNC43IDEuMSAxNS45LjIgMjMuMy0uM1ptNDIuMTAzLTM0LjEwM2MtNi40LTEuMy0yMy41LTQuOC0zMC03LjUgMCAwLS4xIDAtLjEtLjEtNS44LTMtMjUuMS0xMi44LTMxLjItMTMuMy02LjktLjUtMTguNyAxLjQtMjAuOSA0LjktMS45IDMuMS42IDYuMS42IDYuMS4yLjIuMy41LjIuOC0uMS4zLS4yLjUtLjUuNy0xLjguOS0zLjIgMi40LTQgNC4yLTEuMSAyLjggMy4zIDYuMiAzLjQgNi4zLjIuMi40LjUuNC43IDAgLjMtLjEuNi0uNC44LTEuNyAxLjMtMi45IDMuMS0zLjYgNS4yLS43IDIuNSAyLjIgNiAzLjQgNy4yLjMuMy40LjcuMiAxLS45IDIuMS0xIDQuMy0uMyA2LjUgMi4xIDUuNSAxMS4yIDcuNSAxNy4zIDguOGwuNC4xYzQuNCAxIDE1LjkuMSAyMi44LS40SDIyNi41MDJsMS44LjRjMjAuNCA0LjEgNTEuMyAxMC40IDYwLjQgNS44IDMuMy0xLjYgMTAuMi03LjIgMTMuMS0xNy4xIDMuOS0xMy4yIDEuMS00MC4yLTcuMi03MC40LTIuMy04LjQtNi44LTE0LjUtMTAuNS0xNC4yLTMuNC4zLTUuOSA1LjgtNyAxNS4zLS40IDMuOS0uOSA4LjQtMS40IDEzLTMuMSAyOC41LTQgMzQuOC01LjMgMzUuNi0uMy4yLS42LjItLjkuMS0uMSAwLTEuMS0uMi0yLjMtLjVaIiBmaWxsPSIjMTQyRDZFIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjczLjY5OSAxMzcuNWMxMCAuOCAxMy40LTkuOSAxMy40LTkuOWwtOC43LTMyLjZzMTAuOS4zIDEwLjUtNy45YzAgMCAuMS0zLjUtMi4zLTUuMiAwIDAgNS4zLTI4LjUtMTYuNC0zNC4yLTIxLjctNS43LTMyIDMuOC0zNS4xIDE1LjctMy4xIDEyLTcuNyAzMy4yIDMuNSA0Mi4xIDcuNSA1LjkgMTQgMy45IDE4IDMuNWw0LjMgMTMuM3MzLjQgMTMuOCAxMi44IDE1LjJaIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjU5Ljk5OSAxMjIuNTk4Yy4yLjYgMy43IDE0LjQgMTMuNyAxNS45aDEuMWM5LjggMCAxMy4yLTEwLjUgMTMuMi0xMC42di0uNWwtOC40LTMxLjRjMi0uMSA1LjgtLjcgOC4yLTMuMSAxLjUtMS41IDIuMS0zLjUgMi01LjcgMC0uMi4xLTMuNi0yLjItNS42LjYtNC4yIDMuNC0yOS4zLTE3LjItMzQuOC0xMC41LTIuOC0xOS4xLTIuMy0yNS42IDEuNS01LjIgMy4xLTguOSA4LjItMTAuNiAxNC45LTMuOSAxNS41LTcuMSAzNC40IDMuOSA0My4xIDYuOCA1LjQgMTIuOSA0LjUgMTYuOSAzLjkuNCAwIC43LS4xIDEtLjFsNCAxMi41Wm0tMTQuMjAxLTcyLjUwMmMtNC44IDIuOC04LjEgNy42LTkuNyAxMy43LTIuMiA4LjgtOC4yIDMyLjEgMy4yIDQxLjIgNi4xIDQuOSAxMS41IDQuMSAxNS40IDMuNS43LS4yIDEuMy0uMyAxLjktLjMuNCAwIC44LjMuOS43bDQuMyAxMy4zYy4xLjIgMy40IDEzLjIgMTIuMSAxNC41IDguMy42IDExLjctNy41IDEyLjItOWwtOC42LTMyLjNjLS4xLS4zIDAtLjYuMi0uOC4yLS4yLjUtLjQuOC0uNC4xIDAgNS40LjEgOC0yLjYgMS4xLTEuMSAxLjYtMi41IDEuNS00LjMgMC0uMSAwLTMuMS0xLjktNC40LS4zLS4yLS41LS42LS40LS45LjItMS4xIDQuOS0yNy43LTE1LjctMzMuMi0xMC0yLjctMTguMS0yLjItMjQuMiAxLjNaIiBmaWxsPSIjMTQyRDZFIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjE1LjggOTEuNXMxMCAxMC4zIDE5LjggMTEuM2MtLjIyLS4xMy02Ljc3LTEyLjY1LTMuMS0yOS4ybC0xNi43IDE3LjlaTTI3Mi43IDc5LjY5NXMtNC4xIDguMS0uNyAxMC4xYzMuMiAxLjkgNi42LjUgMTAuOC04LjYgMCAwIDEuOS40IDMgMS40IDIuOSAyLjggNi43IDguOS02LjcgMTIuNWwyLjkgMTRzMjEuMSA2LjQgMzMuMS0zLjRjMCAwIDIuMi03NC40LTQ1LjYtNjguOCAwIDAtMjcuNy0xMC42LTM5LjIgMjEuNyAwIDAgMTYuNiAxMC4xIDMwLjEtMi43IDAgMC0zLjIgMjIuMyAxMi4zIDIzLjhaIiBmaWxsPSIjMTQyRDZFIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjg1LjkgODkuNWMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTVaIiBmaWxsPSIjRkZDNDEyIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjM2LjEgNjUuNGMtMy45MiAwLTcuMSAzLjE4LTcuMSA3LjEgMCAzLjkyIDMuMTggNy4xIDcuMSA3LjEgMy45MiAwIDcuMS0zLjE4IDcuMS03LjEgMC0zLjkyLTMuMTgtNy4xLTcuMS03LjFaIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjQ0LjEgNzIuNmMwLTQuNC0zLjYtOC04LThzLTggMy42LTggOCAzLjYgOCA4IDggOC0zLjYgOC04Wm0tMTQuMS0uMWMwIDMuMyAyLjggNi4xIDYuMSA2LjEgMy40IDAgNi4xLTIuOCA2LjEtNi4xcy0yLjctNi4xLTYuMS02LjFjLTMuNCAwLTYuMSAyLjgtNi4xIDYuMVoiIGZpbGw9IiMxNDJENkUiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMzQuNDI3IDcwLjMzMWExLjgwNSAxLjgwNSAwIDAgMC0xLjM3OCAyLjE0IDEuODA1IDEuODA1IDAgMCAwIDIuMTQgMS4zNzkgMS44MDUgMS44MDUgMCAwIDAgMS4zNzgtMi4xNCAxLjgwNSAxLjgwNSAwIDAgMC0yLjE0LTEuMzc5Wk0yMzAuMzk2IDY4Ljg5NmMuMy0uNC4zLTEtLjEtMS4zbC0yLjktMi41Yy0uNC0uMy0xLS4zLTEuMy4xLS4zLjQtLjMgMSAuMSAxLjNsMi45IDIuNWMuMi4xLjQuMi42LjIuMiAwIC41LS4xLjctLjNaTTIzMi42MDMgNjcuNDAzYy41LS4yLjctLjcuNS0xLjJsLTEuOS00LjdjLS4yLS41LS43LS43LTEuMi0uNS0uNS4yLS43LjctLjUgMS4ybDEuOSA0LjdjLjIuNC41LjYuOS42LjIgMCAuMyAwIC4zLS4xWiIgZmlsbD0iIzE0MkQ2RSIgLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI0MS45OTggNzcuN3MtMy41LjgtMy40IDIuNmMuMiAxLjggMS43IDIuNiA0LjIgMi4zbDEuMy0xMS41LTIuMSA2LjZaIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMjQyLjc5OSA3Ny45OTcgMi4xLTYuNmMuMi0uNS0uMS0xLS42LTEuMi0uNS0uMi0xIC4xLTEuMi42bC0xLjkgNi4xYy0xLjEuNC0zLjcgMS40LTMuNSAzLjUuMSAxIC42IDEuOCAxLjMgMi40LjcuNSAxLjYuOCAyLjguOGgxLjFjLjUtLjEuOS0uNi44LTEuMS0uMS0uNS0uNi0uOS0xLjEtLjgtMS4yLjEtMi4xIDAtMi42LS40LS4zLS4zLS41LS42LS41LTEuMS0uMS0uNiAxLjUtMS4zIDIuNi0xLjYuMyAwIC42LS4zLjctLjZaTTI1OS44OTYgNjYuNDAzYy4zLS40LjEtMS0uMy0xLjMtNC44LTMtOC45LS43LTkuMS0uNi0uNC4zLS42LjgtLjMgMS4zLjMuNC44LjYgMS4zLjMgMCAwIDMuMy0xLjggNy4xLjYuMS4yLjMuMi41LjIuMyAwIC42LS4xLjgtLjVaTTI0My4yOTYgNjMuMjAzYy4zLS40LjEtMS0uMy0xLjMtNC44LTMtOC45LS43LTkuMS0uNi0uNC4zLS42LjgtLjMgMS4zcy44LjcgMS4zLjRjLjEgMCAzLjQtMS44IDcuMS42LjEuMi4zLjIuNS4yLjMgMCAuNi0uMi44LS42Wk0yNjMuMDk2IDc1LjkwMWMuMy0uNC4zLTEtLjEtMS4zLTYtNS4xLTE0LjUtLjMtMTQuOS0uMS0uNC4zLS42LjgtLjMgMS4zLjMuNC44LjYgMS4zLjMgMC0uMSA3LjctNC40IDEyLjctLjEuMi4xLjQuMi42LjIuMiAwIC41LS4xLjctLjNaIiBmaWxsPSIjMTQyRDZFIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjU5LjYgODEuMDA0Yy41LS4xLjgtLjYuNy0xLjEtMS40LTUuNi0xMS4xLTUuMi0xMS41LTUuMi0uNSAwLS45LjUtLjkgMXMuNS45IDEgLjljLjEgMCA4LjYtLjMgOS42IDMuOC4xLjQuNS43LjkuNy4xIDAgLjItLjEuMi0uMVpNMjQzLjE5NSA4OC44OThjMS4yLjQgMi4xIDEuNyAyLjcgMy44LjEuNC41LjcuOS43IDAgMCAuMSAwIC4zLjEuNS0uMi44LS43LjctMS4yLS44LTIuNy0yLjEtNC41LTMuOS01LjEtMi43LTEtNS40LjgtNS41LjktLjQuMy0uNS45LS4yIDEuM3MuOS41IDEuMy4yYzAgMCAyLTEuMyAzLjctLjdaIiBmaWxsPSIjMTQyRDZFIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMjczLjIgMzggLjgtMi00LjEtMS4xLTIuMiAxLjUgNS41IDEuNloiIGZpbGw9IiNFMkE0MEEiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yODMuNiA4MC45MDFzMTQuNi0xMy41IDIuMi00NC4yYy4xIDAtNS42LTcuOC0xNS45LTEuOCAwIDAgMjQgMTcuOCAxMy43IDQ2WiIgZmlsbD0iI0ZGQzQxMiIgLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibTI2OC4xOTggMTY3LjEwNSA0Mi45IDExLjNzMi4xLTI0LjQtNS00MS41Yy00LjgtMTEuNS0xMi4yLTIwLjYtMjAuMy0yMi45LTQuMy0xLjItOSAuOC0xMC45IDQuOS03IDE0LjctNi43IDQ4LjItNi43IDQ4LjJaIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzExLjg5OSAxNzguNTAyYy4xLTEgMi4xLTI0LjgtNS00MS45LTUuMS0xMi40LTEzLTIxLjItMjAuOS0yMy41LTQuOC0xLjQtOS44LjktMTIgNS40LTcgMTQuNy02LjggNDcuMi02LjggNDguNiAwIC40LjMuOC43LjlsNDMgMTEuM2guMmMuMiAwIC40IDAgLjQtLjEuMi0uMi40LS40LjQtLjdabS0xLjctMS40MDJjLjMtNSAxLjEtMjUuMy01LTM5LjktNS0xMS45LTEyLjMtMjAuMi0xOS43LTIyLjQtMy45LTEuMS04IC43LTkuOCA0LjQtNi4yIDEzLjItNi42IDQyLjItNi42IDQ3LjFsNDEuMSAxMC44Wk0yMTQgMTc1LjI5OWMuNC0uMy40LS45IDAtMS4zLTYuMy02LjYtMjguMi00LjYtMjkuMS00LjUtLjYgMC0uOS41LS45IDEgMCAuNi41IDEgMSAuOS4yIDAgMjEuOS0yIDI3LjYgMy45LjIuMi41LjMuNy4zLjIgMCAuNC0uMS43LS4zWk0yMTMuNjA0IDE4Ny4yYy4zLS40LjEtMS0uMy0xLjMtOS42LTYuMi0yOC40LTQtMjkuMi0zLjktLjUuMS0uOS42LS44IDEuMS4xLjUuNi45IDEuMS44LjIgMCAxOC45LTIuMyAyNy45IDMuNi4xLjIuMy4yLjUuMi4zIDAgLjYtLjIuOC0uNVpNMjE4Ljk5OSAyMDAuNzAzYy4zLS40LjItMS0uMi0xLjMtOC42LTYtMzMuOS00LjQtMzUtNC4zLS41IDAtLjkuNS0uOSAxcy41LjkgMSAuOWMuMiAwIDI1LjctMS43IDMzLjggNCAuMS4xLjMuMi41LjIuMyAwIC42LS4yLjgtLjVaIiBmaWxsPSIjMTQyRDZFIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjM0LjA5NSAyMjMuOGMtNi41LTIuMy0xMy43IDcuNy0yMC4xIDUtMy43LTIuOC03LjQtNS41LTEwLjMtNS45LTIuNy0uNS01LjQuOC02LjYgMy4yIDAgMC0yLjQtNS40LTcuNC01LjQtMi41IDAtNC43IDQuMS00LjcgNC4xcy0yLjItNC4zLTYuNS00Yy0zLjUuMi01LjIgNC4zLTUuMiA0LjNzLTQtMy4xLTcuNS0xLjdjLTcuMSAyLjgtOC4yIDMyLjkgMi42IDM3LjkgNS4xIDIuNCA1LTUgNS01czIuNyAxMC41IDguOSAxMC45YzYuMi40IDUuNS05LjEgNS41LTkuMXMyLjcgMTAuMiA5LjIgMTBjNi43LS4yIDQuNC05LjcgNC40LTkuN3M0LjMgNi45IDkuMiA1LjZjOC4xLTIuMi0uNi0xOC40IDEuMi0yNWgxMC4yYzEyLjctMS44IDIwLjUtMTIuMiAxMi4xLTE1LjJaIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTY1LjYwMiAyMjIuNmMtNC4xIDEuNi01LjggOS44LTYgMTYuNC0uMyA4LjcgMS44IDIwIDguNiAyMy4yIDEuNS43IDIuOS43IDQgMCAuOC0uNSAxLjMtMS4zIDEuNi0yLjIgMS40IDMuNCA0LjEgNy45IDguNSA4LjIgMS42LjEgMy0uNCA0LjEtMS41IDEuMS0xLjEgMS43LTIuOCAyLTQuMyAxLjUgMyA0LjIgNi42IDguMyA2LjYuMSAwIC4yIDAgLjMuMiAxLjktLjEgMy4zLS44IDQuMy0yLjEgMS4yLTEuNSAxLjQtMy41IDEuNC01LjMgMS45IDIgNC44IDQuMiA4LjEgMy4zIDUuOS0xLjYgNC4zLTkuMSAyLjktMTUuNy0uNy0zLjQtMS40LTYuOS0xLjEtOS4yaDkuNGMuMSAwIC4yLS4xLjMtLjEgOS4yLTEuMiAxNS44LTYuOSAxNi4zLTExLjQuMy0yLjUtMS4yLTQuNS00LjEtNS41LTMuNi0xLjMtNy4zLjctMTAuOCAyLjYtMy4yIDEuOC02LjMgMy41LTkuMSAyLjQtMy45LTMtNy41LTUuNS0xMC41LTYtMi41LS41LTUuMS40LTYuNyAyLjMtMS4xLTEuOC0zLjYtNC42LTcuNC00LjYtMi4xIDAtMy44IDEuOS00LjggMy4zLTEuMS0xLjQtMy4zLTMuNC02LjYtMy4yLTIuOS4xLTQuNyAyLjQtNS41IDMuOC0xLjUtLjktNC42LTIuNC03LjUtMS4yWm04LjgwMiAzMy42YzAgLjEgMi42IDkuOSA4IDEwLjIgMS4xLjEgMi0uMiAyLjctLjkgMS44LTEuOCAxLjktNS44IDEuOC03LjIgMC0uNS4zLS45LjgtMSAwLS4yIDAtLjIuMS0uMi40IDAgLjguMy45LjcgMCAuMSAyLjYgOS41IDguMiA5LjMgMS4zIDAgMi4yLS41IDIuOS0xLjMgMS44LTIuNC42LTcuMS42LTcuMi0uMS0uNS4xLS45LjUtMS4xLjQtLjIuOSAwIDEuMi40IDAgLjEgNCA2LjMgOC4xIDUuMSAzLjktMSAzLjEtNi4yIDEuNS0xMy41LS45LTQuMi0xLjctOC4xLTEtMTAuOC4xLS40LjUtLjcuOS0uN2gxMC4xYzguMy0xLjEgMTQuNC02IDE0LjgtOS44LjItMS42LS44LTIuOC0yLjktMy41LTIuOC0xLTUuOS43LTkuMiAyLjUtMy42IDItNy4zIDQtMTAuOSAyLjUtLjEgMC0uMS0uMS0uMi0uMS0zLjctMi44LTcuMi01LjMtOS44LTUuNy0yLjMtLjUtNC42LjYtNS42IDIuNy0uMi4zLS41LjUtLjkuNXMtLjctLjItLjgtLjZjMCAwLTIuMi00LjgtNi41LTQuOC0xLjYgMC0zLjQgMi43LTMuOSAzLjYtLjIuMy0uNS41LS44LjUtLjQgMC0uNy0uMi0uOC0uNS0uMS0uMS0xLjktMy43LTUuNi0zLjUtMi45LjItNC40IDMuNy00LjQgMy43LS4xLjMtLjMuNS0uNi42LS4zLjEtLjYgMC0uOC0uMiAwIDAtMy42LTIuOC02LjUtMS42LTIuNiAxLTQuNiA3LjItNC44IDE0LjctLjMgOC44IDIgMTguOSA3LjUgMjEuNS45LjQgMS43LjUgMi4yLjIgMS4yLS44IDEuNC0zLjQgMS40LTQuMyAwLS41LjMtLjkuOC0uOS41LS4xLjkuMiAxIC43WiIgZmlsbD0iIzE0MkQ2RSIgLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE3NC41MDEgMjU2LjljLS45LTguNy0uNC0zMS44LS40LTMyIDAtLjYtLjQtMS0uOS0xLS42IDAtMSAuNC0xIC45IDAgLjktLjUgMjMuNC40IDMyLjIgMCAuNS40LjkuOS45LjYtLjEgMS0uNiAxLTFaTTE4OS4wMDQgMjU5LjdsLTMuNi0zNS40YzAtLjUtLjUtLjgtMS0uOHMtLjkuNS0uOCAxbDMuNiAzNS40YzAgLjQuNC44LjkuOC42IDAgMS0uNS45LTFaTTIwMS43IDI1OS40Yy41LS4zLjctLjguNS0xLjMtMi42LTUuNS00LjItMzEuNy00LjItMzIgMC0uNS0uNS0uOS0xLS45cy0uOS41LS45IDFjMCAxIDEuNiAyNi44IDQuMyAzMi42LjIuMy41LjUuOS41LjIgMCAuMyAwIC40LjFaTTI2Ni40MDEgMTgyLjIwMmMwLS41LS4zLS45LS44LTEtMTAuMi0xLjYtMjIuNy04LjQtMjIuOC04LjUtLjQtLjItMSAwLTEuMi40LS4yLjQgMCAxIC40IDEuMi41LjMgMTIuOSA3IDIzLjQgOC43aC4xYy40IDAgLjgtLjMuOS0uOFoiIGZpbGw9IiMxNDJENkUiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0yNjYuNCAxODkuMy45LTEzLjdjMC0uNS0uNC0xLS45LTFzLTEgLjQtMSAuOWwtLjkgMTMuN2MwIC41LjMgMSAuOSAxIC41IDAgLjktLjMgMS0uOVoiIGZpbGw9IiMxNDJENkUiIC8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0zMzUuMzAzIDE2OS40MDMgMjMuNy0xMC43Yy41LS4yLjctLjguNS0xLjMtLjItLjUtLjgtLjctMS4zLS41bC0yMy43IDEwLjdjLS41LjItLjcuOC0uNSAxLjMuMi40LjUuNi45LjYuMSAwIC4yIDAgLjQtLjFaIiBmaWxsPSIjRkZDNDEyIiAvPjwvZz48L3N2Zz4K", C = { class: "flex h-full" }, E = { class: "px-4 m-auto space-y-4 text-center max-[400px]" }, k = /* @__PURE__ */ u({
|
|
4
|
+
__name: "index",
|
|
5
|
+
setup(z) {
|
|
6
|
+
const M = T();
|
|
7
|
+
function j() {
|
|
8
|
+
M.push("/");
|
|
9
|
+
}
|
|
10
|
+
return (O, L) => (I(), S("div", C, [
|
|
11
|
+
N("div", E, [
|
|
12
|
+
L[1] || (L[1] = y('<h1 class="text-4xl text-slate-800 dark:text-neutral-200"> Sorry, page not found! </h1><p class="text-base text-slate-500 dark:text-neutral-400"> Sorry, we couldn’t find the page you’re looking for. Perhaps you’ve mistyped the URL? Be sure to check your spelling. </p><div class="flex items-center justify-center text-center"><div class="w-[300px]"><img src="' + x + '" alt="404"></div></div>', 3)),
|
|
13
|
+
g(t(D), {
|
|
14
|
+
type: "primary",
|
|
15
|
+
onClick: j
|
|
16
|
+
}, {
|
|
17
|
+
default: i(() => L[0] || (L[0] = [
|
|
18
|
+
A(" Go to Home ")
|
|
19
|
+
])),
|
|
20
|
+
_: 1
|
|
21
|
+
})
|
|
22
|
+
])
|
|
23
|
+
]));
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
export {
|
|
27
|
+
k as default
|
|
28
|
+
};
|
|
Binary file
|