super-agent-sdk 1.0.9 → 1.0.11

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.
@@ -0,0 +1,4712 @@
1
+ var dt = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
2
+ function $n(fe) {
3
+ return fe && fe.__esModule && Object.prototype.hasOwnProperty.call(fe, "default") ? fe.default : fe;
4
+ }
5
+ function Xr(fe) {
6
+ if (fe.__esModule) return fe;
7
+ var B = fe.default;
8
+ if (typeof B == "function") {
9
+ var R = function T() {
10
+ return this instanceof T ? Reflect.construct(B, arguments, this.constructor) : B.apply(this, arguments);
11
+ };
12
+ R.prototype = B.prototype;
13
+ } else R = {};
14
+ return Object.defineProperty(R, "__esModule", { value: !0 }), Object.keys(fe).forEach(function(T) {
15
+ var b = Object.getOwnPropertyDescriptor(fe, T);
16
+ Object.defineProperty(R, T, b.get ? b : {
17
+ enumerable: !0,
18
+ get: function() {
19
+ return fe[T];
20
+ }
21
+ });
22
+ }), R;
23
+ }
24
+ var zn = { exports: {} };
25
+ function Gr(fe) {
26
+ throw new Error('Could not dynamically require "' + fe + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
27
+ }
28
+ var rn = { exports: {} };
29
+ const Qr = {}, Yr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
30
+ __proto__: null,
31
+ default: Qr
32
+ }, Symbol.toStringTag, { value: "Module" })), Jr = /* @__PURE__ */ Xr(Yr);
33
+ var Fn;
34
+ function Zr() {
35
+ return Fn || (Fn = 1, function(fe, B) {
36
+ (function(R, T) {
37
+ fe.exports = T();
38
+ })(dt, function() {
39
+ var R = R || function(T, b) {
40
+ var N;
41
+ if (typeof window < "u" && window.crypto && (N = window.crypto), typeof self < "u" && self.crypto && (N = self.crypto), typeof globalThis < "u" && globalThis.crypto && (N = globalThis.crypto), !N && typeof window < "u" && window.msCrypto && (N = window.msCrypto), !N && typeof dt < "u" && dt.crypto && (N = dt.crypto), !N && typeof Gr == "function")
42
+ try {
43
+ N = Jr;
44
+ } catch {
45
+ }
46
+ var X = function() {
47
+ if (N) {
48
+ if (typeof N.getRandomValues == "function")
49
+ try {
50
+ return N.getRandomValues(new Uint32Array(1))[0];
51
+ } catch {
52
+ }
53
+ if (typeof N.randomBytes == "function")
54
+ try {
55
+ return N.randomBytes(4).readInt32LE();
56
+ } catch {
57
+ }
58
+ }
59
+ throw new Error("Native crypto module could not be used to get secure random number.");
60
+ }, W = Object.create || /* @__PURE__ */ function() {
61
+ function C() {
62
+ }
63
+ return function(O) {
64
+ var L;
65
+ return C.prototype = O, L = new C(), C.prototype = null, L;
66
+ };
67
+ }(), se = {}, w = se.lib = {}, pe = w.Base = /* @__PURE__ */ function() {
68
+ return {
69
+ /**
70
+ * Creates a new object that inherits from this object.
71
+ *
72
+ * @param {Object} overrides Properties to copy into the new object.
73
+ *
74
+ * @return {Object} The new object.
75
+ *
76
+ * @static
77
+ *
78
+ * @example
79
+ *
80
+ * var MyType = CryptoJS.lib.Base.extend({
81
+ * field: 'value',
82
+ *
83
+ * method: function () {
84
+ * }
85
+ * });
86
+ */
87
+ extend: function(C) {
88
+ var O = W(this);
89
+ return C && O.mixIn(C), (!O.hasOwnProperty("init") || this.init === O.init) && (O.init = function() {
90
+ O.$super.init.apply(this, arguments);
91
+ }), O.init.prototype = O, O.$super = this, O;
92
+ },
93
+ /**
94
+ * Extends this object and runs the init method.
95
+ * Arguments to create() will be passed to init().
96
+ *
97
+ * @return {Object} The new object.
98
+ *
99
+ * @static
100
+ *
101
+ * @example
102
+ *
103
+ * var instance = MyType.create();
104
+ */
105
+ create: function() {
106
+ var C = this.extend();
107
+ return C.init.apply(C, arguments), C;
108
+ },
109
+ /**
110
+ * Initializes a newly created object.
111
+ * Override this method to add some logic when your objects are created.
112
+ *
113
+ * @example
114
+ *
115
+ * var MyType = CryptoJS.lib.Base.extend({
116
+ * init: function () {
117
+ * // ...
118
+ * }
119
+ * });
120
+ */
121
+ init: function() {
122
+ },
123
+ /**
124
+ * Copies properties into this object.
125
+ *
126
+ * @param {Object} properties The properties to mix in.
127
+ *
128
+ * @example
129
+ *
130
+ * MyType.mixIn({
131
+ * field: 'value'
132
+ * });
133
+ */
134
+ mixIn: function(C) {
135
+ for (var O in C)
136
+ C.hasOwnProperty(O) && (this[O] = C[O]);
137
+ C.hasOwnProperty("toString") && (this.toString = C.toString);
138
+ },
139
+ /**
140
+ * Creates a copy of this object.
141
+ *
142
+ * @return {Object} The clone.
143
+ *
144
+ * @example
145
+ *
146
+ * var clone = instance.clone();
147
+ */
148
+ clone: function() {
149
+ return this.init.prototype.extend(this);
150
+ }
151
+ };
152
+ }(), re = w.WordArray = pe.extend({
153
+ /**
154
+ * Initializes a newly created word array.
155
+ *
156
+ * @param {Array} words (Optional) An array of 32-bit words.
157
+ * @param {number} sigBytes (Optional) The number of significant bytes in the words.
158
+ *
159
+ * @example
160
+ *
161
+ * var wordArray = CryptoJS.lib.WordArray.create();
162
+ * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
163
+ * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
164
+ */
165
+ init: function(C, O) {
166
+ C = this.words = C || [], O != b ? this.sigBytes = O : this.sigBytes = C.length * 4;
167
+ },
168
+ /**
169
+ * Converts this word array to a string.
170
+ *
171
+ * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
172
+ *
173
+ * @return {string} The stringified word array.
174
+ *
175
+ * @example
176
+ *
177
+ * var string = wordArray + '';
178
+ * var string = wordArray.toString();
179
+ * var string = wordArray.toString(CryptoJS.enc.Utf8);
180
+ */
181
+ toString: function(C) {
182
+ return (C || G).stringify(this);
183
+ },
184
+ /**
185
+ * Concatenates a word array to this word array.
186
+ *
187
+ * @param {WordArray} wordArray The word array to append.
188
+ *
189
+ * @return {WordArray} This word array.
190
+ *
191
+ * @example
192
+ *
193
+ * wordArray1.concat(wordArray2);
194
+ */
195
+ concat: function(C) {
196
+ var O = this.words, L = C.words, $ = this.sigBytes, J = C.sigBytes;
197
+ if (this.clamp(), $ % 4)
198
+ for (var i = 0; i < J; i++) {
199
+ var he = L[i >>> 2] >>> 24 - i % 4 * 8 & 255;
200
+ O[$ + i >>> 2] |= he << 24 - ($ + i) % 4 * 8;
201
+ }
202
+ else
203
+ for (var Q = 0; Q < J; Q += 4)
204
+ O[$ + Q >>> 2] = L[Q >>> 2];
205
+ return this.sigBytes += J, this;
206
+ },
207
+ /**
208
+ * Removes insignificant bits.
209
+ *
210
+ * @example
211
+ *
212
+ * wordArray.clamp();
213
+ */
214
+ clamp: function() {
215
+ var C = this.words, O = this.sigBytes;
216
+ C[O >>> 2] &= 4294967295 << 32 - O % 4 * 8, C.length = T.ceil(O / 4);
217
+ },
218
+ /**
219
+ * Creates a copy of this word array.
220
+ *
221
+ * @return {WordArray} The clone.
222
+ *
223
+ * @example
224
+ *
225
+ * var clone = wordArray.clone();
226
+ */
227
+ clone: function() {
228
+ var C = pe.clone.call(this);
229
+ return C.words = this.words.slice(0), C;
230
+ },
231
+ /**
232
+ * Creates a word array filled with random bytes.
233
+ *
234
+ * @param {number} nBytes The number of random bytes to generate.
235
+ *
236
+ * @return {WordArray} The random word array.
237
+ *
238
+ * @static
239
+ *
240
+ * @example
241
+ *
242
+ * var wordArray = CryptoJS.lib.WordArray.random(16);
243
+ */
244
+ random: function(C) {
245
+ for (var O = [], L = 0; L < C; L += 4)
246
+ O.push(X());
247
+ return new re.init(O, C);
248
+ }
249
+ }), ue = se.enc = {}, G = ue.Hex = {
250
+ /**
251
+ * Converts a word array to a hex string.
252
+ *
253
+ * @param {WordArray} wordArray The word array.
254
+ *
255
+ * @return {string} The hex string.
256
+ *
257
+ * @static
258
+ *
259
+ * @example
260
+ *
261
+ * var hexString = CryptoJS.enc.Hex.stringify(wordArray);
262
+ */
263
+ stringify: function(C) {
264
+ for (var O = C.words, L = C.sigBytes, $ = [], J = 0; J < L; J++) {
265
+ var i = O[J >>> 2] >>> 24 - J % 4 * 8 & 255;
266
+ $.push((i >>> 4).toString(16)), $.push((i & 15).toString(16));
267
+ }
268
+ return $.join("");
269
+ },
270
+ /**
271
+ * Converts a hex string to a word array.
272
+ *
273
+ * @param {string} hexStr The hex string.
274
+ *
275
+ * @return {WordArray} The word array.
276
+ *
277
+ * @static
278
+ *
279
+ * @example
280
+ *
281
+ * var wordArray = CryptoJS.enc.Hex.parse(hexString);
282
+ */
283
+ parse: function(C) {
284
+ for (var O = C.length, L = [], $ = 0; $ < O; $ += 2)
285
+ L[$ >>> 3] |= parseInt(C.substr($, 2), 16) << 24 - $ % 8 * 4;
286
+ return new re.init(L, O / 2);
287
+ }
288
+ }, D = ue.Latin1 = {
289
+ /**
290
+ * Converts a word array to a Latin1 string.
291
+ *
292
+ * @param {WordArray} wordArray The word array.
293
+ *
294
+ * @return {string} The Latin1 string.
295
+ *
296
+ * @static
297
+ *
298
+ * @example
299
+ *
300
+ * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
301
+ */
302
+ stringify: function(C) {
303
+ for (var O = C.words, L = C.sigBytes, $ = [], J = 0; J < L; J++) {
304
+ var i = O[J >>> 2] >>> 24 - J % 4 * 8 & 255;
305
+ $.push(String.fromCharCode(i));
306
+ }
307
+ return $.join("");
308
+ },
309
+ /**
310
+ * Converts a Latin1 string to a word array.
311
+ *
312
+ * @param {string} latin1Str The Latin1 string.
313
+ *
314
+ * @return {WordArray} The word array.
315
+ *
316
+ * @static
317
+ *
318
+ * @example
319
+ *
320
+ * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
321
+ */
322
+ parse: function(C) {
323
+ for (var O = C.length, L = [], $ = 0; $ < O; $++)
324
+ L[$ >>> 2] |= (C.charCodeAt($) & 255) << 24 - $ % 4 * 8;
325
+ return new re.init(L, O);
326
+ }
327
+ }, m = ue.Utf8 = {
328
+ /**
329
+ * Converts a word array to a UTF-8 string.
330
+ *
331
+ * @param {WordArray} wordArray The word array.
332
+ *
333
+ * @return {string} The UTF-8 string.
334
+ *
335
+ * @static
336
+ *
337
+ * @example
338
+ *
339
+ * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
340
+ */
341
+ stringify: function(C) {
342
+ try {
343
+ return decodeURIComponent(escape(D.stringify(C)));
344
+ } catch {
345
+ throw new Error("Malformed UTF-8 data");
346
+ }
347
+ },
348
+ /**
349
+ * Converts a UTF-8 string to a word array.
350
+ *
351
+ * @param {string} utf8Str The UTF-8 string.
352
+ *
353
+ * @return {WordArray} The word array.
354
+ *
355
+ * @static
356
+ *
357
+ * @example
358
+ *
359
+ * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
360
+ */
361
+ parse: function(C) {
362
+ return D.parse(unescape(encodeURIComponent(C)));
363
+ }
364
+ }, U = w.BufferedBlockAlgorithm = pe.extend({
365
+ /**
366
+ * Resets this block algorithm's data buffer to its initial state.
367
+ *
368
+ * @example
369
+ *
370
+ * bufferedBlockAlgorithm.reset();
371
+ */
372
+ reset: function() {
373
+ this._data = new re.init(), this._nDataBytes = 0;
374
+ },
375
+ /**
376
+ * Adds new data to this block algorithm's buffer.
377
+ *
378
+ * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
379
+ *
380
+ * @example
381
+ *
382
+ * bufferedBlockAlgorithm._append('data');
383
+ * bufferedBlockAlgorithm._append(wordArray);
384
+ */
385
+ _append: function(C) {
386
+ typeof C == "string" && (C = m.parse(C)), this._data.concat(C), this._nDataBytes += C.sigBytes;
387
+ },
388
+ /**
389
+ * Processes available data blocks.
390
+ *
391
+ * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
392
+ *
393
+ * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
394
+ *
395
+ * @return {WordArray} The processed data.
396
+ *
397
+ * @example
398
+ *
399
+ * var processedData = bufferedBlockAlgorithm._process();
400
+ * var processedData = bufferedBlockAlgorithm._process(!!'flush');
401
+ */
402
+ _process: function(C) {
403
+ var O, L = this._data, $ = L.words, J = L.sigBytes, i = this.blockSize, he = i * 4, Q = J / he;
404
+ C ? Q = T.ceil(Q) : Q = T.max((Q | 0) - this._minBufferSize, 0);
405
+ var ke = Q * i, Be = T.min(ke * 4, J);
406
+ if (ke) {
407
+ for (var De = 0; De < ke; De += i)
408
+ this._doProcessBlock($, De);
409
+ O = $.splice(0, ke), L.sigBytes -= Be;
410
+ }
411
+ return new re.init(O, Be);
412
+ },
413
+ /**
414
+ * Creates a copy of this object.
415
+ *
416
+ * @return {Object} The clone.
417
+ *
418
+ * @example
419
+ *
420
+ * var clone = bufferedBlockAlgorithm.clone();
421
+ */
422
+ clone: function() {
423
+ var C = pe.clone.call(this);
424
+ return C._data = this._data.clone(), C;
425
+ },
426
+ _minBufferSize: 0
427
+ });
428
+ w.Hasher = U.extend({
429
+ /**
430
+ * Configuration options.
431
+ */
432
+ cfg: pe.extend(),
433
+ /**
434
+ * Initializes a newly created hasher.
435
+ *
436
+ * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
437
+ *
438
+ * @example
439
+ *
440
+ * var hasher = CryptoJS.algo.SHA256.create();
441
+ */
442
+ init: function(C) {
443
+ this.cfg = this.cfg.extend(C), this.reset();
444
+ },
445
+ /**
446
+ * Resets this hasher to its initial state.
447
+ *
448
+ * @example
449
+ *
450
+ * hasher.reset();
451
+ */
452
+ reset: function() {
453
+ U.reset.call(this), this._doReset();
454
+ },
455
+ /**
456
+ * Updates this hasher with a message.
457
+ *
458
+ * @param {WordArray|string} messageUpdate The message to append.
459
+ *
460
+ * @return {Hasher} This hasher.
461
+ *
462
+ * @example
463
+ *
464
+ * hasher.update('message');
465
+ * hasher.update(wordArray);
466
+ */
467
+ update: function(C) {
468
+ return this._append(C), this._process(), this;
469
+ },
470
+ /**
471
+ * Finalizes the hash computation.
472
+ * Note that the finalize operation is effectively a destructive, read-once operation.
473
+ *
474
+ * @param {WordArray|string} messageUpdate (Optional) A final message update.
475
+ *
476
+ * @return {WordArray} The hash.
477
+ *
478
+ * @example
479
+ *
480
+ * var hash = hasher.finalize();
481
+ * var hash = hasher.finalize('message');
482
+ * var hash = hasher.finalize(wordArray);
483
+ */
484
+ finalize: function(C) {
485
+ C && this._append(C);
486
+ var O = this._doFinalize();
487
+ return O;
488
+ },
489
+ blockSize: 16,
490
+ /**
491
+ * Creates a shortcut function to a hasher's object interface.
492
+ *
493
+ * @param {Hasher} hasher The hasher to create a helper for.
494
+ *
495
+ * @return {Function} The shortcut function.
496
+ *
497
+ * @static
498
+ *
499
+ * @example
500
+ *
501
+ * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
502
+ */
503
+ _createHelper: function(C) {
504
+ return function(O, L) {
505
+ return new C.init(L).finalize(O);
506
+ };
507
+ },
508
+ /**
509
+ * Creates a shortcut function to the HMAC's object interface.
510
+ *
511
+ * @param {Hasher} hasher The hasher to use in this HMAC helper.
512
+ *
513
+ * @return {Function} The shortcut function.
514
+ *
515
+ * @static
516
+ *
517
+ * @example
518
+ *
519
+ * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
520
+ */
521
+ _createHmacHelper: function(C) {
522
+ return function(O, L) {
523
+ return new I.HMAC.init(C, L).finalize(O);
524
+ };
525
+ }
526
+ });
527
+ var I = se.algo = {};
528
+ return se;
529
+ }(Math);
530
+ return R;
531
+ });
532
+ }(rn)), rn.exports;
533
+ }
534
+ (function(fe, B) {
535
+ (function(R, T) {
536
+ fe.exports = T(Zr());
537
+ })(dt, function(R) {
538
+ return function(T) {
539
+ var b = R, N = b.lib, X = N.WordArray, W = N.Hasher, se = b.algo, w = [];
540
+ (function() {
541
+ for (var m = 0; m < 64; m++)
542
+ w[m] = T.abs(T.sin(m + 1)) * 4294967296 | 0;
543
+ })();
544
+ var pe = se.MD5 = W.extend({
545
+ _doReset: function() {
546
+ this._hash = new X.init([
547
+ 1732584193,
548
+ 4023233417,
549
+ 2562383102,
550
+ 271733878
551
+ ]);
552
+ },
553
+ _doProcessBlock: function(m, U) {
554
+ for (var I = 0; I < 16; I++) {
555
+ var C = U + I, O = m[C];
556
+ m[C] = (O << 8 | O >>> 24) & 16711935 | (O << 24 | O >>> 8) & 4278255360;
557
+ }
558
+ var L = this._hash.words, $ = m[U + 0], J = m[U + 1], i = m[U + 2], he = m[U + 3], Q = m[U + 4], ke = m[U + 5], Be = m[U + 6], De = m[U + 7], ie = m[U + 8], Oe = m[U + 9], tt = m[U + 10], nt = m[U + 11], xe = m[U + 12], Ue = m[U + 13], je = m[U + 14], Ge = m[U + 15], k = L[0], j = L[1], E = L[2], A = L[3];
559
+ k = re(k, j, E, A, $, 7, w[0]), A = re(A, k, j, E, J, 12, w[1]), E = re(E, A, k, j, i, 17, w[2]), j = re(j, E, A, k, he, 22, w[3]), k = re(k, j, E, A, Q, 7, w[4]), A = re(A, k, j, E, ke, 12, w[5]), E = re(E, A, k, j, Be, 17, w[6]), j = re(j, E, A, k, De, 22, w[7]), k = re(k, j, E, A, ie, 7, w[8]), A = re(A, k, j, E, Oe, 12, w[9]), E = re(E, A, k, j, tt, 17, w[10]), j = re(j, E, A, k, nt, 22, w[11]), k = re(k, j, E, A, xe, 7, w[12]), A = re(A, k, j, E, Ue, 12, w[13]), E = re(E, A, k, j, je, 17, w[14]), j = re(j, E, A, k, Ge, 22, w[15]), k = ue(k, j, E, A, J, 5, w[16]), A = ue(A, k, j, E, Be, 9, w[17]), E = ue(E, A, k, j, nt, 14, w[18]), j = ue(j, E, A, k, $, 20, w[19]), k = ue(k, j, E, A, ke, 5, w[20]), A = ue(A, k, j, E, tt, 9, w[21]), E = ue(E, A, k, j, Ge, 14, w[22]), j = ue(j, E, A, k, Q, 20, w[23]), k = ue(k, j, E, A, Oe, 5, w[24]), A = ue(A, k, j, E, je, 9, w[25]), E = ue(E, A, k, j, he, 14, w[26]), j = ue(j, E, A, k, ie, 20, w[27]), k = ue(k, j, E, A, Ue, 5, w[28]), A = ue(A, k, j, E, i, 9, w[29]), E = ue(E, A, k, j, De, 14, w[30]), j = ue(j, E, A, k, xe, 20, w[31]), k = G(k, j, E, A, ke, 4, w[32]), A = G(A, k, j, E, ie, 11, w[33]), E = G(E, A, k, j, nt, 16, w[34]), j = G(j, E, A, k, je, 23, w[35]), k = G(k, j, E, A, J, 4, w[36]), A = G(A, k, j, E, Q, 11, w[37]), E = G(E, A, k, j, De, 16, w[38]), j = G(j, E, A, k, tt, 23, w[39]), k = G(k, j, E, A, Ue, 4, w[40]), A = G(A, k, j, E, $, 11, w[41]), E = G(E, A, k, j, he, 16, w[42]), j = G(j, E, A, k, Be, 23, w[43]), k = G(k, j, E, A, Oe, 4, w[44]), A = G(A, k, j, E, xe, 11, w[45]), E = G(E, A, k, j, Ge, 16, w[46]), j = G(j, E, A, k, i, 23, w[47]), k = D(k, j, E, A, $, 6, w[48]), A = D(A, k, j, E, De, 10, w[49]), E = D(E, A, k, j, je, 15, w[50]), j = D(j, E, A, k, ke, 21, w[51]), k = D(k, j, E, A, xe, 6, w[52]), A = D(A, k, j, E, he, 10, w[53]), E = D(E, A, k, j, tt, 15, w[54]), j = D(j, E, A, k, J, 21, w[55]), k = D(k, j, E, A, ie, 6, w[56]), A = D(A, k, j, E, Ge, 10, w[57]), E = D(E, A, k, j, Be, 15, w[58]), j = D(j, E, A, k, Ue, 21, w[59]), k = D(k, j, E, A, Q, 6, w[60]), A = D(A, k, j, E, nt, 10, w[61]), E = D(E, A, k, j, i, 15, w[62]), j = D(j, E, A, k, Oe, 21, w[63]), L[0] = L[0] + k | 0, L[1] = L[1] + j | 0, L[2] = L[2] + E | 0, L[3] = L[3] + A | 0;
560
+ },
561
+ _doFinalize: function() {
562
+ var m = this._data, U = m.words, I = this._nDataBytes * 8, C = m.sigBytes * 8;
563
+ U[C >>> 5] |= 128 << 24 - C % 32;
564
+ var O = T.floor(I / 4294967296), L = I;
565
+ U[(C + 64 >>> 9 << 4) + 15] = (O << 8 | O >>> 24) & 16711935 | (O << 24 | O >>> 8) & 4278255360, U[(C + 64 >>> 9 << 4) + 14] = (L << 8 | L >>> 24) & 16711935 | (L << 24 | L >>> 8) & 4278255360, m.sigBytes = (U.length + 1) * 4, this._process();
566
+ for (var $ = this._hash, J = $.words, i = 0; i < 4; i++) {
567
+ var he = J[i];
568
+ J[i] = (he << 8 | he >>> 24) & 16711935 | (he << 24 | he >>> 8) & 4278255360;
569
+ }
570
+ return $;
571
+ },
572
+ clone: function() {
573
+ var m = W.clone.call(this);
574
+ return m._hash = this._hash.clone(), m;
575
+ }
576
+ });
577
+ function re(m, U, I, C, O, L, $) {
578
+ var J = m + (U & I | ~U & C) + O + $;
579
+ return (J << L | J >>> 32 - L) + U;
580
+ }
581
+ function ue(m, U, I, C, O, L, $) {
582
+ var J = m + (U & C | I & ~C) + O + $;
583
+ return (J << L | J >>> 32 - L) + U;
584
+ }
585
+ function G(m, U, I, C, O, L, $) {
586
+ var J = m + (U ^ I ^ C) + O + $;
587
+ return (J << L | J >>> 32 - L) + U;
588
+ }
589
+ function D(m, U, I, C, O, L, $) {
590
+ var J = m + (I ^ (U | ~C)) + O + $;
591
+ return (J << L | J >>> 32 - L) + U;
592
+ }
593
+ b.MD5 = W._createHelper(pe), b.HmacMD5 = W._createHmacHelper(pe);
594
+ }(Math), R.MD5;
595
+ });
596
+ })(zn);
597
+ var ei = zn.exports;
598
+ const Un = /* @__PURE__ */ $n(ei);
599
+ var Vn = { exports: {} };
600
+ /*!
601
+ * jQuery JavaScript Library v3.7.1
602
+ * https://jquery.com/
603
+ *
604
+ * Copyright OpenJS Foundation and other contributors
605
+ * Released under the MIT license
606
+ * https://jquery.org/license
607
+ *
608
+ * Date: 2023-08-28T13:37Z
609
+ */
610
+ (function(fe) {
611
+ (function(B, R) {
612
+ fe.exports = B.document ? R(B, !0) : function(T) {
613
+ if (!T.document)
614
+ throw new Error("jQuery requires a window with a document");
615
+ return R(T);
616
+ };
617
+ })(typeof window < "u" ? window : dt, function(B, R) {
618
+ var T = [], b = Object.getPrototypeOf, N = T.slice, X = T.flat ? function(e) {
619
+ return T.flat.call(e);
620
+ } : function(e) {
621
+ return T.concat.apply([], e);
622
+ }, W = T.push, se = T.indexOf, w = {}, pe = w.toString, re = w.hasOwnProperty, ue = re.toString, G = ue.call(Object), D = {}, m = function(t) {
623
+ return typeof t == "function" && typeof t.nodeType != "number" && typeof t.item != "function";
624
+ }, U = function(t) {
625
+ return t != null && t === t.window;
626
+ }, I = B.document, C = {
627
+ type: !0,
628
+ src: !0,
629
+ nonce: !0,
630
+ noModule: !0
631
+ };
632
+ function O(e, t, n) {
633
+ n = n || I;
634
+ var r, o, s = n.createElement("script");
635
+ if (s.text = e, t)
636
+ for (r in C)
637
+ o = t[r] || t.getAttribute && t.getAttribute(r), o && s.setAttribute(r, o);
638
+ n.head.appendChild(s).parentNode.removeChild(s);
639
+ }
640
+ function L(e) {
641
+ return e == null ? e + "" : typeof e == "object" || typeof e == "function" ? w[pe.call(e)] || "object" : typeof e;
642
+ }
643
+ var $ = "3.7.1", J = /HTML$/i, i = function(e, t) {
644
+ return new i.fn.init(e, t);
645
+ };
646
+ i.fn = i.prototype = {
647
+ // The current version of jQuery being used
648
+ jquery: $,
649
+ constructor: i,
650
+ // The default length of a jQuery object is 0
651
+ length: 0,
652
+ toArray: function() {
653
+ return N.call(this);
654
+ },
655
+ // Get the Nth element in the matched element set OR
656
+ // Get the whole matched element set as a clean array
657
+ get: function(e) {
658
+ return e == null ? N.call(this) : e < 0 ? this[e + this.length] : this[e];
659
+ },
660
+ // Take an array of elements and push it onto the stack
661
+ // (returning the new matched element set)
662
+ pushStack: function(e) {
663
+ var t = i.merge(this.constructor(), e);
664
+ return t.prevObject = this, t;
665
+ },
666
+ // Execute a callback for every element in the matched set.
667
+ each: function(e) {
668
+ return i.each(this, e);
669
+ },
670
+ map: function(e) {
671
+ return this.pushStack(i.map(this, function(t, n) {
672
+ return e.call(t, n, t);
673
+ }));
674
+ },
675
+ slice: function() {
676
+ return this.pushStack(N.apply(this, arguments));
677
+ },
678
+ first: function() {
679
+ return this.eq(0);
680
+ },
681
+ last: function() {
682
+ return this.eq(-1);
683
+ },
684
+ even: function() {
685
+ return this.pushStack(i.grep(this, function(e, t) {
686
+ return (t + 1) % 2;
687
+ }));
688
+ },
689
+ odd: function() {
690
+ return this.pushStack(i.grep(this, function(e, t) {
691
+ return t % 2;
692
+ }));
693
+ },
694
+ eq: function(e) {
695
+ var t = this.length, n = +e + (e < 0 ? t : 0);
696
+ return this.pushStack(n >= 0 && n < t ? [this[n]] : []);
697
+ },
698
+ end: function() {
699
+ return this.prevObject || this.constructor();
700
+ },
701
+ // For internal use only.
702
+ // Behaves like an Array's method, not like a jQuery method.
703
+ push: W,
704
+ sort: T.sort,
705
+ splice: T.splice
706
+ }, i.extend = i.fn.extend = function() {
707
+ var e, t, n, r, o, s, u = arguments[0] || {}, c = 1, f = arguments.length, d = !1;
708
+ for (typeof u == "boolean" && (d = u, u = arguments[c] || {}, c++), typeof u != "object" && !m(u) && (u = {}), c === f && (u = this, c--); c < f; c++)
709
+ if ((e = arguments[c]) != null)
710
+ for (t in e)
711
+ r = e[t], !(t === "__proto__" || u === r) && (d && r && (i.isPlainObject(r) || (o = Array.isArray(r))) ? (n = u[t], o && !Array.isArray(n) ? s = [] : !o && !i.isPlainObject(n) ? s = {} : s = n, o = !1, u[t] = i.extend(d, s, r)) : r !== void 0 && (u[t] = r));
712
+ return u;
713
+ }, i.extend({
714
+ // Unique for each copy of jQuery on the page
715
+ expando: "jQuery" + ($ + Math.random()).replace(/\D/g, ""),
716
+ // Assume jQuery is ready without the ready module
717
+ isReady: !0,
718
+ error: function(e) {
719
+ throw new Error(e);
720
+ },
721
+ noop: function() {
722
+ },
723
+ isPlainObject: function(e) {
724
+ var t, n;
725
+ return !e || pe.call(e) !== "[object Object]" ? !1 : (t = b(e), t ? (n = re.call(t, "constructor") && t.constructor, typeof n == "function" && ue.call(n) === G) : !0);
726
+ },
727
+ isEmptyObject: function(e) {
728
+ var t;
729
+ for (t in e)
730
+ return !1;
731
+ return !0;
732
+ },
733
+ // Evaluates a script in a provided context; falls back to the global one
734
+ // if not specified.
735
+ globalEval: function(e, t, n) {
736
+ O(e, { nonce: t && t.nonce }, n);
737
+ },
738
+ each: function(e, t) {
739
+ var n, r = 0;
740
+ if (he(e))
741
+ for (n = e.length; r < n && t.call(e[r], r, e[r]) !== !1; r++)
742
+ ;
743
+ else
744
+ for (r in e)
745
+ if (t.call(e[r], r, e[r]) === !1)
746
+ break;
747
+ return e;
748
+ },
749
+ // Retrieve the text value of an array of DOM nodes
750
+ text: function(e) {
751
+ var t, n = "", r = 0, o = e.nodeType;
752
+ if (!o)
753
+ for (; t = e[r++]; )
754
+ n += i.text(t);
755
+ return o === 1 || o === 11 ? e.textContent : o === 9 ? e.documentElement.textContent : o === 3 || o === 4 ? e.nodeValue : n;
756
+ },
757
+ // results is for internal usage only
758
+ makeArray: function(e, t) {
759
+ var n = t || [];
760
+ return e != null && (he(Object(e)) ? i.merge(
761
+ n,
762
+ typeof e == "string" ? [e] : e
763
+ ) : W.call(n, e)), n;
764
+ },
765
+ inArray: function(e, t, n) {
766
+ return t == null ? -1 : se.call(t, e, n);
767
+ },
768
+ isXMLDoc: function(e) {
769
+ var t = e && e.namespaceURI, n = e && (e.ownerDocument || e).documentElement;
770
+ return !J.test(t || n && n.nodeName || "HTML");
771
+ },
772
+ // Support: Android <=4.0 only, PhantomJS 1 only
773
+ // push.apply(_, arraylike) throws on ancient WebKit
774
+ merge: function(e, t) {
775
+ for (var n = +t.length, r = 0, o = e.length; r < n; r++)
776
+ e[o++] = t[r];
777
+ return e.length = o, e;
778
+ },
779
+ grep: function(e, t, n) {
780
+ for (var r, o = [], s = 0, u = e.length, c = !n; s < u; s++)
781
+ r = !t(e[s], s), r !== c && o.push(e[s]);
782
+ return o;
783
+ },
784
+ // arg is for internal usage only
785
+ map: function(e, t, n) {
786
+ var r, o, s = 0, u = [];
787
+ if (he(e))
788
+ for (r = e.length; s < r; s++)
789
+ o = t(e[s], s, n), o != null && u.push(o);
790
+ else
791
+ for (s in e)
792
+ o = t(e[s], s, n), o != null && u.push(o);
793
+ return X(u);
794
+ },
795
+ // A global GUID counter for objects
796
+ guid: 1,
797
+ // jQuery.support is not used in Core but other projects attach their
798
+ // properties to it so it needs to exist.
799
+ support: D
800
+ }), typeof Symbol == "function" && (i.fn[Symbol.iterator] = T[Symbol.iterator]), i.each(
801
+ "Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),
802
+ function(e, t) {
803
+ w["[object " + t + "]"] = t.toLowerCase();
804
+ }
805
+ );
806
+ function he(e) {
807
+ var t = !!e && "length" in e && e.length, n = L(e);
808
+ return m(e) || U(e) ? !1 : n === "array" || t === 0 || typeof t == "number" && t > 0 && t - 1 in e;
809
+ }
810
+ function Q(e, t) {
811
+ return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
812
+ }
813
+ var ke = T.pop, Be = T.sort, De = T.splice, ie = "[\\x20\\t\\r\\n\\f]", Oe = new RegExp(
814
+ "^" + ie + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ie + "+$",
815
+ "g"
816
+ );
817
+ i.contains = function(e, t) {
818
+ var n = t && t.parentNode;
819
+ return e === n || !!(n && n.nodeType === 1 && // Support: IE 9 - 11+
820
+ // IE doesn't have `contains` on SVG.
821
+ (e.contains ? e.contains(n) : e.compareDocumentPosition && e.compareDocumentPosition(n) & 16));
822
+ };
823
+ var tt = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
824
+ function nt(e, t) {
825
+ return t ? e === "\0" ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e;
826
+ }
827
+ i.escapeSelector = function(e) {
828
+ return (e + "").replace(tt, nt);
829
+ };
830
+ var xe = I, Ue = W;
831
+ (function() {
832
+ var e, t, n, r, o, s = Ue, u, c, f, d, y, x = i.expando, h = 0, S = 0, V = Dt(), ne = Dt(), Y = Dt(), ge = Dt(), de = function(a, l) {
833
+ return a === l && (o = !0), 0;
834
+ }, qe = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", Ie = "(?:\\\\[\\da-fA-F]{1,6}" + ie + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", te = "\\[" + ie + "*(" + Ie + ")(?:" + ie + // Operator (capture 2)
835
+ "*([*^$|!~]?=)" + ie + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
836
+ `*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(` + Ie + "))|)" + ie + "*\\]", Ze = ":(" + Ie + `)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|` + te + ")*)|.*)\\)|)", oe = new RegExp(ie + "+", "g"), le = new RegExp("^" + ie + "*," + ie + "*"), Ct = new RegExp("^" + ie + "*([>+~]|" + ie + ")" + ie + "*"), Qt = new RegExp(ie + "|>"), Re = new RegExp(Ze), Tt = new RegExp("^" + Ie + "$"), Me = {
837
+ ID: new RegExp("^#(" + Ie + ")"),
838
+ CLASS: new RegExp("^\\.(" + Ie + ")"),
839
+ TAG: new RegExp("^(" + Ie + "|[*])"),
840
+ ATTR: new RegExp("^" + te),
841
+ PSEUDO: new RegExp("^" + Ze),
842
+ CHILD: new RegExp(
843
+ "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ie + "*(even|odd|(([+-]|)(\\d*)n|)" + ie + "*(?:([+-]|)" + ie + "*(\\d+)|))" + ie + "*\\)|)",
844
+ "i"
845
+ ),
846
+ bool: new RegExp("^(?:" + qe + ")$", "i"),
847
+ // For use in libraries implementing .is()
848
+ // We use this for POS matching in `select`
849
+ needsContext: new RegExp("^" + ie + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ie + "*((?:-\\d)?\\d*)" + ie + "*\\)|)(?=[^-]|$)", "i")
850
+ }, Ve = /^(?:input|select|textarea|button)$/i, Ke = /^h\d$/i, Ne = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, Yt = /[+~]/, $e = new RegExp("\\\\[\\da-fA-F]{1,6}" + ie + "?|\\\\([^\\r\\n\\f])", "g"), ze = function(a, l) {
851
+ var p = "0x" + a.slice(1) - 65536;
852
+ return l || (p < 0 ? String.fromCharCode(p + 65536) : String.fromCharCode(p >> 10 | 55296, p & 1023 | 56320));
853
+ }, Fr = function() {
854
+ Xe();
855
+ }, Wr = Lt(
856
+ function(a) {
857
+ return a.disabled === !0 && Q(a, "fieldset");
858
+ },
859
+ { dir: "parentNode", next: "legend" }
860
+ );
861
+ function $r() {
862
+ try {
863
+ return u.activeElement;
864
+ } catch {
865
+ }
866
+ }
867
+ try {
868
+ s.apply(
869
+ T = N.call(xe.childNodes),
870
+ xe.childNodes
871
+ ), T[xe.childNodes.length].nodeType;
872
+ } catch {
873
+ s = {
874
+ apply: function(l, p) {
875
+ Ue.apply(l, N.call(p));
876
+ },
877
+ call: function(l) {
878
+ Ue.apply(l, N.call(arguments, 1));
879
+ }
880
+ };
881
+ }
882
+ function ae(a, l, p, g) {
883
+ var v, _, H, M, q, Z, z, K = l && l.ownerDocument, ee = l ? l.nodeType : 9;
884
+ if (p = p || [], typeof a != "string" || !a || ee !== 1 && ee !== 9 && ee !== 11)
885
+ return p;
886
+ if (!g && (Xe(l), l = l || u, f)) {
887
+ if (ee !== 11 && (q = Ne.exec(a)))
888
+ if (v = q[1]) {
889
+ if (ee === 9)
890
+ if (H = l.getElementById(v)) {
891
+ if (H.id === v)
892
+ return s.call(p, H), p;
893
+ } else
894
+ return p;
895
+ else if (K && (H = K.getElementById(v)) && ae.contains(l, H) && H.id === v)
896
+ return s.call(p, H), p;
897
+ } else {
898
+ if (q[2])
899
+ return s.apply(p, l.getElementsByTagName(a)), p;
900
+ if ((v = q[3]) && l.getElementsByClassName)
901
+ return s.apply(p, l.getElementsByClassName(v)), p;
902
+ }
903
+ if (!ge[a + " "] && (!d || !d.test(a))) {
904
+ if (z = a, K = l, ee === 1 && (Qt.test(a) || Ct.test(a))) {
905
+ for (K = Yt.test(a) && Jt(l.parentNode) || l, (K != l || !D.scope) && ((M = l.getAttribute("id")) ? M = i.escapeSelector(M) : l.setAttribute("id", M = x)), Z = wt(a), _ = Z.length; _--; )
906
+ Z[_] = (M ? "#" + M : ":scope") + " " + Ot(Z[_]);
907
+ z = Z.join(",");
908
+ }
909
+ try {
910
+ return s.apply(
911
+ p,
912
+ K.querySelectorAll(z)
913
+ ), p;
914
+ } catch {
915
+ ge(a, !0);
916
+ } finally {
917
+ M === x && l.removeAttribute("id");
918
+ }
919
+ }
920
+ }
921
+ return Bn(a.replace(Oe, "$1"), l, p, g);
922
+ }
923
+ function Dt() {
924
+ var a = [];
925
+ function l(p, g) {
926
+ return a.push(p + " ") > t.cacheLength && delete l[a.shift()], l[p + " "] = g;
927
+ }
928
+ return l;
929
+ }
930
+ function _e(a) {
931
+ return a[x] = !0, a;
932
+ }
933
+ function ct(a) {
934
+ var l = u.createElement("fieldset");
935
+ try {
936
+ return !!a(l);
937
+ } catch {
938
+ return !1;
939
+ } finally {
940
+ l.parentNode && l.parentNode.removeChild(l), l = null;
941
+ }
942
+ }
943
+ function zr(a) {
944
+ return function(l) {
945
+ return Q(l, "input") && l.type === a;
946
+ };
947
+ }
948
+ function Ur(a) {
949
+ return function(l) {
950
+ return (Q(l, "input") || Q(l, "button")) && l.type === a;
951
+ };
952
+ }
953
+ function Mn(a) {
954
+ return function(l) {
955
+ return "form" in l ? l.parentNode && l.disabled === !1 ? "label" in l ? "label" in l.parentNode ? l.parentNode.disabled === a : l.disabled === a : l.isDisabled === a || // Where there is no isDisabled, check manually
956
+ l.isDisabled !== !a && Wr(l) === a : l.disabled === a : "label" in l ? l.disabled === a : !1;
957
+ };
958
+ }
959
+ function et(a) {
960
+ return _e(function(l) {
961
+ return l = +l, _e(function(p, g) {
962
+ for (var v, _ = a([], p.length, l), H = _.length; H--; )
963
+ p[v = _[H]] && (p[v] = !(g[v] = p[v]));
964
+ });
965
+ });
966
+ }
967
+ function Jt(a) {
968
+ return a && typeof a.getElementsByTagName < "u" && a;
969
+ }
970
+ function Xe(a) {
971
+ var l, p = a ? a.ownerDocument || a : xe;
972
+ return p == u || p.nodeType !== 9 || !p.documentElement || (u = p, c = u.documentElement, f = !i.isXMLDoc(u), y = c.matches || c.webkitMatchesSelector || c.msMatchesSelector, c.msMatchesSelector && // Support: IE 11+, Edge 17 - 18+
973
+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
974
+ // two documents; shallow comparisons work.
975
+ // eslint-disable-next-line eqeqeq
976
+ xe != u && (l = u.defaultView) && l.top !== l && l.addEventListener("unload", Fr), D.getById = ct(function(g) {
977
+ return c.appendChild(g).id = i.expando, !u.getElementsByName || !u.getElementsByName(i.expando).length;
978
+ }), D.disconnectedMatch = ct(function(g) {
979
+ return y.call(g, "*");
980
+ }), D.scope = ct(function() {
981
+ return u.querySelectorAll(":scope");
982
+ }), D.cssHas = ct(function() {
983
+ try {
984
+ return u.querySelector(":has(*,:jqfake)"), !1;
985
+ } catch {
986
+ return !0;
987
+ }
988
+ }), D.getById ? (t.filter.ID = function(g) {
989
+ var v = g.replace($e, ze);
990
+ return function(_) {
991
+ return _.getAttribute("id") === v;
992
+ };
993
+ }, t.find.ID = function(g, v) {
994
+ if (typeof v.getElementById < "u" && f) {
995
+ var _ = v.getElementById(g);
996
+ return _ ? [_] : [];
997
+ }
998
+ }) : (t.filter.ID = function(g) {
999
+ var v = g.replace($e, ze);
1000
+ return function(_) {
1001
+ var H = typeof _.getAttributeNode < "u" && _.getAttributeNode("id");
1002
+ return H && H.value === v;
1003
+ };
1004
+ }, t.find.ID = function(g, v) {
1005
+ if (typeof v.getElementById < "u" && f) {
1006
+ var _, H, M, q = v.getElementById(g);
1007
+ if (q) {
1008
+ if (_ = q.getAttributeNode("id"), _ && _.value === g)
1009
+ return [q];
1010
+ for (M = v.getElementsByName(g), H = 0; q = M[H++]; )
1011
+ if (_ = q.getAttributeNode("id"), _ && _.value === g)
1012
+ return [q];
1013
+ }
1014
+ return [];
1015
+ }
1016
+ }), t.find.TAG = function(g, v) {
1017
+ return typeof v.getElementsByTagName < "u" ? v.getElementsByTagName(g) : v.querySelectorAll(g);
1018
+ }, t.find.CLASS = function(g, v) {
1019
+ if (typeof v.getElementsByClassName < "u" && f)
1020
+ return v.getElementsByClassName(g);
1021
+ }, d = [], ct(function(g) {
1022
+ var v;
1023
+ c.appendChild(g).innerHTML = "<a id='" + x + "' href='' disabled='disabled'></a><select id='" + x + "-\r\\' disabled='disabled'><option selected=''></option></select>", g.querySelectorAll("[selected]").length || d.push("\\[" + ie + "*(?:value|" + qe + ")"), g.querySelectorAll("[id~=" + x + "-]").length || d.push("~="), g.querySelectorAll("a#" + x + "+*").length || d.push(".#.+[+~]"), g.querySelectorAll(":checked").length || d.push(":checked"), v = u.createElement("input"), v.setAttribute("type", "hidden"), g.appendChild(v).setAttribute("name", "D"), c.appendChild(g).disabled = !0, g.querySelectorAll(":disabled").length !== 2 && d.push(":enabled", ":disabled"), v = u.createElement("input"), v.setAttribute("name", ""), g.appendChild(v), g.querySelectorAll("[name='']").length || d.push("\\[" + ie + "*name" + ie + "*=" + ie + `*(?:''|"")`);
1024
+ }), D.cssHas || d.push(":has"), d = d.length && new RegExp(d.join("|")), de = function(g, v) {
1025
+ if (g === v)
1026
+ return o = !0, 0;
1027
+ var _ = !g.compareDocumentPosition - !v.compareDocumentPosition;
1028
+ return _ || (_ = (g.ownerDocument || g) == (v.ownerDocument || v) ? g.compareDocumentPosition(v) : (
1029
+ // Otherwise we know they are disconnected
1030
+ 1
1031
+ ), _ & 1 || !D.sortDetached && v.compareDocumentPosition(g) === _ ? g === u || g.ownerDocument == xe && ae.contains(xe, g) ? -1 : v === u || v.ownerDocument == xe && ae.contains(xe, v) ? 1 : r ? se.call(r, g) - se.call(r, v) : 0 : _ & 4 ? -1 : 1);
1032
+ }), u;
1033
+ }
1034
+ ae.matches = function(a, l) {
1035
+ return ae(a, null, null, l);
1036
+ }, ae.matchesSelector = function(a, l) {
1037
+ if (Xe(a), f && !ge[l + " "] && (!d || !d.test(l)))
1038
+ try {
1039
+ var p = y.call(a, l);
1040
+ if (p || D.disconnectedMatch || // As well, disconnected nodes are said to be in a document
1041
+ // fragment in IE 9
1042
+ a.document && a.document.nodeType !== 11)
1043
+ return p;
1044
+ } catch {
1045
+ ge(l, !0);
1046
+ }
1047
+ return ae(l, u, null, [a]).length > 0;
1048
+ }, ae.contains = function(a, l) {
1049
+ return (a.ownerDocument || a) != u && Xe(a), i.contains(a, l);
1050
+ }, ae.attr = function(a, l) {
1051
+ (a.ownerDocument || a) != u && Xe(a);
1052
+ var p = t.attrHandle[l.toLowerCase()], g = p && re.call(t.attrHandle, l.toLowerCase()) ? p(a, l, !f) : void 0;
1053
+ return g !== void 0 ? g : a.getAttribute(l);
1054
+ }, ae.error = function(a) {
1055
+ throw new Error("Syntax error, unrecognized expression: " + a);
1056
+ }, i.uniqueSort = function(a) {
1057
+ var l, p = [], g = 0, v = 0;
1058
+ if (o = !D.sortStable, r = !D.sortStable && N.call(a, 0), Be.call(a, de), o) {
1059
+ for (; l = a[v++]; )
1060
+ l === a[v] && (g = p.push(v));
1061
+ for (; g--; )
1062
+ De.call(a, p[g], 1);
1063
+ }
1064
+ return r = null, a;
1065
+ }, i.fn.uniqueSort = function() {
1066
+ return this.pushStack(i.uniqueSort(N.apply(this)));
1067
+ }, t = i.expr = {
1068
+ // Can be adjusted by the user
1069
+ cacheLength: 50,
1070
+ createPseudo: _e,
1071
+ match: Me,
1072
+ attrHandle: {},
1073
+ find: {},
1074
+ relative: {
1075
+ ">": { dir: "parentNode", first: !0 },
1076
+ " ": { dir: "parentNode" },
1077
+ "+": { dir: "previousSibling", first: !0 },
1078
+ "~": { dir: "previousSibling" }
1079
+ },
1080
+ preFilter: {
1081
+ ATTR: function(a) {
1082
+ return a[1] = a[1].replace($e, ze), a[3] = (a[3] || a[4] || a[5] || "").replace($e, ze), a[2] === "~=" && (a[3] = " " + a[3] + " "), a.slice(0, 4);
1083
+ },
1084
+ CHILD: function(a) {
1085
+ return a[1] = a[1].toLowerCase(), a[1].slice(0, 3) === "nth" ? (a[3] || ae.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * (a[3] === "even" || a[3] === "odd")), a[5] = +(a[7] + a[8] || a[3] === "odd")) : a[3] && ae.error(a[0]), a;
1086
+ },
1087
+ PSEUDO: function(a) {
1088
+ var l, p = !a[6] && a[2];
1089
+ return Me.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : p && Re.test(p) && // Get excess from tokenize (recursively)
1090
+ (l = wt(p, !0)) && // advance to the next closing parenthesis
1091
+ (l = p.indexOf(")", p.length - l) - p.length) && (a[0] = a[0].slice(0, l), a[2] = p.slice(0, l)), a.slice(0, 3));
1092
+ }
1093
+ },
1094
+ filter: {
1095
+ TAG: function(a) {
1096
+ var l = a.replace($e, ze).toLowerCase();
1097
+ return a === "*" ? function() {
1098
+ return !0;
1099
+ } : function(p) {
1100
+ return Q(p, l);
1101
+ };
1102
+ },
1103
+ CLASS: function(a) {
1104
+ var l = V[a + " "];
1105
+ return l || (l = new RegExp("(^|" + ie + ")" + a + "(" + ie + "|$)")) && V(a, function(p) {
1106
+ return l.test(
1107
+ typeof p.className == "string" && p.className || typeof p.getAttribute < "u" && p.getAttribute("class") || ""
1108
+ );
1109
+ });
1110
+ },
1111
+ ATTR: function(a, l, p) {
1112
+ return function(g) {
1113
+ var v = ae.attr(g, a);
1114
+ return v == null ? l === "!=" : l ? (v += "", l === "=" ? v === p : l === "!=" ? v !== p : l === "^=" ? p && v.indexOf(p) === 0 : l === "*=" ? p && v.indexOf(p) > -1 : l === "$=" ? p && v.slice(-p.length) === p : l === "~=" ? (" " + v.replace(oe, " ") + " ").indexOf(p) > -1 : l === "|=" ? v === p || v.slice(0, p.length + 1) === p + "-" : !1) : !0;
1115
+ };
1116
+ },
1117
+ CHILD: function(a, l, p, g, v) {
1118
+ var _ = a.slice(0, 3) !== "nth", H = a.slice(-4) !== "last", M = l === "of-type";
1119
+ return g === 1 && v === 0 ? (
1120
+ // Shortcut for :nth-*(n)
1121
+ function(q) {
1122
+ return !!q.parentNode;
1123
+ }
1124
+ ) : function(q, Z, z) {
1125
+ var K, ee, F, ce, Te, ye = _ !== H ? "nextSibling" : "previousSibling", Ee = q.parentNode, Pe = M && q.nodeName.toLowerCase(), lt = !z && !M, ve = !1;
1126
+ if (Ee) {
1127
+ if (_) {
1128
+ for (; ye; ) {
1129
+ for (F = q; F = F[ye]; )
1130
+ if (M ? Q(F, Pe) : F.nodeType === 1)
1131
+ return !1;
1132
+ Te = ye = a === "only" && !Te && "nextSibling";
1133
+ }
1134
+ return !0;
1135
+ }
1136
+ if (Te = [H ? Ee.firstChild : Ee.lastChild], H && lt) {
1137
+ for (ee = Ee[x] || (Ee[x] = {}), K = ee[a] || [], ce = K[0] === h && K[1], ve = ce && K[2], F = ce && Ee.childNodes[ce]; F = ++ce && F && F[ye] || // Fallback to seeking `elem` from the start
1138
+ (ve = ce = 0) || Te.pop(); )
1139
+ if (F.nodeType === 1 && ++ve && F === q) {
1140
+ ee[a] = [h, ce, ve];
1141
+ break;
1142
+ }
1143
+ } else if (lt && (ee = q[x] || (q[x] = {}), K = ee[a] || [], ce = K[0] === h && K[1], ve = ce), ve === !1)
1144
+ for (; (F = ++ce && F && F[ye] || (ve = ce = 0) || Te.pop()) && !((M ? Q(F, Pe) : F.nodeType === 1) && ++ve && (lt && (ee = F[x] || (F[x] = {}), ee[a] = [h, ve]), F === q)); )
1145
+ ;
1146
+ return ve -= v, ve === g || ve % g === 0 && ve / g >= 0;
1147
+ }
1148
+ };
1149
+ },
1150
+ PSEUDO: function(a, l) {
1151
+ var p, g = t.pseudos[a] || t.setFilters[a.toLowerCase()] || ae.error("unsupported pseudo: " + a);
1152
+ return g[x] ? g(l) : g.length > 1 ? (p = [a, a, "", l], t.setFilters.hasOwnProperty(a.toLowerCase()) ? _e(function(v, _) {
1153
+ for (var H, M = g(v, l), q = M.length; q--; )
1154
+ H = se.call(v, M[q]), v[H] = !(_[H] = M[q]);
1155
+ }) : function(v) {
1156
+ return g(v, 0, p);
1157
+ }) : g;
1158
+ }
1159
+ },
1160
+ pseudos: {
1161
+ // Potentially complex pseudos
1162
+ not: _e(function(a) {
1163
+ var l = [], p = [], g = nn(a.replace(Oe, "$1"));
1164
+ return g[x] ? _e(function(v, _, H, M) {
1165
+ for (var q, Z = g(v, null, M, []), z = v.length; z--; )
1166
+ (q = Z[z]) && (v[z] = !(_[z] = q));
1167
+ }) : function(v, _, H) {
1168
+ return l[0] = v, g(l, null, H, p), l[0] = null, !p.pop();
1169
+ };
1170
+ }),
1171
+ has: _e(function(a) {
1172
+ return function(l) {
1173
+ return ae(a, l).length > 0;
1174
+ };
1175
+ }),
1176
+ contains: _e(function(a) {
1177
+ return a = a.replace($e, ze), function(l) {
1178
+ return (l.textContent || i.text(l)).indexOf(a) > -1;
1179
+ };
1180
+ }),
1181
+ // "Whether an element is represented by a :lang() selector
1182
+ // is based solely on the element's language value
1183
+ // being equal to the identifier C,
1184
+ // or beginning with the identifier C immediately followed by "-".
1185
+ // The matching of C against the element's language value is performed case-insensitively.
1186
+ // The identifier C does not have to be a valid language name."
1187
+ // https://www.w3.org/TR/selectors/#lang-pseudo
1188
+ lang: _e(function(a) {
1189
+ return Tt.test(a || "") || ae.error("unsupported lang: " + a), a = a.replace($e, ze).toLowerCase(), function(l) {
1190
+ var p;
1191
+ do
1192
+ if (p = f ? l.lang : l.getAttribute("xml:lang") || l.getAttribute("lang"))
1193
+ return p = p.toLowerCase(), p === a || p.indexOf(a + "-") === 0;
1194
+ while ((l = l.parentNode) && l.nodeType === 1);
1195
+ return !1;
1196
+ };
1197
+ }),
1198
+ // Miscellaneous
1199
+ target: function(a) {
1200
+ var l = B.location && B.location.hash;
1201
+ return l && l.slice(1) === a.id;
1202
+ },
1203
+ root: function(a) {
1204
+ return a === c;
1205
+ },
1206
+ focus: function(a) {
1207
+ return a === $r() && u.hasFocus() && !!(a.type || a.href || ~a.tabIndex);
1208
+ },
1209
+ // Boolean properties
1210
+ enabled: Mn(!1),
1211
+ disabled: Mn(!0),
1212
+ checked: function(a) {
1213
+ return Q(a, "input") && !!a.checked || Q(a, "option") && !!a.selected;
1214
+ },
1215
+ selected: function(a) {
1216
+ return a.parentNode && a.parentNode.selectedIndex, a.selected === !0;
1217
+ },
1218
+ // Contents
1219
+ empty: function(a) {
1220
+ for (a = a.firstChild; a; a = a.nextSibling)
1221
+ if (a.nodeType < 6)
1222
+ return !1;
1223
+ return !0;
1224
+ },
1225
+ parent: function(a) {
1226
+ return !t.pseudos.empty(a);
1227
+ },
1228
+ // Element/input types
1229
+ header: function(a) {
1230
+ return Ke.test(a.nodeName);
1231
+ },
1232
+ input: function(a) {
1233
+ return Ve.test(a.nodeName);
1234
+ },
1235
+ button: function(a) {
1236
+ return Q(a, "input") && a.type === "button" || Q(a, "button");
1237
+ },
1238
+ text: function(a) {
1239
+ var l;
1240
+ return Q(a, "input") && a.type === "text" && // Support: IE <10 only
1241
+ // New HTML5 attribute values (e.g., "search") appear
1242
+ // with elem.type === "text"
1243
+ ((l = a.getAttribute("type")) == null || l.toLowerCase() === "text");
1244
+ },
1245
+ // Position-in-collection
1246
+ first: et(function() {
1247
+ return [0];
1248
+ }),
1249
+ last: et(function(a, l) {
1250
+ return [l - 1];
1251
+ }),
1252
+ eq: et(function(a, l, p) {
1253
+ return [p < 0 ? p + l : p];
1254
+ }),
1255
+ even: et(function(a, l) {
1256
+ for (var p = 0; p < l; p += 2)
1257
+ a.push(p);
1258
+ return a;
1259
+ }),
1260
+ odd: et(function(a, l) {
1261
+ for (var p = 1; p < l; p += 2)
1262
+ a.push(p);
1263
+ return a;
1264
+ }),
1265
+ lt: et(function(a, l, p) {
1266
+ var g;
1267
+ for (p < 0 ? g = p + l : p > l ? g = l : g = p; --g >= 0; )
1268
+ a.push(g);
1269
+ return a;
1270
+ }),
1271
+ gt: et(function(a, l, p) {
1272
+ for (var g = p < 0 ? p + l : p; ++g < l; )
1273
+ a.push(g);
1274
+ return a;
1275
+ })
1276
+ }
1277
+ }, t.pseudos.nth = t.pseudos.eq;
1278
+ for (e in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })
1279
+ t.pseudos[e] = zr(e);
1280
+ for (e in { submit: !0, reset: !0 })
1281
+ t.pseudos[e] = Ur(e);
1282
+ function Pn() {
1283
+ }
1284
+ Pn.prototype = t.filters = t.pseudos, t.setFilters = new Pn();
1285
+ function wt(a, l) {
1286
+ var p, g, v, _, H, M, q, Z = ne[a + " "];
1287
+ if (Z)
1288
+ return l ? 0 : Z.slice(0);
1289
+ for (H = a, M = [], q = t.preFilter; H; ) {
1290
+ (!p || (g = le.exec(H))) && (g && (H = H.slice(g[0].length) || H), M.push(v = [])), p = !1, (g = Ct.exec(H)) && (p = g.shift(), v.push({
1291
+ value: p,
1292
+ // Cast descendant combinators to space
1293
+ type: g[0].replace(Oe, " ")
1294
+ }), H = H.slice(p.length));
1295
+ for (_ in t.filter)
1296
+ (g = Me[_].exec(H)) && (!q[_] || (g = q[_](g))) && (p = g.shift(), v.push({
1297
+ value: p,
1298
+ type: _,
1299
+ matches: g
1300
+ }), H = H.slice(p.length));
1301
+ if (!p)
1302
+ break;
1303
+ }
1304
+ return l ? H.length : H ? ae.error(a) : (
1305
+ // Cache the tokens
1306
+ ne(a, M).slice(0)
1307
+ );
1308
+ }
1309
+ function Ot(a) {
1310
+ for (var l = 0, p = a.length, g = ""; l < p; l++)
1311
+ g += a[l].value;
1312
+ return g;
1313
+ }
1314
+ function Lt(a, l, p) {
1315
+ var g = l.dir, v = l.next, _ = v || g, H = p && _ === "parentNode", M = S++;
1316
+ return l.first ? (
1317
+ // Check against closest ancestor/preceding element
1318
+ function(q, Z, z) {
1319
+ for (; q = q[g]; )
1320
+ if (q.nodeType === 1 || H)
1321
+ return a(q, Z, z);
1322
+ return !1;
1323
+ }
1324
+ ) : (
1325
+ // Check against all ancestor/preceding elements
1326
+ function(q, Z, z) {
1327
+ var K, ee, F = [h, M];
1328
+ if (z) {
1329
+ for (; q = q[g]; )
1330
+ if ((q.nodeType === 1 || H) && a(q, Z, z))
1331
+ return !0;
1332
+ } else
1333
+ for (; q = q[g]; )
1334
+ if (q.nodeType === 1 || H)
1335
+ if (ee = q[x] || (q[x] = {}), v && Q(q, v))
1336
+ q = q[g] || q;
1337
+ else {
1338
+ if ((K = ee[_]) && K[0] === h && K[1] === M)
1339
+ return F[2] = K[2];
1340
+ if (ee[_] = F, F[2] = a(q, Z, z))
1341
+ return !0;
1342
+ }
1343
+ return !1;
1344
+ }
1345
+ );
1346
+ }
1347
+ function Zt(a) {
1348
+ return a.length > 1 ? function(l, p, g) {
1349
+ for (var v = a.length; v--; )
1350
+ if (!a[v](l, p, g))
1351
+ return !1;
1352
+ return !0;
1353
+ } : a[0];
1354
+ }
1355
+ function Vr(a, l, p) {
1356
+ for (var g = 0, v = l.length; g < v; g++)
1357
+ ae(a, l[g], p);
1358
+ return p;
1359
+ }
1360
+ function Ht(a, l, p, g, v) {
1361
+ for (var _, H = [], M = 0, q = a.length, Z = l != null; M < q; M++)
1362
+ (_ = a[M]) && (!p || p(_, g, v)) && (H.push(_), Z && l.push(M));
1363
+ return H;
1364
+ }
1365
+ function en(a, l, p, g, v, _) {
1366
+ return g && !g[x] && (g = en(g)), v && !v[x] && (v = en(v, _)), _e(function(H, M, q, Z) {
1367
+ var z, K, ee, F, ce = [], Te = [], ye = M.length, Ee = H || Vr(
1368
+ l || "*",
1369
+ q.nodeType ? [q] : q,
1370
+ []
1371
+ ), Pe = a && (H || !l) ? Ht(Ee, ce, a, q, Z) : Ee;
1372
+ if (p ? (F = v || (H ? a : ye || g) ? (
1373
+ // ...intermediate processing is necessary
1374
+ []
1375
+ ) : (
1376
+ // ...otherwise use results directly
1377
+ M
1378
+ ), p(Pe, F, q, Z)) : F = Pe, g)
1379
+ for (z = Ht(F, Te), g(z, [], q, Z), K = z.length; K--; )
1380
+ (ee = z[K]) && (F[Te[K]] = !(Pe[Te[K]] = ee));
1381
+ if (H) {
1382
+ if (v || a) {
1383
+ if (v) {
1384
+ for (z = [], K = F.length; K--; )
1385
+ (ee = F[K]) && z.push(Pe[K] = ee);
1386
+ v(null, F = [], z, Z);
1387
+ }
1388
+ for (K = F.length; K--; )
1389
+ (ee = F[K]) && (z = v ? se.call(H, ee) : ce[K]) > -1 && (H[z] = !(M[z] = ee));
1390
+ }
1391
+ } else
1392
+ F = Ht(
1393
+ F === M ? F.splice(ye, F.length) : F
1394
+ ), v ? v(null, M, F, Z) : s.apply(M, F);
1395
+ });
1396
+ }
1397
+ function tn(a) {
1398
+ for (var l, p, g, v = a.length, _ = t.relative[a[0].type], H = _ || t.relative[" "], M = _ ? 1 : 0, q = Lt(function(K) {
1399
+ return K === l;
1400
+ }, H, !0), Z = Lt(function(K) {
1401
+ return se.call(l, K) > -1;
1402
+ }, H, !0), z = [function(K, ee, F) {
1403
+ var ce = !_ && (F || ee != n) || ((l = ee).nodeType ? q(K, ee, F) : Z(K, ee, F));
1404
+ return l = null, ce;
1405
+ }]; M < v; M++)
1406
+ if (p = t.relative[a[M].type])
1407
+ z = [Lt(Zt(z), p)];
1408
+ else {
1409
+ if (p = t.filter[a[M].type].apply(null, a[M].matches), p[x]) {
1410
+ for (g = ++M; g < v && !t.relative[a[g].type]; g++)
1411
+ ;
1412
+ return en(
1413
+ M > 1 && Zt(z),
1414
+ M > 1 && Ot(
1415
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
1416
+ a.slice(0, M - 1).concat({ value: a[M - 2].type === " " ? "*" : "" })
1417
+ ).replace(Oe, "$1"),
1418
+ p,
1419
+ M < g && tn(a.slice(M, g)),
1420
+ g < v && tn(a = a.slice(g)),
1421
+ g < v && Ot(a)
1422
+ );
1423
+ }
1424
+ z.push(p);
1425
+ }
1426
+ return Zt(z);
1427
+ }
1428
+ function Kr(a, l) {
1429
+ var p = l.length > 0, g = a.length > 0, v = function(_, H, M, q, Z) {
1430
+ var z, K, ee, F = 0, ce = "0", Te = _ && [], ye = [], Ee = n, Pe = _ || g && t.find.TAG("*", Z), lt = h += Ee == null ? 1 : Math.random() || 0.1, ve = Pe.length;
1431
+ for (Z && (n = H == u || H || Z); ce !== ve && (z = Pe[ce]) != null; ce++) {
1432
+ if (g && z) {
1433
+ for (K = 0, !H && z.ownerDocument != u && (Xe(z), M = !f); ee = a[K++]; )
1434
+ if (ee(z, H || u, M)) {
1435
+ s.call(q, z);
1436
+ break;
1437
+ }
1438
+ Z && (h = lt);
1439
+ }
1440
+ p && ((z = !ee && z) && F--, _ && Te.push(z));
1441
+ }
1442
+ if (F += ce, p && ce !== F) {
1443
+ for (K = 0; ee = l[K++]; )
1444
+ ee(Te, ye, H, M);
1445
+ if (_) {
1446
+ if (F > 0)
1447
+ for (; ce--; )
1448
+ Te[ce] || ye[ce] || (ye[ce] = ke.call(q));
1449
+ ye = Ht(ye);
1450
+ }
1451
+ s.apply(q, ye), Z && !_ && ye.length > 0 && F + l.length > 1 && i.uniqueSort(q);
1452
+ }
1453
+ return Z && (h = lt, n = Ee), Te;
1454
+ };
1455
+ return p ? _e(v) : v;
1456
+ }
1457
+ function nn(a, l) {
1458
+ var p, g = [], v = [], _ = Y[a + " "];
1459
+ if (!_) {
1460
+ for (l || (l = wt(a)), p = l.length; p--; )
1461
+ _ = tn(l[p]), _[x] ? g.push(_) : v.push(_);
1462
+ _ = Y(
1463
+ a,
1464
+ Kr(v, g)
1465
+ ), _.selector = a;
1466
+ }
1467
+ return _;
1468
+ }
1469
+ function Bn(a, l, p, g) {
1470
+ var v, _, H, M, q, Z = typeof a == "function" && a, z = !g && wt(a = Z.selector || a);
1471
+ if (p = p || [], z.length === 1) {
1472
+ if (_ = z[0] = z[0].slice(0), _.length > 2 && (H = _[0]).type === "ID" && l.nodeType === 9 && f && t.relative[_[1].type]) {
1473
+ if (l = (t.find.ID(
1474
+ H.matches[0].replace($e, ze),
1475
+ l
1476
+ ) || [])[0], l)
1477
+ Z && (l = l.parentNode);
1478
+ else return p;
1479
+ a = a.slice(_.shift().value.length);
1480
+ }
1481
+ for (v = Me.needsContext.test(a) ? 0 : _.length; v-- && (H = _[v], !t.relative[M = H.type]); )
1482
+ if ((q = t.find[M]) && (g = q(
1483
+ H.matches[0].replace($e, ze),
1484
+ Yt.test(_[0].type) && Jt(l.parentNode) || l
1485
+ ))) {
1486
+ if (_.splice(v, 1), a = g.length && Ot(_), !a)
1487
+ return s.apply(p, g), p;
1488
+ break;
1489
+ }
1490
+ }
1491
+ return (Z || nn(a, z))(
1492
+ g,
1493
+ l,
1494
+ !f,
1495
+ p,
1496
+ !l || Yt.test(a) && Jt(l.parentNode) || l
1497
+ ), p;
1498
+ }
1499
+ D.sortStable = x.split("").sort(de).join("") === x, Xe(), D.sortDetached = ct(function(a) {
1500
+ return a.compareDocumentPosition(u.createElement("fieldset")) & 1;
1501
+ }), i.find = ae, i.expr[":"] = i.expr.pseudos, i.unique = i.uniqueSort, ae.compile = nn, ae.select = Bn, ae.setDocument = Xe, ae.tokenize = wt, ae.escape = i.escapeSelector, ae.getText = i.text, ae.isXML = i.isXMLDoc, ae.selectors = i.expr, ae.support = i.support, ae.uniqueSort = i.uniqueSort;
1502
+ })();
1503
+ var je = function(e, t, n) {
1504
+ for (var r = [], o = n !== void 0; (e = e[t]) && e.nodeType !== 9; )
1505
+ if (e.nodeType === 1) {
1506
+ if (o && i(e).is(n))
1507
+ break;
1508
+ r.push(e);
1509
+ }
1510
+ return r;
1511
+ }, Ge = function(e, t) {
1512
+ for (var n = []; e; e = e.nextSibling)
1513
+ e.nodeType === 1 && e !== t && n.push(e);
1514
+ return n;
1515
+ }, k = i.expr.match.needsContext, j = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
1516
+ function E(e, t, n) {
1517
+ return m(t) ? i.grep(e, function(r, o) {
1518
+ return !!t.call(r, o, r) !== n;
1519
+ }) : t.nodeType ? i.grep(e, function(r) {
1520
+ return r === t !== n;
1521
+ }) : typeof t != "string" ? i.grep(e, function(r) {
1522
+ return se.call(t, r) > -1 !== n;
1523
+ }) : i.filter(t, e, n);
1524
+ }
1525
+ i.filter = function(e, t, n) {
1526
+ var r = t[0];
1527
+ return n && (e = ":not(" + e + ")"), t.length === 1 && r.nodeType === 1 ? i.find.matchesSelector(r, e) ? [r] : [] : i.find.matches(e, i.grep(t, function(o) {
1528
+ return o.nodeType === 1;
1529
+ }));
1530
+ }, i.fn.extend({
1531
+ find: function(e) {
1532
+ var t, n, r = this.length, o = this;
1533
+ if (typeof e != "string")
1534
+ return this.pushStack(i(e).filter(function() {
1535
+ for (t = 0; t < r; t++)
1536
+ if (i.contains(o[t], this))
1537
+ return !0;
1538
+ }));
1539
+ for (n = this.pushStack([]), t = 0; t < r; t++)
1540
+ i.find(e, o[t], n);
1541
+ return r > 1 ? i.uniqueSort(n) : n;
1542
+ },
1543
+ filter: function(e) {
1544
+ return this.pushStack(E(this, e || [], !1));
1545
+ },
1546
+ not: function(e) {
1547
+ return this.pushStack(E(this, e || [], !0));
1548
+ },
1549
+ is: function(e) {
1550
+ return !!E(
1551
+ this,
1552
+ // If this is a positional/relative selector, check membership in the returned set
1553
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
1554
+ typeof e == "string" && k.test(e) ? i(e) : e || [],
1555
+ !1
1556
+ ).length;
1557
+ }
1558
+ });
1559
+ var A, Kn = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, Xn = i.fn.init = function(e, t, n) {
1560
+ var r, o;
1561
+ if (!e)
1562
+ return this;
1563
+ if (n = n || A, typeof e == "string")
1564
+ if (e[0] === "<" && e[e.length - 1] === ">" && e.length >= 3 ? r = [null, e, null] : r = Kn.exec(e), r && (r[1] || !t))
1565
+ if (r[1]) {
1566
+ if (t = t instanceof i ? t[0] : t, i.merge(this, i.parseHTML(
1567
+ r[1],
1568
+ t && t.nodeType ? t.ownerDocument || t : I,
1569
+ !0
1570
+ )), j.test(r[1]) && i.isPlainObject(t))
1571
+ for (r in t)
1572
+ m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
1573
+ return this;
1574
+ } else
1575
+ return o = I.getElementById(r[2]), o && (this[0] = o, this.length = 1), this;
1576
+ else return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
1577
+ else {
1578
+ if (e.nodeType)
1579
+ return this[0] = e, this.length = 1, this;
1580
+ if (m(e))
1581
+ return n.ready !== void 0 ? n.ready(e) : (
1582
+ // Execute immediately if ready is not present
1583
+ e(i)
1584
+ );
1585
+ }
1586
+ return i.makeArray(e, this);
1587
+ };
1588
+ Xn.prototype = i.fn, A = i(I);
1589
+ var Gn = /^(?:parents|prev(?:Until|All))/, Qn = {
1590
+ children: !0,
1591
+ contents: !0,
1592
+ next: !0,
1593
+ prev: !0
1594
+ };
1595
+ i.fn.extend({
1596
+ has: function(e) {
1597
+ var t = i(e, this), n = t.length;
1598
+ return this.filter(function() {
1599
+ for (var r = 0; r < n; r++)
1600
+ if (i.contains(this, t[r]))
1601
+ return !0;
1602
+ });
1603
+ },
1604
+ closest: function(e, t) {
1605
+ var n, r = 0, o = this.length, s = [], u = typeof e != "string" && i(e);
1606
+ if (!k.test(e)) {
1607
+ for (; r < o; r++)
1608
+ for (n = this[r]; n && n !== t; n = n.parentNode)
1609
+ if (n.nodeType < 11 && (u ? u.index(n) > -1 : (
1610
+ // Don't pass non-elements to jQuery#find
1611
+ n.nodeType === 1 && i.find.matchesSelector(n, e)
1612
+ ))) {
1613
+ s.push(n);
1614
+ break;
1615
+ }
1616
+ }
1617
+ return this.pushStack(s.length > 1 ? i.uniqueSort(s) : s);
1618
+ },
1619
+ // Determine the position of an element within the set
1620
+ index: function(e) {
1621
+ return e ? typeof e == "string" ? se.call(i(e), this[0]) : se.call(
1622
+ this,
1623
+ // If it receives a jQuery object, the first element is used
1624
+ e.jquery ? e[0] : e
1625
+ ) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
1626
+ },
1627
+ add: function(e, t) {
1628
+ return this.pushStack(
1629
+ i.uniqueSort(
1630
+ i.merge(this.get(), i(e, t))
1631
+ )
1632
+ );
1633
+ },
1634
+ addBack: function(e) {
1635
+ return this.add(
1636
+ e == null ? this.prevObject : this.prevObject.filter(e)
1637
+ );
1638
+ }
1639
+ });
1640
+ function on(e, t) {
1641
+ for (; (e = e[t]) && e.nodeType !== 1; )
1642
+ ;
1643
+ return e;
1644
+ }
1645
+ i.each({
1646
+ parent: function(e) {
1647
+ var t = e.parentNode;
1648
+ return t && t.nodeType !== 11 ? t : null;
1649
+ },
1650
+ parents: function(e) {
1651
+ return je(e, "parentNode");
1652
+ },
1653
+ parentsUntil: function(e, t, n) {
1654
+ return je(e, "parentNode", n);
1655
+ },
1656
+ next: function(e) {
1657
+ return on(e, "nextSibling");
1658
+ },
1659
+ prev: function(e) {
1660
+ return on(e, "previousSibling");
1661
+ },
1662
+ nextAll: function(e) {
1663
+ return je(e, "nextSibling");
1664
+ },
1665
+ prevAll: function(e) {
1666
+ return je(e, "previousSibling");
1667
+ },
1668
+ nextUntil: function(e, t, n) {
1669
+ return je(e, "nextSibling", n);
1670
+ },
1671
+ prevUntil: function(e, t, n) {
1672
+ return je(e, "previousSibling", n);
1673
+ },
1674
+ siblings: function(e) {
1675
+ return Ge((e.parentNode || {}).firstChild, e);
1676
+ },
1677
+ children: function(e) {
1678
+ return Ge(e.firstChild);
1679
+ },
1680
+ contents: function(e) {
1681
+ return e.contentDocument != null && // Support: IE 11+
1682
+ // <object> elements with no `data` attribute has an object
1683
+ // `contentDocument` with a `null` prototype.
1684
+ b(e.contentDocument) ? e.contentDocument : (Q(e, "template") && (e = e.content || e), i.merge([], e.childNodes));
1685
+ }
1686
+ }, function(e, t) {
1687
+ i.fn[e] = function(n, r) {
1688
+ var o = i.map(this, t, n);
1689
+ return e.slice(-5) !== "Until" && (r = n), r && typeof r == "string" && (o = i.filter(r, o)), this.length > 1 && (Qn[e] || i.uniqueSort(o), Gn.test(e) && o.reverse()), this.pushStack(o);
1690
+ };
1691
+ });
1692
+ var Le = /[^\x20\t\r\n\f]+/g;
1693
+ function Yn(e) {
1694
+ var t = {};
1695
+ return i.each(e.match(Le) || [], function(n, r) {
1696
+ t[r] = !0;
1697
+ }), t;
1698
+ }
1699
+ i.Callbacks = function(e) {
1700
+ e = typeof e == "string" ? Yn(e) : i.extend({}, e);
1701
+ var t, n, r, o, s = [], u = [], c = -1, f = function() {
1702
+ for (o = o || e.once, r = t = !0; u.length; c = -1)
1703
+ for (n = u.shift(); ++c < s.length; )
1704
+ s[c].apply(n[0], n[1]) === !1 && e.stopOnFalse && (c = s.length, n = !1);
1705
+ e.memory || (n = !1), t = !1, o && (n ? s = [] : s = "");
1706
+ }, d = {
1707
+ // Add a callback or a collection of callbacks to the list
1708
+ add: function() {
1709
+ return s && (n && !t && (c = s.length - 1, u.push(n)), function y(x) {
1710
+ i.each(x, function(h, S) {
1711
+ m(S) ? (!e.unique || !d.has(S)) && s.push(S) : S && S.length && L(S) !== "string" && y(S);
1712
+ });
1713
+ }(arguments), n && !t && f()), this;
1714
+ },
1715
+ // Remove a callback from the list
1716
+ remove: function() {
1717
+ return i.each(arguments, function(y, x) {
1718
+ for (var h; (h = i.inArray(x, s, h)) > -1; )
1719
+ s.splice(h, 1), h <= c && c--;
1720
+ }), this;
1721
+ },
1722
+ // Check if a given callback is in the list.
1723
+ // If no argument is given, return whether or not list has callbacks attached.
1724
+ has: function(y) {
1725
+ return y ? i.inArray(y, s) > -1 : s.length > 0;
1726
+ },
1727
+ // Remove all callbacks from the list
1728
+ empty: function() {
1729
+ return s && (s = []), this;
1730
+ },
1731
+ // Disable .fire and .add
1732
+ // Abort any current/pending executions
1733
+ // Clear all callbacks and values
1734
+ disable: function() {
1735
+ return o = u = [], s = n = "", this;
1736
+ },
1737
+ disabled: function() {
1738
+ return !s;
1739
+ },
1740
+ // Disable .fire
1741
+ // Also disable .add unless we have memory (since it would have no effect)
1742
+ // Abort any pending executions
1743
+ lock: function() {
1744
+ return o = u = [], !n && !t && (s = n = ""), this;
1745
+ },
1746
+ locked: function() {
1747
+ return !!o;
1748
+ },
1749
+ // Call all callbacks with the given context and arguments
1750
+ fireWith: function(y, x) {
1751
+ return o || (x = x || [], x = [y, x.slice ? x.slice() : x], u.push(x), t || f()), this;
1752
+ },
1753
+ // Call all the callbacks with the given arguments
1754
+ fire: function() {
1755
+ return d.fireWith(this, arguments), this;
1756
+ },
1757
+ // To know if the callbacks have already been called at least once
1758
+ fired: function() {
1759
+ return !!r;
1760
+ }
1761
+ };
1762
+ return d;
1763
+ };
1764
+ function rt(e) {
1765
+ return e;
1766
+ }
1767
+ function St(e) {
1768
+ throw e;
1769
+ }
1770
+ function sn(e, t, n, r) {
1771
+ var o;
1772
+ try {
1773
+ e && m(o = e.promise) ? o.call(e).done(t).fail(n) : e && m(o = e.then) ? o.call(e, t, n) : t.apply(void 0, [e].slice(r));
1774
+ } catch (s) {
1775
+ n.apply(void 0, [s]);
1776
+ }
1777
+ }
1778
+ i.extend({
1779
+ Deferred: function(e) {
1780
+ var t = [
1781
+ // action, add listener, callbacks,
1782
+ // ... .then handlers, argument index, [final state]
1783
+ [
1784
+ "notify",
1785
+ "progress",
1786
+ i.Callbacks("memory"),
1787
+ i.Callbacks("memory"),
1788
+ 2
1789
+ ],
1790
+ [
1791
+ "resolve",
1792
+ "done",
1793
+ i.Callbacks("once memory"),
1794
+ i.Callbacks("once memory"),
1795
+ 0,
1796
+ "resolved"
1797
+ ],
1798
+ [
1799
+ "reject",
1800
+ "fail",
1801
+ i.Callbacks("once memory"),
1802
+ i.Callbacks("once memory"),
1803
+ 1,
1804
+ "rejected"
1805
+ ]
1806
+ ], n = "pending", r = {
1807
+ state: function() {
1808
+ return n;
1809
+ },
1810
+ always: function() {
1811
+ return o.done(arguments).fail(arguments), this;
1812
+ },
1813
+ catch: function(s) {
1814
+ return r.then(null, s);
1815
+ },
1816
+ // Keep pipe for back-compat
1817
+ pipe: function() {
1818
+ var s = arguments;
1819
+ return i.Deferred(function(u) {
1820
+ i.each(t, function(c, f) {
1821
+ var d = m(s[f[4]]) && s[f[4]];
1822
+ o[f[1]](function() {
1823
+ var y = d && d.apply(this, arguments);
1824
+ y && m(y.promise) ? y.promise().progress(u.notify).done(u.resolve).fail(u.reject) : u[f[0] + "With"](
1825
+ this,
1826
+ d ? [y] : arguments
1827
+ );
1828
+ });
1829
+ }), s = null;
1830
+ }).promise();
1831
+ },
1832
+ then: function(s, u, c) {
1833
+ var f = 0;
1834
+ function d(y, x, h, S) {
1835
+ return function() {
1836
+ var V = this, ne = arguments, Y = function() {
1837
+ var de, qe;
1838
+ if (!(y < f)) {
1839
+ if (de = h.apply(V, ne), de === x.promise())
1840
+ throw new TypeError("Thenable self-resolution");
1841
+ qe = de && // Support: Promises/A+ section 2.3.4
1842
+ // https://promisesaplus.com/#point-64
1843
+ // Only check objects and functions for thenability
1844
+ (typeof de == "object" || typeof de == "function") && de.then, m(qe) ? S ? qe.call(
1845
+ de,
1846
+ d(f, x, rt, S),
1847
+ d(f, x, St, S)
1848
+ ) : (f++, qe.call(
1849
+ de,
1850
+ d(f, x, rt, S),
1851
+ d(f, x, St, S),
1852
+ d(
1853
+ f,
1854
+ x,
1855
+ rt,
1856
+ x.notifyWith
1857
+ )
1858
+ )) : (h !== rt && (V = void 0, ne = [de]), (S || x.resolveWith)(V, ne));
1859
+ }
1860
+ }, ge = S ? Y : function() {
1861
+ try {
1862
+ Y();
1863
+ } catch (de) {
1864
+ i.Deferred.exceptionHook && i.Deferred.exceptionHook(
1865
+ de,
1866
+ ge.error
1867
+ ), y + 1 >= f && (h !== St && (V = void 0, ne = [de]), x.rejectWith(V, ne));
1868
+ }
1869
+ };
1870
+ y ? ge() : (i.Deferred.getErrorHook ? ge.error = i.Deferred.getErrorHook() : i.Deferred.getStackHook && (ge.error = i.Deferred.getStackHook()), B.setTimeout(ge));
1871
+ };
1872
+ }
1873
+ return i.Deferred(function(y) {
1874
+ t[0][3].add(
1875
+ d(
1876
+ 0,
1877
+ y,
1878
+ m(c) ? c : rt,
1879
+ y.notifyWith
1880
+ )
1881
+ ), t[1][3].add(
1882
+ d(
1883
+ 0,
1884
+ y,
1885
+ m(s) ? s : rt
1886
+ )
1887
+ ), t[2][3].add(
1888
+ d(
1889
+ 0,
1890
+ y,
1891
+ m(u) ? u : St
1892
+ )
1893
+ );
1894
+ }).promise();
1895
+ },
1896
+ // Get a promise for this deferred
1897
+ // If obj is provided, the promise aspect is added to the object
1898
+ promise: function(s) {
1899
+ return s != null ? i.extend(s, r) : r;
1900
+ }
1901
+ }, o = {};
1902
+ return i.each(t, function(s, u) {
1903
+ var c = u[2], f = u[5];
1904
+ r[u[1]] = c.add, f && c.add(
1905
+ function() {
1906
+ n = f;
1907
+ },
1908
+ // rejected_callbacks.disable
1909
+ // fulfilled_callbacks.disable
1910
+ t[3 - s][2].disable,
1911
+ // rejected_handlers.disable
1912
+ // fulfilled_handlers.disable
1913
+ t[3 - s][3].disable,
1914
+ // progress_callbacks.lock
1915
+ t[0][2].lock,
1916
+ // progress_handlers.lock
1917
+ t[0][3].lock
1918
+ ), c.add(u[3].fire), o[u[0]] = function() {
1919
+ return o[u[0] + "With"](this === o ? void 0 : this, arguments), this;
1920
+ }, o[u[0] + "With"] = c.fireWith;
1921
+ }), r.promise(o), e && e.call(o, o), o;
1922
+ },
1923
+ // Deferred helper
1924
+ when: function(e) {
1925
+ var t = arguments.length, n = t, r = Array(n), o = N.call(arguments), s = i.Deferred(), u = function(c) {
1926
+ return function(f) {
1927
+ r[c] = this, o[c] = arguments.length > 1 ? N.call(arguments) : f, --t || s.resolveWith(r, o);
1928
+ };
1929
+ };
1930
+ if (t <= 1 && (sn(
1931
+ e,
1932
+ s.done(u(n)).resolve,
1933
+ s.reject,
1934
+ !t
1935
+ ), s.state() === "pending" || m(o[n] && o[n].then)))
1936
+ return s.then();
1937
+ for (; n--; )
1938
+ sn(o[n], u(n), s.reject);
1939
+ return s.promise();
1940
+ }
1941
+ });
1942
+ var Jn = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
1943
+ i.Deferred.exceptionHook = function(e, t) {
1944
+ B.console && B.console.warn && e && Jn.test(e.name) && B.console.warn(
1945
+ "jQuery.Deferred exception: " + e.message,
1946
+ e.stack,
1947
+ t
1948
+ );
1949
+ }, i.readyException = function(e) {
1950
+ B.setTimeout(function() {
1951
+ throw e;
1952
+ });
1953
+ };
1954
+ var qt = i.Deferred();
1955
+ i.fn.ready = function(e) {
1956
+ return qt.then(e).catch(function(t) {
1957
+ i.readyException(t);
1958
+ }), this;
1959
+ }, i.extend({
1960
+ // Is the DOM ready to be used? Set to true once it occurs.
1961
+ isReady: !1,
1962
+ // A counter to track how many items to wait for before
1963
+ // the ready event fires. See trac-6781
1964
+ readyWait: 1,
1965
+ // Handle when the DOM is ready
1966
+ ready: function(e) {
1967
+ (e === !0 ? --i.readyWait : i.isReady) || (i.isReady = !0, !(e !== !0 && --i.readyWait > 0) && qt.resolveWith(I, [i]));
1968
+ }
1969
+ }), i.ready.then = qt.then;
1970
+ function Nt() {
1971
+ I.removeEventListener("DOMContentLoaded", Nt), B.removeEventListener("load", Nt), i.ready();
1972
+ }
1973
+ I.readyState === "complete" || I.readyState !== "loading" && !I.documentElement.doScroll ? B.setTimeout(i.ready) : (I.addEventListener("DOMContentLoaded", Nt), B.addEventListener("load", Nt));
1974
+ var Fe = function(e, t, n, r, o, s, u) {
1975
+ var c = 0, f = e.length, d = n == null;
1976
+ if (L(n) === "object") {
1977
+ o = !0;
1978
+ for (c in n)
1979
+ Fe(e, t, c, n[c], !0, s, u);
1980
+ } else if (r !== void 0 && (o = !0, m(r) || (u = !0), d && (u ? (t.call(e, r), t = null) : (d = t, t = function(y, x, h) {
1981
+ return d.call(i(y), h);
1982
+ })), t))
1983
+ for (; c < f; c++)
1984
+ t(
1985
+ e[c],
1986
+ n,
1987
+ u ? r : r.call(e[c], c, t(e[c], n))
1988
+ );
1989
+ return o ? e : d ? t.call(e) : f ? t(e[0], n) : s;
1990
+ }, Zn = /^-ms-/, er = /-([a-z])/g;
1991
+ function tr(e, t) {
1992
+ return t.toUpperCase();
1993
+ }
1994
+ function He(e) {
1995
+ return e.replace(Zn, "ms-").replace(er, tr);
1996
+ }
1997
+ var pt = function(e) {
1998
+ return e.nodeType === 1 || e.nodeType === 9 || !+e.nodeType;
1999
+ };
2000
+ function ht() {
2001
+ this.expando = i.expando + ht.uid++;
2002
+ }
2003
+ ht.uid = 1, ht.prototype = {
2004
+ cache: function(e) {
2005
+ var t = e[this.expando];
2006
+ return t || (t = {}, pt(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
2007
+ value: t,
2008
+ configurable: !0
2009
+ }))), t;
2010
+ },
2011
+ set: function(e, t, n) {
2012
+ var r, o = this.cache(e);
2013
+ if (typeof t == "string")
2014
+ o[He(t)] = n;
2015
+ else
2016
+ for (r in t)
2017
+ o[He(r)] = t[r];
2018
+ return o;
2019
+ },
2020
+ get: function(e, t) {
2021
+ return t === void 0 ? this.cache(e) : (
2022
+ // Always use camelCase key (gh-2257)
2023
+ e[this.expando] && e[this.expando][He(t)]
2024
+ );
2025
+ },
2026
+ access: function(e, t, n) {
2027
+ return t === void 0 || t && typeof t == "string" && n === void 0 ? this.get(e, t) : (this.set(e, t, n), n !== void 0 ? n : t);
2028
+ },
2029
+ remove: function(e, t) {
2030
+ var n, r = e[this.expando];
2031
+ if (r !== void 0) {
2032
+ if (t !== void 0)
2033
+ for (Array.isArray(t) ? t = t.map(He) : (t = He(t), t = t in r ? [t] : t.match(Le) || []), n = t.length; n--; )
2034
+ delete r[t[n]];
2035
+ (t === void 0 || i.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]);
2036
+ }
2037
+ },
2038
+ hasData: function(e) {
2039
+ var t = e[this.expando];
2040
+ return t !== void 0 && !i.isEmptyObject(t);
2041
+ }
2042
+ };
2043
+ var P = new ht(), be = new ht(), nr = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rr = /[A-Z]/g;
2044
+ function ir(e) {
2045
+ return e === "true" ? !0 : e === "false" ? !1 : e === "null" ? null : e === +e + "" ? +e : nr.test(e) ? JSON.parse(e) : e;
2046
+ }
2047
+ function un(e, t, n) {
2048
+ var r;
2049
+ if (n === void 0 && e.nodeType === 1)
2050
+ if (r = "data-" + t.replace(rr, "-$&").toLowerCase(), n = e.getAttribute(r), typeof n == "string") {
2051
+ try {
2052
+ n = ir(n);
2053
+ } catch {
2054
+ }
2055
+ be.set(e, t, n);
2056
+ } else
2057
+ n = void 0;
2058
+ return n;
2059
+ }
2060
+ i.extend({
2061
+ hasData: function(e) {
2062
+ return be.hasData(e) || P.hasData(e);
2063
+ },
2064
+ data: function(e, t, n) {
2065
+ return be.access(e, t, n);
2066
+ },
2067
+ removeData: function(e, t) {
2068
+ be.remove(e, t);
2069
+ },
2070
+ // TODO: Now that all calls to _data and _removeData have been replaced
2071
+ // with direct calls to dataPriv methods, these can be deprecated.
2072
+ _data: function(e, t, n) {
2073
+ return P.access(e, t, n);
2074
+ },
2075
+ _removeData: function(e, t) {
2076
+ P.remove(e, t);
2077
+ }
2078
+ }), i.fn.extend({
2079
+ data: function(e, t) {
2080
+ var n, r, o, s = this[0], u = s && s.attributes;
2081
+ if (e === void 0) {
2082
+ if (this.length && (o = be.get(s), s.nodeType === 1 && !P.get(s, "hasDataAttrs"))) {
2083
+ for (n = u.length; n--; )
2084
+ u[n] && (r = u[n].name, r.indexOf("data-") === 0 && (r = He(r.slice(5)), un(s, r, o[r])));
2085
+ P.set(s, "hasDataAttrs", !0);
2086
+ }
2087
+ return o;
2088
+ }
2089
+ return typeof e == "object" ? this.each(function() {
2090
+ be.set(this, e);
2091
+ }) : Fe(this, function(c) {
2092
+ var f;
2093
+ if (s && c === void 0)
2094
+ return f = be.get(s, e), f !== void 0 || (f = un(s, e), f !== void 0) ? f : void 0;
2095
+ this.each(function() {
2096
+ be.set(this, e, c);
2097
+ });
2098
+ }, null, t, arguments.length > 1, null, !0);
2099
+ },
2100
+ removeData: function(e) {
2101
+ return this.each(function() {
2102
+ be.remove(this, e);
2103
+ });
2104
+ }
2105
+ }), i.extend({
2106
+ queue: function(e, t, n) {
2107
+ var r;
2108
+ if (e)
2109
+ return t = (t || "fx") + "queue", r = P.get(e, t), n && (!r || Array.isArray(n) ? r = P.access(e, t, i.makeArray(n)) : r.push(n)), r || [];
2110
+ },
2111
+ dequeue: function(e, t) {
2112
+ t = t || "fx";
2113
+ var n = i.queue(e, t), r = n.length, o = n.shift(), s = i._queueHooks(e, t), u = function() {
2114
+ i.dequeue(e, t);
2115
+ };
2116
+ o === "inprogress" && (o = n.shift(), r--), o && (t === "fx" && n.unshift("inprogress"), delete s.stop, o.call(e, u, s)), !r && s && s.empty.fire();
2117
+ },
2118
+ // Not public - generate a queueHooks object, or return the current one
2119
+ _queueHooks: function(e, t) {
2120
+ var n = t + "queueHooks";
2121
+ return P.get(e, n) || P.access(e, n, {
2122
+ empty: i.Callbacks("once memory").add(function() {
2123
+ P.remove(e, [t + "queue", n]);
2124
+ })
2125
+ });
2126
+ }
2127
+ }), i.fn.extend({
2128
+ queue: function(e, t) {
2129
+ var n = 2;
2130
+ return typeof e != "string" && (t = e, e = "fx", n--), arguments.length < n ? i.queue(this[0], e) : t === void 0 ? this : this.each(function() {
2131
+ var r = i.queue(this, e, t);
2132
+ i._queueHooks(this, e), e === "fx" && r[0] !== "inprogress" && i.dequeue(this, e);
2133
+ });
2134
+ },
2135
+ dequeue: function(e) {
2136
+ return this.each(function() {
2137
+ i.dequeue(this, e);
2138
+ });
2139
+ },
2140
+ clearQueue: function(e) {
2141
+ return this.queue(e || "fx", []);
2142
+ },
2143
+ // Get a promise resolved when queues of a certain type
2144
+ // are emptied (fx is the type by default)
2145
+ promise: function(e, t) {
2146
+ var n, r = 1, o = i.Deferred(), s = this, u = this.length, c = function() {
2147
+ --r || o.resolveWith(s, [s]);
2148
+ };
2149
+ for (typeof e != "string" && (t = e, e = void 0), e = e || "fx"; u--; )
2150
+ n = P.get(s[u], e + "queueHooks"), n && n.empty && (r++, n.empty.add(c));
2151
+ return c(), o.promise(t);
2152
+ }
2153
+ });
2154
+ var an = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, gt = new RegExp("^(?:([+-])=|)(" + an + ")([a-z%]*)$", "i"), We = ["Top", "Right", "Bottom", "Left"], Qe = I.documentElement, it = function(e) {
2155
+ return i.contains(e.ownerDocument, e);
2156
+ }, or = { composed: !0 };
2157
+ Qe.getRootNode && (it = function(e) {
2158
+ return i.contains(e.ownerDocument, e) || e.getRootNode(or) === e.ownerDocument;
2159
+ });
2160
+ var Et = function(e, t) {
2161
+ return e = t || e, e.style.display === "none" || e.style.display === "" && // Otherwise, check computed style
2162
+ // Support: Firefox <=43 - 45
2163
+ // Disconnected elements can have computed display: none, so first confirm that elem is
2164
+ // in the document.
2165
+ it(e) && i.css(e, "display") === "none";
2166
+ };
2167
+ function fn(e, t, n, r) {
2168
+ var o, s, u = 20, c = r ? function() {
2169
+ return r.cur();
2170
+ } : function() {
2171
+ return i.css(e, t, "");
2172
+ }, f = c(), d = n && n[3] || (i.cssNumber[t] ? "" : "px"), y = e.nodeType && (i.cssNumber[t] || d !== "px" && +f) && gt.exec(i.css(e, t));
2173
+ if (y && y[3] !== d) {
2174
+ for (f = f / 2, d = d || y[3], y = +f || 1; u--; )
2175
+ i.style(e, t, y + d), (1 - s) * (1 - (s = c() / f || 0.5)) <= 0 && (u = 0), y = y / s;
2176
+ y = y * 2, i.style(e, t, y + d), n = n || [];
2177
+ }
2178
+ return n && (y = +y || +f || 0, o = n[1] ? y + (n[1] + 1) * n[2] : +n[2], r && (r.unit = d, r.start = y, r.end = o)), o;
2179
+ }
2180
+ var cn = {};
2181
+ function sr(e) {
2182
+ var t, n = e.ownerDocument, r = e.nodeName, o = cn[r];
2183
+ return o || (t = n.body.appendChild(n.createElement(r)), o = i.css(t, "display"), t.parentNode.removeChild(t), o === "none" && (o = "block"), cn[r] = o, o);
2184
+ }
2185
+ function ot(e, t) {
2186
+ for (var n, r, o = [], s = 0, u = e.length; s < u; s++)
2187
+ r = e[s], r.style && (n = r.style.display, t ? (n === "none" && (o[s] = P.get(r, "display") || null, o[s] || (r.style.display = "")), r.style.display === "" && Et(r) && (o[s] = sr(r))) : n !== "none" && (o[s] = "none", P.set(r, "display", n)));
2188
+ for (s = 0; s < u; s++)
2189
+ o[s] != null && (e[s].style.display = o[s]);
2190
+ return e;
2191
+ }
2192
+ i.fn.extend({
2193
+ show: function() {
2194
+ return ot(this, !0);
2195
+ },
2196
+ hide: function() {
2197
+ return ot(this);
2198
+ },
2199
+ toggle: function(e) {
2200
+ return typeof e == "boolean" ? e ? this.show() : this.hide() : this.each(function() {
2201
+ Et(this) ? i(this).show() : i(this).hide();
2202
+ });
2203
+ }
2204
+ });
2205
+ var yt = /^(?:checkbox|radio)$/i, ln = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, dn = /^$|^module$|\/(?:java|ecma)script/i;
2206
+ (function() {
2207
+ var e = I.createDocumentFragment(), t = e.appendChild(I.createElement("div")), n = I.createElement("input");
2208
+ n.setAttribute("type", "radio"), n.setAttribute("checked", "checked"), n.setAttribute("name", "t"), t.appendChild(n), D.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked, t.innerHTML = "<textarea>x</textarea>", D.noCloneChecked = !!t.cloneNode(!0).lastChild.defaultValue, t.innerHTML = "<option></option>", D.option = !!t.lastChild;
2209
+ })();
2210
+ var Se = {
2211
+ // XHTML parsers do not magically insert elements in the
2212
+ // same way that tag soup parsers do. So we cannot shorten
2213
+ // this by omitting <tbody> or other required elements.
2214
+ thead: [1, "<table>", "</table>"],
2215
+ col: [2, "<table><colgroup>", "</colgroup></table>"],
2216
+ tr: [2, "<table><tbody>", "</tbody></table>"],
2217
+ td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
2218
+ _default: [0, "", ""]
2219
+ };
2220
+ Se.tbody = Se.tfoot = Se.colgroup = Se.caption = Se.thead, Se.th = Se.td, D.option || (Se.optgroup = Se.option = [1, "<select multiple='multiple'>", "</select>"]);
2221
+ function me(e, t) {
2222
+ var n;
2223
+ return typeof e.getElementsByTagName < "u" ? n = e.getElementsByTagName(t || "*") : typeof e.querySelectorAll < "u" ? n = e.querySelectorAll(t || "*") : n = [], t === void 0 || t && Q(e, t) ? i.merge([e], n) : n;
2224
+ }
2225
+ function It(e, t) {
2226
+ for (var n = 0, r = e.length; n < r; n++)
2227
+ P.set(
2228
+ e[n],
2229
+ "globalEval",
2230
+ !t || P.get(t[n], "globalEval")
2231
+ );
2232
+ }
2233
+ var ur = /<|&#?\w+;/;
2234
+ function pn(e, t, n, r, o) {
2235
+ for (var s, u, c, f, d, y, x = t.createDocumentFragment(), h = [], S = 0, V = e.length; S < V; S++)
2236
+ if (s = e[S], s || s === 0)
2237
+ if (L(s) === "object")
2238
+ i.merge(h, s.nodeType ? [s] : s);
2239
+ else if (!ur.test(s))
2240
+ h.push(t.createTextNode(s));
2241
+ else {
2242
+ for (u = u || x.appendChild(t.createElement("div")), c = (ln.exec(s) || ["", ""])[1].toLowerCase(), f = Se[c] || Se._default, u.innerHTML = f[1] + i.htmlPrefilter(s) + f[2], y = f[0]; y--; )
2243
+ u = u.lastChild;
2244
+ i.merge(h, u.childNodes), u = x.firstChild, u.textContent = "";
2245
+ }
2246
+ for (x.textContent = "", S = 0; s = h[S++]; ) {
2247
+ if (r && i.inArray(s, r) > -1) {
2248
+ o && o.push(s);
2249
+ continue;
2250
+ }
2251
+ if (d = it(s), u = me(x.appendChild(s), "script"), d && It(u), n)
2252
+ for (y = 0; s = u[y++]; )
2253
+ dn.test(s.type || "") && n.push(s);
2254
+ }
2255
+ return x;
2256
+ }
2257
+ var hn = /^([^.]*)(?:\.(.+)|)/;
2258
+ function st() {
2259
+ return !0;
2260
+ }
2261
+ function ut() {
2262
+ return !1;
2263
+ }
2264
+ function Rt(e, t, n, r, o, s) {
2265
+ var u, c;
2266
+ if (typeof t == "object") {
2267
+ typeof n != "string" && (r = r || n, n = void 0);
2268
+ for (c in t)
2269
+ Rt(e, c, n, r, t[c], s);
2270
+ return e;
2271
+ }
2272
+ if (r == null && o == null ? (o = n, r = n = void 0) : o == null && (typeof n == "string" ? (o = r, r = void 0) : (o = r, r = n, n = void 0)), o === !1)
2273
+ o = ut;
2274
+ else if (!o)
2275
+ return e;
2276
+ return s === 1 && (u = o, o = function(f) {
2277
+ return i().off(f), u.apply(this, arguments);
2278
+ }, o.guid = u.guid || (u.guid = i.guid++)), e.each(function() {
2279
+ i.event.add(this, t, o, r, n);
2280
+ });
2281
+ }
2282
+ i.event = {
2283
+ global: {},
2284
+ add: function(e, t, n, r, o) {
2285
+ var s, u, c, f, d, y, x, h, S, V, ne, Y = P.get(e);
2286
+ if (pt(e))
2287
+ for (n.handler && (s = n, n = s.handler, o = s.selector), o && i.find.matchesSelector(Qe, o), n.guid || (n.guid = i.guid++), (f = Y.events) || (f = Y.events = /* @__PURE__ */ Object.create(null)), (u = Y.handle) || (u = Y.handle = function(ge) {
2288
+ return typeof i < "u" && i.event.triggered !== ge.type ? i.event.dispatch.apply(e, arguments) : void 0;
2289
+ }), t = (t || "").match(Le) || [""], d = t.length; d--; )
2290
+ c = hn.exec(t[d]) || [], S = ne = c[1], V = (c[2] || "").split(".").sort(), S && (x = i.event.special[S] || {}, S = (o ? x.delegateType : x.bindType) || S, x = i.event.special[S] || {}, y = i.extend({
2291
+ type: S,
2292
+ origType: ne,
2293
+ data: r,
2294
+ handler: n,
2295
+ guid: n.guid,
2296
+ selector: o,
2297
+ needsContext: o && i.expr.match.needsContext.test(o),
2298
+ namespace: V.join(".")
2299
+ }, s), (h = f[S]) || (h = f[S] = [], h.delegateCount = 0, (!x.setup || x.setup.call(e, r, V, u) === !1) && e.addEventListener && e.addEventListener(S, u)), x.add && (x.add.call(e, y), y.handler.guid || (y.handler.guid = n.guid)), o ? h.splice(h.delegateCount++, 0, y) : h.push(y), i.event.global[S] = !0);
2300
+ },
2301
+ // Detach an event or set of events from an element
2302
+ remove: function(e, t, n, r, o) {
2303
+ var s, u, c, f, d, y, x, h, S, V, ne, Y = P.hasData(e) && P.get(e);
2304
+ if (!(!Y || !(f = Y.events))) {
2305
+ for (t = (t || "").match(Le) || [""], d = t.length; d--; ) {
2306
+ if (c = hn.exec(t[d]) || [], S = ne = c[1], V = (c[2] || "").split(".").sort(), !S) {
2307
+ for (S in f)
2308
+ i.event.remove(e, S + t[d], n, r, !0);
2309
+ continue;
2310
+ }
2311
+ for (x = i.event.special[S] || {}, S = (r ? x.delegateType : x.bindType) || S, h = f[S] || [], c = c[2] && new RegExp("(^|\\.)" + V.join("\\.(?:.*\\.|)") + "(\\.|$)"), u = s = h.length; s--; )
2312
+ y = h[s], (o || ne === y.origType) && (!n || n.guid === y.guid) && (!c || c.test(y.namespace)) && (!r || r === y.selector || r === "**" && y.selector) && (h.splice(s, 1), y.selector && h.delegateCount--, x.remove && x.remove.call(e, y));
2313
+ u && !h.length && ((!x.teardown || x.teardown.call(e, V, Y.handle) === !1) && i.removeEvent(e, S, Y.handle), delete f[S]);
2314
+ }
2315
+ i.isEmptyObject(f) && P.remove(e, "handle events");
2316
+ }
2317
+ },
2318
+ dispatch: function(e) {
2319
+ var t, n, r, o, s, u, c = new Array(arguments.length), f = i.event.fix(e), d = (P.get(this, "events") || /* @__PURE__ */ Object.create(null))[f.type] || [], y = i.event.special[f.type] || {};
2320
+ for (c[0] = f, t = 1; t < arguments.length; t++)
2321
+ c[t] = arguments[t];
2322
+ if (f.delegateTarget = this, !(y.preDispatch && y.preDispatch.call(this, f) === !1)) {
2323
+ for (u = i.event.handlers.call(this, f, d), t = 0; (o = u[t++]) && !f.isPropagationStopped(); )
2324
+ for (f.currentTarget = o.elem, n = 0; (s = o.handlers[n++]) && !f.isImmediatePropagationStopped(); )
2325
+ (!f.rnamespace || s.namespace === !1 || f.rnamespace.test(s.namespace)) && (f.handleObj = s, f.data = s.data, r = ((i.event.special[s.origType] || {}).handle || s.handler).apply(o.elem, c), r !== void 0 && (f.result = r) === !1 && (f.preventDefault(), f.stopPropagation()));
2326
+ return y.postDispatch && y.postDispatch.call(this, f), f.result;
2327
+ }
2328
+ },
2329
+ handlers: function(e, t) {
2330
+ var n, r, o, s, u, c = [], f = t.delegateCount, d = e.target;
2331
+ if (f && // Support: IE <=9
2332
+ // Black-hole SVG <use> instance trees (trac-13180)
2333
+ d.nodeType && // Support: Firefox <=42
2334
+ // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
2335
+ // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
2336
+ // Support: IE 11 only
2337
+ // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
2338
+ !(e.type === "click" && e.button >= 1)) {
2339
+ for (; d !== this; d = d.parentNode || this)
2340
+ if (d.nodeType === 1 && !(e.type === "click" && d.disabled === !0)) {
2341
+ for (s = [], u = {}, n = 0; n < f; n++)
2342
+ r = t[n], o = r.selector + " ", u[o] === void 0 && (u[o] = r.needsContext ? i(o, this).index(d) > -1 : i.find(o, this, null, [d]).length), u[o] && s.push(r);
2343
+ s.length && c.push({ elem: d, handlers: s });
2344
+ }
2345
+ }
2346
+ return d = this, f < t.length && c.push({ elem: d, handlers: t.slice(f) }), c;
2347
+ },
2348
+ addProp: function(e, t) {
2349
+ Object.defineProperty(i.Event.prototype, e, {
2350
+ enumerable: !0,
2351
+ configurable: !0,
2352
+ get: m(t) ? function() {
2353
+ if (this.originalEvent)
2354
+ return t(this.originalEvent);
2355
+ } : function() {
2356
+ if (this.originalEvent)
2357
+ return this.originalEvent[e];
2358
+ },
2359
+ set: function(n) {
2360
+ Object.defineProperty(this, e, {
2361
+ enumerable: !0,
2362
+ configurable: !0,
2363
+ writable: !0,
2364
+ value: n
2365
+ });
2366
+ }
2367
+ });
2368
+ },
2369
+ fix: function(e) {
2370
+ return e[i.expando] ? e : new i.Event(e);
2371
+ },
2372
+ special: {
2373
+ load: {
2374
+ // Prevent triggered image.load events from bubbling to window.load
2375
+ noBubble: !0
2376
+ },
2377
+ click: {
2378
+ // Utilize native event to ensure correct state for checkable inputs
2379
+ setup: function(e) {
2380
+ var t = this || e;
2381
+ return yt.test(t.type) && t.click && Q(t, "input") && kt(t, "click", !0), !1;
2382
+ },
2383
+ trigger: function(e) {
2384
+ var t = this || e;
2385
+ return yt.test(t.type) && t.click && Q(t, "input") && kt(t, "click"), !0;
2386
+ },
2387
+ // For cross-browser consistency, suppress native .click() on links
2388
+ // Also prevent it if we're currently inside a leveraged native-event stack
2389
+ _default: function(e) {
2390
+ var t = e.target;
2391
+ return yt.test(t.type) && t.click && Q(t, "input") && P.get(t, "click") || Q(t, "a");
2392
+ }
2393
+ },
2394
+ beforeunload: {
2395
+ postDispatch: function(e) {
2396
+ e.result !== void 0 && e.originalEvent && (e.originalEvent.returnValue = e.result);
2397
+ }
2398
+ }
2399
+ }
2400
+ };
2401
+ function kt(e, t, n) {
2402
+ if (!n) {
2403
+ P.get(e, t) === void 0 && i.event.add(e, t, st);
2404
+ return;
2405
+ }
2406
+ P.set(e, t, !1), i.event.add(e, t, {
2407
+ namespace: !1,
2408
+ handler: function(r) {
2409
+ var o, s = P.get(this, t);
2410
+ if (r.isTrigger & 1 && this[t]) {
2411
+ if (s)
2412
+ (i.event.special[t] || {}).delegateType && r.stopPropagation();
2413
+ else if (s = N.call(arguments), P.set(this, t, s), this[t](), o = P.get(this, t), P.set(this, t, !1), s !== o)
2414
+ return r.stopImmediatePropagation(), r.preventDefault(), o;
2415
+ } else s && (P.set(this, t, i.event.trigger(
2416
+ s[0],
2417
+ s.slice(1),
2418
+ this
2419
+ )), r.stopPropagation(), r.isImmediatePropagationStopped = st);
2420
+ }
2421
+ });
2422
+ }
2423
+ i.removeEvent = function(e, t, n) {
2424
+ e.removeEventListener && e.removeEventListener(t, n);
2425
+ }, i.Event = function(e, t) {
2426
+ if (!(this instanceof i.Event))
2427
+ return new i.Event(e, t);
2428
+ e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || e.defaultPrevented === void 0 && // Support: Android <=2.3 only
2429
+ e.returnValue === !1 ? st : ut, this.target = e.target && e.target.nodeType === 3 ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && i.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[i.expando] = !0;
2430
+ }, i.Event.prototype = {
2431
+ constructor: i.Event,
2432
+ isDefaultPrevented: ut,
2433
+ isPropagationStopped: ut,
2434
+ isImmediatePropagationStopped: ut,
2435
+ isSimulated: !1,
2436
+ preventDefault: function() {
2437
+ var e = this.originalEvent;
2438
+ this.isDefaultPrevented = st, e && !this.isSimulated && e.preventDefault();
2439
+ },
2440
+ stopPropagation: function() {
2441
+ var e = this.originalEvent;
2442
+ this.isPropagationStopped = st, e && !this.isSimulated && e.stopPropagation();
2443
+ },
2444
+ stopImmediatePropagation: function() {
2445
+ var e = this.originalEvent;
2446
+ this.isImmediatePropagationStopped = st, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation();
2447
+ }
2448
+ }, i.each({
2449
+ altKey: !0,
2450
+ bubbles: !0,
2451
+ cancelable: !0,
2452
+ changedTouches: !0,
2453
+ ctrlKey: !0,
2454
+ detail: !0,
2455
+ eventPhase: !0,
2456
+ metaKey: !0,
2457
+ pageX: !0,
2458
+ pageY: !0,
2459
+ shiftKey: !0,
2460
+ view: !0,
2461
+ char: !0,
2462
+ code: !0,
2463
+ charCode: !0,
2464
+ key: !0,
2465
+ keyCode: !0,
2466
+ button: !0,
2467
+ buttons: !0,
2468
+ clientX: !0,
2469
+ clientY: !0,
2470
+ offsetX: !0,
2471
+ offsetY: !0,
2472
+ pointerId: !0,
2473
+ pointerType: !0,
2474
+ screenX: !0,
2475
+ screenY: !0,
2476
+ targetTouches: !0,
2477
+ toElement: !0,
2478
+ touches: !0,
2479
+ which: !0
2480
+ }, i.event.addProp), i.each({ focus: "focusin", blur: "focusout" }, function(e, t) {
2481
+ function n(r) {
2482
+ if (I.documentMode) {
2483
+ var o = P.get(this, "handle"), s = i.event.fix(r);
2484
+ s.type = r.type === "focusin" ? "focus" : "blur", s.isSimulated = !0, o(r), s.target === s.currentTarget && o(s);
2485
+ } else
2486
+ i.event.simulate(
2487
+ t,
2488
+ r.target,
2489
+ i.event.fix(r)
2490
+ );
2491
+ }
2492
+ i.event.special[e] = {
2493
+ // Utilize native event if possible so blur/focus sequence is correct
2494
+ setup: function() {
2495
+ var r;
2496
+ if (kt(this, e, !0), I.documentMode)
2497
+ r = P.get(this, t), r || this.addEventListener(t, n), P.set(this, t, (r || 0) + 1);
2498
+ else
2499
+ return !1;
2500
+ },
2501
+ trigger: function() {
2502
+ return kt(this, e), !0;
2503
+ },
2504
+ teardown: function() {
2505
+ var r;
2506
+ if (I.documentMode)
2507
+ r = P.get(this, t) - 1, r ? P.set(this, t, r) : (this.removeEventListener(t, n), P.remove(this, t));
2508
+ else
2509
+ return !1;
2510
+ },
2511
+ // Suppress native focus or blur if we're currently inside
2512
+ // a leveraged native-event stack
2513
+ _default: function(r) {
2514
+ return P.get(r.target, e);
2515
+ },
2516
+ delegateType: t
2517
+ }, i.event.special[t] = {
2518
+ setup: function() {
2519
+ var r = this.ownerDocument || this.document || this, o = I.documentMode ? this : r, s = P.get(o, t);
2520
+ s || (I.documentMode ? this.addEventListener(t, n) : r.addEventListener(e, n, !0)), P.set(o, t, (s || 0) + 1);
2521
+ },
2522
+ teardown: function() {
2523
+ var r = this.ownerDocument || this.document || this, o = I.documentMode ? this : r, s = P.get(o, t) - 1;
2524
+ s ? P.set(o, t, s) : (I.documentMode ? this.removeEventListener(t, n) : r.removeEventListener(e, n, !0), P.remove(o, t));
2525
+ }
2526
+ };
2527
+ }), i.each({
2528
+ mouseenter: "mouseover",
2529
+ mouseleave: "mouseout",
2530
+ pointerenter: "pointerover",
2531
+ pointerleave: "pointerout"
2532
+ }, function(e, t) {
2533
+ i.event.special[e] = {
2534
+ delegateType: t,
2535
+ bindType: t,
2536
+ handle: function(n) {
2537
+ var r, o = this, s = n.relatedTarget, u = n.handleObj;
2538
+ return (!s || s !== o && !i.contains(o, s)) && (n.type = u.origType, r = u.handler.apply(this, arguments), n.type = t), r;
2539
+ }
2540
+ };
2541
+ }), i.fn.extend({
2542
+ on: function(e, t, n, r) {
2543
+ return Rt(this, e, t, n, r);
2544
+ },
2545
+ one: function(e, t, n, r) {
2546
+ return Rt(this, e, t, n, r, 1);
2547
+ },
2548
+ off: function(e, t, n) {
2549
+ var r, o;
2550
+ if (e && e.preventDefault && e.handleObj)
2551
+ return r = e.handleObj, i(e.delegateTarget).off(
2552
+ r.namespace ? r.origType + "." + r.namespace : r.origType,
2553
+ r.selector,
2554
+ r.handler
2555
+ ), this;
2556
+ if (typeof e == "object") {
2557
+ for (o in e)
2558
+ this.off(o, t, e[o]);
2559
+ return this;
2560
+ }
2561
+ return (t === !1 || typeof t == "function") && (n = t, t = void 0), n === !1 && (n = ut), this.each(function() {
2562
+ i.event.remove(this, e, n, t);
2563
+ });
2564
+ }
2565
+ });
2566
+ var ar = /<script|<style|<link/i, fr = /checked\s*(?:[^=]|=\s*.checked.)/i, cr = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
2567
+ function gn(e, t) {
2568
+ return Q(e, "table") && Q(t.nodeType !== 11 ? t : t.firstChild, "tr") && i(e).children("tbody")[0] || e;
2569
+ }
2570
+ function lr(e) {
2571
+ return e.type = (e.getAttribute("type") !== null) + "/" + e.type, e;
2572
+ }
2573
+ function dr(e) {
2574
+ return (e.type || "").slice(0, 5) === "true/" ? e.type = e.type.slice(5) : e.removeAttribute("type"), e;
2575
+ }
2576
+ function yn(e, t) {
2577
+ var n, r, o, s, u, c, f;
2578
+ if (t.nodeType === 1) {
2579
+ if (P.hasData(e) && (s = P.get(e), f = s.events, f)) {
2580
+ P.remove(t, "handle events");
2581
+ for (o in f)
2582
+ for (n = 0, r = f[o].length; n < r; n++)
2583
+ i.event.add(t, o, f[o][n]);
2584
+ }
2585
+ be.hasData(e) && (u = be.access(e), c = i.extend({}, u), be.set(t, c));
2586
+ }
2587
+ }
2588
+ function pr(e, t) {
2589
+ var n = t.nodeName.toLowerCase();
2590
+ n === "input" && yt.test(e.type) ? t.checked = e.checked : (n === "input" || n === "textarea") && (t.defaultValue = e.defaultValue);
2591
+ }
2592
+ function at(e, t, n, r) {
2593
+ t = X(t);
2594
+ var o, s, u, c, f, d, y = 0, x = e.length, h = x - 1, S = t[0], V = m(S);
2595
+ if (V || x > 1 && typeof S == "string" && !D.checkClone && fr.test(S))
2596
+ return e.each(function(ne) {
2597
+ var Y = e.eq(ne);
2598
+ V && (t[0] = S.call(this, ne, Y.html())), at(Y, t, n, r);
2599
+ });
2600
+ if (x && (o = pn(t, e[0].ownerDocument, !1, e, r), s = o.firstChild, o.childNodes.length === 1 && (o = s), s || r)) {
2601
+ for (u = i.map(me(o, "script"), lr), c = u.length; y < x; y++)
2602
+ f = o, y !== h && (f = i.clone(f, !0, !0), c && i.merge(u, me(f, "script"))), n.call(e[y], f, y);
2603
+ if (c)
2604
+ for (d = u[u.length - 1].ownerDocument, i.map(u, dr), y = 0; y < c; y++)
2605
+ f = u[y], dn.test(f.type || "") && !P.access(f, "globalEval") && i.contains(d, f) && (f.src && (f.type || "").toLowerCase() !== "module" ? i._evalUrl && !f.noModule && i._evalUrl(f.src, {
2606
+ nonce: f.nonce || f.getAttribute("nonce")
2607
+ }, d) : O(f.textContent.replace(cr, ""), f, d));
2608
+ }
2609
+ return e;
2610
+ }
2611
+ function vn(e, t, n) {
2612
+ for (var r, o = t ? i.filter(t, e) : e, s = 0; (r = o[s]) != null; s++)
2613
+ !n && r.nodeType === 1 && i.cleanData(me(r)), r.parentNode && (n && it(r) && It(me(r, "script")), r.parentNode.removeChild(r));
2614
+ return e;
2615
+ }
2616
+ i.extend({
2617
+ htmlPrefilter: function(e) {
2618
+ return e;
2619
+ },
2620
+ clone: function(e, t, n) {
2621
+ var r, o, s, u, c = e.cloneNode(!0), f = it(e);
2622
+ if (!D.noCloneChecked && (e.nodeType === 1 || e.nodeType === 11) && !i.isXMLDoc(e))
2623
+ for (u = me(c), s = me(e), r = 0, o = s.length; r < o; r++)
2624
+ pr(s[r], u[r]);
2625
+ if (t)
2626
+ if (n)
2627
+ for (s = s || me(e), u = u || me(c), r = 0, o = s.length; r < o; r++)
2628
+ yn(s[r], u[r]);
2629
+ else
2630
+ yn(e, c);
2631
+ return u = me(c, "script"), u.length > 0 && It(u, !f && me(e, "script")), c;
2632
+ },
2633
+ cleanData: function(e) {
2634
+ for (var t, n, r, o = i.event.special, s = 0; (n = e[s]) !== void 0; s++)
2635
+ if (pt(n)) {
2636
+ if (t = n[P.expando]) {
2637
+ if (t.events)
2638
+ for (r in t.events)
2639
+ o[r] ? i.event.remove(n, r) : i.removeEvent(n, r, t.handle);
2640
+ n[P.expando] = void 0;
2641
+ }
2642
+ n[be.expando] && (n[be.expando] = void 0);
2643
+ }
2644
+ }
2645
+ }), i.fn.extend({
2646
+ detach: function(e) {
2647
+ return vn(this, e, !0);
2648
+ },
2649
+ remove: function(e) {
2650
+ return vn(this, e);
2651
+ },
2652
+ text: function(e) {
2653
+ return Fe(this, function(t) {
2654
+ return t === void 0 ? i.text(this) : this.empty().each(function() {
2655
+ (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) && (this.textContent = t);
2656
+ });
2657
+ }, null, e, arguments.length);
2658
+ },
2659
+ append: function() {
2660
+ return at(this, arguments, function(e) {
2661
+ if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {
2662
+ var t = gn(this, e);
2663
+ t.appendChild(e);
2664
+ }
2665
+ });
2666
+ },
2667
+ prepend: function() {
2668
+ return at(this, arguments, function(e) {
2669
+ if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {
2670
+ var t = gn(this, e);
2671
+ t.insertBefore(e, t.firstChild);
2672
+ }
2673
+ });
2674
+ },
2675
+ before: function() {
2676
+ return at(this, arguments, function(e) {
2677
+ this.parentNode && this.parentNode.insertBefore(e, this);
2678
+ });
2679
+ },
2680
+ after: function() {
2681
+ return at(this, arguments, function(e) {
2682
+ this.parentNode && this.parentNode.insertBefore(e, this.nextSibling);
2683
+ });
2684
+ },
2685
+ empty: function() {
2686
+ for (var e, t = 0; (e = this[t]) != null; t++)
2687
+ e.nodeType === 1 && (i.cleanData(me(e, !1)), e.textContent = "");
2688
+ return this;
2689
+ },
2690
+ clone: function(e, t) {
2691
+ return e = e ?? !1, t = t ?? e, this.map(function() {
2692
+ return i.clone(this, e, t);
2693
+ });
2694
+ },
2695
+ html: function(e) {
2696
+ return Fe(this, function(t) {
2697
+ var n = this[0] || {}, r = 0, o = this.length;
2698
+ if (t === void 0 && n.nodeType === 1)
2699
+ return n.innerHTML;
2700
+ if (typeof t == "string" && !ar.test(t) && !Se[(ln.exec(t) || ["", ""])[1].toLowerCase()]) {
2701
+ t = i.htmlPrefilter(t);
2702
+ try {
2703
+ for (; r < o; r++)
2704
+ n = this[r] || {}, n.nodeType === 1 && (i.cleanData(me(n, !1)), n.innerHTML = t);
2705
+ n = 0;
2706
+ } catch {
2707
+ }
2708
+ }
2709
+ n && this.empty().append(t);
2710
+ }, null, e, arguments.length);
2711
+ },
2712
+ replaceWith: function() {
2713
+ var e = [];
2714
+ return at(this, arguments, function(t) {
2715
+ var n = this.parentNode;
2716
+ i.inArray(this, e) < 0 && (i.cleanData(me(this)), n && n.replaceChild(t, this));
2717
+ }, e);
2718
+ }
2719
+ }), i.each({
2720
+ appendTo: "append",
2721
+ prependTo: "prepend",
2722
+ insertBefore: "before",
2723
+ insertAfter: "after",
2724
+ replaceAll: "replaceWith"
2725
+ }, function(e, t) {
2726
+ i.fn[e] = function(n) {
2727
+ for (var r, o = [], s = i(n), u = s.length - 1, c = 0; c <= u; c++)
2728
+ r = c === u ? this : this.clone(!0), i(s[c])[t](r), W.apply(o, r.get());
2729
+ return this.pushStack(o);
2730
+ };
2731
+ });
2732
+ var Mt = new RegExp("^(" + an + ")(?!px)[a-z%]+$", "i"), Pt = /^--/, jt = function(e) {
2733
+ var t = e.ownerDocument.defaultView;
2734
+ return (!t || !t.opener) && (t = B), t.getComputedStyle(e);
2735
+ }, xn = function(e, t, n) {
2736
+ var r, o, s = {};
2737
+ for (o in t)
2738
+ s[o] = e.style[o], e.style[o] = t[o];
2739
+ r = n.call(e);
2740
+ for (o in t)
2741
+ e.style[o] = s[o];
2742
+ return r;
2743
+ }, hr = new RegExp(We.join("|"), "i");
2744
+ (function() {
2745
+ function e() {
2746
+ if (d) {
2747
+ f.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", d.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", Qe.appendChild(f).appendChild(d);
2748
+ var y = B.getComputedStyle(d);
2749
+ n = y.top !== "1%", c = t(y.marginLeft) === 12, d.style.right = "60%", s = t(y.right) === 36, r = t(y.width) === 36, d.style.position = "absolute", o = t(d.offsetWidth / 3) === 12, Qe.removeChild(f), d = null;
2750
+ }
2751
+ }
2752
+ function t(y) {
2753
+ return Math.round(parseFloat(y));
2754
+ }
2755
+ var n, r, o, s, u, c, f = I.createElement("div"), d = I.createElement("div");
2756
+ d.style && (d.style.backgroundClip = "content-box", d.cloneNode(!0).style.backgroundClip = "", D.clearCloneStyle = d.style.backgroundClip === "content-box", i.extend(D, {
2757
+ boxSizingReliable: function() {
2758
+ return e(), r;
2759
+ },
2760
+ pixelBoxStyles: function() {
2761
+ return e(), s;
2762
+ },
2763
+ pixelPosition: function() {
2764
+ return e(), n;
2765
+ },
2766
+ reliableMarginLeft: function() {
2767
+ return e(), c;
2768
+ },
2769
+ scrollboxSize: function() {
2770
+ return e(), o;
2771
+ },
2772
+ // Support: IE 9 - 11+, Edge 15 - 18+
2773
+ // IE/Edge misreport `getComputedStyle` of table rows with width/height
2774
+ // set in CSS while `offset*` properties report correct values.
2775
+ // Behavior in IE 9 is more subtle than in newer versions & it passes
2776
+ // some versions of this test; make sure not to make it pass there!
2777
+ //
2778
+ // Support: Firefox 70+
2779
+ // Only Firefox includes border widths
2780
+ // in computed dimensions. (gh-4529)
2781
+ reliableTrDimensions: function() {
2782
+ var y, x, h, S;
2783
+ return u == null && (y = I.createElement("table"), x = I.createElement("tr"), h = I.createElement("div"), y.style.cssText = "position:absolute;left:-11111px;border-collapse:separate", x.style.cssText = "box-sizing:content-box;border:1px solid", x.style.height = "1px", h.style.height = "9px", h.style.display = "block", Qe.appendChild(y).appendChild(x).appendChild(h), S = B.getComputedStyle(x), u = parseInt(S.height, 10) + parseInt(S.borderTopWidth, 10) + parseInt(S.borderBottomWidth, 10) === x.offsetHeight, Qe.removeChild(y)), u;
2784
+ }
2785
+ }));
2786
+ })();
2787
+ function vt(e, t, n) {
2788
+ var r, o, s, u, c = Pt.test(t), f = e.style;
2789
+ return n = n || jt(e), n && (u = n.getPropertyValue(t) || n[t], c && u && (u = u.replace(Oe, "$1") || void 0), u === "" && !it(e) && (u = i.style(e, t)), !D.pixelBoxStyles() && Mt.test(u) && hr.test(t) && (r = f.width, o = f.minWidth, s = f.maxWidth, f.minWidth = f.maxWidth = f.width = u, u = n.width, f.width = r, f.minWidth = o, f.maxWidth = s)), u !== void 0 ? (
2790
+ // Support: IE <=9 - 11 only
2791
+ // IE returns zIndex value as an integer.
2792
+ u + ""
2793
+ ) : u;
2794
+ }
2795
+ function bn(e, t) {
2796
+ return {
2797
+ get: function() {
2798
+ if (e()) {
2799
+ delete this.get;
2800
+ return;
2801
+ }
2802
+ return (this.get = t).apply(this, arguments);
2803
+ }
2804
+ };
2805
+ }
2806
+ var mn = ["Webkit", "Moz", "ms"], Cn = I.createElement("div").style, Tn = {};
2807
+ function gr(e) {
2808
+ for (var t = e[0].toUpperCase() + e.slice(1), n = mn.length; n--; )
2809
+ if (e = mn[n] + t, e in Cn)
2810
+ return e;
2811
+ }
2812
+ function Bt(e) {
2813
+ var t = i.cssProps[e] || Tn[e];
2814
+ return t || (e in Cn ? e : Tn[e] = gr(e) || e);
2815
+ }
2816
+ var yr = /^(none|table(?!-c[ea]).+)/, vr = { position: "absolute", visibility: "hidden", display: "block" }, wn = {
2817
+ letterSpacing: "0",
2818
+ fontWeight: "400"
2819
+ };
2820
+ function Sn(e, t, n) {
2821
+ var r = gt.exec(t);
2822
+ return r ? (
2823
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
2824
+ Math.max(0, r[2] - (n || 0)) + (r[3] || "px")
2825
+ ) : t;
2826
+ }
2827
+ function Ft(e, t, n, r, o, s) {
2828
+ var u = t === "width" ? 1 : 0, c = 0, f = 0, d = 0;
2829
+ if (n === (r ? "border" : "content"))
2830
+ return 0;
2831
+ for (; u < 4; u += 2)
2832
+ n === "margin" && (d += i.css(e, n + We[u], !0, o)), r ? (n === "content" && (f -= i.css(e, "padding" + We[u], !0, o)), n !== "margin" && (f -= i.css(e, "border" + We[u] + "Width", !0, o))) : (f += i.css(e, "padding" + We[u], !0, o), n !== "padding" ? f += i.css(e, "border" + We[u] + "Width", !0, o) : c += i.css(e, "border" + We[u] + "Width", !0, o));
2833
+ return !r && s >= 0 && (f += Math.max(0, Math.ceil(
2834
+ e["offset" + t[0].toUpperCase() + t.slice(1)] - s - f - c - 0.5
2835
+ // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
2836
+ // Use an explicit zero to avoid NaN (gh-3964)
2837
+ )) || 0), f + d;
2838
+ }
2839
+ function Nn(e, t, n) {
2840
+ var r = jt(e), o = !D.boxSizingReliable() || n, s = o && i.css(e, "boxSizing", !1, r) === "border-box", u = s, c = vt(e, t, r), f = "offset" + t[0].toUpperCase() + t.slice(1);
2841
+ if (Mt.test(c)) {
2842
+ if (!n)
2843
+ return c;
2844
+ c = "auto";
2845
+ }
2846
+ return (!D.boxSizingReliable() && s || // Support: IE 10 - 11+, Edge 15 - 18+
2847
+ // IE/Edge misreport `getComputedStyle` of table rows with width/height
2848
+ // set in CSS while `offset*` properties report correct values.
2849
+ // Interestingly, in some cases IE 9 doesn't suffer from this issue.
2850
+ !D.reliableTrDimensions() && Q(e, "tr") || // Fall back to offsetWidth/offsetHeight when value is "auto"
2851
+ // This happens for inline elements with no explicit setting (gh-3571)
2852
+ c === "auto" || // Support: Android <=4.1 - 4.3 only
2853
+ // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
2854
+ !parseFloat(c) && i.css(e, "display", !1, r) === "inline") && // Make sure the element is visible & connected
2855
+ e.getClientRects().length && (s = i.css(e, "boxSizing", !1, r) === "border-box", u = f in e, u && (c = e[f])), c = parseFloat(c) || 0, c + Ft(
2856
+ e,
2857
+ t,
2858
+ n || (s ? "border" : "content"),
2859
+ u,
2860
+ r,
2861
+ // Provide the current computed size to request scroll gutter calculation (gh-3589)
2862
+ c
2863
+ ) + "px";
2864
+ }
2865
+ i.extend({
2866
+ // Add in style property hooks for overriding the default
2867
+ // behavior of getting and setting a style property
2868
+ cssHooks: {
2869
+ opacity: {
2870
+ get: function(e, t) {
2871
+ if (t) {
2872
+ var n = vt(e, "opacity");
2873
+ return n === "" ? "1" : n;
2874
+ }
2875
+ }
2876
+ }
2877
+ },
2878
+ // Don't automatically add "px" to these possibly-unitless properties
2879
+ cssNumber: {
2880
+ animationIterationCount: !0,
2881
+ aspectRatio: !0,
2882
+ borderImageSlice: !0,
2883
+ columnCount: !0,
2884
+ flexGrow: !0,
2885
+ flexShrink: !0,
2886
+ fontWeight: !0,
2887
+ gridArea: !0,
2888
+ gridColumn: !0,
2889
+ gridColumnEnd: !0,
2890
+ gridColumnStart: !0,
2891
+ gridRow: !0,
2892
+ gridRowEnd: !0,
2893
+ gridRowStart: !0,
2894
+ lineHeight: !0,
2895
+ opacity: !0,
2896
+ order: !0,
2897
+ orphans: !0,
2898
+ scale: !0,
2899
+ widows: !0,
2900
+ zIndex: !0,
2901
+ zoom: !0,
2902
+ // SVG-related
2903
+ fillOpacity: !0,
2904
+ floodOpacity: !0,
2905
+ stopOpacity: !0,
2906
+ strokeMiterlimit: !0,
2907
+ strokeOpacity: !0
2908
+ },
2909
+ // Add in properties whose names you wish to fix before
2910
+ // setting or getting the value
2911
+ cssProps: {},
2912
+ // Get and set the style property on a DOM Node
2913
+ style: function(e, t, n, r) {
2914
+ if (!(!e || e.nodeType === 3 || e.nodeType === 8 || !e.style)) {
2915
+ var o, s, u, c = He(t), f = Pt.test(t), d = e.style;
2916
+ if (f || (t = Bt(c)), u = i.cssHooks[t] || i.cssHooks[c], n !== void 0) {
2917
+ if (s = typeof n, s === "string" && (o = gt.exec(n)) && o[1] && (n = fn(e, t, o), s = "number"), n == null || n !== n)
2918
+ return;
2919
+ s === "number" && !f && (n += o && o[3] || (i.cssNumber[c] ? "" : "px")), !D.clearCloneStyle && n === "" && t.indexOf("background") === 0 && (d[t] = "inherit"), (!u || !("set" in u) || (n = u.set(e, n, r)) !== void 0) && (f ? d.setProperty(t, n) : d[t] = n);
2920
+ } else
2921
+ return u && "get" in u && (o = u.get(e, !1, r)) !== void 0 ? o : d[t];
2922
+ }
2923
+ },
2924
+ css: function(e, t, n, r) {
2925
+ var o, s, u, c = He(t), f = Pt.test(t);
2926
+ return f || (t = Bt(c)), u = i.cssHooks[t] || i.cssHooks[c], u && "get" in u && (o = u.get(e, !0, n)), o === void 0 && (o = vt(e, t, r)), o === "normal" && t in wn && (o = wn[t]), n === "" || n ? (s = parseFloat(o), n === !0 || isFinite(s) ? s || 0 : o) : o;
2927
+ }
2928
+ }), i.each(["height", "width"], function(e, t) {
2929
+ i.cssHooks[t] = {
2930
+ get: function(n, r, o) {
2931
+ if (r)
2932
+ return yr.test(i.css(n, "display")) && // Support: Safari 8+
2933
+ // Table columns in Safari have non-zero offsetWidth & zero
2934
+ // getBoundingClientRect().width unless display is changed.
2935
+ // Support: IE <=11 only
2936
+ // Running getBoundingClientRect on a disconnected node
2937
+ // in IE throws an error.
2938
+ (!n.getClientRects().length || !n.getBoundingClientRect().width) ? xn(n, vr, function() {
2939
+ return Nn(n, t, o);
2940
+ }) : Nn(n, t, o);
2941
+ },
2942
+ set: function(n, r, o) {
2943
+ var s, u = jt(n), c = !D.scrollboxSize() && u.position === "absolute", f = c || o, d = f && i.css(n, "boxSizing", !1, u) === "border-box", y = o ? Ft(
2944
+ n,
2945
+ t,
2946
+ o,
2947
+ d,
2948
+ u
2949
+ ) : 0;
2950
+ return d && c && (y -= Math.ceil(
2951
+ n["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(u[t]) - Ft(n, t, "border", !1, u) - 0.5
2952
+ )), y && (s = gt.exec(r)) && (s[3] || "px") !== "px" && (n.style[t] = r, r = i.css(n, t)), Sn(n, r, y);
2953
+ }
2954
+ };
2955
+ }), i.cssHooks.marginLeft = bn(
2956
+ D.reliableMarginLeft,
2957
+ function(e, t) {
2958
+ if (t)
2959
+ return (parseFloat(vt(e, "marginLeft")) || e.getBoundingClientRect().left - xn(e, { marginLeft: 0 }, function() {
2960
+ return e.getBoundingClientRect().left;
2961
+ })) + "px";
2962
+ }
2963
+ ), i.each({
2964
+ margin: "",
2965
+ padding: "",
2966
+ border: "Width"
2967
+ }, function(e, t) {
2968
+ i.cssHooks[e + t] = {
2969
+ expand: function(n) {
2970
+ for (var r = 0, o = {}, s = typeof n == "string" ? n.split(" ") : [n]; r < 4; r++)
2971
+ o[e + We[r] + t] = s[r] || s[r - 2] || s[0];
2972
+ return o;
2973
+ }
2974
+ }, e !== "margin" && (i.cssHooks[e + t].set = Sn);
2975
+ }), i.fn.extend({
2976
+ css: function(e, t) {
2977
+ return Fe(this, function(n, r, o) {
2978
+ var s, u, c = {}, f = 0;
2979
+ if (Array.isArray(r)) {
2980
+ for (s = jt(n), u = r.length; f < u; f++)
2981
+ c[r[f]] = i.css(n, r[f], !1, s);
2982
+ return c;
2983
+ }
2984
+ return o !== void 0 ? i.style(n, r, o) : i.css(n, r);
2985
+ }, e, t, arguments.length > 1);
2986
+ }
2987
+ });
2988
+ function Ce(e, t, n, r, o) {
2989
+ return new Ce.prototype.init(e, t, n, r, o);
2990
+ }
2991
+ i.Tween = Ce, Ce.prototype = {
2992
+ constructor: Ce,
2993
+ init: function(e, t, n, r, o, s) {
2994
+ this.elem = e, this.prop = n, this.easing = o || i.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = s || (i.cssNumber[n] ? "" : "px");
2995
+ },
2996
+ cur: function() {
2997
+ var e = Ce.propHooks[this.prop];
2998
+ return e && e.get ? e.get(this) : Ce.propHooks._default.get(this);
2999
+ },
3000
+ run: function(e) {
3001
+ var t, n = Ce.propHooks[this.prop];
3002
+ return this.options.duration ? this.pos = t = i.easing[this.easing](
3003
+ e,
3004
+ this.options.duration * e,
3005
+ 0,
3006
+ 1,
3007
+ this.options.duration
3008
+ ) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : Ce.propHooks._default.set(this), this;
3009
+ }
3010
+ }, Ce.prototype.init.prototype = Ce.prototype, Ce.propHooks = {
3011
+ _default: {
3012
+ get: function(e) {
3013
+ var t;
3014
+ return e.elem.nodeType !== 1 || e.elem[e.prop] != null && e.elem.style[e.prop] == null ? e.elem[e.prop] : (t = i.css(e.elem, e.prop, ""), !t || t === "auto" ? 0 : t);
3015
+ },
3016
+ set: function(e) {
3017
+ i.fx.step[e.prop] ? i.fx.step[e.prop](e) : e.elem.nodeType === 1 && (i.cssHooks[e.prop] || e.elem.style[Bt(e.prop)] != null) ? i.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now;
3018
+ }
3019
+ }
3020
+ }, Ce.propHooks.scrollTop = Ce.propHooks.scrollLeft = {
3021
+ set: function(e) {
3022
+ e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
3023
+ }
3024
+ }, i.easing = {
3025
+ linear: function(e) {
3026
+ return e;
3027
+ },
3028
+ swing: function(e) {
3029
+ return 0.5 - Math.cos(e * Math.PI) / 2;
3030
+ },
3031
+ _default: "swing"
3032
+ }, i.fx = Ce.prototype.init, i.fx.step = {};
3033
+ var ft, At, xr = /^(?:toggle|show|hide)$/, br = /queueHooks$/;
3034
+ function Wt() {
3035
+ At && (I.hidden === !1 && B.requestAnimationFrame ? B.requestAnimationFrame(Wt) : B.setTimeout(Wt, i.fx.interval), i.fx.tick());
3036
+ }
3037
+ function En() {
3038
+ return B.setTimeout(function() {
3039
+ ft = void 0;
3040
+ }), ft = Date.now();
3041
+ }
3042
+ function _t(e, t) {
3043
+ var n, r = 0, o = { height: e };
3044
+ for (t = t ? 1 : 0; r < 4; r += 2 - t)
3045
+ n = We[r], o["margin" + n] = o["padding" + n] = e;
3046
+ return t && (o.opacity = o.width = e), o;
3047
+ }
3048
+ function kn(e, t, n) {
3049
+ for (var r, o = (Ae.tweeners[t] || []).concat(Ae.tweeners["*"]), s = 0, u = o.length; s < u; s++)
3050
+ if (r = o[s].call(n, t, e))
3051
+ return r;
3052
+ }
3053
+ function mr(e, t, n) {
3054
+ var r, o, s, u, c, f, d, y, x = "width" in t || "height" in t, h = this, S = {}, V = e.style, ne = e.nodeType && Et(e), Y = P.get(e, "fxshow");
3055
+ n.queue || (u = i._queueHooks(e, "fx"), u.unqueued == null && (u.unqueued = 0, c = u.empty.fire, u.empty.fire = function() {
3056
+ u.unqueued || c();
3057
+ }), u.unqueued++, h.always(function() {
3058
+ h.always(function() {
3059
+ u.unqueued--, i.queue(e, "fx").length || u.empty.fire();
3060
+ });
3061
+ }));
3062
+ for (r in t)
3063
+ if (o = t[r], xr.test(o)) {
3064
+ if (delete t[r], s = s || o === "toggle", o === (ne ? "hide" : "show"))
3065
+ if (o === "show" && Y && Y[r] !== void 0)
3066
+ ne = !0;
3067
+ else
3068
+ continue;
3069
+ S[r] = Y && Y[r] || i.style(e, r);
3070
+ }
3071
+ if (f = !i.isEmptyObject(t), !(!f && i.isEmptyObject(S))) {
3072
+ x && e.nodeType === 1 && (n.overflow = [V.overflow, V.overflowX, V.overflowY], d = Y && Y.display, d == null && (d = P.get(e, "display")), y = i.css(e, "display"), y === "none" && (d ? y = d : (ot([e], !0), d = e.style.display || d, y = i.css(e, "display"), ot([e]))), (y === "inline" || y === "inline-block" && d != null) && i.css(e, "float") === "none" && (f || (h.done(function() {
3073
+ V.display = d;
3074
+ }), d == null && (y = V.display, d = y === "none" ? "" : y)), V.display = "inline-block")), n.overflow && (V.overflow = "hidden", h.always(function() {
3075
+ V.overflow = n.overflow[0], V.overflowX = n.overflow[1], V.overflowY = n.overflow[2];
3076
+ })), f = !1;
3077
+ for (r in S)
3078
+ f || (Y ? "hidden" in Y && (ne = Y.hidden) : Y = P.access(e, "fxshow", { display: d }), s && (Y.hidden = !ne), ne && ot([e], !0), h.done(function() {
3079
+ ne || ot([e]), P.remove(e, "fxshow");
3080
+ for (r in S)
3081
+ i.style(e, r, S[r]);
3082
+ })), f = kn(ne ? Y[r] : 0, r, h), r in Y || (Y[r] = f.start, ne && (f.end = f.start, f.start = 0));
3083
+ }
3084
+ }
3085
+ function Cr(e, t) {
3086
+ var n, r, o, s, u;
3087
+ for (n in e)
3088
+ if (r = He(n), o = t[r], s = e[n], Array.isArray(s) && (o = s[1], s = e[n] = s[0]), n !== r && (e[r] = s, delete e[n]), u = i.cssHooks[r], u && "expand" in u) {
3089
+ s = u.expand(s), delete e[r];
3090
+ for (n in s)
3091
+ n in e || (e[n] = s[n], t[n] = o);
3092
+ } else
3093
+ t[r] = o;
3094
+ }
3095
+ function Ae(e, t, n) {
3096
+ var r, o, s = 0, u = Ae.prefilters.length, c = i.Deferred().always(function() {
3097
+ delete f.elem;
3098
+ }), f = function() {
3099
+ if (o)
3100
+ return !1;
3101
+ for (var x = ft || En(), h = Math.max(0, d.startTime + d.duration - x), S = h / d.duration || 0, V = 1 - S, ne = 0, Y = d.tweens.length; ne < Y; ne++)
3102
+ d.tweens[ne].run(V);
3103
+ return c.notifyWith(e, [d, V, h]), V < 1 && Y ? h : (Y || c.notifyWith(e, [d, 1, 0]), c.resolveWith(e, [d]), !1);
3104
+ }, d = c.promise({
3105
+ elem: e,
3106
+ props: i.extend({}, t),
3107
+ opts: i.extend(!0, {
3108
+ specialEasing: {},
3109
+ easing: i.easing._default
3110
+ }, n),
3111
+ originalProperties: t,
3112
+ originalOptions: n,
3113
+ startTime: ft || En(),
3114
+ duration: n.duration,
3115
+ tweens: [],
3116
+ createTween: function(x, h) {
3117
+ var S = i.Tween(
3118
+ e,
3119
+ d.opts,
3120
+ x,
3121
+ h,
3122
+ d.opts.specialEasing[x] || d.opts.easing
3123
+ );
3124
+ return d.tweens.push(S), S;
3125
+ },
3126
+ stop: function(x) {
3127
+ var h = 0, S = x ? d.tweens.length : 0;
3128
+ if (o)
3129
+ return this;
3130
+ for (o = !0; h < S; h++)
3131
+ d.tweens[h].run(1);
3132
+ return x ? (c.notifyWith(e, [d, 1, 0]), c.resolveWith(e, [d, x])) : c.rejectWith(e, [d, x]), this;
3133
+ }
3134
+ }), y = d.props;
3135
+ for (Cr(y, d.opts.specialEasing); s < u; s++)
3136
+ if (r = Ae.prefilters[s].call(d, e, y, d.opts), r)
3137
+ return m(r.stop) && (i._queueHooks(d.elem, d.opts.queue).stop = r.stop.bind(r)), r;
3138
+ return i.map(y, kn, d), m(d.opts.start) && d.opts.start.call(e, d), d.progress(d.opts.progress).done(d.opts.done, d.opts.complete).fail(d.opts.fail).always(d.opts.always), i.fx.timer(
3139
+ i.extend(f, {
3140
+ elem: e,
3141
+ anim: d,
3142
+ queue: d.opts.queue
3143
+ })
3144
+ ), d;
3145
+ }
3146
+ i.Animation = i.extend(Ae, {
3147
+ tweeners: {
3148
+ "*": [function(e, t) {
3149
+ var n = this.createTween(e, t);
3150
+ return fn(n.elem, e, gt.exec(t), n), n;
3151
+ }]
3152
+ },
3153
+ tweener: function(e, t) {
3154
+ m(e) ? (t = e, e = ["*"]) : e = e.match(Le);
3155
+ for (var n, r = 0, o = e.length; r < o; r++)
3156
+ n = e[r], Ae.tweeners[n] = Ae.tweeners[n] || [], Ae.tweeners[n].unshift(t);
3157
+ },
3158
+ prefilters: [mr],
3159
+ prefilter: function(e, t) {
3160
+ t ? Ae.prefilters.unshift(e) : Ae.prefilters.push(e);
3161
+ }
3162
+ }), i.speed = function(e, t, n) {
3163
+ var r = e && typeof e == "object" ? i.extend({}, e) : {
3164
+ complete: n || !n && t || m(e) && e,
3165
+ duration: e,
3166
+ easing: n && t || t && !m(t) && t
3167
+ };
3168
+ return i.fx.off ? r.duration = 0 : typeof r.duration != "number" && (r.duration in i.fx.speeds ? r.duration = i.fx.speeds[r.duration] : r.duration = i.fx.speeds._default), (r.queue == null || r.queue === !0) && (r.queue = "fx"), r.old = r.complete, r.complete = function() {
3169
+ m(r.old) && r.old.call(this), r.queue && i.dequeue(this, r.queue);
3170
+ }, r;
3171
+ }, i.fn.extend({
3172
+ fadeTo: function(e, t, n, r) {
3173
+ return this.filter(Et).css("opacity", 0).show().end().animate({ opacity: t }, e, n, r);
3174
+ },
3175
+ animate: function(e, t, n, r) {
3176
+ var o = i.isEmptyObject(e), s = i.speed(t, n, r), u = function() {
3177
+ var c = Ae(this, i.extend({}, e), s);
3178
+ (o || P.get(this, "finish")) && c.stop(!0);
3179
+ };
3180
+ return u.finish = u, o || s.queue === !1 ? this.each(u) : this.queue(s.queue, u);
3181
+ },
3182
+ stop: function(e, t, n) {
3183
+ var r = function(o) {
3184
+ var s = o.stop;
3185
+ delete o.stop, s(n);
3186
+ };
3187
+ return typeof e != "string" && (n = t, t = e, e = void 0), t && this.queue(e || "fx", []), this.each(function() {
3188
+ var o = !0, s = e != null && e + "queueHooks", u = i.timers, c = P.get(this);
3189
+ if (s)
3190
+ c[s] && c[s].stop && r(c[s]);
3191
+ else
3192
+ for (s in c)
3193
+ c[s] && c[s].stop && br.test(s) && r(c[s]);
3194
+ for (s = u.length; s--; )
3195
+ u[s].elem === this && (e == null || u[s].queue === e) && (u[s].anim.stop(n), o = !1, u.splice(s, 1));
3196
+ (o || !n) && i.dequeue(this, e);
3197
+ });
3198
+ },
3199
+ finish: function(e) {
3200
+ return e !== !1 && (e = e || "fx"), this.each(function() {
3201
+ var t, n = P.get(this), r = n[e + "queue"], o = n[e + "queueHooks"], s = i.timers, u = r ? r.length : 0;
3202
+ for (n.finish = !0, i.queue(this, e, []), o && o.stop && o.stop.call(this, !0), t = s.length; t--; )
3203
+ s[t].elem === this && s[t].queue === e && (s[t].anim.stop(!0), s.splice(t, 1));
3204
+ for (t = 0; t < u; t++)
3205
+ r[t] && r[t].finish && r[t].finish.call(this);
3206
+ delete n.finish;
3207
+ });
3208
+ }
3209
+ }), i.each(["toggle", "show", "hide"], function(e, t) {
3210
+ var n = i.fn[t];
3211
+ i.fn[t] = function(r, o, s) {
3212
+ return r == null || typeof r == "boolean" ? n.apply(this, arguments) : this.animate(_t(t, !0), r, o, s);
3213
+ };
3214
+ }), i.each({
3215
+ slideDown: _t("show"),
3216
+ slideUp: _t("hide"),
3217
+ slideToggle: _t("toggle"),
3218
+ fadeIn: { opacity: "show" },
3219
+ fadeOut: { opacity: "hide" },
3220
+ fadeToggle: { opacity: "toggle" }
3221
+ }, function(e, t) {
3222
+ i.fn[e] = function(n, r, o) {
3223
+ return this.animate(t, n, r, o);
3224
+ };
3225
+ }), i.timers = [], i.fx.tick = function() {
3226
+ var e, t = 0, n = i.timers;
3227
+ for (ft = Date.now(); t < n.length; t++)
3228
+ e = n[t], !e() && n[t] === e && n.splice(t--, 1);
3229
+ n.length || i.fx.stop(), ft = void 0;
3230
+ }, i.fx.timer = function(e) {
3231
+ i.timers.push(e), i.fx.start();
3232
+ }, i.fx.interval = 13, i.fx.start = function() {
3233
+ At || (At = !0, Wt());
3234
+ }, i.fx.stop = function() {
3235
+ At = null;
3236
+ }, i.fx.speeds = {
3237
+ slow: 600,
3238
+ fast: 200,
3239
+ // Default speed
3240
+ _default: 400
3241
+ }, i.fn.delay = function(e, t) {
3242
+ return e = i.fx && i.fx.speeds[e] || e, t = t || "fx", this.queue(t, function(n, r) {
3243
+ var o = B.setTimeout(n, e);
3244
+ r.stop = function() {
3245
+ B.clearTimeout(o);
3246
+ };
3247
+ });
3248
+ }, function() {
3249
+ var e = I.createElement("input"), t = I.createElement("select"), n = t.appendChild(I.createElement("option"));
3250
+ e.type = "checkbox", D.checkOn = e.value !== "", D.optSelected = n.selected, e = I.createElement("input"), e.value = "t", e.type = "radio", D.radioValue = e.value === "t";
3251
+ }();
3252
+ var jn, xt = i.expr.attrHandle;
3253
+ i.fn.extend({
3254
+ attr: function(e, t) {
3255
+ return Fe(this, i.attr, e, t, arguments.length > 1);
3256
+ },
3257
+ removeAttr: function(e) {
3258
+ return this.each(function() {
3259
+ i.removeAttr(this, e);
3260
+ });
3261
+ }
3262
+ }), i.extend({
3263
+ attr: function(e, t, n) {
3264
+ var r, o, s = e.nodeType;
3265
+ if (!(s === 3 || s === 8 || s === 2)) {
3266
+ if (typeof e.getAttribute > "u")
3267
+ return i.prop(e, t, n);
3268
+ if ((s !== 1 || !i.isXMLDoc(e)) && (o = i.attrHooks[t.toLowerCase()] || (i.expr.match.bool.test(t) ? jn : void 0)), n !== void 0) {
3269
+ if (n === null) {
3270
+ i.removeAttr(e, t);
3271
+ return;
3272
+ }
3273
+ return o && "set" in o && (r = o.set(e, n, t)) !== void 0 ? r : (e.setAttribute(t, n + ""), n);
3274
+ }
3275
+ return o && "get" in o && (r = o.get(e, t)) !== null ? r : (r = i.find.attr(e, t), r ?? void 0);
3276
+ }
3277
+ },
3278
+ attrHooks: {
3279
+ type: {
3280
+ set: function(e, t) {
3281
+ if (!D.radioValue && t === "radio" && Q(e, "input")) {
3282
+ var n = e.value;
3283
+ return e.setAttribute("type", t), n && (e.value = n), t;
3284
+ }
3285
+ }
3286
+ }
3287
+ },
3288
+ removeAttr: function(e, t) {
3289
+ var n, r = 0, o = t && t.match(Le);
3290
+ if (o && e.nodeType === 1)
3291
+ for (; n = o[r++]; )
3292
+ e.removeAttribute(n);
3293
+ }
3294
+ }), jn = {
3295
+ set: function(e, t, n) {
3296
+ return t === !1 ? i.removeAttr(e, n) : e.setAttribute(n, n), n;
3297
+ }
3298
+ }, i.each(i.expr.match.bool.source.match(/\w+/g), function(e, t) {
3299
+ var n = xt[t] || i.find.attr;
3300
+ xt[t] = function(r, o, s) {
3301
+ var u, c, f = o.toLowerCase();
3302
+ return s || (c = xt[f], xt[f] = u, u = n(r, o, s) != null ? f : null, xt[f] = c), u;
3303
+ };
3304
+ });
3305
+ var Tr = /^(?:input|select|textarea|button)$/i, wr = /^(?:a|area)$/i;
3306
+ i.fn.extend({
3307
+ prop: function(e, t) {
3308
+ return Fe(this, i.prop, e, t, arguments.length > 1);
3309
+ },
3310
+ removeProp: function(e) {
3311
+ return this.each(function() {
3312
+ delete this[i.propFix[e] || e];
3313
+ });
3314
+ }
3315
+ }), i.extend({
3316
+ prop: function(e, t, n) {
3317
+ var r, o, s = e.nodeType;
3318
+ if (!(s === 3 || s === 8 || s === 2))
3319
+ return (s !== 1 || !i.isXMLDoc(e)) && (t = i.propFix[t] || t, o = i.propHooks[t]), n !== void 0 ? o && "set" in o && (r = o.set(e, n, t)) !== void 0 ? r : e[t] = n : o && "get" in o && (r = o.get(e, t)) !== null ? r : e[t];
3320
+ },
3321
+ propHooks: {
3322
+ tabIndex: {
3323
+ get: function(e) {
3324
+ var t = i.find.attr(e, "tabindex");
3325
+ return t ? parseInt(t, 10) : Tr.test(e.nodeName) || wr.test(e.nodeName) && e.href ? 0 : -1;
3326
+ }
3327
+ }
3328
+ },
3329
+ propFix: {
3330
+ for: "htmlFor",
3331
+ class: "className"
3332
+ }
3333
+ }), D.optSelected || (i.propHooks.selected = {
3334
+ get: function(e) {
3335
+ var t = e.parentNode;
3336
+ return t && t.parentNode && t.parentNode.selectedIndex, null;
3337
+ },
3338
+ set: function(e) {
3339
+ var t = e.parentNode;
3340
+ t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex);
3341
+ }
3342
+ }), i.each([
3343
+ "tabIndex",
3344
+ "readOnly",
3345
+ "maxLength",
3346
+ "cellSpacing",
3347
+ "cellPadding",
3348
+ "rowSpan",
3349
+ "colSpan",
3350
+ "useMap",
3351
+ "frameBorder",
3352
+ "contentEditable"
3353
+ ], function() {
3354
+ i.propFix[this.toLowerCase()] = this;
3355
+ });
3356
+ function Ye(e) {
3357
+ var t = e.match(Le) || [];
3358
+ return t.join(" ");
3359
+ }
3360
+ function Je(e) {
3361
+ return e.getAttribute && e.getAttribute("class") || "";
3362
+ }
3363
+ function $t(e) {
3364
+ return Array.isArray(e) ? e : typeof e == "string" ? e.match(Le) || [] : [];
3365
+ }
3366
+ i.fn.extend({
3367
+ addClass: function(e) {
3368
+ var t, n, r, o, s, u;
3369
+ return m(e) ? this.each(function(c) {
3370
+ i(this).addClass(e.call(this, c, Je(this)));
3371
+ }) : (t = $t(e), t.length ? this.each(function() {
3372
+ if (r = Je(this), n = this.nodeType === 1 && " " + Ye(r) + " ", n) {
3373
+ for (s = 0; s < t.length; s++)
3374
+ o = t[s], n.indexOf(" " + o + " ") < 0 && (n += o + " ");
3375
+ u = Ye(n), r !== u && this.setAttribute("class", u);
3376
+ }
3377
+ }) : this);
3378
+ },
3379
+ removeClass: function(e) {
3380
+ var t, n, r, o, s, u;
3381
+ return m(e) ? this.each(function(c) {
3382
+ i(this).removeClass(e.call(this, c, Je(this)));
3383
+ }) : arguments.length ? (t = $t(e), t.length ? this.each(function() {
3384
+ if (r = Je(this), n = this.nodeType === 1 && " " + Ye(r) + " ", n) {
3385
+ for (s = 0; s < t.length; s++)
3386
+ for (o = t[s]; n.indexOf(" " + o + " ") > -1; )
3387
+ n = n.replace(" " + o + " ", " ");
3388
+ u = Ye(n), r !== u && this.setAttribute("class", u);
3389
+ }
3390
+ }) : this) : this.attr("class", "");
3391
+ },
3392
+ toggleClass: function(e, t) {
3393
+ var n, r, o, s, u = typeof e, c = u === "string" || Array.isArray(e);
3394
+ return m(e) ? this.each(function(f) {
3395
+ i(this).toggleClass(
3396
+ e.call(this, f, Je(this), t),
3397
+ t
3398
+ );
3399
+ }) : typeof t == "boolean" && c ? t ? this.addClass(e) : this.removeClass(e) : (n = $t(e), this.each(function() {
3400
+ if (c)
3401
+ for (s = i(this), o = 0; o < n.length; o++)
3402
+ r = n[o], s.hasClass(r) ? s.removeClass(r) : s.addClass(r);
3403
+ else (e === void 0 || u === "boolean") && (r = Je(this), r && P.set(this, "__className__", r), this.setAttribute && this.setAttribute(
3404
+ "class",
3405
+ r || e === !1 ? "" : P.get(this, "__className__") || ""
3406
+ ));
3407
+ }));
3408
+ },
3409
+ hasClass: function(e) {
3410
+ var t, n, r = 0;
3411
+ for (t = " " + e + " "; n = this[r++]; )
3412
+ if (n.nodeType === 1 && (" " + Ye(Je(n)) + " ").indexOf(t) > -1)
3413
+ return !0;
3414
+ return !1;
3415
+ }
3416
+ });
3417
+ var Sr = /\r/g;
3418
+ i.fn.extend({
3419
+ val: function(e) {
3420
+ var t, n, r, o = this[0];
3421
+ return arguments.length ? (r = m(e), this.each(function(s) {
3422
+ var u;
3423
+ this.nodeType === 1 && (r ? u = e.call(this, s, i(this).val()) : u = e, u == null ? u = "" : typeof u == "number" ? u += "" : Array.isArray(u) && (u = i.map(u, function(c) {
3424
+ return c == null ? "" : c + "";
3425
+ })), t = i.valHooks[this.type] || i.valHooks[this.nodeName.toLowerCase()], (!t || !("set" in t) || t.set(this, u, "value") === void 0) && (this.value = u));
3426
+ })) : o ? (t = i.valHooks[o.type] || i.valHooks[o.nodeName.toLowerCase()], t && "get" in t && (n = t.get(o, "value")) !== void 0 ? n : (n = o.value, typeof n == "string" ? n.replace(Sr, "") : n ?? "")) : void 0;
3427
+ }
3428
+ }), i.extend({
3429
+ valHooks: {
3430
+ option: {
3431
+ get: function(e) {
3432
+ var t = i.find.attr(e, "value");
3433
+ return t ?? // Support: IE <=10 - 11 only
3434
+ // option.text throws exceptions (trac-14686, trac-14858)
3435
+ // Strip and collapse whitespace
3436
+ // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
3437
+ Ye(i.text(e));
3438
+ }
3439
+ },
3440
+ select: {
3441
+ get: function(e) {
3442
+ var t, n, r, o = e.options, s = e.selectedIndex, u = e.type === "select-one", c = u ? null : [], f = u ? s + 1 : o.length;
3443
+ for (s < 0 ? r = f : r = u ? s : 0; r < f; r++)
3444
+ if (n = o[r], (n.selected || r === s) && // Don't return options that are disabled or in a disabled optgroup
3445
+ !n.disabled && (!n.parentNode.disabled || !Q(n.parentNode, "optgroup"))) {
3446
+ if (t = i(n).val(), u)
3447
+ return t;
3448
+ c.push(t);
3449
+ }
3450
+ return c;
3451
+ },
3452
+ set: function(e, t) {
3453
+ for (var n, r, o = e.options, s = i.makeArray(t), u = o.length; u--; )
3454
+ r = o[u], (r.selected = i.inArray(i.valHooks.option.get(r), s) > -1) && (n = !0);
3455
+ return n || (e.selectedIndex = -1), s;
3456
+ }
3457
+ }
3458
+ }
3459
+ }), i.each(["radio", "checkbox"], function() {
3460
+ i.valHooks[this] = {
3461
+ set: function(e, t) {
3462
+ if (Array.isArray(t))
3463
+ return e.checked = i.inArray(i(e).val(), t) > -1;
3464
+ }
3465
+ }, D.checkOn || (i.valHooks[this].get = function(e) {
3466
+ return e.getAttribute("value") === null ? "on" : e.value;
3467
+ });
3468
+ });
3469
+ var bt = B.location, An = { guid: Date.now() }, zt = /\?/;
3470
+ i.parseXML = function(e) {
3471
+ var t, n;
3472
+ if (!e || typeof e != "string")
3473
+ return null;
3474
+ try {
3475
+ t = new B.DOMParser().parseFromString(e, "text/xml");
3476
+ } catch {
3477
+ }
3478
+ return n = t && t.getElementsByTagName("parsererror")[0], (!t || n) && i.error("Invalid XML: " + (n ? i.map(n.childNodes, function(r) {
3479
+ return r.textContent;
3480
+ }).join(`
3481
+ `) : e)), t;
3482
+ };
3483
+ var _n = /^(?:focusinfocus|focusoutblur)$/, Dn = function(e) {
3484
+ e.stopPropagation();
3485
+ };
3486
+ i.extend(i.event, {
3487
+ trigger: function(e, t, n, r) {
3488
+ var o, s, u, c, f, d, y, x, h = [n || I], S = re.call(e, "type") ? e.type : e, V = re.call(e, "namespace") ? e.namespace.split(".") : [];
3489
+ if (s = x = u = n = n || I, !(n.nodeType === 3 || n.nodeType === 8) && !_n.test(S + i.event.triggered) && (S.indexOf(".") > -1 && (V = S.split("."), S = V.shift(), V.sort()), f = S.indexOf(":") < 0 && "on" + S, e = e[i.expando] ? e : new i.Event(S, typeof e == "object" && e), e.isTrigger = r ? 2 : 3, e.namespace = V.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + V.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = t == null ? [e] : i.makeArray(t, [e]), y = i.event.special[S] || {}, !(!r && y.trigger && y.trigger.apply(n, t) === !1))) {
3490
+ if (!r && !y.noBubble && !U(n)) {
3491
+ for (c = y.delegateType || S, _n.test(c + S) || (s = s.parentNode); s; s = s.parentNode)
3492
+ h.push(s), u = s;
3493
+ u === (n.ownerDocument || I) && h.push(u.defaultView || u.parentWindow || B);
3494
+ }
3495
+ for (o = 0; (s = h[o++]) && !e.isPropagationStopped(); )
3496
+ x = s, e.type = o > 1 ? c : y.bindType || S, d = (P.get(s, "events") || /* @__PURE__ */ Object.create(null))[e.type] && P.get(s, "handle"), d && d.apply(s, t), d = f && s[f], d && d.apply && pt(s) && (e.result = d.apply(s, t), e.result === !1 && e.preventDefault());
3497
+ return e.type = S, !r && !e.isDefaultPrevented() && (!y._default || y._default.apply(h.pop(), t) === !1) && pt(n) && f && m(n[S]) && !U(n) && (u = n[f], u && (n[f] = null), i.event.triggered = S, e.isPropagationStopped() && x.addEventListener(S, Dn), n[S](), e.isPropagationStopped() && x.removeEventListener(S, Dn), i.event.triggered = void 0, u && (n[f] = u)), e.result;
3498
+ }
3499
+ },
3500
+ // Piggyback on a donor event to simulate a different one
3501
+ // Used only for `focus(in | out)` events
3502
+ simulate: function(e, t, n) {
3503
+ var r = i.extend(
3504
+ new i.Event(),
3505
+ n,
3506
+ {
3507
+ type: e,
3508
+ isSimulated: !0
3509
+ }
3510
+ );
3511
+ i.event.trigger(r, null, t);
3512
+ }
3513
+ }), i.fn.extend({
3514
+ trigger: function(e, t) {
3515
+ return this.each(function() {
3516
+ i.event.trigger(e, t, this);
3517
+ });
3518
+ },
3519
+ triggerHandler: function(e, t) {
3520
+ var n = this[0];
3521
+ if (n)
3522
+ return i.event.trigger(e, t, n, !0);
3523
+ }
3524
+ });
3525
+ var Nr = /\[\]$/, On = /\r?\n/g, Er = /^(?:submit|button|image|reset|file)$/i, kr = /^(?:input|select|textarea|keygen)/i;
3526
+ function Ut(e, t, n, r) {
3527
+ var o;
3528
+ if (Array.isArray(t))
3529
+ i.each(t, function(s, u) {
3530
+ n || Nr.test(e) ? r(e, u) : Ut(
3531
+ e + "[" + (typeof u == "object" && u != null ? s : "") + "]",
3532
+ u,
3533
+ n,
3534
+ r
3535
+ );
3536
+ });
3537
+ else if (!n && L(t) === "object")
3538
+ for (o in t)
3539
+ Ut(e + "[" + o + "]", t[o], n, r);
3540
+ else
3541
+ r(e, t);
3542
+ }
3543
+ i.param = function(e, t) {
3544
+ var n, r = [], o = function(s, u) {
3545
+ var c = m(u) ? u() : u;
3546
+ r[r.length] = encodeURIComponent(s) + "=" + encodeURIComponent(c ?? "");
3547
+ };
3548
+ if (e == null)
3549
+ return "";
3550
+ if (Array.isArray(e) || e.jquery && !i.isPlainObject(e))
3551
+ i.each(e, function() {
3552
+ o(this.name, this.value);
3553
+ });
3554
+ else
3555
+ for (n in e)
3556
+ Ut(n, e[n], t, o);
3557
+ return r.join("&");
3558
+ }, i.fn.extend({
3559
+ serialize: function() {
3560
+ return i.param(this.serializeArray());
3561
+ },
3562
+ serializeArray: function() {
3563
+ return this.map(function() {
3564
+ var e = i.prop(this, "elements");
3565
+ return e ? i.makeArray(e) : this;
3566
+ }).filter(function() {
3567
+ var e = this.type;
3568
+ return this.name && !i(this).is(":disabled") && kr.test(this.nodeName) && !Er.test(e) && (this.checked || !yt.test(e));
3569
+ }).map(function(e, t) {
3570
+ var n = i(this).val();
3571
+ return n == null ? null : Array.isArray(n) ? i.map(n, function(r) {
3572
+ return { name: t.name, value: r.replace(On, `\r
3573
+ `) };
3574
+ }) : { name: t.name, value: n.replace(On, `\r
3575
+ `) };
3576
+ }).get();
3577
+ }
3578
+ });
3579
+ var jr = /%20/g, Ar = /#.*$/, _r = /([?&])_=[^&]*/, Dr = /^(.*?):[ \t]*([^\r\n]*)$/mg, Or = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, Lr = /^(?:GET|HEAD)$/, Hr = /^\/\//, Ln = {}, Vt = {}, Hn = "*/".concat("*"), Kt = I.createElement("a");
3580
+ Kt.href = bt.href;
3581
+ function qn(e) {
3582
+ return function(t, n) {
3583
+ typeof t != "string" && (n = t, t = "*");
3584
+ var r, o = 0, s = t.toLowerCase().match(Le) || [];
3585
+ if (m(n))
3586
+ for (; r = s[o++]; )
3587
+ r[0] === "+" ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n);
3588
+ };
3589
+ }
3590
+ function In(e, t, n, r) {
3591
+ var o = {}, s = e === Vt;
3592
+ function u(c) {
3593
+ var f;
3594
+ return o[c] = !0, i.each(e[c] || [], function(d, y) {
3595
+ var x = y(t, n, r);
3596
+ if (typeof x == "string" && !s && !o[x])
3597
+ return t.dataTypes.unshift(x), u(x), !1;
3598
+ if (s)
3599
+ return !(f = x);
3600
+ }), f;
3601
+ }
3602
+ return u(t.dataTypes[0]) || !o["*"] && u("*");
3603
+ }
3604
+ function Xt(e, t) {
3605
+ var n, r, o = i.ajaxSettings.flatOptions || {};
3606
+ for (n in t)
3607
+ t[n] !== void 0 && ((o[n] ? e : r || (r = {}))[n] = t[n]);
3608
+ return r && i.extend(!0, e, r), e;
3609
+ }
3610
+ function qr(e, t, n) {
3611
+ for (var r, o, s, u, c = e.contents, f = e.dataTypes; f[0] === "*"; )
3612
+ f.shift(), r === void 0 && (r = e.mimeType || t.getResponseHeader("Content-Type"));
3613
+ if (r) {
3614
+ for (o in c)
3615
+ if (c[o] && c[o].test(r)) {
3616
+ f.unshift(o);
3617
+ break;
3618
+ }
3619
+ }
3620
+ if (f[0] in n)
3621
+ s = f[0];
3622
+ else {
3623
+ for (o in n) {
3624
+ if (!f[0] || e.converters[o + " " + f[0]]) {
3625
+ s = o;
3626
+ break;
3627
+ }
3628
+ u || (u = o);
3629
+ }
3630
+ s = s || u;
3631
+ }
3632
+ if (s)
3633
+ return s !== f[0] && f.unshift(s), n[s];
3634
+ }
3635
+ function Ir(e, t, n, r) {
3636
+ var o, s, u, c, f, d = {}, y = e.dataTypes.slice();
3637
+ if (y[1])
3638
+ for (u in e.converters)
3639
+ d[u.toLowerCase()] = e.converters[u];
3640
+ for (s = y.shift(); s; )
3641
+ if (e.responseFields[s] && (n[e.responseFields[s]] = t), !f && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), f = s, s = y.shift(), s) {
3642
+ if (s === "*")
3643
+ s = f;
3644
+ else if (f !== "*" && f !== s) {
3645
+ if (u = d[f + " " + s] || d["* " + s], !u) {
3646
+ for (o in d)
3647
+ if (c = o.split(" "), c[1] === s && (u = d[f + " " + c[0]] || d["* " + c[0]], u)) {
3648
+ u === !0 ? u = d[o] : d[o] !== !0 && (s = c[0], y.unshift(c[1]));
3649
+ break;
3650
+ }
3651
+ }
3652
+ if (u !== !0)
3653
+ if (u && e.throws)
3654
+ t = u(t);
3655
+ else
3656
+ try {
3657
+ t = u(t);
3658
+ } catch (x) {
3659
+ return {
3660
+ state: "parsererror",
3661
+ error: u ? x : "No conversion from " + f + " to " + s
3662
+ };
3663
+ }
3664
+ }
3665
+ }
3666
+ return { state: "success", data: t };
3667
+ }
3668
+ i.extend({
3669
+ // Counter for holding the number of active queries
3670
+ active: 0,
3671
+ // Last-Modified header cache for next request
3672
+ lastModified: {},
3673
+ etag: {},
3674
+ ajaxSettings: {
3675
+ url: bt.href,
3676
+ type: "GET",
3677
+ isLocal: Or.test(bt.protocol),
3678
+ global: !0,
3679
+ processData: !0,
3680
+ async: !0,
3681
+ contentType: "application/x-www-form-urlencoded; charset=UTF-8",
3682
+ /*
3683
+ timeout: 0,
3684
+ data: null,
3685
+ dataType: null,
3686
+ username: null,
3687
+ password: null,
3688
+ cache: null,
3689
+ throws: false,
3690
+ traditional: false,
3691
+ headers: {},
3692
+ */
3693
+ accepts: {
3694
+ "*": Hn,
3695
+ text: "text/plain",
3696
+ html: "text/html",
3697
+ xml: "application/xml, text/xml",
3698
+ json: "application/json, text/javascript"
3699
+ },
3700
+ contents: {
3701
+ xml: /\bxml\b/,
3702
+ html: /\bhtml/,
3703
+ json: /\bjson\b/
3704
+ },
3705
+ responseFields: {
3706
+ xml: "responseXML",
3707
+ text: "responseText",
3708
+ json: "responseJSON"
3709
+ },
3710
+ // Data converters
3711
+ // Keys separate source (or catchall "*") and destination types with a single space
3712
+ converters: {
3713
+ // Convert anything to text
3714
+ "* text": String,
3715
+ // Text to html (true = no transformation)
3716
+ "text html": !0,
3717
+ // Evaluate text as a json expression
3718
+ "text json": JSON.parse,
3719
+ // Parse text as xml
3720
+ "text xml": i.parseXML
3721
+ },
3722
+ // For options that shouldn't be deep extended:
3723
+ // you can add your own custom options here if
3724
+ // and when you create one that shouldn't be
3725
+ // deep extended (see ajaxExtend)
3726
+ flatOptions: {
3727
+ url: !0,
3728
+ context: !0
3729
+ }
3730
+ },
3731
+ // Creates a full fledged settings object into target
3732
+ // with both ajaxSettings and settings fields.
3733
+ // If target is omitted, writes into ajaxSettings.
3734
+ ajaxSetup: function(e, t) {
3735
+ return t ? (
3736
+ // Building a settings object
3737
+ Xt(Xt(e, i.ajaxSettings), t)
3738
+ ) : (
3739
+ // Extending ajaxSettings
3740
+ Xt(i.ajaxSettings, e)
3741
+ );
3742
+ },
3743
+ ajaxPrefilter: qn(Ln),
3744
+ ajaxTransport: qn(Vt),
3745
+ // Main method
3746
+ ajax: function(e, t) {
3747
+ typeof e == "object" && (t = e, e = void 0), t = t || {};
3748
+ var n, r, o, s, u, c, f, d, y, x, h = i.ajaxSetup({}, t), S = h.context || h, V = h.context && (S.nodeType || S.jquery) ? i(S) : i.event, ne = i.Deferred(), Y = i.Callbacks("once memory"), ge = h.statusCode || {}, de = {}, qe = {}, Ie = "canceled", te = {
3749
+ readyState: 0,
3750
+ // Builds headers hashtable if needed
3751
+ getResponseHeader: function(oe) {
3752
+ var le;
3753
+ if (f) {
3754
+ if (!s)
3755
+ for (s = {}; le = Dr.exec(o); )
3756
+ s[le[1].toLowerCase() + " "] = (s[le[1].toLowerCase() + " "] || []).concat(le[2]);
3757
+ le = s[oe.toLowerCase() + " "];
3758
+ }
3759
+ return le == null ? null : le.join(", ");
3760
+ },
3761
+ // Raw string
3762
+ getAllResponseHeaders: function() {
3763
+ return f ? o : null;
3764
+ },
3765
+ // Caches the header
3766
+ setRequestHeader: function(oe, le) {
3767
+ return f == null && (oe = qe[oe.toLowerCase()] = qe[oe.toLowerCase()] || oe, de[oe] = le), this;
3768
+ },
3769
+ // Overrides response content-type header
3770
+ overrideMimeType: function(oe) {
3771
+ return f == null && (h.mimeType = oe), this;
3772
+ },
3773
+ // Status-dependent callbacks
3774
+ statusCode: function(oe) {
3775
+ var le;
3776
+ if (oe)
3777
+ if (f)
3778
+ te.always(oe[te.status]);
3779
+ else
3780
+ for (le in oe)
3781
+ ge[le] = [ge[le], oe[le]];
3782
+ return this;
3783
+ },
3784
+ // Cancel the request
3785
+ abort: function(oe) {
3786
+ var le = oe || Ie;
3787
+ return n && n.abort(le), Ze(0, le), this;
3788
+ }
3789
+ };
3790
+ if (ne.promise(te), h.url = ((e || h.url || bt.href) + "").replace(Hr, bt.protocol + "//"), h.type = t.method || t.type || h.method || h.type, h.dataTypes = (h.dataType || "*").toLowerCase().match(Le) || [""], h.crossDomain == null) {
3791
+ c = I.createElement("a");
3792
+ try {
3793
+ c.href = h.url, c.href = c.href, h.crossDomain = Kt.protocol + "//" + Kt.host != c.protocol + "//" + c.host;
3794
+ } catch {
3795
+ h.crossDomain = !0;
3796
+ }
3797
+ }
3798
+ if (h.data && h.processData && typeof h.data != "string" && (h.data = i.param(h.data, h.traditional)), In(Ln, h, t, te), f)
3799
+ return te;
3800
+ d = i.event && h.global, d && i.active++ === 0 && i.event.trigger("ajaxStart"), h.type = h.type.toUpperCase(), h.hasContent = !Lr.test(h.type), r = h.url.replace(Ar, ""), h.hasContent ? h.data && h.processData && (h.contentType || "").indexOf("application/x-www-form-urlencoded") === 0 && (h.data = h.data.replace(jr, "+")) : (x = h.url.slice(r.length), h.data && (h.processData || typeof h.data == "string") && (r += (zt.test(r) ? "&" : "?") + h.data, delete h.data), h.cache === !1 && (r = r.replace(_r, "$1"), x = (zt.test(r) ? "&" : "?") + "_=" + An.guid++ + x), h.url = r + x), h.ifModified && (i.lastModified[r] && te.setRequestHeader("If-Modified-Since", i.lastModified[r]), i.etag[r] && te.setRequestHeader("If-None-Match", i.etag[r])), (h.data && h.hasContent && h.contentType !== !1 || t.contentType) && te.setRequestHeader("Content-Type", h.contentType), te.setRequestHeader(
3801
+ "Accept",
3802
+ h.dataTypes[0] && h.accepts[h.dataTypes[0]] ? h.accepts[h.dataTypes[0]] + (h.dataTypes[0] !== "*" ? ", " + Hn + "; q=0.01" : "") : h.accepts["*"]
3803
+ );
3804
+ for (y in h.headers)
3805
+ te.setRequestHeader(y, h.headers[y]);
3806
+ if (h.beforeSend && (h.beforeSend.call(S, te, h) === !1 || f))
3807
+ return te.abort();
3808
+ if (Ie = "abort", Y.add(h.complete), te.done(h.success), te.fail(h.error), n = In(Vt, h, t, te), !n)
3809
+ Ze(-1, "No Transport");
3810
+ else {
3811
+ if (te.readyState = 1, d && V.trigger("ajaxSend", [te, h]), f)
3812
+ return te;
3813
+ h.async && h.timeout > 0 && (u = B.setTimeout(function() {
3814
+ te.abort("timeout");
3815
+ }, h.timeout));
3816
+ try {
3817
+ f = !1, n.send(de, Ze);
3818
+ } catch (oe) {
3819
+ if (f)
3820
+ throw oe;
3821
+ Ze(-1, oe);
3822
+ }
3823
+ }
3824
+ function Ze(oe, le, Ct, Qt) {
3825
+ var Re, Tt, Me, Ve, Ke, Ne = le;
3826
+ f || (f = !0, u && B.clearTimeout(u), n = void 0, o = Qt || "", te.readyState = oe > 0 ? 4 : 0, Re = oe >= 200 && oe < 300 || oe === 304, Ct && (Ve = qr(h, te, Ct)), !Re && i.inArray("script", h.dataTypes) > -1 && i.inArray("json", h.dataTypes) < 0 && (h.converters["text script"] = function() {
3827
+ }), Ve = Ir(h, Ve, te, Re), Re ? (h.ifModified && (Ke = te.getResponseHeader("Last-Modified"), Ke && (i.lastModified[r] = Ke), Ke = te.getResponseHeader("etag"), Ke && (i.etag[r] = Ke)), oe === 204 || h.type === "HEAD" ? Ne = "nocontent" : oe === 304 ? Ne = "notmodified" : (Ne = Ve.state, Tt = Ve.data, Me = Ve.error, Re = !Me)) : (Me = Ne, (oe || !Ne) && (Ne = "error", oe < 0 && (oe = 0))), te.status = oe, te.statusText = (le || Ne) + "", Re ? ne.resolveWith(S, [Tt, Ne, te]) : ne.rejectWith(S, [te, Ne, Me]), te.statusCode(ge), ge = void 0, d && V.trigger(
3828
+ Re ? "ajaxSuccess" : "ajaxError",
3829
+ [te, h, Re ? Tt : Me]
3830
+ ), Y.fireWith(S, [te, Ne]), d && (V.trigger("ajaxComplete", [te, h]), --i.active || i.event.trigger("ajaxStop")));
3831
+ }
3832
+ return te;
3833
+ },
3834
+ getJSON: function(e, t, n) {
3835
+ return i.get(e, t, n, "json");
3836
+ },
3837
+ getScript: function(e, t) {
3838
+ return i.get(e, void 0, t, "script");
3839
+ }
3840
+ }), i.each(["get", "post"], function(e, t) {
3841
+ i[t] = function(n, r, o, s) {
3842
+ return m(r) && (s = s || o, o = r, r = void 0), i.ajax(i.extend({
3843
+ url: n,
3844
+ type: t,
3845
+ dataType: s,
3846
+ data: r,
3847
+ success: o
3848
+ }, i.isPlainObject(n) && n));
3849
+ };
3850
+ }), i.ajaxPrefilter(function(e) {
3851
+ var t;
3852
+ for (t in e.headers)
3853
+ t.toLowerCase() === "content-type" && (e.contentType = e.headers[t] || "");
3854
+ }), i._evalUrl = function(e, t, n) {
3855
+ return i.ajax({
3856
+ url: e,
3857
+ // Make this explicit, since user can override this through ajaxSetup (trac-11264)
3858
+ type: "GET",
3859
+ dataType: "script",
3860
+ cache: !0,
3861
+ async: !1,
3862
+ global: !1,
3863
+ // Only evaluate the response if it is successful (gh-4126)
3864
+ // dataFilter is not invoked for failure responses, so using it instead
3865
+ // of the default converter is kludgy but it works.
3866
+ converters: {
3867
+ "text script": function() {
3868
+ }
3869
+ },
3870
+ dataFilter: function(r) {
3871
+ i.globalEval(r, t, n);
3872
+ }
3873
+ });
3874
+ }, i.fn.extend({
3875
+ wrapAll: function(e) {
3876
+ var t;
3877
+ return this[0] && (m(e) && (e = e.call(this[0])), t = i(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
3878
+ for (var n = this; n.firstElementChild; )
3879
+ n = n.firstElementChild;
3880
+ return n;
3881
+ }).append(this)), this;
3882
+ },
3883
+ wrapInner: function(e) {
3884
+ return m(e) ? this.each(function(t) {
3885
+ i(this).wrapInner(e.call(this, t));
3886
+ }) : this.each(function() {
3887
+ var t = i(this), n = t.contents();
3888
+ n.length ? n.wrapAll(e) : t.append(e);
3889
+ });
3890
+ },
3891
+ wrap: function(e) {
3892
+ var t = m(e);
3893
+ return this.each(function(n) {
3894
+ i(this).wrapAll(t ? e.call(this, n) : e);
3895
+ });
3896
+ },
3897
+ unwrap: function(e) {
3898
+ return this.parent(e).not("body").each(function() {
3899
+ i(this).replaceWith(this.childNodes);
3900
+ }), this;
3901
+ }
3902
+ }), i.expr.pseudos.hidden = function(e) {
3903
+ return !i.expr.pseudos.visible(e);
3904
+ }, i.expr.pseudos.visible = function(e) {
3905
+ return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length);
3906
+ }, i.ajaxSettings.xhr = function() {
3907
+ try {
3908
+ return new B.XMLHttpRequest();
3909
+ } catch {
3910
+ }
3911
+ };
3912
+ var Rr = {
3913
+ // File protocol always yields status code 0, assume 200
3914
+ 0: 200,
3915
+ // Support: IE <=9 only
3916
+ // trac-1450: sometimes IE returns 1223 when it should be 204
3917
+ 1223: 204
3918
+ }, mt = i.ajaxSettings.xhr();
3919
+ D.cors = !!mt && "withCredentials" in mt, D.ajax = mt = !!mt, i.ajaxTransport(function(e) {
3920
+ var t, n;
3921
+ if (D.cors || mt && !e.crossDomain)
3922
+ return {
3923
+ send: function(r, o) {
3924
+ var s, u = e.xhr();
3925
+ if (u.open(
3926
+ e.type,
3927
+ e.url,
3928
+ e.async,
3929
+ e.username,
3930
+ e.password
3931
+ ), e.xhrFields)
3932
+ for (s in e.xhrFields)
3933
+ u[s] = e.xhrFields[s];
3934
+ e.mimeType && u.overrideMimeType && u.overrideMimeType(e.mimeType), !e.crossDomain && !r["X-Requested-With"] && (r["X-Requested-With"] = "XMLHttpRequest");
3935
+ for (s in r)
3936
+ u.setRequestHeader(s, r[s]);
3937
+ t = function(c) {
3938
+ return function() {
3939
+ t && (t = n = u.onload = u.onerror = u.onabort = u.ontimeout = u.onreadystatechange = null, c === "abort" ? u.abort() : c === "error" ? typeof u.status != "number" ? o(0, "error") : o(
3940
+ // File: protocol always yields status 0; see trac-8605, trac-14207
3941
+ u.status,
3942
+ u.statusText
3943
+ ) : o(
3944
+ Rr[u.status] || u.status,
3945
+ u.statusText,
3946
+ // Support: IE <=9 only
3947
+ // IE9 has no XHR2 but throws on binary (trac-11426)
3948
+ // For XHR2 non-text, let the caller handle it (gh-2498)
3949
+ (u.responseType || "text") !== "text" || typeof u.responseText != "string" ? { binary: u.response } : { text: u.responseText },
3950
+ u.getAllResponseHeaders()
3951
+ ));
3952
+ };
3953
+ }, u.onload = t(), n = u.onerror = u.ontimeout = t("error"), u.onabort !== void 0 ? u.onabort = n : u.onreadystatechange = function() {
3954
+ u.readyState === 4 && B.setTimeout(function() {
3955
+ t && n();
3956
+ });
3957
+ }, t = t("abort");
3958
+ try {
3959
+ u.send(e.hasContent && e.data || null);
3960
+ } catch (c) {
3961
+ if (t)
3962
+ throw c;
3963
+ }
3964
+ },
3965
+ abort: function() {
3966
+ t && t();
3967
+ }
3968
+ };
3969
+ }), i.ajaxPrefilter(function(e) {
3970
+ e.crossDomain && (e.contents.script = !1);
3971
+ }), i.ajaxSetup({
3972
+ accepts: {
3973
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
3974
+ },
3975
+ contents: {
3976
+ script: /\b(?:java|ecma)script\b/
3977
+ },
3978
+ converters: {
3979
+ "text script": function(e) {
3980
+ return i.globalEval(e), e;
3981
+ }
3982
+ }
3983
+ }), i.ajaxPrefilter("script", function(e) {
3984
+ e.cache === void 0 && (e.cache = !1), e.crossDomain && (e.type = "GET");
3985
+ }), i.ajaxTransport("script", function(e) {
3986
+ if (e.crossDomain || e.scriptAttrs) {
3987
+ var t, n;
3988
+ return {
3989
+ send: function(r, o) {
3990
+ t = i("<script>").attr(e.scriptAttrs || {}).prop({ charset: e.scriptCharset, src: e.url }).on("load error", n = function(s) {
3991
+ t.remove(), n = null, s && o(s.type === "error" ? 404 : 200, s.type);
3992
+ }), I.head.appendChild(t[0]);
3993
+ },
3994
+ abort: function() {
3995
+ n && n();
3996
+ }
3997
+ };
3998
+ }
3999
+ });
4000
+ var Rn = [], Gt = /(=)\?(?=&|$)|\?\?/;
4001
+ i.ajaxSetup({
4002
+ jsonp: "callback",
4003
+ jsonpCallback: function() {
4004
+ var e = Rn.pop() || i.expando + "_" + An.guid++;
4005
+ return this[e] = !0, e;
4006
+ }
4007
+ }), i.ajaxPrefilter("json jsonp", function(e, t, n) {
4008
+ var r, o, s, u = e.jsonp !== !1 && (Gt.test(e.url) ? "url" : typeof e.data == "string" && (e.contentType || "").indexOf("application/x-www-form-urlencoded") === 0 && Gt.test(e.data) && "data");
4009
+ if (u || e.dataTypes[0] === "jsonp")
4010
+ return r = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, u ? e[u] = e[u].replace(Gt, "$1" + r) : e.jsonp !== !1 && (e.url += (zt.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function() {
4011
+ return s || i.error(r + " was not called"), s[0];
4012
+ }, e.dataTypes[0] = "json", o = B[r], B[r] = function() {
4013
+ s = arguments;
4014
+ }, n.always(function() {
4015
+ o === void 0 ? i(B).removeProp(r) : B[r] = o, e[r] && (e.jsonpCallback = t.jsonpCallback, Rn.push(r)), s && m(o) && o(s[0]), s = o = void 0;
4016
+ }), "script";
4017
+ }), D.createHTMLDocument = function() {
4018
+ var e = I.implementation.createHTMLDocument("").body;
4019
+ return e.innerHTML = "<form></form><form></form>", e.childNodes.length === 2;
4020
+ }(), i.parseHTML = function(e, t, n) {
4021
+ if (typeof e != "string")
4022
+ return [];
4023
+ typeof t == "boolean" && (n = t, t = !1);
4024
+ var r, o, s;
4025
+ return t || (D.createHTMLDocument ? (t = I.implementation.createHTMLDocument(""), r = t.createElement("base"), r.href = I.location.href, t.head.appendChild(r)) : t = I), o = j.exec(e), s = !n && [], o ? [t.createElement(o[1])] : (o = pn([e], t, s), s && s.length && i(s).remove(), i.merge([], o.childNodes));
4026
+ }, i.fn.load = function(e, t, n) {
4027
+ var r, o, s, u = this, c = e.indexOf(" ");
4028
+ return c > -1 && (r = Ye(e.slice(c)), e = e.slice(0, c)), m(t) ? (n = t, t = void 0) : t && typeof t == "object" && (o = "POST"), u.length > 0 && i.ajax({
4029
+ url: e,
4030
+ // If "type" variable is undefined, then "GET" method will be used.
4031
+ // Make value of this field explicit since
4032
+ // user can override it through ajaxSetup method
4033
+ type: o || "GET",
4034
+ dataType: "html",
4035
+ data: t
4036
+ }).done(function(f) {
4037
+ s = arguments, u.html(r ? (
4038
+ // If a selector was specified, locate the right elements in a dummy div
4039
+ // Exclude scripts to avoid IE 'Permission Denied' errors
4040
+ i("<div>").append(i.parseHTML(f)).find(r)
4041
+ ) : (
4042
+ // Otherwise use the full result
4043
+ f
4044
+ ));
4045
+ }).always(n && function(f, d) {
4046
+ u.each(function() {
4047
+ n.apply(this, s || [f.responseText, d, f]);
4048
+ });
4049
+ }), this;
4050
+ }, i.expr.pseudos.animated = function(e) {
4051
+ return i.grep(i.timers, function(t) {
4052
+ return e === t.elem;
4053
+ }).length;
4054
+ }, i.offset = {
4055
+ setOffset: function(e, t, n) {
4056
+ var r, o, s, u, c, f, d, y = i.css(e, "position"), x = i(e), h = {};
4057
+ y === "static" && (e.style.position = "relative"), c = x.offset(), s = i.css(e, "top"), f = i.css(e, "left"), d = (y === "absolute" || y === "fixed") && (s + f).indexOf("auto") > -1, d ? (r = x.position(), u = r.top, o = r.left) : (u = parseFloat(s) || 0, o = parseFloat(f) || 0), m(t) && (t = t.call(e, n, i.extend({}, c))), t.top != null && (h.top = t.top - c.top + u), t.left != null && (h.left = t.left - c.left + o), "using" in t ? t.using.call(e, h) : x.css(h);
4058
+ }
4059
+ }, i.fn.extend({
4060
+ // offset() relates an element's border box to the document origin
4061
+ offset: function(e) {
4062
+ if (arguments.length)
4063
+ return e === void 0 ? this : this.each(function(o) {
4064
+ i.offset.setOffset(this, e, o);
4065
+ });
4066
+ var t, n, r = this[0];
4067
+ if (r)
4068
+ return r.getClientRects().length ? (t = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, {
4069
+ top: t.top + n.pageYOffset,
4070
+ left: t.left + n.pageXOffset
4071
+ }) : { top: 0, left: 0 };
4072
+ },
4073
+ // position() relates an element's margin box to its offset parent's padding box
4074
+ // This corresponds to the behavior of CSS absolute positioning
4075
+ position: function() {
4076
+ if (this[0]) {
4077
+ var e, t, n, r = this[0], o = { top: 0, left: 0 };
4078
+ if (i.css(r, "position") === "fixed")
4079
+ t = r.getBoundingClientRect();
4080
+ else {
4081
+ for (t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && i.css(e, "position") === "static"; )
4082
+ e = e.parentNode;
4083
+ e && e !== r && e.nodeType === 1 && (o = i(e).offset(), o.top += i.css(e, "borderTopWidth", !0), o.left += i.css(e, "borderLeftWidth", !0));
4084
+ }
4085
+ return {
4086
+ top: t.top - o.top - i.css(r, "marginTop", !0),
4087
+ left: t.left - o.left - i.css(r, "marginLeft", !0)
4088
+ };
4089
+ }
4090
+ },
4091
+ // This method will return documentElement in the following cases:
4092
+ // 1) For the element inside the iframe without offsetParent, this method will return
4093
+ // documentElement of the parent window
4094
+ // 2) For the hidden or detached element
4095
+ // 3) For body or html element, i.e. in case of the html node - it will return itself
4096
+ //
4097
+ // but those exceptions were never presented as a real life use-cases
4098
+ // and might be considered as more preferable results.
4099
+ //
4100
+ // This logic, however, is not guaranteed and can change at any point in the future
4101
+ offsetParent: function() {
4102
+ return this.map(function() {
4103
+ for (var e = this.offsetParent; e && i.css(e, "position") === "static"; )
4104
+ e = e.offsetParent;
4105
+ return e || Qe;
4106
+ });
4107
+ }
4108
+ }), i.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(e, t) {
4109
+ var n = t === "pageYOffset";
4110
+ i.fn[e] = function(r) {
4111
+ return Fe(this, function(o, s, u) {
4112
+ var c;
4113
+ if (U(o) ? c = o : o.nodeType === 9 && (c = o.defaultView), u === void 0)
4114
+ return c ? c[t] : o[s];
4115
+ c ? c.scrollTo(
4116
+ n ? c.pageXOffset : u,
4117
+ n ? u : c.pageYOffset
4118
+ ) : o[s] = u;
4119
+ }, e, r, arguments.length);
4120
+ };
4121
+ }), i.each(["top", "left"], function(e, t) {
4122
+ i.cssHooks[t] = bn(
4123
+ D.pixelPosition,
4124
+ function(n, r) {
4125
+ if (r)
4126
+ return r = vt(n, t), Mt.test(r) ? i(n).position()[t] + "px" : r;
4127
+ }
4128
+ );
4129
+ }), i.each({ Height: "height", Width: "width" }, function(e, t) {
4130
+ i.each({
4131
+ padding: "inner" + e,
4132
+ content: t,
4133
+ "": "outer" + e
4134
+ }, function(n, r) {
4135
+ i.fn[r] = function(o, s) {
4136
+ var u = arguments.length && (n || typeof o != "boolean"), c = n || (o === !0 || s === !0 ? "margin" : "border");
4137
+ return Fe(this, function(f, d, y) {
4138
+ var x;
4139
+ return U(f) ? r.indexOf("outer") === 0 ? f["inner" + e] : f.document.documentElement["client" + e] : f.nodeType === 9 ? (x = f.documentElement, Math.max(
4140
+ f.body["scroll" + e],
4141
+ x["scroll" + e],
4142
+ f.body["offset" + e],
4143
+ x["offset" + e],
4144
+ x["client" + e]
4145
+ )) : y === void 0 ? (
4146
+ // Get width or height on the element, requesting but not forcing parseFloat
4147
+ i.css(f, d, c)
4148
+ ) : (
4149
+ // Set width or height on the element
4150
+ i.style(f, d, y, c)
4151
+ );
4152
+ }, t, u ? o : void 0, u);
4153
+ };
4154
+ });
4155
+ }), i.each([
4156
+ "ajaxStart",
4157
+ "ajaxStop",
4158
+ "ajaxComplete",
4159
+ "ajaxError",
4160
+ "ajaxSuccess",
4161
+ "ajaxSend"
4162
+ ], function(e, t) {
4163
+ i.fn[t] = function(n) {
4164
+ return this.on(t, n);
4165
+ };
4166
+ }), i.fn.extend({
4167
+ bind: function(e, t, n) {
4168
+ return this.on(e, null, t, n);
4169
+ },
4170
+ unbind: function(e, t) {
4171
+ return this.off(e, null, t);
4172
+ },
4173
+ delegate: function(e, t, n, r) {
4174
+ return this.on(t, e, n, r);
4175
+ },
4176
+ undelegate: function(e, t, n) {
4177
+ return arguments.length === 1 ? this.off(e, "**") : this.off(t, e || "**", n);
4178
+ },
4179
+ hover: function(e, t) {
4180
+ return this.on("mouseenter", e).on("mouseleave", t || e);
4181
+ }
4182
+ }), i.each(
4183
+ "blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),
4184
+ function(e, t) {
4185
+ i.fn[t] = function(n, r) {
4186
+ return arguments.length > 0 ? this.on(t, null, n, r) : this.trigger(t);
4187
+ };
4188
+ }
4189
+ );
4190
+ var Mr = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
4191
+ i.proxy = function(e, t) {
4192
+ var n, r, o;
4193
+ if (typeof t == "string" && (n = e[t], t = e, e = n), !!m(e))
4194
+ return r = N.call(arguments, 2), o = function() {
4195
+ return e.apply(t || this, r.concat(N.call(arguments)));
4196
+ }, o.guid = e.guid = e.guid || i.guid++, o;
4197
+ }, i.holdReady = function(e) {
4198
+ e ? i.readyWait++ : i.ready(!0);
4199
+ }, i.isArray = Array.isArray, i.parseJSON = JSON.parse, i.nodeName = Q, i.isFunction = m, i.isWindow = U, i.camelCase = He, i.type = L, i.now = Date.now, i.isNumeric = function(e) {
4200
+ var t = i.type(e);
4201
+ return (t === "number" || t === "string") && // parseFloat NaNs numeric-cast false positives ("")
4202
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
4203
+ // subtraction forces infinities to NaN
4204
+ !isNaN(e - parseFloat(e));
4205
+ }, i.trim = function(e) {
4206
+ return e == null ? "" : (e + "").replace(Mr, "$1");
4207
+ };
4208
+ var Pr = B.jQuery, Br = B.$;
4209
+ return i.noConflict = function(e) {
4210
+ return B.$ === i && (B.$ = Br), e && B.jQuery === i && (B.jQuery = Pr), i;
4211
+ }, typeof R > "u" && (B.jQuery = B.$ = i), i;
4212
+ });
4213
+ })(Vn);
4214
+ var ti = Vn.exports;
4215
+ const we = /* @__PURE__ */ $n(ti);
4216
+ function ni(fe) {
4217
+ var B = {
4218
+ /**
4219
+ * 请求协议类型,默认http
4220
+ * @type {String}
4221
+ */
4222
+ protocol: location.protocol || "https:",
4223
+ /**
4224
+ * 获取dns列表的URL
4225
+ * @type {String}
4226
+ */
4227
+ urlDns: "http://wanproxy.127.net/lbs",
4228
+ /**
4229
+ * 重试次数,默认重试2次
4230
+ * @type {Number}
4231
+ */
4232
+ retryCount: 2,
4233
+ /**
4234
+ * 添加文件Input ID
4235
+ * @type {String}
4236
+ */
4237
+ fileInputID: "fileInput",
4238
+ /**
4239
+ * ajax超时时间
4240
+ * @type {Number}
4241
+ */
4242
+ timeout: 5e4,
4243
+ /**
4244
+ * 错误处理回调
4245
+ * @param {object} errObj带errCode和errMsg或只带errMsg的Object对象或XHR错误对象
4246
+ * @return {void}
4247
+ */
4248
+ onError: function(b) {
4249
+ console.log(b);
4250
+ },
4251
+ /**
4252
+ * 上传进度回调
4253
+ * @param {Object} curFile 文件对象
4254
+ * @return {void}
4255
+ */
4256
+ onProgress: function(b) {
4257
+ console.log(b.status), console.log(b.progress);
4258
+ }
4259
+ }, R, T;
4260
+ return R = we.extend({}, B, fe), T = {
4261
+ /**
4262
+ * 接口版本号,当前支持1.0
4263
+ * @type {String}
4264
+ */
4265
+ version: "1.0",
4266
+ /**
4267
+ * 上传的文件对象
4268
+ * @type {fileObj}
4269
+ */
4270
+ uploadFile: null,
4271
+ /**
4272
+ * 边缘节点列表
4273
+ * @type {Array}
4274
+ */
4275
+ edgeNodeList: null,
4276
+ /**
4277
+ * 当前上传文件使用的边缘节点在edgeNodeList中的序号
4278
+ * @type {Number}
4279
+ */
4280
+ dnsRetryCount: 0,
4281
+ /**
4282
+ * 当前上传分片使用的边缘节点剩余的重试次数
4283
+ * @type {Number}
4284
+ */
4285
+ uTRetryCount: R.retryCount,
4286
+ /**
4287
+ * 获取断点失败剩余重试次数
4288
+ * @type {Number}
4289
+ */
4290
+ gORetryCount: R.retryCount,
4291
+ /**
4292
+ * 查询DNS失败剩余重试次数
4293
+ * @type {Number}
4294
+ */
4295
+ gDRetryCount: R.retryCount,
4296
+ /**
4297
+ * 创建ajax对象
4298
+ * @return {void}
4299
+ */
4300
+ createAjax: function() {
4301
+ var b = {};
4302
+ return window.XMLHttpRequest && (b = new XMLHttpRequest()), b;
4303
+ },
4304
+ /**
4305
+ * 清除本地存储
4306
+ * @param {Object} fileKey 文件标识符
4307
+ */
4308
+ clearStorage: function(b, N, X) {
4309
+ localStorage.removeItem(X + "_progress"), localStorage.removeItem(X + "_" + b + "_" + N + "_context");
4310
+ },
4311
+ /**
4312
+ * 添加文件
4313
+ * @method addFile
4314
+ * @param {File} file 需要上传的文件
4315
+ * @param {Function} callback 成功回调函数
4316
+ * 回调函数中的参数包括:
4317
+ * fileObj: 文件对象
4318
+ * 文件对象中包含的属性:
4319
+ * fileKey {String} 文件名与文件大小的MD5值
4320
+ * file {File} 文件对象
4321
+ * fileName {String} 文件名
4322
+ * status {Number} 文件状态( 0 未上传 1 正在上传 2 已上传)
4323
+ * progress {Number} 上传进度(保留两位小数的百分比)
4324
+ * @return {void}
4325
+ */
4326
+ addFile: function(b, N) {
4327
+ if (b) {
4328
+ var X = Un(b.name + ":" + b.size).toString(), W;
4329
+ W = {
4330
+ fileKey: X,
4331
+ file: b,
4332
+ fileName: b.name,
4333
+ status: 0,
4334
+ progress: localStorage.getItem(X + "_progress") || 0
4335
+ }, T.uploadFile && (T.uploadFile = null), T.uploadFile = we.extend(!0, {}, W), N && N(W);
4336
+ }
4337
+ },
4338
+ /**
4339
+ * 根据fileKey获取指定文件对象
4340
+ * @method getFile
4341
+ * @param {String} fileKey 文件名和文件大小md5值
4342
+ * @return {Obejct} 文件对象
4343
+ */
4344
+ getFile: function(b) {
4345
+ var N;
4346
+ return T.uploadFile.fileKey === b && (N = T.uploadFile), N;
4347
+ },
4348
+ /**
4349
+ * 查询DNS
4350
+ * @method getDNS
4351
+ * @param {Object} bucketname 桶名
4352
+ * @param {Function} callback 成功回调函数
4353
+ * 回调函数参数包括:
4354
+ * upload: 返回最优的边缘节点列表,加速效果最好的在前面
4355
+ * lbs: 返回的最优的DNS地址,后续可以使用该地址进行上传
4356
+ * @return {void}
4357
+ */
4358
+ getDNS: function(b, N) {
4359
+ if ((b == null || b === "") && (b = ""), T.edgeNodeList)
4360
+ N(T.edgeNodeList);
4361
+ else if (R.protocol === "https:") {
4362
+ let X = ["https://wanproxy-web.127.net"];
4363
+ T.edgeNodeList = X, N(X, R.urlDns);
4364
+ } else
4365
+ we.ajax({
4366
+ type: "get",
4367
+ url: R.urlDns,
4368
+ data: {
4369
+ version: T.version,
4370
+ bucketname: b
4371
+ },
4372
+ dataType: "json",
4373
+ success: function(X) {
4374
+ X.code ? R.onError({
4375
+ errCode: X.Code,
4376
+ errMsg: X.Message
4377
+ }) : (T.edgeNodeList = X.upload, N(X.upload, X.lbs));
4378
+ },
4379
+ error: function(X) {
4380
+ X.status.toString().match(/^5/) && T.gDRetryCount > 0 && T.gDRetryCount < R.retryCount + 1 ? (T.getDNS(b, N), T.gDRetryCount--) : (R.onError(X.responseText), T.gDRetryCount = R.retryCount);
4381
+ }
4382
+ });
4383
+ },
4384
+ /**
4385
+ * 获取上传断点位置
4386
+ * @method getOffset
4387
+ * @param {Object} param AJAX参数
4388
+ * param属性有:
4389
+ * serveIp {String} IP地址
4390
+ * fileKey {String} 文件名与文件大小的MD5值
4391
+ * bucketName {String} 桶名
4392
+ * objectName {String} 对象名
4393
+ * token {String} 上传凭证
4394
+ * @param {Function} callback 获取成功回调
4395
+ * 回调函数中的参数:
4396
+ * offset {long} 当前分片在整个对象中的起始偏移量
4397
+ * @return {void}
4398
+ */
4399
+ getOffset: function(b, N) {
4400
+ var X;
4401
+ if (X = localStorage.getItem(b.fileKey + "_" + b.bucketName + "_" + b.objectName + "_context"), !X)
4402
+ return N(0);
4403
+ we.ajax({
4404
+ type: "get",
4405
+ url: b.serveIp + "/" + b.bucketName + "/" + encodeURIComponent(b.objectName) + "?uploadContext",
4406
+ data: {
4407
+ version: T.version,
4408
+ context: X
4409
+ },
4410
+ dataType: "json",
4411
+ beforeSend: function(W) {
4412
+ W.setRequestHeader("x-nos-token", b.token);
4413
+ },
4414
+ success: function(W) {
4415
+ W.errCode ? R.onError({
4416
+ errCode: W.errCode,
4417
+ errMsg: W.errMsg
4418
+ }) : N(W.offset);
4419
+ },
4420
+ error: function(W) {
4421
+ W.status.toString().match(/^5/) && T.gORetryCount > 0 && T.gORetryCount < R.retryCount + 1 ? (T.getOffset(b, N), T.gORetryCount--) : (R.onError(W.responseText), T.gORetryCount = R.retryCount, W.status === 404 && T.clearStorage(b.bucketName, b.objectName, b.fileKey));
4422
+ }
4423
+ });
4424
+ },
4425
+ /**
4426
+ * 上传分片
4427
+ * @method uploadTrunk
4428
+ * @param {Object} param AJAX参数
4429
+ * param中的属性有:
4430
+ * serveIp {String} IP地址
4431
+ * bucketName {String} 桶名
4432
+ * objectName {String} 对象名
4433
+ * token {String} 上传凭证
4434
+ * @param {Object} trunkData 分片数据
4435
+ * trunkData属性有:
4436
+ * file {File} File对象
4437
+ * fileKey {String} 文件名和文件大小的MD5值
4438
+ * offset {long} 当前分片在整个对象中的起始偏移量
4439
+ * trunkSize {long} 分片大小
4440
+ * trunkEnd {long} 分片结束位置
4441
+ * context: {String} 上传上下文
4442
+ * @param {Function} callback 文件(非分片)上传成功回调函数
4443
+ * 回调函数参数:
4444
+ * trunkData {Object} 分片数据
4445
+ * @return {void}
4446
+ */
4447
+ uploadTrunk: function(b, N, X) {
4448
+ var W, se = "", w, pe, re = File.prototype.mozSlice || File.prototype.webkitSlice || File.prototype.slice;
4449
+ if (w = T.getFile(N.fileKey), pe = localStorage.getItem(N.fileKey + "_" + b.bucketName + "_" + b.objectName + "_context"), w.xhr ? W = w.xhr : (W = T.createAjax(), w.xhr = W), W.upload.onprogress = function(G) {
4450
+ var D = 0;
4451
+ G.lengthComputable ? (D = (N.offset + G.loaded) / N.file.size, w.progress = (D * 100).toFixed(2), D > 0 && D < 1 ? (w.status = 1, we("#" + R.fileInputID).attr("disabled", !0)) : D === 1 && (w.status = 2, we("#" + R.fileInputID).attr("disabled", !1)), localStorage.setItem(N.fileKey + "_progress", w.progress), R.onProgress(w)) : (console.log("浏览器不支持进度事件", G), R.onError({
4452
+ errMsg: "浏览器不支持进度事件"
4453
+ }));
4454
+ }, W.onreadystatechange = function() {
4455
+ if (W.readyState === 4) {
4456
+ var G;
4457
+ try {
4458
+ G = JSON.parse(W.responseText);
4459
+ } catch {
4460
+ G = {
4461
+ errMsg: "未知错误"
4462
+ };
4463
+ }
4464
+ if (W.status === 200)
4465
+ w.file.size === 0 && (w.status = 2, w.progress = 100, R.onProgress(w)), localStorage.setItem(N.fileKey + "_" + b.bucketName + "_" + b.objectName + "_context", G.context), G.offset < N.file.size ? T.uploadTrunk(
4466
+ b,
4467
+ we.extend({}, N, {
4468
+ offset: G.offset,
4469
+ trunkEnd: G.offset + N.trunkSize,
4470
+ context: pe || G.context
4471
+ }),
4472
+ X
4473
+ ) : X(N);
4474
+ else if (W.status.toString().match(/^5/))
4475
+ if (T.uTRetryCount < R.retryCount + 1 && T.uTRetryCount > 0)
4476
+ T.getOffset(
4477
+ {
4478
+ serveIp: b.serveIp,
4479
+ bucketName: b.bucketName,
4480
+ objectName: b.objectName,
4481
+ token: b.token,
4482
+ fileKey: N.fileKey
4483
+ },
4484
+ function(m) {
4485
+ T.uploadTrunk(
4486
+ b,
4487
+ we.extend({}, N, {
4488
+ offset: m,
4489
+ trunkEnd: m + N.trunkSize,
4490
+ context: localStorage.getItem(N.fileKey + "_" + b.bucketName + "_" + b.objectName + "_context") || ""
4491
+ }),
4492
+ X
4493
+ );
4494
+ }
4495
+ ), T.uTRetryCount--;
4496
+ else if (T.dnsRetryCount < T.edgeNodeList.length - 1) {
4497
+ T.uTRetryCount = R.retryCount, T.dnsRetryCount++;
4498
+ var D = we.extend({}, b, {
4499
+ serveIp: T.edgeNodeList[T.dnsRetryCount]
4500
+ });
4501
+ T.getOffset(
4502
+ {
4503
+ serveIp: D.serveIp,
4504
+ bucketName: D.bucketName,
4505
+ objectName: D.objectName,
4506
+ token: D.token,
4507
+ fileKey: N.fileKey
4508
+ },
4509
+ function(m) {
4510
+ T.uploadTrunk(
4511
+ D,
4512
+ we.extend({}, N, {
4513
+ offset: m,
4514
+ trunkEnd: m + N.trunkSize,
4515
+ context: localStorage.getItem(N.fileKey + "_" + b.bucketName + "_" + b.objectName + "_context") || ""
4516
+ }),
4517
+ X
4518
+ );
4519
+ }
4520
+ );
4521
+ } else
4522
+ T.dnsRetryCount = 0, R.onError({
4523
+ errCode: G.errCode,
4524
+ errMsg: G.errMsg
4525
+ }), we("#" + R.fileInputID).attr("disabled", !1), T.clearStorage(b.bucketName, b.objectName, N.fileKey);
4526
+ else
4527
+ we("#" + R.fileInputID).attr("disabled", !1), W.status && (T.clearStorage(b.bucketName, b.objectName, N.fileKey), R.onError({
4528
+ errCode: G.errCode,
4529
+ errMsg: G.errMsg
4530
+ }));
4531
+ }
4532
+ }, se = "?offset=" + N.offset + "&complete=" + (N.trunkEnd >= N.file.size) + "&context=" + (pe || N.context) + "&version=" + T.version, W.open("post", b.serveIp + "/" + b.bucketName + "/" + encodeURIComponent(b.objectName) + se), W.timeout = R.timeout, W.setRequestHeader("x-nos-token", b.token), navigator.userAgent.indexOf("WindowsWechat") >= 0) {
4533
+ var ue = new FileReader();
4534
+ ue.addEventListener("loadend", function() {
4535
+ var G = new Blob([ue.result]);
4536
+ W.send(G);
4537
+ }), ue.readAsArrayBuffer(re.call(N.file, N.offset, N.trunkEnd));
4538
+ } else
4539
+ W.send(re.call(N.file, N.offset, N.trunkEnd));
4540
+ },
4541
+ /**
4542
+ * 暂停上传
4543
+ * @method pauseUpload
4544
+ * @return {void}
4545
+ */
4546
+ pauseUpload: function() {
4547
+ var b;
4548
+ T.uploadFile ? T.uploadFile.xhr ? T.uploadFile.status < 2 && (b = T.uploadFile.xhr, b.abort(), we("#" + R.fileInputID).attr("disabled", !1)) : R.onError({
4549
+ errMsg: "当前文件未开始上传"
4550
+ }) : R.onError({
4551
+ errMsg: "未选择需上传的文件"
4552
+ });
4553
+ },
4554
+ /**
4555
+ * 上传文件
4556
+ * @param {Object} param 参数
4557
+ * param属性有:
4558
+ * bucketName {String} 桶名
4559
+ * objectName {String} 对象名
4560
+ * trunkSize {long} 分片大小
4561
+ * token {Object} 上传凭证
4562
+ * @return {void}
4563
+ */
4564
+ upload: function(b, N) {
4565
+ if (!b.bucketName && b.bucketName !== 0) {
4566
+ R.onError({
4567
+ errMsg: "桶名不能为空"
4568
+ });
4569
+ return;
4570
+ }
4571
+ if (!b.objectName && b.objectName !== 0) {
4572
+ R.onError({
4573
+ errMsg: "对象名不能为空"
4574
+ });
4575
+ return;
4576
+ }
4577
+ if (!b.token) {
4578
+ R.onError({
4579
+ errMsg: "上传凭证不能为空"
4580
+ });
4581
+ return;
4582
+ }
4583
+ if (b.trunkSize ? Object.prototype.toString.call(b.trunkSize) === "[object String]" && (b.trunkSize = parseInt(b.trunkSize)) : b.trunkSize = 128 * 1024, !T.uploadFile) {
4584
+ R.onError({
4585
+ errMsg: "未选择需上传的文件"
4586
+ });
4587
+ return;
4588
+ }
4589
+ var X = T.uploadFile;
4590
+ T.getDNS(b.bucketName, function(W) {
4591
+ if (W.length === 0) {
4592
+ R.onError({
4593
+ errMsg: "暂无边缘节点"
4594
+ });
4595
+ return;
4596
+ }
4597
+ T.getOffset(
4598
+ {
4599
+ serveIp: W[0],
4600
+ bucketName: b.bucketName,
4601
+ objectName: b.objectName,
4602
+ fileKey: X.fileKey,
4603
+ token: b.token
4604
+ },
4605
+ function(se) {
4606
+ T.uploadTrunk(
4607
+ {
4608
+ serveIp: W[0],
4609
+ bucketName: b.bucketName,
4610
+ objectName: b.objectName,
4611
+ token: b.token
4612
+ },
4613
+ {
4614
+ file: X.file,
4615
+ fileKey: X.fileKey,
4616
+ offset: se || 0,
4617
+ trunkSize: b.trunkSize,
4618
+ trunkEnd: (se || 0) + b.trunkSize,
4619
+ context: ""
4620
+ },
4621
+ function(w) {
4622
+ T.clearStorage(b.bucketName, b.objectName, w.fileKey), N && N(X);
4623
+ }
4624
+ );
4625
+ }
4626
+ );
4627
+ });
4628
+ }
4629
+ }, T;
4630
+ }
4631
+ const ri = 4 * 1024 * 1024, ii = 12e4, oi = 13e4, si = 3e4;
4632
+ async function Wn(fe, B) {
4633
+ const R = new AbortController(), T = setTimeout(() => R.abort(), si);
4634
+ try {
4635
+ const b = await fetch(fe, { headers: B, credentials: "same-origin", signal: R.signal });
4636
+ if (!b.ok)
4637
+ throw new Error(`NOS 网关请求失败:HTTP ${b.status}(${fe})`);
4638
+ const N = await b.json();
4639
+ if (+N.code != 200)
4640
+ throw new Error(`NOS 网关业务错误:code=${N.code} message=${N.message ?? ""}`);
4641
+ return N.data;
4642
+ } finally {
4643
+ clearTimeout(T);
4644
+ }
4645
+ }
4646
+ function ui(fe) {
4647
+ const {
4648
+ baseURL: B,
4649
+ headers: R,
4650
+ trunkSize: T = ri,
4651
+ onProgress: b,
4652
+ chunkTimeoutMs: N = ii,
4653
+ stallTimeoutMs: X = oi,
4654
+ fetchNosUrl: W = !0
4655
+ } = fe;
4656
+ return async (se) => {
4657
+ const w = Un(`${se.name}:${se.size}:${Date.now()}`).toString(), pe = `objectName=${encodeURIComponent(w)}`, re = await Wn(`${B}/nos/token?${pe}`, R);
4658
+ await new Promise((G, D) => {
4659
+ let m = setTimeout(I, X);
4660
+ const U = () => {
4661
+ m && clearTimeout(m), m = setTimeout(I, X);
4662
+ };
4663
+ function I() {
4664
+ m = null, D(new Error(`上传停滞超时(${Math.round(X / 1e3)}s 无进度):可能为网络中断或服务端响应超时,请重试`));
4665
+ }
4666
+ const C = (L) => {
4667
+ m && clearTimeout(m), m = null, L();
4668
+ }, O = ni({
4669
+ timeout: N,
4670
+ // 分片 XHR 超时放宽(默认 50s 慢环境 commit 易超)
4671
+ onProgress: (L) => {
4672
+ U(), b == null || b(parseFloat(L.progress) || 0);
4673
+ },
4674
+ onError: (L) => {
4675
+ C(
4676
+ () => {
4677
+ var $;
4678
+ return D(L instanceof Error ? L : new Error(`NOS 上传失败:${($ = JSON.stringify(L)) == null ? void 0 : $.slice(0, 200)}`));
4679
+ }
4680
+ );
4681
+ }
4682
+ });
4683
+ O.addFile(se, () => {
4684
+ O.upload(
4685
+ { ...re, trunkSize: T },
4686
+ () => C(G)
4687
+ // 单文件上传结束(全部分片 + complete 提交成功)
4688
+ );
4689
+ });
4690
+ });
4691
+ let ue;
4692
+ if (W) {
4693
+ const G = `objectName=${encodeURIComponent(w)}&fileName=${encodeURIComponent(se.name)}`;
4694
+ ue = await Wn(`${B}/nos/url?${G}`, R).then((D) => D == null ? void 0 : D.url).catch((D) => {
4695
+ console.warn("[super-agent-sdk] 获取 NOS 下载地址失败(不影响上传结果):", D);
4696
+ });
4697
+ }
4698
+ return {
4699
+ nosKey: w,
4700
+ filename: se.name,
4701
+ size: se.size,
4702
+ mime: se.type || void 0,
4703
+ url: ue
4704
+ };
4705
+ };
4706
+ }
4707
+ export {
4708
+ Gr as a,
4709
+ dt as b,
4710
+ ui as c,
4711
+ $n as g
4712
+ };