1// ==ClosureCompiler== 2// @output_file_name default.js 3// @compilation_level SIMPLE_OPTIMIZATIONS 4// @language_out ECMASCRIPT5_STRICT 5// ==/ClosureCompiler== 6"use strict"; 7(function afterWindowLoads(isFirstTime){ 8 var window = typeof self !== "undefined" ? self : Function("return window")(), document = window.document; 9 var documentBody = document.getElementsByTagName("body")[0]; 10 var documentHead = document.getElementsByTagName("head")[0]; 11 var Date = window.Date; 12 var requestAnimationFrame = window.requestAnimationFrame || function(f){ 13 return setTimeout(f, new Date%(50/3)); 14 }; 15 var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout; 16 var navigator = window.navigator; 17 if (isFirstTime === "yes") { 18 /*if ('serviceWorker' in navigator) { 19 var serviceWorker = navigator.serviceWorker; 20 serviceWorker.getRegistrations().then(function(registrations){ 21 if (registrations.length === 0) { 22 serviceWorker.register('/service-worker.min.js', {scope: "/"}); 23 } 24 }); 25 }*/ // the server is now sending 304 not modifieds correctly without the help of this script 26 } else { 27 document.onreadystatechange = null; 28 } 29 if (document.readyState === "loading") { 30 document.onreadystatechange = afterWindowLoads; 31 return; 32 } 33 function listenTo(object, eventName, handler, options) { 34 if (object.addEventListener) { 35 object.addEventListener(eventName, handler, options); 36 } else { 37 object.attachEvent("on" + eventName, handler); 38 } 39 } 40 var UAstr = navigator.userAgent; 41 if (!/bot|googlebot|crawler|spider|robot|crawling|\.com|\.net|\.org|s:\/\/|mail|@/i.test(UAstr)) { // this shuld take care of most crawlers 42 var cascadeDownEles = document.getElementsByClassName("cascadedown"); 43 for (var cascadeIndex=0, cascadeLen=cascadeDownEles.length; cascadeIndex !== cascadeLen; ++cascadeIndex) { 44 var ele = cascadeDownEles[cascadeIndex]; 45 var i = 0, arrToDo = ele.children, dur=100, nxt = function(arrToDo, ele, i, alreadyGone){ 46 var start=0, initial=0, curVal=0; 47 if (arrToDo[i]){ 48 arrToDo[i].style.zIndex = -i; 49 initial = -arrToDo[i].firstElementChild.clientHeight; 50 arrToDo[i].firstElementChild.style.marginTop = initial + "px"; 51 start = performance.now(); 52 requestAnimationFrame(function transitionToNext(){ 53 curVal = initial - (performance.now()-start)/dur*initial; 54 if ((curVal > initial/1.65) && !alreadyGone){ 55 alreadyGone = true; 56 requestAnimationFrame(nxt.bind(undefined, arrToDo, ele, i+1, false)); 57 } 58 if (curVal <= 0){ 59 arrToDo[i].firstElementChild.style.marginTop = curVal + "px"; 60 requestAnimationFrame(transitionToNext); 61 } else { 62 arrToDo[i].firstElementChild.style.marginTop = "0px"; 63 arrToDo[i].style.height = ""; 64 } 65 }); 66 arrToDo[i].style.visibility = "visible"; 67 } 68 }; 69 while (i < arrToDo.length){ 70 arrToDo[i].style.height = arrToDo[i].clientHeight + 1 + "px"; 71 ++i; 72 } 73 requestAnimationFrame(nxt.bind(undefined, arrToDo, ele, 0, false)); 74 }; 75 } 76 77 function afterDoneLoading() { 78 var undoTextManager = [], 79 originalSentenceList = "I am so blue I'm greener than purple | I stepped on a Corn Flake, now I'm a Cereal Killer | llamas eat sexy paper clips | on a scale from one to ten what is your favourite colour of the alphabet | bananna error | everyday a grape licks a friendly cow | the red hexagon mmm'ed a prickly seahorse | when your canoe is stuck in a tree with the headlights on, how many pancakes will it be to the moon | what do you think about the magical yellow unicorn who dances on the rainbow with a spoonful of blue cheese dressing | gumball Watterson never likes chicken pot pies | there's a purple mushroom in my backyard, screaming Taco's | mustard gas my maternal mass | it has been hacked by DDoS | when life gives you lemons, chuck them at people you hate | what comes around goes vanish | a Zebra licked a DVD | LOL Lots of love | cute fluffy puppies prancing bout painbows | wretched world peace, I just wana pony | my nose is a communist | a hotdog on a bridge | thank you for noticing this list | your noticing has been noticed | a fuzzy snake ate the clouds | a blonde pony ate a shiny shoe then punched Dale | I mean, tree | the China connects the Furby and the toilet | that duck over there | Gurklebob is eating eyes with Schadenfreude | a cherry is also a red bullfrog | the prim pirannah's pencil | crickets vaping in the grassroom | smoked | sexy | what the | dog | Brutus and Cassius | lust | passion | ancient | free | bondage | fairest | crazy | penetrate | pleasure | white trashcan | erects | bloody | die | embarrass | feed | having had been | will be | Hester | moist | sadistic | alienation | like | like | like | like | like | like | like | like | like | like | lip | cinnamon | sweet | spicy | hot | ENED bad | Christ-like-ping | mingle | satanic | strip | phlegm | ointment | with panties | lugubrious | curd | rural | dollop | slur | mucus | pulp | clogged | slacks | dripping | slur | slur | hubby and wifey | wellness | discharge | impactful | beautiful | handsome | smooth | prideful | sputum | goiter | poop | Chuck Norris | remonstrates | wants to kill | pisses | chemical | acidic | basic | cancer | toxic | pull down your | rides | ridden | marriage | clock | bit | till | milk of | mind wipe | ICUP | sin | bad | dank meme | streak | cringy ".split("|"), 80 randomSentenceList = originalSentenceList.slice(); 81 function RandomNumberGenerator(seed){ 82 var d = new Date(); 83 seed = seed || 2345678901 + (d.getSeconds() * 0xFFFFFF) + (d.getMinutes() * 0xFFFF); 84 var A = 48271; 85 var M = 2147483647; 86 var Q = M / A; 87 var R = M % A; 88 var oneOverM = 1.0 / M; 89 return function(){ 90 var hi = seed / Q; 91 var lo = seed % Q; 92 var test = A * lo - R * hi; 93 if(test > 0){ 94 seed = test; 95 } else { 96 seed = test + M; 97 } 98 return (seed * oneOverM); 99 }; 100 } 101 try { 102 // Make it so you get the same reults going to the same page, but other people get different results going to that same page. Mwhahaha..... 103 randomSentenceList = localStorage["rSL"].split("").map(function(x){ 104 return originalSentenceList[x.charCodeAt(0) % originalSentenceList.length |0]; 105 }); 106 } catch(e) { 107 var getRand = RandomNumberGenerator(); 108 for (var i = randomSentenceList.length - 1; i > 0; i=i-1|0) { 109 var j = getRand * (i + 1|0)|0; 110 var temp = randomSentenceList[i]; 111 randomSentenceList[i] = randomSentenceList[j]; 112 randomSentenceList[j] = temp; 113 } 114 localStorage["rSL"] = randomSentenceList.reduce(function(acc, cur){ 115 return acc + String.fromCharCode( originalSentenceList.indexOf(cur) ); 116 }, ""); 117 } 118 var txtNodeType = Node.TEXT_NODE; 119 function hashFnv32a(str) { 120 /*jshint bitwise:false */ 121 var i, l, hval = 0x811c9dc5; 122 123 for (i = 0, l = str.length; i < l; i++) { 124 hval ^= str.charCodeAt(i); 125 hval += (hval << 1) + (hval << 4) + (hval << 7) + (hval << 8) + (hval << 24); 126 } 127 return hval >>> 0; 128 } 129 function selectRandomNode(){ 130 var nodes = []; 131 var hashCode = 0; 132 (function recurse(element) { 133 if (element.childNodes.length > 0) 134 for (var i = 0; i < element.childNodes.length; i++) 135 recurse(element.childNodes[i]); 136 137 138 if (element.nodeType == txtNodeType && element.nodeValue.trim() !== '') { 139 hashCode ^= hashFnv32a(element.nodeValue); 140 nodes.push(element); 141 } 142 })( documentBody ); 143 var resultingArray = [], randomSentencesCur = randomSentenceList.slice(); 144 var i = randomSentencesCur.length, rand = RandomNumberGenerator( hashCode ); 145 while (i && nodes.length) { 146 resultingArray.push( 147 [ 148 nodes.splice((rand()*nodes.length), 1)[0], 149 randomSentencesCur.splice((rand()*i|0)%i, 1)[0] 150 ] 151 ); 152 i -= 1; 153 } 154 return { 155 rand: rand, 156 res: resultingArray 157 }; 158 } 159 var keysCurDown = 0x0, isCurrentlyInTheMode; 160 function getRandPos(rand, str){ 161 var reg = /\s+/g, indexs = []; 162 while (reg.exec(str)) indexs.push( reg.lastIndex ); 163 return indexs[ rand()*indexs.length|0 ] || 0; 164 } 165 listenTo(window, "keydown", function(evt){ 166 var index = [/*"alt", "control",*/ "shift"].indexOf(evt.key && evt.key.toLowerCase()); 167 if (/*evt.repeat ||*/ index === -1) { 168 return; 169 } 170 keysCurDown |= ( 171 !evt.location ? 0x3 : evt.location === 1 ? 1 : 2 172 ) << index; 173 if (keysCurDown === 0x3/*0x3f*/ && !isCurrentlyInTheMode) { 174 // do into the magic 175 isCurrentlyInTheMode = true; 176 var rawQuery = selectRandomNode(); 177 var randNodes = rawQuery.res, getRand = rawQuery.rand, i = 0, Len = randNodes.length; 178 while(i !== Len){ 179 var curNode = randNodes[i]; 180 var textNode = curNode[0], insertText = curNode[1]; 181 var newPos = getRandPos(getRand, textNode.nodeValue); 182 var newText = textNode.nodeValue.substring(0, newPos) + insertText + textNode.nodeValue.substring(newPos); 183 undoTextManager.push([ 184 textNode, 185 newText, 186 textNode.nodeValue 187 ]); 188 textNode.nodeValue = newText; 189 ++i; 190 } 191 } 192 }, {passive:1}); 193 listenTo(window, "keyup", function(evt){ 194 var index = [/*"alt", "control",*/ "shift"].indexOf(evt.key && evt.key.toLowerCase()); 195 if (/*!evt.key || evt.repeat ||*/ index === -1) { 196 return; 197 } 198 keysCurDown &= ~(( 199 !evt.location ? 0x3 : evt.location === 1 ? 1 : 2 200 ) << index); 201 if (keysCurDown !== 0x3f && isCurrentlyInTheMode) { 202 // undo out the magic 203 isCurrentlyInTheMode = false;
204 undoTextManager.forEach(function(x) { 205 var textNode = x[ 0 ]; 206 var current = x[ 1 ]; 207 var original = x[ 2 ]; 208 if (textNode.nodeValue === current) { 209 textNode.nodeValue = original; 210 } 211 }); 212 undoTextManager.length = 0; 213 } 214 }, {passive:1, capture: true}); 215 216 217 218 219 var triggerColorChangeText = "Jack Giffin"; 220 var triggerColorChangeRegExp = /(?:\b|^)Jack\s+Giffin(?:\b|$)/i; 221 222 var isCurrentlyRandomizingColors = false; 223 var originalElementColors = new Map; 224 var randomizeColorsId = -1; 225 226 var Math_random = Math.random; 227 228 229 listenTo(document, "selectionchange", function() { 230 const selectionObject = window.getSelection(); 231 const selectedText = selectionObject.toString(); 232 233 if ( 234 selectedText.length < (triggerColorChangeText.length + 5) && 235 triggerColorChangeRegExp.test( selectedText ) 236 ) { 237 // Begin randomly changing the colors of all the elements on the page 238 239 isCurrentlyRandomizingColors = !isCurrentlyRandomizingColors; 240 if (randomizeColorsId !== -1) clearInterval( randomizeColorsId ); 241 242 selectionObject.removeAllRanges(); 243 244 if (isCurrentlyRandomizingColors) { 245 const allCollection = document.getElementsByTagName("*"); 246 for (var i=0, len=allCollection.length|0, j=0, children, childCount, hasTextNodes=false; i<len; i=i+1|0) { 247 248 children = allCollection[i].childNodes; 249 hasTextNodes = false; 250 251 for (j=0, childCount = children.length|0; j<childCount; j=j+1|0) { 252 if (children[j].nodeType === 3 && /\S/.test(children[j].data)) { // 3 is Node.TEXT_NODE 253 hasTextNodes = true; 254 break; 255 } 256 } 257 258 if (hasTextNodes) { 259 originalElementColors.set(allCollection[i], allCollection[i].style.color || null); 260 } 261 } 262 263 264 265 randomizeColorsId = setInterval(function randomizeColorChoices() { 266 originalElementColors.forEach(function(value, key) { 267 key.style.color = "hsl(" + Math_random()*360 + ",67%,67%)"; 268 }); 269 }, 667); 270 } else { 271 originalElementColors.forEach(function(value, key) { 272 key.style.color = value === null ? "" : value; 273 }); 274 275 originalElementColors.clear(); 276 277 randomizeColorsId = -1; 278 } 279 280 } 281 }, {passive:1}); 282 283 284 285 286 var mrs_h_owlEle = document.getElementById("mrs_h_owl"); 287 if (mrs_h_owlEle && window.HTMLMediaElement && ("play" in HTMLMediaElement.prototype)) { 288 var audioTracks = [ 289 "mrsH0.mp4", 290 "mrsH1.mp4", 291 "donnavan_a_0.mp4" 292 ]; 293 var curTracks = []; 294 var mrsH_SoundEle; 295 var isSoundOpenNow = false; 296 var isSoundLoaded = false; 297 /*function getRand_Four(upperVal) { 298 return Math.random()*upperVal ^ Math.random()*upperVal ^ Math.random()*upperVal ^ Math.random()*upperVal; 299 } 300 function getRand_0x0f(upperVal) { 301 return getRand_Four(upperVal) ^ getRand_Four(upperVal) ^ getRand_Four(upperVal) ^ getRand_Four(upperVal); 302 } 303 function getRandom(upperVal) { 304 return getRand_0x0f(upperVal) ^ getRand_0x0f(upperVal) ^ getRand_0x0f(upperVal) ^ getRand_0x0f(upperVal); 305 }*/ 306 var supportsCrypto = typeof crypto !== "undefined"; 307 var randArrTMP = supportsCrypto && new Uint32Array(64); 308 //var randResF64TMP = supportsCrypto && new Float64Array(1); 309 //var randResU32TMP = supportsCrypto && new Uint32Array(randResF64TMP.buffer); 310 var randResU32TMP = supportsCrypto && new Uint32Array(1); 311 var lastRandom = 0; 312 try { lastRandom = parseInt(localStorage.getItem("lastRandomAudio")) || 0; } catch(e){} 313 function getRandom(upperVal) { 314 if (supportsCrypto) { 315 /*for (var i = 0; i !== randArrTMP.length; ++i) { 316 resV 317 }*/ 318 var newRandom; 319 do { 320 crypto.getRandomValues( randResU32TMP ); 321 newRandom = randResU32TMP[0] % upperVal; 322 } while (lastRandom === newRandom); 323 lastRandom = newRandom; 324 try { localStorage.setItem("lastRandomAudio", ""+newRandom) } catch(e) {} 325 return newRandom; 326 } 327 return (Math_random()*upperVal|0)%upperVal; 328 } 329 var isCurrentlyTryingToPlay = false; 330 var doPauseAfterTryToPlay = false; 331 function tryToPauseMrsHAudio(){ 332 if (isCurrentlyTryingToPlay) { 333 doPauseAfterTryToPlay = true; 334 } else { 335 mrsH_SoundEle.pause(); 336 } 337 } 338 function whenPlaysSuccessfully(){ 339 // success playing! 340 isCurrentlyTryingToPlay = false;
341 if (doPauseAfterTryToPlay) { 342 setTimeout(tryToPauseMrsHAudio, 3); 343 } 344 } 345 function playCurrentMrsHAudio() { 346 var playPromise = mrsH_SoundEle.play(); 347 if (playPromise) { 348 doPauseAfterTryToPlay = false; 349 isCurrentlyTryingToPlay = true; 350 playPromise.then(whenPlaysSuccessfully, function(){ 351 mrsH_SoundEle.play().finally(whenPlaysSuccessfully); // try again one more time 352 }); // failure playing 353 } 354 } 355 function loadNewAudio(){ 356 if (!curTracks.length) { 357 curTracks = audioTracks.slice();//.concat(audioTracks); 358 if (!curTracks.length) return; 359 } 360 var curRandVal = getRandom(curTracks.length); 361 var URLString = curTracks[curRandVal]; 362 curTracks.splice(curRandVal,1); 363 isSoundLoaded = false; 364 if (mrsH_SoundEle) { 365 mrsH_SoundEle.src = "res/mrsH/" + URLString; 366 } else { 367 mrsH_SoundEle = new Audio("res/mrsH/" + URLString); 368 var passiveEvent = {passive:1}; 369 listenTo(mrsH_SoundEle, "ended", function(){ 370 mrsH_SoundEle.currentTime = 0; 371 loadNewAudio(); 372 }, passiveEvent); 373 listenTo(mrsH_SoundEle, "canplaythrough", function(){ 374 if (isSoundOpenNow !== !mrsH_SoundEle.paused) { 375 if (isSoundOpenNow/*mrsH_SoundEle.paused*/) { 376 playCurrentMrsHAudio(); 377 } else { 378 tryToPauseMrsHAudio(); 379 } 380 } 381 isSoundLoaded = true; 382 }, passiveEvent); 383 } 384 mrsH_SoundEle.loop = mrsH_SoundEle.autoplay = mrsH_SoundEle.controls = false; 385 mrsH_SoundEle.autoplay = isSoundOpenNow; 386 if (isSoundOpenNow) playCurrentMrsHAudio(); 387 } 388 var from=1, to=1, isTransitioning = false, firstTimeOwlId = -2, setTimeout = window.setTimeout, Math_sqrt = Math.sqrt; 389 function overrideTransSound(){ 390 isTransitioning = false; 391 transitionSoundVolume(); 392 } 393 function transitionSoundVolume(timeWaited){ 394 if (isTransitioning) return; 395 isTransitioning = false; 396 if (to === 0) { 397 from -= 1/270; 398 if (from > 0) { 399 isTransitioning = true; 400 setTimeout(overrideTransSound, 5); 401 } else { 402 from = 0; 403 tryToPauseMrsHAudio(); 404 } 405 mrsH_SoundEle.volume = Math_sqrt(from); 406 } else { // to === 1 407 from += 1/270; 408 if (from < 1) { 409 isTransitioning = true; 410 setTimeout(overrideTransSound, 5); 411 } else { 412 from = 1; 413 } 414 mrsH_SoundEle.volume = Math_sqrt(from); 415 } 416 } 417 listenTo(mrs_h_owlEle, "mouseout", function(){ 418 if (0 <= firstTimeOwlId) { 419 clearTimeout(firstTimeOwlId); 420 firstTimeOwlId = -1; 421 } 422 isSoundOpenNow = false; 423 if (isSoundLoaded && !mrsH_SoundEle.paused) { 424 to = 0; 425 setTimeout(transitionSoundVolume, 5); 426 } 427 }); 428 listenTo(mrs_h_owlEle, "mouseover", function whenMouseOver(){ 429 if (firstTimeOwlId === -2) { 430 loadNewAudio(); 431 mrsH_SoundEle.volume = 0; 432 documentBody.appendChild(mrsH_SoundEle); 433 firstTimeOwlId = setTimeout(whenMouseOver, 333); 434 } else { 435 if (0 <= firstTimeOwlId) { 436 clearTimeout(firstTimeOwlId); 437 firstTimeOwlId = -1; 438 } 439 isSoundOpenNow = true; 440 if (isSoundLoaded && mrsH_SoundEle.paused) { 441 playCurrentMrsHAudio(); 442 to = 1; 443 setTimeout(transitionSoundVolume, 5); 444 } 445 } 446 }); 447 /*********************************************************************************/ 448 var pongIsLoaded = false; 449 listenTo(mrs_h_owlEle, "dblclick", function(){ 450 // bring up the pong game! 451 function afterPongLoads(){ 452 if ("Game" in window) { 453 pongscript.onload = pongscript.onreadystatechange = null; 454 pongIsLoaded = true; 455 window["Game"]["ready"](function() { 456 var pong = window["Game"].start('game', null, { 457 "sound": false, 458 "stats": false, 459 "footprints": false, 460 "predictions": false 461 }); 462 documentBody.appendChild( window["renderPongCanvas"] ); 463 }); 464 } 465 } 466 if (!pongIsLoaded) { 467 var pongscript = document.createElement("script"); 468 pongscript.onload = pongscript.onreadystatechange = afterPongLoads; 469 documentHead.appendChild(pongscript); 470 pongscript.src = "res/ponggame.js"; 471 } else { 472 afterPongLoads(); 473 } 474 }); 475 } else if (mrs_h_owlEle) {
476 mrs_h_owlEle.style.display = "none"; 477 } 478 479 var mainbodycontentEle = document.getElementById("mainbodycontent"); 480 if (mainbodycontentEle) (function(){ 481 var font_size = 128; 482 var canvas=document.getElementById('myCanvas'); 483 var width=canvas.width=window.innerWidth, height=canvas.height=window.innerHeight; 484 var _logb2=Math.log(2), _logsqrt2=Math.log(Math.sqrt(2)); 485 listenTo(window, "resize", function(){ 486 width = canvas.width = window.innerWidth; 487 height = canvas.height = window.innerHeight; 488 }); 489 var bounce_elements=[]; 490 function new_pepper(url) { 491 var dimensions = Math.pow(2, 6+Math.round(Math_random()*4)/2); 492 493 var outer_marquee = document.createElement('marquee'); 494 outer_marquee.setAttribute('direction', ['down','up'][Math.round(Math_random())]); 495 outer_marquee.setAttribute('width', '100%'); 496 outer_marquee.setAttribute('height', '100%'); 497 outer_marquee.setAttribute('behavior', 'alternate'); 498 outer_marquee.setAttribute('scrollamount', (1+Math_random()*3).toString()); 499 outer_marquee.setAttribute('scrolldelay', '30'); 500 outer_marquee.style = 'position:absolute;top:0px;left:0px;direction:rtl'; 501 var inner_marquee = document.createElement('marquee'); 502 inner_marquee.setAttribute('direction', ['right','left'][Math.round(Math_random())]); 503 inner_marquee.setAttribute('behavior', 'alternate'); 504 inner_marquee.setAttribute('scrollamount', (1+Math_random()*3).toString()); 505 inner_marquee.setAttribute('scrolldelay', '30'); 506 inner_marquee.style = 'direction:ltr'; 507 var img = new Image(); 508 img.width = img.height = dimensions; 509 outer_marquee.appendChild(inner_marquee); 510 canvas.appendChild(outer_marquee); 511 img.onload = function(){ 512 inner_marquee.appendChild(img); 513 bounce_elements[bounce_elements.length] = { 514 'outer': outer_marquee, 515 'inner': inner_marquee, 516 'img': img 517 }; 518 }; 519 img.src=url; 520 } 521 canvas.parentNode.removeChild(canvas); 522 523 var on=false, easteregg = document.getElementById('easteregg'), top_marquee = document.getElementById('top_marquee'); 524 var marqueeSupported = easteregg.offsetHeight > 0 || easteregg.offsetTop > 9; 525 function polyfillMarquee() { 526 527 } 528 var initial_HTML = easteregg.innerHTML; 529 530 /*window.onresize = function() { 531 var font_size = (window.innerWidth/90 + 30); //(Math.log(Math.min(window.innerHeight,window.innerWidth))/_logsqrt2+12)*2; 532 //easteregg.setAttribute('style', "direction:ltr;font-size:" + Math.round(font_size).toString() + "px;line-height:" + Math.round(font_size*0.875).toString() + "px;"); 533 //top_marquee.setAttribute('height', Math.round(font_size*4).toString()); 534 }*/ 535 /*try { 536 window.onresize(); // Setting it all up 537 } catch(e) {}*/ 538 function start_bouncing() { 539 if (!window.bouncing){ 540 window.bouncing = true; 541 mainbodycontentEle.appendChild(canvas); 542 } 543 } 544 function stop_bouncing() { 545 if (window.bouncing){ 546 window.bouncing = false; 547 mainbodycontentEle.removeChild(canvas); 548 } 549 } 550 window.bouncing = false; 551 var clickAttempts = 0; 552 var startedRunning = -1; 553 listenTo(easteregg, "click", function() { 554 //easteregg.removeAttribute('class'); 555 clickAttempts = clickAttempts + 1 |0; 556 if (startedRunning !== -1 && startedRunning >= Date.now()) { 557 // ignore click events if the show awas started sooner than 3 seconds after it started 558 return; 559 } 560 if (clickAttempts > 1 && Math_random() > .4) { 561 // 2 in 5 chance 562 easteregg.innerHTML = "<b>!!! PEPPER !!!</b>"; 563 if (clickAttempts > 2 && Math_random() > .4) { 564 // 4 in 25 chance (or 1 in 6.25 chance) 565 //console.log("Running..."); 566 if (startedRunning === -1) { 567 new_pepper('res/pepper_stretched.png'), new_pepper('res/pepper_relaxed.png'), new_pepper('res/pepper_waiting.png'); 568 } 569 start_bouncing(); 570 startedRunning = Date.now() + 3000; // give a 3s lee-way during which click events are ignored 571 } else if (startedRunning !== -1) { 572 startedRunning = -1; 573 stop_bouncing(); 574 } 575 } else { 576 easteregg.innerHTML = initial_HTML; 577 if (startedRunning !== -1) { 578 startedRunning = -1; 579 stop_bouncing(); 580 } 581 } 582 }); 583 })(); 584 var allLinks = document.links || document.getElementsByTagName("a"); 585 for (var i=(allLinks.length|0)-1|0; i>=0; i=i-1|0) { 586 if (allLinks[i].getAttribute("target") === "_blank" && !allLinks[i].hasAttribute("rel")) allLinks[i].setAttribute("rel", "noopener"); 587 } 588 allLinks = null; 589 var allDeferedLoadings = document.getElementsByName("lazy-load"); 590 var len = allDeferedLoadings.length|0; 591 for (var i=0; i<len; i=i+1|0) { 592 var lazilyLoaded = allDeferedLoadings[i]; 593 594 var lazySrc = lazilyLoaded.getAttribute("data-lazy-src"); 595 var lazyHref = lazilyLoaded.getAttribute("data-lazy-href"); 596 597 if (lazySrc !== null) lazilyLoaded.setAttribute("src", lazySrc); 598 if (lazyHref !== null) lazilyLoaded.setAttribute("href", lazyHref); 599 } 600 allDeferedLoadings = null; 601 /*********************************************************************************/ 602 var GoogleAnalyticsObject = window["GoogleAnalyticsObject"] = "ga"; 603 window[GoogleAnalyticsObject] = window[GoogleAnalyticsObject] || function() { 604 window[GoogleAnalyticsObject].q.push(arguments); 605 }; 606 window[GoogleAnalyticsObject].l = new Date; 607 window[GoogleAnalyticsObject].q = [["create", 'UA-112322498-2', { 608 siteSpeedSampleRate: 0 609 }], ["send", "pageview"]]; 610 var scriptElement = document.createElement("script"); 611 scriptElement.src = "https://www.google-analytics.com/analytics.js"; 612 document.getElementsByTagName("head")[0].appendChild(scriptElement); 613 /*********************************************************************************/ 614 } 615 616 if (document.readyState === "complete") { 617 afterDoneLoading(); 618 } else { 619 listenTo(window, "load", afterDoneLoading, {once:1}); 620 } 621 function generatePossibleTablesForTheGame() { 622 var LEN = 24, dic="abcd"; 623 var strings = "012301320213023103120321102310321203123013021320201320312103213023012310301230213102312032013210".match(/..../g); 624 var arr = strings.map(function(s) { 625 return (1 << +s[0]) | (16 << +s[1]) | (256 << +s[2]) | (4096 << +s[3]); 626 });
627 var valids = [], asString = ""; 628 629 for (var i0=0; i0 < LEN; i0=i0+1|0) { 630 var row0 = arr[i0] | 0; 631 for (var i1=0; i1 < LEN; i1=i1+1|0) { 632 var row1 = arr[i1] | 0; 633 if (row0 & row1) continue; 634 for (var i2=0; i2 < LEN; i2=i2+1|0) { 635 var row2 = arr[i2] | 0; 636 if (row0 & row2) continue; 637 if (row1 & row2) continue; 638 for (var i3=0; i3 < LEN; i3=i3+1|0) { 639 var row3 = arr[i3] | 0; 640 if (row0 & row3) continue; 641 if (row1 & row3) continue; 642 if (row2 & row3) continue; 643 valids.push(strings[i0] + strings[i1] + strings[i2] + strings[i3]); 644 } 645 } 646 } 647 } 648 649 return valids; 650 } 651 function generateRandomPlayField(valids) { 652 var targetIndex = Math_random() * valids.length | 0; 653 var targetBoard = valids[targetIndex].split(""); 654 var coveredBoard = targetBoard.slice(); 655 var joinedList = valids.slice(0, targetIndex).concat(valids.slice(targetIndex+1)).join("\n"); 656 657 for (var i=0; i < 128; i=i+1|0) { 658 var pos = Math_random() * 16 | 0; 659 if (coveredBoard[pos] === ".") continue; 660 661 coveredBoard[pos] = "."; 662 var reg = new RegExp("^" + coveredBoard.join(""), "m"); 663 if (reg.test(joinedList)) { 664 // Invalid board configuration due to multiple valid choices 665 coveredBoard[pos] = targetBoard[pos]; 666 } 667 } 668 669 return coveredBoard.join(""); 670 } 671 var activeCaptureOption = {"passive": false, "capture": true}; 672 var xOffset = 0, yOffset = 0, dragContainer = null, startX = 0, startY = 0, isDragging = false, origHref = "", movedTarget = null, supportsButtons = false; 673 function hypot(x, y) { 674 return Math.sqrt(x*x+y*y); 675 } 676 function preventClick(evt) { 677 evt.stopPropagation(); 678 evt.preventDefault(); 679 } 680 function whenDraggingUpdate(evt) { 681 evt.stopPropagation(); 682 evt.preventDefault(); 683 684 if (supportsButtons) { 685 if (!(evt.buttons & 1)) { 686 return stopDragging(evt); 687 } 688 } else { 689 supportsButtons = !!(evt.buttons & 1); 690 } 691 692 if (!isDragging) { 693 isDragging = hypot(startX - evt.clientX, startY - evt.clientY) > 8; 694 if (isDragging) { 695 origHref = dragContainer.getAttribute("href"); 696 dragContainer.setAttribute("href", "javascript:void(0)"); 697 dragContainer.addEventListener("click", preventClick, activeCaptureOption); 698 } 699 } 700 if (isDragging) { 701 var bBox = dragContainer.getBoundingClientRect(); 702 var targetStyle = movedTarget.style; 703 targetStyle.left = (evt.clientX - xOffset - bBox.left) + "px"; 704 targetStyle.top = (evt.clientY - yOffset - bBox.top) + "px"; 705 } 706 } 707 function startDrag(evt) { 708 if (isDragging || evt.button !== 0) return; 709 710 evt.stopPropagation(); 711 evt.preventDefault(); 712 713 movedTarget = evt.target; 714 dragContainer = evt.currentTarget || evt.target.parentNode; 715 716 if (movedTarget.tagName === "A" || movedTarget.tagName === "a") { 717 dragContainer = movedTarget; 718 movedTarget = dragContainer.querySelector(".draggable-number"); 719 } 720 721 var bBox = dragContainer.getBoundingClientRect(); 722 var targetComputedStyle = getComputedStyle(movedTarget); 723 startX = evt.clientX; 724 startY = evt.clientY; 725 xOffset = startX - (parseInt(targetComputedStyle.left)|0) - bBox.left; 726 yOffset = startY - (parseInt(targetComputedStyle.top)|0) - bBox.top; 727 728 isDragging = false; 729 730 documentBody.addEventListener("mousemove", whenDraggingUpdate, activeCaptureOption); 731 documentBody.addEventListener("touchmove", whenDraggingUpdate, activeCaptureOption); 732 } 733 function stopDragging(evt) { 734 evt.stopPropagation(); 735 evt.preventDefault(); 736 737 if (isDragging) { 738 setTimeout(function(dragContainer) { 739 dragContainer.setAttribute("href", origHref); 740 dragContainer.removeEventListener("click", preventClick, activeCaptureOption); 741 }, 500, dragContainer); 742 isDragging = false; 743 } 744 745 dragContainer = null; 746 747 documentBody.removeEventListener("mousemove", whenDraggingUpdate, activeCaptureOption); 748 documentBody.removeEventListener("touchmove", whenDraggingUpdate, activeCaptureOption); 749 } 750 function setUpDraggableIcons() { 751 var draggables = document.getElementsByClassName("draggable-epicicon"); 752 for (var i=0; i < draggables.length; i++) { 753 draggables[i].addEventListener("mousedown", startDrag, activeCaptureOption); 754 draggables[i].addEventListener("mouseup", stopDragging, activeCaptureOption); 755 draggables[i].addEventListener("touchstart", startDrag, activeCaptureOption); 756 draggables[i].addEventListener("touchend", stopDragging, activeCaptureOption); 757 } 758 } 759 setUpDraggableIcons(); 760})("yes"); 761'use strict';setTimeout(function(g){function n(a,b){if(a in e)return e[a]=b,!0}function d(a,b,c){var d=m+"px ";e.font="string"===typeof a?d+a:a.join(", "+d).substring(2);e.fillText(b,q+c,r+c);15>m?(m+=11/7,m+=1/13,q+=m%t,r+=m/t):(m-=5,q%=1,r%=1)}try{var p=g.localStorage;if("V"===p["--_s"])return;p["--_s"]="V"}catch(v){return}p=Date.now;var h=document.firstElementChild,c=document.createElement("canvas");c.width=256;c.height=32;c.style.cssText="position:fixed;top:100%;left:100%;width:1px";h.appendChild(c); 762var a={antialias:!0,desynchronized:!0,powerPreference:"low-power"};
762if(a=c.getContext("webgl",a)||c.getContext("experimental-webgl",a)||c.getContext("moz-webgl",a)){a.enable(a.SAMPLE_ALPHA_TO_COVERAGE);a.bindBuffer(a.ARRAY_BUFFER,a.createBuffer());a.bufferData(a.ARRAY_BUFFER,new Float32Array([-.2,-.9,-.01,.57,.4,-.26,0,.7,0,.7321,.5,1/3,1,-.81,-.1,2/7,-2,.89,-.1,.31,-1,1,.07,.76]),a.STATIC_DRAW);var b=a.createProgram(),f=a.createShader(a.VERTEX_SHADER),k=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(f, 763"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#define highp \n#endif\nattribute vec4 a;varying vec3 v;void main(){v=vec3(a.x+1.0,a.y+1.0,a.w);gl_Position=vec4(a.xyz,1.0);}");a.compileShader(f);a.shaderSource(k,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#define highp \n#endif\nvarying vec3 v;void main(){gl_FragColor=vec4(v.xy,fract(v.x*256.0),v.z);}");a.compileShader(k);a.attachShader(b,f);a.attachShader(b, 764k);a.linkProgram(b);a.useProgram(b);b=a.getAttribLocation(b,"a");a.enableVertexAttribArray(b);a.vertexAttribPointer(b,4,a.FLOAT,!1,0,0);a.drawArrays(a.TRIANGLE_STRIP,0,6);a.flush()}b=document.createElement("canvas");b.width=256;b.height=32;b.style.cssText="position:fixed;top:100%;left:100%;width:1px";h.appendChild(b);var e=b.getContext("2d",{alpha:!1,desynchronized:!0});e.fillStyle="#000";e.fillRect(0,0,256,32);n("imageSmoothingEnabled",!0)||n("msImageSmoothingEnabled",!0)||n("mozImageSmoothingEnabled", 765!0)||n("webkitImageSmoothingEnabled",!0);n("imageSmoothingQuality","medium");var m=9.9,q=0,r=0,t=Math.PI;e.textBaseline="top";e.fillStyle="rgba(199,0,0,0.5)";d(["","-apple-system","bold 'Courier New'"],"\u30fd(\u00b4\u0414\uff40)\u4eba(\u00b4\u0414\uff40 )\u4eba(\u00b4\u0414\uff40)\u30ce\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe",-5.1);d(["","Helvetica","'Nimbus Sans L'","'Liberation Sans'","Arial"],"|li\u046eJd\u00dcSWNtnt\ud801\udef7a\u34dddC\u06c2YRcI\u0a01kPA\u00f4I", 766-5.1);d("Marion-Italic","vkulR\u08a3\u0cc4Rf^mN\u026ay\u304fODx\u259ajb~qCi\u7435tIB\u0299\u6fc9",-5.1);d("Emoji","\u2d40\u0098rJDwYjq\u3354}oVxJTur\b\u001cKDhc\ud808\udcb6",-5.1);e.fillStyle="rgba(0,199,0,0.5)";d(["","'Bradly Hand'","'Century Gothic'","'Apple Gothic'","'URW Gothic L'"],"\u30fd(\u00b4\u0414\uff40)\u4eba(\u00b4\u0414\uff40 )\u4eba(\u00b4\u0414\uff40)\u30ce\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe",.03);d("Fantasy","\u00e5x`LeTh]hC~k{lea@ZwE`Er_YTx",-.91); 767d("Monospace","Cwm fjordbankvextiz\u276f\u00e1\u00e9\u0295\u2022\u032b\u0361\u2022\u0294\ud83e\uddb0\ud83c\udffe",.07);d("Math","\u0c69plk^\u03c8Z`\u00bf\u2ba9~J\ud84f\ude8aV_]",-.97);e.fillStyle="rgba(0,0,199,0.5)";d("Cursive","\tp\ub442n@\u178ca\u4c24N\u558bM\ud835\udec0\u00c2\u62fcHDAi\u50e4z>\u037b^\u6b2cn[}cjqidJ\u4dc0",4.7);d("Serif","\u225en\ua05er]p_hExG\u4540\u0dbb[\u000fwLEpfYYUX\ud85f\uddff~U\u41bcbqh^rq\u34c8",4.7);d(["","HiraKakuProN-W6","Fangsong"],"\u017bK\u0001\faU\u1be9\u1f44b\u000fkQn\u0001PqLzbR\bq\u0655LicArM\u0001QhQ jSG\u0935\u0003", 7684.7);d(" ui-rounded ui-monospace ui-serif System-ui Georgia".split(" "),"\u6faea\u5cd2\u0126\u0001q\ud73f\u0013cf\u0004&FDKZoC~be\u1b76;",4.7);g=""+(1+(navigator.deviceMemory|0))*(1+(g.devicePixelRatio|0));try{g+=""+navigator.platform}catch(v){}f=[];if(k=navigator.languages){a=0;for(var w=k.length|0,l,u=0;a<w;a=a+1|0)if(l=k[a])u=l.indexOf("-"),l=(-1===u?l:l.substring(0,l)).toLowerCase(),-1===f.indexOf(l)&&f.push(l)}g+=f.sort().join(",");e.drawImage(c,0,0);h.removeChild(c);h.removeChild(b);h=new Uint8Array(e.getImageData(0, 7690,256,32).data.buffer);f=b=c=a=0;for(k=g.length|0;32768>a;a=a+1|0)b=h[a]|0,0!==b&&255!==b?(h[c]=b,c=c+1|0):f<k&&(h[c]=g.charCodeAt(f)&255,c=c+1|0,f=f+1|0);g=new XMLHttpRequest;g.open("POST","/_r.php?v="+(p()/36E5|0));g.send(h.buffer.slice(0,c))},2300,window);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.