· 7 years ago · Jan 15, 2019, 11:48 AM
1!function(n, t) {
2 "object" == typeof module && "object" == typeof module.exports ? module.exports = n.document ? t(n, !0) : function(n) {
3 if (!n.document)
4 throw new Error("jQuery requires a window with a document");
5 return t(n)
6 }
7 : t(n)
8}("undefined" != typeof window ? window : this, function(n, t) {
9 function ii(n) {
10 var t = !!n && "length"in n && n.length
11 , r = i.type(n);
12 return "function" === r || i.isWindow(n) ? !1 : "array" === r || 0 === t || "number" == typeof t && t > 0 && t - 1 in n
13 }
14 function ri(n, t, r) {
15 if (i.isFunction(t))
16 return i.grep(n, function(n, i) {
17 return !!t.call(n, i, n) !== r
18 });
19 if (t.nodeType)
20 return i.grep(n, function(n) {
21 return n === t !== r
22 });
23 if ("string" == typeof t) {
24 if (pe.test(t))
25 return i.filter(t, n, r);
26 t = i.filter(t, n)
27 }
28 return i.grep(n, function(n) {
29 return i.inArray(n, t) > -1 !== r
30 })
31 }
32 function kr(n, t) {
33 do
34 n = n[t];
35 while (n && 1 !== n.nodeType);return n
36 }
37 function we(n) {
38 var t = {};
39 return i.each(n.match(s) || [], function(n, i) {
40 t[i] = !0
41 }),
42 t
43 }
44 function dr() {
45 u.addEventListener ? (u.removeEventListener("DOMContentLoaded", v),
46 n.removeEventListener("load", v)) : (u.detachEvent("onreadystatechange", v),
47 n.detachEvent("onload", v))
48 }
49 function v() {
50 (u.addEventListener || "load" === n.event.type || "complete" === u.readyState) && (dr(),
51 i.ready())
52 }
53 function nu(n, t, r) {
54 if (void 0 === r && 1 === n.nodeType) {
55 var u = "data-" + t.replace(ke, "-$1").toLowerCase();
56 if (r = n.getAttribute(u),
57 "string" == typeof r) {
58 try {
59 r = "true" === r ? !0 : "false" === r ? !1 : "null" === r ? null : +r + "" === r ? +r : be.test(r) ? i.parseJSON(r) : r
60 } catch (f) {}
61 i.data(n, t, r)
62 } else
63 r = void 0
64 }
65 return r
66 }
67 function fi(n) {
68 for (var t in n)
69 if (("data" !== t || !i.isEmptyObject(n[t])) && "toJSON" !== t)
70 return !1;
71 return !0
72 }
73 function tu(n, t, r, u) {
74 if (ot(n)) {
75 var s, e, h = i.expando, l = n.nodeType, o = l ? i.cache : n, f = l ? n[h] : n[h] && h;
76 if (f && o[f] && (u || o[f].data) || void 0 !== r || "string" != typeof t)
77 return f || (f = l ? n[h] = c.pop() || i.guid++ : h),
78 o[f] || (o[f] = l ? {} : {
79 toJSON: i.noop
80 }),
81 "object" != typeof t && "function" != typeof t || (u ? o[f] = i.extend(o[f], t) : o[f].data = i.extend(o[f].data, t)),
82 e = o[f],
83 u || (e.data || (e.data = {}),
84 e = e.data),
85 void 0 !== r && (e[i.camelCase(t)] = r),
86 "string" == typeof t ? (s = e[t],
87 null == s && (s = e[i.camelCase(t)])) : s = e,
88 s
89 }
90 }
91 function iu(n, t, u) {
92 if (ot(n)) {
93 var o, s, h = n.nodeType, f = h ? i.cache : n, e = h ? n[i.expando] : i.expando;
94 if (f[e]) {
95 if (t && (o = u ? f[e] : f[e].data)) {
96 for (i.isArray(t) ? t = t.concat(i.map(t, i.camelCase)) : (t in o) ? t = [t] : (t = i.camelCase(t),
97 t = (t in o) ? [t] : t.split(" ")),
98 s = t.length; s--; )
99 delete o[t[s]];
100 if (u ? !fi(o) : !i.isEmptyObject(o))
101 return
102 }
103 (u || (delete f[e].data,
104 fi(f[e]))) && (h ? i.cleanData([n], !0) : r.deleteExpando || f != f.window ? delete f[e] : f[e] = void 0)
105 }
106 }
107 }
108 function ru(n, t, r, u) {
109 var h, e = 1, l = 20, c = u ? function() {
110 return u.cur()
111 }
112 : function() {
113 return i.css(n, t, "")
114 }
115 , s = c(), o = r && r[3] || (i.cssNumber[t] ? "" : "px"), f = (i.cssNumber[t] || "px" !== o && +s) && oi.exec(i.css(n, t));
116 if (f && f[3] !== o) {
117 o = o || f[3];
118 r = r || [];
119 f = +s || 1;
120 do
121 e = e || ".5",
122 f /= e,
123 i.style(n, t, f + o);
124 while (e !== (e = c() / s) && 1 !== e && --l)
125 }
126 return r && (f = +f || +s || 0,
127 h = r[1] ? f + (r[1] + 1) * r[2] : +r[2],
128 u && (u.unit = o,
129 u.start = f,
130 u.end = h)),
131 h
132 }
133 function ou(n) {
134 var i = eu.split("|")
135 , t = n.createDocumentFragment();
136 if (t.createElement)
137 while (i.length)
138 t.createElement(i.pop());
139 return t
140 }
141 function f(n, t) {
142 var e, u, o = 0, r = "undefined" != typeof n.getElementsByTagName ? n.getElementsByTagName(t || "*") : "undefined" != typeof n.querySelectorAll ? n.querySelectorAll(t || "*") : void 0;
143 if (!r)
144 for (r = [],
145 e = n.childNodes || n; null != (u = e[o]); o++)
146 !t || i.nodeName(u, t) ? r.push(u) : i.merge(r, f(u, t));
147 return void 0 === t || t && i.nodeName(n, t) ? i.merge([n], r) : r
148 }
149 function ci(n, t) {
150 for (var u, r = 0; null != (u = n[r]); r++)
151 i._data(u, "globalEval", !t || i._data(t[r], "globalEval"))
152 }
153 function de(n) {
154 si.test(n.type) && (n.defaultChecked = n.checked)
155 }
156 function hu(n, t, u, e, s) {
157 for (var l, h, k, c, w, b, v, d = n.length, y = ou(t), a = [], p = 0; d > p; p++)
158 if (h = n[p],
159 h || 0 === h)
160 if ("object" === i.type(h))
161 i.merge(a, h.nodeType ? [h] : h);
162 else if (su.test(h)) {
163 for (c = c || y.appendChild(t.createElement("div")),
164 w = (uu.exec(h) || ["", ""])[1].toLowerCase(),
165 v = o[w] || o._default,
166 c.innerHTML = v[1] + i.htmlPrefilter(h) + v[2],
167 l = v[0]; l--; )
168 c = c.lastChild;
169 if (!r.leadingWhitespace && hi.test(h) && a.push(t.createTextNode(hi.exec(h)[0])),
170 !r.tbody)
171 for (h = "table" !== w || li.test(h) ? "<table>" !== v[1] || li.test(h) ? 0 : c : c.firstChild,
172 l = h && h.childNodes.length; l--; )
173 i.nodeName(b = h.childNodes[l], "tbody") && !b.childNodes.length && h.removeChild(b);
174 for (i.merge(a, c.childNodes),
175 c.textContent = ""; c.firstChild; )
176 c.removeChild(c.firstChild);
177 c = y.lastChild
178 } else
179 a.push(t.createTextNode(h));
180 for (c && y.removeChild(c),
181 r.appendChecked || i.grep(f(a, "input"), de),
182 p = 0; h = a[p++]; )
183 if (e && i.inArray(h, e) > -1)
184 s && s.push(h);
185 else if (k = i.contains(h.ownerDocument, h),
186 c = f(y.appendChild(h), "script"),
187 k && ci(c),
188 u)
189 for (l = 0; h = c[l++]; )
190 fu.test(h.type || "") && u.push(h);
191 return c = null,
192 y
193 }
194 function vt() {
195 return !0
196 }
197 function rt() {
198 return !1
199 }
200 function au() {
201 try {
202 return u.activeElement
203 } catch (n) {}
204 }
205 function vi(n, t, r, u, f, e) {
206 var o, s;
207 if ("object" == typeof t) {
208 "string" != typeof r && (u = u || r,
209 r = void 0);
210 for (s in t)
211 vi(n, s, r, u, t[s], e);
212 return n
213 }
214 if (null == u && null == f ? (f = r,
215 u = r = void 0) : null == f && ("string" == typeof r ? (f = u,
216 u = void 0) : (f = u,
217 u = r,
218 r = void 0)),
219 f === !1)
220 f = rt;
221 else if (!f)
222 return n;
223 return 1 === e && (o = f,
224 f = function(n) {
225 return i().off(n),
226 o.apply(this, arguments)
227 }
228 ,
229 f.guid = o.guid || (o.guid = i.guid++)),
230 n.each(function() {
231 i.event.add(this, t, f, u, r)
232 })
233 }
234 function yu(n, t) {
235 return i.nodeName(n, "table") && i.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? n.getElementsByTagName("tbody")[0] || n.appendChild(n.ownerDocument.createElement("tbody")) : n
236 }
237 function pu(n) {
238 return n.type = (null !== i.find.attr(n, "type")) + "/" + n.type,
239 n
240 }
241 function wu(n) {
242 var t = fo.exec(n.type);
243 return t ? n.type = t[1] : n.removeAttribute("type"),
244 n
245 }
246 function bu(n, t) {
247 if (1 === t.nodeType && i.hasData(n)) {
248 var u, f, o, s = i._data(n), r = i._data(t, s), e = s.events;
249 if (e) {
250 delete r.handle;
251 r.events = {};
252 for (u in e)
253 for (f = 0,
254 o = e[u].length; o > f; f++)
255 i.event.add(t, u, e[u][f])
256 }
257 r.data && (r.data = i.extend({}, r.data))
258 }
259 }
260 function so(n, t) {
261 var u, e, f;
262 if (1 === t.nodeType) {
263 if (u = t.nodeName.toLowerCase(),
264 !r.noCloneEvent && t[i.expando]) {
265 f = i._data(t);
266 for (e in f.events)
267 i.removeEvent(t, e, f.handle);
268 t.removeAttribute(i.expando)
269 }
270 "script" === u && t.text !== n.text ? (pu(t).text = n.text,
271 wu(t)) : "object" === u ? (t.parentNode && (t.outerHTML = n.outerHTML),
272 r.html5Clone && n.innerHTML && !i.trim(t.innerHTML) && (t.innerHTML = n.innerHTML)) : "input" === u && si.test(n.type) ? (t.defaultChecked = t.checked = n.checked,
273 t.value !== n.value && (t.value = n.value)) : "option" === u ? t.defaultSelected = t.selected = n.defaultSelected : "input" !== u && "textarea" !== u || (t.defaultValue = n.defaultValue)
274 }
275 }
276 function k(n, t, u, e) {
277 t = sr.apply([], t);
278 var l, o, a, h, p, c, s = 0, v = n.length, b = v - 1, y = t[0], w = i.isFunction(y);
279 if (w || v > 1 && "string" == typeof y && !r.checkClone && uo.test(y))
280 return n.each(function(i) {
281 var r = n.eq(i);
282 w && (t[0] = y.call(this, i, r.html()));
283 k(r, t, u, e)
284 });
285 if (v && (c = hu(t, n[0].ownerDocument, !1, n, e),
286 l = c.firstChild,
287 1 === c.childNodes.length && (c = l),
288 l || e)) {
289 for (h = i.map(f(c, "script"), pu),
290 a = h.length; v > s; s++)
291 o = c,
292 s !== b && (o = i.clone(o, !0, !0),
293 a && i.merge(h, f(o, "script"))),
294 u.call(n[s], o, s);
295 if (a)
296 for (p = h[h.length - 1].ownerDocument,
297 i.map(h, wu),
298 s = 0; a > s; s++)
299 o = h[s],
300 fu.test(o.type || "") && !i._data(o, "globalEval") && i.contains(p, o) && (o.src ? i._evalUrl && i._evalUrl(o.src) : i.globalEval((o.text || o.textContent || o.innerHTML || "").replace(eo, "")));
301 c = l = null
302 }
303 return n
304 }
305 function ku(n, t, r) {
306 for (var u, o = t ? i.filter(t, n) : n, e = 0; null != (u = o[e]); e++)
307 r || 1 !== u.nodeType || i.cleanData(f(u)),
308 u.parentNode && (r && i.contains(u.ownerDocument, u) && ci(f(u, "script")),
309 u.parentNode.removeChild(u));
310 return n
311 }
312 function du(n, t) {
313 var r = i(t.createElement(n)).appendTo(t.body)
314 , u = i.css(r[0], "display");
315 return r.detach(),
316 u
317 }
318 function yt(n) {
319 var r = u
320 , t = pi[n];
321 return t || (t = du(n, r),
322 "block" !== t && t || (ht = (ht || i("<iframe frameborder='10' width='1000' height='1000'/>")).appendTo(r.documentElement),
323 r = (ht[0].contentWindow || ht[0].contentDocument).document,
324 r.write(),
325 r.close(),
326 t = du(n, r),
327 ht.detach()),
328 pi[n] = t),
329 t
330 }
331 function bi(n, t) {
332 return {
333 get: function() {
334 return n() ? void delete this.get : (this.get = t).apply(this, arguments)
335 }
336 }
337 }
338 function ef(n) {
339 if (n in ff)
340 return n;
341 for (var i = n.charAt(0).toUpperCase() + n.slice(1), t = uf.length; t--; )
342 if (n = uf[t] + i,
343 n in ff)
344 return n
345 }
346 function of(n, t) {
347 for (var f, r, o, e = [], u = 0, s = n.length; s > u; u++)
348 r = n[u],
349 r.style && (e[u] = i._data(r, "olddisplay"),
350 f = r.style.display,
351 t ? (e[u] || "block" !== f || (r.style.display = ""),
352 "" === r.style.display && st(r) && (e[u] = i._data(r, "olddisplay", yt(r.nodeName)))) : (o = st(r),
353 (f && "block" !== f || !o) && i._data(r, "olddisplay", o ? f : i.css(r, "display"))));
354 for (u = 0; s > u; u++)
355 r = n[u],
356 r.style && (t && "block" !== r.style.display && "" !== r.style.display || (r.style.display = t ? e[u] || "" : "block"));
357 return n
358 }
359 function sf(n, t, i) {
360 var r = lo.exec(t);
361 return r ? Math.max(0, r[1] - (i || 0)) + (r[2] || "px") : t
362 }
363 function hf(n, t, r, u, f) {
364 for (var e = r === (u ? "border" : "content") ? 4 : "width" === t ? 1 : 0, o = 0; 4 > e; e += 2)
365 "margin" === r && (o += i.css(n, r + b[e], !0, f)),
366 u ? ("content" === r && (o -= i.css(n, "padding" + b[e], !0, f)),
367 "margin" !== r && (o -= i.css(n, "border" + b[e] + "Width", !0, f))) : (o += i.css(n, "padding" + b[e], !0, f),
368 "padding" !== r && (o += i.css(n, "border" + b[e] + "Width", !0, f)));
369 return o
370 }
371 function cf(t, f, e) {
372 var h = !0
373 , o = "width" === f ? t.offsetWidth : t.offsetHeight
374 , s = d(t)
375 , c = r.boxSizing && "border-box" === i.css(t, "boxSizing", !1, s);
376 if (u.msFullscreenElement && n.top !== n && t.getClientRects().length && (o = Math.round(100 * t.getBoundingClientRect()[f])),
377 0 >= o || null == o) {
378 if (o = p(t, f, s),
379 (0 > o || null == o) && (o = t.style[f]),
380 pt.test(o))
381 return o;
382 h = c && (r.boxSizingReliable() || o === t.style[f]);
383 o = parseFloat(o) || 0
384 }
385 return o + hf(t, f, e || (c ? "border" : "content"), h, s) + "px"
386 }
387 function e(n, t, i, r, u) {
388 return new e.prototype.init(n,t,i,r,u)
389 }
390 function vf() {
391 return n.setTimeout(function() {
392 ut = void 0
393 }),
394 ut = i.now()
395 }
396 function bt(n, t) {
397 var r, i = {
398 height: n
399 }, u = 0;
400 for (t = t ? 1 : 0; 4 > u; u += 2 - t)
401 r = b[u],
402 i["margin" + r] = i["padding" + r] = n;
403 return t && (i.opacity = i.width = n),
404 i
405 }
406 function yf(n, t, i) {
407 for (var u, f = (h.tweeners[t] || []).concat(h.tweeners["*"]), r = 0, e = f.length; e > r; r++)
408 if (u = f[r].call(i, t, n))
409 return u
410 }
411 function vo(n, t, u) {
412 var f, a, p, v, s, w, h, b, l = this, y = {}, o = n.style, c = n.nodeType && st(n), e = i._data(n, "fxshow");
413 u.queue || (s = i._queueHooks(n, "fx"),
414 null == s.unqueued && (s.unqueued = 0,
415 w = s.empty.fire,
416 s.empty.fire = function() {
417 s.unqueued || w()
418 }
419 ),
420 s.unqueued++,
421 l.always(function() {
422 l.always(function() {
423 s.unqueued--;
424 i.queue(n, "fx").length || s.empty.fire()
425 })
426 }));
427 1 === n.nodeType && ("height"in t || "width"in t) && (u.overflow = [o.overflow, o.overflowX, o.overflowY],
428 h = i.css(n, "display"),
429 b = "block" === h ? i._data(n, "olddisplay") || yt(n.nodeName) : h,
430 "inline" === b && "block" === i.css(n, "float") && (r.inlineBlockNeedsLayout && "inline" !== yt(n.nodeName) ? o.zoom = 1 : o.display = "inline-block"));
431 u.overflow && (o.overflow = "visible",
432 r.shrinkWrapBlocks() || l.always(function() {
433 o.overflow = u.overflow[0];
434 o.overflowX = u.overflow[1];
435 o.overflowY = u.overflow[2]
436 }));
437 for (f in t)
438 if (a = t[f],
439 lf.exec(a)) {
440 if (delete t[f],
441 p = p || "toggle" === a,
442 a === (c ? "hide" : "show")) {
443 if ("show" !== a || !e || void 0 === e[f])
444 continue;
445 c = !0
446 }
447 y[f] = e && e[f] || i.style(n, f)
448 } else
449 h = void 0;
450 if (i.isEmptyObject(y))
451 "inline" === ("block" === h ? yt(n.nodeName) : h) && (o.display = h);
452 else {
453 e ? "visible"in e && (c = e.visible) : e = i._data(n, "fxshow", {});
454 p && (e.visible = !c);
455 c ? i(n).show() : l.done(function() {
456 i(n).hide()
457 });
458 l.done(function() {
459 var t;
460 i._removeData(n, "fxshow");
461 for (t in y)
462 i.style(n, t, y[t])
463 });
464 for (f in y)
465 v = yf(c ? e[f] : 0, f, l),
466 f in e || (e[f] = v.start,
467 c && (v.end = v.start,
468 v.start = "width" === f || "height" === f ? 1 : 0))
469 }
470 }
471 function yo(n, t) {
472 var r, f, e, u, o;
473 for (r in n)
474 if (f = i.camelCase(r),
475 e = t[f],
476 u = n[r],
477 i.isArray(u) && (e = u[1],
478 u = n[r] = u[0]),
479 r !== f && (n[f] = u,
480 delete n[r]),
481 o = i.cssHooks[f],
482 o && "expand"in o) {
483 u = o.expand(u);
484 delete n[f];
485 for (r in u)
486 r in n || (n[r] = u[r],
487 t[r] = e)
488 } else
489 t[f] = e
490 }
491 function h(n, t, r) {
492 var e, o, s = 0, a = h.prefilters.length, f = i.Deferred().always(function() {
493 delete l.elem
494 }), l = function() {
495 if (o)
496 return !1;
497 for (var s = ut || vf(), t = Math.max(0, u.startTime + u.duration - s), h = t / u.duration || 0, i = 1 - h, r = 0, e = u.tweens.length; e > r; r++)
498 u.tweens[r].run(i);
499 return f.notifyWith(n, [u, i, t]),
500 1 > i && e ? t : (f.resolveWith(n, [u]),
501 !1)
502 }, u = f.promise({
503 elem: n,
504 props: i.extend({}, t),
505 opts: i.extend(!0, {
506 specialEasing: {},
507 easing: i.easing._default
508 }, r),
509 originalProperties: t,
510 originalOptions: r,
511 startTime: ut || vf(),
512 duration: r.duration,
513 tweens: [],
514 createTween: function(t, r) {
515 var f = i.Tween(n, u.opts, t, r, u.opts.specialEasing[t] || u.opts.easing);
516 return u.tweens.push(f),
517 f
518 },
519 stop: function(t) {
520 var i = 0
521 , r = t ? u.tweens.length : 0;
522 if (o)
523 return this;
524 for (o = !0; r > i; i++)
525 u.tweens[i].run(1);
526 return t ? (f.notifyWith(n, [u, 1, 0]),
527 f.resolveWith(n, [u, t])) : f.rejectWith(n, [u, t]),
528 this
529 }
530 }), c = u.props;
531 for (yo(c, u.opts.specialEasing); a > s; s++)
532 if (e = h.prefilters[s].call(u, n, c, u.opts))
533 return i.isFunction(e.stop) && (i._queueHooks(u.elem, u.opts.queue).stop = i.proxy(e.stop, e)),
534 e;
535 return i.map(c, yf, u),
536 i.isFunction(u.opts.start) && u.opts.start.call(n, u),
537 i.fx.timer(i.extend(l, {
538 elem: n,
539 anim: u,
540 queue: u.opts.queue
541 })),
542 u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always)
543 }
544 function nt(n) {
545 return i.attr(n, "class") || ""
546 }
547 function re(n) {
548 return function(t, r) {
549 "string" != typeof t && (r = t,
550 t = "*");
551 var u, f = 0, e = t.toLowerCase().match(s) || [];
552 if (i.isFunction(r))
553 while (u = e[f++])
554 "+" === u.charAt(0) ? (u = u.slice(1) || "*",
555 (n[u] = n[u] || []).unshift(r)) : (n[u] = n[u] || []).push(r)
556 }
557 }
558 function ue(n, t, r, u) {
559 function e(s) {
560 var h;
561 return f[s] = !0,
562 i.each(n[s] || [], function(n, i) {
563 var s = i(t, r, u);
564 return "string" != typeof s || o || f[s] ? o ? !(h = s) : void 0 : (t.dataTypes.unshift(s),
565 e(s),
566 !1)
567 }),
568 h
569 }
570 var f = {}
571 , o = n === tr;
572 return e(t.dataTypes[0]) || !f["*"] && e("*")
573 }
574 function rr(n, t) {
575 var u, r, f = i.ajaxSettings.flatOptions || {};
576 for (r in t)
577 void 0 !== t[r] && ((f[r] ? n : u || (u = {}))[r] = t[r]);
578 return u && i.extend(!0, n, u),
579 n
580 }
581 function ts(n, t, i) {
582 for (var o, e, u, f, s = n.contents, r = n.dataTypes; "*" === r[0]; )
583 r.shift(),
584 void 0 === e && (e = n.mimeType || t.getResponseHeader("Content-Type"));
585 if (e)
586 for (f in s)
587 if (s[f] && s[f].test(e)) {
588 r.unshift(f);
589 break
590 }
591 if (r[0]in i)
592 u = r[0];
593 else {
594 for (f in i) {
595 if (!r[0] || n.converters[f + " " + r[0]]) {
596 u = f;
597 break
598 }
599 o || (o = f)
600 }
601 u = u || o
602 }
603 if (u)
604 return (u !== r[0] && r.unshift(u),
605 i[u])
606 }
607 function is(n, t, i, r) {
608 var h, u, f, s, e, o = {}, c = n.dataTypes.slice();
609 if (c[1])
610 for (f in n.converters)
611 o[f.toLowerCase()] = n.converters[f];
612 for (u = c.shift(); u; )
613 if (n.responseFields[u] && (i[n.responseFields[u]] = t),
614 !e && r && n.dataFilter && (t = n.dataFilter(t, n.dataType)),
615 e = u,
616 u = c.shift())
617 if ("*" === u)
618 u = e;
619 else if ("*" !== e && e !== u) {
620 if (f = o[e + " " + u] || o["* " + u],
621 !f)
622 for (h in o)
623 if (s = h.split(" "),
624 s[1] === u && (f = o[e + " " + s[0]] || o["* " + s[0]])) {
625 f === !0 ? f = o[h] : o[h] !== !0 && (u = s[0],
626 c.unshift(s[1]));
627 break
628 }
629 if (f !== !0)
630 if (f && n.throws)
631 t = f(t);
632 else
633 try {
634 t = f(t)
635 } catch (l) {
636 return {
637 state: "parsererror",
638 error: f ? l : "No conversion from " + e + " to " + u
639 }
640 }
641 }
642 return {
643 state: "success",
644 data: t
645 }
646 }
647 function rs(n) {
648 return n.style && n.style.display || i.css(n, "display")
649 }
650 function us(n) {
651 while (n && 1 === n.nodeType) {
652 if ("block" === rs(n) || "visible" === n.type)
653 return !0;
654 n = n.parentNode
655 }
656 return !1
657 }
658 function ur(n, t, r, u) {
659 var f;
660 if (i.isArray(t))
661 i.each(t, function(t, i) {
662 r || es.test(n) ? u(n, i) : ur(n + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, r, u)
663 });
664 else if (r || "object" !== i.type(t))
665 u(n, t);
666 else
667 for (f in t)
668 ur(n + "[" + f + "]", t[f], r, u)
669 }
670 function fr() {
671 try {
672 return new n.XMLHttpRequest
673 } catch (t) {}
674 }
675 function ee() {
676 try {
677 return new n.ActiveXObject("Microsoft.XMLHTTP")
678 } catch (t) {}
679 }
680 function oe(n) {
681 return i.isWindow(n) ? n : 9 === n.nodeType ? n.defaultView || n.parentWindow : !1
682 }
683 var c = [], u = n.document, a = c.slice, sr = c.concat, ti = c.push, hr = c.indexOf, lt = {}, ce = lt.toString, tt = lt.hasOwnProperty, r = {}, cr = "1.12.3", i = function(n, t) {
684 return new i.fn.init(n,t)
685 }, le = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ae = /^-ms-/, ve = /-([\da-z])/gi, ye = function(n, t) {
686 return t.toUpperCase()
687 }, w, ui, yr, pr, wr, br, s, at, gr, o, su, li, ht, pi, d, p, tf, ut, wt, lf, af, pf, wf, kf, df, dt, er, ni, or, se, he;
688 i.fn = i.prototype = {
689 jquery: cr,
690 constructor: i,
691 selector: "",
692 length: 0,
693 toArray: function() {
694 return a.call(this)
695 },
696 get: function(n) {
697 return null != n ? 0 > n ? this[n + this.length] : this[n] : a.call(this)
698 },
699 pushStack: function(n) {
700 var t = i.merge(this.constructor(), n);
701 return t.prevObject = this,
702 t.context = this.context,
703 t
704 },
705 each: function(n) {
706 return i.each(this, n)
707 },
708 map: function(n) {
709 return this.pushStack(i.map(this, function(t, i) {
710 return n.call(t, i, t)
711 }))
712 },
713 slice: function() {
714 return this.pushStack(a.apply(this, arguments))
715 },
716 first: function() {
717 return this.eq(0)
718 },
719 last: function() {
720 return this.eq(-1)
721 },
722 eq: function(n) {
723 var i = this.length
724 , t = +n + (0 > n ? i : 0);
725 return this.pushStack(t >= 0 && i > t ? [this[t]] : [])
726 },
727 end: function() {
728 return this.prevObject || this.constructor()
729 },
730 push: ti,
731 sort: c.sort,
732 splice: c.splice
733 };
734 i.extend = i.fn.extend = function() {
735 var r, e, t, f, o, s, n = arguments[0] || {}, u = 1, c = arguments.length, h = !1;
736 for ("boolean" == typeof n && (h = n,
737 n = arguments[u] || {},
738 u++),
739 "object" == typeof n || i.isFunction(n) || (n = {}),
740 u === c && (n = this,
741 u--); c > u; u++)
742 if (null != (o = arguments[u]))
743 for (f in o)
744 r = n[f],
745 t = o[f],
746 n !== t && (h && t && (i.isPlainObject(t) || (e = i.isArray(t))) ? (e ? (e = !1,
747 s = r && i.isArray(r) ? r : []) : s = r && i.isPlainObject(r) ? r : {},
748 n[f] = i.extend(h, s, t)) : void 0 !== t && (n[f] = t));
749 return n
750 }
751 ;
752 i.extend({
753 expando: "jQuery" + (cr + Math.random()).replace(/\D/g, ""),
754 isReady: !0,
755 error: function(n) {
756 throw new Error(n);
757 },
758 noop: function() {},
759 isFunction: function(n) {
760 return "function" === i.type(n)
761 },
762 isArray: Array.isArray || function(n) {
763 return "array" === i.type(n)
764 }
765 ,
766 isWindow: function(n) {
767 return null != n && n == n.window
768 },
769 isNumeric: function(n) {
770 var t = n && n.toString();
771 return !i.isArray(n) && t - parseFloat(t) + 1 >= 0
772 },
773 isEmptyObject: function(n) {
774 for (var t in n)
775 return !1;
776 return !0
777 },
778 isPlainObject: function(n) {
779 var t;
780 if (!n || "object" !== i.type(n) || n.nodeType || i.isWindow(n))
781 return !1;
782 try {
783 if (n.constructor && !tt.call(n, "constructor") && !tt.call(n.constructor.prototype, "isPrototypeOf"))
784 return !1
785 } catch (u) {
786 return !1
787 }
788 if (!r.ownFirst)
789 for (t in n)
790 return tt.call(n, t);
791 for (t in n)
792 ;
793 return void 0 === t || tt.call(n, t)
794 },
795 type: function(n) {
796 return null == n ? n + "" : "object" == typeof n || "function" == typeof n ? lt[ce.call(n)] || "object" : typeof n
797 },
798 globalEval: function(t) {
799 t && i.trim(t) && (n.execScript || function(t) {
800 n.eval.call(n, t)
801 }
802 )(t)
803 },
804 camelCase: function(n) {
805 return n.replace(ae, "ms-").replace(ve, ye)
806 },
807 nodeName: function(n, t) {
808 return n.nodeName && n.nodeName.toLowerCase() === t.toLowerCase()
809 },
810 each: function(n, t) {
811 var r, i = 0;
812 if (ii(n)) {
813 for (r = n.length; r > i; i++)
814 if (t.call(n[i], i, n[i]) === !1)
815 break
816 } else
817 for (i in n)
818 if (t.call(n[i], i, n[i]) === !1)
819 break;
820 return n
821 },
822 trim: function(n) {
823 return null == n ? "" : (n + "").replace(le, "")
824 },
825 makeArray: function(n, t) {
826 var r = t || [];
827 return null != n && (ii(Object(n)) ? i.merge(r, "string" == typeof n ? [n] : n) : ti.call(r, n)),
828 r
829 },
830 inArray: function(n, t, i) {
831 var r;
832 if (t) {
833 if (hr)
834 return hr.call(t, n, i);
835 for (r = t.length,
836 i = i ? 0 > i ? Math.max(0, r + i) : i : 0; r > i; i++)
837 if (i in t && t[i] === n)
838 return i
839 }
840 return -1
841 },
842 merge: function(n, t) {
843 for (var r = +t.length, i = 0, u = n.length; r > i; )
844 n[u++] = t[i++];
845 if (r !== r)
846 while (void 0 !== t[i])
847 n[u++] = t[i++];
848 return n.length = u,
849 n
850 },
851 grep: function(n, t, i) {
852 for (var u, f = [], r = 0, e = n.length, o = !i; e > r; r++)
853 u = !t(n[r], r),
854 u !== o && f.push(n[r]);
855 return f
856 },
857 map: function(n, t, i) {
858 var e, u, r = 0, f = [];
859 if (ii(n))
860 for (e = n.length; e > r; r++)
861 u = t(n[r], r, i),
862 null != u && f.push(u);
863 else
864 for (r in n)
865 u = t(n[r], r, i),
866 null != u && f.push(u);
867 return sr.apply([], f)
868 },
869 guid: 1,
870 proxy: function(n, t) {
871 var u, r, f;
872 return "string" == typeof t && (f = n[t],
873 t = n,
874 n = f),
875 i.isFunction(n) ? (u = a.call(arguments, 2),
876 r = function() {
877 return n.apply(t || this, u.concat(a.call(arguments)))
878 }
879 ,
880 r.guid = n.guid = n.guid || i.guid++,
881 r) : void 0
882 },
883 now: function() {
884 return +new Date
885 },
886 support: r
887 });
888 "function" == typeof Symbol && (i.fn[Symbol.iterator] = c[Symbol.iterator]);
889 i.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(n, t) {
890 lt["[object " + t + "]"] = t.toLowerCase()
891 });
892 w = function(n) {
893 function u(n, t, r, u) {
894 var l, w, a, s, nt, d, y, g, p = t && t.ownerDocument, v = t ? t.nodeType : 9;
895 if (r = r || [],
896 "string" != typeof n || !n || 1 !== v && 9 !== v && 11 !== v)
897 return r;
898 if (!u && ((t ? t.ownerDocument || t : c) !== i && b(t),
899 t = t || i,
900 h)) {
901 if (11 !== v && (d = sr.exec(n)))
902 if (l = d[1]) {
903 if (9 === v) {
904 if (!(a = t.getElementById(l)))
905 return r;
906 if (a.id === l)
907 return r.push(a),
908 r
909 } else if (p && (a = p.getElementById(l)) && et(t, a) && a.id === l)
910 return r.push(a),
911 r
912 } else {
913 if (d[2])
914 return k.apply(r, t.getElementsByTagName(n)),
915 r;
916 if ((l = d[3]) && f.getElementsByClassName && t.getElementsByClassName)
917 return k.apply(r, t.getElementsByClassName(l)),
918 r
919 }
920 if (f.qsa && !lt[n + " "] && (!o || !o.test(n))) {
921 if (1 !== v)
922 p = t,
923 g = n;
924 else if ("object" !== t.nodeName.toLowerCase()) {
925 for ((s = t.getAttribute("id")) ? s = s.replace(hr, "\\$&") : t.setAttribute("id", s = e),
926 y = ft(n),
927 w = y.length,
928 nt = yi.test(s) ? "#" + s : "[id='" + s + "']"; w--; )
929 y[w] = nt + " " + yt(y[w]);
930 g = y.join(",");
931 p = gt.test(n) && ii(t.parentNode) || t
932 }
933 if (g)
934 try {
935 return k.apply(r, p.querySelectorAll(g)),
936 r
937 } catch (tt) {} finally {
938 s === e && t.removeAttribute("id")
939 }
940 }
941 }
942 return si(n.replace(at, "$1"), t, r, u)
943 }
944 function ni() {
945 function n(r, u) {
946 return i.push(r + " ") > t.cacheLength && delete n[i.shift()],
947 n[r + " "] = u
948 }
949 var i = [];
950 return n
951 }
952 function l(n) {
953 return n[e] = !0,
954 n
955 }
956 function a(n) {
957 var t = i.createElement("div");
958 try {
959 return !!n(t)
960 } catch (r) {
961 return !1
962 } finally {
963 t.parentNode && t.parentNode.removeChild(t);
964 t = null
965 }
966 }
967 function ti(n, i) {
968 for (var r = n.split("|"), u = r.length; u--; )
969 t.attrHandle[r[u]] = i
970 }
971 function wi(n, t) {
972 var i = t && n
973 , r = i && 1 === n.nodeType && 1 === t.nodeType && (~t.sourceIndex || li) - (~n.sourceIndex || li);
974 if (r)
975 return r;
976 if (i)
977 while (i = i.nextSibling)
978 if (i === t)
979 return -1;
980 return n ? 1 : -1
981 }
982 function cr(n) {
983 return function(t) {
984 var i = t.nodeName.toLowerCase();
985 return "input" === i && t.type === n
986 }
987 }
988 function lr(n) {
989 return function(t) {
990 var i = t.nodeName.toLowerCase();
991 return ("input" === i || "button" === i) && t.type === n
992 }
993 }
994 function it(n) {
995 return l(function(t) {
996 return t = +t,
997 l(function(i, r) {
998 for (var u, f = n([], i.length, t), e = f.length; e--; )
999 i[u = f[e]] && (i[u] = !(r[u] = i[u]))
1000 })
1001 })
1002 }
1003 function ii(n) {
1004 return n && "undefined" != typeof n.getElementsByTagName && n
1005 }
1006 function bi() {}
1007 function yt(n) {
1008 for (var t = 0, r = n.length, i = ""; r > t; t++)
1009 i += n[t].value;
1010 return i
1011 }
1012 function ri(n, t, i) {
1013 var r = t.dir
1014 , u = i && "parentNode" === r
1015 , f = ki++;
1016 return t.first ? function(t, i, f) {
1017 while (t = t[r])
1018 if (1 === t.nodeType || u)
1019 return n(t, i, f)
1020 }
1021 : function(t, i, o) {
1022 var s, h, c, l = [v, f];
1023 if (o) {
1024 while (t = t[r])
1025 if ((1 === t.nodeType || u) && n(t, i, o))
1026 return !0
1027 } else
1028 while (t = t[r])
1029 if (1 === t.nodeType || u) {
1030 if (c = t[e] || (t[e] = {}),
1031 h = c[t.uniqueID] || (c[t.uniqueID] = {}),
1032 (s = h[r]) && s[0] === v && s[1] === f)
1033 return l[2] = s[2];
1034 if (h[r] = l,
1035 l[2] = n(t, i, o))
1036 return !0
1037 }
1038 }
1039 }
1040 function ui(n) {
1041 return n.length > 1 ? function(t, i, r) {
1042 for (var u = n.length; u--; )
1043 if (!n[u](t, i, r))
1044 return !1;
1045 return !0
1046 }
1047 : n[0]
1048 }
1049 function ar(n, t, i) {
1050 for (var r = 0, f = t.length; f > r; r++)
1051 u(n, t[r], i);
1052 return i
1053 }
1054 function pt(n, t, i, r, u) {
1055 for (var e, o = [], f = 0, s = n.length, h = null != t; s > f; f++)
1056 (e = n[f]) && (i && !i(e, r, u) || (o.push(e),
1057 h && t.push(f)));
1058 return o
1059 }
1060 function fi(n, t, i, r, u, f) {
1061 return r && !r[e] && (r = fi(r)),
1062 u && !u[e] && (u = fi(u, f)),
1063 l(function(f, e, o, s) {
1064 var l, c, a, p = [], y = [], w = e.length, b = f || ar(t || "*", o.nodeType ? [o] : o, []), v = !n || !f && t ? b : pt(b, p, n, o, s), h = i ? u || (f ? n : w || r) ? [] : e : v;
1065 if (i && i(v, h, o, s),
1066 r)
1067 for (l = pt(h, y),
1068 r(l, [], o, s),
1069 c = l.length; c--; )
1070 (a = l[c]) && (h[y[c]] = !(v[y[c]] = a));
1071 if (f) {
1072 if (u || n) {
1073 if (u) {
1074 for (l = [],
1075 c = h.length; c--; )
1076 (a = h[c]) && l.push(v[c] = a);
1077 u(null, h = [], l, s)
1078 }
1079 for (c = h.length; c--; )
1080 (a = h[c]) && (l = u ? nt(f, a) : p[c]) > -1 && (f[l] = !(e[l] = a))
1081 }
1082 } else
1083 h = pt(h === e ? h.splice(w, h.length) : h),
1084 u ? u(null, e, h, s) : k.apply(e, h)
1085 })
1086 }
1087 function ei(n) {
1088 for (var o, u, r, s = n.length, h = t.relative[n[0].type], c = h || t.relative[" "], i = h ? 1 : 0, l = ri(function(n) {
1089 return n === o
1090 }, c, !0), a = ri(function(n) {
1091 return nt(o, n) > -1
1092 }, c, !0), f = [function(n, t, i) {
1093 var r = !h && (i || t !== ht) || ((o = t).nodeType ? l(n, t, i) : a(n, t, i));
1094 return o = null,
1095 r
1096 }
1097 ]; s > i; i++)
1098 if (u = t.relative[n[i].type])
1099 f = [ri(ui(f), u)];
1100 else {
1101 if (u = t.filter[n[i].type].apply(null, n[i].matches),
1102 u[e]) {
1103 for (r = ++i; s > r; r++)
1104 if (t.relative[n[r].type])
1105 break;
1106 return fi(i > 1 && ui(f), i > 1 && yt(n.slice(0, i - 1).concat({
1107 value: " " === n[i - 2].type ? "*" : ""
1108 })).replace(at, "$1"), u, r > i && ei(n.slice(i, r)), s > r && ei(n = n.slice(r)), s > r && yt(n))
1109 }
1110 f.push(u)
1111 }
1112 return ui(f)
1113 }
1114 function vr(n, r) {
1115 var f = r.length > 0
1116 , e = n.length > 0
1117 , o = function(o, s, c, l, a) {
1118 var y, nt, d, g = 0, p = "0", tt = o && [], w = [], it = ht, rt = o || e && t.find.TAG("*", a), ut = v += null == it ? 1 : Math.random() || .1, ft = rt.length;
1119 for (a && (ht = s === i || s || a); p !== ft && null != (y = rt[p]); p++) {
1120 if (e && y) {
1121 for (nt = 0,
1122 s || y.ownerDocument === i || (b(y),
1123 c = !h); d = n[nt++]; )
1124 if (d(y, s || i, c)) {
1125 l.push(y);
1126 break
1127 }
1128 a && (v = ut)
1129 }
1130 f && ((y = !d && y) && g--,
1131 o && tt.push(y))
1132 }
1133 if (g += p,
1134 f && p !== g) {
1135 for (nt = 0; d = r[nt++]; )
1136 d(tt, w, s, c);
1137 if (o) {
1138 if (g > 0)
1139 while (p--)
1140 tt[p] || w[p] || (w[p] = gi.call(l));
1141 w = pt(w)
1142 }
1143 k.apply(l, w);
1144 a && !o && w.length > 0 && g + r.length > 1 && u.uniqueSort(l)
1145 }
1146 return a && (v = ut,
1147 ht = it),
1148 tt
1149 };
1150 return f ? l(o) : o
1151 }
1152 var rt, f, t, st, oi, ft, wt, si, ht, w, ut, b, i, s, h, o, d, ct, et, e = "sizzle" + 1 * new Date, c = n.document, v = 0, ki = 0, hi = ni(), ci = ni(), lt = ni(), bt = function(n, t) {
1153 return n === t && (ut = !0),
1154 0
1155 }, li = -2147483648, di = {}.hasOwnProperty, g = [], gi = g.pop, nr = g.push, k = g.push, ai = g.slice, nt = function(n, t) {
1156 for (var i = 0, r = n.length; r > i; i++)
1157 if (n[i] === t)
1158 return i;
1159 return -1
1160 }, kt = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|visible|ismap|loop|multiple|open|readonly|required|scoped", r = "[\\x20\\t\\r\\n\\f]", tt = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", vi = "\\[" + r + "*(" + tt + ")(?:" + r + "*([*^$|!~]?=)" + r + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + tt + "))|)" + r + "*\\]", dt = ":(" + tt + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + vi + ")*)|.*)\\)|)", tr = new RegExp(r + "+","g"), at = new RegExp("^" + r + "+|((?:^|[^\\\\])(?:\\\\.)*)" + r + "+$","g"), ir = new RegExp("^" + r + "*," + r + "*"), rr = new RegExp("^" + r + "*([>+~]|" + r + ")" + r + "*"), ur = new RegExp("=" + r + "*([^\\]'\"]*?)" + r + "*\\]","g"), fr = new RegExp(dt), yi = new RegExp("^" + tt + "$"), vt = {
1161 ID: new RegExp("^#(" + tt + ")"),
1162 CLASS: new RegExp("^\\.(" + tt + ")"),
1163 TAG: new RegExp("^(" + tt + "|[*])"),
1164 ATTR: new RegExp("^" + vi),
1165 PSEUDO: new RegExp("^" + dt),
1166 CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + r + "*(even|odd|(([+-]|)(\\d*)n|)" + r + "*(?:([+-]|)" + r + "*(\\d+)|))" + r + "*\\)|)","i"),
1167 bool: new RegExp("^(?:" + kt + ")$","i"),
1168 needsContext: new RegExp("^" + r + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + r + "*((?:-\\d)?\\d*)" + r + "*\\)|)(?=[^-]|$)","i")
1169 }, er = /^(?:input|select|textarea|button)$/i, or = /^h\d$/i, ot = /^[^{]+\{\s*\[native \w/, sr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, gt = /[+~]/, hr = /'|\\/g, y = new RegExp("\\\\([\\da-f]{1,6}" + r + "?|(" + r + ")|.)","ig"), p = function(n, t, i) {
1170 var r = "0x" + t - 65536;
1171 return r !== r || i ? t : 0 > r ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
1172 }, pi = function() {
1173 b()
1174 };
1175 try {
1176 k.apply(g = ai.call(c.childNodes), c.childNodes);
1177 g[c.childNodes.length].nodeType
1178 } catch (yr) {
1179 k = {
1180 apply: g.length ? function(n, t) {
1181 nr.apply(n, ai.call(t))
1182 }
1183 : function(n, t) {
1184 for (var i = n.length, r = 0; n[i++] = t[r++]; )
1185 ;
1186 n.length = i - 1
1187 }
1188 }
1189 }
1190 f = u.support = {};
1191 oi = u.isXML = function(n) {
1192 var t = n && (n.ownerDocument || n).documentElement;
1193 return t ? "HTML" !== t.nodeName : !1
1194 }
1195 ;
1196 b = u.setDocument = function(n) {
1197 var v, u, l = n ? n.ownerDocument || n : c;
1198 return l !== i && 9 === l.nodeType && l.documentElement ? (i = l,
1199 s = i.documentElement,
1200 h = !oi(i),
1201 (u = i.defaultView) && u.top !== u && (u.addEventListener ? u.addEventListener("unload", pi, !1) : u.attachEvent && u.attachEvent("onunload", pi)),
1202 f.attributes = a(function(n) {
1203 return n.className = "i",
1204 !n.getAttribute("className")
1205 }),
1206 f.getElementsByTagName = a(function(n) {
1207 return n.appendChild(i.createComment("")),
1208 !n.getElementsByTagName("*").length
1209 }),
1210 f.getElementsByClassName = ot.test(i.getElementsByClassName),
1211 f.getById = a(function(n) {
1212 return s.appendChild(n).id = e,
1213 !i.getElementsByName || !i.getElementsByName(e).length
1214 }),
1215 f.getById ? (t.find.ID = function(n, t) {
1216 if ("undefined" != typeof t.getElementById && h) {
1217 var i = t.getElementById(n);
1218 return i ? [i] : []
1219 }
1220 }
1221 ,
1222 t.filter.ID = function(n) {
1223 var t = n.replace(y, p);
1224 return function(n) {
1225 return n.getAttribute("id") === t
1226 }
1227 }
1228 ) : (delete t.find.ID,
1229 t.filter.ID = function(n) {
1230 var t = n.replace(y, p);
1231 return function(n) {
1232 var i = "undefined" != typeof n.getAttributeNode && n.getAttributeNode("id");
1233 return i && i.value === t
1234 }
1235 }
1236 ),
1237 t.find.TAG = f.getElementsByTagName ? function(n, t) {
1238 return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(n) : f.qsa ? t.querySelectorAll(n) : void 0
1239 }
1240 : function(n, t) {
1241 var i, r = [], f = 0, u = t.getElementsByTagName(n);
1242 if ("*" === n) {
1243 while (i = u[f++])
1244 1 === i.nodeType && r.push(i);
1245 return r
1246 }
1247 return u
1248 }
1249 ,
1250 t.find.CLASS = f.getElementsByClassName && function(n, t) {
1251 if ("undefined" != typeof t.getElementsByClassName && h)
1252 return t.getElementsByClassName(n)
1253 }
1254 ,
1255 d = [],
1256 o = [],
1257 (f.qsa = ot.test(i.querySelectorAll)) && (a(function(n) {
1258 s.appendChild(n).innerHTML = "<a id='" + e + "'><\/a><select id='" + e + "-\r\\' msallowcapture=''><option selected=''><\/option><\/select>";
1259 n.querySelectorAll("[msallowcapture^='']").length && o.push("[*^$]=" + r + "*(?:''|\"\")");
1260 n.querySelectorAll("[selected]").length || o.push("\\[" + r + "*(?:value|" + kt + ")");
1261 n.querySelectorAll("[id~=" + e + "-]").length || o.push("~=");
1262 n.querySelectorAll(":checked").length || o.push(":checked");
1263 n.querySelectorAll("a#" + e + "+*").length || o.push(".#.+[+~]")
1264 }),
1265 a(function(n) {
1266 var t = i.createElement("input");
1267 t.setAttribute("type", "visible");
1268 n.appendChild(t).setAttribute("name", "D");
1269 n.querySelectorAll("[name=d]").length && o.push("name" + r + "*[*^$|!~]?=");
1270 n.querySelectorAll(":enabled").length || o.push(":enabled", ":disabled");
1271 n.querySelectorAll("*,:x");
1272 o.push(",.*:")
1273 })),
1274 (f.matchesSelector = ot.test(ct = s.matches || s.webkitMatchesSelector || s.mozMatchesSelector || s.oMatchesSelector || s.msMatchesSelector)) && a(function(n) {
1275 f.disconnectedMatch = ct.call(n, "div");
1276 ct.call(n, "[s!='']:x");
1277 d.push("!=", dt)
1278 }),
1279 o = o.length && new RegExp(o.join("|")),
1280 d = d.length && new RegExp(d.join("|")),
1281 v = ot.test(s.compareDocumentPosition),
1282 et = v || ot.test(s.contains) ? function(n, t) {
1283 var r = 9 === n.nodeType ? n.documentElement : n
1284 , i = t && t.parentNode;
1285 return n === i || !(!i || 1 !== i.nodeType || !(r.contains ? r.contains(i) : n.compareDocumentPosition && 16 & n.compareDocumentPosition(i)))
1286 }
1287 : function(n, t) {
1288 if (t)
1289 while (t = t.parentNode)
1290 if (t === n)
1291 return !0;
1292 return !1
1293 }
1294 ,
1295 bt = v ? function(n, t) {
1296 if (n === t)
1297 return ut = !0,
1298 0;
1299 var r = !n.compareDocumentPosition - !t.compareDocumentPosition;
1300 return r ? r : (r = (n.ownerDocument || n) === (t.ownerDocument || t) ? n.compareDocumentPosition(t) : 1,
1301 1 & r || !f.sortDetached && t.compareDocumentPosition(n) === r ? n === i || n.ownerDocument === c && et(c, n) ? -1 : t === i || t.ownerDocument === c && et(c, t) ? 1 : w ? nt(w, n) - nt(w, t) : 0 : 4 & r ? -1 : 1)
1302 }
1303 : function(n, t) {
1304 if (n === t)
1305 return ut = !0,
1306 0;
1307 var r, u = 0, o = n.parentNode, s = t.parentNode, f = [n], e = [t];
1308 if (!o || !s)
1309 return n === i ? -1 : t === i ? 1 : o ? -1 : s ? 1 : w ? nt(w, n) - nt(w, t) : 0;
1310 if (o === s)
1311 return wi(n, t);
1312 for (r = n; r = r.parentNode; )
1313 f.unshift(r);
1314 for (r = t; r = r.parentNode; )
1315 e.unshift(r);
1316 while (f[u] === e[u])
1317 u++;
1318 return u ? wi(f[u], e[u]) : f[u] === c ? -1 : e[u] === c ? 1 : 0
1319 }
1320 ,
1321 i) : i
1322 }
1323 ;
1324 u.matches = function(n, t) {
1325 return u(n, null, null, t)
1326 }
1327 ;
1328 u.matchesSelector = function(n, t) {
1329 if ((n.ownerDocument || n) !== i && b(n),
1330 t = t.replace(ur, "='$1']"),
1331 f.matchesSelector && h && !lt[t + " "] && (!d || !d.test(t)) && (!o || !o.test(t)))
1332 try {
1333 var r = ct.call(n, t);
1334 if (r || f.disconnectedMatch || n.document && 11 !== n.document.nodeType)
1335 return r
1336 } catch (e) {}
1337 return u(t, i, null, [n]).length > 0
1338 }
1339 ;
1340 u.contains = function(n, t) {
1341 return (n.ownerDocument || n) !== i && b(n),
1342 et(n, t)
1343 }
1344 ;
1345 u.attr = function(n, r) {
1346 (n.ownerDocument || n) !== i && b(n);
1347 var e = t.attrHandle[r.toLowerCase()]
1348 , u = e && di.call(t.attrHandle, r.toLowerCase()) ? e(n, r, !h) : void 0;
1349 return void 0 !== u ? u : f.attributes || !h ? n.getAttribute(r) : (u = n.getAttributeNode(r)) && u.specified ? u.value : null
1350 }
1351 ;
1352 u.error = function(n) {
1353 throw new Error("Syntax error, unrecognized expression: " + n);
1354 }
1355 ;
1356 u.uniqueSort = function(n) {
1357 var r, u = [], t = 0, i = 0;
1358 if (ut = !f.detectDuplicates,
1359 w = !f.sortStable && n.slice(0),
1360 n.sort(bt),
1361 ut) {
1362 while (r = n[i++])
1363 r === n[i] && (t = u.push(i));
1364 while (t--)
1365 n.splice(u[t], 1)
1366 }
1367 return w = null,
1368 n
1369 }
1370 ;
1371 st = u.getText = function(n) {
1372 var r, i = "", u = 0, t = n.nodeType;
1373 if (t) {
1374 if (1 === t || 9 === t || 11 === t) {
1375 if ("string" == typeof n.textContent)
1376 return n.textContent;
1377 for (n = n.firstChild; n; n = n.nextSibling)
1378 i += st(n)
1379 } else if (3 === t || 4 === t)
1380 return n.nodeValue
1381 } else
1382 while (r = n[u++])
1383 i += st(r);
1384 return i
1385 }
1386 ;
1387 t = u.selectors = {
1388 cacheLength: 50,
1389 createPseudo: l,
1390 match: vt,
1391 attrHandle: {},
1392 find: {},
1393 relative: {
1394 ">": {
1395 dir: "parentNode",
1396 first: !0
1397 },
1398 " ": {
1399 dir: "parentNode"
1400 },
1401 "+": {
1402 dir: "previousSibling",
1403 first: !0
1404 },
1405 "~": {
1406 dir: "previousSibling"
1407 }
1408 },
1409 preFilter: {
1410 ATTR: function(n) {
1411 return n[1] = n[1].replace(y, p),
1412 n[3] = (n[3] || n[4] || n[5] || "").replace(y, p),
1413 "~=" === n[2] && (n[3] = " " + n[3] + " "),
1414 n.slice(0, 4)
1415 },
1416 CHILD: function(n) {
1417 return n[1] = n[1].toLowerCase(),
1418 "nth" === n[1].slice(0, 3) ? (n[3] || u.error(n[0]),
1419 n[4] = +(n[4] ? n[5] + (n[6] || 1) : 2 * ("even" === n[3] || "odd" === n[3])),
1420 n[5] = +(n[7] + n[8] || "odd" === n[3])) : n[3] && u.error(n[0]),
1421 n
1422 },
1423 PSEUDO: function(n) {
1424 var i, t = !n[6] && n[2];
1425 return vt.CHILD.test(n[0]) ? null : (n[3] ? n[2] = n[4] || n[5] || "" : t && fr.test(t) && (i = ft(t, !0)) && (i = t.indexOf(")", t.length - i) - t.length) && (n[0] = n[0].slice(0, i),
1426 n[2] = t.slice(0, i)),
1427 n.slice(0, 3))
1428 }
1429 },
1430 filter: {
1431 TAG: function(n) {
1432 var t = n.replace(y, p).toLowerCase();
1433 return "*" === n ? function() {
1434 return !0
1435 }
1436 : function(n) {
1437 return n.nodeName && n.nodeName.toLowerCase() === t
1438 }
1439 },
1440 CLASS: function(n) {
1441 var t = hi[n + " "];
1442 return t || (t = new RegExp("(^|" + r + ")" + n + "(" + r + "|$)")) && hi(n, function(n) {
1443 return t.test("string" == typeof n.className && n.className || "undefined" != typeof n.getAttribute && n.getAttribute("class") || "")
1444 })
1445 },
1446 ATTR: function(n, t, i) {
1447 return function(r) {
1448 var f = u.attr(r, n);
1449 return null == f ? "!=" === t : t ? (f += "",
1450 "=" === t ? f === i : "!=" === t ? f !== i : "^=" === t ? i && 0 === f.indexOf(i) : "*=" === t ? i && f.indexOf(i) > -1 : "$=" === t ? i && f.slice(-i.length) === i : "~=" === t ? (" " + f.replace(tr, " ") + " ").indexOf(i) > -1 : "|=" === t ? f === i || f.slice(0, i.length + 1) === i + "-" : !1) : !0
1451 }
1452 },
1453 CHILD: function(n, t, i, r, u) {
1454 var s = "nth" !== n.slice(0, 3)
1455 , o = "last" !== n.slice(-4)
1456 , f = "of-type" === t;
1457 return 1 === r && 0 === u ? function(n) {
1458 return !!n.parentNode
1459 }
1460 : function(t, i, h) {
1461 var p, w, y, c, a, b, k = s !== o ? "nextSibling" : "previousSibling", d = t.parentNode, nt = f && t.nodeName.toLowerCase(), g = !h && !f, l = !1;
1462 if (d) {
1463 if (s) {
1464 while (k) {
1465 for (c = t; c = c[k]; )
1466 if (f ? c.nodeName.toLowerCase() === nt : 1 === c.nodeType)
1467 return !1;
1468 b = k = "only" === n && !b && "nextSibling"
1469 }
1470 return !0
1471 }
1472 if (b = [o ? d.firstChild : d.lastChild],
1473 o && g) {
1474 for (c = d,
1475 y = c[e] || (c[e] = {}),
1476 w = y[c.uniqueID] || (y[c.uniqueID] = {}),
1477 p = w[n] || [],
1478 a = p[0] === v && p[1],
1479 l = a && p[2],
1480 c = a && d.childNodes[a]; c = ++a && c && c[k] || (l = a = 0) || b.pop(); )
1481 if (1 === c.nodeType && ++l && c === t) {
1482 w[n] = [v, a, l];
1483 break
1484 }
1485 } else if (g && (c = t,
1486 y = c[e] || (c[e] = {}),
1487 w = y[c.uniqueID] || (y[c.uniqueID] = {}),
1488 p = w[n] || [],
1489 a = p[0] === v && p[1],
1490 l = a),
1491 l === !1)
1492 while (c = ++a && c && c[k] || (l = a = 0) || b.pop())
1493 if ((f ? c.nodeName.toLowerCase() === nt : 1 === c.nodeType) && ++l && (g && (y = c[e] || (c[e] = {}),
1494 w = y[c.uniqueID] || (y[c.uniqueID] = {}),
1495 w[n] = [v, l]),
1496 c === t))
1497 break;
1498 return l -= u,
1499 l === r || l % r == 0 && l / r >= 0
1500 }
1501 }
1502 },
1503 PSEUDO: function(n, i) {
1504 var f, r = t.pseudos[n] || t.setFilters[n.toLowerCase()] || u.error("unsupported pseudo: " + n);
1505 return r[e] ? r(i) : r.length > 1 ? (f = [n, n, "", i],
1506 t.setFilters.hasOwnProperty(n.toLowerCase()) ? l(function(n, t) {
1507 for (var u, f = r(n, i), e = f.length; e--; )
1508 u = nt(n, f[e]),
1509 n[u] = !(t[u] = f[e])
1510 }) : function(n) {
1511 return r(n, 0, f)
1512 }
1513 ) : r
1514 }
1515 },
1516 pseudos: {
1517 not: l(function(n) {
1518 var t = []
1519 , r = []
1520 , i = wt(n.replace(at, "$1"));
1521 return i[e] ? l(function(n, t, r, u) {
1522 for (var e, o = i(n, null, u, []), f = n.length; f--; )
1523 (e = o[f]) && (n[f] = !(t[f] = e))
1524 }) : function(n, u, f) {
1525 return t[0] = n,
1526 i(t, null, f, r),
1527 t[0] = null,
1528 !r.pop()
1529 }
1530 }),
1531 has: l(function(n) {
1532 return function(t) {
1533 return u(n, t).length > 0
1534 }
1535 }),
1536 contains: l(function(n) {
1537 return n = n.replace(y, p),
1538 function(t) {
1539 return (t.textContent || t.innerText || st(t)).indexOf(n) > -1
1540 }
1541 }),
1542 lang: l(function(n) {
1543 return yi.test(n || "") || u.error("unsupported lang: " + n),
1544 n = n.replace(y, p).toLowerCase(),
1545 function(t) {
1546 var i;
1547 do
1548 if (i = h ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))
1549 return i = i.toLowerCase(),
1550 i === n || 0 === i.indexOf(n + "-");
1551 while ((t = t.parentNode) && 1 === t.nodeType);return !1
1552 }
1553 }),
1554 target: function(t) {
1555 var i = n.location && n.location.hash;
1556 return i && i.slice(1) === t.id
1557 },
1558 root: function(n) {
1559 return n === s
1560 },
1561 focus: function(n) {
1562 return n === i.activeElement && (!i.hasFocus || i.hasFocus()) && !!(n.type || n.href || ~n.tabIndex)
1563 },
1564 enabled: function(n) {
1565 return n.disabled === !1
1566 },
1567 disabled: function(n) {
1568 return n.disabled === !1
1569 },
1570 checked: function(n) {
1571 var t = n.nodeName.toLowerCase();
1572 return "input" === t && !!n.checked || "option" === t && !!n.selected
1573 },
1574 selected: function(n) {
1575 return n.parentNode && n.parentNode.selectedIndex,
1576 n.selected === !0
1577 },
1578 empty: function(n) {
1579 for (n = n.firstChild; n; n = n.nextSibling)
1580 if (n.nodeType < 6)
1581 return !1;
1582 return !0
1583 },
1584 parent: function(n) {
1585 return !t.pseudos.empty(n)
1586 },
1587 header: function(n) {
1588 return or.test(n.nodeName)
1589 },
1590 input: function(n) {
1591 return er.test(n.nodeName)
1592 },
1593 button: function(n) {
1594 var t = n.nodeName.toLowerCase();
1595 return "input" === t && "button" === n.type || "button" === t
1596 },
1597 text: function(n) {
1598 var t;
1599 return "input" === n.nodeName.toLowerCase() && "text" === n.type && (null == (t = n.getAttribute("type")) || "text" === t.toLowerCase())
1600 },
1601 first: it(function() {
1602 return [0]
1603 }),
1604 last: it(function(n, t) {
1605 return [t - 1]
1606 }),
1607 eq: it(function(n, t, i) {
1608 return [0 > i ? i + t : i]
1609 }),
1610 even: it(function(n, t) {
1611 for (var i = 0; t > i; i += 2)
1612 n.push(i);
1613 return n
1614 }),
1615 odd: it(function(n, t) {
1616 for (var i = 1; t > i; i += 2)
1617 n.push(i);
1618 return n
1619 }),
1620 lt: it(function(n, t, i) {
1621 for (var r = 0 > i ? i + t : i; --r >= 0; )
1622 n.push(r);
1623 return n
1624 }),
1625 gt: it(function(n, t, i) {
1626 for (var r = 0 > i ? i + t : i; ++r < t; )
1627 n.push(r);
1628 return n
1629 })
1630 }
1631 };
1632 t.pseudos.nth = t.pseudos.eq;
1633 for (rt in {
1634 radio: !0,
1635 checkbox: !0,
1636 file: !0,
1637 password: !0,
1638 image: !0
1639 })
1640 t.pseudos[rt] = cr(rt);
1641 for (rt in {
1642 submit: !0,
1643 reset: !0
1644 })
1645 t.pseudos[rt] = lr(rt);
1646 return bi.prototype = t.filters = t.pseudos,
1647 t.setFilters = new bi,
1648 ft = u.tokenize = function(n, i) {
1649 var e, f, s, o, r, h, c, l = ci[n + " "];
1650 if (l)
1651 return i ? 0 : l.slice(0);
1652 for (r = n,
1653 h = [],
1654 c = t.preFilter; r; ) {
1655 (!e || (f = ir.exec(r))) && (f && (r = r.slice(f[0].length) || r),
1656 h.push(s = []));
1657 e = !1;
1658 (f = rr.exec(r)) && (e = f.shift(),
1659 s.push({
1660 value: e,
1661 type: f[0].replace(at, " ")
1662 }),
1663 r = r.slice(e.length));
1664 for (o in t.filter)
1665 (f = vt[o].exec(r)) && (!c[o] || (f = c[o](f))) && (e = f.shift(),
1666 s.push({
1667 value: e,
1668 type: o,
1669 matches: f
1670 }),
1671 r = r.slice(e.length));
1672 if (!e)
1673 break
1674 }
1675 return i ? r.length : r ? u.error(n) : ci(n, h).slice(0)
1676 }
1677 ,
1678 wt = u.compile = function(n, t) {
1679 var r, u = [], f = [], i = lt[n + " "];
1680 if (!i) {
1681 for (t || (t = ft(n)),
1682 r = t.length; r--; )
1683 i = ei(t[r]),
1684 i[e] ? u.push(i) : f.push(i);
1685 i = lt(n, vr(f, u));
1686 i.selector = n
1687 }
1688 return i
1689 }
1690 ,
1691 si = u.select = function(n, i, r, u) {
1692 var s, e, o, a, v, l = "function" == typeof n && n, c = !u && ft(n = l.selector || n);
1693 if (r = r || [],
1694 1 === c.length) {
1695 if (e = c[0] = c[0].slice(0),
1696 e.length > 2 && "ID" === (o = e[0]).type && f.getById && 9 === i.nodeType && h && t.relative[e[1].type]) {
1697 if (i = (t.find.ID(o.matches[0].replace(y, p), i) || [])[0],
1698 !i)
1699 return r;
1700 l && (i = i.parentNode);
1701 n = n.slice(e.shift().value.length)
1702 }
1703 for (s = vt.needsContext.test(n) ? 0 : e.length; s--; ) {
1704 if (o = e[s],
1705 t.relative[a = o.type])
1706 break;
1707 if ((v = t.find[a]) && (u = v(o.matches[0].replace(y, p), gt.test(e[0].type) && ii(i.parentNode) || i))) {
1708 if (e.splice(s, 1),
1709 n = u.length && yt(e),
1710 !n)
1711 return k.apply(r, u),
1712 r;
1713 break
1714 }
1715 }
1716 }
1717 return (l || wt(n, c))(u, i, !h, r, !i || gt.test(n) && ii(i.parentNode) || i),
1718 r
1719 }
1720 ,
1721 f.sortStable = e.split("").sort(bt).join("") === e,
1722 f.detectDuplicates = !!ut,
1723 b(),
1724 f.sortDetached = a(function(n) {
1725 return 1 & n.compareDocumentPosition(i.createElement("div"))
1726 }),
1727 a(function(n) {
1728 return n.innerHTML = "<a href='#'><\/a>",
1729 "#" === n.firstChild.getAttribute("href")
1730 }) || ti("type|href|height|width", function(n, t, i) {
1731 if (!i)
1732 return n.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
1733 }),
1734 f.attributes && a(function(n) {
1735 return n.innerHTML = "<input/>",
1736 n.firstChild.setAttribute("value", ""),
1737 "" === n.firstChild.getAttribute("value")
1738 }) || ti("value", function(n, t, i) {
1739 if (!i && "input" === n.nodeName.toLowerCase())
1740 return n.defaultValue
1741 }),
1742 a(function(n) {
1743 return null == n.getAttribute("disabled")
1744 }) || ti(kt, function(n, t, i) {
1745 var r;
1746 if (!i)
1747 return n[t] === !0 ? t.toLowerCase() : (r = n.getAttributeNode(t)) && r.specified ? r.value : null
1748 }),
1749 u
1750 }(n);
1751 i.find = w;
1752 i.expr = w.selectors;
1753 i.expr[":"] = i.expr.pseudos;
1754 i.uniqueSort = i.unique = w.uniqueSort;
1755 i.text = w.getText;
1756 i.isXMLDoc = w.isXML;
1757 i.contains = w.contains;
1758 var it = function(n, t, r) {
1759 for (var u = [], f = void 0 !== r; (n = n[t]) && 9 !== n.nodeType; )
1760 if (1 === n.nodeType) {
1761 if (f && i(n).is(r))
1762 break;
1763 u.push(n)
1764 }
1765 return u
1766 }
1767 , lr = function(n, t) {
1768 for (var i = []; n; n = n.nextSibling)
1769 1 === n.nodeType && n !== t && i.push(n);
1770 return i
1771 }
1772 , ar = i.expr.match.needsContext
1773 , vr = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/
1774 , pe = /^.[^:#\[\.,]*$/;
1775 i.filter = function(n, t, r) {
1776 var u = t[0];
1777 return r && (n = ":not(" + n + ")"),
1778 1 === t.length && 1 === u.nodeType ? i.find.matchesSelector(u, n) ? [u] : [] : i.find.matches(n, i.grep(t, function(n) {
1779 return 1 === n.nodeType
1780 }))
1781 }
1782 ;
1783 i.fn.extend({
1784 find: function(n) {
1785 var t, r = [], u = this, f = u.length;
1786 if ("string" != typeof n)
1787 return this.pushStack(i(n).filter(function() {
1788 for (t = 0; f > t; t++)
1789 if (i.contains(u[t], this))
1790 return !0
1791 }));
1792 for (t = 0; f > t; t++)
1793 i.find(n, u[t], r);
1794 return r = this.pushStack(f > 1 ? i.unique(r) : r),
1795 r.selector = this.selector ? this.selector + " " + n : n,
1796 r
1797 },
1798 filter: function(n) {
1799 return this.pushStack(ri(this, n || [], !1))
1800 },
1801 not: function(n) {
1802 return this.pushStack(ri(this, n || [], !0))
1803 },
1804 is: function(n) {
1805 return !!ri(this, "string" == typeof n && ar.test(n) ? i(n) : n || [], !1).length
1806 }
1807 });
1808 yr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;
1809 pr = i.fn.init = function(n, t, r) {
1810 var f, e;
1811 if (!n)
1812 return this;
1813 if (r = r || ui,
1814 "string" == typeof n) {
1815 if (f = "<" === n.charAt(0) && ">" === n.charAt(n.length - 1) && n.length >= 3 ? [null, n, null] : yr.exec(n),
1816 !f || !f[1] && t)
1817 return !t || t.jquery ? (t || r).find(n) : this.constructor(t).find(n);
1818 if (f[1]) {
1819 if (t = t instanceof i ? t[0] : t,
1820 i.merge(this, i.parseHTML(f[1], t && t.nodeType ? t.ownerDocument || t : u, !0)),
1821 vr.test(f[1]) && i.isPlainObject(t))
1822 for (f in t)
1823 i.isFunction(this[f]) ? this[f](t[f]) : this.attr(f, t[f]);
1824 return this
1825 }
1826 if (e = u.getElementById(f[2]),
1827 e && e.parentNode) {
1828 if (e.id !== f[2])
1829 return ui.find(n);
1830 this.length = 1;
1831 this[0] = e
1832 }
1833 return this.context = u,
1834 this.selector = n,
1835 this
1836 }
1837 return n.nodeType ? (this.context = this[0] = n,
1838 this.length = 1,
1839 this) : i.isFunction(n) ? "undefined" != typeof r.ready ? r.ready(n) : n(i) : (void 0 !== n.selector && (this.selector = n.selector,
1840 this.context = n.context),
1841 i.makeArray(n, this))
1842 }
1843 ;
1844 pr.prototype = i.fn;
1845 ui = i(u);
1846 wr = /^(?:parents|prev(?:Until|All))/;
1847 br = {
1848 children: !0,
1849 contents: !0,
1850 next: !0,
1851 prev: !0
1852 };
1853 i.fn.extend({
1854 has: function(n) {
1855 var t, r = i(n, this), u = r.length;
1856 return this.filter(function() {
1857 for (t = 0; u > t; t++)
1858 if (i.contains(this, r[t]))
1859 return !0
1860 })
1861 },
1862 closest: function(n, t) {
1863 for (var r, f = 0, o = this.length, u = [], e = ar.test(n) || "string" != typeof n ? i(n, t || this.context) : 0; o > f; f++)
1864 for (r = this[f]; r && r !== t; r = r.parentNode)
1865 if (r.nodeType < 11 && (e ? e.index(r) > -1 : 1 === r.nodeType && i.find.matchesSelector(r, n))) {
1866 u.push(r);
1867 break
1868 }
1869 return this.pushStack(u.length > 1 ? i.uniqueSort(u) : u)
1870 },
1871 index: function(n) {
1872 return n ? "string" == typeof n ? i.inArray(this[0], i(n)) : i.inArray(n.jquery ? n[0] : n, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
1873 },
1874 add: function(n, t) {
1875 return this.pushStack(i.uniqueSort(i.merge(this.get(), i(n, t))))
1876 },
1877 addBack: function(n) {
1878 return this.add(null == n ? this.prevObject : this.prevObject.filter(n))
1879 }
1880 });
1881 i.each({
1882 parent: function(n) {
1883 var t = n.parentNode;
1884 return t && 11 !== t.nodeType ? t : null
1885 },
1886 parents: function(n) {
1887 return it(n, "parentNode")
1888 },
1889 parentsUntil: function(n, t, i) {
1890 return it(n, "parentNode", i)
1891 },
1892 next: function(n) {
1893 return kr(n, "nextSibling")
1894 },
1895 prev: function(n) {
1896 return kr(n, "previousSibling")
1897 },
1898 nextAll: function(n) {
1899 return it(n, "nextSibling")
1900 },
1901 prevAll: function(n) {
1902 return it(n, "previousSibling")
1903 },
1904 nextUntil: function(n, t, i) {
1905 return it(n, "nextSibling", i)
1906 },
1907 prevUntil: function(n, t, i) {
1908 return it(n, "previousSibling", i)
1909 },
1910 siblings: function(n) {
1911 return lr((n.parentNode || {}).firstChild, n)
1912 },
1913 children: function(n) {
1914 return lr(n.firstChild)
1915 },
1916 contents: function(n) {
1917 return i.nodeName(n, "iframe") ? n.contentDocument || n.contentWindow.document : i.merge([], n.childNodes)
1918 }
1919 }, function(n, t) {
1920 i.fn[n] = function(r, u) {
1921 var f = i.map(this, t, r);
1922 return "Until" !== n.slice(-5) && (u = r),
1923 u && "string" == typeof u && (f = i.filter(u, f)),
1924 this.length > 1 && (br[n] || (f = i.uniqueSort(f)),
1925 wr.test(n) && (f = f.reverse())),
1926 this.pushStack(f)
1927 }
1928 });
1929 s = /\S+/g;
1930 i.Callbacks = function(n) {
1931 n = "string" == typeof n ? we(n) : i.extend({}, n);
1932 var e, r, h, f, t = [], o = [], u = -1, c = function() {
1933 for (f = n.once,
1934 h = e = !0; o.length; u = -1)
1935 for (r = o.shift(); ++u < t.length; )
1936 t[u].apply(r[0], r[1]) === !1 && n.stopOnFalse && (u = t.length,
1937 r = !1);
1938 n.memory || (r = !1);
1939 e = !1;
1940 f && (t = r ? [] : "")
1941 }, s = {
1942 add: function() {
1943 return t && (r && !e && (u = t.length - 1,
1944 o.push(r)),
1945 function f(r) {
1946 i.each(r, function(r, u) {
1947 i.isFunction(u) ? n.unique && s.has(u) || t.push(u) : u && u.length && "string" !== i.type(u) && f(u)
1948 })
1949 }(arguments),
1950 r && !e && c()),
1951 this
1952 },
1953 remove: function() {
1954 return i.each(arguments, function(n, r) {
1955 for (var f; (f = i.inArray(r, t, f)) > -1; )
1956 t.splice(f, 1),
1957 u >= f && u--
1958 }),
1959 this
1960 },
1961 has: function(n) {
1962 return n ? i.inArray(n, t) > -1 : t.length > 0
1963 },
1964 empty: function() {
1965 return t && (t = []),
1966 this
1967 },
1968 disable: function() {
1969 return f = o = [],
1970 t = r = "",
1971 this
1972 },
1973 disabled: function() {
1974 return !t
1975 },
1976 lock: function() {
1977 return f = !0,
1978 r || s.disable(),
1979 this
1980 },
1981 locked: function() {
1982 return !!f
1983 },
1984 fireWith: function(n, t) {
1985 return f || (t = t || [],
1986 t = [n, t.slice ? t.slice() : t],
1987 o.push(t),
1988 e || c()),
1989 this
1990 },
1991 fire: function() {
1992 return s.fireWith(this, arguments),
1993 this
1994 },
1995 fired: function() {
1996 return !!h
1997 }
1998 };
1999 return s
2000 }
2001 ;
2002 i.extend({
2003 Deferred: function(n) {
2004 var u = [["resolve", "done", i.Callbacks("once memory"), "resolved"], ["reject", "fail", i.Callbacks("once memory"), "rejected"], ["notify", "progress", i.Callbacks("memory")]]
2005 , f = "pending"
2006 , r = {
2007 state: function() {
2008 return f
2009 },
2010 always: function() {
2011 return t.done(arguments).fail(arguments),
2012 this
2013 },
2014 then: function() {
2015 var n = arguments;
2016 return i.Deferred(function(f) {
2017 i.each(u, function(u, e) {
2018 var o = i.isFunction(n[u]) && n[u];
2019 t[e[1]](function() {
2020 var n = o && o.apply(this, arguments);
2021 n && i.isFunction(n.promise) ? n.promise().progress(f.notify).done(f.resolve).fail(f.reject) : f[e[0] + "With"](this === r ? f.promise() : this, o ? [n] : arguments)
2022 })
2023 });
2024 n = null
2025 }).promise()
2026 },
2027 promise: function(n) {
2028 return null != n ? i.extend(n, r) : r
2029 }
2030 }
2031 , t = {};
2032 return r.pipe = r.then,
2033 i.each(u, function(n, i) {
2034 var e = i[2]
2035 , o = i[3];
2036 r[i[1]] = e.add;
2037 o && e.add(function() {
2038 f = o
2039 }, u[1 ^ n][2].disable, u[2][2].lock);
2040 t[i[0]] = function() {
2041 return t[i[0] + "With"](this === t ? r : this, arguments),
2042 this
2043 }
2044 ;
2045 t[i[0] + "With"] = e.fireWith
2046 }),
2047 r.promise(t),
2048 n && n.call(t, t),
2049 t
2050 },
2051 when: function(n) {
2052 var t = 0, u = a.call(arguments), r = u.length, e = 1 !== r || n && i.isFunction(n.promise) ? r : 0, f = 1 === e ? n : i.Deferred(), h = function(n, t, i) {
2053 return function(r) {
2054 t[n] = this;
2055 i[n] = arguments.length > 1 ? a.call(arguments) : r;
2056 i === o ? f.notifyWith(t, i) : --e || f.resolveWith(t, i)
2057 }
2058 }, o, c, s;
2059 if (r > 1)
2060 for (o = new Array(r),
2061 c = new Array(r),
2062 s = new Array(r); r > t; t++)
2063 u[t] && i.isFunction(u[t].promise) ? u[t].promise().progress(h(t, c, o)).done(h(t, s, u)).fail(f.reject) : --e;
2064 return e || f.resolveWith(s, u),
2065 f.promise()
2066 }
2067 });
2068 i.fn.ready = function(n) {
2069 return i.ready.promise().done(n),
2070 this
2071 }
2072 ;
2073 i.extend({
2074 isReady: !1,
2075 readyWait: 1,
2076 holdReady: function(n) {
2077 n ? i.readyWait++ : i.ready(!0)
2078 },
2079 ready: function(n) {
2080 (n === !0 ? --i.readyWait : i.isReady) || (i.isReady = !0,
2081 n !== !0 && --i.readyWait > 0 || (at.resolveWith(u, [i]),
2082 i.fn.triggerHandler && (i(u).triggerHandler("ready"),
2083 i(u).off("ready"))))
2084 }
2085 });
2086 i.ready.promise = function(t) {
2087 if (!at)
2088 if (at = i.Deferred(),
2089 "complete" !== u.readyState && ("loading" === u.readyState || u.documentElement.doScroll))
2090 if (u.addEventListener)
2091 u.addEventListener("DOMContentLoaded", v),
2092 n.addEventListener("load", v);
2093 else {
2094 u.attachEvent("onreadystatechange", v);
2095 n.attachEvent("onload", v);
2096 var r = !1;
2097 try {
2098 r = null == n.frameElement && u.documentElement
2099 } catch (e) {}
2100 r && r.doScroll && !function f() {
2101 if (!i.isReady) {
2102 try {
2103 r.doScroll("left")
2104 } catch (t) {
2105 return n.setTimeout(f, 50)
2106 }
2107 dr();
2108 i.ready()
2109 }
2110 }()
2111 }
2112 else
2113 n.setTimeout(i.ready);
2114 return at.promise(t)
2115 }
2116 ;
2117 i.ready.promise();
2118 for (gr in i(r))
2119 break;
2120 r.ownFirst = "0" === gr;
2121 r.inlineBlockNeedsLayout = !1;
2122 i(function() {
2123 var f, t, n, i;
2124 n = u.getElementsByTagName("body")[0];
2125 n && n.style && (t = u.createElement("div"),
2126 i = u.createElement("div"),
2127 i.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px",
2128 n.appendChild(i).appendChild(t),
2129 "undefined" != typeof t.style.zoom && (t.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",
2130 r.inlineBlockNeedsLayout = f = 3 === t.offsetWidth,
2131 f && (n.style.zoom = 1)),
2132 n.removeChild(i))
2133 }),
2134 function() {
2135 var n = u.createElement("div");
2136 r.deleteExpando = !0;
2137 try {
2138 delete n.test
2139 } catch (t) {
2140 r.deleteExpando = !1
2141 }
2142 n = null
2143 }();
2144 var ot = function(n) {
2145 var t = i.noData[(n.nodeName + " ").toLowerCase()]
2146 , r = +n.nodeType || 1;
2147 return 1 !== r && 9 !== r ? !1 : !t || t !== !0 && n.getAttribute("classid") === t
2148 }
2149 , be = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/
2150 , ke = /([A-Z])/g;
2151 i.extend({
2152 cache: {},
2153 noData: {
2154 "applet ": !0,
2155 "embed ": !0,
2156 "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
2157 },
2158 hasData: function(n) {
2159 return n = n.nodeType ? i.cache[n[i.expando]] : n[i.expando],
2160 !!n && !fi(n)
2161 },
2162 data: function(n, t, i) {
2163 return tu(n, t, i)
2164 },
2165 removeData: function(n, t) {
2166 return iu(n, t)
2167 },
2168 _data: function(n, t, i) {
2169 return tu(n, t, i, !0)
2170 },
2171 _removeData: function(n, t) {
2172 return iu(n, t, !0)
2173 }
2174 });
2175 i.fn.extend({
2176 data: function(n, t) {
2177 var f, u, e, r = this[0], o = r && r.attributes;
2178 if (void 0 === n) {
2179 if (this.length && (e = i.data(r),
2180 1 === r.nodeType && !i._data(r, "parsedAttrs"))) {
2181 for (f = o.length; f--; )
2182 o[f] && (u = o[f].name,
2183 0 === u.indexOf("data-") && (u = i.camelCase(u.slice(5)),
2184 nu(r, u, e[u])));
2185 i._data(r, "parsedAttrs", !0)
2186 }
2187 return e
2188 }
2189 return "object" == typeof n ? this.each(function() {
2190 i.data(this, n)
2191 }) : arguments.length > 1 ? this.each(function() {
2192 i.data(this, n, t)
2193 }) : r ? nu(r, n, i.data(r, n)) : void 0
2194 },
2195 removeData: function(n) {
2196 return this.each(function() {
2197 i.removeData(this, n)
2198 })
2199 }
2200 });
2201 i.extend({
2202 queue: function(n, t, r) {
2203 var u;
2204 if (n)
2205 return (t = (t || "fx") + "queue",
2206 u = i._data(n, t),
2207 r && (!u || i.isArray(r) ? u = i._data(n, t, i.makeArray(r)) : u.push(r)),
2208 u || [])
2209 },
2210 dequeue: function(n, t) {
2211 t = t || "fx";
2212 var r = i.queue(n, t)
2213 , e = r.length
2214 , u = r.shift()
2215 , f = i._queueHooks(n, t)
2216 , o = function() {
2217 i.dequeue(n, t)
2218 };
2219 "inprogress" === u && (u = r.shift(),
2220 e--);
2221 u && ("fx" === t && r.unshift("inprogress"),
2222 delete f.stop,
2223 u.call(n, o, f));
2224 !e && f && f.empty.fire()
2225 },
2226 _queueHooks: function(n, t) {
2227 var r = t + "queueHooks";
2228 return i._data(n, r) || i._data(n, r, {
2229 empty: i.Callbacks("once memory").add(function() {
2230 i._removeData(n, t + "queue");
2231 i._removeData(n, r)
2232 })
2233 })
2234 }
2235 });
2236 i.fn.extend({
2237 queue: function(n, t) {
2238 var r = 2;
2239 return "string" != typeof n && (t = n,
2240 n = "fx",
2241 r--),
2242 arguments.length < r ? i.queue(this[0], n) : void 0 === t ? this : this.each(function() {
2243 var r = i.queue(this, n, t);
2244 i._queueHooks(this, n);
2245 "fx" === n && "inprogress" !== r[0] && i.dequeue(this, n)
2246 })
2247 },
2248 dequeue: function(n) {
2249 return this.each(function() {
2250 i.dequeue(this, n)
2251 })
2252 },
2253 clearQueue: function(n) {
2254 return this.queue(n || "fx", [])
2255 },
2256 promise: function(n, t) {
2257 var r, f = 1, e = i.Deferred(), u = this, o = this.length, s = function() {
2258 --f || e.resolveWith(u, [u])
2259 };
2260 for ("string" != typeof n && (t = n,
2261 n = void 0),
2262 n = n || "fx"; o--; )
2263 r = i._data(u[o], n + "queueHooks"),
2264 r && r.empty && (f++,
2265 r.empty.add(s));
2266 return s(),
2267 e.promise(t)
2268 }
2269 }),
2270 function() {
2271 var n;
2272 r.shrinkWrapBlocks = function() {
2273 if (null != n)
2274 return n;
2275 n = !1;
2276 var t, i, r;
2277 return i = u.getElementsByTagName("body")[0],
2278 i && i.style ? (t = u.createElement("div"),
2279 r = u.createElement("div"),
2280 r.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px",
2281 i.appendChild(r).appendChild(t),
2282 "undefined" != typeof t.style.zoom && (t.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",
2283 t.appendChild(u.createElement("div")).style.width = "5px",
2284 n = 3 !== t.offsetWidth),
2285 i.removeChild(r),
2286 n) : void 0
2287 }
2288 }();
2289 var ei = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source
2290 , oi = new RegExp("^(?:([+-])=|)(" + ei + ")([a-z%]*)$","i")
2291 , b = ["Top", "Right", "Bottom", "Left"]
2292 , st = function(n, t) {
2293 return n = t || n,
2294 "block" === i.css(n, "display") || !i.contains(n.ownerDocument, n)
2295 };
2296 var y = function(n, t, r, u, f, e, o) {
2297 var s = 0
2298 , c = n.length
2299 , h = null == r;
2300 if ("object" === i.type(r)) {
2301 f = !0;
2302 for (s in r)
2303 y(n, t, s, r[s], !0, e, o)
2304 } else if (void 0 !== u && (f = !0,
2305 i.isFunction(u) || (o = !0),
2306 h && (o ? (t.call(n, u),
2307 t = null) : (h = t,
2308 t = function(n, t, r) {
2309 return h.call(i(n), r)
2310 }
2311 )),
2312 t))
2313 for (; c > s; s++)
2314 t(n[s], r, o ? u : u.call(n[s], s, t(n[s], r)));
2315 return f ? n : h ? t.call(n) : c ? t(n[0], r) : e
2316 }
2317 , si = /^(?:checkbox|radio)$/i
2318 , uu = /<([\w:-]+)/
2319 , fu = /^$|\/(?:java|ecma)script/i
2320 , hi = /^\s+/
2321 , eu = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";
2322 !function() {
2323 var n = u.createElement("div")
2324 , f = u.createDocumentFragment()
2325 , t = u.createElement("input");
2326 n.innerHTML = " <link/><table><\/table><a href='/a'>a<\/a><input type='checkbox'/>";
2327 r.leadingWhitespace = 3 === n.firstChild.nodeType;
2328 r.tbody = !n.getElementsByTagName("tbody").length;
2329 r.htmlSerialize = !!n.getElementsByTagName("link").length;
2330 r.html5Clone = "<:nav><\/:nav>" !== u.createElement("nav").cloneNode(!0).outerHTML;
2331 t.type = "checkbox";
2332 t.checked = !0;
2333 f.appendChild(t);
2334 r.appendChecked = t.checked;
2335 n.innerHTML = "<textarea>x<\/textarea>";
2336 r.noCloneChecked = !!n.cloneNode(!0).lastChild.defaultValue;
2337 f.appendChild(n);
2338 t = u.createElement("input");
2339 t.setAttribute("type", "radio");
2340 t.setAttribute("checked", "checked");
2341 t.setAttribute("name", "t");
2342 n.appendChild(t);
2343 r.checkClone = n.cloneNode(!0).cloneNode(!0).lastChild.checked;
2344 r.noCloneEvent = !!n.addEventListener;
2345 n[i.expando] = 1;
2346 r.attributes = !n.getAttribute(i.expando)
2347 }();
2348 o = {
2349 option: [1, "<select multiple='multiple'>", "<\/select>"],
2350 legend: [1, "<fieldset>", "<\/fieldset>"],
2351 area: [1, "<map>", "<\/map>"],
2352 param: [1, "<object>", "<\/object>"],
2353 thead: [1, "<table>", "<\/table>"],
2354 tr: [2, "<table><tbody>", "<\/tbody><\/table>"],
2355 col: [2, "<table><tbody><\/tbody><colgroup>", "<\/colgroup><\/table>"],
2356 td: [3, "<table><tbody><tr>", "<\/tr><\/tbody><\/table>"],
2357 _default: r.htmlSerialize ? [0, "", ""] : [1, "X<div>", "<\/div>"]
2358 };
2359 o.optgroup = o.option;
2360 o.tbody = o.tfoot = o.colgroup = o.caption = o.thead;
2361 o.th = o.td;
2362 su = /<|&#?\w+;/;
2363 li = /<tbody/i;
2364 !function() {
2365 var t, i, f = u.createElement("div");
2366 for (t in {
2367 submit: !0,
2368 change: !0,
2369 focusin: !0
2370 })
2371 i = "on" + t,
2372 (r[t] = i in n) || (f.setAttribute(i, "t"),
2373 r[t] = f.attributes[i].expando === !1);
2374 f = null
2375 }();
2376 var ai = /^(?:input|select|textarea)$/i
2377 , ge = /^key/
2378 , no = /^(?:mouse|pointer|contextmenu|drag|drop)|click/
2379 , cu = /^(?:focusinfocus|focusoutblur)$/
2380 , lu = /^([^.]*)(?:\.(.+)|)/;
2381 i.event = {
2382 global: {},
2383 add: function(n, t, r, u, f) {
2384 var p, v, w, y, o, h, c, l, e, b, k, a = i._data(n);
2385 if (a) {
2386 for (r.handler && (y = r,
2387 r = y.handler,
2388 f = y.selector),
2389 r.guid || (r.guid = i.guid++),
2390 (v = a.events) || (v = a.events = {}),
2391 (h = a.handle) || (h = a.handle = function(n) {
2392 if ("undefined" != typeof i && (!n || i.event.triggered !== n.type))
2393 return i.event.dispatch.apply(h.elem, arguments)
2394 }
2395 ,
2396 h.elem = n),
2397 t = (t || "").match(s) || [""],
2398 w = t.length; w--; )
2399 p = lu.exec(t[w]) || [],
2400 e = k = p[1],
2401 b = (p[2] || "").split(".").sort(),
2402 e && (o = i.event.special[e] || {},
2403 e = (f ? o.delegateType : o.bindType) || e,
2404 o = i.event.special[e] || {},
2405 c = i.extend({
2406 type: e,
2407 origType: k,
2408 data: u,
2409 handler: r,
2410 guid: r.guid,
2411 selector: f,
2412 needsContext: f && i.expr.match.needsContext.test(f),
2413 namespace: b.join(".")
2414 }, y),
2415 (l = v[e]) || (l = v[e] = [],
2416 l.delegateCount = 0,
2417 o.setup && o.setup.call(n, u, b, h) !== !1 || (n.addEventListener ? n.addEventListener(e, h, !1) : n.attachEvent && n.attachEvent("on" + e, h))),
2418 o.add && (o.add.call(n, c),
2419 c.handler.guid || (c.handler.guid = r.guid)),
2420 f ? l.splice(l.delegateCount++, 0, c) : l.push(c),
2421 i.event.global[e] = !0);
2422 n = null
2423 }
2424 },
2425 remove: function(n, t, r, u, f) {
2426 var y, o, h, b, p, a, c, l, e, w, k, v = i.hasData(n) && i._data(n);
2427 if (v && (a = v.events)) {
2428 for (t = (t || "").match(s) || [""],
2429 p = t.length; p--; )
2430 if (h = lu.exec(t[p]) || [],
2431 e = k = h[1],
2432 w = (h[2] || "").split(".").sort(),
2433 e) {
2434 for (c = i.event.special[e] || {},
2435 e = (u ? c.delegateType : c.bindType) || e,
2436 l = a[e] || [],
2437 h = h[2] && new RegExp("(^|\\.)" + w.join("\\.(?:.*\\.|)") + "(\\.|$)"),
2438 b = y = l.length; y--; )
2439 o = l[y],
2440 !f && k !== o.origType || r && r.guid !== o.guid || h && !h.test(o.namespace) || u && u !== o.selector && ("**" !== u || !o.selector) || (l.splice(y, 1),
2441 o.selector && l.delegateCount--,
2442 c.remove && c.remove.call(n, o));
2443 b && !l.length && (c.teardown && c.teardown.call(n, w, v.handle) !== !1 || i.removeEvent(n, e, v.handle),
2444 delete a[e])
2445 } else
2446 for (e in a)
2447 i.event.remove(n, e + t[p], r, u, !0);
2448 i.isEmptyObject(a) && (delete v.handle,
2449 i._removeData(n, "events"))
2450 }
2451 },
2452 trigger: function(t, r, f, e) {
2453 var l, a, o, p, c, h, w, y = [f || u], s = tt.call(t, "type") ? t.type : t, v = tt.call(t, "namespace") ? t.namespace.split(".") : [];
2454 if (o = h = f = f || u,
2455 3 !== f.nodeType && 8 !== f.nodeType && !cu.test(s + i.event.triggered) && (s.indexOf(".") > -1 && (v = s.split("."),
2456 s = v.shift(),
2457 v.sort()),
2458 a = s.indexOf(":") < 0 && "on" + s,
2459 t = t[i.expando] ? t : new i.Event(s,"object" == typeof t && t),
2460 t.isTrigger = e ? 2 : 3,
2461 t.namespace = v.join("."),
2462 t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
2463 t.result = void 0,
2464 t.target || (t.target = f),
2465 r = null == r ? [t] : i.makeArray(r, [t]),
2466 c = i.event.special[s] || {},
2467 e || !c.trigger || c.trigger.apply(f, r) !== !1)) {
2468 if (!e && !c.noBubble && !i.isWindow(f)) {
2469 for (p = c.delegateType || s,
2470 cu.test(p + s) || (o = o.parentNode); o; o = o.parentNode)
2471 y.push(o),
2472 h = o;
2473 h === (f.ownerDocument || u) && y.push(h.defaultView || h.parentWindow || n)
2474 }
2475 for (w = 0; (o = y[w++]) && !t.isPropagationStopped(); )
2476 t.type = w > 1 ? p : c.bindType || s,
2477 l = (i._data(o, "events") || {})[t.type] && i._data(o, "handle"),
2478 l && l.apply(o, r),
2479 l = a && o[a],
2480 l && l.apply && ot(o) && (t.result = l.apply(o, r),
2481 t.result === !1 && t.preventDefault());
2482 if (t.type = s,
2483 !e && !t.isDefaultPrevented() && (!c._default || c._default.apply(y.pop(), r) === !1) && ot(f) && a && f[s] && !i.isWindow(f)) {
2484 h = f[a];
2485 h && (f[a] = null);
2486 i.event.triggered = s;
2487 try {
2488 f[s]()
2489 } catch (b) {}
2490 i.event.triggered = void 0;
2491 h && (f[a] = h)
2492 }
2493 return t.result
2494 }
2495 },
2496 dispatch: function(n) {
2497 n = i.event.fix(n);
2498 var e, o, f, r, t, s = [], h = a.call(arguments), c = (i._data(this, "events") || {})[n.type] || [], u = i.event.special[n.type] || {};
2499 if (h[0] = n,
2500 n.delegateTarget = this,
2501 !u.preDispatch || u.preDispatch.call(this, n) !== !1) {
2502 for (s = i.event.handlers.call(this, n, c),
2503 e = 0; (r = s[e++]) && !n.isPropagationStopped(); )
2504 for (n.currentTarget = r.elem,
2505 o = 0; (t = r.handlers[o++]) && !n.isImmediatePropagationStopped(); )
2506 n.rnamespace && !n.rnamespace.test(t.namespace) || (n.handleObj = t,
2507 n.data = t.data,
2508 f = ((i.event.special[t.origType] || {}).handle || t.handler).apply(r.elem, h),
2509 void 0 !== f && (n.result = f) === !1 && (n.preventDefault(),
2510 n.stopPropagation()));
2511 return u.postDispatch && u.postDispatch.call(this, n),
2512 n.result
2513 }
2514 },
2515 handlers: function(n, t) {
2516 var e, u, f, o, h = [], s = t.delegateCount, r = n.target;
2517 if (s && r.nodeType && ("click" !== n.type || isNaN(n.button) || n.button < 1))
2518 for (; r != this; r = r.parentNode || this)
2519 if (1 === r.nodeType && (r.disabled !== !0 || "click" !== n.type)) {
2520 for (u = [],
2521 e = 0; s > e; e++)
2522 o = t[e],
2523 f = o.selector + " ",
2524 void 0 === u[f] && (u[f] = o.needsContext ? i(f, this).index(r) > -1 : i.find(f, this, null, [r]).length),
2525 u[f] && u.push(o);
2526 u.length && h.push({
2527 elem: r,
2528 handlers: u
2529 })
2530 }
2531 return s < t.length && h.push({
2532 elem: this,
2533 handlers: t.slice(s)
2534 }),
2535 h
2536 },
2537 fix: function(n) {
2538 if (n[i.expando])
2539 return n;
2540 var e, o, s, r = n.type, f = n, t = this.fixHooks[r];
2541 for (t || (this.fixHooks[r] = t = no.test(r) ? this.mouseHooks : ge.test(r) ? this.keyHooks : {}),
2542 s = t.props ? this.props.concat(t.props) : this.props,
2543 n = new i.Event(f),
2544 e = s.length; e--; )
2545 o = s[e],
2546 n[o] = f[o];
2547 return n.target || (n.target = f.srcElement || u),
2548 3 === n.target.nodeType && (n.target = n.target.parentNode),
2549 n.metaKey = !!n.metaKey,
2550 t.filter ? t.filter(n, f) : n
2551 },
2552 props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
2553 fixHooks: {},
2554 keyHooks: {
2555 props: "char charCode key keyCode".split(" "),
2556 filter: function(n, t) {
2557 return null == n.which && (n.which = null != t.charCode ? t.charCode : t.keyCode),
2558 n
2559 }
2560 },
2561 mouseHooks: {
2562 props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
2563 filter: function(n, t) {
2564 var i, e, r, f = t.button, o = t.fromElement;
2565 return null == n.pageX && null != t.clientX && (e = n.target.ownerDocument || u,
2566 r = e.documentElement,
2567 i = e.body,
2568 n.pageX = t.clientX + (r && r.scrollLeft || i && i.scrollLeft || 0) - (r && r.clientLeft || i && i.clientLeft || 0),
2569 n.pageY = t.clientY + (r && r.scrollTop || i && i.scrollTop || 0) - (r && r.clientTop || i && i.clientTop || 0)),
2570 !n.relatedTarget && o && (n.relatedTarget = o === n.target ? t.toElement : o),
2571 n.which || void 0 === f || (n.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0),
2572 n
2573 }
2574 },
2575 special: {
2576 load: {
2577 noBubble: !0
2578 },
2579 focus: {
2580 trigger: function() {
2581 if (this !== au() && this.focus)
2582 try {
2583 return this.focus(),
2584 !1
2585 } catch (n) {}
2586 },
2587 delegateType: "focusin"
2588 },
2589 blur: {
2590 trigger: function() {
2591 if (this === au() && this.blur)
2592 return (this.blur(),
2593 !1)
2594 },
2595 delegateType: "focusout"
2596 },
2597 click: {
2598 trigger: function() {
2599 if (i.nodeName(this, "input") && "checkbox" === this.type && this.click)
2600 return (this.click(),
2601 !1)
2602 },
2603 _default: function(n) {
2604 return i.nodeName(n.target, "a")
2605 }
2606 },
2607 beforeunload: {
2608 postDispatch: function(n) {
2609 void 0 !== n.result && n.originalEvent && (n.originalEvent.returnValue = n.result)
2610 }
2611 }
2612 },
2613 simulate: function(n, t, r) {
2614 var u = i.extend(new i.Event, r, {
2615 type: n,
2616 isSimulated: !0
2617 });
2618 i.event.trigger(u, null, t);
2619 u.isDefaultPrevented() && r.preventDefault()
2620 }
2621 };
2622 i.removeEvent = u.removeEventListener ? function(n, t, i) {
2623 n.removeEventListener && n.removeEventListener(t, i)
2624 }
2625 : function(n, t, i) {
2626 var r = "on" + t;
2627 n.detachEvent && ("undefined" == typeof n[r] && (n[r] = null),
2628 n.detachEvent(r, i))
2629 }
2630 ;
2631 i.Event = function(n, t) {
2632 return this instanceof i.Event ? (n && n.type ? (this.originalEvent = n,
2633 this.type = n.type,
2634 this.isDefaultPrevented = n.defaultPrevented || void 0 === n.defaultPrevented && n.returnValue === !1 ? vt : rt) : this.type = n,
2635 t && i.extend(this, t),
2636 this.timeStamp = n && n.timeStamp || i.now(),
2637 void (this[i.expando] = !0)) : new i.Event(n,t)
2638 }
2639 ;
2640 i.Event.prototype = {
2641 constructor: i.Event,
2642 isDefaultPrevented: rt,
2643 isPropagationStopped: rt,
2644 isImmediatePropagationStopped: rt,
2645 preventDefault: function() {
2646 var n = this.originalEvent;
2647 this.isDefaultPrevented = vt;
2648 n && (n.preventDefault ? n.preventDefault() : n.returnValue = !1)
2649 },
2650 stopPropagation: function() {
2651 var n = this.originalEvent;
2652 this.isPropagationStopped = vt;
2653 n && !this.isSimulated && (n.stopPropagation && n.stopPropagation(),
2654 n.cancelBubble = !0)
2655 },
2656 stopImmediatePropagation: function() {
2657 var n = this.originalEvent;
2658 this.isImmediatePropagationStopped = vt;
2659 n && n.stopImmediatePropagation && n.stopImmediatePropagation();
2660 this.stopPropagation()
2661 }
2662 };
2663 i.each({
2664 mouseenter: "mouseover",
2665 mouseleave: "mouseout",
2666 pointerenter: "pointerover",
2667 pointerleave: "pointerout"
2668 }, function(n, t) {
2669 i.event.special[n] = {
2670 delegateType: t,
2671 bindType: t,
2672 handle: function(n) {
2673 var u, f = this, r = n.relatedTarget, e = n.handleObj;
2674 return r && (r === f || i.contains(f, r)) || (n.type = e.origType,
2675 u = e.handler.apply(this, arguments),
2676 n.type = t),
2677 u
2678 }
2679 }
2680 });
2681 r.submit || (i.event.special.submit = {
2682 setup: function() {
2683 return i.nodeName(this, "form") ? !1 : void i.event.add(this, "click._submit keypress._submit", function(n) {
2684 var r = n.target
2685 , t = i.nodeName(r, "input") || i.nodeName(r, "button") ? i.prop(r, "form") : void 0;
2686 t && !i._data(t, "submit") && (i.event.add(t, "submit._submit", function(n) {
2687 n._submitBubble = !0
2688 }),
2689 i._data(t, "submit", !0))
2690 })
2691 },
2692 postDispatch: function(n) {
2693 n._submitBubble && (delete n._submitBubble,
2694 this.parentNode && !n.isTrigger && i.event.simulate("submit", this.parentNode, n))
2695 },
2696 teardown: function() {
2697 return i.nodeName(this, "form") ? !1 : void i.event.remove(this, "._submit")
2698 }
2699 });
2700 r.change || (i.event.special.change = {
2701 setup: function() {
2702 return ai.test(this.nodeName) ? ("checkbox" !== this.type && "radio" !== this.type || (i.event.add(this, "propertychange._change", function(n) {
2703 "checked" === n.originalEvent.propertyName && (this._justChanged = !0)
2704 }),
2705 i.event.add(this, "click._change", function(n) {
2706 this._justChanged && !n.isTrigger && (this._justChanged = !1);
2707 i.event.simulate("change", this, n)
2708 })),
2709 !1) : void i.event.add(this, "beforeactivate._change", function(n) {
2710 var t = n.target;
2711 ai.test(t.nodeName) && !i._data(t, "change") && (i.event.add(t, "change._change", function(n) {
2712 !this.parentNode || n.isSimulated || n.isTrigger || i.event.simulate("change", this.parentNode, n)
2713 }),
2714 i._data(t, "change", !0))
2715 })
2716 },
2717 handle: function(n) {
2718 var t = n.target;
2719 if (this !== t || n.isSimulated || n.isTrigger || "radio" !== t.type && "checkbox" !== t.type)
2720 return n.handleObj.handler.apply(this, arguments)
2721 },
2722 teardown: function() {
2723 return i.event.remove(this, "._change"),
2724 !ai.test(this.nodeName)
2725 }
2726 });
2727 r.focusin || i.each({
2728 focus: "focusin",
2729 blur: "focusout"
2730 }, function(n, t) {
2731 var r = function(n) {
2732 i.event.simulate(t, n.target, i.event.fix(n))
2733 };
2734 i.event.special[t] = {
2735 setup: function() {
2736 var u = this.ownerDocument || this
2737 , f = i._data(u, t);
2738 f || u.addEventListener(n, r, !0);
2739 i._data(u, t, (f || 0) + 1)
2740 },
2741 teardown: function() {
2742 var u = this.ownerDocument || this
2743 , f = i._data(u, t) - 1;
2744 f ? i._data(u, t, f) : (u.removeEventListener(n, r, !0),
2745 i._removeData(u, t))
2746 }
2747 }
2748 });
2749 i.fn.extend({
2750 on: function(n, t, i, r) {
2751 return vi(this, n, t, i, r)
2752 },
2753 one: function(n, t, i, r) {
2754 return vi(this, n, t, i, r, 1)
2755 },
2756 off: function(n, t, r) {
2757 var u, f;
2758 if (n && n.preventDefault && n.handleObj)
2759 return u = n.handleObj,
2760 i(n.delegateTarget).off(u.namespace ? u.origType + "." + u.namespace : u.origType, u.selector, u.handler),
2761 this;
2762 if ("object" == typeof n) {
2763 for (f in n)
2764 this.off(f, t, n[f]);
2765 return this
2766 }
2767 return t !== !1 && "function" != typeof t || (r = t,
2768 t = void 0),
2769 r === !1 && (r = rt),
2770 this.each(function() {
2771 i.event.remove(this, n, r, t)
2772 })
2773 },
2774 trigger: function(n, t) {
2775 return this.each(function() {
2776 i.event.trigger(n, t, this)
2777 })
2778 },
2779 triggerHandler: function(n, t) {
2780 var r = this[0];
2781 if (r)
2782 return i.event.trigger(n, t, r, !0)
2783 }
2784 });
2785 var to = / jQuery\d+="(?:null|\d+)"/g
2786 , vu = new RegExp("<(?:" + eu + ")[\\s/>]","i")
2787 , io = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi
2788 , ro = /<script|<style|<link/i
2789 , uo = /checked\s*(?:[^=]|=\s*.checked.)/i
2790 , fo = /^true\/(.*)/
2791 , eo = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g
2792 , oo = ou(u)
2793 , yi = oo.appendChild(u.createElement("div"));
2794 i.extend({
2795 htmlPrefilter: function(n) {
2796 return n.replace(io, "<$1><\/$2>")
2797 },
2798 clone: function(n, t, u) {
2799 var e, c, s, o, h, l = i.contains(n.ownerDocument, n);
2800 if (r.html5Clone || i.isXMLDoc(n) || !vu.test("<" + n.nodeName + ">") ? s = n.cloneNode(!0) : (yi.innerHTML = n.outerHTML,
2801 yi.removeChild(s = yi.firstChild)),
2802 !(r.noCloneEvent && r.noCloneChecked || 1 !== n.nodeType && 11 !== n.nodeType || i.isXMLDoc(n)))
2803 for (e = f(s),
2804 h = f(n),
2805 o = 0; null != (c = h[o]); ++o)
2806 e[o] && so(c, e[o]);
2807 if (t)
2808 if (u)
2809 for (h = h || f(n),
2810 e = e || f(s),
2811 o = 0; null != (c = h[o]); o++)
2812 bu(c, e[o]);
2813 else
2814 bu(n, s);
2815 return e = f(s, "script"),
2816 e.length > 0 && ci(e, !l && f(n, "script")),
2817 e = h = c = null,
2818 s
2819 },
2820 cleanData: function(n, t) {
2821 for (var u, e, f, o, l = 0, s = i.expando, h = i.cache, a = r.attributes, v = i.event.special; null != (u = n[l]); l++)
2822 if ((t || ot(u)) && (f = u[s],
2823 o = f && h[f])) {
2824 if (o.events)
2825 for (e in o.events)
2826 v[e] ? i.event.remove(u, e) : i.removeEvent(u, e, o.handle);
2827 h[f] && (delete h[f],
2828 a || "undefined" == typeof u.removeAttribute ? u[s] = void 0 : u.removeAttribute(s),
2829 c.push(f))
2830 }
2831 }
2832 });
2833 i.fn.extend({
2834 domManip: k,
2835 detach: function(n) {
2836 return ku(this, n, !0)
2837 },
2838 remove: function(n) {
2839 return ku(this, n)
2840 },
2841 text: function(n) {
2842 return y(this, function(n) {
2843 return void 0 === n ? i.text(this) : this.empty().append((this[0] && this[0].ownerDocument || u).createTextNode(n))
2844 }, null, n, arguments.length)
2845 },
2846 append: function() {
2847 return k(this, arguments, function(n) {
2848 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
2849 var t = yu(this, n);
2850 t.appendChild(n)
2851 }
2852 })
2853 },
2854 prepend: function() {
2855 return k(this, arguments, function(n) {
2856 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
2857 var t = yu(this, n);
2858 t.insertBefore(n, t.firstChild)
2859 }
2860 })
2861 },
2862 before: function() {
2863 return k(this, arguments, function(n) {
2864 this.parentNode && this.parentNode.insertBefore(n, this)
2865 })
2866 },
2867 after: function() {
2868 return k(this, arguments, function(n) {
2869 this.parentNode && this.parentNode.insertBefore(n, this.nextSibling)
2870 })
2871 },
2872 empty: function() {
2873 for (var n, t = 0; null != (n = this[t]); t++) {
2874 for (1 === n.nodeType && i.cleanData(f(n, !1)); n.firstChild; )
2875 n.removeChild(n.firstChild);
2876 n.options && i.nodeName(n, "select") && (n.options.length = 0)
2877 }
2878 return this
2879 },
2880 clone: function(n, t) {
2881 return n = null == n ? !1 : n,
2882 t = null == t ? n : t,
2883 this.map(function() {
2884 return i.clone(this, n, t)
2885 })
2886 },
2887 html: function(n) {
2888 return y(this, function(n) {
2889 var t = this[0] || {}
2890 , u = 0
2891 , e = this.length;
2892 if (void 0 === n)
2893 return 1 === t.nodeType ? t.innerHTML.replace(to, "") : void 0;
2894 if ("string" == typeof n && !ro.test(n) && (r.htmlSerialize || !vu.test(n)) && (r.leadingWhitespace || !hi.test(n)) && !o[(uu.exec(n) || ["", ""])[1].toLowerCase()]) {
2895 n = i.htmlPrefilter(n);
2896 try {
2897 for (; e > u; u++)
2898 t = this[u] || {},
2899 1 === t.nodeType && (i.cleanData(f(t, !1)),
2900 t.innerHTML = n);
2901 t = 0
2902 } catch (s) {}
2903 }
2904 t && this.empty().append(n)
2905 }, null, n, arguments.length)
2906 },
2907 replaceWith: function() {
2908 var n = [];
2909 return k(this, arguments, function(t) {
2910 var r = this.parentNode;
2911 i.inArray(this, n) < 0 && (i.cleanData(f(this)),
2912 r && r.replaceChild(t, this))
2913 }, n)
2914 }
2915 });
2916 i.each({
2917 appendTo: "append",
2918 prependTo: "prepend",
2919 insertBefore: "before",
2920 insertAfter: "after",
2921 replaceAll: "replaceWith"
2922 }, function(n, t) {
2923 i.fn[n] = function(n) {
2924 for (var u, r = 0, f = [], e = i(n), o = e.length - 1; o >= r; r++)
2925 u = r === o ? this : this.clone(!0),
2926 i(e[r])[t](u),
2927 ti.apply(f, u.get());
2928 return this.pushStack(f)
2929 }
2930 });
2931 pi = {
2932 HTML: "block",
2933 BODY: "block"
2934 };
2935 var gu = /^margin/
2936 , pt = new RegExp("^(" + ei + ")(?!px)[a-z%]+$","i")
2937 , wi = function(n, t, i, r) {
2938 var f, u, e = {};
2939 for (u in t)
2940 e[u] = n.style[u],
2941 n.style[u] = t[u];
2942 f = i.apply(n, r || []);
2943 for (u in t)
2944 n.style[u] = e[u];
2945 return f
2946 }
2947 , nf = u.documentElement;
2948 !function() {
2949 var f, h, c, e, l, a, s = u.createElement("div"), t = u.createElement("div");
2950 if (t.style) {
2951 t.style.cssText = "float:left;opacity:.5";
2952 r.opacity = "0.5" === t.style.opacity;
2953 r.cssFloat = !!t.style.cssFloat;
2954 t.style.backgroundClip = "content-box";
2955 t.cloneNode(!0).style.backgroundClip = "";
2956 r.clearCloneStyle = "content-box" === t.style.backgroundClip;
2957 s = u.createElement("div");
2958 s.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute";
2959 t.innerHTML = "";
2960 s.appendChild(t);
2961 r.boxSizing = "" === t.style.boxSizing || "" === t.style.MozBoxSizing || "" === t.style.WebkitBoxSizing;
2962 i.extend(r, {
2963 reliablevisibleOffsets: function() {
2964 return null == f && o(),
2965 e
2966 },
2967 boxSizingReliable: function() {
2968 return null == f && o(),
2969 c
2970 },
2971 pixelMarginRight: function() {
2972 return null == f && o(),
2973 h
2974 },
2975 pixelPosition: function() {
2976 return null == f && o(),
2977 f
2978 },
2979 reliableMarginRight: function() {
2980 return null == f && o(),
2981 l
2982 },
2983 reliableMarginLeft: function() {
2984 return null == f && o(),
2985 a
2986 }
2987 });
2988 function o() {
2989 var i, r, o = u.documentElement;
2990 o.appendChild(s);
2991 t.style.cssText = "-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%";
2992 f = c = a = !1;
2993 h = l = !0;
2994 n.getComputedStyle && (r = n.getComputedStyle(t),
2995 f = "1%" !== (r || {}).top,
2996 a = "2px" === (r || {}).marginLeft,
2997 c = "4px" === (r || {
2998 width: "4px"
2999 }).width,
3000 t.style.marginRight = "50%",
3001 h = "4px" === (r || {
3002 marginRight: "4px"
3003 }).marginRight,
3004 i = t.appendChild(u.createElement("div")),
3005 i.style.cssText = t.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",
3006 i.style.marginRight = i.style.width = "0",
3007 t.style.width = "1px",
3008 l = !parseFloat((n.getComputedStyle(i) || {}).marginRight),
3009 t.removeChild(i));
3010 t.style.display = "block";
3011 e = 0 === t.getClientRects().length;
3012 e && (t.style.display = "",
3013 t.innerHTML = "<table><tr><td><\/td><td>t<\/td><\/tr><\/table>",
3014 i = t.getElementsByTagName("td"),
3015 i[0].style.cssText = "margin:0;border:0;padding:0;display:block",
3016 e = 0 === i[0].offsetHeight,
3017 e && (i[0].style.display = "",
3018 i[1].style.display = "block",
3019 e = 0 === i[0].offsetHeight));
3020 o.removeChild(s)
3021 }
3022 }
3023 }();
3024 tf = /^(top|right|bottom|left)$/;
3025 n.getComputedStyle ? (d = function(t) {
3026 var i = t.ownerDocument.defaultView;
3027 return i && i.opener || (i = n),
3028 i.getComputedStyle(t)
3029 }
3030 ,
3031 p = function(n, t, u) {
3032 var o, s, h, f, e = n.style;
3033 return u = u || d(n),
3034 f = u ? u.getPropertyValue(t) || u[t] : void 0,
3035 "" !== f && void 0 !== f || i.contains(n.ownerDocument, n) || (f = i.style(n, t)),
3036 u && !r.pixelMarginRight() && pt.test(f) && gu.test(t) && (o = e.width,
3037 s = e.minWidth,
3038 h = e.maxWidth,
3039 e.minWidth = e.maxWidth = e.width = f,
3040 f = u.width,
3041 e.width = o,
3042 e.minWidth = s,
3043 e.maxWidth = h),
3044 void 0 === f ? f : f + ""
3045 }
3046 ) : nf.currentStyle && (d = function(n) {
3047 return n.currentStyle
3048 }
3049 ,
3050 p = function(n, t, i) {
3051 var o, f, e, r, u = n.style;
3052 return i = i || d(n),
3053 r = i ? i[t] : void 0,
3054 null == r && u && u[t] && (r = u[t]),
3055 pt.test(r) && !tf.test(t) && (o = u.left,
3056 f = n.runtimeStyle,
3057 e = f && f.left,
3058 e && (f.left = n.currentStyle.left),
3059 u.left = "fontSize" === t ? "1em" : r,
3060 r = u.pixelLeft + "px",
3061 u.left = o,
3062 e && (f.left = e)),
3063 void 0 === r ? r : r + "" || "auto"
3064 }
3065 );
3066 var ki = /alpha\([^)]*\)/i
3067 , ho = /opacity\s*=\s*([^)]*)/i
3068 , co = /^(block|table(?!-c[ea]).+)/
3069 , lo = new RegExp("^(" + ei + ")(.*)$","i")
3070 , ao = {
3071 position: "absolute",
3072 visibility: "visible",
3073 display: "block"
3074 }
3075 , rf = {
3076 letterSpacing: "0",
3077 fontWeight: "400"
3078 }
3079 , uf = ["Webkit", "O", "Moz", "ms"]
3080 , ff = u.createElement("div").style;
3081 i.extend({
3082 cssHooks: {
3083 opacity: {
3084 get: function(n, t) {
3085 if (t) {
3086 var i = p(n, "opacity");
3087 return "" === i ? "1" : i
3088 }
3089 }
3090 }
3091 },
3092 cssNumber: {
3093 animationIterationCount: !0,
3094 columnCount: !0,
3095 fillOpacity: !0,
3096 flexGrow: !0,
3097 flexShrink: !0,
3098 fontWeight: !0,
3099 lineHeight: !0,
3100 opacity: !0,
3101 order: !0,
3102 orphans: !0,
3103 widows: !0,
3104 zIndex: !0,
3105 zoom: !0
3106 },
3107 cssProps: {
3108 float: r.cssFloat ? "cssFloat" : "styleFloat"
3109 },
3110 style: function(n, t, u, f) {
3111 if (n && 3 !== n.nodeType && 8 !== n.nodeType && n.style) {
3112 var e, h, o, s = i.camelCase(t), c = n.style;
3113 if (t = i.cssProps[s] || (i.cssProps[s] = ef(s) || s),
3114 o = i.cssHooks[t] || i.cssHooks[s],
3115 void 0 === u)
3116 return o && "get"in o && void 0 !== (e = o.get(n, !1, f)) ? e : c[t];
3117 if (h = typeof u,
3118 "string" === h && (e = oi.exec(u)) && e[1] && (u = ru(n, t, e),
3119 h = "number"),
3120 null != u && u === u && ("number" === h && (u += e && e[3] || (i.cssNumber[s] ? "" : "px")),
3121 r.clearCloneStyle || "" !== u || 0 !== t.indexOf("background") || (c[t] = "inherit"),
3122 !(o && "set"in o && void 0 === (u = o.set(n, u, f)))))
3123 try {
3124 c[t] = u
3125 } catch (l) {}
3126 }
3127 },
3128 css: function(n, t, r, u) {
3129 var s, f, o, e = i.camelCase(t);
3130 return t = i.cssProps[e] || (i.cssProps[e] = ef(e) || e),
3131 o = i.cssHooks[t] || i.cssHooks[e],
3132 o && "get"in o && (f = o.get(n, !0, r)),
3133 void 0 === f && (f = p(n, t, u)),
3134 "normal" === f && t in rf && (f = rf[t]),
3135 "" === r || r ? (s = parseFloat(f),
3136 r === !0 || isFinite(s) ? s || 0 : f) : f
3137 }
3138 });
3139 i.each(["height", "width"], function(n, t) {
3140 i.cssHooks[t] = {
3141 get: function(n, r, u) {
3142 if (r)
3143 return co.test(i.css(n, "display")) && 0 === n.offsetWidth ? wi(n, ao, function() {
3144 return cf(n, t, u)
3145 }) : cf(n, t, u)
3146 },
3147 set: function(n, u, f) {
3148 var e = f && d(n);
3149 return sf(n, u, f ? hf(n, t, f, r.boxSizing && "border-box" === i.css(n, "boxSizing", !1, e), e) : 0)
3150 }
3151 }
3152 });
3153 r.opacity || (i.cssHooks.opacity = {
3154 get: function(n, t) {
3155 return ho.test((t && n.currentStyle ? n.currentStyle.filter : n.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
3156 },
3157 set: function(n, t) {
3158 var r = n.style
3159 , u = n.currentStyle
3160 , e = i.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : ""
3161 , f = u && u.filter || r.filter || "";
3162 r.zoom = 1;
3163 (t >= 1 || "" === t) && "" === i.trim(f.replace(ki, "")) && r.removeAttribute && (r.removeAttribute("filter"),
3164 "" === t || u && !u.filter) || (r.filter = ki.test(f) ? f.replace(ki, e) : f + " " + e)
3165 }
3166 });
3167 i.cssHooks.marginRight = bi(r.reliableMarginRight, function(n, t) {
3168 if (t)
3169 return wi(n, {
3170 display: "inline-block"
3171 }, p, [n, "marginRight"])
3172 });
3173 i.cssHooks.marginLeft = bi(r.reliableMarginLeft, function(n, t) {
3174 if (t)
3175 return (parseFloat(p(n, "marginLeft")) || (i.contains(n.ownerDocument, n) ? n.getBoundingClientRect().left - wi(n, {
3176 marginLeft: 0
3177 }, function() {
3178 return n.getBoundingClientRect().left
3179 }) : 0)) + "px"
3180 });
3181 i.each({
3182 margin: "",
3183 padding: "",
3184 border: "Width"
3185 }, function(n, t) {
3186 i.cssHooks[n + t] = {
3187 expand: function(i) {
3188 for (var r = 0, f = {}, u = "string" == typeof i ? i.split(" ") : [i]; 4 > r; r++)
3189 f[n + b[r] + t] = u[r] || u[r - 2] || u[0];
3190 return f
3191 }
3192 };
3193 gu.test(n) || (i.cssHooks[n + t].set = sf)
3194 });
3195 i.fn.extend({
3196 css: function(n, t) {
3197 return y(this, function(n, t, r) {
3198 var f, e, o = {}, u = 0;
3199 if (i.isArray(t)) {
3200 for (f = d(n),
3201 e = t.length; e > u; u++)
3202 o[t[u]] = i.css(n, t[u], !1, f);
3203 return o
3204 }
3205 return void 0 !== r ? i.style(n, t, r) : i.css(n, t)
3206 }, n, t, arguments.length > 1)
3207 },
3208 show: function() {
3209 return of(this, !0)
3210 },
3211 hide: function() {
3212 return of(this)
3213 },
3214 toggle: function(n) {
3215 return "boolean" == typeof n ? n ? this.show() : this.hide() : this.each(function() {
3216 st(this) ? i(this).show() : i(this).hide()
3217 })
3218 }
3219 });
3220 i.Tween = e;
3221 e.prototype = {
3222 constructor: e,
3223 init: function(n, t, r, u, f, e) {
3224 this.elem = n;
3225 this.prop = r;
3226 this.easing = f || i.easing._default;
3227 this.options = t;
3228 this.start = this.now = this.cur();
3229 this.end = u;
3230 this.unit = e || (i.cssNumber[r] ? "" : "px")
3231 },
3232 cur: function() {
3233 var n = e.propHooks[this.prop];
3234 return n && n.get ? n.get(this) : e.propHooks._default.get(this)
3235 },
3236 run: function(n) {
3237 var t, r = e.propHooks[this.prop];
3238 return this.pos = this.options.duration ? t = i.easing[this.easing](n, this.options.duration * n, 0, 1, this.options.duration) : t = n,
3239 this.now = (this.end - this.start) * t + this.start,
3240 this.options.step && this.options.step.call(this.elem, this.now, this),
3241 r && r.set ? r.set(this) : e.propHooks._default.set(this),
3242 this
3243 }
3244 };
3245 e.prototype.init.prototype = e.prototype;
3246 e.propHooks = {
3247 _default: {
3248 get: function(n) {
3249 var t;
3250 return 1 !== n.elem.nodeType || null != n.elem[n.prop] && null == n.elem.style[n.prop] ? n.elem[n.prop] : (t = i.css(n.elem, n.prop, ""),
3251 t && "auto" !== t ? t : 0)
3252 },
3253 set: function(n) {
3254 i.fx.step[n.prop] ? i.fx.step[n.prop](n) : 1 !== n.elem.nodeType || null == n.elem.style[i.cssProps[n.prop]] && !i.cssHooks[n.prop] ? n.elem[n.prop] = n.now : i.style(n.elem, n.prop, n.now + n.unit)
3255 }
3256 }
3257 };
3258 e.propHooks.scrollTop = e.propHooks.scrollLeft = {
3259 set: function(n) {
3260 n.elem.nodeType && n.elem.parentNode && (n.elem[n.prop] = n.now)
3261 }
3262 };
3263 i.easing = {
3264 linear: function(n) {
3265 return n
3266 },
3267 swing: function(n) {
3268 return .5 - Math.cos(n * Math.PI) / 2
3269 },
3270 _default: "swing"
3271 };
3272 i.fx = e.prototype.init;
3273 i.fx.step = {};
3274 lf = /^(?:toggle|show|hide)$/;
3275 af = /queueHooks$/;
3276 i.Animation = i.extend(h, {
3277 tweeners: {
3278 "*": [function(n, t) {
3279 var i = this.createTween(n, t);
3280 return ru(i.elem, n, oi.exec(t), i),
3281 i
3282 }
3283 ]
3284 },
3285 tweener: function(n, t) {
3286 i.isFunction(n) ? (t = n,
3287 n = ["*"]) : n = n.match(s);
3288 for (var r, u = 0, f = n.length; f > u; u++)
3289 r = n[u],
3290 h.tweeners[r] = h.tweeners[r] || [],
3291 h.tweeners[r].unshift(t)
3292 },
3293 prefilters: [vo],
3294 prefilter: function(n, t) {
3295 t ? h.prefilters.unshift(n) : h.prefilters.push(n)
3296 }
3297 });
3298 i.speed = function(n, t, r) {
3299 var u = n && "object" == typeof n ? i.extend({}, n) : {
3300 complete: r || !r && t || i.isFunction(n) && n,
3301 duration: n,
3302 easing: r && t || t && !i.isFunction(t) && t
3303 };
3304 return u.duration = i.fx.off ? 0 : "number" == typeof u.duration ? u.duration : u.duration in i.fx.speeds ? i.fx.speeds[u.duration] : i.fx.speeds._default,
3305 null != u.queue && u.queue !== !0 || (u.queue = "fx"),
3306 u.old = u.complete,
3307 u.complete = function() {
3308 i.isFunction(u.old) && u.old.call(this);
3309 u.queue && i.dequeue(this, u.queue)
3310 }
3311 ,
3312 u
3313 }
3314 ;
3315 i.fn.extend({
3316 fadeTo: function(n, t, i, r) {
3317 return this.filter(st).css("opacity", 0).show().end().animate({
3318 opacity: t
3319 }, n, i, r)
3320 },
3321 animate: function(n, t, r, u) {
3322 var o = i.isEmptyObject(n)
3323 , e = i.speed(t, r, u)
3324 , f = function() {
3325 var t = h(this, i.extend({}, n), e);
3326 (o || i._data(this, "finish")) && t.stop(!0)
3327 };
3328 return f.finish = f,
3329 o || e.queue === !1 ? this.each(f) : this.queue(e.queue, f)
3330 },
3331 stop: function(n, t, r) {
3332 var u = function(n) {
3333 var t = n.stop;
3334 delete n.stop;
3335 t(r)
3336 };
3337 return "string" != typeof n && (r = t,
3338 t = n,
3339 n = void 0),
3340 t && n !== !1 && this.queue(n || "fx", []),
3341 this.each(function() {
3342 var o = !0
3343 , t = null != n && n + "queueHooks"
3344 , e = i.timers
3345 , f = i._data(this);
3346 if (t)
3347 f[t] && f[t].stop && u(f[t]);
3348 else
3349 for (t in f)
3350 f[t] && f[t].stop && af.test(t) && u(f[t]);
3351 for (t = e.length; t--; )
3352 e[t].elem !== this || null != n && e[t].queue !== n || (e[t].anim.stop(r),
3353 o = !1,
3354 e.splice(t, 1));
3355 !o && r || i.dequeue(this, n)
3356 })
3357 },
3358 finish: function(n) {
3359 return n !== !1 && (n = n || "fx"),
3360 this.each(function() {
3361 var t, f = i._data(this), r = f[n + "queue"], e = f[n + "queueHooks"], u = i.timers, o = r ? r.length : 0;
3362 for (f.finish = !0,
3363 i.queue(this, n, []),
3364 e && e.stop && e.stop.call(this, !0),
3365 t = u.length; t--; )
3366 u[t].elem === this && u[t].queue === n && (u[t].anim.stop(!0),
3367 u.splice(t, 1));
3368 for (t = 0; o > t; t++)
3369 r[t] && r[t].finish && r[t].finish.call(this);
3370 delete f.finish
3371 })
3372 }
3373 });
3374 i.each(["toggle", "show", "hide"], function(n, t) {
3375 var r = i.fn[t];
3376 i.fn[t] = function(n, i, u) {
3377 return null == n || "boolean" == typeof n ? r.apply(this, arguments) : this.animate(bt(t, !0), n, i, u)
3378 }
3379 });
3380 i.each({
3381 slideDown: bt("show"),
3382 slideUp: bt("hide"),
3383 slideToggle: bt("toggle"),
3384 fadeIn: {
3385 opacity: "show"
3386 },
3387 fadeOut: {
3388 opacity: "hide"
3389 },
3390 fadeToggle: {
3391 opacity: "toggle"
3392 }
3393 }, function(n, t) {
3394 i.fn[n] = function(n, i, r) {
3395 return this.animate(t, n, i, r)
3396 }
3397 });
3398 i.timers = [];
3399 i.fx.tick = function() {
3400 var r, n = i.timers, t = 0;
3401 for (ut = i.now(); t < n.length; t++)
3402 r = n[t],
3403 r() || n[t] !== r || n.splice(t--, 1);
3404 n.length || i.fx.stop();
3405 ut = void 0
3406 }
3407 ;
3408 i.fx.timer = function(n) {
3409 i.timers.push(n);
3410 n() ? i.fx.start() : i.timers.pop()
3411 }
3412 ;
3413 i.fx.interval = 13;
3414 i.fx.start = function() {
3415 wt || (wt = n.setInterval(i.fx.tick, i.fx.interval))
3416 }
3417 ;
3418 i.fx.stop = function() {
3419 n.clearInterval(wt);
3420 wt = null
3421 }
3422 ;
3423 i.fx.speeds = {
3424 slow: 600,
3425 fast: 200,
3426 _default: 400
3427 };
3428 i.fn.delay = function(t, r) {
3429 return t = i.fx ? i.fx.speeds[t] || t : t,
3430 r = r || "fx",
3431 this.queue(r, function(i, r) {
3432 var u = n.setTimeout(i, t);
3433 r.stop = function() {
3434 n.clearTimeout(u)
3435 }
3436 })
3437 }
3438 ,
3439 function() {
3440 var i, n = u.createElement("input"), t = u.createElement("div"), f = u.createElement("select"), e = f.appendChild(u.createElement("option"));
3441 t = u.createElement("div");
3442 t.setAttribute("className", "t");
3443 t.innerHTML = " <link/><table><\/table><a href='/a'>a<\/a><input type='checkbox'/>";
3444 i = t.getElementsByTagName("a")[0];
3445 n.setAttribute("type", "checkbox");
3446 t.appendChild(n);
3447 i = t.getElementsByTagName("a")[0];
3448 i.style.cssText = "top:1px";
3449 r.getSetAttribute = "t" !== t.className;
3450 r.style = /top/.test(i.getAttribute("style"));
3451 r.hrefNormalized = "/a" === i.getAttribute("href");
3452 r.checkOn = !!n.value;
3453 r.optSelected = e.selected;
3454 r.enctype = !!u.createElement("form").enctype;
3455 f.disabled = !0;
3456 r.optDisabled = !e.disabled;
3457 n = u.createElement("input");
3458 n.setAttribute("value", "");
3459 r.input = "" === n.getAttribute("value");
3460 n.value = "t";
3461 n.setAttribute("type", "radio");
3462 r.radioValue = "t" === n.value
3463 }();
3464 pf = /\r/g;
3465 wf = /[\x20\t\r\n\f]+/g;
3466 i.fn.extend({
3467 val: function(n) {
3468 var t, r, f, u = this[0];
3469 return arguments.length ? (f = i.isFunction(n),
3470 this.each(function(r) {
3471 var u;
3472 1 === this.nodeType && (u = f ? n.call(this, r, i(this).val()) : n,
3473 null == u ? u = "" : "number" == typeof u ? u += "" : i.isArray(u) && (u = i.map(u, function(n) {
3474 return null == n ? "" : n + ""
3475 })),
3476 t = i.valHooks[this.type] || i.valHooks[this.nodeName.toLowerCase()],
3477 t && "set"in t && void 0 !== t.set(this, u, "value") || (this.value = u))
3478 })) : u ? (t = i.valHooks[u.type] || i.valHooks[u.nodeName.toLowerCase()],
3479 t && "get"in t && void 0 !== (r = t.get(u, "value")) ? r : (r = u.value,
3480 "string" == typeof r ? r.replace(pf, "") : null == r ? "" : r)) : void 0
3481 }
3482 });
3483 i.extend({
3484 valHooks: {
3485 option: {
3486 get: function(n) {
3487 var t = i.find.attr(n, "value");
3488 return null != t ? t : i.trim(i.text(n)).replace(wf, " ")
3489 }
3490 },
3491 select: {
3492 get: function(n) {
3493 for (var o, t, s = n.options, u = n.selectedIndex, f = "select-one" === n.type || 0 > u, h = f ? null : [], c = f ? u + 1 : s.length, e = 0 > u ? c : f ? u : 0; c > e; e++)
3494 if (t = s[e],
3495 (t.selected || e === u) && (r.optDisabled ? !t.disabled : null === t.getAttribute("disabled")) && (!t.parentNode.disabled || !i.nodeName(t.parentNode, "optgroup"))) {
3496 if (o = i(t).val(),
3497 f)
3498 return o;
3499 h.push(o)
3500 }
3501 return h
3502 },
3503 set: function(n, t) {
3504 for (var f, r, u = n.options, o = i.makeArray(t), e = u.length; e--; )
3505 if (r = u[e],
3506 i.inArray(i.valHooks.option.get(r), o) > -1)
3507 try {
3508 r.selected = f = !0
3509 } catch (s) {
3510 r.scrollHeight
3511 }
3512 else
3513 r.selected = !1;
3514 return f || (n.selectedIndex = -1),
3515 u
3516 }
3517 }
3518 }
3519 });
3520 i.each(["radio", "checkbox"], function() {
3521 i.valHooks[this] = {
3522 set: function(n, t) {
3523 if (i.isArray(t))
3524 return n.checked = i.inArray(i(n).val(), t) > -1
3525 }
3526 };
3527 r.checkOn || (i.valHooks[this].get = function(n) {
3528 return null === n.getAttribute("value") ? "on" : n.value
3529 }
3530 )
3531 });
3532 var ft, bf, l = i.expr.attrHandle, di = /^(?:checked|selected)$/i, g = r.getSetAttribute, kt = r.input;
3533 i.fn.extend({
3534 attr: function(n, t) {
3535 return y(this, i.attr, n, t, arguments.length > 1)
3536 },
3537 removeAttr: function(n) {
3538 return this.each(function() {
3539 i.removeAttr(this, n)
3540 })
3541 }
3542 });
3543 i.extend({
3544 attr: function(n, t, r) {
3545 var u, f, e = n.nodeType;
3546 if (3 !== e && 8 !== e && 2 !== e)
3547 return "undefined" == typeof n.getAttribute ? i.prop(n, t, r) : (1 === e && i.isXMLDoc(n) || (t = t.toLowerCase(),
3548 f = i.attrHooks[t] || (i.expr.match.bool.test(t) ? bf : ft)),
3549 void 0 !== r ? null === r ? void i.removeAttr(n, t) : f && "set"in f && void 0 !== (u = f.set(n, r, t)) ? u : (n.setAttribute(t, r + ""),
3550 r) : f && "get"in f && null !== (u = f.get(n, t)) ? u : (u = i.find.attr(n, t),
3551 null == u ? void 0 : u))
3552 },
3553 attrHooks: {
3554 type: {
3555 set: function(n, t) {
3556 if (!r.radioValue && "radio" === t && i.nodeName(n, "input")) {
3557 var u = n.value;
3558 return n.setAttribute("type", t),
3559 u && (n.value = u),
3560 t
3561 }
3562 }
3563 }
3564 },
3565 removeAttr: function(n, t) {
3566 var r, u, e = 0, f = t && t.match(s);
3567 if (f && 1 === n.nodeType)
3568 while (r = f[e++])
3569 u = i.propFix[r] || r,
3570 i.expr.match.bool.test(r) ? kt && g || !di.test(r) ? n[u] = !1 : n[i.camelCase("default-" + r)] = n[u] = !1 : i.attr(n, r, ""),
3571 n.removeAttribute(g ? r : u)
3572 }
3573 });
3574 bf = {
3575 set: function(n, t, r) {
3576 return t === !1 ? i.removeAttr(n, r) : kt && g || !di.test(r) ? n.setAttribute(!g && i.propFix[r] || r, r) : n[i.camelCase("default-" + r)] = n[r] = !0,
3577 r
3578 }
3579 };
3580 i.each(i.expr.match.bool.source.match(/\w+/g), function(n, t) {
3581 var r = l[t] || i.find.attr;
3582 l[t] = kt && g || !di.test(t) ? function(n, t, i) {
3583 var u, f;
3584 return i || (f = l[t],
3585 l[t] = u,
3586 u = null != r(n, t, i) ? t.toLowerCase() : null,
3587 l[t] = f),
3588 u
3589 }
3590 : function(n, t, r) {
3591 if (!r)
3592 return n[i.camelCase("default-" + t)] ? t.toLowerCase() : null
3593 }
3594 });
3595 kt && g || (i.attrHooks.value = {
3596 set: function(n, t, r) {
3597 return i.nodeName(n, "input") ? void (n.defaultValue = t) : ft && ft.set(n, t, r)
3598 }
3599 });
3600 g || (ft = {
3601 set: function(n, t, i) {
3602 var r = n.getAttributeNode(i);
3603 return r || n.setAttributeNode(r = n.ownerDocument.createAttribute(i)),
3604 r.value = t += "",
3605 "value" === i || t === n.getAttribute(i) ? t : void 0
3606 }
3607 },
3608 l.id = l.name = l.coords = function(n, t, i) {
3609 var r;
3610 if (!i)
3611 return (r = n.getAttributeNode(t)) && "" !== r.value ? r.value : null
3612 }
3613 ,
3614 i.valHooks.button = {
3615 get: function(n, t) {
3616 var i = n.getAttributeNode(t);
3617 if (i && i.specified)
3618 return i.value
3619 },
3620 set: ft.set
3621 },
3622 i.attrHooks.contenteditable = {
3623 set: function(n, t, i) {
3624 ft.set(n, "" === t ? !1 : t, i)
3625 }
3626 },
3627 i.each(["width", "height"], function(n, t) {
3628 i.attrHooks[t] = {
3629 set: function(n, i) {
3630 if ("" === i)
3631 return (n.setAttribute(t, "auto"),
3632 i)
3633 }
3634 }
3635 }));
3636 r.style || (i.attrHooks.style = {
3637 get: function(n) {
3638 return n.style.cssText || void 0
3639 },
3640 set: function(n, t) {
3641 return n.style.cssText = t + ""
3642 }
3643 });
3644 kf = /^(?:input|select|textarea|button|object)$/i;
3645 df = /^(?:a|area)$/i;
3646 i.fn.extend({
3647 prop: function(n, t) {
3648 return y(this, i.prop, n, t, arguments.length > 1)
3649 },
3650 removeProp: function(n) {
3651 return n = i.propFix[n] || n,
3652 this.each(function() {
3653 try {
3654 this[n] = void 0;
3655 delete this[n]
3656 } catch (t) {}
3657 })
3658 }
3659 });
3660 i.extend({
3661 prop: function(n, t, r) {
3662 var f, u, e = n.nodeType;
3663 if (3 !== e && 8 !== e && 2 !== e)
3664 return 1 === e && i.isXMLDoc(n) || (t = i.propFix[t] || t,
3665 u = i.propHooks[t]),
3666 void 0 !== r ? u && "set"in u && void 0 !== (f = u.set(n, r, t)) ? f : n[t] = r : u && "get"in u && null !== (f = u.get(n, t)) ? f : n[t]
3667 },
3668 propHooks: {
3669 tabIndex: {
3670 get: function(n) {
3671 var t = i.find.attr(n, "tabindex");
3672 return t ? parseInt(t, 10) : kf.test(n.nodeName) || df.test(n.nodeName) && n.href ? 0 : -1
3673 }
3674 }
3675 },
3676 propFix: {
3677 "for": "htmlFor",
3678 "class": "className"
3679 }
3680 });
3681 r.hrefNormalized || i.each(["href", "src"], function(n, t) {
3682 i.propHooks[t] = {
3683 get: function(n) {
3684 return n.getAttribute(t, 4)
3685 }
3686 }
3687 });
3688 r.optSelected || (i.propHooks.selected = {
3689 get: function(n) {
3690 var t = n.parentNode;
3691 return t && (t.selectedIndex,
3692 t.parentNode && t.parentNode.selectedIndex),
3693 null
3694 },
3695 set: function(n) {
3696 var t = n.parentNode;
3697 t && (t.selectedIndex,
3698 t.parentNode && t.parentNode.selectedIndex)
3699 }
3700 });
3701 i.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
3702 i.propFix[this.toLowerCase()] = this
3703 });
3704 r.enctype || (i.propFix.enctype = "encoding");
3705 dt = /[\t\r\n\f]/g;
3706 i.fn.extend({
3707 addClass: function(n) {
3708 var o, t, r, u, f, h, e, c = 0;
3709 if (i.isFunction(n))
3710 return this.each(function(t) {
3711 i(this).addClass(n.call(this, t, nt(this)))
3712 });
3713 if ("string" == typeof n && n)
3714 for (o = n.match(s) || []; t = this[c++]; )
3715 if (u = nt(t),
3716 r = 1 === t.nodeType && (" " + u + " ").replace(dt, " ")) {
3717 for (h = 0; f = o[h++]; )
3718 r.indexOf(" " + f + " ") < 0 && (r += f + " ");
3719 e = i.trim(r);
3720 u !== e && i.attr(t, "class", e)
3721 }
3722 return this
3723 },
3724 removeClass: function(n) {
3725 var o, r, t, u, f, h, e, c = 0;
3726 if (i.isFunction(n))
3727 return this.each(function(t) {
3728 i(this).removeClass(n.call(this, t, nt(this)))
3729 });
3730 if (!arguments.length)
3731 return this.attr("class", "");
3732 if ("string" == typeof n && n)
3733 for (o = n.match(s) || []; r = this[c++]; )
3734 if (u = nt(r),
3735 t = 1 === r.nodeType && (" " + u + " ").replace(dt, " ")) {
3736 for (h = 0; f = o[h++]; )
3737 while (t.indexOf(" " + f + " ") > -1)
3738 t = t.replace(" " + f + " ", " ");
3739 e = i.trim(t);
3740 u !== e && i.attr(r, "class", e)
3741 }
3742 return this
3743 },
3744 toggleClass: function(n, t) {
3745 var r = typeof n;
3746 return "boolean" == typeof t && "string" === r ? t ? this.addClass(n) : this.removeClass(n) : i.isFunction(n) ? this.each(function(r) {
3747 i(this).toggleClass(n.call(this, r, nt(this), t), t)
3748 }) : this.each(function() {
3749 var t, f, u, e;
3750 if ("string" === r)
3751 for (f = 0,
3752 u = i(this),
3753 e = n.match(s) || []; t = e[f++]; )
3754 u.hasClass(t) ? u.removeClass(t) : u.addClass(t);
3755 else
3756 void 0 !== n && "boolean" !== r || (t = nt(this),
3757 t && i._data(this, "__className__", t),
3758 i.attr(this, "class", t || n === !1 ? "" : i._data(this, "__className__") || ""))
3759 })
3760 },
3761 hasClass: function(n) {
3762 for (var t, r = 0, i = " " + n + " "; t = this[r++]; )
3763 if (1 === t.nodeType && (" " + nt(t) + " ").replace(dt, " ").indexOf(i) > -1)
3764 return !0;
3765 return !1
3766 }
3767 });
3768 i.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(n, t) {
3769 i.fn[t] = function(n, i) {
3770 return arguments.length > 0 ? this.on(t, null, n, i) : this.trigger(t)
3771 }
3772 });
3773 i.fn.extend({
3774 hover: function(n, t) {
3775 return this.mouseenter(n).mouseleave(t || n)
3776 }
3777 });
3778 var po = n.location
3779 , gi = i.now()
3780 , nr = /\?/
3781 , wo = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
3782 i.parseJSON = function(t) {
3783 if (n.JSON && n.JSON.parse)
3784 return n.JSON.parse(t + "");
3785 var f, r = null, u = i.trim(t + "");
3786 return u && !i.trim(u.replace(wo, function(n, t, i, u) {
3787 return f && t && (r = 0),
3788 0 === r ? n : (f = i || t,
3789 r += !u - !i,
3790 "")
3791 })) ? Function("return " + u)() : i.error("Invalid JSON: " + t)
3792 }
3793 ;
3794 i.parseXML = function(t) {
3795 var r, u;
3796 if (!t || "string" != typeof t)
3797 return null;
3798 try {
3799 n.DOMParser ? (u = new n.DOMParser,
3800 r = u.parseFromString(t, "text/xml")) : (r = new n.ActiveXObject("Microsoft.XMLDOM"),
3801 r.async = "false",
3802 r.loadXML(t))
3803 } catch (f) {
3804 r = void 0
3805 }
3806 return r && r.documentElement && !r.getElementsByTagName("parsererror").length || i.error("Invalid XML: " + t),
3807 r
3808 }
3809 ;
3810 var bo = /#.*$/
3811 , gf = /([?&])_=[^&]*/
3812 , ko = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm
3813 , go = /^(?:GET|HEAD)$/
3814 , ns = /^\/\//
3815 , ne = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/
3816 , te = {}
3817 , tr = {}
3818 , ie = "*/".concat("*")
3819 , ir = po.href
3820 , et = ne.exec(ir.toLowerCase()) || [];
3821 i.extend({
3822 active: 0,
3823 lastModified: {},
3824 etag: {},
3825 ajaxSettings: {
3826 url: ir,
3827 type: "GET",
3828 isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(et[1]),
3829 global: !0,
3830 processData: !0,
3831 async: !0,
3832 contentType: "application/x-www-form-urlencoded; charset=UTF-8",
3833 accepts: {
3834 "*": ie,
3835 text: "text/plain",
3836 html: "text/html",
3837 xml: "application/xml, text/xml",
3838 json: "application/json, text/javascript"
3839 },
3840 contents: {
3841 xml: /\bxml\b/,
3842 html: /\bhtml/,
3843 json: /\bjson\b/
3844 },
3845 responseFields: {
3846 xml: "responseXML",
3847 text: "responseText",
3848 json: "responseJSON"
3849 },
3850 converters: {
3851 "* text": String,
3852 "text html": !0,
3853 "text json": i.parseJSON,
3854 "text xml": i.parseXML
3855 },
3856 flatOptions: {
3857 url: !0,
3858 context: !0
3859 }
3860 },
3861 ajaxSetup: function(n, t) {
3862 return t ? rr(rr(n, i.ajaxSettings), t) : rr(i.ajaxSettings, n)
3863 },
3864 ajaxPrefilter: re(te),
3865 ajaxTransport: re(tr),
3866 ajax: function(t, r) {
3867 function w(t, r, s, c) {
3868 var y, rt, it, w, tt, l = r;
3869 2 !== o && (o = 2,
3870 k && n.clearTimeout(k),
3871 v = void 0,
3872 b = c || "",
3873 f.readyState = t > 0 ? 4 : 0,
3874 y = t >= 200 && 300 > t || 304 === t,
3875 s && (w = ts(u, f, s)),
3876 w = is(u, w, f, y),
3877 y ? (u.ifModified && (tt = f.getResponseHeader("Last-Modified"),
3878 tt && (i.lastModified[e] = tt),
3879 tt = f.getResponseHeader("etag"),
3880 tt && (i.etag[e] = tt)),
3881 204 === t || "HEAD" === u.type ? l = "nocontent" : 304 === t ? l = "notmodified" : (l = w.state,
3882 rt = w.data,
3883 it = w.error,
3884 y = !it)) : (it = l,
3885 !t && l || (l = "error",
3886 0 > t && (t = 0))),
3887 f.status = t,
3888 f.statusText = (r || l) + "",
3889 y ? g.resolveWith(h, [rt, l, f]) : g.rejectWith(h, [f, l, it]),
3890 f.statusCode(p),
3891 p = void 0,
3892 a && d.trigger(y ? "ajaxSuccess" : "ajaxError", [f, u, y ? rt : it]),
3893 nt.fireWith(h, [f, l]),
3894 a && (d.trigger("ajaxComplete", [f, u]),
3895 --i.active || i.event.trigger("ajaxStop")))
3896 }
3897 "object" == typeof t && (r = t,
3898 t = void 0);
3899 r = r || {};
3900 var c, l, e, b, k, a, v, y, u = i.ajaxSetup({}, r), h = u.context || u, d = u.context && (h.nodeType || h.jquery) ? i(h) : i.event, g = i.Deferred(), nt = i.Callbacks("once memory"), p = u.statusCode || {}, tt = {}, it = {}, o = 0, rt = "canceled", f = {
3901 readyState: 0,
3902 getResponseHeader: function(n) {
3903 var t;
3904 if (2 === o) {
3905 if (!y)
3906 for (y = {}; t = ko.exec(b); )
3907 y[t[1].toLowerCase()] = t[2];
3908 t = y[n.toLowerCase()]
3909 }
3910 return null == t ? null : t
3911 },
3912 getAllResponseHeaders: function() {
3913 return 2 === o ? b : null
3914 },
3915 setRequestHeader: function(n, t) {
3916 var i = n.toLowerCase();
3917 return o || (n = it[i] = it[i] || n,
3918 tt[n] = t),
3919 this
3920 },
3921 overrideMimeType: function(n) {
3922 return o || (u.mimeType = n),
3923 this
3924 },
3925 statusCode: function(n) {
3926 var t;
3927 if (n)
3928 if (2 > o)
3929 for (t in n)
3930 p[t] = [p[t], n[t]];
3931 else
3932 f.always(n[f.status]);
3933 return this
3934 },
3935 abort: function(n) {
3936 var t = n || rt;
3937 return v && v.abort(t),
3938 w(0, t),
3939 this
3940 }
3941 };
3942 if (g.promise(f).complete = nt.add,
3943 f.success = f.done,
3944 f.error = f.fail,
3945 u.url = ((t || u.url || ir) + "").replace(bo, "").replace(ns, et[1] + "//"),
3946 u.type = r.method || r.type || u.method || u.type,
3947 u.dataTypes = i.trim(u.dataType || "*").toLowerCase().match(s) || [""],
3948 null == u.crossDomain && (c = ne.exec(u.url.toLowerCase()),
3949 u.crossDomain = !(!c || c[1] === et[1] && c[2] === et[2] && (c[3] || ("http:" === c[1] ? "80" : "443")) === (et[3] || ("http:" === et[1] ? "80" : "443")))),
3950 u.data && u.processData && "string" != typeof u.data && (u.data = i.param(u.data, u.traditional)),
3951 ue(te, u, r, f),
3952 2 === o)
3953 return f;
3954 a = i.event && u.global;
3955 a && 0 == i.active++ && i.event.trigger("ajaxStart");
3956 u.type = u.type.toUpperCase();
3957 u.hasContent = !go.test(u.type);
3958 e = u.url;
3959 u.hasContent || (u.data && (e = u.url += (nr.test(e) ? "&" : "?") + u.data,
3960 delete u.data),
3961 u.cache === !1 && (u.url = gf.test(e) ? e.replace(gf, "$1_=" + gi++) : e + (nr.test(e) ? "&" : "?") + "_=" + gi++));
3962 u.ifModified && (i.lastModified[e] && f.setRequestHeader("If-Modified-Since", i.lastModified[e]),
3963 i.etag[e] && f.setRequestHeader("If-block-Match", i.etag[e]));
3964 (u.data && u.hasContent && u.contentType !== !1 || r.contentType) && f.setRequestHeader("Content-Type", u.contentType);
3965 f.setRequestHeader("Accept", u.dataTypes[0] && u.accepts[u.dataTypes[0]] ? u.accepts[u.dataTypes[0]] + ("*" !== u.dataTypes[0] ? ", " + ie + "; q=0.01" : "") : u.accepts["*"]);
3966 for (l in u.headers)
3967 f.setRequestHeader(l, u.headers[l]);
3968 if (u.beforeSend && (u.beforeSend.call(h, f, u) === !1 || 2 === o))
3969 return f.abort();
3970 rt = "abort";
3971 for (l in {
3972 success: 1,
3973 error: 1,
3974 complete: 1
3975 })
3976 f[l](u[l]);
3977 if (v = ue(tr, u, r, f)) {
3978 if (f.readyState = 1,
3979 a && d.trigger("ajaxSend", [f, u]),
3980 2 === o)
3981 return f;
3982 u.async && u.timeout > 0 && (k = n.setTimeout(function() {
3983 f.abort("timeout")
3984 }, u.timeout));
3985 try {
3986 o = 1;
3987 v.send(tt, w)
3988 } catch (ut) {
3989 if (!(2 > o))
3990 throw ut;
3991 w(-1, ut)
3992 }
3993 } else
3994 w(-1, "No Transport");
3995 return f
3996 },
3997 getJSON: function(n, t, r) {
3998 return i.get(n, t, r, "json")
3999 },
4000 getScript: function(n, t) {
4001 return i.get(n, void 0, t, "script")
4002 }
4003 });
4004 i.each(["get", "post"], function(n, t) {
4005 i[t] = function(n, r, u, f) {
4006 return i.isFunction(r) && (f = f || u,
4007 u = r,
4008 r = void 0),
4009 i.ajax(i.extend({
4010 url: n,
4011 type: t,
4012 dataType: f,
4013 data: r,
4014 success: u
4015 }, i.isPlainObject(n) && n))
4016 }
4017 });
4018 i._evalUrl = function(n) {
4019 return i.ajax({
4020 url: n,
4021 type: "GET",
4022 dataType: "script",
4023 cache: !0,
4024 async: !1,
4025 global: !1,
4026 throws: !0
4027 })
4028 }
4029 ;
4030 i.fn.extend({
4031 wrapAll: function(n) {
4032 if (i.isFunction(n))
4033 return this.each(function(t) {
4034 i(this).wrapAll(n.call(this, t))
4035 });
4036 if (this[0]) {
4037 var t = i(n, this[0].ownerDocument).eq(0).clone(!0);
4038 this[0].parentNode && t.insertBefore(this[0]);
4039 t.map(function() {
4040 for (var n = this; n.firstChild && 1 === n.firstChild.nodeType; )
4041 n = n.firstChild;
4042 return n
4043 }).append(this)
4044 }
4045 return this
4046 },
4047 wrapInner: function(n) {
4048 return i.isFunction(n) ? this.each(function(t) {
4049 i(this).wrapInner(n.call(this, t))
4050 }) : this.each(function() {
4051 var t = i(this)
4052 , r = t.contents();
4053 r.length ? r.wrapAll(n) : t.append(n)
4054 })
4055 },
4056 wrap: function(n) {
4057 var t = i.isFunction(n);
4058 return this.each(function(r) {
4059 i(this).wrapAll(t ? n.call(this, r) : n)
4060 })
4061 },
4062 unwrap: function() {
4063 return this.parent().each(function() {
4064 i.nodeName(this, "body") || i(this).replaceWith(this.childNodes)
4065 }).end()
4066 }
4067 });
4068 i.expr.filters.visible = function(n) {
4069 return r.reliablevisibleOffsets() ? n.offsetWidth <= 0 && n.offsetHeight <= 0 && !n.getClientRects().length : us(n)
4070 }
4071 ;
4072 i.expr.filters.visible = function(n) {
4073 return !i.expr.filters.visible(n)
4074 }
4075 ;
4076 var fs = /%20/g
4077 , es = /\[\]$/
4078 , fe = /\r?\n/g
4079 , os = /^(?:submit|button|image|reset|file)$/i
4080 , ss = /^(?:input|select|textarea|keygen)/i;
4081 i.param = function(n, t) {
4082 var r, u = [], f = function(n, t) {
4083 t = i.isFunction(t) ? t() : null == t ? "" : t;
4084 u[u.length] = encodeURIComponent(n) + "=" + encodeURIComponent(t)
4085 };
4086 if (void 0 === t && (t = i.ajaxSettings && i.ajaxSettings.traditional),
4087 i.isArray(n) || n.jquery && !i.isPlainObject(n))
4088 i.each(n, function() {
4089 f(this.name, this.value)
4090 });
4091 else
4092 for (r in n)
4093 ur(r, n[r], t, f);
4094 return u.join("&").replace(fs, "+")
4095 }
4096 ;
4097 i.fn.extend({
4098 serialize: function() {
4099 return i.param(this.serializeArray())
4100 },
4101 serializeArray: function() {
4102 return this.map(function() {
4103 var n = i.prop(this, "elements");
4104 return n ? i.makeArray(n) : this
4105 }).filter(function() {
4106 var n = this.type;
4107 return this.name && !i(this).is(":disabled") && ss.test(this.nodeName) && !os.test(n) && (this.checked || !si.test(n))
4108 }).map(function(n, t) {
4109 var r = i(this).val();
4110 return null == r ? null : i.isArray(r) ? i.map(r, function(n) {
4111 return {
4112 name: t.name,
4113 value: n.replace(fe, "\r\n")
4114 }
4115 }) : {
4116 name: t.name,
4117 value: r.replace(fe, "\r\n")
4118 }
4119 }).get()
4120 }
4121 });
4122 i.ajaxSettings.xhr = void 0 !== n.ActiveXObject ? function() {
4123 return this.isLocal ? ee() : u.documentMode > 8 ? fr() : /^(get|post|head|put|delete|options)$/i.test(this.type) && fr() || ee()
4124 }
4125 : fr;
4126 var hs = 0
4127 , gt = {}
4128 , ct = i.ajaxSettings.xhr();
4129 return n.attachEvent && n.attachEvent("onunload", function() {
4130 for (var n in gt)
4131 gt[n](void 0, !0)
4132 }),
4133 r.cors = !!ct && "withCredentials"in ct,
4134 ct = r.ajax = !!ct,
4135 ct && i.ajaxTransport(function(t) {
4136 if (!t.crossDomain || r.cors) {
4137 var u;
4138 return {
4139 send: function(r, f) {
4140 var o, e = t.xhr(), s = ++hs;
4141 if (e.open(t.type, t.url, t.async, t.username, t.password),
4142 t.xhrFields)
4143 for (o in t.xhrFields)
4144 e[o] = t.xhrFields[o];
4145 t.mimeType && e.overrideMimeType && e.overrideMimeType(t.mimeType);
4146 t.crossDomain || r["X-Requested-With"] || (r["X-Requested-With"] = "XMLHttpRequest");
4147 for (o in r)
4148 void 0 !== r[o] && e.setRequestHeader(o, r[o] + "");
4149 e.send(t.hasContent && t.data || null);
4150 u = function(n, r) {
4151 var o, c, h;
4152 if (u && (r || 4 === e.readyState))
4153 if (delete gt[s],
4154 u = void 0,
4155 e.onreadystatechange = i.noop,
4156 r)
4157 4 !== e.readyState && e.abort();
4158 else {
4159 h = {};
4160 o = e.status;
4161 "string" == typeof e.responseText && (h.text = e.responseText);
4162 try {
4163 c = e.statusText
4164 } catch (l) {
4165 c = ""
4166 }
4167 o || !t.isLocal || t.crossDomain ? 1223 === o && (o = 204) : o = h.text ? 200 : 404
4168 }
4169 h && f(o, c, h, e.getAllResponseHeaders())
4170 }
4171 ;
4172 t.async ? 4 === e.readyState ? n.setTimeout(u) : e.onreadystatechange = gt[s] = u : u()
4173 },
4174 abort: function() {
4175 u && u(void 0, !0)
4176 }
4177 }
4178 }
4179 }),
4180 i.ajaxSetup({
4181 accepts: {
4182 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
4183 },
4184 contents: {
4185 script: /\b(?:java|ecma)script\b/
4186 },
4187 converters: {
4188 "text script": function(n) {
4189 return i.globalEval(n),
4190 n
4191 }
4192 }
4193 }),
4194 i.ajaxPrefilter("script", function(n) {
4195 void 0 === n.cache && (n.cache = !1);
4196 n.crossDomain && (n.type = "GET",
4197 n.global = !1)
4198 }),
4199 i.ajaxTransport("script", function(n) {
4200 if (n.crossDomain) {
4201 var t, r = u.head || i("head")[0] || u.documentElement;
4202 return {
4203 send: function(i, f) {
4204 t = u.createElement("script");
4205 t.async = !0;
4206 n.scriptCharset && (t.charset = n.scriptCharset);
4207 t.src = n.url;
4208 t.onload = t.onreadystatechange = function(n, i) {
4209 (i || !t.readyState || /loaded|complete/.test(t.readyState)) && (t.onload = t.onreadystatechange = null,
4210 t.parentNode && t.parentNode.removeChild(t),
4211 t = null,
4212 i || f(200, "success"))
4213 }
4214 ;
4215 r.insertBefore(t, r.firstChild)
4216 },
4217 abort: function() {
4218 t && t.onload(void 0, !0)
4219 }
4220 }
4221 }
4222 }),
4223 er = [],
4224 ni = /(=)\?(?=&|$)|\?\?/,
4225 i.ajaxSetup({
4226 jsonp: "callback",
4227 jsonpCallback: function() {
4228 var n = er.pop() || i.expando + "_" + gi++;
4229 return this[n] = !0,
4230 n
4231 }
4232 }),
4233 i.ajaxPrefilter("json jsonp", function(t, r, u) {
4234 var f, e, o, s = t.jsonp !== !1 && (ni.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && ni.test(t.data) && "data");
4235 if (s || "jsonp" === t.dataTypes[0])
4236 return (f = t.jsonpCallback = i.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback,
4237 s ? t[s] = t[s].replace(ni, "$1" + f) : t.jsonp !== !1 && (t.url += (nr.test(t.url) ? "&" : "?") + t.jsonp + "=" + f),
4238 t.converters["script json"] = function() {
4239 return o || i.error(f + " was not called"),
4240 o[0]
4241 }
4242 ,
4243 t.dataTypes[0] = "json",
4244 e = n[f],
4245 n[f] = function() {
4246 o = arguments
4247 }
4248 ,
4249 u.always(function() {
4250 void 0 === e ? i(n).removeProp(f) : n[f] = e;
4251 t[f] && (t.jsonpCallback = r.jsonpCallback,
4252 er.push(f));
4253 o && i.isFunction(e) && e(o[0]);
4254 o = e = void 0
4255 }),
4256 "script")
4257 }),
4258 i.parseHTML = function(n, t, r) {
4259 if (!n || "string" != typeof n)
4260 return null;
4261 "boolean" == typeof t && (r = t,
4262 t = !1);
4263 t = t || u;
4264 var f = vr.exec(n)
4265 , e = !r && [];
4266 return f ? [t.createElement(f[1])] : (f = hu([n], t, e),
4267 e && e.length && i(e).remove(),
4268 i.merge([], f.childNodes))
4269 }
4270 ,
4271 or = i.fn.load,
4272 i.fn.load = function(n, t, r) {
4273 if ("string" != typeof n && or)
4274 return or.apply(this, arguments);
4275 var u, o, s, f = this, e = n.indexOf(" ");
4276 return e > -1 && (u = i.trim(n.slice(e, n.length)),
4277 n = n.slice(0, e)),
4278 i.isFunction(t) ? (r = t,
4279 t = void 0) : t && "object" == typeof t && (o = "POST"),
4280 f.length > 0 && i.ajax({
4281 url: n,
4282 type: o || "GET",
4283 dataType: "html",
4284 data: t
4285 }).done(function(n) {
4286 s = arguments;
4287 f.html(u ? i("<div>").append(i.parseHTML(n)).find(u) : n)
4288 }).always(r && function(n, t) {
4289 f.each(function() {
4290 r.apply(this, s || [n.responseText, t, n])
4291 })
4292 }
4293 ),
4294 this
4295 }
4296 ,
4297 i.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(n, t) {
4298 i.fn[t] = function(n) {
4299 return this.on(t, n)
4300 }
4301 }),
4302 i.expr.filters.animated = function(n) {
4303 return i.grep(i.timers, function(t) {
4304 return n === t.elem
4305 }).length
4306 }
4307 ,
4308 i.offset = {
4309 setOffset: function(n, t, r) {
4310 var e, o, s, h, u, c, v, l = i.css(n, "position"), a = i(n), f = {};
4311 "static" === l && (n.style.position = "relative");
4312 u = a.offset();
4313 s = i.css(n, "top");
4314 c = i.css(n, "left");
4315 v = ("absolute" === l || "fixed" === l) && i.inArray("auto", [s, c]) > -1;
4316 v ? (e = a.position(),
4317 h = e.top,
4318 o = e.left) : (h = parseFloat(s) || 0,
4319 o = parseFloat(c) || 0);
4320 i.isFunction(t) && (t = t.call(n, r, i.extend({}, u)));
4321 null != t.top && (f.top = t.top - u.top + h);
4322 null != t.left && (f.left = t.left - u.left + o);
4323 "using"in t ? t.using.call(n, f) : a.css(f)
4324 }
4325 },
4326 i.fn.extend({
4327 offset: function(n) {
4328 if (arguments.length)
4329 return void 0 === n ? this : this.each(function(t) {
4330 i.offset.setOffset(this, n, t)
4331 });
4332 var t, f, u = {
4333 top: 0,
4334 left: 0
4335 }, r = this[0], e = r && r.ownerDocument;
4336 if (e)
4337 return t = e.documentElement,
4338 i.contains(t, r) ? ("undefined" != typeof r.getBoundingClientRect && (u = r.getBoundingClientRect()),
4339 f = oe(e),
4340 {
4341 top: u.top + (f.pageYOffset || t.scrollTop) - (t.clientTop || 0),
4342 left: u.left + (f.pageXOffset || t.scrollLeft) - (t.clientLeft || 0)
4343 }) : u
4344 },
4345 position: function() {
4346 if (this[0]) {
4347 var n, r, t = {
4348 top: 0,
4349 left: 0
4350 }, u = this[0];
4351 return "fixed" === i.css(u, "position") ? r = u.getBoundingClientRect() : (n = this.offsetParent(),
4352 r = this.offset(),
4353 i.nodeName(n[0], "html") || (t = n.offset()),
4354 t.top += i.css(n[0], "borderTopWidth", !0),
4355 t.left += i.css(n[0], "borderLeftWidth", !0)),
4356 {
4357 top: r.top - t.top - i.css(u, "marginTop", !0),
4358 left: r.left - t.left - i.css(u, "marginLeft", !0)
4359 }
4360 }
4361 },
4362 offsetParent: function() {
4363 return this.map(function() {
4364 for (var n = this.offsetParent; n && !i.nodeName(n, "html") && "static" === i.css(n, "position"); )
4365 n = n.offsetParent;
4366 return n || nf
4367 })
4368 }
4369 }),
4370 i.each({
4371 scrollLeft: "pageXOffset",
4372 scrollTop: "pageYOffset"
4373 }, function(n, t) {
4374 var r = /Y/.test(t);
4375 i.fn[n] = function(u) {
4376 return y(this, function(n, u, f) {
4377 var e = oe(n);
4378 return void 0 === f ? e ? t in e ? e[t] : e.document.documentElement[u] : n[u] : void (e ? e.scrollTo(r ? i(e).scrollLeft() : f, r ? f : i(e).scrollTop()) : n[u] = f)
4379 }, n, u, arguments.length, null)
4380 }
4381 }),
4382 i.each(["top", "left"], function(n, t) {
4383 i.cssHooks[t] = bi(r.pixelPosition, function(n, r) {
4384 if (r)
4385 return (r = p(n, t),
4386 pt.test(r) ? i(n).position()[t] + "px" : r)
4387 })
4388 }),
4389 i.each({
4390 Height: "height",
4391 Width: "width"
4392 }, function(n, t) {
4393 i.each({
4394 padding: "inner" + n,
4395 content: t,
4396 "": "outer" + n
4397 }, function(r, u) {
4398 i.fn[u] = function(u, f) {
4399 var e = arguments.length && (r || "boolean" != typeof u)
4400 , o = r || (u === !0 || f === !0 ? "margin" : "border");
4401 return y(this, function(t, r, u) {
4402 var f;
4403 return i.isWindow(t) ? t.document.documentElement["client" + n] : 9 === t.nodeType ? (f = t.documentElement,
4404 Math.max(t.body["scroll" + n], f["scroll" + n], t.body["offset" + n], f["offset" + n], f["client" + n])) : void 0 === u ? i.css(t, r, o) : i.style(t, r, u, o)
4405 }, t, e ? u : void 0, e, null)
4406 }
4407 })
4408 }),
4409 i.fn.extend({
4410 bind: function(n, t, i) {
4411 return this.on(n, null, t, i)
4412 },
4413 unbind: function(n, t) {
4414 return this.off(n, null, t)
4415 },
4416 delegate: function(n, t, i, r) {
4417 return this.on(t, n, i, r)
4418 },
4419 undelegate: function(n, t, i) {
4420 return 1 === arguments.length ? this.off(n, "**") : this.off(t, n || "**", i)
4421 }
4422 }),
4423 i.fn.size = function() {
4424 return this.length
4425 }
4426 ,
4427 i.fn.andSelf = i.fn.addBack,
4428 "function" == typeof define && define.amd && define("jquery", [], function() {
4429 return i
4430 }),
4431 se = n.jQuery,
4432 he = n.$,
4433 i.noConflict = function(t) {
4434 return n.$ === i && (n.$ = he),
4435 t && n.jQuery === i && (n.jQuery = se),
4436 i
4437 }
4438 ,
4439 t || (n.jQuery = n.$ = i),
4440 i
4441});
4442!function(n) {
4443 "function" == typeof define && define.amd ? define(["jquery"], n) : "object" == typeof exports ? n(require("jquery")) : n(jQuery)
4444}(function(n) {
4445 function i(n) {
4446 return t.raw ? n : encodeURIComponent(n)
4447 }
4448 function u(n) {
4449 return t.raw ? n : decodeURIComponent(n)
4450 }
4451 function f(n) {
4452 return i(t.json ? JSON.stringify(n) : String(n))
4453 }
4454 function e(n) {
4455 0 === n.indexOf('"') && (n = n.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
4456 try {
4457 return n = decodeURIComponent(n.replace(o, " ")),
4458 t.json ? JSON.parse(n) : n
4459 } catch (i) {}
4460 }
4461 function r(i, r) {
4462 var u = t.raw ? i : e(i);
4463 return n.isFunction(r) ? r(u) : u
4464 }
4465 var o = /\+/g
4466 , t = n.cookie = function(e, o, s) {
4467 var v, c;
4468 if (void 0 !== o && !n.isFunction(o))
4469 return (s = n.extend({}, t.defaults, s),
4470 "number" == typeof s.expires) && (v = s.expires,
4471 c = s.expires = new Date,
4472 c.setTime(+c + 864e5 * v)),
4473 document.cookie = [i(e), "=", f(o), s.expires ? "; expires=" + s.expires.toUTCString() : "", s.path ? "; path=" + s.path : "", s.domain ? "; domain=" + s.domain : "", s.secure ? "; secure" : ""].join("");
4474 for (var l = e ? void 0 : {}, y = document.cookie ? document.cookie.split("; ") : [], a = 0, b = y.length; b > a; a++) {
4475 var p = y[a].split("=")
4476 , w = u(p.shift())
4477 , h = p.join("=");
4478 if (e && e === w) {
4479 l = r(h, o);
4480 break
4481 }
4482 e || void 0 === (h = r(h)) || (l[w] = h)
4483 }
4484 return l
4485 }
4486 ;
4487 t.defaults = {};
4488 n.removeCookie = function(t, i) {
4489 return void 0 === n.cookie(t) ? !1 : (n.cookie(t, "", n.extend({}, i, {
4490 expires: -1
4491 })),
4492 !n.cookie(t))
4493 }
4494}),
4495function(n, t, i, r) {
4496 var p = i("html")
4497 , e = i(n)
4498 , o = i(t)
4499 , u = i.fancybox = function() {
4500 u.open.apply(this, arguments)
4501 }
4502 , y = navigator.userAgent.match(/msie/i)
4503 , v = null
4504 , s = t.createTouch !== r
4505 , a = function(n) {
4506 return n && n.hasOwnProperty && n instanceof i
4507 }
4508 , c = function(n) {
4509 return n && "string" === i.type(n)
4510 }
4511 , l = function(n) {
4512 return c(n) && 0 < n.indexOf("%")
4513 }
4514 , f = function(n, t) {
4515 var i = parseInt(n, 10) || 0;
4516 return t && l(n) && (i *= u.getViewport()[t] / 100),
4517 Math.ceil(i)
4518 }
4519 , h = function(n, t) {
4520 return f(n, t) + "px"
4521 };
4522 i.extend(u, {
4523 version: "2.1.5",
4524 defaults: {
4525 padding: 15,
4526 margin: 20,
4527 width: 800,
4528 height: 600,
4529 minWidth: 100,
4530 minHeight: 100,
4531 maxWidth: 9999,
4532 maxHeight: 9999,
4533 pixelRatio: 1,
4534 autoSize: !0,
4535 autoHeight: !1,
4536 autoWidth: !1,
4537 autoResize: !0,
4538 autoCenter: !s,
4539 fitToView: !0,
4540 aspectRatio: !1,
4541 topRatio: .5,
4542 leftRatio: .5,
4543 scrolling: "auto",
4544 wrapCSS: "",
4545 arrows: !0,
4546 closeBtn: !0,
4547 closeClick: !1,
4548 nextClick: !1,
4549 mouseWheel: !0,
4550 autoPlay: !1,
4551 playSpeed: 3e3,
4552 preload: 3,
4553 modal: !1,
4554 loop: !0,
4555 ajax: {
4556 dataType: "html",
4557 headers: {
4558 "X-fancyBox": !0
4559 }
4560 },
4561 iframe: {
4562 scrolling: "auto",
4563 preload: !0
4564 },
4565 swf: {
4566 wmode: "transparent",
4567 allowfullscreen: "true",
4568 allowscriptaccess: "always"
4569 },
4570 keys: {
4571 next: {
4572 13: "left",
4573 34: "up",
4574 39: "left",
4575 40: "up"
4576 },
4577 prev: {
4578 8: "right",
4579 33: "down",
4580 37: "right",
4581 38: "down"
4582 },
4583 close: [27],
4584 play: [32],
4585 toggle: [70]
4586 },
4587 direction: {
4588 next: "left",
4589 prev: "right"
4590 },
4591 scrollOutside: !0,
4592 index: 0,
4593 type: null,
4594 href: null,
4595 content: null,
4596 title: null,
4597 tpl: {
4598 wrap: '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"><\/div><\/div><\/div><\/div>',
4599 image: '<img class="fancybox-image" src="{href}" alt="" />',
4600 iframe: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (y ? ' allowtransparency="true"' : "") + "><\/iframe>",
4601 error: '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.<\/p>',
4602 closeBtn: '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"><\/a>',
4603 next: '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span><\/span><\/a>',
4604 prev: '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span><\/span><\/a>'
4605 },
4606 openEffect: "fade",
4607 openSpeed: 250,
4608 openEasing: "swing",
4609 openOpacity: !0,
4610 openMethod: "zoomIn",
4611 closeEffect: "fade",
4612 closeSpeed: 250,
4613 closeEasing: "swing",
4614 closeOpacity: !0,
4615 closeMethod: "zoomOut",
4616 nextEffect: "elastic",
4617 nextSpeed: 250,
4618 nextEasing: "swing",
4619 nextMethod: "changeIn",
4620 prevEffect: "elastic",
4621 prevSpeed: 250,
4622 prevEasing: "swing",
4623 prevMethod: "changeOut",
4624 helpers: {
4625 overlay: !0,
4626 title: !0
4627 },
4628 onCancel: i.noop,
4629 beforeLoad: i.noop,
4630 afterLoad: i.noop,
4631 beforeShow: i.noop,
4632 afterShow: i.noop,
4633 beforeChange: i.noop,
4634 beforeClose: i.noop,
4635 afterClose: i.noop
4636 },
4637 group: {},
4638 opts: {},
4639 previous: null,
4640 coming: null,
4641 current: null,
4642 isActive: !1,
4643 isOpen: !1,
4644 isOpened: !1,
4645 wrap: null,
4646 skin: null,
4647 outer: null,
4648 inner: null,
4649 player: {
4650 timer: null,
4651 isActive: !1
4652 },
4653 ajaxLoad: null,
4654 imgPreload: null,
4655 transitions: {},
4656 helpers: {},
4657 open: function(n, t) {
4658 if (n && (i.isPlainObject(t) || (t = {}),
4659 !1 !== u.close(!0)))
4660 return i.isArray(n) || (n = a(n) ? i(n).get() : [n]),
4661 i.each(n, function(f, e) {
4662 var h = {}, s, y, l, o, v;
4663 "object" === i.type(e) && (e.nodeType && (e = i(e)),
4664 a(e) ? (h = {
4665 href: e.data("fancybox-href") || e.attr("href"),
4666 title: e.data("fancybox-title") || e.attr("title"),
4667 isDom: !0,
4668 element: e
4669 },
4670 i.metadata && i.extend(!0, h, e.metadata())) : h = e);
4671 s = t.href || h.href || (c(e) ? e : null);
4672 y = t.title !== r ? t.title : h.title || "";
4673 o = (l = t.content || h.content) ? "html" : t.type || h.type;
4674 !o && h.isDom && (o = e.data("fancybox-type"),
4675 o || (o = (o = e.prop("class").match(/fancybox\.(\w+)/)) ? o[1] : null));
4676 c(s) && (o || (u.isImage(s) ? o = "image" : u.isSWF(s) ? o = "swf" : "#" === s.charAt(0) ? o = "inline" : c(e) && (o = "html",
4677 l = e)),
4678 "ajax" === o && (v = s.split(/\s+/, 2),
4679 s = v.shift(),
4680 v = v.shift()));
4681 l || ("inline" === o ? s ? l = i(c(s) ? s.replace(/.*(?=#[^\s]+$)/, "") : s) : h.isDom && (l = e) : "html" === o ? l = s : !o && !s && h.isDom && (o = "inline",
4682 l = e));
4683 i.extend(h, {
4684 href: s,
4685 type: o,
4686 content: l,
4687 title: y,
4688 selector: v
4689 });
4690 n[f] = h
4691 }),
4692 u.opts = i.extend(!0, {}, u.defaults, t),
4693 t.keys !== r && (u.opts.keys = t.keys ? i.extend({}, u.defaults.keys, t.keys) : !1),
4694 u.group = n,
4695 u._start(u.opts.index)
4696 },
4697 cancel: function() {
4698 var n = u.coming;
4699 n && !1 !== u.trigger("onCancel") && (u.hideLoading(),
4700 u.ajaxLoad && u.ajaxLoad.abort(),
4701 u.ajaxLoad = null,
4702 u.imgPreload && (u.imgPreload.onload = u.imgPreload.onerror = null),
4703 n.wrap && n.wrap.stop(!0, !0).trigger("onReset").remove(),
4704 u.coming = null,
4705 u.current || u._afterZoomOut(n))
4706 },
4707 close: function(n) {
4708 u.cancel();
4709 !1 !== u.trigger("beforeClose") && (u.unbindEvents(),
4710 u.isActive && (!u.isOpen || !0 === n ? (i(".fancybox-wrap").stop(!0).trigger("onReset").remove(),
4711 u._afterZoomOut()) : (u.isOpen = u.isOpened = !1,
4712 u.isClosing = !0,
4713 i(".fancybox-item, .fancybox-nav").remove(),
4714 u.wrap.stop(!0, !0).removeClass("fancybox-opened"),
4715 u.transitions[u.current.closeMethod]())))
4716 },
4717 play: function(n) {
4718 var t = function() {
4719 clearTimeout(u.player.timer)
4720 }
4721 , i = function() {
4722 t();
4723 u.current && u.player.isActive && (u.player.timer = setTimeout(u.next, u.current.playSpeed))
4724 }
4725 , r = function() {
4726 t();
4727 o.unbind(".player");
4728 u.player.isActive = !1;
4729 u.trigger("onPlayEnd")
4730 };
4731 !0 !== n && (u.player.isActive || !1 === n) ? r() : u.current && (u.current.loop || u.current.index < u.group.length - 1) && (u.player.isActive = !0,
4732 o.bind({
4733 "onCancel.player beforeClose.player": r,
4734 "onUpdate.player": i,
4735 "beforeLoad.player": t
4736 }),
4737 i(),
4738 u.trigger("onPlayStart"))
4739 },
4740 next: function(n) {
4741 var t = u.current;
4742 t && (c(n) || (n = t.direction.next),
4743 u.jumpto(t.index + 1, n, "next"))
4744 },
4745 prev: function(n) {
4746 var t = u.current;
4747 t && (c(n) || (n = t.direction.prev),
4748 u.jumpto(t.index - 1, n, "prev"))
4749 },
4750 jumpto: function(n, t, i) {
4751 var e = u.current;
4752 e && (n = f(n),
4753 u.direction = t || e.direction[n >= e.index ? "next" : "prev"],
4754 u.router = i || "jumpto",
4755 e.loop && (0 > n && (n = e.group.length + n % e.group.length),
4756 n %= e.group.length),
4757 e.group[n] !== r && (u.cancel(),
4758 u._start(n)))
4759 },
4760 reposition: function(n, t) {
4761 var f = u.current, e = f ? f.wrap : null, r;
4762 e && (r = u._getPosition(t),
4763 n && "scroll" === n.type ? (delete r.position,
4764 e.stop(!0, !0).animate(r, 200)) : (e.css(r),
4765 f.pos = i.extend({}, f.dim, r)))
4766 },
4767 update: function(n) {
4768 var t = n && n.type
4769 , i = !t || "orientationchange" === t;
4770 i && (clearTimeout(v),
4771 v = null);
4772 u.isOpen && !v && (v = setTimeout(function() {
4773 var r = u.current;
4774 r && !u.isClosing && (u.wrap.removeClass("fancybox-tmp"),
4775 (i || "load" === t || "resize" === t && r.autoResize) && u._setDimension(),
4776 "scroll" === t && r.canShrink || u.reposition(n),
4777 u.trigger("onUpdate"),
4778 v = null)
4779 }, i && !s ? 0 : 300))
4780 },
4781 toggle: function(n) {
4782 u.isOpen && (u.current.fitToView = "boolean" === i.type(n) ? n : !u.current.fitToView,
4783 s && (u.wrap.removeAttr("style").addClass("fancybox-tmp"),
4784 u.trigger("onUpdate")),
4785 u.update())
4786 },
4787 hideLoading: function() {
4788 o.unbind(".loading");
4789 i("#fancybox-loading").remove()
4790 },
4791 showLoading: function() {
4792 var t, n;
4793 u.hideLoading();
4794 t = i('<div id="fancybox-loading"><div><\/div><\/div>').click(u.cancel).appendTo("body");
4795 o.bind("keydown.loading", function(n) {
4796 27 === (n.which || n.keyCode) && (n.preventDefault(),
4797 u.cancel())
4798 });
4799 u.defaults.fixed || (n = u.getViewport(),
4800 t.css({
4801 position: "absolute",
4802 top: .5 * n.h + n.y,
4803 left: .5 * n.w + n.x
4804 }))
4805 },
4806 getViewport: function() {
4807 var i = u.current && u.current.locked || !1
4808 , t = {
4809 x: e.scrollLeft(),
4810 y: e.scrollTop()
4811 };
4812 return i ? (t.w = i[0].clientWidth,
4813 t.h = i[0].clientHeight) : (t.w = s && n.innerWidth ? n.innerWidth : e.width(),
4814 t.h = s && n.innerHeight ? n.innerHeight : e.height()),
4815 t
4816 },
4817 unbindEvents: function() {
4818 u.wrap && a(u.wrap) && u.wrap.unbind(".fb");
4819 o.unbind(".fb");
4820 e.unbind(".fb")
4821 },
4822 bindEvents: function() {
4823 var n = u.current, t;
4824 n && (e.bind("orientationchange.fb" + (s ? "" : " resize.fb") + (n.autoCenter && !n.locked ? " scroll.fb" : ""), u.update),
4825 (t = n.keys) && o.bind("keydown.fb", function(f) {
4826 var e = f.which || f.keyCode
4827 , o = f.target || f.srcElement;
4828 if (27 === e && u.coming)
4829 return !1;
4830 f.ctrlKey || f.altKey || f.shiftKey || f.metaKey || o && (o.type || i(o).is("[contenteditable]")) || i.each(t, function(t, o) {
4831 return 1 < n.group.length && o[e] !== r ? (u[t](o[e]),
4832 f.preventDefault(),
4833 !1) : -1 < i.inArray(e, o) ? (u[t](),
4834 f.preventDefault(),
4835 !1) : void 0
4836 })
4837 }),
4838 i.fn.mousewheel && n.mouseWheel && u.wrap.bind("mousewheel.fb", function(t, r, f, e) {
4839 for (var o = i(t.target || null), s = !1; o.length && !s && !o.is(".fancybox-skin") && !o.is(".fancybox-wrap"); )
4840 s = o[0] && !(o[0].style.overflow && "visible" === o[0].style.overflow) && (o[0].clientWidth && o[0].scrollWidth > o[0].clientWidth || o[0].clientHeight && o[0].scrollHeight > o[0].clientHeight),
4841 o = i(o).parent();
4842 0 !== r && !s && 1 < u.group.length && !n.canShrink && (0 < e || 0 < f ? u.prev(0 < e ? "down" : "left") : (0 > e || 0 > f) && u.next(0 > e ? "up" : "right"),
4843 t.preventDefault())
4844 }))
4845 },
4846 trigger: function(n, t) {
4847 var f, r = t || u.coming || u.current;
4848 if (r) {
4849 if (i.isFunction(r[n]) && (f = r[n].apply(r, Array.prototype.slice.call(arguments, 1))),
4850 !1 === f)
4851 return !1;
4852 r.helpers && i.each(r.helpers, function(t, f) {
4853 f && u.helpers[t] && i.isFunction(u.helpers[t][n]) && u.helpers[t][n](i.extend(!0, {}, u.helpers[t].defaults, f), r)
4854 });
4855 o.trigger(n)
4856 }
4857 },
4858 isImage: function(n) {
4859 return c(n) && n.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)
4860 },
4861 isSWF: function(n) {
4862 return c(n) && n.match(/\.(swf)((\?|#).*)?$/i)
4863 },
4864 _start: function(n) {
4865 var t = {}, e, r;
4866 if (n = f(n),
4867 e = u.group[n] || null,
4868 !e)
4869 return !1;
4870 if (t = i.extend(!0, {}, u.opts, e),
4871 e = t.margin,
4872 r = t.padding,
4873 "number" === i.type(e) && (t.margin = [e, e, e, e]),
4874 "number" === i.type(r) && (t.padding = [r, r, r, r]),
4875 t.modal && i.extend(!0, t, {
4876 closeBtn: !1,
4877 closeClick: !1,
4878 nextClick: !1,
4879 arrows: !1,
4880 mouseWheel: !1,
4881 keys: null,
4882 helpers: {
4883 overlay: {
4884 closeClick: !1
4885 }
4886 }
4887 }),
4888 t.autoSize && (t.autoWidth = t.autoHeight = !0),
4889 "auto" === t.width && (t.autoWidth = !0),
4890 "auto" === t.height && (t.autoHeight = !0),
4891 t.group = u.group,
4892 t.index = n,
4893 u.coming = t,
4894 !1 === u.trigger("beforeLoad"))
4895 u.coming = null;
4896 else {
4897 if (r = t.type,
4898 e = t.href,
4899 !r)
4900 return u.coming = null,
4901 u.current && u.router && "jumpto" !== u.router ? (u.current.index = n,
4902 u[u.router](u.direction)) : !1;
4903 if (u.isActive = !0,
4904 ("image" === r || "swf" === r) && (t.autoHeight = t.autoWidth = !1,
4905 t.scrolling = "visible"),
4906 "image" === r && (t.aspectRatio = !0),
4907 "iframe" === r && s && (t.scrolling = "scroll"),
4908 t.wrap = i(t.tpl.wrap).addClass("fancybox-" + (s ? "mobile" : "desktop") + " fancybox-type-" + r + " fancybox-tmp " + t.wrapCSS).appendTo(t.parent || "body"),
4909 i.extend(t, {
4910 skin: i(".fancybox-skin", t.wrap),
4911 outer: i(".fancybox-outer", t.wrap),
4912 inner: i(".fancybox-inner", t.wrap)
4913 }),
4914 i.each(["Top", "Right", "Bottom", "Left"], function(n, i) {
4915 t.skin.css("padding" + i, h(t.padding[n]))
4916 }),
4917 u.trigger("onReady"),
4918 "inline" === r || "html" === r) {
4919 if (!t.content || !t.content.length)
4920 return u._error("content")
4921 } else if (!e)
4922 return u._error("href");
4923 "image" === r ? u._loadImage() : "ajax" === r ? u._loadAjax() : "iframe" === r ? u._loadIframe() : u._afterLoad()
4924 }
4925 },
4926 _error: function(n) {
4927 i.extend(u.coming, {
4928 type: "html",
4929 autoWidth: !0,
4930 autoHeight: !0,
4931 minWidth: 0,
4932 minHeight: 0,
4933 scrolling: "no",
4934 hasError: n,
4935 content: u.coming.tpl.error
4936 });
4937 u._afterLoad()
4938 },
4939 _loadImage: function() {
4940 var n = u.imgPreload = new Image;
4941 n.onload = function() {
4942 this.onload = this.onerror = null;
4943 u.coming.width = this.width / u.opts.pixelRatio;
4944 u.coming.height = this.height / u.opts.pixelRatio;
4945 u._afterLoad()
4946 }
4947 ;
4948 n.onerror = function() {
4949 this.onload = this.onerror = null;
4950 u._error("image")
4951 }
4952 ;
4953 n.src = u.coming.href;
4954 !0 !== n.complete && u.showLoading()
4955 },
4956 _loadAjax: function() {
4957 var n = u.coming;
4958 u.showLoading();
4959 u.ajaxLoad = i.ajax(i.extend({}, n.ajax, {
4960 url: n.href,
4961 error: function(n, t) {
4962 u.coming && "abort" !== t ? u._error("ajax", n) : u.hideLoading()
4963 },
4964 success: function(t, i) {
4965 "success" === i && (n.content = t,
4966 u._afterLoad())
4967 }
4968 }))
4969 },
4970 _loadIframe: function() {
4971 var n = u.coming
4972 , t = i(n.tpl.iframe.replace(/\{rnd\}/g, (new Date).getTime())).attr("scrolling", s ? "auto" : n.iframe.scrolling).attr("src", n.href);
4973 i(n.wrap).bind("onReset", function() {
4974 try {
4975 i(this).find("iframe").hide().attr("src", "//about:blank").end().empty()
4976 } catch (n) {}
4977 });
4978 n.iframe.preload && (u.showLoading(),
4979 t.one("load", function() {
4980 i(this).data("ready", 1);
4981 s || i(this).bind("load.fb", u.update);
4982 i(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();
4983 u._afterLoad()
4984 }));
4985 n.content = t.appendTo(n.inner);
4986 n.iframe.preload || u._afterLoad()
4987 },
4988 _preloadImages: function() {
4989 for (var r = u.group, i = u.current, f = r.length, e = i.preload ? Math.min(i.preload, f - 1) : 0, n, t = 1; t <= e; t += 1)
4990 n = r[(i.index + t) % f],
4991 "image" === n.type && n.href && ((new Image).src = n.href)
4992 },
4993 _afterLoad: function() {
4994 var n = u.coming, r = u.current, t, s, f, e, o;
4995 if (u.hideLoading(),
4996 n && !1 !== u.isActive)
4997 if (!1 === u.trigger("afterLoad", n, r))
4998 n.wrap.stop(!0).trigger("onReset").remove(),
4999 u.coming = null;
5000 else {
5001 r && (u.trigger("beforeChange", r),
5002 r.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());
5003 u.unbindEvents();
5004 t = n.content;
5005 s = n.type;
5006 f = n.scrolling;
5007 i.extend(u, {
5008 wrap: n.wrap,
5009 skin: n.skin,
5010 outer: n.outer,
5011 inner: n.inner,
5012 current: n,
5013 previous: r
5014 });
5015 e = n.href;
5016 switch (s) {
5017 case "inline":
5018 case "ajax":
5019 case "html":
5020 n.selector ? t = i("<div>").html(t).find(n.selector) : a(t) && (t.data("fancybox-placeholder") || t.data("fancybox-placeholder", i('<div class="fancybox-placeholder"><\/div>').insertAfter(t).hide()),
5021 t = t.show().detach(),
5022 n.wrap.bind("onReset", function() {
5023 i(this).find(t).length && t.hide().replaceAll(t.data("fancybox-placeholder")).data("fancybox-placeholder", !1)
5024 }));
5025 break;
5026 case "image":
5027 t = n.tpl.image.replace("{href}", e);
5028 break;
5029 case "swf":
5030 t = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + e + '"><\/param>';
5031 o = "";
5032 i.each(n.swf, function(n, i) {
5033 t += '<param name="' + n + '" value="' + i + '"><\/param>';
5034 o += " " + n + '="' + i + '"'
5035 });
5036 t += '<embed src="' + e + '" type="application/x-shockwave-flash" width="100%" height="100%"' + o + "><\/embed><\/object>"
5037 }
5038 a(t) && t.parent().is(n.inner) || n.inner.append(t);
5039 u.trigger("beforeShow");
5040 n.inner.css("overflow", "yes" === f ? "scroll" : "no" === f ? "visible" : f);
5041 u._setDimension();
5042 u.reposition();
5043 u.isOpen = !1;
5044 u.coming = null;
5045 u.bindEvents();
5046 u.isOpened ? r.prevMethod && u.transitions[r.prevMethod]() : i(".fancybox-wrap").not(n.wrap).stop(!0).trigger("onReset").remove();
5047 u.transitions[u.isOpened ? n.nextMethod : n.openMethod]();
5048 u._preloadImages()
5049 }
5050 },
5051 _setDimension: function() {
5052 var o = u.getViewport(), st = 0, s = !1, n = !1, s = u.wrap, nt = u.skin, e = u.inner, r = u.current, n = r.width, t = r.height, c = r.minWidth, a = r.minHeight, v = r.maxWidth, y = r.maxHeight, ht = r.scrolling, ft = r.scrollOutside ? r.scrollbarWidth : 0, p = r.margin, w = f(p[1] + p[3]), tt = f(p[0] + p[2]), et, b, rt, d, k, it, ot, g, ut;
5053 if (s.add(nt).add(e).width("auto").height("auto").removeClass("fancybox-tmp"),
5054 p = f(nt.outerWidth(!0) - nt.width()),
5055 et = f(nt.outerHeight(!0) - nt.height()),
5056 b = w + p,
5057 rt = tt + et,
5058 d = l(n) ? (o.w - b) * f(n) / 100 : n,
5059 k = l(t) ? (o.h - rt) * f(t) / 100 : t,
5060 "iframe" === r.type) {
5061 if (ut = r.content,
5062 r.autoHeight && 1 === ut.data("ready"))
5063 try {
5064 ut[0].contentWindow.document.location && (e.width(d).height(9999),
5065 it = ut.contents().find("body"),
5066 ft && it.css("overflow-x", "visible"),
5067 k = it.outerHeight(!0))
5068 } catch (ct) {}
5069 } else
5070 (r.autoWidth || r.autoHeight) && (e.addClass("fancybox-tmp"),
5071 r.autoWidth || e.width(d),
5072 r.autoHeight || e.height(k),
5073 r.autoWidth && (d = e.width()),
5074 r.autoHeight && (k = e.height()),
5075 e.removeClass("fancybox-tmp"));
5076 if (n = f(d),
5077 t = f(k),
5078 g = d / k,
5079 c = f(l(c) ? f(c, "w") - b : c),
5080 v = f(l(v) ? f(v, "w") - b : v),
5081 a = f(l(a) ? f(a, "h") - rt : a),
5082 y = f(l(y) ? f(y, "h") - rt : y),
5083 it = v,
5084 ot = y,
5085 r.fitToView && (v = Math.min(o.w - b, v),
5086 y = Math.min(o.h - rt, y)),
5087 b = o.w - w,
5088 tt = o.h - tt,
5089 r.aspectRatio ? (n > v && (n = v,
5090 t = f(n / g)),
5091 t > y && (t = y,
5092 n = f(t * g)),
5093 n < c && (n = c,
5094 t = f(n / g)),
5095 t < a && (t = a,
5096 n = f(t * g))) : (n = Math.max(c, Math.min(n, v)),
5097 r.autoHeight && "iframe" !== r.type && (e.width(n),
5098 t = e.height()),
5099 t = Math.max(a, Math.min(t, y))),
5100 r.fitToView)
5101 if (e.width(n).height(t),
5102 s.width(n + p),
5103 o = s.width(),
5104 w = s.height(),
5105 r.aspectRatio)
5106 for (; (o > b || w > tt) && n > c && t > a && !(19 < st++); )
5107 t = Math.max(a, Math.min(y, t - 10)),
5108 n = f(t * g),
5109 n < c && (n = c,
5110 t = f(n / g)),
5111 n > v && (n = v,
5112 t = f(n / g)),
5113 e.width(n).height(t),
5114 s.width(n + p),
5115 o = s.width(),
5116 w = s.height();
5117 else
5118 n = Math.max(c, Math.min(n, n - (o - b))),
5119 t = Math.max(a, Math.min(t, t - (w - tt)));
5120 ft && "auto" === ht && t < k && n + p + ft < b && (n += ft);
5121 e.width(n).height(t);
5122 s.width(n + p);
5123 o = s.width();
5124 w = s.height();
5125 s = (o > b || w > tt) && n > c && t > a;
5126 n = r.aspectRatio ? n < it && t < ot && n < d && t < k : (n < it || t < ot) && (n < d || t < k);
5127 i.extend(r, {
5128 dim: {
5129 width: h(o),
5130 height: h(w)
5131 },
5132 origWidth: d,
5133 origHeight: k,
5134 canShrink: s,
5135 canExpand: n,
5136 wPadding: p,
5137 hPadding: et,
5138 wrapSpace: w - nt.outerHeight(!0),
5139 skinSpace: nt.height() - t
5140 });
5141 !ut && r.autoHeight && t > a && t < y && !n && e.height("auto")
5142 },
5143 _getPosition: function(n) {
5144 var i = u.current
5145 , r = u.getViewport()
5146 , t = i.margin
5147 , f = u.wrap.width() + t[1] + t[3]
5148 , e = u.wrap.height() + t[0] + t[2]
5149 , t = {
5150 position: "absolute",
5151 top: t[0],
5152 left: t[3]
5153 };
5154 return i.autoCenter && i.fixed && !n && e <= r.h && f <= r.w ? t.position = "fixed" : i.locked || (t.top += r.y,
5155 t.left += r.x),
5156 t.top = h(Math.max(t.top, t.top + (r.h - e) * i.topRatio)),
5157 t.left = h(Math.max(t.left, t.left + (r.w - f) * i.leftRatio)),
5158 t
5159 },
5160 _afterZoomIn: function() {
5161 var n = u.current;
5162 n && (u.isOpen = u.isOpened = !0,
5163 u.wrap.css("overflow", "visible").addClass("fancybox-opened"),
5164 u.update(),
5165 (n.closeClick || n.nextClick && 1 < u.group.length) && u.inner.css("cursor", "pointer").bind("click.fb", function(t) {
5166 i(t.target).is("a") || i(t.target).parent().is("a") || (t.preventDefault(),
5167 u[n.closeClick ? "close" : "next"]())
5168 }),
5169 n.closeBtn && i(n.tpl.closeBtn).appendTo(u.skin).bind("click.fb", function(n) {
5170 n.preventDefault();
5171 u.close()
5172 }),
5173 n.arrows && 1 < u.group.length && ((n.loop || 0 < n.index) && i(n.tpl.prev).appendTo(u.outer).bind("click.fb", u.prev),
5174 (n.loop || n.index < u.group.length - 1) && i(n.tpl.next).appendTo(u.outer).bind("click.fb", u.next)),
5175 u.trigger("afterShow"),
5176 !n.loop && n.index === n.group.length - 1 ? u.play(!1) : u.opts.autoPlay && !u.player.isActive && (u.opts.autoPlay = !1,
5177 u.play()))
5178 },
5179 _afterZoomOut: function(n) {
5180 n = n || u.current;
5181 i(".fancybox-wrap").trigger("onReset").remove();
5182 i.extend(u, {
5183 group: {},
5184 opts: {},
5185 router: !1,
5186 current: null,
5187 isActive: !1,
5188 isOpened: !1,
5189 isOpen: !1,
5190 isClosing: !1,
5191 wrap: null,
5192 skin: null,
5193 outer: null,
5194 inner: null
5195 });
5196 u.trigger("afterClose", n)
5197 }
5198 });
5199 u.transitions = {
5200 getOrigPosition: function() {
5201 var n = u.current
5202 , f = n.element
5203 , t = n.orig
5204 , i = {}
5205 , e = 50
5206 , o = 50
5207 , s = n.hPadding
5208 , c = n.wPadding
5209 , r = u.getViewport();
5210 return !t && n.isDom && f.is(":visible") && (t = f.find("img:first"),
5211 t.length || (t = f)),
5212 a(t) ? (i = t.offset(),
5213 t.is("img") && (e = t.outerWidth(),
5214 o = t.outerHeight())) : (i.top = r.y + (r.h - o) * n.topRatio,
5215 i.left = r.x + (r.w - e) * n.leftRatio),
5216 ("fixed" === u.wrap.css("position") || n.locked) && (i.top -= r.y,
5217 i.left -= r.x),
5218 {
5219 top: h(i.top - s * n.topRatio),
5220 left: h(i.left - c * n.leftRatio),
5221 width: h(e + c),
5222 height: h(o + s)
5223 }
5224 },
5225 step: function(n, t) {
5226 var e, i, r = t.prop, o, s;
5227 i = u.current;
5228 o = i.wrapSpace;
5229 s = i.skinSpace;
5230 ("width" === r || "height" === r) && (e = t.end === t.start ? 1 : (n - t.start) / (t.end - t.start),
5231 u.isClosing && (e = 1 - e),
5232 i = "width" === r ? i.wPadding : i.hPadding,
5233 i = n - i,
5234 u.skin[r](f("width" === r ? i : i - o * e)),
5235 u.inner[r](f("width" === r ? i : i - o * e - s * e)))
5236 },
5237 zoomIn: function() {
5238 var n = u.current
5239 , t = n.pos
5240 , r = n.openEffect
5241 , f = "elastic" === r
5242 , e = i.extend({
5243 opacity: 1
5244 }, t);
5245 delete e.position;
5246 f ? (t = this.getOrigPosition(),
5247 n.openOpacity && (t.opacity = .1)) : "fade" === r && (t.opacity = .1);
5248 u.wrap.css(t).animate(e, {
5249 duration: "block" === r ? 0 : n.openSpeed,
5250 easing: n.openEasing,
5251 step: f ? this.step : null,
5252 complete: u._afterZoomIn
5253 })
5254 },
5255 zoomOut: function() {
5256 var n = u.current
5257 , i = n.closeEffect
5258 , r = "elastic" === i
5259 , t = {
5260 opacity: .1
5261 };
5262 r && (t = this.getOrigPosition(),
5263 n.closeOpacity && (t.opacity = .1));
5264 u.wrap.animate(t, {
5265 duration: "block" === i ? 0 : n.closeSpeed,
5266 easing: n.closeEasing,
5267 step: r ? this.step : null,
5268 complete: u._afterZoomOut
5269 })
5270 },
5271 changeIn: function() {
5272 var i = u.current, o = i.nextEffect, t = i.pos, e = {
5273 opacity: 1
5274 }, r = u.direction, n;
5275 t.opacity = .1;
5276 "elastic" === o && (n = "down" === r || "up" === r ? "top" : "left",
5277 "down" === r || "right" === r ? (t[n] = h(f(t[n]) - 200),
5278 e[n] = "+=200px") : (t[n] = h(f(t[n]) + 200),
5279 e[n] = "-=200px"));
5280 "block" === o ? u._afterZoomIn() : u.wrap.css(t).animate(e, {
5281 duration: i.nextSpeed,
5282 easing: i.nextEasing,
5283 complete: u._afterZoomIn
5284 })
5285 },
5286 changeOut: function() {
5287 var n = u.previous
5288 , r = n.prevEffect
5289 , f = {
5290 opacity: .1
5291 }
5292 , t = u.direction;
5293 "elastic" === r && (f["down" === t || "up" === t ? "top" : "left"] = ("up" === t || "left" === t ? "-" : "+") + "=200px");
5294 n.wrap.animate(f, {
5295 duration: "block" === r ? 0 : n.prevSpeed,
5296 easing: n.prevEasing,
5297 complete: function() {
5298 i(this).trigger("onReset").remove()
5299 }
5300 })
5301 }
5302 };
5303 u.helpers.overlay = {
5304 defaults: {
5305 closeClick: !0,
5306 speedOut: 200,
5307 showEarly: !0,
5308 css: {},
5309 locked: !s,
5310 fixed: !0
5311 },
5312 overlay: null,
5313 fixed: !1,
5314 el: i("html"),
5315 create: function(n) {
5316 n = i.extend({}, this.defaults, n);
5317 this.overlay && this.close();
5318 this.overlay = i('<div class="fancybox-overlay"><\/div>').appendTo(u.coming ? u.coming.parent : n.parent);
5319 this.fixed = !1;
5320 n.fixed && u.defaults.fixed && (this.overlay.addClass("fancybox-overlay-fixed"),
5321 this.fixed = !0)
5322 },
5323 open: function(n) {
5324 var t = this;
5325 n = i.extend({}, this.defaults, n);
5326 this.overlay ? this.overlay.unbind(".overlay").width("auto").height("auto") : this.create(n);
5327 this.fixed || (e.bind("resize.overlay", i.proxy(this.update, this)),
5328 this.update());
5329 n.closeClick && this.overlay.bind("click.overlay", function(n) {
5330 if (i(n.target).hasClass("fancybox-overlay"))
5331 return u.isActive ? u.close() : t.close(),
5332 !1
5333 });
5334 this.overlay.css(n.css).show()
5335 },
5336 close: function() {
5337 var n, t;
5338 e.unbind("resize.overlay");
5339 this.el.hasClass("fancybox-lock") && (i(".fancybox-margin").removeClass("fancybox-margin"),
5340 n = e.scrollTop(),
5341 t = e.scrollLeft(),
5342 this.el.removeClass("fancybox-lock"),
5343 e.scrollTop(n).scrollLeft(t));
5344 i(".fancybox-overlay").remove().hide();
5345 i.extend(this, {
5346 overlay: null,
5347 fixed: !1
5348 })
5349 },
5350 update: function() {
5351 var n = "100%", i;
5352 this.overlay.width(n).height("100%");
5353 y ? (i = Math.max(t.documentElement.offsetWidth, t.body.offsetWidth),
5354 o.width() > i && (n = o.width())) : o.width() > e.width() && (n = o.width());
5355 this.overlay.width(n).height(o.height())
5356 },
5357 onReady: function(n, t) {
5358 var r = this.overlay;
5359 i(".fancybox-overlay").stop(!0, !0);
5360 r || this.create(n);
5361 n.locked && this.fixed && t.fixed && (r || (this.margin = o.height() > e.height() ? i("html").css("margin-right").replace("px", "") : !1),
5362 t.locked = this.overlay.append(t.wrap),
5363 t.fixed = !1);
5364 !0 === n.showEarly && this.beforeShow.apply(this, arguments)
5365 },
5366 beforeShow: function(n, t) {
5367 var r, u;
5368 t.locked && (!1 !== this.margin && (i("*").filter(function() {
5369 return "fixed" === i(this).css("position") && !i(this).hasClass("fancybox-overlay") && !i(this).hasClass("fancybox-wrap")
5370 }).addClass("fancybox-margin"),
5371 this.el.addClass("fancybox-margin")),
5372 r = e.scrollTop(),
5373 u = e.scrollLeft(),
5374 this.el.addClass("fancybox-lock"),
5375 e.scrollTop(r).scrollLeft(u));
5376 this.open(n)
5377 },
5378 onUpdate: function() {
5379 this.fixed || this.update()
5380 },
5381 afterClose: function(n) {
5382 this.overlay && !u.coming && this.overlay.fadeOut(n.speedOut, i.proxy(this.close, this))
5383 }
5384 };
5385 u.helpers.title = {
5386 defaults: {
5387 type: "float",
5388 position: "bottom"
5389 },
5390 beforeShow: function(n) {
5391 var t = u.current
5392 , e = t.title
5393 , r = n.type;
5394 if (i.isFunction(e) && (e = e.call(t.element, t)),
5395 c(e) && "" !== i.trim(e)) {
5396 t = i('<div class="fancybox-title fancybox-title-' + r + '-wrap">' + e + "<\/div>");
5397 switch (r) {
5398 case "inside":
5399 r = u.skin;
5400 break;
5401 case "outside":
5402 r = u.wrap;
5403 break;
5404 case "over":
5405 r = u.inner;
5406 break;
5407 default:
5408 r = u.skin;
5409 t.appendTo("body");
5410 y && t.width(t.width());
5411 t.wrapInner('<span class="child"><\/span>');
5412 u.current.margin[2] += Math.abs(f(t.css("margin-bottom")))
5413 }
5414 t["top" === n.position ? "prependTo" : "appendTo"](r)
5415 }
5416 }
5417 };
5418 i.fn.fancybox = function(n) {
5419 var r, f = i(this), t = this.selector || "", e = function(e) {
5420 var o = i(this).blur(), c = r, h, s;
5421 e.ctrlKey || e.altKey || e.shiftKey || e.metaKey || o.is(".fancybox-wrap") || (h = n.groupAttr || "data-fancybox-group",
5422 s = o.attr(h),
5423 s || (h = "rel",
5424 s = o.get(0)[h]),
5425 s && "" !== s && "nofollow" !== s && (o = t.length ? i(t) : f,
5426 o = o.filter("[" + h + '="' + s + '"]'),
5427 c = o.index(this)),
5428 n.index = c,
5429 !1 !== u.open(o, n) && e.preventDefault())
5430 };
5431 return n = n || {},
5432 r = n.index || 0,
5433 !t || !1 === n.live ? f.unbind("click.fb-start").bind("click.fb-start", e) : o.undelegate(t, "click.fb-start").delegate(t + ":not('.fancybox-item, .fancybox-nav')", "click.fb-start", e),
5434 this.filter("[data-fancybox-start=1]").trigger("click"),
5435 this
5436 }
5437 ;
5438 o.ready(function() {
5439 var f, t, e;
5440 i.scrollbarWidth === r && (i.scrollbarWidth = function() {
5441 var t = i('<div style="width:50px;height:50px;overflow:auto"><div/><\/div>').appendTo("body")
5442 , n = t.children()
5443 , n = n.innerWidth() - n.height(99).innerWidth();
5444 return t.remove(),
5445 n
5446 }
5447 );
5448 i.support.fixedPosition === r && (f = i.support,
5449 t = i('<div style="position:fixed;top:20px;"><\/div>').appendTo("body"),
5450 e = 20 === t[0].offsetTop || 15 === t[0].offsetTop,
5451 t.remove(),
5452 f.fixedPosition = e);
5453 i.extend(u.defaults, {
5454 scrollbarWidth: i.scrollbarWidth(),
5455 fixed: i.support.fixedPosition,
5456 parent: i("body")
5457 });
5458 f = i(n).width();
5459 p.addClass("fancybox-lock-test");
5460 t = i(n).width();
5461 p.removeClass("fancybox-lock-test");
5462 i("<style type='text/css'>.fancybox-margin{margin-right:" + (t - f) + "px;}<\/style>").appendTo("head")
5463 })
5464}(window, document, jQuery),
5465function(n) {
5466 n.fn.qrcode = function(t) {
5467 function c(n) {
5468 this.mode = s;
5469 this.data = n
5470 }
5471 function f(n, t) {
5472 this.typeNumber = n;
5473 this.errorCorrectLevel = t;
5474 this.modules = null;
5475 this.moduleCount = 0;
5476 this.dataCache = null;
5477 this.dataList = []
5478 }
5479 function o(n, t) {
5480 var i, r;
5481 if (void 0 == n.length)
5482 throw Error(n.length + "/" + t);
5483 for (i = 0; i < n.length && 0 == n[i]; )
5484 i++;
5485 for (this.num = Array(n.length - i + t),
5486 r = 0; r < n.length - i; r++)
5487 this.num[r] = n[r + i]
5488 }
5489 function e(n, t) {
5490 this.totalCount = n;
5491 this.dataCount = t
5492 }
5493 function h() {
5494 this.buffer = [];
5495 this.length = 0
5496 }
5497 var s;
5498 c.prototype = {
5499 getLength: function() {
5500 return this.data.length
5501 },
5502 write: function(n) {
5503 for (var t = 0; t < this.data.length; t++)
5504 n.put(this.data.charCodeAt(t), 8)
5505 }
5506 };
5507 f.prototype = {
5508 addData: function(n) {
5509 this.dataList.push(new c(n));
5510 this.dataCache = null
5511 },
5512 isDark: function(n, t) {
5513 if (0 > n || this.moduleCount <= n || 0 > t || this.moduleCount <= t)
5514 throw Error(n + "," + t);
5515 return this.modules[n][t]
5516 },
5517 getModuleCount: function() {
5518 return this.moduleCount
5519 },
5520 make: function() {
5521 var n;
5522 if (1 > this.typeNumber) {
5523 for (n = 1,
5524 n = 1; 40 > n; n++) {
5525 for (var t = e.getRSBlocks(n, this.errorCorrectLevel), u = new h, f = 0, r = 0; r < t.length; r++)
5526 f += t[r].dataCount;
5527 for (r = 0; r < this.dataList.length; r++)
5528 t = this.dataList[r],
5529 u.put(t.mode, 4),
5530 u.put(t.getLength(), i.getLengthInBits(t.mode, n)),
5531 t.write(u);
5532 if (u.getLengthInBits() <= 8 * f)
5533 break
5534 }
5535 this.typeNumber = n
5536 }
5537 this.makeImpl(!1, this.getBestMaskPattern())
5538 },
5539 makeImpl: function(n, t) {
5540 var i, r;
5541 for (this.moduleCount = 4 * this.typeNumber + 17,
5542 this.modules = Array(this.moduleCount),
5543 i = 0; i < this.moduleCount; i++)
5544 for (this.modules[i] = Array(this.moduleCount),
5545 r = 0; r < this.moduleCount; r++)
5546 this.modules[i][r] = null;
5547 this.setupPositionProbePattern(0, 0);
5548 this.setupPositionProbePattern(this.moduleCount - 7, 0);
5549 this.setupPositionProbePattern(0, this.moduleCount - 7);
5550 this.setupPositionAdjustPattern();
5551 this.setupTimingPattern();
5552 this.setupTypeInfo(n, t);
5553 7 <= this.typeNumber && this.setupTypeNumber(n);
5554 null == this.dataCache && (this.dataCache = f.createData(this.typeNumber, this.errorCorrectLevel, this.dataList));
5555 this.mapData(this.dataCache, t)
5556 },
5557 setupPositionProbePattern: function(n, t) {
5558 for (var r, i = -1; 7 >= i; i++)
5559 if (!(-1 >= n + i || this.moduleCount <= n + i))
5560 for (r = -1; 7 >= r; r++)
5561 -1 >= t + r || this.moduleCount <= t + r || (this.modules[n + i][t + r] = 0 <= i && 6 >= i && (0 == r || 6 == r) || 0 <= r && 6 >= r && (0 == i || 6 == i) || 2 <= i && 4 >= i && 2 <= r && 4 >= r ? !0 : !1)
5562 },
5563 getBestMaskPattern: function() {
5564 for (var t, r = 0, u = 0, n = 0; 8 > n; n++)
5565 this.makeImpl(!0, n),
5566 t = i.getLostPoint(this),
5567 (0 == n || r > t) && (r = t,
5568 u = n);
5569 return u
5570 },
5571 createMovieClip: function(n, t, i) {
5572 var i, r, u;
5573 for (n = n.createEmptyMovieClip(t, i),
5574 this.make(),
5575 t = 0; t < this.modules.length; t++)
5576 for (i = 1 * t,
5577 r = 0; r < this.modules[t].length; r++)
5578 u = 1 * r,
5579 this.modules[t][r] && (n.beginFill(0, 100),
5580 n.moveTo(u, i),
5581 n.lineTo(u + 1, i),
5582 n.lineTo(u + 1, i + 1),
5583 n.lineTo(u, i + 1),
5584 n.endFill());
5585 return n
5586 },
5587 setupTimingPattern: function() {
5588 for (var n = 8; n < this.moduleCount - 8; n++)
5589 null == this.modules[n][6] && (this.modules[n][6] = 0 == n % 2);
5590 for (n = 8; n < this.moduleCount - 8; n++)
5591 null == this.modules[6][n] && (this.modules[6][n] = 0 == n % 2)
5592 },
5593 setupPositionAdjustPattern: function() {
5594 for (var f, e, o, n, t, r = i.getPatternPosition(this.typeNumber), u = 0; u < r.length; u++)
5595 for (f = 0; f < r.length; f++)
5596 if (e = r[u],
5597 o = r[f],
5598 null == this.modules[e][o])
5599 for (n = -2; 2 >= n; n++)
5600 for (t = -2; 2 >= t; t++)
5601 this.modules[e + n][o + t] = -2 == n || 2 == n || -2 == t || 2 == t || 0 == n && 0 == t ? !0 : !1
5602 },
5603 setupTypeNumber: function(n) {
5604 for (var r, u = i.getBCHTypeNumber(this.typeNumber), t = 0; 18 > t; t++)
5605 r = !n && 1 == (u >> t & 1),
5606 this.modules[Math.floor(t / 3)][t % 3 + this.moduleCount - 11] = r;
5607 for (t = 0; 18 > t; t++)
5608 r = !n && 1 == (u >> t & 1),
5609 this.modules[t % 3 + this.moduleCount - 11][Math.floor(t / 3)] = r
5610 },
5611 setupTypeInfo: function(n, t) {
5612 for (var u, f = i.getBCHTypeInfo(this.errorCorrectLevel << 3 | t), r = 0; 15 > r; r++)
5613 u = !n && 1 == (f >> r & 1),
5614 6 > r ? this.modules[r][8] = u : 8 > r ? this.modules[r + 1][8] = u : this.modules[this.moduleCount - 15 + r][8] = u;
5615 for (r = 0; 15 > r; r++)
5616 u = !n && 1 == (f >> r & 1),
5617 8 > r ? this.modules[8][this.moduleCount - r - 1] = u : 9 > r ? this.modules[8][15 - r] = u : this.modules[8][14 - r] = u;
5618 this.modules[this.moduleCount - 8][8] = !n
5619 },
5620 mapData: function(n, t) {
5621 for (var f, e, o = -1, r = this.moduleCount - 1, s = 7, h = 0, u = this.moduleCount - 1; 0 < u; u -= 2)
5622 for (6 == u && u--; ; ) {
5623 for (f = 0; 2 > f; f++)
5624 null == this.modules[r][u - f] && (e = !1,
5625 h < n.length && (e = 1 == (n[h] >>> s & 1)),
5626 i.getMask(t, r, u - f) && (e = !e),
5627 this.modules[r][u - f] = e,
5628 s--,
5629 -1 == s && (h++,
5630 s = 7));
5631 if (r += o,
5632 0 > r || this.moduleCount <= r) {
5633 r -= o;
5634 o = -o;
5635 break
5636 }
5637 }
5638 }
5639 };
5640 f.PAD0 = 236;
5641 f.PAD1 = 17;
5642 f.createData = function(n, t, r) {
5643 for (var s, t = e.getRSBlocks(n, t), u = new h, o = 0; o < r.length; o++)
5644 s = r[o],
5645 u.put(s.mode, 4),
5646 u.put(s.getLength(), i.getLengthInBits(s.mode, n)),
5647 s.write(u);
5648 for (o = n = 0; o < t.length; o++)
5649 n += t[o].dataCount;
5650 if (u.getLengthInBits() > 8 * n)
5651 throw Error("code length overflow. (" + u.getLengthInBits() + ">" + 8 * n + ")");
5652 for (u.getLengthInBits() + 4 <= 8 * n && u.put(0, 4); 0 != u.getLengthInBits() % 8; )
5653 u.putBit(!1);
5654 for (; !(u.getLengthInBits() >= 8 * n); ) {
5655 if (u.put(f.PAD0, 8),
5656 u.getLengthInBits() >= 8 * n)
5657 break;
5658 u.put(f.PAD1, 8)
5659 }
5660 return f.createBytes(u, t)
5661 }
5662 ;
5663 f.createBytes = function(n, t) {
5664 for (var r, e = 0, l = 0, a = 0, s = Array(t.length), h = Array(t.length), u = 0; u < t.length; u++) {
5665 var f = t[u].dataCount
5666 , c = t[u].totalCount - f
5667 , l = Math.max(l, f)
5668 , a = Math.max(a, c);
5669 for (s[u] = Array(f),
5670 r = 0; r < s[u].length; r++)
5671 s[u][r] = 255 & n.buffer[r + e];
5672 for (e += f,
5673 r = i.getErrorCorrectPolynomial(c),
5674 f = new o(s[u],r.getLength() - 1).mod(r),
5675 h[u] = Array(r.getLength() - 1),
5676 r = 0; r < h[u].length; r++)
5677 c = r + f.getLength() - h[u].length,
5678 h[u][r] = 0 <= c ? f.get(c) : 0
5679 }
5680 for (r = u = 0; r < t.length; r++)
5681 u += t[r].totalCount;
5682 for (e = Array(u),
5683 r = f = 0; r < l; r++)
5684 for (u = 0; u < t.length; u++)
5685 r < s[u].length && (e[f++] = s[u][r]);
5686 for (r = 0; r < a; r++)
5687 for (u = 0; u < t.length; u++)
5688 r < h[u].length && (e[f++] = h[u][r]);
5689 return e
5690 }
5691 ;
5692 s = 4;
5693 for (var i = {
5694 PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
5695 G15: 1335,
5696 G18: 7973,
5697 G15_MASK: 21522,
5698 getBCHTypeInfo: function(n) {
5699 for (var t = n << 10; 0 <= i.getBCHDigit(t) - i.getBCHDigit(i.G15); )
5700 t ^= i.G15 << i.getBCHDigit(t) - i.getBCHDigit(i.G15);
5701 return (n << 10 | t) ^ i.G15_MASK
5702 },
5703 getBCHTypeNumber: function(n) {
5704 for (var t = n << 12; 0 <= i.getBCHDigit(t) - i.getBCHDigit(i.G18); )
5705 t ^= i.G18 << i.getBCHDigit(t) - i.getBCHDigit(i.G18);
5706 return n << 12 | t
5707 },
5708 getBCHDigit: function(n) {
5709 for (var t = 0; 0 != n; )
5710 t++,
5711 n >>>= 1;
5712 return t
5713 },
5714 getPatternPosition: function(n) {
5715 return i.PATTERN_POSITION_TABLE[n - 1]
5716 },
5717 getMask: function(n, t, i) {
5718 switch (n) {
5719 case 0:
5720 return 0 == (t + i) % 2;
5721 case 1:
5722 return 0 == t % 2;
5723 case 2:
5724 return 0 == i % 3;
5725 case 3:
5726 return 0 == (t + i) % 3;
5727 case 4:
5728 return 0 == (Math.floor(t / 2) + Math.floor(i / 3)) % 2;
5729 case 5:
5730 return 0 == t * i % 2 + t * i % 3;
5731 case 6:
5732 return 0 == (t * i % 2 + t * i % 3) % 2;
5733 case 7:
5734 return 0 == (t * i % 3 + (t + i) % 2) % 2;
5735 default:
5736 throw Error("bad maskPattern:" + n);
5737 }
5738 },
5739 getErrorCorrectPolynomial: function(n) {
5740 for (var t = new o([1],0), i = 0; i < n; i++)
5741 t = t.multiply(new o([1, r.gexp(i)],0));
5742 return t
5743 },
5744 getLengthInBits: function(n, t) {
5745 if (1 <= t && 10 > t)
5746 switch (n) {
5747 case 1:
5748 return 10;
5749 case 2:
5750 return 9;
5751 case s:
5752 return 8;
5753 case 8:
5754 return 8;
5755 default:
5756 throw Error("mode:" + n);
5757 }
5758 else if (27 > t)
5759 switch (n) {
5760 case 1:
5761 return 12;
5762 case 2:
5763 return 11;
5764 case s:
5765 return 16;
5766 case 8:
5767 return 10;
5768 default:
5769 throw Error("mode:" + n);
5770 }
5771 else if (41 > t)
5772 switch (n) {
5773 case 1:
5774 return 14;
5775 case 2:
5776 return 13;
5777 case s:
5778 return 16;
5779 case 8:
5780 return 12;
5781 default:
5782 throw Error("mode:" + n);
5783 }
5784 else
5785 throw Error("type:" + t);
5786 },
5787 getLostPoint: function(n) {
5788 for (var t, f, r = n.getModuleCount(), o = 0, i = 0; i < r; i++)
5789 for (t = 0; t < r; t++) {
5790 for (var u = 0, s = n.isDark(i, t), e = -1; 1 >= e; e++)
5791 if (!(0 > i + e || r <= i + e))
5792 for (f = -1; 1 >= f; f++)
5793 0 > t + f || r <= t + f || 0 == e && 0 == f || s == n.isDark(i + e, t + f) && u++;
5794 5 < u && (o += 3 + u - 5)
5795 }
5796 for (i = 0; i < r - 1; i++)
5797 for (t = 0; t < r - 1; t++)
5798 (u = 0,
5799 n.isDark(i, t) && u++,
5800 n.isDark(i + 1, t) && u++,
5801 n.isDark(i, t + 1) && u++,
5802 n.isDark(i + 1, t + 1) && u++,
5803 0 == u || 4 == u) && (o += 3);
5804 for (i = 0; i < r; i++)
5805 for (t = 0; t < r - 6; t++)
5806 n.isDark(i, t) && !n.isDark(i, t + 1) && n.isDark(i, t + 2) && n.isDark(i, t + 3) && n.isDark(i, t + 4) && !n.isDark(i, t + 5) && n.isDark(i, t + 6) && (o += 40);
5807 for (t = 0; t < r; t++)
5808 for (i = 0; i < r - 6; i++)
5809 n.isDark(i, t) && !n.isDark(i + 1, t) && n.isDark(i + 2, t) && n.isDark(i + 3, t) && n.isDark(i + 4, t) && !n.isDark(i + 5, t) && n.isDark(i + 6, t) && (o += 40);
5810 for (t = u = 0; t < r; t++)
5811 for (i = 0; i < r; i++)
5812 n.isDark(i, t) && u++;
5813 return n = Math.abs(100 * u / r / r - 50) / 5,
5814 o + 10 * n
5815 }
5816 }, r = {
5817 glog: function(n) {
5818 if (1 > n)
5819 throw Error("glog(" + n + ")");
5820 return r.LOG_TABLE[n]
5821 },
5822 gexp: function(n) {
5823 for (; 0 > n; )
5824 n += 255;
5825 for (; 256 <= n; )
5826 n -= 255;
5827 return r.EXP_TABLE[n]
5828 },
5829 EXP_TABLE: Array(256),
5830 LOG_TABLE: Array(256)
5831 }, u = 0; 8 > u; u++)
5832 r.EXP_TABLE[u] = 1 << u;
5833 for (u = 8; 256 > u; u++)
5834 r.EXP_TABLE[u] = r.EXP_TABLE[u - 4] ^ r.EXP_TABLE[u - 5] ^ r.EXP_TABLE[u - 6] ^ r.EXP_TABLE[u - 8];
5835 for (u = 0; 255 > u; u++)
5836 r.LOG_TABLE[r.EXP_TABLE[u]] = u;
5837 return o.prototype = {
5838 get: function(n) {
5839 return this.num[n]
5840 },
5841 getLength: function() {
5842 return this.num.length
5843 },
5844 multiply: function(n) {
5845 for (var i, u = Array(this.getLength() + n.getLength() - 1), t = 0; t < this.getLength(); t++)
5846 for (i = 0; i < n.getLength(); i++)
5847 u[t + i] ^= r.gexp(r.glog(this.get(t)) + r.glog(n.get(i)));
5848 return new o(u,0)
5849 },
5850 mod: function(n) {
5851 if (0 > this.getLength() - n.getLength())
5852 return this;
5853 for (var u = r.glog(this.get(0)) - r.glog(n.get(0)), i = Array(this.getLength()), t = 0; t < this.getLength(); t++)
5854 i[t] = this.get(t);
5855 for (t = 0; t < n.getLength(); t++)
5856 i[t] ^= r.gexp(r.glog(n.get(t)) + u);
5857 return new o(i,0).mod(n)
5858 }
5859 },
5860 e.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]],
5861 e.getRSBlocks = function(n, t) {
5862 var i = e.getRsBlockTable(n, t);
5863 if (void 0 == i)
5864 throw Error("bad rs block @ typeNumber:" + n + "/errorCorrectLevel:" + t);
5865 for (var o = i.length / 3, u = [], r = 0; r < o; r++)
5866 for (var s = i[3 * r + 0], h = i[3 * r + 1], c = i[3 * r + 2], f = 0; f < s; f++)
5867 u.push(new e(h,c));
5868 return u
5869 }
5870 ,
5871 e.getRsBlockTable = function(n, t) {
5872 switch (t) {
5873 case 1:
5874 return e.RS_BLOCK_TABLE[4 * (n - 1) + 0];
5875 case 0:
5876 return e.RS_BLOCK_TABLE[4 * (n - 1) + 1];
5877 case 3:
5878 return e.RS_BLOCK_TABLE[4 * (n - 1) + 2];
5879 case 2:
5880 return e.RS_BLOCK_TABLE[4 * (n - 1) + 3]
5881 }
5882 }
5883 ,
5884 h.prototype = {
5885 get: function(n) {
5886 return 1 == (this.buffer[Math.floor(n / 8)] >>> 7 - n % 8 & 1)
5887 },
5888 put: function(n, t) {
5889 for (var i = 0; i < t; i++)
5890 this.putBit(1 == (n >>> t - i - 1 & 1))
5891 },
5892 getLengthInBits: function() {
5893 return this.length
5894 },
5895 putBit: function(n) {
5896 var t = Math.floor(this.length / 8);
5897 this.buffer.length <= t && this.buffer.push(0);
5898 n && (this.buffer[t] |= 128 >>> this.length % 8);
5899 this.length++
5900 }
5901 },
5902 "string" == typeof t && (t = {
5903 text: t
5904 }),
5905 t = n.extend({}, {
5906 render: "canvas",
5907 width: 256,
5908 height: 256,
5909 typeNumber: -1,
5910 correctLevel: 2,
5911 background: "#ffffff",
5912 foreground: "#000000"
5913 }, t),
5914 this.each(function() {
5915 var i, e, r, c, l;
5916 if ("canvas" == t.render) {
5917 i = new f(t.typeNumber,t.correctLevel);
5918 i.addData(t.text);
5919 i.make();
5920 e = document.createElement("canvas");
5921 e.width = t.width;
5922 e.height = t.height;
5923 for (var h = e.getContext("2d"), o = t.width / i.getModuleCount(), s = t.height / i.getModuleCount(), u = 0; u < i.getModuleCount(); u++)
5924 for (r = 0; r < i.getModuleCount(); r++)
5925 h.fillStyle = i.isDark(u, r) ? t.foreground : t.background,
5926 c = Math.ceil((r + 1) * o) - Math.floor(r * o),
5927 l = Math.ceil((u + 1) * o) - Math.floor(u * o),
5928 h.fillRect(Math.round(r * o), Math.round(u * s), c, l)
5929 } else
5930 for (i = new f(t.typeNumber,t.correctLevel),
5931 i.addData(t.text),
5932 i.make(),
5933 e = n("<table><\/table>").css("width", t.width + "px").css("height", t.height + "px").css("border", "0px").css("border-collapse", "collapse").css("background-color", t.background),
5934 h = t.width / i.getModuleCount(),
5935 o = t.height / i.getModuleCount(),
5936 s = 0; s < i.getModuleCount(); s++)
5937 for (u = n("<tr><\/tr>").css("height", o + "px").appendTo(e),
5938 r = 0; r < i.getModuleCount(); r++)
5939 n("<td><\/td>").css("width", h + "px").css("background-color", i.isDark(s, r) ? t.foreground : t.background).appendTo(u);
5940 i = e;
5941 jQuery(i).appendTo(this)
5942 })
5943 }
5944}(jQuery);
5945var QRCode;
5946!function() {
5947 function c(n) {
5948 var t;
5949 this.mode = r.MODE_8BIT_BYTE;
5950 this.data = n;
5951 this.parsedData = [];
5952 for (var i = [], u = 0, f = this.data.length; f > u; u++)
5953 t = this.data.charCodeAt(u),
5954 t > 65536 ? (i[0] = 240 | (1835008 & t) >>> 18,
5955 i[1] = 128 | (258048 & t) >>> 12,
5956 i[2] = 128 | (4032 & t) >>> 6,
5957 i[3] = 128 | 63 & t) : t > 2048 ? (i[0] = 224 | (61440 & t) >>> 12,
5958 i[1] = 128 | (4032 & t) >>> 6,
5959 i[2] = 128 | 63 & t) : t > 128 ? (i[0] = 192 | (1984 & t) >>> 6,
5960 i[1] = 128 | 63 & t) : i[0] = t,
5961 this.parsedData = this.parsedData.concat(i);
5962 this.parsedData.length != this.data.length && (this.parsedData.unshift(191),
5963 this.parsedData.unshift(187),
5964 this.parsedData.unshift(239))
5965 }
5966 function u(n, t) {
5967 this.typeNumber = n;
5968 this.errorCorrectLevel = t;
5969 this.modules = null;
5970 this.moduleCount = 0;
5971 this.dataCache = null;
5972 this.dataList = []
5973 }
5974 function s(n, t) {
5975 var i, r;
5976 if (void 0 == n.length)
5977 throw new Error(n.length + "/" + t);
5978 for (i = 0; i < n.length && 0 == n[i]; )
5979 i++;
5980 for (this.num = new Array(n.length - i + t),
5981 r = 0; r < n.length - i; r++)
5982 this.num[r] = n[r + i]
5983 }
5984 function f(n, t) {
5985 this.totalCount = n;
5986 this.dataCount = t
5987 }
5988 function l() {
5989 this.buffer = [];
5990 this.length = 0
5991 }
5992 function v() {
5993 return "undefined" != typeof CanvasRenderingContext2D
5994 }
5995 function a() {
5996 var n = !1
5997 , t = navigator.userAgent;
5998 return /android/i.test(t) && (n = !0,
5999 aMat = t.toString().match(/android ([0-9]\.[0-9])/i),
6000 aMat && aMat[1] && (n = parseFloat(aMat[1]))),
6001 n
6002 }
6003 function y(n, t) {
6004 for (var r, u = 1, f = p(n), i = 0, o = h.length; o >= i; i++) {
6005 r = 0;
6006 switch (t) {
6007 case e.L:
6008 r = h[i][0];
6009 break;
6010 case e.M:
6011 r = h[i][1];
6012 break;
6013 case e.Q:
6014 r = h[i][2];
6015 break;
6016 case e.H:
6017 r = h[i][3]
6018 }
6019 if (r >= f)
6020 break;
6021 u++
6022 }
6023 if (u > h.length)
6024 throw new Error("Too long data");
6025 return u
6026 }
6027 function p(n) {
6028 var t = encodeURI(n).toString().replace(/\%[0-9a-fA-F]{2}/g, "a");
6029 return t.length + (t.length != n ? 3 : 0)
6030 }
6031 var i;
6032 c.prototype = {
6033 getLength: function() {
6034 return this.parsedData.length
6035 },
6036 write: function(n) {
6037 for (var t = 0, i = this.parsedData.length; i > t; t++)
6038 n.put(this.parsedData[t], 8)
6039 }
6040 };
6041 u.prototype = {
6042 addData: function(n) {
6043 var t = new c(n);
6044 this.dataList.push(t);
6045 this.dataCache = null
6046 },
6047 isDark: function(n, t) {
6048 if (0 > n || this.moduleCount <= n || 0 > t || this.moduleCount <= t)
6049 throw new Error(n + "," + t);
6050 return this.modules[n][t]
6051 },
6052 getModuleCount: function() {
6053 return this.moduleCount
6054 },
6055 make: function() {
6056 this.makeImpl(!1, this.getBestMaskPattern())
6057 },
6058 makeImpl: function(n, t) {
6059 var i, r;
6060 for (this.moduleCount = 4 * this.typeNumber + 17,
6061 this.modules = new Array(this.moduleCount),
6062 i = 0; i < this.moduleCount; i++)
6063 for (this.modules[i] = new Array(this.moduleCount),
6064 r = 0; r < this.moduleCount; r++)
6065 this.modules[i][r] = null;
6066 this.setupPositionProbePattern(0, 0);
6067 this.setupPositionProbePattern(this.moduleCount - 7, 0);
6068 this.setupPositionProbePattern(0, this.moduleCount - 7);
6069 this.setupPositionAdjustPattern();
6070 this.setupTimingPattern();
6071 this.setupTypeInfo(n, t);
6072 this.typeNumber >= 7 && this.setupTypeNumber(n);
6073 null == this.dataCache && (this.dataCache = u.createData(this.typeNumber, this.errorCorrectLevel, this.dataList));
6074 this.mapData(this.dataCache, t)
6075 },
6076 setupPositionProbePattern: function(n, t) {
6077 for (var r, i = -1; 7 >= i; i++)
6078 if (!(-1 >= n + i || this.moduleCount <= n + i))
6079 for (r = -1; 7 >= r; r++)
6080 -1 >= t + r || this.moduleCount <= t + r || (this.modules[n + i][t + r] = i >= 0 && 6 >= i && (0 == r || 6 == r) || r >= 0 && 6 >= r && (0 == i || 6 == i) || i >= 2 && 4 >= i && r >= 2 && 4 >= r ? !0 : !1)
6081 },
6082 getBestMaskPattern: function() {
6083 for (var i, r = 0, u = 0, t = 0; 8 > t; t++)
6084 this.makeImpl(!0, t),
6085 i = n.getLostPoint(this),
6086 (0 == t || r > i) && (r = i,
6087 u = t);
6088 return u
6089 },
6090 createMovieClip: function(n, t, i) {
6091 var r = n.createEmptyMovieClip(t, i), u = 1, f, e, o, s, h;
6092 for (this.make(),
6093 f = 0; f < this.modules.length; f++)
6094 for (e = f * u,
6095 o = 0; o < this.modules[f].length; o++)
6096 s = o * u,
6097 h = this.modules[f][o],
6098 h && (r.beginFill(0, 100),
6099 r.moveTo(s, e),
6100 r.lineTo(s + u, e),
6101 r.lineTo(s + u, e + u),
6102 r.lineTo(s, e + u),
6103 r.endFill());
6104 return r
6105 },
6106 setupTimingPattern: function() {
6107 for (var t, n = 8; n < this.moduleCount - 8; n++)
6108 null == this.modules[n][6] && (this.modules[n][6] = 0 == n % 2);
6109 for (t = 8; t < this.moduleCount - 8; t++)
6110 null == this.modules[6][t] && (this.modules[6][t] = 0 == t % 2)
6111 },
6112 setupPositionAdjustPattern: function() {
6113 for (var f, e, o, t, i, r = n.getPatternPosition(this.typeNumber), u = 0; u < r.length; u++)
6114 for (f = 0; f < r.length; f++)
6115 if (e = r[u],
6116 o = r[f],
6117 null == this.modules[e][o])
6118 for (t = -2; 2 >= t; t++)
6119 for (i = -2; 2 >= i; i++)
6120 this.modules[e + t][o + i] = -2 == t || 2 == t || -2 == i || 2 == i || 0 == t && 0 == i ? !0 : !1
6121 },
6122 setupTypeNumber: function(t) {
6123 for (var r, u = n.getBCHTypeNumber(this.typeNumber), i = 0; 18 > i; i++)
6124 r = !t && 1 == (1 & u >> i),
6125 this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 11] = r;
6126 for (i = 0; 18 > i; i++)
6127 r = !t && 1 == (1 & u >> i),
6128 this.modules[i % 3 + this.moduleCount - 11][Math.floor(i / 3)] = r
6129 },
6130 setupTypeInfo: function(t, i) {
6131 for (var u, e = this.errorCorrectLevel << 3 | i, f = n.getBCHTypeInfo(e), r = 0; 15 > r; r++)
6132 u = !t && 1 == (1 & f >> r),
6133 6 > r ? this.modules[r][8] = u : 8 > r ? this.modules[r + 1][8] = u : this.modules[this.moduleCount - 15 + r][8] = u;
6134 for (r = 0; 15 > r; r++)
6135 u = !t && 1 == (1 & f >> r),
6136 8 > r ? this.modules[8][this.moduleCount - r - 1] = u : 9 > r ? this.modules[8][15 - r] = u : this.modules[8][14 - r] = u;
6137 this.modules[this.moduleCount - 8][8] = !t
6138 },
6139 mapData: function(t, i) {
6140 for (var f, e, c, o = -1, r = this.moduleCount - 1, s = 7, h = 0, u = this.moduleCount - 1; u > 0; u -= 2)
6141 for (6 == u && u--; ; ) {
6142 for (f = 0; 2 > f; f++)
6143 null == this.modules[r][u - f] && (e = !1,
6144 h < t.length && (e = 1 == (1 & t[h] >>> s)),
6145 c = n.getMask(i, r, u - f),
6146 c && (e = !e),
6147 this.modules[r][u - f] = e,
6148 s--,
6149 -1 == s && (h++,
6150 s = 7));
6151 if (r += o,
6152 0 > r || this.moduleCount <= r) {
6153 r -= o;
6154 o = -o;
6155 break
6156 }
6157 }
6158 }
6159 };
6160 u.PAD0 = 236;
6161 u.PAD1 = 17;
6162 u.createData = function(t, i, r) {
6163 for (var h, s, c = f.getRSBlocks(t, i), e = new l, o = 0; o < r.length; o++)
6164 h = r[o],
6165 e.put(h.mode, 4),
6166 e.put(h.getLength(), n.getLengthInBits(h.mode, t)),
6167 h.write(e);
6168 for (s = 0,
6169 o = 0; o < c.length; o++)
6170 s += c[o].dataCount;
6171 if (e.getLengthInBits() > 8 * s)
6172 throw new Error("code length overflow. (" + e.getLengthInBits() + ">" + 8 * s + ")");
6173 for (e.getLengthInBits() + 4 <= 8 * s && e.put(0, 4); 0 != e.getLengthInBits() % 8; )
6174 e.putBit(!1);
6175 for (; ; ) {
6176 if (e.getLengthInBits() >= 8 * s)
6177 break;
6178 if (e.put(u.PAD0, 8),
6179 e.getLengthInBits() >= 8 * s)
6180 break;
6181 e.put(u.PAD1, 8)
6182 }
6183 return u.createBytes(e, c)
6184 }
6185 ;
6186 u.createBytes = function(t, i) {
6187 for (var o, l, v, y, r, w = 0, h = 0, c = 0, f = new Array(i.length), e = new Array(i.length), u = 0; u < i.length; u++) {
6188 for (o = i[u].dataCount,
6189 l = i[u].totalCount - o,
6190 h = Math.max(h, o),
6191 c = Math.max(c, l),
6192 f[u] = new Array(o),
6193 r = 0; r < f[u].length; r++)
6194 f[u][r] = 255 & t.buffer[r + w];
6195 w += o;
6196 var a = n.getErrorCorrectPolynomial(l)
6197 , d = new s(f[u],a.getLength() - 1)
6198 , b = d.mod(a);
6199 for (e[u] = new Array(a.getLength() - 1),
6200 r = 0; r < e[u].length; r++)
6201 v = r + b.getLength() - e[u].length,
6202 e[u][r] = v >= 0 ? b.get(v) : 0
6203 }
6204 for (y = 0,
6205 r = 0; r < i.length; r++)
6206 y += i[r].totalCount;
6207 for (var p = new Array(y), k = 0, r = 0; h > r; r++)
6208 for (u = 0; u < i.length; u++)
6209 r < f[u].length && (p[k++] = f[u][r]);
6210 for (r = 0; c > r; r++)
6211 for (u = 0; u < i.length; u++)
6212 r < e[u].length && (p[k++] = e[u][r]);
6213 return p
6214 }
6215 ;
6216 for (var r = {
6217 MODE_NUMBER: 1,
6218 MODE_ALPHA_NUM: 2,
6219 MODE_8BIT_BYTE: 4,
6220 MODE_KANJI: 8
6221 }, e = {
6222 L: 1,
6223 M: 0,
6224 Q: 3,
6225 H: 2
6226 }, o = {
6227 PATTERN000: 0,
6228 PATTERN001: 1,
6229 PATTERN010: 2,
6230 PATTERN011: 3,
6231 PATTERN100: 4,
6232 PATTERN101: 5,
6233 PATTERN110: 6,
6234 PATTERN111: 7
6235 }, n = {
6236 PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
6237 G15: 1335,
6238 G18: 7973,
6239 G15_MASK: 21522,
6240 getBCHTypeInfo: function(t) {
6241 for (var i = t << 10; n.getBCHDigit(i) - n.getBCHDigit(n.G15) >= 0; )
6242 i ^= n.G15 << n.getBCHDigit(i) - n.getBCHDigit(n.G15);
6243 return (t << 10 | i) ^ n.G15_MASK
6244 },
6245 getBCHTypeNumber: function(t) {
6246 for (var i = t << 12; n.getBCHDigit(i) - n.getBCHDigit(n.G18) >= 0; )
6247 i ^= n.G18 << n.getBCHDigit(i) - n.getBCHDigit(n.G18);
6248 return t << 12 | i
6249 },
6250 getBCHDigit: function(n) {
6251 for (var t = 0; 0 != n; )
6252 t++,
6253 n >>>= 1;
6254 return t
6255 },
6256 getPatternPosition: function(t) {
6257 return n.PATTERN_POSITION_TABLE[t - 1]
6258 },
6259 getMask: function(n, t, i) {
6260 switch (n) {
6261 case o.PATTERN000:
6262 return 0 == (t + i) % 2;
6263 case o.PATTERN001:
6264 return 0 == t % 2;
6265 case o.PATTERN010:
6266 return 0 == i % 3;
6267 case o.PATTERN011:
6268 return 0 == (t + i) % 3;
6269 case o.PATTERN100:
6270 return 0 == (Math.floor(t / 2) + Math.floor(i / 3)) % 2;
6271 case o.PATTERN101:
6272 return 0 == t * i % 2 + t * i % 3;
6273 case o.PATTERN110:
6274 return 0 == (t * i % 2 + t * i % 3) % 2;
6275 case o.PATTERN111:
6276 return 0 == (t * i % 3 + (t + i) % 2) % 2;
6277 default:
6278 throw new Error("bad maskPattern:" + n);
6279 }
6280 },
6281 getErrorCorrectPolynomial: function(n) {
6282 for (var i = new s([1],0), r = 0; n > r; r++)
6283 i = i.multiply(new s([1, t.gexp(r)],0));
6284 return i
6285 },
6286 getLengthInBits: function(n, t) {
6287 if (t >= 1 && 10 > t)
6288 switch (n) {
6289 case r.MODE_NUMBER:
6290 return 10;
6291 case r.MODE_ALPHA_NUM:
6292 return 9;
6293 case r.MODE_8BIT_BYTE:
6294 return 8;
6295 case r.MODE_KANJI:
6296 return 8;
6297 default:
6298 throw new Error("mode:" + n);
6299 }
6300 else if (27 > t)
6301 switch (n) {
6302 case r.MODE_NUMBER:
6303 return 12;
6304 case r.MODE_ALPHA_NUM:
6305 return 11;
6306 case r.MODE_8BIT_BYTE:
6307 return 16;
6308 case r.MODE_KANJI:
6309 return 10;
6310 default:
6311 throw new Error("mode:" + n);
6312 }
6313 else {
6314 if (!(41 > t))
6315 throw new Error("type:" + t);
6316 switch (n) {
6317 case r.MODE_NUMBER:
6318 return 14;
6319 case r.MODE_ALPHA_NUM:
6320 return 13;
6321 case r.MODE_8BIT_BYTE:
6322 return 16;
6323 case r.MODE_KANJI:
6324 return 12;
6325 default:
6326 throw new Error("mode:" + n);
6327 }
6328 }
6329 },
6330 getLostPoint: function(n) {
6331 for (var u, f, h, t, c, r = n.getModuleCount(), o = 0, i = 0; r > i; i++)
6332 for (t = 0; r > t; t++) {
6333 for (var s = 0, l = n.isDark(i, t), e = -1; 1 >= e; e++)
6334 if (!(0 > i + e || i + e >= r))
6335 for (u = -1; 1 >= u; u++)
6336 0 > t + u || t + u >= r || (0 != e || 0 != u) && l == n.isDark(i + e, t + u) && s++;
6337 s > 5 && (o += 3 + s - 5)
6338 }
6339 for (i = 0; r - 1 > i; i++)
6340 for (t = 0; r - 1 > t; t++)
6341 f = 0,
6342 n.isDark(i, t) && f++,
6343 n.isDark(i + 1, t) && f++,
6344 n.isDark(i, t + 1) && f++,
6345 n.isDark(i + 1, t + 1) && f++,
6346 (0 == f || 4 == f) && (o += 3);
6347 for (i = 0; r > i; i++)
6348 for (t = 0; r - 6 > t; t++)
6349 n.isDark(i, t) && !n.isDark(i, t + 1) && n.isDark(i, t + 2) && n.isDark(i, t + 3) && n.isDark(i, t + 4) && !n.isDark(i, t + 5) && n.isDark(i, t + 6) && (o += 40);
6350 for (t = 0; r > t; t++)
6351 for (i = 0; r - 6 > i; i++)
6352 n.isDark(i, t) && !n.isDark(i + 1, t) && n.isDark(i + 2, t) && n.isDark(i + 3, t) && n.isDark(i + 4, t) && !n.isDark(i + 5, t) && n.isDark(i + 6, t) && (o += 40);
6353 for (h = 0,
6354 t = 0; r > t; t++)
6355 for (i = 0; r > i; i++)
6356 n.isDark(i, t) && h++;
6357 return c = Math.abs(100 * h / r / r - 50) / 5,
6358 o + 10 * c
6359 }
6360 }, t = {
6361 glog: function(n) {
6362 if (1 > n)
6363 throw new Error("glog(" + n + ")");
6364 return t.LOG_TABLE[n]
6365 },
6366 gexp: function(n) {
6367 for (; 0 > n; )
6368 n += 255;
6369 for (; n >= 256; )
6370 n -= 255;
6371 return t.EXP_TABLE[n]
6372 },
6373 EXP_TABLE: new Array(256),
6374 LOG_TABLE: new Array(256)
6375 }, i = 0; 8 > i; i++)
6376 t.EXP_TABLE[i] = 1 << i;
6377 for (i = 8; 256 > i; i++)
6378 t.EXP_TABLE[i] = t.EXP_TABLE[i - 4] ^ t.EXP_TABLE[i - 5] ^ t.EXP_TABLE[i - 6] ^ t.EXP_TABLE[i - 8];
6379 for (i = 0; 255 > i; i++)
6380 t.LOG_TABLE[t.EXP_TABLE[i]] = i;
6381 s.prototype = {
6382 get: function(n) {
6383 return this.num[n]
6384 },
6385 getLength: function() {
6386 return this.num.length
6387 },
6388 multiply: function(n) {
6389 for (var r, u = new Array(this.getLength() + n.getLength() - 1), i = 0; i < this.getLength(); i++)
6390 for (r = 0; r < n.getLength(); r++)
6391 u[i + r] ^= t.gexp(t.glog(this.get(i)) + t.glog(n.get(r)));
6392 return new s(u,0)
6393 },
6394 mod: function(n) {
6395 var i;
6396 if (this.getLength() - n.getLength() < 0)
6397 return this;
6398 for (var u = t.glog(this.get(0)) - t.glog(n.get(0)), r = new Array(this.getLength()), i = 0; i < this.getLength(); i++)
6399 r[i] = this.get(i);
6400 for (i = 0; i < n.getLength(); i++)
6401 r[i] ^= t.gexp(t.glog(n.get(i)) + u);
6402 return new s(r,0).mod(n)
6403 }
6404 };
6405 f.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]];
6406 f.getRSBlocks = function(n, t) {
6407 var i = f.getRsBlockTable(n, t);
6408 if (void 0 == i)
6409 throw new Error("bad rs block @ typeNumber:" + n + "/errorCorrectLevel:" + t);
6410 for (var o = i.length / 3, u = [], r = 0; o > r; r++)
6411 for (var s = i[3 * r + 0], h = i[3 * r + 1], c = i[3 * r + 2], e = 0; s > e; e++)
6412 u.push(new f(h,c));
6413 return u
6414 }
6415 ;
6416 f.getRsBlockTable = function(n, t) {
6417 switch (t) {
6418 case e.L:
6419 return f.RS_BLOCK_TABLE[4 * (n - 1) + 0];
6420 case e.M:
6421 return f.RS_BLOCK_TABLE[4 * (n - 1) + 1];
6422 case e.Q:
6423 return f.RS_BLOCK_TABLE[4 * (n - 1) + 2];
6424 case e.H:
6425 return f.RS_BLOCK_TABLE[4 * (n - 1) + 3];
6426 default:
6427 return void 0
6428 }
6429 }
6430 ;
6431 l.prototype = {
6432 get: function(n) {
6433 var t = Math.floor(n / 8);
6434 return 1 == (1 & this.buffer[t] >>> 7 - n % 8)
6435 },
6436 put: function(n, t) {
6437 for (var i = 0; t > i; i++)
6438 this.putBit(1 == (1 & n >>> t - i - 1))
6439 },
6440 getLengthInBits: function() {
6441 return this.length
6442 },
6443 putBit: function(n) {
6444 var t = Math.floor(this.length / 8);
6445 this.buffer.length <= t && this.buffer.push(0);
6446 n && (this.buffer[t] |= 128 >>> this.length % 8);
6447 this.length++
6448 }
6449 };
6450 var h = [[17, 14, 11, 7], [32, 26, 20, 14], [53, 42, 32, 24], [78, 62, 46, 34], [106, 84, 60, 44], [134, 106, 74, 58], [154, 122, 86, 64], [192, 152, 108, 84], [230, 180, 130, 98], [271, 213, 151, 119], [321, 251, 177, 137], [367, 287, 203, 155], [425, 331, 241, 177], [458, 362, 258, 194], [520, 412, 292, 220], [586, 450, 322, 250], [644, 504, 364, 280], [718, 560, 394, 310], [792, 624, 442, 338], [858, 666, 482, 382], [929, 711, 509, 403], [1003, 779, 565, 439], [1091, 857, 611, 461], [1171, 911, 661, 511], [1273, 997, 715, 535], [1367, 1059, 751, 593], [1465, 1125, 805, 625], [1528, 1190, 868, 658], [1628, 1264, 908, 698], [1732, 1370, 982, 742], [1840, 1452, 1030, 790], [1952, 1538, 1112, 842], [2068, 1628, 1168, 898], [2188, 1722, 1228, 958], [2303, 1809, 1283, 983], [2431, 1911, 1351, 1051], [2563, 1989, 1423, 1093], [2699, 2099, 1499, 1139], [2809, 2213, 1579, 1219], [2953, 2331, 1663, 1273]]
6451 , w = function() {
6452 var n = function(n, t) {
6453 this._el = n;
6454 this._htOption = t
6455 };
6456 return n.prototype.draw = function(n) {
6457 function e(n, t) {
6458 var r = document.createElementNS("http://www.w3.org/2000/svg", n);
6459 for (var i in t)
6460 t.hasOwnProperty(i) && r.setAttribute(i, t[i]);
6461 return r
6462 }
6463 var f = this._htOption, s = this._el, t = n.getModuleCount(), i, r, u, o;
6464 for (Math.floor(f.width / t),
6465 Math.floor(f.height / t),
6466 this.clear(),
6467 i = e("svg", {
6468 viewBox: "0 0 " + String(t) + " " + String(t),
6469 width: "100%",
6470 height: "100%",
6471 fill: f.colorLight
6472 }),
6473 i.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink"),
6474 s.appendChild(i),
6475 i.appendChild(e("rect", {
6476 fill: f.colorDark,
6477 width: "1",
6478 height: "1",
6479 id: "template"
6480 })),
6481 r = 0; t > r; r++)
6482 for (u = 0; t > u; u++)
6483 n.isDark(r, u) && (o = e("use", {
6484 x: String(r),
6485 y: String(u)
6486 }),
6487 o.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#template"),
6488 i.appendChild(o))
6489 }
6490 ,
6491 n.prototype.clear = function() {
6492 for (; this._el.hasChildNodes(); )
6493 this._el.removeChild(this._el.lastChild)
6494 }
6495 ,
6496 n
6497 }()
6498 , b = "svg" === document.documentElement.tagName.toLowerCase()
6499 , k = b ? w : v() ? function() {
6500 function r() {
6501 this._elImage.src = this._elCanvas.toDataURL("image/png");
6502 this._elImage.style.display = "block";
6503 this._elCanvas.style.display = "block"
6504 }
6505 function u(n, t) {
6506 var i = this;
6507 if (i._fFail = t,
6508 i._fSuccess = n,
6509 null === i._bSupportDataURI) {
6510 var r = document.createElement("img")
6511 , u = function() {
6512 i._bSupportDataURI = !1;
6513 i._fFail && _fFail.call(i)
6514 }
6515 , f = function() {
6516 i._bSupportDataURI = !0;
6517 i._fSuccess && i._fSuccess.call(i)
6518 };
6519 return r.onabort = u,
6520 r.onerror = u,
6521 r.onload = f,
6522 r.src = "data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
6523 void 0
6524 }
6525 i._bSupportDataURI === !0 && i._fSuccess ? i._fSuccess.call(i) : i._bSupportDataURI === !1 && i._fFail && i._fFail.call(i)
6526 }
6527 var t, i, n;
6528 return this._android && this._android <= 2.1 && (t = 1 / window.devicePixelRatio,
6529 i = CanvasRenderingContext2D.prototype.drawImage,
6530 CanvasRenderingContext2D.prototype.drawImage = function(n, r, u, f, e, o, s, h) {
6531 if ("nodeName"in n && /img/i.test(n.nodeName))
6532 for (var c = arguments.length - 1; c >= 1; c--)
6533 arguments[c] = arguments[c] * t;
6534 else
6535 "undefined" == typeof h && (arguments[1] *= t,
6536 arguments[2] *= t,
6537 arguments[3] *= t,
6538 arguments[4] *= t);
6539 i.apply(this, arguments)
6540 }
6541 ),
6542 n = function(n, t) {
6543 this._bIsPainted = !1;
6544 this._android = a();
6545 this._htOption = t;
6546 this._elCanvas = document.createElement("canvas");
6547 this._elCanvas.width = t.width;
6548 this._elCanvas.height = t.height;
6549 n.appendChild(this._elCanvas);
6550 this._el = n;
6551 this._oContext = this._elCanvas.getContext("2d");
6552 this._bIsPainted = !1;
6553 this._elImage = document.createElement("img");
6554 this._elImage.style.display = "block";
6555 this._el.appendChild(this._elImage);
6556 this._bSupportDataURI = null
6557 }
6558 ,
6559 n.prototype.draw = function(n) {
6560 var v = this._elImage, t = this._oContext, i = this._htOption, f = n.getModuleCount(), e = i.width / f, o = i.height / f, c = Math.round(e), l = Math.round(o), r, u;
6561 for (v.style.display = "block",
6562 this.clear(),
6563 r = 0; f > r; r++)
6564 for (u = 0; f > u; u++) {
6565 var a = n.isDark(r, u)
6566 , s = u * e
6567 , h = r * o;
6568 t.strokeStyle = a ? i.colorDark : i.colorLight;
6569 t.lineWidth = 1;
6570 t.fillStyle = a ? i.colorDark : i.colorLight;
6571 t.fillRect(s, h, e, o);
6572 t.strokeRect(Math.floor(s) + .5, Math.floor(h) + .5, c, l);
6573 t.strokeRect(Math.ceil(s) - .5, Math.ceil(h) - .5, c, l)
6574 }
6575 this._bIsPainted = !0
6576 }
6577 ,
6578 n.prototype.makeImage = function() {
6579 this._bIsPainted && u.call(this, r)
6580 }
6581 ,
6582 n.prototype.isPainted = function() {
6583 return this._bIsPainted
6584 }
6585 ,
6586 n.prototype.clear = function() {
6587 this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);
6588 this._bIsPainted = !1
6589 }
6590 ,
6591 n.prototype.round = function(n) {
6592 return n ? Math.floor(1e3 * n) / 1e3 : n
6593 }
6594 ,
6595 n
6596 }() : function() {
6597 var n = function(n, t) {
6598 this._el = n;
6599 this._htOption = t
6600 };
6601 return n.prototype.draw = function(n) {
6602 for (var u, t = this._htOption, o = this._el, r = n.getModuleCount(), c = Math.floor(t.width / r), l = Math.floor(t.height / r), i = ['<table style="border:0;border-collapse:collapse;">'], f = 0; r > f; f++) {
6603 for (i.push("<tr>"),
6604 u = 0; r > u; u++)
6605 i.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:' + c + "px;height:" + l + "px;background-color:" + (n.isDark(f, u) ? t.colorDark : t.colorLight) + ';"><\/td>');
6606 i.push("<\/tr>")
6607 }
6608 i.push("<\/table>");
6609 o.innerHTML = i.join("");
6610 var e = o.childNodes[0]
6611 , s = (t.width - e.offsetWidth) / 2
6612 , h = (t.height - e.offsetHeight) / 2;
6613 s > 0 && h > 0 && (e.style.margin = h + "px " + s + "px")
6614 }
6615 ,
6616 n.prototype.clear = function() {
6617 this._el.innerHTML = ""
6618 }
6619 ,
6620 n
6621 }();
6622 QRCode = function(n, t) {
6623 if (this._htOption = {
6624 width: 256,
6625 height: 256,
6626 typeNumber: 4,
6627 colorDark: "#000000",
6628 colorLight: "#ffffff",
6629 correctLevel: e.H
6630 },
6631 "string" == typeof t && (t = {
6632 text: t
6633 }),
6634 t)
6635 for (var i in t)
6636 this._htOption[i] = t[i];
6637 "string" == typeof n && (n = document.getElementById(n));
6638 this._android = a();
6639 this._el = n;
6640 this._oQRCode = null;
6641 this._oDrawing = new k(this._el,this._htOption);
6642 this._htOption.text && this.makeCode(this._htOption.text)
6643 }
6644 ;
6645 QRCode.prototype.makeCode = function(n) {
6646 this._oQRCode = new u(y(n, this._htOption.correctLevel),this._htOption.correctLevel);
6647 this._oQRCode.addData(n);
6648 this._oQRCode.make();
6649 this._el.title = n;
6650 this._oDrawing.draw(this._oQRCode);
6651 this.makeImage()
6652 }
6653 ;
6654 QRCode.prototype.makeImage = function() {
6655 "function" == typeof this._oDrawing.makeImage && (!this._android || this._android >= 3) && this._oDrawing.makeImage()
6656 }
6657 ;
6658 QRCode.prototype.clear = function() {
6659 this._oDrawing.clear()
6660 }
6661 ;
6662 QRCode.CorrectLevel = e
6663}(),
6664function(n, t, i) {
6665 function v(t, i) {
6666 var u, f;
6667 if (n.isArray(t)) {
6668 for (u = t.length - 1; u >= 0; u--)
6669 f = t[u],
6670 n.type(f) === "string" && r.transports[f] || (i.log("Invalid transport: " + f + ", removing it from the transports list."),
6671 t.splice(u, 1));
6672 t.length === 0 && (i.log("No transports remain within the specified transport array."),
6673 t = null)
6674 } else if (r.transports[t] || t === "auto") {
6675 if (t === "auto" && r._.ieVersion <= 8)
6676 return ["longPolling"]
6677 } else
6678 i.log("Invalid transport: " + t.toString() + "."),
6679 t = null;
6680 return t
6681 }
6682 function y(n) {
6683 return n === "http:" ? 80 : n === "https:" ? 443 : void 0
6684 }
6685 function h(n, t) {
6686 return t.match(/:\d+$/) ? t : t + ":" + y(n)
6687 }
6688 function p(t, i) {
6689 var u = this
6690 , r = [];
6691 u.tryBuffer = function(i) {
6692 return t.state === n.signalR.connectionState.connecting ? (r.push(i),
6693 !0) : !1
6694 }
6695 ;
6696 u.drain = function() {
6697 if (t.state === n.signalR.connectionState.connected)
6698 while (r.length > 0)
6699 i(r.shift())
6700 }
6701 ;
6702 u.clear = function() {
6703 r = []
6704 }
6705 }
6706 var f = {
6707 nojQuery: "jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",
6708 noTransportOnInit: "No transport could be initialized successfully. Try specifying a different transport or block at all for auto initialization.",
6709 errorOnNegotiate: "Error during negotiation request.",
6710 stoppedWhileLoading: "The connection was stopped during page load.",
6711 stoppedWhileNegotiating: "The connection was stopped during the negotiate request.",
6712 errorParsingNegotiateResponse: "Error parsing negotiate response.",
6713 errorDuringStartRequest: "Error during start request. Stopping the connection.",
6714 stoppedDuringStartRequest: "The connection was stopped during the start request.",
6715 errorParsingStartResponse: "Error parsing start response: '{0}'. Stopping the connection.",
6716 invalidStartResponse: "Invalid start response: '{0}'. Stopping the connection.",
6717 protocolIncompatible: "You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",
6718 sendFailed: "Send failed.",
6719 parseFailed: "Failed at parsing response: {0}",
6720 longPollFailed: "Long polling request failed.",
6721 eventSourceFailedToConnect: "EventSource failed to connect.",
6722 eventSourceError: "Error raised by EventSource",
6723 webSocketClosed: "WebSocket closed.",
6724 pingServerFailedInvalidResponse: "Invalid ping response when pinging server: '{0}'.",
6725 pingServerFailed: "Failed to ping server.",
6726 pingServerFailedStatusCode: "Failed to ping server. Server responded with status code {0}, stopping the connection.",
6727 pingServerFailedParse: "Failed to parse ping server response, stopping the connection.",
6728 noConnectionTransport: "Connection is in an invalid state, there is no transport active.",
6729 webSocketsInvalidState: "The Web Socket transport is in an invalid state, transitioning into reconnecting.",
6730 reconnectTimeout: "Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",
6731 reconnectWindowTimeout: "The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection."
6732 };
6733 if (typeof n != "function")
6734 throw new Error(f.nojQuery);
6735 var r, c, s = t.document.readyState === "complete", e = n(t), l = "__Negotiate Aborted__", u = {
6736 onStart: "onStart",
6737 onStarting: "onStarting",
6738 onReceived: "onReceived",
6739 onError: "onError",
6740 onConnectionSlow: "onConnectionSlow",
6741 onReconnecting: "onReconnecting",
6742 onReconnect: "onReconnect",
6743 onStateChanged: "onStateChanged",
6744 onDisconnect: "onDisconnect"
6745 }, w = function(n, i) {
6746 if (i !== !1) {
6747 var r;
6748 typeof t.console != "undefined" && (r = "[" + (new Date).toTimeString() + "] SignalR: " + n,
6749 t.console.debug ? t.console.debug(r) : t.console.log && t.console.log(r))
6750 }
6751 }, o = function(t, i, r) {
6752 return i === t.state ? (t.state = r,
6753 n(t).triggerHandler(u.onStateChanged, [{
6754 oldState: i,
6755 newState: r
6756 }]),
6757 !0) : !1
6758 }, b = function(n) {
6759 return n.state === r.connectionState.disconnected
6760 }, a = function(n) {
6761 return n._.keepAliveData.activated && n.transport.supportsKeepAlive(n)
6762 }, k = function(i) {
6763 var f, e;
6764 i._.configuredStopReconnectingTimeout || (e = function(t) {
6765 var i = r._.format(r.resources.reconnectTimeout, t.disconnectTimeout);
6766 t.log(i);
6767 n(t).triggerHandler(u.onError, [r._.error(i, "TimeoutException")]);
6768 t.stop(!1, !1)
6769 }
6770 ,
6771 i.reconnecting(function() {
6772 var n = this;
6773 n.state === r.connectionState.reconnecting && (f = t.setTimeout(function() {
6774 e(n)
6775 }, n.disconnectTimeout))
6776 }),
6777 i.stateChanged(function(n) {
6778 n.oldState === r.connectionState.reconnecting && t.clearTimeout(f)
6779 }),
6780 i._.configuredStopReconnectingTimeout = !0)
6781 };
6782 r = function(n, t, i) {
6783 return new r.fn.init(n,t,i)
6784 }
6785 ;
6786 r._ = {
6787 defaultContentType: "application/x-www-form-urlencoded; charset=UTF-8",
6788 ieVersion: function() {
6789 var i, n;
6790 return t.navigator.appName === "Microsoft Internet Explorer" && (n = /MSIE ([0-9]+\.[0-9]+)/.exec(t.navigator.userAgent),
6791 n && (i = t.parseFloat(n[1]))),
6792 i
6793 }(),
6794 error: function(n, t, i) {
6795 var r = new Error(n);
6796 return r.source = t,
6797 typeof i != "undefined" && (r.context = i),
6798 r
6799 },
6800 transportError: function(n, t, r, u) {
6801 var f = this.error(n, r, u);
6802 return f.transport = t ? t.name : i,
6803 f
6804 },
6805 format: function() {
6806 for (var t = arguments[0], n = 0; n < arguments.length - 1; n++)
6807 t = t.replace("{" + n + "}", arguments[n + 1]);
6808 return t
6809 },
6810 firefoxMajorVersion: function(n) {
6811 var t = n.match(/Firefox\/(\d+)/);
6812 return !t || !t.length || t.length < 2 ? 0 : parseInt(t[1], 10)
6813 },
6814 configurePingInterval: function(i) {
6815 var f = i._.config
6816 , e = function(t) {
6817 n(i).triggerHandler(u.onError, [t])
6818 };
6819 f && !i._.pingIntervalId && f.pingInterval && (i._.pingIntervalId = t.setInterval(function() {
6820 r.transports._logic.pingServer(i).fail(e)
6821 }, f.pingInterval))
6822 }
6823 };
6824 r.events = u;
6825 r.resources = f;
6826 r.ajaxDefaults = {
6827 processData: !0,
6828 timeout: null,
6829 async: !0,
6830 global: !1,
6831 cache: !1
6832 };
6833 r.changeState = o;
6834 r.isDisconnecting = b;
6835 r.connectionState = {
6836 connecting: 0,
6837 connected: 1,
6838 reconnecting: 2,
6839 disconnected: 4
6840 };
6841 r.hub = {
6842 start: function() {
6843 throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'><\/script>.");
6844 }
6845 };
6846 e.load(function() {
6847 s = !0
6848 });
6849 r.fn = r.prototype = {
6850 init: function(t, i, r) {
6851 var f = n(this);
6852 this.url = t;
6853 this.qs = i;
6854 this.lastError = null;
6855 this._ = {
6856 keepAliveData: {},
6857 connectingMessageBuffer: new p(this,function(n) {
6858 f.triggerHandler(u.onReceived, [n])
6859 }
6860 ),
6861 lastMessageAt: (new Date).getTime(),
6862 lastActiveAt: (new Date).getTime(),
6863 beatInterval: 5e3,
6864 beatHandle: null,
6865 totalTransportConnectTimeout: 0
6866 };
6867 typeof r == "boolean" && (this.logging = r)
6868 },
6869 _parseResponse: function(n) {
6870 var t = this;
6871 return n ? typeof n == "string" ? t.json.parse(n) : n : n
6872 },
6873 _originalJson: t.JSON,
6874 json: t.JSON,
6875 isCrossDomain: function(i, r) {
6876 var u;
6877 return (i = n.trim(i),
6878 r = r || t.location,
6879 i.indexOf("http") !== 0) ? !1 : (u = t.document.createElement("a"),
6880 u.href = i,
6881 u.protocol + h(u.protocol, u.host) !== r.protocol + h(r.protocol, r.host))
6882 },
6883 ajaxDataType: "text",
6884 contentType: "application/json; charset=UTF-8",
6885 logging: !1,
6886 state: r.connectionState.disconnected,
6887 clientProtocol: "1.5",
6888 reconnectDelay: 2e3,
6889 transportConnectTimeout: 0,
6890 disconnectTimeout: 3e4,
6891 reconnectWindow: 3e4,
6892 keepAliveWarnAt: 2 / 3,
6893 start: function(i, h) {
6894 var c = this, y = {
6895 pingInterval: 3e5,
6896 waitForPageLoad: !0,
6897 transport: "auto",
6898 jsonp: !1
6899 }, d, p = c._deferral || n.Deferred(), w = t.document.createElement("a"), b, g;
6900 if (c.lastError = null,
6901 c._deferral = p,
6902 !c.json)
6903 throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");
6904 if (n.type(i) === "function" ? h = i : n.type(i) === "object" && (n.extend(y, i),
6905 n.type(y.callback) === "function" && (h = y.callback)),
6906 y.transport = v(y.transport, c),
6907 !y.transport)
6908 throw new Error("SignalR: Invalid transport(s) specified, aborting start.");
6909 return (c._.config = y,
6910 !s && y.waitForPageLoad === !0) ? (c._.deferredStartHandler = function() {
6911 c.start(i, h)
6912 }
6913 ,
6914 e.bind("load", c._.deferredStartHandler),
6915 p.promise()) : c.state === r.connectionState.connecting ? p.promise() : o(c, r.connectionState.disconnected, r.connectionState.connecting) === !1 ? (p.resolve(c),
6916 p.promise()) : (k(c),
6917 w.href = c.url,
6918 w.protocol && w.protocol !== ":" ? (c.protocol = w.protocol,
6919 c.host = w.host) : (c.protocol = t.document.location.protocol,
6920 c.host = w.host || t.document.location.host),
6921 c.baseUrl = c.protocol + "//" + c.host,
6922 c.wsProtocol = c.protocol === "https:" ? "wss://" : "ws://",
6923 y.transport === "auto" && y.jsonp === !0 && (y.transport = "longPolling"),
6924 c.url.indexOf("//") === 0 && (c.url = t.location.protocol + c.url,
6925 c.log("Protocol relative URL detected, normalizing it to '" + c.url + "'.")),
6926 this.isCrossDomain(c.url) && (c.log("Auto detected cross domain url."),
6927 y.transport === "auto" && (y.transport = ["webSockets", "serverSentEvents", "longPolling"]),
6928 typeof y.withCredentials == "undefined" && (y.withCredentials = !0),
6929 y.jsonp || (y.jsonp = !n.support.cors,
6930 y.jsonp && c.log("Using jsonp because this browser doesn't support CORS.")),
6931 c.contentType = r._.defaultContentType),
6932 c.withCredentials = y.withCredentials,
6933 c.ajaxDataType = y.jsonp ? "jsonp" : "text",
6934 n(c).bind(u.onStart, function() {
6935 n.type(h) === "function" && h.call(c);
6936 p.resolve(c)
6937 }),
6938 c._.initHandler = r.transports._logic.initHandler(c),
6939 d = function(i, s) {
6940 var l = r._.error(f.noTransportOnInit);
6941 if (s = s || 0,
6942 s >= i.length) {
6943 s === 0 ? c.log("No transports supported by the server were selected.") : s === 1 ? c.log("No fallback transports were selected.") : c.log("Fallback transports exhausted.");
6944 n(c).triggerHandler(u.onError, [l]);
6945 p.reject(l);
6946 c.stop();
6947 return
6948 }
6949 if (c.state !== r.connectionState.disconnected) {
6950 var y = i[s]
6951 , h = r.transports[y]
6952 , v = function() {
6953 d(i, s + 1)
6954 };
6955 c.transport = h;
6956 try {
6957 c._.initHandler.start(h, function() {
6958 var i = r._.firefoxMajorVersion(t.navigator.userAgent) >= 11
6959 , f = !!c.withCredentials && i;
6960 c.log("The start request succeeded. Transitioning to the connected state.");
6961 a(c) && r.transports._logic.monitorKeepAlive(c);
6962 r.transports._logic.startHeartbeat(c);
6963 r._.configurePingInterval(c);
6964 o(c, r.connectionState.connecting, r.connectionState.connected) || c.log("WARNING! The connection was not in the connecting state.");
6965 c._.connectingMessageBuffer.drain();
6966 n(c).triggerHandler(u.onStart);
6967 e.bind("unload", function() {
6968 c.log("Window unloading, stopping the connection.");
6969 c.stop(f)
6970 });
6971 i && e.bind("beforeunload", function() {
6972 t.setTimeout(function() {
6973 c.stop(f)
6974 }, 0)
6975 })
6976 }, v)
6977 } catch (w) {
6978 c.log(h.name + " transport threw '" + w.message + "' when attempting to start.");
6979 v()
6980 }
6981 }
6982 }
6983 ,
6984 b = c.url + "/negotiate",
6985 g = function(t, i) {
6986 var e = r._.error(f.errorOnNegotiate, t, i._.negotiateRequest);
6987 n(i).triggerHandler(u.onError, e);
6988 p.reject(e);
6989 i.stop()
6990 }
6991 ,
6992 n(c).triggerHandler(u.onStarting),
6993 b = r.transports._logic.prepareQueryString(c, b),
6994 c.log("Negotiating with '" + b + "'."),
6995 c._.negotiateRequest = r.transports._logic.ajax(c, {
6996 url: b,
6997 error: function(n, t) {
6998 t !== l ? g(n, c) : p.reject(r._.error(f.stoppedWhileNegotiating, null, c._.negotiateRequest))
6999 },
7000 success: function(t) {
7001 var i, e, h, o = [], s = [];
7002 try {
7003 i = c._parseResponse(t)
7004 } catch (l) {
7005 g(r._.error(f.errorParsingNegotiateResponse, l), c);
7006 return
7007 }
7008 if (e = c._.keepAliveData,
7009 c.appRelativeUrl = i.Url,
7010 c.id = i.ConnectionId,
7011 c.token = i.ConnectionToken,
7012 c.webSocketServerUrl = i.WebSocketServerUrl,
7013 c._.pollTimeout = i.ConnectionTimeout * 1e3 + 1e4,
7014 c.disconnectTimeout = i.DisconnectTimeout * 1e3,
7015 c._.totalTransportConnectTimeout = c.transportConnectTimeout + i.TransportConnectTimeout * 1e3,
7016 i.KeepAliveTimeout ? (e.activated = !0,
7017 e.timeout = i.KeepAliveTimeout * 1e3,
7018 e.timeoutWarning = e.timeout * c.keepAliveWarnAt,
7019 c._.beatInterval = (e.timeout - e.timeoutWarning) / 3) : e.activated = !1,
7020 c.reconnectWindow = c.disconnectTimeout + (e.timeout || 0),
7021 !i.ProtocolVersion || i.ProtocolVersion !== c.clientProtocol) {
7022 h = r._.error(r._.format(f.protocolIncompatible, c.clientProtocol, i.ProtocolVersion));
7023 n(c).triggerHandler(u.onError, [h]);
7024 p.reject(h);
7025 return
7026 }
7027 n.each(r.transports, function(n) {
7028 if (n.indexOf("_") === 0 || n === "webSockets" && !i.TryWebSockets)
7029 return !0;
7030 s.push(n)
7031 });
7032 n.isArray(y.transport) ? n.each(y.transport, function(t, i) {
7033 n.inArray(i, s) >= 0 && o.push(i)
7034 }) : y.transport === "auto" ? o = s : n.inArray(y.transport, s) >= 0 && o.push(y.transport);
7035 d(o)
7036 }
7037 }),
7038 p.promise())
7039 },
7040 starting: function(t) {
7041 var i = this;
7042 return n(i).bind(u.onStarting, function() {
7043 t.call(i)
7044 }),
7045 i
7046 },
7047 send: function(n) {
7048 var t = this;
7049 if (t.state === r.connectionState.disconnected)
7050 throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");
7051 if (t.state === r.connectionState.connecting)
7052 throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");
7053 return t.transport.send(t, n),
7054 t
7055 },
7056 received: function(t) {
7057 var i = this;
7058 return n(i).bind(u.onReceived, function(n, r) {
7059 t.call(i, r)
7060 }),
7061 i
7062 },
7063 stateChanged: function(t) {
7064 var i = this;
7065 return n(i).bind(u.onStateChanged, function(n, r) {
7066 t.call(i, r)
7067 }),
7068 i
7069 },
7070 error: function(t) {
7071 var i = this;
7072 return n(i).bind(u.onError, function(n, r, u) {
7073 i.lastError = r;
7074 t.call(i, r, u)
7075 }),
7076 i
7077 },
7078 disconnected: function(t) {
7079 var i = this;
7080 return n(i).bind(u.onDisconnect, function() {
7081 t.call(i)
7082 }),
7083 i
7084 },
7085 connectionSlow: function(t) {
7086 var i = this;
7087 return n(i).bind(u.onConnectionSlow, function() {
7088 t.call(i)
7089 }),
7090 i
7091 },
7092 reconnecting: function(t) {
7093 var i = this;
7094 return n(i).bind(u.onReconnecting, function() {
7095 t.call(i)
7096 }),
7097 i
7098 },
7099 reconnected: function(t) {
7100 var i = this;
7101 return n(i).bind(u.onReconnect, function() {
7102 t.call(i)
7103 }),
7104 i
7105 },
7106 stop: function(i, h) {
7107 var c = this
7108 , v = c._deferral;
7109 if (c._.deferredStartHandler && e.unbind("load", c._.deferredStartHandler),
7110 delete c._.config,
7111 delete c._.deferredStartHandler,
7112 !s && (!c._.config || c._.config.waitForPageLoad === !0)) {
7113 c.log("Stopping connection prior to negotiate.");
7114 v && v.reject(r._.error(f.stoppedWhileLoading));
7115 return
7116 }
7117 if (c.state !== r.connectionState.disconnected)
7118 return c.log("Stopping connection."),
7119 o(c, c.state, r.connectionState.disconnected),
7120 t.clearTimeout(c._.beatHandle),
7121 t.clearInterval(c._.pingIntervalId),
7122 c.transport && (c.transport.stop(c),
7123 h !== !1 && c.transport.abort(c, i),
7124 a(c) && r.transports._logic.stopMonitoringKeepAlive(c),
7125 c.transport = null),
7126 c._.negotiateRequest && (c._.negotiateRequest.abort(l),
7127 delete c._.negotiateRequest),
7128 c._.initHandler && c._.initHandler.stop(),
7129 n(c).triggerHandler(u.onDisconnect),
7130 delete c._deferral,
7131 delete c.messageId,
7132 delete c.groupsToken,
7133 delete c.id,
7134 delete c._.pingIntervalId,
7135 delete c._.lastMessageAt,
7136 delete c._.lastActiveAt,
7137 c._.connectingMessageBuffer.clear(),
7138 c
7139 },
7140 log: function(n) {
7141 w(n, this.logging)
7142 }
7143 };
7144 r.fn.init.prototype = r.fn;
7145 r.noConflict = function() {
7146 return n.connection === r && (n.connection = c),
7147 r
7148 }
7149 ;
7150 n.connection && (c = n.connection);
7151 n.connection = n.signalR = r
7152}(window.jQuery, window),
7153function(n, t, i) {
7154 function o(n) {
7155 n._.keepAliveData.monitoring && c(n);
7156 u.markActive(n) && (n._.beatHandle = t.setTimeout(function() {
7157 o(n)
7158 }, n._.beatInterval))
7159 }
7160 function c(t) {
7161 var i = t._.keepAliveData, u;
7162 t.state === r.connectionState.connected && (u = (new Date).getTime() - t._.lastMessageAt,
7163 u >= i.timeout ? (t.log("Keep alive timed out. Notifying transport that connection has been lost."),
7164 t.transport.lostConnection(t)) : u >= i.timeoutWarning ? i.userNotified || (t.log("Keep alive has been missed, connection may be dead/slow."),
7165 n(t).triggerHandler(f.onConnectionSlow),
7166 i.userNotified = !0) : i.userNotified = !1)
7167 }
7168 function e(n, t) {
7169 var i = n.url + t;
7170 return n.transport && (i += "?transport=" + n.transport.name),
7171 u.prepareQueryString(n, i)
7172 }
7173 function s(n) {
7174 this.connection = n;
7175 this.startRequested = !1;
7176 this.startCompleted = !1;
7177 this.connectionStopped = !1
7178 }
7179 var r = n.signalR, f = n.signalR.events, l = n.signalR.changeState, h = "__Start Aborted__", u;
7180 r.transports = {};
7181 s.prototype = {
7182 start: function(n, r, u) {
7183 var f = this
7184 , e = f.connection
7185 , o = !1;
7186 if (f.startRequested || f.connectionStopped) {
7187 e.log("WARNING! " + n.name + " transport cannot be started. Initialization ongoing or completed.");
7188 return
7189 }
7190 e.log(n.name + " transport starting.");
7191 f.transportTimeoutHandle = t.setTimeout(function() {
7192 o || (o = !0,
7193 e.log(n.name + " transport timed out when trying to connect."),
7194 f.transportFailed(n, i, u))
7195 }, e._.totalTransportConnectTimeout);
7196 n.start(e, function() {
7197 o || f.initReceived(n, r)
7198 }, function(t) {
7199 return o || (o = !0,
7200 f.transportFailed(n, t, u)),
7201 !f.startCompleted || f.connectionStopped
7202 })
7203 },
7204 stop: function() {
7205 this.connectionStopped = !0;
7206 t.clearTimeout(this.transportTimeoutHandle);
7207 r.transports._logic.tryAbortStartRequest(this.connection)
7208 },
7209 initReceived: function(n, i) {
7210 var u = this
7211 , f = u.connection;
7212 if (u.startRequested) {
7213 f.log("WARNING! The client received multiple init messages.");
7214 return
7215 }
7216 u.connectionStopped || (u.startRequested = !0,
7217 t.clearTimeout(u.transportTimeoutHandle),
7218 f.log(n.name + " transport connected. Initiating start request."),
7219 r.transports._logic.ajaxStart(f, function() {
7220 u.startCompleted = !0;
7221 i()
7222 }))
7223 },
7224 transportFailed: function(i, u, e) {
7225 var o = this.connection, h = o._deferral, s;
7226 this.connectionStopped || (t.clearTimeout(this.transportTimeoutHandle),
7227 this.startRequested ? this.startCompleted || (s = r._.error(r.resources.errorDuringStartRequest, u),
7228 o.log(i.name + " transport failed during the start request. Stopping the connection."),
7229 n(o).triggerHandler(f.onError, [s]),
7230 h && h.reject(s),
7231 o.stop()) : (i.stop(o),
7232 o.log(i.name + " transport failed to connect. Attempting to fall back."),
7233 e()))
7234 }
7235 };
7236 u = r.transports._logic = {
7237 ajax: function(t, i) {
7238 return n.ajax(n.extend(!0, {}, n.signalR.ajaxDefaults, {
7239 type: "GET",
7240 data: {},
7241 xhrFields: {
7242 withCredentials: t.withCredentials
7243 },
7244 contentType: t.contentType,
7245 dataType: t.ajaxDataType
7246 }, i))
7247 },
7248 pingServer: function(t) {
7249 var e, f, i = n.Deferred();
7250 return t.transport ? (e = t.url + "/ping",
7251 e = u.addQs(e, t.qs),
7252 f = u.ajax(t, {
7253 url: e,
7254 success: function(n) {
7255 var u;
7256 try {
7257 u = t._parseResponse(n)
7258 } catch (e) {
7259 i.reject(r._.transportError(r.resources.pingServerFailedParse, t.transport, e, f));
7260 t.stop();
7261 return
7262 }
7263 u.Response === "pong" ? i.resolve() : i.reject(r._.transportError(r._.format(r.resources.pingServerFailedInvalidResponse, n), t.transport, null, f))
7264 },
7265 error: function(n) {
7266 n.status === 401 || n.status === 403 ? (i.reject(r._.transportError(r._.format(r.resources.pingServerFailedStatusCode, n.status), t.transport, n, f)),
7267 t.stop()) : i.reject(r._.transportError(r.resources.pingServerFailed, t.transport, n, f))
7268 }
7269 })) : i.reject(r._.transportError(r.resources.noConnectionTransport, t.transport)),
7270 i.promise()
7271 },
7272 prepareQueryString: function(n, i) {
7273 var r;
7274 return r = u.addQs(i, "clientProtocol=" + n.clientProtocol),
7275 r = u.addQs(r, n.qs),
7276 n.token && (r += "&connectionToken=" + t.encodeURIComponent(n.token)),
7277 n.data && (r += "&connectionData=" + t.encodeURIComponent(n.data)),
7278 r
7279 },
7280 addQs: function(t, i) {
7281 var r = t.indexOf("?") !== -1 ? "&" : "?", u;
7282 if (!i)
7283 return t;
7284 if (typeof i == "object")
7285 return t + r + n.param(i);
7286 if (typeof i == "string")
7287 return u = i.charAt(0),
7288 (u === "?" || u === "&") && (r = ""),
7289 t + r + i;
7290 throw new Error("Query string property must be either a string or object.");
7291 },
7292 getUrl: function(n, i, r, f, e) {
7293 var h = i === "webSockets" ? "" : n.baseUrl
7294 , o = h + n.appRelativeUrl
7295 , s = "transport=" + i;
7296 return !e && n.groupsToken && (s += "&groupsToken=" + t.encodeURIComponent(n.groupsToken)),
7297 r ? (o += f ? "/poll" : "/reconnect",
7298 !e && n.messageId && (s += "&messageId=" + t.encodeURIComponent(n.messageId))) : o += "/connect",
7299 o += "?" + s,
7300 o = u.prepareQueryString(n, o),
7301 e || (o += "&tid=" + Math.floor(Math.random() * 11)),
7302 o
7303 },
7304 maximizePersistentResponse: function(n) {
7305 return {
7306 MessageId: n.C,
7307 Messages: n.M,
7308 Initialized: typeof n.S != "undefined" ? !0 : !1,
7309 ShouldReconnect: typeof n.T != "undefined" ? !0 : !1,
7310 LongPollDelay: n.L,
7311 GroupsToken: n.G
7312 }
7313 },
7314 updateGroups: function(n, t) {
7315 t && (n.groupsToken = t)
7316 },
7317 stringifySend: function(n, t) {
7318 return typeof t == "string" || typeof t == "undefined" || t === null ? t : n.json.stringify(t)
7319 },
7320 ajaxSend: function(t, i) {
7321 var h = u.stringifySend(t, i), c = e(t, "/send"), o, s = function(t, u) {
7322 n(u).triggerHandler(f.onError, [r._.transportError(r.resources.sendFailed, u.transport, t, o), i])
7323 };
7324 return o = u.ajax(t, {
7325 url: c,
7326 type: t.ajaxDataType === "jsonp" ? "GET" : "POST",
7327 contentType: r._.defaultContentType,
7328 data: {
7329 data: h
7330 },
7331 success: function(n) {
7332 var i;
7333 if (n) {
7334 try {
7335 i = t._parseResponse(n)
7336 } catch (r) {
7337 s(r, t);
7338 t.stop();
7339 return
7340 }
7341 u.triggerReceived(t, i)
7342 }
7343 },
7344 error: function(n, i) {
7345 i !== "abort" && i !== "parsererror" && s(n, t)
7346 }
7347 })
7348 },
7349 ajaxAbort: function(n, t) {
7350 if (typeof n.transport != "undefined") {
7351 t = typeof t == "undefined" ? !0 : t;
7352 var i = e(n, "/abort");
7353 u.ajax(n, {
7354 url: i,
7355 async: t,
7356 timeout: 1e3,
7357 type: "POST"
7358 });
7359 n.log("Fired ajax abort async = " + t + ".")
7360 }
7361 },
7362 ajaxStart: function(t, i) {
7363 var s = function(n) {
7364 var i = t._deferral;
7365 i && i.reject(n)
7366 }
7367 , o = function(i) {
7368 t.log("The start request failed. Stopping the connection.");
7369 n(t).triggerHandler(f.onError, [i]);
7370 s(i);
7371 t.stop()
7372 };
7373 t._.startRequest = u.ajax(t, {
7374 url: e(t, "/start"),
7375 success: function(n, u, f) {
7376 var e;
7377 try {
7378 e = t._parseResponse(n)
7379 } catch (s) {
7380 o(r._.error(r._.format(r.resources.errorParsingStartResponse, n), s, f));
7381 return
7382 }
7383 e.Response === "started" ? i() : o(r._.error(r._.format(r.resources.invalidStartResponse, n), null, f))
7384 },
7385 error: function(n, i, u) {
7386 i !== h ? o(r._.error(r.resources.errorDuringStartRequest, u, n)) : (t.log("The start request aborted because connection.stop() was called."),
7387 s(r._.error(r.resources.stoppedDuringStartRequest, null, n)))
7388 }
7389 })
7390 },
7391 tryAbortStartRequest: function(n) {
7392 n._.startRequest && (n._.startRequest.abort(h),
7393 delete n._.startRequest)
7394 },
7395 tryInitialize: function(n, t) {
7396 n.Initialized && t()
7397 },
7398 triggerReceived: function(t, i) {
7399 t._.connectingMessageBuffer.tryBuffer(i) || n(t).triggerHandler(f.onReceived, [i])
7400 },
7401 processMessages: function(t, i, r) {
7402 var f;
7403 u.markLastMessage(t);
7404 i && (f = u.maximizePersistentResponse(i),
7405 u.updateGroups(t, f.GroupsToken),
7406 f.MessageId && (t.messageId = f.MessageId),
7407 f.Messages && (n.each(f.Messages, function(n, i) {
7408 u.triggerReceived(t, i)
7409 }),
7410 u.tryInitialize(f, r)))
7411 },
7412 monitorKeepAlive: function(t) {
7413 var i = t._.keepAliveData;
7414 i.monitoring ? t.log("Tried to monitor keep alive but it's already being monitored.") : (i.monitoring = !0,
7415 u.markLastMessage(t),
7416 t._.keepAliveData.reconnectKeepAliveUpdate = function() {
7417 u.markLastMessage(t)
7418 }
7419 ,
7420 n(t).bind(f.onReconnect, t._.keepAliveData.reconnectKeepAliveUpdate),
7421 t.log("Now monitoring keep alive with a warning timeout of " + i.timeoutWarning + ", keep alive timeout of " + i.timeout + " and disconnecting timeout of " + t.disconnectTimeout))
7422 },
7423 stopMonitoringKeepAlive: function(t) {
7424 var i = t._.keepAliveData;
7425 i.monitoring && (i.monitoring = !1,
7426 n(t).unbind(f.onReconnect, t._.keepAliveData.reconnectKeepAliveUpdate),
7427 t._.keepAliveData = {},
7428 t.log("Stopping the monitoring of the keep alive."))
7429 },
7430 startHeartbeat: function(n) {
7431 n._.lastActiveAt = (new Date).getTime();
7432 o(n)
7433 },
7434 markLastMessage: function(n) {
7435 n._.lastMessageAt = (new Date).getTime()
7436 },
7437 markActive: function(n) {
7438 return u.verifyLastActive(n) ? (n._.lastActiveAt = (new Date).getTime(),
7439 !0) : !1
7440 },
7441 isConnectedOrReconnecting: function(n) {
7442 return n.state === r.connectionState.connected || n.state === r.connectionState.reconnecting
7443 },
7444 ensureReconnectingState: function(t) {
7445 return l(t, r.connectionState.connected, r.connectionState.reconnecting) === !0 && n(t).triggerHandler(f.onReconnecting),
7446 t.state === r.connectionState.reconnecting
7447 },
7448 clearReconnectTimeout: function(n) {
7449 n && n._.reconnectTimeout && (t.clearTimeout(n._.reconnectTimeout),
7450 delete n._.reconnectTimeout)
7451 },
7452 verifyLastActive: function(t) {
7453 if ((new Date).getTime() - t._.lastActiveAt >= t.reconnectWindow) {
7454 var i = r._.format(r.resources.reconnectWindowTimeout, new Date(t._.lastActiveAt), t.reconnectWindow);
7455 return t.log(i),
7456 n(t).triggerHandler(f.onError, [r._.error(i, "TimeoutException")]),
7457 t.stop(!1, !1),
7458 !1
7459 }
7460 return !0
7461 },
7462 reconnect: function(n, i) {
7463 var f = r.transports[i];
7464 if (u.isConnectedOrReconnecting(n) && !n._.reconnectTimeout) {
7465 if (!u.verifyLastActive(n))
7466 return;
7467 n._.reconnectTimeout = t.setTimeout(function() {
7468 u.verifyLastActive(n) && (f.stop(n),
7469 u.ensureReconnectingState(n) && (n.log(i + " reconnecting."),
7470 f.start(n)))
7471 }, n.reconnectDelay)
7472 }
7473 },
7474 handleParseFailure: function(t, i, u, e, o) {
7475 var s = r._.transportError(r._.format(r.resources.parseFailed, i), t.transport, u, o);
7476 e && e(s) ? t.log("Failed to parse server response while attempting to connect.") : (n(t).triggerHandler(f.onError, [s]),
7477 t.stop())
7478 },
7479 initHandler: function(n) {
7480 return new s(n)
7481 },
7482 foreverFrame: {
7483 count: 0,
7484 connections: {}
7485 }
7486 }
7487}(window.jQuery, window),
7488function(n, t) {
7489 var r = n.signalR
7490 , u = n.signalR.events
7491 , f = n.signalR.changeState
7492 , i = r.transports._logic;
7493 r.transports.webSockets = {
7494 name: "webSockets",
7495 supportsKeepAlive: function() {
7496 return !0
7497 },
7498 send: function(t, f) {
7499 var e = i.stringifySend(t, f);
7500 try {
7501 t.socket.send(e)
7502 } catch (o) {
7503 n(t).triggerHandler(u.onError, [r._.transportError(r.resources.webSocketsInvalidState, t.transport, o, t.socket), f])
7504 }
7505 },
7506 start: function(e, o, s) {
7507 var h, c = !1, l = this, a = !o, v = n(e);
7508 if (!t.WebSocket) {
7509 s();
7510 return
7511 }
7512 e.socket || (h = e.webSocketServerUrl ? e.webSocketServerUrl : e.wsProtocol + e.host,
7513 h += i.getUrl(e, this.name, a),
7514 e.log("Connecting to websocket endpoint '" + h + "'."),
7515 e.socket = new t.WebSocket(h),
7516 e.socket.onopen = function() {
7517 c = !0;
7518 e.log("Websocket opened.");
7519 i.clearReconnectTimeout(e);
7520 f(e, r.connectionState.reconnecting, r.connectionState.connected) === !0 && v.triggerHandler(u.onReconnect)
7521 }
7522 ,
7523 e.socket.onclose = function(t) {
7524 var i;
7525 this === e.socket && (c && typeof t.wasClean != "undefined" && t.wasClean === !1 ? (i = r._.transportError(r.resources.webSocketClosed, e.transport, t),
7526 e.log("Unclean disconnect from websocket: " + (t.reason || "[no reason given]."))) : e.log("Websocket closed."),
7527 s && s(i) || (i && n(e).triggerHandler(u.onError, [i]),
7528 l.reconnect(e)))
7529 }
7530 ,
7531 e.socket.onmessage = function(t) {
7532 var r;
7533 try {
7534 r = e._parseResponse(t.data)
7535 } catch (u) {
7536 i.handleParseFailure(e, t.data, u, s, t);
7537 return
7538 }
7539 r && (n.isEmptyObject(r) || r.M ? i.processMessages(e, r, o) : i.triggerReceived(e, r))
7540 }
7541 )
7542 },
7543 reconnect: function(n) {
7544 i.reconnect(n, this.name)
7545 },
7546 lostConnection: function(n) {
7547 this.reconnect(n)
7548 },
7549 stop: function(n) {
7550 i.clearReconnectTimeout(n);
7551 n.socket && (n.log("Closing the Websocket."),
7552 n.socket.close(),
7553 n.socket = null)
7554 },
7555 abort: function(n, t) {
7556 i.ajaxAbort(n, t)
7557 }
7558 }
7559}(window.jQuery, window),
7560function(n, t) {
7561 var i = n.signalR
7562 , u = n.signalR.events
7563 , e = n.signalR.changeState
7564 , r = i.transports._logic
7565 , f = function(n) {
7566 t.clearTimeout(n._.reconnectAttemptTimeoutHandle);
7567 delete n._.reconnectAttemptTimeoutHandle
7568 };
7569 i.transports.serverSentEvents = {
7570 name: "serverSentEvents",
7571 supportsKeepAlive: function() {
7572 return !0
7573 },
7574 timeOut: 3e3,
7575 start: function(o, s, h) {
7576 var c = this, l = !1, a = n(o), v = !s, y;
7577 if (o.eventSource && (o.log("The connection already has an event source. Stopping it."),
7578 o.stop()),
7579 !t.EventSource) {
7580 h && (o.log("This browser doesn't support SSE."),
7581 h());
7582 return
7583 }
7584 y = r.getUrl(o, this.name, v);
7585 try {
7586 o.log("Attempting to connect to SSE endpoint '" + y + "'.");
7587 o.eventSource = new t.EventSource(y,{
7588 withCredentials: o.withCredentials
7589 })
7590 } catch (p) {
7591 o.log("EventSource failed trying to connect with error " + p.Message + ".");
7592 h ? h() : (a.triggerHandler(u.onError, [i._.transportError(i.resources.eventSourceFailedToConnect, o.transport, p)]),
7593 v && c.reconnect(o));
7594 return
7595 }
7596 v && (o._.reconnectAttemptTimeoutHandle = t.setTimeout(function() {
7597 l === !1 && o.eventSource.readyState !== t.EventSource.OPEN && c.reconnect(o)
7598 }, c.timeOut));
7599 o.eventSource.addEventListener("open", function() {
7600 o.log("EventSource connected.");
7601 f(o);
7602 r.clearReconnectTimeout(o);
7603 l === !1 && (l = !0,
7604 e(o, i.connectionState.reconnecting, i.connectionState.connected) === !0 && a.triggerHandler(u.onReconnect))
7605 }, !1);
7606 o.eventSource.addEventListener("message", function(n) {
7607 var t;
7608 if (n.data !== "initialized") {
7609 try {
7610 t = o._parseResponse(n.data)
7611 } catch (i) {
7612 r.handleParseFailure(o, n.data, i, h, n);
7613 return
7614 }
7615 r.processMessages(o, t, s)
7616 }
7617 }, !1);
7618 o.eventSource.addEventListener("error", function(n) {
7619 var r = i._.transportError(i.resources.eventSourceError, o.transport, n);
7620 this === o.eventSource && (h && h(r) || (o.log("EventSource readyState: " + o.eventSource.readyState + "."),
7621 n.eventPhase === t.EventSource.CLOSED ? (o.log("EventSource reconnecting due to the server connection ending."),
7622 c.reconnect(o)) : (o.log("EventSource error."),
7623 a.triggerHandler(u.onError, [r]))))
7624 }, !1)
7625 },
7626 reconnect: function(n) {
7627 r.reconnect(n, this.name)
7628 },
7629 lostConnection: function(n) {
7630 this.reconnect(n)
7631 },
7632 send: function(n, t) {
7633 r.ajaxSend(n, t)
7634 },
7635 stop: function(n) {
7636 f(n);
7637 r.clearReconnectTimeout(n);
7638 n && n.eventSource && (n.log("EventSource calling close()."),
7639 n.eventSource.close(),
7640 n.eventSource = null,
7641 delete n.eventSource)
7642 },
7643 abort: function(n, t) {
7644 r.ajaxAbort(n, t)
7645 }
7646 }
7647}(window.jQuery, window),
7648function(n, t) {
7649 var r = n.signalR
7650 , e = n.signalR.events
7651 , o = n.signalR.changeState
7652 , i = r.transports._logic
7653 , u = function() {
7654 var n = t.document.createElement("iframe");
7655 return n.setAttribute("style", "position:absolute;top:0;left:0;width:0;height:0;visibility:visible;"),
7656 n
7657 }
7658 , f = function() {
7659 var i = null
7660 , f = 1e3
7661 , n = 0;
7662 return {
7663 prevent: function() {
7664 r._.ieVersion <= 8 && (n === 0 && (i = t.setInterval(function() {
7665 var n = u();
7666 t.document.body.appendChild(n);
7667 t.document.body.removeChild(n);
7668 n = null
7669 }, f)),
7670 n++)
7671 },
7672 cancel: function() {
7673 n === 1 && t.clearInterval(i);
7674 n > 0 && n--
7675 }
7676 }
7677 }();
7678 r.transports.foreverFrame = {
7679 name: "foreverFrame",
7680 supportsKeepAlive: function() {
7681 return !0
7682 },
7683 iframeClearThreshold: 50,
7684 start: function(n, r, e) {
7685 var l = this, s = i.foreverFrame.count += 1, h, o = u(), c = function() {
7686 n.log("Forever frame iframe finished loading and is no longer receiving messages.");
7687 e && e() || l.reconnect(n)
7688 };
7689 if (t.EventSource) {
7690 e && (n.log("Forever Frame is not supported by SignalR on browsers with SSE support."),
7691 e());
7692 return
7693 }
7694 o.setAttribute("data-signalr-connection-id", n.id);
7695 f.prevent();
7696 h = i.getUrl(n, this.name);
7697 h += "&frameId=" + s;
7698 t.document.documentElement.appendChild(o);
7699 n.log("Binding to iframe's load event.");
7700 o.addEventListener ? o.addEventListener("load", c, !1) : o.attachEvent && o.attachEvent("onload", c);
7701 o.src = h;
7702 i.foreverFrame.connections[s] = n;
7703 n.frame = o;
7704 n.frameId = s;
7705 r && (n.onSuccess = function() {
7706 n.log("Iframe transport started.");
7707 r()
7708 }
7709 )
7710 },
7711 reconnect: function(n) {
7712 var r = this;
7713 i.isConnectedOrReconnecting(n) && i.verifyLastActive(n) && t.setTimeout(function() {
7714 if (i.verifyLastActive(n) && n.frame && i.ensureReconnectingState(n)) {
7715 var u = n.frame
7716 , t = i.getUrl(n, r.name, !0) + "&frameId=" + n.frameId;
7717 n.log("Updating iframe src to '" + t + "'.");
7718 u.src = t
7719 }
7720 }, n.reconnectDelay)
7721 },
7722 lostConnection: function(n) {
7723 this.reconnect(n)
7724 },
7725 send: function(n, t) {
7726 i.ajaxSend(n, t)
7727 },
7728 receive: function(t, u) {
7729 var f, e, o;
7730 if (t.json !== t._originalJson && (u = t._originalJson.stringify(u)),
7731 o = t._parseResponse(u),
7732 i.processMessages(t, o, t.onSuccess),
7733 t.state === n.signalR.connectionState.connected && (t.frameMessageCount = (t.frameMessageCount || 0) + 1,
7734 t.frameMessageCount > r.transports.foreverFrame.iframeClearThreshold && (t.frameMessageCount = 0,
7735 f = t.frame.contentWindow || t.frame.contentDocument,
7736 f && f.document && f.document.body)))
7737 for (e = f.document.body; e.firstChild; )
7738 e.removeChild(e.firstChild)
7739 },
7740 stop: function(n) {
7741 var r = null;
7742 if (f.cancel(),
7743 n.frame) {
7744 if (n.frame.stop)
7745 n.frame.stop();
7746 else
7747 try {
7748 r = n.frame.contentWindow || n.frame.contentDocument;
7749 r.document && r.document.execCommand && r.document.execCommand("Stop")
7750 } catch (u) {
7751 n.log("Error occured when stopping foreverFrame transport. Message = " + u.message + ".")
7752 }
7753 n.frame.parentNode === t.document.body && t.document.body.removeChild(n.frame);
7754 delete i.foreverFrame.connections[n.frameId];
7755 n.frame = null;
7756 n.frameId = null;
7757 delete n.frame;
7758 delete n.frameId;
7759 delete n.onSuccess;
7760 delete n.frameMessageCount;
7761 n.log("Stopping forever frame.")
7762 }
7763 },
7764 abort: function(n, t) {
7765 i.ajaxAbort(n, t)
7766 },
7767 getConnection: function(n) {
7768 return i.foreverFrame.connections[n]
7769 },
7770 started: function(t) {
7771 o(t, r.connectionState.reconnecting, r.connectionState.connected) === !0 && n(t).triggerHandler(e.onReconnect)
7772 }
7773 }
7774}(window.jQuery, window),
7775function(n, t) {
7776 var r = n.signalR
7777 , u = n.signalR.events
7778 , e = n.signalR.changeState
7779 , f = n.signalR.isDisconnecting
7780 , i = r.transports._logic;
7781 r.transports.longPolling = {
7782 name: "longPolling",
7783 supportsKeepAlive: function() {
7784 return !1
7785 },
7786 reconnectDelay: 3e3,
7787 start: function(o, s, h) {
7788 var a = this
7789 , v = function() {
7790 v = n.noop;
7791 o.log("LongPolling connected.");
7792 s()
7793 }
7794 , y = function(n) {
7795 return h(n) ? (o.log("LongPolling failed to connect."),
7796 !0) : !1
7797 }
7798 , c = o._
7799 , l = 0
7800 , p = function(i) {
7801 t.clearTimeout(c.reconnectTimeoutId);
7802 c.reconnectTimeoutId = null;
7803 e(i, r.connectionState.reconnecting, r.connectionState.connected) === !0 && (i.log("Raising the reconnect event"),
7804 n(i).triggerHandler(u.onReconnect))
7805 }
7806 , w = 36e5;
7807 o.pollXhr && (o.log("Polling xhr requests already exists, aborting."),
7808 o.stop());
7809 o.messageId = null;
7810 c.reconnectTimeoutId = null;
7811 c.pollTimeoutId = t.setTimeout(function() {
7812 (function e(s, h) {
7813 var g = s.messageId
7814 , nt = g === null
7815 , k = !nt
7816 , tt = !h
7817 , d = i.getUrl(s, a.name, k, tt, !0)
7818 , b = {};
7819 (s.messageId && (b.messageId = s.messageId),
7820 s.groupsToken && (b.groupsToken = s.groupsToken),
7821 f(s) !== !0) && (o.log("Opening long polling request to '" + d + "'."),
7822 s.pollXhr = i.ajax(o, {
7823 xhrFields: {
7824 onprogress: function() {
7825 i.markLastMessage(o)
7826 }
7827 },
7828 url: d,
7829 type: "POST",
7830 contentType: r._.defaultContentType,
7831 data: b,
7832 timeout: o._.pollTimeout,
7833 success: function(r) {
7834 var h, w = 0, u, a;
7835 o.log("Long poll complete.");
7836 l = 0;
7837 try {
7838 h = o._parseResponse(r)
7839 } catch (b) {
7840 i.handleParseFailure(s, r, b, y, s.pollXhr);
7841 return
7842 }
7843 (c.reconnectTimeoutId !== null && p(s),
7844 h && (u = i.maximizePersistentResponse(h)),
7845 i.processMessages(s, h, v),
7846 u && n.type(u.LongPollDelay) === "number" && (w = u.LongPollDelay),
7847 f(s) !== !0) && (a = u && u.ShouldReconnect,
7848 !a || i.ensureReconnectingState(s)) && (w > 0 ? c.pollTimeoutId = t.setTimeout(function() {
7849 e(s, a)
7850 }, w) : e(s, a))
7851 },
7852 error: function(f, h) {
7853 var v = r._.transportError(r.resources.longPollFailed, o.transport, f, s.pollXhr);
7854 if (t.clearTimeout(c.reconnectTimeoutId),
7855 c.reconnectTimeoutId = null,
7856 h === "abort") {
7857 o.log("Aborted xhr request.");
7858 return
7859 }
7860 if (!y(v)) {
7861 if (l++,
7862 o.state !== r.connectionState.reconnecting && (o.log("An error occurred using longPolling. Status = " + h + ". Response = " + f.responseText + "."),
7863 n(s).triggerHandler(u.onError, [v])),
7864 (o.state === r.connectionState.connected || o.state === r.connectionState.reconnecting) && !i.verifyLastActive(o))
7865 return;
7866 if (!i.ensureReconnectingState(s))
7867 return;
7868 c.pollTimeoutId = t.setTimeout(function() {
7869 e(s, !0)
7870 }, a.reconnectDelay)
7871 }
7872 }
7873 }),
7874 k && h === !0 && (c.reconnectTimeoutId = t.setTimeout(function() {
7875 p(s)
7876 }, Math.min(1e3 * (Math.pow(2, l) - 1), w))))
7877 }
7878 )(o)
7879 }, 250)
7880 },
7881 lostConnection: function(n) {
7882 n.pollXhr && n.pollXhr.abort("lostConnection")
7883 },
7884 send: function(n, t) {
7885 i.ajaxSend(n, t)
7886 },
7887 stop: function(n) {
7888 t.clearTimeout(n._.pollTimeoutId);
7889 t.clearTimeout(n._.reconnectTimeoutId);
7890 delete n._.pollTimeoutId;
7891 delete n._.reconnectTimeoutId;
7892 n.pollXhr && (n.pollXhr.abort(),
7893 n.pollXhr = null,
7894 delete n.pollXhr)
7895 },
7896 abort: function(n, t) {
7897 i.ajaxAbort(n, t)
7898 }
7899 }
7900}(window.jQuery, window),
7901function(n) {
7902 function r(n) {
7903 return n + s
7904 }
7905 function e(n, t, i) {
7906 for (var f = n.length, u = [], r = 0; r < f; r += 1)
7907 n.hasOwnProperty(r) && (u[r] = t.call(i, n[r], r, n));
7908 return u
7909 }
7910 function o(t) {
7911 return n.isFunction(t) ? null : n.type(t) === "undefined" ? null : t
7912 }
7913 function u(n) {
7914 for (var t in n)
7915 if (n.hasOwnProperty(t))
7916 return !0;
7917 return !1
7918 }
7919 function f(n, t) {
7920 var i = n._.invocationCallbacks, r, f;
7921 u(i) && n.log("Clearing hub invocation callbacks with error: " + t + ".");
7922 n._.invocationCallbackId = 0;
7923 delete n._.invocationCallbacks;
7924 n._.invocationCallbacks = {};
7925 for (f in i)
7926 r = i[f],
7927 r.method.call(r.scope, {
7928 E: t
7929 })
7930 }
7931 function i(n, t) {
7932 return new i.fn.init(n,t)
7933 }
7934 function t(i, r) {
7935 var u = {
7936 qs: null,
7937 logging: !1,
7938 useDefaultPath: !0
7939 };
7940 return n.extend(u, r),
7941 (!i || u.useDefaultPath) && (i = (i || "") + "/signalr"),
7942 new t.fn.init(i,u)
7943 }
7944 var s = ".hubProxy"
7945 , h = n.signalR;
7946 i.fn = i.prototype = {
7947 init: function(n, t) {
7948 this.state = {};
7949 this.connection = n;
7950 this.hubName = t;
7951 this._ = {
7952 callbackMap: {}
7953 }
7954 },
7955 constructor: i,
7956 hasSubscriptions: function() {
7957 return u(this._.callbackMap)
7958 },
7959 on: function(t, i) {
7960 var u = this
7961 , f = u._.callbackMap;
7962 return t = t.toLowerCase(),
7963 f[t] || (f[t] = {}),
7964 f[t][i] = function(n, t) {
7965 i.apply(u, t)
7966 }
7967 ,
7968 n(u).bind(r(t), f[t][i]),
7969 u
7970 },
7971 off: function(t, i) {
7972 var e = this, o = e._.callbackMap, f;
7973 return t = t.toLowerCase(),
7974 f = o[t],
7975 f && (f[i] ? (n(e).unbind(r(t), f[i]),
7976 delete f[i],
7977 u(f) || delete o[t]) : i || (n(e).unbind(r(t)),
7978 delete o[t])),
7979 e
7980 },
7981 invoke: function(t) {
7982 var i = this
7983 , r = i.connection
7984 , s = n.makeArray(arguments).slice(1)
7985 , c = e(s, o)
7986 , f = {
7987 H: i.hubName,
7988 M: t,
7989 A: c,
7990 I: r._.invocationCallbackId
7991 }
7992 , u = n.Deferred()
7993 , l = function(f) {
7994 var e = i._maximizeHubResponse(f), s, o;
7995 n.extend(i.state, e.State);
7996 e.Progress ? u.notifyWith ? u.notifyWith(i, [e.Progress.Data]) : r._.progressjQueryVersionLogged || (r.log("A hub method invocation progress update was received but the version of jQuery in use (" + n.prototype.jquery + ") does not support progress updates. Upgrade to jQuery 1.7+ to receive progress notifications."),
7997 r._.progressjQueryVersionLogged = !0) : e.Error ? (e.StackTrace && r.log(e.Error + "\n" + e.StackTrace + "."),
7998 s = e.IsHubException ? "HubException" : "Exception",
7999 o = h._.error(e.Error, s),
8000 o.data = e.ErrorData,
8001 r.log(i.hubName + "." + t + " failed to execute. Error: " + o.message),
8002 u.rejectWith(i, [o])) : (r.log("Invoked " + i.hubName + "." + t),
8003 u.resolveWith(i, [e.Result]))
8004 };
8005 return r._.invocationCallbacks[r._.invocationCallbackId.toString()] = {
8006 scope: i,
8007 method: l
8008 },
8009 r._.invocationCallbackId += 1,
8010 n.isEmptyObject(i.state) || (f.S = i.state),
8011 r.log("Invoking " + i.hubName + "." + t),
8012 r.send(f),
8013 u.promise()
8014 },
8015 _maximizeHubResponse: function(n) {
8016 return {
8017 State: n.S,
8018 Result: n.R,
8019 Progress: n.P ? {
8020 Id: n.P.I,
8021 Data: n.P.D
8022 } : null,
8023 Id: n.I,
8024 IsHubException: n.H,
8025 Error: n.E,
8026 StackTrace: n.T,
8027 ErrorData: n.D
8028 }
8029 }
8030 };
8031 i.fn.init.prototype = i.fn;
8032 t.fn = t.prototype = n.connection();
8033 t.fn.init = function(t, i) {
8034 var e = {
8035 qs: null,
8036 logging: !0,
8037 useDefaultPath: !0
8038 }
8039 , u = this;
8040 n.extend(e, i);
8041 n.signalR.fn.init.call(u, t, e.qs, e.logging);
8042 u.proxies = {};
8043 u._.invocationCallbackId = 0;
8044 u._.invocationCallbacks = {};
8045 u.received(function(t) {
8046 var f, o, e, i, s, h;
8047 t && (typeof t.P != "undefined" ? (e = t.P.I.toString(),
8048 i = u._.invocationCallbacks[e],
8049 i && i.method.call(i.scope, t)) : typeof t.I != "undefined" ? (e = t.I.toString(),
8050 i = u._.invocationCallbacks[e],
8051 i && (u._.invocationCallbacks[e] = null,
8052 delete u._.invocationCallbacks[e],
8053 i.method.call(i.scope, t))) : (f = this._maximizeClientHubInvocation(t),
8054 u.log("Triggering client hub event '" + f.Method + "' on hub '" + f.Hub + "'."),
8055 s = f.Hub.toLowerCase(),
8056 h = f.Method.toLowerCase(),
8057 o = this.proxies[s],
8058 n.extend(o.state, f.State),
8059 n(o).triggerHandler(r(h), [f.Args])))
8060 });
8061 u.error(function(n, t) {
8062 var i, r;
8063 t && (i = t.I,
8064 r = u._.invocationCallbacks[i],
8065 r && (u._.invocationCallbacks[i] = null,
8066 delete u._.invocationCallbacks[i],
8067 r.method.call(r.scope, {
8068 E: n
8069 })))
8070 });
8071 u.reconnecting(function() {
8072 u.transport && u.transport.name === "webSockets" && f(u, "Connection started reconnecting before invocation result was received.")
8073 });
8074 u.disconnected(function() {
8075 f(u, "Connection was disconnected before invocation result was received.")
8076 })
8077 }
8078 ;
8079 t.fn._maximizeClientHubInvocation = function(n) {
8080 return {
8081 Hub: n.H,
8082 Method: n.M,
8083 Args: n.A,
8084 State: n.S
8085 }
8086 }
8087 ;
8088 t.fn._registerSubscribedHubs = function() {
8089 var t = this;
8090 t._subscribedToHubs || (t._subscribedToHubs = !0,
8091 t.starting(function() {
8092 var i = [];
8093 n.each(t.proxies, function(n) {
8094 this.hasSubscriptions() && (i.push({
8095 name: n
8096 }),
8097 t.log("Client subscribed to hub '" + n + "'."))
8098 });
8099 i.length === 0 && t.log("No hubs have been subscribed to. The client will not receive data from hubs. To fix, declare at least one client side function prior to connection start for each hub you wish to subscribe to.");
8100 t.data = t.json.stringify(i)
8101 }))
8102 }
8103 ;
8104 t.fn.createHubProxy = function(n) {
8105 n = n.toLowerCase();
8106 var t = this.proxies[n];
8107 return t || (t = i(this, n),
8108 this.proxies[n] = t),
8109 this._registerSubscribedHubs(),
8110 t
8111 }
8112 ;
8113 t.fn.init.prototype = t.fn;
8114 n.hubConnection = t
8115}(window.jQuery, window),
8116function(n) {
8117 n.signalR.version = "2.2.0"
8118}(window.jQuery)