Advertisement
mauricioribeiro

bday13 - Google

Sep 27th, 2013
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function () {
  2.     var g, k = this,
  3.         aa = function (a) {
  4.             var b = typeof a;
  5.             if ("object" == b)
  6.                 if (a) {
  7.                     if (a instanceof Array) return "array";
  8.                     if (a instanceof Object) return b;
  9.                     var c = Object.prototype.toString.call(a);
  10.                     if ("[object Window]" == c) return "object";
  11.                     if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) return "array";
  12.                     if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) return "function"
  13.                 } else return "null";
  14.                 else if ("function" == b && "undefined" == typeof a.call) return "object";
  15.             return b
  16.         }, ba = function (a) {
  17.             var b = aa(a);
  18.             return "array" == b || "object" == b && "number" == typeof a.length
  19.         }, n = function (a) {
  20.             return "string" == typeof a
  21.         }, ca = function (a, b, c) {
  22.             return a.call.apply(a.bind, arguments)
  23.         }, da = function (a, b, c) {
  24.             if (!a) throw Error();
  25.             if (2 < arguments.length) {
  26.                 var d = Array.prototype.slice.call(arguments, 2);
  27.                 return function () {
  28.                     var c = Array.prototype.slice.call(arguments);
  29.                     Array.prototype.unshift.apply(c, d);
  30.                     return a.apply(b, c)
  31.                 }
  32.             }
  33.             return function () {
  34.                 return a.apply(b,
  35.                     arguments)
  36.             }
  37.         }, p = function (a, b, c) {
  38.             p = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? ca : da;
  39.             return p.apply(null, arguments)
  40.         }, ea = function (a, b) {
  41.             var c = Array.prototype.slice.call(arguments, 1);
  42.             return function () {
  43.                 var b = c.slice();
  44.                 b.push.apply(b, arguments);
  45.                 return a.apply(this, b)
  46.             }
  47.         }, fa = Date.now || function () {
  48.             return +new Date
  49.         }, ga = function (a) {
  50.             a = a.split(".");
  51.             var b = k;
  52.             a[0] in b || !b.execScript || b.execScript("var " + a[0]);
  53.             for (var c; a.length && (c = a.shift());) a.length ? b = b[c] ? b[c] : b[c] = {} : b[c] = !0
  54.         }, q = function (a, b) {
  55.             function c() {}
  56.             c.prototype = b.prototype;
  57.             a.G = b.prototype;
  58.             a.prototype = new c
  59.         };
  60.     Function.prototype.bind = Function.prototype.bind || function (a, b) {
  61.         if (1 < arguments.length) {
  62.             var c = Array.prototype.slice.call(arguments, 1);
  63.             c.unshift(this, a);
  64.             return p.apply(null, c)
  65.         }
  66.         return p(this, a)
  67.     };
  68.     var r = function () {};
  69.     r.prototype.B = !1;
  70.     r.prototype.M = function () {
  71.         this.B || (this.B = !0, this.a())
  72.     };
  73.     r.prototype.a = function () {
  74.         if (this.g)
  75.             for (; this.g.length;) this.g.shift()()
  76.     };
  77.     var ha = function (a) {
  78.         a && "function" == typeof a.M && a.M()
  79.     };
  80.     var ia = function (a) {
  81.         Error.captureStackTrace ? Error.captureStackTrace(this, ia) : this.stack = Error().stack || "";
  82.         a && (this.message = String(a))
  83.     };
  84.     q(ia, Error);
  85.     ia.prototype.name = "CustomError";
  86.     var ja = function (a, b) {
  87.         for (var c = a.split("%s"), d = "", e = Array.prototype.slice.call(arguments, 1); e.length && 1 < c.length;) d += c.shift() + e.shift();
  88.         return d + c.join("%s")
  89.     }, s = function (a, b) {
  90.             return -1 != a.indexOf(b)
  91.         };
  92.     var ka = function (a, b) {
  93.         b.unshift(a);
  94.         ia.call(this, ja.apply(null, b));
  95.         b.shift()
  96.     };
  97.     q(ka, ia);
  98.     ka.prototype.name = "AssertionError";
  99.     var t = function (a, b, c) {
  100.         if (!a) {
  101.             var d = Array.prototype.slice.call(arguments, 2),
  102.                 e = "Assertion failed";
  103.             if (b) var e = e + (": " + b),
  104.             f = d;
  105.             throw new ka("" + e, f || []);
  106.         }
  107.     };
  108.     var u = Array.prototype,
  109.         la = u.indexOf ? function (a, b, c) {
  110.             t(null != a.length);
  111.             return u.indexOf.call(a, b, c)
  112.         } : function (a, b, c) {
  113.             c = null == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c;
  114.             if (n(a)) return n(b) && 1 == b.length ? a.indexOf(b, c) : -1;
  115.             for (; c < a.length; c++)
  116.                 if (c in a && a[c] === b) return c;
  117.             return -1
  118.         }, ma = u.forEach ? function (a, b, c) {
  119.             t(null != a.length);
  120.             u.forEach.call(a, b, c)
  121.         } : function (a, b, c) {
  122.             for (var d = a.length, e = n(a) ? a.split("") : a, f = 0; f < d; f++) f in e && b.call(c, e[f], f, a)
  123.         }, na = function (a) {
  124.             return u.concat.apply(u, arguments)
  125.         }, oa = function (a) {
  126.             var b =
  127.                 a.length;
  128.             if (0 < b) {
  129.                 for (var c = Array(b), d = 0; d < b; d++) c[d] = a[d];
  130.                 return c
  131.             }
  132.             return []
  133.         };
  134.     var pa = function (a) {
  135.         pa[" "](a);
  136.         return a
  137.     };
  138.     pa[" "] = function () {};
  139.     var qa, ra, sa, ta, ua = function () {
  140.             return k.navigator ? k.navigator.userAgent : null
  141.         };
  142.     ta = sa = ra = qa = !1;
  143.     var va;
  144.     if (va = ua()) {
  145.         var wa = k.navigator;
  146.         qa = 0 == va.lastIndexOf("Opera", 0);
  147.         ra = !qa && (s(va, "MSIE") || s(va, "Trident"));
  148.         sa = !qa && s(va, "WebKit");
  149.         ta = !qa && !sa && !ra && "Gecko" == wa.product
  150.     }
  151.     var xa = qa,
  152.         v = ra,
  153.         ya = ta,
  154.         za = sa,
  155.         Aa = k.navigator,
  156.         Ba = s(Aa && Aa.platform || "", "Win"),
  157.         Ca = function () {
  158.             var a = k.document;
  159.             return a ? a.documentMode : void 0
  160.         }, Da;
  161.     i: {
  162.         var Ea = "",
  163.             Fa;
  164.         if (xa && k.opera) var Ga = k.opera.version,
  165.         Ea = "function" == typeof Ga ? Ga() : Ga;
  166.         else if (ya ? Fa = /rv\:([^\);]+)(\)|;)/ : v ? Fa = /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/ : za && (Fa = /WebKit\/(\S+)/), Fa) var Ha = Fa.exec(ua()),
  167.         Ea = Ha ? Ha[1] : "";
  168.         if (v) {
  169.             var Ia = Ca();
  170.             if (Ia > parseFloat(Ea)) {
  171.                 Da = String(Ia);
  172.                 break i
  173.             }
  174.         }
  175.         Da = Ea
  176.     }
  177.     var Ja = Da,
  178.         Ka = {}, w = function (a) {
  179.             var b;
  180.             if (!(b = Ka[a])) {
  181.                 b = 0;
  182.                 for (var c = String(Ja).replace(/^[\s\xa0]+|[\s\xa0]+$/g, "").split("."), d = String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g, "").split("."), e = Math.max(c.length, d.length), f = 0; 0 == b && f < e; f++) {
  183.                     var h = c[f] || "",
  184.                         l = d[f] || "",
  185.                         m = RegExp("(\\d*)(\\D*)", "g"),
  186.                         V = RegExp("(\\d*)(\\D*)", "g");
  187.                     do {
  188.                         var z = m.exec(h) || ["", "", ""],
  189.                             F = V.exec(l) || ["", "", ""];
  190.                         if (0 == z[0].length && 0 == F[0].length) break;
  191.                         b = ((0 == z[1].length ? 0 : parseInt(z[1], 10)) < (0 == F[1].length ? 0 : parseInt(F[1], 10)) ? -1 : (0 == z[1].length ?
  192.                             0 : parseInt(z[1], 10)) > (0 == F[1].length ? 0 : parseInt(F[1], 10)) ? 1 : 0) || ((0 == z[2].length) < (0 == F[2].length) ? -1 : (0 == z[2].length) > (0 == F[2].length) ? 1 : 0) || (z[2] < F[2] ? -1 : z[2] > F[2] ? 1 : 0)
  193.                     } while (0 == b)
  194.                 }
  195.                 b = Ka[a] = 0 <= b
  196.             }
  197.             return b
  198.         }, La = k.document,
  199.         Ma = La && v ? Ca() || ("CSS1Compat" == La.compatMode ? parseInt(Ja, 10) : 5) : void 0;
  200.     var Na;
  201.     (Na = !v) || (Na = v && 9 <= Ma);
  202.     var Oa = Na,
  203.         Pa = v && !w("9");
  204.     !za || w("528");
  205.     ya && w("1.9b") || v && w("8") || xa && w("9.5") || za && w("528");
  206.     ya && !w("8") || v && w("9");
  207.     var Qa = function (a, b) {
  208.         this.type = a;
  209.         this.a = this.U = b
  210.     };
  211.     g = Qa.prototype;
  212.     g.M = function () {};
  213.     g.H = !1;
  214.     g.ma = !0;
  215.     g.ia = function () {
  216.         this.H = !0
  217.     };
  218.     g.Y = function () {
  219.         this.ma = !1
  220.     };
  221.     var x = function (a, b) {
  222.         a && this.init(a, b)
  223.     };
  224.     q(x, Qa);
  225.     g = x.prototype;
  226.     g.U = null;
  227.     g.clientX = 0;
  228.     g.clientY = 0;
  229.     g.ha = 0;
  230.     g.Q = null;
  231.     g.init = function (a, b) {
  232.         var c = this.type = a.type;
  233.         Qa.call(this, c);
  234.         this.U = a.target || a.srcElement;
  235.         this.a = b;
  236.         if ((c = a.relatedTarget) && ya) try {
  237.             pa(c.nodeName)
  238.         } catch (d) {}
  239.         this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX;
  240.         this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY;
  241.         this.ha = a.keyCode || 0;
  242.         this.Q = a;
  243.         a.defaultPrevented && this.Y();
  244.         delete this.H
  245.     };
  246.     g.ia = function () {
  247.         x.G.ia.call(this);
  248.         this.Q.stopPropagation ? this.Q.stopPropagation() : this.Q.cancelBubble = !0
  249.     };
  250.     g.Y = function () {
  251.         x.G.Y.call(this);
  252.         var a = this.Q;
  253.         if (a.preventDefault) a.preventDefault();
  254.         else if (a.returnValue = !1, Pa) try {
  255.             if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode) a.keyCode = -1
  256.         } catch (b) {}
  257.     };
  258.     g.I = function () {
  259.         return this.Q
  260.     };
  261.     var Ra = "closure_listenable_" + (1E6 * Math.random() | 0),
  262.         Sa = function (a) {
  263.             try {
  264.                 return !(!a || !a[Ra])
  265.             } catch (b) {
  266.                 return !1
  267.             }
  268.         }, Ta = 0;
  269.     var Ua = function (a) {
  270.         var b = [],
  271.             c = 0,
  272.             d;
  273.         for (d in a) b[c++] = a[d];
  274.         return b
  275.     }, Va = function (a) {
  276.             var b = [],
  277.                 c = 0,
  278.                 d;
  279.             for (d in a) b[c++] = d;
  280.             return b
  281.         }, Wa = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),
  282.         Xa = function (a, b) {
  283.             for (var c, d, e = 1; e < arguments.length; e++) {
  284.                 d = arguments[e];
  285.                 for (c in d) a[c] = d[c];
  286.                 for (var f = 0; f < Wa.length; f++) c = Wa[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c])
  287.             }
  288.         };
  289.     var Ya = function (a, b, c, d, e) {
  290.         this.L = a;
  291.         this.a = null;
  292.         this.src = b;
  293.         this.type = c;
  294.         this.capture = !! d;
  295.         this.$ = e;
  296.         this.la = ++Ta;
  297.         this.P = this.Z = !1
  298.     }, Za = function (a) {
  299.             a.P = !0;
  300.             a.L = null;
  301.             a.a = null;
  302.             a.src = null;
  303.             a.$ = null
  304.         };
  305.     var $a = function (a) {
  306.         this.src = a;
  307.         this.a = {};
  308.         this.d = 0
  309.     }, bb = function (a, b, c, d, e) {
  310.             var f = a.a[b];
  311.             f || (f = a.a[b] = [], a.d++);
  312.             var h = ab(f, c, d, e); - 1 < h ? (a = f[h], a.Z = !1) : (a = new Ya(c, a.src, b, !! d, e), a.Z = !1, f.push(a));
  313.             return a
  314.         }, cb = function (a, b) {
  315.             var c = b.type;
  316.             if (!(c in a.a)) return !1;
  317.             var d = a.a[c],
  318.                 e = la(d, b),
  319.                 f;
  320.             if (f = 0 <= e) t(null != d.length), u.splice.call(d, e, 1);
  321.             f && (Za(b), 0 == a.a[c].length && (delete a.a[c], a.d--));
  322.             return f
  323.         }, db = function (a, b, c, d, e) {
  324.             a = a.a[b];
  325.             b = -1;
  326.             a && (b = ab(a, c, d, e));
  327.             return -1 < b ? a[b] : null
  328.         }, ab = function (a, b, c, d) {
  329.             for (var e =
  330.                 0; e < a.length; ++e) {
  331.                 var f = a[e];
  332.                 if (!f.P && f.L == b && f.capture == !! c && f.$ == d) return e
  333.             }
  334.             return -1
  335.         };
  336.     var eb = "closure_lm_" + (1E6 * Math.random() | 0),
  337.         fb = {}, gb = 0,
  338.         hb = function (a, b, c, d, e) {
  339.             if ("array" == aa(b)) {
  340.                 for (var f = 0; f < b.length; f++) hb(a, b[f], c, d, e);
  341.                 return null
  342.             }
  343.             c = ib(c);
  344.             if (Sa(a)) a = a.listen(b, c, d, e);
  345.             else {
  346.                 if (!b) throw Error("Invalid event type");
  347.                 var f = !! d,
  348.                     h = jb(a);
  349.                 h || (a[eb] = h = new $a(a));
  350.                 c = bb(h, b, c, d, e);
  351.                 c.a || (d = kb(), c.a = d, d.src = a, d.L = c, a.addEventListener ? a.addEventListener(b, d, f) : a.attachEvent(b in fb ? fb[b] : fb[b] = "on" + b, d), gb++);
  352.                 a = c
  353.             }
  354.             return a
  355.         }, kb = function () {
  356.             var a = lb,
  357.                 b = Oa ? function (c) {
  358.                     return a.call(b.src, b.L, c)
  359.                 } :
  360.                     function (c) {
  361.                         c = a.call(b.src, b.L, c);
  362.                         if (!c) return c
  363.                 };
  364.             return b
  365.         }, mb = function (a, b, c, d, e) {
  366.             if ("array" == aa(b))
  367.                 for (var f = 0; f < b.length; f++) mb(a, b[f], c, d, e);
  368.             else c = ib(c), Sa(a) ? a.unlisten(b, c, d, e) : a && (a = jb(a)) && (b = db(a, b, c, !! d, e)) && nb(b)
  369.         }, nb = function (a) {
  370.             if ("number" == typeof a || !a || a.P) return !1;
  371.             var b = a.src;
  372.             if (Sa(b)) return cb(b.D, a);
  373.             var c = a.type,
  374.                 d = a.a;
  375.             b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent && b.detachEvent(c in fb ? fb[c] : fb[c] = "on" + c, d);
  376.             gb--;
  377.             (c = jb(b)) ? (cb(c, a), 0 == c.d && (c.src = null, b[eb] =
  378.                 null)) : Za(a);
  379.             return !0
  380.         }, pb = function (a, b, c, d) {
  381.             var e = 1;
  382.             if (a = jb(a))
  383.                 if (b = a.a[b])
  384.                     for (b = oa(b), a = 0; a < b.length; a++) {
  385.                         var f = b[a];
  386.                         f && f.capture == c && !f.P && (e &= !1 !== ob(f, d))
  387.                     }
  388.                 return Boolean(e)
  389.         }, ob = function (a, b) {
  390.             var c = a.L,
  391.                 d = a.$ || a.src;
  392.             a.Z && nb(a);
  393.             return c.call(d, b)
  394.         }, lb = function (a, b) {
  395.             if (a.P) return !0;
  396.             if (!Oa) {
  397.                 var c;
  398.                 if (!(c = b)) i: {
  399.                     c = ["window", "event"];
  400.                     for (var d = k, e; e = c.shift();)
  401.                         if (null != d[e]) d = d[e];
  402.                         else {
  403.                             c = null;
  404.                             break i
  405.                         }
  406.                     c = d
  407.                 }
  408.                 e = c;
  409.                 c = new x(e, this);
  410.                 d = !0;
  411.                 if (!(0 > e.keyCode || void 0 != e.returnValue)) {
  412.                     i: {
  413.                         var f = !1;
  414.                         if (0 == e.keyCode) try {
  415.                             e.keyCode = -1;
  416.                             break i
  417.                         } catch (h) {
  418.                             f = !0
  419.                         }
  420.                         if (f || void 0 == e.returnValue) e.returnValue = !0
  421.                     }
  422.                     e = [];
  423.                     for (f = c.a; f; f = f.parentNode) e.push(f);
  424.                     for (var f = a.type, l = e.length - 1; !c.H && 0 <= l; l--) c.a = e[l], d &= pb(e[l], f, !0, c);
  425.                     for (l = 0; !c.H && l < e.length; l++) c.a = e[l], d &= pb(e[l], f, !1, c)
  426.                 }
  427.                 return d
  428.             }
  429.             return ob(a, new x(b, this))
  430.         }, jb = function (a) {
  431.             a = a[eb];
  432.             return a instanceof $a ? a : null
  433.         }, qb = "__closure_events_fn_" + (1E9 * Math.random() >>> 0),
  434.         ib = function (a) {
  435.             t(a, "Listener can not be null.");
  436.             if ("function" == aa(a)) return a;
  437.             t(a.handleEvent, "An object listener must have handleEvent method.");
  438.             return a[qb] || (a[qb] = function (b) {
  439.                 return a.handleEvent(b)
  440.             })
  441.         };
  442.     var rb;
  443.     rb = !1;
  444.     var y = ua();
  445.     y && (-1 != y.indexOf("Firefox") || -1 != y.indexOf("Camino") || -1 != y.indexOf("iPhone") || -1 != y.indexOf("iPod") || -1 != y.indexOf("iPad") || -1 != y.indexOf("Chrome") || -1 != y.indexOf("Android") || -1 != y.indexOf("Safari") && (rb = !0));
  446.     var sb = rb;
  447.     var A = Ba && sb && !w(536.25),
  448.         tb = function (a, b, c) {
  449.             var d = document.createElement("source");
  450.             d.src = b;
  451.             d.type = c;
  452.             a.appendChild(d)
  453.         }, ub = function (a) {
  454.             if (A) return null;
  455.             var b = document.createElement("audio");
  456.             b && b.canPlayType && (b.canPlayType("audio/mpeg") || b.canPlayType("audio/ogg")) ? (b.controls = !1, b.hidden = !0, b.loaded = !1, hb(b, "loadedmetadata", function () {
  457.                 b.loaded = !0;
  458.                 b.a && b.a()
  459.             }), tb(b, a + ".ogg", "audio/ogg"), tb(b, a + ".mp3", "audio/mpeg")) : b = null;
  460.             return b
  461.         };
  462.     var vb = function (a, b, c) {
  463.         this.d = {};
  464.         this.i = b || "";
  465.         this.k = c || document.body;
  466.         if (a)
  467.             for (var d in a) this.load(a[d])
  468.     };
  469.     q(vb, r);
  470.     vb.prototype.a = function () {
  471.         for (var a in this.d) {
  472.             var b = this.d[a];
  473.             b.parent && b.parent.removeChild(b)
  474.         }
  475.         this.d = {};
  476.         vb.G.a.call(this)
  477.     };
  478.     vb.prototype.load = function (a) {
  479.         var b;
  480.         a && (b = this.d[a], !b && (b = ub(this.i + "/" + a))) && (this.k.appendChild(b), this.d[a] = b);
  481.         return b
  482.     };
  483.     vb.prototype.loop = function (a) {
  484.         if (a = wb(this, a)) a.loop = !0;
  485.         return a
  486.     };
  487.     var wb = function (a, b, c) {
  488.         var d = a.load(b);
  489.         d && d.play && (d.autoplay = !0, d.loop = !1, d.loaded ? d.currentTime = c || 0 : c && d.addEventListener("loadedmetadata", function () {
  490.             d.currentTime = c || 0
  491.         }, !1), d.play());
  492.         return d
  493.     }, xb = function (a, b) {
  494.             if (b) {
  495.                 var c = a.d[b];
  496.                 c && c.loaded && c.pause && (c.pause(), c.autoplay = !1, c.loop = !1)
  497.             }
  498.             return c
  499.         };
  500.     var yb = function () {};
  501.     var zb = function (a) {
  502.         this.a = a
  503.     };
  504.     q(zb, yb);
  505.     zb.prototype.contains = function (a, b) {
  506.         var c = this.a;
  507.         if (6 > c.length) return !1;
  508.         for (var d = !1, e = 0, f = c.length - 2; e < c.length; f = e, e += 2) {
  509.             var h = c[e],
  510.                 l = c[e + 1],
  511.                 m = c[f],
  512.                 f = c[f + 1];
  513.             a < h != a < m && b > l + (a - h) * (f - l) / (m - h) && (d = !d)
  514.         }
  515.         return d
  516.     };
  517.     zb.prototype.d = function (a) {
  518.         a.beginPath();
  519.         for (var b = 0; b < this.a.length; b += 2) a.lineTo(this.a[b], this.a[b + 1]);
  520.         a.lineTo(this.a[0], this.a[1]);
  521.         a.fill();
  522.         a.stroke()
  523.     };
  524.     var Ab = "StopIteration" in k ? k.StopIteration : Error("StopIteration"),
  525.         Bb = function () {};
  526.     Bb.prototype.next = function () {
  527.         throw Ab;
  528.     };
  529.     Bb.prototype.k = function () {
  530.         return this
  531.     };
  532.     var B = function (a, b) {
  533.         this.d = {};
  534.         this.a = [];
  535.         this.i = this.g = 0;
  536.         var c = arguments.length;
  537.         if (1 < c) {
  538.             if (c % 2) throw Error("Uneven number of arguments");
  539.             for (var d = 0; d < c; d += 2) this.set(arguments[d], arguments[d + 1])
  540.         } else if (a) {
  541.             a instanceof B ? (c = a.K(), d = a.C()) : (c = Va(a), d = Ua(a));
  542.             for (var e = 0; e < c.length; e++) this.set(c[e], d[e])
  543.         }
  544.     };
  545.     B.prototype.C = function () {
  546.         Cb(this);
  547.         for (var a = [], b = 0; b < this.a.length; b++) a.push(this.d[this.a[b]]);
  548.         return a
  549.     };
  550.     B.prototype.K = function () {
  551.         Cb(this);
  552.         return this.a.concat()
  553.     };
  554.     var Cb = function (a) {
  555.         if (a.g != a.a.length) {
  556.             for (var b = 0, c = 0; b < a.a.length;) {
  557.                 var d = a.a[b];
  558.                 C(a.d, d) && (a.a[c++] = d);
  559.                 b++
  560.             }
  561.             a.a.length = c
  562.         }
  563.         if (a.g != a.a.length) {
  564.             for (var e = {}, c = b = 0; b < a.a.length;) d = a.a[b], C(e, d) || (a.a[c++] = d, e[d] = 1), b++;
  565.             a.a.length = c
  566.         }
  567.     }, Db = function (a, b) {
  568.             return C(a.d, b) ? a.d[b] : void 0
  569.         };
  570.     B.prototype.set = function (a, b) {
  571.         C(this.d, a) || (this.g++, this.a.push(a), this.i++);
  572.         this.d[a] = b
  573.     };
  574.     B.prototype.T = function () {
  575.         return new B(this)
  576.     };
  577.     B.prototype.k = function (a) {
  578.         Cb(this);
  579.         var b = 0,
  580.             c = this.a,
  581.             d = this.d,
  582.             e = this.i,
  583.             f = this,
  584.             h = new Bb;
  585.         h.next = function () {
  586.             for (;;) {
  587.                 if (e != f.i) throw Error("The map has changed since the iterator was created");
  588.                 if (b >= c.length) throw Ab;
  589.                 var h = c[b++];
  590.                 return a ? h : d[h]
  591.             }
  592.         };
  593.         return h
  594.     };
  595.     var C = function (a, b) {
  596.         return Object.prototype.hasOwnProperty.call(a, b)
  597.     };
  598.     var Eb = function (a) {
  599.         if ("function" == typeof a.C) return a.C();
  600.         if (n(a)) return a.split("");
  601.         if (ba(a)) {
  602.             for (var b = [], c = a.length, d = 0; d < c; d++) b.push(a[d]);
  603.             return b
  604.         }
  605.         return Ua(a)
  606.     }, Fb = function (a, b, c) {
  607.             if ("function" == typeof a.forEach) a.forEach(b, c);
  608.             else if (ba(a) || n(a)) ma(a, b, c);
  609.             else {
  610.                 var d;
  611.                 if ("function" == typeof a.K) d = a.K();
  612.                 else if ("function" != typeof a.C)
  613.                     if (ba(a) || n(a)) {
  614.                         d = [];
  615.                         for (var e = a.length, f = 0; f < e; f++) d.push(f)
  616.                     } else d = Va(a);
  617.                     else d = void 0;
  618.                 for (var e = Eb(a), f = e.length, h = 0; h < f; h++) b.call(c, e[h], d && d[h], a)
  619.             }
  620.         };
  621.     var Gb = RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"),
  622.         Ib = function (a) {
  623.             if (Hb) {
  624.                 Hb = !1;
  625.                 var b = k.location;
  626.                 if (b) {
  627.                     var c = b.href;
  628.                     if (c && (c = (c = Ib(c)[3] || null) && decodeURIComponent(c)) && c != b.hostname) throw Hb = !0, Error();
  629.                 }
  630.             }
  631.             return a.match(Gb)
  632.         }, Hb = za;
  633.     var Jb = function (a, b) {
  634.         var c;
  635.         if (a instanceof Jb) this.O = void 0 !== b ? b : a.O, Kb(this, a.R), this.ea = a.ea, this.W = a.W, Lb(this, a.ba), this.V = a.V, Mb(this, a.N.T()), this.aa = a.aa;
  636.         else if (a && (c = Ib(String(a)))) {
  637.             this.O = !! b;
  638.             Kb(this, c[1] || "", !0);
  639.             this.ea = c[2] ? decodeURIComponent(c[2] || "") : "";
  640.             this.W = c[3] ? decodeURIComponent(c[3] || "") : "";
  641.             Lb(this, c[4]);
  642.             var d = c[5] || "";
  643.             this.V = d ? decodeURIComponent(d) : "";
  644.             Mb(this, c[6] || "", !0);
  645.             this.aa = c[7] ? decodeURIComponent(c[7] || "") : ""
  646.         } else this.O = !! b, this.N = new D(null, 0, this.O)
  647.     };
  648.     g = Jb.prototype;
  649.     g.R = "";
  650.     g.ea = "";
  651.     g.W = "";
  652.     g.ba = null;
  653.     g.V = "";
  654.     g.aa = "";
  655.     g.O = !1;
  656.     g.toString = function () {
  657.         var a = [],
  658.             b = this.R;
  659.         b && a.push(Nb(b, Ob), ":");
  660.         if (b = this.W) {
  661.             a.push("//");
  662.             var c = this.ea;
  663.             c && a.push(Nb(c, Ob), "@");
  664.             a.push(encodeURIComponent(String(b)));
  665.             b = this.ba;
  666.             null != b && a.push(":", String(b))
  667.         }
  668.         if (b = this.V) this.W && "/" != b.charAt(0) && a.push("/"), a.push(Nb(b, "/" == b.charAt(0) ? Pb : Qb));
  669.         (b = this.N.toString()) && a.push("?", b);
  670.         (b = this.aa) && a.push("#", Nb(b, Rb));
  671.         return a.join("")
  672.     };
  673.     g.T = function () {
  674.         return new Jb(this)
  675.     };
  676.     var Kb = function (a, b, c) {
  677.         a.R = c ? b ? decodeURIComponent(b) : "" : b;
  678.         a.R && (a.R = a.R.replace(/:$/, ""))
  679.     }, Lb = function (a, b) {
  680.             if (b) {
  681.                 b = Number(b);
  682.                 if (isNaN(b) || 0 > b) throw Error("Bad port number " + b);
  683.                 a.ba = b
  684.             } else a.ba = null
  685.         }, Mb = function (a, b, c) {
  686.             b instanceof D ? (a.N = b, Sb(a.N, a.O)) : (c || (b = Nb(b, Tb)), a.N = new D(b, 0, a.O))
  687.         }, Nb = function (a, b) {
  688.             return n(a) ? encodeURI(a).replace(b, Ub) : null
  689.         }, Ub = function (a) {
  690.             a = a.charCodeAt(0);
  691.             return "%" + (a >> 4 & 15).toString(16) + (a & 15).toString(16)
  692.         }, Ob = /[#\/\?@]/g,
  693.         Qb = /[\#\?:]/g,
  694.         Pb = /[\#\?]/g,
  695.         Tb = /[\#\?@]/g,
  696.         Rb = /#/g,
  697.         D = function (a, b, c) {
  698.             this.d = a || null;
  699.             this.i = !! c
  700.         }, G = function (a) {
  701.             if (!a.a && (a.a = new B, a.g = 0, a.d))
  702.                 for (var b = a.d.split("&"), c = 0; c < b.length; c++) {
  703.                     var d = b[c].indexOf("="),
  704.                         e = null,
  705.                         f = null;
  706.                     0 <= d ? (e = b[c].substring(0, d), f = b[c].substring(d + 1)) : e = b[c];
  707.                     e = decodeURIComponent(e.replace(/\+/g, " "));
  708.                     e = E(a, e);
  709.                     d = a;
  710.                     f = f ? decodeURIComponent(f.replace(/\+/g, " ")) : "";
  711.                     G(d);
  712.                     d.d = null;
  713.                     var e = E(d, e),
  714.                         h = Db(d.a, e);
  715.                     h || d.a.set(e, h = []);
  716.                     h.push(f);
  717.                     d.g++
  718.                 }
  719.         };
  720.     D.prototype.a = null;
  721.     D.prototype.g = null;
  722.     var Vb = function (a, b) {
  723.         G(a);
  724.         b = E(a, b);
  725.         if (C(a.a.d, b)) {
  726.             a.d = null;
  727.             a.g -= Db(a.a, b).length;
  728.             var c = a.a;
  729.             C(c.d, b) && (delete c.d[b], c.g--, c.i++, c.a.length > 2 * c.g && Cb(c))
  730.         }
  731.     }, Wb = function (a, b) {
  732.             G(a);
  733.             b = E(a, b);
  734.             return C(a.a.d, b)
  735.         };
  736.     g = D.prototype;
  737.     g.K = function () {
  738.         G(this);
  739.         for (var a = this.a.C(), b = this.a.K(), c = [], d = 0; d < b.length; d++)
  740.             for (var e = a[d], f = 0; f < e.length; f++) c.push(b[d]);
  741.         return c
  742.     };
  743.     g.C = function (a) {
  744.         G(this);
  745.         var b = [];
  746.         if (n(a)) Wb(this, a) && (b = na(b, Db(this.a, E(this, a))));
  747.         else {
  748.             a = this.a.C();
  749.             for (var c = 0; c < a.length; c++) b = na(b, a[c])
  750.         }
  751.         return b
  752.     };
  753.     g.set = function (a, b) {
  754.         G(this);
  755.         this.d = null;
  756.         a = E(this, a);
  757.         Wb(this, a) && (this.g -= Db(this.a, a).length);
  758.         this.a.set(a, [b]);
  759.         this.g++;
  760.         return this
  761.     };
  762.     g.toString = function () {
  763.         if (this.d) return this.d;
  764.         if (!this.a) return "";
  765.         for (var a = [], b = this.a.K(), c = 0; c < b.length; c++)
  766.             for (var d = b[c], e = encodeURIComponent(String(d)), d = this.C(d), f = 0; f < d.length; f++) {
  767.                 var h = e;
  768.                 "" !== d[f] && (h += "=" + encodeURIComponent(String(d[f])));
  769.                 a.push(h)
  770.             }
  771.         return this.d = a.join("&")
  772.     };
  773.     g.T = function () {
  774.         var a = new D;
  775.         a.d = this.d;
  776.         this.a && (a.a = this.a.T(), a.g = this.g);
  777.         return a
  778.     };
  779.     var E = function (a, b) {
  780.         var c = String(b);
  781.         a.i && (c = c.toLowerCase());
  782.         return c
  783.     }, Sb = function (a, b) {
  784.             b && !a.i && (G(a), a.d = null, Fb(a.a, function (a, b) {
  785.                 var e = b.toLowerCase();
  786.                 b != e && (Vb(this, b), Vb(this, e), 0 < a.length && (this.d = null, this.a.set(E(this, e), oa(a)), this.g += a.length))
  787.             }, a));
  788.             a.i = b
  789.         };
  790.     var Xb = navigator.userAgent,
  791.         Yb = s(Xb, "Android") || s(Xb, "Mobile") || s(Xb, "Silk") || s(Xb, "iPad") || s(Xb, "iPhone") || s(Xb, "iPod"),
  792.         Zb = function () {
  793.             return (new Date).getTime()
  794.         }, $b = ["", "moz", "ms", "o", "webkit"],
  795.         ac = function (a) {
  796.             var b = document;
  797.             if (!b) return null;
  798.             for (var c = 0; c < $b.length; c++) {
  799.                 var d = $b[c],
  800.                     e = a;
  801.                 0 < d.length && (e = a.charAt(0).toUpperCase() + a.substr(1));
  802.                 d += e;
  803.                 if ("undefined" != typeof b[d]) return d
  804.             }
  805.             return null
  806.         }, bc = function () {
  807.             var a = google.doodle;
  808.             if (a && a.url) {
  809.                 var b = a.url;
  810.                 if (google.nav && google.nav.go) {
  811.                     a = b;
  812.                     if (0 == b.indexOf("/search")) {
  813.                         a =
  814.                             new Jb(window.location);
  815.                         a.V = "/search";
  816.                         for (var b = (b instanceof Jb ? b.T() : new Jb(b, void 0)).N, c = b.K(), d = 0; d < c.length; d++) {
  817.                             var e = c[d],
  818.                                 f = a,
  819.                                 h = e,
  820.                                 e = e ? b.C(e) : [];
  821.                             f.N.set(h, 0 < e.length ? String(e[0]) : void 0)
  822.                         }
  823.                         a = a.toString()
  824.                     }
  825.                     google.nav.go(a)
  826.                 } else window.parent ? window.parent.location.replace(b) : window.location.replace(b)
  827.             }
  828.         }, cc = function () {
  829.             for (var a = ["requestAnimationFrame", "mozRequestAnimationFrame", "msRequestAnimationFrame", "oRequestAnimationFrame", "webkitRequestAnimationFrame"], b = 0; b < a.length; b++) {
  830.                 var c = window[a[b]];
  831.                 if (c) return function (a, b, d) {
  832.                     return c(function (b) {
  833.                         return a.call(d, b)
  834.                     }, b)
  835.                 }
  836.             }
  837.             var d = 0,
  838.                 e = 33,
  839.                 f = 50;
  840.             return function (a, b, c) {
  841.                 b && 0 > --f && (1.25 < b / e ? (d = 0, e = Math.min(66, ++e)) : 10 < ++d && (d = 0, e = Math.max(17, --e)));
  842.                 window.setTimeout(function (b) {
  843.                     a.call(c, b)
  844.                 }, e)
  845.             }
  846.         }, dc = function (a, b, c) {
  847.             dc = cc();
  848.             return dc(a, b, c)
  849.         };
  850.     var ec = function (a, b, c) {
  851.         this.d = [];
  852.         this.k = !0;
  853.         this.v = c || 0;
  854.         this.i = [];
  855.         this.o = [];
  856.         this.w = b || document.body;
  857.         this.A = a;
  858.         this.s = []
  859.     };
  860.     q(ec, r);
  861.     ec.prototype.a = function () {
  862.         if (!A) {
  863.             A || (fc(this), this.k = !1);
  864.             for (var a = 0, b; b = this.d[a++];) this.w.removeChild(b);
  865.             this.d = []
  866.         }
  867.         ec.G.a.call(this)
  868.     };
  869.     ec.prototype.load = function () {
  870.         A || gc(this)
  871.     };
  872.     var ic = function (a) {
  873.         var b = H;
  874.         if (!A) {
  875.             var c = gc(b),
  876.                 d = b.d[c];
  877.             d && d.play && b.k && (b.i[c] = a, d.loaded ? hc(b, c, a) : d.a = function () {
  878.                 hc(b, c, a)
  879.             })
  880.         }
  881.     }, hc = function (a, b, c) {
  882.             var d = a.d[b];
  883.             d.currentTime = c[0];
  884.             d.play();
  885.             c[1] && (a.s[b] = window.setTimeout(function () {
  886.                 jc(a, b)
  887.             }, 1E3 * (c[1] - c[0])));
  888.             a.v && (a.o[b] = Zb())
  889.         }, fc = function (a) {
  890.             if (!A)
  891.                 for (var b = 0; b < a.i.length; b++) a.i[b] && jc(a, b)
  892.         }, gc = function (a) {
  893.             for (var b = 0, c = 0; c < a.d.length; c++)
  894.                 if (a.i[c]) a.o[c] < a.o[b] && (b = c);
  895.                 else return c;
  896.             if (a.v && a.d.length >= a.v) return jc(a, b), b;
  897.             b = ub(a.A);
  898.             b.autoplay = !1;
  899.             b.loop = !1;
  900.             a.d.push(b);
  901.             a.o.push(0);
  902.             a.w.appendChild(b);
  903.             return a.d.length - 1
  904.         }, jc = function (a, b) {
  905.             var c = a.d[b];
  906.             c && c.loaded && c.pause && (c.pause(), c.currentTime = 0);
  907.             a.i[b] = null;
  908.             a.s[b] && (window.clearTimeout(a.s[b]), a.s[b] = 0);
  909.             c.a = null
  910.         };
  911.     var kc = k.navigator ? k.navigator.userAgent : "";
  912.     var lc = function (a) {
  913.         this.i = a;
  914.         this.d = !1;
  915.         this.g = [];
  916.         this.a = new Image
  917.     }, mc = function (a) {
  918.             if (!a.a.src) {
  919.                 var b = function () {
  920.                     if (!a.d) {
  921.                         a.d = !0;
  922.                         for (var b = 0, d; d = a.g[b]; b++) d()
  923.                     }
  924.                 };
  925.                 a.a.onload = b;
  926.                 a.a.src = a.i;
  927.                 (a.a.complete || "complete" == a.a.readyState) && b()
  928.             }
  929.         }, nc = function (a, b) {
  930.             a.d ? b() : a.g.push(b)
  931.         };
  932.     var oc = function (a, b, c) {
  933.         this.i = b;
  934.         this.a = c || null;
  935.         this.g = new lc(a);
  936.         this.k = !1;
  937.         var d = this;
  938.         nc(this.g, function () {
  939.             d.k = !0
  940.         })
  941.     };
  942.     oc.prototype.getWidth = function (a) {
  943.         return this.i[a][2]
  944.     };
  945.     oc.prototype.getHeight = function (a) {
  946.         return this.i[a][3]
  947.     };
  948.     var pc = function (a, b) {
  949.         var c = a.i[b];
  950.         return {
  951.             width: c[2],
  952.             height: c[3]
  953.         }
  954.     }, qc = function (a, b) {
  955.             b && nc(a.g, b);
  956.             mc(a.g)
  957.         };
  958.     oc.prototype.d = function (a, b, c, d, e, f) {
  959.         if (this.k) {
  960.             var h = this.i[a],
  961.                 l = h[2],
  962.                 m = h[3],
  963.                 V = e || 1;
  964.             e = l * V;
  965.             V *= m;
  966.             f = f || !1;
  967.             b.drawImage(this.g.a, h[0], h[1], l, m, c - (f ? e / 2 : 0), d - (f ? V / 2 : 0), e, V)
  968.         } else {
  969.             var z = this;
  970.             qc(this, function () {
  971.                 z.d(a, b, c, d)
  972.             })
  973.         }
  974.     };
  975.     var rc = {
  976.         Ja: 0,
  977.         Ka: 1,
  978.         La: 2,
  979.         Ma: 3,
  980.         Na: 4,
  981.         Oa: 5,
  982.         Pa: 6,
  983.         Qa: 7,
  984.         Ra: 8
  985.     }, sc = {
  986.             qb: 0,
  987.             rb: 1,
  988.             tb: 2,
  989.             ub: 3
  990.         }, tc = {
  991.             Ya: 0,
  992.             Za: 1,
  993.             $a: 2,
  994.             ab: 3,
  995.             bb: 4,
  996.             Mb: 5,
  997.             Nb: 6,
  998.             Ob: 7,
  999.             Pb: 8,
  1000.             gb: 9,
  1001.             hb: 10,
  1002.             cb: 11,
  1003.             eb: 12,
  1004.             fb: 13,
  1005.             fa: 14,
  1006.             wa: 15,
  1007.             xa: 16,
  1008.             Aa: 17,
  1009.             ka: 18,
  1010.             Ba: 19,
  1011.             Ca: 20,
  1012.             Da: 21,
  1013.             Ea: 22,
  1014.             Fa: 23,
  1015.             Ga: 24,
  1016.             Ha: 25,
  1017.             ib: 26,
  1018.             jb: 27,
  1019.             kb: 28,
  1020.             lb: 29,
  1021.             mb: 30,
  1022.             Sa: 31,
  1023.             Ta: 32,
  1024.             Ua: 33,
  1025.             Va: 34,
  1026.             Wa: 35,
  1027.             Xa: 36,
  1028.             ga: 37,
  1029.             Ia: 38,
  1030.             qa: 39,
  1031.             ra: 40,
  1032.             nb: 41,
  1033.             ob: 42,
  1034.             pb: 43,
  1035.             Fb: 44,
  1036.             Gb: 45,
  1037.             Hb: 46,
  1038.             Ib: 47,
  1039.             Jb: 48,
  1040.             Kb: 49,
  1041.             Lb: 50,
  1042.             va: 51,
  1043.             ya: 52,
  1044.             za: 53,
  1045.             oa: 54,
  1046.             vb: 55,
  1047.             wb: 56,
  1048.             xb: 57,
  1049.             yb: 58,
  1050.             zb: 59,
  1051.             Ab: 60,
  1052.             Bb: 61,
  1053.             Cb: 62,
  1054.             Db: 63,
  1055.             Eb: 64
  1056.         };
  1057.     var I, J, K = new oc("/logos/2013/bday13/sprite-initial.png", [
  1058.             [570, 549, 90, 98],
  1059.             [125, 748, 20, 17],
  1060.             [0, 188, 20, 17],
  1061.             [486, 312, 11, 8],
  1062.             [125, 549, 65, 11],
  1063.             [320, 774, 34, 14],
  1064.             [538, 188, 34, 13],
  1065.             [195, 549, 34, 13],
  1066.             [486, 323, 34, 14],
  1067.             [47, 549, 32, 21],
  1068.             [285, 774, 32, 21],
  1069.             [47, 573, 75, 65],
  1070.             [387, 154, 23, 13],
  1071.             [398, 774, 57, 18],
  1072.             [0, 549, 44, 21],
  1073.             [357, 774, 38, 18],
  1074.             [34, 845, 63, 12],
  1075.             [145, 355, 71, 10],
  1076.             [17, 860, 26, 29],
  1077.             [0, 161, 14, 9],
  1078.             [0, 845, 14, 13],
  1079.             [31, 30, 19, 20],
  1080.             [317, 549, 250, 164],
  1081.             [163, 188, 250, 164],
  1082.             [323, 382, 250, 164],
  1083.             [0, 382, 250, 164],
  1084.             [125, 563, 37, 112],
  1085.             [145, 188, 15, 26],
  1086.             [580,
  1087.                 774, 12, 6
  1088.             ],
  1089.             [606, 844, 11, 10],
  1090.             [253, 418, 48, 10],
  1091.             [575, 188, 70, 63],
  1092.             [0, 30, 28, 20],
  1093.             [665, 774, 28, 20],
  1094.             [17, 845, 14, 10],
  1095.             [77, 30, 17, 12],
  1096.             [100, 845, 60, 20],
  1097.             [509, 30, 13, 120],
  1098.             [0, 0, 662, 27],
  1099.             [219, 30, 165, 155],
  1100.             [25, 774, 67, 68],
  1101.             [0, 774, 22, 12],
  1102.             [253, 382, 20, 10],
  1103.             [580, 844, 23, 13],
  1104.             [615, 100, 67, 67],
  1105.             [357, 795, 67, 67],
  1106.             [595, 774, 67, 67],
  1107.             [416, 312, 67, 67],
  1108.             [615, 30, 67, 67],
  1109.             [125, 678, 67, 67],
  1110.             [253, 431, 67, 67],
  1111.             [525, 30, 87, 105],
  1112.             [0, 53, 74, 105],
  1113.             [253, 395, 34, 20],
  1114.             [195, 565, 119, 121],
  1115.             [163, 774, 119, 121],
  1116.             [0, 641, 119, 121],
  1117.             [416, 188, 119, 121],
  1118.             [570, 650, 119, 121],
  1119.             [538, 254, 119, 121],
  1120.             [387, 30, 119, 121],
  1121.             [97, 30, 119, 121],
  1122.             [458, 774, 119, 121],
  1123.             [23, 188, 119, 121],
  1124.             [576, 382, 119, 121]
  1125.         ], tc);
  1126.     K.a = tc;
  1127.     var uc = new oc("/logos/2013/bday13/sprite-endscreen.png", [
  1128.         [0, 0, 604, 171],
  1129.         [1821, 0, 604, 171],
  1130.         [607, 0, 604, 171],
  1131.         [1214, 0, 604, 171]
  1132.     ], sc);
  1133.     uc.a = sc;
  1134.     var L = new oc("/logos/2013/bday13/sprite-button.png", [
  1135.         [0, 49, 42, 46],
  1136.         [0, 98, 39, 39],
  1137.         [0, 140, 42, 46],
  1138.         [0, 238, 42, 46],
  1139.         [0, 336, 39, 39],
  1140.         [0, 0, 42, 46],
  1141.         [0, 189, 42, 46],
  1142.         [0, 378, 39, 39],
  1143.         [0, 287, 42, 46]
  1144.     ], rc);
  1145.     L.a = rc;
  1146.     var M, H, vc = !1,
  1147.         wc = !1,
  1148.         xc = [0, 0.3],
  1149.         yc = [0.5, 0.9],
  1150.         zc = [1, 1.3],
  1151.         Ac = [1.5, 1.8],
  1152.         Bc = [2, null],
  1153.         N = !(s(kc, "iPhone") && !s(kc, "iPod") || s(kc, "iPad") || s(kc, "iPod")),
  1154.         Cc = function (a) {
  1155.             switch (a) {
  1156.             case "mousedown":
  1157.                 wc = !0;
  1158.                 vc = !vc;
  1159.                 if (N && M) {
  1160.                     a = vc ? 0 : 1;
  1161.                     var b = M.load("music-3");
  1162.                     b && (b.volume = a)
  1163.                 }
  1164.                 N && H && (vc ? (a = H, A || (fc(a), a.k = !1)) : (a = H, A || (a.k = !0)));
  1165.                 break;
  1166.             case "mouseup":
  1167.                 wc = !1
  1168.             }
  1169.         }, Dc = function (a) {
  1170.             N && H && ic(a)
  1171.         }, Ec = function () {
  1172.             N && M && xb(M, "music-3")
  1173.         }, Fc = function () {
  1174.             N && M && M.loop("music-3")
  1175.         };
  1176.     var Jc = function (a, b, c) {
  1177.         this.A = a;
  1178.         this.J = b;
  1179.         this.X = c;
  1180.         this.i = this.d = this.s = !1;
  1181.         this.v = Zb();
  1182.         this.S = ac("hidden");
  1183.         if ((this.o = (this.w = ac("visibilityState")) ? this.w.replace(/state$/i, "change").toLowerCase() : null) && document.addEventListener) {
  1184.             var d = this;
  1185.             this.F = function () {
  1186.                 var a = document[d.w];
  1187.                 d.s = document[d.S] || "hidden" == a;
  1188.                 d.s ? Gc(d) : Hc(d)
  1189.             };
  1190.             document.addEventListener(this.o, this.F, !1)
  1191.         }
  1192.         Ic(this)
  1193.     };
  1194.     q(Jc, r);
  1195.     Jc.prototype.a = function () {
  1196.         window.clearTimeout(this.k);
  1197.         this.o && document.removeEventListener && document.removeEventListener(this.o, this.F, !1);
  1198.         Jc.G.a.call(this)
  1199.     };
  1200.     var Gc = function (a) {
  1201.         var b = a.s || a.d;
  1202.         a.i && !b ? (a.i = !1, a.X(), Ic(a)) : !a.i && b && (a.i = !0, a.J())
  1203.     }, Ic = function (a) {
  1204.             a.k && window.clearTimeout(a.k);
  1205.             var b = Math.max(100, a.A - (Zb() - a.v));
  1206.             a.k = window.setTimeout(function () {
  1207.                 a.k = null;
  1208.                 a.d = Zb() - a.v >= a.A;
  1209.                 a.d || Ic(a);
  1210.                 Gc(a)
  1211.             }, b)
  1212.         }, Hc = function (a) {
  1213.             a.v = Zb();
  1214.             a.d = !1;
  1215.             Gc(a)
  1216.         };
  1217.     var Kc = function (a, b) {
  1218.         this.s = a;
  1219.         this.w = b || null;
  1220.         this.a = [];
  1221.         this.g = null;
  1222.         this.k = this.i = 0;
  1223.         this.B = this.o = !1;
  1224.         this.v = []
  1225.     }, Lc = function () {
  1226.             var a = new yb;
  1227.             a.contains = function () {
  1228.                 return !0
  1229.             };
  1230.             return a
  1231.         }(),
  1232.         Nc = function (a, b, c) {
  1233.             a.a.push(new Mc(b, c))
  1234.         }, Qc = function (a, b) {
  1235.             for (var c = a.a.length - 1; 0 <= c; c--) a.a[c].d === b && a.a.splice(c, 1);
  1236.             b === a.g && (a.g = null, Oc(a));
  1237.             b === a.d && (a.d = null);
  1238.             Pc(a, "areamove", a.i, a.k)
  1239.         };
  1240.     Kc.prototype.handleEvent = function (a) {
  1241.         this.w && Hc(this.w);
  1242.         var b;
  1243.         if (b = (b = a.I()) || window.event) {
  1244.             var c = b.targetTouches && b.targetTouches[0];
  1245.             b = c && void 0 !== c.pageX ? [c.pageX, c.pageY] : void 0 !== b.clientX ? [b.clientX + ("rtl" == document.dir ? -1 : 1) * (document.body.scrollLeft || document.documentElement.scrollLeft || 0), b.clientY + (document.body.scrollTop || document.documentElement.scrollTop || 0)] : void 0 !== b.pageX ? [b.pageX, b.pageY] : [0, 0]
  1246.         } else b = [0, 0];
  1247.         var c = this.s,
  1248.             d = 0,
  1249.             e = 0;
  1250.         if (c) {
  1251.             do d += c.offsetLeft, e += c.offsetTop; while (c = c.offsetParent)
  1252.         }
  1253.         c = [d, e];
  1254.         b = [b[0] - c[0], b[1] - c[1]];
  1255.         this.i = b[0];
  1256.         this.k = b[1];
  1257.         b = a.type;
  1258.         this.B && 0 == b.indexOf("mouse") || (c = {
  1259.             touchstart: "mousedown",
  1260.             touchend: "mouseup",
  1261.             touchmove: "mousemove"
  1262.         }, b in c && (this.B = !0, b = c[b]), "mousedown" == b && a.Y(), Pc(this, b, this.i, this.k))
  1263.     };
  1264.     var Pc = function (a, b, c, d) {
  1265.         if (!a.o && "mousedown" == b) {
  1266.             a.o = !0;
  1267.             for (var e = 0; e < a.v.length; e++) a.v[e]()
  1268.         }
  1269.         if ("mousedown" == b) {
  1270.             if (!a.d)
  1271.                 for (e = 0; e < a.a.length; e++) {
  1272.                     var f = a.a[e];
  1273.                     if (f.d.contains(c, d)) {
  1274.                         a.d = f;
  1275.                         f.a("mousedown", c, d);
  1276.                         break
  1277.                     }
  1278.                 }
  1279.         } else if ("mouseup" == b) a.d && (a.d.a("mouseup", c, d), a.d = null);
  1280.         else if ("mousemove" == b || "areamove" == b) {
  1281.             for (var h = null, e = 0; e < a.a.length; e++)
  1282.                 if (f = a.a[e], f.d.contains(c, d)) {
  1283.                     h = f;
  1284.                     break
  1285.                 }
  1286.             a.g != h && (a.g && a.g.a("mouseout", c, d), h && h.a("mouseover", c, d), a.g = h);
  1287.             if ("mousemove" == b)
  1288.                 for (a.d && a.d.a("mousemove",
  1289.                     c, d), e = 0; e < a.a.length; e++) f = a.a[e], f != a.d && f.d.contains(c, d) && f.a("mousemove", c, d)
  1290.         }
  1291.         Oc(a)
  1292.     }, Oc = function (a) {
  1293.             a.s.style.cursor = a.g && a.g.d != Lc ? "pointer" : "default"
  1294.         }, Mc = function (a, b) {
  1295.             this.d = a;
  1296.             this.a = b
  1297.         };
  1298.     var Rc = function (a, b) {
  1299.         google && google.doodle && (b && (google.doodle.cpDestroy = b), google.doodle.cpInit = function () {
  1300.             b && b();
  1301.             a()
  1302.         })
  1303.     }, Sc = function (a, b, c) {
  1304.             if (google) {
  1305.                 var d = function () {
  1306.                     var a = google.msg && google.msg.unlisten;
  1307.                     a && (a(67, d), c && a(94, c));
  1308.                     b();
  1309.                     return !0
  1310.                 }, e = function () {
  1311.                         var a = document.getElementById("hplogo");
  1312.                         a && "hidden" != a.style.visibility && (a = google.msg && google.msg.listen, google.psy && google.psy.q && a && (a(67, d), c && a(94, c)))
  1313.                     };
  1314.                 e();
  1315.                 google.doodle && google.doodle.jesr || (ga("google.doodle.jesr"), google.raas && google.raas("doodle", {
  1316.                     init: function () {
  1317.                         e();
  1318.                         google.doodle.jesrd && (a(), google.doodle.jesrd = !1)
  1319.                     },
  1320.                     dispose: function () {
  1321.                         d();
  1322.                         google.doodle.jesrd = !0
  1323.                     }
  1324.                 }))
  1325.             }
  1326.         };
  1327.     var O = function (a) {
  1328.         this.v = a;
  1329.         this.i = {}
  1330.     };
  1331.     q(O, r);
  1332.     var Tc = [];
  1333.     O.prototype.listen = function (a, b, c, d, e) {
  1334.         "array" != aa(b) && (Tc[0] = b, b = Tc);
  1335.         for (var f = 0; f < b.length; f++) {
  1336.             var h = hb(a, b[f], c || this, d || !1, e || this.v || this);
  1337.             if (!h) break;
  1338.             this.i[h.la] = h
  1339.         }
  1340.         return this
  1341.     };
  1342.     O.prototype.unlisten = function (a, b, c, d, e) {
  1343.         if ("array" == aa(b))
  1344.             for (var f = 0; f < b.length; f++) this.unlisten(a, b[f], c, d, e);
  1345.         else e = e || this.v || this, c = ib(c || this), d = !! d, b = Sa(a) ? db(a.D, String(b), c, d, e) : a ? (a = jb(a)) ? db(a, b, c, d, e) : null : null, b && (nb(b), delete this.i[b.la]);
  1346.         return this
  1347.     };
  1348.     O.prototype.a = function () {
  1349.         O.G.a.call(this);
  1350.         var a = this.i,
  1351.             b = nb,
  1352.             c;
  1353.         for (c in a) b.call(void 0, a[c], c, a);
  1354.         this.i = {}
  1355.     };
  1356.     O.prototype.handleEvent = function () {
  1357.         throw Error("EventHandler.handleEvent not implemented");
  1358.     };
  1359.     var Uc = !1,
  1360.         P = 0,
  1361.         Wc = function (a) {
  1362.             if (a) {
  1363.                 var b = a.indexOf("doodle=9019609X");
  1364.                 0 <= b && (a = a.substr(b + 15).match(/^[0-9]+/)) && 0 < a.length && (a = a[0], 4 > a.length && (Vc = parseInt(a, 10)))
  1365.             }
  1366.         }, Xc = 0,
  1367.         $c = function (a) {
  1368.             P = a;
  1369.             2 == P ? (Xc = fa(), Yc++, Zc(0)) : 3 == P && Zc(fa() - Xc)
  1370.         }, Zc = function (a) {
  1371.             window.google && window.google.log && window.google.log("doodle", ["bday13", "s:" + P, "n:" + Yc, "c:" + Q, "t:" + a].join())
  1372.         }, ad = 0,
  1373.         Q = 0,
  1374.         Vc = 0,
  1375.         bd = 0,
  1376.         Yc = 0,
  1377.         cd = 3;
  1378.     var dd = K.getWidth(K.a.oa) / 2,
  1379.         ed = [54, 180, 33, 240, -33, 240, -54, 180, 1, 142],
  1380.         fd = ["#ed2933", "#2157a7", "#248f44"],
  1381.         gd = [25, 20, 26],
  1382.         hd = [-1, 0, 1],
  1383.         id = [3, 0, -3],
  1384.         R = 0,
  1385.         S = 0,
  1386.         jd = 0,
  1387.         kd = 0,
  1388.         ld = [K.a.oa, K.a.vb, K.a.wb, K.a.xb, K.a.yb, K.a.zb, K.a.Ab, K.a.Bb, K.a.Cb, K.a.Db, K.a.Eb],
  1389.         md = ld.length,
  1390.         nd = 0,
  1391.         od = [15, 30, 45, 60, 75, 90, 115, 130, 145, 160],
  1392.         pd = od.length,
  1393.         qd = function () {
  1394.             R = Math.PI / 8;
  1395.             nd = jd = kd = S = 0
  1396.         };
  1397.     var rd = [],
  1398.         sd = 0,
  1399.         td = 0,
  1400.         ud = function () {
  1401.             rd = [];
  1402.             Q = ad = sd = td = 0
  1403.         }, vd = [5, 6, 7, 8];
  1404.     var T = function () {
  1405.         this.D = new $a(this);
  1406.         this.s = this
  1407.     };
  1408.     q(T, r);
  1409.     T.prototype[Ra] = !0;
  1410.     T.prototype.i = null;
  1411.     T.prototype.removeEventListener = function (a, b, c, d) {
  1412.         mb(this, a, b, c, d)
  1413.     };
  1414.     var yd = function (a, b) {
  1415.         wd(a);
  1416.         var c, d = a.i;
  1417.         if (d) {
  1418.             c = [];
  1419.             for (var e = 1; d; d = d.i) c.push(d), t(1E3 > ++e, "infinite loop")
  1420.         }
  1421.         var d = a.s,
  1422.             e = b,
  1423.             f = e.type || e;
  1424.         if (n(e)) e = new Qa(e, d);
  1425.         else if (e instanceof Qa) e.U = e.U || d;
  1426.         else {
  1427.             var h = e,
  1428.                 e = new Qa(f, d);
  1429.             Xa(e, h)
  1430.         }
  1431.         var h = !0,
  1432.             l;
  1433.         if (c)
  1434.             for (var m = c.length - 1; !e.H && 0 <= m; m--) l = e.a = c[m], h = xd(l, f, !0, e) && h;
  1435.         e.H || (l = e.a = d, h = xd(l, f, !0, e) && h, e.H || (h = xd(l, f, !1, e) && h));
  1436.         if (c)
  1437.             for (m = 0; !e.H && m < c.length; m++) l = e.a = c[m], h = xd(l, f, !1, e) && h;
  1438.         return h
  1439.     };
  1440.     T.prototype.a = function () {
  1441.         T.G.a.call(this);
  1442.         if (this.D) {
  1443.             var a = this.D,
  1444.                 b = 0,
  1445.                 c;
  1446.             for (c in a.a) {
  1447.                 for (var d = a.a[c], e = 0; e < d.length; e++)++b, Za(d[e]);
  1448.                 delete a.a[c];
  1449.                 a.d--
  1450.             }
  1451.         }
  1452.         this.i = null
  1453.     };
  1454.     T.prototype.listen = function (a, b, c, d) {
  1455.         wd(this);
  1456.         return bb(this.D, String(a), b, c, d)
  1457.     };
  1458.     T.prototype.unlisten = function (a, b, c, d) {
  1459.         var e;
  1460.         e = this.D;
  1461.         a = String(a);
  1462.         if (a in e.a) {
  1463.             var f = e.a[a];
  1464.             b = ab(f, b, c, d); - 1 < b ? (Za(f[b]), t(null != f.length), u.splice.call(f, b, 1), 0 == f.length && (delete e.a[a], e.d--), e = !0) : e = !1
  1465.         } else e = !1;
  1466.         return e
  1467.     };
  1468.     var xd = function (a, b, c, d) {
  1469.         b = a.D.a[String(b)];
  1470.         if (!b) return !0;
  1471.         b = oa(b);
  1472.         for (var e = !0, f = 0; f < b.length; ++f) {
  1473.             var h = b[f];
  1474.             if (h && !h.P && h.capture == c) {
  1475.                 var l = h.L,
  1476.                     m = h.$ || h.src;
  1477.                 h.Z && cb(a.D, h);
  1478.                 e = !1 !== l.call(m, d) && e
  1479.             }
  1480.         }
  1481.         return e && !1 != d.ma
  1482.     }, wd = function (a) {
  1483.             t(a.D, "Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")
  1484.         };
  1485.     var Ad = function (a) {
  1486.         T.call(this);
  1487.         this.d = a;
  1488.         hb(a, zd, this.o, !1, this);
  1489.         hb(a, "click", this.k, !1, this)
  1490.     };
  1491.     q(Ad, T);
  1492.     var zd = ya ? "keypress" : "keydown";
  1493.     Ad.prototype.o = function (a) {
  1494.         (13 == a.ha || za && 3 == a.ha) && Bd(this, a)
  1495.     };
  1496.     Ad.prototype.k = function (a) {
  1497.         Bd(this, a)
  1498.     };
  1499.     var Bd = function (a, b) {
  1500.         var c = new Cd(b);
  1501.         if (yd(a, c)) {
  1502.             c = new Dd(b);
  1503.             try {
  1504.                 yd(a, c)
  1505.             } finally {
  1506.                 b.ia()
  1507.             }
  1508.         }
  1509.     };
  1510.     Ad.prototype.a = function () {
  1511.         Ad.G.a.call(this);
  1512.         mb(this.d, zd, this.o, !1, this);
  1513.         mb(this.d, "click", this.k, !1, this);
  1514.         delete this.d
  1515.     };
  1516.     var Dd = function (a) {
  1517.         (a = a.I()) && this.init(a, void 0);
  1518.         this.type = "action"
  1519.     };
  1520.     q(Dd, x);
  1521.     var Cd = function (a) {
  1522.         (a = a.I()) && this.init(a, void 0);
  1523.         this.type = "beforeaction"
  1524.     };
  1525.     q(Cd, x);
  1526.     var Ed = function (a, b, c, d, e) {
  1527.         O.call(this);
  1528.         this.J = a;
  1529.         this.F = b;
  1530.         this.A = c;
  1531.         this.w = d;
  1532.         e && (this.d && this.unlisten(this.d, "action", this.k), e && (this.d = new Ad(e), a = ea(ha, this.d), this.g || (this.g = []), this.g.push(p(a, void 0)), this.k = p(this.o, this), this.listen(this.d, "action", this.k)))
  1533.     };
  1534.     q(Ed, O);
  1535.     Ed.prototype.o = function () {
  1536.         if (Fd()) window.gapi && window.gapi.load && window.gapi.load("share", p(this.s, this));
  1537.         else {
  1538.             var a = window.open("about:blank");
  1539.             a && (a.location = "https://plus.google.com")
  1540.         }
  1541.     };
  1542.     var Fd = function () {
  1543.         if (!window.gbar) return !1;
  1544.         var a = !! (window.gbar.sos && 0 < window.gbar.sos().length),
  1545.             b = !(!window.gbar.so || !window.gbar.so());
  1546.         return a || b
  1547.     };
  1548.     Ed.prototype.s = function () {
  1549.         if (window.gapi && window.gapi.share) {
  1550.             var a = {
  1551.                 items: [{
  1552.                     type: "http://schema.org/WebPage",
  1553.                     id: location.protocol + "//" + location.host,
  1554.                     properties: {
  1555.                         url: [this.J],
  1556.                         name: [this.F],
  1557.                         image: [this.w]
  1558.                     }
  1559.                 }]
  1560.             }, b = window.location.toString().match(/[?&]authuser=(\d+)/),
  1561.                 b = b && b[1],
  1562.                 c = Fd() || !! window.google.doodle.sf;
  1563.             window.gapi.share.lightbox(a, {
  1564.                 isLoggedInForGooglePlus: c,
  1565.                 onLoginPopupBlocked: function () {
  1566.                     var a = window.google.log;
  1567.                     a && a("DOODLE", "popupblocked")
  1568.                 },
  1569.                 onLoginStateChanged: p(function () {
  1570.                     ga("google.doodle.sf");
  1571.                     this.s()
  1572.                 }, this),
  1573.                 editorText: this.A,
  1574.                 sessionIndex: b || "",
  1575.                 sourceForLogging: "doodle"
  1576.             })
  1577.         }
  1578.     };
  1579.     var Gd = function (a, b, c, d) {
  1580.         this.g = a;
  1581.         this.o = b;
  1582.         this.s = c;
  1583.         this.a = a;
  1584.         this.k = d;
  1585.         a = this.g[0] - 2;
  1586.         b = this.g[1] - 2;
  1587.         d = pc(L, this.g[2]);
  1588.         c = d.width + 4;
  1589.         d = d.height + 4;
  1590.         this.i = new zb([a, b, a + c, b, a + c, b + d, a, b + d])
  1591.     };
  1592.     Gd.prototype.d = function (a) {
  1593.         L.d(this.a[2], a, this.a[0], this.a[1])
  1594.     };
  1595.     var Hd = function (a, b) {
  1596.         Nc(b, a.i, function (b) {
  1597.             switch (b) {
  1598.             case "mousedown":
  1599.                 a.a = a.o;
  1600.                 break;
  1601.             case "mouseout":
  1602.                 a.a = a.g;
  1603.                 break;
  1604.             case "mouseup":
  1605.                 a.a = a.g;
  1606.                 a.k();
  1607.                 break;
  1608.             case "mouseover":
  1609.                 a.a = a.s
  1610.             }
  1611.         })
  1612.     };
  1613.     var Id = {
  1614.         ALL: {
  1615.             ALL: ["I won candy on the #googlebirthday doodle! Score:", "High Score"]
  1616.         },
  1617.         am: {
  1618.             ALL: ["\u1260#googlebirthday doodle!  \u12f0\u1228\u1303 \u1218\u1230\u1228\u1275 \u12a5\u1294 \u12a8\u1228\u121c\u120b \u12a0\u1238\u1295\u134c\u12eb\u1208\u1201:", "\u12a8\u134d\u1270\u129b \u12f0\u1228\u1303"]
  1619.         },
  1620.         ar: {
  1621.             ALL: ["\u0644\u0642\u062f \u0641\u0632\u062a \u0628\u0627\u0644\u062d\u0644\u0648\u0649 \u0628\u0645\u0646\u0627\u0633\u0628\u0629 \u0639\u064a\u062f \u0645\u064a\u0644\u0627\u062f Google \u0645\u0646 \u062e\u0644\u0627\u0644 \u0631\u0633\u0648\u0645\u0627\u062a \u0627\u0644\u0634\u0639\u0627\u0631 \u0627\u0644\u0645\u0628\u062a\u0643\u0631\u0629 googlebirthday Doodle# !  \u0645\u062c\u0645\u0648\u0639 \u0627\u0644\u0646\u0642\u0627\u0637:",
  1622.                 "\u0623\u0639\u0644\u0649 \u0645\u062c\u0645\u0648\u0639 \u0645\u0646 \u0627\u0644\u0646\u0642\u0627\u0637"
  1623.             ]
  1624.         },
  1625.         az: {
  1626.             ALL: ["M\u0259n konfet qazand\u0131m #googlebirthday doodle il\u0259! Bal: ", "Y\u00fcks\u0259k bal"]
  1627.         },
  1628.         eu: {
  1629.             ALL: ["Irabazi gozokiak #googlebirthday doodle-arekin! Puntuazioa:", "Errekor pertsonala"]
  1630.         },
  1631.         bn: {
  1632.             ALL: ["\u0986\u09ae\u09bf #googlebirthday \u09a1\u09c1\u09a1\u09b2\u09c7 \u099f\u09ab\u09bf \u099c\u09bf\u09a4\u09c7\u099b\u09bf! \u09b8\u09cd\u0995\u09cb\u09b0:", "\u09b8\u09b0\u09cd\u09ac\u09cb\u099a\u09cd\u099a \u09b8\u09cd\u0995\u09cb\u09b0"]
  1633.         },
  1634.         bg: {
  1635.             ALL: ["\u0421\u043f\u0435\u0447\u0435\u043b\u0438\u0445 \u0431\u043e\u043d\u0431\u043e\u043d\u0438 \u043d\u0430 #googlebirthday \u0434\u0443\u0434\u044a\u043b\u0430! \u041c\u043e\u044f\u0442 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442 \u0435:", "\u041d\u0430\u0439-\u0432\u0438\u0441\u043e\u043a \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442"]
  1636.         },
  1637.         ca: {
  1638.             ALL: ["He guanyat caramels amb el doodle #googlebirthday! Puntuaci\u00f3:", "Millor puntuaci\u00f3:"]
  1639.         },
  1640.         "zh-CN": {
  1641.             ALL: ["\u6211\u73a9#googlebirthday \u6d82\u9e26\u8d62\u4e86\u7cd6\u679c\uff01\u6211\u7684\u5206\u6570\uff1a",
  1642.                 "\u6700\u9ad8\u5206\u6570"
  1643.             ]
  1644.         },
  1645.         "zh-TW": {
  1646.             ALL: ["\u6211\u5728\uff03googlebirthday \u904a\u6232\u8d0f\u5f97\u7cd6\u679c\uff01\u6211\u7684\u5206\u6578\uff1a", "\u6700\u9ad8\u5206\u6578"]
  1647.         },
  1648.         "zh-HK": {
  1649.             ALL: ["\u6211\u5728\uff03googlebirthday \u904a\u6232\u8d0f\u4e86\u7cd6\u679c\uff01\u6211\u7684\u5206\u6578\uff1a", "\u6700\u9ad8\u5206\u6578"]
  1650.         },
  1651.         hr: {
  1652.             ALL: ["Osvajam slatki\u0161e na #googlebirthday doodleu! Rezultat:", "Najbolji rezultat"]
  1653.         },
  1654.         cs: {
  1655.             ALL: ["Vyhr\u00e1v\u00e1m sladkosti za \u00fa\u010dast na doodlu #googlebirthday. Moje sk\u00f3re:",
  1656.                 "Nejvy\u0161\u0161\u00ed sk\u00f3re:"
  1657.             ]
  1658.         },
  1659.         da: {
  1660.             ALL: ["Jeg vandt slik p\u00e5 #googlebirthday-doodlen! Score:", "High Score"]
  1661.         },
  1662.         "es-419": {
  1663.             ALL: ["\u00a1Gan\u00e9 dulces con el doodle #googlebirthday ! Puntuaci\u00f3n:", "Mejor puntuaci\u00f3n"]
  1664.         },
  1665.         fr: {
  1666.             ALL: ["Devine combien de bonbons j'ai gagn\u00e9s avec le doodle #googlebirthday :", "Meilleur score"]
  1667.         },
  1668.         gl: {
  1669.             ALL: ["\u00a1Ga\u00f1ei lamboadas co doodle de #googlebirthday! Puntuaci\u00f3n:", "R\u00e9cord persoal"]
  1670.         },
  1671.         de: {
  1672.             ALL: ["Ich habe beim Doodle #googlebirthday S\u00fc\u00dfigkeiten gewonnen! Ergebnis:",
  1673.                 ""
  1674.             ],
  1675.             ch: ["Ich habe beim Doodle #googlebirthday S\u00fcssigkeiten gewonnen! Ergebnis:", ""]
  1676.         },
  1677.         el: {
  1678.             ALL: ["\u039a\u03ad\u03c1\u03b4\u03b9\u03c3\u03b1 \u03ba\u03b1\u03c1\u03b1\u03bc\u03ad\u03bb\u03b5\u03c2 \u03c3\u03c4\u03bf #googlebirthday doodle! \u03a3\u03ba\u03bf\u03c1:", "High Score"]
  1679.         },
  1680.         gu: {
  1681.             ALL: ["\u0aae\u0ac7 #googlebirthday \u0aa1\u0ac2\u0aa1\u0ab2 \u0aaa\u0ab0 \u0a9a\u0acb\u0a95\u0ab2\u0ac7\u0a9f \u0a9c\u0ac0\u0aa4\u0ac0! \u0ab8\u0acd\u0a95\u0acb\u0ab0:", "\u0a89\u0a9a\u0acd\u0a9a \u0ab8\u0acd\u0a95\u0acb\u0ab0"]
  1682.         },
  1683.         iw: {
  1684.             ALL: [" \u05d0\u05e0\u05d9 \u05d6\u05db\u05d9\u05ea\u05d9 \u05d1\u05e1\u05d5\u05db\u05e8\u05d9\u05d5\u05ea \u05d1\u05d3\u05d5\u05d3\u05dc #googlebirthday \u05e6\u05d9\u05d5\u05df:", "\u05e6\u05d9\u05d5\u05df \u05d2\u05d1\u05d5\u05d4"]
  1685.         },
  1686.         hi: {
  1687.             ALL: ["\u092e\u0948\u0928\u0947\u0902 #googlebirthday \u0921\u0942\u0921\u0932 \u092a\u0930 \u091f\u0949\u092b\u093c\u0940 \u091c\u0940\u0924\u0940! \u0938\u094d\u0915\u094b\u0930:", "\u0938\u0930\u094d\u0935\u094b\u091a\u094d\u091a \u0938\u094d\u0915\u094b\u0930"]
  1688.         },
  1689.         hu: {
  1690.             ALL: ["Nyertem egy cukork\u00e1t a #googlebirthday doodle-on! Pontsz\u00e1m:", "Legmagasabb pontsz\u00e1m"]
  1691.         },
  1692.         is: {
  1693.             ALL: ["\u00c9g vann s\u00e6lg\u00e6ti \u00ed #googlebirthday leiknum! Stig:", "Flest stig"]
  1694.         },
  1695.         id: {
  1696.             ALL: ["Saya menang permen di doodle #googlebirthday! Skor:", "Skor Tinggi"]
  1697.         },
  1698.         it: {
  1699.             ALL: ["Ho vinto dei dolcetti con il doodle #googlebirthday! Punteggio:", "Classifica"]
  1700.         },
  1701.         ja: {
  1702.             ALL: ["#googlebirthday doodle \u3092\u904a\u3093\u3067\u3001\u30ad\u30e3\u30f3\u30c7\u30a3\u3092\u52dd\u3061\u53d6\u3063\u305f\uff01 Score:",
  1703.                 "High Score"
  1704.             ]
  1705.         },
  1706.         kn: {
  1707.             ALL: ["\u0ca8\u0cbe\u0ca8\u0cc1 #googlebirthday \u0ca1\u0cc2\u0ca1\u0cb2\u0ccd\u200c\u0ca8\u0cb2\u0ccd\u0cb2\u0cbf \u0c9a\u0cbe\u0c95\u0cb2\u0cc7\u0c9f\u0ccd\u200c\u200c \u0c97\u0cc6\u0ca6\u0ccd\u0ca6\u0cbf\u0ca6\u0ccd\u0ca6\u0cc7\u0ca8\u0cc6! \u0cb8\u0ccd\u0c95\u0ccb\u0cb0\u0ccd\u200c\u200c:", "\u0c85\u0ca4\u0ccd\u0caf\u0ca7\u0cbf\u0c95 \u0cb8\u0ccd\u0c95\u0ccb\u0cb0\u0ccd\u200c\u200c"]
  1708.         },
  1709.         ms: {
  1710.             ALL: ["Saya menang gula-gula dengan lukisan #googlebirthday! Markah:", "Markah Tertinggi:"]
  1711.         },
  1712.         ml: {
  1713.             ALL: ["#googlebirthday \u0d21\u0d42\u0d21\u0d3f\u0d32\u0d3f\u0d7d \u0d1e\u0d3e\u0d7b \u0d12\u0d30\u0d41 \u0d1a\u0d4b\u0d15\u0d4d\u0d32\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d28\u0d47\u0d1f\u0d3f! \u0d38\u0d4d\u0d15\u0d4b\u0d7c:", "\u0d09\u0d2f\u0d7c\u0d28\u0d4d\u0d28 \u0d38\u0d4d\u0d15\u0d4b\u0d7c"]
  1714.         },
  1715.         mr: {
  1716.             ALL: ["\u092e\u0940 #googlebirthday \u0921\u0942\u0921\u0932 \u0935\u0930 \u091f\u0949\u092b\u0940 \u091c\u093f\u0902\u0915\u0932\u094b! \u0938\u094d\u0915\u094b\u0905\u0930:", "\u0938\u0930\u094d\u0935\u094b\u091a\u094d\u091a \u0938\u094d\u0915\u094b\u0905\u0930"]
  1717.         },
  1718.         no: {
  1719.             ALL: ["Jeg vant godteri p\u00e5 #googlebirthday-doodlen! Resultat:", "Beste resultat"]
  1720.         },
  1721.         pl: {
  1722.             ALL: ["Zgarniam s\u0142odko\u015bci graj\u0105c w doodla #googlebirthday! M\u00f3j wynik:", "Najlepszy wynik"]
  1723.         },
  1724.         "pt-BR": {
  1725.             ALL: ["Eu ganhei doces no #Anivers\u00e1rioDoGoogle! Pontua\u00e7\u00e3o:", "Pontua\u00e7\u00e3o M\u00e1xima"]
  1726.         },
  1727.         "pt-PT": {
  1728.             ALL: ["Eu ganhei doces no doodle de #Anivers\u00e1rioDaGoogle! Pontua\u00e7\u00e3o:", "Pontua\u00e7\u00e3o M\u00e1xima"]
  1729.         },
  1730.         ro: {
  1731.             ALL: ["Am c\u00e2\u015ftigat bomboane pe doodle-ul #googlebirthday! Punctaj:",
  1732.                 "Punctaj maxim"
  1733.             ]
  1734.         },
  1735.         ru: {
  1736.             ALL: ["\u041c\u043d\u0435 \u0434\u0430\u043b\u0438 \u043a\u043e\u043d\u0444\u0435\u0442\u0443 \u043d\u0430 \u0434\u0443\u0434\u043b\u0435 #googlebirthday! \u0421\u0447\u0435\u0442:", "\u0420\u0435\u043a\u043e\u0440\u0434"]
  1737.         },
  1738.         sr: {
  1739.             ALL: ["\u041e\u0441\u0432\u0430\u0458\u0430\u043c \u0441\u043b\u0430\u0442\u043a\u0438\u0448\u0435 \u043d\u0430 #googlebirthday \u0434\u0443\u0434\u043b\u0443! \u0420\u0435\u0437\u0443\u043b\u0442\u0430\u0442:", "\u041d\u0430\u0458\u0431\u043e\u0459\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442"]
  1740.         },
  1741.         sk: {
  1742.             ALL: ["Vyhr\u00e1vam sladkosti za \u00fa\u010das\u0165 na doodlu #googlebirthday! Moje sk\u00f3re:", "Najvy\u0161\u0161ie sk\u00f3re"]
  1743.         },
  1744.         sl: {
  1745.             ALL: ["Dobil sem sladko nagrado na doodlu #googlebirthday! Moja ocena:", "Najbolj\u0161a ocena"]
  1746.         },
  1747.         es: {
  1748.             ALL: ["He ganado caramelos con el doodle de #googlebirthday! Puntuaci\u00f3n: ", "R\u00e9cord personal"]
  1749.         },
  1750.         sv: {
  1751.             ALL: ["Jag vann godis fr\u00e5n #googlebirthday-doodlen! Po\u00e4ng:", "B\u00e4sta resultat"]
  1752.         },
  1753.         ta: {
  1754.             ALL: ["#googlebirthday \u0b9f\u0bc2\u0b9f\u0bc1\u0bb3\u0bcd \u0b85\u0ba9\u0bcd\u0bb1\u0bc1 \u0ba8\u0bbe\u0ba9\u0bcd \u0b95\u0bc7\u0ba3\u0bcd\u0b9f\u0bbf \u0bb5\u0bc6\u0ba9\u0bcd\u0bb1\u0bc7\u0ba9\u0bcd! \u0bae\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc6\u0ba3\u0bcd:",
  1755.                 "\u0b85\u0ba4\u0bbf\u0b95 \u0bae\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc6\u0ba3\u0bcd"
  1756.             ]
  1757.         },
  1758.         te: {
  1759.             ALL: ["\u0c28\u0c47\u0c28\u0c41 #googlebirthday \u0c21\u0c42\u0c21\u0c32\u0c4d\u200c\u0c2a\u0c48 \u0c1a\u0c3e\u0c15\u0c4d\u0c32\u0c46\u0c1f\u0c4d \u0c17\u0c46\u0c32\u0c41\u0c2a\u0c4a\u0c02\u0c26\u0c3e\u0c28\u0c41! \u0c38\u0c4d\u0c15\u0c4b\u0c30\u0c4d:", "\u0c05\u0c24\u0c4d\u0c2f\u0c27\u0c3f\u0c15 \u0c38\u0c4d\u0c15\u0c4b\u0c30\u0c4d"]
  1760.         },
  1761.         tr: {
  1762.             ALL: ["#googlebirthday doodle'undan \u015feker kazand\u0131m! Puan:", "Y\u00fcksek Puan"]
  1763.         },
  1764.         uk: {
  1765.             ALL: ["\u041c\u0435\u043d\u0456 \u0434\u0430\u043b\u0438 \u0446\u0443\u043a\u0435\u0440\u043a\u0443 \u043d\u0430 \u0434\u0443\u0434\u043b\u0456 #googlebirthday! \u0420\u0430\u0445\u0443\u043d\u043e\u043a:", "\u041d\u0430\u0439\u0431\u0456\u043b\u044c\u0448\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442"]
  1766.         },
  1767.         zu: {
  1768.             ALL: ["Ngiwine amaswidi ku-doodle #googlebirthday! Isikolo:", "Isikolo esiphezulu"]
  1769.         }
  1770.     }, Jd = Id.ALL.ALL;
  1771.     var Kd, Ld, Md, Nd = function () {
  1772.             var a;
  1773.             i: {
  1774.                 a = google.kHL || "ALL";
  1775.                 if (Id[a]) {
  1776.                     a = Id[a];
  1777.                     var b = google.doodle && google.doodle.tld;
  1778.                     a[b] || (b = "ALL");
  1779.                     if (a[b] && a[b][0]) {
  1780.                         a = a[b][0];
  1781.                         break i
  1782.                     }
  1783.                 }
  1784.                 a = Jd[0]
  1785.             }(new Ed(window.location.protocol + "//" + window.location.host + "/?doodle=9019609X" + Q, window.google.doodle.alt, a + " " + Q, "https://www.google.com/logos/2013/bday13/share_" + ((25 > Q ? 0 : 100 > Q ? 1 : 180 > Q ? 2 : 3) + 1) + ".png")).o()
  1786.         }, Od = [uc.a.qb, uc.a.rb, uc.a.tb, uc.a.ub];
  1787.     var Pd = !1,
  1788.         Qd = 0,
  1789.         Rd = 0,
  1790.         Sd = 0,
  1791.         Td = 0,
  1792.         Ud = 0,
  1793.         Vd = function () {
  1794.             Pd = !Pd
  1795.         };
  1796.     var U = function (a, b, c, d, e, f) {
  1797.         this.B = a;
  1798.         this.S = b;
  1799.         a = pc(K, b[2]);
  1800.         this.X = [a.width / 2, a.height / 2];
  1801.         this.F = c;
  1802.         this.s = d;
  1803.         this.J = e;
  1804.         this.v = f || null;
  1805.         this.A = 500 * Math.random();
  1806.         this.o = 0;
  1807.         this.w = 1E3 * (1 + 2 * Math.random());
  1808.         this.a = [0, 0];
  1809.         this.g = this.d = 0
  1810.     }, Wd = function (a, b, c) {
  1811.             a.A += c;
  1812.             a.a[0] += a.g * c;
  1813.             if (0 < a.g && a.a[0] > a.d || 0 > a.g && a.a[0] < a.d) a.g = 0, a.a[0] = a.d;
  1814.             var d = Math.sin(a.A / 100) + 0.5;
  1815.             a.a[1] = -d * cd;
  1816.             K.d(a.S[2], b, a.S[0] + a.X[0] + a.a[0], a.S[1] + a.X[1], 1 - d / 10, !0);
  1817.             0 < a.o && a.s ? (a.o -= c, K.d(a.s[2], b, a.s[0] + a.a[0], a.s[1] + a.a[1])) : (a.w -= c, 0 > a.w && (a.o =
  1818.                 150, a.w = 1E3 * (1 + 2 * Math.random())), K.d(a.F[2], b, a.F[0] + a.a[0], a.F[1] + a.a[1]), K.d(a.J[2], b, a.J[0] + a.a[0], a.J[1] + a.a[1]));
  1819.             K.d(a.B[2], b, a.B[0] + a.a[0], a.B[1] + a.a[1]);
  1820.             a.v && K.d(a.v[2], b, a.v[0] + a.a[0], a.v[1] + a.a[1])
  1821.         };
  1822.     var Xd = function () {
  1823.         U.call(this, [565, 94, K.a.cb], [575, 148, K.a.fb], [587, 99, K.a.hb], [587, 99, K.a.gb], [590, 101, K.a.eb], null)
  1824.     };
  1825.     q(Xd, U);
  1826.     Xd.prototype.k = function () {
  1827.         this.d = 150;
  1828.         this.g = 0.4
  1829.     };
  1830.     Xd.prototype.i = function () {
  1831.         this.d = 0;
  1832.         this.g = -0.4
  1833.     };
  1834.     var Yd = function () {
  1835.         U.call(this, [42, 53, K.a.Ya], [53, 145, K.a.bb], [79, 101, K.a.$a], [79, 101, K.a.Za], [84, 103, K.a.ab], null)
  1836.     };
  1837.     q(Yd, U);
  1838.     Yd.prototype.k = function () {
  1839.         this.d = -220;
  1840.         this.g = -0.4
  1841.     };
  1842.     Yd.prototype.i = function () {
  1843.         this.d = 0;
  1844.         this.g = 0.4
  1845.     };
  1846.     var Zd = function () {
  1847.         U.call(this, [524, 50, K.a.ib], [522, 154, K.a.mb], [539, 108, K.a.jb], null, [540, 115, K.a.lb], [541, 135, K.a.kb])
  1848.     };
  1849.     q(Zd, U);
  1850.     Zd.prototype.k = function () {
  1851.         this.d = 150;
  1852.         this.g = 0.4
  1853.     };
  1854.     Zd.prototype.i = function () {
  1855.         this.d = 0;
  1856.         this.g = -0.4
  1857.     };
  1858.     var $d = function () {
  1859.         U.call(this, [135, 91, K.a.Sa], [139, 144, K.a.Xa], [154, 98, K.a.Ua], [154, 98, K.a.Ta], [163, 101, K.a.Wa], [165, 115, K.a.Va])
  1860.     };
  1861.     q($d, U);
  1862.     $d.prototype.k = function () {
  1863.         this.d = -220;
  1864.         this.g = -0.4
  1865.     };
  1866.     $d.prototype.i = function () {
  1867.         this.d = 0;
  1868.         this.g = 0.4
  1869.     };
  1870.     var ae, be, ce, de;
  1871.     var ee = K.getHeight(K.a.ga),
  1872.         fe = !1,
  1873.         ge = !1,
  1874.         he = !0,
  1875.         ie = 0,
  1876.         ke = K.getWidth(K.a.ga) / 2,
  1877.         W = 3 * -Math.PI / 4,
  1878.         X = 0,
  1879.         le = 0,
  1880.         me = [],
  1881.         Y = 0,
  1882.         ne = 0,
  1883.         oe = 0,
  1884.         pe = 0,
  1885.         qe = K.a.fa,
  1886.         se = function () {
  1887.             bd = 10;
  1888.             for (var a = 0; 10 > a; ++a) me[a] = 0;
  1889.             fe = !1;
  1890.             W = 3 * -Math.PI / 4;
  1891.             oe = ne = Y = pe = le = X = 0;
  1892.             he = !0;
  1893.             ie = 0;
  1894.             qe = K.a.fa;
  1895.             re()
  1896.         }, re = function () {
  1897.             0 < bd && (le = 0, X = 0.003, fe = !1)
  1898.         };
  1899.     var Z = 0,
  1900.         te = 0,
  1901.         ue = !0,
  1902.         ve = 0,
  1903.         we = [
  1904.             [72, -9, K.a.nb],
  1905.             [73, -7, K.a.ob],
  1906.             [71, -9, K.a.pb]
  1907.         ],
  1908.         xe = we.length,
  1909.         ye = [
  1910.             [K.a.Fb],
  1911.             [K.a.Gb],
  1912.             [K.a.Hb],
  1913.             [K.a.Ib],
  1914.             [K.a.Jb],
  1915.             [K.a.Kb],
  1916.             [K.a.Lb]
  1917.         ],
  1918.         ze = ye.length,
  1919.         Ae = Math.floor(ze + 60);
  1920.     var Be = null,
  1921.         Ce = null,
  1922.         $ = null,
  1923.         De = null,
  1924.         Ee = !0,
  1925.         Fe = !1,
  1926.         Ge = 0,
  1927.         He = 0,
  1928.         Ie = new lc("/logos/2013/bday13/background.jpg"),
  1929.         Ke = function () {
  1930.             var a = J = new Kc(Ce, De);
  1931.             if (N) {
  1932.                 var b = pc(K, K.a.ka),
  1933.                     c = b.width + 6,
  1934.                     b = b.height + 6;
  1935.                 Nc(a, new zb([612, 174, 612 + c, 174, 612 + c, 174 + b, 612, 174 + b]), Cc)
  1936.             }
  1937.             Nc(J, Lc, Je);
  1938.             a = p(J.handleEvent, J);
  1939.             I.listen(Be, ["mousedown", "touchstart"], a);
  1940.             I.listen(window, ["mousemove", "mouseup", "touchend", "touchmove"], a)
  1941.         }, Je = function (a) {
  1942.             switch (a) {
  1943.             case "mousedown":
  1944.                 Le();
  1945.                 break;
  1946.             case "mouseup":
  1947.                 Me()
  1948.             }
  1949.         }, Ne = function () {
  1950.             for (var a = document.getElementsByTagName("input"),
  1951.                     b = 0, c; c = a[b++];)
  1952.                 if ("q" == c.name && c.value.match(/[^ ]/)) return !0;
  1953.             return !1
  1954.         }, Le = function (a) {
  1955.             if (a && a.I) {
  1956.                 a = a.I();
  1957.                 var b = a.keyCode;
  1958.                 if (b) {
  1959.                     if (32 != b || Ne()) return;
  1960.                     a.preventDefault && a.preventDefault()
  1961.                 }
  1962.             }
  1963.             Uc = !0;
  1964.             De && Hc(De);
  1965.             switch (P) {
  1966.             case 2:
  1967.                 0 < bd && 0 == Y && (W > -Math.PI / 8 && 0 <= X && (bd--, Dc(yc), le = -8E-5, X = 0, fe = !0), 0 == bd && (Ge = window.setTimeout(function () {
  1968.                     $c(3);
  1969.                     var a = J;
  1970.                     Hd(Kd, a);
  1971.                     Hd(Ld, a);
  1972.                     window.gapi && !Yb && Hd(Md, a);
  1973.                     Qc(J, Lc);
  1974.                     Ec();
  1975.                     Dc(Bc)
  1976.                 }, 1E3)))
  1977.             }
  1978.         }, Me = function (a) {
  1979.             if (!(a && a.I && a.I().keyCode && 32 != a.I().keyCode)) switch (Uc = !1, P) {
  1980.             case 0:
  1981.                 ue &&
  1982.                     (ue = !1, te = 0.25, Fc()), qc(L), qc(uc)
  1983.             }
  1984.         }, Oe = function () {
  1985.             ud();
  1986.             qd();
  1987.             se();
  1988.             var a = J;
  1989.             Qc(a, Kd.i);
  1990.             Qc(a, Ld.i);
  1991.             window.gapi && !Yb && Qc(a, Md.i);
  1992.             Nc(J, Lc, Je);
  1993.             Fc();
  1994.             $c(2)
  1995.         }, Pe = function () {
  1996.             if (Ee) Fe = !1;
  1997.             else {
  1998.                 Fe = !0;
  1999.                 var a = fa(),
  2000.                     b = a - He;
  2001.                 He = a;
  2002.                 b = Math.min(b, 100);
  2003.                 $.clearRect(0, 0, Ce.width, Ce.height);
  2004.                 var a = b,
  2005.                     c = $;
  2006.                 Wd(ae, c, a);
  2007.                 Wd(be, c, a);
  2008.                 Wd(ce, c, a);
  2009.                 Wd(de, c, a);
  2010.                 for (var c = b, a = $, d = rd, e = d.length, f = 0; f < e; f += 8) d[f + 1] < d[f + 7] ? (d[f + 3] += 0.02 * c, d[f + 2] *= 0.999, d[f + 4] += Math.PI / 3 * d[f + 5], d[f + 0] += d[f + 2], d[f + 1] += d[f + 3]) : 3 < d[f + 3] && (d[f + 1] = d[f + 7] - 1, d[f + 3] *= -0.5,
  2011.                     d[f + 2] *= 0.5, d[f + 5] *= Math.random() - 0.5), a.save(), a.translate(d[f + 0], d[f + 1]), a.rotate(d[f + 4]), K.d(d[f + 6], a, 0, 0, 1, !0), a.restore();
  2012.                 0 < td && (sd -= c, 0 >= sd && (sd = 50, td--, c = [208 * Math.sin(-R) + 350, 208 * Math.cos(-R) + -117], d = 1E3 * S, e = Math.PI + R, rd.push(c[0], c[1], d * Math.cos(e), d * Math.sin(e), 0, Math.random() - 0.5, vd[Math.floor(Math.random() * vd.length)], 180 + 30 * (Math.random() - 0.5)), ad++));
  2013.                 a.fillStyle = "#3d6aa3";
  2014.                 a.font = "bold 20px arial";
  2015.                 a.fillText("" + ad, 72, 19);
  2016.                 Vc = Math.max(Vc, ad);
  2017.                 K.d(K.a.Aa, a, 8, 32);
  2018.                 a.fillStyle = "#eee";
  2019.                 a.font =
  2020.                     "12px arial";
  2021.                 a.fillText("" + Vc, 84, 41);
  2022.                 a = $;
  2023.                 N && (c = K.a.ka, d = [615, 177], e = vc ? K.a.Ba : K.a.Ca, f = vc ? [620, 185] : [620, 183], wc && (d[1] += 3, f[1] += 3), K.d(c, a, d[0], d[1]), K.d(e, a, f[0], f[1]));
  2024.                 a = b;
  2025.                 c = $;
  2026.                 pe += a;
  2027.                 if (ge)
  2028.                     for (d = 0; 10 > d; ++d) 1 > me[d] && (0 == d || 1 == me[d - 1]) && (me[d] = Math.min(me[d] + 0.007 * a, 1)), d < bd && (c.save(), c.globalAlpha = me[d], K.d(K.a.Da, c, 642 - 20 * d, 10, me[d], !0), c.restore());
  2029.                 X += le * a;
  2030.                 W += X * a;
  2031.                 0 > le && W < 3 * -Math.PI / 4 && (W = 3 * -Math.PI / 4, X = le = 0, qe = fe ? K.a.wa : K.a.fa, re());
  2032.                 0 < X && W > Math.PI / 4 && (W = Math.PI / 4);
  2033.                 Y += ne * a;
  2034.                 if (0 < ne && Y > oe || 0 > ne &&
  2035.                     Y < oe) ne = 0, Y = oe;
  2036.                 c.save();
  2037.                 c.translate(Y, 0);
  2038.                 d = W;
  2039.                 ge || (d = Math.sin(pe / 300), ie -= a, 0 > ie && (ie = (he = !he) ? 150 : 1E3 * (2 + 2 * Math.random())));
  2040.                 K.d(K.a.xa, c, 464 + 1.5 * d, 206);
  2041.                 c.save();
  2042.                 c.translate(474, 218);
  2043.                 c.rotate((d + Math.PI / 4) / 20);
  2044.                 K.d(ge ? K.a.va : K.a.ya, c, -26, -108);
  2045.                 ge ? K.d(qe, c, -14, -80) : he && K.d(K.a.za, c, -12, -102);
  2046.                 c.restore();
  2047.                 ge && (c.save(), c.translate(474, 138), c.rotate(W), K.d(K.a.ga, c, -ke, -ee - 30), c.restore());
  2048.                 c.restore();
  2049.                 c = b;
  2050.                 a = $;
  2051.                 S += -1E-5 * Math.sin(R) * c;
  2052.                 S -= 1E-4 * S * c;
  2053.                 R += S * c;
  2054.                 R = Math.max(-Math.PI / 2, Math.min(Math.PI / 2, R));
  2055.                 a.save();
  2056.                 jd = Math.min(0, jd + kd * c);
  2057.                 a.translate(350, -117 + jd);
  2058.                 a.rotate(R);
  2059.                 a.beginPath();
  2060.                 a.moveTo(0, 0);
  2061.                 a.lineTo(0, 140);
  2062.                 a.lineWidth = 2;
  2063.                 a.strokeStyle = "#eeeeee";
  2064.                 a.stroke();
  2065.                 K.d(ld[nd], a, -dd, 140);
  2066.                 c = 2 * nd;
  2067.                 c > ed.length && (c = ed.length - 2);
  2068.                 for (d = 0; d < fd.length; d++) {
  2069.                     a.strokeStyle = fd[d];
  2070.                     e = gd[d];
  2071.                     a.beginPath();
  2072.                     for (f = c; f < ed.length; f += 2) {
  2073.                         var h = ed[f] + hd[d],
  2074.                             l = ed[f + 1],
  2075.                             m = 6E3 * S + id[d];
  2076.                         a.moveTo(h, l);
  2077.                         a.bezierCurveTo(h, l + 0.3 * e, h + 0.25 * m, l + 0.7 * e, h + m, l + e)
  2078.                     }
  2079.                     a.stroke()
  2080.                 }
  2081.                 a.restore();
  2082.                 cd = Math.max(3, cd * (1 - 1E-4 * b));
  2083.                 K.d(K.a.Ia, $, 0, 200);
  2084.                 switch (P) {
  2085.                 case 0:
  2086.                 case 1:
  2087.                     a =
  2088.                         $;
  2089.                     ve += b;
  2090.                     K.d(K.a.qa, a, 217, Z);
  2091.                     c = Uc ? 51 : 49;
  2092.                     d = Uc ? 48 : 44;
  2093.                     K.d(K.a.ra, a, 217 + c, Z + d);
  2094.                     e = Math.floor(ve / 50 % Ae);
  2095.                     e < ze && K.d(ye[e], a, 217 + c, Z + d);
  2096.                     ue && (c = we[Math.floor(ve / 100 % xe)], K.d(c[2], a, 217 + c[0], Z + c[1]));
  2097.                     Z += te * b;
  2098.                     224 < Z && (te = 0, Z = 224, Dc(xc), ae.k(), be.k(), ce.k(), de.k(), oe = 220, ne = 0.5);
  2099.                     b = ae;
  2100.                     0 != b.d && b.d == b.a[0] && (kd = 0.25);
  2101.                     0 == jd && (Dc(xc), ae.i(), be.i(), ce.i(), de.i(), ge = !0, oe = 0, ne = -0.5, $c(2));
  2102.                     break;
  2103.                 case 2:
  2104.                     a = $;
  2105.                     0 >= Rd || (d = K.a, c = Pd ? d.Ga : d.Ha, Yb && (c = Pd ? d.Ea : d.Fa), d = K.getWidth(c), Td = Math.min(30 + d, Math.max(0, Td + b * Ud)), Rd = Math.min(1,
  2106.                         Math.max(0, Rd + b * Sd)), a.save(), a.globalAlpha = Rd, K.d(c, a, -d + Td, 50), a.restore());
  2107.                     a = [208 * Math.sin(-R) + 350, 208 * Math.cos(-R) + -117];
  2108.                     c = [Math.cos(W - Math.PI / 2) * ee + 474, Math.sin(W - Math.PI / 2) * ee + 138];
  2109.                     b = a[0] - c[0];
  2110.                     a = a[1] - c[1];
  2111.                     if (80 > Math.sqrt(b * b + a * a) && fe) i: {
  2112.                         for (Sd = -0.002, Ud = -0.5, window.clearInterval(Qd), cd = Math.min(10, cd + 5), S = Math.abs(S) + Math.abs(X / 10), fe = !1, b = Math.max(0, 1E3 * S - 1), b = Math.floor(b * b), Dc(19 > b ? zc : Ac), td += b, Q += b, b = 0; b < pd; b++)
  2113.                             if (Q < od[b]) {
  2114.                                 nd = b;
  2115.                                 break i
  2116.                             }
  2117.                         nd = md - 1
  2118.                     }
  2119.                     break;
  2120.                 case 3:
  2121.                     b = $, uc.d(Od[25 > Q ? 0 : 100 > Q ? 1 : 180 >
  2122.                         Q ? 2 : 3], b, 331, 116, 1, !0), Kd.d(b), window.gapi && !Yb && Md.d(b), Ld.d(b), b.fillStyle = "#fff", b.font = "bold 28px arial", b.fillText("" + Q, 543, 104)
  2123.                 }
  2124.                 dc(Pe)
  2125.             }
  2126.         };
  2127.     (function (a, b, c) {
  2128.         var d = function () {
  2129.             a();
  2130.             window.lol && window.lol()
  2131.         }, e = function () {
  2132.                 Sc(d, b, c);
  2133.                 Rc(d, b);
  2134.                 d()
  2135.             };
  2136.         google && google.x ? google.x({
  2137.             id: "DOODLE"
  2138.         }, e) : e()
  2139.     })(function () {
  2140.             Be = document.getElementById("hplogo");
  2141.             Ce = document.getElementById("hplogoc");
  2142.             Be && Ce && Ce.getContext && ($ = Ce.getContext("2d")) && ($.a = !0, Fe = Ee = !1, Ge = 0, Kd = new Gd([546, 141, L.a.Ja], [547, 145, L.a.Ka], [546, 141, L.a.La], Oe), Ld = new Gd([495, 141, L.a.Ma], [496, 145, L.a.Na], [495, 141, L.a.Oa], bc), Md = new Gd([444, 141, L.a.Pa], [444, 145, L.a.Qa], [444, 141, L.a.Ra], Nd), $c(0),
  2143.                 Wc(window.location.href), window.parent && window.parent.location && Wc(window.parent.location.href), ud(), qd(), se(), jd = -200, ge = !1, N && (M = new vb(["music-3"], "/logos/2013/bday13"), H = new ec("/logos/2013/bday13/sprite", void 0, 4)), ae = new Yd, be = new $d, ce = new Zd, de = new Xd, Z = 64, te = 0, ue = !0, ve = 0, Sd = 0.002, Ud = 0.5, Rd = 0.001, Qd = window.setInterval(Vd, 500), I = new O, I.listen(window, ["keydown"], Le), I.listen(window, ["keyup"], Me), He = fa(), mc(Ie), qc(K, function () {
  2144.                     nc(Ie, function () {
  2145.                         De = new Jc(6E4, function () {
  2146.                             Ee = !0;
  2147.                             Ec()
  2148.                         }, function () {
  2149.                             Ee = !1;
  2150.                             if (2 == P && N && M) {
  2151.                                 var a = M,
  2152.                                     b = a.d["music-3"];
  2153.                                 b && b.loaded && wb(a, "music-3", b.currentTime);
  2154.                                 b && (b.loop = !0)
  2155.                             }
  2156.                             Fe || (He = fa(), Pe())
  2157.                         });
  2158.                         Be.style.background = "url(/logos/2013/bday13/background.jpg) no-repeat";
  2159.                         Ke();
  2160.                         Pe()
  2161.                     })
  2162.                 }))
  2163.         }, function () {
  2164.             Ee = !0;
  2165.             window.clearInterval(Qd);
  2166.             if (N && M) {
  2167.                 var a = M,
  2168.                     b;
  2169.                 for (b in a.d) {
  2170.                     var c = xb(a, b);
  2171.                     c && c.loaded && (c.currentTime = 0)
  2172.                 }
  2173.             }
  2174.             N && H && fc(H);
  2175.             N && M && M.M();
  2176.             N && H && H.M();
  2177.             window.clearTimeout(Ge);
  2178.             I && I.M();
  2179.             De && De.M()
  2180.         });
  2181. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement