@enegelai/bot-widget 1.16.6 → 1.16.7
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/enegelaibot.umd.js +193 -193
- package/dist/index.es.js +474 -473
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { css as J, LitElement as Fe, html as u, nothing as Ae, svg as pe } from "lit";
|
|
2
|
-
import { property as x, customElement as Z, query as xe, state as
|
|
2
|
+
import { property as x, customElement as Z, query as xe, state as Va, queryAll as Na, eventOptions as na } 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
|
|
5
|
+
import { registerIconLibrary as qi } 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 Pt } from "lit-html/directives/until.js";
|
|
26
|
-
import
|
|
27
|
-
import
|
|
28
|
-
import
|
|
26
|
+
import Di from "markdown-it";
|
|
27
|
+
import Fi from "markdown-it-link-attributes";
|
|
28
|
+
import Wt 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
|
|
32
|
-
function
|
|
31
|
+
import { createRef as ji, ref as At } from "lit/directives/ref.js";
|
|
32
|
+
function Ua(a) {
|
|
33
33
|
return typeof a == "function" ? a() : a;
|
|
34
34
|
}
|
|
35
35
|
const Ht = class Ht extends Event {
|
|
@@ -45,7 +45,7 @@ const Ht = class Ht extends Event {
|
|
|
45
45
|
};
|
|
46
46
|
Ht.eventName = "lit-state-changed";
|
|
47
47
|
let at = Ht;
|
|
48
|
-
const
|
|
48
|
+
const Hi = (a, e) => e !== a && (e === e || a === a), ba = class ba 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), ha = class ha 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 =
|
|
61
|
+
const i = Ua(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), ha = class ha extends Even
|
|
|
78
78
|
Object.defineProperty(this.prototype, e, s);
|
|
79
79
|
}
|
|
80
80
|
static getPropertyDescriptor(e, t, i) {
|
|
81
|
-
const s = i?.hasChanged ||
|
|
81
|
+
const s = i?.hasChanged || Hi;
|
|
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), ha = class ha extends Even
|
|
|
119
119
|
this.dispatchEvent(new at(e, t, i));
|
|
120
120
|
}
|
|
121
121
|
};
|
|
122
|
-
|
|
123
|
-
let
|
|
122
|
+
ba.finalized = !1;
|
|
123
|
+
let Jt = ba;
|
|
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
|
|
149
|
+
function Vi(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,18 +156,18 @@ function Hi(a, e) {
|
|
|
156
156
|
return a;
|
|
157
157
|
}
|
|
158
158
|
new URL(location.href);
|
|
159
|
-
const
|
|
159
|
+
const Ni = {
|
|
160
160
|
prefix: "_ls"
|
|
161
161
|
};
|
|
162
162
|
function ce(a) {
|
|
163
|
-
return a = { ...
|
|
163
|
+
return a = { ...Ni, ...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 = () =>
|
|
170
|
+
o.initialValue = () => Vi(localStorage.getItem(s), f) ?? Ua(w), r.propertyMap.set(t, { ...o, ...a });
|
|
171
171
|
}
|
|
172
172
|
const p = i?.set, k = {
|
|
173
173
|
...i,
|
|
@@ -178,15 +178,15 @@ function ce(a) {
|
|
|
178
178
|
Object.defineProperty(r.prototype, t, k);
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
|
-
function
|
|
181
|
+
function Wa(a) {
|
|
182
182
|
return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
|
|
183
183
|
}
|
|
184
|
-
var Lt = { exports: {} },
|
|
185
|
-
function
|
|
186
|
-
return
|
|
184
|
+
var Lt = { exports: {} }, Ui = Lt.exports, _a;
|
|
185
|
+
function Wi() {
|
|
186
|
+
return _a || (_a = 1, (function(a) {
|
|
187
187
|
(function(e, t) {
|
|
188
188
|
a.exports ? a.exports = t() : e.log = t();
|
|
189
|
-
})(
|
|
189
|
+
})(Ui, 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",
|
|
@@ -329,8 +329,8 @@ function Ui() {
|
|
|
329
329
|
});
|
|
330
330
|
})(Lt)), Lt.exports;
|
|
331
331
|
}
|
|
332
|
-
var
|
|
333
|
-
const Je = /* @__PURE__ */
|
|
332
|
+
var Gi = Wi();
|
|
333
|
+
const Je = /* @__PURE__ */ Wa(Gi), Xi = J`
|
|
334
334
|
:host {
|
|
335
335
|
--enegelai-bot-width: 420px;
|
|
336
336
|
--enegelai-bot-base-font-size: 16px;
|
|
@@ -638,7 +638,7 @@ const Je = /* @__PURE__ */ Ua(Wi), Gi = J`
|
|
|
638
638
|
}
|
|
639
639
|
|
|
640
640
|
|
|
641
|
-
`,
|
|
641
|
+
`, Ga = J`
|
|
642
642
|
${ke}
|
|
643
643
|
|
|
644
644
|
:host {
|
|
@@ -663,10 +663,10 @@ const Je = /* @__PURE__ */ Ua(Wi), Gi = J`
|
|
|
663
663
|
color: white;
|
|
664
664
|
}
|
|
665
665
|
`;
|
|
666
|
-
var
|
|
667
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
666
|
+
var Yi = Object.defineProperty, Ji = Object.getOwnPropertyDescriptor, ra = (a, e, t, i) => {
|
|
667
|
+
for (var s = i > 1 ? void 0 : i ? Ji(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
668
668
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
669
|
-
return i && s &&
|
|
669
|
+
return i && s && Yi(e, t, s), s;
|
|
670
670
|
};
|
|
671
671
|
let ut = class extends Fe {
|
|
672
672
|
constructor() {
|
|
@@ -676,17 +676,17 @@ let ut = class extends Fe {
|
|
|
676
676
|
return u`<span class="cb-icon" part="base">${G(this.svg)}</span>`;
|
|
677
677
|
}
|
|
678
678
|
};
|
|
679
|
-
ut.styles =
|
|
680
|
-
|
|
679
|
+
ut.styles = Ga;
|
|
680
|
+
ra([
|
|
681
681
|
x({ type: String })
|
|
682
682
|
], ut.prototype, "color", 2);
|
|
683
|
-
|
|
683
|
+
ra([
|
|
684
684
|
x({ type: String })
|
|
685
685
|
], ut.prototype, "svg", 2);
|
|
686
|
-
ut =
|
|
686
|
+
ut = ra([
|
|
687
687
|
Z("cb-icon")
|
|
688
688
|
], ut);
|
|
689
|
-
let
|
|
689
|
+
let Zi = (a) => crypto.getRandomValues(new Uint8Array(a)), Ki = (a, e, t) => {
|
|
690
690
|
let i = (2 << Math.log2(a.length - 1)) - 1, s = -~(1.6 * i * e / a.length);
|
|
691
691
|
return (r = e) => {
|
|
692
692
|
let o = "";
|
|
@@ -696,12 +696,12 @@ let Ji = (a) => crypto.getRandomValues(new Uint8Array(a)), Zi = (a, e, t) => {
|
|
|
696
696
|
if (o += a[f[p] & i] || "", o.length >= r) return o;
|
|
697
697
|
}
|
|
698
698
|
};
|
|
699
|
-
},
|
|
700
|
-
const
|
|
699
|
+
}, Qi = (a, e = 21) => Ki(a, e | 0, Zi);
|
|
700
|
+
const es = Qi("1234567890abcdefghijklmnopqrstuvwxyz", 10);
|
|
701
701
|
function fe(a = 10) {
|
|
702
|
-
return
|
|
702
|
+
return es(a);
|
|
703
703
|
}
|
|
704
|
-
function
|
|
704
|
+
function ts(a) {
|
|
705
705
|
return new Promise((e, t) => {
|
|
706
706
|
try {
|
|
707
707
|
navigator.clipboard.writeText(a).then(() => {
|
|
@@ -712,7 +712,7 @@ function es(a) {
|
|
|
712
712
|
}
|
|
713
713
|
});
|
|
714
714
|
}
|
|
715
|
-
function
|
|
715
|
+
function Xa(a = !0, e = null) {
|
|
716
716
|
return new Promise((t) => {
|
|
717
717
|
const i = document.createElement("input");
|
|
718
718
|
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", () => {
|
|
@@ -721,10 +721,13 @@ function Ga(a = !0, e = null) {
|
|
|
721
721
|
}), i.click();
|
|
722
722
|
});
|
|
723
723
|
}
|
|
724
|
+
function Vt(a) {
|
|
725
|
+
return !a || typeof a != "string" ? "" : a.replace(/&(?!lt;|gt;)/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
726
|
+
}
|
|
724
727
|
const se = Je.noConflict();
|
|
725
728
|
se.setLevel("info");
|
|
726
|
-
const
|
|
727
|
-
class
|
|
729
|
+
const Sa = 3e4;
|
|
730
|
+
class as {
|
|
728
731
|
constructor(e = {}) {
|
|
729
732
|
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, se.info(`WSC: Created, url: ${this.url}`);
|
|
730
733
|
}
|
|
@@ -792,7 +795,7 @@ class ts {
|
|
|
792
795
|
async start() {
|
|
793
796
|
this.started = !0, this.connect(), this.lastTickTs = Date.now(), this.tickInterval = setInterval(() => {
|
|
794
797
|
this.tick();
|
|
795
|
-
},
|
|
798
|
+
}, Sa);
|
|
796
799
|
}
|
|
797
800
|
async stop() {
|
|
798
801
|
this.started = !1, this.disconnect(), this.tickInterval && (clearInterval(this.tickInterval), this.tickInterval = null);
|
|
@@ -835,7 +838,7 @@ class ts {
|
|
|
835
838
|
const e = Date.now();
|
|
836
839
|
let t = !1;
|
|
837
840
|
const i = e - this.lastAckTs;
|
|
838
|
-
i >
|
|
841
|
+
i > Sa + 5e3 && (t = !0, se.info(`WSC: checkConnection: connection loss detected - last ack delay ${i} msec, reconnecting`)), t && this.disconnect();
|
|
839
842
|
}
|
|
840
843
|
sendMessage(e) {
|
|
841
844
|
if (this.checkConnection(), !this.connected) {
|
|
@@ -885,7 +888,7 @@ class ts {
|
|
|
885
888
|
});
|
|
886
889
|
}*/
|
|
887
890
|
}
|
|
888
|
-
class
|
|
891
|
+
class is {
|
|
889
892
|
constructor(e = {}) {
|
|
890
893
|
this.name = e.name || "EventEmitter", this.events = {};
|
|
891
894
|
}
|
|
@@ -1019,7 +1022,7 @@ class Ze {
|
|
|
1019
1022
|
}
|
|
1020
1023
|
}
|
|
1021
1024
|
globalThis.WavPacker = Ze;
|
|
1022
|
-
const
|
|
1025
|
+
const Ca = [
|
|
1023
1026
|
4186.01,
|
|
1024
1027
|
4434.92,
|
|
1025
1028
|
4698.63,
|
|
@@ -1032,7 +1035,7 @@ const Sa = [
|
|
|
1032
1035
|
7040,
|
|
1033
1036
|
7458.62,
|
|
1034
1037
|
7902.13
|
|
1035
|
-
],
|
|
1038
|
+
], ss = [
|
|
1036
1039
|
"C",
|
|
1037
1040
|
"C#",
|
|
1038
1041
|
"D",
|
|
@@ -1045,13 +1048,13 @@ const Sa = [
|
|
|
1045
1048
|
"A",
|
|
1046
1049
|
"A#",
|
|
1047
1050
|
"B"
|
|
1048
|
-
], We = [],
|
|
1051
|
+
], We = [], oa = [];
|
|
1049
1052
|
for (let a = 1; a <= 8; a++)
|
|
1050
|
-
for (let e = 0; e <
|
|
1051
|
-
const t =
|
|
1052
|
-
We.push(t / Math.pow(2, 8 - a)),
|
|
1053
|
+
for (let e = 0; e < Ca.length; e++) {
|
|
1054
|
+
const t = Ca[e];
|
|
1055
|
+
We.push(t / Math.pow(2, 8 - a)), oa.push(ss[e] + a);
|
|
1053
1056
|
}
|
|
1054
|
-
const zt = [32, 2e3],
|
|
1057
|
+
const zt = [32, 2e3], Aa = We.filter((a, e) => We[e] > zt[0] && We[e] < zt[1]), ns = oa.filter((a, e) => We[e] > zt[0] && We[e] < zt[1]);
|
|
1055
1058
|
class lt {
|
|
1056
1059
|
/**
|
|
1057
1060
|
* Retrieves frequency domain data from an AnalyserNode adjusted to a decibel range
|
|
@@ -1069,7 +1072,7 @@ class lt {
|
|
|
1069
1072
|
const f = t / 2, p = 1 / i.length * f;
|
|
1070
1073
|
let v, k, w;
|
|
1071
1074
|
if (s === "music" || s === "voice") {
|
|
1072
|
-
const E = s === "voice" ?
|
|
1075
|
+
const E = s === "voice" ? Aa : We, M = Array(E.length).fill(r);
|
|
1073
1076
|
for (let L = 0; L < i.length; L++) {
|
|
1074
1077
|
const C = L * p, K = i[L];
|
|
1075
1078
|
for (let U = E.length - 1; U >= 0; U--)
|
|
@@ -1078,7 +1081,7 @@ class lt {
|
|
|
1078
1081
|
break;
|
|
1079
1082
|
}
|
|
1080
1083
|
}
|
|
1081
|
-
v = M, k = s === "voice" ?
|
|
1084
|
+
v = M, k = s === "voice" ? Aa : We, w = s === "voice" ? ns : oa;
|
|
1082
1085
|
} else
|
|
1083
1086
|
v = Array.from(i), k = v.map((E, M) => p * M), w = k.map((E) => `${E.toFixed(2)} Hz`);
|
|
1084
1087
|
const _ = v.map((E) => Math.max(
|
|
@@ -1154,7 +1157,7 @@ class lt {
|
|
|
1154
1157
|
}
|
|
1155
1158
|
}
|
|
1156
1159
|
globalThis.AudioAnalysis = lt;
|
|
1157
|
-
const
|
|
1160
|
+
const rs = `
|
|
1158
1161
|
class StreamProcessor extends AudioWorkletProcessor {
|
|
1159
1162
|
constructor() {
|
|
1160
1163
|
super();
|
|
@@ -1243,17 +1246,17 @@ class StreamProcessor extends AudioWorkletProcessor {
|
|
|
1243
1246
|
}
|
|
1244
1247
|
|
|
1245
1248
|
registerProcessor('stream_processor', StreamProcessor);
|
|
1246
|
-
`,
|
|
1249
|
+
`, os = new Blob([rs], {
|
|
1247
1250
|
type: "application/javascript"
|
|
1248
|
-
}),
|
|
1249
|
-
class
|
|
1251
|
+
}), cs = URL.createObjectURL(os), ls = cs;
|
|
1252
|
+
class ds {
|
|
1250
1253
|
/**
|
|
1251
1254
|
* Creates a new WavStreamPlayer instance
|
|
1252
1255
|
* @param {{sampleRate?: number}} options
|
|
1253
1256
|
* @returns {WavStreamPlayer}
|
|
1254
1257
|
*/
|
|
1255
1258
|
constructor({ sampleRate: e = 44100, onPlaybackEnded: t = null } = {}) {
|
|
1256
|
-
this.scriptSrc =
|
|
1259
|
+
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;
|
|
1257
1260
|
}
|
|
1258
1261
|
/**
|
|
1259
1262
|
* Connects the audio context and enables output to speakers
|
|
@@ -1348,8 +1351,8 @@ class ls {
|
|
|
1348
1351
|
return this.getTrackSampleOffset(!0);
|
|
1349
1352
|
}
|
|
1350
1353
|
}
|
|
1351
|
-
globalThis.WavStreamPlayer =
|
|
1352
|
-
const
|
|
1354
|
+
globalThis.WavStreamPlayer = ds;
|
|
1355
|
+
const fs = URL.createObjectURL(
|
|
1353
1356
|
new Blob([`
|
|
1354
1357
|
class UpsampleStreamPCM extends AudioWorkletProcessor {
|
|
1355
1358
|
constructor(options) {
|
|
@@ -1521,7 +1524,7 @@ class UpsampleStreamPCM extends AudioWorkletProcessor {
|
|
|
1521
1524
|
registerProcessor('upsample-stream-pcm', UpsampleStreamPCM);
|
|
1522
1525
|
`], { type: "application/javascript" })
|
|
1523
1526
|
);
|
|
1524
|
-
class
|
|
1527
|
+
class Ya {
|
|
1525
1528
|
/**
|
|
1526
1529
|
* @param {{
|
|
1527
1530
|
* inputSampleRate?: number,
|
|
@@ -1566,7 +1569,7 @@ class Xa {
|
|
|
1566
1569
|
/** Build the WebAudio graph. Always audible via direct path; loopback ref is optional and non-critical. */
|
|
1567
1570
|
async connect() {
|
|
1568
1571
|
if (this.context) return !0;
|
|
1569
|
-
if (this.context = new (window.AudioContext || window.webkitAudioContext)({ latencyHint: "interactive" }), this.context.state === "suspended" && await this.context.resume(), await this.context.audioWorklet.addModule(
|
|
1572
|
+
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", {
|
|
1570
1573
|
processorOptions: {
|
|
1571
1574
|
sourceSampleRate: this.inputSampleRate,
|
|
1572
1575
|
prerollSrc: Math.round(this.inputSampleRate * 0.02)
|
|
@@ -1694,8 +1697,8 @@ class Xa {
|
|
|
1694
1697
|
return this.connect();
|
|
1695
1698
|
}
|
|
1696
1699
|
}
|
|
1697
|
-
globalThis.WavStreamPlayerV2 =
|
|
1698
|
-
const
|
|
1700
|
+
globalThis.WavStreamPlayerV2 = Ya;
|
|
1701
|
+
const hs = `
|
|
1699
1702
|
class AudioProcessor extends AudioWorkletProcessor {
|
|
1700
1703
|
|
|
1701
1704
|
constructor() {
|
|
@@ -1902,17 +1905,17 @@ class AudioProcessor extends AudioWorkletProcessor {
|
|
|
1902
1905
|
}
|
|
1903
1906
|
|
|
1904
1907
|
registerProcessor('audio_processor', AudioProcessor);
|
|
1905
|
-
`,
|
|
1908
|
+
`, bs = new Blob([hs], {
|
|
1906
1909
|
type: "application/javascript"
|
|
1907
|
-
}),
|
|
1908
|
-
class
|
|
1910
|
+
}), us = URL.createObjectURL(bs), ps = us;
|
|
1911
|
+
class gs {
|
|
1909
1912
|
/**
|
|
1910
1913
|
* Create a new WavRecorder instance
|
|
1911
1914
|
* @param {{sampleRate?: number, outputToSpeakers?: boolean, debug?: boolean}} [options]
|
|
1912
1915
|
* @returns {WavRecorder}
|
|
1913
1916
|
*/
|
|
1914
1917
|
constructor({ sampleRate: e = 44100, outputToSpeakers: t = !1, debug: i = !1 } = {}) {
|
|
1915
|
-
this.scriptSrc =
|
|
1918
|
+
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 = () => {
|
|
1916
1919
|
}, this._chunkProcessorSize = void 0, this._chunkProcessorBuffer = {
|
|
1917
1920
|
raw: new ArrayBuffer(0),
|
|
1918
1921
|
mono: new ArrayBuffer(0)
|
|
@@ -2241,8 +2244,8 @@ use only for debugging`), o.connect(t.destination)), this.source = i, this.node
|
|
|
2241
2244
|
return this.listenForDeviceChange(null), this.processor && await this.end(), !0;
|
|
2242
2245
|
}
|
|
2243
2246
|
}
|
|
2244
|
-
globalThis.WavRecorder =
|
|
2245
|
-
const
|
|
2247
|
+
globalThis.WavRecorder = gs;
|
|
2248
|
+
const ms = URL.createObjectURL(
|
|
2246
2249
|
new Blob([`
|
|
2247
2250
|
class DownsampleRecorder extends AudioWorkletProcessor {
|
|
2248
2251
|
constructor(options) {
|
|
@@ -2463,7 +2466,7 @@ class ot {
|
|
|
2463
2466
|
echoCancellationType: this.captureInfo.trackSettings?.echoCancellationType ?? null
|
|
2464
2467
|
}, this._log("Granted track settings:", this.captureInfo.trackSettings), this.audioCtx = new (window.AudioContext || window.webkitAudioContext)({
|
|
2465
2468
|
latencyHint: "interactive"
|
|
2466
|
-
}), this.captureInfo.contextSampleRate = this.audioCtx.sampleRate, this.source = this.audioCtx.createMediaStreamSource(this.stream), await this.audioCtx.audioWorklet.addModule(
|
|
2469
|
+
}), this.captureInfo.contextSampleRate = this.audioCtx.sampleRate, this.source = this.audioCtx.createMediaStreamSource(this.stream), await this.audioCtx.audioWorklet.addModule(ms);
|
|
2467
2470
|
const s = Math.round(this.targetSampleRate * this.chunkMs / 1e3);
|
|
2468
2471
|
return this.node = new AudioWorkletNode(this.audioCtx, "downsample-recorder", {
|
|
2469
2472
|
processorOptions: {
|
|
@@ -2539,11 +2542,11 @@ class ot {
|
|
|
2539
2542
|
}
|
|
2540
2543
|
}
|
|
2541
2544
|
globalThis.WavRecorderV2 = ot;
|
|
2542
|
-
class
|
|
2545
|
+
class ys {
|
|
2543
2546
|
constructor(e = {}) {
|
|
2544
|
-
this.sr = Math.max(8e3, e.sampleRate || 24e3), this.floor =
|
|
2547
|
+
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;
|
|
2545
2548
|
const t = Math.max(2, e.vadFastMs ?? 10), i = Math.max(t + 20, e.vadSlowMs ?? 250);
|
|
2546
|
-
this.alphaFast =
|
|
2549
|
+
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;
|
|
2547
2550
|
}
|
|
2548
2551
|
/** Arm a one‑shot, VAD‑escapable shield for the NEXT TTS start. */
|
|
2549
2552
|
armFirstTurnShield({
|
|
@@ -2557,8 +2560,8 @@ class ms {
|
|
|
2557
2560
|
vadAttackMs: r,
|
|
2558
2561
|
vadHangMs: o
|
|
2559
2562
|
} = {}) {
|
|
2560
|
-
const p = { durationSamp: Ce(e, this.sr), floor:
|
|
2561
|
-
s != null && (p.vadRatio =
|
|
2563
|
+
const p = { durationSamp: Ce(e, this.sr), floor: Ma(t), hardMute: !!i };
|
|
2564
|
+
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;
|
|
2562
2565
|
}
|
|
2563
2566
|
onTTSStart(e) {
|
|
2564
2567
|
if (this.duckActive = !0, this._nextShield) {
|
|
@@ -2599,20 +2602,20 @@ class ms {
|
|
|
2599
2602
|
this.target = e, this.rampRemain = t, this.rampRemain <= 0 ? (this.gain = this.target, this._step = 0) : this._step = (this.target - this.gain) / this.rampRemain;
|
|
2600
2603
|
}
|
|
2601
2604
|
}
|
|
2602
|
-
function
|
|
2605
|
+
function Ma(a) {
|
|
2603
2606
|
return Math.max(0, Math.min(1, a));
|
|
2604
2607
|
}
|
|
2605
2608
|
function Ce(a, e) {
|
|
2606
2609
|
return Math.max(0, Math.round(a * e / 1e3));
|
|
2607
2610
|
}
|
|
2608
|
-
function
|
|
2611
|
+
function Ta(a) {
|
|
2609
2612
|
return Math.pow(10, a / 10);
|
|
2610
2613
|
}
|
|
2611
|
-
function
|
|
2614
|
+
function Ia(a, e) {
|
|
2612
2615
|
const t = Math.max(1, a * e / 1e3);
|
|
2613
2616
|
return Math.exp(-1 / t);
|
|
2614
2617
|
}
|
|
2615
|
-
class
|
|
2618
|
+
class vs {
|
|
2616
2619
|
/**
|
|
2617
2620
|
* @param {object} opts
|
|
2618
2621
|
* @param {number} opts.sampleRate - Hz of your PCM (e.g., 24000)
|
|
@@ -2767,7 +2770,7 @@ class ys {
|
|
|
2767
2770
|
return o;
|
|
2768
2771
|
}
|
|
2769
2772
|
}
|
|
2770
|
-
class
|
|
2773
|
+
class ws {
|
|
2771
2774
|
/**
|
|
2772
2775
|
* @param {object} opts
|
|
2773
2776
|
* @param {number} opts.sampleRate - PCM sample rate (e.g., 24000)
|
|
@@ -2904,7 +2907,7 @@ class vs {
|
|
|
2904
2907
|
return o;
|
|
2905
2908
|
}
|
|
2906
2909
|
}
|
|
2907
|
-
class
|
|
2910
|
+
class xs {
|
|
2908
2911
|
/**
|
|
2909
2912
|
* @param {object} opts
|
|
2910
2913
|
* @param {number} opts.sampleRate - Mic PCM sample rate (e.g., 24000)
|
|
@@ -2949,26 +2952,26 @@ class ws {
|
|
|
2949
2952
|
}
|
|
2950
2953
|
const Ue = Je.noConflict();
|
|
2951
2954
|
Ue.setLevel("info");
|
|
2952
|
-
class pt extends
|
|
2955
|
+
class pt extends is {
|
|
2953
2956
|
constructor(e = {}) {
|
|
2954
2957
|
super({ name: "WebAudioProcessorV2" }), this.options = e, this.muted = !1, this.audioRecorder = new ot({
|
|
2955
2958
|
targetSampleRate: 24e3,
|
|
2956
2959
|
debug: !!e.debug
|
|
2957
|
-
}), this.audioPlayer = new
|
|
2960
|
+
}), this.audioPlayer = new Ya({
|
|
2958
2961
|
inputSampleRate: 24e3,
|
|
2959
2962
|
onPlaybackEnded: this.handleOnPlaybackEnded.bind(this),
|
|
2960
2963
|
firstTurnRampInMs: 200,
|
|
2961
2964
|
primeMs: 200,
|
|
2962
2965
|
// keep or remove; it’s harmless
|
|
2963
2966
|
debug: !!e.debug
|
|
2964
|
-
}), this.audioRecorderAnalyzer = null, this.audioPlayerAnalyzer = null, this.firstTurnDropMs = e.firstTurnDropMs ?? 1500, this.firstTurnGate = new
|
|
2967
|
+
}), this.audioRecorderAnalyzer = null, this.audioPlayerAnalyzer = null, this.firstTurnDropMs = e.firstTurnDropMs ?? 1500, this.firstTurnGate = new xs({
|
|
2965
2968
|
sampleRate: 24e3,
|
|
2966
2969
|
windowMs: this.firstTurnDropMs,
|
|
2967
2970
|
partialPass: !0,
|
|
2968
2971
|
// pass remainder of crossing frame
|
|
2969
2972
|
hardDrop: !0
|
|
2970
2973
|
// set true if you prefer simpler "drop whole frame"
|
|
2971
|
-
}), this.ducker = new
|
|
2974
|
+
}), this.ducker = new ys({
|
|
2972
2975
|
sampleRate: 24e3,
|
|
2973
2976
|
floor: 0.12,
|
|
2974
2977
|
attackMs: 12,
|
|
@@ -2983,7 +2986,7 @@ class pt extends as {
|
|
|
2983
2986
|
vadSlowMs: 250,
|
|
2984
2987
|
vadAttackMs: 18,
|
|
2985
2988
|
vadHangMs: 120
|
|
2986
|
-
}), this.mixMinus = new
|
|
2989
|
+
}), this.mixMinus = new vs({
|
|
2987
2990
|
sampleRate: 24e3,
|
|
2988
2991
|
bufferMs: 1e3,
|
|
2989
2992
|
threshold: 0.3,
|
|
@@ -2992,7 +2995,7 @@ class pt extends as {
|
|
|
2992
2995
|
hop: 64,
|
|
2993
2996
|
downsampleFactor: 3,
|
|
2994
2997
|
minCorrLenMs: 15
|
|
2995
|
-
}), this.mixMinusSmooth = new
|
|
2998
|
+
}), this.mixMinusSmooth = new ws({
|
|
2996
2999
|
sampleRate: 24e3,
|
|
2997
3000
|
bufferMs: 800,
|
|
2998
3001
|
lowThresh: 0.25,
|
|
@@ -3167,17 +3170,17 @@ class pt extends as {
|
|
|
3167
3170
|
}
|
|
3168
3171
|
}
|
|
3169
3172
|
globalThis.WebAudioProcessorV2 = pt;
|
|
3170
|
-
var
|
|
3171
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
3173
|
+
var ks = Object.defineProperty, _s = Object.getOwnPropertyDescriptor, st = (a, e, t, i) => {
|
|
3174
|
+
for (var s = i > 1 ? void 0 : i ? _s(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
3172
3175
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
3173
|
-
return i && s &&
|
|
3176
|
+
return i && s && ks(e, t, s), s;
|
|
3174
3177
|
};
|
|
3175
|
-
const Mt = "cb-toast-outlet",
|
|
3176
|
-
function
|
|
3178
|
+
const Mt = "cb-toast-outlet", Ea = "cb-toast-outlet-style";
|
|
3179
|
+
function Ss() {
|
|
3177
3180
|
let a = document.getElementById(Mt);
|
|
3178
|
-
if (a || (a = document.createElement("div"), a.id = Mt, document.body.appendChild(a)), !document.getElementById(
|
|
3181
|
+
if (a || (a = document.createElement("div"), a.id = Mt, document.body.appendChild(a)), !document.getElementById(Ea)) {
|
|
3179
3182
|
const e = document.createElement("style");
|
|
3180
|
-
e.id =
|
|
3183
|
+
e.id = Ea, e.textContent = `
|
|
3181
3184
|
/* Global outlet that holds all toasts */
|
|
3182
3185
|
#${Mt} {
|
|
3183
3186
|
position: fixed;
|
|
@@ -3201,8 +3204,8 @@ function _s() {
|
|
|
3201
3204
|
}
|
|
3202
3205
|
return a;
|
|
3203
3206
|
}
|
|
3204
|
-
function
|
|
3205
|
-
const e =
|
|
3207
|
+
function Ja(a) {
|
|
3208
|
+
const e = Ss(), t = document.createElement("cb-toast");
|
|
3206
3209
|
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;
|
|
3207
3210
|
}
|
|
3208
3211
|
let qe = class extends Fe {
|
|
@@ -3407,7 +3410,7 @@ function Ke(a) {
|
|
|
3407
3410
|
}
|
|
3408
3411
|
};
|
|
3409
3412
|
}
|
|
3410
|
-
function
|
|
3413
|
+
function Cs(a) {
|
|
3411
3414
|
return function e(t, i, s) {
|
|
3412
3415
|
switch (arguments.length) {
|
|
3413
3416
|
case 0:
|
|
@@ -3441,38 +3444,38 @@ function Ss(a) {
|
|
|
3441
3444
|
}
|
|
3442
3445
|
};
|
|
3443
3446
|
}
|
|
3444
|
-
const
|
|
3447
|
+
const As = Number.isInteger || function(e) {
|
|
3445
3448
|
return e << 0 === e;
|
|
3446
3449
|
};
|
|
3447
|
-
function
|
|
3450
|
+
function Ms(a, e) {
|
|
3448
3451
|
var t = a < 0 ? e.length + a : a;
|
|
3449
3452
|
return e[t];
|
|
3450
3453
|
}
|
|
3451
|
-
var
|
|
3454
|
+
var Ts = /* @__PURE__ */ Ke(function(e, t) {
|
|
3452
3455
|
return t == null || t !== t ? e : t;
|
|
3453
3456
|
});
|
|
3454
|
-
function
|
|
3457
|
+
function Is(a, e) {
|
|
3455
3458
|
for (var t = e, i = 0; i < a.length; i += 1) {
|
|
3456
3459
|
if (t == null)
|
|
3457
3460
|
return;
|
|
3458
3461
|
var s = a[i];
|
|
3459
|
-
|
|
3462
|
+
As(s) ? t = Ms(s, t) : t = t[s];
|
|
3460
3463
|
}
|
|
3461
3464
|
return t;
|
|
3462
3465
|
}
|
|
3463
|
-
var
|
|
3464
|
-
return
|
|
3466
|
+
var Gt = /* @__PURE__ */ Cs(function(e, t, i) {
|
|
3467
|
+
return Ts(e, Is(t, i));
|
|
3465
3468
|
});
|
|
3466
|
-
const Is = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
|
|
3467
|
-
var
|
|
3469
|
+
const Es = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
|
|
3470
|
+
var $s = Object.defineProperty, O = (a, e, t, i) => {
|
|
3468
3471
|
for (var s = void 0, r = a.length - 1, o; r >= 0; r--)
|
|
3469
3472
|
(o = a[r]) && (s = o(e, t, s) || s);
|
|
3470
|
-
return s &&
|
|
3473
|
+
return s && $s(e, t, s), s;
|
|
3471
3474
|
};
|
|
3472
3475
|
const T = Je.noConflict();
|
|
3473
3476
|
T.setLevel("info");
|
|
3474
|
-
const ne = "cb_",
|
|
3475
|
-
class R extends
|
|
3477
|
+
const ne = "cb_", Ps = (a) => new Promise((e) => setTimeout(e, a));
|
|
3478
|
+
class R extends Jt {
|
|
3476
3479
|
constructor() {
|
|
3477
3480
|
super(), this.actionIdCounter = 0, this.currentLoadContext = {}, this.prefilledFormValues = {}, this.wsClient = 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}`);
|
|
3478
3481
|
}
|
|
@@ -3518,7 +3521,7 @@ class R extends Yt {
|
|
|
3518
3521
|
}, this.botSettingsRetryTimeout * 1e3), this.botSettingsRetryTimeout = this.botSettingsRetryTimeout * 2;
|
|
3519
3522
|
return;
|
|
3520
3523
|
}
|
|
3521
|
-
T.info("Got bot settings - bot is enabled", r), this.disabled = !1, this.setting.welcomeMessage = r?.welcomeMessage || "How can I help ?", this.setting.disclaimerMessage = r?.disclaimerMessage && r.disclaimerMessage !== "" ? r.disclaimerMessage : null, this.setting.engageMessage = r?.engageMessage || "How can I help ?", this.setting.engageTimeout = r?.engageTimeout || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in r ? r.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in r ? r.feedbackEnabled : !1, this.setting.uploadImages = "uploadImages" in r ? r.uploadImages : !1, this.setting.newConversationTimeoutInSec = r?.newConversationTimeoutInSec || 86400, this.setting.enableNotificationSound = "enableNotificationSound" in r ? r.enableNotificationSound : !0, this.setting.botAdvancedSettings = r?.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.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.showNewConversationOnAgentDisconnected = this.setting.botAdvancedSettings?.showNewConversationOnAgentDisconnected ?? !1, this.setting.enableMultiModalConnection ? this.setting.enableAudio = !0 : this.setting.enableAudio = !1, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
|
|
3524
|
+
T.info("Got bot settings - bot is enabled", r), this.disabled = !1, this.setting.welcomeMessage = r?.welcomeMessage || "How can I help ?", this.setting.disclaimerMessage = r?.disclaimerMessage && r.disclaimerMessage !== "" ? r.disclaimerMessage : null, this.setting.engageMessage = r?.engageMessage || "How can I help ?", this.setting.engageTimeout = r?.engageTimeout || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in r ? r.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in r ? r.feedbackEnabled : !1, this.setting.uploadImages = "uploadImages" in r ? r.uploadImages : !1, this.setting.newConversationTimeoutInSec = r?.newConversationTimeoutInSec || 86400, this.setting.enableNotificationSound = "enableNotificationSound" in r ? r.enableNotificationSound : !0, this.setting.botAdvancedSettings = r?.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.showNewConversationOnAgentDisconnected = this.setting.botAdvancedSettings?.showNewConversationOnAgentDisconnected ?? !1, this.setting.enableMultiModalConnection ? this.setting.enableAudio = !0 : this.setting.enableAudio = !1, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
|
|
3522
3525
|
this.showEngagePopup();
|
|
3523
3526
|
}, this.setting.engageTimeout * 1e3);
|
|
3524
3527
|
}
|
|
@@ -3737,7 +3740,7 @@ class R extends Yt {
|
|
|
3737
3740
|
this.initForm(this.form);
|
|
3738
3741
|
return;
|
|
3739
3742
|
}
|
|
3740
|
-
const e =
|
|
3743
|
+
const e = Gt(null, ["startupForm"], this.botSettings);
|
|
3741
3744
|
if (!e || !e?.name) {
|
|
3742
3745
|
T.info("Startup form not present");
|
|
3743
3746
|
return;
|
|
@@ -3745,10 +3748,10 @@ class R extends Yt {
|
|
|
3745
3748
|
this.initForm(e);
|
|
3746
3749
|
}
|
|
3747
3750
|
initForm(e = null) {
|
|
3748
|
-
const t = e, i =
|
|
3751
|
+
const t = e, i = Gt(null, ["name"], e);
|
|
3749
3752
|
if (!t || !i)
|
|
3750
3753
|
return;
|
|
3751
|
-
const s =
|
|
3754
|
+
const s = Gt(null, ["fields"], e);
|
|
3752
3755
|
if (!Array.isArray(s) || s.length <= 0) {
|
|
3753
3756
|
T.info("form has no fields", e);
|
|
3754
3757
|
return;
|
|
@@ -3785,7 +3788,7 @@ class R extends Yt {
|
|
|
3785
3788
|
o[f] = parseInt(r.substr(f * 2, 2), 16);
|
|
3786
3789
|
return o;
|
|
3787
3790
|
};
|
|
3788
|
-
let t = new Blob([e(
|
|
3791
|
+
let t = new Blob([e(Es)], { type: "application/octet-stream" });
|
|
3789
3792
|
const i = URL.createObjectURL(t);
|
|
3790
3793
|
new Audio(i).play();
|
|
3791
3794
|
}
|
|
@@ -3806,7 +3809,7 @@ class R extends Yt {
|
|
|
3806
3809
|
} catch (s) {
|
|
3807
3810
|
T.error(`Failed to stringify context: ${s.message}`);
|
|
3808
3811
|
}
|
|
3809
|
-
return t = i.toString(), T.info(`Initiating ws connection to ${t} ...`), this.wsClient = new
|
|
3812
|
+
return t = i.toString(), T.info(`Initiating ws connection to ${t} ...`), this.wsClient = new as({
|
|
3810
3813
|
url: t,
|
|
3811
3814
|
orgId: this.setting.orgId,
|
|
3812
3815
|
botId: this.setting.botId,
|
|
@@ -3856,7 +3859,7 @@ class R extends Yt {
|
|
|
3856
3859
|
const s = t.includes("?"), [r, o] = s ? t.split("?") : [t, ""], f = r.split("/");
|
|
3857
3860
|
f[f.length - 1] = this.conversationId;
|
|
3858
3861
|
const p = f.join("/"), v = o ? `${p}?${o}` : p;
|
|
3859
|
-
this.wsClient.url = v, await
|
|
3862
|
+
this.wsClient.url = v, await Ps(1e3), await this.wsClient.start(), T.info(`WSC: started new conversation, conversationId=${this.conversationId}`);
|
|
3860
3863
|
} catch (i) {
|
|
3861
3864
|
T.error(`WSC: failed to reset conversation: ${i.message}`, i);
|
|
3862
3865
|
}
|
|
@@ -4246,7 +4249,7 @@ class R extends Yt {
|
|
|
4246
4249
|
if (s) {
|
|
4247
4250
|
T.error(
|
|
4248
4251
|
`File "${s.name}" exceeds the ${t} MB limit and will not be uploaded.`
|
|
4249
|
-
),
|
|
4252
|
+
), Ja({
|
|
4250
4253
|
message: `File is larger than ${t} MB`,
|
|
4251
4254
|
variant: "danger",
|
|
4252
4255
|
duration: 3800,
|
|
@@ -4412,6 +4415,7 @@ O([
|
|
|
4412
4415
|
url: null,
|
|
4413
4416
|
welcomeMessage: null,
|
|
4414
4417
|
disclaimerMessage: null,
|
|
4418
|
+
enableShowFullDisclaimerMessage: !1,
|
|
4415
4419
|
splitMessagesAtBreak: !1,
|
|
4416
4420
|
feedbackEnabled: !1,
|
|
4417
4421
|
startFeedbackFromMessage: 1,
|
|
@@ -4482,7 +4486,7 @@ O([
|
|
|
4482
4486
|
O([
|
|
4483
4487
|
z({ type: Boolean, value: !1 })
|
|
4484
4488
|
], R.prototype, "webAudioMuted");
|
|
4485
|
-
const b = new R(),
|
|
4489
|
+
const b = new R(), Ls = J`
|
|
4486
4490
|
${ke}
|
|
4487
4491
|
:host {
|
|
4488
4492
|
position: relative;
|
|
@@ -4557,12 +4561,12 @@ const b = new R(), Ps = J`
|
|
|
4557
4561
|
display: inline;
|
|
4558
4562
|
}
|
|
4559
4563
|
`;
|
|
4560
|
-
var
|
|
4564
|
+
var Rs = Object.defineProperty, zs = (a, e, t, i) => {
|
|
4561
4565
|
for (var s = void 0, r = a.length - 1, o; r >= 0; r--)
|
|
4562
4566
|
(o = a[r]) && (s = o(e, t, s) || s);
|
|
4563
|
-
return s &&
|
|
4567
|
+
return s && Rs(e, t, s), s;
|
|
4564
4568
|
};
|
|
4565
|
-
|
|
4569
|
+
qi("system", {
|
|
4566
4570
|
resolver: (a) => ""
|
|
4567
4571
|
});
|
|
4568
4572
|
(() => {
|
|
@@ -4599,15 +4603,15 @@ class re extends Fe {
|
|
|
4599
4603
|
return this.dispatchEvent(i), i;
|
|
4600
4604
|
}
|
|
4601
4605
|
}
|
|
4602
|
-
|
|
4606
|
+
zs([
|
|
4603
4607
|
x({ type: String })
|
|
4604
4608
|
], re.prototype, "lang");
|
|
4605
|
-
var
|
|
4606
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
4609
|
+
var Os = Object.defineProperty, Bs = Object.getOwnPropertyDescriptor, Za = (a, e, t, i) => {
|
|
4610
|
+
for (var s = i > 1 ? void 0 : i ? Bs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
4607
4611
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
4608
|
-
return i && s &&
|
|
4612
|
+
return i && s && Os(e, t, s), s;
|
|
4609
4613
|
};
|
|
4610
|
-
const
|
|
4614
|
+
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>';
|
|
4611
4615
|
let Ot = class extends re {
|
|
4612
4616
|
constructor() {
|
|
4613
4617
|
super(...arguments), this.title = "ChatBot";
|
|
@@ -4624,11 +4628,11 @@ let Ot = class extends re {
|
|
|
4624
4628
|
() => u`<img class="cb-header-logo" part="header-logo" src="${b.setting.logoUrl}" />`,
|
|
4625
4629
|
() => u`<div class="cb-header-logo" part="header-logo">${G(b.setting.logoSvg)}</div>`
|
|
4626
4630
|
)}
|
|
4627
|
-
<div class="cb-header-title" part="header-title">${this.title}</div>
|
|
4631
|
+
<div class="cb-header-title" part="header-title">${Vt(this.title)}</div>
|
|
4628
4632
|
${W(
|
|
4629
4633
|
b.alwaysOpen,
|
|
4630
4634
|
() => u``,
|
|
4631
|
-
() => u`<div class="cb-header-close" part="header-close">${G(
|
|
4635
|
+
() => u`<div class="cb-header-close" part="header-close">${G(qs)}</div>`
|
|
4632
4636
|
)}
|
|
4633
4637
|
</header>`;
|
|
4634
4638
|
}
|
|
@@ -4670,14 +4674,14 @@ let Ot = class extends re {
|
|
|
4670
4674
|
});
|
|
4671
4675
|
}
|
|
4672
4676
|
};
|
|
4673
|
-
Ot.styles =
|
|
4674
|
-
|
|
4677
|
+
Ot.styles = Ls;
|
|
4678
|
+
Za([
|
|
4675
4679
|
x({ type: String, attribute: "title" })
|
|
4676
4680
|
], Ot.prototype, "title", 2);
|
|
4677
|
-
Ot =
|
|
4681
|
+
Ot = Za([
|
|
4678
4682
|
Z("cb-header")
|
|
4679
4683
|
], Ot);
|
|
4680
|
-
const
|
|
4684
|
+
const Ds = J`
|
|
4681
4685
|
${ke}
|
|
4682
4686
|
.cb-footer {
|
|
4683
4687
|
line-height: 60px;
|
|
@@ -4692,12 +4696,12 @@ const qs = J`
|
|
|
4692
4696
|
color: var(--primary-color);
|
|
4693
4697
|
}
|
|
4694
4698
|
`;
|
|
4695
|
-
var
|
|
4696
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
4699
|
+
var Fs = Object.getOwnPropertyDescriptor, js = (a, e, t, i) => {
|
|
4700
|
+
for (var s = i > 1 ? void 0 : i ? Fs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
4697
4701
|
(o = a[r]) && (s = o(s) || s);
|
|
4698
4702
|
return s;
|
|
4699
4703
|
};
|
|
4700
|
-
let
|
|
4704
|
+
let Zt = class extends re {
|
|
4701
4705
|
constructor() {
|
|
4702
4706
|
super(...arguments), this.year = (/* @__PURE__ */ new Date()).getFullYear();
|
|
4703
4707
|
}
|
|
@@ -4732,11 +4736,11 @@ let Jt = class extends re {
|
|
|
4732
4736
|
`;
|
|
4733
4737
|
}
|
|
4734
4738
|
};
|
|
4735
|
-
|
|
4736
|
-
|
|
4739
|
+
Zt.styles = Ds;
|
|
4740
|
+
Zt = js([
|
|
4737
4741
|
Z("cb-footer")
|
|
4738
|
-
],
|
|
4739
|
-
const
|
|
4742
|
+
], Zt);
|
|
4743
|
+
const Hs = J`
|
|
4740
4744
|
${ke}
|
|
4741
4745
|
|
|
4742
4746
|
:host {
|
|
@@ -4937,7 +4941,7 @@ const js = J`
|
|
|
4937
4941
|
background-size: 100%;
|
|
4938
4942
|
transition: background 0s;
|
|
4939
4943
|
}
|
|
4940
|
-
`,
|
|
4944
|
+
`, Ka = J`
|
|
4941
4945
|
:host {
|
|
4942
4946
|
--primary-color: var(--sl-color-primary-600);
|
|
4943
4947
|
}
|
|
@@ -5091,7 +5095,7 @@ const js = J`
|
|
|
5091
5095
|
.card-btn[aria-disabled="true"]:focus-visible {
|
|
5092
5096
|
box-shadow: none;
|
|
5093
5097
|
}
|
|
5094
|
-
`,
|
|
5098
|
+
`, Qa = J`
|
|
5095
5099
|
:host {
|
|
5096
5100
|
--primary-color: var(--sl-color-primary-600);
|
|
5097
5101
|
}
|
|
@@ -5182,10 +5186,10 @@ const js = J`
|
|
|
5182
5186
|
}
|
|
5183
5187
|
.split-btn[aria-expanded="true"] .split-btn__caret { transform: rotate(180deg); }
|
|
5184
5188
|
`;
|
|
5185
|
-
var
|
|
5186
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
5189
|
+
var Vs = Object.defineProperty, Ns = Object.getOwnPropertyDescriptor, je = (a, e, t, i) => {
|
|
5190
|
+
for (var s = i > 1 ? void 0 : i ? Ns(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
5187
5191
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
5188
|
-
return i && s &&
|
|
5192
|
+
return i && s && Vs(e, t, s), s;
|
|
5189
5193
|
};
|
|
5190
5194
|
let gt = class extends Fe {
|
|
5191
5195
|
constructor() {
|
|
@@ -5366,7 +5370,7 @@ let Ge = class extends Fe {
|
|
|
5366
5370
|
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);
|
|
5367
5371
|
}
|
|
5368
5372
|
};
|
|
5369
|
-
Ge.styles =
|
|
5373
|
+
Ge.styles = Qa;
|
|
5370
5374
|
je([
|
|
5371
5375
|
x({ type: String })
|
|
5372
5376
|
], Ge.prototype, "variant", 2);
|
|
@@ -5385,12 +5389,12 @@ je([
|
|
|
5385
5389
|
Ge = je([
|
|
5386
5390
|
Z("cb-split-button")
|
|
5387
5391
|
], Ge);
|
|
5388
|
-
var
|
|
5389
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
5392
|
+
var Us = Object.defineProperty, Ws = Object.getOwnPropertyDescriptor, wt = (a, e, t, i) => {
|
|
5393
|
+
for (var s = i > 1 ? void 0 : i ? Ws(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
5390
5394
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
5391
|
-
return i && s &&
|
|
5395
|
+
return i && s && Us(e, t, s), s;
|
|
5392
5396
|
};
|
|
5393
|
-
const Tt = Je.noConflict(),
|
|
5397
|
+
const Tt = Je.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 = J`
|
|
5394
5398
|
:host { display: block; width: 100%; color: var(--cb-fg, #111827); }
|
|
5395
5399
|
|
|
5396
5400
|
/* CARD */
|
|
@@ -5577,9 +5581,9 @@ let Me = class extends Fe {
|
|
|
5577
5581
|
`;
|
|
5578
5582
|
return u`
|
|
5579
5583
|
<span class="star" role="img" aria-label="${e.toFixed(2)} filled">
|
|
5580
|
-
<svg class="star__base" viewBox="0 0 16 16" aria-hidden="true"><path d="${
|
|
5584
|
+
<svg class="star__base" viewBox="0 0 16 16" aria-hidden="true"><path d="${$a}"/></svg>
|
|
5581
5585
|
<div class="star__fill" style="${s}">
|
|
5582
|
-
<svg viewBox="0 0 16 16" aria-hidden="true"><path d="${
|
|
5586
|
+
<svg viewBox="0 0 16 16" aria-hidden="true"><path d="${$a}"/></svg>
|
|
5583
5587
|
</div>
|
|
5584
5588
|
</span>
|
|
5585
5589
|
`;
|
|
@@ -5710,7 +5714,7 @@ let Me = class extends Fe {
|
|
|
5710
5714
|
body: JSON.stringify(r)
|
|
5711
5715
|
});
|
|
5712
5716
|
if (!o.ok) {
|
|
5713
|
-
Tt.error("c7o: cart/add.js failed"),
|
|
5717
|
+
Tt.error("c7o: cart/add.js failed"), Ja({
|
|
5714
5718
|
message: "Unable to add item to cart.",
|
|
5715
5719
|
variant: "danger",
|
|
5716
5720
|
duration: 2800,
|
|
@@ -5721,7 +5725,7 @@ let Me = class extends Fe {
|
|
|
5721
5725
|
await o.json(), Tt.info("c7o: cart/add.js - cart updated"), Tt.info("c7o: reloading window after cart update"), window.location.reload();
|
|
5722
5726
|
}
|
|
5723
5727
|
};
|
|
5724
|
-
Me.styles = [
|
|
5728
|
+
Me.styles = [Gs, Ka, Qa];
|
|
5725
5729
|
Me.DRAG_THRESHOLD_PX = 10;
|
|
5726
5730
|
wt([
|
|
5727
5731
|
x({ type: Object })
|
|
@@ -5730,18 +5734,18 @@ wt([
|
|
|
5730
5734
|
xe(".horizontal-carousel")
|
|
5731
5735
|
], Me.prototype, "_hCarousel", 2);
|
|
5732
5736
|
wt([
|
|
5733
|
-
|
|
5737
|
+
Va()
|
|
5734
5738
|
], Me.prototype, "_canPrev", 2);
|
|
5735
5739
|
wt([
|
|
5736
|
-
|
|
5740
|
+
Va()
|
|
5737
5741
|
], Me.prototype, "_canNext", 2);
|
|
5738
5742
|
Me = wt([
|
|
5739
5743
|
Z("cb-block")
|
|
5740
5744
|
], Me);
|
|
5741
|
-
var
|
|
5742
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
5745
|
+
var Xs = Object.defineProperty, Ys = Object.getOwnPropertyDescriptor, ei = (a, e, t, i) => {
|
|
5746
|
+
for (var s = i > 1 ? void 0 : i ? Ys(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
5743
5747
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
5744
|
-
return i && s &&
|
|
5748
|
+
return i && s && Xs(e, t, s), s;
|
|
5745
5749
|
};
|
|
5746
5750
|
let Bt = class extends Fe {
|
|
5747
5751
|
constructor() {
|
|
@@ -5766,18 +5770,18 @@ Bt.styles = J`
|
|
|
5766
5770
|
gap: 0.75em; /* vertical rhythm between blocks */
|
|
5767
5771
|
}
|
|
5768
5772
|
`;
|
|
5769
|
-
|
|
5773
|
+
ei([
|
|
5770
5774
|
x({ type: Array })
|
|
5771
5775
|
], Bt.prototype, "blocks", 2);
|
|
5772
|
-
Bt =
|
|
5776
|
+
Bt = ei([
|
|
5773
5777
|
Z("cb-blocks")
|
|
5774
5778
|
], Bt);
|
|
5775
|
-
var Rt = { exports: {} },
|
|
5776
|
-
function
|
|
5777
|
-
return
|
|
5779
|
+
var Rt = { exports: {} }, Js = Rt.exports, Pa;
|
|
5780
|
+
function Zs() {
|
|
5781
|
+
return Pa || (Pa = 1, (function(a, e) {
|
|
5778
5782
|
(function(t, i) {
|
|
5779
5783
|
a.exports = i();
|
|
5780
|
-
})(
|
|
5784
|
+
})(Js, (function() {
|
|
5781
5785
|
function t(n, c) {
|
|
5782
5786
|
if (!(n instanceof c)) throw new TypeError("Cannot call a class as a function");
|
|
5783
5787
|
}
|
|
@@ -5823,7 +5827,7 @@ function Js() {
|
|
|
5823
5827
|
return n;
|
|
5824
5828
|
}
|
|
5825
5829
|
function v(n, c) {
|
|
5826
|
-
if ((V(n) || n === window || n === document) && (n = [n]), Pe(n) || Ve(n) || (n = [n]),
|
|
5830
|
+
if ((V(n) || n === window || n === document) && (n = [n]), Pe(n) || Ve(n) || (n = [n]), ua(n) != 0) {
|
|
5827
5831
|
if (Pe(n) && !Ve(n)) for (var l = n.length, d = 0; d < l && c.call(n[d], n[d], d, n) !== !1; d++) ;
|
|
5828
5832
|
else if (Ve(n)) {
|
|
5829
5833
|
for (var h in n) if (ie(n, h) && c.call(n[h], n[h], h, n) === !1) break;
|
|
@@ -5832,7 +5836,7 @@ function Js() {
|
|
|
5832
5836
|
}
|
|
5833
5837
|
function k(n) {
|
|
5834
5838
|
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] || [], h = { all: d, evt: null, found: null };
|
|
5835
|
-
return c && l &&
|
|
5839
|
+
return c && l && ua(d) > 0 && v(d, (function(m, g) {
|
|
5836
5840
|
if (m.eventName == c && m.fn.toString() == l.toString()) return h.found = !0, h.evt = g, !1;
|
|
5837
5841
|
})), h;
|
|
5838
5842
|
}
|
|
@@ -5977,7 +5981,7 @@ function Js() {
|
|
|
5977
5981
|
function ie(n, c) {
|
|
5978
5982
|
return n !== null && hasOwnProperty.call(n, c);
|
|
5979
5983
|
}
|
|
5980
|
-
function
|
|
5984
|
+
function ua(n) {
|
|
5981
5985
|
if (Ve(n)) {
|
|
5982
5986
|
if (n.keys) return n.keys().length;
|
|
5983
5987
|
var c = 0;
|
|
@@ -5989,7 +5993,7 @@ function Js() {
|
|
|
5989
5993
|
function xt(n) {
|
|
5990
5994
|
return !isNaN(parseFloat(n)) && isFinite(n);
|
|
5991
5995
|
}
|
|
5992
|
-
function
|
|
5996
|
+
function pa() {
|
|
5993
5997
|
var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1, c = document.querySelectorAll(".gbtn[data-taborder]:not(.disabled)");
|
|
5994
5998
|
if (!c.length) return !1;
|
|
5995
5999
|
if (c.length == 1) return c[0];
|
|
@@ -6007,7 +6011,7 @@ function Js() {
|
|
|
6007
6011
|
})), g = m.sort()[0];
|
|
6008
6012
|
return document.querySelector('.gbtn[data-taborder="'.concat(g, '"]'));
|
|
6009
6013
|
}
|
|
6010
|
-
function
|
|
6014
|
+
function wi(n) {
|
|
6011
6015
|
if (n.events.hasOwnProperty("keyboard")) return !1;
|
|
6012
6016
|
n.events.keyboard = w("keydown", { onElement: window, withCallback: function(c, l) {
|
|
6013
6017
|
var d = (c = c || window.event).keyCode;
|
|
@@ -6021,16 +6025,16 @@ function Js() {
|
|
|
6021
6025
|
var g = document.querySelectorAll(".gbtn[data-taborder]");
|
|
6022
6026
|
if (!g || g.length <= 0) return;
|
|
6023
6027
|
if (!h) {
|
|
6024
|
-
var y =
|
|
6028
|
+
var y = pa();
|
|
6025
6029
|
return void (y && (y.focus(), _(y, "focused")));
|
|
6026
6030
|
}
|
|
6027
|
-
var A =
|
|
6031
|
+
var A = pa(h.getAttribute("data-taborder"));
|
|
6028
6032
|
P(h, "focused"), A && (A.focus(), _(A, "focused"));
|
|
6029
6033
|
}
|
|
6030
6034
|
d == 39 && n.nextSlide(), d == 37 && n.prevSlide(), d == 27 && n.close();
|
|
6031
6035
|
} });
|
|
6032
6036
|
}
|
|
6033
|
-
var
|
|
6037
|
+
var xi = s((function n(c, l) {
|
|
6034
6038
|
var d = this, h = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
|
|
6035
6039
|
if (t(this, n), this.img = c, this.slide = l, this.onclose = h, this.img.setZoomEvents) return !1;
|
|
6036
6040
|
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) {
|
|
@@ -6072,7 +6076,7 @@ function Js() {
|
|
|
6072
6076
|
n.style.transform = "translate3d(" + c + "px, " + l + "px, 0)";
|
|
6073
6077
|
} }, { key: "widowWidth", value: function() {
|
|
6074
6078
|
return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
|
6075
|
-
} }]),
|
|
6079
|
+
} }]), ga = s((function n() {
|
|
6076
6080
|
var c = this, l = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
6077
6081
|
t(this, n);
|
|
6078
6082
|
var d = l.dragEl, h = l.toleranceX, m = h === void 0 ? 40 : h, 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;
|
|
@@ -6124,13 +6128,13 @@ function Js() {
|
|
|
6124
6128
|
var d = arguments.length > 3 && arguments[3] !== void 0 && arguments[3];
|
|
6125
6129
|
n.style.transition = d ? "all .2s ease" : "", n.style.transform = "translate3d(".concat(c, "px, ").concat(l, "px, 0)");
|
|
6126
6130
|
} }]);
|
|
6127
|
-
function
|
|
6131
|
+
function ki(n, c, l, d) {
|
|
6128
6132
|
var h = n.querySelector(".gslide-media"), m = new Image(), g = "gSlideTitle_" + l, y = "gSlideDesc_" + l;
|
|
6129
6133
|
m.addEventListener("load", (function() {
|
|
6130
6134
|
F(d) && d();
|
|
6131
6135
|
}), !1), m.src = c.href, c.sizes != "" && c.srcset != "" && (m.sizes = c.sizes, m.srcset = c.srcset), m.alt = "", be(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), h.insertBefore(m, h.firstChild);
|
|
6132
6136
|
}
|
|
6133
|
-
function
|
|
6137
|
+
function _i(n, c, l, d) {
|
|
6134
6138
|
var h = this, m = n.querySelector(".ginner-container"), g = "gvideo" + l, y = n.querySelector(".gslide-media"), A = this.getAllPlayers();
|
|
6135
6139
|
_(m, "gvideo-container"), y.insertBefore(X('<div class="gvideo-wrapper"></div>'), y.firstChild);
|
|
6136
6140
|
var S = n.querySelector(".gvideo-wrapper");
|
|
@@ -6151,14 +6155,14 @@ function Js() {
|
|
|
6151
6155
|
return n.querySelector("iframe") && n.querySelector("iframe").dataset.ready == "true";
|
|
6152
6156
|
}), (function() {
|
|
6153
6157
|
h.resize(n);
|
|
6154
|
-
})), me.on("enterfullscreen",
|
|
6158
|
+
})), me.on("enterfullscreen", ma), me.on("exitfullscreen", ma);
|
|
6155
6159
|
}));
|
|
6156
6160
|
}
|
|
6157
|
-
function
|
|
6161
|
+
function ma(n) {
|
|
6158
6162
|
var c = M(n.target, ".gslide-media");
|
|
6159
6163
|
n.type === "enterfullscreen" && _(c, "fullscreen"), n.type === "exitfullscreen" && P(c, "fullscreen");
|
|
6160
6164
|
}
|
|
6161
|
-
function
|
|
6165
|
+
function Si(n, c, l, d) {
|
|
6162
6166
|
var h, m = this, g = n.querySelector(".gslide-media"), y = !(!ie(c, "href") || !c.href) && c.href.split("#").pop().trim(), A = !(!ie(c, "content") || !c.content) && c.content;
|
|
6163
6167
|
if (A && (j(A) && (h = X('<div class="ginlined-content">'.concat(A, "</div>"))), V(A))) {
|
|
6164
6168
|
A.style.display == "none" && (A.style.display = "block");
|
|
@@ -6176,7 +6180,7 @@ function Js() {
|
|
|
6176
6180
|
B.preventDefault(), m.close();
|
|
6177
6181
|
} }), F(d) && d();
|
|
6178
6182
|
}
|
|
6179
|
-
function
|
|
6183
|
+
function Ci(n, c, l, d) {
|
|
6180
6184
|
var h = n.querySelector(".gslide-media"), m = (function(g) {
|
|
6181
6185
|
var y = g.url, A = g.allow, S = g.callback, I = g.appendTo, $ = document.createElement("iframe");
|
|
6182
6186
|
return $.className = "vimeo-video gvideo", $.src = y, $.style.width = "100%", $.style.height = "100%", A && $.setAttribute("allow", A), $.onload = function() {
|
|
@@ -6185,7 +6189,7 @@ function Js() {
|
|
|
6185
6189
|
})({ url: c.href, callback: d });
|
|
6186
6190
|
h.parentNode.style.maxWidth = c.width, h.parentNode.style.height = c.height, h.appendChild(m);
|
|
6187
6191
|
}
|
|
6188
|
-
var
|
|
6192
|
+
var Ai = s((function n() {
|
|
6189
6193
|
var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
6190
6194
|
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));
|
|
6191
6195
|
}), [{ key: "sourceType", value: function(n) {
|
|
@@ -6256,14 +6260,14 @@ function Js() {
|
|
|
6256
6260
|
if (F(d.afterSlideLoad) && (B = function() {
|
|
6257
6261
|
F(l) && l(), d.afterSlideLoad({ index: n.index, slide: c, player: n.instance.getSlidePlayerInstance(n.index) });
|
|
6258
6262
|
}), h.title == "" && h.description == "" ? $ && $.parentNode.parentNode.removeChild($.parentNode) : (S && h.title !== "" ? (S.id = q, S.innerHTML = h.title) : S.parentNode.removeChild(S), I && h.description !== "" ? (I.id = D, m && d.moreLength > 0 ? (h.smallDescription = this.slideShortDesc(h.description, d.moreLength, d.moreText), I.innerHTML = h.smallDescription, this.descriptionEvents(I, h)) : I.innerHTML = h.description) : I.parentNode.removeChild(I), _(A.parentNode, "desc-".concat(y)), _($.parentNode, "description-".concat(y))), _(A, "gslide-".concat(g)), _(c, "loaded"), g !== "video") {
|
|
6259
|
-
if (g !== "external") return g === "inline" ? (
|
|
6263
|
+
if (g !== "external") return g === "inline" ? (Si.apply(this.instance, [c, h, this.index, B]), void (h.draggable && new ga({ dragEl: c.querySelector(".gslide-inline"), toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: this.instance }))) : void (g !== "image" ? F(B) && B() : ki(c, h, this.index, (function() {
|
|
6260
6264
|
var ee = c.querySelector("img");
|
|
6261
|
-
h.draggable && new
|
|
6265
|
+
h.draggable && new ga({ dragEl: ee, toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: n.instance }), h.zoomable && ee.naturalWidth > ee.offsetWidth && (_(ee, "zoomable"), new xi(ee, c, (function() {
|
|
6262
6266
|
n.instance.resize();
|
|
6263
6267
|
}))), F(B) && B();
|
|
6264
6268
|
})));
|
|
6265
|
-
|
|
6266
|
-
} else
|
|
6269
|
+
Ci.apply(this, [c, h, this.index, B]);
|
|
6270
|
+
} else _i.apply(this.instance, [c, h, this.index, B]);
|
|
6267
6271
|
} }, { key: "slideShortDesc", value: function(n) {
|
|
6268
6272
|
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");
|
|
6269
6273
|
d.innerHTML = n;
|
|
@@ -6289,13 +6293,13 @@ function Js() {
|
|
|
6289
6293
|
return X(this.instance.settings.slideHTML);
|
|
6290
6294
|
} }, { key: "getConfig", value: function() {
|
|
6291
6295
|
V(this.element) || this.element.hasOwnProperty("draggable") || (this.element.draggable = this.instance.settings.draggable);
|
|
6292
|
-
var n = new
|
|
6296
|
+
var n = new Ai(this.instance.settings.slideExtraAttributes);
|
|
6293
6297
|
return this.slideConfig = n.parseConfig(this.element, this.instance.settings), this.slideConfig;
|
|
6294
6298
|
} }]);
|
|
6295
6299
|
function _t(n) {
|
|
6296
6300
|
return Math.sqrt(n.x * n.x + n.y * n.y);
|
|
6297
6301
|
}
|
|
6298
|
-
function
|
|
6302
|
+
function Mi(n, c) {
|
|
6299
6303
|
var l = (function(d, h) {
|
|
6300
6304
|
var m = _t(d) * _t(h);
|
|
6301
6305
|
if (m === 0) return 0;
|
|
@@ -6308,7 +6312,7 @@ function Js() {
|
|
|
6308
6312
|
return d.x * h.y - h.x * d.y;
|
|
6309
6313
|
})(n, c) > 0 && (l *= -1), 180 * l / Math.PI;
|
|
6310
6314
|
}
|
|
6311
|
-
var
|
|
6315
|
+
var Ti = s((function n(c) {
|
|
6312
6316
|
t(this, n), this.handlers = [], this.el = c;
|
|
6313
6317
|
}), [{ key: "add", value: function(n) {
|
|
6314
6318
|
this.handlers.push(n);
|
|
@@ -6322,10 +6326,10 @@ function Js() {
|
|
|
6322
6326
|
}
|
|
6323
6327
|
} }]);
|
|
6324
6328
|
function le(n, c) {
|
|
6325
|
-
var l = new
|
|
6329
|
+
var l = new Ti(n);
|
|
6326
6330
|
return l.add(c), l;
|
|
6327
6331
|
}
|
|
6328
|
-
var
|
|
6332
|
+
var Ii = s((function n(c, l) {
|
|
6329
6333
|
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;
|
|
6330
6334
|
var d = function() {
|
|
6331
6335
|
};
|
|
@@ -6349,7 +6353,7 @@ function Js() {
|
|
|
6349
6353
|
var c = this.preV, l = n.touches.length, d = n.touches[0].pageX, h = n.touches[0].pageY;
|
|
6350
6354
|
if (this.isDoubleTap = !1, l > 1) {
|
|
6351
6355
|
var m = n.touches[1].pageX, g = n.touches[1].pageY, y = { x: n.touches[1].pageX - d, y: n.touches[1].pageY - h };
|
|
6352
|
-
c.x !== null && (this.pinchStartLen > 0 && (n.zoom = _t(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle =
|
|
6356
|
+
c.x !== null && (this.pinchStartLen > 0 && (n.zoom = _t(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 = (h - this.y2 + g - this.sy2) / 2) : (n.deltaX = 0, n.deltaY = 0), this.twoFingerPressMove.dispatch(n, this.element), this.sx2 = m, this.sy2 = g;
|
|
6353
6357
|
} else {
|
|
6354
6358
|
if (this.x2 !== null) {
|
|
6355
6359
|
n.deltaX = d - this.x2, n.deltaY = h - this.y2;
|
|
@@ -6389,7 +6393,7 @@ function Js() {
|
|
|
6389
6393
|
} }, { key: "destroy", value: function() {
|
|
6390
6394
|
return this.singleTapTimeout && clearTimeout(this.singleTapTimeout), this.tapTimeout && clearTimeout(this.tapTimeout), this.longTapTimeout && clearTimeout(this.longTapTimeout), this.swipeTimeout && clearTimeout(this.swipeTimeout), this.element.removeEventListener("touchstart", this.start), this.element.removeEventListener("touchmove", this.move), this.element.removeEventListener("touchend", this.end), this.element.removeEventListener("touchcancel", this.cancel), this.rotate.del(), this.touchStart.del(), this.multipointStart.del(), this.multipointEnd.del(), this.pinch.del(), this.swipe.del(), this.tap.del(), this.doubleTap.del(), this.longTap.del(), this.singleTap.del(), this.pressMove.del(), this.twoFingerPressMove.del(), this.touchMove.del(), this.touchEnd.del(), this.touchCancel.del(), this.preV = this.pinchStartLen = this.zoom = this.isDoubleTap = this.delta = this.last = this.now = this.tapTimeout = this.singleTapTimeout = this.longTapTimeout = this.swipeTimeout = this.x1 = this.x2 = this.y1 = this.y2 = this.preTapPosition = this.rotate = this.touchStart = this.multipointStart = this.multipointEnd = this.pinch = this.swipe = this.tap = this.doubleTap = this.longTap = this.singleTap = this.pressMove = this.touchMove = this.touchEnd = this.touchCancel = this.twoFingerPressMove = null, window.removeEventListener("scroll", this._cancelAllHandler), null;
|
|
6391
6395
|
} }]);
|
|
6392
|
-
function
|
|
6396
|
+
function Ut(n) {
|
|
6393
6397
|
var c = (function() {
|
|
6394
6398
|
var g, y = document.createElement("fakeelement"), A = { transition: "transitionend", OTransition: "oTransitionEnd", MozTransition: "transitionend", WebkitTransition: "webkitTransitionEnd" };
|
|
6395
6399
|
for (g in A) if (y.style[g] !== void 0) return A[g];
|
|
@@ -6398,11 +6402,11 @@ function Js() {
|
|
|
6398
6402
|
P(d, "greset");
|
|
6399
6403
|
} }), d.style.opacity = "", m && (m.style.opacity = "");
|
|
6400
6404
|
}
|
|
6401
|
-
function
|
|
6405
|
+
function Ei(n) {
|
|
6402
6406
|
if (n.events.hasOwnProperty("touch")) return !1;
|
|
6403
|
-
var c, l, d, h = te(), m = h.width, g = h.height, y = !1, A = null, S = null, I = null, $ = !1, B = 1, q = 1, D = !1, ee = !1, me = null, ue = null, Le = null, oe = null, Re = 0, ze = 0, ht = !1, rt = !1, _e = {}, Se = {},
|
|
6407
|
+
var c, l, d, h = te(), m = h.width, g = h.height, y = !1, A = null, S = null, I = null, $ = !1, B = 1, q = 1, D = !1, ee = !1, me = null, ue = null, Le = null, oe = null, Re = 0, ze = 0, ht = !1, rt = !1, _e = {}, Se = {}, xa = 0, ka = 0, Li = document.getElementById("glightbox-slider"), St = document.querySelector(".goverlay"), Ri = new Ii(Li, { touchStart: function(Y) {
|
|
6404
6408
|
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) {
|
|
6405
|
-
if (Se = Y.targetTouches[0], _e.pageX = Y.targetTouches[0].pageX, _e.pageY = Y.targetTouches[0].pageY,
|
|
6409
|
+
if (Se = Y.targetTouches[0], _e.pageX = Y.targetTouches[0].pageX, _e.pageY = Y.targetTouches[0].pageY, xa = Y.targetTouches[0].clientX, ka = 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(St, "greset"), Y.pageX > 20 && Y.pageX < window.innerWidth - 20) return;
|
|
6406
6410
|
Y.preventDefault();
|
|
6407
6411
|
}
|
|
6408
6412
|
}, touchMove: function(Y) {
|
|
@@ -6412,15 +6416,15 @@ function Js() {
|
|
|
6412
6416
|
if (Math.abs(de) <= 13) return !1;
|
|
6413
6417
|
}
|
|
6414
6418
|
$ = !0;
|
|
6415
|
-
var Ne, Ct = Y.targetTouches[0].clientX,
|
|
6416
|
-
if (Math.abs(
|
|
6419
|
+
var Ne, Ct = Y.targetTouches[0].clientX, zi = Y.targetTouches[0].clientY, Oi = xa - Ct, Bi = ka - zi;
|
|
6420
|
+
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 && (Ne = 1 - Math.abs(l) / g, St.style.opacity = Ne, n.settings.touchFollowAxis && (Re = 0)), rt && (Ne = 1 - Math.abs(c) / m, S.style.opacity = Ne, n.settings.touchFollowAxis && (ze = 0)), !I) return C(S, "translate3d(".concat(Re, "%, 0, 0)"));
|
|
6417
6421
|
C(S, "translate3d(".concat(Re, "%, ").concat(ze, "%, 0)"));
|
|
6418
6422
|
}
|
|
6419
6423
|
}, touchEnd: function() {
|
|
6420
6424
|
if (y) {
|
|
6421
6425
|
if ($ = !1, ee || D) return Le = me, void (oe = ue);
|
|
6422
6426
|
var Y = Math.abs(parseInt(ze)), de = Math.abs(parseInt(Re));
|
|
6423
|
-
if (!(Y > 29 && I)) return Y < 29 && de < 25 ? (_(St, "greset"), St.style.opacity = 1,
|
|
6427
|
+
if (!(Y > 29 && I)) return Y < 29 && de < 25 ? (_(St, "greset"), St.style.opacity = 1, Ut(S)) : void 0;
|
|
6424
6428
|
n.close();
|
|
6425
6429
|
}
|
|
6426
6430
|
}, multipointEnd: function() {
|
|
@@ -6446,18 +6450,18 @@ function Js() {
|
|
|
6446
6450
|
if (!ee) if (D) D = !1;
|
|
6447
6451
|
else {
|
|
6448
6452
|
if (Y.direction == "Left") {
|
|
6449
|
-
if (n.index == n.elements.length - 1) return
|
|
6453
|
+
if (n.index == n.elements.length - 1) return Ut(S);
|
|
6450
6454
|
n.nextSlide();
|
|
6451
6455
|
}
|
|
6452
6456
|
if (Y.direction == "Right") {
|
|
6453
|
-
if (n.index == 0) return
|
|
6457
|
+
if (n.index == 0) return Ut(S);
|
|
6454
6458
|
n.prevSlide();
|
|
6455
6459
|
}
|
|
6456
6460
|
}
|
|
6457
6461
|
} });
|
|
6458
|
-
n.events.touch =
|
|
6462
|
+
n.events.touch = Ri;
|
|
6459
6463
|
}
|
|
6460
|
-
var
|
|
6464
|
+
var ya = ge(), va = ge() !== null || document.createTouch !== void 0 || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, wa = 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">
|
|
6461
6465
|
<div class="gslide-inner-content">
|
|
6462
6466
|
<div class="ginner-container">
|
|
6463
6467
|
<div class="gslide-media">
|
|
@@ -6479,9 +6483,9 @@ function Js() {
|
|
|
6479
6483
|
<button class="gprev gbtn" aria-label="Previous" data-taborder="2">{prevSVG}</button>
|
|
6480
6484
|
<button class="gnext gbtn" aria-label="Next" data-taborder="1">{nextSVG}</button>
|
|
6481
6485
|
</div>
|
|
6482
|
-
</div>` },
|
|
6486
|
+
</div>` }, Pi = s((function n() {
|
|
6483
6487
|
var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
6484
|
-
t(this, n), this.customOptions = c, this.settings = p(
|
|
6488
|
+
t(this, n), this.customOptions = c, this.settings = p($i, c), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = !1;
|
|
6485
6489
|
}), [{ key: "init", value: function() {
|
|
6486
6490
|
var n = this, c = this.getSelector();
|
|
6487
6491
|
c && (this.baseEvents = w("click", { onElement: c, withCallback: function(l, d) {
|
|
@@ -6502,7 +6506,7 @@ function Js() {
|
|
|
6502
6506
|
var g = document.createElement("style");
|
|
6503
6507
|
g.type = "text/css", g.className = "gcss-styles", g.innerText = ".gscrollbar-fixer {margin-right: ".concat(m, "px}"), document.head.appendChild(g), _(h, "gscrollbar-fixer");
|
|
6504
6508
|
}
|
|
6505
|
-
_(h, "glightbox-open"), _(
|
|
6509
|
+
_(h, "glightbox-open"), _(wa, "glightbox-open"), ya && (_(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"), F(this.settings.onOpen) && this.settings.onOpen(), va && this.settings.touchNavigation && Ei(this), this.settings.keyboardNavigation && wi(this);
|
|
6506
6510
|
} }, { key: "openAt", value: function() {
|
|
6507
6511
|
var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
|
|
6508
6512
|
this.open(null, n);
|
|
@@ -6615,7 +6619,7 @@ function Js() {
|
|
|
6615
6619
|
l && !l.playing && l.play();
|
|
6616
6620
|
} }, { key: "slidePlayerPlay", value: function(n) {
|
|
6617
6621
|
var c;
|
|
6618
|
-
if (!
|
|
6622
|
+
if (!ya || (c = this.settings.plyr.config) !== null && c !== void 0 && c.muted) {
|
|
6619
6623
|
if (V(n)) {
|
|
6620
6624
|
var l = n.querySelector(".gvideo-wrapper");
|
|
6621
6625
|
l && (n = l.getAttribute("data-index"));
|
|
@@ -6689,7 +6693,7 @@ function Js() {
|
|
|
6689
6693
|
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();
|
|
6690
6694
|
} })), v(this.elements, (function(S, I) {
|
|
6691
6695
|
n.slidesContainer.appendChild(S.instance.create()), S.slideNode = n.slidesContainer.querySelectorAll(".gslide")[I];
|
|
6692
|
-
})),
|
|
6696
|
+
})), va && _(document.body, "glightbox-touch"), this.events.resize = w("resize", { onElement: window, withCallback: function() {
|
|
6693
6697
|
n.resize();
|
|
6694
6698
|
} }), this.built = !0;
|
|
6695
6699
|
} }, { key: "resize", value: function() {
|
|
@@ -6745,7 +6749,7 @@ function Js() {
|
|
|
6745
6749
|
n.events = null;
|
|
6746
6750
|
}
|
|
6747
6751
|
var d = document.body;
|
|
6748
|
-
P(
|
|
6752
|
+
P(wa, "glightbox-open"), P(d, "glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer"), n.modal.parentNode.removeChild(n.modal), n.trigger("close"), F(n.settings.onClose) && n.settings.onClose();
|
|
6749
6753
|
var h = document.querySelector(".gcss-styles");
|
|
6750
6754
|
h && h.parentNode.removeChild(h), n.lightboxOpen = !1, n.closing = null;
|
|
6751
6755
|
}));
|
|
@@ -6771,25 +6775,25 @@ function Js() {
|
|
|
6771
6775
|
return "3.3.1";
|
|
6772
6776
|
} }]);
|
|
6773
6777
|
return function() {
|
|
6774
|
-
var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = new
|
|
6778
|
+
var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = new Pi(n);
|
|
6775
6779
|
return c.init(), c;
|
|
6776
6780
|
};
|
|
6777
6781
|
}));
|
|
6778
6782
|
})(Rt)), Rt.exports;
|
|
6779
6783
|
}
|
|
6780
|
-
var
|
|
6781
|
-
const
|
|
6782
|
-
var
|
|
6783
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
6784
|
+
var Ks = Zs();
|
|
6785
|
+
const Qs = /* @__PURE__ */ Wa(Ks);
|
|
6786
|
+
var en = Object.getOwnPropertyDescriptor, tn = (a, e, t, i) => {
|
|
6787
|
+
for (var s = i > 1 ? void 0 : i ? en(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
6784
6788
|
(o = a[r]) && (s = o(s) || s);
|
|
6785
6789
|
return s;
|
|
6786
6790
|
};
|
|
6787
|
-
let
|
|
6791
|
+
let Kt = class extends Fe {
|
|
6788
6792
|
render() {
|
|
6789
6793
|
return u` <div class="cb-thinking"><span></span><span></span><span></span></div>`;
|
|
6790
6794
|
}
|
|
6791
6795
|
};
|
|
6792
|
-
|
|
6796
|
+
Kt.styles = J`
|
|
6793
6797
|
.cb-thinking {
|
|
6794
6798
|
text-align: center;
|
|
6795
6799
|
}
|
|
@@ -6827,13 +6831,13 @@ Zt.styles = J`
|
|
|
6827
6831
|
}
|
|
6828
6832
|
}
|
|
6829
6833
|
`;
|
|
6830
|
-
|
|
6834
|
+
Kt = tn([
|
|
6831
6835
|
Z("cb-thinking")
|
|
6832
|
-
],
|
|
6833
|
-
var
|
|
6834
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
6836
|
+
], Kt);
|
|
6837
|
+
var an = Object.defineProperty, sn = Object.getOwnPropertyDescriptor, ti = (a, e, t, i) => {
|
|
6838
|
+
for (var s = i > 1 ? void 0 : i ? sn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
6835
6839
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
6836
|
-
return i && s &&
|
|
6840
|
+
return i && s && an(e, t, s), s;
|
|
6837
6841
|
};
|
|
6838
6842
|
let qt = class extends re {
|
|
6839
6843
|
constructor() {
|
|
@@ -6869,13 +6873,13 @@ qt.styles = J`
|
|
|
6869
6873
|
margin-right: 5px;
|
|
6870
6874
|
}
|
|
6871
6875
|
`;
|
|
6872
|
-
|
|
6876
|
+
ti([
|
|
6873
6877
|
x({ type: Array })
|
|
6874
6878
|
], qt.prototype, "files", 2);
|
|
6875
|
-
qt =
|
|
6879
|
+
qt = ti([
|
|
6876
6880
|
Z("cb-uploading")
|
|
6877
6881
|
], qt);
|
|
6878
|
-
const
|
|
6882
|
+
const nn = J`
|
|
6879
6883
|
${ke}
|
|
6880
6884
|
:host {
|
|
6881
6885
|
}
|
|
@@ -6896,10 +6900,10 @@ const sn = J`
|
|
|
6896
6900
|
margin-right: 0.2em;
|
|
6897
6901
|
}
|
|
6898
6902
|
`;
|
|
6899
|
-
var
|
|
6900
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
6903
|
+
var rn = Object.defineProperty, on = Object.getOwnPropertyDescriptor, ca = (a, e, t, i) => {
|
|
6904
|
+
for (var s = i > 1 ? void 0 : i ? on(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
6901
6905
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
6902
|
-
return i && s &&
|
|
6906
|
+
return i && s && rn(e, t, s), s;
|
|
6903
6907
|
};
|
|
6904
6908
|
let mt = class extends Fe {
|
|
6905
6909
|
constructor() {
|
|
@@ -6946,29 +6950,29 @@ mt.styles = J`
|
|
|
6946
6950
|
text-decoration: underline;
|
|
6947
6951
|
}
|
|
6948
6952
|
`;
|
|
6949
|
-
|
|
6953
|
+
ca([
|
|
6950
6954
|
x({ type: String })
|
|
6951
6955
|
], mt.prototype, "url", 2);
|
|
6952
|
-
|
|
6956
|
+
ca([
|
|
6953
6957
|
x({ type: Boolean })
|
|
6954
6958
|
], mt.prototype, "inverse", 2);
|
|
6955
|
-
mt =
|
|
6959
|
+
mt = ca([
|
|
6956
6960
|
Z("cb-external-link")
|
|
6957
6961
|
], mt);
|
|
6958
|
-
const
|
|
6959
|
-
var
|
|
6960
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
6962
|
+
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>', bn = '<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>', un = '<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>';
|
|
6963
|
+
var pn = Object.defineProperty, gn = Object.getOwnPropertyDescriptor, la = (a, e, t, i) => {
|
|
6964
|
+
for (var s = i > 1 ? void 0 : i ? gn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
6961
6965
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
6962
|
-
return i && s &&
|
|
6966
|
+
return i && s && pn(e, t, s), s;
|
|
6963
6967
|
};
|
|
6964
|
-
const
|
|
6965
|
-
pdf:
|
|
6966
|
-
txt:
|
|
6967
|
-
md:
|
|
6968
|
-
csv:
|
|
6969
|
-
ppd:
|
|
6970
|
-
doc:
|
|
6971
|
-
docx:
|
|
6968
|
+
const La = {
|
|
6969
|
+
pdf: ln,
|
|
6970
|
+
txt: cn,
|
|
6971
|
+
md: dn,
|
|
6972
|
+
csv: fn,
|
|
6973
|
+
ppd: hn,
|
|
6974
|
+
doc: bn,
|
|
6975
|
+
docx: un
|
|
6972
6976
|
};
|
|
6973
6977
|
let yt = class extends re {
|
|
6974
6978
|
constructor() {
|
|
@@ -6994,22 +6998,22 @@ let yt = class extends re {
|
|
|
6994
6998
|
return u`
|
|
6995
6999
|
<cb-icon
|
|
6996
7000
|
class="cb-file-icon"
|
|
6997
|
-
svg="${
|
|
7001
|
+
svg="${La[this.type] || La.txt}"
|
|
6998
7002
|
></cb-icon>
|
|
6999
7003
|
`;
|
|
7000
7004
|
}
|
|
7001
7005
|
};
|
|
7002
|
-
yt.styles =
|
|
7003
|
-
|
|
7006
|
+
yt.styles = nn;
|
|
7007
|
+
la([
|
|
7004
7008
|
x({ type: String })
|
|
7005
7009
|
], yt.prototype, "filename", 2);
|
|
7006
|
-
|
|
7010
|
+
la([
|
|
7007
7011
|
x({ type: String })
|
|
7008
7012
|
], yt.prototype, "url", 2);
|
|
7009
|
-
yt =
|
|
7013
|
+
yt = la([
|
|
7010
7014
|
Z("cb-file")
|
|
7011
7015
|
], yt);
|
|
7012
|
-
const
|
|
7016
|
+
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 = J`
|
|
7013
7017
|
pre code.hljs {
|
|
7014
7018
|
display: block;
|
|
7015
7019
|
overflow-x: auto;
|
|
@@ -8224,9 +8228,9 @@ const gn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
|
|
|
8224
8228
|
white-space: pre-wrap;
|
|
8225
8229
|
color: var(--n-text-color);
|
|
8226
8230
|
}
|
|
8227
|
-
`,
|
|
8231
|
+
`, vn = J`
|
|
8228
8232
|
${ke}
|
|
8229
|
-
${
|
|
8233
|
+
${yn}
|
|
8230
8234
|
|
|
8231
8235
|
.cb-message-row {
|
|
8232
8236
|
width: 100%;
|
|
@@ -8467,36 +8471,36 @@ const gn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
|
|
|
8467
8471
|
filter: alpha(opacity=80);
|
|
8468
8472
|
}
|
|
8469
8473
|
`;
|
|
8470
|
-
function
|
|
8474
|
+
function za(a, e) {
|
|
8471
8475
|
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>`;
|
|
8472
8476
|
}
|
|
8473
|
-
function
|
|
8474
|
-
const a = new
|
|
8477
|
+
function wn() {
|
|
8478
|
+
const a = new Di({
|
|
8475
8479
|
html: !0,
|
|
8476
8480
|
breaks: !0,
|
|
8477
8481
|
linkify: !0,
|
|
8478
8482
|
highlight(e, t) {
|
|
8479
|
-
if (!!(t &&
|
|
8483
|
+
if (!!(t && Wt.getLanguage(t))) {
|
|
8480
8484
|
const s = t ?? "";
|
|
8481
|
-
return
|
|
8485
|
+
return za(Wt.highlight(e, { language: s }).value, s);
|
|
8482
8486
|
}
|
|
8483
|
-
return
|
|
8487
|
+
return za(Wt.highlightAuto(e).value, "");
|
|
8484
8488
|
}
|
|
8485
8489
|
});
|
|
8486
|
-
return a.use(
|
|
8490
|
+
return a.use(Fi, { attrs: { target: "_blank", rel: "noopener" } }), a;
|
|
8487
8491
|
}
|
|
8488
|
-
async function
|
|
8489
|
-
const t =
|
|
8492
|
+
async function Qt(a) {
|
|
8493
|
+
const t = wn().render(a);
|
|
8490
8494
|
return u`${G(t)}`;
|
|
8491
8495
|
}
|
|
8492
|
-
var
|
|
8493
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
8496
|
+
var xn = Object.defineProperty, kn = Object.getOwnPropertyDescriptor, nt = (a, e, t, i) => {
|
|
8497
|
+
for (var s = i > 1 ? void 0 : i ? kn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
8494
8498
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
8495
|
-
return i && s &&
|
|
8499
|
+
return i && s && xn(e, t, s), s;
|
|
8496
8500
|
};
|
|
8497
8501
|
let De = class extends re {
|
|
8498
8502
|
constructor() {
|
|
8499
|
-
super(...arguments), this.store = new it(this, b), this.type = "assistant", this.suppressFeedback = !1, this.lightbox =
|
|
8503
|
+
super(...arguments), this.store = new it(this, b), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = Qs({
|
|
8500
8504
|
touchNavigation: !0,
|
|
8501
8505
|
loop: !0,
|
|
8502
8506
|
autoplayVideos: !0,
|
|
@@ -8561,7 +8565,7 @@ let De = class extends re {
|
|
|
8561
8565
|
this.copyBtns.forEach((a) => {
|
|
8562
8566
|
a.addEventListener("click", () => {
|
|
8563
8567
|
const e = a.parentElement?.nextElementSibling?.textContent;
|
|
8564
|
-
e &&
|
|
8568
|
+
e && ts(e).then(() => {
|
|
8565
8569
|
a.textContent = "Success", setTimeout(() => {
|
|
8566
8570
|
a.textContent = "Copy";
|
|
8567
8571
|
}, 500);
|
|
@@ -8601,7 +8605,7 @@ let De = class extends re {
|
|
|
8601
8605
|
return u`<div class="cb-message__buttons ${a}">
|
|
8602
8606
|
<!-- delete button -->
|
|
8603
8607
|
<sl-button class="cb-message__delete-button" name="trash" @click=${this._removeMessageHandler} circle variant="text" size="small">
|
|
8604
|
-
<cb-icon svg="${
|
|
8608
|
+
<cb-icon svg="${mn}" style="font-size: 1em !important;"></cb-icon>
|
|
8605
8609
|
</sl-button>
|
|
8606
8610
|
</div>`;
|
|
8607
8611
|
}
|
|
@@ -8644,7 +8648,7 @@ let De = class extends re {
|
|
|
8644
8648
|
`;
|
|
8645
8649
|
}
|
|
8646
8650
|
async _getMessageText(a) {
|
|
8647
|
-
return
|
|
8651
|
+
return Qt(Vt(a.data.text));
|
|
8648
8652
|
}
|
|
8649
8653
|
renderMessageContent(a) {
|
|
8650
8654
|
return a.isThinking ? u`<cb-thinking></cb-thinking>` : a.isUploading ? u`<cb-uploading .files="${a.data.files || []}"></cb-uploading>` : a.type === "text" ? u`<div class="cb-message-text">
|
|
@@ -8666,7 +8670,7 @@ let De = class extends re {
|
|
|
8666
8670
|
(e) => u`<div>${e.name}</div>`
|
|
8667
8671
|
)}` : u`<div class="cb-message-text">
|
|
8668
8672
|
${Pt(
|
|
8669
|
-
|
|
8673
|
+
Qt(a.data.text?.toString() || "").then((e) => u`${e}`)
|
|
8670
8674
|
)}
|
|
8671
8675
|
</div>`;
|
|
8672
8676
|
}
|
|
@@ -8699,8 +8703,8 @@ let De = class extends re {
|
|
|
8699
8703
|
renderBotMessageFeedback(a) {
|
|
8700
8704
|
return this.suppressFeedback || !b.setting.feedbackEnabled || this.index < b.setting.startFeedbackFromMessage * 2 ? null : u`
|
|
8701
8705
|
<div class="cb-message-feedback-tools" part="feedback-wrapper">
|
|
8702
|
-
<div class="cb-message-feedback-icon cb-feedback-up" part="feedback-up" @click="${() => this.startFeedback(!0, a)}">${pe`${G(
|
|
8703
|
-
<div class="cb-message-feedback-icon cb-feedback-down" part="feedback-down" @click="${() => this.startFeedback(!1, a)}">${pe`${G(
|
|
8706
|
+
<div class="cb-message-feedback-icon cb-feedback-up" part="feedback-up" @click="${() => this.startFeedback(!0, a)}">${pe`${G(ai)}`}</div>
|
|
8707
|
+
<div class="cb-message-feedback-icon cb-feedback-down" part="feedback-down" @click="${() => this.startFeedback(!1, a)}">${pe`${G(ii)}`}</div>
|
|
8704
8708
|
</div>
|
|
8705
8709
|
`;
|
|
8706
8710
|
}
|
|
@@ -8711,7 +8715,7 @@ let De = class extends re {
|
|
|
8711
8715
|
return u`
|
|
8712
8716
|
<div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
|
|
8713
8717
|
<!--<sl-avatar class="avatar user-avatar small" label="User">
|
|
8714
|
-
<cb-icon slot="icon" svg="${
|
|
8718
|
+
<cb-icon slot="icon" svg="${Ra}" color="white"></cb-icon>
|
|
8715
8719
|
//appState.appearanceUserMessageAvatarPosition
|
|
8716
8720
|
</sl-avatar>-->
|
|
8717
8721
|
${W(
|
|
@@ -8734,7 +8738,7 @@ let De = class extends re {
|
|
|
8734
8738
|
return u`
|
|
8735
8739
|
<div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
|
|
8736
8740
|
<!--<sl-avatar class="avatar user-avatar small" label="User">
|
|
8737
|
-
<cb-icon slot="icon" svg="${
|
|
8741
|
+
<cb-icon slot="icon" svg="${Ra}" color="white"></cb-icon>
|
|
8738
8742
|
//appState.appearanceUserMessageAvatarPosition
|
|
8739
8743
|
</sl-avatar>-->
|
|
8740
8744
|
${W(
|
|
@@ -8752,7 +8756,7 @@ let De = class extends re {
|
|
|
8752
8756
|
`;
|
|
8753
8757
|
}
|
|
8754
8758
|
};
|
|
8755
|
-
De.styles =
|
|
8759
|
+
De.styles = vn;
|
|
8756
8760
|
nt([
|
|
8757
8761
|
x({ type: Object })
|
|
8758
8762
|
], De.prototype, "message", 2);
|
|
@@ -8766,18 +8770,18 @@ nt([
|
|
|
8766
8770
|
x({ type: Boolean })
|
|
8767
8771
|
], De.prototype, "suppressFeedback", 2);
|
|
8768
8772
|
nt([
|
|
8769
|
-
|
|
8773
|
+
Na(".code-block-header__copy")
|
|
8770
8774
|
], De.prototype, "copyBtns", 2);
|
|
8771
8775
|
nt([
|
|
8772
|
-
|
|
8776
|
+
Na("img")
|
|
8773
8777
|
], De.prototype, "glightboxImages", 2);
|
|
8774
8778
|
De = nt([
|
|
8775
8779
|
Z("cb-message")
|
|
8776
8780
|
], De);
|
|
8777
|
-
var
|
|
8778
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
8781
|
+
var _n = Object.defineProperty, Sn = Object.getOwnPropertyDescriptor, Te = (a, e, t, i) => {
|
|
8782
|
+
for (var s = i > 1 ? void 0 : i ? Sn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
8779
8783
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
8780
|
-
return i && s &&
|
|
8784
|
+
return i && s && _n(e, t, s), s;
|
|
8781
8785
|
};
|
|
8782
8786
|
const Oe = Je.noConflict();
|
|
8783
8787
|
Oe.setLevel("info");
|
|
@@ -8824,10 +8828,10 @@ let ye = class extends re {
|
|
|
8824
8828
|
}
|
|
8825
8829
|
renderDisclaimerMessage() {
|
|
8826
8830
|
return !b.setting.disclaimerMessage || !b.isConversationStart() ? null : u`
|
|
8827
|
-
<details class="cb-disclaimer-wrapper" part="disclaimer-wrapper">
|
|
8831
|
+
<details class="cb-disclaimer-wrapper" part="disclaimer-wrapper" ?open=${b.setting.enableShowFullDisclaimerMessage}>
|
|
8828
8832
|
<summary class="cb-disclaimer-message" part="disclaimer-message">
|
|
8829
8833
|
${Pt(
|
|
8830
|
-
|
|
8834
|
+
Qt(b.setting.disclaimerMessage).then((a) => u`${a}`)
|
|
8831
8835
|
)}
|
|
8832
8836
|
</summary>
|
|
8833
8837
|
</details>
|
|
@@ -9091,7 +9095,7 @@ let ye = class extends re {
|
|
|
9091
9095
|
`;
|
|
9092
9096
|
}
|
|
9093
9097
|
};
|
|
9094
|
-
ye.styles =
|
|
9098
|
+
ye.styles = Hs;
|
|
9095
9099
|
Te([
|
|
9096
9100
|
x({ type: Array })
|
|
9097
9101
|
], ye.prototype, "messages", 2);
|
|
@@ -9111,18 +9115,18 @@ Te([
|
|
|
9111
9115
|
xe(".cb-input-form")
|
|
9112
9116
|
], ye.prototype, "_inputForm", 2);
|
|
9113
9117
|
Te([
|
|
9114
|
-
|
|
9118
|
+
na({ capture: !1, passive: !0 })
|
|
9115
9119
|
], ye.prototype, "invokeLinkAction", 1);
|
|
9116
9120
|
Te([
|
|
9117
|
-
|
|
9121
|
+
na({ capture: !1, passive: !0 })
|
|
9118
9122
|
], ye.prototype, "invokeCalendlyAction", 1);
|
|
9119
9123
|
Te([
|
|
9120
|
-
|
|
9124
|
+
na({ capture: !1, passive: !0 })
|
|
9121
9125
|
], ye.prototype, "invokeHubspotMeetingAction", 1);
|
|
9122
9126
|
ye = Te([
|
|
9123
9127
|
Z("cb-message-list")
|
|
9124
9128
|
], ye);
|
|
9125
|
-
const
|
|
9129
|
+
const Cn = J`
|
|
9126
9130
|
${ke}
|
|
9127
9131
|
|
|
9128
9132
|
:host {
|
|
@@ -9164,11 +9168,11 @@ const Sn = J`
|
|
|
9164
9168
|
align-items: center;
|
|
9165
9169
|
margin: 6px 2px;
|
|
9166
9170
|
}
|
|
9167
|
-
`,
|
|
9168
|
-
var
|
|
9169
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
9171
|
+
`, 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>', da = '<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>';
|
|
9172
|
+
var An = Object.defineProperty, Mn = Object.getOwnPropertyDescriptor, Ie = (a, e, t, i) => {
|
|
9173
|
+
for (var s = i > 1 ? void 0 : i ? Mn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
9170
9174
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
9171
|
-
return i && s &&
|
|
9175
|
+
return i && s && An(e, t, s), s;
|
|
9172
9176
|
};
|
|
9173
9177
|
let ve = class extends re {
|
|
9174
9178
|
constructor() {
|
|
@@ -9205,7 +9209,7 @@ let ve = class extends re {
|
|
|
9205
9209
|
});
|
|
9206
9210
|
}
|
|
9207
9211
|
async _sendFileHandler() {
|
|
9208
|
-
const a = await
|
|
9212
|
+
const a = await Xa(!1, b.setting.fileUploadEnabledExtensions);
|
|
9209
9213
|
this.emit("message:send:file", {
|
|
9210
9214
|
detail: {
|
|
9211
9215
|
files: a
|
|
@@ -9244,7 +9248,7 @@ let ve = class extends re {
|
|
|
9244
9248
|
${W(
|
|
9245
9249
|
b.setting.sendIconSvg !== "",
|
|
9246
9250
|
() => u`<cb-icon part="user-input-send-icon" svg="${b.setting.sendIconSvg}"></cb-icon>`,
|
|
9247
|
-
() => u`<cb-icon part="user-input-send-icon" svg="${
|
|
9251
|
+
() => u`<cb-icon part="user-input-send-icon" svg="${si}"></cb-icon>`
|
|
9248
9252
|
)}
|
|
9249
9253
|
</sl-button>
|
|
9250
9254
|
${W(
|
|
@@ -9254,7 +9258,7 @@ let ve = class extends re {
|
|
|
9254
9258
|
${W(
|
|
9255
9259
|
b.setting.attachIconSvg !== "",
|
|
9256
9260
|
() => u`<cb-icon part="user-input-attach-icon" svg="${b.setting.attachIconSvg}"></cb-icon>`,
|
|
9257
|
-
() => u`<cb-icon part="user-input-attach-icon" svg="${
|
|
9261
|
+
() => u`<cb-icon part="user-input-attach-icon" svg="${ni}"></cb-icon>`
|
|
9258
9262
|
)}
|
|
9259
9263
|
<!-- select file input -->
|
|
9260
9264
|
<input type="file" id="file" name="file" class="file-input" />
|
|
@@ -9268,8 +9272,8 @@ let ve = class extends re {
|
|
|
9268
9272
|
<sl-button @click=${this._toggleAudioHandler} name="paperclip" label="Audio" size="small" class="audio-button" variant="text" circle>
|
|
9269
9273
|
${W(
|
|
9270
9274
|
b.webAudioStarted,
|
|
9271
|
-
() => u`<cb-icon svg="${
|
|
9272
|
-
() => u`<cb-icon svg="${
|
|
9275
|
+
() => u`<cb-icon svg="${da}"></cb-icon>`,
|
|
9276
|
+
() => u`<cb-icon svg="${ri}"></cb-icon>`
|
|
9273
9277
|
)}
|
|
9274
9278
|
</sl-button>
|
|
9275
9279
|
`,
|
|
@@ -9283,7 +9287,7 @@ let ve = class extends re {
|
|
|
9283
9287
|
a.key === "Enter" && !a.shiftKey && this._sendHandler();
|
|
9284
9288
|
}
|
|
9285
9289
|
};
|
|
9286
|
-
ve.styles =
|
|
9290
|
+
ve.styles = Cn;
|
|
9287
9291
|
Ie([
|
|
9288
9292
|
x({ type: String, attribute: "placeholder" })
|
|
9289
9293
|
], ve.prototype, "placeholder", 2);
|
|
@@ -9314,7 +9318,7 @@ Ie([
|
|
|
9314
9318
|
ve = Ie([
|
|
9315
9319
|
Z("cb-user-input")
|
|
9316
9320
|
], ve);
|
|
9317
|
-
const
|
|
9321
|
+
const Tn = J`
|
|
9318
9322
|
${ke}
|
|
9319
9323
|
|
|
9320
9324
|
:host {
|
|
@@ -9372,11 +9376,11 @@ const Mn = J`
|
|
|
9372
9376
|
border-radius: 40px;
|
|
9373
9377
|
outline: none !important;
|
|
9374
9378
|
}
|
|
9375
|
-
`,
|
|
9376
|
-
var
|
|
9377
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
9379
|
+
`, 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>';
|
|
9380
|
+
var $n = Object.defineProperty, Pn = Object.getOwnPropertyDescriptor, Ee = (a, e, t, i) => {
|
|
9381
|
+
for (var s = i > 1 ? void 0 : i ? Pn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
9378
9382
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
9379
|
-
return i && s &&
|
|
9383
|
+
return i && s && $n(e, t, s), s;
|
|
9380
9384
|
};
|
|
9381
9385
|
let we = class extends re {
|
|
9382
9386
|
constructor() {
|
|
@@ -9419,7 +9423,7 @@ let we = class extends re {
|
|
|
9419
9423
|
});
|
|
9420
9424
|
}
|
|
9421
9425
|
async _sendFileHandler() {
|
|
9422
|
-
const a = await
|
|
9426
|
+
const a = await Xa(!1, b.setting.fileUploadEnabledExtensions);
|
|
9423
9427
|
this.emit("message:send:file", {
|
|
9424
9428
|
detail: {
|
|
9425
9429
|
files: a
|
|
@@ -9451,7 +9455,7 @@ let we = class extends re {
|
|
|
9451
9455
|
await b.toggleAudio();
|
|
9452
9456
|
}
|
|
9453
9457
|
getCtrlIconSvg() {
|
|
9454
|
-
return this.value && this.value !== "" || b.webAudioStarted ?
|
|
9458
|
+
return this.value && this.value !== "" || b.webAudioStarted ? Oa : En;
|
|
9455
9459
|
}
|
|
9456
9460
|
getCtrlClass() {
|
|
9457
9461
|
return this.value && this.value !== "" ? "" : b.webAudioStarted || b.mediaStartAudioRequested ? "disabled" : "";
|
|
@@ -9469,7 +9473,7 @@ let we = class extends re {
|
|
|
9469
9473
|
this.enableFileUpload,
|
|
9470
9474
|
() => u`
|
|
9471
9475
|
<button type="button" class="circle-btn" part="upload-button" title="Upload" @click=${this._sendFileHandler}>
|
|
9472
|
-
${G(
|
|
9476
|
+
${G(In)}
|
|
9473
9477
|
</button>
|
|
9474
9478
|
`,
|
|
9475
9479
|
() => u``
|
|
@@ -9524,7 +9528,7 @@ let we = class extends re {
|
|
|
9524
9528
|
${W(
|
|
9525
9529
|
b.setting.sendIconSvg !== "",
|
|
9526
9530
|
() => u`<cb-icon part="user-input-send-icon" svg="${b.setting.sendIconSvg}"></cb-icon>`,
|
|
9527
|
-
() => u`<cb-icon part="user-input-send-icon" svg="${
|
|
9531
|
+
() => u`<cb-icon part="user-input-send-icon" svg="${si}"></cb-icon>`
|
|
9528
9532
|
)}
|
|
9529
9533
|
</sl-button>
|
|
9530
9534
|
${W(
|
|
@@ -9534,7 +9538,7 @@ let we = class extends re {
|
|
|
9534
9538
|
${W(
|
|
9535
9539
|
b.setting.attachIconSvg !== "",
|
|
9536
9540
|
() => u`<cb-icon part="user-input-attach-icon" svg="${b.setting.attachIconSvg}"></cb-icon>`,
|
|
9537
|
-
() => u`<cb-icon part="user-input-attach-icon" svg="${
|
|
9541
|
+
() => u`<cb-icon part="user-input-attach-icon" svg="${ni}"></cb-icon>`
|
|
9538
9542
|
)}
|
|
9539
9543
|
<!-- select file input -->
|
|
9540
9544
|
<input type="file" id="file" name="file" class="file-input" />
|
|
@@ -9548,8 +9552,8 @@ let we = class extends re {
|
|
|
9548
9552
|
<sl-button @click=${this._toggleAudioHandler} name="paperclip" label="Audio" size="small" class="audio-button" variant="text" circle>
|
|
9549
9553
|
${W(
|
|
9550
9554
|
b.webAudioStarted,
|
|
9551
|
-
() => u`<cb-icon svg="${
|
|
9552
|
-
() => u`<cb-icon svg="${
|
|
9555
|
+
() => u`<cb-icon svg="${da}"></cb-icon>`,
|
|
9556
|
+
() => u`<cb-icon svg="${ri}"></cb-icon>`
|
|
9553
9557
|
)}
|
|
9554
9558
|
</sl-button>
|
|
9555
9559
|
`,
|
|
@@ -9563,7 +9567,7 @@ let we = class extends re {
|
|
|
9563
9567
|
a.key === "Enter" && !a.shiftKey && this._sendHandler();
|
|
9564
9568
|
}
|
|
9565
9569
|
};
|
|
9566
|
-
we.styles =
|
|
9570
|
+
we.styles = Tn;
|
|
9567
9571
|
Ee([
|
|
9568
9572
|
x({ type: String, attribute: "placeholder" })
|
|
9569
9573
|
], we.prototype, "placeholder", 2);
|
|
@@ -9594,7 +9598,7 @@ Ee([
|
|
|
9594
9598
|
we = Ee([
|
|
9595
9599
|
Z("cb-user-input-mm")
|
|
9596
9600
|
], we);
|
|
9597
|
-
const
|
|
9601
|
+
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 = J`
|
|
9598
9602
|
${ke}
|
|
9599
9603
|
|
|
9600
9604
|
sl-dialog::part(base) {
|
|
@@ -9629,10 +9633,10 @@ const ri = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="c
|
|
|
9629
9633
|
gap: 8px;
|
|
9630
9634
|
}
|
|
9631
9635
|
`;
|
|
9632
|
-
var
|
|
9633
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
9636
|
+
var Rn = Object.defineProperty, zn = Object.getOwnPropertyDescriptor, Nt = (a, e, t, i) => {
|
|
9637
|
+
for (var s = i > 1 ? void 0 : i ? zn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
9634
9638
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
9635
|
-
return i && s &&
|
|
9639
|
+
return i && s && Rn(e, t, s), s;
|
|
9636
9640
|
};
|
|
9637
9641
|
let ct = class extends re {
|
|
9638
9642
|
constructor() {
|
|
@@ -9665,7 +9669,7 @@ let ct = class extends re {
|
|
|
9665
9669
|
<cb-icon
|
|
9666
9670
|
color="default"
|
|
9667
9671
|
style="font-size: 1em;"
|
|
9668
|
-
svg="${
|
|
9672
|
+
svg="${oi}"
|
|
9669
9673
|
></cb-icon>
|
|
9670
9674
|
</sl-button>
|
|
9671
9675
|
</header>
|
|
@@ -9678,23 +9682,23 @@ let ct = class extends re {
|
|
|
9678
9682
|
</sl-dialog>`;
|
|
9679
9683
|
}
|
|
9680
9684
|
};
|
|
9681
|
-
ct.styles =
|
|
9682
|
-
|
|
9685
|
+
ct.styles = Ln;
|
|
9686
|
+
Nt([
|
|
9683
9687
|
x({ type: Boolean })
|
|
9684
9688
|
], ct.prototype, "open", 2);
|
|
9685
|
-
|
|
9689
|
+
Nt([
|
|
9686
9690
|
x({ type: String, attribute: "label" })
|
|
9687
9691
|
], ct.prototype, "label", 2);
|
|
9688
|
-
|
|
9692
|
+
Nt([
|
|
9689
9693
|
x({ type: Number })
|
|
9690
9694
|
], ct.prototype, "zindex", 2);
|
|
9691
|
-
ct =
|
|
9695
|
+
ct = Nt([
|
|
9692
9696
|
Z("cb-dialog")
|
|
9693
9697
|
], ct);
|
|
9694
|
-
var
|
|
9695
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
9698
|
+
var On = Object.defineProperty, Bn = Object.getOwnPropertyDescriptor, ci = (a, e, t, i) => {
|
|
9699
|
+
for (var s = i > 1 ? void 0 : i ? Bn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
9696
9700
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
9697
|
-
return i && s &&
|
|
9701
|
+
return i && s && On(e, t, s), s;
|
|
9698
9702
|
};
|
|
9699
9703
|
let Dt = class extends re {
|
|
9700
9704
|
constructor() {
|
|
@@ -9738,13 +9742,13 @@ Dt.styles = J`
|
|
|
9738
9742
|
z-index: 1000;
|
|
9739
9743
|
}
|
|
9740
9744
|
`;
|
|
9741
|
-
|
|
9745
|
+
ci([
|
|
9742
9746
|
x({ type: Boolean })
|
|
9743
9747
|
], Dt.prototype, "open", 2);
|
|
9744
|
-
Dt =
|
|
9748
|
+
Dt = ci([
|
|
9745
9749
|
Z("cb-clear-message-dialog")
|
|
9746
9750
|
], Dt);
|
|
9747
|
-
const
|
|
9751
|
+
const qn = J`
|
|
9748
9752
|
:host {
|
|
9749
9753
|
// width: 380px;
|
|
9750
9754
|
|
|
@@ -9804,10 +9808,10 @@ const Bn = J`
|
|
|
9804
9808
|
grid-column-start: 2;
|
|
9805
9809
|
}
|
|
9806
9810
|
`;
|
|
9807
|
-
var
|
|
9808
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
9811
|
+
var Dn = Object.defineProperty, Fn = Object.getOwnPropertyDescriptor, dt = (a, e, t, i) => {
|
|
9812
|
+
for (var s = i > 1 ? void 0 : i ? Fn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
9809
9813
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
9810
|
-
return i && s &&
|
|
9814
|
+
return i && s && Dn(e, t, s), s;
|
|
9811
9815
|
};
|
|
9812
9816
|
let Xe = class extends re {
|
|
9813
9817
|
constructor() {
|
|
@@ -9928,7 +9932,7 @@ let Xe = class extends re {
|
|
|
9928
9932
|
});
|
|
9929
9933
|
}
|
|
9930
9934
|
};
|
|
9931
|
-
Xe.styles =
|
|
9935
|
+
Xe.styles = qn;
|
|
9932
9936
|
dt([
|
|
9933
9937
|
x({ type: Boolean })
|
|
9934
9938
|
], Xe.prototype, "open", 2);
|
|
@@ -9947,7 +9951,7 @@ dt([
|
|
|
9947
9951
|
Xe = dt([
|
|
9948
9952
|
Z("cb-setting")
|
|
9949
9953
|
], Xe);
|
|
9950
|
-
const
|
|
9954
|
+
const jn = J`
|
|
9951
9955
|
${ke}
|
|
9952
9956
|
:host {
|
|
9953
9957
|
--primary-color: var(--sl-color-primary-600);
|
|
@@ -10061,10 +10065,10 @@ const Fn = J`
|
|
|
10061
10065
|
margin: 4px 4px 0px 0px;
|
|
10062
10066
|
}
|
|
10063
10067
|
`;
|
|
10064
|
-
var
|
|
10065
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
10068
|
+
var Hn = Object.defineProperty, Vn = Object.getOwnPropertyDescriptor, li = (a, e, t, i) => {
|
|
10069
|
+
for (var s = i > 1 ? void 0 : i ? Vn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
10066
10070
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
10067
|
-
return i && s &&
|
|
10071
|
+
return i && s && Hn(e, t, s), s;
|
|
10068
10072
|
};
|
|
10069
10073
|
let Ft = class extends re {
|
|
10070
10074
|
constructor() {
|
|
@@ -10117,7 +10121,7 @@ let Ft = class extends re {
|
|
|
10117
10121
|
)}
|
|
10118
10122
|
</sl-button>
|
|
10119
10123
|
<div class="cb-engage-popup">
|
|
10120
|
-
<div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${pe`${G(
|
|
10124
|
+
<div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${pe`${G(oi)}`}</div>
|
|
10121
10125
|
<div class="cb-engage-popup-content">
|
|
10122
10126
|
${this.renderPopupLogo()}
|
|
10123
10127
|
<div>${b.setting.engageMessage}</div>
|
|
@@ -10128,41 +10132,41 @@ let Ft = class extends re {
|
|
|
10128
10132
|
`;
|
|
10129
10133
|
}
|
|
10130
10134
|
};
|
|
10131
|
-
Ft.styles =
|
|
10132
|
-
|
|
10135
|
+
Ft.styles = jn;
|
|
10136
|
+
li([
|
|
10133
10137
|
x({ type: Boolean })
|
|
10134
10138
|
], Ft.prototype, "open", 2);
|
|
10135
|
-
Ft =
|
|
10139
|
+
Ft = li([
|
|
10136
10140
|
Z("cb-anchor")
|
|
10137
10141
|
], Ft);
|
|
10138
|
-
const
|
|
10142
|
+
const Nn = J`
|
|
10139
10143
|
${ke}
|
|
10140
|
-
`,
|
|
10141
|
-
var
|
|
10142
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
10144
|
+
`, 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>', Un = '<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>';
|
|
10145
|
+
var Xn = Object.defineProperty, Yn = Object.getOwnPropertyDescriptor, di = (a, e, t, i) => {
|
|
10146
|
+
for (var s = i > 1 ? void 0 : i ? Yn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
10143
10147
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
10144
|
-
return i && s &&
|
|
10148
|
+
return i && s && Xn(e, t, s), s;
|
|
10145
10149
|
};
|
|
10146
|
-
const
|
|
10150
|
+
const qa = {
|
|
10147
10151
|
error: {
|
|
10148
10152
|
variant: "danger",
|
|
10149
|
-
icon:
|
|
10153
|
+
icon: Ba
|
|
10150
10154
|
},
|
|
10151
10155
|
danger: {
|
|
10152
10156
|
variant: "danger",
|
|
10153
|
-
icon:
|
|
10157
|
+
icon: Ba
|
|
10154
10158
|
},
|
|
10155
10159
|
warning: {
|
|
10156
10160
|
variant: "warning",
|
|
10157
|
-
icon:
|
|
10161
|
+
icon: Un
|
|
10158
10162
|
},
|
|
10159
10163
|
success: {
|
|
10160
10164
|
variant: "success",
|
|
10161
|
-
icon:
|
|
10165
|
+
icon: Wn
|
|
10162
10166
|
},
|
|
10163
10167
|
info: {
|
|
10164
10168
|
variant: "primary",
|
|
10165
|
-
icon:
|
|
10169
|
+
icon: Gn
|
|
10166
10170
|
}
|
|
10167
10171
|
};
|
|
10168
10172
|
let jt = class extends re {
|
|
@@ -10170,23 +10174,23 @@ let jt = class extends re {
|
|
|
10170
10174
|
super(...arguments), this.status = "info";
|
|
10171
10175
|
}
|
|
10172
10176
|
render() {
|
|
10173
|
-
const { variant: a, icon: e } =
|
|
10177
|
+
const { variant: a, icon: e } = qa[this.status] || qa.info;
|
|
10174
10178
|
return u`<cb-icon svg=${e} color="${a}"></cb-icon>`;
|
|
10175
10179
|
}
|
|
10176
10180
|
};
|
|
10177
|
-
jt.styles =
|
|
10178
|
-
|
|
10181
|
+
jt.styles = Ga;
|
|
10182
|
+
di([
|
|
10179
10183
|
x({ type: String })
|
|
10180
10184
|
], jt.prototype, "status", 2);
|
|
10181
|
-
jt =
|
|
10185
|
+
jt = di([
|
|
10182
10186
|
Z("cb-status-icon")
|
|
10183
10187
|
], jt);
|
|
10184
|
-
var
|
|
10185
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
10188
|
+
var Jn = Object.getOwnPropertyDescriptor, Zn = (a, e, t, i) => {
|
|
10189
|
+
for (var s = i > 1 ? void 0 : i ? Jn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
10186
10190
|
(o = a[r]) && (s = o(s) || s);
|
|
10187
10191
|
return s;
|
|
10188
10192
|
};
|
|
10189
|
-
let
|
|
10193
|
+
let ea = class extends re {
|
|
10190
10194
|
render() {
|
|
10191
10195
|
return u` <sl-alert variant="danger" open>
|
|
10192
10196
|
<cb-status-icon status="error" slot="icon"></cb-status-icon>
|
|
@@ -10202,11 +10206,11 @@ let Qt = class extends re {
|
|
|
10202
10206
|
this.emit("setting:show");
|
|
10203
10207
|
}
|
|
10204
10208
|
};
|
|
10205
|
-
|
|
10206
|
-
|
|
10209
|
+
ea.styles = Nn;
|
|
10210
|
+
ea = Zn([
|
|
10207
10211
|
Z("cb-auth-alert")
|
|
10208
|
-
],
|
|
10209
|
-
const
|
|
10212
|
+
], ea);
|
|
10213
|
+
const Kn = J`
|
|
10210
10214
|
sl-dialog::part(base) {
|
|
10211
10215
|
z-index: 1000;
|
|
10212
10216
|
}
|
|
@@ -10290,25 +10294,25 @@ const Zn = J`
|
|
|
10290
10294
|
filter: alpha(opacity=80);
|
|
10291
10295
|
}
|
|
10292
10296
|
`;
|
|
10293
|
-
var
|
|
10294
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
10297
|
+
var Qn = Object.defineProperty, er = Object.getOwnPropertyDescriptor, ft = (a, e, t, i) => {
|
|
10298
|
+
for (var s = i > 1 ? void 0 : i ? er(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
10295
10299
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
10296
|
-
return i && s &&
|
|
10300
|
+
return i && s && Qn(e, t, s), s;
|
|
10297
10301
|
};
|
|
10298
|
-
const
|
|
10302
|
+
const Da = Je.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>';
|
|
10299
10303
|
let Ye = class extends re {
|
|
10300
10304
|
constructor() {
|
|
10301
10305
|
super(...arguments), this.store = new it(this, b), this.zindex = 100;
|
|
10302
10306
|
}
|
|
10303
10307
|
connectedCallback() {
|
|
10304
|
-
super.connectedCallback(),
|
|
10308
|
+
super.connectedCallback(), Da.info("connectedCallback");
|
|
10305
10309
|
}
|
|
10306
10310
|
firstUpdated() {
|
|
10307
|
-
this._rating.getSymbol = () =>
|
|
10311
|
+
this._rating.getSymbol = () => tr;
|
|
10308
10312
|
}
|
|
10309
10313
|
_stateEventHandler(a) {
|
|
10310
10314
|
const e = a.detail, t = e?.type || null;
|
|
10311
|
-
|
|
10315
|
+
Da.info(`FEEDBACK: stateEvent: ${t}`, e);
|
|
10312
10316
|
}
|
|
10313
10317
|
_cancelHandler() {
|
|
10314
10318
|
b.feedback && (console.log("Feedback dialog cancelled"), b.feedback = !1);
|
|
@@ -10329,7 +10333,7 @@ let Ye = class extends re {
|
|
|
10329
10333
|
b.feedbackScore = 0;
|
|
10330
10334
|
}}"
|
|
10331
10335
|
>
|
|
10332
|
-
${pe`${G(
|
|
10336
|
+
${pe`${G(ii)}`}
|
|
10333
10337
|
</div>
|
|
10334
10338
|
<sl-rating id="cb-feedback-rating-el" class="cb-feedback-rating" @sl-change="${this._ratingChangeHandler}" label="Rating" precision="1" .value=${b.feedbackScore}></sl-rating>
|
|
10335
10339
|
<div
|
|
@@ -10338,7 +10342,7 @@ let Ye = class extends re {
|
|
|
10338
10342
|
b.feedbackScore = 5;
|
|
10339
10343
|
}}"
|
|
10340
10344
|
>
|
|
10341
|
-
${pe`${G(
|
|
10345
|
+
${pe`${G(ai)}`}
|
|
10342
10346
|
</div>
|
|
10343
10347
|
</div>
|
|
10344
10348
|
<div style="display: flex">
|
|
@@ -10355,11 +10359,11 @@ let Ye = class extends re {
|
|
|
10355
10359
|
b.feedbackScore = this._rating.value;
|
|
10356
10360
|
}
|
|
10357
10361
|
async _submitHandler() {
|
|
10358
|
-
const a = this._name?.value || "", e = this._email?.value || "", t = this._comments?.value || "";
|
|
10362
|
+
const a = this._name?.value || "", e = this._email?.value || "", t = Vt(this._comments?.value || "");
|
|
10359
10363
|
this._comments.value = "", await b.submitFeedback(a, e, t);
|
|
10360
10364
|
}
|
|
10361
10365
|
};
|
|
10362
|
-
Ye.styles =
|
|
10366
|
+
Ye.styles = Kn;
|
|
10363
10367
|
ft([
|
|
10364
10368
|
x({ type: Number })
|
|
10365
10369
|
], Ye.prototype, "zindex", 2);
|
|
@@ -10378,7 +10382,7 @@ ft([
|
|
|
10378
10382
|
Ye = ft([
|
|
10379
10383
|
Z("cb-dialog-feedback")
|
|
10380
10384
|
], Ye);
|
|
10381
|
-
const
|
|
10385
|
+
const ar = J`
|
|
10382
10386
|
${ke}
|
|
10383
10387
|
:host {
|
|
10384
10388
|
display: block;
|
|
@@ -10461,7 +10465,7 @@ const tr = J`
|
|
|
10461
10465
|
display: inline;
|
|
10462
10466
|
}
|
|
10463
10467
|
`;
|
|
10464
|
-
class
|
|
10468
|
+
class ir extends HTMLElement {
|
|
10465
10469
|
static get observedAttributes() {
|
|
10466
10470
|
return ["audio-selector", "max-additional-height", "disabled", "fft-size"];
|
|
10467
10471
|
}
|
|
@@ -10684,9 +10688,9 @@ class ar extends HTMLElement {
|
|
|
10684
10688
|
this._animationId && (cancelAnimationFrame(this._animationId), this._animationId = null);
|
|
10685
10689
|
}
|
|
10686
10690
|
}
|
|
10687
|
-
customElements.get("volume-visualizer") || customElements.define("volume-visualizer",
|
|
10688
|
-
const
|
|
10689
|
-
class
|
|
10691
|
+
customElements.get("volume-visualizer") || customElements.define("volume-visualizer", ir);
|
|
10692
|
+
const fa = 1, Fa = 2;
|
|
10693
|
+
class fi extends HTMLElement {
|
|
10690
10694
|
constructor() {
|
|
10691
10695
|
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();
|
|
10692
10696
|
}
|
|
@@ -10725,7 +10729,7 @@ class di extends HTMLElement {
|
|
|
10725
10729
|
}
|
|
10726
10730
|
return r;
|
|
10727
10731
|
};
|
|
10728
|
-
return this._analyserOutput && (this._analyserOutput.getByteFrequencyData(this._dataArrayOutput), e(this._dataArrayOutput)) ? { data: t(this._dataArrayOutput), source:
|
|
10732
|
+
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: fa, hasActivity: !0 } : this._analyserOutput ? { data: t(this._dataArrayOutput), source: Fa, hasActivity: !1 } : { data: [], source: null, hasActivity: !1 };
|
|
10729
10733
|
}
|
|
10730
10734
|
_render() {
|
|
10731
10735
|
const e = `
|
|
@@ -10768,7 +10772,7 @@ class di extends HTMLElement {
|
|
|
10768
10772
|
this._stop(), this._analyserInput = null, this._analyserOutput = null;
|
|
10769
10773
|
}
|
|
10770
10774
|
}
|
|
10771
|
-
class
|
|
10775
|
+
class sr extends fi {
|
|
10772
10776
|
constructor() {
|
|
10773
10777
|
super(), this._ribbons = [], this._lastTime = 0, this._ribbons.push(
|
|
10774
10778
|
new It(
|
|
@@ -10812,7 +10816,7 @@ class ir extends di {
|
|
|
10812
10816
|
f.update(s, i, this._thinking), f.draw(e, t, r, this._thinking);
|
|
10813
10817
|
}
|
|
10814
10818
|
}
|
|
10815
|
-
customElements.get("volume-visualizer-liquid") || customElements.define("volume-visualizer-liquid",
|
|
10819
|
+
customElements.get("volume-visualizer-liquid") || customElements.define("volume-visualizer-liquid", sr);
|
|
10816
10820
|
class It {
|
|
10817
10821
|
constructor(e, t, i, s) {
|
|
10818
10822
|
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;
|
|
@@ -10843,7 +10847,7 @@ class It {
|
|
|
10843
10847
|
e.bezierCurveTo(E, M, L, C, k, w);
|
|
10844
10848
|
}
|
|
10845
10849
|
}
|
|
10846
|
-
e.lineTo(t, 0), e.lineTo(0, 0), s ===
|
|
10850
|
+
e.lineTo(t, 0), e.lineTo(0, 0), s === fa && !r ? this.currentColorRGB = this._lerpColor(this.currentColorRGB, this.inputColorRGB, 0.02) : this.currentColorRGB = this._lerpColor(this.currentColorRGB, this.outputColorRGB, 0.02);
|
|
10847
10851
|
const f = e.createLinearGradient(0, 0, 0, i);
|
|
10848
10852
|
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));
|
|
10849
10853
|
const p = e.createLinearGradient(0, 0, t, 0);
|
|
@@ -10871,7 +10875,7 @@ class It {
|
|
|
10871
10875
|
}
|
|
10872
10876
|
}
|
|
10873
10877
|
}
|
|
10874
|
-
class
|
|
10878
|
+
class nr extends fi {
|
|
10875
10879
|
constructor() {
|
|
10876
10880
|
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;
|
|
10877
10881
|
}
|
|
@@ -10888,7 +10892,7 @@ class sr extends di {
|
|
|
10888
10892
|
_draw(e, t, i) {
|
|
10889
10893
|
e.clearRect(0, 0, t.width, t.height);
|
|
10890
10894
|
const { data: s, source: r, hasActivity: o } = this._getAudioFrequencyData();
|
|
10891
|
-
if (r ===
|
|
10895
|
+
if (r === fa && !this._thinking ? this._currentColor = this._lerpColor(this._currentColor, this._inputColor, 0.1) : this._currentColor = this._lerpColor(this._currentColor, this._outputColor, 0.1), this._thinking) {
|
|
10892
10896
|
this._thinkingPhase -= i * 4;
|
|
10893
10897
|
for (let w = 0; w < this._numBars; w++) {
|
|
10894
10898
|
const _ = w / this._numBars;
|
|
@@ -10919,21 +10923,21 @@ class sr extends di {
|
|
|
10919
10923
|
e.restore();
|
|
10920
10924
|
}
|
|
10921
10925
|
}
|
|
10922
|
-
customElements.get("volume-visualizer-bars") || customElements.define("volume-visualizer-bars",
|
|
10923
|
-
const
|
|
10924
|
-
var
|
|
10925
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
10926
|
+
customElements.get("volume-visualizer-bars") || customElements.define("volume-visualizer-bars", nr);
|
|
10927
|
+
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>';
|
|
10928
|
+
var or = Object.getOwnPropertyDescriptor, cr = (a, e, t, i) => {
|
|
10929
|
+
for (var s = i > 1 ? void 0 : i ? or(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
10926
10930
|
(o = a[r]) && (s = o(s) || s);
|
|
10927
10931
|
return s;
|
|
10928
10932
|
};
|
|
10929
10933
|
const bt = Je.noConflict();
|
|
10930
10934
|
bt.setLevel("info");
|
|
10931
|
-
let
|
|
10935
|
+
let ta = class extends re {
|
|
10932
10936
|
constructor() {
|
|
10933
10937
|
super(...arguments), this.store = new it(this, b), this.unsubscribeTypingActive = b.subscribe(
|
|
10934
10938
|
this._handleTypingActiveChanged.bind(this),
|
|
10935
10939
|
["typingActive"]
|
|
10936
|
-
), this.volumeVisualizerRef =
|
|
10940
|
+
), this.volumeVisualizerRef = ji(), this.volumeVisualizerInitialized = !1;
|
|
10937
10941
|
}
|
|
10938
10942
|
/*
|
|
10939
10943
|
createRenderRoot() {
|
|
@@ -10963,7 +10967,7 @@ let ea = class extends re {
|
|
|
10963
10967
|
!0,
|
|
10964
10968
|
() => u`
|
|
10965
10969
|
<button type="button" part="${b.webAudioMuted ? "audio-unmute-button" : "audio-mute-button"}" class="circle-btn ${b.webAudioMuted ? "danger" : "clear"}" title="${b.webAudioMuted ? "Unmute" : "Mute"}" @click=${this._toggleMute}>
|
|
10966
|
-
${G(
|
|
10970
|
+
${G(rr)}
|
|
10967
10971
|
</button>
|
|
10968
10972
|
`,
|
|
10969
10973
|
() => u``
|
|
@@ -10972,7 +10976,7 @@ let ea = class extends re {
|
|
|
10972
10976
|
${this.renderVisualizer()}
|
|
10973
10977
|
</div>
|
|
10974
10978
|
<button type="button" part="audio-end-button" class="circle-btn clear" title="End" @click=${this._toggleHangup}>
|
|
10975
|
-
${G(
|
|
10979
|
+
${G(da)}
|
|
10976
10980
|
</button>
|
|
10977
10981
|
</div>
|
|
10978
10982
|
</div>` : null;
|
|
@@ -11028,11 +11032,11 @@ let ea = class extends re {
|
|
|
11028
11032
|
b.webAudioStarted && (bt.info(`Typing state changed: ${e}`), this.volumeVisualizerRef.value && this.volumeVisualizerRef.value.setThinking(e));
|
|
11029
11033
|
}
|
|
11030
11034
|
};
|
|
11031
|
-
|
|
11032
|
-
|
|
11035
|
+
ta.styles = ar;
|
|
11036
|
+
ta = cr([
|
|
11033
11037
|
Z("cb-audio-controls")
|
|
11034
|
-
],
|
|
11035
|
-
class
|
|
11038
|
+
], ta);
|
|
11039
|
+
class aa extends Error {
|
|
11036
11040
|
response;
|
|
11037
11041
|
request;
|
|
11038
11042
|
options;
|
|
@@ -11041,7 +11045,7 @@ class ta extends Error {
|
|
|
11041
11045
|
super(`Request failed with ${f}: ${t.method} ${t.url}`), this.name = "HTTPError", this.response = e, this.request = t, this.options = i;
|
|
11042
11046
|
}
|
|
11043
11047
|
}
|
|
11044
|
-
class
|
|
11048
|
+
class hi extends Error {
|
|
11045
11049
|
name = "NonError";
|
|
11046
11050
|
value;
|
|
11047
11051
|
constructor(e) {
|
|
@@ -11053,17 +11057,17 @@ class fi extends Error {
|
|
|
11053
11057
|
super(t), this.value = e;
|
|
11054
11058
|
}
|
|
11055
11059
|
}
|
|
11056
|
-
class
|
|
11060
|
+
class Xt extends Error {
|
|
11057
11061
|
name = "ForceRetryError";
|
|
11058
11062
|
customDelay;
|
|
11059
11063
|
code;
|
|
11060
11064
|
customRequest;
|
|
11061
11065
|
constructor(e) {
|
|
11062
|
-
const t = e?.cause ? e.cause instanceof Error ? e.cause : new
|
|
11066
|
+
const t = e?.cause ? e.cause instanceof Error ? e.cause : new hi(e.cause) : void 0;
|
|
11063
11067
|
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;
|
|
11064
11068
|
}
|
|
11065
11069
|
}
|
|
11066
|
-
const
|
|
11070
|
+
const ja = (() => {
|
|
11067
11071
|
let a = !1, e = !1;
|
|
11068
11072
|
const t = typeof globalThis.ReadableStream == "function", i = typeof globalThis.Request == "function";
|
|
11069
11073
|
if (t && i)
|
|
@@ -11082,7 +11086,7 @@ const Fa = (() => {
|
|
|
11082
11086
|
throw s;
|
|
11083
11087
|
}
|
|
11084
11088
|
return a && !e;
|
|
11085
|
-
})(),
|
|
11089
|
+
})(), lr = typeof globalThis.AbortController == "function", bi = typeof globalThis.AbortSignal == "function" && typeof globalThis.AbortSignal.any == "function", dr = typeof globalThis.ReadableStream == "function", fr = typeof globalThis.FormData == "function", ui = ["get", "post", "put", "patch", "head", "delete"], hr = {
|
|
11086
11090
|
json: "application/json",
|
|
11087
11091
|
text: "text/*",
|
|
11088
11092
|
formData: "multipart/form-data",
|
|
@@ -11091,14 +11095,14 @@ const Fa = (() => {
|
|
|
11091
11095
|
// Supported in modern Fetch implementations (for example, browsers and recent Node.js/undici).
|
|
11092
11096
|
// We still feature-check at runtime before exposing the shortcut.
|
|
11093
11097
|
bytes: "*/*"
|
|
11094
|
-
},
|
|
11095
|
-
class
|
|
11098
|
+
}, Yt = 2147483647, br = new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length, pi = Symbol("stop");
|
|
11099
|
+
class gi {
|
|
11096
11100
|
options;
|
|
11097
11101
|
constructor(e) {
|
|
11098
11102
|
this.options = e;
|
|
11099
11103
|
}
|
|
11100
11104
|
}
|
|
11101
|
-
const
|
|
11105
|
+
const ur = (a) => new gi(a), pr = {
|
|
11102
11106
|
json: !0,
|
|
11103
11107
|
parseJson: !0,
|
|
11104
11108
|
stringifyJson: !0,
|
|
@@ -11112,10 +11116,10 @@ const br = (a) => new pi(a), ur = {
|
|
|
11112
11116
|
onUploadProgress: !0,
|
|
11113
11117
|
fetch: !0,
|
|
11114
11118
|
context: !0
|
|
11115
|
-
},
|
|
11119
|
+
}, gr = {
|
|
11116
11120
|
next: !0
|
|
11117
11121
|
// Next.js cache revalidation (revalidate, tags)
|
|
11118
|
-
},
|
|
11122
|
+
}, mr = {
|
|
11119
11123
|
method: !0,
|
|
11120
11124
|
headers: !0,
|
|
11121
11125
|
body: !0,
|
|
@@ -11130,13 +11134,13 @@ const br = (a) => new pi(a), ur = {
|
|
|
11130
11134
|
signal: !0,
|
|
11131
11135
|
window: !0,
|
|
11132
11136
|
duplex: !0
|
|
11133
|
-
},
|
|
11137
|
+
}, yr = (a) => {
|
|
11134
11138
|
if (!a)
|
|
11135
11139
|
return 0;
|
|
11136
11140
|
if (a instanceof FormData) {
|
|
11137
11141
|
let e = 0;
|
|
11138
11142
|
for (const [t, i] of a)
|
|
11139
|
-
e +=
|
|
11143
|
+
e += br, e += new TextEncoder().encode(`Content-Disposition: form-data; name="${t}"`).length, e += typeof i == "string" ? new TextEncoder().encode(i).length : i.size;
|
|
11140
11144
|
return e;
|
|
11141
11145
|
}
|
|
11142
11146
|
if (a instanceof Blob)
|
|
@@ -11157,7 +11161,7 @@ const br = (a) => new pi(a), ur = {
|
|
|
11157
11161
|
return 0;
|
|
11158
11162
|
}
|
|
11159
11163
|
return 0;
|
|
11160
|
-
},
|
|
11164
|
+
}, mi = (a, e, t) => {
|
|
11161
11165
|
let i, s = 0;
|
|
11162
11166
|
return a.pipeThrough(new TransformStream({
|
|
11163
11167
|
transform(r, o) {
|
|
@@ -11172,7 +11176,7 @@ const br = (a) => new pi(a), ur = {
|
|
|
11172
11176
|
i && (s += i.byteLength, t?.({ percent: 1, totalBytes: Math.max(e, s), transferredBytes: s }, i));
|
|
11173
11177
|
}
|
|
11174
11178
|
}));
|
|
11175
|
-
},
|
|
11179
|
+
}, vr = (a, e) => {
|
|
11176
11180
|
if (!a.body)
|
|
11177
11181
|
return a;
|
|
11178
11182
|
if (a.status === 204)
|
|
@@ -11182,40 +11186,40 @@ const br = (a) => new pi(a), ur = {
|
|
|
11182
11186
|
headers: a.headers
|
|
11183
11187
|
});
|
|
11184
11188
|
const t = Math.max(0, Number(a.headers.get("content-length")) || 0);
|
|
11185
|
-
return new Response(
|
|
11189
|
+
return new Response(mi(a.body, t, e), {
|
|
11186
11190
|
status: a.status,
|
|
11187
11191
|
statusText: a.statusText,
|
|
11188
11192
|
headers: a.headers
|
|
11189
11193
|
});
|
|
11190
|
-
},
|
|
11194
|
+
}, wr = (a, e, t) => {
|
|
11191
11195
|
if (!a.body)
|
|
11192
11196
|
return a;
|
|
11193
|
-
const i =
|
|
11197
|
+
const i = yr(t ?? a.body);
|
|
11194
11198
|
return new Request(a, {
|
|
11195
11199
|
// @ts-expect-error - Types are outdated.
|
|
11196
11200
|
duplex: "half",
|
|
11197
|
-
body:
|
|
11201
|
+
body: mi(a.body, i, e)
|
|
11198
11202
|
});
|
|
11199
11203
|
}, Qe = (a) => a !== null && typeof a == "object", Et = (...a) => {
|
|
11200
11204
|
for (const e of a)
|
|
11201
11205
|
if ((!Qe(e) || Array.isArray(e)) && e !== void 0)
|
|
11202
11206
|
throw new TypeError("The `options` argument must be an object");
|
|
11203
|
-
return
|
|
11204
|
-
},
|
|
11207
|
+
return ha({}, ...a);
|
|
11208
|
+
}, yi = (a = {}, e = {}) => {
|
|
11205
11209
|
const t = new globalThis.Headers(a), i = e instanceof globalThis.Headers, s = new globalThis.Headers(e);
|
|
11206
11210
|
for (const [r, o] of s.entries())
|
|
11207
11211
|
i && o === "undefined" || o === void 0 ? t.delete(r) : t.set(r, o);
|
|
11208
11212
|
return t;
|
|
11209
11213
|
};
|
|
11210
11214
|
function $t(a, e, t) {
|
|
11211
|
-
return Object.hasOwn(e, t) && e[t] === void 0 ? [] :
|
|
11215
|
+
return Object.hasOwn(e, t) && e[t] === void 0 ? [] : ha(a[t] ?? [], e[t] ?? []);
|
|
11212
11216
|
}
|
|
11213
|
-
const
|
|
11217
|
+
const vi = (a = {}, e = {}) => ({
|
|
11214
11218
|
beforeRequest: $t(a, e, "beforeRequest"),
|
|
11215
11219
|
beforeRetry: $t(a, e, "beforeRetry"),
|
|
11216
11220
|
afterResponse: $t(a, e, "afterResponse"),
|
|
11217
11221
|
beforeError: $t(a, e, "beforeError")
|
|
11218
|
-
}),
|
|
11222
|
+
}), xr = (a, e) => {
|
|
11219
11223
|
const t = new URLSearchParams();
|
|
11220
11224
|
for (const i of [a, e])
|
|
11221
11225
|
if (i !== void 0)
|
|
@@ -11237,7 +11241,7 @@ const yi = (a = {}, e = {}) => ({
|
|
|
11237
11241
|
t.append(r, o);
|
|
11238
11242
|
}
|
|
11239
11243
|
return t;
|
|
11240
|
-
},
|
|
11244
|
+
}, ha = (...a) => {
|
|
11241
11245
|
let e = {}, t = {}, i = {}, s;
|
|
11242
11246
|
const r = [];
|
|
11243
11247
|
for (const o of a)
|
|
@@ -11259,28 +11263,28 @@ const yi = (a = {}, e = {}) => ({
|
|
|
11259
11263
|
continue;
|
|
11260
11264
|
}
|
|
11261
11265
|
if (f === "searchParams") {
|
|
11262
|
-
p == null ? s = void 0 : s = s === void 0 ? p :
|
|
11266
|
+
p == null ? s = void 0 : s = s === void 0 ? p : xr(s, p);
|
|
11263
11267
|
continue;
|
|
11264
11268
|
}
|
|
11265
|
-
Qe(p) && f in e && (p =
|
|
11269
|
+
Qe(p) && f in e && (p = ha(e[f], p)), e = { ...e, [f]: p };
|
|
11266
11270
|
}
|
|
11267
|
-
Qe(o.hooks) && (i =
|
|
11271
|
+
Qe(o.hooks) && (i = vi(i, o.hooks), e.hooks = i), Qe(o.headers) && (t = yi(t, o.headers), e.headers = t);
|
|
11268
11272
|
}
|
|
11269
|
-
return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] :
|
|
11270
|
-
},
|
|
11273
|
+
return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] : bi ? e.signal = AbortSignal.any(r) : e.signal = r.at(-1)), e.context === void 0 && (e.context = {}), e;
|
|
11274
|
+
}, kr = (a) => ui.includes(a) ? a.toUpperCase() : a, _r = ["get", "put", "head", "delete", "options", "trace"], Sr = [408, 413, 429, 500, 502, 503, 504], Cr = [413, 429, 503], Ha = {
|
|
11271
11275
|
limit: 2,
|
|
11272
|
-
methods:
|
|
11273
|
-
statusCodes:
|
|
11274
|
-
afterStatusCodes:
|
|
11276
|
+
methods: _r,
|
|
11277
|
+
statusCodes: Sr,
|
|
11278
|
+
afterStatusCodes: Cr,
|
|
11275
11279
|
maxRetryAfter: Number.POSITIVE_INFINITY,
|
|
11276
11280
|
backoffLimit: Number.POSITIVE_INFINITY,
|
|
11277
11281
|
delay: (a) => 0.3 * 2 ** (a - 1) * 1e3,
|
|
11278
11282
|
jitter: void 0,
|
|
11279
11283
|
retryOnTimeout: !1
|
|
11280
|
-
},
|
|
11284
|
+
}, Ar = (a = {}) => {
|
|
11281
11285
|
if (typeof a == "number")
|
|
11282
11286
|
return {
|
|
11283
|
-
...
|
|
11287
|
+
...Ha,
|
|
11284
11288
|
limit: a
|
|
11285
11289
|
};
|
|
11286
11290
|
if (a.methods && !Array.isArray(a.methods))
|
|
@@ -11288,27 +11292,27 @@ const yi = (a = {}, e = {}) => ({
|
|
|
11288
11292
|
if (a.statusCodes && !Array.isArray(a.statusCodes))
|
|
11289
11293
|
throw new Error("retry.statusCodes must be an array");
|
|
11290
11294
|
return {
|
|
11291
|
-
...
|
|
11295
|
+
...Ha,
|
|
11292
11296
|
...a
|
|
11293
11297
|
};
|
|
11294
11298
|
};
|
|
11295
|
-
class
|
|
11299
|
+
class ia extends Error {
|
|
11296
11300
|
request;
|
|
11297
11301
|
constructor(e) {
|
|
11298
11302
|
super(`Request timed out: ${e.method} ${e.url}`), this.name = "TimeoutError", this.request = e;
|
|
11299
11303
|
}
|
|
11300
11304
|
}
|
|
11301
|
-
async function
|
|
11305
|
+
async function Mr(a, e, t, i) {
|
|
11302
11306
|
return new Promise((s, r) => {
|
|
11303
11307
|
const o = setTimeout(() => {
|
|
11304
|
-
t && t.abort(), r(new
|
|
11308
|
+
t && t.abort(), r(new ia(a));
|
|
11305
11309
|
}, i.timeout);
|
|
11306
11310
|
i.fetch(a, e).then(s).catch(r).then(() => {
|
|
11307
11311
|
clearTimeout(o);
|
|
11308
11312
|
});
|
|
11309
11313
|
});
|
|
11310
11314
|
}
|
|
11311
|
-
async function
|
|
11315
|
+
async function Tr(a, { signal: e }) {
|
|
11312
11316
|
return new Promise((t, i) => {
|
|
11313
11317
|
e && (e.throwIfAborted(), e.addEventListener("abort", s, { once: !0 }));
|
|
11314
11318
|
function s() {
|
|
@@ -11319,35 +11323,35 @@ async function Mr(a, { signal: e }) {
|
|
|
11319
11323
|
}, a);
|
|
11320
11324
|
});
|
|
11321
11325
|
}
|
|
11322
|
-
const
|
|
11326
|
+
const Ir = (a, e) => {
|
|
11323
11327
|
const t = {};
|
|
11324
11328
|
for (const i in e)
|
|
11325
|
-
Object.hasOwn(e, i) && !(i in
|
|
11329
|
+
Object.hasOwn(e, i) && !(i in mr) && !(i in pr) && (!(i in a) || i in gr) && (t[i] = e[i]);
|
|
11326
11330
|
return t;
|
|
11327
|
-
},
|
|
11328
|
-
function Er(a) {
|
|
11329
|
-
return a instanceof ta || a?.name === ta.name;
|
|
11330
|
-
}
|
|
11331
|
+
}, 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;
|
|
11331
11332
|
function $r(a) {
|
|
11332
11333
|
return a instanceof aa || a?.name === aa.name;
|
|
11333
11334
|
}
|
|
11335
|
+
function Pr(a) {
|
|
11336
|
+
return a instanceof ia || a?.name === ia.name;
|
|
11337
|
+
}
|
|
11334
11338
|
class vt {
|
|
11335
11339
|
static create(e, t) {
|
|
11336
11340
|
const i = new vt(e, t), s = async () => {
|
|
11337
|
-
if (typeof i.#e.timeout == "number" && i.#e.timeout >
|
|
11338
|
-
throw new RangeError(`The \`timeout\` option cannot be greater than ${
|
|
11341
|
+
if (typeof i.#e.timeout == "number" && i.#e.timeout > Yt)
|
|
11342
|
+
throw new RangeError(`The \`timeout\` option cannot be greater than ${Yt}`);
|
|
11339
11343
|
await Promise.resolve();
|
|
11340
11344
|
let o = await i.#p();
|
|
11341
11345
|
for (const f of i.#e.hooks.afterResponse) {
|
|
11342
11346
|
const p = i.#d(o.clone()), v = await f(i.request, i.#o(), p, { retryCount: i.#a });
|
|
11343
|
-
if (v instanceof globalThis.Response && (o = v), v instanceof
|
|
11347
|
+
if (v instanceof globalThis.Response && (o = v), v instanceof gi)
|
|
11344
11348
|
throw await Promise.all([
|
|
11345
11349
|
p.body?.cancel(),
|
|
11346
11350
|
o.body?.cancel()
|
|
11347
|
-
]), new
|
|
11351
|
+
]), new Xt(v.options);
|
|
11348
11352
|
}
|
|
11349
11353
|
if (i.#d(o), !o.ok && (typeof i.#e.throwHttpErrors == "function" ? i.#e.throwHttpErrors(o.status) : i.#e.throwHttpErrors)) {
|
|
11350
|
-
let f = new
|
|
11354
|
+
let f = new aa(o, i.request, i.#o());
|
|
11351
11355
|
for (const p of i.#e.hooks.beforeError)
|
|
11352
11356
|
f = await p(f, { retryCount: i.#a });
|
|
11353
11357
|
throw f;
|
|
@@ -11355,16 +11359,16 @@ class vt {
|
|
|
11355
11359
|
if (i.#e.onDownloadProgress) {
|
|
11356
11360
|
if (typeof i.#e.onDownloadProgress != "function")
|
|
11357
11361
|
throw new TypeError("The `onDownloadProgress` option must be a function");
|
|
11358
|
-
if (!
|
|
11362
|
+
if (!dr)
|
|
11359
11363
|
throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");
|
|
11360
|
-
return
|
|
11364
|
+
return vr(o.clone(), i.#e.onDownloadProgress);
|
|
11361
11365
|
}
|
|
11362
11366
|
return o;
|
|
11363
11367
|
}, r = i.#f(s).finally(async () => {
|
|
11364
11368
|
const o = i.#n, f = [];
|
|
11365
11369
|
o && !o.bodyUsed && f.push(o.body?.cancel()), i.request.bodyUsed || f.push(i.request.body?.cancel()), await Promise.all(f);
|
|
11366
11370
|
});
|
|
11367
|
-
for (const [o, f] of Object.entries(
|
|
11371
|
+
for (const [o, f] of Object.entries(hr))
|
|
11368
11372
|
o === "bytes" && typeof globalThis.Response?.prototype?.bytes != "function" || (r[o] = async () => {
|
|
11369
11373
|
i.request.headers.set("accept", i.request.headers.get("accept") || f);
|
|
11370
11374
|
const p = await r;
|
|
@@ -11395,17 +11399,17 @@ class vt {
|
|
|
11395
11399
|
constructor(e, t = {}) {
|
|
11396
11400
|
if (this.#t = e, this.#e = {
|
|
11397
11401
|
...t,
|
|
11398
|
-
headers:
|
|
11399
|
-
hooks:
|
|
11402
|
+
headers: yi(this.#t.headers, t.headers),
|
|
11403
|
+
hooks: vi({
|
|
11400
11404
|
beforeRequest: [],
|
|
11401
11405
|
beforeRetry: [],
|
|
11402
11406
|
beforeError: [],
|
|
11403
11407
|
afterResponse: []
|
|
11404
11408
|
}, t.hooks),
|
|
11405
|
-
method:
|
|
11409
|
+
method: kr(t.method ?? this.#t.method ?? "GET"),
|
|
11406
11410
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
11407
11411
|
prefixUrl: String(t.prefixUrl || ""),
|
|
11408
|
-
retry:
|
|
11412
|
+
retry: Ar(t.retry),
|
|
11409
11413
|
throwHttpErrors: t.throwHttpErrors ?? !0,
|
|
11410
11414
|
timeout: t.timeout ?? 1e4,
|
|
11411
11415
|
fetch: t.fetch ?? globalThis.fetch.bind(globalThis),
|
|
@@ -11417,16 +11421,16 @@ class vt {
|
|
|
11417
11421
|
throw new Error("`input` must not begin with a slash when using `prefixUrl`");
|
|
11418
11422
|
this.#e.prefixUrl.endsWith("/") || (this.#e.prefixUrl += "/"), this.#t = this.#e.prefixUrl + this.#t;
|
|
11419
11423
|
}
|
|
11420
|
-
|
|
11424
|
+
lr && bi && (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), ja && (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"));
|
|
11421
11425
|
const i = t.headers && new globalThis.Headers(t.headers).has("content-type");
|
|
11422
|
-
if (this.#t instanceof globalThis.Request && (
|
|
11426
|
+
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)) {
|
|
11423
11427
|
const r = "?" + (typeof this.#e.searchParams == "string" ? this.#e.searchParams.replace(/^\?/, "") : new URLSearchParams(vt.#b(this.#e.searchParams)).toString()), o = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, r);
|
|
11424
11428
|
this.request = new globalThis.Request(o, this.#e);
|
|
11425
11429
|
}
|
|
11426
11430
|
if (this.#e.onUploadProgress) {
|
|
11427
11431
|
if (typeof this.#e.onUploadProgress != "function")
|
|
11428
11432
|
throw new TypeError("The `onUploadProgress` option must be a function");
|
|
11429
|
-
if (!
|
|
11433
|
+
if (!ja)
|
|
11430
11434
|
throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");
|
|
11431
11435
|
this.request = this.#h(this.request, this.#e.body ?? void 0);
|
|
11432
11436
|
}
|
|
@@ -11439,8 +11443,8 @@ class vt {
|
|
|
11439
11443
|
async #u(e) {
|
|
11440
11444
|
if (this.#a++, this.#a > this.#e.retry.limit)
|
|
11441
11445
|
throw e;
|
|
11442
|
-
const t = e instanceof Error ? e : new
|
|
11443
|
-
if (t instanceof
|
|
11446
|
+
const t = e instanceof Error ? e : new hi(e);
|
|
11447
|
+
if (t instanceof Xt)
|
|
11444
11448
|
return t.customDelay ?? this.#c();
|
|
11445
11449
|
if (!this.#e.retry.methods.includes(this.request.method.toLowerCase()))
|
|
11446
11450
|
throw e;
|
|
@@ -11451,9 +11455,9 @@ class vt {
|
|
|
11451
11455
|
if (i === !0)
|
|
11452
11456
|
return this.#c();
|
|
11453
11457
|
}
|
|
11454
|
-
if (
|
|
11458
|
+
if (Pr(e) && !this.#e.retry.retryOnTimeout)
|
|
11455
11459
|
throw e;
|
|
11456
|
-
if (
|
|
11460
|
+
if ($r(e)) {
|
|
11457
11461
|
if (!this.#e.retry.statusCodes.includes(e.response.status))
|
|
11458
11462
|
throw e;
|
|
11459
11463
|
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");
|
|
@@ -11475,10 +11479,10 @@ class vt {
|
|
|
11475
11479
|
try {
|
|
11476
11480
|
return await e();
|
|
11477
11481
|
} catch (t) {
|
|
11478
|
-
const i = Math.min(await this.#u(t),
|
|
11482
|
+
const i = Math.min(await this.#u(t), Yt);
|
|
11479
11483
|
if (this.#a < 1)
|
|
11480
11484
|
throw t;
|
|
11481
|
-
if (await
|
|
11485
|
+
if (await Tr(i, this.#s ? { signal: this.#s } : {}), t instanceof Xt && t.customRequest) {
|
|
11482
11486
|
const s = this.#e.signal ? new globalThis.Request(t.customRequest, { signal: this.#e.signal }) : new globalThis.Request(t.customRequest);
|
|
11483
11487
|
this.#l(s);
|
|
11484
11488
|
}
|
|
@@ -11495,7 +11499,7 @@ class vt {
|
|
|
11495
11499
|
}
|
|
11496
11500
|
if (r instanceof globalThis.Response)
|
|
11497
11501
|
return r;
|
|
11498
|
-
if (r ===
|
|
11502
|
+
if (r === pi)
|
|
11499
11503
|
return;
|
|
11500
11504
|
}
|
|
11501
11505
|
return this.#f(e);
|
|
@@ -11512,8 +11516,8 @@ class vt {
|
|
|
11512
11516
|
break;
|
|
11513
11517
|
}
|
|
11514
11518
|
}
|
|
11515
|
-
const e =
|
|
11516
|
-
return this.#n = this.request, this.request = this.#n.clone(), this.#e.timeout === !1 ? this.#e.fetch(this.#n, e) :
|
|
11519
|
+
const e = Ir(this.request, this.#e);
|
|
11520
|
+
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);
|
|
11517
11521
|
}
|
|
11518
11522
|
#o() {
|
|
11519
11523
|
if (!this.#r) {
|
|
@@ -11526,16 +11530,16 @@ class vt {
|
|
|
11526
11530
|
this.#r = void 0, this.request = this.#h(e);
|
|
11527
11531
|
}
|
|
11528
11532
|
#h(e, t) {
|
|
11529
|
-
return !this.#e.onUploadProgress || !e.body ? e :
|
|
11533
|
+
return !this.#e.onUploadProgress || !e.body ? e : wr(e, this.#e.onUploadProgress, t ?? this.#e.body ?? void 0);
|
|
11530
11534
|
}
|
|
11531
11535
|
}
|
|
11532
|
-
const
|
|
11536
|
+
const sa = (a) => {
|
|
11533
11537
|
const e = (t, i) => vt.create(t, Et(a, i));
|
|
11534
|
-
for (const t of
|
|
11538
|
+
for (const t of ui)
|
|
11535
11539
|
e[t] = (i, s) => vt.create(i, Et(a, s, { method: t }));
|
|
11536
|
-
return e.create = (t) =>
|
|
11537
|
-
},
|
|
11538
|
-
|
|
11540
|
+
return e.create = (t) => sa(Et(t)), e.extend = (t) => (typeof t == "function" && (t = t(a ?? {})), sa(Et(a, t))), e.stop = pi, e.retry = ur, e;
|
|
11541
|
+
}, Lr = sa();
|
|
11542
|
+
Lr.extend({
|
|
11539
11543
|
hooks: {
|
|
11540
11544
|
beforeRequest: [
|
|
11541
11545
|
() => {
|
|
@@ -11543,7 +11547,7 @@ Pr.extend({
|
|
|
11543
11547
|
]
|
|
11544
11548
|
}
|
|
11545
11549
|
});
|
|
11546
|
-
async function
|
|
11550
|
+
async function Rr(a, e) {
|
|
11547
11551
|
const { onmessage: t, onclose: i, ...s } = e, r = async (o, f) => {
|
|
11548
11552
|
const { value: p, done: v } = await f.read();
|
|
11549
11553
|
v ? (o.close(), i?.()) : (t?.(p), o.enqueue(p), r(o, f));
|
|
@@ -11564,10 +11568,10 @@ async function Lr(a, e) {
|
|
|
11564
11568
|
}).text()
|
|
11565
11569
|
);
|
|
11566
11570
|
}
|
|
11567
|
-
var
|
|
11568
|
-
for (var s = i > 1 ? void 0 : i ?
|
|
11571
|
+
var zr = Object.defineProperty, Or = Object.getOwnPropertyDescriptor, N = (a, e, t, i) => {
|
|
11572
|
+
for (var s = i > 1 ? void 0 : i ? Or(e, t) : e, r = a.length - 1, o; r >= 0; r--)
|
|
11569
11573
|
(o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
|
|
11570
|
-
return i && s &&
|
|
11574
|
+
return i && s && zr(e, t, s), s;
|
|
11571
11575
|
};
|
|
11572
11576
|
const Be = Je.noConflict();
|
|
11573
11577
|
Be.setLevel("info");
|
|
@@ -11599,7 +11603,7 @@ let H = class extends re {
|
|
|
11599
11603
|
this._chatbotToggleHandler(a);
|
|
11600
11604
|
}, this.handleFormSubmitEvent = (a) => {
|
|
11601
11605
|
this._formSubmitHandler(a);
|
|
11602
|
-
}, this.fetchStream =
|
|
11606
|
+
}, this.fetchStream = Rr;
|
|
11603
11607
|
}
|
|
11604
11608
|
/**
|
|
11605
11609
|
* decodeStreamData
|
|
@@ -11814,9 +11818,6 @@ let H = class extends re {
|
|
|
11814
11818
|
}
|
|
11815
11819
|
}
|
|
11816
11820
|
}
|
|
11817
|
-
sanitizeInputText(a) {
|
|
11818
|
-
return !a || typeof a != "string" ? "" : a.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
11819
|
-
}
|
|
11820
11821
|
sendMessage(a) {
|
|
11821
11822
|
if (!a || typeof a != "string" || a.trim() === "") {
|
|
11822
11823
|
console.log("sendMessage: input text is empty or not string, ignored", a);
|
|
@@ -11846,7 +11847,7 @@ let H = class extends re {
|
|
|
11846
11847
|
console.log("_processSendMessage: input text is empty, ignored", a);
|
|
11847
11848
|
return;
|
|
11848
11849
|
}
|
|
11849
|
-
a.data.text =
|
|
11850
|
+
a.data.text = Vt(a.data.text.trim()), b.isConversationStart() && (console.log("Start of conversation detected, emitting c7o:bot:conversationStart", a), a.conversationId = b.conversationId, this.emitExt("c7o:bot:conversationStart", {
|
|
11850
11851
|
detail: a
|
|
11851
11852
|
})), b.sendMessage(a), setTimeout(() => {
|
|
11852
11853
|
this._scrollToBottom();
|
|
@@ -11892,7 +11893,7 @@ let H = class extends re {
|
|
|
11892
11893
|
this._messageList?.scrollToBottom();
|
|
11893
11894
|
}
|
|
11894
11895
|
};
|
|
11895
|
-
H.styles = [
|
|
11896
|
+
H.styles = [Xi, Ka];
|
|
11896
11897
|
N([
|
|
11897
11898
|
x({ type: Boolean, attribute: "display-license" })
|
|
11898
11899
|
], H.prototype, "displayLicense", 2);
|