umaki 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +592 -0
  3. package/dist/index.d.ts +8 -0
  4. package/dist/index.js +2871 -0
  5. package/dist/index.umd.cjs +3 -0
  6. package/dist/libs/control/bgScrollStop.d.ts +15 -0
  7. package/dist/libs/control/index.d.ts +7 -0
  8. package/dist/libs/control/pd.d.ts +6 -0
  9. package/dist/libs/control/pd.test.d.ts +1 -0
  10. package/dist/libs/control/scrollToHash.d.ts +9 -0
  11. package/dist/libs/control/scrollToHash.test.d.ts +1 -0
  12. package/dist/libs/control/videoPlayControl.d.ts +14 -0
  13. package/dist/libs/control/videoPlayControl.test.d.ts +1 -0
  14. package/dist/libs/convert/changeDateStringToSpecificFormat.d.ts +8 -0
  15. package/dist/libs/convert/changeDateStringToSpecificFormat.test.d.ts +1 -0
  16. package/dist/libs/convert/index.d.ts +5 -0
  17. package/dist/libs/convert/jsonStringToJsonObject.d.ts +7 -0
  18. package/dist/libs/convert/jsonStringToJsonObject.test.d.ts +1 -0
  19. package/dist/libs/get/getAspectRatio.d.ts +11 -0
  20. package/dist/libs/get/getAspectRatio.test.d.ts +1 -0
  21. package/dist/libs/get/getClassNames.d.ts +7 -0
  22. package/dist/libs/get/getClassNames.test.d.ts +1 -0
  23. package/dist/libs/get/getDocumentHeight.d.ts +6 -0
  24. package/dist/libs/get/getDocumentHeight.test.d.ts +1 -0
  25. package/dist/libs/get/getEventPaths.d.ts +6 -0
  26. package/dist/libs/get/getGcd.d.ts +11 -0
  27. package/dist/libs/get/getGcd.test.d.ts +1 -0
  28. package/dist/libs/get/getImageSize.d.ts +7 -0
  29. package/dist/libs/get/getOrientation.d.ts +6 -0
  30. package/dist/libs/get/getOrientation.test.d.ts +1 -0
  31. package/dist/libs/get/getParentList.d.ts +7 -0
  32. package/dist/libs/get/getParentList.test.d.ts +1 -0
  33. package/dist/libs/get/getPath.d.ts +7 -0
  34. package/dist/libs/get/getPath.test.d.ts +1 -0
  35. package/dist/libs/get/getPathFromLocalPublic.d.ts +7 -0
  36. package/dist/libs/get/getPathFromLocalPublic.test.d.ts +1 -0
  37. package/dist/libs/get/getQueryParams.d.ts +10 -0
  38. package/dist/libs/get/getQueryParams.test.d.ts +1 -0
  39. package/dist/libs/get/getRem.d.ts +7 -0
  40. package/dist/libs/get/getRem.test.d.ts +1 -0
  41. package/dist/libs/get/getScrollbarWidth.d.ts +6 -0
  42. package/dist/libs/get/getScrollbarWidth.test.d.ts +1 -0
  43. package/dist/libs/get/getSessionStorage.d.ts +7 -0
  44. package/dist/libs/get/getSessionStorage.test.d.ts +1 -0
  45. package/dist/libs/get/getStringLength.d.ts +10 -0
  46. package/dist/libs/get/getStringLength.test.d.ts +1 -0
  47. package/dist/libs/get/getStylePropertyValue.d.ts +7 -0
  48. package/dist/libs/get/getStylePropertyValue.test.d.ts +1 -0
  49. package/dist/libs/get/getStylePropertyValueToNumber.d.ts +7 -0
  50. package/dist/libs/get/getStylePropertyValueToNumber.test.d.ts +1 -0
  51. package/dist/libs/get/getUaData.d.ts +24 -0
  52. package/dist/libs/get/getUaData.test.d.ts +1 -0
  53. package/dist/libs/get/index.d.ts +18 -0
  54. package/dist/libs/is/index.d.ts +10 -0
  55. package/dist/libs/is/isBetweenDateTime.d.ts +11 -0
  56. package/dist/libs/is/isBetweenDateTime.test.d.ts +1 -0
  57. package/dist/libs/is/isExistAllElements.d.ts +7 -0
  58. package/dist/libs/is/isExistAllElements.test.d.ts +1 -0
  59. package/dist/libs/is/isIpad.d.ts +7 -0
  60. package/dist/libs/is/isIpad.test.d.ts +1 -0
  61. package/dist/libs/is/isKeyExists.d.ts +10 -0
  62. package/dist/libs/is/isKeyExists.test.d.ts +1 -0
  63. package/dist/libs/is/isProduction.d.ts +1 -0
  64. package/dist/libs/is/isProduction.test.d.ts +1 -0
  65. package/dist/libs/is/isSafari.d.ts +7 -0
  66. package/dist/libs/is/isSafari.test.d.ts +1 -0
  67. package/dist/libs/is/isScrollable.d.ts +7 -0
  68. package/dist/libs/is/isScrollable.test.d.ts +1 -0
  69. package/dist/libs/is/isTouchSupport.d.ts +6 -0
  70. package/dist/libs/remove/index.d.ts +7 -0
  71. package/dist/libs/remove/removeAllHtmlTags.d.ts +7 -0
  72. package/dist/libs/remove/removeAllHtmlTags.test.d.ts +1 -0
  73. package/dist/libs/remove/removeAttribute.d.ts +7 -0
  74. package/dist/libs/remove/removeAttribute.test.d.ts +1 -0
  75. package/dist/libs/remove/removeSessionStorage.d.ts +6 -0
  76. package/dist/libs/remove/removeSessionStorage.test.d.ts +1 -0
  77. package/dist/libs/remove/removeStylePropertyValue.d.ts +6 -0
  78. package/dist/libs/remove/removeStylePropertyValue.test.d.ts +1 -0
  79. package/dist/libs/set/index.d.ts +9 -0
  80. package/dist/libs/set/set100vh.d.ts +11 -0
  81. package/dist/libs/set/set100vh.test.d.ts +1 -0
  82. package/dist/libs/set/set100vw.d.ts +6 -0
  83. package/dist/libs/set/set100vw.test.d.ts +1 -0
  84. package/dist/libs/set/setAttribute.d.ts +8 -0
  85. package/dist/libs/set/setAttribute.test.d.ts +1 -0
  86. package/dist/libs/set/setScrollPositionToCenter.d.ts +8 -0
  87. package/dist/libs/set/setScrollPositionToCenter.test.d.ts +1 -0
  88. package/dist/libs/set/setSessionStorage.d.ts +7 -0
  89. package/dist/libs/set/setSessionStorage.test.d.ts +1 -0
  90. package/dist/libs/set/setStylePropertyValue.d.ts +7 -0
  91. package/dist/libs/set/setStylePropertyValue.test.d.ts +1 -0
  92. package/dist/libs/to/index.d.ts +5 -0
  93. package/dist/libs/to/toBoolean.d.ts +7 -0
  94. package/dist/libs/to/toBoolean.test.d.ts +1 -0
  95. package/dist/libs/to/toPositiveNumber.d.ts +7 -0
  96. package/dist/libs/to/toPositiveNumber.test.d.ts +1 -0
  97. package/dist/libs/transform/index.d.ts +4 -0
  98. package/dist/libs/transform/wrapTextWithSpans.d.ts +10 -0
  99. package/dist/libs/transform/wrapTextWithSpans.test.d.ts +1 -0
  100. package/dist/libs/wait/index.d.ts +5 -0
  101. package/dist/libs/wait/sleep.d.ts +7 -0
  102. package/dist/libs/wait/sleep.test.d.ts +1 -0
  103. package/dist/libs/wait/waitForAllMediaLoaded.d.ts +7 -0
  104. package/dist/libs/wait/waitForAllMediaLoaded.test.d.ts +1 -0
  105. package/dist/vite.svg +1 -0
  106. package/package.json +60 -0
