Advertisement
Guest User

Untitled

a guest
May 29th, 2015
890
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Copyright 2014 Google */(function() {
  2.     var h, aa = aa || {}, m = this, q = function(a) {
  3.         return void 0 !== a
  4.     }
  5.     , r = function() {}
  6.     , ba = function(a) {
  7.         a.V = function() {
  8.             return a.yb ? a.yb : a.yb = new a
  9.         }
  10.     }
  11.     , ca = function(a) {
  12.         var b = typeof a;
  13.         if ("object" == b)
  14.             if (a) {
  15.                 if (a instanceof Array)
  16.                     return "array";
  17.                 if (a instanceof Object)
  18.                     return b;
  19.                 var c = Object.prototype.toString.call(a);
  20.                 if ("[object Window]" == c)
  21.                     return "object";
  22.                 if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice"))
  23.                     return "array";
  24.                 if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call"))
  25.                     return "function"
  26.             } else
  27.                 return "null";
  28.         else if ("function" == b && "undefined" == typeof a.call)
  29.             return "object";
  30.         return b
  31.     }
  32.     , u = function(a) {
  33.         return "array" == ca(a)
  34.     }
  35.     , da = function(a) {
  36.         var b = ca(a);
  37.         return "array" == b || "object" == b && "number" == typeof a.length
  38.     }
  39.     , v = function(a) {
  40.         return "string" == typeof a
  41.     }
  42.     , w = function(a) {
  43.         return "number" == typeof a
  44.     }
  45.     , x = function(a) {
  46.         return "function" == ca(a)
  47.     }
  48.     , ea = function(a) {
  49.         var b =
  50.         typeof a;
  51.         return "object" == b && null  != a || "function" == b
  52.     }
  53.     , fa = "closure_uid_" + (1E9 * Math.random() >>> 0), ga = 0, ha = function(a, b, c) {
  54.         return a.call.apply(a.bind, arguments)
  55.     }
  56.     , ia = function(a, b, c) {
  57.         if (!a)
  58.             throw Error();
  59.         if (2 < arguments.length) {
  60.             var d = Array.prototype.slice.call(arguments, 2);
  61.             return function() {
  62.                 var c = Array.prototype.slice.call(arguments);
  63.                 Array.prototype.unshift.apply(c, d);
  64.                 return a.apply(b, c)
  65.             }
  66.         }
  67.         return function() {
  68.             return a.apply(b, arguments)
  69.         }
  70.     }
  71.     , y = function(a, b, c) {
  72.         y = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ?
  73.         ha : ia;
  74.         return y.apply(null , arguments)
  75.     }
  76.     , z = function(a, b) {
  77.         var c = Array.prototype.slice.call(arguments, 1);
  78.         return function() {
  79.             var b = c.slice();
  80.             b.push.apply(b, arguments);
  81.             return a.apply(this, b)
  82.         }
  83.     }
  84.     , ja = Date.now || function() {
  85.         return +new Date
  86.     }
  87.     , A = function(a, b) {
  88.         function c() {}
  89.         c.prototype = b.prototype;
  90.         a.l = b.prototype;
  91.         a.prototype = new c;
  92.         a.prototype.constructor = a;
  93.         a.Md = function(a, c, f) {
  94.             for (var g = Array(arguments.length - 2), k = 2; k < arguments.length; k++)
  95.                 g[k - 2] = arguments[k];
  96.             return b.prototype[c].apply(a, g)
  97.         }
  98.     }
  99.     ;
  100.     Function.prototype.bind = Function.prototype.bind || function(a, b) {
  101.         if (1 < arguments.length) {
  102.             var c = Array.prototype.slice.call(arguments, 1);
  103.             c.unshift(this, a);
  104.             return y.apply(null , c)
  105.         }
  106.         return y(this, a)
  107.     }
  108.     ;
  109.     var B = function(a) {
  110.         if (Error.captureStackTrace)
  111.             Error.captureStackTrace(this, B);
  112.         else {
  113.             var b = Error().stack;
  114.             b && (this.stack = b)
  115.         }
  116.         a && (this.message = String(a))
  117.     }
  118.     ;
  119.     A(B, Error);
  120.     B.prototype.name = "CustomError";
  121.     var ka;
  122.     var ma = function(a, b) {
  123.         for (var c = a.split("%s"), d = "", e = Array.prototype.slice.call(arguments, 1); e.length && 1 < c.length; )
  124.             d += c.shift() + e.shift();
  125.         return d + c.join("%s")
  126.     }
  127.       , na = String.prototype.trim ? function(a) {
  128.         return a.trim()
  129.     }
  130.      : function(a) {
  131.         return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g, "")
  132.     }
  133.       , va = function(a) {
  134.         if (!oa.test(a))
  135.             return a;
  136.         -1 != a.indexOf("&") && (a = a.replace(pa, "&amp;"));
  137.         -1 != a.indexOf("<") && (a = a.replace(qa, "&lt;"));
  138.         -1 != a.indexOf(">") && (a = a.replace(ra, "&gt;"));
  139.         -1 != a.indexOf('"') && (a = a.replace(sa, "&quot;"));
  140.         -1 != a.indexOf("'") &&
  141.         (a = a.replace(ta, "&#39;"));
  142.         -1 != a.indexOf("\x00") && (a = a.replace(ua, "&#0;"));
  143.         return a
  144.     }
  145.       , pa = /&/g
  146.       , qa = /</g
  147.       , ra = />/g
  148.       , sa = /"/g
  149.       , ta = /'/g
  150.       , ua = /\x00/g
  151.       , oa = /[\x00&<>"']/
  152.       , wa = function(a, b) {
  153.         return a < b ? -1 : a > b ? 1 : 0
  154.     }
  155.       , xa = function(a) {
  156.         return String(a).replace(/\-([a-z])/g, function(a, c) {
  157.             return c.toUpperCase()
  158.         }
  159.         )
  160.     }
  161.       , ya = function(a) {
  162.         var b = v(void 0) ? "undefined".replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08") : "\\s";
  163.         return a.replace(new RegExp("(^" + (b ? "|[" + b + "]+" : "") + ")([a-z])","g"), function(a, b, e) {
  164.             return b + e.toUpperCase()
  165.         }
  166.         )
  167.     }
  168.     ;
  169.     var za = function(a, b) {
  170.         b.unshift(a);
  171.         B.call(this, ma.apply(null , b));
  172.         b.shift()
  173.     }
  174.     ;
  175.     A(za, B);
  176.     za.prototype.name = "AssertionError";
  177.     var Aa = function(a, b, c, d) {
  178.         var e = "Assertion failed";
  179.         if (c)
  180.             var e = e + (": " + c)
  181.               , f = d;
  182.         else
  183.             a && (e += ": " + a,
  184.             f = b);
  185.         throw new za("" + e,f || []);
  186.     }
  187.       , D = function(a, b, c) {
  188.         a || Aa("", null , b, Array.prototype.slice.call(arguments, 2));
  189.         return a
  190.     }
  191.       , Ba = function(a, b) {
  192.         throw new za("Failure" + (a ? ": " + a : ""),Array.prototype.slice.call(arguments, 1));
  193.     }
  194.       , Ca = function(a, b, c) {
  195.         v(a) || Aa("Expected string but got %s: %s.", [ca(a), a], b, Array.prototype.slice.call(arguments, 2));
  196.         return a
  197.     }
  198.       , Da = function(a, b, c) {
  199.         x(a) || Aa("Expected function but got %s: %s.", [ca(a),
  200.         a], b, Array.prototype.slice.call(arguments, 2))
  201.     }
  202.       , Ea = function(a, b, c) {
  203.         ea(a) || Aa("Expected object but got %s: %s.", [ca(a), a], b, Array.prototype.slice.call(arguments, 2))
  204.     }
  205.       , Fa = function(a, b, c) {
  206.         ea(a) && 1 == a.nodeType || Aa("Expected Element but got %s: %s.", [ca(a), a], b, Array.prototype.slice.call(arguments, 2))
  207.     }
  208.       , Ha = function(a, b, c, d) {
  209.         a instanceof b || Aa("Expected instanceof %s but got %s.", [Ga(b), Ga(a)], c, Array.prototype.slice.call(arguments, 3))
  210.     }
  211.       , Ga = function(a) {
  212.         return a instanceof Function ? a.displayName || a.name || "unknown type name" :
  213.         a instanceof Object ? a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a) : null  === a ? "null" : typeof a
  214.     }
  215.     ;
  216.     var E = Array.prototype
  217.       , Ia = E.indexOf ? function(a, b, c) {
  218.         D(null  != a.length);
  219.         return E.indexOf.call(a, b, c)
  220.     }
  221.      : function(a, b, c) {
  222.         c = null  == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c;
  223.         if (v(a))
  224.             return v(b) && 1 == b.length ? a.indexOf(b, c) : -1;
  225.         for (; c < a.length; c++)
  226.             if (c in a && a[c] === b)
  227.                 return c;
  228.         return -1
  229.     }
  230.       , F = E.forEach ? function(a, b, c) {
  231.         D(null  != a.length);
  232.         E.forEach.call(a, b, c)
  233.     }
  234.      : function(a, b, c) {
  235.         for (var d = a.length, e = v(a) ? a.split("") : a, f = 0; f < d; f++)
  236.             f in e && b.call(c, e[f], f, a)
  237.     }
  238.       , Ja = E.filter ? function(a, b, c) {
  239.         D(null  != a.length);
  240.         return E.filter.call(a, b,
  241.         c)
  242.     }
  243.      : function(a, b, c) {
  244.         for (var d = a.length, e = [], f = 0, g = v(a) ? a.split("") : a, k = 0; k < d; k++)
  245.             if (k in g) {
  246.                 var l = g[k];
  247.                 b.call(c, l, k, a) && (e[f++] = l)
  248.             }
  249.         return e
  250.     }
  251.       , Ka = E.map ? function(a, b, c) {
  252.         D(null  != a.length);
  253.         return E.map.call(a, b, c)
  254.     }
  255.      : function(a, b, c) {
  256.         for (var d = a.length, e = Array(d), f = v(a) ? a.split("") : a, g = 0; g < d; g++)
  257.             g in f && (e[g] = b.call(c, f[g], g, a));
  258.         return e
  259.     }
  260.       , La = E.some ? function(a, b, c) {
  261.         D(null  != a.length);
  262.         return E.some.call(a, b, c)
  263.     }
  264.      : function(a, b, c) {
  265.         for (var d = a.length, e = v(a) ? a.split("") : a, f = 0; f < d; f++)
  266.             if (f in e && b.call(c, e[f], f, a))
  267.                 return !0;
  268.         return !1
  269.     }
  270.       , Ma = E.every ? function(a, b, c) {
  271.         D(null  != a.length);
  272.         return E.every.call(a, b, c)
  273.     }
  274.      : function(a, b, c) {
  275.         for (var d = a.length, e = v(a) ? a.split("") : a, f = 0; f < d; f++)
  276.             if (f in e && !b.call(c, e[f], f, a))
  277.                 return !1;
  278.         return !0
  279.     }
  280.       , Oa = function(a) {
  281.         var b;
  282.         a: {
  283.             b = Na;
  284.             for (var c = a.length, d = v(a) ? a.split("") : a, e = 0; e < c; e++)
  285.                 if (e in d && b.call(void 0, d[e], e, a)) {
  286.                     b = e;
  287.                     break a
  288.                 }
  289.             b = -1
  290.         }
  291.         return 0 > b ? null  : v(a) ? a.charAt(b) : a[b]
  292.     }
  293.       , Pa = function(a, b) {
  294.         return 0 <= Ia(a, b)
  295.     }
  296.       , Qa = function(a, b) {
  297.         var c = Ia(a, b), d;
  298.         if (d = 0 <= c)
  299.             D(null  != a.length),
  300.             E.splice.call(a, c, 1);
  301.         return d
  302.     }
  303.       ,
  304.     Ra = function(a) {
  305.         return E.concat.apply(E, arguments)
  306.     }
  307.       , Sa = function(a) {
  308.         var b = a.length;
  309.         if (0 < b) {
  310.             for (var c = Array(b), d = 0; d < b; d++)
  311.                 c[d] = a[d];
  312.             return c
  313.         }
  314.         return []
  315.     }
  316.     ;
  317.     var Ta = function(a, b, c) {
  318.         for (var d in a)
  319.             b.call(c, a[d], d, a)
  320.     }
  321.       , Ua = function(a) {
  322.         var b = [], c = 0, d;
  323.         for (d in a)
  324.             b[c++] = a[d];
  325.         return b
  326.     }
  327.       , Va = function(a) {
  328.         var b = [], c = 0, d;
  329.         for (d in a)
  330.             b[c++] = d;
  331.         return b
  332.     }
  333.       , Wa = function(a, b) {
  334.         for (var c in a)
  335.             if (a[c] == b)
  336.                 return !0;
  337.         return !1
  338.     }
  339.       , Xa = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ")
  340.       , Ya = function(a, b) {
  341.         for (var c, d, e = 1; e < arguments.length; e++) {
  342.             d = arguments[e];
  343.             for (c in d)
  344.                 a[c] = d[c];
  345.             for (var f = 0; f < Xa.length; f++)
  346.                 c = Xa[f],
  347.                 Object.prototype.hasOwnProperty.call(d,
  348.                 c) && (a[c] = d[c])
  349.         }
  350.     }
  351.       , Za = function(a) {
  352.         var b = arguments.length;
  353.         if (1 == b && u(arguments[0]))
  354.             return Za.apply(null , arguments[0]);
  355.         if (b % 2)
  356.             throw Error("Uneven number of arguments");
  357.         for (var c = {}, d = 0; d < b; d += 2)
  358.             c[arguments[d]] = arguments[d + 1];
  359.         return c
  360.     }
  361.       , $a = function(a) {
  362.         var b = arguments.length;
  363.         if (1 == b && u(arguments[0]))
  364.             return $a.apply(null , arguments[0]);
  365.         for (var c = {}, d = 0; d < b; d++)
  366.             c[arguments[d]] = !0;
  367.         return c
  368.     }
  369.     ;
  370.     var ab = $a("area base br col command embed hr img input keygen link meta param source track wbr".split(" "));
  371.     var cb = function() {
  372.         this.a = "";
  373.         this.b = bb
  374.     }
  375.     ;
  376.     cb.prototype.qa = !0;
  377.     cb.prototype.oa = function() {
  378.         return this.a
  379.     }
  380.     ;
  381.     cb.prototype.toString = function() {
  382.         return "Const{" + this.a + "}"
  383.     }
  384.     ;
  385.     var db = function(a) {
  386.         if (a instanceof cb && a.constructor === cb && a.b === bb)
  387.             return a.a;
  388.         Ba("expected object of type Const, got '" + a + "'");
  389.         return "type_error:Const"
  390.     }
  391.       , bb = {};
  392.     var fb = function() {
  393.         this.a = "";
  394.         this.b = eb
  395.     }
  396.     ;
  397.     fb.prototype.qa = !0;
  398.     var eb = {};
  399.     fb.prototype.oa = function() {
  400.         return this.a
  401.     }
  402.     ;
  403.     fb.prototype.toString = function() {
  404.         return "SafeStyle{" + this.a + "}"
  405.     }
  406.     ;
  407.     var gb = function(a) {
  408.         var b = new fb;
  409.         b.a = a;
  410.         return b
  411.     }
  412.       , hb = gb("")
  413.       , ib = /^[-,."'%_!# a-zA-Z0-9]+$/;
  414.     var kb = function() {
  415.         this.a = jb
  416.     }
  417.     ;
  418.     h = kb.prototype;
  419.     h.qa = !0;
  420.     h.oa = function() {
  421.         return ""
  422.     }
  423.     ;
  424.     h.Za = !0;
  425.     h.na = function() {
  426.         return 1
  427.     }
  428.     ;
  429.     h.toString = function() {
  430.         return "SafeUrl{}"
  431.     }
  432.     ;
  433.     var jb = {};
  434.     var mb = function() {
  435.         this.a = lb
  436.     }
  437.     ;
  438.     h = mb.prototype;
  439.     h.qa = !0;
  440.     h.oa = function() {
  441.         return ""
  442.     }
  443.     ;
  444.     h.Za = !0;
  445.     h.na = function() {
  446.         return 1
  447.     }
  448.     ;
  449.     h.toString = function() {
  450.         return "TrustedResourceUrl{}"
  451.     }
  452.     ;
  453.     var lb = {};
  454.     var ob = function() {
  455.         this.a = "";
  456.         this.c = nb;
  457.         this.b = null
  458.     }
  459.     ;
  460.     h = ob.prototype;
  461.     h.Za = !0;
  462.     h.na = function() {
  463.         return this.b
  464.     }
  465.     ;
  466.     h.qa = !0;
  467.     h.oa = function() {
  468.         return this.a
  469.     }
  470.     ;
  471.     h.toString = function() {
  472.         return "SafeHtml{" + this.a + "}"
  473.     }
  474.     ;
  475.     var pb = function(a) {
  476.         if (a instanceof ob && a.constructor === ob && a.c === nb)
  477.             return a.a;
  478.         Ba("expected object of type SafeHtml, got '" + a + "'");
  479.         return "type_error:SafeHtml"
  480.     }
  481.       , rb = function(a) {
  482.         if (a instanceof ob)
  483.             return a;
  484.         var b = null ;
  485.         a.Za && (b = a.na());
  486.         a = va(a.qa ? a.oa() : String(a));
  487.         return qb(a, b)
  488.     }
  489.       , sb = /^[a-zA-Z0-9-]+$/
  490.       , tb = {
  491.         action: !0,
  492.         cite: !0,
  493.         data: !0,
  494.         formaction: !0,
  495.         href: !0,
  496.         manifest: !0,
  497.         poster: !0,
  498.         src: !0
  499.     }
  500.       , ub = {
  501.         EMBED: !0,
  502.         IFRAME: !0,
  503.         LINK: !0,
  504.         OBJECT: !0,
  505.         SCRIPT: !0,
  506.         STYLE: !0,
  507.         TEMPLATE: !0
  508.     }
  509.       , vb = function(a) {
  510.         var b = 0
  511.           , c = ""
  512.           , d = function(a) {
  513.             u(a) ? F(a,
  514.             d) : (a = rb(a),
  515.             c += pb(a),
  516.             a = a.na(),
  517.             0 == b ? b = a : 0 != a && b != a && (b = null ))
  518.         }
  519.         ;
  520.         F(arguments, d);
  521.         return qb(c, b)
  522.     }
  523.       , nb = {}
  524.       , qb = function(a, b) {
  525.         var c = new ob;
  526.         c.a = a;
  527.         c.b = b;
  528.         return c
  529.     }
  530.     ;
  531.     qb("<!DOCTYPE html>", 0);
  532.     var wb = qb("", 0);
  533.     var G = function(a, b) {
  534.         this.x = q(a) ? a : 0;
  535.         this.y = q(b) ? b : 0
  536.     }
  537.     ;
  538.     G.prototype.clone = function() {
  539.         return new G(this.x,this.y)
  540.     }
  541.     ;
  542.     G.prototype.toString = function() {
  543.         return "(" + this.x + ", " + this.y + ")"
  544.     }
  545.     ;
  546.     var xb = function(a, b) {
  547.         return new G(a.x - b.x,a.y - b.y)
  548.     }
  549.     ;
  550.     G.prototype.floor = function() {
  551.         this.x = Math.floor(this.x);
  552.         this.y = Math.floor(this.y);
  553.         return this
  554.     }
  555.     ;
  556.     G.prototype.round = function() {
  557.         this.x = Math.round(this.x);
  558.         this.y = Math.round(this.y);
  559.         return this
  560.     }
  561.     ;
  562.     var yb = function(a, b) {
  563.         this.width = a;
  564.         this.height = b
  565.     }
  566.     ;
  567.     yb.prototype.clone = function() {
  568.         return new yb(this.width,this.height)
  569.     }
  570.     ;
  571.     yb.prototype.toString = function() {
  572.         return "(" + this.width + " x " + this.height + ")"
  573.     }
  574.     ;
  575.     yb.prototype.floor = function() {
  576.         this.width = Math.floor(this.width);
  577.         this.height = Math.floor(this.height);
  578.         return this
  579.     }
  580.     ;
  581.     yb.prototype.round = function() {
  582.         this.width = Math.round(this.width);
  583.         this.height = Math.round(this.height);
  584.         return this
  585.     }
  586.     ;
  587.     var zb;
  588.     a: {
  589.         var Ab = m.navigator;
  590.         if (Ab) {
  591.             var Bb = Ab.userAgent;
  592.             if (Bb) {
  593.                 zb = Bb;
  594.                 break a
  595.             }
  596.         }
  597.         zb = ""
  598.     }
  599.     var H = function(a) {
  600.         return -1 != zb.indexOf(a)
  601.     }
  602.     ;
  603.     var Cb = function() {
  604.         return H("Edge") || H("Trident") || H("MSIE")
  605.     }
  606.     ;
  607.     var Db = function() {
  608.         return H("Edge")
  609.     }
  610.     ;
  611.     var Eb = H("Opera") || H("OPR")
  612.       , I = Cb()
  613.       , J = H("Gecko") && !(-1 != zb.toLowerCase().indexOf("webkit") && !Db()) && !(H("Trident") || H("MSIE")) && !Db()
  614.       , K = -1 != zb.toLowerCase().indexOf("webkit") && !Db()
  615.       , Fb = K && H("Mobile")
  616.       , Gb = H("Macintosh")
  617.       , Hb = function() {
  618.         var a = zb;
  619.         if (J)
  620.             return /rv\:([^\);]+)(\)|;)/.exec(a);
  621.         if (I && Db())
  622.             return /Edge\/([\d\.]+)/.exec(a);
  623.         if (I)
  624.             return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);
  625.         if (K)
  626.             return /WebKit\/(\S+)/.exec(a)
  627.     }
  628.       , Ib = function() {
  629.         var a = m.document;
  630.         return a ? a.documentMode : void 0
  631.     }
  632.       , Jb = function() {
  633.         if (Eb && m.opera) {
  634.             var a =
  635.             m.opera.version;
  636.             return x(a) ? a() : a
  637.         }
  638.         var a = ""
  639.           , b = Hb();
  640.         b && (a = b ? b[1] : "");
  641.         return I && !Db() && (b = Ib(),
  642.         b > parseFloat(a)) ? String(b) : a
  643.     }
  644.     ()
  645.       , Kb = {}
  646.       , M = function(a) {
  647.         var b;
  648.         if (!(b = Kb[a])) {
  649.             b = 0;
  650.             for (var c = na(String(Jb)).split("."), d = na(String(a)).split("."), e = Math.max(c.length, d.length), f = 0; 0 == b && f < e; f++) {
  651.                 var g = c[f] || ""
  652.                   , k = d[f] || ""
  653.                   , l = RegExp("(\\d*)(\\D*)", "g")
  654.                   , p = RegExp("(\\d*)(\\D*)", "g");
  655.                 do {
  656.                     var n = l.exec(g) || ["", "", ""]
  657.                       , t = p.exec(k) || ["", "", ""];
  658.                     if (0 == n[0].length && 0 == t[0].length)
  659.                         break;
  660.                     b = wa(0 == n[1].length ? 0 : parseInt(n[1], 10), 0 ==
  661.                     t[1].length ? 0 : parseInt(t[1], 10)) || wa(0 == n[2].length, 0 == t[2].length) || wa(n[2], t[2])
  662.                 } while (0 == b)
  663.             }
  664.             b = Kb[a] = 0 <= b
  665.         }
  666.         return b
  667.     }
  668.       , Mb = function(a) {
  669.         return I && (Db() || Lb >= a)
  670.     }
  671.       , Nb = m.document
  672.       , Ob = Ib()
  673.       , Lb = !Nb || !I || !Ob && Db() ? void 0 : Ob || ("CSS1Compat" == Nb.compatMode ? parseInt(Jb, 10) : 5);
  674.     var Pb = !I || Mb(9)
  675.       , Qb = !J && !I || I && Mb(9) || J && M("1.9.1")
  676.       , Rb = I && !M("9");
  677.     var Tb = function(a) {
  678.         return a ? new Sb(N(a)) : ka || (ka = new Sb)
  679.     }
  680.       , Ub = function(a, b) {
  681.         return v(b) ? a.getElementById(b) : b
  682.     }
  683.       , Wb = function(a, b) {
  684.         var c = b || document
  685.           , d = null ;
  686.         c.getElementsByClassName ? d = c.getElementsByClassName(a)[0] : c.querySelectorAll && c.querySelector ? d = c.querySelector("." + a) : d = Vb(a, b)[0];
  687.         return d || null
  688.     }
  689.       , Vb = function(a, b) {
  690.         var c, d, e, f;
  691.         c = document;
  692.         c = b || c;
  693.         if (c.querySelectorAll && c.querySelector && a)
  694.             return c.querySelectorAll("" + (a ? "." + a : ""));
  695.         if (a && c.getElementsByClassName) {
  696.             var g = c.getElementsByClassName(a);
  697.             return g
  698.         }
  699.         g =
  700.         c.getElementsByTagName("*");
  701.         if (a) {
  702.             f = {};
  703.             for (d = e = 0; c = g[d]; d++) {
  704.                 var k = c.className;
  705.                 "function" == typeof k.split && Pa(k.split(/\s+/), a) && (f[e++] = c)
  706.             }
  707.             f.length = e;
  708.             return f
  709.         }
  710.         return g
  711.     }
  712.       , Yb = function(a, b) {
  713.         Ta(b, function(b, d) {
  714.             "style" == d ? a.style.cssText = b : "class" == d ? a.className = b : "for" == d ? a.htmlFor = b : d in Xb ? a.setAttribute(Xb[d], b) : 0 == d.lastIndexOf("aria-", 0) || 0 == d.lastIndexOf("data-", 0) ? a.setAttribute(d, b) : a[d] = b
  715.         }
  716.         )
  717.     }
  718.       , Xb = {
  719.         cellpadding: "cellPadding",
  720.         cellspacing: "cellSpacing",
  721.         colspan: "colSpan",
  722.         frameborder: "frameBorder",
  723.         height: "height",
  724.         maxlength: "maxLength",
  725.         role: "role",
  726.         rowspan: "rowSpan",
  727.         type: "type",
  728.         usemap: "useMap",
  729.         valign: "vAlign",
  730.         width: "width"
  731.     }
  732.       , ac = function(a) {
  733.         var b = Zb(a);
  734.         a = $b(a);
  735.         return I && M("10") && a.pageYOffset != b.scrollTop ? new G(b.scrollLeft,b.scrollTop) : new G(a.pageXOffset || b.scrollLeft,a.pageYOffset || b.scrollTop)
  736.     }
  737.       , Zb = function(a) {
  738.         return K || "CSS1Compat" != a.compatMode ? a.body || a.documentElement : a.documentElement
  739.     }
  740.       , $b = function(a) {
  741.         return a.parentWindow || a.defaultView
  742.     }
  743.       , cc = function(a, b, c, d) {
  744.         function e(c) {
  745.             c && b.appendChild(v(c) ? a.createTextNode(c) :
  746.             c)
  747.         }
  748.         for (; d < c.length; d++) {
  749.             var f = c[d];
  750.             !da(f) || ea(f) && 0 < f.nodeType ? e(f) : F(bc(f) ? Sa(f) : f, e)
  751.         }
  752.     }
  753.       , dc = function(a) {
  754.         a && a.parentNode && a.parentNode.removeChild(a)
  755.     }
  756.       , ec = function(a, b) {
  757.         if (a.contains && 1 == b.nodeType)
  758.             return a == b || a.contains(b);
  759.         if ("undefined" != typeof a.compareDocumentPosition)
  760.             return a == b || Boolean(a.compareDocumentPosition(b) & 16);
  761.         for (; b && a != b; )
  762.             b = b.parentNode;
  763.         return b == a
  764.     }
  765.       , N = function(a) {
  766.         D(a, "Node cannot be null or undefined.");
  767.         return 9 == a.nodeType ? a : a.ownerDocument || a.document
  768.     }
  769.       , fc = function(a, b) {
  770.         D(null  != a,
  771.         "goog.dom.setTextContent expects a non-null value for node");
  772.         if ("textContent" in a)
  773.             a.textContent = b;
  774.         else if (3 == a.nodeType)
  775.             a.data = b;
  776.         else if (a.firstChild && 3 == a.firstChild.nodeType) {
  777.             for (; a.lastChild != a.firstChild; )
  778.                 a.removeChild(a.lastChild);
  779.             a.firstChild.data = b
  780.         } else {
  781.             for (var c; c = a.firstChild; )
  782.                 a.removeChild(c);
  783.             c = N(a);
  784.             a.appendChild(c.createTextNode(String(b)))
  785.         }
  786.     }
  787.       , gc = {
  788.         SCRIPT: 1,
  789.         STYLE: 1,
  790.         HEAD: 1,
  791.         IFRAME: 1,
  792.         OBJECT: 1
  793.     }
  794.       , hc = {
  795.         IMG: " ",
  796.         BR: "\n"
  797.     }
  798.       , ic = function(a, b) {
  799.         b ? a.tabIndex = 0 : (a.tabIndex = -1,
  800.         a.removeAttribute("tabIndex"))
  801.     }
  802.       ,
  803.     jc = function(a) {
  804.         a = a.getAttributeNode("tabindex");
  805.         return null  != a && a.specified
  806.     }
  807.       , kc = function(a) {
  808.         a = a.tabIndex;
  809.         return w(a) && 0 <= a && 32768 > a
  810.     }
  811.       , mc = function(a) {
  812.         var b = [];
  813.         lc(a, b, !1);
  814.         return b.join("")
  815.     }
  816.       , lc = function(a, b, c) {
  817.         if (!(a.nodeName in gc))
  818.             if (3 == a.nodeType)
  819.                 c ? b.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g, "")) : b.push(a.nodeValue);
  820.             else if (a.nodeName in hc)
  821.                 b.push(hc[a.nodeName]);
  822.             else
  823.                 for (a = a.firstChild; a; )
  824.                     lc(a, b, c),
  825.                     a = a.nextSibling
  826.     }
  827.       , bc = function(a) {
  828.         if (a && "number" == typeof a.length) {
  829.             if (ea(a))
  830.                 return "function" ==
  831.                 typeof a.item || "string" == typeof a.item;
  832.             if (x(a))
  833.                 return "function" == typeof a.item
  834.         }
  835.         return !1
  836.     }
  837.       , Sb = function(a) {
  838.         this.a = a || m.document || document
  839.     }
  840.     ;
  841.     Sb.prototype.j = function(a) {
  842.         return Ub(this.a, a)
  843.     }
  844.     ;
  845.     Sb.prototype.b = function(a, b, c) {
  846.         var d = this.a
  847.           , e = arguments
  848.           , f = e[0]
  849.           , g = e[1];
  850.         if (!Pb && g && (g.name || g.type)) {
  851.             f = ["<", f];
  852.             g.name && f.push(' name="', va(g.name), '"');
  853.             if (g.type) {
  854.                 f.push(' type="', va(g.type), '"');
  855.                 var k = {};
  856.                 Ya(k, g);
  857.                 delete k.type;
  858.                 g = k
  859.             }
  860.             f.push(">");
  861.             f = f.join("")
  862.         }
  863.         f = d.createElement(f);
  864.         g && (v(g) ? f.className = g : u(g) ? f.className = g.join(" ") : Yb(f, g));
  865.         2 < e.length && cc(d, f, e, 2);
  866.         return f
  867.     }
  868.     ;
  869.     var nc = function(a) {
  870.         return "CSS1Compat" == a.a.compatMode
  871.     }
  872.     ;
  873.     Sb.prototype.c = function(a, b) {
  874.         cc(N(a), a, arguments, 1)
  875.     }
  876.     ;
  877.     Sb.prototype.getChildren = function(a) {
  878.         return Qb && void 0 != a.children ? a.children : Ja(a.childNodes, function(a) {
  879.             return 1 == a.nodeType
  880.         }
  881.         )
  882.     }
  883.     ;
  884.     Sb.prototype.contains = ec;
  885.     var oc = function(a) {
  886.         oc[" "](a);
  887.         return a
  888.     }
  889.     ;
  890.     oc[" "] = r;
  891.     var pc = !I || Mb(9)
  892.       , qc = !I || Mb(9)
  893.       , rc = I && !M("9");
  894.     !K || M("528");
  895.     J && M("1.9b") || I && M("8") || Eb && M("9.5") || K && M("528");
  896.     J && !M("8") || I && M("9");
  897.     var sc = function() {
  898.         this.v = this.v;
  899.         this.B = this.B
  900.     }
  901.     ;
  902.     sc.prototype.v = !1;
  903.     sc.prototype.O = function() {
  904.         this.v || (this.v = !0,
  905.         this.o())
  906.     }
  907.     ;
  908.     var tc = function(a, b) {
  909.         a.v ? b.call(void 0) : (a.B || (a.B = []),
  910.         a.B.push(q(void 0) ? y(b, void 0) : b))
  911.     }
  912.     ;
  913.     sc.prototype.o = function() {
  914.         if (this.B)
  915.             for (; this.B.length; )
  916.                 this.B.shift()()
  917.     }
  918.     ;
  919.     var uc = function(a) {
  920.         a && "function" == typeof a.O && a.O()
  921.     }
  922.     ;
  923.     var vc = function(a, b) {
  924.         this.type = a;
  925.         this.currentTarget = this.target = b;
  926.         this.defaultPrevented = this.ga = !1;
  927.         this.Eb = !0
  928.     }
  929.     ;
  930.     vc.prototype.stopPropagation = function() {
  931.         this.ga = !0
  932.     }
  933.     ;
  934.     vc.prototype.preventDefault = function() {
  935.         this.defaultPrevented = !0;
  936.         this.Eb = !1
  937.     }
  938.     ;
  939.     var O = function(a, b) {
  940.         vc.call(this, a ? a.type : "");
  941.         this.relatedTarget = this.currentTarget = this.target = null ;
  942.         this.charCode = this.keyCode = this.button = this.screenY = this.screenX = this.clientY = this.clientX = this.offsetY = this.offsetX = 0;
  943.         this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;
  944.         this.state = null ;
  945.         this.cb = !1;
  946.         this.Y = null ;
  947.         if (a) {
  948.             var c = this.type = a.type;
  949.             this.target = a.target || a.srcElement;
  950.             this.currentTarget = b;
  951.             var d = a.relatedTarget;
  952.             if (d) {
  953.                 if (J) {
  954.                     var e;
  955.                     a: {
  956.                         try {
  957.                             oc(d.nodeName);
  958.                             e = !0;
  959.                             break a
  960.                         } catch (f) {}
  961.                         e = !1
  962.                     }
  963.                     e || (d = null )
  964.                 }
  965.             } else
  966.                 "mouseover" ==
  967.                 c ? d = a.fromElement : "mouseout" == c && (d = a.toElement);
  968.             this.relatedTarget = d;
  969.             this.offsetX = K || void 0 !== a.offsetX ? a.offsetX : a.layerX;
  970.             this.offsetY = K || void 0 !== a.offsetY ? a.offsetY : a.layerY;
  971.             this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX;
  972.             this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY;
  973.             this.screenX = a.screenX || 0;
  974.             this.screenY = a.screenY || 0;
  975.             this.button = a.button;
  976.             this.keyCode = a.keyCode || 0;
  977.             this.charCode = a.charCode || ("keypress" == c ? a.keyCode : 0);
  978.             this.ctrlKey = a.ctrlKey;
  979.             this.altKey = a.altKey;
  980.             this.shiftKey = a.shiftKey;
  981.             this.metaKey =
  982.             a.metaKey;
  983.             this.cb = Gb ? a.metaKey : a.ctrlKey;
  984.             this.state = a.state;
  985.             this.Y = a;
  986.             a.defaultPrevented && this.preventDefault()
  987.         }
  988.     }
  989.     ;
  990.     A(O, vc);
  991.     var wc = [1, 4, 2]
  992.       , xc = function(a) {
  993.         return (pc ? 0 == a.Y.button : "click" == a.type ? !0 : !!(a.Y.button & wc[0])) && !(K && Gb && a.ctrlKey)
  994.     }
  995.     ;
  996.     O.prototype.stopPropagation = function() {
  997.         O.l.stopPropagation.call(this);
  998.         this.Y.stopPropagation ? this.Y.stopPropagation() : this.Y.cancelBubble = !0
  999.     }
  1000.     ;
  1001.     O.prototype.preventDefault = function() {
  1002.         O.l.preventDefault.call(this);
  1003.         var a = this.Y;
  1004.         if (a.preventDefault)
  1005.             a.preventDefault();
  1006.         else if (a.returnValue = !1,
  1007.         rc)
  1008.             try {
  1009.                 if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode)
  1010.                     a.keyCode = -1
  1011.             } catch (b) {}
  1012.     }
  1013.     ;
  1014.     O.prototype.ma = function() {
  1015.         return this.Y
  1016.     }
  1017.     ;
  1018.     var yc = "closure_listenable_" + (1E6 * Math.random() | 0)
  1019.       , zc = function(a) {
  1020.         return !(!a || !a[yc])
  1021.     }
  1022.       , Ac = 0;
  1023.     var Bc = function(a, b, c, d, e) {
  1024.         this.listener = a;
  1025.         this.proxy = null ;
  1026.         this.src = b;
  1027.         this.type = c;
  1028.         this.Fa = !!d;
  1029.         this.Ha = e;
  1030.         this.mb = ++Ac;
  1031.         this.removed = this.Ea = !1
  1032.     }
  1033.       , Cc = function(a) {
  1034.         a.removed = !0;
  1035.         a.listener = null ;
  1036.         a.proxy = null ;
  1037.         a.src = null ;
  1038.         a.Ha = null
  1039.     }
  1040.     ;
  1041.     var Dc = function(a) {
  1042.         this.src = a;
  1043.         this.a = {};
  1044.         this.b = 0
  1045.     }
  1046.     ;
  1047.     Dc.prototype.add = function(a, b, c, d, e) {
  1048.         var f = a.toString();
  1049.         a = this.a[f];
  1050.         a || (a = this.a[f] = [],
  1051.         this.b++);
  1052.         var g = Ec(a, b, d, e);
  1053.         -1 < g ? (b = a[g],
  1054.         c || (b.Ea = !1)) : (b = new Bc(b,this.src,f,!!d,e),
  1055.         b.Ea = c,
  1056.         a.push(b));
  1057.         return b
  1058.     }
  1059.     ;
  1060.     Dc.prototype.remove = function(a, b, c, d) {
  1061.         a = a.toString();
  1062.         if (!(a in this.a))
  1063.             return !1;
  1064.         var e = this.a[a];
  1065.         b = Ec(e, b, c, d);
  1066.         return -1 < b ? (Cc(e[b]),
  1067.         D(null  != e.length),
  1068.         E.splice.call(e, b, 1),
  1069.         0 == e.length && (delete this.a[a],
  1070.         this.b--),
  1071.         !0) : !1
  1072.     }
  1073.     ;
  1074.     var Fc = function(a, b) {
  1075.         var c = b.type;
  1076.         if (!(c in a.a))
  1077.             return !1;
  1078.         var d = Qa(a.a[c], b);
  1079.         d && (Cc(b),
  1080.         0 == a.a[c].length && (delete a.a[c],
  1081.         a.b--));
  1082.         return d
  1083.     }
  1084.     ;
  1085.     Dc.prototype.removeAll = function(a) {
  1086.         a = a && a.toString();
  1087.         var b = 0, c;
  1088.         for (c in this.a)
  1089.             if (!a || c == a) {
  1090.                 for (var d = this.a[c], e = 0; e < d.length; e++)
  1091.                     ++b,
  1092.                     Cc(d[e]);
  1093.                 delete this.a[c];
  1094.                 this.b--
  1095.             }
  1096.         return b
  1097.     }
  1098.     ;
  1099.     var Gc = function(a, b, c, d, e) {
  1100.         a = a.a[b.toString()];
  1101.         b = -1;
  1102.         a && (b = Ec(a, c, d, e));
  1103.         return -1 < b ? a[b] : null
  1104.     }
  1105.       , Ec = function(a, b, c, d) {
  1106.         for (var e = 0; e < a.length; ++e) {
  1107.             var f = a[e];
  1108.             if (!f.removed && f.listener == b && f.Fa == !!c && f.Ha == d)
  1109.                 return e
  1110.         }
  1111.         return -1
  1112.     }
  1113.     ;
  1114.     var Hc = "closure_lm_" + (1E6 * Math.random() | 0)
  1115.       , Ic = {}
  1116.       , Jc = 0
  1117.       , P = function(a, b, c, d, e) {
  1118.         if (u(b)) {
  1119.             for (var f = 0; f < b.length; f++)
  1120.                 P(a, b[f], c, d, e);
  1121.             return null
  1122.         }
  1123.         c = Kc(c);
  1124.         return zc(a) ? a.listen(b, c, d, e) : Lc(a, b, c, !1, d, e)
  1125.     }
  1126.       , Lc = function(a, b, c, d, e, f) {
  1127.         if (!b)
  1128.             throw Error("Invalid event type");
  1129.         var g = !!e
  1130.           , k = Mc(a);
  1131.         k || (a[Hc] = k = new Dc(a));
  1132.         c = k.add(b, c, d, e, f);
  1133.         if (c.proxy)
  1134.             return c;
  1135.         d = Nc();
  1136.         c.proxy = d;
  1137.         d.src = a;
  1138.         d.listener = c;
  1139.         a.addEventListener ? a.addEventListener(b.toString(), d, g) : a.attachEvent(Oc(b.toString()), d);
  1140.         Jc++;
  1141.         return c
  1142.     }
  1143.       , Nc = function() {
  1144.         var a =
  1145.         Pc
  1146.           , b = qc ? function(c) {
  1147.             return a.call(b.src, b.listener, c)
  1148.         }
  1149.          : function(c) {
  1150.             c = a.call(b.src, b.listener, c);
  1151.             if (!c)
  1152.                 return c
  1153.         }
  1154.         ;
  1155.         return b
  1156.     }
  1157.       , Qc = function(a, b, c, d, e) {
  1158.         if (u(b))
  1159.             for (var f = 0; f < b.length; f++)
  1160.                 Qc(a, b[f], c, d, e);
  1161.         else
  1162.             c = Kc(c),
  1163.             zc(a) ? a.F.add(String(b), c, !0, d, e) : Lc(a, b, c, !0, d, e)
  1164.     }
  1165.       , Rc = function(a, b, c, d, e) {
  1166.         if (u(b))
  1167.             for (var f = 0; f < b.length; f++)
  1168.                 Rc(a, b[f], c, d, e);
  1169.         else
  1170.             c = Kc(c),
  1171.             zc(a) ? a.F.remove(String(b), c, d, e) : a && (a = Mc(a)) && (b = Gc(a, b, c, !!d, e)) && Sc(b)
  1172.     }
  1173.       , Sc = function(a) {
  1174.         if (w(a) || !a || a.removed)
  1175.             return !1;
  1176.         var b = a.src;
  1177.         if (zc(b))
  1178.             return Fc(b.F,
  1179.             a);
  1180.         var c = a.type
  1181.           , d = a.proxy;
  1182.         b.removeEventListener ? b.removeEventListener(c, d, a.Fa) : b.detachEvent && b.detachEvent(Oc(c), d);
  1183.         Jc--;
  1184.         (c = Mc(b)) ? (Fc(c, a),
  1185.         0 == c.b && (c.src = null ,
  1186.         b[Hc] = null )) : Cc(a);
  1187.         return !0
  1188.     }
  1189.       , Tc = function(a) {
  1190.         if (a)
  1191.             if (zc(a))
  1192.                 a.F && a.F.removeAll(void 0);
  1193.             else if (a = Mc(a)) {
  1194.                 var b = 0, c;
  1195.                 for (c in a.a)
  1196.                     for (var d = a.a[c].concat(), e = 0; e < d.length; ++e)
  1197.                         Sc(d[e]) && ++b
  1198.             }
  1199.     }
  1200.       , Oc = function(a) {
  1201.         return a in Ic ? Ic[a] : Ic[a] = "on" + a
  1202.     }
  1203.       , Vc = function(a, b, c, d) {
  1204.         var e = !0;
  1205.         if (a = Mc(a))
  1206.             if (b = a.a[b.toString()])
  1207.                 for (b = b.concat(),
  1208.                 a = 0; a < b.length; a++) {
  1209.                     var f =
  1210.                     b[a];
  1211.                     f && f.Fa == c && !f.removed && (f = Uc(f, d),
  1212.                     e = e && !1 !== f)
  1213.                 }
  1214.         return e
  1215.     }
  1216.       , Uc = function(a, b) {
  1217.         var c = a.listener
  1218.           , d = a.Ha || a.src;
  1219.         a.Ea && Sc(a);
  1220.         return c.call(d, b)
  1221.     }
  1222.       , Pc = function(a, b) {
  1223.         if (a.removed)
  1224.             return !0;
  1225.         if (!qc) {
  1226.             var c;
  1227.             if (!(c = b))
  1228.                 a: {
  1229.                     c = ["window", "event"];
  1230.                     for (var d = m, e; e = c.shift(); )
  1231.                         if (null  != d[e])
  1232.                             d = d[e];
  1233.                         else {
  1234.                             c = null ;
  1235.                             break a
  1236.                         }
  1237.                     c = d
  1238.                 }
  1239.             e = c;
  1240.             c = new O(e,this);
  1241.             d = !0;
  1242.             if (!(0 > e.keyCode || void 0 != e.returnValue)) {
  1243.                 a: {
  1244.                     var f = !1;
  1245.                     if (0 == e.keyCode)
  1246.                         try {
  1247.                             e.keyCode = -1;
  1248.                             break a
  1249.                         } catch (g) {
  1250.                             f = !0
  1251.                         }
  1252.                     if (f || void 0 == e.returnValue)
  1253.                         e.returnValue = !0
  1254.                 }
  1255.                 e = [];
  1256.                 for (f = c.currentTarget; f; f =
  1257.                 f.parentNode)
  1258.                     e.push(f);
  1259.                 for (var f = a.type, k = e.length - 1; !c.ga && 0 <= k; k--) {
  1260.                     c.currentTarget = e[k];
  1261.                     var l = Vc(e[k], f, !0, c)
  1262.                       , d = d && l
  1263.                 }
  1264.                 for (k = 0; !c.ga && k < e.length; k++)
  1265.                     c.currentTarget = e[k],
  1266.                     l = Vc(e[k], f, !1, c),
  1267.                     d = d && l
  1268.             }
  1269.             return d
  1270.         }
  1271.         return Uc(a, new O(b,this))
  1272.     }
  1273.       , Mc = function(a) {
  1274.         a = a[Hc];
  1275.         return a instanceof Dc ? a : null
  1276.     }
  1277.       , Wc = "__closure_events_fn_" + (1E9 * Math.random() >>> 0)
  1278.       , Kc = function(a) {
  1279.         D(a, "Listener can not be null.");
  1280.         if (x(a))
  1281.             return a;
  1282.         D(a.handleEvent, "An object listener must have handleEvent method.");
  1283.         a[Wc] || (a[Wc] = function(b) {
  1284.             return a.handleEvent(b)
  1285.         }
  1286.         );
  1287.         return a[Wc]
  1288.     }
  1289.     ;
  1290.     var Xc = function(a) {
  1291.         if (a.classList)
  1292.             return a.classList;
  1293.         a = a.className;
  1294.         return v(a) && a.match(/\S+/g) || []
  1295.     }
  1296.       , Yc = function(a, b) {
  1297.         return a.classList ? a.classList.contains(b) : Pa(Xc(a), b)
  1298.     }
  1299.       , Zc = function(a, b) {
  1300.         a.classList ? a.classList.add(b) : Yc(a, b) || (a.className += 0 < a.className.length ? " " + b : b)
  1301.     }
  1302.       , $c = function(a, b) {
  1303.         if (a.classList)
  1304.             F(b, function(b) {
  1305.                 Zc(a, b)
  1306.             }
  1307.             );
  1308.         else {
  1309.             var c = {};
  1310.             F(Xc(a), function(a) {
  1311.                 c[a] = !0
  1312.             }
  1313.             );
  1314.             F(b, function(a) {
  1315.                 c[a] = !0
  1316.             }
  1317.             );
  1318.             a.className = "";
  1319.             for (var d in c)
  1320.                 a.className += 0 < a.className.length ? " " + d : d
  1321.         }
  1322.     }
  1323.       , ad = function(a, b) {
  1324.         a.classList ?
  1325.         a.classList.remove(b) : Yc(a, b) && (a.className = Ja(Xc(a), function(a) {
  1326.             return a != b
  1327.         }
  1328.         ).join(" "))
  1329.     }
  1330.       , bd = function(a, b) {
  1331.         a.classList ? F(b, function(b) {
  1332.             ad(a, b)
  1333.         }
  1334.         ) : a.className = Ja(Xc(a), function(a) {
  1335.             return !Pa(b, a)
  1336.         }
  1337.         ).join(" ")
  1338.     }
  1339.     ;
  1340.     var cd, dd = {
  1341.         Xb: "activedescendant",
  1342.         bc: "atomic",
  1343.         cc: "autocomplete",
  1344.         ec: "busy",
  1345.         hc: "checked",
  1346.         mc: "controls",
  1347.         oc: "describedby",
  1348.         rc: "disabled",
  1349.         tc: "dropeffect",
  1350.         uc: "expanded",
  1351.         vc: "flowto",
  1352.         wc: "grabbed",
  1353.         Ac: "haspopup",
  1354.         HIDDEN: "hidden",
  1355.         Dc: "invalid",
  1356.         Ec: "label",
  1357.         Fc: "labelledby",
  1358.         Gc: "level",
  1359.         Lc: "live",
  1360.         Vc: "multiline",
  1361.         Wc: "multiselectable",
  1362.         $c: "orientation",
  1363.         ad: "owns",
  1364.         bd: "posinset",
  1365.         dd: "pressed",
  1366.         hd: "readonly",
  1367.         kd: "relevant",
  1368.         ld: "required",
  1369.         rd: "selected",
  1370.         td: "setsize",
  1371.         vd: "sort",
  1372.         Id: "valuemax",
  1373.         Jd: "valuemin",
  1374.         Kd: "valuenow",
  1375.         Ld: "valuetext"
  1376.     };
  1377.     var ed = {
  1378.         Yb: "alert",
  1379.         Zb: "alertdialog",
  1380.         $b: "application",
  1381.         ac: "article",
  1382.         dc: "banner",
  1383.         fc: "button",
  1384.         gc: "checkbox",
  1385.         ic: "columnheader",
  1386.         jc: "combobox",
  1387.         kc: "complementary",
  1388.         lc: "contentinfo",
  1389.         nc: "definition",
  1390.         pc: "dialog",
  1391.         qc: "directory",
  1392.         sc: "document",
  1393.         FORM: "form",
  1394.         xc: "grid",
  1395.         yc: "gridcell",
  1396.         zc: "group",
  1397.         Bc: "heading",
  1398.         Cc: "img",
  1399.         Hc: "link",
  1400.         Ic: "list",
  1401.         Jc: "listbox",
  1402.         Kc: "listitem",
  1403.         Mc: "log",
  1404.         Nc: "main",
  1405.         Oc: "marquee",
  1406.         Pc: "math",
  1407.         Qc: "menu",
  1408.         Rc: "menubar",
  1409.         Sc: "menuitem",
  1410.         Tc: "menuitemcheckbox",
  1411.         Uc: "menuitemradio",
  1412.         Xc: "navigation",
  1413.         Yc: "note",
  1414.         Zc: "option",
  1415.         cd: "presentation",
  1416.         ed: "progressbar",
  1417.         fd: "radio",
  1418.         gd: "radiogroup",
  1419.         jd: "region",
  1420.         md: "row",
  1421.         nd: "rowgroup",
  1422.         od: "rowheader",
  1423.         pd: "scrollbar",
  1424.         qd: "search",
  1425.         sd: "separator",
  1426.         ud: "slider",
  1427.         wd: "spinbutton",
  1428.         xd: "status",
  1429.         yd: "tab",
  1430.         zd: "tablist",
  1431.         Ad: "tabpanel",
  1432.         Bd: "textbox",
  1433.         Cd: "timer",
  1434.         Dd: "toolbar",
  1435.         Ed: "tooltip",
  1436.         Fd: "tree",
  1437.         Gd: "treegrid",
  1438.         Hd: "treeitem"
  1439.     };
  1440.     var fd = function(a, b, c) {
  1441.         u(c) && (c = c.join(" "));
  1442.         var d;
  1443.         D(b, "ARIA attribute cannot be empty.");
  1444.         D(Wa(dd, b), "No such ARIA attribute " + b);
  1445.         d = "aria-" + b;
  1446.         "" === c || void 0 == c ? (cd || (cd = {
  1447.             atomic: !1,
  1448.             autocomplete: "none",
  1449.             dropeffect: "none",
  1450.             haspopup: !1,
  1451.             live: "off",
  1452.             multiline: !1,
  1453.             multiselectable: !1,
  1454.             orientation: "vertical",
  1455.             readonly: !1,
  1456.             relevant: "additions text",
  1457.             required: !1,
  1458.             sort: "none",
  1459.             busy: !1,
  1460.             disabled: !1,
  1461.             hidden: !1,
  1462.             invalid: "false"
  1463.         }),
  1464.         c = cd,
  1465.         b in c ? a.setAttribute(d, c[b]) : a.removeAttribute(d)) : a.setAttribute(d, c)
  1466.     }
  1467.     ;
  1468.     var gd = function(a) {
  1469.         sc.call(this);
  1470.         this.b = a;
  1471.         this.a = {}
  1472.     }
  1473.     ;
  1474.     A(gd, sc);
  1475.     var hd = [];
  1476.     gd.prototype.listen = function(a, b, c, d) {
  1477.         u(b) || (b && (hd[0] = b.toString()),
  1478.         b = hd);
  1479.         for (var e = 0; e < b.length; e++) {
  1480.             var f = P(a, b[e], c || this.handleEvent, d || !1, this.b || this);
  1481.             if (!f)
  1482.                 break;
  1483.             this.a[f.mb] = f
  1484.         }
  1485.         return this
  1486.     }
  1487.     ;
  1488.     var id = function(a, b, c, d, e, f) {
  1489.         if (u(c))
  1490.             for (var g = 0; g < c.length; g++)
  1491.                 id(a, b, c[g], d, e, f);
  1492.         else
  1493.             d = d || a.handleEvent,
  1494.             f = f || a.b || a,
  1495.             d = Kc(d),
  1496.             e = !!e,
  1497.             c = zc(b) ? Gc(b.F, String(c), d, e, f) : b ? (b = Mc(b)) ? Gc(b, c, d, e, f) : null  : null ,
  1498.             c && (Sc(c),
  1499.             delete a.a[c.mb]);
  1500.         return a
  1501.     }
  1502.     ;
  1503.     gd.prototype.removeAll = function() {
  1504.         Ta(this.a, Sc);
  1505.         this.a = {}
  1506.     }
  1507.     ;
  1508.     gd.prototype.o = function() {
  1509.         gd.l.o.call(this);
  1510.         this.removeAll()
  1511.     }
  1512.     ;
  1513.     gd.prototype.handleEvent = function() {
  1514.         throw Error("EventHandler.handleEvent not implemented");
  1515.     }
  1516.     ;
  1517.     var md = function(a, b, c, d, e) {
  1518.         if (!(I || K && M("525")))
  1519.             return !0;
  1520.         if (Gb && e)
  1521.             return jd(a);
  1522.         if (e && !d)
  1523.             return !1;
  1524.         w(b) && (b = kd(b));
  1525.         if (!c && (17 == b || 18 == b || Gb && 91 == b))
  1526.             return !1;
  1527.         if (K && d && c)
  1528.             switch (a) {
  1529.             case 220:
  1530.             case 219:
  1531.             case 221:
  1532.             case 192:
  1533.             case 186:
  1534.             case 189:
  1535.             case 187:
  1536.             case 188:
  1537.             case 190:
  1538.             case 191:
  1539.             case 192:
  1540.             case 222:
  1541.                 return !1
  1542.             }
  1543.         if (I && d && b == a)
  1544.             return !1;
  1545.         switch (a) {
  1546.         case 13:
  1547.             return !0;
  1548.         case 27:
  1549.             return !K
  1550.         }
  1551.         return jd(a)
  1552.     }
  1553.       , jd = function(a) {
  1554.         if (48 <= a && 57 >= a || 96 <= a && 106 >= a || 65 <= a && 90 >= a || K && 0 == a)
  1555.             return !0;
  1556.         switch (a) {
  1557.         case 32:
  1558.         case 63:
  1559.         case 107:
  1560.         case 109:
  1561.         case 110:
  1562.         case 111:
  1563.         case 186:
  1564.         case 59:
  1565.         case 189:
  1566.         case 187:
  1567.         case 61:
  1568.         case 188:
  1569.         case 190:
  1570.         case 191:
  1571.         case 192:
  1572.         case 222:
  1573.         case 219:
  1574.         case 220:
  1575.         case 221:
  1576.             return !0;
  1577.         default:
  1578.             return !1
  1579.         }
  1580.     }
  1581.       , kd = function(a) {
  1582.         if (J)
  1583.             a = nd(a);
  1584.         else if (Gb && K)
  1585.             a: switch (a) {
  1586.             case 93:
  1587.                 a = 91;
  1588.                 break a
  1589.             }
  1590.         return a
  1591.     }
  1592.       , nd = function(a) {
  1593.         switch (a) {
  1594.         case 61:
  1595.             return 187;
  1596.         case 59:
  1597.             return 186;
  1598.         case 173:
  1599.             return 189;
  1600.         case 224:
  1601.             return 91;
  1602.         case 0:
  1603.             return 224;
  1604.         default:
  1605.             return a
  1606.         }
  1607.     }
  1608.     ;
  1609.     var od = function() {}
  1610.       , pd = new od
  1611.       , qd = ["click", J ? "keypress" : "keydown", "keyup"];
  1612.     od.prototype.listen = function(a, b, c, d, e) {
  1613.         var f = function(a) {
  1614.             var c = Kc(b)
  1615.               , e = a.target
  1616.               , e = ea(e) && 1 == e.nodeType ? a.target.getAttribute("role") || null  : null ;
  1617.             "click" == a.type && xc(a) ? c.call(d, a) : 13 != a.keyCode && 3 != a.keyCode || "keyup" == a.type ? 32 != a.keyCode || "keyup" != a.type || "button" != e && "tab" != e || (c.call(d, a),
  1618.             a.preventDefault()) : (a.type = "keypress",
  1619.             c.call(d, a))
  1620.         }
  1621.         ;
  1622.         f.a = b;
  1623.         f.b = d;
  1624.         e ? e.listen(a, qd, f, c) : P(a, qd, f, c)
  1625.     }
  1626.     ;
  1627.     var Q = function() {
  1628.         sc.call(this);
  1629.         this.F = new Dc(this);
  1630.         this.Hb = this;
  1631.         this.La = null
  1632.     }
  1633.     ;
  1634.     A(Q, sc);
  1635.     Q.prototype[yc] = !0;
  1636.     Q.prototype.Ma = function(a) {
  1637.         this.La = a
  1638.     }
  1639.     ;
  1640.     Q.prototype.addEventListener = function(a, b, c, d) {
  1641.         P(this, a, b, c, d)
  1642.     }
  1643.     ;
  1644.     Q.prototype.removeEventListener = function(a, b, c, d) {
  1645.         Rc(this, a, b, c, d)
  1646.     }
  1647.     ;
  1648.     var R = function(a, b) {
  1649.         rd(a);
  1650.         var c, d = a.La;
  1651.         if (d) {
  1652.             c = [];
  1653.             for (var e = 1; d; d = d.La)
  1654.                 c.push(d),
  1655.                 D(1E3 > ++e, "infinite loop")
  1656.         }
  1657.         var d = a.Hb
  1658.           , e = b
  1659.           , f = e.type || e;
  1660.         if (v(e))
  1661.             e = new vc(e,d);
  1662.         else if (e instanceof vc)
  1663.             e.target = e.target || d;
  1664.         else {
  1665.             var g = e
  1666.               , e = new vc(f,d);
  1667.             Ya(e, g)
  1668.         }
  1669.         var g = !0, k;
  1670.         if (c)
  1671.             for (var l = c.length - 1; !e.ga && 0 <= l; l--)
  1672.                 k = e.currentTarget = c[l],
  1673.                 g = sd(k, f, !0, e) && g;
  1674.         e.ga || (k = e.currentTarget = d,
  1675.         g = sd(k, f, !0, e) && g,
  1676.         e.ga || (g = sd(k, f, !1, e) && g));
  1677.         if (c)
  1678.             for (l = 0; !e.ga && l < c.length; l++)
  1679.                 k = e.currentTarget = c[l],
  1680.                 g = sd(k, f, !1, e) && g;
  1681.         return g
  1682.     }
  1683.     ;
  1684.     Q.prototype.o = function() {
  1685.         Q.l.o.call(this);
  1686.         this.F && this.F.removeAll(void 0);
  1687.         this.La = null
  1688.     }
  1689.     ;
  1690.     Q.prototype.listen = function(a, b, c, d) {
  1691.         rd(this);
  1692.         return this.F.add(String(a), b, !1, c, d)
  1693.     }
  1694.     ;
  1695.     var sd = function(a, b, c, d) {
  1696.         b = a.F.a[String(b)];
  1697.         if (!b)
  1698.             return !0;
  1699.         b = b.concat();
  1700.         for (var e = !0, f = 0; f < b.length; ++f) {
  1701.             var g = b[f];
  1702.             if (g && !g.removed && g.Fa == c) {
  1703.                 var k = g.listener
  1704.                   , l = g.Ha || g.src;
  1705.                 g.Ea && Fc(a.F, g);
  1706.                 e = !1 !== k.call(l, d) && e
  1707.             }
  1708.         }
  1709.         return e && 0 != d.Eb
  1710.     }
  1711.       , rd = function(a) {
  1712.         D(a.F, "Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")
  1713.     }
  1714.     ;
  1715.     var td = function() {
  1716.         Q.call(this);
  1717.         this.b = 0
  1718.     }
  1719.     ;
  1720.     A(td, Q);
  1721.     td.prototype.onStop = function() {
  1722.         R(this, "stop")
  1723.     }
  1724.     ;
  1725.     var ud = function(a, b, c, d) {
  1726.         this.top = a;
  1727.         this.right = b;
  1728.         this.bottom = c;
  1729.         this.left = d
  1730.     }
  1731.     ;
  1732.     h = ud.prototype;
  1733.     h.clone = function() {
  1734.         return new ud(this.top,this.right,this.bottom,this.left)
  1735.     }
  1736.     ;
  1737.     h.toString = function() {
  1738.         return "(" + this.top + "t, " + this.right + "r, " + this.bottom + "b, " + this.left + "l)"
  1739.     }
  1740.     ;
  1741.     h.contains = function(a) {
  1742.         return this && a ? a instanceof ud ? a.left >= this.left && a.right <= this.right && a.top >= this.top && a.bottom <= this.bottom : a.x >= this.left && a.x <= this.right && a.y >= this.top && a.y <= this.bottom : !1
  1743.     }
  1744.     ;
  1745.     h.floor = function() {
  1746.         this.top = Math.floor(this.top);
  1747.         this.right = Math.floor(this.right);
  1748.         this.bottom = Math.floor(this.bottom);
  1749.         this.left = Math.floor(this.left);
  1750.         return this
  1751.     }
  1752.     ;
  1753.     h.round = function() {
  1754.         this.top = Math.round(this.top);
  1755.         this.right = Math.round(this.right);
  1756.         this.bottom = Math.round(this.bottom);
  1757.         this.left = Math.round(this.left);
  1758.         return this
  1759.     }
  1760.     ;
  1761.     var vd = function(a, b, c, d) {
  1762.         this.left = a;
  1763.         this.top = b;
  1764.         this.width = c;
  1765.         this.height = d
  1766.     }
  1767.     ;
  1768.     h = vd.prototype;
  1769.     h.clone = function() {
  1770.         return new vd(this.left,this.top,this.width,this.height)
  1771.     }
  1772.     ;
  1773.     h.toString = function() {
  1774.         return "(" + this.left + ", " + this.top + " - " + this.width + "w x " + this.height + "h)"
  1775.     }
  1776.     ;
  1777.     h.contains = function(a) {
  1778.         return a instanceof vd ? this.left <= a.left && this.left + this.width >= a.left + a.width && this.top <= a.top && this.top + this.height >= a.top + a.height : a.x >= this.left && a.x <= this.left + this.width && a.y >= this.top && a.y <= this.top + this.height
  1779.     }
  1780.     ;
  1781.     h.floor = function() {
  1782.         this.left = Math.floor(this.left);
  1783.         this.top = Math.floor(this.top);
  1784.         this.width = Math.floor(this.width);
  1785.         this.height = Math.floor(this.height);
  1786.         return this
  1787.     }
  1788.     ;
  1789.     h.round = function() {
  1790.         this.left = Math.round(this.left);
  1791.         this.top = Math.round(this.top);
  1792.         this.width = Math.round(this.width);
  1793.         this.height = Math.round(this.height);
  1794.         return this
  1795.     }
  1796.     ;
  1797.     var xd = function(a, b, c) {
  1798.         if (v(b))
  1799.             (b = wd(a, b)) && (a.style[b] = c);
  1800.         else
  1801.             for (var d in b) {
  1802.                 c = a;
  1803.                 var e = b[d]
  1804.                   , f = wd(c, d);
  1805.                 f && (c.style[f] = e)
  1806.             }
  1807.     }
  1808.       , yd = {}
  1809.       , wd = function(a, b) {
  1810.         var c = yd[b];
  1811.         if (!c) {
  1812.             var d = xa(b)
  1813.               , c = d;
  1814.             void 0 === a.style[d] && (d = (K ? "Webkit" : J ? "Moz" : I ? "ms" : Eb ? "O" : null ) + ya(d),
  1815.             void 0 !== a.style[d] && (c = d));
  1816.             yd[b] = c
  1817.         }
  1818.         return c
  1819.     }
  1820.       , zd = function(a, b) {
  1821.         var c = N(a);
  1822.         return c.defaultView && c.defaultView.getComputedStyle && (c = c.defaultView.getComputedStyle(a, null )) ? c[b] || c.getPropertyValue(b) || "" : ""
  1823.     }
  1824.       , Ad = function(a, b) {
  1825.         return zd(a, b) || (a.currentStyle ?
  1826.         a.currentStyle[b] : null ) || a.style && a.style[b]
  1827.     }
  1828.       , Cd = function(a, b, c) {
  1829.         var d;
  1830.         b instanceof G ? (d = b.x,
  1831.         b = b.y) : (d = b,
  1832.         b = c);
  1833.         a.style.left = Bd(d);
  1834.         a.style.top = Bd(b)
  1835.     }
  1836.       , Dd = function(a) {
  1837.         var b;
  1838.         try {
  1839.             b = a.getBoundingClientRect()
  1840.         } catch (c) {
  1841.             return {
  1842.                 left: 0,
  1843.                 top: 0,
  1844.                 right: 0,
  1845.                 bottom: 0
  1846.             }
  1847.         }
  1848.         I && a.ownerDocument.body && (a = a.ownerDocument,
  1849.         b.left -= a.documentElement.clientLeft + a.body.clientLeft,
  1850.         b.top -= a.documentElement.clientTop + a.body.clientTop);
  1851.         return b
  1852.     }
  1853.       , Ed = function(a) {
  1854.         if (I && !Mb(8))
  1855.             return a.offsetParent;
  1856.         var b = N(a)
  1857.           , c = Ad(a, "position")
  1858.           , d = "fixed" ==
  1859.         c || "absolute" == c;
  1860.         for (a = a.parentNode; a && a != b; a = a.parentNode)
  1861.             if (11 == a.nodeType && a.host && (a = a.host),
  1862.             c = Ad(a, "position"),
  1863.             d = d && "static" == c && a != b.documentElement && a != b.body,
  1864.             !d && (a.scrollWidth > a.clientWidth || a.scrollHeight > a.clientHeight || "fixed" == c || "absolute" == c || "relative" == c))
  1865.                 return a;
  1866.         return null
  1867.     }
  1868.       , Gd = function(a) {
  1869.         for (var b = new ud(0,Infinity,Infinity,0), c = Tb(a), d = c.a.body, e = c.a.documentElement, f = Zb(c.a); a = Ed(a); )
  1870.             if (!(I && 0 == a.clientWidth || K && 0 == a.clientHeight && a == d) && a != d && a != e && "visible" != Ad(a, "overflow")) {
  1871.                 var g =
  1872.                 Fd(a)
  1873.                   , k = new G(a.clientLeft,a.clientTop);
  1874.                 g.x += k.x;
  1875.                 g.y += k.y;
  1876.                 b.top = Math.max(b.top, g.y);
  1877.                 b.right = Math.min(b.right, g.x + a.clientWidth);
  1878.                 b.bottom = Math.min(b.bottom, g.y + a.clientHeight);
  1879.                 b.left = Math.max(b.left, g.x)
  1880.             }
  1881.         d = f.scrollLeft;
  1882.         f = f.scrollTop;
  1883.         b.left = Math.max(b.left, d);
  1884.         b.top = Math.max(b.top, f);
  1885.         c = ($b(c.a) || window).document;
  1886.         c = "CSS1Compat" == c.compatMode ? c.documentElement : c.body;
  1887.         c = new yb(c.clientWidth,c.clientHeight);
  1888.         b.right = Math.min(b.right, d + c.width);
  1889.         b.bottom = Math.min(b.bottom, f + c.height);
  1890.         return 0 <= b.top && 0 <= b.left &&
  1891.         b.bottom > b.top && b.right > b.left ? b : null
  1892.     }
  1893.       , Fd = function(a) {
  1894.         var b = N(a);
  1895.         Ea(a, "Parameter is required");
  1896.         var c = new G(0,0), d;
  1897.         d = b ? N(b) : document;
  1898.         d = !I || Mb(9) || nc(Tb(d)) ? d.documentElement : d.body;
  1899.         if (a == d)
  1900.             return c;
  1901.         a = Dd(a);
  1902.         b = Tb(b);
  1903.         b = ac(b.a);
  1904.         c.x = a.left + b.x;
  1905.         c.y = a.top + b.y;
  1906.         return c
  1907.     }
  1908.       , Id = function(a, b) {
  1909.         var c = Hd(a)
  1910.           , d = Hd(b);
  1911.         return new G(c.x - d.x,c.y - d.y)
  1912.     }
  1913.       , Jd = function(a) {
  1914.         a = Dd(a);
  1915.         return new G(a.left,a.top)
  1916.     }
  1917.       , Hd = function(a) {
  1918.         D(a);
  1919.         if (1 == a.nodeType)
  1920.             return Jd(a);
  1921.         var b = x(a.ma)
  1922.           , c = a;
  1923.         a.targetTouches && a.targetTouches.length ? c = a.targetTouches[0] :
  1924.         b && a.ma().targetTouches && a.ma().targetTouches.length && (c = a.ma().targetTouches[0]);
  1925.         return new G(c.clientX,c.clientY)
  1926.     }
  1927.       , Bd = function(a) {
  1928.         "number" == typeof a && (a = a + "px");
  1929.         return a
  1930.     }
  1931.       , Ld = function(a) {
  1932.         var b = Kd;
  1933.         if ("none" != Ad(a, "display"))
  1934.             return b(a);
  1935.         var c = a.style
  1936.           , d = c.display
  1937.           , e = c.visibility
  1938.           , f = c.position;
  1939.         c.visibility = "hidden";
  1940.         c.position = "absolute";
  1941.         c.display = "inline";
  1942.         a = b(a);
  1943.         c.display = d;
  1944.         c.position = f;
  1945.         c.visibility = e;
  1946.         return a
  1947.     }
  1948.       , Kd = function(a) {
  1949.         var b = a.offsetWidth
  1950.           , c = a.offsetHeight
  1951.           , d = K && !b && !c;
  1952.         return q(b) && !d || !a.getBoundingClientRect ?
  1953.         new yb(b,c) : (a = Dd(a),
  1954.         new yb(a.right - a.left,a.bottom - a.top))
  1955.     }
  1956.       , Md = function(a) {
  1957.         var b = Fd(a);
  1958.         a = Ld(a);
  1959.         return new vd(b.x,b.y,a.width,a.height)
  1960.     }
  1961.       , Nd = function(a, b) {
  1962.         a.style.display = b ? "" : "none"
  1963.     }
  1964.       , Od = function(a) {
  1965.         return "rtl" == Ad(a, "direction")
  1966.     }
  1967.       , Pd = J ? "MozUserSelect" : K ? "WebkitUserSelect" : null
  1968.       , Qd = function(a, b) {
  1969.         if (/^\d+px?$/.test(b))
  1970.             return parseInt(b, 10);
  1971.         var c = a.style.left
  1972.           , d = a.runtimeStyle.left;
  1973.         a.runtimeStyle.left = a.currentStyle.left;
  1974.         a.style.left = b;
  1975.         var e = a.style.pixelLeft;
  1976.         a.style.left = c;
  1977.         a.runtimeStyle.left = d;
  1978.         return e
  1979.     }
  1980.       ,
  1981.     Rd = function(a, b) {
  1982.         var c = a.currentStyle ? a.currentStyle[b] : null ;
  1983.         return c ? Qd(a, c) : 0
  1984.     }
  1985.       , Sd = {
  1986.         thin: 2,
  1987.         medium: 4,
  1988.         thick: 6
  1989.     }
  1990.       , Td = function(a, b) {
  1991.         if ("none" == (a.currentStyle ? a.currentStyle[b + "Style"] : null ))
  1992.             return 0;
  1993.         var c = a.currentStyle ? a.currentStyle[b + "Width"] : null ;
  1994.         return c in Sd ? Sd[c] : Qd(a, c)
  1995.     }
  1996.     ;
  1997.     I && M(12);
  1998.     var Ud = function(a, b) {
  1999.         u(b) || (b = [b]);
  2000.         D(0 < b.length, "At least one Css3Property should be specified.");
  2001.         var c = Ka(b, function(a) {
  2002.             if (v(a))
  2003.                 return a;
  2004.             Ea(a, "Expected css3 property to be an object.");
  2005.             var b = a.Db + " " + a.duration + "s " + a.timing + " " + a.kb + "s";
  2006.             D(a.Db && w(a.duration) && a.timing && w(a.kb), "Unexpected css3 property value: %s", b);
  2007.             return b
  2008.         }
  2009.         );
  2010.         xd(a, "transition", c.join(","))
  2011.     }
  2012.       , Vd = function(a) {
  2013.         var b = !1, c;
  2014.         return function() {
  2015.             b || (c = a(),
  2016.             b = !0);
  2017.             return c
  2018.         }
  2019.     }
  2020.     (function() {
  2021.         if (I)
  2022.             return M("10.0");
  2023.         var a = document.createElement("DIV")
  2024.           ,
  2025.         b = K ? "-webkit" : J ? "-moz" : I ? "-ms" : Eb ? "-o" : null
  2026.           , c = {
  2027.             transition: "opacity 1s linear"
  2028.         };
  2029.         b && (c[b + "-transition"] = "opacity 1s linear");
  2030.         b = {
  2031.             style: c
  2032.         };
  2033.         if (!sb.test("div"))
  2034.             throw Error("Invalid tag name <div>.");
  2035.         if ("DIV" in ub)
  2036.             throw Error("Tag name <div> is not allowed for SafeHtml.");
  2037.         var c = null
  2038.           , d = "<div";
  2039.         if (b)
  2040.             for (var e in b) {
  2041.                 if (!sb.test(e))
  2042.                     throw Error('Invalid attribute name "' + e + '".');
  2043.                 var f = b[e];
  2044.                 if (null  != f) {
  2045.                     var g;
  2046.                     g = e;
  2047.                     if (f instanceof cb)
  2048.                         f = db(f);
  2049.                     else if ("style" == g.toLowerCase()) {
  2050.                         if (!ea(f))
  2051.                             throw Error('The "style" attribute requires goog.html.SafeStyle or map of style properties, ' +
  2052.                             typeof f + " given: " + f);
  2053.                         if (!(f instanceof fb)) {
  2054.                             var k = ""
  2055.                               , l = void 0;
  2056.                             for (l in f) {
  2057.                                 if (!/^[-_a-zA-Z0-9]+$/.test(l))
  2058.                                     throw Error("Name allows only [-_a-zA-Z0-9], got: " + l);
  2059.                                 var p = f[l];
  2060.                                 if (null  != p) {
  2061.                                     if (p instanceof cb)
  2062.                                         p = db(p),
  2063.                                         D(!/[{;}]/.test(p), "Value does not allow [{;}].");
  2064.                                     else if (ib.test(p)) {
  2065.                                         for (var n = !0, t = !0, C = 0; C < p.length; C++) {
  2066.                                             var L = p.charAt(C);
  2067.                                             "'" == L && t ? n = !n : '"' == L && n && (t = !t)
  2068.                                         }
  2069.                                         n && t || (Ba("String value requires balanced quotes, got: " + p),
  2070.                                         p = "zClosurez")
  2071.                                     } else
  2072.                                         Ba("String value allows only [-,.\"'%_!# a-zA-Z0-9], got: " +
  2073.                                         p),
  2074.                                         p = "zClosurez";
  2075.                                     k += l + ":" + p + ";"
  2076.                                 }
  2077.                             }
  2078.                             k ? (D(!/[<>]/.test(k), "Forbidden characters in style string: " + k),
  2079.                             f = gb(k)) : f = hb
  2080.                         }
  2081.                         k = void 0;
  2082.                         f instanceof fb && f.constructor === fb && f.b === eb ? k = f.a : (Ba("expected object of type SafeStyle, got '" + f + "'"),
  2083.                         k = "type_error:SafeStyle");
  2084.                         f = k
  2085.                     } else {
  2086.                         if (/^on/i.test(g))
  2087.                             throw Error('Attribute "' + g + '" requires goog.string.Const value, "' + f + '" given.');
  2088.                         if (g.toLowerCase() in tb)
  2089.                             if (f instanceof mb)
  2090.                                 f instanceof mb && f.constructor === mb && f.a === lb ? f = "" : (Ba("expected object of type TrustedResourceUrl, got '" +
  2091.                                 f + "'"),
  2092.                                 f = "type_error:TrustedResourceUrl");
  2093.                             else if (f instanceof kb)
  2094.                                 f instanceof kb && f.constructor === kb && f.a === jb ? f = "" : (Ba("expected object of type SafeUrl, got '" + f + "'"),
  2095.                                 f = "type_error:SafeUrl");
  2096.                             else
  2097.                                 throw Error('Attribute "' + g + '" on tag "div" requires goog.html.SafeUrl or goog.string.Const value, "' + f + '" given.');
  2098.                     }
  2099.                     f.qa && (f = f.oa());
  2100.                     D(v(f) || w(f), "String or number value expected, got " + typeof f + " with value: " + f);
  2101.                     g = g + '="' + va(String(f)) + '"';
  2102.                     d = d + (" " + g)
  2103.                 }
  2104.             }
  2105.         e = void 0;
  2106.         null  != e ? u(e) || (e = [e]) : e = [];
  2107.         !0 === ab.div ?
  2108.         (D(!e.length, "Void tag <div> does not allow content."),
  2109.         d += ">") : (c = vb(e),
  2110.         d += ">" + pb(c) + "</div>",
  2111.         c = c.na());
  2112.         (b = b && b.dir) && (/^(ltr|rtl|auto)$/i.test(b) ? c = 0 : c = null );
  2113.         b = qb(d, c);
  2114.         a.innerHTML = pb(b);
  2115.         a = a.firstChild;
  2116.         D(a.nodeType == Node.ELEMENT_NODE);
  2117.         b = a.style[xa("transition")];
  2118.         return "" != ("undefined" !== typeof b ? b : a.style[wd(a, "transition")] || "")
  2119.     }
  2120.     );
  2121.     var Wd = function(a, b, c) {
  2122.         this.f = c;
  2123.         this.c = a;
  2124.         this.g = b;
  2125.         this.b = 0;
  2126.         this.a = null
  2127.     }
  2128.     ;
  2129.     Wd.prototype.get = function() {
  2130.         var a;
  2131.         0 < this.b ? (this.b--,
  2132.         a = this.a,
  2133.         this.a = a.next,
  2134.         a.next = null ) : a = this.c();
  2135.         return a
  2136.     }
  2137.     ;
  2138.     var Xd = function(a, b) {
  2139.         a.g(b);
  2140.         a.b < a.f && (a.b++,
  2141.         b.next = a.a,
  2142.         a.a = b)
  2143.     }
  2144.     ;
  2145.     var Yd = function(a) {
  2146.         m.setTimeout(function() {
  2147.             throw a;
  2148.         }
  2149.         , 0)
  2150.     }
  2151.     , Zd, $d = function() {
  2152.         var a = m.MessageChannel;
  2153.         "undefined" === typeof a && "undefined" !== typeof window && window.postMessage && window.addEventListener && !H("Presto") && (a = function() {
  2154.             var a = document.createElement("IFRAME");
  2155.             a.style.display = "none";
  2156.             a.src = "";
  2157.             document.documentElement.appendChild(a);
  2158.             var b = a.contentWindow
  2159.               , a = b.document;
  2160.             a.open();
  2161.             a.write("");
  2162.             a.close();
  2163.             var c = "callImmediate" + Math.random()
  2164.               , d = "file:" == b.location.protocol ? "*" : b.location.protocol + "//" + b.location.host
  2165.               ,
  2166.             a = y(function(a) {
  2167.                 if (("*" == d || a.origin == d) && a.data == c)
  2168.                     this.port1.onmessage()
  2169.             }
  2170.             , this);
  2171.             b.addEventListener("message", a, !1);
  2172.             this.port1 = {};
  2173.             this.port2 = {
  2174.                 postMessage: function() {
  2175.                     b.postMessage(c, d)
  2176.                 }
  2177.             }
  2178.         }
  2179.         );
  2180.         if ("undefined" !== typeof a && !Cb()) {
  2181.             var b = new a
  2182.               , c = {}
  2183.               , d = c;
  2184.             b.port1.onmessage = function() {
  2185.                 if (q(c.next)) {
  2186.                     c = c.next;
  2187.                     var a = c.gb;
  2188.                     c.gb = null ;
  2189.                     a()
  2190.                 }
  2191.             }
  2192.             ;
  2193.             return function(a) {
  2194.                 d.next = {
  2195.                     gb: a
  2196.                 };
  2197.                 d = d.next;
  2198.                 b.port2.postMessage(0)
  2199.             }
  2200.         }
  2201.         return "undefined" !== typeof document && "onreadystatechange" in document.createElement("SCRIPT") ? function(a) {
  2202.             var b = document.createElement("SCRIPT");
  2203.             b.onreadystatechange = function() {
  2204.                 b.onreadystatechange = null ;
  2205.                 b.parentNode.removeChild(b);
  2206.                 b = null ;
  2207.                 a();
  2208.                 a = null
  2209.             }
  2210.             ;
  2211.             document.documentElement.appendChild(b)
  2212.         }
  2213.          : function(a) {
  2214.             m.setTimeout(a, 0)
  2215.         }
  2216.     }
  2217.     ;
  2218.     var ae = function() {
  2219.         this.b = this.a = null
  2220.     }
  2221.       , ce = new Wd(function() {
  2222.         return new be
  2223.     }
  2224.     ,function(a) {
  2225.         a.reset()
  2226.     }
  2227.     ,100);
  2228.     ae.prototype.add = function(a, b) {
  2229.         var c = ce.get();
  2230.         c.set(a, b);
  2231.         this.b ? this.b.next = c : (D(!this.a),
  2232.         this.a = c);
  2233.         this.b = c
  2234.     }
  2235.     ;
  2236.     ae.prototype.remove = function() {
  2237.         var a = null ;
  2238.         this.a && (a = this.a,
  2239.         this.a = this.a.next,
  2240.         this.a || (this.b = null ),
  2241.         a.next = null );
  2242.         return a
  2243.     }
  2244.     ;
  2245.     var be = function() {
  2246.         this.next = this.b = this.a = null
  2247.     }
  2248.     ;
  2249.     be.prototype.set = function(a, b) {
  2250.         this.a = a;
  2251.         this.b = b;
  2252.         this.next = null
  2253.     }
  2254.     ;
  2255.     be.prototype.reset = function() {
  2256.         this.next = this.b = this.a = null
  2257.     }
  2258.     ;
  2259.     var he = function(a, b) {
  2260.         de || ee();
  2261.         fe || (de(),
  2262.         fe = !0);
  2263.         ge.add(a, b)
  2264.     }
  2265.     , de, ee = function() {
  2266.         if (m.Promise && m.Promise.resolve) {
  2267.             var a = m.Promise.resolve();
  2268.             de = function() {
  2269.                 a.then(ie)
  2270.             }
  2271.         } else
  2272.             de = function() {
  2273.                 var a = ie;
  2274.                 !x(m.setImmediate) || m.Window && m.Window.prototype && m.Window.prototype.setImmediate == m.setImmediate ? (Zd || (Zd = $d()),
  2275.                 Zd(a)) : m.setImmediate(a)
  2276.             }
  2277.     }
  2278.     , fe = !1, ge = new ae, ie = function() {
  2279.         for (var a = null ; a = ge.remove(); ) {
  2280.             try {
  2281.                 a.a.call(a.b)
  2282.             } catch (b) {
  2283.                 Yd(b)
  2284.             }
  2285.             Xd(ce, a)
  2286.         }
  2287.         fe = !1
  2288.     }
  2289.     ;
  2290.     var je = function(a) {
  2291.         a.prototype.then = a.prototype.then;
  2292.         a.prototype.$goog_Thenable = !0
  2293.     }
  2294.       , ke = function(a) {
  2295.         if (!a)
  2296.             return !1;
  2297.         try {
  2298.             return !!a.$goog_Thenable
  2299.         } catch (b) {
  2300.             return !1
  2301.         }
  2302.     }
  2303.     ;
  2304.     var oe = function(a, b) {
  2305.         this.a = 0;
  2306.         this.i = void 0;
  2307.         this.f = this.b = this.c = null ;
  2308.         this.g = this.h = !1;
  2309.         if (a == le)
  2310.             me(this, 2, b);
  2311.         else
  2312.             try {
  2313.                 var c = this;
  2314.                 a.call(b, function(a) {
  2315.                     me(c, 2, a)
  2316.                 }
  2317.                 , function(a) {
  2318.                     if (!(a instanceof ne))
  2319.                         try {
  2320.                             if (a instanceof Error)
  2321.                                 throw a;
  2322.                             throw Error("Promise rejected.");
  2323.                         } catch (b) {}
  2324.                     me(c, 3, a)
  2325.                 }
  2326.                 )
  2327.             } catch (d) {
  2328.                 me(this, 3, d)
  2329.             }
  2330.     }
  2331.       , pe = function() {
  2332.         this.next = this.f = this.c = this.b = this.a = null ;
  2333.         this.g = !1
  2334.     }
  2335.     ;
  2336.     pe.prototype.reset = function() {
  2337.         this.f = this.c = this.b = this.a = null ;
  2338.         this.g = !1
  2339.     }
  2340.     ;
  2341.     var qe = new Wd(function() {
  2342.         return new pe
  2343.     }
  2344.     ,function(a) {
  2345.         a.reset()
  2346.     }
  2347.     ,100)
  2348.       , re = function(a, b, c) {
  2349.         var d = qe.get();
  2350.         d.b = a;
  2351.         d.c = b;
  2352.         d.f = c;
  2353.         return d
  2354.     }
  2355.       , le = function() {}
  2356.     ;
  2357.     oe.prototype.then = function(a, b, c) {
  2358.         null  != a && Da(a, "opt_onFulfilled should be a function.");
  2359.         null  != b && Da(b, "opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");
  2360.         return se(this, x(a) ? a : null , x(b) ? b : null , c)
  2361.     }
  2362.     ;
  2363.     je(oe);
  2364.     oe.prototype.cancel = function(a) {
  2365.         0 == this.a && he(function() {
  2366.             var b = new ne(a);
  2367.             te(this, b)
  2368.         }
  2369.         , this)
  2370.     }
  2371.     ;
  2372.     var te = function(a, b) {
  2373.         if (0 == a.a)
  2374.             if (a.c) {
  2375.                 var c = a.c;
  2376.                 if (c.b) {
  2377.                     for (var d = 0, e = null , f = null , g = c.b; g && (g.g || (d++,
  2378.                     g.a == a && (e = g),
  2379.                     !(e && 1 < d))); g = g.next)
  2380.                         e || (f = g);
  2381.                     e && (0 == c.a && 1 == d ? te(c, b) : (f ? (d = f,
  2382.                     D(c.b),
  2383.                     D(null  != d),
  2384.                     d.next == c.f && (c.f = d),
  2385.                     d.next = d.next.next) : ue(c),
  2386.                     ve(c, e, 3, b)))
  2387.                 }
  2388.                 a.c = null
  2389.             } else
  2390.                 me(a, 3, b)
  2391.     }
  2392.       , xe = function(a, b) {
  2393.         a.b || 2 != a.a && 3 != a.a || we(a);
  2394.         D(null  != b.b);
  2395.         a.f ? a.f.next = b : a.b = b;
  2396.         a.f = b
  2397.     }
  2398.       , se = function(a, b, c, d) {
  2399.         var e = re(null , null , null );
  2400.         e.a = new oe(function(a, g) {
  2401.             e.b = b ? function(c) {
  2402.                 try {
  2403.                     var e = b.call(d, c);
  2404.                     a(e)
  2405.                 } catch (p) {
  2406.                     g(p)
  2407.                 }
  2408.             }
  2409.              :
  2410.             a;
  2411.             e.c = c ? function(b) {
  2412.                 try {
  2413.                     var e = c.call(d, b);
  2414.                     !q(e) && b instanceof ne ? g(b) : a(e)
  2415.                 } catch (p) {
  2416.                     g(p)
  2417.                 }
  2418.             }
  2419.              : g
  2420.         }
  2421.         );
  2422.         e.a.c = a;
  2423.         xe(a, e);
  2424.         return e.a
  2425.     }
  2426.     ;
  2427.     oe.prototype.m = function(a) {
  2428.         D(1 == this.a);
  2429.         this.a = 0;
  2430.         me(this, 2, a)
  2431.     }
  2432.     ;
  2433.     oe.prototype.v = function(a) {
  2434.         D(1 == this.a);
  2435.         this.a = 0;
  2436.         me(this, 3, a)
  2437.     }
  2438.     ;
  2439.     var me = function(a, b, c) {
  2440.         if (0 == a.a) {
  2441.             if (a == c)
  2442.                 b = 3,
  2443.                 c = new TypeError("Promise cannot resolve to itself");
  2444.             else {
  2445.                 if (ke(c)) {
  2446.                     a.a = 1;
  2447.                     b = c;
  2448.                     c = a.m;
  2449.                     var d = a.v;
  2450.                     b instanceof oe ? (null  != c && Da(c, "opt_onFulfilled should be a function."),
  2451.                     null  != d && Da(d, "opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?"),
  2452.                     xe(b, re(c || r, d || null , a))) : b.then(c, d, a);
  2453.                     return
  2454.                 }
  2455.                 if (ea(c))
  2456.                     try {
  2457.                         if (d = c.then,
  2458.                         x(d)) {
  2459.                             ye(a, c, d);
  2460.                             return
  2461.                         }
  2462.                     } catch (e) {
  2463.                         b = 3,
  2464.                         c = e
  2465.                     }
  2466.             }
  2467.             a.i = c;
  2468.             a.a = b;
  2469.             a.c = null ;
  2470.             we(a);
  2471.             3 != b || c instanceof ne || ze(a,
  2472.             c)
  2473.         }
  2474.     }
  2475.       , ye = function(a, b, c) {
  2476.         a.a = 1;
  2477.         var d = !1
  2478.           , e = function(b) {
  2479.             d || (d = !0,
  2480.             a.m(b))
  2481.         }
  2482.           , f = function(b) {
  2483.             d || (d = !0,
  2484.             a.v(b))
  2485.         }
  2486.         ;
  2487.         try {
  2488.             c.call(b, e, f)
  2489.         } catch (g) {
  2490.             f(g)
  2491.         }
  2492.     }
  2493.       , we = function(a) {
  2494.         a.h || (a.h = !0,
  2495.         he(a.B, a))
  2496.     }
  2497.       , ue = function(a) {
  2498.         var b = null ;
  2499.         a.b && (b = a.b,
  2500.         a.b = b.next,
  2501.         b.next = null );
  2502.         a.b || (a.f = null );
  2503.         null  != b && D(null  != b.b);
  2504.         return b
  2505.     }
  2506.     ;
  2507.     oe.prototype.B = function() {
  2508.         for (var a = null ; a = ue(this); )
  2509.             ve(this, a, this.a, this.i);
  2510.         this.h = !1
  2511.     }
  2512.     ;
  2513.     var ve = function(a, b, c, d) {
  2514.         if (3 == c && b.c && !b.g)
  2515.             for (; a && a.g; a = a.c)
  2516.                 a.g = !1;
  2517.         if (b.a)
  2518.             b.a.c = null ,
  2519.             Ae(b, c, d);
  2520.         else
  2521.             try {
  2522.                 b.g ? b.b.call(b.f) : Ae(b, c, d)
  2523.             } catch (e) {
  2524.                 Be.call(null , e)
  2525.             }
  2526.         Xd(qe, b)
  2527.     }
  2528.       , Ae = function(a, b, c) {
  2529.         2 == b ? a.b.call(a.f, c) : a.c && a.c.call(a.f, c)
  2530.     }
  2531.       , ze = function(a, b) {
  2532.         a.g = !0;
  2533.         he(function() {
  2534.             a.g && Be.call(null , b)
  2535.         }
  2536.         )
  2537.     }
  2538.       , Be = Yd
  2539.       , ne = function(a) {
  2540.         B.call(this, a)
  2541.     }
  2542.     ;
  2543.     A(ne, B);
  2544.     ne.prototype.name = "cancel";
  2545.     var Ce = function(a, b, c) {
  2546.         if (x(a))
  2547.             c && (a = y(a, c));
  2548.         else if (a && "function" == typeof a.handleEvent)
  2549.             a = y(a.handleEvent, a);
  2550.         else
  2551.             throw Error("Invalid listener argument");
  2552.         return 2147483647 < b ? -1 : m.setTimeout(a, b || 0)
  2553.     }
  2554.     ;
  2555.     var De = function(a, b, c, d, e) {
  2556.         td.call(this);
  2557.         this.a = a;
  2558.         this.h = b;
  2559.         this.i = c;
  2560.         this.f = d;
  2561.         this.s = u(e) ? e : [e]
  2562.     }
  2563.     ;
  2564.     A(De, td);
  2565.     var Ee = function(a) {
  2566.         1 != a.b && (R(a, "begin"),
  2567.         R(a, "play"),
  2568.         ja(),
  2569.         a.b = 1,
  2570.         Vd() ? (xd(a.a, a.i),
  2571.         a.g = Ce(a.m, void 0, a)) : a.c(!1))
  2572.     }
  2573.     ;
  2574.     De.prototype.m = function() {
  2575.         Ld(this.a);
  2576.         Ud(this.a, this.s);
  2577.         xd(this.a, this.f);
  2578.         this.g = Ce(y(this.c, this, !1), 1E3 * this.h)
  2579.     }
  2580.     ;
  2581.     De.prototype.stop = function() {
  2582.         1 == this.b && this.c(!0)
  2583.     }
  2584.     ;
  2585.     De.prototype.c = function(a) {
  2586.         xd(this.a, "transition", "");
  2587.         m.clearTimeout(this.g);
  2588.         xd(this.a, this.f);
  2589.         ja();
  2590.         this.b = 0;
  2591.         if (a)
  2592.             this.onStop();
  2593.         else
  2594.             R(this, "finish");
  2595.         R(this, "end")
  2596.     }
  2597.     ;
  2598.     De.prototype.o = function() {
  2599.         this.stop();
  2600.         De.l.o.call(this)
  2601.     }
  2602.     ;
  2603.     var Fe = function(a, b, c, d) {
  2604.         return new De(a,.218,{
  2605.             opacity: c
  2606.         },{
  2607.             opacity: d
  2608.         },{
  2609.             Db: "opacity",
  2610.             duration: .218,
  2611.             timing: b,
  2612.             kb: 0
  2613.         })
  2614.     }
  2615.     ;
  2616.     var Ge = {
  2617.         Od: !0
  2618.     }
  2619.       , He = {
  2620.         Nd: !0
  2621.     }
  2622.       , Ie = {
  2623.         Pd: !0
  2624.     }
  2625.       , Je = function() {
  2626.         throw Error("Do not instantiate directly");
  2627.     }
  2628.     ;
  2629.     Je.prototype.ka = null ;
  2630.     Je.prototype.Z = function() {
  2631.         return this.content
  2632.     }
  2633.     ;
  2634.     Je.prototype.toString = function() {
  2635.         return this.content
  2636.     }
  2637.     ;
  2638.     var Ne = function(a, b, c) {
  2639.         D(a, "Soy template may not be null.");
  2640.         c = (c || Tb()).a.createElement("DIV");
  2641.         a = Ke(a(b || Le, void 0, void 0));
  2642.         b = a.match(Me);
  2643.         D(!b, "This template starts with a %s, which cannot be a child of a <div>, as required by soy internals. Consider using goog.soy.renderElement instead.\nTemplate output: %s", b && b[0], a);
  2644.         c.innerHTML = a;
  2645.         return 1 == c.childNodes.length && (a = c.firstChild,
  2646.         1 == a.nodeType) ? a : c
  2647.     }
  2648.       , Ke = function(a) {
  2649.         if (!ea(a))
  2650.             return String(a);
  2651.         if (a instanceof Je) {
  2652.             if (a.T === Ge)
  2653.                 return Ca(a.Z());
  2654.             if (a.T ===
  2655.             Ie)
  2656.                 return va(a.Z())
  2657.         }
  2658.         Ba("Soy template output is unsafe for use as HTML: " + a);
  2659.         return "zSoyz"
  2660.     }
  2661.       , Me = /^<(body|caption|col|colgroup|head|html|tr|td|tbody|thead|tfoot)>/i
  2662.       , Le = {};
  2663.     var Oe = function() {}
  2664.     ;
  2665.     ba(Oe);
  2666.     Oe.prototype.a = 0;
  2667.     var S = function(a) {
  2668.         Q.call(this);
  2669.         this.f = a || Tb();
  2670.         this.ia = Pe;
  2671.         this.G = null ;
  2672.         this.H = !1;
  2673.         this.a = null ;
  2674.         this.i = void 0;
  2675.         this.m = this.K = this.g = null ;
  2676.         this.Da = !1
  2677.     }
  2678.     ;
  2679.     A(S, Q);
  2680.     S.prototype.Jb = Oe.V();
  2681.     var Pe = null
  2682.       , Qe = function(a, b) {
  2683.         switch (a) {
  2684.         case 1:
  2685.             return b ? "disable" : "enable";
  2686.         case 2:
  2687.             return b ? "highlight" : "unhighlight";
  2688.         case 4:
  2689.             return b ? "activate" : "deactivate";
  2690.         case 8:
  2691.             return b ? "select" : "unselect";
  2692.         case 16:
  2693.             return b ? "check" : "uncheck";
  2694.         case 32:
  2695.             return b ? "focus" : "blur";
  2696.         case 64:
  2697.             return b ? "open" : "close"
  2698.         }
  2699.         throw Error("Invalid component state");
  2700.     }
  2701.       , Re = function(a, b) {
  2702.         if (a.g && a.g.m) {
  2703.             var c = a.g.m
  2704.               , d = a.G;
  2705.             d in c && delete c[d];
  2706.             c = a.g.m;
  2707.             if (b in c)
  2708.                 throw Error('The object already contains the key "' + b + '"');
  2709.             c[b] = a
  2710.         }
  2711.         a.G = b
  2712.     }
  2713.     ;
  2714.     S.prototype.j = function() {
  2715.         return this.a
  2716.     }
  2717.     ;
  2718.     var Se = function(a) {
  2719.         a = a.a;
  2720.         D(a, "Can not call getElementStrict before rendering/decorating.");
  2721.         return a
  2722.     }
  2723.       , Te = function(a) {
  2724.         a.i || (a.i = new gd(a));
  2725.         return a.i
  2726.     }
  2727.     ;
  2728.     S.prototype.Ma = function(a) {
  2729.         if (this.g && this.g != a)
  2730.             throw Error("Method not supported");
  2731.         S.l.Ma.call(this, a)
  2732.     }
  2733.     ;
  2734.     S.prototype.Sa = function() {
  2735.         this.a = this.f.a.createElement("DIV")
  2736.     }
  2737.     ;
  2738.     var Ue = function(a, b) {
  2739.         if (a.H)
  2740.             throw Error("Component already rendered");
  2741.         a.a || a.Sa();
  2742.         b ? b.insertBefore(a.a, null ) : a.f.a.body.appendChild(a.a);
  2743.         a.g && !a.g.H || a.U()
  2744.     }
  2745.       , Ve = function(a, b) {
  2746.         if (a.H)
  2747.             throw Error("Component already rendered");
  2748.         if (b && a.ob(b)) {
  2749.             a.Da = !0;
  2750.             var c = N(b);
  2751.             a.f && a.f.a == c || (a.f = Tb(b));
  2752.             a.ib(b);
  2753.             a.U()
  2754.         } else
  2755.             throw Error("Invalid element to decorate");
  2756.     }
  2757.     ;
  2758.     h = S.prototype;
  2759.     h.ob = function() {
  2760.         return !0
  2761.     }
  2762.     ;
  2763.     h.ib = function(a) {
  2764.         this.a = a
  2765.     }
  2766.     ;
  2767.     h.U = function() {
  2768.         this.H = !0;
  2769.         We(this, function(a) {
  2770.             !a.H && a.j() && a.U()
  2771.         }
  2772.         )
  2773.     }
  2774.     ;
  2775.     h.ua = function() {
  2776.         We(this, function(a) {
  2777.             a.H && a.ua()
  2778.         }
  2779.         );
  2780.         this.i && this.i.removeAll();
  2781.         this.H = !1
  2782.     }
  2783.     ;
  2784.     h.o = function() {
  2785.         this.H && this.ua();
  2786.         this.i && (this.i.O(),
  2787.         delete this.i);
  2788.         We(this, function(a) {
  2789.             a.O()
  2790.         }
  2791.         );
  2792.         !this.Da && this.a && dc(this.a);
  2793.         this.g = this.a = this.m = this.K = null ;
  2794.         S.l.o.call(this)
  2795.     }
  2796.     ;
  2797.     h.Ta = function() {
  2798.         return this.a
  2799.     }
  2800.     ;
  2801.     var We = function(a, b) {
  2802.         a.K && F(a.K, b, void 0)
  2803.     }
  2804.     ;
  2805.     S.prototype.removeChild = function(a, b) {
  2806.         if (a) {
  2807.             var c = v(a) ? a : a.G || (a.G = ":" + (a.Jb.a++).toString(36)), d;
  2808.             this.m && c ? (d = this.m,
  2809.             d = (c in d ? d[c] : void 0) || null ) : d = null ;
  2810.             a = d;
  2811.             if (c && a) {
  2812.                 d = this.m;
  2813.                 c in d && delete d[c];
  2814.                 Qa(this.K, a);
  2815.                 b && (a.ua(),
  2816.                 a.a && dc(a.a));
  2817.                 c = a;
  2818.                 if (null  == c)
  2819.                     throw Error("Unable to set parent component");
  2820.                 c.g = null ;
  2821.                 S.l.Ma.call(c, null )
  2822.             }
  2823.         }
  2824.         if (!a)
  2825.             throw Error("Child is not in parent component");
  2826.         return a
  2827.     }
  2828.     ;
  2829.     var Xe = function(a, b) {
  2830.         return (b & 4 && Od(a) ? b ^ 2 : b) & -5
  2831.     }
  2832.     ;
  2833.     var Ze = function(a, b) {
  2834.         Q.call(this);
  2835.         this.a = new gd(this);
  2836.         var c = a || null ;
  2837.         Ye(this);
  2838.         this.D = c;
  2839.         b && (this.ra = b)
  2840.     }
  2841.     ;
  2842.     A(Ze, Q);
  2843.     h = Ze.prototype;
  2844.     h.D = null ;
  2845.     h.fb = null ;
  2846.     h.X = !1;
  2847.     h.ab = -1;
  2848.     h.ra = "toggle_display";
  2849.     h.j = function() {
  2850.         return this.D
  2851.     }
  2852.     ;
  2853.     var Ye = function(a) {
  2854.         if (a.X)
  2855.             throw Error("Can not change this state of the popup while showing.");
  2856.     }
  2857.     ;
  2858.     Ze.prototype.b = r;
  2859.     var $e = function(a, b) {
  2860.         a.X && R(a, {
  2861.             type: "beforehide",
  2862.             target: b
  2863.         }) && (a.a && a.a.removeAll(),
  2864.         a.X = !1,
  2865.         ja(),
  2866.         a.c ? (Qc(a.c, "end", z(a.hb, b), !1, a),
  2867.         Ee(a.c)) : a.hb(b))
  2868.     }
  2869.     ;
  2870.     h = Ze.prototype;
  2871.     h.hb = function(a) {
  2872.         "toggle_display" == this.ra ? this.Qb() : "move_offscreen" == this.ra && (this.D.style.top = "-10000px");
  2873.         R(this, {
  2874.             type: "hide",
  2875.             target: a
  2876.         })
  2877.     }
  2878.     ;
  2879.     h.Qb = function() {
  2880.         this.D.style.visibility = "hidden";
  2881.         Nd(this.D, !1)
  2882.     }
  2883.     ;
  2884.     h.Cb = function() {
  2885.         R(this, "show")
  2886.     }
  2887.     ;
  2888.     h.Bb = function(a) {
  2889.         a = a.target;
  2890.         ec(this.D, a) || af(this, a) || 150 > ja() - this.ab || $e(this, a)
  2891.     }
  2892.     ;
  2893.     h.Ab = function(a) {
  2894.         var b = N(this.D);
  2895.         if ("undefined" != typeof document.activeElement) {
  2896.             if (a = b.activeElement,
  2897.             !a || ec(this.D, a) || "BODY" == a.tagName)
  2898.                 return
  2899.         } else if (a.target != b)
  2900.             return;
  2901.         150 > ja() - this.ab || $e(this)
  2902.     }
  2903.     ;
  2904.     var af = function(a, b) {
  2905.         return La(a.fb || [], function(a) {
  2906.             return b === a || ec(a, b)
  2907.         }
  2908.         )
  2909.     }
  2910.     ;
  2911.     Ze.prototype.o = function() {
  2912.         Ze.l.o.call(this);
  2913.         this.a.O();
  2914.         uc(this.f);
  2915.         uc(this.c);
  2916.         delete this.D;
  2917.         delete this.a;
  2918.         delete this.fb
  2919.     }
  2920.     ;
  2921.     var bf = function(a, b) {
  2922.         this.g = b || void 0;
  2923.         Ze.call(this, a)
  2924.     }
  2925.     ;
  2926.     A(bf, Ze);
  2927.     bf.prototype.b = function() {
  2928.         if (this.g) {
  2929.             var a = !this.X && "move_offscreen" != this.ra
  2930.               , b = this.j();
  2931.             a && (b.style.visibility = "hidden",
  2932.             Nd(b, !0));
  2933.             this.g.nb(b, 4, this.h);
  2934.             a && Nd(b, !1)
  2935.         }
  2936.     }
  2937.     ;
  2938.     var cf = function() {}
  2939.     ;
  2940.     cf.prototype.nb = function() {}
  2941.     ;
  2942.     var df = function(a, b) {
  2943.         this.c = a;
  2944.         this.h = !!b;
  2945.         this.f = {
  2946.             0: this.c + "-arrowright",
  2947.             1: this.c + "-arrowup",
  2948.             2: this.c + "-arrowdown",
  2949.             3: this.c + "-arrowleft"
  2950.         }
  2951.     }
  2952.     ;
  2953.     A(df, cf);
  2954.     h = df.prototype;
  2955.     h.Oa = 2;
  2956.     h.eb = 20;
  2957.     h.Pa = 3;
  2958.     h.bb = -5;
  2959.     h.nb = function(a, b, c) {
  2960.         D(this.g, "Must call setElements first.");
  2961.         b = this.Oa;
  2962.         2 == b && (b = 0);
  2963.         a = this.Pa;
  2964.         var d = 2 == this.Oa ? ef(this.Pa) ? this.a.offsetHeight / 2 : this.a.offsetWidth / 2 : this.eb;
  2965.         if (this.b) {
  2966.             var e = ff(a, b), f, g = this.b;
  2967.             f = Ld(g);
  2968.             f = (ef(a) ? f.height / 2 : f.width / 2) - d;
  2969.             var k = Xe(g, e), l;
  2970.             if (l = Gd(g))
  2971.                 g = Md(g),
  2972.                 g = new ud(g.top,g.left + g.width,g.top + g.height,g.left),
  2973.                 ef(a) ? g.top < l.top && !(k & 1) ? f -= l.top - g.top : g.bottom > l.bottom && k & 1 && (f -= g.bottom - l.bottom) : g.left < l.left && !(k & 2) ? f -= l.left - g.left : g.right > l.right && k & 2 && (f -= g.right - l.right);
  2974.             k = ef(a) ? new G(this.bb,f) : new G(f,this.bb);
  2975.             f = a ^ 3;
  2976.             ef(a) && "rtl" == this.b.dir && (f = a);
  2977.             l = this.b;
  2978.             g = ff(f, b);
  2979.             f = this.a;
  2980.             D(f);
  2981.             var p, n = f.offsetParent;
  2982.             if (n) {
  2983.                 var t = "HTML" == n.tagName || "BODY" == n.tagName;
  2984.                 t && "static" == Ad(n, "position") || (p = Fd(n),
  2985.                 t || (t = (t = Od(n)) && J ? -n.scrollLeft : !t || I && M("8") || "visible" == Ad(n, "overflowX") ? n.scrollLeft : n.scrollWidth - n.clientWidth - n.scrollLeft,
  2986.                 p = xb(p, new G(t,n.scrollTop))))
  2987.             }
  2988.             p = p || new G;
  2989.             n = Md(l);
  2990.             if (t = Gd(l)) {
  2991.                 var C = new vd(t.left,t.top,t.right - t.left,t.bottom - t.top)
  2992.                   , t = Math.max(n.left, C.left)
  2993.                   ,
  2994.                 L = Math.min(n.left + n.width, C.left + C.width);
  2995.                 if (t <= L) {
  2996.                     var la = Math.max(n.top, C.top)
  2997.                       , C = Math.min(n.top + n.height, C.top + C.height);
  2998.                     la <= C && (n.left = t,
  2999.                     n.top = la,
  3000.                     n.width = L - t,
  3001.                     n.height = C - la)
  3002.                 }
  3003.             }
  3004.             t = Tb(l);
  3005.             la = Tb(f);
  3006.             if (t.a != la.a) {
  3007.                 var L = t.a.body, la = $b(la.a), C = new G(0,0), W;
  3008.                 W = (W = N(L)) ? $b(W) : window;
  3009.                 var ld = L;
  3010.                 do {
  3011.                     var xf = W == la ? Fd(ld) : Jd(D(ld));
  3012.                     C.x += xf.x;
  3013.                     C.y += xf.y
  3014.                 } while (W && W != la && W != W.parent && (ld = W.frameElement) && (W = W.parent));L = xb(C, Fd(L));
  3015.                 !I || Mb(9) || nc(t) || (L = xb(L, ac(t.a)));
  3016.                 n.left += L.x;
  3017.                 n.top += L.y
  3018.             }
  3019.             l = Xe(l, g);
  3020.             g = new G(l & 2 ? n.left +
  3021.             n.width : n.left,l & 1 ? n.top + n.height : n.top);
  3022.             g = xb(g, p);
  3023.             k && (g.x += (l & 2 ? -1 : 1) * k.x,
  3024.             g.y += (l & 1 ? -1 : 1) * k.y);
  3025.             l = g.clone();
  3026.             k = Xe(f, e);
  3027.             e = Ld(f);
  3028.             g = e.clone();
  3029.             l = l.clone();
  3030.             g = g.clone();
  3031.             if (c || 0 != k)
  3032.                 k & 2 ? l.x -= g.width + (c ? c.right : 0) : c && (l.x += c.left),
  3033.                 k & 1 ? l.y -= g.height + (c ? c.bottom : 0) : c && (l.y += c.top);
  3034.             c = new vd(0,0,0,0);
  3035.             c.left = l.x;
  3036.             c.top = l.y;
  3037.             c.width = g.width;
  3038.             c.height = g.height;
  3039.             Cd(f, new G(c.left,c.top));
  3040.             g = new yb(c.width,c.height);
  3041.             e == g || e && g && e.width == g.width && e.height == g.height || (c = g,
  3042.             e = N(f),
  3043.             k = nc(Tb(e)),
  3044.             !I || M("10") || k && M("8") ? (f = f.style,
  3045.             J ? f.MozBoxSizing = "border-box" : K ? f.WebkitBoxSizing = "border-box" : f.boxSizing = "border-box",
  3046.             f.width = Math.max(c.width, 0) + "px",
  3047.             f.height = Math.max(c.height, 0) + "px") : (e = f.style,
  3048.             k ? (I ? (k = Rd(f, "paddingLeft"),
  3049.             l = Rd(f, "paddingRight"),
  3050.             g = Rd(f, "paddingTop"),
  3051.             p = Rd(f, "paddingBottom"),
  3052.             k = new ud(g,l,p,k)) : (k = zd(f, "paddingLeft"),
  3053.             l = zd(f, "paddingRight"),
  3054.             g = zd(f, "paddingTop"),
  3055.             p = zd(f, "paddingBottom"),
  3056.             k = new ud(parseFloat(g),parseFloat(l),parseFloat(p),parseFloat(k))),
  3057.             I && !Mb(9) ? (l = Td(f, "borderLeft"),
  3058.             g = Td(f, "borderRight"),
  3059.             p = Td(f,
  3060.             "borderTop"),
  3061.             f = Td(f, "borderBottom"),
  3062.             f = new ud(p,g,f,l)) : (l = zd(f, "borderLeftWidth"),
  3063.             g = zd(f, "borderRightWidth"),
  3064.             p = zd(f, "borderTopWidth"),
  3065.             f = zd(f, "borderBottomWidth"),
  3066.             f = new ud(parseFloat(p),parseFloat(g),parseFloat(f),parseFloat(l))),
  3067.             e.pixelWidth = c.width - f.left - k.left - k.right - f.right,
  3068.             e.pixelHeight = c.height - f.top - k.top - k.bottom - f.bottom) : (e.pixelWidth = c.width,
  3069.             e.pixelHeight = c.height)));
  3070.             this.h && (f = parseFloat(this.a.style.left),
  3071.             c = parseFloat(this.a.style.top),
  3072.             D(!isNaN(f) && !isNaN(c), "Could not parse position."),
  3073.             isFinite(f) && 0 == f % 1 && isFinite(c) && 0 == c % 1 || Cd(this.a, Math.round(f), Math.round(c)))
  3074.         }
  3075.         gf(this, a, b, d)
  3076.     }
  3077.     ;
  3078.     var gf = function(a, b, c, d) {
  3079.         var e = a.g;
  3080.         Ta(a.f, function(a) {
  3081.             ad(e, a)
  3082.         }
  3083.         , a);
  3084.         Zc(e, a.f[b]);
  3085.         e.style.top = e.style.left = e.style.right = e.style.bottom = "";
  3086.         a.b ? (c = Id(a.b, a.a),
  3087.         d = hf(a.b, b),
  3088.         ef(b) ? (a = jf(c.y + d.y, a.a.offsetHeight - 15),
  3089.         e.style.top = a + "px") : (a = jf(c.x + d.x, a.a.offsetWidth - 15),
  3090.         e.style.left = a + "px")) : e.style[0 == c ? ef(b) ? "top" : "left" : ef(b) ? "bottom" : "right"] = d + "px"
  3091.     }
  3092.       , jf = function(a, b) {
  3093.         return 15 > b ? 15 : Math.min(Math.max(a, 15), b)
  3094.     }
  3095.       , ff = function(a, b) {
  3096.         switch (a) {
  3097.         case 2:
  3098.             return 0 == b ? 1 : 3;
  3099.         case 1:
  3100.             return 0 == b ? 0 : 2;
  3101.         case 0:
  3102.             return 0 == b ? 6 :
  3103.             7;
  3104.         default:
  3105.             return 0 == b ? 4 : 5
  3106.         }
  3107.     }
  3108.       , hf = function(a, b) {
  3109.         var c = 0
  3110.           , d = 0
  3111.           , e = Ld(a);
  3112.         switch (b) {
  3113.         case 2:
  3114.             c = e.width / 2;
  3115.             break;
  3116.         case 1:
  3117.             c = e.width / 2;
  3118.             d = e.height;
  3119.             break;
  3120.         case 0:
  3121.             d = e.height / 2;
  3122.             break;
  3123.         case 3:
  3124.             c = e.width,
  3125.             d = e.height / 2
  3126.         }
  3127.         return new G(c,d)
  3128.     }
  3129.       , ef = function(a) {
  3130.         return 0 == a || 3 == a
  3131.     }
  3132.     ;
  3133.     I && M(8);
  3134.     var kf = function(a) {
  3135.         if (null  != a)
  3136.             switch (a.ka) {
  3137.             case 1:
  3138.                 return 1;
  3139.             case -1:
  3140.                 return -1;
  3141.             case 0:
  3142.                 return 0
  3143.             }
  3144.         return null
  3145.     }
  3146.       , lf = function() {
  3147.         Je.call(this)
  3148.     }
  3149.     ;
  3150.     A(lf, Je);
  3151.     lf.prototype.T = Ge;
  3152.     var nf = function(a) {
  3153.         return null  != a && a.T === Ge ? (D(a.constructor === lf),
  3154.         a) : a instanceof ob ? mf(pb(a), a.na()) : mf(va(String(String(a))), kf(a))
  3155.     }
  3156.       , of = function() {
  3157.         Je.call(this)
  3158.     }
  3159.     ;
  3160.     A(of, Je);
  3161.     of.prototype.T = He;
  3162.     of.prototype.ka = 1;
  3163.     var pf = function(a, b) {
  3164.         this.content = String(a);
  3165.         this.ka = null  != b ? b : null
  3166.     }
  3167.     ;
  3168.     A(pf, Je);
  3169.     pf.prototype.T = Ie;
  3170.     var mf = function(a) {
  3171.         function b(a) {
  3172.             this.content = a
  3173.         }
  3174.         b.prototype = a.prototype;
  3175.         return function(a, d) {
  3176.             var e = new b(String(a));
  3177.             void 0 !== d && (e.ka = d);
  3178.             return e
  3179.         }
  3180.     }
  3181.     (lf);
  3182.     (function(a) {
  3183.         function b(a) {
  3184.             this.content = a
  3185.         }
  3186.         b.prototype = a.prototype;
  3187.         return function(a, d) {
  3188.             var e = String(a);
  3189.             if (!e)
  3190.                 return "";
  3191.             e = new b(e);
  3192.             void 0 !== d && (e.ka = d);
  3193.             return e
  3194.         }
  3195.     }
  3196.     )(lf);
  3197.     var uf = function(a) {
  3198.         return null  != a && a.T === Ge ? (D(a.constructor === lf),
  3199.         a = String(a.Z()).replace(qf, "").replace(rf, "&lt;"),
  3200.         String(a).replace(sf, tf)) : va(String(a))
  3201.     }
  3202.       , vf = {
  3203.         "\x00": "&#0;",
  3204.         "\t": "&#9;",
  3205.         "\n": "&#10;",
  3206.         "\x0B": "&#11;",
  3207.         "\f": "&#12;",
  3208.         "\r": "&#13;",
  3209.         " ": "&#32;",
  3210.         '"': "&quot;",
  3211.         "&": "&amp;",
  3212.         "'": "&#39;",
  3213.         "-": "&#45;",
  3214.         "/": "&#47;",
  3215.         "<": "&lt;",
  3216.         "=": "&#61;",
  3217.         ">": "&gt;",
  3218.         "`": "&#96;",
  3219.         "\u0085": "&#133;",
  3220.         "\u00a0": "&#160;",
  3221.         "\u2028": "&#8232;",
  3222.         "\u2029": "&#8233;"
  3223.     }
  3224.       , tf = function(a) {
  3225.         return vf[a]
  3226.     }
  3227.       , sf = /[\x00\x22\x27\x3c\x3e]/g
  3228.       , wf = /^(?!style|on|action|archive|background|cite|classid|codebase|data|dsync|href|longdesc|src|usemap)(?:[a-z0-9_$:-]*)$/i
  3229.       ,
  3230.     qf = /<(?:!|\/?([a-zA-Z][a-zA-Z0-9:\-]*))(?:[^>'"]|"[^"]*"|'[^']*')*>/g
  3231.       , rf = /</g;
  3232.     var yf = function(a) {
  3233.         var b = '<div class="jfk-bubble" role="alertdialog"' + (a.uid ? ' aria-describedby="' + uf(a.uid) + '"' : "") + '><div class="jfk-bubble-content-id"' + (a.uid ? ' id="' + uf(a.uid) + '"' : "") + "></div>";
  3234.         a.Rb && (a = b,
  3235.         b = "Close".replace(sf, tf),
  3236.         b = a + ('<div class="jfk-bubble-closebtn-id jfk-bubble-closebtn" aria-label="' + b + '" role="button" tabindex=0></div>'));
  3237.         return mf(b + '<div class="jfk-bubble-arrow-id jfk-bubble-arrow"><div class="jfk-bubble-arrowimplbefore"></div><div class="jfk-bubble-arrowimplafter"></div></div></div>')
  3238.     }
  3239.     ;
  3240.     yf.a = "jfk.templates.bubble.main";
  3241.     var zf = function(a) {
  3242.         S.call(this, a);
  3243.         this.s = new df("jfk-bubble",!0);
  3244.         this.c = new bf;
  3245.         this.L = []
  3246.     }
  3247.     ;
  3248.     A(zf, S);
  3249.     zf.prototype.N = !1;
  3250.     var Af = function(a, b) {
  3251.         var c = a.Ta();
  3252.         if (b && c)
  3253.             if (v(b)) {
  3254.                 var d;
  3255.                 d = qb(b, null );
  3256.                 c.innerHTML = pb(d)
  3257.             } else if (b instanceof lf) {
  3258.                 if (b.T === Ie)
  3259.                     d = rb(b.toString());
  3260.                 else {
  3261.                     if (b.T !== Ge)
  3262.                         throw Error("Sanitized content was not of kind TEXT or HTML.");
  3263.                     var e = new cb;
  3264.                     e.a = "Soy SanitizedContent of kind HTML produces SafeHtml-contract-compliant value.";
  3265.                     d = b.toString();
  3266.                     var f = b.ka;
  3267.                     Ca(db(e), "must provide justification");
  3268.                     e = db(e);
  3269.                     D(!/^[\s\xa0]*$/.test(e), "must provide non-empty justification");
  3270.                     d = qb(d, f || null )
  3271.                 }
  3272.                 c.innerHTML = pb(d)
  3273.             } else
  3274.                 b instanceof
  3275.                 ob ? c.innerHTML = pb(b) : (c.innerHTML = pb(wb),
  3276.                 c.appendChild(b))
  3277.     }
  3278.     ;
  3279.     h = zf.prototype;
  3280.     h.Ta = function() {
  3281.         return this.a ? Wb("jfk-bubble-content-id", this.a || this.f.a) : null
  3282.     }
  3283.     ;
  3284.     h.Sa = function() {
  3285.         this.a = Ne(yf, {
  3286.             Rb: !0,
  3287.             uid: "bubble-" + (this[fa] || (this[fa] = ++ga))
  3288.         }, this.f);
  3289.         Af(this, this.S);
  3290.         Nd(this.j(), !1);
  3291.         var a = this.c
  3292.           , b = this.j();
  3293.         Ye(a);
  3294.         a.D = b;
  3295.         if (!Fb) {
  3296.             var a = this.c
  3297.               , b = Fe(this.j(), "ease-out", 0, 1)
  3298.               , c = Fe(this.j(), "ease-in", 1, 0);
  3299.             a.f = b;
  3300.             a.c = c
  3301.         }
  3302.         $c(this.j(), this.L)
  3303.     }
  3304.     ;
  3305.     h.U = function() {
  3306.         zf.l.U.call(this);
  3307.         Te(this).listen(this.c, ["beforeshow", "show", "beforehide", "hide"], this.Pb);
  3308.         var a = Te(this)
  3309.           , b = this.a ? Wb("jfk-bubble-closebtn-id", this.a || this.f.a) : null ;
  3310.         pd.listen(b, z(this.zb, !1), void 0, a.b || a, a);
  3311.         a = this.j();
  3312.         D(a, "getElement() returns null.");
  3313.         b = this.a ? Wb("jfk-bubble-arrow-id", this.a || this.f.a) : null ;
  3314.         D(b, "No arrow element is found!");
  3315.         var c = this.s;
  3316.         c.a = a;
  3317.         c.g = b;
  3318.         a = this.c;
  3319.         a.g = this.s || void 0;
  3320.         a.X && a.b()
  3321.     }
  3322.     ;
  3323.     h.zb = function(a) {
  3324.         var b = this.c;
  3325.         b.f && b.f.stop();
  3326.         b.c && b.c.stop();
  3327.         if (a) {
  3328.             if (!b.X && R(b, "beforeshow")) {
  3329.                 if (!b.D)
  3330.                     throw Error("Caller must call setElement before trying to show the popup");
  3331.                 b.b();
  3332.                 a = N(b.D);
  3333.                 b.a.listen(a, "mousedown", b.Bb, !0);
  3334.                 if (I) {
  3335.                     var c;
  3336.                     try {
  3337.                         c = a.activeElement
  3338.                     } catch (d) {}
  3339.                     for (; c && "IFRAME" == c.nodeName; ) {
  3340.                         try {
  3341.                             var e = c.contentDocument || c.contentWindow.document
  3342.                         } catch (f) {
  3343.                             break
  3344.                         }
  3345.                         a = e;
  3346.                         c = a.activeElement
  3347.                     }
  3348.                     b.a.listen(a, "mousedown", b.Bb, !0);
  3349.                     b.a.listen(a, "deactivate", b.Ab)
  3350.                 } else
  3351.                     b.a.listen(a, "blur", b.Ab);
  3352.                 "toggle_display" ==
  3353.                 b.ra ? (b.D.style.visibility = "visible",
  3354.                 Nd(b.D, !0)) : "move_offscreen" == b.ra && b.b();
  3355.                 b.X = !0;
  3356.                 b.ab = ja();
  3357.                 b.f ? (Qc(b.f, "end", b.Cb, !1, b),
  3358.                 Ee(b.f)) : b.Cb()
  3359.             }
  3360.         } else
  3361.             $e(b)
  3362.     }
  3363.     ;
  3364.     h.o = function() {
  3365.         this.c.O();
  3366.         delete this.c;
  3367.         zf.l.o.call(this)
  3368.     }
  3369.     ;
  3370.     h.wb = function() {
  3371.         Hd(this.j());
  3372.         return !1
  3373.     }
  3374.     ;
  3375.     h.Pb = function(a) {
  3376.         if ("show" == a.type || "hide" == a.type) {
  3377.             var b = Te(this)
  3378.               , c = this.f
  3379.               , c = I ? $b(c.a) : c.a;
  3380.             "show" == a.type ? b.listen(c, "scroll", this.wb) : id(b, c, "scroll", this.wb)
  3381.         }
  3382.         b = R(this, a.type);
  3383.         this.N && "hide" == a.type && this.O();
  3384.         return b
  3385.     }
  3386.     ;
  3387.     var Bf = "StopIteration" in m ? m.StopIteration : {
  3388.         message: "StopIteration",
  3389.         stack: ""
  3390.     }
  3391.       , Cf = function() {}
  3392.     ;
  3393.     Cf.prototype.next = function() {
  3394.         throw Bf;
  3395.     }
  3396.     ;
  3397.     Cf.prototype.Kb = function() {
  3398.         return this
  3399.     }
  3400.     ;
  3401.     var Df = function(a, b) {
  3402.         this.b = {};
  3403.         this.a = [];
  3404.         this.f = this.c = 0;
  3405.         var c = arguments.length;
  3406.         if (1 < c) {
  3407.             if (c % 2)
  3408.                 throw Error("Uneven number of arguments");
  3409.             for (var d = 0; d < c; d += 2)
  3410.                 this.set(arguments[d], arguments[d + 1])
  3411.         } else if (a) {
  3412.             a instanceof Df ? (c = a.$(),
  3413.             d = a.W()) : (c = Va(a),
  3414.             d = Ua(a));
  3415.             for (var e = 0; e < c.length; e++)
  3416.                 this.set(c[e], d[e])
  3417.         }
  3418.     }
  3419.     ;
  3420.     Df.prototype.W = function() {
  3421.         Ef(this);
  3422.         for (var a = [], b = 0; b < this.a.length; b++)
  3423.             a.push(this.b[this.a[b]]);
  3424.         return a
  3425.     }
  3426.     ;
  3427.     Df.prototype.$ = function() {
  3428.         Ef(this);
  3429.         return this.a.concat()
  3430.     }
  3431.     ;
  3432.     Df.prototype.remove = function(a) {
  3433.         return Ff(this.b, a) ? (delete this.b[a],
  3434.         this.c--,
  3435.         this.f++,
  3436.         this.a.length > 2 * this.c && Ef(this),
  3437.         !0) : !1
  3438.     }
  3439.     ;
  3440.     var Ef = function(a) {
  3441.         if (a.c != a.a.length) {
  3442.             for (var b = 0, c = 0; b < a.a.length; ) {
  3443.                 var d = a.a[b];
  3444.                 Ff(a.b, d) && (a.a[c++] = d);
  3445.                 b++
  3446.             }
  3447.             a.a.length = c
  3448.         }
  3449.         if (a.c != a.a.length) {
  3450.             for (var e = {}, c = b = 0; b < a.a.length; )
  3451.                 d = a.a[b],
  3452.                 Ff(e, d) || (a.a[c++] = d,
  3453.                 e[d] = 1),
  3454.                 b++;
  3455.             a.a.length = c
  3456.         }
  3457.     }
  3458.     ;
  3459.     h = Df.prototype;
  3460.     h.get = function(a, b) {
  3461.         return Ff(this.b, a) ? this.b[a] : b
  3462.     }
  3463.     ;
  3464.     h.set = function(a, b) {
  3465.         Ff(this.b, a) || (this.c++,
  3466.         this.a.push(a),
  3467.         this.f++);
  3468.         this.b[a] = b
  3469.     }
  3470.     ;
  3471.     h.forEach = function(a, b) {
  3472.         for (var c = this.$(), d = 0; d < c.length; d++) {
  3473.             var e = c[d]
  3474.               , f = this.get(e);
  3475.             a.call(b, f, e, this)
  3476.         }
  3477.     }
  3478.     ;
  3479.     h.clone = function() {
  3480.         return new Df(this)
  3481.     }
  3482.     ;
  3483.     h.Kb = function(a) {
  3484.         Ef(this);
  3485.         var b = 0
  3486.           , c = this.f
  3487.           , d = this
  3488.           , e = new Cf;
  3489.         e.next = function() {
  3490.             if (c != d.f)
  3491.                 throw Error("The map has changed since the iterator was created");
  3492.             if (b >= d.a.length)
  3493.                 throw Bf;
  3494.             var e = d.a[b++];
  3495.             return a ? e : d.b[e]
  3496.         }
  3497.         ;
  3498.         return e
  3499.     }
  3500.     ;
  3501.     var Ff = function(a, b) {
  3502.         return Object.prototype.hasOwnProperty.call(a, b)
  3503.     }
  3504.     ;
  3505.     var Gf = function(a) {
  3506.         if ("function" == typeof a.W)
  3507.             return a.W();
  3508.         if (v(a))
  3509.             return a.split("");
  3510.         if (da(a)) {
  3511.             for (var b = [], c = a.length, d = 0; d < c; d++)
  3512.                 b.push(a[d]);
  3513.             return b
  3514.         }
  3515.         return Ua(a)
  3516.     }
  3517.       , Hf = function(a, b, c) {
  3518.         if ("function" == typeof a.forEach)
  3519.             a.forEach(b, c);
  3520.         else if (da(a) || v(a))
  3521.             F(a, b, c);
  3522.         else {
  3523.             var d;
  3524.             if ("function" == typeof a.$)
  3525.                 d = a.$();
  3526.             else if ("function" != typeof a.W)
  3527.                 if (da(a) || v(a)) {
  3528.                     d = [];
  3529.                     for (var e = a.length, f = 0; f < e; f++)
  3530.                         d.push(f)
  3531.                 } else
  3532.                     d = Va(a);
  3533.             else
  3534.                 d = void 0;
  3535.             for (var e = Gf(a), f = e.length, g = 0; g < f; g++)
  3536.                 b.call(c, e[g], d && d[g], a)
  3537.         }
  3538.     }
  3539.     ;
  3540.     var If = /^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/
  3541.       , Kf = function(a) {
  3542.         if (Jf) {
  3543.             Jf = !1;
  3544.             var b = m.location;
  3545.             if (b) {
  3546.                 var c = b.href;
  3547.                 if (c && (c = (c = Kf(c)[3] || null ) ? decodeURI(c) : c) && c != b.hostname)
  3548.                     throw Jf = !0,
  3549.                     Error();
  3550.             }
  3551.         }
  3552.         return a.match(If)
  3553.     }
  3554.       , Jf = K
  3555.       , Lf = function(a, b) {
  3556.         for (var c = a.split("&"), d = 0; d < c.length; d++) {
  3557.             var e = c[d].indexOf("=")
  3558.               , f = null
  3559.               , g = null ;
  3560.             0 <= e ? (f = c[d].substring(0, e),
  3561.             g = c[d].substring(e + 1)) : f = c[d];
  3562.             b(f, g ? decodeURIComponent(g.replace(/\+/g, " ")) : "")
  3563.         }
  3564.     }
  3565.     ;
  3566.     var Mf = function(a, b) {
  3567.         this.f = this.m = this.c = "";
  3568.         this.i = null ;
  3569.         this.g = this.h = "";
  3570.         this.a = !1;
  3571.         var c;
  3572.         a instanceof Mf ? (this.a = q(b) ? b : a.a,
  3573.         Nf(this, a.c),
  3574.         this.m = a.m,
  3575.         this.f = a.f,
  3576.         Of(this, a.i),
  3577.         this.h = a.h,
  3578.         Pf(this, a.b.clone()),
  3579.         this.g = a.g) : a && (c = Kf(String(a))) ? (this.a = !!b,
  3580.         Nf(this, c[1] || "", !0),
  3581.         this.m = Qf(c[2] || ""),
  3582.         this.f = Qf(c[3] || "", !0),
  3583.         Of(this, c[4]),
  3584.         this.h = Qf(c[5] || "", !0),
  3585.         Pf(this, c[6] || "", !0),
  3586.         this.g = Qf(c[7] || "")) : (this.a = !!b,
  3587.         this.b = new T(null ,0,this.a))
  3588.     }
  3589.     ;
  3590.     Mf.prototype.toString = function() {
  3591.         var a = []
  3592.           , b = this.c;
  3593.         b && a.push(Rf(b, Sf, !0), ":");
  3594.         if (b = this.f) {
  3595.             a.push("//");
  3596.             var c = this.m;
  3597.             c && a.push(Rf(c, Sf, !0), "@");
  3598.             a.push(encodeURIComponent(String(b)).replace(/%25([0-9a-fA-F]{2})/g, "%$1"));
  3599.             b = this.i;
  3600.             null  != b && a.push(":", String(b))
  3601.         }
  3602.         if (b = this.h)
  3603.             this.f && "/" != b.charAt(0) && a.push("/"),
  3604.             a.push(Rf(b, "/" == b.charAt(0) ? Tf : Uf, !0));
  3605.         (b = this.b.toString()) && a.push("?", b);
  3606.         (b = this.g) && a.push("#", Rf(b, Vf));
  3607.         return a.join("")
  3608.     }
  3609.     ;
  3610.     Mf.prototype.clone = function() {
  3611.         return new Mf(this)
  3612.     }
  3613.     ;
  3614.     var Nf = function(a, b, c) {
  3615.         a.c = c ? Qf(b, !0) : b;
  3616.         a.c && (a.c = a.c.replace(/:$/, ""))
  3617.     }
  3618.       , Of = function(a, b) {
  3619.         if (b) {
  3620.             b = Number(b);
  3621.             if (isNaN(b) || 0 > b)
  3622.                 throw Error("Bad port number " + b);
  3623.             a.i = b
  3624.         } else
  3625.             a.i = null
  3626.     }
  3627.       , Pf = function(a, b, c) {
  3628.         b instanceof T ? (a.b = b,
  3629.         Wf(a.b, a.a)) : (c || (b = Rf(b, Xf)),
  3630.         a.b = new T(b,0,a.a))
  3631.     }
  3632.       , Qf = function(a, b) {
  3633.         return a ? b ? decodeURI(a) : decodeURIComponent(a) : ""
  3634.     }
  3635.       , Rf = function(a, b, c) {
  3636.         return v(a) ? (a = encodeURI(a).replace(b, Yf),
  3637.         c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, "%$1")),
  3638.         a) : null
  3639.     }
  3640.       , Yf = function(a) {
  3641.         a = a.charCodeAt(0);
  3642.         return "%" + (a >>
  3643.         4 & 15).toString(16) + (a & 15).toString(16)
  3644.     }
  3645.       , Sf = /[#\/\?@]/g
  3646.       , Uf = /[\#\?:]/g
  3647.       , Tf = /[\#\?]/g
  3648.       , Xf = /[\#\?@]/g
  3649.       , Vf = /#/g
  3650.       , T = function(a, b, c) {
  3651.         this.c = this.a = null ;
  3652.         this.b = a || null ;
  3653.         this.f = !!c
  3654.     }
  3655.       , Zf = function(a) {
  3656.         a.a || (a.a = new Df,
  3657.         a.c = 0,
  3658.         a.b && Lf(a.b, function(b, c) {
  3659.             a.add(decodeURIComponent(b.replace(/\+/g, " ")), c)
  3660.         }
  3661.         ))
  3662.     }
  3663.     ;
  3664.     T.prototype.add = function(a, b) {
  3665.         Zf(this);
  3666.         this.b = null ;
  3667.         a = $f(this, a);
  3668.         var c = this.a.get(a);
  3669.         c || this.a.set(a, c = []);
  3670.         c.push(b);
  3671.         this.c++;
  3672.         return this
  3673.     }
  3674.     ;
  3675.     T.prototype.remove = function(a) {
  3676.         Zf(this);
  3677.         a = $f(this, a);
  3678.         return Ff(this.a.b, a) ? (this.b = null ,
  3679.         this.c -= this.a.get(a).length,
  3680.         this.a.remove(a)) : !1
  3681.     }
  3682.     ;
  3683.     var ag = function(a, b) {
  3684.         Zf(a);
  3685.         b = $f(a, b);
  3686.         return Ff(a.a.b, b)
  3687.     }
  3688.     ;
  3689.     T.prototype.$ = function() {
  3690.         Zf(this);
  3691.         for (var a = this.a.W(), b = this.a.$(), c = [], d = 0; d < b.length; d++)
  3692.             for (var e = a[d], f = 0; f < e.length; f++)
  3693.                 c.push(b[d]);
  3694.         return c
  3695.     }
  3696.     ;
  3697.     T.prototype.W = function(a) {
  3698.         Zf(this);
  3699.         var b = [];
  3700.         if (v(a))
  3701.             ag(this, a) && (b = Ra(b, this.a.get($f(this, a))));
  3702.         else {
  3703.             a = this.a.W();
  3704.             for (var c = 0; c < a.length; c++)
  3705.                 b = Ra(b, a[c])
  3706.         }
  3707.         return b
  3708.     }
  3709.     ;
  3710.     T.prototype.set = function(a, b) {
  3711.         Zf(this);
  3712.         this.b = null ;
  3713.         a = $f(this, a);
  3714.         ag(this, a) && (this.c -= this.a.get(a).length);
  3715.         this.a.set(a, [b]);
  3716.         this.c++;
  3717.         return this
  3718.     }
  3719.     ;
  3720.     T.prototype.get = function(a, b) {
  3721.         var c = a ? this.W(a) : [];
  3722.         return 0 < c.length ? String(c[0]) : b
  3723.     }
  3724.     ;
  3725.     var bg = function(a, b, c) {
  3726.         a.remove(b);
  3727.         0 < c.length && (a.b = null ,
  3728.         a.a.set($f(a, b), Sa(c)),
  3729.         a.c += c.length)
  3730.     }
  3731.     ;
  3732.     T.prototype.toString = function() {
  3733.         if (this.b)
  3734.             return this.b;
  3735.         if (!this.a)
  3736.             return "";
  3737.         for (var a = [], b = this.a.$(), c = 0; c < b.length; c++)
  3738.             for (var d = b[c], e = encodeURIComponent(String(d)), d = this.W(d), f = 0; f < d.length; f++) {
  3739.                 var g = e;
  3740.                 "" !== d[f] && (g += "=" + encodeURIComponent(String(d[f])));
  3741.                 a.push(g)
  3742.             }
  3743.         return this.b = a.join("&")
  3744.     }
  3745.     ;
  3746.     T.prototype.clone = function() {
  3747.         var a = new T;
  3748.         a.b = this.b;
  3749.         this.a && (a.a = this.a.clone(),
  3750.         a.c = this.c);
  3751.         return a
  3752.     }
  3753.     ;
  3754.     var $f = function(a, b) {
  3755.         var c = String(b);
  3756.         a.f && (c = c.toLowerCase());
  3757.         return c
  3758.     }
  3759.       , Wf = function(a, b) {
  3760.         b && !a.f && (Zf(a),
  3761.         a.b = null ,
  3762.         a.a.forEach(function(a, b) {
  3763.             var e = b.toLowerCase();
  3764.             b != e && (this.remove(b),
  3765.             bg(this, e, a))
  3766.         }
  3767.         , a));
  3768.         a.f = b
  3769.     }
  3770.     ;
  3771.     T.prototype.g = function(a) {
  3772.         for (var b = 0; b < arguments.length; b++)
  3773.             Hf(arguments[b], function(a, b) {
  3774.                 this.add(b, a)
  3775.             }
  3776.             , this)
  3777.     }
  3778.     ;
  3779.     /*
  3780.  Portions of this code are from MochiKit, received by
  3781.  The Closure Authors under the MIT license. All other code is Copyright
  3782.  2005-2009 The Closure Authors. All Rights Reserved.
  3783. */
  3784.     var cg = function(a, b) {
  3785.         this.g = [];
  3786.         this.K = a;
  3787.         this.w = b || null ;
  3788.         this.f = this.a = !1;
  3789.         this.c = void 0;
  3790.         this.v = this.B = this.i = !1;
  3791.         this.h = 0;
  3792.         this.b = null ;
  3793.         this.m = 0
  3794.     }
  3795.     ;
  3796.     cg.prototype.cancel = function(a) {
  3797.         if (this.a)
  3798.             this.c instanceof cg && this.c.cancel();
  3799.         else {
  3800.             if (this.b) {
  3801.                 var b = this.b;
  3802.                 delete this.b;
  3803.                 a ? b.cancel(a) : (b.m--,
  3804.                 0 >= b.m && b.cancel())
  3805.             }
  3806.             this.K ? this.K.call(this.w, this) : this.v = !0;
  3807.             this.a || dg(this, new eg)
  3808.         }
  3809.     }
  3810.     ;
  3811.     cg.prototype.s = function(a, b) {
  3812.         this.i = !1;
  3813.         fg(this, a, b)
  3814.     }
  3815.     ;
  3816.     var fg = function(a, b, c) {
  3817.         a.a = !0;
  3818.         a.c = c;
  3819.         a.f = !b;
  3820.         gg(a)
  3821.     }
  3822.       , ig = function(a) {
  3823.         if (a.a) {
  3824.             if (!a.v)
  3825.                 throw new hg;
  3826.             a.v = !1
  3827.         }
  3828.     }
  3829.       , dg = function(a, b) {
  3830.         ig(a);
  3831.         jg(b);
  3832.         fg(a, !1, b)
  3833.     }
  3834.       , jg = function(a) {
  3835.         D(!(a instanceof cg), "An execution sequence may not be initiated with a blocking Deferred.")
  3836.     }
  3837.       , kg = function(a, b, c, d) {
  3838.         D(!a.B, "Blocking Deferreds can not be re-used");
  3839.         a.g.push([b, c, d]);
  3840.         a.a && gg(a)
  3841.     }
  3842.     ;
  3843.     cg.prototype.then = function(a, b, c) {
  3844.         var d, e, f = new oe(function(a, b) {
  3845.             d = a;
  3846.             e = b
  3847.         }
  3848.         );
  3849.         kg(this, d, function(a) {
  3850.             a instanceof eg ? f.cancel() : e(a)
  3851.         }
  3852.         );
  3853.         return f.then(a, b, c)
  3854.     }
  3855.     ;
  3856.     je(cg);
  3857.     var lg = function(a) {
  3858.         return La(a.g, function(a) {
  3859.             return x(a[1])
  3860.         }
  3861.         )
  3862.     }
  3863.       , gg = function(a) {
  3864.         if (a.h && a.a && lg(a)) {
  3865.             var b = a.h
  3866.               , c = mg[b];
  3867.             c && (m.clearTimeout(c.G),
  3868.             delete mg[b]);
  3869.             a.h = 0
  3870.         }
  3871.         a.b && (a.b.m--,
  3872.         delete a.b);
  3873.         for (var b = a.c, d = c = !1; a.g.length && !a.i; ) {
  3874.             var e = a.g.shift()
  3875.               , f = e[0]
  3876.               , g = e[1]
  3877.               , e = e[2];
  3878.             if (f = a.f ? g : f)
  3879.                 try {
  3880.                     var k = f.call(e || a.w, b);
  3881.                     q(k) && (a.f = a.f && (k == b || k instanceof Error),
  3882.                     a.c = b = k);
  3883.                     if (ke(b) || "function" === typeof m.Promise && b instanceof m.Promise)
  3884.                         d = !0,
  3885.                         a.i = !0
  3886.                 } catch (l) {
  3887.                     b = l,
  3888.                     a.f = !0,
  3889.                     lg(a) || (c = !0)
  3890.                 }
  3891.         }
  3892.         a.c = b;
  3893.         d && (k = y(a.s, a, !0),
  3894.         d = y(a.s, a,
  3895.         !1),
  3896.         b instanceof cg ? (kg(b, k, d),
  3897.         b.B = !0) : b.then(k, d));
  3898.         c && (b = new ng(b),
  3899.         mg[b.G] = b,
  3900.         a.h = b.G)
  3901.     }
  3902.       , hg = function() {
  3903.         B.call(this)
  3904.     }
  3905.     ;
  3906.     A(hg, B);
  3907.     hg.prototype.message = "Deferred has already fired";
  3908.     hg.prototype.name = "AlreadyCalledError";
  3909.     var eg = function() {
  3910.         B.call(this)
  3911.     }
  3912.     ;
  3913.     A(eg, B);
  3914.     eg.prototype.message = "Deferred was canceled";
  3915.     eg.prototype.name = "CanceledError";
  3916.     var ng = function(a) {
  3917.         this.G = m.setTimeout(y(this.b, this), 0);
  3918.         this.a = a
  3919.     }
  3920.     ;
  3921.     ng.prototype.b = function() {
  3922.         D(mg[this.G], "Cannot throw an error that is not scheduled.");
  3923.         delete mg[this.G];
  3924.         throw this.a;
  3925.     }
  3926.     ;
  3927.     var mg = {};
  3928.     var sg = function(a, b) {
  3929.         var c = b || {}
  3930.           , d = c.document || document
  3931.           , e = document.createElement("SCRIPT")
  3932.           , f = {
  3933.             Fb: e,
  3934.             ha: void 0
  3935.         }
  3936.           , g = new cg(og,f)
  3937.           , k = null
  3938.           , l = null  != c.timeout ? c.timeout : 5E3;
  3939.         0 < l && (k = window.setTimeout(function() {
  3940.             pg(e, !0);
  3941.             dg(g, new qg(1,"Timeout reached for loading script " + a))
  3942.         }
  3943.         , l),
  3944.         f.ha = k);
  3945.         e.onload = e.onreadystatechange = function() {
  3946.             e.readyState && "loaded" != e.readyState && "complete" != e.readyState || (pg(e, c.Mb || !1, k),
  3947.             ig(g),
  3948.             jg(null ),
  3949.             fg(g, !0, null ))
  3950.         }
  3951.         ;
  3952.         e.onerror = function() {
  3953.             pg(e, !0, k);
  3954.             dg(g, new qg(0,"Error while loading script " +
  3955.             a))
  3956.         }
  3957.         ;
  3958.         Yb(e, {
  3959.             type: "text/javascript",
  3960.             charset: "UTF-8",
  3961.             src: a
  3962.         });
  3963.         rg(d).appendChild(e);
  3964.         return g
  3965.     }
  3966.       , rg = function(a) {
  3967.         var b = a.getElementsByTagName("HEAD");
  3968.         return b && 0 != b.length ? b[0] : a.documentElement
  3969.     }
  3970.       , og = function() {
  3971.         if (this && this.Fb) {
  3972.             var a = this.Fb;
  3973.             a && "SCRIPT" == a.tagName && pg(a, !0, this.ha)
  3974.         }
  3975.     }
  3976.       , pg = function(a, b, c) {
  3977.         null  != c && m.clearTimeout(c);
  3978.         a.onload = r;
  3979.         a.onerror = r;
  3980.         a.onreadystatechange = r;
  3981.         b && window.setTimeout(function() {
  3982.             dc(a)
  3983.         }
  3984.         , 0)
  3985.     }
  3986.       , qg = function(a, b) {
  3987.         var c = "Jsloader error (code #" + a + ")";
  3988.         b && (c += ": " + b);
  3989.         B.call(this, c);
  3990.         this.code =
  3991.         a
  3992.     }
  3993.     ;
  3994.     A(qg, B);
  3995.     var tg = function(a, b) {
  3996.         this.b = new Mf(a);
  3997.         this.a = b ? b : "callback";
  3998.         this.ha = 5E3
  3999.     }
  4000.       , ug = 0;
  4001.     tg.prototype.send = function(a, b, c, d) {
  4002.         a = a || null ;
  4003.         d = d || "_" + (ug++).toString(36) + ja().toString(36);
  4004.         m._callbacks_ || (m._callbacks_ = {});
  4005.         var e = this.b.clone();
  4006.         if (a)
  4007.             for (var f in a)
  4008.                 if (!a.hasOwnProperty || a.hasOwnProperty(f)) {
  4009.                     var g = e
  4010.                       , k = f
  4011.                       , l = a[f];
  4012.                     u(l) || (l = [String(l)]);
  4013.                     bg(g.b, k, l)
  4014.                 }
  4015.         b && (m._callbacks_[d] = vg(d, b),
  4016.         b = this.a,
  4017.         f = "_callbacks_." + d,
  4018.         u(f) || (f = [String(f)]),
  4019.         bg(e.b, b, f));
  4020.         b = sg(e.toString(), {
  4021.             timeout: this.ha,
  4022.             Mb: !0
  4023.         });
  4024.         kg(b, null , wg(d, a, c), void 0);
  4025.         return {
  4026.             G: d,
  4027.             jb: b
  4028.         }
  4029.     }
  4030.     ;
  4031.     tg.prototype.cancel = function(a) {
  4032.         a && (a.jb && a.jb.cancel(),
  4033.         a.G && xg(a.G, !1))
  4034.     }
  4035.     ;
  4036.     var wg = function(a, b, c) {
  4037.         return function() {
  4038.             xg(a, !1);
  4039.             c && c(b)
  4040.         }
  4041.     }
  4042.       , vg = function(a, b) {
  4043.         return function(c) {
  4044.             xg(a, !0);
  4045.             b.apply(void 0, arguments)
  4046.         }
  4047.     }
  4048.       , xg = function(a, b) {
  4049.         m._callbacks_[a] && (b ? delete m._callbacks_[a] : m._callbacks_[a] = r)
  4050.     }
  4051.     ;
  4052.     var yg = function(a) {
  4053.         a = String(a).toLowerCase().replace("_", "-");
  4054.         if ("zh-cn" == a)
  4055.             return "zh-CN";
  4056.         if ("zh-tw" == a)
  4057.             return "zh-TW";
  4058.         var b = a.indexOf("-");
  4059.         a = 0 <= b ? a.substring(0, b) : a;
  4060.         return "zh" == a ? "zh-CN" : a
  4061.     }
  4062.       , zg = function(a) {
  4063.         a = chrome.i18n.getMessage(a);
  4064.         return chrome.i18n.getMessage(a)
  4065.     }
  4066.     ;
  4067.     var Bg = function(a) {
  4068.         this.f = [];
  4069.         chrome.i18n.getAcceptLanguages(y(this.v, this));
  4070.         this.c = "";
  4071.         this.a = "1";
  4072.         this.g = !0;
  4073.         this.b = [];
  4074.         this.h = [];
  4075.         this.m = !!a;
  4076.         chrome.storage.local.get(null , y(this.s, this));
  4077.         Ag(this)
  4078.     }
  4079.       , Cg = function(a) {
  4080.         if ("" != a.c)
  4081.             a = a.c;
  4082.         else
  4083.             a: {
  4084.                 for (var b = 0; b < a.f.length; b++) {
  4085.                     var c = yg(a.f[b]);
  4086.                     if (a.b[c]) {
  4087.                         a = c;
  4088.                         break a
  4089.                     }
  4090.                 }
  4091.                 a = "en"
  4092.             }
  4093.         return a
  4094.     }
  4095.     ;
  4096.     Bg.prototype.s = function(a) {
  4097.         "gtxTargetLang" in a && (this.c = a.gtxTargetLang);
  4098.         "gtxShowBubble" in a && (this.a = a.gtxShowBubble);
  4099.         "gtxDetectLanguage" in a && (this.g = a.gtxDetectLanguage);
  4100.         "gtxSourceLangList" in a && (this.h = Dg(this, a.gtxSourceLangList));
  4101.         "gtxTargetLangList" in a && (this.b = Dg(this, a.gtxTargetLangList));
  4102.         this.loaded = !0;
  4103.         if (this.m) {
  4104.             var b = (new Date).getTime()
  4105.               , c = "gtxTimeStamp" in a ? a.gtxTimeStamp : 0
  4106.               , d = chrome.i18n.getUILanguage ? chrome.i18n.getUILanguage() : "en";
  4107.             a = "gtxDisplayLanguage" in a ? a.gtxDisplayLanguage : "";
  4108.             (864E5 < Math.abs(b - c) || d != a) && (new tg("https://translate.googleapis.com/translate_a/l","cb")).send({
  4109.                 client: "gtx",
  4110.                 hl: d
  4111.             }, y(this.B, this, d))
  4112.         }
  4113.     }
  4114.     ;
  4115.     var Dg = function(a, b) {
  4116.         var c = [], d;
  4117.         for (d in b)
  4118.             c.push({
  4119.                 code: d,
  4120.                 name: b[d]
  4121.             });
  4122.         c.sort(a.i);
  4123.         d = {};
  4124.         for (var e = 0; e < c.length; e++)
  4125.             d[c[e].code] = c[e].name;
  4126.         return d
  4127.     }
  4128.     ;
  4129.     Bg.prototype.i = function(a, b) {
  4130.         return a.name.localeCompare(b.name)
  4131.     }
  4132.     ;
  4133.     var Ag = function(a) {
  4134.         chrome.storage.onChanged.addListener(function(b) {
  4135.             b.gtxTargetLang && (a.c = b.gtxTargetLang.newValue);
  4136.             b.gtxShowBubble && (a.a = b.gtxShowBubble.newValue)
  4137.         }
  4138.         )
  4139.     }
  4140.     ;
  4141.     Bg.prototype.v = function(a) {
  4142.         this.f = a
  4143.     }
  4144.     ;
  4145.     Bg.prototype.B = function(a, b) {
  4146.         var c = (new Date).getTime()
  4147.           , d = {};
  4148.         d.gtxSourceLangList = b.sl;
  4149.         d.gtxTargetLangList = b.tl;
  4150.         d.gtxDisplayLanguage = a;
  4151.         d.gtxTimeStamp = c;
  4152.         chrome.storage.local.set(d);
  4153.         this.h = b.sl;
  4154.         this.b = b.tl
  4155.     }
  4156.     ;
  4157.     var Fg = function(a) {
  4158.         var b = Eg;
  4159.         if ("sl" == a)
  4160.             return b.h;
  4161.         if ("tl" == a)
  4162.             return b.b;
  4163.         throw Error("Invalid input for getLangList()");
  4164.     }
  4165.     ;
  4166.     var Gg = [0, 100, 80, 50]
  4167.       , Hg = {
  4168.         ar: 2,
  4169.         zh: 3,
  4170.         "zh-cn": 3,
  4171.         "zh-tw": 3,
  4172.         en: 1,
  4173.         fr: 1,
  4174.         de: 1,
  4175.         it: 1,
  4176.         ja: 3,
  4177.         ko: 3,
  4178.         la: 1,
  4179.         pt: 1,
  4180.         es: 1,
  4181.         af: 1,
  4182.         sq: 1,
  4183.         hy: 1,
  4184.         bs: 1,
  4185.         ca: 1,
  4186.         hr: 1,
  4187.         cs: 1,
  4188.         da: 1,
  4189.         nl: 1,
  4190.         eo: 1,
  4191.         fi: 1,
  4192.         el: 2,
  4193.         ht: 1,
  4194.         hi: 2,
  4195.         hu: 1,
  4196.         is: 1,
  4197.         id: 1,
  4198.         ku: 1,
  4199.         lv: 1,
  4200.         mk: 2,
  4201.         no: 1,
  4202.         pl: 1,
  4203.         ro: 1,
  4204.         ru: 2,
  4205.         sr: 2,
  4206.         sk: 1,
  4207.         sw: 1,
  4208.         sv: 1,
  4209.         ta: 2,
  4210.         th: 1,
  4211.         tr: 1,
  4212.         vi: 1,
  4213.         cy: 1
  4214.     };
  4215.     var Ig = function() {
  4216.         this.b = [];
  4217.         this.a = {};
  4218.         this.c = !1;
  4219.         this.i = 1;
  4220.         this.f = {};
  4221.         P(window, "beforeunload", this.h, !1, this)
  4222.     }
  4223.     ;
  4224.     ba(Ig);
  4225.     var Jg = function(a, b, c) {
  4226.         if (null  == b)
  4227.             return "1";
  4228.         switch (ca(b)) {
  4229.         case "string":
  4230.             return a = b,
  4231.             !(64 < a.length) || null  != c && c || (a = a.substr(0, 64)),
  4232.             encodeURIComponent(String(a));
  4233.         case "number":
  4234.             return "" + b;
  4235.         case "boolean":
  4236.             return b ? "1" : "0";
  4237.         case "array":
  4238.             var d = [], e;
  4239.             for (e in b)
  4240.                 d.push(Jg(a, b[e], c));
  4241.             return d.join(",");
  4242.         case "object":
  4243.             d = [];
  4244.             for (e in b)
  4245.                 d.push([encodeURIComponent(String(e)), Jg(a, b[e], c || "smtalt" == e)].join("="));
  4246.             return d.join(",");
  4247.         default:
  4248.             return ""
  4249.         }
  4250.     }
  4251.     ;
  4252.     Ig.prototype.log = function(a, b, c) {
  4253.         this.b.push([a, b, c]);
  4254.         this.c || (this.c = !0,
  4255.         Ce(this.g, 0, this))
  4256.     }
  4257.     ;
  4258.     Ig.prototype.g = function() {
  4259.         for (var a = 0; a < this.b.length; a++) {
  4260.             var b = this.b[a];
  4261.             Kg(this, b[0], b[1], b[2])
  4262.         }
  4263.         this.b = [];
  4264.         this.c = !1
  4265.     }
  4266.     ;
  4267.     var Kg = function(a, b, c, d) {
  4268.         Lg(a, (d || "") + "/gen204?" + [encodeURIComponent(String(b)), Jg(a, c, "smtalt" == b)].join("="))
  4269.     }
  4270.       , Lg = function(a, b) {
  4271.         var c = new Image
  4272.           , d = a.i++;
  4273.         a.f[d] = c;
  4274.         c.onload = c.onerror = function() {
  4275.             delete Ig.V().f[d]
  4276.         }
  4277.         ;
  4278.         c.src = b;
  4279.         c = null
  4280.     }
  4281.     ;
  4282.     Ig.prototype.h = function() {
  4283.         this.g();
  4284.         for (var a in this.a)
  4285.             if (0 != this.a[a]) {
  4286.                 var b = a;
  4287.                 Kg(this, b, this.a[b][1], void 0);
  4288.                 b in this.a && (m.clearTimeout(this.a[b][0]),
  4289.                 delete this.a[b])
  4290.             }
  4291.     }
  4292.     ;
  4293.     var Mg = function(a) {
  4294.         return eval("(" + a + ")")
  4295.     }
  4296.     ;
  4297.     var Ng = function(a, b, c, d, e) {
  4298.         this.reset(a, b, c, d, e)
  4299.     }
  4300.     ;
  4301.     Ng.prototype.a = null ;
  4302.     var Og = 0;
  4303.     Ng.prototype.reset = function(a, b, c, d, e) {
  4304.         "number" == typeof e || Og++;
  4305.         d || ja();
  4306.         this.b = b;
  4307.         delete this.a
  4308.     }
  4309.     ;
  4310.     Ng.prototype.getMessage = function() {
  4311.         return this.b
  4312.     }
  4313.     ;
  4314.     var Pg = function(a) {
  4315.         this.f = a;
  4316.         this.b = this.c = this.a = null
  4317.     }
  4318.       , Qg = function(a, b) {
  4319.         this.name = a;
  4320.         this.value = b
  4321.     }
  4322.     ;
  4323.     Qg.prototype.toString = function() {
  4324.         return this.name
  4325.     }
  4326.     ;
  4327.     var Rg = new Qg("SEVERE",1E3)
  4328.       , Sg = new Qg("CONFIG",700)
  4329.       , Tg = new Qg("FINE",500);
  4330.     Pg.prototype.getChildren = function() {
  4331.         this.b || (this.b = {});
  4332.         return this.b
  4333.     }
  4334.     ;
  4335.     var Ug = function(a) {
  4336.         if (a.c)
  4337.             return a.c;
  4338.         if (a.a)
  4339.             return Ug(a.a);
  4340.         Ba("Root logger has no level set.");
  4341.         return null
  4342.     }
  4343.     ;
  4344.     Pg.prototype.log = function(a, b, c) {
  4345.         if (a.value >= Ug(this).value)
  4346.             for (x(b) && (b = b()),
  4347.             a = new Ng(a,String(b),this.f),
  4348.             c && (a.a = c),
  4349.             c = "log:" + a.getMessage(),
  4350.             m.console && (m.console.timeStamp ? m.console.timeStamp(c) : m.console.markTimeline && m.console.markTimeline(c)),
  4351.             m.msWriteProfilerMark && m.msWriteProfilerMark(c),
  4352.             c = this; c; )
  4353.                 c = c.a
  4354.     }
  4355.     ;
  4356.     var Vg = {}
  4357.       , Wg = null
  4358.       , Xg = function(a) {
  4359.         Wg || (Wg = new Pg(""),
  4360.         Vg[""] = Wg,
  4361.         Wg.c = Sg);
  4362.         var b;
  4363.         if (!(b = Vg[a])) {
  4364.             b = new Pg(a);
  4365.             var c = a.lastIndexOf(".")
  4366.               , d = a.substr(c + 1)
  4367.               , c = Xg(a.substr(0, c));
  4368.             c.getChildren()[d] = b;
  4369.             b.a = c;
  4370.             Vg[a] = b
  4371.         }
  4372.         return b
  4373.     }
  4374.     ;
  4375.     var U = function(a, b) {
  4376.         a && a.log(Tg, b, void 0)
  4377.     }
  4378.     ;
  4379.     var Yg = function() {}
  4380.     ;
  4381.     Yg.prototype.a = null ;
  4382.     var $g = function(a) {
  4383.         var b;
  4384.         (b = a.a) || (b = {},
  4385.         Zg(a) && (b[0] = !0,
  4386.         b[1] = !0),
  4387.         b = a.a = b);
  4388.         return b
  4389.     }
  4390.     ;
  4391.     var ah, bh = function() {}
  4392.     ;
  4393.     A(bh, Yg);
  4394.     var ch = function(a) {
  4395.         return (a = Zg(a)) ? new ActiveXObject(a) : new XMLHttpRequest
  4396.     }
  4397.       , Zg = function(a) {
  4398.         if (!a.b && "undefined" == typeof XMLHttpRequest && "undefined" != typeof ActiveXObject) {
  4399.             for (var b = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"], c = 0; c < b.length; c++) {
  4400.                 var d = b[c];
  4401.                 try {
  4402.                     return new ActiveXObject(d),
  4403.                     a.b = d
  4404.                 } catch (e) {}
  4405.             }
  4406.             throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");
  4407.         }
  4408.         return a.b
  4409.     }
  4410.     ;
  4411.     ah = new bh;
  4412.     var dh = function(a) {
  4413.         Q.call(this);
  4414.         this.Ba = new Df;
  4415.         this.K = a || null ;
  4416.         this.b = !1;
  4417.         this.w = this.a = null ;
  4418.         this.h = this.R = this.f = "";
  4419.         this.c = this.L = this.m = this.N = !1;
  4420.         this.g = 0;
  4421.         this.i = null ;
  4422.         this.ia = "";
  4423.         this.s = this.Da = !1
  4424.     }
  4425.     ;
  4426.     A(dh, Q);
  4427.     var eh = dh.prototype
  4428.       , fh = Xg("goog.net.XhrIo");
  4429.     eh.J = fh;
  4430.     var gh = /^https?$/i
  4431.       , hh = ["POST", "PUT"]
  4432.       , ih = []
  4433.       , jh = function(a, b, c, d) {
  4434.         var e = new dh;
  4435.         ih.push(e);
  4436.         b && e.listen("complete", b);
  4437.         e.F.add("ready", e.Aa, !0, void 0, void 0);
  4438.         e.g = Math.max(0, 1E4);
  4439.         e.send(a, c, d, void 0)
  4440.     }
  4441.     ;
  4442.     dh.prototype.Aa = function() {
  4443.         this.O();
  4444.         Qa(ih, this)
  4445.     }
  4446.     ;
  4447.     dh.prototype.send = function(a, b, c, d) {
  4448.         if (this.a)
  4449.             throw Error("[goog.net.XhrIo] Object is active with another request=" + this.f + "; newUri=" + a);
  4450.         b = b ? b.toUpperCase() : "GET";
  4451.         this.f = a;
  4452.         this.h = "";
  4453.         this.R = b;
  4454.         this.N = !1;
  4455.         this.b = !0;
  4456.         this.a = this.K ? ch(this.K) : ch(ah);
  4457.         this.w = this.K ? $g(this.K) : $g(ah);
  4458.         this.a.onreadystatechange = y(this.S, this);
  4459.         try {
  4460.             U(this.J, kh(this, "Opening Xhr")),
  4461.             this.L = !0,
  4462.             this.a.open(b, String(a), !0),
  4463.             this.L = !1
  4464.         } catch (e) {
  4465.             U(this.J, kh(this, "Error opening Xhr: " + e.message));
  4466.             lh(this, e);
  4467.             return
  4468.         }
  4469.         a = c || "";
  4470.         var f = this.Ba.clone();
  4471.         d && Hf(d, function(a, b) {
  4472.             f.set(b, a)
  4473.         }
  4474.         );
  4475.         d = Oa(f.$());
  4476.         c = m.FormData && a instanceof m.FormData;
  4477.         !Pa(hh, b) || d || c || f.set("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
  4478.         f.forEach(function(a, b) {
  4479.             this.a.setRequestHeader(b, a)
  4480.         }
  4481.         , this);
  4482.         this.ia && (this.a.responseType = this.ia);
  4483.         "withCredentials" in this.a && (this.a.withCredentials = this.Da);
  4484.         try {
  4485.             mh(this),
  4486.             0 < this.g && (this.s = nh(this.a),
  4487.             U(this.J, kh(this, "Will abort after " + this.g + "ms if incomplete, xhr2 " + this.s)),
  4488.             this.s ? (this.a.timeout = this.g,
  4489.             this.a.ontimeout =
  4490.             y(this.ha, this)) : this.i = Ce(this.ha, this.g, this)),
  4491.             U(this.J, kh(this, "Sending request")),
  4492.             this.m = !0,
  4493.             this.a.send(a),
  4494.             this.m = !1
  4495.         } catch (g) {
  4496.             U(this.J, kh(this, "Send error: " + g.message)),
  4497.             lh(this, g)
  4498.         }
  4499.     }
  4500.     ;
  4501.     var nh = function(a) {
  4502.         return I && M(9) && w(a.timeout) && q(a.ontimeout)
  4503.     }
  4504.       , Na = function(a) {
  4505.         return "content-type" == a.toLowerCase()
  4506.     }
  4507.     ;
  4508.     dh.prototype.ha = function() {
  4509.         "undefined" != typeof aa && this.a && (this.h = "Timed out after " + this.g + "ms, aborting",
  4510.         U(this.J, kh(this, this.h)),
  4511.         R(this, "timeout"),
  4512.         this.a && this.b && (U(this.J, kh(this, "Aborting")),
  4513.         this.b = !1,
  4514.         this.c = !0,
  4515.         this.a.abort(),
  4516.         this.c = !1,
  4517.         R(this, "complete"),
  4518.         R(this, "abort"),
  4519.         oh(this)))
  4520.     }
  4521.     ;
  4522.     var lh = function(a, b) {
  4523.         a.b = !1;
  4524.         a.a && (a.c = !0,
  4525.         a.a.abort(),
  4526.         a.c = !1);
  4527.         a.h = b;
  4528.         ph(a);
  4529.         oh(a)
  4530.     }
  4531.       , ph = function(a) {
  4532.         a.N || (a.N = !0,
  4533.         R(a, "complete"),
  4534.         R(a, "error"))
  4535.     }
  4536.     ;
  4537.     dh.prototype.o = function() {
  4538.         this.a && (this.b && (this.b = !1,
  4539.         this.c = !0,
  4540.         this.a.abort(),
  4541.         this.c = !1),
  4542.         oh(this, !0));
  4543.         dh.l.o.call(this)
  4544.     }
  4545.     ;
  4546.     dh.prototype.S = function() {
  4547.         this.v || (this.L || this.m || this.c ? qh(this) : this.Ca())
  4548.     }
  4549.     ;
  4550.     dh.prototype.Ca = function() {
  4551.         qh(this)
  4552.     }
  4553.     ;
  4554.     var qh = function(a) {
  4555.         if (a.b && "undefined" != typeof aa)
  4556.             if (a.w[1] && 4 == rh(a) && 2 == sh(a))
  4557.                 U(a.J, kh(a, "Local request error detected and ignored"));
  4558.             else if (a.m && 4 == rh(a))
  4559.                 Ce(a.S, 0, a);
  4560.             else if (R(a, "readystatechange"),
  4561.             4 == rh(a)) {
  4562.                 U(a.J, kh(a, "Request complete"));
  4563.                 a.b = !1;
  4564.                 try {
  4565.                     if (th(a))
  4566.                         R(a, "complete"),
  4567.                         R(a, "success");
  4568.                     else {
  4569.                         var b;
  4570.                         try {
  4571.                             b = 2 < rh(a) ? a.a.statusText : ""
  4572.                         } catch (c) {
  4573.                             U(a.J, "Can not get status: " + c.message),
  4574.                             b = ""
  4575.                         }
  4576.                         a.h = b + " [" + sh(a) + "]";
  4577.                         ph(a)
  4578.                     }
  4579.                 } finally {
  4580.                     oh(a)
  4581.                 }
  4582.             }
  4583.     }
  4584.       , oh = function(a, b) {
  4585.         if (a.a) {
  4586.             mh(a);
  4587.             var c = a.a
  4588.               , d = a.w[0] ? r : null ;
  4589.             a.a = null ;
  4590.             a.w = null ;
  4591.             b || R(a, "ready");
  4592.             try {
  4593.                 c.onreadystatechange = d
  4594.             } catch (e) {
  4595.                 (c = a.J) && c.log(Rg, "Problem encountered resetting onreadystatechange: " + e.message, void 0)
  4596.             }
  4597.         }
  4598.     }
  4599.       , mh = function(a) {
  4600.         a.a && a.s && (a.a.ontimeout = null );
  4601.         w(a.i) && (m.clearTimeout(a.i),
  4602.         a.i = null )
  4603.     }
  4604.       , th = function(a) {
  4605.         var b = sh(a), c;
  4606.         a: switch (b) {
  4607.         case 200:
  4608.         case 201:
  4609.         case 202:
  4610.         case 204:
  4611.         case 206:
  4612.         case 304:
  4613.         case 1223:
  4614.             c = !0;
  4615.             break a;
  4616.         default:
  4617.             c = !1
  4618.         }
  4619.         if (!c) {
  4620.             if (b = 0 === b)
  4621.                 a = Kf(String(a.f))[1] || null ,
  4622.                 !a && self.location && (a = self.location.protocol,
  4623.                 a = a.substr(0, a.length - 1)),
  4624.                 b = !gh.test(a ? a.toLowerCase() :
  4625.                 "");
  4626.             c = b
  4627.         }
  4628.         return c
  4629.     }
  4630.       , rh = function(a) {
  4631.         return a.a ? a.a.readyState : 0
  4632.     }
  4633.       , sh = function(a) {
  4634.         try {
  4635.             return 2 < rh(a) ? a.a.status : -1
  4636.         } catch (b) {
  4637.             return -1
  4638.         }
  4639.     }
  4640.       , uh = function(a) {
  4641.         try {
  4642.             return a.a ? a.a.responseText : ""
  4643.         } catch (b) {
  4644.             return U(a.J, "Can not get responseText: " + b.message),
  4645.             ""
  4646.         }
  4647.     }
  4648.       , kh = function(a, b) {
  4649.         return b + " [" + a.R + " " + a.f + " " + sh(a) + "]"
  4650.     }
  4651.     ;
  4652.     var vh = function() {}
  4653.     ;
  4654.     var wh = function(a, b) {
  4655.         this.c = a;
  4656.         this.a = "";
  4657.         b && (this.a = b);
  4658.         this.b = 0
  4659.     }
  4660.       , xh = function() {
  4661.         var a = Math.floor((new Date).getTime() / 36E5) ^ 123456;
  4662.         return a + "|" + Math.floor((Math.sqrt(5) - 1) / 2 * (a ^ 654321) % 1 * 1048576)
  4663.     }
  4664.       , yh = function(a, b, c, d, e) {
  4665.         c = c.toString();
  4666.         c += "&tk=" + xh();
  4667.         d = d.toString();
  4668.         var f = "POST";
  4669.         b += "?" + c;
  4670.         2E3 > c.length + d.length && (f = "GET",
  4671.         b += "&" + d,
  4672.         d = "");
  4673.         ++a.b;
  4674.         jh(b, function(b) {
  4675.             --a.b;
  4676.             e(b)
  4677.         }
  4678.         , f, d)
  4679.     }
  4680.     ;
  4681.     wh.prototype.f = function(a, b) {
  4682.         var c = b.target;
  4683.         if (!th(c) || "[" != uh(c)[0] && "{" != uh(c)[0]) {
  4684.             var d = Ig.V()
  4685.               , e = String(c.f)
  4686.               , c = uh(c);
  4687.             d.log("invalidResponse", {
  4688.                 q: e.substring(0, 500),
  4689.                 ql: e.length,
  4690.                 r: c.substring(0, 500),
  4691.                 rl: c.length
  4692.             });
  4693.             a(null )
  4694.         } else {
  4695.             d = uh(c);
  4696.             c = {
  4697.                 "class": "trans.common.TranslationAPI",
  4698.                 func: "handleSingleResult_",
  4699.                 url: String(c.f)
  4700.             };
  4701.             try {
  4702.                 e = Mg(d)
  4703.             } catch (f) {
  4704.                 throw e = Ig.V(),
  4705.                 c.js = d,
  4706.                 c.error = f.message,
  4707.                 e.log("jsonParseErr", c),
  4708.                 f;
  4709.             }
  4710.             u(e) && (e = new vh);
  4711.             a(e)
  4712.         }
  4713.     }
  4714.     ;
  4715.     var Ah = function(a, b) {
  4716.         Q.call(this);
  4717.         a && zh(this, a, b)
  4718.     }
  4719.     ;
  4720.     A(Ah, Q);
  4721.     h = Ah.prototype;
  4722.     h.pa = null ;
  4723.     h.Ia = null ;
  4724.     h.$a = null ;
  4725.     h.Ja = null ;
  4726.     h.I = -1;
  4727.     h.ba = -1;
  4728.     h.Na = !1;
  4729.     var Bh = {
  4730.         3: 13,
  4731.         12: 144,
  4732.         63232: 38,
  4733.         63233: 40,
  4734.         63234: 37,
  4735.         63235: 39,
  4736.         63236: 112,
  4737.         63237: 113,
  4738.         63238: 114,
  4739.         63239: 115,
  4740.         63240: 116,
  4741.         63241: 117,
  4742.         63242: 118,
  4743.         63243: 119,
  4744.         63244: 120,
  4745.         63245: 121,
  4746.         63246: 122,
  4747.         63247: 123,
  4748.         63248: 44,
  4749.         63272: 46,
  4750.         63273: 36,
  4751.         63275: 35,
  4752.         63276: 33,
  4753.         63277: 34,
  4754.         63289: 144,
  4755.         63302: 45
  4756.     }
  4757.       , Ch = {
  4758.         Up: 38,
  4759.         Down: 40,
  4760.         Left: 37,
  4761.         Right: 39,
  4762.         Enter: 13,
  4763.         F1: 112,
  4764.         F2: 113,
  4765.         F3: 114,
  4766.         F4: 115,
  4767.         F5: 116,
  4768.         F6: 117,
  4769.         F7: 118,
  4770.         F8: 119,
  4771.         F9: 120,
  4772.         F10: 121,
  4773.         F11: 122,
  4774.         F12: 123,
  4775.         "U+007F": 46,
  4776.         Home: 36,
  4777.         End: 35,
  4778.         PageUp: 33,
  4779.         PageDown: 34,
  4780.         Insert: 45
  4781.     }
  4782.       , Dh = I || K && M("525")
  4783.       , Eh = Gb && J;
  4784.     Ah.prototype.a = function(a) {
  4785.         K && (17 == this.I && !a.ctrlKey || 18 == this.I && !a.altKey || Gb && 91 == this.I && !a.metaKey) && (this.ba = this.I = -1);
  4786.         -1 == this.I && (a.ctrlKey && 17 != a.keyCode ? this.I = 17 : a.altKey && 18 != a.keyCode ? this.I = 18 : a.metaKey && 91 != a.keyCode && (this.I = 91));
  4787.         Dh && !md(a.keyCode, this.I, a.shiftKey, a.ctrlKey, a.altKey) ? this.handleEvent(a) : (this.ba = kd(a.keyCode),
  4788.         Eh && (this.Na = a.altKey))
  4789.     }
  4790.     ;
  4791.     Ah.prototype.b = function(a) {
  4792.         this.ba = this.I = -1;
  4793.         this.Na = a.altKey
  4794.     }
  4795.     ;
  4796.     Ah.prototype.handleEvent = function(a) {
  4797.         var b = a.ma(), c, d, e = b.altKey;
  4798.         I && "keypress" == a.type ? (c = this.ba,
  4799.         d = 13 != c && 27 != c ? b.keyCode : 0) : K && "keypress" == a.type ? (c = this.ba,
  4800.         d = 0 <= b.charCode && 63232 > b.charCode && jd(c) ? b.charCode : 0) : Eb ? (c = this.ba,
  4801.         d = jd(c) ? b.keyCode : 0) : (c = b.keyCode || this.ba,
  4802.         d = b.charCode || 0,
  4803.         Eh && (e = this.Na),
  4804.         Gb && 63 == d && 224 == c && (c = 191));
  4805.         var f = c = kd(c)
  4806.           , g = b.keyIdentifier;
  4807.         c ? 63232 <= c && c in Bh ? f = Bh[c] : 25 == c && a.shiftKey && (f = 9) : g && g in Ch && (f = Ch[g]);
  4808.         a = f == this.I;
  4809.         this.I = f;
  4810.         b = new Fh(f,d,a,b);
  4811.         b.altKey = e;
  4812.         R(this, b)
  4813.     }
  4814.     ;
  4815.     Ah.prototype.j = function() {
  4816.         return this.pa
  4817.     }
  4818.     ;
  4819.     var zh = function(a, b, c) {
  4820.         a.Ja && Gh(a);
  4821.         a.pa = b;
  4822.         a.Ia = P(a.pa, "keypress", a, c);
  4823.         a.$a = P(a.pa, "keydown", a.a, c, a);
  4824.         a.Ja = P(a.pa, "keyup", a.b, c, a)
  4825.     }
  4826.       , Gh = function(a) {
  4827.         a.Ia && (Sc(a.Ia),
  4828.         Sc(a.$a),
  4829.         Sc(a.Ja),
  4830.         a.Ia = null ,
  4831.         a.$a = null ,
  4832.         a.Ja = null );
  4833.         a.pa = null ;
  4834.         a.I = -1;
  4835.         a.ba = -1
  4836.     }
  4837.     ;
  4838.     Ah.prototype.o = function() {
  4839.         Ah.l.o.call(this);
  4840.         Gh(this)
  4841.     }
  4842.     ;
  4843.     var Fh = function(a, b, c, d) {
  4844.         O.call(this, d);
  4845.         this.type = "key";
  4846.         this.keyCode = a;
  4847.         this.charCode = b;
  4848.         this.repeat = c
  4849.     }
  4850.     ;
  4851.     A(Fh, O);
  4852.     var V = function() {}
  4853.     , Hh;
  4854.     ba(V);
  4855.     var Ih = {
  4856.         button: "pressed",
  4857.         checkbox: "checked",
  4858.         menuitem: "selected",
  4859.         menuitemcheckbox: "checked",
  4860.         menuitemradio: "checked",
  4861.         radio: "checked",
  4862.         tab: "selected",
  4863.         treeitem: "selected"
  4864.     };
  4865.     V.prototype.Ua = function() {}
  4866.     ;
  4867.     V.prototype.va = function(a) {
  4868.         return a.f.b("DIV", Jh(this, a).join(" "), a.Z())
  4869.     }
  4870.     ;
  4871.     var Lh = function(a, b, c) {
  4872.         if (a = a.j ? a.j() : a) {
  4873.             var d = [b];
  4874.             I && !M("7") && (d = Kh(Xc(a), b),
  4875.             d.push(b));
  4876.             (c ? $c : bd)(a, d)
  4877.         }
  4878.     }
  4879.     ;
  4880.     V.prototype.pb = function() {
  4881.         return !0
  4882.     }
  4883.     ;
  4884.     V.prototype.aa = function(a, b) {
  4885.         b.id && Re(a, b.id);
  4886.         b && b.firstChild ? Mh(a, b.firstChild.nextSibling ? Sa(b.childNodes) : b.firstChild) : a.wa = null ;
  4887.         var c = 0
  4888.           , d = this.A()
  4889.           , e = this.A()
  4890.           , f = !1
  4891.           , g = !1
  4892.           , k = !1
  4893.           , l = Sa(Xc(b));
  4894.         F(l, function(a) {
  4895.             f || a != d ? g || a != e ? c |= Nh(this, a) : g = !0 : (f = !0,
  4896.             e == d && (g = !0));
  4897.             1 == Nh(this, a) && (Fa(b),
  4898.             jc(b) && kc(b) && ic(b, !1))
  4899.         }
  4900.         , this);
  4901.         a.u = c;
  4902.         f || (l.push(d),
  4903.         e == d && (g = !0));
  4904.         g || l.push(e);
  4905.         var p = a.M;
  4906.         p && l.push.apply(l, p);
  4907.         if (I && !M("7")) {
  4908.             var n = Kh(l);
  4909.             0 < n.length && (l.push.apply(l, n),
  4910.             k = !0)
  4911.         }
  4912.         if (!f || !g || p || k)
  4913.             b.className = l.join(" ");
  4914.         return b
  4915.     }
  4916.     ;
  4917.     V.prototype.xb = function(a) {
  4918.         null  == a.ia && (a.ia = Od(a.H ? a.a : a.f.a.body));
  4919.         a.ia && this.rb(a.j(), !0);
  4920.         a.b() && this.Ka(a, a.fa)
  4921.     }
  4922.     ;
  4923.     var Oh = function(a, b) {
  4924.         var c = a.Ua();
  4925.         if (c) {
  4926.             D(b, "The element passed as a first parameter cannot be null.");
  4927.             var d = b.getAttribute("role") || null ;
  4928.             c != d && (c ? (D(Wa(ed, c), "No such ARIA role " + c),
  4929.             b.setAttribute("role", c)) : b.removeAttribute("role"))
  4930.         }
  4931.     }
  4932.     ;
  4933.     h = V.prototype;
  4934.     h.Va = function(a, b) {
  4935.         var c = !b
  4936.           , d = I || Eb ? a.getElementsByTagName("*") : null ;
  4937.         if (Pd) {
  4938.             if (c = c ? "none" : "",
  4939.             a.style[Pd] = c,
  4940.             d)
  4941.                 for (var e = 0, f; f = d[e]; e++)
  4942.                     f.style[Pd] = c
  4943.         } else if (I || Eb)
  4944.             if (c = c ? "on" : "",
  4945.             a.setAttribute("unselectable", c),
  4946.             d)
  4947.                 for (e = 0; f = d[e]; e++)
  4948.                     f.setAttribute("unselectable", c)
  4949.     }
  4950.     ;
  4951.     h.rb = function(a, b) {
  4952.         Lh(a, this.A() + "-rtl", b)
  4953.     }
  4954.     ;
  4955.     h.qb = function(a) {
  4956.         var b;
  4957.         return a.C & 32 && (b = a.j()) ? jc(b) && kc(b) : !1
  4958.     }
  4959.     ;
  4960.     h.Ka = function(a, b) {
  4961.         var c;
  4962.         if (a.C & 32 && (c = a.j())) {
  4963.             if (!b && a.u & 32) {
  4964.                 try {
  4965.                     c.blur()
  4966.                 } catch (d) {}
  4967.                 a.u & 32 && a.sb()
  4968.             }
  4969.             (jc(c) && kc(c)) != b && ic(c, b)
  4970.         }
  4971.     }
  4972.     ;
  4973.     h.Wa = function(a, b, c) {
  4974.         var d = a.j();
  4975.         if (d) {
  4976.             var e = Ph(this, b);
  4977.             e && Lh(a, e, c);
  4978.             this.P(d, b, c)
  4979.         }
  4980.     }
  4981.     ;
  4982.     h.P = function(a, b, c) {
  4983.         Hh || (Hh = {
  4984.             1: "disabled",
  4985.             8: "selected",
  4986.             16: "checked",
  4987.             64: "expanded"
  4988.         });
  4989.         D(a, "The element passed as a first parameter cannot be null.");
  4990.         b = Hh[b];
  4991.         var d = a.getAttribute("role") || null ;
  4992.         d && (d = Ih[d] || b,
  4993.         b = "checked" == b || "selected" == b ? d : b);
  4994.         b && fd(a, b, c)
  4995.     }
  4996.     ;
  4997.     h.A = function() {
  4998.         return "goog-control"
  4999.     }
  5000.     ;
  5001.     var Jh = function(a, b) {
  5002.         var c = a.A()
  5003.           , d = [c]
  5004.           , e = a.A();
  5005.         e != c && d.push(e);
  5006.         c = b.getState();
  5007.         for (e = []; c; ) {
  5008.             var f = c & -c;
  5009.             e.push(Ph(a, f));
  5010.             c &= ~f
  5011.         }
  5012.         d.push.apply(d, e);
  5013.         (c = b.M) && d.push.apply(d, c);
  5014.         I && !M("7") && d.push.apply(d, Kh(d));
  5015.         return d
  5016.     }
  5017.       , Kh = function(a, b) {
  5018.         var c = [];
  5019.         b && (a = a.concat([b]));
  5020.         F([], function(d) {
  5021.             !Ma(d, z(Pa, a)) || b && !Pa(d, b) || c.push(d.join("_"))
  5022.         }
  5023.         );
  5024.         return c
  5025.     }
  5026.       , Ph = function(a, b) {
  5027.         a.a || Qh(a);
  5028.         return a.a[b]
  5029.     }
  5030.       , Nh = function(a, b) {
  5031.         if (!a.s) {
  5032.             a.a || Qh(a);
  5033.             var c = a.a, d = {}, e;
  5034.             for (e in c)
  5035.                 d[c[e]] = e;
  5036.             a.s = d
  5037.         }
  5038.         c = parseInt(a.s[b], 10);
  5039.         return isNaN(c) ? 0 :
  5040.         c
  5041.     }
  5042.       , Qh = function(a) {
  5043.         var b = a.A()
  5044.           , c = b.replace(/\xa0|\s/g, " ");
  5045.         D(-1 == c.indexOf(" "), "ControlRenderer has an invalid css class: '" + b + "'");
  5046.         a.a = {
  5047.             1: b + "-disabled",
  5048.             2: b + "-hover",
  5049.             4: b + "-active",
  5050.             8: b + "-selected",
  5051.             16: b + "-checked",
  5052.             32: b + "-focused",
  5053.             64: b + "-open"
  5054.         }
  5055.     }
  5056.     ;
  5057.     var Rh = function() {}
  5058.     ;
  5059.     A(Rh, V);
  5060.     ba(Rh);
  5061.     h = Rh.prototype;
  5062.     h.Ua = function() {
  5063.         return "button"
  5064.     }
  5065.     ;
  5066.     h.P = function(a, b, c) {
  5067.         switch (b) {
  5068.         case 8:
  5069.         case 16:
  5070.             D(a, "The button DOM element cannot be null.");
  5071.             fd(a, "pressed", c);
  5072.             break;
  5073.         default:
  5074.         case 64:
  5075.         case 1:
  5076.             Rh.l.P.call(this, a, b, c)
  5077.         }
  5078.     }
  5079.     ;
  5080.     h.va = function(a) {
  5081.         var b = Rh.l.va.call(this, a)
  5082.           , c = a.s;
  5083.         b && (c ? b.title = c : b.removeAttribute("title"));
  5084.         (c = a.R) && this.Ra(b, c);
  5085.         a.C & 16 && this.P(b, 16, !!(a.u & 16));
  5086.         return b
  5087.     }
  5088.     ;
  5089.     h.aa = function(a, b) {
  5090.         b = Rh.l.aa.call(this, a, b);
  5091.         var c = this.Qa(b);
  5092.         a.R = c;
  5093.         a.s = b.title;
  5094.         a.C & 16 && this.P(b, 16, !!(a.u & 16));
  5095.         return b
  5096.     }
  5097.     ;
  5098.     h.Qa = r;
  5099.     h.Ra = r;
  5100.     h.A = function() {
  5101.         return "goog-button"
  5102.     }
  5103.     ;
  5104.     var Sh = function(a, b) {
  5105.         if (!a)
  5106.             throw Error("Invalid class name " + a);
  5107.         if (!x(b))
  5108.             throw Error("Invalid decorator function " + b);
  5109.     }
  5110.       , Th = {};
  5111.     var X = function(a, b, c) {
  5112.         S.call(this, c);
  5113.         if (!b) {
  5114.             b = this.constructor;
  5115.             for (var d; b; ) {
  5116.                 d = b[fa] || (b[fa] = ++ga);
  5117.                 if (d = Th[d])
  5118.                     break;
  5119.                 b = b.l ? b.l.constructor : null
  5120.             }
  5121.             b = d ? x(d.V) ? d.V() : new d : null
  5122.         }
  5123.         this.c = b;
  5124.         this.wa = q(a) ? a : null
  5125.     }
  5126.     ;
  5127.     A(X, S);
  5128.     h = X.prototype;
  5129.     h.wa = null ;
  5130.     h.u = 0;
  5131.     h.C = 39;
  5132.     h.sa = 255;
  5133.     h.fa = !0;
  5134.     h.M = null ;
  5135.     h.Ya = !0;
  5136.     var Vh = function(a) {
  5137.         a.H && 0 != a.Ya && Uh(a, !1);
  5138.         a.Ya = !1
  5139.     }
  5140.       , Wh = function(a, b) {
  5141.         b && (a.M ? Pa(a.M, b) || a.M.push(b) : a.M = [b],
  5142.         Lh(a, b, !0))
  5143.     }
  5144.     ;
  5145.     h = X.prototype;
  5146.     h.Sa = function() {
  5147.         var a = this.c.va(this);
  5148.         this.a = a;
  5149.         Oh(this.c, a);
  5150.         this.c.Va(a, !1);
  5151.         this.fa || (Nd(a, !1),
  5152.         a && fd(a, "hidden", !0))
  5153.     }
  5154.     ;
  5155.     h.Ta = function() {
  5156.         return this.j()
  5157.     }
  5158.     ;
  5159.     h.ob = function(a) {
  5160.         return this.c.pb(a)
  5161.     }
  5162.     ;
  5163.     h.ib = function(a) {
  5164.         this.a = a = this.c.aa(this, a);
  5165.         Oh(this.c, a);
  5166.         this.c.Va(a, !1);
  5167.         this.fa = "none" != a.style.display
  5168.     }
  5169.     ;
  5170.     h.U = function() {
  5171.         X.l.U.call(this);
  5172.         var a = this.c
  5173.           , b = Se(this);
  5174.         D(this);
  5175.         D(b);
  5176.         this.fa || fd(b, "hidden", !this.fa);
  5177.         this.b() || a.P(b, 1, !this.b());
  5178.         this.C & 8 && a.P(b, 8, !!(this.u & 8));
  5179.         this.C & 16 && a.P(b, 16, !!(this.u & 16));
  5180.         this.C & 64 && a.P(b, 64, !!(this.u & 64));
  5181.         this.c.xb(this);
  5182.         this.C & -2 && (this.Ya && Uh(this, !0),
  5183.         this.C & 32 && (a = this.j())) && (b = this.h || (this.h = new Ah),
  5184.         zh(b, a),
  5185.         Te(this).listen(b, "key", this.Ob).listen(a, "focus", this.Nb).listen(a, "blur", this.sb))
  5186.     }
  5187.     ;
  5188.     var Uh = function(a, b) {
  5189.         var c = Te(a)
  5190.           , d = a.j();
  5191.         b ? (c.listen(d, "mouseover", a.vb).listen(d, "mousedown", a.xa).listen(d, "mouseup", a.ya).listen(d, "mouseout", a.ub),
  5192.         a.Ga != r && c.listen(d, "contextmenu", a.Ga),
  5193.         I && (c.listen(d, "dblclick", a.tb),
  5194.         a.w || (a.w = new Xh(a),
  5195.         tc(a, z(uc, a.w))))) : (id(id(id(id(c, d, "mouseover", a.vb), d, "mousedown", a.xa), d, "mouseup", a.ya), d, "mouseout", a.ub),
  5196.         a.Ga != r && id(c, d, "contextmenu", a.Ga),
  5197.         I && (id(c, d, "dblclick", a.tb),
  5198.         uc(a.w),
  5199.         a.w = null ))
  5200.     }
  5201.     ;
  5202.     X.prototype.ua = function() {
  5203.         X.l.ua.call(this);
  5204.         this.h && Gh(this.h);
  5205.         this.fa && this.b() && this.c.Ka(this, !1)
  5206.     }
  5207.     ;
  5208.     X.prototype.o = function() {
  5209.         X.l.o.call(this);
  5210.         this.h && (this.h.O(),
  5211.         delete this.h);
  5212.         delete this.c;
  5213.         this.w = this.M = this.wa = null
  5214.     }
  5215.     ;
  5216.     X.prototype.Z = function() {
  5217.         return this.wa
  5218.     }
  5219.     ;
  5220.     var Mh = function(a, b) {
  5221.         a.wa = b
  5222.     }
  5223.       , Yh = function(a) {
  5224.         a = a.Z();
  5225.         if (!a)
  5226.             return "";
  5227.         if (!v(a))
  5228.             if (u(a))
  5229.                 a = Ka(a, mc).join("");
  5230.             else {
  5231.                 if (Rb && "innerText" in a)
  5232.                     a = a.innerText.replace(/(\r\n|\r|\n)/g, "\n");
  5233.                 else {
  5234.                     var b = [];
  5235.                     lc(a, b, !0);
  5236.                     a = b.join("")
  5237.                 }
  5238.                 a = a.replace(/ \xAD /g, " ").replace(/\xAD/g, "");
  5239.                 a = a.replace(/\u200B/g, "");
  5240.                 Rb || (a = a.replace(/ +/g, " "));
  5241.                 " " != a && (a = a.replace(/^\s*/, ""))
  5242.             }
  5243.         return a.replace(/[\t\r\n ]+/g, " ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g, "")
  5244.     }
  5245.     ;
  5246.     X.prototype.b = function() {
  5247.         return !(this.u & 1)
  5248.     }
  5249.     ;
  5250.     X.prototype.setEnabled = function(a) {
  5251.         var b = this.g;
  5252.         b && "function" == typeof b.b && !b.b() || !Zh(this, 1, !a) || (a || ($h(this, !1),
  5253.         ai(this, !1)),
  5254.         this.fa && this.c.Ka(this, a),
  5255.         bi(this, 1, !a, !0))
  5256.     }
  5257.     ;
  5258.     var ai = function(a, b) {
  5259.         Zh(a, 2, b) && bi(a, 2, b)
  5260.     }
  5261.       , $h = function(a, b) {
  5262.         Zh(a, 4, b) && bi(a, 4, b)
  5263.     }
  5264.     ;
  5265.     X.prototype.N = function(a) {
  5266.         Zh(this, 32, a) && bi(this, 32, a)
  5267.     }
  5268.     ;
  5269.     X.prototype.getState = function() {
  5270.         return this.u
  5271.     }
  5272.     ;
  5273.     var bi = function(a, b, c, d) {
  5274.         d || 1 != b ? a.C & b && c != !!(a.u & b) && (a.c.Wa(a, b, c),
  5275.         a.u = c ? a.u | b : a.u & ~b) : a.setEnabled(!c)
  5276.     }
  5277.       , ci = function(a) {
  5278.         if (a.H && a.u & 32)
  5279.             throw Error("Component already rendered");
  5280.         a.u & 32 && bi(a, 32, !1);
  5281.         a.C &= -33
  5282.     }
  5283.       , Y = function(a, b) {
  5284.         return !!(a.sa & b) && !!(a.C & b)
  5285.     }
  5286.       , Zh = function(a, b, c) {
  5287.         return !!(a.C & b) && !!(a.u & b) != c && (!(0 & b) || R(a, Qe(b, c))) && !a.v
  5288.     }
  5289.     ;
  5290.     h = X.prototype;
  5291.     h.vb = function(a) {
  5292.         (!a.relatedTarget || !ec(this.j(), a.relatedTarget)) && R(this, "enter") && this.b() && Y(this, 2) && ai(this, !0)
  5293.     }
  5294.     ;
  5295.     h.ub = function(a) {
  5296.         a.relatedTarget && ec(this.j(), a.relatedTarget) || !R(this, "leave") || (Y(this, 4) && $h(this, !1),
  5297.         Y(this, 2) && ai(this, !1))
  5298.     }
  5299.     ;
  5300.     h.Ga = r;
  5301.     h.xa = function(a) {
  5302.         this.b() && (Y(this, 2) && ai(this, !0),
  5303.         xc(a) && (Y(this, 4) && $h(this, !0),
  5304.         this.c && this.c.qb(this) && this.j().focus()));
  5305.         xc(a) && a.preventDefault()
  5306.     }
  5307.     ;
  5308.     h.ya = function(a) {
  5309.         this.b() && (Y(this, 2) && ai(this, !0),
  5310.         this.u & 4 && this.za(a) && Y(this, 4) && $h(this, !1))
  5311.     }
  5312.     ;
  5313.     h.tb = function(a) {
  5314.         this.b() && this.za(a)
  5315.     }
  5316.     ;
  5317.     h.za = function(a) {
  5318.         if (Y(this, 16)) {
  5319.             var b = !(this.u & 16);
  5320.             Zh(this, 16, b) && bi(this, 16, b)
  5321.         }
  5322.         Y(this, 8) && Zh(this, 8, !0) && bi(this, 8, !0);
  5323.         Y(this, 64) && (b = !(this.u & 64),
  5324.         Zh(this, 64, b) && bi(this, 64, b));
  5325.         b = new vc("action",this);
  5326.         a && (b.altKey = a.altKey,
  5327.         b.ctrlKey = a.ctrlKey,
  5328.         b.metaKey = a.metaKey,
  5329.         b.shiftKey = a.shiftKey,
  5330.         b.cb = a.cb);
  5331.         return R(this, b)
  5332.     }
  5333.     ;
  5334.     h.Nb = function() {
  5335.         Y(this, 32) && this.N(!0)
  5336.     }
  5337.     ;
  5338.     h.sb = function() {
  5339.         Y(this, 4) && $h(this, !1);
  5340.         Y(this, 32) && this.N(!1)
  5341.     }
  5342.     ;
  5343.     h.Ob = function(a) {
  5344.         return this.fa && this.b() && this.Xa(a) ? (a.preventDefault(),
  5345.         a.stopPropagation(),
  5346.         !0) : !1
  5347.     }
  5348.     ;
  5349.     h.Xa = function(a) {
  5350.         return 13 == a.keyCode && this.za(a)
  5351.     }
  5352.     ;
  5353.     if (!x(X))
  5354.         throw Error("Invalid component class " + X);
  5355.     if (!x(V))
  5356.         throw Error("Invalid renderer class " + V);
  5357.     var di = X[fa] || (X[fa] = ++ga);
  5358.     Th[di] = V;
  5359.     Sh("goog-control", function() {
  5360.         return new X(null )
  5361.     }
  5362.     );
  5363.     var Xh = function(a) {
  5364.         this.b = a;
  5365.         this.a = !1;
  5366.         this.c = new gd(this);
  5367.         tc(this, z(uc, this.c));
  5368.         a = Se(this.b);
  5369.         this.c.listen(a, "mousedown", this.g).listen(a, "mouseup", this.h).listen(a, "click", this.f)
  5370.     }
  5371.     ;
  5372.     A(Xh, sc);
  5373.     Xh.prototype.g = function() {
  5374.         this.a = !1
  5375.     }
  5376.     ;
  5377.     Xh.prototype.h = function() {
  5378.         this.a = !0
  5379.     }
  5380.     ;
  5381.     Xh.prototype.f = function(a) {
  5382.         if (this.a)
  5383.             this.a = !1;
  5384.         else {
  5385.             var b = a.ma()
  5386.               , c = b.button
  5387.               , d = b.type;
  5388.             b.button = 0;
  5389.             b.type = "mousedown";
  5390.             this.b.xa(new O(b,a.currentTarget));
  5391.             b.type = "mouseup";
  5392.             this.b.ya(new O(b,a.currentTarget));
  5393.             b.button = c;
  5394.             b.type = d
  5395.         }
  5396.     }
  5397.     ;
  5398.     Xh.prototype.o = function() {
  5399.         this.b = null ;
  5400.         Xh.l.o.call(this)
  5401.     }
  5402.     ;
  5403.     var ei = function() {}
  5404.     ;
  5405.     A(ei, Rh);
  5406.     ba(ei);
  5407.     h = ei.prototype;
  5408.     h.Ua = function() {}
  5409.     ;
  5410.     h.va = function(a) {
  5411.         Vh(a);
  5412.         a.sa &= -256;
  5413.         ci(a);
  5414.         return a.f.b("BUTTON", {
  5415.             "class": Jh(this, a).join(" "),
  5416.             disabled: !a.b(),
  5417.             title: a.s || "",
  5418.             value: a.R || ""
  5419.         }, Yh(a) || "")
  5420.     }
  5421.     ;
  5422.     h.pb = function(a) {
  5423.         return "BUTTON" == a.tagName || "INPUT" == a.tagName && ("button" == a.type || "submit" == a.type || "reset" == a.type)
  5424.     }
  5425.     ;
  5426.     h.aa = function(a, b) {
  5427.         Vh(a);
  5428.         a.sa &= -256;
  5429.         ci(a);
  5430.         if (b.disabled) {
  5431.             var c = Ca(Ph(this, 1));
  5432.             Zc(b, c)
  5433.         }
  5434.         return ei.l.aa.call(this, a, b)
  5435.     }
  5436.     ;
  5437.     h.xb = function(a) {
  5438.         Te(a).listen(a.j(), "click", a.za)
  5439.     }
  5440.     ;
  5441.     h.Va = r;
  5442.     h.rb = r;
  5443.     h.qb = function(a) {
  5444.         return a.b()
  5445.     }
  5446.     ;
  5447.     h.Ka = r;
  5448.     h.Wa = function(a, b, c) {
  5449.         ei.l.Wa.call(this, a, b, c);
  5450.         (a = a.j()) && 1 == b && (a.disabled = c)
  5451.     }
  5452.     ;
  5453.     h.Qa = function(a) {
  5454.         return a.value
  5455.     }
  5456.     ;
  5457.     h.Ra = function(a, b) {
  5458.         a && (a.value = b)
  5459.     }
  5460.     ;
  5461.     h.P = r;
  5462.     var fi = function(a, b, c) {
  5463.         X.call(this, a, b || ei.V(), c)
  5464.     }
  5465.     ;
  5466.     A(fi, X);
  5467.     fi.prototype.o = function() {
  5468.         fi.l.o.call(this);
  5469.         delete this.R;
  5470.         delete this.s
  5471.     }
  5472.     ;
  5473.     fi.prototype.U = function() {
  5474.         fi.l.U.call(this);
  5475.         if (this.C & 32) {
  5476.             var a = this.j();
  5477.             a && Te(this).listen(a, "keyup", this.Xa)
  5478.         }
  5479.     }
  5480.     ;
  5481.     fi.prototype.Xa = function(a) {
  5482.         return 13 == a.keyCode && "key" == a.type || 32 == a.keyCode && "keyup" == a.type ? this.za(a) : 32 == a.keyCode
  5483.     }
  5484.     ;
  5485.     Sh("goog-button", function() {
  5486.         return new fi(null )
  5487.     }
  5488.     );
  5489.     var gi = function(a) {
  5490.         var b;
  5491.         a = a || {};
  5492.         var c = mf, d = '<div role="button"' + (a.id ? ' id="' + uf(a.id) + '"' : "") + ' class="', e;
  5493.         e = a || {};
  5494.         var f = "goog-inline-block jfk-button ";
  5495.         switch (e.style) {
  5496.         case 0:
  5497.             f += "jfk-button-standard";
  5498.             break;
  5499.         case 2:
  5500.             f += "jfk-button-action";
  5501.             break;
  5502.         case 3:
  5503.             f += "jfk-button-primary";
  5504.             break;
  5505.         case 1:
  5506.             f += "jfk-button-default";
  5507.             break;
  5508.         case 4:
  5509.             f += "jfk-button-flat";
  5510.             break;
  5511.         case 5:
  5512.             f += "jfk-button-mini";
  5513.             break;
  5514.         case 6:
  5515.             f += "jfk-button-contrast";
  5516.             break;
  5517.         default:
  5518.             f += "jfk-button-standard"
  5519.         }
  5520.         f += (1 == e.width ? " jfk-button-narrow" : "") + (e.checked ?
  5521.         " jfk-button-checked" : "") + (e.Lb ? " " + e.Lb : "") + (e.disabled ? " jfk-button-disabled" : "");
  5522.         d = d + uf(new pf(f,void 0)) + '"' + (a.disabled ? ' aria-disabled="true"' : ' tabindex="' + (a.Ub ? uf(a.Ub) : "0") + '"') + (a.title ? " " + (a.Wb ? "data-tooltip" : "title") + '="' + uf(a.title) + '"' : "") + (a.value ? ' value="' + uf(a.value) + '"' : "");
  5523.         a.attributes ? (e = a.attributes,
  5524.         null  != e && e.T === He ? (D(e.constructor === of),
  5525.         e = e.Z().replace(/([^"'\s])$/, "$1 ")) : (e = String(e),
  5526.         wf.test(e) || (Ba("Bad value `%s` for |filterHtmlAttributes", [e]),
  5527.         e = "zSoyz")),
  5528.         e = " " + e) :
  5529.         e = "";
  5530.         d = d + e + ">";
  5531.         a = null  == (b = a.content) ? "" : b;
  5532.         b = nf(a);
  5533.         return c(d + b + "</div>")
  5534.     }
  5535.     ;
  5536.     gi.a = "jfk.templates.button.strict";
  5537.     var Z = function(a, b, c, d) {
  5538.         fi.call(this, a, hi.V(), b);
  5539.         this.L = c || 0;
  5540.         this.S = d || 0;
  5541.         this.Ca = !1
  5542.     }
  5543.     ;
  5544.     A(Z, fi);
  5545.     Z.prototype.setEnabled = function(a) {
  5546.         this.b() != a && (Z.l.setEnabled.call(this, a),
  5547.         ii(this))
  5548.     }
  5549.     ;
  5550.     Z.prototype.N = function(a) {
  5551.         Z.l.N.call(this, a);
  5552.         ji(this, !1)
  5553.     }
  5554.     ;
  5555.     Z.prototype.xa = function(a) {
  5556.         Z.l.xa.call(this, a);
  5557.         this.b() && ji(this, !0)
  5558.     }
  5559.     ;
  5560.     Z.prototype.ya = function(a) {
  5561.         Z.l.ya.call(this, a);
  5562.         this.b() && ji(this, !0)
  5563.     }
  5564.     ;
  5565.     var ji = function(a, b) {
  5566.         if (a.j()) {
  5567.             var c = a.j();
  5568.             b ? Zc(c, "jfk-button-clear-outline") : ad(c, "jfk-button-clear-outline")
  5569.         }
  5570.     }
  5571.       , ii = function(a) {
  5572.         a.j() && ki(a.c, a)
  5573.     }
  5574.       , hi = function() {
  5575.         this.B = this.A() + "-standard";
  5576.         this.b = this.A() + "-action";
  5577.         this.v = this.A() + "-primary";
  5578.         this.g = this.A() + "-default";
  5579.         this.h = this.A() + "-flat";
  5580.         this.m = this.A() + "-narrow";
  5581.         this.i = this.A() + "-mini";
  5582.         this.f = this.A() + "-contrast"
  5583.     }
  5584.     ;
  5585.     A(hi, Rh);
  5586.     ba(hi);
  5587.     h = hi.prototype;
  5588.     h.ea = function(a, b, c) {
  5589.         a && c.L != a && (c.L = a,
  5590.         ii(c));
  5591.         b && c.S != b && (c.S = b,
  5592.         ii(c))
  5593.     }
  5594.     ;
  5595.     h.A = function() {
  5596.         return "jfk-button"
  5597.     }
  5598.     ;
  5599.     h.va = function(a) {
  5600.         Ha(a, Z, "Button is expected to be instance of jfk.Button");
  5601.         var b = a.f
  5602.           , c = Ne(gi, {
  5603.             disabled: !a.b(),
  5604.             checked: !!(a.u & 16),
  5605.             style: a.L,
  5606.             title: a.s,
  5607.             Wb: a.Ca,
  5608.             value: a.R,
  5609.             width: a.S
  5610.         }, b);
  5611.         b.c(c, a.Z());
  5612.         this.aa(a, c);
  5613.         return c
  5614.     }
  5615.     ;
  5616.     h.aa = function(a, b) {
  5617.         hi.l.aa.call(this, a, b);
  5618.         this.c || (this.c = Za(this.B, z(this.ea, 0, null ), this.b, z(this.ea, 2, null ), this.v, z(this.ea, 3, null ), this.g, z(this.ea, 1, null ), this.h, z(this.ea, 4, null ), this.i, z(this.ea, 5, null ), this.f, z(this.ea, 6, null ), this.m, z(this.ea, null , 1)));
  5619.         for (var c = Xc(b), d = 0; d < c.length; ++d) {
  5620.             var e = this.c[c[d]];
  5621.             e && e(a)
  5622.         }
  5623.         if (c = b.getAttribute("data-tooltip"))
  5624.             a.s = c,
  5625.             a.Ca = !0;
  5626.         return b
  5627.     }
  5628.     ;
  5629.     h.Qa = function(a) {
  5630.         return a.getAttribute("value") || ""
  5631.     }
  5632.     ;
  5633.     h.Ra = function(a, b) {
  5634.         a && a.setAttribute("value", b)
  5635.     }
  5636.     ;
  5637.     var ki = function(a, b) {
  5638.         function c(a, b) {
  5639.             (a ? d : e).push(b)
  5640.         }
  5641.         D(b.j(), "Button element must already exist when updating style.");
  5642.         var d = []
  5643.           , e = []
  5644.           , f = b.L;
  5645.         c(0 == f, a.B);
  5646.         c(2 == f, a.b);
  5647.         c(3 == f, a.v);
  5648.         c(4 == f, a.h);
  5649.         c(5 == f, a.i);
  5650.         c(1 == f, a.g);
  5651.         c(6 == f, a.f);
  5652.         c(1 == b.S, a.m);
  5653.         c(!b.b(), a.A() + "-disabled");
  5654.         bd(b.j(), e);
  5655.         $c(b.j(), d)
  5656.     }
  5657.     ;
  5658.     var li = function() {
  5659.         Z.call(this, "", void 0, 4);
  5660.         Wh(this, "jfk-button-flat");
  5661.         Wh(this, "gtx-audio-button");
  5662.         Wh(this, "no-audio");
  5663.         this.Aa = this.Ba = "";
  5664.         Te(this).listen(this, "action", this.Ib)
  5665.     }
  5666.     ;
  5667.     A(li, Z);
  5668.     li.prototype.Ib = function() {
  5669.         chrome.runtime.sendMessage({
  5670.             audioSrc: "https://translate.googleapis.com/translate_tts?ie=UTF-8&q=" + encodeURIComponent(String(this.Ba)) + "&tl=" + this.Aa + "&client=gtx"
  5671.         })
  5672.     }
  5673.     ;
  5674.     var mi = function(a, b, c) {
  5675.         var d = c.toLowerCase();
  5676.         d in Hg && Gg[Hg[d.toLowerCase()]] >= b.length ? (a.M && Qa(a.M, "no-audio") && (0 == a.M.length && (a.M = null ),
  5677.         Lh(a, "no-audio", !1)),
  5678.         a.Ba = b,
  5679.         a.Aa = c) : Wh(a, "no-audio")
  5680.     }
  5681.     ;
  5682.     var ni = function(a) {
  5683.         var b = "";
  5684.         if (a.query)
  5685.             if (a.Gb) {
  5686.                 for (var b = b + '<div class="gtx-language"><select class="gtx-lang-selector">', c = a.Tb, d = c.length, e = 0; e < d; e++)
  5687.                     var f = c[e]
  5688.                       , b = b + ("auto" != f ? '<option value="' + nf(f[0]) + '" ' + (f[0] == a.Sb ? "selected" : "") + ">" + nf(f[1]) + "</option>" : "");
  5689.                 b += '</select></div><div class="gtx-source-audio"><div class="jfk-button-img"></div></div><div class="gtx-body">' + nf(a.query) + '</div><br><div class="gtx-language">' + nf(a.Vb) + '</div><div class="gtx-target-audio"><div class="jfk-button-img"></div></div><div class="gtx-body">' +
  5690.                 nf(a.Gb) + "</div>";
  5691.                 if (a.lb) {
  5692.                     b += '<table style="width: 95%">';
  5693.                     c = a.lb;
  5694.                     d = c.length;
  5695.                     for (e = 0; e < d; e++) {
  5696.                         f = c[e];
  5697.                         b += '<tr><td class="gtx-td"><div class="gtx-pos">' + nf(f.pos) + '</div></td><td class="gtx-td">';
  5698.                         if (a.popup)
  5699.                             for (var f = f.terms, g = f.length, k = 0; k < g; k++)
  5700.                                 b += (0 != k ? ", " : "") + nf(f[k]);
  5701.                         else
  5702.                             for (f = f.terms,
  5703.                             g = f.length,
  5704.                             k = 0; k < g; k++)
  5705.                                 var l = f[k]
  5706.                                   , b = b + (3 > k ? (0 != k ? ", " : "") + nf(l) : "");
  5707.                         b += "</td></tr>"
  5708.                     }
  5709.                     b += "</table>"
  5710.                 }
  5711.                 b += "<br>"
  5712.             } else
  5713.                 b += "No translation results for <b>" + nf(a.query) + "</b>.";
  5714.         return b
  5715.     }
  5716.     ;
  5717.     ni.a = "extension.translation";
  5718.     var Eg = new Bg
  5719.       , oi = function() {}
  5720.     ;
  5721.     ba(oi);
  5722.     var pi = function(a, b, c, d) {
  5723.         if ("" != a) {
  5724.             window.selection = a;
  5725.             a = new wh("gtx","https://translate.googleapis.com");
  5726.             var e = chrome.i18n.getUILanguage ? chrome.i18n.getUILanguage() : "en";
  5727.             d = null  != d ? d : "auto";
  5728.             var f = Cg(Eg);
  5729.             c = new T("source=" + c);
  5730.             var g = window.selection
  5731.               , k = a.a + "/translate_a/single"
  5732.               , l = new T
  5733.               , p = new T;
  5734.             l.set("client", a.c);
  5735.             l.set("sl", d);
  5736.             l.set("tl", f);
  5737.             l.set("hl", e);
  5738.             bg(l, "dt", ["t", "bd"]);
  5739.             l.set("dj", "1");
  5740.             c && l.g(c);
  5741.             p.set("q", g);
  5742.             yh(a, k, l, p, y(a.f, a, b))
  5743.         }
  5744.     }
  5745.     ;
  5746.     oi.prototype.a = function(a, b, c, d) {
  5747.         if (null  != d) {
  5748.             for (var e = d.src, f = Cg(Eg), g = [], k = [], l = d.sentences, p = 0; p < l.length; p++)
  5749.                 g.push(l[p].orig),
  5750.                 k.push(l[p].trans);
  5751.             var g = g.join(""), k = k.join(""), l = Fg("tl")[f].toUpperCase(), p = Fg("sl"), n = [], t;
  5752.             for (t in p)
  5753.                 n.push([t, p[t]]);
  5754.             d = {
  5755.                 query: b,
  5756.                 Gb: k,
  5757.                 Vb: l,
  5758.                 Sb: e,
  5759.                 Tb: n,
  5760.                 lb: d.dict,
  5761.                 popup: a
  5762.             };
  5763.             D(ni, "Soy template may not be null.");
  5764.             c.innerHTML = Ke(ni(d || Le));
  5765.             d = Wb("gtx-lang-selector", c);
  5766.             P(d, "change", y(this.b, this, a, b, c), !1, this);
  5767.             b = new li;
  5768.             d = Wb("gtx-source-audio", c);
  5769.             Ve(b, d);
  5770.             mi(b, g, e);
  5771.             b = new li;
  5772.             g = Wb("gtx-target-audio", c);
  5773.             Ve(b, g);
  5774.             mi(b, k, f);
  5775.             e = "https://translate.google.com/?source=gtx_m#" + e + "/" + f + "/" + encodeURIComponent(window.selection);
  5776.             a ? (a = Ub(document, "more"),
  5777.             a.setAttribute("href", e),
  5778.             c = new Z("",void 0,4),
  5779.             Ue(c, Ub(document, "new-translation")),
  5780.             Nd(Ub(document, "new-translation"), !0),
  5781.             c = Ub(document, "translate-page"),
  5782.             fc(a, zg("MSG_OPEN_IN_TRANSLATE")),
  5783.             c.className = "gtx-a",
  5784.             c.setAttribute("style", "margin-left: 0px;"),
  5785.             Nd(a, !0)) : (a = document.createElement("a"),
  5786.             a.id = "off",
  5787.             a.className = "gtx-a",
  5788.             a.setAttribute("target",
  5789.             "_blank"),
  5790.             fc(a, zg("MSG_FOOTER_OPTIONS").toUpperCase()),
  5791.             a.setAttribute("href", chrome.runtime.getURL("options.html")),
  5792.             c.appendChild(a),
  5793.             a = document.createElement("a"),
  5794.             a.id = "more",
  5795.             a.setAttribute("class", "gtx-a"),
  5796.             a.setAttribute("target", "_blank"),
  5797.             fc(a, zg("MSG_MORE")),
  5798.             a.setAttribute("href", e),
  5799.             a.setAttribute("style", "color: #A2A2A2; float: right; padding-top: 16px;"),
  5800.             c.appendChild(a))
  5801.         } else
  5802.             fc(Ub(document, "translation"), zg("MSG_TRANSLATION_ERROR"))
  5803.     }
  5804.     ;
  5805.     oi.prototype.b = function(a, b, c, d) {
  5806.         pi(b, y(this.a, this, a, b, c), "ls", d.target.value)
  5807.     }
  5808.     ;
  5809.     var qi = function(a) {
  5810.         zf.call(this);
  5811.         this.N = !0;
  5812.         D(!this.H, "Must call addClassName() before rendering");
  5813.         this.L.push("gtx-bubble");
  5814.         this.s.b = a;
  5815.         this.c.X && this.c.b();
  5816.         var b = 2;
  5817.         parseInt(a.style.top, 10) - document.body.scrollTop + parseInt(a.style.height, 10) / 2 < window.innerHeight / 2 && (b = 1);
  5818.         var c = 2;
  5819.         a = parseInt(a.style.left, 10) + parseInt(a.style.width, 10) / 2;
  5820.         217 >= a ? c = 0 : a >= window.innerWidth - 217 && (c = 1);
  5821.         D(!this.H, "Must call setPosition() before rendering");
  5822.         a = this.s;
  5823.         null  != b && (a.Pa = b);
  5824.         null  != c && (a.Oa = c);
  5825.         w(0) && (a.eb = Math.max(0,
  5826.         15));
  5827.         w(-10) && (a.bb = -10)
  5828.     }
  5829.     , ri, si;
  5830.     A(qi, zf);
  5831.     qi.prototype.o = function() {
  5832.         qi.l.o.call(this);
  5833.         chrome.runtime.sendMessage({
  5834.             bubbleClosed: !0
  5835.         });
  5836.         dc(Ub(document, "gtx-anchor"))
  5837.     }
  5838.     ;
  5839.     qi.prototype.h = null ;
  5840.     qi.prototype.w = null ;
  5841.     qi.prototype.R = function(a, b) {
  5842.         var c = document.createElement("style");
  5843.         c.innerHTML = b;
  5844.         this.w.appendChild(c);
  5845.         c = this.h;
  5846.         D(v(c) || c.nodeType || c instanceof lf || c instanceof ob, "Content must be a string or HTML.");
  5847.         this.S = c;
  5848.         Af(this, c);
  5849.         var d = this.h.cloneNode(!1);
  5850.         d.id = "bubble-content";
  5851.         d.className = "gtx-content";
  5852.         this.w.appendChild(d);
  5853.         c = document.createElement("div");
  5854.         c.className = "content";
  5855.         c.setAttribute("style", "margin: 0");
  5856.         d.appendChild(c);
  5857.         d = this.h.cloneNode(!1);
  5858.         d.id = "translation";
  5859.         d.style.display = "inline";
  5860.         c.appendChild(d);
  5861.         ti.a(!1, window.selection, d, a);
  5862.         this.c.X && this.c.b()
  5863.     }
  5864.     ;
  5865.     var vi = function(a, b) {
  5866.         var c = Ub(document, "gtx-trans");
  5867.         Tc(c);
  5868.         dc(c);
  5869.         pi(b, z(ui, a), "icon")
  5870.     }
  5871.       , xi = function(a) {
  5872.         var b;
  5873.         if (!(b = !("1" == wi.a && wi.g))) {
  5874.             b = wi;
  5875.             var c = ri
  5876.               , c = yg(c);
  5877.             b = c != Cg(b)
  5878.         }
  5879.         if (b) {
  5880.             var d = wi.a;
  5881.             if ("0" != d && (c = window.getSelection(),
  5882.             b = c.toString().trim(),
  5883.             0 < b.length && !Wb("gtx-bubble") && 250 > b.length && 400 < window.innerWidth && (c = c.getRangeAt(0).getBoundingClientRect(),
  5884.             0 != c.top || 0 != c.left)))
  5885.                 if ("1" == d) {
  5886.                     var e = document.createElement("div");
  5887.                     e.className = "gtx-trans-icon";
  5888.                     d = document.createElement("div");
  5889.                     d.appendChild(e);
  5890.                     d.id = "gtx-trans";
  5891.                     d.style.position = "absolute";
  5892.                     d.style.left = a.clientX + document.body.scrollLeft - 13 + "px";
  5893.                     a = a.clientY;
  5894.                     a - c.top > c.height / 2 ? a = c.bottom + 1 : a = c.top - 1 - 27;
  5895.                     d.style.top = a + document.body.scrollTop + "px";
  5896.                     document.body.appendChild(d);
  5897.                     P(d, "click", z(vi, c, b))
  5898.                 } else
  5899.                     pi(b, z(ui, c), "bubble")
  5900.         }
  5901.     }
  5902.       , ui = function(a, b) {
  5903.         if ("1" == wi.a || b.src != Cg(wi)) {
  5904.             var c = document.createElement("div");
  5905.             c.id = "gtx-anchor";
  5906.             c.style.position = "absolute";
  5907.             c.style.visibility = "hidden";
  5908.             c.style.left = String(a.left + document.body.scrollLeft + "px");
  5909.             c.style.top =
  5910.             String(a.top + document.body.scrollTop + "px");
  5911.             c.style.width = String(a.right - a.left + 1 + "px");
  5912.             c.style.height = String(a.height + "px");
  5913.             document.body.appendChild(c);
  5914.             window.a = new qi(c);
  5915.             Ue(window.a, document.body);
  5916.             c = window.a;
  5917.             c.h = document.createElement("div");
  5918.             c.h.id = "gtx-host";
  5919.             c.h.setAttribute("style", "min-width: 200px; max-width: 400px;");
  5920.             c.h.createShadowRoot ? c.w = c.h.createShadowRoot() : c.w = c.h.webkitCreateShadowRoot();
  5921.             yi(chrome.runtime.getURL("popup_css_compiled.css"), y(c.R, c, b));
  5922.             window.a.zb(!0)
  5923.         }
  5924.     }
  5925.       , yi = function(a,
  5926.     b) {
  5927.         var c = new XMLHttpRequest;
  5928.         c.open("GET", a, !0);
  5929.         c.onload = function() {
  5930.             var a = null ;
  5931.             200 === c.status && (a = c.response);
  5932.             return b(a)
  5933.         }
  5934.         ;
  5935.         c.send()
  5936.     }
  5937.     ;
  5938.     chrome.runtime.onMessage.addListener(function(a) {
  5939.         a["gtx.detected"] && (ri = a["gtx.detected"],
  5940.         xi(si))
  5941.     }
  5942.     );
  5943.     var wi = new Bg
  5944.       , ti = oi.V();
  5945.     P(window, "mouseup", function(a) {
  5946.         if (0 == a.button && !Ub(document, "gtx-trans")) {
  5947.             try {
  5948.                 chrome.runtime.sendMessage({
  5949.                     test: 1
  5950.                 })
  5951.             } catch (b) {
  5952.                 return
  5953.             }
  5954.             "1" == wi.a && wi.g && !ri ? (si = a,
  5955.             chrome.runtime.sendMessage({
  5956.                 detectLanguage: 1
  5957.             })) : window.setTimeout(z(xi, a), 0)
  5958.         }
  5959.     }
  5960.     );
  5961.     P(window, "mousedown", function(a) {
  5962.         var b = Ub(document, "gtx-trans");
  5963.         b && (ec(b, a.target) ? a.preventDefault() : (Tc(b),
  5964.         dc(b)));
  5965.         -1 != a.target.className.indexOf("jfk-bubble-closebtn") && a.preventDefault()
  5966.     }
  5967.     , !0);
  5968.     var zi = function() {
  5969.         window.a && window.a.O()
  5970.     }
  5971.       , Ai = ["disposeWindowBubble"]
  5972.       , Bi = m;
  5973.     Ai[0] in Bi || !Bi.execScript || Bi.execScript("var " + Ai[0]);
  5974.     for (var Ci; Ai.length && (Ci = Ai.shift()); )
  5975.         !Ai.length && q(zi) ? Bi[Ci] = zi : Bi[Ci] ? Bi = Bi[Ci] : Bi = Bi[Ci] = {};
  5976. }
  5977. )();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement