PageSourceSearch

https://dnncommunity.org/Resources/libraries/Knockout/03_05_01/knockout.js?cdv=1068

js dnncommunity.org collected 2026-10-02 03:26:12 UTC 138,552 bytes, 4,199 lines download raw bytes

1/*!
2 * Knockout JavaScript library v3.5.1
3 * (c) The Knockout.js team - http://knockoutjs.com/
4 * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5 */
6
7(function () {
8  (function (n) {
9    var A = this || (0, eval)("this"),
10      w = A.document,
11      R = A.navigator,
12      v = A.jQuery,
13      H = A.JSON;
14    v || "undefined" === typeof jQuery || (v = jQuery);
15    (function (n) {
16      "function" === typeof define && define.amd
17        ? define(["exports", "require"], n)
18        : "object" === typeof exports && "object" === typeof module
19          ? n(module.exports || exports)
20          : n((A.ko = {}));
21    })(function (S, T) {
22      function K(a, c) {
23        return null === a || (typeof a) in W ? a === c : !1;
24      }
25      function X(b, c) {
26        var d;
27        return function () {
28          d ||
29            (d = a.a.setTimeout(function () {
30              d = n;
31              b();
32            }, c));
33        };
34      }
35      function Y(b, c) {
36        var d;
37        return function () {
38          clearTimeout(d);
39          d = a.a.setTimeout(b, c);
40        };
41      }
42      function Z(a, c) {
43        c && "change" !== c
44          ? "beforeChange" === c
45            ? this.pc(a)
46            : this.gb(a, c)
47          : this.qc(a);
48      }
49      function aa(a, c) {
50        null !== c && c.s && c.s();
51      }
52      function ba(a, c) {
53        var d = this.qd,
54          e = d[r];
55        e.ra ||
56          (this.Qb && this.mb[c]
57            ? (d.uc(c, a, this.mb[c]), (this.mb[c] = null), --this.Qb)
58            : e.I[c] || d.uc(c, a, e.J ? { da: a } : d.$c(a)),
59          a.Ja && a.gd());
60      }
61      var a = "undefined" !== typeof S ? S : {};
62      a.b = function (b, c) {
63        for (var d = b.split("."), e = a, f = 0; f < d.length - 1; f++)
64          e = e[d[f]];
65        e[d[d.length - 1]] = c;
66      };
67      a.L = function (a, c, d) {
68        a[c] = d;
69      };
70      a.version = "3.5.1";
71      a.b("version", a.version);
72      a.options = {
73        deferUpdates: !1,
74        useOnlyNativeEvents: !1,
75        foreachHidesDestroyed: !1,
76      };
77      a.a = (function () {
78        function b(a, b) {
79          for (var c in a) f.call(a, c) && b(c, a[c]);
80        }
81        function c(a, b) {
82          if (b) for (var c in b) f.call(b, c) && (a[c] = b[c]);
83          return a;
84        }
85        function d(a, b) {
86          a.__proto__ = b;
87          return a;
88        }
89        function e(b, c, d, e) {
90          var l = b[c].match(q) || [];
91          a.a.D(d.match(q), function (b) {
92            a.a.Na(l, b, e);
93          });
94          b[c] = l.join(" ");
95        }
96        var f = Object.prototype.hasOwnProperty,
97          g = { __proto__: [] } instanceof Array,
98          h = "function" === typeof Symbol,
99          m = {},
100          k = {};
101        m[R && /Firefox\/2/i.test(R.userAgent) ? "KeyboardEvent" : "UIEvents"] =
102          ["keyup", "keydown", "keypress"];
103        m.MouseEvents =
104          "click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(
105            " ",
106          );
107        b(m, function (a, b) {
108          if (b.length) for (var c = 0, d = b.length; c < d; c++) k[b[c]] = a;
109        });
110        var l = { propertychange: !0 },
111          p =
112            w &&
113            (function () {
114              for (
115                var a = 3,
116                  b = w.createElement("div"),
117                  c = b.getElementsByTagName("i");
118                (b.innerHTML =
119                  "\x3c!--[if gt IE " + ++a + "]><i></i><![endif]--\x3e"),
120                  c[0];
121
122              );
123              return 4 < a ? a : n;
124            })(),
125          q = /\S+/g,
126          t;
127        return {
128          Jc: ["authenticity_token", /^__RequestVerificationToken(_.*)?$/],
129          D: function (a, b, c) {
130            for (var d = 0, e = a.length; d < e; d++) b.call(c, a[d], d, a);
131          },
132          A:
133            "function" == typeof Array.prototype.indexOf
134              ? function (a, b) {
135                  return Array.prototype.indexOf.call(a, b);
136                }
137              : function (a, b) {
138                  for (var c = 0, d = a.length; c < d; c++)
139                    if (a[c] === b) return c;
140                  return -1;
141                },
142          Lb: function (a, b, c) {
143            for (var d = 0, e = a.length; d < e; d++)
144              if (b.call(c, a[d], d, a)) return a[d];
145            return n;
146          },
147          Pa: function (b, c) {
148            var d = a.a.A(b, c);
149            0 < d ? b.splice(d, 1) : 0 === d && b.shift();
150          },
151          wc: function (b) {
152            var c = [];
153            b &&
154              a.a.D(b, function (b) {
155                0 > a.a.A(c, b) && c.push(b);
156              });
157            return c;
158          },
159          Mb: function (a, b, c) {
160            var d = [];
161            if (a)
162              for (var e = 0, l = a.length; e < l; e++)
163                d.push(b.call(c, a[e], e));
164            return d;
165          },
166          jb: function (a, b, c) {
167            var d = [];
168            if (a)
169              for (var e = 0, l = a.length; e < l; e++)
170                b.call(c, a[e], e) && d.push(a[e]);
171            return d;
172          },
173          Nb: function (a, b) {
174            if (b instanceof Array) a.push.apply(a, b);
175            else for (var c = 0, d = b.length; c < d; c++) a.push(b[c]);
176            return a;
177          },
178          Na: function (b, c, d) {
179            var e = a.a.A(a.a.bc(b), c);
180            0 > e ? d && b.push(c) : d || b.splice(e, 1);
181          },
182          Ba: g,
183          extend: c,
184          setPrototypeOf: d,
185          Ab: g ? d : c,
186          P: b,
187          Ga: function (a, b, c) {
188            if (!a) return a;
189            var d = {},
190              e;
191            for (e in a) f.call(a, e) && (d[e] = b.call(c, a[e], e, a));
192            return d;
193          },
194          Tb: function (b) {
195            for (; b.firstChild; ) a.removeNode(b.firstChild);
196          },
197          Yb: function (b) {
198            b = a.a.la(b);
199            for (
200              var c = ((b[0] && b[0].ownerDocument) || w).createElement("div"),
201                d = 0,
202                e = b.length;
203              d < e;
204              d++
205            )
206              c.appendChild(a.oa(b[d]));
207            return c;
208          },
209          Ca: function (b, c) {
210            for (var d = 0, e = b.length, l = []; d < e; d++) {
211              var k = b[d].cloneNode(!0);
212              l.push(c ? a.oa(k) : k);
213            }
214            return l;
215          },
216          va: function (b, c) {
217            a.a.Tb(b);
218            if (c)
219              for (var d = 0, e = c.length; d < e; d++) b.appendChild(c[d]);
220          },
221          Xc: function (b, c) {
222            var d = b.nodeType ? [b] : b;
223            if (0 < d.length) {
224              for (
225                var e = d[0], l = e.parentNode, k = 0, f = c.length;
226                k < f;
227                k++
228              )
229                l.insertBefore(c[k], e);
230              k = 0;
231              for (f = d.length; k < f; k++) a.removeNode(d[k]);
232            }
233          },
234          Ua: function (a, b) {
235            if (a.length) {
236              for (
237                b = (8 === b.nodeType && b.parentNode) || b;
238                a.length && a[0].parentNode !== b;
239
240              )
241                a.splice(0, 1);
242              for (; 1 < a.length && a[a.length - 1].parentNode !== b; )
243                a.length--;
244              if (1 < a.length) {
245                var c = a[0],
246                  d = a[a.length - 1];
247                for (a.length = 0; c !== d; ) (a.push(c), (c = c.nextSibling));
248                a.push(d);
249              }
250            }
251            return a;
252          },
253          Zc: function (a, b) {
254            7 > p ? a.setAttribute("selected", b) : (a.selected = b);
255          },
256          Db: function (a) {
257            return null === a || a === n
258              ? ""
259              : a.trim
260                ? a.trim()
261                : a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g, "");
262          },
263          Ud: function (a, b) {
264            a = a || "";
265            return b.length > a.length ? !1 : a.substring(0, b.length) === b;
266          },
267          vd: function (a, b) {
268            if (a === b) return !0;
269            if (11 === a.nodeType) return !1;
270            if (b.contains)
271              return b.contains(1 !== a.nodeType ? a.parentNode : a);
272            if (b.compareDocumentPosition)
273              return 16 == (b.compareDocumentPosition(a) & 16);
274            for (; a && a != b; ) a = a.parentNode;
275            return !!a;
276          },
277          Sb: function (b) {
278            return a.a.vd(b, b.ownerDocument.documentElement);
279          },
280          kd: function (b) {
281            return !!a.a.Lb(b, a.a.Sb);
282          },
283          R: function (a) {
284            return a && a.tagName && a.tagName.toLowerCase();
285          },
286          Ac: function (b) {
287            return a.onError
288              ? function () {
289                  try {
290                    return b.apply(this, arguments);
291                  } catch (c) {
292                    throw (a.onError && a.onError(c), c);
293                  }
294                }
295              : b;
296          },
297          setTimeout: function (b, c) {
298            return setTimeout(a.a.Ac(b), c);
299          },
300          Gc: function (b) {
301            setTimeout(function () {
302              a.onError && a.onError(b);
303              throw b;
304            }, 0);
305          },
306          B: function (b, c, d) {
307            var e = a.a.Ac(d);
308            d = l[c];
309            if (a.options.useOnlyNativeEvents || d || !v)
310              if (d || "function" != typeof b.addEventListener)
311                if ("undefined" != typeof b.attachEvent) {
312                  var k = function (a) {
313                      e.call(b, a);
314                    },
315                    f = "on" + c;
316                  b.attachEvent(f, k);
317                  a.a.K.za(b, function () {
318                    b.detachEvent(f, k);
319                  });
320                } else
321                  throw Error(
322                    "Browser doesn't support addEventListener or attachEvent",
323                  );
324              else b.addEventListener(c, e, !1);
325            else
326              (t || (t = "function" == typeof v(b).on ? "on" : "bind"),
327                v(b)[t](c, e));
328          },
329          Fb: function (b, c) {
330            if (!b || !b.nodeType)
331              throw Error(
332                "element must be a DOM node when calling triggerEvent",
333              );
334            var d;
335            "input" === a.a.R(b) && b.type && "click" == c.toLowerCase()
336              ? ((d = b.type), (d = "checkbox" == d || "radio" == d))
337              : (d = !1);
338            if (a.options.useOnlyNativeEvents || !v || d)
339              if ("function" == typeof w.createEvent)
340                if ("function" == typeof b.dispatchEvent)
341                  ((d = w.createEvent(k[c] || "HTMLEvents")),
342                    d.initEvent(
343                      c,
344                      !0,
345                      !0,
346                      A,
347                      0,
348                      0,
349                      0,
350                      0,
351                      0,
352                      !1,
353                      !1,
354                      !1,
355                      !1,
356                      0,
357                      b,
358                    ),
359                    b.dispatchEvent(d));
360                else
361                  throw Error(
362                    "The supplied element doesn't support dispatchEvent",
363                  );
364              else if (d && b.click) b.click();
365              else if ("undefined" != typeof b.fireEvent) b.fireEvent("on" + c);
366              else throw Error("Browser doesn't support triggering events");
367            else v(b).trigger(c);
368          },
369          f: function (b) {
370            return a.O(b) ? b() : b;
371          },
372          bc: function (b) {
373            return a.O(b) ? b.v() : b;
374          },
375          Eb: function (b, c, d) {
376            var l;
377            c &&
378              ("object" === typeof b.classList
379                ? ((l = b.classList[d ? "add" : "remove"]),
380                  a.a.D(c.match(q), function (a) {
381                    l.call(b.classList, a);
382                  }))
383                : "string" === typeof b.className.baseVal
384                  ? e(b.className, "baseVal", c, d)
385                  : e(b, "className", c, d));
386          },
387          Bb: function (b, c) {
388            var d = a.a.f(c);
389            if (null === d || d === n) d = "";
390            var e = a.h.firstChild(b);
391            !e || 3 != e.nodeType || a.h.nextSibling(e)
392              ? a.h.va(b, [b.ownerDocument.createTextNode(d)])
393              : (e.data = d);
394            a.a.Ad(b);
395          },
396          Yc: function (a, b) {
397            a.name = b;
398            if (7 >= p)
399              try {
400                var c = a.name.replace(/[&<>'"]/g, function (a) {
401                  return "&#" + a.charCodeAt(0) + ";";
402                });
403                a.mergeAttributes(
404                  w.createElement("<input name='" + c + "'/>"),
405                  !1,
406                );
407              } catch (d) {}
408          },
409          Ad: function (a) {
410            9 <= p &&
411              ((a = 1 == a.nodeType ? a : a.parentNode),
412              a.style && (a.style.zoom = a.style.zoom));
413          },
414          wd: function (a) {
415            if (p) {
416              var b = a.style.width;
417              a.style.width = 0;
418              a.style.width = b;
419            }
420          },
421          Pd: function (b, c) {
422            b = a.a.f(b);
423            c = a.a.f(c);
424            for (var d = [], e = b; e <= c; e++) d.push(e);
425            return d;
426          },
427          la: function (a) {
428            for (var b = [], c = 0, d = a.length; c < d; c++) b.push(a[c]);
429            return b;
430          },
431          Da: function (a) {
432            return h ? Symbol(a) : a;
433          },
434          Zd: 6 === p,
435          $d: 7 === p,
436          W: p,
437          Lc: function (b, c) {
438            for (
439              var d = a.a
440                  .la(b.getElementsByTagName("input"))
441                  .concat(a.a.la(b.getElementsByTagName("textarea"))),
442                e =
443                  "string" == typeof c
444                    ? function (a) {
445                        return a.name === c;
446                      }
447                    : function (a) {
448                        return c.test(a.name);
449                      },
450                l = [],
451                k = d.length - 1;
452              0 <= k;
453              k--
454            )
455              e(d[k]) && l.push(d[k]);
456            return l;
457          },
458          Nd: function (b) {
459            return "string" == typeof b && (b = a.a.Db(b))
460              ? H && H.parse
461                ? H.parse(b)
462                : new Function("return " + b)()
463              : null;
464          },
465          hc: function (b, c, d) {
466            if (!H || !H.stringify)
467              throw Error(
468                "Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js",
469              );
470            return H.stringify(a.a.f(b), c, d);
471          },
472          Od: function (c, d, e) {
473            e = e || {};
474            var l = e.params || {},
475              k = e.includeFields || this.Jc,
476              f = c;
477            if ("object" == typeof c && "form" === a.a.R(c))
478              for (var f = c.action, h = k.length - 1; 0 <= h; h--)
479                for (var g = a.a.Lc(c, k[h]), m = g.length - 1; 0 <= m; m--)
480                  l[g[m].name] = g[m].value;
481            d = a.a.f(d);
482            var p = w.createElement("form");
483            p.style.display = "none";
484            p.action = f;
485            p.method = "post";
486            for (var q in d)
487              ((c = w.createElement("input")),
488                (c.type = "hidden"),
489                (c.name = q),
490                (c.value = a.a.hc(a.a.f(d[q]))),
491                p.appendChild(c));
492            b(l, function (a, b) {
493              var c = w.createElement("input");
494              c.type = "hidden";
495              c.name = a;
496              c.value = b;
497              p.appendChild(c);
498            });
499            w.body.appendChild(p);
500            e.submitter ? e.submitter(p) : p.submit();
501            setTimeout(function () {
502              p.parentNode.removeChild(p);
503            }, 0);
504          },
505        };
506      })();
507      a.b("utils", a.a);
508      a.b("utils.arrayForEach", a.a.D);
509      a.b("utils.arrayFirst", a.a.Lb);
510      a.b("utils.arrayFilter", a.a.jb);
511      a.b("utils.arrayGetDistinctValues", a.a.wc);
512      a.b("utils.arrayIndexOf", a.a.A);
513      a.b("utils.arrayMap", a.a.Mb);
514      a.b("utils.arrayPushAll", a.a.Nb);
515      a.b("utils.arrayRemoveItem", a.a.Pa);
516      a.b("utils.cloneNodes", a.a.Ca);
517      a.b("utils.createSymbolOrString", a.a.Da);
518      a.b("utils.extend", a.a.extend);
519      a.b("utils.fieldsIncludedWithJsonPost", a.a.Jc);
520      a.b("utils.getFormFields", a.a.Lc);
521      a.b("utils.objectMap", a.a.Ga);
522      a.b("utils.peekObservable", a.a.bc);
523      a.b("utils.postJson", a.a.Od);
524      a.b("utils.parseJson", a.a.Nd);
525      a.b("utils.registerEventHandler", a.a.B);
526      a.b("utils.stringifyJson", a.a.hc);
527      a.b("utils.range", a.a.Pd);
528      a.b("utils.toggleDomNodeCssClass", a.a.Eb);
529      a.b("utils.triggerEvent", a.a.Fb);
530      a.b("utils.unwrapObservable", a.a.f);
531      a.b("utils.objectForEach", a.a.P);
532      a.b("utils.addOrRemoveItem", a.a.Na);
533      a.b("utils.setTextContent", a.a.Bb);
534      a.b("unwrap", a.a.f);
535      Function.prototype.bind ||
536        (Function.prototype.bind = function (a) {
537          var c = this;
538          if (1 === arguments.length)
539            return function () {
540              return c.apply(a, arguments);
541            };
542          var d = Array.prototype.slice.call(arguments, 1);
543          return function () {
544            var e = d.slice(0);
545            e.push.apply(e, arguments);
546            return c.apply(a, e);
547          };
548        });
549      a.a.g = new (function () {
550        var b = 0,
551          c = "__ko__" + new Date().getTime(),
552          d = {},
553          e,
554          f;
555        a.a.W
556          ? ((e = function (a, e) {
557              var f = a[c];
558              if (!f || "null" === f || !d[f]) {
559                if (!e) return n;
560                f = a[c] = "ko" + b++;
561                d[f] = {};
562              }
563              return d[f];
564            }),
565            (f = function (a) {
566              var b = a[c];
567              return b ? (delete d[b], (a[c] = null), !0) : !1;
568            }))
569          : ((e = function (a, b) {
570              var d = a[c];
571              !d && b && (d = a[c] = {});
572              return d;
573            }),
574            (f = function (a) {
575              return a[c] ? (delete a[c], !0) : !1;
576            }));
577        return {
578          get: function (a, b) {
579            var c = e(a, !1);
580            return c && c[b];
581          },
582          set: function (a, b, c) {
583            (a = e(a, c !== n)) && (a[b] = c);
584          },
585          Ub: function (a, b, c) {
586            a = e(a, !0);
587            return a[b] || (a[b] = c);
588          },
589          clear: f,
590          Z: function () {
591            return b++ + c;
592          },
593        };
594      })();
595      a.b("utils.domData", a.a.g);
596      a.b("utils.domData.clear", a.a.g.clear);
597      a.a.K = new (function () {
598        function b(b, c) {
599          var d = a.a.g.get(b, e);
600          d === n && c && ((d = []), a.a.g.set(b, e, d));
601          return d;
602        }
603        function c(c) {
604          var e = b(c, !1);
605          if (e) for (var e = e.slice(0), k = 0; k < e.length; k++) e[k](c);
606          a.a.g.clear(c);
607          a.a.K.cleanExternalData(c);
608          g[c.nodeType] && d(c.childNodes, !0);
609        }
610        function d(b, d) {
611          for (var e = [], l, f = 0; f < b.length; f++)
612            if (!d || 8 === b[f].nodeType)
613              if ((c((e[e.length] = l = b[f])), b[f] !== l))
614                for (; f-- && -1 == a.a.A(e, b[f]); );
615        }
616        var e = a.a.g.Z(),
617          f = { 1: !0, 8: !0, 9: !0 },
618          g = { 1: !0, 9: !0 };
619        return {
620          za: function (a, c) {
621            if ("function" != typeof c)
622              throw Error("Callback must be a function");
623            b(a, !0).push(c);
624          },
625          yb: function (c, d) {
626            var f = b(c, !1);
627            f && (a.a.Pa(f, d), 0 == f.length && a.a.g.set(c, e, n));
628          },
629          oa: function (b) {
630            a.u.G(function () {
631              f[b.nodeType] &&
632                (c(b), g[b.nodeType] && d(b.getElementsByTagName("*")));
633            });
634            return b;
635          },
636          removeNode: function (b) {
637            a.oa(b);
638            b.parentNode && b.parentNode.removeChild(b);
639          },
640          cleanExternalData: function (a) {
641            v && "function" == typeof v.cleanData && v.cleanData([a]);
642          },
643        };
644      })();
645      a.oa = a.a.K.oa;
646      a.removeNode = a.a.K.removeNode;
647      a.b("cleanNode", a.oa);
648      a.b("removeNode", a.removeNode);
649      a.b("utils.domNodeDisposal", a.a.K);
650      a.b("utils.domNodeDisposal.addDisposeCallback", a.a.K.za);
651      a.b("utils.domNodeDisposal.removeDisposeCallback", a.a.K.yb);
652      (function () {
653        var b = [0, "", ""],
654          c = [1, "<table>", "</table>"],
655          d = [3, "<table><tbody><tr>", "</tr></tbody></table>"],
656          e = [1, "<select multiple='multiple'>", "</select>"],
657          f = {
658            thead: c,
659            tbody: c,
660            tfoot: c,
661            tr: [2, "<table><tbody>", "</tbody></table>"],
662            td: d,
663            th: d,
664            option: e,
665            optgroup: e,
666          },
667          g = 8 >= a.a.W;
668        a.a.ua = function (c, d) {
669          var e;
670          if (v)
671            if (v.parseHTML) e = v.parseHTML(c, d) || [];
672            else {
673              if ((e = v.clean([c], d)) && e[0]) {
674                for (
675                  var l = e[0];
676                  l.parentNode && 11 !== l.parentNode.nodeType;
677
678                )
679                  l = l.parentNode;
680                l.parentNode && l.parentNode.removeChild(l);
681              }
682            }
683          else {
684            (e = d) || (e = w);
685            var l = e.parentWindow || e.defaultView || A,
686              p = a.a.Db(c).toLowerCase(),
687              q = e.createElement("div"),
688              t;
689            t =
690              ((p = p.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/)) &&
691                f[p[1]]) ||
692              b;
693            p = t[0];
694            t = "ignored<div>" + t[1] + c + t[2] + "</div>";
695            "function" == typeof l.innerShiv
696              ? q.appendChild(l.innerShiv(t))
697              : (g && e.body.appendChild(q),
698                (q.innerHTML = t),
699                g && q.parentNode.removeChild(q));
700            for (; p--; ) q = q.lastChild;
701            e = a.a.la(q.lastChild.childNodes);
702          }
703          return e;
704        };
705        a.a.Md = function (b, c) {
706          var d = a.a.ua(b, c);
707          return (d.length && d[0].parentElement) || a.a.Yb(d);
708        };
709        a.a.fc = function (b, c) {
710          a.a.Tb(b);
711          c = a.a.f(c);
712          if (null !== c && c !== n)
713            if (("string" != typeof c && (c = c.toString()), v)) v(b).html(c);
714            else
715              for (var d = a.a.ua(c, b.ownerDocument), e = 0; e < d.length; e++)
716                b.appendChild(d[e]);
717        };
718      })();
719      a.b("utils.parseHtmlFragment", a.a.ua);
720      a.b("utils.setHtml", a.a.fc);
721      a.aa = (function () {
722        function b(c, e) {
723          if (c)
724            if (8 == c.nodeType) {
725              var f = a.aa.Uc(c.nodeValue);
726              null != f && e.push({ ud: c, Kd: f });
727            } else if (1 == c.nodeType)
728              for (var f = 0, g = c.childNodes, h = g.length; f < h; f++)
729                b(g[f], e);
730        }
731        var c = {};
732        return {
733          Xb: function (a) {
734            if ("function" != typeof a)
735              throw Error(
736                "You can only pass a function to ko.memoization.memoize()",
737              );
738            var b =
739              ((4294967296 * (1 + Math.random())) | 0)
740                .toString(16)
741                .substring(1) +
742              ((4294967296 * (1 + Math.random())) | 0)
743                .toString(16)
744                .substring(1);
745            c[b] = a;
746            return "\x3c!--[ko_memo:" + b + "]--\x3e";
747          },
748          bd: function (a, b) {
749            var f = c[a];
750            if (f === n)
751              throw Error(
752                "Couldn't find any memo with ID " +
753                  a +
754                  ". Perhaps it's already been unmemoized.",
755              );
756            try {
757              return (f.apply(null, b || []), !0);
758            } finally {
759              delete c[a];
760            }
761          },
762          cd: function (c, e) {
763            var f = [];
764            b(c, f);
765            for (var g = 0, h = f.length; g < h; g++) {
766              var m = f[g].ud,
767                k = [m];
768              e && a.a.Nb(k, e);
769              a.aa.bd(f[g].Kd, k);
770              m.nodeValue = "";
771              m.parentNode && m.parentNode.removeChild(m);
772            }
773          },
774          Uc: function (a) {
775            return (a = a.match(/^\[ko_memo\:(.*?)\]$/)) ? a[1] : null;
776          },
777        };
778      })();
779      a.b("memoization", a.aa);
780      a.b("memoization.memoize", a.aa.Xb);
781      a.b("memoization.unmemoize", a.aa.bd);
782      a.b("memoization.parseMemoText", a.aa.Uc);
783      a.b("memoization.unmemoizeDomNodeAndDescendants", a.aa.cd);
784      a.na = (function () {
785        function b() {
786          if (f)
787            for (var b = f, c = 0, d; h < f; )
788              if ((d = e[h++])) {
789                if (h > b) {
790                  if (5e3 <= ++c) {
791                    h = f;
792                    a.a.Gc(
793                      Error(
794                        "'Too much recursion' after processing " +
795                          c +
796                          " task groups.",
797                      ),
798                    );
799                    break;
800                  }
801                  b = f;
802                }
803                try {
804                  d();
805                } catch (p) {
806                  a.a.Gc(p);
807                }
808              }
809        }
810        function c() {
811          b();
812          h = f = e.length = 0;
813        }
814        var d,
815          e = [],
816          f = 0,
817          g = 1,
818          h = 0;
819        A.MutationObserver
820          ? (d = (function (a) {
821              var b = w.createElement("div");
822              new MutationObserver(a).observe(b, { attributes: !0 });
823              return function () {
824                b.classList.toggle("foo");
825              };
826            })(c))
827          : (d =
828              w && "onreadystatechange" in w.createElement("script")
829                ? function (a) {
830                    var b = w.createElement("script");
831                    b.onreadystatechange = function () {
832                      b.onreadystatechange = null;
833                      w.documentElement.removeChild(b);
834                      b = null;
835                      a();
836                    };
837                    w.documentElement.appendChild(b);
838                  }
839                : function (a) {
840                    setTimeout(a, 0);
841                  });
842        return {
843          scheduler: d,
844          zb: function (b) {
845            f || a.na.scheduler(c);
846            e[f++] = b;
847            return g++;
848          },
849          cancel: function (a) {
850            a = a - (g - f);
851            a >= h && a < f && (e[a] = null);
852          },
853          resetForTesting: function () {
854            var a = f - h;
855            h = f = e.length = 0;
856            return a;
857          },
858          Sd: b,
859        };
860      })();
861      a.b("tasks", a.na);
862      a.b("tasks.schedule", a.na.zb);
863      a.b("tasks.runEarly", a.na.Sd);
864      a.Ta = {
865        throttle: function (b, c) {
866          b.throttleEvaluation = c;
867          var d = null;
868          return a.$({
869            read: b,
870            write: function (e) {
871              clearTimeout(d);
872              d = a.a.setTimeout(function () {
873                b(e);
874              }, c);
875            },
876          });
877        },
878        rateLimit: function (a, c) {
879          var d, e, f;
880          "number" == typeof c ? (d = c) : ((d = c.timeout), (e = c.method));
881          a.Hb = !1;
882          f = "function" == typeof e ? e : "notifyWhenChangesStop" == e ? Y : X;
883          a.ub(function (a) {
884            return f(a, d, c);
885          });
886        },
887        deferred: function (b, c) {
888          if (!0 !== c)
889            throw Error(
890              "The 'deferred' extender only accepts the value 'true', be
890cause it is not supported to turn deferral off once enabled.",
891            );
892          b.Hb ||
893            ((b.Hb = !0),
894            b.ub(function (c) {
895              var e,
896                f = !1;
897              return function () {
898                if (!f) {
899                  a.na.cancel(e);
900                  e = a.na.zb(c);
901                  try {
902                    ((f = !0), b.notifySubscribers(n, "dirty"));
903                  } finally {
904                    f = !1;
905                  }
906                }
907              };
908            }));
909        },
910        notify: function (a, c) {
911          a.equalityComparer = "always" == c ? null : K;
912        },
913      };
914      var W = { undefined: 1, boolean: 1, number: 1, string: 1 };
915      a.b("extenders", a.Ta);
916      a.ic = function (b, c, d) {
917        this.da = b;
918        this.lc = c;
919        this.mc = d;
920        this.Ib = !1;
921        this.fb = this.Jb = null;
922        a.L(this, "dispose", this.s);
923        a.L(this, "disposeWhenNodeIsRemoved", this.l);
924      };
925      a.ic.prototype.s = function () {
926        this.Ib ||
927          (this.fb && a.a.K.yb(this.Jb, this.fb),
928          (this.Ib = !0),
929          this.mc(),
930          (this.da = this.lc = this.mc = this.Jb = this.fb = null));
931      };
932      a.ic.prototype.l = function (b) {
933        this.Jb = b;
934        a.a.K.za(b, (this.fb = this.s.bind(this)));
935      };
936      a.T = function () {
937        a.a.Ab(this, D);
938        D.qb(this);
939      };
940      var D = {
941        qb: function (a) {
942          a.U = { change: [] };
943          a.sc = 1;
944        },
945        subscribe: function (b, c, d) {
946          var e = this;
947          d = d || "change";
948          var f = new a.ic(e, c ? b.bind(c) : b, function () {
949            a.a.Pa(e.U[d], f);
950            e.hb && e.hb(d);
951          });
952          e.Qa && e.Qa(d);
953          e.U[d] || (e.U[d] = []);
954          e.U[d].push(f);
955          return f;
956        },
957        notifySubscribers: function (b, c) {
958          c = c || "change";
959          "change" === c && this.Gb();
960          if (this.Wa(c)) {
961            var d = ("change" === c && this.ed) || this.U[c].slice(0);
962            try {
963              a.u.xc();
964              for (var e = 0, f; (f = d[e]); ++e) f.Ib || f.lc(b);
965            } finally {
966              a.u.end();
967            }
968          }
969        },
970        ob: function () {
971          return this.sc;
972        },
973        Dd: function (a) {
974          return this.ob() !== a;
975        },
976        Gb: function () {
977          ++this.sc;
978        },
979        ub: function (b) {
980          var c = this,
981            d = a.O(c),
982            e,
983            f,
984            g,
985            h,
986            m;
987          c.gb || ((c.gb = c.notifySubscribers), (c.notifySubscribers = Z));
988          var k = b(function () {
989            c.Ja = !1;
990            d && h === c && (h = c.nc ? c.nc() : c());
991            var a = f || (m && c.sb(g, h));
992            m = f = e = !1;
993            a && c.gb((g = h));
994          });
995          c.qc = function (a, b) {
996            (b && c.Ja) || (m = !b);
997            c.ed = c.U.change.slice(0);
998            c.Ja = e = !0;
999            h = a;
1000            k();
1001          };
1002          c.pc = function (a) {
1003            e || ((g = a), c.gb(a, "beforeChange"));
1004          };
1005          c.rc = function () {
1006            m = !0;
1007          };
1008          c.gd = function () {
1009            c.sb(g, c.v(!0)) && (f = !0);
1010          };
1011        },
1012        Wa: function (a) {
1013          return this.U[a] && this.U[a].length;
1014        },
1015        Bd: function (b) {
1016          if (b) return (this.U[b] && this.U[b].length) || 0;
1017          var c = 0;
1018          a.a.P(this.U, function (a, b) {
1019            "dirty" !== a && (c += b.length);
1020          });
1021          return c;
1022        },
1023        sb: function (a, c) {
1024          return !this.equalityComparer || !this.equalityComparer(a, c);
1025        },
1026        toString: function () {
1027          return "[object Object]";
1028        },
1029        extend: function (b) {
1030          var c = this;
1031          b &&
1032            a.a.P(b, function (b, e) {
1033              var f = a.Ta[b];
1034              "function" == typeof f && (c = f(c, e) || c);
1035            });
1036          return c;
1037        },
1038      };
1039      a.L(D, "init", D.qb);
1040      a.L(D, "subscribe", D.subscribe);
1041      a.L(D, "extend", D.extend);
1042      a.L(D, "getSubscriptionsCount", D.Bd);
1043      a.a.Ba && a.a.setPrototypeOf(D, Function.prototype);
1044      a.T.fn = D;
1045      a.Qc = function (a) {
1046        return (
1047          null != a &&
1048          "function" == typeof a.subscribe &&
1049          "function" == typeof a.notifySubscribers
1050        );
1051      };
1052      a.b("subscribable", a.T);
1053      a.b("isSubscribable", a.Qc);
1054      a.S = a.u = (function () {
1055        function b(a) {
1056          d.push(e);
1057          e = a;
1058        }
1059        function c() {
1060          e = d.pop();
1061        }
1062        var d = [],
1063          e,
1064          f = 0;
1065        return {
1066          xc: b,
1067          end: c,
1068          cc: function (b) {
1069            if (e) {
1070              if (!a.Qc(b))
1071                throw Error("Only subscribable things can act as dependencies");
1072              e.od.call(e.pd, b, b.fd || (b.fd = ++f));
1073            }
1074          },
1075          G: function (a, d, e) {
1076            try {
1077              return (b(), a.apply(d, e || []));
1078            } finally {
1079              c();
1080            }
1081          },
1082          qa: function () {
1083            if (e) return e.o.qa();
1084          },
1085          Va: function () {
1086            if (e) return e.o.Va();
1087          },
1088          Ya: function () {
1089            if (e) return e.Ya;
1090          },
1091          o: function () {
1092            if (e) return e.o;
1093          },
1094        };
1095      })();
1096      a.b("computedContext", a.S);
1097      a.b("computedContext.getDependenciesCount", a.S.qa);
1098      a.b("computedContext.getDependencies", a.S.Va);
1099      a.b("computedContext.isInitial", a.S.Ya);
1100      a.b("computedContext.registerDependency", a.S.cc);
1101      a.b("ignoreDependencies", (a.Yd = a.u.G));
1102      var I = a.a.Da("_latestValue");
1103      a.ta = function (b) {
1104        function c() {
1105          if (0 < arguments.length)
1106            return (
1107              c.sb(c[I], arguments[0]) &&
1108                (c.ya(), (c[I] = arguments[0]), c.xa()),
1109              this
1110            );
1111          a.u.cc(c);
1112          return c[I];
1113        }
1114        c[I] = b;
1115        a.a.Ba || a.a.extend(c, a.T.fn);
1116        a.T.fn.qb(c);
1117        a.a.Ab(c, F);
1118        a.options.deferUpdates && a.Ta.deferred(c, !0);
1119        return c;
1120      };
1121      var F = {
1122        equalityComparer: K,
1123        v: function () {
1124          return this[I];
1125        },
1126        xa: function () {
1127          this.notifySubscribers(this[I], "spectate");
1128          this.notifySubscribers(this[I]);
1129        },
1130        ya: function () {
1131          this.notifySubscribers(this[I], "beforeChange");
1132        },
1133      };
1134      a.a.Ba && a.a.setPrototypeOf(F, a.T.fn);
1135      var G = (a.ta.Ma = "__ko_proto__");
1136      F[G] = a.ta;
1137      a.O = function (b) {
1138        if (
1139          (b = "function" == typeof b && b[G]) &&
1140          b !== F[G] &&
1141          b !== a.o.fn[G]
1142        )
1143          throw Error(
1144            "Invalid object that looks like an observable; possibly from another Knockout instance",
1145          );
1146        return !!b;
1147      };
1148      a.Za = function (b) {
1149        return (
1150          "function" == typeof b &&
1151          (b[G] === F[G] || (b[G] === a.o.fn[G] && b.Nc))
1152        );
1153      };
1154      a.b("observable", a.ta);
1155      a.b("isObservable", a.O);
1156      a.b("isWriteableObservable", a.Za);
1157      a.b("isWritableObservable", a.Za);
1158      a.b("observable.fn", F);
1159      a.L(F, "peek", F.v);
1160      a.L(F, "valueHasMutated", F.xa);
1161      a.L(F, "valueWillMutate", F.ya);
1162      a.Ha = function (b) {
1163        b = b || [];
1164        if ("object" != typeof b || !("length" in b))
1165          throw Error(
1166            "The argument passed when initializing an observable array must be an array, or null, or undefined.",
1167          );
1168        b = a.ta(b);
1169        a.a.Ab(b, a.Ha.fn);
1170        return b.extend({ trackArrayChanges: !0 });
1171      };
1172      a.Ha.fn = {
1173        remove: function (b) {
1174          for (
1175            var c = this.v(),
1176              d = [],
1177              e =
1178                "function" != typeof b || a.O(b)
1179                  ? function (a) {
1180                      return a === b;
1181                    }
1182                  : b,
1183              f = 0;
1184            f < c.length;
1185            f++
1186          ) {
1187            var g = c[f];
1188            if (e(g)) {
1189              0 === d.length && this.ya();
1190              if (c[f] !== g)
1191                throw Error("Array modified during remove; cannot remove item");
1192              d.push(g);
1193              c.splice(f, 1);
1194              f--;
1195            }
1196          }
1197          d.length && this.xa();
1198          return d;
1199        },
1200        removeAll: function (b) {
1201          if (b === n) {
1202            var c = this.v(),
1203              d = c.slice(0);
1204            this.ya();
1205            c.splice(0, c.length);
1206            this.xa();
1207            return d;
1208          }
1209          return b
1210            ? this.remove(function (c) {
1211                return 0 <= a.a.A(b, c);
1212              })
1213            : [];
1214        },
1215        destroy: function (b) {
1216          var c = this.v(),
1217            d =
1218              "function" != typeof b || a.O(b)
1219                ? function (a) {
1220                    return a === b;
1221                  }
1222                : b;
1223          this.ya();
1224          for (var e = c.length - 1; 0 <= e; e--) {
1225            var f = c[e];
1226            d(f) && (f._destroy = !0);
1227          }
1228          this.xa();
1229        },
1230        destroyAll: function (b) {
1231          return b === n
1232            ? this.destroy(function () {
1233                return !0;
1234              })
1235            : b
1236              ? this.destroy(function (c) {
1237                  return 0 <= a.a.A(b, c);
1238                })
1239              : [];
1240        },
1241        indexOf: function (b) {
1242          var c = this();
1243          return a.a.A(c, b);
1244        },
1245        replace: function (a, c) {
1246          var d = this.indexOf(a);
1247          0 <= d && (this.ya(), (this.v()[d] = c), this.xa());
1248        },
1249        sorted: function (a) {
1250          var c = this().slice(0);
1251          return a ? c.sort(a) : c.sort();
1252        },
1253        reversed: function () {
1254          return this().slice(0).reverse();
1255        },
1256      };
1257      a.a.Ba && a.a.setPrototypeOf(a.Ha.fn, a.ta.fn);
1258      a.a.D(
1259        "pop push reverse shift sort splice unshift".split(" "),
1260        function (b) {
1261          a.Ha.fn[b] = function () {
1262            var a = this.v();
1263            this.ya();
1264            this.zc(a, b, arguments);
1265            var d = a[b].apply(a, arguments);
1266            this.xa();
1267            return d === a ? this : d;
1268          };
1269        },
1270      );
1271      a.a.D(["slice"], function (b) {
1272        a.Ha.fn[b] = function () {
1273          var a = this();
1274          return a[b].apply(a, arguments);
1275        };
1276      });
1277      a.Pc = function (b) {
1278        return (
1279          a.O(b) && "function" == typeof b.remove && "function" == typeof b.push
1280        );
1281      };
1282      a.b("observableArray", a.Ha);
1283      a.b("isObservableArray", a.Pc);
1284      a.Ta.trackArrayChanges = function (b, c) {
1285        function d() {
1286          function c() {
1287            if (m) {
1288              var d = [].concat(b.v() || []),
1289                e;
1290              if (b.Wa("arrayChange")) {
1291                if (!f || 1 < m) f = a.a.Pb(k, d, b.Ob);
1292                e = f;
1293              }
1294              k = d;
1295              f = null;
1296              m = 0;
1297              e && e.length && b.notifySubscribers(e, "arrayChange");
1298            }
1299          }
1300          e
1301            ? c()
1302            : ((e = !0),
1303              (h = b.subscribe(
1304                function () {
1305                  ++m;
1306                },
1307                null,
1308                "spectate",
1309              )),
1310              (k = [].concat(b.v() || [])),
1311              (f = null),
1312              (g = b.subscribe(c)));
1313        }
1314        b.Ob = {};
1315        c && "object" == typeof c && a.a.extend(b.Ob, c);
1316        b.Ob.sparse = !0;
1317        if (!b.zc) {
1318          var e = !1,
1319            f = null,
1320            g,
1321            h,
1322            m = 0,
1323            k,
1324            l = b.Qa,
1325            p = b.hb;
1326          b.Qa = function (a) {
1327            l && l.call(b, a);
1328            "arrayChange" === a && d();
1329          };
1330          b.hb = function (a) {
1331            p && p.call(b, a);
1332            "arrayChange" !== a ||
1333              b.Wa("arrayChange") ||
1334              (g && g.s(), h && h.s(), (h = g = null), (e = !1), (k = n));
1335          };
1336          b.zc = function (b, c, d) {
1337            function l(a, b, c) {
1338              return (k[k.length] = { status: a, value: b, index: c });
1339            }
1340            if (e && !m) {
1341              var k = [],
1342                p = b.length,
1343                g = d.length,
1344                h = 0;
1345              switch (c) {
1346                case "push":
1347                  h = p;
1348                case "unshift":
1349                  for (c = 0; c < g; c++) l("added", d[c], h + c);
1350                  break;
1351                case "pop":
1352                  h = p - 1;
1353                case "shift":
1354                  p && l("deleted", b[h], h);
1355                  break;
1356                case "splice":
1357                  c = Math.min(Math.max(0, 0 > d[0] ? p + d[0] : d[0]), p);
1358                  for (
1359                    var p = 1 === g ? p : Math.min(c + (d[1] || 0), p),
1360                      g = c + g - 2,
1361                      h = Math.max(p, g),
1362                      U = [],
1363                      L = [],
1364                      n = 2;
1365                    c < h;
1366                    ++c, ++n
1367                  )
1368                    (c < p && L.push(l("deleted", b[c], c)),
1369                      c < g && U.push(l("added", d[n], c)));
1370                  a.a.Kc(L, U);
1371                  break;
1372                default:
1373                  return;
1374              }
1375              f = k;
1376            }
1377          };
1378        }
1379      };
1380      var r = a.a.Da("_state");
1381      a.o = a.$ = function (b, c, d) {
1382        function e() {
1383          if (0 < arguments.length) {
1384            if ("function" === typeof f) f.apply(g.nb, arguments);
1385            else
1386              throw Error(
1387                "Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.",
1388              );
1389            return this;
1390          }
1391          g.ra || a.u.cc(e);
1392          (g.ka || (g.J && e.Xa())) && e.ha();
1393          return g.X;
1394        }
1395        "object" === typeof b ? (d = b) : ((d = d || {}), b && (d.read = b));
1396        if ("function" != typeof d.read)
1397          throw Error(
1398            "Pass a function that returns the value of the ko.computed",
1399          );
1400        var f = d.write,
1401          g = {
1402            X: n,
1403            sa: !0,
1404            ka: !0,
1405            rb: !1,
1406            jc: !1,
1407            ra: !1,
1408            wb: !1,
1409            J: !1,
1410            Wc: d.read,
1411            nb: c || d.owner,
1412            l: d.disposeWhenNodeIsRemoved || d.l || null,
1413            Sa: d.disposeWhen || d.Sa,
1414            Rb: null,
1415            I: {},
1416            V: 0,
1417            Ic: null,
1418          };
1419        e[r] = g;
1420        e.Nc = "function" === typeof f;
1421        a.a.Ba || a.a.extend(e, a.T.fn);
1422        a.T.fn.qb(e);
1423        a.a.Ab(e, C);
1424        d.pure
1425          ? ((g.wb = !0), (g.J = !0), a.a.extend(e, da))
1426          : d.deferEvaluation && a.a.extend(e, ea);
1427        a.options.deferUpdates && a.Ta.deferred(e, !0);
1428        g.l && ((g.jc = !0), g.l.nodeType || (g.l = null));
1429        g.J || d.deferEvaluation || e.ha();
1430        g.l &&
1431          e.ja() &&
1432          a.a.K.za(
1433            g.l,
1434            (g.Rb = function () {
1435              e.s();
1436            }),
1437          );
1438        return e;
1439      };
1440      var C = {
1441          equalityComparer: K,
1442          qa: function () {
1443            return this[r].V;
1444          },
1445          Va: function () {
1446            var b = [];
1447            a.a.P(this[r].I, function (a, d) {
1448              b[d.Ka] = d.da;
1449            });
1450            return b;
1451          },
1452          Vb: function (b) {
1453            if (!this[r].V) return !1;
1454            var c = this.Va();
1455            return -1 !== a.a.A(c, b)
1456              ? !0
1457              : !!a.a.Lb(c, function (a) {
1458                  return a.Vb && a.Vb(b);
1459                });
1460          },
1461          uc: function (a, c, d) {
1462            if (this[r].wb && c === this)
1463              throw Error("A 'pure' computed must not be called recursively");
1464            this[r].I[a] = d;
1465            d.Ka = this[r].V++;
1466            d.La = c.ob();
1467          },
1468          Xa: function () {
1469            var a,
1470              c,
1471              d = this[r].I;
1472            for (a in d)
1473              if (
1474                Object.prototype.hasOwnProperty.call(d, a) &&
1475                ((c = d[a]), (this.Ia && c.da.Ja) || c.da.Dd(c.La))
1476              )
1477                return !0;
1478          },
1479          Jd: function () {
1480            this.Ia && !this[r].rb && this.Ia(!1);
1481          },
1482          ja: function () {
1483            var a = this[r];
1484            return a.ka || 0 < a.V;
1485          },
1486          Rd: function () {
1487            this.Ja ? this[r].ka && (this[r].sa = !0) : this.Hc();
1488          },
1489          $c: function (a) {
1490            if (a.Hb) {
1491              var c = a.subscribe(this.Jd, this, "dirty"),
1492                d = a.subscribe(this.Rd, this);
1493              return {
1494                da: a,
1495                s: function () {
1496                  c.s();
1497                  d.s();
1498                },
1499              };
1500            }
1501            return a.subscribe(this.Hc, this);
1502          },
1503          Hc: function () {
1504            var b = this,
1505              c = b.throttleEvaluation;
1506            c && 0 <= c
1507              ? (clearTimeout(this[r].Ic),
1508                (this[r].Ic = a.a.setTimeout(function () {
1509                  b.ha(!0);
1510                }, c)))
1511              : b.Ia
1512                ? b.Ia(!0)
1513                : b.ha(!0);
1514          },
1515          ha: function (b) {
1516            var c = this[r],
1517              d = c.Sa,
1518              e = !1;
1519            if (!c.rb && !c.ra) {
1520              if ((c.l && !a.a.Sb(c.l)) || (d && d())) {
1521                if (!c.jc) {
1522                  this.s();
1523                  return;
1524                }
1525              } else c.jc = !1;
1526              c.rb = !0;
1527              try {
1528                e = this.zd(b);
1529              } finally {
1530                c.rb = !1;
1531              }
1532              return e;
1533            }
1534          },
1535          zd: function (b) {
1536            var c = this[r],
1537              d = !1,
1538              e = c.wb ? n : !c.V,
1539              d = { qd: this, mb: c.I, Qb: c.V };
1540            a.u.xc({ pd: d, od: ba, o: this, Ya: e });
1541            c.I = {};
1542            c.V = 0;
1543            var f = this.yd(c, d);
1544            c.V ? (d = this.sb(c.X, f)) : (this.s(), (d = !0));
1545            d &&
1546              (c.J ? this.Gb() : this.notifySubscribers(c.X, "beforeChange"),
1547              (c.X = f),
1548              this.notifySubscribers(c.X, "spectate"),
1549              !c.J && b && this.notifySubscribers(c.X),
1550              this.rc && this.rc());
1551            e && this.notifySubscribers(c.X, "awake");
1552            return d;
1553          },
1554          yd: function (b, c) {
1555            try {
1556              var d = b.Wc;
1557              return b.nb ? d.call(b.nb) : d();
1558            } finally {
1559              (a.u.end(), c.Qb && !b.J && a.a.P(c.mb, aa), (b.sa = b.ka = !1));
1560            }
1561          },
1562          v: function (a) {
1563            var c = this[r];
1564            ((c.ka && (a || !c.V)) || (c.J && this.Xa())) && this.ha();
1565            return c.X;
1566          },
1567          ub: function (b) {
1568            a.T.fn.ub.call(this, b);
1569            this.nc = function () {
1570              this[r].J || (this[r].sa ? this.ha() : (this[r].ka = !1));
1571              return this[r].X;
1572            };
1573            this.Ia = function (a) {
1574              this.pc(this[r].X);
1575              this[r].ka = !0;
1576              a && (this[r].sa = !0);
1577              this.qc(this, !a);
1578            };
1579          },
1580          s: function () {
1581            var b = this[r];
1582            !b.J &&
1583              b.I &&
1584              a.a.P(b.I, function (a, b) {
1585                b.s && b.s();
1586              });
1587            b.l && b.Rb && a.a.K.yb(b.l, b.Rb);
1588            b.I = n;
1589            b.V = 0;
1590            b.ra = !0;
1591            b.sa = !1;
1592            b.ka = !1;
1593            b.J = !1;
1594            b.l = n;
1595            b.Sa = n;
1596            b.Wc = n;
1597            this.Nc || (b.nb = n);
1598          },
1599        },
1600        da = {
1601          Qa: function (b) {
1602            var c = this,
1603              d = c[r];
1604            if (!d.ra && d.J && "change" == b) {
1605              d.J = !1;
1606              if (d.sa || c.Xa()) ((d.I = null), (d.V = 0), c.ha() && c.Gb());
1607              else {
1608                var e = [];
1609                a.a.P(d.I, function (a, b) {
1610                  e[b.Ka] = a;
1611                });
1612                a.a.D(e, function (a, b) {
1613                  var e = d.I[a],
1614                    m = c.$c(e.da);
1615                  m.Ka = b;
1616                  m.La = e.La;
1617                  d.I[a] = m;
1618                });
1619                c.Xa() && c.ha() && c.Gb();
1620              }
1621              d.ra || c.notifySubscribers(d.X, "awake");
1622            }
1623          },
1624          hb: function (b) {
1625            var c = this[r];
1626            c.ra ||
1627              "change" != b ||
1628              this.Wa("change") ||
1629              (a.a.P(c.I, function (a, b) {
1630                b.s && ((c.I[a] = { da: b.da, Ka: b.Ka, La: b.La }), b.s());
1631              }),
1632              (c.J = !0),
1633              this.notifySubscribers(n, "asleep"));
1634          },
1635          ob: function () {
1636            var b = this[r];
1637            b.J && (b.sa || this.Xa()) && this.ha();
1638            return a.T.fn.ob.call(this);
1639          },
1640        },
1641        ea = {
1642          Qa: function (a) {
1643            ("change" != a && "beforeChange" != a) || this.v();
1644          },
1645        };
1646      a.a.Ba && a.a.setPrototypeOf(C, a.T.fn);
1647      var N = a.ta.Ma;
1648      C[N] = a.o;
1649      a.Oc = function (a) {
1650        return "function" == typeof a && a[N] === C[N];
1651      };
1652      a.Fd = function (b) {
1653        return a.Oc(b) && b[r] && b[r].wb;
1654      };
1655      a.b("computed", a.o);
1656      a.b("dependentObservable", a.o);
1657      a.b("isComputed", a.Oc);
1658      a.b("isPureComputed", a.Fd);
1659      a.b("computed.fn", C);
1660      a.L(C, "peek", C.v);
1661      a.L(C, "dispose", C.s);
1662      a.L(C, "isActive", C.ja);
1663      a.L(C, "getDependenciesCount", C.qa);
1664      a.L(C, "getDependencies", C.Va);
1665      a.xb = function (b, c) {
1666        if ("function" === typeof b) return a.o(b, c, { pure: !0 });
1667        b = a.a.extend({}, b);
1668        b.pure = !0;
1669        return a.o(b, c);
1670      };
1671      a.b("pureComputed", a.xb);
1672      (function () {
1673        function b(a, f, g) {
1674          g = g || new d();
1675          a = f(a);
1676          if (
1677            "object" != typeof a ||
1678            null === a ||
1679            a === n ||
1680            a instanceof RegExp ||
1681            a instanceof Date ||
1682            a instanceof String ||
1683            a instanceof Number ||
1684            a instanceof Boolean
1685          )
1686            return a;
1687          var h = a instanceof Array ? [] : {};
1688          g.save(a, h);
1689          c(a, function (c) {
1690            var d = f(a[c]);
1691            switch (typeof d) {
1692              case "boolean":
1693              case "number":
1694              case "string":
1695              case "function":
1696                h[c] = d;
1697                break;
1698              case "object":
1699              case "undefined":
1700                var l = g.get(d);
1701                h[c] = l !== n ? l : b(d, f, g);
1702            }
1703          });
1704          return h;
1705        }
1706        function c(a, b) {
1707          if (a instanceof Array) {
1708            for (var c = 0; c < a.length; c++) b(c);
1709            "function" == typeof a.toJSON && b("toJSON");
1710          } else for (c in a) b(c);
1711        }
1712        function d() {
1713          this.keys = [];
1714          this.values = [];
1715        }
1716        a.ad = function (c) {
1717          if (0 == arguments.length)
1718            throw Error(
1719              "When calling ko.toJS, pass the object you want to convert.",
1720            );
1721          return b(c, function (b) {
1722            for (var c = 0; a.O(b) && 10 > c; c++) b = b();
1723            return b;
1724          });
1725        };
1726        a.toJSON = function (b, c, d) {
1727          b = a.ad(b);
1728          return a.a.hc(b, c, d);
1729        };
1730        d.prototype = {
1731          constructor: d,
1732          save: function (b, c) {
1733            var d = a.a.A(this.keys, b);
1734            0 <= d
1735              ? (this.values[d] = c)
1736              : (this.keys.push(b), this.values.push(c));
1737          },
1738          get: function (b) {
1739            b = a.a.A(this.keys, b);
1740            return 0 <= b ? this.values[b] : n;
1741          },
1742        };
1743      })();
1744      a.b("toJS", a.ad);
1745      a.b("toJSON", a.toJSON);
1746      a.Wd = function (b, c, d) {
1747        function e(c) {
1748          var e = a.xb(b, d).extend({ ma: "always" }),
1749            h = e.subscribe(function (a) {
1750              a && (h.s(), c(a));
1751            });
1752          e.notifySubscribers(e.v());
1753          return h;
1754        }
1755        return "function" !== typeof Promise || c
1756          ? e(c.bind(d))
1757          : new Promise(e);
1758      };
1759      a.b("when", a.Wd);
1760      (function () {
1761        a.w = {
1762          M: function (b) {
1763            switch (a.a.R(b)) {
1764              case "option":
1765                return !0 === b.__ko__hasDomDataOptionValue__
1766                  ? a.a.g.get(b, a.c.options.$b)
1767                  : 7 >= a.a.W
1768                    ? b.getAttributeNode("value") &&
1769                      b.getAttributeNode("value").specified
1770                      ? b.value
1771                      : b.text
1772                    : b.value;
1773              case "select":
1774                return 0 <= b.selectedIndex
1775                  ? a.w.M(b.options[b.selectedIndex])
1776                  : n;
1777              default:
1778                return b.value;
1779            }
1780          },
1781          cb: function (b, c, d) {
1782            switch (a.a.R(b)) {
1783              case "option":
1784                "string" === typeof c
1785                  ? (a.a.g.set(b, a.c.options.$b, n),
1786                    "__ko__hasDomDataOptionValue__" in b &&
1787                      delete b.__ko__hasDomDataOptionValue__,
1788                    (b.value = c))
1789                  : (a.a.g.set(b, a.c.options.$b, c),
1790                    (b.__ko__hasDomDataOptionValue__ = !0),
1791                    (b.value = "number" === typeof c ? c : ""));
1792                break;
1793              case "select":
1794                if ("" === c || null === c) c = n;
1795                for (var e = -1, f = 0, g = b.options.length, h; f < g; ++f)
1796                  if (
1797                    ((h = a.w.M(b.options[f])), h == c || ("" === h && c === n))
1798                  ) {
1799                    e = f;
1800                    break;
1801                  }
1802                if (d || 0 <= e || (c === n && 1 < b.size))
1803                  ((b.selectedIndex = e),
1804                    6 === a.a.W &&
1805                      a.a.setTimeout(function () {
1806                        b.selectedIndex = e;
1807                      }, 0));
1808                break;
1809              default:
1810                if (null === c || c === n) c = "";
1811                b.value = c;
1812            }
1813          },
1814        };
1815      })();
1816      a.b("selectExtensions", a.w);
1817      a.b("selectExtensions.readValue", a.w.M);
1818      a.b("selectExtensions.writeValue", a.w.cb);
1819      a.m = (function () {
1820        function b(b) {
1821          b = a.a.Db(b);
1822          123 === b.charCodeAt(0) && (b = b.slice(1, -1));
1823          b += "\n,";
1824          var c = [],
1825            d = b.match(e),
1826            p,
1827            q = [],
1828            h = 0;
1829          if (1 < d.length) {
1830            for (var x = 0, B; (B = d[x]); ++x) {
1831              var u = B.charCodeAt(0);
1832              if (44 === u) {
1833                if (0 >= h) {
1834                  c.push(
1835                    p && q.length
1836                      ? { key: p, value: q.join("") }
1837                      : { unknown: p || q.join("") },
1838                  );
1839                  p = h = 0;
1840                  q = [];
1841                  continue;
1842                }
1843              } else if (58 === u) {
1844                if (!h && !p && 1 === q.length) {
1845                  p = q.pop();
1846                  continue;
1847                }
1848              } else if (
1849                47 === u &&
1850                1 < B.length &&
1851                (47 === B.charCodeAt(1) || 42 === B.charCodeAt(1))
1852              )
1853                continue;
1854              else
1855                47 === u && x && 1 < B.length
1856                  ? (u = d[x - 1].match(f)) &&
1857                    !g[u[0]] &&
1858                    ((b = b.substr(b.indexOf(B) + 1)),
1859                    (d = b.match(e)),
1860                    (x = -1),
1861                    (B = "/"))
1862                  : 40 === u || 123 === u || 91 === u
1863                    ? ++h
1864                    : 41 === u || 125 === u || 93 === u
1865                      ? --h
1866                      : p ||
1867                        q.length ||
1868                        (34 !== u && 39 !== u) ||
1869                        (B = B.slice(1, -1));
1870              q.push(B);
1871            }
1872            if (0 < h)
1873              throw Error("Unbalanced parentheses, braces, or brackets");
1874          }
1875          return c;
1876        }
1877        var c = ["true", "false", "null", "undefined"],
1878          d = /^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,
1879          e = RegExp(
1880            "\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|`(?:\\\\.|[^`])*`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.*\n|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,\"'`{}()/:[\\]]*[^\\s,\"'`{}()/:[\\]]|[^\\s]",
1881            "g",
1882          ),
1883          f = /[\])"'A-Za-z0-9_$]+$/,
1884          g = { in: 1, return: 1, typeof: 1 },
1885          h = {};
1886        return {
1887          Ra: [],
1888          wa: h,
1889          ac: b,
1890          vb: function (e, f) {
1891            function l(b, e) {
1892              var f;
1893              if (!x) {
1894                var k = a.getBindingHandler(b);
1895                if (k && k.preprocess && !(e = k.preprocess(e, b, l))) return;
1896                if ((k = h[b]))
1897                  ((f = e),
1898                    0 <= a.a.A(c, f)
1899                      ? (f = !1)
1900                      : ((k = f.match(d)),
1901                        (f =
1902                          null === k
1903                            ? !1
1904                            : k[1]
1905                              ? "Object(" + k[1] + ")" + k[2]
1906                              : f)),
1907                    (k = f));
1908                k &&
1909                  q.push(
1910                    "'" +
1911                      ("string" == typeof h[b] ? h[b] : b) +
1912                      "':function(_z){" +
1913                      f +
1914                      "=_z}",
1915                  );
1916              }
1917              g && (e = "function(){return " + e + " }");
1918              p.push("'" + b + "':" + e);
1919            }
1920            f = f || {};
1921            var p = [],
1922              q = [],
1923              g = f.valueAccessors,
1924              x = f.bindingParams,
1925              B = "string" === typeof e ? b(e) : e;
1926            a.a.D(B, function (a) {
1927              l(a.key || a.unknown, a.value);
1928            });
1929            q.length && l("_ko_property_writers", "{" + q.join(",") + " }");
1930            return p.join(",");
1931          },
1932          Id: function (a, b) {
1933            for (var c = 0; c < a.length; c++) if (a[c].key == b) return !0;
1934            return !1;
1935          },
1936          eb: function (b, c, d, e, f) {
1937            if (b && a.O(b)) !a.Za(b) || (f && b.v() === e) || b(e);
1938            else if ((b = c.get("_ko_property_writers")) && b[d]) b[d](e);
1939          },
1940        };
1941      })();
1942      a.b("expressionRewriting", a.m);
1943      a.b("expressionRewriting.bindingRewriteValidators", a.m.Ra);
1944      a.b("expressionRewriting.parseObjectLiteral", a.m.ac);
1945      a.b("expressionRewriting.preProcessBindings", a.m.vb);
1946      a.b("expressionRewriting._twoWayBindings", a.m.wa);
1947      a.b("jsonExpressionRewriting", a.m);
1948      a.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson", a.m.vb);
1949      (function () {
1950        function b(a) {
1951          return 8 == a.nodeType && g.test(f ? a.text : a.nodeValue);
1952        }
1953        function c(a) {
1954          return 8 == a.nodeType && h.test(f ? a.text : a.nodeValue);
1955        }
1956        function d(d, e) {
1957          for (var f = d, h = 1, g = []; (f = f.nextSibling); ) {
1958            if (c(f) && (a.a.g.set(f, k, !0), h--, 0 === h)) return g;
1959            g.push(f);
1960            b(f) && h++;
1961          }
1962          if (!e)
1963            throw Error(
1964              "Cannot find closing comment tag to match: " + d.nodeValue,
1965            );
1966          return null;
1967        }
1968        function e(a, b) {
1969          var c = d(a, b);
1970          return c
1971            ? 0 < c.length
1972              ? c[c.length - 1].nextSibling
1973              : a.nextSibling
1974            : null;
1975        }
1976        var f = w && "\x3c!--test--\x3e" === w.createComment("test").text,
1977          g = f
1978            ? /^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/
1979            : /^\s*ko(?:\s+([\s\S]+))?\s*$/,
1980          h = f ? /^\x3c!--\s*\/ko\s*--\x3e$/ : /^\s*\/ko\s*$/,
1981          m = { ul: !0, ol: !0 },
1982          k = "__ko_matchedEndComment__";
1983        a.h = {
1984          ea: {},
1985          childNodes: function (a) {
1986            return b(a) ? d(a) : a.childNodes;
1987          },
1988          Ea: function (c) {
1989            if (b(c)) {
1990              c = a.h.childNodes(c);
1991              for (var d = 0, e = c.length; d < e;
1991 d++) a.removeNode(c[d]);
1992            } else a.a.Tb(c);
1993          },
1994          va: function (c, d) {
1995            if (b(c)) {
1996              a.h.Ea(c);
1997              for (var e = c.nextSibling, f = 0, k = d.length; f < k; f++)
1998                e.parentNode.insertBefore(d[f], e);
1999            } else a.a.va(c, d);
2000          },
2001          Vc: function (a, c) {
2002            var d;
2003            b(a)
2004              ? ((d = a.nextSibling), (a = a.parentNode))
2005              : (d = a.firstChild);
2006            d ? c !== d && a.insertBefore(c, d) : a.appendChild(c);
2007          },
2008          Wb: function (c, d, e) {
2009            e
2010              ? ((e = e.nextSibling),
2011                b(c) && (c = c.parentNode),
2012                e ? d !== e && c.insertBefore(d, e) : c.appendChild(d))
2013              : a.h.Vc(c, d);
2014          },
2015          firstChild: function (a) {
2016            if (b(a))
2017              return !a.nextSibling || c(a.nextSibling) ? null : a.nextSibling;
2018            if (a.firstChild && c(a.firstChild))
2019              throw Error(
2020                "Found invalid end comment, as the first child of " + a,
2021              );
2022            return a.firstChild;
2023          },
2024          nextSibling: function (d) {
2025            b(d) && (d = e(d));
2026            if (d.nextSibling && c(d.nextSibling)) {
2027              var f = d.nextSibling;
2028              if (c(f) && !a.a.g.get(f, k))
2029                throw Error(
2030                  "Found end comment without a matching opening comment, as child of " +
2031                    d,
2032                );
2033              return null;
2034            }
2035            return d.nextSibling;
2036          },
2037          Cd: b,
2038          Vd: function (a) {
2039            return (a = (f ? a.text : a.nodeValue).match(g)) ? a[1] : null;
2040          },
2041          Sc: function (d) {
2042            if (m[a.a.R(d)]) {
2043              var f = d.firstChild;
2044              if (f) {
2045                do
2046                  if (1 === f.nodeType) {
2047                    var k;
2048                    k = f.firstChild;
2049                    var h = null;
2050                    if (k) {
2051                      do
2052                        if (h) h.push(k);
2053                        else if (b(k)) {
2054                          var g = e(k, !0);
2055                          g ? (k = g) : (h = [k]);
2056                        } else c(k) && (h = [k]);
2057                      while ((k = k.nextSibling));
2058                    }
2059                    if ((k = h))
2060                      for (h = f.nextSibling, g = 0; g < k.length; g++)
2061                        h ? d.insertBefore(k[g], h) : d.appendChild(k[g]);
2062                  }
2063                while ((f = f.nextSibling));
2064              }
2065            }
2066          },
2067        };
2068      })();
2069      a.b("virtualElements", a.h);
2070      a.b("virtualElements.allowedBindings", a.h.ea);
2071      a.b("virtualElements.emptyNode", a.h.Ea);
2072      a.b("virtualElements.insertAfter", a.h.Wb);
2073      a.b("virtualElements.prepend", a.h.Vc);
2074      a.b("virtualElements.setDomNodeChildren", a.h.va);
2075      (function () {
2076        a.ga = function () {
2077          this.nd = {};
2078        };
2079        a.a.extend(a.ga.prototype, {
2080          nodeHasBindings: function (b) {
2081            switch (b.nodeType) {
2082              case 1:
2083                return (
2084                  null != b.getAttribute("data-bind") ||
2085                  a.j.getComponentNameForNode(b)
2086                );
2087              case 8:
2088                return a.h.Cd(b);
2089              default:
2090                return !1;
2091            }
2092          },
2093          getBindings: function (b, c) {
2094            var d = this.getBindingsString(b, c),
2095              d = d ? this.parseBindingsString(d, c, b) : null;
2096            return a.j.tc(d, b, c, !1);
2097          },
2098          getBindingAccessors: function (b, c) {
2099            var d = this.getBindingsString(b, c),
2100              d = d
2101                ? this.parseBindingsString(d, c, b, { valueAccessors: !0 })
2102                : null;
2103            return a.j.tc(d, b, c, !0);
2104          },
2105          getBindingsString: function (b) {
2106            switch (b.nodeType) {
2107              case 1:
2108                return b.getAttribute("data-bind");
2109              case 8:
2110                return a.h.Vd(b);
2111              default:
2112                return null;
2113            }
2114          },
2115          parseBindingsString: function (b, c, d, e) {
2116            try {
2117              var f = this.nd,
2118                g = b + ((e && e.valueAccessors) || ""),
2119                h;
2120              if (!(h = f[g])) {
2121                var m,
2122                  k =
2123                    "with($context){with($data||{}){return{" +
2124                    a.m.vb(b, e) +
2125                    "}}}";
2126                m = new Function("$context", "$element", k);
2127                h = f[g] = m;
2128              }
2129              return h(c, d);
2130            } catch (l) {
2131              throw (
2132                (l.message =
2133                  "Unable to parse bindings.\nBindings value: " +
2134                  b +
2135                  "\nMessage: " +
2136                  l.message),
2137                l
2138              );
2139            }
2140          },
2141        });
2142        a.ga.instance = new a.ga();
2143      })();
2144      a.b("bindingProvider", a.ga);
2145      (function () {
2146        function b(b) {
2147          var c = (b = a.a.g.get(b, z)) && b.N;
2148          c && ((b.N = null), c.Tc());
2149        }
2150        function c(c, d, e) {
2151          this.node = c;
2152          this.yc = d;
2153          this.kb = [];
2154          this.H = !1;
2155          d.N || a.a.K.za(c, b);
2156          e && e.N && (e.N.kb.push(c), (this.Kb = e));
2157        }
2158        function d(a) {
2159          return function () {
2160            return a;
2161          };
2162        }
2163        function e(a) {
2164          return a();
2165        }
2166        function f(b) {
2167          return a.a.Ga(a.u.G(b), function (a, c) {
2168            return function () {
2169              return b()[c];
2170            };
2171          });
2172        }
2173        function g(b, c, e) {
2174          return "function" === typeof b ? f(b.bind(null, c, e)) : a.a.Ga(b, d);
2175        }
2176        function h(a, b) {
2177          return f(this.getBindings.bind(this, a, b));
2178        }
2179        function m(b, c) {
2180          var d = a.h.firstChild(c);
2181          if (d) {
2182            var e,
2183              f = a.ga.instance,
2184              l = f.preprocessNode;
2185            if (l) {
2186              for (; (e = d); ) ((d = a.h.nextSibling(e)), l.call(f, e));
2187              d = a.h.firstChild(c);
2188            }
2189            for (; (e = d); ) ((d = a.h.nextSibling(e)), k(b, e));
2190          }
2191          a.i.ma(c, a.i.H);
2192        }
2193        function k(b, c) {
2194          var d = b,
2195            e = 1 === c.nodeType;
2196          e && a.h.Sc(c);
2197          if (e || a.ga.instance.nodeHasBindings(c))
2198            d = p(c, null, b).bindingContextForDescendants;
2199          d && !u[a.a.R(c)] && m(d, c);
2200        }
2201        function l(b) {
2202          var c = [],
2203            d = {},
2204            e = [];
2205          a.a.P(b, function ca(f) {
2206            if (!d[f]) {
2207              var k = a.getBindingHandler(f);
2208              k &&
2209                (k.after &&
2210                  (e.push(f),
2211                  a.a.D(k.after, function (c) {
2212                    if (b[c]) {
2213                      if (-1 !== a.a.A(e, c))
2214                        throw Error(
2215                          "Cannot combine the following bindings, because they have a cyclic dependency: " +
2216                            e.join(", "),
2217                        );
2218                      ca(c);
2219                    }
2220                  }),
2221                  e.length--),
2222                c.push({ key: f, Mc: k }));
2223              d[f] = !0;
2224            }
2225          });
2226          return c;
2227        }
2228        function p(b, c, d) {
2229          var f = a.a.g.Ub(b, z, {}),
2230            k = f.hd;
2231          if (!c) {
2232            if (k)
2233              throw Error(
2234                "You cannot apply bindings multiple times to the same element.",
2235              );
2236            f.hd = !0;
2237          }
2238          k || (f.context = d);
2239          f.Zb || (f.Zb = {});
2240          var g;
2241          if (c && "function" !== typeof c) g = c;
2242          else {
2243            var p = a.ga.instance,
2244              q = p.getBindingAccessors || h,
2245              m = a.$(
2246                function () {
2247                  if ((g = c ? c(d, b) : q.call(p, b, d))) {
2248                    if (d[t]) d[t]();
2249                    if (d[B]) d[B]();
2250                  }
2251                  return g;
2252                },
2253                null,
2254                { l: b },
2255              );
2256            (g && m.ja()) || (m = null);
2257          }
2258          var x = d,
2259            u;
2260          if (g) {
2261            var J = function () {
2262                return a.a.Ga(m ? m() : g, e);
2263              },
2264              r = m
2265                ? function (a) {
2266                    return function () {
2267                      return e(m()[a]);
2268                    };
2269                  }
2270                : function (a) {
2271                    return g[a];
2272                  };
2273            J.get = function (a) {
2274              return g[a] && e(r(a));
2275            };
2276            J.has = function (a) {
2277              return a in g;
2278            };
2279            a.i.H in g &&
2280              a.i.subscribe(b, a.i.H, function () {
2281                var c = (0, g[a.i.H])();
2282                if (c) {
2283                  var d = a.h.childNodes(b);
2284                  d.length && c(d, a.Ec(d[0]));
2285                }
2286              });
2287            a.i.pa in g &&
2288              ((x = a.i.Cb(b, d)),
2289              a.i.subscribe(b, a.i.pa, function () {
2290                var c = (0, g[a.i.pa])();
2291                c && a.h.firstChild(b) && c(b);
2292              }));
2293            f = l(g);
2294            a.a.D(f, function (c) {
2295              var d = c.Mc.init,
2296                e = c.Mc.update,
2297                f = c.key;
2298              if (8 === b.nodeType && !a.h.ea[f])
2299                throw Error(
2300                  "The binding '" +
2301                    f +
2302                    "' cannot be used with virtual elements",
2303                );
2304              try {
2305                ("function" == typeof d &&
2306                  a.u.G(function () {
2307                    var a = d(b, r(f), J, x.$data, x);
2308                    if (a && a.controlsDescendantBindings) {
2309                      if (u !== n)
2310                        throw Error(
2311                          "Multiple bindings (" +
2312                            u +
2313                            " and " +
2314                            f +
2315                            ") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.",
2316                        );
2317                      u = f;
2318                    }
2319                  }),
2320                  "function" == typeof e &&
2321                    a.$(
2322                      function () {
2323                        e(b, r(f), J, x.$data, x);
2324                      },
2325                      null,
2326                      { l: b },
2327                    ));
2328              } catch (k) {
2329                throw (
2330                  (k.message =
2331                    'Unable to process binding "' +
2332                    f +
2333                    ": " +
2334                    g[f] +
2335                    '"\nMessage: ' +
2336                    k.message),
2337                  k
2338                );
2339              }
2340            });
2341          }
2342          f = u === n;
2343          return {
2344            shouldBindDescendants: f,
2345            bindingContextForDescendants: f && x,
2346          };
2347        }
2348        function q(b, c) {
2349          return b && b instanceof a.fa ? b : new a.fa(b, n, n, c);
2350        }
2351        var t = a.a.Da("_subscribable"),
2352          x = a.a.Da("_ancestorBindingInfo"),
2353          B = a.a.Da("_dataDependency");
2354        a.c = {};
2355        var u = { script: !0, textarea: !0, template: !0 };
2356        a.getBindingHandler = function (b) {
2357          return a.c[b];
2358        };
2359        var J = {};
2360        a.fa = function (b, c, d, e, f) {
2361          function k() {
2362            var b = p ? h() : h,
2363              f = a.a.f(b);
2364            c
2365              ? (a.a.extend(l, c), x in c && (l[x] = c[x]))
2366              : ((l.$parents = []), (l.$root = f), (l.ko = a));
2367            l[t] = q;
2368            g ? (f = l.$data) : ((l.$rawData = b), (l.$data = f));
2369            d && (l[d] = f);
2370            e && e(l, c, f);
2371            if (c && c[t] && !a.S.o().Vb(c[t])) c[t]();
2372            m && (l[B] = m);
2373            return l.$data;
2374          }
2375          var l = this,
2376            g = b === J,
2377            h = g ? n : b,
2378            p = "function" == typeof h && !a.O(h),
2379            q,
2380            m = f && f.dataDependency;
2381          f && f.exportDependencies
2382            ? k()
2383            : ((q = a.xb(k)),
2384              q.v(),
2385              q.ja() ? (q.equalityComparer = null) : (l[t] = n));
2386        };
2387        a.fa.prototype.createChildContext = function (b, c, d, e) {
2388          !e &&
2389            c &&
2390            "object" == typeof c &&
2391            ((e = c), (c = e.as), (d = e.extend));
2392          if (c && e && e.noChildContext) {
2393            var f = "function" == typeof b && !a.O(b);
2394            return new a.fa(
2395              J,
2396              this,
2397              null,
2398              function (a) {
2399                d && d(a);
2400                a[c] = f ? b() : b;
2401              },
2402              e,
2403            );
2404          }
2405          return new a.fa(
2406            b,
2407            this,
2408            c,
2409            function (a, b) {
2410              a.$parentContext = b;
2411              a.$parent = b.$data;
2412              a.$parents = (b.$parents || []).slice(0);
2413              a.$parents.unshift(a.$parent);
2414              d && d(a);
2415            },
2416            e,
2417          );
2418        };
2419        a.fa.prototype.extend = function (b, c) {
2420          return new a.fa(
2421            J,
2422            this,
2423            null,
2424            function (c) {
2425              a.a.extend(c, "function" == typeof b ? b(c) : b);
2426            },
2427            c,
2428          );
2429        };
2430        var z = a.a.g.Z();
2431        c.prototype.Tc = function () {
2432          this.Kb && this.Kb.N && this.Kb.N.sd(this.node);
2433        };
2434        c.prototype.sd = function (b) {
2435          a.a.Pa(this.kb, b);
2436          !this.kb.length && this.H && this.Cc();
2437        };
2438        c.prototype.Cc = function () {
2439          this.H = !0;
2440          this.yc.N &&
2441            !this.kb.length &&
2442            ((this.yc.N = null),
2443            a.a.K.yb(this.node, b),
2444            a.i.ma(this.node, a.i.pa),
2445            this.Tc());
2446        };
2447        a.i = {
2448          H: "childrenComplete",
2449          pa: "descendantsComplete",
2450          subscribe: function (b, c, d, e, f) {
2451            var k = a.a.g.Ub(b, z, {});
2452            k.Fa || (k.Fa = new a.T());
2453            f && f.notifyImmediately && k.Zb[c] && a.u.G(d, e, [b]);
2454            return k.Fa.subscribe(d, e, c);
2455          },
2456          ma: function (b, c) {
2457            var d = a.a.g.get(b, z);
2458            if (
2459              d &&
2460              ((d.Zb[c] = !0), d.Fa && d.Fa.notifySubscribers(b, c), c == a.i.H)
2461            )
2462              if (d.N) d.N.Cc();
2463              else if (d.N === n && d.Fa && d.Fa.Wa(a.i.pa))
2464                throw Error(
2465                  "descendantsComplete event not supported for bindings on this node",
2466                );
2467          },
2468          Cb: function (b, d) {
2469            var e = a.a.g.Ub(b, z, {});
2470            e.N || (e.N = new c(b, e, d[x]));
2471            return d[x] == e
2472              ? d
2473              : d.extend(function (a) {
2474                  a[x] = e;
2475                });
2476          },
2477        };
2478        a.Td = function (b) {
2479          return (b = a.a.g.get(b, z)) && b.context;
2480        };
2481        a.ib = function (b, c, d) {
2482          1 === b.nodeType && a.h.Sc(b);
2483          return p(b, c, q(d));
2484        };
2485        a.ld = function (b, c, d) {
2486          d = q(d);
2487          return a.ib(b, g(c, d, b), d);
2488        };
2489        a.Oa = function (a, b) {
2490          (1 !== b.nodeType && 8 !== b.nodeType) || m(q(a), b);
2491        };
2492        a.vc = function (a, b, c) {
2493          !v && A.jQuery && (v = A.jQuery);
2494          if (2 > arguments.length) {
2495            if (((b = w.body), !b))
2496              throw Error(
2497                "ko.applyBindings: could not find document.body; has the document been loaded?",
2498              );
2499          } else if (!b || (1 !== b.nodeType && 8 !== b.nodeType))
2500            throw Error(
2501              "ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node",
2502            );
2503          k(q(a, c), b);
2504        };
2505        a.Dc = function (b) {
2506          return !b || (1 !== b.nodeType && 8 !== b.nodeType) ? n : a.Td(b);
2507        };
2508        a.Ec = function (b) {
2509          return (b = a.Dc(b)) ? b.$data : n;
2510        };
2511        a.b("bindingHandlers", a.c);
2512        a.b("bindingEvent", a.i);
2513        a.b("bindingEvent.subscribe", a.i.subscribe);
2514        a.b("bindingEvent.startPossiblyAsyncContentBinding", a.i.Cb);
2515        a.b("applyBindings", a.vc);
2516        a.b("applyBindingsToDescendants", a.Oa);
2517        a.b("applyBindingAccessorsToNode", a.ib);
2518        a.b("applyBindingsToNode", a.ld);
2519        a.b("contextFor", a.Dc);
2520        a.b("dataFor", a.Ec);
2521      })();
2522      (function (b) {
2523        function c(c, e) {
2524          var k = Object.prototype.hasOwnProperty.call(f, c) ? f[c] : b,
2525            l;
2526          k
2527            ? k.subscribe(e)
2528            : ((k = f[c] = new a.T()),
2529              k.subscribe(e),
2530              d(c, function (b, d) {
2531                var e = !(!d || !d.synchronous);
2532                g[c] = { definition: b, Gd: e };
2533                delete f[c];
2534                l || e
2535                  ? k.notifySubscribers(b)
2536                  : a.na.zb(function () {
2537                      k.notifySubscribers(b);
2538                    });
2539              }),
2540              (l = !0));
2541        }
2542        function d(a, b) {
2543          e("getConfig", [a], function (c) {
2544            c
2545              ? e("loadComponent", [a, c], function (a) {
2546                  b(a, c);
2547                })
2548              : b(null, null);
2549          });
2550        }
2551        function e(c, d, f, l) {
2552          l || (l = a.j.loaders.slice(0));
2553          var g = l.shift();
2554          if (g) {
2555            var q = g[c];
2556            if (q) {
2557              var t = !1;
2558              if (
2559                q.apply(
2560                  g,
2561                  d.concat(function (a) {
2562                    t ? f(null) : null !== a ? f(a) : e(c, d, f, l);
2563                  }),
2564                ) !== b &&
2565                ((t = !0), !g.suppressLoaderExceptions)
2566              )
2567                throw Error(
2568                  "Component loaders must supply values by invoking the callback, not by returning values synchronously.",
2569                );
2570            } else e(c, d, f, l);
2571          } else f(null);
2572        }
2573        var f = {},
2574          g = {};
2575        a.j = {
2576          get: function (d, e) {
2577            var f = Object.prototype.hasOwnProperty.call(g, d) ? g[d] : b;
2578            f
2579              ? f.Gd
2580                ? a.u.G(function () {
2581                    e(f.definition);
2582                  })
2583                : a.na.zb(function () {
2584                    e(f.definition);
2585                  })
2586              : c(d, e);
2587          },
2588          Bc: function (a) {
2589            delete g[a];
2590          },
2591          oc: e,
2592        };
2593        a.j.loaders = [];
2594        a.b("components", a.j);
2595        a.b("components.get", a.j.get);
2596        a.b("components.clearCachedDefinition", a.j.Bc);
2597      })();
2598      (function () {
2599        function b(b, c, d, e) {
2600          function g() {
2601            0 === --B && e(h);
2602          }
2603          var h = {},
2604            B = 2,
2605            u = d.template;
2606          d = d.viewModel;
2607          u
2608            ? f(c, u, function (c) {
2609                a.j.oc("loadTemplate", [b, c], function (a) {
2610                  h.template = a;
2611                  g();
2612                });
2613              })
2614            : g();
2615          d
2616            ? f(c, d, function (c) {
2617                a.j.oc("loadViewModel", [b, c], function (a) {
2618                  h[m] = a;
2619                  g();
2620                });
2621              })
2622            : g();
2623        }
2624        function c(a, b, d) {
2625          if ("function" === typeof b)
2626            d(function (a) {
2627              return new b(a);
2628            });
2629          else if ("function" === typeof b[m]) d(b[m]);
2630          else if ("instance" in b) {
2631            var e = b.instance;
2632            d(function () {
2633              return e;
2634            });
2635          } else
2636            "viewModel" in b
2637              ? c(a, b.viewModel, d)
2638              : a("Unknown viewModel value: " + b);
2639        }
2640        function d(b) {
2641          switch (a.a.R(b)) {
2642            case "script":
2643              return a.a.ua(b.text);
2644            case "textarea":
2645              return a.a.ua(b.value);
2646            case "template":
2647              if (e(b.content)) return a.a.Ca(b.content.childNodes);
2648          }
2649          return a.a.Ca(b.childNodes);
2650        }
2651        function e(a) {
2652          return A.DocumentFragment
2653            ? a instanceof DocumentFragment
2654            : a && 11 === a.nodeType;
2655        }
2656        function f(a, b, c) {
2657          "string" === typeof b.require
2658            ? T || A.require
2659              ? (T || A.require)([b.require], function (a) {
2660                  a &&
2661                    "object" === typeof a &&
2662                    a.Xd &&
2663                    a["default"] &&
2664                    (a = a["default"]);
2665                  c(a);
2666                })
2667              : a("Uses require, but no AMD loader is present")
2668            : c(b);
2669        }
2670        function g(a) {
2671          return function (b) {
2672            throw Error("Component '" + a + "': " + b);
2673          };
2674        }
2675        var h = {};
2676        a.j.register = function (b, c) {
2677          if (!c) throw Error("Invalid configuration for " + b);
2678          if (a.j.tb(b))
2679            throw Error("Component " + b + " is already registered");
2680          h[b] = c;
2681        };
2682        a.j.tb = function (a) {
2683          return Object.prototype.hasOwnProperty.call(h, a);
2684        };
2685        a.j.unregister = function (b) {
2686          delete h[b];
2687          a.j.Bc(b);
2688        };
2689        a.j.Fc = {
2690          getConfig: function (b, c) {
2691            c(a.j.tb(b) ? h[b] : null);
2692          },
2693          loadComponent: function (a, c, d) {
2694            var e = g(a);
2695            f(e, c, function (c) {
2696              b(a, e, c, d);
2697            });
2698          },
2699          loadTemplate: function (b, c, f) {
2700            b = g(b);
2701            if ("string" === typeof c) f(a.a.ua(c));
2702            else if (c instanceof Array) f(c);
2703            else if (e(c)) f(a.a.la(c.childNodes));
2704            else if (c.element)
2705              if (
2706                ((c = c.element),
2707                A.HTMLElement
2708                  ? c instanceof HTMLElement
2709                  : c && c.tagName && 1 === c.nodeType)
2710              )
2711                f(d(c));
2712              else if ("string" === typeof c) {
2713                var h = w.getElementById(c);
2714                h ? f(d(h)) : b("Cannot find element with ID " + c);
2715              } else b("Unknown element type: " + c);
2716            else b("Unknown template value: " + c);
2717          },
2718          loadViewModel: function (a, b, d) {
2719            c(g(a), b, d);
2720          },
2721        };
2722        var m = "createViewModel";
2723        a.b("components.register", a.j.register);
2724        a.b("components.isRegistered", a.j.tb);
2725        a.b("components.unregister", a.j.unregister);
2726        a.b("components.defaultLoader", a.j.Fc);
2727        a.j.loaders.push(a.j.Fc);
2728        a.j.dd = h;
2729      })();
2730      (function () {
2731        function b(b, e) {
2732          var f = b.getAttribute("params");
2733          if (f) {
2734            var f = c.parseBindingsString(f, e, b, {
2735                valueAccessors: !0,
2736                bindingParams: !0,
2737              }),
2738              f = a.a.Ga(f, function (c) {
2739                return a.o(c, null, { l: b });
2740              }),
2741              g = a.a.Ga(f, function (c) {
2742                var e = c.v();
2743                return c.ja()
2744                  ? a.o({
2745                      read: function () {
2746                        return a.a.f(c());
2747                      },
2748                      write:
2749                        a.Za(e) &&
2750                        function (a) {
2751                          c()(a);
2752                        },
2753                      l: b,
2754                    })
2755                  : e;
2756              });
2757            Object.prototype.hasOwnProperty.call(g, "$raw") || (g.$raw = f);
2758            return g;
2759          }
2760          return { $raw: {} };
2761        }
2762        a.j.getComponentNameForNode = function (b) {
2763          var c = a.a.R(b);
2764          if (
2765            a.j.tb(c) &&
2766            (-1 != c.indexOf("-") ||
2767              "[object HTMLUnknownElement]" == "" + b ||
2768              (8 >= a.a.W && b.tagName === c))
2769          )
2770            return c;
2771        };
2772        a.j.tc = function (c, e, f, g) {
2773          if (1 === e.nodeType) {
2774            var h = a.j.getComponentNameForNode(e);
2775            if (h) {
2776              c = c || {};
2777              if (c.component)
2778                throw Error(
2779                  'Cannot use the "component" binding on a custom element matching a component',
2780                );
2781              var m = { name: h, params: b(e, f) };
2782              c.component = g
2783                ? function () {
2784                    return m;
2785                  }
2786                : m;
2787            }
2788          }
2789          return c;
2790        };
2791        var c = new a.ga();
2792        9 > a.a.W &&
2793          ((a.j.register = (function (a) {
2794            return function (b) {
2795              return a.apply(this, arguments);
2796            };
2797          })(a.j.register)),
2798          (w.createDocumentFragment = (function (b) {
2799            return function () {
2800              var c = b(),
2801                f = a.j.dd,
2802                g;
2803              for (g in f);
2804              return c;
2805            };
2806          })(w.createDocumentFragment)));
2807      })();
2808      (function () {
2809        function b(b, c, d) {
2810          c = c.template;
2811          if (!c) throw Error("Component '" + b + "' has no template");
2812          b = a.a.Ca(c);
2813          a.h.va(d, b);
2814        }
2815        function c(a, b, c) {
2816          var d = a.createViewModel;
2817          return d ? d.call(a, b, c) : b;
2818        }
2819        var d = 0;
2820        a.c.component = {
2821          init: function (e, f, g, h, m) {
2822            function k() {
2823              var a = l && l.dispose;
2824              "function" === typeof a && a.call(l);
2825              q && q.s();
2826              p = l = q = null;
2827            }
2828            var l,
2829              p,
2830              q,
2831              t = a.a.la(a.h.childNodes(e));
2832            a.h.Ea(e);
2833            a.a.K.za(e, k);
2834            a.o(
2835              function () {
2836                var g = a.a.f(f()),
2837                  h,
2838                  u;
2839                "string" === typeof g
2840                  ? (h = g)
2841                  : ((h = a.a.f(g.name)), (u = a.a.f(g.params)));
2842                if (!h) throw Error("No component name specified");
2843                var n = a.i.Cb(e, m),
2844                  z = (p = ++d);
2845                a.j.get(h, function (d) {
2846                  if (p === z) {
2847                    k();
2848                    if (!d) throw Error("Unknown component '" + h + "'");
2849                    b(h, d, e);
2850                    var f = c(d, u, { element: e, templateNodes: t });
2851                    d = n.createChildContext(f, {
2852                      extend: function (a) {
2853                        a.$component = f;
2854                        a.$componentTemplateNodes = t;
2855                      },
2856                    });
2857                    f &&
2858                      f.koDescendantsComplete &&
2859                      (q = a.i.subscribe(
2860                        e,
2861                        a.i.pa,
2862                        f.koDescendantsComplete,
2863                        f,
2864                      ));
2865                    l = f;
2866                    a.Oa(d, e);
2867                  }
2868                });
2869              },
2870              null,
2871              { l: e },
2872            );
2873            return { controlsDescendantBindings: !0 };
2874          },
2875        };
2876        a.h.ea.component = !0;
2877      })();
2878      var V = { class: "className", for: "htmlFor" };
2879      a.c.attr = {
2880        update: function (b, c) {
2881          var d = a.a.f(c()) || {};
2882          a.a.P(d, function (c, d) {
2883            d = a.a.f(d);
2884            var g = c.indexOf(":"),
2885              g =
2886                "lookupNamespaceURI" in b &&
2887                0 < g &&
2888                b.lookupNamespaceURI(c.substr(0, g)),
2889              h = !1 === d || null === d || d === n;
2890            h
2891              ? g
2892                ? b.removeAttributeNS(g, c)
2893                : b.removeAttribute(c)
2894              : (d = d.toString());
2895            8 >= a.a.W && c in V
2896              ? ((c = V[c]), h ? b.removeAttribute(c) : (b[c] = d))
2897              : h || (g ? b.setAttributeNS(g, c, d) : b.setAttribute(c, d));
2898            "name" === c && a.a.Yc(b, h ? "" : d);
2899          });
2900        },
2901      };
2902      (function () {
2903        a.c.checked = {
2904          after: ["value", "attr"],
2905          init: function (b, c, d) {
2906            function e() {
2907              var e = b.checked,
2908                f = g();
2909              if (!a.S.Ya() && (e || (!m && !a.S.qa()))) {
2910                var k = a.u.G(c);
2911                if (l) {
2912                  var q = p ? k.v() : k,
2913                    z = t;
2914                  t = f;
2915                  z !== f
2916                    ? e && (a.a.Na(q, f, !0), a.a.Na(q, z, !1))
2917                    : a.a.Na(q, f, e);
2918                  p && a.Za(k) && k(q);
2919                } else
2920                  (h && (f === n ? (f = e) : e || (f = n)),
2921                    a.m.eb(k, d, "checked", f, !0));
2922              }
2923            }
2924            function f() {
2925              var d = a.a.f(c()),
2926                e = g();
2927              l
2928                ? ((b.checked = 0 <= a.a.A(d, e)), (t = e))
2929                : (b.checked = h && e === n ? !!d : g() === d);
2930            }
2931            var g = a.xb(function () {
2932                if (d.has("checkedValue")) return a.a.f(d.get("checkedValue"));
2933                if (q) return d.has("value") ? a.a.f(d.get("value")) : b.value;
2934              }),
2935              h = "checkbox" == b.type,
2936              m = "radio" == b.type;
2937            if (h || m) {
2938              var k = c(),
2939                l = h && a.a.f(k) instanceof Array,
2940                p = !(l && k.push && k.splice),
2941                q = m || l,
2942                t = l ? g() : n;
2943              m &&
2944                !b.name &&
2945                a.c.uniqueName.init(b, function () {
2946                  return !0;
2947                });
2948              a.o(e, null, { l: b });
2949              a.a.B(b, "click", e);
2950              a.o(f, null, { l: b });
2951              k = n;
2952            }
2953          },
2954        };
2955        a.m.wa.checked = !0;
2956        a.c.checkedValue = {
2957          update: function (b, c) {
2958            b.value = a.a.f(c());
2959          },
2960        };
2961      })();
2962      a.c["class"] = {
2963        update: function (b, c) {
2964          var d = a.a.Db(a.a.f(c()));
2965          a.a.Eb(b, b.__ko__cssValue, !1);
2966          b.__ko__cssValue = d;
2967          a.a.Eb(b, d, !0);
2968        },
2969      };
2970      a.c.css = {
2971        update: function (b, c) {
2972          var d = a.a.f(c());
2973          null !== d && "object" == typeof d
2974            ? a.a.P(d, function (c, d) {
2975                d = a.a.f(d);
2976                a.a.Eb(b, c, d);
2977              })
2978            : a.c["class"].update(b, c);
2979        },
2980      };
2981      a.c.enable = {
2982        update: function (b, c) {
2983          var d = a.a.f(c());
2984          d && b.disabled
2985            ? b.removeAttribute("disabled")
2986            : d || b.disabled || (b.disabled = !0);
2987        },
2988      };
2989      a.c.disable = {
2990        update: function (b, c) {
2991          a.c.enable.update(b, function () {
2992            return !a.a.f(c());
2993          });
2994        },
2995      };
2996      a.c.event = {
2997        init: function (b, c, d, e, f) {
2998          var g = c() || {};
2999          a.a.P(g, function (g) {
3000            "string" == typeof g &&
3001              a.a.B(b, g, function (b) {
3002                var k,
3003                  l = c()[g];
3004                if (l) {
3005                  try {
3006                    var p = a.a.la(arguments);
3007                    e = f.$data;
3008                    p.unshift(e);
3009                    k = l.apply(e, p);
3010                  } finally {
3011                    !0 !== k &&
3012                      (b.preventDefault
3013                        ? b.preventDefault()
3014                        : (b.returnValue = !1));
3015                  }
3016                  !1 === d.get(g + "Bubble") &&
3017                    ((b.cancelBubble = !0),
3018                    b.stopPropagation && b.stopPropagation());
3019                }
3020              });
3021          });
3022        },
3023      };
3024      a.c.foreach = {
3025        Rc: function (b) {
3026          return function () {
3027            var c = b(),
3028              d = a.a.bc(c);
3029            if (!d || "number" == typeof d.length)
3030              return { foreach: c, templateEngine: a.ba.Ma };
3031            a.a.f(c);
3032            return {
3033              foreach: d.data,
3034              as: d.as,
3035              noChildContext: d.noChildContext,
3036              includeDestroyed: d.includeDestroyed,
3037              afterAdd: d.afterAdd,
3038              beforeRemove: d.beforeRemove,
3039              afterRender: d.afterRender,
3040              beforeMove: d.beforeMove,
3041              afterMove: d.afterMove,
3042              templateEngine: a.ba.Ma,
3043            };
3044          };
3045        },
3046        init: function (b, c) {
3047          return a.c.template.init(b, a.c.foreach.Rc(c));
3048        },
3049        update: function (b, c, d, e, f) {
3050          return a.c.template.update(b, a.c.foreach.Rc(c), d, e, f);
3051        },
3052      };
3053      a.m.Ra.foreach = !1;
3054      a.h.ea.foreach = !0;
3055      a.c.hasfocus = {
3056        init: function (b, c, d) {
3057          function e(e) {
3058            b.__ko_hasfocusUpdating = !0;
3059            var f = b.ownerDocument;
3060            if ("activeElement" in f) {
3061              var g;
3062              try {
3063                g = f.activeElement;
3064              } catch (l) {
3065                g = f.body;
3066              }
3067              e = g === b;
3068            }
3069            f = c();
3070            a.m.eb(f, d, "hasfocus", e, !0);
3071            b.__ko_hasfocusLastValue = e;
3072            b.__ko_hasfocusUpdating = !1;
3073          }
3074          var f = e.bind(null, !0),
3075            g = e.bind(null, !1);
3076          a.a.B(b, "focus", f);
3077          a.a.B(b, "focusin", f);
3078          a.a.B(b, "blur", g);
3079          a.a.B(b, "focusout", g);
3080          b.__ko_hasfocusLastValue = !1;
3081        },
3082        update: function (b, c) {
3083          var d = !!a.a.f(c());
3084          b.__ko_hasfocusUpdating ||
3085            b.__ko_hasfocusLastValue === d ||
3086            (d ? b.focus() : b.blur(),
3087            !d && b.__ko_hasfocusLastValue && b.ownerDocument.body.focus(),
3088            a.u.G(a.a.Fb, null, [b, d ? "focusin" : "focusout"]));
3089        },
3090      };
3091      a.m.wa.hasfocus = !0;
3092      a.c.hasFocus = a.c.hasfocus;
3093      a.m.wa.hasFocus = "hasfocus";
3094      a.c.html = {
3095        init: function () {
3096          return { controlsDescendantBindings: !0 };
3097        },
3098        update: function (b, c) {
3099          a.a.fc(b, c());
3100        },
3101      };
3102      (function () {
3103        function b(b, d, e) {
3104          a.c[b] = {
3105            init: function (b, c, h, m, k) {
3106              var l,
3107                p,
3108                q = {},
3109                t,
3110                x,
3111                n;
3112              if (d) {
3113                m = h.get("as");
3114                var u = h.get("noChildContext");
3115                n = !(m && u);
3116                q = { as: m, noChildContext: u, exportDependencies: n };
3117              }
3118              x = (t = "render" == h.get("completeOn")) || h.has(a.i.pa);
3119              a.o(
3120                function () {
3121                  var h = a.a.f(c()),
3122                    m = !e !== !h,
3123                    u = !p,
3124                    r;
3125                  if (n || m !== l) {
3126                    x && (k = a.i.Cb(b, k));
3127                    if (m) {
3128                      if (!d || n) q.dataDependency = a.S.o();
3129                      r = d
3130                        ? k.createChildContext(
3131                            "function" == typeof h ? h : c,
3132                            q,
3133                          )
3134                        : a.S.qa()
3135                          ? k.extend(null, q)
3136                          : k;
3137                    }
3138                    u && a.S.qa() && (p = a.a.Ca(a.h.childNodes(b), !0));
3139                    m
3140                      ? (u || a.h.va(b, a.a.Ca(p)), a.Oa(r, b))
3141                      : (a.h.Ea(b), t || a.i.ma(b, a.i.H));
3142                    l = m;
3143                  }
3144                },
3145                null,
3146                { l: b },
3147              );
3148              return { controlsDescendantBindings: !0 };
3149            },
3150          };
3151          a.m.Ra[b] = !1;
3152          a.h.ea[b] = !0;
3153        }
3154        b("if");
3155        b("ifnot", !1, !0);
3156        b("with", !0);
3157      })();
3158      a.c.let = {
3159        init: function (b, c, d, e, f) {
3160          c = f.extend(c);
3161          a.Oa(c, b);
3162          return { controlsDescendantBindings: !0 };
3163        },
3164      };
3165      a.h.ea.let = !0;
3166      var Q = {};
3167      a.c.options = {
3168        init: function (b) {
3169          if ("select" !== a.a.R(b))
3170            throw Error("options binding applies only to SELECT elements");
3171          for (; 0 < b.length; ) b.remove(0);
3172          return { controlsDescendantBindings: !0 };
3173        },
3174        update: function (b, c, d) {
3175          function e() {
3176            return a.a.jb(b.options, function (a) {
3177              return a.selected;
3178            });
3179          }
3180          function f(a, b, c) {
3181            var d = typeof b;
3182            return "function" == d ? b(a) : "string" == d ? a[b] : c;
3183          }
3184          function g(c, d) {
3185            if (x && l) a.i.ma(b, a.i.H);
3186            else if (t.length) {
3187              var e = 0 <= a.a.A(t, a.w.M(d[0]));
3188              a.a.Zc(d[0], e);
3189              x && !e && a.u.G(a.a.Fb, null, [b, "change"]);
3190            }
3191          }
3192          var h = b.multiple,
3193            m = 0 != b.length && h ? b.scrollTop : null,
3194            k = a.a.f(c()),
3195            l = d.get("valueAllowUnset") && d.has("value"),
3196            p = d.get("optionsIncludeDestroyed");
3197          c = {};
3198          var q,
3199            t = [];
3200          l ||
3201            (h
3202              ? (t = a.a.Mb(e(), a.w.M))
3203              : 0 <= b.selectedIndex &&
3204                t.push(a.w.M(b.options[b.selectedIndex])));
3205          k &&
3206            ("undefined" == typeof k.length && (k = [k]),
3207            (q = a.a.jb(k, function (b) {
3208              return p || b === n || null === b || !a.a.f(b._destroy);
3209            })),
3210            d.has("optionsCaption") &&
3211              ((k = a.a.f(d.get("optionsCaption"))),
3212              null !== k && k !== n && q.unshift(Q)));
3213          var x = !1;
3214          c.beforeRemove = function (a) {
3215            b.removeChild(a);
3216          };
3217          k = g;
3218          d.has("optionsAfterRender") &&
3219            "function" == typeof d.get("optionsAfterRender") &&
3220            (k = function (b, c) {
3221              g(0, c);
3222              a.u.G(d.get("optionsAfterRender"), null, [c[0], b !== Q ? b : n]);
3223            });
3224          a.a.ec(
3225            b,
3226            q,
3227            function (c, e, g) {
3228              g.length &&
3229                ((t = !l && g[0].selected ? [a.w.M(g[0])] : []), (x = !0));
3230              e = b.ownerDocument.createElement("option");
3231              c === Q
3232                ? (a.a.Bb(e, d.get("optionsCaption")), a.w.cb(e, n))
3233                : ((g = f(c, d.get("optionsValue"), c)),
3234                  a.w.cb(e, a.a.f(g)),
3235                  (c = f(c, d.get("optionsText"), g)),
3236                  a.a.Bb(e, c));
3237              return [e];
3238            },
3239            c,
3240            k,
3241          );
3242          if (!l) {
3243            var B;
3244            h
3245              ? (B = t.length && e().length < t.length)
3246              : (B =
3247                  t.length && 0 <= b.selectedIndex
3248                    ? a.w.M(b.options[b.selectedIndex]) !== t[0]
3249                    : t.length || 0 <= b.selectedIndex);
3250            B && a.u.G(a.a.Fb, null, [b, "change"]);
3251          }
3252          (l || a.S.Ya()) && a.i.ma(b, a.i.H);
3253          a.a.wd(b);
3254          m && 20 < Math.abs(m - b.scrollTop) && (b.scrollTop = m);
3255        },
3256      };
3257      a.c.options.$b = a.a.g.Z();
3258      a.c.selectedOptions = {
3259        init: function (b, c, d) {
3260          function e() {
3261            var e = c(),
3262              f = [];
3263            a.a.D(b.getElementsByTagName("option"), function (b) {
3264              b.selected && f.push(a.w.M(b));
3265            });
3266            a.m.eb(e, d, "selectedOptions", f);
3267          }
3268          function f() {
3269            var d = a.a.f(c()),
3270              e = b.scrollTop;
3271            d &&
3272              "number" == typeof d.length &&
3273              a.a.D(b.getElementsByTagName("option"), function (b) {
3274                var c = 0 <= a.a.A(d, a.w.M(b));
3275                b.selected != c && a.a.Zc(b, c);
3276              });
3277            b.scrollTop = e;
3278          }
3279          if ("select" != a.a.R(b))
3280            throw Error(
3281              "selectedOptions binding applies only to SELECT elements",
3282            );
3283          var g;
3284          a.i.subscribe(
3285            b,
3286            a.i.H,
3287            function () {
3288              g ? e() : (a.a.B(b, "change", e), (g = a.o(f, null, { l: b })));
3289            },
3290            null,
3291            { notifyImmediately: !0 },
3292          );
3293        },
3294        update: function () {},
3295      };
3296      a.m.wa.selectedOptions = !0;
3297      a.c.style = {
3298        update: function (b, c) {
3299          var d = a.a.f(c() || {});
3300          a.a.P(d, function (c, d) {
3301            d = a.a.f(d);
3302            if (null === d || d === n || !1 === d) d = "";
3303            if (v) v(b).css(c, d);
3304            else if (/^--/.test(c)) b.style.setProperty(c, d);
3305            else {
3306              c = c.replace(/-(\w)/g, function (a, b) {
3307                return b.toUpperCase();
3308              });
3309              var g = b.style[c];
3310              b.style[c] = d;
3311              d === g || b.style[c] != g || isNaN(d) || (b.style[c] = d + "px");
3312            }
3313          });
3314        },
3315      };
3316      a.c.submit = {
3317        init: function (b, c, d, e, f) {
3318          if ("function" != typeof c())
3319            throw Error("The value for a submit binding must be a function");
3320          a.a.B(b, "submit", function (a) {
3321            var d,
3322              e = c();
3323            try {
3324              d = e.call(f.$data, b);
3325            } finally {
3326              !0 !== d &&
3327                (a.preventDefault ? a.preventDefault() : (a.returnValue = !1));
3328            }
3329          });
3330        },
3331      };
3332      a.c.text = {
3333        init: function () {
3334          return { controlsDescendantBindings: !0 };
3335        },
3336        update: function (b, c) {
3337          a.a.Bb(b, c());
3338        },
3339      };
3340      a.h.ea.text = !0;
3341      (function () {
3342        if (A && A.navigator) {
3343          var b = function (a) {
3344              if (a) return parseFloat(a[1]);
3345            },
3346            c = A.navigator.userAgent,
3347            d,
3348            e,
3349            f,
3350            g,
3351            h;
3352          (d = A.opera && A.opera.version && parseInt(A.opera.version())) ||
3353            (h = b(c.match(/Edge\/([^ ]+)$/))) ||
3354            b(c.match(/Chrome\/([^ ]+)/)) ||
3355            (e = b(c.match(/Version\/([^ ]+) Safari/))) ||
3356            (f = b(c.match(/Firefox\/([^ ]+)/))) ||
3357            (g = a.a.W || b(c.match(/MSIE ([^ ]+)/))) ||
3358            (g = b(c.match(/rv:([^ )]+)/)));
3359        }
3360        if (8 <= g && 10 > g)
3361          var m = a.a.g.Z(),
3362            k = a.a.g.Z(),
3363            l = function (b) {
3364              var c = this.activeElement;
3365              (c = c && a.a.g.get(c, k)) && c(b);
3366            },
3367            p = function (b, c) {
3368              var d = b.ownerDocument;
3369              a.a.g.get(d, m) ||
3370                (a.a.g.set(d, m, !0), a.a.B(d, "selectionchange", l));
3371              a.a.g.set(b, k, c);
3372            };
3373        a.c.textInput = {
3374          init: function (b, c, k) {
3375            function l(c, d) {
3376              a.a.B(b, c, d);
3377            }
3378            function m() {
3379              var d = a.a.f(c());
3380              if (null === d || d === n) d = "";
3381              L !== n && d === L
3382                ? a.a.setTimeout(m, 4)
3383                : b.value !== d &&
3384                  ((y = !0), (b.value = d), (y = !1), (v = b.value));
3385            }
3386            function r() {
3387              w || ((L = b.value), (w = a.a.setTimeout(z, 4)));
3388            }
3389            function z() {
3390              clearTimeout(w);
3391              L = w = n;
3392              var d = b.value;
3393              v !== d && ((v = d), a.m.eb(c(), k, "textInput", d));
3394            }
3395            var v = b.value,
3396              w,
3397              L,
3398              A = 9 == a.a.W ? r : z,
3399              y = !1;
3400            g && l("keypress", z);
3401            11 > g &&
3402              l("propertychange", function (a) {
3403                y || "value" !== a.propertyName || A(a);
3404              });
3405            8 == g && (l("keyup", z), l("keydown", z));
3406            p && (p(b, A), l("dragend", r));
3407            (!g || 9 <= g) && l("input", A);
3408            5 > e && "textarea" === a.a.R(b)
3409              ? (l("keydown", r), l("paste", r), l("cut", r))
3410              : 11 > d
3411                ? l("keydown", r)
3412                : 4 > f
3413                  ? (l("DOMAutoComplete", z), l("dragdrop", z), l("drop", z))
3414                  : h && "number" === b.type && l("keydown", r);
3415            l("change", z);
3416            l("blur", z);
3417            a.o(m, null, { l: b });
3418          },
3419        };
3420        a.m.wa.textInput = !0;
3421        a.c.textinput = {
3422          preprocess: function (a, b, c) {
3423            c("textInput", a);
3424          },
3425        };
3426      })();
3427      a.c.uniqueName = {
3428        init: function (b, c) {
3429          if (c()) {
3430            var d = "ko_unique_" + ++a.c.uniqueName.rd;
3431            a.a.Yc(b, d);
3432          }
3433        },
3434      };
3435      a.c.uniqueName.rd = 0;
3436      a.c.using = {
3437        init: function (b, c, d, e, f) {
3438          var g;
3439          d.has("as") &&
3440            (g = { as: d.get("as"), noChildContext: d.get("noChildContext") });
3441          c = f.createChildContext(c, g);
3442          a.Oa(c, b);
3443          return { controlsDescendantBindings: !0 };
3444        },
3445      };
3446      a.h.ea.using = !0;
3447      a.c.value = {
3448        init: function (b, c, d) {
3449          var e = a.a.R(b),
3450            f = "input" == e;
3451          if (!f || ("checkbox" != b.type && "radio" != b.type)) {
3452            var g = [],
3453              h = d.get("valueUpdate"),
3454              m = !1,
3455              k = null;
3456            h &&
3457              ("string" == typeof h ? (g = [h]) : (g = a.a.wc(h)),
3458              a.a.Pa(g, "change"));
3459            var l = function () {
3460              k = null;
3461              m = !1;
3462              var e = c(),
3463                f = a.w.M(b);
3464              a.m.eb(e, d, "value", f);
3465            };
3466            !a.a.W ||
3467              !f ||
3468              "text" != b.type ||
3469              "off" == b.autocomplete ||
3470              (b.form && "off" == b.form.autocomplete) ||
3471              -1 != a.a.A(g, "propertychange") ||
3472              (a.a.B(b, "propertychange", function () {
3473                m = !0;
3474              }),
3475              a.a.B(b, "focus", function () {
3476                m = !1;
3477              }),
3478              a.a.B(b, "blur", function () {
3479                m && l();
3480              }));
3481            a.a.D(g, function (c) {
3482              var d = l;
3483              a.a.Ud(c, "after") &&
3484                ((d = function () {
3485                  k = a.w.M(b);
3486                  a.a.setTimeout(l, 0);
3487                }),
3488                (c = c.substring(5)));
3489              a.a.B(b, c, d);
3490            });
3491            var p;
3492            p =
3493              f && "file" == b.type
3494                ? function () {
3495                    var d = a.a.f(c());
3496                    null === d || d === n || "" === d
3497                      ? (b.value = "")
3498                      : a.u.G(l);
3499                  }
3500                : function () {
3501                    var f = a.a.f(c()),
3502                      g = a.w.M(b);
3503                    if (null !== k && f === k) a.a.setTimeout(p, 0);
3504                    else if (f !== g || g === n)
3505                      "select" === e
3506                        ? ((g = d.get("valueAllowUnset")),
3507                          a.w.cb(b, f, g),
3508                          g || f === a.w.M(b) || a.u.G(l))
3509                        : a.w.cb(b, f);
3510                  };
3511            if ("select" === e) {
3512              var q;
3513              a.i.subscribe(
3514                b,
3515                a.i.H,
3516                function () {
3517                  q
3518                    ? d.get("valueAllowUnset")
3519                      ? p()
3520                      : l()
3521                    : (a.a.B(b, "change", l), (q = a.o(p, null, { l: b })));
3522                },
3523                null,
3524                { notifyImmediately: !0 },
3525              );
3526            } else (a.a.B(b, "change", l), a.o(p, null, { l: b }));
3527          } else a.ib(b, { checkedValue: c });
3528        },
3529        update: function () {},
3530      };
3531      a.m.wa.value = !0;
3532      a.c.visible = {
3533        update: function (b, c) {
3534          var d = a.a.f(c()),
3535            e = "none" != b.style.display;
3536          d && !e
3537            ? (b.style.display = "")
3538            : !d && e && (b.style.display = "none");
3539        },
3540      };
3541      a.c.hidden = {
3542        update: function (b, c) {
3543          a.c.visible.update(b, function () {
3544            return !a.a.f(c());
3545          });
3546        },
3547      };
3548      (function (b) {
3549        a.c[b] = {
3550          init: function (c, d, e, f, g) {
3551            return a.c.event.init.call(
3552              this,
3553              c,
3554              function () {
3555                var a = {};
3556                a[b] = d();
3557                return a;
3558              },
3559              e,
3560              f,
3561              g,
3562            );
3563          },
3564        };
3565      })("click");
3566      a.ca = function () {};
3567      a.ca.prototype.renderTemplateSource = function () {
3568        throw Error("Override renderTemplateSource");
3569      };
3570      a.ca.prototype.createJavaScriptEvaluatorBlock = function () {
3571        throw Error("Override createJavaScriptEvaluatorBlock");
3572      };
3573      a.ca.prototype.makeTemplateSource = function (b, c) {
3574        if ("string" == typeof b) {
3575          c = c || w;
3576          var d = c.getElementById(b);
3577          if (!d) throw Error("Cannot find template with ID " + b);
3578          return new a.C.F(d);
3579        }
3580        if (1 == b.nodeType || 8 == b.nodeType) return new a.C.ia(b);
3581        throw Error("Unknown template type: " + b);
3582      };
3583      a.ca.prototype.renderTemplate = function (a, c, d, e) {
3584        a = this.makeTemplateSource(a, e);
3585        return this.renderTemplateSource(a, c, d, e);
3586      };
3587      a.ca.prototype.isTemplateRewritten = function (a, c) {
3588        return !1 === this.allowTemplateRewriting
3589          ? !0
3590          : this.makeTemplateSource(a, c).data("isRewritten");
3591      };
3592      a.ca.prototype.rewriteTemplate = function (a, c, d) {
3593        a = this.makeTemplateSource(a, d);
3594        c = c(a.text());
3595        a.text(c);
3596        a.data("isRewritten", !0);
3597      };
3598      a.b("templateEngine", a.ca);
3599      a.kc = (function () {
3600        function b(b, c, d, h) {
3601          b = a.m.ac(b);
3602          for (var m = a.m.Ra, k = 0; k < b.length; k++) {
3603            var l = b[k].key;
3604            if (Object.prototype.hasOwnProperty.call(m, l)) {
3605              var p = m[l];
3606              if ("function" === typeof p) {
3607                if ((l = p(b[k].value))) throw Error(l);
3608              } else if (!p)
3609                throw Error(
3610                  "This template engine does not support the '" +
3611                    l +
3612                    "' binding within its templates",
3613                );
3614            }
3615          }
3616          d =
3617            "ko.__tr_ambtns(function($context,$element){return(function(){return{ " +
3618            a.m.vb(b, { valueAccessors: !0 }) +
3619            " } })()},'" +
3620            d.toLowerCase() +
3621            "')";
3622          return h.createJavaScriptEvaluatorBlock(d) + c;
3623        }
3624        var c =
3625            /(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,
3626          d = /\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;
3627        return {
3628          xd: function (b, c, d) {
3629            c.isTemplateRewritten(b, d) ||
3630              c.rewriteTemplate(
3631                b,
3632                function (b) {
3633                  return a.kc.Ld(b, c);
3634                },
3635                d,
3636              );
3637          },
3638          Ld: function (a, f) {
3639            return a
3640              .replace(c, function (a, c, d, e, l) {
3641                return b(l, c, d, f);
3642              })
3643              .replace(d, function (a, c) {
3644                return b(c, "\x3c!-- ko --\x3e", "#comment", f);
3645              });
3646          },
3647          md: function (b, c) {
3648            return a.aa.Xb(function (d, h) {
3649              var m = d.nextSibling;
3650              m && m.nodeName.toLowerCase() === c && a.ib(m, b, h);
3651            });
3652          },
3653        };
3654      })();
3655      a.b("__tr_ambtns", a.kc.md);
3656      (function () {
3657        a.C = {};
3658        a.C.F = function (b) {
3659          if ((this.F = b)) {
3660            var c = a.a.R(b);
3661            this.ab =
3662              "script" === c
3663                ? 1
3664                : "textarea" === c
3665                  ? 2
3666                  : "template" == c && b.content && 11 === b.content.nodeType
3667                    ? 3
3668                    : 4;
3669          }
3670        };
3671        a.C.F.prototype.text = function () {
3672          var b =
3673            1 === this.ab ? "text" : 2 === this.ab ? "value" : "innerHTML";
3674          if (0 == arguments.length) return this.F[b];
3675          var c = arguments[0];
3676          "innerHTML" === b ? a.a.fc(this.F, c) : (this.F[b] = c);
3677        };
3678        var b = a.a.g.Z() + "_";
3679        a.C.F.prototype.data = function (c) {
3680          if (1 === arguments.length) return a.a.g.get(this.F, b + c);
3681          a.a.g.set(this.F, b + c, arguments[1]);
3682        };
3683        var c = a.a.g.Z();
3684        a.C.F.prototype.nodes = function () {
3685          var b = this.F;
3686          if (0 == arguments.length) {
3687            var e = a.a.g.get(b, c) || {},
3688              f = e.lb || (3 === this.ab ? b.content : 4 === this.ab ? b : n);
3689            if (!f || e.jd) {
3690              var g = this.text();
3691              g &&
3692                g !== e.bb &&
3693                ((f = a.a.Md(g, b.ownerDocument)),
3694                a.a.g.set(b, c, { lb: f, bb: g, jd: !0 }));
3695            }
3696            return f;
3697          }
3698          e = arguments[0];
3699          this.ab !== n && this.text("");
3700          a.a.g.set(b, c, { lb: e });
3701        };
3702        a.C.ia = function (a) {
3703          this.F = a;
3704        };
3705        a.C.ia.prototype = new a.C.F();
3706        a.C.ia.prototype.constructor = a.C.ia;
3707        a.C.ia.prototype.text = function () {
3708          if (0 == arguments.length) {
3709            var b = a.a.g.get(this.F, c) || {};
3710            b.bb === n && b.lb && (b.bb = b.lb.innerHTML);
3711            return b.bb;
3712          }
3713          a.a.g.set(this.F, c, { bb: arguments[0] });
3714        };
3715        a.b("templateSources", a.C);
3716        a.b("templateSources.domElement", a.C.F);
3717        a.b("templateSources.anonymousTemplate", a.C.ia);
3718      })();
3719      (function () {
3720        function b(b, c, d) {
3721          var e;
3722          for (c = a.h.nextSibling(c); b && (e = b) !== c; )
3723            ((b = a.h.nextSibling(e)), d(e, b));
3724        }
3725        function c(c, d) {
3726          if (c.length) {
3727            var e = c[0],
3728              f = c[c.length - 1],
3729              g = e.parentNode,
3730              h = a.ga.instance,
3731              m = h.preprocessNode;
3732            if (m) {
3733              b(e, f, function (a, b) {
3734                var c = a.previousSibling,
3735                  d = m.call(h, a);
3736                d &&
3737                  (a === e && (e = d[0] || b),
3738                  a === f && (f = d[d.length - 1] || c));
3739              });
3740              c.length = 0;
3741              if (!e) return;
3742              e === f ? c.push(e) : (c.push(e, f), a.a.Ua(c, g));
3743            }
3744            b(e, f, function (b) {
3745              (1 !== b.nodeType && 8 !== b.nodeType) || a.vc(d, b);
3746            });
3747            b(e, f, function (b) {
3748              (1 !== b.nodeType && 8 !== b.nodeType) || a.aa.cd(b, [d]);
3749            });
3750            a.a.Ua(c, g);
3751          }
3752        }
3753        function d(a) {
3754          return a.nodeType ? a : 0 < a.length ? a[0] : null;
3755        }
3756        function e(b, e, f, h, m) {
3757          m = m || {};
3758          var n = ((b && d(b)) || f || {}).ownerDocument,
3759            B = m.templateEngine || g;
3760          a.kc.xd(f, B, n);
3761          f = B.renderTemplate(f, h, m, n);
3762          if (
3763            "number" != typeof f.length ||
3764            (0 < f.length && "number" != typeof f[0].nodeType)
3765          )
3766            throw Error("Template engine must return an array of DOM nodes");
3767          n = !1;
3768          switch (e) {
3769            case "replaceChildren":
3770              a.h.va(b, f);
3771              n = !0;
3772              break;
3773            case "replaceNode":
3774              a.a.Xc(b, f);
3775              n = !0;
3776              break;
3777            case "ignoreTargetNode":
3778              break;
3779            default:
3780              throw Error("Unknown renderMode: " + e);
3781          }
3782          n &&
3783            (c(f, h),
3784            m.afterRender &&
3785              a.u.G(m.afterRender, null, [f, h[m.as || "$data"]]),
3786            "replaceChildren" == e && a.i.ma(b, a.i.H));
3787          return f;
3788        }
3789        function f(b, c, d) {
3790          return a.O(b) ? b() : "function" === typeof b ? b(c, d) : b;
3791        }
3792        var g;
3793        a.gc = function (b) {
3794          if (b != n && !(b instanceof a.ca))
3795            throw Error("templateEngine must inherit from ko.templateEngine");
3796          g = b;
3797        };
3798        a.dc = function (b, c, h, m, t) {
3799          h = h || {};
3800          if ((h.templateEngine || g) == n)
3801            throw Error("Set a template engine before calling renderTemplate");
3802          t = t || "replaceChildren";
3803          if (m) {
3804            var x = d(m);
3805            return a.$(
3806              function () {
3807                var g =
3808                    c && c instanceof a.fa
3809                      ? c
3810                      : new a.fa(c, null, null, null, {
3811                          exportDependencies: !0,
3812                        }),
3813                  n = f(b, g.$data, g),
3814                  g = e(m, t, n, g, h);
3815                "replaceNode" == t && ((m = g), (x = d(m)));
3816              },
3817              null,
3818              {
3819                Sa: function () {
3820                  return !x || !a.a.Sb(x);
3821                },
3822                l: x && "replaceNode" == t ? x.parentNode : x,
3823              },
3824            );
3825          }
3826          return a.aa.Xb(function (d) {
3827            a.dc(b, c, h, d, "replaceNode");
3828          });
3829        };
3830        a.Qd = function (b, d, g, h, m) {
3831          function x(b, c) {
3832            a.u.G(a.a.ec, null, [h, b, u, g, r, c]);
3833            a.i.ma(h, a.i.H);
3834          }
3835          function r(a, b) {
3836            c(b, v);
3837            g.afterRender && g.afterRender(b, a);
3838            v = null;
3839          }
3840          function u(a, c) {
3841            v = m.createChildContext(a, {
3842              as: z,
3843              noChildContext: g.noChildContext,
3844              extend: function (a) {
3845                a.$index = c;
3846                z && (a[z + "Index"] = c);
3847              },
3848            });
3849            var d = f(b, a, v);
3850            return e(h, "ignoreTargetNode", d, v, g);
3851          }
3852          var v,
3853            z = g.as,
3854            w =
3855              !1 === g.includeDestroyed ||
3856              (a.options.foreachHidesDestroyed && !g.includeDestroyed);
3857          if (w || g.beforeRemove || !a.Pc(d))
3858            return a.$(
3859              function () {
3860                var b = a.a.f(d) || [];
3861                "undefined" == typeof b.length && (b = [b]);
3862                w &&
3863                  (b = a.a.jb(b, function (b) {
3864                    return b === n || null === b || !a.a.f(b._destroy);
3865                  }));
3866                x(b);
3867              },
3868              null,
3869              { l: h },
3870            );
3871          x(d.v());
3872          var A = d.subscribe(
3873            function (a) {
3874              x(d(), a);
3875            },
3876            null,
3877            "arrayChange",
3878          );
3879          A.l(h);
3880          return A;
3881        };
3882        var h = a.a.g.Z(),
3883          m = a.a.g.Z();
3884        a.c.template = {
3885          init: function (b, c) {
3886            var d = a.a.f(c());
3887            if ("string" == typeof d || "name" in d) a.h.Ea(b);
3888            else if ("nodes" in d) {
3889              d = d.nodes || [];
3890              if (a.O(d))
3891                throw Error(
3892                  'The "nodes" option must be a plain, non-observable array.',
3893                );
3894              var e = d[0] && d[0].parentNode;
3895              (e && a.a.g.get(e, m)) || ((e = a.a.Yb(d)), a.a.g.set(e, m, !0));
3896              new a.C.ia(b).nodes(e);
3897            } else if (((d = a.h.childNodes(b)), 0 < d.length))
3898              ((e = a.a.Yb(d)), new a.C.ia(b).nodes(e));
3899            else
3900              throw Error(
3901                "Anonymous template defined, but no template content was provided",
3902              );
3903            return { controlsDescendantBindings: !0 };
3904          },
3905          update: function (b, c, d, e, f) {
3906            var g = c();
3907            c = a.a.f(g);
3908            d = !0;
3909            e = null;
3910            "string" == typeof c
3911              ? (c = {})
3912              : ((g = "name" in c ? c.name : b),
3913                "if" in c && (d = a.a.f(c["if"])),
3914                d && "ifnot" in c && (d = !a.a.f(c.ifnot)),
3915                d && !g && (d = !1));
3916            "foreach" in c
3917              ? (e = a.Qd(g, (d && c.foreach) || [], c, b, f))
3918              : d
3919                ? ((d = f),
3920                  "data" in c &&
3921                    (d = f.createChildContext(c.data, {
3922                      as: c.as,
3923                      noChildContext: c.noChildContext,
3924                      exportDependencies: !0,
3925                    })),
3926                  (e = a.dc(g, d, c, b)))
3927                : a.h.Ea(b);
3928            f = e;
3929            (c = a.a.g.get(b, h)) && "function" == typeof c.s && c.s();
3930            a.a.g.set(b, h, !f || (f.ja && !f.ja()) ? n : f);
3931          },
3932        };
3933        a.m.Ra.template = function (b) {
3934          b = a.m.ac(b);
3935          return (1 == b.length && b[0].unknown) || a.m.Id(b, "name")
3936            ? null
3937            : "This template engine does not support anonymous templates nested within its templates";
3938        };
3939        a.h.ea.template = !0;
3940      })();
3941      a.b("setTemplateEngine", a.gc);
3942      a.b("renderTemplate", a.dc);
3943      a.a.Kc = function (a, c, d) {
3944        if (a.length && c.length) {
3945          var e, f, g, h, m;
3946          for (e = f = 0; (!d || e < d) && (h = a[f]); ++f) {
3947            for (g = 0; (m = c[g]); ++g)
3948              if (h.value === m.value) {
3949                h.moved = m.index;
3950                m.moved = h.index;
3951                c.splice(g, 1);
3952                e = g = 0;
3953                break;
3954              }
3955            e += g;
3956          }
3957        }
3958      };
3959      a.a.Pb = (function () {
3960        function b(b, d, e, f, g) {
3961          var h = Math.min,
3962            m = Math.max,
3963            k = [],
3964            l,
3965            p = b.length,
3966            q,
3967            n = d.length,
3968            r = n - p || 1,
3969            v = p + n + 1,
3970            u,
3971            w,
3972            z;
3973          for (l = 0; l <= p; l++)
3974            for (
3975              w = u, k.push((u = [])), z = h(n, l + r), q = m(0, l - 1);
3976              q <= z;
3977              q++
3978            )
3979              u[q] = q
3980                ? l
3981                  ? b[l - 1] === d[q - 1]
3982                    ? w[q - 1]
3983                    : h(w[q] || v, u[q - 1] || v) + 1
3984                  : q + 1
3985                : l + 1;
3986          h = [];
3987          m = [];
3988          r = [];
3989          l = p;
3990          for (q = n; l || q; )
3991            ((n = k[l][q] - 1),
3992              q && n === k[l][q - 1]
3993                ? m.push((h[h.length] = { status: e, value: d[--q], index: q }))
3994                : l && n === k[l - 1][q]
3995                  ? r.push(
3996                      (h[h.length] = { status: f, value: b[--l], index: l }),
3997                    )
3998                  : (--q,
3999                    --l,
4000                    g.sparse || h.push({ status: "retained", value: d[q] })));
4001          a.a.Kc(r, m, !g.dontLimitMoves && 10 * p);
4002          return h.reverse();
4003        }
4004        return function (a, d, e) {
4005          e = "boolean" === typeof e ? { dontLimitMoves: e } : e || {};
4006          a = a || [];
4007          d = d || [];
4008          return a.length < d.length
4009            ? b(a, d, "added", "deleted", e)
4010            : b(d, a, "deleted", "added", e);
4011        };
4012      })();
4013      a.b("utils.compareArrays", a.a.Pb);
4014      (function () {
4015        function b(b, c, d, h, m) {
4016          var k = [],
4017            l = a.$(
4018              function () {
4019                var l = c(d, m, a.a.Ua(k, b)) || [];
4020                0 < k.length && (a.a.Xc(k, l), h && a.u.G(h, null, [d, l, m]));
4021                k.length = 0;
4022                a.a.Nb(k, l);
4023              },
4024              null,
4025              {
4026                l: b,
4027                Sa: function () {
4028                  return !a.a.kd(k);
4029                },
4030              },
4031            );
4032          return { Y: k, $: l.ja() ? l : n };
4033        }
4034        var c = a.a.g.Z(),
4035          d = a.a.g.Z();
4036        a.a.ec = function (e, f, g, h, m, k) {
4037          function l(b) {
4038            y = { Aa: b, pb: a.ta(w++) };
4039            v.push(y);
4040            r || F.push(y);
4041          }
4042          function p(b) {
4043            y = t[b];
4044            w !== y.pb.v() && D.push(y);
4045            y.pb(w++);
4046            a.a.Ua(y.Y, e);
4047            v.push(y);
4048          }
4049          function q(b, c) {
4050            if (b)
4051              for (var d = 0, e = c.length; d < e; d++)
4052                a.a.D(c[d].Y, function (a) {
4053                  b(a, d, c[d].Aa);
4054                });
4055          }
4056          f = f || [];
4057          "undefined" == typeof f.length && (f = [f]);
4058          h = h || {};
4059          var t = a.a.g.get(e, c),
4060            r = !t,
4061            v = [],
4062            u = 0,
4063            w = 0,
4064            z = [],
4065            A = [],
4066            C = [],
4067            D = [],
4068            F = [],
4069            y,
4070            I = 0;
4071          if (r) a.a.D(f, l);
4072          else {
4073            if (!k || (t && t._countWaitingForRemove)) {
4074              var E = a.a.Mb(t, function (a) {
4075                return a.Aa;
4076              });
4077              k = a.a.Pb(E, f, {
4078                dontLimitMoves: h.dontLimitMoves,
4079                sparse: !0,
4080              });
4081            }
4082            for (var E = 0, G, H, K; (G = k[E]); E++)
4083              switch (((H = G.moved), (K = G.index), G.status)) {
4084                case "deleted":
4085                  for (; u < K; ) p(u++);
4086                  H === n &&
4087                    ((y = t[u]),
4088                    y.$ && (y.$.s(), (y.$ = n)),
4089                    a.a.Ua(y.Y, e).length &&
4090                      (h.beforeRemove &&
4091                        (v.push(y), I++, y.Aa === d ? (y = null) : C.push(y)),
4092                      y && z.push.apply(z, y.Y)));
4093                  u++;
4094                  break;
4095                case "added":
4096                  for (; w < K; ) p(u++);
4097                  H !== n ? (A.push(v.length), p(H)) : l(G.value);
4098              }
4099            for (; w < f.length; ) p(u++);
4100            v._countWaitingForRemove = I;
4101          }
4102          a.a.g.set(e, c, v);
4103          q(h.beforeMove, D);
4104          a.a.D(z, h.beforeRemove ? a.oa : a.removeNode);
4105          var M, O, P;
4106          try {
4107            P = e.ownerDocument.activeElement;
4108          } catch (N) {}
4109          if (A.length)
4110            for (; (E = A.shift()) != n; ) {
4111              y = v[E];
4112              for (M = n; E; )
4113                if ((O = v[--E].Y) && O.length) {
4114                  M = O[O.length - 1];
4115                  break;
4116                }
4117              for (f = 0; (u = y.Y[f]); M = u, f++) a.h.Wb(e, u, M);
4118            }
4119          for (E = 0; (y = v[E]); E++) {
4120            y.Y || a.a.extend(y, b(e, g, y.Aa, m, y.pb));
4121            for (f = 0; (u = y.Y[f]); M = u, f++) a.h.Wb(e, u, M);
4122            !y.Ed &&
4123              m &&
4124              (m(y.Aa, y.Y, y.pb), (y.Ed = !0), (M = y.Y[y.Y.length - 1]));
4125          }
4126          P && e.ownerDocument.activeElement != P && P.focus();
4127          q(h.beforeRemove, C);
4128          for (E = 0; E < C.length; ++E) C[E].Aa = d;
4129          q(h.afterMove, D);
4130          q(h.afterAdd, F);
4131        };
4132      })();
4133      a.b("utils.setDomNodeChildrenFromArrayMapping", a.a.ec);
4134      a.ba = function () {
4135        this.allowTemplateRewriting = !1;
4136      };
4137      a.ba.prototype = new a.ca();
4138      a.ba.prototype.constructor = a.ba;
4139      a.ba.prototype.renderTemplateSource = function (b, c, d, e) {
4140        if ((c = (9 > a.a.W ? 0 : b.nodes) ? b.nodes() : null))
4141          return a.a.la(c.cloneNode(!0).childNodes);
4142        b = b.text();
4143        return a.a.ua(b, e);
4144      };
4145      a.ba.Ma = new a.ba();
4146      a.gc(a.ba.Ma);
4147      a.b("nativeTemplateEngine", a.ba);
4148      (function () {
4149        a.$a = function () {
4150          var a = (this.Hd = (function () {
4151            if (!v || !v.tmpl) return 0;
4152            try {
4153              if (0 <= v.tmpl.tag.tmpl.open.toString().indexOf("__")) return 2;
4154            } catch (a) {}
4155            return 1;
4156          })());
4157          this.renderTemplateSource = function (b, e, f, g) {
4158            g = g || w;
4159            f = f || {};
4160            if (2 > a)
4161              throw Error(
4162                "Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.",
4163              );
4164            var h = b.data("precompiled");
4165            h ||
4166              ((h = b.text() || ""),
4167              (h = v.template(
4168                null,
4169                "{{ko_with $item.koBindingContext}}" + h + "{{/ko_with}}",
4170              )),
4171              b.data("precompiled", h));
4172            b = [e.$data];
4173            e = v.extend({ koBindingContext: e }, f.templateOptions);
4174            e = v.tmpl(h, b, e);
4175            e.appendTo(g.createElement("div"));
4176            v.fragments = {};
4177            return e;
4178          };
4179          this.createJavaScriptEvaluatorBlock = function (a) {
4180            return "{{ko_code ((function() { return " + a + " })()) }}";
4181          };
4182          this.addTemplate = function (a, b) {
4183            w.write(
4184              "<script type='text/html' id='" + a + "'>" + b + "\x3c/script>",
4185            );
4186          };
4187          0 < a &&
4188            ((v.tmpl.tag.ko_code = { open: "__.push($1 || '');" }),
4189            (v.tmpl.tag.ko_with = { open: "with($1) {", close: "} " }));
4190        };
4191        a.$a.prototype = new a.ca();
4192        a.$a.prototype.constructor = a.$a;
4193        var b = new a.$a();
4194        0 < b.Hd && a.gc(b);
4195        a.b("jqueryTmplTemplateEngine", a.$a);
4196      })();
4197    });
4198  })();
4199})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.