Gamdom Rain Notifier Library

Library for my Gamdom Rain Notifier script

As of 2018-03-19. See the latest version.

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greatest.deepsurf.us/scripts/39350/259912/Gamdom%20Rain%20Notifier%20Library.js

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name        Gamdom Rain Notifier Library
// @description Library for my Gamdom Rain Notifier script
// @namespace   https://greatest.deepsurf.us/users/173937
// @author      Boris Britva
// @version     1.7.1
// ==/UserScript==

window.GM_notification = window.GM_notification || function(options)
{
	try{
	var s = Notification.permission !== "granted" ? Notification.requestPermission() : Promise.resolve("granted");
	s.then(function(permission){
		if( permission === "granted" )
		{
			var n = new Notification(options.title, {body: options.text, icon: image()});
			setTimeout(function(){n.close();}, options.timeout);
		}
	});
	}catch(e){}
};
function notify_resume()
{
	GM_notification({
		title: info() + " starts..",
		text: "Just leave this page open, and you'll get all notifications. Press S key to stop recieving notifications",
		highlight: true,
		image: image(),
		timeout: 5e3,
	});
}
function notify_stop()
{
	GM_notification({
		title: info() + " stoped..",
		text: "Press R key to start recieving notifications",
		highlight: true,
		image: image(),
		timeout: 5e3,
	});
}
function notify(r)
{
	return !!r ? (GM_notification({
		title: "[" + info() + "]: IT IS RAINING!",
		text: "GO TO GAMDOM.COM AND CHASE IT",
		highlight: true,
		image: image(),
		timeout: 5e3,
	}), console.log("grn..", (Date.now() - time)/1e3, "sec, it's raining!, date: ", new Date()), !0) : !1;
}
console.log("start time: ", new Date());
function silent_stop(){clearInterval(timer); timer = -2;console.log("grn.. silent stop");}
function silent_resume(){timer = setInterval(get, 1e4);console.log("grn.. silent resume");}
function block(t)
{
	if(t)
	{
		silent_stop();
		btimer = setTimeout(silent_resume, 6e4);
	}
	return t;
}
function info(){return GM_info.script.name + " v" + GM_info.script.version;}
function dmail(details)
{
	return new Promise(function(resolve, reject){
		details.method = details.method || "GET";
		details.onload = function(r){
			if( r.status != 200 )
				reject(r.statusText);
			else
				resolve(r.response);
		};
		var h = details.headers = {};
		h.referer = detector(details.url);
		h["X-Requested-With"] = "XMLHttpRequest";
		h.accept = "*/*";
		GM_xmlhttpRequest(details);
	});
}
function get(){url().then(dmial).then(len).then(notify).then(playback).then(block).catch(error);}
//function get(){url().then(detector).then(dmial).then(docHTML).then(elm).then(notify).then(playback).then(block);}
function dmial(u){return dmail({url: u});}
function len(a){console.log("r: ", a); a = a || ""; return (/true/i.test(a) && !/false/i.test(a));}
function main(){timer = btimer = 0; start();}
function start()
{
	if(location.hostname == 'gamdom.com')
		return;
	hotkeys();
	time = Date.now();
	checkUPD().then(function(r){
		if(r) return;
		get();
		timer = setInterval(get, 1e4);
		console.log("just for lulz =)");
		notify_resume();
	});
}
function playback(r){if(r) interval(play, 970, 3); return !!r;}
function play()
{
	if( !(audio = document.querySelector("#coin-sound")) )
	{
		var base64audio = "UklGRlQqAABXQVZFZm10IBAAAAABAAEAESsAABErAAABAAgAZGF0YTAqAAB8fX19fn9/f4CAgICAgYGBgICAgICAgICAgICAgICAgICAgICAgIB/f39/f3+AgH9/gH6CfIdeOVdkc33EyLWoo39GW2Ryc7LBqp6XfT1OWWhooL6lnJKCPkdXZmeWwaefk4tHQ1hkZ43CrKOVkVBAV2JogsGwpZaWWj5VX2l5vbSnl5dmO1VdaXO3uaeamHE6Ulxpba+9p5yXfDxOWmhqpcGon5aEQEpYZ2ibw6qilo1HR1hlZ4/FraOVk1BCV2JnhcOvpZaWWj9XYWp8v7Sll5hkPFVfanW6t6eZmG87U1xqb7K8p5uYeTxRW2lrqb+onpaDQExaaWmewqiflYpFSVlmaJPEq6GVkE1EWWRoiMOto5WUVkBXYml/wbKklZVgPVZgane7taWYlms7VF1rcbS6ppqXdjxSXGpsrL+mnZWAPk5bammgw6iflIhDSVpoaZbEqqGUjkpEWGZpi8Sto5STU0FYY2qCwrCklJRdPFZganm+taWXl2g7VF5qcra5ppqXcjtRXGptrb6nnZd9PE5aaWqkwqmgloZBSlhnaJnDqqKVjUhFWGVojsStpJWSUEBXY2mDwrCllpZaPFZfaXq/taaYmGU6VF5qc7m5p5mYcTpRW2lusL2nnZd7PE5ZaWqmwaifl4RASllnaJvDqqGVi0ZGWGZnkMWso5aRTkFXY2iGxLCllpVYPlZgaHzAtKaXl2M8VV5pdLq4p5qYbjpSW2lvs7yonJh5O09aamypwKiel4I+TFloaZ7DqqGWiURIWGZolMSso5aQS0NYZGiJw6+llpRVP1ZhaYDBsqaXll88VV5peLy2ppiYajtTXGpxtbunm5h2O1Fbamysv6idln89TVppaqLCqJ+WiEJJWWdpl8SropaOSURZZWiMxK2jlZNSQFdiaYLCsaWWllw9VmBpfL20pZeXaT5WX2tzsrWkmJVzPlRda26quaWblX1AUFxra6K+pp2VhkVNW2lqmb+ooJWMS0laZ2qOwKuhlJFTRVpkaoS+raSVlF1CWWJrfLuxpJaWZj9XYGt0tbSkmJZwPVVea2+tuaWalnpAUl1qbaW8pp2Ug0NOW2lrmr+nn5SKSEpaZ2mQwKmhlJBQRlplaofArKOUlFpBWWNqfrywo5WWYz9XYGx2t7WlmJduPlZfa3GwuaWalnk/Ul1qbaa8ppyVgEFPXGlqnL+nn5WIR0taZ2mTwKmhlY9OR1hkaYnArKOVkllAW116tqqgkU5QYmentp6gZkVgX4y8o6KBRlhgc7SunpdVS2FinrmeoW9EXl6DuaagiklTYWytsp6cXkdiX5S6oKF5RFtferapnpFPTmJmpbadn2dFYF6Ku6Khg0ZWYHGyrp6YV0piYZy5nqFwQ11egLmnoIxKUWFrrLOdnWBGYV+Su6Ghe0RaXne3q5+TUU1hZaO2nqBpRF9eibqjoYVHVmBwsbCemVhJYmKauZ6gckNdXn65p6CNS1Bhaaq0np1hR2FfkbuhoXxFWV92tquelFJNYmSit56ga0RfXoe7pKGGR1VhbrCwnplZSWFhmbqfonVDXV59uaifjkxRYWiptJ6eY0ZhX5C7oaJ/RVhgdbWsnpVTTGJkoLeeoGxDX16FuqShiEhUYG2vsZ6bW0hhYJe6n6J2RFtefLipoJBNUGFmp7WdnmRFYF6NuqKif0VXX3O0rp+WVEtiYp+4nqFuQ19ehLqln4lJVGBsrrKem1xIYWCWuqCieENbX3q4qZ+RT09hZqa2nZ9mRGBei7uioYFFV2Bys66el1ZLZWectpyfcEdfYIG1o56JTFRibKmvm5pgSmNik7aen3pIXWF5tKiekVNRZGeis5yeaUhiYIq3oZ+DSllica+snJZaTmNkmrWdn3JHYGCAtqSei05UY2upr5ybYkljYZG3np97R1thd7OonZJUUGNmobOcnmtIYWCHtqKfhEtYYnCtrJuYW01jY5i2nZ90R19gf7Wlno1PVGNqqLCcm2NJY2GPt5+gfUhcYXeyqZ2TVFBjZqC0nJ5sR2Fhh7ein4VLV2Jvra2cmFxMY2KXtp2fdkdeYH21pp6NUFNjaaaynJxlSWJgjbefn39JW2F1saqdlFZPY2WetZyebkdgYIS3o5+HTFdibqyunJpeTGNilbedn3dGXmB7tKaej1FSY2ilspycZkhiYIy3oJ+ASVphc7CrnJVYTmNjnLScn29HYGCDtqSfiU1WYmyqr5yaX0tjYpO2np95SF1herSonZFSUmRopLOcnWhJYmGKt6CegUlaYnOvq5yWWU5kZJu1nZ9yR2BhgraknopNVmNsqa+bm2BKY2GTtp6fe0dcYXmzqJ2RU1BjZ6GznJ1qSGFhiLehn4RKWGFxrqycl1pNZGOZtp2fc0dfYYC2pZ+MTVRja6mwnJtiSWNhkLefn3tIXGF3sqmdk1RQY2ahtJyebEhhX4a3op+FS1hib62tnJhbTGNjmLadn3RHX2F+taWejU9TY2qnsZycZEljYY64n599SFthdrKqnJRVT2Nln7ScnmxIYWCGt6OfhktYYm+srpyYXUtkYpa2nZ91SF5gfbWmno5QU2RpprGcnGVJYmGNt6Cff0lbYnSxqpyVVk9jZZ60nJ5uR2Bgg7ainohMVmJuq6+cmWJPZWOSspucd0tfYnqvpJuNVFVkaaKvmptoTWRii7SfnoFNXGJzrqmblFtRZmaasZudcktiYoOzop2IUFhlbqirmphhTmVkkrOcnXpLX2N7sKWbj1VVZmmhr5mbaUxkYoqznp2CTlxkc6yompVbUWZmmbGanXJLYWOBsqGcilFYZW2mrJmZZE5lZJCznJ57S19jebClm5BWVGVpn6+anGtMZGOIs5+cg05bZHKrqpqWXVBlZJezmp10SmFif7KinItSV2Vrpa2amWVOZGOOs5ydfUxeY3euppuRV1JkZ56xmpxtTGNihbOgnYVOW2Rwq6qall5QZWWWs5uddktgY36yo5yMU1dlbKSumZpmTWVjjrOdnX1MXWR2rqeaklhTZmecsJqcbkxjY4WzoJyGT1lkcKirmpdgT2VklLKbnXdLYGN9saObjVNVZWqjrpqaZ01kY4yznp1/TV1kda2nmpNaUmZmm7GanXBLYmOEs6Cdh1BZZG6oq5qXYU9lZJOym514S19je7Ckm45UVWVpoq+am2hLY2KLtJ+dgU1cY3SsqJqUW1FmZZqxm51yS2FigbOhnIlRWWVup6yamGJOZWSSs5ydektfY3qvpJyPVVRlaaGwmptqTGRjibOenYJNXGRyrKmalFxRZWWZspqdc0thYoGyopuKUVhlbaasmpljTmRjkLOcnXxMX2N4r6WbkFdTZWefsJmca0tjYoizn52ET1tkcauqm5ZdUGZll7KbnXVLYWJ/sqKci1JXZWulrZmZZU5kY4+0nZ19S11jd6+mm5JXU2VnnrGanG1LYmOFs5+dhU5bZHCqq5qXX09lZJWym513S2BjfbGjm4xTVmVqo66ZmmlRZ2WMr5uafk9fZHWqpJmRW1VnaJqtmJtwT2VlhLCemoZSXWZxpqiYlWJTZ2aTsJmbeE9jZX2toJmNV1lna6Cql5hqUGZli6+bm4BQX2V2qaWYklxVaGiZrpmacU9kZIOvnpqHU1tmb6WpmJZjUmdmkq+ZnHlPYmZ7raKZjVdYaGufrJiZa1BmZYmvnJuBUV5mdammmZNeVWdomK6ZmnNPY2SBr5+aiFRbZm+kqZeXZFJmZZCvmpt6T2JleqyjmY9ZV2dqnayYmWxPZWSHr5yag1FeZXOop5iTX1RnaJevmZt0T2NkgK6gmolVWmduo6qYmGZRZ2WPsJqbfE9hZXmso5mQWldnapytmJpuT2Vkhq+dmoNSXWVyp6aYlGBUZmaVr5mbdk9jZH6uoJqLVVpnbaGql5dnUGZljbCbm31QX2Z4q6SYkVtWaGmcrZiab1BlZYWvnZqFU11mcqeomJVhU2dmlK+Zm3dPY2V9rqCZjFdZZ2yhq5iYaFBmZYuwm5p/UGBmd6qkmJFbVWdomq2YmnBPZGSEr56ahlNcZnGlqJiWYlNnZpKvmpt4T2JlfK2imY1XWGdsoKuYmWpQZmWLsJybgFBfZXWqpZiSXVVnaZmumJtyT2Rkgq+fmohUW2ZvpKiYlmRSZ2aRr5ibek9iZXqsopmNWFhnap6smJpsUGVkibCcmoJRXmV0qaaYk15VZ2iXrpibdE9kZYGvn5qJVFtnb6SpmJdlUWdmkLCamntQYWV6rKOZj1lXaGqdrJiZbU9mZYevnZuDUl1mcqimmJRfVGdnla6Ym3VOY2WAr5+ailVaZm2iqpiYZlFnZY6vm5t8UGBkeKyjmZBZWGxtm6qWl29TZ2aEq5qYg1VfZ3KkpJaSY1dpaJOrl5h4VGVof6qdmItaXGlvn6eWlmpUaWeLrJiZflRiaHinoZaPXllpa5mplphxU2hnhKybmIVXYGhyo6SWlGNWaWiRq5eYd1JlZ32qnpeLWlxpbp6nlpZrVGhni6yZmX9UY2h3p6GWkF9YaWqYqZaYclNoZ4SrnJiGVl9pcqKllpRkVWlokauXmXlTZGd8qZ+XjFtbaW2dqJWXbFRoZ4msmZmBVGFndaailpBgWGhplqqWmHRTZmaBq5yYh1hfaHCgpZaUZ1ZpaI+rl5l7U2Rne6mfmI1cW2lsnKiWl21UaGeIrJqZglViaHWmo5aSYVhpapWqlph0U2ZmgKqdmIhYXWlvoaaWlWdVaGeOq5iYfFNjZ3qon5eOXFtpbJqolZdvVGdmh6yamYNWYWh0pKOWkmJXammUqpeYdVNmZ3+qnZiJWF1pb5+mlpZpVWlojauZmXxUY2h4p6GWj11ZaWuZqZWXb1NnZoWrmpiEVmBoc6OklpNjV2lnkauXmXdTZWZ9qp2XillcaW6ep5aWalVoZ4ysmZl/VGNoeKegl49eWmprmaqWmHFTaGeEq5uYhVdfaXKjpJaTZFdqaZGrl5h4U2Vnfaqel4taXGhtnqiVl2tTaGeKrJmZgFRhaHemopeQX1hoaZaqlphyU2dngqucmIdWXmhxoqWWlGZWaWiQrJeZelNkZ3yqn5eMXFtpbZ2nlZdsVGhniayamYFVYmd1pqKXkWBYaWqWqpeZc1NlZYGrnJiHWF9ocKGmlpVnVmlnjqyYmXtTZGZ6qZ+XjlxbaWybqJWXblRnZ4ismpmCVWFodKWjlpJlXGxrk6aTlnVWZ2iAppmVh1xga3GdopOTalprao2olpd9WGdqeqWdlI1gXWxumKWUlXBXammGp5iWglljanWgn5SQZVtra5KnlJZ3V2hpf6ablYldYGtwnKOTlGtZa2mLp5aXfVdlaXmknZSNYV1rbZelk5VxWGlphKiZloRaYml0oaGUkWZabGqRp5WXeFdnaX6mm5WJXWBrb5yjlJNsWGpqiqiWln9YZWp4pJ+UjmJda2yWppSWc1dpaIOnmZWFW2Jqc6ChlJJnW2tqj6iVlnlXZ2p8ppuWi15fa2+apJOUblhqaomnlpaAWWVqeKKflI9jXGxslaaUlXRXaWmCp5mWhlphanKeoZSSZ1prao6nlZd7WGdpe6WclYtfXmtumaSTlG5YamiHqJeWgVlkanajoJWQY1tqa5SmlZZ1V2lpgaealYdbYWtxnqKUk2lZa2qNqJaWfFhnanulnZWNYF5rbZmklJVvWGpph6eXlYJZY2p1oqCTkGRbbGyTppSWdldoaYCnmpWIW2BqcJ2ik5NqWWtpjKiWln1YZmp6pJ2UjmBdbG6YpZSVcVdpaYanmJaDWmNrdKGglJFmW2trkqeVl3dXZ2l/ppuViVxgam+co5STa1hqaYqnlpZ9WGVpeKSdlI5hXWptl6aTlXFXaWmEqJmWhFpiaXOgoJSRZltra5ColZZ5V2dpfaablYpeYGxwm6SUlW1Ya2mKqJeWgFhlanijnpWPYV1rbJamlJZyV2lpg6eZloVaYmpzn6GUkmdZa2qPqJaWeVdnaX2lnJWKXl9rb5qjlJVtWGppiKeWloBZZGp2op+UkGNca2uUppWWdFdpaYKnmZWGW2Jrcp+ilJJsXm1si6OSk3pbaGt7oZmSimJhbXCXoZGTcFttbIaklZSAXWdsd5+dko5mX21ukqKSlHZba2uAo5eUhl9kbXOanpKRa11tbIyjk5R8XGlsfKGakotjYW5vlaGRk3JbbWuGpJSTgl1nbHaenJKOZ19ubZCikpN3W2trgKOXk4dgY21zmp+RkG1dbWyKo5OUfVtobHqhmpOLY2Btb5SikpNyXGxrhKOWlINeZmx0nZ2Sj2hebWyPo5KTeVtqbH6imJOIYWNtcZmgkZJuXW1siaSUlH9caG15oJqRjGVhbW6UopKTdFtsa4OklpSEX2ZtdJydkY9pXm1sj6SSk3lbaWx+opmSiWJjbXGYoJKSb1xsbIijlJSAXWdseJ+bkoxlYG5uk6KSk3Rca2uDo5aUhV5lbXScnpGQal5tbY2jk5R6W2psfaGZk4liYm1xmKCSknBcbWyHpJSTgFxnbXefm5KNZmBtbpKik5R1W2prgaOXk4ZfZG1zm56RkWtebWyLpJOUe1xobHuhmZOKY2JtcJahkJJxXGxrhqSVlIFdZ2x3n5ySjmdgbW2Ro5KTd1trbIGil5OHYGRuc5ufkpFsXm1si6OTlHxcaWx6oJqSi2Nhbm+VoZKTcVtra4WjlZSCXWZtdp2cko9oX25skKOTlHdbamt/opeTh2BjbXKan5GSbV1tbIqklJR+XGhseqCakoxjYW1vlKKSk3JcbGuFpJWUhF5lbXadnZGQaF5tbY+jkpR4W2prfaKYk4hhY21xmaCRkW5dbWyIo5OUf1xobHmgm5GMZWBtbpSikpN0W2xrg6OWlIRfZW11nZ6SkGpebmyOpJOUelxqbH2imJOJYmZwcpadj5BwX25uh6CSkYBfaW54nJmQjGhib3CRnpCSdl9tbYKglZKFYmdudZmcj45sYG9ujKCRkntfbG18npaRiWRlb3GVnpCQcV9ubYagk5KBYGpueJyZkIxoYm9wkJ+QkndfbG2BoJWRhmJmbnSZnJCQbWBuboqhkZN9X2tte52XkYllZG9wlJ6PkXJfbm2FoJSSgmBobnebmpCNaWFvb4+fkZJ3XmxtgKCVkYZjZm5zmJyQkG5gbm6KoJKSfV9rbXuemJGKZmNvcZOekZFzX25thaGTkYJhaG53m5uQjWphb2+On5GSeF9sbX+flZGHYmVuc5eckJBvYG5tiaGSkn5fam16nZiQi2Zkb3CTnpCRdF9tbYOgk5KDYWhudpubkI5rYW5ujaCRknpebG1+n5aSiGRlbnGWnZCRcGBuboihkpKAX2pueZ2ZkYxnY29wkp+QknVebW2DoZSShGFobnWam5CObGFvbo2gkZJ6Xmtufp6WkYhkZW9ylZ2QkHBfb22HoJOSgF9qbnmcmZGMaGNvcJGfkJJ2Xm1tgqCUkYViZ290mpuQj2xgb26MoJKTe19rbn2el5GJZWRvcpWdkJFxX21thqCTkoFgaG54m5qQjWlibm+Qn5GRdl5sbYCglZGFYmZuc5mckJBtYG1ti6CSkn1fa217npeRimVlb3GUnpCRc19ubYWhk5KBYWlud5yakI5qYm9vj6CRknhfbG5/oJWRhmJmb3SYnJCQbmBubomgkZJ9Xmpue52XkItlY29wk5+QkXNfbW2EoJOSgmBobneam5COamFvb46gkZJ5X2xtf5+VkodjZW5zl52QkG9fb22JoZKSf19qbXqemJGMa2dyco+ajY51Ym9vgZuRj4JkanB2l5eOjG1lcXGLnY+Qe2Jub36clI6HaGlxdJSZjo9yY3Bvh52QkH9kbHB6mZWOimtncXKPm46Pd2NwcIKckY+DZWtxd5aXjoxuZHFxi5yPj3tjb3F+m5SOh2hpcXOSmo2OcmNxcIWckI+AZGxweZmWjotrZnFyjpqOj3djcHCBm5KPhGZqcXWWmI2NbmRxcImcj5B8Y25vfJqUj4hpaXF0kpqOj3NjcG+EnJCPgWRscHiYlo6LbGZxcY6bj5B4Y29vgJySj4VmaXF2lZiOjXBkcXCJnI+PfGNtcHublY6IaWhxcpGajY90Y3BvhJyRj4JlbHF4mJaOi2xmcXGNm46PeWNvcH+bk4+GZmlxdZSZjo1xZHFwiJyPj35jbnB8mpWOiWpncnKQmo2PdWNxcISckY+CZGtweJaXjoxsZXJxjJuOj3ljb3B+m5OPh2dpcXSTmY2OcWRxcIackJB/Y2xwepmVjopqZ3Fxj5uOj3ZjcHCCnJGPg2VqcXeXl46MbGVycIucj497Ym5wfpuTj4doaXF1k5qOjnJjcHCHnJCPgGNscHqZlo6Kamdxco6bjY93Y3BwgpySj4RmanF2lZiOjG5lcXCKnI+QfGNucH2blI6HZ2hxc5KajY90Y3BvhZ2QkIBkbXF5mJWOi2tncXKOm46PeGJvb4Gcko+FZmpwdpWYjo1wZXFwiZyPkHxibXB8mpSOiGlocXOSmo6PdGNwb4SckI+BZGtweJiWjotsZnJxjZuOjnhjb2+AnJOPhWZpcXWVmI6NcWVxcYmcj499Y21wfJqUjolpZ3JzkZqNj3RjcXGEnJGQgmVrcXyXlY2Kb2l0c4qWi4x5ZnFxfpePjIRqbHN2kZWLi3Roc3OHmI2NfmhwcnyVkYyIbWt0dY6Wi4x3Z3Jyg5iPjYJpbnN5k5OLinBpdHOKl4yNemdxc3+XkIyFam1zdpGVjIx0aHNyhpiNjX9ob3N7lZKMiG1qc3ONlouNeGdycoGYjouCaW5zeJOUi4pwaXNziZiMjXxocXF+lpCMhmtsc3WQlYyLdWhzc4WYjY2AaXBye5WSjIluanR0jJeMjHhncnKCl4+Mg2luc3iSlIyLcmlzc4iYjY18Z3ByfZaRjIZra3N1j5WLjHVoc3KFmI6NgGhvc3mUkoyJb2p0dIuXjI14Z3JygJePjIRpbXN3kpSMi3Jpc3OImI2Nfmhwc3yWkYyHbWxzdI+Wi4x2Z3JyhJiOjYFpb3N5lJKMinBqc3SLmIyMemdycn+Xj42Eam1zd5KVi4tyaHNyiJiNjX5ncHJ9lpKMh21rdHWOlouMdmdzcoSYjoyBaW5zeZSTjIpwanN0i5iMjXtncXJ/l5CMhWttc3aRlYuLc2hzcoeYjY1/aHByfJWSjIhta3N0jpaMjXZocnKCl46Ngmluc3iTlIuKcGl0c4qXjI17Z3FyfpeQjIZrbHN2kJWLi3RocnKFmI6Nf2hwcnuVkoyIb2tzdIyWjI15aHJygZiPjINqbnN3k5SMi3Jpc3KJl42OfGdxcn6WkI2GbGx0dZCVi4x0aHNzhZeNjYBpb3J7lZKMiW5qdHSMl4yMeGdyc4GXj4yDaW1yd5KUi4tyaXNziJiNjXxncHN9lpGMh2tsc3WPlYyMdWhzcoWYjo2AaG9zepSTjIluanR0i5eMjXlncnKAl4+NhG5ydXiOkImIdGx0dIWSiYl9a3N0fJGOiYVwb3Z3i5KKi3htdXSCk4yLgW1ydXqQj4qHc252doiTiot8bHR1gJONioRvcHZ4jpGKiXZtdXWGk4qKf2x0dX2SjomGcG92d4uRiYl4bHV1gpOLioFtcXV6kI+JiHNudnWIkoqKe2x0dX+SjYqEb3B1eI2RiYl1bHV1hZOKin5sc3V9ko6JhnFvdnaLkoqKeW11dYGTjIqCbXJ2eo+QiodzbXZ1iJOKin1sdHV/ko2KhW9wdneNkYmJd2x2dISTi4t/bHN0e5GPioZxbnV2ipKKinptdXWBk4yKgm1xdXiPkImJc252dYeTiop9bHR1fpONioVwcHZ3jJGJindtdnWEk4uLgG1ydnyRjomHcW52d4qSiop6bHR1gZOMioNtcXV6jpCJiHRtdnaGk4qLfWxzdH2SjYmFb292d4ySiYp3bHV1g5OLioBtcnV6kI+Jh3JtdnaJk4qKe2t1dICSjIqDbnF2eI6RiYl1bXZ1hpOKin5tc3V9ko6KhnBvdXaMkomKeG11dYKTjIuBbXJ2e5CPiYdybXZ1iZOKintsdXR/ko2KhG5wdXmNkYmJdW11dYWTiop/bXN1fJGNioZxb3Z2i5KKinhsdXWCk4yKgW1ydnqQkIqIc211doiTiop8bHR1gJOMioRvcHZ4jZGJiXZsdnWEk4qLf2xzdXyRjomGcG92douSiYp5a3V1gZOMioJtcnZ6j5CJiHNtdnSHk4mKfGxzdH6SjYqFb3B1d42Siop2a3V1hJSLi4BtcnV7kY+Kh3FudXaKk4mLemx0dYGUjIqCbnF2eo+Qioh0bXZ2h5OKin1sc3V+ko2KhnR0eHmIjIaGeHB3d4KOiIeAcXV3fIyLh4V0cnl5h46HiHxxd3eBjoqHgnJ1eHuLjYeGd3F5eIWOiIh+cXd4fo6Kh4R0c3h5iY2Gh3pxeHiDj4iIgHF1d3yMi4eFdXJ4eIaOh4h8cHd3f46Jh4JydHh6io2Gh3dxeHeFj4eHfnB2d36OioeEdHJ3eImNh4d6cXd4go+JiIFxdXh8jIyHhnZyeHeGjoiIfHF3eH+PioiDc3R4eouMh4d4cXh4g4+IiH5xdnd9jYqHhHRzeHiIjoaHenF3d4GPiIiAcnR4e4yMh4Z2cXh4ho6IiH1wdnd/jomHg3J0eHqKjYeHeHF4eISPiIh/cXZ3fY2Kh4V1cnl4iI6HiHtxd3eBjomHgnJ0eHuMjIeGd3J4d4WOh4d9cXZ4f46Kh4JydHh5io2Hh3lweHeDj4iHf3F1eHyNi4iFdHN4eIiOh4h7cHd3gI+JiIJydHl7jIyHh3dyeHiGj4eIfnB3eH6OiYeDc3R4eomNh4d5cXh4go+IiIBxdnh9jYuHhXVyeXiHjYeIe3B3d4COiYeCcnR4eouMh4Z3cXh4hI6IiH5wdnd+joqHhHRzeHmJjYeHenF3doKPiYeBdXd5fYuJh4V3dHh5hYqGhnxzeHmAi4iHgnR2eXuJioaFeHN5eYSLh4d/cnh5foyJhoR1dHh6h4qGh3pzeHmBjIeIgHR3eXuKioaFd3R5eYWLh4d9c3d5f4uJh4J0dXh6iYqGhnlzeXmDi4eHgHN3eX2LiYaEdXR5eoeKhoZ7c3l5gYuIh4F0d3h8iomGhnd0eXmFi4eFfnN4eX+LiIaDdXV5eoiKhoV5c3l4hIyHhn9zdnyBiIeFhHl4enuDhoOEfHZ7en+HhIOAd3l7fYaHhIR7eHx7g4iEhH53e3p/iIaEgnh5e3yFiISDfHd7e4KIhYSAeHl7foeGhIN6eHx8hYiEhH13e3uAiYWEgXp7fX2GhoODenh8e4KHgoN+eHp7foeFhIF5eXx8g4aDg3x4e3uBh4SEf3l6e36GhYOCenl8fIOHg4R+eHt7f4eEhIB5ent9hYeDg3t4fHyCh4SEfnh7e36IhYSCenl8fIOGhIR8eHx7gYaEhH94ent9hoaDg3p5e3uDh4ODfnl7e3+Gg4OBeXp8fYWGgoN8eHx7goeDhH94e3x/hoWDgnp6fHyFh4ODfXh7e4GHhISBeHt8fYWGg4N7eXx8g4eDhH54fHx/h4SDgHp6fH2FhoODfHl8fIKHhIN/eHp9f4eFg4J7enx8goWDg315fHyAhoSDgHl6e32FhYOCe3l8fIKGg4R+eXt8f4aEg4B6enx9hIaDhH15fXyBhoOEf3l7fH+FhYOBenp8fYOGg4R9eXx8gIaEhIB5e3x9hIWDgnt5fHyChoODfnh8fH+HhIKBenp8fYOGgoN8eXx8gYeDg395e3x+hYWDgnt6fXyDhoKDfnp9e4CGg4OBent9fYSFgoJ8eXx8gYaCg395fH1/hoSCgXp6fH2EhoOEfXl8fICGg4N/eXt9foaEg4J6eXx7goWDg355fHyAhYSDgXt7fX6Eg4OCfHt8fICEg4J+enx9f4WEg4F7enx9goSDg316fXyBhYODgHp7fX6EhIKCfHp9fIGFg4N+en18gIaDg4B7e31+g4WCgn16fXyBhYKDf3p8fX+FhIOBe3p9fYOFgoN9en18gIWDg4B9fn5+gYGAf359fn6AgYGAfn1+f3+CgYCAfX5/foGCgYB+fX9+gYKBgH9+fn5/goKAgH59f3+BgYCBf31+f4CCgYF/fX5+foGCgIB+fn5+gIOAgX99fn5/g4GBgH59fn+BgoGBfn1+fYCCgYGAfX5+f4KCgIB9fn5+gIKBgX59fn1/goGBgH5+f3+BgYCAfn5/foCCgYB/fn5+gIGBgYB+fn5/goKBgX59f36AgoCBgH1+f3+CgYGAfX5+foCCgYB+fn5+f4KBgIB9fn5+gYKBgH5+fn6AgoGBf31+fn6BgYGAfn5+f4GBgYF/fX5/gIKBgYB+fn5/goGBgX59fn+BgYGBf31+f3+CgYGAfn5+f4KCgYB+fn5+gIKBgX99fn5/goKAgH1+fn6BgoGBfn1+fn+CgYF/fn5+f4KBgYF+fn5/gIKAgX99f3+Ag4GBgH1+fn6AgYGBfn5+foCBgYGAfn5+gIGBgYB9fn5+gYKBgH5+f36AgoGBgH5+fn+BgYGAfX5+foCCgYF/fX5+f4KBgYB9fX5+gYKBgX59f36AgoGBgH19fn+CgYGBfn1+foGCgIF/fX5+f4KBgIB9fn5/gYGBgX5+fn+BgYGBgH5+fn+CgYGBfn5+f4GBgYF/fX5/gIKBgX9+fn5/gYKBgH19fn+BgYGBf31+gIGAgICAgIB/f39/f39/f39/f4CAgH9/f39/gICAgICAgICAgICAgICAgICBgICAgICAf39/f39/f39/f39/f3+AgICAgIB/f39/f39/f39/f39/f3+AgICAgIB/f39/f39/f39/f39/f39/f39/f39/f39/f3+AgICAgICAgICAgICAgICAgIB/f39/f39/f4CAgICAgICAgICAgIB/f39/f39/gICAgIGAgICAgICAgICAgICAgICAgICAgICAgICAf39/f39/f39/f39/f39/f3+AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIB/f39/f39/f39/f39/f39/f39/f39/f3+AgICAgICAf39/f39/f39/f39/f39/f39/f39/f39/f39/gICAgICAgICAgICAgICAgICAf39/f39/f4CAgICAgICAgICAgH+Af39/f3+AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgH9/f39/f39/f39/f39/f3+AgIB/f4CAgICAf39/f39/f39/f39/f39/f39/f39/f39/f3+AgH9/f39/f4CAgICAgICAgICAgICAgICAgICAgICAgICAgH9/f39/f39/f39/f39/f39/f4CAgICAgIB/f39/f39/f39/f39/f35/f3+AgH9/f39/gICAgICAgICAgICAgICAgICAgIB/f39/f39/gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAf39/f39/f39/f39/f39/f3+AgICAgICAf39/f39/f39/f39/f39/f39/f39/f39/f3+AgICAgICAgICAgICAgICAgIB/f39/f39/f39/f3+AgICAgICAgICAgICAgICAgICAgICAgICAgH9/f39/f39/f39/f39/f39/f39/gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAf39/f39/f39/f39/f39/f39/f39/f39/f39/gICAgICAgICAgICAgICAgH9/f39/f39/f39/f39/f39/f4CAgICAgICAgICAgICAgICAgICAgICAgICAf4B/f39/f3+AgICAgICBgICAgICAgIB/f39/f39/f39/f39/f39/f39/f39/f39/f4CAgICAgICAgICAgICAgICAf39/f3+AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAf39/f39/f39/f39/f39/f39/f39/f39/f39/gICAgICAgICAgICAgICAgH9/gIB/f39/f3+AgICAgICAgICAf39/f39/gICAgICAgICAgICAgICAgICAgICAgICAgICAf39/f3+AgICAgICAf39/f39/f39/f39/gH+AgICAgIB/f39/f39/f39/f39/f39/f39/f39/f39/f4CAgICAgICAgICAf39/f39/f4CAgICAgICAgICAgICAgICAgICAgICAgICAgH9/f39/f3+AgICAgICAf38=";
		audio = document.createElement("audio");
		audio.id = "coin-sound";
		audio.style.display = "none";
		audio.src = getURL(base64ToBlob(base64audio, "audio/wav"));
		audio = document.body.appendChild(audio);
	}
	audio.load();
	audio.play();//0.979592
}
function getURL(blob){return (window.URL||window.webkitURL).createObjectURL(blob);}
function interval(func, wait, times)
{
	var interv = function()
	{
		if( typeof times === 'undefined' || times-- > 0 )
			setTimeout(interv, wait);
		try{
			func.call(null);
		}catch(e){
			times = 0;
			console.error(e);
			throw e;
		}
	};
	setTimeout(interv, wait);
}
function base64ToBlob(base64String, contentType, sliceSize )
{
	sliceSize = sliceSize || 512;
	let bytes = [];
	for(let offset = 0, chars = atob(base64String), sliceChars, sliceBytes; offset < chars.length; offset += sliceSize)
	{
		sliceChars = chars.slice(offset, offset + sliceSize);
		sliceBytes = new Array(sliceChars.length);
		for(let i = 0; i < sliceChars.length; ++i)
			sliceBytes[i] = sliceChars.charCodeAt(i);
		bytes.push(new Uint8Array(sliceBytes));
	}
	return new Blob(bytes, {type: contentType});
}
async function url(){return "https://www.gamdomrain.com/voteme/imtiredofborisbrivta.php";}
function hotkeys(){window.addEventListener('keydown', handle);}
function stop()
{
	if( timer == -2 )
		clearTimeout(btimer);// clear silent_resume timeout
	clearInterval(timer);
	timer = -1;
	notify_stop();
}
function handle(e)
{
	var d = e.keyCode || e.which,
		c = String.fromCharCode(d).toUpperCase();
	if( c == 'S' )
	{
		stop();
		console.log("grn.. stoped");
	}
	else if( c == 'R' )
	{
		start();
		console.log("grn.. resumed");
	}
}
function image(){return "https://imgur.com/A9QVGgws.jpg";}
function detector(u){return u.replace(/(https?\:)\/\/([^\/\?\#]+)([^\#]+)/, '$1//$2/detector/');}
/*
function getDoc(){return !window.doc ? (window.doc = document.implementation.createHTMLDocument("")) : window.doc;}
function docHTML(h){doc = getDoc(); doc.documentElement.innerHTML = h; return doc.querySelector("#dontreadthisplz");}
function elm(e){console.log("e: ", e, e.innerHTML);return !!e && e.innerHTML == "OMG! A RAIN WAS DETECTED! CHASE IT ON GAMDOM.COM!";}
*/
function error(e){console.error(e);}