package/dist/index.js ADDED
@@ -0,0 +1,2871 @@
1
+ const qr = () => window.innerWidth - document.body.clientWidth, Ln = (e = !0) => {
2
+ document.body.style.paddingRight = e ? `${qr()}px` : "", e && (document.body.style.overflow = "hidden"), e || (document.body.style.overflow = "");
3
+ }, Pn = (e) => e.preventDefault(), kn = async (e, t = !0, i) => {
4
+ const r = e.replace("#", ""), s = document.getElementById(r);
5
+ if (!s) return !1;
6
+ const c = Math.floor(
7
+ s.getBoundingClientRect().top + window.scrollY
8
+ ) - (i || 0);
9
+ return window.scrollTo({
10
+ top: c,
11
+ behavior: t ? "smooth" : "instant"
12
+ }), new Promise((d) => {
13
+ const O = setTimeout(() => {
14
+ window.removeEventListener("scroll", P), d(!1);
15
+ }, 1e3), P = () => {
16
+ window.scrollY === c && (window.removeEventListener("scroll", P), clearTimeout(O), d(!0));
17
+ };
18
+ window.scrollY === c && (clearTimeout(O), d(!0)), window.scrollY !== c && window.addEventListener("scroll", P, !1);
19
+ });
20
+ }, or = (e) => e ? e.toLowerCase() === "true" : !1, Fn = async (e, t) => {
21
+ if (t && e.paused) {
22
+ if (or(e.dataset.playing)) return;
23
+ const r = e.play();
24
+ if (r === void 0) return;
25
+ try {
26
+ await r, e.currentTime = 0, e.dataset.playing = "true";
27
+ } catch {
28
+ }
29
+ }
30
+ if (!t && !e.paused) {
31
+ if (!or(e.dataset.playing)) return;
32
+ e.pause(), e.dataset.playing = "false";
33
+ }
34
+ };
35
+ var Ue = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
36
+ function Ye(e) {
37
+ return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
38
+ }
39
+ var hr = { exports: {} };
40
+ (function(e, t) {
41
+ (function(i, r) {
42
+ e.exports = r();
43
+ })(Ue, function() {
44
+ var i = 1e3, r = 6e4, s = 36e5, o = "millisecond", a = "second", c = "minute", d = "hour", O = "day", P = "week", j = "month", u = "quarter", m = "year", l = "date", f = "Invalid Date", h = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, oe = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, pe = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(S) {
45
+ var w = ["th", "st", "nd", "rd"], g = S % 100;
46
+ return "[" + S + (w[(g - 20) % 10] || w[g] || w[0]) + "]";
47
+ } }, M = function(S, w, g) {
48
+ var T = String(S);
49
+ return !T || T.length >= w ? S : "" + Array(w + 1 - T.length).join(g) + S;
50
+ }, C = { s: M, z: function(S) {
51
+ var w = -S.utcOffset(), g = Math.abs(w), T = Math.floor(g / 60), b = g % 60;
52
+ return (w <= 0 ? "+" : "-") + M(T, 2, "0") + ":" + M(b, 2, "0");
53
+ }, m: function S(w, g) {
54
+ if (w.date() < g.date()) return -S(g, w);
55
+ var T = 12 * (g.year() - w.year()) + (g.month() - w.month()), b = w.clone().add(T, j), R = g - b < 0, v = w.clone().add(T + (R ? -1 : 1), j);
56
+ return +(-(T + (g - b) / (R ? b - v : v - b)) || 0);
57
+ }, a: function(S) {
58
+ return S < 0 ? Math.ceil(S) || 0 : Math.floor(S);
59
+ }, p: function(S) {
60
+ return { M: j, y: m, w: P, d: O, D: l, h: d, m: c, s: a, ms: o, Q: u }[S] || String(S || "").toLowerCase().replace(/s$/, "");
61
+ }, u: function(S) {
62
+ return S === void 0;
63
+ } }, B = "en", z = {};
64
+ z[B] = pe;
65
+ var be = "$isDayjsObject", X = function(S) {
66
+ return S instanceof ae || !(!S || !S[be]);
67
+ }, Ae = function S(w, g, T) {
68
+ var b;
69
+ if (!w) return B;
70
+ if (typeof w == "string") {
71
+ var R = w.toLowerCase();
72
+ z[R] && (b = R), g && (z[R] = g, b = R);
73
+ var v = w.split("-");
74
+ if (!b && v.length > 1) return S(v[0]);
75
+ } else {
76
+ var H = w.name;
77
+ z[H] = w, b = H;
78
+ }
79
+ return !T && b && (B = b), b || !T && B;
80
+ }, _ = function(S, w) {
81
+ if (X(S)) return S.clone();
82
+ var g = typeof w == "object" ? w : {};
83
+ return g.date = S, g.args = arguments, new ae(g);
84
+ }, U = C;
85
+ U.l = Ae, U.i = X, U.w = function(S, w) {
86
+ return _(S, { locale: w.$L, utc: w.$u, x: w.$x, $offset: w.$offset });
87
+ };
88
+ var ae = function() {
89
+ function S(g) {
90
+ this.$L = Ae(g.locale, null, !0), this.parse(g), this.$x = this.$x || g.x || {}, this[be] = !0;
91
+ }
92
+ var w = S.prototype;
93
+ return w.parse = function(g) {
94
+ this.$d = function(T) {
95
+ var b = T.date, R = T.utc;
96
+ if (b === null) return /* @__PURE__ */ new Date(NaN);
97
+ if (U.u(b)) return /* @__PURE__ */ new Date();
98
+ if (b instanceof Date) return new Date(b);
99
+ if (typeof b == "string" && !/Z$/i.test(b)) {
100
+ var v = b.match(h);
101
+ if (v) {
102
+ var H = v[2] - 1 || 0, W = (v[7] || "0").substring(0, 3);
103
+ return R ? new Date(Date.UTC(v[1], H, v[3] || 1, v[4] || 0, v[5] || 0, v[6] || 0, W)) : new Date(v[1], H, v[3] || 1, v[4] || 0, v[5] || 0, v[6] || 0, W);
104
+ }
105
+ }
106
+ return new Date(b);
107
+ }(g), this.init();
108
+ }, w.init = function() {
109
+ var g = this.$d;
110
+ this.$y = g.getFullYear(), this.$M = g.getMonth(), this.$D = g.getDate(), this.$W = g.getDay(), this.$H = g.getHours(), this.$m = g.getMinutes(), this.$s = g.getSeconds(), this.$ms = g.getMilliseconds();
111
+ }, w.$utils = function() {
112
+ return U;
113
+ }, w.isValid = function() {
114
+ return this.$d.toString() !== f;
115
+ }, w.isSame = function(g, T) {
116
+ var b = _(g);
117
+ return this.startOf(T) <= b && b <= this.endOf(T);
118
+ }, w.isAfter = function(g, T) {
119
+ return _(g) < this.startOf(T);
120
+ }, w.isBefore = function(g, T) {
121
+ return this.endOf(T) < _(g);
122
+ }, w.$g = function(g, T, b) {
123
+ return U.u(g) ? this[T] : this.set(b, g);
124
+ }, w.unix = function() {
125
+ return Math.floor(this.valueOf() / 1e3);
126
+ }, w.valueOf = function() {
127
+ return this.$d.getTime();
128
+ }, w.startOf = function(g, T) {
129
+ var b = this, R = !!U.u(T) || T, v = U.p(g), H = function(_e, J) {
130
+ var ge = U.w(b.$u ? Date.UTC(b.$y, J, _e) : new Date(b.$y, J, _e), b);
131
+ return R ? ge : ge.endOf(O);
132
+ }, W = function(_e, J) {
133
+ return U.w(b.toDate()[_e].apply(b.toDate("s"), (R ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(J)), b);
134
+ }, Y = this.$W, q = this.$M, ee = this.$D, we = "set" + (this.$u ? "UTC" : "");
135
+ switch (v) {
136
+ case m:
137
+ return R ? H(1, 0) : H(31, 11);
138
+ case j:
139
+ return R ? H(1, q) : H(0, q + 1);
140
+ case P:
141
+ var he = this.$locale().weekStart || 0, Ee = (Y < he ? Y + 7 : Y) - he;
142
+ return H(R ? ee - Ee : ee + (6 - Ee), q);
143
+ case O:
144
+ case l:
145
+ return W(we + "Hours", 0);
146
+ case d:
147
+ return W(we + "Minutes", 1);
148
+ case c:
149
+ return W(we + "Seconds", 2);
150
+ case a:
151
+ return W(we + "Milliseconds", 3);
152
+ default:
153
+ return this.clone();
154
+ }
155
+ }, w.endOf = function(g) {
156
+ return this.startOf(g, !1);
157
+ }, w.$set = function(g, T) {
158
+ var b, R = U.p(g), v = "set" + (this.$u ? "UTC" : ""), H = (b = {}, b[O] = v + "Date", b[l] = v + "Date", b[j] = v + "Month", b[m] = v + "FullYear", b[d] = v + "Hours", b[c] = v + "Minutes", b[a] = v + "Seconds", b[o] = v + "Milliseconds", b)[R], W = R === O ? this.$D + (T - this.$W) : T;
159
+ if (R === j || R === m) {
160
+ var Y = this.clone().set(l, 1);
161
+ Y.$d[H](W), Y.init(), this.$d = Y.set(l, Math.min(this.$D, Y.daysInMonth())).$d;
162
+ } else H && this.$d[H](W);
163
+ return this.init(), this;
164
+ }, w.set = function(g, T) {
165
+ return this.clone().$set(g, T);
166
+ }, w.get = function(g) {
167
+ return this[U.p(g)]();
168
+ }, w.add = function(g, T) {
169
+ var b, R = this;
170
+ g = Number(g);
171
+ var v = U.p(T), H = function(q) {
172
+ var ee = _(R);
173
+ return U.w(ee.date(ee.date() + Math.round(q * g)), R);
174
+ };
175
+ if (v === j) return this.set(j, this.$M + g);
176
+ if (v === m) return this.set(m, this.$y + g);
177
+ if (v === O) return H(1);
178
+ if (v === P) return H(7);
179
+ var W = (b = {}, b[c] = r, b[d] = s, b[a] = i, b)[v] || 1, Y = this.$d.getTime() + g * W;
180
+ return U.w(Y, this);
181
+ }, w.subtract = function(g, T) {
182
+ return this.add(-1 * g, T);
183
+ }, w.format = function(g) {
184
+ var T = this, b = this.$locale();
185
+ if (!this.isValid()) return b.invalidDate || f;
186
+ var R = g || "YYYY-MM-DDTHH:mm:ssZ", v = U.z(this), H = this.$H, W = this.$m, Y = this.$M, q = b.weekdays, ee = b.months, we = b.meridiem, he = function(J, ge, Re, Te) {
187
+ return J && (J[ge] || J(T, R)) || Re[ge].slice(0, Te);
188
+ }, Ee = function(J) {
189
+ return U.s(H % 12 || 12, J, "0");
190
+ }, _e = we || function(J, ge, Re) {
191
+ var Te = J < 12 ? "AM" : "PM";
192
+ return Re ? Te.toLowerCase() : Te;
193
+ };
194
+ return R.replace(oe, function(J, ge) {
195
+ return ge || function(Re) {
196
+ switch (Re) {
197
+ case "YY":
198
+ return String(T.$y).slice(-2);
199
+ case "YYYY":
200
+ return U.s(T.$y, 4, "0");
201
+ case "M":
202
+ return Y + 1;
203
+ case "MM":
204
+ return U.s(Y + 1, 2, "0");
205
+ case "MMM":
206
+ return he(b.monthsShort, Y, ee, 3);
207
+ case "MMMM":
208
+ return he(ee, Y);
209
+ case "D":
210
+ return T.$D;
211
+ case "DD":
212
+ return U.s(T.$D, 2, "0");
213
+ case "d":
214
+ return String(T.$W);
215
+ case "dd":
216
+ return he(b.weekdaysMin, T.$W, q, 2);
217
+ case "ddd":
218
+ return he(b.weekdaysShort, T.$W, q, 3);
219
+ case "dddd":
220
+ return q[T.$W];
221
+ case "H":
222
+ return String(H);
223
+ case "HH":
224
+ return U.s(H, 2, "0");
225
+ case "h":
226
+ return Ee(1);
227
+ case "hh":
228
+ return Ee(2);
229
+ case "a":
230
+ return _e(H, W, !0);
231
+ case "A":
232
+ return _e(H, W, !1);
233
+ case "m":
234
+ return String(W);
235
+ case "mm":
236
+ return U.s(W, 2, "0");
237
+ case "s":
238
+ return String(T.$s);
239
+ case "ss":
240
+ return U.s(T.$s, 2, "0");
241
+ case "SSS":
242
+ return U.s(T.$ms, 3, "0");
243
+ case "Z":
244
+ return v;
245
+ }
246
+ return null;
247
+ }(J) || v.replace(":", "");
248
+ });
249
+ }, w.utcOffset = function() {
250
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
251
+ }, w.diff = function(g, T, b) {
252
+ var R, v = this, H = U.p(T), W = _(g), Y = (W.utcOffset() - this.utcOffset()) * r, q = this - W, ee = function() {
253
+ return U.m(v, W);
254
+ };
255
+ switch (H) {
256
+ case m:
257
+ R = ee() / 12;
258
+ break;
259
+ case j:
260
+ R = ee();
261
+ break;
262
+ case u:
263
+ R = ee() / 3;
264
+ break;
265
+ case P:
266
+ R = (q - Y) / 6048e5;
267
+ break;
268
+ case O:
269
+ R = (q - Y) / 864e5;
270
+ break;
271
+ case d:
272
+ R = q / s;
273
+ break;
274
+ case c:
275
+ R = q / r;
276
+ break;
277
+ case a:
278
+ R = q / i;
279
+ break;
280
+ default:
281
+ R = q;
282
+ }
283
+ return b ? R : U.a(R);
284
+ }, w.daysInMonth = function() {
285
+ return this.endOf(j).$D;
286
+ }, w.$locale = function() {
287
+ return z[this.$L];
288
+ }, w.locale = function(g, T) {
289
+ if (!g) return this.$L;
290
+ var b = this.clone(), R = Ae(g, T, !0);
291
+ return R && (b.$L = R), b;
292
+ }, w.clone = function() {
293
+ return U.w(this.$d, this);
294
+ }, w.toDate = function() {
295
+ return new Date(this.valueOf());
296
+ }, w.toJSON = function() {
297
+ return this.isValid() ? this.toISOString() : null;
298
+ }, w.toISOString = function() {
299
+ return this.$d.toISOString();
300
+ }, w.toString = function() {
301
+ return this.$d.toUTCString();
302
+ }, S;
303
+ }(), de = ae.prototype;
304
+ return _.prototype = de, [["$ms", o], ["$s", a], ["$m", c], ["$H", d], ["$W", O], ["$M", j], ["$y", m], ["$D", l]].forEach(function(S) {
305
+ de[S[1]] = function(w) {
306
+ return this.$g(w, S[0], S[1]);
307
+ };
308
+ }), _.extend = function(S, w) {
309
+ return S.$i || (S(w, ae, _), S.$i = !0), _;
310
+ }, _.locale = Ae, _.isDayjs = X, _.unix = function(S) {
311
+ return _(1e3 * S);
312
+ }, _.en = z[B], _.Ls = z, _.p = {}, _;
313
+ });
314
+ })(hr);
315
+ var Xr = hr.exports;
316
+ const Fe = /* @__PURE__ */ Ye(Xr), Un = (e, t = "YYYY年MM月DD日") => Fe(e).format(t), Hn = (e) => {
317
+ try {
318
+ return JSON.parse(e);
319
+ } catch {
320
+ }
321
+ }, sr = (e) => Math.abs(e), gr = (e, t) => {
322
+ const i = sr(Math.abs(e)), r = sr(Math.abs(t));
323
+ return r === 0 ? i : gr(r, i % r);
324
+ }, $n = (e, t) => {
325
+ const i = gr(e, t);
326
+ return { w: e / i, h: t / i };
327
+ }, Bn = (e) => String(e.classList).split(" ").filter((i) => i), zn = () => document.body.clientHeight - window.innerHeight, Wn = (e) => {
328
+ var s;
329
+ let t = ((s = e.composedPath) == null ? void 0 : s.call(e)) || null;
330
+ const i = e.target;
331
+ if (t != null)
332
+ return t = t.indexOf(window) < 0 ? t.concat([window]) : t, t;
333
+ if (i instanceof Window)
334
+ return [window];
335
+ const r = (o, a) => {
336
+ const c = a || [], d = o.parentNode;
337
+ return d ? r(d, c.concat([d])) : a;
338
+ };
339
+ return [i].concat(r(i, [])).concat([window]);
340
+ }, Zr = () => window.matchMedia("(orientation: landscape)").matches ? "landscape" : "portrait", Kr = (e) => {
341
+ const t = e.parentElement;
342
+ return t ? [e].concat(Kr(t)) : [e];
343
+ }, br = "%[a-f0-9]{2}", ar = new RegExp("(" + br + ")|([^%]+?)", "gi"), cr = new RegExp("(" + br + ")+", "gi");
344
+ function Et(e, t) {
345
+ try {
346
+ return [decodeURIComponent(e.join(""))];
347
+ } catch {
348
+ }
349
+ if (e.length === 1)
350
+ return e;
351
+ t = t || 1;
352
+ const i = e.slice(0, t), r = e.slice(t);
353
+ return Array.prototype.concat.call([], Et(i), Et(r));
354
+ }
355
+ function Jr(e) {
356
+ try {
357
+ return decodeURIComponent(e);
358
+ } catch {
359
+ let t = e.match(ar) || [];
360
+ for (let i = 1; i < t.length; i++)
361
+ e = Et(t, i).join(""), t = e.match(ar) || [];
362
+ return e;
363
+ }
364
+ }
365
+ function Qr(e) {
366
+ const t = {
367
+ "%FE%FF": "��",
368
+ "%FF%FE": "��"
369
+ };
370
+ let i = cr.exec(e);
371
+ for (; i; ) {
372
+ try {
373
+ t[i[0]] = decodeURIComponent(i[0]);
374
+ } catch {
375
+ const s = Jr(i[0]);
376
+ s !== i[0] && (t[i[0]] = s);
377
+ }
378
+ i = cr.exec(e);
379
+ }
380
+ t["%C2"] = "�";
381
+ const r = Object.keys(t);
382
+ for (const s of r)
383
+ e = e.replace(new RegExp(s, "g"), t[s]);
384
+ return e;
385
+ }
386
+ function en(e) {
387
+ if (typeof e != "string")
388
+ throw new TypeError("Expected `encodedURI` to be of type `string`, got `" + typeof e + "`");
389
+ try {
390
+ return decodeURIComponent(e);
391
+ } catch {
392
+ return Qr(e);
393
+ }
394
+ }
395
+ function tn(e, t) {
396
+ const i = {};
397
+ if (Array.isArray(t))
398
+ for (const r of t) {
399
+ const s = Object.getOwnPropertyDescriptor(e, r);
400
+ s != null && s.enumerable && Object.defineProperty(i, r, s);
401
+ }
402
+ else
403
+ for (const r of Reflect.ownKeys(e)) {
404
+ const s = Object.getOwnPropertyDescriptor(e, r);
405
+ if (s.enumerable) {
406
+ const o = e[r];
407
+ t(r, o, e) && Object.defineProperty(i, r, s);
408
+ }
409
+ }
410
+ return i;
411
+ }
412
+ function wr(e, t) {
413
+ if (!(typeof e == "string" && typeof t == "string"))
414
+ throw new TypeError("Expected the arguments to be of type `string`");
415
+ if (e === "" || t === "")
416
+ return [];
417
+ const i = e.indexOf(t);
418
+ return i === -1 ? [] : [
419
+ e.slice(0, i),
420
+ e.slice(i + t.length)
421
+ ];
422
+ }
423
+ const rn = (e) => e == null, nn = (e) => encodeURIComponent(e).replaceAll(/[!'()*]/g, (t) => `%${t.charCodeAt(0).toString(16).toUpperCase()}`), St = Symbol("encodeFragmentIdentifier");
424
+ function on(e) {
425
+ switch (e.arrayFormat) {
426
+ case "index":
427
+ return (t) => (i, r) => {
428
+ const s = i.length;
429
+ return r === void 0 || e.skipNull && r === null || e.skipEmptyString && r === "" ? i : r === null ? [
430
+ ...i,
431
+ [Q(t, e), "[", s, "]"].join("")
432
+ ] : [
433
+ ...i,
434
+ [Q(t, e), "[", Q(s, e), "]=", Q(r, e)].join("")
435
+ ];
436
+ };
437
+ case "bracket":
438
+ return (t) => (i, r) => r === void 0 || e.skipNull && r === null || e.skipEmptyString && r === "" ? i : r === null ? [
439
+ ...i,
440
+ [Q(t, e), "[]"].join("")
441
+ ] : [
442
+ ...i,
443
+ [Q(t, e), "[]=", Q(r, e)].join("")
444
+ ];
445
+ case "colon-list-separator":
446
+ return (t) => (i, r) => r === void 0 || e.skipNull && r === null || e.skipEmptyString && r === "" ? i : r === null ? [
447
+ ...i,
448
+ [Q(t, e), ":list="].join("")
449
+ ] : [
450
+ ...i,
451
+ [Q(t, e), ":list=", Q(r, e)].join("")
452
+ ];
453
+ case "comma":
454
+ case "separator":
455
+ case "bracket-separator": {
456
+ const t = e.arrayFormat === "bracket-separator" ? "[]=" : "=";
457
+ return (i) => (r, s) => s === void 0 || e.skipNull && s === null || e.skipEmptyString && s === "" ? r : (s = s === null ? "" : s, r.length === 0 ? [[Q(i, e), t, Q(s, e)].join("")] : [[r, Q(s, e)].join(e.arrayFormatSeparator)]);
458
+ }
459
+ default:
460
+ return (t) => (i, r) => r === void 0 || e.skipNull && r === null || e.skipEmptyString && r === "" ? i : r === null ? [
461
+ ...i,
462
+ Q(t, e)
463
+ ] : [
464
+ ...i,
465
+ [Q(t, e), "=", Q(r, e)].join("")
466
+ ];
467
+ }
468
+ }
469
+ function sn(e) {
470
+ let t;
471
+ switch (e.arrayFormat) {
472
+ case "index":
473
+ return (i, r, s) => {
474
+ if (t = /\[(\d*)]$/.exec(i), i = i.replace(/\[\d*]$/, ""), !t) {
475
+ s[i] = r;
476
+ return;
477
+ }
478
+ s[i] === void 0 && (s[i] = {}), s[i][t[1]] = r;
479
+ };
480
+ case "bracket":
481
+ return (i, r, s) => {
482
+ if (t = /(\[])$/.exec(i), i = i.replace(/\[]$/, ""), !t) {
483
+ s[i] = r;
484
+ return;
485
+ }
486
+ if (s[i] === void 0) {
487
+ s[i] = [r];
488
+ return;
489
+ }
490
+ s[i] = [...s[i], r];
491
+ };
492
+ case "colon-list-separator":
493
+ return (i, r, s) => {
494
+ if (t = /(:list)$/.exec(i), i = i.replace(/:list$/, ""), !t) {
495
+ s[i] = r;
496
+ return;
497
+ }
498
+ if (s[i] === void 0) {
499
+ s[i] = [r];
500
+ return;
501
+ }
502
+ s[i] = [...s[i], r];
503
+ };
504
+ case "comma":
505
+ case "separator":
506
+ return (i, r, s) => {
507
+ const o = typeof r == "string" && r.includes(e.arrayFormatSeparator), a = typeof r == "string" && !o && Me(r, e).includes(e.arrayFormatSeparator);
508
+ r = a ? Me(r, e) : r;
509
+ const c = o || a ? r.split(e.arrayFormatSeparator).map((d) => Me(d, e)) : r === null ? r : Me(r, e);
510
+ s[i] = c;
511
+ };
512
+ case "bracket-separator":
513
+ return (i, r, s) => {
514
+ const o = /(\[])$/.test(i);
515
+ if (i = i.replace(/\[]$/, ""), !o) {
516
+ s[i] = r && Me(r, e);
517
+ return;
518
+ }
519
+ const a = r === null ? [] : Me(r, e).split(e.arrayFormatSeparator);
520
+ if (s[i] === void 0) {
521
+ s[i] = a;
522
+ return;
523
+ }
524
+ s[i] = [...s[i], ...a];
525
+ };
526
+ default:
527
+ return (i, r, s) => {
528
+ if (s[i] === void 0) {
529
+ s[i] = r;
530
+ return;
531
+ }
532
+ s[i] = [...[s[i]].flat(), r];
533
+ };
534
+ }
535
+ }
536
+ function _r(e) {
537
+ if (typeof e != "string" || e.length !== 1)
538
+ throw new TypeError("arrayFormatSeparator must be single character string");
539
+ }
540
+ function Q(e, t) {
541
+ return t.encode ? t.strict ? nn(e) : encodeURIComponent(e) : e;
542
+ }
543
+ function Me(e, t) {
544
+ return t.decode ? en(e) : e;
545
+ }
546
+ function Tr(e) {
547
+ return Array.isArray(e) ? e.sort() : typeof e == "object" ? Tr(Object.keys(e)).sort((t, i) => Number(t) - Number(i)).map((t) => e[t]) : e;
548
+ }
549
+ function yr(e) {
550
+ const t = e.indexOf("#");
551
+ return t !== -1 && (e = e.slice(0, t)), e;
552
+ }
553
+ function an(e) {
554
+ let t = "";
555
+ const i = e.indexOf("#");
556
+ return i !== -1 && (t = e.slice(i)), t;
557
+ }
558
+ function lr(e, t, i) {
559
+ return i === "string" && typeof e == "string" ? e : typeof i == "function" && typeof e == "string" ? i(e) : t.parseBooleans && e !== null && (e.toLowerCase() === "true" || e.toLowerCase() === "false") ? e.toLowerCase() === "true" : i === "number" && !Number.isNaN(Number(e)) && typeof e == "string" && e.trim() !== "" || t.parseNumbers && !Number.isNaN(Number(e)) && typeof e == "string" && e.trim() !== "" ? Number(e) : e;
560
+ }
561
+ function Rt(e) {
562
+ e = yr(e);
563
+ const t = e.indexOf("?");
564
+ return t === -1 ? "" : e.slice(t + 1);
565
+ }
566
+ function xt(e, t) {
567
+ t = {
568
+ decode: !0,
569
+ sort: !0,
570
+ arrayFormat: "none",
571
+ arrayFormatSeparator: ",",
572
+ parseNumbers: !1,
573
+ parseBooleans: !1,
574
+ types: /* @__PURE__ */ Object.create(null),
575
+ ...t
576
+ }, _r(t.arrayFormatSeparator);
577
+ const i = sn(t), r = /* @__PURE__ */ Object.create(null);
578
+ if (typeof e != "string" || (e = e.trim().replace(/^[?#&]/, ""), !e))
579
+ return r;
580
+ for (const s of e.split("&")) {
581
+ if (s === "")
582
+ continue;
583
+ const o = t.decode ? s.replaceAll("+", " ") : s;
584
+ let [a, c] = wr(o, "=");
585
+ a === void 0 && (a = o), c = c === void 0 ? null : ["comma", "separator", "bracket-separator"].includes(t.arrayFormat) ? c : Me(c, t), i(Me(a, t), c, r);
586
+ }
587
+ for (const [s, o] of Object.entries(r))
588
+ if (typeof o == "object" && o !== null && t.types[s] !== "string")
589
+ for (const [a, c] of Object.entries(o)) {
590
+ const d = t.types[s] ? t.types[s].replace("[]", "") : void 0;
591
+ o[a] = lr(c, t, d);
592
+ }
593
+ else typeof o == "object" && o !== null && t.types[s] === "string" ? r[s] = Object.values(o).join(t.arrayFormatSeparator) : r[s] = lr(o, t, t.types[s]);
594
+ return t.sort === !1 ? r : (t.sort === !0 ? Object.keys(r).sort() : Object.keys(r).sort(t.sort)).reduce((s, o) => {
595
+ const a = r[o];
596
+ return s[o] = a && typeof a == "object" && !Array.isArray(a) ? Tr(a) : a, s;
597
+ }, /* @__PURE__ */ Object.create(null));
598
+ }
599
+ function Ar(e, t) {
600
+ if (!e)
601
+ return "";
602
+ t = {
603
+ encode: !0,
604
+ strict: !0,
605
+ arrayFormat: "none",
606
+ arrayFormatSeparator: ",",
607
+ ...t
608
+ }, _r(t.arrayFormatSeparator);
609
+ const i = (a) => t.skipNull && rn(e[a]) || t.skipEmptyString && e[a] === "", r = on(t), s = {};
610
+ for (const [a, c] of Object.entries(e))
611
+ i(a) || (s[a] = c);
612
+ const o = Object.keys(s);
613
+ return t.sort !== !1 && o.sort(t.sort), o.map((a) => {
614
+ const c = e[a];
615
+ return c === void 0 ? "" : c === null ? Q(a, t) : Array.isArray(c) ? c.length === 0 && t.arrayFormat === "bracket-separator" ? Q(a, t) + "[]" : c.reduce(r(a), []).join("&") : Q(a, t) + "=" + Q(c, t);
616
+ }).filter((a) => a.length > 0).join("&");
617
+ }
618
+ function Er(e, t) {
619
+ var s;
620
+ t = {
621
+ decode: !0,
622
+ ...t
623
+ };
624
+ let [i, r] = wr(e, "#");
625
+ return i === void 0 && (i = e), {
626
+ url: ((s = i == null ? void 0 : i.split("?")) == null ? void 0 : s[0]) ?? "",
627
+ query: xt(Rt(e), t),
628
+ ...t && t.parseFragmentIdentifier && r ? { fragmentIdentifier: Me(r, t) } : {}
629
+ };
630
+ }
631
+ function Sr(e, t) {
632
+ t = {
633
+ encode: !0,
634
+ strict: !0,
635
+ [St]: !0,
636
+ ...t
637
+ };
638
+ const i = yr(e.url).split("?")[0] || "", r = Rt(e.url), s = {
639
+ ...xt(r, { sort: !1 }),
640
+ ...e.query
641
+ };
642
+ let o = Ar(s, t);
643
+ o && (o = `?${o}`);
644
+ let a = an(e.url);
645
+ if (typeof e.fragmentIdentifier == "string") {
646
+ const c = new URL(i);
647
+ c.hash = e.fragmentIdentifier, a = t[St] ? c.hash : `#${e.fragmentIdentifier}`;
648
+ }
649
+ return `${i}${o}${a}`;
650
+ }
651
+ function Or(e, t, i) {
652
+ i = {
653
+ parseFragmentIdentifier: !0,
654
+ [St]: !1,
655
+ ...i
656
+ };
657
+ const { url: r, query: s, fragmentIdentifier: o } = Er(e, i);
658
+ return Sr({
659
+ url: r,
660
+ query: tn(s, t),
661
+ fragmentIdentifier: o
662
+ }, i);
663
+ }
664
+ function cn(e, t, i) {
665
+ const r = Array.isArray(t) ? (s) => !t.includes(s) : (s, o) => !t(s, o);
666
+ return Or(e, r, i);
667
+ }
668
+ const ln = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
669
+ __proto__: null,
670
+ exclude: cn,
671
+ extract: Rt,
672
+ parse: xt,
673
+ parseUrl: Er,
674
+ pick: Or,
675
+ stringify: Ar,
676
+ stringifyUrl: Sr
677
+ }, Symbol.toStringTag, { value: "Module" })), un = {
678
+ arrayFormat: "comma",
679
+ parseNumbers: !0
680
+ }, Gn = (e, t) => {
681
+ const i = {
682
+ ...un,
683
+ ...t
684
+ }, r = ln.parse(window.location.search, i);
685
+ if (!r) return null;
686
+ const s = r[e];
687
+ return s ?? null;
688
+ }, jn = (e) => `${e / 16}rem`;
689
+ var vr = { exports: {} };
690
+ /*! store2 - v2.14.3 - 2024-02-14
691
+ * Copyright (c) 2024 Nathan Bubna; Licensed MIT */
692
+ (function(e) {
693
+ (function(t, i) {
694
+ var r = {
695
+ version: "2.14.3",
696
+ areas: {},
697
+ apis: {},
698
+ nsdelim: ".",
699
+ // utilities
700
+ inherit: function(o, a) {
701
+ for (var c in o)
702
+ a.hasOwnProperty(c) || Object.defineProperty(a, c, Object.getOwnPropertyDescriptor(o, c));
703
+ return a;
704
+ },
705
+ stringify: function(o, a) {
706
+ return o === void 0 || typeof o == "function" ? o + "" : JSON.stringify(o, a || r.replace);
707
+ },
708
+ parse: function(o, a) {
709
+ try {
710
+ return JSON.parse(o, a || r.revive);
711
+ } catch {
712
+ return o;
713
+ }
714
+ },
715
+ // extension hooks
716
+ fn: function(o, a) {
717
+ r.storeAPI[o] = a;
718
+ for (var c in r.apis)
719
+ r.apis[c][o] = a;
720
+ },
721
+ get: function(o, a) {
722
+ return o.getItem(a);
723
+ },
724
+ set: function(o, a, c) {
725
+ o.setItem(a, c);
726
+ },
727
+ remove: function(o, a) {
728
+ o.removeItem(a);
729
+ },
730
+ key: function(o, a) {
731
+ return o.key(a);
732
+ },
733
+ length: function(o) {
734
+ return o.length;
735
+ },
736
+ clear: function(o) {
737
+ o.clear();
738
+ },
739
+ // core functions
740
+ Store: function(o, a, c) {
741
+ var d = r.inherit(r.storeAPI, function(P, j, u) {
742
+ return arguments.length === 0 ? d.getAll() : typeof j == "function" ? d.transact(P, j, u) : j !== void 0 ? d.set(P, j, u) : typeof P == "string" || typeof P == "number" ? d.get(P) : typeof P == "function" ? d.each(P) : P ? d.setAll(P, j) : d.clear();
743
+ });
744
+ d._id = o;
745
+ try {
746
+ var O = "__store2_test";
747
+ a.setItem(O, "ok"), d._area = a, a.removeItem(O);
748
+ } catch {
749
+ d._area = r.storage("fake");
750
+ }
751
+ return d._ns = c || "", r.areas[o] || (r.areas[o] = d._area), r.apis[d._ns + d._id] || (r.apis[d._ns + d._id] = d), d;
752
+ },
753
+ storeAPI: {
754
+ // admin functions
755
+ area: function(o, a) {
756
+ var c = this[o];
757
+ return (!c || !c.area) && (c = r.Store(o, a, this._ns), this[o] || (this[o] = c)), c;
758
+ },
759
+ namespace: function(o, a, c) {
760
+ if (c = c || this._delim || r.nsdelim, !o)
761
+ return this._ns ? this._ns.substring(0, this._ns.length - c.length) : "";
762
+ var d = o, O = this[d];
763
+ if ((!O || !O.namespace) && (O = r.Store(this._id, this._area, this._ns + d + c), O._delim = c, this[d] || (this[d] = O), !a))
764
+ for (var P in r.areas)
765
+ O.area(P, r.areas[P]);
766
+ return O;
767
+ },
768
+ isFake: function(o) {
769
+ return o ? (this._real = this._area, this._area = r.storage("fake")) : o === !1 && (this._area = this._real || this._area), this._area.name === "fake";
770
+ },
771
+ toString: function() {
772
+ return "store" + (this._ns ? "." + this.namespace() : "") + "[" + this._id + "]";
773
+ },
774
+ // storage functions
775
+ has: function(o) {
776
+ return this._area.has ? this._area.has(this._in(o)) : this._in(o) in this._area;
777
+ },
778
+ size: function() {
779
+ return this.keys().length;
780
+ },
781
+ each: function(o, a) {
782
+ for (var c = 0, d = r.length(this._area); c < d; c++) {
783
+ var O = this._out(r.key(this._area, c));
784
+ if (O !== void 0 && o.call(this, O, this.get(O), a) === !1)
785
+ break;
786
+ d > r.length(this._area) && (d--, c--);
787
+ }
788
+ return a || this;
789
+ },
790
+ keys: function(o) {
791
+ return this.each(function(a, c, d) {
792
+ d.push(a);
793
+ }, o || []);
794
+ },
795
+ get: function(o, a) {
796
+ var c = r.get(this._area, this._in(o)), d;
797
+ return typeof a == "function" && (d = a, a = null), c !== null ? r.parse(c, d) : a ?? c;
798
+ },
799
+ getAll: function(o) {
800
+ return this.each(function(a, c, d) {
801
+ d[a] = c;
802
+ }, o || {});
803
+ },
804
+ transact: function(o, a, c) {
805
+ var d = this.get(o, c), O = a(d);
806
+ return this.set(o, O === void 0 ? d : O), this;
807
+ },
808
+ set: function(o, a, c) {
809
+ var d = this.get(o), O;
810
+ return d != null && c === !1 ? a : (typeof c == "function" && (O = c, c = void 0), r.set(this._area, this._in(o), r.stringify(a, O), c) || d);
811
+ },
812
+ setAll: function(o, a) {
813
+ var c, d;
814
+ for (var O in o)
815
+ d = o[O], this.set(O, d, a) !== d && (c = !0);
816
+ return c;
817
+ },
818
+ add: function(o, a, c) {
819
+ var d = this.get(o);
820
+ if (d instanceof Array)
821
+ a = d.concat(a);
822
+ else if (d !== null) {
823
+ var O = typeof d;
824
+ if (O === typeof a && O === "object") {
825
+ for (var P in a)
826
+ d[P] = a[P];
827
+ a = d;
828
+ } else
829
+ a = d + a;
830
+ }
831
+ return r.set(this._area, this._in(o), r.stringify(a, c)), a;
832
+ },
833
+ remove: function(o, a) {
834
+ var c = this.get(o, a);
835
+ return r.remove(this._area, this._in(o)), c;
836
+ },
837
+ clear: function() {
838
+ return this._ns ? this.each(function(o) {
839
+ r.remove(this._area, this._in(o));
840
+ }, 1) : r.clear(this._area), this;
841
+ },
842
+ clearAll: function() {
843
+ var o = this._area;
844
+ for (var a in r.areas)
845
+ r.areas.hasOwnProperty(a) && (this._area = r.areas[a], this.clear());
846
+ return this._area = o, this;
847
+ },
848
+ // internal use functions
849
+ _in: function(o) {
850
+ return typeof o != "string" && (o = r.stringify(o)), this._ns ? this._ns + o : o;
851
+ },
852
+ _out: function(o) {
853
+ return this._ns ? o && o.indexOf(this._ns) === 0 ? o.substring(this._ns.length) : void 0 : (
854
+ // so each() knows to skip it
855
+ o
856
+ );
857
+ }
858
+ },
859
+ // end _.storeAPI
860
+ storage: function(o) {
861
+ return r.inherit(r.storageAPI, { items: {}, name: o });
862
+ },
863
+ storageAPI: {
864
+ length: 0,
865
+ has: function(o) {
866
+ return this.items.hasOwnProperty(o);
867
+ },
868
+ key: function(o) {
869
+ var a = 0;
870
+ for (var c in this.items)
871
+ if (this.has(c) && o === a++)
872
+ return c;
873
+ },
874
+ setItem: function(o, a) {
875
+ this.has(o) || this.length++, this.items[o] = a;
876
+ },
877
+ removeItem: function(o) {
878
+ this.has(o) && (delete this.items[o], this.length--);
879
+ },
880
+ getItem: function(o) {
881
+ return this.has(o) ? this.items[o] : null;
882
+ },
883
+ clear: function() {
884
+ for (var o in this.items)
885
+ this.removeItem(o);
886
+ }
887
+ }
888
+ // end _.storageAPI
889
+ }, s = (
890
+ // safely set this up (throws error in IE10/32bit mode for local files)
891
+ r.Store("local", function() {
892
+ try {
893
+ return localStorage;
894
+ } catch {
895
+ }
896
+ }())
897
+ );
898
+ s.local = s, s._ = r, s.area("session", function() {
899
+ try {
900
+ return sessionStorage;
901
+ } catch {
902
+ }
903
+ }()), s.area("page", r.storage("page")), typeof i == "function" && i.amd !== void 0 ? i("store2", [], function() {
904
+ return s;
905
+ }) : e.exports ? e.exports = s : (t.store && (r.conflict = t.store), t.store = s);
906
+ })(Ue, Ue && Ue.define);
907
+ })(vr);
908
+ var fn = vr.exports;
909
+ const It = /* @__PURE__ */ Ye(fn), Yn = (e) => {
910
+ const t = It.session.get(e);
911
+ return t === void 0 ? null : t;
912
+ };
913
+ var ur;
914
+ (function(e) {
915
+ e[e.HIGH_SURROGATE_START = 55296] = "HIGH_SURROGATE_START", e[e.HIGH_SURROGATE_END = 56319] = "HIGH_SURROGATE_END", e[e.LOW_SURROGATE_START = 56320] = "LOW_SURROGATE_START", e[e.REGIONAL_INDICATOR_START = 127462] = "REGIONAL_INDICATOR_START", e[e.REGIONAL_INDICATOR_END = 127487] = "REGIONAL_INDICATOR_END", e[e.FITZPATRICK_MODIFIER_START = 127995] = "FITZPATRICK_MODIFIER_START", e[e.FITZPATRICK_MODIFIER_END = 127999] = "FITZPATRICK_MODIFIER_END", e[e.VARIATION_MODIFIER_START = 65024] = "VARIATION_MODIFIER_START", e[e.VARIATION_MODIFIER_END = 65039] = "VARIATION_MODIFIER_END", e[e.DIACRITICAL_MARKS_START = 8400] = "DIACRITICAL_MARKS_START", e[e.DIACRITICAL_MARKS_END = 8447] = "DIACRITICAL_MARKS_END", e[e.SUBDIVISION_INDICATOR_START = 127988] = "SUBDIVISION_INDICATOR_START", e[e.TAGS_START = 917504] = "TAGS_START", e[e.TAGS_END = 917631] = "TAGS_END", e[e.ZWJ = 8205] = "ZWJ";
916
+ })(ur || (ur = {}));
917
+ const dn = Object.freeze([776, 2359, 2367, 2984, 3007, 3021, 3633, 3635, 3648, 3657, 4352, 4449, 4520]);
918
+ var fr;
919
+ function mn(e) {
920
+ if (typeof e != "string") throw new TypeError("string cannot be undefined or null");
921
+ const t = [];
922
+ let i = 0, r = 0;
923
+ for (; i < e.length; ) r += pn(i + r, e), yn(e[i + r]) && r++, wn(e[i + r]) && r++, _n(e[i + r]) && r++, An(e[i + r]) ? r++ : (t.push(e.substring(i, i + r)), i += r, r = 0);
924
+ return t;
925
+ }
926
+ function pn(e, t) {
927
+ const i = t[e];
928
+ if (!hn(i) || e === t.length - 1) return 1;
929
+ const r = i + t[e + 1];
930
+ let s = t.substring(e + 2, e + 5);
931
+ return dr(r) && dr(s) ? 4 : gn(r) && Tn(s) ? t.slice(e).indexOf(String.fromCodePoint(917631)) + 2 : bn(s) ? 4 : 2;
932
+ }
933
+ function hn(e) {
934
+ return e && He(e[0].charCodeAt(0), 55296, 56319);
935
+ }
936
+ function dr(e) {
937
+ return He(Dt(e), 127462, 127487);
938
+ }
939
+ function gn(e) {
940
+ return He(Dt(e), 127988, 127988);
941
+ }
942
+ function bn(e) {
943
+ return He(Dt(e), 127995, 127999);
944
+ }
945
+ function wn(e) {
946
+ return typeof e == "string" && He(e.charCodeAt(0), 65024, 65039);
947
+ }
948
+ function _n(e) {
949
+ return typeof e == "string" && He(e.charCodeAt(0), 8400, 8447);
950
+ }
951
+ function Tn(e) {
952
+ const t = e.codePointAt(0);
953
+ return typeof e == "string" && typeof t == "number" && He(t, 917504, 917631);
954
+ }
955
+ function yn(e) {
956
+ return typeof e == "string" && dn.includes(e.charCodeAt(0));
957
+ }
958
+ function An(e) {
959
+ return typeof e == "string" && e.charCodeAt(0) === 8205;
960
+ }
961
+ function Dt(e) {
962
+ return (e.charCodeAt(0) - 55296 << 10) + (e.charCodeAt(1) - 56320) + 65536;
963
+ }
964
+ function He(e, t, i) {
965
+ return e >= t && e <= i;
966
+ }
967
+ (function(e) {
968
+ e[e.unit_1 = 1] = "unit_1", e[e.unit_2 = 2] = "unit_2", e[e.unit_4 = 4] = "unit_4";
969
+ })(fr || (fr = {}));
970
+ const Vn = (e) => mn(e).length, En = (e) => getComputedStyle(document.documentElement).getPropertyValue(e), qn = (e) => Number.parseInt(En(e)) || 0;
971
+ var Ot = { exports: {} };
972
+ (function(e, t) {
973
+ (function(i, r) {
974
+ var s = "1.0.39", o = "", a = "?", c = "function", d = "undefined", O = "object", P = "string", j = "major", u = "model", m = "name", l = "type", f = "vendor", h = "version", oe = "architecture", pe = "console", M = "mobile", C = "tablet", B = "smarttv", z = "wearable", be = "embedded", X = 500, Ae = "Amazon", _ = "Apple", U = "ASUS", ae = "BlackBerry", de = "Browser", S = "Chrome", w = "Edge", g = "Firefox", T = "Google", b = "Huawei", R = "LG", v = "Microsoft", H = "Motorola", W = "Opera", Y = "Samsung", q = "Sharp", ee = "Sony", we = "Xiaomi", he = "Zebra", Ee = "Facebook", _e = "Chromium OS", J = "Mac OS", ge = " Browser", Re = function(D, k) {
975
+ var I = {};
976
+ for (var G in D)
977
+ k[G] && k[G].length % 2 === 0 ? I[G] = k[G].concat(D[G]) : I[G] = D[G];
978
+ return I;
979
+ }, Te = function(D) {
980
+ for (var k = {}, I = 0; I < D.length; I++)
981
+ k[D[I].toUpperCase()] = D[I];
982
+ return k;
983
+ }, Qe = function(D, k) {
984
+ return typeof D === P ? xe(k).indexOf(xe(D)) !== -1 : !1;
985
+ }, xe = function(D) {
986
+ return D.toLowerCase();
987
+ }, Ce = function(D) {
988
+ return typeof D === P ? D.replace(/[^\d\.]/g, o).split(".")[0] : r;
989
+ }, Ve = function(D, k) {
990
+ if (typeof D === P)
991
+ return D = D.replace(/^\s\s*/, o), typeof k === d ? D : D.substring(0, X);
992
+ }, Le = function(D, k) {
993
+ for (var I = 0, G, ce, ye, $, x, le; I < k.length && !x; ) {
994
+ var Ie = k[I], et = k[I + 1];
995
+ for (G = ce = 0; G < Ie.length && !x && Ie[G]; )
996
+ if (x = Ie[G++].exec(D), x)
997
+ for (ye = 0; ye < et.length; ye++)
998
+ le = x[++ce], $ = et[ye], typeof $ === O && $.length > 0 ? $.length === 2 ? typeof $[1] == c ? this[$[0]] = $[1].call(this, le) : this[$[0]] = $[1] : $.length === 3 ? typeof $[1] === c && !($[1].exec && $[1].test) ? this[$[0]] = le ? $[1].call(this, le, $[2]) : r : this[$[0]] = le ? le.replace($[1], $[2]) : r : $.length === 4 && (this[$[0]] = le ? $[3].call(this, le.replace($[1], $[2])) : r) : this[$] = le || r;
999
+ I += 2;
1000
+ }
1001
+ }, Pe = function(D, k) {
1002
+ for (var I in k)
1003
+ if (typeof k[I] === O && k[I].length > 0) {
1004
+ for (var G = 0; G < k[I].length; G++)
1005
+ if (Qe(k[I][G], D))
1006
+ return I === a ? r : I;
1007
+ } else if (Qe(k[I], D))
1008
+ return I === a ? r : I;
1009
+ return k.hasOwnProperty("*") ? k["*"] : D;
1010
+ }, at = {
1011
+ "1.0": "/8",
1012
+ "1.2": "/1",
1013
+ "1.3": "/3",
1014
+ "2.0": "/412",
1015
+ "2.0.2": "/416",
1016
+ "2.0.3": "/417",
1017
+ "2.0.4": "/419",
1018
+ "?": "/"
1019
+ }, F = {
1020
+ ME: "4.90",
1021
+ "NT 3.11": "NT3.51",
1022
+ "NT 4.0": "NT4.0",
1023
+ 2e3: "NT 5.0",
1024
+ XP: ["NT 5.1", "NT 5.2"],
1025
+ Vista: "NT 6.0",
1026
+ 7: "NT 6.1",
1027
+ 8: "NT 6.2",
1028
+ "8.1": "NT 6.3",
1029
+ 10: ["NT 6.4", "NT 10.0"],
1030
+ RT: "ARM"
1031
+ }, A = {
1032
+ browser: [
1033
+ [
1034
+ /\b(?:crmo|crios)\/([\w\.]+)/i
1035
+ // Chrome for Android/iOS
1036
+ ],
1037
+ [h, [m, "Chrome"]],
1038
+ [
1039
+ /edg(?:e|ios|a)?\/([\w\.]+)/i
1040
+ // Microsoft Edge
1041
+ ],
1042
+ [h, [m, "Edge"]],
1043
+ [
1044
+ // Presto based
1045
+ /(opera mini)\/([-\w\.]+)/i,
1046
+ // Opera Mini
1047
+ /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
1048
+ // Opera Mobi/Tablet
1049
+ /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
1050
+ // Opera
1051
+ ],
1052
+ [m, h],
1053
+ [
1054
+ /opios[\/ ]+([\w\.]+)/i
1055
+ // Opera mini on iphone >= 8.0
1056
+ ],
1057
+ [h, [m, W + " Mini"]],
1058
+ [
1059
+ /\bop(?:rg)?x\/([\w\.]+)/i
1060
+ // Opera GX
1061
+ ],
1062
+ [h, [m, W + " GX"]],
1063
+ [
1064
+ /\bopr\/([\w\.]+)/i
1065
+ // Opera Webkit
1066
+ ],
1067
+ [h, [m, W]],
1068
+ [
1069
+ // Mixed
1070
+ /\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
1071
+ // Baidu
1072
+ ],
1073
+ [h, [m, "Baidu"]],
1074
+ [
1075
+ /(kindle)\/([\w\.]+)/i,
1076
+ // Kindle
1077
+ /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,
1078
+ // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir
1079
+ // Trident based
1080
+ /(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,
1081
+ // Avant/IEMobile/SlimBrowser
1082
+ /(?:ms|\()(ie) ([\w\.]+)/i,
1083
+ // Internet Explorer
1084
+ // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
1085
+ /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio)\/([-\w\.]+)/i,
1086
+ // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio
1087
+ /(heytap|ovi)browser\/([\d\.]+)/i,
1088
+ // HeyTap/Ovi
1089
+ /(weibo)__([\d\.]+)/i
1090
+ // Weibo
1091
+ ],
1092
+ [m, h],
1093
+ [
1094
+ /quark(?:pc)?\/([-\w\.]+)/i
1095
+ // Quark
1096
+ ],
1097
+ [h, [m, "Quark"]],
1098
+ [
1099
+ /\bddg\/([\w\.]+)/i
1100
+ // DuckDuckGo
1101
+ ],
1102
+ [h, [m, "DuckDuckGo"]],
1103
+ [
1104
+ /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
1105
+ // UCBrowser
1106
+ ],
1107
+ [h, [m, "UC" + de]],
1108
+ [
1109
+ /microm.+\bqbcore\/([\w\.]+)/i,
1110
+ // WeChat Desktop for Windows Built-in Browser
1111
+ /\bqbcore\/([\w\.]+).+microm/i,
1112
+ /micromessenger\/([\w\.]+)/i
1113
+ // WeChat
1114
+ ],
1115
+ [h, [m, "WeChat"]],
1116
+ [
1117
+ /konqueror\/([\w\.]+)/i
1118
+ // Konqueror
1119
+ ],
1120
+ [h, [m, "Konqueror"]],
1121
+ [
1122
+ /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
1123
+ // IE11
1124
+ ],
1125
+ [h, [m, "IE"]],
1126
+ [
1127
+ /ya(?:search)?browser\/([\w\.]+)/i
1128
+ // Yandex
1129
+ ],
1130
+ [h, [m, "Yandex"]],
1131
+ [
1132
+ /slbrowser\/([\w\.]+)/i
1133
+ // Smart Lenovo Browser
1134
+ ],
1135
+ [h, [m, "Smart Lenovo " + de]],
1136
+ [
1137
+ /(avast|avg)\/([\w\.]+)/i
1138
+ // Avast/AVG Secure Browser
1139
+ ],
1140
+ [[m, /(.+)/, "$1 Secure " + de], h],
1141
+ [
1142
+ /\bfocus\/([\w\.]+)/i
1143
+ // Firefox Focus
1144
+ ],
1145
+ [h, [m, g + " Focus"]],
1146
+ [
1147
+ /\bopt\/([\w\.]+)/i
1148
+ // Opera Touch
1149
+ ],
1150
+ [h, [m, W + " Touch"]],
1151
+ [
1152
+ /coc_coc\w+\/([\w\.]+)/i
1153
+ // Coc Coc Browser
1154
+ ],
1155
+ [h, [m, "Coc Coc"]],
1156
+ [
1157
+ /dolfin\/([\w\.]+)/i
1158
+ // Dolphin
1159
+ ],
1160
+ [h, [m, "Dolphin"]],
1161
+ [
1162
+ /coast\/([\w\.]+)/i
1163
+ // Opera Coast
1164
+ ],
1165
+ [h, [m, W + " Coast"]],
1166
+ [
1167
+ /miuibrowser\/([\w\.]+)/i
1168
+ // MIUI Browser
1169
+ ],
1170
+ [h, [m, "MIUI " + de]],
1171
+ [
1172
+ /fxios\/([-\w\.]+)/i
1173
+ // Firefox for iOS
1174
+ ],
1175
+ [h, [m, g]],
1176
+ [
1177
+ /\bqihu|(qi?ho?o?|360)browser/i
1178
+ // 360
1179
+ ],
1180
+ [[m, "360" + ge]],
1181
+ [
1182
+ /\b(qq)\/([\w\.]+)/i
1183
+ // QQ
1184
+ ],
1185
+ [[m, /(.+)/, "$1Browser"], h],
1186
+ [
1187
+ /(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
1188
+ ],
1189
+ [[m, /(.+)/, "$1" + ge], h],
1190
+ [
1191
+ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
1192
+ /samsungbrowser\/([\w\.]+)/i
1193
+ // Samsung Internet
1194
+ ],
1195
+ [h, [m, Y + " Internet"]],
1196
+ [
1197
+ /(comodo_dragon)\/([\w\.]+)/i
1198
+ // Comodo Dragon
1199
+ ],
1200
+ [[m, /_/g, " "], h],
1201
+ [
1202
+ /metasr[\/ ]?([\d\.]+)/i
1203
+ // Sogou Explorer
1204
+ ],
1205
+ [h, [m, "Sogou Explorer"]],
1206
+ [
1207
+ /(sogou)mo\w+\/([\d\.]+)/i
1208
+ // Sogou Mobile
1209
+ ],
1210
+ [[m, "Sogou Mobile"], h],
1211
+ [
1212
+ /(electron)\/([\w\.]+) safari/i,
1213
+ // Electron-based App
1214
+ /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
1215
+ // Tesla
1216
+ /m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i
1217
+ // QQBrowser/2345 Browser
1218
+ ],
1219
+ [m, h],
1220
+ [
1221
+ /(lbbrowser|rekonq)/i,
1222
+ // LieBao Browser/Rekonq
1223
+ /\[(linkedin)app\]/i
1224
+ // LinkedIn App for iOS & Android
1225
+ ],
1226
+ [m],
1227
+ [
1228
+ // WebView
1229
+ /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
1230
+ // Facebook App for iOS & Android
1231
+ ],
1232
+ [[m, Ee], h],
1233
+ [
1234
+ /(Klarna)\/([\w\.]+)/i,
1235
+ // Klarna Shopping Browser for iOS & Android
1236
+ /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
1237
+ // Kakao App
1238
+ /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
1239
+ // Naver InApp
1240
+ /safari (line)\/([\w\.]+)/i,
1241
+ // Line App for iOS
1242
+ /\b(line)\/([\w\.]+)\/iab/i,
1243
+ // Line App for Android
1244
+ /(alipay)client\/([\w\.]+)/i,
1245
+ // Alipay
1246
+ /(twitter)(?:and| f.+e\/([\w\.]+))/i,
1247
+ // Twitter
1248
+ /(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i
1249
+ // Chromium/Instagram/Snapchat
1250
+ ],
1251
+ [m, h],
1252
+ [
1253
+ /\bgsa\/([\w\.]+) .*safari\//i
1254
+ // Google Search Appliance on iOS
1255
+ ],
1256
+ [h, [m, "GSA"]],
1257
+ [
1258
+ /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
1259
+ // TikTok
1260
+ ],
1261
+ [h, [m, "TikTok"]],
1262
+ [
1263
+ /headlesschrome(?:\/([\w\.]+)| )/i
1264
+ // Chrome Headless
1265
+ ],
1266
+ [h, [m, S + " Headless"]],
1267
+ [
1268
+ / wv\).+(chrome)\/([\w\.]+)/i
1269
+ // Chrome WebView
1270
+ ],
1271
+ [[m, S + " WebView"], h],
1272
+ [
1273
+ /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
1274
+ // Android Browser
1275
+ ],
1276
+ [h, [m, "Android " + de]],
1277
+ [
1278
+ /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
1279
+ // Chrome/OmniWeb/Arora/Tizen/Nokia
1280
+ ],
1281
+ [m, h],
1282
+ [
1283
+ /version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i
1284
+ // Mobile Safari
1285
+ ],
1286
+ [h, [m, "Mobile Safari"]],
1287
+ [
1288
+ /version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i
1289
+ // Safari & Safari Mobile
1290
+ ],
1291
+ [h, m],
1292
+ [
1293
+ /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
1294
+ // Safari < 3.0
1295
+ ],
1296
+ [m, [h, Pe, at]],
1297
+ [
1298
+ /(webkit|khtml)\/([\w\.]+)/i
1299
+ ],
1300
+ [m, h],
1301
+ [
1302
+ // Gecko based
1303
+ /(navigator|netscape\d?)\/([-\w\.]+)/i
1304
+ // Netscape
1305
+ ],
1306
+ [[m, "Netscape"], h],
1307
+ [
1308
+ /(wolvic)\/([\w\.]+)/i
1309
+ // Wolvic
1310
+ ],
1311
+ [m, h],
1312
+ [
1313
+ /mobile vr; rv:([\w\.]+)\).+firefox/i
1314
+ // Firefox Reality
1315
+ ],
1316
+ [h, [m, g + " Reality"]],
1317
+ [
1318
+ /ekiohf.+(flow)\/([\w\.]+)/i,
1319
+ // Flow
1320
+ /(swiftfox)/i,
1321
+ // Swiftfox
1322
+ /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
1323
+ // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
1324
+ /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
1325
+ // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
1326
+ /(firefox)\/([\w\.]+)/i,
1327
+ // Other Firefox-based
1328
+ /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
1329
+ // Mozilla
1330
+ // Other
1331
+ /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
1332
+ // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser
1333
+ /(links) \(([\w\.]+)/i
1334
+ // Links
1335
+ ],
1336
+ [m, [h, /_/g, "."]],
1337
+ [
1338
+ /(cobalt)\/([\w\.]+)/i
1339
+ // Cobalt
1340
+ ],
1341
+ [m, [h, /master.|lts./, ""]]
1342
+ ],
1343
+ cpu: [
1344
+ [
1345
+ /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i
1346
+ // AMD64 (x64)
1347
+ ],
1348
+ [[oe, "amd64"]],
1349
+ [
1350
+ /(ia32(?=;))/i
1351
+ // IA32 (quicktime)
1352
+ ],
1353
+ [[oe, xe]],
1354
+ [
1355
+ /((?:i[346]|x)86)[;\)]/i
1356
+ // IA32 (x86)
1357
+ ],
1358
+ [[oe, "ia32"]],
1359
+ [
1360
+ /\b(aarch64|arm(v?8e?l?|_?64))\b/i
1361
+ // ARM64
1362
+ ],
1363
+ [[oe, "arm64"]],
1364
+ [
1365
+ /\b(arm(?:v[67])?ht?n?[fl]p?)\b/i
1366
+ // ARMHF
1367
+ ],
1368
+ [[oe, "armhf"]],
1369
+ [
1370
+ // PocketPC mistakenly identified as PowerPC
1371
+ /windows (ce|mobile); ppc;/i
1372
+ ],
1373
+ [[oe, "arm"]],
1374
+ [
1375
+ /((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i
1376
+ // PowerPC
1377
+ ],
1378
+ [[oe, /ower/, o, xe]],
1379
+ [
1380
+ /(sun4\w)[;\)]/i
1381
+ // SPARC
1382
+ ],
1383
+ [[oe, "sparc"]],
1384
+ [
1385
+ /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i
1386
+ // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
1387
+ ],
1388
+ [[oe, xe]]
1389
+ ],
1390
+ device: [
1391
+ [
1392
+ //////////////////////////
1393
+ // MOBILES & TABLETS
1394
+ /////////////////////////
1395
+ // Samsung
1396
+ /\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
1397
+ ],
1398
+ [u, [f, Y], [l, C]],
1399
+ [
1400
+ /\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
1401
+ /samsung[- ]((?!sm-[lr])[-\w]+)/i,
1402
+ /sec-(sgh\w+)/i
1403
+ ],
1404
+ [u, [f, Y], [l, M]],
1405
+ [
1406
+ // Apple
1407
+ /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
1408
+ // iPod/iPhone
1409
+ ],
1410
+ [u, [f, _], [l, M]],
1411
+ [
1412
+ /\((ipad);[-\w\),; ]+apple/i,
1413
+ // iPad
1414
+ /applecoremedia\/[\w\.]+ \((ipad)/i,
1415
+ /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
1416
+ ],
1417
+ [u, [f, _], [l, C]],
1418
+ [
1419
+ /(macintosh);/i
1420
+ ],
1421
+ [u, [f, _]],
1422
+ [
1423
+ // Sharp
1424
+ /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
1425
+ ],
1426
+ [u, [f, q], [l, M]],
1427
+ [
1428
+ // Huawei
1429
+ /\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
1430
+ ],
1431
+ [u, [f, b], [l, C]],
1432
+ [
1433
+ /(?:huawei|honor)([-\w ]+)[;\)]/i,
1434
+ /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
1435
+ ],
1436
+ [u, [f, b], [l, M]],
1437
+ [
1438
+ // Xiaomi
1439
+ /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
1440
+ // Xiaomi POCO
1441
+ /\b; (\w+) build\/hm\1/i,
1442
+ // Xiaomi Hongmi 'numeric' models
1443
+ /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
1444
+ // Xiaomi Hongmi
1445
+ /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
1446
+ // Xiaomi Redmi
1447
+ /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
1448
+ // Xiaomi Redmi 'numeric' models
1449
+ /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i
1450
+ // Xiaomi Mi
1451
+ ],
1452
+ [[u, /_/g, " "], [f, we], [l, M]],
1453
+ [
1454
+ /oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,
1455
+ // Redmi Pad
1456
+ /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i
1457
+ // Mi Pad tablets
1458
+ ],
1459
+ [[u, /_/g, " "], [f, we], [l, C]],
1460
+ [
1461
+ // OPPO
1462
+ /; (\w+) bui.+ oppo/i,
1463
+ /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
1464
+ ],
1465
+ [u, [f, "OPPO"], [l, M]],
1466
+ [
1467
+ /\b(opd2\d{3}a?) bui/i
1468
+ ],
1469
+ [u, [f, "OPPO"], [l, C]],
1470
+ [
1471
+ // Vivo
1472
+ /vivo (\w+)(?: bui|\))/i,
1473
+ /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
1474
+ ],
1475
+ [u, [f, "Vivo"], [l, M]],
1476
+ [
1477
+ // Realme
1478
+ /\b(rmx[1-3]\d{3})(?: bui|;|\))/i
1479
+ ],
1480
+ [u, [f, "Realme"], [l, M]],
1481
+ [
1482
+ // Motorola
1483
+ /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
1484
+ /\bmot(?:orola)?[- ](\w*)/i,
1485
+ /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
1486
+ ],
1487
+ [u, [f, H], [l, M]],
1488
+ [
1489
+ /\b(mz60\d|xoom[2 ]{0,2}) build\//i
1490
+ ],
1491
+ [u, [f, H], [l, C]],
1492
+ [
1493
+ // LG
1494
+ /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
1495
+ ],
1496
+ [u, [f, R], [l, C]],
1497
+ [
1498
+ /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
1499
+ /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
1500
+ /\blg-?([\d\w]+) bui/i
1501
+ ],
1502
+ [u, [f, R], [l, M]],
1503
+ [
1504
+ // Lenovo
1505
+ /(ideatab[-\w ]+)/i,
1506
+ /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i
1507
+ ],
1508
+ [u, [f, "Lenovo"], [l, C]],
1509
+ [
1510
+ // Nokia
1511
+ /(?:maemo|nokia).*(n900|lumia \d+)/i,
1512
+ /nokia[-_ ]?([-\w\.]*)/i
1513
+ ],
1514
+ [[u, /_/g, " "], [f, "Nokia"], [l, M]],
1515
+ [
1516
+ // Google
1517
+ /(pixel c)\b/i
1518
+ // Google Pixel C
1519
+ ],
1520
+ [u, [f, T], [l, C]],
1521
+ [
1522
+ /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
1523
+ // Google Pixel
1524
+ ],
1525
+ [u, [f, T], [l, M]],
1526
+ [
1527
+ // Sony
1528
+ /droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
1529
+ ],
1530
+ [u, [f, ee], [l, M]],
1531
+ [
1532
+ /sony tablet [ps]/i,
1533
+ /\b(?:sony)?sgp\w+(?: bui|\))/i
1534
+ ],
1535
+ [[u, "Xperia Tablet"], [f, ee], [l, C]],
1536
+ [
1537
+ // OnePlus
1538
+ / (kb2005|in20[12]5|be20[12][59])\b/i,
1539
+ /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
1540
+ ],
1541
+ [u, [f, "OnePlus"], [l, M]],
1542
+ [
1543
+ // Amazon
1544
+ /(alexa)webm/i,
1545
+ /(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,
1546
+ // Kindle Fire without Silk / Echo Show
1547
+ /(kf[a-z]+)( bui|\)).+silk\//i
1548
+ // Kindle Fire HD
1549
+ ],
1550
+ [u, [f, Ae], [l, C]],
1551
+ [
1552
+ /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
1553
+ // Fire Phone
1554
+ ],
1555
+ [[u, /(.+)/g, "Fire Phone $1"], [f, Ae], [l, M]],
1556
+ [
1557
+ // BlackBerry
1558
+ /(playbook);[-\w\),; ]+(rim)/i
1559
+ // BlackBerry PlayBook
1560
+ ],
1561
+ [u, f, [l, C]],
1562
+ [
1563
+ /\b((?:bb[a-f]|st[hv])100-\d)/i,
1564
+ /\(bb10; (\w+)/i
1565
+ // BlackBerry 10
1566
+ ],
1567
+ [u, [f, ae], [l, M]],
1568
+ [
1569
+ // Asus
1570
+ /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
1571
+ ],
1572
+ [u, [f, U], [l, C]],
1573
+ [
1574
+ / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
1575
+ ],
1576
+ [u, [f, U], [l, M]],
1577
+ [
1578
+ // HTC
1579
+ /(nexus 9)/i
1580
+ // HTC Nexus 9
1581
+ ],
1582
+ [u, [f, "HTC"], [l, C]],
1583
+ [
1584
+ /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
1585
+ // HTC
1586
+ // ZTE
1587
+ /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
1588
+ /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
1589
+ // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
1590
+ ],
1591
+ [f, [u, /_/g, " "], [l, M]],
1592
+ [
1593
+ // TCL
1594
+ /droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i
1595
+ ],
1596
+ [u, [f, "TCL"], [l, C]],
1597
+ [
1598
+ // itel
1599
+ /(itel) ((\w+))/i
1600
+ ],
1601
+ [[f, xe], u, [l, Pe, { tablet: ["p10001l", "w7001"], "*": "mobile" }]],
1602
+ [
1603
+ // Acer
1604
+ /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
1605
+ ],
1606
+ [u, [f, "Acer"], [l, C]],
1607
+ [
1608
+ // Meizu
1609
+ /droid.+; (m[1-5] note) bui/i,
1610
+ /\bmz-([-\w]{2,})/i
1611
+ ],
1612
+ [u, [f, "Meizu"], [l, M]],
1613
+ [
1614
+ // Ulefone
1615
+ /; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
1616
+ ],
1617
+ [u, [f, "Ulefone"], [l, M]],
1618
+ [
1619
+ // Nothing
1620
+ /droid.+; (a(?:015|06[35]|142p?))/i
1621
+ ],
1622
+ [u, [f, "Nothing"], [l, M]],
1623
+ [
1624
+ // MIXED
1625
+ /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,
1626
+ // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
1627
+ /(hp) ([\w ]+\w)/i,
1628
+ // HP iPAQ
1629
+ /(asus)-?(\w+)/i,
1630
+ // Asus
1631
+ /(microsoft); (lumia[\w ]+)/i,
1632
+ // Microsoft Lumia
1633
+ /(lenovo)[-_ ]?([-\w]+)/i,
1634
+ // Lenovo
1635
+ /(jolla)/i,
1636
+ // Jolla
1637
+ /(oppo) ?([\w ]+) bui/i
1638
+ // OPPO
1639
+ ],
1640
+ [f, u, [l, M]],
1641
+ [
1642
+ /(kobo)\s(ereader|touch)/i,
1643
+ // Kobo
1644
+ /(archos) (gamepad2?)/i,
1645
+ // Archos
1646
+ /(hp).+(touchpad(?!.+tablet)|tablet)/i,
1647
+ // HP TouchPad
1648
+ /(kindle)\/([\w\.]+)/i,
1649
+ // Kindle
1650
+ /(nook)[\w ]+build\/(\w+)/i,
1651
+ // Nook
1652
+ /(dell) (strea[kpr\d ]*[\dko])/i,
1653
+ // Dell Streak
1654
+ /(le[- ]+pan)[- ]+(\w{1,9}) bui/i,
1655
+ // Le Pan Tablets
1656
+ /(trinity)[- ]*(t\d{3}) bui/i,
1657
+ // Trinity Tablets
1658
+ /(gigaset)[- ]+(q\w{1,9}) bui/i,
1659
+ // Gigaset Tablets
1660
+ /(vodafone) ([\w ]+)(?:\)| bui)/i
1661
+ // Vodafone
1662
+ ],
1663
+ [f, u, [l, C]],
1664
+ [
1665
+ /(surface duo)/i
1666
+ // Surface Duo
1667
+ ],
1668
+ [u, [f, v], [l, C]],
1669
+ [
1670
+ /droid [\d\.]+; (fp\du?)(?: b|\))/i
1671
+ // Fairphone
1672
+ ],
1673
+ [u, [f, "Fairphone"], [l, M]],
1674
+ [
1675
+ /(u304aa)/i
1676
+ // AT&T
1677
+ ],
1678
+ [u, [f, "AT&T"], [l, M]],
1679
+ [
1680
+ /\bsie-(\w*)/i
1681
+ // Siemens
1682
+ ],
1683
+ [u, [f, "Siemens"], [l, M]],
1684
+ [
1685
+ /\b(rct\w+) b/i
1686
+ // RCA Tablets
1687
+ ],
1688
+ [u, [f, "RCA"], [l, C]],
1689
+ [
1690
+ /\b(venue[\d ]{2,7}) b/i
1691
+ // Dell Venue Tablets
1692
+ ],
1693
+ [u, [f, "Dell"], [l, C]],
1694
+ [
1695
+ /\b(q(?:mv|ta)\w+) b/i
1696
+ // Verizon Tablet
1697
+ ],
1698
+ [u, [f, "Verizon"], [l, C]],
1699
+ [
1700
+ /\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i
1701
+ // Barnes & Noble Tablet
1702
+ ],
1703
+ [u, [f, "Barnes & Noble"], [l, C]],
1704
+ [
1705
+ /\b(tm\d{3}\w+) b/i
1706
+ ],
1707
+ [u, [f, "NuVision"], [l, C]],
1708
+ [
1709
+ /\b(k88) b/i
1710
+ // ZTE K Series Tablet
1711
+ ],
1712
+ [u, [f, "ZTE"], [l, C]],
1713
+ [
1714
+ /\b(nx\d{3}j) b/i
1715
+ // ZTE Nubia
1716
+ ],
1717
+ [u, [f, "ZTE"], [l, M]],
1718
+ [
1719
+ /\b(gen\d{3}) b.+49h/i
1720
+ // Swiss GEN Mobile
1721
+ ],
1722
+ [u, [f, "Swiss"], [l, M]],
1723
+ [
1724
+ /\b(zur\d{3}) b/i
1725
+ // Swiss ZUR Tablet
1726
+ ],
1727
+ [u, [f, "Swiss"], [l, C]],
1728
+ [
1729
+ /\b((zeki)?tb.*\b) b/i
1730
+ // Zeki Tablets
1731
+ ],
1732
+ [u, [f, "Zeki"], [l, C]],
1733
+ [
1734
+ /\b([yr]\d{2}) b/i,
1735
+ /\b(dragon[- ]+touch |dt)(\w{5}) b/i
1736
+ // Dragon Touch Tablet
1737
+ ],
1738
+ [[f, "Dragon Touch"], u, [l, C]],
1739
+ [
1740
+ /\b(ns-?\w{0,9}) b/i
1741
+ // Insignia Tablets
1742
+ ],
1743
+ [u, [f, "Insignia"], [l, C]],
1744
+ [
1745
+ /\b((nxa|next)-?\w{0,9}) b/i
1746
+ // NextBook Tablets
1747
+ ],
1748
+ [u, [f, "NextBook"], [l, C]],
1749
+ [
1750
+ /\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i
1751
+ // Voice Xtreme Phones
1752
+ ],
1753
+ [[f, "Voice"], u, [l, M]],
1754
+ [
1755
+ /\b(lvtel\-)?(v1[12]) b/i
1756
+ // LvTel Phones
1757
+ ],
1758
+ [[f, "LvTel"], u, [l, M]],
1759
+ [
1760
+ /\b(ph-1) /i
1761
+ // Essential PH-1
1762
+ ],
1763
+ [u, [f, "Essential"], [l, M]],
1764
+ [
1765
+ /\b(v(100md|700na|7011|917g).*\b) b/i
1766
+ // Envizen Tablets
1767
+ ],
1768
+ [u, [f, "Envizen"], [l, C]],
1769
+ [
1770
+ /\b(trio[-\w\. ]+) b/i
1771
+ // MachSpeed Tablets
1772
+ ],
1773
+ [u, [f, "MachSpeed"], [l, C]],
1774
+ [
1775
+ /\btu_(1491) b/i
1776
+ // Rotor Tablets
1777
+ ],
1778
+ [u, [f, "Rotor"], [l, C]],
1779
+ [
1780
+ /(shield[\w ]+) b/i
1781
+ // Nvidia Shield Tablets
1782
+ ],
1783
+ [u, [f, "Nvidia"], [l, C]],
1784
+ [
1785
+ /(sprint) (\w+)/i
1786
+ // Sprint Phones
1787
+ ],
1788
+ [f, u, [l, M]],
1789
+ [
1790
+ /(kin\.[onetw]{3})/i
1791
+ // Microsoft Kin
1792
+ ],
1793
+ [[u, /\./g, " "], [f, v], [l, M]],
1794
+ [
1795
+ /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
1796
+ // Zebra
1797
+ ],
1798
+ [u, [f, he], [l, C]],
1799
+ [
1800
+ /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
1801
+ ],
1802
+ [u, [f, he], [l, M]],
1803
+ [
1804
+ ///////////////////
1805
+ // SMARTTVS
1806
+ ///////////////////
1807
+ /smart-tv.+(samsung)/i
1808
+ // Samsung
1809
+ ],
1810
+ [f, [l, B]],
1811
+ [
1812
+ /hbbtv.+maple;(\d+)/i
1813
+ ],
1814
+ [[u, /^/, "SmartTV"], [f, Y], [l, B]],
1815
+ [
1816
+ /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
1817
+ // LG SmartTV
1818
+ ],
1819
+ [[f, R], [l, B]],
1820
+ [
1821
+ /(apple) ?tv/i
1822
+ // Apple TV
1823
+ ],
1824
+ [f, [u, _ + " TV"], [l, B]],
1825
+ [
1826
+ /crkey/i
1827
+ // Google Chromecast
1828
+ ],
1829
+ [[u, S + "cast"], [f, T], [l, B]],
1830
+ [
1831
+ /droid.+aft(\w+)( bui|\))/i
1832
+ // Fire TV
1833
+ ],
1834
+ [u, [f, Ae], [l, B]],
1835
+ [
1836
+ /\(dtv[\);].+(aquos)/i,
1837
+ /(aquos-tv[\w ]+)\)/i
1838
+ // Sharp
1839
+ ],
1840
+ [u, [f, q], [l, B]],
1841
+ [
1842
+ /(bravia[\w ]+)( bui|\))/i
1843
+ // Sony
1844
+ ],
1845
+ [u, [f, ee], [l, B]],
1846
+ [
1847
+ /(mitv-\w{5}) bui/i
1848
+ // Xiaomi
1849
+ ],
1850
+ [u, [f, we], [l, B]],
1851
+ [
1852
+ /Hbbtv.*(technisat) (.*);/i
1853
+ // TechniSAT
1854
+ ],
1855
+ [f, u, [l, B]],
1856
+ [
1857
+ /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
1858
+ // Roku
1859
+ /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
1860
+ // HbbTV devices
1861
+ ],
1862
+ [[f, Ve], [u, Ve], [l, B]],
1863
+ [
1864
+ /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
1865
+ // SmartTV from Unidentified Vendors
1866
+ ],
1867
+ [[l, B]],
1868
+ [
1869
+ ///////////////////
1870
+ // CONSOLES
1871
+ ///////////////////
1872
+ /(ouya)/i,
1873
+ // Ouya
1874
+ /(nintendo) ([wids3utch]+)/i
1875
+ // Nintendo
1876
+ ],
1877
+ [f, u, [l, pe]],
1878
+ [
1879
+ /droid.+; (shield) bui/i
1880
+ // Nvidia
1881
+ ],
1882
+ [u, [f, "Nvidia"], [l, pe]],
1883
+ [
1884
+ /(playstation [345portablevi]+)/i
1885
+ // Playstation
1886
+ ],
1887
+ [u, [f, ee], [l, pe]],
1888
+ [
1889
+ /\b(xbox(?: one)?(?!; xbox))[\); ]/i
1890
+ // Microsoft Xbox
1891
+ ],
1892
+ [u, [f, v], [l, pe]],
1893
+ [
1894
+ ///////////////////
1895
+ // WEARABLES
1896
+ ///////////////////
1897
+ /\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i
1898
+ // Samsung Galaxy Watch
1899
+ ],
1900
+ [u, [f, Y], [l, z]],
1901
+ [
1902
+ /((pebble))app/i
1903
+ // Pebble
1904
+ ],
1905
+ [f, u, [l, z]],
1906
+ [
1907
+ /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
1908
+ // Apple Watch
1909
+ ],
1910
+ [u, [f, _], [l, z]],
1911
+ [
1912
+ /droid.+; (glass) \d/i
1913
+ // Google Glass
1914
+ ],
1915
+ [u, [f, T], [l, z]],
1916
+ [
1917
+ /droid.+; (wt63?0{2,3})\)/i
1918
+ ],
1919
+ [u, [f, he], [l, z]],
1920
+ [
1921
+ /(quest( \d| pro)?)/i
1922
+ // Oculus Quest
1923
+ ],
1924
+ [u, [f, Ee], [l, z]],
1925
+ [
1926
+ ///////////////////
1927
+ // EMBEDDED
1928
+ ///////////////////
1929
+ /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
1930
+ // Tesla
1931
+ ],
1932
+ [f, [l, be]],
1933
+ [
1934
+ /(aeobc)\b/i
1935
+ // Echo Dot
1936
+ ],
1937
+ [u, [f, Ae], [l, be]],
1938
+ [
1939
+ ////////////////////
1940
+ // MIXED (GENERIC)
1941
+ ///////////////////
1942
+ /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i
1943
+ // Android Phones from Unidentified Vendors
1944
+ ],
1945
+ [u, [l, M]],
1946
+ [
1947
+ /droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i
1948
+ // Android Tablets from Unidentified Vendors
1949
+ ],
1950
+ [u, [l, C]],
1951
+ [
1952
+ /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
1953
+ // Unidentifiable Tablet
1954
+ ],
1955
+ [[l, C]],
1956
+ [
1957
+ /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
1958
+ // Unidentifiable Mobile
1959
+ ],
1960
+ [[l, M]],
1961
+ [
1962
+ /(android[-\w\. ]{0,9});.+buil/i
1963
+ // Generic Android Device
1964
+ ],
1965
+ [u, [f, "Generic"]]
1966
+ ],
1967
+ engine: [
1968
+ [
1969
+ /windows.+ edge\/([\w\.]+)/i
1970
+ // EdgeHTML
1971
+ ],
1972
+ [h, [m, w + "HTML"]],
1973
+ [
1974
+ /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
1975
+ // Blink
1976
+ ],
1977
+ [h, [m, "Blink"]],
1978
+ [
1979
+ /(presto)\/([\w\.]+)/i,
1980
+ // Presto
1981
+ /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,
1982
+ // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna
1983
+ /ekioh(flow)\/([\w\.]+)/i,
1984
+ // Flow
1985
+ /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
1986
+ // KHTML/Tasman/Links
1987
+ /(icab)[\/ ]([23]\.[\d\.]+)/i,
1988
+ // iCab
1989
+ /\b(libweb)/i
1990
+ ],
1991
+ [m, h],
1992
+ [
1993
+ /rv\:([\w\.]{1,9})\b.+(gecko)/i
1994
+ // Gecko
1995
+ ],
1996
+ [h, m]
1997
+ ],
1998
+ os: [
1999
+ [
2000
+ // Windows
2001
+ /microsoft (windows) (vista|xp)/i
2002
+ // Windows (iTunes)
2003
+ ],
2004
+ [m, h],
2005
+ [
2006
+ /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i
2007
+ // Windows Phone
2008
+ ],
2009
+ [m, [h, Pe, F]],
2010
+ [
2011
+ /windows nt 6\.2; (arm)/i,
2012
+ // Windows RT
2013
+ /windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,
2014
+ /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
2015
+ ],
2016
+ [[h, Pe, F], [m, "Windows"]],
2017
+ [
2018
+ // iOS/macOS
2019
+ /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,
2020
+ // iOS
2021
+ /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
2022
+ /cfnetwork\/.+darwin/i
2023
+ ],
2024
+ [[h, /_/g, "."], [m, "iOS"]],
2025
+ [
2026
+ /(mac os x) ?([\w\. ]*)/i,
2027
+ /(macintosh|mac_powerpc\b)(?!.+haiku)/i
2028
+ // Mac OS
2029
+ ],
2030
+ [[m, J], [h, /_/g, "."]],
2031
+ [
2032
+ // Mobile OSes
2033
+ /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i
2034
+ // Android-x86/HarmonyOS
2035
+ ],
2036
+ [h, m],
2037
+ [
2038
+ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS
2039
+ /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,
2040
+ /(blackberry)\w*\/([\w\.]*)/i,
2041
+ // Blackberry
2042
+ /(tizen|kaios)[\/ ]([\w\.]+)/i,
2043
+ // Tizen/KaiOS
2044
+ /\((series40);/i
2045
+ // Series 40
2046
+ ],
2047
+ [m, h],
2048
+ [
2049
+ /\(bb(10);/i
2050
+ // BlackBerry 10
2051
+ ],
2052
+ [h, [m, ae]],
2053
+ [
2054
+ /(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i
2055
+ // Symbian
2056
+ ],
2057
+ [h, [m, "Symbian"]],
2058
+ [
2059
+ /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
2060
+ // Firefox OS
2061
+ ],
2062
+ [h, [m, g + " OS"]],
2063
+ [
2064
+ /web0s;.+rt(tv)/i,
2065
+ /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
2066
+ // WebOS
2067
+ ],
2068
+ [h, [m, "webOS"]],
2069
+ [
2070
+ /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
2071
+ // watchOS
2072
+ ],
2073
+ [h, [m, "watchOS"]],
2074
+ [
2075
+ // Google Chromecast
2076
+ /crkey\/([\d\.]+)/i
2077
+ // Google Chromecast
2078
+ ],
2079
+ [h, [m, S + "cast"]],
2080
+ [
2081
+ /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
2082
+ // Chromium OS
2083
+ ],
2084
+ [[m, _e], h],
2085
+ [
2086
+ // Smart TVs
2087
+ /panasonic;(viera)/i,
2088
+ // Panasonic Viera
2089
+ /(netrange)mmh/i,
2090
+ // Netrange
2091
+ /(nettv)\/(\d+\.[\w\.]+)/i,
2092
+ // NetTV
2093
+ // Console
2094
+ /(nintendo|playstation) ([wids345portablevuch]+)/i,
2095
+ // Nintendo/Playstation
2096
+ /(xbox); +xbox ([^\);]+)/i,
2097
+ // Microsoft Xbox (360, One, X, S, Series X, Series S)
2098
+ // Other
2099
+ /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
2100
+ // Joli/Palm
2101
+ /(mint)[\/\(\) ]?(\w*)/i,
2102
+ // Mint
2103
+ /(mageia|vectorlinux)[; ]/i,
2104
+ // Mageia/VectorLinux
2105
+ /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
2106
+ // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
2107
+ /(hurd|linux) ?([\w\.]*)/i,
2108
+ // Hurd/Linux
2109
+ /(gnu) ?([\w\.]*)/i,
2110
+ // GNU
2111
+ /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
2112
+ // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
2113
+ /(haiku) (\w+)/i
2114
+ // Haiku
2115
+ ],
2116
+ [m, h],
2117
+ [
2118
+ /(sunos) ?([\w\.\d]*)/i
2119
+ // Solaris
2120
+ ],
2121
+ [[m, "Solaris"], h],
2122
+ [
2123
+ /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
2124
+ // Solaris
2125
+ /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
2126
+ // AIX
2127
+ /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
2128
+ // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS
2129
+ /(unix) ?([\w\.]*)/i
2130
+ // UNIX
2131
+ ],
2132
+ [m, h]
2133
+ ]
2134
+ }, N = function(D, k) {
2135
+ if (typeof D === O && (k = D, D = r), !(this instanceof N))
2136
+ return new N(D, k).getResult();
2137
+ var I = typeof i !== d && i.navigator ? i.navigator : r, G = D || (I && I.userAgent ? I.userAgent : o), ce = I && I.userAgentData ? I.userAgentData : r, ye = k ? Re(A, k) : A, $ = I && I.userAgent == G;
2138
+ return this.getBrowser = function() {
2139
+ var x = {};
2140
+ return x[m] = r, x[h] = r, Le.call(x, G, ye.browser), x[j] = Ce(x[h]), $ && I && I.brave && typeof I.brave.isBrave == c && (x[m] = "Brave"), x;
2141
+ }, this.getCPU = function() {
2142
+ var x = {};
2143
+ return x[oe] = r, Le.call(x, G, ye.cpu), x;
2144
+ }, this.getDevice = function() {
2145
+ var x = {};
2146
+ return x[f] = r, x[u] = r, x[l] = r, Le.call(x, G, ye.device), $ && !x[l] && ce && ce.mobile && (x[l] = M), $ && x[u] == "Macintosh" && I && typeof I.standalone !== d && I.maxTouchPoints && I.maxTouchPoints > 2 && (x[u] = "iPad", x[l] = C), x;
2147
+ }, this.getEngine = function() {
2148
+ var x = {};
2149
+ return x[m] = r, x[h] = r, Le.call(x, G, ye.engine), x;
2150
+ }, this.getOS = function() {
2151
+ var x = {};
2152
+ return x[m] = r, x[h] = r, Le.call(x, G, ye.os), $ && !x[m] && ce && ce.platform && ce.platform != "Unknown" && (x[m] = ce.platform.replace(/chrome os/i, _e).replace(/macos/i, J)), x;
2153
+ }, this.getResult = function() {
2154
+ return {
2155
+ ua: this.getUA(),
2156
+ browser: this.getBrowser(),
2157
+ engine: this.getEngine(),
2158
+ os: this.getOS(),
2159
+ device: this.getDevice(),
2160
+ cpu: this.getCPU()
2161
+ };
2162
+ }, this.getUA = function() {
2163
+ return G;
2164
+ }, this.setUA = function(x) {
2165
+ return G = typeof x === P && x.length > X ? Ve(x, X) : x, this;
2166
+ }, this.setUA(G), this;
2167
+ };
2168
+ N.VERSION = s, N.BROWSER = Te([m, h, j]), N.CPU = Te([oe]), N.DEVICE = Te([u, f, l, pe, M, B, C, z, be]), N.ENGINE = N.OS = Te([m, h]), e.exports && (t = e.exports = N), t.UAParser = N;
2169
+ var L = typeof i !== d && (i.jQuery || i.Zepto);
2170
+ if (L && !L.ua) {
2171
+ var Z = new N();
2172
+ L.ua = Z.getResult(), L.ua.get = function() {
2173
+ return Z.getUA();
2174
+ }, L.ua.set = function(D) {
2175
+ Z.setUA(D);
2176
+ var k = Z.getResult();
2177
+ for (var I in k)
2178
+ L.ua[I] = k[I];
2179
+ };
2180
+ }
2181
+ })(typeof window == "object" ? window : Ue);
2182
+ })(Ot, Ot.exports);
2183
+ var Sn = Ot.exports;
2184
+ const On = /* @__PURE__ */ Ye(Sn);
2185
+ var vt = { exports: {} };
2186
+ (function(e, t) {
2187
+ Object.defineProperty(t, "__esModule", {
2188
+ value: !0
2189
+ }), t.default = i;
2190
+ function i() {
2191
+ return !!(typeof window < "u" && ("ontouchstart" in window || window.DocumentTouch && typeof document < "u" && document instanceof window.DocumentTouch)) || !!(typeof navigator < "u" && (navigator.maxTouchPoints || navigator.msMaxTouchPoints));
2192
+ }
2193
+ e.exports = t.default;
2194
+ })(vt, vt.exports);
2195
+ var vn = vt.exports;
2196
+ const Rn = /* @__PURE__ */ Ye(vn), xn = () => Rn(), Rr = () => {
2197
+ const t = new On().getResult(), i = t.browser.name, r = t.browser.version, s = t.engine.name, o = t.os.name, a = t.device.type;
2198
+ return {
2199
+ browserName: i ? i.toLowerCase().replace(" ", "-") : "",
2200
+ browserVersion: r || "",
2201
+ browserEngine: s ? s.toLowerCase().replace(" ", "-") : "",
2202
+ osName: o ? o.toLowerCase().replace(" ", "-") : "",
2203
+ type: typeof a < "u" ? a.toLowerCase().replace(" ", "-") : "laptop",
2204
+ touchSupport: xn()
2205
+ };
2206
+ };
2207
+ var xr = { exports: {} };
2208
+ (function(e, t) {
2209
+ (function(i, r) {
2210
+ e.exports = r();
2211
+ })(Ue, function() {
2212
+ return function(i, r, s) {
2213
+ r.prototype.isBetween = function(o, a, c, d) {
2214
+ var O = s(o), P = s(a), j = (d = d || "()")[0] === "(", u = d[1] === ")";
2215
+ return (j ? this.isAfter(O, c) : !this.isBefore(O, c)) && (u ? this.isBefore(P, c) : !this.isAfter(P, c)) || (j ? this.isBefore(O, c) : !this.isAfter(O, c)) && (u ? this.isAfter(P, c) : !this.isBefore(P, c));
2216
+ };
2217
+ };
2218
+ });
2219
+ })(xr);
2220
+ var In = xr.exports;
2221
+ const Dn = /* @__PURE__ */ Ye(In);
2222
+ Fe.extend(Dn);
2223
+ const Xn = (e, t, i = Fe()) => {
2224
+ if (!Fe(e).isValid() || !Fe(t).isValid())
2225
+ throw new Error("dateA or dateB is not valid date");
2226
+ const r = Fe(e), s = Fe(t);
2227
+ return i.isBetween(r, s, "millisecond");
2228
+ }, Zn = (e) => e.length > 0 && e.every((t) => t !== null), Kn = (e = "portrait") => {
2229
+ const t = Rr();
2230
+ return t.touchSupport ? t.type === "laptop" && t.osName === "mac-os" && t.browserName === "safari" && t.touchSupport && Zr() === e : !1;
2231
+ }, Jn = (e, t) => !!e && Object.prototype.hasOwnProperty.call(e, t), Qn = (e = !0) => {
2232
+ const t = Rr();
2233
+ return e ? t.browserName === "safari" || t.browserName === "mobile-safari" : t.browserName === "safari";
2234
+ }, ei = (e) => {
2235
+ const t = e.scrollWidth > e.clientWidth, i = e.scrollHeight > e.clientHeight;
2236
+ return t || i;
2237
+ };
2238
+ var At = { exports: {} };
2239
+ /*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */
2240
+ var mr;
2241
+ function pr() {
2242
+ return mr || (mr = 1, function(e, t) {
2243
+ (function(i, r) {
2244
+ e.exports = r();
2245
+ })(Ue, function() {
2246
+ const {
2247
+ entries: i,
2248
+ setPrototypeOf: r,
2249
+ isFrozen: s,
2250
+ getPrototypeOf: o,
2251
+ getOwnPropertyDescriptor: a
2252
+ } = Object;
2253
+ let {
2254
+ freeze: c,
2255
+ seal: d,
2256
+ create: O
2257
+ } = Object, {
2258
+ apply: P,
2259
+ construct: j
2260
+ } = typeof Reflect < "u" && Reflect;
2261
+ c || (c = function(A) {
2262
+ return A;
2263
+ }), d || (d = function(A) {
2264
+ return A;
2265
+ }), P || (P = function(A, N, L) {
2266
+ return A.apply(N, L);
2267
+ }), j || (j = function(A, N) {
2268
+ return new A(...N);
2269
+ });
2270
+ const u = X(Array.prototype.forEach), m = X(Array.prototype.pop), l = X(Array.prototype.push), f = X(String.prototype.toLowerCase), h = X(String.prototype.toString), oe = X(String.prototype.match), pe = X(String.prototype.replace), M = X(String.prototype.indexOf), C = X(String.prototype.trim), B = X(Object.prototype.hasOwnProperty), z = X(RegExp.prototype.test), be = Ae(TypeError);
2271
+ function X(F) {
2272
+ return function(A) {
2273
+ for (var N = arguments.length, L = new Array(N > 1 ? N - 1 : 0), Z = 1; Z < N; Z++)
2274
+ L[Z - 1] = arguments[Z];
2275
+ return P(F, A, L);
2276
+ };
2277
+ }
2278
+ function Ae(F) {
2279
+ return function() {
2280
+ for (var A = arguments.length, N = new Array(A), L = 0; L < A; L++)
2281
+ N[L] = arguments[L];
2282
+ return j(F, N);
2283
+ };
2284
+ }
2285
+ function _(F, A) {
2286
+ let N = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : f;
2287
+ r && r(F, null);
2288
+ let L = A.length;
2289
+ for (; L--; ) {
2290
+ let Z = A[L];
2291
+ if (typeof Z == "string") {
2292
+ const D = N(Z);
2293
+ D !== Z && (s(A) || (A[L] = D), Z = D);
2294
+ }
2295
+ F[Z] = !0;
2296
+ }
2297
+ return F;
2298
+ }
2299
+ function U(F) {
2300
+ for (let A = 0; A < F.length; A++)
2301
+ B(F, A) || (F[A] = null);
2302
+ return F;
2303
+ }
2304
+ function ae(F) {
2305
+ const A = O(null);
2306
+ for (const [N, L] of i(F))
2307
+ B(F, N) && (Array.isArray(L) ? A[N] = U(L) : L && typeof L == "object" && L.constructor === Object ? A[N] = ae(L) : A[N] = L);
2308
+ return A;
2309
+ }
2310
+ function de(F, A) {
2311
+ for (; F !== null; ) {
2312
+ const L = a(F, A);
2313
+ if (L) {
2314
+ if (L.get)
2315
+ return X(L.get);
2316
+ if (typeof L.value == "function")
2317
+ return X(L.value);
2318
+ }
2319
+ F = o(F);
2320
+ }
2321
+ function N() {
2322
+ return null;
2323
+ }
2324
+ return N;
2325
+ }
2326
+ const S = c(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), w = c(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), g = c(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), T = c(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), b = c(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), R = c(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), v = c(["#text"]), H = c(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns", "slot"]), W = c(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), Y = c(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), q = c(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), ee = d(/\{\{[\w\W]*|[\w\W]*\}\}/gm), we = d(/<%[\w\W]*|[\w\W]*%>/gm), he = d(/\${[\w\W]*}/gm), Ee = d(/^data-[\-\w.\u00B7-\uFFFF]/), _e = d(/^aria-[\-\w]+$/), J = d(
2327
+ /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
2328
+ // eslint-disable-line no-useless-escape
2329
+ ), ge = d(/^(?:\w+script|data):/i), Re = d(
2330
+ /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
2331
+ // eslint-disable-line no-control-regex
2332
+ ), Te = d(/^html$/i), Qe = d(/^[a-z][.\w]*(-[.\w]+)+$/i);
2333
+ var xe = /* @__PURE__ */ Object.freeze({
2334
+ __proto__: null,
2335
+ MUSTACHE_EXPR: ee,
2336
+ ERB_EXPR: we,
2337
+ TMPLIT_EXPR: he,
2338
+ DATA_ATTR: Ee,
2339
+ ARIA_ATTR: _e,
2340
+ IS_ALLOWED_URI: J,
2341
+ IS_SCRIPT_OR_DATA: ge,
2342
+ ATTR_WHITESPACE: Re,
2343
+ DOCTYPE_NAME: Te,
2344
+ CUSTOM_ELEMENT: Qe
2345
+ });
2346
+ const Ce = {
2347
+ element: 1,
2348
+ attribute: 2,
2349
+ text: 3,
2350
+ cdataSection: 4,
2351
+ entityReference: 5,
2352
+ // Deprecated
2353
+ entityNode: 6,
2354
+ // Deprecated
2355
+ progressingInstruction: 7,
2356
+ comment: 8,
2357
+ document: 9,
2358
+ documentType: 10,
2359
+ documentFragment: 11,
2360
+ notation: 12
2361
+ // Deprecated
2362
+ }, Ve = function() {
2363
+ return typeof window > "u" ? null : window;
2364
+ }, Le = function(A, N) {
2365
+ if (typeof A != "object" || typeof A.createPolicy != "function")
2366
+ return null;
2367
+ let L = null;
2368
+ const Z = "data-tt-policy-suffix";
2369
+ N && N.hasAttribute(Z) && (L = N.getAttribute(Z));
2370
+ const D = "dompurify" + (L ? "#" + L : "");
2371
+ try {
2372
+ return A.createPolicy(D, {
2373
+ createHTML(k) {
2374
+ return k;
2375
+ },
2376
+ createScriptURL(k) {
2377
+ return k;
2378
+ }
2379
+ });
2380
+ } catch {
2381
+ return console.warn("TrustedTypes policy " + D + " could not be created."), null;
2382
+ }
2383
+ };
2384
+ function Pe() {
2385
+ let F = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Ve();
2386
+ const A = (E) => Pe(E);
2387
+ if (A.version = "3.1.7", A.removed = [], !F || !F.document || F.document.nodeType !== Ce.document)
2388
+ return A.isSupported = !1, A;
2389
+ let {
2390
+ document: N
2391
+ } = F;
2392
+ const L = N, Z = L.currentScript, {
2393
+ DocumentFragment: D,
2394
+ HTMLTemplateElement: k,
2395
+ Node: I,
2396
+ Element: G,
2397
+ NodeFilter: ce,
2398
+ NamedNodeMap: ye = F.NamedNodeMap || F.MozNamedAttrMap,
2399
+ HTMLFormElement: $,
2400
+ DOMParser: x,
2401
+ trustedTypes: le
2402
+ } = F, Ie = G.prototype, et = de(Ie, "cloneNode"), Ir = de(Ie, "remove"), Dr = de(Ie, "nextSibling"), Nr = de(Ie, "childNodes"), tt = de(Ie, "parentNode");
2403
+ if (typeof k == "function") {
2404
+ const E = N.createElement("template");
2405
+ E.content && E.content.ownerDocument && (N = E.content.ownerDocument);
2406
+ }
2407
+ let ue, qe = "";
2408
+ const {
2409
+ implementation: ct,
2410
+ createNodeIterator: Mr,
2411
+ createDocumentFragment: Cr,
2412
+ getElementsByTagName: Lr
2413
+ } = N, {
2414
+ importNode: Pr
2415
+ } = L;
2416
+ let Se = {};
2417
+ A.isSupported = typeof i == "function" && typeof tt == "function" && ct && ct.createHTMLDocument !== void 0;
2418
+ const {
2419
+ MUSTACHE_EXPR: lt,
2420
+ ERB_EXPR: ut,
2421
+ TMPLIT_EXPR: ft,
2422
+ DATA_ATTR: kr,
2423
+ ARIA_ATTR: Fr,
2424
+ IS_SCRIPT_OR_DATA: Ur,
2425
+ ATTR_WHITESPACE: Nt,
2426
+ CUSTOM_ELEMENT: Hr
2427
+ } = xe;
2428
+ let {
2429
+ IS_ALLOWED_URI: Mt
2430
+ } = xe, te = null;
2431
+ const Ct = _({}, [...S, ...w, ...g, ...b, ...v]);
2432
+ let re = null;
2433
+ const Lt = _({}, [...H, ...W, ...Y, ...q]);
2434
+ let K = Object.seal(O(null, {
2435
+ tagNameCheck: {
2436
+ writable: !0,
2437
+ configurable: !1,
2438
+ enumerable: !0,
2439
+ value: null
2440
+ },
2441
+ attributeNameCheck: {
2442
+ writable: !0,
2443
+ configurable: !1,
2444
+ enumerable: !0,
2445
+ value: null
2446
+ },
2447
+ allowCustomizedBuiltInElements: {
2448
+ writable: !0,
2449
+ configurable: !1,
2450
+ enumerable: !0,
2451
+ value: !1
2452
+ }
2453
+ })), Xe = null, dt = null, Pt = !0, mt = !0, kt = !1, Ft = !0, $e = !1, pt = !0, ke = !1, ht = !1, gt = !1, Be = !1, rt = !1, nt = !1, Ut = !0, Ht = !1;
2454
+ const $r = "user-content-";
2455
+ let bt = !0, Ze = !1, ze = {}, We = null;
2456
+ const $t = _({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
2457
+ let Bt = null;
2458
+ const zt = _({}, ["audio", "video", "img", "source", "image", "track"]);
2459
+ let wt = null;
2460
+ const Wt = _({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), it = "http://www.w3.org/1998/Math/MathML", ot = "http://www.w3.org/2000/svg", De = "http://www.w3.org/1999/xhtml";
2461
+ let Ge = De, _t = !1, Tt = null;
2462
+ const Br = _({}, [it, ot, De], h);
2463
+ let Ke = null;
2464
+ const zr = ["application/xhtml+xml", "text/html"], Wr = "text/html";
2465
+ let ne = null, je = null;
2466
+ const Gr = N.createElement("form"), Gt = function(n) {
2467
+ return n instanceof RegExp || n instanceof Function;
2468
+ }, yt = function() {
2469
+ let n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
2470
+ if (!(je && je === n)) {
2471
+ if ((!n || typeof n != "object") && (n = {}), n = ae(n), Ke = // eslint-disable-next-line unicorn/prefer-includes
2472
+ zr.indexOf(n.PARSER_MEDIA_TYPE) === -1 ? Wr : n.PARSER_MEDIA_TYPE, ne = Ke === "application/xhtml+xml" ? h : f, te = B(n, "ALLOWED_TAGS") ? _({}, n.ALLOWED_TAGS, ne) : Ct, re = B(n, "ALLOWED_ATTR") ? _({}, n.ALLOWED_ATTR, ne) : Lt, Tt = B(n, "ALLOWED_NAMESPACES") ? _({}, n.ALLOWED_NAMESPACES, h) : Br, wt = B(n, "ADD_URI_SAFE_ATTR") ? _(
2473
+ ae(Wt),
2474
+ // eslint-disable-line indent
2475
+ n.ADD_URI_SAFE_ATTR,
2476
+ // eslint-disable-line indent
2477
+ ne
2478
+ // eslint-disable-line indent
2479
+ ) : Wt, Bt = B(n, "ADD_DATA_URI_TAGS") ? _(
2480
+ ae(zt),
2481
+ // eslint-disable-line indent
2482
+ n.ADD_DATA_URI_TAGS,
2483
+ // eslint-disable-line indent
2484
+ ne
2485
+ // eslint-disable-line indent
2486
+ ) : zt, We = B(n, "FORBID_CONTENTS") ? _({}, n.FORBID_CONTENTS, ne) : $t, Xe = B(n, "FORBID_TAGS") ? _({}, n.FORBID_TAGS, ne) : {}, dt = B(n, "FORBID_ATTR") ? _({}, n.FORBID_ATTR, ne) : {}, ze = B(n, "USE_PROFILES") ? n.USE_PROFILES : !1, Pt = n.ALLOW_ARIA_ATTR !== !1, mt = n.ALLOW_DATA_ATTR !== !1, kt = n.ALLOW_UNKNOWN_PROTOCOLS || !1, Ft = n.ALLOW_SELF_CLOSE_IN_ATTR !== !1, $e = n.SAFE_FOR_TEMPLATES || !1, pt = n.SAFE_FOR_XML !== !1, ke = n.WHOLE_DOCUMENT || !1, Be = n.RETURN_DOM || !1, rt = n.RETURN_DOM_FRAGMENT || !1, nt = n.RETURN_TRUSTED_TYPE || !1, gt = n.FORCE_BODY || !1, Ut = n.SANITIZE_DOM !== !1, Ht = n.SANITIZE_NAMED_PROPS || !1, bt = n.KEEP_CONTENT !== !1, Ze = n.IN_PLACE || !1, Mt = n.ALLOWED_URI_REGEXP || J, Ge = n.NAMESPACE || De, K = n.CUSTOM_ELEMENT_HANDLING || {}, n.CUSTOM_ELEMENT_HANDLING && Gt(n.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (K.tagNameCheck = n.CUSTOM_ELEMENT_HANDLING.tagNameCheck), n.CUSTOM_ELEMENT_HANDLING && Gt(n.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (K.attributeNameCheck = n.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), n.CUSTOM_ELEMENT_HANDLING && typeof n.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (K.allowCustomizedBuiltInElements = n.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), $e && (mt = !1), rt && (Be = !0), ze && (te = _({}, v), re = [], ze.html === !0 && (_(te, S), _(re, H)), ze.svg === !0 && (_(te, w), _(re, W), _(re, q)), ze.svgFilters === !0 && (_(te, g), _(re, W), _(re, q)), ze.mathMl === !0 && (_(te, b), _(re, Y), _(re, q))), n.ADD_TAGS && (te === Ct && (te = ae(te)), _(te, n.ADD_TAGS, ne)), n.ADD_ATTR && (re === Lt && (re = ae(re)), _(re, n.ADD_ATTR, ne)), n.ADD_URI_SAFE_ATTR && _(wt, n.ADD_URI_SAFE_ATTR, ne), n.FORBID_CONTENTS && (We === $t && (We = ae(We)), _(We, n.FORBID_CONTENTS, ne)), bt && (te["#text"] = !0), ke && _(te, ["html", "head", "body"]), te.table && (_(te, ["tbody"]), delete Xe.tbody), n.TRUSTED_TYPES_POLICY) {
2487
+ if (typeof n.TRUSTED_TYPES_POLICY.createHTML != "function")
2488
+ throw be('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
2489
+ if (typeof n.TRUSTED_TYPES_POLICY.createScriptURL != "function")
2490
+ throw be('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
2491
+ ue = n.TRUSTED_TYPES_POLICY, qe = ue.createHTML("");
2492
+ } else
2493
+ ue === void 0 && (ue = Le(le, Z)), ue !== null && typeof qe == "string" && (qe = ue.createHTML(""));
2494
+ c && c(n), je = n;
2495
+ }
2496
+ }, jt = _({}, ["mi", "mo", "mn", "ms", "mtext"]), Yt = _({}, ["annotation-xml"]), jr = _({}, ["title", "style", "font", "a", "script"]), Vt = _({}, [...w, ...g, ...T]), qt = _({}, [...b, ...R]), Yr = function(n) {
2497
+ let p = tt(n);
2498
+ (!p || !p.tagName) && (p = {
2499
+ namespaceURI: Ge,
2500
+ tagName: "template"
2501
+ });
2502
+ const y = f(n.tagName), V = f(p.tagName);
2503
+ return Tt[n.namespaceURI] ? n.namespaceURI === ot ? p.namespaceURI === De ? y === "svg" : p.namespaceURI === it ? y === "svg" && (V === "annotation-xml" || jt[V]) : !!Vt[y] : n.namespaceURI === it ? p.namespaceURI === De ? y === "math" : p.namespaceURI === ot ? y === "math" && Yt[V] : !!qt[y] : n.namespaceURI === De ? p.namespaceURI === ot && !Yt[V] || p.namespaceURI === it && !jt[V] ? !1 : !qt[y] && (jr[y] || !Vt[y]) : !!(Ke === "application/xhtml+xml" && Tt[n.namespaceURI]) : !1;
2504
+ }, Oe = function(n) {
2505
+ l(A.removed, {
2506
+ element: n
2507
+ });
2508
+ try {
2509
+ tt(n).removeChild(n);
2510
+ } catch {
2511
+ Ir(n);
2512
+ }
2513
+ }, st = function(n, p) {
2514
+ try {
2515
+ l(A.removed, {
2516
+ attribute: p.getAttributeNode(n),
2517
+ from: p
2518
+ });
2519
+ } catch {
2520
+ l(A.removed, {
2521
+ attribute: null,
2522
+ from: p
2523
+ });
2524
+ }
2525
+ if (p.removeAttribute(n), n === "is" && !re[n])
2526
+ if (Be || rt)
2527
+ try {
2528
+ Oe(p);
2529
+ } catch {
2530
+ }
2531
+ else
2532
+ try {
2533
+ p.setAttribute(n, "");
2534
+ } catch {
2535
+ }
2536
+ }, Xt = function(n) {
2537
+ let p = null, y = null;
2538
+ if (gt)
2539
+ n = "<remove></remove>" + n;
2540
+ else {
2541
+ const ie = oe(n, /^[\r\n\t ]+/);
2542
+ y = ie && ie[0];
2543
+ }
2544
+ Ke === "application/xhtml+xml" && Ge === De && (n = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + n + "</body></html>");
2545
+ const V = ue ? ue.createHTML(n) : n;
2546
+ if (Ge === De)
2547
+ try {
2548
+ p = new x().parseFromString(V, Ke);
2549
+ } catch {
2550
+ }
2551
+ if (!p || !p.documentElement) {
2552
+ p = ct.createDocument(Ge, "template", null);
2553
+ try {
2554
+ p.documentElement.innerHTML = _t ? qe : V;
2555
+ } catch {
2556
+ }
2557
+ }
2558
+ const se = p.body || p.documentElement;
2559
+ return n && y && se.insertBefore(N.createTextNode(y), se.childNodes[0] || null), Ge === De ? Lr.call(p, ke ? "html" : "body")[0] : ke ? p.documentElement : se;
2560
+ }, Zt = function(n) {
2561
+ return Mr.call(
2562
+ n.ownerDocument || n,
2563
+ n,
2564
+ // eslint-disable-next-line no-bitwise
2565
+ ce.SHOW_ELEMENT | ce.SHOW_COMMENT | ce.SHOW_TEXT | ce.SHOW_PROCESSING_INSTRUCTION | ce.SHOW_CDATA_SECTION,
2566
+ null
2567
+ );
2568
+ }, Kt = function(n) {
2569
+ return n instanceof $ && (typeof n.nodeName != "string" || typeof n.textContent != "string" || typeof n.removeChild != "function" || !(n.attributes instanceof ye) || typeof n.removeAttribute != "function" || typeof n.setAttribute != "function" || typeof n.namespaceURI != "string" || typeof n.insertBefore != "function" || typeof n.hasChildNodes != "function");
2570
+ }, Jt = function(n) {
2571
+ return typeof I == "function" && n instanceof I;
2572
+ }, Ne = function(n, p, y) {
2573
+ Se[n] && u(Se[n], (V) => {
2574
+ V.call(A, p, y, je);
2575
+ });
2576
+ }, Qt = function(n) {
2577
+ let p = null;
2578
+ if (Ne("beforeSanitizeElements", n, null), Kt(n))
2579
+ return Oe(n), !0;
2580
+ const y = ne(n.nodeName);
2581
+ if (Ne("uponSanitizeElement", n, {
2582
+ tagName: y,
2583
+ allowedTags: te
2584
+ }), n.hasChildNodes() && !Jt(n.firstElementChild) && z(/<[/\w]/g, n.innerHTML) && z(/<[/\w]/g, n.textContent) || n.nodeType === Ce.progressingInstruction || pt && n.nodeType === Ce.comment && z(/<[/\w]/g, n.data))
2585
+ return Oe(n), !0;
2586
+ if (!te[y] || Xe[y]) {
2587
+ if (!Xe[y] && tr(y) && (K.tagNameCheck instanceof RegExp && z(K.tagNameCheck, y) || K.tagNameCheck instanceof Function && K.tagNameCheck(y)))
2588
+ return !1;
2589
+ if (bt && !We[y]) {
2590
+ const V = tt(n) || n.parentNode, se = Nr(n) || n.childNodes;
2591
+ if (se && V) {
2592
+ const ie = se.length;
2593
+ for (let me = ie - 1; me >= 0; --me) {
2594
+ const ve = et(se[me], !0);
2595
+ ve.__removalCount = (n.__removalCount || 0) + 1, V.insertBefore(ve, Dr(n));
2596
+ }
2597
+ }
2598
+ }
2599
+ return Oe(n), !0;
2600
+ }
2601
+ return n instanceof G && !Yr(n) || (y === "noscript" || y === "noembed" || y === "noframes") && z(/<\/no(script|embed|frames)/i, n.innerHTML) ? (Oe(n), !0) : ($e && n.nodeType === Ce.text && (p = n.textContent, u([lt, ut, ft], (V) => {
2602
+ p = pe(p, V, " ");
2603
+ }), n.textContent !== p && (l(A.removed, {
2604
+ element: n.cloneNode()
2605
+ }), n.textContent = p)), Ne("afterSanitizeElements", n, null), !1);
2606
+ }, er = function(n, p, y) {
2607
+ if (Ut && (p === "id" || p === "name") && (y in N || y in Gr))
2608
+ return !1;
2609
+ if (!(mt && !dt[p] && z(kr, p))) {
2610
+ if (!(Pt && z(Fr, p))) {
2611
+ if (!re[p] || dt[p]) {
2612
+ if (
2613
+ // First condition does a very basic check if a) it's basically a valid custom element tagname AND
2614
+ // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
2615
+ // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
2616
+ !(tr(n) && (K.tagNameCheck instanceof RegExp && z(K.tagNameCheck, n) || K.tagNameCheck instanceof Function && K.tagNameCheck(n)) && (K.attributeNameCheck instanceof RegExp && z(K.attributeNameCheck, p) || K.attributeNameCheck instanceof Function && K.attributeNameCheck(p)) || // Alternative, second condition checks if it's an `is`-attribute, AND
2617
+ // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
2618
+ p === "is" && K.allowCustomizedBuiltInElements && (K.tagNameCheck instanceof RegExp && z(K.tagNameCheck, y) || K.tagNameCheck instanceof Function && K.tagNameCheck(y)))
2619
+ ) return !1;
2620
+ } else if (!wt[p]) {
2621
+ if (!z(Mt, pe(y, Nt, ""))) {
2622
+ if (!((p === "src" || p === "xlink:href" || p === "href") && n !== "script" && M(y, "data:") === 0 && Bt[n])) {
2623
+ if (!(kt && !z(Ur, pe(y, Nt, "")))) {
2624
+ if (y)
2625
+ return !1;
2626
+ }
2627
+ }
2628
+ }
2629
+ }
2630
+ }
2631
+ }
2632
+ return !0;
2633
+ }, tr = function(n) {
2634
+ return n !== "annotation-xml" && oe(n, Hr);
2635
+ }, rr = function(n) {
2636
+ Ne("beforeSanitizeAttributes", n, null);
2637
+ const {
2638
+ attributes: p
2639
+ } = n;
2640
+ if (!p)
2641
+ return;
2642
+ const y = {
2643
+ attrName: "",
2644
+ attrValue: "",
2645
+ keepAttr: !0,
2646
+ allowedAttributes: re
2647
+ };
2648
+ let V = p.length;
2649
+ for (; V--; ) {
2650
+ const se = p[V], {
2651
+ name: ie,
2652
+ namespaceURI: me,
2653
+ value: ve
2654
+ } = se, Je = ne(ie);
2655
+ let fe = ie === "value" ? ve : C(ve);
2656
+ if (y.attrName = Je, y.attrValue = fe, y.keepAttr = !0, y.forceKeepAttr = void 0, Ne("uponSanitizeAttribute", n, y), fe = y.attrValue, y.forceKeepAttr || (st(ie, n), !y.keepAttr))
2657
+ continue;
2658
+ if (!Ft && z(/\/>/i, fe)) {
2659
+ st(ie, n);
2660
+ continue;
2661
+ }
2662
+ $e && u([lt, ut, ft], (ir) => {
2663
+ fe = pe(fe, ir, " ");
2664
+ });
2665
+ const nr = ne(n.nodeName);
2666
+ if (er(nr, Je, fe)) {
2667
+ if (Ht && (Je === "id" || Je === "name") && (st(ie, n), fe = $r + fe), pt && z(/((--!?|])>)|<\/(style|title)/i, fe)) {
2668
+ st(ie, n);
2669
+ continue;
2670
+ }
2671
+ if (ue && typeof le == "object" && typeof le.getAttributeType == "function" && !me)
2672
+ switch (le.getAttributeType(nr, Je)) {
2673
+ case "TrustedHTML": {
2674
+ fe = ue.createHTML(fe);
2675
+ break;
2676
+ }
2677
+ case "TrustedScriptURL": {
2678
+ fe = ue.createScriptURL(fe);
2679
+ break;
2680
+ }
2681
+ }
2682
+ try {
2683
+ me ? n.setAttributeNS(me, ie, fe) : n.setAttribute(ie, fe), Kt(n) ? Oe(n) : m(A.removed);
2684
+ } catch {
2685
+ }
2686
+ }
2687
+ }
2688
+ Ne("afterSanitizeAttributes", n, null);
2689
+ }, Vr = function E(n) {
2690
+ let p = null;
2691
+ const y = Zt(n);
2692
+ for (Ne("beforeSanitizeShadowDOM", n, null); p = y.nextNode(); )
2693
+ Ne("uponSanitizeShadowNode", p, null), !Qt(p) && (p.content instanceof D && E(p.content), rr(p));
2694
+ Ne("afterSanitizeShadowDOM", n, null);
2695
+ };
2696
+ return A.sanitize = function(E) {
2697
+ let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, p = null, y = null, V = null, se = null;
2698
+ if (_t = !E, _t && (E = "<!-->"), typeof E != "string" && !Jt(E))
2699
+ if (typeof E.toString == "function") {
2700
+ if (E = E.toString(), typeof E != "string")
2701
+ throw be("dirty is not a string, aborting");
2702
+ } else
2703
+ throw be("toString is not a function");
2704
+ if (!A.isSupported)
2705
+ return E;
2706
+ if (ht || yt(n), A.removed = [], typeof E == "string" && (Ze = !1), Ze) {
2707
+ if (E.nodeName) {
2708
+ const ve = ne(E.nodeName);
2709
+ if (!te[ve] || Xe[ve])
2710
+ throw be("root node is forbidden and cannot be sanitized in-place");
2711
+ }
2712
+ } else if (E instanceof I)
2713
+ p = Xt("<!---->"), y = p.ownerDocument.importNode(E, !0), y.nodeType === Ce.element && y.nodeName === "BODY" || y.nodeName === "HTML" ? p = y : p.appendChild(y);
2714
+ else {
2715
+ if (!Be && !$e && !ke && // eslint-disable-next-line unicorn/prefer-includes
2716
+ E.indexOf("<") === -1)
2717
+ return ue && nt ? ue.createHTML(E) : E;
2718
+ if (p = Xt(E), !p)
2719
+ return Be ? null : nt ? qe : "";
2720
+ }
2721
+ p && gt && Oe(p.firstChild);
2722
+ const ie = Zt(Ze ? E : p);
2723
+ for (; V = ie.nextNode(); )
2724
+ Qt(V) || (V.content instanceof D && Vr(V.content), rr(V));
2725
+ if (Ze)
2726
+ return E;
2727
+ if (Be) {
2728
+ if (rt)
2729
+ for (se = Cr.call(p.ownerDocument); p.firstChild; )
2730
+ se.appendChild(p.firstChild);
2731
+ else
2732
+ se = p;
2733
+ return (re.shadowroot || re.shadowrootmode) && (se = Pr.call(L, se, !0)), se;
2734
+ }
2735
+ let me = ke ? p.outerHTML : p.innerHTML;
2736
+ return ke && te["!doctype"] && p.ownerDocument && p.ownerDocument.doctype && p.ownerDocument.doctype.name && z(Te, p.ownerDocument.doctype.name) && (me = "<!DOCTYPE " + p.ownerDocument.doctype.name + `>
2737
+ ` + me), $e && u([lt, ut, ft], (ve) => {
2738
+ me = pe(me, ve, " ");
2739
+ }), ue && nt ? ue.createHTML(me) : me;
2740
+ }, A.setConfig = function() {
2741
+ let E = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
2742
+ yt(E), ht = !0;
2743
+ }, A.clearConfig = function() {
2744
+ je = null, ht = !1;
2745
+ }, A.isValidAttribute = function(E, n, p) {
2746
+ je || yt({});
2747
+ const y = ne(E), V = ne(n);
2748
+ return er(y, V, p);
2749
+ }, A.addHook = function(E, n) {
2750
+ typeof n == "function" && (Se[E] = Se[E] || [], l(Se[E], n));
2751
+ }, A.removeHook = function(E) {
2752
+ if (Se[E])
2753
+ return m(Se[E]);
2754
+ }, A.removeHooks = function(E) {
2755
+ Se[E] && (Se[E] = []);
2756
+ }, A.removeAllHooks = function() {
2757
+ Se = {};
2758
+ }, A;
2759
+ }
2760
+ var at = Pe();
2761
+ return at;
2762
+ });
2763
+ }(At)), At.exports;
2764
+ }
2765
+ var Nn = window.DOMPurify || (window.DOMPurify = pr().default || pr());
2766
+ const Mn = /* @__PURE__ */ Ye(Nn), ti = (e) => Mn.sanitize(e, {
2767
+ ALLOWED_TAGS: [],
2768
+ KEEP_CONTENT: !0,
2769
+ USE_PROFILES: { html: !1 }
2770
+ }).replace(/<\/?[^>]+(>|$)/g, ""), ri = (e, t) => {
2771
+ e.removeAttribute(t);
2772
+ }, ni = (e) => {
2773
+ It.session.remove(e);
2774
+ }, ii = (e) => {
2775
+ document.documentElement.style.removeProperty(e);
2776
+ }, oi = (e = "--vh") => {
2777
+ const t = window.innerHeight * 0.01;
2778
+ document.documentElement.style.setProperty(e, `${t}px`);
2779
+ }, si = (e = "--vw") => {
2780
+ const t = document.documentElement.clientWidth;
2781
+ document.documentElement.style.setProperty(e, `${t}px`);
2782
+ }, ai = (e, t, i) => {
2783
+ e.setAttribute(t, i);
2784
+ }, ci = (e, t, i = "smooth") => {
2785
+ const r = e.getBoundingClientRect().width / 2, s = t.getBoundingClientRect().width / 2, a = t.offsetLeft + s - r;
2786
+ e.scrollTo({ left: a, behavior: i });
2787
+ }, li = (e, t) => {
2788
+ It.session.set(e, t);
2789
+ }, ui = (e, t) => {
2790
+ document.documentElement.style.setProperty(e, t);
2791
+ }, Cn = (e) => {
2792
+ if (e) {
2793
+ if (e.nodeType === Node.TEXT_NODE) {
2794
+ const t = (e.textContent || "").trim(), i = document.createDocumentFragment();
2795
+ for (const r of t) {
2796
+ const s = document.createElement("span");
2797
+ s.textContent = r, i.appendChild(s);
2798
+ }
2799
+ e.replaceWith(i);
2800
+ } else if (e.nodeType === Node.ELEMENT_NODE)
2801
+ for (const t of Array.from(e.childNodes))
2802
+ Cn(t);
2803
+ }
2804
+ }, fi = (e) => new Promise((t) => setTimeout(t, e * 1e3, "foo")), di = async (e = !1) => {
2805
+ if (!document.images || document.images.length === 0) return Promise.resolve(!0);
2806
+ const t = Array.from(document.images).filter(
2807
+ (s) => s.getAttribute("loading") !== "lazy"
2808
+ ), i = Array.from(
2809
+ document.getElementsByTagName("video")
2810
+ );
2811
+ let r = [
2812
+ ...t,
2813
+ ...i
2814
+ ];
2815
+ if (e) {
2816
+ const s = window.innerHeight;
2817
+ r = r.filter((o) => {
2818
+ const a = o.getBoundingClientRect();
2819
+ return a.top < s && a.bottom > 0;
2820
+ });
2821
+ }
2822
+ return r.length === 0 ? Promise.resolve(!0) : (await Promise.all(
2823
+ r.map((s) => s instanceof HTMLImageElement && s.complete || s instanceof HTMLVideoElement && s.readyState >= 3 ? Promise.resolve() : new Promise((o) => {
2824
+ const a = () => o();
2825
+ s instanceof HTMLImageElement ? (s.addEventListener("load", a, { once: !0 }), s.addEventListener("error", a, { once: !0 })) : s instanceof HTMLVideoElement && (s.addEventListener("loadeddata", a, { once: !0 }), s.addEventListener("error", a, { once: !0 }));
2826
+ }))
2827
+ ), !0);
2828
+ };
2829
+ export {
2830
+ Ln as bgScrollStop,
2831
+ Un as changeDateStringToSpecificFormat,
2832
+ $n as getAspectRatio,
2833
+ Bn as getClassNames,
2834
+ zn as getDocumentHeight,
2835
+ Wn as getEventPaths,
2836
+ gr as getGcd,
2837
+ Zr as getOrientation,
2838
+ Kr as getParentList,
2839
+ Gn as getQueryParams,
2840
+ jn as getRem,
2841
+ qr as getScrollbarWidth,
2842
+ Yn as getSessionStorage,
2843
+ Vn as getStringLength,
2844
+ En as getStylePropertyValue,
2845
+ qn as getStylePropertyValueToNumber,
2846
+ Rr as getUaData,
2847
+ Xn as isBetweenDateTime,
2848
+ Zn as isExistAllElements,
2849
+ Kn as isIpad,
2850
+ Jn as isKeyExists,
2851
+ Qn as isSafari,
2852
+ ei as isScrollable,
2853
+ xn as isTouchSupport,
2854
+ Hn as jsonStringToJsonObject,
2855
+ Pn as pd,
2856
+ ti as removeAllHtmlTags,
2857
+ ri as removeAttribute,
2858
+ ni as removeSessionStorage,
2859
+ ii as removeStylePropertyValue,
2860
+ kn as scrollToHash,
2861
+ oi as set100vh,
2862
+ si as set100vw,
2863
+ ai as setAttribute,
2864
+ ci as setScrollPositionToCenter,
2865
+ li as setSessionStorage,
2866
+ ui as setStylePropertyValue,
2867
+ fi as sleep,
2868
+ Fn as videoPlayControl,
2869
+ di as waitForAllMediaLoaded,
2870
+ Cn as wrapTextWithSpans
2871
+ };