Advertisement
Guest User

ignore this. its not useful, or is it? the search continues.

a guest
Jan 22nd, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function B(t, e) {
  2.     return Math.random() * (e - t) + t
  3. }
  4. function C(t, e, n, i) {
  5.     var s = t - n
  6.       , o = e - i
  7.     return Math.sqrt(Math.pow(s, 2) + Math.pow(o, 2))
  8. }
  9. function D(t, e, n, i) {
  10.     for (this.x = t,
  11.     this.y = e,
  12.     this.sx = t,
  13.     this.sy = e,
  14.     this.tx = n,
  15.     this.ty = i,
  16.     this.distanceToTarget = C(t, e, n, i),
  17.     this.distanceTraveled = 0,
  18.     this.coordinates = [],
  19.     this.coordinateCount = 3; this.coordinateCount--; )
  20.         this.coordinates.push([this.x, this.y])
  21.     this.angle = Math.atan2(i - e, n - t),
  22.     this.speed = 2,
  23.     this.acceleration = 1.05,
  24.     this.brightness = B(50, 70),
  25.     this.targetRadius = 1
  26. }
  27. function E(t, e, n, i) {
  28.     for (this.x = t,
  29.     this.y = e,
  30.     this.sx = t,
  31.     this.sy = e,
  32.     this.tx = n,
  33.     this.ty = i,
  34.     this.distanceToTarget = C(t, e, n, i),
  35.     this.distanceTraveled = 0,
  36.     this.coordinates = [],
  37.     this.coordinateCount = 3; this.coordinateCount--; )
  38.         this.coordinates.push([this.x, this.y])
  39.     this.angle = Math.atan2(i - e, n - t),
  40.     this.speed = 1,
  41.     this.acceleration = 1.05,
  42.     this.brightness = B(50, 70),
  43.     this.targetRadius = 1
  44. }
  45. function F(t, e) {
  46.     for (this.x = t,
  47.     this.y = e,
  48.     this.coordinates = [],
  49.     this.coordinateCount = 5; this.coordinateCount--; )
  50.         this.coordinates.push([this.x, this.y])
  51.     this.angle = B(0, 2 * Math.PI),
  52.     this.speed = B(1, 10),
  53.     this.friction = .95,
  54.     this.gravity = 1,
  55.     this.hue = B(hue - 20, hue + 20),
  56.     this.brightness = B(50, 80),
  57.     this.alpha = 1,
  58.     this.decay = B(.015, .03)
  59. }
  60. function G(t, e, n, i, s, o, a) {
  61.     for (this.x = t,
  62.     this.y = e,
  63.     this.coordinates = [],
  64.     this.coordinateCount = 5; this.coordinateCount--; )
  65.         this.coordinates.push([this.x, this.y])
  66.     this.angle = n,
  67.     this.speed = i,
  68.     this.friction = .95,
  69.     this.gravity = 1,
  70.     this.hue = B(s - 5, s + 5),
  71.     this.brightness = B(o, a),
  72.     this.alpha = 1,
  73.     this.decay = B(.005, .01)
  74. }
  75. function H(t, e) {
  76.     for (var n = 30; n--; )
  77.         particles.push(new F(t,e))
  78. }
  79. function I(t, e) {
  80.     for (var n = [[0, 10, 60], [Math.PI / 6, 10, 60], [Math.PI / 3, 10, 60], [Math.PI / 2, 10, 60], [2 * Math.PI / 3, 10, 60], [5 * Math.PI / 6, 10, 60], [Math.PI, 10, 60], [7 * Math.PI / 6, 10, 60], [4 * Math.PI / 3, 10, 60], [3 * Math.PI / 2, 10, 60], [5 * Math.PI / 3, 10, 60], [11 * Math.PI / 6, 10, 60]], i = [[.682317, 6.18466, 30], [1.5708, 4.4, 30], [2.45928, 6.18466, 30], [1.84537, 7.37631, 30], [1.29622, 7.37631, 30]], s = [[-.537108, 5.17929, 0], [-.851966, 5.31507, 0], [-1.11695, 4.5618, 0], [-1.20474, 3.21286, 0], [-.785398, 2.12132, 0], [0, 2.4, 0], [.397874, 3.74233, 0], [.114877, 5.2345, 0], [-.0660801, 6.81487, 0], [-.217293, 7.88543, 0], [-.378142, 7.85493, 0], [-.515549, 6.89638, 0], [-2.60448, 5.17929, 0], [-2.62604, 6.89638, 0], [-2.76345, 7.85493, 0], [-2.9243, 7.88543, 0], [-3.07551, 6.81487, 0], [3.02672, 5.2345, 0], [2.74372, 3.74233, 0], [3.14159, 2.4, 0], [-2.35619, 2.12132, 0], [-1.93685, 3.21286, 0], [-2.02464, 4.5618, 0], [-2.28963, 5.31507, 0]], o = 0, a = 0; a < n.length; a++)
  81.         customParticles.push(new G(t,e,n[a][0] + o,n[a][1],n[a][2],50,80))
  82.     for (var a = 0; a < i.length; a++)
  83.         customParticles.push(new G(t,e,i[a][0] + o,i[a][1],i[a][2],20,40))
  84.     for (var a = 0; a < s.length; a++)
  85.         customParticles.push(new G(t,e,s[a][0] + o,s[a][1],s[a][2],50,80))
  86. }
  87. function J() {
  88.     requestId = A(J),
  89.     hue += .5,
  90.     ctx.globalCompositeOperation = "destination-out",
  91.     ctx.fillStyle = "rgba(0, 0, 0, 0.5)",
  92.     ctx.fillRect(0, 0, cw, ch),
  93.     ctx.globalCompositeOperation = "lighter"
  94.     for (var t = fireworks.length; t--; )
  95.         fireworks[t].draw(),
  96.         fireworks[t].update(t)
  97.     for (var t = particles.length; t--; )
  98.         particles[t].draw(),
  99.         particles[t].update(t)
  100.     timerTick >= timerTotal ? mousedown || (fireworks.push(new D(cw / 2,ch,B(0, cw),B(0, ch / 2))),
  101.     timerTick = 0) : timerTick++
  102. }
  103. function K() {
  104.     requestId1 = A(K),
  105.     hue += 2,
  106.     ctx.globalCompositeOperation = "destination-out",
  107.     ctx.fillStyle = "rgba(0, 0, 0, 0.5)",
  108.     ctx.fillRect(0, 0, cw, ch),
  109.     ctx.globalCompositeOperation = "lighter"
  110.     for (var t = fireworks.length; t--; )
  111.         fireworks[t].draw(),
  112.         fireworks[t].update(t)
  113.     for (var t = particles.length; t--; )
  114.         particles[t].draw(),
  115.         particles[t].update(t)
  116.     fireworks.push(new D(cw / 2,ch,B(0, cw),B(0, ch / 2)))
  117. }
  118. function L() {
  119.     requestId2 = A(L),
  120.     ctx.globalCompositeOperation = "destination-out",
  121.     ctx.fillStyle = "rgba(0, 0, 0, 0.5)",
  122.     ctx.fillRect(0, 0, cw, ch),
  123.     ctx.globalCompositeOperation = "lighter"
  124.     for (var t = customFireworks.length; t--; )
  125.         customFireworks[t].draw(),
  126.         customFireworks[t].update(t)
  127.     for (var t = customParticles.length; t--; )
  128.         customParticles[t].draw(),
  129.         customParticles[t].update(t)
  130.     customTimerTick >= customTimerTotal ? mousedown || (customFireworks.push(new E(cw / 2,ch,B(0, cw),B(0, ch / 2))),
  131.     customTimerTick = 0) : customTimerTick++
  132. }
  133. function M() {
  134.     requestId2 = A(M),
  135.     ctx.globalCompositeOperation = "destination-out",
  136.     ctx.fillStyle = "rgba(0, 0, 0, 0.5)",
  137.     ctx.fillRect(0, 0, cw, ch),
  138.     ctx.globalCompositeOperation = "lighter"
  139.     for (var t = customFireworks.length; t--; )
  140.         customFireworks[t].draw(),
  141.         customFireworks[t].update(t)
  142.     for (var t = customParticles.length; t--; )
  143.         customParticles[t].draw(),
  144.         customParticles[t].update(t)
  145.     customTimer2Tick >= customTimer2Total ? mousedown || (customFireworks.push(new E(cw / 2,ch,B(0, cw),B(0, ch / 2))),
  146.     customTimer2Tick = 0) : customTimer2Tick++
  147. }
  148. function N(t, e) {
  149.     t.style.opacity = 0,
  150.     t.style.display = "block"
  151.     var n = +new Date
  152.       , i = function() {
  153.         t.style.opacity = +t.style.opacity + (new Date - n) / e,
  154.         n = +new Date,
  155.         +t.style.opacity < 1 && (window.requestAnimationFrame && requestAnimationFrame(i) || setTimeout(i, 16))
  156.     }
  157.     i()
  158. }
  159. function O(t, e) {
  160.     t.style.opacity = 1
  161.     var n = +new Date
  162.       , i = function() {
  163.         t.style.opacity = +t.style.opacity - (new Date - n) / e,
  164.         n = +new Date,
  165.         t.style.opacity > 0 && (window.requestAnimationFrame && requestAnimationFrame(i) || setTimeout(i, 16))
  166.     }
  167.     i()
  168. }
  169. function P(t, e, n, i, s, o, a, r, l) {
  170.     messageDisplay && subCount < t - 10 && (clearTimeout(showID),
  171.     clearTimeout(happyID),
  172.     messageDisplay = !1,
  173.     setTimeout(function() {
  174.         setTimeout(function() {
  175.             _("imageLink").style.display = "none",
  176.             _("channelThumbnail").style.display = "none",
  177.             _("subscribeButton").style.display = "none"
  178.         }, 1e3),
  179.         _("happyMarquee").style.width = "90%",
  180.         _("happyMarquee").style.fontSize = "2.5vw",
  181.         _("happyMarquee").style.color = "#f00",
  182.         _("happyMarquee").innerHTML = 'You may submit a message for Colleen <a id="messageLink" target="_blank" href="https://livecounts.net/form/colleenform.php">here</a>. Your message will be displayed on Livecounts when she hits 1M.',
  183.         N(happyMarquee, 1e3),
  184.         setTimeout(function() {
  185.             O(happyMarquee, 2e3),
  186.             setTimeout(function() {
  187.                 _("happyMarquee").style.display = "none",
  188.                 _("imageLink").style.display = "",
  189.                 _("channelThumbnail").style.display = "",
  190.                 JJ(imageLink, 1e3),
  191.                 JJ(channelThumbnail, 1e3),
  192.                 N(subscribeButton, 1e3)
  193.             }, 2e3)
  194.         }, 1e4)
  195.     }, 2e3)),
  196.     subCount >= t + n ? passed3M1c || void 0 !== requestId && V() : subCount >= t && !passed3M ? U(i, "https://livecounts.net/form/messages" + s + ".txt") : (_("updateText").style.fontSize = "3vw",
  197.     1 == l ? (d = new Date,
  198.     hour = d.getUTCHours() - 6 + d.getUTCMinutes() / 60,
  199.     lower = T(parseInt(subCount, 10), hour, o / 24 * r, t) - 1,
  200.     upper = T(parseInt(subCount, 10), hour, o / 24 * a, t),
  201.     _("updateText").innerHTML = "Estimated time to reach " + e + ": <b>" + (lower <= 0 ? "< " : lower + "&ndash;") + upper + (1 == upper ? " hour" : " hours") + "</b>") : (hour = (t - subCount) / o,
  202.     lower = Math.floor(hour * a),
  203.     upper = Math.ceil(hour * r),
  204.     _("updateText").innerHTML = "Estimated time to reach " + e + ": <b>" + (lower <= 0 ? "< " : lower + "&ndash;") + upper + (1 == upper ? " day" : " days") + "</b>"))
  205. }
  206. function Q(t) {
  207.     var e = t.toString(16)
  208.     return 1 == e.length ? "0" + e : e
  209. }
  210. function R(t, e, n) {
  211.     return "#" + Q(t) + Q(e) + Q(n)
  212. }
  213. function S(t, e) {
  214.     var n = t * Math.PI / 12
  215.     return (31 * Math.sin(n + 3.1) - 8.2 * Math.sin(2 * n - .5)) * ((e + 23) / 80) + e
  216. }
  217. function T(t, e, n, i) {
  218.     for (var s = 0; i > t; )
  219.         t += S(++e, n),
  220.         s++
  221.     return s
  222. }
  223. function U(t, e) {
  224.     showBtn = !1,
  225.     K(),
  226.     setTimeout(function() {
  227.         window.cancelAnimationFrame(requestId1)
  228.     }, 5e3),
  229.     J(),
  230.     "Colleen" == t && setTimeout(function() {
  231.         L()
  232.     }, 7e3),
  233.     "Ballinger family" == t && (_("congratsText").style.fontSize = "5vw"),
  234.     document.body.style.backgroundColor = "#700",
  235.     O(_("title"), 2e3),
  236.     O(_("byline"), 2e3),
  237.     O(_("imageLink"), 2e3),
  238.     O(_("channelThumbnail"), 2e3),
  239.     O(_("subscribeButton"), 2e3),
  240.     O(_("smallText"), 2e3),
  241.     O(_("channelSubs2"), 2e3),
  242.     O(_("footerBar"), 2e3),
  243.     O(_("updateText"), 2e3),
  244.     _("congratsText").innerHTML = "<b>Congratulations, " + t + "!</b>",
  245.     N(_("congratsText"), 2e3),
  246.     _("nameLink").style.color = _("channelSubs").style.color = "white",
  247.     _("container").style.width = "97%",
  248.     passed3M = !0,
  249.     setTimeout(function() {
  250.         Y(e)
  251.     }, 3e3)
  252. }
  253. function V() {
  254.     var t = _("canvas")
  255.       , e = t.getContext("2d")
  256.     window.cancelAnimationFrame(requestId),
  257.     window.cancelAnimationFrame(requestId2),
  258.     e.clearRect(0, 0, t.width, t.height),
  259.     OO(),
  260.     _("updateText").style.fontSize = "3vw",
  261.     _("updateText").innerHTML = "<i>updated every " + upInt + " seconds</i>",
  262.     _("imageLink").style.display = "",
  263.     _("channelThumbnail").style.display = "",
  264.     JJ(imageLink, 2e3),
  265.     JJ(channelThumbnail, 2e3),
  266.     N(_("title"), 2e3),
  267.     N(_("byline"), 2e3),
  268.     N(_("subscribeButton"), 2e3),
  269.     N(_("smallText"), 2e3),
  270.     N(_("footerBar"), 2e3),
  271.     N(_("channelSubs2"), 2e3),
  272.     N(_("updateText"), 2e3),
  273.     O(_("congratsText"), 2e3),
  274.     O(_("messageText"), 2e3),
  275.     clearInterval(changeId),
  276.     _("nameLink").style.color = _("channelSubs").style.color = "black",
  277.     _("container").style.width = "40%",
  278.     passed3M = !0,
  279.     passed3M1c = !0
  280. }
  281. function X(t) {
  282.     for (var e, n, i, s = t.length / 2; s; )
  283.         i = Math.floor(Math.random() * s--),
  284.         e = t[2 * s],
  285.         n = t[2 * s + 1],
  286.         t[2 * s] = t[2 * i],
  287.         t[2 * s + 1] = t[2 * i + 1],
  288.         t[2 * i] = e,
  289.         t[2 * i + 1] = n
  290.     return t
  291. }
  292. function Y(t) {
  293.     var e, n, i, s, o = [], a = new XMLHttpRequest
  294.     a.open("GET", t, !0),
  295.     a.onload = function() {
  296.         function r() {
  297.             e = o[u % o.length],
  298.             s = window.innerWidth / window.innerHeight,
  299.             n = e.length + 200 * s - 550,
  300.             i = n > 0 ? 3 - n / 150 : 3,
  301.             s > 1.6 ? _("messageText").style.top = 70 * (s - 1.6) - 28 + "px" : _("messageText").style.top = "-28px",
  302.             _("messageText").style.fontSize = i + "vw",
  303.             _("messageText").innerHTML = e + "<br>" + o[(u + 1) % o.length],
  304.             N(_("messageText"), 500),
  305.             u += 2,
  306.             u == o.length && ZZ(function(e) {
  307.                 e ? YY(t) : console.log("No new messages")
  308.             })
  309.         }
  310.         if (a.status >= 200 && a.status < 400) {
  311.             s = window.innerWidth / window.innerHeight,
  312.             s > 1.6 && (_("messageText").style.top = 70 * (s - 1.6) - 28 + "px")
  313.             var l = a.responseText
  314.             o = l.split("\n"),
  315.             o = X(o),
  316.             _("messageText").innerHTML = "<b>A few words from us...</b>",
  317.             N(_("messageText"), 500)
  318.             var u = 0
  319.             changeId = setInterval(function() {
  320.                 O(_("messageText"), 500),
  321.                 setTimeout(r, 500)
  322.             }, 7e3)
  323.         }
  324.     }
  325.     ,
  326.     a.send()
  327. }
  328. function Z(t) {
  329.     var e = t.length < 24 ? "forUsername" : "id"
  330.     url1 = "https://www.googleapis.com/youtube/v3/channels?part=statistics&" + e + "=" + t + "&fields=items/statistics/subscriberCount&key=" + keys[whichone]
  331.     var n = new XMLHttpRequest
  332.     n.open("GET", url1, !0),
  333.     n.onload = function() {
  334.         if (n.status >= 400)
  335.             if (27 == GG()) {
  336.                 var e = Math.floor(3 * Math.random())
  337.                 alert("API quota exceeded. You will be redirected to another sub counter."),
  338.                 window.location = altCounters[e] + channel + altExt[e]
  339.             } else {
  340.                 keysUsed > 16 && (_("updateText").innerHTML = "<i>updated every " + upInt + " seconds</i>",
  341.                 clearInterval(upId1),
  342.                 upId1 = setInterval(function() {
  343.                     Z(t)
  344.                 }, 1e3 * upInt)),
  345.                 ++whichone,
  346.                 whichone %= 27
  347.                 var i = t.length < 24 ? "forUsername" : "id"
  348.                 n.open("GET", "https://www.googleapis.com/youtube/v3/channels?part=statistics&" + i + "=" + t + "&fields=items/statistics/subscriberCount&key=" + keys[whichone], !0),
  349.                 n.send()
  350.             }
  351.         if (n.status >= 200 && n.status < 400) {
  352.             var i = JSON.parse(n.responseText)
  353.             if (subCount = i.items[0].statistics.subscriberCount,
  354.             subCount = parseInt(subCount, 10),
  355.             settings.soundEnabled && (subCount > oldCount ? upAudio.play() : subCount < oldCount && downAudio.play()),
  356.             0 == subCount ? subCount = oldCount : oldCount = subCount,
  357.             2 == settings.smallCountMode) {
  358.                 var s = TT(subCount)
  359.                 _("smallText").innerHTML = "subscribers to " + UU(s),
  360.                 _("channelSubs2").innerHTML = s - subCount
  361.             }
  362.             if (_("channelSubs").innerHTML = subCount,
  363.             "UCrbSjN1_5U7hqFKRA0nvFXQ" == t && P(1e6, "1M", 2e3, "Colleen", 82, 1100, 2 / 3, 4 / 3, 1),
  364.             "UCo0w4w1XJZBXDT6l4EXZJAw" == t) {
  365.                 var o = settings.nightEnabled ? 0 : 128
  366.                   , a = Math.floor(128 * Math.random() + o)
  367.                   , r = Math.floor(128 * Math.random() + o)
  368.                   , e = Math.floor(128 * Math.random() + o)
  369.                 document.body.style.backgroundColor = R(a, r, e),
  370.                 _("updateText").style.fontSize = "3vw",
  371.                 _("updateText").innerHTML = "Estimated time to reach 1M: <b>Never</b>"
  372.             }
  373.         }
  374.     }
  375.     ,
  376.     n.send()
  377. }
  378. function AA(t) {
  379.     var e = t.length < 24 ? "user" : "channel"
  380.     url2 = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20%3D%20%22https%3A%2F%2Fwww.youtube.com%2F" + e + "%2F" + t + "%2Fabout%22%20and%20xpath%3D%22%2F%2Fspan%5B%40aria-label%20and%20%40title%5D%2Ftext()%22&format=json"
  381.     var n = new XMLHttpRequest
  382.     n.open("GET", url2, !0),
  383.     n.onload = function() {
  384.         if (n.status >= 200 && n.status < 400) {
  385.             var t = JSON.parse(n.responseText)
  386.             subCount2 = t.query.results,
  387.             null != subCount2 ? (subCount2 = subCount2.replace(/\,/g, ""),
  388.             subCount2 = parseInt(subCount2, 10)) : subCount2 = 0,
  389.             _("channelSubs2").innerHTML = subCount2
  390.         }
  391.     }
  392.     ,
  393.     n.send()
  394. }
  395. function W() {
  396.     if (advancedSearch.checked)
  397.         document.onkeypress = null,
  398.         _("searchBox").style.display = "flex",
  399.         _("searchText").select()
  400.     else {
  401.         var t = window.prompt("Enter channel name, username, ID, or URL:", "")
  402.         null != t && "" != t && (home = !1,
  403.         entry = !1,
  404.         EE(t),
  405.         window.history.pushState("", "", "/channel/" + t))
  406.     }
  407. }
  408. function BB() {
  409.     var t = window.prompt("Channel not found. Try entering the channel's URL.", "")
  410.     null != t && "" != t ? (EE(t),
  411.     window.history.pushState("", "", "/channel/" + t)) : (home = !0,
  412.     II(),
  413.     window.history.pushState("", "", "/"))
  414. }
  415. function CC(t, e, n) {
  416.     OO(),
  417.     SS(e, "pageview", entry),
  418.     window.clearInterval(upId1),
  419.     window.clearInterval(upId2),
  420.     _("updateText").innerHTML = "<i>updated every " + upInt + " seconds</i>",
  421.     home ? ga("send", "pageview", {
  422.         page: "/",
  423.         title: "Live Subscriber Count - Livecounts"
  424.     }) : (document.title = n + " (" + e + ") Live Subscriber Count - Livecounts",
  425.     ga("send", "pageview", {
  426.         page: "/channel/" + t,
  427.         title: n + " (" + e + ") Live Subscriber Count - Livecounts"
  428.     })),
  429.     chnamestr = e.length < 24 ? "user" : "channel",
  430.     channelURL = "https://www.youtube.com/" + chnamestr + "/" + e,
  431.     _("channelLink").href = channelURL,
  432.     _("imageLink").href = channelURL,
  433.     _("subscribeForm").action = channelURL,
  434.     _("subscribeButton").onclick = function() {
  435.         HH(n, e)
  436.     }
  437.     ,
  438.     Z(e),
  439.     smallCountFunction(e),
  440.     upId1 = setInterval(function() {
  441.         Z(e)
  442.     }, 2e3),
  443.     upId2 = setInterval(function() {
  444.         smallCountFunction(e)
  445.     }, 3e4)
  446. }
  447. function DD(t, e) {
  448.     channeltext = channel = /"?([^"]*)"?/.exec(e)[1],
  449.     chnamestr = channel.length < 24 ? "forUsername" : "id"
  450.     var n = new XMLHttpRequest
  451.     n.open("GET", "https://www.googleapis.com/youtube/v3/channels?part=snippet&" + chnamestr + "=" + channel + "&fields=items/snippet&key=AIzaSyBfaDKs6ky44Jza3InfqYiDiFnhaQrFCl0", !0),
  452.     n.onload = function() {
  453.         if (n.status >= 200 && n.status < 400) {
  454.             var e = JSON.parse(n.responseText)
  455.             null == e.items[0] ? BB() : (title = e.items[0].snippet.title,
  456.             "" != title ? _("nameLink").innerHTML = "id" == chnamestr ? title : channeltext : channel = "",
  457.             imgURL = e.items[0].snippet.thumbnails["default"].url,
  458.             _("channelThumbnail").src = imgURL,
  459.             _("channelThumbnail").alt = title,
  460.             KK(title),
  461.             CC(t, channel, title))
  462.         }
  463.     }
  464.     ,
  465.     n.send()
  466. }
  467. function EE(t) {
  468.     var e = t.trim()
  469.     "rezah" == e.toLowerCase() ? e = "rezahgaming" : "ladyjay31" == e.toLowerCase() ? e = "UC2UYOjrz7NWZxw8s7a9hOig" : "kinghusker" == e.toLowerCase() || "king husker" == e.toLowerCase() || "the king husker" == e.toLowerCase() ? e = "thekinghusker" : "csgoskingiveaway" == e.toLowerCase() && (e = "UCyzg-cjfzcV_JdyG43qr7dA"),
  470.     home ? (hasDescription && (_("container").style.display = "none",
  471.     _("description").style.display = "block"),
  472.     setTimeout(function() {
  473.         home && (N(container, 2e3),
  474.         O(description, 2e3),
  475.         setTimeout(function() {
  476.             _("description").style.display = "none"
  477.         }, 2e3))
  478.     }, 2e4)) : (_("description").style.display = "none",
  479.     _("container").style.display = "block"),
  480.     position = e.indexOf("youtube.com/"),
  481.     -1 !== position ? (c = e.substring(position + 12),
  482.     c1 = c.split(/\/|\?/),
  483.     c1 = c1[1],
  484.     "user/" == c.substring(0, 5) || "channel/" == c.substring(0, 8) ? channel = '"' + c1 + '"' : "c/" == c.substring(0, 2) ? channel = "'" + c1 + "'" : channel = c) : channel = e
  485.     var n = new XMLHttpRequest
  486.     "'" == channel.charAt(0) && "'" == channel.charAt(channel.length - 1) ? (channeltext = channel = channel.slice(1, -1),
  487.     n.open("GET", "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20%3D%20%22https://www.youtube.com/c/" + channel + "%22%20and%20xpath%3D%22%2F%2Fmeta%5B%40itemprop%3D'channelId'%5D%22&format=json", !0),
  488.     n.onload = function() {
  489.         if (n.status >= 200 && n.status < 400) {
  490.             var t = JSON.parse(n.responseText)
  491.             null != t.query.results ? (channel = '"' + t.query.results.meta[0].content + '"',
  492.             DD(e, channel)) : BB()
  493.         }
  494.     }
  495.     ,
  496.     n.send()) : channel.match(/^UC[A-Za-z0-9\-\_]{22}$/) || '"' == channel.charAt(0) && '"' == channel.charAt(channel.length - 1) ? DD(e, channel) : (n.open("GET", "https://www.googleapis.com/youtube/v3/search?part=snippet&q=" + channel + "&type=channel&fields=items/snippet&key=" + channelKeys[whichone2], !0),
  497.     n.onload = function() {
  498.         if (n.status >= 400)
  499.             if (5 == ++channelKeysUsed) {
  500.                 var t = Math.floor(3 * Math.random())
  501.                 alert("API quota exceeded. You will be redirected to another sub counter."),
  502.                 window.location = altCounters[t] + channel + altExt[t]
  503.             } else
  504.                 ++whichone2,
  505.                 whichone2 %= 5,
  506.                 n.open("GET", "https://www.googleapis.com/youtube/v3/search?part=snippet&q=" + channel + "&type=channel&fields=items/snippet&key=" + channelKeys[whichone2], !0),
  507.                 n.send()
  508.         if (n.status >= 200 && n.status < 400) {
  509.             var t = JSON.parse(n.responseText)
  510.             null == t.items[0] ? BB() : (channel = t.items[0].snippet.channelId,
  511.             title = t.items[0].snippet.title,
  512.             _("nameLink").innerHTML = title,
  513.             imgURL = t.items[0].snippet.thumbnails["default"].url,
  514.             _("channelThumbnail").src = imgURL,
  515.             _("channelThumbnail").alt = title,
  516.             KK(title),
  517.             CC(e, channel, title))
  518.         }
  519.     }
  520.     ,
  521.     n.send())
  522. }
  523. function FF() {
  524.     var t = decodeURIComponent((RegExp("[?|&]channel=([^&;]+?)(&|#|;|$)").exec(location.search) || [, ""])[1].replace(/\+/g, "%20")) || null
  525.     null == t ? t = (/\/channel\/(.*)/.exec(window.location) || [, ""])[1] : window.history.replaceState("", "", "/channel/" + t),
  526.     "" == t ? (home = !0,
  527.     II(),
  528.     window.history.replaceState("", "", "/")) : (home = !1,
  529.     EE(t))
  530. }
  531. function GG() {
  532.     return keysUsed++,
  533.     keysUsed > 16 && (upInt = 5),
  534.     keysUsed > 23 && (upInt = 10),
  535.     keysUsed
  536. }
  537. function HH(t, e) {
  538.     alert("If you subscribe, please stay active!"),
  539.     ga("send", {
  540.         hitType: "event",
  541.         eventCategory: "Buttons",
  542.         eventAction: "Subscribe",
  543.         eventLabel: t + " (" + e + ") ",
  544.         nonInteraction: !0
  545.     }),
  546.     SS(e, "click", entry)
  547. }
  548. function II() {
  549.     var t = ""
  550.       , e = new Date
  551.       , n = "https://livecounts.net/featured/" + (e.getUTCMonth() + 1) + "-" + e.getUTCDate() + "-" + e.getUTCFullYear() % 100
  552.       , i = new XMLHttpRequest
  553.     !function(e, n) {
  554.         i.open("GET", n + t + ".txt", !0),
  555.         i.onload = function() {
  556.             if (i.status >= 200 && i.status < 400) {
  557.                 var s = i.responseText
  558.                   , o = s.indexOf("\n")
  559.                   , a = s.slice(0, o)
  560.                   , r = s.slice(o + 1)
  561.                 "" == r && (hasDescription = !1),
  562.                 _("description").innerHTML = r,
  563.                 EE(a)
  564.             } else
  565.                 404 == i.status && "" == t ? (t = e.getUTCHours() >= 14 ? "-14" : "-0",
  566.                 i.open("GET", n + t + ".txt", !0),
  567.                 i.send()) : EE("PsychoSoprano")
  568.         }
  569.         ,
  570.         i.send()
  571.     }(e, n)
  572. }
  573. function JJ(t, e) {
  574.     t.style.opacity = 0
  575.     var n = +new Date
  576.       , i = function() {
  577.         t.style.opacity = +t.style.opacity + (new Date - n) / e,
  578.         n = +new Date,
  579.         +t.style.opacity < 1 && (window.requestAnimationFrame && requestAnimationFrame(i) || setTimeout(i, 16))
  580.     }
  581.     i()
  582. }
  583. function KK(t) {
  584.     if ("undefined" != typeof shareButton) {
  585.         _("shareButton").innerHTML = ""
  586.         var e = document.createElement("a")
  587.         e.setAttribute("href", "https://twitter.com/LivecountsSite"),
  588.         e.setAttribute("class", "twitter-follow-button"),
  589.         e.setAttribute("data-show-count", "false"),
  590.         e.innerHTML = "Follow @LivecountsSite",
  591.         _("shareButton").appendChild(e)
  592.         var n = document.createElement("a")
  593.         n.setAttribute("href", "https://twitter.com/share"),
  594.         n.setAttribute("class", "twitter-share-button"),
  595.         n.setAttribute("data-text", "View " + t + "'s live subscriber count on Livecounts!"),
  596.         _("shareButton").appendChild(n),
  597.         "undefined" == typeof twttr ? !function(t, e, n) {
  598.             var i, s = t.getElementsByTagName(e)[0], o = /^http:/.test(t.location) ? "http" : "https"
  599.             t.getElementById(n) || (i = t.createElement(e),
  600.             i.id = n,
  601.             i.src = o + "://platform.twitter.com/widgets.js",
  602.             s.parentNode.insertBefore(i, s))
  603.         }(document, "script", "twitter-wjs") : twttr.widgets.load()
  604.     }
  605. }
  606. function LL(t) {
  607.     switch (t.charCode) {
  608.     case 110:
  609.         AB()
  610.         break
  611.     case 115:
  612.         AC()
  613.         break
  614.     case 99:
  615.         RR(QQ),
  616.         _("smallText").innerHTML = "comments for the channel",
  617.         MM("Comment count selected")
  618.         break
  619.     case 118:
  620.         AF()
  621.         break
  622.     case 121:
  623.         AD()
  624.         break
  625.     case 109:
  626.         AE()
  627.     }
  628. }
  629. function MM(t) {
  630.     _("message").innerHTML = t,
  631.     _("messageBox").style.display = "table",
  632.     clearTimeout(messageID),
  633.     messageID = setTimeout(function() {
  634.         _("messageBox").style.display = "none"
  635.     }, 1500)
  636. }
  637. function NN(t, e) {
  638.     _(t).style.color = e
  639. }
  640. function OO() {
  641.     settings.nightEnabled ? (document.body.style.backgroundColor = "#34393f",
  642.     AJ("#fff", "#08f")) : (document.body.style.backgroundColor = settings.backgroundColor,
  643.     AJ(settings.textColor, settings.descriptionColor))
  644. }
  645. function PP(t) {
  646.     var e = t.length < 24 ? "forUsername" : "id"
  647.     url2 = "https://www.googleapis.com/youtube/v3/channels?part=statistics&" + e + "=" + t + "&fields=items/statistics/viewCount&key=" + keys[whichone]
  648.     var n = new XMLHttpRequest
  649.     n.open("GET", url2, !0),
  650.     n.onload = function() {
  651.         if (n.status >= 400)
  652.             if (27 == GG()) {
  653.                 var e = Math.floor(3 * Math.random())
  654.                 alert("API quota exceeded. You will be redirected to another sub counter."),
  655.                 window.location = altCounters[e] + channel + altExt[e]
  656.             } else {
  657.                 ++whichone,
  658.                 whichone %= 27
  659.                 var i = t.length < 24 ? "forUsername" : "id"
  660.                 n.open("GET", "https://www.googleapis.com/youtube/v3/channels?part=statistics&" + i + "=" + t + "&fields=items/statistics/viewCount&key=" + keys[whichone], !0),
  661.                 n.send()
  662.             }
  663.         if (n.status >= 200 && n.status < 400) {
  664.             var i = JSON.parse(n.responseText)
  665.             viewCount = i.items[0].statistics.viewCount,
  666.             _("channelSubs2").innerHTML = viewCount
  667.         }
  668.     }
  669.     ,
  670.     n.send()
  671. }
  672. function QQ(t) {
  673.     var e = t.length < 24 ? "forUsername" : "id"
  674.     url2 = "https://www.googleapis.com/youtube/v3/channels?part=statistics&" + e + "=" + t + "&fields=items/statistics/commentCount&key=" + keys[whichone]
  675.     var n = new XMLHttpRequest
  676.     n.open("GET", url2, !0),
  677.     n.onload = function() {
  678.         if (n.status >= 400)
  679.             if (27 == GG()) {
  680.                 var e = Math.floor(3 * Math.random())
  681.                 alert("API quota exceeded. You will be redirected to another sub counter."),
  682.                 window.location = altCounters[e] + channel + altExt[e]
  683.             } else {
  684.                 ++whichone,
  685.                 whichone %= 27
  686.                 var i = t.length < 24 ? "forUsername" : "id"
  687.                 n.open("GET", "https://www.googleapis.com/youtube/v3/channels?part=statistics&" + i + "=" + t + "&fields=items/statistics/commentCount&key=" + keys[whichone], !0),
  688.                 n.send()
  689.             }
  690.         if (n.status >= 200 && n.status < 400) {
  691.             var i = JSON.parse(n.responseText)
  692.             commentCount = i.items[0].statistics.commentCount,
  693.             _("channelSubs2").innerHTML = commentCount
  694.         }
  695.     }
  696.     ,
  697.     n.send()
  698. }
  699. function RR(t) {
  700.     smallCountFunction = t,
  701.     window.clearInterval(upId2),
  702.     t(channel),
  703.     upId2 = setInterval(function() {
  704.         t(channel)
  705.     }, 3e4)
  706. }
  707. function SS(t, e, n) {
  708.     var i = document.location
  709.       , s = document.referrer
  710.       , o = n ? 1 : 0
  711.       , a = +new Date
  712.       , r = document.createElement("img")
  713.     r.src = "https://analytics.livecounts.net/count?t=" + e + "&c=" + t + "&l=" + i + "&r=" + s + "&e=" + o + "&z=" + a
  714. }
  715. function TT(t) {
  716.     if (10 > t)
  717.         return 10
  718.     var e = "" + t
  719.     return e.length > 6 ? 1e6 * (Math.floor(t / 1e6) + 1) : (parseInt(e.charAt(0)) + 1) * Math.pow(10, e.length - 1)
  720. }
  721. function UU(t) {
  722.     return ("" + t).replace(/\B(?=(\d{3})+(?!\d))/g, ",")
  723. }
  724. function VV() {
  725.     var t = _("searchText").value
  726.     if ("" != t) {
  727.         var e = new XMLHttpRequest
  728.         e.open("GET", "https://www.googleapis.com/youtube/v3/search?part=snippet&q=" + t + "&type=channel&fields=items/snippet&maxResults=20&key=" + channelKeys[whichone2], !0),
  729.         e.onload = function() {
  730.             if (e.status >= 200 && e.status < 400) {
  731.                 var t = JSON.parse(e.responseText)
  732.                 _("searchResults").innerHTML = ""
  733.                 for (var n = 0; n < t.items.length; n++) {
  734.                     var i = document.createElement("li")
  735.                       , s = document.createElement("img")
  736.                       , o = t.items[n].snippet
  737.                     i.setAttribute("class", "searchResult"),
  738.                     i.setAttribute("onclick", "WW('" + o.channelId + "')"),
  739.                     s.setAttribute("class", "searchThumbnail"),
  740.                     s.setAttribute("src", o.thumbnails["default"].url),
  741.                     s.setAttribute("alt", o.channelTitle),
  742.                     s.setAttribute("width", 44),
  743.                     s.setAttribute("height", 44),
  744.                     i.appendChild(s),
  745.                     i.appendChild(document.createTextNode(o.channelTitle)),
  746.                     _("searchResults").appendChild(i)
  747.                 }
  748.                 if (0 == t.items.length) {
  749.                     var i = document.createElement("li")
  750.                     i.setAttribute("class", "searchResult"),
  751.                     i.style.color = "red",
  752.                     i.appendChild(document.createTextNode("Channel not found")),
  753.                     _("searchResults").appendChild(i)
  754.                 }
  755.             }
  756.         }
  757.         ,
  758.         e.onerror = function() {}
  759.         ,
  760.         e.send()
  761.     }
  762. }
  763. function WW(t) {
  764.     _("searchBox").style.display = "none",
  765.     YY(),
  766.     home = !1,
  767.     entry = !1,
  768.     EE(t),
  769.     window.history.pushState("", "", "/channel/" + t),
  770.     document.onkeypress = LL
  771. }
  772. function XX() {
  773.     null === _("menuContent").offsetParent ? _("menuContent").style.display = "block" : YY()
  774. }
  775. function YY() {
  776.     _("menuContent").style.display = "none"
  777. }
  778. function ZZ(t) {
  779.     var e = new XMLHttpRequest
  780.     e.open("GET", "https://livecounts.net/form/update.txt", !0),
  781.     e.onload = function() {
  782.         if (e.status >= 200 && e.status < 400) {
  783.             var n = JSON.parse(e.responseText)
  784.             1 == n && t(!0)
  785.         } else
  786.             t(!1)
  787.     }
  788.     ,
  789.     e.onerror = function() {
  790.         t(!1)
  791.     }
  792.     ,
  793.     e.send()
  794. }
  795. function AB() {
  796.     _("nightMode").checked = settings.nightEnabled = !settings.nightEnabled,
  797.     settings.nightEnabled ? _("bgColorOverlay").style.display = "block" : _("bgColorOverlay").style.display = "none",
  798.     OO(),
  799.     localStorage.setItem("settings", JSON.stringify(settings)),
  800.     MM(settings.nightEnabled ? "Night mode ON" : "Night mode OFF")
  801. }
  802. function AC() {
  803.     (void 0 === upAudio || void 0 === downAudio) && (upAudio = new Audio("https://livecounts.net/pingUp.mp3"),
  804.     downAudio = new Audio("https://livecounts.net/pingDown.mp3")),
  805.     _("sound").checked = settings.soundEnabled = !settings.soundEnabled,
  806.     localStorage.setItem("settings", JSON.stringify(settings)),
  807.     MM(settings.soundEnabled ? "Sound ON" : "Sound OFF")
  808. }
  809. function AD() {
  810.     settings.smallCountMode = 1,
  811.     RR(AA),
  812.     _("smallText").innerHTML = "count displayed on YouTube",
  813.     localStorage.setItem("settings", JSON.stringify(settings)),
  814.     MM("Subscriber count on YouTube selected")
  815. }
  816. function AE() {
  817.     settings.smallCountMode = 2,
  818.     RR(function() {}),
  819.     localStorage.setItem("settings", JSON.stringify(settings)),
  820.     MM("Subscribers to milestone selected")
  821. }
  822. function AF() {
  823.     settings.smallCountMode = 3,
  824.     RR(PP),
  825.     _("smallText").innerHTML = "total video views",
  826.     localStorage.setItem("settings", JSON.stringify(settings)),
  827.     MM("View count selected")
  828. }
  829. function AG() {
  830.     document.body.style.backgroundColor = _("bgColorBox").style.backgroundColor = settings.backgroundColor = _("bgColorInput").value,
  831.     AI(settings.backgroundColor),
  832.     YY(),
  833.     localStorage.setItem("settings", JSON.stringify(settings))
  834. }
  835. function AH(t) {
  836.     t = t.slice(-6)
  837.     var e = parseInt(t, 16)
  838.       , n = (e >> 16 & 255) / 255
  839.       , i = (e >> 8 & 255) / 255
  840.       , s = (255 & e) / 255
  841.     return .03928 >= n ? n /= 12.92 : n = Math.pow((n + .055) / 1.055, 2.4),
  842.     .03928 >= i ? i /= 12.92 : i = Math.pow((i + .055) / 1.055, 2.4),
  843.     .03928 >= s ? s /= 12.92 : s = Math.pow((s + .055) / 1.055, 2.4),
  844.     .2126 * n + .7152 * i + .0722 * s
  845. }
  846. function AI(t) {
  847.     var e = AH(t)
  848.       , n = 1.05 / (e + .05)
  849.       , i = 20 * (e + .05)
  850.       , s = (e + .05) / .1222
  851.       , o = (e + .05) / .2983
  852.     1 > s && (s = 1 / s),
  853.     1 > o && (o = 1 / o),
  854.     n >= i ? (AJ("#fff", "#08f"),
  855.     settings.textColor = "#fff",
  856.     settings.descriptionColor = "#08f") : (AJ("#000", "#00f"),
  857.     settings.textColor = "#000",
  858.     settings.descriptionColor = "#00f"),
  859.     4.5 > s && 4.5 > o && (NN("description", settings.textColor),
  860.     settings.descriptionColor = settings.textColor)
  861. }
  862. function AJ(t, e) {
  863.     NN("title", t),
  864.     NN("byline", t),
  865.     NN("happyMarquee", t),
  866.     NN("nameLink", t),
  867.     NN("channelSubs", t),
  868.     NN("channelSubs2", t),
  869.     NN("smallText", t),
  870.     NN("nameLink", t),
  871.     NN("description", e),
  872.     NN("updateText", t)
  873. }
  874. function AK(t) {
  875.     if (!settings.nightEnabled)
  876.         if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) {
  877.             var e = window.prompt("Enter an RGB color (e.g., #0000ff):", _("bgColorInput").value)
  878.             null !== e && (_("bgColorInput").value = e,
  879.             AG())
  880.         } else
  881.             _("bgColorInput").click()
  882. }
  883. function AL() {
  884.     _("advancedSearch").checked = settings.advancedEnabled,
  885.     _("nightMode").checked = settings.nightEnabled,
  886.     _("sound").checked = settings.soundEnabled,
  887.     !settings.soundEnabled || void 0 !== upAudio && void 0 !== downAudio || (upAudio = new Audio("https://livecounts.net/pingUp.mp3"),
  888.     downAudio = new Audio("https://livecounts.net/pingDown.mp3")),
  889.     1 == settings.smallCountMode ? (_("countOnYouTube").checked = !0,
  890.     smallCountFunction = AA,
  891.     _("smallText").innerHTML = "count displayed on YouTube") : 2 == settings.smallCountMode ? (_("milestone").checked = !0,
  892.     smallCountFunction = function() {}
  893.     ) : (_("viewCount").checked = !0,
  894.     smallCountFunction = PP,
  895.     _("smallText").innerHTML = "total video views"),
  896.     settings.nightEnabled ? _("bgColorOverlay").style.display = "block" : _("bgColorOverlay").style.display = "none",
  897.     _("bgColorBox").style.backgroundColor = _("bgColorInput").value = settings.backgroundColor,
  898.     AG(),
  899.     OO()
  900. }
  901. function AM() {
  902.     AN(),
  903.     AL(),
  904.     YY(),
  905.     MM("Settings reset to default")
  906. }
  907. function AN() {
  908.     settings = {
  909.         advancedEnabled: !1,
  910.         soundEnabled: !1,
  911.         nightEnabled: !1,
  912.         smallCountMode: 1,
  913.         backgroundColor: "#d0e4fe",
  914.         textColor: "#000",
  915.         descriptionColor: "#00f"
  916.     },
  917.     localStorage.setItem("settings", JSON.stringify(settings))
  918. }
  919. function AO() {
  920.     _("advancedSearch").checked ? settings.advancedEnabled = !0 : settings.advancedEnabled = !1,
  921.     localStorage.setItem("settings", JSON.stringify(settings))
  922. }
  923. function _(t) {
  924.     var e = document.getElementById(t)
  925.     return null === e ? document.getElementById("nothing") : e
  926. }
  927. if ("object" == typeof localStorage)
  928.     try {
  929.         localStorage.setItem("localStorage", 1),
  930.         localStorage.removeItem("localStorage")
  931.     } catch (e) {
  932.         Storage.prototype._setItem = Storage.prototype.setItem,
  933.         Storage.prototype.setItem = function() {}
  934.     }
  935. var messageDisplay = !0
  936.   , passed3M = !1
  937.   , passed3M1c = !1
  938. window.A = function() {
  939.     return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(t) {
  940.         window.setTimeout(t, 1e3 / 60)
  941.     }
  942. }()
  943. var canvas = document.getElementById("canvas"), ctx = canvas.getContext("2d"), cw = window.innerWidth, ch = window.innerHeight, fireworks = [], customFireworks = [], particles = [], customParticles = [], hue = 360 * Math.random(), customHue = 60, limiterTotal = 5, limiterTick = 0, timerTotal = 160, customTimerTotal = 220, customTimer2Total = 220, timerTick = 0, customTimerTick = 0, customTimer2Tick = 0, mousedown = !1, mx, my
  944. canvas.width = cw,
  945. canvas.height = ch
  946. var requestId, requestId1, requestId2
  947. _("searchText").addEventListener("keyup", function(t) {
  948.     t.preventDefault(),
  949.     13 == t.keyCode && _("searchButton").click()
  950. }),
  951. _("searchBox").onclick = function(t) {
  952.     _("searchBox").style.display = "none",
  953.     document.onkeypress = LL
  954. }
  955. ,
  956. _("searchContent").onclick = function(t) {
  957.     t.stopPropagation()
  958. }
  959. ,
  960. _("canvas").onclick = function(t) {
  961.     YY()
  962. }
  963. ,
  964. _("menuContent").onclick = function(t) {
  965.     t.stopPropagation()
  966. }
  967. ,
  968. D.prototype.update = function(t) {
  969.     this.coordinates.pop(),
  970.     this.coordinates.unshift([this.x, this.y]),
  971.     this.targetRadius < 8 ? this.targetRadius += .3 : this.targetRadius = 1,
  972.     this.speed *= this.acceleration
  973.     var e = Math.cos(this.angle) * this.speed
  974.       , n = Math.sin(this.angle) * this.speed
  975.     this.distanceTraveled = C(this.sx, this.sy, this.x + e, this.y + n),
  976.     this.distanceTraveled >= this.distanceToTarget ? (H(this.tx, this.ty),
  977.     fireworks.splice(t, 1)) : (this.x += e,
  978.     this.y += n)
  979. }
  980. ,
  981. E.prototype.update = function(t) {
  982.     this.coordinates.pop(),
  983.     this.coordinates.unshift([this.x, this.y]),
  984.     this.targetRadius < 8 ? this.targetRadius += .3 : this.targetRadius = 1,
  985.     this.speed *= this.acceleration
  986.     var e = Math.cos(this.angle) * this.speed
  987.       , n = Math.sin(this.angle) * this.speed
  988.     this.distanceTraveled = C(this.sx, this.sy, this.x + e, this.y + n),
  989.     this.distanceTraveled >= this.distanceToTarget ? (I(this.tx, this.ty),
  990.     customFireworks.splice(t, 1)) : (this.x += e,
  991.     this.y += n)
  992. }
  993. ,
  994. D.prototype.draw = function() {
  995.     ctx.beginPath(),
  996.     ctx.moveTo(this.coordinates[this.coordinates.length - 1][0], this.coordinates[this.coordinates.length - 1][1]),
  997.     ctx.lineTo(this.x, this.y),
  998.     ctx.strokeStyle = "hsl(" + hue + ", 100%, " + this.brightness + "%)",
  999.     ctx.stroke(),
  1000.     ctx.beginPath()
  1001. }
  1002. ,
  1003. E.prototype.draw = function() {
  1004.     ctx.beginPath(),
  1005.     ctx.moveTo(this.coordinates[this.coordinates.length - 1][0], this.coordinates[this.coordinates.length - 1][1]),
  1006.     ctx.lineTo(this.x, this.y),
  1007.     ctx.strokeStyle = "hsl(" + customHue + ", 100%, " + this.brightness + "%)",
  1008.     ctx.stroke(),
  1009.     ctx.beginPath()
  1010. }
  1011. ,
  1012. F.prototype.update = function(t) {
  1013.     this.coordinates.pop(),
  1014.     this.coordinates.unshift([this.x, this.y]),
  1015.     this.speed *= this.friction,
  1016.     this.x += Math.cos(this.angle) * this.speed,
  1017.     this.y += Math.sin(this.angle) * this.speed + this.gravity,
  1018.     this.alpha -= this.decay,
  1019.     this.alpha <= this.decay && particles.splice(t, 1)
  1020. }
  1021. ,
  1022. G.prototype.update = function(t) {
  1023.     this.coordinates.pop(),
  1024.     this.coordinates.unshift([this.x, this.y]),
  1025.     this.speed *= this.friction,
  1026.     this.x += Math.cos(this.angle) * this.speed,
  1027.     this.y += Math.sin(this.angle) * this.speed + this.gravity,
  1028.     this.alpha -= this.decay,
  1029.     this.alpha <= this.decay && customParticles.splice(t, 1)
  1030. }
  1031. ,
  1032. F.prototype.draw = function() {
  1033.     ctx.beginPath(),
  1034.     ctx.moveTo(this.coordinates[this.coordinates.length - 1][0], this.coordinates[this.coordinates.length - 1][1]),
  1035.     ctx.lineTo(this.x, this.y),
  1036.     ctx.strokeStyle = "hsla(" + this.hue + ", 100%, " + this.brightness + "%, " + this.alpha + ")",
  1037.     ctx.stroke()
  1038. }
  1039. ,
  1040. G.prototype.draw = function() {
  1041.     ctx.beginPath(),
  1042.     ctx.moveTo(this.coordinates[this.coordinates.length - 1][0], this.coordinates[this.coordinates.length - 1][1]),
  1043.     ctx.lineTo(this.x, this.y),
  1044.     ctx.strokeStyle = "hsla(" + this.hue + ", 100%, " + this.brightness + "%, " + this.alpha + ")",
  1045.     ctx.stroke()
  1046. }
  1047. var whichone = Math.floor((new Date).getTime() / 32e5) % 27, whichone2 = Math.floor((new Date).getTime() / 1728e4) % 5, changeId, home, upId1, upId2, keys = ["AIzaSyCRtJ2uhgYe7p3J-QkC6kHsm7KZz0bDIok", "AIzaSyCo-PwQAtlrchgSAY0hLnE2HYSRhqdsPXk", "AIzaSyC7asPTom1oZVPmZu7UcttGNFvqzRWQiRM", "AIzaSyDmUVXdKMQfp1428NsX0GuBHEp3Hh6VnRQ", "AIzaSyB0uq8HHarCnpYG4pZxYPwE8wLAtM_gBN0", "AIzaSyCgp_Uc2jj1mAd7HW9AzAATt33rGkvttVQ", "AIzaSyDUUfmvtaHY3lQ11CbkF8gplSJSXwgLe2g", "AIzaSyDzUqDdCGrb5g5YU0fo0pB9QbqurkK3GSc", "AIzaSyBgcyeGD9VK-Nu2pnlP5VQaLWqYSIPWZRk", "AIzaSyAGry7aVXPytGcqt-GrOb4HkIXVGbuL4As", "AIzaSyAiWjUpPAvVy1fLj2VTJitH56Gs-2PBMLY", "AIzaSyA2bieaAnufzw9YNibt0R2WI14L8uU9tbw", "AIzaSyDpTfaINBOTi_1YgYSmk25DPS8ex-duZsQ", "AIzaSyAGFMcByfMdsbQbpK7FE8MfHLZNjMDIWsw", "AIzaSyCLuua085lVPXp0Jmqb_AIePC0hG66N_5U", "AIzaSyDGu5pdf-_0cNIZdNkcLKtdpn0UNulX7hU", "AIzaSyDY8suw3_q3zMX6ZDhdr7IDpPLQ6CbEsoY", "AIzaSyCE9cyVSRDrn0nCjO_ajRDSHXUr3yqLnT0", "AIzaSyACVbv1wiiFdYQsaMQkthBJAUi-Ek-ZNkc", "AIzaSyANLBp5fHf-XEsQnksu_-ygJMHviGQO7TY", "AIzaSyCQXeXdjhu5SKnvLJeYz9SgyKbzT8fnQko", "AIzaSyBlSrOJ-ajuFM4cRpbPbuBnI1Fn3BPFrbg", "AIzaSyC9jt3y7ygY5qTToSUEanHCyMYonkCXz1w", "AIzaSyA5dmZA8HwtRCI24FDlf4E0atZ5KjYxzWA", "AIzaSyBBjLqNnzhnJ5xqRGwfdCmIVG13YNNNk2w", "AIzaSyACZdXbrIijp3kLgAGNIdSCe7uxxIvo9wY", "AIzaSyBKDw28djiaVr2rFLUUHEO2gNoa4SBa5Eo"], channelKeys = ["AIzaSyAkedClIJENM-lKk5Hwziprb_E9G5bKopc", "AIzaSyDdck0LEAXOCBVKDpN4ZgxC0Gk6zBedOTM", "AIzaSyBiwDi5co4t3Fopz9oEcfoisthYZz_kivM", "AIzaSyAm3hJqTq1L1wcz-cz_4zLUNs2PD37hLuY", "AIzaSyC_oqi_gbXaI29dkJJMRs0a82OWcl-h3tU"], altCounters = ["https://akshatmittal.com/youtube-realtime/#!/", "http://socialblade.com/youtube/user/", "http://subscribercounter.com/#!/"], altExt = ["", "/realtime", ""], keysUsed = 0, channelKeysUsed = 0, upInt = 2, showBtn = !0, upAudio, downAudio, oldCount = 0, messageID, hasDescription = !0, showID, happyID, smallCountFunction = AA, entry = !0, settings = localStorage.getItem("settings")
  1048. if (null === settings ? AN() : settings = JSON.parse(settings),
  1049. AL(),
  1050. function() {
  1051.     var t, e, n, i, s, o, a, r, l, u, c, h, d, p, m, g, f, y, w, b, v, T, M, C, x, k, A, I, S, _, L, E, N = [].slice
  1052.     f = '<span class="odometer-value"></span>',
  1053.     p = '<span class="odometer-ribbon"><span class="odometer-ribbon-inner">' + f + "</span></span>",
  1054.     i = '<span class="odometer-digit"><span class="odometer-digit-spacer">8</span><span class="odometer-digit-inner">' + p + "</span></span>",
  1055.     a = '<span class="odometer-formatting-mark"></span>',
  1056.     n = "(,ddd).dd",
  1057.     r = /^\(?([^)]*)\)?(?:(.)(d+))?$/,
  1058.     l = 30,
  1059.     o = 2e3,
  1060.     t = 20,
  1061.     u = 2,
  1062.     s = .5,
  1063.     c = 1e3 / l,
  1064.     e = 1e3 / t,
  1065.     m = "transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",
  1066.     x = document.createElement("div").style,
  1067.     g = null != x.transition || null != x.webkitTransition || null != x.mozTransition || null != x.oTransition,
  1068.     M = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame,
  1069.     h = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
  1070.     w = function(t) {
  1071.         var e
  1072.         return e = document.createElement("div"),
  1073.         e.innerHTML = t,
  1074.         e.children[0]
  1075.     }
  1076.     ,
  1077.     T = function(t, e) {
  1078.         return t.className = t.className.replace(RegExp("(^| )" + e.split(" ").join("|") + "( |$)", "gi"), " ")
  1079.     }
  1080.     ,
  1081.     y = function(t, e) {
  1082.         return T(t, e),
  1083.         t.className += " " + e
  1084.     }
  1085.     ,
  1086.     k = function(t, e) {
  1087.         var n
  1088.         return null != document.createEvent ? (n = document.createEvent("HTMLEvents"),
  1089.         n.initEvent(e, !0, !0),
  1090.         t.dispatchEvent(n)) : void 0
  1091.     }
  1092.     ,
  1093.     v = function() {
  1094.         var t, e
  1095.         return null != (t = null != (e = window.performance) && "function" == typeof e.now ? e.now() : void 0) ? t : +new Date
  1096.     }
  1097.     ,
  1098.     C = function(t, e) {
  1099.         return null == e && (e = 0),
  1100.         e ? (t *= Math.pow(10, e),
  1101.         t += .5,
  1102.         t = Math.floor(t),
  1103.         t /= Math.pow(10, e)) : Math.round(t)
  1104.     }
  1105.     ,
  1106.     A = function(t) {
  1107.         return 0 > t ? Math.ceil(t) : Math.floor(t)
  1108.     }
  1109.     ,
  1110.     b = function(t) {
  1111.         return t - C(t)
  1112.     }
  1113.     ,
  1114.     S = !1,
  1115.     (I = function() {
  1116.         var t, e, n, i, s
  1117.         if (!S && null != window.jQuery) {
  1118.             for (S = !0,
  1119.             i = ["html", "text"],
  1120.             s = [],
  1121.             e = 0,
  1122.             n = i.length; n > e; e++)
  1123.                 t = i[e],
  1124.                 s.push(function(t) {
  1125.                     var e
  1126.                     return e = window.jQuery.fn[t],
  1127.                     window.jQuery.fn[t] = function(t) {
  1128.                         var n
  1129.                         return null == t || null == (null != (n = this[0]) ? n.odometer : void 0) ? e.apply(this, arguments) : this[0].odometer.update(t)
  1130.                     }
  1131.                 }(t))
  1132.             return s
  1133.         }
  1134.     }
  1135.     )(),
  1136.     setTimeout(I, 0),
  1137.     d = function() {
  1138.         function t(e) {
  1139.             var n, i, s, a, r, l, h, d, p, m, g = this
  1140.             if (this.options = e,
  1141.             this.el = this.options.el,
  1142.             null != this.el.odometer)
  1143.                 return this.el.odometer
  1144.             this.el.odometer = this,
  1145.             d = t.options
  1146.             for (i in d)
  1147.                 a = d[i],
  1148.                 null == this.options[i] && (this.options[i] = a)
  1149.             null == (r = this.options).duration && (r.duration = o),
  1150.             this.MAX_VALUES = this.options.duration / c / u | 0,
  1151.             this.resetFormat(),
  1152.             this.value = this.cleanValue(null != (p = this.options.value) ? p : ""),
  1153.             this.renderInside(),
  1154.             this.render()
  1155.             try {
  1156.                 for (m = ["innerHTML", "innerText", "textContent"],
  1157.                 l = 0,
  1158.                 h = m.length; h > l; l++)
  1159.                     s = m[l],
  1160.                     null != this.el[s] && !function(t) {
  1161.                         return Object.defineProperty(g.el, t, {
  1162.                             get: function() {
  1163.                                 var e
  1164.                                 return "innerHTML" === t ? g.inside.outerHTML : null != (e = g.inside.innerText) ? e : g.inside.textContent
  1165.                             },
  1166.                             set: function(t) {
  1167.                                 return g.update(t)
  1168.                             }
  1169.                         })
  1170.                     }(s)
  1171.             } catch (f) {
  1172.                 n = f,
  1173.                 this.watchForMutations()
  1174.             }
  1175.         }
  1176.         return t.prototype.renderInside = function() {
  1177.             return this.inside = document.createElement("div"),
  1178.             this.inside.className = "odometer-inside",
  1179.             this.el.innerHTML = "",
  1180.             this.el.appendChild(this.inside)
  1181.         }
  1182.         ,
  1183.         t.prototype.watchForMutations = function() {
  1184.             var t, e = this
  1185.             if (null != h)
  1186.                 try {
  1187.                     return null == this.observer && (this.observer = new h(function() {
  1188.                         var t
  1189.                         return t = e.el.innerText,
  1190.                         e.renderInside(),
  1191.                         e.render(e.value),
  1192.                         e.update(t)
  1193.                     }
  1194.                     )),
  1195.                     this.watchMutations = !0,
  1196.                     this.startWatchingMutations()
  1197.                 } catch (n) {
  1198.                     t = n
  1199.                 }
  1200.         }
  1201.         ,
  1202.         t.prototype.startWatchingMutations = function() {
  1203.             return this.watchMutations ? this.observer.observe(this.el, {
  1204.                 childList: !0
  1205.             }) : void 0
  1206.         }
  1207.         ,
  1208.         t.prototype.stopWatchingMutations = function() {
  1209.             var t
  1210.             return null != (t = this.observer) ? t.disconnect() : void 0
  1211.         }
  1212.         ,
  1213.         t.prototype.cleanValue = function(t) {
  1214.             var e
  1215.             return "string" == typeof t && (t = t.replace(null != (e = this.format.radix) ? e : ".", "<radix>"),
  1216.             t = t.replace(/[.,]/g, ""),
  1217.             t = t.replace("<radix>", "."),
  1218.             t = parseFloat(t, 10) || 0),
  1219.             C(t, this.format.precision)
  1220.         }
  1221.         ,
  1222.         t.prototype.bindTransitionEnd = function() {
  1223.             var t, e, n, i, s, o, a = this
  1224.             if (!this.transitionEndBound) {
  1225.                 for (this.transitionEndBound = !0,
  1226.                 e = !1,
  1227.                 s = m.split(" "),
  1228.                 o = [],
  1229.                 n = 0,
  1230.                 i = s.length; i > n; n++)
  1231.                     t = s[n],
  1232.                     o.push(this.el.addEventListener(t, function() {
  1233.                         return e ? !0 : (e = !0,
  1234.                         setTimeout(function() {
  1235.                             return a.render(),
  1236.                             e = !1,
  1237.                             k(a.el, "odometerdone")
  1238.                         }, 0),
  1239.                         !0)
  1240.                     }, !1))
  1241.                 return o
  1242.             }
  1243.         }
  1244.         ,
  1245.         t.prototype.resetFormat = function() {
  1246.             var t, e, i, s, o, a, l, u
  1247.             if (t = null != (l = this.options.format) ? l : n,
  1248.             t || (t = "d"),
  1249.             i = r.exec(t),
  1250.             !i)
  1251.                 throw Error("Odometer: Unparsable digit format")
  1252.             return u = i.slice(1, 4),
  1253.             a = u[0],
  1254.             o = u[1],
  1255.             e = u[2],
  1256.             s = (null != e ? e.length : void 0) || 0,
  1257.             this.format = {
  1258.                 repeating: a,
  1259.                 radix: o,
  1260.                 precision: s
  1261.             }
  1262.         }
  1263.         ,
  1264.         t.prototype.render = function(t) {
  1265.             var e, n, i, s, o, a, r, l, u, c, h, d
  1266.             for (null == t && (t = this.value),
  1267.             this.stopWatchingMutations(),
  1268.             this.resetFormat(),
  1269.             this.inside.innerHTML = "",
  1270.             a = this.options.theme,
  1271.             e = this.el.className.split(" "),
  1272.             o = [],
  1273.             l = 0,
  1274.             c = e.length; c > l; l++)
  1275.                 n = e[l],
  1276.                 n.length && ((s = /^odometer-theme-(.+)$/.exec(n)) ? a = s[1] : /^odometer(-|$)/.test(n) || o.push(n))
  1277.             for (o.push("odometer"),
  1278.             g || o.push("odometer-no-transitions"),
  1279.             o.push(a ? "odometer-theme-" + a : "odometer-auto-theme"),
  1280.             this.el.className = o.join(" "),
  1281.             this.ribbons = {},
  1282.             this.digits = [],
  1283.             r = !this.format.precision || !b(t) || !1,
  1284.             d = ("" + t).split("").reverse(),
  1285.             u = 0,
  1286.             h = d.length; h > u; u++)
  1287.                 i = d[u],
  1288.                 "." === i && (r = !0),
  1289.                 this.addDigit(i, r)
  1290.             return this.startWatchingMutations()
  1291.         }
  1292.         ,
  1293.         t.prototype.update = function(t) {
  1294.             var e, n = this
  1295.             return t = this.cleanValue(t),
  1296.             (e = t - this.value) ? (T(this.el, "odometer-animating-up odometer-animating-down odometer-animating"),
  1297.             e > 0 ? y(this.el, "odometer-animating-up") : y(this.el, "odometer-animating-down"),
  1298.             this.stopWatchingMutations(),
  1299.             this.animate(t),
  1300.             this.startWatchingMutations(),
  1301.             setTimeout(function() {
  1302.                 return n.el.offsetHeight,
  1303.                 y(n.el, "odometer-animating")
  1304.             }, 0),
  1305.             this.value = t) : void 0
  1306.         }
  1307.         ,
  1308.         t.prototype.renderDigit = function() {
  1309.             return w(i)
  1310.         }
  1311.         ,
  1312.         t.prototype.insertDigit = function(t, e) {
  1313.             return null != e ? this.inside.insertBefore(t, e) : this.inside.children.length ? this.inside.insertBefore(t, this.inside.children[0]) : this.inside.appendChild(t)
  1314.         }
  1315.         ,
  1316.         t.prototype.addSpacer = function(t, e, n) {
  1317.             var i
  1318.             return i = w(a),
  1319.             i.innerHTML = t,
  1320.             n && y(i, n),
  1321.             this.insertDigit(i, e)
  1322.         }
  1323.         ,
  1324.         t.prototype.addDigit = function(t, e) {
  1325.             var n, i, s, o
  1326.             if (null == e && (e = !0),
  1327.             "-" === t)
  1328.                 return this.addSpacer(t, null, "odometer-negation-mark")
  1329.             if ("." === t)
  1330.                 return this.addSpacer(null != (o = this.format.radix) ? o : ".", null, "odometer-radix-mark")
  1331.             if (e)
  1332.                 for (s = !1; ; ) {
  1333.                     if (!this.format.repeating.length) {
  1334.                         if (s)
  1335.                             throw Error("Bad odometer format without digits")
  1336.                         this.resetFormat(),
  1337.                         s = !0
  1338.                     }
  1339.                     if (n = this.format.repeating[this.format.repeating.length - 1],
  1340.                     this.format.repeating = this.format.repeating.substring(0, this.format.repeating.length - 1),
  1341.                     "d" === n)
  1342.                         break
  1343.                     this.addSpacer(n)
  1344.                 }
  1345.             return i = this.renderDigit(),
  1346.             i.querySelector(".odometer-value").innerHTML = t,
  1347.             this.digits.push(i),
  1348.             this.insertDigit(i)
  1349.         }
  1350.         ,
  1351.         t.prototype.animate = function(t) {
  1352.             return g && "count" !== this.options.animation ? this.animateSlide(t) : this.animateCount(t)
  1353.         }
  1354.         ,
  1355.         t.prototype.animateCount = function(t) {
  1356.             var n, i, s, o, a, r = this
  1357.             return (i = +t - this.value) ? (o = s = v(),
  1358.             n = this.value,
  1359.             (a = function() {
  1360.                 var l, u, c
  1361.                 return v() - o > r.options.duration ? (r.value = t,
  1362.                 r.render(),
  1363.                 void k(r.el, "odometerdone")) : (l = v() - s,
  1364.                 l > e && (s = v(),
  1365.                 c = l / r.options.duration,
  1366.                 u = i * c,
  1367.                 n += u,
  1368.                 r.render(Math.round(n))),
  1369.                 null != M ? M(a) : setTimeout(a, e))
  1370.             }
  1371.             )()) : void 0
  1372.         }
  1373.         ,
  1374.         t.prototype.getDigitCount = function() {
  1375.             var t, e, n, i, s, o
  1376.             for (i = 1 <= arguments.length ? N.call(arguments, 0) : [],
  1377.             t = s = 0,
  1378.             o = i.length; o > s; t = ++s)
  1379.                 n = i[t],
  1380.                 i[t] = Math.abs(n)
  1381.             return e = Math.max.apply(Math, i),
  1382.             Math.ceil(Math.log(e + 1) / Math.log(10))
  1383.         }
  1384.         ,
  1385.         t.prototype.getFractionalDigitCount = function() {
  1386.             var t, e, n, i, s, o, a
  1387.             for (s = 1 <= arguments.length ? N.call(arguments, 0) : [],
  1388.             e = /^\-?\d*\.(\d*?)0*$/,
  1389.             t = o = 0,
  1390.             a = s.length; a > o; t = ++o)
  1391.                 i = s[t],
  1392.                 s[t] = "" + i,
  1393.                 n = e.exec(s[t]),
  1394.                 s[t] = null == n ? 0 : n[1].length
  1395.             return Math.max.apply(Math, s)
  1396.         }
  1397.         ,
  1398.         t.prototype.resetDigits = function() {
  1399.             return this.digits = [],
  1400.             this.ribbons = [],
  1401.             this.inside.innerHTML = "",
  1402.             this.resetFormat()
  1403.         }
  1404.         ,
  1405.         t.prototype.animateSlide = function(t) {
  1406.             var e, n, i, o, a, r, l, u, c, h, d, p, m, g, f, w, b, v, T, M, C, x, k, I, S, _, L
  1407.             if (w = this.value,
  1408.             u = this.getFractionalDigitCount(w, t),
  1409.             u && (t *= Math.pow(10, u),
  1410.             w *= Math.pow(10, u)),
  1411.             i = t - w) {
  1412.                 for (this.bindTransitionEnd(),
  1413.                 o = this.getDigitCount(w, t),
  1414.                 a = [],
  1415.                 e = 0,
  1416.                 d = T = 0; o >= 0 ? o > T : T > o; d = o >= 0 ? ++T : --T) {
  1417.                     if (b = A(w / Math.pow(10, o - d - 1)),
  1418.                     l = A(t / Math.pow(10, o - d - 1)),
  1419.                     r = l - b,
  1420.                     Math.abs(r) > this.MAX_VALUES) {
  1421.                         for (h = [],
  1422.                         p = r / (this.MAX_VALUES + this.MAX_VALUES * e * s),
  1423.                         n = b; r > 0 && l > n || 0 > r && n > l; )
  1424.                             h.push(Math.round(n)),
  1425.                             n += p
  1426.                         h[h.length - 1] !== l && h.push(l),
  1427.                         e++
  1428.                     } else
  1429.                         h = function() {
  1430.                             L = []
  1431.                             for (var t = b; l >= b ? l >= t : t >= l; l >= b ? t++ : t--)
  1432.                                 L.push(t)
  1433.                             return L
  1434.                         }
  1435.                         .apply(this)
  1436.                     for (d = M = 0,
  1437.                     x = h.length; x > M; d = ++M)
  1438.                         c = h[d],
  1439.                         h[d] = Math.abs(c % 10)
  1440.                     a.push(h)
  1441.                 }
  1442.                 for (this.resetDigits(),
  1443.                 _ = a.reverse(),
  1444.                 d = C = 0,
  1445.                 k = _.length; k > C; d = ++C)
  1446.                     for (h = _[d],
  1447.                     this.digits[d] || this.addDigit(" ", d >= u),
  1448.                     null == (v = this.ribbons)[d] && (v[d] = this.digits[d].querySelector(".odometer-ribbon-inner")),
  1449.                     this.ribbons[d].innerHTML = "",
  1450.                     0 > i && (h = h.reverse()),
  1451.                     m = S = 0,
  1452.                     I = h.length; I > S; m = ++S)
  1453.                         c = h[m],
  1454.                         f = document.createElement("div"),
  1455.                         f.className = "odometer-value",
  1456.                         f.innerHTML = c,
  1457.                         this.ribbons[d].appendChild(f),
  1458.                         m === h.length - 1 && y(f, "odometer-last-value"),
  1459.                         0 === m && y(f, "odometer-first-value")
  1460.                 return 0 > b && this.addDigit("-"),
  1461.                 g = this.inside.querySelector(".odometer-radix-mark"),
  1462.                 null != g && g.parent.removeChild(g),
  1463.                 u ? this.addSpacer(this.format.radix, this.digits[u - 1], "odometer-radix-mark") : void 0
  1464.             }
  1465.         }
  1466.         ,
  1467.         t
  1468.     }(),
  1469.     d.options = null != (L = window.odometerOptions) ? L : {},
  1470.     setTimeout(function() {
  1471.         var t, e, n, i, s
  1472.         if (window.odometerOptions) {
  1473.             i = window.odometerOptions,
  1474.             s = []
  1475.             for (t in i)
  1476.                 e = i[t],
  1477.                 s.push(null != (n = d.options)[t] ? (n = d.options)[t] : n[t] = e)
  1478.             return s
  1479.         }
  1480.     }, 0),
  1481.     d.init = function() {
  1482.         var t, e, n, i, s, o
  1483.         if (null != document.querySelectorAll) {
  1484.             for (e = document.querySelectorAll(d.options.selector || ".odometer"),
  1485.             o = [],
  1486.             n = 0,
  1487.             i = e.length; i > n; n++)
  1488.                 t = e[n],
  1489.                 o.push(t.odometer = new d({
  1490.                     el: t,
  1491.                     value: null != (s = t.innerText) ? s : t.textContent
  1492.                 }))
  1493.             return o
  1494.         }
  1495.     }
  1496.     ,
  1497.     null != (null != (E = document.documentElement) ? E.doScroll : void 0) && null != document.createEventObject ? (_ = document.onreadystatechange,
  1498.     document.onreadystatechange = function() {
  1499.         return "complete" === document.readyState && d.options.auto !== !1 && d.init(),
  1500.         null != _ ? _.apply(this, arguments) : void 0
  1501.     }
  1502.     ) : document.addEventListener("DOMContentLoaded", function() {
  1503.         return d.options.auto !== !1 ? d.init() : void 0
  1504.     }, !1),
  1505.     "function" == typeof define && define.amd ? define(["jquery"], function() {
  1506.         return d
  1507.     }) : typeof exports === !1 ? module.exports = d : window.Odometer = d
  1508. }
  1509. .call(this),
  1510. FF(),
  1511. window.onpopstate = function(t) {
  1512.     FF()
  1513. }
  1514. ,
  1515. home) {
  1516.     _("happyMarquee").style.display = "block"
  1517.     for (var t = 0; 5 > t; t++)
  1518.         setTimeout(function() {
  1519.             _("nameLink").style.border = "3px solid #00FF00"
  1520.         }, 2e3 + 500 * t),
  1521.         setTimeout(function() {
  1522.             _("nameLink").style.border = "3px solid green"
  1523.         }, 2250 + 500 * t)
  1524.     setTimeout(function() {
  1525.         _("nameLink").style.borderStyle = "none"
  1526.     }, 8e3),
  1527.     happyID = setTimeout(function() {
  1528.         O(happyMarquee, 2e3),
  1529.         setTimeout(function() {
  1530.             _("happyMarquee").style.display = "none"
  1531.         }, 2e3)
  1532.     }, 3e3)
  1533. }
  1534. showID = setTimeout(function() {
  1535.     showBtn && (N(subscribeButton, 2e3),
  1536.     JJ(channelThumbnail, 2e3))
  1537. }, 3e3),
  1538. document.onkeypress = LL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement