· 5 years ago · Mar 01, 2021, 06:00 AM
1(function(qc) {
2 function hc() {}
3
4 function r() {}
5
6 function q(a) {
7 this.Ta = a;
8 Error.captureStackTrace && Error.captureStackTrace(this, q)
9 }
10
11 function Wa(a) {
12 this.g = v.Ga(Wa.N);
13 v.Ea(this.g).get("features").textContent = a.join(", ")
14 }
15
16 function Xa() {
17 this.nl = new Qb;
18 this.g = v.Ga(Xa.N);
19 var a = v.Ea(this.g);
20 this.rg = a.get("ping");
21 this.wp = a.get("max-ping");
22 this.wo = a.get("fps");
23 v.xe(a.get("graph"), this.nl.g)
24 }
25
26 function P(a, b, c) {
27 var d = this;
28 this.g = v.Ga(P.N);
29 var e = v.Ea(this.g);
30 e.get("ok");
31 e.get("cancel");
32 this.Vd = e.get("content");
33 for (var f =
34 e.get("title"), e = e.get("buttons"), g = 0, k = 0; k < c.length;) {
35 var l = c[k++],
36 t = window.document.createElement("button");
37 t.textContent = l;
38 t.onclick = function(a) {
39 return function() {
40 y.i(d.Va, a[0])
41 }
42 }([g++]);
43 e.appendChild(t)
44 }
45 this.Vd.textContent = b;
46 f.textContent = a
47 }
48
49 function aa(a) {
50 function b(a) {
51 var b = window.document.createElement("div");
52 b.className = "inputrow";
53 var c = window.document.createElement("div");
54 c.textContent = a;
55 b.appendChild(c);
56 for (var c = p.Eo(a), d = 0; d < c.length;) {
57 var e = [c[d]];
58 ++d;
59 var f = [window.document.createElement("div")],
60 g = e[0];
61 J.startsWith(e[0], "Key") && (g = D.substr(e[0], 3, null));
62 f[0].textContent = g;
63 b.appendChild(f[0]);
64 g = window.document.createElement("i");
65 g.className = "icon-cancel";
66 g.onclick = function(a, b) {
67 return function() {
68 p.Jq(b[0]);
69 n.A.tg.Xa(p);
70 a[0].remove()
71 }
72 }(f, e);
73 f[0].appendChild(g)
74 }
75 c = window.document.createElement("i");
76 c.className = "icon-plus";
77 b.appendChild(c);
78 c.onclick = function() {
79 q.classList.toggle("show", !0);
80 q.focus();
81 q.onkeydown = function(b) {
82 q.classList.toggle("show", !1);
83 b.stopPropagation();
84 b = b.code;
85 null == p.L(b) &&
86 (p.Pa(b, a), n.A.tg.Xa(p), r())
87 }
88 };
89 return b
90 }
91
92 function c(a, b, c) {
93 a = l.get(a);
94 if (null == c) a.hidden = !0;
95 else {
96 a.innerHTML = b + ": <div class='flagico'></div> <span></span>";
97 b = a.querySelector(".flagico");
98 a = a.querySelector("span");
99 try {
100 b.classList.add("f-" + c.ub)
101 } catch (vc) {}
102 a.textContent = c.ub.toUpperCase()
103 }
104 }
105
106 function d(a, b, c, d) {
107 var e = l.get(a);
108 e.selectedIndex = d(b.L());
109 e.onchange = function() {
110 var a = c(e.selectedIndex);
111 b.Xa(a)
112 }
113 }
114
115 function e(a, b, c) {
116 function d(a) {
117 e.classList.toggle("icon-ok", a);
118 e.classList.toggle("icon-cancel",
119 !a)
120 }
121 a = l.get(a);
122 a.classList.add("toggle");
123 var e = window.document.createElement("i");
124 e.classList.add("icon-ok");
125 a.insertBefore(e, a.firstChild);
126 a.onclick = function() {
127 var a = !b.L();
128 b.Xa(a);
129 d(a);
130 null != c && c(a)
131 };
132 d(b.L())
133 }
134
135 function f(a) {
136 var b = {
137 Jm: l.get(a + "btn"),
138 bh: l.get(a + "sec")
139 };
140 t.push(b);
141 b.Jm.onclick = function() {
142 g(b)
143 }
144 }
145
146 function g(a) {
147 for (var b = 0, c = 0; c < t.length;) {
148 var d = t[c];
149 ++c;
150 var e = d == a;
151 e && (aa.$l = b);
152 d.bh.classList.toggle("selected", e);
153 d.Jm.classList.toggle("selected", e);
154 ++b
155 }
156 }
157 null == a && (a = !1);
158 var k = this;
159 this.g =
160 v.Ga(aa.N);
161 var l = v.Ea(this.g);
162 this.nd = l.get("close");
163 var t = [];
164 f("sound");
165 f("video");
166 f("misc");
167 f("input");
168 g(t[aa.$l]);
169 e("tsound-main", n.A.pm, function(a) {
170 n.Na.im(a ? 1 : 0)
171 });
172 e("tsound-chat", n.A.Hi);
173 e("tsound-highlight", n.A.om);
174 e("tsound-crowd", n.A.nm);
175 d("viewmode", n.A.Tb, function(a) {
176 return a - 1
177 }, function(a) {
178 return a + 1
179 });
180 d("fps", n.A.Fh, function(a) {
181 return a
182 }, function(a) {
183 return a
184 });
185 var h = [1, .75, .5, .25];
186 d("resscale", n.A.Sl, function(a) {
187 return h[a]
188 }, function(a) {
189 for (var b = 0, c = h.length - 1; b < c && !(h[b] <= a);) ++b;
190 return b
191 });
192 e("tvideo-teamcol", n.A.xm);
193 e("tvideo-showindicators", n.A.Ak);
194 e("tvideo-showavatars", n.A.lm);
195 var m = null,
196 m = function() {
197 var b = n.A.Ne.L();
198 c("loc", "Detected location", n.A.Me.L());
199 c("loc-ovr", "Location override", b);
200 var d = l.get("loc-ovr-btn");
201 d.disabled = !a;
202 null == b ? (d.textContent = "Override location", d.onclick = function() {
203 A.i(k.Ep)
204 }) : (d.textContent = "Remove override", d.onclick = function() {
205 n.A.Ne.Xa(null);
206 m()
207 })
208 };
209 m();
210 var p = n.A.tg.L(),
211 q = l.get("presskey"),
212 r, u = l.get("inputsec");
213 r = function() {
214 v.Cf(u);
215 var a = b("Up");
216 u.appendChild(a);
217 a = b("Down");
218 u.appendChild(a);
219 a = b("Left");
220 u.appendChild(a);
221 a = b("Right");
222 u.appendChild(a);
223 a = b("Kick");
224 u.appendChild(a)
225 };
226 r();
227 this.nd.onclick = function() {
228 A.i(k.qb)
229 }
230 }
231
232 function Ya(a) {
233 this.fk = !1;
234 this.qm = new za(p.Ia);
235 this.Lj = new za(p.xa);
236 this.Hl = new za(p.fa);
237 var b = this;
238 this.g = v.Ga(Ya.N);
239 var c = v.Ea(this.g);
240 this.jc = c.get("room-name");
241 this.tm = c.get("start-btn");
242 this.vm = c.get("stop-btn");
243 this.gi = c.get("pause-btn");
244 this.xn = c.get("auto-btn");
245 this.Nk = c.get("lock-btn");
246 this.Rl = c.get("reset-all-btn");
247 this.Fl = c.get("rec-btn");
248 var d = c.get("link-btn"),
249 e = c.get("leave-btn"),
250 f = c.get("rand-btn");
251 this.wf = c.get("time-limit-sel");
252 this.qf = c.get("score-limit-sel");
253 this.rm = c.get("stadium-name");
254 this.sm = c.get("stadium-pick");
255 this.sm.onclick = function() {
256 A.i(b.Xp)
257 };
258 this.Th(c.get("red-list"), this.Hl, p.fa, a);
259 this.Th(c.get("blue-list"), this.Lj, p.xa, a);
260 this.Th(c.get("spec-list"), this.qm, p.Ia, a);
261 this.Uk(this.wf, this.Tk(15));
262 this.Uk(this.qf, this.Tk(15));
263 this.wf.onchange = function() {
264 y.i(b.aq, b.wf.selectedIndex)
265 };
266 this.qf.onchange = function() {
267 y.i(b.Tp,
268 b.qf.selectedIndex)
269 };
270 this.tm.onclick = function() {
271 A.i(b.Yp)
272 };
273 this.vm.onclick = function() {
274 A.i(b.Zp)
275 };
276 this.gi.onclick = function() {
277 A.i(b.Mp)
278 };
279 this.xn.onclick = function() {
280 A.i(b.Dp)
281 };
282 this.Nk.onclick = function() {
283 y.i(b.$p, !b.Xh)
284 };
285 this.Rl.onclick = function() {
286 null != b.ee && (b.ee(p.xa), b.ee(p.fa))
287 };
288 this.Fl.onclick = function() {
289 A.i(b.Qp)
290 };
291 d.onclick = function() {
292 A.i(b.Wp)
293 };
294 e.onclick = function() {
295 A.i(b.de)
296 };
297 f.onclick = function() {
298 A.i(b.Pp)
299 };
300 this.Bj(!1);
301 this.Cj(!1)
302 }
303
304 function Za() {
305 var a = this;
306 this.g = v.Ga(Za.N);
307 var b = v.Ea(this.g);
308 this.Cb = b.get("input");
309 this.af = b.get("ok");
310 b.get("cancel").onclick = function() {
311 null != a.Va && a.Va(null)
312 };
313 this.Cb.maxLength = 30;
314 this.Cb.oninput = function() {
315 a.C()
316 };
317 this.Cb.onkeydown = function(b) {
318 13 == b.keyCode && a.Dc() && null != a.Va && a.Va(a.Cb.value)
319 };
320 this.af.onclick = function() {
321 a.Dc() && null != a.Va && a.Va(a.Cb.value)
322 };
323 this.C()
324 }
325
326 function $a(a) {
327 this.Xk = a.get("notice");
328 this.$n = a.get("notice-contents");
329 this.nd = a.get("notice-close");
330 this.Il()
331 }
332
333 function Aa(a) {
334 function b(a) {
335 function b() {
336 e.className = f.Ta ? "icon-ok" : "icon-cancel"
337 }
338 a = d.get(a);
339 var e = a.querySelector("i"),
340 f = {
341 Ta: !0
342 };
343 b();
344 a.onclick = function() {
345 f.Ta = !f.Ta;
346 b();
347 c.bn(c.dj)
348 };
349 return f
350 }
351 this.dj = [];
352 var c = this;
353 this.gs = a;
354 this.Ja = v.Ga(Aa.tj);
355 var d = v.Ea(this.Ja),
356 e = new $a(d);
357 this.pj = d.get("refresh");
358 this.Tm = d.get("join");
359 a = d.get("create");
360 this.cs = d.get("count");
361 a.onclick = function() {
362 A.i(c.ws)
363 };
364 d.get("changenick").onclick = function() {
365 A.i(c.vs)
366 };
367 d.get("settings").onclick = function() {
368 A.i(c.ys)
369 };
370 var f = d.get("replayfile");
371 f.onchange = function() {
372 var a = f.files;
373 if (!(1 > a.length)) {
374 var a = a.item(0),
375 b = new FileReader;
376 b.onload = function() {
377 y.i(c.xs, b.result)
378 };
379 b.readAsArrayBuffer(a)
380 }
381 };
382 this.fs = b("fil-full");
383 this.zs = b("fil-pass");
384 this.ns = d.get("listscroll");
385 this.Bs = Ba.cg(this.ns);
386 this.gj = d.get("list");
387 this.pj.onclick = function() {
388 e.Il();
389 c.Om()
390 };
391 this.Tm.onclick = function() {
392 null != c.Od && y.i(c.Ym, c.Od.Fs)
393 };
394 this.Om()
395 }
396
397 function ab(a) {
398 this.Ja = v.Ga(ab.tj, "tbody");
399 var b = v.Ea(this.Ja),
400 c = b.get("name"),
401 d = b.get("players"),
402 e = b.get("distance"),
403 f = b.get("pass"),
404 b = b.get("flag");
405 this.Fs = a;
406 var g = a.vd;
407 c.textContent = g.w;
408 d.textContent =
409 "" + g.I + "/" + g.Xe;
410 f.textContent = g.Ib ? "Yes" : "No";
411 e.textContent = "" + (a.Le | 0) + "km";
412 try {
413 b.classList.add("f-" + g.ub.toLowerCase())
414 } catch (k) {}
415 9 > a.vd.Id && this.Ja.classList.add("old")
416 }
417
418 function bb() {
419 this.gk = null;
420 var a = this;
421 this.g = v.Ga(bb.N);
422 var b = v.Ea(this.g);
423 this.Zf = b.get("link");
424 var c = b.get("copy"),
425 b = b.get("close");
426 this.Zf.onfocus = function() {
427 a.Zf.select()
428 };
429 c.onclick = function() {
430 a.Zf.select();
431 return window.document.execCommand("Copy")
432 };
433 b.onclick = function() {
434 A.i(a.qb)
435 }
436 }
437
438 function ha(a) {
439 function b() {
440 var b = g[f];
441 a.pl =
442 e ? b : 0;
443 d.get("spd").textContent = b + "x"
444 }
445 this.Wf = !1;
446 var c = this;
447 this.g = v.Ga(ha.N);
448 var d = v.Ea(this.g);
449 this.ti = a;
450 d.get("reset").onclick = function() {
451 a.ui();
452 c.el()
453 };
454 var e = !0,
455 f = 2,
456 g = [.5, .75, 1, 2, 3];
457 b();
458 var k = d.get("playicon");
459 k.classList.add("icon-pause");
460 d.get("play").onclick = function() {
461 e = !e;
462 var a = k.classList;
463 a.toggle("icon-play", !e);
464 a.toggle("icon-pause", e);
465 b()
466 };
467 d.get("spdup").onclick = function() {
468 f += 1;
469 var a = g.length - 1;
470 f > a && (f = a);
471 b()
472 };
473 d.get("spddn").onclick = function() {
474 --f;
475 0 > f && (f = 0);
476 b()
477 };
478 this.Er = d.get("time");
479 var l = d.get("timebar");
480 this.Aq = d.get("progbar");
481 for (var t = d.get("timetooltip"), h = 0, m = a.Vk; h < m.length;) {
482 var n = m[h];
483 ++h;
484 var p = window.document.createElement("div");
485 p.className = "marker";
486 p.classList.add("k" + n.kind);
487 p.style.left = 100 * n.mj + "%";
488 l.appendChild(p)
489 }
490 l.onclick = function(b) {
491 a.er((b.pageX - l.offsetLeft) / l.clientWidth * a.mh * a.mf);
492 c.Wf || (c.Wf = !0, c.Vp(), c.el())
493 };
494 l.onmousemove = function(b) {
495 b = (b.pageX - l.offsetLeft) / l.clientWidth;
496 t.textContent = ha.Wk(a.mf * a.mh * b);
497 return t.style.left = "calc(" + 100 * b + "% - 30px)"
498 };
499 this.fp = d.get("leave");
500 this.fp.onclick = function() {
501 A.i(c.de)
502 }
503 }
504
505 function Q(a) {
506 var b = this,
507 c = new P("Only humans", "", []);
508 this.g = c.g;
509 c.Vd.style.minHeight = "78px";
510 Ja.gp().then(function(d) {
511 null == Q.xg && (Q.xg = window.document.createElement("div"), c.Vd.appendChild(Q.xg), Q.Dq = d.render(Q.xg, {
512 sitekey: a,
513 callback: function(a) {
514 y.i(Q.Gl, a)
515 },
516 theme: "dark"
517 }));
518 d.reset(Q.Dq);
519 Q.Gl = function(a) {
520 window.setTimeout(function() {
521 y.i(b.Va, a)
522 }, 1E3);
523 Q.Gl = null
524 };
525 c.Vd.appendChild(Q.xg)
526 })
527 }
528
529 function za(a) {
530 this.xd = new Map;
531 var b = this;
532 this.g = v.Ga(za.N);
533 this.g.className += " " + a.io;
534 var c = v.Ea(this.g);
535 this.ab = c.get("list");
536 this.Vh = c.get("join-btn");
537 this.vi = c.get("reset-btn");
538 a == p.Ia && this.vi.remove();
539 this.Vh.textContent = "" + a.w;
540 this.g.ondragover = this.g.Qs = function(a) {
541 -1 != a.dataTransfer.types.indexOf("player") && a.preventDefault()
542 };
543 this.g.ondrop = function(c) {
544 c.preventDefault();
545 c = c.dataTransfer.getData("player");
546 null != c && (c = K.parseInt(c), null != c && ia.i(b.mg, c, a))
547 };
548 this.Vh.onclick = function() {
549 y.i(b.Kp, a)
550 };
551 this.vi.onclick = function() {
552 y.i(b.ee, a)
553 }
554 }
555
556 function cb(a) {
557 var b =
558 this;
559 this.w = a.w;
560 this.yb = a.yb;
561 this.$ = a.V;
562 this.g = v.Ga(cb.N);
563 var c = v.Ea(this.g);
564 this.Ze = c.get("name");
565 this.rg = c.get("ping");
566 try {
567 c.get("flag").classList.add("f-" + a.Kd)
568 } catch (d) {}
569 this.Ze.textContent = this.w;
570 this.rg.textContent = "" + this.yb;
571 this.g.ondragstart = function(a) {
572 a.dataTransfer.setData("player", K.ye(b.$))
573 };
574 this.g.oncontextmenu = function(a) {
575 a.preventDefault();
576 y.i(b.ff, b.$)
577 };
578 this.em(a.cb)
579 }
580
581 function db(a, b) {
582 var c = this;
583 this.g = v.Ga(db.N);
584 var d = v.Ea(this.g);
585 this.Ze = d.get("name");
586 this.Hf = d.get("admin");
587 this.Qe =
588 d.get("kick");
589 this.nd = d.get("close");
590 this.Hf.onclick = function() {
591 ia.i(c.Cp, c.Nb, !c.ql)
592 };
593 this.Qe.onclick = function() {
594 y.i(c.ei, c.Nb)
595 };
596 this.nd.onclick = function() {
597 A.i(c.qb)
598 };
599 this.Nb = a.V;
600 this.Ej(a.w);
601 this.Dj(a.cb);
602 this.Hf.disabled = !b || 0 == this.Nb;
603 this.Qe.disabled = !b || 0 == this.Nb
604 }
605
606 function Qb() {
607 this.Ah = 0;
608 this.vp = 400;
609 this.yk = 64;
610 this.Vi = 32;
611 this.sa = window.document.createElement("canvas");
612 this.Qf = window.document.createElement("canvas");
613 this.g = window.document.createElement("div");
614 this.Qf.width = this.sa.width = this.Vi;
615 this.Qf.height = this.sa.height = this.yk;
616 this.Eh = this.Qf.getContext("2d", null);
617 this.c = this.sa.getContext("2d", null);
618 this.c.fillStyle = "green";
619 for (var a = [], b = 0, c = this.Vi; b < c;) ++b, a.push(0);
620 this.fq = a;
621 this.g.appendChild(this.Qf);
622 this.g.className = "graph"
623 }
624
625 function eb() {
626 this.jb = null;
627 var a = this;
628 this.g = v.Ga(eb.N);
629 var b = v.Ea(this.g);
630 b.get("cancel").onclick = function() {
631 A.i(a.ci)
632 };
633 this.hi = b.get("pick");
634 this.bk = b.get("delete");
635 this.rk = b.get("export");
636 var c = b.get("list"),
637 d = b.get("file");
638 this.Lg();
639 this.hi.onclick = function() {
640 null !=
641 a.jb && a.jb.Pd().then(function(b) {
642 y.i(a.og, b)
643 })
644 };
645 this.bk.onclick = function() {
646 if (null != a.jb) {
647 var b = a.jb.Lm;
648 null != b && (a.jb.Ja.remove(), a.jb = null, b(), a.Lg())
649 }
650 };
651 this.rk.onclick = function() {
652 null != a.jb && a.jb.Pd().then(function(a) {
653 Ca.br(a.se(), a.w + ".hbs")
654 })
655 };
656 this.ki(c);
657 this.vg = Ba.cg(c);
658 window.setTimeout(function() {
659 a.vg.update()
660 }, 0);
661 d.onchange = function() {
662 var b = d.files;
663 if (!(1 > b.length)) {
664 var b = b.item(0),
665 c = new FileReader;
666 c.onload = function() {
667 try {
668 var b = new h;
669 b.Lk(c.result);
670 y.i(a.og, b)
671 } catch (k) {
672 b = k instanceof q ? k.Ta :
673 k, b instanceof SyntaxError ? y.i(a.fi, "SyntaxError in line: " + K.ye(b.lineNumber)) : b instanceof Bb ? y.i(a.fi, b.xp) : y.i(a.fi, "Error loading stadium file.")
674 }
675 };
676 c.readAsText(b)
677 }
678 }
679 }
680
681 function fb() {
682 var a = this;
683 this.g = v.Ga(fb.N);
684 var b = v.Ea(this.g);
685 b.get("cancel").onclick = function() {
686 y.i(a.qb, !1)
687 };
688 b.get("leave").onclick = function() {
689 y.i(a.qb, !0)
690 }
691 }
692
693 function gb(a) {
694 var b = this;
695 this.g = v.Ga(gb.N);
696 var c = v.Ea(this.g);
697 this.Ze = c.get("title");
698 this.oi = c.get("reason");
699 this.yn = c.get("ban-btn");
700 this.An = c.get("ban-text");
701 this.Qe = c.get("kick");
702 this.nd = c.get("close");
703 this.yn.onclick = function() {
704 b.Aj(!b.Jj)
705 };
706 this.nd.onclick = function() {
707 A.i(b.qb)
708 };
709 this.Qe.onclick = function() {
710 Cb.i(b.ei, b.Nb, b.oi.value, b.Jj)
711 };
712 this.oi.onkeydown = function(a) {
713 return a.stopPropagation()
714 };
715 this.oi.maxLength = 100;
716 this.Nb = a.V;
717 this.Ze.textContent = "Kick " + a.w;
718 this.Aj(!1)
719 }
720
721 function ja(a) {
722 this.Fb = new hb;
723 this.Gd = !1;
724 this.pe = new Xa;
725 this.Qa = new Da;
726 var b = this;
727 this.Wa = new Ya(a);
728 this.Fb.Nb = a;
729 this.g = v.Ga(ja.N);
730 a = v.Ea(this.g);
731 this.Jh = a.get("gameplay-section");
732 this.hf = a.get("popups");
733 this.hf.style.display = "none";
734 v.xe(a.get("chatbox"), this.Qa.g);
735 v.xe(a.get("stats"), this.pe.g);
736 this.bi = a.get("menu");
737 this.bi.onclick = function() {
738 b.me(!b.Gd);
739 b.bi.blur()
740 };
741 a.get("settings").onclick = function() {
742 var a = new aa;
743 a.qb = function() {
744 b.bb(null)
745 };
746 b.bb(a.g)
747 };
748 this.Jh.appendChild(this.Fb.g);
749 this.Wa.de = function() {
750 var a = new fb;
751 a.qb = function(a) {
752 b.bb(null);
753 a && A.i(b.de)
754 };
755 b.bb(a.g)
756 };
757 this.Wa.Xp = function() {
758 var a = new eb;
759 a.ci = function() {
760 b.bb(null)
761 };
762 a.og = function(a) {
763 y.i(b.og, a);
764 b.bb(null)
765 };
766 a.fi = function(a) {
767 a = new P("Error loading stadium",
768 a, ["Ok"]);
769 a.Va = function() {
770 b.bb(null)
771 };
772 b.bb(a.g)
773 };
774 b.bb(a.g)
775 }
776 }
777
778 function Rb() {
779 this.Da = 0;
780 this.hk = this.ik = !1;
781 this.Ke = 0;
782 this.g = window.document.createElement("div");
783 this.g.className = "game-timer-view";
784 this.g.appendChild(this.bq = this.Wd("OVERTIME!", "overtime"));
785 this.g.appendChild(this.zp = this.Wd("0", "digit"));
786 this.g.appendChild(this.yp = this.Wd("0", "digit"));
787 this.g.appendChild(this.Wd(":", null));
788 this.g.appendChild(this.dr = this.Wd("0", "digit"));
789 this.g.appendChild(this.cr = this.Wd("0", "digit"))
790 }
791
792 function hb() {
793 this.Nb = -1;
794 this.Eb = new N;
795 this.xc = new Rb;
796 this.g = v.Ga(hb.N);
797 var a = v.Ea(this.g);
798 this.Pb = new Db(a.get("red-score"), 0);
799 this.Kb = new Db(a.get("blue-score"), 0);
800 v.xe(a.get("timer"), this.xc.g);
801 v.xe(a.get("canvas"), this.Eb.sa)
802 }
803
804 function Ka(a, b) {
805 var c = this;
806 this.g = v.Ga(Ka.N);
807 var d = v.Ea(this.g);
808 this.Bp = d.get("ok");
809 this.Bp.onclick = function() {
810 A.i(c.Va)
811 };
812 this.Nl = d.get("replay");
813 var e = null != b;
814 this.Nl.hidden = !e;
815 e && (this.Nl.onclick = function() {
816 ba.Yl(b)
817 });
818 d.get("reason").textContent = a
819 }
820
821 function ib(a) {
822 var b = this;
823 this.g = v.Ga(ib.N);
824 var c = v.Ea(this.g);
825 this.vh = c.get("cancel");
826 this.Wj = c.get("create");
827 this.$e = c.get("name");
828 this.kl = c.get("pass");
829 this.ai = c.get("max-pl");
830 this.Em = c.get("unlisted");
831 this.$e.maxLength = 30000000;
832 this.$e.value = a;
833 this.$e.oninput = function() {
834 b.C()
835 };
836 this.kl.maxLength = 30;
837 this.Em.onclick = function() {
838 b.Fj(!b.Fm)
839 };
840 this.vh.onclick = function() {
841 A.i(b.ci)
842 };
843 this.Wj.onclick = function() {
844 if (b.Dc()) {
845 var a = b.kl.value;
846 "" == a && (a = null);
847 y.i(b.Jp, {
848 name: b.$e.value,
849 password: a,
850 qs: b.ai.selectedIndex + 2,
851 Ks: b.Fm
852 })
853 }
854 };
855 for (a = 2; 123 > a;) c = window.document.createElement("option"),
856 c.textContent = "" + a++, this.ai.appendChild(c);
857 this.ai.selectedIndex = 10;
858 this.Fj(!1);
859 this.C()
860 }
861
862 function jb() {
863 this.g = v.Ga(jb.N);
864 var a = v.Ea(this.g);
865 this.dc = a.get("log");
866 this.vh = a.get("cancel")
867 }
868
869 function kb(a) {
870 function b() {
871 c.Dc() && null != c.cl && c.cl(c.Cb.value)
872 }
873 var c = this;
874 this.g = v.Ga(kb.N);
875 var d = v.Ea(this.g);
876 this.Cb = d.get("input");
877 this.af = d.get("ok");
878 this.Cb.maxLength = 25;
879 this.Cb.value = a;
880 this.Cb.oninput = function() {
881 c.C()
882 };
883 this.Cb.onkeydown = function(a) {
884 13 == a.keyCode && b()
885 };
886 this.af.onclick = b;
887 this.C()
888 }
889
890 function lb(a,
891 b) {
892 this.Hj = [];
893 this.Iq = /[#@][^\s@#]*$/;
894 this.Mb = a;
895 this.Rp = b;
896 a.hidden = !0
897 }
898
899 function Da() {
900 function a() {
901 null != b.fl && "" != b.gb.value && b.fl(b.gb.value);
902 b.gb.value = "";
903 b.gb.blur()
904 }
905 var b = this;
906 this.g = v.Ga(Da.N);
907 var c = v.Ea(this.g);
908 this.dc = c.get("log");
909 this.vg = Ba.cg(this.dc);
910 this.gb = c.get("input");
911 this.gb.maxLength = 140;
912 c.get("send").onclick = a;
913 this.Bc = new lb(c.get("autocompletebox"), function(a, c) {
914 b.gb.value = a;
915 b.gb.setSelectionRange(c, c)
916 });
917 this.gb.onkeydown = function(c) {
918 switch (c.keyCode) {
919 case 9:
920 b.Bc.Mb.hidden || (b.Bc.qo(),
921 c.preventDefault());
922 break;
923 case 13:
924 a();
925 break;
926 case 27:
927 b.Bc.Mb.hidden ? (b.gb.value = "", b.gb.blur()) : b.Bc.Qh();
928 break;
929 case 38:
930 b.Bc.Qj(-1);
931 break;
932 case 40:
933 b.Bc.Qj(1)
934 }
935 c.stopPropagation()
936 };
937 this.gb.onfocus = function() {
938 null != b.ig && b.ig(!0)
939 };
940 this.gb.onblur = function() {
941 null != b.ig && b.ig(!1);
942 b.Bc.Qh()
943 };
944 this.gb.oninput = function() {
945 b.Bc.Hn(b.gb.value, b.gb.selectionStart)
946 }
947 }
948
949 function mb() {
950 this.rf = null;
951 var a = this;
952 this.g = v.Ga(mb.N);
953 var b = v.Ea(this.g);
954 b.get("cancel").onclick = function() {
955 A.i(a.qb)
956 };
957 this.wh = b.get("change");
958 this.wh.disabled = !0;
959 this.wh.onclick = function() {
960 null != a.rf && a.Zl(a.rf.index)
961 };
962 b = b.get("list");
963 this.ki(b);
964 var c = Ba.cg(b);
965 window.setTimeout(function() {
966 c.update()
967 }, 0)
968 }
969
970 function Ea() {
971 this.Xf = !1;
972 this.w = "";
973 this.uh = 0;
974 this.Jf = "";
975 this.kb = new ka;
976 var a = window.document.createElement("canvas");
977 a.width = 64;
978 a.height = 64;
979 this.rb = a.getContext("2d", null);
980 this.Ij = this.rb.createPattern(this.rb.canvas, "no-repeat");
981 this.fo()
982 }
983
984 function Sb() {
985 this.xc = 0;
986 this.ab = [];
987 this.Ar = new R(["Time is", "Up!"], 16777215);
988 this.Gq = new R(["Red is", "Victorious!"],
989 15035990);
990 this.Fq = new R(["Red", "Scores!"], 15035990);
991 this.Cn = new R(["Blue is", "Victorious!"], 625603);
992 this.Bn = new R(["Blue", "Scores!"], 625603);
993 this.eq = new R(["Game", "Paused"], 16777215)
994 }
995
996 function R(a, b) {
997 for (var c = [], d = 0; d < a.length;) c.push(this.sp(a[d++], b));
998 this.We = c
999 }
1000
1001 function N() {
1002 this.$c = window.performance.now();
1003 this.Jg = new Map;
1004 this.dd = new Map;
1005 this.zg = 1;
1006 this.xf = 35;
1007 this.jf = 0;
1008 this.kf = 1.5;
1009 this.Ya = new H(0, 0);
1010 this.Dk = !1;
1011 this.td = new Sb;
1012 this.sa = window.document.createElement("canvas");
1013 this.sa.mozOpaque = !0;
1014 this.c =
1015 this.sa.getContext("2d", {
1016 alpha: !1
1017 });
1018 this.Lo = this.c.createPattern(n.Ko, null);
1019 this.Wn = this.c.createPattern(n.Vn, null);
1020 this.Un = this.c.createPattern(n.Tn, null)
1021 }
1022
1023 function B() {
1024 this.ud = 0;
1025 this.v = 32;
1026 this.h = 63;
1027 this.m = 1;
1028 this.a = new H(0, 0)
1029 }
1030
1031 function E() {
1032 this.Hg = this.Ig = this.wa = null;
1033 this.Yj = 0;
1034 this.ca = this.W = this.Xd = null;
1035 this.Cc = 0;
1036 this.m = 1;
1037 this.h = 63;
1038 this.v = 32;
1039 this.vb = 1 / 0;
1040 this.Za = !0;
1041 this.R = 0
1042 }
1043
1044 function L() {
1045 this.v = 32;
1046 this.h = 63;
1047 this.m = 1;
1048 this.Ua = 0;
1049 this.wa = new H(0, 0)
1050 }
1051
1052 function Fa() {
1053 this.hc = -1;
1054 this.gc = null;
1055 this.F = []
1056 }
1057
1058 function nb() {
1059 this.R =
1060 0;
1061 this.ne = 1 / 0;
1062 this.Hb = this.ec = 100;
1063 this.Yd = this.Zd = 0
1064 }
1065
1066 function ca() {
1067 this.hc = -1;
1068 this.gc = null;
1069 this.jl = 0;
1070 this.h = this.v = 63;
1071 this.Mj = 0;
1072 this.R = 16777215;
1073 this.Ca = .99;
1074 this.aa = 1;
1075 this.m = .5;
1076 this.Z = 10;
1077 this.oa = new H(0, 0);
1078 this.D = new H(0, 0);
1079 this.a = new H(0, 0)
1080 }
1081
1082 function la() {
1083 this.da = 0
1084 }
1085
1086 function La() {
1087 this.da = 0
1088 }
1089
1090 function Ma() {
1091 this.da = 0
1092 }
1093
1094 function ma() {
1095 this.da = 0
1096 }
1097
1098 function ob() {
1099 this.da = 0
1100 }
1101
1102 function pb() {
1103 this.da = 0
1104 }
1105
1106 function Y() {
1107 this.Qg = !1;
1108 this.da = 0
1109 }
1110
1111 function kc() {}
1112
1113 function na() {
1114 this.da = 0
1115 }
1116
1117 function Ga() {
1118 this.da = 0
1119 }
1120
1121 function Na() {
1122 this.da =
1123 0
1124 }
1125
1126 function Oa() {
1127 this.da = 0
1128 }
1129
1130 function qb() {
1131 this.da = 0
1132 }
1133
1134 function oa() {
1135 this.da = 0
1136 }
1137
1138 function pa() {
1139 this.da = 0
1140 }
1141
1142 function Pa() {
1143 this.da = 0
1144 }
1145
1146 function qa() {
1147 this.da = 0
1148 }
1149
1150 function S() {
1151 this.da = 0
1152 }
1153
1154 function ra() {
1155 this.da = 0
1156 }
1157
1158 function sa() {
1159 this.da = 0
1160 }
1161
1162 function da() {
1163 this.da = 0
1164 }
1165
1166 function Qa() {
1167 this.da = 0
1168 }
1169
1170 function rb() {
1171 this.da = 0
1172 }
1173
1174 function ta() {
1175 this.da = 0
1176 }
1177
1178 function ea() {
1179 this.zc = -1;
1180 this.an = null;
1181 this.ea = p.Ia;
1182 this.H = null;
1183 this.yc = this.Sc = 0;
1184 this.Wb = !1;
1185 this.ob = this.V = 0;
1186 this.w = "Player";
1187 this.Ug = this.yb = 0;
1188 this.Kd = null;
1189 this.Ld = !1;
1190 this.Xb = this.Jd = null;
1191 this.Jb = 0;
1192 this.cb = !1
1193 }
1194
1195 function fa() {
1196 this.hc = -1;
1197 this.S = this.gc = null;
1198 this.yd = 2;
1199 this.Zc = 0;
1200 this.ce = 1;
1201 this.ib = this.Da = 3;
1202 this.Pc = !1;
1203 this.K = null;
1204 this.I = [];
1205 this.jc = "";
1206 this.S = h.Kh()[0];
1207 this.kb = [null, new ka, new ka];
1208 this.kb[1].fb.push(p.fa.R);
1209 this.kb[2].fb.push(p.xa.R)
1210 }
1211
1212 function p(a, b, c, d, e, f, g, k) {
1213 this.pg = null;
1214 this.$ = a;
1215 this.R = b;
1216 this.Ch = c;
1217 this.cp = d;
1218 this.w = e;
1219 this.io = f;
1220 this.v = k;
1221 this.wm = new ka;
1222 this.wm.fb.push(b)
1223 }
1224
1225 function ka() {
1226 this.ed = 16777215;
1227 this.fb = []
1228 }
1229
1230 function h() {
1231 this.J = [];
1232 this.U = [];
1233 this.qa = [];
1234 this.tc = [];
1235 this.F = [];
1236 this.pb = [];
1237 this.Dd = [];
1238 this.md = [];
1239 this.ge = new Eb;
1240 this.Bh = 255;
1241 this.Ge = this.Ye = 0;
1242 this.Lf = !0;
1243 this.pf = !1
1244 }
1245
1246 function Bb(a) {
1247 this.xp = a
1248 }
1249
1250 function Eb() {
1251 this.Se = 0;
1252 this.Z = 15;
1253 this.v = 0;
1254 this.oa = new H(0, 0);
1255 this.aa = this.m = .5;
1256 this.Ca = .96;
1257 this.Ce = .1;
1258 this.Te = .07;
1259 this.Ue = .96;
1260 this.Re = 5
1261 }
1262
1263 function sb() {
1264 this.qe = p.Ia;
1265 this.ca = new H(0, 0);
1266 this.W = new H(0, 0)
1267 }
1268
1269 function O() {
1270 this.hc = -1;
1271 this.gc = null;
1272 this.Pb = this.Kb = this.Hc = this.Oa = 0;
1273 this.ae = p.fa;
1274 this.vc = this.Bb = 0;
1275 this.ta = new Fa;
1276 this.Da = 0;
1277 this.ib = 5;
1278 this.S = null
1279 }
1280
1281 function ua() {
1282 this.h = this.v =
1283 63;
1284 this.R = 16777215;
1285 this.Ca = .99;
1286 this.aa = 1;
1287 this.m = .5;
1288 this.Z = 10;
1289 this.oa = new H(0, 0);
1290 this.D = new H(0, 0);
1291 this.a = new H(0, 0)
1292 }
1293
1294 function Tb(a, b) {
1295 this.gh = null;
1296 this.Js = .025;
1297 this.ve = this.dh = this.Ef = 0;
1298 this.Tg = b.createGain();
1299 this.Tg.gain.value = 0;
1300 var c = b.createBufferSource();
1301 c.buffer = a;
1302 c.connect(this.Tg);
1303 c.loop = !0;
1304 c.start()
1305 }
1306
1307 function Ub(a) {
1308 function b(b) {
1309 return new Promise(function(d, f) {
1310 var e = a.file(b).asArrayBuffer();
1311 return c.c.decodeAudioData(e, d, f)
1312 })
1313 }
1314 var c = this;
1315 this.c = new AudioContext;
1316 this.ag = this.c.createGain();
1317 this.im(n.A.pm.L() ? 1 : 0);
1318 this.ag.connect(this.c.destination);
1319 this.ro = Promise.all([b("sounds/chat.ogg").then(function(a) {
1320 return c.Rj = a
1321 }), b("sounds/highlight.wav").then(function(a) {
1322 return c.zk = a
1323 }), b("sounds/kick.ogg").then(function(a) {
1324 return c.bp = a
1325 }), b("sounds/goal.ogg").then(function(a) {
1326 return c.Io = a
1327 }), b("sounds/join.ogg").then(function(a) {
1328 return c.$o = a
1329 }), b("sounds/leave.ogg").then(function(a) {
1330 return c.ep = a
1331 }), b("sounds/crowd.ogg").then(function(a) {
1332 c.ho = a;
1333 c.Xj = new Tb(c.ho, c.c);
1334 c.Xj.connect(c.ag)
1335 })])
1336 }
1337
1338 function Z() {}
1339
1340 function va() {}
1341
1342 function Fb() {}
1343
1344 function Vb(a) {
1345 this.$c = window.performance.now();
1346 this.sd = this.De = 0;
1347 var b = this;
1348 this.ya = a;
1349 this.j = new ja(a.uc);
1350 var c = new Gb(this.j);
1351 c.ri(a.T);
1352 window.document.addEventListener("keydown", G(this, this.Bd));
1353 window.document.addEventListener("keyup", G(this, this.Cd));
1354 window.requestAnimationFrame(G(this, this.bf));
1355 this.Gh = window.setInterval(function() {
1356 b.j.pe.hm(b.sd);
1357 b.sd = 0
1358 }, 1E3);
1359 this.uf(n.A.Tb.L());
1360 this.j.g.classList.add("replayer");
1361 this.je = new ha(a);
1362 this.je.Vp = function() {
1363 c.Lr(a.T)
1364 };
1365 this.je.Up = function() {
1366 b.j.me(null == a.T.K);
1367 c.ri(a.T)
1368 };
1369 this.je.el = function() {
1370 b.j.Fb.Eb.Xq()
1371 };
1372 this.j.g.appendChild(this.je.g)
1373 }
1374
1375 function x() {}
1376
1377 function u() {}
1378
1379 function Wb() {}
1380
1381 function n() {}
1382
1383 function W() {
1384 this.Yc = new Map
1385 }
1386
1387 function wa(a, b, c, d) {
1388 this.w = a;
1389 this.Ur = d;
1390 this.Yh = b;
1391 d = null;
1392 null != b && (d = b.getItem(a));
1393 this.Hm = c(d)
1394 }
1395
1396 function Xb() {}
1397
1398 function Yb() {
1399 function a(a) {
1400 return new wa(a, e, function(a) {
1401 if (null == a) return null;
1402 try {
1403 return T.Hh(a)
1404 } catch (k) {
1405 return null
1406 }
1407 }, function(a) {
1408 if (null == a) return null;
1409 try {
1410 return a.se()
1411 } catch (k) {
1412 return null
1413 }
1414 })
1415 }
1416
1417 function b(a) {
1418 return new wa(a, e, function(a) {
1419 return null != a ? "0" != a : !0
1420 }, function(a) {
1421 return a ? "1" : "0"
1422 })
1423 }
1424
1425 function c(a, b) {
1426 return new wa(a, e, function(a) {
1427 var c = b;
1428 try {
1429 null != a && (c = K.parseInt(a))
1430 } catch (t) {}
1431 return c
1432 }, function(a) {
1433 return "" + a
1434 })
1435 }
1436
1437 function d(a, b, c) {
1438 return new wa(a, e, function(a) {
1439 return null == a ? b : U.Qc(a, c)
1440 }, function(a) {
1441 return a
1442 })
1443 }
1444 var e = Xb.Pm();
1445 this.fe = d("player_name", "", 25);
1446 this.Tb = c("view_mode", -1);
1447 this.Fh = c("fps_limit", 0);
1448 this.sh = d("avatar", null, 2);
1449 d("rctoken", null, 1024);
1450 this.xm = b("team_colors");
1451 this.Ak = b("show_indicators");
1452 this.pm = b("sound_main");
1453 this.Hi = b("sound_chat");
1454 this.om = b("sound_highlight");
1455 this.nm = b("sound_crowd");
1456 this.Gj = d("player_auth_key", null, 1024);
1457 this.rd = c("extrapolation", 0);
1458 this.Sl = function(a, b) {
1459 return new wa(a, e, function(a) {
1460 var c = b;
1461 try {
1462 null != a && (c = parseFloat(a))
1463 } catch (t) {}
1464 return c
1465 }, function(a) {
1466 return "" + a
1467 })
1468 }("resolution_scale", 1);
1469 this.lm = b("show_avatars");
1470 this.Me = a("geo");
1471 this.Ne = a("geo_override");
1472 this.tg = function() {
1473 return new wa("player_keys", e, function(a) {
1474 if (null == a) return W.$j();
1475 try {
1476 return W.Hh(a)
1477 } catch (g) {
1478 return W.$j()
1479 }
1480 }, function(a) {
1481 try {
1482 return a.se()
1483 } catch (g) {
1484 return null
1485 }
1486 })
1487 }()
1488 }
1489
1490 function T() {
1491 this.ub = "";
1492 this.Ec = this.Gc = 0
1493 }
1494
1495 function Ra() {
1496 this.$d = this.Yf = 0;
1497 window.document.addEventListener("focusout", G(this, this.al))
1498 }
1499
1500 function Gb(a, b) {
1501 this.Rh = null;
1502 this.j = a;
1503 null != b && (this.Rh = "@" + J.replace(b, " ", "_"))
1504 }
1505
1506 function ba(a) {
1507 this.Nf = null;
1508 this.Ik = this.zh = !1;
1509 this.$c = window.performance.now();
1510 this.Ed = null;
1511 this.De = 0;
1512 this.Jn = new tb(3, 1E3);
1513 this.ob = new Ra;
1514 this.Bg = "Waiting for link";
1515 this.xi = this.am = !1;
1516 this.sd = 0;
1517 var b = this;
1518 this.Of = new ub(a, function(a) {
1519 b.j.Qa.Gb(a)
1520 });
1521 this.ya = a;
1522 a.T.ko = function(c) {
1523 b.am != c && (b.am = c, c = ta.la(c), a.ra(c))
1524 };
1525 this.j = new ja(a.uc);
1526 this.Ih = new Gb(this.j, a.T.na(a.uc).w);
1527 this.Ih.ri(a.T);
1528 this.j.Qa.fl = G(this, this.Gp);
1529 this.j.Qa.ig = G(this, this.Fp);
1530 window.document.addEventListener("keydown", G(this, this.Bd));
1531 window.document.addEventListener("keyup", G(this, this.Cd));
1532 window.onbeforeunload = function() {
1533 return "Are you sure you want to leave the room?"
1534 };
1535 this.ob.ng = function(b) {
1536 a.ra(b)
1537 };
1538 this.j.Wa.aq =
1539 function(b) {
1540 b = da.la(1, b);
1541 a.ra(b)
1542 };
1543 this.j.Wa.Tp = function(b) {
1544 b = da.la(0, b);
1545 a.ra(b)
1546 };
1547 this.j.og = function(b) {
1548 b = qa.la(b);
1549 a.ra(b)
1550 };
1551 this.j.Wa.Yp = function() {
1552 a.ra(new Ma)
1553 };
1554 this.j.Wa.Zp = function() {
1555 a.ra(new La)
1556 };
1557 this.j.Wa.Mp = function() {
1558 b.Bm()
1559 };
1560 this.j.Wa.mg = function(b, c) {
1561 var d = S.la(b, c);
1562 a.ra(d)
1563 };
1564 this.j.Wa.ee = G(this, this.Wq);
1565 this.j.Wa.Dp = function() {
1566 a.ra(new Qa)
1567 };
1568 this.j.Wa.Pp = function() {
1569 ba.Bq(a)
1570 };
1571 this.j.Wa.$p = function(b) {
1572 b = pa.la(b);
1573 a.ra(b)
1574 };
1575 this.j.Wa.ff = function(c) {
1576 var d = a.T.na(c);
1577 if (null != d) {
1578 var e = new db(d, b.xi);
1579 e.qb = function() {
1580 b.j.bb(null)
1581 };
1582 e.Cp = function(b, c) {
1583 var d = sa.la(b, c);
1584 a.ra(d)
1585 };
1586 e.ei = function() {
1587 b.vr(d)
1588 };
1589 b.j.bb(e.g, function() {
1590 e.C(a.T, b.xi)
1591 })
1592 }
1593 };
1594 this.j.Wa.Wp = function() {
1595 var a = new bb;
1596 a.qb = function() {
1597 b.j.bb(null)
1598 };
1599 b.j.bb(a.g, function() {
1600 a.nr(b.Bg)
1601 })
1602 };
1603 this.j.Wa.Qp = function() {
1604 if (null == b.Ed) b.zr();
1605 else {
1606 var a = b.Ed.stop();
1607 b.Ed = null;
1608 ba.Yl(a)
1609 }
1610 b.j.Wa.rr(null != b.Ed)
1611 };
1612 window.requestAnimationFrame(G(this, this.bf));
1613 this.Gh = window.setInterval(function() {
1614 b.j.pe.hm(b.sd);
1615 b.sd = 0
1616 }, 1E3);
1617 this.Qr = window.setInterval(function() {
1618 a.C()
1619 },
1620 50);
1621 this.uf();
1622 var c = n.A.rd.L(),
1623 c = -200 > c ? -200 : 200 < c ? 200 : c;
1624 if (0 != c) {
1625 var d = n.A.rd.L();
1626 a.gm(d);
1627 this.j.Qa.Gb("Extrapolation set to " + c + " msec")
1628 }
1629 }
1630
1631 function Ha() {}
1632
1633 function ub(a, b) {
1634 this.ya = a;
1635 this.ba = b
1636 }
1637
1638 function Hb() {}
1639
1640 function tb(a, b) {
1641 this.Nj = a;
1642 this.Si = b;
1643 this.oc = a;
1644 this.Ve = window.performance.now()
1645 }
1646
1647 function vb() {}
1648
1649 function Cb() {}
1650
1651 function ia() {}
1652
1653 function y() {}
1654
1655 function A() {}
1656
1657 function M() {}
1658
1659 function H(a, b) {
1660 this.x = a;
1661 this.y = b
1662 }
1663
1664 function Ib(a) {
1665 this.Yb = a.slice()
1666 }
1667
1668 function Jb(a, b, c) {
1669 this.Vk = [];
1670 this.pl = 5;
1671 this.Fd = -1;
1672 this.hg = this.Qb =
1673 this.Wh = this.sk = 0;
1674 V.call(this, b);
1675 a = new F(new DataView(a.buffer), !1);
1676 if (1212305970 != a.hb()) throw new q("");
1677 b = a.hb();
1678 if (c != b) throw new q(new Kb(b));
1679 this.mf = a.hb();
1680 c = pako.inflateRaw(a.sb());
1681 this.Lc = new F(new DataView(c.buffer, c.byteOffset, c.byteLength));
1682 this.Cq(this.Lc);
1683 c = this.Lc.sb();
1684 this.Lc = new F(new DataView(c.buffer, c.byteOffset, c.byteLength), !1);
1685 this.ui();
1686 this.Wh = window.performance.now();
1687 this.uc = -1
1688 }
1689
1690 function Kb(a) {
1691 this.Id = a
1692 }
1693
1694 function Zb() {}
1695
1696 function $b(a) {
1697 this.xj = new Map;
1698 this.Ho = new tb(100, 16);
1699 this.yg = !1;
1700 this.yb = 0;
1701 this.pa = a;
1702 a = w.ha(8);
1703 a.s(Math.random());
1704 this.He = a.Sb()
1705 }
1706
1707 function Lb(a) {
1708 this.Kj = new Map;
1709 this.Ib = null;
1710 this.fg = 32;
1711 this.Ie = new Map;
1712 this.ac = [];
1713 this.wi = 4;
1714 this.Mn = 600;
1715 var b = this;
1716 V.call(this, a.state);
1717 this.tp = a.ij;
1718 this.Sr = a.version;
1719 this.up = 1;
1720 this.Jk = this.uc = 0;
1721 this.Li = window.performance.now();
1722 this.Ic = new Sa(this.tp, a.iceServers, Zb.Km, a.gn);
1723 this.Ic.Vj = G(this, this.Oo);
1724 this.Ic.bl = function(a) {
1725 b.Lp(a)
1726 };
1727 this.Ic.kg = function(a) {
1728 y.i(b.kg, a)
1729 };
1730 this.Ic.ef = function(a, d) {
1731 null != b.ef && b.ef(a, d)
1732 }
1733 }
1734
1735 function xa(a, b) {
1736 this.Di = [];
1737 this.pi = [];
1738 this.ug = new Ia;
1739 this.Ap = 1;
1740 this.pd = this.zm = 0;
1741 this.Qi = new Mb(50);
1742 this.sg = new Mb(50);
1743 this.nn = 1E3;
1744 this.ek = "";
1745 var c = this;
1746 V.call(this, b.state);
1747 this.Uh = b.Ms;
1748 this.Je = b.ds;
1749 var d = null,
1750 d = function(e) {
1751 c.tf(0);
1752 var f = w.ha();
1753 f.Ub(b.version);
1754 f.Db(b.password);
1755 c.pc = new wb(b.ij, b.iceServers, a, Zb.Km, f, b.gn);
1756 c.pc.rh = e;
1757 c.pc.zd = function(a) {
1758 c.pc = null;
1759 c.pa = a;
1760 a.lg = function(a) {
1761 a = new F(new DataView(a));
1762 c.uq(a)
1763 };
1764 a.cf = function() {
1765 3 != c.pd && y.i(c.df, xb.ih("Connection closed"));
1766 c.ia()
1767 };
1768 a = window.setTimeout(function() {
1769 y.i(c.df,
1770 xb.ih("Game state timeout"));
1771 c.ia()
1772 }, 1E4);
1773 c.re = a;
1774 c.tf(2)
1775 };
1776 c.pc.gl = function() {
1777 c.tf(1)
1778 };
1779 var g = !1;
1780 c.pc.Zk = function() {
1781 return g = !0
1782 };
1783 c.pc.bd = function(a) {
1784 if (!e && 1 == c.pd && g) A.i(c.Sp), d(!0);
1785 else {
1786 var b = wb.Do(a);
1787 switch (a.nb) {
1788 case 0:
1789 a = xb.jh;
1790 break;
1791 case 1:
1792 a = xb.lh(a.code);
1793 break;
1794 case 2:
1795 a = xb.hh;
1796 break;
1797 default:
1798 a = xb.ih(b)
1799 }
1800 y.i(c.df, a);
1801 c.ia(b)
1802 }
1803 }
1804 };
1805 d(null != b.cn && b.cn)
1806 }
1807
1808 function V(a) {
1809 this.Ri = new Ia;
1810 this.te = this.cc = 0;
1811 this.le = new Ia;
1812 this.uc = this.bc = this.rd = 0;
1813 this.Ac = .06;
1814 this.mh = 16.666666666666668;
1815 this.Ff = 120;
1816 yb.call(this, a)
1817 }
1818
1819 function ya() {}
1820
1821 function Ta() {}
1822
1823 function ac(a, b) {
1824 this.Xm = 0;
1825 this.version = 1;
1826 this.ah = 0;
1827 this.Nd = w.ha(1E3);
1828 this.Df = w.ha(16384);
1829 var c = this;
1830 this.version = b;
1831 var d = this.ah = a.Y;
1832 this.hj = a;
1833 a.T.ga(this.Df);
1834 a.fc = function(b) {
1835 var e = a.Y;
1836 c.Df.lb(e - d);
1837 d = e;
1838 c.Df.Ub(b.P);
1839 m.lj(b, c.Df)
1840 };
1841 this.Nd.Ub(0);
1842 var e = this.ah;
1843 a.T.km(function(b) {
1844 var d = a.Y;
1845 c.Nd.lb(d - e);
1846 c.Nd.l(b);
1847 c.Xm++;
1848 e = d
1849 })
1850 }
1851
1852 function bc() {}
1853
1854 function Mb(a) {
1855 this.rs = a;
1856 this.$a = []
1857 }
1858
1859 function cc() {}
1860
1861 function Ua() {
1862 this.da = 0
1863 }
1864
1865 function yb(a) {
1866 this.Y = 0;
1867 this.T = a
1868 }
1869
1870 function Ia() {
1871 this.list = []
1872 }
1873
1874 function m() {
1875 this.da = 0
1876 }
1877
1878 function lc() {}
1879
1880 function zb() {}
1881
1882 function v() {}
1883
1884 function Db(a, b) {
1885 this.Ja = a;
1886 this.value = b;
1887 a.textContent = "" + b
1888 }
1889
1890 function Ca() {}
1891
1892 function mc() {}
1893
1894 function Ba() {}
1895
1896 function Ja() {}
1897
1898 function I() {}
1899
1900 function w(a, b) {
1901 null == b && (b = !1);
1902 this.o = a;
1903 this.Sa = b;
1904 this.a = 0
1905 }
1906
1907 function F(a, b) {
1908 null == b && (b = !1);
1909 this.o = a;
1910 this.Sa = b;
1911 this.a = 0
1912 }
1913
1914 function Nb(a) {
1915 this.gd = null;
1916 this.Eq = 1E4;
1917 this.wd = !0;
1918 var b = this;
1919 a.Tj();
1920 this.Ra = a.Ra;
1921 this.Vc = a.Vc;
1922 this.oe = a.oe;
1923 this.gd = a.gd;
1924 this.ym = window.performance.now();
1925 var c = null,
1926 c = function() {
1927 var a =
1928 b.Eq - b.Br();
1929 0 >= a ? b.ia() : (window.clearTimeout(b.Am), a = window.setTimeout(c, a + 1E3), b.Am = a)
1930 };
1931 c();
1932 this.Ra.oniceconnectionstatechange = function() {
1933 var a = b.Ra.iceConnectionState;
1934 "closed" != a && "failed" != a || b.ia()
1935 };
1936 a = 0;
1937 for (var d = this.Vc; a < d.length;) {
1938 var e = d[a];
1939 ++a;
1940 e.onmessage = function(a) {
1941 b.wd && (b.ym = window.performance.now(), null != b.lg && b.lg(a.data))
1942 };
1943 e.onclose = function() {
1944 b.ia()
1945 }
1946 }
1947 }
1948
1949 function nc() {}
1950
1951 function Sa(a, b, c, d) {
1952 this.th = new Set;
1953 this.If = new Set;
1954 this.Ag = this.nf = this.dm = !1;
1955 this.Mc = null;
1956 this.$ = "";
1957 this.$q = 5E4;
1958 this.Zq = 1E4;
1959 this.od = new Map;
1960 this.xr = a;
1961 this.Vf = b;
1962 this.In = c;
1963 this.Dg = d;
1964 null == this.Dg && (this.Dg = "");
1965 this.Ji()
1966 }
1967
1968 function Va(a, b, c) {
1969 this.gd = this.re = null;
1970 this.oe = [];
1971 this.ak = 0;
1972 this.hl = !1;
1973 this.Uf = [];
1974 this.Vc = [];
1975 var d = this;
1976 this.Ra = new RTCPeerConnection({
1977 iceServers: b
1978 }, Va.Yn);
1979 this.Sh = new Promise(function(a) {
1980 d.Vo = a
1981 });
1982 this.Ra.onicecandidate = function(a) {
1983 null == a.candidate ? d.Vo(d.Uf) : (a = a.candidate, null != a.candidate && "" != a.candidate && (null != d.jg && d.jg(a), d.Uf.push(a)))
1984 };
1985 for (b = 0; b < c.length;) this.co(c[b++]);
1986 this.$ = a
1987 }
1988
1989 function wb(a, b, c, d, e, f) {
1990 this.rh = this.yh = !1;
1991 var g = this;
1992 this.pa = new Va(0, b, d);
1993 this.pa.bd = function() {
1994 g.Oe(Ob.jh)
1995 };
1996 this.pa.zd = function() {
1997 null != g.zd && g.zd(new Nb(g.pa));
1998 g.pa = null;
1999 g.Uj()
2000 };
2001 this.pa.di = function(b) {
2002 g.jr = b;
2003 g.X = new WebSocket(a + "client?id=" + c + (null == f ? "" : "&token=" + f));
2004 g.X.binaryType = "arraybuffer";
2005 g.X.onclose = function(a) {
2006 g.yh || g.Oe(Ob.lh(a.code))
2007 };
2008 g.X.onerror = function() {
2009 g.yh || g.Oe(Ob.Error)
2010 };
2011 g.X.onmessage = G(g, g.Ph);
2012 g.X.onopen = function() {
2013 null != g.gl && g.gl();
2014 g.pa.Mi();
2015 g.Bi(g.jr, g.pa.Uf, e);
2016 g.pa.jg =
2017 G(g, g.yi);
2018 g.pa.Sh.then(function() {
2019 g.Nc(0, null)
2020 })
2021 }
2022 };
2023 this.pa.eo()
2024 }
2025
2026 function dc() {
2027 this.hash = 0
2028 }
2029
2030 function U() {}
2031
2032 function J() {}
2033
2034 function K() {}
2035
2036 function ec() {}
2037
2038 function D() {}
2039
2040 function fc(a, b) {
2041 this.r = new RegExp(a, b.split("u").join(""))
2042 }
2043
2044 function ga() {
2045 return r.Be(this, "")
2046 }
2047
2048 function C(a, b) {
2049 var c = Object.create(a),
2050 d;
2051 for (d in b) c[d] = b[d];
2052 b.toString !== Object.prototype.toString && (c.toString = b.toString);
2053 return c
2054 }
2055
2056 function G(a, b) {
2057 if (null == b) return null;
2058 null == b.oh && (b.oh = rc++);
2059 var c;
2060 null == a.ej ? a.ej = {} : c = a.ej[b.oh];
2061 null == c &&
2062 (c = b.bind(a), a.ej[b.oh] = c);
2063 return c
2064 }
2065 var Ab = Ab || {},
2066 X;
2067 fc.b = !0;
2068 fc.prototype = {
2069 match: function(a) {
2070 this.r.global && (this.r.lastIndex = 0);
2071 this.r.nc = this.r.exec(a);
2072 this.r.bh = a;
2073 return null != this.r.nc
2074 },
2075 Wm: function(a) {
2076 if (null != this.r.nc && 0 <= a && a < this.r.nc.length) return this.r.nc[a];
2077 throw new q("EReg::matched");
2078 },
2079 ps: function() {
2080 if (null == this.r.nc) throw new q("No string matched");
2081 return {
2082 mj: this.r.nc.index,
2083 ms: this.r.nc[0].length
2084 }
2085 },
2086 os: function(a, b, c) {
2087 null == c && (c = -1);
2088 if (this.r.global) {
2089 this.r.lastIndex = b;
2090 this.r.nc = this.r.exec(0 >
2091 c ? a : D.substr(a, 0, b + c));
2092 if (b = null != this.r.nc) this.r.bh = a;
2093 return b
2094 }
2095 if (c = this.match(0 > c ? D.substr(a, b, null) : D.substr(a, b, c))) this.r.bh = a, this.r.nc.index += b;
2096 return c
2097 },
2098 f: fc
2099 };
2100 D.b = !0;
2101 D.bj = function(a, b) {
2102 var c = a.charCodeAt(b);
2103 if (c == c) return c
2104 };
2105 D.substr = function(a, b, c) {
2106 if (null == c) c = a.length;
2107 else if (0 > c)
2108 if (0 == b) c = a.length + c;
2109 else return "";
2110 return a.substr(b, c)
2111 };
2112 D.remove = function(a, b) {
2113 var c = a.indexOf(b);
2114 if (-1 == c) return !1;
2115 a.splice(c, 1);
2116 return !0
2117 };
2118 Math.b = !0;
2119 ec.b = !0;
2120 ec.Mm = function(a) {
2121 var b = [];
2122 if (null != a) {
2123 var c = Object.prototype.hasOwnProperty,
2124 d;
2125 for (d in a) "__id__" != d && "hx__closures__" != d && c.call(a, d) && b.push(d)
2126 }
2127 return b
2128 };
2129 K.b = !0;
2130 K.ye = function(a) {
2131 return r.Be(a, "")
2132 };
2133 K.parseInt = function(a) {
2134 a = parseInt(a, !a || "0" != a[0] || "x" != a[1] && "X" != a[1] ? 10 : 16);
2135 return isNaN(a) ? null : a
2136 };
2137 J.b = !0;
2138 J.startsWith = function(a, b) {
2139 return a.length >= b.length ? D.substr(a, 0, b.length) == b : !1
2140 };
2141 J.ls = function(a, b) {
2142 var c = D.bj(a, b);
2143 return 8 < c && 14 > c ? !0 : 32 == c
2144 };
2145 J.Gs = function(a) {
2146 for (var b = a.length, c = 0; c < b && J.ls(a, b - c - 1);) ++c;
2147 return 0 < c ? D.substr(a, 0, b - c) : a
2148 };
2149 J.Af = function(a) {
2150 var b, c = "";
2151 for (b = 2 - a.length; c.length < b;) c += "0";
2152 return c + (null == a ? "null" : "" + a)
2153 };
2154 J.replace = function(a, b, c) {
2155 return a.split(b).join(c)
2156 };
2157 J.Vg = function(a, b) {
2158 for (var c = ""; c = "0123456789ABCDEF".charAt(a & 15) + c, a >>>= 4, 0 < a;);
2159 if (null != b)
2160 for (; c.length < b;) c = "0" + c;
2161 return c
2162 };
2163 U.b = !0;
2164 U.Qc = function(a, b) {
2165 return a.length <= b ? a : D.substr(a, 0, b)
2166 };
2167 U.Zr = function(a) {
2168 for (var b = "", c = 0, d = a.byteLength; c < d;) b += J.Vg(a[c++], 2);
2169 return b
2170 };
2171 dc.b = !0;
2172 dc.prototype = {
2173 Yr: function(a) {
2174 for (var b = 0, c = a.length; b < c;) this.hash += a[b++], this.hash += this.hash << 10,
2175 this.hash ^= this.hash >>> 6
2176 },
2177 f: dc
2178 };
2179 var Ob = Ab["bas.basnet.FailReason"] = {
2180 Gf: !0,
2181 nh: ["PeerFailed", "Rejected", "Cancelled", "Error"],
2182 jh: {
2183 nb: 0,
2184 eb: "bas.basnet.FailReason",
2185 toString: ga
2186 },
2187 lh: (X = function(a) {
2188 return {
2189 nb: 1,
2190 code: a,
2191 eb: "bas.basnet.FailReason",
2192 toString: ga
2193 }
2194 }, X.Ae = ["code"], X),
2195 hh: {
2196 nb: 2,
2197 eb: "bas.basnet.FailReason",
2198 toString: ga
2199 },
2200 Error: {
2201 nb: 3,
2202 eb: "bas.basnet.FailReason",
2203 toString: ga
2204 }
2205 };
2206 wb.b = !0;
2207 wb.Do = function(a) {
2208 switch (a.nb) {
2209 case 0:
2210 return "Failed";
2211 case 1:
2212 return pc.description(a.code);
2213 case 2:
2214 return "";
2215 case 3:
2216 return "Master connection error"
2217 }
2218 };
2219 wb.prototype = {
2220 Gn: function() {
2221 this.Oe(Ob.hh)
2222 },
2223 Uj: function() {
2224 null != this.X && (this.X.onclose = null, this.X.onmessage = null, this.X.onerror = null, this.X.onopen = null, this.X.close(), this.X = null);
2225 null != this.pa && (this.pa.ia(), this.pa = null)
2226 },
2227 Oe: function(a) {
2228 null != this.bd && this.bd(a);
2229 this.Uj()
2230 },
2231 Ph: function(a) {
2232 a = new F(new DataView(a.data));
2233 var b = a.B();
2234 0 < a.o.byteLength - a.a && (a = new F(new DataView(pako.inflateRaw(a.sb()).buffer), !1));
2235 switch (b) {
2236 case 1:
2237 for (var b = a.ic(), c = a.wg(), d = [], e = 0; e < c.length;) d.push(new RTCIceCandidate(c[e++]));
2238 this.Oh(b, d, a);
2239 break;
2240 case 4:
2241 this.Nh(new RTCIceCandidate(a.wg()))
2242 }
2243 },
2244 Oh: function(a, b) {
2245 var c = this;
2246 this.pa.Mi(this.rh ? 1E4 : 4E3);
2247 this.yh = !0;
2248 null != this.Zk && this.Zk();
2249 this.pa.Ra.setRemoteDescription(new RTCSessionDescription({
2250 sdp: a,
2251 type: "answer"
2252 }), function() {
2253 for (var a = 0; a < b.length;) c.pa.Ra.addIceCandidate(b[a++])
2254 }, function() {
2255 c.Oe(Ob.Error)
2256 })
2257 },
2258 Nh: function(a) {
2259 this.pa.Ra.addIceCandidate(a)
2260 },
2261 Nc: function(a, b) {
2262 if (null != this.X) {
2263 var c = w.ha(32, !1);
2264 c.l(a);
2265 null != b && c.Vb(pako.deflateRaw(b.Sb()));
2266 this.X.send(c.Hd())
2267 }
2268 },
2269 Bi: function(a, b, c) {
2270 var d = w.ha(32, !1);
2271 d.l(this.rh ? 1 : 0);
2272 d.mc(a.sdp);
2273 d.Ng(b);
2274 null != c && d.Vb(c.Sb());
2275 this.Nc(1, d)
2276 },
2277 yi: function(a) {
2278 var b = w.ha(32, !1);
2279 b.Ng(a);
2280 this.Nc(4, b)
2281 },
2282 f: wb
2283 };
2284 Va.b = !0;
2285 Va.prototype = {
2286 Mi: function(a) {
2287 null == a && (a = 1E4);
2288 window.clearTimeout(this.re);
2289 this.re = window.setTimeout(G(this, this.To), a)
2290 },
2291 bo: function(a, b) {
2292 var c = this;
2293 this.ck(this.Ra.setRemoteDescription(a).then(function() {
2294 return c.Ra.createAnswer()
2295 }), b, 500)
2296 },
2297 eo: function() {
2298 this.ck(this.Ra.createOffer(), [], 1E3)
2299 },
2300 ck: function(a, b, c) {
2301 var d = this;
2302 a.then(function(a) {
2303 return d.Ra.setLocalDescription(a).then(function() {
2304 return a
2305 })
2306 }).then(function(a) {
2307 function e() {
2308 return a
2309 }
2310 for (var g = 0; g < b.length;) d.yj(b[g++]);
2311 return lc.Dr(d.Sh, c).then(e, e)
2312 }).then(function(a) {
2313 d.di(a)
2314 })["catch"](function() {
2315 d.Tf()
2316 })
2317 },
2318 co: function(a) {
2319 var b = this,
2320 c = {
2321 id: this.Vc.length,
2322 negotiated: !0,
2323 ordered: a.kj
2324 };
2325 a.reliable || (c.maxRetransmits = 0);
2326 a = this.Ra.createDataChannel(a.name, c);
2327 a.binaryType = "arraybuffer";
2328 a.onopen = function() {
2329 for (var a = 0, c = b.Vc; a < c.length;)
2330 if ("open" != c[a++].readyState) return;
2331 null != b.zd && b.zd()
2332 };
2333 a.onclose = function() {
2334 b.Tf()
2335 };
2336 a.onmessage = function() {
2337 b.Tf()
2338 };
2339 this.Vc.push(a)
2340 },
2341 yj: function(a) {
2342 var b = this;
2343 window.setTimeout(function() {
2344 return b.Ra.addIceCandidate(a)
2345 }, this.ak)
2346 },
2347 To: function() {
2348 this.Tf()
2349 },
2350 Tf: function() {
2351 null != this.bd && this.bd();
2352 this.ia()
2353 },
2354 ia: function() {
2355 this.Tj();
2356 this.Ra.close()
2357 },
2358 Tj: function() {
2359 window.clearTimeout(this.re);
2360 this.di = this.zd = this.jg = this.bd = null;
2361 this.Ra.onicecandidate = null;
2362 this.Ra.ondatachannel = null;
2363 this.Ra.onsignalingstatechange = null;
2364 this.Ra.oniceconnectionstatechange =
2365 null;
2366 for (var a = 0, b = this.Vc; a < b.length;) {
2367 var c = b[a];
2368 ++a;
2369 c.onopen = null;
2370 c.onclose = null;
2371 c.onmessage = null
2372 }
2373 },
2374 f: Va
2375 };
2376 var gc = Ab["bas.basnet.ConnectionRequestResponse"] = {
2377 Gf: !0,
2378 nh: ["Accept", "Reject"],
2379 hn: {
2380 nb: 0,
2381 eb: "bas.basnet.ConnectionRequestResponse",
2382 toString: ga
2383 },
2384 kh: (X = function(a) {
2385 return {
2386 nb: 1,
2387 reason: a,
2388 eb: "bas.basnet.ConnectionRequestResponse",
2389 toString: ga
2390 }
2391 }, X.Ae = ["reason"], X)
2392 };
2393 Sa.b = !0;
2394 Sa.vk = function(a) {
2395 try {
2396 var b = nc.gf(a.candidate);
2397 if ("srflx" == b.Jr) return b.Xo
2398 } catch (c) {}
2399 return null
2400 };
2401 Sa.prototype = {
2402 ia: function() {
2403 window.clearTimeout(this.Ul);
2404 window.clearTimeout(this.ke);
2405 this.ke = null;
2406 window.clearInterval(this.ol);
2407 this.X.onmessage = null;
2408 this.X.onerror = null;
2409 this.X.onclose = null;
2410 this.X.onopen = null;
2411 this.X.close();
2412 this.X = null;
2413 this.qk()
2414 },
2415 Fi: function(a) {
2416 var b = this;
2417 if (null != this.Mc || null != a) {
2418 if (null != this.Mc && null != a && this.Mc.byteLength == a.byteLength) {
2419 for (var c = new Uint8Array(this.Mc), d = new Uint8Array(a), e = !1, f = 0, g = this.Mc.byteLength; f < g;) {
2420 var k = f++;
2421 if (c[k] != d[k]) {
2422 e = !0;
2423 break
2424 }
2425 }
2426 if (!e) return
2427 }
2428 this.Mc = a.slice(0);
2429 this.Ag = !0;
2430 null != this.X && 1 == this.X.readyState &&
2431 null == this.ke && (this.Ai(), this.ke = window.setTimeout(function() {
2432 b.ke = null;
2433 1 == b.X.readyState && b.Ag && b.Ai()
2434 }, 1E4))
2435 }
2436 },
2437 Ei: function(a) {
2438 function b() {
2439 null != c.X && 1 == c.X.readyState && c.nf != c.dm && c.cm();
2440 c.Ql = null
2441 }
2442 var c = this;
2443 this.nf = a;
2444 null == this.Ql && (b(), this.Ql = window.setTimeout(b, 1E3))
2445 },
2446 Ji: function(a) {
2447 function b(a) {
2448 a = a.sitekey;
2449 if (null == a) throw new q(null);
2450 null != d.ef && d.ef(a, function(a) {
2451 d.Ji(a)
2452 })
2453 }
2454
2455 function c(a) {
2456 var b = a.url;
2457 if (null == b) throw new q(null);
2458 a = a.token;
2459 if (null == a) throw new q(null);
2460 d.X = new WebSocket(b +
2461 "?token=" + a);
2462 d.X.binaryType = "arraybuffer";
2463 d.X.onopen = function() {
2464 d.So()
2465 };
2466 d.X.onclose = function(a) {
2467 d.Mh(4001 != a.code)
2468 };
2469 d.X.onerror = function() {
2470 d.Mh(!0)
2471 };
2472 d.X.onmessage = G(d, d.Ph)
2473 }
2474 null == a && (a = "");
2475 var d = this;
2476 M.zl(this.xr, "token=" + this.Dg + "&rcr=" + a, M.vj).then(function(a) {
2477 switch (a.action) {
2478 case "connect":
2479 c(a);
2480 break;
2481 case "recaptcha":
2482 b(a)
2483 }
2484 })["catch"](function() {
2485 d.Mh(!0)
2486 })
2487 },
2488 So: function() {
2489 var a = this;
2490 null != this.Mc && this.Ai();
2491 0 != this.nf && this.cm();
2492 this.ol = window.setInterval(function() {
2493 a.zi()
2494 }, 4E4)
2495 },
2496 Ph: function(a) {
2497 a =
2498 new F(new DataView(a.data), !1);
2499 switch (a.B()) {
2500 case 1:
2501 this.Oh(a);
2502 break;
2503 case 4:
2504 this.Nh(a);
2505 break;
2506 case 5:
2507 this.No(a);
2508 break;
2509 case 6:
2510 this.Qo(a)
2511 }
2512 },
2513 Oh: function(a) {
2514 var b = a.hb(),
2515 c = U.Zr(a.sb(a.B())),
2516 d, e, f;
2517 try {
2518 a = new F(new DataView(pako.inflateRaw(a.sb()).buffer), !1);
2519 d = 0 != a.B();
2520 e = a.ic();
2521 for (var g = a.wg(), k = [], l = 0; l < g.length;) k.push(new RTCIceCandidate(g[l++]));
2522 f = k
2523 } catch (t) {
2524 this.sf(b, 0);
2525 return
2526 }
2527 this.Ro(b, c, e, f, a, d)
2528 },
2529 Ro: function(a, b, c, d, e, f) {
2530 var g = this;
2531 if (16 <= this.od.size) this.sf(a, 4104);
2532 else if (this.th.has(b)) this.sf(a,
2533 4102);
2534 else {
2535 for (var k = [], l = 0; l < d.length;) {
2536 var t = Sa.vk(d[l++]);
2537 if (null != t) {
2538 if (this.If.has(t)) {
2539 this.sf(a, 4102);
2540 return
2541 }
2542 k.push(t)
2543 }
2544 }
2545 if (null != this.Vj && (l = new F(e.o), l.a = e.a, e = this.Vj(b, l), 1 == e.nb)) {
2546 this.sf(a, e.reason);
2547 return
2548 }
2549 var h = new Va(a, this.Vf, this.In);
2550 f && (h.ak = 2500);
2551 h.oe = k;
2552 h.gd = b;
2553 this.od.set(a, h);
2554 h.bd = function() {
2555 g.Nc(0, h, null);
2556 g.od["delete"](h.$)
2557 };
2558 h.zd = function() {
2559 g.od["delete"](h.$);
2560 g.Nc(0, h, null);
2561 null != g.bl && g.bl(new Nb(h))
2562 };
2563 h.di = function(a) {
2564 g.Bi(h, a, h.Uf, null);
2565 h.Sh.then(function() {
2566 g.Nc(0, h, null)
2567 });
2568 h.jg = function(a) {
2569 g.yi(h, a)
2570 }
2571 };
2572 h.Mi();
2573 h.bo(new RTCSessionDescription({
2574 sdp: c,
2575 type: "offer"
2576 }), d)
2577 }
2578 },
2579 Nh: function(a) {
2580 var b = a.hb(),
2581 c;
2582 try {
2583 a = new F(new DataView(pako.inflateRaw(a.sb()).buffer), !1), c = new RTCIceCandidate(a.wg())
2584 } catch (d) {
2585 return
2586 }
2587 this.Mo(b, c)
2588 },
2589 Mo: function(a, b) {
2590 var c = this.od.get(a);
2591 if (null != c) {
2592 var d = Sa.vk(b);
2593 if (null != d && (c.oe.push(d), this.If.has(d))) return;
2594 c.yj(b)
2595 }
2596 },
2597 No: function(a) {
2598 this.$ = a.ie(a.B());
2599 null != this.kg && this.kg(this.$)
2600 },
2601 Qo: function(a) {
2602 this.Dg = a.ie(a.o.byteLength - a.a)
2603 },
2604 Nc: function(a, b, c) {
2605 if (!b.hl) {
2606 0 ==
2607 a && (b.hl = !0);
2608 b = b.$;
2609 var d = w.ha(32, !1);
2610 d.l(a);
2611 d.tb(b);
2612 null != c && d.Vb(pako.deflateRaw(c.Sb()));
2613 this.X.send(d.Hd())
2614 }
2615 },
2616 sf: function(a, b) {
2617 var c = w.ha(16, !1);
2618 c.l(0);
2619 c.tb(a);
2620 c.Ub(b);
2621 this.X.send(c.Hd())
2622 },
2623 zi: function() {
2624 var a = w.ha(1, !1);
2625 a.l(8);
2626 this.X.send(a.Hd())
2627 },
2628 Ai: function() {
2629 this.Ag = !1;
2630 var a = w.ha(256, !1);
2631 a.l(7);
2632 null != this.Mc && a.Mg(this.Mc);
2633 this.X.send(a.Hd())
2634 },
2635 cm: function() {
2636 var a = w.ha(2, !1);
2637 a.l(9);
2638 a.l(this.nf ? 1 : 0);
2639 this.X.send(a.Hd());
2640 this.dm = this.nf
2641 },
2642 Bi: function(a, b, c, d) {
2643 var e = w.ha(32, !1);
2644 e.mc(b.sdp);
2645 e.Ng(c);
2646 null != d && e.Vb(d.Sb());
2647 this.Nc(1, a, e)
2648 },
2649 yi: function(a, b) {
2650 var c = w.ha(32, !1);
2651 c.Ng(b);
2652 this.Nc(4, a, c)
2653 },
2654 qk: function() {
2655 for (var a = this.od.values(), b = a.next(); !b.done;) {
2656 var c = b.value,
2657 b = a.next();
2658 c.ia()
2659 }
2660 this.od.clear()
2661 },
2662 Mh: function(a) {
2663 var b = this;
2664 this.qk();
2665 window.clearTimeout(this.ke);
2666 this.ke = null;
2667 this.Ag = !1;
2668 window.clearInterval(this.ol);
2669 window.clearTimeout(this.Ul);
2670 a && (this.Ul = window.setTimeout(function() {
2671 b.Ji()
2672 }, this.Zq + Math.random() * this.$q | 0))
2673 },
2674 zn: function(a) {
2675 for (var b = 0, c = a.oe; b < c.length;) this.If.add(c[b++]);
2676 null != a.gd && this.th.add(a.gd);
2677 return {
2678 Rs: a.oe,
2679 Ps: a.gd
2680 }
2681 },
2682 Ud: function() {
2683 this.If.clear();
2684 this.th.clear()
2685 },
2686 f: Sa
2687 };
2688 nc.b = !0;
2689 nc.gf = function(a) {
2690 a = a.split(" ");
2691 if ("typ" != a[6]) throw new q(null);
2692 return {
2693 Jr: a[7],
2694 Xo: a[4]
2695 }
2696 };
2697 Nb.b = !0;
2698 Nb.prototype = {
2699 Br: function() {
2700 return window.performance.now() - this.ym
2701 },
2702 Rb: function(a, b) {
2703 if (this.wd) {
2704 var c = this.Vc[a];
2705 if ("open" == c.readyState) {
2706 var d = b.Kg();
2707 try {
2708 c.send(d)
2709 } catch (e) {
2710 window.console.log(e instanceof q ? e.Ta : e)
2711 }
2712 }
2713 }
2714 },
2715 ia: function() {
2716 window.clearTimeout(this.Am);
2717 this.wd && (this.wd = !1,
2718 this.Ra.close(), null != this.cf && this.cf())
2719 },
2720 f: Nb
2721 };
2722 var pc = {
2723 b: !0,
2724 description: function(a) {
2725 switch (a) {
2726 case 4001:
2727 return "The room was closed.";
2728 case 4100:
2729 return "The room is full.";
2730 case 4101:
2731 return "Wrong password.";
2732 case 4102:
2733 return "You are banned from this room.";
2734 case 4103:
2735 return "Incompatible game version.";
2736 default:
2737 return "Connection closed (" + a + ")"
2738 }
2739 }
2740 };
2741 F.b = !0;
2742 F.jo = function(a, b) {
2743 var c = a.getUint8(b),
2744 d, e, f, g, k, l = b;
2745 if (0 == (c & 128)) ++b;
2746 else if (192 == (c & 224)) d = a.getUint8(b + 1), c = (c & 31) << 6 | d & 63, b += 2;
2747 else if (224 == (c & 240)) d =
2748 a.getUint8(b + 1), e = a.getUint8(b + 2), c = (c & 15) << 12 | (d & 63) << 6 | e & 63, b += 3;
2749 else if (240 == (c & 248)) d = a.getUint8(b + 1), e = a.getUint8(b + 2), f = a.getUint8(b + 3), c = (c & 7) << 18 | (d & 63) << 12 | (e & 63) << 6 | f & 63, b += 4;
2750 else if (248 == (c & 252)) d = a.getUint8(b + 1), e = a.getUint8(b + 2), f = a.getUint8(b + 3), g = a.getUint8(b + 4), c = (c & 3) << 24 | (d & 63) << 18 | (e & 63) << 12 | (f & 63) << 6 | g & 63, b += 5;
2751 else if (252 == (c & 254)) d = a.getUint8(b + 1), e = a.getUint8(b + 2), f = a.getUint8(b + 3), g = a.getUint8(b + 4), k = a.getUint8(b + 5), c = (c & 1) << 30 | (d & 63) << 24 | (e & 63) << 18 | (f & 63) << 12 | (g & 63) << 6 | k & 63,
2752 b += 6;
2753 else throw new q("Cannot decode UTF8 character at offset " + b + ": charCode (" + c + ") is invalid");
2754 return {
2755 "char": c,
2756 length: b - l
2757 }
2758 };
2759 F.prototype = {
2760 sb: function(a) {
2761 null == a && (a = this.o.byteLength - this.a);
2762 if (this.a + a > this.o.byteLength) throw new q("Read too much");
2763 var b = new Uint8Array(this.o.buffer, this.o.byteOffset + this.a, a);
2764 this.a += a;
2765 return b
2766 },
2767 Cl: function(a) {
2768 var b = this.sb(a);
2769 a = new ArrayBuffer(a);
2770 (new Uint8Array(a)).set(b);
2771 return a
2772 },
2773 lf: function() {
2774 return this.o.getInt8(this.a++)
2775 },
2776 B: function() {
2777 return this.o.getUint8(this.a++)
2778 },
2779 ni: function() {
2780 var a = this.o.getInt16(this.a, this.Sa);
2781 this.a += 2;
2782 return a
2783 },
2784 Ob: function() {
2785 var a = this.o.getUint16(this.a, this.Sa);
2786 this.a += 2;
2787 return a
2788 },
2789 M: function() {
2790 var a = this.o.getInt32(this.a, this.Sa);
2791 this.a += 4;
2792 return a
2793 },
2794 hb: function() {
2795 var a = this.o.getUint32(this.a, this.Sa);
2796 this.a += 4;
2797 return a
2798 },
2799 mi: function() {
2800 var a = this.o.getFloat32(this.a, this.Sa);
2801 this.a += 4;
2802 return a
2803 },
2804 u: function() {
2805 var a = this.o.getFloat64(this.a, this.Sa);
2806 this.a += 8;
2807 return a
2808 },
2809 Ab: function() {
2810 for (var a = this.a, b = 0, c, d = 0; c = this.o.getUint8(a + b), 5 >
2811 b && (d |= (c & 127) << 7 * b >>> 0), ++b, 0 != (c & 128););
2812 this.a += b;
2813 return d | 0
2814 },
2815 ie: function(a) {
2816 var b = this.a,
2817 c, d = "";
2818 for (a = b + a; b < a;) c = F.jo(this.o, b), b += c.length, d += String.fromCodePoint(c["char"]);
2819 if (b != a) throw new q("Actual string length differs from the specified: " + (b - a) + " bytes");
2820 this.a = b;
2821 return d
2822 },
2823 zb: function() {
2824 var a = this.Ab();
2825 return 0 >= a ? null : this.ie(a - 1)
2826 },
2827 ic: function() {
2828 return this.ie(this.Ab())
2829 },
2830 El: function() {
2831 return this.ie(this.B())
2832 },
2833 wg: function() {
2834 var a = this.ic();
2835 return JSON.parse(a)
2836 },
2837 f: F
2838 };
2839 w.b = !0;
2840 w.ha = function(a,
2841 b) {
2842 null == b && (b = !1);
2843 null == a && (a = 16);
2844 return new w(new DataView(new ArrayBuffer(a)), b)
2845 };
2846 w.uo = function(a, b, c) {
2847 var d = c;
2848 if (0 > a) throw new q("Cannot encode UTF8 character: charCode (" + a + ") is negative");
2849 if (128 > a) b.setUint8(c, a & 127), ++c;
2850 else if (2048 > a) b.setUint8(c, a >> 6 & 31 | 192), b.setUint8(c + 1, a & 63 | 128), c += 2;
2851 else if (65536 > a) b.setUint8(c, a >> 12 & 15 | 224), b.setUint8(c + 1, a >> 6 & 63 | 128), b.setUint8(c + 2, a & 63 | 128), c += 3;
2852 else if (2097152 > a) b.setUint8(c, a >> 18 & 7 | 240), b.setUint8(c + 1, a >> 12 & 63 | 128), b.setUint8(c + 2, a >> 6 & 63 | 128),
2853 b.setUint8(c + 3, a & 63 | 128), c += 4;
2854 else if (67108864 > a) b.setUint8(c, a >> 24 & 3 | 248), b.setUint8(c + 1, a >> 18 & 63 | 128), b.setUint8(c + 2, a >> 12 & 63 | 128), b.setUint8(c + 3, a >> 6 & 63 | 128), b.setUint8(c + 4, a & 63 | 128), c += 5;
2855 else if (-2147483648 > a) b.setUint8(c, a >> 30 & 1 | 252), b.setUint8(c + 1, a >> 24 & 63 | 128), b.setUint8(c + 2, a >> 18 & 63 | 128), b.setUint8(c + 3, a >> 12 & 63 | 128), b.setUint8(c + 4, a >> 6 & 63 | 128), b.setUint8(c + 5, a & 63 | 128), c += 6;
2856 else throw new q("Cannot encode UTF8 character: charCode (" + a + ") is too large (>= 0x80000000)");
2857 return c - d
2858 };
2859 w.En = function(a) {
2860 if (0 >
2861 a) throw new q("Cannot calculate length of UTF8 character: charCode (" + a + ") is negative");
2862 if (128 > a) return 1;
2863 if (2048 > a) return 2;
2864 if (65536 > a) return 3;
2865 if (2097152 > a) return 4;
2866 if (67108864 > a) return 5;
2867 if (-2147483648 > a) return 6;
2868 throw new q("Cannot calculate length of UTF8 character: charCode (" + a + ") is too large (>= 0x80000000)");
2869 };
2870 w.Kf = function(a) {
2871 for (var b = 0, c = a.length, d = 0; d < c;) b += w.En(D.bj(a, d++));
2872 return b
2873 };
2874 w.Fn = function(a) {
2875 a >>>= 0;
2876 return 128 > a ? 1 : 16384 > a ? 2 : 2097152 > a ? 3 : 268435456 > a ? 4 : 5
2877 };
2878 w.prototype = {
2879 Kg: function() {
2880 var a =
2881 new ArrayBuffer(this.a),
2882 b = new Uint8Array(this.o.buffer, this.o.byteOffset, this.a);
2883 (new Uint8Array(a)).set(b);
2884 return a
2885 },
2886 Sb: function() {
2887 return new Uint8Array(this.o.buffer, this.o.byteOffset, this.a)
2888 },
2889 Hd: function() {
2890 return new DataView(this.o.buffer, this.o.byteOffset, this.a)
2891 },
2892 Gr: function() {
2893 return new F(this.Hd(), this.Sa)
2894 },
2895 rc: function(a) {
2896 this.o.byteLength < a && this.Yq(2 * this.o.byteLength >= a ? 2 * this.o.byteLength : a)
2897 },
2898 Yq: function(a) {
2899 if (1 > a) throw new q("Can't resize buffer to a capacity lower than 1");
2900 if (this.o.byteLength <
2901 a) {
2902 var b = new Uint8Array(this.o.buffer);
2903 a = new ArrayBuffer(a);
2904 (new Uint8Array(a)).set(b);
2905 this.o = new DataView(a)
2906 }
2907 },
2908 l: function(a) {
2909 var b = this.a++;
2910 this.rc(this.a);
2911 this.o.setUint8(b, a)
2912 },
2913 Xi: function(a) {
2914 var b = this.a;
2915 this.a += 2;
2916 this.rc(this.a);
2917 this.o.setInt16(b, a, this.Sa)
2918 },
2919 Ub: function(a) {
2920 var b = this.a;
2921 this.a += 2;
2922 this.rc(this.a);
2923 this.o.setUint16(b, a, this.Sa)
2924 },
2925 O: function(a) {
2926 var b = this.a;
2927 this.a += 4;
2928 this.rc(this.a);
2929 this.o.setInt32(b, a, this.Sa)
2930 },
2931 tb: function(a) {
2932 var b = this.a;
2933 this.a += 4;
2934 this.rc(this.a);
2935 this.o.setUint32(b,
2936 a, this.Sa)
2937 },
2938 Wi: function(a) {
2939 var b = this.a;
2940 this.a += 4;
2941 this.rc(this.a);
2942 this.o.setFloat32(b, a, this.Sa)
2943 },
2944 s: function(a) {
2945 var b = this.a;
2946 this.a += 8;
2947 this.rc(this.a);
2948 this.o.setFloat64(b, a, this.Sa)
2949 },
2950 Vb: function(a) {
2951 var b = this.a;
2952 this.a += a.byteLength;
2953 this.rc(this.a);
2954 (new Uint8Array(this.o.buffer, this.o.byteOffset, this.o.byteLength)).set(a, b)
2955 },
2956 Mg: function(a) {
2957 this.Vb(new Uint8Array(a))
2958 },
2959 mc: function(a) {
2960 this.lb(w.Kf(a));
2961 this.Og(a)
2962 },
2963 Db: function(a) {
2964 null == a ? this.lb(0) : (this.lb(w.Kf(a) + 1), this.Og(a))
2965 },
2966 Im: function(a) {
2967 var b =
2968 w.Kf(a);
2969 if (255 < b) throw new q(null);
2970 this.l(b);
2971 this.Og(a)
2972 },
2973 Ng: function(a) {
2974 this.mc(JSON.stringify(a))
2975 },
2976 Og: function(a) {
2977 var b = this.a;
2978 this.rc(b + w.Kf(a));
2979 for (var c = a.length, d = 0; d < c;) b += w.uo(D.bj(a, d++), this.o, b);
2980 this.a = b
2981 },
2982 lb: function(a) {
2983 var b = this.a;
2984 a >>>= 0;
2985 this.rc(b + w.Fn(a));
2986 this.o.setUint8(b, a | 128);
2987 128 <= a ? (this.o.setUint8(b + 1, a >> 7 | 128), 16384 <= a ? (this.o.setUint8(b + 2, a >> 14 | 128), 2097152 <= a ? (this.o.setUint8(b + 3, a >> 21 | 128), 268435456 <= a ? (this.o.setUint8(b + 4, a >> 28 & 127), a = 5) : (this.o.setUint8(b + 3, this.o.getUint8(b +
2988 3) & 127), a = 4)) : (this.o.setUint8(b + 2, this.o.getUint8(b + 2) & 127), a = 3)) : (this.o.setUint8(b + 1, this.o.getUint8(b + 1) & 127), a = 2)) : (this.o.setUint8(b, this.o.getUint8(b) & 127), a = 1);
2989 this.a += a
2990 },
2991 f: w
2992 };
2993 I.b = !0;
2994 I.yo = function() {
2995 try {
2996 return window.crypto.subtle.generateKey(I.qh, !0, ["sign", "verify"]).then(function(a) {
2997 var b = a.privateKey;
2998 return window.crypto.subtle.exportKey("jwk", b).then(function(a) {
2999 var c = a.y,
3000 e = a.d,
3001 f = new I;
3002 f.Yi = a.x;
3003 f.Zi = c;
3004 f.Zj = e;
3005 f.Al = b;
3006 return f
3007 })
3008 })
3009 } catch (a) {
3010 return Promise.reject(a instanceof q ? a.Ta : a)
3011 }
3012 };
3013 I.xo = function(a) {
3014 a = a.split(".");
3015 if (4 != a.length || "idkey" != a[0]) return Promise.reject("Invalid id format");
3016 var b = a[1],
3017 c = a[2],
3018 d = a[3];
3019 return I.Xr(b, c, d).then(function(a) {
3020 var e = new I;
3021 e.Yi = b;
3022 e.Zi = c;
3023 e.Zj = d;
3024 e.Al = a;
3025 return e
3026 })
3027 };
3028 I.Rr = function(a, b) {
3029 try {
3030 var c = new F(new DataView(a.buffer, a.byteOffset, a.byteLength), !1);
3031 c.B();
3032 var d = c.sb(c.Ob()),
3033 e = c.sb(),
3034 f = new F(new DataView(d.buffer, d.byteOffset, d.byteLength), !1),
3035 g = f.ic(),
3036 k = f.ic(),
3037 l = f.sb();
3038 if (l.byteLength != b.byteLength) return Promise.reject(null);
3039 for (var c = 0, t = l.byteLength; c <
3040 t;) {
3041 var h = c++;
3042 if (l[h] != b[h]) return Promise.reject(null)
3043 }
3044 return I.Wr(g, k).then(function(a) {
3045 return window.crypto.subtle.verify(I.mm, a, e, d)
3046 }).then(function(a) {
3047 if (!a) throw new q(null);
3048 return g
3049 })
3050 } catch (jc) {
3051 return Promise.reject(jc instanceof q ? jc.Ta : jc)
3052 }
3053 };
3054 I.Xr = function(a, b, c) {
3055 try {
3056 return window.crypto.subtle.importKey("jwk", {
3057 crv: "P-256",
3058 ext: !0,
3059 key_ops: ["sign"],
3060 kty: "EC",
3061 d: c,
3062 x: a,
3063 y: b
3064 }, I.qh, !0, ["sign"])
3065 } catch (d) {
3066 return Promise.reject(d instanceof q ? d.Ta : d)
3067 }
3068 };
3069 I.Wr = function(a, b) {
3070 try {
3071 return window.crypto.subtle.importKey("jwk", {
3072 crv: "P-256",
3073 ext: !0,
3074 key_ops: ["verify"],
3075 kty: "EC",
3076 x: a,
3077 y: b
3078 }, I.qh, !0, ["verify"])
3079 } catch (c) {
3080 return Promise.reject(c instanceof q ? c.Ta : c)
3081 }
3082 };
3083 I.prototype = {
3084 Ir: function() {
3085 return "idkey." + this.Yi + "." + this.Zi + "." + this.Zj
3086 },
3087 wr: function(a) {
3088 try {
3089 var b = w.ha(1024);
3090 b.l(1);
3091 var c = b.a;
3092 b.Ub(0);
3093 var d = b.a;
3094 b.mc(this.Yi);
3095 b.mc(this.Zi);
3096 b.Vb(a);
3097 var e = b.a - d;
3098 b.o.setUint16(c, e, b.Sa);
3099 var f = new Uint8Array(b.o.buffer, b.o.byteOffset + d, e);
3100 return window.crypto.subtle.sign(I.mm, this.Al, f).then(function(a) {
3101 b.Mg(a);
3102 return b.Sb()
3103 })
3104 } catch (g) {
3105 return Promise.reject(g instanceof q ? g.Ta : g)
3106 }
3107 },
3108 f: I
3109 };
3110 Ja.b = !0;
3111 Ja.gp = function() {
3112 if (null != Ja.li) return Ja.li;
3113 Ja.li = new Promise(function(a, b) {
3114 var c = window.grecaptcha;
3115 null != c ? a(c) : (c = window.document.createElement("script"), c.src = "https://www.google.com/recaptcha/api.js?onload=___recaptchaload&render=explicit", window.document.head.appendChild(c), window.___recaptchaload = function() {
3116 a(window.grecaptcha)
3117 }, c.onerror = function() {
3118 b(null)
3119 })
3120 });
3121 return Ja.li
3122 };
3123 Ba.b = !0;
3124 Ba.cg = function(a) {
3125 return new PerfectScrollbar(a, {
3126 handlers: Ba.Uo
3127 })
3128 };
3129 mc.b = !0;
3130 mc.ts = function() {
3131 var a =
3132 window;
3133 a.RTCPeerConnection = a.webkitRTCPeerConnection || a.mozRTCPeerConnection || a.RTCPeerConnection;
3134 a.RTCIceCandidate = a.webkitRTCIceCandidate || a.mozRTCIceCandidate || a.RTCIceCandidate;
3135 a.RTCSessionDescription = a.webkitRTCSessionDescription || a.mozRTCSessionDescription || a.RTCSessionDescription;
3136 var b = new RTCPeerConnection({
3137 iceServers: []
3138 });
3139 try {
3140 b.createAnswer()["catch"](function() {})
3141 } catch (e) {
3142 var a = a.RTCPeerConnection.prototype,
3143 c = a.createOffer,
3144 d = a.createAnswer;
3145 a.createOffer = function(a) {
3146 var b = this;
3147 return new Promise(function(d,
3148 e) {
3149 c.call(b, d, e, a)
3150 })
3151 };
3152 a.createAnswer = function(a) {
3153 var b = this;
3154 return new Promise(function(c, e) {
3155 d.call(b, c, e, a)
3156 })
3157 }
3158 }
3159 };
3160 Ca.b = !0;
3161 Ca.ar = function(a, b) {
3162 Ca.Xl(new Blob([a], {
3163 type: "octet/stream"
3164 }), b)
3165 };
3166 Ca.br = function(a, b) {
3167 Ca.Xl(new Blob([a], {
3168 type: "text/plain"
3169 }), b)
3170 };
3171 Ca.Xl = function(a, b) {
3172 var c = window.document.createElement("a");
3173 c.style.display = "display: none";
3174 window.document.body.appendChild(c);
3175 var d = URL.createObjectURL(a);
3176 c.href = d;
3177 c.download = b;
3178 c.click();
3179 URL.revokeObjectURL(d);
3180 c.remove()
3181 };
3182 Db.b = !0;
3183 Db.prototype = {
3184 set: function(a) {
3185 this.value !=
3186 a && (this.value = a, this.Ja.textContent = "" + this.value)
3187 },
3188 f: Db
3189 };
3190 v.b = !0;
3191 v.Ea = function(a) {
3192 var b = new Map,
3193 c = 0;
3194 for (a = a.querySelectorAll("[data-hook]"); c < a.length;) {
3195 var d = a[c++];
3196 b.set(d.getAttribute("data-hook"), d)
3197 }
3198 return b
3199 };
3200 v.Ga = function(a, b) {
3201 null == b && (b = "div");
3202 var c = window.document.createElement(b);
3203 c.innerHTML = a;
3204 return c.firstElementChild
3205 };
3206 v.xe = function(a, b) {
3207 a.parentElement.replaceChild(b, a)
3208 };
3209 v.Cf = function(a) {
3210 for (var b = a.firstChild; null != b;) a.removeChild(b), b = a.firstChild
3211 };
3212 zb.b = !0;
3213 zb.eh = function(a) {
3214 return new Promise(function(b,
3215 c) {
3216 a.onsuccess = function() {
3217 b(a.result)
3218 };
3219 a.onerror = c
3220 })
3221 };
3222 lc.b = !0;
3223 lc.Dr = function(a, b) {
3224 return new Promise(function(c, d) {
3225 var e = window.setTimeout(function() {
3226 d("Timed out")
3227 }, b);
3228 a.then(function(a) {
3229 window.clearTimeout(e);
3230 c(a)
3231 }, function(a) {
3232 window.clearTimeout(e);
3233 d(a)
3234 })
3235 })
3236 };
3237 m.b = !0;
3238 m.Fa = function(a) {
3239 null == a.Aa && (a.Aa = !0);
3240 null == a.Ba && (a.Ba = !0);
3241 return a
3242 };
3243 m.Ha = function(a) {
3244 a.on = m.yf;
3245 if (null == a.za) throw new q("Class doesn't have a config");
3246 a.prototype.zf = a.za;
3247 m.Qm.set(m.yf, a);
3248 m.yf++
3249 };
3250 m.lj = function(a, b) {
3251 var c = (null ==
3252 a ? null : r.Nm(a)).on;
3253 if (null == c) throw new q("Tried to pack unregistered action");
3254 b.l(c);
3255 a.ua(b)
3256 };
3257 m.fh = function(a) {
3258 var b = a.B(),
3259 b = Object.create(m.Qm.get(b).prototype);
3260 b.da = 0;
3261 b.mb = 0;
3262 b.va(a);
3263 return b
3264 };
3265 m.prototype = {
3266 $m: function() {
3267 return !0
3268 },
3269 apply: function() {
3270 throw new q("missing implementation");
3271 },
3272 va: function() {
3273 throw new q("missing implementation");
3274 },
3275 ua: function() {
3276 throw new q("missing implementation");
3277 },
3278 f: m
3279 };
3280 Ia.b = !0;
3281 Ia.ss = function(a, b, c) {
3282 if (0 == a.length)
3283 for (a = 0; a < b.length;) c.push(b[a++]);
3284 else if (0 == b.length)
3285 for (b =
3286 0; b < a.length;) c.push(a[b++]);
3287 else
3288 for (var d = 0, e = a.length, f = 0, g = b.length;;) {
3289 var k = a[d],
3290 l = b[f];
3291 if (k.mb <= l.mb) {
3292 if (c.push(k), ++d, d >= e) {
3293 for (; f < g;) c.push(b[f++]);
3294 break
3295 }
3296 } else if (c.push(l), ++f, f >= g) {
3297 for (; d < e;) c.push(a[d++]);
3298 break
3299 }
3300 }
3301 };
3302 Ia.prototype = {
3303 Rm: function(a) {
3304 for (var b = 0, c = a.mb, d = a.da, e = 0, f = this.list; e < f.length;) {
3305 var g = f[e];
3306 ++e;
3307 var k = g.mb;
3308 if (k > c) break;
3309 if (k == c) {
3310 g = g.da;
3311 if (g > d) break;
3312 g == d && ++d
3313 }++b
3314 }
3315 a.da = d;
3316 this.list.splice(b, 0, a)
3317 },
3318 Cs: function(a) {
3319 for (var b = 0, c = 0, d = this.list; c < d.length && !(d[c++].mb >= a);) ++b;
3320 this.list.splice(0,
3321 b)
3322 },
3323 as: function(a, b) {
3324 for (var c = this.list; 0 < c.length;) c.pop();
3325 Ia.ss(a.list, b.list, this.list)
3326 },
3327 Ds: function(a) {
3328 for (var b = 0, c = this.list, d = 0, e = c.length; d < e;) {
3329 var f = c[d++];
3330 f.ue != a && (c[b] = f, ++b)
3331 }
3332 for (; c.length > b;) c.pop()
3333 },
3334 bs: function(a) {
3335 for (var b = 0, c = 0, d = this.list; c < d.length && !(d[c++].mb >= a);) ++b;
3336 return b
3337 },
3338 f: Ia
3339 };
3340 yb.b = !0;
3341 yb.prototype = {
3342 f: yb
3343 };
3344 Ua.b = !0;
3345 Ua.ma = m;
3346 Ua.prototype = C(m.prototype, {
3347 apply: function(a) {
3348 a.Sn(this.Rg)
3349 },
3350 ua: function(a) {
3351 a.lb(this.Rg.byteLength);
3352 a.Mg(this.Rg)
3353 },
3354 va: function(a) {
3355 this.Rg = a.Cl(a.Ab())
3356 },
3357 f: Ua
3358 });
3359 cc.b = !0;
3360 cc.prototype = {
3361 f: cc
3362 };
3363 Mb.b = !0;
3364 Mb.prototype = {
3365 add: function(a) {
3366 for (var b = this.$a.length, c = 0, d = this.Qd = 0; d < b;) {
3367 var e = d++,
3368 f = this.$a[e];
3369 f.index++;
3370 f.weight *= .97;
3371 this.$a[c].index < f.index && (c = e);
3372 this.Qd += f.weight
3373 }
3374 b >= this.rs ? (b = this.$a[c], this.Qd -= b.weight, this.$a.splice(c, 1)) : b = new bc;
3375 b.value = a;
3376 b.weight = 1;
3377 b.index = 0;
3378 this.Qd += b.weight;
3379 for (a = 0; a < this.$a.length && this.$a[a].value <= b.value;) ++a;
3380 this.$a.splice(a, 0, b)
3381 },
3382 $g: function(a) {
3383 if (0 == this.$a.length) return 0;
3384 if (1 == this.$a.length) return this.$a[0].value;
3385 a *= this.Qd;
3386 for (var b = this.$a[0].weight, c = 0; c < this.$a.length - 1 && !(b >= a);) ++c, b += this.$a[c].weight;
3387 return this.$a[c].value
3388 },
3389 max: function() {
3390 return 0 == this.$a.length ? 0 : this.$a[this.$a.length - 1].value
3391 },
3392 f: Mb
3393 };
3394 bc.b = !0;
3395 bc.prototype = {
3396 f: bc
3397 };
3398 ac.b = !0;
3399 ac.prototype = {
3400 stop: function() {
3401 this.hj.fc = null;
3402 this.hj.T.km(null);
3403 this.Nd.o.setUint16(0, this.Xm, this.Nd.Sa);
3404 this.Nd.Vb(this.Df.Sb());
3405 var a = pako.deflateRaw(this.Nd.Sb()),
3406 b = w.ha(a.byteLength + 32);
3407 b.Og("HBR2");
3408 b.tb(this.version);
3409 b.tb(this.hj.Y - this.ah);
3410 b.Vb(a);
3411 return b.Sb()
3412 },
3413 f: ac
3414 };
3415 Ta.b = !0;
3416 ya.b = !0;
3417 V.b = !0;
3418 V.ma = yb;
3419 V.prototype = C(yb.prototype, {
3420 ra: function() {
3421 throw new q("missing implementation");
3422 },
3423 Sf: function() {
3424 throw new q("missing implementation");
3425 },
3426 C: function() {
3427 throw new q("missing implementation");
3428 },
3429 zj: function(a) {
3430 for (var b = this.le.list, c = 0, d = b.length, e = 0; e < a;) {
3431 for (++e; c < d;) {
3432 var f = b[c];
3433 if (f.mb != this.Y) break;
3434 f.apply(this.T);
3435 null != this.fc && this.fc(f);
3436 this.cc++;
3437 ++c
3438 }
3439 this.T.C(1);
3440 this.te += this.cc;
3441 this.cc = 0;
3442 this.Y++
3443 }
3444 for (; c < d;) {
3445 a = b[c];
3446 if (a.mb != this.Y || a.da != this.cc) break;
3447 a.apply(this.T);
3448 null != this.fc && this.fc(a);
3449 this.cc++;
3450 ++c
3451 }
3452 b.splice(0, c)
3453 },
3454 Cg: function(a) {
3455 a.mb == this.Y && a.da <= this.cc ? (a.da = this.cc++, a.apply(this.T), null != this.fc && this.fc(a)) : this.le.Rm(a)
3456 },
3457 wk: function(a, b) {
3458 if (0 >= a) return this.T;
3459 a > this.Ff && (a = this.Ff);
3460 ya.zc++;
3461 var c = this.T.sc(),
3462 d;
3463 null != b ? (this.Ri.as(this.le, b), d = this.Ri) : d = this.le;
3464 d = d.list;
3465 for (var e = 0, f = d.length, g = this.Y, k = a | 0, l = g + k; g <= l;) {
3466 for (; e < f;) {
3467 var t = d[e];
3468 if (t.mb > g) break;
3469 t.zf.Ba && t.apply(c);
3470 ++e
3471 }
3472 c.C(g != l ? 1 : a - k);
3473 ++g
3474 }
3475 for (d = this.Ri.list; 0 < d.length;) d.pop();
3476 return c
3477 },
3478 kr: function(a) {
3479 300 < a && (a = 300);
3480 0 > a && (a = 0);
3481 this.bc = this.Ac * a | 0
3482 },
3483 gm: function(a) {
3484 this.rd = this.Ac * (-200 > a ? -200 : 200 < a ? 200 : a)
3485 },
3486 f: V
3487 });
3488 var xb = Ab["bas.marf.net.ConnFailReason"] = {
3489 Gf: !0,
3490 nh: ["Cancelled", "PeerFailed", "Rejected", "Other"],
3491 hh: {
3492 nb: 0,
3493 eb: "bas.marf.net.ConnFailReason",
3494 toString: ga
3495 },
3496 jh: {
3497 nb: 1,
3498 eb: "bas.marf.net.ConnFailReason",
3499 toString: ga
3500 },
3501 lh: (X = function(a) {
3502 return {
3503 nb: 2,
3504 reason: a,
3505 eb: "bas.marf.net.ConnFailReason",
3506 toString: ga
3507 }
3508 }, X.Ae = ["reason"], X),
3509 ih: (X = function(a) {
3510 return {
3511 nb: 3,
3512 description: a,
3513 eb: "bas.marf.net.ConnFailReason",
3514 toString: ga
3515 }
3516 }, X.Ae = ["description"], X)
3517 };
3518 xa.b = !0;
3519 xa.xh = function(a) {
3520 switch (a.nb) {
3521 case 0:
3522 return "Cancelled";
3523 case 1:
3524 return "Failed to connect to peer.";
3525 case 2:
3526 return pc.description(a.reason);
3527 case 3:
3528 return a.description
3529 }
3530 };
3531 xa.ma = V;
3532 xa.prototype = C(V.prototype, {
3533 ia: function(a) {
3534 null != this.pc && (this.pc.bd = null, this.pc.Gn(), this.pc = null);
3535 window.clearTimeout(this.re);
3536 null != this.pa && (this.pa.cf = null, this.pa.ia(), this.pa = null);
3537 this.ek = null == a ? "Connection closed" : a;
3538 this.tf(4)
3539 },
3540 tf: function(a) {
3541 this.pd != a && (this.pd = a, null !=
3542 this.Ad && this.Ad(a))
3543 },
3544 wd: function() {
3545 return 3 == this.pd
3546 },
3547 C: function() {
3548 this.wd() && window.performance.now() - this.zm > this.nn && this.zi();
3549 this.Xc = window.performance.now() * this.Ac + this.Qi.$g(.5) - this.Y;
3550 this.Oj()
3551 },
3552 Sf: function() {
3553 return this.wd() ? (0 > this.bc && (this.bc = 0), this.wk(window.performance.now() * this.Ac + this.Qi.$g(.5) - this.Y + this.bc + this.rd, this.ug)) : this.T
3554 },
3555 Oj: function() {
3556 0 > this.Xc && (this.Xc = 0);
3557 this.Xc > this.Ff && (this.Xc = this.Ff)
3558 },
3559 uq: function(a) {
3560 switch (a.B()) {
3561 case 0:
3562 this.rq(a);
3563 break;
3564 case 1:
3565 this.qq(a);
3566 break;
3567 case 2:
3568 this.nq(a);
3569 break;
3570 case 3:
3571 this.wq(a);
3572 break;
3573 case 4:
3574 this.tq(a);
3575 break;
3576 case 5:
3577 this.pq(a);
3578 break;
3579 case 6:
3580 this.vq(a)
3581 }
3582 },
3583 rq: function(a) {
3584 var b = this;
3585 a = a.sb(a.Ab());
3586 var c = Promise.resolve(null);
3587 null != this.Je && (c = this.Je.wr(a));
3588 c["catch"](function() {
3589 return null
3590 }).then(function(a) {
3591 b.ir(a)
3592 })
3593 },
3594 qq: function(a) {
3595 a = pako.inflateRaw(a.sb());
3596 a = new F(new DataView(a.buffer, a.byteOffset, a.byteLength));
3597 this.uc = a.Ob();
3598 this.Y = a.hb();
3599 this.te = a.hb();
3600 this.cc = a.Ab();
3601 this.Xc = 10;
3602 for (this.T.ja(a); 0 < a.o.byteLength - a.a;) this.Cg(this.Gm(a));
3603 window.clearTimeout(this.re);
3604 this.tf(3)
3605 },
3606 ir: function(a) {
3607 var b = w.ha();
3608 b.l(0);
3609 null != a ? (b.lb(a.byteLength), b.Vb(a)) : b.lb(0);
3610 b.lb(this.Uh.byteLength);
3611 b.Mg(this.Uh);
3612 this.Rb(b);
3613 this.Uh = null
3614 },
3615 Rb: function(a, b) {
3616 null == b && (b = 0);
3617 this.pa.Rb(b, a)
3618 },
3619 Gm: function(a) {
3620 var b = a.hb(),
3621 c = a.Ab(),
3622 d = a.Ob(),
3623 e = a.hb();
3624 a = m.fh(a);
3625 a.P = d;
3626 a.ue = e;
3627 a.mb = b;
3628 a.da = c;
3629 return a
3630 },
3631 nq: function(a) {
3632 a = this.Gm(a);
3633 this.Cg(a);
3634 a.P == this.uc && this.ug.Ds(a.ue);
3635 this.Bl()
3636 },
3637 vq: function(a) {
3638 a = m.fh(a);
3639 a.P = 0;
3640 a.ue = 0;
3641 a.apply(this.T);
3642 null != this.fc && this.fc(a)
3643 },
3644 wq: function(a) {
3645 var b =
3646 a.hb();
3647 a = a.hb();
3648 this.pi.push({
3649 frame: b,
3650 yf: a
3651 });
3652 this.Bl()
3653 },
3654 Bl: function() {
3655 if (3 == this.pd) {
3656 for (var a = 0, b = this.pi; a < b.length;) {
3657 var c = b[a];
3658 ++a;
3659 c.frame <= this.Y || c.yf == this.te + this.cc + this.le.bs(c.frame) && this.vn(c.frame - this.Y)
3660 }
3661 for (var a = 0, b = this.pi, c = 0, d = b.length; c < d;) {
3662 var e = b[c++];
3663 e.frame > this.Y && (b[a] = e, ++a)
3664 }
3665 for (; b.length > a;) b.pop();
3666 this.ug.Cs(this.Y)
3667 }
3668 },
3669 pq: function(a) {
3670 var b = 0 != a.B(),
3671 c = a.ic(),
3672 d = "";
3673 0 < a.o.byteLength - a.a && (d = a.ic());
3674 a = b ? "You were banned" : "You were kicked";
3675 "" != d && (a += " by " + d);
3676 "" != c && (a += " (" +
3677 c + ")");
3678 this.ia(a)
3679 },
3680 tq: function(a) {
3681 var b = a.u();
3682 a = a.u();
3683 var c = window.performance.now() - a;
3684 this.Qi.add(b - a * this.Ac);
3685 this.sg.add(c);
3686 for (var d = b = 0, e = this.Di; d < e.length;) {
3687 var f = e[d];
3688 ++d;
3689 if (f > a) break;
3690 f < a ? y.i(this.dl, -1) : y.i(this.dl, c);
3691 ++b
3692 }
3693 this.Di.splice(0, b)
3694 },
3695 zi: function() {
3696 var a = window.performance.now();
3697 this.zm = a;
3698 this.Di.push(a);
3699 var b = this.sg.$g(.5) | 0,
3700 c = w.ha();
3701 c.l(2);
3702 c.s(a);
3703 c.lb(b);
3704 this.Rb(c, 2)
3705 },
3706 vn: function(a) {
3707 this.zj(a);
3708 this.Xc -= a;
3709 this.Oj()
3710 },
3711 ra: function(a) {
3712 if (3 == this.pd) {
3713 var b = this.Ap++,
3714 c = 0;
3715 0 > this.bc && (this.bc =
3716 0);
3717 a.zf.Aa && (c = this.Y + (this.Xc | 0) + this.bc);
3718 var d = w.ha();
3719 d.l(1);
3720 d.tb(c);
3721 d.tb(b);
3722 m.lj(a, d);
3723 this.Rb(d);
3724 a.zf.Ba && (a.ue = b, a.P = this.uc, a.mb = c, this.ug.Rm(a))
3725 }
3726 },
3727 f: xa
3728 });
3729 Lb.b = !0;
3730 Lb.ma = V;
3731 Lb.prototype = C(V.prototype, {
3732 ia: function() {
3733 this.Ic.ia();
3734 for (var a = 0, b = this.ac; a < b.length;) {
3735 var c = b[a++].pa;
3736 c.cf = null;
3737 c.lg = null;
3738 c.ia()
3739 }
3740 },
3741 to: function(a, b, c, d) {
3742 var e = this.Ie.get(a);
3743 if (null != e) {
3744 if (d) {
3745 var f = this.Ic.zn(e.pa);
3746 this.Kj.set(a, f)
3747 }
3748 a = w.ha();
3749 a.l(5);
3750 a.l(d ? 1 : 0);
3751 a.mc(b);
3752 null == c && (c = "");
3753 a.mc(c);
3754 e.Rb(a);
3755 e.pa.ia()
3756 }
3757 },
3758 Ud: function() {
3759 this.Ic.Ud();
3760 this.Kj.clear()
3761 },
3762 Fi: function(a) {
3763 this.Ic.Fi(a)
3764 },
3765 Ei: function(a) {
3766 this.Ic.Ei(a)
3767 },
3768 ra: function(a) {
3769 a.P = 0;
3770 var b = this.Y + this.wi + this.bc;
3771 a.zf.Aa || (b = this.Y);
3772 a.mb = b;
3773 this.Cg(a);
3774 this.Ci();
3775 0 < this.ac.length && this.Eg(this.Zh(a), 1)
3776 },
3777 C: function() {
3778 var a = ((window.performance.now() - this.Li) * this.Ac | 0) - this.Y;
3779 0 < a && this.zj(a);
3780 7 <= this.Y - this.Kk && this.Ci();
3781 this.Y - this.Jk >= this.Mn && (this.Ci(), this.gr())
3782 },
3783 Sf: function() {
3784 0 > this.bc && (this.bc = 0);
3785 return this.wk((window.performance.now() - this.Li) * this.Ac - this.Y + this.wi + this.bc + this.rd)
3786 },
3787 Oo: function(a, b) {
3788 if (this.ac.length >= this.fg) return gc.kh(4100);
3789 try {
3790 if (b.Ob() != this.Sr) throw new q(null);
3791 } catch (d) {
3792 return gc.kh(4103)
3793 }
3794 try {
3795 var c = b.zb();
3796 if (null != this.Ib && c != this.Ib) throw new q(null);
3797 } catch (d) {
3798 return gc.kh(4101)
3799 }
3800 return gc.hn
3801 },
3802 Lp: function(a) {
3803 var b = this;
3804 if (this.ac.length >= this.fg) a.ia();
3805 else {
3806 var c = new $b(a);
3807 this.ac.push(c);
3808 a.lg = function(a) {
3809 a = new F(new DataView(a));
3810 b.oq(a, c)
3811 };
3812 a.cf = function() {
3813 D.remove(b.ac, c);
3814 b.Ie["delete"](c.$);
3815 y.i(b.Ip, c.$)
3816 };
3817 a = w.ha(1 + c.He.byteLength);
3818 a.l(0);
3819 a.lb(c.He.byteLength);
3820 a.Vb(c.He);
3821 c.Rb(a)
3822 }
3823 },
3824 Zh: function(a) {
3825 var b = w.ha();
3826 b.l(2);
3827 this.il(a, b);
3828 return b
3829 },
3830 il: function(a, b) {
3831 b.tb(a.mb);
3832 b.lb(a.da);
3833 b.Ub(a.P);
3834 b.tb(a.ue);
3835 m.lj(a, b)
3836 },
3837 Ci: function() {
3838 if (!(0 >= this.Y - this.Kk) && 0 != this.ac.length) {
3839 var a = w.ha();
3840 a.l(3);
3841 a.tb(this.Y);
3842 a.tb(this.te);
3843 this.Eg(a, 2);
3844 this.Kk = this.Y
3845 }
3846 },
3847 Eg: function(a, b) {
3848 null == b && (b = 0);
3849 for (var c = 0, d = this.ac; c < d.length;) {
3850 var e = d[c];
3851 ++c;
3852 e.yg && e.Rb(a, b)
3853 }
3854 },
3855 hr: function(a) {
3856 var b = w.ha();
3857 b.l(1);
3858 var c = w.ha();
3859 c.Ub(a.$);
3860 c.tb(this.Y);
3861 c.tb(this.te);
3862 c.lb(this.cc);
3863 this.T.ga(c);
3864 for (var d =
3865 this.le.list, e = 0, f = d.length; e < f;) this.il(d[e++], c);
3866 b.Vb(pako.deflateRaw(c.Sb()));
3867 a.Rb(b)
3868 },
3869 gr: function() {
3870 this.Jk = this.Y;
3871 if (0 != this.ac.length) {
3872 var a = new Ua;
3873 a.mb = this.Y;
3874 a.da = this.cc++;
3875 a.P = 0;
3876 a.Rg = this.T.Ao();
3877 this.Eg(this.Zh(a))
3878 }
3879 },
3880 yq: function(a, b) {
3881 var c = this,
3882 d = a.sb(a.Ab()),
3883 e = a.sb(a.Ab()),
3884 f = b.He;
3885 b.He = null;
3886 I.Rr(d, f)["catch"](function() {
3887 return null
3888 }).then(function(a) {
3889 try {
3890 if (-1 != c.ac.indexOf(b)) {
3891 b.Ns = a;
3892 var d = c.up++;
3893 b.$ = d;
3894 c.Ie.set(d, b);
3895 ia.i(c.Hp, d, new F(new DataView(e.buffer, e.byteOffset, e.byteLength), !1));
3896 b.yg = !0;
3897 c.hr(b)
3898 }
3899 } catch (l) {
3900 c.xk(b, l instanceof q ? l.Ta : l)
3901 }
3902 })
3903 },
3904 oq: function(a, b) {
3905 this.C();
3906 try {
3907 if (!b.Ho.Cm()) throw new q(1);
3908 var c = a.B();
3909 if (b.yg) switch (c) {
3910 case 1:
3911 this.zq(a, b);
3912 break;
3913 case 2:
3914 this.sq(a, b);
3915 break;
3916 default:
3917 throw new q(0);
3918 } else if (0 == c) this.yq(a, b);
3919 else throw new q(0);
3920 if (0 < a.o.byteLength - a.a) throw new q(2);
3921 } catch (d) {
3922 this.xk(b, d instanceof q ? d.Ta : d)
3923 }
3924 },
3925 xk: function(a, b) {
3926 window.console.log(b);
3927 this.Ie["delete"](a.$);
3928 D.remove(this.ac, a);
3929 a.yg && null != this.$k && this.$k(a.$);
3930 a.pa.ia()
3931 },
3932 sq: function(a, b) {
3933 var c =
3934 a.u();
3935 b.yb = a.Ab();
3936 var d = w.ha();
3937 d.l(4);
3938 d.s((window.performance.now() - this.Li) * this.Ac + this.wi);
3939 d.s(c);
3940 b.Rb(d, 2)
3941 },
3942 zq: function(a, b) {
3943 var c = a.hb(),
3944 d = a.hb(),
3945 e = m.fh(a),
3946 f = e.zf.oj;
3947 if (null != f) {
3948 var g = b.xj.get(f);
3949 null == g && (g = new tb(f.$i, f.uj), b.xj.set(f, g));
3950 if (!g.Cm()) throw new q(3);
3951 }
3952 f = this.Y;
3953 g = this.Y + 120;
3954 e.ue = d;
3955 e.P = b.$;
3956 e.mb = c < f ? f : c > g ? g : c;
3957 e.$m(this.T) && (this.Cg(e), this.Eg(this.Zh(e), 1))
3958 },
3959 f: Lb
3960 });
3961 $b.b = !0;
3962 $b.prototype = {
3963 Rb: function(a, b) {
3964 null == b && (b = 0);
3965 this.pa.Rb(b, a)
3966 },
3967 f: $b
3968 };
3969 Zb.b = !0;
3970 Kb.b = !0;
3971 Kb.prototype = {
3972 f: Kb
3973 };
3974 Jb.b = !0;
3975 Jb.ma = V;
3976 Jb.prototype = C(V.prototype, {
3977 Cq: function(a) {
3978 for (var b = a.Ob(), c = 0, d = 0; d < b;) {
3979 ++d;
3980 var c = c + a.Ab(),
3981 e = a.B();
3982 this.Vk.push({
3983 mj: c / this.mf,
3984 kind: e
3985 })
3986 }
3987 },
3988 Dl: function() {
3989 var a = this.Lc;
3990 0 < a.o.byteLength - a.a ? (a = this.Lc.Ab(), this.hg += a, a = this.Lc.Ob(), this.gg = m.fh(this.Lc), this.gg.P = a) : this.gg = null
3991 },
3992 Go: function() {
3993 return this.Y / this.mf
3994 },
3995 ra: function() {},
3996 Sf: function() {
3997 this.C();
3998 ya.zc++;
3999 var a = this.T.sc();
4000 a.C(this.sk);
4001 return a
4002 },
4003 C: function() {
4004 var a = window.performance.now(),
4005 b = a - this.Wh;
4006 this.Wh = a;
4007 0 < this.Fd ? (this.Qb +=
4008 1E4, this.Qb > this.Fd && (this.Qb = this.Fd, this.Fd = -1)) : this.Qb += b * this.pl;
4009 a = this.mf * this.mh;
4010 this.Qb > a && (this.Qb = a);
4011 b = this.Qb * this.Ac;
4012 a = b | 0;
4013 for (this.sk = b - a; this.Y < a;) {
4014 for (; null != this.gg && this.hg == this.Y;) b = this.gg, b.apply(this.T), null != this.fc && this.fc(b), this.Dl();
4015 this.Y++;
4016 this.T.C(1)
4017 }
4018 },
4019 er: function(a) {
4020 this.Fd = a;
4021 a < this.Qb && this.ui()
4022 },
4023 ui: function() {
4024 this.hg = 0;
4025 this.Qb = this.Y = this.Lc.a = 0;
4026 this.T.ja(this.Lc);
4027 this.Dl()
4028 },
4029 f: Jb
4030 });
4031 Ib.b = !0;
4032 Ib.prototype = {
4033 eval: function(a) {
4034 var b = this.Yb.length - 1;
4035 if (a <= this.Yb[0]) return this.Yb[1];
4036 if (a >= this.Yb[b]) return this.Yb[b - 2];
4037 for (var c = 0, b = b / 5 | 0;;) {
4038 var d = b + c >>> 1;
4039 a > this.Yb[5 * d] ? c = d + 1 : b = d - 1;
4040 if (!(c <= b)) break
4041 }
4042 c = 5 * b;
4043 b = this.Yb[c];
4044 a = (a - b) / (this.Yb[c + 5] - b);
4045 b = a * a;
4046 d = b * a;
4047 return (2 * d - 3 * b + 1) * this.Yb[c + 1] + (d - 2 * b + a) * this.Yb[c + 2] + (-2 * d + 3 * b) * this.Yb[c + 3] + (d - b) * this.Yb[c + 4]
4048 },
4049 f: Ib
4050 };
4051 H.b = !0;
4052 H.prototype = {
4053 f: H
4054 };
4055 M.b = !0;
4056 M.Pl = function(a, b, c, d, e) {
4057 return new Promise(function(f, g) {
4058 var k = new XMLHttpRequest;
4059 k.open(b, a);
4060 k.responseType = c;
4061 k.onload = function() {
4062 200 <= k.status && 300 > k.status ? null != k.response ? f(k.response) :
4063 g(null) : g("status: " + k.status)
4064 };
4065 k.onerror = function(a) {
4066 g(a)
4067 };
4068 null != e && k.setRequestHeader("Content-type", e);
4069 k.send(d)
4070 })
4071 };
4072 M.L = function(a, b) {
4073 return M.Pl(a, "GET", b, null)
4074 };
4075 M.tk = function(a) {
4076 return M.L(a, "json").then(function(a) {
4077 var b = a.error;
4078 if (null != b) throw new q(b);
4079 return a.data
4080 })
4081 };
4082 M.mq = function(a, b, c) {
4083 return M.Pl(a, "POST", "json", b, c)
4084 };
4085 M.zl = function(a, b, c) {
4086 return M.mq(a, b, c).then(function(a) {
4087 var b = a.error;
4088 if (null != b) throw new q(b);
4089 return a.data
4090 })
4091 };
4092 A.b = !0;
4093 A.i = function(a) {
4094 null != a && a()
4095 };
4096 y.b = !0;
4097 y.i = function(a,
4098 b) {
4099 null != a && a(b)
4100 };
4101 ia.b = !0;
4102 ia.i = function(a, b, c) {
4103 null != a && a(b, c)
4104 };
4105 Cb.b = !0;
4106 Cb.i = function(a, b, c, d) {
4107 null != a && a(b, c, d)
4108 };
4109 vb.b = !0;
4110 vb.i = function(a, b, c, d, e) {
4111 null != a && a(b, c, d, e)
4112 };
4113 tb.b = !0;
4114 tb.prototype = {
4115 Cm: function(a) {
4116 null == a && (a = 1);
4117 this.C();
4118 return a <= this.oc ? (this.oc -= a, !0) : !1
4119 },
4120 Cr: function(a) {
4121 this.C();
4122 a -= this.oc;
4123 return 0 >= a ? 0 : this.Ve + a * this.Si - window.performance.now()
4124 },
4125 Zn: function(a, b) {
4126 var c = this.Cr(a);
4127 this.oc -= a;
4128 window.setTimeout(b, c | 0)
4129 },
4130 C: function() {
4131 var a = window.performance.now(),
4132 b = Math.floor((a - this.Ve) / this.Si);
4133 this.Ve += b * this.Si;
4134 this.oc += b;
4135 this.oc >= this.Nj && (this.oc = this.Nj, this.Ve = a)
4136 },
4137 f: tb
4138 };
4139 Hb.b = !0;
4140 Hb.gf = function(a) {
4141 var b = new fc("([^&=]+)=?([^&]*)", "g");
4142 a = a.substring(1);
4143 for (var c = 0, d = new Map; b.os(a, c);) {
4144 var c = b.Wm(1),
4145 c = decodeURIComponent(c.split("+").join(" ")),
4146 e = b.Wm(2);
4147 d.set(c, decodeURIComponent(e.split("+").join(" ")));
4148 c = b.ps();
4149 c = c.mj + c.ms
4150 }
4151 return d
4152 };
4153 Hb.L = function() {
4154 return Hb.gf(window.top.location.search)
4155 };
4156 ub.b = !0;
4157 ub.cq = function(a) {
4158 if (3 > a.length) throw new q("Not enough arguments");
4159 if (7 < a.length) throw new q("Too many arguments");
4160 var b = new Pa,
4161 c = new ka;
4162 b.Sg = c;
4163 switch (a[1]) {
4164 case "blue":
4165 c.fb = [p.xa.R];
4166 b.ea = p.xa;
4167 break;
4168 case "red":
4169 c.fb = [p.fa.R];
4170 b.ea = p.fa;
4171 break;
4172 default:
4173 throw new q('First argument must be either "red" or "blue"');
4174 }
4175 if ("clear" == a[2]) return b;
4176 c.hd = 256 * K.parseInt(a[2]) / 360 | 0;
4177 c.ed = K.parseInt("0x" + a[3]);
4178 if (4 < a.length) {
4179 c.fb = [];
4180 for (var d = 4, e = a.length; d < e;) c.fb.push(K.parseInt("0x" + a[d++]))
4181 }
4182 return b
4183 };
4184 ub.prototype = {
4185 gf: function(a) {
4186 var b = this;
4187 if ("/" != a.charAt(0)) return !1;
4188 if (1 == a.length) return !0;
4189 a = J.Gs(D.substr(a, 1, null)).split(" ");
4190 var c = a[0];
4191 switch (c) {
4192 case "avatar":
4193 2 == a.length && (this.fm(a[1]), this.ba("Avatar set"));
4194 break;
4195 case "checksum":
4196 var d = this.ya.T.S;
4197 a = d.w;
4198 d.Pe() ? this.ba('Current stadium is original: "' + a + '"') : (d = J.Vg(d.Sj(), 8), this.ba('Stadium: "' + a + '" (checksum: ' + d + ")"));
4199 break;
4200 case "clear_avatar":
4201 this.fm(null);
4202 this.ba("Avatar cleared");
4203 break;
4204 case "clear_bans":
4205 null == this.Ud ? this.ba("Only the host can clear bans") : (this.Ud(), this.ba("All bans have been cleared"));
4206 break;
4207 case "clear_password":
4208 null == this.Fg ? this.ba("Only the host can change the password") :
4209 (this.Fg(null), this.ba("Password cleared"));
4210 break;
4211 case "colors":
4212 try {
4213 d = ub.cq(a), this.ya.ra(d)
4214 } catch (g) {
4215 a = g instanceof q ? g.Ta : g, "string" == typeof a && this.ba(a)
4216 }
4217 break;
4218 case "extrapolation":
4219 2 == a.length ? (a = K.parseInt(a[1]), null != a && -200 <= a && 200 >= a ? (n.A.rd.Xa(a), this.ya.gm(a), this.ba("Extrapolation set to " + a + " msec")) : this.ba("Extrapolation must be a value between -200 and 50 milliseconds")) : this.ba("Extrapolation requires a value in milliseconds.");
4220 break;
4221 case "handicap":
4222 2 == a.length ? (a = K.parseInt(a[1]),
4223 null != a && 0 <= a && 300 >= a ? (this.ya.kr(a), this.ba("Ping handicap set to " + a + " msec")) : this.ba("Ping handicap must be a value between 0 and 300 milliseconds")) : this.ba("Ping handicap requires a value in milliseconds.");
4224 break;
4225 case "kick_ratelimit":
4226 if (4 > a.length) this.ba("Usage: /kick_ratelimit <min> <rate> <burst>");
4227 else {
4228 var d = K.parseInt(a[1]),
4229 e = K.parseInt(a[2]);
4230 a = K.parseInt(a[3]);
4231 null == d || null == e || null == a ? this.ba("Invalid arguments") : this.ya.ra(ma.la(d, e, a))
4232 }
4233 break;
4234 case "recaptcha":
4235 if (null == this.jm) this.ba("Only the host can set recaptcha mode");
4236 else try {
4237 if (2 == a.length) {
4238 switch (a[1]) {
4239 case "off":
4240 e = !1;
4241 break;
4242 case "on":
4243 e = !0;
4244 break;
4245 default:
4246 throw new q(null);
4247 }
4248 this.jm(e);
4249 this.ba("Room join Recaptcha " + (e ? "enabled" : "disabled"))
4250 } else throw new q(null);
4251 } catch (g) {
4252 this.ba("Usage: /recaptcha <on|off>")
4253 }
4254 break;
4255 case "set_password":
4256 2 == a.length && (null == this.Fg ? this.ba("Only the host can change the password") : (this.Fg(a[1]), this.ba("Password set")));
4257 break;
4258 case "store":
4259 var f = this.ya.T.S;
4260 f.Pe() ? this.ba("Can't store default stadium.") : Z.Es().then(function() {
4261 return Z.add(f)
4262 }).then(function() {
4263 b.ba("Stadium stored")
4264 },
4265 function() {
4266 b.ba("Couldn't store stadium")
4267 });
4268 break;
4269 default:
4270 this.ba('Unrecognized command: "' + c + '"')
4271 }
4272 return !0
4273 },
4274 fm: function(a) {
4275 null != a && (a = U.Qc(a, 2));
4276 n.A.sh.Xa(a);
4277 this.ya.ra(ra.la(a))
4278 },
4279 f: ub
4280 };
4281 Ha.b = !0;
4282 ba.b = !0;
4283 ba.Yl = function(a) {
4284 var b = new Date;
4285 Ca.ar(a, "HBReplay-" + b.getFullYear() + "-" + J.Af("" + (b.getMonth() + 1)) + "-" + J.Af("" + b.getDate()) + "-" + J.Af("" + b.getHours()) + "h" + J.Af("" + b.getMinutes()) + "m.hbr2")
4286 };
4287 ba.Bq = function(a) {
4288 for (var b = a.T.I, c = [], d = 0, e = 0, f = 0; f < b.length;) {
4289 var g = b[f];
4290 ++f;
4291 g.ea == p.Ia && c.push(g.V);
4292 g.ea ==
4293 p.fa ? ++d : g.ea == p.xa && ++e
4294 }
4295 f = c.length;
4296 0 != f && (b = function() {
4297 return c.splice(Math.random() * c.length | 0, 1)[0]
4298 }, e == d ? 2 > f || (a.ra(S.la(b(), p.fa)), a.ra(S.la(b(), p.xa))) : (d = e > d ? p.fa : p.xa, a.ra(S.la(b(), d))))
4299 };
4300 ba.prototype = {
4301 zr: function() {
4302 this.Ed = new ac(this.ya, 3)
4303 },
4304 vr: function(a) {
4305 var b = this;
4306 a = new gb(a);
4307 a.qb = function() {
4308 b.j.bb(null)
4309 };
4310 a.ei = function(a, d, e) {
4311 b.ya.ra(Y.la(a, d, e));
4312 b.j.bb(null)
4313 };
4314 this.j.bb(a.g)
4315 },
4316 ia: function() {
4317 window.document.removeEventListener("keydown", G(this, this.Bd));
4318 window.document.removeEventListener("keyup",
4319 G(this, this.Cd));
4320 window.onbeforeunload = null;
4321 window.cancelAnimationFrame(this.De);
4322 this.ob.ia();
4323 window.clearInterval(this.Gh);
4324 window.clearInterval(this.Qr);
4325 window.clearTimeout(this.Nf)
4326 },
4327 Wq: function(a) {
4328 for (var b = [], c = 0, d = this.ya.T.I; c < d.length;) {
4329 var e = d[c];
4330 ++c;
4331 e.ea == a && b.push(S.la(e.V, p.Ia))
4332 }
4333 for (a = 0; a < b.length;) this.ya.ra(b[a++])
4334 },
4335 bf: function() {
4336 this.De = window.requestAnimationFrame(G(this, this.bf));
4337 this.ob.C();
4338 this.ya.C();
4339 this.Kc()
4340 },
4341 Kc: function() {
4342 var a = window.performance.now();
4343 1 == n.A.Fh.L() && 28.333333333333336 >
4344 a - this.$c || (this.$c = a, this.sd++, this.uf(), a = this.ya.T.na(this.ya.uc), null != a && (this.xi = a.cb), this.j.C(this.ya))
4345 },
4346 Gp: function(a) {
4347 var b = this;
4348 this.Of.gf(a) || this.Jn.Zn(1, function() {
4349 var c = new Na;
4350 c.Tc = a;
4351 b.ya.ra(c)
4352 })
4353 },
4354 Fp: function(a) {
4355 var b = this;
4356 this.zh = a;
4357 null == this.Nf && (this.Nf = window.setTimeout(function() {
4358 b.Nf = null;
4359 b.bm(b.zh)
4360 }, 1E3), this.bm(this.zh))
4361 },
4362 bm: function(a) {
4363 a != this.Ik && (this.ya.ra(na.la(a ? 0 : 1)), this.Ik = a)
4364 },
4365 Bm: function() {
4366 if (null != this.ya.T.K) {
4367 var a = new Oa;
4368 a.Bf = 120 != this.ya.T.K.Oa;
4369 this.ya.ra(a)
4370 }
4371 },
4372 Bd: function(a) {
4373 switch (a.keyCode) {
4374 case 9:
4375 case 13:
4376 this.j.Qa.gb.focus();
4377 a.preventDefault();
4378 break;
4379 case 27:
4380 if (this.j.Zo()) this.j.bb(null);
4381 else {
4382 var b = this.j;
4383 b.me(!b.Gd)
4384 }
4385 a.preventDefault();
4386 break;
4387 case 49:
4388 n.A.Tb.Xa(1);
4389 break;
4390 case 50:
4391 n.A.Tb.Xa(2);
4392 break;
4393 case 51:
4394 n.A.Tb.Xa(3);
4395 break;
4396 case 52:
4397 n.A.Tb.Xa(0);
4398 break;
4399 case 80:
4400 this.Bm();
4401 break;
4402 default:
4403 this.ob.Bd(a.code)
4404 }
4405 },
4406 uf: function() {
4407 var a = n.A.Tb.L(),
4408 b = this.j.Fb,
4409 c = b.Eb;
4410 c.zg = n.A.Sl.L();
4411 0 == a ? (b.Gg(!0), c.kf = 1, c.jf = 0, c.xf = 0) : (b.Gg(!1), c.xf = 35, -1 == a ? c.jf = 450 : (c.jf = 0, c.kf = 1 + .25 *
4412 (a - 1)))
4413 },
4414 Cd: function(a) {
4415 this.ob.Cd(a.code)
4416 },
4417 f: ba
4418 };
4419 Gb.b = !0;
4420 Gb.prototype = {
4421 Ti: function(a) {
4422 var b = this.j.Qa.Bc,
4423 c = [],
4424 d = 0;
4425 for (a = a.I; d < a.length;) {
4426 var e = a[d];
4427 ++d;
4428 c.push({
4429 w: e.w,
4430 $: e.V
4431 })
4432 }
4433 b.Hj = c
4434 },
4435 ri: function(a) {
4436 function b(a) {
4437 return null == a ? "" : " by " + a.w
4438 }
4439 var c = this;
4440 this.Ti(a);
4441 a.tl = function(b) {
4442 c.j.Qa.Gb("" + b.w + " has joined");
4443 n.Na.cd(n.Na.$o);
4444 c.Ti(a)
4445 };
4446 a.ul = function(d, e, f, g) {
4447 y.i(c.Op, d.V);
4448 null == e ? d = "" + d.w + " has left" : (vb.i(c.Np, d.V, e, null != g ? g.w : null, f), d = "" + d.w + " was " + (f ? "banned" : "kicked") + b(g) + ("" != e ? " (" + e + ")" :
4449 ""));
4450 c.j.Qa.Gb(d);
4451 n.Na.cd(n.Na.ep);
4452 c.Ti(a)
4453 };
4454 a.rl = function(a, b) {
4455 var d = null != c.Rh && -1 != b.indexOf(c.Rh);
4456 c.j.Qa.ba("" + a.w + ": " + b, d ? "highlight" : null);
4457 n.A.om.L() && d ? n.Na.cd(n.Na.zk) : n.A.Hi.L() && n.Na.cd(n.Na.Rj)
4458 };
4459 a.Vl = function(a, b, f, g) {
4460 c.j.Qa.pp(a, b, f);
4461 if (n.A.Hi.L()) switch (g) {
4462 case 1:
4463 n.Na.cd(n.Na.Rj);
4464 break;
4465 case 2:
4466 n.Na.cd(n.Na.zk)
4467 }
4468 };
4469 a.ji = function() {
4470 n.Na.cd(n.Na.bp)
4471 };
4472 a.Ni = function(a) {
4473 n.Na.cd(n.Na.Io);
4474 var b = c.j.Fb.Eb.td;
4475 b.Pa(a == p.fa ? b.Fq : b.Bn)
4476 };
4477 a.Oi = function(a) {
4478 var b = c.j.Fb.Eb.td;
4479 b.Pa(a == p.fa ? b.Gq : b.Cn);
4480 c.j.Qa.Gb("" +
4481 a.w + " team won the match")
4482 };
4483 a.ml = function(a, e, f) {
4484 e && !f && c.j.Qa.Gb("Game paused" + b(a))
4485 };
4486 a.Pi = function() {
4487 var a = c.j.Fb.Eb.td;
4488 a.Pa(a.Ar)
4489 };
4490 a.Ki = function(a) {
4491 c.j.me(!1);
4492 c.j.Fb.Eb.td.Nn();
4493 c.j.Qa.Gb("Game started" + b(a))
4494 };
4495 a.vf = function(a) {
4496 null != a && c.j.Qa.Gb("Game stopped" + b(a))
4497 };
4498 a.Ii = function(a, e) {
4499 if (!e.Pe()) {
4500 var d = J.Vg(e.Sj(), 8);
4501 c.j.Qa.Gb('Stadium "' + e.w + '" (' + d + ") loaded" + b(a))
4502 }
4503 };
4504 a.sl = function(a) {
4505 c.j.Qa.Gb("" + a.w + " " + (a.Ld ? "has desynchronized" : "is back in sync"))
4506 };
4507 a.xl = function(d, e, f) {
4508 null != a.K && c.j.Qa.Gb("" +
4509 e.w + " was moved to " + f.w + b(d))
4510 };
4511 a.ii = function(a, e) {
4512 var d = e.w;
4513 c.j.Qa.Gb((e.cb ? "" + d + " was given admin rights" : "" + d + "'s admin rights were taken away") + b(a))
4514 };
4515 a.wl = function(a, b) {
4516 c.j.Fb.Eb.Po(a, b)
4517 };
4518 a.Hk = function(a, e, f, g) {
4519 c.j.Qa.Gb("Kick Rate Limit set to (min: " + e + ", rate: " + f + ", burst: " + g + ")" + b(a))
4520 }
4521 },
4522 Lr: function(a) {
4523 a.tl = null;
4524 a.ul = null;
4525 a.rl = null;
4526 a.Vl = null;
4527 a.ji = null;
4528 a.Ni = null;
4529 a.Oi = null;
4530 a.ml = null;
4531 a.Pi = null;
4532 a.Ki = null;
4533 a.vf = null;
4534 a.Ii = null;
4535 a.sl = null;
4536 a.xl = null;
4537 a.ii = null;
4538 a.wl = null;
4539 a.Hk = null
4540 },
4541 f: Gb
4542 };
4543 Ra.b = !0;
4544 Ra.Fk =
4545 function(a) {
4546 switch (n.A.tg.L().L(a)) {
4547 case "Down":
4548 return 2;
4549 case "Kick":
4550 return 16;
4551 case "Left":
4552 return 4;
4553 case "Right":
4554 return 8;
4555 case "Up":
4556 return 1;
4557 default:
4558 return 0
4559 }
4560 };
4561 Ra.prototype = {
4562 ia: function() {
4563 window.document.removeEventListener("focusout", G(this, this.al))
4564 },
4565 C: function() {
4566 var a = this.$d;
4567 if (null != this.ng && a != this.Yf) {
4568 this.Yf = a;
4569 var b = new Ga;
4570 b.input = a;
4571 this.ng(b)
4572 }
4573 },
4574 Bd: function(a) {
4575 this.$d |= Ra.Fk(a)
4576 },
4577 Cd: function(a) {
4578 this.$d &= ~Ra.Fk(a)
4579 },
4580 al: function() {
4581 if (null != this.ng && 0 != this.Yf) {
4582 this.Yf = this.$d = 0;
4583 var a = new Ga;
4584 a.input =
4585 0;
4586 this.ng(a)
4587 }
4588 },
4589 f: Ra
4590 };
4591 T.b = !0;
4592 T.Hh = function(a) {
4593 return T.Rf(JSON.parse(a))
4594 };
4595 T.Rf = function(a) {
4596 var b = new T;
4597 b.Ec = a.lat;
4598 b.Gc = a.lon;
4599 b.ub = a.code.toLowerCase();
4600 return b
4601 };
4602 T.Fo = function() {
4603 return M.tk(n.Ee + "api/geo").then(function(a) {
4604 return T.Rf(a)
4605 })
4606 };
4607 T.prototype = {
4608 se: function() {
4609 return JSON.stringify({
4610 lat: this.Ec,
4611 lon: this.Gc,
4612 code: this.ub
4613 })
4614 },
4615 f: T
4616 };
4617 Yb.b = !0;
4618 Yb.prototype = {
4619 Lh: function() {
4620 return null != this.Ne.L() ? this.Ne.L() : null != this.Me.L() ? this.Me.L() : new T
4621 },
4622 f: Yb
4623 };
4624 Xb.b = !0;
4625 Xb.Pm = function() {
4626 try {
4627 var a = window.localStorage;
4628 a.getItem("");
4629 if (0 == a.length) {
4630 var b = "_hx_" + Math.random();
4631 a.setItem(b, b);
4632 a.removeItem(b)
4633 }
4634 return a
4635 } catch (c) {
4636 return null
4637 }
4638 };
4639 wa.b = !0;
4640 wa.prototype = {
4641 L: function() {
4642 return this.Hm
4643 },
4644 Xa: function(a) {
4645 this.Hm = a;
4646 if (null != this.Yh) try {
4647 var b = this.Ur(a);
4648 null == b ? this.Yh.removeItem(this.w) : this.Yh.setItem(this.w, b)
4649 } catch (c) {}
4650 },
4651 f: wa
4652 };
4653 W.b = !0;
4654 W.Rf = function(a) {
4655 for (var b = new W, c = ec.Mm(a), d = 0; d < c.length;) {
4656 var e = c[d];
4657 ++d;
4658 b.Yc.set(e, a[e])
4659 }
4660 return b
4661 };
4662 W.Hh = function(a) {
4663 return W.Rf(JSON.parse(a))
4664 };
4665 W.$j = function() {
4666 var a = new W;
4667 a.Pa("ArrowUp",
4668 "Up");
4669 a.Pa("KeyW", "Up");
4670 a.Pa("ArrowDown", "Down");
4671 a.Pa("KeyS", "Down");
4672 a.Pa("ArrowLeft", "Left");
4673 a.Pa("KeyA", "Left");
4674 a.Pa("ArrowRight", "Right");
4675 a.Pa("KeyD", "Right");
4676 a.Pa("KeyX", "Kick");
4677 a.Pa("Space", "Kick");
4678 a.Pa("ControlLeft", "Kick");
4679 a.Pa("ControlRight", "Kick");
4680 a.Pa("ShiftLeft", "Kick");
4681 a.Pa("ShiftRight", "Kick");
4682 a.Pa("Numpad0", "Kick");
4683 return a
4684 };
4685 W.prototype = {
4686 Pa: function(a, b) {
4687 this.Yc.set(a, b)
4688 },
4689 L: function(a) {
4690 return this.Yc.get(a)
4691 },
4692 Jq: function(a) {
4693 this.Yc["delete"](a)
4694 },
4695 Eo: function(a) {
4696 for (var b = [], c = this.Yc.keys(),
4697 d = c.next(); !d.done;) {
4698 var e = d.value,
4699 d = c.next();
4700 this.Yc.get(e) == a && b.push(e)
4701 }
4702 return b
4703 },
4704 se: function() {
4705 for (var a = {}, b = this.Yc.keys(), c = b.next(); !c.done;) {
4706 var d = c.value,
4707 c = b.next();
4708 a[d] = this.Yc.get(d)
4709 }
4710 return JSON.stringify(a)
4711 },
4712 f: W
4713 };
4714 n.b = !0;
4715 Wb.b = !0;
4716 Wb.prototype = {
4717 f: Wb
4718 };
4719 u.b = !0;
4720 u.qp = function() {
4721 mc.ts();
4722 x.fj(function() {
4723 u.jk(u.xq)
4724 });
4725 u.hp()
4726 };
4727 u.hp = function() {
4728 var a = n.A.Gj.L();
4729 if (null == a) I.yo().then(function(a) {
4730 u.Je = a;
4731 n.A.Gj.Xa(a.Ir())
4732 })["catch"](function() {
4733 return {}
4734 });
4735 else I.xo(a).then(function(a) {
4736 return u.Je = a
4737 })["catch"](function() {
4738 return {}
4739 })
4740 };
4741 u.Bo = function() {
4742 var a = Xb.Pm();
4743 return null != a ? null != a.getItem("crappy_router") : !1
4744 };
4745 u.jk = function(a) {
4746 var b = new kb(n.A.fe.L());
4747 b.cl = function(b) {
4748 n.A.fe.Xa(b);
4749 n.Na.Tl();
4750 a()
4751 };
4752 x.La(b.g);
4753 b.Cb.focus()
4754 };
4755 u.kk = function(a, b) {
4756 var c = new Q(a);
4757 c.Va = b;
4758 x.La(c.g)
4759 };
4760 u.no = function(a, b) {
4761 function c() {
4762 var a = new Ka("Failed", null);
4763 a.Va = function() {
4764 u.xb()
4765 };
4766 x.La(a.g)
4767 }
4768
4769 function d(b) {
4770 b = b.sitekey;
4771 if (null == b) throw new q(null);
4772 u.kk(b, function(b) {
4773 e(a, b)
4774 })
4775 }
4776 x.La((new P("Connecting", "Connecting...", [])).g);
4777 var e;
4778 e = function(a, e) {
4779 M.zl(n.Ee +
4780 "api/client", "room=" + a + "&rcr=" + e, M.vj).then(function(a) {
4781 switch (a.action) {
4782 case "connect":
4783 a = a.token;
4784 if (null == a) throw new q(null);
4785 b(a);
4786 break;
4787 case "recaptcha":
4788 d(a);
4789 break;
4790 default:
4791 throw new q(null);
4792 }
4793 })["catch"](function() {
4794 c()
4795 })
4796 };
4797 e(a, "")
4798 };
4799 u.xq = function() {
4800 var a = Hb.L(),
4801 b = a.get("c"),
4802 c = a.get("p");
4803 a.get("v");
4804 null != b ? null != c ? u.Dh(b) : u.Pf(b) : u.xb()
4805 };
4806 u.xb = function() {
4807 var a = new Aa(n.A.Lh());
4808 x.La(a.Ja);
4809 a.Ym = function(b) {
4810 if (9 != b.vd.Id) {
4811 var c;
4812 9 > b.vd.Id ? (b = "Old version room", c = "The room is running an older version, an update must have happened recently.") :
4813 (b = "New version", c = "The room is running a new version of haxball, refresh the site to update.");
4814 var d = new P(b, c, ["Ok"]);
4815 x.La(d.g);
4816 d.Va = function() {
4817 x.La(a.Ja);
4818 return d.Va = null
4819 }
4820 } else b.vd.Ib ? u.Dh(b.$) : u.Pf(b.$)
4821 };
4822 a.ws = function() {
4823 u.oo()
4824 };
4825 a.vs = function() {
4826 u.jk(u.xb)
4827 };
4828 a.ys = function() {
4829 u.mk()
4830 };
4831 a.xs = function(a) {
4832 u.po(a)
4833 }
4834 };
4835 u.mk = function() {
4836 var a = new aa(!0),
4837 b = window.document.createElement("div");
4838 b.className = "view-wrapper";
4839 b.appendChild(a.g);
4840 x.La(b);
4841 a.qb = function() {
4842 u.xb()
4843 };
4844 a.Ep = function() {
4845 var a = new mb,
4846 b = window.document.createElement("div");
4847 b.className = "view-wrapper";
4848 b.appendChild(a.g);
4849 x.La(b);
4850 return a.qb = function() {
4851 u.mk()
4852 }
4853 }
4854 };
4855 u.$h = function(a, b) {
4856 return "" + window.location.origin + "/play?c=" + a + (b ? "&p=1" : "")
4857 };
4858 u.oo = function() {
4859 var a = n.A.fe.L(),
4860 b = new ib("" + a + "'s room");
4861 x.La(b.g);
4862 b.ci = function() {
4863 u.xb()
4864 };
4865 b.Jp = function(b) {
4866 function c() {
4867 if (!b.Ks) {
4868 var a = new Fb;
4869 a.Id = 9;
4870 a.w = g.jc;
4871 a.I = g.I.length;
4872 a.Xe = l.fg + 1;
4873 a.ub = f.ub;
4874 a.Ib = null != l.Ib;
4875 a.Ec = f.Ec;
4876 a.Gc = f.Gc;
4877 var c = w.ha(16);
4878 a.ga(c);
4879 a = c.Kg();
4880 l.Fi(a)
4881 }
4882 }
4883 x.La((new P("Creating room", "Connecting...", [])).g);
4884 var e = null,
4885 f = n.A.Lh(),
4886 g = new fa;
4887 g.jc = b.name;
4888 var k = new ea;
4889 k.w = a;
4890 k.cb = !0;
4891 k.Kd = f.ub;
4892 k.Xb = n.A.sh.L();
4893 g.I.push(k);
4894 var l = new Lb({
4895 iceServers: n.Vf,
4896 ij: n.Ee + "api/host",
4897 state: g,
4898 version: 9
4899 });
4900 l.fg = b.qs - 1;
4901 l.Ib = b.password;
4902 c();
4903 var t = new ba(l),
4904 h = !1;
4905 l.ef = function(a, b) {
4906 u.kk(a, function(a) {
4907 b(a);
4908 x.La(t.j.g);
4909 return h = !0
4910 })
4911 };
4912 var m = window.setInterval(function() {
4913 var a = la.la(l);
4914 l.ra(a)
4915 }, 3E3);
4916 l.$k = function(a) {
4917 null != g.na(a) && (a = Y.la(a, "Bad actor", !1), l.ra(a))
4918 };
4919 l.Hp = function(a, b) {
4920 var d = b.ic();
4921 if (25 < d.length) throw new q("name too long");
4922 var e =
4923 b.ic();
4924 if (3 < e.length) throw new q("country too long");
4925 var f = b.zb();
4926 if (null != f && 2 < f.length) throw new q("avatar too long");
4927 d = oa.la(a, d, e, f);
4928 l.ra(d);
4929 c()
4930 };
4931 l.Ip = function(a) {
4932 null != g.na(a) && (a = Y.la(a, null, !1), l.ra(a))
4933 };
4934 l.kg = function(a) {
4935 e = a;
4936 t.Bg = u.$h(a, null != l.Ib);
4937 h || (h = !0, x.La(t.j.g))
4938 };
4939 t.Ih.Np = function(a, b, c, d) {
4940 l.to(a, b, c, d)
4941 };
4942 t.Ih.Op = function() {
4943 c()
4944 };
4945 t.j.de = function() {
4946 l.ia();
4947 t.ia();
4948 u.xb();
4949 window.clearInterval(m)
4950 };
4951 t.Of.Fg = function(a) {
4952 l.Ib = a;
4953 c();
4954 null != e && (t.Bg = u.$h(e, null != l.Ib))
4955 };
4956 t.Of.jm = function(a) {
4957 l.Ei(a)
4958 };
4959 t.Of.Ud = G(l, l.Ud)
4960 }
4961 };
4962 u.Dh = function(a) {
4963 var b = new Za;
4964 x.La(b.g);
4965 b.Va = function(b) {
4966 null == b ? u.xb() : u.Pf(a, b)
4967 }
4968 };
4969 u.po = function(a) {
4970 try {
4971 var b = new Vb(new Jb(new Uint8Array(a), new fa, 3));
4972 b.je.de = function() {
4973 b.ia();
4974 u.xb()
4975 };
4976 x.La(b.j.g)
4977 } catch (e) {
4978 var c = e instanceof q ? e.Ta : e;
4979 if (c instanceof Kb) a = new P("Incompatible replay version", "The replay file is of a different version", ["Open player", "Cancel"]), x.La(a.g), a.Va = function(a) {
4980 0 == a ? (a = window.top.location, window.top.open(a.protocol + "//" + a.hostname + (null != a.port ? ":" + a.port :
4981 "") + "/replay?v=" + c.Id, "_self")) : u.xb()
4982 };
4983 else {
4984 var d = new P("Replay error", "Couldn't load the file.", ["Ok"]);
4985 x.La(d.g);
4986 d.Va = function() {
4987 d.Va = null;
4988 u.xb()
4989 }
4990 }
4991 }
4992 };
4993 u.Pf = function(a, b, c) {
4994 try {
4995 var d = u.Bo(),
4996 e = new fa,
4997 f = w.ha();
4998 f.mc(n.A.fe.L());
4999 f.mc(n.A.Lh().ub);
5000 f.Db(n.A.sh.L());
5001 var g = n.Vf,
5002 k = n.Vr,
5003 l = f.Kg(),
5004 t = new xa(a, {
5005 iceServers: g,
5006 ij: k,
5007 state: e,
5008 version: 9,
5009 Ms: l,
5010 password: b,
5011 cn: d,
5012 gn: c,
5013 ds: u.Je
5014 }),
5015 h = new jb;
5016 h.ba("Connecting to master...");
5017 h.vh.onclick = function() {
5018 t.Ad = null;
5019 t.df = null;
5020 t.ia();
5021 u.xb()
5022 };
5023 x.La(h.g);
5024 var m = function(a, b) {
5025 var c =
5026 new Ka(a, b);
5027 c.Va = function() {
5028 u.xb()
5029 };
5030 x.La(c.g)
5031 },
5032 p = function() {
5033 var a = new P("Connection Failed", "", ["Ok"]);
5034 a.Vd.innerHTML = "<p>Failed to connect to room host.</p><p>If this problem persists please see the <a href='https://github.com/haxball/haxball-issues/wiki/Connection-Issues' target='_blank'>troubleshooting guide</a>.</p>";
5035 a.Va = function() {
5036 u.xb()
5037 };
5038 x.La(a.g)
5039 },
5040 r = function() {
5041 var b = new ba(t);
5042 t.dl = function(a) {
5043 b.j.pe.qr((10 * t.sg.$g(.5) | 0) / 10);
5044 b.j.pe.or((10 * t.sg.max() | 0) / 10);
5045 b.j.pe.nl.tn(a)
5046 };
5047 b.Bg = u.$h(a, !1);
5048 x.La(b.j.g);
5049 b.j.de = function() {
5050 t.Ad = null;
5051 t.ia();
5052 b.ia();
5053 u.xb()
5054 };
5055 t.Ad = function() {
5056 t.Ad = null;
5057 b.ia();
5058 var a = null == b.Ed ? null : b.Ed.stop();
5059 m(t.ek, a)
5060 }
5061 };
5062 t.df = function(c) {
5063 t.df = null;
5064 t.Ad = null;
5065 switch (c.nb) {
5066 case 1:
5067 p();
5068 break;
5069 case 2:
5070 switch (c.reason) {
5071 case 4004:
5072 u.no(a, function(c) {
5073 u.Pf(a, b, c)
5074 });
5075 break;
5076 case 4101:
5077 null == b ? u.Dh(a) : m(xa.xh(c), null);
5078 break;
5079 default:
5080 m(xa.xh(c), null)
5081 }
5082 break;
5083 default:
5084 m(xa.xh(c), null)
5085 }
5086 };
5087 t.Ad = function(a) {
5088 switch (a) {
5089 case 1:
5090 h.ba("Connecting to peer...");
5091 break;
5092 case 2:
5093 h.ba("Awaiting state...");
5094 break;
5095 case 3:
5096 r()
5097 }
5098 };
5099 t.Sp = function() {
5100 h.ba("Trying reverse connection...")
5101 }
5102 } catch (ic) {
5103 window.console.log(ic instanceof q ? ic.Ta : ic), c = new P("Unexpected Error", "", []), c.Vd.innerHTML = "An error ocurred while attempting to join the room.<br><br>This might be caused by a browser extension, try disabling all extensions and refreshing the site.<br><br>The error has been printed to the inspector console.", x.La(c.g)
5104 }
5105 };
5106 x.b = !0;
5107 x.ks = function() {
5108 try {
5109 return window.self != window.top
5110 } catch (a) {
5111 return !0
5112 }
5113 };
5114 x.Wg = function(a) {
5115 return new Promise(function(b,
5116 c) {
5117 var d = window.document.createElement("img");
5118 d.onload = function() {
5119 URL.revokeObjectURL(d.src);
5120 d.onload = null;
5121 b(d)
5122 };
5123 d.onerror = function() {
5124 URL.revokeObjectURL(d.src);
5125 c(null)
5126 };
5127 return d.src = URL.createObjectURL(new Blob([a], {
5128 type: "image/png"
5129 }))
5130 })
5131 };
5132 x.fj = function(a) {
5133 x.ks() && x.es(function() {
5134 kc.fj();
5135 var b;
5136 null == n.A.Me.L() ? T.Fo().then(function(a) {
5137 n.A.Me.Xa(a)
5138 }, function() {
5139 return {}
5140 }) : b = Promise.resolve(null);
5141 return Promise.all([M.L("res.dat", "arraybuffer").then(function(a) {
5142 a = new JSZip(a);
5143 n.Na = new Ub(a);
5144 return Promise.all([n.Na.ro,
5145 x.Wg(a.file("images/grass.png").asArrayBuffer()).then(function(a) {
5146 return n.Ko = a
5147 }), x.Wg(a.file("images/concrete.png").asArrayBuffer()).then(function(a) {
5148 return n.Vn = a
5149 }), x.Wg(a.file("images/concrete2.png").asArrayBuffer()).then(function(a) {
5150 return n.Tn = a
5151 }), x.Wg(a.file("images/typing.png").asArrayBuffer()).then(function(a) {
5152 return n.Dm = a
5153 })
5154 ])
5155 }), b]).then(function() {
5156 x.us(a)
5157 })
5158 })
5159 };
5160 x.es = function(a) {
5161 for (var b = Modernizr, c = "canvas datachannel dataview es6collections peerconnection promises websockets".split(" "),
5162 d = [], e = 0; e < c.length;) {
5163 var f = c[e];
5164 ++e;
5165 b[f] || d.push(f)
5166 }
5167 0 != d.length ? (window.document.body.innerHTML = "", x.Pg = window.document.createElement("div"), window.document.body.appendChild(x.Pg), a = new Wa(d), x.La(a.g)) : a()
5168 };
5169 x.us = function(a) {
5170 window.document.body.innerHTML = "";
5171 x.Pg = window.document.createElement("div");
5172 window.document.body.appendChild(x.Pg);
5173 var b = null,
5174 b = function() {
5175 n.Na.Tl();
5176 window.document.removeEventListener("click", b, !0)
5177 };
5178 window.document.addEventListener("click", b, !0);
5179 a()
5180 };
5181 x.La = function(a) {
5182 null !=
5183 x.Vm && x.Vm.remove();
5184 null != a && (x.Pg.appendChild(a), x.Vm = a)
5185 };
5186 Vb.b = !0;
5187 Vb.prototype = {
5188 ia: function() {
5189 window.document.removeEventListener("keydown", G(this, this.Bd));
5190 window.document.removeEventListener("keyup", G(this, this.Cd));
5191 window.onbeforeunload = null;
5192 window.cancelAnimationFrame(this.De);
5193 window.clearInterval(this.Gh)
5194 },
5195 bf: function() {
5196 this.De = window.requestAnimationFrame(G(this, this.bf));
5197 this.ya.C();
5198 this.Kc()
5199 },
5200 Kc: function() {
5201 this.je.C();
5202 var a = window.performance.now();
5203 1 == n.A.Fh.L() && 28.333333333333336 > a - this.$c ||
5204 (this.$c = a, this.sd++, this.uf(n.A.Tb.L()), 0 < this.ya.Fd || this.j.C(this.ya))
5205 },
5206 Bd: function(a) {
5207 switch (a.keyCode) {
5208 case 27:
5209 var b = this.j;
5210 b.me(!b.Gd);
5211 a.preventDefault();
5212 break;
5213 case 49:
5214 n.A.Tb.Xa(1);
5215 break;
5216 case 50:
5217 n.A.Tb.Xa(2);
5218 break;
5219 case 51:
5220 n.A.Tb.Xa(3);
5221 break;
5222 case 52:
5223 n.A.Tb.Xa(0)
5224 }
5225 },
5226 uf: function(a) {
5227 var b = this.j.Fb;
5228 0 >= a ? (b.Gg(!0), b.Eb.kf = 1, b.Eb.xf = 0) : (b.Gg(!1), b.Eb.xf = 35, b.Eb.kf = 1 + .25 * (a - 1))
5229 },
5230 Cd: function() {},
5231 f: Vb
5232 };
5233 Fb.b = !0;
5234 Fb.prototype = {
5235 Pj: function() {
5236 this.w = U.Qc(this.w, 40);
5237 this.ub = U.Qc(this.ub, 3)
5238 },
5239 ga: function(a) {
5240 this.Pj();
5241 a.Sa = !0;
5242 a.Ub(this.Id);
5243 a.Im(this.w);
5244 a.Im(this.ub);
5245 a.Wi(this.Ec);
5246 a.Wi(this.Gc);
5247 a.l(this.Ib ? 1 : 0);
5248 a.l(this.Xe);
5249 a.l(this.I);
5250 a.Sa = !1
5251 },
5252 ja: function(a) {
5253 a.Sa = !0;
5254 this.Id = a.Ob();
5255 this.w = a.El();
5256 this.ub = a.El();
5257 this.Ec = a.mi();
5258 this.Gc = a.mi();
5259 this.Ib = 0 != a.B();
5260 this.Xe = a.B();
5261 this.I = a.B();
5262 a.Sa = !1;
5263 if (30 < this.I || 30 < this.Xe) throw new q(null);
5264 this.Pj()
5265 },
5266 f: Fb
5267 };
5268 va.b = !0;
5269 va.parse = function(a) {
5270 a.B();
5271 for (var b = []; 0 != a.o.byteLength - a.a;) {
5272 var c = a.ie(a.Ob()),
5273 d = a.Cl(a.Ob());
5274 try {
5275 var e = new Fb;
5276 e.ja(new F(new DataView(d), !1));
5277 var f = new Wb;
5278 f.vd = e;
5279 f.$ = c;
5280 b.push(f)
5281 } catch (g) {}
5282 }
5283 return b
5284 };
5285 va.js = function(a, b, c, d) {
5286 return Math.acos(Math.sin(a) * Math.sin(c) + Math.cos(a) * Math.cos(c) * Math.cos(b - d))
5287 };
5288 va.Hs = function(a, b) {
5289 for (var c = a.Ec, d = a.Gc, e = 0; e < b.length;) {
5290 var f = b[e];
5291 ++e;
5292 var g = f.vd;
5293 f.Le = 6378 * va.js(.017453292519943295 * g.Ec, .017453292519943295 * g.Gc, .017453292519943295 * c, .017453292519943295 * d);
5294 isFinite(f.Le) || (f.Le = 22E3)
5295 }
5296 };
5297 va.get = function() {
5298 return M.L(n.Ee + "api/list", "arraybuffer").then(function(a) {
5299 return va.parse(new F(new DataView(a), !1))
5300 })
5301 };
5302 Z.b = !0;
5303 Z["delete"] = function(a) {
5304 return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function(b, c) {
5305 var d = window.indexedDB.open("stadiums", 1);
5306 d.onblocked = d.onerror = c;
5307 d.onupgradeneeded = function(a) {
5308 var b = d.result;
5309 b.onerror = c;
5310 1 > a.oldVersion && (b.createObjectStore("files", {
5311 autoIncrement: !0
5312 }), b.createObjectStore("meta", {
5313 keyPath: "id"
5314 }))
5315 };
5316 d.onsuccess = function() {
5317 var e = d.result;
5318 e.onerror = c;
5319 var f = e.transaction(["meta", "files"], "readwrite");
5320 f.onerror = f.onabort = function(a) {
5321 c(a);
5322 e.close()
5323 };
5324 f.oncomplete = function() {
5325 b(0);
5326 e.close()
5327 };
5328 f.objectStore("files")["delete"](a);
5329 f.objectStore("meta")["delete"](a)
5330 }
5331 })
5332 };
5333 Z.get = function(a) {
5334 return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function(b, c) {
5335 var d = window.indexedDB.open("stadiums", 1);
5336 d.onblocked = d.onerror = c;
5337 d.onupgradeneeded = function(a) {
5338 var b = d.result;
5339 b.onerror = c;
5340 1 > a.oldVersion && (b.createObjectStore("files", {
5341 autoIncrement: !0
5342 }), b.createObjectStore("meta", {
5343 keyPath: "id"
5344 }))
5345 };
5346 d.onsuccess = function() {
5347 var e =
5348 d.result;
5349 e.onerror = c;
5350 var f = e.transaction(["files"]);
5351 f.onerror = f.onabort = function(a) {
5352 c(a);
5353 e.close()
5354 };
5355 f.oncomplete = function() {
5356 e.close()
5357 };
5358 zb.eh(f.objectStore("files").get(a)).then(function(a) {
5359 try {
5360 var d = new h;
5361 d.Lk(a);
5362 b(d)
5363 } catch (l) {
5364 c(l instanceof q ? l.Ta : l)
5365 }
5366 }, c)
5367 }
5368 })
5369 };
5370 Z.getAll = function() {
5371 return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function(a, b) {
5372 var c = window.indexedDB.open("stadiums", 1);
5373 c.onblocked = c.onerror = b;
5374 c.onupgradeneeded = function(a) {
5375 var d = c.result;
5376 d.onerror = b;
5377 1 > a.oldVersion && (d.createObjectStore("files", {
5378 autoIncrement: !0
5379 }), d.createObjectStore("meta", {
5380 keyPath: "id"
5381 }))
5382 };
5383 c.onsuccess = function() {
5384 var d = c.result;
5385 d.onerror = b;
5386 var e = d.transaction(["meta"]);
5387 e.onerror = e.onabort = function(a) {
5388 b(a);
5389 d.close()
5390 };
5391 e.oncomplete = function() {
5392 d.close()
5393 };
5394 zb.eh(e.objectStore("meta").getAll()).then(a, b)
5395 }
5396 })
5397 };
5398 Z.Es = function() {
5399 var a = window.navigator.storage;
5400 if (null == a || null == a.persist) return Promise.resolve(!1);
5401 try {
5402 return a.persisted().then(function(b) {
5403 return b ? !0 : a.persist()
5404 })["catch"](function() {
5405 return !1
5406 })
5407 } catch (b) {
5408 return Promise.resolve(!1)
5409 }
5410 };
5411 Z.add = function(a) {
5412 return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function(b, c) {
5413 var d = window.indexedDB.open("stadiums", 1);
5414 d.onblocked = d.onerror = c;
5415 d.onupgradeneeded = function(a) {
5416 var b = d.result;
5417 b.onerror = c;
5418 1 > a.oldVersion && (b.createObjectStore("files", {
5419 autoIncrement: !0
5420 }), b.createObjectStore("meta", {
5421 keyPath: "id"
5422 }))
5423 };
5424 d.onsuccess = function() {
5425 var e = d.result;
5426 e.onerror = c;
5427 var f = e.transaction(["files", "meta"], "readwrite");
5428 f.onerror = f.onabort = function(a) {
5429 c(a);
5430 e.close()
5431 };
5432 f.oncomplete = function() {
5433 b(0);
5434 e.close()
5435 };
5436 try {
5437 zb.eh(f.objectStore("files").add(a.se())).then(function(b) {
5438 b = {
5439 name: a.w,
5440 id: b
5441 };
5442 return zb.eh(f.objectStore("meta").add(b))
5443 })["catch"](c)
5444 } catch (g) {
5445 c(0)
5446 }
5447 }
5448 })
5449 };
5450 Ub.b = !0;
5451 Ub.prototype = {
5452 Tl: function() {
5453 this.c.resume()
5454 },
5455 cd: function(a) {
5456 var b = this.c.createBufferSource();
5457 b.buffer = a;
5458 b.connect(this.ag);
5459 b.start()
5460 },
5461 im: function(a) {
5462 this.ag.gain.value = a
5463 },
5464 f: Ub
5465 };
5466 Tb.b = !0;
5467 Tb.prototype = {
5468 update: function() {
5469 var a = window.performance.now(),
5470 b = a - this.Um;
5471 this.Um = a;
5472 this.ve += (this.dh - this.ve) *
5473 this.Js;
5474 this.Ef -= b;
5475 0 >= this.Ef && (this.Ef = this.dh = 0);
5476 0 >= this.dh && .05 > this.ve && (window.clearInterval(this.gh), this.gh = null, this.ve = 0);
5477 this.Tg.gain.value = n.A.nm.L() ? this.ve : 0
5478 },
5479 qj: function(a) {
5480 var b = this;
5481 this.dh = a;
5482 this.Ef = 166.66666666666666;
5483 null == this.gh && (this.gh = window.setInterval(function() {
5484 b.update()
5485 }, 17), this.Um = window.performance.now())
5486 },
5487 connect: function(a) {
5488 this.Tg.connect(a)
5489 },
5490 Ls: function(a) {
5491 var b = a.K;
5492 if (null != b)
5493 if (2 == b.Bb) 0 >= b.Oa && this.qj(1);
5494 else if (1 == b.Bb) {
5495 var c = b.ta.F[0],
5496 d = null,
5497 e = null,
5498 f = null,
5499 g = 0,
5500 k = null,
5501 l = null,
5502 t = null,
5503 h = 0,
5504 m = p.fa.Ch,
5505 n = 0;
5506 for (a = a.I; n < a.length;) {
5507 var q = a[n];
5508 ++n;
5509 if (null != q.H) {
5510 var r = q.H.a,
5511 v = c.a,
5512 u = r.x - v.x,
5513 r = r.y - v.y,
5514 u = u * u + r * r;
5515 if (q.ea == p.fa) {
5516 if (null == d || d.a.x * m < q.H.a.x * m) d = q.H;
5517 if (null == e || e.a.x * m > q.H.a.x * m) e = q.H;
5518 if (null == f || u < g) f = q.H, g = u
5519 } else if (q.ea == p.xa) {
5520 if (null == k || k.a.x * m < q.H.a.x * m) k = q.H;
5521 if (null == l || l.a.x * m > q.H.a.x * m) l = q.H;
5522 if (null == t || u < h) t = q.H, h = u
5523 }
5524 }
5525 }
5526 null != l && null != e && 0 >= b.Oa && (f.a.x > l.a.x && c.a.x > l.a.x && 20 < c.a.x && this.qj(.3), t.a.x < e.a.x && c.a.x < e.a.x && -20 > c.a.x && this.qj(.3))
5527 }
5528 },
5529 f: Tb
5530 };
5531 ua.b = !0;
5532 ua.prototype = {
5533 ga: function(a) {
5534 var b = this.a;
5535 a.s(b.x);
5536 a.s(b.y);
5537 b = this.D;
5538 a.s(b.x);
5539 a.s(b.y);
5540 b = this.oa;
5541 a.s(b.x);
5542 a.s(b.y);
5543 a.s(this.Z);
5544 a.s(this.m);
5545 a.s(this.aa);
5546 a.s(this.Ca);
5547 a.tb(this.R);
5548 a.O(this.h);
5549 a.O(this.v)
5550 },
5551 ja: function(a) {
5552 var b = this.a;
5553 b.x = a.u();
5554 b.y = a.u();
5555 b = this.D;
5556 b.x = a.u();
5557 b.y = a.u();
5558 b = this.oa;
5559 b.x = a.u();
5560 b.y = a.u();
5561 this.Z = a.u();
5562 this.m = a.u();
5563 this.aa = a.u();
5564 this.Ca = a.u();
5565 this.R = a.hb();
5566 this.h = a.M();
5567 this.v = a.M()
5568 },
5569 rp: function() {
5570 var a = new ca;
5571 this.Bk(a);
5572 return a
5573 },
5574 Bk: function(a) {
5575 var b = a.a,
5576 c = this.a;
5577 b.x = c.x;
5578 b.y = c.y;
5579 b = a.D;
5580 c = this.D;
5581 b.x = c.x;
5582 b.y = c.y;
5583 b = a.oa;
5584 c = this.oa;
5585 b.x = c.x;
5586 b.y = c.y;
5587 a.Z = this.Z;
5588 a.m = this.m;
5589 a.aa = this.aa;
5590 a.Ca = this.Ca;
5591 a.R = this.R;
5592 a.h = this.h;
5593 a.v = this.v
5594 },
5595 f: ua
5596 };
5597 O.b = !0;
5598 O.Rd = [Ta];
5599 O.qd = function(a, b) {
5600 a.Ma = b.Ma.sc();
5601 a.ib = b.ib;
5602 a.Da = b.Da;
5603 a.ta = b.ta.sc();
5604 a.vc = b.vc;
5605 a.Bb = b.Bb;
5606 a.Pb = b.Pb;
5607 a.Kb = b.Kb;
5608 a.Hc = b.Hc;
5609 a.Oa = b.Oa;
5610 a.S = b.S;
5611 a.ae = b.ae
5612 };
5613 O.prototype = {
5614 Wo: function(a) {
5615 this.Ma = a;
5616 this.ib = a.ib;
5617 this.Da = a.Da;
5618 this.S = a.S;
5619 this.ta.J = this.S.J;
5620 this.ta.qa = this.S.qa;
5621 this.ta.U = this.S.U;
5622 this.ta.pb = this.S.pb;
5623 a = 0;
5624 for (var b =
5625 this.S.F; a < b.length;) this.ta.F.push(b[a++].rp());
5626 this.Gk()
5627 },
5628 Ck: function(a) {
5629 if (a.ea == p.Ia) a.H = null;
5630 else {
5631 a.ob = 0;
5632 var b = a.H;
5633 null == b && (b = new ca, a.H = b, this.ta.F.push(b));
5634 var c = this.S.ge;
5635 b.R = 0;
5636 b.Z = c.Z;
5637 b.aa = c.aa;
5638 b.Ca = c.Ca;
5639 b.m = c.m;
5640 b.h = 39;
5641 b.v = a.ea.v | c.v;
5642 var d = a.ea == p.fa ? this.S.Dd : this.S.md;
5643 0 == d.length ? (b.a.x = a.ea.Ch * this.S.$b, b.a.y = 0) : (a = b.a, d = d[d.length - 1], a.x = d.x, a.y = d.y);
5644 d = b.D;
5645 d.x = 0;
5646 d.y = 0;
5647 b = b.oa;
5648 c = c.oa;
5649 b.x = c.x;
5650 b.y = c.y
5651 }
5652 },
5653 C: function(a) {
5654 if (0 < this.Oa) 120 > this.Oa && this.Oa--;
5655 else {
5656 var b = this.Ma.Os;
5657 null != b && b();
5658 for (var b = this.Ma.I, c = 0; c < b.length;) {
5659 var d = b[c];
5660 ++c;
5661 if (null != d.H) {
5662 0 == (d.ob & 16) && (d.Wb = !1);
5663 var e = this.S.ge;
5664 0 < d.Sc && d.Sc--;
5665 d.yc < this.Ma.ce && d.yc++;
5666 if (d.Wb && 0 >= d.Sc && 0 <= d.yc) {
5667 for (var f = !1, g = 0, k = this.ta.F; g < k.length;) {
5668 var l = k[g];
5669 ++g;
5670 if (0 != (l.v & 64) && l != d.H) {
5671 var t = l.a,
5672 h = d.H.a,
5673 m = t.x - h.x,
5674 t = t.y - h.y,
5675 h = Math.sqrt(m * m + t * t);
5676 if (4 > h - l.Z - d.H.Z) {
5677 var f = m / h,
5678 m = t / h,
5679 t = e.Re,
5680 n = h = l.D,
5681 l = l.aa;
5682 h.x = n.x + f * t * l;
5683 h.y = n.y + m * t * l;
5684 n = d.H;
5685 l = -e.Se;
5686 h = t = n.D;
5687 n = n.aa;
5688 t.x = h.x + f * l * n;
5689 t.y = h.y + m * l * n;
5690 f = !0
5691 }
5692 }
5693 }
5694 f && (null != this.Ma.ji && this.Ma.ji(d), d.Wb = !1, d.Sc = this.Ma.yd, d.yc -= this.Ma.Zc)
5695 }
5696 f = d.ob;
5697 k = g = 0;
5698 0 != (f & 1) && --k;
5699 0 != (f & 2) && ++k;
5700 0 != (f & 4) && --g;
5701 0 != (f & 8) && ++g;
5702 0 != g && 0 != k && (f = Math.sqrt(g * g + k * k), g /= f, k /= f);
5703 f = d.H.D;
5704 l = d.Wb ? e.Te : e.Ce;
5705 f.x += g * l;
5706 f.y += k * l;
5707 d.H.Ca = d.Wb ? e.Ue : e.Ca
5708 }
5709 }
5710 c = 0;
5711 d = this.ta.F;
5712 e = 0;
5713 for (g = d.length; e < g;) f = e++, k = d[f], 0 != (k.v & 128) && (O.dk[c] = f, f = O.Yk[c], k = k.a, f.x = k.x, f.y = k.y, ++c);
5714 this.ta.C(a);
5715 if (0 == this.Bb) {
5716 for (a = 0; a < b.length;) c = b[a], ++a, null != c.H && (c.H.h = 39 | this.ae.cp);
5717 b = this.ta.F[0].D;
5718 0 < b.x * b.x + b.y * b.y && (this.Bb = 1)
5719 } else if (1 == this.Bb) {
5720 this.Hc +=
5721 .016666666666666666;
5722 for (a = 0; a < b.length;) d = b[a], ++a, null != d.H && (d.H.h = 39);
5723 d = p.Ia;
5724 b = this.ta.F;
5725 for (a = 0; a < c && (d = a++, d = this.S.Kn(b[O.dk[d]].a, O.Yk[d]), d == p.Ia););
5726 d != p.Ia ? (this.Bb = 2, this.vc = 150, this.ae = d, d == p.fa ? this.Kb++ : this.Pb++, null != this.Ma.Ni && this.Ma.Ni(d.pg), null != this.Ma.Ol && this.Ma.Ol(d.$)) : 0 < this.Da && this.Hc >= 60 * this.Da && this.Pb != this.Kb && (null != this.Ma.Pi && this.Ma.Pi(), this.um())
5727 } else if (2 == this.Bb) this.vc--, 0 >= this.vc && (0 < this.ib && (this.Pb >= this.ib || this.Kb >= this.ib) || 0 < this.Da && this.Hc >= 60 *
5728 this.Da && this.Pb != this.Kb ? this.um() : (this.Gk(), null != this.Ma.lq && this.Ma.lq()));
5729 else if (3 == this.Bb && (this.vc--, 0 >= this.vc && (b = this.Ma, null != b.K))) {
5730 b.K = null;
5731 a = 0;
5732 for (c = b.I; a < c.length;) d = c[a], ++a, d.H = null, d.Jb = 0;
5733 null != b.vf && b.vf(null)
5734 }
5735 }
5736 },
5737 um: function() {
5738 this.vc = 300;
5739 this.Bb = 3;
5740 null != this.Ma.Oi && this.Ma.Oi(this.Pb > this.Kb ? p.fa : p.xa)
5741 },
5742 Gk: function() {
5743 var a = this.Ma.I;
5744 this.Bb = 0;
5745 for (var b = this.S.F, c = this.ta.F, d = 0, e = this.S.pf ? b.length : 1; d < e;) {
5746 var f = d++;
5747 b[f].Bk(c[f])
5748 }
5749 b = [0, 0, 0];
5750 for (c = 0; c < a.length;)
5751 if (d = a[c], ++c, this.Ck(d),
5752 e = d.ea, e != p.Ia) {
5753 var f = d.H.a,
5754 g = this.S,
5755 k = b[e.$],
5756 l = e == p.fa ? g.Dd : g.md;
5757 0 == l.length ? (l = k + 1 >> 1, 0 == (k & 1) && (l = -l), g = g.kc * e.Ch, k = 55 * l) : (k >= l.length && (k = l.length - 1), k = l[k], g = k.x, k = k.y);
5758 f.x = g;
5759 f.y = k;
5760 b[e.$]++;
5761 d.Jb = b[e.$]
5762 }
5763 },
5764 ga: function(a) {
5765 this.ta.ga(a);
5766 a.O(this.vc);
5767 a.O(this.Bb);
5768 a.O(this.Pb);
5769 a.O(this.Kb);
5770 a.s(this.Hc);
5771 a.O(this.Oa);
5772 a.l(this.ae.$)
5773 },
5774 ja: function(a, b) {
5775 this.ta.ja(a);
5776 this.vc = a.M();
5777 this.Bb = a.M();
5778 this.Pb = a.M();
5779 this.Kb = a.M();
5780 this.Hc = a.u();
5781 this.Oa = a.M();
5782 var c = a.lf();
5783 this.ae = 1 == c ? p.fa : 2 == c ? p.xa : p.Ia;
5784 this.Ma =
5785 b;
5786 this.ib = b.ib;
5787 this.Da = b.Da;
5788 this.S = b.S;
5789 this.ta.J = this.S.J;
5790 this.ta.U = this.S.U;
5791 this.ta.qa = this.S.qa;
5792 this.ta.pb = this.S.pb
5793 },
5794 sc: function() {
5795 var a = ya.zc,
5796 b = this.gc;
5797 this.hc != a && (null == b && (this.gc = b = new O), this.hc = a, O.qd(b, this));
5798 return b
5799 },
5800 f: O
5801 };
5802 sb.b = !0;
5803 sb.prototype = {
5804 ga: function(a) {
5805 var b = this.W;
5806 a.s(b.x);
5807 a.s(b.y);
5808 b = this.ca;
5809 a.s(b.x);
5810 a.s(b.y);
5811 a.l(this.qe.$)
5812 },
5813 ja: function(a) {
5814 var b = this.W;
5815 b.x = a.u();
5816 b.y = a.u();
5817 b = this.ca;
5818 b.x = a.u();
5819 b.y = a.u();
5820 a = a.lf();
5821 this.qe = 1 == a ? p.fa : 2 == a ? p.xa : p.Ia
5822 },
5823 f: sb
5824 };
5825 Eb.b = !0;
5826 Eb.prototype = {
5827 ga: function(a) {
5828 a.s(this.m);
5829 a.s(this.aa);
5830 a.s(this.Ca);
5831 a.s(this.Ce);
5832 a.s(this.Te);
5833 a.s(this.Ue);
5834 a.s(this.Re);
5835 var b = this.oa;
5836 a.s(b.x);
5837 a.s(b.y);
5838 a.O(this.v);
5839 a.s(this.Z);
5840 a.s(this.Se)
5841 },
5842 ja: function(a) {
5843 this.m = a.u();
5844 this.aa = a.u();
5845 this.Ca = a.u();
5846 this.Ce = a.u();
5847 this.Te = a.u();
5848 this.Ue = a.u();
5849 this.Re = a.u();
5850 var b = this.oa;
5851 b.x = a.u();
5852 b.y = a.u();
5853 this.v = a.M();
5854 this.Z = a.u();
5855 this.Se = a.u()
5856 },
5857 f: Eb
5858 };
5859 Bb.b = !0;
5860 Bb.prototype = {
5861 f: Bb
5862 };
5863 h.b = !0;
5864 h.ja = function(a) {
5865 var b = a.B();
5866 return 255 == b ? (b = new h, b.Kr(a), b) : h.Kh()[b]
5867 };
5868 h.Kh = function() {
5869 if (null == h.wb) {
5870 h.wb = [];
5871 var a = new h;
5872 a.ad("Classic", 420, 200, 370, 170, 64, 75);
5873 h.wb.push(a);
5874 a = new h;
5875 a.ad("Easy", 420, 200, 370, 170, 90, 75);
5876 h.wb.push(a);
5877 a = new h;
5878 a.ad("Small", 420, 200, 320, 130, 55, 70);
5879 h.wb.push(a);
5880 a = new h;
5881 a.ad("Big", 600, 270, 550, 240, 80, 80);
5882 h.wb.push(a);
5883 a = new h;
5884 a.ad("Rounded", 420, 200, 370, 170, 64, 75, 75);
5885 h.wb.push(a);
5886 a = new h;
5887 a.Qk("Hockey", 420, 204, 398, 182, 68, 120, 75, 100);
5888 h.wb.push(a);
5889 a = new h;
5890 a.Qk("Big Hockey", 600, 270, 550, 240, 90, 160, 75, 150);
5891 h.wb.push(a);
5892 a = new h;
5893 a.ad("Big Easy", 600, 270, 550, 240, 95, 80);
5894 h.wb.push(a);
5895 a = new h;
5896 a.ad("Big Rounded",
5897 600, 270, 550, 240, 80, 75, 100);
5898 h.wb.push(a);
5899 a = new h;
5900 a.ad("Huge", 750, 350, 700, 320, 100, 80);
5901 h.wb.push(a);
5902 for (var a = 0, b = h.wb.length; a < b;) {
5903 var c = a++;
5904 h.wb[c].Bh = c
5905 }
5906 }
5907 return h.wb
5908 };
5909 h.wn = function(a, b) {
5910 if (null != a.trait) {
5911 var c = b[r.G(a.trait, String)];
5912 if (null != c)
5913 for (var d = 0, e = ec.Mm(c); d < e.length;) {
5914 var f = e[d];
5915 ++d;
5916 null == a[f] && (a[f] = c[f])
5917 }
5918 }
5919 };
5920 h.Dn = function(a) {
5921 if (63 == a) return ["all"];
5922 var b = [];
5923 0 != (a & 2) && b.push("red");
5924 0 != (a & 4) && b.push("blue");
5925 0 != (a & 1) && b.push("ball");
5926 0 != (a & 8) && b.push("redKO");
5927 0 != (a & 16) && b.push("blueKO");
5928 0 !=
5929 (a & 32) && b.push("wall");
5930 0 != (a & 64) && b.push("kick");
5931 0 != (a & 128) && b.push("score");
5932 0 != (a & 268435456) && b.push("c0");
5933 0 != (a & 536870912) && b.push("c1");
5934 0 != (a & 1073741824) && b.push("c2");
5935 0 != (a & -2147483648) && b.push("c3");
5936 return b
5937 };
5938 h.Fc = function(a) {
5939 a = r.G(a, Array);
5940 for (var b = 0, c = 0; c < a.length;) switch (a[c++]) {
5941 case "all":
5942 b |= 63;
5943 break;
5944 case "ball":
5945 b |= 1;
5946 break;
5947 case "blue":
5948 b |= 4;
5949 break;
5950 case "blueKO":
5951 b |= 16;
5952 break;
5953 case "c0":
5954 b |= 268435456;
5955 break;
5956 case "c1":
5957 b |= 536870912;
5958 break;
5959 case "c2":
5960 b |= 1073741824;
5961 break;
5962 case "c3":
5963 b |= -2147483648;
5964 break;
5965 case "kick":
5966 b |= 64;
5967 break;
5968 case "red":
5969 b |= 2;
5970 break;
5971 case "redKO":
5972 b |= 8;
5973 break;
5974 case "score":
5975 b |= 128;
5976 break;
5977 case "wall":
5978 b |= 32
5979 }
5980 return b
5981 };
5982 h.Jc = function(a, b, c, d) {
5983 c != d && (a[b] = h.Dn(c))
5984 };
5985 h.qg = function(a, b, c) {
5986 b != c && (a.color = h.Rn(b))
5987 };
5988 h.Rn = function(a) {
5989 a |= 0;
5990 return 0 > a ? "transparent" : J.Vg(a)
5991 };
5992 h.$f = function(a) {
5993 if ("transparent" == a) return -1;
5994 if ("string" == typeof a) return K.parseInt("0x" + K.ye(a));
5995 if (a instanceof Array && null == a.eb) return ((a[0] | 0) << 16) + ((a[1] | 0) << 8) + (a[2] | 0);
5996 throw new q("Bad color");
5997 };
5998 h.Tr = function(a) {
5999 var b = {
6000 x: a.a.x,
6001 y: a.a.y
6002 };
6003 h.ka(b, "bCoef", a.m, 1);
6004 h.Jc(b, "cMask", a.h, 63);
6005 h.Jc(b, "cGroup", a.v, 32);
6006 return b
6007 };
6008 h.np = function(a) {
6009 var b = new B;
6010 b.a.x = r.G(a.x, z);
6011 b.a.y = r.G(a.y, z);
6012 var c = a.bCoef;
6013 null != c && (b.m = r.G(c, z));
6014 c = a.cMask;
6015 null != c && (b.h = h.Fc(c));
6016 a = a.cGroup;
6017 null != a && (b.v = h.Fc(a));
6018 return b
6019 };
6020 h.fr = function(a, b) {
6021 var c = {
6022 v0: a.W.ud,
6023 v1: a.ca.ud
6024 };
6025 h.ka(c, "bias", a.Cc, b.Cc);
6026 h.ka(c, "bCoef", a.m, b.m);
6027 var d = a.Co();
6028 h.ka(c, "curve", d, 0);
6029 0 != d && (c.curveF = a.vb);
6030 h.ka(c, "vis", a.Za, b.Za);
6031 h.Jc(c, "cMask", a.h, b.h);
6032 h.Jc(c, "cGroup", a.v, b.v);
6033 h.qg(c, a.R,
6034 b.R);
6035 return c
6036 };
6037 h.mp = function(a, b) {
6038 var c = new E,
6039 d = r.G(a.v1, Pb);
6040 c.W = b[r.G(a.v0, Pb)];
6041 c.ca = b[d];
6042 var d = a.bias,
6043 e = a.bCoef,
6044 f = a.curve,
6045 g = a.curveF,
6046 k = a.vis,
6047 l = a.cMask,
6048 t = a.cGroup,
6049 m = a.color;
6050 null != d && (c.Cc = r.G(d, z));
6051 null != e && (c.m = r.G(e, z));
6052 null != g ? c.vb = r.G(g, z) : null != f && c.Oc(r.G(f, z));
6053 null != k && (c.Za = r.G(k, oc));
6054 null != l && (c.h = h.Fc(l));
6055 null != t && (c.v = h.Fc(t));
6056 null != m && (c.R = h.$f(m));
6057 return c
6058 };
6059 h.ap = function(a) {
6060 var b = {
6061 d0: a.Yd,
6062 d1: a.Zd,
6063 length: a.Hb >= a.ec ? a.Hb : [a.Hb, a.ec]
6064 };
6065 h.qg(b, a.R, 0);
6066 h.ka(b, "strength", a.ne, 1 / 0);
6067 return b
6068 };
6069 h.jp = function(a, b) {
6070 var c = new nb,
6071 d = r.G(a.d0, Pb),
6072 e = r.G(a.d1, Pb),
6073 f = a.color,
6074 g = a.strength,
6075 k = a.length;
6076 if (d >= b.length || 0 > d) throw new q(null);
6077 if (e >= b.length || 0 > e) throw new q(null);
6078 c.Yd = d;
6079 c.Zd = e;
6080 null == k ? (d = b[d], k = b[e], null == d || null == k ? c.ec = c.Hb = 100 : (e = d.a, k = k.a, d = e.x - k.x, e = e.y - k.y, c.ec = c.Hb = Math.sqrt(d * d + e * e))) : k instanceof Array && null == k.eb ? (c.Hb = r.G(k[0], z), c.ec = r.G(k[1], z)) : c.ec = c.Hb = r.G(k, z);
6081 c.ne = null == g || "rigid" == g ? 1 / 0 : r.G(g, z);
6082 null != f && (c.R = h.$f(f));
6083 return c
6084 };
6085 h.gq = function(a) {
6086 var b = {
6087 normal: [a.wa.x, a.wa.y],
6088 dist: a.Ua
6089 };
6090 h.ka(b, "bCoef", a.m, 1);
6091 h.Jc(b, "cMask", a.h, 63);
6092 h.Jc(b, "cGroup", a.v, 32);
6093 return b
6094 };
6095 h.kp = function(a) {
6096 var b = new L,
6097 c = r.G(a.normal, Array),
6098 d = r.G(c[0], z),
6099 c = r.G(c[1], z),
6100 e = b.wa,
6101 f = Math.sqrt(d * d + c * c);
6102 e.x = d / f;
6103 e.y = c / f;
6104 b.Ua = r.G(a.dist, z);
6105 d = a.bCoef;
6106 c = a.cMask;
6107 a = a.cGroup;
6108 null != d && (b.m = r.G(d, z));
6109 null != c && (b.h = h.Fc(c));
6110 null != a && (b.v = h.Fc(a));
6111 return b
6112 };
6113 h.Jo = function(a) {
6114 return {
6115 p0: [a.W.x, a.W.y],
6116 p1: [a.ca.x, a.ca.y],
6117 team: a.qe == p.fa ? "red" : "blue"
6118 }
6119 };
6120 h.ip = function(a) {
6121 var b = new sb,
6122 c = r.G(a.p0, Array),
6123 d = r.G(a.p1, Array),
6124 e =
6125 b.W;
6126 e.x = c[0];
6127 e.y = c[1];
6128 c = b.ca;
6129 c.x = d[0];
6130 c.y = d[1];
6131 switch (a.team) {
6132 case "blue":
6133 a = p.xa;
6134 break;
6135 case "red":
6136 a = p.fa;
6137 break;
6138 default:
6139 throw new q("Bad team value");
6140 }
6141 b.qe = a;
6142 return b
6143 };
6144 h.jq = function(a) {
6145 var b = {};
6146 h.ka(b, "bCoef", a.m, .5);
6147 h.ka(b, "invMass", a.aa, .5);
6148 h.ka(b, "damping", a.Ca, .96);
6149 h.ka(b, "acceleration", a.Ce, .1);
6150 h.ka(b, "kickingAcceleration", a.Te, .07);
6151 h.ka(b, "kickingDamping", a.Ue, .96);
6152 h.ka(b, "kickStrength", a.Re, 5);
6153 h.Jc(b, "cGroup", a.v, 0);
6154 if (0 != a.oa.x || 0 != a.oa.y) b.gravity = [a.oa.x, a.oa.y];
6155 h.ka(b, "radius", a.Z, 15);
6156 h.ka(b,
6157 "kickback", a.Se, 0);
6158 return b
6159 };
6160 h.lp = function(a) {
6161 var b = new Eb,
6162 c = a.bCoef,
6163 d = a.invMass,
6164 e = a.damping,
6165 f = a.acceleration,
6166 g = a.kickingAcceleration,
6167 k = a.kickingDamping,
6168 l = a.kickStrength,
6169 t = a.gravity,
6170 m = a.cGroup,
6171 n = a.radius;
6172 a = a.kickback;
6173 null != c && (b.m = r.G(c, z));
6174 null != d && (b.aa = r.G(d, z));
6175 null != e && (b.Ca = r.G(e, z));
6176 null != f && (b.Ce = r.G(f, z));
6177 null != g && (b.Te = r.G(g, z));
6178 null != k && (b.Ue = r.G(k, z));
6179 null != l && (b.Re = r.G(l, z));
6180 null != t && (c = b.oa, d = r.G(t[1], z), c.x = r.G(t[0], z), c.y = d);
6181 null != m && (b.v = h.Fc(m));
6182 null != n && (b.Z = r.G(n, z));
6183 null != a &&
6184 (b.Se = r.G(a, z));
6185 return b
6186 };
6187 h.mo = function(a, b) {
6188 var c = {};
6189 if (a.a.x != b.a.x || a.a.y != b.a.y) c.pos = [a.a.x, a.a.y];
6190 if (a.D.x != b.D.x || a.D.y != b.D.y) c.speed = [a.D.x, a.D.y];
6191 if (a.oa.x != b.oa.x || a.oa.y != b.oa.y) c.gravity = [a.oa.x, a.oa.y];
6192 h.ka(c, "radius", a.Z, b.Z);
6193 h.ka(c, "bCoef", a.m, b.m);
6194 h.ka(c, "invMass", a.aa, b.aa);
6195 h.ka(c, "damping", a.Ca, b.Ca);
6196 h.qg(c, a.R, b.R);
6197 h.Jc(c, "cMask", a.h, b.h);
6198 h.Jc(c, "cGroup", a.v, b.v);
6199 return c
6200 };
6201 h.Mk = function(a, b) {
6202 var c = a.pos,
6203 d = a.speed,
6204 e = a.gravity,
6205 f = a.radius,
6206 g = a.bCoef,
6207 k = a.invMass,
6208 l = a.damping,
6209 t = a.color,
6210 m = a.cMask,
6211 n = a.cGroup;
6212 if (null != c) {
6213 var p = b.a;
6214 p.x = c[0];
6215 p.y = c[1]
6216 }
6217 null != d && (c = b.D, c.x = d[0], c.y = d[1]);
6218 null != e && (d = b.oa, d.x = e[0], d.y = e[1]);
6219 null != f && (b.Z = r.G(f, z));
6220 null != g && (b.m = r.G(g, z));
6221 null != k && (b.aa = r.G(k, z));
6222 null != l && (b.Ca = r.G(l, z));
6223 null != t && (b.R = h.$f(t));
6224 null != m && (b.h = h.Fc(m));
6225 null != n && (b.v = h.Fc(n));
6226 return b
6227 };
6228 h.ka = function(a, b, c, d) {
6229 c != d && (a[b] = c)
6230 };
6231 h.prototype = {
6232 dg: function() {
6233 var a = new ua;
6234 a.R = 16777215;
6235 a.h = 63;
6236 a.v = 193;
6237 a.Z = 10;
6238 a.Ca = .99;
6239 a.aa = 1;
6240 a.m = .5;
6241 return a
6242 },
6243 ga: function(a) {
6244 a.l(this.Bh);
6245 if (!this.Pe()) {
6246 a.Db(this.w);
6247 a.O(this.ld);
6248 a.s(this.Td);
6249 a.s(this.Sd);
6250 a.s(this.kd);
6251 a.s(this.Uc);
6252 a.s(this.Fe);
6253 a.O(this.jd);
6254 a.s(this.$b);
6255 a.s(this.qc);
6256 a.s(this.kc);
6257 this.ge.ga(a);
6258 a.Ub(this.Ye);
6259 a.l(this.Ge);
6260 a.l(this.Lf ? 1 : 0);
6261 a.l(this.pf ? 1 : 0);
6262 a.l(this.J.length);
6263 for (var b = 0, c = this.J.length; b < c;) {
6264 var d = b++,
6265 e = this.J[d];
6266 e.ud = d;
6267 e.ga(a)
6268 }
6269 a.l(this.U.length);
6270 b = 0;
6271 for (c = this.U; b < c.length;) c[b++].ga(a);
6272 a.l(this.qa.length);
6273 b = 0;
6274 for (c = this.qa; b < c.length;) c[b++].ga(a);
6275 a.l(this.tc.length);
6276 b = 0;
6277 for (c = this.tc; b < c.length;) c[b++].ga(a);
6278 a.l(this.F.length);
6279 b = 0;
6280 for (c = this.F; b < c.length;) c[b++].ga(a);
6281 a.l(this.pb.length);
6282 b = 0;
6283 for (c = this.pb; b < c.length;) c[b++].ga(a);
6284 a.l(this.Dd.length);
6285 b = 0;
6286 for (c = this.Dd; b < c.length;) d = c[b], ++b, a.s(d.x), a.s(d.y);
6287 a.l(this.md.length);
6288 b = 0;
6289 for (c = this.md; b < c.length;) d = c[b], ++b, a.s(d.x), a.s(d.y)
6290 }
6291 },
6292 Kr: function(a) {
6293 function b() {
6294 for (var b = [], c = a.B(), d = 0; d < c;) {
6295 ++d;
6296 var e = new H(0, 0);
6297 e.x = a.u();
6298 e.y = a.u();
6299 b.push(e)
6300 }
6301 return b
6302 }
6303 this.w = a.zb();
6304 this.ld = a.M();
6305 this.Td = a.u();
6306 this.Sd = a.u();
6307 this.kd = a.u();
6308 this.Uc = a.u();
6309 this.Fe = a.u();
6310 this.jd = a.M();
6311 this.$b =
6312 a.u();
6313 this.qc = a.u();
6314 this.kc = a.u();
6315 this.ge.ja(a);
6316 this.Ye = a.Ob();
6317 this.Ge = a.B();
6318 this.Lf = 0 != a.B();
6319 this.pf = 0 != a.B();
6320 this.J = [];
6321 for (var c = a.B(), d = 0; d < c;) {
6322 var e = new B;
6323 e.ja(a);
6324 e.ud = d++;
6325 this.J.push(e)
6326 }
6327 this.U = [];
6328 c = a.B();
6329 for (d = 0; d < c;) ++d, e = new E, e.ja(a, this.J), this.U.push(e);
6330 this.qa = [];
6331 c = a.B();
6332 for (d = 0; d < c;) ++d, e = new L, e.ja(a), this.qa.push(e);
6333 this.tc = [];
6334 c = a.B();
6335 for (d = 0; d < c;) ++d, e = new sb, e.ja(a), this.tc.push(e);
6336 this.F = [];
6337 c = a.B();
6338 for (d = 0; d < c;) ++d, e = new ua, e.ja(a), this.F.push(e);
6339 this.pb = [];
6340 c = a.B();
6341 for (d = 0; d < c;) ++d,
6342 e = new nb, e.ja(a), this.pb.push(e);
6343 this.Dd = b();
6344 this.md = b();
6345 this.he()
6346 },
6347 he: function() {
6348 for (var a = 0, b = this.U; a < b.length;) b[a++].he()
6349 },
6350 Pe: function() {
6351 return 255 != this.Bh
6352 },
6353 be: function(a, b, c) {
6354 a = a[b];
6355 return null != a ? r.G(a, z) : c
6356 },
6357 op: function(a, b, c) {
6358 a = a[b];
6359 return null != a ? r.G(a, oc) : c
6360 },
6361 se: function() {
6362 return JSON.stringify(this.Hr())
6363 },
6364 Hr: function() {
6365 if (!this.Lf) throw new q(0);
6366 for (var a = {}, b = 0, c = [], d = 0, e = this.J; d < e.length;) {
6367 var f = e[d];
6368 ++d;
6369 f.ud = b++;
6370 c.push(h.Tr(f))
6371 }
6372 d = new E;
6373 b = [];
6374 e = 0;
6375 for (f = this.U; e < f.length;) b.push(h.fr(f[e++],
6376 d));
6377 d = [];
6378 e = 0;
6379 for (f = this.qa; e < f.length;) d.push(h.gq(f[e++]));
6380 for (var e = [], f = 0, g = this.tc; f < g.length;) e.push(h.Jo(g[f++]));
6381 for (var f = h.jq(this.ge), k = new ua, g = [], l = 0, t = this.F; l < t.length;) g.push(h.mo(t[l++], k));
6382 k = [];
6383 l = 0;
6384 for (t = this.pb; l < t.length;) k.push(h.ap(t[l++]));
6385 for (var l = [], t = 0, m = this.Dd; t < m.length;) {
6386 var n = m[t];
6387 ++t;
6388 l.push([n.x, n.y])
6389 }
6390 t = [];
6391 m = 0;
6392 for (n = this.md; m < n.length;) {
6393 var p = n[m];
6394 ++m;
6395 t.push([p.x, p.y])
6396 }
6397 c = {
6398 name: this.w,
6399 width: this.$b,
6400 height: this.qc,
6401 bg: a,
6402 vertexes: c,
6403 segments: b,
6404 planes: d,
6405 goals: e,
6406 discs: g,
6407 playerPhysics: f,
6408 ballPhysics: "disc0"
6409 };
6410 h.ka(c, "maxViewWidth", this.Ye, 0);
6411 h.ka(c, "cameraFollow", 1 == this.Ge ? "player" : "", "");
6412 h.ka(c, "spawnDistance", this.kc, 200);
6413 0 != k.length && (c.joints = k);
6414 0 != l.length && (c.redSpawnPoints = l);
6415 0 != t.length && (c.blueSpawnPoints = t);
6416 h.ka(c, "kickOffReset", this.pf ? "full" : "partial", "partial");
6417 switch (this.ld) {
6418 case 1:
6419 b = "grass";
6420 break;
6421 case 2:
6422 b = "hockey";
6423 break;
6424 default:
6425 b = "none"
6426 }
6427 h.ka(a, "type", b, "none");
6428 h.ka(a, "width", this.Td, 0);
6429 h.ka(a, "height", this.Sd, 0);
6430 h.ka(a, "kickOffRadius", this.kd, 0);
6431 h.ka(a, "cornerRadius",
6432 this.Uc, 0);
6433 h.qg(a, this.jd, 7441498);
6434 h.ka(a, "goalLine", this.Fe, 0);
6435 return c
6436 },
6437 Lk: function(a) {
6438 function b(a) {
6439 var b = r.G(a[0], z);
6440 a = r.G(a[1], z);
6441 return new H(b, a)
6442 }
6443
6444 function c(a, b, c, d) {
6445 null == d && (d = !1);
6446 var f = e[b];
6447 if (!d || null != f)
6448 if (d = r.G(f, Array), null != d)
6449 for (f = 0; f < d.length;) {
6450 var k = d[f];
6451 ++f;
6452 try {
6453 h.wn(k, g), a.push(c(k))
6454 } catch (wc) {
6455 throw new q(new Bb('Error in "' + b + '" index: ' + a.length));
6456 }
6457 }
6458 }
6459 var d = this,
6460 e = JSON5.parse(a);
6461 this.J = [];
6462 this.U = [];
6463 this.qa = [];
6464 this.tc = [];
6465 this.F = [];
6466 this.pb = [];
6467 this.w = r.G(e.name, String);
6468 this.$b = r.G(e.width,
6469 z);
6470 this.qc = r.G(e.height, z);
6471 this.Ye = this.be(e, "maxViewWidth", 0) | 0;
6472 "player" == e.cameraFollow && (this.Ge = 1);
6473 this.kc = 200;
6474 a = e.spawnDistance;
6475 null != a && (this.kc = r.G(a, z));
6476 a = e.bg;
6477 var f;
6478 switch (a.type) {
6479 case "grass":
6480 f = 1;
6481 break;
6482 case "hockey":
6483 f = 2;
6484 break;
6485 default:
6486 f = 0
6487 }
6488 this.ld = f;
6489 this.Td = this.be(a, "width", 0);
6490 this.Sd = this.be(a, "height", 0);
6491 this.kd = this.be(a, "kickOffRadius", 0);
6492 this.Uc = this.be(a, "cornerRadius", 0);
6493 this.jd = 7441498;
6494 null != a.color && (this.jd = h.$f(a.color));
6495 this.Fe = this.be(a, "goalLine", 0);
6496 this.Lf = this.op(e, "canBeStored",
6497 !0);
6498 this.pf = "full" == e.kickOffReset;
6499 var g = e.traits;
6500 a = e.ballPhysics;
6501 "disc0" != a && (null != a ? (a = h.Mk(a, this.dg()), a.v |= 192, this.F.push(a)) : this.F.push(this.dg()));
6502 c(this.J, "vertexes", h.np);
6503 c(this.U, "segments", function(a) {
6504 return h.mp(a, d.J)
6505 });
6506 c(this.tc, "goals", h.ip);
6507 c(this.F, "discs", function(a) {
6508 return h.Mk(a, new ua)
6509 });
6510 c(this.qa, "planes", h.kp);
6511 c(this.pb, "joints", function(a) {
6512 return h.jp(a, d.F)
6513 }, !0);
6514 c(this.Dd, "redSpawnPoints", b, !0);
6515 c(this.md, "blueSpawnPoints", b, !0);
6516 a = e.playerPhysics;
6517 null != a && (this.ge = h.lp(a));
6518 if (255 < this.J.length || 255 < this.U.length || 255 < this.qa.length || 255 < this.tc.length || 255 < this.F.length) throw new q("Error");
6519 this.he()
6520 },
6521 Sj: function() {
6522 var a = h.Fr;
6523 a.a = 0;
6524 this.ga(a);
6525 var b = new dc;
6526 b.Yr(a.Sb());
6527 b.hash = (b.hash += b.hash << 3) ^ b.hash >>> 11;
6528 b.hash += b.hash << 15;
6529 return b.hash | 0
6530 },
6531 Kn: function(a, b) {
6532 for (var c = 0, d = this.tc; c < d.length;) {
6533 var e = d[c];
6534 ++c;
6535 var f = e.W,
6536 g = e.ca,
6537 k = b.x - a.x,
6538 l = b.y - a.y;
6539 0 < -(f.y - a.y) * k + (f.x - a.x) * l == 0 < -(g.y - a.y) * k + (g.x - a.x) * l ? f = !1 : (k = g.x - f.x, g = g.y - f.y, f = 0 < -(a.y - f.y) * k + (a.x - f.x) * g == 0 < -(b.y - f.y) *
6540 k + (b.x - f.x) * g ? !1 : !0);
6541 if (f) return e.qe
6542 }
6543 return p.Ia
6544 },
6545 ad: function(a, b, c, d, e, f, g, k) {
6546 null == k && (k = 0);
6547 this.w = a;
6548 this.F.push(this.dg());
6549 this.$b = b;
6550 this.qc = c;
6551 this.ld = 1;
6552 this.jd = 7441498;
6553 this.Td = d;
6554 this.Sd = e;
6555 this.kd = g;
6556 this.Uc = k;
6557 this.kc = .75 * d;
6558 400 < this.kc && (this.kc = 400);
6559 a = new L;
6560 var l = a.wa;
6561 l.x = 0;
6562 l.y = 1;
6563 a.Ua = -c;
6564 a.m = 0;
6565 this.qa.push(a);
6566 a = new L;
6567 l = a.wa;
6568 l.x = 0;
6569 l.y = -1;
6570 a.Ua = -c;
6571 a.m = 0;
6572 this.qa.push(a);
6573 a = new L;
6574 l = a.wa;
6575 l.x = 1;
6576 l.y = 0;
6577 a.Ua = -b;
6578 a.m = 0;
6579 this.qa.push(a);
6580 a = new L;
6581 l = a.wa;
6582 l.x = -1;
6583 l.y = 0;
6584 a.Ua = -b;
6585 a.m = 0;
6586 this.qa.push(a);
6587 this.eg(d, 1, f,
6588 13421823, p.xa);
6589 this.eg(-d, -1, f, 16764108, p.fa);
6590 this.Rk(g, c);
6591 b = new L;
6592 c = b.wa;
6593 c.x = 0;
6594 c.y = 1;
6595 b.Ua = -e;
6596 b.h = 1;
6597 this.qa.push(b);
6598 b = new L;
6599 c = b.wa;
6600 c.x = 0;
6601 c.y = -1;
6602 b.Ua = -e;
6603 b.h = 1;
6604 this.qa.push(b);
6605 b = new B;
6606 c = b.a;
6607 c.x = -d;
6608 c.y = -e;
6609 b.h = 0;
6610 c = new B;
6611 g = c.a;
6612 g.x = d;
6613 g.y = -e;
6614 c.h = 0;
6615 g = new B;
6616 a = g.a;
6617 a.x = d;
6618 a.y = -f;
6619 g.h = 0;
6620 a = new B;
6621 l = a.a;
6622 l.x = d;
6623 l.y = f;
6624 a.h = 0;
6625 var l = new B,
6626 h = l.a;
6627 h.x = d;
6628 h.y = e;
6629 l.h = 0;
6630 var h = new B,
6631 m = h.a;
6632 m.x = -d;
6633 m.y = e;
6634 h.h = 0;
6635 var m = new B,
6636 n = m.a;
6637 n.x = -d;
6638 n.y = f;
6639 m.h = 0;
6640 var n = new B,
6641 q = n.a;
6642 q.x = -d;
6643 q.y = -f;
6644 n.h = 0;
6645 f = new E;
6646 f.W = c;
6647 f.ca = g;
6648 f.h = 1;
6649 f.Za = !1;
6650 q = new E;
6651 q.W =
6652 a;
6653 q.ca = l;
6654 q.h = 1;
6655 q.Za = !1;
6656 var r = new E;
6657 r.W = h;
6658 r.ca = m;
6659 r.h = 1;
6660 r.Za = !1;
6661 var u = new E;
6662 u.W = n;
6663 u.ca = b;
6664 u.h = 1;
6665 u.Za = !1;
6666 this.J.push(b);
6667 this.J.push(c);
6668 this.J.push(g);
6669 this.J.push(a);
6670 this.J.push(l);
6671 this.J.push(h);
6672 this.J.push(m);
6673 this.J.push(n);
6674 this.U.push(f);
6675 this.U.push(q);
6676 this.U.push(r);
6677 this.U.push(u);
6678 this.Pk(d, e, k);
6679 this.he()
6680 },
6681 Qk: function(a, b, c, d, e, f, g, k, l) {
6682 this.w = a;
6683 this.F.push(this.dg());
6684 this.$b = b;
6685 this.qc = c;
6686 this.ld = 2;
6687 this.Td = d;
6688 this.Sd = e;
6689 this.kd = k;
6690 this.Uc = l;
6691 this.Fe = g;
6692 this.kc = .75 * (d - g);
6693 400 < this.kc && (this.kc = 400);
6694 a = new L;
6695 var h = a.wa;
6696 h.x = 0;
6697 h.y = 1;
6698 a.Ua = -c;
6699 a.m = 0;
6700 this.qa.push(a);
6701 a = new L;
6702 h = a.wa;
6703 h.x = 0;
6704 h.y = -1;
6705 a.Ua = -c;
6706 a.m = 0;
6707 this.qa.push(a);
6708 a = new L;
6709 h = a.wa;
6710 h.x = 1;
6711 h.y = 0;
6712 a.Ua = -b;
6713 a.m = 0;
6714 this.qa.push(a);
6715 a = new L;
6716 h = a.wa;
6717 h.x = -1;
6718 h.y = 0;
6719 a.Ua = -b;
6720 a.m = 0;
6721 this.qa.push(a);
6722 this.eg(d - g, 1, f, 13421823, p.xa, 63);
6723 this.eg(-d + g, -1, f, 16764108, p.fa, 63);
6724 this.Rk(k, c);
6725 b = new L;
6726 c = b.wa;
6727 c.x = 0;
6728 c.y = 1;
6729 b.Ua = -e;
6730 b.h = 1;
6731 this.qa.push(b);
6732 b = new L;
6733 c = b.wa;
6734 c.x = 0;
6735 c.y = -1;
6736 b.Ua = -e;
6737 b.h = 1;
6738 this.qa.push(b);
6739 b = new L;
6740 c = b.wa;
6741 c.x = 1;
6742 c.y = 0;
6743 b.Ua = -d;
6744 b.h = 1;
6745 this.qa.push(b);
6746 b = new L;
6747 c = b.wa;
6748 c.x = -1;
6749 c.y = 0;
6750 b.Ua = -d;
6751 b.h = 1;
6752 this.qa.push(b);
6753 this.Pk(d, e, l);
6754 this.he()
6755 },
6756 eg: function(a, b, c, d, e, f, g) {
6757 null == g && (g = 32);
6758 null == f && (f = 1);
6759 var k = new B,
6760 l = k.a;
6761 l.x = a + 8 * b;
6762 l.y = -c;
6763 var l = new B,
6764 h = l.a;
6765 h.x = a + 8 * b;
6766 h.y = c;
6767 var m = new B,
6768 h = m.a;
6769 h.x = k.a.x + 22 * b;
6770 h.y = k.a.y + 22;
6771 var n = new B,
6772 h = n.a;
6773 h.x = l.a.x + 22 * b;
6774 h.y = l.a.y - 22;
6775 h = new E;
6776 h.W = k;
6777 h.ca = m;
6778 h.Oc(90 * b);
6779 var p = new E;
6780 p.W = n;
6781 p.ca = m;
6782 var q = new E;
6783 q.W = n;
6784 q.ca = l;
6785 q.Oc(90 * b);
6786 b = this.J.length;
6787 this.J.push(k);
6788 this.J.push(l);
6789 this.J.push(m);
6790 this.J.push(n);
6791 k = b;
6792 for (b = this.J.length; k < b;) l = k++, this.J[l].h = f, this.J[l].v =
6793 g, this.J[l].m = .1;
6794 b = this.U.length;
6795 this.U.push(h);
6796 this.U.push(p);
6797 this.U.push(q);
6798 k = b;
6799 for (b = this.U.length; k < b;) l = k++, this.U[l].h = f, this.U[l].v = g, this.U[l].m = .1;
6800 f = new ua;
6801 g = f.a;
6802 g.x = a;
6803 g.y = -c;
6804 f.aa = 0;
6805 f.Z = 8;
6806 f.R = d;
6807 this.F.push(f);
6808 f = new ua;
6809 g = f.a;
6810 g.x = a;
6811 g.y = c;
6812 f.aa = 0;
6813 f.Z = 8;
6814 f.R = d;
6815 this.F.push(f);
6816 d = new sb;
6817 f = d.W;
6818 f.x = a;
6819 f.y = -c;
6820 f = d.ca;
6821 f.x = a;
6822 f.y = c;
6823 d.qe = e;
6824 this.tc.push(d)
6825 },
6826 Rk: function(a, b) {
6827 var c = new B,
6828 d = c.a;
6829 d.x = 0;
6830 d.y = -b;
6831 c.m = .1;
6832 c.v = 24;
6833 c.h = 6;
6834 var d = new B,
6835 e = d.a;
6836 e.x = 0;
6837 e.y = -a;
6838 d.m = .1;
6839 d.v = 24;
6840 d.h = 6;
6841 var e = new B,
6842 f = e.a;
6843 f.x = 0;
6844 f.y = a;
6845 e.m =
6846 .1;
6847 e.v = 24;
6848 e.h = 6;
6849 var f = new B,
6850 g = f.a;
6851 g.x = 0;
6852 g.y = b;
6853 f.m = .1;
6854 f.v = 24;
6855 f.h = 6;
6856 g = new E;
6857 g.W = c;
6858 g.ca = d;
6859 g.v = 24;
6860 g.h = 6;
6861 g.Za = !1;
6862 g.m = .1;
6863 var k = new E;
6864 k.W = e;
6865 k.ca = f;
6866 k.v = 24;
6867 k.h = 6;
6868 k.Za = !1;
6869 k.m = .1;
6870 var l = new E;
6871 l.W = d;
6872 l.ca = e;
6873 l.v = 8;
6874 l.h = 6;
6875 l.Za = !1;
6876 l.Oc(180);
6877 l.m = .1;
6878 var h = new E;
6879 h.W = e;
6880 h.ca = d;
6881 h.v = 16;
6882 h.h = 6;
6883 h.Za = !1;
6884 h.Oc(180);
6885 h.m = .1;
6886 this.J.push(c);
6887 this.J.push(d);
6888 this.J.push(e);
6889 this.J.push(f);
6890 this.U.push(g);
6891 this.U.push(k);
6892 this.U.push(l);
6893 this.U.push(h)
6894 },
6895 Pk: function(a, b, c) {
6896 if (!(0 >= c)) {
6897 var d = new B,
6898 e = d.a;
6899 e.x = -a + c;
6900 e.y = -b;
6901 d.h = 0;
6902 var e = new B,
6903 f = e.a;
6904 f.x = -a;
6905 f.y = -b + c;
6906 e.h = 0;
6907 var f = new B,
6908 g = f.a;
6909 g.x = -a + c;
6910 g.y = b;
6911 f.h = 0;
6912 var g = new B,
6913 k = g.a;
6914 k.x = -a;
6915 k.y = b - c;
6916 g.h = 0;
6917 var k = new B,
6918 l = k.a;
6919 l.x = a - c;
6920 l.y = b;
6921 k.h = 0;
6922 var l = new B,
6923 h = l.a;
6924 h.x = a;
6925 h.y = b - c;
6926 l.h = 0;
6927 var h = new B,
6928 m = h.a;
6929 m.x = a - c;
6930 m.y = -b;
6931 h.h = 0;
6932 var m = new B,
6933 n = m.a;
6934 n.x = a;
6935 n.y = -b + c;
6936 m.h = 0;
6937 a = new E;
6938 a.W = d;
6939 a.ca = e;
6940 a.h = 1;
6941 a.Za = !1;
6942 a.m = 1;
6943 a.Oc(-90);
6944 b = new E;
6945 b.W = f;
6946 b.ca = g;
6947 b.h = 1;
6948 b.Za = !1;
6949 b.m = 1;
6950 b.Oc(90);
6951 c = new E;
6952 c.W = k;
6953 c.ca = l;
6954 c.h = 1;
6955 c.Za = !1;
6956 c.m = 1;
6957 c.Oc(-90);
6958 n = new E;
6959 n.W = h;
6960 n.ca = m;
6961 n.h = 1;
6962 n.Za = !1;
6963 n.m = 1;
6964 n.Oc(90);
6965 this.J.push(d);
6966 this.J.push(e);
6967 this.J.push(f);
6968 this.J.push(g);
6969 this.J.push(k);
6970 this.J.push(l);
6971 this.J.push(h);
6972 this.J.push(m);
6973 this.U.push(a);
6974 this.U.push(b);
6975 this.U.push(c);
6976 this.U.push(n)
6977 }
6978 },
6979 f: h
6980 };
6981 ka.b = !0;
6982 ka.prototype = {
6983 ga: function(a) {
6984 a.l(this.hd);
6985 a.O(this.ed);
6986 a.l(this.fb.length);
6987 for (var b = 0, c = this.fb; b < c.length;) a.O(c[b++])
6988 },
6989 ja: function(a) {
6990 this.hd = a.B();
6991 this.ed = a.M();
6992 var b = a.B();
6993 if (3 < b) throw new q("too many");
6994 this.fb = [];
6995 for (var c = 0; c < b;) ++c, this.fb.push(a.M())
6996 },
6997 f: ka
6998 };
6999 p.b = !0;
7000 p.prototype = {
7001 f: p
7002 };
7003 fa.b = !0;
7004 fa.Rd = [Ta, cc];
7005 fa.qd = function(a, b) {
7006 a.jc = b.jc;
7007 if (null ==
7008 b.I) a.I = null;
7009 else {
7010 null == a.I && (a.I = []);
7011 for (var c = a.I, d = b.I, e = d.length; c.length > e;) c.pop();
7012 for (var e = 0, f = d.length; e < f;) {
7013 var g = e++;
7014 c[g] = d[g].hs()
7015 }
7016 }
7017 a.K = null == b.K ? null : b.K.sc();
7018 a.Pc = b.Pc;
7019 a.ib = b.ib;
7020 a.Da = b.Da;
7021 a.ce = b.ce;
7022 a.Zc = b.Zc;
7023 a.yd = b.yd;
7024 a.S = b.S;
7025 a.kb = b.kb
7026 };
7027 fa.prototype = {
7028 yr: function(a) {
7029 if (null == this.K) {
7030 this.K = new O;
7031 for (var b = 0, c = this.I; b < c.length;) {
7032 var d = c[b];
7033 ++b;
7034 d.H = null;
7035 d.Jb = 0
7036 }
7037 this.K.Wo(this);
7038 null != this.Ki && this.Ki(a)
7039 }
7040 },
7041 Mf: function(a, b, c) {
7042 if (b.ea != c) {
7043 b.ea = c;
7044 D.remove(this.I, b);
7045 this.I.push(b);
7046 if (null != this.K) {
7047 null !=
7048 b.H && (D.remove(this.K.ta.F, b.H), b.H = null);
7049 this.K.Ck(b);
7050 for (var d = 0, e = !1; !e;) {
7051 ++d;
7052 for (var e = !0, f = 0, g = this.I; f < g.length;) {
7053 var k = g[f];
7054 ++f;
7055 if (k != b && k.ea == b.ea && k.Jb == d) {
7056 e = !1;
7057 break
7058 }
7059 }
7060 }
7061 b.Jb = d
7062 }
7063 Cb.i(this.xl, a, b, c)
7064 }
7065 },
7066 na: function(a) {
7067 for (var b = 0, c = this.I; b < c.length;) {
7068 var d = c[b];
7069 ++b;
7070 if (d.V == a) return d
7071 }
7072 return null
7073 },
7074 C: function(a) {
7075 null != this.K && this.K.C(a)
7076 },
7077 ga: function(a) {
7078 a.Db(this.jc);
7079 a.l(this.Pc ? 1 : 0);
7080 a.O(this.ib);
7081 a.O(this.Da);
7082 a.Xi(this.ce);
7083 a.l(this.Zc);
7084 a.l(this.yd);
7085 this.S.ga(a);
7086 a.l(null != this.K ? 1 : 0);
7087 null != this.K &&
7088 this.K.ga(a);
7089 a.l(this.I.length);
7090 for (var b = 0, c = this.I; b < c.length;) c[b++].ua(a);
7091 this.kb[1].ga(a);
7092 this.kb[2].ga(a)
7093 },
7094 ja: function(a) {
7095 this.jc = a.zb();
7096 this.Pc = 0 != a.B();
7097 this.ib = a.M();
7098 this.Da = a.M();
7099 this.ce = a.ni();
7100 this.Zc = a.B();
7101 this.yd = a.B();
7102 this.S = h.ja(a);
7103 var b = 0 != a.B();
7104 this.K = null;
7105 b && (this.K = new O, this.K.ja(a, this));
7106 for (var b = null == this.K ? null : this.K.ta.F, c = a.B(), d = this.I; d.length > c;) d.pop();
7107 for (d = 0; d < c;) {
7108 var e = new ea;
7109 e.va(a, b);
7110 this.I[d++] = e
7111 }
7112 this.kb[1].ja(a);
7113 this.kb[2].ja(a)
7114 },
7115 uk: function() {
7116 var a = 0,
7117 b = w.ha();
7118 this.ga(b);
7119 for (b = b.Gr(); 4 <= b.o.byteLength - b.a;) a ^= b.M();
7120 return a
7121 },
7122 Ao: function() {
7123 var a = w.ha(4);
7124 a.O(this.uk());
7125 return a.Kg()
7126 },
7127 Sn: function(a) {
7128 a = (new F(new DataView(a))).M();
7129 y.i(this.ko, this.uk() != a)
7130 },
7131 km: function(a) {
7132 this.Ol = a
7133 },
7134 Lb: function(a) {
7135 if (0 == a) return !0;
7136 a = this.na(a);
7137 return null != a && a.cb ? !0 : !1
7138 },
7139 mr: function(a, b, c, d) {
7140 this.yd = 0 > b ? 0 : 255 < b ? 255 : b;
7141 this.Zc = 0 > c ? 0 : 255 < c ? 255 : c;
7142 d = 0 > d ? 0 : 100 < d ? 100 : d;
7143 this.ce = this.Zc * d;
7144 vb.i(this.Hk, a, this.yd, this.Zc, d)
7145 },
7146 sc: function() {
7147 var a = ya.zc,
7148 b = this.gc;
7149 this.hc != a && (null == b && (this.gc =
7150 b = new fa), this.hc = a, fa.qd(b, this));
7151 return b
7152 },
7153 f: fa
7154 };
7155 ea.b = !0;
7156 ea.Rd = [Ta];
7157 ea.$r = function(a, b) {
7158 a.cb = b.cb;
7159 a.Jb = b.Jb;
7160 a.Xb = b.Xb;
7161 a.Jd = b.Jd;
7162 a.Ld = b.Ld;
7163 a.Kd = b.Kd;
7164 a.Ug = b.Ug;
7165 a.yb = b.yb;
7166 a.w = b.w;
7167 a.ob = b.ob;
7168 a.V = b.V;
7169 a.Wb = b.Wb;
7170 a.yc = b.yc;
7171 a.Sc = b.Sc;
7172 a.H = null == b.H ? null : b.H.sc();
7173 a.ea = b.ea
7174 };
7175 ea.prototype = {
7176 ua: function(a) {
7177 a.l(this.cb ? 1 : 0);
7178 a.O(this.Jb);
7179 a.Db(this.Xb);
7180 a.Db(this.Jd);
7181 a.l(this.Ld ? 1 : 0);
7182 a.Db(this.Kd);
7183 a.O(this.Ug);
7184 a.Db(this.w);
7185 a.O(this.ob);
7186 a.lb(this.V);
7187 a.l(this.Wb ? 1 : 0);
7188 a.Xi(this.yc);
7189 a.l(this.Sc);
7190 a.l(this.ea.$);
7191 a.Xi(null ==
7192 this.H ? -1 : this.H.jl)
7193 },
7194 va: function(a, b) {
7195 this.cb = 0 != a.B();
7196 this.Jb = a.M();
7197 this.Xb = a.zb();
7198 this.Jd = a.zb();
7199 this.Ld = 0 != a.B();
7200 this.Kd = a.zb();
7201 this.Ug = a.M();
7202 this.w = a.zb();
7203 this.ob = a.M();
7204 this.V = a.Ab();
7205 this.Wb = 0 != a.B();
7206 this.yc = a.ni();
7207 this.Sc = a.B();
7208 var c = a.lf();
7209 this.ea = 1 == c ? p.fa : 2 == c ? p.xa : p.Ia;
7210 c = a.ni();
7211 this.H = 0 > c ? null : b[c]
7212 },
7213 hs: function() {
7214 var a = ya.zc,
7215 b = this.an;
7216 this.zc != a && (null == b && (this.an = b = new ea), this.zc = a, ea.$r(b, this));
7217 return b
7218 },
7219 f: ea
7220 };
7221 ta.b = !0;
7222 ta.la = function(a) {
7223 var b = new ta;
7224 b.Yg = a;
7225 return b
7226 };
7227 ta.ma = m;
7228 ta.prototype =
7229 C(m.prototype, {
7230 apply: function(a) {
7231 var b = a.na(this.P);
7232 null != b && this.Yg != b.Ld && (b.Ld = this.Yg, y.i(a.sl, b))
7233 },
7234 ua: function(a) {
7235 a.l(this.Yg ? 1 : 0)
7236 },
7237 va: function(a) {
7238 this.Yg = 0 != a.B()
7239 },
7240 f: ta
7241 });
7242 rb.b = !0;
7243 rb.ma = m;
7244 rb.prototype = C(m.prototype, {
7245 apply: function(a) {
7246 0 == this.P && vb.i(a.Vl, this.Tc, this.color, this.style, this.fn)
7247 },
7248 ua: function(a) {
7249 a.mc(U.Qc(this.Tc, 1E3));
7250 a.O(this.color);
7251 a.l(this.style);
7252 a.l(this.fn)
7253 },
7254 va: function(a) {
7255 this.Tc = a.ic();
7256 if (1E3 < this.Tc.length) throw new q("message too long");
7257 this.color = a.M();
7258 this.style = a.B();
7259 this.fn = a.B()
7260 },
7261 f: rb
7262 });
7263 Qa.b = !0;
7264 Qa.ma = m;
7265 Qa.prototype = C(m.prototype, {
7266 apply: function(a) {
7267 if (a.Lb(this.P, 1)) {
7268 for (var b = a.na(this.P), c = a.I, d = [], e = 0, f = 0, g = 0; g < c.length;) {
7269 var k = c[g];
7270 ++g;
7271 k.ea == p.Ia && d.push(k);
7272 k.ea == p.fa ? ++e : k.ea == p.xa && ++f
7273 }
7274 c = d.length;
7275 0 != c && (f == e ? 2 > c || (a.Mf(b, d[0], p.fa), a.Mf(b, d[1], p.xa)) : a.Mf(b, d[0], f > e ? p.fa : p.xa))
7276 }
7277 },
7278 ua: function() {},
7279 va: function() {},
7280 f: Qa
7281 });
7282 da.b = !0;
7283 da.la = function(a, b) {
7284 var c = new da;
7285 c.rj = a;
7286 c.newValue = b;
7287 return c
7288 };
7289 da.ma = m;
7290 da.prototype = C(m.prototype, {
7291 apply: function(a) {
7292 if (a.Lb(this.P,
7293 2) && null == a.K) switch (this.rj) {
7294 case 0:
7295 var b = this.newValue;
7296 a.ib = 0 > b ? 0 : 99 < b ? 99 : b;
7297 break;
7298 case 1:
7299 b = this.newValue, a.Da = 0 > b ? 0 : 99 < b ? 99 : b
7300 }
7301 },
7302 ua: function(a) {
7303 a.O(this.rj);
7304 a.O(this.newValue)
7305 },
7306 va: function(a) {
7307 this.rj = a.M();
7308 this.newValue = a.M()
7309 },
7310 f: da
7311 });
7312 sa.b = !0;
7313 sa.la = function(a, b) {
7314 var c = new sa;
7315 c.Md = a;
7316 c.Xg = b;
7317 return c
7318 };
7319 sa.ma = m;
7320 sa.prototype = C(m.prototype, {
7321 apply: function(a) {
7322 if (a.Lb(this.P, 4)) {
7323 var b = a.na(this.P),
7324 c = a.na(this.Md);
7325 null != c && 0 != c.V && c.cb != this.Xg && (c.cb = this.Xg, null != a.ii && a.ii(b, c))
7326 }
7327 },
7328 ua: function(a) {
7329 a.O(this.Md);
7330 a.l(this.Xg ? 1 : 0)
7331 },
7332 va: function(a) {
7333 this.Md = a.M();
7334 this.Xg = 0 != a.B()
7335 },
7336 f: sa
7337 });
7338 ra.b = !0;
7339 ra.la = function(a) {
7340 var b = new ra;
7341 b.Zb = a;
7342 return b
7343 };
7344 ra.ma = m;
7345 ra.prototype = C(m.prototype, {
7346 apply: function(a) {
7347 a = a.na(this.P);
7348 null != a && (a.Xb = this.Zb)
7349 },
7350 ua: function(a) {
7351 a.Db(this.Zb)
7352 },
7353 va: function(a) {
7354 this.Zb = a.zb();
7355 null != this.Zb && (this.Zb = U.Qc(this.Zb, 2))
7356 },
7357 f: ra
7358 });
7359 S.b = !0;
7360 S.la = function(a, b) {
7361 var c = new S;
7362 c.Md = a;
7363 c.jj = b;
7364 return c
7365 };
7366 S.ma = m;
7367 S.prototype = C(m.prototype, {
7368 apply: function(a) {
7369 var b = a.na(this.Md);
7370 if (null != b) {
7371 var c = a.na(this.P),
7372 d = a.Lb(this.P,
7373 1);
7374 (d = d || b == c && !a.Pc && null == a.K) && a.Mf(c, b, this.jj)
7375 }
7376 },
7377 ua: function(a) {
7378 a.O(this.Md);
7379 a.l(this.jj.$)
7380 },
7381 va: function(a) {
7382 this.Md = a.M();
7383 a = a.lf();
7384 this.jj = 1 == a ? p.fa : 2 == a ? p.xa : p.Ia
7385 },
7386 f: S
7387 });
7388 qa.b = !0;
7389 qa.la = function(a) {
7390 var b = new qa;
7391 b.Pd = a;
7392 return b
7393 };
7394 qa.ma = m;
7395 qa.prototype = C(m.prototype, {
7396 apply: function(a) {
7397 if (a.Lb(this.P, 8)) {
7398 var b = a.na(this.P);
7399 null == a.K && (a.S = this.Pd, null != a.Ii && a.Ii(b, this.Pd))
7400 }
7401 },
7402 ua: function(a) {
7403 var b = w.ha();
7404 this.Pd.ga(b);
7405 b = pako.deflateRaw(b.Sb());
7406 a.Ub(b.byteLength);
7407 a.Vb(b)
7408 },
7409 va: function(a) {
7410 a = pako.inflateRaw(a.sb(a.Ob()));
7411 this.Pd = h.ja(new F(new DataView(a.buffer, a.byteOffset, a.byteLength)))
7412 },
7413 f: qa
7414 });
7415 Pa.b = !0;
7416 Pa.ma = m;
7417 Pa.prototype = C(m.prototype, {
7418 apply: function(a) {
7419 a.Lb(this.P, 2) && this.ea != p.Ia && (a.kb[this.ea.$] = this.Sg)
7420 },
7421 ua: function(a) {
7422 a.l(this.ea.$);
7423 this.Sg.ga(a)
7424 },
7425 va: function(a) {
7426 var b = a.lf();
7427 this.ea = 1 == b ? p.fa : 2 == b ? p.xa : p.Ia;
7428 this.Sg = new ka;
7429 this.Sg.ja(a)
7430 },
7431 f: Pa
7432 });
7433 pa.b = !0;
7434 pa.la = function(a) {
7435 var b = new pa;
7436 b.newValue = a;
7437 return b
7438 };
7439 pa.ma = m;
7440 pa.prototype = C(m.prototype, {
7441 apply: function(a) {
7442 a.Lb(this.P, 2) && (a.Pc = this.newValue)
7443 },
7444 ua: function(a) {
7445 a.l(this.newValue ?
7446 1 : 0)
7447 },
7448 va: function(a) {
7449 this.newValue = 0 != a.B()
7450 },
7451 f: pa
7452 });
7453 oa.b = !0;
7454 oa.la = function(a, b, c, d) {
7455 var e = new oa;
7456 e.V = a;
7457 e.name = b;
7458 e.cj = c;
7459 e.Xb = d;
7460 return e
7461 };
7462 oa.ma = m;
7463 oa.prototype = C(m.prototype, {
7464 apply: function(a) {
7465 if (0 == this.P) {
7466 var b = new ea;
7467 b.V = this.V;
7468 b.w = this.name;
7469 b.Kd = this.cj;
7470 b.Xb = this.Xb;
7471 a.I.push(b);
7472 a = a.tl;
7473 null != a && a(b)
7474 }
7475 },
7476 ua: function(a) {
7477 a.O(this.V);
7478 a.Db(this.name);
7479 a.Db(this.cj);
7480 a.Db(this.Xb)
7481 },
7482 va: function(a) {
7483 this.V = a.M();
7484 this.name = a.zb();
7485 this.cj = a.zb();
7486 this.Xb = a.zb()
7487 },
7488 f: oa
7489 });
7490 qb.b = !0;
7491 qb.ma = m;
7492 qb.prototype = C(m.prototype, {
7493 apply: function(a) {
7494 a = a.na(this.ze);
7495 null != a && 0 == this.P && (a.Jd = this.Zb)
7496 },
7497 ua: function(a) {
7498 a.Db(this.Zb);
7499 a.O(this.ze)
7500 },
7501 va: function(a) {
7502 this.Zb = a.zb();
7503 this.ze = a.M();
7504 null != this.Zb && (this.Zb = U.Qc(this.Zb, 2))
7505 },
7506 f: qb
7507 });
7508 Oa.b = !0;
7509 Oa.ma = m;
7510 Oa.prototype = C(m.prototype, {
7511 apply: function(a) {
7512 var b = a.K;
7513 if (null != b && a.Lb(this.P, 16)) {
7514 var c = a.na(this.P),
7515 d = 120 == b.Oa,
7516 e = 0 < b.Oa;
7517 this.Bf ? b.Oa = 120 : 120 == b.Oa && (b.Oa = 119);
7518 d != this.Bf && Cb.i(a.ml, c, this.Bf, e)
7519 }
7520 },
7521 ua: function(a) {
7522 a.l(this.Bf ? 1 : 0)
7523 },
7524 va: function(a) {
7525 this.Bf = 0 != a.B()
7526 },
7527 f: Oa
7528 });
7529 Na.b = !0;
7530 Na.ma = m;
7531 Na.prototype = C(m.prototype, {
7532 $m: function(a) {
7533 if (null != a.hq) {
7534 var b = a.na(this.P);
7535 return null == b ? !1 : a.hq(b, this.Tc)
7536 }
7537 return !0
7538 },
7539 apply: function(a) {
7540 var b = a.na(this.P);
7541 null != b && ia.i(a.rl, b, this.Tc)
7542 },
7543 ua: function(a) {
7544 a.mc(U.Qc(this.Tc, 140))
7545 },
7546 va: function(a) {
7547 this.Tc = a.ic();
7548 if (140 < this.Tc.length) throw new q("message too long");
7549 },
7550 f: Na
7551 });
7552 Ga.b = !0;
7553 Ga.ma = m;
7554 Ga.prototype = C(m.prototype, {
7555 apply: function(a) {
7556 var b = a.na(this.P);
7557 if (null != b) {
7558 var c = this.input;
7559 0 == (b.ob & 16) && 0 != (c & 16) && (b.Wb = !0);
7560 b.ob = c;
7561 null != a.iq && a.iq(b)
7562 }
7563 },
7564 ua: function(a) {
7565 a.tb(this.input)
7566 },
7567 va: function(a) {
7568 this.input = a.hb()
7569 },
7570 f: Ga
7571 });
7572 na.b = !0;
7573 na.la = function(a) {
7574 var b = new na;
7575 b.sj = a;
7576 return b
7577 };
7578 na.ma = m;
7579 na.prototype = C(m.prototype, {
7580 apply: function(a) {
7581 var b = a.na(this.P);
7582 null != b && ia.i(a.wl, b, this.sj)
7583 },
7584 ua: function(a) {
7585 a.l(this.sj)
7586 },
7587 va: function(a) {
7588 this.sj = a.B()
7589 },
7590 f: na
7591 });
7592 kc.b = !0;
7593 kc.fj = function() {
7594 m.Ha(rb);
7595 m.Ha(na);
7596 m.Ha(Ua);
7597 m.Ha(Ga);
7598 m.Ha(Na);
7599 m.Ha(oa);
7600 m.Ha(Y);
7601 m.Ha(Ma);
7602 m.Ha(La);
7603 m.Ha(Oa);
7604 m.Ha(da);
7605 m.Ha(qa);
7606 m.Ha(S);
7607 m.Ha(pa);
7608 m.Ha(sa);
7609 m.Ha(Qa);
7610 m.Ha(ta);
7611 m.Ha(la);
7612 m.Ha(ra);
7613 m.Ha(Pa);
7614 m.Ha(pb);
7615 m.Ha(ma);
7616 m.Ha(qb);
7617 m.Ha(ob)
7618 };
7619 Y.b = !0;
7620 Y.la = function(a, b, c) {
7621 var d = new Y;
7622 d.V = a;
7623 d.fd = b;
7624 d.Qg = c;
7625 return d
7626 };
7627 Y.ma = m;
7628 Y.prototype = C(m.prototype, {
7629 apply: function(a) {
7630 if (0 != this.V && a.Lb(this.P, 128)) {
7631 var b = a.na(this.V);
7632 if (null != b) {
7633 var c = a.na(this.P);
7634 D.remove(a.I, b);
7635 null != a.K && D.remove(a.K.ta.F, b.H);
7636 vb.i(a.ul, b, this.fd, this.Qg, c)
7637 }
7638 }
7639 },
7640 ua: function(a) {
7641 null != this.fd && (this.fd = U.Qc(this.fd, 100));
7642 a.O(this.V);
7643 a.Db(this.fd);
7644 a.l(this.Qg ? 1 : 0)
7645 },
7646 va: function(a) {
7647 this.V = a.M();
7648 this.fd = a.zb();
7649 this.Qg = 0 != a.B();
7650 if (null != this.fd &&
7651 100 < this.fd.length) throw new q("string too long");
7652 },
7653 f: Y
7654 });
7655 pb.b = !0;
7656 pb.ma = m;
7657 pb.prototype = C(m.prototype, {
7658 apply: function(a) {
7659 if (0 == this.P) {
7660 for (var b = new Map, c = 0, d = a.I; c < d.length;) {
7661 var e = d[c];
7662 ++c;
7663 b.set(e.V, e)
7664 }
7665 c = [];
7666 d = 0;
7667 for (e = this.Zg; d < e.length;) {
7668 var f = e[d];
7669 ++d;
7670 var g = b.get(f);
7671 null != g && (b["delete"](f), c.push(g))
7672 }
7673 d = [];
7674 b = b.values();
7675 for (e = b.next(); !e.done;) f = e.value, e = b.next(), d.push(f);
7676 a.I = this.Zm ? c.concat(d) : d.concat(c)
7677 }
7678 },
7679 ua: function(a) {
7680 a.l(this.Zm ? 1 : 0);
7681 a.l(this.Zg.length);
7682 for (var b = 0, c = this.Zg; b < c.length;) a.O(c[b++])
7683 },
7684 va: function(a) {
7685 this.Zm = 0 != a.B();
7686 var b = a.B();
7687 this.Zg = [];
7688 for (var c = 0; c < b;) ++c, this.Zg.push(a.M())
7689 },
7690 f: pb
7691 });
7692 ob.b = !0;
7693 ob.ma = m;
7694 ob.prototype = C(m.prototype, {
7695 apply: function(a) {
7696 if (0 == this.P) {
7697 var b = a.K;
7698 if (null != b) {
7699 if (this.Sm) {
7700 a = a.na(this.ze);
7701 if (null == a) return;
7702 a = a.H
7703 } else a = b.ta.F[this.ze];
7704 null != a && (null != this.Ka[0] && (a.a.x = this.Ka[0]), null != this.Ka[1] && (a.a.y = this.Ka[1]), null != this.Ka[2] && (a.D.x = this.Ka[2]), null != this.Ka[3] && (a.D.y = this.Ka[3]), null != this.Ka[4] && (a.oa.x = this.Ka[4]), null != this.Ka[5] && (a.oa.y = this.Ka[5]),
7705 null != this.Ka[6] && (a.Z = this.Ka[6]), null != this.Ka[7] && (a.m = this.Ka[7]), null != this.Ka[8] && (a.aa = this.Ka[8]), null != this.Ka[9] && (a.Ca = this.Ka[9]), null != this.Rc[0] && (a.R = this.Rc[0]), null != this.Rc[1] && (a.h = this.Rc[1]), null != this.Rc[2] && (a.v = this.Rc[2]))
7706 }
7707 }
7708 },
7709 ua: function(a) {
7710 a.O(this.ze);
7711 a.l(this.Sm ? 1 : 0);
7712 var b = a.a;
7713 a.Ub(0);
7714 for (var c = 0, d = 1, e = 0, f = this.Ka; e < f.length;) {
7715 var g = f[e];
7716 ++e;
7717 null != g && (c |= d, a.Wi(g));
7718 d <<= 1
7719 }
7720 e = 0;
7721 for (f = this.Rc; e < f.length;) g = f[e], ++e, null != g && (c |= d, a.O(g)), d <<= 1;
7722 d = a.a;
7723 a.a = b;
7724 a.Ub(c);
7725 a.a = d
7726 },
7727 va: function(a) {
7728 this.ze =
7729 a.M();
7730 this.Sm = 0 != a.B();
7731 var b = a.Ob();
7732 this.Ka = [];
7733 for (var c = 0; 10 > c;) {
7734 var d = c++;
7735 this.Ka[d] = null;
7736 0 != (b & 1) && (this.Ka[d] = a.mi());
7737 b >>>= 1
7738 }
7739 this.Rc = [];
7740 for (c = 0; 3 > c;) d = c++, this.Rc[d] = null, 0 != (b & 1) && (this.Rc[d] = a.M()), b >>>= 1
7741 },
7742 f: ob
7743 });
7744 ma.b = !0;
7745 ma.la = function(a, b, c) {
7746 var d = new ma;
7747 d.min = a;
7748 d.nj = b;
7749 d.aj = c;
7750 return d
7751 };
7752 ma.ma = m;
7753 ma.prototype = C(m.prototype, {
7754 apply: function(a) {
7755 a.Lb(this.P, 2) && a.mr(a.na(this.P), this.min, this.nj, this.aj)
7756 },
7757 ua: function(a) {
7758 a.O(this.min);
7759 a.O(this.nj);
7760 a.O(this.aj)
7761 },
7762 va: function(a) {
7763 this.min = a.M();
7764 this.nj =
7765 a.M();
7766 this.aj = a.M()
7767 },
7768 f: ma
7769 });
7770 Ma.b = !0;
7771 Ma.ma = m;
7772 Ma.prototype = C(m.prototype, {
7773 apply: function(a) {
7774 a.Lb(this.P, 32) && a.yr(a.na(this.P), 0)
7775 },
7776 ua: function() {},
7777 va: function() {},
7778 f: Ma
7779 });
7780 La.b = !0;
7781 La.ma = m;
7782 La.prototype = C(m.prototype, {
7783 apply: function(a) {
7784 if (a.Lb(this.P, 32)) {
7785 var b = a.na(this.P);
7786 if (null != a.K) {
7787 a.K = null;
7788 for (var c = 0, d = a.I; c < d.length;) {
7789 var e = d[c];
7790 ++c;
7791 e.H = null;
7792 e.Jb = 0
7793 }
7794 null != a.vf && a.vf(b)
7795 }
7796 }
7797 },
7798 ua: function() {},
7799 va: function() {},
7800 f: La
7801 });
7802 la.b = !0;
7803 la.la = function(a) {
7804 for (var b = new la, c = a.T.I, d = [], e = 0; e < c.length;) {
7805 var f = a.Ie.get(c[e++].V);
7806 d.push(null == f ? 0 : f.yb)
7807 }
7808 b.we = d;
7809 return b
7810 };
7811 la.ma = m;
7812 la.prototype = C(m.prototype, {
7813 apply: function(a) {
7814 if (0 == this.P) {
7815 a = a.I;
7816 for (var b = 0, c = a.length; b < c;) {
7817 var d = b++;
7818 if (d >= this.we.length) break;
7819 a[d].yb = this.we[d]
7820 }
7821 }
7822 },
7823 ua: function(a) {
7824 a.lb(this.we.length);
7825 for (var b = 0, c = this.we; b < c.length;) a.lb(c[b++])
7826 },
7827 va: function(a) {
7828 this.we = [];
7829 for (var b = a.Ab(), c = 0; c < b;) ++c, this.we.push(a.Ab())
7830 },
7831 f: la
7832 });
7833 ca.b = !0;
7834 ca.Rd = [Ta];
7835 ca.qd = function(a, b) {
7836 a.Z = b.Z;
7837 a.m = b.m;
7838 a.aa = b.aa;
7839 a.Ca = b.Ca;
7840 a.R = b.R;
7841 a.Mj = b.Mj;
7842 a.h = b.h;
7843 a.v = b.v;
7844 var c = a.a,
7845 d = b.a;
7846 c.x = d.x;
7847 c.y = d.y;
7848 c = a.D;
7849 d = b.D;
7850 c.x = d.x;
7851 c.y = d.y;
7852 c = a.oa;
7853 d = b.oa;
7854 c.x = d.x;
7855 c.y = d.y
7856 };
7857 ca.prototype = {
7858 ga: function(a) {
7859 var b = this.a;
7860 a.s(b.x);
7861 a.s(b.y);
7862 b = this.D;
7863 a.s(b.x);
7864 a.s(b.y);
7865 b = this.oa;
7866 a.s(b.x);
7867 a.s(b.y);
7868 a.s(this.Z);
7869 a.s(this.m);
7870 a.s(this.aa);
7871 a.s(this.Ca);
7872 a.tb(this.R);
7873 a.O(this.h);
7874 a.O(this.v)
7875 },
7876 ja: function(a) {
7877 var b = this.a;
7878 b.x = a.u();
7879 b.y = a.u();
7880 b = this.D;
7881 b.x = a.u();
7882 b.y = a.u();
7883 b = this.oa;
7884 b.x = a.u();
7885 b.y = a.u();
7886 this.Z = a.u();
7887 this.m = a.u();
7888 this.aa = a.u();
7889 this.Ca = a.u();
7890 this.R = a.hb();
7891 this.h = a.M();
7892 this.v = a.M()
7893 },
7894 Pn: function(a) {
7895 var b = this.a,
7896 c =
7897 a.a,
7898 d = b.x - c.x,
7899 b = b.y - c.y,
7900 e = a.Z + this.Z,
7901 f = d * d + b * b;
7902 if (0 < f && f <= e * e) {
7903 var f = Math.sqrt(f),
7904 d = d / f,
7905 b = b / f,
7906 c = this.aa / (this.aa + a.aa),
7907 e = e - f,
7908 f = e * c,
7909 g = this.a,
7910 k = this.a;
7911 g.x = k.x + d * f;
7912 g.y = k.y + b * f;
7913 k = g = a.a;
7914 e -= f;
7915 g.x = k.x - d * e;
7916 g.y = k.y - b * e;
7917 e = this.D;
7918 f = a.D;
7919 e = d * (e.x - f.x) + b * (e.y - f.y);
7920 0 > e && (e *= this.m * a.m + 1, c *= e, g = f = this.D, f.x = g.x - d * c, f.y = g.y - b * c, a = f = a.D, c = e - c, f.x = a.x + d * c, f.y = a.y + b * c)
7921 }
7922 },
7923 Qn: function(a) {
7924 var b, c, d;
7925 if (0 != 0 * a.vb) {
7926 b = a.W.a;
7927 var e = a.ca.a;
7928 c = e.x - b.x;
7929 var f = e.y - b.y,
7930 g = this.a;
7931 d = g.x - e.x;
7932 e = g.y - e.y;
7933 g = this.a;
7934 if (0 >= (g.x - b.x) * c + (g.y - b.y) *
7935 f || 0 <= d * c + e * f) return;
7936 c = a.wa;
7937 b = c.x;
7938 c = c.y;
7939 d = b * d + c * e
7940 } else {
7941 c = a.Xd;
7942 d = this.a;
7943 b = d.x - c.x;
7944 c = d.y - c.y;
7945 d = a.Hg;
7946 e = a.Ig;
7947 if ((0 < d.x * b + d.y * c && 0 < e.x * b + e.y * c) == 0 >= a.vb) return;
7948 e = Math.sqrt(b * b + c * c);
7949 if (0 == e) return;
7950 d = e - a.Yj;
7951 b /= e;
7952 c /= e
7953 }
7954 e = a.Cc;
7955 if (0 == e) 0 > d && (d = -d, b = -b, c = -c);
7956 else if (0 > e && (e = -e, d = -d, b = -b, c = -c), d < -e) return;
7957 d >= this.Z || (d = this.Z - d, f = e = this.a, e.x = f.x + b * d, e.y = f.y + c * d, d = this.D, d = b * d.x + c * d.y, 0 > d && (d *= this.m * a.m + 1, e = a = this.D, a.x = e.x - b * d, a.y = e.y - c * d))
7958 },
7959 sc: function() {
7960 var a = ya.zc,
7961 b = this.gc;
7962 this.hc != a && (null == b && (this.gc =
7963 b = new ca), this.hc = a, ca.qd(b, this));
7964 return b
7965 },
7966 f: ca
7967 };
7968 nb.b = !0;
7969 nb.Rd = [Ta];
7970 nb.prototype = {
7971 ga: function(a) {
7972 a.l(this.Yd);
7973 a.l(this.Zd);
7974 a.s(this.Hb);
7975 a.s(this.ec);
7976 a.s(this.ne);
7977 a.O(this.R)
7978 },
7979 ja: function(a) {
7980 this.Yd = a.B();
7981 this.Zd = a.B();
7982 this.Hb = a.u();
7983 this.ec = a.u();
7984 this.ne = a.u();
7985 this.R = a.M()
7986 },
7987 C: function(a) {
7988 var b = a[this.Yd];
7989 a = a[this.Zd];
7990 if (null != b && null != a) {
7991 var c = b.a,
7992 d = a.a,
7993 e = c.x - d.x,
7994 c = c.y - d.y,
7995 f = Math.sqrt(e * e + c * c);
7996 if (!(0 >= f)) {
7997 e /= f;
7998 c /= f;
7999 d = b.aa / (b.aa + a.aa);
8000 d != d && (d = .5);
8001 var g, k;
8002 if (this.Hb >= this.ec) g = this.Hb, k = 0;
8003 else if (f <=
8004 this.Hb) g = this.Hb, k = 1;
8005 else if (f >= this.ec) g = this.ec, k = -1;
8006 else return;
8007 f = g - f;
8008 if (0 == 0 * this.ne) d = this.ne * f * .5, e *= d, c *= d, k = d = b.D, b = b.aa, d.x = k.x + e * b, d.y = k.y + c * b, d = b = a.D, a = a.aa, b.x = d.x + -e * a, b.y = d.y + -c * a;
8009 else {
8010 g = f * d;
8011 var l = b.a,
8012 h = b.a;
8013 l.x = h.x + e * g * .5;
8014 l.y = h.y + c * g * .5;
8015 h = l = a.a;
8016 f -= g;
8017 l.x = h.x - e * f * .5;
8018 l.y = h.y - c * f * .5;
8019 f = b.D;
8020 g = a.D;
8021 f = e * (f.x - g.x) + c * (f.y - g.y);
8022 0 >= f * k && (d *= f, b = k = b.D, k.x = b.x - e * d, k.y = b.y - c * d, a = b = a.D, d = f - d, b.x = a.x + e * d, b.y = a.y + c * d)
8023 }
8024 }
8025 }
8026 },
8027 f: nb
8028 };
8029 Fa.b = !0;
8030 Fa.Rd = [Ta];
8031 Fa.qd = function(a, b) {
8032 if (null == b.F) a.F = null;
8033 else {
8034 null == a.F &&
8035 (a.F = []);
8036 for (var c = a.F, d = b.F, e = d.length; c.length > e;) c.pop();
8037 for (var e = 0, f = d.length; e < f;) {
8038 var g = e++;
8039 c[g] = d[g].sc()
8040 }
8041 }
8042 a.J = b.J;
8043 a.U = b.U;
8044 a.qa = b.qa;
8045 a.pb = b.pb
8046 };
8047 Fa.prototype = {
8048 ga: function(a) {
8049 a.l(this.F.length);
8050 for (var b = 0, c = this.F.length; b < c;) {
8051 var d = b++,
8052 e = this.F[d];
8053 e.jl = d;
8054 e.ga(a)
8055 }
8056 },
8057 ja: function(a) {
8058 this.F = [];
8059 for (var b = a.B(), c = 0; c < b;) {
8060 ++c;
8061 var d = new ca;
8062 d.ja(a);
8063 this.F.push(d)
8064 }
8065 },
8066 C: function(a) {
8067 for (var b = 0, c = this.F; b < c.length;) {
8068 var d = c[b];
8069 ++b;
8070 var e = d.a,
8071 f = d.a,
8072 g = d.D;
8073 e.x = f.x + g.x * a;
8074 e.y = f.y + g.y * a;
8075 f = e = d.D;
8076 g = d.oa;
8077 d = d.Ca;
8078 e.x = (f.x + g.x) * d;
8079 e.y = (f.y + g.y) * d
8080 }
8081 a = 0;
8082 for (b = this.F.length; a < b;) {
8083 d = a++;
8084 c = this.F[d];
8085 d += 1;
8086 for (e = this.F.length; d < e;) f = this.F[d++], 0 != (f.h & c.v) && 0 != (f.v & c.h) && c.Pn(f);
8087 if (0 != c.aa) {
8088 d = 0;
8089 for (e = this.qa; d < e.length;)
8090 if (f = e[d], ++d, 0 != (f.h & c.v) && 0 != (f.v & c.h)) {
8091 var g = f.wa,
8092 k = c.a,
8093 g = f.Ua - (g.x * k.x + g.y * k.y) + c.Z;
8094 if (0 < g) {
8095 var l = k = c.a,
8096 h = f.wa;
8097 k.x = l.x + h.x * g;
8098 k.y = l.y + h.y * g;
8099 g = c.D;
8100 k = f.wa;
8101 g = g.x * k.x + g.y * k.y;
8102 0 > g && (g *= c.m * f.m + 1, l = k = c.D, f = f.wa, k.x = l.x - f.x * g, k.y = l.y - f.y * g)
8103 }
8104 } d = 0;
8105 for (e = this.U; d < e.length;) f = e[d], ++d, 0 != (f.h & c.v) && 0 != (f.v &
8106 c.h) && c.Qn(f);
8107 d = 0;
8108 for (e = this.J; d < e.length;)
8109 if (f = e[d], ++d, 0 != (f.h & c.v) && 0 != (f.v & c.h) && (k = c.a, l = f.a, g = k.x - l.x, k = k.y - l.y, l = g * g + k * k, 0 < l && l <= c.Z * c.Z)) {
8110 var l = Math.sqrt(l),
8111 g = g / l,
8112 k = k / l,
8113 l = c.Z - l,
8114 m = h = c.a;
8115 h.x = m.x + g * l;
8116 h.y = m.y + k * l;
8117 l = c.D;
8118 l = g * l.x + k * l.y;
8119 0 > l && (l *= c.m * f.m + 1, h = f = c.D, f.x = h.x - g * l, f.y = h.y - k * l)
8120 }
8121 }
8122 }
8123 for (a = 0; 2 > a;)
8124 for (++a, b = 0, c = this.pb; b < c.length;) c[b++].C(this.F)
8125 },
8126 sc: function() {
8127 var a = ya.zc,
8128 b = this.gc;
8129 this.hc != a && (null == b && (this.gc = b = new Fa), this.hc = a, Fa.qd(b, this));
8130 return b
8131 },
8132 f: Fa
8133 };
8134 L.b = !0;
8135 L.prototype = {
8136 ga: function(a) {
8137 var b =
8138 this.wa;
8139 a.s(b.x);
8140 a.s(b.y);
8141 a.s(this.Ua);
8142 a.s(this.m);
8143 a.O(this.h);
8144 a.O(this.v)
8145 },
8146 ja: function(a) {
8147 var b = this.wa;
8148 b.x = a.u();
8149 b.y = a.u();
8150 this.Ua = a.u();
8151 this.m = a.u();
8152 this.h = a.M();
8153 this.v = a.M()
8154 },
8155 f: L
8156 };
8157 E.b = !0;
8158 E.prototype = {
8159 ga: function(a) {
8160 var b = 0,
8161 c = a.a;
8162 a.l(0);
8163 a.l(this.W.ud);
8164 a.l(this.ca.ud);
8165 0 != this.Cc && (b = 1, a.s(this.Cc));
8166 this.vb != 1 / 0 && (b |= 2, a.s(this.vb));
8167 0 != this.R && (b |= 4, a.O(this.R));
8168 this.Za && (b |= 8);
8169 a.o.setUint8(c, b);
8170 a.s(this.m);
8171 a.O(this.h);
8172 a.O(this.v)
8173 },
8174 ja: function(a, b) {
8175 var c = a.B();
8176 this.W = b[a.B()];
8177 this.ca = b[a.B()];
8178 this.Cc =
8179 0 != (c & 1) ? a.u() : 0;
8180 this.vb = 0 != (c & 2) ? a.u() : 1 / 0;
8181 this.R = 0 != (c & 4) ? a.M() : 0;
8182 this.Za = 0 != (c & 8);
8183 this.m = a.u();
8184 this.h = a.M();
8185 this.v = a.M()
8186 },
8187 Oc: function(a) {
8188 a *= .017453292519943295;
8189 if (0 > a) {
8190 a = -a;
8191 var b = this.W;
8192 this.W = this.ca;
8193 this.ca = b;
8194 this.Cc = -this.Cc
8195 }
8196 a > E.mn && a < E.ln && (this.vb = 1 / Math.tan(a / 2))
8197 },
8198 Co: function() {
8199 return 0 != 0 * this.vb ? 0 : 114.59155902616465 * Math.atan(1 / this.vb)
8200 },
8201 he: function() {
8202 if (0 == 0 * this.vb) {
8203 var a = this.ca.a,
8204 b = this.W.a,
8205 c = .5 * (a.x - b.x),
8206 a = .5 * (a.y - b.y),
8207 b = this.W.a,
8208 d = this.vb;
8209 this.Xd = new H(b.x + c + -a * d, b.y + a + c * d);
8210 a = this.W.a;
8211 b = this.Xd;
8212 c = a.x - b.x;
8213 a = a.y - b.y;
8214 this.Yj = Math.sqrt(c * c + a * a);
8215 c = this.W.a;
8216 a = this.Xd;
8217 this.Hg = new H(-(c.y - a.y), c.x - a.x);
8218 c = this.Xd;
8219 a = this.ca.a;
8220 this.Ig = new H(-(c.y - a.y), c.x - a.x);
8221 0 >= this.vb && (a = c = this.Hg, c.x = -a.x, c.y = -a.y, a = c = this.Ig, c.x = -a.x, c.y = -a.y)
8222 } else a = this.W.a, b = this.ca.a, c = a.x - b.x, a = -(a.y - b.y), b = Math.sqrt(a * a + c * c), this.wa = new H(a / b, c / b)
8223 },
8224 f: E
8225 };
8226 B.b = !0;
8227 B.prototype = {
8228 ga: function(a) {
8229 var b = this.a;
8230 a.s(b.x);
8231 a.s(b.y);
8232 a.s(this.m);
8233 a.O(this.h);
8234 a.O(this.v)
8235 },
8236 ja: function(a) {
8237 var b = this.a;
8238 b.x = a.u();
8239 b.y = a.u();
8240 this.m =
8241 a.u();
8242 this.h = a.M();
8243 this.v = a.M()
8244 },
8245 f: B
8246 };
8247 N.b = !0;
8248 N.lc = function(a) {
8249 return "rgba(" + [(a & 16711680) >>> 16, (a & 65280) >>> 8, a & 255].join() + ",255)"
8250 };
8251 N.Gi = function(a, b) {
8252 a.imageSmoothingEnabled = b;
8253 a.mozImageSmoothingEnabled = b
8254 };
8255 N.prototype = {
8256 Po: function(a, b) {
8257 var c = this.dd.get(a.V);
8258 if (null != c) switch (b) {
8259 case 0:
8260 c.Xf = !0;
8261 break;
8262 case 1:
8263 c.Xf = !1
8264 }
8265 },
8266 Pr: function() {
8267 if (null != this.sa.parentElement) {
8268 var a = window.devicePixelRatio * this.zg,
8269 b = this.sa.getBoundingClientRect(),
8270 c = Math.round(b.width * a),
8271 a = Math.round(b.height * a);
8272 if (this.sa.width !=
8273 c || this.sa.height != a) this.sa.width = c, this.sa.height = a
8274 }
8275 },
8276 Kc: function(a, b) {
8277 var c = window.performance.now(),
8278 d = (c - this.$c) / 1E3;
8279 this.$c = c;
8280 this.Jg.clear();
8281 this.Pr();
8282 N.Gi(this.c, !0);
8283 this.c.resetTransform();
8284 if (null != a.K) {
8285 var c = a.K,
8286 e = c.ta,
8287 f = a.na(b),
8288 g = null != f ? f.H : null,
8289 k = 0 != this.jf ? this.sa.height / this.jf : this.kf * window.devicePixelRatio * this.zg,
8290 h = this.xf * this.zg,
8291 m = c.S.Ye,
8292 n = this.sa.width / k;
8293 0 < m && n > m && (n = m, k = this.sa.width / m);
8294 m = (this.sa.height - h) / k;
8295 this.Mr(c, g, n, m, d);
8296 for (var p = 0, q = a.I; p < q.length;) {
8297 var r = q[p];
8298 ++p;
8299 if (null != r.H) {
8300 var u = this.dd.get(r.V);
8301 null == u && (u = new Ea, this.dd.set(r.V, u));
8302 u.C(r, a);
8303 this.Jg.set(r.H, u)
8304 }
8305 }
8306 this.c.translate(this.sa.width / 2, (this.sa.height + h) / 2);
8307 this.c.scale(k, k);
8308 this.c.translate(-this.Ya.x, -this.Ya.y);
8309 this.c.lineWidth = 3;
8310 this.Sq(c.S);
8311 this.Rq(c.S);
8312 k = e.F;
8313 h = 0;
8314 for (p = e.pb; h < p.length;) this.Mq(p[h++], k);
8315 this.Lq(a, n, m);
8316 this.Nq(a, f);
8317 null != g && this.Pq(g.a);
8318 this.c.lineWidth = 2;
8319 f = 0;
8320 for (g = a.I; f < g.length;) n = g[f], ++f, m = n.H, null != m && this.Ll(m, this.dd.get(n.V));
8321 f = 0;
8322 for (e = e.F; f < e.length;) g = e[f], ++f, null ==
8323 this.Jg.get(g) && this.Ll(g, null);
8324 this.c.lineWidth = 3;
8325 this.c.resetTransform();
8326 this.c.translate(this.sa.width / 2, this.sa.height / 2);
8327 this.Oq(c);
8328 0 >= c.Oa && (this.td.C(d), this.td.Kc(this.c));
8329 this.Jg.clear();
8330 this.Kq(a)
8331 }
8332 },
8333 Kq: function(a) {
8334 var b = new Set,
8335 c = 0;
8336 for (a = a.I; c < a.length;) b.add(a[c++].V);
8337 c = this.dd.keys();
8338 for (a = c.next(); !a.done;) {
8339 var d = a.value;
8340 a = c.next();
8341 if (!b.has(d)) this.dd["delete"](d)
8342 }
8343 },
8344 Mr: function(a, b, c, d, e) {
8345 var f, g;
8346 if (null != b && 1 == a.S.Ge) g = b.a, f = g.x, g = g.y;
8347 else if (g = a.ta.F[0].a, f = g.x, g = g.y, null != b) {
8348 var k =
8349 b.a;
8350 f = .5 * (f + k.x);
8351 g = .5 * (g + k.y);
8352 var h = .5 * c,
8353 m = .5 * d;
8354 b = k.x - h + 50;
8355 var n = k.y - m + 50,
8356 h = k.x + h - 50,
8357 k = k.y + m - 50;
8358 f = f > h ? h : f < b ? b : f;
8359 g = g > k ? k : g < n ? n : g
8360 }
8361 n = 60 * e;
8362 1 < n && (n = 1);
8363 b = e = this.Ya;
8364 n *= .04;
8365 h = b.x;
8366 b = b.y;
8367 e.x = h + (f - h) * n;
8368 e.y = b + (g - b) * n;
8369 this.Xn(c, d, a.S)
8370 },
8371 Xn: function(a, b, c) {
8372 a > 2 * c.$b ? this.Ya.x = 0 : this.Ya.x + .5 * a > c.$b ? this.Ya.x = c.$b - .5 * a : this.Ya.x - .5 * a < -c.$b && (this.Ya.x = -c.$b + .5 * a);
8373 b > 2 * c.qc ? this.Ya.y = 0 : this.Ya.y + .5 * b > c.qc ? this.Ya.y = c.qc - .5 * b : this.Ya.y - .5 * b < -c.qc && (this.Ya.y = -c.qc + .5 * b)
8374 },
8375 Pq: function(a) {
8376 this.c.beginPath();
8377 this.c.strokeStyle =
8378 "white";
8379 this.c.globalAlpha = .3;
8380 this.c.arc(a.x, a.y, 25, 0, 2 * Math.PI, !1);
8381 this.c.stroke();
8382 this.c.globalAlpha = 1
8383 },
8384 Oq: function(a) {
8385 var b = 0 < a.Oa;
8386 this.lr(b);
8387 b && (120 != a.Oa && (a = a.Oa / 120 * 200, this.c.fillStyle = "white", this.c.fillRect(.5 * -a, 100, a, 20)), this.td.eq.Tq(this.c))
8388 },
8389 lr: function(a) {
8390 this.Dk != a && (this.sa.style.filter = a ? "grayscale(70%)" : "", this.Dk = a)
8391 },
8392 Wl: function(a, b, c, d, e, f) {
8393 d = b + d;
8394 e = c + e;
8395 a.beginPath();
8396 a.moveTo(d - f, c);
8397 a.arcTo(d, c, d, c + f, f);
8398 a.lineTo(d, e - f);
8399 a.arcTo(d, e, d - f, e, f);
8400 a.lineTo(b + f, e);
8401 a.arcTo(b, e, b, e - f, f);
8402 a.lineTo(b, c + f);
8403 a.arcTo(b, c, b + f, c, f);
8404 a.closePath()
8405 },
8406 Sq: function(a) {
8407 var b = this;
8408 N.Gi(this.c, !1);
8409 var c = a.Td,
8410 d = a.Sd;
8411 if (1 == a.ld) this.c.save(), this.c.resetTransform(), this.c.fillStyle = N.lc(a.jd), this.c.fillRect(0, 0, this.sa.width, this.sa.height), this.c.restore(), this.c.strokeStyle = "#C7E6BD", this.c.fillStyle = this.Lo, this.Wl(this.c, -c, -d, 2 * c, 2 * d, a.Uc), this.c.save(), this.c.scale(2, 2), this.c.fill(), this.c.restore(), this.c.moveTo(0, -d), this.c.lineTo(0, d), this.c.stroke(), this.c.beginPath(), this.c.arc(0, 0, a.kd,
8412 0, 2 * Math.PI), this.c.stroke();
8413 else if (2 == a.ld) {
8414 this.c.strokeStyle = "#E9CC6E";
8415 this.c.save();
8416 this.c.beginPath();
8417 this.c.rect(this.Ya.x - 1E4, this.Ya.y - 1E4, 2E4, 2E4);
8418 this.c.scale(2, 2);
8419 this.c.fillStyle = this.Un;
8420 this.c.fill();
8421 this.c.restore();
8422 this.c.save();
8423 this.Wl(this.c, -c, -d, 2 * c, 2 * d, a.Uc);
8424 this.c.scale(2, 2);
8425 this.c.fillStyle = this.Wn;
8426 this.c.fill();
8427 this.c.restore();
8428 this.c.stroke();
8429 this.c.beginPath();
8430 this.c.moveTo(0, -d);
8431 this.c.setLineDash([15, 15]);
8432 this.c.lineTo(0, d);
8433 this.c.stroke();
8434 this.c.setLineDash([]);
8435 var e =
8436 a.Fe,
8437 c = c - e;
8438 e < a.Uc && (c = 0);
8439 e = function(c, e, h) {
8440 b.c.beginPath();
8441 b.c.strokeStyle = c;
8442 b.c.arc(0, 0, a.kd, -1.5707963267948966, 1.5707963267948966, h);
8443 0 != e && (b.c.moveTo(e, -d), b.c.lineTo(e, d));
8444 b.c.stroke()
8445 };
8446 e("#85ACF3", c, !1);
8447 e("#E18977", -c, !0)
8448 } else this.c.save(), this.c.resetTransform(), this.c.fillStyle = N.lc(a.jd), this.c.fillRect(0, 0, this.sa.width, this.sa.height), this.c.restore();
8449 N.Gi(this.c, !0)
8450 },
8451 Nq: function(a, b) {
8452 for (var c = n.A.Ak.L(), d = 0, e = a.I; d < e.length;) {
8453 var f = e[d];
8454 ++d;
8455 var g = f.H;
8456 if (null != g) {
8457 var g = g.a,
8458 h = this.dd.get(f.V);
8459 c && h.Xf && this.c.drawImage(n.Dm, g.x - .5 * n.Dm.width, g.y - 35);
8460 f != b && h.so(this.c, g.x, g.y + 50)
8461 }
8462 }
8463 },
8464 Ll: function(a, b) {
8465 this.c.beginPath();
8466 null == b ? (this.c.fillStyle = N.lc(a.R), this.c.strokeStyle = "black") : (this.c.fillStyle = b.Ij, this.c.strokeStyle = b.lo);
8467 this.c.beginPath();
8468 this.c.arc(a.a.x, a.a.y, a.Z, 0, 2 * Math.PI, !1);
8469 if (null != b) {
8470 this.c.save();
8471 var c = a.Z / 32;
8472 this.c.translate(a.a.x, a.a.y);
8473 this.c.scale(c, c);
8474 this.c.translate(-32, -32);
8475 this.c.fill();
8476 this.c.restore()
8477 } else -1 != (a.R | 0) && this.c.fill();
8478 this.c.stroke()
8479 },
8480 Rq: function(a) {
8481 if (null !=
8482 a) {
8483 var b = 0;
8484 for (a = a.U; b < a.length;) this.Qq(a[b++])
8485 }
8486 },
8487 Mq: function(a, b) {
8488 if (!(0 > a.R)) {
8489 this.c.beginPath();
8490 this.c.strokeStyle = N.lc(a.R);
8491 var c = b[a.Yd],
8492 d = b[a.Zd];
8493 null != c && null != d && (c = c.a, d = d.a, this.c.moveTo(c.x, c.y), this.c.lineTo(d.x, d.y), this.c.stroke())
8494 }
8495 },
8496 Qq: function(a) {
8497 if (a.Za) {
8498 this.c.beginPath();
8499 this.c.strokeStyle = N.lc(a.R);
8500 var b = a.W.a,
8501 c = a.ca.a;
8502 if (0 != 0 * a.vb) this.c.moveTo(b.x, b.y), this.c.lineTo(c.x, c.y);
8503 else {
8504 a = a.Xd;
8505 var d = b.x - a.x,
8506 b = b.y - a.y;
8507 this.c.arc(a.x, a.y, Math.sqrt(d * d + b * b), Math.atan2(b, d), Math.atan2(c.y -
8508 a.y, c.x - a.x))
8509 }
8510 this.c.stroke()
8511 }
8512 },
8513 Lq: function(a, b, c) {
8514 var d = a.K;
8515 if (null != d)
8516 for (d = d.ta.F[0], this.nk(d.a, d.R, b, c), d = 0, a = a.I; d < a.length;) {
8517 var e = a[d];
8518 ++d;
8519 null != e.H && this.nk(e.H.a, e.ea.R, b, c)
8520 }
8521 },
8522 nk: function(a, b, c, d) {
8523 c = .5 * c - 25;
8524 d = .5 * d - 25;
8525 var e = this.Ya,
8526 f = a.x - e.x,
8527 e = a.y - e.y,
8528 g = -c,
8529 h = -d,
8530 l = this.Ya;
8531 c = l.x + (f > c ? c : f < g ? g : f);
8532 d = l.y + (e > d ? d : e < h ? h : e);
8533 f = a.x - c;
8534 a = a.y - d;
8535 900 < f * f + a * a && (this.c.fillStyle = "rgba(0,0,0,0.5)", this.pk(c + 2, d + 2, Math.atan2(a, f)), this.c.fillStyle = N.lc(b), this.pk(c - 2, d - 2, Math.atan2(a, f)))
8536 },
8537 pk: function(a, b, c) {
8538 this.c.save();
8539 this.c.translate(a, b);
8540 this.c.rotate(c);
8541 this.c.beginPath();
8542 this.c.moveTo(15, 0);
8543 this.c.lineTo(0, 7);
8544 this.c.lineTo(0, -7);
8545 this.c.closePath();
8546 this.c.fill();
8547 this.c.restore()
8548 },
8549 Xq: function() {
8550 for (var a = this.dd.values(), b = a.next(); !b.done;) {
8551 var c = b.value,
8552 b = a.next();
8553 c.Xf = !1
8554 }
8555 },
8556 f: N
8557 };
8558 R.b = !0;
8559 R.prototype = {
8560 zo: function() {
8561 return 2.31 + .1155 * (this.We.length - 1)
8562 },
8563 Kc: function(a, b) {
8564 var c = b / 2.31,
8565 d = 0;
8566 a.imageSmoothingEnabled = !0;
8567 for (var e = 0, f = this.We; e < f.length;) {
8568 var g = f[e];
8569 ++e;
8570 var h = c - .05 * d,
8571 l = 180 * R.kn.eval(h) * (0 != (d & 1) ? -1 : 1);
8572 a.globalAlpha = R.jn.eval(h);
8573 a.drawImage(g, l - .5 * g.width, 35 * -(this.We.length - 1) + 70 * d - .5 * g.height);
8574 a.globalAlpha = 1;
8575 ++d
8576 }
8577 a.imageSmoothingEnabled = !1
8578 },
8579 Tq: function(a) {
8580 var b = 0;
8581 a.imageSmoothingEnabled = !0;
8582 for (var c = 0, d = this.We; c < d.length;) {
8583 var e = d[c];
8584 ++c;
8585 a.drawImage(e, .5 * -e.width, 35 * -(this.We.length - 1) + 70 * b - .5 * e.height);
8586 ++b
8587 }
8588 a.imageSmoothingEnabled = !1
8589 },
8590 lc: function(a) {
8591 return "rgba(" + [(a & 16711680) >>> 16, (a & 65280) >>> 8, a & 255].join() + ",255)"
8592 },
8593 sp: function(a, b) {
8594 var c = window.document.createElement("canvas"),
8595 d = c.getContext("2d",
8596 null);
8597 d.font = "900 70px Arial Black,Arial Bold,Gadget,sans-serif";
8598 c.width = Math.ceil(d.measureText(a).width) + 7;
8599 c.height = 90;
8600 d.font = "900 70px Arial Black,Arial Bold,Gadget,sans-serif";
8601 d.textAlign = "left";
8602 d.textBaseline = "middle";
8603 d.fillStyle = "black";
8604 d.fillText(a, 7, 52);
8605 d.fillStyle = this.lc(b);
8606 d.fillText(a, 0, 45);
8607 return c
8608 },
8609 f: R
8610 };
8611 Sb.b = !0;
8612 Sb.prototype = {
8613 Pa: function(a) {
8614 this.ab.push(a)
8615 },
8616 Nn: function() {
8617 this.ab = [];
8618 this.xc = 0
8619 },
8620 C: function(a) {
8621 0 < this.ab.length && (this.xc += a, this.xc > this.ab[0].zo() && (this.xc = 0, this.ab.shift()))
8622 },
8623 Kc: function(a) {
8624 0 < this.ab.length && this.ab[0].Kc(a, this.xc)
8625 },
8626 f: Sb
8627 };
8628 Ea.b = !0;
8629 Ea.Ln = function(a, b) {
8630 if (a.hd != b.hd || a.ed != b.ed) return !1;
8631 var c = a.fb,
8632 d = b.fb;
8633 if (c.length != d.length) return !1;
8634 for (var e = 0, f = c.length; e < f;) {
8635 var g = e++;
8636 if (c[g] != d[g]) return !1
8637 }
8638 return !0
8639 };
8640 Ea.ao = function(a, b) {
8641 a.hd = b.hd;
8642 a.ed = b.ed;
8643 a.fb = b.fb.slice(0)
8644 };
8645 Ea.prototype = {
8646 fo: function() {
8647 var a = window.document.createElement("canvas");
8648 a.width = 160;
8649 a.height = 34;
8650 this.vl = a.getContext("2d", null)
8651 },
8652 Or: function() {
8653 var a = this.vl;
8654 a.resetTransform();
8655 a.clearRect(0,
8656 0, 160, 34);
8657 a.font = "26px sans-serif";
8658 a.fillStyle = "white";
8659 160 < a.measureText(this.w).width ? (a.textAlign = "left", a.translate(2, 29)) : (a.textAlign = "center", a.translate(80, 29));
8660 a.fillText(this.w, 0, 0)
8661 },
8662 so: function(a, b, c) {
8663 a.drawImage(this.vl.canvas, 0, 0, 160, 34, b - 40, c - 34, 80, 17)
8664 },
8665 C: function(a, b) {
8666 if (null != a.H) {
8667 var c = n.A.xm.L() ? b.kb[a.ea.$] : a.ea.wm,
8668 d = null != a.Jd ? a.Jd : a.Xb,
8669 e = n.A.lm.L() && null != d;
8670 if (!Ea.Ln(this.kb, c) || !e && a.Jb != this.uh || e && this.Jf != d) Ea.ao(this.kb, c), e ? (this.Jf = d, this.uh = -1) : (this.Jf = "" + a.Jb, this.uh =
8671 a.Jb), this.Hq(this.Jf)
8672 }
8673 this.lo = 0 < b.K.Oa || !a.Wb ? "black" : a.Wb && 0 >= a.Sc && 0 <= a.yc ? "white" : "black";
8674 a.w != this.w && (this.w = a.w, this.Or())
8675 },
8676 Hq: function(a) {
8677 var b = this.kb.fb;
8678 if (!(1 > b.length)) {
8679 this.rb.save();
8680 this.rb.translate(32, 32);
8681 this.rb.rotate(3.141592653589793 * this.kb.hd / 128);
8682 for (var c = -32, d = 64 / b.length, e = 0; e < b.length;) this.rb.fillStyle = N.lc(b[e++]), this.rb.fillRect(c, -32, d + 4, 64), c += d;
8683 this.rb.restore();
8684 this.rb.fillStyle = N.lc(this.kb.ed);
8685 this.rb.textAlign = "center";
8686 this.rb.textBaseline = "alphabetic";
8687 this.rb.font =
8688 "900 34px 'Arial Black','Arial Bold',Gadget,sans-serif";
8689 this.rb.fillText(a, 32, 44);
8690 this.Ij = this.rb.createPattern(this.rb.canvas, "no-repeat")
8691 }
8692 },
8693 f: Ea
8694 };
8695 mb.b = !0;
8696 mb.prototype = {
8697 ki: function(a) {
8698 for (var b = this, c = 0, d = Ha.ab.length >> 2; c < d;) {
8699 var e = c++,
8700 f = [e],
8701 g = Ha.ab[e << 2],
8702 e = Ha.ab[(e << 2) + 1].toLowerCase(),
8703 h = [window.document.createElement("div")];
8704 h[0].className = "elem";
8705 h[0].innerHTML = '<div class="flagico f-' + e + '"></div> ' + g;
8706 a.appendChild(h[0]);
8707 h[0].onclick = function(a, c) {
8708 return function() {
8709 null != b.rf && b.rf.Ja.classList.remove("selected");
8710 b.wh.disabled = !1;
8711 b.rf = {
8712 Ja: a[0],
8713 index: c[0]
8714 };
8715 a[0].classList.add("selected")
8716 }
8717 }(h, f);
8718 h[0].ondblclick = function(a) {
8719 return function() {
8720 b.Zl(a[0])
8721 }
8722 }(f)
8723 }
8724 },
8725 Zl: function(a) {
8726 var b = new T;
8727 b.ub = Ha.ab[(a << 2) + 1].toLowerCase();
8728 b.Ec = Ha.ab[(a << 2) + 2];
8729 b.Gc = Ha.ab[(a << 2) + 3];
8730 n.A.Ne.Xa(b);
8731 A.i(this.qb)
8732 },
8733 f: mb
8734 };
8735 Da.b = !0;
8736 Da.Yo = function(a) {
8737 return a.parentElement.querySelector(":hover") == a
8738 };
8739 Da.prototype = {
8740 pp: function(a, b, c) {
8741 var d = window.document.createElement("p");
8742 d.className = "announcement";
8743 d.textContent = a;
8744 0 <= b && (d.style.color = N.lc(b));
8745 switch (c) {
8746 case 1:
8747 case 4:
8748 d.style.fontWeight = "bold";
8749 break;
8750 case 2:
8751 case 5:
8752 d.style.fontStyle = "italic"
8753 }
8754 switch (c) {
8755 case 3:
8756 case 4:
8757 case 5:
8758 d.style.fontSize = "12px"
8759 }
8760 this.Ok(d)
8761 },
8762 Ok: function(a) {
8763 var b = this.dc.clientHeight,
8764 b = this.dc.scrollTop + b - this.dc.scrollHeight >= .5 * -b || !Da.Yo(this.dc);
8765 this.dc.appendChild(a);
8766 b && (this.dc.scrollTop = a.offsetTop);
8767 for (a = b ? 50 : 100; this.dc.childElementCount > a;) this.dc.firstElementChild.remove();
8768 this.vg.update()
8769 },
8770 ba: function(a, b) {
8771 var c = window.document.createElement("p");
8772 null != b && (c.className =
8773 b);
8774 c.textContent = a;
8775 this.Ok(c)
8776 },
8777 Gb: function(a) {
8778 this.ba(a, "notice")
8779 },
8780 f: Da
8781 };
8782 lb.b = !0;
8783 lb.vo = function(a) {
8784 return -1 != ".$^{[(|)*+?\\".indexOf(a) ? "\\" + a : a
8785 };
8786 lb.prototype = {
8787 Qh: function() {
8788 this.Ui(null)
8789 },
8790 Hn: function(a, b) {
8791 var c = this.Iq.exec(D.substr(a, 0, b));
8792 if (null != c) {
8793 var d = c[0],
8794 e = new RegExp(D.substr(d, 1, null).split("").map(lb.vo).join(".*?"), "i");
8795 this.Ek = "#" == d.charAt(0);
8796 this.si = c.index;
8797 this.Vq = d.length;
8798 this.Ml = a;
8799 for (var c = function(a) {
8800 a = e.exec(a.w);
8801 return null == a ? -1 : a.index + a[0].length
8802 }, d = [], f = 0, g = this.Hj; f < g.length;) {
8803 var h =
8804 g[f];
8805 ++f;
8806 var l = c(h);
8807 0 <= l && d.push({
8808 dn: l,
8809 item: h
8810 })
8811 }
8812 d.sort(function(a, b) {
8813 return a.dn - b.dn
8814 });
8815 this.Ui(d)
8816 } else this.Ui(null)
8817 },
8818 lk: function(a) {
8819 a = this.Ek ? "#" + a.$ : "@" + J.replace(a.w, " ", "_");
8820 this.Rp(D.substr(this.Ml, 0, this.si) + a + " " + D.substr(this.Ml, this.si + this.Vq, null), this.si + a.length + 1)
8821 },
8822 Ui: function(a) {
8823 var b = this,
8824 c = null != a && 0 != a.length;
8825 this.Mb.hidden || v.Cf(this.Mb);
8826 this.Wc = null;
8827 this.Mb.hidden = !c;
8828 if (c) {
8829 for (var c = [], d = 0; d < a.length;) {
8830 var e = a[d++],
8831 f = window.document.createElement("div"),
8832 e = [e.item],
8833 g = e[0].w;
8834 this.Ek &&
8835 (g = "(" + e[0].$ + ") " + g);
8836 f.textContent = g;
8837 this.Mb.appendChild(f);
8838 f.onclick = function(a) {
8839 return function() {
8840 b.lk(a[0])
8841 }
8842 }(e);
8843 c.push({
8844 item: e[0],
8845 Ja: f
8846 })
8847 }
8848 this.Wc = c;
8849 this.Wc[0].Ja.classList.toggle("selected", !0);
8850 this.wc = 0
8851 }
8852 },
8853 Qj: function(a) {
8854 if (null != this.Wc) {
8855 var b = this.wc;
8856 this.wc += a;
8857 a = this.Wc.length - 1;
8858 0 > this.wc ? this.wc = a : this.wc > a && (this.wc = 0);
8859 a = this.Wc[this.wc];
8860 b != this.wc && (a.Ja.classList.toggle("selected", !0), this.Wc[b].Ja.classList.toggle("selected", !1));
8861 a = a.Ja;
8862 b = a.offsetTop;
8863 a = b + a.offsetHeight;
8864 var c = this.Mb.scrollTop +
8865 this.Mb.clientHeight;
8866 b < this.Mb.scrollTop ? this.Mb.scrollTop = b : a > c && (this.Mb.scrollTop = a - this.Mb.clientHeight)
8867 }
8868 },
8869 qo: function() {
8870 null != this.Wc && (this.lk(this.Wc[this.wc].item), this.Qh())
8871 },
8872 f: lb
8873 };
8874 kb.b = !0;
8875 kb.prototype = {
8876 Dc: function() {
8877 var a = this.Cb.value;
8878 return 25 >= a.length ? 0 < a.length : !1
8879 },
8880 C: function() {
8881 this.af.disabled = !this.Dc()
8882 },
8883 f: kb
8884 };
8885 jb.b = !0;
8886 jb.prototype = {
8887 ba: function(a) {
8888 var b = window.document.createElement("p");
8889 b.textContent = a;
8890 this.dc.appendChild(b)
8891 },
8892 f: jb
8893 };
8894 ib.b = !0;
8895 ib.prototype = {
8896 Fj: function(a) {
8897 this.Fm = a;
8898 this.Em.textContent =
8899 "Show in room list: " + (a ? "No" : "Yes")
8900 },
8901 Dc: function() {
8902 var a = this.$e.value;
8903 return 40 >= a.length ? 0 < a.length : !1
8904 },
8905 C: function() {
8906 this.Wj.disabled = !this.Dc()
8907 },
8908 f: ib
8909 };
8910 Ka.b = !0;
8911 Ka.prototype = {
8912 f: Ka
8913 };
8914 hb.b = !0;
8915 hb.prototype = {
8916 Gg: function(a) {
8917 this.g.classList.toggle("restricted", a)
8918 },
8919 C: function(a) {
8920 var b = a.K;
8921 null != b && (this.xc.tr(60 * a.Da), this.xc.sr(b.Hc | 0), this.Kb.set(b.Kb), this.Pb.set(b.Pb), this.Eb.Kc(a, this.Nb))
8922 },
8923 f: hb
8924 };
8925 Rb.b = !0;
8926 Rb.prototype = {
8927 Wd: function(a, b) {
8928 var c = window.document.createElement("span");
8929 c.textContent = a;
8930 c.className =
8931 b;
8932 return c
8933 },
8934 sr: function(a) {
8935 if (a != this.Ke) {
8936 var b = a % 60,
8937 c = a / 60 | 0;
8938 this.cr.textContent = "" + b % 10;
8939 this.dr.textContent = "" + (b / 10 | 0) % 10;
8940 this.yp.textContent = "" + c % 10;
8941 this.zp.textContent = "" + (c / 10 | 0) % 10;
8942 this.Ke = a
8943 }
8944 this.Jl();
8945 this.Kl()
8946 },
8947 tr: function(a) {
8948 this.Da = a;
8949 this.Jl();
8950 this.Kl()
8951 },
8952 Jl: function() {
8953 this.pr(0 != this.Da && this.Ke > this.Da)
8954 },
8955 Kl: function() {
8956 this.ur(this.Ke < this.Da && this.Ke > this.Da - 30)
8957 },
8958 pr: function(a) {
8959 a != this.hk && (this.bq.className = a ? "overtime on" : "overtime", this.hk = a)
8960 },
8961 ur: function(a) {
8962 a != this.ik && (this.g.className =
8963 a ? "game-timer-view time-warn" : "game-timer-view", this.ik = a)
8964 },
8965 f: Rb
8966 };
8967 ja.b = !0;
8968 ja.prototype = {
8969 C: function(a) {
8970 null == a.T.K && this.me(!0);
8971 A.i(this.yl);
8972 this.bi.disabled = null == a.T.K;
8973 this.Gd ? this.Wa.C(a.T, a.T.na(a.uc)) : (a = a.Sf(), this.Fb.C(a), n.Na.Xj.Ls(a))
8974 },
8975 me: function(a) {
8976 this.Gd != a && ((this.Gd = a) ? (this.Jh.appendChild(this.Wa.g), this.Fb.g.remove()) : (this.Jh.appendChild(this.Fb.g), this.Wa.g.remove()))
8977 },
8978 Zo: function() {
8979 return null != ja.kq
8980 },
8981 bb: function(a, b) {
8982 v.Cf(this.hf);
8983 ja.kq = a;
8984 null != a ? (this.hf.style.display = "flex",
8985 this.hf.appendChild(a), this.yl = b) : (this.hf.style.display = "none", this.yl = null)
8986 },
8987 f: ja
8988 };
8989 gb.b = !0;
8990 gb.prototype = {
8991 Aj: function(a) {
8992 this.Jj = a;
8993 this.An.textContent = a ? "Yes" : "No"
8994 },
8995 f: gb
8996 };
8997 fb.b = !0;
8998 fb.prototype = {
8999 f: fb
9000 };
9001 eb.b = !0;
9002 eb.prototype = {
9003 Lg: function() {
9004 this.hi.disabled = null == this.jb;
9005 this.bk.disabled = null == this.jb || null == this.jb.Lm;
9006 this.rk.disabled = null == this.jb
9007 },
9008 Sk: function(a, b, c) {
9009 var d = this,
9010 e = window.document.createElement("div");
9011 e.textContent = a;
9012 e.className = "elem";
9013 null != c && e.classList.add("custom");
9014 var f = {
9015 Ja: e,
9016 Pd: b,
9017 Lm: c
9018 };
9019 e.onclick = function() {
9020 null != d.jb && d.jb.Ja.classList.remove("selected");
9021 d.jb = f;
9022 e.classList.add("selected");
9023 d.Lg()
9024 };
9025 e.ondblclick = function() {
9026 d.jb = f;
9027 d.Lg();
9028 return d.hi.onclick()
9029 };
9030 return e
9031 },
9032 ki: function(a) {
9033 for (var b = this, c = h.Kh(), d = 0; d < c.length;) {
9034 var e = [c[d]];
9035 ++d;
9036 e = this.Sk(e[0].w, function(a) {
9037 return function() {
9038 return Promise.resolve(a[0])
9039 }
9040 }(e), null);
9041 a.appendChild(e)
9042 }
9043 Z.getAll().then(function(c) {
9044 for (var d = 0; d < c.length;) {
9045 var e = c[d];
9046 ++d;
9047 var f = [e.id],
9048 e = b.Sk(e.name, function(a) {
9049 return function() {
9050 return Z.get(a[0])
9051 }
9052 }(f),
9053 function(a) {
9054 return function() {
9055 return Z["delete"](a[0])
9056 }
9057 }(f));
9058 a.appendChild(e)
9059 }
9060 b.vg.update()
9061 })
9062 },
9063 f: eb
9064 };
9065 Qb.b = !0;
9066 Qb.prototype = {
9067 tn: function(a) {
9068 0 > a ? (a = 150, this.c.fillStyle = "#c13535") : this.c.fillStyle = "green";
9069 var b = this.Vi,
9070 c = this.yk,
9071 d = this.Ah++;
9072 this.Ah >= b && (this.Ah = 0);
9073 this.fq[d] = a;
9074 this.c.clearRect(d, 0, 1, c);
9075 a = a * c / this.vp;
9076 this.c.fillRect(d, c - a, 1, a);
9077 this.Eh.clearRect(0, 0, b, c);
9078 this.Eh.drawImage(this.sa, b - d - 1, 0);
9079 this.Eh.drawImage(this.sa, -d - 1, 0)
9080 },
9081 f: Qb
9082 };
9083 db.b = !0;
9084 db.prototype = {
9085 C: function(a, b) {
9086 var c = a.na(this.Nb);
9087 null == c ? A.i(this.qb) : (this.Nr(c), this.Hf.disabled = !b || 0 == this.Nb, this.Qe.disabled = !b || 0 == this.Nb)
9088 },
9089 Nr: function(a) {
9090 this.fe != a.w && this.Ej(a.w);
9091 this.ql != a.cb && this.Dj(a.cb)
9092 },
9093 Ej: function(a) {
9094 this.fe = a;
9095 this.Ze.textContent = a
9096 },
9097 Dj: function(a) {
9098 this.ql = a;
9099 this.Hf.textContent = a ? "Remove Admin" : "Give Admin"
9100 },
9101 f: db
9102 };
9103 cb.b = !0;
9104 cb.prototype = {
9105 C: function(a, b) {
9106 this.g.draggable = b;
9107 this.yb != a.yb && (this.yb = a.yb, this.rg.textContent = "" + this.yb);
9108 this.un != a.cb && this.em(a.cb)
9109 },
9110 em: function(a) {
9111 this.un = a;
9112 this.g.className = "player-list-item" +
9113 (a ? " admin" : "")
9114 },
9115 f: cb
9116 };
9117 za.b = !0;
9118 za.prototype = {
9119 C: function(a, b, c, d) {
9120 var e = this;
9121 this.Vh.disabled = b || c;
9122 this.vi.disabled = c;
9123 b = new Set;
9124 c = this.xd.keys();
9125 for (var f = c.next(); !f.done;) {
9126 var g = f.value,
9127 f = c.next();
9128 b.add(g)
9129 }
9130 for (c = 0; c < a.length;) f = a[c], ++c, g = this.xd.get(f.V), null == g && (g = new cb(f), g.ff = function(a) {
9131 y.i(e.ff, a)
9132 }, this.xd.set(f.V, g), this.ab.appendChild(g.g)), g.C(f, d), b["delete"](f.V);
9133 d = b.values();
9134 for (b = d.next(); !b.done;) c = b.value, b = d.next(), this.xd.get(c).g.remove(), this.xd["delete"](c);
9135 d = 0;
9136 for (b = a.length -
9137 1; d < b;) f = d++, c = this.xd.get(a[f].V).g, f = this.xd.get(a[f + 1].V).g, c.nextSibling != f && this.ab.insertBefore(c, f)
9138 },
9139 f: za
9140 };
9141 Q.b = !0;
9142 Q.prototype = {
9143 f: Q
9144 };
9145 ha.b = !0;
9146 ha.Wk = function(a) {
9147 a = a / 1E3 | 0;
9148 return (a / 60 | 0) + ":" + J.Af(K.ye(a % 60))
9149 };
9150 ha.prototype = {
9151 C: function() {
9152 this.Er.textContent = ha.Wk(this.ti.Qb);
9153 this.Aq.style.width = 100 * this.ti.Go() + "%";
9154 !this.Wf || 0 < this.ti.Fd || (this.Wf = !1, this.Up())
9155 },
9156 f: ha
9157 };
9158 bb.b = !0;
9159 bb.prototype = {
9160 nr: function(a) {
9161 this.gk != a && (this.gk = a, this.Zf.value = a)
9162 },
9163 f: bb
9164 };
9165 ab.b = !0;
9166 ab.prototype = {
9167 f: ab
9168 };
9169 Aa.b = !0;
9170 Aa.As = function(a) {
9171 return Promise.race([new Promise(function(a,
9172 c) {
9173 return window.setTimeout(function() {
9174 c(null)
9175 }, 5E3)
9176 }), a])
9177 };
9178 Aa.prototype = {
9179 Om: function() {
9180 function a() {
9181 b.pj.disabled = !1;
9182 b.bn(c)
9183 }
9184 var b = this;
9185 this.en(null);
9186 this.pj.disabled = !0;
9187 v.Cf(this.gj);
9188 var c = [];
9189 this.dj = [];
9190 Aa.As(va.get().then(function(a) {
9191 return c = a
9192 }, function() {
9193 return {}
9194 })).then(a, a)
9195 },
9196 bn: function(a) {
9197 var b = this;
9198 this.dj = a;
9199 va.Hs(this.gs, a);
9200 a.sort(function(a, b) {
9201 return a.Le - b.Le
9202 });
9203 v.Cf(this.gj);
9204 for (var c = 0, d = 0, e = !this.fs.Ta, f = !this.zs.Ta, g = 0; g < a.length;) {
9205 var h = [a[g]];
9206 ++g;
9207 var l = h[0].vd;
9208 if (!(e && l.I >= l.Xe ||
9209 f && l.Ib)) {
9210 var m = [new ab(h[0])];
9211 m[0].Ja.ondblclick = function(a) {
9212 return function() {
9213 y.i(b.Ym, a[0])
9214 }
9215 }(h);
9216 m[0].Ja.onclick = function(a) {
9217 return function() {
9218 b.en(a[0])
9219 }
9220 }(m);
9221 this.gj.appendChild(m[0].Ja);
9222 c += l.I;
9223 ++d
9224 }
9225 }
9226 this.cs.textContent = "" + c + " players in " + d + " rooms";
9227 this.Bs.update()
9228 },
9229 en: function(a) {
9230 null != this.Od && this.Od.Ja.classList.remove("selected");
9231 this.Od = a;
9232 null != this.Od && this.Od.Ja.classList.add("selected");
9233 this.Tm.disabled = null == this.Od
9234 },
9235 f: Aa
9236 };
9237 $a.b = !0;
9238 $a.prototype = {
9239 Il: function() {
9240 var a = this;
9241 M.tk(n.Ee + "api/notice").then(function(b) {
9242 var c =
9243 b.content;
9244 null != c && "" != c && $a.On != c && (a.$n.innerHTML = c, a.Xk.hidden = !1, a.nd.onclick = function() {
9245 $a.On = c;
9246 return a.Xk.hidden = !0
9247 })
9248 })
9249 },
9250 f: $a
9251 };
9252 Za.b = !0;
9253 Za.prototype = {
9254 Dc: function() {
9255 var a = this.Cb.value;
9256 return 30 >= a.length ? 0 < a.length : !1
9257 },
9258 C: function() {
9259 this.af.disabled = !this.Dc()
9260 },
9261 f: Za
9262 };
9263 Ya.b = !0;
9264 Ya.prototype = {
9265 Th: function(a, b, c, d) {
9266 var e = this;
9267 v.xe(a, b.g);
9268 b.mg = function(a, b) {
9269 ia.i(e.mg, a, b)
9270 };
9271 b.ee = function(a) {
9272 y.i(e.ee, a)
9273 };
9274 b.Kp = function(a) {
9275 ia.i(e.mg, d, a)
9276 };
9277 b.ff = function(a) {
9278 y.i(e.ff, a)
9279 }
9280 },
9281 Tk: function(a) {
9282 for (var b = [], c = 0; c <
9283 a;) {
9284 var d = c++;
9285 b.push(null == d ? "null" : "" + d)
9286 }
9287 return b
9288 },
9289 Uk: function(a, b) {
9290 for (var c = 0; c < b.length;) {
9291 var d = b[c++],
9292 e = window.document.createElement("option");
9293 e.textContent = d;
9294 a.appendChild(e)
9295 }
9296 },
9297 rr: function(a) {
9298 this.Fl.classList.toggle("active", a)
9299 },
9300 C: function(a, b) {
9301 this.Uq != a.jc && (this.Uq = a.jc, this.jc.textContent = a.jc);
9302 var c = null == b ? !1 : b.cb;
9303 this.fk != c && (this.g.className = "room-view" + (c ? " admin" : ""), this.fk = c);
9304 var d = !c || null != a.K;
9305 this.wf.disabled = d;
9306 this.qf.disabled = d;
9307 this.sm.disabled = d;
9308 d = null != a.K;
9309 this.tm.hidden =
9310 d;
9311 this.vm.hidden = !d;
9312 this.gi.hidden = !d;
9313 this.wf.selectedIndex = a.Da;
9314 this.qf.selectedIndex = a.ib;
9315 this.rm.textContent = a.S.w;
9316 this.rm.classList.toggle("custom", !a.S.Pe());
9317 var e = a.Pc;
9318 this.Hl.C(a.I.filter(function(a) {
9319 return a.ea == p.fa
9320 }), e, d, c);
9321 this.Lj.C(a.I.filter(function(a) {
9322 return a.ea == p.xa
9323 }), e, d, c);
9324 this.qm.C(a.I.filter(function(a) {
9325 return a.ea == p.Ia
9326 }), e, d, c);
9327 this.Rl.disabled = d;
9328 this.Xh != a.Pc && this.Bj(a.Pc);
9329 d && (c = 120 == a.K.Oa, this.ll != c && this.Cj(c))
9330 },
9331 Bj: function(a) {
9332 this.Xh = a;
9333 this.Nk.innerHTML = this.Xh ? "<i class='icon-lock'></i>Unlock" :
9334 "<i class='icon-lock-open'></i>Lock"
9335 },
9336 Cj: function(a) {
9337 this.ll = a;
9338 this.gi.innerHTML = "<i class='icon-pause'></i>" + (this.ll ? "Resume (P)" : "Pause (P)")
9339 },
9340 f: Ya
9341 };
9342 aa.b = !0;
9343 aa.prototype = {
9344 f: aa
9345 };
9346 P.b = !0;
9347 P.prototype = {
9348 f: P
9349 };
9350 Xa.b = !0;
9351 Xa.prototype = {
9352 qr: function(a) {
9353 this.rg.textContent = null == a ? "null" : "" + a
9354 },
9355 or: function(a) {
9356 this.wp.textContent = "" + a
9357 },
9358 hm: function(a) {
9359 this.wo.textContent = null == a ? "null" : "" + a
9360 },
9361 f: Xa
9362 };
9363 Wa.b = !0;
9364 Wa.prototype = {
9365 f: Wa
9366 };
9367 q.b = !0;
9368 q.ma = Error;
9369 q.prototype = C(Error.prototype, {
9370 f: q
9371 });
9372 r.b = !0;
9373 r.Nm = function(a) {
9374 if (a instanceof Array && null == a.eb) return Array;
9375 var b = a.f;
9376 if (null != b) return b;
9377 a = r.wj(a);
9378 return null != a ? r.rn(a) : null
9379 };
9380 r.Be = function(a, b) {
9381 if (null == a) return "null";
9382 if (5 <= b.length) return "<...>";
9383 var c = typeof a;
9384 "function" == c && (a.b || a.Gf) && (c = "object");
9385 switch (c) {
9386 case "function":
9387 return "<function>";
9388 case "object":
9389 if (a.eb) {
9390 var d = Ab[a.eb],
9391 c = d.nh[a.nb],
9392 e = d[c];
9393 if (e.Ae) {
9394 b += "\t";
9395 for (var c = c + "(", d = [], f = 0, e = e.Ae; f < e.length;) {
9396 var g = e[f];
9397 ++f;
9398 d.push(r.Be(a[g], b))
9399 }
9400 return c + d.join(",") + ")"
9401 }
9402 return c
9403 }
9404 if (a instanceof Array) {
9405 c = a.length;
9406 d = "[";
9407 b += "\t";
9408 for (f = 0; f < c;) e = f++, d += (0 < e ? "," : "") + r.Be(a[e], b);
9409 return d + "]"
9410 }
9411 try {
9412 d = a.toString
9413 } catch (k) {
9414 return "???"
9415 }
9416 if (null != d && d != Object.toString && "function" == typeof d && (c = a.toString(), "[object Object]" != c)) return c;
9417 c = null;
9418 d = "{\n";
9419 b += "\t";
9420 f = null != a.hasOwnProperty;
9421 for (c in a) f && !a.hasOwnProperty(c) || "prototype" == c || "__class__" == c || "__super__" == c || "__interfaces__" == c || "__properties__" == c || (2 != d.length && (d += ", \n"), d += b + c + " : " + r.Be(a[c], b));
9422 b = b.substring(1);
9423 return d + ("\n" + b + "}");
9424 case "string":
9425 return a;
9426 default:
9427 return String(a)
9428 }
9429 };
9430 r.ph = function(a, b) {
9431 if (null == a) return !1;
9432 if (a == b) return !0;
9433 var c = a.Rd;
9434 if (null != c)
9435 for (var d = 0, e = c.length; d < e;) {
9436 var f = c[d++];
9437 if (f == b || r.ph(f, b)) return !0
9438 }
9439 return r.ph(a.ma, b)
9440 };
9441 r.pn = function(a, b) {
9442 if (null == b) return !1;
9443 switch (b) {
9444 case Array:
9445 return a instanceof Array ? null == a.eb : !1;
9446 case oc:
9447 return "boolean" == typeof a;
9448 case sc:
9449 return !0;
9450 case z:
9451 return "number" == typeof a;
9452 case Pb:
9453 return "number" == typeof a ? (a | 0) === a : !1;
9454 case String:
9455 return "string" == typeof a;
9456 default:
9457 if (null != a)
9458 if ("function" == typeof b) {
9459 if (a instanceof b || r.ph(r.Nm(a),
9460 b)) return !0
9461 } else {
9462 if ("object" == typeof b && r.qn(b) && a instanceof b) return !0
9463 }
9464 else return !1;
9465 return b == tc && null != a.b || b == uc && null != a.Gf ? !0 : Ab[a.eb] == b
9466 }
9467 };
9468 r.G = function(a, b) {
9469 if (r.pn(a, b)) return a;
9470 throw new q("Cannot cast " + K.ye(a) + " to " + K.ye(b));
9471 };
9472 r.wj = function(a) {
9473 a = r.sn.call(a).slice(8, -1);
9474 return "Object" == a || "Function" == a || "Math" == a || "JSON" == a ? null : a
9475 };
9476 r.qn = function(a) {
9477 return null != r.wj(a)
9478 };
9479 r.rn = function(a) {
9480 return qc[a]
9481 };
9482 hc.b = !0;
9483 hc.Is = function(a, b) {
9484 var c = new Uint8Array(this, a, null == b ? null : b - a),
9485 d = new Uint8Array(c.byteLength);
9486 d.set(c);
9487 return d.buffer
9488 };
9489 var rc = 0;
9490 null == String.fromCodePoint && (String.fromCodePoint = function(a) {
9491 return 65536 > a ? String.fromCharCode(a) : String.fromCharCode((a >> 10) + 55232) + String.fromCharCode((a & 1023) + 56320)
9492 });
9493 String.prototype.f = String;
9494 String.b = !0;
9495 Array.b = !0;
9496 Date.prototype.f = Date;
9497 Date.b = "Date";
9498 var Pb = {},
9499 sc = {},
9500 z = Number,
9501 oc = Boolean,
9502 tc = {},
9503 uc = {};
9504 p.Ia = new p(0, 16777215, 0, -1, "Spectators", "t-spec", 0, 0);
9505 p.fa = new p(1, 15035990, -1, 8, "Red", "t-red", 0, 2);
9506 p.xa = new p(2, 5671397, 1, 16, "Blue", "t-blue", 0, 4);
9507 p.Ia.pg = p.Ia;
9508 p.fa.pg = p.xa;
9509 p.xa.pg = p.fa;
9510 Object.defineProperty(q.prototype, "message", {
9511 get: function() {
9512 return String(this.Ta)
9513 }
9514 });
9515 null == ArrayBuffer.prototype.slice && (ArrayBuffer.prototype.slice = hc.Is);
9516 Va.Yn = {
9517 mandatory: {
9518 OfferToReceiveAudio: !1,
9519 OfferToReceiveVideo: !1
9520 }
9521 };
9522 I.qh = {
9523 name: "ECDSA",
9524 namedCurve: "P-256"
9525 };
9526 I.mm = {
9527 name: "ECDSA",
9528 hash: {
9529 name: "SHA-256"
9530 }
9531 };
9532 Ba.Uo = ["click-rail", "drag-thumb", "wheel", "touch"];
9533 m.Qm = new Map;
9534 m.yf = 0;
9535 Ua.za = m.Fa({
9536 Ba: !1,
9537 Aa: !1
9538 });
9539 ya.zc = 0;
9540 Zb.Km = [{
9541 name: "ro",
9542 reliable: !0,
9543 kj: !0
9544 }, {
9545 name: "ru",
9546 reliable: !0,
9547 kj: !1
9548 },
9549 {
9550 name: "uu",
9551 reliable: !1,
9552 kj: !1
9553 }
9554 ];
9555 M.vj = "application/x-www-form-urlencoded";
9556 Ha.ab = ["Afghanistan", "AF", 33.3, 65.1, "Albania", "AL", 41.1, 20.1, "Algeria", "DZ", 28, 1.6, "American Samoa", "AS", -14.2, -170.1, "Andorra", "AD", 42.5, 1.6, "Angola", "AO", -11.2, 17.8, "Anguilla", "AI", 18.2, -63, "Antigua and Barbuda", "AG", 17, -61.7, "Argentina", "AR", -34.5, -58.4, "Armenia", "AM", 40, 45, "Aruba", "AW", 12.5, -69.9, "Australia", "AU", -25.2, 133.7, "Austria", "AT", 47.5, 14.5, "Azerbaijan", "AZ", 40.1, 47.5, "Bahamas", "BS", 25, -77.3, "Bahrain", "BH", 25.9, 50.6,
9557 "Bangladesh", "BD", 23.6, 90.3, "Barbados", "BB", 13.1, -59.5, "Belarus", "BY", 53.7, 27.9, "Belgium", "BE", 50.5, 4.4, "Belize", "BZ", 17.1, -88.4, "Benin", "BJ", 9.3, 2.3, "Bermuda", "BM", 32.3, -64.7, "Bhutan", "BT", 27.5, 90.4, "Bolivia", "BO", -16.2, -63.5, "Bosnia and Herzegovina", "BA", 43.9, 17.6, "Botswana", "BW", -22.3, 24.6, "Bouvet Island", "BV", -54.4, 3.4, "Brazil", "BR", -14.2, -51.9, "British Indian Ocean Territory", "IO", -6.3, 71.8, "British Virgin Islands", "VG", 18.4, -64.6, "Brunei", "BN", 4.5, 114.7, "Bulgaria", "BG", 42.7, 25.4, "Burkina Faso",
9558 "BF", 12.2, -1.5, "Burundi", "BI", -3.3, 29.9, "Cambodia", "KH", 12.5, 104.9, "Cameroon", "CM", 7.3, 12.3, "Canada", "CA", 56.1, -106.3, "Cape Verde", "CV", 16, -24, "Cayman Islands", "KY", 19.5, -80.5, "Central African Republic", "CF", 6.6, 20.9, "Chad", "TD", 15.4, 18.7, "Chile", "CL", -35.6, -71.5, "China", "CN", 35.8, 104.1, "Christmas Island", "CX", -10.4, 105.6, "Colombia", "CO", 4.5, -74.2, "Comoros", "KM", -11.8, 43.8, "Congo [DRC]", "CD", -4, 21.7, "Congo [Republic]", "CG", -.2, 15.8, "Cook Islands", "CK", -21.2, -159.7, "Costa Rica", "CR", 9.7, -83.7, "Croatia",
9559 "HR", 45.1, 15.2, "Cuba", "CU", 21.5, -77.7, "Cyprus", "CY", 35.1, 33.4, "Czech Republic", "CZ", 49.8, 15.4, "C\u00f4te d'Ivoire", "CI", 7.5, -5.5, "Denmark", "DK", 56.2, 9.5, "Djibouti", "DJ", 11.8, 42.5, "Dominica", "DM", 15.4, -61.3, "Dominican Republic", "DO", 18.7, -70.1, "Ecuador", "EC", -1.8, -78.1, "Egypt", "EG", 26.8, 30.8, "El Salvador", "SV", 13.7, -88.8, "England", "ENG", 55.3, -3.4, "Equatorial Guinea", "GQ", 1.6, 10.2, "Eritrea", "ER", 15.1, 39.7, "Estonia", "EE", 58.5, 25, "Ethiopia", "ET", 9.1, 40.4, "Faroe Islands", "FO", 61.8, -6.9, "Fiji", "FJ", -16.5,
9560 179.4, "Finland", "FI", 61.9, 25.7, "France", "FR", 46.2, 2.2, "French Guiana", "GF", 3.9, -53.1, "French Polynesia", "PF", -17.6, -149.4, "Gabon", "GA", -.8, 11.6, "Gambia", "GM", 13.4, -15.3, "Georgia", "GE", 42.3, 43.3, "Germany", "DE", 51.1, 10.4, "Ghana", "GH", 7.9, -1, "Gibraltar", "GI", 36.1, -5.3, "Greece", "GR", 39, 21.8, "Greenland", "GL", 71.7, -42.6, "Grenada", "GD", 12.2, -61.6, "Guadeloupe", "GP", 16.9, -62, "Guam", "GU", 13.4, 144.7, "Guatemala", "GT", 15.7, -90.2, "Guinea", "GN", 9.9, -9.6, "Guinea-Bissau", "GW", 11.8, -15.1, "Guyana", "GY", 4.8, -58.9, "Haiti",
9561 "HT", 18.9, -72.2, "Honduras", "HN", 15.1, -86.2, "Hong Kong", "HK", 22.3, 114.1, "Hungary", "HU", 47.1, 19.5, "Iceland", "IS", 64.9, -19, "India", "IN", 20.5, 78.9, "Indonesia", "ID", -.7, 113.9, "Iran", "IR", 32.4, 53.6, "Iraq", "IQ", 33.2, 43.6, "Ireland", "IE", 53.4, -8.2, "Israel", "IL", 31, 34.8, "Italy", "IT", 41.8, 12.5, "Jamaica", "JM", 18.1, -77.2, "Japan", "JP", 36.2, 138.2, "Jordan", "JO", 30.5, 36.2, "Kazakhstan", "KZ", 48, 66.9, "Kenya", "KE", -0, 37.9, "Kiribati", "KI", -3.3, -168.7, "Kosovo", "XK", 42.6, 20.9, "Kuwait", "KW", 29.3, 47.4, "Kyrgyzstan", "KG", 41.2,
9562 74.7, "Laos", "LA", 19.8, 102.4, "Latvia", "LV", 56.8, 24.6, "Lebanon", "LB", 33.8, 35.8, "Lesotho", "LS", -29.6, 28.2, "Liberia", "LR", 6.4, -9.4, "Libya", "LY", 26.3, 17.2, "Liechtenstein", "LI", 47.1, 9.5, "Lithuania", "LT", 55.1, 23.8, "Luxembourg", "LU", 49.8, 6.1, "Macau", "MO", 22.1, 113.5, "Macedonia [FYROM]", "MK", 41.6, 21.7, "Madagascar", "MG", -18.7, 46.8, "Malawi", "MW", -13.2, 34.3, "Malaysia", "MY", 4.2, 101.9, "Maldives", "MV", 3.2, 73.2, "Mali", "ML", 17.5, -3.9, "Malta", "MT", 35.9, 14.3, "Marshall Islands", "MH", 7.1, 171.1, "Martinique", "MQ", 14.6, -61,
9563 "Mauritania", "MR", 21, -10.9, "Mauritius", "MU", -20.3, 57.5, "Mayotte", "YT", -12.8, 45.1, "Mexico", "MX", 23.6, -102.5, "Micronesia", "FM", 7.4, 150.5, "Moldova", "MD", 47.4, 28.3, "Monaco", "MC", 43.7, 7.4, "Mongolia", "MN", 46.8, 103.8, "Montenegro", "ME", 42.7, 19.3, "Montserrat", "MS", 16.7, -62.1, "Morocco", "MA", 31.7, -7, "Mozambique", "MZ", -18.6, 35.5, "Myanmar [Burma]", "MM", 21.9, 95.9, "Namibia", "NA", -22.9, 18.4, "Nauru", "NR", -.5, 166.9, "Nepal", "NP", 28.3, 84.1, "Netherlands", "NL", 52.1, 5.2, "Netherlands Antilles", "AN", 12.2, -69, "New Caledonia",
9564 "NC", -20.9, 165.6, "New Zealand", "NZ", -40.9, 174.8, "Nicaragua", "NI", 12.8, -85.2, "Niger", "NE", 17.6, 8, "Nigeria", "NG", 9, 8.6, "Niue", "NU", -19, -169.8, "Norfolk Island", "NF", -29, 167.9, "North Korea", "KP", 40.3, 127.5, "Northern Mariana Islands", "MP", 17.3, 145.3, "Norway", "NO", 60.4, 8.4, "Oman", "OM", 21.5, 55.9, "Pakistan", "PK", 30.3, 69.3, "Palau", "PW", 7.5, 134.5, "Palestinian Territories", "PS", 31.9, 35.2, "Panama", "PA", 8.5, -80.7, "Papua New Guinea", "PG", -6.3, 143.9, "Paraguay", "PY", -23.4, -58.4, "Peru", "PE", -9.1, -75, "Philippines",
9565 "PH", 12.8, 121.7, "Pitcairn Islands", "PN", -24.7, -127.4, "Poland", "PL", 51.9, 19.1, "Portugal", "PT", 39.3, -8.2, "Puerto Rico", "PR", 18.2, -66.5, "Qatar", "QA", 25.3, 51.1, "Romania", "RO", 45.9, 24.9, "Russia", "RU", 61.5, 105.3, "Rwanda", "RW", -1.9, 29.8, "R\u00e9union", "RE", -21.1, 55.5, "Saint Helena", "SH", -24.1, -10, "Saint Kitts", "KN", 17.3, -62.7, "Saint Lucia", "LC", 13.9, -60.9, "Saint Pierre", "PM", 46.9, -56.2, "Saint Vincent", "VC", 12.9, -61.2, "Samoa", "WS", -13.7, -172.1, "San Marino", "SM", 43.9, 12.4, "Saudi Arabia", "SA", 23.8, 45, "Scotland",
9566 "SCT", 56.5, 4.2, "Senegal", "SN", 14.4, -14.4, "Serbia", "RS", 44, 21, "Seychelles", "SC", -4.6, 55.4, "Sierra Leone", "SL", 8.4, -11.7, "Singapore", "SG", 1.3, 103.8, "Slovakia", "SK", 48.6, 19.6, "Slovenia", "SI", 46.1, 14.9, "Solomon Islands", "SB", -9.6, 160.1, "Somalia", "SO", 5.1, 46.1, "South Africa", "ZA", -30.5, 22.9, "South Georgia", "GS", -54.4, -36.5, "South Korea", "KR", 35.9, 127.7, "Spain", "ES", 40.4, -3.7, "Sri Lanka", "LK", 7.8, 80.7, "Sudan", "SD", 12.8, 30.2, "Suriname", "SR", 3.9, -56, "Svalbard and Jan Mayen", "SJ", 77.5, 23.6, "Swaziland", "SZ",
9567 -26.5, 31.4, "Sweden", "SE", 60.1, 18.6, "Switzerland", "CH", 46.8, 8.2, "Syria", "SY", 34.8, 38.9, "S\u00e3o Tom\u00e9 and Pr\u00edncipe", "ST", .1, 6.6, "Taiwan", "TW", 23.6, 120.9, "Tajikistan", "TJ", 38.8, 71.2, "Tanzania", "TZ", -6.3, 34.8, "Thailand", "TH", 15.8, 100.9, "Timor-Leste", "TL", -8.8, 125.7, "Togo", "TG", 8.6, .8, "Tokelau", "TK", -8.9, -171.8, "Tonga", "TO", -21.1, -175.1, "Trinidad and Tobago", "TT", 10.6, -61.2, "Tunisia", "TN", 33.8, 9.5, "Turkey", "TR", 38.9, 35.2, "Turkmenistan", "TM", 38.9, 59.5, "Turks and Caicos Islands", "TC", 21.6, -71.7,
9568 "Tuvalu", "TV", -7.1, 177.6, "U.S. Minor Outlying Islands", "UM", 0, 0, "U.S. Virgin Islands", "VI", 18.3, -64.8, "Uganda", "UG", 1.3, 32.2, "Ukraine", "UA", 48.3, 31.1, "United Arab Emirates", "AE", 23.4, 53.8, "United Kingdom", "GB", 55.3, -3.4, "United States", "US", 37, -95.7, "Uruguay", "UY", -32.5, -55.7, "Uzbekistan", "UZ", 41.3, 64.5, "Vanuatu", "VU", -15.3, 166.9, "Vatican City", "VA", 41.9, 12.4, "Venezuela", "VE", 6.4, -66.5, "Vietnam", "VN", 14, 108.2, "Wales", "WLS", 55.3, -3.4, "Wallis and Futuna", "WF", -13.7, -177.1, "Western Sahara", "EH", 24.2,
9569 -12.8, "Yemen", "YE", 15.5, 48.5, "Zambia", "ZM", -13.1, 27.8, "Zimbabwe", "ZW", -19, 29.1
9570 ];
9571 n.Vr = "wss://p2p.haxball.com/";
9572 n.Ee = "https://www.haxball.com/rs/";
9573 n.Vf = [{
9574 urls: "stun:stun.l.google.com:19302"
9575 }];
9576 n.A = new Yb;
9577 O.Yk = function() {
9578 for (var a = [], b = 0; 256 > b;) ++b, a.push(new H(0, 0));
9579 return a
9580 }(this);
9581 O.dk = function() {
9582 for (var a = [], b = 0; 256 > b;) ++b, a.push(0);
9583 return a
9584 }(this);
9585 h.Fr = w.ha(1024);
9586 ta.za = m.Fa({
9587 Ba: !1,
9588 Aa: !1
9589 });
9590 rb.za = m.Fa({
9591 Ba: !1,
9592 Aa: !1,
9593 oj: {
9594 $i: 10,
9595 uj: 900
9596 }
9597 });
9598 Qa.za = m.Fa({
9599 Ba: !1,
9600 Aa: !1
9601 });
9602 da.za = m.Fa({
9603 Ba: !1,
9604 Aa: !1
9605 });
9606 sa.za = m.Fa({
9607 Ba: !1,
9608 Aa: !1
9609 });
9610 ra.za = m.Fa({
9611 Ba: !1,
9612 Aa: !1
9613 });
9614 S.za = m.Fa({
9615 Ba: !1,
9616 Aa: !1
9617 });
9618 qa.za = m.Fa({
9619 Ba: !1,
9620 Aa: !1,
9621 oj: {
9622 $i: 10,
9623 uj: 2E3
9624 }
9625 });
9626 Pa.za = m.Fa({
9627 Ba: !1,
9628 Aa: !1
9629 });
9630 pa.za = m.Fa({
9631 Ba: !1,
9632 Aa: !1
9633 });
9634 oa.za = m.Fa({
9635 Ba: !1,
9636 Aa: !1
9637 });
9638 qb.za = m.Fa({
9639 Ba: !1,
9640 Aa: !1
9641 });
9642 Oa.za = m.Fa({});
9643 Na.za = m.Fa({
9644 Ba: !1,
9645 Aa: !1,
9646 oj: {
9647 $i: 10,
9648 uj: 900
9649 }
9650 });
9651 Ga.za = m.Fa({});
9652 na.za = m.Fa({
9653 Ba: !1,
9654 Aa: !1
9655 });
9656 Y.za = m.Fa({
9657 Ba: !1,
9658 Aa: !1
9659 });
9660 pb.za = m.Fa({
9661 Ba: !1,
9662 Aa: !1
9663 });
9664 ob.za = m.Fa({
9665 Ba: !1,
9666 Aa: !1
9667 });
9668 ma.za = m.Fa({
9669 Ba: !1,
9670 Aa: !1
9671 });
9672 Ma.za = m.Fa({
9673 Ba: !1,
9674 Aa: !1
9675 });
9676 La.za = m.Fa({
9677 Ba: !1,
9678 Aa: !1
9679 });
9680 la.za = m.Fa({
9681 Ba: !1,
9682 Aa: !1
9683 });
9684 E.mn = .17435839227423353;
9685 E.ln = 5.934119456780721;
9686 R.jn = new Ib([0, 0, 2, 1, 0, .35, 1, 0, 1, 0, .7, 1, 0, 0, 0, 1]);
9687 R.kn = new Ib([0, -1, 3, 0, 0, .35, 0, 0, 0, 0, .65, 0, 0, 1, 3, 1]);
9688 mb.N = "<div class='dialog change-location-view'><h1>Change Location</h1><div class='splitter'><div class='list' data-hook='list'></div><div class='buttons'><button data-hook='change'>Change</button><button data-hook='cancel'>Cancel</button></div></div></div>";
9689 Da.N = "<div class='chatbox-view'><div data-hook='log' class='log'><p>Controls:<br/>Move: WASD or Arrows<br/>Kick: X, Space, Ctrl, Shift, Numpad 0<br/>View: Numbers 1 to 4</p></div><div class='autocompletebox' data-hook='autocompletebox'></div><div class='input'><input data-hook='input' type='text' /><button data-hook='send'>Send</button></div></div>";
9690 kb.N = "<div class='choose-nickname-view'><img src=\"images/haxball.png\" /><div class='dialog'><h1>Choose nickname</h1><div class='label-input'><label>Nick:</label><input data-hook='input' type='text' /></div><button data-hook='ok'>Ok</button></div></div>";
9691 jb.N = "<div class='connecting-view'><div class='dialog'><h1>Connecting</h1><div class='connecting-view-log' data-hook='log'></div><button data-hook='cancel'>Cancel</button></div></div>";
9692 ib.N = "<div class='create-room-view'><div class='dialog'><h1>Create room</h1><div class='label-input'><label>Room name:</label><input data-hook='name' required /></div><div class='label-input'><label>Password:</label><input data-hook='pass' /></div><div class='label-input'><label>Max players:</label><select data-hook='max-pl'></select></div><button data-hook='unlisted'></button><div class='row'><button data-hook='cancel'>Cancel</button><button data-hook='create'>Create</button></div></div></div>";
9693 Ka.N = "<div class='disconnected-view'><div class='dialog basic-dialog'><h1>Disconnected</h1><p data-hook='reason'></p><div class='buttons'><button data-hook='ok'>Ok</button><button data-hook='replay'>Save replay</button></div></div></div>";
9694 hb.N = "<div class='game-state-view'><div class='bar-container'><div class='bar'><div class='scoreboard'><div class='teamicon red'></div><div class='score' data-hook='red-score'>0</div><div>-</div><div class='score' data-hook='blue-score'>0</div><div class='teamicon blue'></div></div><div data-hook='timer'></div></div></div><div class='canvas' data-hook='canvas'></div></div>";
9695 ja.N = "<div class='game-view' tabindex='-1'><div class='top-section' data-hook='gameplay-section'></div><div class='bottom-section'><div data-hook='stats'></div><div data-hook='chatbox'></div><div class='buttons'><button data-hook='menu'><i class='icon-menu'></i>Menu<span class='tooltip'>Toggle room menu [Escape]</span></button><button data-hook='settings'><i class='icon-cog'></i>Settings</button></div></div><div data-hook='popups'></div></div>";
9696 gb.N = "<div class='dialog kick-player-view'><h1 data-hook='title'></h1><div class=label-input><label>Reason: </label><input type='text' data-hook='reason' /></div><button data-hook='ban-btn'><i class='icon-block'></i>Ban from rejoining: <span data-hook='ban-text'></span></button><div class=\"row\"><button data-hook='close'>Cancel</button><button data-hook='kick'>Kick</button></div></div>";
9697 fb.N = "<div class='dialog basic-dialog leave-room-view'><h1>Leave room?</h1><p>Are you sure you want to leave the room?</p><div class='buttons'><button data-hook='cancel'>Cancel</button><button data-hook='leave'><i class='icon-logout'></i>Leave</button></div></div>";
9698 eb.N = "<div class='dialog pick-stadium-view'><h1>Pick a stadium</h1><div class='splitter'><div class='list' data-hook='list'></div><div class='buttons'><button data-hook='pick'>Pick</button><button data-hook='delete'>Delete</button><div class='file-btn'><label for='stadfile'>Load</label><input id='stadfile' type='file' accept='.hbs' data-hook='file'/></div><button data-hook='export'>Export</button><div class='spacer'></div><button data-hook='cancel'>Cancel</button></div></div></div>";
9699 db.N = "<div class='dialog' style='min-width:200px'><h1 data-hook='name'></h1><button data-hook='admin'></button><button data-hook='kick'>Kick</button><button data-hook='close'>Close</button></div>";
9700 cb.N = "<div class='player-list-item'><div data-hook='flag' class='flagico'></div><div data-hook='name'></div><div data-hook='ping'></div></div>";
9701 za.N = "<div class='player-list-view'><div class='buttons'><button data-hook='join-btn'>Join</button><button data-hook='reset-btn' class='admin-only'></button></div><div class='list' data-hook='list'></div></div>";
9702 ha.N = "<div class='replay-controls-view'><button data-hook='reset'><i class='icon-to-start'></i></button><button data-hook='play'><i data-hook='playicon'></i></button><div data-hook='spd'>1x</div><button data-hook='spddn'>-</button><button data-hook='spdup'>+</button><div data-hook='time'>00:00</div><div class='timebar' data-hook='timebar'><div class='barbg'><div class='bar' data-hook='progbar'></div></div><div class='timetooltip' data-hook='timetooltip'></div></div><button data-hook='leave'>Leave</button></div>";
9703 bb.N = "<div class='dialog basic-dialog room-link-view'><h1>Room link</h1><p>Use this url to link others directly into this room.</p><input data-hook='link' readonly></input><div class='buttons'><button data-hook='close'>Close</button><button data-hook='copy'>Copy to clipboard</button></div></div>";
9704 ab.tj = "<tr><td><span data-hook='tag'></span><span data-hook='name'></span></td><td data-hook='players'></td><td data-hook='pass'></td><td><div data-hook='flag' class='flagico'></div><span data-hook='distance'></span></td></tr>";
9705 Aa.tj = "<div class='roomlist-view'><div class='notice' data-hook='notice' hidden><div data-hook='notice-contents'>Testing the notice.</div><div data-hook='notice-close'><i class='icon-cancel'></i></div></div><div class='dialog'><h1>Room list</h1><p>Tip: Join rooms near you to reduce lag.</p><div class='splitter'><div class='list'><table class='header'><colgroup><col><col><col><col></colgroup><thead><tr><td>Name</td><td>Players</td><td>Pass</td><td>Distance</td></tr></thead></table><div class='separator'></div><div class='content' data-hook='listscroll'><table><colgroup><col><col><col><col></colgroup><tbody data-hook='list'></tbody></table></div><div class='filters'><span class='bool' data-hook='fil-pass'>Show locked <i></i></span><span class='bool' data-hook='fil-full'>Show full <i></i></span></div></div><div class='buttons'><button data-hook='refresh'><i class='icon-cw'></i><div>Refresh</div></button><button data-hook='join'><i class='icon-login'></i><div>Join Room</div></button><button data-hook='create'><i class='icon-plus'></i><div>Create Room</div></button><div class='spacer'></div><div class='file-btn'><label for='replayfile'><i class='icon-play'></i><div>Replays</div></label><input id='replayfile' type='file' accept='.hbr2' data-hook='replayfile'/></div><button data-hook='settings'><i class='icon-cog'></i><div>Settings</div></button><button data-hook='changenick'><i class='icon-cw'></i><div>Change Nick</div></button></div></div><p data-hook='count'></p></div></div>";
9706 Za.N = "<div class='room-password-view'><div class='dialog'><h1>Password required</h1><div class='label-input'><label>Password:</label><input data-hook='input' /></div><div class='buttons'><button data-hook='cancel'>Cancel</button><button data-hook='ok'>Ok</button></div></div></div>";
9707 Ya.N = "<div class='room-view'><div class='container'><h1 data-hook='room-name'></h1><div class='header-btns'><button data-hook='rec-btn'><i class='icon-circle'></i>Rec</button><button data-hook='link-btn'><i class='icon-link'></i>Link</button><button data-hook='leave-btn'><i class='icon-logout'></i>Leave</button></div><div class='teams'><div class='tools admin-only'><button data-hook='auto-btn'>Auto</button><button data-hook='rand-btn'>Rand</button><button data-hook='lock-btn'>Lock</button><button data-hook='reset-all-btn'>Reset</button></div><div data-hook='red-list'></div><div data-hook='spec-list'></div><div data-hook='blue-list'></div><div class='spacer admin-only'></div></div><div class='settings'><div><label class='lbl'>Time limit</label><select data-hook='time-limit-sel'></select></div><div><label class='lbl'>Score limit</label><select data-hook='score-limit-sel'></select></div><div><label class='lbl'>Stadium</label><label class='val' data-hook='stadium-name'>testing the stadium name</label><button class='admin-only' data-hook='stadium-pick'>Pick</button></div></div><div class='controls admin-only'><button data-hook='start-btn'><i class='icon-play'></i>Start game</button><button data-hook='stop-btn'><i class='icon-stop'></i>Stop game</button><button data-hook='pause-btn'><i class='icon-pause'></i>Pause</button></div></div></div>";
9708 aa.N = "<div class='dialog settings-view'><h1>Settings</h1><button data-hook='close'>Close</button><div class='tabs'><button data-hook='soundbtn'>Sound</button><button data-hook='videobtn'>Video</button><button data-hook='inputbtn'>Input</button><button data-hook='miscbtn'>Misc</button></div><div data-hook='presskey' tabindex='-1'><div>Press a key</div></div><div class='tabcontents'><div class='section' data-hook='miscsec'><div class='loc' data-hook='loc'></div><div class='loc' data-hook='loc-ovr'></div><button data-hook='loc-ovr-btn'></button></div><div class='section' data-hook='soundsec'><div data-hook=\"tsound-main\">Sounds enabled</div><div data-hook=\"tsound-chat\">Chat sound enabled</div><div data-hook=\"tsound-highlight\">Nick highlight sound enabled</div><div data-hook=\"tsound-crowd\">Crowd sound enabled</div></div><div class='section' data-hook='inputsec'></div><div class='section' data-hook='videosec'><div>Viewport Mode:<select data-hook='viewmode'><option>Dynamic</option><option>Restricted 840x410</option><option>Full 1x Zoom</option><option>Full 1.25x Zoom</option><option>Full 1.5x Zoom</option><option>Full 1.75x Zoom</option><option>Full 2x Zoom</option><option>Full 2.25x Zoom</option><option>Full 2.5x Zoom</option></select></div><div>FPS Limit:<select data-hook='fps'><option>None (Recommended)</option><option>30</option></select></div><div>Resolution Scaling:<select data-hook='resscale'><option>100%</option><option>75%</option><option>50%</option><option>25%</option></select></div><div data-hook=\"tvideo-teamcol\">Custom team colors enabled</div><div data-hook=\"tvideo-showindicators\">Show chat indicators</div><div data-hook=\"tvideo-showavatars\">Show player avatars</div></div></div></div>";
9709 aa.$l = 0;
9710 P.N = "<div class='simple-dialog-view'><div class='dialog basic-dialog'><h1 data-hook='title'></h1><p data-hook='content'></p><div class='buttons' data-hook='buttons'></div></div></div>";
9711 Xa.N = "<div class='stats-view'><p>Ping: <span data-hook='ping'></span></p><p>Max Ping: <span data-hook='max-ping'></span></p><p>Fps: <span data-hook='fps'></span></p><div data-hook='graph'></div></div>";
9712 Wa.N = '<div class=\'unsupported-browser-view\'><div class=\'dialog\'><h1>Unsupported Browser</h1><p>Sorry! Your browser doesn\'t yet implement some features which are required for HaxBall to work.</p><p>The missing features are: <span data-hook=\'features\'></span></p><h2>Recommended browsers:</h2><div><a href="https://www.mozilla.org/firefox/new/"><img src="images/firefox-icon.png"/>Firefox</a></div><div><a href="https://www.google.com/chrome/"><img src="images/chrome-icon.png"/>Chrome</a></div><div><a href="http://www.opera.com/"><img src="images/opera-icon.png"/>Opera</a></div></div></div>';
9713 r.sn = {}.toString;
9714 u.qp()
9715})("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this);