@glodon-aiot/dataset-annotation 3.1.0-beta.15 → 3.2.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.
Files changed (121) hide show
  1. package/dist/dataset-annotation.js +123591 -0
  2. package/dist/dataset-annotation.umd.cjs +1017 -0
  3. package/dist/example/DatasetAnnotationDemo.d.ts +3 -0
  4. package/dist/example/DemoTabs.d.ts +3 -0
  5. package/dist/example/DetectionDatasetDemo.d.ts +5 -0
  6. package/dist/example/DetectionImageDemo.d.ts +5 -0
  7. package/dist/example/OcrDatasetDemo.d.ts +5 -0
  8. package/dist/example/OcrImageDemo.d.ts +5 -0
  9. package/dist/example/OcrkvcDatasetDemo.d.ts +5 -0
  10. package/dist/example/constant.local.d.ts +6 -0
  11. package/dist/example/index.d.ts +1 -0
  12. package/dist/src/Common/Page/index.d.ts +2 -1
  13. package/dist/src/Common/PageHeader/index.d.ts +1 -0
  14. package/dist/src/DatasetContext/index.d.ts +4 -3
  15. package/dist/src/components/CompositionInput/index.d.ts +2 -2
  16. package/dist/src/components/DataEmpty/index.d.ts +2 -1
  17. package/dist/src/components/DetectionAnnotation/PreSamplesPage/index.d.ts +2 -1
  18. package/dist/src/components/DetectionAnnotation/components/DisabledTooltip/index.d.ts +2 -2
  19. package/dist/src/components/DetectionAnnotation/components/ImageDetail/index.d.ts +2 -1
  20. package/dist/src/components/DetectionAnnotation/components/LabelMaker/Drawable.d.ts +2 -2
  21. package/dist/src/components/DetectionAnnotation/components/LabelMaker/RectLabel.d.ts +2 -2
  22. package/dist/src/components/DetectionAnnotation/components/LabelMaker/index.d.ts +1 -0
  23. package/dist/src/components/DetectionAnnotation/components/Labels/index.d.ts +1 -0
  24. package/dist/src/components/DetectionAnnotation/components/TagItem/index.d.ts +2 -1
  25. package/dist/src/components/DetectionAnnotation/index.d.ts +2 -1
  26. package/dist/src/components/DetectionImageAnnotation/index.d.ts +2 -0
  27. package/dist/src/components/Iconfont/index.d.ts +1 -1
  28. package/dist/src/components/MarkDescriptions/index.d.ts +1 -0
  29. package/dist/src/components/OCRImageViewer/index.d.ts +2 -1
  30. package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorInput.d.ts +2 -2
  31. package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorItem.d.ts +2 -1
  32. package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LableEditor.d.ts +1 -0
  33. package/dist/src/components/OcrAnnotation/MarkKVOCRModal/index.d.ts +1 -0
  34. package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/ImageDetail/index.d.ts +2 -1
  35. package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LabelEditorInput.d.ts +2 -2
  36. package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LabelEditorItem.d.ts +1 -0
  37. package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LableEditor.d.ts +1 -0
  38. package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/index.d.ts +1 -0
  39. package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/index.d.ts +1 -0
  40. package/dist/src/components/OcrAnnotation/OcrModal/index.d.ts +2 -1
  41. package/dist/src/components/OcrAnnotation/PreLabelOCR/PreLabelModal.d.ts +2 -1
  42. package/dist/src/components/OcrAnnotation/PreLabelOCR/index.d.ts +2 -1
  43. package/dist/src/components/OcrAnnotation/index.d.ts +2 -1
  44. package/dist/src/components/OcrImageAnnotation/index.d.ts +2 -0
  45. package/dist/src/components/PageNav/index.d.ts +2 -1
  46. package/dist/src/components/PicZipImportModal/index.d.ts +2 -1
  47. package/dist/src/components/PreLabelOCR/PreLabelModal.d.ts +2 -1
  48. package/dist/src/components/PreLabelOCR/index.d.ts +2 -1
  49. package/dist/src/components/ScanTable/index.d.ts +2 -1
  50. package/dist/src/components/Thumbnail/index.d.ts +2 -1
  51. package/dist/src/components/hooks/useBlocker.d.ts +1 -1
  52. package/dist/src/featuresConfig.d.ts +1 -1
  53. package/package.json +15 -22
  54. package/dist/es/Common/Page/index.mjs +0 -28
  55. package/dist/es/Common/PageContent/index.mjs +0 -18
  56. package/dist/es/Common/PageHeader/index.mjs +0 -38
  57. package/dist/es/DatasetContext/index.mjs +0 -11
  58. package/dist/es/_virtual/_commonjsHelpers.mjs +0 -6
  59. package/dist/es/_virtual/index.mjs +0 -4
  60. package/dist/es/access/images/data_empty.svg.mjs +0 -4
  61. package/dist/es/components/CompositionInput/index.mjs +0 -53
  62. package/dist/es/components/DataEmpty/index.mjs +0 -50
  63. package/dist/es/components/DetectionAnnotation/PreSamplesPage/index.mjs +0 -291
  64. package/dist/es/components/DetectionAnnotation/components/DisabledTooltip/index.mjs +0 -23
  65. package/dist/es/components/DetectionAnnotation/components/ImageDetail/index.mjs +0 -165
  66. package/dist/es/components/DetectionAnnotation/components/LabelMaker/Drawable.mjs +0 -51
  67. package/dist/es/components/DetectionAnnotation/components/LabelMaker/FabricCustomize.mjs +0 -42
  68. package/dist/es/components/DetectionAnnotation/components/LabelMaker/RectLabel.mjs +0 -283
  69. package/dist/es/components/DetectionAnnotation/components/LabelMaker/icons/delete-icon.svg.mjs +0 -4
  70. package/dist/es/components/DetectionAnnotation/components/LabelMaker/index.mjs +0 -314
  71. package/dist/es/components/DetectionAnnotation/components/Labels/index.mjs +0 -200
  72. package/dist/es/components/DetectionAnnotation/components/TagItem/index.mjs +0 -143
  73. package/dist/es/components/DetectionAnnotation/icon_item_empty.svg.mjs +0 -4
  74. package/dist/es/components/DetectionAnnotation/index.mjs +0 -712
  75. package/dist/es/components/DetectionImageAnnotation/index.mjs +0 -61
  76. package/dist/es/components/Iconfont/index.mjs +0 -16
  77. package/dist/es/components/MarkDescriptions/index.mjs +0 -65
  78. package/dist/es/components/OCRImageViewer/index.mjs +0 -212
  79. package/dist/es/components/OcrAnnotation/MarkKVOCRModal/CategoryDrawer.mjs +0 -136
  80. package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorInput.mjs +0 -57
  81. package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorItem.mjs +0 -72
  82. package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LableEditor.mjs +0 -54
  83. package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/index.mjs +0 -366
  84. package/dist/es/components/OcrAnnotation/MarkKVOCRModal/index.mjs +0 -254
  85. package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/ImageDetail/index.mjs +0 -100
  86. package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/images/delete.png.mjs +0 -4
  87. package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/index.mjs +0 -755
  88. package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/index.mjs +0 -230
  89. package/dist/es/components/OcrAnnotation/OcrModal/index.mjs +0 -179
  90. package/dist/es/components/OcrAnnotation/PreLabelOCR/PreLabelModal.mjs +0 -280
  91. package/dist/es/components/OcrAnnotation/PreLabelOCR/index.mjs +0 -43
  92. package/dist/es/components/OcrAnnotation/constant.mjs +0 -5
  93. package/dist/es/components/OcrAnnotation/index.mjs +0 -381
  94. package/dist/es/components/OcrImageAnnotation/index.mjs +0 -39
  95. package/dist/es/components/PageNav/index.mjs +0 -29
  96. package/dist/es/components/PicZipImportModal/index.mjs +0 -583
  97. package/dist/es/components/PicZipImportModal/pic_zip.svg.mjs +0 -4
  98. package/dist/es/components/PicZipImportModal/pic_zip_json.svg.mjs +0 -4
  99. package/dist/es/components/PreLabelOCR/PreLabelModal.mjs +0 -275
  100. package/dist/es/components/PreLabelOCR/index.mjs +0 -43
  101. package/dist/es/components/ScanTable/index.mjs +0 -96
  102. package/dist/es/components/Thumbnail/default.png.mjs +0 -4
  103. package/dist/es/components/Thumbnail/index.mjs +0 -30
  104. package/dist/es/components/hooks/Prompt.mjs +0 -33
  105. package/dist/es/constant.mjs +0 -13
  106. package/dist/es/createDatasetAnnotation/index.mjs +0 -133
  107. package/dist/es/createDetectionDatasetAnnotation/index.mjs +0 -129
  108. package/dist/es/createDetectionImageAnnotation/index.mjs +0 -31
  109. package/dist/es/createOcrDatasetAnnotation/index.mjs +0 -129
  110. package/dist/es/createOcrImageAnnotation/index.mjs +0 -33
  111. package/dist/es/featuresConfig.mjs +0 -79
  112. package/dist/es/index.mjs +0 -35
  113. package/dist/es/node_modules/classnames/index.mjs +0 -42
  114. package/dist/es/utils/color.mjs +0 -30
  115. package/dist/es/utils/index.mjs +0 -22
  116. package/dist/es/utils/sign.mjs +0 -33
  117. package/dist/lib/index.js +0 -7
  118. package/dist/src/components/Iconfont/font_3140028_iptomfpgyu.d.ts +0 -0
  119. package/dist/src/components/Iconfont/font_3454453_gu5ijeufyng.d.ts +0 -0
  120. package/dist/src/components/Iconfont/font_4108228_3slzqhoow93.d.ts +0 -0
  121. package/dist/src/components/Iconfont/font_4439177_k3mjwv7kzfd.d.ts +0 -0
