261 lines
16 KiB
HTML
261 lines
16 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>Bot Detection</title>
|
|
<link rel="icon" href="data:image/svg+xml, %%3Csvg version='1.0' xmlns='http://www.w3.org/2000/svg' width='96.000000pt' height='96.000000pt' viewBox='0 0 96.000000 96.000000' preserveAspectRatio='xMidYMid meet'%%3E%%3Cg transform='translate(0.000000,96.000000) scale(0.100000,-0.100000)'%%0Afill='%%23085577' stroke='none'%%3E%%3Cpath d='M535 863 c-22 -2 -139 -17 -260 -34 -228 -31 -267 -43 -272 -85 -2%%0A-10 23 -181 55 -379 l57 -360 400 0 400 0 20 40 c16 31 20 59 19 125 -1 100%%0A-24 165 -73 199 -41 29 -46 57 -22 111 30 67 29 188 -3 256 -13 28 -37 60 -53%%0A72 -55 39 -169 62 -268 55z m-15 -348 c30 -16 60 -61 60 -90 0 -10 -8 -33 -17%%0A-52 -16 -34 -16 -41 0 -116 9 -44 15 -82 12 -85 -6 -7 -92 -21 -131 -21 l-31%%0A-1 -6 85 c-4 75 -8 89 -31 112 -20 20 -26 36 -26 70 0 38 5 50 34 79 39 39 86%%0A45 136 19z'/%%3E%%3C/g%%3E%%3C/svg%%3E" type="image/svg+xml"/>
|
|
<style type="text/css">
|
|
body,html{width:100%%;height:100%%;background-color:#042a3a}body{color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0, 0, 0, 0.5);padding:0;min-height:100%%;-webkit-box-shadow:inset 0 0 100px rgba(0, 0, 0, 0.8);box-shadow:inset 0 0 100px rgba(0, 0, 0, 0.8);display:table;font-family:"Open Sans", Arial, sans-serif;margin:0;-ms-text-size-adjust:100%%;-webkit-text-size-adjust:100%%}h1{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;font-size:36px}h1 small{font-size:68%%;font-weight:400;line-height:1;color:#777}a{text-decoration:none;color:#fff;font-size:inherit;border-bottom:dotted 1px #979797}.lead{color:silver;font-size:21px;line-height:1.4}.cover{display:table-cell;vertical-align:middle;padding:0 20px}img{width:175px}footer{position:fixed;width:100%%;left:0;bottom:0;color:#a0a0a0;font-size:14px}.lds-roller{display: inline-block;position: relative;width: 80px;height: 80px}.lds-roller div{animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;transform-origin: 40px 40px}.lds-roller div:after{content: " ";display: block;position: absolute;width: 7px;height: 7px;border-radius: 50%%;background: #fff;margin: -4px 0 0 -4px}.lds-roller div:nth-child(1){animation-delay: -0.036s}.lds-roller div:nth-child(1):after{top: 63px;left: 63px}.lds-roller div:nth-child(2){animation-delay: -0.072s}.lds-roller div:nth-child(2):after{top: 68px;left: 56px}.lds-roller div:nth-child(3){animation-delay: -0.108s}.lds-roller div:nth-child(3):after{top: 71px;left: 48px}.lds-roller div:nth-child(4){animation-delay: -0.144s}.lds-roller div:nth-child(4):after{top: 72px;left: 40px}.lds-roller div:nth-child(5){animation-delay: -0.18s}.lds-roller div:nth-child(5):after{top: 71px;left: 32px}.lds-roller div:nth-child(6){animation-delay: -0.216s}.lds-roller div:nth-child(6):after{top: 68px;left: 24px}.lds-roller div:nth-child(7){animation-delay: -0.252s}.lds-roller div:nth-child(7):after{top: 63px;left: 17px}.lds-roller div:nth-child(8){animation-delay: -0.288s}.lds-roller div:nth-child(8):after{top: 56px;left: 12px}@keyframes lds-roller{0%%{transform: rotate(0deg)}100%%{transform: rotate(360deg)}}#showjs{display:none}#nojs{display:table-cell}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="cover" id="nojs">
|
|
<h1>JavaScript needs to be enabled in order to complete the security check.</h1>
|
|
</div>
|
|
<div class="cover" id="showjs">
|
|
<h1>Please wait while we are doing some security checks...</h1>
|
|
<p class="lead">
|
|
<div class="lds-roller"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div>
|
|
</p>
|
|
</div>
|
|
<form method="POST" action="%s" id="form">
|
|
<input type="hidden" name="challenge" id="challenge">
|
|
</form>
|
|
<footer>
|
|
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARIAAABOCAYAAADsDJkbAAAABmJLR0QA/wD/AP+gvaeTAAARv0lEQVR4nO2dTWwbxxXH/2NEBaRAMFtFF0IGN4AtwrlQAXgoL+nS7aV1wCgHowcDsQzkoFuiAjkV8Bfak4FIvulgwLKBnHyII8TpoR9apwf1QCBUD0nptOgKEXhx1NIQSqFR2+lhd5bD5Sz3a3a5S88PIETuLt+OuDtv3nvz5i2B4oWEUqpH+JpJCDE95BUALMWVo8gnZNwNeNGxO7Qu2FUCoI34ahfAHUKIEfJ8SwA+9pE9iquEkC2XzAKAvwMoRJQJAC0AdUJI1+sA+zwrsH6b5x4y3N9vjZKpkINSJCEQjLpLGOw8Fddnz85OKdUA7CB6h2a8TQh5FPRgSuk/Ea/DA8DrhJAWJ1OH9b/EZY0QsuG1k1J6A8D1GPJNWL+Xu+266xiTfQirqF9UXhp3A/JAzFF8mVI6NIoDuBdRnpt7lNJWEFfB7jRxlQgALMMa/WXj17YrMeVrANYB1IFgCpBSyn/kLR4TwD733mTvX0S3beIUCef7a+h3VLel8Mmokc8lT4N1s8XpgOsAtlzb9BjyeAqwlNzrkuRlEkrpMuQoXpN7r4f8bqAYEKd8TO58JvqKx1FIk2Lx5FqRUEpXYI1SGsLdZDqltEIIuRrg2GXEH8ULlNJCgr76EqV0nRCylpD8tDBG7ItrjTDuSJITBA0+96VA6dwXWK+ZJ7eKhFK6DuD9GCJWKKV3eH/ZAxmuAGCNZgb3uStRNgC8Tyn9ZFJGOB47NrUsQZThut4lCTJlodkvnVJq8tfRHjCv2/vZ9hasgLPJXuN0qVJTJLaLoHGbIv/jtqw4SoSxhGR8/SC0IM+9YXxMKX11AmcpViTJue/6rEmSKxsdtsKw43P3XPv4vw62ddNF33Xa4z8HGDQjI02RcIG8JQCn0Z/R8PQrObPOgPXPPgk4A6FFb2kicrICi5fUx90Qychwa7o5chn4Dh80N4dRQF/JDFhxdn8zude+fS4zrpIJpUhsZaHZLxbAdE+BRkG3X+9TSk0ANzN00Q3Em3JMG51SeoMQcmPcDZGBPSKH7Uwi0oyNxIW3KDXJsjWRTEppF9a9/gTAo7DewpAisS8c02osKUqGsgiKBmtK8z1YyU8iTWlKOleaPrI7RpIk1ymlhjteQggxXNOZeUBWkHVLsE2TJFs2Jvf+dErnZHGoZQDrlFIDIQK/LwFOzGEdcgJaslgCsEMprbuVCSHElNQhNBlCAuJWxEnHMSYlXrIiQYbXCKtJkC0dV1tlWGNR0GFZt9cRwEM4Zf/dQbaUCKMAq0OkZQ2JSCpAtZeQXEYBg0G63GHnjsi49u4gqyI4GiwP4QvbWxFyiot7ZBUN4hkaQ5LskeR8RF+mlMqY3UoL92/9lgSZZpglBBnAcH3Wx9AGEUsAvrCnooc4JdqYQd5LyCrREpDpRVq+rpt1NpLYLmwS6DKEuNbAsAV6cREGWcds5eaZeyJlkhdFIkpISjP/Q4ZVMi5fF7BiTfcAfDHGNoRFlqu95bF9nNdjFLwyzWobh5TJqRxlQv7I9Vm0jDw0AS9WEkorTZeJje6ZHoVdVsJ7EkRu5dA15e/rLF+ve3zfYdO/JrIdJwGG2yfrBhnXxRpXRm2WWaeU3oHlKskYjdMIsrYAXIXVh1ib+URMvq5MkDQKg3ufZUUCcCup86xIVEecPFYgLx3e9LG2ZXVSPteJP59ngNdV10ZD/9525/5k1bVh6JRSnRBiMEXyBNmJDnuhJSQ3SKKYjN8n6zfFpOGXySrremgIOajZ7pYh6fzj5j0AjiLJmx8pM0szLfMx62bqpLGV0nnW7fvQSCAe444LZpFloO/aKDchfXKnvHNEmkFWDdZCSX4RKlt9C1jWLNBfhQtMWBU1Sqmed0XSQnwTtRLwPFIhhLRyuO4lL4w7k5W/J3XRAZTSrQCFtfLiDuunAMdny/oIaQi2yWhzEJcj67+Noo9fkJUxbrdhJUDqQRR3+FX7dRWWe8cPghuwZlnqANYg8b7mE9JkjLpdADcBvEpsALwNOYEl0+N8uSHis2QU4Ri3NRIGT0URNQuZEGLary1CyFVCyOsAvg+r8v8aIcSwXxuwFI4Ua5tXJGZMWV1YzyW5wft/hJBHhBCmAePwiWCbjIVveoBjcqWwFLnBHLFPiyBPqBQIIcLqaLYnIqXOL69I9j2PCsbQcn8eWwNGXTw11oVXCZaoUwpKPjIW+qWCT8A1ilsT+n6SldnOK5I4ArcCdrabEeV7BaWMiPKyQp6D3FllKaBboCfcjrhECbQ+8T8kEbp8hTQzhqBALkbEmYpu0uuBWHZekuew0VI4Rxpk3ZLSkV4eSVSMBGRe8ehfQ9XyGF5lAULSchRJzKpjpoTGeDHqmTBJnteNgfijmBa7FYogvIXsKxI/gqQluNEgri98nVJ6013H1541Wo9wHjctdxmBqCZroKm0GPUwhP/sJCX1KKSij7sBATB99svOhL5OKd2hlN6glK5wZSXinsckhHTdisSMKGw5YKGYqEvDVyilf/eYd5dhZusSZEQh6y5CXinYZRqFZGQa3m9yQ0vgnDosi+Ue5C2ONIDhwkZRp1M1+JhI9oWNU/ZPg1Wgx61M0gr8yTiPu0pa0nVbX2TGnXAWF23cDQjIE2BYkcTpLCuU0lFPdpdhqhUgx6eLgoxCSkmkPHdhJf29jXxbOF1YGZeykqRkVVhLCsNrR87KQD4Chp9rE/dG1CmlmkfsQpbloFNKl7m8khbiuyZ5Hr1a7LfgHiuSR7bYzAKl9Cril4XURtyLstiAldJQQN+C0Lj37CFywOA9uuUzS5iXNTbO4sgBRSJpab4GQazFnvrtQo5lcgX95DYpJRcnAULIBqX0LeQj2OjGuY72vWIivnm/DKuzu5HRUVuEEJYV2kW6M4hZwVmOICr+bCZ4YkOSHJ17b8qQF8CclJEx6U4YSsIVuZqQ3LSRkcnsZWlm3XXQx92AAAzkpqStSGQFFwtc0NWUJPOeSJlQSjV7qiwJczOJ8gQmomcQZwkZi++SjJMs5eyZQbIZWKMjeoh4kmUXDch7IDfr9LI64zIsy4SXx9fWlIEhUZYnOXdxAMhzb1zxNNmsU0rXYQ1mpr3NRH9q1ylwFDJzOs1nUkfhpntJjEiRJGYWS36ItQ67vJ0kfxroPzw9EVJ+9AcLWGbdjGeI7rtHiJcyAFjujVuRRMkaHYUGn/uPu+9N9JXOE1gJXVsCeVnlkTtDFhC7NnFHeN1nfxJ5H0YCMmWT6urlHLo4ovsiKfdmnMpVg/2AbtjJYbZVw5NV5f8IHgtoRRaJlI5uZw8y14A924O9ZHMf8jL1kkLUKRINiubdxZHk3qQxDRwXt/ucxenfDW6WaoghRWK7CnGmaa9TSmXFQQJhu0wmsmsSCuupSKrb6ned1pD8ozpluwo8BuIPEl7TwIpgmKOUCOD97N8s15vwIstmvF+R3ziMHL3soFjSv02SprioMl5Y3NPAWRzxAUhdB8TKnm4gvuXre329FIkZ88RpMKDs7IBVFhXgxrifr2wHx7L42/hiW3JxO4I7TpK1GEQSBYlet8uersFaPhGHyIokbtnFNBB1jKwlY235mYQpkqRVlDSxA9WjVgNnDBnWkuGqm2zEFehX8d5LkcQ+ccIYouCZbcZnpeMGeW4JEF/xBfq+ZBfHlCQnKEm4N1nC5N7LsJbMgNvCMLJdeXVtPJ/rars44x59bwZUIkD80dbvGbc8G4jv4mwIlLgM09wt00FSQpkOxCqulSQm915GMprIozAF28Kgj9opmv6NW3YxaQy/G4sQsmXP4nyMdP1hA8BayKrzN2FdJC3kuboA7oiSg7ywZ+TqsGZBovwuXrU/WUBPJLPisZ3nkwDTsxuIn5yWVXirUpMgz5Qgw427ls4AxGuH7RNlLSgFWKsuA5nz9tqZ1CL0cXxR24dfwuBzY6XInhRi3pPO83YzUiHNgb+2kvrdUB+RIFf4bByFQqGQhqdFolAkjYfFaAZwcxQZQxgjUaTP0sNVnRKMKlUZAtoFUjNDTUKjpQvcf/q7ypXFnwxMy/724Atj6eGqOHhLSAtW1rU8XoLZenvTlCrzBUQpkomEJLqK2Q2NaNfe/ctnOP7vvwEAxZkfoFGq4W9HHZ0Sr7ZT6TY0+Q9uArghV+qLh1IkirFxdHKMzS8/BQBU5xfRKNXG3CJFVLzySBQKhSIwSpFkBUKyONWuUARCKZKs4LOWQaHIMipGMiEUZ+aw+tpFFGfm0H5+gKOTY2cfi0N4cfnsBcx+b2Zg29F3PWzv7w7IcVMuLKBRqqF8egHFl+dQnJlD89lTHJ0cY6ezh+393VDtF1EvVlAunEH1lXMAgOa3X6Pd/QY7HfWQwiyhFMmEwAcrq/OLA/s++vr3ngqhXFjAB5VLwn3t5wdoPns6tL04M4db1XeGzsOfu16sYPW1i7i99zBQpy++PKhI6sUKPqhcGlIwTH6ndxhYtiJ5lCKZELb3d9F+/g0un72ARqmG23sPbcukN9KqaHcP8O7nVsnQerGCy2cvYHt/F9v7fxIqkXJhAXff+AVmp6bR6R1i88vHaD57ik7v0DmGyanOL2K9toprzQehrJNb1Xccpbi9v4udzp7zPxRn5tAo/dCRvb2/i2vNB4FlK5JBKZIJot09QPPZ12iUapj93oxQEYhgx9WLVsVELyUyOzXtKJHt/V3c3nsoVFI7nT3sdPbQKNVwq/oOblXfwdFJL5D1cPnsBcxOTePo5Bhru5vCdmzv76JerOBW9QoapRo6vX/4um+KZFHB1gmDdbzy6YWhfVYc5U2svvam8LvVVyy3od39Rrj/g8olR4lcaz4YaekAGLAWvNwnN0yJvPv5hyMV4U5nD+9+/iEAYPX8RZQLw/+vIj2UIpkwOr1DHJ0cCztWvVjB6vmLWD1/0bE+eMqFBbS7B0IFYbkUNRydHOP23sPA7bHcpF3n+0G41ryPdvfA97h29wCbXz0GYFkyivGhFMkE0u5+g+LM3FCgku/IbkXCgpjNb8VWQN/tGT2TI+Kjv/5BeE4Rnd5hqAAqCySrrNjxomIkE0jz269RnV9EubDgBEHLhQXH4ii+PId6cQlAP0jJFImXJcCmh6uvLOLuG2vOecLgNcXLs73/p1Ayj06O0Xz2FPViBdX5xcBxIYVclCKZQFiMo1w444zubMT+6K9/QHX+HBqlGurFirOfxVT8OiLvMommf4N+14vOvw59j3HTfn4QyNoRcipYkSzFaJQimUCYMmBJXEDfrdjptHB00htSJNX5RXR6hwPTuCI2v3o8WaP+/6iq+iUBpUgmkKOTY3R6h47FUC4soDgz5+RjsL/MvSnOzGF2anqkgmCWgt9xcXEnpgWBWVNHJz3ZzVEERAVbJxQW62Bp7AAGgpg7nRZmp6ad2AIw2q1h+xqlGmanppNqNhqlH4Y6fnZqGtX5RRydHAea6VEkg1IkE0o/n+TMgFvDYErFUiRsHcsIi6R3iO39XcxOTXvmocigODMXKt5x+dyPMTs1PfC/KdJHKZIJpf3cGp3ZQj73tC3v3pRPn7G+4zOib375GEcnx04afhhWX3szcK7HreqVQIHZ6vwiVs9ftAskPQ7VHoVclCKZUJhFwqZcRbkZzL0pFxYCxT06vUOs7W4CsNbDrNdWfd2cRqmGz376K6yev4jL5/wVSfPZUycVf9SsUKNUw3ptFQBwe++hb5BYkSwq2DrBtLsHKBcWnACrG7YeBgieE9J89hQ///2vcfeNX6BerOCPjQ+x09mzFgh+1+PyTc4NKILms6e4/efBjNhGqebERFiQdfOrx2j0DtEo1XD3jbWRi/YAhF4QqEgGpUgmmM2vPkW5cMYzN2Ons+dYImFmYtrdA/zsN7/E5XM/xuWzF1AvVoRxDUuBtTwXAQLiXJRrzQfY6ezhg8olW9kMu1Gd3iGuNR9M1lR0jlHPtckISw9Xb1CC6+NuRxTY9HK5YMVarOJGPSmzKKywUXHmBwCATu8fUgsbEYp669KmIUXYC4yySBSxaXcP0O4eJFJkiJUkUGQbZZHkkKWPVzX8R8rDpoOgp3GS/4GeJoSkVbdWs1/KIpHE/wHhrsGe87eC5wAAAABJRU5ErkJggg==" />
|
|
<p>
|
|
This website is protected with
|
|
<a href="https://github.com/bunkerity/bunkerweb" target="_blank">BunkerWeb</a>
|
|
</p>
|
|
</footer>
|
|
</body>
|
|
<script>
|
|
document.getElementById("nojs").style.display = 'none';
|
|
document.getElementById("showjs").style.display = 'table-cell';
|
|
</script>
|
|
<script defer>
|
|
function textEncode(str) {
|
|
if (window.TextEncoder) {
|
|
return new TextEncoder('utf-8').encode(str);
|
|
}
|
|
var _utf8 = unescape(encodeURIComponent(str));
|
|
var result = new Uint8Array(_utf8.length);
|
|
for (var i = 0; i < _utf8.length; i++) {
|
|
result[i] = _utf8.charCodeAt(i);
|
|
}
|
|
return result;
|
|
}
|
|
function utf8Encode(str) {
|
|
var x,
|
|
y,
|
|
output = "",
|
|
i = -1,
|
|
l;
|
|
if (str && str.length) {
|
|
l = str.length;
|
|
while ((i += 1) < l) {
|
|
x = str.charCodeAt(i);
|
|
y = i + 1 < l ? str.charCodeAt(i + 1) : 0;
|
|
if (0xd800 <= x && x <= 0xdbff && 0xdc00 <= y && y <= 0xdfff) {
|
|
x = 0x10000 + ((x & 0x03ff) << 10) + (y & 0x03ff);
|
|
i += 1;
|
|
}
|
|
if (x <= 0x7f) {
|
|
output += String.fromCharCode(x);
|
|
} else if (x <= 0x7ff) {
|
|
output += String.fromCharCode(
|
|
0xc0 | ((x >>> 6) & 0x1f),
|
|
0x80 | (x & 0x3f)
|
|
);
|
|
} else if (x <= 0xffff) {
|
|
output += String.fromCharCode(
|
|
0xe0 | ((x >>> 12) & 0x0f),
|
|
0x80 | ((x >>> 6) & 0x3f),
|
|
0x80 | (x & 0x3f)
|
|
);
|
|
} else if (x <= 0x1fffff) {
|
|
output += String.fromCharCode(
|
|
0xf0 | ((x >>> 18) & 0x07),
|
|
0x80 | ((x >>> 12) & 0x3f),
|
|
0x80 | ((x >>> 6) & 0x3f),
|
|
0x80 | (x & 0x3f)
|
|
);
|
|
}
|
|
}
|
|
}
|
|
return output;
|
|
}
|
|
/**
|
|
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
|
|
* to work around bugs in some JS interpreters.
|
|
*/
|
|
function safe_add(x, y) {
|
|
var lsw = (x & 0xFFFF) + (y & 0xFFFF),
|
|
msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
|
return (msw << 16) | (lsw & 0xFFFF);
|
|
}
|
|
/**
|
|
* Convert a raw string to a hex string
|
|
*/
|
|
function rstr2hex(input, hexcase) {
|
|
var hex_tab = hexcase ? '0123456789ABCDEF' : '0123456789abcdef',
|
|
output = '',
|
|
x, i = 0,
|
|
l = input.length;
|
|
for (; i < l; i += 1) {
|
|
x = input.charCodeAt(i);
|
|
output += hex_tab.charAt((x >>> 4) & 0x0F) + hex_tab.charAt(x & 0x0F);
|
|
}
|
|
return output;
|
|
}
|
|
/**
|
|
* Convert an array of big-endian words to a string
|
|
*/
|
|
function binb2rstr(input) {
|
|
var i, l = input.length * 32,
|
|
output = '';
|
|
for (i = 0; i < l; i += 8) {
|
|
output += String.fromCharCode((input[i >> 5] >>> (24 - i %% 32)) & 0xFF);
|
|
}
|
|
return output;
|
|
}
|
|
/**
|
|
* Convert a raw string to an array of big-endian words
|
|
* Characters >255 have their high-byte silently ignored.
|
|
*/
|
|
|
|
function rstr2binb(input) {
|
|
var i, l = input.length * 8,
|
|
output = Array(input.length >> 2),
|
|
lo = output.length;
|
|
for (i = 0; i < lo; i += 1) {
|
|
output[i] = 0;
|
|
}
|
|
for (i = 0; i < l; i += 8) {
|
|
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i %% 32);
|
|
}
|
|
return output;
|
|
}
|
|
var sha256_K = [
|
|
1116352408, 1899447441, -1245643825, -373957723, 961987163, 1508970993,
|
|
-1841331548, -1424204075, -670586216, 310598401, 607225278, 1426881987,
|
|
1925078388, -2132889090, -1680079193, -1046744716, -459576895, -272742522,
|
|
264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986,
|
|
-1740746414, -1473132947, -1341970488, -1084653625, -958395405, -710438585,
|
|
113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291,
|
|
1695183700, 1986661051, -2117940946, -1838011259, -1564481375, -1474664885,
|
|
-1035236496, -949202525, -778901479, -694614492, -200395387, 275423344,
|
|
430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063,
|
|
1747873779, 1955562222, 2024104815, -2067236844, -1933114872, -1866530822,
|
|
-1538233109, -1090935817, -965641998,
|
|
];
|
|
function sha256_S(X, n) {
|
|
return (X >>> n) | (X << (32 - n));
|
|
}
|
|
function sha256_R(X, n) {
|
|
return X >>> n;
|
|
}
|
|
function sha256_Ch(x, y, z) {
|
|
return (x & y) ^ (~x & z);
|
|
}
|
|
function sha256_Maj(x, y, z) {
|
|
return (x & y) ^ (x & z) ^ (y & z);
|
|
}
|
|
function sha256_Sigma0256(x) {
|
|
return sha256_S(x, 2) ^ sha256_S(x, 13) ^ sha256_S(x, 22);
|
|
}
|
|
function sha256_Sigma1256(x) {
|
|
return sha256_S(x, 6) ^ sha256_S(x, 11) ^ sha256_S(x, 25);
|
|
}
|
|
function sha256_Gamma0256(x) {
|
|
return sha256_S(x, 7) ^ sha256_S(x, 18) ^ sha256_R(x, 3);
|
|
}
|
|
function sha256_Gamma1256(x) {
|
|
return sha256_S(x, 17) ^ sha256_S(x, 19) ^ sha256_R(x, 10);
|
|
}
|
|
function binb(m, l) {
|
|
var HASH = [
|
|
1779033703, -1150833019, 1013904242, -1521486534, 1359893119, -1694144372,
|
|
528734635, 1541459225,
|
|
];
|
|
var W = [64];
|
|
var a, b, c, d, e, f, g, h;
|
|
var i, j, T1, T2;
|
|
m[l >> 5] |= 0x80 << (24 - (l %% 32));
|
|
m[(((l + 64) >> 9) << 4) + 15] = l;
|
|
for (i = 0; i < m.length; i += 16) {
|
|
a = HASH[0];
|
|
b = HASH[1];
|
|
c = HASH[2];
|
|
d = HASH[3];
|
|
e = HASH[4];
|
|
f = HASH[5];
|
|
g = HASH[6];
|
|
h = HASH[7];
|
|
for (j = 0; j < 64; j += 1) {
|
|
if (j < 16) {
|
|
W[j] = m[j + i];
|
|
} else {
|
|
W[j] = safe_add(
|
|
safe_add(
|
|
safe_add(sha256_Gamma1256(W[j - 2]), W[j - 7]),
|
|
sha256_Gamma0256(W[j - 15])
|
|
),
|
|
W[j - 16]
|
|
);
|
|
}
|
|
T1 = safe_add(
|
|
safe_add(
|
|
safe_add(safe_add(h, sha256_Sigma1256(e)), sha256_Ch(e, f, g)),
|
|
sha256_K[j]
|
|
),
|
|
W[j]
|
|
);
|
|
T2 = safe_add(sha256_Sigma0256(a), sha256_Maj(a, b, c));
|
|
h = g;
|
|
g = f;
|
|
f = e;
|
|
e = safe_add(d, T1);
|
|
d = c;
|
|
c = b;
|
|
b = a;
|
|
a = safe_add(T1, T2);
|
|
}
|
|
HASH[0] = safe_add(a, HASH[0]);
|
|
HASH[1] = safe_add(b, HASH[1]);
|
|
HASH[2] = safe_add(c, HASH[2]);
|
|
HASH[3] = safe_add(d, HASH[3]);
|
|
HASH[4] = safe_add(e, HASH[4]);
|
|
HASH[5] = safe_add(f, HASH[5]);
|
|
HASH[6] = safe_add(g, HASH[6]);
|
|
HASH[7] = safe_add(h, HASH[7]);
|
|
}
|
|
return HASH;
|
|
}
|
|
function rstr(s, sha256_K) {
|
|
s = sha256_K ? utf8Encode(s) : s;
|
|
return binb2rstr(binb(rstr2binb(s), s.length * 8));
|
|
}
|
|
function hex(s) {
|
|
return rstr2hex(rstr(s, sha256_K));
|
|
}
|
|
async function digestMessage(message) {
|
|
const hashBuffer = hex(message);
|
|
return hashBuffer;
|
|
}
|
|
(async () => {
|
|
const nonce = '%s';
|
|
var i = 0;
|
|
while (true) {
|
|
var digestHex = await digestMessage(nonce + i.toString());
|
|
if (digestHex.startsWith("0000")) {
|
|
break;
|
|
}
|
|
i++;
|
|
}
|
|
document.getElementById("challenge").value = i.toString();
|
|
document.getElementById("form").submit();
|
|
})();
|
|
</script>
|
|
</html> |