@zaptcha/widget 1.0.1 → 1.0.3

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 (2) hide show
  1. package/dist/zaptcha-widget.js +227 -553
  2. package/package.json +1 -1
@@ -29,578 +29,256 @@
29
29
  // Safe for Vite dep optimizer, Webpack, Rollup, plain <script type="module">.
30
30
 
31
31
  /** @type {string} WASM JS glue — full source of zaptcha.js */
32
- const _WASM_GLUE_SRC = `/**
33
- * <zero-captcha> — CAPTCHA Web Component with WASM Proof-of-Work
34
- *
35
- * The worker is bundled inline — only this one file needs to be distributed.
36
- * WASM glue is fetched via fetch() and re-wrapped as a Blob URL so that
37
- * bundlers (Vite, Webpack, etc.) never block the import with a MIME error.
38
- *
39
- * Attributes:
40
- * base-url="https://api.example.com" required — backend base URL
41
- * config-id="AAAA" required — base64url-encoded u32
42
- * wasm-glue="./pkg/zaptcha.js" optional — override WASM glue path
43
- * wasm-bin="./pkg/zaptcha_bg.wasm" optional — override WASM binary path
44
- * worker-url="./worker.js" optional — use an external worker file
45
- *
46
- * CSS custom properties (set on a parent element to theme the widget):
47
- * --zaptcha-bg background color
48
- * --zaptcha-border border color
49
- * --zaptcha-border-hover hover border color
50
- * --zaptcha-border-focus focus ring color
51
- * --zaptcha-text primary text color
52
- * --zaptcha-text-muted muted / branding text color
53
- * --zaptcha-accent spinner / interactive accent color
54
- * --zaptcha-success checkmark fill color
55
- * --zaptcha-shadow box shadow
56
- * --zaptcha-radius border radius
57
- *
58
- * Events dispatched on host element:
59
- * zaptcha-success -> detail: { token: string }
60
- * zaptcha-fail -> detail: { reason: string }
61
- * zaptcha-reset -> detail: {}
62
- * zaptcha-progress -> detail: { index, nonce, total, pct }
63
- *
64
- * Public methods:
65
- * el.reset()
66
- */
67
-
68
- // ── Default WASM paths (relative to this module) ──────────────────────────
32
+ const _WASM_GLUE_SRC = `/* @ts-self-types="./zaptcha.d.ts" */
69
33
 
