mn-video-player 1.1.1 → 1.1.2

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