@enegelai/bot-widget 1.2.7 → 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 He } from "lit-html/directives/until.js";
27
- import hc from "markdown-it";
28
- import uc 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;
50
- const gc = (c, e) => e !== c && (e === e || c === c);
51
- class X extends EventTarget {
51
+ I(ue, "eventName", "lit-state-changed");
52
+ let Z = ue;
53
+ const uc = (c, e) => e !== c && (e === e || c === c);
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 X 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) || gc;
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 X 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 X 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(X, "propertyMap"), j(X, "properties"), j(X, "finalized", !1);
127
- class Fe {
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 Fe {
143
146
  * Copyright 2017 Google LLC
144
147
  * SPDX-License-Identifier: BSD-3-Clause
145
148
  */
146
- const Ue = ({ 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 Ue({
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 }, Ue({
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, g = {
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, g);
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 g(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) || g.apply(this, arguments);
254
+ function C(p, m, w) {
255
+ return n(p) || k.apply(this, arguments);
253
256
  }
254
- function ge(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 Ie() {
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, Y = T.indexOf(
283
- encodeURIComponent(A) + "="
285
+ var F = window.document.cookie, ce = F.indexOf(
286
+ encodeURIComponent(L) + "="
284
287
  );
285
- Y !== -1 && (i = /^([^;]+)/.exec(T.slice(Y))[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, Ie() || 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 = Ie();
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 ge(), 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 ge(
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 {
@@ -362,8 +365,8 @@ const pe = /* @__PURE__ */ wc(xc), kc = x`
362
365
  box-sizing: border-box;
363
366
  border-radius: 6px;
364
367
 
365
- height: calc(100% - 120px);
366
- max-height: 800px;
368
+ height: calc(100% - var(--enegelai-bot-height-top-margin, 220px));
369
+ max-height: var(--enegelai-bot-max-height, 600px);
367
370
  position: fixed;
368
371
  right: 25px;
369
372
  bottom: 100px;
@@ -405,17 +408,17 @@ const pe = /* @__PURE__ */ wc(xc), kc = x`
405
408
  }
406
409
  }
407
410
 
408
- @media (max-width: 450px) {
411
+ @media (max-width: 640px) {
409
412
  .cb-wrapper {
410
413
  width: 100%;
411
- height: 100%;
412
- max-height: 100%;
414
+ height: calc(100% - var(--enegelai-bot-height-top-margin-sm, 100px));
415
+ max-height: var(--enegelai-bot-max-height, 100%);
413
416
  right: 0;
414
417
  bottom: 0;
415
418
  border-radius: 0;
416
419
  }
417
420
  }
418
- `, H = 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
- ${H}
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 W = 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
- W.styles = Ne;
522
- Me([
523
- r({ type: String })
524
- ], W.prototype, "color", 2);
525
- Me([
526
- r({ type: String })
527
- ], W.prototype, "svg", 2);
528
- W = Me([
529
- k("cb-icon")
530
- ], W);
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 Ic = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
678
- var Hc = Object.defineProperty, Pc = Object.getOwnPropertyDescriptor, I = (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 && Hc(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 X {
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 X {
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
- 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(Ic)], { 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 X {
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 X {
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 X {
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 X {
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 X {
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 X {
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
- I([
877
- V({ prefix: q }),
878
- O({ value: "en" })
879
- ], M.prototype, "language", 2);
880
- I([
881
- V({ prefix: q }),
882
- O({ value: "light" })
883
- ], M.prototype, "theme", 2);
884
- I([
885
- V({ prefix: q }),
886
- O({ type: Boolean, value: !1 })
887
- ], M.prototype, "open", 2);
888
- I([
889
- V({ prefix: q }),
890
- O({ value: "false" })
891
- ], M.prototype, "connectWs", 2);
892
- I([
893
- V({ prefix: q }),
894
- O({ value: xe() })
895
- ], M.prototype, "conversationId", 2);
896
- I([
897
- V({ prefix: q }),
898
- O({ type: Array, value: [] })
899
- ], M.prototype, "messages", 2);
900
- I([
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 @@ I([
940
1090
  },
941
1091
  ],*/
942
1092
  })
943
- ], M.prototype, "actions", 2);
944
- I([
945
- O({ type: Boolean, value: !1 })
946
- ], M.prototype, "botSettingsInitialized", 2);
947
- I([
948
- O({ type: Boolean, value: !1 })
949
- ], M.prototype, "disabled", 2);
950
- I([
951
- O({ type: Boolean, value: !1 })
952
- ], M.prototype, "engage", 2);
953
- I([
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 @@ I([
961
1117
  welcomeMessage: null
962
1118
  }
963
1119
  })
964
- ], M.prototype, "setting", 2);
965
- const n = new M(), Ec = x`
966
- ${H}
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,50 +1172,55 @@ 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
  }
1208
+ /*
1209
+ createRenderRoot() {
1210
+ return this; //Render template without shadow DOM
1211
+ }
1212
+ */
1052
1213
  render() {
1053
- return s` <header class="cb-header" part="header">
1214
+ return r` <header class="cb-header" part="header">
1054
1215
  <span class="left">
1055
1216
  <sl-button class="cb-setting-button" variant="text" circle>
1056
- <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>
1057
1218
  </sl-button>
1058
1219
  </span>
1059
1220
  <span class="center title">${this.title}</span>
1060
1221
  <span class="right">
1061
1222
  <sl-button @click=${this._clickCloseHandler} class="cb-setting-button" variant="text" circle>
1062
- <cb-icon class="cb-header-close" svg="${te}"></cb-icon>
1223
+ <cb-icon class="cb-header-close" svg="${be}"></cb-icon>
1063
1224
  </sl-button>
1064
1225
  </span>
1065
1226
  </header>`;
@@ -1075,15 +1236,15 @@ let fe = class extends C {
1075
1236
  });
1076
1237
  }
1077
1238
  };
1078
- fe.styles = Ec;
1079
- We([
1080
- r({ type: String, attribute: "title" })
1081
- ], fe.prototype, "title", 2);
1082
- fe = We([
1083
- k("cb-header")
1084
- ], fe);
1085
- const qc = x`
1086
- ${H}
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}
1087
1248
  .cb-footer {
1088
1249
  line-height: 60px;
1089
1250
  font-size: 16px;
@@ -1097,17 +1258,17 @@ const qc = x`
1097
1258
  color: var(--primary-color);
1098
1259
  }
1099
1260
  `;
1100
- var Dc = Object.defineProperty, Fc = Object.getOwnPropertyDescriptor, Uc = (c, e, a, f) => {
1101
- for (var t = f > 1 ? void 0 : f ? Fc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1102
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1103
- 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;
1104
1265
  };
1105
- let ke = class extends C {
1266
+ let je = class extends S {
1106
1267
  constructor() {
1107
1268
  super(...arguments), this.year = (/* @__PURE__ */ new Date()).getFullYear();
1108
1269
  }
1109
1270
  render() {
1110
- return s`
1271
+ return r`
1111
1272
  <div class="cb-footer" part="footer">
1112
1273
  yugasun@${this.year}
1113
1274
  <a
@@ -1137,12 +1298,12 @@ let ke = class extends C {
1137
1298
  `;
1138
1299
  }
1139
1300
  };
1140
- ke.styles = qc;
1141
- ke = Uc([
1142
- k("cb-footer")
1143
- ], ke);
1144
- const Zc = x`
1145
- ${H}
1301
+ je.styles = Xc;
1302
+ je = ca([
1303
+ _("cb-footer")
1304
+ ], je);
1305
+ const aa = x`
1306
+ ${T}
1146
1307
 
1147
1308
  :host {
1148
1309
  width: 100%;
@@ -1185,6 +1346,36 @@ const Zc = x`
1185
1346
  display: none;
1186
1347
  }*/
1187
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
+
1188
1379
  .cb-actions-list {
1189
1380
  margin: 10px 0px 0px 0px;
1190
1381
  padding: 0px 0px;
@@ -1238,17 +1429,17 @@ const Zc = x`
1238
1429
  transition: background 0s;
1239
1430
  }
1240
1431
  `;
1241
- var Nc = Object.defineProperty, Wc = Object.getOwnPropertyDescriptor, Kc = (c, e, a, f) => {
1242
- for (var t = f > 1 ? void 0 : f ? Wc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1243
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1244
- 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;
1245
1436
  };
1246
- let _e = class extends ie {
1437
+ let Se = class extends ge {
1247
1438
  render() {
1248
- 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>`;
1249
1440
  }
1250
1441
  };
1251
- _e.styles = x`
1442
+ Se.styles = x`
1252
1443
  .cb-thinking {
1253
1444
  text-align: center;
1254
1445
  }
@@ -1286,31 +1477,31 @@ _e.styles = x`
1286
1477
  }
1287
1478
  }
1288
1479
  `;
1289
- _e = Kc([
1290
- k("cb-thinking")
1291
- ], _e);
1292
- var Jc = Object.defineProperty, Yc = Object.getOwnPropertyDescriptor, Ke = (c, e, a, f) => {
1293
- for (var t = f > 1 ? void 0 : f ? Yc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1294
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1295
- 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;
1296
1487
  };
1297
- let oe = class extends C {
1488
+ let se = class extends S {
1298
1489
  constructor() {
1299
1490
  super(...arguments), this.files = [];
1300
1491
  }
1301
1492
  render() {
1302
- return s` <div class="cb-uploading">
1493
+ return r` <div class="cb-uploading">
1303
1494
  <div class="cb-uploading__title">
1304
1495
  <sl-spinner class="cb-spinner"></sl-spinner>
1305
1496
  <span>Uploading...</span>
1306
1497
  </div>
1307
1498
  <div class="cb-uploading__filelist">
1308
- ${this.files.map((c) => s`${c.name}<br />`)}
1499
+ ${this.files.map((c) => r`${c.name}<br />`)}
1309
1500
  </div>
1310
1501
  </div>`;
1311
1502
  }
1312
1503
  };
1313
- oe.styles = x`
1504
+ se.styles = x`
1314
1505
  .cb-uploading {
1315
1506
  text-align: left;
1316
1507
  }
@@ -1328,14 +1519,14 @@ oe.styles = x`
1328
1519
  margin-right: 5px;
1329
1520
  }
1330
1521
  `;
1331
- Ke([
1332
- r({ type: Array })
1333
- ], oe.prototype, "files", 2);
1334
- oe = Ke([
1335
- k("cb-uploading")
1336
- ], oe);
1337
- const Gc = x`
1338
- ${H}
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}
1339
1530
  :host {
1340
1531
  }
1341
1532
 
@@ -1355,17 +1546,17 @@ const Gc = x`
1355
1546
  margin-right: 0.2em;
1356
1547
  }
1357
1548
  `;
1358
- var Xc = Object.defineProperty, Qc = Object.getOwnPropertyDescriptor, Se = (c, e, a, f) => {
1359
- for (var t = f > 1 ? void 0 : f ? Qc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1360
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1361
- 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;
1362
1553
  };
1363
- let K = class extends ie {
1554
+ let X = class extends ge {
1364
1555
  constructor() {
1365
1556
  super(...arguments), this.url = "", this.inverse = !1;
1366
1557
  }
1367
1558
  render() {
1368
- return s`
1559
+ return r`
1369
1560
  <a
1370
1561
  class="
1371
1562
  cb-external-link link__item
@@ -1380,7 +1571,7 @@ let K = class extends ie {
1380
1571
  `;
1381
1572
  }
1382
1573
  };
1383
- K.styles = x`
1574
+ X.styles = x`
1384
1575
  :host {
1385
1576
  --primary-color: var(--sl-color-primary-600);
1386
1577
  }
@@ -1405,31 +1596,31 @@ K.styles = x`
1405
1596
  text-decoration: underline;
1406
1597
  }
1407
1598
  `;
1408
- Se([
1409
- r({ type: String })
1410
- ], K.prototype, "url", 2);
1411
- Se([
1412
- r({ type: Boolean })
1413
- ], K.prototype, "inverse", 2);
1414
- K = Se([
1415
- k("cb-external-link")
1416
- ], K);
1417
- 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>';
1418
- var ba = Object.defineProperty, ra = Object.getOwnPropertyDescriptor, Ae = (c, e, a, f) => {
1419
- for (var t = f > 1 ? void 0 : f ? ra(e, a) : e, o = c.length - 1, d; o >= 0; o--)
1420
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
1421
- 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;
1422
1613
  };
1423
- const Pe = {
1424
- pdf: ca,
1425
- txt: ea,
1426
- md: aa,
1427
- csv: ta,
1428
- ppd: fa,
1429
- doc: oa,
1430
- 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
1431
1622
  };
1432
- let J = class extends C {
1623
+ let Q = class extends S {
1433
1624
  constructor() {
1434
1625
  super(...arguments), this.filename = "", this.url = "";
1435
1626
  }
@@ -1441,7 +1632,7 @@ let J = class extends C {
1441
1632
  return e ? e.toLowerCase() : c;
1442
1633
  }
1443
1634
  render() {
1444
- return s`
1635
+ return r`
1445
1636
  <cb-external-link url="${this.url}" inverse>
1446
1637
  <div class="cb-file">
1447
1638
  ${this.renderFileIcon()}
@@ -1451,25 +1642,25 @@ let J = class extends C {
1451
1642
  `;
1452
1643
  }
1453
1644
  renderFileIcon() {
1454
- return s`
1645
+ return r`
1455
1646
  <cb-icon
1456
1647
  class="cb-file-icon"
1457
- svg="${Pe[this.type] || Pe.txt}"
1648
+ svg="${Te[this.type] || Te.txt}"
1458
1649
  ></cb-icon>
1459
1650
  `;
1460
1651
  }
1461
1652
  };
1462
- J.styles = Gc;
1463
- Ae([
1464
- r({ type: String })
1465
- ], J.prototype, "filename", 2);
1466
- Ae([
1467
- r({ type: String })
1468
- ], J.prototype, "url", 2);
1469
- J = Ae([
1470
- k("cb-file")
1471
- ], J);
1472
- 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`
1473
1664
  pre code.hljs {
1474
1665
  display: block;
1475
1666
  overflow-x: auto;
@@ -2634,9 +2825,9 @@ const sa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
2634
2825
  pre {
2635
2826
  background-color: #282c34;
2636
2827
  }
2637
- `, la = x`
2638
- ${H}
2639
- ${ia}
2828
+ `, _a = x`
2829
+ ${T}
2830
+ ${ka}
2640
2831
 
2641
2832
  .cb-message-row {
2642
2833
  width: 100%;
@@ -2793,22 +2984,22 @@ const sa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
2793
2984
  font-size: 1em;
2794
2985
  }
2795
2986
  `;
2796
- function pa() {
2797
- const c = new hc({
2987
+ function $a() {
2988
+ const c = new pc({
2798
2989
  linkify: !0
2799
2990
  });
2800
- return c.use(uc, { attrs: { target: "_blank", rel: "noopener" } }), c;
2991
+ return c.use(hc, { attrs: { target: "_blank", rel: "noopener" } }), c;
2801
2992
  }
2802
- async function Ee(c) {
2803
- const e = pa();
2804
- return s`${B(e.render(c))}`;
2993
+ async function Be(c) {
2994
+ const e = $a();
2995
+ return r`${U(e.render(c))}`;
2805
2996
  }
2806
- var ha = Object.defineProperty, ua = Object.getOwnPropertyDescriptor, he = (c, e, a, f) => {
2807
- for (var t = f > 1 ? void 0 : f ? ua(e, a) : e, o = c.length - 1, d; o >= 0; o--)
2808
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
2809
- 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;
2810
3001
  };
2811
- let F = class extends C {
3002
+ let J = class extends S {
2812
3003
  constructor() {
2813
3004
  super(...arguments), this.type = "assistant";
2814
3005
  }
@@ -2835,9 +3026,9 @@ let F = class extends C {
2835
3026
  _addCopyEvents() {
2836
3027
  this.copyBtns.forEach((c) => {
2837
3028
  c.addEventListener("click", () => {
2838
- var a, f;
2839
- const e = (f = (a = c.parentElement) == null ? void 0 : a.nextElementSibling) == null ? void 0 : f.textContent;
2840
- 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(() => {
2841
3032
  c.textContent = "Success", setTimeout(() => {
2842
3033
  c.textContent = "Copy";
2843
3034
  }, 500);
@@ -2852,12 +3043,12 @@ let F = class extends C {
2852
3043
  });
2853
3044
  }
2854
3045
  render() {
2855
- return D(
3046
+ return W(
2856
3047
  this.message.data || this.message.isThinking,
2857
- () => s`
3048
+ () => r`
2858
3049
  <div class="cb-message-row" part="cb-message-row">
2859
3050
  <!-- message -->
2860
- ${D(
3051
+ ${W(
2861
3052
  this._isBot,
2862
3053
  () => this.renderBotMessage(this.message),
2863
3054
  () => this.renderUserMessage(this.message)
@@ -2868,15 +3059,15 @@ let F = class extends C {
2868
3059
  );
2869
3060
  }
2870
3061
  renderButtons(c = "left") {
2871
- return s`<div class="cb-message__buttons ${c}">
3062
+ return r`<div class="cb-message__buttons ${c}">
2872
3063
  <!-- delete button -->
2873
3064
  <sl-button class="cb-message__delete-button" name="trash" @click=${this._removeMessageHandler} circle variant="text" size="small">
2874
- <cb-icon svg="${sa}" style="font-size: 1em !important;"></cb-icon>
3065
+ <cb-icon svg="${wa}" style="font-size: 1em !important;"></cb-icon>
2875
3066
  </sl-button>
2876
3067
  </div>`;
2877
3068
  }
2878
3069
  renderMessage(c) {
2879
- return s`
3070
+ return r`
2880
3071
  <div
2881
3072
  class="cb-message__content
2882
3073
  ${c.author}-message
@@ -2889,38 +3080,38 @@ let F = class extends C {
2889
3080
  `;
2890
3081
  }
2891
3082
  async _getMessageText(c) {
2892
- return Ee(c.data.text);
3083
+ return Be(c.data.text);
2893
3084
  }
2894
3085
  renderMessageContent(c) {
2895
3086
  var e;
2896
- 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">
2897
- ${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(
2898
3089
  c.data.userName,
2899
- () => 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>`,
2900
3091
  () => null
2901
3092
  )}
2902
- ${He(
2903
- this._getMessageText(c).then((a) => s`${a}`)
3093
+ ${ze(
3094
+ this._getMessageText(c).then((a) => r`${a}`)
2904
3095
  )}
2905
- </div>` : c.type === "file" ? s`${we(
3096
+ </div>` : c.type === "file" ? r`${te(
2906
3097
  c.data.files || [],
2907
3098
  (a) => a.id,
2908
- (a) => s`<cb-file filename="${a.name}" url="${a.url}"></cb-file>`
2909
- )}` : s`<div class="cb-message-text">
2910
- ${He(
2911
- 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}`)
2912
3103
  )}
2913
3104
  </div>`;
2914
3105
  }
2915
3106
  renderBotMessageAvatar(c) {
2916
3107
  if (c.data.userName && c.data.userName !== "") {
2917
3108
  const e = c.data.userAvatar || "";
2918
- return s` <img src="${e}" style="width: 24px;height: 24px;" /> `;
3109
+ return r` <img src="${e}" style="width: 24px;height: 24px;" /> `;
2919
3110
  }
2920
- 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)}`;
2921
3112
  }
2922
3113
  renderBotMessage(c) {
2923
- return s`
3114
+ return r`
2924
3115
  <div class="cb-message cb-bot-message-wrapper" part="cb-message">
2925
3116
  <div class="avatar assistant-avatar xsmall" style="margin-top:4px;">${this.renderBotMessageAvatar(c)}</div>
2926
3117
  <div style="margin-left: 4px;width: 100%">${this.renderMessage(c)}</div>
@@ -2928,58 +3119,111 @@ let F = class extends C {
2928
3119
  `;
2929
3120
  }
2930
3121
  renderUserMessage(c) {
2931
- return s`
3122
+ return r`
2932
3123
  <div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
2933
3124
  <!--<sl-avatar class="avatar user-avatar small" label="User">
2934
- <cb-icon slot="icon" svg="${na}" color="white"></cb-icon>
3125
+ <cb-icon slot="icon" svg="${xa}" color="white"></cb-icon>
2935
3126
  </sl-avatar>-->
2936
- <div class="avatar user-avatar">${B(n.setting.userIconSvg)}</div>
3127
+ <div class="avatar user-avatar">${U(s.setting.userIconSvg)}</div>
2937
3128
  ${this.renderMessage(c)}
2938
3129
  </div>
2939
3130
  `;
2940
3131
  }
2941
3132
  };
2942
- F.styles = la;
2943
- he([
2944
- r({ type: Object })
2945
- ], F.prototype, "message", 2);
2946
- he([
2947
- r({ type: String })
2948
- ], F.prototype, "type", 2);
2949
- he([
2950
- pc(".code-block-header__copy")
2951
- ], F.prototype, "copyBtns", 2);
2952
- F = he([
2953
- k("cb-message")
2954
- ], F);
2955
- var ga = Object.defineProperty, ma = Object.getOwnPropertyDescriptor, Z = (c, e, a, f) => {
2956
- for (var t = f > 1 ? void 0 : f ? ma(e, a) : e, o = c.length - 1, d; o >= 0; o--)
2957
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
2958
- return f && t && ga(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;
2959
3150
  };
2960
- const Q = pe.noConflict();
2961
- Q.setLevel("info");
2962
- let E = class extends C {
3151
+ const N = me.noConflict();
3152
+ N.setLevel("info");
3153
+ let z = class extends S {
2963
3154
  constructor() {
2964
- 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;
2965
3156
  }
2966
3157
  render() {
2967
- return s`
3158
+ return r`
2968
3159
  <div class="cb-message-list" part="cb-message-list">
2969
- ${we(
3160
+ ${te(
2970
3161
  this.messages,
2971
3162
  (c) => c.id + JSON.stringify(c.data),
2972
- (c) => s`<cb-message .message="${c}"></cb-message>`
3163
+ (c) => r`<cb-message .message="${c}"></cb-message>`
2973
3164
  )}
2974
- ${this.renderActions()}
3165
+ ${this.renderActions()} ${this.renderForm()}
2975
3166
  <div id="cb-message-list-bottom-anchor"></div>
2976
3167
  </div>
2977
3168
  `;
2978
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
+ */
2979
3223
  renderActions() {
2980
- return !Array.isArray(this.actions) || this.actions.length <= 0 ? null : s`
3224
+ return !Array.isArray(this.actions) || this.actions.length <= 0 ? null : r`
2981
3225
  <div class="cb-actions-list">
2982
- ${we(
3226
+ ${te(
2983
3227
  this.actions,
2984
3228
  (c) => c,
2985
3229
  (c) => this.renderAction(c)
@@ -3000,29 +3244,29 @@ let E = class extends C {
3000
3244
  return null;
3001
3245
  }
3002
3246
  handleCalendlyEvent(c) {
3003
- switch (Q.info("Got Calendly Event:", c.data), c.data.event) {
3247
+ switch (N.info("Got Calendly Event:", c.data), c.data.event) {
3004
3248
  case "calendly.event_scheduled": {
3005
3249
  const e = this.activeCalendlyAction;
3006
- 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);
3007
3251
  }
3008
3252
  }
3009
3253
  }
3010
3254
  invokeLinkAction(c = {}) {
3011
- Q.info("invokeLinkAction:", c), window.open(c.url, "_blank");
3255
+ N.info("invokeLinkAction:", c), window.open(c.url, "_blank");
3012
3256
  }
3013
3257
  invokeCalendlyAction(c = {}) {
3014
- return Q.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;
3015
3259
  }
3016
3260
  renderCalendlyAction(c) {
3017
3261
  if (!("Calendly" in window) && !this.calendlyInjected) {
3018
3262
  let e = document.createElement("link");
3019
3263
  e.href = "https://assets.calendly.com/assets/external/widget.css", e.rel = "stylesheet", document.body.appendChild(e);
3020
3264
  let a = document.createElement("script");
3021
- 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) => {
3022
- 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);
3023
3267
  }), this.calendlyInjected = !0;
3024
3268
  }
3025
- return s`
3269
+ return r`
3026
3270
  <div class="cb-actions-list">
3027
3271
  <div class="cb-action ripple" @click="${this.invokeCalendlyAction.bind(this, c)}">
3028
3272
  <div class="cb-action-icon">
@@ -3039,7 +3283,7 @@ let E = class extends C {
3039
3283
  `;
3040
3284
  }
3041
3285
  renderLinkAction(c) {
3042
- return s`
3286
+ return r`
3043
3287
  <div class="cb-actions-list">
3044
3288
  <div class="cb-action ripple" @click="${this.invokeLinkAction.bind(this, c)}">
3045
3289
  <div class="cb-action-icon">
@@ -3053,27 +3297,33 @@ let E = class extends C {
3053
3297
  `;
3054
3298
  }
3055
3299
  };
3056
- E.styles = Zc;
3057
- Z([
3058
- r({ type: Array })
3059
- ], E.prototype, "messages", 2);
3060
- Z([
3061
- r({ type: Array })
3062
- ], E.prototype, "actions", 2);
3063
- Z([
3064
- le("#cb-message-list-bottom-anchor")
3065
- ], E.prototype, "_messageListBottomAnchor", 2);
3066
- Z([
3067
- qe({ capture: !1, passive: !0 })
3068
- ], E.prototype, "invokeLinkAction", 1);
3069
- Z([
3070
- qe({ capture: !1, passive: !0 })
3071
- ], E.prototype, "invokeCalendlyAction", 1);
3072
- E = Z([
3073
- k("cb-message-list")
3074
- ], E);
3075
- const ya = x`
3076
- ${H}
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}
3077
3327
 
3078
3328
  :host {
3079
3329
  width: 100%;
@@ -3115,16 +3365,24 @@ const ya = x`
3115
3365
  .cb-input-buttons {
3116
3366
  padding: 0 5px;
3117
3367
  }
3118
- `, 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>';
3119
- var xa = Object.defineProperty, ka = Object.getOwnPropertyDescriptor, P = (c, e, a, f) => {
3120
- for (var t = f > 1 ? void 0 : f ? ka(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3121
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3122
- 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;
3123
3373
  };
3124
- let L = class extends C {
3374
+ let H = class extends S {
3125
3375
  constructor() {
3126
3376
  super(...arguments), this.placeholder = "Type a message...", this.sendButtonLabel = "Send", this.enableFileUpload = !1, this.value = "", this.loading = !1, this.disabled = !1, this.currentKey = "";
3127
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
+ }
3128
3386
  _inputChangeHandler(c) {
3129
3387
  const e = c.target;
3130
3388
  this.value = e.value;
@@ -3144,7 +3402,7 @@ let L = class extends C {
3144
3402
  });
3145
3403
  }
3146
3404
  async _sendFileHandler() {
3147
- const c = await Lc();
3405
+ const c = await Ac();
3148
3406
  this.emit("message:send:file", {
3149
3407
  detail: {
3150
3408
  files: c
@@ -3152,7 +3410,7 @@ let L = class extends C {
3152
3410
  });
3153
3411
  }
3154
3412
  render() {
3155
- return s`
3413
+ return r`
3156
3414
  <div class="cb-user-input-wrapper" part="user-input-wrapper">
3157
3415
  <sl-textarea
3158
3416
  @sl-input=${this._inputChangeHandler}
@@ -3169,29 +3427,19 @@ let L = class extends C {
3169
3427
  ></sl-textarea>
3170
3428
 
3171
3429
  <span class="cb-input-buttons">
3172
- ${D(
3430
+ ${W(
3173
3431
  this.enableFileUpload,
3174
- () => s`
3432
+ () => r`
3175
3433
  <sl-button @click=${this._sendFileHandler} name="paperclip" label="Attachment" size="large" class="paperclip-button" variant="text" circle>
3176
- <cb-icon svg="${wa}"></cb-icon>
3434
+ <cb-icon svg="${Oa}"></cb-icon>
3177
3435
  <!-- select file input -->
3178
3436
  <input type="file" id="file" name="file" class="file-input" />
3179
3437
  </sl-button>
3180
3438
  `,
3181
- () => s``
3439
+ () => r``
3182
3440
  )}
3183
- <sl-button
3184
- @click=${this._sendHandler}
3185
- name="send"
3186
- label="Send"
3187
- size="small"
3188
- class="send-button"
3189
- variant="text"
3190
- ?disabled=${this.value.length === 0}
3191
- ?loading=${this.loading}
3192
- circle
3193
- >
3194
- <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>
3195
3443
  </sl-button>
3196
3444
  </span>
3197
3445
  </div>
@@ -3201,36 +3449,36 @@ let L = class extends C {
3201
3449
  c.key === "Enter" && !c.shiftKey && this._sendHandler();
3202
3450
  }
3203
3451
  };
3204
- L.styles = ya;
3205
- P([
3206
- r({ type: String, attribute: "placeholder" })
3207
- ], L.prototype, "placeholder", 2);
3208
- P([
3209
- r({ type: String, attribute: "send-button-label" })
3210
- ], L.prototype, "sendButtonLabel", 2);
3211
- P([
3212
- r({ type: Boolean, attribute: "enable-file-upload" })
3213
- ], L.prototype, "enableFileUpload", 2);
3214
- P([
3215
- r({ type: String })
3216
- ], L.prototype, "value", 2);
3217
- P([
3218
- r({ type: Boolean })
3219
- ], L.prototype, "loading", 2);
3220
- P([
3221
- r({ type: Boolean })
3222
- ], L.prototype, "disabled", 2);
3223
- P([
3224
- r({ type: String })
3225
- ], L.prototype, "currentKey", 2);
3226
- P([
3227
- le("sl-textarea")
3228
- ], L.prototype, "inputElement", 2);
3229
- L = P([
3230
- k("cb-user-input")
3231
- ], L);
3232
- const _a = x`
3233
- ${H}
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}
3234
3482
 
3235
3483
  sl-dialog::part(base) {
3236
3484
  z-index: 1000;
@@ -3264,12 +3512,12 @@ const _a = x`
3264
3512
  gap: 8px;
3265
3513
  }
3266
3514
  `;
3267
- var Ca = Object.defineProperty, $a = Object.getOwnPropertyDescriptor, ue = (c, e, a, f) => {
3268
- for (var t = f > 1 ? void 0 : f ? $a(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3269
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3270
- 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;
3271
3519
  };
3272
- let U = class extends C {
3520
+ let K = class extends S {
3273
3521
  constructor() {
3274
3522
  super(...arguments), this.open = !1, this.label = "Dialog", this.zindex = 100;
3275
3523
  }
@@ -3277,7 +3525,7 @@ let U = class extends C {
3277
3525
  this.emit("cancel");
3278
3526
  }
3279
3527
  render() {
3280
- return s` <sl-dialog
3528
+ return r` <sl-dialog
3281
3529
  label="Setting"
3282
3530
  class="cb-dialog"
3283
3531
  style="sl-dialog::part(base) { z-index: ${this.zindex}; }"
@@ -3287,7 +3535,7 @@ let U = class extends C {
3287
3535
  >
3288
3536
  <header class="cb-header">
3289
3537
  <div class="cb-header__left">
3290
- ${this.label ? s`<span class="title">${this.label}</span>` : ""}
3538
+ ${this.label ? r`<span class="title">${this.label}</span>` : ""}
3291
3539
  </div>
3292
3540
  <sl-button
3293
3541
  @click=${this._settingCancelHandler}
@@ -3300,7 +3548,7 @@ let U = class extends C {
3300
3548
  <cb-icon
3301
3549
  color="default"
3302
3550
  style="font-size: 1em;"
3303
- svg="${te}"
3551
+ svg="${be}"
3304
3552
  ></cb-icon>
3305
3553
  </sl-button>
3306
3554
  </header>
@@ -3313,30 +3561,30 @@ let U = class extends C {
3313
3561
  </sl-dialog>`;
3314
3562
  }
3315
3563
  };
3316
- U.styles = _a;
3317
- ue([
3318
- r({ type: Boolean })
3319
- ], U.prototype, "open", 2);
3320
- ue([
3321
- r({ type: String, attribute: "label" })
3322
- ], U.prototype, "label", 2);
3323
- ue([
3324
- r({ type: Number })
3325
- ], U.prototype, "zindex", 2);
3326
- U = ue([
3327
- k("cb-dialog")
3328
- ], U);
3329
- var ja = Object.defineProperty, Ma = Object.getOwnPropertyDescriptor, Je = (c, e, a, f) => {
3330
- for (var t = f > 1 ? void 0 : f ? Ma(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3331
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3332
- 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;
3333
3581
  };
3334
- let de = class extends C {
3582
+ let ie = class extends S {
3335
3583
  constructor() {
3336
3584
  super(...arguments), this.open = !1;
3337
3585
  }
3338
3586
  render() {
3339
- return s` <cb-dialog
3587
+ return r` <cb-dialog
3340
3588
  label="Confirm"
3341
3589
  class="cb-clear-message-dialog"
3342
3590
  ?open=${this.open}
@@ -3365,7 +3613,7 @@ let de = class extends C {
3365
3613
  this.emit("cancel");
3366
3614
  }
3367
3615
  };
3368
- de.styles = x`
3616
+ ie.styles = x`
3369
3617
  .cb-clear-message-dialog {
3370
3618
  }
3371
3619
 
@@ -3373,13 +3621,13 @@ de.styles = x`
3373
3621
  z-index: 1000;
3374
3622
  }
3375
3623
  `;
3376
- Je([
3377
- r({ type: Boolean })
3378
- ], de.prototype, "open", 2);
3379
- de = Je([
3380
- k("cb-clear-message-dialog")
3381
- ], de);
3382
- 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`
3383
3631
  :host {
3384
3632
  // width: 380px;
3385
3633
 
@@ -3439,17 +3687,17 @@ const Sa = x`
3439
3687
  grid-column-start: 2;
3440
3688
  }
3441
3689
  `;
3442
- var Aa = Object.defineProperty, La = Object.getOwnPropertyDescriptor, N = (c, e, a, f) => {
3443
- for (var t = f > 1 ? void 0 : f ? La(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3444
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3445
- 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;
3446
3694
  };
3447
- let z = class extends C {
3695
+ let R = class extends S {
3448
3696
  constructor() {
3449
3697
  super(...arguments), this.open = !1, this.clearMessageDialogOpen = !1, this.customRequest = !1;
3450
3698
  }
3451
3699
  render() {
3452
- return this.customRequest = this.setting.customRequest, s`
3700
+ return this.customRequest = this.setting.customRequest, r`
3453
3701
  <cb-dialog
3454
3702
  label="Setting"
3455
3703
  class="cb-dialog"
@@ -3483,7 +3731,7 @@ let z = class extends C {
3483
3731
  Enable it for your own backend.
3484
3732
  </sl-switch>
3485
3733
  </div> -->
3486
- ${D(
3734
+ ${W(
3487
3735
  this.customRequest,
3488
3736
  () => null,
3489
3737
  () => this.renderInternalServices()
@@ -3542,7 +3790,7 @@ let z = class extends C {
3542
3790
  `;
3543
3791
  }
3544
3792
  renderInternalServices() {
3545
- return s`
3793
+ return r`
3546
3794
  <div class="form-item">
3547
3795
  <label class="label">Service</label>
3548
3796
  <sl-radio-group name="openai" value="openai" size="small">
@@ -3580,13 +3828,13 @@ let z = class extends C {
3580
3828
  }
3581
3829
  // input change handler
3582
3830
  _inputChangeHandler(c) {
3583
- const { name: e, value: a } = c.target, [f, t] = e.split(".");
3584
- 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;
3585
3833
  }
3586
3834
  // checked change handler
3587
3835
  _checkChangeHandler(c) {
3588
- const { name: e, checked: a } = c.target, [f, t] = e.split(".");
3589
- 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);
3590
3838
  }
3591
3839
  // emit setting confirm event
3592
3840
  _settingConfirmHandler() {
@@ -3607,27 +3855,27 @@ let z = class extends C {
3607
3855
  });
3608
3856
  }
3609
3857
  };
3610
- z.styles = Sa;
3611
- N([
3612
- r({ type: Boolean })
3613
- ], z.prototype, "open", 2);
3614
- N([
3615
- r({ type: Object })
3616
- ], z.prototype, "setting", 2);
3617
- N([
3618
- r({ type: Boolean })
3619
- ], z.prototype, "clearMessageDialogOpen", 2);
3620
- N([
3621
- le("sl-dialog")
3622
- ], z.prototype, "dialog", 2);
3623
- N([
3624
- r({ type: Boolean })
3625
- ], z.prototype, "customRequest", 2);
3626
- z = N([
3627
- k("cb-setting")
3628
- ], z);
3629
- const Oa = x`
3630
- ${H}
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}
3631
3879
  :host {
3632
3880
  --primary-color: var(--sl-color-primary-600);
3633
3881
 
@@ -3638,7 +3886,6 @@ const Oa = x`
3638
3886
  width: var(--anchor-width);
3639
3887
  height: var(--anchor-width);
3640
3888
  //background-color: var(--primary-color);
3641
- background: rgb(0, 208, 117);
3642
3889
 
3643
3890
  position: fixed;
3644
3891
  right: 25px;
@@ -3666,8 +3913,8 @@ const Oa = x`
3666
3913
  }
3667
3914
 
3668
3915
  sl-button[variant='primary']::part(base) {
3669
- background-color: rgb(0, 208, 117);
3670
- border-color: rgb(0, 208, 117);
3916
+ background: var(--enegelai-bot-anchor-background, rgb(0, 208, 117));
3917
+ border-color: var(--enegelai-bot-anchor-border-color, rgb(0, 208, 117));
3671
3918
  }
3672
3919
 
3673
3920
  .cb-engage-popup {
@@ -3718,15 +3965,15 @@ const Oa = x`
3718
3965
  align-items: start;
3719
3966
  gap: 10px;
3720
3967
  }
3721
- `, Ia = '<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>';
3722
- var Ha = Object.defineProperty, Pa = Object.getOwnPropertyDescriptor, Ye = (c, e, a, f) => {
3723
- for (var t = f > 1 ? void 0 : f ? Pa(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3724
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3725
- return f && t && Ha(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;
3726
3973
  };
3727
- let be = class extends C {
3974
+ let le = class extends S {
3728
3975
  constructor() {
3729
- super(...arguments), this.store = new Fe(this, n), this.open = !1;
3976
+ super(...arguments), this.store = new Ne(this, s), this.open = !1;
3730
3977
  }
3731
3978
  // handler click
3732
3979
  _clickHandler() {
@@ -3738,25 +3985,25 @@ let be = class extends C {
3738
3985
  }), this.open = c;
3739
3986
  }
3740
3987
  _engageClickHandler(c) {
3741
- console.log("engage close clicked!"), n.engage = !1, c.stopPropagation();
3988
+ console.log("engage close clicked!"), s.engage = !1, c.stopPropagation();
3742
3989
  }
3743
3990
  render() {
3744
- return s`
3991
+ return r`
3745
3992
  <div class="cb-anchor ${this.open ? "open" : ""}" part="cb-anchor" @click=${this._clickHandler.bind(this)}>
3746
- <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}">
3747
3994
  <sl-button slot="anchor" label="Start" size="large" variant="primary" class="icon anchor-button" circle>
3748
- ${D(
3995
+ ${W(
3749
3996
  this.open,
3750
- () => s`<cb-icon color="white" svg="${te}"></cb-icon>`,
3751
- () => s`<cb-icon color="white" svg="${Ia}"></cb-icon>`
3997
+ () => r`<cb-icon color="white" svg="${be}"></cb-icon>`,
3998
+ () => r`<cb-icon color="white" svg="${qa}"></cb-icon>`
3752
3999
  )}
3753
4000
  </sl-button>
3754
4001
  <div class="cb-engage-popup">
3755
- <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>
3756
4003
  <div class="cb-engage-popup-content">
3757
- <div class="cb-engage-popup-logo">${ae`${B(n.setting.logoSvg)}`}</div>
3758
- <!--<cb-icon class="cb-engage-popup-logo" svg="${n.setting.logoSvg}"></cb-icon>-->
3759
- <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>
3760
4007
  </div>
3761
4008
  </div>
3762
4009
  </sl-popup>
@@ -3764,67 +4011,67 @@ let be = class extends C {
3764
4011
  `;
3765
4012
  }
3766
4013
  };
3767
- be.styles = Oa;
3768
- Ye([
3769
- r({ type: Boolean })
3770
- ], be.prototype, "open", 2);
3771
- be = Ye([
3772
- k("cb-anchor")
3773
- ], be);
3774
- const Ea = x`
3775
- ${H}
3776
- `, 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>';
3777
- var za = Object.defineProperty, Ta = Object.getOwnPropertyDescriptor, ec = (c, e, a, f) => {
3778
- for (var t = f > 1 ? void 0 : f ? Ta(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3779
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3780
- 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;
3781
4028
  };
3782
- const ze = {
4029
+ const Ve = {
3783
4030
  error: {
3784
4031
  variant: "danger",
3785
- icon: Ce
4032
+ icon: Re
3786
4033
  },
3787
4034
  danger: {
3788
4035
  variant: "danger",
3789
- icon: Ce
4036
+ icon: Re
3790
4037
  },
3791
4038
  warning: {
3792
4039
  variant: "warning",
3793
- icon: Ge
4040
+ icon: Wa
3794
4041
  },
3795
4042
  success: {
3796
4043
  variant: "success",
3797
- icon: Xe
4044
+ icon: Ja
3798
4045
  },
3799
4046
  info: {
3800
4047
  variant: "primary",
3801
- icon: Qe
4048
+ icon: Ka
3802
4049
  }
3803
4050
  };
3804
- let re = class extends C {
4051
+ let pe = class extends S {
3805
4052
  constructor() {
3806
4053
  super(...arguments), this.status = "info";
3807
4054
  }
3808
4055
  render() {
3809
- const { variant: c, icon: e } = ze[this.status] || ze.info;
3810
- 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>`;
3811
4058
  }
3812
4059
  };
3813
- re.styles = Ne;
4060
+ pe.styles = Ke;
3814
4061
  ec([
3815
- r({ type: String })
3816
- ], re.prototype, "status", 2);
3817
- re = ec([
3818
- k("cb-status-icon")
3819
- ], re);
3820
- var Ba = Object.defineProperty, Ra = Object.getOwnPropertyDescriptor, Va = (c, e, a, f) => {
3821
- for (var t = f > 1 ? void 0 : f ? Ra(e, a) : e, o = c.length - 1, d; o >= 0; o--)
3822
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
3823
- 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;
3824
4071
  };
3825
- let $e = class extends C {
4072
+ let Me = class extends S {
3826
4073
  render() {
3827
- return s` <sl-alert variant="danger" open>
4074
+ return r` <sl-alert variant="danger" open>
3828
4075
  <cb-status-icon status="error" slot="icon"></cb-status-icon>
3829
4076
  Please config openai api key in the settings.
3830
4077
  <span
@@ -3838,14 +4085,14 @@ let $e = class extends C {
3838
4085
  this.emit("setting:show");
3839
4086
  }
3840
4087
  };
3841
- $e.styles = Ea;
3842
- $e = Va([
3843
- k("cb-auth-alert")
3844
- ], $e);
3845
- class Te extends Error {
3846
- constructor(e, a, f) {
3847
- const t = e.status || e.status === 0 ? e.status : "", o = e.statusText || "", d = `${t} ${o}`.trim(), b = d ? `status code ${d}` : "an unknown error";
3848
- 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", {
3849
4096
  enumerable: !0,
3850
4097
  configurable: !0,
3851
4098
  writable: !0,
@@ -3860,7 +4107,7 @@ class Te extends Error {
3860
4107
  configurable: !0,
3861
4108
  writable: !0,
3862
4109
  value: void 0
3863
- }), 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;
3864
4111
  }
3865
4112
  }
3866
4113
  class cc extends Error {
@@ -3873,31 +4120,31 @@ class cc extends Error {
3873
4120
  }), this.name = "TimeoutError", this.request = e;
3874
4121
  }
3875
4122
  }
3876
- const ee = (c) => c !== null && typeof c == "object", G = (...c) => {
4123
+ const oe = (c) => c !== null && typeof c == "object", ae = (...c) => {
3877
4124
  for (const e of c)
3878
- if ((!ee(e) || Array.isArray(e)) && typeof e < "u")
4125
+ if ((!oe(e) || Array.isArray(e)) && typeof e < "u")
3879
4126
  throw new TypeError("The `options` argument must be an object");
3880
- return Le({}, ...c);
4127
+ return He({}, ...c);
3881
4128
  }, ac = (c = {}, e = {}) => {
3882
- const a = new globalThis.Headers(c), f = e instanceof globalThis.Headers, t = new globalThis.Headers(e);
3883
- for (const [o, d] of t.entries())
3884
- 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);
3885
4132
  return a;
3886
- }, Le = (...c) => {
4133
+ }, He = (...c) => {
3887
4134
  let e = {}, a = {};
3888
- for (const f of c)
3889
- if (Array.isArray(f))
3890
- Array.isArray(e) || (e = []), e = [...e, ...f];
3891
- else if (ee(f)) {
3892
- for (let [t, o] of Object.entries(f))
3893
- ee(o) && t in e && (o = Le(e[t], o)), e = { ...e, [t]: o };
3894
- ee(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);
3895
4142
  }
3896
4143
  return e;
3897
- }, qa = (() => {
4144
+ }, c1 = (() => {
3898
4145
  let c = !1, e = !1;
3899
- const a = typeof globalThis.ReadableStream == "function", f = typeof globalThis.Request == "function";
3900
- 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", {
3901
4148
  body: new globalThis.ReadableStream(),
3902
4149
  method: "POST",
3903
4150
  // @ts-expect-error - Types are outdated.
@@ -3905,23 +4152,23 @@ const ee = (c) => c !== null && typeof c == "object", G = (...c) => {
3905
4152
  return c = !0, "half";
3906
4153
  }
3907
4154
  }).headers.has("Content-Type")), c && !e;
3908
- })(), Da = typeof globalThis.AbortController == "function", Fa = typeof globalThis.ReadableStream == "function", Ua = 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 = {
3909
4156
  json: "application/json",
3910
4157
  text: "text/*",
3911
4158
  formData: "multipart/form-data",
3912
4159
  arrayBuffer: "*/*",
3913
4160
  blob: "*/*"
3914
- }, 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 = {
3915
4162
  limit: 2,
3916
- methods: Wa,
3917
- statusCodes: Ka,
4163
+ methods: r1,
4164
+ statusCodes: b1,
3918
4165
  afterStatusCodes: oc,
3919
4166
  maxRetryAfter: Number.POSITIVE_INFINITY,
3920
4167
  backoffLimit: Number.POSITIVE_INFINITY
3921
- }, Ja = (c = {}) => {
4168
+ }, n1 = (c = {}) => {
3922
4169
  if (typeof c == "number")
3923
4170
  return {
3924
- ...Be,
4171
+ ...Fe,
3925
4172
  limit: c
3926
4173
  };
3927
4174
  if (c.methods && !Array.isArray(c.methods))
@@ -3929,83 +4176,83 @@ const ee = (c) => c !== null && typeof c == "object", G = (...c) => {
3929
4176
  if (c.statusCodes && !Array.isArray(c.statusCodes))
3930
4177
  throw new Error("retry.statusCodes must be an array");
3931
4178
  return {
3932
- ...Be,
4179
+ ...Fe,
3933
4180
  ...c,
3934
4181
  afterStatusCodes: oc
3935
4182
  };
3936
4183
  };
3937
- async function Ya(c, e, a) {
3938
- return new Promise((f, t) => {
4184
+ async function s1(c, e, a) {
4185
+ return new Promise((t, f) => {
3939
4186
  const o = setTimeout(() => {
3940
- e && e.abort(), t(new cc(c));
4187
+ e && e.abort(), f(new cc(c));
3941
4188
  }, a.timeout);
3942
- a.fetch(c).then(f).catch(t).then(() => {
4189
+ a.fetch(c).then(t).catch(f).then(() => {
3943
4190
  clearTimeout(o);
3944
4191
  });
3945
4192
  });
3946
4193
  }
3947
- const Ga = !!globalThis.DOMException;
3948
- function Re(c) {
3949
- if (Ga)
4194
+ const i1 = !!globalThis.DOMException;
4195
+ function qe(c) {
4196
+ if (i1)
3950
4197
  return new DOMException((c == null ? void 0 : c.reason) ?? "The operation was aborted.", "AbortError");
3951
4198
  const e = new Error((c == null ? void 0 : c.reason) ?? "The operation was aborted.");
3952
4199
  return e.name = "AbortError", e;
3953
4200
  }
3954
- async function Xa(c, { signal: e }) {
3955
- return new Promise((a, f) => {
4201
+ async function l1(c, { signal: e }) {
4202
+ return new Promise((a, t) => {
3956
4203
  if (e) {
3957
4204
  if (e.aborted) {
3958
- f(Re(e));
4205
+ t(qe(e));
3959
4206
  return;
3960
4207
  }
3961
- e.addEventListener("abort", t, { once: !0 });
4208
+ e.addEventListener("abort", f, { once: !0 });
3962
4209
  }
3963
- function t() {
3964
- f(Re(e)), clearTimeout(o);
4210
+ function f() {
4211
+ t(qe(e)), clearTimeout(o);
3965
4212
  }
3966
4213
  const o = setTimeout(() => {
3967
- e == null || e.removeEventListener("abort", t), a();
4214
+ e == null || e.removeEventListener("abort", f), a();
3968
4215
  }, c);
3969
4216
  });
3970
4217
  }
3971
- class se {
4218
+ class he {
3972
4219
  // eslint-disable-next-line @typescript-eslint/promise-function-async
3973
4220
  static create(e, a) {
3974
- const f = new se(e, a), t = async () => {
3975
- if (f._options.timeout > ve)
3976
- 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}`);
3977
4224
  await Promise.resolve();
3978
- let b = await f._fetch();
3979
- for (const h of f._options.hooks.afterResponse) {
3980
- const g = await h(f.request, f._options, f._decorateResponse(b.clone()));
3981
- g instanceof globalThis.Response && (b = g);
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);
3982
4229
  }
3983
- if (f._decorateResponse(b), !b.ok && f._options.throwHttpErrors) {
3984
- let h = new Te(b, f.request, f._options);
3985
- for (const g of f._options.hooks.beforeError)
3986
- h = await g(h);
3987
- 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;
3988
4235
  }
3989
- if (f._options.onDownloadProgress) {
3990
- if (typeof f._options.onDownloadProgress != "function")
4236
+ if (t._options.onDownloadProgress) {
4237
+ if (typeof t._options.onDownloadProgress != "function")
3991
4238
  throw new TypeError("The `onDownloadProgress` option must be a function");
3992
- if (!Fa)
4239
+ if (!t1)
3993
4240
  throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");
3994
- return f._stream(b.clone(), f._options.onDownloadProgress);
4241
+ return t._stream(n.clone(), t._options.onDownloadProgress);
3995
4242
  }
3996
- return b;
3997
- }, d = f._options.retry.methods.includes(f.request.method.toLowerCase()) ? f._retry(t) : t();
3998
- for (const [b, h] of Object.entries(Za))
3999
- d[b] = async () => {
4000
- f.request.headers.set("accept", f.request.headers.get("accept") || h);
4001
- const m = (await d).clone();
4002
- if (b === "json") {
4003
- 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)
4004
4251
  return "";
4005
4252
  if (a.parseJson)
4006
- return a.parseJson(await m.text());
4253
+ return a.parseJson(await C.text());
4007
4254
  }
4008
- return m[b]();
4255
+ return C[n]();
4009
4256
  };
4010
4257
  return d;
4011
4258
  }
@@ -4041,16 +4288,16 @@ class se {
4041
4288
  credentials: this._input.credentials || "same-origin",
4042
4289
  ...a,
4043
4290
  headers: ac(this._input.headers, a.headers),
4044
- hooks: Le({
4291
+ hooks: He({
4045
4292
  beforeRequest: [],
4046
4293
  beforeRetry: [],
4047
4294
  beforeError: [],
4048
4295
  afterResponse: []
4049
4296
  }, a.hooks),
4050
- method: Na(a.method ?? this._input.method),
4297
+ method: d1(a.method ?? this._input.method),
4051
4298
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
4052
4299
  prefixUrl: String(a.prefixUrl || ""),
4053
- retry: Ja(a.retry),
4300
+ retry: n1(a.retry),
4054
4301
  throwHttpErrors: a.throwHttpErrors !== !1,
4055
4302
  timeout: typeof a.timeout > "u" ? 1e4 : a.timeout,
4056
4303
  fetch: a.fetch ?? globalThis.fetch.bind(globalThis)
@@ -4061,30 +4308,30 @@ class se {
4061
4308
  throw new Error("`input` must not begin with a slash when using `prefixUrl`");
4062
4309
  this._options.prefixUrl.endsWith("/") || (this._options.prefixUrl += "/"), this._input = this._options.prefixUrl + this._input;
4063
4310
  }
4064
- if (Da) {
4311
+ if (a1) {
4065
4312
  if (this.abortController = new globalThis.AbortController(), this._options.signal) {
4066
- const f = this._options.signal;
4313
+ const t = this._options.signal;
4067
4314
  this._options.signal.addEventListener("abort", () => {
4068
- this.abortController.abort(f.reason);
4315
+ this.abortController.abort(t.reason);
4069
4316
  });
4070
4317
  }
4071
4318
  this._options.signal = this.abortController.signal;
4072
4319
  }
4073
- if (qa && (this._options.duplex = "half"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {
4074
- const t = "?" + (typeof this._options.searchParams == "string" ? this._options.searchParams.replace(/^\?/, "") : new URLSearchParams(this._options.searchParams).toString()), o = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, t);
4075
- (Ua && 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);
4076
4323
  }
4077
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 }));
4078
4325
  }
4079
4326
  _calculateRetryDelay(e) {
4080
4327
  if (this._retryCount++, this._retryCount < this._options.retry.limit && !(e instanceof cc)) {
4081
- if (e instanceof Te) {
4328
+ if (e instanceof De) {
4082
4329
  if (!this._options.retry.statusCodes.includes(e.response.status))
4083
4330
  return 0;
4084
- const f = e.response.headers.get("Retry-After");
4085
- if (f && this._options.retry.afterStatusCodes.includes(e.response.status)) {
4086
- let t = Number(f);
4087
- 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;
4088
4335
  }
4089
4336
  if (e.response.status === 413)
4090
4337
  return 0;
@@ -4101,11 +4348,11 @@ class se {
4101
4348
  try {
4102
4349
  return await e();
4103
4350
  } catch (a) {
4104
- const f = Math.min(this._calculateRetryDelay(a), ve);
4105
- if (f !== 0 && this._retryCount > 0) {
4106
- await Xa(f, { signal: this._options.signal });
4107
- for (const t of this._options.hooks.beforeRetry)
4108
- 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({
4109
4356
  request: this.request,
4110
4357
  options: this._options,
4111
4358
  error: a,
@@ -4127,34 +4374,34 @@ class se {
4127
4374
  if (a instanceof Response)
4128
4375
  return a;
4129
4376
  }
4130
- 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);
4131
4378
  }
4132
4379
  /* istanbul ignore next */
4133
4380
  _stream(e, a) {
4134
- const f = Number(e.headers.get("content-length")) || 0;
4135
- let t = 0;
4136
- 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, {
4137
4384
  status: e.status,
4138
4385
  statusText: e.statusText,
4139
4386
  headers: e.headers
4140
4387
  })) : new globalThis.Response(new globalThis.ReadableStream({
4141
4388
  async start(o) {
4142
4389
  const d = e.body.getReader();
4143
- a && a({ percent: 0, transferredBytes: 0, totalBytes: f }, new Uint8Array());
4144
- async function b() {
4145
- const { done: h, value: g } = await d.read();
4146
- 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) {
4147
4394
  o.close();
4148
4395
  return;
4149
4396
  }
4150
4397
  if (a) {
4151
- t += g.byteLength;
4152
- const m = f === 0 ? 0 : t / f;
4153
- a({ percent: m, transferredBytes: t, totalBytes: f }, g);
4398
+ f += k.byteLength;
4399
+ const C = t === 0 ? 0 : f / t;
4400
+ a({ percent: C, transferredBytes: f, totalBytes: t }, k);
4154
4401
  }
4155
- o.enqueue(g), await b();
4402
+ o.enqueue(k), await n();
4156
4403
  }
4157
- await b();
4404
+ await n();
4158
4405
  }
4159
4406
  }), {
4160
4407
  status: e.status,
@@ -4164,12 +4411,12 @@ class se {
4164
4411
  }
4165
4412
  }
4166
4413
  /*! MIT License © Sindre Sorhus */
4167
- const je = (c) => {
4168
- const e = (a, f) => se.create(a, G(c, f));
4414
+ const Ae = (c) => {
4415
+ const e = (a, t) => he.create(a, ae(c, t));
4169
4416
  for (const a of tc)
4170
- e[a] = (f, t) => se.create(f, G(c, t, { method: a }));
4171
- return e.create = (a) => je(G(a)), e.extend = (a) => je(G(c, a)), e.stop = fc, e;
4172
- }, 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({
4173
4420
  hooks: {
4174
4421
  beforeRequest: [
4175
4422
  () => {
@@ -4177,18 +4424,18 @@ const je = (c) => {
4177
4424
  ]
4178
4425
  }
4179
4426
  });
4180
- async function c1(c, e) {
4181
- const { onmessage: a, onclose: f, ...t } = e, o = async (d, b) => {
4182
- const { value: h, done: g } = await b.read();
4183
- g ? (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));
4184
4431
  };
4185
- return t.body && typeof t.body == "object" && (t.body = JSON.stringify(t.body)), console.log("Fetching:", t), fetch(c, t).then((d) => {
4186
- 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();
4187
4434
  return new ReadableStream({
4188
- start(g) {
4435
+ start(k) {
4189
4436
  o(
4190
- g,
4191
- b
4437
+ k,
4438
+ n
4192
4439
  );
4193
4440
  }
4194
4441
  });
@@ -4198,125 +4445,39 @@ async function c1(c, e) {
4198
4445
  }).text()
4199
4446
  );
4200
4447
  }
4201
- async function a1(c, e) {
4448
+ async function m1(c, e) {
4202
4449
  const a = new FormData();
4203
- for (let t = 0; t < e.length; t++)
4204
- a.append("files", e[t]);
4205
- 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, {
4206
4453
  body: a
4207
4454
  });
4208
4455
  try {
4209
- return await f.json();
4210
- } catch (t) {
4456
+ return await t.json();
4457
+ } catch (f) {
4211
4458
  return {
4212
4459
  code: 1,
4213
4460
  url: "",
4214
- message: t.message
4461
+ message: f.message
4215
4462
  };
4216
4463
  }
4217
4464
  }
4218
- const Ve = {
4219
- error: {
4220
- variant: "danger",
4221
- icon: Ce
4222
- },
4223
- warning: {
4224
- variant: "warning",
4225
- icon: Ge
4226
- },
4227
- success: {
4228
- variant: "success",
4229
- icon: Xe
4230
- },
4231
- info: {
4232
- variant: "primary",
4233
- icon: Qe
4234
- }
4235
- };
4236
- function t1(c) {
4237
- const e = document.createElement("div");
4238
- return e.textContent = c, e.innerHTML;
4239
- }
4240
- function f1(c = "info", e, a = 1e8) {
4241
- const { variant: f, icon: t } = Ve[c] || Ve.info, o = Object.assign(document.createElement("sl-alert"), {
4242
- variant: f,
4243
- closable: !0,
4244
- duration: a,
4245
- innerHTML: `
4246
- <cb-status-icon slot="icon" status="${c}"></cb-status-icon>
4247
- ${t1(e)}
4248
- `
4249
- });
4250
- return document.body.append(o), o.toast();
4251
- }
4252
- async function o1(c, e) {
4253
- const a = c.getReader(), f = new TextDecoder("utf-8");
4254
- let t = !1;
4255
- for (; !t; ) {
4256
- const { value: o, done: d } = await a.read();
4257
- if (o) {
4258
- let b = f.decode(o);
4259
- const h = b.lastIndexOf("data:"), g = b.lastIndexOf(`
4260
- `);
4261
- if (h !== -1 && (b = b.slice(h + 6)), g !== -1 && (b = b.slice(0, g)), b = b.trim(), b === `
4262
- ` || b === "")
4263
- continue;
4264
- if (b === "[DONE]") {
4265
- t = !0;
4266
- continue;
4267
- }
4268
- try {
4269
- const m = JSON.parse(b);
4270
- e(null, m);
4271
- } catch (m) {
4272
- console.log("error", m), e(m, null);
4273
- }
4274
- }
4275
- t = d;
4276
- }
4277
- }
4278
- async function d1(c) {
4279
- var t;
4280
- if (!c.apiKey)
4281
- throw new Error("apiKey is required");
4282
- const e = c.options ?? {};
4283
- e.model || (e.model = "gpt-3.5-turbo");
4284
- const a = await dc.post(c.url, {
4285
- json: {
4286
- messages: c.messages,
4287
- ...c.options ?? {}
4288
- },
4289
- headers: {
4290
- "Content-Type": "application/json",
4291
- Authorization: `Bearer ${c.apiKey}`
4292
- },
4293
- timeout: 1e3 * 60 * 10,
4294
- signal: c.signal
4295
- }), f = a.body;
4296
- if (!f)
4297
- throw new Error("No data");
4298
- if ((t = c.options) != null && t.stream) {
4299
- await o1(f, c.onMessage);
4300
- return;
4301
- }
4302
- return a.json();
4303
- }
4304
- var b1 = Object.defineProperty, r1 = Object.getOwnPropertyDescriptor, v = (c, e, a, f) => {
4305
- for (var t = f > 1 ? void 0 : f ? r1(e, a) : e, o = c.length - 1, d; o >= 0; o--)
4306
- (d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
4307
- return f && t && b1(e, a, t), t;
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;
4308
4469
  };
4309
- const ce = pe.noConflict();
4310
- ce.setLevel("info");
4311
- let u = class extends C {
4470
+ const de = me.noConflict();
4471
+ de.setLevel("info");
4472
+ let u = class extends S {
4312
4473
  constructor() {
4313
- super(...arguments), this.store = new Fe(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">
4314
4475
  <path
4315
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"
4316
4477
  fill="#E24D42"
4317
4478
  ></path>
4318
4479
  </svg>
4319
- `, 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;
4320
4481
  }
4321
4482
  //HTMLElement;
4322
4483
  /**
@@ -4332,7 +4493,7 @@ let u = class extends C {
4332
4493
  isThinking: !0,
4333
4494
  data: {}
4334
4495
  };
4335
- return n.addMessage(c), c;
4496
+ return s.addMessage(c), c;
4336
4497
  }
4337
4498
  addTestMessage() {
4338
4499
  const c = {
@@ -4343,209 +4504,232 @@ let u = class extends C {
4343
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."
4344
4505
  }
4345
4506
  };
4346
- return n.addMessage(c), c;
4507
+ return s.addMessage(c), c;
4347
4508
  }
4348
4509
  render() {
4349
- return s`
4350
- <div class="cb-wrapper" style="${n.open ? "display:flex" : "display:none"}">
4351
- <cb-header title="${this.name}"></cb-header>
4352
- <cb-message-list .messages=${n.messages} .actions=${n.actions}></cb-message-list>
4353
- <cb-user-input ?loading=${this.loading} ?disabled=${this.loading || this.showAuthAlert} ?enable-file-upload=${this.enableFileUpload}></cb-user-input>
4510
+ return s.disabled ? (de.error("Bot is disabled"), null) : r`
4511
+ <div class="cb-wrapper" style="${s.open ? "display:flex" : "display:none"}">
4512
+ <cb-header title="${this.name}" exportparts="header"></cb-header>
4513
+ <cb-message-list .messages=${s.messages} .actions=${s.actions} .form=${s.form} exportparts="form"></cb-message-list>
4514
+ ${this.renderUserInput()}
4354
4515
  </div>
4355
- <cb-anchor ?open=${n.open}></cb-anchor>
4516
+ <cb-anchor ?open=${s.open}></cb-anchor>
4356
4517
  `;
4357
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
+ }
4358
4522
  connectedCallback() {
4359
- super.connectedCallback(), ce.info("connectedCallback"), addEventListener("setting:show", () => {
4523
+ super.connectedCallback(), de.info("connectedCallback"), addEventListener("setting:show", () => {
4360
4524
  this.showSetting = !0;
4361
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", () => {
4362
4526
  this.showSetting = !1;
4363
4527
  }), addEventListener("chatbot:toggle", (c) => {
4364
4528
  const e = c.detail;
4365
- n.open = e.open, n.engage = !1;
4529
+ s.open = e.open, s.engage = !1;
4366
4530
  }), addEventListener("message:clear", () => {
4367
- n.clearMessages();
4531
+ s.clearMessages();
4368
4532
  }), addEventListener("message:send:file", this._sendFileHandler.bind(this)), addEventListener("setting:show", () => {
4369
4533
  this.showSetting = !0;
4370
- });
4534
+ }), addEventListener("form:submit", this._formSubmitHandler.bind(this));
4371
4535
  }
4372
4536
  // This is called when component is loaded, with all the settings (props) values
4373
4537
  // Use to initialize
4374
4538
  // This is also called when state changes - ??? - i.e. when message added to the array
4375
4539
  updated(c) {
4376
- super.updated(c), ce.info("updated,_changedProperties:", c), c.size > 0 && (ce.info("updated,_changedProperties:", c), this._initSetting()), setTimeout(() => {
4540
+ super.updated(c), c.size > 0 && (de.info("updated,_changedProperties:", c), this._initSetting()), setTimeout(() => {
4377
4541
  this._scrollToBottom();
4378
4542
  }, 0);
4379
4543
  }
4380
4544
  // initialize setting
4381
4545
  _initSetting() {
4382
- const c = n.setting;
4383
- 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);
4384
4548
  }
4385
4549
  setLoading(c) {
4386
4550
  this.loading = c;
4387
4551
  }
4388
4552
  clearConversation() {
4389
- n.clearConversation();
4553
+ s.clearConversation();
4390
4554
  }
4391
4555
  // check auth
4392
4556
  _checkAuth() {
4393
4557
  }
4394
- // TODO Remove
4395
- async _sendToOpenai(c, e) {
4396
- let a = "";
4397
- const f = n.setting.openai.apiBase || "https://api.openai.com/v1", t = await d1({
4398
- url: `${f}/chat/completions`,
4399
- apiKey: n.setting.openai.apiKey,
4400
- 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,
4401
4566
  options: {
4402
- stream: n.setting.stream,
4403
- model: n.setting.openai.model
4567
+ stream: appState.setting.stream,
4568
+ model: appState.setting.openai.model,
4404
4569
  // temperature: 0.9,
4405
4570
  },
4406
- onMessage: (o, d) => {
4407
- var b;
4408
- if (o) {
4409
- console.error(o);
4571
+ onMessage: (err, data) => {
4572
+ if (err) {
4573
+ console.error(err);
4410
4574
  return;
4411
4575
  }
4412
- d && ((b = d.choices[0].delta) != null && b.content) && requestIdleCallback(() => {
4413
- a += d.choices[0].delta.content, n.updateMessage(c, a);
4414
- });
4415
- }
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
+ },
4416
4585
  });
4417
- !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
+ }
4418
4590
  }
4419
- // TODO Remove
4420
- async _sendHandler(c) {
4421
- this.setLoading(!0);
4422
- const e = {
4423
- author: "assistant",
4424
- type: "text",
4425
- isThinking: !0,
4426
- data: {}
4427
- };
4428
- if (n.addMessage(e), this.customRequest)
4429
- await this.emit("chatbot:send", {
4430
- detail: {
4431
- newMessage: e,
4432
- messages: c
4433
- },
4434
- bubbles: !0,
4435
- composed: !0
4436
- });
4437
- else
4438
- try {
4439
- await this._sendToOpenai(e, c);
4440
- } catch (a) {
4441
- 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
+ }
4442
4622
  }
4443
- this.setLoading(!1);
4444
- }
4623
+
4624
+ this.setLoading(false);
4625
+ }
4626
+ */
4445
4627
  _addMessageHandler(c) {
4446
4628
  const e = c.detail;
4447
- n.sendMessage(e);
4629
+ s.sendMessage(e);
4448
4630
  }
4449
4631
  _deleteMessageHandler(c) {
4450
4632
  const e = c.detail;
4451
- n.removeMessage(e.id);
4633
+ s.removeMessage(e.id);
4452
4634
  }
4453
4635
  async _sendFileHandler(c) {
4454
- const e = c.detail, f = {
4636
+ const e = c.detail, t = {
4455
4637
  author: "user",
4456
4638
  type: "file",
4457
4639
  isUploading: !0,
4458
4640
  data: {
4459
- files: e.files.map((t, o) => ({
4460
- id: `${t.name}-${o}`,
4461
- name: t.name,
4462
- size: t.size,
4463
- 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,
4464
4646
  url: ""
4465
4647
  }))
4466
4648
  }
4467
4649
  };
4468
- if (n.addMessage(f), this.uploadFileUrl) {
4469
- const t = await a1(this.uploadFileUrl, e.files);
4470
- t.code === 0 && t.data && (f.isUploading = !1, f.data = {
4471
- files: t.data
4472
- }, 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));
4473
4655
  }
4474
4656
  this.emit("chatbot:file:send", {
4475
4657
  detail: {
4476
4658
  files: e.files,
4477
- message: f
4659
+ message: t
4478
4660
  }
4479
4661
  });
4480
4662
  }
4481
4663
  // setting confirm handler
4482
4664
  _settingConfirmHandler(c) {
4483
4665
  const e = c.detail;
4484
- n.setSetting(e.setting), this.showSetting = !1, this._checkAuth();
4666
+ s.setSetting(e.setting), this.showSetting = !1, this._checkAuth();
4667
+ }
4668
+ async _formSubmitHandler(c) {
4485
4669
  }
4486
4670
  // scroll to bottom
4487
4671
  _scrollToBottom(c = !1) {
4488
4672
  var e;
4489
- console.log("Scrolling to bottom ..."), (e = this._messageList) == null || e.scrollToBottom();
4673
+ (e = this._messageList) == null || e.scrollToBottom();
4490
4674
  }
4491
4675
  };
4492
- u.styles = kc;
4676
+ u.styles = xc;
4493
4677
  v([
4494
- r({ type: Boolean, attribute: "display-license" })
4678
+ b({ type: Boolean, attribute: "display-license" })
4495
4679
  ], u.prototype, "displayLicense", 2);
4496
4680
  v([
4497
- r({ type: String, attribute: "name" })
4681
+ b({ type: String, attribute: "name" })
4498
4682
  ], u.prototype, "name", 2);
4499
4683
  v([
4500
- r({ type: String, attribute: "org-id" })
4684
+ b({ type: String, attribute: "org-id" })
4501
4685
  ], u.prototype, "orgId", 2);
4502
4686
  v([
4503
- r({ type: String, attribute: "bot-id" })
4687
+ b({ type: String, attribute: "bot-id" })
4504
4688
  ], u.prototype, "botId", 2);
4505
4689
  v([
4506
- r({ type: String, attribute: "url" })
4690
+ b({ type: String, attribute: "url" })
4507
4691
  ], u.prototype, "url", 2);
4508
4692
  v([
4509
- r({ type: String, attribute: "logo-svg" })
4693
+ b({ type: String, attribute: "logo-svg" })
4510
4694
  ], u.prototype, "logoSvg", 2);
4511
4695
  v([
4512
- r({ type: String, attribute: "bot-icon-svg" })
4696
+ b({ type: String, attribute: "bot-icon-svg" })
4513
4697
  ], u.prototype, "botIconSvg", 2);
4514
4698
  v([
4515
- r({ type: String, attribute: "user-icon-svg" })
4699
+ b({ type: String, attribute: "user-icon-svg" })
4516
4700
  ], u.prototype, "userIconSvg", 2);
4517
4701
  v([
4518
- r({ type: String, attribute: "system-icon-svg" })
4702
+ b({ type: String, attribute: "system-icon-svg" })
4519
4703
  ], u.prototype, "systemIconSvg", 2);
4520
4704
  v([
4521
- r({ type: Boolean, attribute: "stream" })
4705
+ b({ type: Boolean, attribute: "stream" })
4522
4706
  ], u.prototype, "stream", 2);
4523
4707
  v([
4524
- r({ type: Boolean, attribute: "custom-request" })
4708
+ b({ type: Boolean, attribute: "custom-request" })
4525
4709
  ], u.prototype, "customRequest", 2);
4526
4710
  v([
4527
- r({ type: Boolean, attribute: "enable-file-upload" })
4711
+ b({ type: Boolean, attribute: "enable-file-upload" })
4528
4712
  ], u.prototype, "enableFileUpload", 2);
4529
4713
  v([
4530
- r({ type: String, attribute: "upload-file-url" })
4714
+ b({ type: String, attribute: "upload-file-url" })
4531
4715
  ], u.prototype, "uploadFileUrl", 2);
4532
4716
  v([
4533
- r({ type: Boolean, attribute: "open" })
4717
+ b({ type: Boolean, attribute: "open" })
4534
4718
  ], u.prototype, "open", 2);
4535
4719
  v([
4536
- r({ type: Boolean })
4720
+ b({ type: Boolean })
4537
4721
  ], u.prototype, "loading", 2);
4538
4722
  v([
4539
- r({ type: Boolean })
4723
+ b({ type: Boolean })
4540
4724
  ], u.prototype, "showSetting", 2);
4541
4725
  v([
4542
- r({ type: Boolean })
4726
+ b({ type: Boolean })
4543
4727
  ], u.prototype, "showAuthAlert", 2);
4544
4728
  v([
4545
- le("cb-message-list")
4729
+ ee("cb-message-list")
4546
4730
  ], u.prototype, "_messageList", 2);
4547
4731
  u = v([
4548
- k("enegelai-bot")
4732
+ _("enegelai-bot")
4549
4733
  ], u);
4550
4734
  export {
4551
4735
  u as default