70
- const _base = import.meta.url;
71
- const _wasmGlue = new URL('./pkg/zaptcha' + '.js', _base).href;
72
- const _wasmBin = new URL('./pkg/zaptcha_bg' + '.wasm', _base).href;
73
-
74
- // ── Inline worker source ──────────────────────────────────────────────────
75
- //
76
- // The worker receives a blob: URL for the WASM glue (already fetched and
77
- // re-wrapped by the main thread) so import() always sees the correct MIME
78
- // type regardless of how the host bundler serves the original file.
79
-
80
- const WORKER_SRC = \`
81
- let wasmModule = null;
82
- let wasmReady = false;
83
- let wasmGlueUrl = null;
84
- let wasmBinUrl = null;
85
-
86
- async function initWasm() {
87
- if (wasmReady) return;
88
- if (!wasmGlueUrl) throw new Error("WASM paths not provided");
89
- const mod = await import(wasmGlueUrl);
90
- if (typeof mod.default === "function") await mod.default(wasmBinUrl);
91
- wasmModule = mod;
92
- wasmReady = true;
34
+ /**
35
+ * @param {string} token
36
+ * @param {number} difficulty
37
+ * @param {number} challenge_count
38
+ * @param {number} salt_length
39
+ * @param {Function} progress_callback
40
+ * @returns {Uint32Array}
41
+ */
42
+ export function solve_challenge(token, difficulty, challenge_count, salt_length, progress_callback) {
43
+ const ptr0 = passStringToWasm0(token, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
44
+ const len0 = WASM_VECTOR_LEN;
45
+ const ret = wasm.solve_challenge(ptr0, len0, difficulty, challenge_count, salt_length, progress_callback);
46
+ var v2 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
47
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
48
+ return v2;
93
49
  }
94
50
 
95
- async function runSolve(baseUrl, configId) {
96
- await initWasm();
97
-
98
- const challengeRes = await fetch(baseUrl + "/" + configId + "/challenge");
99
- if (!challengeRes.ok) throw new Error("Challenge request failed: HTTP " + challengeRes.status);
100
-
101
- const { token, challenge_count, salt_length, difficulty } = await challengeRes.json();
102
-
103
- self.__zaptchaProgressCb = (index, nonce) => {
104
- self.postMessage({ type: "progress", index, nonce, total: challenge_count });
105
- };
51
+ function __wbg_get_imports() {
52
+ const import0 = {
53
+ __proto__: null,
54
+ __wbg___wbindgen_throw_6ddd609b62940d55: function(arg0, arg1) {
55
+ throw new Error(getStringFromWasm0(arg0, arg1));
56
+ },
57
+ __wbg_call_dcc2662fa17a72cf: function() { return handleError(function (arg0, arg1, arg2, arg3) {
58
+ const ret = arg0.call(arg1, arg2, arg3);
59
+ return ret;
60
+ }, arguments); },
61
+ __wbindgen_cast_0000000000000001: function(arg0) {
62
+ // Cast intrinsic for \`F64 -> Externref\`.
63
+ const ret = arg0;
64
+ return ret;
65
+ },
66
+ __wbindgen_init_externref_table: function() {
67
+ const table = wasm.__wbindgen_externrefs;
68
+ const offset = table.grow(4);
69
+ table.set(0, undefined);
70
+ table.set(offset + 0, undefined);
71
+ table.set(offset + 1, null);
72
+ table.set(offset + 2, true);
73
+ table.set(offset + 3, false);
74
+ },
75
+ };
76
+ return {
77
+ __proto__: null,
78
+ "./zaptcha_bg.js": import0,
79
+ };
80
+ }
106
81
 
107
- let solutions;
108
- try {
109
- solutions = wasmModule.solve_challenge(
110
- token, difficulty, challenge_count, salt_length, self.__zaptchaProgressCb,
111
- );
112
- } finally {
113
- delete self.__zaptchaProgressCb;
114
- }
82
+ function addToExternrefTable0(obj) {
83
+ const idx = wasm.__externref_table_alloc();
84
+ wasm.__wbindgen_externrefs.set(idx, obj);
85
+ return idx;
86
+ }
115
87
 
116
- const redeemRes = await fetch(baseUrl + "/" + configId + "/redeem", {
117
- method: "POST",
118
- headers: { "Content-Type": "application/json" },
119
- body: JSON.stringify({ token, solutions: Array.from(solutions) }),
120
- });
121
- if (!redeemRes.ok) throw new Error("Redeem request failed: HTTP " + redeemRes.status);
88
+ function getArrayU32FromWasm0(ptr, len) {
89
+ ptr = ptr >>> 0;
90
+ return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
91
+ }
122
92
 
123
- const { message } = await redeemRes.json();
124
- if (!message) throw new Error("Server did not return a token");
125
- return message;
93
+ function getStringFromWasm0(ptr, len) {
94
+ ptr = ptr >>> 0;
95
+ return decodeText(ptr, len);
126
96
  }
127
97
 
128
- self.onmessage = async function ({ data }) {
129
- if (data.type === "init") {
130
- wasmGlueUrl = data.wasmGlue;
131
- wasmBinUrl = data.wasmBin;
132
- try {
133
- await initWasm();
134
- self.postMessage({ type: "ready" });
135
- } catch (err) {
136
- self.postMessage({ type: "fail", reason: err.message });
98
+ let cachedUint32ArrayMemory0 = null;
99
+ function getUint32ArrayMemory0() {
100
+ if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
101
+ cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
137
102
  }
138
- return;
139
- }
103
+ return cachedUint32ArrayMemory0;
104
+ }
140
105
 
141
- if (data.type === "solve") {
142
- try {
143
- const token = await runSolve(data.baseUrl, data.configId);
144
- self.postMessage({ type: "success", token });
145
- } catch (err) {
146
- self.postMessage({ type: "fail", reason: err.message });
106
+ let cachedUint8ArrayMemory0 = null;
107
+ function getUint8ArrayMemory0() {
108
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
109
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
147
110
  }
148
- }
149
- };
150
- \`;
151
-
152
- // ── Constructable stylesheet (one instance shared across all widgets) ─────
153
-
154
- const _sheet = new CSSStyleSheet();
155
- _sheet.replaceSync(\`
156
- :host {
157
- /*
158
- * display:block + min-height guarantee the element occupies space before
159
- * the custom element upgrade fires and before the first _applyState()
160
- * call. Without this, frameworks like SolidJS / React render the host as
161
- * inline with zero height.
162
- */
163
- display: block;
164
- min-height: 48px;
165
- width: fit-content;
166
-
167
- font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
168
- -webkit-font-smoothing: antialiased;
169
- -moz-osx-font-smoothing: grayscale;
170
-
171
- --zap-bg: var(--zaptcha-bg, #ffffff);
172
- --zap-border: var(--zaptcha-border, #e5e7eb);
173
- --zap-border-hover: var(--zaptcha-border-hover, #d1d5db);
174
- --zap-border-focus: var(--zaptcha-border-focus, #4f46e5);
175
- --zap-text: var(--zaptcha-text, #374151);
176
- --zap-text-muted: var(--zaptcha-text-muted, #9ca3af);
177
- --zap-accent: var(--zaptcha-accent, #4f46e5);
178
- --zap-success: var(--zaptcha-success, #10b981);
179
- --zap-shadow: var(--zaptcha-shadow, 0 2px 6px rgba(0,0,0,0.04));
180
- --zap-radius: var(--zaptcha-radius, 8px);
181
- }
182
-
183
- .widget {
184
- background: var(--zap-bg);
185
- border: 1px solid var(--zap-border);
186
- border-radius: var(--zap-radius);
187
- box-shadow: var(--zap-shadow);
188
- width: 210px;
189
- box-sizing: border-box;
190
- transition: box-shadow 0.2s ease, border-color 0.2s ease;
191
- }
192
- .widget:hover {
193
- box-shadow: 0 4px 12px rgba(0,0,0,0.06);
194
- }
195
-
196
- /* ── Row ── */
197
- .row {
198
- display: flex;
199
- align-items: center;
200
- gap: 10px;
201
- padding: 0 12px;
202
- height: 48px;
203
- cursor: pointer;
204
- user-select: none;
205
- box-sizing: border-box;
206
- border-radius: var(--zap-radius);
207
- outline: none;
208
- }
209
- .row:focus-visible {
210
- box-shadow: 0 0 0 2px var(--zap-bg), 0 0 0 4px var(--zap-border-focus);
211
- }
212
- .row[aria-checked="true"] {
213
- cursor: default;
214
- }
215
-
216
- /* ── Checkbox shell ── */
217
- .box {
218
- width: 22px;
219
- height: 22px;
220
- flex-shrink: 0;
221
- position: relative;
222
- display: flex;
223
- align-items: center;
224
- justify-content: center;
225
- }
226
- .box-border {
227
- position: absolute;
228
- inset: 0;
229
- border: 1.5px solid var(--zap-border);
230
- border-radius: 4px;
231
- background: var(--zap-bg);
232
- transition: border-color 0.2s ease, background-color 0.2s ease;
233
- }
234
- .row:hover:not([aria-checked="true"]) .box-border {
235
- border-color: var(--zap-border-hover);
236
- }
237
-
238
- /* ── State: done ── */
239
- .box.done .box-border {
240
- background: var(--zap-success);
241
- border-color: var(--zap-success);
242
- }
243
- .box-tick { display: none; position: relative; z-index: 1; }
244
- .box.done .box-tick { display: block; animation: zap-pop 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
245
-
246
- @keyframes zap-pop {
247
- 0% { transform: scale(0.5); opacity: 0; }
248
- 100% { transform: scale(1); opacity: 1; }
249
- }
250
-
251
- /* ── State: spinning ── */
252
- .box-spinner { display: none; position: absolute; inset: 0; }
253
- .box.spinning .box-border { border-color: transparent; background: transparent; }
254
- .box.spinning .box-spinner {
255
- display: flex;
256
- align-items: center;
257
- justify-content: center;
258
- }
259
- .box-spinner::after {
260
- content: '';
261
- display: block;
262
- width: 18px;
263
- height: 18px;
264
- border: 2px solid var(--zap-border);
265
- border-top-color: var(--zap-accent);
266
- border-radius: 50%;
267
- animation: zap-spin 0.6s linear infinite;
268
- }
269
- @keyframes zap-spin { to { transform: rotate(360deg); } }
270
-
271
- /* ── Label ── */
272
- .label {
273
- color: var(--zap-text);
274
- font-size: 13.5px;
275
- font-weight: 500;
276
- flex: 1;
277
- white-space: nowrap;
278
- overflow: hidden;
279
- text-overflow: ellipsis;
280
- transition: color 0.2s ease;
281
- }
282
-
283
- /* ── Branding ── */
284
- .branding {
285
- display: flex;
286
- flex-direction: column;
287
- align-items: flex-end;
288
- justify-content: center;
289
- flex-shrink: 0;
290
- gap: 1px;
291
- }
292
- .branding strong {
293
- font-size: 9px;
294
- font-weight: 700;
295
- letter-spacing: 0.05em;
296
- text-transform: uppercase;
297
- color: var(--zap-text-muted);
298
- }
299
- .branding a {
300
- font-size: 9px;
301
- color: var(--zap-text-muted);
302
- text-decoration: none;
303
- transition: color 0.2s;
304
- }
305
- .branding a:hover { color: var(--zap-text); }
306
- \`);
307
-
308
- // ── DOM template (parsed once, cloned per instance) ───────────────────────
309
-
310
- const _template = document.createElement("template");
311
- _template.innerHTML = \`
312
- <div class="widget" part="widget">
313
- <div class="row"
314
- id="row"
315
- tabindex="0"
316
- role="checkbox"
317
- aria-checked="false"
318
- aria-label="I'm not a robot">
319
-
320
- <div class="box" id="box" part="checkbox">
321
- <div class="box-border"></div>
322
- <div class="box-spinner"></div>
323
- <svg class="box-tick" width="12" height="9" viewBox="0 0 12 9" fill="none" aria-hidden="true">
324
- <polyline points="1.5,4.5 4.5,7.5 10.5,1.5"
325
- stroke="white" stroke-width="2"
326
- stroke-linecap="round" stroke-linejoin="round"/>
327
- </svg>
328
- </div>
329
-
330
- <span class="label" id="label" part="label">I'm not a robot</span>
331
-
332
- <div class="branding" part="branding">
333
- <strong>Zaptcha</strong>
334
- <a href="#" tabindex="-1">Privacy</a>
335
- </div>
336
- </div>
337
- </div>
338
- \`;
339
-
340
- // ── Label map ─────────────────────────────────────────────────────────────
341
-
342
- const LABELS = {
343
- idle: "I'm not a robot",
344
- solving: "Verifying\\u2026",
345
- done: "Verified",
346
- error: "I'm not a robot",
347
- };
348
-
349
- // ── Component ─────────────────────────────────────────────────────────────
350
-
351
- class ZeroCaptcha extends HTMLElement {
352
-
353
- static get observedAttributes() { return []; }
354
-
355
- constructor() {
356
- super();
357
-
358
- this._shadow = this.attachShadow({ mode: "open" });
359
-
360
- // Shared stylesheet — no duplication across instances
361
- this._shadow.adoptedStyleSheets = [_sheet];
362
-
363
- // Build DOM once from template
364
- this._shadow.appendChild(_template.content.cloneNode(true));
365
-
366
- // Cache mutable nodes
367
- this._rowEl = this._shadow.getElementById("row");
368
- this._boxEl = this._shadow.getElementById("box");
369
- this._labelEl = this._shadow.getElementById("label");
370
-
371
- this._worker = null;
372
- this._blobUrl = null; // worker blob URL
373
- this._glueBlobUrl = null; // WASM glue re-wrapped blob URL
374
-
375
- /** @type {"idle"|"solving"|"done"|"error"} */
376
- this._state = "idle";
377
- this._progress = { done: 0, total: 1 };
378
-
379
- this._bindEvents();
380
- }
381
-
382
- connectedCallback() { this._startWorker(); }
383
- disconnectedCallback() { this._destroyWorker(); }
384
-
385
- // ── Public API ───────────────────────────────────────────────────────────
386
-
387
- reset() {
388
- this._destroyWorker();
389
- this._state = "idle";
390
- this._progress = { done: 0, total: 1 };
391
- this._applyState();
392
- this._startWorker();
393
- this.dispatchEvent(new CustomEvent("zaptcha-reset", { bubbles: true, detail: {} }));
394
- }
395
-
396
- // ── State → DOM (no innerHTML, only classList / attributes) ─────────────
397
-
398
- _applyState() {
399
- const { _rowEl: row, _boxEl: box, _labelEl: label } = this;
400
- const s = this._state;
401
- const isDone = s === "done";
402
- const isSpin = s === "solving";
403
-
404
- row.setAttribute("aria-checked", String(isDone));
405
- row.setAttribute("aria-label", LABELS[s] ?? LABELS.idle);
406
- row.tabIndex = isDone ? -1 : 0;
407
-
408
- box.classList.toggle("spinning", isSpin);
409
- box.classList.toggle("done", isDone);
410
-
411
- label.textContent = LABELS[s] ?? LABELS.idle;
412
- }
413
-
414
- // ── Worker lifecycle ─────────────────────────────────────────────────────
111
+ return cachedUint8ArrayMemory0;
112
+ }
415
113
 
416
- async _startWorker() {
114
+ function handleError(f, args) {
417
115
  try {
418
- const externalUrl = this.getAttribute("worker-url");
419
-
420
- if (externalUrl) {
421
- this._worker = new Worker(externalUrl, { type: "module" });
422
- } else {
423
- const blob = new Blob([WORKER_SRC], { type: "text/javascript" });
424
- this._blobUrl = URL.createObjectURL(blob);
425
- this._worker = new Worker(this._blobUrl, { type: "module" });
426
- }
427
-
428
- this._worker.onmessage = (e) => this._onWorkerMsg(e.data);
429
- this._worker.onerror = (e) => this._onFail(\`Worker error: \${e.message}\`);
430
-
431
- const rawGlue = this.getAttribute("wasm-glue") ?? _wasmGlue;
432
- const wasmBin = this.getAttribute("wasm-bin") ?? _wasmBin;
433
-
434
- // ── MIME fix ────────────────────────────────────────────────────────
435
- //
436
- // Bundlers (Vite, etc.) may serve .js files with an empty or wrong
437
- // MIME type when accessed via import() inside a Worker. fetch() has
438
- // no such restriction, so we:
439
- // 1. Fetch the glue script as plain text (MIME irrelevant)
440
- // 2. Re-wrap it in a Blob with an explicit application/javascript type
441
- // 3. Pass the blob: URL to the worker — browsers always accept these
442
- //
443
- const glueText = await fetch(rawGlue).then((r) => {
444
- if (!r.ok) throw new Error(\`Failed to fetch WASM glue: HTTP \${r.status}\`);
445
- return r.text();
446
- });
447
- const glueBlob = new Blob([glueText], { type: "application/javascript" });
448
- this._glueBlobUrl = URL.createObjectURL(glueBlob);
449
-
450
- this._worker.postMessage({ type: "init", wasmGlue: this._glueBlobUrl, wasmBin });
451
-
452
- } catch (err) {
453
- this._worker = null;
454
- this._onFail(\`Worker init failed: \${err.message}\`);
116
+ return f.apply(this, args);
117
+ } catch (e) {
118
+ const idx = addToExternrefTable0(e);
119
+ wasm.__wbindgen_exn_store(idx);
455
120
  }
456
- }
457
-
458
- _destroyWorker() {
459
- this._worker?.terminate();
460
- this._worker = null;
121
+ }
461
122
 
462
- if (this._blobUrl) {
463
- URL.revokeObjectURL(this._blobUrl);
464
- this._blobUrl = null;
123
+ function passStringToWasm0(arg, malloc, realloc) {
124
+ if (realloc === undefined) {
125
+ const buf = cachedTextEncoder.encode(arg);
126
+ const ptr = malloc(buf.length, 1) >>> 0;
127
+ getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
128
+ WASM_VECTOR_LEN = buf.length;
129
+ return ptr;
465
130
  }
466
- if (this._glueBlobUrl) {
467
- URL.revokeObjectURL(this._glueBlobUrl);
468
- this._glueBlobUrl = null;
469
- }
470
- }
471
131
 
472
- // ── Worker message handler ───────────────────────────────────────────────
132
+ let len = arg.length;
133
+ let ptr = malloc(len, 1) >>> 0;
473
134
 
474
- _onWorkerMsg(msg) {
475
- switch (msg.type) {
476
-
477
- case "ready":
478
- // WASM initialised — nothing to show yet, waiting for user click
479
- break;
135
+ const mem = getUint8ArrayMemory0();
480
136
 
481
- case "progress":
482
- this._progress.done = (msg.index ?? 0) + 1;
483
- this._progress.total = msg.total ?? 1;
484
- this.dispatchEvent(new CustomEvent("zaptcha-progress", {
485
- bubbles: true,
486
- composed: true,
487
- detail: {
488
- index: msg.index,
489
- nonce: msg.nonce,
490
- total: msg.total,
491
- pct: Math.round(((msg.index ?? 0) + 1) / (msg.total ?? 1) * 100),
492
- },
493
- }));
494
- break;
137
+ let offset = 0;
495
138
 
496
- case "success":
497
- this._state = "done";
498
- this._applyState();
499
- this.dispatchEvent(new CustomEvent("zaptcha-success", {
500
- bubbles: true,
501
- composed: true,
502
- detail: { token: msg.token },
503
- }));
504
- break;
505
-
506
- case "fail":
507
- this._onFail(msg.reason || "Unknown error");
508
- break;
139
+ for (; offset < len; offset++) {
140
+ const code = arg.charCodeAt(offset);
141
+ if (code > 0x7F) break;
142
+ mem[ptr + offset] = code;
143
+ }
144
+ if (offset !== len) {
145
+ if (offset !== 0) {
146
+ arg = arg.slice(offset);
147
+ }
148
+ ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
149
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
150
+ const ret = cachedTextEncoder.encodeInto(arg, view);
151
+
152
+ offset += ret.written;
153
+ ptr = realloc(ptr, len, offset, 1) >>> 0;
509
154
  }
510
- }
511
155
 
512
- // ── Event binding (called once in constructor) ───────────────────────────
156
+ WASM_VECTOR_LEN = offset;
157
+ return ptr;
158
+ }
513
159
 
514
- _bindEvents() {
515
- this._rowEl.addEventListener("click", () => this._onRowClick());
516
- this._rowEl.addEventListener("keydown", (e) => {
517
- if (e.key === " " || e.key === "Enter") {
518
- e.preventDefault();
519
- this._onRowClick();
520
- }
521
- });
522
- }
160
+ let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
161
+ cachedTextDecoder.decode();
162
+ const MAX_SAFARI_DECODE_BYTES = 2146435072;
163
+ let numBytesDecoded = 0;
164
+ function decodeText(ptr, len) {
165
+ numBytesDecoded += len;
166
+ if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
167
+ cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
168
+ cachedTextDecoder.decode();
169
+ numBytesDecoded = len;
170
+ }
171
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
172
+ }
523
173
 
524
- _onRowClick() {
525
- if (this._state !== "idle") return;
526
- this._startSolve();
527
- }
174
+ const cachedTextEncoder = new TextEncoder();
175
+
176
+ if (!('encodeInto' in cachedTextEncoder)) {
177
+ cachedTextEncoder.encodeInto = function (arg, view) {
178
+ const buf = cachedTextEncoder.encode(arg);
179
+ view.set(buf);
180
+ return {
181
+ read: arg.length,
182
+ written: buf.length
183
+ };
184
+ };
185
+ }
528
186
 
529
- // ── Solve flow ───────────────────────────────────────────────────────────
187
+ let WASM_VECTOR_LEN = 0;
530
188
 
531
- _startSolve() {
532
- this._state = "solving";
533
- this._progress = { done: 0, total: 1 };
534
- this._applyState();
189
+ let wasmModule, wasm;
190
+ function __wbg_finalize_init(instance, module) {
191
+ wasm = instance.exports;
192
+ wasmModule = module;
193
+ cachedUint32ArrayMemory0 = null;
194
+ cachedUint8ArrayMemory0 = null;
195
+ wasm.__wbindgen_start();
196
+ return wasm;
197
+ }
535
198
 
536
- if (!this._worker) {
537
- this._onFail("Worker unavailable");
538
- return;
199
+ async function __wbg_load(module, imports) {
200
+ if (typeof Response === 'function' && module instanceof Response) {
201
+ if (typeof WebAssembly.instantiateStreaming === 'function') {
202
+ try {
203
+ return await WebAssembly.instantiateStreaming(module, imports);
204
+ } catch (e) {
205
+ const validResponse = module.ok && expectedResponseType(module.type);
206
+
207
+ if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {
208
+ console.warn("\`WebAssembly.instantiateStreaming\` failed because your server does not serve Wasm with \`application/wasm\` MIME type. Falling back to \`WebAssembly.instantiate\` which is slower. Original error:\\n", e);
209
+
210
+ } else { throw e; }
211
+ }
212
+ }
213
+
214
+ const bytes = await module.arrayBuffer();
215
+ return await WebAssembly.instantiate(bytes, imports);
216
+ } else {
217
+ const instance = await WebAssembly.instantiate(module, imports);
218
+
219
+ if (instance instanceof WebAssembly.Instance) {
220
+ return { instance, module };
221
+ } else {
222
+ return instance;
223
+ }
539
224
  }
540
225
 
541
- const baseUrl = this.getAttribute("base-url") ?? "";
542
- const configId = this.getAttribute("config-id") ?? "";
543
-
544
- if (!baseUrl || !configId) {
545
- this._onFail("Attributes base-url and config-id are required");
546
- return;
226
+ function expectedResponseType(type) {
227
+ switch (type) {
228
+ case 'basic': case 'cors': case 'default': return true;
229
+ }
230
+ return false;
547
231
  }
232
+ }
548
233
 
549
- this._worker.postMessage({ type: "solve", baseUrl, configId });
550
- }
234
+ function initSync(module) {
235
+ if (wasm !== undefined) return wasm;
551
236
 
552
- _onFail(reason) {
553
- this._state = "error";
554
- this._applyState();
555
237
 
556
- this.dispatchEvent(new CustomEvent("zaptcha-fail", {
557
- bubbles: true,
558
- composed: true,
559
- detail: { reason },
560
- }));
238
+ if (module !== undefined) {
239
+ if (Object.getPrototypeOf(module) === Object.prototype) {
240
+ ({module} = module)
241
+ } else {
242
+ console.warn('using deprecated parameters for \`initSync()\`; pass a single object instead')
243
+ }
244
+ }
561
245
 
562
- setTimeout(() => this.reset(), 3000);
563
- }
246
+ const imports = __wbg_get_imports();
247
+ if (!(module instanceof WebAssembly.Module)) {
248
+ module = new WebAssembly.Module(module);
249
+ }
250
+ const instance = new WebAssembly.Instance(module, imports);
251
+ return __wbg_finalize_init(instance, module);
564
252
  }
565
253
 
566
- customElements.define("zero-captcha", ZeroCaptcha);
254
+ async function __wbg_init(module_or_path) {
255
+ if (wasm !== undefined) return wasm;
567
256
 
568
- export default ZeroCaptcha;
569
- export { ZeroCaptcha };
570
257
 
571
- // ── Standalone worker factory (for headless / custom UI usage) ────────────
258
+ if (module_or_path !== undefined) {
259
+ if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
260
+ ({module_or_path} = module_or_path)
261
+ } else {
262
+ console.warn('using deprecated parameters for the initialization function; pass a single object instead')
263
+ }
264
+ }
572
265
 
573
- export async function createWorker({ wasmGlue = _wasmGlue, wasmBin = _wasmBin } = {}) {
574
- const blob = new Blob([WORKER_SRC], { type: "text/javascript" });
575
- const blobUrl = URL.createObjectURL(blob);
576
- const worker = new Worker(blobUrl, { type: "module" });
266
+ if (module_or_path === undefined) {
267
+ module_or_path = new URL('zaptcha_bg.wasm', import.meta.url);
268
+ }
269
+ const imports = __wbg_get_imports();
577
270
 
578
- // Revoke worker blob URL once the worker signals it is ready
579
- worker.addEventListener("message", function onReady(e) {
580
- if (e.data?.type === "ready" || e.data?.type === "fail") {
581
- URL.revokeObjectURL(blobUrl);
582
- worker.removeEventListener("message", onReady);
271
+ if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {
272
+ module_or_path = fetch(module_or_path);
583
273
  }
584
- });
585
274
 
586
- // Re-wrap glue via fetch Blob to avoid MIME issues in all environments
587
- const glueText = await fetch(wasmGlue).then((r) => {
588
- if (!r.ok) throw new Error(\`Failed to fetch WASM glue: HTTP \${r.status}\`);
589
- return r.text();
590
- });
591
- const glueBlob = new Blob([glueText], { type: "application/javascript" });
592
- const glueBlobUrl = URL.createObjectURL(glueBlob);
275
+ const { instance, module } = await __wbg_load(await module_or_path, imports);
593
276
 
594
- worker.addEventListener("message", function onGlueCleanup(e) {
595
- if (e.data?.type === "ready" || e.data?.type === "fail") {
596
- URL.revokeObjectURL(glueBlobUrl);
597
- worker.removeEventListener("message", onGlueCleanup);
598
- }
599
- });
277
+ return __wbg_finalize_init(instance, module);
278
+ }
600
279
 
601
- worker.postMessage({ type: "init", wasmGlue: glueBlobUrl, wasmBin });
602
- return worker;
603
- }`;
280
+ export { initSync, __wbg_init as default };
281
+ `;
604
282
 
605
283
  /** @type {string} WASM binary — base64-encoded zaptcha_bg.wasm */
606
284
  const _WASM_BIN_B64 = "AGFzbQEAAAAB9wEhYAN/f38Bf2ACf38Bf2AEf39/fwBgBX9/f39/AGACf38AYAN/f38AYAF/AGAEf39/fwF/YAV/f39/fwF/YAZ/f39/f38AYAAAYAV/f39+fwBgBX9/fn9/AGAFf398f38AYAV/f31/fwBgBG9vb28Bb2ABfAFvYAl/f39+f39/f38AYAF/AX9gCH9/f35/f39/AX9gAn9+AGAHf39/f39/fwF/YAJ+fwF/YAABf2AGf39/fn9/AGAGf39/fH9/AGAGf39/fX9/AGAGf39/f39vAn9/YAZ/f39/f38Bf2AEf35/fwBgBH98f38AYAR/fX9/AGABfAF/As4BBA8uL3phcHRjaGFfYmcuanMbX193YmdfY2FsbF9kY2MyNjYyZmExN2E3MmNmAA8PLi96YXB0Y2hhX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfNmRkZDYwOWI2Mjk0MGQ1NQAEDy4vemFwdGNoYV9iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlAAoPLi96YXB0Y2hhX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAxABADVVQRBAsSAAsTAAYHBBQABwgVABYBAQEEAQQXAggBAQEJAwEBCQUGAwIFCQYDAwMCCRgZGgMFAgEBAQEFCAcGGxwIDAMNDgIHBAAFASABAQYKAAEEBAoECQJwATIybwCACAUDAQARBg8CfwFBgIDAAAt/AUGACAsHswEJBm1lbW9yeQIAD3NvbHZlX2NoYWxsZW5nZQBBFF9fd2JpbmRnZW5fZXhuX3N0b3JlAFEXX19leHRlcm5yZWZfdGFibGVfYWxsb2MAHBVfX3diaW5kZ2VuX2V4dGVybnJlZnMBARFfX3diaW5kZ2VuX21hbGxvYwA5El9fd2JpbmRnZW5fcmVhbGxvYwA/D19fd2JpbmRnZW5fZnJlZQArEF9fd2JpbmRnZW5fc3RhcnQAAgk3AQBBAQsxISAaT1AWJDwDUE1UMEMjIjIzRDI2RTI0RkhFRTVHOC5DLEIxS0kpVVYoJTs7EDpTHwwBBQrs/QJU0EUDK3sHfwN+IAOn/REgAyAEQQFzrXwiO6f9HAFCAEICIAQbIAN8Ijyn/RwCQgBCAyAEGyADfCI9p/0cAyEtIANCIIin/REgO0IgiKf9HAEgPEIgiKf9HAIgPUIgiKf9HAMhLiAFIAZyIQQgAUEGdCI1QUBqITYgAv0AAgD9DAAAAAAAAAAAAAAAAAAAAAD9DQABAgMAAQIDAAECAwABAgMhGyAC/QACBP0MAAAAAAAAAAAAAAAAAAAAAP0NAAECAwABAgMAAQIDAAECAyErIAL9AAII/QwAAAAAAAAAAAAAAAAAAAAA/Q0AAQIDAAECAwABAgMAAQIDISIgAv0AAgz9DAAAAAAAAAAAAAAAAAAAAAD9DQABAgMAAQIDAAECAwABAgMhIyAC/QACECIZIBn9DQABAgMAAQIDAAECAwABAgMhEiAZIBn9DQQFBgcEBQYHBAUGBwQFBgchHSAZIBn9DQgJCgsICQoLCAkKCwgJCgshJCAZIBn9DQwNDg8MDQ4PDA0ODwwNDg8hJSAAKAIMITcgACgCCCE4IAAoAgQhOSAAKAIAITpBACECA0AgGyACIDpqIgD9AAAAIikgAiA5aiIB/QAAACIe/Q0AAQIDEBESEwQFBgcUFRYXIhsgAiA4aiIG/QAAACIgIAIgN2oiNP0AAAAiKv0NAAECAxAREhMEBQYHFBUWFyIT/Q0AAQIDBAUGBxAREhMUFRYXIhn9rgEgEv2uASIhIBsgE/0NCAkKCwwNDg8YGRobHB0eHyIb/a4BICEgLf1RIhNBEP2rASATQRD9rQH9UCIT/Qxn5glqZ+YJamfmCWpn5glq/a4BIiEgEv1RIhJBFP2rASASQQz9rQH9UCIn/a4BIgkgAEEgav0AAAAiCiABQSBq/QAAACIM/Q0AAQIDEBESEwQFBgcUFRYXIgsgBkEgav0AAAAiDyA0QSBq/QAAACIN/Q0AAQIDEBESEwQFBgcUFRYXIhT9DQABAgMEBQYHEBESExQVFhciEv2uASArICkgHv0NCAkKCxgZGhsMDQ4PHB0eHyIpICAgKv0NCAkKCxgZGhsMDQ4PHB0eHyIe/Q0AAQIDBAUGBxAREhMUFRYXIiv9rgEgHf2uASIgICkgHv0NCAkKCwwNDg8YGRobHB0eHyIp/a4BICAgLv1RIh5BEP2rASAeQRD9rQH9UCIe/QyFrme7ha5nu4WuZ7uFrme7/a4BIiAgHf1RIh1BFP2rASAdQQz9rQH9UCId/a4BIiogHv1RIh5BGP2rASAeQQj9rQH9UCIaICD9rgEiECAd/VEiHUEZ/asBIB1BB/2tAf1QIiD9rgEiHiALIBT9DQgJCgsMDQ4PGBkaGxwdHh8iHf2uASAeICMgAEEQav0AAAAiCyABQRBq/QAAACIU/Q0ICQoLGBkaGwwNDg8cHR4fIh4gBkEQav0AAAAiHCA0QRBq/QAAACIW/Q0ICQoLGBkaGwwNDg8cHR4fIg79DQABAgMEBQYHEBESExQVFhciI/2uASAl/a4BIhUgHiAO/Q0ICQoLDA0ODxgZGhscHR4fIh79rgEgFSAHQQAgAiA2RhsgBHJB/wFx/RH9USIOQRD9qwEgDkEQ/a0B/VAiDv0MOvVPpTr1T6U69U+lOvVPpf2uASIVICX9USIlQRT9qwEgJUEM/a0B/VAiEf2uASIXIA79USIlQRj9qwEgJUEI/a0B/VAiDv1RIiVBEP2rASAlQRD9rQH9UCIYICIgCyAU/Q0AAQIDEBESEwQFBgcUFRYXIiIgHCAW/Q0AAQIDEBESEwQFBgcUFRYXIgv9DQABAgMEBQYHEBESExQVFhciJf2uASAk/a4BIhQgIiAL/Q0ICQoLDA0ODxgZGhscHR4fIiL9rgEgFP0MQAAAAEAAAABAAAAAQAAAAP1RIgtBEP2rASALQRD9rQH9UCIL/Qxy8248cvNuPHLzbjxy8248/a4BIhQgJP1RIiRBFP2rASAkQQz9rQH9UCIc/a4BIhYgC/1RIiRBGP2rASAkQQj9rQH9UCILIBT9rgEiFP2uASIfICD9USIkQRT9qwEgJEEM/a0B/VAiKP2uASImICv9rgEgFyAAQTBq/QAAACIXIAFBMGr9AAAAIi/9DQgJCgsYGRobDA0ODxwdHh8iICAGQTBq/QAAACIwIDRBMGr9AAAAIjH9DQgJCgsYGRobDA0ODxwdHh8iLP0NAAECAwQFBgcQERITFBUWFyIk/a4BIAkgE/1RIhNBGP2rASATQQj9rQH9UCIJICH9rgEiMiAn/VEiE0EZ/asBIBNBB/2tAf1QIhP9rgEiISAgICz9DQgJCgsMDQ4PGBkaGxwdHh8iIP2uASAhIAv9USIhQRD9qwEgIUEQ/a0B/VAiISAQ/a4BIicgE/1RIhNBFP2rASATQQz9rQH9UCIT/a4BIgsgIf1RIiFBGP2rASAhQQj9rQH9UCIQICf9rgEiLCAT/VEiE0EZ/asBIBNBB/2tAf1QIjP9rgEiEyAj/a4BIBMgKiAKIAz9DQgJCgsYGRobDA0ODxwdHh8iEyAPIA39DQgJCgsYGRobDA0ODxwdHh8iIf0NAAECAwQFBgcQERITFBUWFyIq/a4BIBQgHP1RIidBGf2rASAnQQf9rQH9UCIn/a4BIgogEyAh/Q0ICQoLDA0ODxgZGhscHR4fIhP9rgEgCiAJ/VEiIUEQ/asBICFBEP2tAf1QIiEgDiAV/a4BIgn9rgEiCiAn/VEiJ0EU/asBICdBDP2tAf1QIgz9rgEiDyAh/VEiIUEY/asBICFBCP2tAf1QIg39USIhQRD9qwEgIUEQ/a0B/VAiFCAWIBcgL/0NAAECAxAREhMEBQYHFBUWFyInIDAgMf0NAAECAxAREhMEBQYHFBUWFyIc/Q0AAQIDBAUGBxAREhMUFRYXIiH9rgEgCSAR/VEiCUEZ/asBIAlBB/2tAf1QIgn9rgEiFiAnIBz9DQgJCgsMDQ4PGBkaGxwdHh8iJ/2uASAWIBr9USIaQRD9qwEgGkEQ/a0B/VAiGiAy/a4BIhwgCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIhYgGv1RIhpBGP2rASAaQQj9rQH9UCIaIBz9rgEiHP2uASIOIDP9USIVQRT9qwEgFUEM/a0B/VAiFf2uASIRIBv9rgEgDyAp/a4BICYgGP1RIg9BGP2rASAPQQj9rQH9UCIPIB/9rgEiFyAo/VEiGEEZ/asBIBhBB/2tAf1QIhj9rgEiHyAq/a4BIB8gGv1RIhpBEP2rASAaQRD9rQH9UCIaICz9rgEiHyAY/VEiGEEU/asBIBhBDP2tAf1QIhj9rgEiKCAa/VEiGkEY/asBIBpBCP2tAf1QIhogH/2uASIfIBj9USIYQRn9qwEgGEEH/a0B/VAiGP2uASImIBP9rgEgJiALICX9rgEgHCAJ/VEiCUEZ/asBIAlBB/2tAf1QIgn9rgEiCyAn/a4BIAsgD/1RIgtBEP2rASALQRD9rQH9UCILIA0gCv2uASIK/a4BIg8gCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIg0gC/1RIgtBGP2rASALQQj9rQH9UCIL/VEiHEEQ/asBIBxBEP2tAf1QIhwgFiAe/a4BIAogDP1RIgpBGf2rASAKQQf9rQH9UCIK/a4BIgwgGf2uASAMIBD9USIMQRD9qwEgDEEQ/a0B/VAiDCAX/a4BIhAgCv1RIgpBFP2rASAKQQz9rQH9UCIK/a4BIhYgDP1RIgxBGP2rASAMQQj9rQH9UCIMIBD9rgEiEP2uASIXIBj9USIYQRT9qwEgGEEM/a0B/VAiGP2uASImICn9rgEgDSAg/a4BIBEgFP1RIg1BGP2rASANQQj9rQH9UCINIA79rgEiFCAV/VEiDkEZ/asBIA5BB/2tAf1QIg79rgEiFSAS/a4BIBUgDP1RIgxBEP2rASAMQRD9rQH9UCIMIB/9rgEiFSAO/VEiDkEU/asBIA5BDP2tAf1QIg79rgEiESAM/VEiDEEY/asBIAxBCP2tAf1QIgwgFf2uASIVIA79USIOQRn9qwEgDkEH/a0B/VAiDv2uASIfICX9rgEgHyAoICH9rgEgECAK/VEiCkEZ/asBIApBB/2tAf1QIgr9rgEiECAi/a4BIBAgDf1RIg1BEP2rASANQRD9rQH9UCINIAsgD/2uASIL/a4BIg8gCv1RIgpBFP2rASAKQQz9rQH9UCIK/a4BIhAgDf1RIg1BGP2rASANQQj9rQH9UCIN/VEiH0EQ/asBIB9BEP2tAf1QIh8gFiAd/a4BIAsgCf1RIglBGf2rASAJQQf9rQH9UCIJ/a4BIgsgJP2uASALIBr9USILQRD9qwEgC0EQ/a0B/VAiCyAU/a4BIhQgCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIhogC/1RIgtBGP2rASALQQj9rQH9UCILIBT9rgEiFP2uASIWIA79USIOQRT9qwEgDkEM/a0B/VAiDv2uASIoICP9rgEgECAq/a4BICYgHP1RIhBBGP2rASAQQQj9rQH9UCIQIBf9rgEiHCAY/VEiF0EZ/asBIBdBB/2tAf1QIhf9rgEiGCAh/a4BIBggC/1RIgtBEP2rASALQRD9rQH9UCILIBX9rgEiFSAX/VEiF0EU/asBIBdBDP2tAf1QIhf9rgEiGCAL/VEiC0EY/asBIAtBCP2tAf1QIgsgFf2uASIVIBf9USIXQRn9qwEgF0EH/a0B/VAiF/2uASImICL9rgEgJiARIB79rgEgFCAJ/VEiCUEZ/asBIAlBB/2tAf1QIgn9rgEiFCAk/a4BIBQgEP1RIhRBEP2rASAUQRD9rQH9UCIUIA0gD/2uASIP/a4BIg0gCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIhAgFP1RIhRBGP2rASAUQQj9rQH9UCIU/VEiEUEQ/asBIBFBEP2tAf1QIhEgGiAn/a4BIA8gCv1RIgpBGf2rASAKQQf9rQH9UCIK/a4BIg8gK/2uASAPIAz9USIMQRD9qwEgDEEQ/a0B/VAiDCAc/a4BIg8gCv1RIgpBFP2rASAKQQz9rQH9UCIK/a4BIhogDP1RIgxBGP2rASAMQQj9rQH9UCIMIA/9rgEiD/2uASIcIBf9USIXQRT9qwEgF0EM/a0B/VAiF/2uASImICr9rgEgECAS/a4BICggH/1RIhBBGP2rASAQQQj9rQH9UCIQIBb9rgEiFiAO/VEiDkEZ/asBIA5BB/2tAf1QIg79rgEiHyAb/a4BIB8gDP1RIgxBEP2rASAMQRD9rQH9UCIMIBX9rgEiFSAO/VEiDkEU/asBIA5BDP2tAf1QIg79rgEiHyAM/VEiDEEY/asBIAxBCP2tAf1QIgwgFf2uASIVIA79USIOQRn9qwEgDkEH/a0B/VAiDv2uASIoIB79rgEgKCAYIB39rgEgDyAK/VEiCkEZ/asBIApBB/2tAf1QIgr9rgEiDyAZ/a4BIA8gEP1RIg9BEP2rASAPQRD9rQH9UCIPIBQgDf2uASIN/a4BIhQgCv1RIgpBFP2rASAKQQz9rQH9UCIK/a4BIhAgD/1RIg9BGP2rASAPQQj9rQH9UCIP/VEiGEEQ/asBIBhBEP2tAf1QIhggGiAT/a4BIA0gCf1RIglBGf2rASAJQQf9rQH9UCIJ/a4BIg0gIP2uASANIAv9USILQRD9qwEgC0EQ/a0B/VAiCyAW/a4BIg0gCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIhogC/1RIgtBGP2rASALQQj9rQH9UCILIA39rgEiDf2uASIWIA79USIOQRT9qwEgDkEM/a0B/VAiDv2uASIoICX9rgEgECAh/a4BICYgEf1RIhBBGP2rASAQQQj9rQH9UCIQIBz9rgEiHCAX/VEiEUEZ/asBIBFBB/2tAf1QIhH9rgEiFyAd/a4BIBcgC/1RIgtBEP2rASALQRD9rQH9UCILIBX9rgEiFSAR/VEiEUEU/asBIBFBDP2tAf1QIhH9rgEiFyAL/VEiC0EY/asBIAtBCP2tAf1QIgsgFf2uASIVIBH9USIRQRn9qwEgEUEH/a0B/VAiEf2uASImIBn9rgEgJiAfICf9rgEgDSAJ/VEiCUEZ/asBIAlBB/2tAf1QIgn9rgEiDSAg/a4BIA0gEP1RIg1BEP2rASANQRD9rQH9UCINIA8gFP2uASIP/a4BIhQgCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIhAgDf1RIg1BGP2rASANQQj9rQH9UCIN/VEiH0EQ/asBIB9BEP2tAf1QIh8gGiAk/a4BIA8gCv1RIgpBGf2rASAKQQf9rQH9UCIK/a4BIg8gKf2uASAPIAz9USIMQRD9qwEgDEEQ/a0B/VAiDCAc/a4BIg8gCv1RIgpBFP2rASAKQQz9rQH9UCIK/a4BIhogDP1RIgxBGP2rASAMQQj9rQH9UCIMIA/9rgEiD/2uASIcIBH9USIRQRT9qwEgEUEM/a0B/VAiEf2uASImICH9rgEgECAb/a4BICggGP1RIhBBGP2rASAQQQj9rQH9UCIQIBb9rgEiFiAO/VEiDkEZ/asBIA5BB/2tAf1QIg79rgEiGCAj/a4BIBggDP1RIgxBEP2rASAMQRD9rQH9UCIMIBX9rgEiFSAO/VEiDkEU/asBIA5BDP2tAf1QIg79rgEiGCAM/VEiDEEY/asBIAxBCP2tAf1QIgwgFf2uASIVIA79USIOQRn9qwEgDkEH/a0B/VAiDv2uASIoICf9rgEgKCAXIBP9rgEgDyAK/VEiCkEZ/asBIApBB/2tAf1QIgr9rgEiDyAr/a4BIA8gEP1RIg9BEP2rASAPQRD9rQH9UCIPIA0gFP2uASIN/a4BIhQgCv1RIgpBFP2rASAKQQz9rQH9UCIK/a4BIhAgD/1RIg9BGP2rASAPQQj9rQH9UCIP/VEiF0EQ/asBIBdBEP2tAf1QIhcgGiAi/a4BIA0gCf1RIglBGf2rASAJQQf9rQH9UCIJ/a4BIg0gEv2uASANIAv9USILQRD9qwEgC0EQ/a0B/VAiCyAW/a4BIg0gCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIhogC/1RIgtBGP2rASALQQj9rQH9UCILIA39rgEiDf2uASIWIA79USIOQRT9qwEgDkEM/a0B/VAiDv2uASIoIB79rgEgECAd/a4BICYgH/1RIhBBGP2rASAQQQj9rQH9UCIQIBz9rgEiHCAR/VEiEUEZ/asBIBFBB/2tAf1QIhH9rgEiHyAT/a4BIB8gC/1RIgtBEP2rASALQRD9rQH9UCILIBX9rgEiFSAR/VEiEUEU/asBIBFBDP2tAf1QIhH9rgEiHyAL/VEiC0EY/asBIAtBCP2tAf1QIgsgFf2uASIVIBH9USIRQRn9qwEgEUEH/a0B/VAiEf2uASImICv9rgEgJiAYICT9rgEgDSAJ/VEiCUEZ/asBIAlBB/2tAf1QIgn9rgEiDSAS/a4BIA0gEP1RIg1BEP2rASANQRD9rQH9UCINIA8gFP2uASIP/a4BIhQgCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIhAgDf1RIg1BGP2rASANQQj9rQH9UCIN/VEiGEEQ/asBIBhBEP2tAf1QIhggGiAg/a4BIA8gCv1RIgpBGf2rASAKQQf9rQH9UCIK/a4BIg8gKv2uASAPIAz9USIMQRD9qwEgDEEQ/a0B/VAiDCAc/a4BIg8gCv1RIgpBFP2rASAKQQz9rQH9UCIK/a4BIhogDP1RIgxBGP2rASAMQQj9rQH9UCIMIA/9rgEiD/2uASIcIBH9USIRQRT9qwEgEUEM/a0B/VAiEf2uASImIB39rgEgECAj/a4BICggF/1RIhBBGP2rASAQQQj9rQH9UCIQIBb9rgEiFiAO/VEiDkEZ/asBIA5BB/2tAf1QIg79rgEiFyAl/a4BIBcgDP1RIgxBEP2rASAMQRD9rQH9UCIMIBX9rgEiFSAO/VEiDkEU/asBIA5BDP2tAf1QIg79rgEiFyAM/VEiDEEY/asBIAxBCP2tAf1QIgwgFf2uASIVIA79USIOQRn9qwEgDkEH/a0B/VAiDv2uASIoICT9rgEgKCAfICL9rgEgDyAK/VEiCkEZ/asBIApBB/2tAf1QIgr9rgEiDyAp/a4BIA8gEP1RIg9BEP2rASAPQRD9rQH9UCIPIA0gFP2uASIN/a4BIhQgCv1RIgpBFP2rASAKQQz9rQH9UCIK/a4BIhAgD/1RIg9BGP2rASAPQQj9rQH9UCIP/VEiH0EQ/asBIB9BEP2tAf1QIh8gGiAZ/a4BIA0gCf1RIglBGf2rASAJQQf9rQH9UCIJ/a4BIg0gG/2uASANIAv9USILQRD9qwEgC0EQ/a0B/VAiCyAW/a4BIg0gCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIhogC/1RIgtBGP2rASALQQj9rQH9UCILIA39rgEiDf2uASIWIA79USIOQRT9qwEgDkEM/a0B/VAiDv2uASIoICf9rgEgECAT/a4BICYgGP1RIhBBGP2rASAQQQj9rQH9UCIQIBz9rgEiHCAR/VEiEUEZ/asBIBFBB/2tAf1QIhH9rgEiGCAi/a4BIBggC/1RIgtBEP2rASALQRD9rQH9UCILIBX9rgEiFSAR/VEiEUEU/asBIBFBDP2tAf1QIhH9rgEiGCAL/VEiC0EY/asBIAtBCP2tAf1QIgsgFf2uASIVIBH9USIRQRn9qwEgEUEH/a0B/VAiEf2uASImICn9rgEgJiAXICD9rgEgDSAJ/VEiCUEZ/asBIAlBB/2tAf1QIgn9rgEiDSAb/a4BIA0gEP1RIg1BEP2rASANQRD9rQH9UCINIA8gFP2uASIP/a4BIhQgCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIhAgDf1RIg1BGP2rASANQQj9rQH9UCIN/VEiF0EQ/asBIBdBEP2tAf1QIhcgGiAS/a4BIA8gCv1RIgpBGf2rASAKQQf9rQH9UCIK/a4BIg8gIf2uASAPIAz9USIMQRD9qwEgDEEQ/a0B/VAiDCAc/a4BIg8gCv1RIgpBFP2rASAKQQz9rQH9UCIK/a4BIhogDP1RIgxBGP2rASAMQQj9rQH9UCIMIA/9rgEiD/2uASIcIBH9USIRQRT9qwEgEUEM/a0B/VAiEf2uASImIBP9rgEgECAl/a4BICggH/1RIhNBGP2rASATQQj9rQH9UCITIBb9rgEiECAO/VEiFkEZ/asBIBZBB/2tAf1QIhb9rgEiDiAe/a4BIA4gDP1RIgxBEP2rASAMQRD9rQH9UCIMIBX9rgEiDiAW/VEiFkEU/asBIBZBDP2tAf1QIhb9rgEiFSAM/VEiDEEY/asBIAxBCP2tAf1QIgwgDv2uASIOIBb9USIWQRn9qwEgFkEH/a0B/VAiFv2uASIfICD9rgEgHyAYIBn9rgEgDyAK/VEiIEEZ/asBICBBB/2tAf1QIiD9rgEiCiAq/a4BIAogE/1RIhNBEP2rASATQRD9rQH9UCITIA0gFP2uASIK/a4BIg8gIP1RIiBBFP2rASAgQQz9rQH9UCIg/a4BIg0gE/1RIhNBGP2rASATQQj9rQH9UCIT/VEiFEEQ/asBIBRBEP2tAf1QIhQgGiAr/a4BIAogCf1RIglBGf2rASAJQQf9rQH9UCIJ/a4BIgogI/2uASAKIAv9USIKQRD9qwEgCkEQ/a0B/VAiCiAQ/a4BIgsgCf1RIglBFP2rASAJQQz9rQH9UCIJ/a4BIhogCv1RIgpBGP2rASAKQQj9rQH9UCIKIAv9rgEiC/2uASIQIBb9USIWQRT9qwEgFkEM/a0B/VAiFv2uASIYICT9rgEgDSAi/a4BICYgF/1RIiJBGP2rASAiQQj9rQH9UCIiIBz9rgEiJCAR/VEiDUEZ/asBIA1BB/2tAf1QIg39rgEiHCAZ/a4BIBwgCv1RIhlBEP2rASAZQRD9rQH9UCIZIA79rgEiCiAN/VEiDUEU/asBIA1BDP2tAf1QIg39rgEiHCAZ/VEiGUEY/asBIBlBCP2tAf1QIhkgCv2uASIKIA39USINQRn9qwEgDUEH/a0B/VAiDf2uASIOICr9rgEgDiAVIBL9rgEgCyAJ/VEiEkEZ/asBIBJBB/2tAf1QIhL9rgEiKiAj/a4BICogIv1RIiNBEP2rASAjQRD9rQH9UCIjIBMgD/2uASIi/a4BIiogEv1RIhJBFP2rASASQQz9rQH9UCIS/a4BIhMgI/1RIiNBGP2rASAjQQj9rQH9UCIj/VEiCUEQ/asBIAlBEP2tAf1QIgkgGiAb/a4BICIgIP1RIhtBGf2rASAbQQf9rQH9UCIb/a4BIiIgHf2uASAiIAz9USIdQRD9qwEgHUEQ/a0B/VAiHSAk/a4BIiIgG/1RIhtBFP2rASAbQQz9rQH9UCIb/a4BIiQgHf1RIh1BGP2rASAdQQj9rQH9UCIgICL9rgEiIv2uASIdIA39USIMQRT9qwEgDEEM/a0B/VAiDP2uASILIAn9USIJQRj9qwEgCUEI/a0B/VAiCSAd/a4BIg8gDP1RIh1BGf2rASAdQQf9rQH9UCAkICn9rgEgIyAq/a4BIikgEv1RIhJBGf2rASASQQf9rQH9UCIS/a4BIh0gJf2uASAdIBn9USIZQRD9qwEgGUEQ/a0B/VAiGSAYIBT9USIdQRj9qwEgHUEI/a0B/VAiIyAQ/a4BIiX9rgEiJCAS/VEiEkEU/asBIBJBDP2tAf1QIir9rgEiDCAZ/VEiGUEY/asBIBlBCP2tAf1QIhn9USEdIBMgHv2uASAlIBb9USISQRn9qwEgEkEH/a0B/VAiEv2uASIeICf9rgEgHiAg/VEiHkEQ/asBIB5BEP2tAf1QIh4gCv2uASIlIBL9USISQRT9qwEgEkEM/a0B/VAiEv2uASIgIB79USIeQRj9qwEgHkEI/a0B/VAiHiAl/a4BIhMgEv1RIhJBGf2rASASQQf9rQH9UCAcICv9rgEgIiAb/VEiG0EZ/asBIBtBB/2tAf1QIhv9rgEiEiAh/a4BIBIgI/1RIhJBEP2rASASQRD9rQH9UCISICn9rgEiKyAb/VEiG0EU/asBIBtBDP2tAf1QIhv9rgEiKSAS/VEiEkEY/asBIBJBCP2tAf1QIiP9USESIBkgJP2uASIZICr9USIlQRn9qwEgJUEH/a0B/VAgCf1RISUgIyAr/a4BIiMgG/1RIhtBGf2rASAbQQf9rQH9UCAe/VEhJCAPIAz9USEiIBMgKf1RISsgIyAg/VEhIyAZIAv9USEbIAUhBCA1IAJBQGsiAkcNAAsgCCASIB39DQgJCgsYGRobDA0ODxwdHh8iGSAkICX9DQgJCgsYGRobDA0ODxwdHh8iKf0NCAkKCwwNDg8YGRobHB0eH/0LAHAgCCAbICv9DQgJCgsYGRobDA0ODxwdHh8iHiAiICP9DQgJCgsYGRobDA0ODxwdHh8iIP0NCAkKCwwNDg8YGRobHB0eH/0LAGAgCCAZICn9DQABAgMEBQYHEBESExQVFhf9CwBQIAggHiAg/Q0AAQIDBAUGBxAREhMUFRYX/QsAQCAIIBIgHf0NAAECAxAREhMEBQYHFBUWFyIZICQgJf0NAAECAxAREhMEBQYHFBUWFyIS/Q0ICQoLDA0ODxgZGhscHR4f/QsAMCAIIBsgK/0NAAECAxAREhMEBQYHFBUWFyIbICIgI/0NAAECAxAREhMEBQYHFBUWFyIr/Q0ICQoLDA0ODxgZGhscHR4f/QsAICAIIBkgEv0NAAECAwQFBgcQERITFBUWF/0LABAgCCAbICv9DQABAgMEBQYHEBESExQVFhf9CwAAC8AgAg5/B34jAEEgayIHJAAgACgCDCIDQQA2AgggACgCECEEIAAoAhQiAiADKAIASwRAIANBACACECcgAygCCCEKCyACBEAgAygCBCAKaiAEIAL8CgAACyADIAMoAgggAmo2AgggACgCGCECQQMhBSABQf8BcSIEQQpPBEAgAiAEQfsobEETdiIBQZx/bCAEakEBdC8BupRAOwABQQEhBQtBACAEIAFB/wFxG0UEQCACIAVBAWsiBWogAUEwajoAAAsgBUEDcyIBIAMoAgAgAygCCCIKa0sEQCADIAogARAnIAMoAgghCgsgAQRAIAMoAgQgCmogAiAFaiAB/AoAAAsgAyADKAIIIAFqIgE2AgggACgCHCgCACENAkAgAUUEQEKlxoihyJyn+UshEAwBCyADKAIEIgIgAWohCEKlxoihyJyn+UshEANAAn8gAiwAACIBQQBOBEAgAUH/AXEhBSACQQFqDAELIAItAAFBP3EhBCABQR9xIQMgAUFfTQRAIANBBnQgBHIhBSACQQJqDAELIAItAAJBP3EgBEEGdHIhBCABQXBJBEAgBCADQQx0ciEFIAJBA2oMAQsgA0ESdEGAgPAAcSACLQADQT9xIARBBnRyciEFIAJBBGoLIQIgECAFrYVCs4OAgIAgfiEQIAIgCEcNAAsLQQEhCEEBIQoCQAJAAkACQCANQQNsQQNqIg9BAnYgD0EDcUEAR2oiA0EHakH4////B3EiAQRAIAEQByIKRQ0BCyAHQQA2AgggByAKNgIEIAcgATYCAAJAAkAgD0UEQEEAIQIMAQsgEELrh9aF6Mih5OEAfSEQQQAhAgNAIBBCHoggEIVCucuT59Htkay/f34iEUIbiCARhULro8SZsbeS6JR/fiIRQh+IIBGFIhJCOIYgEkKA/gODQiiGhCASQoCA/AeDQhiGIBJCgICA+A+DQgiGhIQgEkIIiEKAgID4D4MgEUIYiEKAgPwHg4QgEUIoiEKA/gODIBFCOIiEhIQhESAHKAIAIAJrQQdLBH8gAgUgByACQQgQJyAHKAIEIQogBygCCAshBSAFIApqIBE3AAAgByAFQQhqIgI2AgggEELrh9aF6Mih5OEAfSEQIAIgA0kNAAtBAiEKIAJBA24iAUECdCEGAkACQAJAIAFBfWwgAmoOAgIBAAtBAyEKCyAGIApyIQYLIAZBAEgNAyAHKAIEIQogBhAHIghFDQQgCEEEay0AAEEDcUUgBkVyRQRAIAhBACAG/AsACyAFQRNPDQELQQAhAwwECyACQRprIgFBACABIAJNGyEMQQAhAQNAIAIgCUEaakkEQCAJIAVBBmoiACAAQRhwa0EaaiACQcSMwAAQHQALIAYgAUEgaiIDTwRAIAEgCGoiASAJIApqIgQpAAAiEEI4hiISQjqIpy0A44hAOgAAIAFBBGogEEKAgID4D4NCCIYiE0IiiKctAOOIQDoAACABQQhqIARBBmopAAAiEUI4hiIUQjqIpy0A44hAOgAAIAFBDGogEUKAgID4D4NCCIYiFUIiiKctAOOIQDoAACABQQFqIBIgEEKA/gODQiiGhCISQjSIp0E/cS0A44hAOgAAIAFBB2ogEEIIiEKAgID4D4MgEEIYiEKAgPwHg4QgEEIoiEKA/gODIBBCOIiEhCIWpyILQRB2QT9xLQDjiEA6AAAgAUEGaiALQRZ2QT9xLQDjiEA6AAAgAUEDaiASIBBCgID8B4NCGIYgE4SEIhBCKIinQT9xLQDjiEA6AAAgAUECaiAQQi6Ip0E/cS0A44hAOgAAIAFBCWogFCARQoD+A4NCKIaEIhJCNIinQT9xLQDjiEA6AAAgAUEFaiAQIBaEQhyIp0E/cS0A44hAOgAAIAFBD2ogEUIIiEKAgID4D4MgEUIYiEKAgPwHg4QgEUIoiEKA/gODIBFCOIiEhCITpyILQRB2QT9xLQDjiEA6AAAgAUEOaiALQRZ2QT9xLQDjiEA6AAAgAUELaiASIBFCgID8B4NCGIYgFYSEIhBCKIinQT9xLQDjiEA6AAAgAUEKaiAQQi6Ip0E/cS0A44hAOgAAIAFBDWogECAThEIciKdBP3EtAOOIQDoAACABQRdqIARBDGopAAAiEEIIiEKAgID4D4MgEEIYiEKAgPwHg4QgEEIoiEKA/gODIBBCOIiEhCIRpyILQRB2QT9xLQDjiEA6AAAgAUEWaiALQRZ2QT9xLQDjiEA6AAAgAUEVaiARIBBCOIYiESAQQoD+A4NCKIaEIhIgEEKAgID4D4NCCIYiEyAQQoCA/AeDQhiGhIQiEIRCHIinQT9xLQDjiEA6AAAgAUEUaiATQiKIpy0A44hAOgAAIAFBE2ogEEIoiKdBP3EtAOOIQDoAACABQRJqIBBCLoinQT9xLQDjiEA6AAAgAUERaiASQjSIp0E/cS0A44hAOgAAIAFBEGogEUI6iKctAOOIQDoAACABQRhqIARBEmopAAAiEEI4hiIRQjqIpy0A44hAOgAAIAFBHGogEEKAgID4D4NCCIYiEkIiiKctAOOIQDoAACABQRlqIBEgEEKA/gODQiiGhCIRQjSIp0E/cS0A44hAOgAAIAFBH2ogEEIIiEKAgID4D4MgEEIYiEKAgPwHg4QgEEIoiEKA/gODIBBCOIiEhCITpyIEQRB2QT9xLQDjiEA6AAAgAUEeaiAEQRZ2QT9xLQDjiEA6AAAgAUEbaiARIBBCgID8B4NCGIYgEoSEIhBCKIinQT9xLQDjiEA6AAAgAUEaaiAQQi6Ip0E/cS0A44hAOgAAIAFBHWogECAThEIciKdBP3EtAOOIQDoAACADIQEgCUEYaiIJIAxLDQUMAQsLIAEgAyAGQbSMwAAQHQALQQEgARBKAAsQUgALQQEgBhBKAAsCQAJAAkACQAJAAn8CQAJAAkACQCACIAJBA3AiDGsiBSAJTQRAIAMhBAwBCwNAIAIgCUEDaiIBSQRAIAkgASACQaSMwAAQHQALIANBBGoiBCAGSw0CIAMgCGoiAyAJIApqIgktAAAiC0ECdi0A44hAOgAAIANBA2ogCUECai0AACIOQT9xQeOIwABqLQAAOgAAIANBAmogCUEBai0AACIJQQJ0IA5BBnZyQT9xQeOIwABqLQAAOgAAIANBAWogC0EEdCAJQQR2ckE/cUHjiMAAai0AADoAACAEIQMgASIJIAVJDQALCyAMQQFrDgIBAgQLIAMgBCAGQZSMwAAQHQALIAQgBkkEQCAEIAhqIAUgCmotAAAiAUECdi0A44hAOgAAIAFBBHRBMHEgBiAEQQFqIgJLDQIaIAIgBkGEjMAAEDcACyAEIAZB9IvAABA3AAsgBCAGTw0EIAQgCGogBSAKaiIDLQAAIgJBAnYtAOOIQDoAACAEQQFqIgEgBk8NAyABIAhqIAJBBHQgAy0AASIBQQR2ckE/cUHjiMAAai0AADoAACAEQQJqIgIgBk8NAiABQQJ0QTxxCyEFIAIgCGogBS0A44hAOgAACyAGRQ0DIAZBB2siAUEAIAEgBk0bIQwgCEEDakF8cSAIayELQQAhAgNAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAIAIgCGotAAAiBcAiCUEASARAQYACIQNBASEEIAUtAMWRQEECaw4DBwIBCQsgCyACa0EDcQ0JIAIgDE8NCgNAIAIgCGoiAUEEaigCACABKAIAckGAgYKEeHENCyACQQhqIgIgDEkNAAsMCgtBACEDIAYgAkEBaiIBTQRAQQAhBAwICyABIAhqLAAAIQECQAJAAkACQCAFQfABaw4FAQAAAAIACyAJQQ9qQf8BcUECSyABQUBOcg0EDAILIAFB8ABqQf8BcUEwTw0DDAELIAFBj39KDQILIAYgAkECaiIBTQRAQQAhBAwICyABIAhqLAAAQb9/Sg0DQQAhBCACQQNqIgUgBk8NByAFIAhqLAAAQUBIDQZBgAYMBAtBACEDIAYgAkEBaiIBTQRAQQAhBAwHCyABIAhqLAAAIQECQAJAIAVB4AFrIgQEQCAEQQ1GBEAMAgUMAwsACyABQWBxQaB/Rg0DDAILIAFBn39KDQEMAgsgCUEfakH/AXFBDE8EQCAJQX5xQW5HDQEgAUFASA0CDAELIAFBQEgNAQtBgAIMAgtBACEEIAJBAmoiBSAGTw0EIAUgCGosAABBv39MDQMLQYAECyEDQQEhBAwCCyAGIAJBAWoiBU0EQEEAIQNBACEEDAILIAUgCGosAABBv39KDQELIAVBAWohAgwDCyAHIAI2AhggByAGNgIUIAcgCDYCECAHIAY2AgwgByADIARyNgIcQZSIwABBDCAHQQxqQYSIwABBoIjAABAvAAsgAkEBaiECDAELIAIgBk8NAANAIAIgCGosAABBAEgNASAGIAJBAWoiAkcNAAsMBQsgAiAGSQ0ACwwDCyACIAZB5IvAABA3AAsgASAGQdSLwAAQNwALIAQgBkHEi8AAEDcACyAHQQA2AhQgB0KAgICAEDcCDAJAIA1FDQAgBiAIaiIMIAhHBEAgB0EMakEAIA0gDCAIayIBQQJ2IAFBA3FBAEdqIgEgASANSxsQJwsgCCECA0AgAiAMRg0BAn8CfwJAIAIsAAAiAUEASARAIAItAAFBP3EhBCABQR9xIQMgAUFfSw0BIANBBnQgBHIhBSACQQJqDAILIAJBAWohAiABQf8BcSEFQQEhBCAHKAIUIQFBAQwCCyACLQACQT9xIARBBnRyIQQgAUFwSQRAIAQgA0EMdHIhBSACQQNqDAELIANBEnRBgIDwAHEgAi0AA0E/cSAEQQZ0cnIiBUGAgMQARg0DIAJBBGoLIQJBASEEIAcoAhQhAUEBIAVBgAFJDQAaQQAhBEECIAVBgBBJDQAaQQNBBCAFQYCABEkbCyEJIAEhAyAHKAIMIAFrIAlJBH8gB0EMaiABIAkQJyAHKAIUBSADCyAHKAIQaiEDAkAgBEUEQCAFQT9xQYB/ciEEIAVBBnYhCyAFQYAQSQRAIAMgBDoAASADIAtBwAFyOgAADAILIAVBDHYhDiALQT9xQYB/ciELIAVB//8DTQRAIAMgBDoAAiADIAs6AAEgAyAOQeABcjoAAAwCCyADIAQ6AAMgAyALOgACIAMgDkE/cUGAf3I6AAEgAyAFQRJ2QXByOgAADAELIAMgBToAAAsgByABIAlqNgIUIA1BAWsiDQ0ACwsCQAJAAkACQCAPBEAgCEEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgBmpJDQEgAUEAIAMgBkEnaksbDQIgCBAMCyAHKAIAIgEEQCAKQQRrKAIAIgNBeHEiAkEEQQggA0EDcSIDGyABakkNAyADQQAgAiABQSdqSxsNBCAKEAwLIAAgACgCBCIBQQFqNgIEIAAoAgggAUEMbGoiACAHKQIMNwIAIABBCGogB0EUaigCADYCACAHQSBqJAAPC0G0lsAAQS5B5JbAABBMAAtB9JbAAEEuQaSXwAAQTAALQbSWwABBLkHklsAAEEwAC0H0lsAAQS5BpJfAABBMAAuJGwEgfyAAIAAoAhgiHSABKAAQIiQgACgCCGpqIhsgASgAFCIVaiAdIBsgAkH/AXFzQRB3IgJB8ua74wNqIh1zQRR3IhtqIiIgAnNBGHciCSAdaiIcIBtzQRl3Ig8gACgCFCIbIAEoAAgiAiAAKAIEamoiGSABKAAMIh1qIBkgA0IgiKdzQRB3Ih5B+6LhpARrIiAgG3NBFHciBmoiCiABKAAoIhtqaiIjIAEoACwiGWogDyAjIAAoAhAiISABKAAAIg8gACgCAGpqIgggASgABCIfaiAhIAggA6dzQRB3IiFB58yn0AZqIghzQRR3IgdqIg4gIXNBGHciDXNBEHciCyAAKAIcIgUgASgAGCIjIAAoAgxqaiIMIAEoABwiIWogBSAMIARB/wFxc0EQdyIEQcaVwNUFayIFc0EUdyIMaiIRIARzQRh3IhAgBWoiBWoiEnNBFHciFGoiEyAdaiAGICAgCiAec0EYdyIgaiIGc0EZdyIKIA4gASgAICIEamoiDiABKAAkIh5qIAogHCAOIBBzQRB3IhxqIgpzQRR3Ig5qIhAgHHNBGHciFiAKaiIKIA5zQRl3IhxqIg4gG2ogHCAOIAUgDHNBGXciBSAiIAEoADAiHGpqIgwgASgANCIiaiAMICBzQRB3IiAgCCANaiIIaiINIAVzQRR3IgVqIgwgIHNBGHciF3NBEHciDiAHIAhzQRl3IgggESABKAA4IiBqaiIHIAEoADwiAWogByAJc0EQdyIJIAZqIgYgCHNBFHciCGoiByAJc0EYdyIJIAZqIgZqIhFzQRR3IhhqIhogHGogCyATc0EYdyILIBJqIhIgFHNBGXciFCAMICFqaiIMIA9qIAkgDHNBEHciCSAKaiIKIBRzQRR3IgxqIhQgCXNBGHciCSAKaiIKIAxzQRl3IgxqIhMgFWogDCATIAYgCHNBGXciBiACIBBqaiIIICNqIAYgCCALc0EQdyIGIA0gF2oiCGoiDXNBFHciC2oiDCAGc0EYdyIGc0EQdyIQIAUgCHNBGXciCCAHICRqaiIHICJqIAggByAWc0EQdyIIIBJqIgdzQRR3IgVqIhIgCHNBGHciCCAHaiIHaiITc0EUdyIWaiIXIBtqIA4gGnNBGHciDiARaiIRIBhzQRl3IhggDCAfamoiDCAZaiAKIAggDHNBEHciCmoiCCAYc0EUdyIMaiIYIApzQRh3IgogCGoiCCAMc0EZdyIMaiIaIBxqIAwgGiAFIAdzQRl3IgcgFCAeamoiBSAgaiAHIAUgDnNBEHciByAGIA1qIgZqIg5zQRR3Ig1qIgUgB3NBGHciB3NBEHciDCAGIAtzQRl3IgYgASASamoiCyAEaiAGIAkgC3NBEHciCSARaiIGc0EUdyILaiIRIAlzQRh3IgkgBmoiBmoiEnNBFHciFGoiGiAeaiAQIBdzQRh3IhAgE2oiEyAWc0EZdyIWIAUgImpqIgUgAmogBSAJc0EQdyIJIAhqIgggFnNBFHciBWoiFiAJc0EYdyIJIAhqIgggBXNBGXciBWoiFyAPaiAFIBcgBiALc0EZdyIGIBggHWpqIgsgJGogBiALIBBzQRB3IgYgByAOaiIHaiIOc0EUdyILaiIFIAZzQRh3IgZzQRB3IhAgByANc0EZdyIHIBEgIWpqIg0gIGogByAKIA1zQRB3IgogE2oiB3NBFHciDWoiESAKc0EYdyIKIAdqIgdqIhNzQRR3IhdqIhggHGogDCAac0EYdyIMIBJqIhIgFHNBGXciFCAFICNqaiIFIBVqIAUgCnNBEHciCiAIaiIIIBRzQRR3IgVqIhQgCnNBGHciCiAIaiIIIAVzQRl3IgVqIhogHmogBSAaIAcgDXNBGXciByAWIBlqaiINIAFqIAcgDCANc0EQdyIHIAYgDmoiBmoiDnNBFHciDWoiBSAHc0EYdyIHc0EQdyIMIAYgC3NBGXciBiAEIBFqaiILIB9qIAYgCSALc0EQdyIJIBJqIgZzQRR3IgtqIhEgCXNBGHciCSAGaiIGaiISc0EUdyIWaiIaIBlqIBAgGHNBGHciECATaiITIBdzQRl3IhcgBSAgamoiBSAdaiAFIAlzQRB3IgkgCGoiCCAXc0EUdyIFaiIXIAlzQRh3IgkgCGoiCCAFc0EZdyIFaiIYIAJqIAUgGCAGIAtzQRl3IgYgFCAbamoiCyAhaiAGIAsgEHNBEHciBiAHIA5qIgdqIg5zQRR3IgtqIgUgBnNBGHciBnNBEHciECAHIA1zQRl3IgcgESAiamoiDSABaiAHIAogDXNBEHciCiATaiIHc0EUdyINaiIRIApzQRh3IgogB2oiB2oiFHNBFHciE2oiGCAeaiAMIBpzQRh3IgwgEmoiEiAWc0EZdyIWIAUgJGpqIgUgD2ogBSAKc0EQdyIKIAhqIgggFnNBFHciBWoiFiAKc0EYdyIKIAhqIgggBXNBGXciBWoiGiAZaiAFIBogByANc0EZdyIHIBUgF2pqIg0gBGogByAMIA1zQRB3IgcgBiAOaiIGaiIOc0EUdyINaiIFIAdzQRh3IgdzQRB3IgwgBiALc0EZdyIGIBEgH2pqIgsgI2ogBiAJIAtzQRB3IgkgEmoiBnNBFHciC2oiESAJc0EYdyIJIAZqIgZqIhJzQRR3IhdqIhogFWogECAYc0EYdyIQIBRqIhQgE3NBGXciEyABIAVqaiIFIBtqIAUgCXNBEHciCSAIaiIIIBNzQRR3IgVqIhMgCXNBGHciCSAIaiIIIAVzQRl3IgVqIhggHWogBSAYIAYgC3NBGXciBiAWIBxqaiILICJqIAYgCyAQc0EQdyIGIAcgDmoiB2oiDnNBFHciC2oiBSAGc0EYdyIGc0EQdyIQIAcgDXNBGXciByARICBqaiINIARqIAcgCiANc0EQdyIKIBRqIgdzQRR3Ig1qIhEgCnNBGHciCiAHaiIHaiIUc0EUdyIWaiIYIBlqIAwgGnNBGHciDCASaiISIBdzQRl3IhcgBSAhamoiBSACaiAFIApzQRB3IgogCGoiCCAXc0EUdyIFaiIXIApzQRh3IgogCGoiCCAFc0EZdyIFaiIaIBVqIAUgGiAHIA1zQRl3IgcgDyATamoiDSAfaiAHIAwgDXNBEHciByAGIA5qIgZqIg5zQRR3Ig1qIgUgB3NBGHciB3NBEHciDCAGIAtzQRl3IgYgESAjamoiCyAkaiAGIAkgC3NBEHciCSASaiIGc0EUdyILaiIRIAlzQRh3IgkgBmoiBmoiEnNBFHciE2oiGiAPaiAQIBhzQRh3IhAgFGoiFCAWc0EZdyIWIAQgBWpqIgUgHGogBSAJc0EQdyIJIAhqIgggFnNBFHciBWoiFiAJc0EYdyIJIAhqIgggBXNBGXciBWoiGCAbaiAFIBggBiALc0EZdyIGIBcgHmpqIgsgIGogBiALIBBzQRB3IgYgByAOaiIHaiIOc0EUdyILaiIFIAZzQRh3IgZzQRB3IhAgByANc0EZdyIHIAEgEWpqIg0gH2ogByAKIA1zQRB3IgogFGoiB3NBFHciDWoiESAKc0EYdyIKIAdqIgdqIhRzQRR3IhdqIhggFWogDCAac0EYdyIVIBJqIgwgE3NBGXciEiAFICJqaiIFIB1qIAUgCnNBEHciCiAIaiIIIBJzQRR3IgVqIhIgCnNBGHciCiAIaiIIIAVzQRl3IgVqIhMgD2ogBSATIAcgDXNBGXciDyACIBZqaiIHICNqIA8gByAVc0EQdyIVIAYgDmoiD2oiBnNBFHciB2oiDiAVc0EYdyIVc0EQdyINIAsgD3NBGXciDyARICRqaiILICFqIA8gCSALc0EQdyIPIAxqIglzQRR3IgtqIgUgD3NBGHciDyAJaiIJaiIMc0EUdyIRaiITIAJqIB4gECAYc0EYdyICIBRqIh4gF3NBGXciECAOIB9qaiIfaiAPIB9zQRB3Ig8gCGoiHyAQc0EUdyIIaiIOIA9zQRh3Ig8gH2oiHyAIc0EZdyIIaiIQIBxqIBAgASAJIAtzQRl3IgEgEiAZamoiGWogASACIBlzQRB3IgEgBiAVaiICaiIVc0EUdyIZaiIcIAFzQRh3IgFzQRB3IgkgAiAHc0EZdyICIAQgBWpqIgQgI2ogAiAEIApzQRB3IgIgHmoiBHNBFHciI2oiHiACc0EYdyICIARqIgRqIgYgCHNBFHciCmoiCCAJc0EYdyIJIAZqIgYgASAVaiIBIBlzQRl3IhUgHiAhamoiGSAiaiAVIA8gGXNBEHciFSANIBNzQRh3IhkgDGoiD2oiIXNBFHciHmoiInM2AgwgACAbIA8gEXNBGXciDyAcICBqaiIcaiACIBxzQRB3IgIgH2oiGyAPc0EUdyIPaiIfIAJzQRh3IgIgG2oiGyAkIAQgI3NBGXciBCAOIB1qaiIdaiAEIAEgGSAdc0EQdyIBaiIEc0EUdyIkaiIdczYCCCAAIBUgInNBGHciFSAhaiIZIAhzNgIEIAAgASAdc0EYdyIBIARqIgQgH3M2AgAgACAEICRzQRl3IAJzNgIcIAAgBiAKc0EZdyAVczYCGCAAIA8gG3NBGXcgAXM2AhQgACAZIB5zQRl3IAlzNgIQC/kjAQh/AkACQAJAAkACQAJAIABB9QFPBEAgAEHM/3tLBEBBAA8LIABBC2oiAUF4cSEFQfSawAAoAgAiCEUNBEEfIQdBACAFayEDIABB9P//B00EQCAFQSYgAUEIdmciAGt2QQFxIABBAXRrQT5qIQcLIAdBAnRB2JfAAGooAgAiAkUEQEEAIQFBACEADAILQQAhASAFQRkgB0EBdmtBACAHQR9HG3QhBEEAIQADQAJAIAIoAgRBeHEiBiAFSQ0AIAYgBWsiBiADTw0AIAIhASAGIgMNAEEAIQMgASEADAQLIAIoAhQiBiAAIAYgAiAEQR12QQRxaigCECICRxsgACAGGyEAIARBAXQhBCACDQALDAELAkACQAJAAkACQEHwmsAAKAIAIgJBECAAQQtqQfgDcSAAQQtJGyIFQQN2IgB2IgFBA3EEQCABQX9zQQFxIABqIgZBA3QiAEHomMAAaiIEIABB8JjAAGooAgAiASgCCCIDRg0BIAMgBDYCDCAEIAM2AggMAgsgBUH4msAAKAIATQ0IIAENAkH0msAAKAIAIgBFDQggAGhBAnRB2JfAAGooAgAiAigCBEF4cSAFayEDIAIhAQNAAkAgASgCECIADQAgASgCFCIADQAgAigCGCEHAkACQCACIAIoAgwiAEYEQCACQRRBECACKAIUIgAbaigCACIBDQFBACEADAILIAIoAggiASAANgIMIAAgATYCCAwBCyACQRRqIAJBEGogABshBANAIAQhBiABIgBBFGogAEEQaiAAKAIUIgEbIQQgAEEUQRAgARtqKAIAIgENAAsgBkEANgIACyAHRQ0GAkAgAigCHEECdEHYl8AAaiIBKAIAIAJHBEAgAiAHKAIQRwRAIAcgADYCFCAADQIMCQsgByAANgIQIAANAQwICyABIAA2AgAgAEUNBgsgACAHNgIYIAIoAhAiAQRAIAAgATYCECABIAA2AhgLIAIoAhQiAUUNBiAAIAE2AhQgASAANgIYDAYLIAAoAgRBeHEgBWsiASADIAEgA0kiARshAyAAIAIgARshAiAAIQEMAAsAC0HwmsAAIAJBfiAGd3E2AgALIAEgAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBCABQQhqDwsCQEECIAB0IgRBACAEa3IgASAAdHFoIgZBA3QiAUHomMAAaiIEIAFB8JjAAGooAgAiACgCCCIDRwRAIAMgBDYCDCAEIAM2AggMAQtB8JrAACACQX4gBndxNgIACyAAIAVBA3I2AgQgACAFaiIHIAEgBWsiBkEBcjYCBCAAIAFqIAY2AgBB+JrAACgCACICBEBBgJvAACgCACEBAkBB8JrAACgCACIEQQEgAkEDdnQiA3FFBEBB8JrAACADIARyNgIAIAJBeHFB6JjAAGoiAyEEDAELIAJBeHEiAkHomMAAaiEEIAJB8JjAAGooAgAhAwsgBCABNgIIIAMgATYCDCABIAQ2AgwgASADNgIIC0GAm8AAIAc2AgBB+JrAACAGNgIADAcLQfSawABB9JrAACgCAEF+IAIoAhx3cTYCAAsCQAJAIANBEE8EQCACIAVBA3I2AgQgAiAFaiIGIANBAXI2AgQgAyAGaiADNgIAQfiawAAoAgAiAUUNAUGAm8AAKAIAIQACQEHwmsAAKAIAIgRBASABQQN2dCIHcUUEQEHwmsAAIAQgB3I2AgAgAUF4cUHomMAAaiIEIQEMAQsgAUF4cSIEQeiYwABqIQEgBEHwmMAAaigCACEECyABIAA2AgggBCAANgIMIAAgATYCDCAAIAQ2AggMAQsgAiADIAVqIgBBA3I2AgQgACACaiIAIAAoAgRBAXI2AgQMAQtBgJvAACAGNgIAQfiawAAgAzYCAAsgAkEIaiIARQ0DDAQLIAAgAXJFBEBBACEBQQIgB3QiAEEAIABrciAIcSIARQ0DIABoQQJ0QdiXwABqKAIAIQALIABFDQELA0AgAyAAKAIEQXhxIgQgBWsiAiADIAIgA0kiBhsgBCAFSSIEGyEDIAEgACABIAYbIAQbIQEgACgCECICBH8gAgUgACgCFAsiAA0ACwsgAUUNACAFQfiawAAoAgAiAE0gAyAAIAVrT3ENACABKAIYIQcCQAJAIAEgASgCDCIARgRAIAFBFEEQIAEoAhQiABtqKAIAIgINAUEAIQAMAgsgASgCCCICIAA2AgwgACACNgIIDAELIAFBFGogAUEQaiAAGyEEA0AgBCEGIAIiAEEUaiAAQRBqIAAoAhQiAhshBCAAQRRBECACG2ooAgAiAg0ACyAGQQA2AgALAkAgB0UNAAJAAkAgASgCHEECdEHYl8AAaiICKAIAIAFHBEAgASAHKAIQRwRAIAcgADYCFCAADQIMBAsgByAANgIQIAANAQwDCyACIAA2AgAgAEUNAQsgACAHNgIYIAEoAhAiAgRAIAAgAjYCECACIAA2AhgLIAEoAhQiAkUNASAAIAI2AhQgAiAANgIYDAELQfSawABB9JrAACgCAEF+IAEoAhx3cTYCAAsCQCADQRBPBEAgASAFQQNyNgIEIAEgBWoiACADQQFyNgIEIAAgA2ogAzYCACADQYACTwRAIAAgAxAbDAILAkBB8JrAACgCACICQQEgA0EDdnQiBHFFBEBB8JrAACACIARyNgIAIANB+AFxQeiYwABqIgMhAgwBCyADQfgBcSIEQeiYwABqIQIgBEHwmMAAaigCACEDCyACIAA2AgggAyAANgIMIAAgAjYCDCAAIAM2AggMAQsgASADIAVqIgBBA3I2AgQgACABaiIAIAAoAgRBAXI2AgQLIAFBCGoiAA0BCwJAAkACQAJAAkAgBUH4msAAKAIAIgFLBEAgBUH8msAAKAIAIgBPBEAgBUGvgARqIgFBEHZAACICQX9GBEBBAA8LQQAhACACQRB0IgJFDQdBiJvAACABQYCAfHEiAEEQayAAIAJBACAAa0YbIgFBiJvAACgCAGoiADYCAEGMm8AAIABBjJvAACgCACIEIAAgBEsbNgIAAkACQEGEm8AAKAIAIgQEQEHYmMAAIQADQCAAKAIAIgMgACgCBCIGaiACRg0CIAAoAggiAA0ACwwCC0GUm8AAKAIAIgBBACAAIAJNG0UEQEGUm8AAIAI2AgALQZibwABB/x82AgBB3JjAACABNgIAQdiYwAAgAjYCAEH0mMAAQeiYwAA2AgBB/JjAAEHwmMAANgIAQfCYwABB6JjAADYCAEGEmcAAQfiYwAA2AgBB+JjAAEHwmMAANgIAQYyZwABBgJnAADYCAEGAmcAAQfiYwAA2AgBBlJnAAEGImcAANgIAQYiZwABBgJnAADYCAEGcmcAAQZCZwAA2AgBBkJnAAEGImcAANgIAQaSZwABBmJnAADYCAEGYmcAAQZCZwAA2AgBBrJnAAEGgmcAANgIAQaCZwABBmJnAADYCAEHkmMAAQQA2AgBBtJnAAEGomcAANgIAQaiZwABBoJnAADYCAEGwmcAAQaiZwAA2AgBBvJnAAEGwmcAANgIAQbiZwABBsJnAADYCAEHEmcAAQbiZwAA2AgBBwJnAAEG4mcAANgIAQcyZwABBwJnAADYCAEHImcAAQcCZwAA2AgBB1JnAAEHImcAANgIAQdCZwABByJnAADYCAEHcmcAAQdCZwAA2AgBB2JnAAEHQmcAANgIAQeSZwABB2JnAADYCAEHgmcAAQdiZwAA2AgBB7JnAAEHgmcAANgIAQeiZwABB4JnAADYCAEH0mcAAQeiZwAA2AgBB/JnAAEHwmcAANgIAQfCZwABB6JnAADYCAEGEmsAAQfiZwAA2AgBB+JnAAEHwmcAANgIAQYyawABBgJrAADYCAEGAmsAAQfiZwAA2AgBBlJrAAEGImsAANgIAQYiawABBgJrAADYCAEGcmsAAQZCawAA2AgBBkJrAAEGImsAANgIAQaSawABBmJrAADYCAEGYmsAAQZCawAA2AgBBrJrAAEGgmsAANgIAQaCawABBmJrAADYCAEG0msAAQaiawAA2AgBBqJrAAEGgmsAANgIAQbyawABBsJrAADYCAEGwmsAAQaiawAA2AgBBxJrAAEG4msAANgIAQbiawABBsJrAADYCAEHMmsAAQcCawAA2AgBBwJrAAEG4msAANgIAQdSawABByJrAADYCAEHImsAAQcCawAA2AgBB3JrAAEHQmsAANgIAQdCawABByJrAADYCAEHkmsAAQdiawAA2AgBB2JrAAEHQmsAANgIAQeyawABB4JrAADYCAEHgmsAAQdiawAA2AgBBhJvAACACNgIAQeiawABB4JrAADYCAEH8msAAIAFBKGsiADYCACACIABBAXI2AgQgACACakEoNgIEQZCbwABBgICAATYCAAwICyACIARNIAMgBEtyDQAgACgCDEUNAwtB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aiEAIAEgA2siAUGAm8AAKAIARgRAIAIoAgRBA3FBA0cNAUH4msAAIAA2AgAgAiACKAIEQX5xNgIEIAEgAEEBcjYCBCACIAA2AgAPCyABIAMQGQsCQAJAAkACQAJAAkACQCACKAIEIgNBAnFFBEAgAkGEm8AAKAIARg0CIAJBgJvAACgCAEYNAyACIANBeHEiAhAZIAEgACACaiIAQQFyNgIEIAAgAWogADYCACABQYCbwAAoAgBHDQFB+JrAACAANgIADwsgAiADQX5xNgIEIAEgAEEBcjYCBCAAIAFqIAA2AgALIABBgAJJDQJBHyECIAFCADcCECAAQf///wdNBEAgAEEmIABBCHZnIgJrdkEBcSACQQF0a0E+aiECCyABIAI2AhwgAkECdEHYl8AAaiEDQQEgAnQiBEH0msAAKAIAcQ0DIAMgATYCACABIAM2AhggASABNgIMIAEgATYCCEH0msAAQfSawAAoAgAgBHI2AgAMBAtBhJvAACABNgIAQfyawABB/JrAACgCACAAaiIANgIAIAEgAEEBcjYCBEGAm8AAKAIAIAFGBEBB+JrAAEEANgIAQYCbwABBADYCAAsgAEGQm8AAKAIAIgJNDQVBhJvAACgCACIARQ0FQfyawAAoAgAiA0EpSQ0EQdiYwAAhAQNAIAAgASgCACIFTwRAIAAgBSABKAIEakkNBgsgASgCCCEBDAALAAtBgJvAACABNgIAQfiawABB+JrAACgCACAAaiIANgIAIAEgAEEBcjYCBCAAIAFqIAA2AgAPCwJAQfCawAAoAgAiAkEBIABBA3Z0IgNxRQRAQfCawAAgAiADcjYCACAAQfgBcUHomMAAaiIAIQIMAQsgAEH4AXEiAEHomMAAaiECIABB8JjAAGooAgAhAAsgAiABNgIIIAAgATYCDCABIAI2AgwgASAANgIIDwsCQAJAIAAgAygCACIDKAIEQXhxRgRAIAMhAgwBCyAAQRkgAkEBdmtBACACQR9HG3QhBANAIAMgBEEddkEEcWoiBSgCECICRQ0CIARBAXQhBCACIQMgAigCBEF4cSAARw0ACwsgAigCCCIAIAE2AgwgAiABNgIIIAFBADYCGCABIAI2AgwgASAANgIIDAELIAVBEGogATYCACABIAM2AhggASABNgIMIAEgATYCCAtBACEBQZibwABBmJvAACgC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AyACQRBqEBhFDQFBAQwCC0EBIAEoAgBBlpHAAEECIAEoAgQoAgwRAAANARogAyABEBgMAQsgAigCEEGZkcAAQQIgAigCFCgCDBEAAAshACADQQFqIQMgBEEBayIEDQALC0EBIQMgAEUEQCABKAIAQcSRwABBASABKAIEKAIMEQAAIQMLIAJBIGokACADC+cCAQV/AkAgAUHN/3tBECAAIABBEE0bIgBrTw0AIABBECABQQtqQXhxIAFBC0kbIgRqQQxqEAciAkUNACACQQhrIQECQCAAQQFrIgMgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIAIgA2pBACAAa3FBCGsiAiAAQQAgAiABa0EQTRtqIgAgAWsiAmshAyAGQQNxBEAgACADIAAoAgRBAXFyQQJyNgIEIAAgA2oiAyADKAIEQQFyNgIEIAUgAiAFKAIAQQFxckECcjYCACABIAJqIgMgAygCBEEBcjYCBCABIAIQDgwBCyABKAIAIQEgACADNgIEIAAgASACajYCAAsCQCAAKAIEIgFBA3FFDQAgAUF4cSICIARBEGpNDQAgACAEIAFBAXFyQQJyNgIEIAAgBGoiASACIARrIgRBA3I2AgQgACACaiICIAIoAgRBAXI2AgQgASAEEA4LIABBCGohAwsgAwvgAgEDfyMAQRBrIgMkAAJ/AkAgASgCCCICQYCAgBBxRQRAIAJBgICAIHENAUEDIQIgAC0AACIAIQQgAEEKTwRAIAMgACAAQeQAbiIEQeQAbGtB/wFxQQF0LwG6lEA7AAxBASECC0EAIAAgBBtFBEAgAkEBayICIANBC2pqIARBAXQtALuUQDoAAAsgAUEBQQAgA0ELaiACakEDIAJrEBIMAgsgAC0AACECQQMhAANAIAAgA2pBB2ogAkEPcUH0kMAAai0AADoAACACQf8BcSIEQQR2IQIgAEEBayEAIARBD0sNAAsgAUGEkcAAQQIgACADakEIakEDIABrEBIMAQsgAC0AACECQQMhAANAIAAgA2pBDGogAkEPcUGGkcAAai0AADoAACACQf8BcSIEQQR2IQIgAEEBayEAIARBD0sNAAsgAUGEkcAAQQIgACADakENakEDIABrEBILIANBEGokAAuCAwEEfyAAKAIMIQICQAJAAkAgAUGAAk8EQCAAKAIYIQMCQAJAIAAgAkYE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IAAgAUEBdEEBciACED0ACxgAIAEoAgAgASgCBCAAKAIAIAAoAgQQEQsWAgFvAX8gABADIQEQHCICIAEmASACCxQAIAAoAgAgASAAKAIEKAIMEQEACxAAIAEgACgCACAAKAIEEAsLFgBBtJvAACAANgIAQbCbwABBAToAAAsRAEGji8AAQSNBtIvAABA9AAsPACAAQaCRwAAgASACEBELDQAgAUGelMAAQRgQCwsMACAAIAEpAgA3AwALCQAgAEEANgIACwwAQYKWwABBMhABAAsLphcFAEGAgMAAC90MVXRmOEVycm9ydmFsaWRfdXBfdG9lcnJvcl9sZW5Gcm9tVXRmOEVycm9yYnl0ZXNlcnJvck5vbmVTb21lFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAACBpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAEGFzc2VydGlvbiBgbGVmdCDAECByaWdodGAgZmFpbGVkOiDACQogIGxlZnQ6IMAJCiByaWdodDogwAAPQ2FwYWNpdHlFcnJvcjogwADAAjogwAAvaG9tZS91bXppLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTQvc3JjL2V4dGVybnJlZi5ycwAvaG9tZS91bXppLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYmFzZTY0LTAuMjIuMS9zcmMvZW5naW5lL2dlbmVyYWxfcHVycG9zZS9tb2QucnMAL2hvbWUvdW16aS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9tb2QucnMAL3J1c3RjLzRhNGVmNDkzZTNhMTQ4OGM2ZTMyMTU3MDIzODA4NGIzODk0OGY2ZGIvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTEvc3JjL2RsbWFsbG9jLnJzAC9ob21lL3VtemkvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9ibGFrZTMtMS44LjMvc3JjL2xpYi5ycwAmY29weV9mcm9tX3NsaWNlOiBzb3VyY2Ugc2xpY2UgbGVuZ3RoICjAKykgZG9lcyBub3QgbWF0Y2ggZGVzdGluYXRpb24gc2xpY2UgbGVuZ3RoICjAASkAGHRoZSBzdWJ0cmVlIHN0YXJ0aW5nIGF0IMASIGNvbnRhaW5zIGF0IG1vc3QgwA4gYnl0ZXMgKGZvdW5kIMABKQAAAAAqAAAAFAAAAAQAAAArAAAASW52YWxpZCBVVEY4NAIQAF8AAAB/AAAAJAAAAF0DEAAKAAAACwAAABUAAABn5glqha5nu3Lzbjw69U+lf1IOUYxoBZur2YMfGc3gWwAAAkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV////////////////////////////////////////////////////////////8+//80NTY3ODk6Ozw9/////////wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZ/////z//GhscHR4fICEiIyQlJicoKSorLC0uLzAxMjP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Y2FwYWNpdHkgb3ZlcmZsb3eUAhAAUAAAABwAAAAFAAAAxAEQAG8AAACWAAAADQAAAMQBEABvAAAAlwAAAA0AAADEARAAbwAAAJoAAAANAAAAxAEQAG8AAACeAAAADQAAAMQBEABvAAAAnwAAAA0AAADEARAAbwAAAIgAAAArAAAAxAEQAG8A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";
@@ -916,6 +594,7 @@ class ZeroCaptcha extends HTMLElement {
916
594
  // ── Worker lifecycle ─────────────────────────────────────────────────────
917
595
 
918
596
  _startWorker() {
597
+ console.debug("[zaptcha] _startWorker — glue length:", _WASM_GLUE_SRC.length, "| b64 length:", _WASM_BIN_B64.length);
919
598
  try {
920
599
  const externalUrl = this.getAttribute("worker-url");
921
600
  if (externalUrl) {
@@ -927,17 +606,20 @@ class ZeroCaptcha extends HTMLElement {
927
606
  }
928
607
 
929
608
  this._worker.onmessage = (e) => this._onWorkerMsg(e.data);
930
- this._worker.onerror = (e) => this._onFail(`Worker error: ${e.message}`);
609
+ this._worker.onerror = (e) => {
610
+ console.error("[zaptcha] worker onerror:", e.message, e);
611
+ this._onFail(`Worker error: ${e.message}`);
612
+ };
931
613
 
932
- // Decode WASM bytes once and transfer ownership to the worker.
933
- // The worker receives an ArrayBuffer — no URLs, no fetch, no MIME issues.
934
614
  const wasmBin = _b64ToBuffer(_WASM_BIN_B64);
615
+ console.debug("[zaptcha] wasmBin byteLength:", wasmBin.byteLength);
935
616
 
936
617
  this._worker.postMessage(
937
618
  { type: "init", wasmGlueSrc: _WASM_GLUE_SRC, wasmBin },
938
- [wasmBin], // transfer — zero-copy, no serialization overhead
619
+ [wasmBin],
939
620
  );
940
621
  } catch (err) {
622
+ console.error("[zaptcha] _startWorker catch:", err);
941
623
  this._worker = null;
942
624
  this._onFail(`Worker init failed: ${err.message}`);
943
625
  }
@@ -956,35 +638,26 @@ class ZeroCaptcha extends HTMLElement {
956
638
 
957
639
  _onWorkerMsg(msg) {
958
640
  switch (msg.type) {
959
- case "ready": break;
960
-
961
641
  case "progress":
962
- this._progress.done = (msg.index ?? 0) + 1;
963
- this._progress.total = msg.total ?? 1;
964
- this.dispatchEvent(new CustomEvent("zaptcha-progress", {
965
- bubbles: true, composed: true,
966
- detail: {
967
- index: msg.index, nonce: msg.nonce, total: msg.total,
968
- pct: Math.round(((msg.index ?? 0) + 1) / (msg.total ?? 1) * 100),
969
- },
970
- }));
642
+ console.debug("[zaptcha] progress:", {
643
+ index: msg.index,
644
+ nonce: msg.nonce,
645
+ total: msg.total,
646
+ });
971
647
  break;
972
-
648
+
973
649
  case "success":
974
- this._state = "done";
975
- this._applyState();
976
- this.dispatchEvent(new CustomEvent("zaptcha-success", {
977
- bubbles: true, composed: true,
978
- detail: { token: msg.token },
979
- }));
650
+ console.debug("[zaptcha] success");
980
651
  break;
981
-
652
+
982
653
  case "fail":
983
- this._onFail(msg.reason || "Unknown error");
654
+ console.debug("[zaptcha] fail:", msg.reason);
984
655
  break;
656
+
657
+ default:
658
+ console.debug("[zaptcha] unknown:", msg);
985
659
  }
986
660
  }
987
-
988
661
  // ── Events ───────────────────────────────────────────────────────────────
989
662
 
990
663
  _bindEvents() {
@@ -1021,6 +694,7 @@ class ZeroCaptcha extends HTMLElement {
1021
694
  }
1022
695
 
1023
696
  _onFail(reason) {
697
+ console.error("[zaptcha] fail:", reason);
1024
698
  this._state = "error";
1025
699
  this._applyState();
1026
700
  this.dispatchEvent(new CustomEvent("zaptcha-fail", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaptcha/widget",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "type": "module",
5
5
  "main": "./dist/zaptcha-widget.js",
6
6
  "types": "./src/zaptcha.d.ts",