cephurs

notecrypt.appspot.com source logged in

May 29th, 2013
785
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. from: https://notecrypt.appspot.com/ and https://news.ycombinator.com/item?id=5787498
  2.  
  3. <!DOCTYPE html>
  4. <html ng-app>
  5.    
  6.     <head>
  7.         <script>
  8.             "use strict";
  9.             var sjcl = {
  10.                 cipher: {},
  11.                 hash: {},
  12.                 keyexchange: {},
  13.                 mode: {},
  14.                 misc: {},
  15.                 codec: {},
  16.                 exception: {
  17.                     corrupt: function (a) {
  18.                         this.toString = function () {
  19.                             return "CORRUPT: " + this.message
  20.                         };
  21.                         this.message = a
  22.                     },
  23.                     invalid: function (a) {
  24.                         this.toString = function () {
  25.                             return "INVALID: " + this.message
  26.                         };
  27.                         this.message = a
  28.                     },
  29.                     bug: function (a) {
  30.                         this.toString = function () {
  31.                             return "BUG: " + this.message
  32.                         };
  33.                         this.message = a
  34.                     },
  35.                     notReady: function (a) {
  36.                         this.toString = function () {
  37.                             return "NOT READY: " + this.message
  38.                         };
  39.                         this.message = a
  40.                     }
  41.                 }
  42.             };
  43.             if (typeof module != "undefined" && module.exports) module.exports = sjcl;
  44.             sjcl.cipher.aes = function (a) {
  45.                 this.h[0][0][0] || this.z();
  46.                 var b, c, d, e, f = this.h[0][4],
  47.                     g = this.h[1];
  48.                 b = a.length;
  49.                 var h = 1;
  50.                 if (b !== 4 && b !== 6 && b !== 8) throw new sjcl.exception.invalid("invalid aes key size");
  51.                 this.a = [d = a.slice(0), e = []];
  52.                 for (a = b; a < 4 * b + 28; a++) {
  53.                     c = d[a - 1];
  54.                     if (a % b === 0 || b === 8 && a % b === 4) {
  55.                         c = f[c >>> 24] << 24 ^ f[c >> 16 & 255] << 16 ^ f[c >> 8 & 255] << 8 ^ f[c & 255];
  56.                         if (a % b === 0) {
  57.                             c = c << 8 ^ c >>> 24 ^ h << 24;
  58.                             h = h << 1 ^ (h >> 7) * 283
  59.                         }
  60.                     }
  61.                     d[a] = d[a - b] ^ c
  62.                 }
  63.                 for (b = 0; a; b++, a--) {
  64.                     c = d[b & 3 ? a : a - 4];
  65.                     e[b] = a <= 4 || b < 4 ? c : g[0][f[c >>> 24]] ^ g[1][f[c >> 16 & 255]] ^ g[2][f[c >> 8 & 255]] ^
  66.                         g[3][f[c & 255]]
  67.                 }
  68.             };
  69.             sjcl.cipher.aes.prototype = {
  70.                 encrypt: function (a) {
  71.                     return this.I(a, 0)
  72.                 },
  73.                 decrypt: function (a) {
  74.                     return this.I(a, 1)
  75.                 },
  76.                 h: [
  77.                     [
  78.                         [],
  79.                         [],
  80.                         [],
  81.                         [],
  82.                         []
  83.                     ],
  84.                     [
  85.                         [],
  86.                         [],
  87.                         [],
  88.                         [],
  89.                         []
  90.                     ]
  91.                 ],
  92.                 z: function () {
  93.                     var a = this.h[0],
  94.                         b = this.h[1],
  95.                         c = a[4],
  96.                         d = b[4],
  97.                         e, f, g, h = [],
  98.                         i = [],
  99.                         k, j, l, m;
  100.                     for (e = 0; e < 0x100; e++) i[(h[e] = e << 1 ^ (e >> 7) * 283) ^ e] = e;
  101.                     for (f = g = 0; !c[f]; f ^= k || 1, g = i[g] || 1) {
  102.                         l = g ^ g << 1 ^ g << 2 ^ g << 3 ^ g << 4;
  103.                         l = l >> 8 ^ l & 255 ^ 99;
  104.                         c[f] = l;
  105.                         d[l] = f;
  106.                         j = h[e = h[k = h[f]]];
  107.                         m = j * 0x1010101 ^ e * 0x10001 ^ k * 0x101 ^ f * 0x1010100;
  108.                         j = h[l] * 0x101 ^ l * 0x1010100;
  109.                         for (e = 0; e < 4; e++) {
  110.                             a[e][f] = j = j << 24 ^ j >>> 8;
  111.                             b[e][l] = m = m << 24 ^ m >>> 8
  112.                         }
  113.                     }
  114.                     for (e =
  115.                         0; e < 5; e++) {
  116.                         a[e] = a[e].slice(0);
  117.                         b[e] = b[e].slice(0)
  118.                     }
  119.                 },
  120.                 I: function (a, b) {
  121.                     if (a.length !== 4) throw new sjcl.exception.invalid("invalid aes block size");
  122.                     var c = this.a[b],
  123.                         d = a[0] ^ c[0],
  124.                         e = a[b ? 3 : 1] ^ c[1],
  125.                         f = a[2] ^ c[2];
  126.                     a = a[b ? 1 : 3] ^ c[3];
  127.                     var g, h, i, k = c.length / 4 - 2,
  128.                         j, l = 4,
  129.                         m = [0, 0, 0, 0];
  130.                     g = this.h[b];
  131.                     var n = g[0],
  132.                         o = g[1],
  133.                         p = g[2],
  134.                         q = g[3],
  135.                         r = g[4];
  136.                     for (j = 0; j < k; j++) {
  137.                         g = n[d >>> 24] ^ o[e >> 16 & 255] ^ p[f >> 8 & 255] ^ q[a & 255] ^ c[l];
  138.                         h = n[e >>> 24] ^ o[f >> 16 & 255] ^ p[a >> 8 & 255] ^ q[d & 255] ^ c[l + 1];
  139.                         i = n[f >>> 24] ^ o[a >> 16 & 255] ^ p[d >> 8 & 255] ^ q[e & 255] ^ c[l + 2];
  140.                         a = n[a >>> 24] ^ o[d >> 16 &
  141.                         255] ^ p[e >> 8 & 255] ^ q[f & 255] ^ c[l + 3];
  142.                         l += 4;
  143.                         d = g;
  144.                         e = h;
  145.                         f = i
  146.                     }
  147.                     for (j = 0; j < 4; j++) {
  148.                         m[b ? 3 & -j : j] = r[d >>> 24] << 24 ^ r[e >> 16 & 255] << 16 ^ r[f >> 8 & 255] << 8 ^ r[a & 255] ^ c[l++];
  149.                         g = d;
  150.                         d = e;
  151.                         e = f;
  152.                         f = a;
  153.                         a = g
  154.                     }
  155.                     return m
  156.                 }
  157.             };
  158.             sjcl.bitArray = {
  159.                 bitSlice: function (a, b, c) {
  160.                     a = sjcl.bitArray.P(a.slice(b / 32), 32 - (b & 31)).slice(1);
  161.                     return c === undefined ? a : sjcl.bitArray.clamp(a, c - b)
  162.                 },
  163.                 extract: function (a, b, c) {
  164.                     var d = Math.floor(-b - c & 31);
  165.                     return ((b + c - 1 ^ b) & -32 ? a[b / 32 | 0] << 32 - d ^ a[b / 32 + 1 | 0] >>> d : a[b / 32 | 0] >>> d) & (1 << c) - 1
  166.                 },
  167.                 concat: function (a, b) {
  168.                     if (a.length === 0 || b.length === 0) return a.concat(b);
  169.                     var c = a[a.length - 1],
  170.                         d = sjcl.bitArray.getPartial(c);
  171.                     return d === 32 ? a.concat(b) : sjcl.bitArray.P(b, d, c | 0, a.slice(0, a.length - 1))
  172.                 },
  173.                 bitLength: function (a) {
  174.                     var b = a.length;
  175.                     if (b === 0) return 0;
  176.                     return (b - 1) * 32 + sjcl.bitArray.getPartial(a[b - 1])
  177.                 },
  178.                 clamp: function (a, b) {
  179.                     if (a.length * 32 < b) return a;
  180.                     a = a.slice(0, Math.ceil(b / 32));
  181.                     var c = a.length;
  182.                     b &= 31;
  183.                     if (c > 0 && b) a[c - 1] = sjcl.bitArray.partial(b, a[c - 1] & 2147483648 >> b - 1, 1);
  184.                     return a
  185.                 },
  186.                 partial: function (a, b, c) {
  187.                     if (a === 32) return b;
  188.                     return (c ? b | 0 : b << 32 - a) + a * 0x10000000000
  189.                 },
  190.                 getPartial: function (a) {
  191.                     return Math.round(a / 0x10000000000) || 32
  192.                 },
  193.                 equal: function (a, b) {
  194.                     if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) return false;
  195.                     var c = 0,
  196.                         d;
  197.                     for (d = 0; d < a.length; d++) c |=
  198.                             a[d] ^ b[d];
  199.                     return c === 0
  200.                 },
  201.                 P: function (a, b, c, d) {
  202.                     var e;
  203.                     e = 0;
  204.                     if (d === undefined) d = [];
  205.                     for (; b >= 32; b -= 32) {
  206.                         d.push(c);
  207.                         c = 0
  208.                     }
  209.                     if (b === 0) return d.concat(a);
  210.                     for (e = 0; e < a.length; e++) {
  211.                         d.push(c | a[e] >>> b);
  212.                         c = a[e] << 32 - b
  213.                     }
  214.                     e = a.length ? a[a.length - 1] : 0;
  215.                     a = sjcl.bitArray.getPartial(e);
  216.                     d.push(sjcl.bitArray.partial(b + a & 31, b + a > 32 ? c : d.pop(), 1));
  217.                     return d
  218.                 },
  219.                 k: function (a, b) {
  220.                     return [a[0] ^ b[0], a[1] ^ b[1], a[2] ^ b[2], a[3] ^ b[3]]
  221.                 }
  222.             };
  223.             sjcl.codec.utf8String = {
  224.                 fromBits: function (a) {
  225.                     var b = "",
  226.                         c = sjcl.bitArray.bitLength(a),
  227.                         d, e;
  228.                     for (d = 0; d < c / 8; d++) {
  229.                         if ((d & 3) === 0) e = a[d / 4];
  230.                         b += String.fromCharCode(e >>> 24);
  231.                         e <<= 8
  232.                     }
  233.                     return decodeURIComponent(escape(b))
  234.                 },
  235.                 toBits: function (a) {
  236.                     a = unescape(encodeURIComponent(a));
  237.                     var b = [],
  238.                         c, d = 0;
  239.                     for (c = 0; c < a.length; c++) {
  240.                         d = d << 8 | a.charCodeAt(c);
  241.                         if ((c & 3) === 3) {
  242.                             b.push(d);
  243.                             d = 0
  244.                         }
  245.                     }
  246.                     c & 3 && b.push(sjcl.bitArray.partial(8 * (c & 3), d));
  247.                     return b
  248.                 }
  249.             };
  250.             sjcl.codec.hex = {
  251.                 fromBits: function (a) {
  252.                     var b = "",
  253.                         c;
  254.                     for (c = 0; c < a.length; c++) b += ((a[c] | 0) + 0xf00000000000).toString(16).substr(4);
  255.                     return b.substr(0, sjcl.bitArray.bitLength(a) / 4)
  256.                 },
  257.                 toBits: function (a) {
  258.                     var b, c = [],
  259.                         d;
  260.                     a = a.replace(/\s|0x/g, "");
  261.                     d = a.length;
  262.                     a += "00000000";
  263.                     for (b = 0; b < a.length; b += 8) c.push(parseInt(a.substr(b, 8), 16) ^ 0);
  264.                     return sjcl.bitArray.clamp(c, d * 4)
  265.                 }
  266.             };
  267.             sjcl.codec.base64 = {
  268.                 F: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
  269.                 fromBits: function (a, b, c) {
  270.                     var d = "",
  271.                         e = 0,
  272.                         f = sjcl.codec.base64.F,
  273.                         g = 0,
  274.                         h = sjcl.bitArray.bitLength(a);
  275.                     if (c) f = f.substr(0, 62) + "-_";
  276.                     for (c = 0; d.length * 6 < h;) {
  277.                         d += f.charAt((g ^ a[c] >>> e) >>> 26);
  278.                         if (e < 6) {
  279.                             g = a[c] << 6 - e;
  280.                             e += 26;
  281.                             c++
  282.                         } else {
  283.                             g <<= 6;
  284.                             e -= 6
  285.                         }
  286.                     }
  287.                     for (; d.length & 3 && !b;) d += "=";
  288.                     return d
  289.                 },
  290.                 toBits: function (a, b) {
  291.                     a = a.replace(/\s|=/g, "");
  292.                     var c = [],
  293.                         d = 0,
  294.                         e = sjcl.codec.base64.F,
  295.                         f = 0,
  296.                         g;
  297.                     if (b) e = e.substr(0, 62) + "-_";
  298.                     for (b = 0; b < a.length; b++) {
  299.                         g = e.indexOf(a.charAt(b));
  300.                         if (g < 0) throw new sjcl.exception.invalid("this isn't base64!");
  301.                         if (d > 26) {
  302.                             d -= 26;
  303.                             c.push(f ^ g >>> d);
  304.                             f = g << 32 - d
  305.                         } else {
  306.                             d += 6;
  307.                             f ^= g << 32 - d
  308.                         }
  309.                     }
  310.                     d & 56 && c.push(sjcl.bitArray.partial(d & 56, f, 1));
  311.                     return c
  312.                 }
  313.             };
  314.             sjcl.codec.base64url = {
  315.                 fromBits: function (a) {
  316.                     return sjcl.codec.base64.fromBits(a, 1, 1)
  317.                 },
  318.                 toBits: function (a) {
  319.                     return sjcl.codec.base64.toBits(a, 1)
  320.                 }
  321.             };
  322.             sjcl.hash.sha256 = function (a) {
  323.                 this.a[0] || this.z();
  324.                 if (a) {
  325.                     this.n = a.n.slice(0);
  326.                     this.i = a.i.slice(0);
  327.                     this.e = a.e
  328.                 } else this.reset()
  329.             };
  330.             sjcl.hash.sha256.hash = function (a) {
  331.                 return (new sjcl.hash.sha256).update(a).finalize()
  332.             };
  333.             sjcl.hash.sha256.prototype = {
  334.                 blockSize: 512,
  335.                 reset: function () {
  336.                     this.n = this.N.slice(0);
  337.                     this.i = [];
  338.                     this.e = 0;
  339.                     return this
  340.                 },
  341.                 update: function (a) {
  342.                     if (typeof a === "string") a = sjcl.codec.utf8String.toBits(a);
  343.                     var b, c = this.i = sjcl.bitArray.concat(this.i, a);
  344.                     b = this.e;
  345.                     a = this.e = b + sjcl.bitArray.bitLength(a);
  346.                     for (b = 512 + b & -512; b <= a; b += 512) this.D(c.splice(0, 16));
  347.                     return this
  348.                 },
  349.                 finalize: function () {
  350.                     var a, b = this.i,
  351.                         c = this.n;
  352.                     b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(1, 1)]);
  353.                     for (a = b.length + 2; a & 15; a++) b.push(0);
  354.                     b.push(Math.floor(this.e /
  355.                             4294967296));
  356.                     for (b.push(this.e | 0); b.length;) this.D(b.splice(0, 16));
  357.                     this.reset();
  358.                     return c
  359.                 },
  360.                 N: [],
  361.                 a: [],
  362.                 z: function () {
  363.                     function a(e) {
  364.                         return (e - Math.floor(e)) * 0x100000000 | 0
  365.                     }
  366.                     var b = 0,
  367.                         c = 2,
  368.                         d;
  369.                     a: for (; b < 64; c++) {
  370.                         for (d = 2; d * d <= c; d++) if (c % d === 0) continue a;
  371.                         if (b < 8) this.N[b] = a(Math.pow(c, 0.5));
  372.                         this.a[b] = a(Math.pow(c, 1 / 3));
  373.                         b++
  374.                     }
  375.                 },
  376.                 D: function (a) {
  377.                     var b, c, d = a.slice(0),
  378.                         e = this.n,
  379.                         f = this.a,
  380.                         g = e[0],
  381.                         h = e[1],
  382.                         i = e[2],
  383.                         k = e[3],
  384.                         j = e[4],
  385.                         l = e[5],
  386.                         m = e[6],
  387.                         n = e[7];
  388.                     for (a = 0; a < 64; a++) {
  389.                         if (a < 16) b = d[a];
  390.                         else {
  391.                             b = d[a + 1 & 15];
  392.                             c = d[a + 14 & 15];
  393.                             b = d[a & 15] = (b >>> 7 ^ b >>> 18 ^
  394.                                 b >>> 3 ^ b << 25 ^ b << 14) + (c >>> 17 ^ c >>> 19 ^ c >>> 10 ^ c << 15 ^ c << 13) + d[a & 15] + d[a + 9 & 15] | 0
  395.                         }
  396.                         b = b + n + (j >>> 6 ^ j >>> 11 ^ j >>> 25 ^ j << 26 ^ j << 21 ^ j << 7) + (m ^ j & (l ^ m)) + f[a];
  397.                         n = m;
  398.                         m = l;
  399.                         l = j;
  400.                         j = k + b | 0;
  401.                         k = i;
  402.                         i = h;
  403.                         h = g;
  404.                         g = b + (h & i ^ k & (h ^ i)) + (h >>> 2 ^ h >>> 13 ^ h >>> 22 ^ h << 30 ^ h << 19 ^ h << 10) | 0
  405.                     }
  406.                     e[0] = e[0] + g | 0;
  407.                     e[1] = e[1] + h | 0;
  408.                     e[2] = e[2] + i | 0;
  409.                     e[3] = e[3] + k | 0;
  410.                     e[4] = e[4] + j | 0;
  411.                     e[5] = e[5] + l | 0;
  412.                     e[6] = e[6] + m | 0;
  413.                     e[7] = e[7] + n | 0
  414.                 }
  415.             };
  416.             sjcl.mode.ccm = {
  417.                 name: "ccm",
  418.                 encrypt: function (a, b, c, d, e) {
  419.                     var f, g = b.slice(0),
  420.                         h = sjcl.bitArray,
  421.                         i = h.bitLength(c) / 8,
  422.                         k = h.bitLength(g) / 8;
  423.                     e = e || 64;
  424.                     d = d || [];
  425.                     if (i < 7) throw new sjcl.exception.invalid("ccm: iv must be at least 7 bytes");
  426.                     for (f = 2; f < 4 && k >>> 8 * f; f++);
  427.                     if (f < 15 - i) f = 15 - i;
  428.                     c = h.clamp(c, 8 * (15 - f));
  429.                     b = sjcl.mode.ccm.H(a, b, c, d, e, f);
  430.                     g = sjcl.mode.ccm.J(a, g, c, b, e, f);
  431.                     return h.concat(g.data, g.tag)
  432.                 },
  433.                 decrypt: function (a, b, c, d, e) {
  434.                     e = e || 64;
  435.                     d = d || [];
  436.                     var f = sjcl.bitArray,
  437.                         g = f.bitLength(c) / 8,
  438.                         h = f.bitLength(b),
  439.                         i = f.clamp(b, h - e),
  440.                         k = f.bitSlice(b,
  441.                             h - e);
  442.                     h = (h - e) / 8;
  443.                     if (g < 7) throw new sjcl.exception.invalid("ccm: iv must be at least 7 bytes");
  444.                     for (b = 2; b < 4 && h >>> 8 * b; b++);
  445.                     if (b < 15 - g) b = 15 - g;
  446.                     c = f.clamp(c, 8 * (15 - b));
  447.                     i = sjcl.mode.ccm.J(a, i, c, k, e, b);
  448.                     a = sjcl.mode.ccm.H(a, i.data, c, d, e, b);
  449.                     if (!f.equal(i.tag, a)) throw new sjcl.exception.corrupt("ccm: tag doesn't match");
  450.                     return i.data
  451.                 },
  452.                 H: function (a, b, c, d, e, f) {
  453.                     var g = [],
  454.                         h = sjcl.bitArray,
  455.                         i = h.k;
  456.                     e /= 8;
  457.                     if (e % 2 || e < 4 || e > 16) throw new sjcl.exception.invalid("ccm: invalid tag length");
  458.                     if (d.length > 0xffffffff || b.length > 0xffffffff) throw new sjcl.exception.bug("ccm: can't deal with 4GiB or more data");
  459.                     f = [h.partial(8, (d.length ? 64 : 0) | e - 2 << 2 | f - 1)];
  460.                     f = h.concat(f, c);
  461.                     f[3] |= h.bitLength(b) / 8;
  462.                     f = a.encrypt(f);
  463.                     if (d.length) {
  464.                         c = h.bitLength(d) / 8;
  465.                         if (c <= 65279) g = [h.partial(16, c)];
  466.                         else if (c <= 0xffffffff) g = h.concat([h.partial(16, 65534)], [c]);
  467.                         g = h.concat(g, d);
  468.                         for (d = 0; d < g.length; d += 4) f = a.encrypt(i(f, g.slice(d, d + 4).concat([0, 0, 0])))
  469.                     }
  470.                     for (d = 0; d < b.length; d += 4) f = a.encrypt(i(f, b.slice(d, d + 4).concat([0, 0, 0])));
  471.                     return h.clamp(f, e * 8)
  472.                 },
  473.                 J: function (a, b, c, d, e, f) {
  474.                     var g, h = sjcl.bitArray;
  475.                     g = h.k;
  476.                     var i = b.length,
  477.                         k = h.bitLength(b);
  478.                     c = h.concat([h.partial(8,
  479.                                 f - 1)], c).concat([0, 0, 0]).slice(0, 4);
  480.                     d = h.bitSlice(g(d, a.encrypt(c)), 0, e);
  481.                     if (!i) return {
  482.                             tag: d,
  483.                             data: []
  484.                     };
  485.                     for (g = 0; g < i; g += 4) {
  486.                         c[3]++;
  487.                         e = a.encrypt(c);
  488.                         b[g] ^= e[0];
  489.                         b[g + 1] ^= e[1];
  490.                         b[g + 2] ^= e[2];
  491.                         b[g + 3] ^= e[3]
  492.                     }
  493.                     return {
  494.                         tag: d,
  495.                         data: h.clamp(b, k)
  496.                     }
  497.                 }
  498.             };
  499.             sjcl.mode.ocb2 = {
  500.                 name: "ocb2",
  501.                 encrypt: function (a, b, c, d, e, f) {
  502.                     if (sjcl.bitArray.bitLength(c) !== 128) throw new sjcl.exception.invalid("ocb iv must be 128 bits");
  503.                     var g, h = sjcl.mode.ocb2.B,
  504.                         i = sjcl.bitArray,
  505.                         k = i.k,
  506.                         j = [0, 0, 0, 0];
  507.                     c = h(a.encrypt(c));
  508.                     var l, m = [];
  509.                     d = d || [];
  510.                     e = e || 64;
  511.                     for (g = 0; g + 4 < b.length; g += 4) {
  512.                         l = b.slice(g, g + 4);
  513.                         j = k(j, l);
  514.                         m = m.concat(k(c, a.encrypt(k(c, l))));
  515.                         c = h(c)
  516.                     }
  517.                     l = b.slice(g);
  518.                     b = i.bitLength(l);
  519.                     g = a.encrypt(k(c, [0, 0, 0, b]));
  520.                     l = i.clamp(k(l.concat([0, 0, 0]), g), b);
  521.                     j = k(j, k(l.concat([0, 0, 0]), g));
  522.                     j = a.encrypt(k(j, k(c, h(c))));
  523.                     if (d.length) j = k(j, f ? d : sjcl.mode.ocb2.pmac(a, d));
  524.                     return m.concat(i.concat(l, i.clamp(j, e)))
  525.                 },
  526.                 decrypt: function (a, b, c, d, e, f) {
  527.                     if (sjcl.bitArray.bitLength(c) !== 128) throw new sjcl.exception.invalid("ocb iv must be 128 bits");
  528.                     e = e || 64;
  529.                     var g = sjcl.mode.ocb2.B,
  530.                         h = sjcl.bitArray,
  531.                         i = h.k,
  532.                         k = [0, 0, 0, 0],
  533.                         j = g(a.encrypt(c)),
  534.                         l, m, n = sjcl.bitArray.bitLength(b) - e,
  535.                         o = [];
  536.                     d = d || [];
  537.                     for (c = 0; c + 4 < n / 32; c += 4) {
  538.                         l = i(j, a.decrypt(i(j, b.slice(c, c + 4))));
  539.                         k = i(k, l);
  540.                         o = o.concat(l);
  541.                         j = g(j)
  542.                     }
  543.                     m = n - c * 32;
  544.                     l = a.encrypt(i(j, [0, 0, 0, m]));
  545.                     l = i(l, h.clamp(b.slice(c),
  546.                             m).concat([0, 0, 0]));
  547.                     k = i(k, l);
  548.                     k = a.encrypt(i(k, i(j, g(j))));
  549.                     if (d.length) k = i(k, f ? d : sjcl.mode.ocb2.pmac(a, d));
  550.                     if (!h.equal(h.clamp(k, e), h.bitSlice(b, n))) throw new sjcl.exception.corrupt("ocb: tag doesn't match");
  551.                     return o.concat(h.clamp(l, m))
  552.                 },
  553.                 pmac: function (a, b) {
  554.                     var c, d = sjcl.mode.ocb2.B,
  555.                         e = sjcl.bitArray,
  556.                         f = e.k,
  557.                         g = [0, 0, 0, 0],
  558.                         h = a.encrypt([0, 0, 0, 0]);
  559.                     h = f(h, d(d(h)));
  560.                     for (c = 0; c + 4 < b.length; c += 4) {
  561.                         h = d(h);
  562.                         g = f(g, a.encrypt(f(h, b.slice(c, c + 4))))
  563.                     }
  564.                     b = b.slice(c);
  565.                     if (e.bitLength(b) < 128) {
  566.                         h = f(h, d(h));
  567.                         b = e.concat(b, [2147483648 | 0, 0,
  568.                                 0, 0
  569.                             ])
  570.                     }
  571.                     g = f(g, b);
  572.                     return a.encrypt(f(d(f(h, d(h))), g))
  573.                 },
  574.                 B: function (a) {
  575.                     return [a[0] << 1 ^ a[1] >>> 31, a[1] << 1 ^ a[2] >>> 31, a[2] << 1 ^ a[3] >>> 31, a[3] << 1 ^ (a[0] >>> 31) * 135]
  576.                 }
  577.             };
  578.             sjcl.misc.hmac = function (a, b) {
  579.                 this.M = b = b || sjcl.hash.sha256;
  580.                 var c = [
  581.                     [],
  582.                     []
  583.                 ],
  584.                     d = b.prototype.blockSize / 32;
  585.                 this.l = [new b, new b];
  586.                 if (a.length > d) a = b.hash(a);
  587.                 for (b = 0; b < d; b++) {
  588.                     c[0][b] = a[b] ^ 909522486;
  589.                     c[1][b] = a[b] ^ 1549556828
  590.                 }
  591.                 this.l[0].update(c[0]);
  592.                 this.l[1].update(c[1])
  593.             };
  594.             sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (a, b) {
  595.                 a = (new this.M(this.l[0])).update(a, b).finalize();
  596.                 return (new this.M(this.l[1])).update(a).finalize()
  597.             };
  598.             sjcl.misc.pbkdf2 = function (a, b, c, d, e) {
  599.                 c = c || 1E3;
  600.                 if (d < 0 || c < 0) throw sjcl.exception.invalid("invalid params to pbkdf2");
  601.                 if (typeof a === "string") a = sjcl.codec.utf8String.toBits(a);
  602.                 e = e || sjcl.misc.hmac;
  603.                 a = new e(a);
  604.                 var f, g, h, i, k = [],
  605.                     j = sjcl.bitArray;
  606.                 for (i = 1; 32 * k.length < (d || 1); i++) {
  607.                     e = f = a.encrypt(j.concat(b, [i]));
  608.                     for (g = 1; g < c; g++) {
  609.                         f = a.encrypt(f);
  610.                         for (h = 0; h < f.length; h++) e[h] ^= f[h]
  611.                     }
  612.                     k = k.concat(e)
  613.                 }
  614.                 if (d) k = j.clamp(k, d);
  615.                 return k
  616.             };
  617.             sjcl.random = {
  618.                 randomWords: function (a, b) {
  619.                     var c = [];
  620.                     b = this.isReady(b);
  621.                     var d;
  622.                     if (b === 0) throw new sjcl.exception.notReady("generator isn't seeded");
  623.                     else b & 2 && this.U(!(b & 1));
  624.                     for (b = 0; b < a; b += 4) {
  625.                         (b + 1) % 0x10000 === 0 && this.L();
  626.                         d = this.w();
  627.                         c.push(d[0], d[1], d[2], d[3])
  628.                     }
  629.                     this.L();
  630.                     return c.slice(0, a)
  631.                 },
  632.                 setDefaultParanoia: function (a) {
  633.                     this.t = a
  634.                 },
  635.                 addEntropy: function (a, b, c) {
  636.                     c = c || "user";
  637.                     var d, e, f = (new Date).valueOf(),
  638.                         g = this.q[c],
  639.                         h = this.isReady(),
  640.                         i = 0;
  641.                     d = this.G[c];
  642.                     if (d === undefined) d = this.G[c] = this.R++;
  643.                     if (g === undefined) g = this.q[c] =
  644.                             0;
  645.                     this.q[c] = (this.q[c] + 1) % this.b.length;
  646.                     switch (typeof a) {
  647.                     case "number":
  648.                         if (b === undefined) b = 1;
  649.                         this.b[g].update([d, this.u++, 1, b, f, 1, a | 0]);
  650.                         break;
  651.                     case "object":
  652.                         c = Object.prototype.toString.call(a);
  653.                         if (c === "[object Uint32Array]") {
  654.                             e = [];
  655.                             for (c = 0; c < a.length; c++) e.push(a[c]);
  656.                             a = e
  657.                         } else {
  658.                             if (c !== "[object Array]") i = 1;
  659.                             for (c = 0; c < a.length && !i; c++) if (typeof a[c] != "number") i = 1
  660.                         } if (!i) {
  661.                             if (b === undefined) for (c = b = 0; c < a.length; c++) for (e = a[c]; e > 0;) {
  662.                                         b++;
  663.                                         e >>>= 1
  664.                             }
  665.                             this.b[g].update([d, this.u++, 2, b, f, a.length].concat(a))
  666.                         }
  667.                         break;
  668.                     case "string":
  669.                         if (b ===
  670.                             undefined) b = a.length;
  671.                         this.b[g].update([d, this.u++, 3, b, f, a.length]);
  672.                         this.b[g].update(a);
  673.                         break;
  674.                     default:
  675.                         i = 1
  676.                     }
  677.                     if (i) throw new sjcl.exception.bug("random: addEntropy only supports number, array of numbers or string");
  678.                     this.j[g] += b;
  679.                     this.f += b;
  680.                     if (h === 0) {
  681.                         this.isReady() !== 0 && this.K("seeded", Math.max(this.g, this.f));
  682.                         this.K("progress", this.getProgress())
  683.                     }
  684.                 },
  685.                 isReady: function (a) {
  686.                     a = this.C[a !== undefined ? a : this.t];
  687.                     return this.g && this.g >= a ? this.j[0] > 80 && (new Date).valueOf() > this.O ? 3 : 1 : this.f >= a ? 2 : 0
  688.                 },
  689.                 getProgress: function (a) {
  690.                     a =
  691.                         this.C[a ? a : this.t];
  692.                     return this.g >= a ? 1 : this.f > a ? 1 : this.f / a
  693.                 },
  694.                 startCollectors: function () {
  695.                     if (!this.m) {
  696.                         if (window.addEventListener) {
  697.                             window.addEventListener("load", this.o, false);
  698.                             window.addEventListener("mousemove", this.p, false)
  699.                         } else if (document.attachEvent) {
  700.                             document.attachEvent("onload", this.o);
  701.                             document.attachEvent("onmousemove", this.p)
  702.                         } else throw new sjcl.exception.bug("can't attach event");
  703.                         this.m = true
  704.                     }
  705.                 },
  706.                 stopCollectors: function () {
  707.                     if (this.m) {
  708.                         if (window.removeEventListener) {
  709.                             window.removeEventListener("load",
  710.                                 this.o, false);
  711.                             window.removeEventListener("mousemove", this.p, false)
  712.                         } else if (window.detachEvent) {
  713.                             window.detachEvent("onload", this.o);
  714.                             window.detachEvent("onmousemove", this.p)
  715.                         }
  716.                         this.m = false
  717.                     }
  718.                 },
  719.                 addEventListener: function (a, b) {
  720.                     this.r[a][this.Q++] = b
  721.                 },
  722.                 removeEventListener: function (a, b) {
  723.                     var c;
  724.                     a = this.r[a];
  725.                     var d = [];
  726.                     for (c in a) a.hasOwnProperty(c) && a[c] === b && d.push(c);
  727.                     for (b = 0; b < d.length; b++) {
  728.                         c = d[b];
  729.                         delete a[c]
  730.                     }
  731.                 },
  732.                 b: [new sjcl.hash.sha256],
  733.                 j: [0],
  734.                 A: 0,
  735.                 q: {},
  736.                 u: 0,
  737.                 G: {},
  738.                 R: 0,
  739.                 g: 0,
  740.                 f: 0,
  741.                 O: 0,
  742.                 a: [0, 0, 0, 0, 0, 0, 0, 0],
  743.                 d: [0, 0, 0, 0],
  744.                 s: undefined,
  745.                 t: 6,
  746.                 m: false,
  747.                 r: {
  748.                     progress: {},
  749.                     seeded: {}
  750.                 },
  751.                 Q: 0,
  752.                 C: [0, 48, 64, 96, 128, 192, 0x100, 384, 512, 768, 1024],
  753.                 w: function () {
  754.                     for (var a = 0; a < 4; a++) {
  755.                         this.d[a] = this.d[a] + 1 | 0;
  756.                         if (this.d[a]) break
  757.                     }
  758.                     return this.s.encrypt(this.d)
  759.                 },
  760.                 L: function () {
  761.                     this.a = this.w().concat(this.w());
  762.                     this.s = new sjcl.cipher.aes(this.a)
  763.                 },
  764.                 T: function (a) {
  765.                     this.a = sjcl.hash.sha256.hash(this.a.concat(a));
  766.                     this.s = new sjcl.cipher.aes(this.a);
  767.                     for (a = 0; a < 4; a++) {
  768.                         this.d[a] = this.d[a] + 1 | 0;
  769.                         if (this.d[a]) break
  770.                     }
  771.                 },
  772.                 U: function (a) {
  773.                     var b = [],
  774.                         c = 0,
  775.                         d;
  776.                     this.O = b[0] = (new Date).valueOf() + 3E4;
  777.                     for (d =
  778.                         0; d < 16; d++) b.push(Math.random() * 0x100000000 | 0);
  779.                     for (d = 0; d < this.b.length; d++) {
  780.                         b = b.concat(this.b[d].finalize());
  781.                         c += this.j[d];
  782.                         this.j[d] = 0;
  783.                         if (!a && this.A & 1 << d) break
  784.                     }
  785.                     if (this.A >= 1 << this.b.length) {
  786.                         this.b.push(new sjcl.hash.sha256);
  787.                         this.j.push(0)
  788.                     }
  789.                     this.f -= c;
  790.                     if (c > this.g) this.g = c;
  791.                     this.A++;
  792.                     this.T(b)
  793.                 },
  794.                 p: function (a) {
  795.                     sjcl.random.addEntropy([a.x || a.clientX || a.offsetX, a.y || a.clientY || a.offsetY], 2, "mouse")
  796.                 },
  797.                 o: function () {
  798.                     sjcl.random.addEntropy((new Date).valueOf(), 2, "loadtime")
  799.                 },
  800.                 K: function (a, b) {
  801.                     var c;
  802.                     a = sjcl.random.r[a];
  803.                     var d = [];
  804.                     for (c in a) a.hasOwnProperty(c) && d.push(a[c]);
  805.                     for (c = 0; c < d.length; c++) d[c](b)
  806.                 }
  807.             };
  808.             try {
  809.                 var s = new Uint32Array(32);
  810.                 crypto.getRandomValues(s);
  811.                 sjcl.random.addEntropy(s, 1024, "crypto['getRandomValues']")
  812.             } catch (t) {}
  813.             sjcl.json = {
  814.                 defaults: {
  815.                     v: 1,
  816.                     iter: 1E3,
  817.                     ks: 128,
  818.                     ts: 64,
  819.                     mode: "ccm",
  820.                     adata: "",
  821.                     cipher: "aes"
  822.                 },
  823.                 encrypt: function (a, b, c, d) {
  824.                     c = c || {};
  825.                     d = d || {};
  826.                     var e = sjcl.json,
  827.                         f = e.c({
  828.                                 iv: sjcl.random.randomWords(4, 0)
  829.                             }, e.defaults),
  830.                         g;
  831.                     e.c(f, c);
  832.                     c = f.adata;
  833.                     if (typeof f.salt === "string") f.salt = sjcl.codec.base64.toBits(f.salt);
  834.                     if (typeof f.iv === "string") f.iv = sjcl.codec.base64.toBits(f.iv);
  835.                     if (!sjcl.mode[f.mode] || !sjcl.cipher[f.cipher] || typeof a === "string" && f.iter <= 100 || f.ts !== 64 && f.ts !== 96 && f.ts !== 128 || f.ks !== 128 && f.ks !== 192 && f.ks !== 0x100 || f.iv.length <
  836.                         2 || f.iv.length > 4) throw new sjcl.exception.invalid("json encrypt: invalid parameters");
  837.                     if (typeof a === "string") {
  838.                         g = sjcl.misc.cachedPbkdf2(a, f);
  839.                         a = g.key.slice(0, f.ks / 32);
  840.                         f.salt = g.salt
  841.                     }
  842.                     if (typeof b === "string") b = sjcl.codec.utf8String.toBits(b);
  843.                     if (typeof c === "string") c = sjcl.codec.utf8String.toBits(c);
  844.                     g = new sjcl.cipher[f.cipher](a);
  845.                     e.c(d, f);
  846.                     d.key = a;
  847.                     f.ct = sjcl.mode[f.mode].encrypt(g, b, f.iv, c, f.ts);
  848.                     return e.encode(f)
  849.                 },
  850.                 decrypt: function (a, b, c, d) {
  851.                     c = c || {};
  852.                     d = d || {};
  853.                     var e = sjcl.json;
  854.                     b = e.c(e.c(e.c({}, e.defaults), e.decode(b)),
  855.                         c, true);
  856.                     var f;
  857.                     c = b.adata;
  858.                     if (typeof b.salt === "string") b.salt = sjcl.codec.base64.toBits(b.salt);
  859.                     if (typeof b.iv === "string") b.iv = sjcl.codec.base64.toBits(b.iv);
  860.                     if (!sjcl.mode[b.mode] || !sjcl.cipher[b.cipher] || typeof a === "string" && b.iter <= 100 || b.ts !== 64 && b.ts !== 96 && b.ts !== 128 || b.ks !== 128 && b.ks !== 192 && b.ks !== 0x100 || !b.iv || b.iv.length < 2 || b.iv.length > 4) throw new sjcl.exception.invalid("json decrypt: invalid parameters");
  861.                     if (typeof a === "string") {
  862.                         f = sjcl.misc.cachedPbkdf2(a, b);
  863.                         a = f.key.slice(0, b.ks / 32);
  864.                         b.salt = f.salt
  865.                     }
  866.                     if (typeof c ===
  867.                         "string") c = sjcl.codec.utf8String.toBits(c);
  868.                     f = new sjcl.cipher[b.cipher](a);
  869.                     c = sjcl.mode[b.mode].decrypt(f, b.ct, b.iv, c, b.ts);
  870.                     e.c(d, b);
  871.                     d.key = a;
  872.                     return sjcl.codec.utf8String.fromBits(c)
  873.                 },
  874.                 encode: function (a) {
  875.                     var b, c = "{",
  876.                         d = "";
  877.                     for (b in a) if (a.hasOwnProperty(b)) {
  878.                             if (!b.match(/^[a-z0-9]+$/i)) throw new sjcl.exception.invalid("json encode: invalid property name");
  879.                             c += d + '"' + b + '":';
  880.                             d = ",";
  881.                             switch (typeof a[b]) {
  882.                             case "number":
  883.                             case "boolean":
  884.                                 c += a[b];
  885.                                 break;
  886.                             case "string":
  887.                                 c += '"' + escape(a[b]) + '"';
  888.                                 break;
  889.                             case "object":
  890.                                 c += '"' +
  891.                                     sjcl.codec.base64.fromBits(a[b], 1) + '"';
  892.                                 break;
  893.                             default:
  894.                                 throw new sjcl.exception.bug("json encode: unsupported type");
  895.                             }
  896.                         }
  897.                     return c + "}"
  898.                 },
  899.                 decode: function (a) {
  900.                     a = a.replace(/\s/g, "");
  901.                     if (!a.match(/^\{.*\}$/)) throw new sjcl.exception.invalid("json decode: this isn't json!");
  902.                     a = a.replace(/^\{|\}$/g, "").split(/,/);
  903.                     var b = {}, c, d;
  904.                     for (c = 0; c < a.length; c++) {
  905.                         if (!(d = a[c].match(/^(?:(["']?)([a-z][a-z0-9]*)\1):(?:(\d+)|"([a-z0-9+\/%*_.@=\-]*)")$/i))) throw new sjcl.exception.invalid("json decode: this isn't json!");
  906.                         b[d[2]] =
  907.                             d[3] ? parseInt(d[3], 10) : d[2].match(/^(ct|salt|iv)$/) ? sjcl.codec.base64.toBits(d[4]) : unescape(d[4])
  908.                     }
  909.                     return b
  910.                 },
  911.                 c: function (a, b, c) {
  912.                     if (a === undefined) a = {};
  913.                     if (b === undefined) return a;
  914.                     var d;
  915.                     for (d in b) if (b.hasOwnProperty(d)) {
  916.                             if (c && a[d] !== undefined && a[d] !== b[d]) throw new sjcl.exception.invalid("required parameter overridden");
  917.                             a[d] = b[d]
  918.                         }
  919.                     return a
  920.                 },
  921.                 W: function (a, b) {
  922.                     var c = {}, d;
  923.                     for (d in a) if (a.hasOwnProperty(d) && a[d] !== b[d]) c[d] = a[d];
  924.                     return c
  925.                 },
  926.                 V: function (a, b) {
  927.                     var c = {}, d;
  928.                     for (d = 0; d < b.length; d++) if (a[b[d]] !== undefined) c[b[d]] =
  929.                                 a[b[d]];
  930.                     return c
  931.                 }
  932.             };
  933.             sjcl.encrypt = sjcl.json.encrypt;
  934.             sjcl.decrypt = sjcl.json.decrypt;
  935.             sjcl.misc.S = {};
  936.             sjcl.misc.cachedPbkdf2 = function (a, b) {
  937.                 var c = sjcl.misc.S,
  938.                     d;
  939.                 b = b || {};
  940.                 d = b.iter || 1E3;
  941.                 c = c[a] = c[a] || {};
  942.                 d = c[d] = c[d] || {
  943.                     firstSalt: b.salt && b.salt.length ? b.salt.slice(0) : sjcl.random.randomWords(2, 0)
  944.                 };
  945.                 c = b.salt === undefined ? d.firstSalt : b.salt;
  946.                 d[c] = d[c] || sjcl.misc.pbkdf2(a, c, b.iter);
  947.                 return {
  948.                     key: d[c].slice(0),
  949.                     salt: c.slice(0)
  950.                 }
  951.             };
  952.             /*
  953.  AngularJS v1.0.6
  954.  (c) 2010-2012 Google, Inc. http://angularjs.org
  955.  License: MIT
  956. */
  957.              (function (N, Y, q) {
  958.                     'use strict';
  959.  
  960.                     function n(b, a, c) {
  961.                         var d;
  962.                         if (b) if (H(b)) for (d in b) d != "prototype" && d != "length" && d != "name" && b.hasOwnProperty(d) && a.call(c, b[d], d);
  963.                             else if (b.forEach && b.forEach !== n) b.forEach(a, c);
  964.                         else if (!b || typeof b.length !== "number" ? 0 : typeof b.hasOwnProperty != "function" && typeof b.constructor != "function" || b instanceof K || ca && b instanceof ca || xa.call(b) !== "[object Object]" || typeof b.callee === "function") for (d = 0; d < b.length; d++) a.call(c, b[d], d);
  965.                         else for (d in b) b.hasOwnProperty(d) && a.call(c, b[d],
  966.                                     d);
  967.                         return b
  968.                     }
  969.  
  970.                     function nb(b) {
  971.                         var a = [],
  972.                             c;
  973.                         for (c in b) b.hasOwnProperty(c) && a.push(c);
  974.                         return a.sort()
  975.                     }
  976.  
  977.                     function fc(b, a, c) {
  978.                         for (var d = nb(b), e = 0; e < d.length; e++) a.call(c, b[d[e]], d[e]);
  979.                         return d
  980.                     }
  981.  
  982.                     function ob(b) {
  983.                         return function (a, c) {
  984.                             b(c, a)
  985.                         }
  986.                     }
  987.  
  988.                     function ya() {
  989.                         for (var b = aa.length, a; b;) {
  990.                             b--;
  991.                             a = aa[b].charCodeAt(0);
  992.                             if (a == 57) return aa[b] = "A", aa.join("");
  993.                             if (a == 90) aa[b] = "0";
  994.                             else return aa[b] = String.fromCharCode(a + 1), aa.join("")
  995.                         }
  996.                         aa.unshift("0");
  997.                         return aa.join("")
  998.                     }
  999.  
  1000.                     function v(b) {
  1001.                         n(arguments, function (a) {
  1002.                                 a !== b && n(a, function (a, d) {
  1003.                                         b[d] =
  1004.                                             a
  1005.                                     })
  1006.                             });
  1007.                         return b
  1008.                     }
  1009.  
  1010.                     function G(b) {
  1011.                         return parseInt(b, 10)
  1012.                     }
  1013.  
  1014.                     function za(b, a) {
  1015.                         return v(new(v(function () {}, {
  1016.                                         prototype: b
  1017.                                     })), a)
  1018.                     }
  1019.  
  1020.                     function w() {}
  1021.  
  1022.                     function na(b) {
  1023.                         return b
  1024.                     }
  1025.  
  1026.                     function I(b) {
  1027.                         return function () {
  1028.                             return b
  1029.                         }
  1030.                     }
  1031.  
  1032.                     function x(b) {
  1033.                         return typeof b == "undefined"
  1034.                     }
  1035.  
  1036.                     function y(b) {
  1037.                         return typeof b != "undefined"
  1038.                     }
  1039.  
  1040.                     function L(b) {
  1041.                         return b != null && typeof b == "object"
  1042.                     }
  1043.  
  1044.                     function B(b) {
  1045.                         return typeof b == "string"
  1046.                     }
  1047.  
  1048.                     function Ra(b) {
  1049.                         return typeof b == "number"
  1050.                     }
  1051.  
  1052.                     function oa(b) {
  1053.                         return xa.apply(b) == "[object Date]"
  1054.                     }
  1055.  
  1056.                     function E(b) {
  1057.                         return xa.apply(b) == "[object Array]"
  1058.                     }
  1059.  
  1060.                     function H(b) {
  1061.                         return typeof b == "function"
  1062.                     }
  1063.  
  1064.                     function pa(b) {
  1065.                         return b && b.document && b.location && b.alert && b.setInterval
  1066.                     }
  1067.  
  1068.                     function O(b) {
  1069.                         return B(b) ? b.replace(/^\s*/, "").replace(/\s*$/, "") : b
  1070.                     }
  1071.  
  1072.                     function gc(b) {
  1073.                         return b && (b.nodeName || b.bind && b.find)
  1074.                     }
  1075.  
  1076.                     function Sa(b, a, c) {
  1077.                         var d = [];
  1078.                         n(b, function (b, g, h) {
  1079.                                 d.push(a.call(c, b, g, h))
  1080.                             });
  1081.                         return d
  1082.                     }
  1083.  
  1084.                     function Aa(b, a) {
  1085.                         if (b.indexOf) return b.indexOf(a);
  1086.                         for (var c = 0; c < b.length; c++) if (a === b[c]) return c;
  1087.                         return -1
  1088.                     }
  1089.  
  1090.                     function Ta(b, a) {
  1091.                         var c = Aa(b, a);
  1092.                         c >= 0 && b.splice(c, 1);
  1093.                         return a
  1094.                     }
  1095.  
  1096.                     function V(b, a) {
  1097.                         if (pa(b) ||
  1098.                             b && b.$evalAsync && b.$watch) throw Error("Can't copy Window or Scope");
  1099.                         if (a) {
  1100.                             if (b === a) throw Error("Can't copy equivalent objects or arrays");
  1101.                             if (E(b)) for (var c = a.length = 0; c < b.length; c++) a.push(V(b[c]));
  1102.                             else for (c in n(a, function (b, c) {
  1103.                                             delete a[c]
  1104.                                         }), b) a[c] = V(b[c])
  1105.                         } else(a = b) && (E(b) ? a = V(b, []) : oa(b) ? a = new Date(b.getTime()) : L(b) && (a = V(b, {})));
  1106.                         return a
  1107.                     }
  1108.  
  1109.                     function hc(b, a) {
  1110.                         var a = a || {}, c;
  1111.                         for (c in b) b.hasOwnProperty(c) && c.substr(0, 2) !== "$$" && (a[c] = b[c]);
  1112.                         return a
  1113.                     }
  1114.  
  1115.                     function ga(b, a) {
  1116.                         if (b === a) return !0;
  1117.                         if (b === null || a ===
  1118.                             null) return !1;
  1119.                         if (b !== b && a !== a) return !0;
  1120.                         var c = typeof b,
  1121.                             d;
  1122.                         if (c == typeof a && c == "object") if (E(b)) {
  1123.                                 if ((c = b.length) == a.length) {
  1124.                                     for (d = 0; d < c; d++) if (!ga(b[d], a[d])) return !1;
  1125.                                     return !0
  1126.                                 }
  1127.                             } else if (oa(b)) return oa(a) && b.getTime() == a.getTime();
  1128.                         else {
  1129.                             if (b && b.$evalAsync && b.$watch || a && a.$evalAsync && a.$watch || pa(b) || pa(a)) return !1;
  1130.                             c = {};
  1131.                             for (d in b) if (!(d.charAt(0) === "$" || H(b[d]))) {
  1132.                                     if (!ga(b[d], a[d])) return !1;
  1133.                                     c[d] = !0
  1134.                                 }
  1135.                             for (d in a) if (!c[d] && d.charAt(0) !== "$" && a[d] !== q && !H(a[d])) return !1;
  1136.                             return !0
  1137.                         }
  1138.                         return !1
  1139.                     }
  1140.  
  1141.                     function Ua(b, a) {
  1142.                         var c =
  1143.                             arguments.length > 2 ? ha.call(arguments, 2) : [];
  1144.                         return H(a) && !(a instanceof RegExp) ? c.length ? function () {
  1145.                             return arguments.length ? a.apply(b, c.concat(ha.call(arguments, 0))) : a.apply(b, c)
  1146.                         } : function () {
  1147.                             return arguments.length ? a.apply(b, arguments) : a.call(b)
  1148.                         } : a
  1149.                     }
  1150.  
  1151.                     function ic(b, a) {
  1152.                         var c = a;
  1153.                         /^\$+/.test(b) ? c = q : pa(a) ? c = "$WINDOW" : a && Y === a ? c = "$DOCUMENT" : a && a.$evalAsync && a.$watch && (c = "$SCOPE");
  1154.                         return c
  1155.                     }
  1156.  
  1157.                     function da(b, a) {
  1158.                         return JSON.stringify(b, ic, a ? "  " : null)
  1159.                     }
  1160.  
  1161.                     function pb(b) {
  1162.                         return B(b) ? JSON.parse(b) : b
  1163.                     }
  1164.  
  1165.                     function Va(b) {
  1166.                         b && b.length !==
  1167.                             0 ? (b = A("" + b), b = !(b == "f" || b == "0" || b == "false" || b == "no" || b == "n" || b == "[]")) : b = !1;
  1168.                         return b
  1169.                     }
  1170.  
  1171.                     function qa(b) {
  1172.                         b = u(b).clone();
  1173.                         try {
  1174.                             b.html("")
  1175.                         } catch (a) {}
  1176.                         var c = u("<div>").append(b).html();
  1177.                         try {
  1178.                             return b[0].nodeType === 3 ? A(c) : c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function (a, b) {
  1179.                                     return "<" + A(b)
  1180.                                 })
  1181.                         } catch (d) {
  1182.                             return A(c)
  1183.                         }
  1184.                     }
  1185.  
  1186.                     function Wa(b) {
  1187.                         var a = {}, c, d;
  1188.                         n((b || "").split("&"), function (b) {
  1189.                                 b && (c = b.split("="), d = decodeURIComponent(c[0]), a[d] = y(c[1]) ? decodeURIComponent(c[1]) : !0)
  1190.                             });
  1191.                         return a
  1192.                     }
  1193.  
  1194.                     function qb(b) {
  1195.                         var a = [];
  1196.                         n(b, function (b,
  1197.                                 d) {
  1198.                                 a.push(Xa(d, !0) + (b === !0 ? "" : "=" + Xa(b, !0)))
  1199.                             });
  1200.                         return a.length ? a.join("&") : ""
  1201.                     }
  1202.  
  1203.                     function Ya(b) {
  1204.                         return Xa(b, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+")
  1205.                     }
  1206.  
  1207.                     function Xa(b, a) {
  1208.                         return encodeURIComponent(b).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, a ? "%20" : "+")
  1209.                     }
  1210.  
  1211.                     function jc(b, a) {
  1212.                         function c(a) {
  1213.                             a && d.push(a)
  1214.                         }
  1215.                         var d = [b],
  1216.                             e, g, h = ["ng:app", "ng-app", "x-ng-app", "data-ng-app"],
  1217.                             f = /\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;
  1218.                         n(h, function (a) {
  1219.                                 h[a] = !0;
  1220.                                 c(Y.getElementById(a));
  1221.                                 a = a.replace(":", "\\:");
  1222.                                 b.querySelectorAll && (n(b.querySelectorAll("." + a), c), n(b.querySelectorAll("." + a + "\\:"), c), n(b.querySelectorAll("[" + a + "]"), c))
  1223.                             });
  1224.                         n(d, function (a) {
  1225.                                 if (!e) {
  1226.                                     var b = f.exec(" " + a.className + " ");
  1227.                                     b ? (e = a, g = (b[2] || "").replace(/\s+/g, ",")) : n(a.attributes, function (b) {
  1228.                                             if (!e && h[b.name]) e = a, g = b.value
  1229.                                         })
  1230.                                 }
  1231.                             });
  1232.                         e && a(e, g ? [g] : [])
  1233.                     }
  1234.  
  1235.                     function rb(b, a) {
  1236.                         var c = function () {
  1237.                             b = u(b);
  1238.                             a = a || [];
  1239.                             a.unshift(["$provide",
  1240.                                     function (a) {
  1241.                                         a.value("$rootElement", b)
  1242.                                     }
  1243.                                 ]);
  1244.                             a.unshift("ng");
  1245.                             var c = sb(a);
  1246.                             c.invoke(["$rootScope", "$rootElement",
  1247.                                     "$compile", "$injector",
  1248.                                     function (a, b, c, d) {
  1249.                                         a.$apply(function () {
  1250.                                                 b.data("$injector", d);
  1251.                                                 c(b)(a)
  1252.                                             })
  1253.                                     }
  1254.                                 ]);
  1255.                             return c
  1256.                         }, d = /^NG_DEFER_BOOTSTRAP!/;
  1257.                         if (N && !d.test(N.name)) return c();
  1258.                         N.name = N.name.replace(d, "");
  1259.                         Za.resumeBootstrap = function (b) {
  1260.                             n(b, function (b) {
  1261.                                     a.push(b)
  1262.                                 });
  1263.                             c()
  1264.                         }
  1265.                     }
  1266.  
  1267.                     function $a(b, a) {
  1268.                         a = a || "_";
  1269.                         return b.replace(kc, function (b, d) {
  1270.                                 return (d ? a : "") + b.toLowerCase()
  1271.                             })
  1272.                     }
  1273.  
  1274.                     function ab(b, a, c) {
  1275.                         if (!b) throw Error("Argument '" + (a || "?") + "' is " + (c || "required"));
  1276.                         return b
  1277.                     }
  1278.  
  1279.                     function ra(b, a, c) {
  1280.                         c && E(b) && (b = b[b.length - 1]);
  1281.                         ab(H(b), a, "not a function, got " +
  1282.                             (b && typeof b == "object" ? b.constructor.name || "Object" : typeof b));
  1283.                         return b
  1284.                     }
  1285.  
  1286.                     function lc(b) {
  1287.                         function a(a, b, e) {
  1288.                             return a[b] || (a[b] = e())
  1289.                         }
  1290.                         return a(a(b, "angular", Object), "module", function () {
  1291.                                 var b = {};
  1292.                                 return function (d, e, g) {
  1293.                                     e && b.hasOwnProperty(d) && (b[d] = null);
  1294.                                     return a(b, d, function () {
  1295.                                             function a(c, d, e) {
  1296.                                                 return function () {
  1297.                                                     b[e || "push"]([c, d, arguments]);
  1298.                                                     return k
  1299.                                                 }
  1300.                                             }
  1301.                                             if (!e) throw Error("No module: " + d);
  1302.                                             var b = [],
  1303.                                                 c = [],
  1304.                                                 i = a("$injector", "invoke"),
  1305.                                                 k = {
  1306.                                                     _invokeQueue: b,
  1307.                                                     _runBlocks: c,
  1308.                                                     requires: e,
  1309.                                                     name: d,
  1310.                                                     provider: a("$provide", "provider"),
  1311.                                                     factory: a("$provide", "factory"),
  1312.                                                     service: a("$provide", "service"),
  1313.                                                     value: a("$provide", "value"),
  1314.                                                     constant: a("$provide", "constant", "unshift"),
  1315.                                                     filter: a("$filterProvider", "register"),
  1316.                                                     controller: a("$controllerProvider", "register"),
  1317.                                                     directive: a("$compileProvider", "directive"),
  1318.                                                     config: i,
  1319.                                                     run: function (a) {
  1320.                                                         c.push(a);
  1321.                                                         return this
  1322.                                                     }
  1323.                                                 };
  1324.                                             g && i(g);
  1325.                                             return k
  1326.                                         })
  1327.                                 }
  1328.                             })
  1329.                     }
  1330.  
  1331.                     function tb(b) {
  1332.                         return b.replace(mc, function (a, b, d, e) {
  1333.                                 return e ? d.toUpperCase() : d
  1334.                             }).replace(nc, "Moz$1")
  1335.                     }
  1336.  
  1337.                     function bb(b, a) {
  1338.                         function c() {
  1339.                             var e;
  1340.                             for (var b = [this], c = a, h, f, j,
  1341.                                     i, k, m; b.length;) {
  1342.                                 h = b.shift();
  1343.                                 f = 0;
  1344.                                 for (j = h.length; f < j; f++) {
  1345.                                     i = u(h[f]);
  1346.                                     c ? i.triggerHandler("$destroy") : c = !c;
  1347.                                     k = 0;
  1348.                                     for (e = (m = i.children()).length, i = e; k < i; k++) b.push(ca(m[k]))
  1349.                                 }
  1350.                             }
  1351.                             return d.apply(this, arguments)
  1352.                         }
  1353.                         var d = ca.fn[b],
  1354.                             d = d.$original || d;
  1355.                         c.$original = d;
  1356.                         ca.fn[b] = c
  1357.                     }
  1358.  
  1359.                     function K(b) {
  1360.                         if (b instanceof K) return b;
  1361.                         if (!(this instanceof K)) {
  1362.                             if (B(b) && b.charAt(0) != "<") throw Error("selectors not implemented");
  1363.                             return new K(b)
  1364.                         }
  1365.                         if (B(b)) {
  1366.                             var a = Y.createElement("div");
  1367.                             a.innerHTML = "<div>&#160;</div>" + b;
  1368.                             a.removeChild(a.firstChild);
  1369.                             cb(this, a.childNodes);
  1370.                             this.remove()
  1371.                         } else cb(this, b)
  1372.                     }
  1373.  
  1374.                     function db(b) {
  1375.                         return b.cloneNode(!0)
  1376.                     }
  1377.  
  1378.                     function sa(b) {
  1379.                         ub(b);
  1380.                         for (var a = 0, b = b.childNodes || []; a < b.length; a++) sa(b[a])
  1381.                     }
  1382.  
  1383.                     function vb(b, a, c) {
  1384.                         var d = ba(b, "events");
  1385.                         ba(b, "handle") && (x(a) ? n(d, function (a, c) {
  1386.                                     eb(b, c, a);
  1387.                                     delete d[c]
  1388.                                 }) : x(c) ? (eb(b, a, d[a]), delete d[a]) : Ta(d[a], c))
  1389.                     }
  1390.  
  1391.                     function ub(b) {
  1392.                         var a = b[Ba],
  1393.                             c = Ca[a];
  1394.                         c && (c.handle && (c.events.$destroy && c.handle({}, "$destroy"), vb(b)), delete Ca[a], b[Ba] = q)
  1395.                     }
  1396.  
  1397.                     function ba(b, a, c) {
  1398.                         var d = b[Ba],
  1399.                             d = Ca[d || -1];
  1400.                         if (y(c)) d || (b[Ba] = d = ++oc,
  1401.                                 d = Ca[d] = {}), d[a] = c;
  1402.                         else return d && d[a]
  1403.                     }
  1404.  
  1405.                     function wb(b, a, c) {
  1406.                         var d = ba(b, "data"),
  1407.                             e = y(c),
  1408.                             g = !e && y(a),
  1409.                             h = g && !L(a);
  1410.                         !d && !h && ba(b, "data", d = {});
  1411.                         if (e) d[a] = c;
  1412.                         else if (g) if (h) return d && d[a];
  1413.                             else v(d, a);
  1414.                             else return d
  1415.                     }
  1416.  
  1417.                     function Da(b, a) {
  1418.                         return (" " + b.className + " ").replace(/[\n\t]/g, " ").indexOf(" " + a + " ") > -1
  1419.                     }
  1420.  
  1421.                     function xb(b, a) {
  1422.                         a && n(a.split(" "), function (a) {
  1423.                                 b.className = O((" " + b.className + " ").replace(/[\n\t]/g, " ").replace(" " + O(a) + " ", " "))
  1424.                             })
  1425.                     }
  1426.  
  1427.                     function yb(b, a) {
  1428.                         a && n(a.split(" "), function (a) {
  1429.                                 if (!Da(b, a)) b.className = O(b.className +
  1430.                                         " " + O(a))
  1431.                             })
  1432.                     }
  1433.  
  1434.                     function cb(b, a) {
  1435.                         if (a) for (var a = !a.nodeName && y(a.length) && !pa(a) ? a : [a], c = 0; c < a.length; c++) b.push(a[c])
  1436.                     }
  1437.  
  1438.                     function zb(b, a) {
  1439.                         return Ea(b, "$" + (a || "ngController") + "Controller")
  1440.                     }
  1441.  
  1442.                     function Ea(b, a, c) {
  1443.                         b = u(b);
  1444.                         for (b[0].nodeType == 9 && (b = b.find("html")); b.length;) {
  1445.                             if (c = b.data(a)) return c;
  1446.                             b = b.parent()
  1447.                         }
  1448.                     }
  1449.  
  1450.                     function Ab(b, a) {
  1451.                         var c = Fa[a.toLowerCase()];
  1452.                         return c && Bb[b.nodeName] && c
  1453.                     }
  1454.  
  1455.                     function pc(b, a) {
  1456.                         var c = function (c, e) {
  1457.                             if (!c.preventDefault) c.preventDefault = function () {
  1458.                                     c.returnValue = !1
  1459.                             };
  1460.                             if (!c.stopPropagation) c.stopPropagation = function () {
  1461.                                     c.cancelBubble = !0
  1462.                             };
  1463.                             if (!c.target) c.target = c.srcElement || Y;
  1464.                             if (x(c.defaultPrevented)) {
  1465.                                 var g = c.preventDefault;
  1466.                                 c.preventDefault = function () {
  1467.                                     c.defaultPrevented = !0;
  1468.                                     g.call(c)
  1469.                                 };
  1470.                                 c.defaultPrevented = !1
  1471.                             }
  1472.                             c.isDefaultPrevented = function () {
  1473.                                 return c.defaultPrevented
  1474.                             };
  1475.                             n(a[e || c.type], function (a) {
  1476.                                     a.call(b, c)
  1477.                                 });
  1478.                             Z <= 8 ? (c.preventDefault = null, c.stopPropagation = null, c.isDefaultPrevented = null) : (delete c.preventDefault, delete c.stopPropagation, delete c.isDefaultPrevented)
  1479.                         };
  1480.                         c.elem = b;
  1481.                         return c
  1482.                     }
  1483.  
  1484.                     function fa(b) {
  1485.                         var a = typeof b,
  1486.                             c;
  1487.                         if (a == "object" && b !== null) if (typeof (c = b.$$hashKey) == "function") c = b.$$hashKey();
  1488.                             else {
  1489.                                 if (c === q) c = b.$$hashKey = ya()
  1490.                             } else c = b;
  1491.                         return a + ":" + c
  1492.                     }
  1493.  
  1494.                     function Ga(b) {
  1495.                         n(b, this.put, this)
  1496.                     }
  1497.  
  1498.                     function fb() {}
  1499.  
  1500.                     function Cb(b) {
  1501.                         var a, c;
  1502.                         if (typeof b == "function") {
  1503.                             if (!(a = b.$inject)) a = [], c = b.toString().replace(qc, ""), c = c.match(rc), n(c[1].split(sc), function (b) {
  1504.                                         b.replace(tc, function (b, c, d) {
  1505.                                                 a.push(d)
  1506.                                             })
  1507.                                     }), b.$inject = a
  1508.                         } else E(b) ? (c = b.length - 1, ra(b[c], "fn"), a = b.slice(0, c)) : ra(b, "fn", !0);
  1509.                         return a
  1510.                     }
  1511.  
  1512.                     function sb(b) {
  1513.                         function a(a) {
  1514.                             return function (b,
  1515.                                 c) {
  1516.                                 if (L(b)) n(b, ob(a));
  1517.                                 else return a(b, c)
  1518.                             }
  1519.                         }
  1520.  
  1521.                         function c(a, b) {
  1522.                             if (H(b) || E(b)) b = m.instantiate(b);
  1523.                             if (!b.$get) throw Error("Provider " + a + " must define $get factory method.");
  1524.                             return k[a + f] = b
  1525.                         }
  1526.  
  1527.                         function d(a, b) {
  1528.                             return c(a, {
  1529.                                     $get: b
  1530.                                 })
  1531.                         }
  1532.  
  1533.                         function e(a) {
  1534.                             var b = [];
  1535.                             n(a, function (a) {
  1536.                                     if (!i.get(a)) if (i.put(a, !0), B(a)) {
  1537.                                             var c = ta(a);
  1538.                                             b = b.concat(e(c.requires)).concat(c._runBlocks);
  1539.                                             try {
  1540.                                                 for (var d = c._invokeQueue, c = 0, f = d.length; c < f; c++) {
  1541.                                                     var g = d[c],
  1542.                                                         j = g[0] == "$injector" ? m : m.get(g[0]);
  1543.                                                     j[g[1]].apply(j, g[2])
  1544.                                                 }
  1545.                                             } catch (h) {
  1546.                                                 throw h.message && (h.message +=
  1547.                                                     " from " + a), h;
  1548.                                             }
  1549.                                         } else if (H(a)) try {
  1550.                                             b.push(m.invoke(a))
  1551.                                     } catch (o) {
  1552.                                         throw o.message && (o.message += " from " + a), o;
  1553.                                     } else if (E(a)) try {
  1554.                                             b.push(m.invoke(a))
  1555.                                     } catch (k) {
  1556.                                         throw k.message && (k.message += " from " + String(a[a.length - 1])), k;
  1557.                                     } else ra(a, "module")
  1558.                                 });
  1559.                             return b
  1560.                         }
  1561.  
  1562.                         function g(a, b) {
  1563.                             function c(d) {
  1564.                                 if (typeof d !== "string") throw Error("Service name expected");
  1565.                                 if (a.hasOwnProperty(d)) {
  1566.                                     if (a[d] === h) throw Error("Circular dependency: " + j.join(" <- "));
  1567.                                     return a[d]
  1568.                                 } else try {
  1569.                                         return j.unshift(d), a[d] = h, a[d] = b(d)
  1570.                                 } finally {
  1571.                                     j.shift()
  1572.                                 }
  1573.                             }
  1574.  
  1575.                             function d(a, b, e) {
  1576.                                 var f = [],
  1577.                                     i = Cb(a),
  1578.                                     g, h, j;
  1579.                                 h = 0;
  1580.                                 for (g = i.length; h < g; h++) j = i[h], f.push(e && e.hasOwnProperty(j) ? e[j] : c(j));
  1581.                                 a.$inject || (a = a[g]);
  1582.                                 switch (b ? -1 : f.length) {
  1583.                                 case 0:
  1584.                                     return a();
  1585.                                 case 1:
  1586.                                     return a(f[0]);
  1587.                                 case 2:
  1588.                                     return a(f[0], f[1]);
  1589.                                 case 3:
  1590.                                     return a(f[0], f[1], f[2]);
  1591.                                 case 4:
  1592.                                     return a(f[0], f[1], f[2], f[3]);
  1593.                                 case 5:
  1594.                                     return a(f[0], f[1], f[2], f[3], f[4]);
  1595.                                 case 6:
  1596.                                     return a(f[0], f[1], f[2], f[3], f[4], f[5]);
  1597.                                 case 7:
  1598.                                     return a(f[0], f[1], f[2], f[3], f[4], f[5], f[6]);
  1599.                                 case 8:
  1600.                                     return a(f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]);
  1601.                                 case 9:
  1602.                                     return a(f[0],
  1603.                                         f[1], f[2], f[3], f[4], f[5], f[6], f[7], f[8]);
  1604.                                 case 10:
  1605.                                     return a(f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7], f[8], f[9]);
  1606.                                 default:
  1607.                                     return a.apply(b, f)
  1608.                                 }
  1609.                             }
  1610.                             return {
  1611.                                 invoke: d,
  1612.                                 instantiate: function (a, b) {
  1613.                                     var c = function () {}, e;
  1614.                                     c.prototype = (E(a) ? a[a.length - 1] : a).prototype;
  1615.                                     c = new c;
  1616.                                     e = d(a, c, b);
  1617.                                     return L(e) ? e : c
  1618.                                 },
  1619.                                 get: c,
  1620.                                 annotate: Cb
  1621.                             }
  1622.                         }
  1623.                         var h = {}, f = "Provider",
  1624.                             j = [],
  1625.                             i = new Ga,
  1626.                             k = {
  1627.                                 $provide: {
  1628.                                     provider: a(c),
  1629.                                     factory: a(d),
  1630.                                     service: a(function (a, b) {
  1631.                                             return d(a, ["$injector",
  1632.                                                     function (a) {
  1633.                                                         return a.instantiate(b)
  1634.                                                     }
  1635.                                                 ])
  1636.                                         }),
  1637.                                     value: a(function (a, b) {
  1638.                                             return d(a, I(b))
  1639.                                         }),
  1640.                                     constant: a(function (a, b) {
  1641.                                             k[a] = b;
  1642.                                             l[a] = b
  1643.                                         }),
  1644.                                     decorator: function (a, b) {
  1645.                                         var c = m.get(a + f),
  1646.                                             d = c.$get;
  1647.                                         c.$get = function () {
  1648.                                             var a = t.invoke(d, c);
  1649.                                             return t.invoke(b, null, {
  1650.                                                     $delegate: a
  1651.                                                 })
  1652.                                         }
  1653.                                     }
  1654.                                 }
  1655.                             }, m = g(k, function () {
  1656.                                     throw Error("Unknown provider: " + j.join(" <- "));
  1657.                                 }),
  1658.                             l = {}, t = l.$injector = g(l, function (a) {
  1659.                                     a = m.get(a + f);
  1660.                                     return t.invoke(a.$get, a)
  1661.                                 });
  1662.                         n(e(b), function (a) {
  1663.                                 t.invoke(a || w)
  1664.                             });
  1665.                         return t
  1666.                     }
  1667.  
  1668.                     function uc() {
  1669.                         var b = !0;
  1670.                         this.disableAutoScrolling = function () {
  1671.                             b = !1
  1672.                         };
  1673.                         this.$get = ["$window", "$location", "$rootScope",
  1674.                             function (a, c, d) {
  1675.                                 function e(a) {
  1676.                                     var b =
  1677.                                         null;
  1678.                                     n(a, function (a) {
  1679.                                             !b && A(a.nodeName) === "a" && (b = a)
  1680.                                         });
  1681.                                     return b
  1682.                                 }
  1683.  
  1684.                                 function g() {
  1685.                                     var b = c.hash(),
  1686.                                         d;
  1687.                                     b ? (d = h.getElementById(b)) ? d.scrollIntoView() : (d = e(h.getElementsByName(b))) ? d.scrollIntoView() : b === "top" && a.scrollTo(0, 0) : a.scrollTo(0, 0)
  1688.                                 }
  1689.                                 var h = a.document;
  1690.                                 b && d.$watch(function () {
  1691.                                         return c.hash()
  1692.                                     }, function () {
  1693.                                         d.$evalAsync(g)
  1694.                                     });
  1695.                                 return g
  1696.                             }
  1697.                         ]
  1698.                     }
  1699.  
  1700.                     function vc(b, a, c, d) {
  1701.                         function e(a) {
  1702.                             try {
  1703.                                 a.apply(null, ha.call(arguments, 1))
  1704.                             } finally {
  1705.                                 if (o--, o === 0) for (; p.length;) try {
  1706.                                             p.pop()()
  1707.                                 } catch (b) {
  1708.                                     c.error(b)
  1709.                                 }
  1710.                             }
  1711.                         }
  1712.  
  1713.                         function g(a, b) {
  1714.                             (function S() {
  1715.                                     n(s, function (a) {
  1716.                                             a()
  1717.                                         });
  1718.                                     P = b(S, a)
  1719.                                 })()
  1720.                         }
  1721.  
  1722.                         function h() {
  1723.                             C != f.url() && (C = f.url(), n(W, function (a) {
  1724.                                         a(f.url())
  1725.                                     }))
  1726.                         }
  1727.                         var f = this,
  1728.                             j = a[0],
  1729.                             i = b.location,
  1730.                             k = b.history,
  1731.                             m = b.setTimeout,
  1732.                             l = b.clearTimeout,
  1733.                             t = {};
  1734.                         f.isMock = !1;
  1735.                         var o = 0,
  1736.                             p = [];
  1737.                         f.$$completeOutstandingRequest = e;
  1738.                         f.$$incOutstandingRequestCount = function () {
  1739.                             o++
  1740.                         };
  1741.                         f.notifyWhenNoOutstandingRequests = function (a) {
  1742.                             n(s, function (a) {
  1743.                                     a()
  1744.                                 });
  1745.                             o === 0 ? a() : p.push(a)
  1746.                         };
  1747.                         var s = [],
  1748.                             P;
  1749.                         f.addPollFn = function (a) {
  1750.                             x(P) && g(100, m);
  1751.                             s.push(a);
  1752.                             return a
  1753.                         };
  1754.                         var C = i.href,
  1755.                             z = a.find("base");
  1756.                         f.url = function (a, b) {
  1757.                             if (a) {
  1758.                                 if (C !=
  1759.                                     a) return C = a, d.history ? b ? k.replaceState(null, "", a) : (k.pushState(null, "", a), z.attr("href", z.attr("href"))) : b ? i.replace(a) : i.href = a, f
  1760.                             } else return i.href.replace(/%27/g, "'")
  1761.                         };
  1762.                         var W = [],
  1763.                             J = !1;
  1764.                         f.onUrlChange = function (a) {
  1765.                             J || (d.history && u(b).bind("popstate", h), d.hashchange ? u(b).bind("hashchange", h) : f.addPollFn(h), J = !0);
  1766.                             W.push(a);
  1767.                             return a
  1768.                         };
  1769.                         f.baseHref = function () {
  1770.                             var a = z.attr("href");
  1771.                             return a ? a.replace(/^https?\:\/\/[^\/]*/, "") : ""
  1772.                         };
  1773.                         var r = {}, $ = "",
  1774.                             Q = f.baseHref();
  1775.                         f.cookies = function (a, b) {
  1776.                             var d, e, f, i;
  1777.                             if (a) if (b === q) j.cookie =
  1778.                                         escape(a) + "=;path=" + Q + ";expires=Thu, 01 Jan 1970 00:00:00 GMT";
  1779.                                 else {
  1780.                                     if (B(b)) d = (j.cookie = escape(a) + "=" + escape(b) + ";path=" + Q).length + 1, d > 4096 && c.warn("Cookie '" + a + "' possibly not set or overflowed because it was too large (" + d + " > 4096 bytes)!")
  1781.                                 } else {
  1782.                                     if (j.cookie !== $) {
  1783.                                         $ = j.cookie;
  1784.                                         d = $.split("; ");
  1785.                                         r = {};
  1786.                                         for (f = 0; f < d.length; f++) e = d[f], i = e.indexOf("="), i > 0 && (r[unescape(e.substring(0, i))] = unescape(e.substring(i + 1)))
  1787.                                     }
  1788.                                     return r
  1789.                                 }
  1790.                         };
  1791.                         f.defer = function (a, b) {
  1792.                             var c;
  1793.                             o++;
  1794.                             c = m(function () {
  1795.                                     delete t[c];
  1796.                                     e(a)
  1797.                                 }, b || 0);
  1798.                             t[c] = !0;
  1799.                             return c
  1800.                         };
  1801.                         f.defer.cancel = function (a) {
  1802.                             return t[a] ? (delete t[a], l(a), e(w), !0) : !1
  1803.                         }
  1804.                     }
  1805.  
  1806.                     function wc() {
  1807.                         this.$get = ["$window", "$log", "$sniffer", "$document",
  1808.                             function (b, a, c, d) {
  1809.                                 return new vc(b, d, a, c)
  1810.                             }
  1811.                         ]
  1812.                     }
  1813.  
  1814.                     function xc() {
  1815.                         this.$get = function () {
  1816.                             function b(b, d) {
  1817.                                 function e(a) {
  1818.                                     if (a != m) {
  1819.                                         if (l) {
  1820.                                             if (l == a) l = a.n
  1821.                                         } else l = a;
  1822.                                         g(a.n, a.p);
  1823.                                         g(a, m);
  1824.                                         m = a;
  1825.                                         m.n = null
  1826.                                     }
  1827.                                 }
  1828.  
  1829.                                 function g(a, b) {
  1830.                                     if (a != b) {
  1831.                                         if (a) a.p = b;
  1832.                                         if (b) b.n = a
  1833.                                     }
  1834.                                 }
  1835.                                 if (b in a) throw Error("cacheId " + b + " taken");
  1836.                                 var h = 0,
  1837.                                     f = v({}, d, {
  1838.                                             id: b
  1839.                                         }),
  1840.                                     j = {}, i = d && d.capacity || Number.MAX_VALUE,
  1841.                                     k = {}, m = null,
  1842.                                     l = null;
  1843.                                 return a[b] = {
  1844.                                     put: function (a, b) {
  1845.                                         var c = k[a] || (k[a] = {
  1846.                                                 key: a
  1847.                                             });
  1848.                                         e(c);
  1849.                                         x(b) || (a in j || h++, j[a] = b, h > i && this.remove(l.key))
  1850.                                     },
  1851.                                     get: function (a) {
  1852.                                         var b = k[a];
  1853.                                         if (b) return e(b), j[a]
  1854.                                     },
  1855.                                     remove: function (a) {
  1856.                                         var b = k[a];
  1857.                                         if (b) {
  1858.                                             if (b == m) m = b.p;
  1859.                                             if (b == l) l = b.n;
  1860.                                             g(b.n, b.p);
  1861.                                             delete k[a];
  1862.                                             delete j[a];
  1863.                                             h--
  1864.                                         }
  1865.                                     },
  1866.                                     removeAll: function () {
  1867.                                         j = {};
  1868.                                         h = 0;
  1869.                                         k = {};
  1870.                                         m = l = null
  1871.                                     },
  1872.                                     destroy: function () {
  1873.                                         k = f = j = null;
  1874.                                         delete a[b]
  1875.                                     },
  1876.                                     info: function () {
  1877.                                         return v({}, f, {
  1878.                                                 size: h
  1879.                                             })
  1880.                                     }
  1881.                                 }
  1882.                             }
  1883.                             var a = {};
  1884.                             b.info = function () {
  1885.                                 var b = {};
  1886.                                 n(a, function (a, e) {
  1887.                                         b[e] = a.info()
  1888.                                     });
  1889.                                 return b
  1890.                             };
  1891.                             b.get = function (b) {
  1892.                                 return a[b]
  1893.                             };
  1894.                             return b
  1895.                         }
  1896.                     }
  1897.  
  1898.                     function yc() {
  1899.                         this.$get = ["$cacheFactory",
  1900.                             function (b) {
  1901.                                 return b("templates")
  1902.                             }
  1903.                         ]
  1904.                     }
  1905.  
  1906.                     function Db(b) {
  1907.                         var a = {}, c = "Directive",
  1908.                             d = /^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,
  1909.                             e = /(([\d\w\-_]+)(?:\:([^;]+))?;?)/,
  1910.                             g = "Template must have exactly one root element. was: ",
  1911.                             h = /^\s*(https?|ftp|mailto|file):/;
  1912.                         this.directive = function j(d, e) {
  1913.                             B(d) ? (ab(e, "directive"), a.hasOwnProperty(d) || (a[d] = [], b.factory(d + c, ["$injector", "$exceptionHandler",
  1914.                                             function (b, c) {
  1915.                                                 var e = [];
  1916.                                                 n(a[d], function (a) {
  1917.                                                         try {
  1918.                                                             var g = b.invoke(a);
  1919.                                                             if (H(g)) g = {
  1920.                                                                     compile: I(g)
  1921.                                                             };
  1922.                                                             else if (!g.compile && g.link) g.compile = I(g.link);
  1923.                                                             g.priority = g.priority || 0;
  1924.                                                             g.name = g.name || d;
  1925.                                                             g.require = g.require || g.controller && g.name;
  1926.                                                             g.restrict = g.restrict || "A";
  1927.                                                             e.push(g)
  1928.                                                         } catch (h) {
  1929.                                                             c(h)
  1930.                                                         }
  1931.                                                     });
  1932.                                                 return e
  1933.                                             }
  1934.                                         ])), a[d].push(e)) : n(d, ob(j));
  1935.                             return this
  1936.                         };
  1937.                         this.urlSanitizationWhitelist = function (a) {
  1938.                             return y(a) ? (h = a, this) : h
  1939.                         };
  1940.                         this.$get = ["$injector", "$interpolate", "$exceptionHandler", "$http", "$templateCache", "$parse", "$controller", "$rootScope", "$document",
  1941.                             function (b, i, k, m, l, t, o, p, s) {
  1942.                                 function P(a, b, c) {
  1943.                                     a instanceof u || (a = u(a));
  1944.                                     n(a, function (b, c) {
  1945.                                             b.nodeType == 3 && b.nodeValue.match(/\S+/) && (a[c] = u(b).wrap("<span></span>").parent()[0])
  1946.                                         });
  1947.                                     var d = z(a, b, a, c);
  1948.                                     return function (b, c) {
  1949.                                         ab(b, "scope");
  1950.                                         for (var e = c ? va.clone.call(a) : a, g = 0, i = e.length; g < i; g++) {
  1951.                                             var h = e[g];
  1952.                                             (h.nodeType == 1 || h.nodeType == 9) && e.eq(g).data("$scope", b)
  1953.                                         }
  1954.                                         C(e, "ng-scope");
  1955.                                         c && c(e, b);
  1956.                                         d && d(b, e, e);
  1957.                                         return e
  1958.                                     }
  1959.                                 }
  1960.  
  1961.                                 function C(a, b) {
  1962.                                     try {
  1963.                                         a.addClass(b)
  1964.                                     } catch (c) {}
  1965.                                 }
  1966.  
  1967.                                 function z(a, b, c, d) {
  1968.                                     function e(a, c, d, i) {
  1969.                                         var h, j, k, o, l, m, t, s = [];
  1970.                                         l = 0;
  1971.                                         for (m = c.length; l < m; l++) s.push(c[l]);
  1972.                                         t = l = 0;
  1973.                                         for (m = g.length; l <
  1974.                                             m; t++) j = s[t], c = g[l++], h = g[l++], c ? (c.scope ? (k = a.$new(L(c.scope)), u(j).data("$scope", k)) : k = a, (o = c.transclude) || !i && b ? c(h, k, j, d, function (b) {
  1975.                                                         return function (c) {
  1976.                                                             var d = a.$new();
  1977.                                                             d.$$transcluded = !0;
  1978.                                                             return b(d, c).bind("$destroy", Ua(d, d.$destroy))
  1979.                                                         }
  1980.                                                     }(o || b)) : c(h, k, j, q, i)) : h && h(a, j.childNodes, q, i)
  1981.                                     }
  1982.                                     for (var g = [], i, h, j, k = 0; k < a.length; k++) h = new ia, i = W(a[k], [], h, d), h = (i = i.length ? J(i, a[k], h, b, c) : null) && i.terminal || !a[k].childNodes || !a[k].childNodes.length ? null : z(a[k].childNodes, i ? i.transclude : b), g.push(i), g.push(h),
  1983.                                     j = j || i || h;
  1984.                                     return j ? e : null
  1985.                                 }
  1986.  
  1987.                                 function W(a, b, c, i) {
  1988.                                     var g = c.$attr,
  1989.                                         h;
  1990.                                     switch (a.nodeType) {
  1991.                                     case 1:
  1992.                                         r(b, ea(gb(a).toLowerCase()), "E", i);
  1993.                                         var j, k, l;
  1994.                                         h = a.attributes;
  1995.                                         for (var o = 0, m = h && h.length; o < m; o++) if (j = h[o], j.specified) k = j.name, l = ea(k.toLowerCase()), g[l] = k, c[l] = j = O(Z && k == "href" ? decodeURIComponent(a.getAttribute(k, 2)) : j.value), Ab(a, l) && (c[l] = !0), S(a, b, j, l), r(b, l, "A", i);
  1996.                                         a = a.className;
  1997.                                         if (B(a) && a !== "") for (; h = e.exec(a);) l = ea(h[2]), r(b, l, "C", i) && (c[l] = O(h[3])), a = a.substr(h.index + h[0].length);
  1998.                                         break;
  1999.                                     case 3:
  2000.                                         y(b, a.nodeValue);
  2001.                                         break;
  2002.                                     case 8:
  2003.                                         try {
  2004.                                             if (h = d.exec(a.nodeValue)) l = ea(h[1]), r(b, l, "M", i) && (c[l] = O(h[2]))
  2005.                                         } catch (t) {}
  2006.                                     }
  2007.                                     b.sort(F);
  2008.                                     return b
  2009.                                 }
  2010.  
  2011.                                 function J(a, b, c, d, e) {
  2012.                                     function i(a, b) {
  2013.                                         if (a) a.require = r.require, m.push(a);
  2014.                                         if (b) b.require = r.require, s.push(b)
  2015.                                     }
  2016.  
  2017.                                     function h(a, b) {
  2018.                                         var c, d = "data",
  2019.                                             e = !1;
  2020.                                         if (B(a)) {
  2021.                                             for (;
  2022.                                                 (c = a.charAt(0)) == "^" || c == "?";) a = a.substr(1), c == "^" && (d = "inheritedData"), e = e || c == "?";
  2023.                                             c = b[d]("$" + a + "Controller");
  2024.                                             if (!c && !e) throw Error("No controller: " + a);
  2025.                                         } else E(a) && (c = [], n(a, function (a) {
  2026.                                                         c.push(h(a, b))
  2027.                                                     }));
  2028.                                         return c
  2029.                                     }
  2030.  
  2031.                                     function j(a, d, e,
  2032.                                         i, g) {
  2033.                                         var l, p, r, D, C;
  2034.                                         l = b === e ? c : hc(c, new ia(u(e), c.$attr));
  2035.                                         p = l.$$element;
  2036.                                         if (J) {
  2037.                                             var P = /^\s*([@=&])\s*(\w*)\s*$/,
  2038.                                                 ja = d.$parent || d;
  2039.                                             n(J.scope, function (a, b) {
  2040.                                                     var c = a.match(P) || [],
  2041.                                                         e = c[2] || b,
  2042.                                                         c = c[1],
  2043.                                                         i, g, h;
  2044.                                                     d.$$isolateBindings[b] = c + e;
  2045.                                                     switch (c) {
  2046.                                                     case "@":
  2047.                                                         l.$observe(e, function (a) {
  2048.                                                                 d[b] = a
  2049.                                                             });
  2050.                                                         l.$$observers[e].$$scope = ja;
  2051.                                                         break;
  2052.                                                     case "=":
  2053.                                                         g = t(l[e]);
  2054.                                                         h = g.assign || function () {
  2055.                                                             i = d[b] = g(ja);
  2056.                                                             throw Error(Eb + l[e] + " (directive: " + J.name + ")");
  2057.                                                         };
  2058.                                                         i = d[b] = g(ja);
  2059.                                                         d.$watch(function () {
  2060.                                                                 var a = g(ja);
  2061.                                                                 a !== d[b] && (a !== i ? i = d[b] = a : h(ja, a = i = d[b]));
  2062.                                                                 return a
  2063.                                                             });
  2064.                                                         break;
  2065.                                                     case "&":
  2066.                                                         g = t(l[e]);
  2067.                                                         d[b] = function (a) {
  2068.                                                             return g(ja, a)
  2069.                                                         };
  2070.                                                         break;
  2071.                                                     default:
  2072.                                                         throw Error("Invalid isolate scope definition for directive " + J.name + ": " + a);
  2073.                                                     }
  2074.                                                 })
  2075.                                         }
  2076.                                         y && n(y, function (a) {
  2077.                                                 var b = {
  2078.                                                     $scope: d,
  2079.                                                     $element: p,
  2080.                                                     $attrs: l,
  2081.                                                     $transclude: g
  2082.                                                 };
  2083.                                                 C = a.controller;
  2084.                                                 C == "@" && (C = l[a.name]);
  2085.                                                 p.data("$" + a.name + "Controller", o(C, b))
  2086.                                             });
  2087.                                         i = 0;
  2088.                                         for (r = m.length; i < r; i++) try {
  2089.                                                 D = m[i], D(d, p, l, D.require && h(D.require, p))
  2090.                                         } catch (z) {
  2091.                                             k(z, qa(p))
  2092.                                         }
  2093.                                         a && a(d, e.childNodes, q, g);
  2094.                                         i = 0;
  2095.                                         for (r = s.length; i < r; i++) try {
  2096.                                                 D = s[i], D(d, p, l, D.require && h(D.require, p))
  2097.                                         } catch (zc) {
  2098.                                             k(zc,
  2099.                                                 qa(p))
  2100.                                         }
  2101.                                     }
  2102.                                     for (var l = -Number.MAX_VALUE, m = [], s = [], p = null, J = null, z = null, D = c.$$element = u(b), r, F, T, ka, S = d, y, x, X, v = 0, A = a.length; v < A; v++) {
  2103.                                         r = a[v];
  2104.                                         T = q;
  2105.                                         if (l > r.priority) break;
  2106.                                         if (X = r.scope) ua("isolated scope", J, r, D), L(X) && (C(D, "ng-isolate-scope"), J = r), C(D, "ng-scope"), p = p || r;
  2107.                                         F = r.name;
  2108.                                         if (X = r.controller) y = y || {}, ua("'" + F + "' controller", y[F], r, D), y[F] = r;
  2109.                                         if (X = r.transclude) ua("transclusion", ka, r, D), ka = r, l = r.priority, X == "element" ? (T = u(b), D = c.$$element = u(Y.createComment(" " + F + ": " + c[F] + " ")), b = D[0], w(e, u(T[0]), b), S = P(T,
  2110.                                                     d, l)) : (T = u(db(b)).contents(), D.html(""), S = P(T, d));
  2111.                                         if (X = r.template) if (ua("template", z, r, D), z = r, X = Fb(X), r.replace) {
  2112.                                                 T = u("<div>" + O(X) + "</div>").contents();
  2113.                                                 b = T[0];
  2114.                                                 if (T.length != 1 || b.nodeType !== 1) throw Error(g + X);
  2115.                                                 w(e, D, b);
  2116.                                                 F = {
  2117.                                                     $attr: {}
  2118.                                                 };
  2119.                                                 a = a.concat(W(b, a.splice(v + 1, a.length - (v + 1)), F));
  2120.                                                 $(c, F);
  2121.                                                 A = a.length
  2122.                                             } else D.html(X);
  2123.                                         if (r.templateUrl) ua("template", z, r, D), z = r, j = Q(a.splice(v, a.length - v), j, D, c, e, r.replace, S), A = a.length;
  2124.                                         else if (r.compile) try {
  2125.                                                 x = r.compile(D, c, S), H(x) ? i(null, x) : x && i(x.pre, x.post)
  2126.                                         } catch (G) {
  2127.                                             k(G, qa(D))
  2128.                                         }
  2129.                                         if (r.terminal) j.terminal = !0, l = Math.max(l, r.priority)
  2130.                                     }
  2131.                                     j.scope = p && p.scope;
  2132.                                     j.transclude = ka && S;
  2133.                                     return j
  2134.                                 }
  2135.  
  2136.                                 function r(d, e, i, g) {
  2137.                                     var h = !1;
  2138.                                     if (a.hasOwnProperty(e)) for (var l, e = b.get(e + c), o = 0, m = e.length; o < m; o++) try {
  2139.                                                 if (l = e[o], (g === q || g > l.priority) && l.restrict.indexOf(i) != -1) d.push(l), h = !0
  2140.                                     } catch (t) {
  2141.                                         k(t)
  2142.                                     }
  2143.                                     return h
  2144.                                 }
  2145.  
  2146.                                 function $(a, b) {
  2147.                                     var c = b.$attr,
  2148.                                         d = a.$attr,
  2149.                                         e = a.$$element;
  2150.                                     n(a, function (d, e) {
  2151.                                             e.charAt(0) != "$" && (b[e] && (d += (e === "style" ? ";" : " ") + b[e]), a.$set(e, d, !0, c[e]))
  2152.                                         });
  2153.                                     n(b, function (b, i) {
  2154.                                             i == "class" ? (C(e, b), a["class"] = (a["class"] ? a["class"] + " " :
  2155.                                                     "") + b) : i == "style" ? e.attr("style", e.attr("style") + ";" + b) : i.charAt(0) != "$" && !a.hasOwnProperty(i) && (a[i] = b, d[i] = c[i])
  2156.                                         })
  2157.                                 }
  2158.  
  2159.                                 function Q(a, b, c, d, e, i, h) {
  2160.                                     var j = [],
  2161.                                         k, o, t = c[0],
  2162.                                         s = a.shift(),
  2163.                                         p = v({}, s, {
  2164.                                                 controller: null,
  2165.                                                 templateUrl: null,
  2166.                                                 transclude: null,
  2167.                                                 scope: null
  2168.                                             });
  2169.                                     c.html("");
  2170.                                     m.get(s.templateUrl, {
  2171.                                             cache: l
  2172.                                         }).success(function (l) {
  2173.                                             var m, s, l = Fb(l);
  2174.                                             if (i) {
  2175.                                                 s = u("<div>" + O(l) + "</div>").contents();
  2176.                                                 m = s[0];
  2177.                                                 if (s.length != 1 || m.nodeType !== 1) throw Error(g + l);
  2178.                                                 l = {
  2179.                                                     $attr: {}
  2180.                                                 };
  2181.                                                 w(e, c, m);
  2182.                                                 W(m, a, l);
  2183.                                                 $(d, l)
  2184.                                             } else m = t, c.html(l);
  2185.                                             a.unshift(p);
  2186.                                             k = J(a, m,
  2187.                                                 d, h);
  2188.                                             for (o = z(c[0].childNodes, h); j.length;) {
  2189.                                                 var ia = j.pop(),
  2190.                                                     l = j.pop();
  2191.                                                 s = j.pop();
  2192.                                                 var r = j.pop(),
  2193.                                                     D = m;
  2194.                                                 s !== t && (D = db(m), w(l, u(s), D));
  2195.                                                 k(function () {
  2196.                                                         b(o, r, D, e, ia)
  2197.                                                     }, r, D, e, ia)
  2198.                                             }
  2199.                                             j = null
  2200.                                         }).error(function (a, b, c, d) {
  2201.                                             throw Error("Failed to load template: " + d.url);
  2202.                                         });
  2203.                                     return function (a, c, d, e, i) {
  2204.                                         j ? (j.push(c), j.push(d), j.push(e), j.push(i)) : k(function () {
  2205.                                                 b(o, c, d, e, i)
  2206.                                             }, c, d, e, i)
  2207.                                     }
  2208.                                 }
  2209.  
  2210.                                 function F(a, b) {
  2211.                                     return b.priority - a.priority
  2212.                                 }
  2213.  
  2214.                                 function ua(a, b, c, d) {
  2215.                                     if (b) throw Error("Multiple directives [" + b.name + ", " + c.name + "] asking for " + a + " on: " +
  2216.                                             qa(d));
  2217.                                 }
  2218.  
  2219.                                 function y(a, b) {
  2220.                                     var c = i(b, !0);
  2221.                                     c && a.push({
  2222.                                             priority: 0,
  2223.                                             compile: I(function (a, b) {
  2224.                                                     var d = b.parent(),
  2225.                                                         e = d.data("$binding") || [];
  2226.                                                     e.push(c);
  2227.                                                     C(d.data("$binding", e), "ng-binding");
  2228.                                                     a.$watch(c, function (a) {
  2229.                                                             b[0].nodeValue = a
  2230.                                                         })
  2231.                                                 })
  2232.                                         })
  2233.                                 }
  2234.  
  2235.                                 function S(a, b, c, d) {
  2236.                                     var e = i(c, !0);
  2237.                                     e && b.push({
  2238.                                             priority: 100,
  2239.                                             compile: I(function (a, b, c) {
  2240.                                                     b = c.$$observers || (c.$$observers = {});
  2241.                                                     d === "class" && (e = i(c[d], !0));
  2242.                                                     c[d] = q;
  2243.                                                     (b[d] || (b[d] = [])).$$inter = !0;
  2244.                                                     (c.$$observers && c.$$observers[d].$$scope || a).$watch(e, function (a) {
  2245.                                                             c.$set(d, a)
  2246.                                                         })
  2247.                                                 })
  2248.                                         })
  2249.                                 }
  2250.  
  2251.                                 function w(a, b,
  2252.                                     c) {
  2253.                                     var d = b[0],
  2254.                                         e = d.parentNode,
  2255.                                         i, g;
  2256.                                     if (a) {
  2257.                                         i = 0;
  2258.                                         for (g = a.length; i < g; i++) if (a[i] == d) {
  2259.                                                 a[i] = c;
  2260.                                                 break
  2261.                                             }
  2262.                                     }
  2263.                                     e && e.replaceChild(c, d);
  2264.                                     c[u.expando] = d[u.expando];
  2265.                                     b[0] = c
  2266.                                 }
  2267.                                 var ia = function (a, b) {
  2268.                                     this.$$element = a;
  2269.                                     this.$attr = b || {}
  2270.                                 };
  2271.                                 ia.prototype = {
  2272.                                     $normalize: ea,
  2273.                                     $set: function (a, b, c, d) {
  2274.                                         var e = Ab(this.$$element[0], a),
  2275.                                             i = this.$$observers;
  2276.                                         e && (this.$$element.prop(a, b), d = e);
  2277.                                         this[a] = b;
  2278.                                         d ? this.$attr[a] = d : (d = this.$attr[a]) || (this.$attr[a] = d = $a(a, "-"));
  2279.                                         if (gb(this.$$element[0]) === "A" && a === "href") D.setAttribute("href", b), e = D.href, e.match(h) ||
  2280.                                             (this[a] = b = "unsafe:" + e);
  2281.                                         c !== !1 && (b === null || b === q ? this.$$element.removeAttr(d) : this.$$element.attr(d, b));
  2282.                                         i && n(i[a], function (a) {
  2283.                                                 try {
  2284.                                                     a(b)
  2285.                                                 } catch (c) {
  2286.                                                     k(c)
  2287.                                                 }
  2288.                                             })
  2289.                                     },
  2290.                                     $observe: function (a, b) {
  2291.                                         var c = this,
  2292.                                             d = c.$$observers || (c.$$observers = {}),
  2293.                                             e = d[a] || (d[a] = []);
  2294.                                         e.push(b);
  2295.                                         p.$evalAsync(function () {
  2296.                                                 e.$$inter || b(c[a])
  2297.                                             });
  2298.                                         return b
  2299.                                     }
  2300.                                 };
  2301.                                 var D = s[0].createElement("a"),
  2302.                                     T = i.startSymbol(),
  2303.                                     ka = i.endSymbol(),
  2304.                                     Fb = T == "{{" || ka == "}}" ? na : function (a) {
  2305.                                         return a.replace(/\{\{/g, T).replace(/}}/g, ka)
  2306.                                     };
  2307.                                 return P
  2308.                             }
  2309.                         ]
  2310.                     }
  2311.  
  2312.                     function ea(b) {
  2313.                         return tb(b.replace(Ac,
  2314.                                 ""))
  2315.                     }
  2316.  
  2317.                     function Bc() {
  2318.                         var b = {};
  2319.                         this.register = function (a, c) {
  2320.                             L(a) ? v(b, a) : b[a] = c
  2321.                         };
  2322.                         this.$get = ["$injector", "$window",
  2323.                             function (a, c) {
  2324.                                 return function (d, e) {
  2325.                                     if (B(d)) {
  2326.                                         var g = d,
  2327.                                             d = b.hasOwnProperty(g) ? b[g] : hb(e.$scope, g, !0) || hb(c, g, !0);
  2328.                                         ra(d, g, !0)
  2329.                                     }
  2330.                                     return a.instantiate(d, e)
  2331.                                 }
  2332.                             }
  2333.                         ]
  2334.                     }
  2335.  
  2336.                     function Cc() {
  2337.                         this.$get = ["$window",
  2338.                             function (b) {
  2339.                                 return u(b.document)
  2340.                             }
  2341.                         ]
  2342.                     }
  2343.  
  2344.                     function Dc() {
  2345.                         this.$get = ["$log",
  2346.                             function (b) {
  2347.                                 return function (a, c) {
  2348.                                     b.error.apply(b, arguments)
  2349.                                 }
  2350.                             }
  2351.                         ]
  2352.                     }
  2353.  
  2354.                     function Ec() {
  2355.                         var b = "{{",
  2356.                             a = "}}";
  2357.                         this.startSymbol = function (a) {
  2358.                             return a ? (b = a, this) :
  2359.                                 b
  2360.                         };
  2361.                         this.endSymbol = function (b) {
  2362.                             return b ? (a = b, this) : a
  2363.                         };
  2364.                         this.$get = ["$parse",
  2365.                             function (c) {
  2366.                                 function d(d, f) {
  2367.                                     for (var j, i, k = 0, m = [], l = d.length, t = !1, o = []; k < l;)(j = d.indexOf(b, k)) != -1 && (i = d.indexOf(a, j + e)) != -1 ? (k != j && m.push(d.substring(k, j)), m.push(k = c(t = d.substring(j + e, i))), k.exp = t, k = i + g, t = !0) : (k != l && m.push(d.substring(k)), k = l);
  2368.                                     if (!(l = m.length)) m.push(""), l = 1;
  2369.                                     if (!f || t) return o.length = l, k = function (a) {
  2370.                                             for (var b = 0, c = l, d; b < c; b++) {
  2371.                                                 if (typeof (d = m[b]) == "function") d = d(a), d == null || d == q ? d = "" : typeof d != "string" && (d = da(d));
  2372.                                                 o[b] = d
  2373.                                             }
  2374.                                             return o.join("")
  2375.                                     }, k.exp = d, k.parts = m, k
  2376.                                 }
  2377.                                 var e = b.length,
  2378.                                     g = a.length;
  2379.                                 d.startSymbol = function () {
  2380.                                     return b
  2381.                                 };
  2382.                                 d.endSymbol = function () {
  2383.                                     return a
  2384.                                 };
  2385.                                 return d
  2386.                             }
  2387.                         ]
  2388.                     }
  2389.  
  2390.                     function Gb(b) {
  2391.                         for (var b = b.split("/"), a = b.length; a--;) b[a] = Ya(b[a]);
  2392.                         return b.join("/")
  2393.                     }
  2394.  
  2395.                     function wa(b, a) {
  2396.                         var c = Hb.exec(b),
  2397.                             c = {
  2398.                                 protocol: c[1],
  2399.                                 host: c[3],
  2400.                                 port: G(c[5]) || Ib[c[1]] || null,
  2401.                                 path: c[6] || "/",
  2402.                                 search: c[8],
  2403.                                 hash: c[10]
  2404.                             };
  2405.                         if (a) a.$$protocol = c.protocol, a.$$host = c.host, a.$$port = c.port;
  2406.                         return c
  2407.                     }
  2408.  
  2409.                     function la(b, a, c) {
  2410.                         return b + "://" + a + (c == Ib[b] ? "" : ":" + c)
  2411.                     }
  2412.  
  2413.                     function Fc(b,
  2414.                         a, c) {
  2415.                         var d = wa(b);
  2416.                         return decodeURIComponent(d.path) != a || x(d.hash) || d.hash.indexOf(c) !== 0 ? b : la(d.protocol, d.host, d.port) + a.substr(0, a.lastIndexOf("/")) + d.hash.substr(c.length)
  2417.                     }
  2418.  
  2419.                     function Gc(b, a, c) {
  2420.                         var d = wa(b);
  2421.                         if (decodeURIComponent(d.path) == a && !x(d.hash) && d.hash.indexOf(c) === 0) return b;
  2422.                         else {
  2423.                             var e = d.search && "?" + d.search || "",
  2424.                                 g = d.hash && "#" + d.hash || "",
  2425.                                 h = a.substr(0, a.lastIndexOf("/")),
  2426.                                 f = d.path.substr(h.length);
  2427.                             if (d.path.indexOf(h) !== 0) throw Error('Invalid url "' + b + '", missing path prefix "' + h + '" !');
  2428.                             return la(d.protocol,
  2429.                                 d.host, d.port) + a + "#" + c + f + e + g
  2430.                         }
  2431.                     }
  2432.  
  2433.                     function ib(b, a, c) {
  2434.                         a = a || "";
  2435.                         this.$$parse = function (b) {
  2436.                             var c = wa(b, this);
  2437.                             if (c.path.indexOf(a) !== 0) throw Error('Invalid url "' + b + '", missing path prefix "' + a + '" !');
  2438.                             this.$$path = decodeURIComponent(c.path.substr(a.length));
  2439.                             this.$$search = Wa(c.search);
  2440.                             this.$$hash = c.hash && decodeURIComponent(c.hash) || "";
  2441.                             this.$$compose()
  2442.                         };
  2443.                         this.$$compose = function () {
  2444.                             var b = qb(this.$$search),
  2445.                                 c = this.$$hash ? "#" + Ya(this.$$hash) : "";
  2446.                             this.$$url = Gb(this.$$path) + (b ? "?" + b : "") + c;
  2447.                             this.$$absUrl = la(this.$$protocol,
  2448.                                 this.$$host, this.$$port) + a + this.$$url
  2449.                         };
  2450.                         this.$$rewriteAppUrl = function (a) {
  2451.                             if (a.indexOf(c) == 0) return a
  2452.                         };
  2453.                         this.$$parse(b)
  2454.                     }
  2455.  
  2456.                     function Ha(b, a, c) {
  2457.                         var d;
  2458.                         this.$$parse = function (b) {
  2459.                             var c = wa(b, this);
  2460.                             if (c.hash && c.hash.indexOf(a) !== 0) throw Error('Invalid url "' + b + '", missing hash prefix "' + a + '" !');
  2461.                             d = c.path + (c.search ? "?" + c.search : "");
  2462.                             c = Hc.exec((c.hash || "").substr(a.length));
  2463.                             this.$$path = c[1] ? (c[1].charAt(0) == "/" ? "" : "/") + decodeURIComponent(c[1]) : "";
  2464.                             this.$$search = Wa(c[3]);
  2465.                             this.$$hash = c[5] && decodeURIComponent(c[5]) ||
  2466.                                 "";
  2467.                             this.$$compose()
  2468.                         };
  2469.                         this.$$compose = function () {
  2470.                             var b = qb(this.$$search),
  2471.                                 c = this.$$hash ? "#" + Ya(this.$$hash) : "";
  2472.                             this.$$url = Gb(this.$$path) + (b ? "?" + b : "") + c;
  2473.                             this.$$absUrl = la(this.$$protocol, this.$$host, this.$$port) + d + (this.$$url ? "#" + a + this.$$url : "")
  2474.                         };
  2475.                         this.$$rewriteAppUrl = function (a) {
  2476.                             if (a.indexOf(c) == 0) return a
  2477.                         };
  2478.                         this.$$parse(b)
  2479.                     }
  2480.  
  2481.                     function Jb(b, a, c, d) {
  2482.                         Ha.apply(this, arguments);
  2483.                         this.$$rewriteAppUrl = function (b) {
  2484.                             if (b.indexOf(c) == 0) return c + d + "#" + a + b.substr(c.length)
  2485.                         }
  2486.                     }
  2487.  
  2488.                     function Ia(b) {
  2489.                         return function () {
  2490.                             return this[b]
  2491.                         }
  2492.                     }
  2493.  
  2494.                     function Kb(b, a) {
  2495.                         return function (c) {
  2496.                             if (x(c)) return this[b];
  2497.                             this[b] = a(c);
  2498.                             this.$$compose();
  2499.                             return this
  2500.                         }
  2501.                     }
  2502.  
  2503.                     function Ic() {
  2504.                         var b = "",
  2505.                             a = !1;
  2506.                         this.hashPrefix = function (a) {
  2507.                             return y(a) ? (b = a, this) : b
  2508.                         };
  2509.                         this.html5Mode = function (b) {
  2510.                             return y(b) ? (a = b, this) : a
  2511.                         };
  2512.                         this.$get = ["$rootScope", "$browser", "$sniffer", "$rootElement",
  2513.                             function (c, d, e, g) {
  2514.                                 function h(a) {
  2515.                                     c.$broadcast("$locationChangeSuccess", f.absUrl(), a)
  2516.                                 }
  2517.                                 var f, j, i, k = d.url(),
  2518.                                     m = wa(k);
  2519.                                 a ? (j = d.baseHref() || "/", i = j.substr(0, j.lastIndexOf("/")), m = la(m.protocol, m.host, m.port) + i + "/",
  2520.                                     f = e.history ? new ib(Fc(k, j, b), i, m) : new Jb(Gc(k, j, b), b, m, j.substr(i.length + 1))) : (m = la(m.protocol, m.host, m.port) + (m.path || "") + (m.search ? "?" + m.search : "") + "#" + b + "/", f = new Ha(k, b, m));
  2521.                                 g.bind("click", function (a) {
  2522.                                         if (!a.ctrlKey && !(a.metaKey || a.which == 2)) {
  2523.                                             for (var b = u(a.target); A(b[0].nodeName) !== "a";) if (b[0] === g[0] || !(b = b.parent())[0]) return;
  2524.                                             var d = b.prop("href"),
  2525.                                                 e = f.$$rewriteAppUrl(d);
  2526.                                             d && !b.attr("target") && e && (f.$$parse(e), c.$apply(), a.preventDefault(), N.angular["ff-684208-preventDefault"] = !0)
  2527.                                         }
  2528.                                     });
  2529.                                 f.absUrl() !=
  2530.                                     k && d.url(f.absUrl(), !0);
  2531.                                 d.onUrlChange(function (a) {
  2532.                                         f.absUrl() != a && (c.$evalAsync(function () {
  2533.                                                     var b = f.absUrl();
  2534.                                                     f.$$parse(a);
  2535.                                                     h(b)
  2536.                                                 }), c.$$phase || c.$digest())
  2537.                                     });
  2538.                                 var l = 0;
  2539.                                 c.$watch(function () {
  2540.                                         var a = d.url(),
  2541.                                             b = f.$$replace;
  2542.                                         if (!l || a != f.absUrl()) l++, c.$evalAsync(function () {
  2543.                                                     c.$broadcast("$locationChangeStart", f.absUrl(), a).defaultPrevented ? f.$$parse(a) : (d.url(f.absUrl(), b), h(a))
  2544.                                                 });
  2545.                                         f.$$replace = !1;
  2546.                                         return l
  2547.                                     });
  2548.                                 return f
  2549.                             }
  2550.                         ]
  2551.                     }
  2552.  
  2553.                     function Jc() {
  2554.                         this.$get = ["$window",
  2555.                             function (b) {
  2556.                                 function a(a) {
  2557.                                     a instanceof Error && (a.stack ? a = a.message &&
  2558.                                         a.stack.indexOf(a.message) === -1 ? "Error: " + a.message + "\n" + a.stack : a.stack : a.sourceURL && (a = a.message + "\n" + a.sourceURL + ":" + a.line));
  2559.                                     return a
  2560.                                 }
  2561.  
  2562.                                 function c(c) {
  2563.                                     var e = b.console || {}, g = e[c] || e.log || w;
  2564.                                     return g.apply ? function () {
  2565.                                         var b = [];
  2566.                                         n(arguments, function (c) {
  2567.                                                 b.push(a(c))
  2568.                                             });
  2569.                                         return g.apply(e, b)
  2570.                                     } : function (a, b) {
  2571.                                         g(a, b)
  2572.                                     }
  2573.                                 }
  2574.                                 return {
  2575.                                     log: c("log"),
  2576.                                     warn: c("warn"),
  2577.                                     info: c("info"),
  2578.                                     error: c("error")
  2579.                                 }
  2580.                             }
  2581.                         ]
  2582.                     }
  2583.  
  2584.                     function Kc(b, a) {
  2585.                         function c(a) {
  2586.                             return a.indexOf(s) != -1
  2587.                         }
  2588.  
  2589.                         function d() {
  2590.                             return o + 1 < b.length ? b.charAt(o + 1) : !1
  2591.                         }
  2592.  
  2593.                         function e(a) {
  2594.                             return "0" <=
  2595.                                 a && a <= "9"
  2596.                         }
  2597.  
  2598.                         function g(a) {
  2599.                             return a == " " || a == "\r" || a == "\t" || a == "\n" || a == "\u000b" || a == "\u00a0"
  2600.                         }
  2601.  
  2602.                         function h(a) {
  2603.                             return "a" <= a && a <= "z" || "A" <= a && a <= "Z" || "_" == a || a == "$"
  2604.                         }
  2605.  
  2606.                         function f(a) {
  2607.                             return a == "-" || a == "+" || e(a)
  2608.                         }
  2609.  
  2610.                         function j(a, c, d) {
  2611.                             d = d || o;
  2612.                             throw Error("Lexer Error: " + a + " at column" + (y(c) ? "s " + c + "-" + o + " [" + b.substring(c, d) + "]" : " " + d) + " in expression [" + b + "].");
  2613.                         }
  2614.  
  2615.                         function i() {
  2616.                             for (var a = "", c = o; o < b.length;) {
  2617.                                 var i = A(b.charAt(o));
  2618.                                 if (i == "." || e(i)) a += i;
  2619.                                 else {
  2620.                                     var g = d();
  2621.                                     if (i == "e" && f(g)) a += i;
  2622.                                     else if (f(i) && g && e(g) && a.charAt(a.length -
  2623.                                             1) == "e") a += i;
  2624.                                     else if (f(i) && (!g || !e(g)) && a.charAt(a.length - 1) == "e") j("Invalid exponent");
  2625.                                     else break
  2626.                                 }
  2627.                                 o++
  2628.                             }
  2629.                             a *= 1;
  2630.                             l.push({
  2631.                                     index: c,
  2632.                                     text: a,
  2633.                                     json: !0,
  2634.                                     fn: function () {
  2635.                                         return a
  2636.                                     }
  2637.                                 })
  2638.                         }
  2639.  
  2640.                         function k() {
  2641.                             for (var c = "", d = o, f, i, j; o < b.length;) {
  2642.                                 var k = b.charAt(o);
  2643.                                 if (k == "." || h(k) || e(k)) k == "." && (f = o), c += k;
  2644.                                 else break;
  2645.                                 o++
  2646.                             }
  2647.                             if (f) for (i = o; i < b.length;) {
  2648.                                     k = b.charAt(i);
  2649.                                     if (k == "(") {
  2650.                                         j = c.substr(f - d + 1);
  2651.                                         c = c.substr(0, f - d);
  2652.                                         o = i;
  2653.                                         break
  2654.                                     }
  2655.                                     if (g(k)) i++;
  2656.                                     else break
  2657.                             }
  2658.                             d = {
  2659.                                 index: d,
  2660.                                 text: c
  2661.                             };
  2662.                             if (Ja.hasOwnProperty(c)) d.fn = d.json = Ja[c];
  2663.                             else {
  2664.                                 var m = Lb(c, a);
  2665.                                 d.fn = v(function (a,
  2666.                                         b) {
  2667.                                         return m(a, b)
  2668.                                     }, {
  2669.                                         assign: function (a, b) {
  2670.                                             return Mb(a, c, b)
  2671.                                         }
  2672.                                     })
  2673.                             }
  2674.                             l.push(d);
  2675.                             j && (l.push({
  2676.                                         index: f,
  2677.                                         text: ".",
  2678.                                         json: !1
  2679.                                     }), l.push({
  2680.                                         index: f + 1,
  2681.                                         text: j,
  2682.                                         json: !1
  2683.                                     }))
  2684.                         }
  2685.  
  2686.                         function m(a) {
  2687.                             var c = o;
  2688.                             o++;
  2689.                             for (var d = "", e = a, f = !1; o < b.length;) {
  2690.                                 var i = b.charAt(o);
  2691.                                 e += i;
  2692.                                 if (f) i == "u" ? (i = b.substring(o + 1, o + 5), i.match(/[\da-f]{4}/i) || j("Invalid unicode escape [\\u" + i + "]"), o += 4, d += String.fromCharCode(parseInt(i, 16))) : (f = Lc[i], d += f ? f : i), f = !1;
  2693.                                 else if (i == "\\") f = !0;
  2694.                                 else if (i == a) {
  2695.                                     o++;
  2696.                                     l.push({
  2697.                                             index: c,
  2698.                                             text: e,
  2699.                                             string: d,
  2700.                                             json: !0,
  2701.                                             fn: function () {
  2702.                                                 return d
  2703.                                             }
  2704.                                         });
  2705.                                     return
  2706.                                 } else d += i;
  2707.                                 o++
  2708.                             }
  2709.                             j("Unterminated quote", c)
  2710.                         }
  2711.                         for (var l = [], t, o = 0, p = [], s, P = ":"; o < b.length;) {
  2712.                             s = b.charAt(o);
  2713.                             if (c("\"'")) m(s);
  2714.                             else if (e(s) || c(".") && e(d())) i();
  2715.                             else if (h(s)) {
  2716.                                 if (k(), "{,".indexOf(P) != -1 && p[0] == "{" && (t = l[l.length - 1])) t.json = t.text.indexOf(".") == -1
  2717.                             } else if (c("(){}[].,;:")) l.push({
  2718.                                         index: o,
  2719.                                         text: s,
  2720.                                         json: ":[,".indexOf(P) != -1 && c("{[") || c("}]:,")
  2721.                                     }), c("{[") && p.unshift(s), c("}]") && p.shift(), o++;
  2722.                             else if (g(s)) {
  2723.                                 o++;
  2724.                                 continue
  2725.                             } else {
  2726.                                 var n = s + d(),
  2727.                                     z = Ja[s],
  2728.                                     W = Ja[n];
  2729.                                 W ? (l.push({
  2730.                                             index: o,
  2731.                                             text: n,
  2732.                                             fn: W
  2733.                                         }), o += 2) : z ? (l.push({
  2734.                                             index: o,
  2735.                                             text: s,
  2736.                                             fn: z,
  2737.                                             json: "[,:".indexOf(P) != -1 && c("+-")
  2738.                                         }), o += 1) : j("Unexpected next character ", o, o + 1)
  2739.                             }
  2740.                             P = s
  2741.                         }
  2742.                         return l
  2743.                     }
  2744.  
  2745.                     function Mc(b, a, c, d) {
  2746.                         function e(a, c) {
  2747.                             throw Error("Syntax Error: Token '" + c.text + "' " + a + " at column " + (c.index + 1) + " of the expression [" + b + "] starting at [" + b.substring(c.index) + "].");
  2748.                         }
  2749.  
  2750.                         function g() {
  2751.                             if (Q.length === 0) throw Error("Unexpected end of expression: " + b);
  2752.                             return Q[0]
  2753.                         }
  2754.  
  2755.                         function h(a, b, c, d) {
  2756.                             if (Q.length > 0) {
  2757.                                 var e = Q[0],
  2758.                                     f = e.text;
  2759.                                 if (f == a || f == b || f == c || f == d || !a && !b && !c && !d) return e
  2760.                             }
  2761.                             return !1
  2762.                         }
  2763.  
  2764.                         function f(b,
  2765.                             c, d, f) {
  2766.                             return (b = h(b, c, d, f)) ? (a && !b.json && e("is not valid json", b), Q.shift(), b) : !1
  2767.                         }
  2768.  
  2769.                         function j(a) {
  2770.                             f(a) || e("is unexpected, expecting [" + a + "]", h())
  2771.                         }
  2772.  
  2773.                         function i(a, b) {
  2774.                             return function (c, d) {
  2775.                                 return a(c, d, b)
  2776.                             }
  2777.                         }
  2778.  
  2779.                         function k(a, b, c) {
  2780.                             return function (d, e) {
  2781.                                 return b(d, e, a, c)
  2782.                             }
  2783.                         }
  2784.  
  2785.                         function m() {
  2786.                             for (var a = [];;) if (Q.length > 0 && !h("}", ")", ";", "]") && a.push(x()), !f(";")) return a.length == 1 ? a[0] : function (b, c) {
  2787.                                         for (var d, e = 0; e < a.length; e++) {
  2788.                                             var f = a[e];
  2789.                                             f && (d = f(b, c))
  2790.                                         }
  2791.                                         return d
  2792.                                 }
  2793.                         }
  2794.  
  2795.                         function l() {
  2796.                             for (var a = f(), b = c(a.text), d = [];;) if (a = f(":")) d.push(F());
  2797.                                 else {
  2798.                                     var e = function (a, c, e) {
  2799.                                         for (var e = [e], f = 0; f < d.length; f++) e.push(d[f](a, c));
  2800.                                         return b.apply(a, e)
  2801.                                     };
  2802.                                     return function () {
  2803.                                         return e
  2804.                                     }
  2805.                                 }
  2806.                         }
  2807.  
  2808.                         function t() {
  2809.                             for (var a = o(), b;;) if (b = f("||")) a = k(a, b.fn, o());
  2810.                                 else return a
  2811.                         }
  2812.  
  2813.                         function o() {
  2814.                             var a = p(),
  2815.                                 b;
  2816.                             if (b = f("&&")) a = k(a, b.fn, o());
  2817.                             return a
  2818.                         }
  2819.  
  2820.                         function p() {
  2821.                             var a = s(),
  2822.                                 b;
  2823.                             if (b = f("==", "!=")) a = k(a, b.fn, p());
  2824.                             return a
  2825.                         }
  2826.  
  2827.                         function s() {
  2828.                             var a;
  2829.                             a = n();
  2830.                             for (var b; b = f("+", "-");) a = k(a, b.fn, n());
  2831.                             if (b = f("<", ">", "<=", ">=")) a = k(a, b.fn, s());
  2832.                             return a
  2833.                         }
  2834.  
  2835.                         function n() {
  2836.                             for (var a = C(), b; b = f("*", "/", "%");) a = k(a,
  2837.                                     b.fn, C());
  2838.                             return a
  2839.                         }
  2840.  
  2841.                         function C() {
  2842.                             var a;
  2843.                             return f("+") ? z() : (a = f("-")) ? k(r, a.fn, C()) : (a = f("!")) ? i(a.fn, C()) : z()
  2844.                         }
  2845.  
  2846.                         function z() {
  2847.                             var a;
  2848.                             if (f("(")) a = x(), j(")");
  2849.                             else if (f("[")) a = W();
  2850.                             else if (f("{")) a = J();
  2851.                             else {
  2852.                                 var b = f();
  2853.                                 (a = b.fn) || e("not a primary expression", b)
  2854.                             }
  2855.                             for (var c; b = f("(", "[", ".");) b.text === "(" ? (a = y(a, c), c = null) : b.text === "[" ? (c = a, a = S(a)) : b.text === "." ? (c = a, a = u(a)) : e("IMPOSSIBLE");
  2856.                             return a
  2857.                         }
  2858.  
  2859.                         function W() {
  2860.                             var a = [];
  2861.                             if (g().text != "]") {
  2862.                                 do a.push(F()); while (f(","))
  2863.                             }
  2864.                             j("]");
  2865.                             return function (b, c) {
  2866.                                 for (var d = [], e = 0; e <
  2867.                                     a.length; e++) d.push(a[e](b, c));
  2868.                                 return d
  2869.                             }
  2870.                         }
  2871.  
  2872.                         function J() {
  2873.                             var a = [];
  2874.                             if (g().text != "}") {
  2875.                                 do {
  2876.                                     var b = f(),
  2877.                                         b = b.string || b.text;
  2878.                                     j(":");
  2879.                                     var c = F();
  2880.                                     a.push({
  2881.                                             key: b,
  2882.                                             value: c
  2883.                                         })
  2884.                                 } while (f(","))
  2885.                             }
  2886.                             j("}");
  2887.                             return function (b, c) {
  2888.                                 for (var d = {}, e = 0; e < a.length; e++) {
  2889.                                     var f = a[e],
  2890.                                         i = f.value(b, c);
  2891.                                     d[f.key] = i
  2892.                                 }
  2893.                                 return d
  2894.                             }
  2895.                         }
  2896.                         var r = I(0),
  2897.                             $, Q = Kc(b, d),
  2898.                             F = function () {
  2899.                                 var a = t(),
  2900.                                     c, d;
  2901.                                 return (d = f("=")) ? (a.assign || e("implies assignment but [" + b.substring(0, d.index) + "] can not be assigned to", d), c = t(), function (b, d) {
  2902.                                         return a.assign(b, c(b, d), d)
  2903.                                     }) : a
  2904.                             }, y = function (a,
  2905.                                 b) {
  2906.                                 var c = [];
  2907.                                 if (g().text != ")") {
  2908.                                     do c.push(F()); while (f(","))
  2909.                                 }
  2910.                                 j(")");
  2911.                                 return function (d, e) {
  2912.                                     for (var f = [], i = b ? b(d, e) : d, g = 0; g < c.length; g++) f.push(c[g](d, e));
  2913.                                     g = a(d, e) || w;
  2914.                                     return g.apply ? g.apply(i, f) : g(f[0], f[1], f[2], f[3], f[4])
  2915.                                 }
  2916.                             }, u = function (a) {
  2917.                                 var b = f().text,
  2918.                                     c = Lb(b, d);
  2919.                                 return v(function (b, d) {
  2920.                                         return c(a(b, d), d)
  2921.                                     }, {
  2922.                                         assign: function (c, d, e) {
  2923.                                             return Mb(a(c, e), b, d)
  2924.                                         }
  2925.                                     })
  2926.                             }, S = function (a) {
  2927.                                 var b = F();
  2928.                                 j("]");
  2929.                                 return v(function (c, d) {
  2930.                                         var e = a(c, d),
  2931.                                             f = b(c, d),
  2932.                                             i;
  2933.                                         if (!e) return q;
  2934.                                         if ((e = e[f]) && e.then) {
  2935.                                             i = e;
  2936.                                             if (!("$$v" in e)) i.$$v = q, i.then(function (a) {
  2937.                                                         i.$$v =
  2938.                                                             a
  2939.                                                     });
  2940.                                             e = e.$$v
  2941.                                         }
  2942.                                         return e
  2943.                                     }, {
  2944.                                         assign: function (c, d, e) {
  2945.                                             return a(c, e)[b(c, e)] = d
  2946.                                         }
  2947.                                     })
  2948.                             }, x = function () {
  2949.                                 for (var a = F(), b;;) if (b = f("|")) a = k(a, b.fn, l());
  2950.                                     else return a
  2951.                             };
  2952.                         a ? (F = t, y = u = S = x = function () {
  2953.                                 e("is not valid json", {
  2954.                                         text: b,
  2955.                                         index: 0
  2956.                                     })
  2957.                             }, $ = z()) : $ = m();
  2958.                         Q.length !== 0 && e("is an unexpected token", Q[0]);
  2959.                         return $
  2960.                     }
  2961.  
  2962.                     function Mb(b, a, c) {
  2963.                         for (var a = a.split("."), d = 0; a.length > 1; d++) {
  2964.                             var e = a.shift(),
  2965.                                 g = b[e];
  2966.                             g || (g = {}, b[e] = g);
  2967.                             b = g
  2968.                         }
  2969.                         return b[a.shift()] = c
  2970.                     }
  2971.  
  2972.                     function hb(b, a, c) {
  2973.                         if (!a) return b;
  2974.                         for (var a = a.split("."), d, e = b, g = a.length, h = 0; h < g; h++) d = a[h],
  2975.                         b && (b = (e = b)[d]);
  2976.                         return !c && H(b) ? Ua(e, b) : b
  2977.                     }
  2978.  
  2979.                     function Nb(b, a, c, d, e) {
  2980.                         return function (g, h) {
  2981.                             var f = h && h.hasOwnProperty(b) ? h : g,
  2982.                                 j;
  2983.                             if (f === null || f === q) return f;
  2984.                             if ((f = f[b]) && f.then) {
  2985.                                 if (!("$$v" in f)) j = f, j.$$v = q, j.then(function (a) {
  2986.                                             j.$$v = a
  2987.                                         });
  2988.                                 f = f.$$v
  2989.                             }
  2990.                             if (!a || f === null || f === q) return f;
  2991.                             if ((f = f[a]) && f.then) {
  2992.                                 if (!("$$v" in f)) j = f, j.$$v = q, j.then(function (a) {
  2993.                                             j.$$v = a
  2994.                                         });
  2995.                                 f = f.$$v
  2996.                             }
  2997.                             if (!c || f === null || f === q) return f;
  2998.                             if ((f = f[c]) && f.then) {
  2999.                                 if (!("$$v" in f)) j = f, j.$$v = q, j.then(function (a) {
  3000.                                             j.$$v = a
  3001.                                         });
  3002.                                 f = f.$$v
  3003.                             }
  3004.                             if (!d || f === null || f === q) return f;
  3005.                             if ((f = f[d]) && f.then) {
  3006.                                 if (!("$$v" in f)) j = f, j.$$v = q, j.then(function (a) {
  3007.                                             j.$$v = a
  3008.                                         });
  3009.                                 f = f.$$v
  3010.                             }
  3011.                             if (!e || f === null || f === q) return f;
  3012.                             if ((f = f[e]) && f.then) {
  3013.                                 if (!("$$v" in f)) j = f, j.$$v = q, j.then(function (a) {
  3014.                                             j.$$v = a
  3015.                                         });
  3016.                                 f = f.$$v
  3017.                             }
  3018.                             return f
  3019.                         }
  3020.                     }
  3021.  
  3022.                     function Lb(b, a) {
  3023.                         if (jb.hasOwnProperty(b)) return jb[b];
  3024.                         var c = b.split("."),
  3025.                             d = c.length,
  3026.                             e;
  3027.                         if (a) e = d < 6 ? Nb(c[0], c[1], c[2], c[3], c[4]) : function (a, b) {
  3028.                                 var e = 0,
  3029.                                     i;
  3030.                                 do i = Nb(c[e++], c[e++], c[e++], c[e++], c[e++])(a, b), b = q, a = i; while (e < d);
  3031.                                 return i
  3032.                         };
  3033.                         else {
  3034.                             var g = "var l, fn, p;\n";
  3035.                             n(c, function (a, b) {
  3036.                                     g += "if(s === null || s === undefined) return s;\nl=s;\ns=" +
  3037.                                     (b ? "s" : '((k&&k.hasOwnProperty("' + a + '"))?k:s)') + '["' + a + '"];\nif (s && s.then) {\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n'
  3038.                                 });
  3039.                             g += "return s;";
  3040.                             e = Function("s", "k", g);
  3041.                             e.toString = function () {
  3042.                                 return g
  3043.                             }
  3044.                         }
  3045.                         return jb[b] = e
  3046.                     }
  3047.  
  3048.                     function Nc() {
  3049.                         var b = {};
  3050.                         this.$get = ["$filter", "$sniffer",
  3051.                             function (a, c) {
  3052.                                 return function (d) {
  3053.                                     switch (typeof d) {
  3054.                                     case "string":
  3055.                                         return b.hasOwnProperty(d) ? b[d] : b[d] = Mc(d, !1, a, c.csp);
  3056.                                     case "function":
  3057.                                         return d;
  3058.                                     default:
  3059.                                         return w
  3060.                                     }
  3061.                                 }
  3062.                             }
  3063.                         ]
  3064.                     }
  3065.  
  3066.                     function Oc() {
  3067.                         this.$get = ["$rootScope", "$exceptionHandler",
  3068.                             function (b, a) {
  3069.                                 return Pc(function (a) {
  3070.                                         b.$evalAsync(a)
  3071.                                     }, a)
  3072.                             }
  3073.                         ]
  3074.                     }
  3075.  
  3076.                     function Pc(b, a) {
  3077.                         function c(a) {
  3078.                             return a
  3079.                         }
  3080.  
  3081.                         function d(a) {
  3082.                             return h(a)
  3083.                         }
  3084.                         var e = function () {
  3085.                             var f = [],
  3086.                                 j, i;
  3087.                             return i = {
  3088.                                 resolve: function (a) {
  3089.                                     if (f) {
  3090.                                         var c = f;
  3091.                                         f = q;
  3092.                                         j = g(a);
  3093.                                         c.length && b(function () {
  3094.                                                 for (var a, b = 0, d = c.length; b < d; b++) a = c[b], j.then(a[0], a[1])
  3095.                                             })
  3096.                                     }
  3097.                                 },
  3098.                                 reject: function (a) {
  3099.                                     i.resolve(h(a))
  3100.                                 },
  3101.                                 promise: {
  3102.                                     then: function (b, i) {
  3103.                                         var g = e(),
  3104.                                             h = function (d) {
  3105.                                                 try {
  3106.                                                     g.resolve((b || c)(d))
  3107.                                                 } catch (e) {
  3108.                                                     a(e), g.reject(e)
  3109.                                                 }
  3110.                                             }, o = function (b) {
  3111.                                                 try {
  3112.                                                     g.resolve((i ||
  3113.                                                             d)(b))
  3114.                                                 } catch (c) {
  3115.                                                     a(c), g.reject(c)
  3116.                                                 }
  3117.                                             };
  3118.                                         f ? f.push([h, o]) : j.then(h, o);
  3119.                                         return g.promise
  3120.                                     }
  3121.                                 }
  3122.                             }
  3123.                         }, g = function (a) {
  3124.                                 return a && a.then ? a : {
  3125.                                     then: function (c) {
  3126.                                         var d = e();
  3127.                                         b(function () {
  3128.                                                 d.resolve(c(a))
  3129.                                             });
  3130.                                         return d.promise
  3131.                                     }
  3132.                                 }
  3133.                             }, h = function (a) {
  3134.                                 return {
  3135.                                     then: function (c, i) {
  3136.                                         var g = e();
  3137.                                         b(function () {
  3138.                                                 g.resolve((i || d)(a))
  3139.                                             });
  3140.                                         return g.promise
  3141.                                     }
  3142.                                 }
  3143.                             };
  3144.                         return {
  3145.                             defer: e,
  3146.                             reject: h,
  3147.                             when: function (f, j, i) {
  3148.                                 var k = e(),
  3149.                                     m, l = function (b) {
  3150.                                         try {
  3151.                                             return (j || c)(b)
  3152.                                         } catch (d) {
  3153.                                             return a(d), h(d)
  3154.                                         }
  3155.                                     }, t = function (b) {
  3156.                                         try {
  3157.                                             return (i || d)(b)
  3158.                                         } catch (c) {
  3159.                                             return a(c), h(c)
  3160.                                         }
  3161.                                     };
  3162.                                 b(function () {
  3163.                                         g(f).then(function (a) {
  3164.                                                 m ||
  3165.                                                 (m = !0, k.resolve(g(a).then(l, t)))
  3166.                                             }, function (a) {
  3167.                                                 m || (m = !0, k.resolve(t(a)))
  3168.                                             })
  3169.                                     });
  3170.                                 return k.promise
  3171.                             },
  3172.                             all: function (a) {
  3173.                                 var b = e(),
  3174.                                     c = a.length,
  3175.                                     d = [];
  3176.                                 c ? n(a, function (a, e) {
  3177.                                         g(a).then(function (a) {
  3178.                                                 e in d || (d[e] = a, --c || b.resolve(d))
  3179.                                             }, function (a) {
  3180.                                                 e in d || b.reject(a)
  3181.                                             })
  3182.                                     }) : b.resolve(d);
  3183.                                 return b.promise
  3184.                             }
  3185.                         }
  3186.                     }
  3187.  
  3188.                     function Qc() {
  3189.                         var b = {};
  3190.                         this.when = function (a, c) {
  3191.                             b[a] = v({
  3192.                                     reloadOnSearch: !0
  3193.                                 }, c);
  3194.                             if (a) {
  3195.                                 var d = a[a.length - 1] == "/" ? a.substr(0, a.length - 1) : a + "/";
  3196.                                 b[d] = {
  3197.                                     redirectTo: a
  3198.                                 }
  3199.                             }
  3200.                             return this
  3201.                         };
  3202.                         this.otherwise = function (a) {
  3203.                             this.when(null, a);
  3204.                             return this
  3205.                         };
  3206.                         this.$get = ["$rootScope", "$location", "$routeParams", "$q", "$injector", "$http", "$templateCache",
  3207.                             function (a, c, d, e, g, h, f) {
  3208.                                 function j(a, b) {
  3209.                                     for (var b = "^" + b.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") + "$", c = "", d = [], e = {}, f = /:(\w+)/g, i, g = 0;
  3210.                                         (i = f.exec(b)) !== null;) c += b.slice(g, i.index), c += "([^\\/]*)", d.push(i[1]), g = f.lastIndex;
  3211.                                     c += b.substr(g);
  3212.                                     var h = a.match(RegExp(c));
  3213.                                     h && n(d, function (a, b) {
  3214.                                             e[a] = h[b + 1]
  3215.                                         });
  3216.                                     return h ? e : null
  3217.                                 }
  3218.  
  3219.                                 function i() {
  3220.                                     var b = k(),
  3221.                                         i = t.current;
  3222.                                     if (b && i && b.$$route === i.$$route && ga(b.pathParams, i.pathParams) && !b.reloadOnSearch && !l) i.params = b.params, V(i.params, d), a.$broadcast("$routeUpdate", i);
  3223.                                     else if (b || i) l = !1, a.$broadcast("$routeChangeStart", b, i), (t.current = b) && b.redirectTo && (B(b.redirectTo) ? c.path(m(b.redirectTo, b.params)).search(b.params).replace() : c.url(b.redirectTo(b.pathParams, c.path(), c.search())).replace()), e.when(b).then(function () {
  3224.                                                 if (b) {
  3225.                                                     var a = [],
  3226.                                                         c = [],
  3227.                                                         d;
  3228.                                                     n(b.resolve || {}, function (b, d) {
  3229.                                                             a.push(d);
  3230.                                                             c.push(B(b) ? g.get(b) : g.invoke(b))
  3231.                                                         });
  3232.                                                     if (!y(d = b.template)) if (y(d = b.templateUrl)) d = h.get(d, {
  3233.                                                                     cache: f
  3234.                                                                 }).then(function (a) {
  3235.                                                                     return a.data
  3236.                                                                 });
  3237.                                                     y(d) && (a.push("$template"), c.push(d));
  3238.                                                     return e.all(c).then(function (b) {
  3239.                                                             var c = {};
  3240.                                                             n(b, function (b, d) {
  3241.                                                                     c[a[d]] = b
  3242.                                                                 });
  3243.                                                             return c
  3244.                                                         })
  3245.                                                 }
  3246.                                             }).then(function (c) {
  3247.                                                 if (b == t.current) {
  3248.                                                     if (b) b.locals = c, V(b.params, d);
  3249.                                                     a.$broadcast("$routeChangeSuccess", b, i)
  3250.                                                 }
  3251.                                             }, function (c) {
  3252.                                                 b == t.current && a.$broadcast("$routeChangeError", b, i, c)
  3253.                                             })
  3254.                                 }
  3255.  
  3256.                                 function k() {
  3257.                                     var a, d;
  3258.                                     n(b, function (b, e) {
  3259.                                             if (!d && (a = j(c.path(), e))) d = za(b, {
  3260.                                                         params: v({}, c.search(), a),
  3261.                                                         pathParams: a
  3262.                                                     }), d.$$route = b
  3263.                                         });
  3264.                                     return d || b[null] && za(b[null], {
  3265.                                             params: {},
  3266.                                             pathParams: {}
  3267.                                         })
  3268.                                 }
  3269.  
  3270.                                 function m(a, b) {
  3271.                                     var c = [];
  3272.                                     n((a || "").split(":"), function (a, d) {
  3273.                                             if (d == 0) c.push(a);
  3274.                                             else {
  3275.                                                 var e = a.match(/(\w+)(.*)/),
  3276.                                                     f = e[1];
  3277.                                                 c.push(b[f]);
  3278.                                                 c.push(e[2] || "");
  3279.                                                 delete b[f]
  3280.                                             }
  3281.                                         });
  3282.                                     return c.join("")
  3283.                                 }
  3284.                                 var l = !1,
  3285.                                     t = {
  3286.                                         routes: b,
  3287.                                         reload: function () {
  3288.                                             l = !0;
  3289.                                             a.$evalAsync(i)
  3290.                                         }
  3291.                                     };
  3292.                                 a.$on("$locationChangeSuccess", i);
  3293.                                 return t
  3294.                             }
  3295.                         ]
  3296.                     }
  3297.  
  3298.                     function Rc() {
  3299.                         this.$get = I({})
  3300.                     }
  3301.  
  3302.                     function Sc() {
  3303.                         var b = 10;
  3304.                         this.digestTtl = function (a) {
  3305.                             arguments.length && (b = a);
  3306.                             return b
  3307.                         };
  3308.                         this.$get = ["$injector", "$exceptionHandler", "$parse",
  3309.                             function (a, c, d) {
  3310.                                 function e() {
  3311.                                     this.$id = ya();
  3312.                                     this.$$phase = this.$parent = this.$$watchers =
  3313.                                         this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null;
  3314.                                     this["this"] = this.$root = this;
  3315.                                     this.$$destroyed = !1;
  3316.                                     this.$$asyncQueue = [];
  3317.                                     this.$$listeners = {};
  3318.                                     this.$$isolateBindings = {}
  3319.                                 }
  3320.  
  3321.                                 function g(a) {
  3322.                                     if (j.$$phase) throw Error(j.$$phase + " already in progress");
  3323.                                     j.$$phase = a
  3324.                                 }
  3325.  
  3326.                                 function h(a, b) {
  3327.                                     var c = d(a);
  3328.                                     ra(c, b);
  3329.                                     return c
  3330.                                 }
  3331.  
  3332.                                 function f() {}
  3333.                                 e.prototype = {
  3334.                                     $new: function (a) {
  3335.                                         if (H(a)) throw Error("API-CHANGE: Use $controller to instantiate controllers.");
  3336.                                         a ? (a = new e, a.$root = this.$root) : (a = function () {}, a.prototype =
  3337.                                             this, a = new a, a.$id = ya());
  3338.                                         a["this"] = a;
  3339.                                         a.$$listeners = {};
  3340.                                         a.$parent = this;
  3341.                                         a.$$asyncQueue = [];
  3342.                                         a.$$watchers = a.$$nextSibling = a.$$childHead = a.$$childTail = null;
  3343.                                         a.$$prevSibling = this.$$childTail;
  3344.                                         this.$$childHead ? this.$$childTail = this.$$childTail.$$nextSibling = a : this.$$childHead = this.$$childTail = a;
  3345.                                         return a
  3346.                                     },
  3347.                                     $watch: function (a, b, c) {
  3348.                                         var d = h(a, "watch"),
  3349.                                             e = this.$$watchers,
  3350.                                             g = {
  3351.                                                 fn: b,
  3352.                                                 last: f,
  3353.                                                 get: d,
  3354.                                                 exp: a,
  3355.                                                 eq: !! c
  3356.                                             };
  3357.                                         if (!H(b)) {
  3358.                                             var j = h(b || w, "listener");
  3359.                                             g.fn = function (a, b, c) {
  3360.                                                 j(c)
  3361.                                             }
  3362.                                         }
  3363.                                         if (!e) e = this.$$watchers = [];
  3364.                                         e.unshift(g);
  3365.                                         return function () {
  3366.                                             Ta(e,
  3367.                                                 g)
  3368.                                         }
  3369.                                     },
  3370.                                     $digest: function () {
  3371.                                         var a, d, e, h, t, o, p, s = b,
  3372.                                             n, C = [],
  3373.                                             z, q;
  3374.                                         g("$digest");
  3375.                                         do {
  3376.                                             p = !1;
  3377.                                             n = this;
  3378.                                             do {
  3379.                                                 for (t = n.$$asyncQueue; t.length;) try {
  3380.                                                         n.$eval(t.shift())
  3381.                                                 } catch (J) {
  3382.                                                     c(J)
  3383.                                                 }
  3384.                                                 if (h = n.$$watchers) for (o = h.length; o--;) try {
  3385.                                                             if (a = h[o], (d = a.get(n)) !== (e = a.last) && !(a.eq ? ga(d, e) : typeof d == "number" && typeof e == "number" && isNaN(d) && isNaN(e))) p = !0, a.last = a.eq ? V(d) : d, a.fn(d, e === f ? d : e, n), s < 5 && (z = 4 - s, C[z] || (C[z] = []), q = H(a.exp) ? "fn: " + (a.exp.name || a.exp.toString()) : a.exp, q += "; newVal: " + da(d) + "; oldVal: " + da(e), C[z].push(q))
  3386.                                                 } catch (r) {
  3387.                                                     c(r)
  3388.                                                 }
  3389.                                                 if (!(h =
  3390.                                                         n.$$childHead || n !== this && n.$$nextSibling)) for (; n !== this && !(h = n.$$nextSibling);) n = n.$parent
  3391.                                             } while (n = h);
  3392.                                             if (p && !s--) throw j.$$phase = null, Error(b + " $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: " + da(C));
  3393.                                         } while (p || t.length);
  3394.                                         j.$$phase = null
  3395.                                     },
  3396.                                     $destroy: function () {
  3397.                                         if (!(j == this || this.$$destroyed)) {
  3398.                                             var a = this.$parent;
  3399.                                             this.$broadcast("$destroy");
  3400.                                             this.$$destroyed = !0;
  3401.                                             if (a.$$childHead == this) a.$$childHead = this.$$nextSibling;
  3402.                                             if (a.$$childTail == this) a.$$childTail = this.$$prevSibling;
  3403.                                             if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling;
  3404.                                             if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling;
  3405.                                             this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null
  3406.                                         }
  3407.                                     },
  3408.                                     $eval: function (a, b) {
  3409.                                         return d(a)(this, b)
  3410.                                     },
  3411.                                     $evalAsync: function (a) {
  3412.                                         this.$$asyncQueue.push(a)
  3413.                                     },
  3414.                                     $apply: function (a) {
  3415.                                         try {
  3416.                                             return g("$apply"), this.$eval(a)
  3417.                                         } catch (b) {
  3418.                                             c(b)
  3419.                                         } finally {
  3420.                                             j.$$phase = null;
  3421.                                             try {
  3422.                                                 j.$digest()
  3423.                                             } catch (d) {
  3424.                                                 throw c(d), d;
  3425.                                             }
  3426.                                         }
  3427.                                     },
  3428.                                     $on: function (a, b) {
  3429.                                         var c = this.$$listeners[a];
  3430.                                         c || (this.$$listeners[a] = c = []);
  3431.                                         c.push(b);
  3432.                                         return function () {
  3433.                                             c[Aa(c, b)] = null
  3434.                                         }
  3435.                                     },
  3436.                                     $emit: function (a, b) {
  3437.                                         var d = [],
  3438.                                             e, f = this,
  3439.                                             g = !1,
  3440.                                             h = {
  3441.                                                 name: a,
  3442.                                                 targetScope: f,
  3443.                                                 stopPropagation: function () {
  3444.                                                     g = !0
  3445.                                                 },
  3446.                                                 preventDefault: function () {
  3447.                                                     h.defaultPrevented = !0
  3448.                                                 },
  3449.                                                 defaultPrevented: !1
  3450.                                             }, j = [h].concat(ha.call(arguments, 1)),
  3451.                                             n, C;
  3452.                                         do {
  3453.                                             e = f.$$listeners[a] || d;
  3454.                                             h.currentScope = f;
  3455.                                             n = 0;
  3456.                                             for (C = e.length; n < C; n++) if (e[n]) try {
  3457.                                                         if (e[n].apply(null, j), g) return h
  3458.                                                 } catch (z) {
  3459.                                                 c(z)
  3460.                                             } else e.splice(n, 1), n--, C--;
  3461.                                             f = f.$parent
  3462.                                         } while (f);
  3463.                                         return h
  3464.                                     },
  3465.                                     $broadcast: function (a, b) {
  3466.                                         var d =
  3467.                                             this,
  3468.                                             e = this,
  3469.                                             f = {
  3470.                                                 name: a,
  3471.                                                 targetScope: this,
  3472.                                                 preventDefault: function () {
  3473.                                                     f.defaultPrevented = !0
  3474.                                                 },
  3475.                                                 defaultPrevented: !1
  3476.                                             }, g = [f].concat(ha.call(arguments, 1)),
  3477.                                             h, j;
  3478.                                         do {
  3479.                                             d = e;
  3480.                                             f.currentScope = d;
  3481.                                             e = d.$$listeners[a] || [];
  3482.                                             h = 0;
  3483.                                             for (j = e.length; h < j; h++) if (e[h]) try {
  3484.                                                         e[h].apply(null, g)
  3485.                                                 } catch (n) {
  3486.                                                 c(n)
  3487.                                             } else e.splice(h, 1), h--, j--; if (!(e = d.$$childHead || d !== this && d.$$nextSibling)) for (; d !== this && !(e = d.$$nextSibling);) d = d.$parent
  3488.                                         } while (d = e);
  3489.                                         return f
  3490.                                     }
  3491.                                 };
  3492.                                 var j = new e;
  3493.                                 return j
  3494.                             }
  3495.                         ]
  3496.                     }
  3497.  
  3498.                     function Tc() {
  3499.                         this.$get = ["$window",
  3500.                             function (b) {
  3501.                                 var a = {}, c = G((/android (\d+)/.exec(A(b.navigator.userAgent)) || [])[1]);
  3502.                                 return {
  3503.                                     history: !(!b.history || !b.history.pushState || c < 4),
  3504.                                     hashchange: "onhashchange" in b && (!b.document.documentMode || b.document.documentMode > 7),
  3505.                                     hasEvent: function (c) {
  3506.                                         if (c == "input" && Z == 9) return !1;
  3507.                                         if (x(a[c])) {
  3508.                                             var e = b.document.createElement("div");
  3509.                                             a[c] = "on" + c in e
  3510.                                         }
  3511.                                         return a[c]
  3512.                                     },
  3513.                                     csp: !1
  3514.                                 }
  3515.                             }
  3516.                         ]
  3517.                     }
  3518.  
  3519.                     function Uc() {
  3520.                         this.$get = I(N)
  3521.                     }
  3522.  
  3523.                     function Ob(b) {
  3524.                         var a = {}, c, d, e;
  3525.                         if (!b) return a;
  3526.                         n(b.split("\n"), function (b) {
  3527.                                 e = b.indexOf(":");
  3528.                                 c = A(O(b.substr(0, e)));
  3529.                                 d = O(b.substr(e + 1));
  3530.                                 c && (a[c] ? a[c] += ", " + d : a[c] = d)
  3531.                             });
  3532.                         return a
  3533.                     }
  3534.  
  3535.                     function Pb(b) {
  3536.                         var a =
  3537.                             L(b) ? b : q;
  3538.                         return function (c) {
  3539.                             a || (a = Ob(b));
  3540.                             return c ? a[A(c)] || null : a
  3541.                         }
  3542.                     }
  3543.  
  3544.                     function Qb(b, a, c) {
  3545.                         if (H(c)) return c(b, a);
  3546.                         n(c, function (c) {
  3547.                                 b = c(b, a)
  3548.                             });
  3549.                         return b
  3550.                     }
  3551.  
  3552.                     function Vc() {
  3553.                         var b = /^\s*(\[|\{[^\{])/,
  3554.                             a = /[\}\]]\s*$/,
  3555.                             c = /^\)\]\}',?\n/,
  3556.                             d = this.defaults = {
  3557.                                 transformResponse: [
  3558.                                     function (d) {
  3559.                                         B(d) && (d = d.replace(c, ""), b.test(d) && a.test(d) && (d = pb(d, !0)));
  3560.                                         return d
  3561.                                     }
  3562.                                 ],
  3563.                                 transformRequest: [
  3564.                                     function (a) {
  3565.                                         return L(a) && xa.apply(a) !== "[object File]" ? da(a) : a
  3566.                                     }
  3567.                                 ],
  3568.                                 headers: {
  3569.                                     common: {
  3570.                                         Accept: "application/json, text/plain, */*",
  3571.                                         "X-Requested-With": "XMLHttpRequest"
  3572.                                     },
  3573.                                     post: {
  3574.                                         "Content-Type": "application/json;charset=utf-8"
  3575.                                     },
  3576.                                     put: {
  3577.                                         "Content-Type": "application/json;charset=utf-8"
  3578.                                     }
  3579.                                 }
  3580.                             }, e = this.responseInterceptors = [];
  3581.                         this.$get = ["$httpBackend", "$browser", "$cacheFactory", "$rootScope", "$q", "$injector",
  3582.                             function (a, b, c, j, i, k) {
  3583.                                 function m(a) {
  3584.                                     function c(a) {
  3585.                                         var b = v({}, a, {
  3586.                                                 data: Qb(a.data, a.headers, f)
  3587.                                             });
  3588.                                         return 200 <= a.status && a.status < 300 ? b : i.reject(b)
  3589.                                     }
  3590.                                     a.method = ma(a.method);
  3591.                                     var e = a.transformRequest || d.transformRequest,
  3592.                                         f = a.transformResponse || d.transformResponse,
  3593.                                         g = d.headers,
  3594.                                         g = v({
  3595.                                                 "X-XSRF-TOKEN": b.cookies()["XSRF-TOKEN"]
  3596.                                             },
  3597.                                             g.common, g[A(a.method)], a.headers),
  3598.                                         e = Qb(a.data, Pb(g), e),
  3599.                                         j;
  3600.                                     x(a.data) && delete g["Content-Type"];
  3601.                                     j = l(a, e, g);
  3602.                                     j = j.then(c, c);
  3603.                                     n(p, function (a) {
  3604.                                             j = a(j)
  3605.                                         });
  3606.                                     j.success = function (b) {
  3607.                                         j.then(function (c) {
  3608.                                                 b(c.data, c.status, c.headers, a)
  3609.                                             });
  3610.                                         return j
  3611.                                     };
  3612.                                     j.error = function (b) {
  3613.                                         j.then(null, function (c) {
  3614.                                                 b(c.data, c.status, c.headers, a)
  3615.                                             });
  3616.                                         return j
  3617.                                     };
  3618.                                     return j
  3619.                                 }
  3620.  
  3621.                                 function l(b, c, d) {
  3622.                                     function e(a, b, c) {
  3623.                                         n && (200 <= a && a < 300 ? n.put(q, [a, b, Ob(c)]) : n.remove(q));
  3624.                                         f(b, a, c);
  3625.                                         j.$apply()
  3626.                                     }
  3627.  
  3628.                                     function f(a, c, d) {
  3629.                                         c = Math.max(c, 0);
  3630.                                         (200 <= c && c < 300 ? k.resolve : k.reject)({
  3631.                                                 data: a,
  3632.                                                 status: c,
  3633.                                                 headers: Pb(d),
  3634.                                                 config: b
  3635.                                             })
  3636.                                     }
  3637.  
  3638.                                     function h() {
  3639.                                         var a = Aa(m.pendingRequests, b);
  3640.                                         a !== -1 && m.pendingRequests.splice(a, 1)
  3641.                                     }
  3642.                                     var k = i.defer(),
  3643.                                         l = k.promise,
  3644.                                         n, p, q = t(b.url, b.params);
  3645.                                     m.pendingRequests.push(b);
  3646.                                     l.then(h, h);
  3647.                                     b.cache && b.method == "GET" && (n = L(b.cache) ? b.cache : o);
  3648.                                     if (n) if (p = n.get(q)) if (p.then) return p.then(h, h), p;
  3649.                                             else E(p) ? f(p[1], p[0], V(p[2])) : f(p, 200, {});
  3650.                                             else n.put(q, l);
  3651.                                     p || a(b.method, q, c, e, d, b.timeout, b.withCredentials);
  3652.                                     return l
  3653.                                 }
  3654.  
  3655.                                 function t(a, b) {
  3656.                                     if (!b) return a;
  3657.                                     var c = [];
  3658.                                     fc(b, function (a, b) {
  3659.                                             a == null || a == q || (L(a) &&
  3660.                                                 (a = da(a)), c.push(encodeURIComponent(b) + "=" + encodeURIComponent(a)))
  3661.                                         });
  3662.                                     return a + (a.indexOf("?") == -1 ? "?" : "&") + c.join("&")
  3663.                                 }
  3664.                                 var o = c("$http"),
  3665.                                     p = [];
  3666.                                 n(e, function (a) {
  3667.                                         p.push(B(a) ? k.get(a) : k.invoke(a))
  3668.                                     });
  3669.                                 m.pendingRequests = [];
  3670.                                 (function (a) {
  3671.                                         n(arguments, function (a) {
  3672.                                                 m[a] = function (b, c) {
  3673.                                                     return m(v(c || {}, {
  3674.                                                                 method: a,
  3675.                                                                 url: b
  3676.                                                             }))
  3677.                                                 }
  3678.                                             })
  3679.                                     })("get", "delete", "head", "jsonp");
  3680.                                 (function (a) {
  3681.                                         n(arguments, function (a) {
  3682.                                                 m[a] = function (b, c, d) {
  3683.                                                     return m(v(d || {}, {
  3684.                                                                 method: a,
  3685.                                                                 url: b,
  3686.                                                                 data: c
  3687.                                                             }))
  3688.                                                 }
  3689.                                             })
  3690.                                     })("post", "put");
  3691.                                 m.defaults = d;
  3692.                                 return m
  3693.                             }
  3694.                         ]
  3695.                     }
  3696.  
  3697.                     function Wc() {
  3698.                         this.$get = ["$browser", "$window", "$document",
  3699.                             function (b, a, c) {
  3700.                                 return Xc(b, Yc, b.defer, a.angular.callbacks, c[0], a.location.protocol.replace(":", ""))
  3701.                             }
  3702.                         ]
  3703.                     }
  3704.  
  3705.                     function Xc(b, a, c, d, e, g) {
  3706.                         function h(a, b) {
  3707.                             var c = e.createElement("script"),
  3708.                                 d = function () {
  3709.                                     e.body.removeChild(c);
  3710.                                     b && b()
  3711.                                 };
  3712.                             c.type = "text/javascript";
  3713.                             c.src = a;
  3714.                             Z ? c.onreadystatechange = function () {
  3715.                                 /loaded|complete/.test(c.readyState) && d()
  3716.                             } : c.onload = c.onerror = d;
  3717.                             e.body.appendChild(c)
  3718.                         }
  3719.                         return function (e, j, i, k, m, l, t) {
  3720.                             function o(a, c, d, e) {
  3721.                                 c = (j.match(Hb) || ["", g])[1] == "file" ? d ? 200 : 404 :
  3722.                                     c;
  3723.                                 a(c == 1223 ? 204 : c, d, e);
  3724.                                 b.$$completeOutstandingRequest(w)
  3725.                             }
  3726.                             b.$$incOutstandingRequestCount();
  3727.                             j = j || b.url();
  3728.                             if (A(e) == "jsonp") {
  3729.                                 var p = "_" + (d.counter++).toString(36);
  3730.                                 d[p] = function (a) {
  3731.                                     d[p].data = a
  3732.                                 };
  3733.                                 h(j.replace("JSON_CALLBACK", "angular.callbacks." + p), function () {
  3734.                                         d[p].data ? o(k, 200, d[p].data) : o(k, -2);
  3735.                                         delete d[p]
  3736.                                     })
  3737.                             } else {
  3738.                                 var s = new a;
  3739.                                 s.open(e, j, !0);
  3740.                                 n(m, function (a, b) {
  3741.                                         a && s.setRequestHeader(b, a)
  3742.                                     });
  3743.                                 var q;
  3744.                                 s.onreadystatechange = function () {
  3745.                                     if (s.readyState == 4) {
  3746.                                         var a = s.getAllResponseHeaders(),
  3747.                                             b = ["Cache-Control", "Content-Language",
  3748.                                                 "Content-Type", "Expires", "Last-Modified", "Pragma"
  3749.                                             ];
  3750.                                         a || (a = "", n(b, function (b) {
  3751.                                                     var c = s.getResponseHeader(b);
  3752.                                                     c && (a += b + ": " + c + "\n")
  3753.                                                 }));
  3754.                                         o(k, q || s.status, s.responseText, a)
  3755.                                     }
  3756.                                 };
  3757.                                 if (t) s.withCredentials = !0;
  3758.                                 s.send(i || "");
  3759.                                 l > 0 && c(function () {
  3760.                                         q = -1;
  3761.                                         s.abort()
  3762.                                     }, l)
  3763.                             }
  3764.                         }
  3765.                     }
  3766.  
  3767.                     function Zc() {
  3768.                         this.$get = function () {
  3769.                             return {
  3770.                                 id: "en-us",
  3771.                                 NUMBER_FORMATS: {
  3772.                                     DECIMAL_SEP: ".",
  3773.                                     GROUP_SEP: ",",
  3774.                                     PATTERNS: [{
  3775.                                             minInt: 1,
  3776.                                             minFrac: 0,
  3777.                                             maxFrac: 3,
  3778.                                             posPre: "",
  3779.                                             posSuf: "",
  3780.                                             negPre: "-",
  3781.                                             negSuf: "",
  3782.                                             gSize: 3,
  3783.                                             lgSize: 3
  3784.                                         }, {
  3785.                                             minInt: 1,
  3786.                                             minFrac: 2,
  3787.                                             maxFrac: 2,
  3788.                                             posPre: "\u00a4",
  3789.                                             posSuf: "",
  3790.                                             negPre: "(\u00a4",
  3791.                                             negSuf: ")",
  3792.                                             gSize: 3,
  3793.                                             lgSize: 3
  3794.                                         }
  3795.                                     ],
  3796.                                     CURRENCY_SYM: "$"
  3797.                                 },
  3798.                                 DATETIME_FORMATS: {
  3799.                                     MONTH: "January,February,March,April,May,June,July,August,September,October,November,December".split(","),
  3800.                                     SHORTMONTH: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),
  3801.                                     DAY: "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),
  3802.                                     SHORTDAY: "Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),
  3803.                                     AMPMS: ["AM", "PM"],
  3804.                                     medium: "MMM d, y h:mm:ss a",
  3805.                                     "short": "M/d/yy h:mm a",
  3806.                                     fullDate: "EEEE, MMMM d, y",
  3807.                                     longDate: "MMMM d, y",
  3808.                                     mediumDate: "MMM d, y",
  3809.                                     shortDate: "M/d/yy",
  3810.                                     mediumTime: "h:mm:ss a",
  3811.                                     shortTime: "h:mm a"
  3812.                                 },
  3813.                                 pluralCat: function (b) {
  3814.                                     return b === 1 ? "one" : "other"
  3815.                                 }
  3816.                             }
  3817.                         }
  3818.                     }
  3819.  
  3820.                     function $c() {
  3821.                         this.$get = ["$rootScope", "$browser", "$q", "$exceptionHandler",
  3822.                             function (b, a, c, d) {
  3823.                                 function e(e, f, j) {
  3824.                                     var i = c.defer(),
  3825.                                         k = i.promise,
  3826.                                         m = y(j) && !j,
  3827.                                         f = a.defer(function () {
  3828.                                                 try {
  3829.                                                     i.resolve(e())
  3830.                                                 } catch (a) {
  3831.                                                     i.reject(a), d(a)
  3832.                                                 }
  3833.                                                 m || b.$apply()
  3834.                                             }, f),
  3835.                                         j = function () {
  3836.                                             delete g[k.$$timeoutId]
  3837.                                         };
  3838.                                     k.$$timeoutId = f;
  3839.                                     g[f] = i;
  3840.                                     k.then(j, j);
  3841.                                     return k
  3842.                                 }
  3843.                                 var g = {};
  3844.                                 e.cancel = function (b) {
  3845.                                     return b && b.$$timeoutId in g ? (g[b.$$timeoutId].reject("canceled"),
  3846.                                         a.defer.cancel(b.$$timeoutId)) : !1
  3847.                                 };
  3848.                                 return e
  3849.                             }
  3850.                         ]
  3851.                     }
  3852.  
  3853.                     function Rb(b) {
  3854.                         function a(a, e) {
  3855.                             return b.factory(a + c, e)
  3856.                         }
  3857.                         var c = "Filter";
  3858.                         this.register = a;
  3859.                         this.$get = ["$injector",
  3860.                             function (a) {
  3861.                                 return function (b) {
  3862.                                     return a.get(b + c)
  3863.                                 }
  3864.                             }
  3865.                         ];
  3866.                         a("currency", Sb);
  3867.                         a("date", Tb);
  3868.                         a("filter", ad);
  3869.                         a("json", bd);
  3870.                         a("limitTo", cd);
  3871.                         a("lowercase", dd);
  3872.                         a("number", Ub);
  3873.                         a("orderBy", Vb);
  3874.                         a("uppercase", ed)
  3875.                     }
  3876.  
  3877.                     function ad() {
  3878.                         return function (b, a) {
  3879.                             if (!E(b)) return b;
  3880.                             var c = [];
  3881.                             c.check = function (a) {
  3882.                                 for (var b = 0; b < c.length; b++) if (!c[b](a)) return !1;
  3883.                                 return !0
  3884.                             };
  3885.                             var d = function (a,
  3886.                                 b) {
  3887.                                 if (b.charAt(0) === "!") return !d(a, b.substr(1));
  3888.                                 switch (typeof a) {
  3889.                                 case "boolean":
  3890.                                 case "number":
  3891.                                 case "string":
  3892.                                     return ("" + a).toLowerCase().indexOf(b) > -1;
  3893.                                 case "object":
  3894.                                     for (var c in a) if (c.charAt(0) !== "$" && d(a[c], b)) return !0;
  3895.                                     return !1;
  3896.                                 case "array":
  3897.                                     for (c = 0; c < a.length; c++) if (d(a[c], b)) return !0;
  3898.                                     return !1;
  3899.                                 default:
  3900.                                     return !1
  3901.                                 }
  3902.                             };
  3903.                             switch (typeof a) {
  3904.                             case "boolean":
  3905.                             case "number":
  3906.                             case "string":
  3907.                                 a = {
  3908.                                     $: a
  3909.                                 };
  3910.                             case "object":
  3911.                                 for (var e in a) e == "$" ? function () {
  3912.                                         var b = ("" + a[e]).toLowerCase();
  3913.                                         b && c.push(function (a) {
  3914.                                                 return d(a, b)
  3915.                                             })
  3916.                                 }(): function () {
  3917.                                     var b =
  3918.                                         e,
  3919.                                         f = ("" + a[e]).toLowerCase();
  3920.                                     f && c.push(function (a) {
  3921.                                             return d(hb(a, b), f)
  3922.                                         })
  3923.                                 }();
  3924.                                 break;
  3925.                             case "function":
  3926.                                 c.push(a);
  3927.                                 break;
  3928.                             default:
  3929.                                 return b
  3930.                             }
  3931.                             for (var g = [], h = 0; h < b.length; h++) {
  3932.                                 var f = b[h];
  3933.                                 c.check(f) && g.push(f)
  3934.                             }
  3935.                             return g
  3936.                         }
  3937.                     }
  3938.  
  3939.                     function Sb(b) {
  3940.                         var a = b.NUMBER_FORMATS;
  3941.                         return function (b, d) {
  3942.                             if (x(d)) d = a.CURRENCY_SYM;
  3943.                             return Wb(b, a.PATTERNS[1], a.GROUP_SEP, a.DECIMAL_SEP, 2).replace(/\u00A4/g, d)
  3944.                         }
  3945.                     }
  3946.  
  3947.                     function Ub(b) {
  3948.                         var a = b.NUMBER_FORMATS;
  3949.                         return function (b, d) {
  3950.                             return Wb(b, a.PATTERNS[0], a.GROUP_SEP, a.DECIMAL_SEP, d)
  3951.                         }
  3952.                     }
  3953.  
  3954.                     function Wb(b, a, c, d,
  3955.                         e) {
  3956.                         if (isNaN(b) || !isFinite(b)) return "";
  3957.                         var g = b < 0,
  3958.                             b = Math.abs(b),
  3959.                             h = b + "",
  3960.                             f = "",
  3961.                             j = [],
  3962.                             i = !1;
  3963.                         if (h.indexOf("e") !== -1) {
  3964.                             var k = h.match(/([\d\.]+)e(-?)(\d+)/);
  3965.                             k && k[2] == "-" && k[3] > e + 1 ? h = "0" : (f = h, i = !0)
  3966.                         }
  3967.                         if (!i) {
  3968.                             h = (h.split(Xb)[1] || "").length;
  3969.                             x(e) && (e = Math.min(Math.max(a.minFrac, h), a.maxFrac));
  3970.                             var h = Math.pow(10, e),
  3971.                                 b = Math.round(b * h) / h,
  3972.                                 b = ("" + b).split(Xb),
  3973.                                 h = b[0],
  3974.                                 b = b[1] || "",
  3975.                                 i = 0,
  3976.                                 k = a.lgSize,
  3977.                                 m = a.gSize;
  3978.                             if (h.length >= k + m) for (var i = h.length - k, l = 0; l < i; l++)(i - l) % m === 0 && l !== 0 && (f += c), f += h.charAt(l);
  3979.                             for (l = i; l < h.length; l++)(h.length -
  3980.                                     l) % k === 0 && l !== 0 && (f += c), f += h.charAt(l);
  3981.                             for (; b.length < e;) b += "0";
  3982.                             e && e !== "0" && (f += d + b.substr(0, e))
  3983.                         }
  3984.                         j.push(g ? a.negPre : a.posPre);
  3985.                         j.push(f);
  3986.                         j.push(g ? a.negSuf : a.posSuf);
  3987.                         return j.join("")
  3988.                     }
  3989.  
  3990.                     function kb(b, a, c) {
  3991.                         var d = "";
  3992.                         b < 0 && (d = "-", b = -b);
  3993.                         for (b = "" + b; b.length < a;) b = "0" + b;
  3994.                         c && (b = b.substr(b.length - a));
  3995.                         return d + b
  3996.                     }
  3997.  
  3998.                     function M(b, a, c, d) {
  3999.                         return function (e) {
  4000.                             e = e["get" + b]();
  4001.                             if (c > 0 || e > -c) e += c;
  4002.                             e === 0 && c == -12 && (e = 12);
  4003.                             return kb(e, a, d)
  4004.                         }
  4005.                     }
  4006.  
  4007.                     function Ka(b, a) {
  4008.                         return function (c, d) {
  4009.                             var e = c["get" + b](),
  4010.                                 g = ma(a ? "SHORT" + b : b);
  4011.                             return d[g][e]
  4012.                         }
  4013.                     }
  4014.  
  4015.                     function Tb(b) {
  4016.                         function a(a) {
  4017.                             var b;
  4018.                             if (b = a.match(c)) {
  4019.                                 var a = new Date(0),
  4020.                                     g = 0,
  4021.                                     h = 0;
  4022.                                 b[9] && (g = G(b[9] + b[10]), h = G(b[9] + b[11]));
  4023.                                 a.setUTCFullYear(G(b[1]), G(b[2]) - 1, G(b[3]));
  4024.                                 a.setUTCHours(G(b[4] || 0) - g, G(b[5] || 0) - h, G(b[6] || 0), G(b[7] || 0))
  4025.                             }
  4026.                             return a
  4027.                         }
  4028.                         var c = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;
  4029.                         return function (c, e) {
  4030.                             var g = "",
  4031.                                 h = [],
  4032.                                 f, j, e = e || "mediumDate",
  4033.                                 e = b.DATETIME_FORMATS[e] || e;
  4034.                             B(c) && (c = fd.test(c) ? G(c) : a(c));
  4035.                             Ra(c) && (c = new Date(c));
  4036.                             if (!oa(c)) return c;
  4037.                             for (; e;)(j =
  4038.                                     gd.exec(e)) ? (h = h.concat(ha.call(j, 1)), e = h.pop()) : (h.push(e), e = null);
  4039.                             n(h, function (a) {
  4040.                                     f = hd[a];
  4041.                                     g += f ? f(c, b.DATETIME_FORMATS) : a.replace(/(^'|'$)/g, "").replace(/''/g, "'")
  4042.                                 });
  4043.                             return g
  4044.                         }
  4045.                     }
  4046.  
  4047.                     function bd() {
  4048.                         return function (b) {
  4049.                             return da(b, !0)
  4050.                         }
  4051.                     }
  4052.  
  4053.                     function cd() {
  4054.                         return function (b, a) {
  4055.                             if (!(b instanceof Array)) return b;
  4056.                             var a = G(a),
  4057.                                 c = [],
  4058.                                 d, e;
  4059.                             if (!b || !(b instanceof Array)) return c;
  4060.                             a > b.length ? a = b.length : a < -b.length && (a = -b.length);
  4061.                             a > 0 ? (d = 0, e = a) : (d = b.length + a, e = b.length);
  4062.                             for (; d < e; d++) c.push(b[d]);
  4063.                             return c
  4064.                         }
  4065.                     }
  4066.  
  4067.                     function Vb(b) {
  4068.                         return function (a,
  4069.                             c, d) {
  4070.                             function e(a, b) {
  4071.                                 return Va(b) ? function (b, c) {
  4072.                                     return a(c, b)
  4073.                                 } : a
  4074.                             }
  4075.                             if (!E(a)) return a;
  4076.                             if (!c) return a;
  4077.                             for (var c = E(c) ? c : [c], c = Sa(c, function (a) {
  4078.                                             var c = !1,
  4079.                                                 d = a || na;
  4080.                                             if (B(a)) {
  4081.                                                 if (a.charAt(0) == "+" || a.charAt(0) == "-") c = a.charAt(0) == "-", a = a.substring(1);
  4082.                                                 d = b(a)
  4083.                                             }
  4084.                                             return e(function (a, b) {
  4085.                                                     var c;
  4086.                                                     c = d(a);
  4087.                                                     var e = d(b),
  4088.                                                         f = typeof c,
  4089.                                                         g = typeof e;
  4090.                                                     f == g ? (f == "string" && (c = c.toLowerCase()), f == "string" && (e = e.toLowerCase()), c = c === e ? 0 : c < e ? -1 : 1) : c = f < g ? -1 : 1;
  4091.                                                     return c
  4092.                                                 }, c)
  4093.                                         }), g = [], h = 0; h < a.length; h++) g.push(a[h]);
  4094.                             return g.sort(e(function (a, b) {
  4095.                                         for (var d =
  4096.                                             0; d < c.length; d++) {
  4097.                                             var e = c[d](a, b);
  4098.                                             if (e !== 0) return e
  4099.                                         }
  4100.                                         return 0
  4101.                                     }, d))
  4102.                         }
  4103.                     }
  4104.  
  4105.                     function R(b) {
  4106.                         H(b) && (b = {
  4107.                                 link: b
  4108.                             });
  4109.                         b.restrict = b.restrict || "AC";
  4110.                         return I(b)
  4111.                     }
  4112.  
  4113.                     function Yb(b, a) {
  4114.                         function c(a, c) {
  4115.                             c = c ? "-" + $a(c, "-") : "";
  4116.                             b.removeClass((a ? La : Ma) + c).addClass((a ? Ma : La) + c)
  4117.                         }
  4118.                         var d = this,
  4119.                             e = b.parent().controller("form") || Na,
  4120.                             g = 0,
  4121.                             h = d.$error = {};
  4122.                         d.$name = a.name;
  4123.                         d.$dirty = !1;
  4124.                         d.$pristine = !0;
  4125.                         d.$valid = !0;
  4126.                         d.$invalid = !1;
  4127.                         e.$addControl(d);
  4128.                         b.addClass(Oa);
  4129.                         c(!0);
  4130.                         d.$addControl = function (a) {
  4131.                             a.$name && !d.hasOwnProperty(a.$name) && (d[a.$name] = a)
  4132.                         };
  4133.                         d.$removeControl = function (a) {
  4134.                             a.$name && d[a.$name] === a && delete d[a.$name];
  4135.                             n(h, function (b, c) {
  4136.                                     d.$setValidity(c, !0, a)
  4137.                                 })
  4138.                         };
  4139.                         d.$setValidity = function (a, b, i) {
  4140.                             var k = h[a];
  4141.                             if (b) {
  4142.                                 if (k && (Ta(k, i), !k.length)) {
  4143.                                     g--;
  4144.                                     if (!g) c(b), d.$valid = !0, d.$invalid = !1;
  4145.                                     h[a] = !1;
  4146.                                     c(!0, a);
  4147.                                     e.$setValidity(a, !0, d)
  4148.                                 }
  4149.                             } else {
  4150.                                 g || c(b);
  4151.                                 if (k) {
  4152.                                     if (Aa(k, i) != -1) return
  4153.                                 } else h[a] = k = [], g++, c(!1, a), e.$setValidity(a, !1, d);
  4154.                                 k.push(i);
  4155.                                 d.$valid = !1;
  4156.                                 d.$invalid = !0
  4157.                             }
  4158.                         };
  4159.                         d.$setDirty = function () {
  4160.                             b.removeClass(Oa).addClass(Zb);
  4161.                             d.$dirty = !0;
  4162.                             d.$pristine = !1;
  4163.                             e.$setDirty()
  4164.                         }
  4165.                     }
  4166.  
  4167.                     function U(b) {
  4168.                         return x(b) ||
  4169.                             b === "" || b === null || b !== b
  4170.                     }
  4171.  
  4172.                     function Pa(b, a, c, d, e, g) {
  4173.                         var h = function () {
  4174.                             var c = O(a.val());
  4175.                             d.$viewValue !== c && b.$apply(function () {
  4176.                                     d.$setViewValue(c)
  4177.                                 })
  4178.                         };
  4179.                         if (e.hasEvent("input")) a.bind("input", h);
  4180.                         else {
  4181.                             var f;
  4182.                             a.bind("keydown", function (a) {
  4183.                                     a = a.keyCode;
  4184.                                     a === 91 || 15 < a && a < 19 || 37 <= a && a <= 40 || f || (f = g.defer(function () {
  4185.                                                 h();
  4186.                                                 f = null
  4187.                                             }))
  4188.                                 });
  4189.                             a.bind("change", h)
  4190.                         }
  4191.                         d.$render = function () {
  4192.                             a.val(U(d.$viewValue) ? "" : d.$viewValue)
  4193.                         };
  4194.                         var j = c.ngPattern,
  4195.                             i = function (a, b) {
  4196.                                 return U(b) || a.test(b) ? (d.$setValidity("pattern", !0), b) : (d.$setValidity("pattern", !1), q)
  4197.                             };
  4198.                         j && (j.match(/^\/(.*)\/$/) ? (j = RegExp(j.substr(1, j.length - 2)), e = function (a) {
  4199.                                     return i(j, a)
  4200.                                 }) : e = function (a) {
  4201.                                 var c = b.$eval(j);
  4202.                                 if (!c || !c.test) throw Error("Expected " + j + " to be a RegExp but was " + c);
  4203.                                 return i(c, a)
  4204.                             }, d.$formatters.push(e), d.$parsers.push(e));
  4205.                         if (c.ngMinlength) {
  4206.                             var k = G(c.ngMinlength),
  4207.                                 e = function (a) {
  4208.                                     return !U(a) && a.length < k ? (d.$setValidity("minlength", !1), q) : (d.$setValidity("minlength", !0), a)
  4209.                                 };
  4210.                             d.$parsers.push(e);
  4211.                             d.$formatters.push(e)
  4212.                         }
  4213.                         if (c.ngMaxlength) {
  4214.                             var m = G(c.ngMaxlength),
  4215.                                 c = function (a) {
  4216.                                     return !U(a) &&
  4217.                                         a.length > m ? (d.$setValidity("maxlength", !1), q) : (d.$setValidity("maxlength", !0), a)
  4218.                                 };
  4219.                             d.$parsers.push(c);
  4220.                             d.$formatters.push(c)
  4221.                         }
  4222.                     }
  4223.  
  4224.                     function lb(b, a) {
  4225.                         b = "ngClass" + b;
  4226.                         return R(function (c, d, e) {
  4227.                                 function g(b) {
  4228.                                     if (a === !0 || c.$index % 2 === a) j && b !== j && h(j), f(b);
  4229.                                     j = b
  4230.                                 }
  4231.  
  4232.                                 function h(a) {
  4233.                                     L(a) && !E(a) && (a = Sa(a, function (a, b) {
  4234.                                                 if (a) return b
  4235.                                             }));
  4236.                                     d.removeClass(E(a) ? a.join(" ") : a)
  4237.                                 }
  4238.  
  4239.                                 function f(a) {
  4240.                                     L(a) && !E(a) && (a = Sa(a, function (a, b) {
  4241.                                                 if (a) return b
  4242.                                             }));
  4243.                                     a && d.addClass(E(a) ? a.join(" ") : a)
  4244.                                 }
  4245.                                 var j = q;
  4246.                                 c.$watch(e[b], g, !0);
  4247.                                 e.$observe("class", function () {
  4248.                                         var a =
  4249.                                             c.$eval(e[b]);
  4250.                                         g(a, a)
  4251.                                     });
  4252.                                 b !== "ngClass" && c.$watch("$index", function (d, g) {
  4253.                                         var j = d % 2;
  4254.                                         j !== g % 2 && (j == a ? f(c.$eval(e[b])) : h(c.$eval(e[b])))
  4255.                                     })
  4256.                             })
  4257.                     }
  4258.                     var A = function (b) {
  4259.                         return B(b) ? b.toLowerCase() : b
  4260.                     }, ma = function (b) {
  4261.                             return B(b) ? b.toUpperCase() : b
  4262.                         }, Z = G((/msie (\d+)/.exec(A(navigator.userAgent)) || [])[1]),
  4263.                         u, ca, ha = [].slice,
  4264.                         Qa = [].push,
  4265.                         xa = Object.prototype.toString,
  4266.                         Za = N.angular || (N.angular = {}),
  4267.                         ta, gb, aa = ["0", "0", "0"];
  4268.                     w.$inject = [];
  4269.                     na.$inject = [];
  4270.                     gb = Z < 9 ? function (b) {
  4271.                         b = b.nodeName ? b : b[0];
  4272.                         return b.scopeName && b.scopeName != "HTML" ? ma(b.scopeName +
  4273.                             ":" + b.nodeName) : b.nodeName
  4274.                     } : function (b) {
  4275.                         return b.nodeName ? b.nodeName : b[0].nodeName
  4276.                     };
  4277.                     var kc = /[A-Z]/g,
  4278.                         id = {
  4279.                             full: "1.0.6",
  4280.                             major: 1,
  4281.                             minor: 0,
  4282.                             dot: 6,
  4283.                             codeName: "universal-irreversibility"
  4284.                         }, Ca = K.cache = {}, Ba = K.expando = "ng-" + (new Date).getTime(),
  4285.                         oc = 1,
  4286.                         $b = N.document.addEventListener ? function (b, a, c) {
  4287.                             b.addEventListener(a, c, !1)
  4288.                         } : function (b, a, c) {
  4289.                             b.attachEvent("on" + a, c)
  4290.                         }, eb = N.document.removeEventListener ? function (b, a, c) {
  4291.                             b.removeEventListener(a, c, !1)
  4292.                         } : function (b, a, c) {
  4293.                             b.detachEvent("on" + a, c)
  4294.                         }, mc = /([\:\-\_]+(.))/g,
  4295.                         nc = /^moz([A-Z])/,
  4296.                         va = K.prototype = {
  4297.                             ready: function (b) {
  4298.                                 function a() {
  4299.                                     c || (c = !0, b())
  4300.                                 }
  4301.                                 var c = !1;
  4302.                                 this.bind("DOMContentLoaded", a);
  4303.                                 K(N).bind("load", a)
  4304.                             },
  4305.                             toString: function () {
  4306.                                 var b = [];
  4307.                                 n(this, function (a) {
  4308.                                         b.push("" + a)
  4309.                                     });
  4310.                                 return "[" + b.join(", ") + "]"
  4311.                             },
  4312.                             eq: function (b) {
  4313.                                 return b >= 0 ? u(this[b]) : u(this[this.length + b])
  4314.                             },
  4315.                             length: 0,
  4316.                             push: Qa,
  4317.                             sort: [].sort,
  4318.                             splice: [].splice
  4319.                         }, Fa = {};
  4320.                     n("multiple,selected,checked,disabled,readOnly,required".split(","), function (b) {
  4321.                             Fa[A(b)] = b
  4322.                         });
  4323.                     var Bb = {};
  4324.                     n("input,select,option,textarea,button,form".split(","), function (b) {
  4325.                             Bb[ma(b)] = !0
  4326.                         });
  4327.                     n({
  4328.                             data: wb,
  4329.                             inheritedData: Ea,
  4330.                             scope: function (b) {
  4331.                                 return Ea(b, "$scope")
  4332.                             },
  4333.                             controller: zb,
  4334.                             injector: function (b) {
  4335.                                 return Ea(b, "$injector")
  4336.                             },
  4337.                             removeAttr: function (b, a) {
  4338.                                 b.removeAttribute(a)
  4339.                             },
  4340.                             hasClass: Da,
  4341.                             css: function (b, a, c) {
  4342.                                 a = tb(a);
  4343.                                 if (y(c)) b.style[a] = c;
  4344.                                 else {
  4345.                                     var d;
  4346.                                     Z <= 8 && (d = b.currentStyle && b.currentStyle[a], d === "" && (d = "auto"));
  4347.                                     d = d || b.style[a];
  4348.                                     Z <= 8 && (d = d === "" ? q : d);
  4349.                                     return d
  4350.                                 }
  4351.                             },
  4352.                             attr: function (b, a, c) {
  4353.                                 var d = A(a);
  4354.                                 if (Fa[d]) if (y(c)) c ? (b[a] = !0, b.setAttribute(a, d)) : (b[a] = !1, b.removeAttribute(d));
  4355.                                     else return b[a] || (b.attributes.getNamedItem(a) ||
  4356.                                             w).specified ? d : q;
  4357.                                     else if (y(c)) b.setAttribute(a, c);
  4358.                                 else if (b.getAttribute) return b = b.getAttribute(a, 2), b === null ? q : b
  4359.                             },
  4360.                             prop: function (b, a, c) {
  4361.                                 if (y(c)) b[a] = c;
  4362.                                 else return b[a]
  4363.                             },
  4364.                             text: v(Z < 9 ? function (b, a) {
  4365.                                     if (b.nodeType == 1) {
  4366.                                         if (x(a)) return b.innerText;
  4367.                                         b.innerText = a
  4368.                                     } else {
  4369.                                         if (x(a)) return b.nodeValue;
  4370.                                         b.nodeValue = a
  4371.                                     }
  4372.                                 } : function (b, a) {
  4373.                                     if (x(a)) return b.textContent;
  4374.                                     b.textContent = a
  4375.                                 }, {
  4376.                                     $dv: ""
  4377.                                 }),
  4378.                             val: function (b, a) {
  4379.                                 if (x(a)) return b.value;
  4380.                                 b.value = a
  4381.                             },
  4382.                             html: function (b, a) {
  4383.                                 if (x(a)) return b.innerHTML;
  4384.                                 for (var c = 0, d = b.childNodes; c < d.length; c++) sa(d[c]);
  4385.                                 b.innerHTML = a
  4386.                             }
  4387.                         }, function (b, a) {
  4388.                             K.prototype[a] = function (a, d) {
  4389.                                 var e, g;
  4390.                                 if ((b.length == 2 && b !== Da && b !== zb ? a : d) === q) if (L(a)) {
  4391.                                         for (e = 0; e < this.length; e++) if (b === wb) b(this[e], a);
  4392.                                             else for (g in a) b(this[e], g, a[g]);
  4393.                                         return this
  4394.                                     } else {
  4395.                                         if (this.length) return b(this[0], a, d)
  4396.                                     } else {
  4397.                                         for (e = 0; e < this.length; e++) b(this[e], a, d);
  4398.                                         return this
  4399.                                     }
  4400.                                 return b.$dv
  4401.                             }
  4402.                         });
  4403.                     n({
  4404.                             removeData: ub,
  4405.                             dealoc: sa,
  4406.                             bind: function a(c, d, e) {
  4407.                                 var g = ba(c, "events"),
  4408.                                     h = ba(c, "handle");
  4409.                                 g || ba(c, "events", g = {});
  4410.                                 h || ba(c, "handle", h = pc(c, g));
  4411.                                 n(d.split(" "), function (d) {
  4412.                                         var j = g[d];
  4413.                                         if (!j) {
  4414.                                             if (d == "mouseenter" || d == "mouseleave") {
  4415.                                                 var i = 0;
  4416.                                                 g.mouseenter = [];
  4417.                                                 g.mouseleave = [];
  4418.                                                 a(c, "mouseover", function (a) {
  4419.                                                         i++;
  4420.                                                         i == 1 && h(a, "mouseenter")
  4421.                                                     });
  4422.                                                 a(c, "mouseout", function (a) {
  4423.                                                         i--;
  4424.                                                         i == 0 && h(a, "mouseleave")
  4425.                                                     })
  4426.                                             } else $b(c, d, h), g[d] = [];
  4427.                                             j = g[d]
  4428.                                         }
  4429.                                         j.push(e)
  4430.                                     })
  4431.                             },
  4432.                             unbind: vb,
  4433.                             replaceWith: function (a, c) {
  4434.                                 var d, e = a.parentNode;
  4435.                                 sa(a);
  4436.                                 n(new K(c), function (c) {
  4437.                                         d ? e.insertBefore(c, d.nextSibling) : e.replaceChild(c, a);
  4438.                                         d = c
  4439.                                     })
  4440.                             },
  4441.                             children: function (a) {
  4442.                                 var c = [];
  4443.                                 n(a.childNodes, function (a) {
  4444.                                         a.nodeType === 1 && c.push(a)
  4445.                                     });
  4446.                                 return c
  4447.                             },
  4448.                             contents: function (a) {
  4449.                                 return a.childNodes || []
  4450.                             },
  4451.                             append: function (a, c) {
  4452.                                 n(new K(c), function (c) {
  4453.                                         a.nodeType === 1 && a.appendChild(c)
  4454.                                     })
  4455.                             },
  4456.                             prepend: function (a, c) {
  4457.                                 if (a.nodeType === 1) {
  4458.                                     var d = a.firstChild;
  4459.                                     n(new K(c), function (c) {
  4460.                                             d ? a.insertBefore(c, d) : (a.appendChild(c), d = c)
  4461.                                         })
  4462.                                 }
  4463.                             },
  4464.                             wrap: function (a, c) {
  4465.                                 var c = u(c)[0],
  4466.                                     d = a.parentNode;
  4467.                                 d && d.replaceChild(c, a);
  4468.                                 c.appendChild(a)
  4469.                             },
  4470.                             remove: function (a) {
  4471.                                 sa(a);
  4472.                                 var c = a.parentNode;
  4473.                                 c && c.removeChild(a)
  4474.                             },
  4475.                             after: function (a, c) {
  4476.                                 var d = a,
  4477.                                     e = a.parentNode;
  4478.                                 n(new K(c), function (a) {
  4479.                                         e.insertBefore(a, d.nextSibling);
  4480.                                         d = a
  4481.                                     })
  4482.                             },
  4483.                             addClass: yb,
  4484.                             removeClass: xb,
  4485.                             toggleClass: function (a, c, d) {
  4486.                                 x(d) && (d = !Da(a, c));
  4487.                                 (d ? yb : xb)(a, c)
  4488.                             },
  4489.                             parent: function (a) {
  4490.                                 return (a = a.parentNode) && a.nodeType !== 11 ? a : null
  4491.                             },
  4492.                             next: function (a) {
  4493.                                 if (a.nextElementSibling) return a.nextElementSibling;
  4494.                                 for (a = a.nextSibling; a != null && a.nodeType !== 1;) a = a.nextSibling;
  4495.                                 return a
  4496.                             },
  4497.                             find: function (a, c) {
  4498.                                 return a.getElementsByTagName(c)
  4499.                             },
  4500.                             clone: db,
  4501.                             triggerHandler: function (a, c) {
  4502.                                 var d = (ba(a, "events") || {})[c];
  4503.                                 n(d, function (c) {
  4504.                                         c.call(a, null)
  4505.                                     })
  4506.                             }
  4507.                         }, function (a, c) {
  4508.                             K.prototype[c] = function (c, e) {
  4509.                                 for (var g, h = 0; h < this.length; h++) g ==
  4510.                                         q ? (g = a(this[h], c, e), g !== q && (g = u(g))) : cb(g, a(this[h], c, e));
  4511.                                 return g == q ? this : g
  4512.                             }
  4513.                         });
  4514.                     Ga.prototype = {
  4515.                         put: function (a, c) {
  4516.                             this[fa(a)] = c
  4517.                         },
  4518.                         get: function (a) {
  4519.                             return this[fa(a)]
  4520.                         },
  4521.                         remove: function (a) {
  4522.                             var c = this[a = fa(a)];
  4523.                             delete this[a];
  4524.                             return c
  4525.                         }
  4526.                     };
  4527.                     fb.prototype = {
  4528.                         push: function (a, c) {
  4529.                             var d = this[a = fa(a)];
  4530.                             d ? d.push(c) : this[a] = [c]
  4531.                         },
  4532.                         shift: function (a) {
  4533.                             var c = this[a = fa(a)];
  4534.                             if (c) return c.length == 1 ? (delete this[a], c[0]) : c.shift()
  4535.                         },
  4536.                         peek: function (a) {
  4537.                             if (a = this[fa(a)]) return a[0]
  4538.                         }
  4539.                     };
  4540.                     var rc = /^function\s*[^\(]*\(\s*([^\)]*)\)/m,
  4541.                         sc = /,/,
  4542.                         tc =
  4543.                             /^\s*(_?)(\S+?)\1\s*$/,
  4544.                         qc = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,
  4545.                         Eb = "Non-assignable model expression: ";
  4546.                     Db.$inject = ["$provide"];
  4547.                     var Ac = /^(x[\:\-_]|data[\:\-_])/i,
  4548.                         Hb = /^([^:]+):\/\/(\w+:{0,1}\w*@)?(\{?[\w\.-]*\}?)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,
  4549.                         ac = /^([^\?#]*)?(\?([^#]*))?(#(.*))?$/,
  4550.                         Hc = ac,
  4551.                         Ib = {
  4552.                             http: 80,
  4553.                             https: 443,
  4554.                             ftp: 21
  4555.                         };
  4556.                     ib.prototype = {
  4557.                         $$replace: !1,
  4558.                         absUrl: Ia("$$absUrl"),
  4559.                         url: function (a, c) {
  4560.                             if (x(a)) return this.$$url;
  4561.                             var d = ac.exec(a);
  4562.                             d[1] && this.path(decodeURIComponent(d[1]));
  4563.                             if (d[2] || d[1]) this.search(d[3] ||
  4564.                                     "");
  4565.                             this.hash(d[5] || "", c);
  4566.                             return this
  4567.                         },
  4568.                         protocol: Ia("$$protocol"),
  4569.                         host: Ia("$$host"),
  4570.                         port: Ia("$$port"),
  4571.                         path: Kb("$$path", function (a) {
  4572.                                 return a.charAt(0) == "/" ? a : "/" + a
  4573.                             }),
  4574.                         search: function (a, c) {
  4575.                             if (x(a)) return this.$$search;
  4576.                             y(c) ? c === null ? delete this.$$search[a] : this.$$search[a] = c : this.$$search = B(a) ? Wa(a) : a;
  4577.                             this.$$compose();
  4578.                             return this
  4579.                         },
  4580.                         hash: Kb("$$hash", na),
  4581.                         replace: function () {
  4582.                             this.$$replace = !0;
  4583.                             return this
  4584.                         }
  4585.                     };
  4586.                     Ha.prototype = za(ib.prototype);
  4587.                     Jb.prototype = za(Ha.prototype);
  4588.                     var Ja = {
  4589.                         "null": function () {
  4590.                             return null
  4591.                         },
  4592.                         "true": function () {
  4593.                             return !0
  4594.                         },
  4595.                         "false": function () {
  4596.                             return !1
  4597.                         },
  4598.                         undefined: w,
  4599.                         "+": function (a, c, d, e) {
  4600.                             d = d(a, c);
  4601.                             e = e(a, c);
  4602.                             return y(d) ? y(e) ? d + e : d : y(e) ? e : q
  4603.                         },
  4604.                         "-": function (a, c, d, e) {
  4605.                             d = d(a, c);
  4606.                             e = e(a, c);
  4607.                             return (y(d) ? d : 0) - (y(e) ? e : 0)
  4608.                         },
  4609.                         "*": function (a, c, d, e) {
  4610.                             return d(a, c) * e(a, c)
  4611.                         },
  4612.                         "/": function (a, c, d, e) {
  4613.                             return d(a, c) / e(a, c)
  4614.                         },
  4615.                         "%": function (a, c, d, e) {
  4616.                             return d(a, c) % e(a, c)
  4617.                         },
  4618.                         "^": function (a, c, d, e) {
  4619.                             return d(a, c) ^ e(a, c)
  4620.                         },
  4621.                         "=": w,
  4622.                         "==": function (a, c, d, e) {
  4623.                             return d(a, c) == e(a, c)
  4624.                         },
  4625.                         "!=": function (a, c, d, e) {
  4626.                             return d(a, c) != e(a, c)
  4627.                         },
  4628.                         "<": function (a, c, d, e) {
  4629.                             return d(a, c) < e(a, c)
  4630.                         },
  4631.                         ">": function (a, c, d, e) {
  4632.                             return d(a, c) > e(a, c)
  4633.                         },
  4634.                         "<=": function (a, c, d, e) {
  4635.                             return d(a, c) <= e(a, c)
  4636.                         },
  4637.                         ">=": function (a, c, d, e) {
  4638.                             return d(a, c) >= e(a, c)
  4639.                         },
  4640.                         "&&": function (a, c, d, e) {
  4641.                             return d(a, c) && e(a, c)
  4642.                         },
  4643.                         "||": function (a, c, d, e) {
  4644.                             return d(a, c) || e(a, c)
  4645.                         },
  4646.                         "&": function (a, c, d, e) {
  4647.                             return d(a, c) & e(a, c)
  4648.                         },
  4649.                         "|": function (a, c, d, e) {
  4650.                             return e(a, c)(a, c, d(a, c))
  4651.                         },
  4652.                         "!": function (a, c, d) {
  4653.                             return !d(a, c)
  4654.                         }
  4655.                     }, Lc = {
  4656.                             n: "\n",
  4657.                             f: "\u000c",
  4658.                             r: "\r",
  4659.                             t: "\t",
  4660.                             v: "\u000b",
  4661.                             "'": "'",
  4662.                             '"': '"'
  4663.                         }, jb = {}, Yc = N.XMLHttpRequest || function () {
  4664.                             try {
  4665.                                 return new ActiveXObject("Msxml2.XMLHTTP.6.0")
  4666.                             } catch (a) {}
  4667.                             try {
  4668.                                 return new ActiveXObject("Msxml2.XMLHTTP.3.0")
  4669.                             } catch (c) {}
  4670.                             try {
  4671.                                 return new ActiveXObject("Msxml2.XMLHTTP")
  4672.                             } catch (d) {}
  4673.                             throw Error("This browser does not support XMLHttpRequest.");
  4674.                         };
  4675.                     Rb.$inject = ["$provide"];
  4676.                     Sb.$inject = ["$locale"];
  4677.                     Ub.$inject = ["$locale"];
  4678.                     var Xb = ".",
  4679.                         hd = {
  4680.                             yyyy: M("FullYear", 4),
  4681.                             yy: M("FullYear", 2, 0, !0),
  4682.                             y: M("FullYear", 1),
  4683.                             MMMM: Ka("Month"),
  4684.                             MMM: Ka("Month", !0),
  4685.                             MM: M("Month", 2, 1),
  4686.                             M: M("Month", 1, 1),
  4687.                             dd: M("Date", 2),
  4688.                             d: M("Date", 1),
  4689.                             HH: M("Hours", 2),
  4690.                             H: M("Hours", 1),
  4691.                             hh: M("Hours", 2, -12),
  4692.                             h: M("Hours", 1, -12),
  4693.                             mm: M("Minutes", 2),
  4694.                             m: M("Minutes", 1),
  4695.                             ss: M("Seconds", 2),
  4696.                             s: M("Seconds", 1),
  4697.                             EEEE: Ka("Day"),
  4698.                             EEE: Ka("Day", !0),
  4699.                             a: function (a, c) {
  4700.                                 return a.getHours() < 12 ? c.AMPMS[0] : c.AMPMS[1]
  4701.                             },
  4702.                             Z: function (a) {
  4703.                                 var a = -1 * a.getTimezoneOffset(),
  4704.                                     c = a >= 0 ? "+" : "";
  4705.                                 c += kb(Math[a > 0 ? "floor" : "ceil"](a / 60), 2) + kb(Math.abs(a % 60), 2);
  4706.                                 return c
  4707.                             }
  4708.                         }, gd = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,
  4709.                         fd = /^\d+$/;
  4710.                     Tb.$inject = ["$locale"];
  4711.                     var dd = I(A),
  4712.                         ed = I(ma);
  4713.                     Vb.$inject = ["$parse"];
  4714.                     var jd = I({
  4715.                             restrict: "E",
  4716.                             compile: function (a, c) {
  4717.                                 Z <= 8 && (!c.href && !c.name && c.$set("href", ""), a.append(Y.createComment("IE fix")));
  4718.                                 return function (a, c) {
  4719.                                     c.bind("click", function (a) {
  4720.                                             c.attr("href") || a.preventDefault()
  4721.                                         })
  4722.                                 }
  4723.                             }
  4724.                         }),
  4725.                         mb = {};
  4726.                     n(Fa, function (a,
  4727.                             c) {
  4728.                             var d = ea("ng-" + c);
  4729.                             mb[d] = function () {
  4730.                                 return {
  4731.                                     priority: 100,
  4732.                                     compile: function () {
  4733.                                         return function (a, g, h) {
  4734.                                             a.$watch(h[d], function (a) {
  4735.                                                     h.$set(c, !! a)
  4736.                                                 })
  4737.                                         }
  4738.                                     }
  4739.                                 }
  4740.                             }
  4741.                         });
  4742.                     n(["src", "href"], function (a) {
  4743.                             var c = ea("ng-" + a);
  4744.                             mb[c] = function () {
  4745.                                 return {
  4746.                                     priority: 99,
  4747.                                     link: function (d, e, g) {
  4748.                                         g.$observe(c, function (c) {
  4749.                                                 c && (g.$set(a, c), Z && e.prop(a, g[a]))
  4750.                                             })
  4751.                                     }
  4752.                                 }
  4753.                             }
  4754.                         });
  4755.                     var Na = {
  4756.                         $addControl: w,
  4757.                         $removeControl: w,
  4758.                         $setValidity: w,
  4759.                         $setDirty: w
  4760.                     };
  4761.                     Yb.$inject = ["$element", "$attrs", "$scope"];
  4762.                     var Qa = function (a) {
  4763.                         return ["$timeout", function (c) {
  4764.                             var d = {
  4765.                                 name: "form",
  4766.                                 restrict: "E",
  4767.                                 controller: Yb,
  4768.                                 compile: function () {
  4769.                                     return {
  4770.                                         pre: function (a, d, h, f) {
  4771.                                             if (!h.action) {
  4772.                                                 var j = function (a) {
  4773.                                                     a.preventDefault ? a.preventDefault() : a.returnValue = !1
  4774.                                                 };
  4775.                                                 $b(d[0], "submit", j);
  4776.                                                 d.bind("$destroy", function () {
  4777.                                                         c(function () {
  4778.                                                                 eb(d[0], "submit", j)
  4779.                                                             }, 0, !1)
  4780.                                                     })
  4781.                                             }
  4782.                                             var i = d.parent().controller("form"),
  4783.                                                 k = h.name || h.ngForm;
  4784.                                             k && (a[k] = f);
  4785.                                             i && d.bind("$destroy", function () {
  4786.                                                     i.$removeControl(f);
  4787.                                                     k && (a[k] = q);
  4788.                                                     v(f, Na)
  4789.                                                 })
  4790.                                         }
  4791.                                     }
  4792.                                 }
  4793.                             };
  4794.                             return a ? v(V(d), {
  4795.                                     restrict: "EAC"
  4796.                                 }) : d
  4797.                         }]
  4798.                     }, kd = Qa(),
  4799.                         ld = Qa(!0),
  4800.                         md = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,
  4801.                         nd = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,
  4802.                         od = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,
  4803.                         bc = {
  4804.                             text: Pa,
  4805.                             number: function (a, c, d, e, g, h) {
  4806.                                 Pa(a, c, d, e, g, h);
  4807.                                 e.$parsers.push(function (a) {
  4808.                                         var c = U(a);
  4809.                                         return c || od.test(a) ? (e.$setValidity("number", !0), a === "" ? null : c ? a : parseFloat(a)) : (e.$setValidity("number", !1), q)
  4810.                                     });
  4811.                                 e.$formatters.push(function (a) {
  4812.                                         return U(a) ? "" : "" + a
  4813.                                     });
  4814.                                 if (d.min) {
  4815.                                     var f = parseFloat(d.min),
  4816.                                         a = function (a) {
  4817.                                             return !U(a) && a < f ? (e.$setValidity("min", !1), q) : (e.$setValidity("min", !0), a)
  4818.                                         };
  4819.                                     e.$parsers.push(a);
  4820.                                     e.$formatters.push(a)
  4821.                                 }
  4822.                                 if (d.max) {
  4823.                                     var j = parseFloat(d.max),
  4824.                                         d = function (a) {
  4825.                                             return !U(a) && a > j ? (e.$setValidity("max", !1), q) : (e.$setValidity("max", !0), a)
  4826.                                         };
  4827.                                     e.$parsers.push(d);
  4828.                                     e.$formatters.push(d)
  4829.                                 }
  4830.                                 e.$formatters.push(function (a) {
  4831.                                         return U(a) || Ra(a) ? (e.$setValidity("number", !0), a) : (e.$setValidity("number", !1), q)
  4832.                                     })
  4833.                             },
  4834.                             url: function (a, c, d, e, g, h) {
  4835.                                 Pa(a, c, d, e, g, h);
  4836.                                 a = function (a) {
  4837.                                     return U(a) || md.test(a) ? (e.$setValidity("url", !0), a) : (e.$setValidity("url", !1), q)
  4838.                                 };
  4839.                                 e.$formatters.push(a);
  4840.                                 e.$parsers.push(a)
  4841.                             },
  4842.                             email: function (a,
  4843.                                 c, d, e, g, h) {
  4844.                                 Pa(a, c, d, e, g, h);
  4845.                                 a = function (a) {
  4846.                                     return U(a) || nd.test(a) ? (e.$setValidity("email", !0), a) : (e.$setValidity("email", !1), q)
  4847.                                 };
  4848.                                 e.$formatters.push(a);
  4849.                                 e.$parsers.push(a)
  4850.                             },
  4851.                             radio: function (a, c, d, e) {
  4852.                                 x(d.name) && c.attr("name", ya());
  4853.                                 c.bind("click", function () {
  4854.                                         c[0].checked && a.$apply(function () {
  4855.                                                 e.$setViewValue(d.value)
  4856.                                             })
  4857.                                     });
  4858.                                 e.$render = function () {
  4859.                                     c[0].checked = d.value == e.$viewValue
  4860.                                 };
  4861.                                 d.$observe("value", e.$render)
  4862.                             },
  4863.                             checkbox: function (a, c, d, e) {
  4864.                                 var g = d.ngTrueValue,
  4865.                                     h = d.ngFalseValue;
  4866.                                 B(g) || (g = !0);
  4867.                                 B(h) || (h = !1);
  4868.                                 c.bind("click", function () {
  4869.                                         a.$apply(function () {
  4870.                                                 e.$setViewValue(c[0].checked)
  4871.                                             })
  4872.                                     });
  4873.                                 e.$render = function () {
  4874.                                     c[0].checked = e.$viewValue
  4875.                                 };
  4876.                                 e.$formatters.push(function (a) {
  4877.                                         return a === g
  4878.                                     });
  4879.                                 e.$parsers.push(function (a) {
  4880.                                         return a ? g : h
  4881.                                     })
  4882.                             },
  4883.                             hidden: w,
  4884.                             button: w,
  4885.                             submit: w,
  4886.                             reset: w
  4887.                         }, cc = ["$browser", "$sniffer",
  4888.                             function (a, c) {
  4889.                                 return {
  4890.                                     restrict: "E",
  4891.                                     require: "?ngModel",
  4892.                                     link: function (d, e, g, h) {
  4893.                                         h && (bc[A(g.type)] || bc.text)(d, e, g, h, c, a)
  4894.                                     }
  4895.                                 }
  4896.                             }
  4897.                         ],
  4898.                         Ma = "ng-valid",
  4899.                         La = "ng-invalid",
  4900.                         Oa = "ng-pristine",
  4901.                         Zb = "ng-dirty",
  4902.                         pd = ["$scope", "$exceptionHandler", "$attrs", "$element", "$parse",
  4903.                             function (a, c, d, e, g) {
  4904.                                 function h(a, c) {
  4905.                                     c = c ? "-" + $a(c, "-") : "";
  4906.                                     e.removeClass((a ? La : Ma) + c).addClass((a ? Ma : La) + c)
  4907.                                 }
  4908.                                 this.$modelValue = this.$viewValue = Number.NaN;
  4909.                                 this.$parsers = [];
  4910.                                 this.$formatters = [];
  4911.                                 this.$viewChangeListeners = [];
  4912.                                 this.$pristine = !0;
  4913.                                 this.$dirty = !1;
  4914.                                 this.$valid = !0;
  4915.                                 this.$invalid = !1;
  4916.                                 this.$name = d.name;
  4917.                                 var f = g(d.ngModel),
  4918.                                     j = f.assign;
  4919.                                 if (!j) throw Error(Eb + d.ngModel + " (" + qa(e) + ")");
  4920.                                 this.$render = w;
  4921.                                 var i = e.inheritedData("$formController") || Na,
  4922.                                     k = 0,
  4923.                                     m = this.$error = {};
  4924.                                 e.addClass(Oa);
  4925.                                 h(!0);
  4926.                                 this.$setValidity = function (a,
  4927.                                     c) {
  4928.                                     if (m[a] !== !c) {
  4929.                                         if (c) {
  4930.                                             if (m[a] && k--, !k) h(!0), this.$valid = !0, this.$invalid = !1
  4931.                                         } else h(!1), this.$invalid = !0, this.$valid = !1, k++;
  4932.                                         m[a] = !c;
  4933.                                         h(c, a);
  4934.                                         i.$setValidity(a, c, this)
  4935.                                     }
  4936.                                 };
  4937.                                 this.$setViewValue = function (d) {
  4938.                                     this.$viewValue = d;
  4939.                                     if (this.$pristine) this.$dirty = !0, this.$pristine = !1, e.removeClass(Oa).addClass(Zb), i.$setDirty();
  4940.                                     n(this.$parsers, function (a) {
  4941.                                             d = a(d)
  4942.                                         });
  4943.                                     if (this.$modelValue !== d) this.$modelValue = d, j(a, d), n(this.$viewChangeListeners, function (a) {
  4944.                                                 try {
  4945.                                                     a()
  4946.                                                 } catch (d) {
  4947.                                                     c(d)
  4948.                                                 }
  4949.                                             })
  4950.                                 };
  4951.                                 var l = this;
  4952.                                 a.$watch(function () {
  4953.                                         var c =
  4954.                                             f(a);
  4955.                                         if (l.$modelValue !== c) {
  4956.                                             var d = l.$formatters,
  4957.                                                 e = d.length;
  4958.                                             for (l.$modelValue = c; e--;) c = d[e](c);
  4959.                                             if (l.$viewValue !== c) l.$viewValue = c, l.$render()
  4960.                                         }
  4961.                                     })
  4962.                             }
  4963.                         ],
  4964.                         qd = function () {
  4965.                             return {
  4966.                                 require: ["ngModel", "^?form"],
  4967.                                 controller: pd,
  4968.                                 link: function (a, c, d, e) {
  4969.                                     var g = e[0],
  4970.                                         h = e[1] || Na;
  4971.                                     h.$addControl(g);
  4972.                                     c.bind("$destroy", function () {
  4973.                                             h.$removeControl(g)
  4974.                                         })
  4975.                                 }
  4976.                             }
  4977.                         }, rd = I({
  4978.                                 require: "ngModel",
  4979.                                 link: function (a, c, d, e) {
  4980.                                     e.$viewChangeListeners.push(function () {
  4981.                                             a.$eval(d.ngChange)
  4982.                                         })
  4983.                                 }
  4984.                             }),
  4985.                         dc = function () {
  4986.                             return {
  4987.                                 require: "?ngModel",
  4988.                                 link: function (a, c, d, e) {
  4989.                                     if (e) {
  4990.                                         d.required = !0;
  4991.                                         var g = function (a) {
  4992.                                             if (d.required && (U(a) || a === !1)) e.$setValidity("required", !1);
  4993.                                             else return e.$setValidity("required", !0), a
  4994.                                         };
  4995.                                         e.$formatters.push(g);
  4996.                                         e.$parsers.unshift(g);
  4997.                                         d.$observe("required", function () {
  4998.                                                 g(e.$viewValue)
  4999.                                             })
  5000.                                     }
  5001.                                 }
  5002.                             }
  5003.                         }, sd = function () {
  5004.                             return {
  5005.                                 require: "ngModel",
  5006.                                 link: function (a, c, d, e) {
  5007.                                     var g = (a = /\/(.*)\//.exec(d.ngList)) && RegExp(a[1]) || d.ngList || ",";
  5008.                                     e.$parsers.push(function (a) {
  5009.                                             var c = [];
  5010.                                             a && n(a.split(g), function (a) {
  5011.                                                     a && c.push(O(a))
  5012.                                                 });
  5013.                                             return c
  5014.                                         });
  5015.                                     e.$formatters.push(function (a) {
  5016.                                             return E(a) ? a.join(", ") :
  5017.                                                 q
  5018.                                         })
  5019.                                 }
  5020.                             }
  5021.                         }, td = /^(true|false|\d+)$/,
  5022.                         ud = function () {
  5023.                             return {
  5024.                                 priority: 100,
  5025.                                 compile: function (a, c) {
  5026.                                     return td.test(c.ngValue) ? function (a, c, g) {
  5027.                                         g.$set("value", a.$eval(g.ngValue))
  5028.                                     } : function (a, c, g) {
  5029.                                         a.$watch(g.ngValue, function (a) {
  5030.                                                 g.$set("value", a, !1)
  5031.                                             })
  5032.                                     }
  5033.                                 }
  5034.                             }
  5035.                         }, vd = R(function (a, c, d) {
  5036.                                 c.addClass("ng-binding").data("$binding", d.ngBind);
  5037.                                 a.$watch(d.ngBind, function (a) {
  5038.                                         c.text(a == q ? "" : a)
  5039.                                     })
  5040.                             }),
  5041.                         wd = ["$interpolate",
  5042.                             function (a) {
  5043.                                 return function (c, d, e) {
  5044.                                     c = a(d.attr(e.$attr.ngBindTemplate));
  5045.                                     d.addClass("ng-binding").data("$binding", c);
  5046.                                     e.$observe("ngBindTemplate", function (a) {
  5047.                                             d.text(a)
  5048.                                         })
  5049.                                 }
  5050.                             }
  5051.                         ],
  5052.                         xd = [
  5053.                             function () {
  5054.                                 return function (a, c, d) {
  5055.                                     c.addClass("ng-binding").data("$binding", d.ngBindHtmlUnsafe);
  5056.                                     a.$watch(d.ngBindHtmlUnsafe, function (a) {
  5057.                                             c.html(a || "")
  5058.                                         })
  5059.                                 }
  5060.                             }
  5061.                         ],
  5062.                         yd = lb("", !0),
  5063.                         zd = lb("Odd", 0),
  5064.                         Ad = lb("Even", 1),
  5065.                         Bd = R({
  5066.                                 compile: function (a, c) {
  5067.                                     c.$set("ngCloak", q);
  5068.                                     a.removeClass("ng-cloak")
  5069.                                 }
  5070.                             }),
  5071.                         Cd = [
  5072.                             function () {
  5073.                                 return {
  5074.                                     scope: !0,
  5075.                                     controller: "@"
  5076.                                 }
  5077.                             }
  5078.                         ],
  5079.                         Dd = ["$sniffer",
  5080.                             function (a) {
  5081.                                 return {
  5082.                                     priority: 1E3,
  5083.                                     compile: function () {
  5084.                                         a.csp = !0
  5085.                                     }
  5086.                                 }
  5087.                             }
  5088.                         ],
  5089.                         ec = {};
  5090.                     n("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave".split(" "), function (a) {
  5091.                             var c = ea("ng-" + a);
  5092.                             ec[c] = ["$parse",
  5093.                                 function (d) {
  5094.                                     return function (e, g, h) {
  5095.                                         var f = d(h[c]);
  5096.                                         g.bind(A(a), function (a) {
  5097.                                                 e.$apply(function () {
  5098.                                                         f(e, {
  5099.                                                                 $event: a
  5100.                                                             })
  5101.                                                     })
  5102.                                             })
  5103.                                     }
  5104.                                 }
  5105.                             ]
  5106.                         });
  5107.                     var Ed = R(function (a, c, d) {
  5108.                             c.bind("submit", function () {
  5109.                                     a.$apply(d.ngSubmit)
  5110.                                 })
  5111.                         }),
  5112.                         Fd = ["$http", "$templateCache", "$anchorScroll", "$compile",
  5113.                             function (a, c, d, e) {
  5114.                                 return {
  5115.                                     restrict: "ECA",
  5116.                                     terminal: !0,
  5117.                                     compile: function (g, h) {
  5118.                                         var f = h.ngInclude || h.src,
  5119.                                             j = h.onload || "",
  5120.                                             i = h.autoscroll;
  5121.                                         return function (g, h) {
  5122.                                             var l = 0,
  5123.                                                 n, o = function () {
  5124.                                                     n && (n.$destroy(), n = null);
  5125.                                                     h.html("")
  5126.                                                 };
  5127.                                             g.$watch(f, function (f) {
  5128.                                                     var s = ++l;
  5129.                                                     f ? a.get(f, {
  5130.                                                             cache: c
  5131.                                                         }).success(function (a) {
  5132.                                                             s === l && (n && n.$destroy(), n = g.$new(), h.html(a), e(h.contents())(n), y(i) && (!i || g.$eval(i)) && d(), n.$emit("$includeContentLoaded"), g.$eval(j))
  5133.                                                         }).error(function () {
  5134.                                                             s === l && o()
  5135.                                                         }) : o()
  5136.                                                 })
  5137.                                         }
  5138.                                     }
  5139.                                 }
  5140.                             }
  5141.                         ],
  5142.                         Gd = R({
  5143.                                 compile: function () {
  5144.                                     return {
  5145.                                         pre: function (a, c, d) {
  5146.                                             a.$eval(d.ngInit)
  5147.                                         }
  5148.                                     }
  5149.                                 }
  5150.                             }),
  5151.                         Hd = R({
  5152.                                 terminal: !0,
  5153.                                 priority: 1E3
  5154.                             }),
  5155.                         Id = ["$locale", "$interpolate",
  5156.                             function (a, c) {
  5157.                                 var d = /{}/g;
  5158.                                 return {
  5159.                                     restrict: "EA",
  5160.                                     link: function (e, g, h) {
  5161.                                         var f = h.count,
  5162.                                             j = g.attr(h.$attr.when),
  5163.                                             i = h.offset ||
  5164.                                                 0,
  5165.                                             k = e.$eval(j),
  5166.                                             m = {}, l = c.startSymbol(),
  5167.                                             t = c.endSymbol();
  5168.                                         n(k, function (a, e) {
  5169.                                                 m[e] = c(a.replace(d, l + f + "-" + i + t))
  5170.                                             });
  5171.                                         e.$watch(function () {
  5172.                                                 var c = parseFloat(e.$eval(f));
  5173.                                                 return isNaN(c) ? "" : (k[c] || (c = a.pluralCat(c - i)), m[c](e, g, !0))
  5174.                                             }, function (a) {
  5175.                                                 g.text(a)
  5176.                                             })
  5177.                                     }
  5178.                                 }
  5179.                             }
  5180.                         ],
  5181.                         Jd = R({
  5182.                                 transclude: "element",
  5183.                                 priority: 1E3,
  5184.                                 terminal: !0,
  5185.                                 compile: function (a, c, d) {
  5186.                                     return function (a, c, h) {
  5187.                                         var f = h.ngRepeat,
  5188.                                             h = f.match(/^\s*(.+)\s+in\s+(.*)\s*$/),
  5189.                                             j, i, k;
  5190.                                         if (!h) throw Error("Expected ngRepeat in form of '_item_ in _collection_' but got '" + f + "'.");
  5191.                                         f = h[1];
  5192.                                         j = h[2];
  5193.                                         h = f.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);
  5194.                                         if (!h) throw Error("'item' in 'item in collection' should be identifier or (key, value) but got '" + f + "'.");
  5195.                                         i = h[3] || h[1];
  5196.                                         k = h[2];
  5197.                                         var m = new fb;
  5198.                                         a.$watch(function (a) {
  5199.                                                 var e, f, h = a.$eval(j),
  5200.                                                     n = c,
  5201.                                                     q = new fb,
  5202.                                                     y, z, u, x, r, v;
  5203.                                                 if (E(h)) r = h || [];
  5204.                                                 else {
  5205.                                                     r = [];
  5206.                                                     for (u in h) h.hasOwnProperty(u) && u.charAt(0) != "$" && r.push(u);
  5207.                                                     r.sort()
  5208.                                                 }
  5209.                                                 y = r.length - 1;
  5210.                                                 e = 0;
  5211.                                                 for (f = r.length; e < f; e++) {
  5212.                                                     u = h === r ? e : r[e];
  5213.                                                     x = h[u];
  5214.                                                     if (v = m.shift(x)) {
  5215.                                                         z = v.scope;
  5216.                                                         q.push(x, v);
  5217.                                                         if (e !== v.index) v.index = e, n.after(v.element);
  5218.                                                         n = v.element
  5219.                                                     } else z = a.$new();
  5220.                                                     z[i] = x;
  5221.                                                     k && (z[k] = u);
  5222.                                                     z.$index = e;
  5223.                                                     z.$first = e === 0;
  5224.                                                     z.$last = e === y;
  5225.                                                     z.$middle = !(z.$first || z.$last);
  5226.                                                     v || d(z, function (a) {
  5227.                                                             n.after(a);
  5228.                                                             v = {
  5229.                                                                 scope: z,
  5230.                                                                 element: n = a,
  5231.                                                                 index: e
  5232.                                                             };
  5233.                                                             q.push(x, v)
  5234.                                                         })
  5235.                                                 }
  5236.                                                 for (u in m) if (m.hasOwnProperty(u)) for (r = m[u]; r.length;) x = r.pop(), x.element.remove(), x.scope.$destroy();
  5237.                                                 m = q
  5238.                                             })
  5239.                                     }
  5240.                                 }
  5241.                             }),
  5242.                         Kd = R(function (a, c, d) {
  5243.                                 a.$watch(d.ngShow, function (a) {
  5244.                                         c.css("display", Va(a) ? "" : "none")
  5245.                                     })
  5246.                             }),
  5247.                         Ld = R(function (a, c, d) {
  5248.                                 a.$watch(d.ngHide, function (a) {
  5249.                                         c.css("display", Va(a) ? "none" : "")
  5250.                                     })
  5251.                             }),
  5252.                         Md = R(function (a, c,
  5253.                                 d) {
  5254.                                 a.$watch(d.ngStyle, function (a, d) {
  5255.                                         d && a !== d && n(d, function (a, d) {
  5256.                                                 c.css(d, "")
  5257.                                             });
  5258.                                         a && c.css(a)
  5259.                                     }, !0)
  5260.                             }),
  5261.                         Nd = I({
  5262.                                 restrict: "EA",
  5263.                                 require: "ngSwitch",
  5264.                                 controller: ["$scope",
  5265.                                     function () {
  5266.                                         this.cases = {}
  5267.                                     }
  5268.                                 ],
  5269.                                 link: function (a, c, d, e) {
  5270.                                     var g, h, f;
  5271.                                     a.$watch(d.ngSwitch || d.on, function (j) {
  5272.                                             h && (f.$destroy(), h.remove(), h = f = null);
  5273.                                             if (g = e.cases["!" + j] || e.cases["?"]) a.$eval(d.change), f = a.$new(), g(f, function (a) {
  5274.                                                         h = a;
  5275.                                                         c.append(a)
  5276.                                                     })
  5277.                                         })
  5278.                                 }
  5279.                             }),
  5280.                         Od = R({
  5281.                                 transclude: "element",
  5282.                                 priority: 500,
  5283.                                 require: "^ngSwitch",
  5284.                                 compile: function (a, c, d) {
  5285.                                     return function (a, g, h,
  5286.                                         f) {
  5287.                                         f.cases["!" + c.ngSwitchWhen] = d
  5288.                                     }
  5289.                                 }
  5290.                             }),
  5291.                         Pd = R({
  5292.                                 transclude: "element",
  5293.                                 priority: 500,
  5294.                                 require: "^ngSwitch",
  5295.                                 compile: function (a, c, d) {
  5296.                                     return function (a, c, h, f) {
  5297.                                         f.cases["?"] = d
  5298.                                     }
  5299.                                 }
  5300.                             }),
  5301.                         Qd = R({
  5302.                                 controller: ["$transclude", "$element",
  5303.                                     function (a, c) {
  5304.                                         a(function (a) {
  5305.                                                 c.append(a)
  5306.                                             })
  5307.                                     }
  5308.                                 ]
  5309.                             }),
  5310.                         Rd = ["$http", "$templateCache", "$route", "$anchorScroll", "$compile", "$controller",
  5311.                             function (a, c, d, e, g, h) {
  5312.                                 return {
  5313.                                     restrict: "ECA",
  5314.                                     terminal: !0,
  5315.                                     link: function (a, c, i) {
  5316.                                         function k() {
  5317.                                             var i = d.current && d.current.locals,
  5318.                                                 k = i && i.$template;
  5319.                                             if (k) {
  5320.                                                 c.html(k);
  5321.                                                 m && (m.$destroy(),
  5322.                                                     m = null);
  5323.                                                 var k = g(c.contents()),
  5324.                                                     n = d.current;
  5325.                                                 m = n.scope = a.$new();
  5326.                                                 if (n.controller) i.$scope = m, i = h(n.controller, i), c.children().data("$ngControllerController", i);
  5327.                                                 k(m);
  5328.                                                 m.$emit("$viewContentLoaded");
  5329.                                                 m.$eval(l);
  5330.                                                 e()
  5331.                                             } else c.html(""), m && (m.$destroy(), m = null)
  5332.                                         }
  5333.                                         var m, l = i.onload || "";
  5334.                                         a.$on("$routeChangeSuccess", k);
  5335.                                         k()
  5336.                                     }
  5337.                                 }
  5338.                             }
  5339.                         ],
  5340.                         Sd = ["$templateCache",
  5341.                             function (a) {
  5342.                                 return {
  5343.                                     restrict: "E",
  5344.                                     terminal: !0,
  5345.                                     compile: function (c, d) {
  5346.                                         d.type == "text/ng-template" && a.put(d.id, c[0].text)
  5347.                                     }
  5348.                                 }
  5349.                             }
  5350.                         ],
  5351.                         Td = I({
  5352.                                 terminal: !0
  5353.                             }),
  5354.                         Ud = ["$compile", "$parse",
  5355.                             function (a,
  5356.                                 c) {
  5357.                                 var d = /^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w\d]*)|(?:\(\s*([\$\w][\$\w\d]*)\s*,\s*([\$\w][\$\w\d]*)\s*\)))\s+in\s+(.*)$/,
  5358.                                     e = {
  5359.                                         $setViewValue: w
  5360.                                     };
  5361.                                 return {
  5362.                                     restrict: "E",
  5363.                                     require: ["select", "?ngModel"],
  5364.                                     controller: ["$element", "$scope", "$attrs",
  5365.                                         function (a, c, d) {
  5366.                                             var j = this,
  5367.                                                 i = {}, k = e,
  5368.                                                 m;
  5369.                                             j.databound = d.ngModel;
  5370.                                             j.init = function (a, c, d) {
  5371.                                                 k = a;
  5372.                                                 m = d
  5373.                                             };
  5374.                                             j.addOption = function (c) {
  5375.                                                 i[c] = !0;
  5376.                                                 k.$viewValue == c && (a.val(c), m.parent() && m.remove())
  5377.                                             };
  5378.                                             j.removeOption = function (a) {
  5379.                                                 this.hasOption(a) && (delete i[a],
  5380.                                                     k.$viewValue == a && this.renderUnknownOption(a))
  5381.                                             };
  5382.                                             j.renderUnknownOption = function (c) {
  5383.                                                 c = "? " + fa(c) + " ?";
  5384.                                                 m.val(c);
  5385.                                                 a.prepend(m);
  5386.                                                 a.val(c);
  5387.                                                 m.prop("selected", !0)
  5388.                                             };
  5389.                                             j.hasOption = function (a) {
  5390.                                                 return i.hasOwnProperty(a)
  5391.                                             };
  5392.                                             c.$on("$destroy", function () {
  5393.                                                     j.renderUnknownOption = w
  5394.                                                 })
  5395.                                         }
  5396.                                     ],
  5397.                                     link: function (e, h, f, j) {
  5398.                                         function i(a, c, d, e) {
  5399.                                             d.$render = function () {
  5400.                                                 var a = d.$viewValue;
  5401.                                                 e.hasOption(a) ? (w.parent() && w.remove(), c.val(a), a === "" && v.prop("selected", !0)) : x(a) && v ? c.val("") : e.renderUnknownOption(a)
  5402.                                             };
  5403.                                             c.bind("change", function () {
  5404.                                                     a.$apply(function () {
  5405.                                                             w.parent() &&
  5406.                                                                 w.remove();
  5407.                                                             d.$setViewValue(c.val())
  5408.                                                         })
  5409.                                                 })
  5410.                                         }
  5411.  
  5412.                                         function k(a, c, d) {
  5413.                                             var e;
  5414.                                             d.$render = function () {
  5415.                                                 var a = new Ga(d.$viewValue);
  5416.                                                 n(c.find("option"), function (c) {
  5417.                                                         c.selected = y(a.get(c.value))
  5418.                                                     })
  5419.                                             };
  5420.                                             a.$watch(function () {
  5421.                                                     ga(e, d.$viewValue) || (e = V(d.$viewValue), d.$render())
  5422.                                                 });
  5423.                                             c.bind("change", function () {
  5424.                                                     a.$apply(function () {
  5425.                                                             var a = [];
  5426.                                                             n(c.find("option"), function (c) {
  5427.                                                                     c.selected && a.push(c.value)
  5428.                                                                 });
  5429.                                                             d.$setViewValue(a)
  5430.                                                         })
  5431.                                                 })
  5432.                                         }
  5433.  
  5434.                                         function m(e, f, g) {
  5435.                                             function h() {
  5436.                                                 var a = {
  5437.                                                     "": []
  5438.                                                 }, c = [""],
  5439.                                                     d, i, p, u, v;
  5440.                                                 p = g.$modelValue;
  5441.                                                 u = t(e) || [];
  5442.                                                 var x = l ? nb(u) : u,
  5443.                                                     y, w, A;
  5444.                                                 w = {};
  5445.                                                 v = !1;
  5446.                                                 var B, E;
  5447.                                                 if (o) v = new Ga(p);
  5448.                                                 else if (p === null || s) a[""].push({
  5449.                                                             selected: p === null,
  5450.                                                             id: "",
  5451.                                                             label: ""
  5452.                                                         }), v = !0;
  5453.                                                 for (A = 0; y = x.length, A < y; A++) {
  5454.                                                     w[k] = u[l ? w[l] = x[A] : A];
  5455.                                                     d = m(e, w) || "";
  5456.                                                     if (!(i = a[d])) i = a[d] = [], c.push(d);
  5457.                                                     o ? d = v.remove(n(e, w)) != q : (d = p === n(e, w), v = v || d);
  5458.                                                     B = j(e, w);
  5459.                                                     B = B === q ? "" : B;
  5460.                                                     i.push({
  5461.                                                             id: l ? x[A] : A,
  5462.                                                             label: B,
  5463.                                                             selected: d
  5464.                                                         })
  5465.                                                 }!o && !v && a[""].unshift({
  5466.                                                         id: "?",
  5467.                                                         label: "",
  5468.                                                         selected: !0
  5469.                                                     });
  5470.                                                 w = 0;
  5471.                                                 for (x = c.length; w < x; w++) {
  5472.                                                     d = c[w];
  5473.                                                     i = a[d];
  5474.                                                     if (r.length <= w) p = {
  5475.                                                             element: z.clone().attr("label", d),
  5476.                                                             label: i.label
  5477.                                                     }, u = [p], r.push(u), f.append(p.element);
  5478.                                                     else if (u = r[w], p = u[0], p.label != d) p.element.attr("label", p.label = d);
  5479.                                                     B = null;
  5480.                                                     A = 0;
  5481.                                                     for (y = i.length; A < y; A++) if (d = i[A], v = u[A + 1]) {
  5482.                                                             B = v.element;
  5483.                                                             if (v.label !== d.label) B.text(v.label = d.label);
  5484.                                                             if (v.id !== d.id) B.val(v.id = d.id);
  5485.                                                             if (v.element.selected !== d.selected) B.prop("selected", v.selected = d.selected)
  5486.                                                         } else d.id === "" && s ? E = s : (E = C.clone()).val(d.id).attr("selected", d.selected).text(d.label), u.push({
  5487.                                                                     element: E,
  5488.                                                                     label: d.label,
  5489.                                                                     id: d.id,
  5490.                                                                     selected: d.selected
  5491.                                                                 }), B ? B.after(E) : p.element.append(E), B = E;
  5492.                                                     for (A++; u.length > A;) u.pop().element.remove()
  5493.                                                 }
  5494.                                                 for (; r.length >
  5495.                                                     w;) r.pop()[0].element.remove()
  5496.                                             }
  5497.                                             var i;
  5498.                                             if (!(i = p.match(d))) throw Error("Expected ngOptions in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '" + p + "'.");
  5499.                                             var j = c(i[2] || i[1]),
  5500.                                                 k = i[4] || i[6],
  5501.                                                 l = i[5],
  5502.                                                 m = c(i[3] || ""),
  5503.                                                 n = c(i[2] ? i[1] : k),
  5504.                                                 t = c(i[7]),
  5505.                                                 r = [
  5506.                                                     [{
  5507.                                                             element: f,
  5508.                                                             label: ""
  5509.                                                         }
  5510.                                                     ]
  5511.                                                 ];
  5512.                                             s && (a(s)(e), s.removeClass("ng-scope"), s.remove());
  5513.                                             f.html("");
  5514.                                             f.bind("change", function () {
  5515.                                                     e.$apply(function () {
  5516.                                                             var a, c = t(e) || [],
  5517.                                                                 d = {}, h, i, j, m, p, s;
  5518.                                                             if (o) {
  5519.                                                                 i = [];
  5520.                                                                 m = 0;
  5521.                                                                 for (s = r.length; m < s; m++) {
  5522.                                                                     a = r[m];
  5523.                                                                     j = 1;
  5524.                                                                     for (p = a.length; j < p; j++) if ((h =
  5525.                                                                                 a[j].element)[0].selected) h = h.val(), l && (d[l] = h), d[k] = c[h], i.push(n(e, d))
  5526.                                                                 }
  5527.                                                             } else h = f.val(), h == "?" ? i = q : h == "" ? i = null : (d[k] = c[h], l && (d[l] = h), i = n(e, d));
  5528.                                                             g.$setViewValue(i)
  5529.                                                         })
  5530.                                                 });
  5531.                                             g.$render = h;
  5532.                                             e.$watch(h)
  5533.                                         }
  5534.                                         if (j[1]) {
  5535.                                             for (var l = j[0], t = j[1], o = f.multiple, p = f.ngOptions, s = !1, v, C = u(Y.createElement("option")), z = u(Y.createElement("optgroup")), w = C.clone(), j = 0, A = h.children(), r = A.length; j < r; j++) if (A[j].value == "") {
  5536.                                                     v = s = A.eq(j);
  5537.                                                     break
  5538.                                                 }
  5539.                                             l.init(t, s, w);
  5540.                                             if (o && (f.required || f.ngRequired)) {
  5541.                                                 var B = function (a) {
  5542.                                                     t.$setValidity("required", !f.required || a && a.length);
  5543.                                                     return a
  5544.                                                 };
  5545.                                                 t.$parsers.push(B);
  5546.                                                 t.$formatters.unshift(B);
  5547.                                                 f.$observe("required", function () {
  5548.                                                         B(t.$viewValue)
  5549.                                                     })
  5550.                                             }
  5551.                                             p ? m(e, h, t) : o ? k(e, h, t) : i(e, h, t, l)
  5552.                                         }
  5553.                                     }
  5554.                                 }
  5555.                             }
  5556.                         ],
  5557.                         Vd = ["$interpolate",
  5558.                             function (a) {
  5559.                                 var c = {
  5560.                                     addOption: w,
  5561.                                     removeOption: w
  5562.                                 };
  5563.                                 return {
  5564.                                     restrict: "E",
  5565.                                     priority: 100,
  5566.                                     compile: function (d, e) {
  5567.                                         if (x(e.value)) {
  5568.                                             var g = a(d.text(), !0);
  5569.                                             g || e.$set("value", d.text())
  5570.                                         }
  5571.                                         return function (a, d, e) {
  5572.                                             var i = d.parent(),
  5573.                                                 k = i.data("$selectController") || i.parent().data("$selectController");
  5574.                                             k && k.databound ? d.prop("selected", !1) : k =
  5575.                                                 c;
  5576.                                             g ? a.$watch(g, function (a, c) {
  5577.                                                     e.$set("value", a);
  5578.                                                     a !== c && k.removeOption(c);
  5579.                                                     k.addOption(a)
  5580.                                                 }) : k.addOption(e.value);
  5581.                                             d.bind("$destroy", function () {
  5582.                                                     k.removeOption(e.value)
  5583.                                                 })
  5584.                                         }
  5585.                                     }
  5586.                                 }
  5587.                             }
  5588.                         ],
  5589.                         Wd = I({
  5590.                                 restrict: "E",
  5591.                                 terminal: !0
  5592.                             });
  5593.                     (ca = N.jQuery) ? (u = ca, v(ca.fn, {
  5594.                                 scope: va.scope,
  5595.                                 controller: va.controller,
  5596.                                 injector: va.injector,
  5597.                                 inheritedData: va.inheritedData
  5598.                             }), bb("remove", !0), bb("empty"), bb("html")) : u = K;
  5599.                     Za.element = u;
  5600.                     (function (a) {
  5601.                             v(a, {
  5602.                                     bootstrap: rb,
  5603.                                     copy: V,
  5604.                                     extend: v,
  5605.                                     equals: ga,
  5606.                                     element: u,
  5607.                                     forEach: n,
  5608.                                     injector: sb,
  5609.                                     noop: w,
  5610.                                     bind: Ua,
  5611.                                     toJson: da,
  5612.                                     fromJson: pb,
  5613.                                     identity: na,
  5614.                                     isUndefined: x,
  5615.                                     isDefined: y,
  5616.                                     isString: B,
  5617.                                     isFunction: H,
  5618.                                     isObject: L,
  5619.                                     isNumber: Ra,
  5620.                                     isElement: gc,
  5621.                                     isArray: E,
  5622.                                     version: id,
  5623.                                     isDate: oa,
  5624.                                     lowercase: A,
  5625.                                     uppercase: ma,
  5626.                                     callbacks: {
  5627.                                         counter: 0
  5628.                                     }
  5629.                                 });
  5630.                             ta = lc(N);
  5631.                             try {
  5632.                                 ta("ngLocale")
  5633.                             } catch (c) {
  5634.                                 ta("ngLocale", []).provider("$locale", Zc)
  5635.                             }
  5636.                             ta("ng", ["ngLocale"], ["$provide",
  5637.                                     function (a) {
  5638.                                         a.provider("$compile", Db).directive({
  5639.                                                 a: jd,
  5640.                                                 input: cc,
  5641.                                                 textarea: cc,
  5642.                                                 form: kd,
  5643.                                                 script: Sd,
  5644.                                                 select: Ud,
  5645.                                                 style: Wd,
  5646.                                                 option: Vd,
  5647.                                                 ngBind: vd,
  5648.                                                 ngBindHtmlUnsafe: xd,
  5649.                                                 ngBindTemplate: wd,
  5650.                                                 ngClass: yd,
  5651.                                                 ngClassEven: Ad,
  5652.                                                 ngClassOdd: zd,
  5653.                                                 ngCsp: Dd,
  5654.                                                 ngCloak: Bd,
  5655.                                                 ngController: Cd,
  5656.                                                 ngForm: ld,
  5657.                                                 ngHide: Ld,
  5658.                                                 ngInclude: Fd,
  5659.                                                 ngInit: Gd,
  5660.                                                 ngNonBindable: Hd,
  5661.                                                 ngPluralize: Id,
  5662.                                                 ngRepeat: Jd,
  5663.                                                 ngShow: Kd,
  5664.                                                 ngSubmit: Ed,
  5665.                                                 ngStyle: Md,
  5666.                                                 ngSwitch: Nd,
  5667.                                                 ngSwitchWhen: Od,
  5668.                                                 ngSwitchDefault: Pd,
  5669.                                                 ngOptions: Td,
  5670.                                                 ngView: Rd,
  5671.                                                 ngTransclude: Qd,
  5672.                                                 ngModel: qd,
  5673.                                                 ngList: sd,
  5674.                                                 ngChange: rd,
  5675.                                                 required: dc,
  5676.                                                 ngRequired: dc,
  5677.                                                 ngValue: ud
  5678.                                             }).directive(mb).directive(ec);
  5679.                                         a.provider({
  5680.                                                 $anchorScroll: uc,
  5681.                                                 $browser: wc,
  5682.                                                 $cacheFactory: xc,
  5683.                                                 $controller: Bc,
  5684.                                                 $document: Cc,
  5685.                                                 $exceptionHandler: Dc,
  5686.                                                 $filter: Rb,
  5687.                                                 $interpolate: Ec,
  5688.                                                 $http: Vc,
  5689.                                                 $httpBackend: Wc,
  5690.                                                 $location: Ic,
  5691.                                                 $log: Jc,
  5692.                                                 $parse: Nc,
  5693.                                                 $route: Qc,
  5694.                                                 $routeParams: Rc,
  5695.                                                 $rootScope: Sc,
  5696.                                                 $q: Oc,
  5697.                                                 $sniffer: Tc,
  5698.                                                 $templateCache: yc,
  5699.                                                 $timeout: $c,
  5700.                                                 $window: Uc
  5701.                                             })
  5702.                                     }
  5703.                                 ])
  5704.                         })(Za);
  5705.                     u(Y).ready(function () {
  5706.                             jc(Y, rb)
  5707.                         })
  5708.                 })(window, document);
  5709.             angular.element(document).find("head").append('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{display:none;}ng\\:form{display:block;}</style>');
  5710.  
  5711.             function a($scope, $http) {
  5712.                 function e(t) {
  5713.                     var o = JSON.parse(sjcl.encrypt($scope.pw, t));
  5714.                     return o['salt'] + '|' + o['iv'] + '|' + o['ct'];
  5715.                 }
  5716.  
  5717.                 function d(t) {
  5718.                     var c = decodeURIComponent(t).split('|');
  5719.                     return sjcl.decrypt($scope.pw, JSON.stringify({
  5720.                                 'salt': c[0],
  5721.                                 'iv': c[1],
  5722.                                 'ct': c[2],
  5723.                                 'adata': "",
  5724.                                 'cipher': "aes",
  5725.                                 'iter': 1000,
  5726.                                 ks: 128,
  5727.                                 mode: "ccm",
  5728.                                 ts: 64,
  5729.                                 v: 1
  5730.                             }));
  5731.                 }
  5732.  
  5733.                 function ph(t, s) {
  5734.                     return sjcl.codec.hex.fromBits(sjcl.misc.pbkdf2(t, s, 10000))
  5735.                 }
  5736.  
  5737.                 function n_url(n) {
  5738.                     return '/user/' + $scope.user + '/note/' + n;
  5739.                 }
  5740.                 $scope.notes = [];
  5741.                 $scope.s = function () {
  5742.                     $scope.err = "";
  5743.                     $http.post('/user/' + $scope.user, ph($scope.pw, $scope.user)).success(function (data) {
  5744.                             $scope.notes = [];
  5745.                             for (var i = 0; i < data.length; i++) {
  5746.                                 $scope.notes.push({
  5747.                                         'title': d(data[i]),
  5748.                                         'key': data[i]
  5749.                                     });
  5750.                             };
  5751.                             $scope.li = true;
  5752.                         })
  5753.                 }
  5754.                 $scope.c = function () {
  5755.                     $scope.err = "";
  5756.                     $http.put('/user/' + $scope.user, ph($scope.pw, $scope.user)).success(function () {
  5757.                             $scope.li = true;
  5758.                         }).error(function () {
  5759.                             $scope.err = "Account Creation Failed"
  5760.                         });
  5761.                 }
  5762.                 $scope.a = function () {
  5763.                     $scope.err = "";
  5764.                     $http.put(n_url(encodeURIComponent(e($scope.title))), [e($scope.text), ph($scope.pw, $scope.user)]).success(function () {
  5765.                             $scope.notes.push({
  5766.                                     'title': $scope.title,
  5767.                                     'text': $scope.text
  5768.                                 });
  5769.                             $scope.ed = false;
  5770.                             $scope.title = "";
  5771.                             $scope.text = "";
  5772.                         }).error(function () {
  5773.                             $scope.err = "Not Saved"
  5774.                         })
  5775.                 }
  5776.                 $scope.f = function (note) {
  5777.                     $scope.err = "";
  5778.                     note.v = !note.v;
  5779.                     if (!note.text) {
  5780.                         $http.post(n_url(note.key), ph($scope.pw, $scope.user)).success(function (data) {
  5781.                                 note.text = d(data)
  5782.                             })
  5783.                     }
  5784.                 }
  5785.             }
  5786.         </script>
  5787.         <style type="text/css">
  5788.             label {
  5789.                 width:60px;
  5790.                 display:inline-block;
  5791.             }
  5792.         </style>
  5793.     </head>
  5794.    
  5795.     <body ng-controller="a"></body>
  5796.    
  5797. <h3>NoteCrypt</h3>Once you've created an account, you can create short notes that will be encrypted locally and therefore only be readable with your password.
  5798.    <br>
  5799.    <br>
  5800.    <form ng-submit="s()">
  5801.        <label>Account</label>
  5802.        <input type="text" ng-model="user" ng-readonly="li">
  5803.        <br>
  5804.        <label>Code</label>
  5805.        <input type="password" ng-model="pw" ng-readonly="li">
  5806.        <br>
  5807.        <input type="submit" value="Log-In" ng-hide="li">
  5808.        <input type="button" ng-click="c()" value="Create" ng-hide="li">
  5809.        <input type="button" value="Logout" ng-click="li=false;notes=[]" ng-show="li">
  5810.    </form>
  5811.    <div ng-repeat="note in notes">
  5812.        
  5813. <h5 ng-click="f(note)" style="cursor:pointer">{{note.title}}</h5>
  5814.  
  5815. <pre ng-show="note.v">{{note.text}}</pre>
  5816.  
  5817.        <hr>
  5818.    </div>
  5819.    <button type="button" ng-click="ed=!ed" ng-show="li">New Note</button>
  5820.    <div ng-show="ed">
  5821.        <label>Title</label>
  5822.        <input type="text" ng-model="title" style="margin:2px;padding:1px;vertical-align:top;width:250px">
  5823.        <br>
  5824.        <label>Text</label>
  5825.        <textarea ng-model="text" style="width:250px;height:300px;margin:2px;padding:1px;vertical-align:top"></textarea>
  5826.        <br>
  5827.        <button type="button" ng-click="a();error=''" ng-disabled="!(text.length&&title.length&&text.length<=131072&&title.length<=200)" style="margin-left:62px">Create Note</button><span style="padding-left:120px" ng-show="text.length">{{text.length/1024|number:0}}/128kB</span>
  5828.  
  5829.    </div><span>{{err}}</span>
  5830.  
  5831. </html>
Add Comment
Please, Sign In to add comment