@enegelai/bot-widget 1.19.1 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1,8 +1,8 @@
1
- import { css as K, LitElement as Fe, html as b, nothing as Ae, svg as pe } from "lit";
2
- import { property as x, customElement as J, query as xe, state as Va, queryAll as Ua, eventOptions as ra } from "lit/decorators.js";
1
+ import { css as K, LitElement as Fe, html as p, nothing as Ae, svg as pe } from "lit";
2
+ import { property as x, customElement as J, query as xe, state as Wa, queryAll as Ga, eventOptions as oa } from "lit/decorators.js";
3
3
  import { when as W } from "lit/directives/when.js";
4
4
  import { unsafeHTML as G } from "lit-html/directives/unsafe-html.js";
5
- import { registerIconLibrary as qi } from "@shoelace-style/shoelace";
5
+ import { registerIconLibrary as ji } from "@shoelace-style/shoelace";
6
6
  import "@shoelace-style/shoelace/dist/components/button/button.js";
7
7
  import "@shoelace-style/shoelace/dist/components/avatar/avatar.js";
8
8
  import "@shoelace-style/shoelace/dist/components/input/input.js";
@@ -23,13 +23,13 @@ import "@shoelace-style/shoelace/dist/components/progress-bar/progress-bar.js";
23
23
  import "@shoelace-style/shoelace/dist/components/badge/badge.js";
24
24
  import { repeat as et } from "lit/directives/repeat.js";
25
25
  import { until as bt } from "lit-html/directives/until.js";
26
- import Di from "markdown-it";
27
- import Fi from "markdown-it-link-attributes";
26
+ import Vi from "markdown-it";
27
+ import Ui from "markdown-it-link-attributes";
28
28
  import Gt from "highlight.js";
29
29
  import "@shoelace-style/shoelace/dist/components/popup/popup.js";
30
30
  import "@shoelace-style/shoelace/dist/components/rating/rating.js";
