@enegelai/bot-widget 1.2.9 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1,14 +1,17 @@
1
- var ic = Object.defineProperty;
2
- var lc = (c, e, a) => e in c ? ic(c, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : c[e] = a;
3
- var j = (c, e, a) => (lc(c, typeof e != "symbol" ? e + "" : e, a), a);
4
- import { css as x, LitElement as ie, html as s, svg as ae } from "lit";
5
- import { property as r, customElement as k, queryAll as pc, query as le, eventOptions as qe } from "lit/decorators.js";
6
- import { unsafeHTML as B } from "lit-html/directives/unsafe-html.js";
1
+ var sc = Object.defineProperty;
2
+ var ic = (c, e, a) => e in c ? sc(c, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : c[e] = a;
3
+ var I = (c, e, a) => (ic(c, typeof e != "symbol" ? e + "" : e, a), a);
4
+ import { css as x, LitElement as ge, html as r, svg as re } from "lit";
5
+ import { property as b, customElement as _, queryAll as lc, query as ee, eventOptions as Ue } from "lit/decorators.js";
6
+ import { unsafeHTML as U } from "lit-html/directives/unsafe-html.js";
7
7
  import "@shoelace-style/shoelace/dist/themes/light.css";
8
8
  import "@shoelace-style/shoelace/dist/themes/dark.css";
9
9
  import "@shoelace-style/shoelace/dist/components/button/button.js";
10
10
  import "@shoelace-style/shoelace/dist/components/avatar/avatar.js";
11
11
  import "@shoelace-style/shoelace/dist/components/input/input.js";
12
+ import "@shoelace-style/shoelace/dist/components/option/option.js";
13
+ import "@shoelace-style/shoelace/dist/components/select/select.js";
14
+ import "@shoelace-style/shoelace/dist/components/checkbox/checkbox.js";
12
15
  import "@shoelace-style/shoelace/dist/components/textarea/textarea.js";
13
16
  import "@shoelace-style/shoelace/dist/components/dialog/dialog.js";
14
17
  import "@shoelace-style/shoelace/dist/components/tab-group/tab-group.js";
@@ -21,42 +24,42 @@ import "@shoelace-style/shoelace/dist/components/switch/switch.js";
21
24
  import "@shoelace-style/shoelace/dist/components/tooltip/tooltip.js";
22
25
  import "@shoelace-style/shoelace/dist/components/spinner/spinner.js";
23
26
  import "@shoelace-style/shoelace/dist/components/alert/alert.js";
24
- import { repeat as we } from "lit/directives/repeat.js";
25
- import { when as D } from "lit/directives/when.js";
26
- import { until as Ie } from "lit-html/directives/until.js";
27
- import hc from "markdown-it";
28
- import gc from "markdown-it-link-attributes";
27
+ import { repeat as te } from "lit/directives/repeat.js";
28
+ import { when as W } from "lit/directives/when.js";
29
+ import { until as ze } from "lit-html/directives/until.js";
30
+ import pc from "markdown-it";
31
+ import hc from "markdown-it-link-attributes";
29
32
  import "@shoelace-style/shoelace/dist/components/popup/popup.js";
30
- function De(c) {
33
+ function Ze(c) {
31
34
  return typeof c == "function" ? c() : c;
32
35
  }
33
- const ne = class ne extends Event {
36
+ const ue = class ue extends Event {
34
37
  /**
35
38
  * @param {string} key of the state that has changed
36
39
  * @param {unknown} value for the changed key
37
40
  */
38
- constructor(a, f, t) {
39
- super(ne.eventName, {
41
+ constructor(a, t, f) {
42
+ super(ue.eventName, {
40
43
  cancelable: !1
41
44
  });
42
- j(this, "key");
43
- j(this, "state");
44
- j(this, "value");
45
- this.key = a, this.value = f, this.state = t;
45
+ I(this, "key");
46
+ I(this, "state");
47
+ I(this, "value");
48
+ this.key = a, this.value = t, this.state = f;
46
49
  }
47
50
  };
48
- j(ne, "eventName", "lit-state-changed");
49
- let R = ne;
51
+ I(ue, "eventName", "lit-state-changed");
52
+ let Z = ue;
50
53
  const uc = (c, e) => e !== c && (e === e || c === c);
51
- class Q extends EventTarget {
54
+ class fe extends EventTarget {
52
55
  constructor() {
53
56
  super();
54
57
  // hold a reference to hooks
55
- j(this, "hookMap", /* @__PURE__ */ new Map());
56
- this.constructor.finalize(), this.propertyMap && [...this.propertyMap].forEach(([a, f]) => {
57
- if (f.initialValue !== void 0) {
58
- const t = De(f.initialValue);
59
- this[a] = t, f.value = t;
58
+ I(this, "hookMap", /* @__PURE__ */ new Map());
59
+ this.constructor.finalize(), this.propertyMap && [...this.propertyMap].forEach(([a, t]) => {
60
+ if (t.initialValue !== void 0) {
61
+ const f = Ze(t.initialValue);
62
+ this[a] = f, t.value = f;
60
63
  }
61
64
  });
62
65
  }
@@ -71,24 +74,24 @@ class Q extends EventTarget {
71
74
  return !1;
72
75
  this.finalized = !0;
73
76
  const a = Object.keys(this.properties || {});
74
- for (const f of a)
75
- this.createProperty(f, this.properties[f]);
77
+ for (const t of a)
78
+ this.createProperty(t, this.properties[t]);
76
79
  return !0;
77
80
  }
78
- static createProperty(a, f) {
81
+ static createProperty(a, t) {
79
82
  this.finalize();
80
- const t = typeof a == "symbol" ? Symbol() : `__${a}`, o = this.getPropertyDescriptor(a, t, f);
83
+ const f = typeof a == "symbol" ? Symbol() : `__${a}`, o = this.getPropertyDescriptor(a, f, t);
81
84
  Object.defineProperty(this.prototype, a, o);
82
85
  }
83
- static getPropertyDescriptor(a, f, t) {
84
- const o = (t == null ? void 0 : t.hasChanged) || uc;
86
+ static getPropertyDescriptor(a, t, f) {
87
+ const o = (f == null ? void 0 : f.hasChanged) || uc;
85
88
  return {
86
89
  get() {
87
- return this[f];
90
+ return this[t];
88
91
  },
89
92
  set(d) {
90
- const b = this[a];
91
- this[f] = d, o(d, b) === !0 && this.dispatchStateEvent(a, d, this);
93
+ const n = this[a];
94
+ this[t] = d, o(d, n) === !0 && this.dispatchStateEvent(a, d, this);
92
95
  },
93
96
  configurable: !0,
94
97
  enumerable: !0
@@ -99,8 +102,8 @@ class Q extends EventTarget {
99
102
  * properties marked as skipReset
100
103
  */
101
104
  reset() {
102
- this.hookMap.forEach((a) => a.reset()), [...this.propertyMap].filter(([a, f]) => !(f.skipReset === !0 || f.resetValue === void 0)).forEach(([a, f]) => {
103
- this[a] = f.resetValue;
105
+ this.hookMap.forEach((a) => a.reset()), [...this.propertyMap].filter(([a, t]) => !(t.skipReset === !0 || t.resetValue === void 0)).forEach(([a, t]) => {
106
+ this[a] = t.resetValue;
104
107
  });
105
108
  }
106
109
  /**
@@ -111,31 +114,31 @@ class Q extends EventTarget {
111
114
  * @param nameOrNames
112
115
  * @returns a unsubscribe function.
113
116
  */
114
- subscribe(a, f, t) {
115
- f && !Array.isArray(f) && (f = [f]);
117
+ subscribe(a, t, f) {
118
+ t && !Array.isArray(t) && (t = [t]);
116
119
  const o = (d) => {
117
- (!f || f.includes(d.key)) && a(d.key, d.value, this);
120
+ (!t || t.includes(d.key)) && a(d.key, d.value, this);
118
121
  };
119
- return this.addEventListener(R.eventName, o, t), () => this.removeEventListener(R.eventName, o);
122
+ return this.addEventListener(Z.eventName, o, f), () => this.removeEventListener(Z.eventName, o);
120
123
  }
121
- dispatchStateEvent(a, f, t) {
122
- this.dispatchEvent(new R(a, f, t));
124
+ dispatchStateEvent(a, t, f) {
125
+ this.dispatchEvent(new Z(a, t, f));
123
126
  }
124
127
  }
125
128
  // a map holding decorators definition.
126
- j(Q, "propertyMap"), j(Q, "properties"), j(Q, "finalized", !1);
127
- class Ue {
128
- constructor(e, a, f) {
129
- j(this, "host");
130
- j(this, "state");
131
- j(this, "callback");
132
- this.host = e, this.state = a, this.host.addController(this), this.callback = f || (() => this.host.requestUpdate());
129
+ I(fe, "propertyMap"), I(fe, "properties"), I(fe, "finalized", !1);
130
+ class Ne {
131
+ constructor(e, a, t) {
132
+ I(this, "host");
133
+ I(this, "state");
134
+ I(this, "callback");
135
+ this.host = e, this.state = a, this.host.addController(this), this.callback = t || (() => this.host.requestUpdate());
133
136
  }
134
137
  hostConnected() {
135
- this.state.addEventListener(R.eventName, this.callback), this.callback();
138
+ this.state.addEventListener(Z.eventName, this.callback), this.callback();
136
139
  }
137
140
  hostDisconnected() {
138
- this.state.removeEventListener(R.eventName, this.callback);
141
+ this.state.removeEventListener(Z.eventName, this.callback);
139
142
  }
140
143
  }
141
144
  /**
@@ -143,21 +146,21 @@ class Ue {
143
146
  * Copyright 2017 Google LLC
144
147
  * SPDX-License-Identifier: BSD-3-Clause
145
148
  */
146
- const Fe = ({ finisher: c, descriptor: e }) => (a, f) => {
147
- var t;
148
- if (f === void 0) {
149
- const o = (t = a.originalKey) !== null && t !== void 0 ? t : a.key, d = e != null ? { kind: "method", placement: "prototype", key: o, descriptor: e(a.key) } : { ...a, key: o };
150
- return c != null && (d.finisher = function(b) {
151
- c(b, o);
149
+ const We = ({ finisher: c, descriptor: e }) => (a, t) => {
150
+ var f;
151
+ if (t === void 0) {
152
+ const o = (f = a.originalKey) !== null && f !== void 0 ? f : a.key, d = e != null ? { kind: "method", placement: "prototype", key: o, descriptor: e(a.key) } : { ...a, key: o };
153
+ return c != null && (d.finisher = function(n) {
154
+ c(n, o);
152
155
  }), d;
153
156
  }
154
157
  {
155
158
  const o = a.constructor;
156
- e !== void 0 && Object.defineProperty(a, f, e(f)), c == null || c(o, f);
159
+ e !== void 0 && Object.defineProperty(a, t, e(t)), c == null || c(o, t);
157
160
  }
158
161
  };
159
- function O(c) {
160
- return Fe({
162
+ function M(c) {
163
+ return We({
161
164
  // @ts-ignore ctor is typof State and not typeof ReactiveElement
162
165
  finisher: (e, a) => {
163
166
  if (Object.getOwnPropertyDescriptor(e.prototype, a))
@@ -166,7 +169,7 @@ function O(c) {
166
169
  }
167
170
  });
168
171
  }
169
- function mc(c, e) {
172
+ function gc(c, e) {
170
173
  if (c !== null && (e === Boolean || e === Number || e === Array || e === Object))
171
174
  try {
172
175
  c = JSON.parse(c);
@@ -176,50 +179,50 @@ function mc(c, e) {
176
179
  return c;
177
180
  }
178
181
  new URL(window.location.href);
179
- const yc = {
182
+ const mc = {
180
183
  prefix: "_ls"
181
184
  };
182
185
  function V(c) {
183
- return c = { ...yc, ...c }, Fe({
186
+ return c = { ...mc, ...c }, We({
184
187
  // @ts-ignore ctor is typof State and not typeof ReactiveElement
185
188
  finisher: (e, a) => {
186
- const f = Object.getOwnPropertyDescriptor(e.prototype, a);
187
- if (!f)
189
+ const t = Object.getOwnPropertyDescriptor(e.prototype, a);
190
+ if (!t)
188
191
  throw new Error("@local-storage decorator need to be called after @property");
189
- const t = `${(c == null ? void 0 : c.prefix) || ""}_${(c == null ? void 0 : c.key) || String(a)}`, o = e.propertyMap.get(a), d = o == null ? void 0 : o.type;
192
+ const f = `${(c == null ? void 0 : c.prefix) || ""}_${(c == null ? void 0 : c.key) || String(a)}`, o = e.propertyMap.get(a), d = o == null ? void 0 : o.type;
190
193
  if (o) {
191
- const m = o.initialValue;
192
- o.initialValue = () => mc(localStorage.getItem(t), d) ?? De(m), e.propertyMap.set(a, { ...o, ...c });
194
+ const C = o.initialValue;
195
+ o.initialValue = () => gc(localStorage.getItem(f), d) ?? Ze(C), e.propertyMap.set(a, { ...o, ...c });
193
196
  }
194
- const b = f == null ? void 0 : f.set, u = {
195
- ...f,
196
- set: function(m) {
197
- m !== void 0 && localStorage.setItem(t, d === Object || d === Array ? JSON.stringify(m) : m), b && b.call(this, m);
197
+ const n = t == null ? void 0 : t.set, k = {
198
+ ...t,
199
+ set: function(C) {
200
+ C !== void 0 && localStorage.setItem(f, d === Object || d === Array ? JSON.stringify(C) : C), n && n.call(this, C);
198
201
  }
199
202
  };
200
- Object.defineProperty(e.prototype, a, u);
203
+ Object.defineProperty(e.prototype, a, k);
201
204
  }
202
205
  });
203
206
  }
204
- var vc = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
205
- function wc(c) {
207
+ var yc = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
208
+ function vc(c) {
206
209
  return c && c.__esModule && Object.prototype.hasOwnProperty.call(c, "default") ? c.default : c;
207
210
  }
208
- var Ze = { exports: {} };
211
+ var Je = { exports: {} };
209
212
  (function(c) {
210
213
  (function(e, a) {
211
214
  c.exports ? c.exports = a() : e.log = a();
212
- })(vc, function() {
215
+ })(yc, function() {
213
216
  var e = function() {
214
- }, a = "undefined", f = typeof window !== a && typeof window.navigator !== a && /Trident\/|MSIE /.test(window.navigator.userAgent), t = [
217
+ }, a = "undefined", t = typeof window !== a && typeof window.navigator !== a && /Trident\/|MSIE /.test(window.navigator.userAgent), f = [
215
218
  "trace",
216
219
  "debug",
217
220
  "info",
218
221
  "warn",
219
222
  "error"
220
223
  ];
221
- function o(p, y) {
222
- var w = p[y];
224
+ function o(p, m) {
225
+ var w = p[m];
223
226
  if (typeof w.bind == "function")
224
227
  return w.bind(p);
225
228
  try {
@@ -233,70 +236,70 @@ var Ze = { exports: {} };
233
236
  function d() {
234
237
  console.log && (console.log.apply ? console.log.apply(console, arguments) : Function.prototype.apply.apply(console.log, [console, arguments])), console.trace && console.trace();
235
238
  }
236
- function b(p) {
237
- return p === "debug" && (p = "log"), typeof console === a ? !1 : p === "trace" && f ? d : console[p] !== void 0 ? o(console, p) : console.log !== void 0 ? o(console, "log") : e;
239
+ function n(p) {
240
+ return p === "debug" && (p = "log"), typeof console === a ? !1 : p === "trace" && t ? d : console[p] !== void 0 ? o(console, p) : console.log !== void 0 ? o(console, "log") : e;
238
241
  }
239
- function h(p, y) {
240
- for (var w = 0; w < t.length; w++) {
241
- var l = t[w];
242
- this[l] = w < p ? e : this.methodFactory(l, p, y);
242
+ function g(p, m) {
243
+ for (var w = 0; w < f.length; w++) {
244
+ var l = f[w];
245
+ this[l] = w < p ? e : this.methodFactory(l, p, m);
243
246
  }
244
247
  this.log = this.debug;
245
248
  }
246
- function u(p, y, w) {
249
+ function k(p, m, w) {
247
250
  return function() {
248
- typeof console !== a && (h.call(this, y, w), this[p].apply(this, arguments));
251
+ typeof console !== a && (g.call(this, m, w), this[p].apply(this, arguments));
249
252
  };
250
253
  }
251
- function m(p, y, w) {
252
- return b(p) || u.apply(this, arguments);
254
+ function C(p, m, w) {
255
+ return n(p) || k.apply(this, arguments);
253
256
  }
254
- function ue(p, y, w) {
255
- var l = this, Oe;
256
- y = y ?? "WARN";
257
- var A = "loglevel";
258
- typeof p == "string" ? A += ":" + p : typeof p == "symbol" && (A = void 0);
257
+ function we(p, m, w) {
258
+ var l = this, Pe;
259
+ m = m ?? "WARN";
260
+ var L = "loglevel";
261
+ typeof p == "string" ? L += ":" + p : typeof p == "symbol" && (L = void 0);
259
262
  function rc(i) {
260
- var T = (t[i] || "silent").toUpperCase();
261
- if (!(typeof window === a || !A)) {
263
+ var F = (f[i] || "silent").toUpperCase();
264
+ if (!(typeof window === a || !L)) {
262
265
  try {
263
- window.localStorage[A] = T;
266
+ window.localStorage[L] = F;
264
267
  return;
265
268
  } catch {
266
269
  }
267
270
  try {
268
- window.document.cookie = encodeURIComponent(A) + "=" + T + ";";
271
+ window.document.cookie = encodeURIComponent(L) + "=" + F + ";";
269
272
  } catch {
270
273
  }
271
274
  }
272
275
  }
273
- function He() {
276
+ function Ee() {
274
277
  var i;
275
- if (!(typeof window === a || !A)) {
278
+ if (!(typeof window === a || !L)) {
276
279
  try {
277
- i = window.localStorage[A];
280
+ i = window.localStorage[L];
278
281
  } catch {
279
282
  }
280
283
  if (typeof i === a)
281
284
  try {
282
- var T = window.document.cookie, G = T.indexOf(
283
- encodeURIComponent(A) + "="
285
+ var F = window.document.cookie, ce = F.indexOf(
286
+ encodeURIComponent(L) + "="
284
287
  );
285
- G !== -1 && (i = /^([^;]+)/.exec(T.slice(G))[1]);
288
+ ce !== -1 && (i = /^([^;]+)/.exec(F.slice(ce))[1]);
286
289
  } catch {
287
290
  }
288
291
  return l.levels[i] === void 0 && (i = void 0), i;
289
292
  }
290
293
  }
291
- function sc() {
292
- if (!(typeof window === a || !A)) {
294
+ function bc() {
295
+ if (!(typeof window === a || !L)) {
293
296
  try {
294
- window.localStorage.removeItem(A);
297
+ window.localStorage.removeItem(L);
295
298
  return;
296
299
  } catch {
297
300
  }
298
301
  try {
299
- window.document.cookie = encodeURIComponent(A) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
302
+ window.document.cookie = encodeURIComponent(L) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
300
303
  } catch {
301
304
  }
302
305
  }
@@ -308,47 +311,47 @@ var Ze = { exports: {} };
308
311
  WARN: 3,
309
312
  ERROR: 4,
310
313
  SILENT: 5
311
- }, l.methodFactory = w || m, l.getLevel = function() {
312
- return Oe;
313
- }, l.setLevel = function(i, T) {
314
+ }, l.methodFactory = w || C, l.getLevel = function() {
315
+ return Pe;
316
+ }, l.setLevel = function(i, F) {
314
317
  if (typeof i == "string" && l.levels[i.toUpperCase()] !== void 0 && (i = l.levels[i.toUpperCase()]), typeof i == "number" && i >= 0 && i <= l.levels.SILENT) {
315
- if (Oe = i, T !== !1 && rc(i), h.call(l, i, p), typeof console === a && i < l.levels.SILENT)
318
+ if (Pe = i, F !== !1 && rc(i), g.call(l, i, p), typeof console === a && i < l.levels.SILENT)
316
319
  return "No console available for logging";
317
320
  } else
318
321
  throw "log.setLevel() called with invalid level: " + i;
319
322
  }, l.setDefaultLevel = function(i) {
320
- y = i, He() || l.setLevel(i, !1);
323
+ m = i, Ee() || l.setLevel(i, !1);
321
324
  }, l.resetLevel = function() {
322
- l.setLevel(y, !1), sc();
325
+ l.setLevel(m, !1), bc();
323
326
  }, l.enableAll = function(i) {
324
327
  l.setLevel(l.levels.TRACE, i);
325
328
  }, l.disableAll = function(i) {
326
329
  l.setLevel(l.levels.SILENT, i);
327
330
  };
328
- var ye = He();
329
- ye == null && (ye = y), l.setLevel(ye, !1);
331
+ var ke = Ee();
332
+ ke == null && (ke = m), l.setLevel(ke, !1);
330
333
  }
331
- var S = new ue(), me = {};
332
- S.getLogger = function(y) {
333
- if (typeof y != "symbol" && typeof y != "string" || y === "")
334
+ var O = new we(), xe = {};
335
+ O.getLogger = function(m) {
336
+ if (typeof m != "symbol" && typeof m != "string" || m === "")
334
337
  throw new TypeError("You must supply a name when creating a logger.");
335
- var w = me[y];
336
- return w || (w = me[y] = new ue(
337
- y,
338
- S.getLevel(),
339
- S.methodFactory
338
+ var w = xe[m];
339
+ return w || (w = xe[m] = new we(
340
+ m,
341
+ O.getLevel(),
342
+ O.methodFactory
340
343
  )), w;
341
344
  };
342
- var bc = typeof window !== a ? window.log : void 0;
343
- return S.noConflict = function() {
344
- return typeof window !== a && window.log === S && (window.log = bc), S;
345
- }, S.getLoggers = function() {
346
- return me;
347
- }, S.default = S, S;
345
+ var dc = typeof window !== a ? window.log : void 0;
346
+ return O.noConflict = function() {
347
+ return typeof window !== a && window.log === O && (window.log = dc), O;
348
+ }, O.getLoggers = function() {
349
+ return xe;
350
+ }, O.default = O, O;
348
351
  });
349
- })(Ze);
350
- var xc = Ze.exports;
351
- const pe = /* @__PURE__ */ wc(xc), kc = x`
352
+ })(Je);
353
+ var wc = Je.exports;
354
+ const me = /* @__PURE__ */ vc(wc), xc = x`
352
355
  :host {
353
356
  }
354
357
  .cb-wrapper {
@@ -415,7 +418,7 @@ const pe = /* @__PURE__ */ wc(xc), kc = x`
415
418
  border-radius: 0;
416
419
  }
417
420
  }
418
- `, I = x`
421
+ `, T = x`
419
422
  :host {
420
423
  --primary-color: var(--sl-color-primary-600);
421
424
  }
@@ -482,8 +485,8 @@ const pe = /* @__PURE__ */ wc(xc), kc = x`
482
485
  .text-button:hover {
483
486
  text-decoration: underline;
484
487
  }
485
- `, Ne = x`
486
- ${I}
488
+ `, Ke = x`
489
+ ${T}
487
490
 
488
491
  :host {
489
492
  display: inline-flex;
@@ -505,97 +508,97 @@ const pe = /* @__PURE__ */ wc(xc), kc = x`
505
508
  color: white;
506
509
  }
507
510
  `;
508
- var _c = Object.defineProperty, Cc = Object.getOwnPropertyDescriptor, Me = (c, e, a, f) => {
509
- for (var t = f > 1 ? void 0 : f ? Cc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
510
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
511
- return f && t && _c(e, a, t), t;
511
+ var kc = Object.defineProperty, _c = Object.getOwnPropertyDescriptor, Ie = (c, e, a, t) => {
512
+ for (var f = t > 1 ? void 0 : t ? _c(e, a) : e, o = c.length - 1, d; o >= 0; o--)
513
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
514
+ return t && f && kc(e, a, f), f;
512
515
  };
513
- let K = class extends ie {
516
+ let G = class extends ge {
514
517
  constructor() {
515
518
  super(...arguments), this.color = "primary", this.svg = "";
516
519
  }
517
520
  render() {
518
- return s`<span class="cb-icon" part="base">${B(this.svg)}</span>`;
521
+ return r`<span class="cb-icon" part="base">${U(this.svg)}</span>`;
519
522
  }
520
523
  };
521
- K.styles = Ne;
522
- Me([
523
- r({ type: String })
524
- ], K.prototype, "color", 2);
525
- Me([
526
- r({ type: String })
527
- ], K.prototype, "svg", 2);
528
- K = Me([
529
- k("cb-icon")
530
- ], K);
531
- let $c = (c) => crypto.getRandomValues(new Uint8Array(c)), jc = (c, e, a) => {
532
- let f = (2 << Math.log(c.length - 1) / Math.LN2) - 1, t = -~(1.6 * f * e / c.length);
524
+ G.styles = Ke;
525
+ Ie([
526
+ b({ type: String })
527
+ ], G.prototype, "color", 2);
528
+ Ie([
529
+ b({ type: String })
530
+ ], G.prototype, "svg", 2);
531
+ G = Ie([
532
+ _("cb-icon")
533
+ ], G);
534
+ let $c = (c) => crypto.getRandomValues(new Uint8Array(c)), Cc = (c, e, a) => {
535
+ let t = (2 << Math.log(c.length - 1) / Math.LN2) - 1, f = -~(1.6 * t * e / c.length);
533
536
  return (o = e) => {
534
537
  let d = "";
535
538
  for (; ; ) {
536
- let b = a(t), h = t;
537
- for (; h--; )
538
- if (d += c[b[h] & f] || "", d.length === o)
539
+ let n = a(f), g = f;
540
+ for (; g--; )
541
+ if (d += c[n[g] & t] || "", d.length === o)
539
542
  return d;
540
543
  }
541
544
  };
542
- }, Mc = (c, e = 21) => jc(c, e, $c);
543
- const Sc = Mc("1234567890abcdefghijklmnopqrstuvwxyz", 10);
544
- function xe(c = 10) {
545
+ }, jc = (c, e = 21) => Cc(c, e, $c);
546
+ const Sc = jc("1234567890abcdefghijklmnopqrstuvwxyz", 10);
547
+ function Ce(c = 10) {
545
548
  return Sc(c);
546
549
  }
547
- function Ac(c) {
550
+ function Mc(c) {
548
551
  return new Promise((e, a) => {
549
552
  try {
550
553
  navigator.clipboard.writeText(c).then(() => {
551
554
  e(c);
552
555
  });
553
- } catch (f) {
554
- a(f);
556
+ } catch (t) {
557
+ a(t);
555
558
  }
556
559
  });
557
560
  }
558
- function Lc(c = !0) {
561
+ function Ac(c = !0) {
559
562
  return new Promise((e) => {
560
563
  const a = document.createElement("input");
561
564
  a.type = "file", c && (a.multiple = !0), a.style.display = "none", a.addEventListener("change", () => {
562
- const f = Array.prototype.slice.call(a.files);
563
- e(f);
565
+ const t = Array.prototype.slice.call(a.files);
566
+ e(t);
564
567
  }), a.click();
565
568
  });
566
569
  }
567
- const _ = pe.noConflict();
568
- _.setLevel("info");
569
- class Oc {
570
+ const $ = me.noConflict();
571
+ $.setLevel("info");
572
+ class Ic {
570
573
  constructor(e = {}) {
571
- this.id = 0, this.url = (e == null ? void 0 : e.url) || null, this.orgId = (e == null ? void 0 : e.orgId) || null, this.botId = (e == null ? void 0 : e.botId) || null, this.convId = (e == null ? void 0 : e.convId) || null, this._options = e || {}, this._ws = null, this.started = !1, this.connected = !1, this.onMessage = (e == null ? void 0 : e.onMessage) || null, this.queue = [], this.pause = (a) => new Promise((f) => setTimeout(f, a)), _.info(`WSC: Created, url: ${this.url}`);
574
+ this.id = 0, this.url = (e == null ? void 0 : e.url) || null, this.orgId = (e == null ? void 0 : e.orgId) || null, this.botId = (e == null ? void 0 : e.botId) || null, this.convId = (e == null ? void 0 : e.convId) || null, this._options = e || {}, this._ws = null, this.started = !1, this.connected = !1, this.onMessage = (e == null ? void 0 : e.onMessage) || null, this.queue = [], this.pause = (a) => new Promise((t) => setTimeout(t, a)), $.info(`WSC: Created, url: ${this.url}`);
572
575
  }
573
576
  connect(e = {}) {
574
577
  if (this.url = (e == null ? void 0 : e.url) || this.url, this.connected = !1, !this.url)
575
- return _.error("WSC: URL must be provided to connect"), null;
578
+ return $.error("WSC: URL must be provided to connect"), null;
576
579
  const a = this.url;
577
- _.info(`WSC: Connecting to ${a} ...`), this._ws = new WebSocket(a);
578
- let f = setTimeout(() => {
579
- _.error("WSC: connected message not received in time - terminating"), this._ws.close(), this._ws = null, this.connected = !1;
580
+ $.info(`WSC: Connecting to ${a} ...`), this._ws = new WebSocket(a);
581
+ let t = setTimeout(() => {
582
+ $.error("WSC: connected message not received in time - terminating"), this._ws.close(), this._ws = null, this.connected = !1;
580
583
  }, 15e3);
581
584
  this._ws.onopen = () => {
582
- _.info(`WSC: Connection to ${a} opened`);
583
- }, this._ws.onmessage = (t) => {
584
- let o = (t == null ? void 0 : t.data) || null;
585
+ $.info(`WSC: Connection to ${a} opened`);
586
+ }, this._ws.onmessage = (f) => {
587
+ let o = (f == null ? void 0 : f.data) || null;
585
588
  if (!o)
586
589
  return;
587
590
  let d = null;
588
591
  try {
589
592
  d = JSON.parse(o);
590
593
  } catch {
591
- _.error(`Failed to parse message: ${o}`);
594
+ $.error(`Failed to parse message: ${o}`);
592
595
  return;
593
596
  }
594
- (d == null ? void 0 : d.type) === "connected" && (_.info(`WS[${this.id}] Connected`), clearTimeout(f), this.connected = !0, this.sendQueuedMessages()), this.handleWscMessage(d);
595
- }, this._ws.onerror = (t) => {
596
- _.error("WSC: Socket error"), clearTimeout(f), this.connected = !1, this._ws = null;
597
- }, this._ws.onclose = (t) => {
598
- _.info(`WSC: Closed - code:${t.code}, reason:"${t.reason}"`), this.connected = !1, this._ws = null, this.reconnect();
597
+ (d == null ? void 0 : d.type) === "connected" && ($.info(`WS[${this.id}] Connected`), clearTimeout(t), this.connected = !0, this.sendQueuedMessages()), this.handleWscMessage(d);
598
+ }, this._ws.onerror = (f) => {
599
+ $.error("WSC: Socket error"), clearTimeout(t), this.connected = !1, this._ws = null;
600
+ }, this._ws.onclose = (f) => {
601
+ $.info(`WSC: Closed - code:${f.code}, reason:"${f.reason}"`), this.connected = !1, this._ws = null, this.reconnect();
599
602
  };
600
603
  }
601
604
  reconnect() {
@@ -605,10 +608,10 @@ class Oc {
605
608
  }
606
609
  disconnect() {
607
610
  if (!this._ws) {
608
- _.info("WSC: already disconnected");
611
+ $.info("WSC: already disconnected");
609
612
  return;
610
613
  }
611
- _.info("WSC: disconnect"), this._ws.close();
614
+ $.info("WSC: disconnect"), this._ws.close();
612
615
  }
613
616
  async start() {
614
617
  this.started = !0, this.connect();
@@ -620,11 +623,11 @@ class Oc {
620
623
  async startOld() {
621
624
  let e = 1, a = !0;
622
625
  for (; a; ) {
623
- if (_.info(`WSC: start: connecting, attempt ${e}`), await this.connect(), this.connected)
624
- return _.info("WSC: connected"), !0;
626
+ if ($.info(`WSC: start: connecting, attempt ${e}`), await this.connect(), this.connected)
627
+ return $.info("WSC: connected"), !0;
625
628
  e++, a = e <= 4, a && await this.pause(1e3);
626
629
  }
627
- return _.error(`WSC: start: failed to connect after ${e} attempts, exiting`), !1;
630
+ return $.error(`WSC: start: failed to connect after ${e} attempts, exiting`), !1;
628
631
  }
629
632
  handleWscMessage(e) {
630
633
  this.onMessage && typeof this.onMessage == "function" && this.onMessage(e);
@@ -639,7 +642,7 @@ class Oc {
639
642
  sendQueuedMessages() {
640
643
  if (Array.isArray(this.queue) && this.queue.length > 0)
641
644
  for (let e = 0; e < this.queue.length; e++)
642
- _.info("Sending queued message", this.queue[e]), this._ws.send(this.queue[e]);
645
+ $.info("Sending queued message", this.queue[e]), this._ws.send(this.queue[e]);
643
646
  this.queue = [];
644
647
  }
645
648
  // Request assumes that response will be received.
@@ -674,33 +677,116 @@ class Oc {
674
677
  });
675
678
  }*/
676
679
  }
677
- const Hc = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
678
- var Ic = Object.defineProperty, Pc = Object.getOwnPropertyDescriptor, H = (c, e, a, f) => {
679
- for (var t = f > 1 ? void 0 : f ? Pc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
680
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
681
- return f && t && Ic(e, a, t), t;
680
+ function h(c) {
681
+ return c != null && typeof c == "object" && c["@@functional/placeholder"] === !0;
682
+ }
683
+ function q(c) {
684
+ return function e(a) {
685
+ return arguments.length === 0 || h(a) ? e : c.apply(this, arguments);
686
+ };
687
+ }
688
+ function P(c) {
689
+ return function e(a, t) {
690
+ switch (arguments.length) {
691
+ case 0:
692
+ return e;
693
+ case 1:
694
+ return h(a) ? e : q(function(f) {
695
+ return c(a, f);
696
+ });
697
+ default:
698
+ return h(a) && h(t) ? e : h(a) ? q(function(f) {
699
+ return c(f, t);
700
+ }) : h(t) ? q(function(f) {
701
+ return c(a, f);
702
+ }) : c(a, t);
703
+ }
704
+ };
705
+ }
706
+ function Oc(c) {
707
+ return function e(a, t, f) {
708
+ switch (arguments.length) {
709
+ case 0:
710
+ return e;
711
+ case 1:
712
+ return h(a) ? e : P(function(o, d) {
713
+ return c(a, o, d);
714
+ });
715
+ case 2:
716
+ return h(a) && h(t) ? e : h(a) ? P(function(o, d) {
717
+ return c(o, t, d);
718
+ }) : h(t) ? P(function(o, d) {
719
+ return c(a, o, d);
720
+ }) : q(function(o) {
721
+ return c(a, t, o);
722
+ });
723
+ default:
724
+ return h(a) && h(t) && h(f) ? e : h(a) && h(t) ? P(function(o, d) {
725
+ return c(o, d, f);
726
+ }) : h(a) && h(f) ? P(function(o, d) {
727
+ return c(o, t, d);
728
+ }) : h(t) && h(f) ? P(function(o, d) {
729
+ return c(a, o, d);
730
+ }) : h(a) ? q(function(o) {
731
+ return c(o, t, f);
732
+ }) : h(t) ? q(function(o) {
733
+ return c(a, o, f);
734
+ }) : h(f) ? q(function(o) {
735
+ return c(a, t, o);
736
+ }) : c(a, t, f);
737
+ }
738
+ };
739
+ }
740
+ const Lc = Number.isInteger || function(e) {
741
+ return e << 0 === e;
682
742
  };
683
- const $ = pe.noConflict();
684
- $.setLevel("info");
685
- const q = "cb_";
686
- class M extends Q {
743
+ function Hc(c) {
744
+ return Object.prototype.toString.call(c) === "[object String]";
745
+ }
746
+ var Pc = /* @__PURE__ */ P(function(e, a) {
747
+ var t = e < 0 ? a.length + e : e;
748
+ return Hc(a) ? a.charAt(t) : a[t];
749
+ });
750
+ const Ec = Pc;
751
+ var zc = /* @__PURE__ */ P(function(e, a) {
752
+ return a == null || a !== a ? e : a;
753
+ });
754
+ const Tc = zc;
755
+ var Bc = /* @__PURE__ */ P(function(e, a) {
756
+ return e.map(function(t) {
757
+ for (var f = a, o = 0, d; o < t.length; ) {
758
+ if (f == null)
759
+ return;
760
+ d = t[o], f = Lc(d) ? Ec(d, f) : f[d], o += 1;
761
+ }
762
+ return f;
763
+ });
764
+ });
765
+ const Rc = Bc;
766
+ var Vc = /* @__PURE__ */ P(function(e, a) {
767
+ return Rc([e], a)[0];
768
+ });
769
+ const Dc = Vc;
770
+ var Fc = /* @__PURE__ */ Oc(function(e, a, t) {
771
+ return Tc(e, Dc(a, t));
772
+ });
773
+ const _e = Fc, qc = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
774
+ var Uc = Object.defineProperty, Zc = Object.getOwnPropertyDescriptor, A = (c, e, a, t) => {
775
+ for (var f = t > 1 ? void 0 : t ? Zc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
776
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
777
+ return t && f && Uc(e, a, f), f;
778
+ };
779
+ const y = me.noConflict();
780
+ y.setLevel("info");
781
+ const E = "cb_";
782
+ class j extends fe {
687
783
  constructor() {
688
784
  super(...arguments), this.actionIdCounter = 0, this.wsClient = null, this.replyMessage = null;
689
785
  }
690
786
  // this is called at startup
691
787
  setSetting(e) {
692
- $.info("appState: Startup: setSetting", e), this.setting = e, this.initBot().catch((a) => {
693
- $.info(`Exception during bot initialization: ${a.message}`);
694
- });
695
- }
696
- clearConversation() {
697
- this.wsClient && (this.wsClient.stop().then(() => {
698
- }), this.wsClient = null), this.conversationId = xe(), this.connectWs = "false", this.messages = [], this.actions = [], this.addMessage({
699
- author: "assistant",
700
- type: "text",
701
- data: {
702
- text: this.setting.welcomeMessage
703
- }
788
+ y.info("appState: Startup: setSetting", e), this.setting = e, this.initBot().catch((a) => {
789
+ y.info(`Exception during bot initialization: ${a.message}`);
704
790
  });
705
791
  }
706
792
  // set language
@@ -714,49 +800,88 @@ class M extends Q {
714
800
  async initBot() {
715
801
  if (!this.botSettingsInitialized) {
716
802
  const a = `${this.setting.url.startsWith("localhost") ? "http" : "https"}://${this.setting.url}/api/bot/settings/${this.setting.orgId}/${this.setting.botId}`;
717
- $.info(`Getting bot settings at ${a} ...`);
718
- let f = null, t = null;
803
+ y.info(`Getting bot settings at ${a} ...`);
804
+ let t = null, f = null;
719
805
  try {
720
- f = await fetch(a, {
806
+ t = await fetch(a, {
721
807
  headers: {
722
808
  "Access-Control-Allow-Origin": "null",
723
809
  "X-Enegel-Signature": this.setting.botId
724
810
  }
725
- }), !f.ok || f.status !== 200 ? $.error(`Failed to get bot ${this.setting.botId} settings: ${f.status} ${f.statusText}`) : t = await f.json();
811
+ }), !t.ok || t.status !== 200 ? y.error(`Failed to get bot ${this.setting.botId} settings: ${t.status} ${t.statusText}`) : f = await t.json();
726
812
  } catch (o) {
727
- $.error(`Failed to get bot ${this.setting.botId} settings: ${o.message}`), t = null;
813
+ y.error(`Failed to get bot ${this.setting.botId} settings: ${o.message}`), f = null;
728
814
  }
729
- if (this.botSettingsInitialized = !0, !t) {
730
- $.error("No bot settings available - bot disabled"), this.disabled = !0;
815
+ if (this.botSettingsInitialized = !0, this.botSettings = f, !f) {
816
+ y.error("No bot settings available - bot disabled"), this.disabled = !0;
731
817
  return;
732
818
  }
733
- $.info("Got bot settings - bot is enabled", t), this.disabled = !1, this.setting.welcomeMessage = (t == null ? void 0 : t.welcomeMessage) || "How can I help ?", this.setting.engageMessage = (t == null ? void 0 : t.engageMessage) || "How can I help ?", this.setting.engageTimeout = (t == null ? void 0 : t.engageTimeout) || 5, setTimeout(() => {
819
+ y.info("Got bot settings - bot is enabled", f), this.disabled = !1, this.setting.welcomeMessage = (f == null ? void 0 : f.welcomeMessage) || "How can I help ?", this.setting.engageMessage = (f == null ? void 0 : f.engageMessage) || "How can I help ?", this.setting.engageTimeout = (f == null ? void 0 : f.engageTimeout) || 5, this.initConversation(), setTimeout(() => {
734
820
  this.showEngagePopup();
735
821
  }, this.setting.engageTimeout * 1e3);
736
822
  }
737
- Array.isArray(this.messages) && this.messages.length <= 0 && this.addMessage({
823
+ this.connectWs === "true" && (y.info("appState: connectWs is true"), this.getWsClient().catch((e) => {
824
+ y.error(`Exception during ws client startup: ${e.message}`);
825
+ }));
826
+ }
827
+ initConversation() {
828
+ if (Date.now() - this.lastConversationUpdate > 24 * 60 * 60 * 1e3) {
829
+ this.clearConversation();
830
+ return;
831
+ }
832
+ this.initStartupForm();
833
+ }
834
+ clearConversation() {
835
+ this.wsClient && (this.wsClient.stop().then(() => {
836
+ }), this.wsClient = null), this.conversationId = Ce(), this.lastConversationUpdate = Date.now(), this.connectWs = "false", this.messages = [], this.actions = [], this.addMessage({
738
837
  author: "assistant",
739
838
  type: "text",
740
839
  data: {
741
840
  text: this.setting.welcomeMessage
742
841
  }
743
- }), this.connectWs === "true" && ($.info("appState: connectWs is true"), this.getWsClient().catch((e) => {
744
- $.error(`Exception during ws client startup: ${e.message}`);
745
- }));
842
+ }), this.initStartupForm();
843
+ }
844
+ initStartupForm() {
845
+ const e = _e(null, ["startupForm"], this.botSettings), a = _e(null, ["startupForm", "name"], this.botSettings);
846
+ if (!e || !a) {
847
+ y.info("Startup form not present");
848
+ return;
849
+ }
850
+ const t = _e(null, ["startupForm", "fields"], this.botSettings);
851
+ if (!Array.isArray(t) || t.length <= 0) {
852
+ y.info("Startup form has no fields");
853
+ return;
854
+ }
855
+ const f = `${E}${this.setting.botId}.${this.conversationId}.form.${a}`, o = localStorage.getItem(f);
856
+ if (o) {
857
+ let d = null;
858
+ try {
859
+ d = JSON.parse(o);
860
+ } catch (n) {
861
+ y.error(`Failed to parse stored form data: ${n.message}`), d = null;
862
+ }
863
+ if (d) {
864
+ this.sendFormData(a, d).catch((n) => {
865
+ y.error(`Error when submitting form: ${n.message}`);
866
+ });
867
+ return;
868
+ }
869
+ }
870
+ this.form = e;
746
871
  }
747
872
  showEngagePopup() {
748
873
  if (this.open)
749
874
  return;
750
- $.info("Engaging User !"), this.engage = !0;
875
+ y.info("Engaging User !"), this.engage = !0;
751
876
  const e = (o) => {
752
877
  const d = new Uint8Array(o.length / 2);
753
- for (let b = 0; b < d.length; b++)
754
- d[b] = parseInt(o.substr(b * 2, 2), 16);
878
+ for (let n = 0; n < d.length; n++)
879
+ d[n] = parseInt(o.substr(n * 2, 2), 16);
755
880
  return d;
756
881
  };
757
- let a = new Blob([e(Hc)], { type: "application/octet-stream" });
758
- const f = URL.createObjectURL(a);
759
- new Audio(f).play();
882
+ let a = new Blob([e(qc)], { type: "application/octet-stream" });
883
+ const t = URL.createObjectURL(a);
884
+ new Audio(t).play();
760
885
  }
761
886
  // Lazy initialization: avoid connecting until we actually need to send something
762
887
  // TODO Depending on state, start ws & connect immediately when initialized
@@ -765,17 +890,17 @@ class M extends Q {
765
890
  if (this.wsClient)
766
891
  return this.wsClient;
767
892
  const a = `${this.setting.url.startsWith("localhost") ? "ws" : "wss"}://${this.setting.url}/api/bot/connect/${this.setting.orgId}/${this.setting.botId}/${this.conversationId}`;
768
- return $.info(`Initiating ws connection to ${a} ...`), this.wsClient = new Oc({
893
+ return y.info(`Initiating ws connection to ${a} ...`), this.wsClient = new Ic({
769
894
  url: a,
770
895
  orgId: this.setting.orgId,
771
896
  botId: this.setting.botId,
772
897
  convId: this.conversationId
773
- }), await this.wsClient.start(), this.wsClient.onMessage = (f) => {
774
- this.handleWscMessage(f);
898
+ }), await this.wsClient.start(), this.wsClient.onMessage = (t) => {
899
+ this.handleWscMessage(t);
775
900
  }, this.wsClient;
776
901
  }
777
902
  handleWscMessage(e) {
778
- switch (e == null ? void 0 : e.type) {
903
+ switch (this.lastConversationUpdate = Date.now(), e == null ? void 0 : e.type) {
779
904
  case "message": {
780
905
  if (this.replyMessage)
781
906
  this.replyMessage.data.text = e.text, this.updateMessage(this.replyMessage, ""), this.replyMessage = null;
@@ -788,8 +913,8 @@ class M extends Q {
788
913
  }
789
914
  };
790
915
  "userName" in e && (a.data.userName = e.userName, this.connectWs = "true"), "userAvatar" in e && (a.data.userAvatar = e.userAvatar, this.connectWs = "true");
791
- const f = this.formatMessage(a);
792
- this.messages = this.messages.concat([f]);
916
+ const t = this.formatMessage(a);
917
+ this.messages = this.messages.concat([t]);
793
918
  }
794
919
  break;
795
920
  }
@@ -816,23 +941,23 @@ class M extends Q {
816
941
  }
817
942
  addActions(e) {
818
943
  if (Array.isArray(e) && e.length > 0) {
819
- const a = e.map((f) => Object.assign(f, { internalId: this.actionIdCounter++ }));
944
+ const a = e.map((t) => Object.assign(t, { internalId: this.actionIdCounter++ }));
820
945
  this.actions = this.actions.concat(a);
821
946
  }
822
947
  }
823
948
  removeAction(e) {
824
- const a = this.actions.findIndex((f) => f.internalId === e);
949
+ const a = this.actions.findIndex((t) => t.internalId === e);
825
950
  if (a !== -1) {
826
951
  this.actions.splice(a, 1);
827
- const f = [];
828
- this.actions = f.concat(this.actions);
952
+ const t = [];
953
+ this.actions = t.concat(this.actions);
829
954
  }
830
955
  }
831
956
  async sendMessage(e) {
832
- e = this.formatMessage(e), $.info("Send Message:", e), this.messages = this.messages.concat([e]);
957
+ e = this.formatMessage(e), y.info("Send Message:", e), this.messages = this.messages.concat([e]), this.lastConversationUpdate = Date.now();
833
958
  const a = await this.getWsClient();
834
959
  if (!a) {
835
- $.error("Error - failed to obtain ws client"), this.replyMessage = null;
960
+ y.error("Error - failed to obtain ws client"), this.replyMessage = null;
836
961
  return;
837
962
  }
838
963
  a.sendMessage({
@@ -844,7 +969,7 @@ class M extends Q {
844
969
  // TODO revisit below
845
970
  formatMessage(e) {
846
971
  var a;
847
- return e.id || (e.id = xe()), e.timestamp = Date.now(), e.author === "assistant" && (e.replyId = (a = this.messages[this.messages.length - 1]) == null ? void 0 : a.id), e;
972
+ return e.id || (e.id = Ce()), e.timestamp = Date.now(), e.author === "assistant" && (e.replyId = (a = this.messages[this.messages.length - 1]) == null ? void 0 : a.id), e;
848
973
  }
849
974
  // add message
850
975
  addMessage(e) {
@@ -861,8 +986,8 @@ class M extends Q {
861
986
  }
862
987
  // update message
863
988
  updateMessage(e, a) {
864
- const f = this.formatMessage(e);
865
- return f.isThinking = !1, a && (f.data.text += a), this.messages = this.messages.map((t) => t.id === f.id ? f : t), f;
989
+ const t = this.formatMessage(e);
990
+ return t.isThinking = !1, a && (t.data.text += a), this.messages = this.messages.map((f) => f.id === t.id ? t : f), t;
866
991
  }
867
992
  // remove message
868
993
  removeMessage(e) {
@@ -872,33 +997,58 @@ class M extends Q {
872
997
  clearMessages() {
873
998
  this.messages = [];
874
999
  }
1000
+ // Submit current form data
1001
+ async submitForm(e) {
1002
+ if (!this.form) {
1003
+ y.info("submitForm: No form is active - ignored");
1004
+ return;
1005
+ }
1006
+ const a = `${E}${this.setting.botId}.${this.conversationId}.form.${this.form.name}`;
1007
+ await this.sendFormData(this.form.name, e), localStorage.setItem(a, JSON.stringify(e)), this.form = null;
1008
+ }
1009
+ async sendFormData(e, a) {
1010
+ const t = await this.getWsClient();
1011
+ if (!t) {
1012
+ y.error("Error - failed to obtain ws client");
1013
+ return;
1014
+ }
1015
+ t.sendMessage({
1016
+ type: "form",
1017
+ name: e,
1018
+ data: a
1019
+ });
1020
+ }
875
1021
  }
876
- H([
877
- V({ prefix: q }),
878
- O({ value: "en" })
879
- ], M.prototype, "language", 2);
880
- H([
881
- V({ prefix: q }),
882
- O({ value: "light" })
883
- ], M.prototype, "theme", 2);
884
- H([
885
- V({ prefix: q }),
886
- O({ type: Boolean, value: !1 })
887
- ], M.prototype, "open", 2);
888
- H([
889
- V({ prefix: q }),
890
- O({ value: "false" })
891
- ], M.prototype, "connectWs", 2);
892
- H([
893
- V({ prefix: q }),
894
- O({ value: xe() })
895
- ], M.prototype, "conversationId", 2);
896
- H([
897
- V({ prefix: q }),
898
- O({ type: Array, value: [] })
899
- ], M.prototype, "messages", 2);
900
- H([
901
- O({
1022
+ A([
1023
+ V({ prefix: E }),
1024
+ M({ value: "en" })
1025
+ ], j.prototype, "language", 2);
1026
+ A([
1027
+ V({ prefix: E }),
1028
+ M({ value: "light" })
1029
+ ], j.prototype, "theme", 2);
1030
+ A([
1031
+ V({ prefix: E }),
1032
+ M({ type: Boolean, value: !1 })
1033
+ ], j.prototype, "open", 2);
1034
+ A([
1035
+ V({ prefix: E }),
1036
+ M({ value: "false" })
1037
+ ], j.prototype, "connectWs", 2);
1038
+ A([
1039
+ V({ prefix: E }),
1040
+ M({ value: Ce() })
1041
+ ], j.prototype, "conversationId", 2);
1042
+ A([
1043
+ V({ prefix: E }),
1044
+ M({ value: 0 })
1045
+ ], j.prototype, "lastConversationUpdate", 2);
1046
+ A([
1047
+ V({ prefix: E }),
1048
+ M({ type: Array, value: [] })
1049
+ ], j.prototype, "messages", 2);
1050
+ A([
1051
+ M({
902
1052
  type: Array,
903
1053
  value: []
904
1054
  /*
@@ -940,19 +1090,25 @@ H([
940
1090
  },
941
1091
  ],*/
942
1092
  })
943
- ], M.prototype, "actions", 2);
944
- H([
945
- O({ type: Boolean, value: !1 })
946
- ], M.prototype, "botSettingsInitialized", 2);
947
- H([
948
- O({ type: Boolean, value: !0 })
949
- ], M.prototype, "disabled", 2);
950
- H([
951
- O({ type: Boolean, value: !1 })
952
- ], M.prototype, "engage", 2);
953
- H([
954
- V({ prefix: q }),
955
- O({
1093
+ ], j.prototype, "actions", 2);
1094
+ A([
1095
+ M({ type: Object, value: null })
1096
+ ], j.prototype, "form", 2);
1097
+ A([
1098
+ M({ type: Boolean, value: !1 })
1099
+ ], j.prototype, "botSettingsInitialized", 2);
1100
+ A([
1101
+ M({ type: Object, value: null })
1102
+ ], j.prototype, "botSettings", 2);
1103
+ A([
1104
+ M({ type: Boolean, value: !0 })
1105
+ ], j.prototype, "disabled", 2);
1106
+ A([
1107
+ M({ type: Boolean, value: !1 })
1108
+ ], j.prototype, "engage", 2);
1109
+ A([
1110
+ V({ prefix: E }),
1111
+ M({
956
1112
  type: Object,
957
1113
  value: {
958
1114
  orgId: null,
@@ -961,9 +1117,9 @@ H([
961
1117
  welcomeMessage: null
962
1118
  }
963
1119
  })
964
- ], M.prototype, "setting", 2);
965
- const n = new M(), Ec = x`
966
- ${I}
1120
+ ], j.prototype, "setting", 2);
1121
+ const s = new j(), Nc = x`
1122
+ ${T}
967
1123
  :host {
968
1124
  position: relative;
969
1125
  font-weight: bold;
@@ -1016,36 +1172,36 @@ const n = new M(), Ec = x`
1016
1172
  display: inline;
1017
1173
  }
1018
1174
  `;
1019
- var zc = Object.defineProperty, Tc = Object.getOwnPropertyDescriptor, Bc = (c, e, a, f) => {
1020
- for (var t = f > 1 ? void 0 : f ? Tc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1021
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1022
- return f && t && zc(e, a, t), t;
1175
+ var Wc = Object.defineProperty, Jc = Object.getOwnPropertyDescriptor, Kc = (c, e, a, t) => {
1176
+ for (var f = t > 1 ? void 0 : t ? Jc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1177
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
1178
+ return t && f && Wc(e, a, f), f;
1023
1179
  };
1024
- class C extends ie {
1180
+ class S extends ge {
1025
1181
  constructor() {
1026
1182
  super(...arguments), this.lang = "en";
1027
1183
  }
1028
1184
  emit(e, a) {
1029
- const f = new CustomEvent(e, {
1185
+ const t = new CustomEvent(e, {
1030
1186
  bubbles: !0,
1031
1187
  cancelable: !1,
1032
1188
  composed: !0,
1033
1189
  detail: {},
1034
1190
  ...a
1035
1191
  });
1036
- return this.dispatchEvent(f), f;
1192
+ return this.dispatchEvent(t), t;
1037
1193
  }
1038
1194
  }
1039
- Bc([
1040
- r({ type: String })
1041
- ], C.prototype, "lang", 2);
1042
- const te = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8L2.146 2.854Z"/></svg>';
1043
- var Rc = Object.defineProperty, Vc = Object.getOwnPropertyDescriptor, We = (c, e, a, f) => {
1044
- for (var t = f > 1 ? void 0 : f ? Vc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1045
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1046
- return f && t && Rc(e, a, t), t;
1195
+ Kc([
1196
+ b({ type: String })
1197
+ ], S.prototype, "lang", 2);
1198
+ const be = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8L2.146 2.854Z"/></svg>';
1199
+ var Yc = Object.defineProperty, Gc = Object.getOwnPropertyDescriptor, Ye = (c, e, a, t) => {
1200
+ for (var f = t > 1 ? void 0 : t ? Gc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1201
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
1202
+ return t && f && Yc(e, a, f), f;
1047
1203
  };
1048
- let fe = class extends C {
1204
+ let ne = class extends S {
1049
1205
  constructor() {
1050
1206
  super(...arguments), this.title = "ChatBot";
1051
1207
  }
@@ -1055,16 +1211,16 @@ let fe = class extends C {
1055
1211
  }
1056
1212
  */
1057
1213
  render() {
1058
- return s` <header class="cb-header" part="header">
1214
+ return r` <header class="cb-header" part="header">
1059
1215
  <span class="left">
1060
1216
  <sl-button class="cb-setting-button" variant="text" circle>
1061
- <cb-icon class="cb-header-logo" svg="${n.setting.logoSvg}"></cb-icon>
1217
+ <cb-icon class="cb-header-logo" svg="${s.setting.logoSvg}"></cb-icon>
1062
1218
  </sl-button>
1063
1219
  </span>
1064
1220
  <span class="center title">${this.title}</span>
1065
1221
  <span class="right">
1066
1222
  <sl-button @click=${this._clickCloseHandler} class="cb-setting-button" variant="text" circle>
1067
- <cb-icon class="cb-header-close" svg="${te}"></cb-icon>
1223
+ <cb-icon class="cb-header-close" svg="${be}"></cb-icon>
1068
1224
  </sl-button>
1069
1225
  </span>
1070
1226
  </header>`;
@@ -1080,15 +1236,15 @@ let fe = class extends C {
1080
1236
  });
1081
1237
  }
1082
1238
  };
1083
- fe.styles = Ec;
1084
- We([
1085
- r({ type: String, attribute: "title" })
1086
- ], fe.prototype, "title", 2);
1087
- fe = We([
1088
- k("cb-header")
1089
- ], fe);
1090
- const qc = x`
1091
- ${I}
1239
+ ne.styles = Nc;
1240
+ Ye([
1241
+ b({ type: String, attribute: "title" })
1242
+ ], ne.prototype, "title", 2);
1243
+ ne = Ye([
1244
+ _("cb-header")
1245
+ ], ne);
1246
+ const Xc = x`
1247
+ ${T}
1092
1248
  .cb-footer {
1093
1249
  line-height: 60px;
1094
1250
  font-size: 16px;
@@ -1102,17 +1258,17 @@ const qc = x`
1102
1258
  color: var(--primary-color);
1103
1259
  }
1104
1260
  `;
1105
- var Dc = Object.defineProperty, Uc = Object.getOwnPropertyDescriptor, Fc = (c, e, a, f) => {
1106
- for (var t = f > 1 ? void 0 : f ? Uc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1107
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1108
- return f && t && Dc(e, a, t), t;
1261
+ var Qc = Object.defineProperty, ea = Object.getOwnPropertyDescriptor, ca = (c, e, a, t) => {
1262
+ for (var f = t > 1 ? void 0 : t ? ea(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1263
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
1264
+ return t && f && Qc(e, a, f), f;
1109
1265
  };
1110
- let ke = class extends C {
1266
+ let je = class extends S {
1111
1267
  constructor() {
1112
1268
  super(...arguments), this.year = (/* @__PURE__ */ new Date()).getFullYear();
1113
1269
  }
1114
1270
  render() {
1115
- return s`
1271
+ return r`
1116
1272
  <div class="cb-footer" part="footer">
1117
1273
  yugasun@${this.year}
1118
1274
  <a
@@ -1142,12 +1298,12 @@ let ke = class extends C {
1142
1298
  `;
1143
1299
  }
1144
1300
  };
1145
- ke.styles = qc;
1146
- ke = Fc([
1147
- k("cb-footer")
1148
- ], ke);
1149
- const Zc = x`
1150
- ${I}
1301
+ je.styles = Xc;
1302
+ je = ca([
1303
+ _("cb-footer")
1304
+ ], je);
1305
+ const aa = x`
1306
+ ${T}
1151
1307
 
1152
1308
  :host {
1153
1309
  width: 100%;
@@ -1190,6 +1346,36 @@ const Zc = x`
1190
1346
  display: none;
1191
1347
  }*/
1192
1348
 
1349
+ .cb-input-form {
1350
+ margin: 10px 5px;
1351
+ padding: 20px 20px;
1352
+ color: var(--enegelai-bot-form-color, rgb(34, 34, 34));
1353
+ background-color: var(--enegelai-bot-form-background, rgba(234, 234, 234, 0.3));
1354
+ //background-color: rgba(214, 0, 28, 0.1);
1355
+ border-radius: 10px;
1356
+ border: 0px;
1357
+ display: flex;
1358
+ flex-direction: column;
1359
+ font-size: 14px;
1360
+ row-gap: 10px;
1361
+ align-items: center;
1362
+ //font-family: sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
1363
+ }
1364
+
1365
+ .cb-input-form-input {
1366
+ width: 100%;
1367
+ }
1368
+
1369
+ .cb-input-form-submit::part(base) {
1370
+ color: var(--enegelai-bot-form-submit-color, rgb(255, 255, 255));
1371
+ background-color: var(--enegelai-bot-form-submit-background, rgb(0, 208, 117));
1372
+ border-color: var(--enegelai-bot-form-submit-border, rgb(0, 208, 117));
1373
+ }
1374
+
1375
+ .cb-input-form-submit {
1376
+ width: 100px;
1377
+ }
1378
+
1193
1379
  .cb-actions-list {
1194
1380
  margin: 10px 0px 0px 0px;
1195
1381
  padding: 0px 0px;
@@ -1243,17 +1429,17 @@ const Zc = x`
1243
1429
  transition: background 0s;
1244
1430
  }
1245
1431
  `;
1246
- var Nc = Object.defineProperty, Wc = Object.getOwnPropertyDescriptor, Kc = (c, e, a, f) => {
1247
- for (var t = f > 1 ? void 0 : f ? Wc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1248
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1249
- return f && t && Nc(e, a, t), t;
1432
+ var ta = Object.defineProperty, fa = Object.getOwnPropertyDescriptor, oa = (c, e, a, t) => {
1433
+ for (var f = t > 1 ? void 0 : t ? fa(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1434
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
1435
+ return t && f && ta(e, a, f), f;
1250
1436
  };
1251
- let _e = class extends ie {
1437
+ let Se = class extends ge {
1252
1438
  render() {
1253
- return s` <div class="cb-thinking" style="color: rgb(34, 34, 34);"><span></span><span></span><span></span></div>`;
1439
+ return r` <div class="cb-thinking" style="color: rgb(34, 34, 34);"><span></span><span></span><span></span></div>`;
1254
1440
  }
1255
1441
  };
1256
- _e.styles = x`
1442
+ Se.styles = x`
1257
1443
  .cb-thinking {
1258
1444
  text-align: center;
1259
1445
  }
@@ -1291,31 +1477,31 @@ _e.styles = x`
1291
1477
  }
1292
1478
  }
1293
1479
  `;
1294
- _e = Kc([
1295
- k("cb-thinking")
1296
- ], _e);
1297
- var Jc = Object.defineProperty, Yc = Object.getOwnPropertyDescriptor, Ke = (c, e, a, f) => {
1298
- for (var t = f > 1 ? void 0 : f ? Yc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1299
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1300
- return f && t && Jc(e, a, t), t;
1480
+ Se = oa([
1481
+ _("cb-thinking")
1482
+ ], Se);
1483
+ var da = Object.defineProperty, ra = Object.getOwnPropertyDescriptor, Ge = (c, e, a, t) => {
1484
+ for (var f = t > 1 ? void 0 : t ? ra(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1485
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
1486
+ return t && f && da(e, a, f), f;
1301
1487
  };
1302
- let oe = class extends C {
1488
+ let se = class extends S {
1303
1489
  constructor() {
1304
1490
  super(...arguments), this.files = [];
1305
1491
  }
1306
1492
  render() {
1307
- return s` <div class="cb-uploading">
1493
+ return r` <div class="cb-uploading">
1308
1494
  <div class="cb-uploading__title">
1309
1495
  <sl-spinner class="cb-spinner"></sl-spinner>
1310
1496
  <span>Uploading...</span>
1311
1497
  </div>
1312
1498
  <div class="cb-uploading__filelist">
1313
- ${this.files.map((c) => s`${c.name}<br />`)}
1499
+ ${this.files.map((c) => r`${c.name}<br />`)}
1314
1500
  </div>
1315
1501
  </div>`;
1316
1502
  }
1317
1503
  };
1318
- oe.styles = x`
1504
+ se.styles = x`
1319
1505
  .cb-uploading {
1320
1506
  text-align: left;
1321
1507
  }
@@ -1333,14 +1519,14 @@ oe.styles = x`
1333
1519
  margin-right: 5px;
1334
1520
  }
1335
1521
  `;
1336
- Ke([
1337
- r({ type: Array })
1338
- ], oe.prototype, "files", 2);
1339
- oe = Ke([
1340
- k("cb-uploading")
1341
- ], oe);
1342
- const Gc = x`
1343
- ${I}
1522
+ Ge([
1523
+ b({ type: Array })
1524
+ ], se.prototype, "files", 2);
1525
+ se = Ge([
1526
+ _("cb-uploading")
1527
+ ], se);
1528
+ const ba = x`
1529
+ ${T}
1344
1530
  :host {
1345
1531
  }
1346
1532
 
@@ -1360,17 +1546,17 @@ const Gc = x`
1360
1546
  margin-right: 0.2em;
1361
1547
  }
1362
1548
  `;
1363
- var Xc = Object.defineProperty, Qc = Object.getOwnPropertyDescriptor, Se = (c, e, a, f) => {
1364
- for (var t = f > 1 ? void 0 : f ? Qc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1365
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1366
- return f && t && Xc(e, a, t), t;
1549
+ var na = Object.defineProperty, sa = Object.getOwnPropertyDescriptor, Oe = (c, e, a, t) => {
1550
+ for (var f = t > 1 ? void 0 : t ? sa(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1551
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
1552
+ return t && f && na(e, a, f), f;
1367
1553
  };
1368
- let J = class extends ie {
1554
+ let X = class extends ge {
1369
1555
  constructor() {
1370
1556
  super(...arguments), this.url = "", this.inverse = !1;
1371
1557
  }
1372
1558
  render() {
1373
- return s`
1559
+ return r`
1374
1560
  <a
1375
1561
  class="
1376
1562
  cb-external-link link__item
@@ -1385,7 +1571,7 @@ let J = class extends ie {
1385
1571
  `;
1386
1572
  }
1387
1573
  };
1388
- J.styles = x`
1574
+ X.styles = x`
1389
1575
  :host {
1390
1576
  --primary-color: var(--sl-color-primary-600);
1391
1577
  }
@@ -1410,31 +1596,31 @@ J.styles = x`
1410
1596
  text-decoration: underline;
1411
1597
  }
1412
1598
  `;
1413
- Se([
1414
- r({ type: String })
1415
- ], J.prototype, "url", 2);
1416
- Se([
1417
- r({ type: Boolean })
1418
- ], J.prototype, "inverse", 2);
1419
- J = Se([
1420
- k("cb-external-link")
1421
- ], J);
1422
- const ea = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-2v-1h2a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM1.928 15.849v-3.337h1.136v-.662H0v.662h1.134v3.337h.794Zm4.689-3.999h-.894L4.9 13.289h-.035l-.832-1.439h-.932l1.228 1.983l-1.24 2.016h.862l.853-1.415h.035l.85 1.415h.907l-1.253-1.992l1.274-2.007Zm1.93.662v3.337h-.794v-3.337H6.619v-.662h3.064v.662H8.546Z"/></svg>', ca = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM1.6 11.85H0v3.999h.791v-1.342h.803c.287 0 .531-.057.732-.173c.203-.117.358-.275.463-.474a1.42 1.42 0 0 0 .161-.677c0-.25-.053-.476-.158-.677a1.176 1.176 0 0 0-.46-.477c-.2-.12-.443-.179-.732-.179Zm.545 1.333a.795.795 0 0 1-.085.38a.574.574 0 0 1-.238.241a.794.794 0 0 1-.375.082H.788V12.48h.66c.218 0 .389.06.512.181c.123.122.185.296.185.522Zm1.217-1.333v3.999h1.46c.401 0 .734-.08.998-.237a1.45 1.45 0 0 0 .595-.689c.13-.3.196-.662.196-1.084c0-.42-.065-.778-.196-1.075a1.426 1.426 0 0 0-.589-.68c-.264-.156-.599-.234-1.005-.234H3.362Zm.791.645h.563c.248 0 .45.05.609.152a.89.89 0 0 1 .354.454c.079.201.118.452.118.753a2.3 2.3 0 0 1-.068.592a1.14 1.14 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.298 1.298 0 0 1-.483.082h-.563v-2.707Zm3.743 1.763v1.591h-.79V11.85h2.548v.653H7.896v1.117h1.606v.638H7.896Z"/></svg>', aa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2H9v-1h3a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM.706 13.189v2.66H0V11.85h.806l1.14 2.596h.026l1.14-2.596h.8v3.999h-.716v-2.66h-.038l-.946 2.159h-.516l-.952-2.16H.706Zm3.919 2.66V11.85h1.459c.406 0 .741.078 1.005.234c.263.157.46.383.589.68c.13.297.196.655.196 1.075c0 .422-.066.784-.196 1.084c-.131.301-.33.53-.595.689c-.264.158-.597.237-1 .237H4.626Zm1.353-3.354h-.562v2.707h.562c.186 0 .347-.028.484-.082a.8.8 0 0 0 .334-.252a1.14 1.14 0 0 0 .196-.422c.045-.168.067-.365.067-.592a2.1 2.1 0 0 0-.117-.753a.89.89 0 0 0-.354-.454c-.159-.102-.362-.152-.61-.152Z"/></svg>', ta = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM3.517 14.841a1.13 1.13 0 0 0 .401.823c.13.108.289.192.478.252c.19.061.411.091.665.091c.338 0 .624-.053.859-.158c.236-.105.416-.252.539-.44c.125-.189.187-.408.187-.656c0-.224-.045-.41-.134-.56a1.001 1.001 0 0 0-.375-.357a2.027 2.027 0 0 0-.566-.21l-.621-.144a.97.97 0 0 1-.404-.176a.37.37 0 0 1-.144-.299c0-.156.062-.284.185-.384c.125-.101.296-.152.512-.152c.143 0 .266.023.37.068a.624.624 0 0 1 .246.181a.56.56 0 0 1 .12.258h.75a1.092 1.092 0 0 0-.2-.566a1.21 1.21 0 0 0-.5-.41a1.813 1.813 0 0 0-.78-.152c-.293 0-.551.05-.776.15c-.225.099-.4.24-.527.421c-.127.182-.19.395-.19.639c0 .201.04.376.122.524c.082.149.2.27.352.367c.152.095.332.167.539.213l.618.144c.207.049.361.113.463.193a.387.387 0 0 1 .152.326a.505.505 0 0 1-.085.29a.559.559 0 0 1-.255.193c-.111.047-.249.07-.413.07c-.117 0-.223-.013-.32-.04a.838.838 0 0 1-.248-.115a.578.578 0 0 1-.255-.384h-.765ZM.806 13.693c0-.248.034-.46.102-.633a.868.868 0 0 1 .302-.399a.814.814 0 0 1 .475-.137c.15 0 .283.032.398.097a.7.7 0 0 1 .272.26a.85.85 0 0 1 .12.381h.765v-.072a1.33 1.33 0 0 0-.466-.964a1.441 1.441 0 0 0-.489-.272a1.838 1.838 0 0 0-.606-.097c-.356 0-.66.074-.911.223c-.25.148-.44.359-.572.632c-.13.274-.196.6-.196.979v.498c0 .379.064.704.193.976c.131.271.322.48.572.626c.25.145.554.217.914.217c.293 0 .554-.055.785-.164c.23-.11.414-.26.55-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.764a.799.799 0 0 1-.118.363a.7.7 0 0 1-.272.25a.874.874 0 0 1-.401.087a.845.845 0 0 1-.478-.132a.833.833 0 0 1-.299-.392a1.699 1.699 0 0 1-.102-.627v-.495Zm8.239 2.238h-.953l-1.338-3.999h.917l.896 3.138h.038l.888-3.138h.879l-1.327 4Z"/></svg>', fa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM1.6 11.85H0v3.999h.791v-1.342h.803c.287 0 .531-.057.732-.173c.203-.117.358-.275.463-.474a1.42 1.42 0 0 0 .161-.677c0-.25-.053-.476-.158-.677a1.176 1.176 0 0 0-.46-.477c-.2-.12-.443-.179-.732-.179Zm.545 1.333a.795.795 0 0 1-.085.38a.574.574 0 0 1-.238.241a.794.794 0 0 1-.375.082H.788V12.48h.66c.218 0 .389.06.512.181c.123.122.185.296.185.522Zm2.817-1.333h-1.6v3.999h.791v-1.342h.803c.287 0 .531-.057.732-.173c.203-.117.358-.275.463-.474c.108-.201.161-.427.161-.677c0-.25-.052-.476-.158-.677a1.176 1.176 0 0 0-.46-.477c-.2-.12-.443-.179-.732-.179Zm.545 1.333a.795.795 0 0 1-.085.38a.574.574 0 0 1-.238.241a.793.793 0 0 1-.375.082H4.15V12.48h.66c.218 0 .389.06.512.181c.123.122.185.296.185.522Zm2.767-.67v3.336H7.48v-3.337H6.346v-.662h3.065v.662H8.274Z"/></svg>', oa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2v-1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5Zm-7.839 9.166v.522c0 .256-.039.47-.117.641a.861.861 0 0 1-.322.387a.877.877 0 0 1-.469.126a.883.883 0 0 1-.471-.126a.868.868 0 0 1-.32-.386a1.55 1.55 0 0 1-.117-.642v-.522c0-.257.04-.471.117-.641a.868.868 0 0 1 .32-.387a.868.868 0 0 1 .471-.129c.176 0 .332.043.469.13a.861.861 0 0 1 .322.386c.078.17.117.384.117.641Zm.803.519v-.513c0-.377-.068-.7-.205-.972a1.46 1.46 0 0 0-.589-.63c-.254-.147-.56-.22-.917-.22c-.355 0-.662.073-.92.22a1.441 1.441 0 0 0-.589.627c-.136.271-.205.596-.205.975v.513c0 .375.069.7.205.973c.137.271.333.48.59.627c.257.144.564.216.92.216c.357 0 .662-.072.916-.216c.256-.147.452-.356.59-.627c.136-.274.204-.598.204-.973ZM0 11.926v4h1.459c.402 0 .735-.08.999-.238a1.45 1.45 0 0 0 .595-.689c.13-.3.196-.662.196-1.084c0-.42-.065-.778-.196-1.075a1.426 1.426 0 0 0-.59-.68c-.263-.156-.598-.234-1.004-.234H0Zm.791.645h.563c.248 0 .45.05.609.152a.89.89 0 0 1 .354.454c.079.201.118.452.118.753a2.3 2.3 0 0 1-.068.592a1.141 1.141 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.298 1.298 0 0 1-.483.082H.79V12.57Zm7.422.483a1.732 1.732 0 0 0-.103.633v.495c0 .246.034.455.103.627a.834.834 0 0 0 .298.393a.845.845 0 0 0 .478.131a.868.868 0 0 0 .401-.088a.699.699 0 0 0 .273-.248a.8.8 0 0 0 .117-.364h.765v.076a1.268 1.268 0 0 1-.226.674c-.137.194-.32.345-.55.454a1.81 1.81 0 0 1-.786.164c-.36 0-.664-.072-.914-.216a1.424 1.424 0 0 1-.571-.627c-.13-.272-.194-.597-.194-.976v-.498c0-.379.066-.705.197-.978c.13-.274.321-.485.571-.633c.252-.149.556-.223.911-.223c.219 0 .421.032.607.097c.187.062.35.153.489.272a1.326 1.326 0 0 1 .466.964v.073H9.78a.85.85 0 0 0-.12-.38a.7.7 0 0 0-.273-.261a.802.802 0 0 0-.398-.097a.814.814 0 0 0-.475.138a.868.868 0 0 0-.301.398Z"/></svg>', da = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V11h-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5Zm-6.839 9.688v-.522a1.54 1.54 0 0 0-.117-.641a.861.861 0 0 0-.322-.387a.862.862 0 0 0-.469-.129a.868.868 0 0 0-.471.13a.868.868 0 0 0-.32.386a1.54 1.54 0 0 0-.117.641v.522c0 .256.04.47.117.641a.868.868 0 0 0 .32.387a.883.883 0 0 0 .471.126a.877.877 0 0 0 .469-.126a.861.861 0 0 0 .322-.386a1.55 1.55 0 0 0 .117-.642Zm.803-.516v.513c0 .375-.068.7-.205.973a1.47 1.47 0 0 1-.589.627c-.254.144-.56.216-.917.216a1.86 1.86 0 0 1-.92-.216a1.463 1.463 0 0 1-.589-.627a2.151 2.151 0 0 1-.205-.973v-.513c0-.379.069-.704.205-.975c.137-.274.333-.483.59-.627c.257-.147.564-.22.92-.22c.357 0 .662.073.916.22c.256.146.452.356.59.63c.136.271.204.595.204.972ZM1 15.925v-3.999h1.459c.406 0 .741.078 1.005.235c.264.156.46.382.589.68c.13.296.196.655.196 1.074c0 .422-.065.784-.196 1.084c-.131.301-.33.53-.595.689c-.264.158-.597.237-.999.237H1Zm1.354-3.354H1.79v2.707h.563c.185 0 .346-.028.483-.082a.8.8 0 0 0 .334-.252c.088-.114.153-.254.196-.422a2.3 2.3 0 0 0 .068-.592c0-.3-.04-.552-.118-.753a.89.89 0 0 0-.354-.454c-.158-.102-.361-.152-.61-.152Zm6.756 1.116c0-.248.034-.46.103-.633a.868.868 0 0 1 .301-.398a.814.814 0 0 1 .475-.138c.15 0 .283.032.398.097a.7.7 0 0 1 .273.26a.85.85 0 0 1 .12.381h.765v-.073a1.33 1.33 0 0 0-.466-.964a1.44 1.44 0 0 0-.49-.272a1.836 1.836 0 0 0-.606-.097c-.355 0-.66.074-.911.223c-.25.148-.44.359-.571.633c-.131.273-.197.6-.197.978v.498c0 .379.065.704.194.976c.13.271.321.48.571.627c.25.144.555.216.914.216c.293 0 .555-.054.785-.164c.23-.11.414-.26.551-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.765a.8.8 0 0 1-.117.364a.699.699 0 0 1-.273.248a.874.874 0 0 1-.401.088a.845.845 0 0 1-.478-.131a.834.834 0 0 1-.298-.393a1.7 1.7 0 0 1-.103-.627v-.495Zm5.092-1.76h.894l-1.275 2.006l1.254 1.992h-.908l-.85-1.415h-.035l-.852 1.415h-.862l1.24-2.015l-1.228-1.984h.932l.832 1.439h.035l.823-1.439Z"/></svg>';
1423
- var ba = Object.defineProperty, ra = Object.getOwnPropertyDescriptor, Ae = (c, e, a, f) => {
1424
- for (var t = f > 1 ? void 0 : f ? ra(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1425
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1426
- return f && t && ba(e, a, t), t;
1599
+ Oe([
1600
+ b({ type: String })
1601
+ ], X.prototype, "url", 2);
1602
+ Oe([
1603
+ b({ type: Boolean })
1604
+ ], X.prototype, "inverse", 2);
1605
+ X = Oe([
1606
+ _("cb-external-link")
1607
+ ], X);
1608
+ const ia = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-2v-1h2a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM1.928 15.849v-3.337h1.136v-.662H0v.662h1.134v3.337h.794Zm4.689-3.999h-.894L4.9 13.289h-.035l-.832-1.439h-.932l1.228 1.983l-1.24 2.016h.862l.853-1.415h.035l.85 1.415h.907l-1.253-1.992l1.274-2.007Zm1.93.662v3.337h-.794v-3.337H6.619v-.662h3.064v.662H8.546Z"/></svg>', la = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM1.6 11.85H0v3.999h.791v-1.342h.803c.287 0 .531-.057.732-.173c.203-.117.358-.275.463-.474a1.42 1.42 0 0 0 .161-.677c0-.25-.053-.476-.158-.677a1.176 1.176 0 0 0-.46-.477c-.2-.12-.443-.179-.732-.179Zm.545 1.333a.795.795 0 0 1-.085.38a.574.574 0 0 1-.238.241a.794.794 0 0 1-.375.082H.788V12.48h.66c.218 0 .389.06.512.181c.123.122.185.296.185.522Zm1.217-1.333v3.999h1.46c.401 0 .734-.08.998-.237a1.45 1.45 0 0 0 .595-.689c.13-.3.196-.662.196-1.084c0-.42-.065-.778-.196-1.075a1.426 1.426 0 0 0-.589-.68c-.264-.156-.599-.234-1.005-.234H3.362Zm.791.645h.563c.248 0 .45.05.609.152a.89.89 0 0 1 .354.454c.079.201.118.452.118.753a2.3 2.3 0 0 1-.068.592a1.14 1.14 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.298 1.298 0 0 1-.483.082h-.563v-2.707Zm3.743 1.763v1.591h-.79V11.85h2.548v.653H7.896v1.117h1.606v.638H7.896Z"/></svg>', pa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2H9v-1h3a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM.706 13.189v2.66H0V11.85h.806l1.14 2.596h.026l1.14-2.596h.8v3.999h-.716v-2.66h-.038l-.946 2.159h-.516l-.952-2.16H.706Zm3.919 2.66V11.85h1.459c.406 0 .741.078 1.005.234c.263.157.46.383.589.68c.13.297.196.655.196 1.075c0 .422-.066.784-.196 1.084c-.131.301-.33.53-.595.689c-.264.158-.597.237-1 .237H4.626Zm1.353-3.354h-.562v2.707h.562c.186 0 .347-.028.484-.082a.8.8 0 0 0 .334-.252a1.14 1.14 0 0 0 .196-.422c.045-.168.067-.365.067-.592a2.1 2.1 0 0 0-.117-.753a.89.89 0 0 0-.354-.454c-.159-.102-.362-.152-.61-.152Z"/></svg>', ha = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM3.517 14.841a1.13 1.13 0 0 0 .401.823c.13.108.289.192.478.252c.19.061.411.091.665.091c.338 0 .624-.053.859-.158c.236-.105.416-.252.539-.44c.125-.189.187-.408.187-.656c0-.224-.045-.41-.134-.56a1.001 1.001 0 0 0-.375-.357a2.027 2.027 0 0 0-.566-.21l-.621-.144a.97.97 0 0 1-.404-.176a.37.37 0 0 1-.144-.299c0-.156.062-.284.185-.384c.125-.101.296-.152.512-.152c.143 0 .266.023.37.068a.624.624 0 0 1 .246.181a.56.56 0 0 1 .12.258h.75a1.092 1.092 0 0 0-.2-.566a1.21 1.21 0 0 0-.5-.41a1.813 1.813 0 0 0-.78-.152c-.293 0-.551.05-.776.15c-.225.099-.4.24-.527.421c-.127.182-.19.395-.19.639c0 .201.04.376.122.524c.082.149.2.27.352.367c.152.095.332.167.539.213l.618.144c.207.049.361.113.463.193a.387.387 0 0 1 .152.326a.505.505 0 0 1-.085.29a.559.559 0 0 1-.255.193c-.111.047-.249.07-.413.07c-.117 0-.223-.013-.32-.04a.838.838 0 0 1-.248-.115a.578.578 0 0 1-.255-.384h-.765ZM.806 13.693c0-.248.034-.46.102-.633a.868.868 0 0 1 .302-.399a.814.814 0 0 1 .475-.137c.15 0 .283.032.398.097a.7.7 0 0 1 .272.26a.85.85 0 0 1 .12.381h.765v-.072a1.33 1.33 0 0 0-.466-.964a1.441 1.441 0 0 0-.489-.272a1.838 1.838 0 0 0-.606-.097c-.356 0-.66.074-.911.223c-.25.148-.44.359-.572.632c-.13.274-.196.6-.196.979v.498c0 .379.064.704.193.976c.131.271.322.48.572.626c.25.145.554.217.914.217c.293 0 .554-.055.785-.164c.23-.11.414-.26.55-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.764a.799.799 0 0 1-.118.363a.7.7 0 0 1-.272.25a.874.874 0 0 1-.401.087a.845.845 0 0 1-.478-.132a.833.833 0 0 1-.299-.392a1.699 1.699 0 0 1-.102-.627v-.495Zm8.239 2.238h-.953l-1.338-3.999h.917l.896 3.138h.038l.888-3.138h.879l-1.327 4Z"/></svg>', ua = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM1.6 11.85H0v3.999h.791v-1.342h.803c.287 0 .531-.057.732-.173c.203-.117.358-.275.463-.474a1.42 1.42 0 0 0 .161-.677c0-.25-.053-.476-.158-.677a1.176 1.176 0 0 0-.46-.477c-.2-.12-.443-.179-.732-.179Zm.545 1.333a.795.795 0 0 1-.085.38a.574.574 0 0 1-.238.241a.794.794 0 0 1-.375.082H.788V12.48h.66c.218 0 .389.06.512.181c.123.122.185.296.185.522Zm2.817-1.333h-1.6v3.999h.791v-1.342h.803c.287 0 .531-.057.732-.173c.203-.117.358-.275.463-.474c.108-.201.161-.427.161-.677c0-.25-.052-.476-.158-.677a1.176 1.176 0 0 0-.46-.477c-.2-.12-.443-.179-.732-.179Zm.545 1.333a.795.795 0 0 1-.085.38a.574.574 0 0 1-.238.241a.793.793 0 0 1-.375.082H4.15V12.48h.66c.218 0 .389.06.512.181c.123.122.185.296.185.522Zm2.767-.67v3.336H7.48v-3.337H6.346v-.662h3.065v.662H8.274Z"/></svg>', ga = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2v-1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5Zm-7.839 9.166v.522c0 .256-.039.47-.117.641a.861.861 0 0 1-.322.387a.877.877 0 0 1-.469.126a.883.883 0 0 1-.471-.126a.868.868 0 0 1-.32-.386a1.55 1.55 0 0 1-.117-.642v-.522c0-.257.04-.471.117-.641a.868.868 0 0 1 .32-.387a.868.868 0 0 1 .471-.129c.176 0 .332.043.469.13a.861.861 0 0 1 .322.386c.078.17.117.384.117.641Zm.803.519v-.513c0-.377-.068-.7-.205-.972a1.46 1.46 0 0 0-.589-.63c-.254-.147-.56-.22-.917-.22c-.355 0-.662.073-.92.22a1.441 1.441 0 0 0-.589.627c-.136.271-.205.596-.205.975v.513c0 .375.069.7.205.973c.137.271.333.48.59.627c.257.144.564.216.92.216c.357 0 .662-.072.916-.216c.256-.147.452-.356.59-.627c.136-.274.204-.598.204-.973ZM0 11.926v4h1.459c.402 0 .735-.08.999-.238a1.45 1.45 0 0 0 .595-.689c.13-.3.196-.662.196-1.084c0-.42-.065-.778-.196-1.075a1.426 1.426 0 0 0-.59-.68c-.263-.156-.598-.234-1.004-.234H0Zm.791.645h.563c.248 0 .45.05.609.152a.89.89 0 0 1 .354.454c.079.201.118.452.118.753a2.3 2.3 0 0 1-.068.592a1.141 1.141 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.298 1.298 0 0 1-.483.082H.79V12.57Zm7.422.483a1.732 1.732 0 0 0-.103.633v.495c0 .246.034.455.103.627a.834.834 0 0 0 .298.393a.845.845 0 0 0 .478.131a.868.868 0 0 0 .401-.088a.699.699 0 0 0 .273-.248a.8.8 0 0 0 .117-.364h.765v.076a1.268 1.268 0 0 1-.226.674c-.137.194-.32.345-.55.454a1.81 1.81 0 0 1-.786.164c-.36 0-.664-.072-.914-.216a1.424 1.424 0 0 1-.571-.627c-.13-.272-.194-.597-.194-.976v-.498c0-.379.066-.705.197-.978c.13-.274.321-.485.571-.633c.252-.149.556-.223.911-.223c.219 0 .421.032.607.097c.187.062.35.153.489.272a1.326 1.326 0 0 1 .466.964v.073H9.78a.85.85 0 0 0-.12-.38a.7.7 0 0 0-.273-.261a.802.802 0 0 0-.398-.097a.814.814 0 0 0-.475.138a.868.868 0 0 0-.301.398Z"/></svg>', ma = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V11h-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5Zm-6.839 9.688v-.522a1.54 1.54 0 0 0-.117-.641a.861.861 0 0 0-.322-.387a.862.862 0 0 0-.469-.129a.868.868 0 0 0-.471.13a.868.868 0 0 0-.32.386a1.54 1.54 0 0 0-.117.641v.522c0 .256.04.47.117.641a.868.868 0 0 0 .32.387a.883.883 0 0 0 .471.126a.877.877 0 0 0 .469-.126a.861.861 0 0 0 .322-.386a1.55 1.55 0 0 0 .117-.642Zm.803-.516v.513c0 .375-.068.7-.205.973a1.47 1.47 0 0 1-.589.627c-.254.144-.56.216-.917.216a1.86 1.86 0 0 1-.92-.216a1.463 1.463 0 0 1-.589-.627a2.151 2.151 0 0 1-.205-.973v-.513c0-.379.069-.704.205-.975c.137-.274.333-.483.59-.627c.257-.147.564-.22.92-.22c.357 0 .662.073.916.22c.256.146.452.356.59.63c.136.271.204.595.204.972ZM1 15.925v-3.999h1.459c.406 0 .741.078 1.005.235c.264.156.46.382.589.68c.13.296.196.655.196 1.074c0 .422-.065.784-.196 1.084c-.131.301-.33.53-.595.689c-.264.158-.597.237-.999.237H1Zm1.354-3.354H1.79v2.707h.563c.185 0 .346-.028.483-.082a.8.8 0 0 0 .334-.252c.088-.114.153-.254.196-.422a2.3 2.3 0 0 0 .068-.592c0-.3-.04-.552-.118-.753a.89.89 0 0 0-.354-.454c-.158-.102-.361-.152-.61-.152Zm6.756 1.116c0-.248.034-.46.103-.633a.868.868 0 0 1 .301-.398a.814.814 0 0 1 .475-.138c.15 0 .283.032.398.097a.7.7 0 0 1 .273.26a.85.85 0 0 1 .12.381h.765v-.073a1.33 1.33 0 0 0-.466-.964a1.44 1.44 0 0 0-.49-.272a1.836 1.836 0 0 0-.606-.097c-.355 0-.66.074-.911.223c-.25.148-.44.359-.571.633c-.131.273-.197.6-.197.978v.498c0 .379.065.704.194.976c.13.271.321.48.571.627c.25.144.555.216.914.216c.293 0 .555-.054.785-.164c.23-.11.414-.26.551-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.765a.8.8 0 0 1-.117.364a.699.699 0 0 1-.273.248a.874.874 0 0 1-.401.088a.845.845 0 0 1-.478-.131a.834.834 0 0 1-.298-.393a1.7 1.7 0 0 1-.103-.627v-.495Zm5.092-1.76h.894l-1.275 2.006l1.254 1.992h-.908l-.85-1.415h-.035l-.852 1.415h-.862l1.24-2.015l-1.228-1.984h.932l.832 1.439h.035l.823-1.439Z"/></svg>';
1609
+ var ya = Object.defineProperty, va = Object.getOwnPropertyDescriptor, Le = (c, e, a, t) => {
1610
+ for (var f = t > 1 ? void 0 : t ? va(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1611
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
1612
+ return t && f && ya(e, a, f), f;
1427
1613
  };
1428
- const Pe = {
1429
- pdf: ca,
1430
- txt: ea,
1431
- md: aa,
1432
- csv: ta,
1433
- ppd: fa,
1434
- doc: oa,
1435
- docx: da
1614
+ const Te = {
1615
+ pdf: la,
1616
+ txt: ia,
1617
+ md: pa,
1618
+ csv: ha,
1619
+ ppd: ua,
1620
+ doc: ga,
1621
+ docx: ma
1436
1622
  };
1437
- let Y = class extends C {
1623
+ let Q = class extends S {
1438
1624
  constructor() {
1439
1625
  super(...arguments), this.filename = "", this.url = "";
1440
1626
  }
@@ -1446,7 +1632,7 @@ let Y = class extends C {
1446
1632
  return e ? e.toLowerCase() : c;
1447
1633
  }
1448
1634
  render() {
1449
- return s`
1635
+ return r`
1450
1636
  <cb-external-link url="${this.url}" inverse>
1451
1637
  <div class="cb-file">
1452
1638
  ${this.renderFileIcon()}
@@ -1456,25 +1642,25 @@ let Y = class extends C {
1456
1642
  `;
1457
1643
  }
1458
1644
  renderFileIcon() {
1459
- return s`
1645
+ return r`
1460
1646
  <cb-icon
1461
1647
  class="cb-file-icon"
1462
- svg="${Pe[this.type] || Pe.txt}"
1648
+ svg="${Te[this.type] || Te.txt}"
1463
1649
  ></cb-icon>
1464
1650
  `;
1465
1651
  }
1466
1652
  };
1467
- Y.styles = Gc;
1468
- Ae([
1469
- r({ type: String })
1470
- ], Y.prototype, "filename", 2);
1471
- Ae([
1472
- r({ type: String })
1473
- ], Y.prototype, "url", 2);
1474
- Y = Ae([
1475
- k("cb-file")
1476
- ], Y);
1477
- const sa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6Z"/><path d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1ZM4.118 4L4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118ZM2.5 3h11V2h-11v1Z"/></g></svg>', na = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 8a3 3 0 1 0 0-6a3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0a2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1s1-4 6-4s6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332c-.678.678-.83 1.418-.832 1.664h10Z"/></svg>', ia = x`
1653
+ Q.styles = ba;
1654
+ Le([
1655
+ b({ type: String })
1656
+ ], Q.prototype, "filename", 2);
1657
+ Le([
1658
+ b({ type: String })
1659
+ ], Q.prototype, "url", 2);
1660
+ Q = Le([
1661
+ _("cb-file")
1662
+ ], Q);
1663
+ const wa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6Z"/><path d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1ZM4.118 4L4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118ZM2.5 3h11V2h-11v1Z"/></g></svg>', xa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 8a3 3 0 1 0 0-6a3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0a2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1s1-4 6-4s6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332c-.678.678-.83 1.418-.832 1.664h10Z"/></svg>', ka = x`
1478
1664
  pre code.hljs {
1479
1665
  display: block;
1480
1666
  overflow-x: auto;
@@ -2639,9 +2825,9 @@ const sa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
2639
2825
  pre {
2640
2826
  background-color: #282c34;
2641
2827
  }
2642
- `, la = x`
2643
- ${I}
2644
- ${ia}
2828
+ `, _a = x`
2829
+ ${T}
2830
+ ${ka}
2645
2831
 
2646
2832
  .cb-message-row {
2647
2833
  width: 100%;
@@ -2798,22 +2984,22 @@ const sa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
2798
2984
  font-size: 1em;
2799
2985
  }
2800
2986
  `;
2801
- function pa() {
2802
- const c = new hc({
2987
+ function $a() {
2988
+ const c = new pc({
2803
2989
  linkify: !0
2804
2990
  });
2805
- return c.use(gc, { attrs: { target: "_blank", rel: "noopener" } }), c;
2991
+ return c.use(hc, { attrs: { target: "_blank", rel: "noopener" } }), c;
2806
2992
  }
2807
- async function Ee(c) {
2808
- const e = pa();
2809
- return s`${B(e.render(c))}`;
2993
+ async function Be(c) {
2994
+ const e = $a();
2995
+ return r`${U(e.render(c))}`;
2810
2996
  }
2811
- var ha = Object.defineProperty, ga = Object.getOwnPropertyDescriptor, he = (c, e, a, f) => {
2812
- for (var t = f > 1 ? void 0 : f ? ga(e, a) : e, o = c.length - 1, d; o >= 0; o--)
2813
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
2814
- return f && t && ha(e, a, t), t;
2997
+ var Ca = Object.defineProperty, ja = Object.getOwnPropertyDescriptor, ye = (c, e, a, t) => {
2998
+ for (var f = t > 1 ? void 0 : t ? ja(e, a) : e, o = c.length - 1, d; o >= 0; o--)
2999
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
3000
+ return t && f && Ca(e, a, f), f;
2815
3001
  };
2816
- let U = class extends C {
3002
+ let J = class extends S {
2817
3003
  constructor() {
2818
3004
  super(...arguments), this.type = "assistant";
2819
3005
  }
@@ -2840,9 +3026,9 @@ let U = class extends C {
2840
3026
  _addCopyEvents() {
2841
3027
  this.copyBtns.forEach((c) => {
2842
3028
  c.addEventListener("click", () => {
2843
- var a, f;
2844
- const e = (f = (a = c.parentElement) == null ? void 0 : a.nextElementSibling) == null ? void 0 : f.textContent;
2845
- e && Ac(e).then(() => {
3029
+ var a, t;
3030
+ const e = (t = (a = c.parentElement) == null ? void 0 : a.nextElementSibling) == null ? void 0 : t.textContent;
3031
+ e && Mc(e).then(() => {
2846
3032
  c.textContent = "Success", setTimeout(() => {
2847
3033
  c.textContent = "Copy";
2848
3034
  }, 500);
@@ -2857,12 +3043,12 @@ let U = class extends C {
2857
3043
  });
2858
3044
  }
2859
3045
  render() {
2860
- return D(
3046
+ return W(
2861
3047
  this.message.data || this.message.isThinking,
2862
- () => s`
3048
+ () => r`
2863
3049
  <div class="cb-message-row" part="cb-message-row">
2864
3050
  <!-- message -->
2865
- ${D(
3051
+ ${W(
2866
3052
  this._isBot,
2867
3053
  () => this.renderBotMessage(this.message),
2868
3054
  () => this.renderUserMessage(this.message)
@@ -2873,15 +3059,15 @@ let U = class extends C {
2873
3059
  );
2874
3060
  }
2875
3061
  renderButtons(c = "left") {
2876
- return s`<div class="cb-message__buttons ${c}">
3062
+ return r`<div class="cb-message__buttons ${c}">
2877
3063
  <!-- delete button -->
2878
3064
  <sl-button class="cb-message__delete-button" name="trash" @click=${this._removeMessageHandler} circle variant="text" size="small">
2879
- <cb-icon svg="${sa}" style="font-size: 1em !important;"></cb-icon>
3065
+ <cb-icon svg="${wa}" style="font-size: 1em !important;"></cb-icon>
2880
3066
  </sl-button>
2881
3067
  </div>`;
2882
3068
  }
2883
3069
  renderMessage(c) {
2884
- return s`
3070
+ return r`
2885
3071
  <div
2886
3072
  class="cb-message__content
2887
3073
  ${c.author}-message
@@ -2894,38 +3080,38 @@ let U = class extends C {
2894
3080
  `;
2895
3081
  }
2896
3082
  async _getMessageText(c) {
2897
- return Ee(c.data.text);
3083
+ return Be(c.data.text);
2898
3084
  }
2899
3085
  renderMessageContent(c) {
2900
3086
  var e;
2901
- return c.isThinking ? s`<cb-thinking></cb-thinking>` : c.isUploading ? s`<cb-uploading .files="${c.data.files || []}"></cb-uploading>` : c.type === "text" ? s`<div class="cb-message-text">
2902
- ${D(
3087
+ return c.isThinking ? r`<cb-thinking></cb-thinking>` : c.isUploading ? r`<cb-uploading .files="${c.data.files || []}"></cb-uploading>` : c.type === "text" ? r`<div class="cb-message-text">
3088
+ ${W(
2903
3089
  c.data.userName,
2904
- () => s`<div style="font-size: 12px; color:#9ca3af">${c.data.userName}</div>`,
3090
+ () => r`<div style="font-size: 12px; color:#9ca3af">${c.data.userName}</div>`,
2905
3091
  () => null
2906
3092
  )}
2907
- ${Ie(
2908
- this._getMessageText(c).then((a) => s`${a}`)
3093
+ ${ze(
3094
+ this._getMessageText(c).then((a) => r`${a}`)
2909
3095
  )}
2910
- </div>` : c.type === "file" ? s`${we(
3096
+ </div>` : c.type === "file" ? r`${te(
2911
3097
  c.data.files || [],
2912
3098
  (a) => a.id,
2913
- (a) => s`<cb-file filename="${a.name}" url="${a.url}"></cb-file>`
2914
- )}` : s`<div class="cb-message-text">
2915
- ${Ie(
2916
- Ee(((e = c.data.text) == null ? void 0 : e.toString()) || "").then((a) => s`${a}`)
3099
+ (a) => r`<cb-file filename="${a.name}" url="${a.url}"></cb-file>`
3100
+ )}` : r`<div class="cb-message-text">
3101
+ ${ze(
3102
+ Be(((e = c.data.text) == null ? void 0 : e.toString()) || "").then((a) => r`${a}`)
2917
3103
  )}
2918
3104
  </div>`;
2919
3105
  }
2920
3106
  renderBotMessageAvatar(c) {
2921
3107
  if (c.data.userName && c.data.userName !== "") {
2922
3108
  const e = c.data.userAvatar || "";
2923
- return s` <img src="${e}" style="width: 24px;height: 24px;" /> `;
3109
+ return r` <img src="${e}" style="width: 24px;height: 24px;" /> `;
2924
3110
  }
2925
- return c.author === "system" ? ae`${B(n.setting.systemIconSvg)}` : ae`${B(n.setting.botIconSvg)}`;
3111
+ return c.author === "system" ? re`${U(s.setting.systemIconSvg)}` : re`${U(s.setting.botIconSvg)}`;
2926
3112
  }
2927
3113
  renderBotMessage(c) {
2928
- return s`
3114
+ return r`
2929
3115
  <div class="cb-message cb-bot-message-wrapper" part="cb-message">
2930
3116
  <div class="avatar assistant-avatar xsmall" style="margin-top:4px;">${this.renderBotMessageAvatar(c)}</div>
2931
3117
  <div style="margin-left: 4px;width: 100%">${this.renderMessage(c)}</div>
@@ -2933,58 +3119,111 @@ let U = class extends C {
2933
3119
  `;
2934
3120
  }
2935
3121
  renderUserMessage(c) {
2936
- return s`
3122
+ return r`
2937
3123
  <div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
2938
3124
  <!--<sl-avatar class="avatar user-avatar small" label="User">
2939
- <cb-icon slot="icon" svg="${na}" color="white"></cb-icon>
3125
+ <cb-icon slot="icon" svg="${xa}" color="white"></cb-icon>
2940
3126
  </sl-avatar>-->
2941
- <div class="avatar user-avatar">${B(n.setting.userIconSvg)}</div>
3127
+ <div class="avatar user-avatar">${U(s.setting.userIconSvg)}</div>
2942
3128
  ${this.renderMessage(c)}
2943
3129
  </div>
2944
3130
  `;
2945
3131
  }
2946
3132
  };
2947
- U.styles = la;
2948
- he([
2949
- r({ type: Object })
2950
- ], U.prototype, "message", 2);
2951
- he([
2952
- r({ type: String })
2953
- ], U.prototype, "type", 2);
2954
- he([
2955
- pc(".code-block-header__copy")
2956
- ], U.prototype, "copyBtns", 2);
2957
- U = he([
2958
- k("cb-message")
2959
- ], U);
2960
- var ua = Object.defineProperty, ma = Object.getOwnPropertyDescriptor, Z = (c, e, a, f) => {
2961
- for (var t = f > 1 ? void 0 : f ? ma(e, a) : e, o = c.length - 1, d; o >= 0; o--)
2962
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
2963
- return f && t && ua(e, a, t), t;
3133
+ J.styles = _a;
3134
+ ye([
3135
+ b({ type: Object })
3136
+ ], J.prototype, "message", 2);
3137
+ ye([
3138
+ b({ type: String })
3139
+ ], J.prototype, "type", 2);
3140
+ ye([
3141
+ lc(".code-block-header__copy")
3142
+ ], J.prototype, "copyBtns", 2);
3143
+ J = ye([
3144
+ _("cb-message")
3145
+ ], J);
3146
+ var Sa = Object.defineProperty, Ma = Object.getOwnPropertyDescriptor, D = (c, e, a, t) => {
3147
+ for (var f = t > 1 ? void 0 : t ? Ma(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3148
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
3149
+ return t && f && Sa(e, a, f), f;
2964
3150
  };
2965
- const ee = pe.noConflict();
2966
- ee.setLevel("info");
2967
- let E = class extends C {
3151
+ const N = me.noConflict();
3152
+ N.setLevel("info");
3153
+ let z = class extends S {
2968
3154
  constructor() {
2969
- super(...arguments), this.messages = [], this.actions = [], this.calendlyInjected = !1, this.activeCalendlyAction = -1;
3155
+ super(...arguments), this.messages = [], this.actions = [], this.form = null, this.calendlyInjected = !1, this.activeCalendlyAction = -1;
2970
3156
  }
2971
3157
  render() {
2972
- return s`
3158
+ return r`
2973
3159
  <div class="cb-message-list" part="cb-message-list">
2974
- ${we(
3160
+ ${te(
2975
3161
  this.messages,
2976
3162
  (c) => c.id + JSON.stringify(c.data),
2977
- (c) => s`<cb-message .message="${c}"></cb-message>`
3163
+ (c) => r`<cb-message .message="${c}"></cb-message>`
2978
3164
  )}
2979
- ${this.renderActions()}
3165
+ ${this.renderActions()} ${this.renderForm()}
2980
3166
  <div id="cb-message-list-bottom-anchor"></div>
2981
3167
  </div>
2982
3168
  `;
2983
3169
  }
3170
+ renderForm() {
3171
+ return this.form ? r` <form class="cb-input-form" part="form" @submit="${this.handleFormSubmit.bind(this)}">
3172
+ <div class="cb-input-form-title">${this.form.title}</div>
3173
+ ${te(
3174
+ this.form.fields,
3175
+ (c, e) => e,
3176
+ (c) => {
3177
+ switch (c.type) {
3178
+ case "string":
3179
+ return r`<sl-input class="cb-input-form-input" id="${"cb-form-field" + c.name}" name="${c.name}" label="${c.title}" required></sl-input>`;
3180
+ case "email":
3181
+ return r`<sl-input class="cb-input-form-input" id="${"cb-form-field" + c.name}" name="${c.name}" type="email" label="${c.title}" required></sl-input>`;
3182
+ }
3183
+ }
3184
+ )}
3185
+ <sl-button class="cb-input-form-submit" variant="primary" pill type="submit">Send</sl-button>
3186
+ </form>` : null;
3187
+ }
3188
+ handleFormSubmit(c) {
3189
+ c.preventDefault();
3190
+ const e = {};
3191
+ if (Array.isArray(this.form.fields))
3192
+ for (let a = 0; a < this.form.fields.length; a++) {
3193
+ const t = this.form.fields[a], f = "#cb-form-field" + t.name, o = this._inputForm.querySelector(f);
3194
+ if (o)
3195
+ if ("validity" in o && o.validity.valid)
3196
+ console.log(`Got Field: ${t.name} value: ${o.value}`, o.validity), e[t.name] = o.value;
3197
+ else {
3198
+ console.error(`Field is invalid: ${t.name} value: ${o.value}`, o.validity);
3199
+ return;
3200
+ }
3201
+ }
3202
+ s.submitForm(e).then(() => {
3203
+ N.info("Form submitted", e), this.emit("form:submit", {
3204
+ detail: {
3205
+ formData: e
3206
+ }
3207
+ });
3208
+ }).catch((a) => {
3209
+ N.error(`Error when submitting form: ${a.message}`);
3210
+ });
3211
+ }
3212
+ /* Form sample
3213
+ <sl-input name="name" type="email" label="Name" required></sl-input>
3214
+ <sl-select label="Favorite Animal" clearable required>
3215
+ <sl-option value="birds">Birds</sl-option>
3216
+ <sl-option value="cats">Cats</sl-option>
3217
+ <sl-option value="dogs">Dogs</sl-option>
3218
+ <sl-option value="other">Other</sl-option>
3219
+ </sl-select>
3220
+ <sl-checkbox required>Check me before submitting</sl-checkbox>
3221
+ <br /><br />
3222
+ */
2984
3223
  renderActions() {
2985
- return !Array.isArray(this.actions) || this.actions.length <= 0 ? null : s`
3224
+ return !Array.isArray(this.actions) || this.actions.length <= 0 ? null : r`
2986
3225
  <div class="cb-actions-list">
2987
- ${we(
3226
+ ${te(
2988
3227
  this.actions,
2989
3228
  (c) => c,
2990
3229
  (c) => this.renderAction(c)
@@ -3005,29 +3244,29 @@ let E = class extends C {
3005
3244
  return null;
3006
3245
  }
3007
3246
  handleCalendlyEvent(c) {
3008
- switch (ee.info("Got Calendly Event:", c.data), c.data.event) {
3247
+ switch (N.info("Got Calendly Event:", c.data), c.data.event) {
3009
3248
  case "calendly.event_scheduled": {
3010
3249
  const e = this.activeCalendlyAction;
3011
- e >= 0 && (n.removeAction(e), n.addSystemMessage("Your meeting has been scheduled!"), this.activeCalendlyAction = -1);
3250
+ e >= 0 && (s.removeAction(e), s.addSystemMessage("Your meeting has been scheduled!"), this.activeCalendlyAction = -1);
3012
3251
  }
3013
3252
  }
3014
3253
  }
3015
3254
  invokeLinkAction(c = {}) {
3016
- ee.info("invokeLinkAction:", c), window.open(c.url, "_blank");
3255
+ N.info("invokeLinkAction:", c), window.open(c.url, "_blank");
3017
3256
  }
3018
3257
  invokeCalendlyAction(c = {}) {
3019
- return ee.info("invokeCalendlyAction:", c), "Calendly" in window && (this.activeCalendlyAction = c.internalId, window.Calendly.initPopupWidget({ url: c.url })), !1;
3258
+ return N.info("invokeCalendlyAction:", c), "Calendly" in window && (this.activeCalendlyAction = c.internalId, window.Calendly.initPopupWidget({ url: c.url })), !1;
3020
3259
  }
3021
3260
  renderCalendlyAction(c) {
3022
3261
  if (!("Calendly" in window) && !this.calendlyInjected) {
3023
3262
  let e = document.createElement("link");
3024
3263
  e.href = "https://assets.calendly.com/assets/external/widget.css", e.rel = "stylesheet", document.body.appendChild(e);
3025
3264
  let a = document.createElement("script");
3026
- a.type = "text/javascript", a.src = "https://assets.calendly.com/assets/external/widget.js", document.body.appendChild(a), console.log("Injected Calendly"), window.addEventListener("message", (f) => {
3027
- f.origin === "https://calendly.com" && f.data.event && f.data.event.indexOf("calendly.") !== -1 && this.handleCalendlyEvent(f);
3265
+ a.type = "text/javascript", a.src = "https://assets.calendly.com/assets/external/widget.js", document.body.appendChild(a), console.log("Injected Calendly"), window.addEventListener("message", (t) => {
3266
+ t.origin === "https://calendly.com" && t.data.event && t.data.event.indexOf("calendly.") !== -1 && this.handleCalendlyEvent(t);
3028
3267
  }), this.calendlyInjected = !0;
3029
3268
  }
3030
- return s`
3269
+ return r`
3031
3270
  <div class="cb-actions-list">
3032
3271
  <div class="cb-action ripple" @click="${this.invokeCalendlyAction.bind(this, c)}">
3033
3272
  <div class="cb-action-icon">
@@ -3044,7 +3283,7 @@ let E = class extends C {
3044
3283
  `;
3045
3284
  }
3046
3285
  renderLinkAction(c) {
3047
- return s`
3286
+ return r`
3048
3287
  <div class="cb-actions-list">
3049
3288
  <div class="cb-action ripple" @click="${this.invokeLinkAction.bind(this, c)}">
3050
3289
  <div class="cb-action-icon">
@@ -3058,27 +3297,33 @@ let E = class extends C {
3058
3297
  `;
3059
3298
  }
3060
3299
  };
3061
- E.styles = Zc;
3062
- Z([
3063
- r({ type: Array })
3064
- ], E.prototype, "messages", 2);
3065
- Z([
3066
- r({ type: Array })
3067
- ], E.prototype, "actions", 2);
3068
- Z([
3069
- le("#cb-message-list-bottom-anchor")
3070
- ], E.prototype, "_messageListBottomAnchor", 2);
3071
- Z([
3072
- qe({ capture: !1, passive: !0 })
3073
- ], E.prototype, "invokeLinkAction", 1);
3074
- Z([
3075
- qe({ capture: !1, passive: !0 })
3076
- ], E.prototype, "invokeCalendlyAction", 1);
3077
- E = Z([
3078
- k("cb-message-list")
3079
- ], E);
3080
- const ya = x`
3081
- ${I}
3300
+ z.styles = aa;
3301
+ D([
3302
+ b({ type: Array })
3303
+ ], z.prototype, "messages", 2);
3304
+ D([
3305
+ b({ type: Array })
3306
+ ], z.prototype, "actions", 2);
3307
+ D([
3308
+ b({ type: Object })
3309
+ ], z.prototype, "form", 2);
3310
+ D([
3311
+ ee("#cb-message-list-bottom-anchor")
3312
+ ], z.prototype, "_messageListBottomAnchor", 2);
3313
+ D([
3314
+ ee(".cb-input-form")
3315
+ ], z.prototype, "_inputForm", 2);
3316
+ D([
3317
+ Ue({ capture: !1, passive: !0 })
3318
+ ], z.prototype, "invokeLinkAction", 1);
3319
+ D([
3320
+ Ue({ capture: !1, passive: !0 })
3321
+ ], z.prototype, "invokeCalendlyAction", 1);
3322
+ z = D([
3323
+ _("cb-message-list")
3324
+ ], z);
3325
+ const Aa = x`
3326
+ ${T}
3082
3327
 
3083
3328
  :host {
3084
3329
  width: 100%;
@@ -3120,16 +3365,24 @@ const ya = x`
3120
3365
  .cb-input-buttons {
3121
3366
  padding: 0 5px;
3122
3367
  }
3123
- `, va = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576L6.636 10.07Zm6.787-8.201L1.591 6.602l4.339 2.76l7.494-7.493Z"/></svg>', wa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M4.5 3a2.5 2.5 0 0 1 5 0v9a1.5 1.5 0 0 1-3 0V5a.5.5 0 0 1 1 0v7a.5.5 0 0 0 1 0V3a1.5 1.5 0 1 0-3 0v9a2.5 2.5 0 0 0 5 0V5a.5.5 0 0 1 1 0v7a3.5 3.5 0 1 1-7 0V3z"/></svg>';
3124
- var xa = Object.defineProperty, ka = Object.getOwnPropertyDescriptor, P = (c, e, a, f) => {
3125
- for (var t = f > 1 ? void 0 : f ? ka(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3126
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3127
- return f && t && xa(e, a, t), t;
3368
+ `, Ia = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576L6.636 10.07Zm6.787-8.201L1.591 6.602l4.339 2.76l7.494-7.493Z"/></svg>', Oa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M4.5 3a2.5 2.5 0 0 1 5 0v9a1.5 1.5 0 0 1-3 0V5a.5.5 0 0 1 1 0v7a.5.5 0 0 0 1 0V3a1.5 1.5 0 1 0-3 0v9a2.5 2.5 0 0 0 5 0V5a.5.5 0 0 1 1 0v7a3.5 3.5 0 1 1-7 0V3z"/></svg>';
3369
+ var La = Object.defineProperty, Ha = Object.getOwnPropertyDescriptor, B = (c, e, a, t) => {
3370
+ for (var f = t > 1 ? void 0 : t ? Ha(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3371
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
3372
+ return t && f && La(e, a, f), f;
3128
3373
  };
3129
- let L = class extends C {
3374
+ let H = class extends S {
3130
3375
  constructor() {
3131
3376
  super(...arguments), this.placeholder = "Type a message...", this.sendButtonLabel = "Send", this.enableFileUpload = !1, this.value = "", this.loading = !1, this.disabled = !1, this.currentKey = "";
3132
3377
  }
3378
+ connectedCallback() {
3379
+ super.connectedCallback(), addEventListener("form:submit", this._formSubmitHandler.bind(this));
3380
+ }
3381
+ async _formSubmitHandler(c) {
3382
+ requestIdleCallback(() => {
3383
+ this.inputElement.focus();
3384
+ });
3385
+ }
3133
3386
  _inputChangeHandler(c) {
3134
3387
  const e = c.target;
3135
3388
  this.value = e.value;
@@ -3149,7 +3402,7 @@ let L = class extends C {
3149
3402
  });
3150
3403
  }
3151
3404
  async _sendFileHandler() {
3152
- const c = await Lc();
3405
+ const c = await Ac();
3153
3406
  this.emit("message:send:file", {
3154
3407
  detail: {
3155
3408
  files: c
@@ -3157,7 +3410,7 @@ let L = class extends C {
3157
3410
  });
3158
3411
  }
3159
3412
  render() {
3160
- return s`
3413
+ return r`
3161
3414
  <div class="cb-user-input-wrapper" part="user-input-wrapper">
3162
3415
  <sl-textarea
3163
3416
  @sl-input=${this._inputChangeHandler}
@@ -3174,29 +3427,19 @@ let L = class extends C {
3174
3427
  ></sl-textarea>
3175
3428
 
3176
3429
  <span class="cb-input-buttons">
3177
- ${D(
3430
+ ${W(
3178
3431
  this.enableFileUpload,
3179
- () => s`
3432
+ () => r`
3180
3433
  <sl-button @click=${this._sendFileHandler} name="paperclip" label="Attachment" size="large" class="paperclip-button" variant="text" circle>
3181
- <cb-icon svg="${wa}"></cb-icon>
3434
+ <cb-icon svg="${Oa}"></cb-icon>
3182
3435
  <!-- select file input -->
3183
3436
  <input type="file" id="file" name="file" class="file-input" />
3184
3437
  </sl-button>
3185
3438
  `,
3186
- () => s``
3439
+ () => r``
3187
3440
  )}
3188
- <sl-button
3189
- @click=${this._sendHandler}
3190
- name="send"
3191
- label="Send"
3192
- size="small"
3193
- class="send-button"
3194
- variant="text"
3195
- ?disabled=${this.value.length === 0}
3196
- ?loading=${this.loading}
3197
- circle
3198
- >
3199
- <cb-icon svg="${va}"></cb-icon>
3441
+ <sl-button @click=${this._sendHandler} name="send" label="Send" size="small" class="send-button" variant="text" ?disabled=${this.value.length === 0} ?loading=${this.loading} circle>
3442
+ <cb-icon svg="${Ia}"></cb-icon>
3200
3443
  </sl-button>
3201
3444
  </span>
3202
3445
  </div>
@@ -3206,36 +3449,36 @@ let L = class extends C {
3206
3449
  c.key === "Enter" && !c.shiftKey && this._sendHandler();
3207
3450
  }
3208
3451
  };
3209
- L.styles = ya;
3210
- P([
3211
- r({ type: String, attribute: "placeholder" })
3212
- ], L.prototype, "placeholder", 2);
3213
- P([
3214
- r({ type: String, attribute: "send-button-label" })
3215
- ], L.prototype, "sendButtonLabel", 2);
3216
- P([
3217
- r({ type: Boolean, attribute: "enable-file-upload" })
3218
- ], L.prototype, "enableFileUpload", 2);
3219
- P([
3220
- r({ type: String })
3221
- ], L.prototype, "value", 2);
3222
- P([
3223
- r({ type: Boolean })
3224
- ], L.prototype, "loading", 2);
3225
- P([
3226
- r({ type: Boolean })
3227
- ], L.prototype, "disabled", 2);
3228
- P([
3229
- r({ type: String })
3230
- ], L.prototype, "currentKey", 2);
3231
- P([
3232
- le("sl-textarea")
3233
- ], L.prototype, "inputElement", 2);
3234
- L = P([
3235
- k("cb-user-input")
3236
- ], L);
3237
- const _a = x`
3238
- ${I}
3452
+ H.styles = Aa;
3453
+ B([
3454
+ b({ type: String, attribute: "placeholder" })
3455
+ ], H.prototype, "placeholder", 2);
3456
+ B([
3457
+ b({ type: String, attribute: "send-button-label" })
3458
+ ], H.prototype, "sendButtonLabel", 2);
3459
+ B([
3460
+ b({ type: Boolean, attribute: "enable-file-upload" })
3461
+ ], H.prototype, "enableFileUpload", 2);
3462
+ B([
3463
+ b({ type: String })
3464
+ ], H.prototype, "value", 2);
3465
+ B([
3466
+ b({ type: Boolean })
3467
+ ], H.prototype, "loading", 2);
3468
+ B([
3469
+ b({ type: Boolean })
3470
+ ], H.prototype, "disabled", 2);
3471
+ B([
3472
+ b({ type: String })
3473
+ ], H.prototype, "currentKey", 2);
3474
+ B([
3475
+ ee("sl-textarea")
3476
+ ], H.prototype, "inputElement", 2);
3477
+ H = B([
3478
+ _("cb-user-input")
3479
+ ], H);
3480
+ const Pa = x`
3481
+ ${T}
3239
3482
 
3240
3483
  sl-dialog::part(base) {
3241
3484
  z-index: 1000;
@@ -3269,12 +3512,12 @@ const _a = x`
3269
3512
  gap: 8px;
3270
3513
  }
3271
3514
  `;
3272
- var Ca = Object.defineProperty, $a = Object.getOwnPropertyDescriptor, ge = (c, e, a, f) => {
3273
- for (var t = f > 1 ? void 0 : f ? $a(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3274
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3275
- return f && t && Ca(e, a, t), t;
3515
+ var Ea = Object.defineProperty, za = Object.getOwnPropertyDescriptor, ve = (c, e, a, t) => {
3516
+ for (var f = t > 1 ? void 0 : t ? za(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3517
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
3518
+ return t && f && Ea(e, a, f), f;
3276
3519
  };
3277
- let F = class extends C {
3520
+ let K = class extends S {
3278
3521
  constructor() {
3279
3522
  super(...arguments), this.open = !1, this.label = "Dialog", this.zindex = 100;
3280
3523
  }
@@ -3282,7 +3525,7 @@ let F = class extends C {
3282
3525
  this.emit("cancel");
3283
3526
  }
3284
3527
  render() {
3285
- return s` <sl-dialog
3528
+ return r` <sl-dialog
3286
3529
  label="Setting"
3287
3530
  class="cb-dialog"
3288
3531
  style="sl-dialog::part(base) { z-index: ${this.zindex}; }"
@@ -3292,7 +3535,7 @@ let F = class extends C {
3292
3535
  >
3293
3536
  <header class="cb-header">
3294
3537
  <div class="cb-header__left">
3295
- ${this.label ? s`<span class="title">${this.label}</span>` : ""}
3538
+ ${this.label ? r`<span class="title">${this.label}</span>` : ""}
3296
3539
  </div>
3297
3540
  <sl-button
3298
3541
  @click=${this._settingCancelHandler}
@@ -3305,7 +3548,7 @@ let F = class extends C {
3305
3548
  <cb-icon
3306
3549
  color="default"
3307
3550
  style="font-size: 1em;"
3308
- svg="${te}"
3551
+ svg="${be}"
3309
3552
  ></cb-icon>
3310
3553
  </sl-button>
3311
3554
  </header>
@@ -3318,30 +3561,30 @@ let F = class extends C {
3318
3561
  </sl-dialog>`;
3319
3562
  }
3320
3563
  };
3321
- F.styles = _a;
3322
- ge([
3323
- r({ type: Boolean })
3324
- ], F.prototype, "open", 2);
3325
- ge([
3326
- r({ type: String, attribute: "label" })
3327
- ], F.prototype, "label", 2);
3328
- ge([
3329
- r({ type: Number })
3330
- ], F.prototype, "zindex", 2);
3331
- F = ge([
3332
- k("cb-dialog")
3333
- ], F);
3334
- var ja = Object.defineProperty, Ma = Object.getOwnPropertyDescriptor, Je = (c, e, a, f) => {
3335
- for (var t = f > 1 ? void 0 : f ? Ma(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3336
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3337
- return f && t && ja(e, a, t), t;
3564
+ K.styles = Pa;
3565
+ ve([
3566
+ b({ type: Boolean })
3567
+ ], K.prototype, "open", 2);
3568
+ ve([
3569
+ b({ type: String, attribute: "label" })
3570
+ ], K.prototype, "label", 2);
3571
+ ve([
3572
+ b({ type: Number })
3573
+ ], K.prototype, "zindex", 2);
3574
+ K = ve([
3575
+ _("cb-dialog")
3576
+ ], K);
3577
+ var Ta = Object.defineProperty, Ba = Object.getOwnPropertyDescriptor, Xe = (c, e, a, t) => {
3578
+ for (var f = t > 1 ? void 0 : t ? Ba(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3579
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
3580
+ return t && f && Ta(e, a, f), f;
3338
3581
  };
3339
- let de = class extends C {
3582
+ let ie = class extends S {
3340
3583
  constructor() {
3341
3584
  super(...arguments), this.open = !1;
3342
3585
  }
3343
3586
  render() {
3344
- return s` <cb-dialog
3587
+ return r` <cb-dialog
3345
3588
  label="Confirm"
3346
3589
  class="cb-clear-message-dialog"
3347
3590
  ?open=${this.open}
@@ -3370,7 +3613,7 @@ let de = class extends C {
3370
3613
  this.emit("cancel");
3371
3614
  }
3372
3615
  };
3373
- de.styles = x`
3616
+ ie.styles = x`
3374
3617
  .cb-clear-message-dialog {
3375
3618
  }
3376
3619
 
@@ -3378,13 +3621,13 @@ de.styles = x`
3378
3621
  z-index: 1000;
3379
3622
  }
3380
3623
  `;
3381
- Je([
3382
- r({ type: Boolean })
3383
- ], de.prototype, "open", 2);
3384
- de = Je([
3385
- k("cb-clear-message-dialog")
3386
- ], de);
3387
- const Sa = x`
3624
+ Xe([
3625
+ b({ type: Boolean })
3626
+ ], ie.prototype, "open", 2);
3627
+ ie = Xe([
3628
+ _("cb-clear-message-dialog")
3629
+ ], ie);
3630
+ const Ra = x`
3388
3631
  :host {
3389
3632
  // width: 380px;
3390
3633
 
@@ -3444,17 +3687,17 @@ const Sa = x`
3444
3687
  grid-column-start: 2;
3445
3688
  }
3446
3689
  `;
3447
- var Aa = Object.defineProperty, La = Object.getOwnPropertyDescriptor, N = (c, e, a, f) => {
3448
- for (var t = f > 1 ? void 0 : f ? La(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3449
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3450
- return f && t && Aa(e, a, t), t;
3690
+ var Va = Object.defineProperty, Da = Object.getOwnPropertyDescriptor, Y = (c, e, a, t) => {
3691
+ for (var f = t > 1 ? void 0 : t ? Da(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3692
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
3693
+ return t && f && Va(e, a, f), f;
3451
3694
  };
3452
- let z = class extends C {
3695
+ let R = class extends S {
3453
3696
  constructor() {
3454
3697
  super(...arguments), this.open = !1, this.clearMessageDialogOpen = !1, this.customRequest = !1;
3455
3698
  }
3456
3699
  render() {
3457
- return this.customRequest = this.setting.customRequest, s`
3700
+ return this.customRequest = this.setting.customRequest, r`
3458
3701
  <cb-dialog
3459
3702
  label="Setting"
3460
3703
  class="cb-dialog"
@@ -3488,7 +3731,7 @@ let z = class extends C {
3488
3731
  Enable it for your own backend.
3489
3732
  </sl-switch>
3490
3733
  </div> -->
3491
- ${D(
3734
+ ${W(
3492
3735
  this.customRequest,
3493
3736
  () => null,
3494
3737
  () => this.renderInternalServices()
@@ -3547,7 +3790,7 @@ let z = class extends C {
3547
3790
  `;
3548
3791
  }
3549
3792
  renderInternalServices() {
3550
- return s`
3793
+ return r`
3551
3794
  <div class="form-item">
3552
3795
  <label class="label">Service</label>
3553
3796
  <sl-radio-group name="openai" value="openai" size="small">
@@ -3585,13 +3828,13 @@ let z = class extends C {
3585
3828
  }
3586
3829
  // input change handler
3587
3830
  _inputChangeHandler(c) {
3588
- const { name: e, value: a } = c.target, [f, t] = e.split(".");
3589
- t ? this.setting[f][t] = a : this.setting[f] = a;
3831
+ const { name: e, value: a } = c.target, [t, f] = e.split(".");
3832
+ f ? this.setting[t][f] = a : this.setting[t] = a;
3590
3833
  }
3591
3834
  // checked change handler
3592
3835
  _checkChangeHandler(c) {
3593
- const { name: e, checked: a } = c.target, [f, t] = e.split(".");
3594
- t ? this.setting[f][t] = a : this.setting[f] = a, f === "customRequest" && (this.customRequest = a);
3836
+ const { name: e, checked: a } = c.target, [t, f] = e.split(".");
3837
+ f ? this.setting[t][f] = a : this.setting[t] = a, t === "customRequest" && (this.customRequest = a);
3595
3838
  }
3596
3839
  // emit setting confirm event
3597
3840
  _settingConfirmHandler() {
@@ -3612,27 +3855,27 @@ let z = class extends C {
3612
3855
  });
3613
3856
  }
3614
3857
  };
3615
- z.styles = Sa;
3616
- N([
3617
- r({ type: Boolean })
3618
- ], z.prototype, "open", 2);
3619
- N([
3620
- r({ type: Object })
3621
- ], z.prototype, "setting", 2);
3622
- N([
3623
- r({ type: Boolean })
3624
- ], z.prototype, "clearMessageDialogOpen", 2);
3625
- N([
3626
- le("sl-dialog")
3627
- ], z.prototype, "dialog", 2);
3628
- N([
3629
- r({ type: Boolean })
3630
- ], z.prototype, "customRequest", 2);
3631
- z = N([
3632
- k("cb-setting")
3633
- ], z);
3634
- const Oa = x`
3635
- ${I}
3858
+ R.styles = Ra;
3859
+ Y([
3860
+ b({ type: Boolean })
3861
+ ], R.prototype, "open", 2);
3862
+ Y([
3863
+ b({ type: Object })
3864
+ ], R.prototype, "setting", 2);
3865
+ Y([
3866
+ b({ type: Boolean })
3867
+ ], R.prototype, "clearMessageDialogOpen", 2);
3868
+ Y([
3869
+ ee("sl-dialog")
3870
+ ], R.prototype, "dialog", 2);
3871
+ Y([
3872
+ b({ type: Boolean })
3873
+ ], R.prototype, "customRequest", 2);
3874
+ R = Y([
3875
+ _("cb-setting")
3876
+ ], R);
3877
+ const Fa = x`
3878
+ ${T}
3636
3879
  :host {
3637
3880
  --primary-color: var(--sl-color-primary-600);
3638
3881
 
@@ -3722,15 +3965,15 @@ const Oa = x`
3722
3965
  align-items: start;
3723
3966
  gap: 10px;
3724
3967
  }
3725
- `, Ha = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M16 8c0 3.866-3.582 7-8 7a9.06 9.06 0 0 1-2.347-.306c-.584.296-1.925.864-4.181 1.234c-.2.032-.352-.176-.273-.362c.354-.836.674-1.95.77-2.966C.744 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7zM5 8a1 1 0 1 0-2 0a1 1 0 0 0 2 0zm4 0a1 1 0 1 0-2 0a1 1 0 0 0 2 0zm3 1a1 1 0 1 0 0-2a1 1 0 0 0 0 2z"/></svg>';
3726
- var Ia = Object.defineProperty, Pa = Object.getOwnPropertyDescriptor, Ye = (c, e, a, f) => {
3727
- for (var t = f > 1 ? void 0 : f ? Pa(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3728
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3729
- return f && t && Ia(e, a, t), t;
3968
+ `, qa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M16 8c0 3.866-3.582 7-8 7a9.06 9.06 0 0 1-2.347-.306c-.584.296-1.925.864-4.181 1.234c-.2.032-.352-.176-.273-.362c.354-.836.674-1.95.77-2.966C.744 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7zM5 8a1 1 0 1 0-2 0a1 1 0 0 0 2 0zm4 0a1 1 0 1 0-2 0a1 1 0 0 0 2 0zm3 1a1 1 0 1 0 0-2a1 1 0 0 0 0 2z"/></svg>';
3969
+ var Ua = Object.defineProperty, Za = Object.getOwnPropertyDescriptor, Qe = (c, e, a, t) => {
3970
+ for (var f = t > 1 ? void 0 : t ? Za(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3971
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
3972
+ return t && f && Ua(e, a, f), f;
3730
3973
  };
3731
- let be = class extends C {
3974
+ let le = class extends S {
3732
3975
  constructor() {
3733
- super(...arguments), this.store = new Ue(this, n), this.open = !1;
3976
+ super(...arguments), this.store = new Ne(this, s), this.open = !1;
3734
3977
  }
3735
3978
  // handler click
3736
3979
  _clickHandler() {
@@ -3742,25 +3985,25 @@ let be = class extends C {
3742
3985
  }), this.open = c;
3743
3986
  }
3744
3987
  _engageClickHandler(c) {
3745
- console.log("engage close clicked!"), n.engage = !1, c.stopPropagation();
3988
+ console.log("engage close clicked!"), s.engage = !1, c.stopPropagation();
3746
3989
  }
3747
3990
  render() {
3748
- return s`
3991
+ return r`
3749
3992
  <div class="cb-anchor ${this.open ? "open" : ""}" part="cb-anchor" @click=${this._clickHandler.bind(this)}>
3750
- <sl-popup placement="top-end" distance="16" ?active="${n.engage && !n.open}">
3993
+ <sl-popup placement="top-end" distance="16" ?active="${s.engage && !s.open}">
3751
3994
  <sl-button slot="anchor" label="Start" size="large" variant="primary" class="icon anchor-button" circle>
3752
- ${D(
3995
+ ${W(
3753
3996
  this.open,
3754
- () => s`<cb-icon color="white" svg="${te}"></cb-icon>`,
3755
- () => s`<cb-icon color="white" svg="${Ha}"></cb-icon>`
3997
+ () => r`<cb-icon color="white" svg="${be}"></cb-icon>`,
3998
+ () => r`<cb-icon color="white" svg="${qa}"></cb-icon>`
3756
3999
  )}
3757
4000
  </sl-button>
3758
4001
  <div class="cb-engage-popup">
3759
- <div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${ae`${B(te)}`}</div>
4002
+ <div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${re`${U(be)}`}</div>
3760
4003
  <div class="cb-engage-popup-content">
3761
- <div class="cb-engage-popup-logo">${ae`${B(n.setting.logoSvg)}`}</div>
3762
- <!--<cb-icon class="cb-engage-popup-logo" svg="${n.setting.logoSvg}"></cb-icon>-->
3763
- <div>${n.setting.engageMessage}</div>
4004
+ <div class="cb-engage-popup-logo">${re`${U(s.setting.logoSvg)}`}</div>
4005
+ <!--<cb-icon class="cb-engage-popup-logo" svg="${s.setting.logoSvg}"></cb-icon>-->
4006
+ <div>${s.setting.engageMessage}</div>
3764
4007
  </div>
3765
4008
  </div>
3766
4009
  </sl-popup>
@@ -3768,67 +4011,67 @@ let be = class extends C {
3768
4011
  `;
3769
4012
  }
3770
4013
  };
3771
- be.styles = Oa;
3772
- Ye([
3773
- r({ type: Boolean })
3774
- ], be.prototype, "open", 2);
3775
- be = Ye([
3776
- k("cb-anchor")
3777
- ], be);
3778
- const Ea = x`
3779
- ${I}
3780
- `, Ce = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M4.54.146A.5.5 0 0 1 4.893 0h6.214a.5.5 0 0 1 .353.146l4.394 4.394a.5.5 0 0 1 .146.353v6.214a.5.5 0 0 1-.146.353l-4.394 4.394a.5.5 0 0 1-.353.146H4.893a.5.5 0 0 1-.353-.146L.146 11.46A.5.5 0 0 1 0 11.107V4.893a.5.5 0 0 1 .146-.353L4.54.146zM5.1 1L1 5.1v5.8L5.1 15h5.8l4.1-4.1V5.1L10.9 1H5.1z"/><path d="M7.002 11a1 1 0 1 1 2 0a1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z"/></g></svg>', Ge = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016a.146.146 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.163.163 0 0 1-.054.06a.116.116 0 0 1-.066.017H1.146a.115.115 0 0 1-.066-.017a.163.163 0 0 1-.054-.06a.176.176 0 0 1 .002-.183L7.884 2.073a.147.147 0 0 1 .054-.057zm1.044-.45a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566z"/><path d="M7.002 12a1 1 0 1 1 2 0a1 1 0 0 1-2 0zM7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995z"/></g></svg>', Xe = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M2.5 8a5.5 5.5 0 0 1 8.25-4.764a.5.5 0 0 0 .5-.866A6.5 6.5 0 1 0 14.5 8a.5.5 0 0 0-1 0a5.5 5.5 0 1 1-11 0z"/><path d="M15.354 3.354a.5.5 0 0 0-.708-.708L8 9.293L5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l7-7z"/></g></svg>', Qe = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/><path d="m8.93 6.588l-2.29.287l-.082.38l.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319c.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246c-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0a1 1 0 0 1 2 0z"/></g></svg>';
3781
- var za = Object.defineProperty, Ta = Object.getOwnPropertyDescriptor, ec = (c, e, a, f) => {
3782
- for (var t = f > 1 ? void 0 : f ? Ta(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3783
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3784
- return f && t && za(e, a, t), t;
4014
+ le.styles = Fa;
4015
+ Qe([
4016
+ b({ type: Boolean })
4017
+ ], le.prototype, "open", 2);
4018
+ le = Qe([
4019
+ _("cb-anchor")
4020
+ ], le);
4021
+ const Na = x`
4022
+ ${T}
4023
+ `, Re = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M4.54.146A.5.5 0 0 1 4.893 0h6.214a.5.5 0 0 1 .353.146l4.394 4.394a.5.5 0 0 1 .146.353v6.214a.5.5 0 0 1-.146.353l-4.394 4.394a.5.5 0 0 1-.353.146H4.893a.5.5 0 0 1-.353-.146L.146 11.46A.5.5 0 0 1 0 11.107V4.893a.5.5 0 0 1 .146-.353L4.54.146zM5.1 1L1 5.1v5.8L5.1 15h5.8l4.1-4.1V5.1L10.9 1H5.1z"/><path d="M7.002 11a1 1 0 1 1 2 0a1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z"/></g></svg>', Wa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016a.146.146 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.163.163 0 0 1-.054.06a.116.116 0 0 1-.066.017H1.146a.115.115 0 0 1-.066-.017a.163.163 0 0 1-.054-.06a.176.176 0 0 1 .002-.183L7.884 2.073a.147.147 0 0 1 .054-.057zm1.044-.45a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566z"/><path d="M7.002 12a1 1 0 1 1 2 0a1 1 0 0 1-2 0zM7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995z"/></g></svg>', Ja = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M2.5 8a5.5 5.5 0 0 1 8.25-4.764a.5.5 0 0 0 .5-.866A6.5 6.5 0 1 0 14.5 8a.5.5 0 0 0-1 0a5.5 5.5 0 1 1-11 0z"/><path d="M15.354 3.354a.5.5 0 0 0-.708-.708L8 9.293L5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l7-7z"/></g></svg>', Ka = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/><path d="m8.93 6.588l-2.29.287l-.082.38l.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319c.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246c-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0a1 1 0 0 1 2 0z"/></g></svg>';
4024
+ var Ya = Object.defineProperty, Ga = Object.getOwnPropertyDescriptor, ec = (c, e, a, t) => {
4025
+ for (var f = t > 1 ? void 0 : t ? Ga(e, a) : e, o = c.length - 1, d; o >= 0; o--)
4026
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
4027
+ return t && f && Ya(e, a, f), f;
3785
4028
  };
3786
- const ze = {
4029
+ const Ve = {
3787
4030
  error: {
3788
4031
  variant: "danger",
3789
- icon: Ce
4032
+ icon: Re
3790
4033
  },
3791
4034
  danger: {
3792
4035
  variant: "danger",
3793
- icon: Ce
4036
+ icon: Re
3794
4037
  },
3795
4038
  warning: {
3796
4039
  variant: "warning",
3797
- icon: Ge
4040
+ icon: Wa
3798
4041
  },
3799
4042
  success: {
3800
4043
  variant: "success",
3801
- icon: Xe
4044
+ icon: Ja
3802
4045
  },
3803
4046
  info: {
3804
4047
  variant: "primary",
3805
- icon: Qe
4048
+ icon: Ka
3806
4049
  }
3807
4050
  };
3808
- let re = class extends C {
4051
+ let pe = class extends S {
3809
4052
  constructor() {
3810
4053
  super(...arguments), this.status = "info";
3811
4054
  }
3812
4055
  render() {
3813
- const { variant: c, icon: e } = ze[this.status] || ze.info;
3814
- return s`<cb-icon svg=${e} color="${c}"></cb-icon>`;
4056
+ const { variant: c, icon: e } = Ve[this.status] || Ve.info;
4057
+ return r`<cb-icon svg=${e} color="${c}"></cb-icon>`;
3815
4058
  }
3816
4059
  };
3817
- re.styles = Ne;
4060
+ pe.styles = Ke;
3818
4061
  ec([
3819
- r({ type: String })
3820
- ], re.prototype, "status", 2);
3821
- re = ec([
3822
- k("cb-status-icon")
3823
- ], re);
3824
- var Ba = Object.defineProperty, Ra = Object.getOwnPropertyDescriptor, Va = (c, e, a, f) => {
3825
- for (var t = f > 1 ? void 0 : f ? Ra(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3826
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3827
- return f && t && Ba(e, a, t), t;
4062
+ b({ type: String })
4063
+ ], pe.prototype, "status", 2);
4064
+ pe = ec([
4065
+ _("cb-status-icon")
4066
+ ], pe);
4067
+ var Xa = Object.defineProperty, Qa = Object.getOwnPropertyDescriptor, e1 = (c, e, a, t) => {
4068
+ for (var f = t > 1 ? void 0 : t ? Qa(e, a) : e, o = c.length - 1, d; o >= 0; o--)
4069
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
4070
+ return t && f && Xa(e, a, f), f;
3828
4071
  };
3829
- let $e = class extends C {
4072
+ let Me = class extends S {
3830
4073
  render() {
3831
- return s` <sl-alert variant="danger" open>
4074
+ return r` <sl-alert variant="danger" open>
3832
4075
  <cb-status-icon status="error" slot="icon"></cb-status-icon>
3833
4076
  Please config openai api key in the settings.
3834
4077
  <span
@@ -3842,14 +4085,14 @@ let $e = class extends C {
3842
4085
  this.emit("setting:show");
3843
4086
  }
3844
4087
  };
3845
- $e.styles = Ea;
3846
- $e = Va([
3847
- k("cb-auth-alert")
3848
- ], $e);
3849
- class Te extends Error {
3850
- constructor(e, a, f) {
3851
- const t = e.status || e.status === 0 ? e.status : "", o = e.statusText || "", d = `${t} ${o}`.trim(), b = d ? `status code ${d}` : "an unknown error";
3852
- super(`Request failed with ${b}`), Object.defineProperty(this, "response", {
4088
+ Me.styles = Na;
4089
+ Me = e1([
4090
+ _("cb-auth-alert")
4091
+ ], Me);
4092
+ class De extends Error {
4093
+ constructor(e, a, t) {
4094
+ const f = e.status || e.status === 0 ? e.status : "", o = e.statusText || "", d = `${f} ${o}`.trim(), n = d ? `status code ${d}` : "an unknown error";
4095
+ super(`Request failed with ${n}`), Object.defineProperty(this, "response", {
3853
4096
  enumerable: !0,
3854
4097
  configurable: !0,
3855
4098
  writable: !0,
@@ -3864,7 +4107,7 @@ class Te extends Error {
3864
4107
  configurable: !0,
3865
4108
  writable: !0,
3866
4109
  value: void 0
3867
- }), this.name = "HTTPError", this.response = e, this.request = a, this.options = f;
4110
+ }), this.name = "HTTPError", this.response = e, this.request = a, this.options = t;
3868
4111
  }
3869
4112
  }
3870
4113
  class cc extends Error {
@@ -3877,31 +4120,31 @@ class cc extends Error {
3877
4120
  }), this.name = "TimeoutError", this.request = e;
3878
4121
  }
3879
4122
  }
3880
- const ce = (c) => c !== null && typeof c == "object", X = (...c) => {
4123
+ const oe = (c) => c !== null && typeof c == "object", ae = (...c) => {
3881
4124
  for (const e of c)
3882
- if ((!ce(e) || Array.isArray(e)) && typeof e < "u")
4125
+ if ((!oe(e) || Array.isArray(e)) && typeof e < "u")
3883
4126
  throw new TypeError("The `options` argument must be an object");
3884
- return Le({}, ...c);
4127
+ return He({}, ...c);
3885
4128
  }, ac = (c = {}, e = {}) => {
3886
- const a = new globalThis.Headers(c), f = e instanceof globalThis.Headers, t = new globalThis.Headers(e);
3887
- for (const [o, d] of t.entries())
3888
- f && d === "undefined" || d === void 0 ? a.delete(o) : a.set(o, d);
4129
+ const a = new globalThis.Headers(c), t = e instanceof globalThis.Headers, f = new globalThis.Headers(e);
4130
+ for (const [o, d] of f.entries())
4131
+ t && d === "undefined" || d === void 0 ? a.delete(o) : a.set(o, d);
3889
4132
  return a;
3890
- }, Le = (...c) => {
4133
+ }, He = (...c) => {
3891
4134
  let e = {}, a = {};
3892
- for (const f of c)
3893
- if (Array.isArray(f))
3894
- Array.isArray(e) || (e = []), e = [...e, ...f];
3895
- else if (ce(f)) {
3896
- for (let [t, o] of Object.entries(f))
3897
- ce(o) && t in e && (o = Le(e[t], o)), e = { ...e, [t]: o };
3898
- ce(f.headers) && (a = ac(a, f.headers), e.headers = a);
4135
+ for (const t of c)
4136
+ if (Array.isArray(t))
4137
+ Array.isArray(e) || (e = []), e = [...e, ...t];
4138
+ else if (oe(t)) {
4139
+ for (let [f, o] of Object.entries(t))
4140
+ oe(o) && f in e && (o = He(e[f], o)), e = { ...e, [f]: o };
4141
+ oe(t.headers) && (a = ac(a, t.headers), e.headers = a);
3899
4142
  }
3900
4143
  return e;
3901
- }, qa = (() => {
4144
+ }, c1 = (() => {
3902
4145
  let c = !1, e = !1;
3903
- const a = typeof globalThis.ReadableStream == "function", f = typeof globalThis.Request == "function";
3904
- return a && f && (e = new globalThis.Request("https://a.com", {
4146
+ const a = typeof globalThis.ReadableStream == "function", t = typeof globalThis.Request == "function";
4147
+ return a && t && (e = new globalThis.Request("https://a.com", {
3905
4148
  body: new globalThis.ReadableStream(),
3906
4149
  method: "POST",
3907
4150
  // @ts-expect-error - Types are outdated.
@@ -3909,23 +4152,23 @@ const ce = (c) => c !== null && typeof c == "object", X = (...c) => {
3909
4152
  return c = !0, "half";
3910
4153
  }
3911
4154
  }).headers.has("Content-Type")), c && !e;
3912
- })(), Da = typeof globalThis.AbortController == "function", Ua = typeof globalThis.ReadableStream == "function", Fa = typeof globalThis.FormData == "function", tc = ["get", "post", "put", "patch", "head", "delete"], Za = {
4155
+ })(), a1 = typeof globalThis.AbortController == "function", t1 = typeof globalThis.ReadableStream == "function", f1 = typeof globalThis.FormData == "function", tc = ["get", "post", "put", "patch", "head", "delete"], o1 = {
3913
4156
  json: "application/json",
3914
4157
  text: "text/*",
3915
4158
  formData: "multipart/form-data",
3916
4159
  arrayBuffer: "*/*",
3917
4160
  blob: "*/*"
3918
- }, ve = 2147483647, fc = Symbol("stop"), Na = (c) => tc.includes(c) ? c.toUpperCase() : c, Wa = ["get", "put", "head", "delete", "options", "trace"], Ka = [408, 413, 429, 500, 502, 503, 504], oc = [413, 429, 503], Be = {
4161
+ }, $e = 2147483647, fc = Symbol("stop"), d1 = (c) => tc.includes(c) ? c.toUpperCase() : c, r1 = ["get", "put", "head", "delete", "options", "trace"], b1 = [408, 413, 429, 500, 502, 503, 504], oc = [413, 429, 503], Fe = {
3919
4162
  limit: 2,
3920
- methods: Wa,
3921
- statusCodes: Ka,
4163
+ methods: r1,
4164
+ statusCodes: b1,
3922
4165
  afterStatusCodes: oc,
3923
4166
  maxRetryAfter: Number.POSITIVE_INFINITY,
3924
4167
  backoffLimit: Number.POSITIVE_INFINITY
3925
- }, Ja = (c = {}) => {
4168
+ }, n1 = (c = {}) => {
3926
4169
  if (typeof c == "number")
3927
4170
  return {
3928
- ...Be,
4171
+ ...Fe,
3929
4172
  limit: c
3930
4173
  };
3931
4174
  if (c.methods && !Array.isArray(c.methods))
@@ -3933,83 +4176,83 @@ const ce = (c) => c !== null && typeof c == "object", X = (...c) => {
3933
4176
  if (c.statusCodes && !Array.isArray(c.statusCodes))
3934
4177
  throw new Error("retry.statusCodes must be an array");
3935
4178
  return {
3936
- ...Be,
4179
+ ...Fe,
3937
4180
  ...c,
3938
4181
  afterStatusCodes: oc
3939
4182
  };
3940
4183
  };
3941
- async function Ya(c, e, a) {
3942
- return new Promise((f, t) => {
4184
+ async function s1(c, e, a) {
4185
+ return new Promise((t, f) => {
3943
4186
  const o = setTimeout(() => {
3944
- e && e.abort(), t(new cc(c));
4187
+ e && e.abort(), f(new cc(c));
3945
4188
  }, a.timeout);
3946
- a.fetch(c).then(f).catch(t).then(() => {
4189
+ a.fetch(c).then(t).catch(f).then(() => {
3947
4190
  clearTimeout(o);
3948
4191
  });
3949
4192
  });
3950
4193
  }
3951
- const Ga = !!globalThis.DOMException;
3952
- function Re(c) {
3953
- if (Ga)
4194
+ const i1 = !!globalThis.DOMException;
4195
+ function qe(c) {
4196
+ if (i1)
3954
4197
  return new DOMException((c == null ? void 0 : c.reason) ?? "The operation was aborted.", "AbortError");
3955
4198
  const e = new Error((c == null ? void 0 : c.reason) ?? "The operation was aborted.");
3956
4199
  return e.name = "AbortError", e;
3957
4200
  }
3958
- async function Xa(c, { signal: e }) {
3959
- return new Promise((a, f) => {
4201
+ async function l1(c, { signal: e }) {
4202
+ return new Promise((a, t) => {
3960
4203
  if (e) {
3961
4204
  if (e.aborted) {
3962
- f(Re(e));
4205
+ t(qe(e));
3963
4206
  return;
3964
4207
  }
3965
- e.addEventListener("abort", t, { once: !0 });
4208
+ e.addEventListener("abort", f, { once: !0 });
3966
4209
  }
3967
- function t() {
3968
- f(Re(e)), clearTimeout(o);
4210
+ function f() {
4211
+ t(qe(e)), clearTimeout(o);
3969
4212
  }
3970
4213
  const o = setTimeout(() => {
3971
- e == null || e.removeEventListener("abort", t), a();
4214
+ e == null || e.removeEventListener("abort", f), a();
3972
4215
  }, c);
3973
4216
  });
3974
4217
  }
3975
- class se {
4218
+ class he {
3976
4219
  // eslint-disable-next-line @typescript-eslint/promise-function-async
3977
4220
  static create(e, a) {
3978
- const f = new se(e, a), t = async () => {
3979
- if (f._options.timeout > ve)
3980
- throw new RangeError(`The \`timeout\` option cannot be greater than ${ve}`);
4221
+ const t = new he(e, a), f = async () => {
4222
+ if (t._options.timeout > $e)
4223
+ throw new RangeError(`The \`timeout\` option cannot be greater than ${$e}`);
3981
4224
  await Promise.resolve();
3982
- let b = await f._fetch();
3983
- for (const h of f._options.hooks.afterResponse) {
3984
- const u = await h(f.request, f._options, f._decorateResponse(b.clone()));
3985
- u instanceof globalThis.Response && (b = u);
4225
+ let n = await t._fetch();
4226
+ for (const g of t._options.hooks.afterResponse) {
4227
+ const k = await g(t.request, t._options, t._decorateResponse(n.clone()));
4228
+ k instanceof globalThis.Response && (n = k);
3986
4229
  }
3987
- if (f._decorateResponse(b), !b.ok && f._options.throwHttpErrors) {
3988
- let h = new Te(b, f.request, f._options);
3989
- for (const u of f._options.hooks.beforeError)
3990
- h = await u(h);
3991
- throw h;
4230
+ if (t._decorateResponse(n), !n.ok && t._options.throwHttpErrors) {
4231
+ let g = new De(n, t.request, t._options);
4232
+ for (const k of t._options.hooks.beforeError)
4233
+ g = await k(g);
4234
+ throw g;
3992
4235
  }
3993
- if (f._options.onDownloadProgress) {
3994
- if (typeof f._options.onDownloadProgress != "function")
4236
+ if (t._options.onDownloadProgress) {
4237
+ if (typeof t._options.onDownloadProgress != "function")
3995
4238
  throw new TypeError("The `onDownloadProgress` option must be a function");
3996
- if (!Ua)
4239
+ if (!t1)
3997
4240
  throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");
3998
- return f._stream(b.clone(), f._options.onDownloadProgress);
4241
+ return t._stream(n.clone(), t._options.onDownloadProgress);
3999
4242
  }
4000
- return b;
4001
- }, d = f._options.retry.methods.includes(f.request.method.toLowerCase()) ? f._retry(t) : t();
4002
- for (const [b, h] of Object.entries(Za))
4003
- d[b] = async () => {
4004
- f.request.headers.set("accept", f.request.headers.get("accept") || h);
4005
- const m = (await d).clone();
4006
- if (b === "json") {
4007
- if (m.status === 204 || (await m.clone().arrayBuffer()).byteLength === 0)
4243
+ return n;
4244
+ }, d = t._options.retry.methods.includes(t.request.method.toLowerCase()) ? t._retry(f) : f();
4245
+ for (const [n, g] of Object.entries(o1))
4246
+ d[n] = async () => {
4247
+ t.request.headers.set("accept", t.request.headers.get("accept") || g);
4248
+ const C = (await d).clone();
4249
+ if (n === "json") {
4250
+ if (C.status === 204 || (await C.clone().arrayBuffer()).byteLength === 0)
4008
4251
  return "";
4009
4252
  if (a.parseJson)
4010
- return a.parseJson(await m.text());
4253
+ return a.parseJson(await C.text());
4011
4254
  }
4012
- return m[b]();
4255
+ return C[n]();
4013
4256
  };
4014
4257
  return d;
4015
4258
  }
@@ -4045,16 +4288,16 @@ class se {
4045
4288
  credentials: this._input.credentials || "same-origin",
4046
4289
  ...a,
4047
4290
  headers: ac(this._input.headers, a.headers),
4048
- hooks: Le({
4291
+ hooks: He({
4049
4292
  beforeRequest: [],
4050
4293
  beforeRetry: [],
4051
4294
  beforeError: [],
4052
4295
  afterResponse: []
4053
4296
  }, a.hooks),
4054
- method: Na(a.method ?? this._input.method),
4297
+ method: d1(a.method ?? this._input.method),
4055
4298
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
4056
4299
  prefixUrl: String(a.prefixUrl || ""),
4057
- retry: Ja(a.retry),
4300
+ retry: n1(a.retry),
4058
4301
  throwHttpErrors: a.throwHttpErrors !== !1,
4059
4302
  timeout: typeof a.timeout > "u" ? 1e4 : a.timeout,
4060
4303
  fetch: a.fetch ?? globalThis.fetch.bind(globalThis)
@@ -4065,30 +4308,30 @@ class se {
4065
4308
  throw new Error("`input` must not begin with a slash when using `prefixUrl`");
4066
4309
  this._options.prefixUrl.endsWith("/") || (this._options.prefixUrl += "/"), this._input = this._options.prefixUrl + this._input;
4067
4310
  }
4068
- if (Da) {
4311
+ if (a1) {
4069
4312
  if (this.abortController = new globalThis.AbortController(), this._options.signal) {
4070
- const f = this._options.signal;
4313
+ const t = this._options.signal;
4071
4314
  this._options.signal.addEventListener("abort", () => {
4072
- this.abortController.abort(f.reason);
4315
+ this.abortController.abort(t.reason);
4073
4316
  });
4074
4317
  }
4075
4318
  this._options.signal = this.abortController.signal;
4076
4319
  }
4077
- if (qa && (this._options.duplex = "half"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {
4078
- const t = "?" + (typeof this._options.searchParams == "string" ? this._options.searchParams.replace(/^\?/, "") : new URLSearchParams(this._options.searchParams).toString()), o = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, t);
4079
- (Fa && this._options.body instanceof globalThis.FormData || this._options.body instanceof URLSearchParams) && !(this._options.headers && this._options.headers["content-type"]) && this.request.headers.delete("content-type"), this.request = new globalThis.Request(new globalThis.Request(o, { ...this.request }), this._options);
4320
+ if (c1 && (this._options.duplex = "half"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {
4321
+ const f = "?" + (typeof this._options.searchParams == "string" ? this._options.searchParams.replace(/^\?/, "") : new URLSearchParams(this._options.searchParams).toString()), o = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, f);
4322
+ (f1 && this._options.body instanceof globalThis.FormData || this._options.body instanceof URLSearchParams) && !(this._options.headers && this._options.headers["content-type"]) && this.request.headers.delete("content-type"), this.request = new globalThis.Request(new globalThis.Request(o, { ...this.request }), this._options);
4080
4323
  }
4081
4324
  this._options.json !== void 0 && (this._options.body = JSON.stringify(this._options.json), this.request.headers.set("content-type", this._options.headers.get("content-type") ?? "application/json"), this.request = new globalThis.Request(this.request, { body: this._options.body }));
4082
4325
  }
4083
4326
  _calculateRetryDelay(e) {
4084
4327
  if (this._retryCount++, this._retryCount < this._options.retry.limit && !(e instanceof cc)) {
4085
- if (e instanceof Te) {
4328
+ if (e instanceof De) {
4086
4329
  if (!this._options.retry.statusCodes.includes(e.response.status))
4087
4330
  return 0;
4088
- const f = e.response.headers.get("Retry-After");
4089
- if (f && this._options.retry.afterStatusCodes.includes(e.response.status)) {
4090
- let t = Number(f);
4091
- return Number.isNaN(t) ? t = Date.parse(f) - Date.now() : t *= 1e3, typeof this._options.retry.maxRetryAfter < "u" && t > this._options.retry.maxRetryAfter ? 0 : t;
4331
+ const t = e.response.headers.get("Retry-After");
4332
+ if (t && this._options.retry.afterStatusCodes.includes(e.response.status)) {
4333
+ let f = Number(t);
4334
+ return Number.isNaN(f) ? f = Date.parse(t) - Date.now() : f *= 1e3, typeof this._options.retry.maxRetryAfter < "u" && f > this._options.retry.maxRetryAfter ? 0 : f;
4092
4335
  }
4093
4336
  if (e.response.status === 413)
4094
4337
  return 0;
@@ -4105,11 +4348,11 @@ class se {
4105
4348
  try {
4106
4349
  return await e();
4107
4350
  } catch (a) {
4108
- const f = Math.min(this._calculateRetryDelay(a), ve);
4109
- if (f !== 0 && this._retryCount > 0) {
4110
- await Xa(f, { signal: this._options.signal });
4111
- for (const t of this._options.hooks.beforeRetry)
4112
- if (await t({
4351
+ const t = Math.min(this._calculateRetryDelay(a), $e);
4352
+ if (t !== 0 && this._retryCount > 0) {
4353
+ await l1(t, { signal: this._options.signal });
4354
+ for (const f of this._options.hooks.beforeRetry)
4355
+ if (await f({
4113
4356
  request: this.request,
4114
4357
  options: this._options,
4115
4358
  error: a,
@@ -4131,34 +4374,34 @@ class se {
4131
4374
  if (a instanceof Response)
4132
4375
  return a;
4133
4376
  }
4134
- return this._options.timeout === !1 ? this._options.fetch(this.request.clone()) : Ya(this.request.clone(), this.abortController, this._options);
4377
+ return this._options.timeout === !1 ? this._options.fetch(this.request.clone()) : s1(this.request.clone(), this.abortController, this._options);
4135
4378
  }
4136
4379
  /* istanbul ignore next */
4137
4380
  _stream(e, a) {
4138
- const f = Number(e.headers.get("content-length")) || 0;
4139
- let t = 0;
4140
- return e.status === 204 ? (a && a({ percent: 1, totalBytes: f, transferredBytes: t }, new Uint8Array()), new globalThis.Response(null, {
4381
+ const t = Number(e.headers.get("content-length")) || 0;
4382
+ let f = 0;
4383
+ return e.status === 204 ? (a && a({ percent: 1, totalBytes: t, transferredBytes: f }, new Uint8Array()), new globalThis.Response(null, {
4141
4384
  status: e.status,
4142
4385
  statusText: e.statusText,
4143
4386
  headers: e.headers
4144
4387
  })) : new globalThis.Response(new globalThis.ReadableStream({
4145
4388
  async start(o) {
4146
4389
  const d = e.body.getReader();
4147
- a && a({ percent: 0, transferredBytes: 0, totalBytes: f }, new Uint8Array());
4148
- async function b() {
4149
- const { done: h, value: u } = await d.read();
4150
- if (h) {
4390
+ a && a({ percent: 0, transferredBytes: 0, totalBytes: t }, new Uint8Array());
4391
+ async function n() {
4392
+ const { done: g, value: k } = await d.read();
4393
+ if (g) {
4151
4394
  o.close();
4152
4395
  return;
4153
4396
  }
4154
4397
  if (a) {
4155
- t += u.byteLength;
4156
- const m = f === 0 ? 0 : t / f;
4157
- a({ percent: m, transferredBytes: t, totalBytes: f }, u);
4398
+ f += k.byteLength;
4399
+ const C = t === 0 ? 0 : f / t;
4400
+ a({ percent: C, transferredBytes: f, totalBytes: t }, k);
4158
4401
  }
4159
- o.enqueue(u), await b();
4402
+ o.enqueue(k), await n();
4160
4403
  }
4161
- await b();
4404
+ await n();
4162
4405
  }
4163
4406
  }), {
4164
4407
  status: e.status,
@@ -4168,12 +4411,12 @@ class se {
4168
4411
  }
4169
4412
  }
4170
4413
  /*! MIT License © Sindre Sorhus */
4171
- const je = (c) => {
4172
- const e = (a, f) => se.create(a, X(c, f));
4414
+ const Ae = (c) => {
4415
+ const e = (a, t) => he.create(a, ae(c, t));
4173
4416
  for (const a of tc)
4174
- e[a] = (f, t) => se.create(f, X(c, t, { method: a }));
4175
- return e.create = (a) => je(X(a)), e.extend = (a) => je(X(c, a)), e.stop = fc, e;
4176
- }, Qa = je(), e1 = Qa, dc = e1.extend({
4417
+ e[a] = (t, f) => he.create(t, ae(c, f, { method: a }));
4418
+ return e.create = (a) => Ae(ae(a)), e.extend = (a) => Ae(ae(c, a)), e.stop = fc, e;
4419
+ }, p1 = Ae(), h1 = p1, u1 = h1.extend({
4177
4420
  hooks: {
4178
4421
  beforeRequest: [
4179
4422
  () => {
@@ -4181,18 +4424,18 @@ const je = (c) => {
4181
4424
  ]
4182
4425
  }
4183
4426
  });
4184
- async function c1(c, e) {
4185
- const { onmessage: a, onclose: f, ...t } = e, o = async (d, b) => {
4186
- const { value: h, done: u } = await b.read();
4187
- u ? (d.close(), f == null || f()) : (a == null || a(h), d.enqueue(h), o(d, b));
4427
+ async function g1(c, e) {
4428
+ const { onmessage: a, onclose: t, ...f } = e, o = async (d, n) => {
4429
+ const { value: g, done: k } = await n.read();
4430
+ k ? (d.close(), t == null || t()) : (a == null || a(g), d.enqueue(g), o(d, n));
4188
4431
  };
4189
- return t.body && typeof t.body == "object" && (t.body = JSON.stringify(t.body)), console.log("Fetching:", t), fetch(c, t).then((d) => {
4190
- const b = d.body.getReader();
4432
+ return f.body && typeof f.body == "object" && (f.body = JSON.stringify(f.body)), console.log("Fetching:", f), fetch(c, f).then((d) => {
4433
+ const n = d.body.getReader();
4191
4434
  return new ReadableStream({
4192
- start(u) {
4435
+ start(k) {
4193
4436
  o(
4194
- u,
4195
- b
4437
+ k,
4438
+ n
4196
4439
  );
4197
4440
  }
4198
4441
  });
@@ -4202,125 +4445,39 @@ async function c1(c, e) {
4202
4445
  }).text()
4203
4446
  );
4204
4447
  }
4205
- async function a1(c, e) {
4448
+ async function m1(c, e) {
4206
4449
  const a = new FormData();
4207
- for (let t = 0; t < e.length; t++)
4208
- a.append("files", e[t]);
4209
- const f = await dc.post(c, {
4450
+ for (let f = 0; f < e.length; f++)
4451
+ a.append("files", e[f]);
4452
+ const t = await u1.post(c, {
4210
4453
  body: a
4211
4454
  });
4212
4455
  try {
4213
- return await f.json();
4214
- } catch (t) {
4456
+ return await t.json();
4457
+ } catch (f) {
4215
4458
  return {
4216
4459
  code: 1,
4217
4460
  url: "",
4218
- message: t.message
4461
+ message: f.message
4219
4462
  };
4220
4463
  }
4221
4464
  }
4222
- const Ve = {
4223
- error: {
4224
- variant: "danger",
4225
- icon: Ce
4226
- },
4227
- warning: {
4228
- variant: "warning",
4229
- icon: Ge
4230
- },
4231
- success: {
4232
- variant: "success",
4233
- icon: Xe
4234
- },
4235
- info: {
4236
- variant: "primary",
4237
- icon: Qe
4238
- }
4465
+ var y1 = Object.defineProperty, v1 = Object.getOwnPropertyDescriptor, v = (c, e, a, t) => {
4466
+ for (var f = t > 1 ? void 0 : t ? v1(e, a) : e, o = c.length - 1, d; o >= 0; o--)
4467
+ (d = c[o]) && (f = (t ? d(e, a, f) : d(f)) || f);
4468
+ return t && f && y1(e, a, f), f;
4239
4469
  };
4240
- function t1(c) {
4241
- const e = document.createElement("div");
4242
- return e.textContent = c, e.innerHTML;
4243
- }
4244
- function f1(c = "info", e, a = 1e8) {
4245
- const { variant: f, icon: t } = Ve[c] || Ve.info, o = Object.assign(document.createElement("sl-alert"), {
4246
- variant: f,
4247
- closable: !0,
4248
- duration: a,
4249
- innerHTML: `
4250
- <cb-status-icon slot="icon" status="${c}"></cb-status-icon>
4251
- ${t1(e)}
4252
- `
4253
- });
4254
- return document.body.append(o), o.toast();
4255
- }
4256
- async function o1(c, e) {
4257
- const a = c.getReader(), f = new TextDecoder("utf-8");
4258
- let t = !1;
4259
- for (; !t; ) {
4260
- const { value: o, done: d } = await a.read();
4261
- if (o) {
4262
- let b = f.decode(o);
4263
- const h = b.lastIndexOf("data:"), u = b.lastIndexOf(`
4264
- `);
4265
- if (h !== -1 && (b = b.slice(h + 6)), u !== -1 && (b = b.slice(0, u)), b = b.trim(), b === `
4266
- ` || b === "")
4267
- continue;
4268
- if (b === "[DONE]") {
4269
- t = !0;
4270
- continue;
4271
- }
4272
- try {
4273
- const m = JSON.parse(b);
4274
- e(null, m);
4275
- } catch (m) {
4276
- console.log("error", m), e(m, null);
4277
- }
4278
- }
4279
- t = d;
4280
- }
4281
- }
4282
- async function d1(c) {
4283
- var t;
4284
- if (!c.apiKey)
4285
- throw new Error("apiKey is required");
4286
- const e = c.options ?? {};
4287
- e.model || (e.model = "gpt-3.5-turbo");
4288
- const a = await dc.post(c.url, {
4289
- json: {
4290
- messages: c.messages,
4291
- ...c.options ?? {}
4292
- },
4293
- headers: {
4294
- "Content-Type": "application/json",
4295
- Authorization: `Bearer ${c.apiKey}`
4296
- },
4297
- timeout: 1e3 * 60 * 10,
4298
- signal: c.signal
4299
- }), f = a.body;
4300
- if (!f)
4301
- throw new Error("No data");
4302
- if ((t = c.options) != null && t.stream) {
4303
- await o1(f, c.onMessage);
4304
- return;
4305
- }
4306
- return a.json();
4307
- }
4308
- var b1 = Object.defineProperty, r1 = Object.getOwnPropertyDescriptor, v = (c, e, a, f) => {
4309
- for (var t = f > 1 ? void 0 : f ? r1(e, a) : e, o = c.length - 1, d; o >= 0; o--)
4310
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
4311
- return f && t && b1(e, a, t), t;
4312
- };
4313
- const W = pe.noConflict();
4314
- W.setLevel("info");
4315
- let g = class extends C {
4470
+ const de = me.noConflict();
4471
+ de.setLevel("info");
4472
+ let u = class extends S {
4316
4473
  constructor() {
4317
- super(...arguments), this.store = new Ue(this, n), this.displayLicense = !1, this.name = "ChatBot", this.orgId = "", this.botId = "", this.url = "ws://localhost:3070", this.logoSvg = ` <svg width="24" height="24" viewBox="0 0 40 40">
4474
+ super(...arguments), this.store = new Ne(this, s), this.displayLicense = !1, this.name = "ChatBot", this.orgId = "", this.botId = "", this.url = "ws://localhost:3070", this.logoSvg = ` <svg width="24" height="24" viewBox="0 0 40 40">
4318
4475
  <path
4319
4476
  d="M34.728 0.275L2.245 15.267c-3.748 1.749 -2.498 7.246 1.499 7.246h13.743v13.743c0 3.998 5.497 5.248 7.246 1.499l14.992 -32.483c1.249 -2.999 -1.999 -6.248 -4.998 -4.998z"
4320
4477
  fill="#E24D42"
4321
4478
  ></path>
4322
4479
  </svg>
4323
- `, this.botIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M16 17V19H2V17S2 13 9 13 16 17 16 17M12.5 7.5A3.5 3.5 0 1 0 9 11A3.5 3.5 0 0 0 12.5 7.5M15.94 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13M15 4A3.39 3.39 0 0 0 13.07 4.59A5 5 0 0 1 13.07 10.41A3.39 3.39 0 0 0 15 11A3.5 3.5 0 0 0 15 4Z" /></svg>', this.userIconSvg = '<svg fill="currentColor" viewBox="0 0 24 24" width="24" height="24"> <path d="M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4Z" /></svg>', this.systemIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg>', this.stream = !1, this.customRequest = !1, this.enableFileUpload = !1, this.uploadFileUrl = "", this.open = !1, this.loading = !1, this.showSetting = !1, this.showAuthAlert = !1, this.fetchStream = c1;
4480
+ `, this.botIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M16 17V19H2V17S2 13 9 13 16 17 16 17M12.5 7.5A3.5 3.5 0 1 0 9 11A3.5 3.5 0 0 0 12.5 7.5M15.94 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13M15 4A3.39 3.39 0 0 0 13.07 4.59A5 5 0 0 1 13.07 10.41A3.39 3.39 0 0 0 15 11A3.5 3.5 0 0 0 15 4Z" /></svg>', this.userIconSvg = '<svg fill="currentColor" viewBox="0 0 24 24" width="24" height="24"> <path d="M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4Z" /></svg>', this.systemIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg>', this.stream = !1, this.customRequest = !1, this.enableFileUpload = !1, this.uploadFileUrl = "", this.open = !1, this.loading = !1, this.showSetting = !1, this.showAuthAlert = !1, this.fetchStream = g1;
4324
4481
  }
4325
4482
  //HTMLElement;
4326
4483
  /**
@@ -4336,7 +4493,7 @@ let g = class extends C {
4336
4493
  isThinking: !0,
4337
4494
  data: {}
4338
4495
  };
4339
- return n.addMessage(c), c;
4496
+ return s.addMessage(c), c;
4340
4497
  }
4341
4498
  addTestMessage() {
4342
4499
  const c = {
@@ -4347,210 +4504,233 @@ let g = class extends C {
4347
4504
  text: "Long text.The element may not be scrolled completely to the top or bottom depending on the layout of other elements.The element may not be scrolled completely to the top or bottom depending on the layout of other elements."
4348
4505
  }
4349
4506
  };
4350
- return n.addMessage(c), c;
4507
+ return s.addMessage(c), c;
4351
4508
  }
4352
4509
  render() {
4353
- return n.disabled ? (W.error("Bot is disabled"), null) : s`
4354
- <div class="cb-wrapper" style="${n.open ? "display:flex" : "display:none"}">
4510
+ return s.disabled ? (de.error("Bot is disabled"), null) : r`
4511
+ <div class="cb-wrapper" style="${s.open ? "display:flex" : "display:none"}">
4355
4512
  <cb-header title="${this.name}" exportparts="header"></cb-header>
4356
- <cb-message-list .messages=${n.messages} .actions=${n.actions}></cb-message-list>
4357
- <cb-user-input ?loading=${this.loading} ?disabled=${this.loading || this.showAuthAlert} ?enable-file-upload=${this.enableFileUpload}></cb-user-input>
4513
+ <cb-message-list .messages=${s.messages} .actions=${s.actions} .form=${s.form} exportparts="form"></cb-message-list>
4514
+ ${this.renderUserInput()}
4358
4515
  </div>
4359
- <cb-anchor ?open=${n.open}></cb-anchor>
4516
+ <cb-anchor ?open=${s.open}></cb-anchor>
4360
4517
  `;
4361
4518
  }
4519
+ renderUserInput() {
4520
+ return s.form ? null : r`<cb-user-input ?loading=${this.loading} ?disabled=${this.loading || s.form} ?enable-file-upload=${this.enableFileUpload}></cb-user-input>`;
4521
+ }
4362
4522
  connectedCallback() {
4363
- super.connectedCallback(), W.info("connectedCallback"), addEventListener("setting:show", () => {
4523
+ super.connectedCallback(), de.info("connectedCallback"), addEventListener("setting:show", () => {
4364
4524
  this.showSetting = !0;
4365
4525
  }), addEventListener("message:send", this._addMessageHandler.bind(this)), addEventListener("message:remove", this._deleteMessageHandler.bind(this)), addEventListener("setting:confirm", this._settingConfirmHandler.bind(this)), addEventListener("setting:hide", () => {
4366
4526
  this.showSetting = !1;
4367
4527
  }), addEventListener("chatbot:toggle", (c) => {
4368
4528
  const e = c.detail;
4369
- n.open = e.open, n.engage = !1;
4529
+ s.open = e.open, s.engage = !1;
4370
4530
  }), addEventListener("message:clear", () => {
4371
- n.clearMessages();
4531
+ s.clearMessages();
4372
4532
  }), addEventListener("message:send:file", this._sendFileHandler.bind(this)), addEventListener("setting:show", () => {
4373
4533
  this.showSetting = !0;
4374
- });
4534
+ }), addEventListener("form:submit", this._formSubmitHandler.bind(this));
4375
4535
  }
4376
4536
  // This is called when component is loaded, with all the settings (props) values
4377
4537
  // Use to initialize
4378
4538
  // This is also called when state changes - ??? - i.e. when message added to the array
4379
4539
  updated(c) {
4380
- super.updated(c), W.info("updated,_changedProperties:", c), c.size > 0 && (W.info("updated,_changedProperties:", c), this._initSetting()), setTimeout(() => {
4540
+ super.updated(c), c.size > 0 && (de.info("updated,_changedProperties:", c), this._initSetting()), setTimeout(() => {
4381
4541
  this._scrollToBottom();
4382
4542
  }, 0);
4383
4543
  }
4384
4544
  // initialize setting
4385
4545
  _initSetting() {
4386
- const c = n.setting;
4387
- c.orgId = this.orgId, c.botId = this.botId, c.url = this.url, c.logoSvg = this.logoSvg, c.botIconSvg = this.botIconSvg, c.userIconSvg = this.userIconSvg, c.systemIconSvg = this.systemIconSvg, n.setSetting(c);
4546
+ const c = s.setting;
4547
+ c.orgId = this.orgId, c.botId = this.botId, c.url = this.url, c.logoSvg = this.logoSvg, c.botIconSvg = this.botIconSvg, c.userIconSvg = this.userIconSvg, c.systemIconSvg = this.systemIconSvg, s.setSetting(c);
4388
4548
  }
4389
4549
  setLoading(c) {
4390
4550
  this.loading = c;
4391
4551
  }
4392
4552
  clearConversation() {
4393
- n.clearConversation();
4553
+ s.clearConversation();
4394
4554
  }
4395
4555
  // check auth
4396
4556
  _checkAuth() {
4397
4557
  }
4398
- // TODO Remove
4399
- async _sendToOpenai(c, e) {
4400
- let a = "";
4401
- const f = n.setting.openai.apiBase || "https://api.openai.com/v1", t = await d1({
4402
- url: `${f}/chat/completions`,
4403
- apiKey: n.setting.openai.apiKey,
4404
- messages: e,
4558
+ /*
4559
+ private async _sendToOpenai(newMsg: Chatbot.NewMessage, messages: Chatbot.OpenaiMessage[]) {
4560
+ let text = '';
4561
+ const apiBase = appState.setting.openai.apiBase || 'https://api.openai.com/v1';
4562
+ const data = await openai.chat({
4563
+ url: `${apiBase}/chat/completions`,
4564
+ apiKey: appState.setting.openai.apiKey,
4565
+ messages: messages,
4405
4566
  options: {
4406
- stream: n.setting.stream,
4407
- model: n.setting.openai.model
4567
+ stream: appState.setting.stream,
4568
+ model: appState.setting.openai.model,
4408
4569
  // temperature: 0.9,
4409
4570
  },
4410
- onMessage: (o, d) => {
4411
- var b;
4412
- if (o) {
4413
- console.error(o);
4571
+ onMessage: (err, data) => {
4572
+ if (err) {
4573
+ console.error(err);
4414
4574
  return;
4415
4575
  }
4416
- d && ((b = d.choices[0].delta) != null && b.content) && requestIdleCallback(() => {
4417
- a += d.choices[0].delta.content, n.updateMessage(c, a);
4418
- });
4419
- }
4576
+ if (data && data.choices[0].delta?.content) {
4577
+ requestIdleCallback(() => {
4578
+ // handle openai response
4579
+ text += data.choices[0].delta.content;
4580
+ // update message
4581
+ appState.updateMessage(newMsg, text);
4582
+ });
4583
+ }
4584
+ },
4420
4585
  });
4421
- !n.setting.stream && t && n.updateMessage(c, t.choices[0].message.content);
4586
+ if (!appState.setting.stream && data) {
4587
+ // update message
4588
+ appState.updateMessage(newMsg, data.choices[0].message.content);
4589
+ }
4422
4590
  }
4423
- // TODO Remove
4424
- async _sendHandler(c) {
4425
- this.setLoading(!0);
4426
- const e = {
4427
- author: "assistant",
4428
- type: "text",
4429
- isThinking: !0,
4430
- data: {}
4431
- };
4432
- if (n.addMessage(e), this.customRequest)
4433
- await this.emit("chatbot:send", {
4434
- detail: {
4435
- newMessage: e,
4436
- messages: c
4437
- },
4438
- bubbles: !0,
4439
- composed: !0
4440
- });
4441
- else
4442
- try {
4443
- await this._sendToOpenai(e, c);
4444
- } catch (a) {
4445
- f1("error", a.message), console.error(a);
4591
+ */
4592
+ /*
4593
+ private async _sendHandler(messages: Chatbot.OpenaiMessage[]) {
4594
+ this.setLoading(true);
4595
+
4596
+ const newMsg: Chatbot.NewMessage = {
4597
+ author: 'assistant',
4598
+ type: 'text',
4599
+ isThinking: true,
4600
+ data: {},
4601
+ };
4602
+
4603
+ // add message to store
4604
+ appState.addMessage(newMsg);
4605
+
4606
+ if (this.customRequest) {
4607
+ await this.emit('chatbot:send', {
4608
+ detail: {
4609
+ newMessage: newMsg,
4610
+ messages,
4611
+ },
4612
+ bubbles: true,
4613
+ composed: true,
4614
+ });
4615
+ } else {
4616
+ try {
4617
+ await this._sendToOpenai(newMsg, messages);
4618
+ } catch (err) {
4619
+ notify('error', (err as Error).message);
4620
+ console.error(err);
4621
+ }
4446
4622
  }
4447
- this.setLoading(!1);
4448
- }
4623
+
4624
+ this.setLoading(false);
4625
+ }
4626
+ */
4449
4627
  _addMessageHandler(c) {
4450
4628
  const e = c.detail;
4451
- n.sendMessage(e);
4629
+ s.sendMessage(e);
4452
4630
  }
4453
4631
  _deleteMessageHandler(c) {
4454
4632
  const e = c.detail;
4455
- n.removeMessage(e.id);
4633
+ s.removeMessage(e.id);
4456
4634
  }
4457
4635
  async _sendFileHandler(c) {
4458
- const e = c.detail, f = {
4636
+ const e = c.detail, t = {
4459
4637
  author: "user",
4460
4638
  type: "file",
4461
4639
  isUploading: !0,
4462
4640
  data: {
4463
- files: e.files.map((t, o) => ({
4464
- id: `${t.name}-${o}`,
4465
- name: t.name,
4466
- size: t.size,
4467
- type: t.type,
4641
+ files: e.files.map((f, o) => ({
4642
+ id: `${f.name}-${o}`,
4643
+ name: f.name,
4644
+ size: f.size,
4645
+ type: f.type,
4468
4646
  url: ""
4469
4647
  }))
4470
4648
  }
4471
4649
  };
4472
- if (n.addMessage(f), this.uploadFileUrl) {
4473
- const t = await a1(this.uploadFileUrl, e.files);
4474
- t.code === 0 && t.data && (f.isUploading = !1, f.data = {
4475
- files: t.data
4476
- }, n.updateMessage(f));
4650
+ if (s.addMessage(t), this.uploadFileUrl) {
4651
+ const f = await m1(this.uploadFileUrl, e.files);
4652
+ f.code === 0 && f.data && (t.isUploading = !1, t.data = {
4653
+ files: f.data
4654
+ }, s.updateMessage(t));
4477
4655
  }
4478
4656
  this.emit("chatbot:file:send", {
4479
4657
  detail: {
4480
4658
  files: e.files,
4481
- message: f
4659
+ message: t
4482
4660
  }
4483
4661
  });
4484
4662
  }
4485
4663
  // setting confirm handler
4486
4664
  _settingConfirmHandler(c) {
4487
4665
  const e = c.detail;
4488
- n.setSetting(e.setting), this.showSetting = !1, this._checkAuth();
4666
+ s.setSetting(e.setting), this.showSetting = !1, this._checkAuth();
4667
+ }
4668
+ async _formSubmitHandler(c) {
4489
4669
  }
4490
4670
  // scroll to bottom
4491
4671
  _scrollToBottom(c = !1) {
4492
4672
  var e;
4493
- console.log("Scrolling to bottom ..."), (e = this._messageList) == null || e.scrollToBottom();
4673
+ (e = this._messageList) == null || e.scrollToBottom();
4494
4674
  }
4495
4675
  };
4496
- g.styles = kc;
4676
+ u.styles = xc;
4497
4677
  v([
4498
- r({ type: Boolean, attribute: "display-license" })
4499
- ], g.prototype, "displayLicense", 2);
4678
+ b({ type: Boolean, attribute: "display-license" })
4679
+ ], u.prototype, "displayLicense", 2);
4500
4680
  v([
4501
- r({ type: String, attribute: "name" })
4502
- ], g.prototype, "name", 2);
4681
+ b({ type: String, attribute: "name" })
4682
+ ], u.prototype, "name", 2);
4503
4683
  v([
4504
- r({ type: String, attribute: "org-id" })
4505
- ], g.prototype, "orgId", 2);
4684
+ b({ type: String, attribute: "org-id" })
4685
+ ], u.prototype, "orgId", 2);
4506
4686
  v([
4507
- r({ type: String, attribute: "bot-id" })
4508
- ], g.prototype, "botId", 2);
4687
+ b({ type: String, attribute: "bot-id" })
4688
+ ], u.prototype, "botId", 2);
4509
4689
  v([
4510
- r({ type: String, attribute: "url" })
4511
- ], g.prototype, "url", 2);
4690
+ b({ type: String, attribute: "url" })
4691
+ ], u.prototype, "url", 2);
4512
4692
  v([
4513
- r({ type: String, attribute: "logo-svg" })
4514
- ], g.prototype, "logoSvg", 2);
4693
+ b({ type: String, attribute: "logo-svg" })
4694
+ ], u.prototype, "logoSvg", 2);
4515
4695
  v([
4516
- r({ type: String, attribute: "bot-icon-svg" })
4517
- ], g.prototype, "botIconSvg", 2);
4696
+ b({ type: String, attribute: "bot-icon-svg" })
4697
+ ], u.prototype, "botIconSvg", 2);
4518
4698
  v([
4519
- r({ type: String, attribute: "user-icon-svg" })
4520
- ], g.prototype, "userIconSvg", 2);
4699
+ b({ type: String, attribute: "user-icon-svg" })
4700
+ ], u.prototype, "userIconSvg", 2);
4521
4701
  v([
4522
- r({ type: String, attribute: "system-icon-svg" })
4523
- ], g.prototype, "systemIconSvg", 2);
4702
+ b({ type: String, attribute: "system-icon-svg" })
4703
+ ], u.prototype, "systemIconSvg", 2);
4524
4704
  v([
4525
- r({ type: Boolean, attribute: "stream" })
4526
- ], g.prototype, "stream", 2);
4705
+ b({ type: Boolean, attribute: "stream" })
4706
+ ], u.prototype, "stream", 2);
4527
4707
  v([
4528
- r({ type: Boolean, attribute: "custom-request" })
4529
- ], g.prototype, "customRequest", 2);
4708
+ b({ type: Boolean, attribute: "custom-request" })
4709
+ ], u.prototype, "customRequest", 2);
4530
4710
  v([
4531
- r({ type: Boolean, attribute: "enable-file-upload" })
4532
- ], g.prototype, "enableFileUpload", 2);
4711
+ b({ type: Boolean, attribute: "enable-file-upload" })
4712
+ ], u.prototype, "enableFileUpload", 2);
4533
4713
  v([
4534
- r({ type: String, attribute: "upload-file-url" })
4535
- ], g.prototype, "uploadFileUrl", 2);
4714
+ b({ type: String, attribute: "upload-file-url" })
4715
+ ], u.prototype, "uploadFileUrl", 2);
4536
4716
  v([
4537
- r({ type: Boolean, attribute: "open" })
4538
- ], g.prototype, "open", 2);
4717
+ b({ type: Boolean, attribute: "open" })
4718
+ ], u.prototype, "open", 2);
4539
4719
  v([
4540
- r({ type: Boolean })
4541
- ], g.prototype, "loading", 2);
4720
+ b({ type: Boolean })
4721
+ ], u.prototype, "loading", 2);
4542
4722
  v([
4543
- r({ type: Boolean })
4544
- ], g.prototype, "showSetting", 2);
4723
+ b({ type: Boolean })
4724
+ ], u.prototype, "showSetting", 2);
4545
4725
  v([
4546
- r({ type: Boolean })
4547
- ], g.prototype, "showAuthAlert", 2);
4726
+ b({ type: Boolean })
4727
+ ], u.prototype, "showAuthAlert", 2);
4548
4728
  v([
4549
- le("cb-message-list")
4550
- ], g.prototype, "_messageList", 2);
4551
- g = v([
4552
- k("enegelai-bot")
4553
- ], g);
4729
+ ee("cb-message-list")
4730
+ ], u.prototype, "_messageList", 2);
4731
+ u = v([
4732
+ _("enegelai-bot")
4733
+ ], u);
4554
4734
  export {
4555
- g as default
4735
+ u as default
4556
4736
  };