@enegelai/bot-widget 1.10.1 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1,11 +1,11 @@
1
- var za = Object.defineProperty;
2
- var ja = (c, e, a) => e in c ? za(c, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : c[e] = a;
3
- var ge = (c, e, a) => ja(c, typeof e != "symbol" ? e + "" : e, a);
1
+ var ja = Object.defineProperty;
2
+ var Ha = (c, e, a) => e in c ? ja(c, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : c[e] = a;
3
+ var ge = (c, e, a) => Ha(c, typeof e != "symbol" ? e + "" : e, a);
4
4
  import { css as X, LitElement as ut, html as g, svg as be } from "lit";
5
- import { property as v, customElement as J, queryAll as Kt, query as xe, eventOptions as Mt } from "lit/decorators.js";
6
- import { unsafeHTML as Y } from "lit-html/directives/unsafe-html.js";
7
- import { when as ce } from "lit/directives/when.js";
8
- import { registerIconLibrary as Ha } from "@shoelace-style/shoelace";
5
+ import { property as v, customElement as J, queryAll as Qt, query as ke, eventOptions as Mt } from "lit/decorators.js";
6
+ import { unsafeHTML as W } from "lit-html/directives/unsafe-html.js";
7
+ import { when as ee } from "lit/directives/when.js";
8
+ import { registerIconLibrary as Ba } from "@shoelace-style/shoelace";
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";
@@ -24,14 +24,14 @@ import "@shoelace-style/shoelace/dist/components/spinner/spinner.js";
24
24
  import "@shoelace-style/shoelace/dist/components/alert/alert.js";
25
25
  import "@shoelace-style/shoelace/dist/components/progress-bar/progress-bar.js";
26
26
  import "@shoelace-style/shoelace/dist/components/badge/badge.js";
27
- import { repeat as Ye } from "lit/directives/repeat.js";
27
+ import { repeat as ze } from "lit/directives/repeat.js";
28
28
  import { until as Dt } from "lit-html/directives/until.js";
29
- import Ba from "markdown-it";
30
- import Ra from "markdown-it-link-attributes";
29
+ import Ra from "markdown-it";
30
+ import Va from "markdown-it-link-attributes";
31
31
  import vt from "highlight.js";
32
32
  import "@shoelace-style/shoelace/dist/components/popup/popup.js";
33
33
  import "@shoelace-style/shoelace/dist/components/rating/rating.js";
34
- function Qt(c) {
34
+ function ea(c) {
35
35
  return typeof c == "function" ? c() : c;
36
36
  }
37
37
  const ht = class ht extends Event {
@@ -39,15 +39,15 @@ const ht = class ht extends Event {
39
39
  * @param {string} key of the state that has changed
40
40
  * @param {unknown} value for the changed key
41
41
  */
42
- constructor(e, a, s) {
42
+ constructor(e, a, n) {
43
43
  super(ht.eventName, {
44
44
  cancelable: !1
45
- }), this.key = e, this.value = a, this.state = s;
45
+ }), this.key = e, this.value = a, this.state = n;
46
46
  }
47
47
  };
48
48
  ht.eventName = "lit-state-changed";
49
- let Pe = ht;
50
- const Va = (c, e) => e !== c && (e === e || c === c), Lt = class Lt extends EventTarget {
49
+ let He = ht;
50
+ const Da = (c, e) => e !== c && (e === e || c === c), Lt = class Lt extends EventTarget {
51
51
  static initPropertyMap() {
52
52
  this.propertyMap || (this.propertyMap = /* @__PURE__ */ new Map());
53
53
  }
@@ -60,8 +60,8 @@ const Va = (c, e) => e !== c && (e === e || c === c), Lt = class Lt extends Even
60
60
  constructor() {
61
61
  super(), this.hookMap = /* @__PURE__ */ new Map(), this.constructor.finalize(), this.propertyMap && [...this.propertyMap].forEach(([e, a]) => {
62
62
  if (a.initialValue !== void 0) {
63
- const s = Qt(a.initialValue);
64
- this[e] = s, a.value = s;
63
+ const n = ea(a.initialValue);
64
+ this[e] = n, a.value = n;
65
65
  }
66
66
  });
67
67
  }
@@ -76,18 +76,18 @@ const Va = (c, e) => e !== c && (e === e || c === c), Lt = class Lt extends Even
76
76
  }
77
77
  static createProperty(e, a) {
78
78
  this.finalize();
79
- const s = typeof e == "symbol" ? Symbol() : `__${e}`, n = this.getPropertyDescriptor(String(e), s, a);
80
- Object.defineProperty(this.prototype, e, n);
79
+ const n = typeof e == "symbol" ? Symbol() : `__${e}`, s = this.getPropertyDescriptor(String(e), n, a);
80
+ Object.defineProperty(this.prototype, e, s);
81
81
  }
82
- static getPropertyDescriptor(e, a, s) {
83
- const n = (s == null ? void 0 : s.hasChanged) || Va;
82
+ static getPropertyDescriptor(e, a, n) {
83
+ const s = (n == null ? void 0 : n.hasChanged) || Da;
84
84
  return {
85
85
  get() {
86
86
  return this[a];
87
87
  },
88
- set(d) {
88
+ set(r) {
89
89
  const f = this[e];
90
- this[a] = d, n(d, f) === !0 && this.dispatchStateEvent(e, d, this);
90
+ this[a] = r, s(r, f) === !0 && this.dispatchStateEvent(e, r, this);
91
91
  },
92
92
  configurable: !0,
93
93
  enumerable: !0
@@ -110,45 +110,45 @@ const Va = (c, e) => e !== c && (e === e || c === c), Lt = class Lt extends Even
110
110
  * @param nameOrNames
111
111
  * @returns a unsubscribe function.
112
112
  */
113
- subscribe(e, a, s) {
113
+ subscribe(e, a, n) {
114
114
  a && !Array.isArray(a) && (a = [a]);
115
- const n = (d) => {
116
- (!a || a.includes(d.key)) && e(d.key, d.value, this);
115
+ const s = (r) => {
116
+ (!a || a.includes(r.key)) && e(r.key, r.value, this);
117
117
  };
118
- return this.addEventListener(Pe.eventName, n, s), () => this.removeEventListener(Pe.eventName, n);
118
+ return this.addEventListener(He.eventName, s, n), () => this.removeEventListener(He.eventName, s);
119
119
  }
120
- dispatchStateEvent(e, a, s) {
121
- this.dispatchEvent(new Pe(e, a, s));
120
+ dispatchStateEvent(e, a, n) {
121
+ this.dispatchEvent(new He(e, a, n));
122
122
  }
123
123
  };
124
124
  Lt.finalized = !1;
125
125
  let kt = Lt;
126
126
  class pt {
127
- constructor(e, a, s) {
128
- this.host = e, this.state = a, this.callback = s || (() => this.host.requestUpdate()), this.host.addController(this);
127
+ constructor(e, a, n) {
128
+ this.host = e, this.state = a, this.callback = n || (() => this.host.requestUpdate()), this.host.addController(this);
129
129
  }
130
130
  hostConnected() {
131
- this.state.addEventListener(Pe.eventName, this.callback), this.callback();
131
+ this.state.addEventListener(He.eventName, this.callback), this.callback();
132
132
  }
133
133
  hostDisconnected() {
134
- this.state.removeEventListener(Pe.eventName, this.callback);
134
+ this.state.removeEventListener(He.eventName, this.callback);
135
135
  }
136
136
  }
137
137
  function q(c) {
138
138
  return (e, a) => {
139
139
  if (Object.getOwnPropertyDescriptor(e, a))
140
140
  throw new Error("@property must be called before all state decorators");
141
- const s = e.constructor;
142
- s.initPropertyMap();
143
- const n = e.hasOwnProperty(a);
144
- return s.propertyMap.set(a, {
141
+ const n = e.constructor;
142
+ n.initPropertyMap();
143
+ const s = e.hasOwnProperty(a);
144
+ return n.propertyMap.set(a, {
145
145
  ...c,
146
146
  initialValue: c == null ? void 0 : c.value,
147
147
  resetValue: c == null ? void 0 : c.value
148
- }), s.createProperty(a, c), n ? Object.getOwnPropertyDescriptor(e, a) : void 0;
148
+ }), n.createProperty(a, c), s ? Object.getOwnPropertyDescriptor(e, a) : void 0;
149
149
  };
150
150
  }
151
- function Da(c, e) {
151
+ function Fa(c, e) {
152
152
  if (c !== null && (e === Boolean || e === Number || e === Array || e === Object))
153
153
  try {
154
154
  c = JSON.parse(c);
@@ -158,46 +158,46 @@ function Da(c, e) {
158
158
  return c;
159
159
  }
160
160
  new URL(location.href);
161
- const Fa = {
161
+ const Na = {
162
162
  prefix: "_ls"
163
163
  };
164
- function de(c) {
165
- return c = { ...Fa, ...c }, (e, a) => {
166
- const s = Object.getOwnPropertyDescriptor(e, a);
167
- if (!s)
164
+ function oe(c) {
165
+ return c = { ...Na, ...c }, (e, a) => {
166
+ const n = Object.getOwnPropertyDescriptor(e, a);
167
+ if (!n)
168
168
  throw new Error("@local-storage decorator need to be called after @property");
169
- const n = `${(c == null ? void 0 : c.prefix) || ""}_${(c == null ? void 0 : c.key) || String(a)}`, d = e.constructor, f = d.propertyMap.get(a), x = f == null ? void 0 : f.type;
169
+ const s = `${(c == null ? void 0 : c.prefix) || ""}_${(c == null ? void 0 : c.key) || String(a)}`, r = e.constructor, f = r.propertyMap.get(a), w = f == null ? void 0 : f.type;
170
170
  if (f) {
171
171
  const F = f.initialValue;
172
- f.initialValue = () => Da(localStorage.getItem(n), x) ?? Qt(F), d.propertyMap.set(a, { ...f, ...c });
172
+ f.initialValue = () => Fa(localStorage.getItem(s), w) ?? ea(F), r.propertyMap.set(a, { ...f, ...c });
173
173
  }
174
- const S = s == null ? void 0 : s.set, K = {
175
- ...s,
174
+ const S = n == null ? void 0 : n.set, K = {
175
+ ...n,
176
176
  set: function(F) {
177
- F !== void 0 && localStorage.setItem(n, x === Object || x === Array ? JSON.stringify(F) : F), S && S.call(this, F);
177
+ F !== void 0 && localStorage.setItem(s, w === Object || w === Array ? JSON.stringify(F) : F), S && S.call(this, F);
178
178
  }
179
179
  };
180
- Object.defineProperty(d.prototype, a, K);
180
+ Object.defineProperty(r.prototype, a, K);
181
181
  };
182
182
  }
183
- var ea = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
184
- function ta(c) {
183
+ var ta = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
184
+ function aa(c) {
185
185
  return c && c.__esModule && Object.prototype.hasOwnProperty.call(c, "default") ? c.default : c;
186
186
  }
187
- var aa = { exports: {} };
187
+ var ca = { exports: {} };
188
188
  (function(c) {
189
189
  (function(e, a) {
190
190
  c.exports ? c.exports = a() : e.log = a();
191
- })(ea, function() {
191
+ })(ta, function() {
192
192
  var e = function() {
193
- }, a = "undefined", s = typeof window !== a && typeof window.navigator !== a && /Trident\/|MSIE /.test(window.navigator.userAgent), n = [
193
+ }, a = "undefined", n = typeof window !== a && typeof window.navigator !== a && /Trident\/|MSIE /.test(window.navigator.userAgent), s = [
194
194
  "trace",
195
195
  "debug",
196
196
  "info",
197
197
  "warn",
198
198
  "error"
199
- ], d = {}, f = null;
200
- function x($, V) {
199
+ ], r = {}, f = null;
200
+ function w($, V) {
201
201
  var C = $[V];
202
202
  if (typeof C.bind == "function")
203
203
  return C.bind($);
@@ -213,11 +213,11 @@ var aa = { exports: {} };
213
213
  console.log && (console.log.apply ? console.log.apply(console, arguments) : Function.prototype.apply.apply(console.log, [console, arguments])), console.trace && console.trace();
214
214
  }
215
215
  function _($) {
216
- return $ === "debug" && ($ = "log"), typeof console === a ? !1 : $ === "trace" && s ? S : console[$] !== void 0 ? x(console, $) : console.log !== void 0 ? x(console, "log") : e;
216
+ return $ === "debug" && ($ = "log"), typeof console === a ? !1 : $ === "trace" && n ? S : console[$] !== void 0 ? w(console, $) : console.log !== void 0 ? w(console, "log") : e;
217
217
  }
218
218
  function K() {
219
- for (var $ = this.getLevel(), V = 0; V < n.length; V++) {
220
- var C = n[V];
219
+ for (var $ = this.getLevel(), V = 0; V < s.length; V++) {
220
+ var C = s[V];
221
221
  this[C] = V < $ ? e : this.methodFactory(C, $, this.name);
222
222
  }
223
223
  if (this.log = this.debug, typeof console === a && $ < this.levels.SILENT)
@@ -232,10 +232,10 @@ var aa = { exports: {} };
232
232
  return _($) || F.apply(this, arguments);
233
233
  }
234
234
  function N($, V) {
235
- var C = this, Ee, Ae, ne, se = "loglevel";
235
+ var C = this, Ie, Le, ne, se = "loglevel";
236
236
  typeof $ == "string" ? se += ":" + $ : typeof $ == "symbol" && (se = void 0);
237
237
  function mt(z) {
238
- var R = (n[z] || "silent").toUpperCase();
238
+ var R = (s[z] || "silent").toUpperCase();
239
239
  if (!(typeof window === a || !se)) {
240
240
  try {
241
241
  window.localStorage[se] = R;
@@ -248,7 +248,7 @@ var aa = { exports: {} };
248
248
  }
249
249
  }
250
250
  }
251
- function ze() {
251
+ function Be() {
252
252
  var z;
253
253
  if (!(typeof window === a || !se)) {
254
254
  try {
@@ -257,9 +257,9 @@ var aa = { exports: {} };
257
257
  }
258
258
  if (typeof z === a)
259
259
  try {
260
- var R = window.document.cookie, Ie = encodeURIComponent(se), We = R.indexOf(Ie + "=");
261
- We !== -1 && (z = /^([^;]+)/.exec(
262
- R.slice(We + Ie.length + 1)
260
+ var R = window.document.cookie, qe = encodeURIComponent(se), Ye = R.indexOf(qe + "=");
261
+ Ye !== -1 && (z = /^([^;]+)/.exec(
262
+ R.slice(Ye + qe.length + 1)
263
263
  )[1]);
264
264
  } catch {
265
265
  }
@@ -292,11 +292,11 @@ var aa = { exports: {} };
292
292
  ERROR: 4,
293
293
  SILENT: 5
294
294
  }, C.methodFactory = V || T, C.getLevel = function() {
295
- return ne ?? Ae ?? Ee;
295
+ return ne ?? Le ?? Ie;
296
296
  }, C.setLevel = function(z, R) {
297
297
  return ne = ve(z), R !== !1 && mt(ne), K.call(C);
298
298
  }, C.setDefaultLevel = function(z) {
299
- Ae = ve(z), ze() || C.setLevel(z, !1);
299
+ Le = ve(z), Be() || C.setLevel(z, !1);
300
300
  }, C.resetLevel = function() {
301
301
  ne = null, Qe(), K.call(C);
302
302
  }, C.enableAll = function(z) {
@@ -304,20 +304,20 @@ var aa = { exports: {} };
304
304
  }, C.disableAll = function(z) {
305
305
  C.setLevel(C.levels.SILENT, z);
306
306
  }, C.rebuild = function() {
307
- if (f !== C && (Ee = ve(f.getLevel())), K.call(C), f === C)
308
- for (var z in d)
309
- d[z].rebuild();
310
- }, Ee = ve(
307
+ if (f !== C && (Ie = ve(f.getLevel())), K.call(C), f === C)
308
+ for (var z in r)
309
+ r[z].rebuild();
310
+ }, Ie = ve(
311
311
  f ? f.getLevel() : "WARN"
312
312
  );
313
- var P = ze();
313
+ var P = Be();
314
314
  P != null && (ne = ve(P)), K.call(C);
315
315
  }
316
316
  f = new N(), f.getLogger = function(V) {
317
317
  if (typeof V != "symbol" && typeof V != "string" || V === "")
318
318
  throw new TypeError("You must supply a name when creating a logger.");
319
- var C = d[V];
320
- return C || (C = d[V] = new N(
319
+ var C = r[V];
320
+ return C || (C = r[V] = new N(
321
321
  V,
322
322
  f.methodFactory
323
323
  )), C;
@@ -326,12 +326,12 @@ var aa = { exports: {} };
326
326
  return f.noConflict = function() {
327
327
  return typeof window !== a && window.log === f && (window.log = Q), f;
328
328
  }, f.getLoggers = function() {
329
- return d;
329
+ return r;
330
330
  }, f.default = f, f;
331
331
  });
332
- })(aa);
333
- var Na = aa.exports;
334
- const Ke = /* @__PURE__ */ ta(Na), Ua = X`
332
+ })(ca);
333
+ var Ua = ca.exports;
334
+ const Ke = /* @__PURE__ */ aa(Ua), Wa = X`
335
335
  :host {
336
336
  font-size: 16px;
337
337
  }
@@ -469,7 +469,7 @@ const Ke = /* @__PURE__ */ ta(Na), Ua = X`
469
469
  .text-button:hover {
470
470
  text-decoration: underline;
471
471
  }
472
- `, ca = X`
472
+ `, ia = X`
473
473
  ${me}
474
474
 
475
475
  :host {
@@ -494,20 +494,20 @@ const Ke = /* @__PURE__ */ ta(Na), Ua = X`
494
494
  color: white;
495
495
  }
496
496
  `;
497
- var Wa = Object.defineProperty, Ya = Object.getOwnPropertyDescriptor, Tt = (c, e, a, s) => {
498
- for (var n = s > 1 ? void 0 : s ? Ya(e, a) : e, d = c.length - 1, f; d >= 0; d--)
499
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
500
- return s && n && Wa(e, a, n), n;
497
+ var Ya = Object.defineProperty, Xa = Object.getOwnPropertyDescriptor, Tt = (c, e, a, n) => {
498
+ for (var s = n > 1 ? void 0 : n ? Xa(e, a) : e, r = c.length - 1, f; r >= 0; r--)
499
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
500
+ return n && s && Ya(e, a, s), s;
501
501
  };
502
502
  let Ge = class extends ut {
503
503
  constructor() {
504
504
  super(...arguments), this.color = "primary", this.svg = "";
505
505
  }
506
506
  render() {
507
- return g`<span class="cb-icon" part="base">${Y(this.svg)}</span>`;
507
+ return g`<span class="cb-icon" part="base">${W(this.svg)}</span>`;
508
508
  }
509
509
  };
510
- Ge.styles = ca;
510
+ Ge.styles = ia;
511
511
  Tt([
512
512
  v({ type: String })
513
513
  ], Ge.prototype, "color", 2);
@@ -517,47 +517,47 @@ Tt([
517
517
  Ge = Tt([
518
518
  J("cb-icon")
519
519
  ], Ge);
520
- let Xa = (c) => crypto.getRandomValues(new Uint8Array(c)), Ga = (c, e, a) => {
521
- let s = (2 << Math.log2(c.length - 1)) - 1, n = -~(1.6 * s * e / c.length);
522
- return (d = e) => {
520
+ let Ga = (c) => crypto.getRandomValues(new Uint8Array(c)), Za = (c, e, a) => {
521
+ let n = (2 << Math.log2(c.length - 1)) - 1, s = -~(1.6 * n * e / c.length);
522
+ return (r = e) => {
523
523
  let f = "";
524
524
  for (; ; ) {
525
- let x = a(n), S = n | 0;
525
+ let w = a(s), S = s | 0;
526
526
  for (; S--; )
527
- if (f += c[x[S] & s] || "", f.length >= d) return f;
527
+ if (f += c[w[S] & n] || "", f.length >= r) return f;
528
528
  }
529
529
  };
530
- }, Za = (c, e = 21) => Ga(c, e | 0, Xa);
531
- const Ja = Za("1234567890abcdefghijklmnopqrstuvwxyz", 10);
532
- function Ve(c = 10) {
533
- return Ja(c);
530
+ }, Ja = (c, e = 21) => Za(c, e | 0, Ga);
531
+ const Ka = Ja("1234567890abcdefghijklmnopqrstuvwxyz", 10);
532
+ function xe(c = 10) {
533
+ return Ka(c);
534
534
  }
535
- function Ka(c) {
535
+ function Qa(c) {
536
536
  return new Promise((e, a) => {
537
537
  try {
538
538
  navigator.clipboard.writeText(c).then(() => {
539
539
  e(c);
540
540
  });
541
- } catch (s) {
542
- a(s);
541
+ } catch (n) {
542
+ a(n);
543
543
  }
544
544
  });
545
545
  }
546
- function Qa(c = !0) {
546
+ function ec(c = !0) {
547
547
  return new Promise((e) => {
548
548
  const a = document.createElement("input");
549
549
  a.type = "file", c && (a.multiple = !0), a.style.display = "none", a.addEventListener("change", () => {
550
- const s = Array.prototype.slice.call(a.files);
551
- e(s);
550
+ const n = Array.prototype.slice.call(a.files);
551
+ e(n);
552
552
  }), a.click();
553
553
  });
554
554
  }
555
555
  const Z = Ke.noConflict();
556
556
  Z.setLevel("info");
557
557
  const Ft = 3e4;
558
- class ec {
558
+ class tc {
559
559
  constructor(e = {}) {
560
- 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.connecting = !1, this.suspendDetected = !1, this.onMessage = (e == null ? void 0 : e.onMessage) || null, this.onConnecting = (e == null ? void 0 : e.onConnecting) || null, this.queue = [], this.pause = (a) => new Promise((s) => setTimeout(s, a)), this.lastTickTs = 0, this.lastAckTs = 0, this.tickInterval = null, Z.info(`WSC: Created, url: ${this.url}`);
560
+ 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.connecting = !1, this.suspendDetected = !1, this.onMessage = (e == null ? void 0 : e.onMessage) || null, this.onConnecting = (e == null ? void 0 : e.onConnecting) || null, this.queue = [], this.pause = (a) => new Promise((n) => setTimeout(n, a)), this.lastTickTs = 0, this.lastAckTs = 0, this.tickInterval = null, Z.info(`WSC: Created, url: ${this.url}`);
561
561
  }
562
562
  connect(e = {}) {
563
563
  if (this._ws)
@@ -567,33 +567,33 @@ class ec {
567
567
  this.setConnecting(!0);
568
568
  const a = this.url;
569
569
  Z.info(`WSC: ${Date.now()}: Connecting to ${a} ...`), this._ws = new WebSocket(a);
570
- let s = setTimeout(() => {
570
+ let n = setTimeout(() => {
571
571
  Z.error(`WSC: ${Date.now()}: connected message not received in time - closing ...`), this._ws.close(), this._ws = null, this.connected = !1;
572
572
  }, 3e4);
573
573
  this._ws.onopen = () => {
574
574
  Z.info(`WSC: ${Date.now()}: Connection to ${a} opened`);
575
- }, this._ws.onmessage = (n) => {
576
- let d = (n == null ? void 0 : n.data) || null;
577
- if (!d)
575
+ }, this._ws.onmessage = (s) => {
576
+ let r = (s == null ? void 0 : s.data) || null;
577
+ if (!r)
578
578
  return;
579
579
  let f = null;
580
580
  try {
581
- f = JSON.parse(d);
581
+ f = JSON.parse(r);
582
582
  } catch {
583
- Z.error(`WSC: ${Date.now()}: Failed to parse message: ${d}`);
583
+ Z.error(`WSC: ${Date.now()}: Failed to parse message: ${r}`);
584
584
  return;
585
585
  }
586
586
  if ((f == null ? void 0 : f.type) === "connected")
587
- Z.info(`WSC: ${Date.now()}: Got connected message`, f), clearTimeout(s), this.connected = !0, this.suspendDetected = !1, this.lastTickTs = Date.now(), this.setConnecting(!1), this.sendClientInfoMessage(), this.sendQueuedMessages();
587
+ Z.info(`WSC: ${Date.now()}: Got connected message`, f), clearTimeout(n), this.connected = !0, this.suspendDetected = !1, this.lastTickTs = Date.now(), this.setConnecting(!1), this.sendClientInfoMessage(), this.sendQueuedMessages();
588
588
  else if ((f == null ? void 0 : f.type) === "ack") {
589
- const x = Date.now();
590
- this.lastAckTs = x;
589
+ const w = Date.now();
590
+ this.lastAckTs = w;
591
591
  }
592
592
  this.handleWscMessage(f);
593
- }, this._ws.onerror = (n) => {
594
- Z.error(`WSC: ${Date.now()}: Socket error`), clearTimeout(s), this.connected = !1, this._ws = null, this.setConnecting(!1);
595
- }, this._ws.onclose = (n) => {
596
- Z.info(`WSC: ${Date.now()}: Closed - code:${n.code}, reason:"${n.reason}"`), this.connected = !1, this._ws = null, this.setConnecting(!1), this.reconnect();
593
+ }, this._ws.onerror = (s) => {
594
+ Z.error(`WSC: ${Date.now()}: Socket error`), clearTimeout(n), this.connected = !1, this._ws = null, this.setConnecting(!1);
595
+ }, this._ws.onclose = (s) => {
596
+ Z.info(`WSC: ${Date.now()}: Closed - code:${s.code}, reason:"${s.reason}"`), this.connected = !1, this._ws = null, this.setConnecting(!1), this.reconnect();
597
597
  };
598
598
  }
599
599
  reconnect(e = 1e3) {
@@ -612,7 +612,7 @@ class ec {
612
612
  this.connecting !== e && (this.connecting = e, this.onConnecting && typeof this.onConnecting == "function" && this.onConnecting(this.connecting));
613
613
  }
614
614
  pingConnection() {
615
- this._ws && this._ws.readyState === WebSocket.OPEN && this._ws.send(JSON.stringify({ type: "heartbeat", id: Ve() }));
615
+ this._ws && this._ws.readyState === WebSocket.OPEN && this._ws.send(JSON.stringify({ type: "heartbeat", id: xe() }));
616
616
  }
617
617
  tick() {
618
618
  this.pingConnection(), this.lastTickTs = Date.now();
@@ -641,7 +641,7 @@ class ec {
641
641
  sendClientInfoMessage() {
642
642
  const e = {
643
643
  type: "clientInfo",
644
- id: Ve(),
644
+ id: xe(),
645
645
  data: {
646
646
  referrer: window.location.href,
647
647
  userAgent: window.navigator.userAgent
@@ -656,8 +656,8 @@ class ec {
656
656
  return;
657
657
  const e = Date.now();
658
658
  let a = !1;
659
- const s = e - this.lastAckTs;
660
- s > Ft + 5e3 && (a = !0, Z.info(`WSC: checkConnection: connection loss detected - last ack delay ${s} msec, reconnecting`)), a && this.disconnect();
659
+ const n = e - this.lastAckTs;
660
+ n > Ft + 5e3 && (a = !0, Z.info(`WSC: checkConnection: connection loss detected - last ack delay ${n} msec, reconnecting`)), a && this.disconnect();
661
661
  }
662
662
  sendMessage(e) {
663
663
  if (this.checkConnection(), !this.connected) {
@@ -666,6 +666,9 @@ class ec {
666
666
  }
667
667
  this._ws.send(JSON.stringify(e));
668
668
  }
669
+ queueMessage(e, a = !1) {
670
+ a ? this.queue.unshift(JSON.stringify(e)) : this.queue.push(JSON.stringify(e));
671
+ }
669
672
  sendQueuedMessages() {
670
673
  if (Array.isArray(this.queue) && this.queue.length > 0)
671
674
  for (let e = 0; e < this.queue.length; e++)
@@ -707,105 +710,105 @@ class ec {
707
710
  function D(c) {
708
711
  return c != null && typeof c == "object" && c["@@functional/placeholder"] === !0;
709
712
  }
710
- function Oe(c) {
713
+ function je(c) {
711
714
  return function e(a) {
712
715
  return arguments.length === 0 || D(a) ? e : c.apply(this, arguments);
713
716
  };
714
717
  }
715
- function qe(c) {
716
- return function e(a, s) {
718
+ function Pe(c) {
719
+ return function e(a, n) {
717
720
  switch (arguments.length) {
718
721
  case 0:
719
722
  return e;
720
723
  case 1:
721
- return D(a) ? e : Oe(function(n) {
722
- return c(a, n);
724
+ return D(a) ? e : je(function(s) {
725
+ return c(a, s);
723
726
  });
724
727
  default:
725
- return D(a) && D(s) ? e : D(a) ? Oe(function(n) {
726
- return c(n, s);
727
- }) : D(s) ? Oe(function(n) {
728
- return c(a, n);
729
- }) : c(a, s);
728
+ return D(a) && D(n) ? e : D(a) ? je(function(s) {
729
+ return c(s, n);
730
+ }) : D(n) ? je(function(s) {
731
+ return c(a, s);
732
+ }) : c(a, n);
730
733
  }
731
734
  };
732
735
  }
733
- function tc(c) {
734
- return function e(a, s, n) {
736
+ function ac(c) {
737
+ return function e(a, n, s) {
735
738
  switch (arguments.length) {
736
739
  case 0:
737
740
  return e;
738
741
  case 1:
739
- return D(a) ? e : qe(function(d, f) {
740
- return c(a, d, f);
742
+ return D(a) ? e : Pe(function(r, f) {
743
+ return c(a, r, f);
741
744
  });
742
745
  case 2:
743
- return D(a) && D(s) ? e : D(a) ? qe(function(d, f) {
744
- return c(d, s, f);
745
- }) : D(s) ? qe(function(d, f) {
746
- return c(a, d, f);
747
- }) : Oe(function(d) {
748
- return c(a, s, d);
746
+ return D(a) && D(n) ? e : D(a) ? Pe(function(r, f) {
747
+ return c(r, n, f);
748
+ }) : D(n) ? Pe(function(r, f) {
749
+ return c(a, r, f);
750
+ }) : je(function(r) {
751
+ return c(a, n, r);
749
752
  });
750
753
  default:
751
- return D(a) && D(s) && D(n) ? e : D(a) && D(s) ? qe(function(d, f) {
752
- return c(d, f, n);
753
- }) : D(a) && D(n) ? qe(function(d, f) {
754
- return c(d, s, f);
755
- }) : D(s) && D(n) ? qe(function(d, f) {
756
- return c(a, d, f);
757
- }) : D(a) ? Oe(function(d) {
758
- return c(d, s, n);
759
- }) : D(s) ? Oe(function(d) {
760
- return c(a, d, n);
761
- }) : D(n) ? Oe(function(d) {
762
- return c(a, s, d);
763
- }) : c(a, s, n);
754
+ return D(a) && D(n) && D(s) ? e : D(a) && D(n) ? Pe(function(r, f) {
755
+ return c(r, f, s);
756
+ }) : D(a) && D(s) ? Pe(function(r, f) {
757
+ return c(r, n, f);
758
+ }) : D(n) && D(s) ? Pe(function(r, f) {
759
+ return c(a, r, f);
760
+ }) : D(a) ? je(function(r) {
761
+ return c(r, n, s);
762
+ }) : D(n) ? je(function(r) {
763
+ return c(a, r, s);
764
+ }) : D(s) ? je(function(r) {
765
+ return c(a, n, r);
766
+ }) : c(a, n, s);
764
767
  }
765
768
  };
766
769
  }
767
- const ac = Number.isInteger || function(e) {
770
+ const cc = Number.isInteger || function(e) {
768
771
  return e << 0 === e;
769
772
  };
770
- function cc(c) {
773
+ function ic(c) {
771
774
  return Object.prototype.toString.call(c) === "[object String]";
772
775
  }
773
- function ic(c, e) {
776
+ function nc(c, e) {
774
777
  var a = c < 0 ? e.length + c : c;
775
- return cc(e) ? e.charAt(a) : e[a];
778
+ return ic(e) ? e.charAt(a) : e[a];
776
779
  }
777
- var nc = /* @__PURE__ */ qe(function(e, a) {
780
+ var sc = /* @__PURE__ */ Pe(function(e, a) {
778
781
  return a == null || a !== a ? e : a;
779
782
  });
780
- function sc(c, e) {
781
- for (var a = e, s = 0; s < c.length; s += 1) {
783
+ function oc(c, e) {
784
+ for (var a = e, n = 0; n < c.length; n += 1) {
782
785
  if (a == null)
783
786
  return;
784
- var n = c[s];
785
- ac(n) ? a = ic(n, a) : a = a[n];
787
+ var s = c[n];
788
+ cc(s) ? a = nc(s, a) : a = a[s];
786
789
  }
787
790
  return a;
788
791
  }
789
- var wt = /* @__PURE__ */ tc(function(e, a, s) {
790
- return nc(e, sc(a, s));
792
+ var wt = /* @__PURE__ */ ac(function(e, a, n) {
793
+ return sc(e, oc(a, n));
791
794
  });
792
- const oc = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
793
- var rc = Object.defineProperty, O = (c, e, a, s) => {
794
- for (var n = void 0, d = c.length - 1, f; d >= 0; d--)
795
- (f = c[d]) && (n = f(e, a, n) || n);
796
- return n && rc(e, a, n), n;
795
+ const rc = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
796
+ var dc = Object.defineProperty, O = (c, e, a, n) => {
797
+ for (var s = void 0, r = c.length - 1, f; r >= 0; r--)
798
+ (f = c[r]) && (s = f(e, a, s) || s);
799
+ return s && dc(e, a, s), s;
797
800
  };
798
- const I = Ke.noConflict();
799
- I.setLevel("info");
800
- const ie = "cb_";
801
+ const A = Ke.noConflict();
802
+ A.setLevel("info");
803
+ const te = "cb_";
801
804
  class L extends kt {
802
805
  constructor() {
803
806
  super(...arguments), this.actionIdCounter = 0, this.prefilledFormValues = {}, this.wsClient = null, this.replyMessage = null, this.streamingResponseInProgress = !1, this.streamingResponseLastText = null, this.streamingResponseBuffer = null, this.streamingResponseTagStartPos = 0, this.streamingResponseCurrentTag = null;
804
807
  }
805
808
  // this is called at startup
806
809
  setSetting(e) {
807
- I.info("appState: Startup: setSetting", e), this.setting = e, this.initBot().catch((a) => {
808
- I.info(`Exception during bot initialization: ${a.message}`);
810
+ A.info("appState: Startup: setSetting", e), this.setting = e, this.initBot().catch((a) => {
811
+ A.info(`Exception during bot initialization: ${a.message}`);
809
812
  });
810
813
  }
811
814
  // set language
@@ -819,22 +822,22 @@ class L extends kt {
819
822
  // todo Form disappears on refresh !!!
820
823
  async initBot() {
821
824
  if (!this.botSettingsInitialized) {
822
- const s = `${this.setting.url.startsWith("localhost") ? "http" : "https"}://${this.setting.url}/api/bot/settings/${this.setting.orgId}/${this.setting.botId}`;
823
- I.info(`Getting bot settings at ${s} ...`);
824
- let n = null, d = null;
825
+ const n = `${this.setting.url.startsWith("localhost") ? "http" : "https"}://${this.setting.url}/api/bot/settings/${this.setting.orgId}/${this.setting.botId}`;
826
+ A.info(`Getting bot settings at ${n} ...`);
827
+ let s = null, r = null;
825
828
  try {
826
- n = await fetch(s, {
829
+ s = await fetch(n, {
827
830
  headers: {
828
831
  "Access-Control-Allow-Origin": "null",
829
832
  "X-Enegel-Signature": this.setting.botId
830
833
  }
831
- }), !n.ok || n.status !== 200 ? I.error(`Failed to get bot ${this.setting.botId} settings: ${n.status} ${n.statusText}`) : d = await n.json();
834
+ }), !s.ok || s.status !== 200 ? A.error(`Failed to get bot ${this.setting.botId} settings: ${s.status} ${s.statusText}`) : r = await s.json();
832
835
  } catch (f) {
833
- I.error(`Failed to get bot ${this.setting.botId} settings: ${f.message}`), d = null;
836
+ A.error(`Failed to get bot ${this.setting.botId} settings: ${f.message}`), r = null;
834
837
  }
835
- if (this.botSettingsInitialized = !0, this.botSettings = d, !d) {
836
- if (I.error(`Unable to retrieve bot settings - bot disabled. Retry in ${this.botSettingsRetryTimeout} seconds.`), this.disabled = !0, this.botSettingsRetryTimeout > 80) {
837
- I.error("Failed to retrieve bot settings - bot disabled. Retries exhausted. Refresh page to attempt again.");
838
+ if (this.botSettingsInitialized = !0, this.botSettings = r, !r) {
839
+ if (A.error(`Unable to retrieve bot settings - bot disabled. Retry in ${this.botSettingsRetryTimeout} seconds.`), this.disabled = !0, this.botSettingsRetryTimeout > 80) {
840
+ A.error("Failed to retrieve bot settings - bot disabled. Retries exhausted. Refresh page to attempt again.");
838
841
  return;
839
842
  }
840
843
  this.botSettingsInitialized = !1, setTimeout(async () => {
@@ -842,17 +845,17 @@ class L extends kt {
842
845
  }, this.botSettingsRetryTimeout * 1e3), this.botSettingsRetryTimeout = this.botSettingsRetryTimeout * 2;
843
846
  return;
844
847
  }
845
- I.info("Got bot settings - bot is enabled", d), this.disabled = !1, this.setting.welcomeMessage = (d == null ? void 0 : d.welcomeMessage) || "How can I help ?", this.setting.engageMessage = (d == null ? void 0 : d.engageMessage) || "How can I help ?", this.setting.engageTimeout = (d == null ? void 0 : d.engageTimeout) || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in d ? d.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in d ? d.feedbackEnabled : !1, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
848
+ A.info("Got bot settings - bot is enabled", r), this.disabled = !1, this.setting.welcomeMessage = (r == null ? void 0 : r.welcomeMessage) || "How can I help ?", this.setting.engageMessage = (r == null ? void 0 : r.engageMessage) || "How can I help ?", this.setting.engageTimeout = (r == null ? void 0 : r.engageTimeout) || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in r ? r.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in r ? r.feedbackEnabled : !1, this.setting.uploadImages = "uploadImages" in r ? r.uploadImages : !1, this.setting.newConversationTimeoutInSec = (r == null ? void 0 : r.newConversationTimeoutInSec) || 86400, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
846
849
  this.showEngagePopup();
847
850
  }, this.setting.engageTimeout * 1e3);
848
851
  }
849
852
  const e = new URLSearchParams(window.location.search);
850
853
  if (e.has("c7o_bot_open")) {
851
854
  const a = e.get("c7o_bot_open");
852
- this.open = a !== "false" && a !== "no" && a !== "0", I.info(`C7O-BOT:INIT: Force open=${this.open} from query parameter c7o_bot_open=${e.get("c7o_bot_open")}`);
855
+ this.open = a !== "false" && a !== "no" && a !== "0", A.info(`C7O-BOT:INIT: Force open=${this.open} from query parameter c7o_bot_open=${e.get("c7o_bot_open")}`);
853
856
  }
854
- this.connectWs === "true" && (I.info("appState: connectWs is true"), this.getWsClient().catch((a) => {
855
- I.error(`Exception during ws client startup: ${a.message}`);
857
+ this.connectWs === "true" && (A.info("appState: connectWs is true"), this.getWsClient().catch((a) => {
858
+ A.error(`Exception during ws client startup: ${a.message}`);
856
859
  })), setTimeout(() => {
857
860
  window.dispatchEvent(
858
861
  new CustomEvent("c7o:bot:stateEvent", {
@@ -865,7 +868,8 @@ class L extends kt {
865
868
  }, 1e3);
866
869
  }
867
870
  initConversation() {
868
- if (Date.now() - this.lastConversationUpdate > 24 * 60 * 60 * 1e3) {
871
+ const e = Date.now(), a = this.setting.newConversationTimeoutInSec * 1e3;
872
+ if (e - this.lastConversationUpdate > a) {
869
873
  this.clearConversation();
870
874
  return;
871
875
  }
@@ -873,7 +877,7 @@ class L extends kt {
873
877
  }
874
878
  clearConversation() {
875
879
  this.wsClient && (this.wsClient.stop().then(() => {
876
- }), this.wsClient = null), this.conversationId = Ve(), this.lastConversationUpdate = Date.now(), this.connectWs = "false", this.shouldEngage = "true", this.messages = [], this.unreadMessages = 0, this.actions = [], this.form = null, this.addMessage({
880
+ }), this.wsClient = null), this.conversationId = xe(), this.lastConversationUpdate = Date.now(), this.connectWs = "false", this.shouldEngage = "true", this.messages = [], this.unreadMessages = 0, this.actions = [], this.context = {}, this.form = null, this.addMessage({
877
881
  author: "assistant",
878
882
  type: "text",
879
883
  data: {
@@ -887,34 +891,64 @@ class L extends kt {
887
891
  getPrefilledFormFieldValue(e) {
888
892
  return !this.prefilledFormValues || !(e in this.prefilledFormValues) ? null : this.prefilledFormValues[e];
889
893
  }
894
+ // Set data in the context of the conversation
895
+ async setContext(e) {
896
+ if (!(!e || typeof e != "object")) {
897
+ this.context || (this.context = {});
898
+ for (const [a, n] of Object.entries(e))
899
+ this.context[a] = n;
900
+ this.wsClient && await this.sendContext();
901
+ }
902
+ }
903
+ async sendContext() {
904
+ if (!this.context)
905
+ return;
906
+ const e = await this.getWsClient();
907
+ if (!e) {
908
+ A.error("Error - failed to obtain ws client");
909
+ return;
910
+ }
911
+ const a = {
912
+ id: xe(),
913
+ type: "setContext",
914
+ contextData: this.context
915
+ };
916
+ e.sendMessage(a), A.info("Sent context:", this.context);
917
+ }
918
+ getContext() {
919
+ return this.context;
920
+ }
921
+ clearContext() {
922
+ this.context = {};
923
+ }
890
924
  initStartupForm() {
891
925
  const e = wt(null, ["startupForm"], this.botSettings);
892
926
  if (!e || !(e != null && e.name)) {
893
- I.info("Startup form not present");
927
+ A.info("Startup form not present");
894
928
  return;
895
929
  }
896
930
  this.initForm(e);
897
931
  }
898
932
  initForm(e = null) {
899
- const a = e, s = wt(null, ["name"], e);
900
- if (!a || !s)
933
+ const a = e, n = wt(null, ["name"], e);
934
+ if (!a || !n)
901
935
  return;
902
- const n = wt(null, ["fields"], e);
903
- if (!Array.isArray(n) || n.length <= 0) {
904
- I.info("form has no fields", e);
936
+ const s = wt(null, ["fields"], e);
937
+ if (!Array.isArray(s) || s.length <= 0) {
938
+ A.info("form has no fields", e);
905
939
  return;
906
940
  }
907
- const d = `${ie}${this.setting.botId}.${this.conversationId}.form.${s}`, f = localStorage.getItem(d);
941
+ const r = `${te}${this.setting.botId}.${this.conversationId}.form.${n}`, f = localStorage.getItem(r);
908
942
  if (f) {
909
- let x = null;
943
+ let w = null;
910
944
  try {
911
- x = JSON.parse(f);
945
+ w = JSON.parse(f);
912
946
  } catch (S) {
913
- I.error(`Failed to parse stored form data: ${S.message}`), x = null;
947
+ A.error(`Failed to parse stored form data: ${S.message}`), w = null;
914
948
  }
915
- if (x) {
916
- this.sendFormData(s, x).catch((S) => {
917
- I.error(`Error when submitting form: ${S.message}`);
949
+ if (w) {
950
+ this.sendFormData(n, w).catch((S) => {
951
+ A.error(`Error when submitting form: ${S.message}`);
918
952
  });
919
953
  return;
920
954
  }
@@ -925,18 +959,18 @@ class L extends kt {
925
959
  this.engage = !1, this.shouldEngage = "false";
926
960
  }
927
961
  showEngagePopup() {
928
- this.open || (I.info("Engaging User !"), this.engage = !0, this.playAudioNotification());
962
+ this.open || (A.info("Engaging User !"), this.engage = !0, this.playAudioNotification());
929
963
  }
930
964
  playAudioNotification() {
931
- const e = (d) => {
932
- const f = new Uint8Array(d.length / 2);
933
- for (let x = 0; x < f.length; x++)
934
- f[x] = parseInt(d.substr(x * 2, 2), 16);
965
+ const e = (r) => {
966
+ const f = new Uint8Array(r.length / 2);
967
+ for (let w = 0; w < f.length; w++)
968
+ f[w] = parseInt(r.substr(w * 2, 2), 16);
935
969
  return f;
936
970
  };
937
- let a = new Blob([e(oc)], { type: "application/octet-stream" });
938
- const s = URL.createObjectURL(a);
939
- new Audio(s).play();
971
+ let a = new Blob([e(rc)], { type: "application/octet-stream" });
972
+ const n = URL.createObjectURL(a);
973
+ new Audio(n).play();
940
974
  }
941
975
  // This is a start of conversation if user did not send any messages yet
942
976
  isConversationStart() {
@@ -947,28 +981,35 @@ class L extends kt {
947
981
  if (this.wsClient)
948
982
  return this.wsClient;
949
983
  const a = `${this.setting.url.startsWith("localhost") ? "ws" : "wss"}://${this.setting.url}/api/bot/connect/${this.setting.orgId}/${this.setting.botId}/${this.conversationId}`;
950
- return I.info(`Initiating ws connection to ${a} ...`), this.wsClient = new ec({
984
+ return A.info(`Initiating ws connection to ${a} ...`), this.wsClient = new tc({
951
985
  url: a,
952
986
  orgId: this.setting.orgId,
953
987
  botId: this.setting.botId,
954
988
  convId: this.conversationId,
955
- onConnecting: (s) => {
956
- this.handleWscConnecting(s);
989
+ onConnecting: (n) => {
990
+ this.handleWscConnecting(n);
957
991
  },
958
- onMessage: (s) => {
959
- this.handleWscMessage(s);
992
+ onMessage: (n) => {
993
+ this.handleWscMessage(n);
960
994
  }
961
995
  }), await this.wsClient.start(), this.connectWs = "true", this.wsClient;
962
996
  }
963
997
  handleWscConnecting(e) {
964
- var a, s;
965
- I.info(`WSC: on connecting(${e}), connected: ${(a = this.wsClient) == null ? void 0 : a.connected}`), this.connecting = e, !this.connecting && ((s = this.wsClient) != null && s.connected) && window.dispatchEvent(
998
+ var a, n;
999
+ A.info(`WSC: on connecting(${e}), connected: ${(a = this.wsClient) == null ? void 0 : a.connected}`), this.connecting = e, !this.connecting && ((n = this.wsClient) != null && n.connected) ? (this.connected = !0, this.context && typeof this.context == "object" && Object.keys(this.context).length > 0 && this.wsClient.queueMessage(
1000
+ {
1001
+ id: xe(),
1002
+ type: "setContext",
1003
+ contextData: this.context
1004
+ },
1005
+ !0
1006
+ ), window.dispatchEvent(
966
1007
  new CustomEvent("c7o:bot:stateEvent", {
967
1008
  detail: {
968
1009
  type: "botConnected"
969
1010
  }
970
1011
  })
971
- );
1012
+ )) : this.connected = !1;
972
1013
  }
973
1014
  handleWscMessage(e) {
974
1015
  var a;
@@ -978,7 +1019,7 @@ class L extends kt {
978
1019
  if (this.replyMessage)
979
1020
  this.streamingResponseInProgress ? (this.finishStreamingResponse(e.text), this.streamingResponseInProgress = !1) : (this.replyMessage.data.text = e.text, this.updateMessage(this.replyMessage, "")), this.replyMessage = null;
980
1021
  else {
981
- const s = {
1022
+ const n = {
982
1023
  id: (e == null ? void 0 : e.id) || null,
983
1024
  type: "text",
984
1025
  author: "assistant",
@@ -986,9 +1027,9 @@ class L extends kt {
986
1027
  text: e.text
987
1028
  }
988
1029
  };
989
- "userName" in e && (s.data.userName = e.userName), "userAvatar" in e && (s.data.userAvatar = e.userAvatar);
990
- const n = this.formatMessage(s);
991
- this.messages = this.messages.concat([n]);
1030
+ "userName" in e && (n.data.userName = e.userName), "userAvatar" in e && (n.data.userAvatar = e.userAvatar);
1031
+ const s = this.formatMessage(n);
1032
+ this.messages = this.messages.concat([s]);
992
1033
  }
993
1034
  this.open || (this.unreadMessages++, this.playAudioNotification());
994
1035
  break;
@@ -1010,9 +1051,9 @@ class L extends kt {
1010
1051
  break;
1011
1052
  }
1012
1053
  case "form": {
1013
- if (I.info("Got form:", e), this.replyMessage && this.replyMessage.id) {
1014
- const s = ((a = this.replyMessage.data) == null ? void 0 : a.text) || "";
1015
- (this.replyMessage.isThinking || s.trim() === "") && (this.removeMessage(this.replyMessage.id), this.replyMessage = null);
1054
+ if (A.info("Got form:", e), this.replyMessage && this.replyMessage.id) {
1055
+ const n = ((a = this.replyMessage.data) == null ? void 0 : a.text) || "";
1056
+ (this.replyMessage.isThinking || n.trim() === "") && (this.removeMessage(this.replyMessage.id), this.replyMessage = null);
1016
1057
  }
1017
1058
  this.initForm(e.form);
1018
1059
  break;
@@ -1024,14 +1065,14 @@ class L extends kt {
1024
1065
  }
1025
1066
  }
1026
1067
  processStreamingResponseTagBr() {
1027
- var a, s;
1068
+ var a, n;
1028
1069
  if (!this.streamingResponseBuffer || !this.replyMessage || this.streamingResponseBuffer.length < this.streamingResponseTagStartPos + 4)
1029
1070
  return;
1030
1071
  const e = this.streamingResponseBuffer.indexOf("<br>");
1031
1072
  if (e !== -1)
1032
1073
  if (this.setting.splitMessagesAtBreak) {
1033
- const n = this.streamingResponseBuffer.substring(0, e).trim(), d = this.streamingResponseBuffer.substring(e + 4).trim();
1034
- (n !== "" || ((s = (a = this.replyMessage) == null ? void 0 : a.data) == null ? void 0 : s.text) !== "") && (I.info(`BREAK: Splitting the message: ${this.streamingResponseBuffer} >>> prev: ${n} next: ${d}`), this.replyMessage = this.updateMessage(this.replyMessage, n), this.replyMessage = { author: "assistant", type: "text", isThinking: !1, data: { text: d } }, this.addMessage(this.replyMessage));
1074
+ const s = this.streamingResponseBuffer.substring(0, e).trim(), r = this.streamingResponseBuffer.substring(e + 4).trim();
1075
+ (s !== "" || ((n = (a = this.replyMessage) == null ? void 0 : a.data) == null ? void 0 : n.text) !== "") && (A.info(`BREAK: Splitting the message: ${this.streamingResponseBuffer} >>> prev: ${s} next: ${r}`), this.replyMessage = this.updateMessage(this.replyMessage, s), this.replyMessage = { author: "assistant", type: "text", isThinking: !1, data: { text: r } }, this.addMessage(this.replyMessage));
1035
1076
  } else
1036
1077
  this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer);
1037
1078
  this.streamingResponseBuffer = null, this.streamingResponseTagStartPos = 0, this.streamingResponseCurrentTag = null;
@@ -1040,11 +1081,11 @@ class L extends kt {
1040
1081
  if (!this.streamingResponseBuffer || !this.replyMessage)
1041
1082
  return;
1042
1083
  if (this.streamingResponseBuffer.indexOf("![") === -1) {
1043
- I.info(`NOT IMG TAG: ${this.streamingResponseBuffer}`), this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null;
1084
+ A.info(`NOT IMG TAG: ${this.streamingResponseBuffer}`), this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null;
1044
1085
  return;
1045
1086
  }
1046
1087
  const e = this.streamingResponseBuffer.lastIndexOf("]"), a = this.streamingResponseBuffer.lastIndexOf(")");
1047
- e === -1 || a === -1 || e > a || (I.info(`IMG TAG END: ${this.streamingResponseBuffer}`), this.isValidImageLink(this.streamingResponseBuffer) && (this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer)), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null);
1088
+ e === -1 || a === -1 || e > a || (A.info(`IMG TAG END: ${this.streamingResponseBuffer}`), this.isValidImageLink(this.streamingResponseBuffer) && (this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer)), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null);
1048
1089
  }
1049
1090
  isValidImageLink(e = "") {
1050
1091
  return !(e.indexOf("example.com") !== -1 || e.indexOf("imgur.com") !== -1 || e.indexOf("attachment:") !== -1);
@@ -1064,7 +1105,7 @@ class L extends kt {
1064
1105
  this.streamingResponseBuffer = e, this.streamingResponseTagStartPos = e.indexOf("<"), this.streamingResponseCurrentTag = "br";
1065
1106
  return;
1066
1107
  } else if (e.indexOf("![") !== -1 || e.endsWith("!")) {
1067
- this.streamingResponseBuffer = e, this.streamingResponseCurrentTag = "img", I.info(`IMG TAG START: ${this.streamingResponseBuffer}`);
1108
+ this.streamingResponseBuffer = e, this.streamingResponseCurrentTag = "img", A.info(`IMG TAG START: ${this.streamingResponseBuffer}`);
1068
1109
  return;
1069
1110
  }
1070
1111
  this.streamingResponseLastText = a, this.replyMessage = this.updateMessage(this.replyMessage, a);
@@ -1073,7 +1114,7 @@ class L extends kt {
1073
1114
  // Check and remove invalid message links from the response text
1074
1115
  cleanupImageLinks(e = "") {
1075
1116
  const a = /!\[.*?\]\((.*?)\)/g;
1076
- return e.replace(a, (n, d) => this.isValidImageLink(n) ? n : "");
1117
+ return e.replace(a, (s, r) => this.isValidImageLink(s) ? s : "");
1077
1118
  }
1078
1119
  finishStreamingResponse(e) {
1079
1120
  if (!this.replyMessage || !this.streamingResponseInProgress)
@@ -1081,23 +1122,23 @@ class L extends kt {
1081
1122
  this.streamingResponseInProgress = !1, this.streamingResponseBuffer = null, this.streamingResponseTagStartPos = 0, this.streamingResponseCurrentTag = null;
1082
1123
  let a = e;
1083
1124
  a = this.cleanupImageLinks(a);
1084
- const s = a.lastIndexOf("<br>");
1085
- if (!this.setting.splitMessagesAtBreak || s === -1) {
1125
+ const n = a.lastIndexOf("<br>");
1126
+ if (!this.setting.splitMessagesAtBreak || n === -1) {
1086
1127
  this.replyMessage.data.text = a, this.updateMessage(this.replyMessage, "");
1087
1128
  return;
1088
1129
  }
1089
- const n = a.substring(s + 4);
1090
- this.replyMessage.data.text = n, this.updateMessage(this.replyMessage, "");
1130
+ const s = a.substring(n + 4);
1131
+ this.replyMessage.data.text = s, this.updateMessage(this.replyMessage, "");
1091
1132
  }
1092
1133
  addActions(e) {
1093
1134
  if (Array.isArray(e) && e.length > 0) {
1094
- const a = e.map((s) => Object.assign(s, { internalId: this.actionIdCounter++ }));
1095
- this.actions = this.actions.concat(a), a.map((s) => {
1135
+ const a = e.map((n) => Object.assign(n, { internalId: this.actionIdCounter++ }));
1136
+ this.actions = this.actions.concat(a), a.map((n) => {
1096
1137
  window.dispatchEvent(
1097
1138
  new CustomEvent("c7o:bot:stateEvent", {
1098
1139
  detail: {
1099
1140
  type: "actionPresented",
1100
- action: s
1141
+ action: n
1101
1142
  }
1102
1143
  })
1103
1144
  );
@@ -1105,43 +1146,43 @@ class L extends kt {
1105
1146
  }
1106
1147
  }
1107
1148
  // Remove action, for example, when completed
1108
- removeAction(e, a = !1, s = {}) {
1109
- const n = this.actions.findIndex((d) => d.internalId === e);
1110
- if (n !== -1) {
1111
- const d = this.actions[n];
1149
+ removeAction(e, a = !1, n = {}) {
1150
+ const s = this.actions.findIndex((r) => r.internalId === e);
1151
+ if (s !== -1) {
1152
+ const r = this.actions[s];
1112
1153
  if (a) {
1113
- const x = {
1154
+ const w = {
1114
1155
  type: "actionCompleted",
1115
- action: d,
1116
- data: s
1156
+ action: r,
1157
+ data: n
1117
1158
  };
1118
1159
  window.dispatchEvent(
1119
1160
  new CustomEvent("c7o:bot:stateEvent", {
1120
- detail: x
1161
+ detail: w
1121
1162
  })
1122
- ), this.sendActionCompleted(x).catch((S) => {
1123
- I.error(`Error: failed to send action completed: ${S.message}`);
1163
+ ), this.sendActionCompleted(w).catch((S) => {
1164
+ A.error(`Error: failed to send action completed: ${S.message}`);
1124
1165
  });
1125
1166
  }
1126
- this.actions.splice(n, 1);
1167
+ this.actions.splice(s, 1);
1127
1168
  const f = [];
1128
1169
  this.actions = f.concat(this.actions);
1129
1170
  }
1130
1171
  }
1131
1172
  updateAction(e, a) {
1132
- const s = this.actions.findIndex((n) => n.internalId === e.internalId);
1133
- if (s !== -1) {
1134
- const n = Object.assign({}, this.actions[s], a);
1135
- this.actions.splice(s, 1, n);
1136
- const d = [];
1137
- this.actions = d.concat(this.actions);
1173
+ const n = this.actions.findIndex((s) => s.internalId === e.internalId);
1174
+ if (n !== -1) {
1175
+ const s = Object.assign({}, this.actions[n], a);
1176
+ this.actions.splice(n, 1, s);
1177
+ const r = [];
1178
+ this.actions = r.concat(this.actions);
1138
1179
  }
1139
1180
  }
1140
1181
  async sendMessage(e) {
1141
- e = this.formatMessage(e), I.info("Send Message:", e), this.messages = this.messages.concat([e]), this.lastConversationUpdate = Date.now();
1182
+ e = this.formatMessage(e), A.info("Send Message:", e), this.messages = this.messages.concat([e]), this.lastConversationUpdate = Date.now();
1142
1183
  const a = await this.getWsClient();
1143
1184
  if (!a) {
1144
- I.error("Error - failed to obtain ws client"), this.replyMessage = null;
1185
+ A.error("Error - failed to obtain ws client"), this.replyMessage = null;
1145
1186
  return;
1146
1187
  }
1147
1188
  a.sendMessage({
@@ -1153,7 +1194,7 @@ class L extends kt {
1153
1194
  // TODO revisit below
1154
1195
  formatMessage(e) {
1155
1196
  var a;
1156
- return e.id || (e.id = Ve()), e.timestamp || (e.timestamp = Date.now()), e.author === "assistant" && !e.replyId && (e.replyId = ((a = this.messages.findLast((s) => s.author === "user")) == null ? void 0 : a.id) || void 0), e;
1197
+ return e.id || (e.id = xe()), e.timestamp || (e.timestamp = Date.now()), e.author === "assistant" && !e.replyId && (e.replyId = ((a = this.messages.findLast((n) => n.author === "user")) == null ? void 0 : a.id) || void 0), e;
1157
1198
  }
1158
1199
  // add message
1159
1200
  addMessage(e) {
@@ -1170,8 +1211,8 @@ class L extends kt {
1170
1211
  }
1171
1212
  // update message
1172
1213
  updateMessage(e, a) {
1173
- const s = this.formatMessage(e);
1174
- return s.isThinking = !1, a && (s.data.text += a), this.messages = this.messages.map((n) => n.id === s.id ? s : n), s;
1214
+ const n = this.formatMessage(e);
1215
+ return n.isThinking = !1, a && (n.data.text += a), this.messages = this.messages.map((s) => s.id === n.id ? n : s), n;
1175
1216
  }
1176
1217
  // remove message
1177
1218
  removeMessage(e) {
@@ -1184,19 +1225,19 @@ class L extends kt {
1184
1225
  // Submit current form data
1185
1226
  async submitForm(e) {
1186
1227
  if (!this.form) {
1187
- I.info("submitForm: No form is active - ignored");
1228
+ A.info("submitForm: No form is active - ignored");
1188
1229
  return;
1189
1230
  }
1190
- const a = `${ie}${this.setting.botId}.${this.conversationId}.form.${this.form.name}`;
1231
+ const a = `${te}${this.setting.botId}.${this.conversationId}.form.${this.form.name}`;
1191
1232
  await this.sendFormData(this.form.name, e), localStorage.setItem(a, JSON.stringify(e)), "name" in e && (this.feedbackName = e.name), "email" in e && (this.feedbackEmail = e.email), this.form = null;
1192
1233
  }
1193
1234
  async sendFormData(e, a) {
1194
- const s = await this.getWsClient();
1195
- if (!s) {
1196
- I.error("Error - failed to obtain ws client");
1235
+ const n = await this.getWsClient();
1236
+ if (!n) {
1237
+ A.error("Error - failed to obtain ws client");
1197
1238
  return;
1198
1239
  }
1199
- s.sendMessage({
1240
+ n.sendMessage({
1200
1241
  type: "form",
1201
1242
  name: e,
1202
1243
  data: a
@@ -1205,7 +1246,7 @@ class L extends kt {
1205
1246
  async sendActionCompleted(e) {
1206
1247
  const a = await this.getWsClient();
1207
1248
  if (!a) {
1208
- I.error("Error - failed to obtain ws client");
1249
+ A.error("Error - failed to obtain ws client");
1209
1250
  return;
1210
1251
  }
1211
1252
  a.sendMessage({
@@ -1214,71 +1255,120 @@ class L extends kt {
1214
1255
  });
1215
1256
  }
1216
1257
  collectFeedback(e, a) {
1217
- var s, n;
1258
+ var n, s;
1218
1259
  if (this.feedbackScore = e ? 5 : 0, this.feedbackMessages = [], a.replyId) {
1219
- const d = this.messages.findLast((f) => f.id === a.replyId);
1220
- d && this.feedbackMessages.push(d);
1260
+ const r = this.messages.findLast((f) => f.id === a.replyId);
1261
+ r && this.feedbackMessages.push(r);
1221
1262
  }
1222
- this.feedbackMessages.push(a), this.feedbackUserMessage = ((n = (s = this.messages.findLast((d) => d.id === a.replyId)) == null ? void 0 : s.data) == null ? void 0 : n.text) || "", this.feedbackAnswer = (a == null ? void 0 : a.data.text) || "", this.feedbackAnswerMessageId = (a == null ? void 0 : a.id) || "", this.feedbackAnswerUserName = (a == null ? void 0 : a.data.userName) || "", this.feedback = !0;
1263
+ this.feedbackMessages.push(a), this.feedbackUserMessage = ((s = (n = this.messages.findLast((r) => r.id === a.replyId)) == null ? void 0 : n.data) == null ? void 0 : s.text) || "", this.feedbackAnswer = (a == null ? void 0 : a.data.text) || "", this.feedbackAnswerMessageId = (a == null ? void 0 : a.id) || "", this.feedbackAnswerUserName = (a == null ? void 0 : a.data.userName) || "", this.feedback = !0;
1223
1264
  }
1224
- async submitFeedback(e, a, s) {
1225
- I.info(`submitFeedback: ${this.feedbackScore}`), this.feedbackName = e, this.feedbackEmail = a;
1226
- const n = await this.getWsClient();
1227
- if (!n) {
1228
- I.error("Error - failed to obtain ws client"), this.replyMessage = null;
1265
+ async submitFeedback(e, a, n) {
1266
+ A.info(`submitFeedback: ${this.feedbackScore}`), this.feedbackName = e, this.feedbackEmail = a;
1267
+ const s = await this.getWsClient();
1268
+ if (!s) {
1269
+ A.error("Error - failed to obtain ws client"), this.replyMessage = null;
1229
1270
  return;
1230
1271
  }
1231
- n.sendMessage({
1232
- id: Ve(),
1272
+ s.sendMessage({
1273
+ id: xe(),
1233
1274
  type: "feedback",
1234
1275
  score: this.feedbackScore,
1235
1276
  userMessage: this.feedbackUserMessage,
1236
1277
  answerMessageId: this.feedbackAnswerMessageId,
1237
1278
  answer: this.feedbackAnswer,
1238
1279
  answerUserName: this.feedbackAnswerUserName,
1239
- comments: s,
1280
+ comments: n,
1240
1281
  name: e,
1241
1282
  email: a
1242
1283
  }), this.feedback = !1;
1243
1284
  }
1285
+ /**
1286
+ * Read one or more File objects and return their contents as Base-64 strings.
1287
+ *
1288
+ * @param {File[] | undefined | null} files - The value returned from `selectFile`.
1289
+ * @returns {Promise<Array<{ name: string; type: string; size: number; base64: string }>>}
1290
+ * Resolves to an array (one entry per file) with metadata + raw Base-64.
1291
+ */
1292
+ async filesToBase64(e) {
1293
+ if (!(e != null && e.length)) return [];
1294
+ const a = (n) => new Promise((s, r) => {
1295
+ const f = new FileReader();
1296
+ f.onerror = () => r(f.error), f.onload = () => {
1297
+ const [, w] = f.result.split(",");
1298
+ s({
1299
+ name: n.name,
1300
+ type: n.type,
1301
+ size: n.size,
1302
+ base64: w
1303
+ });
1304
+ }, f.readAsDataURL(n);
1305
+ });
1306
+ return Promise.all(e.map(a));
1307
+ }
1308
+ async uploadFiles(e) {
1309
+ if (!(e != null && e.length)) return;
1310
+ const a = await this.filesToBase64(e);
1311
+ A.info("Uploading files:", a);
1312
+ const n = await this.getWsClient();
1313
+ if (!n) {
1314
+ A.error("Error - failed to obtain ws client");
1315
+ return;
1316
+ }
1317
+ const s = xe();
1318
+ n.sendMessage({
1319
+ id: s,
1320
+ type: "upload",
1321
+ files: a
1322
+ });
1323
+ const r = {
1324
+ id: s,
1325
+ timestamp: Date.now(),
1326
+ author: "user",
1327
+ type: "upload",
1328
+ data: {
1329
+ uploadedFiles: a
1330
+ }
1331
+ };
1332
+ this.addMessage(r);
1333
+ }
1244
1334
  }
1245
1335
  O([
1246
- de({ prefix: ie }),
1336
+ oe({ prefix: te }),
1247
1337
  q({ value: "en" })
1248
1338
  ], L.prototype, "language");
1249
1339
  O([
1250
- de({ prefix: ie }),
1340
+ oe({ prefix: te }),
1251
1341
  q({ value: "light" })
1252
1342
  ], L.prototype, "theme");
1253
1343
  O([
1254
- de({ prefix: ie }),
1344
+ oe({ prefix: te }),
1255
1345
  q({ type: Boolean, value: !1 })
1256
1346
  ], L.prototype, "open");
1257
1347
  O([
1258
1348
  q({ type: Boolean, value: !1 })
1259
1349
  ], L.prototype, "alwaysOpen");
1260
1350
  O([
1261
- de({ prefix: ie }),
1351
+ oe({ prefix: te }),
1262
1352
  q({ value: "false" })
1263
1353
  ], L.prototype, "connectWs");
1264
1354
  O([
1265
- de({ prefix: ie }),
1266
- q({ value: Ve() })
1355
+ oe({ prefix: te }),
1356
+ q({ value: xe() })
1267
1357
  ], L.prototype, "conversationId");
1268
1358
  O([
1269
- de({ prefix: ie }),
1359
+ oe({ prefix: te }),
1270
1360
  q({ value: 0 })
1271
1361
  ], L.prototype, "lastConversationUpdate");
1272
1362
  O([
1273
- de({ prefix: ie }),
1363
+ oe({ prefix: te }),
1274
1364
  q({ type: Array, value: [] })
1275
1365
  ], L.prototype, "messages");
1276
1366
  O([
1277
- de({ prefix: ie }),
1367
+ oe({ prefix: te }),
1278
1368
  q({ value: 0 })
1279
1369
  ], L.prototype, "unreadMessages");
1280
1370
  O([
1281
- de({ prefix: ie }),
1371
+ oe({ prefix: te }),
1282
1372
  q({
1283
1373
  type: Array,
1284
1374
  value: []
@@ -1341,14 +1431,17 @@ O([
1341
1431
  q({ type: Boolean, value: !1 })
1342
1432
  ], L.prototype, "connecting");
1343
1433
  O([
1344
- de({ prefix: ie }),
1434
+ q({ type: Boolean, value: !1 })
1435
+ ], L.prototype, "connected");
1436
+ O([
1437
+ oe({ prefix: te }),
1345
1438
  q({ value: "true" })
1346
1439
  ], L.prototype, "shouldEngage");
1347
1440
  O([
1348
1441
  q({ type: Boolean, value: !1 })
1349
1442
  ], L.prototype, "engage");
1350
1443
  O([
1351
- de({ prefix: ie }),
1444
+ oe({ prefix: te }),
1352
1445
  q({
1353
1446
  type: Object,
1354
1447
  value: {
@@ -1357,10 +1450,16 @@ O([
1357
1450
  url: null,
1358
1451
  welcomeMessage: null,
1359
1452
  splitMessagesAtBreak: !1,
1360
- feedbackEnabled: !1
1453
+ feedbackEnabled: !1,
1454
+ uploadImages: !1,
1455
+ newConversationTimeoutInSec: 86400
1361
1456
  }
1362
1457
  })
1363
1458
  ], L.prototype, "setting");
1459
+ O([
1460
+ oe({ prefix: te }),
1461
+ q({ type: Object, value: null })
1462
+ ], L.prototype, "context");
1364
1463
  O([
1365
1464
  q({ type: String, value: "top-end" })
1366
1465
  ], L.prototype, "appearanceAnchorPopupPosition");
@@ -1392,14 +1491,14 @@ O([
1392
1491
  q({ type: Array, value: [] })
1393
1492
  ], L.prototype, "feedbackMessages");
1394
1493
  O([
1395
- de({ prefix: ie }),
1494
+ oe({ prefix: te }),
1396
1495
  q({ type: String, value: "" })
1397
1496
  ], L.prototype, "feedbackName");
1398
1497
  O([
1399
- de({ prefix: ie }),
1498
+ oe({ prefix: te }),
1400
1499
  q({ type: String, value: "" })
1401
1500
  ], L.prototype, "feedbackEmail");
1402
- const p = new L(), dc = X`
1501
+ const p = new L(), fc = X`
1403
1502
  ${me}
1404
1503
  :host {
1405
1504
  position: relative;
@@ -1474,39 +1573,39 @@ const p = new L(), dc = X`
1474
1573
  display: inline;
1475
1574
  }
1476
1575
  `;
1477
- var fc = Object.defineProperty, lc = (c, e, a, s) => {
1478
- for (var n = void 0, d = c.length - 1, f; d >= 0; d--)
1479
- (f = c[d]) && (n = f(e, a, n) || n);
1480
- return n && fc(e, a, n), n;
1576
+ var lc = Object.defineProperty, bc = (c, e, a, n) => {
1577
+ for (var s = void 0, r = c.length - 1, f; r >= 0; r--)
1578
+ (f = c[r]) && (s = f(e, a, s) || s);
1579
+ return s && lc(e, a, s), s;
1481
1580
  };
1482
- Ha("system", {
1581
+ Ba("system", {
1483
1582
  resolver: (c) => ""
1484
1583
  });
1485
- class ee extends ut {
1584
+ class ae extends ut {
1486
1585
  constructor() {
1487
1586
  super(...arguments), this.lang = "en";
1488
1587
  }
1489
1588
  emit(e, a) {
1490
- const s = new CustomEvent(e, {
1589
+ const n = new CustomEvent(e, {
1491
1590
  bubbles: !0,
1492
1591
  cancelable: !1,
1493
1592
  composed: !0,
1494
1593
  detail: {},
1495
1594
  ...a
1496
1595
  });
1497
- return this.dispatchEvent(s), s;
1596
+ return this.dispatchEvent(n), n;
1498
1597
  }
1499
1598
  }
1500
- lc([
1599
+ bc([
1501
1600
  v({ type: String })
1502
- ], ee.prototype, "lang");
1503
- var bc = Object.defineProperty, hc = Object.getOwnPropertyDescriptor, ia = (c, e, a, s) => {
1504
- for (var n = s > 1 ? void 0 : s ? hc(e, a) : e, d = c.length - 1, f; d >= 0; d--)
1505
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
1506
- return s && n && bc(e, a, n), n;
1601
+ ], ae.prototype, "lang");
1602
+ var hc = Object.defineProperty, uc = Object.getOwnPropertyDescriptor, na = (c, e, a, n) => {
1603
+ for (var s = n > 1 ? void 0 : n ? uc(e, a) : e, r = c.length - 1, f; r >= 0; r--)
1604
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
1605
+ return n && s && hc(e, a, s), s;
1507
1606
  };
1508
- const uc = '<svg viewBox="0 0 16 16" width="16px" height="16px"><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 8z"></path></svg>';
1509
- let ot = class extends ee {
1607
+ const pc = '<svg viewBox="0 0 16 16" width="16px" height="16px"><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 8z"></path></svg>';
1608
+ let ot = class extends ae {
1510
1609
  constructor() {
1511
1610
  super(...arguments), this.title = "ChatBot";
1512
1611
  }
@@ -1517,31 +1616,31 @@ let ot = class extends ee {
1517
1616
  */
1518
1617
  renderExp() {
1519
1618
  return g` <header class="cb-header" part="header">
1520
- ${ce(
1619
+ ${ee(
1521
1620
  p.setting.logoUrl !== "",
1522
1621
  () => g`<img class="cb-header-logo" part="header-logo" src="${p.setting.logoUrl}" />`,
1523
- () => g`<div class="cb-header-logo" part="header-logo">${Y(p.setting.logoSvg)}</div>`
1622
+ () => g`<div class="cb-header-logo" part="header-logo">${W(p.setting.logoSvg)}</div>`
1524
1623
  )}
1525
1624
  <div class="cb-header-title" part="header-title">${this.title}</div>
1526
- ${ce(
1625
+ ${ee(
1527
1626
  p.alwaysOpen,
1528
1627
  () => g``,
1529
- () => g`<div class="cb-header-close" part="header-close">${Y(uc)}</div>`
1628
+ () => g`<div class="cb-header-close" part="header-close">${W(pc)}</div>`
1530
1629
  )}
1531
1630
  </header>`;
1532
1631
  }
1533
1632
  render() {
1534
1633
  return g` <header class="cb-header" part="header">
1535
- ${ce(
1634
+ ${ee(
1536
1635
  p.setting.logoUrl !== "",
1537
1636
  () => g`<img class="cb-header-img" part="header-logo" src="${p.setting.logoUrl}" />`,
1538
- () => g`<div class="cb-header-logo" part="header-logo">${Y(p.setting.logoSvg)}</div>`
1637
+ () => g`<div class="cb-header-logo" part="header-logo">${W(p.setting.logoSvg)}</div>`
1539
1638
  )}
1540
1639
  <div class="cb-header-title" part="header-title">${this.title}</div>
1541
- ${ce(
1640
+ ${ee(
1542
1641
  p.alwaysOpen,
1543
1642
  () => g`<div></div>`,
1544
- () => g`<div @click=${this._clickCloseHandler} class="cb-header-close" part="header-close">${Y(p.setting.closeSvg)}</div>`
1643
+ () => g`<div @click=${this._clickCloseHandler} class="cb-header-close" part="header-close">${W(p.setting.closeSvg)}</div>`
1545
1644
  )}
1546
1645
  </header>`;
1547
1646
  }
@@ -1568,14 +1667,14 @@ let ot = class extends ee {
1568
1667
  });
1569
1668
  }
1570
1669
  };
1571
- ot.styles = dc;
1572
- ia([
1670
+ ot.styles = fc;
1671
+ na([
1573
1672
  v({ type: String, attribute: "title" })
1574
1673
  ], ot.prototype, "title", 2);
1575
- ot = ia([
1674
+ ot = na([
1576
1675
  J("cb-header")
1577
1676
  ], ot);
1578
- const pc = X`
1677
+ const gc = X`
1579
1678
  ${me}
1580
1679
  .cb-footer {
1581
1680
  line-height: 60px;
@@ -1590,12 +1689,12 @@ const pc = X`
1590
1689
  color: var(--primary-color);
1591
1690
  }
1592
1691
  `;
1593
- var gc = Object.defineProperty, mc = Object.getOwnPropertyDescriptor, yc = (c, e, a, s) => {
1594
- for (var n = s > 1 ? void 0 : s ? mc(e, a) : e, d = c.length - 1, f; d >= 0; d--)
1595
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
1596
- return s && n && gc(e, a, n), n;
1692
+ var mc = Object.defineProperty, yc = Object.getOwnPropertyDescriptor, vc = (c, e, a, n) => {
1693
+ for (var s = n > 1 ? void 0 : n ? yc(e, a) : e, r = c.length - 1, f; r >= 0; r--)
1694
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
1695
+ return n && s && mc(e, a, s), s;
1597
1696
  };
1598
- let Ct = class extends ee {
1697
+ let Ct = class extends ae {
1599
1698
  constructor() {
1600
1699
  super(...arguments), this.year = (/* @__PURE__ */ new Date()).getFullYear();
1601
1700
  }
@@ -1630,11 +1729,11 @@ let Ct = class extends ee {
1630
1729
  `;
1631
1730
  }
1632
1731
  };
1633
- Ct.styles = pc;
1634
- Ct = yc([
1732
+ Ct.styles = gc;
1733
+ Ct = vc([
1635
1734
  J("cb-footer")
1636
1735
  ], Ct);
1637
- const vc = X`
1736
+ const wc = X`
1638
1737
  ${me}
1639
1738
 
1640
1739
  :host {
@@ -1799,17 +1898,17 @@ const vc = X`
1799
1898
  transition: background 0s;
1800
1899
  }
1801
1900
  `;
1802
- var na = { exports: {} };
1901
+ var sa = { exports: {} };
1803
1902
  (function(c, e) {
1804
- (function(a, s) {
1805
- c.exports = s();
1806
- })(ea, function() {
1903
+ (function(a, n) {
1904
+ c.exports = n();
1905
+ })(ta, function() {
1807
1906
  function a(t) {
1808
- var i = function(o, r) {
1907
+ var i = function(o, d) {
1809
1908
  if (typeof o != "object" || !o) return o;
1810
1909
  var l = o[Symbol.toPrimitive];
1811
1910
  if (l !== void 0) {
1812
- var h = l.call(o, r);
1911
+ var h = l.call(o, d);
1813
1912
  if (typeof h != "object") return h;
1814
1913
  throw new TypeError("@@toPrimitive must return a primitive value.");
1815
1914
  }
@@ -1817,64 +1916,64 @@ var na = { exports: {} };
1817
1916
  }(t, "string");
1818
1917
  return typeof i == "symbol" ? i : i + "";
1819
1918
  }
1820
- function s(t) {
1821
- return (s = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(i) {
1919
+ function n(t) {
1920
+ return (n = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(i) {
1822
1921
  return typeof i;
1823
1922
  } : function(i) {
1824
1923
  return i && typeof Symbol == "function" && i.constructor === Symbol && i !== Symbol.prototype ? "symbol" : typeof i;
1825
1924
  })(t);
1826
1925
  }
1827
- function n(t, i) {
1926
+ function s(t, i) {
1828
1927
  if (!(t instanceof i)) throw new TypeError("Cannot call a class as a function");
1829
1928
  }
1830
- function d(t, i) {
1929
+ function r(t, i) {
1831
1930
  for (var o = 0; o < i.length; o++) {
1832
- var r = i[o];
1833
- r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, a(r.key), r);
1931
+ var d = i[o];
1932
+ d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(t, a(d.key), d);
1834
1933
  }
1835
1934
  }
1836
1935
  function f(t, i, o) {
1837
- return i && d(t.prototype, i), Object.defineProperty(t, "prototype", { writable: !1 }), t;
1936
+ return i && r(t.prototype, i), Object.defineProperty(t, "prototype", { writable: !1 }), t;
1838
1937
  }
1839
- var x = Date.now();
1938
+ var w = Date.now();
1840
1939
  function S() {
1841
- var t = {}, i = !0, o = 0, r = arguments.length;
1940
+ var t = {}, i = !0, o = 0, d = arguments.length;
1842
1941
  Object.prototype.toString.call(arguments[0]) === "[object Boolean]" && (i = arguments[0], o++);
1843
1942
  for (var l = function(b) {
1844
1943
  for (var u in b) Object.prototype.hasOwnProperty.call(b, u) && (i && Object.prototype.toString.call(b[u]) === "[object Object]" ? t[u] = S(!0, t[u], b[u]) : t[u] = b[u]);
1845
- }; o < r; o++) {
1944
+ }; o < d; o++) {
1846
1945
  var h = arguments[o];
1847
1946
  l(h);
1848
1947
  }
1849
1948
  return t;
1850
1949
  }
1851
1950
  function _(t, i) {
1852
- if ((R(t) || t === window || t === document) && (t = [t]), We(t) || Ce(t) || (t = [t]), qt(t) != 0) {
1853
- if (We(t) && !Ce(t)) for (var o = t.length, r = 0; r < o && i.call(t[r], t[r], r, t) !== !1; r++) ;
1854
- else if (Ce(t)) {
1855
- for (var l in t) if (W(t, l) && i.call(t[l], t[l], l, t) === !1) break;
1951
+ if ((R(t) || t === window || t === document) && (t = [t]), Ye(t) || Se(t) || (t = [t]), qt(t) != 0) {
1952
+ if (Ye(t) && !Se(t)) for (var o = t.length, d = 0; d < o && i.call(t[d], t[d], d, t) !== !1; d++) ;
1953
+ else if (Se(t)) {
1954
+ for (var l in t) if (Y(t, l) && i.call(t[l], t[l], l, t) === !1) break;
1856
1955
  }
1857
1956
  }
1858
1957
  }
1859
1958
  function K(t) {
1860
- var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, r = t[x] = t[x] || [], l = { all: r, evt: null, found: null };
1861
- return i && o && qt(r) > 0 && _(r, function(h, b) {
1959
+ var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, d = t[w] = t[w] || [], l = { all: d, evt: null, found: null };
1960
+ return i && o && qt(d) > 0 && _(d, function(h, b) {
1862
1961
  if (h.eventName == i && h.fn.toString() == o.toString()) return l.found = !0, l.evt = b, !1;
1863
1962
  }), l;
1864
1963
  }
1865
1964
  function F(t) {
1866
- var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, o = i.onElement, r = i.withCallback, l = i.avoidDuplicate, h = l === void 0 || l, b = i.once, u = b !== void 0 && b, y = i.useCapture, m = y !== void 0 && y, w = arguments.length > 2 ? arguments[2] : void 0, k = o || [];
1965
+ var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, o = i.onElement, d = i.withCallback, l = i.avoidDuplicate, h = l === void 0 || l, b = i.once, u = b !== void 0 && b, y = i.useCapture, m = y !== void 0 && y, x = arguments.length > 2 ? arguments[2] : void 0, k = o || [];
1867
1966
  function M(E) {
1868
- P(r) && r.call(w, E, this), u && M.destroy();
1967
+ P(d) && d.call(x, E, this), u && M.destroy();
1869
1968
  }
1870
1969
  return z(k) && (k = document.querySelectorAll(k)), M.destroy = function() {
1871
1970
  _(k, function(E) {
1872
- var A = K(E, t, M);
1873
- A.found && A.all.splice(A.evt, 1), E.removeEventListener && E.removeEventListener(t, M, m);
1971
+ var I = K(E, t, M);
1972
+ I.found && I.all.splice(I.evt, 1), E.removeEventListener && E.removeEventListener(t, M, m);
1874
1973
  });
1875
1974
  }, _(k, function(E) {
1876
- var A = K(E, t, M);
1877
- (E.addEventListener && h && !A.found || !h) && (E.addEventListener(t, M, m), A.all.push({ eventName: t, fn: M }));
1975
+ var I = K(E, t, M);
1976
+ (E.addEventListener && h && !I.found || !h) && (E.addEventListener(t, M, m), I.all.push({ eventName: t, fn: M }));
1878
1977
  }), M;
1879
1978
  }
1880
1979
  function T(t, i) {
@@ -1900,10 +1999,10 @@ var na = { exports: {} };
1900
1999
  var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", o = arguments.length > 2 && arguments[2] !== void 0 && arguments[2];
1901
2000
  if (!t || i === "") return !1;
1902
2001
  if (i === "none") return P(o) && o(), !1;
1903
- var r = mt(), l = i.split(" ");
2002
+ var d = mt(), l = i.split(" ");
1904
2003
  _(l, function(h) {
1905
2004
  T(t, "g" + h);
1906
- }), F(r, { onElement: t, avoidDuplicate: !1, once: !0, withCallback: function(h, b) {
2005
+ }), F(d, { onElement: t, avoidDuplicate: !1, once: !0, withCallback: function(h, b) {
1907
2006
  _(l, function(u) {
1908
2007
  N(b, "g" + u);
1909
2008
  }), P(o) && o();
@@ -1914,10 +2013,10 @@ var na = { exports: {} };
1914
2013
  if (i === "") return t.style.webkitTransform = "", t.style.MozTransform = "", t.style.msTransform = "", t.style.OTransform = "", t.style.transform = "", !1;
1915
2014
  t.style.webkitTransform = i, t.style.MozTransform = i, t.style.msTransform = i, t.style.OTransform = i, t.style.transform = i;
1916
2015
  }
1917
- function Ee(t) {
2016
+ function Ie(t) {
1918
2017
  t.style.display = "block";
1919
2018
  }
1920
- function Ae(t) {
2019
+ function Le(t) {
1921
2020
  t.style.display = "none";
1922
2021
  }
1923
2022
  function ne(t) {
@@ -1932,7 +2031,7 @@ var na = { exports: {} };
1932
2031
  var t, i = document.createElement("fakeelement"), o = { animation: "animationend", OAnimation: "oAnimationEnd", MozAnimation: "animationend", WebkitAnimation: "webkitAnimationEnd" };
1933
2032
  for (t in o) if (i.style[t] !== void 0) return o[t];
1934
2033
  }
1935
- function ze(t, i, o, r) {
2034
+ function Be(t, i, o, d) {
1936
2035
  if (t()) i();
1937
2036
  else {
1938
2037
  var l;
@@ -1943,18 +2042,18 @@ var na = { exports: {} };
1943
2042
  }
1944
2043
  }
1945
2044
  function Qe(t, i, o) {
1946
- if (oe(t)) console.error("Inject assets error");
2045
+ if (re(t)) console.error("Inject assets error");
1947
2046
  else if (P(i) && (o = i, i = !1), z(i) && i in window) P(o) && o();
1948
2047
  else {
1949
- var r;
2048
+ var d;
1950
2049
  if (t.indexOf(".css") !== -1) {
1951
- if ((r = document.querySelectorAll('link[href="' + t + '"]')) && r.length > 0) return void (P(o) && o());
2050
+ if ((d = document.querySelectorAll('link[href="' + t + '"]')) && d.length > 0) return void (P(o) && o());
1952
2051
  var l = document.getElementsByTagName("head")[0], h = l.querySelectorAll('link[rel="stylesheet"]'), b = document.createElement("link");
1953
2052
  return b.rel = "stylesheet", b.type = "text/css", b.href = t, b.media = "all", h ? l.insertBefore(b, h[0]) : l.appendChild(b), void (P(o) && o());
1954
2053
  }
1955
- if ((r = document.querySelectorAll('script[src="' + t + '"]')) && r.length > 0) {
2054
+ if ((d = document.querySelectorAll('script[src="' + t + '"]')) && d.length > 0) {
1956
2055
  if (P(o)) {
1957
- if (z(i)) return ze(function() {
2056
+ if (z(i)) return Be(function() {
1958
2057
  return window[i] !== void 0;
1959
2058
  }, function() {
1960
2059
  o();
@@ -1965,7 +2064,7 @@ var na = { exports: {} };
1965
2064
  var u = document.createElement("script");
1966
2065
  u.type = "text/javascript", u.src = t, u.onload = function() {
1967
2066
  if (P(o)) {
1968
- if (z(i)) return ze(function() {
2067
+ if (z(i)) return Be(function() {
1969
2068
  return window[i] !== void 0;
1970
2069
  }, function() {
1971
2070
  o();
@@ -1988,26 +2087,26 @@ var na = { exports: {} };
1988
2087
  function R(t) {
1989
2088
  return !(!t || !t.nodeType || t.nodeType != 1);
1990
2089
  }
1991
- function Ie(t) {
2090
+ function qe(t) {
1992
2091
  return Array.isArray(t);
1993
2092
  }
1994
- function We(t) {
2093
+ function Ye(t) {
1995
2094
  return t && t.length && isFinite(t.length);
1996
2095
  }
1997
- function Ce(t) {
1998
- return s(t) === "object" && t != null && !P(t) && !Ie(t);
2096
+ function Se(t) {
2097
+ return n(t) === "object" && t != null && !P(t) && !qe(t);
1999
2098
  }
2000
- function oe(t) {
2099
+ function re(t) {
2001
2100
  return t == null;
2002
2101
  }
2003
- function W(t, i) {
2102
+ function Y(t, i) {
2004
2103
  return t !== null && hasOwnProperty.call(t, i);
2005
2104
  }
2006
2105
  function qt(t) {
2007
- if (Ce(t)) {
2106
+ if (Se(t)) {
2008
2107
  if (t.keys) return t.keys().length;
2009
2108
  var i = 0;
2010
- for (var o in t) W(t, o) && i++;
2109
+ for (var o in t) Y(t, o) && i++;
2011
2110
  return i;
2012
2111
  }
2013
2112
  return t.length;
@@ -2024,20 +2123,20 @@ var na = { exports: {} };
2024
2123
  _(i, function(u) {
2025
2124
  o.push(u.getAttribute("data-taborder"));
2026
2125
  });
2027
- var r = Math.max.apply(Math, o.map(function(u) {
2126
+ var d = Math.max.apply(Math, o.map(function(u) {
2028
2127
  return parseInt(u);
2029
2128
  })), l = t < 0 ? 1 : t + 1;
2030
- l > r && (l = "1");
2129
+ l > d && (l = "1");
2031
2130
  var h = o.filter(function(u) {
2032
2131
  return u >= parseInt(l);
2033
2132
  }), b = h.sort()[0];
2034
2133
  return document.querySelector('.gbtn[data-taborder="'.concat(b, '"]'));
2035
2134
  }
2036
- function ya(t) {
2135
+ function va(t) {
2037
2136
  if (t.events.hasOwnProperty("keyboard")) return !1;
2038
2137
  t.events.keyboard = F("keydown", { onElement: window, withCallback: function(i, o) {
2039
- var r = (i = i || window.event).keyCode;
2040
- if (r == 9) {
2138
+ var d = (i = i || window.event).keyCode;
2139
+ if (d == 9) {
2041
2140
  var l = document.querySelector(".gbtn.focused");
2042
2141
  if (!l) {
2043
2142
  var h = !(!document.activeElement || !document.activeElement.nodeName) && document.activeElement.nodeName.toLocaleLowerCase();
@@ -2053,20 +2152,20 @@ var na = { exports: {} };
2053
2152
  var y = Ot(l.getAttribute("data-taborder"));
2054
2153
  N(l, "focused"), y && (y.focus(), T(y, "focused"));
2055
2154
  }
2056
- r == 39 && t.nextSlide(), r == 37 && t.prevSlide(), r == 27 && t.close();
2155
+ d == 39 && t.nextSlide(), d == 37 && t.prevSlide(), d == 27 && t.close();
2057
2156
  } });
2058
2157
  }
2059
- var va = f(function t(i, o) {
2060
- var r = this, l = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
2061
- if (n(this, t), this.img = i, this.slide = o, this.onclose = l, this.img.setZoomEvents) return !1;
2158
+ var wa = f(function t(i, o) {
2159
+ var d = this, l = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
2160
+ if (s(this, t), this.img = i, this.slide = o, this.onclose = l, this.img.setZoomEvents) return !1;
2062
2161
  this.active = !1, this.zoomedIn = !1, this.dragging = !1, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.img.addEventListener("mousedown", function(h) {
2063
- return r.dragStart(h);
2162
+ return d.dragStart(h);
2064
2163
  }, !1), this.img.addEventListener("mouseup", function(h) {
2065
- return r.dragEnd(h);
2164
+ return d.dragEnd(h);
2066
2165
  }, !1), this.img.addEventListener("mousemove", function(h) {
2067
- return r.drag(h);
2166
+ return d.drag(h);
2068
2167
  }, !1), this.img.addEventListener("click", function(h) {
2069
- return r.slide.classList.contains("dragging-nav") ? (r.zoomOut(), !1) : r.zoomedIn ? void (r.zoomedIn && !r.dragging && r.zoomOut()) : r.zoomIn();
2168
+ return d.slide.classList.contains("dragging-nav") ? (d.zoomOut(), !1) : d.zoomedIn ? void (d.zoomedIn && !d.dragging && d.zoomOut()) : d.zoomIn();
2070
2169
  }, !1), this.img.setZoomEvents = !0;
2071
2170
  }, [{ key: "zoomIn", value: function() {
2072
2171
  var t = this.widowWidth();
@@ -2100,9 +2199,9 @@ var na = { exports: {} };
2100
2199
  return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
2101
2200
  } }]), Pt = f(function t() {
2102
2201
  var i = this, o = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
2103
- n(this, t);
2104
- var r = o.dragEl, l = o.toleranceX, h = l === void 0 ? 40 : l, b = o.toleranceY, u = b === void 0 ? 65 : b, y = o.slide, m = y === void 0 ? null : y, w = o.instance, k = w === void 0 ? null : w;
2105
- this.el = r, this.active = !1, this.dragging = !1, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.direction = null, this.lastDirection = null, this.toleranceX = h, this.toleranceY = u, this.toleranceReached = !1, this.dragContainer = this.el, this.slide = m, this.instance = k, this.el.addEventListener("mousedown", function(M) {
2202
+ s(this, t);
2203
+ var d = o.dragEl, l = o.toleranceX, h = l === void 0 ? 40 : l, b = o.toleranceY, u = b === void 0 ? 65 : b, y = o.slide, m = y === void 0 ? null : y, x = o.instance, k = x === void 0 ? null : x;
2204
+ this.el = d, this.active = !1, this.dragging = !1, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.direction = null, this.lastDirection = null, this.toleranceX = h, this.toleranceY = u, this.toleranceReached = !1, this.dragContainer = this.el, this.slide = m, this.instance = k, this.el.addEventListener("mousedown", function(M) {
2106
2205
  return i.dragStart(M);
2107
2206
  }, !1), this.el.addEventListener("mouseup", function(M) {
2108
2207
  return i.dragEnd(M);
@@ -2127,8 +2226,8 @@ var na = { exports: {} };
2127
2226
  var i = Math.abs(this.currentX), o = Math.abs(this.currentY);
2128
2227
  if (i > 0 && i >= Math.abs(this.currentY) && (!this.lastDirection || this.lastDirection == "x")) {
2129
2228
  this.yOffset = 0, this.lastDirection = "x", this.setTranslate(this.dragContainer, this.currentX, 0);
2130
- var r = this.shouldChange();
2131
- if (!this.instance.settings.dragAutoSnap && r && (this.doSlideChange = r), this.instance.settings.dragAutoSnap && r) return this.instance.preventOutsideClick = !0, this.toleranceReached = !0, this.active = !1, this.instance.preventOutsideClick = !0, this.dragEnd(null), r == "right" && this.instance.prevSlide(), void (r == "left" && this.instance.nextSlide());
2229
+ var d = this.shouldChange();
2230
+ if (!this.instance.settings.dragAutoSnap && d && (this.doSlideChange = d), this.instance.settings.dragAutoSnap && d) return this.instance.preventOutsideClick = !0, this.toleranceReached = !0, this.active = !1, this.instance.preventOutsideClick = !0, this.dragEnd(null), d == "right" && this.instance.prevSlide(), void (d == "left" && this.instance.nextSlide());
2132
2231
  }
2133
2232
  if (this.toleranceY > 0 && o > 0 && o >= i && (!this.lastDirection || this.lastDirection == "y")) {
2134
2233
  this.xOffset = 0, this.lastDirection = "y", this.setTranslate(this.dragContainer, 0, this.currentY);
@@ -2147,33 +2246,33 @@ var na = { exports: {} };
2147
2246
  var t = !1;
2148
2247
  return Math.abs(this.currentY) >= this.toleranceY && (t = !0), t;
2149
2248
  } }, { key: "setTranslate", value: function(t, i, o) {
2150
- var r = arguments.length > 3 && arguments[3] !== void 0 && arguments[3];
2151
- t.style.transition = r ? "all .2s ease" : "", t.style.transform = "translate3d(".concat(i, "px, ").concat(o, "px, 0)");
2249
+ var d = arguments.length > 3 && arguments[3] !== void 0 && arguments[3];
2250
+ t.style.transition = d ? "all .2s ease" : "", t.style.transform = "translate3d(".concat(i, "px, ").concat(o, "px, 0)");
2152
2251
  } }]);
2153
- function wa(t, i, o, r) {
2252
+ function xa(t, i, o, d) {
2154
2253
  var l = t.querySelector(".gslide-media"), h = new Image(), b = "gSlideTitle_" + o, u = "gSlideDesc_" + o;
2155
2254
  h.addEventListener("load", function() {
2156
- P(r) && r();
2157
- }, !1), h.src = i.href, i.sizes != "" && i.srcset != "" && (h.sizes = i.sizes, h.srcset = i.srcset), h.alt = "", oe(i.alt) || i.alt === "" || (h.alt = i.alt), i.title !== "" && h.setAttribute("aria-labelledby", b), i.description !== "" && h.setAttribute("aria-describedby", u), i.hasOwnProperty("_hasCustomWidth") && i._hasCustomWidth && (h.style.width = i.width), i.hasOwnProperty("_hasCustomHeight") && i._hasCustomHeight && (h.style.height = i.height), l.insertBefore(h, l.firstChild);
2255
+ P(d) && d();
2256
+ }, !1), h.src = i.href, i.sizes != "" && i.srcset != "" && (h.sizes = i.sizes, h.srcset = i.srcset), h.alt = "", re(i.alt) || i.alt === "" || (h.alt = i.alt), i.title !== "" && h.setAttribute("aria-labelledby", b), i.description !== "" && h.setAttribute("aria-describedby", u), i.hasOwnProperty("_hasCustomWidth") && i._hasCustomWidth && (h.style.width = i.width), i.hasOwnProperty("_hasCustomHeight") && i._hasCustomHeight && (h.style.height = i.height), l.insertBefore(h, l.firstChild);
2158
2257
  }
2159
- function xa(t, i, o, r) {
2258
+ function ka(t, i, o, d) {
2160
2259
  var l = this, h = t.querySelector(".ginner-container"), b = "gvideo" + o, u = t.querySelector(".gslide-media"), y = this.getAllPlayers();
2161
2260
  T(h, "gvideo-container"), u.insertBefore(ne('<div class="gvideo-wrapper"></div>'), u.firstChild);
2162
2261
  var m = t.querySelector(".gvideo-wrapper");
2163
2262
  Qe(this.settings.plyr.css, "Plyr");
2164
- var w = i.href, k = i == null ? void 0 : i.videoProvider, M = !1;
2263
+ var x = i.href, k = i == null ? void 0 : i.videoProvider, M = !1;
2165
2264
  u.style.maxWidth = i.width, Qe(this.settings.plyr.js, "Plyr", function() {
2166
- if (!k && w.match(/vimeo\.com\/([0-9]*)/) && (k = "vimeo"), !k && (w.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || w.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || w.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || w.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/)) && (k = "youtube"), k === "local" || !k) {
2265
+ if (!k && x.match(/vimeo\.com\/([0-9]*)/) && (k = "vimeo"), !k && (x.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || x.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || x.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || x.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/)) && (k = "youtube"), k === "local" || !k) {
2167
2266
  k = "local";
2168
2267
  var E = '<video id="' + b + '" ';
2169
- E += 'style="background:#000; max-width: '.concat(i.width, ';" '), E += 'preload="metadata" ', E += 'x-webkit-airplay="allow" ', E += "playsinline ", E += "controls ", E += 'class="gvideo-local">', E += '<source src="'.concat(w, '">'), M = ne(E += "</video>");
2268
+ E += 'style="background:#000; max-width: '.concat(i.width, ';" '), E += 'preload="metadata" ', E += 'x-webkit-airplay="allow" ', E += "playsinline ", E += "controls ", E += 'class="gvideo-local">', E += '<source src="'.concat(x, '">'), M = ne(E += "</video>");
2170
2269
  }
2171
- var A = M || ne('<div id="'.concat(b, '" data-plyr-provider="').concat(k, '" data-plyr-embed-id="').concat(w, '"></div>'));
2172
- T(m, "".concat(k, "-video gvideo")), m.appendChild(A), m.setAttribute("data-id", b), m.setAttribute("data-index", o);
2173
- var U = W(l.settings.plyr, "config") ? l.settings.plyr.config : {}, fe = new Plyr("#" + b, U);
2174
- fe.on("ready", function(re) {
2175
- y[b] = re.detail.plyr, P(r) && r();
2176
- }), ze(function() {
2270
+ var I = M || ne('<div id="'.concat(b, '" data-plyr-provider="').concat(k, '" data-plyr-embed-id="').concat(x, '"></div>'));
2271
+ T(m, "".concat(k, "-video gvideo")), m.appendChild(I), m.setAttribute("data-id", b), m.setAttribute("data-index", o);
2272
+ var U = Y(l.settings.plyr, "config") ? l.settings.plyr.config : {}, fe = new Plyr("#" + b, U);
2273
+ fe.on("ready", function(de) {
2274
+ y[b] = de.detail.plyr, P(d) && d();
2275
+ }), Be(function() {
2177
2276
  return t.querySelector("iframe") && t.querySelector("iframe").dataset.ready == "true";
2178
2277
  }, function() {
2179
2278
  l.resize(t);
@@ -2184,128 +2283,128 @@ var na = { exports: {} };
2184
2283
  var i = $(t.target, ".gslide-media");
2185
2284
  t.type === "enterfullscreen" && T(i, "fullscreen"), t.type === "exitfullscreen" && N(i, "fullscreen");
2186
2285
  }
2187
- function ka(t, i, o, r) {
2188
- var l, h = this, b = t.querySelector(".gslide-media"), u = !(!W(i, "href") || !i.href) && i.href.split("#").pop().trim(), y = !(!W(i, "content") || !i.content) && i.content;
2286
+ function Ca(t, i, o, d) {
2287
+ var l, h = this, b = t.querySelector(".gslide-media"), u = !(!Y(i, "href") || !i.href) && i.href.split("#").pop().trim(), y = !(!Y(i, "content") || !i.content) && i.content;
2189
2288
  if (y && (z(y) && (l = ne('<div class="ginlined-content">'.concat(y, "</div>"))), R(y))) {
2190
2289
  y.style.display == "none" && (y.style.display = "block");
2191
2290
  var m = document.createElement("div");
2192
2291
  m.className = "ginlined-content", m.appendChild(y), l = m;
2193
2292
  }
2194
2293
  if (u) {
2195
- var w = document.getElementById(u);
2196
- if (!w) return !1;
2197
- var k = w.cloneNode(!0);
2294
+ var x = document.getElementById(u);
2295
+ if (!x) return !1;
2296
+ var k = x.cloneNode(!0);
2198
2297
  k.style.height = i.height, k.style.maxWidth = i.width, T(k, "ginlined-content"), l = k;
2199
2298
  }
2200
2299
  if (!l) return console.error("Unable to append inline slide content", i), !1;
2201
2300
  b.style.height = i.height, b.style.width = i.width, b.appendChild(l), this.events["inlineclose" + u] = F("click", { onElement: b.querySelectorAll(".gtrigger-close"), withCallback: function(M) {
2202
2301
  M.preventDefault(), h.close();
2203
- } }), P(r) && r();
2302
+ } }), P(d) && d();
2204
2303
  }
2205
- function Ca(t, i, o, r) {
2304
+ function Sa(t, i, o, d) {
2206
2305
  var l = t.querySelector(".gslide-media"), h = function(b) {
2207
- var u = b.url, y = b.allow, m = b.callback, w = b.appendTo, k = document.createElement("iframe");
2306
+ var u = b.url, y = b.allow, m = b.callback, x = b.appendTo, k = document.createElement("iframe");
2208
2307
  return k.className = "vimeo-video gvideo", k.src = u, k.style.width = "100%", k.style.height = "100%", y && k.setAttribute("allow", y), k.onload = function() {
2209
2308
  k.onload = null, T(k, "node-ready"), P(m) && m();
2210
- }, w && w.appendChild(k), k;
2211
- }({ url: i.href, callback: r });
2309
+ }, x && x.appendChild(k), k;
2310
+ }({ url: i.href, callback: d });
2212
2311
  l.parentNode.style.maxWidth = i.width, l.parentNode.style.height = i.height, l.appendChild(h);
2213
2312
  }
2214
- var Sa = f(function t() {
2313
+ var _a = f(function t() {
2215
2314
  var i = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
2216
- n(this, t), this.defaults = { href: "", sizes: "", srcset: "", title: "", type: "", videoProvider: "", description: "", alt: "", descPosition: "bottom", effect: "", width: "", height: "", content: !1, zoomable: !0, draggable: !0 }, Ce(i) && (this.defaults = S(this.defaults, i));
2315
+ s(this, t), this.defaults = { href: "", sizes: "", srcset: "", title: "", type: "", videoProvider: "", description: "", alt: "", descPosition: "bottom", effect: "", width: "", height: "", content: !1, zoomable: !0, draggable: !0 }, Se(i) && (this.defaults = S(this.defaults, i));
2217
2316
  }, [{ key: "sourceType", value: function(t) {
2218
2317
  var i = t;
2219
2318
  return (t = t.toLowerCase()).match(/\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/) !== null ? "image" : t.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || t.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || t.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || t.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/) || t.match(/vimeo\.com\/([0-9]*)/) || t.match(/\.(mp4|ogg|webm|mov)/) !== null ? "video" : t.match(/\.(mp3|wav|wma|aac|ogg)/) !== null ? "audio" : t.indexOf("#") > -1 && i.split("#").pop().trim() !== "" ? "inline" : t.indexOf("goajax=true") > -1 ? "ajax" : "external";
2220
2319
  } }, { key: "parseConfig", value: function(t, i) {
2221
- var o = this, r = S({ descPosition: i.descPosition }, this.defaults);
2222
- if (Ce(t) && !R(t)) {
2223
- W(t, "type") || (W(t, "content") && t.content ? t.type = "inline" : W(t, "href") && (t.type = this.sourceType(t.href)));
2224
- var l = S(r, t);
2320
+ var o = this, d = S({ descPosition: i.descPosition }, this.defaults);
2321
+ if (Se(t) && !R(t)) {
2322
+ Y(t, "type") || (Y(t, "content") && t.content ? t.type = "inline" : Y(t, "href") && (t.type = this.sourceType(t.href)));
2323
+ var l = S(d, t);
2225
2324
  return this.setSize(l, i), l;
2226
2325
  }
2227
2326
  var h = "", b = t.getAttribute("data-glightbox"), u = t.nodeName.toLowerCase();
2228
- if (u === "a" && (h = t.href), u === "img" && (h = t.src, r.alt = t.alt), r.href = h, _(r, function(E, A) {
2229
- W(i, A) && A !== "width" && (r[A] = i[A]);
2230
- var U = t.dataset[A];
2231
- oe(U) || (r[A] = o.sanitizeValue(U));
2232
- }), r.content && (r.type = "inline"), !r.type && h && (r.type = this.sourceType(h)), oe(b)) {
2233
- if (!r.title && u == "a") {
2327
+ if (u === "a" && (h = t.href), u === "img" && (h = t.src, d.alt = t.alt), d.href = h, _(d, function(E, I) {
2328
+ Y(i, I) && I !== "width" && (d[I] = i[I]);
2329
+ var U = t.dataset[I];
2330
+ re(U) || (d[I] = o.sanitizeValue(U));
2331
+ }), d.content && (d.type = "inline"), !d.type && h && (d.type = this.sourceType(h)), re(b)) {
2332
+ if (!d.title && u == "a") {
2234
2333
  var y = t.title;
2235
- oe(y) || y === "" || (r.title = y);
2334
+ re(y) || y === "" || (d.title = y);
2236
2335
  }
2237
- if (!r.title && u == "img") {
2336
+ if (!d.title && u == "img") {
2238
2337
  var m = t.alt;
2239
- oe(m) || m === "" || (r.title = m);
2338
+ re(m) || m === "" || (d.title = m);
2240
2339
  }
2241
2340
  } else {
2242
- var w = [];
2243
- _(r, function(E, A) {
2244
- w.push(";\\s?" + A);
2245
- }), w = w.join("\\s?:|"), b.trim() !== "" && _(r, function(E, A) {
2246
- var U = b, fe = new RegExp("s?" + A + "s?:s?(.*?)(" + w + "s?:|$)"), re = U.match(fe);
2247
- if (re && re.length && re[1]) {
2248
- var G = re[1].trim().replace(/;\s*$/, "");
2249
- r[A] = o.sanitizeValue(G);
2341
+ var x = [];
2342
+ _(d, function(E, I) {
2343
+ x.push(";\\s?" + I);
2344
+ }), x = x.join("\\s?:|"), b.trim() !== "" && _(d, function(E, I) {
2345
+ var U = b, fe = new RegExp("s?" + I + "s?:s?(.*?)(" + x + "s?:|$)"), de = U.match(fe);
2346
+ if (de && de.length && de[1]) {
2347
+ var G = de[1].trim().replace(/;\s*$/, "");
2348
+ d[I] = o.sanitizeValue(G);
2250
2349
  }
2251
2350
  });
2252
2351
  }
2253
- if (r.description && r.description.substring(0, 1) === ".") {
2352
+ if (d.description && d.description.substring(0, 1) === ".") {
2254
2353
  var k;
2255
2354
  try {
2256
- k = document.querySelector(r.description).innerHTML;
2355
+ k = document.querySelector(d.description).innerHTML;
2257
2356
  } catch (E) {
2258
2357
  if (!(E instanceof DOMException)) throw E;
2259
2358
  }
2260
- k && (r.description = k);
2359
+ k && (d.description = k);
2261
2360
  }
2262
- if (!r.description) {
2361
+ if (!d.description) {
2263
2362
  var M = t.querySelector(".glightbox-desc");
2264
- M && (r.description = M.innerHTML);
2363
+ M && (d.description = M.innerHTML);
2265
2364
  }
2266
- return this.setSize(r, i, t), this.slideConfig = r, r;
2365
+ return this.setSize(d, i, t), this.slideConfig = d, d;
2267
2366
  } }, { key: "setSize", value: function(t, i) {
2268
- var o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, r = t.type == "video" ? this.checkSize(i.videosWidth) : this.checkSize(i.width), l = this.checkSize(i.height);
2269
- return t.width = W(t, "width") && t.width !== "" ? this.checkSize(t.width) : r, t.height = W(t, "height") && t.height !== "" ? this.checkSize(t.height) : l, o && t.type == "image" && (t._hasCustomWidth = !!o.dataset.width, t._hasCustomHeight = !!o.dataset.height), t;
2367
+ var o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, d = t.type == "video" ? this.checkSize(i.videosWidth) : this.checkSize(i.width), l = this.checkSize(i.height);
2368
+ return t.width = Y(t, "width") && t.width !== "" ? this.checkSize(t.width) : d, t.height = Y(t, "height") && t.height !== "" ? this.checkSize(t.height) : l, o && t.type == "image" && (t._hasCustomWidth = !!o.dataset.width, t._hasCustomHeight = !!o.dataset.height), t;
2270
2369
  } }, { key: "checkSize", value: function(t) {
2271
2370
  return et(t) ? "".concat(t, "px") : t;
2272
2371
  } }, { key: "sanitizeValue", value: function(t) {
2273
2372
  return t !== "true" && t !== "false" ? t : t === "true";
2274
- } }]), tt = f(function t(i, o, r) {
2275
- n(this, t), this.element = i, this.instance = o, this.index = r;
2373
+ } }]), tt = f(function t(i, o, d) {
2374
+ s(this, t), this.element = i, this.instance = o, this.index = d;
2276
2375
  }, [{ key: "setContent", value: function() {
2277
2376
  var t = this, i = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null, o = arguments.length > 1 && arguments[1] !== void 0 && arguments[1];
2278
2377
  if (Q(i, "loaded")) return !1;
2279
- var r = this.instance.settings, l = this.slideConfig, h = ve();
2280
- P(r.beforeSlideLoad) && r.beforeSlideLoad({ index: this.index, slide: i, player: !1 });
2281
- var b = l.type, u = l.descPosition, y = i.querySelector(".gslide-media"), m = i.querySelector(".gslide-title"), w = i.querySelector(".gslide-desc"), k = i.querySelector(".gdesc-inner"), M = o, E = "gSlideTitle_" + this.index, A = "gSlideDesc_" + this.index;
2282
- if (P(r.afterSlideLoad) && (M = function() {
2283
- P(o) && o(), r.afterSlideLoad({ index: t.index, slide: i, player: t.instance.getSlidePlayerInstance(t.index) });
2284
- }), l.title == "" && l.description == "" ? k && k.parentNode.parentNode.removeChild(k.parentNode) : (m && l.title !== "" ? (m.id = E, m.innerHTML = l.title) : m.parentNode.removeChild(m), w && l.description !== "" ? (w.id = A, h && r.moreLength > 0 ? (l.smallDescription = this.slideShortDesc(l.description, r.moreLength, r.moreText), w.innerHTML = l.smallDescription, this.descriptionEvents(w, l)) : w.innerHTML = l.description) : w.parentNode.removeChild(w), T(y.parentNode, "desc-".concat(u)), T(k.parentNode, "description-".concat(u))), T(y, "gslide-".concat(b)), T(i, "loaded"), b !== "video") {
2285
- if (b !== "external") return b === "inline" ? (ka.apply(this.instance, [i, l, this.index, M]), void (l.draggable && new Pt({ dragEl: i.querySelector(".gslide-inline"), toleranceX: r.dragToleranceX, toleranceY: r.dragToleranceY, slide: i, instance: this.instance }))) : void (b !== "image" ? P(M) && M() : wa(i, l, this.index, function() {
2378
+ var d = this.instance.settings, l = this.slideConfig, h = ve();
2379
+ P(d.beforeSlideLoad) && d.beforeSlideLoad({ index: this.index, slide: i, player: !1 });
2380
+ var b = l.type, u = l.descPosition, y = i.querySelector(".gslide-media"), m = i.querySelector(".gslide-title"), x = i.querySelector(".gslide-desc"), k = i.querySelector(".gdesc-inner"), M = o, E = "gSlideTitle_" + this.index, I = "gSlideDesc_" + this.index;
2381
+ if (P(d.afterSlideLoad) && (M = function() {
2382
+ P(o) && o(), d.afterSlideLoad({ index: t.index, slide: i, player: t.instance.getSlidePlayerInstance(t.index) });
2383
+ }), l.title == "" && l.description == "" ? k && k.parentNode.parentNode.removeChild(k.parentNode) : (m && l.title !== "" ? (m.id = E, m.innerHTML = l.title) : m.parentNode.removeChild(m), x && l.description !== "" ? (x.id = I, h && d.moreLength > 0 ? (l.smallDescription = this.slideShortDesc(l.description, d.moreLength, d.moreText), x.innerHTML = l.smallDescription, this.descriptionEvents(x, l)) : x.innerHTML = l.description) : x.parentNode.removeChild(x), T(y.parentNode, "desc-".concat(u)), T(k.parentNode, "description-".concat(u))), T(y, "gslide-".concat(b)), T(i, "loaded"), b !== "video") {
2384
+ if (b !== "external") return b === "inline" ? (Ca.apply(this.instance, [i, l, this.index, M]), void (l.draggable && new Pt({ dragEl: i.querySelector(".gslide-inline"), toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: i, instance: this.instance }))) : void (b !== "image" ? P(M) && M() : xa(i, l, this.index, function() {
2286
2385
  var U = i.querySelector("img");
2287
- l.draggable && new Pt({ dragEl: U, toleranceX: r.dragToleranceX, toleranceY: r.dragToleranceY, slide: i, instance: t.instance }), l.zoomable && U.naturalWidth > U.offsetWidth && (T(U, "zoomable"), new va(U, i, function() {
2386
+ l.draggable && new Pt({ dragEl: U, toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: i, instance: t.instance }), l.zoomable && U.naturalWidth > U.offsetWidth && (T(U, "zoomable"), new wa(U, i, function() {
2288
2387
  t.instance.resize();
2289
2388
  })), P(M) && M();
2290
2389
  }));
2291
- Ca.apply(this, [i, l, this.index, M]);
2292
- } else xa.apply(this.instance, [i, l, this.index, M]);
2390
+ Sa.apply(this, [i, l, this.index, M]);
2391
+ } else ka.apply(this.instance, [i, l, this.index, M]);
2293
2392
  } }, { key: "slideShortDesc", value: function(t) {
2294
- var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 50, o = arguments.length > 2 && arguments[2] !== void 0 && arguments[2], r = document.createElement("div");
2295
- r.innerHTML = t;
2296
- var l = r.innerText, h = o;
2393
+ var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 50, o = arguments.length > 2 && arguments[2] !== void 0 && arguments[2], d = document.createElement("div");
2394
+ d.innerHTML = t;
2395
+ var l = d.innerText, h = o;
2297
2396
  if ((t = l.trim()).length <= i) return t;
2298
2397
  var b = t.substr(0, i - 1);
2299
- return h ? (r = null, b + '... <a href="#" class="desc-more">' + o + "</a>") : b;
2398
+ return h ? (d = null, b + '... <a href="#" class="desc-more">' + o + "</a>") : b;
2300
2399
  } }, { key: "descriptionEvents", value: function(t, i) {
2301
- var o = this, r = t.querySelector(".desc-more");
2302
- if (!r) return !1;
2303
- F("click", { onElement: r, withCallback: function(l, h) {
2400
+ var o = this, d = t.querySelector(".desc-more");
2401
+ if (!d) return !1;
2402
+ F("click", { onElement: d, withCallback: function(l, h) {
2304
2403
  l.preventDefault();
2305
2404
  var b = document.body, u = $(h, ".gslide-desc");
2306
2405
  if (!u) return !1;
2307
2406
  u.innerHTML = i.description, T(b, "gdesc-open");
2308
- var y = F("click", { onElement: [b, $(u, ".gslide-description")], withCallback: function(m, w) {
2407
+ var y = F("click", { onElement: [b, $(u, ".gslide-description")], withCallback: function(m, x) {
2309
2408
  m.target.nodeName.toLowerCase() !== "a" && (N(b, "gdesc-open"), T(b, "gdesc-closed"), u.innerHTML = i.smallDescription, o.descriptionEvents(u, i), setTimeout(function() {
2310
2409
  N(b, "gdesc-closed");
2311
2410
  }, 400), y.destroy());
@@ -2315,27 +2414,27 @@ var na = { exports: {} };
2315
2414
  return ne(this.instance.settings.slideHTML);
2316
2415
  } }, { key: "getConfig", value: function() {
2317
2416
  R(this.element) || this.element.hasOwnProperty("draggable") || (this.element.draggable = this.instance.settings.draggable);
2318
- var t = new Sa(this.instance.settings.slideExtraAttributes);
2417
+ var t = new _a(this.instance.settings.slideExtraAttributes);
2319
2418
  return this.slideConfig = t.parseConfig(this.element, this.instance.settings), this.slideConfig;
2320
2419
  } }]);
2321
2420
  function at(t) {
2322
2421
  return Math.sqrt(t.x * t.x + t.y * t.y);
2323
2422
  }
2324
- function _a(t, i) {
2325
- var o = function(r, l) {
2326
- var h = at(r) * at(l);
2423
+ function $a(t, i) {
2424
+ var o = function(d, l) {
2425
+ var h = at(d) * at(l);
2327
2426
  if (h === 0) return 0;
2328
2427
  var b = function(u, y) {
2329
2428
  return u.x * y.x + u.y * y.y;
2330
- }(r, l) / h;
2429
+ }(d, l) / h;
2331
2430
  return b > 1 && (b = 1), Math.acos(b);
2332
2431
  }(t, i);
2333
- return function(r, l) {
2334
- return r.x * l.y - l.x * r.y;
2432
+ return function(d, l) {
2433
+ return d.x * l.y - l.x * d.y;
2335
2434
  }(t, i) > 0 && (o *= -1), 180 * o / Math.PI;
2336
2435
  }
2337
- var $a = f(function t(i) {
2338
- n(this, t), this.handlers = [], this.el = i;
2436
+ var Ma = f(function t(i) {
2437
+ s(this, t), this.handlers = [], this.el = i;
2339
2438
  }, [{ key: "add", value: function(t) {
2340
2439
  this.handlers.push(t);
2341
2440
  } }, { key: "del", value: function(t) {
@@ -2347,15 +2446,15 @@ var na = { exports: {} };
2347
2446
  typeof o == "function" && o.apply(this.el, arguments);
2348
2447
  }
2349
2448
  } }]);
2350
- function te(t, i) {
2351
- var o = new $a(t);
2449
+ function ce(t, i) {
2450
+ var o = new Ma(t);
2352
2451
  return o.add(i), o;
2353
2452
  }
2354
- var Ma = f(function t(i, o) {
2355
- n(this, t), this.element = typeof i == "string" ? document.querySelector(i) : i, this.start = this.start.bind(this), this.move = this.move.bind(this), this.end = this.end.bind(this), this.cancel = this.cancel.bind(this), this.element.addEventListener("touchstart", this.start, !1), this.element.addEventListener("touchmove", this.move, !1), this.element.addEventListener("touchend", this.end, !1), this.element.addEventListener("touchcancel", this.cancel, !1), this.preV = { x: null, y: null }, this.pinchStartLen = null, this.zoom = 1, this.isDoubleTap = !1;
2356
- var r = function() {
2453
+ var Ta = f(function t(i, o) {
2454
+ s(this, t), this.element = typeof i == "string" ? document.querySelector(i) : i, this.start = this.start.bind(this), this.move = this.move.bind(this), this.end = this.end.bind(this), this.cancel = this.cancel.bind(this), this.element.addEventListener("touchstart", this.start, !1), this.element.addEventListener("touchmove", this.move, !1), this.element.addEventListener("touchend", this.end, !1), this.element.addEventListener("touchcancel", this.cancel, !1), this.preV = { x: null, y: null }, this.pinchStartLen = null, this.zoom = 1, this.isDoubleTap = !1;
2455
+ var d = function() {
2357
2456
  };
2358
- this.rotate = te(this.element, o.rotate || r), this.touchStart = te(this.element, o.touchStart || r), this.multipointStart = te(this.element, o.multipointStart || r), this.multipointEnd = te(this.element, o.multipointEnd || r), this.pinch = te(this.element, o.pinch || r), this.swipe = te(this.element, o.swipe || r), this.tap = te(this.element, o.tap || r), this.doubleTap = te(this.element, o.doubleTap || r), this.longTap = te(this.element, o.longTap || r), this.singleTap = te(this.element, o.singleTap || r), this.pressMove = te(this.element, o.pressMove || r), this.twoFingerPressMove = te(this.element, o.twoFingerPressMove || r), this.touchMove = te(this.element, o.touchMove || r), this.touchEnd = te(this.element, o.touchEnd || r), this.touchCancel = te(this.element, o.touchCancel || r), this.translateContainer = this.element, this._cancelAllHandler = this.cancelAll.bind(this), window.addEventListener("scroll", this._cancelAllHandler), this.delta = null, this.last = null, this.now = null, this.tapTimeout = null, this.singleTapTimeout = null, this.longTapTimeout = null, this.swipeTimeout = null, this.x1 = this.x2 = this.y1 = this.y2 = null, this.preTapPosition = { x: null, y: null };
2457
+ this.rotate = ce(this.element, o.rotate || d), this.touchStart = ce(this.element, o.touchStart || d), this.multipointStart = ce(this.element, o.multipointStart || d), this.multipointEnd = ce(this.element, o.multipointEnd || d), this.pinch = ce(this.element, o.pinch || d), this.swipe = ce(this.element, o.swipe || d), this.tap = ce(this.element, o.tap || d), this.doubleTap = ce(this.element, o.doubleTap || d), this.longTap = ce(this.element, o.longTap || d), this.singleTap = ce(this.element, o.singleTap || d), this.pressMove = ce(this.element, o.pressMove || d), this.twoFingerPressMove = ce(this.element, o.twoFingerPressMove || d), this.touchMove = ce(this.element, o.touchMove || d), this.touchEnd = ce(this.element, o.touchEnd || d), this.touchCancel = ce(this.element, o.touchCancel || d), this.translateContainer = this.element, this._cancelAllHandler = this.cancelAll.bind(this), window.addEventListener("scroll", this._cancelAllHandler), this.delta = null, this.last = null, this.now = null, this.tapTimeout = null, this.singleTapTimeout = null, this.longTapTimeout = null, this.swipeTimeout = null, this.x1 = this.x2 = this.y1 = this.y2 = null, this.preTapPosition = { x: null, y: null };
2359
2458
  }, [{ key: "start", value: function(t) {
2360
2459
  if (t.touches) if (t.target && t.target.nodeName && ["a", "button", "input"].indexOf(t.target.nodeName.toLowerCase()) >= 0) console.log("ignore drag for this touched element", t.target.nodeName.toLowerCase());
2361
2460
  else {
@@ -2372,19 +2471,19 @@ var na = { exports: {} };
2372
2471
  }
2373
2472
  } }, { key: "move", value: function(t) {
2374
2473
  if (t.touches) {
2375
- var i = this.preV, o = t.touches.length, r = t.touches[0].pageX, l = t.touches[0].pageY;
2474
+ var i = this.preV, o = t.touches.length, d = t.touches[0].pageX, l = t.touches[0].pageY;
2376
2475
  if (this.isDoubleTap = !1, o > 1) {
2377
- var h = t.touches[1].pageX, b = t.touches[1].pageY, u = { x: t.touches[1].pageX - r, y: t.touches[1].pageY - l };
2378
- i.x !== null && (this.pinchStartLen > 0 && (t.zoom = at(u) / this.pinchStartLen, this.pinch.dispatch(t, this.element)), t.angle = _a(u, i), this.rotate.dispatch(t, this.element)), i.x = u.x, i.y = u.y, this.x2 !== null && this.sx2 !== null ? (t.deltaX = (r - this.x2 + h - this.sx2) / 2, t.deltaY = (l - this.y2 + b - this.sy2) / 2) : (t.deltaX = 0, t.deltaY = 0), this.twoFingerPressMove.dispatch(t, this.element), this.sx2 = h, this.sy2 = b;
2476
+ var h = t.touches[1].pageX, b = t.touches[1].pageY, u = { x: t.touches[1].pageX - d, y: t.touches[1].pageY - l };
2477
+ i.x !== null && (this.pinchStartLen > 0 && (t.zoom = at(u) / this.pinchStartLen, this.pinch.dispatch(t, this.element)), t.angle = $a(u, i), this.rotate.dispatch(t, this.element)), i.x = u.x, i.y = u.y, this.x2 !== null && this.sx2 !== null ? (t.deltaX = (d - this.x2 + h - this.sx2) / 2, t.deltaY = (l - this.y2 + b - this.sy2) / 2) : (t.deltaX = 0, t.deltaY = 0), this.twoFingerPressMove.dispatch(t, this.element), this.sx2 = h, this.sy2 = b;
2379
2478
  } else {
2380
2479
  if (this.x2 !== null) {
2381
- t.deltaX = r - this.x2, t.deltaY = l - this.y2;
2480
+ t.deltaX = d - this.x2, t.deltaY = l - this.y2;
2382
2481
  var y = Math.abs(this.x1 - this.x2), m = Math.abs(this.y1 - this.y2);
2383
2482
  (y > 10 || m > 10) && (this._preventTap = !0);
2384
2483
  } else t.deltaX = 0, t.deltaY = 0;
2385
2484
  this.pressMove.dispatch(t, this.element);
2386
2485
  }
2387
- this.touchMove.dispatch(t, this.element), this._cancelLongTap(), this.x2 = r, this.y2 = l, o > 1 && t.preventDefault();
2486
+ this.touchMove.dispatch(t, this.element), this._cancelLongTap(), this.x2 = d, this.y2 = l, o > 1 && t.preventDefault();
2388
2487
  }
2389
2488
  } }, { key: "end", value: function(t) {
2390
2489
  if (t.changedTouches) {
@@ -2406,8 +2505,8 @@ var na = { exports: {} };
2406
2505
  clearTimeout(this.longTapTimeout);
2407
2506
  } }, { key: "_cancelSingleTap", value: function() {
2408
2507
  clearTimeout(this.singleTapTimeout);
2409
- } }, { key: "_swipeDirection", value: function(t, i, o, r) {
2410
- return Math.abs(t - i) >= Math.abs(o - r) ? t - i > 0 ? "Left" : "Right" : o - r > 0 ? "Up" : "Down";
2508
+ } }, { key: "_swipeDirection", value: function(t, i, o, d) {
2509
+ return Math.abs(t - i) >= Math.abs(o - d) ? t - i > 0 ? "Left" : "Right" : o - d > 0 ? "Up" : "Down";
2411
2510
  } }, { key: "on", value: function(t, i) {
2412
2511
  this[t] && this[t].add(i);
2413
2512
  } }, { key: "off", value: function(t, i) {
@@ -2419,57 +2518,57 @@ var na = { exports: {} };
2419
2518
  var i = function() {
2420
2519
  var b, u = document.createElement("fakeelement"), y = { transition: "transitionend", OTransition: "oTransitionEnd", MozTransition: "transitionend", WebkitTransition: "webkitTransitionEnd" };
2421
2520
  for (b in y) if (u.style[b] !== void 0) return y[b];
2422
- }(), o = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, r = Q(t, "gslide-media") ? t : t.querySelector(".gslide-media"), l = $(r, ".ginner-container"), h = t.querySelector(".gslide-description");
2423
- o > 769 && (r = l), T(r, "greset"), C(r, "translate3d(0, 0, 0)"), F(i, { onElement: r, once: !0, withCallback: function(b, u) {
2424
- N(r, "greset");
2425
- } }), r.style.opacity = "", h && (h.style.opacity = "");
2521
+ }(), o = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, d = Q(t, "gslide-media") ? t : t.querySelector(".gslide-media"), l = $(d, ".ginner-container"), h = t.querySelector(".gslide-description");
2522
+ o > 769 && (d = l), T(d, "greset"), C(d, "translate3d(0, 0, 0)"), F(i, { onElement: d, once: !0, withCallback: function(b, u) {
2523
+ N(d, "greset");
2524
+ } }), d.style.opacity = "", h && (h.style.opacity = "");
2426
2525
  }
2427
- function Ta(t) {
2526
+ function Ea(t) {
2428
2527
  if (t.events.hasOwnProperty("touch")) return !1;
2429
- var i, o, r, l = se(), h = l.width, b = l.height, u = !1, y = null, m = null, w = null, k = !1, M = 1, E = 1, A = !1, U = !1, fe = null, re = null, G = null, Se = null, ue = 0, je = 0, He = !1, Be = !1, pe = {}, Le = {}, Rt = 0, Vt = 0, Ia = document.getElementById("glightbox-slider"), ct = document.querySelector(".goverlay"), La = new Ma(Ia, { touchStart: function(B) {
2528
+ var i, o, d, l = se(), h = l.width, b = l.height, u = !1, y = null, m = null, x = null, k = !1, M = 1, E = 1, I = !1, U = !1, fe = null, de = null, G = null, _e = null, ue = 0, Re = 0, Ve = !1, De = !1, pe = {}, Oe = {}, Rt = 0, Vt = 0, La = document.getElementById("glightbox-slider"), ct = document.querySelector(".goverlay"), qa = new Ta(La, { touchStart: function(B) {
2430
2529
  if (u = !0, (Q(B.targetTouches[0].target, "ginner-container") || $(B.targetTouches[0].target, ".gslide-desc") || B.targetTouches[0].target.nodeName.toLowerCase() == "a") && (u = !1), $(B.targetTouches[0].target, ".gslide-inline") && !Q(B.targetTouches[0].target.parentNode, "gslide-inline") && (u = !1), u) {
2431
- if (Le = B.targetTouches[0], pe.pageX = B.targetTouches[0].pageX, pe.pageY = B.targetTouches[0].pageY, Rt = B.targetTouches[0].clientX, Vt = B.targetTouches[0].clientY, y = t.activeSlide, m = y.querySelector(".gslide-media"), r = y.querySelector(".gslide-inline"), w = null, Q(m, "gslide-image") && (w = m.querySelector("img")), (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 769 && (m = y.querySelector(".ginner-container")), N(ct, "greset"), B.pageX > 20 && B.pageX < window.innerWidth - 20) return;
2530
+ if (Oe = B.targetTouches[0], pe.pageX = B.targetTouches[0].pageX, pe.pageY = B.targetTouches[0].pageY, Rt = B.targetTouches[0].clientX, Vt = B.targetTouches[0].clientY, y = t.activeSlide, m = y.querySelector(".gslide-media"), d = y.querySelector(".gslide-inline"), x = null, Q(m, "gslide-image") && (x = m.querySelector("img")), (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 769 && (m = y.querySelector(".ginner-container")), N(ct, "greset"), B.pageX > 20 && B.pageX < window.innerWidth - 20) return;
2432
2531
  B.preventDefault();
2433
2532
  }
2434
2533
  }, touchMove: function(B) {
2435
- if (u && (Le = B.targetTouches[0], !A && !U)) {
2436
- if (r && r.offsetHeight > b) {
2437
- var ae = pe.pageX - Le.pageX;
2438
- if (Math.abs(ae) <= 13) return !1;
2534
+ if (u && (Oe = B.targetTouches[0], !I && !U)) {
2535
+ if (d && d.offsetHeight > b) {
2536
+ var ie = pe.pageX - Oe.pageX;
2537
+ if (Math.abs(ie) <= 13) return !1;
2439
2538
  }
2440
2539
  k = !0;
2441
- var _e, it = B.targetTouches[0].clientX, qa = B.targetTouches[0].clientY, Oa = Rt - it, Pa = Vt - qa;
2442
- if (Math.abs(Oa) > Math.abs(Pa) ? (He = !1, Be = !0) : (Be = !1, He = !0), i = Le.pageX - pe.pageX, ue = 100 * i / h, o = Le.pageY - pe.pageY, je = 100 * o / b, He && w && (_e = 1 - Math.abs(o) / b, ct.style.opacity = _e, t.settings.touchFollowAxis && (ue = 0)), Be && (_e = 1 - Math.abs(i) / h, m.style.opacity = _e, t.settings.touchFollowAxis && (je = 0)), !w) return C(m, "translate3d(".concat(ue, "%, 0, 0)"));
2443
- C(m, "translate3d(".concat(ue, "%, ").concat(je, "%, 0)"));
2540
+ var $e, it = B.targetTouches[0].clientX, Oa = B.targetTouches[0].clientY, Pa = Rt - it, za = Vt - Oa;
2541
+ if (Math.abs(Pa) > Math.abs(za) ? (Ve = !1, De = !0) : (De = !1, Ve = !0), i = Oe.pageX - pe.pageX, ue = 100 * i / h, o = Oe.pageY - pe.pageY, Re = 100 * o / b, Ve && x && ($e = 1 - Math.abs(o) / b, ct.style.opacity = $e, t.settings.touchFollowAxis && (ue = 0)), De && ($e = 1 - Math.abs(i) / h, m.style.opacity = $e, t.settings.touchFollowAxis && (Re = 0)), !x) return C(m, "translate3d(".concat(ue, "%, 0, 0)"));
2542
+ C(m, "translate3d(".concat(ue, "%, ").concat(Re, "%, 0)"));
2444
2543
  }
2445
2544
  }, touchEnd: function() {
2446
2545
  if (u) {
2447
- if (k = !1, U || A) return G = fe, void (Se = re);
2448
- var B = Math.abs(parseInt(je)), ae = Math.abs(parseInt(ue));
2449
- if (!(B > 29 && w)) return B < 29 && ae < 25 ? (T(ct, "greset"), ct.style.opacity = 1, yt(m)) : void 0;
2546
+ if (k = !1, U || I) return G = fe, void (_e = de);
2547
+ var B = Math.abs(parseInt(Re)), ie = Math.abs(parseInt(ue));
2548
+ if (!(B > 29 && x)) return B < 29 && ie < 25 ? (T(ct, "greset"), ct.style.opacity = 1, yt(m)) : void 0;
2450
2549
  t.close();
2451
2550
  }
2452
2551
  }, multipointEnd: function() {
2453
2552
  setTimeout(function() {
2454
- A = !1;
2553
+ I = !1;
2455
2554
  }, 50);
2456
2555
  }, multipointStart: function() {
2457
- A = !0, M = E || 1;
2556
+ I = !0, M = E || 1;
2458
2557
  }, pinch: function(B) {
2459
- if (!w || k) return !1;
2460
- A = !0, w.scaleX = w.scaleY = M * B.zoom;
2461
- var ae = M * B.zoom;
2462
- if (U = !0, ae <= 1) return U = !1, ae = 1, Se = null, G = null, fe = null, re = null, void w.setAttribute("style", "");
2463
- ae > 4.5 && (ae = 4.5), w.style.transform = "scale3d(".concat(ae, ", ").concat(ae, ", 1)"), E = ae;
2558
+ if (!x || k) return !1;
2559
+ I = !0, x.scaleX = x.scaleY = M * B.zoom;
2560
+ var ie = M * B.zoom;
2561
+ if (U = !0, ie <= 1) return U = !1, ie = 1, _e = null, G = null, fe = null, de = null, void x.setAttribute("style", "");
2562
+ ie > 4.5 && (ie = 4.5), x.style.transform = "scale3d(".concat(ie, ", ").concat(ie, ", 1)"), E = ie;
2464
2563
  }, pressMove: function(B) {
2465
- if (U && !A) {
2466
- var ae = Le.pageX - pe.pageX, _e = Le.pageY - pe.pageY;
2467
- G && (ae += G), Se && (_e += Se), fe = ae, re = _e;
2468
- var it = "translate3d(".concat(ae, "px, ").concat(_e, "px, 0)");
2469
- E && (it += " scale3d(".concat(E, ", ").concat(E, ", 1)")), C(w, it);
2564
+ if (U && !I) {
2565
+ var ie = Oe.pageX - pe.pageX, $e = Oe.pageY - pe.pageY;
2566
+ G && (ie += G), _e && ($e += _e), fe = ie, de = $e;
2567
+ var it = "translate3d(".concat(ie, "px, ").concat($e, "px, 0)");
2568
+ E && (it += " scale3d(".concat(E, ", ").concat(E, ", 1)")), C(x, it);
2470
2569
  }
2471
2570
  }, swipe: function(B) {
2472
- if (!U) if (A) A = !1;
2571
+ if (!U) if (I) I = !1;
2473
2572
  else {
2474
2573
  if (B.direction == "Left") {
2475
2574
  if (t.index == t.elements.length - 1) return yt(m);
@@ -2481,9 +2580,9 @@ var na = { exports: {} };
2481
2580
  }
2482
2581
  }
2483
2582
  } });
2484
- t.events.touch = La;
2583
+ t.events.touch = qa;
2485
2584
  }
2486
- var jt = ve(), Ht = ve() !== null || document.createTouch !== void 0 || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, Bt = document.getElementsByTagName("html")[0], Ea = { selector: ".glightbox", elements: null, skin: "clean", theme: "clean", closeButton: !0, startAt: null, autoplayVideos: !0, autofocusVideos: !0, descPosition: "bottom", width: "900px", height: "506px", videosWidth: "960px", beforeSlideChange: null, afterSlideChange: null, beforeSlideLoad: null, afterSlideLoad: null, slideInserted: null, slideRemoved: null, slideExtraAttributes: null, onOpen: null, onClose: null, loop: !1, zoomable: !0, draggable: !0, dragAutoSnap: !1, dragToleranceX: 40, dragToleranceY: 65, preload: !0, oneSlidePerOpen: !1, touchNavigation: !0, touchFollowAxis: !0, keyboardNavigation: !0, closeOnOutsideClick: !0, plugins: !1, plyr: { css: "https://cdn.plyr.io/3.6.12/plyr.css", js: "https://cdn.plyr.io/3.6.12/plyr.js", config: { ratio: "16:9", fullscreen: { enabled: !0, iosNative: !0 }, youtube: { noCookie: !0, rel: 0, showinfo: 0, iv_load_policy: 3 }, vimeo: { byline: !1, portrait: !1, title: !1, transparent: !1 } } }, openEffect: "zoom", closeEffect: "zoom", slideEffect: "slide", moreText: "See more", moreLength: 60, cssEfects: { fade: { in: "fadeIn", out: "fadeOut" }, zoom: { in: "zoomIn", out: "zoomOut" }, slide: { in: "slideInRight", out: "slideOutLeft" }, slideBack: { in: "slideInLeft", out: "slideOutRight" }, none: { in: "none", out: "none" } }, svg: { close: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" xml:space="preserve"><g><g><path d="M505.943,6.058c-8.077-8.077-21.172-8.077-29.249,0L6.058,476.693c-8.077,8.077-8.077,21.172,0,29.249C10.096,509.982,15.39,512,20.683,512c5.293,0,10.586-2.019,14.625-6.059L505.943,35.306C514.019,27.23,514.019,14.135,505.943,6.058z"/></g></g><g><g><path d="M505.942,476.694L35.306,6.059c-8.076-8.077-21.172-8.077-29.248,0c-8.077,8.076-8.077,21.171,0,29.248l470.636,470.636c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.624-6.057C514.018,497.866,514.018,484.771,505.942,476.694z"/></g></g></svg>', next: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"> <g><path d="M360.731,229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1,0s-5.3,13.8,0,19.1l215.5,215.5l-215.5,215.5c-5.3,5.3-5.3,13.8,0,19.1c2.6,2.6,6.1,4,9.5,4c3.4,0,6.9-1.3,9.5-4l225.1-225.1C365.931,242.875,365.931,234.275,360.731,229.075z"/></g></svg>', prev: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"><g><path d="M145.188,238.575l215.5-215.5c5.3-5.3,5.3-13.8,0-19.1s-13.8-5.3-19.1,0l-225.1,225.1c-5.3,5.3-5.3,13.8,0,19.1l225.1,225c2.6,2.6,6.1,4,9.5,4s6.9-1.3,9.5-4c5.3-5.3,5.3-13.8,0-19.1L145.188,238.575z"/></g></svg>' }, slideHTML: `<div class="gslide">
2585
+ var jt = ve(), Ht = ve() !== null || document.createTouch !== void 0 || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, Bt = document.getElementsByTagName("html")[0], Aa = { selector: ".glightbox", elements: null, skin: "clean", theme: "clean", closeButton: !0, startAt: null, autoplayVideos: !0, autofocusVideos: !0, descPosition: "bottom", width: "900px", height: "506px", videosWidth: "960px", beforeSlideChange: null, afterSlideChange: null, beforeSlideLoad: null, afterSlideLoad: null, slideInserted: null, slideRemoved: null, slideExtraAttributes: null, onOpen: null, onClose: null, loop: !1, zoomable: !0, draggable: !0, dragAutoSnap: !1, dragToleranceX: 40, dragToleranceY: 65, preload: !0, oneSlidePerOpen: !1, touchNavigation: !0, touchFollowAxis: !0, keyboardNavigation: !0, closeOnOutsideClick: !0, plugins: !1, plyr: { css: "https://cdn.plyr.io/3.6.12/plyr.css", js: "https://cdn.plyr.io/3.6.12/plyr.js", config: { ratio: "16:9", fullscreen: { enabled: !0, iosNative: !0 }, youtube: { noCookie: !0, rel: 0, showinfo: 0, iv_load_policy: 3 }, vimeo: { byline: !1, portrait: !1, title: !1, transparent: !1 } } }, openEffect: "zoom", closeEffect: "zoom", slideEffect: "slide", moreText: "See more", moreLength: 60, cssEfects: { fade: { in: "fadeIn", out: "fadeOut" }, zoom: { in: "zoomIn", out: "zoomOut" }, slide: { in: "slideInRight", out: "slideOutLeft" }, slideBack: { in: "slideInLeft", out: "slideOutRight" }, none: { in: "none", out: "none" } }, svg: { close: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" xml:space="preserve"><g><g><path d="M505.943,6.058c-8.077-8.077-21.172-8.077-29.249,0L6.058,476.693c-8.077,8.077-8.077,21.172,0,29.249C10.096,509.982,15.39,512,20.683,512c5.293,0,10.586-2.019,14.625-6.059L505.943,35.306C514.019,27.23,514.019,14.135,505.943,6.058z"/></g></g><g><g><path d="M505.942,476.694L35.306,6.059c-8.076-8.077-21.172-8.077-29.248,0c-8.077,8.076-8.077,21.171,0,29.248l470.636,470.636c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.624-6.057C514.018,497.866,514.018,484.771,505.942,476.694z"/></g></g></svg>', next: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"> <g><path d="M360.731,229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1,0s-5.3,13.8,0,19.1l215.5,215.5l-215.5,215.5c-5.3,5.3-5.3,13.8,0,19.1c2.6,2.6,6.1,4,9.5,4c3.4,0,6.9-1.3,9.5-4l225.1-225.1C365.931,242.875,365.931,234.275,360.731,229.075z"/></g></svg>', prev: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"><g><path d="M145.188,238.575l215.5-215.5c5.3-5.3,5.3-13.8,0-19.1s-13.8-5.3-19.1,0l-225.1,225.1c-5.3,5.3-5.3,13.8,0,19.1l225.1,225c2.6,2.6,6.1,4,9.5,4s6.9-1.3,9.5-4c5.3-5.3,5.3-13.8,0-19.1L145.188,238.575z"/></g></svg>' }, slideHTML: `<div class="gslide">
2487
2586
  <div class="gslide-inner-content">
2488
2587
  <div class="ginner-container">
2489
2588
  <div class="gslide-media">
@@ -2505,13 +2604,13 @@ var na = { exports: {} };
2505
2604
  <button class="gprev gbtn" aria-label="Previous" data-taborder="2">{prevSVG}</button>
2506
2605
  <button class="gnext gbtn" aria-label="Next" data-taborder="1">{nextSVG}</button>
2507
2606
  </div>
2508
- </div>` }, Aa = f(function t() {
2607
+ </div>` }, Ia = f(function t() {
2509
2608
  var i = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
2510
- n(this, t), this.customOptions = i, this.settings = S(Ea, i), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = !1;
2609
+ s(this, t), this.customOptions = i, this.settings = S(Aa, i), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = !1;
2511
2610
  }, [{ key: "init", value: function() {
2512
2611
  var t = this, i = this.getSelector();
2513
- i && (this.baseEvents = F("click", { onElement: i, withCallback: function(o, r) {
2514
- o.preventDefault(), t.open(r);
2612
+ i && (this.baseEvents = F("click", { onElement: i, withCallback: function(o, d) {
2613
+ o.preventDefault(), t.open(d);
2515
2614
  } })), this.elements = this.getElements();
2516
2615
  } }, { key: "open", value: function() {
2517
2616
  var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null, i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
@@ -2519,8 +2618,8 @@ var na = { exports: {} };
2519
2618
  this.activeSlide = null, this.prevActiveSlideIndex = null, this.prevActiveSlide = null;
2520
2619
  var o = et(i) ? i : this.settings.startAt;
2521
2620
  if (R(t)) {
2522
- var r = t.getAttribute("data-gallery");
2523
- r && (this.fullElementsList = this.elements, this.elements = this.getGalleryElements(this.elements, r)), oe(o) && (o = this.getElementIndex(t)) < 0 && (o = 0);
2621
+ var d = t.getAttribute("data-gallery");
2622
+ d && (this.fullElementsList = this.elements, this.elements = this.getGalleryElements(this.elements, d)), re(o) && (o = this.getElementIndex(t)) < 0 && (o = 0);
2524
2623
  }
2525
2624
  et(o) || (o = 0), this.build(), V(this.overlay, this.settings.openEffect === "none" ? "none" : this.settings.cssEfects.fade.in);
2526
2625
  var l = document.body, h = window.innerWidth - document.documentElement.clientWidth;
@@ -2528,36 +2627,36 @@ var na = { exports: {} };
2528
2627
  var b = document.createElement("style");
2529
2628
  b.type = "text/css", b.className = "gcss-styles", b.innerText = ".gscrollbar-fixer {margin-right: ".concat(h, "px}"), document.head.appendChild(b), T(l, "gscrollbar-fixer");
2530
2629
  }
2531
- T(l, "glightbox-open"), T(Bt, "glightbox-open"), jt && (T(document.body, "glightbox-mobile"), this.settings.slideEffect = "slide"), this.showSlide(o, !0), this.elements.length === 1 ? (T(this.prevButton, "glightbox-button-hidden"), T(this.nextButton, "glightbox-button-hidden")) : (N(this.prevButton, "glightbox-button-hidden"), N(this.nextButton, "glightbox-button-hidden")), this.lightboxOpen = !0, this.trigger("open"), P(this.settings.onOpen) && this.settings.onOpen(), Ht && this.settings.touchNavigation && Ta(this), this.settings.keyboardNavigation && ya(this);
2630
+ T(l, "glightbox-open"), T(Bt, "glightbox-open"), jt && (T(document.body, "glightbox-mobile"), this.settings.slideEffect = "slide"), this.showSlide(o, !0), this.elements.length === 1 ? (T(this.prevButton, "glightbox-button-hidden"), T(this.nextButton, "glightbox-button-hidden")) : (N(this.prevButton, "glightbox-button-hidden"), N(this.nextButton, "glightbox-button-hidden")), this.lightboxOpen = !0, this.trigger("open"), P(this.settings.onOpen) && this.settings.onOpen(), Ht && this.settings.touchNavigation && Ea(this), this.settings.keyboardNavigation && va(this);
2532
2631
  } }, { key: "openAt", value: function() {
2533
2632
  var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
2534
2633
  this.open(null, t);
2535
2634
  } }, { key: "showSlide", value: function() {
2536
2635
  var t = this, i = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0, o = arguments.length > 1 && arguments[1] !== void 0 && arguments[1];
2537
- Ee(this.loader), this.index = parseInt(i);
2538
- var r = this.slidesContainer.querySelector(".current");
2539
- r && N(r, "current"), this.slideAnimateOut();
2636
+ Ie(this.loader), this.index = parseInt(i);
2637
+ var d = this.slidesContainer.querySelector(".current");
2638
+ d && N(d, "current"), this.slideAnimateOut();
2540
2639
  var l = this.slidesContainer.querySelectorAll(".gslide")[i];
2541
- if (Q(l, "loaded")) this.slideAnimateIn(l, o), Ae(this.loader);
2640
+ if (Q(l, "loaded")) this.slideAnimateIn(l, o), Le(this.loader);
2542
2641
  else {
2543
- Ee(this.loader);
2642
+ Ie(this.loader);
2544
2643
  var h = this.elements[i], b = { index: this.index, slide: l, slideNode: l, slideConfig: h.slideConfig, slideIndex: this.index, trigger: h.node, player: null };
2545
2644
  this.trigger("slide_before_load", b), h.instance.setContent(l, function() {
2546
- Ae(t.loader), t.resize(), t.slideAnimateIn(l, o), t.trigger("slide_after_load", b);
2645
+ Le(t.loader), t.resize(), t.slideAnimateIn(l, o), t.trigger("slide_after_load", b);
2547
2646
  });
2548
2647
  }
2549
2648
  this.slideDescription = l.querySelector(".gslide-description"), this.slideDescriptionContained = this.slideDescription && Q(this.slideDescription.parentNode, "gslide-media"), this.settings.preload && (this.preloadSlide(i + 1), this.preloadSlide(i - 1)), this.updateNavigationClasses(), this.activeSlide = l;
2550
2649
  } }, { key: "preloadSlide", value: function(t) {
2551
2650
  var i = this;
2552
- if (t < 0 || t > this.elements.length - 1 || oe(this.elements[t])) return !1;
2651
+ if (t < 0 || t > this.elements.length - 1 || re(this.elements[t])) return !1;
2553
2652
  var o = this.slidesContainer.querySelectorAll(".gslide")[t];
2554
2653
  if (Q(o, "loaded")) return !1;
2555
- var r = this.elements[t], l = r.type, h = { index: t, slide: o, slideNode: o, slideConfig: r.slideConfig, slideIndex: t, trigger: r.node, player: null };
2654
+ var d = this.elements[t], l = d.type, h = { index: t, slide: o, slideNode: o, slideConfig: d.slideConfig, slideIndex: t, trigger: d.node, player: null };
2556
2655
  this.trigger("slide_before_load", h), l === "video" || l === "external" ? setTimeout(function() {
2557
- r.instance.setContent(o, function() {
2656
+ d.instance.setContent(o, function() {
2558
2657
  i.trigger("slide_after_load", h);
2559
2658
  });
2560
- }, 200) : r.instance.setContent(o, function() {
2659
+ }, 200) : d.instance.setContent(o, function() {
2561
2660
  i.trigger("slide_after_load", h);
2562
2661
  });
2563
2662
  } }, { key: "prevSlide", value: function() {
@@ -2571,8 +2670,8 @@ var na = { exports: {} };
2571
2670
  } }, { key: "insertSlide", value: function() {
2572
2671
  var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : -1;
2573
2672
  i < 0 && (i = this.elements.length);
2574
- var o = new tt(t, this, i), r = o.getConfig(), l = S({}, r), h = o.create(), b = this.elements.length - 1;
2575
- l.index = i, l.node = !1, l.instance = o, l.slideConfig = r, this.elements.splice(i, 0, l);
2673
+ var o = new tt(t, this, i), d = o.getConfig(), l = S({}, d), h = o.create(), b = this.elements.length - 1;
2674
+ l.index = i, l.node = !1, l.instance = o, l.slideConfig = d, this.elements.splice(i, 0, l);
2576
2675
  var u = null, y = null;
2577
2676
  if (this.slidesContainer) {
2578
2677
  if (i > b) this.slidesContainer.appendChild(h);
@@ -2582,15 +2681,15 @@ var na = { exports: {} };
2582
2681
  }
2583
2682
  (this.settings.preload && this.index == 0 && i == 0 || this.index - 1 == i || this.index + 1 == i) && this.preloadSlide(i), this.index === 0 && i === 0 && (this.index = 1), this.updateNavigationClasses(), u = this.slidesContainer.querySelectorAll(".gslide")[i], y = this.getSlidePlayerInstance(i), l.slideNode = u;
2584
2683
  }
2585
- this.trigger("slide_inserted", { index: i, slide: u, slideNode: u, slideConfig: r, slideIndex: i, trigger: null, player: y }), P(this.settings.slideInserted) && this.settings.slideInserted({ index: i, slide: u, player: y });
2684
+ this.trigger("slide_inserted", { index: i, slide: u, slideNode: u, slideConfig: d, slideIndex: i, trigger: null, player: y }), P(this.settings.slideInserted) && this.settings.slideInserted({ index: i, slide: u, player: y });
2586
2685
  } }, { key: "removeSlide", value: function() {
2587
2686
  var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1;
2588
2687
  if (t < 0 || t > this.elements.length - 1) return !1;
2589
2688
  var i = this.slidesContainer && this.slidesContainer.querySelectorAll(".gslide")[t];
2590
2689
  i && (this.getActiveSlideIndex() == t && (t == this.elements.length - 1 ? this.prevSlide() : this.nextSlide()), i.parentNode.removeChild(i)), this.elements.splice(t, 1), this.trigger("slide_removed", t), P(this.settings.slideRemoved) && this.settings.slideRemoved(t);
2591
2690
  } }, { key: "slideAnimateIn", value: function(t, i) {
2592
- var o = this, r = t.querySelector(".gslide-media"), l = t.querySelector(".gslide-description"), h = { index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, slideNode: this.prevActiveSlide, slideIndex: this.prevActiveSlide, slideConfig: oe(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, trigger: oe(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, b = { index: this.index, slide: this.activeSlide, slideNode: this.activeSlide, slideConfig: this.elements[this.index].slideConfig, slideIndex: this.index, trigger: this.elements[this.index].node, player: this.getSlidePlayerInstance(this.index) };
2593
- if (r.offsetWidth > 0 && l && (Ae(l), l.style.display = ""), N(t, this.effectsClasses), i) V(t, this.settings.cssEfects[this.settings.openEffect].in, function() {
2691
+ var o = this, d = t.querySelector(".gslide-media"), l = t.querySelector(".gslide-description"), h = { index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, slideNode: this.prevActiveSlide, slideIndex: this.prevActiveSlide, slideConfig: re(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, trigger: re(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, b = { index: this.index, slide: this.activeSlide, slideNode: this.activeSlide, slideConfig: this.elements[this.index].slideConfig, slideIndex: this.index, trigger: this.elements[this.index].node, player: this.getSlidePlayerInstance(this.index) };
2692
+ if (d.offsetWidth > 0 && l && (Le(l), l.style.display = ""), N(t, this.effectsClasses), i) V(t, this.settings.cssEfects[this.settings.openEffect].in, function() {
2594
2693
  o.settings.autoplayVideos && o.slidePlayerPlay(t), o.trigger("slide_changed", { prev: h, current: b }), P(o.settings.afterSlideChange) && o.settings.afterSlideChange.apply(o, [h, b]);
2595
2694
  });
2596
2695
  else {
@@ -2607,15 +2706,15 @@ var na = { exports: {} };
2607
2706
  var t = this.prevActiveSlide;
2608
2707
  N(t, this.effectsClasses), T(t, "prev");
2609
2708
  var i = this.settings.slideEffect, o = i !== "none" ? this.settings.cssEfects[i].out : i;
2610
- this.slidePlayerPause(t), this.trigger("slide_before_change", { prev: { index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, slideNode: this.prevActiveSlide, slideIndex: this.prevActiveSlideIndex, slideConfig: oe(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, trigger: oe(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, current: { index: this.index, slide: this.activeSlide, slideNode: this.activeSlide, slideIndex: this.index, slideConfig: this.elements[this.index].slideConfig, trigger: this.elements[this.index].node, player: this.getSlidePlayerInstance(this.index) } }), P(this.settings.beforeSlideChange) && this.settings.beforeSlideChange.apply(this, [{ index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, { index: this.index, slide: this.activeSlide, player: this.getSlidePlayerInstance(this.index) }]), this.prevActiveSlideIndex > this.index && this.settings.slideEffect == "slide" && (o = this.settings.cssEfects.slideBack.out), V(t, o, function() {
2611
- var r = t.querySelector(".ginner-container"), l = t.querySelector(".gslide-media"), h = t.querySelector(".gslide-description");
2612
- r.style.transform = "", l.style.transform = "", N(l, "greset"), l.style.opacity = "", h && (h.style.opacity = ""), N(t, "prev");
2709
+ this.slidePlayerPause(t), this.trigger("slide_before_change", { prev: { index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, slideNode: this.prevActiveSlide, slideIndex: this.prevActiveSlideIndex, slideConfig: re(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, trigger: re(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, current: { index: this.index, slide: this.activeSlide, slideNode: this.activeSlide, slideIndex: this.index, slideConfig: this.elements[this.index].slideConfig, trigger: this.elements[this.index].node, player: this.getSlidePlayerInstance(this.index) } }), P(this.settings.beforeSlideChange) && this.settings.beforeSlideChange.apply(this, [{ index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, { index: this.index, slide: this.activeSlide, player: this.getSlidePlayerInstance(this.index) }]), this.prevActiveSlideIndex > this.index && this.settings.slideEffect == "slide" && (o = this.settings.cssEfects.slideBack.out), V(t, o, function() {
2710
+ var d = t.querySelector(".ginner-container"), l = t.querySelector(".gslide-media"), h = t.querySelector(".gslide-description");
2711
+ d.style.transform = "", l.style.transform = "", N(l, "greset"), l.style.opacity = "", h && (h.style.opacity = ""), N(t, "prev");
2613
2712
  });
2614
2713
  } }, { key: "getAllPlayers", value: function() {
2615
2714
  return this.videoPlayers;
2616
2715
  } }, { key: "getSlidePlayerInstance", value: function(t) {
2617
2716
  var i = "gvideo" + t, o = this.getAllPlayers();
2618
- return !(!W(o, i) || !o[i]) && o[i];
2717
+ return !(!Y(o, i) || !o[i]) && o[i];
2619
2718
  } }, { key: "stopSlideVideo", value: function(t) {
2620
2719
  if (R(t)) {
2621
2720
  var i = t.querySelector(".gvideo-wrapper");
@@ -2646,35 +2745,35 @@ var na = { exports: {} };
2646
2745
  var o = t.querySelector(".gvideo-wrapper");
2647
2746
  o && (t = o.getAttribute("data-index"));
2648
2747
  }
2649
- var r = this.getSlidePlayerInstance(t);
2650
- r && !r.playing && (r.play(), this.settings.autofocusVideos && r.elements.container.focus());
2748
+ var d = this.getSlidePlayerInstance(t);
2749
+ d && !d.playing && (d.play(), this.settings.autofocusVideos && d.elements.container.focus());
2651
2750
  }
2652
2751
  } }, { key: "setElements", value: function(t) {
2653
2752
  var i = this;
2654
2753
  this.settings.elements = !1;
2655
2754
  var o = [];
2656
- t && t.length && _(t, function(r, l) {
2657
- var h = new tt(r, i, l), b = h.getConfig(), u = S({}, b);
2755
+ t && t.length && _(t, function(d, l) {
2756
+ var h = new tt(d, i, l), b = h.getConfig(), u = S({}, b);
2658
2757
  u.slideConfig = b, u.instance = h, u.index = l, o.push(u);
2659
2758
  }), this.elements = o, this.lightboxOpen && (this.slidesContainer.innerHTML = "", this.elements.length && (_(this.elements, function() {
2660
- var r = ne(i.settings.slideHTML);
2661
- i.slidesContainer.appendChild(r);
2759
+ var d = ne(i.settings.slideHTML);
2760
+ i.slidesContainer.appendChild(d);
2662
2761
  }), this.showSlide(0, !0)));
2663
2762
  } }, { key: "getElementIndex", value: function(t) {
2664
2763
  var i = !1;
2665
- return _(this.elements, function(o, r) {
2666
- if (W(o, "node") && o.node == t) return i = r, !0;
2764
+ return _(this.elements, function(o, d) {
2765
+ if (Y(o, "node") && o.node == t) return i = d, !0;
2667
2766
  }), i;
2668
2767
  } }, { key: "getElements", value: function() {
2669
2768
  var t = this, i = [];
2670
- this.elements = this.elements ? this.elements : [], !oe(this.settings.elements) && Ie(this.settings.elements) && this.settings.elements.length && _(this.settings.elements, function(r, l) {
2671
- var h = new tt(r, t, l), b = h.getConfig(), u = S({}, b);
2769
+ this.elements = this.elements ? this.elements : [], !re(this.settings.elements) && qe(this.settings.elements) && this.settings.elements.length && _(this.settings.elements, function(d, l) {
2770
+ var h = new tt(d, t, l), b = h.getConfig(), u = S({}, b);
2672
2771
  u.node = !1, u.index = l, u.instance = h, u.slideConfig = b, i.push(u);
2673
2772
  });
2674
2773
  var o = !1;
2675
- return this.getSelector() && (o = document.querySelectorAll(this.getSelector())), o && _(o, function(r, l) {
2676
- var h = new tt(r, t, l), b = h.getConfig(), u = S({}, b);
2677
- u.node = r, u.index = l, u.instance = h, u.slideConfig = b, u.gallery = r.getAttribute("data-gallery"), i.push(u);
2774
+ return this.getSelector() && (o = document.querySelectorAll(this.getSelector())), o && _(o, function(d, l) {
2775
+ var h = new tt(d, t, l), b = h.getConfig(), u = S({}, b);
2776
+ u.node = d, u.index = l, u.instance = h, u.slideConfig = b, u.gallery = d.getAttribute("data-gallery"), i.push(u);
2678
2777
  }), i;
2679
2778
  } }, { key: "getGalleryElements", value: function(t, i) {
2680
2779
  return t.filter(function(o) {
@@ -2700,46 +2799,46 @@ var na = { exports: {} };
2700
2799
  _(i, function(m) {
2701
2800
  m.parentNode == document.body && m.nodeName.charAt(0) !== "#" && m.hasAttribute && !m.hasAttribute("aria-hidden") && (o.push(m), m.setAttribute("aria-hidden", "true"));
2702
2801
  });
2703
- var r = W(this.settings.svg, "next") ? this.settings.svg.next : "", l = W(this.settings.svg, "prev") ? this.settings.svg.prev : "", h = W(this.settings.svg, "close") ? this.settings.svg.close : "", b = this.settings.lightboxHTML;
2704
- b = ne(b = (b = (b = b.replace(/{nextSVG}/g, r)).replace(/{prevSVG}/g, l)).replace(/{closeSVG}/g, h)), document.body.appendChild(b);
2802
+ var d = Y(this.settings.svg, "next") ? this.settings.svg.next : "", l = Y(this.settings.svg, "prev") ? this.settings.svg.prev : "", h = Y(this.settings.svg, "close") ? this.settings.svg.close : "", b = this.settings.lightboxHTML;
2803
+ b = ne(b = (b = (b = b.replace(/{nextSVG}/g, d)).replace(/{prevSVG}/g, l)).replace(/{closeSVG}/g, h)), document.body.appendChild(b);
2705
2804
  var u = document.getElementById("glightbox-body");
2706
2805
  this.modal = u;
2707
2806
  var y = u.querySelector(".gclose");
2708
- this.prevButton = u.querySelector(".gprev"), this.nextButton = u.querySelector(".gnext"), this.overlay = u.querySelector(".goverlay"), this.loader = u.querySelector(".gloader"), this.slidesContainer = document.getElementById("glightbox-slider"), this.bodyHiddenChildElms = o, this.events = {}, T(this.modal, "glightbox-" + this.settings.skin), this.settings.closeButton && y && (this.events.close = F("click", { onElement: y, withCallback: function(m, w) {
2807
+ this.prevButton = u.querySelector(".gprev"), this.nextButton = u.querySelector(".gnext"), this.overlay = u.querySelector(".goverlay"), this.loader = u.querySelector(".gloader"), this.slidesContainer = document.getElementById("glightbox-slider"), this.bodyHiddenChildElms = o, this.events = {}, T(this.modal, "glightbox-" + this.settings.skin), this.settings.closeButton && y && (this.events.close = F("click", { onElement: y, withCallback: function(m, x) {
2709
2808
  m.preventDefault(), t.close();
2710
- } })), y && !this.settings.closeButton && y.parentNode.removeChild(y), this.nextButton && (this.events.next = F("click", { onElement: this.nextButton, withCallback: function(m, w) {
2809
+ } })), y && !this.settings.closeButton && y.parentNode.removeChild(y), this.nextButton && (this.events.next = F("click", { onElement: this.nextButton, withCallback: function(m, x) {
2711
2810
  m.preventDefault(), t.nextSlide();
2712
- } })), this.prevButton && (this.events.prev = F("click", { onElement: this.prevButton, withCallback: function(m, w) {
2811
+ } })), this.prevButton && (this.events.prev = F("click", { onElement: this.prevButton, withCallback: function(m, x) {
2713
2812
  m.preventDefault(), t.prevSlide();
2714
- } })), this.settings.closeOnOutsideClick && (this.events.outClose = F("click", { onElement: u, withCallback: function(m, w) {
2813
+ } })), this.settings.closeOnOutsideClick && (this.events.outClose = F("click", { onElement: u, withCallback: function(m, x) {
2715
2814
  t.preventOutsideClick || Q(document.body, "glightbox-mobile") || $(m.target, ".ginner-container") || $(m.target, ".gbtn") || Q(m.target, "gnext") || Q(m.target, "gprev") || t.close();
2716
- } })), _(this.elements, function(m, w) {
2717
- t.slidesContainer.appendChild(m.instance.create()), m.slideNode = t.slidesContainer.querySelectorAll(".gslide")[w];
2815
+ } })), _(this.elements, function(m, x) {
2816
+ t.slidesContainer.appendChild(m.instance.create()), m.slideNode = t.slidesContainer.querySelectorAll(".gslide")[x];
2718
2817
  }), Ht && T(document.body, "glightbox-touch"), this.events.resize = F("resize", { onElement: window, withCallback: function() {
2719
2818
  t.resize();
2720
2819
  } }), this.built = !0;
2721
2820
  } }, { key: "resize", value: function() {
2722
2821
  var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null;
2723
2822
  if ((t = t || this.activeSlide) && !Q(t, "zoomed")) {
2724
- var i = se(), o = t.querySelector(".gvideo-wrapper"), r = t.querySelector(".gslide-image"), l = this.slideDescription, h = i.width, b = i.height;
2725
- if (h <= 768 ? T(document.body, "glightbox-mobile") : N(document.body, "glightbox-mobile"), o || r) {
2823
+ var i = se(), o = t.querySelector(".gvideo-wrapper"), d = t.querySelector(".gslide-image"), l = this.slideDescription, h = i.width, b = i.height;
2824
+ if (h <= 768 ? T(document.body, "glightbox-mobile") : N(document.body, "glightbox-mobile"), o || d) {
2726
2825
  var u = !1;
2727
- if (l && (Q(l, "description-bottom") || Q(l, "description-top")) && !Q(l, "gabsolute") && (u = !0), r) {
2728
- if (h <= 768) r.querySelector("img");
2826
+ if (l && (Q(l, "description-bottom") || Q(l, "description-top")) && !Q(l, "gabsolute") && (u = !0), d) {
2827
+ if (h <= 768) d.querySelector("img");
2729
2828
  else if (u) {
2730
- var y, m = l.offsetHeight, w = r.querySelector("img"), k = this.elements[this.index].node, M = (y = k.getAttribute("data-height")) !== null && y !== void 0 ? y : "100vh";
2731
- w.setAttribute("style", "max-height: calc(".concat(M, " - ").concat(m, "px)")), l.setAttribute("style", "max-width: ".concat(w.offsetWidth, "px;"));
2829
+ var y, m = l.offsetHeight, x = d.querySelector("img"), k = this.elements[this.index].node, M = (y = k.getAttribute("data-height")) !== null && y !== void 0 ? y : "100vh";
2830
+ x.setAttribute("style", "max-height: calc(".concat(M, " - ").concat(m, "px)")), l.setAttribute("style", "max-width: ".concat(x.offsetWidth, "px;"));
2732
2831
  }
2733
2832
  }
2734
2833
  if (o) {
2735
- var E = W(this.settings.plyr.config, "ratio") ? this.settings.plyr.config.ratio : "";
2834
+ var E = Y(this.settings.plyr.config, "ratio") ? this.settings.plyr.config.ratio : "";
2736
2835
  if (!E) {
2737
- var A = o.clientWidth, U = o.clientHeight, fe = A / U;
2738
- E = "".concat(A / fe, ":").concat(U / fe);
2836
+ var I = o.clientWidth, U = o.clientHeight, fe = I / U;
2837
+ E = "".concat(I / fe, ":").concat(U / fe);
2739
2838
  }
2740
- var re = E.split(":"), G = this.settings.videosWidth, Se = this.settings.videosWidth, ue = (Se = et(G) || G.indexOf("px") !== -1 ? parseInt(G) : G.indexOf("vw") !== -1 ? h * parseInt(G) / 100 : G.indexOf("vh") !== -1 ? b * parseInt(G) / 100 : G.indexOf("%") !== -1 ? h * parseInt(G) / 100 : parseInt(o.clientWidth)) / (parseInt(re[0]) / parseInt(re[1]));
2741
- if (ue = Math.floor(ue), u && (b -= l.offsetHeight), Se > h || ue > b || b < ue && h > Se) {
2742
- var je = o.offsetWidth, He = o.offsetHeight, Be = b / He, pe = { width: je * Be, height: He * Be };
2839
+ var de = E.split(":"), G = this.settings.videosWidth, _e = this.settings.videosWidth, ue = (_e = et(G) || G.indexOf("px") !== -1 ? parseInt(G) : G.indexOf("vw") !== -1 ? h * parseInt(G) / 100 : G.indexOf("vh") !== -1 ? b * parseInt(G) / 100 : G.indexOf("%") !== -1 ? h * parseInt(G) / 100 : parseInt(o.clientWidth)) / (parseInt(de[0]) / parseInt(de[1]));
2840
+ if (ue = Math.floor(ue), u && (b -= l.offsetHeight), _e > h || ue > b || b < ue && h > _e) {
2841
+ var Re = o.offsetWidth, Ve = o.offsetHeight, De = b / Ve, pe = { width: Re * De, height: Ve * De };
2743
2842
  o.parentNode.setAttribute("style", "max-width: ".concat(pe.width, "px")), u && l.setAttribute("style", "max-width: ".concat(pe.width, "px;"));
2744
2843
  } else o.parentNode.style.maxWidth = "".concat(G), u && l.setAttribute("style", "max-width: ".concat(G, ";"));
2745
2844
  }
@@ -2751,8 +2850,8 @@ var na = { exports: {} };
2751
2850
  var t = this.loop();
2752
2851
  N(this.nextButton, "disabled"), N(this.prevButton, "disabled"), this.index == 0 && this.elements.length - 1 == 0 ? (T(this.prevButton, "disabled"), T(this.nextButton, "disabled")) : this.index !== 0 || t ? this.index !== this.elements.length - 1 || t || T(this.nextButton, "disabled") : T(this.prevButton, "disabled");
2753
2852
  } }, { key: "loop", value: function() {
2754
- var t = W(this.settings, "loopAtEnd") ? this.settings.loopAtEnd : null;
2755
- return t = W(this.settings, "loop") ? this.settings.loop : t, t;
2853
+ var t = Y(this.settings, "loopAtEnd") ? this.settings.loopAtEnd : null;
2854
+ return t = Y(this.settings, "loop") ? this.settings.loop : t, t;
2756
2855
  } }, { key: "close", value: function() {
2757
2856
  var t = this;
2758
2857
  if (!this.lightboxOpen) {
@@ -2770,8 +2869,8 @@ var na = { exports: {} };
2770
2869
  for (var o in t.events) t.events.hasOwnProperty(o) && t.events[o].destroy();
2771
2870
  t.events = null;
2772
2871
  }
2773
- var r = document.body;
2774
- N(Bt, "glightbox-open"), N(r, "glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer"), t.modal.parentNode.removeChild(t.modal), t.trigger("close"), P(t.settings.onClose) && t.settings.onClose();
2872
+ var d = document.body;
2873
+ N(Bt, "glightbox-open"), N(d, "glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer"), t.modal.parentNode.removeChild(t.modal), t.trigger("close"), P(t.settings.onClose) && t.settings.onClose();
2775
2874
  var l = document.querySelector(".gcss-styles");
2776
2875
  l && l.parentNode.removeChild(l), t.lightboxOpen = !1, t.closing = null;
2777
2876
  });
@@ -2784,11 +2883,11 @@ var na = { exports: {} };
2784
2883
  } }, { key: "once", value: function(t, i) {
2785
2884
  this.on(t, i, !0);
2786
2885
  } }, { key: "trigger", value: function(t) {
2787
- var i = this, o = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, r = [];
2886
+ var i = this, o = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, d = [];
2788
2887
  _(this.apiEvents, function(l, h) {
2789
2888
  var b = l.evt, u = l.once, y = l.callback;
2790
- b == t && (y(o), u && r.push(h));
2791
- }), r.length && _(r, function(l) {
2889
+ b == t && (y(o), u && d.push(h));
2890
+ }), d.length && _(d, function(l) {
2792
2891
  return i.apiEvents.splice(l, 1);
2793
2892
  });
2794
2893
  } }, { key: "clearAllEvents", value: function() {
@@ -2797,17 +2896,17 @@ var na = { exports: {} };
2797
2896
  return "3.3.0";
2798
2897
  } }]);
2799
2898
  return function() {
2800
- var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, i = new Aa(t);
2899
+ var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, i = new Ia(t);
2801
2900
  return i.init(), i;
2802
2901
  };
2803
2902
  });
2804
- })(na);
2805
- var wc = na.exports;
2806
- const xc = /* @__PURE__ */ ta(wc);
2807
- var kc = Object.defineProperty, Cc = Object.getOwnPropertyDescriptor, Sc = (c, e, a, s) => {
2808
- for (var n = s > 1 ? void 0 : s ? Cc(e, a) : e, d = c.length - 1, f; d >= 0; d--)
2809
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
2810
- return s && n && kc(e, a, n), n;
2903
+ })(sa);
2904
+ var xc = sa.exports;
2905
+ const kc = /* @__PURE__ */ aa(xc);
2906
+ var Cc = Object.defineProperty, Sc = Object.getOwnPropertyDescriptor, _c = (c, e, a, n) => {
2907
+ for (var s = n > 1 ? void 0 : n ? Sc(e, a) : e, r = c.length - 1, f; r >= 0; r--)
2908
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
2909
+ return n && s && Cc(e, a, s), s;
2811
2910
  };
2812
2911
  let St = class extends ut {
2813
2912
  render() {
@@ -2852,15 +2951,15 @@ St.styles = X`
2852
2951
  }
2853
2952
  }
2854
2953
  `;
2855
- St = Sc([
2954
+ St = _c([
2856
2955
  J("cb-thinking")
2857
2956
  ], St);
2858
- var _c = Object.defineProperty, $c = Object.getOwnPropertyDescriptor, sa = (c, e, a, s) => {
2859
- for (var n = s > 1 ? void 0 : s ? $c(e, a) : e, d = c.length - 1, f; d >= 0; d--)
2860
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
2861
- return s && n && _c(e, a, n), n;
2957
+ var $c = Object.defineProperty, Mc = Object.getOwnPropertyDescriptor, oa = (c, e, a, n) => {
2958
+ for (var s = n > 1 ? void 0 : n ? Mc(e, a) : e, r = c.length - 1, f; r >= 0; r--)
2959
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
2960
+ return n && s && $c(e, a, s), s;
2862
2961
  };
2863
- let rt = class extends ee {
2962
+ let rt = class extends ae {
2864
2963
  constructor() {
2865
2964
  super(...arguments), this.files = [];
2866
2965
  }
@@ -2894,13 +2993,13 @@ rt.styles = X`
2894
2993
  margin-right: 5px;
2895
2994
  }
2896
2995
  `;
2897
- sa([
2996
+ oa([
2898
2997
  v({ type: Array })
2899
2998
  ], rt.prototype, "files", 2);
2900
- rt = sa([
2999
+ rt = oa([
2901
3000
  J("cb-uploading")
2902
3001
  ], rt);
2903
- const Mc = X`
3002
+ const Tc = X`
2904
3003
  ${me}
2905
3004
  :host {
2906
3005
  }
@@ -2921,10 +3020,10 @@ const Mc = X`
2921
3020
  margin-right: 0.2em;
2922
3021
  }
2923
3022
  `;
2924
- var Tc = Object.defineProperty, Ec = Object.getOwnPropertyDescriptor, Et = (c, e, a, s) => {
2925
- for (var n = s > 1 ? void 0 : s ? Ec(e, a) : e, d = c.length - 1, f; d >= 0; d--)
2926
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
2927
- return s && n && Tc(e, a, n), n;
3023
+ var Ec = Object.defineProperty, Ac = Object.getOwnPropertyDescriptor, Et = (c, e, a, n) => {
3024
+ for (var s = n > 1 ? void 0 : n ? Ac(e, a) : e, r = c.length - 1, f; r >= 0; r--)
3025
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
3026
+ return n && s && Ec(e, a, s), s;
2928
3027
  };
2929
3028
  let Ze = class extends ut {
2930
3029
  constructor() {
@@ -2980,22 +3079,22 @@ Et([
2980
3079
  Ze = Et([
2981
3080
  J("cb-external-link")
2982
3081
  ], Ze);
2983
- const Ac = '<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.5zM1.928 15.849v-3.337h1.136v-.662H0v.662h1.134v3.337zm4.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.992zm1.93.662v3.337h-.794v-3.337H6.619v-.662h3.064v.662H8.546Z"/></svg>', Ic = '<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.5zM1.6 11.85H0v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474a1.4 1.4 0 0 0 .161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H.788V12.48h.66q.327 0 .512.181q.185.183.185.522m1.217-1.333v3.999h1.46q.602 0 .998-.237a1.45 1.45 0 0 0 .595-.689q.196-.45.196-1.084q0-.63-.196-1.075a1.43 1.43 0 0 0-.589-.68q-.396-.234-1.005-.234zm.791.645h.563q.371 0 .609.152a.9.9 0 0 1 .354.454q.118.302.118.753a2.3 2.3 0 0 1-.068.592a1.1 1.1 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.3 1.3 0 0 1-.483.082h-.563zm3.743 1.763v1.591h-.79V11.85h2.548v.653H7.896v1.117h1.606v.638z"/></svg>', Lc = '<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.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.459q.609 0 1.005.234t.589.68q.195.445.196 1.075q0 .634-.196 1.084q-.197.451-.595.689q-.396.237-1 .237H4.626Zm1.353-3.354h-.562v2.707h.562q.279 0 .484-.082a.8.8 0 0 0 .334-.252a1.1 1.1 0 0 0 .196-.422q.067-.252.067-.592a2.1 2.1 0 0 0-.117-.753a.9.9 0 0 0-.354-.454q-.238-.152-.61-.152"/></svg>', qc = '<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.5zM3.517 14.841a1.13 1.13 0 0 0 .401.823q.195.162.478.252q.284.091.665.091q.507 0 .859-.158q.354-.158.539-.44q.187-.284.187-.656q0-.336-.134-.56a1 1 0 0 0-.375-.357a2 2 0 0 0-.566-.21l-.621-.144a1 1 0 0 1-.404-.176a.37.37 0 0 1-.144-.299q0-.234.185-.384q.188-.152.512-.152q.214 0 .37.068a.6.6 0 0 1 .246.181a.56.56 0 0 1 .12.258h.75a1.1 1.1 0 0 0-.2-.566a1.2 1.2 0 0 0-.5-.41a1.8 1.8 0 0 0-.78-.152q-.439 0-.776.15q-.337.149-.527.421q-.19.273-.19.639q0 .302.122.524q.124.223.352.367q.228.143.539.213l.618.144q.31.073.463.193a.39.39 0 0 1 .152.326a.5.5 0 0 1-.085.29a.56.56 0 0 1-.255.193q-.167.07-.413.07q-.175 0-.32-.04a.8.8 0 0 1-.248-.115a.58.58 0 0 1-.255-.384zM.806 13.693q0-.373.102-.633a.87.87 0 0 1 .302-.399a.8.8 0 0 1 .475-.137q.225 0 .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.4 1.4 0 0 0-.489-.272a1.8 1.8 0 0 0-.606-.097q-.534 0-.911.223q-.375.222-.572.632q-.195.41-.196.979v.498q0 .568.193.976q.197.407.572.626q.375.217.914.217q.439 0 .785-.164t.55-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.764a.8.8 0 0 1-.118.363a.7.7 0 0 1-.272.25a.9.9 0 0 1-.401.087a.85.85 0 0 1-.478-.132a.83.83 0 0 1-.299-.392a1.7 1.7 0 0 1-.102-.627zm8.239 2.238h-.953l-1.338-3.999h.917l.896 3.138h.038l.888-3.138h.879z"/></svg>', Oc = '<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.5zM1.6 11.85H0v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474a1.4 1.4 0 0 0 .161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H.788V12.48h.66q.327 0 .512.181q.185.183.185.522m2.817-1.333h-1.6v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474q.162-.302.161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H4.15V12.48h.66q.327 0 .512.181q.185.183.185.522m2.767-.67v3.336H7.48v-3.337H6.346v-.662h3.065v.662z"/></svg>', Pc = '<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.5zm-7.839 9.166v.522q0 .384-.117.641a.86.86 0 0 1-.322.387a.9.9 0 0 1-.469.126a.9.9 0 0 1-.471-.126a.87.87 0 0 1-.32-.386a1.55 1.55 0 0 1-.117-.642v-.522q0-.386.117-.641a.87.87 0 0 1 .32-.387a.87.87 0 0 1 .471-.129q.264 0 .469.13a.86.86 0 0 1 .322.386q.117.255.117.641m.803.519v-.513q0-.565-.205-.972a1.46 1.46 0 0 0-.589-.63q-.381-.22-.917-.22q-.533 0-.92.22a1.44 1.44 0 0 0-.589.627q-.204.406-.205.975v.513q0 .563.205.973q.205.406.59.627q.386.216.92.216q.535 0 .916-.216q.383-.22.59-.627q.204-.41.204-.973M0 11.926v4h1.459q.603 0 .999-.238a1.45 1.45 0 0 0 .595-.689q.196-.45.196-1.084q0-.63-.196-1.075a1.43 1.43 0 0 0-.59-.68q-.395-.234-1.004-.234zm.791.645h.563q.371 0 .609.152a.9.9 0 0 1 .354.454q.118.302.118.753a2.3 2.3 0 0 1-.068.592a1.1 1.1 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.3 1.3 0 0 1-.483.082H.79V12.57Zm7.422.483a1.7 1.7 0 0 0-.103.633v.495q0 .369.103.627a.83.83 0 0 0 .298.393a.85.85 0 0 0 .478.131a.9.9 0 0 0 .401-.088a.7.7 0 0 0 .273-.248a.8.8 0 0 0 .117-.364h.765v.076a1.27 1.27 0 0 1-.226.674q-.205.29-.55.454a1.8 1.8 0 0 1-.786.164q-.54 0-.914-.216a1.4 1.4 0 0 1-.571-.627q-.194-.408-.194-.976v-.498q0-.568.197-.978q.195-.411.571-.633q.378-.223.911-.223q.328 0 .607.097q.28.093.489.272a1.33 1.33 0 0 1 .466.964v.073H9.78a.85.85 0 0 0-.12-.38a.7.7 0 0 0-.273-.261a.8.8 0 0 0-.398-.097a.8.8 0 0 0-.475.138a.87.87 0 0 0-.301.398"/></svg>', zc = '<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.5zm-6.839 9.688v-.522a1.5 1.5 0 0 0-.117-.641a.86.86 0 0 0-.322-.387a.86.86 0 0 0-.469-.129a.87.87 0 0 0-.471.13a.87.87 0 0 0-.32.386a1.5 1.5 0 0 0-.117.641v.522q0 .384.117.641a.87.87 0 0 0 .32.387a.9.9 0 0 0 .471.126a.9.9 0 0 0 .469-.126a.86.86 0 0 0 .322-.386a1.55 1.55 0 0 0 .117-.642m.803-.516v.513q0 .563-.205.973a1.47 1.47 0 0 1-.589.627q-.381.216-.917.216a1.86 1.86 0 0 1-.92-.216a1.46 1.46 0 0 1-.589-.627a2.15 2.15 0 0 1-.205-.973v-.513q0-.569.205-.975q.205-.411.59-.627q.386-.22.92-.22q.535 0 .916.22q.383.219.59.63q.204.406.204.972M1 15.925v-3.999h1.459q.609 0 1.005.235q.396.233.589.68q.196.445.196 1.074q0 .634-.196 1.084q-.197.451-.595.689q-.396.237-.999.237zm1.354-3.354H1.79v2.707h.563q.277 0 .483-.082a.8.8 0 0 0 .334-.252q.132-.17.196-.422a2.3 2.3 0 0 0 .068-.592q0-.45-.118-.753a.9.9 0 0 0-.354-.454q-.237-.152-.61-.152Zm6.756 1.116q0-.373.103-.633a.87.87 0 0 1 .301-.398a.8.8 0 0 1 .475-.138q.225 0 .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.4 1.4 0 0 0-.49-.272a1.8 1.8 0 0 0-.606-.097q-.534 0-.911.223q-.375.222-.571.633q-.197.41-.197.978v.498q0 .568.194.976q.195.406.571.627q.375.216.914.216q.44 0 .785-.164t.551-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.765a.8.8 0 0 1-.117.364a.7.7 0 0 1-.273.248a.9.9 0 0 1-.401.088a.85.85 0 0 1-.478-.131a.83.83 0 0 1-.298-.393a1.7 1.7 0 0 1-.103-.627zm5.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.035z"/></svg>';
2984
- var jc = Object.defineProperty, Hc = Object.getOwnPropertyDescriptor, At = (c, e, a, s) => {
2985
- for (var n = s > 1 ? void 0 : s ? Hc(e, a) : e, d = c.length - 1, f; d >= 0; d--)
2986
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
2987
- return s && n && jc(e, a, n), n;
3082
+ const Ic = '<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.5zM1.928 15.849v-3.337h1.136v-.662H0v.662h1.134v3.337zm4.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.992zm1.93.662v3.337h-.794v-3.337H6.619v-.662h3.064v.662H8.546Z"/></svg>', Lc = '<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.5zM1.6 11.85H0v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474a1.4 1.4 0 0 0 .161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H.788V12.48h.66q.327 0 .512.181q.185.183.185.522m1.217-1.333v3.999h1.46q.602 0 .998-.237a1.45 1.45 0 0 0 .595-.689q.196-.45.196-1.084q0-.63-.196-1.075a1.43 1.43 0 0 0-.589-.68q-.396-.234-1.005-.234zm.791.645h.563q.371 0 .609.152a.9.9 0 0 1 .354.454q.118.302.118.753a2.3 2.3 0 0 1-.068.592a1.1 1.1 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.3 1.3 0 0 1-.483.082h-.563zm3.743 1.763v1.591h-.79V11.85h2.548v.653H7.896v1.117h1.606v.638z"/></svg>', qc = '<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.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.459q.609 0 1.005.234t.589.68q.195.445.196 1.075q0 .634-.196 1.084q-.197.451-.595.689q-.396.237-1 .237H4.626Zm1.353-3.354h-.562v2.707h.562q.279 0 .484-.082a.8.8 0 0 0 .334-.252a1.1 1.1 0 0 0 .196-.422q.067-.252.067-.592a2.1 2.1 0 0 0-.117-.753a.9.9 0 0 0-.354-.454q-.238-.152-.61-.152"/></svg>', Oc = '<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.5zM3.517 14.841a1.13 1.13 0 0 0 .401.823q.195.162.478.252q.284.091.665.091q.507 0 .859-.158q.354-.158.539-.44q.187-.284.187-.656q0-.336-.134-.56a1 1 0 0 0-.375-.357a2 2 0 0 0-.566-.21l-.621-.144a1 1 0 0 1-.404-.176a.37.37 0 0 1-.144-.299q0-.234.185-.384q.188-.152.512-.152q.214 0 .37.068a.6.6 0 0 1 .246.181a.56.56 0 0 1 .12.258h.75a1.1 1.1 0 0 0-.2-.566a1.2 1.2 0 0 0-.5-.41a1.8 1.8 0 0 0-.78-.152q-.439 0-.776.15q-.337.149-.527.421q-.19.273-.19.639q0 .302.122.524q.124.223.352.367q.228.143.539.213l.618.144q.31.073.463.193a.39.39 0 0 1 .152.326a.5.5 0 0 1-.085.29a.56.56 0 0 1-.255.193q-.167.07-.413.07q-.175 0-.32-.04a.8.8 0 0 1-.248-.115a.58.58 0 0 1-.255-.384zM.806 13.693q0-.373.102-.633a.87.87 0 0 1 .302-.399a.8.8 0 0 1 .475-.137q.225 0 .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.4 1.4 0 0 0-.489-.272a1.8 1.8 0 0 0-.606-.097q-.534 0-.911.223q-.375.222-.572.632q-.195.41-.196.979v.498q0 .568.193.976q.197.407.572.626q.375.217.914.217q.439 0 .785-.164t.55-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.764a.8.8 0 0 1-.118.363a.7.7 0 0 1-.272.25a.9.9 0 0 1-.401.087a.85.85 0 0 1-.478-.132a.83.83 0 0 1-.299-.392a1.7 1.7 0 0 1-.102-.627zm8.239 2.238h-.953l-1.338-3.999h.917l.896 3.138h.038l.888-3.138h.879z"/></svg>', Pc = '<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.5zM1.6 11.85H0v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474a1.4 1.4 0 0 0 .161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H.788V12.48h.66q.327 0 .512.181q.185.183.185.522m2.817-1.333h-1.6v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474q.162-.302.161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H4.15V12.48h.66q.327 0 .512.181q.185.183.185.522m2.767-.67v3.336H7.48v-3.337H6.346v-.662h3.065v.662z"/></svg>', zc = '<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.5zm-7.839 9.166v.522q0 .384-.117.641a.86.86 0 0 1-.322.387a.9.9 0 0 1-.469.126a.9.9 0 0 1-.471-.126a.87.87 0 0 1-.32-.386a1.55 1.55 0 0 1-.117-.642v-.522q0-.386.117-.641a.87.87 0 0 1 .32-.387a.87.87 0 0 1 .471-.129q.264 0 .469.13a.86.86 0 0 1 .322.386q.117.255.117.641m.803.519v-.513q0-.565-.205-.972a1.46 1.46 0 0 0-.589-.63q-.381-.22-.917-.22q-.533 0-.92.22a1.44 1.44 0 0 0-.589.627q-.204.406-.205.975v.513q0 .563.205.973q.205.406.59.627q.386.216.92.216q.535 0 .916-.216q.383-.22.59-.627q.204-.41.204-.973M0 11.926v4h1.459q.603 0 .999-.238a1.45 1.45 0 0 0 .595-.689q.196-.45.196-1.084q0-.63-.196-1.075a1.43 1.43 0 0 0-.59-.68q-.395-.234-1.004-.234zm.791.645h.563q.371 0 .609.152a.9.9 0 0 1 .354.454q.118.302.118.753a2.3 2.3 0 0 1-.068.592a1.1 1.1 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.3 1.3 0 0 1-.483.082H.79V12.57Zm7.422.483a1.7 1.7 0 0 0-.103.633v.495q0 .369.103.627a.83.83 0 0 0 .298.393a.85.85 0 0 0 .478.131a.9.9 0 0 0 .401-.088a.7.7 0 0 0 .273-.248a.8.8 0 0 0 .117-.364h.765v.076a1.27 1.27 0 0 1-.226.674q-.205.29-.55.454a1.8 1.8 0 0 1-.786.164q-.54 0-.914-.216a1.4 1.4 0 0 1-.571-.627q-.194-.408-.194-.976v-.498q0-.568.197-.978q.195-.411.571-.633q.378-.223.911-.223q.328 0 .607.097q.28.093.489.272a1.33 1.33 0 0 1 .466.964v.073H9.78a.85.85 0 0 0-.12-.38a.7.7 0 0 0-.273-.261a.8.8 0 0 0-.398-.097a.8.8 0 0 0-.475.138a.87.87 0 0 0-.301.398"/></svg>', jc = '<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.5zm-6.839 9.688v-.522a1.5 1.5 0 0 0-.117-.641a.86.86 0 0 0-.322-.387a.86.86 0 0 0-.469-.129a.87.87 0 0 0-.471.13a.87.87 0 0 0-.32.386a1.5 1.5 0 0 0-.117.641v.522q0 .384.117.641a.87.87 0 0 0 .32.387a.9.9 0 0 0 .471.126a.9.9 0 0 0 .469-.126a.86.86 0 0 0 .322-.386a1.55 1.55 0 0 0 .117-.642m.803-.516v.513q0 .563-.205.973a1.47 1.47 0 0 1-.589.627q-.381.216-.917.216a1.86 1.86 0 0 1-.92-.216a1.46 1.46 0 0 1-.589-.627a2.15 2.15 0 0 1-.205-.973v-.513q0-.569.205-.975q.205-.411.59-.627q.386-.22.92-.22q.535 0 .916.22q.383.219.59.63q.204.406.204.972M1 15.925v-3.999h1.459q.609 0 1.005.235q.396.233.589.68q.196.445.196 1.074q0 .634-.196 1.084q-.197.451-.595.689q-.396.237-.999.237zm1.354-3.354H1.79v2.707h.563q.277 0 .483-.082a.8.8 0 0 0 .334-.252q.132-.17.196-.422a2.3 2.3 0 0 0 .068-.592q0-.45-.118-.753a.9.9 0 0 0-.354-.454q-.237-.152-.61-.152Zm6.756 1.116q0-.373.103-.633a.87.87 0 0 1 .301-.398a.8.8 0 0 1 .475-.138q.225 0 .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.4 1.4 0 0 0-.49-.272a1.8 1.8 0 0 0-.606-.097q-.534 0-.911.223q-.375.222-.571.633q-.197.41-.197.978v.498q0 .568.194.976q.195.406.571.627q.375.216.914.216q.44 0 .785-.164t.551-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.765a.8.8 0 0 1-.117.364a.7.7 0 0 1-.273.248a.9.9 0 0 1-.401.088a.85.85 0 0 1-.478-.131a.83.83 0 0 1-.298-.393a1.7 1.7 0 0 1-.103-.627zm5.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.035z"/></svg>';
3083
+ var Hc = Object.defineProperty, Bc = Object.getOwnPropertyDescriptor, At = (c, e, a, n) => {
3084
+ for (var s = n > 1 ? void 0 : n ? Bc(e, a) : e, r = c.length - 1, f; r >= 0; r--)
3085
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
3086
+ return n && s && Hc(e, a, s), s;
2988
3087
  };
2989
3088
  const Nt = {
2990
- pdf: Ic,
2991
- txt: Ac,
2992
- md: Lc,
2993
- csv: qc,
2994
- ppd: Oc,
2995
- doc: Pc,
2996
- docx: zc
3089
+ pdf: Lc,
3090
+ txt: Ic,
3091
+ md: qc,
3092
+ csv: Oc,
3093
+ ppd: Pc,
3094
+ doc: zc,
3095
+ docx: jc
2997
3096
  };
2998
- let Je = class extends ee {
3097
+ let Je = class extends ae {
2999
3098
  constructor() {
3000
3099
  super(...arguments), this.filename = "", this.url = "";
3001
3100
  }
@@ -3025,7 +3124,7 @@ let Je = class extends ee {
3025
3124
  `;
3026
3125
  }
3027
3126
  };
3028
- Je.styles = Mc;
3127
+ Je.styles = Tc;
3029
3128
  At([
3030
3129
  v({ type: String })
3031
3130
  ], Je.prototype, "filename", 2);
@@ -3035,7 +3134,7 @@ At([
3035
3134
  Je = At([
3036
3135
  J("cb-file")
3037
3136
  ], Je);
3038
- const Bc = '<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-.5m2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0z"/><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 1zM4.118 4L4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4zM2.5 3h11V2h-11z"/></g></svg>', Rc = '<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 6m2-3a2 2 0 1 1-4 0a2 2 0 0 1 4 0m4 8c0 1-1 1-1 1H3s-1 0-1-1s1-4 6-4s6 3 6 4m-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10s-3.516.68-4.168 1.332c-.678.678-.83 1.418-.832 1.664z"/></svg>', oa = '<svg viewBox="0 0 24 24" width="1.2em" height="1.2em" ><path fill="currentColor" d="M5 9v12H1V9zm4 12a2 2 0 0 1-2-2V9c0-.55.22-1.05.59-1.41L14.17 1l1.06 1.06c.27.27.44.64.44 1.05l-.03.32L14.69 8H21a2 2 0 0 1 2 2v2c0 .26-.05.5-.14.73l-3.02 7.05C19.54 20.5 18.83 21 18 21zm0-2h9.03L21 12v-2h-8.79l1.13-5.32L9 9.03z"/></svg>', ra = '<svg viewBox="0 0 24 24" width="1.2em" height="1.2em" ><path fill="currentColor" d="M19 15V3h4v12zM15 3a2 2 0 0 1 2 2v10c0 .55-.22 1.05-.59 1.41L9.83 23l-1.06-1.06c-.27-.27-.44-.64-.44-1.06l.03-.31l.95-4.57H3a2 2 0 0 1-2-2v-2c0-.26.05-.5.14-.73l3.02-7.05C4.46 3.5 5.17 3 6 3zm0 2H5.97L3 12v2h8.78l-1.13 5.32L15 14.97z"/></svg>', Vc = X`
3137
+ const Rc = '<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-.5m2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0z"/><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 1zM4.118 4L4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4zM2.5 3h11V2h-11z"/></g></svg>', Ut = '<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 6m2-3a2 2 0 1 1-4 0a2 2 0 0 1 4 0m4 8c0 1-1 1-1 1H3s-1 0-1-1s1-4 6-4s6 3 6 4m-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10s-3.516.68-4.168 1.332c-.678.678-.83 1.418-.832 1.664z"/></svg>', ra = '<svg viewBox="0 0 24 24" width="1.2em" height="1.2em" ><path fill="currentColor" d="M5 9v12H1V9zm4 12a2 2 0 0 1-2-2V9c0-.55.22-1.05.59-1.41L14.17 1l1.06 1.06c.27.27.44.64.44 1.05l-.03.32L14.69 8H21a2 2 0 0 1 2 2v2c0 .26-.05.5-.14.73l-3.02 7.05C19.54 20.5 18.83 21 18 21zm0-2h9.03L21 12v-2h-8.79l1.13-5.32L9 9.03z"/></svg>', da = '<svg viewBox="0 0 24 24" width="1.2em" height="1.2em" ><path fill="currentColor" d="M19 15V3h4v12zM15 3a2 2 0 0 1 2 2v10c0 .55-.22 1.05-.59 1.41L9.83 23l-1.06-1.06c-.27-.27-.44-.64-.44-1.06l.03-.31l.95-4.57H3a2 2 0 0 1-2-2v-2c0-.26.05-.5.14-.73l3.02-7.05C4.46 3.5 5.17 3 6 3zm0 2H5.97L3 12v2h8.78l-1.13 5.32L15 14.97z"/></svg>', Vc = X`
3039
3138
  pre code.hljs {
3040
3139
  display: block;
3041
3140
  overflow-x: auto;
@@ -4359,6 +4458,28 @@ const Bc = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
4359
4458
  color: var(--enegelai-bot-message-user-a-color, rgb(85, 26, 139));
4360
4459
  }
4361
4460
 
4461
+ .user-message-uploads {
4462
+ width: 100%;
4463
+ display: flex;
4464
+ justify-content: center;
4465
+ margin-top: 4px;
4466
+ }
4467
+
4468
+ .user-message-uploads img {
4469
+ max-width: 75%;
4470
+ border-radius: 6px;
4471
+ cursor: pointer;
4472
+ transform: scale(0.9);
4473
+ transition: all 0.3s ease-in-out;
4474
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
4475
+ padding: 4px;
4476
+ }
4477
+
4478
+ .user-message-uploads img:hover {
4479
+ transform: scale(1);
4480
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
4481
+ }
4482
+
4362
4483
  .assistant-message {
4363
4484
  margin-left: 4px;
4364
4485
  width: 85%;
@@ -4375,6 +4496,11 @@ const Bc = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
4375
4496
  color: var(--enegelai-bot-message-bot-a-color, rgb(85, 26, 139));
4376
4497
  }
4377
4498
 
4499
+ .assistant-message-user-name {
4500
+ color: var(--enegelai-bot-message-user-name-color, rgb(0, 0, 0, 1));
4501
+ font-size: 12px;
4502
+ }
4503
+
4378
4504
  .system-message {
4379
4505
  margin-right: auto;
4380
4506
  //margin-left: -12px;
@@ -4456,36 +4582,36 @@ const Bc = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
4456
4582
  filter: alpha(opacity=80);
4457
4583
  }
4458
4584
  `;
4459
- function Ut(c, e) {
4585
+ function Wt(c, e) {
4460
4586
  return `<pre class="code-block-wrapper"><div class="code-block-header"><span class="code-block-header__lang">${e}</span><span class="code-block-header__copy">Copy</span></div><code class="hljs code-block-body ${e}">${c}</code></pre>`;
4461
4587
  }
4462
4588
  function Fc() {
4463
- const c = new Ba({
4589
+ const c = new Ra({
4464
4590
  html: !0,
4465
4591
  breaks: !0,
4466
4592
  linkify: !0,
4467
4593
  highlight(e, a) {
4468
4594
  if (!!(a && vt.getLanguage(a))) {
4469
- const n = a ?? "";
4470
- return Ut(vt.highlight(e, { language: n }).value, n);
4595
+ const s = a ?? "";
4596
+ return Wt(vt.highlight(e, { language: s }).value, s);
4471
4597
  }
4472
- return Ut(vt.highlightAuto(e).value, "");
4598
+ return Wt(vt.highlightAuto(e).value, "");
4473
4599
  }
4474
4600
  });
4475
- return c.use(Ra, { attrs: { target: "_blank", rel: "noopener" } }), c;
4601
+ return c.use(Va, { attrs: { target: "_blank", rel: "noopener" } }), c;
4476
4602
  }
4477
- async function Wt(c) {
4603
+ async function Yt(c) {
4478
4604
  const a = Fc().render(c);
4479
- return g`${Y(a)}`;
4605
+ return g`${W(a)}`;
4480
4606
  }
4481
- var Nc = Object.defineProperty, Uc = Object.getOwnPropertyDescriptor, Fe = (c, e, a, s) => {
4482
- for (var n = s > 1 ? void 0 : s ? Uc(e, a) : e, d = c.length - 1, f; d >= 0; d--)
4483
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
4484
- return s && n && Nc(e, a, n), n;
4607
+ var Nc = Object.defineProperty, Uc = Object.getOwnPropertyDescriptor, Ne = (c, e, a, n) => {
4608
+ for (var s = n > 1 ? void 0 : n ? Uc(e, a) : e, r = c.length - 1, f; r >= 0; r--)
4609
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
4610
+ return n && s && Nc(e, a, s), s;
4485
4611
  };
4486
- let $e = class extends ee {
4612
+ let Te = class extends ae {
4487
4613
  constructor() {
4488
- super(...arguments), this.store = new pt(this, p), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = xc({
4614
+ super(...arguments), this.store = new pt(this, p), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = kc({
4489
4615
  touchNavigation: !0,
4490
4616
  loop: !0,
4491
4617
  autoplayVideos: !0,
@@ -4530,8 +4656,8 @@ let $e = class extends ee {
4530
4656
  }
4531
4657
  const c = [];
4532
4658
  this.glightboxImages.forEach((e, a) => {
4533
- e.addEventListener("click", (s) => {
4534
- console.log(`Image clicked >>> ${a}`), s.preventDefault(), this.lightbox.openAt(a);
4659
+ e.addEventListener("click", (n) => {
4660
+ console.log(`Image clicked >>> ${a}`), n.preventDefault(), this.lightbox.openAt(a);
4535
4661
  }), "src" in e && c.push({
4536
4662
  href: e.src,
4537
4663
  type: "image"
@@ -4549,9 +4675,9 @@ let $e = class extends ee {
4549
4675
  _addCopyEvents() {
4550
4676
  this.copyBtns.forEach((c) => {
4551
4677
  c.addEventListener("click", () => {
4552
- var a, s;
4553
- const e = (s = (a = c.parentElement) == null ? void 0 : a.nextElementSibling) == null ? void 0 : s.textContent;
4554
- e && Ka(e).then(() => {
4678
+ var a, n;
4679
+ const e = (n = (a = c.parentElement) == null ? void 0 : a.nextElementSibling) == null ? void 0 : n.textContent;
4680
+ e && Qa(e).then(() => {
4555
4681
  c.textContent = "Success", setTimeout(() => {
4556
4682
  c.textContent = "Copy";
4557
4683
  }, 500);
@@ -4566,12 +4692,12 @@ let $e = class extends ee {
4566
4692
  });
4567
4693
  }
4568
4694
  render() {
4569
- return ce(
4695
+ return ee(
4570
4696
  this.message.data || this.message.isThinking,
4571
4697
  () => g`
4572
4698
  <div class="cb-message-row" part="bot-message">
4573
4699
  <!-- message -->
4574
- ${ce(
4700
+ ${ee(
4575
4701
  this._isBot,
4576
4702
  () => this.renderBotMessage(this.message),
4577
4703
  () => this.renderUserMessage(this.message)
@@ -4585,7 +4711,7 @@ let $e = class extends ee {
4585
4711
  return g`<div class="cb-message__buttons ${c}">
4586
4712
  <!-- delete button -->
4587
4713
  <sl-button class="cb-message__delete-button" name="trash" @click=${this._removeMessageHandler} circle variant="text" size="small">
4588
- <cb-icon svg="${Bc}" style="font-size: 1em !important;"></cb-icon>
4714
+ <cb-icon svg="${Rc}" style="font-size: 1em !important;"></cb-icon>
4589
4715
  </sl-button>
4590
4716
  </div>`;
4591
4717
  }
@@ -4604,36 +4730,50 @@ let $e = class extends ee {
4604
4730
  `;
4605
4731
  }
4606
4732
  async _getMessageText(c) {
4607
- return this._isBot ? Wt(c.data.text) : c.data.text;
4733
+ return this._isBot ? Yt(c.data.text) : c.data.text;
4608
4734
  }
4609
4735
  renderMessageContent(c) {
4610
4736
  var e;
4611
4737
  return c.isThinking ? g`<cb-thinking></cb-thinking>` : c.isUploading ? g`<cb-uploading .files="${c.data.files || []}"></cb-uploading>` : c.type === "text" ? g`<div class="cb-message-text">
4612
- ${ce(
4738
+ ${ee(
4613
4739
  c.data.userName,
4614
- () => g`<div style="font-size: 12px; color:#9ca3af">${c.data.userName}</div>`,
4740
+ () => g`<div class="assistant-message-user-name">${c.data.userName}</div>`,
4615
4741
  () => null
4616
4742
  )}
4617
4743
  ${Dt(
4618
4744
  this._getMessageText(c).then((a) => g`${a}`)
4619
4745
  )}
4620
- </div>` : c.type === "file" ? g`${Ye(
4746
+ </div>` : c.type === "file" ? g`${ze(
4621
4747
  c.data.files || [],
4622
4748
  (a) => a.id,
4623
4749
  (a) => g`<cb-file filename="${a.name}" url="${a.url}"></cb-file>`
4750
+ )}` : c.type === "upload" ? g`${ze(
4751
+ c.data.uploadedFiles || [],
4752
+ (a) => a.name,
4753
+ (a) => g`<div>${a.name}</div>`
4624
4754
  )}` : g`<div class="cb-message-text">
4625
4755
  ${Dt(
4626
- Wt(((e = c.data.text) == null ? void 0 : e.toString()) || "").then((a) => g`${a}`)
4756
+ Yt(((e = c.data.text) == null ? void 0 : e.toString()) || "").then((a) => g`${a}`)
4627
4757
  )}
4628
4758
  </div>`;
4629
4759
  }
4760
+ renderMessageUploads(c) {
4761
+ if (c.type === "upload")
4762
+ return g`<div class="user-message-uploads">
4763
+ ${ze(
4764
+ c.data.uploadedFiles || [],
4765
+ (e) => e.name,
4766
+ (e) => ((e == null ? void 0 : e.type) || "").startsWith("image/") ? g`<img src="data:${e.type};base64,${e.base64}" alt="${e.name}" />` : null
4767
+ )}
4768
+ </div>`;
4769
+ }
4630
4770
  renderBotMessageAvatar(c) {
4631
4771
  var e;
4632
4772
  if (c.data.userName && c.data.userName !== "") {
4633
4773
  const a = ((e = c.data) == null ? void 0 : e.userAvatar) || "";
4634
- return a !== "" ? g` <img src="${a}" style="width: 24px;height: 24px;" /> ` : be`${Y(p.setting.agentIconSvg)}`;
4774
+ return a !== "" ? g` <img src="${a}" style="width: 24px;height: 24px;" /> ` : be`${W(p.setting.agentIconSvg)}`;
4635
4775
  }
4636
- return c.author === "system" ? be`${Y(p.setting.systemIconSvg)}` : be`${Y(p.setting.botIconSvg)}`;
4776
+ return c.author === "system" ? be`${W(p.setting.systemIconSvg)}` : be`${W(p.setting.botIconSvg)}`;
4637
4777
  }
4638
4778
  renderBotMessage(c) {
4639
4779
  return g`
@@ -4647,8 +4787,8 @@ let $e = class extends ee {
4647
4787
  renderBotMessageFeedback(c) {
4648
4788
  return this.suppressFeedback || !p.setting.feedbackEnabled ? null : g`
4649
4789
  <div class="cb-message-feedback-tools">
4650
- <div class="cb-message-feedback-icon cb-feedback-up" @click="${() => this.startFeedback(!0, c)}">${be`${Y(oa)}`}</div>
4651
- <div class="cb-message-feedback-icon cb-feedback-down" @click="${() => this.startFeedback(!1, c)}">${be`${Y(ra)}`}</div>
4790
+ <div class="cb-message-feedback-icon cb-feedback-up" @click="${() => this.startFeedback(!0, c)}">${be`${W(ra)}`}</div>
4791
+ <div class="cb-message-feedback-icon cb-feedback-down" @click="${() => this.startFeedback(!1, c)}">${be`${W(da)}`}</div>
4652
4792
  </div>
4653
4793
  `;
4654
4794
  }
@@ -4659,51 +4799,74 @@ let $e = class extends ee {
4659
4799
  return g`
4660
4800
  <div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
4661
4801
  <!--<sl-avatar class="avatar user-avatar small" label="User">
4662
- <cb-icon slot="icon" svg="${Rc}" color="white"></cb-icon>
4802
+ <cb-icon slot="icon" svg="${Ut}" color="white"></cb-icon>
4803
+ //appState.appearanceUserMessageAvatarPosition
4804
+ </sl-avatar>-->
4805
+ ${ee(
4806
+ p.appearanceUserMessageAvatarPosition === "left",
4807
+ () => g`
4808
+ <div class="avatar user-avatar">${W(p.setting.userIconSvg)}</div>
4809
+ ${this.renderMessage(c, "user-message-content")}
4810
+ `,
4811
+ () => g`
4812
+ ${this.renderMessage(c, "user-message-content")}
4813
+ <div class="avatar user-avatar">${W(p.setting.userIconSvg)}</div>
4814
+ `
4815
+ )}
4816
+ </div>
4817
+ ${this.renderMessageUploads(c)}
4818
+ `;
4819
+ }
4820
+ // todo ???
4821
+ renderUserMessageUpload(c) {
4822
+ return g`
4823
+ <div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
4824
+ <!--<sl-avatar class="avatar user-avatar small" label="User">
4825
+ <cb-icon slot="icon" svg="${Ut}" color="white"></cb-icon>
4663
4826
  //appState.appearanceUserMessageAvatarPosition
4664
4827
  </sl-avatar>-->
4665
- ${ce(
4828
+ ${ee(
4666
4829
  p.appearanceUserMessageAvatarPosition === "left",
4667
4830
  () => g`
4668
- <div class="avatar user-avatar">${Y(p.setting.userIconSvg)}</div>
4831
+ <div class="avatar user-avatar">${W(p.setting.userIconSvg)}</div>
4669
4832
  ${this.renderMessage(c, "user-message-content")}
4670
4833
  `,
4671
4834
  () => g`
4672
4835
  ${this.renderMessage(c, "user-message-content")}
4673
- <div class="avatar user-avatar">${Y(p.setting.userIconSvg)}</div>
4836
+ <div class="avatar user-avatar">${W(p.setting.userIconSvg)}</div>
4674
4837
  `
4675
4838
  )}
4676
4839
  </div>
4677
4840
  `;
4678
4841
  }
4679
4842
  };
4680
- $e.styles = Dc;
4681
- Fe([
4843
+ Te.styles = Dc;
4844
+ Ne([
4682
4845
  v({ type: Object })
4683
- ], $e.prototype, "message", 2);
4684
- Fe([
4846
+ ], Te.prototype, "message", 2);
4847
+ Ne([
4685
4848
  v({ type: String })
4686
- ], $e.prototype, "type", 2);
4687
- Fe([
4849
+ ], Te.prototype, "type", 2);
4850
+ Ne([
4688
4851
  v({ type: Boolean })
4689
- ], $e.prototype, "suppressFeedback", 2);
4690
- Fe([
4691
- Kt(".code-block-header__copy")
4692
- ], $e.prototype, "copyBtns", 2);
4693
- Fe([
4694
- Kt("img")
4695
- ], $e.prototype, "glightboxImages", 2);
4696
- $e = Fe([
4852
+ ], Te.prototype, "suppressFeedback", 2);
4853
+ Ne([
4854
+ Qt(".code-block-header__copy")
4855
+ ], Te.prototype, "copyBtns", 2);
4856
+ Ne([
4857
+ Qt("img")
4858
+ ], Te.prototype, "glightboxImages", 2);
4859
+ Te = Ne([
4697
4860
  J("cb-message")
4698
- ], $e);
4699
- var Wc = Object.defineProperty, Yc = Object.getOwnPropertyDescriptor, ye = (c, e, a, s) => {
4700
- for (var n = s > 1 ? void 0 : s ? Yc(e, a) : e, d = c.length - 1, f; d >= 0; d--)
4701
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
4702
- return s && n && Wc(e, a, n), n;
4861
+ ], Te);
4862
+ var Wc = Object.defineProperty, Yc = Object.getOwnPropertyDescriptor, ye = (c, e, a, n) => {
4863
+ for (var s = n > 1 ? void 0 : n ? Yc(e, a) : e, r = c.length - 1, f; r >= 0; r--)
4864
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
4865
+ return n && s && Wc(e, a, s), s;
4703
4866
  };
4704
4867
  const we = Ke.noConflict();
4705
4868
  we.setLevel("info");
4706
- let le = class extends ee {
4869
+ let le = class extends ae {
4707
4870
  constructor() {
4708
4871
  super(...arguments), this.messages = [], this.actions = [], this.form = null, this.suppressFeedback = !1, this.calendlyInjected = !1, this.activeCalendlyAction = -1, this.hubspotMeetingInjected = !1, this.activeHubspotMeetingAction = -1;
4709
4872
  }
@@ -4717,7 +4880,7 @@ let le = class extends ee {
4717
4880
  render() {
4718
4881
  return g`
4719
4882
  <div class="cb-message-list" part="bot-message-list">
4720
- ${Ye(
4883
+ ${ze(
4721
4884
  this.messages,
4722
4885
  (c) => c.id + JSON.stringify(c.data),
4723
4886
  (c) => g`<cb-message .message="${c}" exportparts="bot-message, cb-message, bot-message-content, user-message-content" ?suppressFeedback=${this.suppressFeedback}></cb-message>`
@@ -4730,7 +4893,7 @@ let le = class extends ee {
4730
4893
  renderForm() {
4731
4894
  return this.form ? g` <form class="cb-input-form" part="form" @submit="${this.handleFormSubmit.bind(this)}">
4732
4895
  <div class="cb-input-form-title" part="form-title">${this.form.title}</div>
4733
- ${Ye(
4896
+ ${ze(
4734
4897
  this.form.fields,
4735
4898
  (c, e) => e,
4736
4899
  (c) => {
@@ -4769,21 +4932,21 @@ let le = class extends ee {
4769
4932
  ?required="${e}"
4770
4933
  ></sl-input>`;
4771
4934
  case "select": {
4772
- const s = Array.isArray(c.options) ? c.options : c.options.split(",").map((n) => n.trim());
4773
- return a || s[0], g`<div class="cb-form-field">
4935
+ const n = Array.isArray(c.options) ? c.options : c.options.split(",").map((s) => s.trim());
4936
+ return a || n[0], g`<div class="cb-form-field">
4774
4937
  <label class="cb-form-field-label"
4775
4938
  >${c.title}
4776
- ${ce(
4939
+ ${ee(
4777
4940
  e,
4778
4941
  () => g`*`,
4779
4942
  () => g``
4780
4943
  )}
4781
4944
  </label>
4782
4945
  <select id="${"cb-form-field" + c.name}" class="cb-form-field-select" part="form-input" name="${c.name}">
4783
- ${Ye(
4784
- s,
4785
- (n, d) => d,
4786
- (n) => g`<option value="${n}">${n}</option>`
4946
+ ${ze(
4947
+ n,
4948
+ (s, r) => r,
4949
+ (s) => g`<option value="${s}">${s}</option>`
4787
4950
  )}
4788
4951
  </select>
4789
4952
  </div>`;
@@ -4799,12 +4962,12 @@ let le = class extends ee {
4799
4962
  const e = {};
4800
4963
  if (Array.isArray(this.form.fields))
4801
4964
  for (let a = 0; a < this.form.fields.length; a++) {
4802
- const s = this.form.fields[a], n = "#cb-form-field" + s.name, d = this._inputForm.querySelector(n);
4803
- if (d)
4804
- if ("validity" in d && d.validity.valid)
4805
- console.log(`Got Field: ${s.name} value: ${d.value}`, d.validity), e[s.name] = d.value;
4965
+ const n = this.form.fields[a], s = "#cb-form-field" + n.name, r = this._inputForm.querySelector(s);
4966
+ if (r)
4967
+ if ("validity" in r && r.validity.valid)
4968
+ console.log(`Got Field: ${n.name} value: ${r.value}`, r.validity), e[n.name] = r.value;
4806
4969
  else {
4807
- console.error(`Field is invalid: ${s.name} value: ${d.value}`, d.validity);
4970
+ console.error(`Field is invalid: ${n.name} value: ${r.value}`, r.validity);
4808
4971
  return;
4809
4972
  }
4810
4973
  }
@@ -4832,7 +4995,7 @@ let le = class extends ee {
4832
4995
  renderActions() {
4833
4996
  return !Array.isArray(this.actions) || this.actions.length <= 0 ? null : g`
4834
4997
  <div class="cb-actions-list">
4835
- ${Ye(
4998
+ ${ze(
4836
4999
  this.actions,
4837
5000
  (c) => c,
4838
5001
  (c) => this.renderAction(c)
@@ -4874,9 +5037,9 @@ let le = class extends ee {
4874
5037
  e.href = "https://assets.calendly.com/assets/external/widget.css", e.rel = "stylesheet", document.body.appendChild(e);
4875
5038
  let a = document.createElement("script");
4876
5039
  a.type = "text/javascript", a.src = "https://assets.calendly.com/assets/external/widget.js", document.body.appendChild(a);
4877
- let s = document.createElement("style");
4878
- s.type = "text/css", s.textContent = ".calendly-overlay { z-index:10100; }", document.body.appendChild(s), console.log("Injected Calendly"), window.addEventListener("message", (n) => {
4879
- n.origin === "https://calendly.com" && n.data.event && n.data.event.indexOf("calendly.") !== -1 && this.handleCalendlyEvent(n);
5040
+ let n = document.createElement("style");
5041
+ n.type = "text/css", n.textContent = ".calendly-overlay { z-index:10100; }", document.body.appendChild(n), console.log("Injected Calendly"), window.addEventListener("message", (s) => {
5042
+ s.origin === "https://calendly.com" && s.data.event && s.data.event.indexOf("calendly.") !== -1 && this.handleCalendlyEvent(s);
4880
5043
  }), this.calendlyInjected = !0;
4881
5044
  }
4882
5045
  return g`
@@ -4910,17 +5073,17 @@ let le = class extends ee {
4910
5073
  `;
4911
5074
  }
4912
5075
  invokeHubspotMeetingAction(c = {}) {
4913
- var a, s;
5076
+ var a, n;
4914
5077
  const e = Date.now();
4915
5078
  if (this.activeHubspotMeetingAction !== -1) {
4916
5079
  we.info(`invokeHubspotMeetingAction: action ${this.activeHubspotMeetingAction} is already active - ignored`);
4917
5080
  return;
4918
5081
  }
4919
- if (we.info("invokeHubspotMeetingAction:", c), "hbspt" in window && typeof ((s = (a = window.hbspt) == null ? void 0 : a.meetings) == null ? void 0 : s.create) == "function") {
4920
- const n = document.getElementById("enegelai-bot-hubspot-meeting-container"), d = document.querySelector(".enegelai-bot-hubspot-meeting-widget");
4921
- if (n && d) {
5082
+ if (we.info("invokeHubspotMeetingAction:", c), "hbspt" in window && typeof ((n = (a = window.hbspt) == null ? void 0 : a.meetings) == null ? void 0 : n.create) == "function") {
5083
+ const s = document.getElementById("enegelai-bot-hubspot-meeting-container"), r = document.querySelector(".enegelai-bot-hubspot-meeting-widget");
5084
+ if (s && r) {
4922
5085
  const f = c.url + "?embed=true";
4923
- d.setAttribute("data-src", f), this.activeHubspotMeetingAction = c.internalId, n.style.display = "block", window.hbspt.meetings.create(".enegelai-bot-hubspot-meeting-widget"), p.updateAction(c, {
5086
+ r.setAttribute("data-src", f), this.activeHubspotMeetingAction = c.internalId, s.style.display = "block", window.hbspt.meetings.create(".enegelai-bot-hubspot-meeting-widget"), p.updateAction(c, {
4924
5087
  triggered: e
4925
5088
  });
4926
5089
  }
@@ -4928,14 +5091,14 @@ let le = class extends ee {
4928
5091
  return !1;
4929
5092
  }
4930
5093
  handleHubspotEvent(c) {
4931
- var s;
4932
- if (we.info("Got Hubspot Event:", c.data), !(((s = c == null ? void 0 : c.data) == null ? void 0 : s.meetingBookSucceeded) || !1))
5094
+ var n;
5095
+ if (we.info("Got Hubspot Event:", c.data), !(((n = c == null ? void 0 : c.data) == null ? void 0 : n.meetingBookSucceeded) || !1))
4933
5096
  return;
4934
5097
  const a = this.activeHubspotMeetingAction;
4935
5098
  if (a >= 0) {
4936
5099
  p.removeAction(a, !0, c.data), p.addSystemMessage("Your meeting has been scheduled!"), this.activeHubspotMeetingAction = -1;
4937
- const n = document.getElementById("enegelai-bot-hubspot-meeting-container");
4938
- n && (n.style.display = "none");
5100
+ const s = document.getElementById("enegelai-bot-hubspot-meeting-container");
5101
+ s && (s.style.display = "none");
4939
5102
  }
4940
5103
  }
4941
5104
  handleHubspotMeetingCancel() {
@@ -4954,11 +5117,11 @@ let le = class extends ee {
4954
5117
  </div>
4955
5118
  <div class="enegelai-bot-hubspot-meeting-widget"></div>
4956
5119
  </div>
4957
- `, document.body.appendChild(a), console.log("Injected Hubspot"), window.addEventListener("message", (n) => {
4958
- n.origin.indexOf("hubspot") !== -1 && this.handleHubspotEvent(n);
5120
+ `, document.body.appendChild(a), console.log("Injected Hubspot"), window.addEventListener("message", (s) => {
5121
+ s.origin.indexOf("hubspot") !== -1 && this.handleHubspotEvent(s);
4959
5122
  });
4960
- const s = document.getElementById("enegelai-bot-hubspot-meeting-cancel");
4961
- s && s.addEventListener("click", (n) => {
5123
+ const n = document.getElementById("enegelai-bot-hubspot-meeting-cancel");
5124
+ n && n.addEventListener("click", (s) => {
4962
5125
  this.handleHubspotMeetingCancel();
4963
5126
  }), this.hubspotMeetingInjected = !0;
4964
5127
  }
@@ -4981,7 +5144,7 @@ let le = class extends ee {
4981
5144
  `;
4982
5145
  }
4983
5146
  };
4984
- le.styles = vc;
5147
+ le.styles = wc;
4985
5148
  ye([
4986
5149
  v({ type: Array })
4987
5150
  ], le.prototype, "messages", 2);
@@ -4995,10 +5158,10 @@ ye([
4995
5158
  v({ type: Boolean })
4996
5159
  ], le.prototype, "suppressFeedback", 2);
4997
5160
  ye([
4998
- xe("#cb-message-list-bottom-anchor")
5161
+ ke("#cb-message-list-bottom-anchor")
4999
5162
  ], le.prototype, "_messageListBottomAnchor", 2);
5000
5163
  ye([
5001
- xe(".cb-input-form")
5164
+ ke(".cb-input-form")
5002
5165
  ], le.prototype, "_inputForm", 2);
5003
5166
  ye([
5004
5167
  Mt({ capture: !1, passive: !0 })
@@ -5027,7 +5190,7 @@ const Xc = X`
5027
5190
  display: flex;
5028
5191
  flex-direction: row;
5029
5192
  justify-content: space-between;
5030
- align-items: center;
5193
+ align-items: start;
5031
5194
  }
5032
5195
 
5033
5196
  .cb-user-input {
@@ -5040,7 +5203,6 @@ const Xc = X`
5040
5203
 
5041
5204
  .paperclip-button {
5042
5205
  font-size: 1.5em;
5043
- position: relative;
5044
5206
  }
5045
5207
 
5046
5208
  .file-input {
@@ -5051,15 +5213,17 @@ const Xc = X`
5051
5213
  }
5052
5214
 
5053
5215
  .cb-input-buttons {
5054
- padding: 0 5px;
5216
+ display: flex;
5217
+ align-items: center;
5218
+ margin: 6px 2px;
5055
5219
  }
5056
5220
  `, Gc = '<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.576zm6.787-8.201L1.591 6.602l4.339 2.76z"/></svg>', Zc = '<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 0z"/></svg>';
5057
- var Jc = Object.defineProperty, Kc = Object.getOwnPropertyDescriptor, ke = (c, e, a, s) => {
5058
- for (var n = s > 1 ? void 0 : s ? Kc(e, a) : e, d = c.length - 1, f; d >= 0; d--)
5059
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
5060
- return s && n && Jc(e, a, n), n;
5221
+ var Jc = Object.defineProperty, Kc = Object.getOwnPropertyDescriptor, Ce = (c, e, a, n) => {
5222
+ for (var s = n > 1 ? void 0 : n ? Kc(e, a) : e, r = c.length - 1, f; r >= 0; r--)
5223
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
5224
+ return n && s && Jc(e, a, s), s;
5061
5225
  };
5062
- let he = class extends ee {
5226
+ let he = class extends ae {
5063
5227
  constructor() {
5064
5228
  super(...arguments), this.placeholder = "Type a message...", this.sendButtonLabel = "Send", this.enableFileUpload = !1, this.value = "", this.loading = !1, this.disabled = !1, this.currentKey = "";
5065
5229
  }
@@ -5067,8 +5231,8 @@ let he = class extends ee {
5067
5231
  super.connectedCallback(), addEventListener("form:submit", this._formSubmitHandler.bind(this)), addEventListener("c7o:bot:input:setvalue", this._inputSetValueHandler.bind(this));
5068
5232
  }
5069
5233
  async _inputSetValueHandler(c) {
5070
- var s, n;
5071
- const e = c, a = typeof ((s = e == null ? void 0 : e.detail) == null ? void 0 : s.inputValue) == "string" && ((n = e == null ? void 0 : e.detail) == null ? void 0 : n.inputValue) || "";
5234
+ var n, s;
5235
+ const e = c, a = typeof ((n = e == null ? void 0 : e.detail) == null ? void 0 : n.inputValue) == "string" && ((s = e == null ? void 0 : e.detail) == null ? void 0 : s.inputValue) || "";
5072
5236
  this.value = a;
5073
5237
  }
5074
5238
  async _formSubmitHandler(c) {
@@ -5095,7 +5259,7 @@ let he = class extends ee {
5095
5259
  });
5096
5260
  }
5097
5261
  async _sendFileHandler() {
5098
- const c = await Qa();
5262
+ const c = await ec(!1);
5099
5263
  this.emit("message:send:file", {
5100
5264
  detail: {
5101
5265
  files: c
@@ -5104,7 +5268,7 @@ let he = class extends ee {
5104
5268
  }
5105
5269
  render() {
5106
5270
  return g`
5107
- ${ce(
5271
+ ${ee(
5108
5272
  this.loading,
5109
5273
  () => g`<sl-progress-bar style="--height: 2px;" indeterminate></sl-progress-bar>`,
5110
5274
  () => g``
@@ -5127,10 +5291,13 @@ let he = class extends ee {
5127
5291
  ></sl-textarea>
5128
5292
 
5129
5293
  <span class="cb-input-buttons">
5130
- ${ce(
5294
+ <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>
5295
+ <cb-icon svg="${Gc}"></cb-icon>
5296
+ </sl-button>
5297
+ ${ee(
5131
5298
  this.enableFileUpload,
5132
5299
  () => g`
5133
- <sl-button @click=${this._sendFileHandler} name="paperclip" label="Attachment" size="large" class="paperclip-button" variant="text" circle>
5300
+ <sl-button @click=${this._sendFileHandler} name="paperclip" label="Attachment" size="small" class="paperclip-button" variant="text" circle>
5134
5301
  <cb-icon svg="${Zc}"></cb-icon>
5135
5302
  <!-- select file input -->
5136
5303
  <input type="file" id="file" name="file" class="file-input" />
@@ -5138,9 +5305,6 @@ let he = class extends ee {
5138
5305
  `,
5139
5306
  () => g``
5140
5307
  )}
5141
- <sl-button @click=${this._sendHandler} name="send" label="Send" size="medium" class="send-button" variant="text" ?disabled=${this.value.length === 0} ?loading=${this.loading} circle>
5142
- <cb-icon svg="${Gc}"></cb-icon>
5143
- </sl-button>
5144
5308
  </span>
5145
5309
  </div>
5146
5310
  `;
@@ -5150,34 +5314,34 @@ let he = class extends ee {
5150
5314
  }
5151
5315
  };
5152
5316
  he.styles = Xc;
5153
- ke([
5317
+ Ce([
5154
5318
  v({ type: String, attribute: "placeholder" })
5155
5319
  ], he.prototype, "placeholder", 2);
5156
- ke([
5320
+ Ce([
5157
5321
  v({ type: String, attribute: "send-button-label" })
5158
5322
  ], he.prototype, "sendButtonLabel", 2);
5159
- ke([
5323
+ Ce([
5160
5324
  v({ type: Boolean, attribute: "enable-file-upload" })
5161
5325
  ], he.prototype, "enableFileUpload", 2);
5162
- ke([
5326
+ Ce([
5163
5327
  v({ type: String })
5164
5328
  ], he.prototype, "value", 2);
5165
- ke([
5329
+ Ce([
5166
5330
  v({ type: Boolean })
5167
5331
  ], he.prototype, "loading", 2);
5168
- ke([
5332
+ Ce([
5169
5333
  v({ type: Boolean })
5170
5334
  ], he.prototype, "disabled", 2);
5171
- ke([
5335
+ Ce([
5172
5336
  v({ type: String })
5173
5337
  ], he.prototype, "currentKey", 2);
5174
- ke([
5175
- xe("sl-textarea")
5338
+ Ce([
5339
+ ke("sl-textarea")
5176
5340
  ], he.prototype, "inputElement", 2);
5177
- he = ke([
5341
+ he = Ce([
5178
5342
  J("cb-user-input")
5179
5343
  ], he);
5180
- const da = '<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 8z"/></svg>', Qc = X`
5344
+ const fa = '<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 8z"/></svg>', Qc = X`
5181
5345
  ${me}
5182
5346
 
5183
5347
  sl-dialog::part(base) {
@@ -5212,12 +5376,12 @@ const da = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="c
5212
5376
  gap: 8px;
5213
5377
  }
5214
5378
  `;
5215
- var ei = Object.defineProperty, ti = Object.getOwnPropertyDescriptor, gt = (c, e, a, s) => {
5216
- for (var n = s > 1 ? void 0 : s ? ti(e, a) : e, d = c.length - 1, f; d >= 0; d--)
5217
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
5218
- return s && n && ei(e, a, n), n;
5379
+ var ei = Object.defineProperty, ti = Object.getOwnPropertyDescriptor, gt = (c, e, a, n) => {
5380
+ for (var s = n > 1 ? void 0 : n ? ti(e, a) : e, r = c.length - 1, f; r >= 0; r--)
5381
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
5382
+ return n && s && ei(e, a, s), s;
5219
5383
  };
5220
- let De = class extends ee {
5384
+ let Fe = class extends ae {
5221
5385
  constructor() {
5222
5386
  super(...arguments), this.open = !1, this.label = "Dialog", this.zindex = 100;
5223
5387
  }
@@ -5248,7 +5412,7 @@ let De = class extends ee {
5248
5412
  <cb-icon
5249
5413
  color="default"
5250
5414
  style="font-size: 1em;"
5251
- svg="${da}"
5415
+ svg="${fa}"
5252
5416
  ></cb-icon>
5253
5417
  </sl-button>
5254
5418
  </header>
@@ -5261,25 +5425,25 @@ let De = class extends ee {
5261
5425
  </sl-dialog>`;
5262
5426
  }
5263
5427
  };
5264
- De.styles = Qc;
5428
+ Fe.styles = Qc;
5265
5429
  gt([
5266
5430
  v({ type: Boolean })
5267
- ], De.prototype, "open", 2);
5431
+ ], Fe.prototype, "open", 2);
5268
5432
  gt([
5269
5433
  v({ type: String, attribute: "label" })
5270
- ], De.prototype, "label", 2);
5434
+ ], Fe.prototype, "label", 2);
5271
5435
  gt([
5272
5436
  v({ type: Number })
5273
- ], De.prototype, "zindex", 2);
5274
- De = gt([
5437
+ ], Fe.prototype, "zindex", 2);
5438
+ Fe = gt([
5275
5439
  J("cb-dialog")
5276
- ], De);
5277
- var ai = Object.defineProperty, ci = Object.getOwnPropertyDescriptor, fa = (c, e, a, s) => {
5278
- for (var n = s > 1 ? void 0 : s ? ci(e, a) : e, d = c.length - 1, f; d >= 0; d--)
5279
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
5280
- return s && n && ai(e, a, n), n;
5440
+ ], Fe);
5441
+ var ai = Object.defineProperty, ci = Object.getOwnPropertyDescriptor, la = (c, e, a, n) => {
5442
+ for (var s = n > 1 ? void 0 : n ? ci(e, a) : e, r = c.length - 1, f; r >= 0; r--)
5443
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
5444
+ return n && s && ai(e, a, s), s;
5281
5445
  };
5282
- let dt = class extends ee {
5446
+ let dt = class extends ae {
5283
5447
  constructor() {
5284
5448
  super(...arguments), this.open = !1;
5285
5449
  }
@@ -5321,10 +5485,10 @@ dt.styles = X`
5321
5485
  z-index: 1000;
5322
5486
  }
5323
5487
  `;
5324
- fa([
5488
+ la([
5325
5489
  v({ type: Boolean })
5326
5490
  ], dt.prototype, "open", 2);
5327
- dt = fa([
5491
+ dt = la([
5328
5492
  J("cb-clear-message-dialog")
5329
5493
  ], dt);
5330
5494
  const ii = X`
@@ -5387,12 +5551,12 @@ const ii = X`
5387
5551
  grid-column-start: 2;
5388
5552
  }
5389
5553
  `;
5390
- var ni = Object.defineProperty, si = Object.getOwnPropertyDescriptor, Ne = (c, e, a, s) => {
5391
- for (var n = s > 1 ? void 0 : s ? si(e, a) : e, d = c.length - 1, f; d >= 0; d--)
5392
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
5393
- return s && n && ni(e, a, n), n;
5554
+ var ni = Object.defineProperty, si = Object.getOwnPropertyDescriptor, Ue = (c, e, a, n) => {
5555
+ for (var s = n > 1 ? void 0 : n ? si(e, a) : e, r = c.length - 1, f; r >= 0; r--)
5556
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
5557
+ return n && s && ni(e, a, s), s;
5394
5558
  };
5395
- let Me = class extends ee {
5559
+ let Ee = class extends ae {
5396
5560
  constructor() {
5397
5561
  super(...arguments), this.open = !1, this.clearMessageDialogOpen = !1, this.customRequest = !1;
5398
5562
  }
@@ -5425,7 +5589,7 @@ let Me = class extends ee {
5425
5589
  Enable it for your own backend.
5426
5590
  </sl-switch>
5427
5591
  </div> -->
5428
- ${ce(
5592
+ ${ee(
5429
5593
  this.customRequest,
5430
5594
  () => null,
5431
5595
  () => this.renderInternalServices()
@@ -5485,13 +5649,13 @@ let Me = class extends ee {
5485
5649
  }
5486
5650
  // input change handler
5487
5651
  _inputChangeHandler(c) {
5488
- const { name: e, value: a } = c.target, [s, n] = e.split(".");
5489
- n ? this.setting[s][n] = a : this.setting[s] = a;
5652
+ const { name: e, value: a } = c.target, [n, s] = e.split(".");
5653
+ s ? this.setting[n][s] = a : this.setting[n] = a;
5490
5654
  }
5491
5655
  // checked change handler
5492
5656
  _checkChangeHandler(c) {
5493
- const { name: e, checked: a } = c.target, [s, n] = e.split(".");
5494
- n ? this.setting[s][n] = a : this.setting[s] = a, s === "customRequest" && (this.customRequest = a);
5657
+ const { name: e, checked: a } = c.target, [n, s] = e.split(".");
5658
+ s ? this.setting[n][s] = a : this.setting[n] = a, n === "customRequest" && (this.customRequest = a);
5495
5659
  }
5496
5660
  // emit setting confirm event
5497
5661
  _settingConfirmHandler() {
@@ -5512,25 +5676,25 @@ let Me = class extends ee {
5512
5676
  });
5513
5677
  }
5514
5678
  };
5515
- Me.styles = ii;
5516
- Ne([
5679
+ Ee.styles = ii;
5680
+ Ue([
5517
5681
  v({ type: Boolean })
5518
- ], Me.prototype, "open", 2);
5519
- Ne([
5682
+ ], Ee.prototype, "open", 2);
5683
+ Ue([
5520
5684
  v({ type: Object })
5521
- ], Me.prototype, "setting", 2);
5522
- Ne([
5685
+ ], Ee.prototype, "setting", 2);
5686
+ Ue([
5523
5687
  v({ type: Boolean })
5524
- ], Me.prototype, "clearMessageDialogOpen", 2);
5525
- Ne([
5526
- xe("sl-dialog")
5527
- ], Me.prototype, "dialog", 2);
5528
- Ne([
5688
+ ], Ee.prototype, "clearMessageDialogOpen", 2);
5689
+ Ue([
5690
+ ke("sl-dialog")
5691
+ ], Ee.prototype, "dialog", 2);
5692
+ Ue([
5529
5693
  v({ type: Boolean })
5530
- ], Me.prototype, "customRequest", 2);
5531
- Me = Ne([
5694
+ ], Ee.prototype, "customRequest", 2);
5695
+ Ee = Ue([
5532
5696
  J("cb-setting")
5533
- ], Me);
5697
+ ], Ee);
5534
5698
  const oi = X`
5535
5699
  ${me}
5536
5700
  :host {
@@ -5645,12 +5809,12 @@ const oi = X`
5645
5809
  margin: 4px 4px 0px 0px;
5646
5810
  }
5647
5811
  `;
5648
- var ri = Object.defineProperty, di = Object.getOwnPropertyDescriptor, la = (c, e, a, s) => {
5649
- for (var n = s > 1 ? void 0 : s ? di(e, a) : e, d = c.length - 1, f; d >= 0; d--)
5650
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
5651
- return s && n && ri(e, a, n), n;
5812
+ var ri = Object.defineProperty, di = Object.getOwnPropertyDescriptor, ba = (c, e, a, n) => {
5813
+ for (var s = n > 1 ? void 0 : n ? di(e, a) : e, r = c.length - 1, f; r >= 0; r--)
5814
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
5815
+ return n && s && ri(e, a, s), s;
5652
5816
  };
5653
- let ft = class extends ee {
5817
+ let ft = class extends ae {
5654
5818
  constructor() {
5655
5819
  super(...arguments), this.store = new pt(this, p), this.open = !1;
5656
5820
  }
@@ -5686,24 +5850,24 @@ let ft = class extends ee {
5686
5850
  <div class="cb-anchor ${this.open ? "open" : ""}" part="anchor" @click=${this._clickHandler.bind(this)}>
5687
5851
  <sl-popup placement="${this.getPopupPlacement()}" distance="16" ?active="${p.engage && !p.open}">
5688
5852
  <sl-button slot="anchor" label="Start" size="large" variant="primary" class="anchor-button" circle>
5689
- ${ce(
5853
+ ${ee(
5690
5854
  this.open,
5691
- () => g`<div class="cb-anchor-icon" part="anchor-icon">${be`${Y(p.setting.anchorCloseSvg)}`}</div>`,
5692
- () => g`<div class="cb-anchor-icon" part="anchor-icon">${be`${Y(p.setting.anchorOpenSvg)}`}</div>`
5855
+ () => g`<div class="cb-anchor-icon" part="anchor-icon">${be`${W(p.setting.anchorCloseSvg)}`}</div>`,
5856
+ () => g`<div class="cb-anchor-icon" part="anchor-icon">${be`${W(p.setting.anchorOpenSvg)}`}</div>`
5693
5857
  )}
5694
- ${ce(
5858
+ ${ee(
5695
5859
  !this.open && p.unreadMessages > 0,
5696
5860
  () => g`<sl-badge part="anchor-badge" class="cb-anchor-badge" variant="${this.getBadgeVariant()}" pill>${p.unreadMessages}</sl-badge>`,
5697
5861
  () => null
5698
5862
  )}
5699
5863
  </sl-button>
5700
5864
  <div class="cb-engage-popup">
5701
- <div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${be`${Y(da)}`}</div>
5865
+ <div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${be`${W(fa)}`}</div>
5702
5866
  <div class="cb-engage-popup-content">
5703
- ${ce(
5867
+ ${ee(
5704
5868
  p.setting.logoUrl !== "",
5705
5869
  () => g`<img class="cb-engage-popup-img" src="${p.setting.logoUrl}" />`,
5706
- () => g`<div class="cb-engage-popup-logo">${be`${Y(p.setting.logoSvg)}`}</div>`
5870
+ () => g`<div class="cb-engage-popup-logo">${be`${W(p.setting.logoSvg)}`}</div>`
5707
5871
  )}
5708
5872
  <!--<cb-icon class="cb-engage-popup-logo" svg="${p.setting.logoSvg}"></cb-icon>-->
5709
5873
  <div>${p.setting.engageMessage}</div>
@@ -5715,28 +5879,28 @@ let ft = class extends ee {
5715
5879
  }
5716
5880
  };
5717
5881
  ft.styles = oi;
5718
- la([
5882
+ ba([
5719
5883
  v({ type: Boolean })
5720
5884
  ], ft.prototype, "open", 2);
5721
- ft = la([
5885
+ ft = ba([
5722
5886
  J("cb-anchor")
5723
5887
  ], ft);
5724
5888
  const fi = X`
5725
5889
  ${me}
5726
- `, Yt = '<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-.353zM5.1 1L1 5.1v5.8L5.1 15h5.8l4.1-4.1V5.1L10.9 1z"/><path d="M7.002 11a1 1 0 1 1 2 0a1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></g></svg>', li = '<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.15.15 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.2.2 0 0 1-.054.06a.1.1 0 0 1-.066.017H1.146a.1.1 0 0 1-.066-.017a.2.2 0 0 1-.054-.06a.18.18 0 0 1 .002-.183L7.884 2.073a.15.15 0 0 1 .054-.057m1.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.767z"/><path d="M7.002 12a1 1 0 1 1 2 0a1 1 0 0 1-2 0M7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></g></svg>', bi = '<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 0"/><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 0z"/></g></svg>', hi = '<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 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/><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-.533zM9 4.5a1 1 0 1 1-2 0a1 1 0 0 1 2 0"/></g></svg>';
5727
- var ui = Object.defineProperty, pi = Object.getOwnPropertyDescriptor, ba = (c, e, a, s) => {
5728
- for (var n = s > 1 ? void 0 : s ? pi(e, a) : e, d = c.length - 1, f; d >= 0; d--)
5729
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
5730
- return s && n && ui(e, a, n), n;
5890
+ `, Xt = '<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-.353zM5.1 1L1 5.1v5.8L5.1 15h5.8l4.1-4.1V5.1L10.9 1z"/><path d="M7.002 11a1 1 0 1 1 2 0a1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></g></svg>', li = '<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.15.15 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.2.2 0 0 1-.054.06a.1.1 0 0 1-.066.017H1.146a.1.1 0 0 1-.066-.017a.2.2 0 0 1-.054-.06a.18.18 0 0 1 .002-.183L7.884 2.073a.15.15 0 0 1 .054-.057m1.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.767z"/><path d="M7.002 12a1 1 0 1 1 2 0a1 1 0 0 1-2 0M7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></g></svg>', bi = '<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 0"/><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 0z"/></g></svg>', hi = '<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 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/><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-.533zM9 4.5a1 1 0 1 1-2 0a1 1 0 0 1 2 0"/></g></svg>';
5891
+ var ui = Object.defineProperty, pi = Object.getOwnPropertyDescriptor, ha = (c, e, a, n) => {
5892
+ for (var s = n > 1 ? void 0 : n ? pi(e, a) : e, r = c.length - 1, f; r >= 0; r--)
5893
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
5894
+ return n && s && ui(e, a, s), s;
5731
5895
  };
5732
- const Xt = {
5896
+ const Gt = {
5733
5897
  error: {
5734
5898
  variant: "danger",
5735
- icon: Yt
5899
+ icon: Xt
5736
5900
  },
5737
5901
  danger: {
5738
5902
  variant: "danger",
5739
- icon: Yt
5903
+ icon: Xt
5740
5904
  },
5741
5905
  warning: {
5742
5906
  variant: "warning",
@@ -5751,28 +5915,28 @@ const Xt = {
5751
5915
  icon: hi
5752
5916
  }
5753
5917
  };
5754
- let lt = class extends ee {
5918
+ let lt = class extends ae {
5755
5919
  constructor() {
5756
5920
  super(...arguments), this.status = "info";
5757
5921
  }
5758
5922
  render() {
5759
- const { variant: c, icon: e } = Xt[this.status] || Xt.info;
5923
+ const { variant: c, icon: e } = Gt[this.status] || Gt.info;
5760
5924
  return g`<cb-icon svg=${e} color="${c}"></cb-icon>`;
5761
5925
  }
5762
5926
  };
5763
- lt.styles = ca;
5764
- ba([
5927
+ lt.styles = ia;
5928
+ ha([
5765
5929
  v({ type: String })
5766
5930
  ], lt.prototype, "status", 2);
5767
- lt = ba([
5931
+ lt = ha([
5768
5932
  J("cb-status-icon")
5769
5933
  ], lt);
5770
- var gi = Object.defineProperty, mi = Object.getOwnPropertyDescriptor, yi = (c, e, a, s) => {
5771
- for (var n = s > 1 ? void 0 : s ? mi(e, a) : e, d = c.length - 1, f; d >= 0; d--)
5772
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
5773
- return s && n && gi(e, a, n), n;
5934
+ var gi = Object.defineProperty, mi = Object.getOwnPropertyDescriptor, yi = (c, e, a, n) => {
5935
+ for (var s = n > 1 ? void 0 : n ? mi(e, a) : e, r = c.length - 1, f; r >= 0; r--)
5936
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
5937
+ return n && s && gi(e, a, s), s;
5774
5938
  };
5775
- let _t = class extends ee {
5939
+ let _t = class extends ae {
5776
5940
  render() {
5777
5941
  return g` <sl-alert variant="danger" open>
5778
5942
  <cb-status-icon status="error" slot="icon"></cb-status-icon>
@@ -5866,25 +6030,25 @@ const vi = X`
5866
6030
  filter: alpha(opacity=80);
5867
6031
  }
5868
6032
  `;
5869
- var wi = Object.defineProperty, xi = Object.getOwnPropertyDescriptor, Ue = (c, e, a, s) => {
5870
- for (var n = s > 1 ? void 0 : s ? xi(e, a) : e, d = c.length - 1, f; d >= 0; d--)
5871
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
5872
- return s && n && wi(e, a, n), n;
6033
+ var wi = Object.defineProperty, xi = Object.getOwnPropertyDescriptor, We = (c, e, a, n) => {
6034
+ for (var s = n > 1 ? void 0 : n ? xi(e, a) : e, r = c.length - 1, f; r >= 0; r--)
6035
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
6036
+ return n && s && wi(e, a, s), s;
5873
6037
  };
5874
- const Gt = Ke.noConflict(), ki = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-star-fill" viewBox="0 0 16 16"><path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"/></svg>';
5875
- let Te = class extends ee {
6038
+ const Zt = Ke.noConflict(), ki = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-star-fill" viewBox="0 0 16 16"><path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"/></svg>';
6039
+ let Ae = class extends ae {
5876
6040
  constructor() {
5877
6041
  super(...arguments), this.store = new pt(this, p), this.zindex = 100;
5878
6042
  }
5879
6043
  connectedCallback() {
5880
- super.connectedCallback(), Gt.info("connectedCallback");
6044
+ super.connectedCallback(), Zt.info("connectedCallback");
5881
6045
  }
5882
6046
  firstUpdated() {
5883
6047
  this._rating.getSymbol = () => ki;
5884
6048
  }
5885
6049
  _stateEventHandler(c) {
5886
6050
  const e = c.detail, a = (e == null ? void 0 : e.type) || null;
5887
- Gt.info(`FEEDBACK: stateEvent: ${a}`, e);
6051
+ Zt.info(`FEEDBACK: stateEvent: ${a}`, e);
5888
6052
  }
5889
6053
  _cancelHandler() {
5890
6054
  p.feedback && (console.log("Feedback dialog cancelled"), p.feedback = !1);
@@ -5905,7 +6069,7 @@ let Te = class extends ee {
5905
6069
  p.feedbackScore = 0;
5906
6070
  }}"
5907
6071
  >
5908
- ${be`${Y(ra)}`}
6072
+ ${be`${W(da)}`}
5909
6073
  </div>
5910
6074
  <sl-rating id="cb-feedback-rating-el" class="cb-feedback-rating" @sl-change="${this._ratingChangeHandler}" label="Rating" precision="1" .value=${p.feedbackScore}></sl-rating>
5911
6075
  <div
@@ -5914,7 +6078,7 @@ let Te = class extends ee {
5914
6078
  p.feedbackScore = 5;
5915
6079
  }}"
5916
6080
  >
5917
- ${be`${Y(oa)}`}
6081
+ ${be`${W(ra)}`}
5918
6082
  </div>
5919
6083
  </div>
5920
6084
  <div style="display: flex">
@@ -5931,41 +6095,41 @@ let Te = class extends ee {
5931
6095
  p.feedbackScore = this._rating.value;
5932
6096
  }
5933
6097
  async _submitHandler() {
5934
- var s, n, d;
5935
- const c = ((s = this._name) == null ? void 0 : s.value) || "", e = ((n = this._email) == null ? void 0 : n.value) || "", a = ((d = this._comments) == null ? void 0 : d.value) || "";
6098
+ var n, s, r;
6099
+ const c = ((n = this._name) == null ? void 0 : n.value) || "", e = ((s = this._email) == null ? void 0 : s.value) || "", a = ((r = this._comments) == null ? void 0 : r.value) || "";
5936
6100
  this._comments.value = "", await p.submitFeedback(c, e, a);
5937
6101
  }
5938
6102
  };
5939
- Te.styles = vi;
5940
- Ue([
6103
+ Ae.styles = vi;
6104
+ We([
5941
6105
  v({ type: Number })
5942
- ], Te.prototype, "zindex", 2);
5943
- Ue([
5944
- xe("#cb-feedback-rating-el")
5945
- ], Te.prototype, "_rating", 2);
5946
- Ue([
5947
- xe("#cb-feedback-comments-el")
5948
- ], Te.prototype, "_comments", 2);
5949
- Ue([
5950
- xe("#cb-feedback-name-el")
5951
- ], Te.prototype, "_name", 2);
5952
- Ue([
5953
- xe("#cb-feedback-email-el")
5954
- ], Te.prototype, "_email", 2);
5955
- Te = Ue([
6106
+ ], Ae.prototype, "zindex", 2);
6107
+ We([
6108
+ ke("#cb-feedback-rating-el")
6109
+ ], Ae.prototype, "_rating", 2);
6110
+ We([
6111
+ ke("#cb-feedback-comments-el")
6112
+ ], Ae.prototype, "_comments", 2);
6113
+ We([
6114
+ ke("#cb-feedback-name-el")
6115
+ ], Ae.prototype, "_name", 2);
6116
+ We([
6117
+ ke("#cb-feedback-email-el")
6118
+ ], Ae.prototype, "_email", 2);
6119
+ Ae = We([
5956
6120
  J("cb-dialog-feedback")
5957
- ], Te);
5958
- class Zt extends Error {
5959
- constructor(a, s, n) {
5960
- const d = a.status || a.status === 0 ? a.status : "", f = a.statusText || "", x = `${d} ${f}`.trim(), S = x ? `status code ${x}` : "an unknown error";
5961
- super(`Request failed with ${S}: ${s.method} ${s.url}`);
6121
+ ], Ae);
6122
+ class Jt extends Error {
6123
+ constructor(a, n, s) {
6124
+ const r = a.status || a.status === 0 ? a.status : "", f = a.statusText || "", w = `${r} ${f}`.trim(), S = w ? `status code ${w}` : "an unknown error";
6125
+ super(`Request failed with ${S}: ${n.method} ${n.url}`);
5962
6126
  ge(this, "response");
5963
6127
  ge(this, "request");
5964
6128
  ge(this, "options");
5965
- this.name = "HTTPError", this.response = a, this.request = s, this.options = n;
6129
+ this.name = "HTTPError", this.response = a, this.request = n, this.options = s;
5966
6130
  }
5967
6131
  }
5968
- class ha extends Error {
6132
+ class ua extends Error {
5969
6133
  constructor(a) {
5970
6134
  super(`Request timed out: ${a.method} ${a.url}`);
5971
6135
  ge(this, "request");
@@ -5977,35 +6141,35 @@ const Xe = (c) => c !== null && typeof c == "object", nt = (...c) => {
5977
6141
  if ((!Xe(e) || Array.isArray(e)) && e !== void 0)
5978
6142
  throw new TypeError("The `options` argument must be an object");
5979
6143
  return It({}, ...c);
5980
- }, ua = (c = {}, e = {}) => {
5981
- const a = new globalThis.Headers(c), s = e instanceof globalThis.Headers, n = new globalThis.Headers(e);
5982
- for (const [d, f] of n.entries())
5983
- s && f === "undefined" || f === void 0 ? a.delete(d) : a.set(d, f);
6144
+ }, pa = (c = {}, e = {}) => {
6145
+ const a = new globalThis.Headers(c), n = e instanceof globalThis.Headers, s = new globalThis.Headers(e);
6146
+ for (const [r, f] of s.entries())
6147
+ n && f === "undefined" || f === void 0 ? a.delete(r) : a.set(r, f);
5984
6148
  return a;
5985
6149
  };
5986
6150
  function st(c, e, a) {
5987
6151
  return Object.hasOwn(e, a) && e[a] === void 0 ? [] : It(c[a] ?? [], e[a] ?? []);
5988
6152
  }
5989
- const pa = (c = {}, e = {}) => ({
6153
+ const ga = (c = {}, e = {}) => ({
5990
6154
  beforeRequest: st(c, e, "beforeRequest"),
5991
6155
  beforeRetry: st(c, e, "beforeRetry"),
5992
6156
  afterResponse: st(c, e, "afterResponse"),
5993
6157
  beforeError: st(c, e, "beforeError")
5994
6158
  }), It = (...c) => {
5995
- let e = {}, a = {}, s = {};
5996
- for (const n of c)
5997
- if (Array.isArray(n))
5998
- Array.isArray(e) || (e = []), e = [...e, ...n];
5999
- else if (Xe(n)) {
6000
- for (let [d, f] of Object.entries(n))
6001
- Xe(f) && d in e && (f = It(e[d], f)), e = { ...e, [d]: f };
6002
- Xe(n.hooks) && (s = pa(s, n.hooks), e.hooks = s), Xe(n.headers) && (a = ua(a, n.headers), e.headers = a);
6159
+ let e = {}, a = {}, n = {};
6160
+ for (const s of c)
6161
+ if (Array.isArray(s))
6162
+ Array.isArray(e) || (e = []), e = [...e, ...s];
6163
+ else if (Xe(s)) {
6164
+ for (let [r, f] of Object.entries(s))
6165
+ Xe(f) && r in e && (f = It(e[r], f)), e = { ...e, [r]: f };
6166
+ Xe(s.hooks) && (n = ga(n, s.hooks), e.hooks = n), Xe(s.headers) && (a = pa(a, s.headers), e.headers = a);
6003
6167
  }
6004
6168
  return e;
6005
6169
  }, Ci = (() => {
6006
6170
  let c = !1, e = !1;
6007
- const a = typeof globalThis.ReadableStream == "function", s = typeof globalThis.Request == "function";
6008
- if (a && s)
6171
+ const a = typeof globalThis.ReadableStream == "function", n = typeof globalThis.Request == "function";
6172
+ if (a && n)
6009
6173
  try {
6010
6174
  e = new globalThis.Request("https://empty.invalid", {
6011
6175
  body: new globalThis.ReadableStream(),
@@ -6015,19 +6179,19 @@ const pa = (c = {}, e = {}) => ({
6015
6179
  return c = !0, "half";
6016
6180
  }
6017
6181
  }).headers.has("Content-Type");
6018
- } catch (n) {
6019
- if (n instanceof Error && n.message === "unsupported BodyInit type")
6182
+ } catch (s) {
6183
+ if (s instanceof Error && s.message === "unsupported BodyInit type")
6020
6184
  return !1;
6021
- throw n;
6185
+ throw s;
6022
6186
  }
6023
6187
  return c && !e;
6024
- })(), Si = typeof globalThis.AbortController == "function", _i = typeof globalThis.ReadableStream == "function", $i = typeof globalThis.FormData == "function", ga = ["get", "post", "put", "patch", "head", "delete"], Mi = {
6188
+ })(), Si = typeof globalThis.AbortController == "function", _i = typeof globalThis.ReadableStream == "function", $i = typeof globalThis.FormData == "function", ma = ["get", "post", "put", "patch", "head", "delete"], Mi = {
6025
6189
  json: "application/json",
6026
6190
  text: "text/*",
6027
6191
  formData: "multipart/form-data",
6028
6192
  arrayBuffer: "*/*",
6029
6193
  blob: "*/*"
6030
- }, xt = 2147483647, ma = Symbol("stop"), Ti = {
6194
+ }, xt = 2147483647, ya = Symbol("stop"), Ti = {
6031
6195
  json: !0,
6032
6196
  parseJson: !0,
6033
6197
  stringifyJson: !0,
@@ -6056,7 +6220,7 @@ const pa = (c = {}, e = {}) => ({
6056
6220
  dispatcher: !0,
6057
6221
  duplex: !0,
6058
6222
  priority: !0
6059
- }, Ai = (c) => ga.includes(c) ? c.toUpperCase() : c, Ii = ["get", "put", "head", "delete", "options", "trace"], Li = [408, 413, 429, 500, 502, 503, 504], qi = [413, 429, 503], Jt = {
6223
+ }, Ai = (c) => ma.includes(c) ? c.toUpperCase() : c, Ii = ["get", "put", "head", "delete", "options", "trace"], Li = [408, 413, 429, 500, 502, 503, 504], qi = [413, 429, 503], Kt = {
6060
6224
  limit: 2,
6061
6225
  methods: Ii,
6062
6226
  statusCodes: Li,
@@ -6067,7 +6231,7 @@ const pa = (c = {}, e = {}) => ({
6067
6231
  }, Oi = (c = {}) => {
6068
6232
  if (typeof c == "number")
6069
6233
  return {
6070
- ...Jt,
6234
+ ...Kt,
6071
6235
  limit: c
6072
6236
  };
6073
6237
  if (c.methods && !Array.isArray(c.methods))
@@ -6075,35 +6239,35 @@ const pa = (c = {}, e = {}) => ({
6075
6239
  if (c.statusCodes && !Array.isArray(c.statusCodes))
6076
6240
  throw new Error("retry.statusCodes must be an array");
6077
6241
  return {
6078
- ...Jt,
6242
+ ...Kt,
6079
6243
  ...c
6080
6244
  };
6081
6245
  };
6082
- async function Pi(c, e, a, s) {
6083
- return new Promise((n, d) => {
6246
+ async function Pi(c, e, a, n) {
6247
+ return new Promise((s, r) => {
6084
6248
  const f = setTimeout(() => {
6085
- a && a.abort(), d(new ha(c));
6086
- }, s.timeout);
6087
- s.fetch(c, e).then(n).catch(d).then(() => {
6249
+ a && a.abort(), r(new ua(c));
6250
+ }, n.timeout);
6251
+ n.fetch(c, e).then(s).catch(r).then(() => {
6088
6252
  clearTimeout(f);
6089
6253
  });
6090
6254
  });
6091
6255
  }
6092
6256
  async function zi(c, { signal: e }) {
6093
- return new Promise((a, s) => {
6094
- e && (e.throwIfAborted(), e.addEventListener("abort", n, { once: !0 }));
6095
- function n() {
6096
- clearTimeout(d), s(e.reason);
6257
+ return new Promise((a, n) => {
6258
+ e && (e.throwIfAborted(), e.addEventListener("abort", s, { once: !0 }));
6259
+ function s() {
6260
+ clearTimeout(r), n(e.reason);
6097
6261
  }
6098
- const d = setTimeout(() => {
6099
- e == null || e.removeEventListener("abort", n), a();
6262
+ const r = setTimeout(() => {
6263
+ e == null || e.removeEventListener("abort", s), a();
6100
6264
  }, c);
6101
6265
  });
6102
6266
  }
6103
6267
  const ji = (c, e) => {
6104
6268
  const a = {};
6105
- for (const s in e)
6106
- !(s in Ei) && !(s in Ti) && !(s in c) && (a[s] = e[s]);
6269
+ for (const n in e)
6270
+ !(n in Ei) && !(n in Ti) && !(n in c) && (a[n] = e[n]);
6107
6271
  return a;
6108
6272
  };
6109
6273
  class bt {
@@ -6114,11 +6278,11 @@ class bt {
6114
6278
  ge(this, "_retryCount", 0);
6115
6279
  ge(this, "_input");
6116
6280
  ge(this, "_options");
6117
- var s, n;
6281
+ var n, s;
6118
6282
  if (this._input = e, this._options = {
6119
6283
  ...a,
6120
- headers: ua(this._input.headers, a.headers),
6121
- hooks: pa({
6284
+ headers: pa(this._input.headers, a.headers),
6285
+ hooks: ga({
6122
6286
  beforeRequest: [],
6123
6287
  beforeRetry: [],
6124
6288
  beforeError: [],
@@ -6140,67 +6304,67 @@ class bt {
6140
6304
  }
6141
6305
  if (Si) {
6142
6306
  this.abortController = new globalThis.AbortController();
6143
- const d = this._options.signal ?? this._input.signal;
6144
- d == null || d.addEventListener("abort", () => {
6145
- this.abortController.abort(d.reason);
6307
+ const r = this._options.signal ?? this._input.signal;
6308
+ r == null || r.addEventListener("abort", () => {
6309
+ this.abortController.abort(r.reason);
6146
6310
  }), this._options.signal = this.abortController.signal;
6147
6311
  }
6148
- if (Ci && (this._options.duplex = "half"), this._options.json !== void 0 && (this._options.body = ((n = (s = this._options).stringifyJson) == null ? void 0 : n.call(s, this._options.json)) ?? JSON.stringify(this._options.json), this._options.headers.set("content-type", this._options.headers.get("content-type") ?? "application/json")), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {
6149
- const f = "?" + (typeof this._options.searchParams == "string" ? this._options.searchParams.replace(/^\?/, "") : new URLSearchParams(this._options.searchParams).toString()), x = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, f);
6150
- ($i && 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(x, { ...this.request }), this._options);
6312
+ if (Ci && (this._options.duplex = "half"), this._options.json !== void 0 && (this._options.body = ((s = (n = this._options).stringifyJson) == null ? void 0 : s.call(n, this._options.json)) ?? JSON.stringify(this._options.json), this._options.headers.set("content-type", this._options.headers.get("content-type") ?? "application/json")), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {
6313
+ const f = "?" + (typeof this._options.searchParams == "string" ? this._options.searchParams.replace(/^\?/, "") : new URLSearchParams(this._options.searchParams).toString()), w = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, f);
6314
+ ($i && 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(w, { ...this.request }), this._options);
6151
6315
  }
6152
6316
  }
6153
6317
  static create(e, a) {
6154
- const s = new bt(e, a), n = async () => {
6155
- if (typeof s._options.timeout == "number" && s._options.timeout > xt)
6318
+ const n = new bt(e, a), s = async () => {
6319
+ if (typeof n._options.timeout == "number" && n._options.timeout > xt)
6156
6320
  throw new RangeError(`The \`timeout\` option cannot be greater than ${xt}`);
6157
6321
  await Promise.resolve();
6158
- let x = await s._fetch();
6159
- for (const S of s._options.hooks.afterResponse) {
6160
- const _ = await S(s.request, s._options, s._decorateResponse(x.clone()));
6161
- _ instanceof globalThis.Response && (x = _);
6322
+ let w = await n._fetch();
6323
+ for (const S of n._options.hooks.afterResponse) {
6324
+ const _ = await S(n.request, n._options, n._decorateResponse(w.clone()));
6325
+ _ instanceof globalThis.Response && (w = _);
6162
6326
  }
6163
- if (s._decorateResponse(x), !x.ok && s._options.throwHttpErrors) {
6164
- let S = new Zt(x, s.request, s._options);
6165
- for (const _ of s._options.hooks.beforeError)
6327
+ if (n._decorateResponse(w), !w.ok && n._options.throwHttpErrors) {
6328
+ let S = new Jt(w, n.request, n._options);
6329
+ for (const _ of n._options.hooks.beforeError)
6166
6330
  S = await _(S);
6167
6331
  throw S;
6168
6332
  }
6169
- if (s._options.onDownloadProgress) {
6170
- if (typeof s._options.onDownloadProgress != "function")
6333
+ if (n._options.onDownloadProgress) {
6334
+ if (typeof n._options.onDownloadProgress != "function")
6171
6335
  throw new TypeError("The `onDownloadProgress` option must be a function");
6172
6336
  if (!_i)
6173
6337
  throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");
6174
- return s._stream(x.clone(), s._options.onDownloadProgress);
6338
+ return n._stream(w.clone(), n._options.onDownloadProgress);
6175
6339
  }
6176
- return x;
6177
- }, f = s._options.retry.methods.includes(s.request.method.toLowerCase()) ? s._retry(n) : n();
6178
- for (const [x, S] of Object.entries(Mi))
6179
- f[x] = async () => {
6180
- s.request.headers.set("accept", s.request.headers.get("accept") || S);
6340
+ return w;
6341
+ }, f = n._options.retry.methods.includes(n.request.method.toLowerCase()) ? n._retry(s) : s();
6342
+ for (const [w, S] of Object.entries(Mi))
6343
+ f[w] = async () => {
6344
+ n.request.headers.set("accept", n.request.headers.get("accept") || S);
6181
6345
  const K = (await f).clone();
6182
- if (x === "json") {
6346
+ if (w === "json") {
6183
6347
  if (K.status === 204 || (await K.clone().arrayBuffer()).byteLength === 0)
6184
6348
  return "";
6185
6349
  if (a.parseJson)
6186
6350
  return a.parseJson(await K.text());
6187
6351
  }
6188
- return K[x]();
6352
+ return K[w]();
6189
6353
  };
6190
6354
  return f;
6191
6355
  }
6192
6356
  _calculateRetryDelay(e) {
6193
- if (this._retryCount++, this._retryCount > this._options.retry.limit || e instanceof ha)
6357
+ if (this._retryCount++, this._retryCount > this._options.retry.limit || e instanceof ua)
6194
6358
  throw e;
6195
- if (e instanceof Zt) {
6359
+ if (e instanceof Jt) {
6196
6360
  if (!this._options.retry.statusCodes.includes(e.response.status))
6197
6361
  throw e;
6198
- const s = e.response.headers.get("Retry-After") ?? e.response.headers.get("RateLimit-Reset") ?? e.response.headers.get("X-RateLimit-Reset") ?? e.response.headers.get("X-Rate-Limit-Reset");
6199
- if (s && this._options.retry.afterStatusCodes.includes(e.response.status)) {
6200
- let n = Number(s) * 1e3;
6201
- Number.isNaN(n) ? n = Date.parse(s) - Date.now() : n >= Date.parse("2024-01-01") && (n -= Date.now());
6202
- const d = this._options.retry.maxRetryAfter ?? n;
6203
- return n < d ? n : d;
6362
+ const n = e.response.headers.get("Retry-After") ?? e.response.headers.get("RateLimit-Reset") ?? e.response.headers.get("X-RateLimit-Reset") ?? e.response.headers.get("X-Rate-Limit-Reset");
6363
+ if (n && this._options.retry.afterStatusCodes.includes(e.response.status)) {
6364
+ let s = Number(n) * 1e3;
6365
+ Number.isNaN(s) ? s = Date.parse(n) - Date.now() : s >= Date.parse("2024-01-01") && (s -= Date.now());
6366
+ const r = this._options.retry.maxRetryAfter ?? s;
6367
+ return s < r ? s : r;
6204
6368
  }
6205
6369
  if (e.response.status === 413)
6206
6370
  throw e;
@@ -6215,60 +6379,60 @@ class bt {
6215
6379
  try {
6216
6380
  return await e();
6217
6381
  } catch (a) {
6218
- const s = Math.min(this._calculateRetryDelay(a), xt);
6382
+ const n = Math.min(this._calculateRetryDelay(a), xt);
6219
6383
  if (this._retryCount < 1)
6220
6384
  throw a;
6221
- await zi(s, { signal: this._options.signal });
6222
- for (const n of this._options.hooks.beforeRetry)
6223
- if (await n({
6385
+ await zi(n, { signal: this._options.signal });
6386
+ for (const s of this._options.hooks.beforeRetry)
6387
+ if (await s({
6224
6388
  request: this.request,
6225
6389
  options: this._options,
6226
6390
  error: a,
6227
6391
  retryCount: this._retryCount
6228
- }) === ma)
6392
+ }) === ya)
6229
6393
  return;
6230
6394
  return this._retry(e);
6231
6395
  }
6232
6396
  }
6233
6397
  async _fetch() {
6234
- for (const s of this._options.hooks.beforeRequest) {
6235
- const n = await s(this.request, this._options);
6236
- if (n instanceof Request) {
6237
- this.request = n;
6398
+ for (const n of this._options.hooks.beforeRequest) {
6399
+ const s = await n(this.request, this._options);
6400
+ if (s instanceof Request) {
6401
+ this.request = s;
6238
6402
  break;
6239
6403
  }
6240
- if (n instanceof Response)
6241
- return n;
6404
+ if (s instanceof Response)
6405
+ return s;
6242
6406
  }
6243
6407
  const e = ji(this.request, this._options), a = this.request;
6244
6408
  return this.request = a.clone(), this._options.timeout === !1 ? this._options.fetch(a, e) : Pi(a, e, this.abortController, this._options);
6245
6409
  }
6246
6410
  /* istanbul ignore next */
6247
6411
  _stream(e, a) {
6248
- const s = Number(e.headers.get("content-length")) || 0;
6249
- let n = 0;
6250
- return e.status === 204 ? (a && a({ percent: 1, totalBytes: s, transferredBytes: n }, new Uint8Array()), new globalThis.Response(null, {
6412
+ const n = Number(e.headers.get("content-length")) || 0;
6413
+ let s = 0;
6414
+ return e.status === 204 ? (a && a({ percent: 1, totalBytes: n, transferredBytes: s }, new Uint8Array()), new globalThis.Response(null, {
6251
6415
  status: e.status,
6252
6416
  statusText: e.statusText,
6253
6417
  headers: e.headers
6254
6418
  })) : new globalThis.Response(new globalThis.ReadableStream({
6255
- async start(d) {
6419
+ async start(r) {
6256
6420
  const f = e.body.getReader();
6257
- a && a({ percent: 0, transferredBytes: 0, totalBytes: s }, new Uint8Array());
6258
- async function x() {
6421
+ a && a({ percent: 0, transferredBytes: 0, totalBytes: n }, new Uint8Array());
6422
+ async function w() {
6259
6423
  const { done: S, value: _ } = await f.read();
6260
6424
  if (S) {
6261
- d.close();
6425
+ r.close();
6262
6426
  return;
6263
6427
  }
6264
6428
  if (a) {
6265
- n += _.byteLength;
6266
- const K = s === 0 ? 0 : n / s;
6267
- a({ percent: K, transferredBytes: n, totalBytes: s }, _);
6429
+ s += _.byteLength;
6430
+ const K = n === 0 ? 0 : s / n;
6431
+ a({ percent: K, transferredBytes: s, totalBytes: n }, _);
6268
6432
  }
6269
- d.enqueue(_), await x();
6433
+ r.enqueue(_), await w();
6270
6434
  }
6271
- await x();
6435
+ await w();
6272
6436
  }
6273
6437
  }), {
6274
6438
  status: e.status,
@@ -6279,11 +6443,12 @@ class bt {
6279
6443
  }
6280
6444
  /*! MIT License © Sindre Sorhus */
6281
6445
  const $t = (c) => {
6282
- const e = (a, s) => bt.create(a, nt(c, s));
6283
- for (const a of ga)
6284
- e[a] = (s, n) => bt.create(s, nt(c, n, { method: a }));
6285
- return e.create = (a) => $t(nt(a)), e.extend = (a) => (typeof a == "function" && (a = a(c ?? {})), $t(nt(c, a))), e.stop = ma, e;
6286
- }, Hi = $t(), Bi = Hi.extend({
6446
+ const e = (a, n) => bt.create(a, nt(c, n));
6447
+ for (const a of ma)
6448
+ e[a] = (n, s) => bt.create(n, nt(c, s, { method: a }));
6449
+ return e.create = (a) => $t(nt(a)), e.extend = (a) => (typeof a == "function" && (a = a(c ?? {})), $t(nt(c, a))), e.stop = ya, e;
6450
+ }, Hi = $t();
6451
+ Hi.extend({
6287
6452
  hooks: {
6288
6453
  beforeRequest: [
6289
6454
  () => {
@@ -6291,18 +6456,18 @@ const $t = (c) => {
6291
6456
  ]
6292
6457
  }
6293
6458
  });
6294
- async function Ri(c, e) {
6295
- const { onmessage: a, onclose: s, ...n } = e, d = async (f, x) => {
6296
- const { value: S, done: _ } = await x.read();
6297
- _ ? (f.close(), s == null || s()) : (a == null || a(S), f.enqueue(S), d(f, x));
6459
+ async function Bi(c, e) {
6460
+ const { onmessage: a, onclose: n, ...s } = e, r = async (f, w) => {
6461
+ const { value: S, done: _ } = await w.read();
6462
+ _ ? (f.close(), n == null || n()) : (a == null || a(S), f.enqueue(S), r(f, w));
6298
6463
  };
6299
- return n.body && typeof n.body == "object" && (n.body = JSON.stringify(n.body)), console.log("Fetching:", n), fetch(c, n).then((f) => {
6300
- const x = f.body.getReader();
6464
+ return s.body && typeof s.body == "object" && (s.body = JSON.stringify(s.body)), console.log("Fetching:", s), fetch(c, s).then((f) => {
6465
+ const w = f.body.getReader();
6301
6466
  return new ReadableStream({
6302
6467
  start(_) {
6303
- d(
6468
+ r(
6304
6469
  _,
6305
- x
6470
+ w
6306
6471
  );
6307
6472
  }
6308
6473
  });
@@ -6312,31 +6477,14 @@ async function Ri(c, e) {
6312
6477
  }).text()
6313
6478
  );
6314
6479
  }
6315
- async function Vi(c, e) {
6316
- const a = new FormData();
6317
- for (let n = 0; n < e.length; n++)
6318
- a.append("files", e[n]);
6319
- const s = await Bi.post(c, {
6320
- body: a
6321
- });
6322
- try {
6323
- return await s.json();
6324
- } catch (n) {
6325
- return {
6326
- code: 1,
6327
- url: "",
6328
- message: n.message
6329
- };
6330
- }
6331
- }
6332
- var Di = Object.defineProperty, Fi = Object.getOwnPropertyDescriptor, H = (c, e, a, s) => {
6333
- for (var n = s > 1 ? void 0 : s ? Fi(e, a) : e, d = c.length - 1, f; d >= 0; d--)
6334
- (f = c[d]) && (n = (s ? f(e, a, n) : f(n)) || n);
6335
- return s && n && Di(e, a, n), n;
6480
+ var Ri = Object.defineProperty, Vi = Object.getOwnPropertyDescriptor, H = (c, e, a, n) => {
6481
+ for (var s = n > 1 ? void 0 : n ? Vi(e, a) : e, r = c.length - 1, f; r >= 0; r--)
6482
+ (f = c[r]) && (s = (n ? f(e, a, s) : f(s)) || s);
6483
+ return n && s && Ri(e, a, s), s;
6336
6484
  };
6337
- const Re = Ke.noConflict();
6338
- Re.setLevel("info");
6339
- let j = class extends ee {
6485
+ const Me = Ke.noConflict();
6486
+ Me.setLevel("info");
6487
+ let j = class extends ae {
6340
6488
  constructor() {
6341
6489
  super(...arguments), this.store = new pt(this, p), this.displayLicense = !1, this.name = "ChatBot", this.orgId = "", this.botId = "", this.url = "ws://localhost:3070", this.logoUrl = "", this.logoSvg = `<svg width="34" height="34" viewBox="0 0 400 400" fill="none" xmlns="http://www.w3.org/2000/svg">
6342
6490
  <g clip-path="url(#clip0_830_887)">
@@ -6368,7 +6516,7 @@ let j = class extends ee {
6368
6516
  this._addMessageHandler(c);
6369
6517
  }, this.handleStateEvent = (c) => {
6370
6518
  this._stateEventHandler(c);
6371
- }, this.fetchStream = Ri;
6519
+ }, this.fetchStream = Bi;
6372
6520
  }
6373
6521
  /**
6374
6522
  * decodeStreamData
@@ -6400,7 +6548,7 @@ let j = class extends ee {
6400
6548
  p.addActions(c);
6401
6549
  }
6402
6550
  render() {
6403
- return p.disabled && !this.alwaysOpen ? (Re.info("Bot is disabled until settings are loaded"), null) : g`
6551
+ return p.disabled && !this.alwaysOpen ? (Me.info("Bot is disabled until settings are loaded"), null) : g`
6404
6552
  <div class="cb-wrapper" style="${p.open ? "display:flex" : "display:none"}" part="wrapper" exportparts="wrapper">
6405
6553
  <cb-header title="${this.name}" exportparts="header, header-logo, header-title, header-close"></cb-header>
6406
6554
  <cb-message-list
@@ -6424,16 +6572,16 @@ let j = class extends ee {
6424
6572
  return p.form || p.disabled && this.alwaysOpen ? null : g`<cb-user-input
6425
6573
  ?loading=${p.connecting}
6426
6574
  ?disabled=${p.connecting || p.form}
6427
- ?enable-file-upload=${this.enableFileUpload}
6575
+ ?enable-file-upload=${p.setting.uploadImages && p.connected}
6428
6576
  exportparts="user-input, user-input-wrapper, user-input-base, user-input-textarea"
6429
6577
  ></cb-user-input>`;
6430
6578
  }
6431
6579
  connectedCallback() {
6432
- super.connectedCallback(), Re.info("connectedCallback"), this.initCssVariables(), addEventListener("c7o:bot:stateEvent", this.handleStateEvent), addEventListener("message:send", this.handleAddMessage), addEventListener("chatbot:toggle", this._chatbotToggleHandler), addEventListener("form:submit", this._formSubmitHandler);
6580
+ super.connectedCallback(), Me.info("connectedCallback"), this.initCssVariables(), addEventListener("c7o:bot:stateEvent", this.handleStateEvent), addEventListener("message:send", this.handleAddMessage), addEventListener("chatbot:toggle", this._chatbotToggleHandler), addEventListener("form:submit", this._formSubmitHandler), addEventListener("message:send:file", this._uploadFileHandler);
6433
6581
  }
6434
6582
  extractCssVariable(c, e, a) {
6435
- let s = c.getPropertyValue(e).trim();
6436
- return s && s != "" ? s : a;
6583
+ let n = c.getPropertyValue(e).trim();
6584
+ return n && n != "" ? n : a;
6437
6585
  }
6438
6586
  // Extract css variables that control the appearance of the chatbot
6439
6587
  initCssVariables() {
@@ -6458,26 +6606,26 @@ let j = class extends ee {
6458
6606
 
6459
6607
  */
6460
6608
  disconnectedCallback() {
6461
- Re.info("disconnectedCallback"), super.disconnectedCallback(), window.removeEventListener("c7o:bot:stateEvent", this.handleStateEvent), window.removeEventListener("message:send", this.handleAddMessage), window.removeEventListener("chatbot:toggle", this._chatbotToggleHandler), window.removeEventListener("form:submit", this._formSubmitHandler);
6609
+ Me.info("disconnectedCallback"), super.disconnectedCallback(), window.removeEventListener("c7o:bot:stateEvent", this.handleStateEvent), window.removeEventListener("message:send", this.handleAddMessage), window.removeEventListener("chatbot:toggle", this._chatbotToggleHandler), window.removeEventListener("form:submit", this._formSubmitHandler), window.removeEventListener("message:send:file", this._uploadFileHandler);
6462
6610
  }
6463
6611
  // This is called when component is loaded, with all the settings (props) values
6464
6612
  // Use to initialize
6465
6613
  // This is also called when state changes - ??? - i.e. when message added to the array
6466
6614
  updated(c) {
6467
- super.updated(c), c.size > 0 && (Re.info("updated,_changedProperties:", c), this._initSetting()), setTimeout(() => {
6615
+ super.updated(c), c.size > 0 && (Me.info("updated,_changedProperties:", c), this._initSetting()), setTimeout(() => {
6468
6616
  this._scrollToBottom();
6469
6617
  }, 0);
6470
6618
  }
6471
6619
  // initialize setting
6472
6620
  _initSetting() {
6473
- Re.info("_initSetting");
6621
+ Me.info("_initSetting");
6474
6622
  const c = p.setting;
6475
6623
  c.orgId = this.orgId, c.botId = this.botId, c.url = this.url, c.logoUrl = this.logoUrl, c.logoSvg = this.logoSvg, c.closeSvg = this.closeSvg, c.popupLogoSvg = this.popupLogoSvg, c.popupLogoUrl = this.popupLogoUrl, c.botIconSvg = this.botIconSvg, c.userIconSvg = this.userIconSvg, c.systemIconSvg = this.systemIconSvg, c.agentIconSvg = this.agentIconSvg, c.anchorOpenSvg = this.anchorOpenSvg, c.anchorCloseSvg = this.anchorCloseSvg, p.setSetting(c);
6476
6624
  let e = {};
6477
6625
  try {
6478
6626
  e = JSON.parse(this.prefilledFormFields);
6479
6627
  } catch (a) {
6480
- console.log(`Failed to parse prefilled-form-fields attribute value, error: ${(a == null ? void 0 : a.message) || ""}`), e = {};
6628
+ Me.error(`Failed to parse prefilled-form-fields attribute value, error: ${(a == null ? void 0 : a.message) || ""}`), e = {};
6481
6629
  }
6482
6630
  p.setPrefilledFormFields(e), this.open && (p.open = !0), this.alwaysOpen && (p.open = !0, p.alwaysOpen = !0);
6483
6631
  }
@@ -6506,6 +6654,20 @@ let j = class extends ee {
6506
6654
  }
6507
6655
  });
6508
6656
  }
6657
+ // Set conversation context.
6658
+ // It can be any data related with current user / current conversation,
6659
+ // for example, user profile, current product user is viewing on the web page, etc.
6660
+ setContext(c = {}) {
6661
+ p.setContext(c).catch((e) => {
6662
+ Me.error(`Failed to set context, error: ${(e == null ? void 0 : e.message) || ""}`);
6663
+ });
6664
+ }
6665
+ getContext() {
6666
+ return p.getContext();
6667
+ }
6668
+ clearContext() {
6669
+ return p.clearContext();
6670
+ }
6509
6671
  // check auth
6510
6672
  _checkAuth() {
6511
6673
  }
@@ -6545,9 +6707,9 @@ let j = class extends ee {
6545
6707
  }
6546
6708
  }
6547
6709
  _addMessageHandler(c) {
6548
- var s;
6710
+ var n;
6549
6711
  console.log("_addMessageHandler called", c);
6550
- const e = c.detail, a = ((s = e == null ? void 0 : e.data) == null ? void 0 : s.text) || null;
6712
+ const e = c.detail, a = ((n = e == null ? void 0 : e.data) == null ? void 0 : n.text) || null;
6551
6713
  if (!a || typeof a != "string" || a.trim() === "") {
6552
6714
  console.log("_addMessageHandler: input text is empty, ignored", c);
6553
6715
  return;
@@ -6564,33 +6726,9 @@ let j = class extends ee {
6564
6726
  const e = c.detail;
6565
6727
  p.removeMessage(e.id);
6566
6728
  }
6567
- async _sendFileHandler(c) {
6568
- const e = c.detail, s = {
6569
- author: "user",
6570
- type: "file",
6571
- isUploading: !0,
6572
- data: {
6573
- files: e.files.map((n, d) => ({
6574
- id: `${n.name}-${d}`,
6575
- name: n.name,
6576
- size: n.size,
6577
- type: n.type,
6578
- url: ""
6579
- }))
6580
- }
6581
- };
6582
- if (p.addMessage(s), this.uploadFileUrl) {
6583
- const n = await Vi(this.uploadFileUrl, e.files);
6584
- n.code === 0 && n.data && (s.isUploading = !1, s.data = {
6585
- files: n.data
6586
- }, p.updateMessage(s));
6587
- }
6588
- this.emit("chatbot:file:send", {
6589
- detail: {
6590
- files: e.files,
6591
- message: s
6592
- }
6593
- });
6729
+ async _uploadFileHandler(c) {
6730
+ const e = c.detail;
6731
+ await p.uploadFiles(e.files);
6594
6732
  }
6595
6733
  // setting confirm handler
6596
6734
  _settingConfirmHandler(c) {
@@ -6605,7 +6743,7 @@ let j = class extends ee {
6605
6743
  (e = this._messageList) == null || e.scrollToBottom();
6606
6744
  }
6607
6745
  };
6608
- j.styles = Ua;
6746
+ j.styles = Wa;
6609
6747
  H([
6610
6748
  v({ type: Boolean, attribute: "display-license" })
6611
6749
  ], j.prototype, "displayLicense", 2);
@@ -6685,7 +6823,7 @@ H([
6685
6823
  v({ type: Boolean })
6686
6824
  ], j.prototype, "showAuthAlert", 2);
6687
6825
  H([
6688
- xe("cb-message-list")
6826
+ ke("cb-message-list")
6689
6827
  ], j.prototype, "_messageList", 2);
6690
6828
  j = H([
6691
6829
  J("enegelai-bot")