31
- import { createRef as Hi, ref as Tt } from "lit/directives/ref.js";
32
- function Na(a) {
31
+ import { createRef as Ni, ref as Tt } from "lit/directives/ref.js";
32
+ function Xa(a) {
33
33
  return typeof a == "function" ? a() : a;
34
34
  }
35
35
  const Ut = class Ut extends Event {
@@ -45,7 +45,7 @@ const Ut = class Ut extends Event {
45
45
  };
46
46
  Ut.eventName = "lit-state-changed";
47
47
  let at = Ut;
48
- const ji = (a, e) => e !== a && (e === e || a === a), ba = class ba extends EventTarget {
48
+ const Wi = (a, e) => e !== a && (e === e || a === a), pa = class pa extends EventTarget {
49
49
  static initPropertyMap() {
50
50
  this.propertyMap || (this.propertyMap = /* @__PURE__ */ new Map());
51
51
  }
@@ -58,7 +58,7 @@ const ji = (a, e) => e !== a && (e === e || a === a), ba = class ba extends Even
58
58
  constructor() {
59
59
  super(), this.hookMap = /* @__PURE__ */ new Map(), this.constructor.finalize(), this.propertyMap && [...this.propertyMap].forEach(([e, t]) => {
60
60
  if (t.initialValue !== void 0) {
61
- const i = Na(t.initialValue);
61
+ const i = Xa(t.initialValue);
62
62
  this[e] = i, t.value = i;
63
63
  }
64
64
  });
@@ -78,7 +78,7 @@ const ji = (a, e) => e !== a && (e === e || a === a), ba = class ba extends Even
78
78
  Object.defineProperty(this.prototype, e, s);
79
79
  }
80
80
  static getPropertyDescriptor(e, t, i) {
81
- const s = i?.hasChanged || ji;
81
+ const s = i?.hasChanged || Wi;
82
82
  return {
83
83
  get() {
84
84
  return this[t];
@@ -119,8 +119,8 @@ const ji = (a, e) => e !== a && (e === e || a === a), ba = class ba extends Even
119
119
  this.dispatchEvent(new at(e, t, i));
120
120
  }
121
121
  };
122
- ba.finalized = !1;
123
- let Zt = ba;
122
+ pa.finalized = !1;
123
+ let Qt = pa;
124
124
  class it {
125
125
  constructor(e, t, i) {
126
126
  this.host = e, this.state = t, this.callback = i || (() => this.host.requestUpdate()), this.host.addController(this);
@@ -146,7 +146,7 @@ function z(a) {
146
146
  }), i.createProperty(t, a), s ? Object.getOwnPropertyDescriptor(e, t) : void 0;
147
147
  };
148
148
  }
149
- function Vi(a, e) {
149
+ function Gi(a, e) {
150
150
  if (a !== null && (e === Boolean || e === Number || e === Array || e === Object))
151
151
  try {
152
152
  a = JSON.parse(a);
@@ -156,37 +156,37 @@ function Vi(a, e) {
156
156
  return a;
157
157
  }
158
158
  new URL(location.href);
159
- const Ui = {
159
+ const Xi = {
160
160
  prefix: "_ls"
161
161
  };
162
162
  function le(a) {
163
- return a = { ...Ui, ...a }, (e, t) => {
163
+ return a = { ...Xi, ...a }, (e, t) => {
164
164
  const i = Object.getOwnPropertyDescriptor(e, t);
165
165
  if (!i)
166
166
  throw new Error("@local-storage decorator need to be called after @property");
167
167
  const s = `${a?.prefix || ""}_${a?.key || String(t)}`, r = e.constructor, o = r.propertyMap.get(t), f = o?.type;
168
168
  if (o) {
169
169
  const w = o.initialValue;
170
- o.initialValue = () => Vi(localStorage.getItem(s), f) ?? Na(w), r.propertyMap.set(t, { ...o, ...a });
170
+ o.initialValue = () => Gi(localStorage.getItem(s), f) ?? Xa(w), r.propertyMap.set(t, { ...o, ...a });
171
171
  }
172
- const p = i?.set, k = {
172
+ const b = i?.set, k = {
173
173
  ...i,
174
174
  set: function(w) {
175
- w !== void 0 && localStorage.setItem(s, f === Object || f === Array ? JSON.stringify(w) : w), p && p.call(this, w);
175
+ w !== void 0 && localStorage.setItem(s, f === Object || f === Array ? JSON.stringify(w) : w), b && b.call(this, w);
176
176
  }
177
177
  };
178
178
  Object.defineProperty(r.prototype, t, k);
179
179
  };
180
180
  }
181
- function Wa(a) {
181
+ function Ya(a) {
182
182
  return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
183
183
  }
184
- var Rt = { exports: {} }, Ni = Rt.exports, Sa;
185
- function Wi() {
186
- return Sa || (Sa = 1, (function(a) {
184
+ var Rt = { exports: {} }, Yi = Rt.exports, Ca;
185
+ function Ki() {
186
+ return Ca || (Ca = 1, (function(a) {
187
187
  (function(e, t) {
188
188
  a.exports ? a.exports = t() : e.log = t();
189
- })(Ni, function() {
189
+ })(Yi, function() {
190
190
  var e = function() {
191
191
  }, t = "undefined", i = typeof window !== t && typeof window.navigator !== t && /Trident\/|MSIE /.test(window.navigator.userAgent), s = [
192
192
  "trace",
@@ -195,43 +195,43 @@ function Wi() {
195
195
  "warn",
196
196
  "error"
197
197
  ], r = {}, o = null;
198
- function f(M, L) {
199
- var C = M[L];
198
+ function f(T, L) {
199
+ var C = T[L];
200
200
  if (typeof C.bind == "function")
201
- return C.bind(M);
201
+ return C.bind(T);
202
202
  try {
203
- return Function.prototype.bind.call(C, M);
203
+ return Function.prototype.bind.call(C, T);
204
204
  } catch {
205
205
  return function() {
206
- return Function.prototype.apply.apply(C, [M, arguments]);
206
+ return Function.prototype.apply.apply(C, [T, arguments]);
207
207
  };
208
208
  }
209
209
  }
210
- function p() {
210
+ function b() {
211
211
  console.log && (console.log.apply ? console.log.apply(console, arguments) : Function.prototype.apply.apply(console.log, [console, arguments])), console.trace && console.trace();
212
212
  }
213
- function v(M) {
214
- return M === "debug" && (M = "log"), typeof console === t ? !1 : M === "trace" && i ? p : console[M] !== void 0 ? f(console, M) : console.log !== void 0 ? f(console, "log") : e;
213
+ function v(T) {
214
+ return T === "debug" && (T = "log"), typeof console === t ? !1 : T === "trace" && i ? b : console[T] !== void 0 ? f(console, T) : console.log !== void 0 ? f(console, "log") : e;
215
215
  }
216
216
  function k() {
217
- for (var M = this.getLevel(), L = 0; L < s.length; L++) {
217
+ for (var T = this.getLevel(), L = 0; L < s.length; L++) {
218
218
  var C = s[L];
219
- this[C] = L < M ? e : this.methodFactory(C, M, this.name);
219
+ this[C] = L < T ? e : this.methodFactory(C, T, this.name);
220
220
  }
221
- if (this.log = this.debug, typeof console === t && M < this.levels.SILENT)
221
+ if (this.log = this.debug, typeof console === t && T < this.levels.SILENT)
222
222
  return "No console available for logging";
223
223
  }
224
- function w(M) {
224
+ function w(T) {
225
225
  return function() {
226
- typeof console !== t && (k.call(this), this[M].apply(this, arguments));
226
+ typeof console !== t && (k.call(this), this[T].apply(this, arguments));
227
227
  };
228
228
  }
229
- function _(M, L, C) {
230
- return v(M) || w.apply(this, arguments);
229
+ function _(T, L, C) {
230
+ return v(T) || w.apply(this, arguments);
231
231
  }
232
- function P(M, L) {
232
+ function P(T, L) {
233
233
  var C = this, Z, N, X, te = "loglevel";
234
- typeof M == "string" ? te += ":" + M : typeof M == "symbol" && (te = void 0);
234
+ typeof T == "string" ? te += ":" + T : typeof T == "symbol" && (te = void 0);
235
235
  function je(V) {
236
236
  var U = (s[V] || "silent").toUpperCase();
237
237
  if (!(typeof window === t || !te)) {
@@ -282,7 +282,7 @@ function Wi() {
282
282
  return U;
283
283
  throw new TypeError("log.setLevel() called with invalid level: " + V);
284
284
  }
285
- C.name = M, C.levels = {
285
+ C.name = T, C.levels = {
286
286
  TRACE: 0,
287
287
  DEBUG: 1,
288
288
  INFO: 2,
@@ -329,8 +329,8 @@ function Wi() {
329
329
  });
330
330
  })(Rt)), Rt.exports;
331
331
  }
332
- var Gi = Wi();
333
- const Ke = /* @__PURE__ */ Wa(Gi), Xi = K`
332
+ var Ji = Ki();
333
+ const Ke = /* @__PURE__ */ Ya(Ji), Zi = K`
334
334
  :host {
335
335
  --enegelai-bot-width: 420px;
336
336
  --enegelai-bot-base-font-size: 16px;
@@ -641,7 +641,7 @@ const Ke = /* @__PURE__ */ Wa(Gi), Xi = K`
641
641
  }
642
642
 
643
643
 
644
- `, Ga = K`
644
+ `, Ka = K`
645
645
  ${ke}
646
646
 
647
647
  :host {
@@ -666,45 +666,45 @@ const Ke = /* @__PURE__ */ Wa(Gi), Xi = K`
666
666
  color: white;
667
667
  }
668
668
  `;
669
- var Yi = Object.defineProperty, Ki = Object.getOwnPropertyDescriptor, oa = (a, e, t, i) => {
670
- for (var s = i > 1 ? void 0 : i ? Ki(e, t) : e, r = a.length - 1, o; r >= 0; r--)
669
+ var Qi = Object.defineProperty, es = Object.getOwnPropertyDescriptor, ca = (a, e, t, i) => {
670
+ for (var s = i > 1 ? void 0 : i ? es(e, t) : e, r = a.length - 1, o; r >= 0; r--)
671
671
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
672
- return i && s && Yi(e, t, s), s;
672
+ return i && s && Qi(e, t, s), s;
673
673
  };
674
674
  let pt = class extends Fe {
675
675
  constructor() {
676
676
  super(...arguments), this.color = "primary", this.svg = "";
677
677
  }
678
678
  render() {
679
- return b`<span class="cb-icon" part="base">${G(this.svg)}</span>`;
679
+ return p`<span class="cb-icon" part="base">${G(this.svg)}</span>`;
680
680
  }
681
681
  };
682
- pt.styles = Ga;
683
- oa([
682
+ pt.styles = Ka;
683
+ ca([
684
684
  x({ type: String })
685
685
  ], pt.prototype, "color", 2);
686
- oa([
686
+ ca([
687
687
  x({ type: String })
688
688
  ], pt.prototype, "svg", 2);
689
- pt = oa([
689
+ pt = ca([
690
690
  J("cb-icon")
691
691
  ], pt);
692
- let Ji = (a) => crypto.getRandomValues(new Uint8Array(a)), Zi = (a, e, t) => {
692
+ let ts = (a) => crypto.getRandomValues(new Uint8Array(a)), as = (a, e, t) => {
693
693
  let i = (2 << Math.log2(a.length - 1)) - 1, s = -~(1.6 * i * e / a.length);
694
694
  return (r = e) => {
695
695
  let o = "";
696
696
  for (; ; ) {
697
- let f = t(s), p = s | 0;
698
- for (; p--; )
699
- if (o += a[f[p] & i] || "", o.length >= r) return o;
697
+ let f = t(s), b = s | 0;
698
+ for (; b--; )
699
+ if (o += a[f[b] & i] || "", o.length >= r) return o;
700
700
  }
701
701
  };
702
- }, Qi = (a, e = 21) => Zi(a, e | 0, Ji);
703
- const es = Qi("1234567890abcdefghijklmnopqrstuvwxyz", 10);
702
+ }, is = (a, e = 21) => as(a, e | 0, ts);
703
+ const ss = is("1234567890abcdefghijklmnopqrstuvwxyz", 10);
704
704
  function ce(a = 10) {
705
- return es(a);
705
+ return ss(a);
706
706
  }
707
- function ts(a) {
707
+ function ns(a) {
708
708
  return new Promise((e, t) => {
709
709
  try {
710
710
  navigator.clipboard.writeText(a).then(() => {
@@ -715,7 +715,7 @@ function ts(a) {
715
715
  }
716
716
  });
717
717
  }
718
- function Xa(a = !0, e = null) {
718
+ function Ja(a = !0, e = null) {
719
719
  return new Promise((t) => {
720
720
  const i = document.createElement("input");
721
721
  i.type = "file", a && (i.multiple = !0), i.accept = e || ".jpeg,.jpg,.png,.pdf,.txt,.har,.zip,.mov,.mp4,.mp3", i.style.display = "none", i.addEventListener("change", () => {
@@ -731,10 +731,127 @@ function xt(a) {
731
731
  let i = a.replace(/https?:\/\/[^\s<]+/g, (s) => s.replace(/&/g, e)).replace(/&(?!lt;|gt;)/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
732
732
  return i = i.replace(/&lt;br\s*\/?&gt;/gi, "<br>"), i = i.replace(new RegExp(e, "g"), "&"), i;
733
733
  }
734
+ const rs = {
735
+ info: () => {
736
+ },
737
+ warn: () => {
738
+ }
739
+ };
740
+ function os(a, e = window.location, t = rs) {
741
+ const i = e.href, s = `${e.pathname}${e.search}${e.hash}`;
742
+ if (!a || typeof a != "object")
743
+ return t.info(`C7O-BOT:PAGES-RULES: Bot enabled on "${i}": pagesRules is not configured.`), !0;
744
+ const r = a, o = Aa(r.disabledPages, "disabledPages", s, i, t);
745
+ if (o)
746
+ return t.info(
747
+ `C7O-BOT:PAGES-RULES: Bot disabled on "${i}": ${o.ruleSet}[${o.index}] ${o.matchType} "${o.pattern}" matched ${o.target} "${o.value}".`
748
+ ), !1;
749
+ const f = Za(r.enabledPages, "enabledPages", t), b = Aa(f, "enabledPages", s, i, t);
750
+ return b ? (t.info(
751
+ `C7O-BOT:PAGES-RULES: Bot enabled on "${i}": ${b.ruleSet}[${b.index}] ${b.matchType} "${b.pattern}" matched ${b.target} "${b.value}".`
752
+ ), !0) : f.length > 0 ? (t.info(`C7O-BOT:PAGES-RULES: Bot disabled on "${i}": enabledPages is configured, but no enabledPages regex matched path "${s}" or URL "${i}".`), !1) : (t.info(`C7O-BOT:PAGES-RULES: Bot enabled on "${i}": no disabledPages regex matched and enabledPages is not configured.`), !0);
753
+ }
754
+ function Aa(a, e, t, i, s) {
755
+ const r = Za(a, e, s);
756
+ for (let o = 0; o < r.length; o += 1) {
757
+ const f = r[o], b = cs(f, t, i);
758
+ if (b)
759
+ return {
760
+ ruleSet: e,
761
+ index: o,
762
+ pattern: Xt(f),
763
+ matchType: "literal",
764
+ target: b.target,
765
+ value: b.value
766
+ };
767
+ const v = fs(f, e, o, s);
768
+ if (v) {
769
+ if (Ma(v, t))
770
+ return {
771
+ ruleSet: e,
772
+ index: o,
773
+ pattern: Xt(f),
774
+ matchType: "regex",
775
+ target: "path",
776
+ value: t
777
+ };
778
+ if (Ma(v, i))
779
+ return {
780
+ ruleSet: e,
781
+ index: o,
782
+ pattern: Xt(f),
783
+ matchType: "regex",
784
+ target: "url",
785
+ value: i
786
+ };
787
+ }
788
+ }
789
+ return null;
790
+ }
791
+ function cs(a, e, t) {
792
+ if (typeof a != "string")
793
+ return null;
794
+ const i = a.trim();
795
+ if (!i)
796
+ return null;
797
+ if (i === e)
798
+ return {
799
+ target: "path",
800
+ value: e
801
+ };
802
+ if (i === t)
803
+ return {
804
+ target: "url",
805
+ value: t
806
+ };
807
+ const s = ls(i, t);
808
+ return s && s === t ? {
809
+ target: "url",
810
+ value: t
811
+ } : null;
812
+ }
813
+ function ls(a, e) {
814
+ if (!ds(a) && !a.startsWith("/"))
815
+ return null;
816
+ try {
817
+ return new URL(a, e).href;
818
+ } catch {
819
+ return null;
820
+ }
821
+ }
822
+ function ds(a) {
823
+ return /^[a-z][a-z\d+\-.]*:\/\//i.test(a);
824
+ }
825
+ function Za(a, e, t) {
826
+ return Array.isArray(a) ? a : typeof a == "string" || a instanceof RegExp ? [a] : (a != null && t.warn(`C7O-BOT:PAGES-RULES: Ignoring ${e}: expected an array of regex strings.`), []);
827
+ }
828
+ function fs(a, e, t, i) {
829
+ if (a instanceof RegExp)
830
+ return a;
831
+ if (typeof a != "string")
832
+ return i.warn(`C7O-BOT:PAGES-RULES: Ignoring ${e}[${t}]: expected a regex string.`), null;
833
+ const s = a.trim();
834
+ if (!s)
835
+ return i.warn(`C7O-BOT:PAGES-RULES: Ignoring ${e}[${t}]: regex string is empty.`), null;
836
+ try {
837
+ const r = s.match(/^\/(.+)\/([dgimsuvy]*)$/);
838
+ return r ? new RegExp(r[1], r[2]) : new RegExp(s);
839
+ } catch (r) {
840
+ return i.warn(`C7O-BOT:PAGES-RULES: Ignoring invalid regex ${e}[${t}] "${s}": ${r?.message || r}`), null;
841
+ }
842
+ }
843
+ function Ma(a, e) {
844
+ a.lastIndex = 0;
845
+ const t = a.test(e);
846
+ return a.lastIndex = 0, t;
847
+ }
848
+ function Xt(a) {
849
+ return a instanceof RegExp ? a.toString() : String(a);
850
+ }
734
851
  const ne = Ke.noConflict();
735
852
  ne.setLevel("info");
736
- const Xt = 3e4;
737
- class as {
853
+ const Yt = 3e4;
854
+ class hs {
738
855
  constructor(e = {}) {
739
856
  this.id = 0, this.url = e?.url || null, this.orgId = e?.orgId || null, this.botId = e?.botId || null, this.convId = e?.convId || null, this._options = e || {}, this._ws = null, this.started = !1, this.connected = !1, this.connecting = !1, this.suspendDetected = !1, this.onMessage = e?.onMessage || null, this.onConnecting = e?.onConnecting || null, this.onConnectError = e?.onConnectError || null, this.onClose = e?.onClose || null, this.queue = e?.queue || [], this.pause = (t) => new Promise((i) => setTimeout(i, t)), this.lastTickTs = 0, this.lastAckTs = 0, this.tickInterval = null, ne.info(`WSC: Created, url: ${this.url}`);
740
857
  }
@@ -802,7 +919,7 @@ class as {
802
919
  async start() {
803
920
  this.started = !0, this.connect(), this.lastTickTs = Date.now(), this.tickInterval = setInterval(() => {
804
921
  this.tick();
805
- }, Xt);
922
+ }, Yt);
806
923
  }
807
924
  async stop() {
808
925
  this.started = !1, this.disconnect(), this.tickInterval && (clearInterval(this.tickInterval), this.tickInterval = null);
@@ -845,7 +962,7 @@ class as {
845
962
  const e = Date.now();
846
963
  let t = !1;
847
964
  const i = e - this.lastAckTs;
848
- i > Xt + 5e3 && (t = !0, ne.info(`WSC: checkConnection: connection loss detected - last ack delay ${i} msec, reconnecting`)), t && this.disconnect();
965
+ i > Yt + 5e3 && (t = !0, ne.info(`WSC: checkConnection: connection loss detected - last ack delay ${i} msec, reconnecting`)), t && this.disconnect();
849
966
  }
850
967
  checkConnectionOnLifecycleResume() {
851
968
  if (!this.connecting)
@@ -853,7 +970,7 @@ class as {
853
970
  try {
854
971
  this._ws.send(JSON.stringify({ type: "heartbeat", id: ce() })), this.lastTickTs = Date.now(), this.tickInterval && clearInterval(this.tickInterval), this.tickInterval = setInterval(() => {
855
972
  this.tick();
856
- }, Xt);
973
+ }, Yt);
857
974
  } catch {
858
975
  this.disconnect();
859
976
  }
@@ -908,7 +1025,7 @@ class as {
908
1025
  });
909
1026
  }*/
910
1027
  }
911
- class is {
1028
+ class us {
912
1029
  constructor(e = {}) {
913
1030
  this.name = e.name || "EventEmitter", this.events = {};
914
1031
  }
@@ -1031,10 +1148,10 @@ class Je {
1031
1148
  ),
1032
1149
  // Chunk length
1033
1150
  r
1034
- ], f = new Blob(o, { type: "audio/mpeg" }), p = URL.createObjectURL(f);
1151
+ ], f = new Blob(o, { type: "audio/mpeg" }), b = URL.createObjectURL(f);
1035
1152
  return {
1036
1153
  blob: f,
1037
- url: p,
1154
+ url: b,
1038
1155
  channelCount: s.length,
1039
1156
  sampleRate: e,
1040
1157
  duration: r.byteLength / (s.length * e * 2)
@@ -1042,7 +1159,7 @@ class Je {
1042
1159
  }
1043
1160
  }
1044
1161
  globalThis.WavPacker = Je;
1045
- const Ca = [
1162
+ const Ta = [
1046
1163
  4186.01,
1047
1164
  4434.92,
1048
1165
  4698.63,
@@ -1055,7 +1172,7 @@ const Ca = [
1055
1172
  7040,
1056
1173
  7458.62,
1057
1174
  7902.13
1058
- ], ss = [
1175
+ ], bs = [
1059
1176
  "C",
1060
1177
  "C#",
1061
1178
  "D",
@@ -1068,13 +1185,13 @@ const Ca = [
1068
1185
  "A",
1069
1186
  "A#",
1070
1187
  "B"
1071
- ], We = [], ca = [];
1188
+ ], We = [], la = [];
1072
1189
  for (let a = 1; a <= 8; a++)
1073
- for (let e = 0; e < Ca.length; e++) {
1074
- const t = Ca[e];
1075
- We.push(t / Math.pow(2, 8 - a)), ca.push(ss[e] + a);
1190
+ for (let e = 0; e < Ta.length; e++) {
1191
+ const t = Ta[e];
1192
+ We.push(t / Math.pow(2, 8 - a)), la.push(bs[e] + a);
1076
1193
  }
1077
- const Ot = [32, 2e3], Aa = We.filter((a, e) => We[e] > Ot[0] && We[e] < Ot[1]), ns = ca.filter((a, e) => We[e] > Ot[0] && We[e] < Ot[1]);
1194
+ const Ot = [32, 2e3], Ia = We.filter((a, e) => We[e] > Ot[0] && We[e] < Ot[1]), ps = la.filter((a, e) => We[e] > Ot[0] && We[e] < Ot[1]);
1078
1195
  class lt {
1079
1196
  /**
1080
1197
  * Retrieves frequency domain data from an AnalyserNode adjusted to a decibel range
@@ -1089,21 +1206,21 @@ class lt {
1089
1206
  */
1090
1207
  static getFrequencies(e, t, i, s = "frequency", r = -100, o = -30) {
1091
1208
  i || (i = new Float32Array(e.frequencyBinCount), e.getFloatFrequencyData(i));
1092
- const f = t / 2, p = 1 / i.length * f;
1209
+ const f = t / 2, b = 1 / i.length * f;
1093
1210
  let v, k, w;
1094
1211
  if (s === "music" || s === "voice") {
1095
- const E = s === "voice" ? Aa : We, M = Array(E.length).fill(r);
1212
+ const E = s === "voice" ? Ia : We, T = Array(E.length).fill(r);
1096
1213
  for (let L = 0; L < i.length; L++) {
1097
- const C = L * p, Z = i[L];
1214
+ const C = L * b, Z = i[L];
1098
1215
  for (let N = E.length - 1; N >= 0; N--)
1099
1216
  if (C > E[N]) {
1100
- M[N] = Math.max(M[N], Z);
1217
+ T[N] = Math.max(T[N], Z);
1101
1218
  break;
1102
1219
  }
1103
1220
  }
1104
- v = M, k = s === "voice" ? Aa : We, w = s === "voice" ? ns : ca;
1221
+ v = T, k = s === "voice" ? Ia : We, w = s === "voice" ? ps : la;
1105
1222
  } else
1106
- v = Array.from(i), k = v.map((E, M) => p * M), w = k.map((E) => `${E.toFixed(2)} Hz`);
1223
+ v = Array.from(i), k = v.map((E, T) => b * T), w = k.map((E) => `${E.toFixed(2)} Hz`);
1107
1224
  const _ = v.map((E) => Math.max(
1108
1225
  0,
1109
1226
  Math.min((E - r) / (o - r), 1)
@@ -1129,8 +1246,8 @@ class lt {
1129
1246
  o.buffer = t;
1130
1247
  const f = r.createAnalyser();
1131
1248
  f.fftSize = 8192, f.smoothingTimeConstant = 0.1, o.connect(f);
1132
- const p = 1 / 60, v = i / s, k = (w) => {
1133
- const _ = p * w;
1249
+ const b = 1 / 60, v = i / s, k = (w) => {
1250
+ const _ = b * w;
1134
1251
  _ < v && r.suspend(_).then(() => {
1135
1252
  const P = new Float32Array(f.frequencyBinCount);
1136
1253
  f.getFloatFrequencyData(P), this.fftResults.push(P), k(w + 1);
@@ -1177,7 +1294,7 @@ class lt {
1177
1294
  }
1178
1295
  }
1179
1296
  globalThis.AudioAnalysis = lt;
1180
- const rs = `
1297
+ const gs = `
1181
1298
  class StreamProcessor extends AudioWorkletProcessor {
1182
1299
  constructor() {
1183
1300
  super();
@@ -1266,17 +1383,17 @@ class StreamProcessor extends AudioWorkletProcessor {
1266
1383
  }
1267
1384
 
1268
1385
  registerProcessor('stream_processor', StreamProcessor);
1269
- `, os = new Blob([rs], {
1386
+ `, ms = new Blob([gs], {
1270
1387
  type: "application/javascript"
1271
- }), cs = URL.createObjectURL(os), ls = cs;
1272
- class ds {
1388
+ }), ys = URL.createObjectURL(ms), vs = ys;
1389
+ class ws {
1273
1390
  /**
1274
1391
  * Creates a new WavStreamPlayer instance
1275
1392
  * @param {{sampleRate?: number}} options
1276
1393
  * @returns {WavStreamPlayer}
1277
1394
  */
1278
1395
  constructor({ sampleRate: e = 44100, onPlaybackEnded: t = null } = {}) {
1279
- this.scriptSrc = ls, this.sampleRate = e, this.context = null, this.stream = null, this.analyser = null, this.trackSampleOffsets = {}, this.interruptedTrackIds = {}, this.onPlaybackEnded = t && typeof t == "function" ? t : null;
1396
+ this.scriptSrc = vs, this.sampleRate = e, this.context = null, this.stream = null, this.analyser = null, this.trackSampleOffsets = {}, this.interruptedTrackIds = {}, this.onPlaybackEnded = t && typeof t == "function" ? t : null;
1280
1397
  }
1281
1398
  /**
1282
1399
  * Connects the audio context and enables output to speakers
@@ -1371,8 +1488,8 @@ class ds {
1371
1488
  return this.getTrackSampleOffset(!0);
1372
1489
  }
1373
1490
  }
1374
- globalThis.WavStreamPlayer = ds;
1375
- const fs = URL.createObjectURL(
1491
+ globalThis.WavStreamPlayer = ws;
1492
+ const xs = URL.createObjectURL(
1376
1493
  new Blob([`
1377
1494
  class UpsampleStreamPCM extends AudioWorkletProcessor {
1378
1495
  constructor(options) {
@@ -1544,7 +1661,7 @@ class UpsampleStreamPCM extends AudioWorkletProcessor {
1544
1661
  registerProcessor('upsample-stream-pcm', UpsampleStreamPCM);
1545
1662
  `], { type: "application/javascript" })
1546
1663
  );
1547
- class Ya {
1664
+ class Qa {
1548
1665
  /**
1549
1666
  * @param {{
1550
1667
  * inputSampleRate?: number,
@@ -1567,12 +1684,12 @@ class Ya {
1567
1684
  // default decided below by isMobile()
1568
1685
  } = {}) {
1569
1686
  this.inputSampleRate = e, this.onPlaybackEnded = typeof t == "function" ? t : null, this.debug = !!i;
1570
- const p = navigator.userAgent || "", v = /iP(hone|ad|od)/.test(p), k = /CriOS/.test(p), w = /FxiOS/.test(p), _ = /EdgiOS/.test(p), P = /Safari/.test(p) && !/Chrome|Chromium|Edg/.test(p);
1687
+ const b = navigator.userAgent || "", v = /iP(hone|ad|od)/.test(b), k = /CriOS/.test(b), w = /FxiOS/.test(b), _ = /EdgiOS/.test(b), P = /Safari/.test(b) && !/Chrome|Chromium|Edg/.test(b);
1571
1688
  this._isSafariMobile = v && P && !k && !w && !_;
1572
- const E = !!(navigator.userAgentData && typeof navigator.userAgentData.mobile == "boolean" && navigator.userAgentData.mobile), M = /Android|iPhone|iPod|Mobile/.test(p), L = (() => {
1689
+ const E = !!(navigator.userAgentData && typeof navigator.userAgentData.mobile == "boolean" && navigator.userAgentData.mobile), T = /Android|iPhone|iPod|Mobile/.test(b), L = (() => {
1573
1690
  const Z = navigator.platform || "";
1574
- return /iPad/.test(p) || Z === "MacIntel" && navigator.maxTouchPoints > 1;
1575
- })(), C = E || M || L;
1691
+ return /iPad/.test(b) || Z === "MacIntel" && navigator.maxTouchPoints > 1;
1692
+ })(), C = E || T || L;
1576
1693
  this._firstTurnRampInMs = s ?? (this._isSafariMobile ? 140 : 0), this._primeMs = r ?? (this._isSafariMobile ? 220 : 0), this._requireGestureToUnlock = o != null ? !!o : !!this._isSafariMobile, this._enableLoopbackRef = f != null ? !!f : !!C, this.context = null, this.analyser = null, this._worklet = null, this._audibleGain = null, this._renderDest = null, this._pcSend = null, this._pcRecv = null, this._firstTurn = !0, this._unlocked = !this._requireGestureToUnlock, this.trackSampleOffsets = {}, this.interruptedTrackIds = {}, this._onGestureUnlock = this._onGestureUnlock.bind(this);
1577
1694
  }
1578
1695
  _log(...e) {
@@ -1589,7 +1706,7 @@ class Ya {
1589
1706
  /** Build the WebAudio graph. Always audible via direct path; loopback ref is optional and non-critical. */
1590
1707
  async connect() {
1591
1708
  if (this.context) return !0;
1592
- if (this.context = new (window.AudioContext || window.webkitAudioContext)({ latencyHint: "interactive" }), this.context.state === "suspended" && await this.context.resume(), await this.context.audioWorklet.addModule(fs), this._worklet = new AudioWorkletNode(this.context, "upsample-stream-pcm", {
1709
+ if (this.context = new (window.AudioContext || window.webkitAudioContext)({ latencyHint: "interactive" }), this.context.state === "suspended" && await this.context.resume(), await this.context.audioWorklet.addModule(xs), this._worklet = new AudioWorkletNode(this.context, "upsample-stream-pcm", {
1593
1710
  processorOptions: {
1594
1711
  sourceSampleRate: this.inputSampleRate,
1595
1712
  prerollSrc: Math.round(this.inputSampleRate * 0.02)
@@ -1717,8 +1834,8 @@ class Ya {
1717
1834
  return this.connect();
1718
1835
  }
1719
1836
  }
1720
- globalThis.WavStreamPlayerV2 = Ya;
1721
- const hs = `
1837
+ globalThis.WavStreamPlayerV2 = Qa;
1838
+ const ks = `
1722
1839
  class AudioProcessor extends AudioWorkletProcessor {
1723
1840
 
1724
1841
  constructor() {
@@ -1925,17 +2042,17 @@ class AudioProcessor extends AudioWorkletProcessor {
1925
2042
  }
1926
2043
 
1927
2044
  registerProcessor('audio_processor', AudioProcessor);
1928
- `, us = new Blob([hs], {
2045
+ `, _s = new Blob([ks], {
1929
2046
  type: "application/javascript"
1930
- }), bs = URL.createObjectURL(us), ps = bs;
1931
- class gs {
2047
+ }), Ss = URL.createObjectURL(_s), Cs = Ss;
2048
+ class As {
1932
2049
  /**
1933
2050
  * Create a new WavRecorder instance
1934
2051
  * @param {{sampleRate?: number, outputToSpeakers?: boolean, debug?: boolean}} [options]
1935
2052
  * @returns {WavRecorder}
1936
2053
  */
1937
2054
  constructor({ sampleRate: e = 44100, outputToSpeakers: t = !1, debug: i = !1 } = {}) {
1938
- this.scriptSrc = ps, this.sampleRate = e, this.outputToSpeakers = t, this.debug = !!i, this._deviceChangeCallback = null, this._devices = [], this.stream = null, this.processor = null, this.source = null, this.node = null, this.recording = !1, this._lastEventId = 0, this.eventReceipts = {}, this.eventTimeout = 5e3, this._chunkProcessor = () => {
2055
+ this.scriptSrc = Cs, this.sampleRate = e, this.outputToSpeakers = t, this.debug = !!i, this._deviceChangeCallback = null, this._devices = [], this.stream = null, this.processor = null, this.source = null, this.node = null, this.recording = !1, this._lastEventId = 0, this.eventReceipts = {}, this.eventTimeout = 5e3, this._chunkProcessor = () => {
1939
2056
  }, this._chunkProcessorSize = void 0, this._chunkProcessorBuffer = {
1940
2057
  raw: new ArrayBuffer(0),
1941
2058
  mono: new ArrayBuffer(0)
@@ -1963,8 +2080,8 @@ class gs {
1963
2080
  let k, w;
1964
2081
  if (e instanceof Int16Array) {
1965
2082
  w = e, k = new Float32Array(e.length);
1966
- for (let M = 0; M < e.length; M++)
1967
- k[M] = e[M] / 32768;
2083
+ for (let T = 0; T < e.length; T++)
2084
+ k[T] = e[T] / 32768;
1968
2085
  } else if (e instanceof Float32Array)
1969
2086
  k = e;
1970
2087
  else if (e instanceof Array)
@@ -1983,11 +2100,11 @@ class gs {
1983
2100
  };
1984
2101
  o = new Je().pack(i, _).blob, r = await o.arrayBuffer();
1985
2102
  }
1986
- const f = await s.decodeAudioData(r), p = f.getChannelData(0), v = URL.createObjectURL(o);
2103
+ const f = await s.decodeAudioData(r), b = f.getChannelData(0), v = URL.createObjectURL(o);
1987
2104
  return {
1988
2105
  blob: o,
1989
2106
  url: v,
1990
- values: p,
2107
+ values: b,
1991
2108
  audioBuffer: f
1992
2109
  };
1993
2110
  }
@@ -2147,10 +2264,10 @@ class gs {
2147
2264
  }
2148
2265
  const s = new AudioWorkletNode(t, "audio_processor");
2149
2266
  s.port.onmessage = (f) => {
2150
- const { event: p, id: v, data: k } = f.data;
2151
- if (p === "receipt")
2267
+ const { event: b, id: v, data: k } = f.data;
2268
+ if (b === "receipt")
2152
2269
  this.eventReceipts[v] = k;
2153
- else if (p === "chunk")
2270
+ else if (b === "chunk")
2154
2271
  if (this._chunkProcessorSize) {
2155
2272
  const w = this._chunkProcessorBuffer;
2156
2273
  this._chunkProcessorBuffer = {
@@ -2264,8 +2381,8 @@ use only for debugging`), o.connect(t.destination)), this.source = i, this.node
2264
2381
  return this.listenForDeviceChange(null), this.processor && await this.end(), !0;
2265
2382
  }
2266
2383
  }
2267
- globalThis.WavRecorder = gs;
2268
- const ms = URL.createObjectURL(
2384
+ globalThis.WavRecorder = As;
2385
+ const Ms = URL.createObjectURL(
2269
2386
  new Blob([`
2270
2387
  class DownsampleRecorder extends AudioWorkletProcessor {
2271
2388
  constructor(options) {
@@ -2486,7 +2603,7 @@ class ot {
2486
2603
  echoCancellationType: this.captureInfo.trackSettings?.echoCancellationType ?? null
2487
2604
  }, this._log("Granted track settings:", this.captureInfo.trackSettings), this.audioCtx = new (window.AudioContext || window.webkitAudioContext)({
2488
2605
  latencyHint: "interactive"
2489
- }), this.captureInfo.contextSampleRate = this.audioCtx.sampleRate, this.source = this.audioCtx.createMediaStreamSource(this.stream), await this.audioCtx.audioWorklet.addModule(ms);
2606
+ }), this.captureInfo.contextSampleRate = this.audioCtx.sampleRate, this.source = this.audioCtx.createMediaStreamSource(this.stream), await this.audioCtx.audioWorklet.addModule(Ms);
2490
2607
  const s = Math.round(this.targetSampleRate * this.chunkMs / 1e3);
2491
2608
  return this.node = new AudioWorkletNode(this.audioCtx, "downsample-recorder", {
2492
2609
  processorOptions: {
@@ -2553,8 +2670,8 @@ class ot {
2553
2670
  if (typeof e == "function") {
2554
2671
  let t = 0, i = "";
2555
2672
  const s = (o) => o.map((f) => f.deviceId).sort().join(","), r = async () => {
2556
- const o = ++t, f = await this.listDevices(), p = s(f);
2557
- o === t && p !== i && (i = p, e(f.slice()));
2673
+ const o = ++t, f = await this.listDevices(), b = s(f);
2674
+ o === t && b !== i && (i = b, e(f.slice()));
2558
2675
  };
2559
2676
  return navigator.mediaDevices.addEventListener("devicechange", r), r(), this._deviceChangeCallback = r, !0;
2560
2677
  }
@@ -2562,11 +2679,11 @@ class ot {
2562
2679
  }
2563
2680
  }
2564
2681
  globalThis.WavRecorderV2 = ot;
2565
- class ys {
2682
+ class Ts {
2566
2683
  constructor(e = {}) {
2567
- this.sr = Math.max(8e3, e.sampleRate || 24e3), this.floor = Ma(e.floor ?? 0.12), this.attackSamples = Ce(e.attackMs ?? 12, this.sr), this.releaseSamples = Ce(e.releaseMs ?? 150, this.sr), this.escapeAttackSamples = Ce(e.escapeAttackMs ?? 10, this.sr), this.defaultGuardSamples = Ce(e.defaultGuardMs ?? 0, this.sr), this.gain = 1, this.target = 1, this.rampRemain = 0, this._step = 0, this.duckActive = !1, this.guardRemain = 0, this.vadEnabled = e.vadEnabled !== !1;
2684
+ this.sr = Math.max(8e3, e.sampleRate || 24e3), this.floor = Ea(e.floor ?? 0.12), this.attackSamples = Ce(e.attackMs ?? 12, this.sr), this.releaseSamples = Ce(e.releaseMs ?? 150, this.sr), this.escapeAttackSamples = Ce(e.escapeAttackMs ?? 10, this.sr), this.defaultGuardSamples = Ce(e.defaultGuardMs ?? 0, this.sr), this.gain = 1, this.target = 1, this.rampRemain = 0, this._step = 0, this.duckActive = !1, this.guardRemain = 0, this.vadEnabled = e.vadEnabled !== !1;
2568
2685
  const t = Math.max(2, e.vadFastMs ?? 10), i = Math.max(t + 20, e.vadSlowMs ?? 250);
2569
- this.alphaFast = Ia(t, this.sr), this.alphaSlow = Ia(i, this.sr), this.vadFast = 0, this.vadSlow = 1e-12, this.vadRatio = Ta(e.vadTriggerDb ?? 9), this.vadAttackSamples = Ce(e.vadAttackMs ?? 18, this.sr), this.vadHangSamples = Ce(e.vadHangMs ?? 120, this.sr), this._speechCount = 0, this._hangRemain = 0, this._speaking = !1, this._nextShield = null, this._shieldActive = !1, this._shieldFloor = this.floor, this._shieldHardMute = !1, this._eps = 1e-12;
2686
+ this.alphaFast = Pa(t, this.sr), this.alphaSlow = Pa(i, this.sr), this.vadFast = 0, this.vadSlow = 1e-12, this.vadRatio = $a(e.vadTriggerDb ?? 9), this.vadAttackSamples = Ce(e.vadAttackMs ?? 18, this.sr), this.vadHangSamples = Ce(e.vadHangMs ?? 120, this.sr), this._speechCount = 0, this._hangRemain = 0, this._speaking = !1, this._nextShield = null, this._shieldActive = !1, this._shieldFloor = this.floor, this._shieldHardMute = !1, this._eps = 1e-12;
2570
2687
  }
2571
2688
  /** Arm a one‑shot, VAD‑escapable shield for the NEXT TTS start. */
2572
2689
  armFirstTurnShield({
@@ -2580,8 +2697,8 @@ class ys {
2580
2697
  vadAttackMs: r,
2581
2698
  vadHangMs: o
2582
2699
  } = {}) {
2583
- const p = { durationSamp: Ce(e, this.sr), floor: Ma(t), hardMute: !!i };
2584
- s != null && (p.vadRatio = Ta(s)), r != null && (p.vadAttackSamples = Ce(r, this.sr)), o != null && (p.vadHangSamples = Ce(o, this.sr)), this._nextShield = p;
2700
+ const b = { durationSamp: Ce(e, this.sr), floor: Ea(t), hardMute: !!i };
2701
+ s != null && (b.vadRatio = $a(s)), r != null && (b.vadAttackSamples = Ce(r, this.sr)), o != null && (b.vadHangSamples = Ce(o, this.sr)), this._nextShield = b;
2585
2702
  }
2586
2703
  onTTSStart(e) {
2587
2704
  if (this.duckActive = !0, this._nextShield) {
@@ -2600,12 +2717,12 @@ class ys {
2600
2717
  const t = e.length;
2601
2718
  if (!t) return e;
2602
2719
  const i = new Int16Array(t);
2603
- let s = this.gain, r = this._step, o = this.rampRemain, f = this.vadFast, p = this.vadSlow, v = this._speechCount, k = this._hangRemain, w = this._speaking;
2720
+ let s = this.gain, r = this._step, o = this.rampRemain, f = this.vadFast, b = this.vadSlow, v = this._speechCount, k = this._hangRemain, w = this._speaking;
2604
2721
  const _ = this._eps, P = this.vadRatio;
2605
2722
  for (let E = 0; E < t; E++) {
2606
2723
  this.guardRemain > 0 && this.guardRemain--;
2607
- const M = e[E] / 32768, L = M * M;
2608
- f = f + (1 - this.alphaFast) * (L - f), p = p + (1 - this.alphaSlow) * (L - p), this.vadEnabled && (f / (p + _) >= P ? v < this.vadAttackSamples && v++ : v = 0, v >= this.vadAttackSamples ? (w = !0, k = this.vadHangSamples) : k > 0 ? (w = !0, k--) : w = !1), w && this._shieldActive && (this._shieldActive = !1, this.target = 1, o = this.escapeAttackSamples, r = o > 0 ? (1 - s) / o : 0);
2724
+ const T = e[E] / 32768, L = T * T;
2725
+ f = f + (1 - this.alphaFast) * (L - f), b = b + (1 - this.alphaSlow) * (L - b), this.vadEnabled && (f / (b + _) >= P ? v < this.vadAttackSamples && v++ : v = 0, v >= this.vadAttackSamples ? (w = !0, k = this.vadHangSamples) : k > 0 ? (w = !0, k--) : w = !1), w && this._shieldActive && (this._shieldActive = !1, this.target = 1, o = this.escapeAttackSamples, r = o > 0 ? (1 - s) / o : 0);
2609
2726
  let C = 1, Z = 0, N = !1;
2610
2727
  if (this.duckActive) {
2611
2728
  const te = this.guardRemain > 0;
@@ -2616,26 +2733,26 @@ class ys {
2616
2733
  let X;
2617
2734
  N && !w ? X = 0 : (X = e[E] * s, X > 32767 ? X = 32767 : X < -32768 && (X = -32768)), i[E] = X | 0;
2618
2735
  }
2619
- return this.gain = s, this._step = r, this.rampRemain = o, this.vadFast = f, this.vadSlow = p, this._speechCount = v, this._hangRemain = k, this._speaking = w, i;
2736
+ return this.gain = s, this._step = r, this.rampRemain = o, this.vadFast = f, this.vadSlow = b, this._speechCount = v, this._hangRemain = k, this._speaking = w, i;
2620
2737
  }
2621
2738
  _startRamp(e, t) {
2622
2739
  this.target = e, this.rampRemain = t, this.rampRemain <= 0 ? (this.gain = this.target, this._step = 0) : this._step = (this.target - this.gain) / this.rampRemain;
2623
2740
  }
2624
2741
  }
2625
- function Ma(a) {
2742
+ function Ea(a) {
2626
2743
  return Math.max(0, Math.min(1, a));
2627
2744
  }
2628
2745
  function Ce(a, e) {
2629
2746
  return Math.max(0, Math.round(a * e / 1e3));
2630
2747
  }
2631
- function Ta(a) {
2748
+ function $a(a) {
2632
2749
  return Math.pow(10, a / 10);
2633
2750
  }
2634
- function Ia(a, e) {
2751
+ function Pa(a, e) {
2635
2752
  const t = Math.max(1, a * e / 1e3);
2636
2753
  return Math.exp(-1 / t);
2637
2754
  }
2638
- class vs {
2755
+ class Is {
2639
2756
  /**
2640
2757
  * @param {object} opts
2641
2758
  * @param {number} opts.sampleRate - Hz of your PCM (e.g., 24000)
@@ -2707,17 +2824,17 @@ class vs {
2707
2824
  const r = this._downsample(t, this.ds), o = r.length;
2708
2825
  if (this.pbFilled - i <= 0)
2709
2826
  return this._float32ToInt16(t);
2710
- const p = this._iterDownsampleView(this.pb, this.pbWrite, this.pbFilled, this.ds), k = p.length - o;
2827
+ const b = this._iterDownsampleView(this.pb, this.pbWrite, this.pbFilled, this.ds), k = b.length - o;
2711
2828
  if (k <= 0)
2712
2829
  return this._float32ToInt16(t);
2713
- const w = this.preEmphasis > 0, _ = w ? this._preEmphasize(r, this.preEmphasis, "mic") : r, P = w ? this._preEmphasize(p, this.preEmphasis, "pb") : p;
2830
+ const w = this.preEmphasis > 0, _ = w ? this._preEmphasize(r, this.preEmphasis, "mic") : r, P = w ? this._preEmphasize(b, this.preEmphasis, "pb") : b;
2714
2831
  let E = 0;
2715
2832
  for (let ae = 0; ae < o; ae++) {
2716
2833
  const he = _[ae];
2717
2834
  E += he * he;
2718
2835
  }
2719
2836
  E = Math.sqrt(E) + 1e-12;
2720
- const M = this.sr / this.ds, L = (this.baseLatencySec + this.outputLatencySec) * 1e3 + this.latencyCompMs, C = Math.max(0, Math.round(L * M / 1e3)), Z = Math.max(1, Math.round(this.windowMs * M / 1e3));
2837
+ const T = this.sr / this.ds, L = (this.baseLatencySec + this.outputLatencySec) * 1e3 + this.latencyCompMs, C = Math.max(0, Math.round(L * T / 1e3)), Z = Math.max(1, Math.round(this.windowMs * T / 1e3));
2721
2838
  let N = 0, X = k;
2722
2839
  C > 0 && (N = Math.max(0, Math.min(k, C - Z)), X = Math.max(N, Math.min(k, C + Z)));
2723
2840
  const te = Math.max(1, Math.floor(this.hop / this.ds));
@@ -2784,13 +2901,13 @@ class vs {
2784
2901
  */
2785
2902
  _iterDownsampleView(e, t, i, s) {
2786
2903
  const r = Math.floor(i / s), o = new Float32Array(r);
2787
- let p = (t - i + e.length) % e.length, v = 0, k = 0;
2904
+ let b = (t - i + e.length) % e.length, v = 0, k = 0;
2788
2905
  for (; v < r; )
2789
- k === 0 ? (o[v++] = e[p], k = s - 1) : k--, p++, p === e.length && (p = 0);
2906
+ k === 0 ? (o[v++] = e[b], k = s - 1) : k--, b++, b === e.length && (b = 0);
2790
2907
  return o;
2791
2908
  }
2792
2909
  }
2793
- class ws {
2910
+ class Es {
2794
2911
  /**
2795
2912
  * @param {object} opts
2796
2913
  * @param {number} opts.sampleRate - PCM sample rate (e.g., 24000)
@@ -2843,13 +2960,13 @@ class ws {
2843
2960
  this.pbFilled >= i && i >= r && (o = this._bestNormalizedCorrelation(t));
2844
2961
  const f = this._alphaForMs(s, o >= this._corrSmoothed ? this.corrAttackMs : this.corrReleaseMs);
2845
2962
  this._corrSmoothed = (1 - f) * this._corrSmoothed + f * o;
2846
- let p;
2847
- this._corrSmoothed <= this.low ? p = 1 : this._corrSmoothed >= this.high ? p = this.gainFloor : p = 1 + (this._corrSmoothed - this.low) / (this.high - this.low) * (this.gainFloor - 1);
2963
+ let b;
2964
+ this._corrSmoothed <= this.low ? b = 1 : this._corrSmoothed >= this.high ? b = this.gainFloor : b = 1 + (this._corrSmoothed - this.low) / (this.high - this.low) * (this.gainFloor - 1);
2848
2965
  const v = this._alphaForMs(
2849
2966
  s,
2850
- p < this._gainSmoothed ? this.gainAttackMs : this.gainReleaseMs
2967
+ b < this._gainSmoothed ? this.gainAttackMs : this.gainReleaseMs
2851
2968
  );
2852
- this._gainSmoothed = (1 - v) * this._gainSmoothed + v * p;
2969
+ this._gainSmoothed = (1 - v) * this._gainSmoothed + v * b;
2853
2970
  const k = this._gainSmoothed;
2854
2971
  for (let w = 0; w < i; w++) t[w] *= k;
2855
2972
  return this._float32ToInt16(t);
@@ -2876,17 +2993,17 @@ class ws {
2876
2993
  for (let v = 0; v < i; v++) o += t[v] * t[v];
2877
2994
  o = Math.sqrt(o) + 1e-12;
2878
2995
  const f = Math.max(1, Math.floor(this.hop / this.ds));
2879
- let p = -1;
2996
+ let b = -1;
2880
2997
  for (let v = 0; v <= r; v += f) {
2881
2998
  let k = 0, w = 0;
2882
2999
  for (let E = 0; E < i; E++) {
2883
- const M = t[E], L = s[v + E];
2884
- k += M * L, w += L * L;
3000
+ const T = t[E], L = s[v + E];
3001
+ k += T * L, w += L * L;
2885
3002
  }
2886
3003
  const _ = o * (Math.sqrt(w) + 1e-12), P = _ > 0 ? k / _ : 0;
2887
- if (P > p && (p = P), p > Math.min(0.98, this.high + 0.25)) break;
3004
+ if (P > b && (b = P), b > Math.min(0.98, this.high + 0.25)) break;
2888
3005
  }
2889
- return Math.max(0, Math.min(1, p));
3006
+ return Math.max(0, Math.min(1, b));
2890
3007
  }
2891
3008
  _toFloat32Mono(e, t = !1) {
2892
3009
  if (e instanceof Float32Array) return t ? e : new Float32Array(e);
@@ -2921,13 +3038,13 @@ class ws {
2921
3038
  */
2922
3039
  _iterDownsampleView(e, t, i, s) {
2923
3040
  const r = Math.floor(i / s), o = new Float32Array(r);
2924
- let p = (t - i + e.length) % e.length, v = 0, k = 0;
3041
+ let b = (t - i + e.length) % e.length, v = 0, k = 0;
2925
3042
  for (; v < r; )
2926
- k === 0 ? (o[v++] = e[p], k = s - 1) : k--, p++, p === e.length && (p = 0);
3043
+ k === 0 ? (o[v++] = e[b], k = s - 1) : k--, b++, b === e.length && (b = 0);
2927
3044
  return o;
2928
3045
  }
2929
3046
  }
2930
- class xs {
3047
+ class $s {
2931
3048
  /**
2932
3049
  * @param {object} opts
2933
3050
  * @param {number} opts.sampleRate - Mic PCM sample rate (e.g., 24000)
@@ -2972,26 +3089,26 @@ class xs {
2972
3089
  }
2973
3090
  const Ne = Ke.noConflict();
2974
3091
  Ne.setLevel("info");
2975
- class gt extends is {
3092
+ class gt extends us {
2976
3093
  constructor(e = {}) {
2977
3094
  super({ name: "WebAudioProcessorV2" }), this.options = e, this.muted = !1, this.audioRecorder = new ot({
2978
3095
  targetSampleRate: 24e3,
2979
3096
  debug: !!e.debug
2980
- }), this.audioPlayer = new Ya({
3097
+ }), this.audioPlayer = new Qa({
2981
3098
  inputSampleRate: 24e3,
2982
3099
  onPlaybackEnded: this.handleOnPlaybackEnded.bind(this),
2983
3100
  firstTurnRampInMs: 200,
2984
3101
  primeMs: 200,
2985
3102
  // keep or remove; it’s harmless
2986
3103
  debug: !!e.debug
2987
- }), this.audioRecorderAnalyzer = null, this.audioPlayerAnalyzer = null, this.firstTurnDropMs = e.firstTurnDropMs ?? 1500, this.firstTurnGate = new xs({
3104
+ }), this.audioRecorderAnalyzer = null, this.audioPlayerAnalyzer = null, this.firstTurnDropMs = e.firstTurnDropMs ?? 1500, this.firstTurnGate = new $s({
2988
3105
  sampleRate: 24e3,
2989
3106
  windowMs: this.firstTurnDropMs,
2990
3107
  partialPass: !0,
2991
3108
  // pass remainder of crossing frame
2992
3109
  hardDrop: !0
2993
3110
  // set true if you prefer simpler "drop whole frame"
2994
- }), this.ducker = new ys({
3111
+ }), this.ducker = new Ts({
2995
3112
  sampleRate: 24e3,
2996
3113
  floor: 0.12,
2997
3114
  attackMs: 12,
@@ -3006,7 +3123,7 @@ class gt extends is {
3006
3123
  vadSlowMs: 250,
3007
3124
  vadAttackMs: 18,
3008
3125
  vadHangMs: 120
3009
- }), this.mixMinus = new vs({
3126
+ }), this.mixMinus = new Is({
3010
3127
  sampleRate: 24e3,
3011
3128
  bufferMs: 1e3,
3012
3129
  threshold: 0.3,
@@ -3015,7 +3132,7 @@ class gt extends is {
3015
3132
  hop: 64,
3016
3133
  downsampleFactor: 3,
3017
3134
  minCorrLenMs: 15
3018
- }), this.mixMinusSmooth = new ws({
3135
+ }), this.mixMinusSmooth = new Es({
3019
3136
  sampleRate: 24e3,
3020
3137
  bufferMs: 800,
3021
3138
  lowThresh: 0.25,
@@ -3190,17 +3307,17 @@ class gt extends is {
3190
3307
  }
3191
3308
  }
3192
3309
  globalThis.WebAudioProcessorV2 = gt;
3193
- var ks = Object.defineProperty, _s = Object.getOwnPropertyDescriptor, st = (a, e, t, i) => {
3194
- for (var s = i > 1 ? void 0 : i ? _s(e, t) : e, r = a.length - 1, o; r >= 0; r--)
3310
+ var Ps = Object.defineProperty, Ls = Object.getOwnPropertyDescriptor, st = (a, e, t, i) => {
3311
+ for (var s = i > 1 ? void 0 : i ? Ls(e, t) : e, r = a.length - 1, o; r >= 0; r--)
3195
3312
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
3196
- return i && s && ks(e, t, s), s;
3313
+ return i && s && Ps(e, t, s), s;
3197
3314
  };
3198
- const It = "cb-toast-outlet", Ea = "cb-toast-outlet-style";
3199
- function Ss() {
3315
+ const It = "cb-toast-outlet", La = "cb-toast-outlet-style";
3316
+ function Rs() {
3200
3317
  let a = document.getElementById(It);
3201
- if (a || (a = document.createElement("div"), a.id = It, document.body.appendChild(a)), !document.getElementById(Ea)) {
3318
+ if (a || (a = document.createElement("div"), a.id = It, document.body.appendChild(a)), !document.getElementById(La)) {
3202
3319
  const e = document.createElement("style");
3203
- e.id = Ea, e.textContent = `
3320
+ e.id = La, e.textContent = `
3204
3321
  /* Global outlet that holds all toasts */
3205
3322
  #${It} {
3206
3323
  position: fixed;
@@ -3224,8 +3341,8 @@ function Ss() {
3224
3341
  }
3225
3342
  return a;
3226
3343
  }
3227
- function Ka(a) {
3228
- const e = Ss(), t = document.createElement("cb-toast");
3344
+ function ei(a) {
3345
+ const e = Rs(), t = document.createElement("cb-toast");
3229
3346
  return t.message = a.message, t.variant = a.variant ?? "success", t.duration = typeof a.duration == "number" ? a.duration : 3e3, t.closeable = !!a.closeable, t.icon = a.icon ?? "", t.ariaLive = a.ariaLive ?? "polite", e.appendChild(t), t;
3230
3347
  }
3231
3348
  let qe = class extends Fe {
@@ -3247,17 +3364,17 @@ let qe = class extends Fe {
3247
3364
  }
3248
3365
  render() {
3249
3366
  const a = ["toast", this.variant, this._open ? "open" : "", this._closing ? "closing" : ""].filter(Boolean).join(" "), e = this.icon || this._defaultIcons[this.variant] || this._defaultIcons.success;
3250
- return b`
3367
+ return p`
3251
3368
  <div
3252
3369
  class=${a}
3253
3370
  role="status"
3254
3371
  aria-live=${this.ariaLive}
3255
3372
  >
3256
- ${b`<span class="icon" aria-hidden="true">${this._renderIcon(e)}</span>`}
3373
+ ${p`<span class="icon" aria-hidden="true">${this._renderIcon(e)}</span>`}
3257
3374
  <div class="msg">
3258
- ${this.message ? b`${this.message}` : b`<slot></slot>`}
3375
+ ${this.message ? p`${this.message}` : p`<slot></slot>`}
3259
3376
  </div>
3260
- ${this.closeable ? b`<button class="close" @click=${this.close} aria-label="Close">×</button>` : Ae}
3377
+ ${this.closeable ? p`<button class="close" @click=${this.close} aria-label="Close">×</button>` : Ae}
3261
3378
  </div>
3262
3379
  `;
3263
3380
  }
@@ -3272,7 +3389,7 @@ let qe = class extends Fe {
3272
3389
  this._timer && (clearTimeout(this._timer), this._timer = void 0);
3273
3390
  }
3274
3391
  _renderIcon(a) {
3275
- return a.trim().startsWith("<") ? b`${G(a)}` : a;
3392
+ return a.trim().startsWith("<") ? p`${G(a)}` : a;
3276
3393
  }
3277
3394
  };
3278
3395
  qe.styles = K`
@@ -3430,7 +3547,7 @@ function Ze(a) {
3430
3547
  }
3431
3548
  };
3432
3549
  }
3433
- function Cs(a) {
3550
+ function zs(a) {
3434
3551
  return function e(t, i, s) {
3435
3552
  switch (arguments.length) {
3436
3553
  case 0:
@@ -3464,47 +3581,47 @@ function Cs(a) {
3464
3581
  }
3465
3582
  };
3466
3583
  }
3467
- const As = Number.isInteger || function(e) {
3584
+ const Os = Number.isInteger || function(e) {
3468
3585
  return e << 0 === e;
3469
3586
  };
3470
- function Ms(a, e) {
3587
+ function Bs(a, e) {
3471
3588
  var t = a < 0 ? e.length + a : a;
3472
3589
  return e[t];
3473
3590
  }
3474
- var Ts = /* @__PURE__ */ Ze(function(e, t) {
3591
+ var qs = /* @__PURE__ */ Ze(function(e, t) {
3475
3592
  return t == null || t !== t ? e : t;
3476
3593
  });
3477
- function Is(a, e) {
3594
+ function Ds(a, e) {
3478
3595
  for (var t = e, i = 0; i < a.length; i += 1) {
3479
3596
  if (t == null)
3480
3597
  return;
3481
3598
  var s = a[i];
3482
- As(s) ? t = Ms(s, t) : t = t[s];
3599
+ Os(s) ? t = Bs(s, t) : t = t[s];
3483
3600
  }
3484
3601
  return t;
3485
3602
  }
3486
- var Yt = /* @__PURE__ */ Cs(function(e, t, i) {
3487
- return Ts(e, Is(t, i));
3603
+ var Kt = /* @__PURE__ */ zs(function(e, t, i) {
3604
+ return qs(e, Ds(t, i));
3488
3605
  });
3489
- const Es = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
3490
- var $s = Object.defineProperty, O = (a, e, t, i) => {
3606
+ const Fs = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
3607
+ var Hs = Object.defineProperty, O = (a, e, t, i) => {
3491
3608
  for (var s = void 0, r = a.length - 1, o; r >= 0; r--)
3492
3609
  (o = a[r]) && (s = o(e, t, s) || s);
3493
- return s && $s(e, t, s), s;
3610
+ return s && Hs(e, t, s), s;
3494
3611
  };
3495
- const T = Ke.noConflict();
3496
- T.setLevel("info");
3497
- const ie = "cb_", Ps = (a) => new Promise((e) => setTimeout(e, a));
3498
- class R extends Zt {
3612
+ const A = Ke.noConflict();
3613
+ A.setLevel("info");
3614
+ const ie = "cb_", js = (a) => new Promise((e) => setTimeout(e, a));
3615
+ class R extends Qt {
3499
3616
  constructor() {
3500
3617
  super(), this.actionIdCounter = 0, this.currentLoadContext = {}, this.prefilledFormValues = {}, this.wsClient = null, this.checkConnectionOnLifecycleResumePromise = null, this.webAudioProcessor = null, this.webAudioTrackId = null, this.webAudioCurrentMark = null, this.replyMessage = null, this.streamingResponseInProgress = !1, this.streamingResponseLastText = null, this.streamingResponseBuffer = null, this.streamingResponseTagStartPos = 0, this.streamingResponseCurrentTag = null, this.tabsBroadcastChannel = new BroadcastChannel("c7o-bot-tabs"), this.tabId = "c7o-bot-tab-" + (self.crypto?.randomUUID?.() || Math.random().toString(36).slice(2)), this.tabsBroadcastChannel.addEventListener("message", this.handleBroadcastMessage.bind(this)), console.log(`c7o: AppState: created, tabId=${this.tabId}`);
3501
3618
  }
3502
3619
  // this is called at startup
3503
3620
  setSetting(e) {
3504
- T.info("appState: Startup: setSetting", e);
3621
+ A.info("appState: Startup: setSetting", e);
3505
3622
  const t = this.setting;
3506
3623
  !!t && (t.orgId !== e.orgId || t.botId !== e.botId || t.url !== e.url || t.version !== e.version || t.testMode !== e.testMode) && (this.botSettingsInitialized = !1, this.botSettings = null, this.botSettingsRetryTimeout = 5, this.disabled = !1), this.setting = e, this.initBot().catch((s) => {
3507
- T.info(`Exception during bot initialization: ${s.message}`);
3624
+ A.info(`Exception during bot initialization: ${s.message}`);
3508
3625
  });
3509
3626
  }
3510
3627
  // set language
@@ -3519,7 +3636,7 @@ class R extends Zt {
3519
3636
  async initBot() {
3520
3637
  if (!this.botSettingsInitialized) {
3521
3638
  const t = this.setting.url.startsWith("localhost") ? "http" : "https", i = this.setting.version && this.setting.version !== "current" ? `?version=${encodeURIComponent(this.setting.version)}` : "", s = `${t}://${this.setting.url}/api/bot/settings/${this.setting.orgId}/${this.setting.botId}${i}`;
3522
- T.info(`Getting bot settings at ${s} ...`);
3639
+ A.info(`Getting bot settings at ${s} ...`);
3523
3640
  let r = null, o = null;
3524
3641
  try {
3525
3642
  r = await fetch(s, {
@@ -3529,13 +3646,13 @@ class R extends Zt {
3529
3646
  "X-Enegel-Signature": this.setting.botId
3530
3647
  //"ngrok-skip-browser-warning": "1",
3531
3648
  }
3532
- }), !r.ok || r.status !== 200 ? T.error(`Failed to get bot ${this.setting.botId} settings: ${r.status} ${r.statusText}`) : o = await r.json();
3533
- } catch (f) {
3534
- T.error(`Failed to get bot ${this.setting.botId} settings: ${f.message}`), o = null;
3649
+ }), !r.ok || r.status !== 200 ? A.error(`Failed to get bot ${this.setting.botId} settings: ${r.status} ${r.statusText}`) : o = await r.json();
3650
+ } catch (b) {
3651
+ A.error(`Failed to get bot ${this.setting.botId} settings: ${b.message}`), o = null;
3535
3652
  }
3536
3653
  if (this.botSettingsInitialized = !0, this.botSettings = o, !o) {
3537
- if (T.error(`Unable to retrieve bot settings - bot disabled. Retry in ${this.botSettingsRetryTimeout} seconds.`), this.disabled = !0, this.botSettingsRetryTimeout > 80) {
3538
- T.error("Failed to retrieve bot settings - bot disabled. Retries exhausted. Refresh page to attempt again.");
3654
+ if (A.error(`Unable to retrieve bot settings - bot disabled. Retry in ${this.botSettingsRetryTimeout} seconds.`), this.disabled = !0, this.botSettingsRetryTimeout > 80) {
3655
+ A.error("Failed to retrieve bot settings - bot disabled. Retries exhausted. Refresh page to attempt again.");
3539
3656
  return;
3540
3657
  }
3541
3658
  this.botSettingsInitialized = !1, setTimeout(async () => {
@@ -3543,17 +3660,23 @@ class R extends Zt {
3543
3660
  }, this.botSettingsRetryTimeout * 1e3), this.botSettingsRetryTimeout = this.botSettingsRetryTimeout * 2;
3544
3661
  return;
3545
3662
  }
3546
- T.info("Got bot settings - bot is enabled", o), this.disabled = !1, this.setting.welcomeMessage = o?.welcomeMessage || "How can I help ?", this.setting.disclaimerMessage = o?.disclaimerMessage && o.disclaimerMessage !== "" ? o.disclaimerMessage : null, this.setting.engageMessage = o?.engageMessage || "How can I help ?", this.setting.engageTimeout = o?.engageTimeout || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in o ? o.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in o ? o.feedbackEnabled : !1, this.setting.uploadImages = "uploadImages" in o ? o.uploadImages : !1, this.setting.newConversationTimeoutInSec = o?.newConversationTimeoutInSec || 86400, this.setting.enableNotificationSound = "enableNotificationSound" in o ? o.enableNotificationSound : !0, this.setting.botAdvancedSettings = o?.botAdvancedSettings ?? {}, this.setting.startFeedbackFromMessage = "startFeedbackFromMessage" in this.setting.botAdvancedSettings ? this.setting.botAdvancedSettings.startFeedbackFromMessage : 1, this.setting.enableMultiModalConnection = this.setting.botAdvancedSettings?.enableMultiModalConnection ?? !1, this.setting.enablePassContextOnConnect = this.setting.botAdvancedSettings?.enablePassContextOnConnect ?? !1, this.setting.enableShowFullDisclaimerMessage = this.setting.botAdvancedSettings?.enableShowFullDisclaimerMessage ?? !1, this.setting.fileUploadEnabledExtensions = this.setting.botAdvancedSettings?.fileUploadEnabledExtensions || ".jpeg,.jpg,.png,.pdf,.txt,.har,.zip,.mov,.mp4,.mp3", this.setting.fileUploadMaxFileSizeMB = this.setting.botAdvancedSettings?.fileUploadMaxFileSizeMB || 30, this.setting.enableAgentDisconnectedMessage = this.setting.botAdvancedSettings?.enableAgentDisconnectedMessage ?? !1, this.setting.enableTicketCreatedMessage = this.setting.botAdvancedSettings?.enableTicketCreatedMessage ?? !1, this.setting.showNewConversationOnAgentDisconnected = this.setting.botAdvancedSettings?.showNewConversationOnAgentDisconnected ?? !1, this.setting.engagePopupSuppressPermanently = this.setting.botAdvancedSettings?.engagePopupSuppressPermanently || 0, this.setting.enableMultiModalConnection ? this.setting.enableAudio = !0 : this.setting.enableAudio = !1, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
3663
+ A.info("Got bot settings", o), this.disabled = !1, this.setting.welcomeMessage = o?.welcomeMessage || "How can I help ?", this.setting.disclaimerMessage = o?.disclaimerMessage && o.disclaimerMessage !== "" ? o.disclaimerMessage : null, this.setting.engageMessage = o?.engageMessage || "How can I help ?", this.setting.engageTimeout = o?.engageTimeout || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in o ? o.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in o ? o.feedbackEnabled : !1, this.setting.uploadImages = "uploadImages" in o ? o.uploadImages : !1, this.setting.newConversationTimeoutInSec = o?.newConversationTimeoutInSec || 86400, this.setting.enableNotificationSound = "enableNotificationSound" in o ? o.enableNotificationSound : !0, this.setting.botAdvancedSettings = o?.botAdvancedSettings ?? {}, this.setting.startFeedbackFromMessage = "startFeedbackFromMessage" in this.setting.botAdvancedSettings ? this.setting.botAdvancedSettings.startFeedbackFromMessage : 1, this.setting.enableMultiModalConnection = this.setting.botAdvancedSettings?.enableMultiModalConnection ?? !1, this.setting.enablePassContextOnConnect = this.setting.botAdvancedSettings?.enablePassContextOnConnect ?? !1, this.setting.enableShowFullDisclaimerMessage = this.setting.botAdvancedSettings?.enableShowFullDisclaimerMessage ?? !1, this.setting.fileUploadEnabledExtensions = this.setting.botAdvancedSettings?.fileUploadEnabledExtensions || ".jpeg,.jpg,.png,.pdf,.txt,.har,.zip,.mov,.mp4,.mp3", this.setting.fileUploadMaxFileSizeMB = this.setting.botAdvancedSettings?.fileUploadMaxFileSizeMB || 30, this.setting.enableAgentDisconnectedMessage = this.setting.botAdvancedSettings?.enableAgentDisconnectedMessage ?? !1, this.setting.enableTicketCreatedMessage = this.setting.botAdvancedSettings?.enableTicketCreatedMessage ?? !1, this.setting.showNewConversationOnAgentDisconnected = this.setting.botAdvancedSettings?.showNewConversationOnAgentDisconnected ?? !1, this.setting.engagePopupSuppressPermanently = this.setting.botAdvancedSettings?.engagePopupSuppressPermanently || 0;
3664
+ const f = this.setting.botAdvancedSettings?.pagesRules || null;
3665
+ if (f && typeof f == "object" && !os(this.setting.botAdvancedSettings?.pagesRules, window.location, A)) {
3666
+ this.disabled = !0, A.info(`Bot is disabled on page ${window.location} by configuration`, f);
3667
+ return;
3668
+ }
3669
+ this.setting.enableMultiModalConnection ? this.setting.enableAudio = !0 : this.setting.enableAudio = !1, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
3547
3670
  this.showEngagePopup();
3548
3671
  }, this.setting.engageTimeout * 1e3);
3549
3672
  }
3550
3673
  const e = new URLSearchParams(window.location.search);
3551
3674
  if (e.has("c7o_bot_open")) {
3552
3675
  const t = e.get("c7o_bot_open");
3553
- this.open = t !== "false" && t !== "no" && t !== "0", T.info(`C7O-BOT:INIT: Force open=${this.open} from query parameter c7o_bot_open=${e.get("c7o_bot_open")}`);
3676
+ this.open = t !== "false" && t !== "no" && t !== "0", A.info(`C7O-BOT:INIT: Force open=${this.open} from query parameter c7o_bot_open=${e.get("c7o_bot_open")}`);
3554
3677
  }
3555
- this.connectWs === "true" && (T.info("appState: connectWs is true"), this.getWsClient().catch((t) => {
3556
- T.error(`Exception during ws client startup: ${t.message}`);
3678
+ this.connectWs === "true" && (A.info("appState: connectWs is true"), this.getWsClient().catch((t) => {
3679
+ A.error(`Exception during ws client startup: ${t.message}`);
3557
3680
  })), setTimeout(() => {
3558
3681
  window.dispatchEvent(
3559
3682
  new CustomEvent("c7o:bot:stateEvent", {
@@ -3586,7 +3709,7 @@ class R extends Zt {
3586
3709
  }
3587
3710
  // AGENT // ////////////////////////////////////////////////////
3588
3711
  async handleAgentConnected(e) {
3589
- T.info("c7o: Agent Connected", e);
3712
+ A.info("c7o: Agent Connected", e);
3590
3713
  const t = e?.userName || "Agent";
3591
3714
  this.addMessage({
3592
3715
  id: e?.id || null,
@@ -3600,7 +3723,7 @@ class R extends Zt {
3600
3723
  });
3601
3724
  }
3602
3725
  async handleAgentDisconnected(e) {
3603
- if (T.info("c7o: Agent disconnected", e), !this.setting.enableAgentDisconnectedMessage)
3726
+ if (A.info("c7o: Agent disconnected", e), !this.setting.enableAgentDisconnectedMessage)
3604
3727
  return;
3605
3728
  const t = e?.userName || "Agent";
3606
3729
  this.addMessage({
@@ -3694,7 +3817,7 @@ class R extends Zt {
3694
3817
  }
3695
3818
  // When finished playing audio, clear trackId and send mark message
3696
3819
  async onPlaybackEnded() {
3697
- this.webAudioCurrentMark && (T.info(`c7o: mark ${this.webAudioCurrentMark} completed`), await this.sendEvent({
3820
+ this.webAudioCurrentMark && (A.info(`c7o: mark ${this.webAudioCurrentMark} completed`), await this.sendEvent({
3698
3821
  id: ce(),
3699
3822
  type: "mediaMark",
3700
3823
  mark: {
@@ -3703,7 +3826,7 @@ class R extends Zt {
3703
3826
  }), this.webAudioCurrentMark = null, this.webAudioTrackId = null);
3704
3827
  }
3705
3828
  async onWebAudioTerminate() {
3706
- T.info("c7o: terminating audio"), await this.stopAudio();
3829
+ A.info("c7o: terminating audio"), await this.stopAudio();
3707
3830
  }
3708
3831
  // Confirmation from server that media started
3709
3832
  // {"type":"mediaStarted","mediaType":"audio","mediaTransport":"webmedia","webmedia":{"mimeType":"audio/L16","mediaSpec":{"sampleRate":24000,"channels":1}}}
@@ -3722,16 +3845,16 @@ class R extends Zt {
3722
3845
  if (!e || e?.type !== "media" || !e?.media || e?.mediaType !== "audio" || !e?.media?.payload || !this.webAudioProcessor || !this.webAudioStarted)
3723
3846
  return;
3724
3847
  const t = e.media.payload;
3725
- this.webAudioTrackId || (this.webAudioTrackId = ce()), T.info(`${Date.now()}: Playing audio: ${t.length} bytes, trackId: ${this.webAudioTrackId}`), await this.webAudioProcessor.playAudio(t, this.webAudioTrackId);
3848
+ this.webAudioTrackId || (this.webAudioTrackId = ce()), A.info(`${Date.now()}: Playing audio: ${t.length} bytes, trackId: ${this.webAudioTrackId}`), await this.webAudioProcessor.playAudio(t, this.webAudioTrackId);
3726
3849
  }
3727
3850
  // {"type": "mediaMark","mark": {"name": "1757277902935"}}
3728
3851
  async handleMediaMark(e) {
3729
- !this.webAudioProcessor || !this.webAudioStarted || (this.webAudioCurrentMark = e?.mark?.name || null, T.info(`c7o: Current media mark set to ${this.webAudioCurrentMark}`, e));
3852
+ !this.webAudioProcessor || !this.webAudioStarted || (this.webAudioCurrentMark = e?.mark?.name || null, A.info(`c7o: Current media mark set to ${this.webAudioCurrentMark}`, e));
3730
3853
  }
3731
3854
  // Confirmation from server that media stopped
3732
3855
  //{"type":"mediaClear","mediaType":"audio"}
3733
3856
  async handleMediaClear(e) {
3734
- T.info("c7o: Got mediaClear, clearing buffered media", e), this.mediaStartedAudio = !1, !(!this.webAudioProcessor || !this.webAudioStarted) && (this.webAudioTrackId = null, await this.webAudioProcessor.interruptAudio());
3857
+ A.info("c7o: Got mediaClear, clearing buffered media", e), this.mediaStartedAudio = !1, !(!this.webAudioProcessor || !this.webAudioStarted) && (this.webAudioTrackId = null, await this.webAudioProcessor.interruptAudio());
3735
3858
  }
3736
3859
  // ////////////////////////////////////////////////////////////
3737
3860
  setPrefilledFormFields(e) {
@@ -3754,7 +3877,7 @@ class R extends Zt {
3754
3877
  return;
3755
3878
  const e = await this.getWsClient();
3756
3879
  if (!e) {
3757
- T.error("Error - failed to obtain ws client");
3880
+ A.error("Error - failed to obtain ws client");
3758
3881
  return;
3759
3882
  }
3760
3883
  const t = {
@@ -3762,7 +3885,7 @@ class R extends Zt {
3762
3885
  type: "setContext",
3763
3886
  contextData: this.context
3764
3887
  };
3765
- e.sendMessage(t), T.info("Sent context:", this.context);
3888
+ e.sendMessage(t), A.info("Sent context:", this.context);
3766
3889
  }
3767
3890
  getContext() {
3768
3891
  return this.context;
@@ -3776,23 +3899,23 @@ class R extends Zt {
3776
3899
  return;
3777
3900
  }
3778
3901
  if (this.setting.suppressStartupForm) {
3779
- T.info("Startup form not suppressed by widget settings.");
3902
+ A.info("Startup form not suppressed by widget settings.");
3780
3903
  return;
3781
3904
  }
3782
- const e = Yt(null, ["startupForm"], this.botSettings);
3905
+ const e = Kt(null, ["startupForm"], this.botSettings);
3783
3906
  if (!e || !e?.name) {
3784
- T.info("Startup form not present");
3907
+ A.info("Startup form not present");
3785
3908
  return;
3786
3909
  }
3787
3910
  this.initForm(e);
3788
3911
  }
3789
3912
  initForm(e = null) {
3790
- const t = e, i = Yt(null, ["name"], e);
3913
+ const t = e, i = Kt(null, ["name"], e);
3791
3914
  if (!t || !i)
3792
3915
  return;
3793
- const s = Yt(null, ["fields"], e);
3916
+ const s = Kt(null, ["fields"], e);
3794
3917
  if (!Array.isArray(s) || s.length <= 0) {
3795
- T.info("form has no fields", e);
3918
+ A.info("form has no fields", e);
3796
3919
  return;
3797
3920
  }
3798
3921
  const r = `${ie}${this.setting.botId}.${this.conversationId}.form.${i}`, o = localStorage.getItem(r);
@@ -3800,12 +3923,12 @@ class R extends Zt {
3800
3923
  let f = null;
3801
3924
  try {
3802
3925
  f = JSON.parse(o);
3803
- } catch (p) {
3804
- T.error(`Failed to parse stored form data: ${p.message}`), f = null;
3926
+ } catch (b) {
3927
+ A.error(`Failed to parse stored form data: ${b.message}`), f = null;
3805
3928
  }
3806
3929
  if (f) {
3807
- this.sendFormData(i, f).catch((p) => {
3808
- T.error(`Error when submitting form: ${p.message}`);
3930
+ this.sendFormData(i, f).catch((b) => {
3931
+ A.error(`Error when submitting form: ${b.message}`);
3809
3932
  });
3810
3933
  return;
3811
3934
  }
@@ -3815,7 +3938,7 @@ class R extends Zt {
3815
3938
  suppressEngagePopup() {
3816
3939
  if (this.engage = !1, this.shouldEngage = "false", this.setting.engagePopupSuppressPermanently && this.setting.engagePopupSuppressPermanently > 0) {
3817
3940
  const e = Date.now();
3818
- localStorage.setItem(`${ie}_engagePopupSuppressed`, `${e}`), T.info(`Engage popup suppressed for ${this.setting.engagePopupSuppressPermanently} days`);
3941
+ localStorage.setItem(`${ie}_engagePopupSuppressed`, `${e}`), A.info(`Engage popup suppressed for ${this.setting.engagePopupSuppressPermanently} days`);
3819
3942
  }
3820
3943
  }
3821
3944
  showEngagePopup() {
@@ -3828,7 +3951,7 @@ class R extends Zt {
3828
3951
  return;
3829
3952
  }
3830
3953
  }
3831
- T.info("Engaging User"), this.engage = !0, this.playAudioNotification();
3954
+ A.info("Engaging User"), this.engage = !0, this.playAudioNotification();
3832
3955
  }
3833
3956
  }
3834
3957
  playAudioNotification() {
@@ -3840,7 +3963,7 @@ class R extends Zt {
3840
3963
  o[f] = parseInt(r.substr(f * 2, 2), 16);
3841
3964
  return o;
3842
3965
  };
3843
- let t = new Blob([e(Es)], { type: "application/octet-stream" });
3966
+ let t = new Blob([e(Fs)], { type: "application/octet-stream" });
3844
3967
  const i = URL.createObjectURL(t);
3845
3968
  new Audio(i).play();
3846
3969
  }
@@ -3854,14 +3977,14 @@ class R extends Zt {
3854
3977
  return this.wsClient;
3855
3978
  let t = `${this.setting.url.startsWith("localhost") ? "ws" : "wss"}://${this.setting.url}/api/bot/connect/${this.setting.orgId}/${this.setting.botId}/${this.conversationId}`;
3856
3979
  const i = new URL(t);
3857
- if (this.setting.version && this.setting.version !== "current" && i.searchParams.set("version", this.setting.version), this.setting.testMode && (i.searchParams.set("testMode", "true"), T.info("Test Mode enabled - adding testMode=true parameter")), this.setting.enableMultiModalConnection && (i.searchParams.set("multiModal", "true"), T.info("MultiModal connection enabled - adding multiModal=true parameter")), this.setting.enablePassContextOnConnect && this.context && typeof this.context == "object")
3980
+ if (this.setting.version && this.setting.version !== "current" && i.searchParams.set("version", this.setting.version), this.setting.testMode && (i.searchParams.set("testMode", "true"), A.info("Test Mode enabled - adding testMode=true parameter")), this.setting.enableMultiModalConnection && (i.searchParams.set("multiModal", "true"), A.info("MultiModal connection enabled - adding multiModal=true parameter")), this.setting.enablePassContextOnConnect && this.context && typeof this.context == "object")
3858
3981
  try {
3859
3982
  const s = JSON.stringify(this.context);
3860
- i.searchParams.set("context", s), T.info("Adding context to connect URL");
3983
+ i.searchParams.set("context", s), A.info("Adding context to connect URL");
3861
3984
  } catch (s) {
3862
- T.error(`Failed to stringify context: ${s.message}`);
3985
+ A.error(`Failed to stringify context: ${s.message}`);
3863
3986
  }
3864
- return t = i.toString(), T.info(`Initiating ws connection to ${t} ...`), this.wsClient = new as({
3987
+ return t = i.toString(), A.info(`Initiating ws connection to ${t} ...`), this.wsClient = new hs({
3865
3988
  url: t,
3866
3989
  orgId: this.setting.orgId,
3867
3990
  botId: this.setting.botId,
@@ -3881,19 +4004,19 @@ class R extends Zt {
3881
4004
  }), await this.wsClient.start(), this.connectWs = "true", this.wsClient;
3882
4005
  }
3883
4006
  handleWscClose(e) {
3884
- T.info(`WSC: connection closed, connected: ${this.wsClient?.connected}`, e), this.stopWebAudio().catch((t) => {
4007
+ A.info(`WSC: connection closed, connected: ${this.wsClient?.connected}`, e), this.stopWebAudio().catch((t) => {
3885
4008
  }), this.connected = !1;
3886
4009
  }
3887
4010
  async _checkConnectionOnLifecycleResume() {
3888
4011
  try {
3889
4012
  const e = await this.getWsClient();
3890
4013
  if (!e) {
3891
- T.error("Error - failed to obtain ws client for check connection");
4014
+ A.error("Error - failed to obtain ws client for check connection");
3892
4015
  return;
3893
4016
  }
3894
4017
  e.checkConnectionOnLifecycleResume();
3895
4018
  } catch (e) {
3896
- T.error(`Check connection on lifecycle resume failed: ${e.message}`);
4019
+ A.error(`Check connection on lifecycle resume failed: ${e.message}`);
3897
4020
  }
3898
4021
  }
3899
4022
  // Check connection for parallel calls - if there is already a check in progress, wait for it instead of starting a new one
@@ -3907,20 +4030,20 @@ class R extends Zt {
3907
4030
  handleLifecycleResume(e = "unknown", t = () => {
3908
4031
  }) {
3909
4032
  if (e === "visibilitychange" && document.visibilityState !== "visible") {
3910
- T.info("WSC: lifecycle resume - document not visible, skipping connection check");
4033
+ A.info("WSC: lifecycle resume - document not visible, skipping connection check");
3911
4034
  return;
3912
4035
  }
3913
4036
  if (this.isConversationStart()) {
3914
- T.info("WSC: lifecycle resume - conversation just started, skipping connection check");
4037
+ A.info("WSC: lifecycle resume - conversation just started, skipping connection check");
3915
4038
  return;
3916
4039
  }
3917
- T.info(`WSC: lifecycle resume (${e})`), this.checkConnectionOnLifecycleResume().catch(() => {
4040
+ A.info(`WSC: lifecycle resume (${e})`), this.checkConnectionOnLifecycleResume().catch(() => {
3918
4041
  }).finally(() => {
3919
4042
  t();
3920
4043
  });
3921
4044
  }
3922
4045
  async handleWscConnectError(e) {
3923
- T.info("WSC: connect error - resetting conversation", e);
4046
+ A.info("WSC: connect error - resetting conversation", e);
3924
4047
  const t = this.wsClient?.url || null;
3925
4048
  if (this.wsClient)
3926
4049
  try {
@@ -3945,14 +4068,14 @@ class R extends Zt {
3945
4068
  }
3946
4069
  const s = t.includes("?"), [r, o] = s ? t.split("?") : [t, ""], f = r.split("/");
3947
4070
  f[f.length - 1] = this.conversationId;
3948
- const p = f.join("/"), v = o ? `${p}?${o}` : p;
3949
- this.wsClient.url = v, await Ps(1e3), await this.wsClient.start(), T.info(`WSC: started new conversation, conversationId=${this.conversationId}`);
4071
+ const b = f.join("/"), v = o ? `${b}?${o}` : b;
4072
+ this.wsClient.url = v, await js(1e3), await this.wsClient.start(), A.info(`WSC: started new conversation, conversationId=${this.conversationId}`);
3950
4073
  } catch (i) {
3951
- T.error(`WSC: failed to reset conversation: ${i.message}`, i);
4074
+ A.error(`WSC: failed to reset conversation: ${i.message}`, i);
3952
4075
  }
3953
4076
  }
3954
4077
  handleWscConnecting(e) {
3955
- T.info(`WSC: on connecting(${e}), connected: ${this.wsClient?.connected}`), this.connecting = e, !this.connecting && this.wsClient?.connected ? (this.connected = !0, this.context && typeof this.context == "object" && Object.keys(this.context).length > 0 && this.wsClient.queueMessage(
4078
+ A.info(`WSC: on connecting(${e}), connected: ${this.wsClient?.connected}`), this.connecting = e, !this.connecting && this.wsClient?.connected ? (this.connected = !0, this.context && typeof this.context == "object" && Object.keys(this.context).length > 0 && this.wsClient.queueMessage(
3956
4079
  {
3957
4080
  id: ce(),
3958
4081
  type: "setContext",
@@ -3969,7 +4092,7 @@ class R extends Zt {
3969
4092
  }
3970
4093
  // Update typing state based on received message
3971
4094
  updateTypingState(e) {
3972
- this.typingActive ? e && ["message", "message-chunk", "media", "typing-stopped"].includes(e?.type) && (this.typingActive = !1, T.info("c7o: typing stopped")) : e && e?.type === "typing" && (this.typingActive = !0, T.info("c7o: typing started"));
4095
+ this.typingActive ? e && ["message", "message-chunk", "media", "typing-stopped"].includes(e?.type) && (this.typingActive = !1, A.info("c7o: typing stopped")) : e && e?.type === "typing" && (this.typingActive = !0, A.info("c7o: typing started"));
3973
4096
  }
3974
4097
  handleWscMessage(e) {
3975
4098
  if (e?.type === "ack")
@@ -4046,7 +4169,7 @@ class R extends Zt {
4046
4169
  //{"type":"agent-connected","author":"assistant","userName":"SF DEV ADMIN"}
4047
4170
  //{"type":"agent-disconnected","author":"assistant","userName":"SF DEV ADMIN"}
4048
4171
  case "form": {
4049
- if (T.info("Got form:", e), this.replyMessage && this.replyMessage.id) {
4172
+ if (A.info("Got form:", e), this.replyMessage && this.replyMessage.id) {
4050
4173
  const i = this.replyMessage.data?.text || "";
4051
4174
  (this.replyMessage.isThinking || i.trim() === "") && (this.removeMessage(this.replyMessage.id), this.replyMessage = null);
4052
4175
  }
@@ -4092,7 +4215,7 @@ class R extends Zt {
4092
4215
  if (e !== -1)
4093
4216
  if (this.setting.splitMessagesAtBreak) {
4094
4217
  const t = this.streamingResponseBuffer.substring(0, e).trim(), i = this.streamingResponseBuffer.substring(e + 4).trim();
4095
- (t !== "" || this.replyMessage?.data?.text !== "") && (T.info(`BREAK: Splitting the message: ${this.streamingResponseBuffer} >>> prev: ${t} next: ${i}`), this.replyMessage = this.updateMessage(this.replyMessage, t), this.replyMessage = { author: "assistant", type: "text", isThinking: !1, data: { text: i } }, this.addMessage(this.replyMessage));
4218
+ (t !== "" || this.replyMessage?.data?.text !== "") && (A.info(`BREAK: Splitting the message: ${this.streamingResponseBuffer} >>> prev: ${t} next: ${i}`), this.replyMessage = this.updateMessage(this.replyMessage, t), this.replyMessage = { author: "assistant", type: "text", isThinking: !1, data: { text: i } }, this.addMessage(this.replyMessage));
4096
4219
  } else
4097
4220
  this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer);
4098
4221
  this.streamingResponseBuffer = null, this.streamingResponseTagStartPos = 0, this.streamingResponseCurrentTag = null;
@@ -4101,11 +4224,11 @@ class R extends Zt {
4101
4224
  if (!this.streamingResponseBuffer || !this.replyMessage)
4102
4225
  return;
4103
4226
  if (this.streamingResponseBuffer.indexOf("![") === -1) {
4104
- T.info(`NOT IMG TAG: ${this.streamingResponseBuffer}`), this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null;
4227
+ A.info(`NOT IMG TAG: ${this.streamingResponseBuffer}`), this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null;
4105
4228
  return;
4106
4229
  }
4107
4230
  const e = this.streamingResponseBuffer.lastIndexOf("]"), t = this.streamingResponseBuffer.lastIndexOf(")");
4108
- e === -1 || t === -1 || e > t || (T.info(`IMG TAG END: ${this.streamingResponseBuffer}`), this.isValidImageLink(this.streamingResponseBuffer) && (this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer)), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null);
4231
+ e === -1 || t === -1 || e > t || (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);
4109
4232
  }
4110
4233
  isValidImageLink(e = "") {
4111
4234
  return !(e.indexOf("example.com") !== -1 || e.indexOf("imgur.com") !== -1 || e.indexOf("attachment:") !== -1);
@@ -4125,7 +4248,7 @@ class R extends Zt {
4125
4248
  this.streamingResponseBuffer = e, this.streamingResponseTagStartPos = e.indexOf("<"), this.streamingResponseCurrentTag = "br";
4126
4249
  return;
4127
4250
  } else if (e.indexOf("![") !== -1 || e.endsWith("!")) {
4128
- this.streamingResponseBuffer = e, this.streamingResponseCurrentTag = "img", T.info(`IMG TAG START: ${this.streamingResponseBuffer}`);
4251
+ this.streamingResponseBuffer = e, this.streamingResponseCurrentTag = "img", A.info(`IMG TAG START: ${this.streamingResponseBuffer}`);
4129
4252
  return;
4130
4253
  }
4131
4254
  this.streamingResponseLastText = t, this.replyMessage = this.updateMessage(this.replyMessage, t);
@@ -4180,8 +4303,8 @@ class R extends Zt {
4180
4303
  new CustomEvent("c7o:bot:stateEvent", {
4181
4304
  detail: f
4182
4305
  })
4183
- ), this.sendActionCompleted(f).catch((p) => {
4184
- T.error(`Error: failed to send action completed: ${p.message}`);
4306
+ ), this.sendActionCompleted(f).catch((b) => {
4307
+ A.error(`Error: failed to send action completed: ${b.message}`);
4185
4308
  });
4186
4309
  }
4187
4310
  this.actions.splice(s, 1);
@@ -4199,10 +4322,10 @@ class R extends Zt {
4199
4322
  }
4200
4323
  }
4201
4324
  async sendMessage(e) {
4202
- e = this.formatMessage(e), T.info("Send Message:", e), this.showNewConversation && (this.showNewConversation = !1), this.messages = this.messages.concat([e]), this.lastConversationUpdate = Date.now();
4325
+ e = this.formatMessage(e), A.info("Send Message:", e), this.showNewConversation && (this.showNewConversation = !1), this.messages = this.messages.concat([e]), this.lastConversationUpdate = Date.now();
4203
4326
  const t = await this.getWsClient();
4204
4327
  if (!t) {
4205
- T.error("Error - failed to obtain ws client"), this.replyMessage = null;
4328
+ A.error("Error - failed to obtain ws client"), this.replyMessage = null;
4206
4329
  return;
4207
4330
  }
4208
4331
  t.sendMessage({
@@ -4248,7 +4371,7 @@ class R extends Zt {
4248
4371
  // Submit current form data
4249
4372
  async submitForm(e) {
4250
4373
  if (!this.form) {
4251
- T.info("submitForm: No form is active - ignored");
4374
+ A.info("submitForm: No form is active - ignored");
4252
4375
  return;
4253
4376
  }
4254
4377
  const t = `${ie}${this.setting.botId}.${this.conversationId}.form.${this.form.name}`;
@@ -4257,7 +4380,7 @@ class R extends Zt {
4257
4380
  async sendFormData(e, t) {
4258
4381
  const i = await this.getWsClient();
4259
4382
  if (!i) {
4260
- T.error("Error - failed to obtain ws client");
4383
+ A.error("Error - failed to obtain ws client");
4261
4384
  return;
4262
4385
  }
4263
4386
  i.sendMessage({
@@ -4269,7 +4392,7 @@ class R extends Zt {
4269
4392
  async sendActionCompleted(e) {
4270
4393
  const t = await this.getWsClient();
4271
4394
  if (!t) {
4272
- T.error("Error - failed to obtain ws client");
4395
+ A.error("Error - failed to obtain ws client");
4273
4396
  return;
4274
4397
  }
4275
4398
  t.sendMessage({
@@ -4280,7 +4403,7 @@ class R extends Zt {
4280
4403
  async sendEvent(e) {
4281
4404
  const t = await this.getWsClient();
4282
4405
  if (!t) {
4283
- T.error("Error - failed to obtain ws client");
4406
+ A.error("Error - failed to obtain ws client");
4284
4407
  return;
4285
4408
  }
4286
4409
  t.sendMessage(e);
@@ -4293,10 +4416,10 @@ class R extends Zt {
4293
4416
  this.feedbackMessages.push(t), this.feedbackUserMessage = this.messages.findLast((i) => i.id === t.replyId)?.data?.text || "", this.feedbackAnswer = t?.data.text || "", this.feedbackAnswerMessageId = t?.id || "", this.feedbackAnswerUserName = t?.data.userName || "", this.feedback = !0;
4294
4417
  }
4295
4418
  async submitFeedback(e, t, i) {
4296
- T.info(`submitFeedback: ${this.feedbackScore}`), this.feedbackName = e, this.feedbackEmail = t;
4419
+ A.info(`submitFeedback: ${this.feedbackScore}`), this.feedbackName = e, this.feedbackEmail = t;
4297
4420
  const s = await this.getWsClient();
4298
4421
  if (!s) {
4299
- T.error("Error - failed to obtain ws client"), this.replyMessage = null;
4422
+ A.error("Error - failed to obtain ws client"), this.replyMessage = null;
4300
4423
  return;
4301
4424
  }
4302
4425
  s.sendMessage({
@@ -4339,9 +4462,9 @@ class R extends Zt {
4339
4462
  if (!e?.length) return;
4340
4463
  const t = h.setting.fileUploadMaxFileSizeMB || 30, i = t * 1024 * 1024, s = e?.find((v) => v.size > i);
4341
4464
  if (s) {
4342
- T.error(
4465
+ A.error(
4343
4466
  `File "${s.name}" exceeds the ${t} MB limit and will not be uploaded.`
4344
- ), Ka({
4467
+ ), ei({
4345
4468
  message: `File is larger than ${t} MB`,
4346
4469
  variant: "danger",
4347
4470
  duration: 3800,
@@ -4350,10 +4473,10 @@ class R extends Zt {
4350
4473
  return;
4351
4474
  }
4352
4475
  const r = await this.filesToBase64(e);
4353
- T.info("Uploading files:", r);
4476
+ A.info("Uploading files:", r);
4354
4477
  const o = await this.getWsClient();
4355
4478
  if (!o) {
4356
- T.error("Error - failed to obtain ws client");
4479
+ A.error("Error - failed to obtain ws client");
4357
4480
  return;
4358
4481
  }
4359
4482
  const f = ce();
@@ -4362,7 +4485,7 @@ class R extends Zt {
4362
4485
  type: "upload",
4363
4486
  files: r
4364
4487
  });
4365
- const p = {
4488
+ const b = {
4366
4489
  id: f,
4367
4490
  timestamp: Date.now(),
4368
4491
  author: "user",
@@ -4371,7 +4494,7 @@ class R extends Zt {
4371
4494
  uploadedFiles: r
4372
4495
  }
4373
4496
  };
4374
- this.addMessage(p);
4497
+ this.addMessage(b);
4375
4498
  }
4376
4499
  notifyWidgetOpenState() {
4377
4500
  this.wsClient && this.wsClient.sendMessage({
@@ -4583,7 +4706,7 @@ O([
4583
4706
  O([
4584
4707
  z({ type: Boolean, value: !1 })
4585
4708
  ], R.prototype, "webAudioMuted");
4586
- const h = new R(), Ls = K`
4709
+ const h = new R(), Vs = K`
4587
4710
  ${ke}
4588
4711
  :host {
4589
4712
  position: relative;
@@ -4658,12 +4781,12 @@ const h = new R(), Ls = K`
4658
4781
  display: inline;
4659
4782
  }
4660
4783
  `;
4661
- var Rs = Object.defineProperty, zs = (a, e, t, i) => {
4784
+ var Us = Object.defineProperty, Ns = (a, e, t, i) => {
4662
4785
  for (var s = void 0, r = a.length - 1, o; r >= 0; r--)
4663
4786
  (o = a[r]) && (s = o(e, t, s) || s);
4664
- return s && Rs(e, t, s), s;
4787
+ return s && Us(e, t, s), s;
4665
4788
  };
4666
- qi("system", {
4789
+ ji("system", {
4667
4790
  resolver: (a) => ""
4668
4791
  });
4669
4792
  (() => {
@@ -4700,15 +4823,15 @@ class re extends Fe {
4700
4823
  return this.dispatchEvent(i), i;
4701
4824
  }
4702
4825
  }
4703
- zs([
4826
+ Ns([
4704
4827
  x({ type: String })
4705
4828
  ], re.prototype, "lang");
4706
- var Os = Object.defineProperty, Bs = Object.getOwnPropertyDescriptor, Ja = (a, e, t, i) => {
4707
- for (var s = i > 1 ? void 0 : i ? Bs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4829
+ var Ws = Object.defineProperty, Gs = Object.getOwnPropertyDescriptor, ti = (a, e, t, i) => {
4830
+ for (var s = i > 1 ? void 0 : i ? Gs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4708
4831
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
4709
- return i && s && Os(e, t, s), s;
4832
+ return i && s && Ws(e, t, s), s;
4710
4833
  };
4711
- const qs = '<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>';
4834
+ const Xs = '<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>';
4712
4835
  let Bt = class extends re {
4713
4836
  constructor() {
4714
4837
  super(...arguments), this.title = "ChatBot";
@@ -4719,32 +4842,32 @@ let Bt = class extends re {
4719
4842
  }
4720
4843
  */
4721
4844
  renderExp() {
4722
- return b` <header class="cb-header" part="header">
4845
+ return p` <header class="cb-header" part="header">
4723
4846
  ${W(
4724
4847
  h.setting.logoUrl !== "",
4725
- () => b`<img class="cb-header-logo" part="header-logo" src="${h.setting.logoUrl}" />`,
4726
- () => b`<div class="cb-header-logo" part="header-logo">${G(h.setting.logoSvg)}</div>`
4848
+ () => p`<img class="cb-header-logo" part="header-logo" src="${h.setting.logoUrl}" />`,
4849
+ () => p`<div class="cb-header-logo" part="header-logo">${G(h.setting.logoSvg)}</div>`
4727
4850
  )}
4728
4851
  <div class="cb-header-title" part="header-title">${xt(this.title)}</div>
4729
4852
  ${W(
4730
4853
  h.alwaysOpen,
4731
- () => b``,
4732
- () => b`<div class="cb-header-close" part="header-close">${G(qs)}</div>`
4854
+ () => p``,
4855
+ () => p`<div class="cb-header-close" part="header-close">${G(Xs)}</div>`
4733
4856
  )}
4734
4857
  </header>`;
4735
4858
  }
4736
4859
  render() {
4737
- return b`<header class="cb-header" part="header">
4860
+ return p`<header class="cb-header" part="header">
4738
4861
  ${W(
4739
4862
  h.setting.logoUrl !== "",
4740
- () => b`<img class="cb-header-img" part="header-logo" src="${h.setting.logoUrl}" />`,
4741
- () => b`<div class="cb-header-logo" part="header-logo">${G(h.setting.logoSvg)}</div>`
4863
+ () => p`<img class="cb-header-img" part="header-logo" src="${h.setting.logoUrl}" />`,
4864
+ () => p`<div class="cb-header-logo" part="header-logo">${G(h.setting.logoSvg)}</div>`
4742
4865
  )}
4743
4866
  <div class="cb-header-title" part="header-title">${this.title}</div>
4744
4867
  ${W(
4745
4868
  h.alwaysOpen,
4746
- () => b`<div></div>`,
4747
- () => b`<div @click=${this._clickCloseHandler} class="cb-header-close" part="header-close">${G(h.setting.closeSvg)}</div>`
4869
+ () => p`<div></div>`,
4870
+ () => p`<div @click=${this._clickCloseHandler} class="cb-header-close" part="header-close">${G(h.setting.closeSvg)}</div>`
4748
4871
  )}
4749
4872
  </header>`;
4750
4873
  }
@@ -4771,14 +4894,14 @@ let Bt = class extends re {
4771
4894
  });
4772
4895
  }
4773
4896
  };
4774
- Bt.styles = Ls;
4775
- Ja([
4897
+ Bt.styles = Vs;
4898
+ ti([
4776
4899
  x({ type: String, attribute: "title" })
4777
4900
  ], Bt.prototype, "title", 2);
4778
- Bt = Ja([
4901
+ Bt = ti([
4779
4902
  J("cb-header")
4780
4903
  ], Bt);
4781
- const Ds = K`
4904
+ const Ys = K`
4782
4905
  ${ke}
4783
4906
  .cb-footer {
4784
4907
  line-height: 60px;
@@ -4793,17 +4916,17 @@ const Ds = K`
4793
4916
  color: var(--primary-color);
4794
4917
  }
4795
4918
  `;
4796
- var Fs = Object.getOwnPropertyDescriptor, Hs = (a, e, t, i) => {
4797
- for (var s = i > 1 ? void 0 : i ? Fs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4919
+ var Ks = Object.getOwnPropertyDescriptor, Js = (a, e, t, i) => {
4920
+ for (var s = i > 1 ? void 0 : i ? Ks(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4798
4921
  (o = a[r]) && (s = o(s) || s);
4799
4922
  return s;
4800
4923
  };
4801
- let Qt = class extends re {
4924
+ let ea = class extends re {
4802
4925
  constructor() {
4803
4926
  super(...arguments), this.year = (/* @__PURE__ */ new Date()).getFullYear();
4804
4927
  }
4805
4928
  render() {
4806
- return b`
4929
+ return p`
4807
4930
  <div class="cb-footer" part="footer">
4808
4931
  yugasun@${this.year}
4809
4932
  <a
@@ -4833,11 +4956,11 @@ let Qt = class extends re {
4833
4956
  `;
4834
4957
  }
4835
4958
  };
4836
- Qt.styles = Ds;
4837
- Qt = Hs([
4959
+ ea.styles = Ys;
4960
+ ea = Js([
4838
4961
  J("cb-footer")
4839
- ], Qt);
4840
- const js = K`
4962
+ ], ea);
4963
+ const Zs = K`
4841
4964
  ${ke}
4842
4965
 
4843
4966
  :host {
@@ -5038,7 +5161,7 @@ const js = K`
5038
5161
  background-size: 100%;
5039
5162
  transition: background 0s;
5040
5163
  }
5041
- `, Za = K`
5164
+ `, ai = K`
5042
5165
  :host {
5043
5166
  --primary-color: var(--sl-color-primary-600);
5044
5167
  }
@@ -5192,7 +5315,7 @@ const js = K`
5192
5315
  .card-btn[aria-disabled="true"]:focus-visible {
5193
5316
  box-shadow: none;
5194
5317
  }
5195
- `, Qa = K`
5318
+ `, ii = K`
5196
5319
  :host {
5197
5320
  --primary-color: var(--sl-color-primary-600);
5198
5321
  }
@@ -5283,20 +5406,20 @@ const js = K`
5283
5406
  }
5284
5407
  .split-btn[aria-expanded="true"] .split-btn__caret { transform: rotate(180deg); }
5285
5408
  `;
5286
- var Vs = Object.defineProperty, Us = Object.getOwnPropertyDescriptor, He = (a, e, t, i) => {
5287
- for (var s = i > 1 ? void 0 : i ? Us(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5409
+ var Qs = Object.defineProperty, en = Object.getOwnPropertyDescriptor, He = (a, e, t, i) => {
5410
+ for (var s = i > 1 ? void 0 : i ? en(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5288
5411
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
5289
- return i && s && Vs(e, t, s), s;
5412
+ return i && s && Qs(e, t, s), s;
5290
5413
  };
5291
5414
  let mt = class extends Fe {
5292
5415
  constructor() {
5293
5416
  super(...arguments), this.options = [], this.minWidth = 180;
5294
5417
  }
5295
5418
  render() {
5296
- return b`
5419
+ return p`
5297
5420
  <div class="menu" part="menu" style="min-width:${Math.max(this.minWidth, 180)}px">
5298
5421
  <div class="list" role="menu">
5299
- ${this.options.map((a, e) => b`
5422
+ ${this.options.map((a, e) => p`
5300
5423
  <a
5301
5424
  class="item"
5302
5425
  role="menuitem"
@@ -5396,7 +5519,7 @@ let Ge = class extends Fe {
5396
5519
  }
5397
5520
  render() {
5398
5521
  const a = ["split-btn", this.variant, this.size].filter(Boolean).join(" ");
5399
- return b`
5522
+ return p`
5400
5523
  <button
5401
5524
  type="button"
5402
5525
  class=${a}
@@ -5442,7 +5565,7 @@ let Ge = class extends Fe {
5442
5565
  positionMenu(a, e) {
5443
5566
  const i = window.innerWidth, s = window.innerHeight;
5444
5567
  a.style.minWidth = Math.max(e.width, 180) + "px";
5445
- const r = a.getBoundingClientRect(), o = s - e.bottom - 8, f = e.top - 8, p = o >= r.height || o >= f, v = Math.max(8, Math.min(e.left, i - r.width - 8)), k = p ? Math.min(e.bottom + 6, s - r.height - 8) : Math.max(e.top - r.height - 6, 8);
5568
+ const r = a.getBoundingClientRect(), o = s - e.bottom - 8, f = e.top - 8, b = o >= r.height || o >= f, v = Math.max(8, Math.min(e.left, i - r.width - 8)), k = b ? Math.min(e.bottom + 6, s - r.height - 8) : Math.max(e.top - r.height - 6, 8);
5446
5569
  a.style.left = `${Math.round(v)}px`, a.style.top = `${Math.round(k)}px`;
5447
5570
  }
5448
5571
  attachReposition(a, e) {
@@ -5467,7 +5590,7 @@ let Ge = class extends Fe {
5467
5590
  this._onDocPointerDown && (document.removeEventListener("pointerdown", this._onDocPointerDown, { capture: !0 }), this._onDocPointerDown = void 0), this._onKeydown && (document.removeEventListener("keydown", this._onKeydown, { capture: !0 }), this._onKeydown = void 0);
5468
5591
  }
5469
5592
  };
5470
- Ge.styles = Qa;
5593
+ Ge.styles = ii;
5471
5594
  He([
5472
5595
  x({ type: String })
5473
5596
  ], Ge.prototype, "variant", 2);
@@ -5486,12 +5609,12 @@ He([
5486
5609
  Ge = He([
5487
5610
  J("cb-split-button")
5488
5611
  ], Ge);
5489
- var Ns = Object.defineProperty, Ws = Object.getOwnPropertyDescriptor, kt = (a, e, t, i) => {
5490
- for (var s = i > 1 ? void 0 : i ? Ws(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5612
+ var tn = Object.defineProperty, an = Object.getOwnPropertyDescriptor, kt = (a, e, t, i) => {
5613
+ for (var s = i > 1 ? void 0 : i ? an(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5491
5614
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
5492
- return i && s && Ns(e, t, s), s;
5615
+ return i && s && tn(e, t, s), s;
5493
5616
  };
5494
- const Et = Ke.noConflict(), $a = "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", Gs = K`
5617
+ const Et = Ke.noConflict(), Ra = "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", sn = K`
5495
5618
  :host { display: block; width: 100%; color: var(--cb-fg, #111827); }
5496
5619
 
5497
5620
  /* CARD */
@@ -5599,23 +5722,23 @@ let Me = class extends Fe {
5599
5722
  }
5600
5723
  /* ----------------- CARD ----------------- */
5601
5724
  renderCard(a) {
5602
- const { title: e, subtitle: t, image_url: i, image_alt: s, buttons: r = [] } = a, o = (a.url || "").trim(), f = (a.target || "").trim(), p = o.length > 0, v = a.info?.text, k = typeof a.info?.rating == "number" ? a.info.rating : typeof a.rating == "number" ? a.rating : void 0, w = !!v, _ = typeof k == "number", P = ["card__info", w && _ ? "card__info--between" : ""].filter(Boolean).join(" "), E = r.some((N) => (N.type ?? "").toLowerCase() === "primary"), M = r.some((N) => (N.type ?? "").toLowerCase() === "secondary"), L = ["card__actions", E && M ? "card__actions--between" : ""].filter(Boolean).join(" "), C = () => {
5725
+ const { title: e, subtitle: t, image_url: i, image_alt: s, buttons: r = [] } = a, o = (a.url || "").trim(), f = (a.target || "").trim(), b = o.length > 0, v = a.info?.text, k = typeof a.info?.rating == "number" ? a.info.rating : typeof a.rating == "number" ? a.rating : void 0, w = !!v, _ = typeof k == "number", P = ["card__info", w && _ ? "card__info--between" : ""].filter(Boolean).join(" "), E = r.some((N) => (N.type ?? "").toLowerCase() === "primary"), T = r.some((N) => (N.type ?? "").toLowerCase() === "secondary"), L = ["card__actions", E && T ? "card__actions--between" : ""].filter(Boolean).join(" "), C = () => {
5603
5726
  if (!i) return Ae;
5604
- const N = b`<img class="card__image" src=${i} alt=${s ?? e ?? "Image"} draggable="false" />`;
5605
- return p ? b`<a class="card__image-link" href=${o} target=${f || "_blank"} rel="noopener noreferrer" draggable="false" aria-label=${e ? `Open: ${e}` : "Open"}>${N}</a>` : N;
5606
- }, Z = () => e ? p && !i ? b`<h3 class="card__title"><a class="card__title-link" href=${o} target=${f || "_blank"} rel="noopener noreferrer" draggable="false">${e}</a></h3>` : b`<h3 class="card__title">${e}</h3>` : Ae;
5607
- return b`
5727
+ const N = p`<img class="card__image" src=${i} alt=${s ?? e ?? "Image"} draggable="false" />`;
5728
+ return b ? p`<a class="card__image-link" href=${o} target=${f || "_blank"} rel="noopener noreferrer" draggable="false" aria-label=${e ? `Open: ${e}` : "Open"}>${N}</a>` : N;
5729
+ }, Z = () => e ? b && !i ? p`<h3 class="card__title"><a class="card__title-link" href=${o} target=${f || "_blank"} rel="noopener noreferrer" draggable="false">${e}</a></h3>` : p`<h3 class="card__title">${e}</h3>` : Ae;
5730
+ return p`
5608
5731
  <div class="card" role="group" aria-label=${e ? `Card: ${e}` : "Card"}>
5609
5732
  ${C()}
5610
5733
  <div class="card__content">
5611
5734
  ${Z()}
5612
- ${t ? b`<div class="card__subtitle">${t}</div>` : Ae}
5613
- ${w || _ ? b`
5735
+ ${t ? p`<div class="card__subtitle">${t}</div>` : Ae}
5736
+ ${w || _ ? p`
5614
5737
  <div class=${P}>
5615
- ${w ? b`<div class="card__info-text">${v}</div>` : Ae}
5738
+ ${w ? p`<div class="card__info-text">${v}</div>` : Ae}
5616
5739
  ${_ ? this.renderRating(k) : Ae}
5617
5740
  </div>` : Ae}
5618
- ${r.length ? b`
5741
+ ${r.length ? p`
5619
5742
  <div class=${L}>
5620
5743
  ${r.map((N, X) => this.renderAnyButton(N, X))}
5621
5744
  </div>` : Ae}
@@ -5629,7 +5752,7 @@ let Me = class extends Fe {
5629
5752
  }
5630
5753
  renderSingleButton(a) {
5631
5754
  const t = `card-btn ${(a.type ?? "primary").toLowerCase() === "secondary" ? "secondary" : "primary"}`, i = a.text || "Open";
5632
- return a.url ? b`
5755
+ return a.url ? p`
5633
5756
  <a
5634
5757
  class=${t}
5635
5758
  href=${a.url}
@@ -5639,7 +5762,7 @@ let Me = class extends Fe {
5639
5762
  @click=${() => this.emitButtonClick(a)}
5640
5763
  @pointerdown=${(s) => s.stopPropagation()}
5641
5764
  >${i}</a>
5642
- ` : b`
5765
+ ` : p`
5643
5766
  <button
5644
5767
  type="button"
5645
5768
  class=${t}
@@ -5650,7 +5773,7 @@ let Me = class extends Fe {
5650
5773
  }
5651
5774
  renderSplitButton(a, e) {
5652
5775
  const t = (a.type ?? "primary").toLowerCase();
5653
- return b`
5776
+ return p`
5654
5777
  <cb-split-button
5655
5778
  .label=${a.text || "Select"}
5656
5779
  .variant=${t}
@@ -5666,7 +5789,7 @@ let Me = class extends Fe {
5666
5789
  /* ----------------- Rating ----------------- */
5667
5790
  renderRating(a) {
5668
5791
  const e = Math.max(0, Math.min(5, a)), t = [0, 1, 2, 3, 4].map((i) => Math.max(0, Math.min(1, e - i)));
5669
- return b`<div class="rating" aria-label="${e} out of 5 stars">
5792
+ return p`<div class="rating" aria-label="${e} out of 5 stars">
5670
5793
  <span class="stars">${t.map((i) => this.renderStar(i))}</span>
5671
5794
  </div>`;
5672
5795
  }
@@ -5676,11 +5799,11 @@ let Me = class extends Fe {
5676
5799
  -webkit-mask: linear-gradient(to right, #000 0, #000 ${t}, transparent ${t}, transparent 100%);
5677
5800
  mask: linear-gradient(to right, #000 0, #000 ${t}, transparent ${t}, transparent 100%);
5678
5801
  `;
5679
- return b`
5802
+ return p`
5680
5803
  <span class="star" role="img" aria-label="${e.toFixed(2)} filled">
5681
- <svg class="star__base" viewBox="0 0 16 16" aria-hidden="true"><path d="${$a}"/></svg>
5804
+ <svg class="star__base" viewBox="0 0 16 16" aria-hidden="true"><path d="${Ra}"/></svg>
5682
5805
  <div class="star__fill" style="${s}">
5683
- <svg viewBox="0 0 16 16" aria-hidden="true"><path d="${$a}"/></svg>
5806
+ <svg viewBox="0 0 16 16" aria-hidden="true"><path d="${Ra}"/></svg>
5684
5807
  </div>
5685
5808
  </span>
5686
5809
  `;
@@ -5688,7 +5811,7 @@ let Me = class extends Fe {
5688
5811
  /* ----------------- Carousel ----------------- */
5689
5812
  renderCarouselSimple(a) {
5690
5813
  const e = Array.isArray(a.items) ? a.items : [], t = Math.max(1, a.slidesPerPage || 1), i = t > 1 ? `width: calc((100% - ${(t - 1) * 0.75}em) / ${t}); max-width: none;` : "";
5691
- return b`
5814
+ return p`
5692
5815
  <div class="hc-wrapper">
5693
5816
  <button
5694
5817
  type="button"
@@ -5699,7 +5822,7 @@ let Me = class extends Fe {
5699
5822
  >&#x276E;</button>
5700
5823
 
5701
5824
  <div class="horizontal-carousel" @scroll=${this.onCarouselScroll}>
5702
- ${e.map((s) => b`
5825
+ ${e.map((s) => p`
5703
5826
  <div class="horizontal-carousel__item" style=${i}>
5704
5827
  <cb-block .block=${s}></cb-block>
5705
5828
  </div>
@@ -5743,16 +5866,16 @@ let Me = class extends Fe {
5743
5866
  o.pointerType !== "touch" && (o.button !== 0 && o.pointerType !== "pen" || (this._dragging = !0, this._startX = o.clientX, this._startY = o.clientY, this._startScrollLeft = a.scrollLeft, this._lastPointerId = o.pointerId, a.classList.add("dragging")));
5744
5867
  }, i = (o) => {
5745
5868
  if (!this._dragging) return;
5746
- const f = o.clientX - this._startX, p = o.clientY - this._startY;
5747
- a.scrollLeft = this._startScrollLeft - f, Math.abs(f) > Me.DRAG_THRESHOLD_PX && Math.abs(f) > Math.abs(p) && this._lastPointerId != null && a.setPointerCapture?.(this._lastPointerId), o.preventDefault(), this.updateArrows(a);
5869
+ const f = o.clientX - this._startX, b = o.clientY - this._startY;
5870
+ a.scrollLeft = this._startScrollLeft - f, Math.abs(f) > Me.DRAG_THRESHOLD_PX && Math.abs(f) > Math.abs(b) && this._lastPointerId != null && a.setPointerCapture?.(this._lastPointerId), o.preventDefault(), this.updateArrows(a);
5748
5871
  }, s = () => {
5749
5872
  if (!this._dragging) return;
5750
5873
  if (Math.abs(a.scrollLeft - this._startScrollLeft) > Me.DRAG_THRESHOLD_PX) {
5751
5874
  let f;
5752
- const p = (v) => {
5875
+ const b = (v) => {
5753
5876
  v.preventDefault(), v.stopPropagation(), f && clearTimeout(f);
5754
5877
  };
5755
- a.addEventListener("click", p, { capture: !0, once: !0 }), f = window.setTimeout(() => a.removeEventListener("click", p, !0), 200);
5878
+ a.addEventListener("click", b, { capture: !0, once: !0 }), f = window.setTimeout(() => a.removeEventListener("click", b, !0), 200);
5756
5879
  }
5757
5880
  this._dragging = !1, a.classList.remove("dragging"), this._lastPointerId != null && (a.releasePointerCapture?.(this._lastPointerId), this._lastPointerId = null), this.updateArrows(a);
5758
5881
  }, r = () => {
@@ -5764,7 +5887,7 @@ let Me = class extends Fe {
5764
5887
  }
5765
5888
  }
5766
5889
  renderUnknown(a) {
5767
- return b`<div class="unknown">Unknown block type: <code>${a?.type ?? "—"}</code></div>`;
5890
+ return p`<div class="unknown">Unknown block type: <code>${a?.type ?? "—"}</code></div>`;
5768
5891
  }
5769
5892
  /* ----------------- handle clicks ----------------- */
5770
5893
  emitButtonClick(a) {
@@ -5811,7 +5934,7 @@ let Me = class extends Fe {
5811
5934
  body: JSON.stringify(r)
5812
5935
  });
5813
5936
  if (!o.ok) {
5814
- Et.error("c7o: cart/add.js failed"), Ka({
5937
+ Et.error("c7o: cart/add.js failed"), ei({
5815
5938
  message: "Unable to add item to cart.",
5816
5939
  variant: "danger",
5817
5940
  duration: 2800,
@@ -5822,7 +5945,7 @@ let Me = class extends Fe {
5822
5945
  await o.json(), Et.info("c7o: cart/add.js - cart updated"), Et.info("c7o: reloading window after cart update"), window.location.reload();
5823
5946
  }
5824
5947
  };
5825
- Me.styles = [Gs, Za, Qa];
5948
+ Me.styles = [sn, ai, ii];
5826
5949
  Me.DRAG_THRESHOLD_PX = 10;
5827
5950
  kt([
5828
5951
  x({ type: Object })
@@ -5831,27 +5954,27 @@ kt([
5831
5954
  xe(".horizontal-carousel")
5832
5955
  ], Me.prototype, "_hCarousel", 2);
5833
5956
  kt([
5834
- Va()
5957
+ Wa()
5835
5958
  ], Me.prototype, "_canPrev", 2);
5836
5959
  kt([
5837
- Va()
5960
+ Wa()
5838
5961
  ], Me.prototype, "_canNext", 2);
5839
5962
  Me = kt([
5840
5963
  J("cb-block")
5841
5964
  ], Me);
5842
- var Xs = Object.defineProperty, Ys = Object.getOwnPropertyDescriptor, ei = (a, e, t, i) => {
5843
- for (var s = i > 1 ? void 0 : i ? Ys(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5965
+ var nn = Object.defineProperty, rn = Object.getOwnPropertyDescriptor, si = (a, e, t, i) => {
5966
+ for (var s = i > 1 ? void 0 : i ? rn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5844
5967
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
5845
- return i && s && Xs(e, t, s), s;
5968
+ return i && s && nn(e, t, s), s;
5846
5969
  };
5847
5970
  let qt = class extends Fe {
5848
5971
  constructor() {
5849
5972
  super(...arguments), this.blocks = [];
5850
5973
  }
5851
5974
  render() {
5852
- return !this.blocks || this.blocks.length === 0 ? Ae : b`
5975
+ return !this.blocks || this.blocks.length === 0 ? Ae : p`
5853
5976
  <div class="stack">
5854
- ${this.blocks.map((a) => b`<cb-block .block=${a}></cb-block>`)}
5977
+ ${this.blocks.map((a) => p`<cb-block .block=${a}></cb-block>`)}
5855
5978
  </div>
5856
5979
  `;
5857
5980
  }
@@ -5867,18 +5990,18 @@ qt.styles = K`
5867
5990
  gap: 0.75em; /* vertical rhythm between blocks */
5868
5991
  }
5869
5992
  `;
5870
- ei([
5993
+ si([
5871
5994
  x({ type: Array })
5872
5995
  ], qt.prototype, "blocks", 2);
5873
- qt = ei([
5996
+ qt = si([
5874
5997
  J("cb-blocks")
5875
5998
  ], qt);
5876
- var zt = { exports: {} }, Ks = zt.exports, Pa;
5877
- function Js() {
5878
- return Pa || (Pa = 1, (function(a, e) {
5999
+ var zt = { exports: {} }, on = zt.exports, za;
6000
+ function cn() {
6001
+ return za || (za = 1, (function(a, e) {
5879
6002
  (function(t, i) {
5880
6003
  a.exports = i();
5881
- })(Ks, (function() {
6004
+ })(on, (function() {
5882
6005
  function t(n, c) {
5883
6006
  if (!(n instanceof c)) throw new TypeError("Cannot call a class as a function");
5884
6007
  }
@@ -5912,11 +6035,11 @@ function Js() {
5912
6035
  })(n);
5913
6036
  }
5914
6037
  var f = Date.now();
5915
- function p() {
6038
+ function b() {
5916
6039
  var n = {}, c = !0, l = 0, d = arguments.length;
5917
6040
  Object.prototype.toString.call(arguments[0]) === "[object Boolean]" && (c = arguments[0], l++);
5918
6041
  for (var u = function(g) {
5919
- for (var y in g) Object.prototype.hasOwnProperty.call(g, y) && (c && Object.prototype.toString.call(g[y]) === "[object Object]" ? n[y] = p(!0, n[y], g[y]) : n[y] = g[y]);
6042
+ for (var y in g) Object.prototype.hasOwnProperty.call(g, y) && (c && Object.prototype.toString.call(g[y]) === "[object Object]" ? n[y] = b(!0, n[y], g[y]) : n[y] = g[y]);
5920
6043
  }; l < d; l++) {
5921
6044
  var m = arguments[l];
5922
6045
  u(m);
@@ -5924,7 +6047,7 @@ function Js() {
5924
6047
  return n;
5925
6048
  }
5926
6049
  function v(n, c) {
5927
- if ((U(n) || n === window || n === document) && (n = [n]), Pe(n) || Ve(n) || (n = [n]), pa(n) != 0) {
6050
+ if ((U(n) || n === window || n === document) && (n = [n]), Pe(n) || Ve(n) || (n = [n]), ga(n) != 0) {
5928
6051
  if (Pe(n) && !Ve(n)) for (var l = n.length, d = 0; d < l && c.call(n[d], n[d], d, n) !== !1; d++) ;
5929
6052
  else if (Ve(n)) {
5930
6053
  for (var u in n) if (se(n, u) && c.call(n[u], n[u], u, n) === !1) break;
@@ -5933,12 +6056,12 @@ function Js() {
5933
6056
  }
5934
6057
  function k(n) {
5935
6058
  var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, l = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, d = n[f] = n[f] || [], u = { all: d, evt: null, found: null };
5936
- return c && l && pa(d) > 0 && v(d, (function(m, g) {
6059
+ return c && l && ga(d) > 0 && v(d, (function(m, g) {
5937
6060
  if (m.eventName == c && m.fn.toString() == l.toString()) return u.found = !0, u.evt = g, !1;
5938
6061
  })), u;
5939
6062
  }
5940
6063
  function w(n) {
5941
- var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, l = c.onElement, d = c.withCallback, u = c.avoidDuplicate, m = u === void 0 || u, g = c.once, y = g !== void 0 && g, A = c.useCapture, S = A !== void 0 && A, I = arguments.length > 2 ? arguments[2] : void 0, $ = l || [];
6064
+ var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, l = c.onElement, d = c.withCallback, u = c.avoidDuplicate, m = u === void 0 || u, g = c.once, y = g !== void 0 && g, M = c.useCapture, S = M !== void 0 && M, I = arguments.length > 2 ? arguments[2] : void 0, $ = l || [];
5942
6065
  function B(q) {
5943
6066
  j(d) && d.call(I, q, this), y && B.destroy();
5944
6067
  }
@@ -5965,7 +6088,7 @@ function Js() {
5965
6088
  function E(n, c) {
5966
6089
  return n.classList.contains(c);
5967
6090
  }
5968
- function M(n, c) {
6091
+ function T(n, c) {
5969
6092
  for (; n !== document.body; ) {
5970
6093
  if (!(n = n.parentElement)) return !1;
5971
6094
  if (typeof n.matches == "function" ? n.matches(c) : n.msMatchesSelector(c)) return n;
@@ -6078,7 +6201,7 @@ function Js() {
6078
6201
  function se(n, c) {
6079
6202
  return n !== null && hasOwnProperty.call(n, c);
6080
6203
  }
6081
- function pa(n) {
6204
+ function ga(n) {
6082
6205
  if (Ve(n)) {
6083
6206
  if (n.keys) return n.keys().length;
6084
6207
  var c = 0;
@@ -6090,7 +6213,7 @@ function Js() {
6090
6213
  function _t(n) {
6091
6214
  return !isNaN(parseFloat(n)) && isFinite(n);
6092
6215
  }
6093
- function ga() {
6216
+ function ma() {
6094
6217
  var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1, c = document.querySelectorAll(".gbtn[data-taborder]:not(.disabled)");
6095
6218
  if (!c.length) return !1;
6096
6219
  if (c.length == 1) return c[0];
@@ -6108,7 +6231,7 @@ function Js() {
6108
6231
  })), g = m.sort()[0];
6109
6232
  return document.querySelector('.gbtn[data-taborder="'.concat(g, '"]'));
6110
6233
  }
6111
- function wi(n) {
6234
+ function Si(n) {
6112
6235
  if (n.events.hasOwnProperty("keyboard")) return !1;
6113
6236
  n.events.keyboard = w("keydown", { onElement: window, withCallback: function(c, l) {
6114
6237
  var d = (c = c || window.event).keyCode;
@@ -6122,16 +6245,16 @@ function Js() {
6122
6245
  var g = document.querySelectorAll(".gbtn[data-taborder]");
6123
6246
  if (!g || g.length <= 0) return;
6124
6247
  if (!u) {
6125
- var y = ga();
6248
+ var y = ma();
6126
6249
  return void (y && (y.focus(), _(y, "focused")));
6127
6250
  }
6128
- var A = ga(u.getAttribute("data-taborder"));
6129
- P(u, "focused"), A && (A.focus(), _(A, "focused"));
6251
+ var M = ma(u.getAttribute("data-taborder"));
6252
+ P(u, "focused"), M && (M.focus(), _(M, "focused"));
6130
6253
  }
6131
6254
  d == 39 && n.nextSlide(), d == 37 && n.prevSlide(), d == 27 && n.close();
6132
6255
  } });
6133
6256
  }
6134
- var xi = s((function n(c, l) {
6257
+ var Ci = s((function n(c, l) {
6135
6258
  var d = this, u = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
6136
6259
  if (t(this, n), this.img = c, this.slide = l, this.onclose = u, this.img.setZoomEvents) return !1;
6137
6260
  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(m) {
@@ -6173,10 +6296,10 @@ function Js() {
6173
6296
  n.style.transform = "translate3d(" + c + "px, " + l + "px, 0)";
6174
6297
  } }, { key: "widowWidth", value: function() {
6175
6298
  return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
6176
- } }]), ma = s((function n() {
6299
+ } }]), ya = s((function n() {
6177
6300
  var c = this, l = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6178
6301
  t(this, n);
6179
- var d = l.dragEl, u = l.toleranceX, m = u === void 0 ? 40 : u, g = l.toleranceY, y = g === void 0 ? 65 : g, A = l.slide, S = A === void 0 ? null : A, I = l.instance, $ = I === void 0 ? null : I;
6302
+ var d = l.dragEl, u = l.toleranceX, m = u === void 0 ? 40 : u, g = l.toleranceY, y = g === void 0 ? 65 : g, M = l.slide, S = M === void 0 ? null : M, I = l.instance, $ = I === void 0 ? null : I;
6180
6303
  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 = m, this.toleranceY = y, this.toleranceReached = !1, this.dragContainer = this.el, this.slide = S, this.instance = $, this.el.addEventListener("mousedown", (function(B) {
6181
6304
  return c.dragStart(B);
6182
6305
  }), !1), this.el.addEventListener("mouseup", (function(B) {
@@ -6189,7 +6312,7 @@ function Js() {
6189
6312
  else {
6190
6313
  n.type === "touchstart" ? (this.initialX = n.touches[0].clientX - this.xOffset, this.initialY = n.touches[0].clientY - this.yOffset) : (this.initialX = n.clientX - this.xOffset, this.initialY = n.clientY - this.yOffset);
6191
6314
  var c = n.target.nodeName.toLowerCase();
6192
- n.target.classList.contains("nodrag") || M(n.target, ".nodrag") || ["input", "select", "textarea", "button", "a"].indexOf(c) !== -1 ? this.active = !1 : (n.preventDefault(), (n.target === this.el || c !== "img" && M(n.target, ".gslide-inline")) && (this.active = !0, this.el.classList.add("dragging"), this.dragContainer = M(n.target, ".ginner-container")));
6315
+ n.target.classList.contains("nodrag") || T(n.target, ".nodrag") || ["input", "select", "textarea", "button", "a"].indexOf(c) !== -1 ? this.active = !1 : (n.preventDefault(), (n.target === this.el || c !== "img" && T(n.target, ".gslide-inline")) && (this.active = !0, this.el.classList.add("dragging"), this.dragContainer = T(n.target, ".ginner-container")));
6193
6316
  }
6194
6317
  } }, { key: "dragEnd", value: function(n) {
6195
6318
  var c = this;
@@ -6225,14 +6348,14 @@ function Js() {
6225
6348
  var d = arguments.length > 3 && arguments[3] !== void 0 && arguments[3];
6226
6349
  n.style.transition = d ? "all .2s ease" : "", n.style.transform = "translate3d(".concat(c, "px, ").concat(l, "px, 0)");
6227
6350
  } }]);
6228
- function ki(n, c, l, d) {
6351
+ function Ai(n, c, l, d) {
6229
6352
  var u = n.querySelector(".gslide-media"), m = new Image(), g = "gSlideTitle_" + l, y = "gSlideDesc_" + l;
6230
6353
  m.addEventListener("load", (function() {
6231
6354
  j(d) && d();
6232
6355
  }), !1), m.src = c.href, c.sizes != "" && c.srcset != "" && (m.sizes = c.sizes, m.srcset = c.srcset), m.alt = "", ue(c.alt) || c.alt === "" || (m.alt = c.alt), c.title !== "" && m.setAttribute("aria-labelledby", g), c.description !== "" && m.setAttribute("aria-describedby", y), c.hasOwnProperty("_hasCustomWidth") && c._hasCustomWidth && (m.style.width = c.width), c.hasOwnProperty("_hasCustomHeight") && c._hasCustomHeight && (m.style.height = c.height), u.insertBefore(m, u.firstChild);
6233
6356
  }
6234
- function _i(n, c, l, d) {
6235
- var u = this, m = n.querySelector(".ginner-container"), g = "gvideo" + l, y = n.querySelector(".gslide-media"), A = this.getAllPlayers();
6357
+ function Mi(n, c, l, d) {
6358
+ var u = this, m = n.querySelector(".ginner-container"), g = "gvideo" + l, y = n.querySelector(".gslide-media"), M = this.getAllPlayers();
6236
6359
  _(m, "gvideo-container"), y.insertBefore(X('<div class="gvideo-wrapper"></div>'), y.firstChild);
6237
6360
  var S = n.querySelector(".gvideo-wrapper");
6238
6361
  he(this.settings.plyr.css, "Plyr");
@@ -6247,24 +6370,24 @@ function Js() {
6247
6370
  _(S, "".concat($, "-video gvideo")), S.appendChild(F), S.setAttribute("data-id", g), S.setAttribute("data-index", l);
6248
6371
  var ee = se(u.settings.plyr, "config") ? u.settings.plyr.config : {}, me = new Plyr("#" + g, ee);
6249
6372
  me.on("ready", (function(be) {
6250
- A[g] = be.detail.plyr, j(d) && d();
6373
+ M[g] = be.detail.plyr, j(d) && d();
6251
6374
  })), ae((function() {
6252
6375
  return n.querySelector("iframe") && n.querySelector("iframe").dataset.ready == "true";
6253
6376
  }), (function() {
6254
6377
  u.resize(n);
6255
- })), me.on("enterfullscreen", ya), me.on("exitfullscreen", ya);
6378
+ })), me.on("enterfullscreen", va), me.on("exitfullscreen", va);
6256
6379
  }));
6257
6380
  }
6258
- function ya(n) {
6259
- var c = M(n.target, ".gslide-media");
6381
+ function va(n) {
6382
+ var c = T(n.target, ".gslide-media");
6260
6383
  n.type === "enterfullscreen" && _(c, "fullscreen"), n.type === "exitfullscreen" && P(c, "fullscreen");
6261
6384
  }
6262
- function Si(n, c, l, d) {
6263
- var u, m = this, g = n.querySelector(".gslide-media"), y = !(!se(c, "href") || !c.href) && c.href.split("#").pop().trim(), A = !(!se(c, "content") || !c.content) && c.content;
6264
- if (A && (V(A) && (u = X('<div class="ginlined-content">'.concat(A, "</div>"))), U(A))) {
6265
- A.style.display == "none" && (A.style.display = "block");
6385
+ function Ti(n, c, l, d) {
6386
+ var u, m = this, g = n.querySelector(".gslide-media"), y = !(!se(c, "href") || !c.href) && c.href.split("#").pop().trim(), M = !(!se(c, "content") || !c.content) && c.content;
6387
+ if (M && (V(M) && (u = X('<div class="ginlined-content">'.concat(M, "</div>"))), U(M))) {
6388
+ M.style.display == "none" && (M.style.display = "block");
6266
6389
  var S = document.createElement("div");
6267
- S.className = "ginlined-content", S.appendChild(A), u = S;
6390
+ S.className = "ginlined-content", S.appendChild(M), u = S;
6268
6391
  }
6269
6392
  if (y) {
6270
6393
  var I = document.getElementById(y);
@@ -6277,26 +6400,26 @@ function Js() {
6277
6400
  B.preventDefault(), m.close();
6278
6401
  } }), j(d) && d();
6279
6402
  }
6280
- function Ci(n, c, l, d) {
6403
+ function Ii(n, c, l, d) {
6281
6404
  var u = n.querySelector(".gslide-media"), m = (function(g) {
6282
- var y = g.url, A = g.allow, S = g.callback, I = g.appendTo, $ = document.createElement("iframe");
6283
- return $.className = "vimeo-video gvideo", $.src = y, $.style.width = "100%", $.style.height = "100%", A && $.setAttribute("allow", A), $.onload = function() {
6405
+ var y = g.url, M = g.allow, S = g.callback, I = g.appendTo, $ = document.createElement("iframe");
6406
+ return $.className = "vimeo-video gvideo", $.src = y, $.style.width = "100%", $.style.height = "100%", M && $.setAttribute("allow", M), $.onload = function() {
6284
6407
  $.onload = null, _($, "node-ready"), j(S) && S();
6285
6408
  }, I && I.appendChild($), $;
6286
6409
  })({ url: c.href, callback: d });
6287
6410
  u.parentNode.style.maxWidth = c.width, u.parentNode.style.height = c.height, u.appendChild(m);
6288
6411
  }
6289
- var Ai = s((function n() {
6412
+ var Ei = s((function n() {
6290
6413
  var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6291
- t(this, n), this.defaults = { href: "", sizes: "", srcset: "", title: "", type: "", videoProvider: "", description: "", alt: "", descPosition: "bottom", effect: "", width: "", height: "", content: !1, zoomable: !0, draggable: !0 }, Ve(c) && (this.defaults = p(this.defaults, c));
6414
+ t(this, n), this.defaults = { href: "", sizes: "", srcset: "", title: "", type: "", videoProvider: "", description: "", alt: "", descPosition: "bottom", effect: "", width: "", height: "", content: !1, zoomable: !0, draggable: !0 }, Ve(c) && (this.defaults = b(this.defaults, c));
6292
6415
  }), [{ key: "sourceType", value: function(n) {
6293
6416
  var c = n;
6294
6417
  return (n = n.toLowerCase()).match(/\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/) !== null ? "image" : n.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || n.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || n.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || n.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/) || n.match(/vimeo\.com\/([0-9]*)/) || n.match(/\.(mp4|ogg|webm|mov)/) !== null ? "video" : n.match(/\.(mp3|wav|wma|aac|ogg)/) !== null ? "audio" : n.indexOf("#") > -1 && c.split("#").pop().trim() !== "" ? "inline" : n.indexOf("goajax=true") > -1 ? "ajax" : "external";
6295
6418
  } }, { key: "parseConfig", value: function(n, c) {
6296
- var l = this, d = p({ descPosition: c.descPosition }, this.defaults);
6419
+ var l = this, d = b({ descPosition: c.descPosition }, this.defaults);
6297
6420
  if (Ve(n) && !U(n)) {
6298
6421
  se(n, "type") || (se(n, "content") && n.content ? n.type = "inline" : se(n, "href") && (n.type = this.sourceType(n.href)));
6299
- var u = p(d, n);
6422
+ var u = b(d, n);
6300
6423
  return this.setSize(u, c), u;
6301
6424
  }
6302
6425
  var m = "", g = n.getAttribute("data-glightbox"), y = n.nodeName.toLowerCase();
@@ -6306,8 +6429,8 @@ function Js() {
6306
6429
  ue(ee) || (d[F] = l.sanitizeValue(ee));
6307
6430
  })), d.content && (d.type = "inline"), !d.type && m && (d.type = this.sourceType(m)), ue(g)) {
6308
6431
  if (!d.title && y == "a") {
6309
- var A = n.title;
6310
- ue(A) || A === "" || (d.title = A);
6432
+ var M = n.title;
6433
+ ue(M) || M === "" || (d.title = M);
6311
6434
  }
6312
6435
  if (!d.title && y == "img") {
6313
6436
  var S = n.alt;
@@ -6353,18 +6476,18 @@ function Js() {
6353
6476
  if (E(c, "loaded")) return !1;
6354
6477
  var d = this.instance.settings, u = this.slideConfig, m = ge();
6355
6478
  j(d.beforeSlideLoad) && d.beforeSlideLoad({ index: this.index, slide: c, player: !1 });
6356
- var g = u.type, y = u.descPosition, A = c.querySelector(".gslide-media"), S = c.querySelector(".gslide-title"), I = c.querySelector(".gslide-desc"), $ = c.querySelector(".gdesc-inner"), B = l, q = "gSlideTitle_" + this.index, F = "gSlideDesc_" + this.index;
6479
+ var g = u.type, y = u.descPosition, M = c.querySelector(".gslide-media"), S = c.querySelector(".gslide-title"), I = c.querySelector(".gslide-desc"), $ = c.querySelector(".gdesc-inner"), B = l, q = "gSlideTitle_" + this.index, F = "gSlideDesc_" + this.index;
6357
6480
  if (j(d.afterSlideLoad) && (B = function() {
6358
6481
  j(l) && l(), d.afterSlideLoad({ index: n.index, slide: c, player: n.instance.getSlidePlayerInstance(n.index) });
6359
- }), u.title == "" && u.description == "" ? $ && $.parentNode.parentNode.removeChild($.parentNode) : (S && u.title !== "" ? (S.id = q, S.innerHTML = u.title) : S.parentNode.removeChild(S), I && u.description !== "" ? (I.id = F, m && d.moreLength > 0 ? (u.smallDescription = this.slideShortDesc(u.description, d.moreLength, d.moreText), I.innerHTML = u.smallDescription, this.descriptionEvents(I, u)) : I.innerHTML = u.description) : I.parentNode.removeChild(I), _(A.parentNode, "desc-".concat(y)), _($.parentNode, "description-".concat(y))), _(A, "gslide-".concat(g)), _(c, "loaded"), g !== "video") {
6360
- if (g !== "external") return g === "inline" ? (Si.apply(this.instance, [c, u, this.index, B]), void (u.draggable && new ma({ dragEl: c.querySelector(".gslide-inline"), toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: this.instance }))) : void (g !== "image" ? j(B) && B() : ki(c, u, this.index, (function() {
6482
+ }), u.title == "" && u.description == "" ? $ && $.parentNode.parentNode.removeChild($.parentNode) : (S && u.title !== "" ? (S.id = q, S.innerHTML = u.title) : S.parentNode.removeChild(S), I && u.description !== "" ? (I.id = F, m && d.moreLength > 0 ? (u.smallDescription = this.slideShortDesc(u.description, d.moreLength, d.moreText), I.innerHTML = u.smallDescription, this.descriptionEvents(I, u)) : I.innerHTML = u.description) : I.parentNode.removeChild(I), _(M.parentNode, "desc-".concat(y)), _($.parentNode, "description-".concat(y))), _(M, "gslide-".concat(g)), _(c, "loaded"), g !== "video") {
6483
+ if (g !== "external") return g === "inline" ? (Ti.apply(this.instance, [c, u, this.index, B]), void (u.draggable && new ya({ dragEl: c.querySelector(".gslide-inline"), toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: this.instance }))) : void (g !== "image" ? j(B) && B() : Ai(c, u, this.index, (function() {
6361
6484
  var ee = c.querySelector("img");
6362
- u.draggable && new ma({ dragEl: ee, toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: n.instance }), u.zoomable && ee.naturalWidth > ee.offsetWidth && (_(ee, "zoomable"), new xi(ee, c, (function() {
6485
+ u.draggable && new ya({ dragEl: ee, toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: n.instance }), u.zoomable && ee.naturalWidth > ee.offsetWidth && (_(ee, "zoomable"), new Ci(ee, c, (function() {
6363
6486
  n.instance.resize();
6364
6487
  }))), j(B) && B();
6365
6488
  })));
6366
- Ci.apply(this, [c, u, this.index, B]);
6367
- } else _i.apply(this.instance, [c, u, this.index, B]);
6489
+ Ii.apply(this, [c, u, this.index, B]);
6490
+ } else Mi.apply(this.instance, [c, u, this.index, B]);
6368
6491
  } }, { key: "slideShortDesc", value: function(n) {
6369
6492
  var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 50, l = arguments.length > 2 && arguments[2] !== void 0 && arguments[2], d = document.createElement("div");
6370
6493
  d.innerHTML = n;
@@ -6377,31 +6500,31 @@ function Js() {
6377
6500
  if (!d) return !1;
6378
6501
  w("click", { onElement: d, withCallback: function(u, m) {
6379
6502
  u.preventDefault();
6380
- var g = document.body, y = M(m, ".gslide-desc");
6503
+ var g = document.body, y = T(m, ".gslide-desc");
6381
6504
  if (!y) return !1;
6382
6505
  y.innerHTML = c.description, _(g, "gdesc-open");
6383
- var A = w("click", { onElement: [g, M(y, ".gslide-description")], withCallback: function(S, I) {
6506
+ var M = w("click", { onElement: [g, T(y, ".gslide-description")], withCallback: function(S, I) {
6384
6507
  S.target.nodeName.toLowerCase() !== "a" && (P(g, "gdesc-open"), _(g, "gdesc-closed"), y.innerHTML = c.smallDescription, l.descriptionEvents(y, c), setTimeout((function() {
6385
6508
  P(g, "gdesc-closed");
6386
- }), 400), A.destroy());
6509
+ }), 400), M.destroy());
6387
6510
  } });
6388
6511
  } });
6389
6512
  } }, { key: "create", value: function() {
6390
6513
  return X(this.instance.settings.slideHTML);
6391
6514
  } }, { key: "getConfig", value: function() {
6392
6515
  U(this.element) || this.element.hasOwnProperty("draggable") || (this.element.draggable = this.instance.settings.draggable);
6393
- var n = new Ai(this.instance.settings.slideExtraAttributes);
6516
+ var n = new Ei(this.instance.settings.slideExtraAttributes);
6394
6517
  return this.slideConfig = n.parseConfig(this.element, this.instance.settings), this.slideConfig;
6395
6518
  } }]);
6396
6519
  function Ct(n) {
6397
6520
  return Math.sqrt(n.x * n.x + n.y * n.y);
6398
6521
  }
6399
- function Mi(n, c) {
6522
+ function $i(n, c) {
6400
6523
  var l = (function(d, u) {
6401
6524
  var m = Ct(d) * Ct(u);
6402
6525
  if (m === 0) return 0;
6403
- var g = (function(y, A) {
6404
- return y.x * A.x + y.y * A.y;
6526
+ var g = (function(y, M) {
6527
+ return y.x * M.x + y.y * M.y;
6405
6528
  })(d, u) / m;
6406
6529
  return g > 1 && (g = 1), Math.acos(g);
6407
6530
  })(n, c);
@@ -6409,7 +6532,7 @@ function Js() {
6409
6532
  return d.x * u.y - u.x * d.y;
6410
6533
  })(n, c) > 0 && (l *= -1), 180 * l / Math.PI;
6411
6534
  }
6412
- var Ti = s((function n(c) {
6535
+ var Pi = s((function n(c) {
6413
6536
  t(this, n), this.handlers = [], this.el = c;
6414
6537
  }), [{ key: "add", value: function(n) {
6415
6538
  this.handlers.push(n);
@@ -6423,10 +6546,10 @@ function Js() {
6423
6546
  }
6424
6547
  } }]);
6425
6548
  function de(n, c) {
6426
- var l = new Ti(n);
6549
+ var l = new Pi(n);
6427
6550
  return l.add(c), l;
6428
6551
  }
6429
- var Ii = s((function n(c, l) {
6552
+ var Li = s((function n(c, l) {
6430
6553
  t(this, n), this.element = typeof c == "string" ? document.querySelector(c) : c, 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;
6431
6554
  var d = function() {
6432
6555
  };
@@ -6450,12 +6573,12 @@ function Js() {
6450
6573
  var c = this.preV, l = n.touches.length, d = n.touches[0].pageX, u = n.touches[0].pageY;
6451
6574
  if (this.isDoubleTap = !1, l > 1) {
6452
6575
  var m = n.touches[1].pageX, g = n.touches[1].pageY, y = { x: n.touches[1].pageX - d, y: n.touches[1].pageY - u };
6453
- c.x !== null && (this.pinchStartLen > 0 && (n.zoom = Ct(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle = Mi(y, c), this.rotate.dispatch(n, this.element)), c.x = y.x, c.y = y.y, this.x2 !== null && this.sx2 !== null ? (n.deltaX = (d - this.x2 + m - this.sx2) / 2, n.deltaY = (u - this.y2 + g - this.sy2) / 2) : (n.deltaX = 0, n.deltaY = 0), this.twoFingerPressMove.dispatch(n, this.element), this.sx2 = m, this.sy2 = g;
6576
+ c.x !== null && (this.pinchStartLen > 0 && (n.zoom = Ct(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle = $i(y, c), this.rotate.dispatch(n, this.element)), c.x = y.x, c.y = y.y, this.x2 !== null && this.sx2 !== null ? (n.deltaX = (d - this.x2 + m - this.sx2) / 2, n.deltaY = (u - this.y2 + g - this.sy2) / 2) : (n.deltaX = 0, n.deltaY = 0), this.twoFingerPressMove.dispatch(n, this.element), this.sx2 = m, this.sy2 = g;
6454
6577
  } else {
6455
6578
  if (this.x2 !== null) {
6456
6579
  n.deltaX = d - this.x2, n.deltaY = u - this.y2;
6457
- var A = Math.abs(this.x1 - this.x2), S = Math.abs(this.y1 - this.y2);
6458
- (A > 10 || S > 10) && (this._preventTap = !0);
6580
+ var M = Math.abs(this.x1 - this.x2), S = Math.abs(this.y1 - this.y2);
6581
+ (M > 10 || S > 10) && (this._preventTap = !0);
6459
6582
  } else n.deltaX = 0, n.deltaY = 0;
6460
6583
  this.pressMove.dispatch(n, this.element);
6461
6584
  }
@@ -6492,18 +6615,18 @@ function Js() {
6492
6615
  } }]);
6493
6616
  function Wt(n) {
6494
6617
  var c = (function() {
6495
- var g, y = document.createElement("fakeelement"), A = { transition: "transitionend", OTransition: "oTransitionEnd", MozTransition: "transitionend", WebkitTransition: "webkitTransitionEnd" };
6496
- for (g in A) if (y.style[g] !== void 0) return A[g];
6497
- })(), l = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, d = E(n, "gslide-media") ? n : n.querySelector(".gslide-media"), u = M(d, ".ginner-container"), m = n.querySelector(".gslide-description");
6618
+ var g, y = document.createElement("fakeelement"), M = { transition: "transitionend", OTransition: "oTransitionEnd", MozTransition: "transitionend", WebkitTransition: "webkitTransitionEnd" };
6619
+ for (g in M) if (y.style[g] !== void 0) return M[g];
6620
+ })(), l = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, d = E(n, "gslide-media") ? n : n.querySelector(".gslide-media"), u = T(d, ".ginner-container"), m = n.querySelector(".gslide-description");
6498
6621
  l > 769 && (d = u), _(d, "greset"), C(d, "translate3d(0, 0, 0)"), w(c, { onElement: d, once: !0, withCallback: function(g, y) {
6499
6622
  P(d, "greset");
6500
6623
  } }), d.style.opacity = "", m && (m.style.opacity = "");
6501
6624
  }
6502
- function Ei(n) {
6625
+ function Ri(n) {
6503
6626
  if (n.events.hasOwnProperty("touch")) return !1;
6504
- var c, l, d, u = te(), m = u.width, g = u.height, y = !1, A = null, S = null, I = null, $ = !1, B = 1, q = 1, F = !1, ee = !1, me = null, be = null, Le = null, oe = null, Re = 0, ze = 0, ht = !1, rt = !1, _e = {}, Se = {}, ka = 0, _a = 0, Li = document.getElementById("glightbox-slider"), At = document.querySelector(".goverlay"), Ri = new Ii(Li, { touchStart: function(Y) {
6505
- if (y = !0, (E(Y.targetTouches[0].target, "ginner-container") || M(Y.targetTouches[0].target, ".gslide-desc") || Y.targetTouches[0].target.nodeName.toLowerCase() == "a") && (y = !1), M(Y.targetTouches[0].target, ".gslide-inline") && !E(Y.targetTouches[0].target.parentNode, "gslide-inline") && (y = !1), y) {
6506
- if (Se = Y.targetTouches[0], _e.pageX = Y.targetTouches[0].pageX, _e.pageY = Y.targetTouches[0].pageY, ka = Y.targetTouches[0].clientX, _a = Y.targetTouches[0].clientY, A = n.activeSlide, S = A.querySelector(".gslide-media"), d = A.querySelector(".gslide-inline"), I = null, E(S, "gslide-image") && (I = S.querySelector("img")), (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 769 && (S = A.querySelector(".ginner-container")), P(At, "greset"), Y.pageX > 20 && Y.pageX < window.innerWidth - 20) return;
6627
+ var c, l, d, u = te(), m = u.width, g = u.height, y = !1, M = null, S = null, I = null, $ = !1, B = 1, q = 1, F = !1, ee = !1, me = null, be = null, Le = null, oe = null, Re = 0, ze = 0, ht = !1, rt = !1, _e = {}, Se = {}, _a = 0, Sa = 0, Bi = document.getElementById("glightbox-slider"), At = document.querySelector(".goverlay"), qi = new Li(Bi, { touchStart: function(Y) {
6628
+ if (y = !0, (E(Y.targetTouches[0].target, "ginner-container") || T(Y.targetTouches[0].target, ".gslide-desc") || Y.targetTouches[0].target.nodeName.toLowerCase() == "a") && (y = !1), T(Y.targetTouches[0].target, ".gslide-inline") && !E(Y.targetTouches[0].target.parentNode, "gslide-inline") && (y = !1), y) {
6629
+ if (Se = Y.targetTouches[0], _e.pageX = Y.targetTouches[0].pageX, _e.pageY = Y.targetTouches[0].pageY, _a = Y.targetTouches[0].clientX, Sa = Y.targetTouches[0].clientY, M = n.activeSlide, S = M.querySelector(".gslide-media"), d = M.querySelector(".gslide-inline"), I = null, E(S, "gslide-image") && (I = S.querySelector("img")), (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 769 && (S = M.querySelector(".ginner-container")), P(At, "greset"), Y.pageX > 20 && Y.pageX < window.innerWidth - 20) return;
6507
6630
  Y.preventDefault();
6508
6631
  }
6509
6632
  }, touchMove: function(Y) {
@@ -6513,8 +6636,8 @@ function Js() {
6513
6636
  if (Math.abs(fe) <= 13) return !1;
6514
6637
  }
6515
6638
  $ = !0;
6516
- var Ue, Mt = Y.targetTouches[0].clientX, zi = Y.targetTouches[0].clientY, Oi = ka - Mt, Bi = _a - zi;
6517
- if (Math.abs(Oi) > Math.abs(Bi) ? (ht = !1, rt = !0) : (rt = !1, ht = !0), c = Se.pageX - _e.pageX, Re = 100 * c / m, l = Se.pageY - _e.pageY, ze = 100 * l / g, ht && I && (Ue = 1 - Math.abs(l) / g, At.style.opacity = Ue, n.settings.touchFollowAxis && (Re = 0)), rt && (Ue = 1 - Math.abs(c) / m, S.style.opacity = Ue, n.settings.touchFollowAxis && (ze = 0)), !I) return C(S, "translate3d(".concat(Re, "%, 0, 0)"));
6639
+ var Ue, Mt = Y.targetTouches[0].clientX, Di = Y.targetTouches[0].clientY, Fi = _a - Mt, Hi = Sa - Di;
6640
+ if (Math.abs(Fi) > Math.abs(Hi) ? (ht = !1, rt = !0) : (rt = !1, ht = !0), c = Se.pageX - _e.pageX, Re = 100 * c / m, l = Se.pageY - _e.pageY, ze = 100 * l / g, ht && I && (Ue = 1 - Math.abs(l) / g, At.style.opacity = Ue, n.settings.touchFollowAxis && (Re = 0)), rt && (Ue = 1 - Math.abs(c) / m, S.style.opacity = Ue, n.settings.touchFollowAxis && (ze = 0)), !I) return C(S, "translate3d(".concat(Re, "%, 0, 0)"));
6518
6641
  C(S, "translate3d(".concat(Re, "%, ").concat(ze, "%, 0)"));
6519
6642
  }
6520
6643
  }, touchEnd: function() {
@@ -6556,9 +6679,9 @@ function Js() {
6556
6679
  }
6557
6680
  }
6558
6681
  } });
6559
- n.events.touch = Ri;
6682
+ n.events.touch = qi;
6560
6683
  }
6561
- var va = ge(), wa = ge() !== null || document.createTouch !== void 0 || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, xa = document.getElementsByTagName("html")[0], $i = { 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">
6684
+ var wa = ge(), xa = ge() !== null || document.createTouch !== void 0 || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, ka = document.getElementsByTagName("html")[0], zi = { 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">
6562
6685
  <div class="gslide-inner-content">
6563
6686
  <div class="ginner-container">
6564
6687
  <div class="gslide-media">
@@ -6580,9 +6703,9 @@ function Js() {
6580
6703
  <button class="gprev gbtn" aria-label="Previous" data-taborder="2">{prevSVG}</button>
6581
6704
  <button class="gnext gbtn" aria-label="Next" data-taborder="1">{nextSVG}</button>
6582
6705
  </div>
6583
- </div>` }, Pi = s((function n() {
6706
+ </div>` }, Oi = s((function n() {
6584
6707
  var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6585
- t(this, n), this.customOptions = c, this.settings = p($i, c), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = !1;
6708
+ t(this, n), this.customOptions = c, this.settings = b(zi, c), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = !1;
6586
6709
  }), [{ key: "init", value: function() {
6587
6710
  var n = this, c = this.getSelector();
6588
6711
  c && (this.baseEvents = w("click", { onElement: c, withCallback: function(l, d) {
@@ -6603,7 +6726,7 @@ function Js() {
6603
6726
  var g = document.createElement("style");
6604
6727
  g.type = "text/css", g.className = "gcss-styles", g.innerText = ".gscrollbar-fixer {margin-right: ".concat(m, "px}"), document.head.appendChild(g), _(u, "gscrollbar-fixer");
6605
6728
  }
6606
- _(u, "glightbox-open"), _(xa, "glightbox-open"), va && (_(document.body, "glightbox-mobile"), this.settings.slideEffect = "slide"), this.showSlide(l, !0), this.elements.length === 1 ? (_(this.prevButton, "glightbox-button-hidden"), _(this.nextButton, "glightbox-button-hidden")) : (P(this.prevButton, "glightbox-button-hidden"), P(this.nextButton, "glightbox-button-hidden")), this.lightboxOpen = !0, this.trigger("open"), j(this.settings.onOpen) && this.settings.onOpen(), wa && this.settings.touchNavigation && Ei(this), this.settings.keyboardNavigation && wi(this);
6729
+ _(u, "glightbox-open"), _(ka, "glightbox-open"), wa && (_(document.body, "glightbox-mobile"), this.settings.slideEffect = "slide"), this.showSlide(l, !0), this.elements.length === 1 ? (_(this.prevButton, "glightbox-button-hidden"), _(this.nextButton, "glightbox-button-hidden")) : (P(this.prevButton, "glightbox-button-hidden"), P(this.nextButton, "glightbox-button-hidden")), this.lightboxOpen = !0, this.trigger("open"), j(this.settings.onOpen) && this.settings.onOpen(), xa && this.settings.touchNavigation && Ri(this), this.settings.keyboardNavigation && Si(this);
6607
6730
  } }, { key: "openAt", value: function() {
6608
6731
  var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
6609
6732
  this.open(null, n);
@@ -6646,18 +6769,18 @@ function Js() {
6646
6769
  } }, { key: "insertSlide", value: function() {
6647
6770
  var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : -1;
6648
6771
  c < 0 && (c = this.elements.length);
6649
- var l = new St(n, this, c), d = l.getConfig(), u = p({}, d), m = l.create(), g = this.elements.length - 1;
6772
+ var l = new St(n, this, c), d = l.getConfig(), u = b({}, d), m = l.create(), g = this.elements.length - 1;
6650
6773
  u.index = c, u.node = !1, u.instance = l, u.slideConfig = d, this.elements.splice(c, 0, u);
6651
- var y = null, A = null;
6774
+ var y = null, M = null;
6652
6775
  if (this.slidesContainer) {
6653
6776
  if (c > g) this.slidesContainer.appendChild(m);
6654
6777
  else {
6655
6778
  var S = this.slidesContainer.querySelectorAll(".gslide")[c];
6656
6779
  this.slidesContainer.insertBefore(m, S);
6657
6780
  }
6658
- (this.settings.preload && this.index == 0 && c == 0 || this.index - 1 == c || this.index + 1 == c) && this.preloadSlide(c), this.index === 0 && c === 0 && (this.index = 1), this.updateNavigationClasses(), y = this.slidesContainer.querySelectorAll(".gslide")[c], A = this.getSlidePlayerInstance(c), u.slideNode = y;
6781
+ (this.settings.preload && this.index == 0 && c == 0 || this.index - 1 == c || this.index + 1 == c) && this.preloadSlide(c), this.index === 0 && c === 0 && (this.index = 1), this.updateNavigationClasses(), y = this.slidesContainer.querySelectorAll(".gslide")[c], M = this.getSlidePlayerInstance(c), u.slideNode = y;
6659
6782
  }
6660
- this.trigger("slide_inserted", { index: c, slide: y, slideNode: y, slideConfig: d, slideIndex: c, trigger: null, player: A }), j(this.settings.slideInserted) && this.settings.slideInserted({ index: c, slide: y, player: A });
6783
+ this.trigger("slide_inserted", { index: c, slide: y, slideNode: y, slideConfig: d, slideIndex: c, trigger: null, player: M }), j(this.settings.slideInserted) && this.settings.slideInserted({ index: c, slide: y, player: M });
6661
6784
  } }, { key: "removeSlide", value: function() {
6662
6785
  var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1;
6663
6786
  if (n < 0 || n > this.elements.length - 1) return !1;
@@ -6669,8 +6792,8 @@ function Js() {
6669
6792
  l.settings.autoplayVideos && l.slidePlayerPlay(n), l.trigger("slide_changed", { prev: m, current: g }), j(l.settings.afterSlideChange) && l.settings.afterSlideChange.apply(l, [m, g]);
6670
6793
  }));
6671
6794
  else {
6672
- var y = this.settings.slideEffect, A = y !== "none" ? this.settings.cssEfects[y].in : y;
6673
- this.prevActiveSlideIndex > this.index && this.settings.slideEffect == "slide" && (A = this.settings.cssEfects.slideBack.in), L(n, A, (function() {
6795
+ var y = this.settings.slideEffect, M = y !== "none" ? this.settings.cssEfects[y].in : y;
6796
+ this.prevActiveSlideIndex > this.index && this.settings.slideEffect == "slide" && (M = this.settings.cssEfects.slideBack.in), L(n, M, (function() {
6674
6797
  l.settings.autoplayVideos && l.slidePlayerPlay(n), l.trigger("slide_changed", { prev: m, current: g }), j(l.settings.afterSlideChange) && l.settings.afterSlideChange.apply(l, [m, g]);
6675
6798
  }));
6676
6799
  }
@@ -6716,7 +6839,7 @@ function Js() {
6716
6839
  l && !l.playing && l.play();
6717
6840
  } }, { key: "slidePlayerPlay", value: function(n) {
6718
6841
  var c;
6719
- if (!va || (c = this.settings.plyr.config) !== null && c !== void 0 && c.muted) {
6842
+ if (!wa || (c = this.settings.plyr.config) !== null && c !== void 0 && c.muted) {
6720
6843
  if (U(n)) {
6721
6844
  var l = n.querySelector(".gvideo-wrapper");
6722
6845
  l && (n = l.getAttribute("data-index"));
@@ -6729,7 +6852,7 @@ function Js() {
6729
6852
  this.settings.elements = !1;
6730
6853
  var l = [];
6731
6854
  n && n.length && v(n, (function(d, u) {
6732
- var m = new St(d, c, u), g = m.getConfig(), y = p({}, g);
6855
+ var m = new St(d, c, u), g = m.getConfig(), y = b({}, g);
6733
6856
  y.slideConfig = g, y.instance = m, y.index = u, l.push(y);
6734
6857
  })), this.elements = l, this.lightboxOpen && (this.slidesContainer.innerHTML = "", this.elements.length && (v(this.elements, (function() {
6735
6858
  var d = X(c.settings.slideHTML);
@@ -6743,12 +6866,12 @@ function Js() {
6743
6866
  } }, { key: "getElements", value: function() {
6744
6867
  var n = this, c = [];
6745
6868
  this.elements = this.elements ? this.elements : [], !ue(this.settings.elements) && $e(this.settings.elements) && this.settings.elements.length && v(this.settings.elements, (function(d, u) {
6746
- var m = new St(d, n, u), g = m.getConfig(), y = p({}, g);
6869
+ var m = new St(d, n, u), g = m.getConfig(), y = b({}, g);
6747
6870
  y.node = !1, y.index = u, y.instance = m, y.slideConfig = g, c.push(y);
6748
6871
  }));
6749
6872
  var l = !1;
6750
6873
  return this.getSelector() && (l = document.querySelectorAll(this.getSelector())), l && v(l, (function(d, u) {
6751
- var m = new St(d, n, u), g = m.getConfig(), y = p({}, g);
6874
+ var m = new St(d, n, u), g = m.getConfig(), y = b({}, g);
6752
6875
  y.node = d, y.index = u, y.instance = m, y.slideConfig = g, y.gallery = d.getAttribute("data-gallery"), c.push(y);
6753
6876
  })), c;
6754
6877
  } }, { key: "getGalleryElements", value: function(n, c) {
@@ -6779,18 +6902,18 @@ function Js() {
6779
6902
  g = X(g = (g = (g = g.replace(/{nextSVG}/g, d)).replace(/{prevSVG}/g, u)).replace(/{closeSVG}/g, m)), document.body.appendChild(g);
6780
6903
  var y = document.getElementById("glightbox-body");
6781
6904
  this.modal = y;
6782
- var A = y.querySelector(".gclose");
6783
- this.prevButton = y.querySelector(".gprev"), this.nextButton = y.querySelector(".gnext"), this.overlay = y.querySelector(".goverlay"), this.loader = y.querySelector(".gloader"), this.slidesContainer = document.getElementById("glightbox-slider"), this.bodyHiddenChildElms = l, this.events = {}, _(this.modal, "glightbox-" + this.settings.skin), this.settings.closeButton && A && (this.events.close = w("click", { onElement: A, withCallback: function(S, I) {
6905
+ var M = y.querySelector(".gclose");
6906
+ this.prevButton = y.querySelector(".gprev"), this.nextButton = y.querySelector(".gnext"), this.overlay = y.querySelector(".goverlay"), this.loader = y.querySelector(".gloader"), this.slidesContainer = document.getElementById("glightbox-slider"), this.bodyHiddenChildElms = l, this.events = {}, _(this.modal, "glightbox-" + this.settings.skin), this.settings.closeButton && M && (this.events.close = w("click", { onElement: M, withCallback: function(S, I) {
6784
6907
  S.preventDefault(), n.close();
6785
- } })), A && !this.settings.closeButton && A.parentNode.removeChild(A), this.nextButton && (this.events.next = w("click", { onElement: this.nextButton, withCallback: function(S, I) {
6908
+ } })), M && !this.settings.closeButton && M.parentNode.removeChild(M), this.nextButton && (this.events.next = w("click", { onElement: this.nextButton, withCallback: function(S, I) {
6786
6909
  S.preventDefault(), n.nextSlide();
6787
6910
  } })), this.prevButton && (this.events.prev = w("click", { onElement: this.prevButton, withCallback: function(S, I) {
6788
6911
  S.preventDefault(), n.prevSlide();
6789
6912
  } })), this.settings.closeOnOutsideClick && (this.events.outClose = w("click", { onElement: y, withCallback: function(S, I) {
6790
- n.preventOutsideClick || E(document.body, "glightbox-mobile") || M(S.target, ".ginner-container") || M(S.target, ".gbtn") || E(S.target, "gnext") || E(S.target, "gprev") || n.close();
6913
+ n.preventOutsideClick || E(document.body, "glightbox-mobile") || T(S.target, ".ginner-container") || T(S.target, ".gbtn") || E(S.target, "gnext") || E(S.target, "gprev") || n.close();
6791
6914
  } })), v(this.elements, (function(S, I) {
6792
6915
  n.slidesContainer.appendChild(S.instance.create()), S.slideNode = n.slidesContainer.querySelectorAll(".gslide")[I];
6793
- })), wa && _(document.body, "glightbox-touch"), this.events.resize = w("resize", { onElement: window, withCallback: function() {
6916
+ })), xa && _(document.body, "glightbox-touch"), this.events.resize = w("resize", { onElement: window, withCallback: function() {
6794
6917
  n.resize();
6795
6918
  } }), this.built = !0;
6796
6919
  } }, { key: "resize", value: function() {
@@ -6802,7 +6925,7 @@ function Js() {
6802
6925
  if (u && (E(u, "description-bottom") || E(u, "description-top")) && !E(u, "gabsolute") && (y = !0), d) {
6803
6926
  if (m <= 768) d.querySelector("img");
6804
6927
  else if (y) {
6805
- var A, S, I = u.offsetHeight, $ = d.querySelector("img"), B = (A = this.elements[this.index]) === null || A === void 0 ? void 0 : A.node, q = "100vh";
6928
+ var M, S, I = u.offsetHeight, $ = d.querySelector("img"), B = (M = this.elements[this.index]) === null || M === void 0 ? void 0 : M.node, q = "100vh";
6806
6929
  B && (q = (S = B.getAttribute("data-height")) !== null && S !== void 0 ? S : q), $.setAttribute("style", "max-height: calc(".concat(q, " - ").concat(I, "px)")), u.setAttribute("style", "max-width: ".concat($.offsetWidth, "px;"));
6807
6930
  }
6808
6931
  }
@@ -6846,7 +6969,7 @@ function Js() {
6846
6969
  n.events = null;
6847
6970
  }
6848
6971
  var d = document.body;
6849
- P(xa, "glightbox-open"), P(d, "glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer"), n.modal.parentNode.removeChild(n.modal), n.trigger("close"), j(n.settings.onClose) && n.settings.onClose();
6972
+ P(ka, "glightbox-open"), P(d, "glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer"), n.modal.parentNode.removeChild(n.modal), n.trigger("close"), j(n.settings.onClose) && n.settings.onClose();
6850
6973
  var u = document.querySelector(".gcss-styles");
6851
6974
  u && u.parentNode.removeChild(u), n.lightboxOpen = !1, n.closing = null;
6852
6975
  }));
@@ -6861,8 +6984,8 @@ function Js() {
6861
6984
  } }, { key: "trigger", value: function(n) {
6862
6985
  var c = this, l = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, d = [];
6863
6986
  v(this.apiEvents, (function(u, m) {
6864
- var g = u.evt, y = u.once, A = u.callback;
6865
- g == n && (A(l), y && d.push(m));
6987
+ var g = u.evt, y = u.once, M = u.callback;
6988
+ g == n && (M(l), y && d.push(m));
6866
6989
  })), d.length && v(d, (function(u) {
6867
6990
  return c.apiEvents.splice(u, 1);
6868
6991
  }));
@@ -6872,25 +6995,25 @@ function Js() {
6872
6995
  return "3.3.1";
6873
6996
  } }]);
6874
6997
  return function() {
6875
- var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = new Pi(n);
6998
+ var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = new Oi(n);
6876
6999
  return c.init(), c;
6877
7000
  };
6878
7001
  }));
6879
7002
  })(zt)), zt.exports;
6880
7003
  }
6881
- var Zs = Js();
6882
- const Qs = /* @__PURE__ */ Wa(Zs);
6883
- var en = Object.getOwnPropertyDescriptor, tn = (a, e, t, i) => {
6884
- for (var s = i > 1 ? void 0 : i ? en(e, t) : e, r = a.length - 1, o; r >= 0; r--)
7004
+ var ln = cn();
7005
+ const dn = /* @__PURE__ */ Ya(ln);
7006
+ var fn = Object.getOwnPropertyDescriptor, hn = (a, e, t, i) => {
7007
+ for (var s = i > 1 ? void 0 : i ? fn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6885
7008
  (o = a[r]) && (s = o(s) || s);
6886
7009
  return s;
6887
7010
  };
6888
- let ea = class extends Fe {
7011
+ let ta = class extends Fe {
6889
7012
  render() {
6890
- return b` <div class="cb-thinking"><span></span><span></span><span></span></div>`;
7013
+ return p` <div class="cb-thinking"><span></span><span></span><span></span></div>`;
6891
7014
  }
6892
7015
  };
6893
- ea.styles = K`
7016
+ ta.styles = K`
6894
7017
  .cb-thinking {
6895
7018
  text-align: center;
6896
7019
  }
@@ -6928,26 +7051,26 @@ ea.styles = K`
6928
7051
  }
6929
7052
  }
6930
7053
  `;
6931
- ea = tn([
7054
+ ta = hn([
6932
7055
  J("cb-thinking")
6933
- ], ea);
6934
- var an = Object.defineProperty, sn = Object.getOwnPropertyDescriptor, ti = (a, e, t, i) => {
6935
- for (var s = i > 1 ? void 0 : i ? sn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
7056
+ ], ta);
7057
+ var un = Object.defineProperty, bn = Object.getOwnPropertyDescriptor, ni = (a, e, t, i) => {
7058
+ for (var s = i > 1 ? void 0 : i ? bn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6936
7059
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
6937
- return i && s && an(e, t, s), s;
7060
+ return i && s && un(e, t, s), s;
6938
7061
  };
6939
7062
  let Dt = class extends re {
6940
7063
  constructor() {
6941
7064
  super(...arguments), this.files = [];
6942
7065
  }
6943
7066
  render() {
6944
- return b` <div class="cb-uploading">
7067
+ return p` <div class="cb-uploading">
6945
7068
  <div class="cb-uploading__title">
6946
7069
  <sl-spinner class="cb-spinner"></sl-spinner>
6947
7070
  <span>Uploading...</span>
6948
7071
  </div>
6949
7072
  <div class="cb-uploading__filelist">
6950
- ${this.files.map((a) => b`${a.name}<br />`)}
7073
+ ${this.files.map((a) => p`${a.name}<br />`)}
6951
7074
  </div>
6952
7075
  </div>`;
6953
7076
  }
@@ -6970,13 +7093,13 @@ Dt.styles = K`
6970
7093
  margin-right: 5px;
6971
7094
  }
6972
7095
  `;
6973
- ti([
7096
+ ni([
6974
7097
  x({ type: Array })
6975
7098
  ], Dt.prototype, "files", 2);
6976
- Dt = ti([
7099
+ Dt = ni([
6977
7100
  J("cb-uploading")
6978
7101
  ], Dt);
6979
- const nn = K`
7102
+ const pn = K`
6980
7103
  ${ke}
6981
7104
  :host {
6982
7105
  }
@@ -6997,17 +7120,17 @@ const nn = K`
6997
7120
  margin-right: 0.2em;
6998
7121
  }
6999
7122
  `;
7000
- var rn = Object.defineProperty, on = Object.getOwnPropertyDescriptor, la = (a, e, t, i) => {
7001
- for (var s = i > 1 ? void 0 : i ? on(e, t) : e, r = a.length - 1, o; r >= 0; r--)
7123
+ var gn = Object.defineProperty, mn = Object.getOwnPropertyDescriptor, da = (a, e, t, i) => {
7124
+ for (var s = i > 1 ? void 0 : i ? mn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
7002
7125
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
7003
- return i && s && rn(e, t, s), s;
7126
+ return i && s && gn(e, t, s), s;
7004
7127
  };
7005
7128
  let yt = class extends Fe {
7006
7129
  constructor() {
7007
7130
  super(...arguments), this.url = "", this.inverse = !1;
7008
7131
  }
7009
7132
  render() {
7010
- return b`
7133
+ return p`
7011
7134
  <a
7012
7135
  class="
7013
7136
  cb-external-link link__item
@@ -7047,29 +7170,29 @@ yt.styles = K`
7047
7170
  text-decoration: underline;
7048
7171
  }
7049
7172
  `;
7050
- la([
7173
+ da([
7051
7174
  x({ type: String })
7052
7175
  ], yt.prototype, "url", 2);
7053
- la([
7176
+ da([
7054
7177
  x({ type: Boolean })
7055
7178
  ], yt.prototype, "inverse", 2);
7056
- yt = la([
7179
+ yt = da([
7057
7180
  J("cb-external-link")
7058
7181
  ], yt);
7059
- const cn = '<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>', ln = '<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>', dn = '<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>', fn = '<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>', hn = '<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>', un = '<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>', bn = '<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>';
7060
- var pn = Object.defineProperty, gn = Object.getOwnPropertyDescriptor, da = (a, e, t, i) => {
7061
- for (var s = i > 1 ? void 0 : i ? gn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
7182
+ const yn = '<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>', vn = '<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>', wn = '<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>', xn = '<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>', kn = '<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>', _n = '<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>', Sn = '<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>';
7183
+ var Cn = Object.defineProperty, An = Object.getOwnPropertyDescriptor, fa = (a, e, t, i) => {
7184
+ for (var s = i > 1 ? void 0 : i ? An(e, t) : e, r = a.length - 1, o; r >= 0; r--)
7062
7185
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
7063
- return i && s && pn(e, t, s), s;
7186
+ return i && s && Cn(e, t, s), s;
7064
7187
  };
7065
- const La = {
7066
- pdf: ln,
7067
- txt: cn,
7068
- md: dn,
7069
- csv: fn,
7070
- ppd: hn,
7071
- doc: un,
7072
- docx: bn
7188
+ const Oa = {
7189
+ pdf: vn,
7190
+ txt: yn,
7191
+ md: wn,
7192
+ csv: xn,
7193
+ ppd: kn,
7194
+ doc: _n,
7195
+ docx: Sn
7073
7196
  };
7074
7197
  let vt = class extends re {
7075
7198
  constructor() {
@@ -7082,7 +7205,7 @@ let vt = class extends re {
7082
7205
  return e ? e.toLowerCase() : "txt";
7083
7206
  }
7084
7207
  render() {
7085
- return b`
7208
+ return p`
7086
7209
  <cb-external-link url="${this.url}" inverse>
7087
7210
  <div class="cb-file">
7088
7211
  ${this.renderFileIcon()}
@@ -7092,25 +7215,25 @@ let vt = class extends re {
7092
7215
  `;
7093
7216
  }
7094
7217
  renderFileIcon() {
7095
- return b`
7218
+ return p`
7096
7219
  <cb-icon
7097
7220
  class="cb-file-icon"
7098
- svg="${La[this.type] || La.txt}"
7221
+ svg="${Oa[this.type] || Oa.txt}"
7099
7222
  ></cb-icon>
7100
7223
  `;
7101
7224
  }
7102
7225
  };
7103
- vt.styles = nn;
7104
- da([
7226
+ vt.styles = pn;
7227
+ fa([
7105
7228
  x({ type: String })
7106
7229
  ], vt.prototype, "filename", 2);
7107
- da([
7230
+ fa([
7108
7231
  x({ type: String })
7109
7232
  ], vt.prototype, "url", 2);
7110
- vt = da([
7233
+ vt = fa([
7111
7234
  J("cb-file")
7112
7235
  ], vt);
7113
- const mn = '<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>', Ra = '<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>', ai = '<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>', ii = '<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>', yn = K`
7236
+ const Mn = '<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>', Ba = '<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>', ri = '<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>', oi = '<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>', Tn = K`
7114
7237
  pre code.hljs {
7115
7238
  display: block;
7116
7239
  overflow-x: auto;
@@ -8325,9 +8448,9 @@ const mn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
8325
8448
  white-space: pre-wrap;
8326
8449
  color: var(--n-text-color);
8327
8450
  }
8328
- `, vn = K`
8451
+ `, In = K`
8329
8452
  ${ke}
8330
- ${yn}
8453
+ ${Tn}
8331
8454
 
8332
8455
  .cb-message-row {
8333
8456
  width: 100%;
@@ -8568,36 +8691,36 @@ const mn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
8568
8691
  filter: alpha(opacity=80);
8569
8692
  }
8570
8693
  `;
8571
- function za(a, e) {
8694
+ function qa(a, e) {
8572
8695
  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}">${a}</code></pre>`;
8573
8696
  }
8574
- function wn() {
8575
- const a = new Di({
8697
+ function En() {
8698
+ const a = new Vi({
8576
8699
  html: !0,
8577
8700
  breaks: !0,
8578
8701
  linkify: !0,
8579
8702
  highlight(e, t) {
8580
8703
  if (!!(t && Gt.getLanguage(t))) {
8581
8704
  const s = t ?? "";
8582
- return za(Gt.highlight(e, { language: s }).value, s);
8705
+ return qa(Gt.highlight(e, { language: s }).value, s);
8583
8706
  }
8584
- return za(Gt.highlightAuto(e).value, "");
8707
+ return qa(Gt.highlightAuto(e).value, "");
8585
8708
  }
8586
8709
  });
8587
- return a.use(Fi, { attrs: { target: "_blank", rel: "noopener" } }), a;
8710
+ return a.use(Ui, { attrs: { target: "_blank", rel: "noopener" } }), a;
8588
8711
  }
8589
8712
  async function Ft(a) {
8590
- const t = wn().render(a);
8591
- return b`${G(t)}`;
8713
+ const t = En().render(a);
8714
+ return p`${G(t)}`;
8592
8715
  }
8593
- var xn = Object.defineProperty, kn = Object.getOwnPropertyDescriptor, nt = (a, e, t, i) => {
8594
- for (var s = i > 1 ? void 0 : i ? kn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
8716
+ var $n = Object.defineProperty, Pn = Object.getOwnPropertyDescriptor, nt = (a, e, t, i) => {
8717
+ for (var s = i > 1 ? void 0 : i ? Pn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
8595
8718
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
8596
- return i && s && xn(e, t, s), s;
8719
+ return i && s && $n(e, t, s), s;
8597
8720
  };
8598
8721
  let De = class extends re {
8599
8722
  constructor() {
8600
- super(...arguments), this.store = new it(this, h), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = Qs({
8723
+ super(...arguments), this.store = new it(this, h), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = dn({
8601
8724
  touchNavigation: !0,
8602
8725
  loop: !0,
8603
8726
  autoplayVideos: !0,
@@ -8662,7 +8785,7 @@ let De = class extends re {
8662
8785
  this.copyBtns.forEach((a) => {
8663
8786
  a.addEventListener("click", () => {
8664
8787
  const e = a.parentElement?.nextElementSibling?.textContent;
8665
- e && ts(e).then(() => {
8788
+ e && ns(e).then(() => {
8666
8789
  a.textContent = "Success", setTimeout(() => {
8667
8790
  a.textContent = "Copy";
8668
8791
  }, 500);
@@ -8681,11 +8804,11 @@ let De = class extends re {
8681
8804
  return this.renderInfoMessage(this.message);
8682
8805
  if (this.message?.type === "blocks") {
8683
8806
  const a = this.message?.data?.blocks ?? [];
8684
- return b`<cb-blocks .blocks=${a}></cb-blocks>`;
8807
+ return p`<cb-blocks .blocks=${a}></cb-blocks>`;
8685
8808
  }
8686
8809
  return W(
8687
8810
  this.message.data || this.message.isThinking,
8688
- () => b`
8811
+ () => p`
8689
8812
  <div class="cb-message-row" part="bot-message">
8690
8813
  <!-- message -->
8691
8814
  ${W(
@@ -8699,15 +8822,15 @@ let De = class extends re {
8699
8822
  );
8700
8823
  }
8701
8824
  renderButtons(a = "left") {
8702
- return b`<div class="cb-message__buttons ${a}">
8825
+ return p`<div class="cb-message__buttons ${a}">
8703
8826
  <!-- delete button -->
8704
8827
  <sl-button class="cb-message__delete-button" name="trash" @click=${this._removeMessageHandler} circle variant="text" size="small">
8705
- <cb-icon svg="${mn}" style="font-size: 1em !important;"></cb-icon>
8828
+ <cb-icon svg="${Mn}" style="font-size: 1em !important;"></cb-icon>
8706
8829
  </sl-button>
8707
8830
  </div>`;
8708
8831
  }
8709
8832
  renderInfoMessage(a) {
8710
- return b`
8833
+ return p`
8711
8834
  <div class="cb-message cb-bot-message-wrapper" part="cb-message">
8712
8835
  <div class="avatar info-avatar xsmall" part="info-avatar" style="margin-top:4px;">${this.renderInfoMessageAvatar(a)}</div>
8713
8836
  <div
@@ -8719,7 +8842,7 @@ let De = class extends re {
8719
8842
  >
8720
8843
  <div class="cb-message-text">
8721
8844
  ${bt(
8722
- this._getMessageText(a).then((e) => b`${e}`)
8845
+ this._getMessageText(a).then((e) => p`${e}`)
8723
8846
  )}
8724
8847
  </div>
8725
8848
  </div>
@@ -8728,10 +8851,10 @@ let De = class extends re {
8728
8851
  }
8729
8852
  renderInfoMessageAvatar(a) {
8730
8853
  const e = a.data?.userAvatar || "";
8731
- return e !== "" ? b` <img src="${e}" style="width: 24px;height: 24px;" /> ` : pe`${G(h.setting.infoIconSvg)}`;
8854
+ return e !== "" ? p` <img src="${e}" style="width: 24px;height: 24px;" /> ` : pe`${G(h.setting.infoIconSvg)}`;
8732
8855
  }
8733
8856
  renderMessage(a, e = "bot-message-content") {
8734
- return b`
8857
+ return p`
8735
8858
  <div
8736
8859
  class="cb-message__content
8737
8860
  ${a.author}-message
@@ -8748,48 +8871,48 @@ let De = class extends re {
8748
8871
  return Ft(xt(a.data.text));
8749
8872
  }
8750
8873
  renderMessageContent(a) {
8751
- return a.isThinking ? b`<cb-thinking></cb-thinking>` : a.isUploading ? b`<cb-uploading .files="${a.data.files || []}"></cb-uploading>` : a.type === "text" ? b`<div class="cb-message-text">
8874
+ return a.isThinking ? p`<cb-thinking></cb-thinking>` : a.isUploading ? p`<cb-uploading .files="${a.data.files || []}"></cb-uploading>` : a.type === "text" ? p`<div class="cb-message-text">
8752
8875
  ${W(
8753
8876
  a.data.userName,
8754
- () => b`<div class="assistant-message-user-name">${a.data.userName}</div>`,
8877
+ () => p`<div class="assistant-message-user-name">${a.data.userName}</div>`,
8755
8878
  () => null
8756
8879
  )}
8757
8880
  ${bt(
8758
- this._getMessageText(a).then((e) => b`${e}`)
8881
+ this._getMessageText(a).then((e) => p`${e}`)
8759
8882
  )}
8760
- </div>` : a.type === "file" ? b`${et(
8883
+ </div>` : a.type === "file" ? p`${et(
8761
8884
  a.data.files || [],
8762
8885
  (e) => e.id,
8763
- (e) => b`<cb-file filename="${e.name}" url="${e.url}"></cb-file>`
8764
- )}` : a.type === "upload" ? b`${et(
8886
+ (e) => p`<cb-file filename="${e.name}" url="${e.url}"></cb-file>`
8887
+ )}` : a.type === "upload" ? p`${et(
8765
8888
  a.data.uploadedFiles || [],
8766
8889
  (e) => e.name,
8767
- (e) => b`<div>${e.name}</div>`
8768
- )}` : b`<div class="cb-message-text">
8890
+ (e) => p`<div>${e.name}</div>`
8891
+ )}` : p`<div class="cb-message-text">
8769
8892
  ${bt(
8770
- Ft(a.data.text?.toString() || "").then((e) => b`${e}`)
8893
+ Ft(a.data.text?.toString() || "").then((e) => p`${e}`)
8771
8894
  )}
8772
8895
  </div>`;
8773
8896
  }
8774
8897
  renderMessageUploads(a) {
8775
8898
  if (a.type === "upload")
8776
- return b`<div class="user-message-uploads">
8899
+ return p`<div class="user-message-uploads">
8777
8900
  ${et(
8778
8901
  a.data.uploadedFiles || [],
8779
8902
  (e) => e.name,
8780
- (e) => (e?.type || "").startsWith("image/") ? b`<img src="data:${e.type};base64,${e.base64}" alt="${e.name}" />` : null
8903
+ (e) => (e?.type || "").startsWith("image/") ? p`<img src="data:${e.type};base64,${e.base64}" alt="${e.name}" />` : null
8781
8904
  )}
8782
8905
  </div>`;
8783
8906
  }
8784
8907
  renderBotMessageAvatar(a) {
8785
8908
  if (a.data.userName && a.data.userName !== "") {
8786
8909
  const e = a.data?.userAvatar || "";
8787
- return e !== "" ? b` <img src="${e}" style="width: 24px;height: 24px;" /> ` : pe`${G(h.setting.agentIconSvg)}`;
8910
+ return e !== "" ? p` <img src="${e}" style="width: 24px;height: 24px;" /> ` : pe`${G(h.setting.agentIconSvg)}`;
8788
8911
  }
8789
8912
  return a.author === "system" ? pe`${G(h.setting.systemIconSvg)}` : pe`${G(h.setting.botIconSvg)}`;
8790
8913
  }
8791
8914
  renderBotMessage(a) {
8792
- return b`
8915
+ return p`
8793
8916
  <div class="cb-message cb-bot-message-wrapper" part="cb-message">
8794
8917
  <div class="avatar assistant-avatar xsmall" part="assistant-avatar" style="margin-top:4px;">${this.renderBotMessageAvatar(a)}</div>
8795
8918
  ${this.renderMessage(a, "bot-message-content")}
@@ -8798,10 +8921,10 @@ let De = class extends re {
8798
8921
  `;
8799
8922
  }
8800
8923
  renderBotMessageFeedback(a) {
8801
- return this.suppressFeedback || !h.setting.feedbackEnabled || this.index < h.setting.startFeedbackFromMessage * 2 ? null : b`
8924
+ return this.suppressFeedback || !h.setting.feedbackEnabled || this.index < h.setting.startFeedbackFromMessage * 2 ? null : p`
8802
8925
  <div class="cb-message-feedback-tools" part="feedback-wrapper">
8803
- <div class="cb-message-feedback-icon cb-feedback-up" part="feedback-up" @click="${() => this.startFeedback(!0, a)}">${pe`${G(ai)}`}</div>
8804
- <div class="cb-message-feedback-icon cb-feedback-down" part="feedback-down" @click="${() => this.startFeedback(!1, a)}">${pe`${G(ii)}`}</div>
8926
+ <div class="cb-message-feedback-icon cb-feedback-up" part="feedback-up" @click="${() => this.startFeedback(!0, a)}">${pe`${G(ri)}`}</div>
8927
+ <div class="cb-message-feedback-icon cb-feedback-down" part="feedback-down" @click="${() => this.startFeedback(!1, a)}">${pe`${G(oi)}`}</div>
8805
8928
  </div>
8806
8929
  `;
8807
8930
  }
@@ -8809,19 +8932,19 @@ let De = class extends re {
8809
8932
  console.log("startFeedback", e), h.collectFeedback(a, e);
8810
8933
  }
8811
8934
  renderUserMessage(a) {
8812
- return b`
8935
+ return p`
8813
8936
  <div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
8814
8937
  <!--<sl-avatar class="avatar user-avatar small" label="User">
8815
- <cb-icon slot="icon" svg="${Ra}" color="white"></cb-icon>
8938
+ <cb-icon slot="icon" svg="${Ba}" color="white"></cb-icon>
8816
8939
  //appState.appearanceUserMessageAvatarPosition
8817
8940
  </sl-avatar>-->
8818
8941
  ${W(
8819
8942
  h.appearanceUserMessageAvatarPosition === "left",
8820
- () => b`
8943
+ () => p`
8821
8944
  <div class="avatar user-avatar" part="user-avatar">${G(h.setting.userIconSvg)}</div>
8822
8945
  ${this.renderMessage(a, "user-message-content")}
8823
8946
  `,
8824
- () => b`
8947
+ () => p`
8825
8948
  ${this.renderMessage(a, "user-message-content")}
8826
8949
  <div class="avatar user-avatar" part="user-avatar">${G(h.setting.userIconSvg)}</div>
8827
8950
  `
@@ -8832,19 +8955,19 @@ let De = class extends re {
8832
8955
  }
8833
8956
  // todo ???
8834
8957
  renderUserMessageUpload(a) {
8835
- return b`
8958
+ return p`
8836
8959
  <div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
8837
8960
  <!--<sl-avatar class="avatar user-avatar small" label="User">
8838
- <cb-icon slot="icon" svg="${Ra}" color="white"></cb-icon>
8961
+ <cb-icon slot="icon" svg="${Ba}" color="white"></cb-icon>
8839
8962
  //appState.appearanceUserMessageAvatarPosition
8840
8963
  </sl-avatar>-->
8841
8964
  ${W(
8842
8965
  h.appearanceUserMessageAvatarPosition === "left",
8843
- () => b`
8966
+ () => p`
8844
8967
  <div class="avatar user-avatar">${G(h.setting.userIconSvg)}</div>
8845
8968
  ${this.renderMessage(a, "user-message-content")}
8846
8969
  `,
8847
- () => b`
8970
+ () => p`
8848
8971
  ${this.renderMessage(a, "user-message-content")}
8849
8972
  <div class="avatar user-avatar">${G(h.setting.userIconSvg)}</div>
8850
8973
  `
@@ -8853,7 +8976,7 @@ let De = class extends re {
8853
8976
  `;
8854
8977
  }
8855
8978
  };
8856
- De.styles = vn;
8979
+ De.styles = In;
8857
8980
  nt([
8858
8981
  x({ type: Object })
8859
8982
  ], De.prototype, "message", 2);
@@ -8867,18 +8990,18 @@ nt([
8867
8990
  x({ type: Boolean })
8868
8991
  ], De.prototype, "suppressFeedback", 2);
8869
8992
  nt([
8870
- Ua(".code-block-header__copy")
8993
+ Ga(".code-block-header__copy")
8871
8994
  ], De.prototype, "copyBtns", 2);
8872
8995
  nt([
8873
- Ua("img")
8996
+ Ga("img")
8874
8997
  ], De.prototype, "glightboxImages", 2);
8875
8998
  De = nt([
8876
8999
  J("cb-message")
8877
9000
  ], De);
8878
- var _n = Object.defineProperty, Sn = Object.getOwnPropertyDescriptor, Te = (a, e, t, i) => {
8879
- for (var s = i > 1 ? void 0 : i ? Sn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9001
+ var Ln = Object.defineProperty, Rn = Object.getOwnPropertyDescriptor, Te = (a, e, t, i) => {
9002
+ for (var s = i > 1 ? void 0 : i ? Rn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
8880
9003
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
8881
- return i && s && _n(e, t, s), s;
9004
+ return i && s && Ln(e, t, s), s;
8882
9005
  };
8883
9006
  const Oe = Ke.noConflict();
8884
9007
  Oe.setLevel("info");
@@ -8910,13 +9033,13 @@ let ye = class extends re {
8910
9033
  autoplayVideos: true,
8911
9034
  });*/
8912
9035
  render() {
8913
- return b`
9036
+ return p`
8914
9037
  <div id="cb-message-list-container" class="cb-message-list" part="bot-message-list">
8915
9038
  ${this.renderDisclaimerMessage()}
8916
9039
  ${et(
8917
9040
  this.messages,
8918
9041
  (a) => a.id + JSON.stringify(a.data),
8919
- (a, e) => b`<cb-message .message="${a}" .index="${e}" exportparts="bot-message, cb-message, bot-message-content, user-message-content, user-avatar, assistant-avatar,feedback-wrapper,feedback-up,feedback-down" ?suppressFeedback=${this.suppressFeedback}></cb-message>`
9042
+ (a, e) => p`<cb-message .message="${a}" .index="${e}" exportparts="bot-message, cb-message, bot-message-content, user-message-content, user-avatar, assistant-avatar,feedback-wrapper,feedback-up,feedback-down" ?suppressFeedback=${this.suppressFeedback}></cb-message>`
8920
9043
  )}
8921
9044
  ${this.renderActions()} ${this.renderForm()}
8922
9045
  <div id="cb-message-list-bottom-anchor"></div>
@@ -8924,18 +9047,18 @@ let ye = class extends re {
8924
9047
  `;
8925
9048
  }
8926
9049
  renderDisclaimerMessage() {
8927
- return !h.setting.disclaimerMessage || !h.isConversationStart() ? null : b`
9050
+ return !h.setting.disclaimerMessage || !h.isConversationStart() ? null : p`
8928
9051
  <details class="cb-disclaimer-wrapper" part="disclaimer-wrapper" ?open=${h.setting.enableShowFullDisclaimerMessage}>
8929
9052
  <summary class="cb-disclaimer-message" part="disclaimer-message">
8930
9053
  ${bt(
8931
- Ft(h.setting.disclaimerMessage).then((a) => b`${a}`)
9054
+ Ft(h.setting.disclaimerMessage).then((a) => p`${a}`)
8932
9055
  )}
8933
9056
  </summary>
8934
9057
  </details>
8935
9058
  `;
8936
9059
  }
8937
9060
  renderForm() {
8938
- return this.form ? b` <form class="cb-input-form" part="form" @submit="${this.handleFormSubmit.bind(this)}">
9061
+ return this.form ? p` <form class="cb-input-form" part="form" @submit="${this.handleFormSubmit.bind(this)}">
8939
9062
  <div class="cb-input-form-title" part="form-title">${this.form.title}</div>
8940
9063
  ${et(
8941
9064
  this.form.fields,
@@ -8945,7 +9068,7 @@ let ye = class extends re {
8945
9068
  switch (a.type) {
8946
9069
  case "name":
8947
9070
  case "string":
8948
- return b`<sl-input
9071
+ return p`<sl-input
8949
9072
  value="${t}"
8950
9073
  part="form-input"
8951
9074
  class="cb-input-form-input"
@@ -8955,7 +9078,7 @@ let ye = class extends re {
8955
9078
  ?required="${e}"
8956
9079
  ></sl-input>`;
8957
9080
  case "email":
8958
- return b`<sl-input
9081
+ return p`<sl-input
8959
9082
  part="form-input"
8960
9083
  value="${t}"
8961
9084
  class="cb-input-form-input"
@@ -8966,7 +9089,7 @@ let ye = class extends re {
8966
9089
  ?required="${e}"
8967
9090
  ></sl-input>`;
8968
9091
  case "phone":
8969
- return b`<sl-input
9092
+ return p`<sl-input
8970
9093
  part="form-input"
8971
9094
  value="${t}"
8972
9095
  class="cb-input-form-input"
@@ -8978,20 +9101,20 @@ let ye = class extends re {
8978
9101
  ></sl-input>`;
8979
9102
  case "select": {
8980
9103
  const i = Array.isArray(a.options) ? a.options : a.options.split(",").map((s) => s.trim());
8981
- return t || i[0], b`<div class="cb-form-field">
9104
+ return t || i[0], p`<div class="cb-form-field">
8982
9105
  <label class="cb-form-field-label"
8983
9106
  >${a.title}
8984
9107
  ${W(
8985
9108
  e,
8986
- () => b`*`,
8987
- () => b``
9109
+ () => p`*`,
9110
+ () => p``
8988
9111
  )}
8989
9112
  </label>
8990
9113
  <select id="${"cb-form-field" + a.name}" class="cb-form-field-select" part="form-input" name="${a.name}">
8991
9114
  ${et(
8992
9115
  i,
8993
9116
  (s, r) => r,
8994
- (s) => b`<option value="${s}">${s}</option>`
9117
+ (s) => p`<option value="${s}">${s}</option>`
8995
9118
  )}
8996
9119
  </select>
8997
9120
  </div>`;
@@ -9038,7 +9161,7 @@ let ye = class extends re {
9038
9161
  <br /><br />
9039
9162
  */
9040
9163
  renderActions() {
9041
- return !Array.isArray(this.actions) || this.actions.length <= 0 ? null : b`
9164
+ return !Array.isArray(this.actions) || this.actions.length <= 0 ? null : p`
9042
9165
  <div class="cb-actions-list">
9043
9166
  ${et(
9044
9167
  this.actions,
@@ -9092,7 +9215,7 @@ let ye = class extends re {
9092
9215
  s.origin === "https://calendly.com" && s.data.event && s.data.event.indexOf("calendly.") !== -1 && this.handleCalendlyEvent(s);
9093
9216
  }), this.calendlyInjected = !0;
9094
9217
  }
9095
- return b`
9218
+ return p`
9096
9219
  <div class="cb-actions-list">
9097
9220
  <div class="cb-action ripple" @click="${this.invokeCalendlyAction.bind(this, a)}">
9098
9221
  <div class="cb-action-icon">
@@ -9109,7 +9232,7 @@ let ye = class extends re {
9109
9232
  `;
9110
9233
  }
9111
9234
  renderLinkAction(a) {
9112
- return b`
9235
+ return p`
9113
9236
  <div class="cb-actions-list">
9114
9237
  <div class="cb-action ripple" @click="${this.invokeLinkAction.bind(this, a)}">
9115
9238
  <div class="cb-action-icon">
@@ -9175,7 +9298,7 @@ let ye = class extends re {
9175
9298
  }
9176
9299
  return a?.hubspotMeetingAuto && !("triggered" in a) && setTimeout(() => {
9177
9300
  this.invokeHubspotMeetingAction(a);
9178
- }, 500), b`
9301
+ }, 500), p`
9179
9302
  <div class="cb-actions-list">
9180
9303
  <div class="cb-action ripple" @click="${this.invokeHubspotMeetingAction.bind(this, a)}">
9181
9304
  <div class="cb-action-icon">
@@ -9192,7 +9315,7 @@ let ye = class extends re {
9192
9315
  `;
9193
9316
  }
9194
9317
  };
9195
- ye.styles = js;
9318
+ ye.styles = Zs;
9196
9319
  Te([
9197
9320
  x({ type: Array })
9198
9321
  ], ye.prototype, "messages", 2);
@@ -9212,18 +9335,18 @@ Te([
9212
9335
  xe(".cb-input-form")
9213
9336
  ], ye.prototype, "_inputForm", 2);
9214
9337
  Te([
9215
- ra({ capture: !1, passive: !0 })
9338
+ oa({ capture: !1, passive: !0 })
9216
9339
  ], ye.prototype, "invokeLinkAction", 1);
9217
9340
  Te([
9218
- ra({ capture: !1, passive: !0 })
9341
+ oa({ capture: !1, passive: !0 })
9219
9342
  ], ye.prototype, "invokeCalendlyAction", 1);
9220
9343
  Te([
9221
- ra({ capture: !1, passive: !0 })
9344
+ oa({ capture: !1, passive: !0 })
9222
9345
  ], ye.prototype, "invokeHubspotMeetingAction", 1);
9223
9346
  ye = Te([
9224
9347
  J("cb-message-list")
9225
9348
  ], ye);
9226
- const Cn = K`
9349
+ const zn = K`
9227
9350
  ${ke}
9228
9351
 
9229
9352
  :host {
@@ -9265,11 +9388,11 @@ const Cn = K`
9265
9388
  align-items: center;
9266
9389
  margin: 6px 2px;
9267
9390
  }
9268
- `, si = '<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>', ni = '<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>', ri = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3m5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72z"/></svg>', fa = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z"/></svg>';
9269
- var An = Object.defineProperty, Mn = Object.getOwnPropertyDescriptor, Ie = (a, e, t, i) => {
9270
- for (var s = i > 1 ? void 0 : i ? Mn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9391
+ `, ci = '<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>', li = '<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>', di = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3m5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72z"/></svg>', ha = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z"/></svg>';
9392
+ var On = Object.defineProperty, Bn = Object.getOwnPropertyDescriptor, Ie = (a, e, t, i) => {
9393
+ for (var s = i > 1 ? void 0 : i ? Bn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9271
9394
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9272
- return i && s && An(e, t, s), s;
9395
+ return i && s && On(e, t, s), s;
9273
9396
  };
9274
9397
  let ve = class extends re {
9275
9398
  constructor() {
@@ -9306,7 +9429,7 @@ let ve = class extends re {
9306
9429
  });
9307
9430
  }
9308
9431
  async _sendFileHandler() {
9309
- const a = await Xa(!1, h.setting.fileUploadEnabledExtensions);
9432
+ const a = await Ja(!1, h.setting.fileUploadEnabledExtensions);
9310
9433
  this.emit("message:send:file", {
9311
9434
  detail: {
9312
9435
  files: a
@@ -9317,11 +9440,11 @@ let ve = class extends re {
9317
9440
  this.emit("audio:toggle", {});
9318
9441
  }
9319
9442
  render() {
9320
- return b`
9443
+ return p`
9321
9444
  ${W(
9322
9445
  this.loading,
9323
- () => b`<sl-progress-bar style="--height: 2px;" indeterminate></sl-progress-bar>`,
9324
- () => b``
9446
+ () => p`<sl-progress-bar style="--height: 2px;" indeterminate></sl-progress-bar>`,
9447
+ () => p``
9325
9448
  )}
9326
9449
  <div class="cb-user-input-wrapper" part="user-input-wrapper">
9327
9450
  <sl-textarea
@@ -9344,37 +9467,37 @@ let ve = class extends re {
9344
9467
  <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>
9345
9468
  ${W(
9346
9469
  h.setting.sendIconSvg !== "",
9347
- () => b`<cb-icon part="user-input-send-icon" svg="${h.setting.sendIconSvg}"></cb-icon>`,
9348
- () => b`<cb-icon part="user-input-send-icon" svg="${si}"></cb-icon>`
9470
+ () => p`<cb-icon part="user-input-send-icon" svg="${h.setting.sendIconSvg}"></cb-icon>`,
9471
+ () => p`<cb-icon part="user-input-send-icon" svg="${ci}"></cb-icon>`
9349
9472
  )}
9350
9473
  </sl-button>
9351
9474
  ${W(
9352
9475
  this.enableFileUpload,
9353
- () => b`
9476
+ () => p`
9354
9477
  <sl-button @click=${this._sendFileHandler} name="paperclip" label="Attachment" size="small" class="paperclip-button" variant="text" circle>
9355
9478
  ${W(
9356
9479
  h.setting.attachIconSvg !== "",
9357
- () => b`<cb-icon part="user-input-attach-icon" svg="${h.setting.attachIconSvg}"></cb-icon>`,
9358
- () => b`<cb-icon part="user-input-attach-icon" svg="${ni}"></cb-icon>`
9480
+ () => p`<cb-icon part="user-input-attach-icon" svg="${h.setting.attachIconSvg}"></cb-icon>`,
9481
+ () => p`<cb-icon part="user-input-attach-icon" svg="${li}"></cb-icon>`
9359
9482
  )}
9360
9483
  <!-- select file input -->
9361
9484
  <input type="file" id="file" name="file" class="file-input" />
9362
9485
  </sl-button>
9363
9486
  `,
9364
- () => b``
9487
+ () => p``
9365
9488
  )}
9366
9489
  ${W(
9367
9490
  this.enableAudio,
9368
- () => b`
9491
+ () => p`
9369
9492
  <sl-button @click=${this._toggleAudioHandler} name="paperclip" label="Audio" size="small" class="audio-button" variant="text" circle>
9370
9493
  ${W(
9371
9494
  h.webAudioStarted,
9372
- () => b`<cb-icon svg="${fa}"></cb-icon>`,
9373
- () => b`<cb-icon svg="${ri}"></cb-icon>`
9495
+ () => p`<cb-icon svg="${ha}"></cb-icon>`,
9496
+ () => p`<cb-icon svg="${di}"></cb-icon>`
9374
9497
  )}
9375
9498
  </sl-button>
9376
9499
  `,
9377
- () => b``
9500
+ () => p``
9378
9501
  )}
9379
9502
  </div>
9380
9503
  </div>
@@ -9384,7 +9507,7 @@ let ve = class extends re {
9384
9507
  a.key === "Enter" && !a.shiftKey && this._sendHandler();
9385
9508
  }
9386
9509
  };
9387
- ve.styles = Cn;
9510
+ ve.styles = zn;
9388
9511
  Ie([
9389
9512
  x({ type: String, attribute: "placeholder" })
9390
9513
  ], ve.prototype, "placeholder", 2);
@@ -9415,7 +9538,7 @@ Ie([
9415
9538
  ve = Ie([
9416
9539
  J("cb-user-input")
9417
9540
  ], ve);
9418
- const Tn = K`
9541
+ const qn = K`
9419
9542
  ${ke}
9420
9543
 
9421
9544
  :host {
@@ -9473,11 +9596,11 @@ const Tn = K`
9473
9596
  border-radius: 40px;
9474
9597
  outline: none !important;
9475
9598
  }
9476
- `, In = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4"/></svg>', En = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M8 18c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1m4 4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v18c0 .55.45 1 1 1m-8-8c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1v2c0 .55.45 1 1 1m12 4c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1m3-7v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1"/></svg>', Oa = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="m4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"/></svg>';
9477
- var $n = Object.defineProperty, Pn = Object.getOwnPropertyDescriptor, Ee = (a, e, t, i) => {
9478
- for (var s = i > 1 ? void 0 : i ? Pn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9599
+ `, Dn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4"/></svg>', Fn = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M8 18c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1m4 4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v18c0 .55.45 1 1 1m-8-8c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1v2c0 .55.45 1 1 1m12 4c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1m3-7v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1"/></svg>', Da = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="m4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"/></svg>';
9600
+ var Hn = Object.defineProperty, jn = Object.getOwnPropertyDescriptor, Ee = (a, e, t, i) => {
9601
+ for (var s = i > 1 ? void 0 : i ? jn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9479
9602
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9480
- return i && s && $n(e, t, s), s;
9603
+ return i && s && Hn(e, t, s), s;
9481
9604
  };
9482
9605
  let we = class extends re {
9483
9606
  constructor() {
@@ -9520,7 +9643,7 @@ let we = class extends re {
9520
9643
  });
9521
9644
  }
9522
9645
  async _sendFileHandler() {
9523
- const a = await Xa(!1, h.setting.fileUploadEnabledExtensions);
9646
+ const a = await Ja(!1, h.setting.fileUploadEnabledExtensions);
9524
9647
  this.emit("message:send:file", {
9525
9648
  detail: {
9526
9649
  files: a
@@ -9552,28 +9675,28 @@ let we = class extends re {
9552
9675
  await h.toggleAudio();
9553
9676
  }
9554
9677
  getCtrlIconSvg() {
9555
- return this.value && this.value !== "" || h.webAudioStarted ? Oa : En;
9678
+ return this.value && this.value !== "" || h.webAudioStarted ? Da : Fn;
9556
9679
  }
9557
9680
  getCtrlClass() {
9558
9681
  return this.value && this.value !== "" ? "" : h.webAudioStarted || h.mediaStartAudioRequested ? "disabled" : "";
9559
9682
  }
9560
9683
  render() {
9561
- return b`
9684
+ return p`
9562
9685
  ${W(
9563
9686
  this.loading,
9564
- () => b`<sl-progress-bar style="--height: 2px;" indeterminate></sl-progress-bar>`,
9565
- () => b``
9687
+ () => p`<sl-progress-bar style="--height: 2px;" indeterminate></sl-progress-bar>`,
9688
+ () => p``
9566
9689
  )}
9567
9690
  <div class="cb-user-input-mm-wrapper" part="user-input-wrapper">
9568
9691
  <div class="cb-user-input-mm" part="user-input-inner">
9569
9692
  ${W(
9570
9693
  this.enableFileUpload,
9571
- () => b`
9694
+ () => p`
9572
9695
  <button type="button" class="circle-btn" part="upload-button" title="Upload" @click=${this._sendFileHandler}>
9573
- ${G(In)}
9696
+ ${G(Dn)}
9574
9697
  </button>
9575
9698
  `,
9576
- () => b``
9699
+ () => p``
9577
9700
  )}
9578
9701
  <sl-textarea
9579
9702
  part="user-input"
@@ -9597,11 +9720,11 @@ let we = class extends re {
9597
9720
  `;
9598
9721
  }
9599
9722
  renderOld() {
9600
- return b`
9723
+ return p`
9601
9724
  ${W(
9602
9725
  this.loading,
9603
- () => b`<sl-progress-bar style="--height: 2px;" indeterminate></sl-progress-bar>`,
9604
- () => b``
9726
+ () => p`<sl-progress-bar style="--height: 2px;" indeterminate></sl-progress-bar>`,
9727
+ () => p``
9605
9728
  )}
9606
9729
  <div class="cb-user-input-mm-wrapper" part="user-input-wrapper">
9607
9730
  <sl-textarea
@@ -9624,37 +9747,37 @@ let we = class extends re {
9624
9747
  <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>
9625
9748
  ${W(
9626
9749
  h.setting.sendIconSvg !== "",
9627
- () => b`<cb-icon part="user-input-send-icon" svg="${h.setting.sendIconSvg}"></cb-icon>`,
9628
- () => b`<cb-icon part="user-input-send-icon" svg="${si}"></cb-icon>`
9750
+ () => p`<cb-icon part="user-input-send-icon" svg="${h.setting.sendIconSvg}"></cb-icon>`,
9751
+ () => p`<cb-icon part="user-input-send-icon" svg="${ci}"></cb-icon>`
9629
9752
  )}
9630
9753
  </sl-button>
9631
9754
  ${W(
9632
9755
  this.enableFileUpload,
9633
- () => b`
9756
+ () => p`
9634
9757
  <sl-button @click=${this._sendFileHandler} name="paperclip" label="Attachment" size="small" class="paperclip-button" variant="text" circle>
9635
9758
  ${W(
9636
9759
  h.setting.attachIconSvg !== "",
9637
- () => b`<cb-icon part="user-input-attach-icon" svg="${h.setting.attachIconSvg}"></cb-icon>`,
9638
- () => b`<cb-icon part="user-input-attach-icon" svg="${ni}"></cb-icon>`
9760
+ () => p`<cb-icon part="user-input-attach-icon" svg="${h.setting.attachIconSvg}"></cb-icon>`,
9761
+ () => p`<cb-icon part="user-input-attach-icon" svg="${li}"></cb-icon>`
9639
9762
  )}
9640
9763
  <!-- select file input -->
9641
9764
  <input type="file" id="file" name="file" class="file-input" />
9642
9765
  </sl-button>
9643
9766
  `,
9644
- () => b``
9767
+ () => p``
9645
9768
  )}
9646
9769
  ${W(
9647
9770
  this.enableAudio,
9648
- () => b`
9771
+ () => p`
9649
9772
  <sl-button @click=${this._toggleAudioHandler} name="paperclip" label="Audio" size="small" class="audio-button" variant="text" circle>
9650
9773
  ${W(
9651
9774
  h.webAudioStarted,
9652
- () => b`<cb-icon svg="${fa}"></cb-icon>`,
9653
- () => b`<cb-icon svg="${ri}"></cb-icon>`
9775
+ () => p`<cb-icon svg="${ha}"></cb-icon>`,
9776
+ () => p`<cb-icon svg="${di}"></cb-icon>`
9654
9777
  )}
9655
9778
  </sl-button>
9656
9779
  `,
9657
- () => b``
9780
+ () => p``
9658
9781
  )}
9659
9782
  </div>
9660
9783
  </div>
@@ -9664,7 +9787,7 @@ let we = class extends re {
9664
9787
  a.key === "Enter" && !a.shiftKey && this._sendHandler();
9665
9788
  }
9666
9789
  };
9667
- we.styles = Tn;
9790
+ we.styles = qn;
9668
9791
  Ee([
9669
9792
  x({ type: String, attribute: "placeholder" })
9670
9793
  ], we.prototype, "placeholder", 2);
@@ -9695,7 +9818,7 @@ Ee([
9695
9818
  we = Ee([
9696
9819
  J("cb-user-input-mm")
9697
9820
  ], we);
9698
- const oi = '<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>', Ln = K`
9821
+ const fi = '<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>', Vn = K`
9699
9822
  ${ke}
9700
9823
 
9701
9824
  sl-dialog::part(base) {
@@ -9730,10 +9853,10 @@ const oi = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="c
9730
9853
  gap: 8px;
9731
9854
  }
9732
9855
  `;
9733
- var Rn = Object.defineProperty, zn = Object.getOwnPropertyDescriptor, Nt = (a, e, t, i) => {
9734
- for (var s = i > 1 ? void 0 : i ? zn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9856
+ var Un = Object.defineProperty, Nn = Object.getOwnPropertyDescriptor, Nt = (a, e, t, i) => {
9857
+ for (var s = i > 1 ? void 0 : i ? Nn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9735
9858
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9736
- return i && s && Rn(e, t, s), s;
9859
+ return i && s && Un(e, t, s), s;
9737
9860
  };
9738
9861
  let ct = class extends re {
9739
9862
  constructor() {
@@ -9743,7 +9866,7 @@ let ct = class extends re {
9743
9866
  this.emit("cancel");
9744
9867
  }
9745
9868
  render() {
9746
- return b` <sl-dialog
9869
+ return p` <sl-dialog
9747
9870
  label="Setting"
9748
9871
  class="cb-dialog"
9749
9872
  style="sl-dialog::part(base) { z-index: ${this.zindex}; }"
@@ -9753,7 +9876,7 @@ let ct = class extends re {
9753
9876
  >
9754
9877
  <header class="cb-header">
9755
9878
  <div class="cb-header__left">
9756
- ${this.label ? b`<span class="title">${this.label}</span>` : ""}
9879
+ ${this.label ? p`<span class="title">${this.label}</span>` : ""}
9757
9880
  </div>
9758
9881
  <sl-button
9759
9882
  @click=${this._settingCancelHandler}
@@ -9766,7 +9889,7 @@ let ct = class extends re {
9766
9889
  <cb-icon
9767
9890
  color="default"
9768
9891
  style="font-size: 1em;"
9769
- svg="${oi}"
9892
+ svg="${fi}"
9770
9893
  ></cb-icon>
9771
9894
  </sl-button>
9772
9895
  </header>
@@ -9779,7 +9902,7 @@ let ct = class extends re {
9779
9902
  </sl-dialog>`;
9780
9903
  }
9781
9904
  };
9782
- ct.styles = Ln;
9905
+ ct.styles = Vn;
9783
9906
  Nt([
9784
9907
  x({ type: Boolean })
9785
9908
  ], ct.prototype, "open", 2);
@@ -9792,17 +9915,17 @@ Nt([
9792
9915
  ct = Nt([
9793
9916
  J("cb-dialog")
9794
9917
  ], ct);
9795
- var On = Object.defineProperty, Bn = Object.getOwnPropertyDescriptor, ci = (a, e, t, i) => {
9796
- for (var s = i > 1 ? void 0 : i ? Bn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9918
+ var Wn = Object.defineProperty, Gn = Object.getOwnPropertyDescriptor, hi = (a, e, t, i) => {
9919
+ for (var s = i > 1 ? void 0 : i ? Gn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9797
9920
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9798
- return i && s && On(e, t, s), s;
9921
+ return i && s && Wn(e, t, s), s;
9799
9922
  };
9800
9923
  let Ht = class extends re {
9801
9924
  constructor() {
9802
9925
  super(...arguments), this.open = !1;
9803
9926
  }
9804
9927
  render() {
9805
- return b` <cb-dialog
9928
+ return p` <cb-dialog
9806
9929
  label="Confirm"
9807
9930
  class="cb-clear-message-dialog"
9808
9931
  ?open=${this.open}
@@ -9839,13 +9962,13 @@ Ht.styles = K`
9839
9962
  z-index: 1000;
9840
9963
  }
9841
9964
  `;
9842
- ci([
9965
+ hi([
9843
9966
  x({ type: Boolean })
9844
9967
  ], Ht.prototype, "open", 2);
9845
- Ht = ci([
9968
+ Ht = hi([
9846
9969
  J("cb-clear-message-dialog")
9847
9970
  ], Ht);
9848
- const qn = K`
9971
+ const Xn = K`
9849
9972
  :host {
9850
9973
  // width: 380px;
9851
9974
 
@@ -9905,17 +10028,17 @@ const qn = K`
9905
10028
  grid-column-start: 2;
9906
10029
  }
9907
10030
  `;
9908
- var Dn = Object.defineProperty, Fn = Object.getOwnPropertyDescriptor, dt = (a, e, t, i) => {
9909
- for (var s = i > 1 ? void 0 : i ? Fn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10031
+ var Yn = Object.defineProperty, Kn = Object.getOwnPropertyDescriptor, dt = (a, e, t, i) => {
10032
+ for (var s = i > 1 ? void 0 : i ? Kn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9910
10033
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9911
- return i && s && Dn(e, t, s), s;
10034
+ return i && s && Yn(e, t, s), s;
9912
10035
  };
9913
10036
  let Xe = class extends re {
9914
10037
  constructor() {
9915
10038
  super(...arguments), this.open = !1, this.clearMessageDialogOpen = !1, this.customRequest = !1;
9916
10039
  }
9917
10040
  render() {
9918
- return this.customRequest = this.setting.customRequest, b`
10041
+ return this.customRequest = this.setting.customRequest, p`
9919
10042
  <cb-dialog label="Setting" class="cb-dialog" ?open=${this.open} ?no-header=${!0} @cancel=${this._settingCancelHandler}>
9920
10043
  <form>
9921
10044
  <div class="form-item">
@@ -9979,7 +10102,7 @@ let Xe = class extends re {
9979
10102
  `;
9980
10103
  }
9981
10104
  renderInternalServices() {
9982
- return b`
10105
+ return p`
9983
10106
  <div class="form-item">
9984
10107
  <label class="label">Service</label>
9985
10108
  <sl-radio-group name="openai" value="openai" size="small">
@@ -10029,7 +10152,7 @@ let Xe = class extends re {
10029
10152
  });
10030
10153
  }
10031
10154
  };
10032
- Xe.styles = qn;
10155
+ Xe.styles = Xn;
10033
10156
  dt([
10034
10157
  x({ type: Boolean })
10035
10158
  ], Xe.prototype, "open", 2);
@@ -10048,7 +10171,7 @@ dt([
10048
10171
  Xe = dt([
10049
10172
  J("cb-setting")
10050
10173
  ], Xe);
10051
- const Hn = K`
10174
+ const Jn = K`
10052
10175
  ${ke}
10053
10176
  :host {
10054
10177
  --primary-color: var(--sl-color-primary-600);
@@ -10166,10 +10289,10 @@ const Hn = K`
10166
10289
  margin: 4px 4px 0px 0px;
10167
10290
  }
10168
10291
  `;
10169
- var jn = Object.defineProperty, Vn = Object.getOwnPropertyDescriptor, li = (a, e, t, i) => {
10170
- for (var s = i > 1 ? void 0 : i ? Vn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10292
+ var Zn = Object.defineProperty, Qn = Object.getOwnPropertyDescriptor, ui = (a, e, t, i) => {
10293
+ for (var s = i > 1 ? void 0 : i ? Qn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10171
10294
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
10172
- return i && s && jn(e, t, s), s;
10295
+ return i && s && Zn(e, t, s), s;
10173
10296
  };
10174
10297
  let jt = class extends re {
10175
10298
  constructor() {
@@ -10203,34 +10326,34 @@ let jt = class extends re {
10203
10326
  return a = h.appearanceAnchorBadgeVariant, a;
10204
10327
  }
10205
10328
  renderPopupLogo() {
10206
- return h.setting.popupLogoUrl !== "" ? b`<img class="cb-engage-popup-img" src="${h.setting.popupLogoUrl}" />` : h.setting.popupLogoSvg !== "" ? b`<div class="cb-engage-popup-logo">${pe`${G(h.setting.popupLogoSvg)}`}</div>` : h.setting.logoUrl !== "" ? b`<img class="cb-engage-popup-img" src="${h.setting.logoUrl}" />` : h.setting.logoSvg !== "" ? b`<div class="cb-engage-popup-logo">${pe`${G(h.setting.logoSvg)}`}</div>` : null;
10329
+ return h.setting.popupLogoUrl !== "" ? p`<img class="cb-engage-popup-img" src="${h.setting.popupLogoUrl}" />` : h.setting.popupLogoSvg !== "" ? p`<div class="cb-engage-popup-logo">${pe`${G(h.setting.popupLogoSvg)}`}</div>` : h.setting.logoUrl !== "" ? p`<img class="cb-engage-popup-img" src="${h.setting.logoUrl}" />` : h.setting.logoSvg !== "" ? p`<div class="cb-engage-popup-logo">${pe`${G(h.setting.logoSvg)}`}</div>` : null;
10207
10330
  }
10208
10331
  async _getEngageMessageHtml(a) {
10209
10332
  return Ft(xt(a));
10210
10333
  }
10211
10334
  render() {
10212
- return b`
10335
+ return p`
10213
10336
  <div class="cb-anchor ${this.open ? "open" : ""}" part="anchor" @click=${this._clickHandler.bind(this)}>
10214
10337
  <sl-popup placement="${this.getPopupPlacement()}" distance="16" ?active="${h.engage && !h.open}">
10215
10338
  <sl-button slot="anchor" label="Start" size="large" variant="primary" class="anchor-button" circle>
10216
10339
  ${W(
10217
10340
  this.open,
10218
- () => b`<div class="cb-anchor-icon" part="anchor-icon">${pe`${G(h.setting.anchorCloseSvg)}`}</div>`,
10219
- () => b`<div class="cb-anchor-icon" part="anchor-icon">${pe`${G(h.setting.anchorOpenSvg)}`}</div>`
10341
+ () => p`<div class="cb-anchor-icon" part="anchor-icon">${pe`${G(h.setting.anchorCloseSvg)}`}</div>`,
10342
+ () => p`<div class="cb-anchor-icon" part="anchor-icon">${pe`${G(h.setting.anchorOpenSvg)}`}</div>`
10220
10343
  )}
10221
10344
  ${W(
10222
10345
  !this.open && h.unreadMessages > 0,
10223
- () => b`<sl-badge part="anchor-badge" class="cb-anchor-badge" variant="${this.getBadgeVariant()}" pill>${h.unreadMessages}</sl-badge>`,
10346
+ () => p`<sl-badge part="anchor-badge" class="cb-anchor-badge" variant="${this.getBadgeVariant()}" pill>${h.unreadMessages}</sl-badge>`,
10224
10347
  () => null
10225
10348
  )}
10226
10349
  </sl-button>
10227
10350
  <div class="cb-engage-popup">
10228
- <div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${pe`${G(oi)}`}</div>
10351
+ <div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${pe`${G(fi)}`}</div>
10229
10352
  <div class="cb-engage-popup-content">
10230
10353
  ${this.renderPopupLogo()}
10231
10354
  <div class="cb-engage-popup-text">
10232
10355
  ${bt(
10233
- this._getEngageMessageHtml(h.setting.engageMessage).then((a) => b`${a}`)
10356
+ this._getEngageMessageHtml(h.setting.engageMessage).then((a) => p`${a}`)
10234
10357
  )}
10235
10358
  </div>
10236
10359
  </div>
@@ -10240,41 +10363,41 @@ let jt = class extends re {
10240
10363
  `;
10241
10364
  }
10242
10365
  };
10243
- jt.styles = Hn;
10244
- li([
10366
+ jt.styles = Jn;
10367
+ ui([
10245
10368
  x({ type: Boolean })
10246
10369
  ], jt.prototype, "open", 2);
10247
- jt = li([
10370
+ jt = ui([
10248
10371
  J("cb-anchor")
10249
10372
  ], jt);
10250
- const Un = K`
10373
+ const er = K`
10251
10374
  ${ke}
10252
- `, Ba = '<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>', Nn = '<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>', Wn = '<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>', Gn = '<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>';
10253
- var Xn = Object.defineProperty, Yn = Object.getOwnPropertyDescriptor, di = (a, e, t, i) => {
10254
- for (var s = i > 1 ? void 0 : i ? Yn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10375
+ `, Fa = '<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>', tr = '<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>', ar = '<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>', ir = '<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>';
10376
+ var sr = Object.defineProperty, nr = Object.getOwnPropertyDescriptor, bi = (a, e, t, i) => {
10377
+ for (var s = i > 1 ? void 0 : i ? nr(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10255
10378
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
10256
- return i && s && Xn(e, t, s), s;
10379
+ return i && s && sr(e, t, s), s;
10257
10380
  };
10258
- const qa = {
10381
+ const Ha = {
10259
10382
  error: {
10260
10383
  variant: "danger",
10261
- icon: Ba
10384
+ icon: Fa
10262
10385
  },
10263
10386
  danger: {
10264
10387
  variant: "danger",
10265
- icon: Ba
10388
+ icon: Fa
10266
10389
  },
10267
10390
  warning: {
10268
10391
  variant: "warning",
10269
- icon: Nn
10392
+ icon: tr
10270
10393
  },
10271
10394
  success: {
10272
10395
  variant: "success",
10273
- icon: Wn
10396
+ icon: ar
10274
10397
  },
10275
10398
  info: {
10276
10399
  variant: "primary",
10277
- icon: Gn
10400
+ icon: ir
10278
10401
  }
10279
10402
  };
10280
10403
  let Vt = class extends re {
@@ -10282,25 +10405,25 @@ let Vt = class extends re {
10282
10405
  super(...arguments), this.status = "info";
10283
10406
  }
10284
10407
  render() {
10285
- const { variant: a, icon: e } = qa[this.status] || qa.info;
10286
- return b`<cb-icon svg=${e} color="${a}"></cb-icon>`;
10408
+ const { variant: a, icon: e } = Ha[this.status] || Ha.info;
10409
+ return p`<cb-icon svg=${e} color="${a}"></cb-icon>`;
10287
10410
  }
10288
10411
  };
10289
- Vt.styles = Ga;
10290
- di([
10412
+ Vt.styles = Ka;
10413
+ bi([
10291
10414
  x({ type: String })
10292
10415
  ], Vt.prototype, "status", 2);
10293
- Vt = di([
10416
+ Vt = bi([
10294
10417
  J("cb-status-icon")
10295
10418
  ], Vt);
10296
- var Kn = Object.getOwnPropertyDescriptor, Jn = (a, e, t, i) => {
10297
- for (var s = i > 1 ? void 0 : i ? Kn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10419
+ var rr = Object.getOwnPropertyDescriptor, or = (a, e, t, i) => {
10420
+ for (var s = i > 1 ? void 0 : i ? rr(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10298
10421
  (o = a[r]) && (s = o(s) || s);
10299
10422
  return s;
10300
10423
  };
10301
- let ta = class extends re {
10424
+ let aa = class extends re {
10302
10425
  render() {
10303
- return b` <sl-alert variant="danger" open>
10426
+ return p` <sl-alert variant="danger" open>
10304
10427
  <cb-status-icon status="error" slot="icon"></cb-status-icon>
10305
10428
  Please config openai api key in the settings.
10306
10429
  <span
@@ -10314,11 +10437,11 @@ let ta = class extends re {
10314
10437
  this.emit("setting:show");
10315
10438
  }
10316
10439
  };
10317
- ta.styles = Un;
10318
- ta = Jn([
10440
+ aa.styles = er;
10441
+ aa = or([
10319
10442
  J("cb-auth-alert")
10320
- ], ta);
10321
- const Zn = K`
10443
+ ], aa);
10444
+ const cr = K`
10322
10445
  sl-dialog::part(base) {
10323
10446
  z-index: 1000;
10324
10447
  }
@@ -10402,32 +10525,32 @@ const Zn = K`
10402
10525
  filter: alpha(opacity=80);
10403
10526
  }
10404
10527
  `;
10405
- var Qn = Object.defineProperty, er = Object.getOwnPropertyDescriptor, ft = (a, e, t, i) => {
10406
- for (var s = i > 1 ? void 0 : i ? er(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10528
+ var lr = Object.defineProperty, dr = Object.getOwnPropertyDescriptor, ft = (a, e, t, i) => {
10529
+ for (var s = i > 1 ? void 0 : i ? dr(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10407
10530
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
10408
- return i && s && Qn(e, t, s), s;
10531
+ return i && s && lr(e, t, s), s;
10409
10532
  };
10410
- const Da = Ke.noConflict(), tr = '<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>';
10533
+ const ja = Ke.noConflict(), fr = '<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>';
10411
10534
  let Ye = class extends re {
10412
10535
  constructor() {
10413
10536
  super(...arguments), this.store = new it(this, h), this.zindex = 100;
10414
10537
  }
10415
10538
  connectedCallback() {
10416
- super.connectedCallback(), Da.info("connectedCallback");
10539
+ super.connectedCallback(), ja.info("connectedCallback");
10417
10540
  }
10418
10541
  firstUpdated() {
10419
- this._rating.getSymbol = () => tr;
10542
+ this._rating.getSymbol = () => fr;
10420
10543
  }
10421
10544
  _stateEventHandler(a) {
10422
10545
  const e = a.detail, t = e?.type || null;
10423
- Da.info(`FEEDBACK: stateEvent: ${t}`, e);
10546
+ ja.info(`FEEDBACK: stateEvent: ${t}`, e);
10424
10547
  }
10425
10548
  _cancelHandler() {
10426
10549
  h.feedback && (console.log("Feedback dialog cancelled"), h.feedback = !1);
10427
10550
  }
10428
10551
  // todo render empty if feedback is disabled
10429
10552
  render() {
10430
- return b` <sl-dialog ?no-header=${!0} ?open=${h.feedback} @sl-hide=${this._cancelHandler} class="cb-feedback-dialog">
10553
+ return p` <sl-dialog ?no-header=${!0} ?open=${h.feedback} @sl-hide=${this._cancelHandler} class="cb-feedback-dialog">
10431
10554
  <div style="">
10432
10555
  <h2>Please share your feedback</h2>
10433
10556
  <div class="cb-feedback-messages-wrapper">
@@ -10441,7 +10564,7 @@ let Ye = class extends re {
10441
10564
  h.feedbackScore = 0;
10442
10565
  }}"
10443
10566
  >
10444
- ${pe`${G(ii)}`}
10567
+ ${pe`${G(oi)}`}
10445
10568
  </div>
10446
10569
  <sl-rating id="cb-feedback-rating-el" class="cb-feedback-rating" @sl-change="${this._ratingChangeHandler}" label="Rating" precision="1" .value=${h.feedbackScore}></sl-rating>
10447
10570
  <div
@@ -10450,7 +10573,7 @@ let Ye = class extends re {
10450
10573
  h.feedbackScore = 5;
10451
10574
  }}"
10452
10575
  >
10453
- ${pe`${G(ai)}`}
10576
+ ${pe`${G(ri)}`}
10454
10577
  </div>
10455
10578
  </div>
10456
10579
  <div style="display: flex">
@@ -10471,7 +10594,7 @@ let Ye = class extends re {
10471
10594
  this._comments.value = "", await h.submitFeedback(a, e, t);
10472
10595
  }
10473
10596
  };
10474
- Ye.styles = Zn;
10597
+ Ye.styles = cr;
10475
10598
  ft([
10476
10599
  x({ type: Number })
10477
10600
  ], Ye.prototype, "zindex", 2);
@@ -10490,7 +10613,7 @@ ft([
10490
10613
  Ye = ft([
10491
10614
  J("cb-dialog-feedback")
10492
10615
  ], Ye);
10493
- const ar = K`
10616
+ const hr = K`
10494
10617
  ${ke}
10495
10618
  :host {
10496
10619
  display: block;
@@ -10573,7 +10696,7 @@ const ar = K`
10573
10696
  display: inline;
10574
10697
  }
10575
10698
  `;
10576
- class ir extends HTMLElement {
10699
+ class ur extends HTMLElement {
10577
10700
  static get observedAttributes() {
10578
10701
  return ["audio-selector", "max-additional-height", "disabled", "fft-size"];
10579
10702
  }
@@ -10796,9 +10919,9 @@ class ir extends HTMLElement {
10796
10919
  this._animationId && (cancelAnimationFrame(this._animationId), this._animationId = null);
10797
10920
  }
10798
10921
  }
10799
- customElements.get("volume-visualizer") || customElements.define("volume-visualizer", ir);
10800
- const ha = 1, Fa = 2;
10801
- class fi extends HTMLElement {
10922
+ customElements.get("volume-visualizer") || customElements.define("volume-visualizer", ur);
10923
+ const ua = 1, Va = 2;
10924
+ class pi extends HTMLElement {
10802
10925
  constructor() {
10803
10926
  super(), this.attachShadow({ mode: "open" }), this._analyserInput = null, this._dataArrayInput = null, this._analyserOutput = null, this._dataArrayOutput = null, this._thinking = !1, this._muted = !1, this._fftSize = 512, this._smoothingTimeConstant = 0.55, this._canvas = null, this._context = null, this._lastTime = 0, this._render();
10804
10927
  }
@@ -10832,12 +10955,12 @@ class fi extends HTMLElement {
10832
10955
  const e = (i) => i.some((s) => s > 10), t = (i) => {
10833
10956
  const r = [];
10834
10957
  for (let o = 0; o < i.length; o += 8) {
10835
- const f = i.slice(o, o + 8), p = f.reduce((v, k) => v + k, 0) / f.length;
10836
- r.push(p / 255);
10958
+ const f = i.slice(o, o + 8), b = f.reduce((v, k) => v + k, 0) / f.length;
10959
+ r.push(b / 255);
10837
10960
  }
10838
10961
  return r;
10839
10962
  };
10840
- return this._analyserOutput && (this._analyserOutput.getByteFrequencyData(this._dataArrayOutput), e(this._dataArrayOutput)) ? { data: t(this._dataArrayOutput), source: Fa, hasActivity: !0 } : this._analyserInput && !this._muted && (this._analyserInput.getByteFrequencyData(this._dataArrayInput), e(this._dataArrayInput)) ? { data: t(this._dataArrayInput), source: ha, hasActivity: !0 } : this._analyserOutput ? { data: t(this._dataArrayOutput), source: Fa, hasActivity: !1 } : { data: [], source: null, hasActivity: !1 };
10963
+ return this._analyserOutput && (this._analyserOutput.getByteFrequencyData(this._dataArrayOutput), e(this._dataArrayOutput)) ? { data: t(this._dataArrayOutput), source: Va, hasActivity: !0 } : this._analyserInput && !this._muted && (this._analyserInput.getByteFrequencyData(this._dataArrayInput), e(this._dataArrayInput)) ? { data: t(this._dataArrayInput), source: ua, hasActivity: !0 } : this._analyserOutput ? { data: t(this._dataArrayOutput), source: Va, hasActivity: !1 } : { data: [], source: null, hasActivity: !1 };
10841
10964
  }
10842
10965
  _render() {
10843
10966
  const e = `
@@ -10880,7 +11003,7 @@ class fi extends HTMLElement {
10880
11003
  this._stop(), this._analyserInput = null, this._analyserOutput = null;
10881
11004
  }
10882
11005
  }
10883
- class sr extends fi {
11006
+ class br extends pi {
10884
11007
  constructor() {
10885
11008
  super(), this._ribbons = [], this._lastTime = 0, this._ribbons.push(
10886
11009
  new $t(
@@ -10924,7 +11047,7 @@ class sr extends fi {
10924
11047
  f.update(s, i, this._thinking), f.draw(e, t, r, this._thinking);
10925
11048
  }
10926
11049
  }
10927
- customElements.get("volume-visualizer-liquid") || customElements.define("volume-visualizer-liquid", sr);
11050
+ customElements.get("volume-visualizer-liquid") || customElements.define("volume-visualizer-liquid", br);
10928
11051
  class $t {
10929
11052
  constructor(e, t, i, s) {
10930
11053
  this.inputColorRGB = t, this.outputColorRGB = i, this.currentColorRGB = { ...i }, this.options = s, this.segments = e, this.renderPoints = Array(e).fill(0), this.targetPoints = Array(e).fill(0), this.velocity = Array(e).fill(0), this.springStrength = s.springStrength || 10, this.damping = s.damping || 0.5, this.phase = s.phase || 0, this.scale = s.scale || 1, this.thinkingPhase = 0;
@@ -10951,15 +11074,15 @@ class $t {
10951
11074
  if (v === 0)
10952
11075
  e.moveTo(k, w);
10953
11076
  else {
10954
- const _ = (v - 1) * o, P = this.renderPoints[v - 1] * i * 0.8, E = _ + o * 0.5, M = P, L = k - o * 0.5, C = w;
10955
- e.bezierCurveTo(E, M, L, C, k, w);
11077
+ const _ = (v - 1) * o, P = this.renderPoints[v - 1] * i * 0.8, E = _ + o * 0.5, T = P, L = k - o * 0.5, C = w;
11078
+ e.bezierCurveTo(E, T, L, C, k, w);
10956
11079
  }
10957
11080
  }
10958
- e.lineTo(t, 0), e.lineTo(0, 0), s === ha && !r ? this.currentColorRGB = this._lerpColor(this.currentColorRGB, this.inputColorRGB, 0.02) : this.currentColorRGB = this._lerpColor(this.currentColorRGB, this.outputColorRGB, 0.02);
11081
+ e.lineTo(t, 0), e.lineTo(0, 0), s === ua && !r ? this.currentColorRGB = this._lerpColor(this.currentColorRGB, this.inputColorRGB, 0.02) : this.currentColorRGB = this._lerpColor(this.currentColorRGB, this.outputColorRGB, 0.02);
10959
11082
  const f = e.createLinearGradient(0, 0, 0, i);
10960
11083
  f.addColorStop(0, this._rgbToString(this.currentColorRGB, 0.5)), f.addColorStop(0.5, this._rgbToString(this.currentColorRGB, 0.75)), f.addColorStop(1, this._rgbToString(this.currentColorRGB, 0.25));
10961
- const p = e.createLinearGradient(0, 0, t, 0);
10962
- p.addColorStop(0.4, "rgba(255, 255, 255, 0)"), p.addColorStop(0.7, "#FFFFFF"), e.fillStyle = f, e.fill(), e.globalCompositeOperation = "source-atop", e.fillStyle = p, e.fill(), e.globalCompositeOperation = "source-over";
11084
+ const b = e.createLinearGradient(0, 0, t, 0);
11085
+ b.addColorStop(0.4, "rgba(255, 255, 255, 0)"), b.addColorStop(0.7, "#FFFFFF"), e.fillStyle = f, e.fill(), e.globalCompositeOperation = "source-atop", e.fillStyle = b, e.fill(), e.globalCompositeOperation = "source-over";
10963
11086
  }
10964
11087
  update(e, t, i) {
10965
11088
  if (e.length !== 0) {
@@ -10972,7 +11095,7 @@ class $t {
10972
11095
  } else {
10973
11096
  const s = e.length / this.segments;
10974
11097
  for (let r = 0; r < this.segments; r++) {
10975
- const o = r / this.segments, f = Math.sin(o * 2 * Math.PI + this.phase), p = Math.min(Math.floor(r * s), e.length - 1), v = Math.min(p + 1, e.length - 1), k = r * s - p, _ = (e[p] * (1 - k) + e[v] * k) * (1 + f * 2);
11098
+ const o = r / this.segments, f = Math.sin(o * 2 * Math.PI + this.phase), b = Math.min(Math.floor(r * s), e.length - 1), v = Math.min(b + 1, e.length - 1), k = r * s - b, _ = (e[b] * (1 - k) + e[v] * k) * (1 + f * 2);
10976
11099
  this.targetPoints[r] = _ * this.scale;
10977
11100
  }
10978
11101
  }
@@ -10983,7 +11106,7 @@ class $t {
10983
11106
  }
10984
11107
  }
10985
11108
  }
10986
- class nr extends fi {
11109
+ class pr extends pi {
10987
11110
  constructor() {
10988
11111
  super(), this._numBars = 32, this._renderHeights = Array(this._numBars).fill(0), this._targetHeights = Array(this._numBars).fill(0), this._velocity = Array(this._numBars).fill(0), this._springStrength = 25, this._damping = 0.75, this._inputColor = { r: 255, g: 126, b: 103 }, this._outputColor = { r: 99, g: 193, b: 208 }, this._currentColor = { ...this._outputColor }, this._thinkingPhase = 0;
10989
11112
  }
@@ -11000,7 +11123,7 @@ class nr extends fi {
11000
11123
  _draw(e, t, i) {
11001
11124
  e.clearRect(0, 0, t.width, t.height);
11002
11125
  const { data: s, source: r, hasActivity: o } = this._getAudioFrequencyData();
11003
- if (r === ha && !this._thinking ? this._currentColor = this._lerpColor(this._currentColor, this._inputColor, 0.1) : this._currentColor = this._lerpColor(this._currentColor, this._outputColor, 0.1), this._thinking) {
11126
+ if (r === ua && !this._thinking ? this._currentColor = this._lerpColor(this._currentColor, this._inputColor, 0.1) : this._currentColor = this._lerpColor(this._currentColor, this._outputColor, 0.1), this._thinking) {
11004
11127
  this._thinkingPhase -= i * 4;
11005
11128
  for (let w = 0; w < this._numBars; w++) {
11006
11129
  const _ = w / this._numBars;
@@ -11018,34 +11141,34 @@ class nr extends fi {
11018
11141
  const P = (this._targetHeights[w] - this._renderHeights[w]) * this._springStrength;
11019
11142
  this._velocity[w] += P * i, this._velocity[w] *= this._damping, this._renderHeights[w] += this._velocity[w];
11020
11143
  }
11021
- const f = Math.max(2, t.width / (this._numBars * 2) * 0.8), p = t.width / 2, v = t.height / 2;
11144
+ const f = Math.max(2, t.width / (this._numBars * 2) * 0.8), b = t.width / 2, v = t.height / 2;
11022
11145
  e.save();
11023
11146
  const k = e.createLinearGradient(0, 0, 0, t.height);
11024
11147
  k.addColorStop(0, this._rgbToString(this._currentColor, 0.8)), k.addColorStop(1, this._rgbToString(this._currentColor, 0.2)), e.fillStyle = k;
11025
11148
  for (let w = 0; w < this._numBars; w++) {
11026
- const _ = this._renderHeights[w] * t.height * 0.9, P = p - (w + 1) * (f * 1.2);
11149
+ const _ = this._renderHeights[w] * t.height * 0.9, P = b - (w + 1) * (f * 1.2);
11027
11150
  e.fillRect(P, v - _ / 2, f, _);
11028
- const E = p + w * (f * 1.2);
11151
+ const E = b + w * (f * 1.2);
11029
11152
  e.fillRect(E, v - _ / 2, f, _);
11030
11153
  }
11031
11154
  e.restore();
11032
11155
  }
11033
11156
  }
11034
- customElements.get("volume-visualizer-bars") || customElements.define("volume-visualizer-bars", nr);
11035
- const rr = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28m-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3c.22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52c-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21L21 19.73z"/></svg>';
11036
- var or = Object.getOwnPropertyDescriptor, cr = (a, e, t, i) => {
11037
- for (var s = i > 1 ? void 0 : i ? or(e, t) : e, r = a.length - 1, o; r >= 0; r--)
11157
+ customElements.get("volume-visualizer-bars") || customElements.define("volume-visualizer-bars", pr);
11158
+ const gr = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28m-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3c.22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52c-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21L21 19.73z"/></svg>';
11159
+ var mr = Object.getOwnPropertyDescriptor, yr = (a, e, t, i) => {
11160
+ for (var s = i > 1 ? void 0 : i ? mr(e, t) : e, r = a.length - 1, o; r >= 0; r--)
11038
11161
  (o = a[r]) && (s = o(s) || s);
11039
11162
  return s;
11040
11163
  };
11041
11164
  const ut = Ke.noConflict();
11042
11165
  ut.setLevel("info");
11043
- let aa = class extends re {
11166
+ let ia = class extends re {
11044
11167
  constructor() {
11045
11168
  super(...arguments), this.store = new it(this, h), this.unsubscribeTypingActive = h.subscribe(
11046
11169
  this._handleTypingActiveChanged.bind(this),
11047
11170
  ["typingActive"]
11048
- ), this.volumeVisualizerRef = Hi(), this.volumeVisualizerInitialized = !1;
11171
+ ), this.volumeVisualizerRef = Ni(), this.volumeVisualizerInitialized = !1;
11049
11172
  }
11050
11173
  /*
11051
11174
  createRenderRoot() {
@@ -11069,22 +11192,22 @@ let aa = class extends re {
11069
11192
  </header>`;
11070
11193
  }*/
11071
11194
  render() {
11072
- return h.webAudioStarted ? b`<div class="cb-audio-controls-wrapper" part="audio-controls-wrapper">
11195
+ return h.webAudioStarted ? p`<div class="cb-audio-controls-wrapper" part="audio-controls-wrapper">
11073
11196
  <div class="cb-audio-controls" part="audio-controls" @click=${this._toggleMute}>
11074
11197
  ${W(
11075
11198
  !0,
11076
- () => b`
11199
+ () => p`
11077
11200
  <button type="button" part="${h.webAudioMuted ? "audio-unmute-button" : "audio-mute-button"}" class="circle-btn ${h.webAudioMuted ? "danger" : "clear"}" title="${h.webAudioMuted ? "Unmute" : "Mute"}" @click=${this._toggleMute}>
11078
- ${G(rr)}
11201
+ ${G(gr)}
11079
11202
  </button>
11080
11203
  `,
11081
- () => b``
11204
+ () => p``
11082
11205
  )}
11083
11206
  <div class="cb-audio-controls-viz" part="audio-controls-viz">
11084
11207
  ${this.renderVisualizer()}
11085
11208
  </div>
11086
11209
  <button type="button" part="audio-end-button" class="circle-btn clear" title="End" @click=${this._toggleHangup}>
11087
- ${G(fa)}
11210
+ ${G(ha)}
11088
11211
  </button>
11089
11212
  </div>
11090
11213
  </div>` : null;
@@ -11092,19 +11215,19 @@ let aa = class extends re {
11092
11215
  renderVisualizer() {
11093
11216
  switch (h.setting.botAdvancedSettings?.audioVisualizerName || "bars") {
11094
11217
  case "default":
11095
- return b`
11218
+ return p`
11096
11219
  <volume-visualizer ${Tt(this.volumeVisualizerRef)}></volume-visualizer>
11097
11220
  `;
11098
11221
  case "liquid":
11099
- return b`
11222
+ return p`
11100
11223
  <volume-visualizer-liquid ${Tt(this.volumeVisualizerRef)}></volume-visualizer-liquid>
11101
11224
  `;
11102
11225
  case "bars":
11103
- return b`
11226
+ return p`
11104
11227
  <volume-visualizer-bars ${Tt(this.volumeVisualizerRef)}></volume-visualizer-bars>
11105
11228
  `;
11106
11229
  default:
11107
- return b`
11230
+ return p`
11108
11231
  <volume-visualizer ${Tt(this.volumeVisualizerRef)}></volume-visualizer>
11109
11232
  `;
11110
11233
  }
@@ -11140,11 +11263,11 @@ let aa = class extends re {
11140
11263
  h.webAudioStarted && (ut.info(`Typing state changed: ${e}`), this.volumeVisualizerRef.value && this.volumeVisualizerRef.value.setThinking(e));
11141
11264
  }
11142
11265
  };
11143
- aa.styles = ar;
11144
- aa = cr([
11266
+ ia.styles = hr;
11267
+ ia = yr([
11145
11268
  J("cb-audio-controls")
11146
- ], aa);
11147
- class ia extends Error {
11269
+ ], ia);
11270
+ class sa extends Error {
11148
11271
  response;
11149
11272
  request;
11150
11273
  options;
@@ -11153,7 +11276,7 @@ class ia extends Error {
11153
11276
  super(`Request failed with ${f}: ${t.method} ${t.url}`), this.name = "HTTPError", this.response = e, this.request = t, this.options = i;
11154
11277
  }
11155
11278
  }
11156
- class hi extends Error {
11279
+ class gi extends Error {
11157
11280
  name = "NonError";
11158
11281
  value;
11159
11282
  constructor(e) {
@@ -11165,17 +11288,17 @@ class hi extends Error {
11165
11288
  super(t), this.value = e;
11166
11289
  }
11167
11290
  }
11168
- class Kt extends Error {
11291
+ class Jt extends Error {
11169
11292
  name = "ForceRetryError";
11170
11293
  customDelay;
11171
11294
  code;
11172
11295
  customRequest;
11173
11296
  constructor(e) {
11174
- const t = e?.cause ? e.cause instanceof Error ? e.cause : new hi(e.cause) : void 0;
11297
+ const t = e?.cause ? e.cause instanceof Error ? e.cause : new gi(e.cause) : void 0;
11175
11298
  super(e?.code ? `Forced retry: ${e.code}` : "Forced retry", t ? { cause: t } : void 0), this.customDelay = e?.delay, this.code = e?.code, this.customRequest = e?.request;
11176
11299
  }
11177
11300
  }
11178
- const Ha = (() => {
11301
+ const Ua = (() => {
11179
11302
  let a = !1, e = !1;
11180
11303
  const t = typeof globalThis.ReadableStream == "function", i = typeof globalThis.Request == "function";
11181
11304
  if (t && i)
@@ -11194,7 +11317,7 @@ const Ha = (() => {
11194
11317
  throw s;
11195
11318
  }
11196
11319
  return a && !e;
11197
- })(), lr = typeof globalThis.AbortController == "function", ui = typeof globalThis.AbortSignal == "function" && typeof globalThis.AbortSignal.any == "function", dr = typeof globalThis.ReadableStream == "function", fr = typeof globalThis.FormData == "function", bi = ["get", "post", "put", "patch", "head", "delete"], hr = {
11320
+ })(), vr = typeof globalThis.AbortController == "function", mi = typeof globalThis.AbortSignal == "function" && typeof globalThis.AbortSignal.any == "function", wr = typeof globalThis.ReadableStream == "function", xr = typeof globalThis.FormData == "function", yi = ["get", "post", "put", "patch", "head", "delete"], kr = {
11198
11321
  json: "application/json",
11199
11322
  text: "text/*",
11200
11323
  formData: "multipart/form-data",
@@ -11203,14 +11326,14 @@ const Ha = (() => {
11203
11326
  // Supported in modern Fetch implementations (for example, browsers and recent Node.js/undici).
11204
11327
  // We still feature-check at runtime before exposing the shortcut.
11205
11328
  bytes: "*/*"
11206
- }, Jt = 2147483647, ur = new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length, pi = Symbol("stop");
11207
- class gi {
11329
+ }, Zt = 2147483647, _r = new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length, vi = Symbol("stop");
11330
+ class wi {
11208
11331
  options;
11209
11332
  constructor(e) {
11210
11333
  this.options = e;
11211
11334
  }
11212
11335
  }
11213
- const br = (a) => new gi(a), pr = {
11336
+ const Sr = (a) => new wi(a), Cr = {
11214
11337
  json: !0,
11215
11338
  parseJson: !0,
11216
11339
  stringifyJson: !0,
@@ -11224,10 +11347,10 @@ const br = (a) => new gi(a), pr = {
11224
11347
  onUploadProgress: !0,
11225
11348
  fetch: !0,
11226
11349
  context: !0
11227
- }, gr = {
11350
+ }, Ar = {
11228
11351
  next: !0
11229
11352
  // Next.js cache revalidation (revalidate, tags)
11230
- }, mr = {
11353
+ }, Mr = {
11231
11354
  method: !0,
11232
11355
  headers: !0,
11233
11356
  body: !0,
@@ -11242,13 +11365,13 @@ const br = (a) => new gi(a), pr = {
11242
11365
  signal: !0,
11243
11366
  window: !0,
11244
11367
  duplex: !0
11245
- }, yr = (a) => {
11368
+ }, Tr = (a) => {
11246
11369
  if (!a)
11247
11370
  return 0;
11248
11371
  if (a instanceof FormData) {
11249
11372
  let e = 0;
11250
11373
  for (const [t, i] of a)
11251
- e += ur, e += new TextEncoder().encode(`Content-Disposition: form-data; name="${t}"`).length, e += typeof i == "string" ? new TextEncoder().encode(i).length : i.size;
11374
+ e += _r, e += new TextEncoder().encode(`Content-Disposition: form-data; name="${t}"`).length, e += typeof i == "string" ? new TextEncoder().encode(i).length : i.size;
11252
11375
  return e;
11253
11376
  }
11254
11377
  if (a instanceof Blob)
@@ -11269,7 +11392,7 @@ const br = (a) => new gi(a), pr = {
11269
11392
  return 0;
11270
11393
  }
11271
11394
  return 0;
11272
- }, mi = (a, e, t) => {
11395
+ }, xi = (a, e, t) => {
11273
11396
  let i, s = 0;
11274
11397
  return a.pipeThrough(new TransformStream({
11275
11398
  transform(r, o) {
@@ -11284,7 +11407,7 @@ const br = (a) => new gi(a), pr = {
11284
11407
  i && (s += i.byteLength, t?.({ percent: 1, totalBytes: Math.max(e, s), transferredBytes: s }, i));
11285
11408
  }
11286
11409
  }));
11287
- }, vr = (a, e) => {
11410
+ }, Ir = (a, e) => {
11288
11411
  if (!a.body)
11289
11412
  return a;
11290
11413
  if (a.status === 204)
@@ -11294,40 +11417,40 @@ const br = (a) => new gi(a), pr = {
11294
11417
  headers: a.headers
11295
11418
  });
11296
11419
  const t = Math.max(0, Number(a.headers.get("content-length")) || 0);
11297
- return new Response(mi(a.body, t, e), {
11420
+ return new Response(xi(a.body, t, e), {
11298
11421
  status: a.status,
11299
11422
  statusText: a.statusText,
11300
11423
  headers: a.headers
11301
11424
  });
11302
- }, wr = (a, e, t) => {
11425
+ }, Er = (a, e, t) => {
11303
11426
  if (!a.body)
11304
11427
  return a;
11305
- const i = yr(t ?? a.body);
11428
+ const i = Tr(t ?? a.body);
11306
11429
  return new Request(a, {
11307
11430
  // @ts-expect-error - Types are outdated.
11308
11431
  duplex: "half",
11309
- body: mi(a.body, i, e)
11432
+ body: xi(a.body, i, e)
11310
11433
  });
11311
11434
  }, Qe = (a) => a !== null && typeof a == "object", Pt = (...a) => {
11312
11435
  for (const e of a)
11313
11436
  if ((!Qe(e) || Array.isArray(e)) && e !== void 0)
11314
11437
  throw new TypeError("The `options` argument must be an object");
11315
- return ua({}, ...a);
11316
- }, yi = (a = {}, e = {}) => {
11438
+ return ba({}, ...a);
11439
+ }, ki = (a = {}, e = {}) => {
11317
11440
  const t = new globalThis.Headers(a), i = e instanceof globalThis.Headers, s = new globalThis.Headers(e);
11318
11441
  for (const [r, o] of s.entries())
11319
11442
  i && o === "undefined" || o === void 0 ? t.delete(r) : t.set(r, o);
11320
11443
  return t;
11321
11444
  };
11322
11445
  function Lt(a, e, t) {
11323
- return Object.hasOwn(e, t) && e[t] === void 0 ? [] : ua(a[t] ?? [], e[t] ?? []);
11446
+ return Object.hasOwn(e, t) && e[t] === void 0 ? [] : ba(a[t] ?? [], e[t] ?? []);
11324
11447
  }
11325
- const vi = (a = {}, e = {}) => ({
11448
+ const _i = (a = {}, e = {}) => ({
11326
11449
  beforeRequest: Lt(a, e, "beforeRequest"),
11327
11450
  beforeRetry: Lt(a, e, "beforeRetry"),
11328
11451
  afterResponse: Lt(a, e, "afterResponse"),
11329
11452
  beforeError: Lt(a, e, "beforeError")
11330
- }), xr = (a, e) => {
11453
+ }), $r = (a, e) => {
11331
11454
  const t = new URLSearchParams();
11332
11455
  for (const i of [a, e])
11333
11456
  if (i !== void 0)
@@ -11349,50 +11472,50 @@ const vi = (a = {}, e = {}) => ({
11349
11472
  t.append(r, o);
11350
11473
  }
11351
11474
  return t;
11352
- }, ua = (...a) => {
11475
+ }, ba = (...a) => {
11353
11476
  let e = {}, t = {}, i = {}, s;
11354
11477
  const r = [];
11355
11478
  for (const o of a)
11356
11479
  if (Array.isArray(o))
11357
11480
  Array.isArray(e) || (e = []), e = [...e, ...o];
11358
11481
  else if (Qe(o)) {
11359
- for (let [f, p] of Object.entries(o)) {
11360
- if (f === "signal" && p instanceof globalThis.AbortSignal) {
11361
- r.push(p);
11482
+ for (let [f, b] of Object.entries(o)) {
11483
+ if (f === "signal" && b instanceof globalThis.AbortSignal) {
11484
+ r.push(b);
11362
11485
  continue;
11363
11486
  }
11364
11487
  if (f === "context") {
11365
- if (p != null && (!Qe(p) || Array.isArray(p)))
11488
+ if (b != null && (!Qe(b) || Array.isArray(b)))
11366
11489
  throw new TypeError("The `context` option must be an object");
11367
11490
  e = {
11368
11491
  ...e,
11369
- context: p == null ? {} : { ...e.context, ...p }
11492
+ context: b == null ? {} : { ...e.context, ...b }
11370
11493
  };
11371
11494
  continue;
11372
11495
  }
11373
11496
  if (f === "searchParams") {
11374
- p == null ? s = void 0 : s = s === void 0 ? p : xr(s, p);
11497
+ b == null ? s = void 0 : s = s === void 0 ? b : $r(s, b);
11375
11498
  continue;
11376
11499
  }
11377
- Qe(p) && f in e && (p = ua(e[f], p)), e = { ...e, [f]: p };
11500
+ Qe(b) && f in e && (b = ba(e[f], b)), e = { ...e, [f]: b };
11378
11501
  }
11379
- Qe(o.hooks) && (i = vi(i, o.hooks), e.hooks = i), Qe(o.headers) && (t = yi(t, o.headers), e.headers = t);
11502
+ Qe(o.hooks) && (i = _i(i, o.hooks), e.hooks = i), Qe(o.headers) && (t = ki(t, o.headers), e.headers = t);
11380
11503
  }
11381
- return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] : ui ? e.signal = AbortSignal.any(r) : e.signal = r.at(-1)), e.context === void 0 && (e.context = {}), e;
11382
- }, kr = (a) => bi.includes(a) ? a.toUpperCase() : a, _r = ["get", "put", "head", "delete", "options", "trace"], Sr = [408, 413, 429, 500, 502, 503, 504], Cr = [413, 429, 503], ja = {
11504
+ return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] : mi ? e.signal = AbortSignal.any(r) : e.signal = r.at(-1)), e.context === void 0 && (e.context = {}), e;
11505
+ }, Pr = (a) => yi.includes(a) ? a.toUpperCase() : a, Lr = ["get", "put", "head", "delete", "options", "trace"], Rr = [408, 413, 429, 500, 502, 503, 504], zr = [413, 429, 503], Na = {
11383
11506
  limit: 2,
11384
- methods: _r,
11385
- statusCodes: Sr,
11386
- afterStatusCodes: Cr,
11507
+ methods: Lr,
11508
+ statusCodes: Rr,
11509
+ afterStatusCodes: zr,
11387
11510
  maxRetryAfter: Number.POSITIVE_INFINITY,
11388
11511
  backoffLimit: Number.POSITIVE_INFINITY,
11389
11512
  delay: (a) => 0.3 * 2 ** (a - 1) * 1e3,
11390
11513
  jitter: void 0,
11391
11514
  retryOnTimeout: !1
11392
- }, Ar = (a = {}) => {
11515
+ }, Or = (a = {}) => {
11393
11516
  if (typeof a == "number")
11394
11517
  return {
11395
- ...ja,
11518
+ ...Na,
11396
11519
  limit: a
11397
11520
  };
11398
11521
  if (a.methods && !Array.isArray(a.methods))
@@ -11400,27 +11523,27 @@ const vi = (a = {}, e = {}) => ({
11400
11523
  if (a.statusCodes && !Array.isArray(a.statusCodes))
11401
11524
  throw new Error("retry.statusCodes must be an array");
11402
11525
  return {
11403
- ...ja,
11526
+ ...Na,
11404
11527
  ...a
11405
11528
  };
11406
11529
  };
11407
- class sa extends Error {
11530
+ class na extends Error {
11408
11531
  request;
11409
11532
  constructor(e) {
11410
11533
  super(`Request timed out: ${e.method} ${e.url}`), this.name = "TimeoutError", this.request = e;
11411
11534
  }
11412
11535
  }
11413
- async function Mr(a, e, t, i) {
11536
+ async function Br(a, e, t, i) {
11414
11537
  return new Promise((s, r) => {
11415
11538
  const o = setTimeout(() => {
11416
- t && t.abort(), r(new sa(a));
11539
+ t && t.abort(), r(new na(a));
11417
11540
  }, i.timeout);
11418
11541
  i.fetch(a, e).then(s).catch(r).then(() => {
11419
11542
  clearTimeout(o);
11420
11543
  });
11421
11544
  });
11422
11545
  }
11423
- async function Tr(a, { signal: e }) {
11546
+ async function qr(a, { signal: e }) {
11424
11547
  return new Promise((t, i) => {
11425
11548
  e && (e.throwIfAborted(), e.addEventListener("abort", s, { once: !0 }));
11426
11549
  function s() {
@@ -11431,62 +11554,62 @@ async function Tr(a, { signal: e }) {
11431
11554
  }, a);
11432
11555
  });
11433
11556
  }
11434
- const Ir = (a, e) => {
11557
+ const Dr = (a, e) => {
11435
11558
  const t = {};
11436
11559
  for (const i in e)
11437
- Object.hasOwn(e, i) && !(i in mr) && !(i in pr) && (!(i in a) || i in gr) && (t[i] = e[i]);
11560
+ Object.hasOwn(e, i) && !(i in Mr) && !(i in Cr) && (!(i in a) || i in Ar) && (t[i] = e[i]);
11438
11561
  return t;
11439
- }, Er = (a) => a === void 0 ? !1 : Array.isArray(a) ? a.length > 0 : a instanceof URLSearchParams ? a.size > 0 : typeof a == "object" ? Object.keys(a).length > 0 : typeof a == "string" ? a.trim().length > 0 : !!a;
11440
- function $r(a) {
11441
- return a instanceof ia || a?.name === ia.name;
11442
- }
11443
- function Pr(a) {
11562
+ }, Fr = (a) => a === void 0 ? !1 : Array.isArray(a) ? a.length > 0 : a instanceof URLSearchParams ? a.size > 0 : typeof a == "object" ? Object.keys(a).length > 0 : typeof a == "string" ? a.trim().length > 0 : !!a;
11563
+ function Hr(a) {
11444
11564
  return a instanceof sa || a?.name === sa.name;
11445
11565
  }
11566
+ function jr(a) {
11567
+ return a instanceof na || a?.name === na.name;
11568
+ }
11446
11569
  class wt {
11447
11570
  static create(e, t) {
11448
11571
  const i = new wt(e, t), s = async () => {
11449
- if (typeof i.#e.timeout == "number" && i.#e.timeout > Jt)
11450
- throw new RangeError(`The \`timeout\` option cannot be greater than ${Jt}`);
11572
+ if (typeof i.#e.timeout == "number" && i.#e.timeout > Zt)
11573
+ throw new RangeError(`The \`timeout\` option cannot be greater than ${Zt}`);
11451
11574
  await Promise.resolve();
11452
11575
  let o = await i.#p();
11453
11576
  for (const f of i.#e.hooks.afterResponse) {
11454
- const p = i.#d(o.clone()), v = await f(i.request, i.#o(), p, { retryCount: i.#a });
11455
- if (v instanceof globalThis.Response && (o = v), v instanceof gi)
11577
+ const b = i.#d(o.clone()), v = await f(i.request, i.#o(), b, { retryCount: i.#a });
11578
+ if (v instanceof globalThis.Response && (o = v), v instanceof wi)
11456
11579
  throw await Promise.all([
11457
- p.body?.cancel(),
11580
+ b.body?.cancel(),
11458
11581
  o.body?.cancel()
11459
- ]), new Kt(v.options);
11582
+ ]), new Jt(v.options);
11460
11583
  }
11461
11584
  if (i.#d(o), !o.ok && (typeof i.#e.throwHttpErrors == "function" ? i.#e.throwHttpErrors(o.status) : i.#e.throwHttpErrors)) {
11462
- let f = new ia(o, i.request, i.#o());
11463
- for (const p of i.#e.hooks.beforeError)
11464
- f = await p(f, { retryCount: i.#a });
11585
+ let f = new sa(o, i.request, i.#o());
11586
+ for (const b of i.#e.hooks.beforeError)
11587
+ f = await b(f, { retryCount: i.#a });
11465
11588
  throw f;
11466
11589
  }
11467
11590
  if (i.#e.onDownloadProgress) {
11468
11591
  if (typeof i.#e.onDownloadProgress != "function")
11469
11592
  throw new TypeError("The `onDownloadProgress` option must be a function");
11470
- if (!dr)
11593
+ if (!wr)
11471
11594
  throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");
11472
- return vr(o.clone(), i.#e.onDownloadProgress);
11595
+ return Ir(o.clone(), i.#e.onDownloadProgress);
11473
11596
  }
11474
11597
  return o;
11475
11598
  }, r = i.#f(s).finally(async () => {
11476
11599
  const o = i.#n, f = [];
11477
11600
  o && !o.bodyUsed && f.push(o.body?.cancel()), i.request.bodyUsed || f.push(i.request.body?.cancel()), await Promise.all(f);
11478
11601
  });
11479
- for (const [o, f] of Object.entries(hr))
11602
+ for (const [o, f] of Object.entries(kr))
11480
11603
  o === "bytes" && typeof globalThis.Response?.prototype?.bytes != "function" || (r[o] = async () => {
11481
11604
  i.request.headers.set("accept", i.request.headers.get("accept") || f);
11482
- const p = await r;
11605
+ const b = await r;
11483
11606
  if (o === "json") {
11484
- if (p.status === 204)
11607
+ if (b.status === 204)
11485
11608
  return "";
11486
- const v = await p.text();
11609
+ const v = await b.text();
11487
11610
  return v === "" ? "" : t.parseJson ? t.parseJson(v) : JSON.parse(v);
11488
11611
  }
11489
- return p[o]();
11612
+ return b[o]();
11490
11613
  });
11491
11614
  return r;
11492
11615
  }
@@ -11507,17 +11630,17 @@ class wt {
11507
11630
  constructor(e, t = {}) {
11508
11631
  if (this.#t = e, this.#e = {
11509
11632
  ...t,
11510
- headers: yi(this.#t.headers, t.headers),
11511
- hooks: vi({
11633
+ headers: ki(this.#t.headers, t.headers),
11634
+ hooks: _i({
11512
11635
  beforeRequest: [],
11513
11636
  beforeRetry: [],
11514
11637
  beforeError: [],
11515
11638
  afterResponse: []
11516
11639
  }, t.hooks),
11517
- method: kr(t.method ?? this.#t.method ?? "GET"),
11640
+ method: Pr(t.method ?? this.#t.method ?? "GET"),
11518
11641
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
11519
11642
  prefixUrl: String(t.prefixUrl || ""),
11520
- retry: Ar(t.retry),
11643
+ retry: Or(t.retry),
11521
11644
  throwHttpErrors: t.throwHttpErrors ?? !0,
11522
11645
  timeout: t.timeout ?? 1e4,
11523
11646
  fetch: t.fetch ?? globalThis.fetch.bind(globalThis),
@@ -11529,16 +11652,16 @@ class wt {
11529
11652
  throw new Error("`input` must not begin with a slash when using `prefixUrl`");
11530
11653
  this.#e.prefixUrl.endsWith("/") || (this.#e.prefixUrl += "/"), this.#t = this.#e.prefixUrl + this.#t;
11531
11654
  }
11532
- lr && ui && (this.#s = this.#e.signal ?? this.#t.signal, this.#i = new globalThis.AbortController(), this.#e.signal = this.#s ? AbortSignal.any([this.#s, this.#i.signal]) : this.#i.signal), Ha && (this.#e.duplex = "half"), this.#e.json !== void 0 && (this.#e.body = this.#e.stringifyJson?.(this.#e.json) ?? JSON.stringify(this.#e.json), this.#e.headers.set("content-type", this.#e.headers.get("content-type") ?? "application/json"));
11655
+ vr && mi && (this.#s = this.#e.signal ?? this.#t.signal, this.#i = new globalThis.AbortController(), this.#e.signal = this.#s ? AbortSignal.any([this.#s, this.#i.signal]) : this.#i.signal), Ua && (this.#e.duplex = "half"), this.#e.json !== void 0 && (this.#e.body = this.#e.stringifyJson?.(this.#e.json) ?? JSON.stringify(this.#e.json), this.#e.headers.set("content-type", this.#e.headers.get("content-type") ?? "application/json"));
11533
11656
  const i = t.headers && new globalThis.Headers(t.headers).has("content-type");
11534
- if (this.#t instanceof globalThis.Request && (fr && this.#e.body instanceof globalThis.FormData || this.#e.body instanceof URLSearchParams) && !i && this.#e.headers.delete("content-type"), this.request = new globalThis.Request(this.#t, this.#e), Er(this.#e.searchParams)) {
11657
+ if (this.#t instanceof globalThis.Request && (xr && this.#e.body instanceof globalThis.FormData || this.#e.body instanceof URLSearchParams) && !i && this.#e.headers.delete("content-type"), this.request = new globalThis.Request(this.#t, this.#e), Fr(this.#e.searchParams)) {
11535
11658
  const r = "?" + (typeof this.#e.searchParams == "string" ? this.#e.searchParams.replace(/^\?/, "") : new URLSearchParams(wt.#u(this.#e.searchParams)).toString()), o = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, r);
11536
11659
  this.request = new globalThis.Request(o, this.#e);
11537
11660
  }
11538
11661
  if (this.#e.onUploadProgress) {
11539
11662
  if (typeof this.#e.onUploadProgress != "function")
11540
11663
  throw new TypeError("The `onUploadProgress` option must be a function");
11541
- if (!Ha)
11664
+ if (!Ua)
11542
11665
  throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");
11543
11666
  this.request = this.#h(this.request, this.#e.body ?? void 0);
11544
11667
  }
@@ -11551,8 +11674,8 @@ class wt {
11551
11674
  async #b(e) {
11552
11675
  if (this.#a++, this.#a > this.#e.retry.limit)
11553
11676
  throw e;
11554
- const t = e instanceof Error ? e : new hi(e);
11555
- if (t instanceof Kt)
11677
+ const t = e instanceof Error ? e : new gi(e);
11678
+ if (t instanceof Jt)
11556
11679
  return t.customDelay ?? this.#c();
11557
11680
  if (!this.#e.retry.methods.includes(this.request.method.toLowerCase()))
11558
11681
  throw e;
@@ -11563,9 +11686,9 @@ class wt {
11563
11686
  if (i === !0)
11564
11687
  return this.#c();
11565
11688
  }
11566
- if (Pr(e) && !this.#e.retry.retryOnTimeout)
11689
+ if (jr(e) && !this.#e.retry.retryOnTimeout)
11567
11690
  throw e;
11568
- if ($r(e)) {
11691
+ if (Hr(e)) {
11569
11692
  if (!this.#e.retry.statusCodes.includes(e.response.status))
11570
11693
  throw e;
11571
11694
  const i = e.response.headers.get("Retry-After") ?? e.response.headers.get("RateLimit-Reset") ?? e.response.headers.get("X-RateLimit-Retry-After") ?? e.response.headers.get("X-RateLimit-Reset") ?? e.response.headers.get("X-Rate-Limit-Reset");
@@ -11587,10 +11710,10 @@ class wt {
11587
11710
  try {
11588
11711
  return await e();
11589
11712
  } catch (t) {
11590
- const i = Math.min(await this.#b(t), Jt);
11713
+ const i = Math.min(await this.#b(t), Zt);
11591
11714
  if (this.#a < 1)
11592
11715
  throw t;
11593
- if (await Tr(i, this.#s ? { signal: this.#s } : {}), t instanceof Kt && t.customRequest) {
11716
+ if (await qr(i, this.#s ? { signal: this.#s } : {}), t instanceof Jt && t.customRequest) {
11594
11717
  const s = this.#e.signal ? new globalThis.Request(t.customRequest, { signal: this.#e.signal }) : new globalThis.Request(t.customRequest);
11595
11718
  this.#l(s);
11596
11719
  }
@@ -11607,7 +11730,7 @@ class wt {
11607
11730
  }
11608
11731
  if (r instanceof globalThis.Response)
11609
11732
  return r;
11610
- if (r === pi)
11733
+ if (r === vi)
11611
11734
  return;
11612
11735
  }
11613
11736
  return this.#f(e);
@@ -11624,8 +11747,8 @@ class wt {
11624
11747
  break;
11625
11748
  }
11626
11749
  }
11627
- const e = Ir(this.request, this.#e);
11628
- return this.#n = this.request, this.request = this.#n.clone(), this.#e.timeout === !1 ? this.#e.fetch(this.#n, e) : Mr(this.#n, e, this.#i, this.#e);
11750
+ const e = Dr(this.request, this.#e);
11751
+ return this.#n = this.request, this.request = this.#n.clone(), this.#e.timeout === !1 ? this.#e.fetch(this.#n, e) : Br(this.#n, e, this.#i, this.#e);
11629
11752
  }
11630
11753
  #o() {
11631
11754
  if (!this.#r) {
@@ -11638,16 +11761,16 @@ class wt {
11638
11761
  this.#r = void 0, this.request = this.#h(e);
11639
11762
  }
11640
11763
  #h(e, t) {
11641
- return !this.#e.onUploadProgress || !e.body ? e : wr(e, this.#e.onUploadProgress, t ?? this.#e.body ?? void 0);
11764
+ return !this.#e.onUploadProgress || !e.body ? e : Er(e, this.#e.onUploadProgress, t ?? this.#e.body ?? void 0);
11642
11765
  }
11643
11766
  }
11644
- const na = (a) => {
11767
+ const ra = (a) => {
11645
11768
  const e = (t, i) => wt.create(t, Pt(a, i));
11646
- for (const t of bi)
11769
+ for (const t of yi)
11647
11770
  e[t] = (i, s) => wt.create(i, Pt(a, s, { method: t }));
11648
- return e.create = (t) => na(Pt(t)), e.extend = (t) => (typeof t == "function" && (t = t(a ?? {})), na(Pt(a, t))), e.stop = pi, e.retry = br, e;
11649
- }, Lr = na();
11650
- Lr.extend({
11771
+ return e.create = (t) => ra(Pt(t)), e.extend = (t) => (typeof t == "function" && (t = t(a ?? {})), ra(Pt(a, t))), e.stop = vi, e.retry = Sr, e;
11772
+ }, Vr = ra();
11773
+ Vr.extend({
11651
11774
  hooks: {
11652
11775
  beforeRequest: [
11653
11776
  () => {
@@ -11655,10 +11778,10 @@ Lr.extend({
11655
11778
  ]
11656
11779
  }
11657
11780
  });
11658
- async function Rr(a, e) {
11781
+ async function Ur(a, e) {
11659
11782
  const { onmessage: t, onclose: i, ...s } = e, r = async (o, f) => {
11660
- const { value: p, done: v } = await f.read();
11661
- v ? (o.close(), i?.()) : (t?.(p), o.enqueue(p), r(o, f));
11783
+ const { value: b, done: v } = await f.read();
11784
+ v ? (o.close(), i?.()) : (t?.(b), o.enqueue(b), r(o, f));
11662
11785
  };
11663
11786
  return s.body && typeof s.body == "object" && (s.body = JSON.stringify(s.body)), console.log("Fetching:", s), fetch(a, s).then((o) => {
11664
11787
  const f = o.body.getReader();
@@ -11676,14 +11799,14 @@ async function Rr(a, e) {
11676
11799
  }).text()
11677
11800
  );
11678
11801
  }
11679
- var zr = Object.defineProperty, Or = Object.getOwnPropertyDescriptor, H = (a, e, t, i) => {
11680
- for (var s = i > 1 ? void 0 : i ? Or(e, t) : e, r = a.length - 1, o; r >= 0; r--)
11802
+ var Nr = Object.defineProperty, Wr = Object.getOwnPropertyDescriptor, H = (a, e, t, i) => {
11803
+ for (var s = i > 1 ? void 0 : i ? Wr(e, t) : e, r = a.length - 1, o; r >= 0; r--)
11681
11804
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
11682
- return i && s && zr(e, t, s), s;
11805
+ return i && s && Nr(e, t, s), s;
11683
11806
  };
11684
11807
  const Be = Ke.noConflict();
11685
11808
  Be.setLevel("info");
11686
- function Br() {
11809
+ function Gr() {
11687
11810
  const a = navigator.userAgent, e = /iPhone|iPad|iPod/.test(a), t = /AppleWebKit/.test(a), i = /Safari/.test(a) && !/CriOS|FxiOS|EdgiOS|OPiOS/.test(a);
11688
11811
  return e && t && !i;
11689
11812
  }
@@ -11723,7 +11846,7 @@ let D = class extends re {
11723
11846
  h.handleLifecycleResume("focus", this.boundScrollToBottomOnUpdate);
11724
11847
  }, this.handleWindowOnline = () => {
11725
11848
  h.handleLifecycleResume("online", this.boundScrollToBottomOnUpdate);
11726
- }, this.fetchStream = Rr;
11849
+ }, this.fetchStream = Ur;
11727
11850
  }
11728
11851
  /**
11729
11852
  * decodeStreamData
@@ -11758,7 +11881,7 @@ let D = class extends re {
11758
11881
  h.addActions(a);
11759
11882
  }
11760
11883
  render() {
11761
- return h.disabled && !this.alwaysOpen ? (Be.info("Bot is disabled until settings are loaded"), null) : b`
11884
+ return h.disabled && !this.alwaysOpen ? (Be.info("Bot is disabled until settings are loaded"), null) : p`
11762
11885
  <div class="cb-wrapper${h.open ? " cb-open" : ""}" part="wrapper${h.open ? " open" : ""}" exportparts="new-conversation-wrapper new-conversation-button wrapper${h.open ? " open" : ""}">
11763
11886
  <cb-header title="${this.name}" exportparts="header, header-logo, header-title, header-close"></cb-header>
11764
11887
  <cb-message-list
@@ -11769,12 +11892,12 @@ let D = class extends re {
11769
11892
  ></cb-message-list>
11770
11893
  ${W(
11771
11894
  h.showNewConversation,
11772
- () => b`
11895
+ () => p`
11773
11896
  <div class="cb-new-conversation-wrapper" part="new-conversation-wrapper">
11774
11897
  <button type="button" class="card-btn info" part="new-conversation-button" @click=${this.clearConversation}>Start New Conversation</button>
11775
11898
  </div>
11776
11899
  `,
11777
- () => b``
11900
+ () => p``
11778
11901
  )}
11779
11902
  <cb-audio-controls exportparts="audio-controls-wrapper, audio-controls, audio-mute-button, audio-unmute-button, audio-end-button, audio-controls-viz"></cb-audio-controls>
11780
11903
  ${this.renderUserInput()} ${this.renderFeedbackDialog()}
@@ -11783,13 +11906,13 @@ let D = class extends re {
11783
11906
  `;
11784
11907
  }
11785
11908
  renderFeedbackDialog() {
11786
- return b`<cb-dialog-feedback></cb-dialog-feedback>`;
11909
+ return p`<cb-dialog-feedback></cb-dialog-feedback>`;
11787
11910
  }
11788
11911
  _dialogCancelHandler() {
11789
11912
  console.log("Feedback dialog cancelled"), h.feedback = !1;
11790
11913
  }
11791
11914
  renderUserInput() {
11792
- return h.form || h.disabled && this.alwaysOpen ? null : h.setting.enableAudio ? b`
11915
+ return h.form || h.disabled && this.alwaysOpen ? null : h.setting.enableAudio ? p`
11793
11916
  <cb-user-input-mm
11794
11917
  part="user-input-control"
11795
11918
  ?loading=${h.connecting}
@@ -11797,7 +11920,7 @@ let D = class extends re {
11797
11920
  ?enable-file-upload=${h.setting.uploadImages && h.connected}
11798
11921
  ?enable-audio=${h.setting.enableAudio && h.connected}
11799
11922
  exportparts="user-input-control,user-input, user-input-wrapper, user-input-inner, user-input-base, upload-button, control-button, user-input-textarea, user-input-buttons-wrapper, user-input-send-icon, user-input-attach-icon"
11800
- ></cb-user-input-mm>` : b`
11923
+ ></cb-user-input-mm>` : p`
11801
11924
  <cb-user-input
11802
11925
  part="user-input-control"
11803
11926
  ?loading=${h.connecting}
@@ -11840,7 +11963,7 @@ let D = class extends re {
11840
11963
  Be.info("disconnectedCallback"), super.disconnectedCallback(), this.detachViewportListener(), window.removeEventListener("c7o:bot:stateEvent", this.handleStateEvent), window.removeEventListener("message:send", this.handleAddMessage), window.removeEventListener("chatbot:toggle", this.handleToggleEvent), window.removeEventListener("form:submit", this.handleFormSubmitEvent), window.removeEventListener("message:send:file", this._uploadFileHandler), window.removeEventListener("audio:toggle", this._audioToggleHandler), this.detachLifecycleListeners();
11841
11964
  }
11842
11965
  attachLifecycleListeners() {
11843
- this.lifecycleListenersAttached || Br() && (document.addEventListener("visibilitychange", this.handleVisibilityChange), window.addEventListener("pageshow", this.handlePageShow), window.addEventListener("focus", this.handleWindowFocus), window.addEventListener("online", this.handleWindowOnline), this.lifecycleListenersAttached = !0);
11966
+ this.lifecycleListenersAttached || Gr() && (document.addEventListener("visibilitychange", this.handleVisibilityChange), window.addEventListener("pageshow", this.handlePageShow), window.addEventListener("focus", this.handleWindowFocus), window.addEventListener("online", this.handleWindowOnline), this.lifecycleListenersAttached = !0);
11844
11967
  }
11845
11968
  detachLifecycleListeners() {
11846
11969
  this.lifecycleListenersAttached && (document.removeEventListener("visibilitychange", this.handleVisibilityChange), window.removeEventListener("pageshow", this.handlePageShow), window.removeEventListener("focus", this.handleWindowFocus), window.removeEventListener("online", this.handleWindowOnline), this.lifecycleListenersAttached = !1);
@@ -12053,7 +12176,7 @@ let D = class extends re {
12053
12176
  this._viewportRafId && (cancelAnimationFrame(this._viewportRafId), this._viewportRafId = 0), this._viewportResizeHandler && window.visualViewport && (window.visualViewport.removeEventListener("resize", this._viewportResizeHandler), window.visualViewport.removeEventListener("scroll", this._viewportResizeHandler)), this._viewportResizeHandler = null, this.style.removeProperty("--c7o-vv-height"), this.style.removeProperty("--c7o-vv-offset");
12054
12177
  }
12055
12178
  };
12056
- D.styles = [Xi, Za];
12179
+ D.styles = [Zi, ai];
12057
12180
  H([
12058
12181
  x({ type: Boolean, attribute: "display-license" })
12059
12182
  ], D.prototype, "displayLicense", 2);