@@ -1,583 +0,0 @@
1
- var ol = Object.defineProperty;
2
- var Be = Object.getOwnPropertySymbols;
3
- var rl = Object.prototype.hasOwnProperty, cl = Object.prototype.propertyIsEnumerable;
4
- var Le = (y, l, i) => l in y ? ol(y, l, { enumerable: !0, configurable: !0, writable: !0, value: i }) : y[l] = i, Ae = (y, l) => {
5
- for (var i in l || (l = {}))
6
- rl.call(l, i) && Le(y, i, l[i]);
7
- if (Be)
8
- for (var i of Be(l))
9
- cl.call(l, i) && Le(y, i, l[i]);
10
- return y;
11
- };
12
- var re = (y, l, i) => new Promise((f, M) => {
13
- var D = (w) => {
14
- try {
15
- F(i.next(w));
16
- } catch (z) {
17
- M(z);
18
- }
19
- }, Z = (w) => {
20
- try {
21
- F(i.throw(w));
22
- } catch (z) {
23
- M(z);
24
- }
25
- }, F = (w) => w.done ? f(w.value) : Promise.resolve(w.value).then(D, Z);
26
- F((i = i.apply(y, l)).next());
27
- });
28
- import { jsxs as p, Fragment as ce, jsx as e } from "react/jsx-runtime";
29
- import { useContext as dl, useState as r, useRef as pl, useEffect as A } from "react";
30
- import { Form as U, message as R, Modal as H, Button as O, Radio as x, Space as Ue, Upload as ul, Row as de, Col as ml, Spin as fl, Result as Oe } from "antd";
31
- /* empty css */import { CloudUploadOutlined as hl, PaperClipOutlined as gl, DeleteOutlined as Cl, PlusOutlined as bl } from "@ant-design/icons";
32
- import yl from "browser-md5-file";
33
- import { initMinio as Te, putObjectBuffer as Pe } from "@glodon-aiot/minio";
34
- import Nl from "antd/lib/upload/Dragger";
35
- import Sl from "./pic_zip.svg.mjs";
36
- import wl from "./pic_zip_json.svg.mjs";
37
- import { GB as zl, MB as jl } from "../../constant.mjs";
38
- import { fileSuffixToLowerCase as kl } from "../../utils/index.mjs";
39
- import vl from "../../DatasetContext/index.mjs";
40
- import { EXAMPLE_SRC_ROOT as El } from "../../featuresConfig.mjs";
41
- let m = 0, G = 0, T = 0, _ = 0;
42
- const Wl = (y) => {
43
- const {
44
- datasetIam: l,
45
- datasetId: i,
46
- currentVersion: f,
47
- tenCode: M,
48
- isVisible: D,
49
- markType: Z,
50
- setIsVisible: F,
51
- getVersionListRequest: w,
52
- onUploadStatusChange: z,
53
- setIsConfirm: I,
54
- tableReload: pe,
55
- loadVersionData: q,
56
- actionAfterFinish: ue
57
- } = y, {
58
- services: {
59
- cvforceDatahub: u
60
- },
61
- featuresConfig: {
62
- exampleSrcRoot: me
63
- } = {
64
- exampleSrcRoot: El
65
- }
66
- } = dl(vl), [N, Ve] = r(0), [S, Me] = r(0), [Q, De] = r([]), [P, Ke] = r(), [fe, Rl] = r([]), [Y, J] = r(!1), [he, ee] = r(!1), [K, le] = r(!1), [te, Ge] = r(0), [ge, _e] = r(0), [W, Ce] = r(-1), [se, xl] = r([]), [be, Fl] = r([]), [ye, ie] = r(!1), Ze = new yl(), [X] = U.useForm(), n = U.useWatch("acceptType", X), v = U.useWatch("labelState", X), [h, Ne] = r([]), [k, Se] = r([]), [E, qe] = r(), [we, ze] = r(0), [je, ke] = r(!1), [$l, Je] = r(""), [We, ve] = r(!1), [Ee, Xe] = r(
67
- "unlabeled"
68
- /* Unlabeled */
69
- ), ne = pl(!0), ae = ["image/jpeg", "image/jpg", "image/png", "image/bmp"], oe = 14 * jl;
70
- A(() => {
71
- m = 0, G = 0, T = 0, _ = 0, le(!1), D && (ne.current = !1, q && q());
72
- }, [D]);
73
- const Re = (t, s) => {
74
- var a;
75
- if (n === "image") {
76
- ie(!0);
77
- let o = 0;
78
- if (m = m + 1, G = G + 1, s.length === 0)
79
- return;
80
- let d = 0;
81
- const [...c] = s, C = window.URL || window.webkitURL, b = new Image();
82
- b.src = C.createObjectURL(t), b.onload = () => {
83
- Q.push({
84
- name: t.name,
85
- src: b.src,
86
- width: b.width,
87
- height: b.height
88
- }), De(Q);
89
- }, s.map((j) => {
90
- const $ = ae.some((L) => L === j.type), B = j.size <= oe;
91
- $ ? B || (o = o + 1, c.splice(c.findIndex((L) => L.name === j.name), 1)) : (d = d + 1, c.splice(c.findIndex((L) => L.name === j.name), 1));
92
- }), c.length > 100 && c.splice(100, c.length), Ve(d), Me(o), G === s.length && (ie(!0), G = 0);
93
- const g = ae.some((j) => j === t.type), V = t.size <= oe;
94
- if (g) {
95
- if (!V)
96
- return !1;
97
- } else
98
- return !1;
99
- } else {
100
- if (t.size > 2 * zl)
101
- return R.error(`${t.name}文件总大小不能超过2G`), !1;
102
- const o = (a = t.name) == null ? void 0 : a.substring(t.name.lastIndexOf("."));
103
- if (n === "zip" && o !== ".zip")
104
- return R.error("存在格式不正确的文件,已自动去除"), !1;
105
- Se((d) => d.length >= 1 ? d : [...d, t]);
106
- }
107
- return !1;
108
- };
109
- A(() => {
110
- ye !== !1 && (!N && !S && !m || (m = m - _ - N - S, m < 101 ? N > 0 && S > 0 ? (R.error(`${N + S}个文件添加失败,格式、大小或数量不符合要求`), m = m - N - S) : N > 0 && S === 0 ? R.error(`${N}个文件添加失败,格式不符合要求`) : N === 0 && S > 0 ? R.error(`${S}个文件添加失败,单张图片超过14M`) : N === 0 && S === 0 && R.success("校验成功") : N + S === 0 ? (R.error(`${m - 100}个文件添加失败,超过数量限制`), m = 100) : (R.error(`${m - 100 + N + S}个文件添加失败,格式、大小或数量不符合要求`), m = m < 101 ? m : 100), ie(!1)));
111
- }, [ye]);
112
- const He = (t) => {
113
- const s = t.originFileObj;
114
- return new Promise((a, o) => {
115
- Ze.md5(s, (d, c) => {
116
- d && o(d), Qe(c, s), a(c);
117
- });
118
- });
119
- }, Ie = () => re(void 0, null, function* () {
120
- if (!h)
121
- return;
122
- const t = [];
123
- for (let s = 0; s < h.length; s++) {
124
- const a = h[s], o = yield He(a);
125
- t.push(o);
126
- }
127
- !i || t.length === 0 || u == null || u.getDeduplication(t, i).then((s) => {
128
- Ke(s), ve(!1);
129
- });
130
- });
131
- A(() => {
132
- Ie();
133
- }, [h]);
134
- const Qe = (t, s) => {
135
- s.md5 = t, fe.push(s);
136
- }, xe = ({
137
- fileList: t
138
- }) => {
139
- if (n === "zip")
140
- return;
141
- ve(!0);
142
- const s = t.filter((a) => a.size && a.size <= oe ? ae.some((o) => a.type === o) : !1);
143
- s.splice(100, s.length), s.length < h.length ? (Ne(s), _++) : (T = T - _, _ = 0, T++, T == s.length && Ne(s), T > s.length && (T = s.length));
144
- }, Fe = () => {
145
- n === "zip" && (ne.current = !0), F(!1);
146
- }, Ye = () => {
147
- if (n === "image") {
148
- if (!P)
149
- return;
150
- let t = 0, s = 0;
151
- if (P.duplicated.length !== 0 && P.duplicated.map((a, o) => {
152
- var C;
153
- const d = P.duplicatedMd5[o], c = ((C = h.find((b) => {
154
- var g;
155
- return ((g = b.originFileObj) == null ? void 0 : g.md5) === d;
156
- })) == null ? void 0 : C.name) || "";
157
- se.push({
158
- labels: [],
159
- fileKey: a,
160
- sampleFileName: {
161
- name: c
162
- }
163
- });
164
- }), P.unduplicated.length !== 0) {
165
- const a = P.unduplicated.map((o) => new Promise((d) => {
166
- const c = fe.find((B) => B.md5 === o);
167
- if (!c)
168
- return d();
169
- const C = c.name, b = C.substring(C.indexOf(".")), g = Q.find((B) => B.name === C), V = {
170
- "Content-Type": "application/octet-stream",
171
- "X-Amz-Meta-Width": g == null ? void 0 : g.width,
172
- "X-Amz-Meta-Height": g == null ? void 0 : g.height
173
- }, j = `dataset/${i}/sample/${o}${kl(b)}`;
174
- delete c.md5;
175
- const $ = new FileReader();
176
- $.readAsArrayBuffer(c), $.onload = (B) => {
177
- Te({
178
- endPoint: l == null ? void 0 : l.endpoints[0],
179
- useSSL: l == null ? void 0 : l.useSSL,
180
- accessKey: l == null ? void 0 : l.accessKey,
181
- secretKey: l == null ? void 0 : l.secretKey
182
- }), Pe(M, j, B.target.result, V, (L, Bl) => {
183
- J(!0), s += 1, L && (t += 1, _e(t)), Ge(s), be.push({
184
- labels: [],
185
- fileKey: `${M}/${j}`,
186
- sampleFileName: {
187
- name: C
188
- }
189
- }), d();
190
- });
191
- };
192
- }));
193
- Promise.all(a).then(() => {
194
- !i || !f || setTimeout(() => {
195
- u == null || u.postDatasetsIdVersionsVidSamples(i, f.id, {
196
- samples: be.concat(se)
197
- }).then(() => {
198
- u.getDatasetsIdVersionsVid(i, f.id).then((o) => {
199
- Ce(o.samplesCount - f.samplesCount);
200
- }), I(!0), z && z(!1);
201
- });
202
- }, 100);
203
- });
204
- } else {
205
- if (!i || !f)
206
- return;
207
- u == null || u.postDatasetsIdVersionsVidSamples(i, f.id, {
208
- samples: se
209
- }).then(() => {
210
- u.getDatasetsIdVersionsVid(i, f.id).then((a) => {
211
- Ce(a.samplesCount - f.samplesCount);
212
- }), I(!0), z && z(!1);
213
- });
214
- }
215
- } else
216
- el(k);
217
- }, el = (t) => {
218
- !i || !f || t.map((s, a) => {
219
- var b;
220
- const o = {
221
- "Content-Type": "application/octet-stream"
222
- }, d = {
223
- endPoint: l == null ? void 0 : l.endpoints[0],
224
- useSSL: l == null ? void 0 : l.useSSL,
225
- accessKey: l == null ? void 0 : l.accessKey,
226
- secretKey: l == null ? void 0 : l.secretKey
227
- }, c = (l == null ? void 0 : l.prefix) + ((b = t[0]) == null ? void 0 : b.name), C = new FileReader();
228
- C.readAsArrayBuffer(s), C.onload = (g) => {
229
- Te(d), Pe(l == null ? void 0 : l.bucket, c, g.target.result, o, (V, j) => {
230
- if (V)
231
- console.log(V);
232
- else {
233
- if (ne.current)
234
- return;
235
- J(!0), u == null || u.postUploadPicsZip(i, f.id, Ae({
236
- zipUrls: [(l == null ? void 0 : l.bucket) + "/" + c]
237
- }, Z === "ocr" && {
238
- type: v === "labeled" ? 1 : 0
239
- })).then(($) => {
240
- ll($), Je($);
241
- });
242
- }
243
- });
244
- };
245
- });
246
- }, ll = (t) => re(void 0, null, function* () {
247
- var s;
248
- if (!(!i || !f || !u))
249
- try {
250
- const a = yield u.checkFileResult(i, f.id, {
251
- taskId: t
252
- }, 5e3, (o) => {
253
- ze(o);
254
- });
255
- a && qe(JSON.parse(a));
256
- } catch (a) {
257
- if (((s = a.cause) == null ? void 0 : s.code) === -101) {
258
- ke(!0);
259
- return;
260
- }
261
- }
262
- });
263
- A(() => {
264
- E && (ze(100), ee(!0));
265
- }, [E]), A(() => {
266
- te !== 0 && (I(!1), z && z(!0));
267
- }, [te]), A(() => {
268
- W !== -1 && (ee(!0), le(!1));
269
- }, [W]);
270
- const tl = () => {
271
- $e(), ee(!1), ue && ue();
272
- }, $e = () => {
273
- w(), J(!1), F(!1), pe && pe(), q && q();
274
- }, sl = /* @__PURE__ */ p("div", {
275
- children: [/* @__PURE__ */ e(bl, {}), /* @__PURE__ */ e("div", {
276
- style: {
277
- marginTop: 8
278
- },
279
- children: "添加图片"
280
- })]
281
- }), il = (t) => {
282
- const s = k.filter((a) => a.uid !== t.uid);
283
- Se(s);
284
- }, nl = () => {
285
- v === "labeled" ? window.location.href = `${me}/%E6%A0%87%E6%B3%A8%E6%A0%BC%E5%BC%8F%E7%A4%BA%E4%BE%8B.zip` : window.location.href = `${me}/%E7%A4%BA%E4%BE%8B%E5%8E%8B%E7%BC%A9%E5%8C%85.zip`;
286
- }, al = () => {
287
- w(), ke(!1), J(!1), F(!1);
288
- };
289
- return A(() => {
290
- Ee === "labeled" && X.setFieldsValue({
291
- labelFormat: "json",
292
- acceptType: "zip"
293
- /* Zip */
294
- });
295
- }, [Ee]), /* @__PURE__ */ p(ce, {
296
- children: [/* @__PURE__ */ e(H, {
297
- className: "upload-pics",
298
- width: 600,
299
- title: "导入数据",
300
- open: D,
301
- destroyOnClose: !0,
302
- onCancel: () => Fe(),
303
- maskClosable: !1,
304
- centered: !0,
305
- footer: [/* @__PURE__ */ e(O, {
306
- onClick: Fe,
307
- children: "取消"
308
- }, "cancel"), /* @__PURE__ */ e(O, {
309
- type: "primary",
310
- htmlType: "submit",
311
- form: "importModal",
312
- disabled: n === "image" && !h.length || n === "zip" && !k.length || Y && we == 0 || We,
313
- loading: K == !0,
314
- onClick: () => {
315
- Ye(), le(!0);
316
- },
317
- children: "导入"
318
- }, "confirm")],
319
- children: /* @__PURE__ */ p(U, {
320
- className: "file-form",
321
- preserve: !1,
322
- form: X,
323
- initialValues: {
324
- acceptType: "image",
325
- labelState: "unlabeled"
326
- /* Unlabeled */
327
- },
328
- name: "modal",
329
- labelAlign: "left",
330
- labelCol: {
331
- style: {
332
- width: 110
333
- }
334
- },
335
- children: [Z === "ocr" && /* @__PURE__ */ e(U.Item, {
336
- label: "数据标注状态",
337
- name: "labelState",
338
- rules: [{
339
- required: !0,
340
- message: "请选择数据标注状态"
341
- }],
342
- children: /* @__PURE__ */ p(x.Group, {
343
- disabled: K,
344
- onChange: (t) => {
345
- Xe(t.target.value);
346
- },
347
- children: [/* @__PURE__ */ e(x, {
348
- value: "unlabeled",
349
- children: "无标注信息"
350
- }), /* @__PURE__ */ e(x, {
351
- value: "labeled",
352
- children: "有标注信息"
353
- })]
354
- })
355
- }), v === "labeled" && /* @__PURE__ */ e(U.Item, {
356
- label: "标注格式",
357
- name: "labelFormat",
358
- rules: [{
359
- required: !0,
360
- message: "请选择标注格式"
361
- }],
362
- children: /* @__PURE__ */ e(x.Group, {
363
- disabled: K,
364
- children: /* @__PURE__ */ e(x, {
365
- value: "json",
366
- children: "json"
367
- })
368
- })
369
- }), /* @__PURE__ */ e(U.Item, {
370
- label: "导入方式",
371
- name: "acceptType",
372
- rules: [{
373
- required: !0,
374
- message: "请选择导入方式"
375
- }],
376
- children: /* @__PURE__ */ p(x.Group, {
377
- disabled: K,
378
- children: [v !== "labeled" && /* @__PURE__ */ e(x.Button, {
379
- value: "image",
380
- children: "上传图片"
381
- }), /* @__PURE__ */ e(x.Button, {
382
- value: "zip",
383
- children: "上传压缩包"
384
- })]
385
- })
386
- }), /* @__PURE__ */ p("div", {
387
- className: "file-upload",
388
- children: [(n === "image" && !h.length || n === "zip") && /* @__PURE__ */ p(Nl, {
389
- name: "file",
390
- showUploadList: !1,
391
- multiple: !0,
392
- beforeUpload: Re,
393
- accept: n === "zip" ? ".zip" : "image/png, image/jpeg, image/jpg, image/bmp",
394
- maxCount: n === "zip" ? 1 : void 0,
395
- onChange: xe,
396
- disabled: n === "zip" ? k.length === 1 : !1,
397
- children: [/* @__PURE__ */ e("span", {
398
- className: "file-upload-icon",
399
- children: /* @__PURE__ */ e(hl, {})
400
- }), /* @__PURE__ */ p(Ue, {
401
- className: "file-upload-action",
402
- children: [n === "image" && "拖拽图片至此,或者", n === "zip" && "拖拽包含“图片”的压缩包至此,或者", /* @__PURE__ */ e(O, {
403
- type: "link",
404
- style: {
405
- padding: 0
406
- },
407
- disabled: n === "zip" ? k.length === 1 : !1,
408
- children: n === "image" ? "上传图片" : "上传压缩包"
409
- })]
410
- }), n === "image" && /* @__PURE__ */ p("div", {
411
- className: "file-upload-desc",
412
- style: {
413
- width: 350
414
- },
415
- children: [/* @__PURE__ */ e("div", {
416
- className: "item-upload-desc item-upload-desc__1",
417
- children: "1. 支持jpg、png 、jpeg 、bmp格式,单张图片不超过14M;"
418
- }), /* @__PURE__ */ e("div", {
419
- className: "item-upload-desc",
420
- children: "2. 单次上传最多可选择100个文件。"
421
- })]
422
- }), n === "zip" && /* @__PURE__ */ p("div", {
423
- className: "file-upload-desc",
424
- style: {
425
- width: 350
426
- },
427
- children: [/* @__PURE__ */ e("div", {
428
- className: "item-upload-desc item-upload-desc__1",
429
- children: "1. 仅支持.zip格式,单个压缩包不超过2G;"
430
- }), v === "labeled" ? /* @__PURE__ */ p(ce, {
431
- children: [/* @__PURE__ */ e("div", {
432
- className: "item-upload-desc",
433
- children: "2. 压缩包内每张图片(jpg、png 、jpeg 、bmp格式)需要对应一个json文件,名称需一致,位置处在一级目录下;"
434
- }), /* @__PURE__ */ e("div", {
435
- className: "item-upload-desc",
436
- children: "3. json文件需包含标签、4点坐标,格式可参考样例。"
437
- })]
438
- }) : /* @__PURE__ */ e("div", {
439
- className: "item-upload-desc",
440
- children: "2. 压缩包内图片格式要求为:图片类型为jpg/png/bmp/jpeg,单张图片不超过14M;"
441
- }), /* @__PURE__ */ p("div", {
442
- className: "item-upload-desc",
443
- children: [v === "labeled" ? 4 : 3, ". 单次仅可上传1个文件。"]
444
- })]
445
- })]
446
- }), n === "image" && h.length ? /* @__PURE__ */ e("div", {
447
- className: "picture-upload",
448
- children: /* @__PURE__ */ e(ul, {
449
- listType: "picture-card",
450
- fileList: h,
451
- multiple: !0,
452
- showUploadList: {
453
- showPreviewIcon: !1
454
- },
455
- beforeUpload: Re,
456
- accept: "image/png, image/jpeg, image/jpg, image/bmp",
457
- onChange: xe,
458
- children: h.length < 100 ? sl : null
459
- })
460
- }) : /* @__PURE__ */ e(ce, {}), n === "zip" && /* @__PURE__ */ p("div", {
461
- className: "upload-wrapper",
462
- children: [k != null && k.length ? /* @__PURE__ */ e("div", {
463
- className: "upload-main",
464
- children: /* @__PURE__ */ e(de, {
465
- gutter: [24, 8],
466
- className: "upload-pannel",
467
- children: k.map((t) => /* @__PURE__ */ e(ml, {
468
- span: 24,
469
- className: "upload-item",
470
- children: /* @__PURE__ */ p(de, {
471
- justify: "space-between",
472
- align: "middle",
473
- children: [/* @__PURE__ */ p(de, {
474
- align: "middle",
475
- children: [/* @__PURE__ */ e("span", {
476
- className: "upload-item-file-icon",
477
- children: /* @__PURE__ */ e(gl, {})
478
- }), /* @__PURE__ */ e("span", {
479
- className: "upload-item-name",
480
- children: t.name
481
- })]
482
- }), /* @__PURE__ */ e(O, {
483
- className: "upload-item-upload-delete",
484
- type: "link",
485
- disabled: K,
486
- onClick: () => il(t),
487
- children: /* @__PURE__ */ e(Cl, {})
488
- })]
489
- })
490
- }, t.uid))
491
- })
492
- }) : null, n === "zip" && /* @__PURE__ */ p("div", {
493
- className: "upload-example",
494
- children: [/* @__PURE__ */ e("div", {
495
- className: "upload-example-header",
496
- children: /* @__PURE__ */ p(Ue, {
497
- children: [/* @__PURE__ */ e("span", {
498
- children: "数据示例:"
499
- }), /* @__PURE__ */ e(O, {
500
- size: "small",
501
- type: "link",
502
- style: {
503
- padding: 0
504
- },
505
- onClick: (t) => {
506
- t.stopPropagation(), nl();
507
- },
508
- children: "下载示例 >"
509
- })]
510
- })
511
- }), /* @__PURE__ */ e("div", {
512
- className: "upload-example-main",
513
- children: /* @__PURE__ */ e("img", {
514
- src: v === "labeled" ? wl : Sl
515
- })
516
- })]
517
- })]
518
- })]
519
- })]
520
- })
521
- }), Y && /* @__PURE__ */ e(H, {
522
- className: "uploading-modal",
523
- width: 404,
524
- title: null,
525
- open: Y,
526
- maskClosable: !1,
527
- closable: n !== "image",
528
- onCancel: () => {
529
- $e();
530
- },
531
- footer: null,
532
- children: /* @__PURE__ */ e("div", {
533
- className: "upload-spin",
534
- children: /* @__PURE__ */ e(fl, {
535
- tip: n === "image" ? `数据导入中(${te}/${h.length}),请耐心等待` : `处理中(${we}/100%),请耐心等待`,
536
- size: "large",
537
- children: /* @__PURE__ */ e("div", {
538
- className: "content"
539
- })
540
- })
541
- })
542
- }), he && /* @__PURE__ */ e(H, {
543
- className: "result",
544
- width: 424,
545
- title: null,
546
- open: he,
547
- closable: !1,
548
- footer: null,
549
- children: /* @__PURE__ */ e("div", {
550
- className: "upload-result",
551
- children: /* @__PURE__ */ e(Oe, {
552
- status: "success",
553
- title: n === "image" ? `数据导入完成,成功${W}个,失败${ge}个,去重${h.length - W - ge}个` : E && `数据导入完成,格式不符合的图片${E.formatErrorCount || 0}个,成功${E.successCount || 0}个,去重${E.repeatCount || 0}个,失败${E.failedCount || 0}个` + (v === "labeled" ? `(Json格式不符合${E.labelErrorCount}个)` : ""),
554
- extra: [/* @__PURE__ */ e(O, {
555
- onClick: tl,
556
- children: "关闭"
557
- }, "close")]
558
- })
559
- })
560
- }), je && /* @__PURE__ */ e(H, {
561
- className: "result",
562
- width: 424,
563
- title: null,
564
- open: je,
565
- closable: !1,
566
- footer: null,
567
- children: /* @__PURE__ */ e("div", {
568
- className: "upload-result",
569
- children: /* @__PURE__ */ e(Oe, {
570
- status: "error",
571
- title: "文件处理失败",
572
- extra: [/* @__PURE__ */ e(O, {
573
- onClick: al,
574
- children: "关闭"
575
- }, "close")]
576
- })
577
- })
578
- })]
579
- });
580
- };
581
- export {
582
- Wl as default
583
- };
@@ -1,4 +0,0 @@
1
- const M = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUxIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDI1MSAxMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTcuNjI4NiAzOS4yMzgyQzE3Ljg2NzEgMzkuMTQyOCAxOC4xMzMgMzkuMTQyOCAxOC4zNzE0IDM5LjIzODJMMzQuNTE0MiA0NS42OTUzQzM1LjIxMDIgNDUuOTczNyAzNS42NjY3IDQ2LjY0NzggMzUuNjY2NyA0Ny4zOTc1VjcxQzM1LjY2NjcgNzIuMDEyNSAzNC44NDU5IDcyLjgzMzMgMzMuODMzNCA3Mi44MzMzSDIuMTY2NzFDMS4xNTQyIDcyLjgzMzMgMC4zMzMzNzQgNzIuMDEyNiAwLjMzMzM3NCA3MVY0Ny4zOTc1QzAuMzMzMzc0IDQ2LjY0NzkgMC43ODk3MjQgNDUuOTczNyAxLjQ4NTgyIDQ1LjY5NTRMMTcuNjI4NiAzOS4yMzgyWk0xOCA0MS4yNDM3TDIuMzMzMzcgNDcuNTEwNFY3MC44MzMzSDMzLjY2NjdWNDcuNTEwNEwxOCA0MS4yNDM3WiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE4IDUzLjMzMzNDMTguNTUyMyA1My4zMzMzIDE5IDUzLjc4MTEgMTkgNTQuMzMzM1Y2Mi42NjY3QzE5IDYzLjIxOSAxOC41NTIzIDYzLjY2NjcgMTggNjMuNjY2N0MxNy40NDc4IDYzLjY2NjcgMTcgNjMuMjE5IDE3IDYyLjY2NjdWNTQuMzMzM0MxNyA1My43ODExIDE3LjQ0NzggNTMuMzMzMyAxOCA1My4zMzMzWiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIyIDU0LjU4MzNDMjIgNTMuODkzIDIyLjU1OTcgNTMuMzMzMyAyMy4yNSA1My4zMzMzSDI1LjVDMjcuMjU0NiA1My4zMzMzIDI5IDU0LjU1MDggMjkgNTYuNDE2N0MyOSA1OC4yODI1IDI3LjI1NDYgNTkuNSAyNS41IDU5LjVDMjMuNzQ1NSA1OS41IDIyIDU4LjI4MjUgMjIgNTYuNDE2N1Y1NC41ODMzWk0yNCA1NS4zMzMzVjU2LjQxNjdDMjQgNTYuODUyIDI0LjQ5MzEgNTcuNSAyNS41IDU3LjVDMjYuNTA3IDU3LjUgMjcgNTYuODUyIDI3IDU2LjQxNjdDMjcgNTUuOTgxMyAyNi41MDcgNTUuMzMzMyAyNS41IDU1LjMzMzNIMjRaIiBmaWxsPSIjMzMzMzMzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMgNTMuMzMzM0MyMy41NTIzIDUzLjMzMzMgMjQgNTMuNzgxMSAyNCA1NC4zMzMzVjYyLjY2NjdDMjQgNjMuMjE5IDIzLjU1MjMgNjMuNjY2NyAyMyA2My42NjY3QzIyLjQ0NzggNjMuNjY2NyAyMiA2My4yMTkgMjIgNjIuNjY2N1Y1NC4zMzMzQzIyIDUzLjc4MTEgMjIuNDQ3OCA1My4zMzMzIDIzIDUzLjMzMzNaIiBmaWxsPSIjMzMzMzMzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNy4wMDAwNCA1NC4zMzMzQzcuMDAwMDQgNTMuNzgxMSA3LjQ0Nzc2IDUzLjMzMzMgOC4wMDAwNCA1My4zMzMzSDEzLjAwMzlDMTMuMzY0MiA1My4zMzMzIDEzLjY5NjcgNTMuNTI3MiAxMy44NzQyIDUzLjg0MDhDMTQuMDUxNiA1NC4xNTQ0IDE0LjA0NjcgNTQuNTM5MiAxMy44NjEyIDU0Ljg0ODFMOS43NjY5OSA2MS42NjYxSDEzLjAwMzlDMTMuNTU2MiA2MS42NjYxIDE0LjAwMzkgNjIuMTEzOCAxNC4wMDM5IDYyLjY2NjFDMTQuMDAzOSA2My4yMTg0IDEzLjU1NjIgNjMuNjY2MSAxMy4wMDM5IDYzLjY2NjFIOC4wMDAwNEM3LjYzOTcgNjMuNjY2MSA3LjMwNzIzIDYzLjQ3MjIgNy4xMjk3NSA2My4xNTg2QzYuOTUyMjcgNjIuODQ1IDYuOTU3MjMgNjIuNDYwMiA3LjE0Mjc0IDYyLjE1MTNMMTEuMjM2OSA1NS4zMzMzSDguMDAwMDRDNy40NDc3NiA1NS4zMzMzIDcuMDAwMDQgNTQuODg1NiA3LjAwMDA0IDU0LjMzMzNaIiBmaWxsPSIjMzMzMzMzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjE5LjgzMyAyQzIxOS40NjUgMiAyMTkuMTY3IDIuMjk4NDggMjE5LjE2NyAyLjY2NjY3VjIwLjI1MjVMMjI1Ljc5MyAxMy42MjYyQzIyNi4xNTMgMTMuMjY1OSAyMjYuNzI3IDEzLjIzNDIgMjI3LjEyNSAxMy41NTI1TDIzMC41MzcgMTYuMjgxOUwyMzQuOTA3IDExLjE4MjVDMjM1LjI1MyAxMC43Nzk3IDIzNS44NTMgMTAuNzE2NiAyMzYuMjc0IDExLjAzOUwyNDguODMzIDIwLjY0MzFWMi42NjY2N0MyNDguODMzIDIuMjk4NDcgMjQ4LjUzNSAyIDI0OC4xNjcgMkgyMTkuODMzWk0yNTAuODMzIDIuNjY2NjdDMjUwLjgzMyAxLjE5MzkyIDI0OS42MzkgMCAyNDguMTY3IDBIMjE5LjgzM0MyMTguMzYxIDAgMjE3LjE2NyAxLjE5MzkxIDIxNy4xNjcgMi42NjY2N1YyNkMyMTcuMTY3IDI3LjQ3MjggMjE4LjM2MSAyOC42NjY3IDIxOS44MzMgMjguNjY2N0gyNDguMTY3QzI0OS42MzkgMjguNjY2NyAyNTAuODMzIDI3LjQ3MjggMjUwLjgzMyAyNlYyLjY2NjY3Wk0yNDguODMzIDIzLjE2MDhMMjM1LjgxMSAxMy4yMDIyTDIzMS40MjYgMTguMzE3NUMyMzEuMDc1IDE4LjcyNjggMjMwLjQ2MyAxOC43ODQzIDIzMC4wNDIgMTguNDQ3NUwyMjYuNTc0IDE1LjY3MzNMMjE5LjE2NyAyMy4wODA5VjI2QzIxOS4xNjcgMjYuMzY4MiAyMTkuNDY1IDI2LjY2NjcgMjE5LjgzMyAyNi42NjY3SDI0OC4xNjdDMjQ4LjUzNSAyNi42NjY3IDI0OC44MzMgMjYuMzY4MiAyNDguODMzIDI2VjIzLjE2MDhaTTIyMy44MzMgOC4wODMzM0MyMjMuODMzIDYuODQwNzIgMjI0Ljg0MSA1LjgzMzMzIDIyNi4wODMgNS44MzMzM0MyMjcuMzI2IDUuODMzMzMgMjI4LjMzMyA2Ljg0MDcyIDIyOC4zMzMgOC4wODMzM0MyMjguMzMzIDkuMzI1OTUgMjI3LjMyNiAxMC4zMzMzIDIyNi4wODMgMTAuMzMzM0MyMjQuODQxIDEwLjMzMzMgMjIzLjgzMyA5LjMyNTk1IDIyMy44MzMgOC4wODMzM1pNMjI2LjA4MyA3LjgzMzMzQzIyNS45NDUgNy44MzMzMyAyMjUuODMzIDcuOTQ1MjkgMjI1LjgzMyA4LjA4MzMzQzIyNS44MzMgOC4yMjEzOCAyMjUuOTQ1IDguMzMzMzMgMjI2LjA4MyA4LjMzMzMzQzIyNi4yMjEgOC4zMzMzMyAyMjYuMzMzIDguMjIxMzggMjI2LjMzMyA4LjA4MzMzQzIyNi4zMzMgNy45NDUyOCAyMjYuMjIxIDcuODMzMzMgMjI2LjA4MyA3LjgzMzMzWk0yMTkuODMzIDQ1QzIxOS40NjUgNDUgMjE5LjE2NyA0NS4yOTg1IDIxOS4xNjcgNDUuNjY2N1Y2My4yNTI0TDIyNS43OTMgNTYuNjI2MkMyMjYuMTUzIDU2LjI2NTkgMjI2LjcyNyA1Ni4yMzQxIDIyNy4xMjUgNTYuNTUyNUwyMzAuNTM3IDU5LjI4MTlMMjM0LjkwNyA1NC4xODI1QzIzNS4yNTMgNTMuNzc5NyAyMzUuODUzIDUzLjcxNjYgMjM2LjI3NCA1NC4wMzlMMjQ4LjgzMyA2My42NDMxVjQ1LjY2NjdDMjQ4LjgzMyA0NS4yOTg1IDI0OC41MzUgNDUgMjQ4LjE2NyA0NUgyMTkuODMzWk0yNTAuODMzIDQ1LjY2NjdDMjUwLjgzMyA0NC4xOTM5IDI0OS42MzkgNDMgMjQ4LjE2NyA0M0gyMTkuODMzQzIxOC4zNjEgNDMgMjE3LjE2NyA0NC4xOTM5IDIxNy4xNjcgNDUuNjY2N1Y2OUMyMTcuMTY3IDcwLjQ3MjggMjE4LjM2MSA3MS42NjY3IDIxOS44MzMgNzEuNjY2N0gyNDguMTY3QzI0OS42MzkgNzEuNjY2NyAyNTAuODMzIDcwLjQ3MjggMjUwLjgzMyA2OVY0NS42NjY3Wk0yNDguODMzIDY2LjE2MDhMMjM1LjgxMSA1Ni4yMDIyTDIzMS40MjYgNjEuMzE3NUMyMzEuMDc1IDYxLjcyNjggMjMwLjQ2MyA2MS43ODQzIDIzMC4wNDIgNjEuNDQ3NUwyMjYuNTc0IDU4LjY3MzNMMjE5LjE2NyA2Ni4wODA5VjY5QzIxOS4xNjcgNjkuMzY4MiAyMTkuNDY1IDY5LjY2NjcgMjE5LjgzMyA2OS42NjY3SDI0OC4xNjdDMjQ4LjUzNSA2OS42NjY3IDI0OC44MzMgNjkuMzY4MiAyNDguODMzIDY5VjY2LjE2MDhaTTIyMy44MzMgNTEuMDgzM0MyMjMuODMzIDQ5Ljg0MDcgMjI0Ljg0MSA0OC44MzMzIDIyNi4wODMgNDguODMzM0MyMjcuMzI2IDQ4LjgzMzMgMjI4LjMzMyA0OS44NDA3IDIyOC4zMzMgNTEuMDgzM0MyMjguMzMzIDUyLjMyNiAyMjcuMzI2IDUzLjMzMzMgMjI2LjA4MyA1My4zMzMzQzIyNC44NDEgNTMuMzMzMyAyMjMuODMzIDUyLjMyNiAyMjMuODMzIDUxLjA4MzNaTTIyNi4wODMgNTAuODMzM0MyMjUuOTQ1IDUwLjgzMzMgMjI1LjgzMyA1MC45NDUzIDIyNS44MzMgNTEuMDgzM0MyMjUuODMzIDUxLjIyMTQgMjI1Ljk0NSA1MS4zMzMzIDIyNi4wODMgNTEuMzMzM0MyMjYuMjIxIDUxLjMzMzMgMjI2LjMzMyA1MS4yMjE0IDIyNi4zMzMgNTEuMDgzM0MyMjYuMzMzIDUwLjk0NTMgMjI2LjIyMSA1MC44MzMzIDIyNi4wODMgNTAuODMzM1pNMjE5LjgzMyA5Mi4zMzMzQzIxOS40NjUgOTIuMzMzMyAyMTkuMTY3IDkyLjYzMTggMjE5LjE2NyA5M1YxMTAuNTg2TDIyNS43OTMgMTAzLjk2QzIyNi4xNTMgMTAzLjU5OSAyMjYuNzI3IDEwMy41NjcgMjI3LjEyNSAxMDMuODg2TDIzMC41MzcgMTA2LjYxNUwyMzQuOTA3IDEwMS41MTZDMjM1LjI1MyAxMDEuMTEzIDIzNS44NTMgMTAxLjA1IDIzNi4yNzQgMTAxLjM3MkwyNDguODMzIDExMC45NzZWOTNDMjQ4LjgzMyA5Mi42MzE4IDI0OC41MzUgOTIuMzMzMyAyNDguMTY3IDkyLjMzMzNIMjE5LjgzM1pNMjUwLjgzMyA5M0MyNTAuODMzIDkxLjUyNzMgMjQ5LjY0IDkwLjMzMzMgMjQ4LjE2NyA5MC4zMzMzSDIxOS44MzNDMjE4LjM2MSA5MC4zMzMzIDIxNy4xNjcgOTEuNTI3MiAyMTcuMTY3IDkzVjExMi45NDdDMjE3LjA1OSAxMTMuMTEgMjE3IDExMy4zMDIgMjE3IDExMy41VjExNi44MzNDMjE3IDExOC4zMDYgMjE4LjE5NCAxMTkuNSAyMTkuNjY3IDExOS41SDI0OEMyNDkuMjcgMTE5LjUgMjUwLjMzMyAxMTguNjEyIDI1MC42MDEgMTE3LjQyM0MyNTAuNzUgMTE3LjA5IDI1MC44MzMgMTE2LjcyMiAyNTAuODMzIDExNi4zMzNWOTNaTTIxOS4xNjcgMTEzLjc0OFYxMTYuMzMzQzIxOS4xNjcgMTE2LjcwMiAyMTkuNDY1IDExNyAyMTkuODMzIDExN0gyNDguMTY3QzI0OC4zNjYgMTE3IDI0OC41NDUgMTE2LjkxMyAyNDguNjY3IDExNi43NzRWMTEzLjk5NEwyMzUuNjQ0IDEwNC4wMzVMMjMxLjI1OSAxMDkuMTUxQzIzMC45MDggMTA5LjU2IDIzMC4yOTYgMTA5LjYxOCAyMjkuODc1IDEwOS4yODFMMjI2LjQwOCAxMDYuNTA3TDIxOS4xNjcgMTEzLjc0OFpNMjIzLjgzMyA5OC40MTY2QzIyMy44MzMgOTcuMTc0IDIyNC44NDEgOTYuMTY2NiAyMjYuMDgzIDk2LjE2NjZDMjI3LjMyNiA5Ni4xNjY2IDIyOC4zMzMgOTcuMTc0IDIyOC4zMzMgOTguNDE2NkMyMjguMzMzIDk5LjY1OTMgMjI3LjMyNiAxMDAuNjY3IDIyNi4wODMgMTAwLjY2N0MyMjQuODQxIDEwMC42NjcgMjIzLjgzMyA5OS42NTkzIDIyMy44MzMgOTguNDE2NlpNMjI2LjA4MyA5OC4xNjY2QzIyNS45NDUgOTguMTY2NiAyMjUuODMzIDk4LjI3ODYgMjI1LjgzMyA5OC40MTY2QzIyNS44MzMgOTguNTU0NyAyMjUuOTQ1IDk4LjY2NjYgMjI2LjA4MyA5OC42NjY2QzIyNi4yMjEgOTguNjY2NiAyMjYuMzMzIDk4LjU1NDcgMjI2LjMzMyA5OC40MTY2QzIyNi4zMzMgOTguMjc4NiAyMjYuMjIxIDk4LjE2NjYgMjI2LjA4MyA5OC4xNjY2WiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwNi4wMTEgMTA3LjAxMUwxMDYgMTA4TDEwNSAxMDcuOTg5TDEwNS4wMTEgMTA3TDEwNi4wMTEgMTA3LjAxMVpNMTA2LjA1NCAxMDMuMDU0TDEwNi4wMzMgMTA1LjAzM0wxMDUuMDMzIDEwNS4wMjJMMTA1LjA1NCAxMDMuMDQzTDEwNi4wNTQgMTAzLjA1NFpNMTA2LjA5OCA5OS4wOTc4TDEwNi4wNzYgMTAxLjA3NkwxMDUuMDc2IDEwMS4wNjVMMTA1LjA5OCA5OS4wODY4TDEwNi4wOTggOTkuMDk3OFpNMTA2LjE0MSA5NS4xNDEzTDEwNi4xMiA5Ny4xMTk2TDEwNS4xMiA5Ny4xMDg2TDEwNS4xNDEgOTUuMTMwM0wxMDYuMTQxIDk1LjE0MTNaTTEwNi4xODUgOTEuMTg0OEwxMDYuMTYzIDkzLjE2M0wxMDUuMTYzIDkzLjE1MjFMMTA1LjE4NSA5MS4xNzM4TDEwNi4xODUgOTEuMTg0OFpNMTA2LjIyOCA4Ny4yMjgzTDEwNi4yMDcgODkuMjA2NUwxMDUuMjA3IDg5LjE5NTVMMTA1LjIyOCA4Ny4yMTczTDEwNi4yMjggODcuMjI4M1pNMTA2LjI3MiA4My4yNzE3TDEwNi4yNSA4NS4yNUwxMDUuMjUgODUuMjM5TDEwNS4yNzIgODMuMjYwN0wxMDYuMjcyIDgzLjI3MTdaTTEwNi4zMTUgNzkuMzE1MkwxMDYuMjk0IDgxLjI5MzVMMTA1LjI5NCA4MS4yODI1TDEwNS4zMTUgNzkuMzA0MkwxMDYuMzE1IDc5LjMxNTJaTTEwNi4zNTkgNzUuMzU4N0wxMDYuMzM3IDc3LjMzN0wxMDUuMzM3IDc3LjMyNkwxMDUuMzU5IDc1LjM0NzdMMTA2LjM1OSA3NS4zNTg3Wk0xMDYuNDAyIDcxLjQwMjJMMTA2LjM4IDczLjM4MDRMMTA1LjM4MSA3My4zNjk0TDEwNS40MDIgNzEuMzkxMkwxMDYuNDAyIDcxLjQwMjJaTTEwNi40NDYgNjcuNDQ1NkwxMDYuNDI0IDY5LjQyMzlMMTA1LjQyNCA2OS40MTI5TDEwNS40NDYgNjcuNDM0N0wxMDYuNDQ2IDY3LjQ0NTZaTTEwNi40ODkgNjMuNDg5MUwxMDYuNDY3IDY1LjQ2NzRMMTA1LjQ2NyA2NS40NTY0TDEwNS40ODkgNjMuNDc4MUwxMDYuNDg5IDYzLjQ4OTFaTTEwNi41MzMgNTkuNTMyNkwxMDYuNTExIDYxLjUxMDlMMTA1LjUxMSA2MS40OTk5TDEwNS41MzMgNTkuNTIxNkwxMDYuNTMzIDU5LjUzMjZaTTEwNi41NzYgNTUuNTc2MUwxMDYuNTU0IDU3LjU1NDNMMTA1LjU1NCA1Ny41NDMzTDEwNS41NzYgNTUuNTY1MUwxMDYuNTc2IDU1LjU3NjFaTTEwNi42MiA1MS42MTk1TDEwNi41OTggNTMuNTk3OEwxMDUuNTk4IDUzLjU4NjhMMTA1LjYyIDUxLjYwODZMMTA2LjYyIDUxLjYxOTVaTTEwNi42NjMgNDcuNjYzTDEwNi42NDEgNDkuNjQxM0wxMDUuNjQxIDQ5LjYzMDNMMTA1LjY2MyA0Ny42NTJMMTA2LjY2MyA0Ny42NjNaTTEwNi43MDcgNDMuNzA2NUwxMDYuNjg1IDQ1LjY4NDhMMTA1LjY4NSA0NS42NzM4TDEwNS43MDcgNDMuNjk1NUwxMDYuNzA3IDQzLjcwNjVaTTEwNi43NSAzOS43NUwxMDYuNzI4IDQxLjcyODJMMTA1LjcyOCA0MS43MTczTDEwNS43NSAzOS43MzlMMTA2Ljc1IDM5Ljc1Wk0xMDYuNzk0IDM1Ljc5MzVMMTA2Ljc3MiAzNy43NzE3TDEwNS43NzIgMzcuNzYwN0wxMDUuNzk0IDM1Ljc4MjVMMTA2Ljc5NCAzNS43OTM1Wk0xMDYuODM3IDMxLjgzNjlMMTA2LjgxNSAzMy44MTUyTDEwNS44MTUgMzMuODA0MkwxMDUuODM3IDMxLjgyNkwxMDYuODM3IDMxLjgzNjlaTTEwNi44OCAyNy44ODA0TDEwNi44NTkgMjkuODU4N0wxMDUuODU5IDI5Ljg0NzdMMTA1Ljg4MSAyNy44Njk0TDEwNi44OCAyNy44ODA0Wk0xMDYuOTI0IDIzLjkyMzlMMTA2LjkwMiAyNS45MDIyTDEwNS45MDIgMjUuODkxMkwxMDUuOTI0IDIzLjkxMjlMMTA2LjkyNCAyMy45MjM5Wk0xMDYuOTY3IDE5Ljk2NzRMMTA2Ljk0NiAyMS45NDU3TDEwNS45NDYgMjEuOTM0N0wxMDUuOTY3IDE5Ljk1NjRMMTA2Ljk2NyAxOS45Njc0Wk0xMDcgMTdMMTA2Ljk4OSAxNy45ODkxTDEwNS45ODkgMTcuOTc4MUwxMDYgMTYuOTg5TDEwNyAxN1oiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTk1LjM0OSA2Mi42NDJDMTk1LjU0NyA2Mi44MzQ3IDE5NS41NTEgNjMuMTUxMyAxOTUuMzU4IDYzLjM0OUwxOTIuMjE3IDY2LjU3MTNDMTkyLjAyNCA2Ni43NjkgMTkxLjcwOCA2Ni43NzMgMTkxLjUxIDY2LjU4MDNDMTkxLjMxMiA2Ni4zODc1IDE5MS4zMDggNjYuMDcxIDE5MS41MDEgNjUuODczMkwxOTMuOTk3IDYzLjMxMjJMMTkzLjk5IDYyLjcxMzRMMTkxLjQyOSA2MC4yMTY4QzE5MS4yMzEgNjAuMDI0MSAxOTEuMjI3IDU5LjcwNzUgMTkxLjQyIDU5LjUwOThDMTkxLjYxMyA1OS4zMTIgMTkxLjkyOSA1OS4zMDggMTkyLjEyNyA1OS41MDA4TDE5NS4zNDkgNjIuNjQyWk0xODkuOTYyIDYyLjU2NDFMMTkxLjk3NCA2Mi41Mzg1TDE5MS45ODcgNjMuNTM4NEwxODkuOTc0IDYzLjU2NEwxODkuOTYyIDYyLjU2NDFaTTE4NS45MzYgNjIuNjE1NEwxODcuOTQ5IDYyLjU4OThMMTg3Ljk2MiA2My41ODk3TDE4NS45NDkgNjMuNjE1M0wxODUuOTM2IDYyLjYxNTRaTTE4MS45MSA2Mi42NjY3TDE4My45MjMgNjIuNjQxMUwxODMuOTM2IDYzLjY0MUwxODEuOTIzIDYzLjY2NjZMMTgxLjkxIDYyLjY2NjdaTTE3Ny44ODUgNjIuNzE4TDE3OS44OTggNjIuNjkyM0wxNzkuOTEgNjMuNjkyM0wxNzcuODk3IDYzLjcxNzlMMTc3Ljg4NSA2Mi43MThaTTE3My44NTkgNjIuNzY5M0wxNzUuODcyIDYyLjc0MzZMMTc1Ljg4NSA2My43NDM1TDE3My44NzIgNjMuNzY5MkwxNzMuODU5IDYyLjc2OTNaTTE2OS44MzMgNjIuODIwNUwxNzEuODQ2IDYyLjc5NDlMMTcxLjg1OSA2My43OTQ4TDE2OS44NDYgNjMuODIwNUwxNjkuODMzIDYyLjgyMDVaTTE2NS44MDggNjIuODcxOEwxNjcuODIxIDYyLjg0NjJMMTY3LjgzMyA2My44NDYxTDE2NS44MjEgNjMuODcxN0wxNjUuODA4IDYyLjg3MThaTTE2MS43ODIgNjIuOTIzMUwxNjMuNzk1IDYyLjg5NzVMMTYzLjgwOCA2My44OTc0TDE2MS43OTUgNjMuOTIzTDE2MS43ODIgNjIuOTIzMVpNMTU3Ljc1NyA2Mi45NzQ0TDE1OS43NjkgNjIuOTQ4N0wxNTkuNzgyIDYzLjk0ODdMMTU3Ljc2OSA2My45NzQzTDE1Ny43NTcgNjIuOTc0NFpNMTUzLjczMSA2My4wMjU3TDE1NS43NDQgNjNMMTU1Ljc1NiA2My45OTk5TDE1My43NDQgNjQuMDI1NkwxNTMuNzMxIDYzLjAyNTdaTTE0OS43MDUgNjMuMDc3TDE1MS43MTggNjMuMDUxM0wxNTEuNzMxIDY0LjA1MTJMMTQ5LjcxOCA2NC4wNzY5TDE0OS43MDUgNjMuMDc3Wk0xNDUuNjggNjMuMTI4MkwxNDcuNjkyIDYzLjEwMjZMMTQ3LjcwNSA2NC4xMDI1TDE0NS42OTIgNjQuMTI4MkwxNDUuNjggNjMuMTI4MlpNMTQxLjY1NCA2My4xNzk1TDE0My42NjcgNjMuMTUzOUwxNDMuNjggNjQuMTUzOEwxNDEuNjY3IDY0LjE3OTRMMTQxLjY1NCA2My4xNzk1Wk0xMzcuNjI4IDYzLjIzMDhMMTM5LjY0MSA2My4yMDUyTDEzOS42NTQgNjQuMjA1MUwxMzcuNjQxIDY0LjIzMDdMMTM3LjYyOCA2My4yMzA4Wk0xMzMuNjAzIDYzLjI4MjFMMTM1LjYxNSA2My4yNTY0TDEzNS42MjggNjQuMjU2NEwxMzMuNjE1IDY0LjI4MkwxMzMuNjAzIDYzLjI4MjFaTTEyOS41NzcgNjMuMzMzNEwxMzEuNTkgNjMuMzA3N0wxMzEuNjAzIDY0LjMwNzZMMTI5LjU5IDY0LjMzMzNMMTI5LjU3NyA2My4zMzM0Wk0xMjUuNTUxIDYzLjM4NDZMMTI3LjU2NCA2My4zNTlMMTI3LjU3NyA2NC4zNTg5TDEyNS41NjQgNjQuMzg0NkwxMjUuNTUxIDYzLjM4NDZaTTEyMS41MjYgNjMuNDM1OUwxMjMuNTM5IDYzLjQxMDNMMTIzLjU1MSA2NC40MTAyTDEyMS41MzggNjQuNDM1OEwxMjEuNTI2IDYzLjQzNTlaTTExNy41IDYzLjQ4NzJMMTE5LjUxMyA2My40NjE2TDExOS41MjYgNjQuNDYxNUwxMTcuNTEzIDY0LjQ4NzFMMTE3LjUgNjMuNDg3MlpNMTEzLjQ3NCA2My41Mzg1TDExNS40ODcgNjMuNTEyOUwxMTUuNSA2NC41MTI4TDExMy40ODcgNjQuNTM4NEwxMTMuNDc0IDYzLjUzODVaTTEwOS40NDkgNjMuNTg5OEwxMTEuNDYyIDYzLjU2NDFMMTExLjQ3NCA2NC41NjQxTDEwOS40NjIgNjQuNTg5N0wxMDkuNDQ5IDYzLjU4OThaTTEwNS40MjMgNjMuNjQxMUwxMDcuNDM2IDYzLjYxNTRMMTA3LjQ0OSA2NC42MTUzTDEwNS40MzYgNjQuNjQxTDEwNS40MjMgNjMuNjQxMVpNMTAxLjM5OCA2My42OTIzTDEwMy40MSA2My42NjY3TDEwMy40MjMgNjQuNjY2NkwxMDEuNDEgNjQuNjkyM0wxMDEuMzk4IDYzLjY5MjNaTTk3LjM3MTkgNjMuNzQzNkw5OS4zODQ3IDYzLjcxOEw5OS4zOTc0IDY0LjcxNzlMOTcuMzg0NiA2NC43NDM1TDk3LjM3MTkgNjMuNzQzNlpNOTMuMzQ2MiA2My43OTQ5TDk1LjM1OSA2My43NjkzTDk1LjM3MTggNjQuNzY5Mkw5My4zNTkgNjQuNzk0OEw5My4zNDYyIDYzLjc5NDlaTTg5LjMyMDYgNjMuODQ2Mkw5MS4zMzM0IDYzLjgyMDVMOTEuMzQ2MSA2NC44MjA1TDg5LjMzMzMgNjQuODQ2MUw4OS4zMjA2IDYzLjg0NjJaTTg1LjI5NDkgNjMuODk3NUw4Ny4zMDc4IDYzLjg3MThMODcuMzIwNSA2NC44NzE3TDg1LjMwNzcgNjQuODk3NEw4NS4yOTQ5IDYzLjg5NzVaTTgxLjI2OTMgNjMuOTQ4N0w4My4yODIxIDYzLjkyMzFMODMuMjk0OSA2NC45MjNMODEuMjgyIDY0Ljk0ODdMODEuMjY5MyA2My45NDg3Wk03Ny4yNDM3IDY0TDc5LjI1NjUgNjMuOTc0NEw3OS4yNjkyIDY0Ljk3NDNMNzcuMjU2NCA2NC45OTk5TDc3LjI0MzcgNjRaTTczLjIxOCA2NC4wNTEzTDc1LjIzMDggNjQuMDI1N0w3NS4yNDM2IDY1LjAyNTZMNzMuMjMwNyA2NS4wNTEyTDczLjIxOCA2NC4wNTEzWk02OS4xOTI0IDY0LjEwMjZMNzEuMjA1MiA2NC4wNzdMNzEuMjE3OSA2NS4wNzY5TDY5LjIwNTEgNjUuMTAyNUw2OS4xOTI0IDY0LjEwMjZaTTY1LjE2NjcgNjQuMTUzOUw2Ny4xNzk1IDY0LjEyODJMNjcuMTkyMyA2NS4xMjgyTDY1LjE3OTUgNjUuMTUzOEw2NS4xNjY3IDY0LjE1MzlaTTYxLjE0MTEgNjQuMjA1Mkw2My4xNTM5IDY0LjE3OTVMNjMuMTY2NiA2NS4xNzk0TDYxLjE1MzggNjUuMjA1MUw2MS4xNDExIDY0LjIwNTJaTTU3LjExNTQgNjQuMjU2NEw1OS4xMjgzIDY0LjIzMDhMNTkuMTQxIDY1LjIzMDdMNTcuMTI4MiA2NS4yNTY0TDU3LjExNTQgNjQuMjU2NFpNNTMuMDg5OCA2NC4zMDc3TDU1LjEwMjYgNjQuMjgyMUw1NS4xMTUzIDY1LjI4Mkw1My4xMDI1IDY1LjMwNzZMNTMuMDg5OCA2NC4zMDc3Wk00OS4wNjQxIDY0LjM1OUw1MS4wNzcgNjQuMzMzNEw1MS4wODk3IDY1LjMzMzNMNDkuMDc2OSA2NS4zNTg5TDQ5LjA2NDEgNjQuMzU5Wk00NS4wMzg1IDY0LjQxMDNMNDcuMDUxMyA2NC4zODQ2TDQ3LjA2NDEgNjUuMzg0Nkw0NS4wNTEyIDY1LjQxMDJMNDUuMDM4NSA2NC40MTAzWk00MS4wMTI5IDY0LjQ2MTZMNDMuMDI1NyA2NC40MzU5TDQzLjAzODQgNjUuNDM1OEw0MS4wMjU2IDY1LjQ2MTVMNDEuMDEyOSA2NC40NjE2Wk0zNy45OTM3IDY0LjVMMzkgNjQuNDg3MkwzOS4wMTI4IDY1LjQ4NzFMMzguMDA2NCA2NS40OTk5TDM3Ljk5MzcgNjQuNVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTk1LjM1NCAxNy42NDY0QzE5NS41NDkgMTcuODQxNyAxOTUuNTQ5IDE4LjE1ODMgMTk1LjM1NCAxOC4zNTM1TDE5Mi4xNzIgMjEuNTM1NUMxOTEuOTc2IDIxLjczMDggMTkxLjY2IDIxLjczMDggMTkxLjQ2NSAyMS41MzU1QzE5MS4yNjkgMjEuMzQwMyAxOTEuMjY5IDIxLjAyMzcgMTkxLjQ2NSAyMC44Mjg0TDE5My45ODkgMTguMzA0MlYxNy42OTU3TDE5MS40NjUgMTUuMTcxNkMxOTEuMjY5IDE0Ljk3NjMgMTkxLjI2OSAxNC42NTk3IDE5MS40NjUgMTQuNDY0NUMxOTEuNjYgMTQuMjY5MiAxOTEuOTc2IDE0LjI2OTIgMTkyLjE3MiAxNC40NjQ1TDE5NS4zNTQgMTcuNjQ2NFpNMTg5Ljk0MyAxNy41SDE5MS45NjZWMTguNUgxODkuOTQzVjE3LjVaTTE4NS44OTggMTcuNUgxODcuOTIxVjE4LjVIMTg1Ljg5OFYxNy41Wk0xODEuODUyIDE3LjVIMTgzLjg3NVYxOC41SDE4MS44NTJWMTcuNVpNMTc3LjgwNyAxNy41SDE3OS44M1YxOC41SDE3Ny44MDdWMTcuNVpNMTczLjc2MSAxNy41SDE3NS43ODRWMTguNUgxNzMuNzYxVjE3LjVaTTE2OS43MTYgMTcuNUgxNzEuNzM5VjE4LjVIMTY5LjcxNlYxNy41Wk0xNjUuNjcxIDE3LjVIMTY3LjY5M1YxOC41SDE2NS42NzFWMTcuNVpNMTYxLjYyNSAxNy41SDE2My42NDhWMTguNUgxNjEuNjI1VjE3LjVaTTE1Ny41OCAxNy41SDE1OS42MDJWMTguNUgxNTcuNThWMTcuNVpNMTUzLjUzNCAxNy41SDE1NS41NTdWMTguNUgxNTMuNTM0VjE3LjVaTTE0OS40ODkgMTcuNUgxNTEuNTExVjE4LjVIMTQ5LjQ4OVYxNy41Wk0xNDUuNDQzIDE3LjVIMTQ3LjQ2NlYxOC41SDE0NS40NDNWMTcuNVpNMTQxLjM5OCAxNy41SDE0My40MjFWMTguNUgxNDEuMzk4VjE3LjVaTTEzNy4zNTIgMTcuNUgxMzkuMzc1VjE4LjVIMTM3LjM1MlYxNy41Wk0xMzMuMzA3IDE3LjVIMTM1LjMzVjE4LjVIMTMzLjMwN1YxNy41Wk0xMjkuMjYxIDE3LjVIMTMxLjI4NFYxOC41SDEyOS4yNjFWMTcuNVpNMTI1LjIxNiAxNy41SDEyNy4yMzlWMTguNUgxMjUuMjE2VjE3LjVaTTEyMS4xNyAxNy41SDEyMy4xOTNWMTguNUgxMjEuMTdWMTcuNVpNMTE3LjEyNSAxNy41SDExOS4xNDhWMTguNUgxMTcuMTI1VjE3LjVaTTExMy4wOCAxNy41SDExNS4xMDJWMTguNUgxMTMuMDhWMTcuNVpNMTA5LjAzNCAxNy41SDExMS4wNTdWMTguNUgxMDkuMDM0VjE3LjVaTTEwNiAxNy41SDEwNy4wMTFWMTguNUgxMDZWMTcuNVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTk1LjM1NCAxMDguNjQ2QzE5NS41NDkgMTA4Ljg0MiAxOTUuNTQ5IDEwOS4xNTggMTk1LjM1NCAxMDkuMzU0TDE5Mi4xNzIgMTEyLjUzNkMxOTEuOTc2IDExMi43MzEgMTkxLjY2IDExMi43MzEgMTkxLjQ2NSAxMTIuNTM2QzE5MS4yNjkgMTEyLjM0IDE5MS4yNjkgMTEyLjAyNCAxOTEuNDY1IDExMS44MjhMMTkzLjk4OSAxMDkuMzA0VjEwOC42OTZMMTkxLjQ2NSAxMDYuMTcyQzE5MS4yNjkgMTA1Ljk3NiAxOTEuMjY5IDEwNS42NiAxOTEuNDY1IDEwNS40NjRDMTkxLjY2IDEwNS4yNjkgMTkxLjk3NiAxMDUuMjY5IDE5Mi4xNzIgMTA1LjQ2NEwxOTUuMzU0IDEwOC42NDZaTTE4OS45NDMgMTA4LjVIMTkxLjk2NlYxMDkuNUgxODkuOTQzVjEwOC41Wk0xODUuODk4IDEwOC41SDE4Ny45MjFWMTA5LjVIMTg1Ljg5OFYxMDguNVpNMTgxLjg1MiAxMDguNUgxODMuODc1VjEwOS41SDE4MS44NTJWMTA4LjVaTTE3Ny44MDcgMTA4LjVIMTc5LjgzVjEwOS41SDE3Ny44MDdWMTA4LjVaTTE3My43NjEgMTA4LjVIMTc1Ljc4NFYxMDkuNUgxNzMuNzYxVjEwOC41Wk0xNjkuNzE2IDEwOC41SDE3MS43MzlWMTA5LjVIMTY5LjcxNlYxMDguNVpNMTY1LjY3MSAxMDguNUgxNjcuNjkzVjEwOS41SDE2NS42NzFWMTA4LjVaTTE2MS42MjUgMTA4LjVIMTYzLjY0OFYxMDkuNUgxNjEuNjI1VjEwOC41Wk0xNTcuNTggMTA4LjVIMTU5LjYwMlYxMDkuNUgxNTcuNThWMTA4LjVaTTE1My41MzQgMTA4LjVIMTU1LjU1N1YxMDkuNUgxNTMuNTM0VjEwOC41Wk0xNDkuNDg5IDEwOC41SDE1MS41MTFWMTA5LjVIMTQ5LjQ4OVYxMDguNVpNMTQ1LjQ0MyAxMDguNUgxNDcuNDY2VjEwOS41SDE0NS40NDNWMTA4LjVaTTE0MS4zOTggMTA4LjVIMTQzLjQyMVYxMDkuNUgxNDEuMzk4VjEwOC41Wk0xMzcuMzUyIDEwOC41SDEzOS4zNzVWMTA5LjVIMTM3LjM1MlYxMDguNVpNMTMzLjMwNyAxMDguNUgxMzUuMzNWMTA5LjVIMTMzLjMwN1YxMDguNVpNMTI5LjI2MSAxMDguNUgxMzEuMjg0VjEwOS41SDEyOS4yNjFWMTA4LjVaTTEyNS4yMTYgMTA4LjVIMTI3LjIzOVYxMDkuNUgxMjUuMjE2VjEwOC41Wk0xMjEuMTcgMTA4LjVIMTIzLjE5M1YxMDkuNUgxMjEuMTdWMTA4LjVaTTExNy4xMjUgMTA4LjVIMTE5LjE0OFYxMDkuNUgxMTcuMTI1VjEwOC41Wk0xMTMuMDggMTA4LjVIMTE1LjEwMlYxMDkuNUgxMTMuMDhWMTA4LjVaTTEwOS4wMzQgMTA4LjVIMTExLjA1N1YxMDkuNUgxMDkuMDM0VjEwOC41Wk0xMDYgMTA4LjVIMTA3LjAxMVYxMDkuNUgxMDZWMTA4LjVaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMjAxLjcyOCAyNFYyMy4wNEgyMDMuNDQ0VjE2Ljk4TDIwMS44MzYgMTguMTkyTDIwMS4yNDggMTcuMzg4TDIwMy43MzIgMTUuNkgyMDQuNTI0VjIzLjA0SDIwNS45NTJWMjRIMjAxLjcyOFoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik0yMDEuMDU2IDY4QzIwMS4wMzIgNjcuODU2IDIwMS4wMiA2Ny43MDggMjAxLjAyIDY3LjU1NkMyMDEuMDIgNjcuMDM2IDIwMS4xMDggNjYuNTcyIDIwMS4yODQgNjYuMTY0QzIwMS40NjggNjUuNzQ4IDIwMS43MDQgNjUuMzcyIDIwMS45OTIgNjUuMDM2QzIwMi4yOCA2NC42OTIgMjAyLjU4NCA2NC4zNzYgMjAyLjkwNCA2NC4wODhDMjAzLjIzMiA2My43OTIgMjAzLjUzNiA2My41MTIgMjAzLjgxNiA2My4yNDhDMjA0LjEwNCA2Mi45NzYgMjA0LjM0IDYyLjcwNCAyMDQuNTI0IDYyLjQzMkMyMDQuNzA4IDYyLjE2IDIwNC44IDYxLjg3NiAyMDQuOCA2MS41OEMyMDQuOCA2MS4yNDQgMjA0LjY3NiA2MC45NjggMjA0LjQyOCA2MC43NTJDMjA0LjE4IDYwLjUyOCAyMDMuODYgNjAuNDE2IDIwMy40NjggNjAuNDE2QzIwMy4xMzIgNjAuNDE2IDIwMi44MjQgNjAuNDg0IDIwMi41NDQgNjAuNjJDMjAyLjI3MiA2MC43NDggMjAyLjAxNiA2MC45MjQgMjAxLjc3NiA2MS4xNDhMMjAxLjE3NiA2MC40MTZDMjAxLjQ5NiA2MC4xMjggMjAxLjg0OCA1OS44OTYgMjAyLjIzMiA1OS43MkMyMDIuNjI0IDU5LjU0NCAyMDMuMDc2IDU5LjQ1NiAyMDMuNTg4IDU5LjQ1NkMyMDQuMDYgNTkuNDU2IDIwNC40NzIgNTkuNTQ4IDIwNC44MjQgNTkuNzMyQzIwNS4xNzYgNTkuOTA4IDIwNS40NDggNjAuMTUyIDIwNS42NCA2MC40NjRDMjA1Ljg0IDYwLjc3NiAyMDUuOTQgNjEuMTI0IDIwNS45NCA2MS41MDhDMjA1Ljk0IDYxLjg5MiAyMDUuODU2IDYyLjI0OCAyMDUuNjg4IDYyLjU3NkMyMDUuNTIgNjIuOTA0IDIwNS4zMDQgNjMuMjEyIDIwNS4wNCA2My41QzIwNC43NzYgNjMuNzg4IDIwNC40OTIgNjQuMDY4IDIwNC4xODggNjQuMzRDMjAzLjg4NCA2NC42MDQgMjAzLjU5MiA2NC44NzYgMjAzLjMxMiA2NS4xNTZDMjAzLjAzMiA2NS40MzYgMjAyLjc5MiA2NS43MjggMjAyLjU5MiA2Ni4wMzJDMjAyLjQgNjYuMzM2IDIwMi4yOCA2Ni42NjQgMjAyLjIzMiA2Ny4wMTZIMjA1LjkyOFY2OEgyMDEuMDU2WiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTIwMy4xMDggMTE1LjE0NEMyMDIuNTg4IDExNS4xNDQgMjAyLjEzNiAxMTUuMDc2IDIwMS43NTIgMTE0Ljk0QzIwMS4zNjggMTE0Ljc5NiAyMDEuMDQgMTE0LjYyNCAyMDAuNzY4IDExNC40MjRMMjAxLjI2IDExMy41MjRDMjAxLjQ4NCAxMTMuNjkyIDIwMS43NDQgMTEzLjg0IDIwMi4wNCAxMTMuOTY4QzIwMi4zMzYgMTE0LjA5NiAyMDIuNjk2IDExNC4xNiAyMDMuMTIgMTE0LjE2QzIwMy42NDggMTE0LjE2IDIwNC4wNjQgMTE0LjAyIDIwNC4zNjggMTEzLjc0QzIwNC42OCAxMTMuNDYgMjA0LjgzNiAxMTMuMTEyIDIwNC44MzYgMTEyLjY5NkMyMDQuODM2IDExMi40IDIwNC43NTYgMTEyLjEzMiAyMDQuNTk2IDExMS44OTJDMjA0LjQzNiAxMTEuNjQ0IDIwNC4xODggMTExLjQ0NCAyMDMuODUyIDExMS4yOTJDMjAzLjUyNCAxMTEuMTQgMjAzLjA5NiAxMTEuMDY0IDIwMi41NjggMTExLjA2NEgyMDEuODk2VjExMC4xODhIMjAyLjUyQzIwMi45OTIgMTEwLjE4OCAyMDMuMzggMTEwLjExNiAyMDMuNjg0IDEwOS45NzJDMjAzLjk5NiAxMDkuODI4IDIwNC4yMjggMTA5LjY0IDIwNC4zOCAxMDkuNDA4QzIwNC41MzIgMTA5LjE3NiAyMDQuNjA4IDEwOC45MzIgMjA0LjYwOCAxMDguNjc2QzIwNC42MDggMTA4LjMgMjA0LjQ2NCAxMDcuOTk2IDIwNC4xNzYgMTA3Ljc2NEMyMDMuODk2IDEwNy41MzIgMjAzLjU0OCAxMDcuNDE2IDIwMy4xMzIgMTA3LjQxNkMyMDIuNzU2IDEwNy40MTYgMjAyLjQyIDEwNy40OCAyMDIuMTI0IDEwNy42MDhDMjAxLjgzNiAxMDcuNzI4IDIwMS42IDEwNy44NjQgMjAxLjQxNiAxMDguMDE2TDIwMC45NzIgMTA3LjE2NEMyMDEuMjEyIDEwNy4wMDQgMjAxLjUyIDEwNi44NDggMjAxLjg5NiAxMDYuNjk2QzIwMi4yNzIgMTA2LjUzNiAyMDIuNzEyIDEwNi40NTYgMjAzLjIxNiAxMDYuNDU2QzIwMy43NDQgMTA2LjQ1NiAyMDQuMTkyIDEwNi41NTIgMjA0LjU2IDEwNi43NDRDMjA0LjkyOCAxMDYuOTM2IDIwNS4yMDggMTA3LjE5MiAyMDUuNCAxMDcuNTEyQzIwNS42IDEwNy44MjQgMjA1LjcgMTA4LjE2NCAyMDUuNyAxMDguNTMyQzIwNS43IDEwOS4wMDQgMjA1LjU4IDEwOS40IDIwNS4zNCAxMDkuNzJDMjA1LjEwOCAxMTAuMDQgMjA0Ljc3NiAxMTAuMzA0IDIwNC4zNDQgMTEwLjUxMkMyMDQuODQ4IDExMC43MDQgMjA1LjI0IDExMC45ODggMjA1LjUyIDExMS4zNjRDMjA1LjgwOCAxMTEuNzMyIDIwNS45NTIgMTEyLjE2NCAyMDUuOTUyIDExMi42NkMyMDUuOTUyIDExMy4wNzYgMjA1Ljg0OCAxMTMuNDc2IDIwNS42NCAxMTMuODZDMjA1LjQ0IDExNC4yMzYgMjA1LjEyOCAxMTQuNTQ0IDIwNC43MDQgMTE0Ljc4NEMyMDQuMjg4IDExNS4wMjQgMjAzLjc1NiAxMTUuMTQ0IDIwMy4xMDggMTE1LjE0NFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=";
2
- export {
3
- M as default
4
- };