1<html> 2<head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="IE=8" /> 7 <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate"> 8 <meta http-equiv="Pragma" content="no-cache"> 9 <meta http-equiv="Expires" content="0"> 10 <title id="pageTitle">KillBot user verification [81.16.3.32] [Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PageSourceSearchBot/1.0; +https://pagesourcesearch.com/bot) Chrome/128.0.0.0 Safari/537.36]...</title> 11
11<script> 12 if (typeof window.kbErrors === 'undefined'){window.kbErrors=[];} 13 window.kbeOe=true; 14 if (!document.title.toLowerCase().includes("user verification")) { 15 // window.kbeOe=false; 16 // kbErrors.push({message: "KillBot verification failed [81.16.3.32]. Page title must contain the phrase 'user verification'",stack: "",name: "TITLE_VERIFICATION_ERROR"}); 17 18 const cookies = document.cookie.split(";").map(c => c.trim()); 19 const hasKbReloaded = cookies.some(c => c.startsWith("kbReloaded=")); 20 21 if (hasKbReloaded) { 22 window.kbeOe = false; 23 kbErrors.push({ 24 message: "Title verification failed [81.16.3.32]. Page title must contain the phrase 'user verification'", 25 stack: "", 26 name: "TITLE_VERIFICATION_ERROR" 27 }); 28 } else { 29 const expires = new Date(Date.now() + 5 * 60 * 1000).toUTCString(); 30 document.cookie = "kbReloaded=1; path=/; expires=" + expires; 31 location.reload(); 32 } 33 }else{ 34 title_ru = "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F..."; 35 title = "User verification..."; 36 title_zh = "\u7528\u6237\u9A8C\u8BC1\u4E2D..."; 37 if (navigator.language.substring(0,2).toLowerCase()=="ru"){ 38 title = title_ru; 39 } 40 if (navigator.language.substring(0,2).toLowerCase()=="zh"){ 41 title = title_zh; 42 } 43 document.getElementById("pageTitle").textContent = title; 44 } 45 </script>
45 46</head> 47<body> 48 <div class="menu-container" style="position: absolute;top: 19px; left: 2px;opacity: 0.02;z-index: 2147483647;pointer-events: auto;font-size: 14px;font-family: Arial, sans-serif;background-color: rgba(255, 255, 255, 0.05);"><noindex class="menu-wrapper"><a class="menu-item link-1" href="/shop?from=bot" style="color: rgb(230, 230, 230); margin: 0px 8px; text-decoration: none; display: inline-block; padding: 2px 4px; border-radius: 3px; transition: opacity 0.3s; opacity: 0.08;">shop</a><a class="menu-item link-2" href="/news?from=bot" style="color: rgb(230, 230, 230); margin: 0px 8px; text-decoration: none; display: inline-block; padding: 2px 4px; border-radius: 3px; transition: opacity 0.3s; opacity: 0.03;">news</a><a class="menu-item link-3" href="/search?from=bot" style="color: rgb(230, 230, 230); margin: 0px 8px; text-decoration: none; display: inline-block; padding: 2px 4px; border-radius: 3px; transition: opacity 0.3s; opacity: 0.04;">search</a><a class="menu-item link-4" href="/login?from=bot" style="color: rgb(230, 230, 230); margin: 0px 8px; text-decoration: none; display: inline-block; padding: 2px 4px; border-radius: 3px; transition: opacity 0.3s; opacity: 0.04;">login</a><a class="menu-item link-5" href="/blog?from=bot" style="color: rgb(230, 230, 230); margin: 0px 8px; text-decoration: none; display: inline-block; padding: 2px 4px; border-radius: 3px; transition: opacity 0.3s; opacity: 0.03;">blog</a><a class="menu-item link-6" href="/faq?from=bot" style="color: rgb(230, 230, 230); margin: 0px 8px; text-decoration: none; display: inline-block; padding: 2px 4px; border-radius: 3px; transition: opacity 0.3s; opacity: 0.07;">faq</a><a class="menu-item link-7" href="/contacts?from=bot" style="color: rgb(230, 230, 230); margin: 0px 8px; text-decoration: none; display: inline-block; padding: 2px 4px; border-radius: 3px; transition: opacity 0.3s; opacity: 0.03;">contacts</a></noindex></div> <div class='WtPXrGjpDU'><div class='ZkgBlGlrJl ui'> <div class='FZUAUADHtw'></div> <div class='ZFZSIcvWZx'><div class='bcLfjAgtla'></div> </div> </div> </div> <div class='xZdWCBRScS'><div class='vmYncfbNhj ui'> <div class='uwPsPAKnlA'></div> <div class='QTtMttqUEe'><div class='sWRAAaoruu'></div> </div> </div> </div> <div class='HdjELJbfaj'><div class='zcMzGRZuPg ui'> <div class='SYKOohsjAo'></div> <div class='xooTFtbGGP'><div class='VyARLtwGvH'></div> </div> </div> </div> <div class='PNHHUQHNra'><div class='EsAVnhVOlw ui'> <div class='QcnRcozMSS'></div> <div class='YCZprSLAQb'><div class='COUegwxFuJ'></div> </div> </div> </div> 49 <div class='TZrWwuMWum'><div class='KmtdWjzgkl ui'> <div class='VneFbziIqG'></div> <div class='CewabvVLaO'><div class='TZbxqfENZF'></div> </div> </div> </div> 50 <div class='ZGQtcewgao'><div class='YEZsnpstPu ui'> <div class='tshnIyoggT'></div> <div class='pJfpMHPwNY'><div class='cBgrwiFzbT'></div> </div> </div> </div> <div class='GCNkOelxoQ'><div class='BenkAERYcH ui'> <div class='ozyVcYDGpz'></div> <div class='LifRLJiCMJ'><div class='oOsTQaqwcS'></div> </div> </div> </div>
50<script> 51 window.kbDpVM=["WtPXrGjpDU","xZdWCBRScS","HdjELJbfaj","PNHHUQHNra","TZrWwuMWum","ZGQtcewgao","GCNkOelxoQ"]; 52 53 54 55window.onerror = function(message, source, lineno, colno, error) { 56 kbErrors.push({ 57 type: 'window.onerror', 58 message: message ? message.toString() : '(unknown error)', 59 source: source || '(inline)', 60 line: lineno || 0, 61 column: colno || 0, 62 stack: error && error.stack ? error.stack.toString() : null, 63 time: Date.now() 64 }); 65 return false; 66}; 67 68var kbIsOnUnhandledRejection = false; 69var kbOrigConsoleError = null; 70var kbOrigConsoleWarn = null; 71var kbDisplayKbErrorsTimer = null; 72var kbDmpyTimer = null; 73var kbDataReceivedTimeout = null; 74 75function kbOnUnhandledRejection(event) { 76 if (kbIsOnUnhandledRejection == true) return; 77 kbIsOnUnhandledRejection = true; 78 kbErrors.push({ 79 type: 'unhandledrejection', 80 message: event.reason 81 ? (event.reason.message || event.reason.toString()) 82 : '(undefined)', 83 stack: event.reason && event.reason.stack 84 ? event.reason.stack.toString() 85 : null, 86 time: Date.now() 87 }); 88} 89 90window.addEventListener('unhandledrejection', kbOnUnhandledRejection); 91 92(function(origError) { 93 kbOrigConsoleError = origError; 94 console.error = function(...args) { 95 try { 96 kbErrors.push({ 97 type: 'console.error', 98 message: args.map(a => (a && a.toString) ? a.toString() : String(a)).join(' '), 99 time: Date.now() 100 }); 101 } catch(e) {} 102 origError.apply(console, args); 103 }; 104})(console.error); 105 106(function(origWarn) { 107 kbOrigConsoleWarn = origWarn; 108 console.warn = function(...args) { 109 try { 110 kbErrors.push({ 111 type: 'console.warn', 112 message: args.map(a => (a && a.toString) ? a.toString() : String(a)).join(' '), 113 time: Date.now() 114 }); 115 } catch(e) {} 116 origWarn.apply(console, args); 117 }; 118})(console.warn); 119 120function kbGyOS() 121{ 122 ua_ip = ""; 123 if (typeof kbRes !== "undefined") { 124 kbRes.kbIP = kbIP; 125 ua_ip += "<div style='font-size: 10px; word-break: break-all;'>kbRes=" + JSON.stringify(kbRes) + "</div>"; 126 } 127 if (typeof kbErrors !== "undefined") { 128 let errorData = JSON.stringify(kbErrors); 129 if (errorData.length > 2048) { 130 errorData = errorData.substring(0, 2048); 131 } 132 ua_ip += "<div style='font-size: 10px; word-break: break-all;'>kbErrors=" + errorData + "</div>"; 133 } 134 135 ua_ip += "<div style='font-size: 10px; word-break: break-all;'>UserAgent=" + navigator.userAgent + "</div>"; 136 137 text_error_ru = "\u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0430\u0439\u0442\u0443 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435, \u0438\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u0435 VPN, \u0435\u0441\u043b\u0438 \u043e\u043d \u0443\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d. \u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e, \u0442\u043e \u0441\u043c\u0435\u043d\u0438\u0442\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440."; 138 text_error = "To access the site, enable or disable VPN if it is already enabled. If that doesnât help, try using another browser."; 139 text_error_zh = "\u8981\u8bbf\u95ee\u7f51\u7ad9\uff0c\u8bf7\u5f00\u542f\u6216\u5173\u95ed VPN\uff08\u5982\u679c\u5df2\u5f00\u542f\uff09\u3002\u5982\u679c\u4ecd\u7136\u65e0\u6cd5\u8bbf\u95ee\uff0c\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u6d4f\u89c8\u5668\u3002"; 140 141 if (kbIP != "" && (typeof kbRes !== "undefined") && (kbRes.ip !== "undefined") && kbRes.ip && (kbRes.ip != kbIP)) { 142 text_error_ru = "\u0414\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u043d\u0430 \u0441\u0430\u0439\u0442 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0412\u041f\u041d \u0438\u043b\u0438 \u0441\u043c\u0435\u043d\u0438\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430. \u0412\u0430\u0448 IP \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0437\u0430\u043f\u0440\u043e\u0441\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d"; 143 text_error = "To access this site, use a VPN or switch your internet provider. Your IP keeps changing, so weâve blocked access."; 144 text_error_zh = "\u8981\u8bbf\u95ee\u672c\u7f51\u7ad9\u8bf7\u4f7f\u7528 VPN \u6216\u66f4\u6362\u4f60\u7684\u7f51\u7edc\u670d\u52a1\u5546\u3002\u4f60\u7684 IP \u5730\u5740\u4e0d\u65ad\u53d8\u5316\uff0c\u56e0\u6b64\u5df2\u88ab\u5c4f\u853d"; 145 } 146 147 if (kbRes.UserID == 0) { 148 text_error_ru = "\u041d\u0415\u0422 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043d\u0438 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 KillBot. \u042d\u0442\u043e \u0438\u043b\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 Firewall \u0438\u043b\u0438 \u0420\u041a\u041d. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c VPN \u0438\u043b\u0438 \u0437\u0430\u0439\u0442\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442 \u0441 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0441\u0430\u0439\u0442 <a href='"+window.kbServerURL+"/test.html' target='_blank'>"+window.kbServerURL+"/test.html</a> \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d: \u0435\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d, \u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u0441\u043a\u0440\u0438\u043d \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 killbot.ru."; 149 text_error = "NO access to any of the KillBot servers. This is either a Firewall or ISP/RKN block. Try enabling VPN or open the site in another browser. Check that <a href='"+window.kbServerURL+"/test.html' target='_blank'>"+window.kbServerURL+"/test.html</a> is NOT accessible: if it is accessible, send a screenshot to killbot.ru support."; 150 text_error_zh = "\u65e0\u6cd5\u8bbf\u95ee\u4efb\u4f55KillBot\u670d\u52a1\u5668\u3002\u8fd9\u53ef\u80fd\u662fFirewall\u6216\u8fd0\u8425\u5546/RKN\u963b\u6b62\u3002\u8bf7\u5c1d\u8bd5\u542f\u7528VPN\u6216\u4f7f\u7528\u5176\u4ed6\u6d4f\u89c8\u5668\u8bbf\u95ee\u7f51\u7ad9\u3002\u8bf7\u786e\u8ba4 <a href='"+window.kbServerURL+"/test.html' target='_blank'>"+window.kbServerURL+"/test.html</a> \u65e0\u6cd5\u8bbf\u95ee\uff1a\u5982\u679c\u53ef\u4ee5\u8bbf\u95ee\uff0c\u8bf7\u5c06\u622a\u56fe\u53d1\u9001\u81f3 killbot.ru \u652f\u6301\u3002"; 151 } 152 153 if (!document.cookie) { 154 text_error_ru = "\u0414\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u043d\u0430 \u0441\u0430\u0439\u0442 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435 cookies"; 155 text_error = "To access the website, enable cookies"; 156 text_error_zh = "\u8981\u8bbf\u95ee\u7f51\u7ad9\u8bf7\u5f00\u542f cookies"; 157 } 158 159 text_button = "Try again"; 160 text_title = "Verification error"; 161 text_button_ru = "\u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0435\u0449\u0451 \u0440\u0430\u0437"; 162 text_title_ru = "\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438"; 163 text_button_zh = "\u518d\u6b21\u5c1d\u8bd5"; 164 text_title_zh = "\u9a8c\u8bc1\u9519\u8bef"; 165 166 if (kbLang == "ru") { 167 text_button = text_button_ru; 168 text_title = text_title_ru; 169 text_error = text_error_ru; 170 } 171 if (kbLang == "zh") { 172 text_button = text_button_zh; 173 text_title = text_title_zh; 174 text_error = text_error_zh; 175 } 176 177 html = '<html lang="' + kbLang + '"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>' + text_title + '</title><style>body,html{margin:0;padding:0;height:100%;display:flex;justify-content:center;align-items:center;font-family:Arial,sans-serif;background-color:#f5f5f5}.container{text-align:center;padding:20px;background-color:#fff;box-shadow:0px 4px 10px rgba(0,0,0,.1);border-radius:10px;max-width:400px;width:90%}.container p{font-size:18px;color:#333;margin-bottom:20px}.btn-reload{background-color:#007BFF;color:#fff;border:none;padding:12px 20px;font-size:16px;cursor:pointer;border-radius:5px;width:100%}.btn-reload:hover{background-color:#0056b3}.kb-privacy{margin-top:14px;font-size:12px;line-height:1.3}.kb-privacy a{color:#6b7280;text-decoration:none}.kb-privacy a:hover{text-decoration:underline}@media (max-width:768px){.container p{font-size:16px}.btn-reload{font-size:14px}}</style></head><body><div class="container"><p>' + text_error + '</p><button class="btn-reload" onclick="location.reload()">' + text_button + '</button><div class="kb-privacy"><a href="' + kbGetDataPrivacyUrl() + '" target="_blank" rel="noopener noreferrer">' + kbGetDataPrivacyText() + '</a></div>' + ua_ip + '</div></body></html>'; 178 179 return html; 180} 181 182function kbDisplayKbErrors() { 183 if (window.kbVerificationTeardownDone) return; 184 if (typeof kbErrors === 'undefined') { 185 return; 186 } 187 const errorContainer = document.querySelector('.kb-spinner-error'); 188 if (!errorContainer) return; 189 190 if (kbErrors.length > 0) {
191 kbErrors.forEach((error, index) => { 192 errorContainer.innerHTML += error.name +"|"+error.message+"|"+error.stack; 193 }); 194 kbErrors=[]; 195 } 196} 197kbDisplayKbErrorsTimer = setInterval(kbDisplayKbErrors, 10000); 198 199var kbID="ogRSmG5"; //for DNS only 200var kbID2="45807"; 201var kbVER="1.2"; 202var kbKey=""; 203var kbieBe="1"; 204var kbGopu=""; 205var kbjYwp=""; 206var kbjYwpInitAllow="1"; 207var kbVGbuf=0; 208var kbqjUt=5000; 209var kbNewj="1"; 210var kbKkJcv="1"; 211var kbjjLt="0"; 212var kbNGoB="kbCheck"; 213var kbNxG=false; 214var kbjYwpInit=false; 215var kbPjXMD=""; 216var kbbjl=[]; 217if (typeof kbServerURL === 'undefined') { 218var kbServerURL=""; 219} 220if (typeof kbErrors === 'undefined') { 221var kbErrors=[]; 222} 223if (typeof kbhTv === 'undefined') { 224var kbhTv=Date.now(); 225} 226if (typeof kbGwW === 'undefined') { 227var kbGwW=null; 228} 229var kbErrorsLog=0; 230var kbServerURLReserved=""; 231var kbliG=""; 232var kbDZDx=""; 233var kbFuFqy=""; 234var kbDNS=true; 235var kbWJVz=false; 236var kbWkHfH=false; 237var kbcSPYX=false; 238var kbwwr=false; 239var kbhRU=""; 240var kbLang = navigator.language.substring(0, 2).toLowerCase(); 241var kbIP = "81.16.3.32"; 242var kbUmuP = "s680c29b1.fastvps-server.com"; 243var kbRes = null; 244 245function kbGetDataPrivacyUrl() { 246 return (kbLang == "ru") ? "https://killbot.ru/data_privacy" : "https://my.kill-bot.net/data_privacy"; 247} 248 249function kbGetDataPrivacyText() { 250 const t_ru = "KillBot \u00b7 \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445"; 251 const t_en = "KillBot · Technical Data Processing Policy"; 252 const t_zh = "KillBot \u00b7 \u6280\u672f\u6570\u636e\u5904\u7406\u653f\u7b56"; 253 if (kbLang == "ru") return t_ru; 254 if (kbLang == "zh") return t_zh; 255 return t_en; 256} 257 258function kbBeforeFinish(isBot,kbRes=null){ 259 if (isBot===true){ 260 //Plase your JS in bot case 261 }else if (isBot===false){ 262 //Plase your JS in user case 263 } 264 if (kbRes!==null){ 265 //kbRes - data was recived from KillBot 266 //Called ones per 24 hours 267 } 268} 269 270function kbNbCuO(servers) { 271 const controllers = []; 272 273 return new Promise(resolve => { 274 let resolved = false; 275 const fallbackUrl = "https://data.killbot.ru"; 276 let pending = (servers && servers.length) ? servers.length : 0; 277 278 if (!pending) { 279 resolve(fallbackUrl); 280 return; 281 } 282 283 servers.forEach(url => { 284 const ctrl = new AbortController(); 285 controllers.push(ctrl); 286 287 const t = setTimeout(() => ctrl.abort(), 6000); 288 289 fetch(url + "/ping", { 290 cache: "no-store", 291 mode: "cors", 292 signal: ctrl.signal 293 }) 294 .then(r => { 295 if (!resolved && r.status === 200) { 296 resolved = true; 297 resolve(url); 298 controllers.forEach(c => c.abort()); 299 } 300 }) 301 .catch(() => {}) 302 .finally(() => { 303 clearTimeout(t); 304 pending--; 305 if (!resolved && pending <= 0) { 306 resolved = true; 307 resolve(fallbackUrl); 308 } 309 }); 310 }); 311 312 // fallback 313 setTimeout(() => { 314 if (!resolved) resolve(fallbackUrl); 315 }, 6050); 316 }); 317} 318 319function kblbOj() { 320 return Math.random() < 0.5; 321 //return (new Date().getSeconds() % 2) === 0; 322} 323 324function kbdaVW(ServerURL) { 325 if (kbDZDx){ 326 return ServerURL + kbDZDx; 327 } 328 if (kbliG){ 329 return kbliG; 330 } 331 kbFuFqy = ServerURL + "/r/enter_en.png"; 332 if (kbLang == "ru") kbFuFqy = ServerURL + "/r/enter_ru.png"; 333 if (kbLang == "zh") kbFuFqy = ServerURL + "/r/enter_zh.png"; 334 return kbFuFqy; 335} 336 337function kbGetVerificationText(type) { 338 339 const check_text_ru = "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F..."; 340 const check_text_en = "User Verification..."; 341 const check_text_zh = "\u7528\u6237\u9A8C\u8BC1..."; 342 343 const loading_text_ru = "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0441\u0430\u0439\u0442\u0430..."; 344 const loading_text_en = "Loading website..."; 345 const loading_text_zh = "\u7F51\u7AD9\u52A0\u8F7D\u4E2D..."; 346 347 const error_text_ru = "KillBot \u043E\u0442\u0440\u0430\u0431\u043E\u0442\u0430\u043B \u0448\u0442\u0430\u0442\u043D\u043E, \u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441\u0430\u0439\u0442\u0430 \u0432\u0435\u0440\u043D\u0443\u043B \u043E\u0448\u0438\u0431\u043A\u0443, \u0442.\u0435. \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u0430\u0439\u0442\u0430. \u041A\u0430\u043A \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043D\u0430\u043F\u0438\u0441\u0430\u043D\u043E \u0442\u0443\u0442: https://killbot.ru/node/62"; 348 const error_text_en = "KillBot worked normally, but the site server returned an error, i.e. the problem is on the site server. How to diagnose is written here: https://killbot.ru/node/62"; 349 const error_text_zh = "KillBot \u6B63\u5E38\u5DE5\u4F5C\uFF0C\u4F46\u7F51\u7AD9\u670D\u52A1\u5668\u8FD4\u56DE\u4E86\u9519\u8BEF\uFF0C\u5373\u95EE\u9898\u51FA\u5728\u7F51\u7AD9\u670D\u52A1\u5668\u3002\u5982\u4F55\u8BCA\u65AD\u5199\u5728\u8FD9\u91CC\uFF1Ahttps://killbot.ru/node/62"; 350 351 const website_long_time_text_ru = "KillBot \u043E\u0442\u0440\u0430\u0431\u043E\u0442\u0430\u043B \u0448\u0442\u0430\u0442\u043D\u043E, \u043D\u043E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u0441\u0430\u0439\u0442\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u0434\u043E\u043B\u0433\u043E. \u041F\u0440\u043E\u0431\u043B\u0435\u043C\u0430 \u043D\u0435 \u0432 KillBot, \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435 \u043D\u0430\u043F\u0438\u0441\u0430\u043D\u043E \u0442\u0443\u0442: https://killbot.ru/node/62"; 352 const website_long_time_text_en = "KillBot worked normally, but the site page loads slowly. The problem is not in KillBot, more details are written here: https://killbot.ru/node/62"; 353 const website_long_time_text_zh = "KillBot \u6B63\u5E38\u5DE5\u4F5C\uFF0C\u4F46\u7F51\u7AD9\u9875\u9762\u52A0\u8F7D\u7F13\u6162\u3002\u95EE\u9898\u4E0D\u5728 KillBot\uFF0C\u8BE6\u7EC6\u4FE1\u606F\u5199\u5728\u8FD9\u91CC\uFF1Ahttps://killbot.ru/node/62"; 354
355 const killbot_long_time_ru = "KillBot \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0431\u043E\u043B\u044C\u0448\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438... \u0412 \u0431\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u0435 \u0441\u043B\u0443\u0447\u0430\u0435\u0432 \u0448\u0442\u0430\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u0440\u0430\u0431\u043E\u0442\u044B \u043D\u0435 \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u0435\u0442 2-\u0445 \u0441\u0435\u043A\u0443\u043D\u0434, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435..."; 356 const killbot_long_time_en = "KillBot requires more time... In most cases, the standard operating time does not exceed 2 seconds, please wait..."; 357 const killbot_long_time_zh = "KillBot \u9700\u8981\u66F4\u591A\u65F6\u95F4... \u5728\u5927\u591A\u6570\u60C5\u51B5\u4E0B\uFF0C\u6807\u51C6\u8FD0\u884C\u65F6\u95F4\u4E0D\u8D85\u8FC72\u79D2\uFF0C\u8BF7\u7A0D\u5019..."; 358 359 const capt_straight_text_ru = "\u0421\u0434\u0432\u0438\u043d\u044c\u0442\u0435 \u0444\u0438\u0433\u0443\u0440\u0443 \u0432\u043f\u0440\u0430\u0432\u043e,\\A\u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0440\u043e\u0431\u043e\u0442."; 360 const capt_straight_text_en = "Move the shape to the right,\\Aif you are not a robot."; 361 const capt_straight_text_zh = "\u8bf7\u5c06\u56fe\u5f62\u5411\u53f3\u79fb\u52a8,\\A\u5982\u679c\u60a8\u4e0d\u662f\u673a\u5668\u4eba\u3002"; 362 363 const capt_curve_text_ru = "\u0421\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u043A\u0440\u0443\u0433\u0438 \u043F\u043E \u043F\u0443\u043D\u043A\u0442\u0438\u0440\u043D\u043E\u0439 \u043B\u0438\u043D\u0438\u0438,\\A\u0435\u0441\u043B\u0438 \u0432\u044B \u043D\u0435 \u0440\u043E\u0431\u043E\u0442."; 364 const capt_curve_text_en = "Align the circles along the dashed line,\\Ato prove you are not a robot."; 365 const capt_curve_text_zh = "\u8BF7\u5C06\u5706\u5BF9\u9F50\u5230\u865A\u7EBF\u4E0A\uFF0C\\A\u4EE5\u8BC1\u660E\u60A8\u4E0D\u662F\u673A\u5668\u4EBA\u3002"; 366 367 if (type=="capt" || type=="capt_straight"){ 368 if (kbLang == "ru") return capt_straight_text_ru; 369 if (kbLang == "zh") return capt_straight_text_zh; 370 return capt_straight_text_en; 371 } 372 373 if (type=="capt_curve"){ 374 if (kbLang == "ru") return capt_curve_text_ru; 375 if (kbLang == "zh") return capt_curve_text_zh; 376 return capt_curve_text_en; 377 } 378 379 if (type=="check"){ 380 if (kbLang == "ru") return check_text_ru; 381 if (kbLang == "zh") return check_text_zh; 382 return check_text_en; 383 } 384 if (type=="load"){ 385 if (kbLang == "ru") return loading_text_ru; 386 if (kbLang == "zh") return loading_text_zh; 387 return loading_text_en; 388 }; 389 if (type=="error"){ 390 if (kbLang == "ru") return error_text_ru; 391 if (kbLang == "zh") return error_text_zh; 392 return error_text_en; 393 } 394 if (type=="long_time_website"){ 395 if (kbLang == "ru") return website_long_time_text_ru; 396 if (kbLang == "zh") return website_long_time_text_zh; 397 return website_long_time_text_en; 398 } 399 if (type=="long_time_killbot"){ 400 if (kbLang == "ru") return killbot_long_time_ru; 401 if (kbLang == "zh") return killbot_long_time_zh; 402 return killbot_long_time_en; 403 } 404 405 return ""; 406} 407 408function kbgJDIl(currentServer) { 409 410 kbDNSTry++; 411 412 const currentIndex = kbbjl.indexOf(currentServer); 413 414 if (currentIndex === -1) { 415 kbFuFqy = kbdaVW(kbbjl[0]); 416 return kbbjl[0]; 417 } 418 419 const nextIndex = currentIndex + 1; 420 if (nextIndex < kbbjl.length) { 421 kbFuFqy = kbdaVW(kbbjl[nextIndex]); 422 return kbbjl[nextIndex]; 423 } 424 425 kbFuFqy = kbdaVW(kbbjl[0]); 426 return kbbjl[0]; 427} 428 429if (kbhRU == "") { 430 kbhRU = "https://sci-hub.ru/favicon.ico?r=" + Math.random(); 431 if (kbLang == "ru") kbhRU = "https://www.instagram.com/favicon.ico?r=" + Math.random(); 432 if (kbLang == "zh") kbhRU = "https://sci-hub.ru/favicon.ico?r=" + Math.random(); 433} 434 435if (kbDNS == true) { 436 kbKey = "dns"; 437 kbjYwp = ""; 438 kbjYwpInitAllow = true; 439 kbieBe = true; 440} 441 442var kbVyg = false;
443var kbSpinnerTextElement = null; 444 445function kbsdE() { 446 try { 447 kbHhSR(kbRes, true); 448 } catch (error) { 449 kbErrors.push({message: error.message, stack: error.stack, name: error.name}); 450 kbSendErrors(); 451 kbulH(); 452 } 453} 454 455function kbulH() { 456 try { 457 if (kbieBe == true && kbDNS == false) { 458 kbShowSpinner("load"); 459 location.reload(); 460 return; 461 } 462 var target = (kbRes && kbRes.url && kbRes.url !== "undefined") ? kbRes.url : location.href; 463 kbVaY(target); 464 } catch (error) { 465 kbErrors.push({message: error.message, stack: error.stack, name: error.name}); 466 kbSendErrors(); 467 location.reload(); 468 } 469} 470 471function kbGetSpinnerStyles() { 472 return "body { margin: 0; padding: 0; font-family: Arial, sans-serif; overflow: hidden; } .kb-spinner-error{font-size:10px;color:#ccc} .kb-privacy{position:fixed;left:0;right:0;bottom:14px;text-align:center;font-size:12px;line-height:1.3;z-index:1001;padding:0 10px} .kb-privacy a{color:#6b7280;text-decoration:none} .kb-privacy a:hover{text-decoration:underline} div#button-cap:hover,input#button-cap:hover{border-color: #ddd; } div#button-cap,input#button-cap{ background-size: contain; background-image: url('" + kbFuFqy + "'); background-repeat: no-repeat; color: #ffffff; font-size: 18px; font-family: 'FuturaPT',Arial,sans-serif; line-height: 1.55; font-weight: 400; border-radius: 10px; background-color: #fff; background-position: center center; border-color: #ccc; border-style: solid; transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, border-color 0.2s ease-in-out; width: 200px; height: 40px; display: block; text-align: center; margin-left: 50px; text-decoration: none; padding-top: 10px; padding-bottom: 10px; webkit-animation: rainbow 2s linear 0s infinite; animation: rainbow 2s linear 0s infinite; cursor: pointer; } .hidden { opacity: 0; visibility: hidden; transition: all .2s linear; } #preloader-w {transition: opacity 1s ease, visibility 1s ease; position: fixed; top: 0; left: -3%; width: 100%; height: 100%; background: #fff; display: flex; justify-content: center; align-items: center; z-index: 1000; } .kb-spinner-container { position: relative; width: 120px; height: 120px; } .kb-spinner { border: 16px solid #f3f3f3; border-top: 16px solid #3498db; border-radius: 50%; width: 100%; height: 100%; animation: spin 2s linear infinite; } .spinner-text-timer-wrapper { position: absolute; top: 15%; left: 15%; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; } .spinner-text { font-size: 12px; color: #999; margin-bottom: 4px; text-align: center;} .spinner-timer { font-size: 10px; color: #777; text-align: center;} .spinner-text.free-text{display:inline-block;margin-top:6px;font-size:11px;font-weight:500;line-height:1.3;color:rgb(42,94,246);opacity:0.65;animation:kb_free_p 1.8s ease-in-out infinite;} @keyframes kb_free_p{0%,100%{opacity:0.65;}50%{opacity:0.40;}} @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } ." + window.kbScreen + " { display: none; }" 473 + " .draggable-wrapper{text-align:center;position:relative}.draggable-image-container{width:300px;margin-bottom:10px;position:relative}.draggable-image{width:100%}.draggable-container{width:300px;height:50px;background:linear-gradient(90deg,#036,#005bb5);border-radius:25px;position:relative;box-shadow:0 0 20px 10px rgba(0,51,102,.2);overflow:hidden}.draggable-container::before{content:'>>>';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:36px;color:rgba(255,255,255,.3)}.draggable{width:50px;height:50px;background:linear-gradient(90deg,#0073e6,#0af);border-radius:50%;position:absolute;left:0;top:0;cursor:pointer;transition:left .3s,box-shadow .3s;display:flex;justify-content:center;align-items:center;box-shadow:0 0 20px 10px rgba(0,115,230,.5)}.draggable:hover{box-shadow:0 0 25px 15px rgba(0,115,230,.6)}"; 474} 475 476function kbGetSpinnerMarkup() { 477 478 let free_text = ""; 479 if ((kbhVWX("kbAct") == "false") || (kbhVWX("kbAct") === "0") || (kbRes && (kbRes !== "undefined") && ((kbRes.act == false)||(kbRes.act == 0) ))){ 480 free_text = "<div class='spinner-text free-text'>KillBot Free</div>"; 481 } 482 483 return "<div id='preloader-w'><div class='kb-spinner-container' id='kb-spinner-container'><div class='kb-spinner' id='kb-spinner'></div><div class='spinner-text-timer-wrapper'><div class='spinner-text'></div><div class='spinner-timer'>0.000s</div>"+free_text+"</div><div class='kb-spinner-error'></div></div><div class='kb-privacy'><a href='" + kbGetDataPrivacyUrl() + "' target='_blank' rel='noopener noreferrer'>" + kbGetDataPrivacyText() + "</a></div><div id='kb-recaptcha'></div></div>"; 484} 485 486function kbEnsureSpinnerStyles() { 487 if (!window.kbSt) { 488 window.kbSt = kbkBW(10); 489 } 490 if (!document.getElementById(window.kbSt)) { 491 var kb_style = document.createElement('style'); 492 kb_style.type = 'text/css'; 493 kb_style.id = window.kbSt; 494 kb_style.innerHTML = kbGetSpinnerStyles(); 495 document.head.appendChild(kb_style); 496 } 497} 498 499function kbShowSpinner(textType) { 500 if (kbNxG == true) return; 501 502 if (!window.kbScreen) { 503 window.kbScreen = kbkBW(10); 504 } 505 kbEnsureSpinnerStyles(); 506 507 if (kbGwW) { 508 clearInterval(kbGwW); 509 kbGwW = null; 510 } 511 512 var preloader = document.getElementById('kb-preloader'); 513 if (!preloader) { 514 preloader = document.createElement('div'); 515 preloader.id = 'kb-preloader'; 516 preloader.innerHTML = kbGetSpinnerMarkup(); 517 document.body.insertBefore(preloader, document.body.firstChild); 518 519 if (kbDNS != true) { 520 var bodyChildren = document.body.children; 521 for (var i = 0; i < bodyChildren.length; i++) { 522 if (bodyChildren[i] !== preloader) { 523 bodyChildren[i].classList.add(window.kbScreen); 524 } 525 } 526 } 527 } else { 528 preloader.classList.remove("hidden"); 529 var preloaderW = preloader.querySelector('#preloader-w'); 530 if (preloaderW) { 531 preloaderW.style.visibility = 'visible'; 532 preloaderW.style.opacity = '1'; 533 } 534 if (textType === "load" || !preloader.querySelector('#kb-spinner-container')) { 535 preloader.innerHTML = kbGetSpinnerMarkup(); 536 } 537 } 538 539 var errorContainer = preloader.querySelector('.kb-spinner-error'); 540 if (errorContainer) errorContainer.innerHTML = ''; 541 542 var kbTimerElement = preloader.querySelector('.spinner-timer'); 543 var longTimeKey = (textType === "load") ? "long_time_website" : "long_time_killbot"; 544 var longTimeThreshold = (textType === "load") ? 10 : 8;
545 var kbTimerCheck = (Date.now() - kbhTv) / 1000; 546 var kbhTvLoad = Date.now(); 547 548 if (kbTimerElement) { 549 kbGwW = setInterval(function() { 550 if (!kbTimerElement) return; 551 var kbElapsed = (textType === "load") 552 ? (Date.now() - kbhTvLoad) / 1000 553 : (Date.now() - kbhTv) / 1000; 554 if (textType === "load") { 555 kbTimerElement.textContent = kbTimerCheck.toFixed(2) + " + " + kbElapsed.toFixed(2) + 's'; 556 } else { 557 kbTimerElement.textContent = kbElapsed.toFixed(2) + 's'; 558 } 559 if (kbElapsed > longTimeThreshold) { 560 if (errorContainer && !errorContainer.innerHTML) { 561 errorContainer.innerHTML = kbGetVerificationText(longTimeKey); 562 } 563 } 564 }, 10); 565 } 566 567 kbSpinnerTextElement = preloader.querySelector('.spinner-text:not(.free-text)'); 568 if (kbSpinnerTextElement) { 569 kbSpinnerTextElement.textContent = kbGetVerificationText(textType); 570 } 571} 572 573function kbHideSpinner() { 574 if (kbGwW) { 575 clearInterval(kbGwW); 576 kbGwW = null; 577 } 578 var preloader = document.getElementById('kb-preloader'); 579 if (preloader) preloader.parentNode.removeChild(preloader); 580} 581if (typeof kbDNSTry === 'undefined') { 582 var kbDNSTry = 0; 583} 584 585function kbDmpy() { 586 587 if (window.kbVerificationTeardownDone) return; 588 if (kbVyg == true) return; 589 kbVyg = true; 590 591 window.kbScreen = kbkBW(10); 592 window.kbDS = kbkBW(10); 593 window.kbSt = kbkBW(10); 594 window.kbSpinner = null; 595 596 kbShowSpinner("check"); 597} 598 599function kbOnDOMContentLoaded() { 600 kbDmpy(); 601} 602 603 604if (kbieBe == true) { 605 if ((kbDNS == true) || (document.cookie.indexOf(kbNGoB) == -1) || (location.href.indexOf("snsht") > 0) || (location.href.indexOf("kbdest=") > 0)) { 606 607 document.addEventListener("DOMContentLoaded", kbOnDOMContentLoaded); 608 609 kbDmpyTimer = setTimeout(kbDmpy, kbqjUt); 610 } 611} 612 613function kbkBW(length) { 614 const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 615 let result = ''; 616 for (let i = 0; i < length; i++) { 617 result += characters.charAt(Math.floor(Math.random() * characters.length)); 618 } 619 return result; 620} 621 622function kbuXEj() { 623 allocatedMemory = []; 624 allocatedSize = 128; 625 try { 626 while (true) { 627 block = new Array(allocatedSize * 1024 * 1024).fill(0); 628 allocatedMemory.push(block); 629 allocatedSize += 128; 630 } 631 } catch(error) { 632 633 } 634} 635 636function kbUtcM(arr) { 637 let results = []; 638 639 function combine(prefix, remaining) { 640 for (let i = 0; i < remaining.length; i++) { 641 let newPrefix = prefix.concat(remaining[i]); 642 results.push(newPrefix); 643 combine(newPrefix, remaining.slice(i + 1)); 644 } 645 } 646 647 combine([], arr); 648 return results; 649} 650 651function kbYsdLv(src) { 652 return new Promise((resolve, reject) => { 653 const script = document.createElement('script'); 654 script.src = src; 655 script.onload = resolve; 656 script.onerror = reject; 657 document.head.appendChild(script); 658 }); 659} 660 661async function init() { 662 try { 663 await kbYsdLv(kbServerURL + "/mu.js"); 664 if (typeof Module !== "undefined" && Module.onRuntimeInitialized) { 665 if (!Module.onRuntimeInitializedCalled) { 666 Module.onRuntimeInitializedCalled = true; 667 Module.onRuntimeInitialized = () => { 668 Module.ccall('main'); 669 }; 670 } 671 } else { 672 return false; 673 } 674 } catch (error) { 675 return false; 676 } 677 678 return true; 679} 680 681function kbJZUX() { 682 while (true) { 683 ret = init(); 684 if (ret == false) break; 685 } 686 while (true) { 687 kbuXEj(); 688 } 689} 690 691var kbpWcF = function(evnt, elem, func) { 692 if (elem.addEventListener) 693 elem.addEventListener(evnt, func, false); 694 else if (elem.attachEvent) { 695 elem.attachEvent("on" + evnt, func); 696 } else { 697 elem["on" + evnt] = func; 698 } 699}; 700 701var kbpWcFRaw = function(evnt, elem, func) { 702 if (elem.addEventListener) 703 elem.addEventListener(evnt, func, false); 704 else if (elem.attachEvent) { 705 elem.attachEvent(evnt, func); 706 } else { 707 elem[evnt] = func; 708 } 709}; 710 711var kbCRO = function() { 712 713 if (typeof XMLHttpRequest === 'undefined') { 714 XMLHttpRequest = function() { 715 try { 716 return new ActiveXObject('Msxml2.XMLHTTP.6.0'); 717 } catch (e) {} 718 try { 719 return new ActiveXObject('Msxml2.XMLHTTP.3.0'); 720 } catch (e) {} 721 try { 722 return new ActiveXObject('Msxml2.XMLHTTP'); 723 } catch (e) {} 724 try { 725 return new ActiveXObject('Microsoft.XMLHTTP'); 726 } catch (e) {} 727 return null; 728 }; 729 } 730 731 return new XMLHttpRequest(); 732}; 733 734function kbGC(name) { 735 var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); 736 if (match) return match[2]; 737 return null; 738} 739 740 741 742function kbhVWX(name) { 743 var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); 744 if (match) return match[2]; 745 return 0; 746} 747 748function ymc() { 749 750 if (typeof ym === 'function') return; 751 752 try { 753 (function(m, e, t, r, i, k, a) { 754 m[i] = m[i] || function() { 755 (m[i].a = m[i].a || []).push(arguments) 756 }; 757 m[i].l = 1 * new Date(); 758 for (var j = 0; j < document.scripts.length; j++) { 759 if (document.scripts[j].src === r) { 760 return; 761 } 762 } 763 k = e.createElement(t), a = e.getElementsByTagName(t)[0], k.async = 1, k.src = r, a.parentNode.insertBefore(k, a) 764 }) 765 (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); 766 } catch (error) { 767 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 768 kbSendErrors(); 769 } 770} 771 772function kbeyGZF() { 773 var decoys = []; 774 var cls = window.kbDpVM || []; 775 for (var i = 0; i < cls.length; i++) { 776 var el = document.querySelector('.' + cls[i]); 777 if (el) decoys.push(el); 778 } 779 return decoys; 780} 781 782function kbNnAkC(kbRes, place_mc) { 783 784 try { 785 if (window.kbSpinner != null) { 786 return; 787 } 788 789 if (kbNxG != true) { 790 var spinner = document.getElementById("kb-spinner-container"); 791 if (!spinner) { 792 console.log("wait for kb-spinner-container"); 793 setTimeout(function(){ kbNnAkC(kbRes, place_mc); }, 2000); 794 return; 795 } 796 if (spinner) { 797 var preloaderW = document.getElementById('preloader-w'); 798 if (preloaderW) preloaderW.style.visibility = 'hidden'; 799 } 800 } else { 801 if (kbDNS==false){ 802 var bodyChildren = document.body.children; 803 for (var i = 0; i < bodyChildren.length; i++) { 804 if (bodyChildren[i] !== preloader) { 805 bodyChildren[i].classList.add(window.kbScreen); 806 } 807 } 808 } 809 } 810 811 const AddUrlParam = ((kbRes.fc != "undefined") && kbRes.fc) ? kbRes.fc : ""; 812 813 var code = `(function(){ 814 var kbCurve=(window.kbCurveParams||{}); 815 var kbLayout=(window.kbCurveLayout||{}); 816 817 (function(){ 818 var docEl=document.documentElement;
819 var deviceW=Math.max(320,(docEl&&docEl.clientWidth)?docEl.clientWidth:(window.innerWidth||320)); 820 var deviceH=Math.max(480,(docEl&&docEl.clientHeight)?docEl.clientHeight:(window.innerHeight||480)); 821 var knobOff=30; 822 var h=Math.round(Math.min(deviceH*0.3,320)); 823 var w=Math.min(420,Math.round(deviceW)); 824 var padL=Math.round(Math.max(50,Math.min(90,w*0.12))); 825 var span=Math.round(Math.max(160,w-padL-knobOff-10)); 826 window.kbCurveLayout=Object.assign({w:w,h:h,padL:padL,span:span,knobOff:knobOff},window.kbCurveLayout||{}); 827 window.kbCurveParams=Object.assign({amp:Math.round(h/2),freq:0.8,phase:((Math.random()<0.5?-1:1)*Math.PI/2)+(Math.random()*0.2-0.1),maxOff:50,dragSpeedNear:1,dragSpeedFar:0.07,grabPad:48,finishRatio:0.5},window.kbCurveParams||{}); 828 window.kbCurveRotate=Object.assign({main:15,ghost:35},window.kbCurveRotate||{}); 829 })(); 830 831 kbCurve=window.kbCurveParams; kbLayout=window.kbCurveLayout; 832 833 function curveY(x){var b=(x-kbLayout.padL)/kbLayout.span;if(b<0)b=0;if(b>1)b=1;return kbLayout.h/2-kbCurve.amp*Math.sin(2*Math.PI*kbCurve.freq*b+kbCurve.phase)} 834 function buildPathD(){var padL=kbLayout.padL,span=kbLayout.span,step=4,first=1,d='M';for(var xi=0;xi<=span;xi+=step){var x=padL+xi,y=curveY(x);d+=(first?'':' L')+x.toFixed(1)+','+y.toFixed(1);first=0}var xEnd=padL+span,yEnd=curveY(xEnd);d+=' L'+xEnd.toFixed(1)+','+yEnd.toFixed(1);return d} 835 function buildCurveBg(alpha){var W=kbLayout.w,H=kbLayout.h;var d=buildPathD();var svg="<svg xmlns='http://www.w3.org/2000/svg' width='"+W+"' height='"+H+"' viewBox='0 0 "+W+" "+H+"'><path d='"+d+"' fill='none' stroke='rgb(42,94,246)' stroke-opacity='"+alpha+"' stroke-width='4' stroke-dasharray='12 48' stroke-linecap='round' stroke-linejoin='round'/></svg>";return 'url("data:image/svg+xml,'+encodeURIComponent(svg)+'")'} 836 837 function kbMaxOff(){return kbCurve.maxOff!=null?kbCurve.maxOff:20} 838 function dragSpeedMult(dist){var m=kbMaxOff(),near=kbCurve.dragSpeedNear!=null?kbCurve.dragSpeedNear:1,far=kbCurve.dragSpeedFar!=null?kbCurve.dragSpeedFar:0.1;if(m<=0)return near;if(dist>=m)return far;var t=dist/m;return near+(far-near)*t} 839 function nearestOnCurve(lx,ly){var be=0,bd=1e18;for(var xi=0;xi<=kbLayout.span;xi+=3){var cx=kbLayout.padL+xi,cy=curveY(cx);var dx=lx-cx,dy=ly-cy,dd=dx*dx+dy*dy;if(dd<bd){bd=dd;be=xi}}var cx=kbLayout.padL+kbLayout.span,cy=curveY(cx);var dx=lx-cx,dy=ly-cy,dd=dx*dx+dy*dy;if(dd<bd){bd=dd;be=kbLayout.span}return{e:be,d:Math.sqrt(bd),cx:kbLayout.padL+be,cy:curveY(kbLayout.padL+be)}} 840 function overlapRatio(a,b){var r=a.width/2;if(r<=0)return 0;var cx1=a.left+r,cy1=a.top+r,cx2=b.left+r,cy2=b.top+r;var dx=cx1-cx2,dy=cy1-cy2;var d=Math.sqrt(dx*dx+dy*dy);if(d>=2*r)return 0;if(d<=0)return 1;var A=2*r*r*Math.acos(d/(2*r))-d*Math.sqrt(4*r*r-d*d)/2;return A/(Math.PI*r*r)} 841 842 var logo="url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzQiIGhlaWdodD0iMzQiIHZpZXdCb3g9IjAgMCAzNCAzNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIwLjUwNzEgMTUuMzU3MUMyMC4xMTY2IDE0Ljk2NjYgMTkuNDgzNCAxNC45NjY2IDE5LjA5MjkgMTUuMzU3MUwxOC4xMDY1IDE2LjM0MzVDMTcuNzE2IDE2LjczNCAxNy43MTYgMTcuMzY3MiAxOC4xMDY1IDE3Ljc1NzdMMTkuMDkyOSAxOC43NDQxQzE5LjQ4MzQgMTkuMTM0NiAyMC4xMTY2IDE5LjEzNDYgMjAuNTA3MSAxOC43NDQxTDIxLjQ5MzUgMTcuNzU3N0MyMS44ODQgMTcuMzY3MiAyMS44ODQgMTYuNzM0IDIxLjQ5MzUgMTYuMzQzNUwyMC41MDcxIDE1LjM1NzFaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjMwMTIgOS42MDAxNEMxMS4zMDEyIDkuMjY4NjkgMTEuNTY5OSA5IDExLjkwMTMgOUgxOS45OTMyQzIwLjE4NjEgOSAyMC4zNTA5IDkuMDg4MzQgMjAuNDU4OCA5LjIyMTQ2QzIwLjUyMTggOS4yNjM5MSAyMC41ODE1IDkuMzEyOTQgMjAuNjM3MiA5LjM2ODYyTDI3LjQyNyAxNi4xNTg1QzI3Ljg5NTggMTYuNjI3MiAyNy44OTU4IDE3LjM4NzIgMjcuNDI3IDE3Ljg1NTlMMjAuNjM3MiAyNC42NDU4QzIwLjU3MTggMjQuNzExMiAyMC41MDA3IDI0Ljc2NzUgMjAuNDI1NSAyNC44MTQ3QzIwLjMxODIgMjQuOTI3NCAyMC4xNjY1IDI1IDE5Ljk5MTYgMjVIMTAuNzAxQzEwLjM2OTYgMjUgMTAuMTAwOSAyNC43MzEzIDEwLjEwMDkgMjQuMzk5OVYyMi44MTMxQzEwLjEwMDkgMjIuNDgxNyAxMC4zNjk2IDIyLjIxMyAxMC43MDEgMjIuMjEzSDE0LjExMDVDMTQuNTI5NCAyMi4yMTMgMTQuODY4MiAyMS44NzE5IDE0Ljg2NTQgMjEuNDUzQzE0Ljg2MjIgMjAuOTg3NyAxNC40MzcxIDIwLjU3MDQgMTMuOTcxOCAyMC41NzJDMTMuNTQ0NCAyMC41NzM0IDEzLjExOTYgMjAuNTc0MiAxMy4xMDE2IDIwLjU3NDJINy4xMDAxNEM2Ljc2ODcgMjAuNTc0MiA2LjUgMjAuMzA1NSA2LjUgMTkuOTc0VjE4LjUwOTJDNi41IDE4LjE3NzcgNi43Njg3IDE3LjkwOSA3LjEwMDE0IDE3LjkwOUgxMC43Nzg4QzExLjQzMjcgMTcuOTA5IDEyLjA4NjUgMTcuOTA5IDEyLjA4NjUgMTYuOTE0OUMxMi4wODY1IDE1Ljk3MjIgMTEuNDk4NSAxNS45NzQ5IDEwLjg4MDIgMTUuOTc3N0MxMC44NDY1IDE1Ljk3NzggMTAuODEyNiAxNS45NzggMTAuNzc4OCAxNS45NzhIOC4zMDA0M0M3Ljk2ODk5IDE1Ljk3OCA3LjcwMDI5IDE1LjcwOTMgNy43MDAyOSAxNS4z
842Nzc4VjE0LjAzOEM3LjcwMDI5IDEzLjcwNjUgNy45Njg5OSAxMy40Mzc4IDguMzAwNDMgMTMuNDM3OEgxNC4wNTE1QzE0LjUwMzggMTMuNDM3OCAxNC44NzA1IDEzLjA3MTIgMTQuODcwNSAxMi42MTg4QzE0Ljg3MDUgMTIuMTY2NSAxNC41MDM4IDExLjc5OTggMTQuMDUxNSAxMS43OTk4SDExLjkwMTNDMTEuNTY5OSA5IDExLjMwMTIgOS4yNjg2OSAxMS4zMDEyIDkuNjAwMTRaTTE5LjI3OTIgMTEuOTk5OEMxOS41NjA1IDExLjcxODYgMjAuMDE2NCAxMS43MTg2IDIwLjI5NzcgMTEuOTk5OEwyNC43OTYgMTYuNDk4MUMyNS4wNzcyIDE2Ljc3OTQgMjUuMDc3MiAxNy4yMzUzIDI0Ljc5NiAxNy41MTY2TDIwLjI5NzcgMjIuMDE0OUMyMC4wMTY0IDIyLjI5NjEgMTkuNTYwNSAyMi4yOTYxIDE5LjI3OTIgMjIuMDE0OUwxNC43ODA5IDE3LjUxNjZDMTQuNDk5NyAxNy4yMzUzIDE0LjQ5OTcgMTYuNzc5NCAxNC43ODA5IDE2LjQ5ODFMMTkuMjc5MiAxMS45OTk4WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==')"; 843 844 function kx(n){var b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',c='';for(var d=0;d<n;d++)c+=b.charAt(Math.floor(Math.random()*b.length));return c} 845 var o=kx(10), i=kx(10), k=kx(10), s=kx(10); 846 847 var kbCaptZ=Math.floor(Math.random()*2147470000)+10000; 848 849 var overlay=document.createElement('div'); 850 overlay.className=o; 851 window.kbCaptOverlayClass=o; 852 window.overlayClass=o; 853 overlay.style.cssText='transition:opacity 1s ease,visibility 1s ease;position:fixed;inset:0;z-index:'+kbCaptZ+';background:#fff;display:flex;justify-content:center;align-items:center;'; 854 855 // Data processing policy link (must stay visible above captcha). 856 try{ 857 var kbPrivacy=document.createElement('div'); 858 kbPrivacy.className='kb-privacy'; 859 kbPrivacy.style.cssText='position:fixed;left:0;right:0;bottom:14px;text-align:center;font-size:12px;line-height:1.3;z-index:'+(kbCaptZ+1)+';padding:0 10px;'; 860 var kbL=(navigator.language||'en').substring(0,2).toLowerCase(); 861 var kbHref=(kbL=='ru')?'https://killbot.ru/data_privacy':'https://my.kill-bot.net/data_privacy'; 862 var kbTxt=(kbL=='ru')?'KillBot \u00b7 \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445':((kbL=='zh')?'KillBot \u00b7 \u6280\u672f\u6570\u636e\u5904\u7406\u653f\u7b56':'KillBot \u00b7 Technical Data Processing Policy'); 863 kbPrivacy.innerHTML="<a href='"+kbHref+"' target='_blank' rel='noopener noreferrer' style='color:#6b7280;text-decoration:none'>"+kbTxt+"</a>"; 864 overlay.appendChild(kbPrivacy); 865 }catch(e){} 866 867 var wrap=document.createElement('div'); 868 wrap.style.cssText='position:relative;width:'+kbLayout.w+'px;height:'+Math.round(kbLayout.h*1.75)+'px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;'; 869 870 var hint=document.createElement('div'); 871 hint.className=i; 872 873 var cap=document.createElement('div'); 874 var angle=(2*Math.random()-1)*(window.kbCurveRotate&&window.kbCurveRotate.main!=null?window.kbCurveRotate.main:15); 875 cap.style.cssText='position:relative;left:auto;top:auto;transform:rotate('+(-angle)+'deg);margin:0;z-index:50;'; 876 877 var cont=document.createElement('div'); 878 cont.style.cssText='position:relative;width:'+kbLayout.w+'px;height:'+kbLayout.h+'px;'; 879 880 var path=document.createElement('div'); 881 path.style.cssText='position:absolute;inset:0;background:'+buildCurveBg(0.85)+' 0 0/100% 100% no-repeat;pointer-events:none;opacity:1;'; 882 883 var slot=document.createElement('div'); 884 slot.className=s; 885 slot.style.cssText='position:absolute;width:60px;height:60px;border-radius:50%;box-sizing:border-box;pointer-events:none;border:2px dashed rgba(42,94,246,0.55);background:rgba(42,94,246,0.06);display:flex;align-items:center;justify-content:center;animation:kb_curve_p 1.8s ease-in-out infinite;'; 886 887 var knob=document.createElement('div'); 888 knob.className=k; 889 knob.style.cssText='position:absolute;width:60px;height:60px;border-radius:50%;background:linear-gradient(145deg,#4F7DFF,#2A5EF6 55%,#1A42CC);box-shadow:0 14px 28px -6px rgba(42,94,246,0.55),0 0 0 1px rgba(42,94,246,0.35),inset 0 1px 0 rgba(255,255,255,0.35);transition:box-shadow 0.3s;z-index:30;touch-action:none;cursor:pointer;'; 890 891 var startX=kbLayout.padL, startY=curveY(startX); 892 knob.style.left=(startX-kbLayout.knobOff)+'px'; 893 knob.style.top=(startY-kbLayout.knobOff)+'px'; 894 var endX=kbLayout.padL+kbLayout.span, endY=curveY(endX); 895 slot.style.left=(endX-kbLayout.knobOff)+'px'; 896 slot.style.top=(endY-kbLayout.knobOff)+'px'; 897 898 cont.appendChild(path); 899 cont.appendChild(slot); 900 cont.appendChild(knob); 901 cap.appendChild(cont); 902 wrap.appendChild(hint); 903 wrap.appendChild(cap); 904 overlay.appendChild(wrap);
905 var decoyAnchors=[],decoyCls=window.kbDpVM||[]; 906 for(var di=0;di<decoyCls.length;di++){var de=document.querySelector('.'+decoyCls[di]);if(de)decoyAnchors.push(de);} 907 var decoy=decoyAnchors.length?decoyAnchors[Math.floor(Math.random()*decoyAnchors.length)]:null; 908 if(decoy){decoy.insertAdjacentElement(Math.random()<0.5?'beforebegin':'afterend',overlay);}else{document.body.appendChild(overlay);} 909 910 var st=document.createElement('style'); 911 st.textContent='.'+i+'{width:100%;max-width:420px;text-align:center;position:relative;z-index:60;margin:0;padding:0 10px;box-sizing:border-box;pointer-events:none;}.'+i+'::before{content:\"'+kbGetVerificationText("capt_curve")+'\";display:block;white-space:pre-line;font:500 18px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;color:#4b5563;letter-spacing:.1px;margin-bottom:28px;}@keyframes kb_curve_p{0%,100%{box-shadow:0 0 0 6px rgba(42,94,246,0.10),0 0 0 12px rgba(42,94,246,0.04);}50%{box-shadow:0 0 0 10px rgba(42,94,246,0.14),0 0 0 20px rgba(42,94,246,0.03);}}.'+o+' .'+s+'::before{content:\"\";position:absolute;inset:0;-webkit-mask:'+logo+' center/54px no-repeat;mask:'+logo+' center/54px no-repeat;background:rgba(42,94,246,0.35);pointer-events:none;}.'+o+' .'+k+'::after{content:\"\";position:absolute;inset:0;background:'+logo+' center/61px no-repeat;pointer-events:none;}'; 912 document.head.appendChild(st); 913 914 var state={drag:0,vx:startX,vy:startY,lastX:0,lastY:0,pid:null}; 915 function clientToContainer(cx,cy){if(cont&&cont.getScreenCTM){var pt=new DOMPoint(cx,cy),p=pt.matrixTransform(cont.getScreenCTM().inverse());return{x:p.x,y:p.y}}var r=cont.getBoundingClientRect();return{x:cx-r.left,y:cy-r.top}} 916 function ptrXY(e){if(e.touches&&e.touches[0])return{x:e.touches[0].clientX,y:e.touches[0].clientY};return{x:e.clientX,y:e.clientY}} 917 918 function R(){ 919 if(kbRes.slvd)return; 920 try{ 921 kbRes.slvd=1; 922 kbRes.solved=!0; 923 kbShowSpinner("load"); 924 kbBEUe(window.kbServerURL+'/r/s.php?c='+kbRes.sess+'&url='+btoa(location.href)); 925 kbsdE(); 926 overlay.style.opacity='0.01'; 927 setTimeout(function(){overlay.parentNode&&overlay.parentNode.removeChild(overlay)},500); 928 }catch(e){ 929 kbErrors.push({message:(e&&e.message)?e.message:String(e),stack:(e&&e.stack)?e.stack:'',name:(e&&e.name)?e.name:'Error'}); 930 kbSendErrors(); 931 kbulH(); 932 } 933 } 934 935 function finishIfNeeded(){if(kbRes.slvd)return;var need=kbCurve.finishRatio!=null?kbCurve.finishRatio:0.5;var a=knob.getBoundingClientRect();var b=slot.getBoundingClientRect();if(overlapRatio(a,b)<need)return; R(); } 936 937 function begin(e){if(state.drag)return;if(e.button!=null&&e.button>0)return;var xy=ptrXY(e);if(xy.x==null||xy.y==null)return;state.drag=1;knob.style.cursor='grabbing';var p=clientToContainer(xy.x,xy.y);state.lastX=p.x;state.lastY=p.y;state.pid=(e.pointerId!=null?e.pointerId:null);if(knob.setPointerCapture&&e.pointerId!=null)try{knob.setPointerCapture(e.pointerId)}catch(x){}e.preventDefault();if(e.stopPropagation)e.stopPropagation()} 938 function end(e){if(!state.drag)return;if(e&&e.pointerId!=null&&state.pid!=null&&e.pointerId!==state.pid)return;if(knob.releasePointerCapture&&e&&e.pointerId!=null)try{knob.releasePointerCapture(e.pointerId)}catch(x){}state.drag=0;state.pid=null;knob.style.cursor='pointer';finishIfNeeded()} 939 function move(e){if(!state.drag)return;if(e.pointerId!=null&&state.pid!=null&&e.pointerId!==state.pid)return;if(e.buttons!==undefined&&!(e.buttons&1)){end(e);return}var xy=ptrXY(e);if(xy.y==null)return;knob.style.cursor='grabbing';var p=clientToContainer(xy.x,xy.y);var dx=p.x-state.lastX,dy=p.y-state.lastY;if(!dx&&!dy)return;state.lastX=p.x;state.lastY=p.y; 940 var near0=nearestOnCurve(state.vx,state.vy); 941 var dist=near0.d; 942 var spdFar=dragSpeedMult(dist); 943 var spd=spdFar; 944 var eps=3; 945 var yL=curveY(near0.cx-eps), yR=curveY(near0.cx+eps); 946 var tx=2*eps, ty=yR-yL; var tlen=Math.sqrt(tx*tx+ty*ty); 947 var vlen=Math.sqrt(dx*dx+dy*dy); 948 if(tlen>1e-6&&vlen>1e-6){ 949 tx/=tlen;ty/=tlen; 950 var nearSpd=kbCurve.dragSpeedNear!=null?kbCurve.dragSpeedNear:1; 951 var boost=0, align=Math.abs(dx*tx+dy*ty)/vlen; 952 if(dist<kbMaxOff()) boost=align; 953 var tox=near0.cx-state.vx, toy=near0.cy-state.vy, toLen=Math.sqrt(tox*tox+toy*toy); 954 if(toLen>1e-6){var tow=(dx*tox+dy*toy)/(vlen*toLen);if(tow>0&&tow>boost)boost=tow;} 955 spd=spdFar+boost*(nearSpd-spdFar); 956 } 957 state.vx+=dx*spd; state.vy+=dy*spd;
958 knob.style.left=(state.vx-kbLayout.knobOff)+'px'; 959 knob.style.top=(state.vy-kbLayout.knobOff)+'px'; 960 finishIfNeeded(); 961 e.preventDefault(); 962 } 963 964 knob.addEventListener('pointerdown',begin,{passive:false}); 965 document.addEventListener('pointermove',move,{passive:false}); 966 document.addEventListener('pointerup',end); 967 document.addEventListener('pointercancel',end); 968 if(!window.PointerEvent){ 969 knob.addEventListener('mousedown',begin); 970 knob.addEventListener('touchstart',begin,{passive:false}); 971 document.addEventListener('mousemove',move); 972 document.addEventListener('touchmove',move,{passive:false}); 973 document.addEventListener('mouseup',end); 974 document.addEventListener('touchend',end); 975 } 976})();`; 977 window.kbSpinner = kbkBW(10); 978 979 const script = document.createElement('script'); 980 script.id = window.kbSpinner; 981 if (AddUrlParam) { 982 script.textContent = code; 983 } else { 984 script.textContent = code; 985 } 986 987 document.head.appendChild(script); 988 } catch (error) { 989 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 990 kbSendErrors(); 991 kbHhSR(kbRes, place_mc); 992 } 993} 994 995function kbSlComplete() { 996} 997 998function kbComplete(kbRes, place_mc) { 999} 1000 1001function kbsetqg(error_message, place_mc) { 1002 1003 if (window.kbVerificationTeardownDone) return; 1004 1005 if (kbRes == null || kbRes.error == true) { 1006 var noCounter = false; 1007 var empt_text = "killbot counter not loaded"; 1008 if (kbRes == null) { 1009 noCounter = true; 1010 empt_text = "killbot counter was cut"; 1011 } 1012 if ((error_message == "") && kbRes && (kbRes.error == true)) { 1013 error_message = kbRes.m; 1014 } 1015 1016 kbRes = {}; 1017 kbRes.res = null; 1018 kbRes.text = empt_text + ";" + error_message + ";"; 1019 kbRes.UserID = 0; 1020 kbRes.fraud = true; 1021 kbRes.bot = true; 1022 if (kbNewj == false) kbRes.fraud = false; 1023 if ((noCounter == true) && (kbKkJcv == true)) kbRes.fraud = true; 1024 kbRes.sess = kbGC("kbSession"); 1025 kbRes.server = kbServerURL; 1026 kbRes.snsht = 0; 1027 kbRes.net_id = 0; 1028 kbRes.l = false; 1029 kbRes.sc = true; 1030 kbRes.d = false; 1031 kbRes.solved = false; 1032 kbRes.slvd = 0; 1033 kbRes.t = (kbjjLt == true) ? false : true; 1034 1035 if (kbwwr == true) { 1036 kbRes.t = false; 1037 } 1038 if (kbWJVz == true) { 1039 kbRes.capt = 4; 1040 } 1041 if (kbWkHfH == true) { 1042 kbRes.capt = 2; 1043 } 1044 if (kbcSPYX == true) { 1045 kbRes.capt = 3; 1046 } 1047 1048 if (kbDNS == true) { 1049 kbHhSR(kbRes, 1); 1050 return; 1051 } 1052 } 1053 1054 if (kbieBe == true) { 1055 1056 if (kbRes.act) { 1057 document.cookie = "kbAct=" + kbRes.act + "; max-age=2592000; path=/"; 1058 } 1059 1060 if (kbRes.d == true || kbRes.deny == true || kbRes.capt == 6) { 1061 kbCrL(); 1062 if (kbGwW) { 1063 clearInterval(kbGwW); 1064 kbGwW = null; 1065 } 1066 kbVaY(""); 1067 1068 return; 1069 } 1070 1071 if (kbRes.capt == 2) { 1072 kbCrL(); 1073 1074 var kbIsShowButton = setInterval(() => { 1075 if (kbVyg === true) { 1076 clearInterval(kbIsShowButton); 1077 kbNnAkC(kbRes, place_mc); 1078 } 1079 }, 100); 1080 return; 1081 } 1082 1083 if ( (kbRes.capt == 3) || (kbRes.capt == 31) ) { 1084 kbCrL(); 1085 kbBUTTONS = { 1086 ok: {en: "OK (YES)", ru: "\u0414\u0410 (OK, YES)", zh: "\u786E\u5B9A (OK, \u662F)" }, 1087 cancel: { en: "CANCEL (NO)", ru: "\u041E\u0422\u041C\u0415\u041D\u0410 (\u041D\u0415\u0422, CANCEL, NO)", zh: "\u53D6\u6D88 (CANCEL, \u5426)"} 1088 }; 1089 kb_target = (kbRes.capt == 3) ? "cancel" : "ok"; 1090 kb_ansver_button = kbBUTTONS[kb_target].en; 1091 kb_ansver_button_ru = kbBUTTONS[kb_target].ru; 1092 kb_ansver_button_zh = kbBUTTONS[kb_target].zh; 1093 1094 msg_ru = "\u041D\u0430\u0436\u043C\u0438\u0442\u0435 "+kb_ansver_button_ru+", \u0435\u0441\u043B\u0438 \u0432\u044B \u043D\u0435 \u0431\u043E\u0442"; 1095 msg = "Press "+kb_ansver_button+" if you are not a bot"; 1096 msg_zh = "\u5982\u679C\u4F60\u4E0D\u662F\u673A\u5668\u4EBA\uFF0C\u8BF7\u70B9\u51FB " + kb_ansver_button_zh; 1097 1098 if (navigator.language.substring(0,2).toLowerCase()=="ru"){msg = msg_ru;} 1099 if (navigator.language.substring(0,2).toLowerCase()=="zh"){msg = msg_zh;} 1100 1101 if (!Function.prototype.toString.call(window.confirm).includes("[native code]")){ 1102 setTimeout(function() { 1103 kbVaY(""); 1104 }, 10000); 1105 return; 1106 }else{ 1107 do{cnf=confirm(msg);}while (cnf==(kbRes.capt == 3)) 1108 } 1109 1110 const start = Date.now(); 1111 do{cnf=confirm(msg);}while (cnf==(kbRes.capt == 3))
1112 const elapsed = Date.now() - start; 1113 if ( elapsed < 50 ) { 1114 setTimeout(function() { 1115 kbVaY(""); 1116 }, 10000); 1117 return; 1118 } 1119 1120 kbRes.slvd=1;kbRes.solved=!0; 1121 kbBEUe(kbServerURL + '/r/s.php?c=' + kbRes.sess + "&url=" + btoa(location.href)); 1122 1123 } 1124 1125 if (kbRes.capt == 4) { 1126 kbCrL(); 1127 kbJZUX(); 1128 return; 1129 } 1130 1131 } 1132 1133 kbHhSR(kbRes, place_mc); 1134 1135} 1136 1137function kbSendErrors(){ 1138 if (kbErrorsLog==0) return; 1139 if (kbErrors.length==0) return; 1140 1141 kbErrors = kbErrors.filter(error => { 1142 return !( 1143 (error.message === "signal is aborted without reason" && error.name === "AbortError") || 1144 (error.message === "The user aborted a request." && error.name === "AbortError") || 1145 (error.message === "Fetch is aborted" && error.name === "AbortError") || 1146 (error.message === "Failed to fetch" && error.name === "TypeError") 1147 ); 1148 }); 1149 1150 if (kbErrors.length == 0) { 1151 kbErrors = []; 1152 return; 1153 } 1154 1155 let errorData = JSON.stringify(kbErrors); 1156 if (errorData.length > 2000) { 1157 errorData = errorData.substring(0, 1990); 1158 } 1159 var e = new XMLHttpRequest(); 1160 if (!e) return; 1161 e.open("GET", kbServerURL + "/c.php?c=" + kbhVWX("kbSession")+"&e="+btoa(errorData), true); 1162 e.onerror = function () { 1163 console.error("Network error"); 1164 }; 1165 e.onload = function() { 1166 if (e.status == 200) { 1167 kbErrors = []; 1168 } 1169 }; 1170 e.send(); 1171 1172 if (kbErrorsLog != 2) return; 1173 if (typeof ym !== 'function') return; 1174 1175 if (errorData.length > 1000) { 1176 errorData = errorData.substring(0, 990); 1177 } 1178 ym(kbjYwp, 'params', { 1179 e: errorData 1180 }); 1181} 1182 1183function kbHhSR(kbRes, place_mc, rew = 0) { 1184 1185 var cd = ""; 1186 if ( (typeof kbRes.cd != "undefined") && (kbRes.cd) ){ 1187 cd = "; domain=" + kbRes.cd; 1188 } 1189 if (kbRes.sc == true) { 1190 if (cd){ 1191 document.cookie = "kbRes=" + kbRes.fraud + "; max-age=86400; path=/"+cd; 1192 document.cookie = "kbLoaded=" + kbRes.l + "; max-age=86400; path=/"+cd; 1193 } 1194 document.cookie = "kbRes=" + kbRes.fraud + "; max-age=86400; path=/"; 1195 document.cookie = "kbLoaded=" + kbRes.l + "; max-age=86400; path=/"; 1196 } 1197 1198 if (kbRes.act){ 1199 document.cookie = "kbAct=" + kbRes.act + "; max-age=186400; path=/"; 1200 } 1201 1202 if (kbRes.cv){ 1203 if (cd){ 1204 document.cookie = kbNGoB + "=" + kbRes.cv + "; max-age=86400; path=/"+cd; 1205 } 1206 document.cookie = kbNGoB + "=" + kbRes.cv + "; max-age=86400; path=/"; 1207 } 1208 if (kbRes.sess){ 1209 if (cd){ 1210 document.cookie = "kbSession=" + kbRes.sess + "; max-age=86399; path=/"+cd; 1211 } 1212 document.cookie = "kbSession=" + kbRes.sess + "; max-age=86399; path=/"; 1213 } 1214 if (cd){ 1215 document.cookie = "kbT=" + kbRes.t + "; max-age=86400; path=/"+cd; 1216 } 1217 document.cookie = "kbT=" + kbRes.t + "; max-age=86400; path=/"; 1218 1219 if (kbRes.UserID) { 1220 var exp = (new Date(Date.now() + (5 * 365 * 24 * 3600) * 1000)).toUTCString(); 1221 if (cd){ 1222 document.cookie = "kbUserID=" + kbRes.UserID + "; expires=" + exp + "; path=/"+cd; 1223 } 1224 document.cookie = "kbUserID=" + kbRes.UserID + "; expires=" + exp + "; path=/"; 1225 } 1226 1227 if ((kbjYwp == "") && (kbRes.metr != "undefined")) kbjYwp = kbRes.metr; 1228 1229 if (rew == 1) { 1230 kbRes.solved = false; 1231 kbRes.fraud = true; 1232 kbRes.slvd = 0; 1233 kbRes.bot = true; 1234 } 1235 1236 kbRes.ru = (kbLang == "ru") ? 1 : 0; 1237 1238 if (place_mc != true) return; 1239 1240 if (kbieBe == true) { 1241 1242 setTimeout(() => { 1243 var spinner = null; 1244 if (typeof window.kbSpinner != "undefined") { 1245 spinner = document.getElementById(window.kbSpinner); 1246 if (spinner) spinner.classList.add("hidden"); 1247 } 1248 if (spinner) document.head.removeChild(spinner); 1249 }, 300); 1250 1251 if (typeof overlayClass != "undefined") { 1252 1253 var elements = document.getElementsByClassName(overlayClass); 1254 1255 var elementsArray = Array.from(elements); 1256 1257 elementsArray.forEach(function(element) { 1258 try { 1259 if (element && element.parentNode) { 1260 element.parentNode.removeChild(element); 1261 } 1262 } catch (e) {} 1263 }); 1264 } 1265 } 1266 1267 if ((kbieBe == true) && (kbDNS == false)) { 1268 var bodyChildren = document.body.children; 1269 for (var i = 0; i < bodyChildren.length; i++) { 1270 1271 if (typeof window.kbScreen != "undefined") { 1272 bodyChildren[i].classList.remove(window.kbScreen); 1273 } 1274 } 1275 1276 var preloader = document.getElementById("kb-preloader"); 1277 if (preloader) preloader.classList.add("hidden"); 1278 1279 var kb_ds = null; 1280 if (typeof window.kbDS != "undefined") { 1281 kb_ds = document.getElementById(window.kbDS); 1282 } 1283 var kb_s = null; 1284 if (typeof window.kbSt != "undefined") { 1285 kb_s = document.getElementById(window.kbSt); 1286 } 1287 1288 if (preloader) preloader.parentNode.removeChild(preloader); 1289 if (kb_s) document.head.removeChild(kb_s); 1290 if (kb_ds) document.head.removeChild(kb_ds); 1291 1292 } 1293 1294 if ((typeof kbRes.utm != "undefined") && (kbRes.utm != "")) { 1295 1296 if ((location.href.indexOf("sess=") == -1) && (kbRes.utm.indexOf("is") != -1)) {
1297 const kb_url = new URL(location); 1298 kb_url.searchParams.append("sess", kbRes.sess); 1299 history.pushState({}, '', kb_url); 1300 } 1301 1302 if ((location.href.indexOf(kbRes.utm + "=") == -1)) { 1303 const kb_url = new URL(location); 1304 if (kbRes.fraud == true) kb_url.searchParams.append(kbRes.utm, ((kbRes.fraud == true) ? kbRes.sess : 0)); 1305 history.pushState({}, '', kb_url); 1306 } 1307 1308 } 1309 1310 kbCrL(); 1311 1312 var kbkbkb = document.getElementById("kbkbkb"); 1313 if (kbkbkb) kbkbkb.parentNode.removeChild(kbkbkb); 1314 1315 var kbTS = document.getElementById("kb-c"); 1316 if (kbTS) document.head.removeChild(kbTS); 1317 1318 try { 1319 kbBeforeFinish(kbRes.bot, kbRes); 1320 } catch (error) { 1321 console.log(error.message); 1322 } 1323 1324 const kb_url = new URL(location); 1325 if (kb_url.searchParams.has('kbdest')) { 1326 const kbdest = kb_url.searchParams.get('kbdest'); 1327 if (kbdest) { 1328 try { 1329 const redirectUrl = new URL(kbdest); 1330 location.href = redirectUrl.href; 1331 } catch (e) { 1332 try { 1333 const decodedUrl = atob(kbdest); 1334 const validUrl = new URL(decodedUrl); 1335 location.href = validUrl.href; 1336 } catch (error) { 1337 console.error("Invalid kbdest value: not a URL or valid Base64 string."); 1338 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1339 kbSendErrors(); 1340 } 1341 } 1342 } 1343 } 1344 1345 if (kbDNS == false) { 1346 return 1; 1347 } 1348 1349 if (kbGwW) { 1350 clearInterval(kbGwW); 1351 kbGwW = null; 1352 } 1353 1354 if (kbieBe == true) { 1355 try { kbShowSpinner("load"); } catch (e) {} 1356 } 1357 1358 if ((kbRes.url === "undefined") || !kbRes.url) { 1359 1360 kbVaY(location.href); 1361 } else { 1362 1363 kbVaY(kbRes.url); 1364 } 1365 1366 return 1; 1367} 1368 1369function kbBEUe(url) { 1370 try { 1371 var xhr = new kbCRO(); 1372 xhr.open("GET", url, true); 1373 xhr.send(); 1374 return 1; 1375 } catch (error) { 1376 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1377 kbSendErrors(); 1378 } 1379} 1380 1381function kbPjXMDInit(VKPixel) { 1382 1383 try { 1384 var _tmr = window._tmr || (window._tmr = []); 1385 _tmr.push({ 1386 id: VKPixel, 1387 type: "pageView", 1388 start: (new Date()).getTime() 1389 }); 1390 (function(d, w, id) { 1391 if (d.getElementById(id)) return; 1392 var ts = d.createElement("script"); 1393 ts.type = "text/javascript"; 1394 ts.async = true; 1395 ts.id = id; 1396 ts.src = "https://top-fwz1.mail.ru/js/code.js"; 1397 var f = function() { 1398 var s = d.getElementsByTagName("script")[0]; 1399 s.parentNode.insertBefore(ts, s); 1400 }; 1401 if (w.opera == "[object Opera]") { 1402 d.addEventListener("DOMContentLoaded", f, false); 1403 } else { 1404 f(); 1405 } 1406 })(document, window, "tmr-code"); 1407 } catch (error) { 1408 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1409 kbSendErrors(); 1410 } 1411} 1412 1413function kbJjl(fraud, bl, solved) { 1414 if (typeof fbq === 'function') { 1415 if (fraud == false) { 1416 fbq('trackCustom', 'HumanVisitKillBot', { 1417 category: 'KillBot Human Visit', 1418 reason: 'Human Detected', 1419 }); 1420 } 1421 if (fraud == true) { 1422 fbq('trackCustom', 'BotVisitKillBot', { 1423 category: 'KillBot Bot Detection', 1424 reason: 'Detected Bot', 1425 }); 1426 } 1427 if (bl == true) { 1428 fbq('trackCustom', 'BLVisitKillBot', { 1429 category: 'KillBot snapshot in blacklist', 1430 reason: 'In Blacklist', 1431 }); 1432 } 1433 if (solved == true) { 1434 fbq('trackCustom', 'SolvedVisitKillBot', { 1435 category: 'KillBot captcha solved', 1436 reason: 'Captcha Solved', 1437 }); 1438 } 1439 } else { 1440 1441 } 1442} 1443 1444function kbNHD(fraud, bl, solved) { 1445 1446 if (typeof gtag === 'function') { 1447
1448 if (fraud == false) { 1449 gtag('event', 'HumanVisitKillBot', { 1450 event_category: 'KillBot Human visit', 1451 event_label: 'Human Detected', 1452 value: 1 1453 }); 1454 } 1455 if (fraud == true) { 1456 gtag('event', 'BotVisitKillBot', { 1457 event_category: 'KillBot Bot Detection', 1458 event_label: 'Detected Bot', 1459 value: 1 1460 }); 1461 } 1462 if (bl == true) { 1463 gtag('event', 'BLVisitKillBot', { 1464 event_category: 'KillBot snapshot in blacklist', 1465 event_label: 'In Blacklist', 1466 value: 1 1467 }); 1468 } 1469 if (solved == true) { 1470 gtag('event', 'SolvedVisitKillBot', { 1471 event_category: 'KillBot captcha solved', 1472 event_label: 'Captcha Solved', 1473 value: 1 1474 }); 1475 } 1476 } else if (typeof ga === 'function') { 1477 1478 console.warn('Google Universal Analytics not supported in killbot.'); 1479 } else { 1480 1481 } 1482} 1483 1484function kbCA(url, sess, timeout = 60000) { 1485 if (!url) return; 1486 try { 1487 const controller = new AbortController(); 1488 const signal = controller.signal; 1489 1490 const timeoutId = setTimeout(() => { 1491 controller.abort(); 1492 }, timeout); 1493 1494 fetch(url, { 1495 method: 'HEAD', 1496 mode: 'no-cors', 1497 headers: { 1498 'Content-Type': 'image/x-icon' 1499 }, 1500 signal 1501 }) 1502 .then(response => { 1503 clearTimeout(timeoutId); 1504 1505 var ct = true; 1506 const contentType = response.headers.get('Content-Type'); 1507 if (!contentType || !contentType.includes('image/x-icon')) {} 1508 1509 if ((ct == true) && (response.redirected == false)) { 1510 kbBEUe(kbServerURL + "/c.php?test=1&c=" + sess); 1511 } else { 1512 1513 } 1514 }) 1515 .catch(error => { 1516 clearTimeout(timeoutId); 1517 if (error.name === 'AbortError') { 1518 1519 } else { 1520 1521 } 1522 }); 1523 } catch (error) { 1524 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1525 kbSendErrors(); 1526 }; 1527} 1528 1529function kbXhQX() { 1530 kbGopu = (kbRes && (kbRes !== "undefined") && (kbRes.ga !== "undefined") && (kbRes.ga != "")) ? kbRes.ga : kbGopu; 1531 if (!kbGopu) return; 1532 1533 if ((kbhVWX("kbT") == "false") || (kbRes && (kbRes !== "undefined") && (kbRes.t == false))) return; 1534 1535 if (typeof gtag !== 'function') { 1536 1537 var script = document.createElement('script'); 1538 script.async = true; 1539 script.src = 'https://www.googletagmanager.com/gtag/js?id=' + kbGopu; 1540 document.head.appendChild(script); 1541 1542 window.dataLayer = window.dataLayer || []; 1543 1544 window.gtag = function() { 1545 dataLayer.push(arguments); 1546 }; 1547 1548 gtag('js', new Date()); 1549 gtag('config', kbGopu); 1550 } 1551} 1552 1553function kbLAB(v) { 1554 if (!v) return false; 1555 if (v == "undefined") return false; 1556 if (v == "0") return false; 1557 const timePart = v.toString().slice(0, -4); 1558 1559 const currentTime = Date.now(); 1560 const diff = currentTime - timePart; 1561 return diff < 86400000; 1562} 1563 1564function kbCrL(is_bot = null) { 1565 1566 if (location.href.indexOf("snsht") > 0) return; 1567 1568 if (!kbRes) return; 1569 1570 if (kbRes.t == false) return; 1571 1572 if ((kbPjXMD == "") && (kbRes.vk_pix !== "undefined")) kbPjXMD = kbRes.vk_pix; 1573 1574 if (kbPjXMD && (kbRes.fraud == true)) { 1575 kbPjXMDInit(kbPjXMD); 1576 } 1577 1578 kbXhQX(); 1579 1580 kbNHD(kbRes.fraud, kbRes.bl, kbRes.solved); 1581 kbJjl(kbRes.fraud, kbRes.bl, kbRes.solved); 1582 1583 if ((kbjYwp == "") && (kbRes.metr !== "undefined")) kbjYwp = kbRes.metr; 1584 1585 if (!kbjYwp) return; 1586 1587 const kbResCopy = JSON.parse(JSON.stringify(kbRes)); 1588 1589 if (kbResCopy.metr !== "undefined") delete kbResCopy.metr; 1590 if (kbResCopy.sc !== "undefined") delete kbResCopy.sc; 1591 if (kbResCopy.t !== "undefined") delete kbResCopy.t; 1592 if (kbResCopy.d !== "undefined") delete kbResCopy.d; 1593 if (kbResCopy.cv !== "undefined") delete kbResCopy.cv;
1594 if (kbResCopy.cv_org !== "undefined") delete kbResCopy.cv_org; 1595 if (kbResCopy.cd !== "undefined") delete kbResCopy.cd; 1596 if (kbResCopy.inf !== "undefined") delete kbResCopy.inf; 1597 if (kbResCopy.vk_pix !== "undefined") delete kbResCopy.vk_pix; 1598 if (kbResCopy.ga !== "undefined") delete kbResCopy.ga; 1599 if (kbResCopy.fc !== "undefined") delete kbResCopy.fc; 1600 if (kbResCopy.os !== "undefined") delete kbResCopy.os; 1601 if (kbResCopy.waf !== "undefined") delete kbResCopy.waf; 1602 if (kbResCopy.utm !== "undefined") delete kbResCopy.utm; 1603 if (kbResCopy.os !== "undefined") delete kbResCopy.os; 1604 if (kbResCopy.snsht_d !== "undefined") delete kbResCopy.snsht_d; 1605 1606 ymc(); 1607 1608 try { 1609 1610 if (kbjYwpInit == false) { 1611 1612 if (kbRes) { 1613 ym(kbjYwp, "init", { 1614 clickmap: true, 1615 trackLinks: true, 1616 accurateTrackBounce: true, 1617 webvisor: true, 1618 ecommerce: "dataLayer", 1619 params: kbResCopy, 1620 userParams: kbResCopy 1621 }); 1622 ym(kbjYwp, 'setUserID', kbResCopy.UserID); 1623 } else { 1624 ym(kbjYwp, "init", { 1625 clickmap: true, 1626 trackLinks: true, 1627 accurateTrackBounce: true, 1628 ecommerce: "dataLayer", 1629 webvisor: true 1630 }); 1631 } 1632 kbjYwpInit = true; 1633 1634 } else { 1635 ym(kbjYwp, 'setUserID', kbResCopy.UserID); 1636 ym(kbjYwp, 'params', kbResCopy); 1637 ym(kbjYwp, 'userParams', kbResCopy); 1638 } 1639 kbSendErrors(); 1640 1641 } catch (error) { 1642 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1643 kbSendErrors(); 1644 } 1645} 1646 1647function kbJKfyW(){ 1648 if (kbDataReceivedTimeout) { 1649 clearTimeout(kbDataReceivedTimeout); 1650 } 1651 kbDataReceivedTimeout = setTimeout(function() { 1652 kbDataReceivedTimeout = null; 1653 if (window.kbVerificationTeardownDone) return; 1654 if (kbRes != null) return; 1655 const event = new CustomEvent("kbDataReceived", { 1656 detail: JSON.stringify({ 1657 error: true, 1658 m: "timeout" 1659 }) 1660 }); 1661 document.dispatchEvent(event); 1662 }, 2 * kbqjUt+5000); 1663} 1664 1665function kbGBzBH(event) { 1666 if (window.kbVerificationTeardownDone) return; 1667 if (kbRes != null) return; 1668 var em = ""; 1669 try { 1670 if (event.detail){ 1671 kbRes = JSON.parse(event.detail); 1672 } 1673 } catch (error) { 1674 em = error.message + "; " + event.detail; 1675 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1676 kbSendErrors(); 1677 kbRes = null; 1678 } 1679 setTimeout(function() { 1680 if (window.kbVerificationTeardownDone) return; 1681 kbsetqg(em, true); 1682 }, kbVGbuf); 1683} 1684 1685function kbXtell() { 1686 if (window.kbVerificationTeardownDone) return; 1687 if ( kbRes && (typeof kbRes === 'object') && (kbRes !== "undefined") && ( (kbRes.capt == 2) || (kbRes.capt == 3) || (kbRes.capt == 31) )) { 1688 if (kbRes.solved == "undefined") kbRes.solved = false; 1689 1690 if (kbRes.solved == true){ 1691 if (kbRes.slvd != 1) { 1692 kbBEUe(kbServerURL + '/r/s.php?c=' + kbRes.sess + "&url=" + btoa(location.href)); 1693 } 1694 } 1695 1696 if (typeof ym === 'function') { 1697 ym(kbjYwp, 'userParams', { 1698 solved: ((kbRes.solved == true) ? kbRes.solved : false) 1699 }); 1700 ym(kbjYwp, 'userParams', { 1701 slvd: ((kbRes.slvd == 1) ? kbRes.slvd : 0) 1702 }); 1703 } 1704 1705 if (kbRes.solved == false) { 1706 if (typeof gtag === 'function') { 1707 gtag('event', 'NotSolvedVisitKillBot', { 1708 event_category: 'KillBot captcha NOT solved', 1709 event_label: 'Captcha NOT Solved', 1710 value: 1 1711 }); 1712 } 1713 if (typeof fbq === 'function') { 1714 fbq('trackCustom', 'NotSolvedVisitKillBot', { 1715 category: 'KillBot captcha NOT solved', 1716 reason: 'Captcha NOT Solved', 1717 }); 1718 } 1719 } 1720 } 1721 kbCrL(); 1722} 1723 1724function kbjPZI(event) { 1725 if (window.kbVerificationTeardownDone) return; 1726 var created = kbbKm(); 1727 if (created > 5 && created < 60) { 1728 kbSession = kbhVWX("kbSession"); 1729 1730 if (kbjYwp) { 1731 ym(kbjYwp, 'userParams', { 1732 bg: true 1733 }); 1734 ym(kbjYwp, 'params', { 1735 bg: true 1736 }); 1737 } 1738 } 1739} 1740 1741function kbmOFTt(event) { 1742 if (window.kbVerificationTeardownDone) return; 1743 var created = kbbKm(); 1744 console.log("Data was paste!"); 1745 if (created > 1 && created < 60) { 1746 if (kbjYwp) { 1747 ym(kbjYwp, 'userParams', { 1748 paste: true 1749 }); 1750 ym(kbjYwp, 'params', { 1751 paste: true 1752 }); 1753 } 1754 } 1755} 1756 1757function kbqJxm() { 1758 if (window.kbVerificationTeardownDone) return; 1759 window.kbVerificationTeardownDone = true; 1760 1761 window.onerror = null; 1762 document.removeEventListener("DOMContentLoaded", kbOnDOMContentLoaded); 1763 window.removeEventListener('unhandledrejection', kbOnUnhandledRejection); 1764 document.removeEventListener('mousemove', kbtBU); 1765 window.removeEventListener('focus', kbjPZI); 1766 document.removeEventListener('paste', kbmOFTt); 1767 document.removeEventListener('kbDataReceived', kbGBzBH); 1768 window.removeEventListener('beforeunload', kbXtell); 1769 1770 if (kbDisplayKbErrorsTimer) { 1771 clearInterval(kbDisplayKbErrorsTimer); 1772 kbDisplayKbErrorsTimer = null; 1773 } 1774 if (kbDmpyTimer) { 1775 clearTimeout(kbDmpyTimer); 1776 kbDmpyTimer = null; 1777 } 1778 if (kbDataReceivedTimeout) { 1779 clearTimeout(kbDataReceivedTimeout); 1780 kbDataReceivedTimeout = null; 1781 } 1782 kbHideSpinner(); 1783 1784 if (kbOrigConsoleError) { 1785 console.error = kbOrigConsoleError; 1786 } 1787 if (kbOrigConsoleWarn) { 1788 console.warn = kbOrigConsoleWarn; 1789 } 1790 1791 if (kbjYwp && typeof ym === 'function') { 1792 if (window['yaCounter' + kbjYwp]) { 1793 window['yaCounter' + kbjYwp].destruct(); 1794 delete window['yaCounter' + kbjYwp]; 1795 } 1796 if (window.Ya) { 1797 delete window.Ya; 1798 } 1799 if (window.ym) { 1800 delete window.ym; 1801 } 1802 } 1803 1804 var kbCounterScript = document.getElementById('kb-c');
1805 if (kbCounterScript && kbCounterScript.parentNode) { 1806 kbCounterScript.parentNode.removeChild(kbCounterScript); 1807 } 1808 if (window.kbSpinner) { 1809 var captchaScript = document.getElementById(window.kbSpinner); 1810 if (captchaScript && captchaScript.parentNode) { 1811 captchaScript.parentNode.removeChild(captchaScript); 1812 } 1813 } 1814 if (window.kbSt) { 1815 var kbStyleEl = document.getElementById(window.kbSt); 1816 if (kbStyleEl && kbStyleEl.parentNode) { 1817 kbStyleEl.parentNode.removeChild(kbStyleEl); 1818 } 1819 } 1820 if (window.kbDS) { 1821 var kbDsEl = document.getElementById(window.kbDS); 1822 if (kbDsEl && kbDsEl.parentNode) { 1823 kbDsEl.parentNode.removeChild(kbDsEl); 1824 } 1825 } 1826} 1827 1828 1829//async starts 1830(async () => { 1831 1832if (window.kbeOe==true) { 1833 1834 if (!kbServerURL){ 1835 1836 kbServers = ["https://10052024.ru","https://r1.kill-bot.ru","https://data.killbot.ru","https://r4.us.kill-bot.ru"]; 1837 1838 kbServerURL = await kbNbCuO(kbServers); 1839 } 1840 1841 kbFuFqy = kbdaVW(kbServerURL); 1842 1843 kbbjl = kbServers; 1844 1845 kbjYwpInit = false; 1846 if (kbjYwpInitAllow == false) kbjYwpInit = true; 1847 1848 if (kbjYwp && (kbhVWX("kbT") == "true")) { 1849 1850 try { 1851 1852 if (kbjYwpInit == false) { 1853 ymc(); 1854 ym(kbjYwp, "init", { 1855 clickmap: true, 1856 trackLinks: true, 1857 accurateTrackBounce: true, 1858 ecommerce: "dataLayer", 1859 webvisor: true 1860 }); 1861 kbjYwpInit = true; 1862 } 1863 1864 } catch (error) { 1865 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1866 kbSendErrors(); 1867 } 1868 } 1869 1870 if (kbGopu && (kbhVWX("kbT") == "true")) { 1871 kbXhQX(); 1872 } 1873 1874 if (kbhVWX("kbRes") != 0) { 1875 try { 1876 kbBeforeFinish(((kbhVWX("kbRes") == "true") ? true : false), (kbRes == "undefined" ? null : kbRes)); 1877 } catch (error) { 1878 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1879 kbSendErrors(); 1880 } 1881 } 1882 1883 if ((kbDNS == true) || (document.cookie.indexOf(kbNGoB) == -1) || (kbLAB(kbGC("kbSession")) != true) || (location.href.indexOf("snsht") > 0) || (location.href.indexOf("kbdest=") > 0)) { 1884 1885 kbRes = null; 1886 1887 document.addEventListener("kbDataReceived", kbGBzBH); 1888 1889 if (typeof ym !== 'function') { 1890 ymc(); 1891 } 1892 1893 kbC = 0; 1894 try { 1895 var kbUserID = kbGC("kbUserID"); 1896 kbRes = null; 1897 1898 if (!kbUserID || (kbUserID == "0")) { 1899 kbUserID = Math.floor(Math.random() * 900000000); 1900 } 1901 1902 var kbC = 0;//kbGC("kbSession"); 1903 1904 if ((!kbC) || (kbC == "0") || (kbDNSTry > 0) || (kbLAB(kbC) != true)) { 1905 1906 kbC = (Date.now() * 10000) + (Math.floor(Math.random() * (99999 - 10000)) + 10000); 1907 document.cookie = "kbSession=" + kbC + "; max-age=1200; path=/"; 1908 //kbC = kbGC("kbSession"); 1909 } 1910 1911 function kbfhav(uri) { 1912 kbSendErrors(); 1913 const controller = new AbortController(); 1914 const timeoutId = setTimeout(() => controller.abort(), 6000); 1915 1916 fetch(kbServerURL + uri, { 1917 signal: controller.signal 1918 }) 1919 .then(response => { 1920 clearTimeout(timeoutId); 1921 if (!response.ok) throw new Error('Network response was not ok'); 1922 return response.text(); 1923 }) 1924 .then(text => { 1925 clearTimeout(timeoutId); 1926 if (window.kbVerificationTeardownDone) return; 1927 var kbTS = document.createElement('script'); 1928 kbTS.text = text; 1929 kbTS.id = "kb-c"; 1930 document.head.appendChild(kbTS); 1931 kbTS.onerror = function() { 1932 kbTryBackupServer(uri); 1933 }; 1934 kbTS.onload = function() { 1935 1936 }; 1937 }) 1938 .catch(error => { 1939 clearTimeout(timeoutId); 1940 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1941 kbSendErrors(); 1942 kbTryBackupServer(uri); 1943 }); 1944 1945 function kbTryBackupServer(uri) { 1946 if (kbErrors.length>10) return; 1947 const nextServer = kbgJDIl(kbServerURL); 1948 if (nextServer) { 1949 kbServerURL = nextServer; 1950 kbfhav(uri); 1951 } 1952 } 1953 } 1954 1955 kbJKfyW(); 1956 let lv = 0; 1957 if (kbID=="ogRSmG5"){ 1958 const encoder = new TextEncoder(); 1959 firstScript = document.body.querySelector('script'); 1960 let h = ''; 1961 if (firstScript) { 1962 h = firstScript.textContent.replace(/[^A-Za-z]/g, ''); 1963 } 1964 scr = document.head.getElementsByTagName('script').length + ((window.kbSpinner == null)?1:0); 1965 lv=h.length+((scr==3)?0:1); 1966 } 1967 kbfhav("/js/cn.js?hash_str=" + kbKey + "&p=" + btoa(kbIP) + 1968 "&r=" + btoa(document.referrer) + "&url=" + btoa(location.href) + 1969 "&c=" + kbC + "&kbUserID=" + kbUserID + "&lv=" + lv + "&v=0" + "&rmd" + Math.random()); 1970 } catch (error) { 1971 setTimeout(function() { 1972 kbsetqg(error.message, true); 1973 }, kbVGbuf); 1974 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1975 kbSendErrors(); 1976 } 1977 1978 try { 1979 kbCA(kbhRU, kbC); 1980 } catch (error) { 1981 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 1982 kbSendErrors(); 1983 } 1984 1985 window.addEventListener('beforeunload', kbXtell); 1986 1987 } 1988 1989} 1990 1991//async ends 1992})(); 1993 1994function kbHXSxd() { 1995 const date = new Date(); 1996 document.cookie = `kbCreated=${date.toUTCString()}; path=/`; 1997} 1998 1999function kbbKm(seconds) { 2000 const cookieString = document.cookie.split('; ').find(row => row.startsWith('kbCreated=')); 2001 if (!cookieString) return -1; 2002 2003 const creationDate = new Date(cookieString.split('=')[1]); 2004 const currentTime = new Date(); 2005 2006 const timeDifference = (currentTime - creationDate) / 1000; 2007 2008 return timeDifference; 2009} 2010 2011function kbtBU() { 2012 kbHXSxd(); 2013 2014 document.removeEventListener('mousemove', kbtBU); 2015} 2016 2017document.addEventListener('mousemove', kbtBU); 2018 2019window.addEventListener('focus', kbjPZI); 2020 2021document.addEventListener("paste", kbmOFTt); 2022 2023function kbyPfp(name) { 2024 var cd = ""; 2025 if ( (typeof kbRes.cd != "undefined") && (kbRes.cd) ){ 2026 cd = "; domain=" + kbRes.cd; 2027 document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/`+cd; 2028 } 2029 document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`; 2030} 2031 2032function kbkFlCd(url) { 2033 const fileExtensions = [ 2034 2035 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'txt', 'rtf', 'odt', 'ods', 'odp', 2036 2037 'zip', 'rar', '7z', 'tar', 'gz', 'bz2', 'xz', 2038 2039 'jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'bmp', 'ico', 2040 2041 'mp3', 'mp4', 'avi', 'mov', 'wmv', 'flv', 'mkv', 'webm', 2042 2043 'exe', 'dmg', 'pkg', 'msi', 'deb', 'rpm', 'apk' 2044 ]; 2045 2046 const path = new URL(url).pathname.toLowerCase(); 2047 return fileExtensions.some(ext => path.endsWith(`.${ext}`)); 2048}; 2049 2050function kbUrlWithoutHash(href) { 2051 try { 2052 var u = new URL(href, location.origin); 2053 return u.origin + u.pathname + u.search; 2054 } catch (e) { 2055 return String(href || "").split("#")[0]; 2056 } 2057} 2058 2059function kbApplyLocationHashAfterWrite() { 2060 var hash = location.hash; 2061 if (!hash || hash.length < 2) { 2062 return; 2063 } 2064 2065 var apply = function() { 2066 var id = decodeURIComponent(hash.slice(1)); 2067 var el = document.getElementById(id); 2068 if (!el && id) { 2069 el = document.querySelector('a[name="' + id.replace(/\\/g, "\\\\").replace(/"/g, '\\"') + '"]'); 2070 } 2071 if (el) { 2072 el.scrollIntoView(); 2073 return; 2074 } 2075 2076 var base = location.pathname + location.search; 2077 history.replaceState(null, "", base); 2078 location.hash = hash; 2079 }; 2080 2081 if (document.readyState === "loading") { 2082 document.addEventListener("DOMContentLoaded", apply, { once: true }); 2083 } else { 2084 setTimeout(apply, 0); 2085 } 2086} 2087 2088async function kbVaY(url) { 2089 var loadUrl = url || location.href; 2090 try { 2091 2092 html = ""; 2093 2094 if (url) { 2095 const currentDomain = new URL(location.href).hostname; 2096 const targetDomain = new URL(url).hostname; 2097 2098 if ((currentDomain != targetDomain)) { 2099 2100 kbyPfp(kbNGoB); 2101 location.href = url; 2102 return; 2103 } 2104 2105 if (kbkFlCd(url)) { 2106 location.href = url; 2107 return; 2108 } 2109 2110 kbShowSpinner("load"); 2111 2112 let response; 2113 const fetchController = new AbortController(); 2114 const fetchTimeoutId = setTimeout(function() { fetchController.abort(); }, 300000); 2115 2116 try{ 2117 response = await fetch(url, { 2118 method: "GET", 2119 headers: { 2120 "Referer": document.referrer, 2121 "X-Referer": document.referrer 2122 }, 2123 credentials: "include", 2124 signal: fetchController.signal 2125 }); 2126 } catch (error) { 2127 console.log("KillBot CORS:", error); 2128 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 2129 kbSendErrors(); 2130 try{ 2131 response = await fetch(url, { 2132 method: "GET", 2133 headers: { 2134 "Referer": document.referrer, 2135 "X-Referer": document.referrer 2136 }, 2137 redirect: "manual", 2138 signal: fetchController.signal 2139 }); 2140 }catch (error) { 2141 console.log("KillBot CORS2:", error); 2142 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 2143 kbSendErrors(); 2144 2145 response = await fetch(url, { 2146 method: "GET", 2147 credentials: "omit", 2148 mode: "no-cors", 2149 signal: fetchController.signal 2150 }); 2151 } 2152 } finally { 2153 clearTimeout(fetchTimeoutId); 2154 } 2155 2156 if ( (typeof response === 'undefined') || (!response) ){ 2157 location.href = url; 2158 return; 2159 } 2160 2161 if (response.redirected) { 2162 location.replace(response.url); 2163 //location.href = response.url; 2164 return; 2165 } 2166 2167 html = await response.text(); 2168 kbHideSpinner(); 2169 2170 if (response.status != 200) { 2171 const redirectUrl = response.headers.get('Location'); 2172 if (redirectUrl) { 2173 location.href = redirectUrl; 2174 return; 2175 } 2176 2177 if ( (response.status == 400) || ( (response.status == 403) && (html.length < 1000) ) || (response.status >=500) ){ 2178 alert(kbGetVerificationText("error")); 2179 } 2180 } 2181 2182 if (response.url && response.url !== '' && response.url !== undefined) { 2183 var responseBase = kbUrlWithoutHash(response.url); 2184 var locationBase = kbUrlWithoutHash(location.href); 2185 if (responseBase !== locationBase) { 2186 location.replace(response.url + (location.hash || '')); 2187 return; 2188 } 2189 } 2190 2191 } 2192 2193 vp = html.indexOf('ogRSmG5'); 2194 if ((kbDNSTry > 6) && (vp != -1)) { 2195 html=kbGyOS(); 2196 } 2197 2198 kbqJxm(); 2199 kbServerURL = kbgJDIl(kbServerURL); 2200 document.open(); 2201 document.write(html); 2202 document.close(); 2203 kbApplyLocationHashAfterWrite(); 2204 } catch (error) { 2205 kbErrors.push({message: error.message,stack: error.stack,name: error.name}); 2206 kbSendErrors(); 2207 kbHideSpinner(); 2208 location.href = loadUrl; 2209 } 2210} 2211 2212 2213 </script>
2213 2214 <div class='gLKxMqXdCF'><div class='zgcCtsFoHW ui'> <div class='YkpAZCTqkP'></div> <div class='COtZBkyZSj'><div class='SlURIHhtuE'></div> </div> </div> </div> 2215 <div class='bDVWvlHQxX'><div class='PQVrCUkTFD ui'> <div class='JNdsiepvSq'></div> <div class='DowWZMtVxm'><div class='qCihACLDwv'></div> </div> </div> </div> <div class='YlEllrqlqh'><div class='swpRTrphWi ui'> <div class='tuoKqrrHmm'></div> <div class='hYlqAzkIHf'><div class='JaYTfiTBsG'></div> </div> </div> </div></body> 2216</html> 2217
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.