diff --git a/app.manifest b/app.manifest index 0a8d5c6a..155fb280 100644 --- a/app.manifest +++ b/app.manifest @@ -1,5 +1,5 @@ CACHE MANIFEST -# Time: Thu Jul 09 2015 14:04:40 GMT+0300 (MSK) +# Time: Thu Jul 09 2015 20:07:30 GMT+0300 (MSK) CACHE: diff --git a/css/app.css b/css/app.css index d5a1886d..87be4bde 100644 --- a/css/app.css +++ b/css/app.css @@ -1657,7 +1657,8 @@ img.chat_modal_participant_photo{width:40px;height:40px} .stickerset_modal_window .modal-dialog{max-width:474px} .stickerset_modal_stickers_list{padding:25px} .stickerset_modal_sticker_wrap{list-style:none;margin:0 10px 10px 0;padding:0;position:relative;display:block;width:96px;height:96px;float:left} -.stickerset_modal_sticker,.stickerset_modal_sticker img{width:96px;height:96px} +.stickerset_modal_sticker{width:96px;height:96px} +.stickerset_modal_sticker img{max-width:96px;max-height:96px} .stickerset_modal_sticker_alt{position:absolute;bottom:0;right:0} .stickerset_actions{padding:10px 20px;height:50px;text-align:center} .stickerset_modal_loading{text-align:center;color:#999;font-size:16px;line-height:18px;padding:1px 50px;margin:0} diff --git a/js/app.js b/js/app.js index 90966734..94f5fd60 100644 --- a/js/app.js +++ b/js/app.js @@ -12,13 +12,13 @@ return e=p(e)?e:e.split(/\s+/),d(e,function(e,i){e&&e.length>0&&(n+=(i>0?" ":"") var BI_FP=52;BigInteger.prototype.FV=Math.pow(2,BI_FP),BigInteger.prototype.F1=BI_FP-dbits,BigInteger.prototype.F2=2*dbits-BI_FP;var BI_RM="0123456789abcdefghijklmnopqrstuvwxyz",BI_RC=new Array,rr,vv;for(rr="0".charCodeAt(0),vv=0;9>=vv;++vv)BI_RC[rr++]=vv;for(rr="a".charCodeAt(0),vv=10;36>vv;++vv)BI_RC[rr++]=vv;for(rr="A".charCodeAt(0),vv=10;36>vv;++vv)BI_RC[rr++]=vv;Classic.prototype.convert=cConvert,Classic.prototype.revert=cRevert,Classic.prototype.reduce=cReduce,Classic.prototype.mulTo=cMulTo,Classic.prototype.sqrTo=cSqrTo,Montgomery.prototype.convert=montConvert,Montgomery.prototype.revert=montRevert,Montgomery.prototype.reduce=montReduce,Montgomery.prototype.mulTo=montMulTo,Montgomery.prototype.sqrTo=montSqrTo,BigInteger.prototype.copyTo=bnpCopyTo,BigInteger.prototype.fromInt=bnpFromInt,BigInteger.prototype.fromString=bnpFromString,BigInteger.prototype.clamp=bnpClamp,BigInteger.prototype.dlShiftTo=bnpDLShiftTo,BigInteger.prototype.drShiftTo=bnpDRShiftTo,BigInteger.prototype.lShiftTo=bnpLShiftTo,BigInteger.prototype.rShiftTo=bnpRShiftTo,BigInteger.prototype.subTo=bnpSubTo,BigInteger.prototype.multiplyTo=bnpMultiplyTo,BigInteger.prototype.squareTo=bnpSquareTo,BigInteger.prototype.divRemTo=bnpDivRemTo,BigInteger.prototype.invDigit=bnpInvDigit,BigInteger.prototype.isEven=bnpIsEven,BigInteger.prototype.exp=bnpExp,BigInteger.prototype.toString=bnToString,BigInteger.prototype.negate=bnNegate,BigInteger.prototype.abs=bnAbs,BigInteger.prototype.compareTo=bnCompareTo,BigInteger.prototype.bitLength=bnBitLength,BigInteger.prototype.mod=bnMod,BigInteger.prototype.modPowInt=bnModPowInt,BigInteger.ZERO=nbv(0),BigInteger.ONE=nbv(1),NullExp.prototype.convert=nNop,NullExp.prototype.revert=nNop,NullExp.prototype.mulTo=nMulTo,NullExp.prototype.sqrTo=nSqrTo,Barrett.prototype.convert=barrettConvert,Barrett.prototype.revert=barrettRevert,Barrett.prototype.reduce=barrettReduce,Barrett.prototype.mulTo=barrettMulTo,Barrett.prototype.sqrTo=barrettSqrTo;var lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],lplim=(1<<26)/lowprimes[lowprimes.length-1];BigInteger.prototype.chunkSize=bnpChunkSize,BigInteger.prototype.toRadix=bnpToRadix,BigInteger.prototype.fromRadix=bnpFromRadix,BigInteger.prototype.fromNumber=bnpFromNumber,BigInteger.prototype.bitwiseTo=bnpBitwiseTo,BigInteger.prototype.changeBit=bnpChangeBit,BigInteger.prototype.addTo=bnpAddTo,BigInteger.prototype.dMultiply=bnpDMultiply,BigInteger.prototype.dAddOffset=bnpDAddOffset,BigInteger.prototype.multiplyLowerTo=bnpMultiplyLowerTo,BigInteger.prototype.multiplyUpperTo=bnpMultiplyUpperTo,BigInteger.prototype.modInt=bnpModInt,BigInteger.prototype.millerRabin=bnpMillerRabin,BigInteger.prototype.clone=bnClone,BigInteger.prototype.intValue=bnIntValue,BigInteger.prototype.byteValue=bnByteValue,BigInteger.prototype.shortValue=bnShortValue,BigInteger.prototype.signum=bnSigNum,BigInteger.prototype.toByteArray=bnToByteArray,BigInteger.prototype.equals=bnEquals,BigInteger.prototype.min=bnMin,BigInteger.prototype.max=bnMax,BigInteger.prototype.and=bnAnd,BigInteger.prototype.or=bnOr,BigInteger.prototype.xor=bnXor,BigInteger.prototype.andNot=bnAndNot,BigInteger.prototype.not=bnNot,BigInteger.prototype.shiftLeft=bnShiftLeft,BigInteger.prototype.shiftRight=bnShiftRight,BigInteger.prototype.getLowestSetBit=bnGetLowestSetBit,BigInteger.prototype.bitCount=bnBitCount,BigInteger.prototype.testBit=bnTestBit,BigInteger.prototype.setBit=bnSetBit,BigInteger.prototype.clearBit=bnClearBit,BigInteger.prototype.flipBit=bnFlipBit,BigInteger.prototype.add=bnAdd,BigInteger.prototype.subtract=bnSubtract,BigInteger.prototype.multiply=bnMultiply,BigInteger.prototype.divide=bnDivide,BigInteger.prototype.remainder=bnRemainder,BigInteger.prototype.divideAndRemainder=bnDivideAndRemainder,BigInteger.prototype.modPow=bnModPow,BigInteger.prototype.modInverse=bnModInverse,BigInteger.prototype.pow=bnPow,BigInteger.prototype.gcd=bnGCD,BigInteger.prototype.isProbablePrime=bnIsProbablePrime,BigInteger.prototype.square=bnSquare;var rng_state,rng_pool,rng_pptr;if(null==rng_pool){rng_pool=new Array,rng_pptr=0;var global="undefined"!=typeof window?window:this,t;if(global&&global.crypto&&global.crypto.getRandomValues){var ua=new Uint8Array(32);for(global.crypto.getRandomValues(ua),t=0;32>t;++t)rng_pool[rng_pptr++]=ua[t]}if("Netscape"==navigator.appName&&navigator.appVersion<"5"&&global&&global.crypto){var z=global.crypto.random(32);for(t=0;trng_pptr;)t=Math.floor(65536*Math.random()),rng_pool[rng_pptr++]=t>>>8,rng_pool[rng_pptr++]=255&t;rng_pptr=0,rng_seed_time()}SecureRandom.prototype.nextBytes=rng_get_bytes,Arcfour.prototype.init=ARC4init,Arcfour.prototype.next=ARC4next;var rng_psize=256,CryptoJS=CryptoJS||function(e,t){var n={},i=n.lib={},a=i.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var n=new e;return t&&n.mixIn(t),n.hasOwnProperty("init")||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),o=i.WordArray=a.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||r).stringify(this)},concat:function(e){var t=this.words,n=e.words,i=this.sigBytes,a=e.sigBytes;if(this.clamp(),i%4)for(var o=0;a>o;o++){var s=n[o>>>2]>>>24-o%4*8&255;t[i+o>>>2]|=s<<24-(i+o)%4*8}else if(n.length>65535)for(var o=0;a>o;o+=4)t[i+o>>>2]=n[o>>>2];else for(var o=0;o>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=a.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n=[],i=0;t>i;i+=4)n.push(4294967296*e.random()|0);return new o.init(n,t)}}),s=n.enc={},r=s.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],a=0;n>a;a++){var o=t[a>>>2]>>>24-a%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;t>i;i+=2)n[i>>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new o.init(n,t/2)}},l=s.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],a=0;n>a;a++){var o=t[a>>>2]>>>24-a%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;t>i;i++)n[i>>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new o.init(n,t)}},c=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},d=i.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,i=n.words,a=n.sigBytes,s=this.blockSize,r=4*s,l=a/r;l=t?e.ceil(l):e.max((0|l)-this._minBufferSize,0);var c=l*s,d=e.min(4*c,a);if(c){for(var u=0;c>u;u+=s)this._doProcessBlock(i,u);var p=i.splice(0,c);n.sigBytes-=d}return new o.init(p,d)},clone:function(){var e=a.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),u=(i.Hasher=d.extend({cfg:a.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){d.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new u.HMAC.init(e,n).finalize(t)}}}),n.algo={});return n}(Math);CryptoJS.lib.Cipher||function(e){var t=CryptoJS,n=t.lib,i=n.Base,a=n.WordArray,o=n.BufferedBlockAlgorithm,s=t.enc,r=(s.Utf8,s.Base64),l=t.algo,c=l.EvpKDF,d=n.Cipher=o.extend({cfg:i.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?k:y}return function(t){return{encrypt:function(n,i,a){return e(i).encrypt(t,n,i,a)},decrypt:function(n,i,a){return e(i).decrypt(t,n,i,a)}}}}()}),u=(n.StreamCipher=d.extend({_doFinalize:function(){var e=this._process(!0);return e},blockSize:1}),t.mode={}),p=n.BlockCipherMode=i.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),m=u.CBC=function(){function t(t,n,i){var a=this._iv;if(a){var o=a;this._iv=e}else var o=this._prevBlock;for(var s=0;i>s;s++)t[n+s]^=o[s]}var n=p.extend();return n.Encryptor=n.extend({processBlock:function(e,n){var i=this._cipher,a=i.blockSize;t.call(this,e,n,a),i.encryptBlock(e,n),this._prevBlock=e.slice(n,n+a)}}),n.Decryptor=n.extend({processBlock:function(e,n){var i=this._cipher,a=i.blockSize,o=e.slice(n,n+a);i.decryptBlock(e,n),t.call(this,e,n,a),this._prevBlock=o}}),n}(),h=(u.IGE=function(){function t(e,t,n,i){for(var a=0;i>a;a++)e[n+a]^=t[a]}var n=p.extend();return n.Encryptor=n.extend({processBlock:function(n,i){var a=this._cipher,o=a.blockSize;this._ivp===e&&(this._ivp=this._iv.slice(0,o),this._iv2p=this._iv.slice(o,o+o));var s=n.slice(i,i+o);t(n,this._ivp,i,o),a.encryptBlock(n,i),t(n,this._iv2p,i,o),this._ivp=n.slice(i,i+o),this._iv2p=s}}),n.Decryptor=n.extend({processBlock:function(n,i){var a=this._cipher,o=a.blockSize;this._ivp===e&&(this._ivp=this._iv.slice(0,o),this._iv2p=this._iv.slice(o,2*o));var s=n.slice(i,i+o);t(n,this._iv2p,i,o),a.decryptBlock(n,i),t(n,this._ivp,i,o),this._ivp=s,this._iv2p=n.slice(i,i+o)}}),n}(),t.pad={}),g=h.Pkcs7={pad:function(e,t){for(var n=4*t,i=n-e.sigBytes%n,o=i<<24|i<<16|i<<8|i,s=[],r=0;i>r;r+=4)s.push(o);var l=a.create(s,i);e.concat(l)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},f=(h.NoPadding={pad:function(){},unpad:function(){}},n.BlockCipher=d.extend({cfg:d.cfg.extend({mode:m,padding:g}),reset:function(){d.reset.call(this);var e=this.cfg,t=e.iv,n=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=n.createEncryptor;else{var i=n.createDecryptor;this._minBufferSize=1}this._mode=i.call(n,this,t&&t.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{var t=this._process(!0);e.unpad(t)}return t},blockSize:4}),n.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),_=t.format={},v=_.OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;if(n)var i=a.create([1398893684,1701076831]).concat(n).concat(t);else var i=t;return i.toString(r)},parse:function(e){var t=r.parse(e),n=t.words;if(1398893684==n[0]&&1701076831==n[1]){var i=a.create(n.slice(2,4));n.splice(0,4),t.sigBytes-=16}return f.create({ciphertext:t,salt:i})}},y=n.SerializableCipher=i.extend({cfg:i.extend({format:v}),encrypt:function(e,t,n,i){i=this.cfg.extend(i);var a=e.createEncryptor(n,i),o=a.finalize(t),s=a.cfg;return f.create({ciphertext:o,key:n,iv:s.iv,algorithm:e,mode:s.mode,padding:s.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,n,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var a=e.createDecryptor(n,i).finalize(t.ciphertext);return a},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),b=t.kdf={},w=b.OpenSSL={execute:function(e,t,n,i){i||(i=a.random(8));var o=c.create({keySize:t+n}).compute(e,i),s=a.create(o.words.slice(t),4*n);return o.sigBytes=4*t,f.create({key:o,iv:s,salt:i})}},k=n.PasswordBasedCipher=y.extend({cfg:y.cfg.extend({kdf:w}),encrypt:function(e,t,n,i){i=this.cfg.extend(i);var a=i.kdf.execute(n,e.keySize,e.ivSize);i.iv=a.iv;var o=y.encrypt.call(this,e,t,a.key,i);return o.mixIn(a),o},decrypt:function(e,t,n,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var a=i.kdf.execute(n,e.keySize,e.ivSize,t.salt);i.iv=a.iv;var o=y.decrypt.call(this,e,t,a.key,i);return o}})}(),function(){var e=CryptoJS,t=e.lib,n=t.BlockCipher,i=e.algo,a=[],o=[],s=[],r=[],l=[],c=[],d=[],u=[],p=[],m=[];!function(){for(var e=[],t=0;256>t;t++)e[t]=128>t?t<<1:t<<1^283;for(var n=0,i=0,t=0;256>t;t++){var h=i^i<<1^i<<2^i<<3^i<<4;h=h>>>8^255&h^99,a[n]=h,o[h]=n;var g=e[n],f=e[g],_=e[f],v=257*e[h]^16843008*h;s[n]=v<<24|v>>>8,r[n]=v<<16|v>>>16,l[n]=v<<8|v>>>24,c[n]=v;var v=16843009*_^65537*f^257*g^16843008*n;d[h]=v<<24|v>>>8,u[h]=v<<16|v>>>16,p[h]=v<<8|v>>>24,m[h]=v,n?(n=g^e[e[e[_^g]]],i^=e[e[i]]):n=i=1}}();var h=[0,1,2,4,8,16,32,64,128,27,54],g=i.AES=n.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes/4,i=this._nRounds=n+6,o=4*(i+1),s=this._keySchedule=[],r=0;o>r;r++)if(n>r)s[r]=t[r];else{var l=s[r-1];r%n?n>6&&r%n==4&&(l=a[l>>>24]<<24|a[l>>>16&255]<<16|a[l>>>8&255]<<8|a[255&l]):(l=l<<8|l>>>24,l=a[l>>>24]<<24|a[l>>>16&255]<<16|a[l>>>8&255]<<8|a[255&l],l^=h[r/n|0]<<24),s[r]=s[r-n]^l}for(var c=this._invKeySchedule=[],g=0;o>g;g++){var r=o-g;if(g%4)var l=s[r];else var l=s[r-4];c[g]=4>g||4>=r?l:d[a[l>>>24]]^u[a[l>>>16&255]]^p[a[l>>>8&255]]^m[a[255&l]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,s,r,l,c,a)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,d,u,p,m,o);var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,i,a,o,s,r){for(var l=this._nRounds,c=e[t]^n[0],d=e[t+1]^n[1],u=e[t+2]^n[2],p=e[t+3]^n[3],m=4,h=1;l>h;h++){var g=i[c>>>24]^a[d>>>16&255]^o[u>>>8&255]^s[255&p]^n[m++],f=i[d>>>24]^a[u>>>16&255]^o[p>>>8&255]^s[255&c]^n[m++],_=i[u>>>24]^a[p>>>16&255]^o[c>>>8&255]^s[255&d]^n[m++],v=i[p>>>24]^a[c>>>16&255]^o[d>>>8&255]^s[255&u]^n[m++];c=g,d=f,u=_,p=v}var g=(r[c>>>24]<<24|r[d>>>16&255]<<16|r[u>>>8&255]<<8|r[255&p])^n[m++],f=(r[d>>>24]<<24|r[u>>>16&255]<<16|r[p>>>8&255]<<8|r[255&c])^n[m++],_=(r[u>>>24]<<24|r[p>>>16&255]<<16|r[c>>>8&255]<<8|r[255&d])^n[m++],v=(r[p>>>24]<<24|r[c>>>16&255]<<16|r[d>>>8&255]<<8|r[255&u])^n[m++];e[t]=g,e[t+1]=f,e[t+2]=_,e[t+3]=v},keySize:8});e.AES=n._createHelper(g)}(),function(e){var t=CryptoJS,n=t.lib,i=n.WordArray,a=n.Hasher,o=t.algo,s=[],r=[];!function(){function t(t){for(var n=e.sqrt(t),i=2;n>=i;i++)if(!(t%i))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var i=2,a=0;64>a;)t(i)&&(8>a&&(s[a]=n(e.pow(i,.5))),r[a]=n(e.pow(i,1/3)),a++),i++}();var l=[],c=o.SHA256=a.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],a=n[1],o=n[2],s=n[3],c=n[4],d=n[5],u=n[6],p=n[7],m=0;64>m;m++){if(16>m)l[m]=0|e[t+m];else{var h=l[m-15],g=(h<<25|h>>>7)^(h<<14|h>>>18)^h>>>3,f=l[m-2],_=(f<<15|f>>>17)^(f<<13|f>>>19)^f>>>10;l[m]=g+l[m-7]+_+l[m-16]}var v=c&d^~c&u,y=i&a^i&o^a&o,b=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),w=(c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25),k=p+w+v+r[m]+l[m],$=b+y;p=u,u=d,d=c,c=s+k|0,s=o,o=a,a=i,i=k+$|0}n[0]=n[0]+i|0,n[1]=n[1]+a|0,n[2]=n[2]+o|0,n[3]=n[3]+s|0,n[4]=n[4]+c|0,n[5]=n[5]+d|0,n[6]=n[6]+u|0,n[7]=n[7]+p|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,a=8*t.sigBytes;return n[a>>>5]|=128<<24-a%32,n[(a+64>>>9<<4)+14]=e.floor(i/4294967296),n[(a+64>>>9<<4)+15]=i,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=a._createHelper(c),t.HmacSHA256=a._createHmacHelper(c)}(Math),function(e){function t(e){"use strict";var t={fill:0},i=function(e){for(e+=9;e%64>0;e+=1);return e},a=function(e,t){for(var n=t>>2;n>2]|=128<<24-(t%4<<3),e[((t>>2)+2&-16)+15]=n<<3},r=function(e,t,n,i,a){var o,s=this,r=a%4,l=i%4,c=i-l;if(c>0)switch(r){case 0:e[a+3|0]=s.charCodeAt(n);case 1:e[a+2|0]=s.charCodeAt(n+1);case 2:e[a+1|0]=s.charCodeAt(n+2);case 3:e[0|a]=s.charCodeAt(n+3)}for(o=r;c>o;o=o+4|0)t[a+o>>2]=s.charCodeAt(n+o)<<24|s.charCodeAt(n+o+1)<<16|s.charCodeAt(n+o+2)<<8|s.charCodeAt(n+o+3);switch(l){case 3:e[a+c+1|0]=s.charCodeAt(n+c+2);case 2:e[a+c+2|0]=s.charCodeAt(n+c+1);case 1:e[a+c+3|0]=s.charCodeAt(n+c)}},l=function(e,t,n,i,a){var o,s=this,r=a%4,l=i%4,c=i-l;if(c>0)switch(r){case 0:e[a+3|0]=s[n];case 1:e[a+2|0]=s[n+1];case 2:e[a+1|0]=s[n+2];case 3:e[0|a]=s[n+3]}for(o=4-r;c>o;o=o+=4)t[a+o>>2]=s[n+o]<<24|s[n+o+1]<<16|s[n+o+2]<<8|s[n+o+3];switch(l){case 3:e[a+c+1|0]=s[n+c+2];case 2:e[a+c+2|0]=s[n+c+1];case 1:e[a+c+3|0]=s[n+c]}},c=function(e){switch(o.getDataType(e)){case"string":return r.bind(e);case"array":return l.bind(e);case"buffer":return l.bind(e);case"arraybuffer":return l.bind(new Uint8Array(e));case"view":return l.bind(new Uint8Array(e.buffer))}},d=function(e){var t,n,i="0123456789abcdef",a=[],o=new Uint8Array(e);for(t=0;t>4&15)+i.charAt(n>>0&15);return a.join("")},u=function(e){var t;if(65536>=e)return 65536;if(16777216>e)for(t=1;e>t;t<<=1);else for(t=16777216;e>t;t+=16777216);return t},p=function(e){if(e%64>0)throw new Error("Chunk size must be a multiple of 128 bit");t.maxChunkLen=e,t.padMaxChunkLen=i(e),t.heap=new ArrayBuffer(u(t.padMaxChunkLen+320+20)),t.h32=new Int32Array(t.heap),t.h8=new Int8Array(t.heap),t.core=n({Int32Array:Int32Array,DataView:DataView},{},t.heap),t.buffer=null};p(e||65536);var m=function(e,t){var n=new Int32Array(e,t+320,5);n[0]=1732584193,n[1]=-271733879,n[2]=-1732584194,n[3]=271733878,n[4]=-1009589776},h=function(e,n){var o=i(e),r=new Int32Array(t.heap,0,o>>2);return a(r,e),s(r,e,n),o},g=function(e,n,i){c(e)(t.h8,t.h32,n,i,0)},f=function(e,n,i,a,o){var s=i;o&&(s=h(i,a)),g(e,n,i),t.core.hash(s,t.padMaxChunkLen)},_=function(e,t){var n=new Int32Array(e,t+320,5),i=new Int32Array(5),a=new DataView(i.buffer);return a.setInt32(0,n[0],!1),a.setInt32(4,n[1],!1),a.setInt32(8,n[2],!1),a.setInt32(12,n[3],!1),a.setInt32(16,n[4],!1),i},v=this.rawDigest=function(e){var n=e.byteLength||e.length;m(t.heap,t.padMaxChunkLen);var i=0,a=t.maxChunkLen;for(i=0;n>i+a;i+=a)f(e,i,a,n,!1);return f(e,i,n-i,n,!0),_(t.heap,t.padMaxChunkLen)};this.digest=this.digestFromString=this.digestFromBuffer=this.digestFromArrayBuffer=function(e){return d(v(e).buffer)}}function n(e,t,n){"use asm";function i(e,t){e|=0,t|=0;var n=0,i=0,o=0,s=0,r=0,l=0,c=0,d=0,u=0,p=0,m=0,h=0,g=0,f=0;for(o=a[t+320>>2]|0,r=a[t+324>>2]|0,c=a[t+328>>2]|0,u=a[t+332>>2]|0,m=a[t+336>>2]|0,n=0;(n|0)<(e|0);n=n+64|0){for(s=o,l=r,d=c,p=u,h=m,i=0;(i|0)<64;i=i+4|0)f=a[n+i>>2]|0,g=((o<<5|o>>>27)+(r&c|~r&u)|0)+((f+m|0)+1518500249|0)|0,m=u,u=c,c=r<<30|r>>>2,r=o,o=g,a[e+i>>2]=f;for(i=e+64|0;(i|0)<(e+80|0);i=i+4|0)f=(a[i-12>>2]^a[i-32>>2]^a[i-56>>2]^a[i-64>>2])<<1|(a[i-12>>2]^a[i-32>>2]^a[i-56>>2]^a[i-64>>2])>>>31,g=((o<<5|o>>>27)+(r&c|~r&u)|0)+((f+m|0)+1518500249|0)|0,m=u,u=c,c=r<<30|r>>>2,r=o,o=g,a[i>>2]=f;for(i=e+80|0;(i|0)<(e+160|0);i=i+4|0)f=(a[i-12>>2]^a[i-32>>2]^a[i-56>>2]^a[i-64>>2])<<1|(a[i-12>>2]^a[i-32>>2]^a[i-56>>2]^a[i-64>>2])>>>31,g=((o<<5|o>>>27)+(r^c^u)|0)+((f+m|0)+1859775393|0)|0,m=u,u=c,c=r<<30|r>>>2,r=o,o=g,a[i>>2]=f;for(i=e+160|0;(i|0)<(e+240|0);i=i+4|0)f=(a[i-12>>2]^a[i-32>>2]^a[i-56>>2]^a[i-64>>2])<<1|(a[i-12>>2]^a[i-32>>2]^a[i-56>>2]^a[i-64>>2])>>>31,g=((o<<5|o>>>27)+(r&c|r&u|c&u)|0)+((f+m|0)-1894007588|0)|0,m=u,u=c,c=r<<30|r>>>2,r=o,o=g,a[i>>2]=f;for(i=e+240|0;(i|0)<(e+320|0);i=i+4|0)f=(a[i-12>>2]^a[i-32>>2]^a[i-56>>2]^a[i-64>>2])<<1|(a[i-12>>2]^a[i-32>>2]^a[i-56>>2]^a[i-64>>2])>>>31,g=((o<<5|o>>>27)+(r^c^u)|0)+((f+m|0)-899497514|0)|0,m=u,u=c,c=r<<30|r>>>2,r=o,o=g,a[i>>2]=f;o=o+s|0,r=r+l|0,c=c+d|0,u=u+p|0,m=m+h|0}a[t+320>>2]=o,a[t+324>>2]=r,a[t+328>>2]=c,a[t+332>>2]=u,a[t+336>>2]=m}var a=new e.Int32Array(n);return{hash:i}}if("undefined"!=typeof module&&(module.exports=t),"undefined"!=typeof e&&(e.Rusha=t),"undefined"!=typeof FileReaderSync){var i=new FileReaderSync,a=new t(4194304);self.onmessage=function(e){var t,n=e.data.data;if(n instanceof Blob)try{n=i.readAsBinaryString(n)}catch(o){return void self.postMessage({id:e.data.id,error:o.name})}t=a.digest(n),self.postMessage({id:e.data.id,hash:t})}}var o={getDataType:function(t){if("string"==typeof t)return"string";if(t instanceof Array)return"array";if("undefined"!=typeof e&&e.Buffer&&e.Buffer.isBuffer(t))return"buffer";if(t instanceof ArrayBuffer)return"arraybuffer";if(t.buffer instanceof ArrayBuffer)return"view";throw new Error("Unsupported data type.")}}}(this),function(){"use strict";function e(e){throw e}function t(e,t){var n=e.split("."),i=u;!(n[0]in i)&&i.execScript&&i.execScript("var "+n[0]);for(var a;n.length&&(a=n.shift());)n.length||t===d?i=i[a]?i[a]:i[a]={}:i[a]=t}function n(e,t,n){var i,a="number"==typeof t?t:t=0,o="number"==typeof n?n:e.length;for(i=-1,a=7&o;a--;++t)i=i>>>8^_[255&(i^e[t])];for(a=o>>3;a--;t+=8)i=i>>>8^_[255&(i^e[t])],i=i>>>8^_[255&(i^e[t+1])],i=i>>>8^_[255&(i^e[t+2])],i=i>>>8^_[255&(i^e[t+3])],i=i>>>8^_[255&(i^e[t+4])],i=i>>>8^_[255&(i^e[t+5])],i=i>>>8^_[255&(i^e[t+6])],i=i>>>8^_[255&(i^e[t+7])];return(4294967295^i)>>>0}function i(){}function a(e){var t,n,i,a,o,s,r,l,c,d=e.length,u=0,m=Number.POSITIVE_INFINITY;for(l=0;d>l;++l)e[l]>u&&(u=e[l]),e[l]=i;){for(l=0;d>l;++l)if(e[l]===i){for(s=0,r=a,c=0;i>c;++c)s=s<<1|1&r,r>>=1;for(c=s;t>c;c+=o)n[c]=i<<16|l;++a}++i,a<<=1,o<<=1}return[n,u,m]}function o(t,n){switch(this.i=[],this.j=32768,this.d=this.f=this.c=this.n=0,this.input=p?new Uint8Array(t):t,this.o=!1,this.k=k,this.w=!1,(n||!(n={}))&&(n.index&&(this.c=n.index),n.bufferSize&&(this.j=n.bufferSize),n.bufferType&&(this.k=n.bufferType),n.resize&&(this.w=n.resize)),this.k){case w:this.a=32768,this.b=new(p?Uint8Array:Array)(32768+this.j+258);break;case k:this.a=0,this.b=new(p?Uint8Array:Array)(this.j),this.e=this.D,this.q=this.A,this.l=this.C;break;default:e(Error("invalid inflate mode"))}}function s(t,n){for(var i,a=t.f,o=t.d,s=t.input,r=t.c;n>o;)i=s[r++],i===d&&e(Error("input buffer is broken")),a|=i<>>n,t.d=o-n,t.c=r,i}function r(e,t){for(var n,i,a,o=e.f,s=e.d,r=e.input,l=e.c,c=t[0],u=t[1];u>s&&(n=r[l++],n!==d);)o|=n<>>16,e.f=o>>a,e.d=s-a,e.c=l,65535&i}function l(e){function t(e,t,n){var i,a,o,l;for(l=0;e>l;)switch(i=r(this,t)){case 16:for(o=3+s(this,2);o--;)n[l++]=a;break;case 17:for(o=3+s(this,3);o--;)n[l++]=0;a=0;break;case 18:for(o=11+s(this,7);o--;)n[l++]=0;a=0;break;default:a=n[l++]=i}return n}var n,i,o,l,c=s(e,5)+257,d=s(e,5)+1,u=s(e,4)+4,m=new(p?Uint8Array:Array)(M.length);for(l=0;u>l;++l)m[M[l]]=s(e,3);n=a(m),i=new(p?Uint8Array:Array)(c),o=new(p?Uint8Array:Array)(d),e.l(a(t.call(e,c,n,i)),a(t.call(e,d,n,o)))}function c(e){this.input=e,this.c=0,this.m=[],this.s=!1}var d=void 0,u=this,p="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array;new(p?Uint8Array:Array)(256);var m;for(m=0;256>m;++m)for(var h=m,g=7,h=h>>>1;h;h>>>=1)--g;var f=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],_=p?new Uint32Array(f):f;i.prototype.getName=function(){return this.name},i.prototype.getData=function(){return this.data},i.prototype.G=function(){return this.H},t("Zlib.GunzipMember",i),t("Zlib.GunzipMember.prototype.getName",i.prototype.getName),t("Zlib.GunzipMember.prototype.getData",i.prototype.getData),t("Zlib.GunzipMember.prototype.getMtime",i.prototype.G);var v,y=[];for(v=0;288>v;v++)switch(!0){case 143>=v:y.push([v+48,8]);break;case 255>=v:y.push([v-144+400,9]);break;case 279>=v:y.push([v-256+0,7]);break;case 287>=v:y.push([v-280+192,8]);break;default:e("invalid literal: "+v)}var b=function(){function t(t){switch(!0){case 3===t:return[257,t-3,0];case 4===t:return[258,t-4,0];case 5===t:return[259,t-5,0];case 6===t:return[260,t-6,0];case 7===t:return[261,t-7,0];case 8===t:return[262,t-8,0];case 9===t:return[263,t-9,0];case 10===t:return[264,t-10,0];case 12>=t:return[265,t-11,1];case 14>=t:return[266,t-13,1];case 16>=t:return[267,t-15,1];case 18>=t:return[268,t-17,1];case 22>=t:return[269,t-19,2];case 26>=t:return[270,t-23,2];case 30>=t:return[271,t-27,2];case 34>=t:return[272,t-31,2];case 42>=t:return[273,t-35,3];case 50>=t:return[274,t-43,3];case 58>=t:return[275,t-51,3];case 66>=t:return[276,t-59,3];case 82>=t:return[277,t-67,4];case 98>=t:return[278,t-83,4];case 114>=t:return[279,t-99,4];case 130>=t:return[280,t-115,4];case 162>=t:return[281,t-131,5];case 194>=t:return[282,t-163,5];case 226>=t:return[283,t-195,5];case 257>=t:return[284,t-227,5];case 258===t:return[285,t-258,0];default:e("invalid length: "+t)}}var n,i,a=[];for(n=3;258>=n;n++)i=t(n),a[n]=i[2]<<24|i[1]<<16|i[0];return a}();p&&new Uint32Array(b);var w=0,k=1;o.prototype.g=function(){for(;!this.o;){var t=s(this,3);switch(1&t&&(this.o=!0),t>>>=1){case 0:var n=this.input,i=this.c,a=this.b,o=this.a,r=d,c=d,u=d,m=a.length,h=d;switch(this.d=this.f=0,r=n[i++],r===d&&e(Error("invalid uncompressed block header: LEN (first byte)")),c=r,r=n[i++],r===d&&e(Error("invalid uncompressed block header: LEN (second byte)")),c|=r<<8,r=n[i++],r===d&&e(Error("invalid uncompressed block header: NLEN (first byte)")),u=r,r=n[i++],r===d&&e(Error("invalid uncompressed block header: NLEN (second byte)")),u|=r<<8,c===~u&&e(Error("invalid uncompressed block header: length verify")),i+c>n.length&&e(Error("input buffer is broken")),this.k){case w:for(;o+c>a.length;){if(h=m-o,c-=h,p)a.set(n.subarray(i,i+h),o),o+=h,i+=h;else for(;h--;)a[o++]=n[i++];this.a=o,a=this.e(),o=this.a}break;case k:for(;o+c>a.length;)a=this.e({t:2});break;default:e(Error("invalid inflate mode"))}if(p)a.set(n.subarray(i,i+c),o),o+=c,i+=c;else for(;c--;)a[o++]=n[i++];this.c=i,this.a=o,this.b=a;break;case 1:this.l(L,F);break;case 2:l(this);break;default:e(Error("unknown BTYPE: "+t))}}return this.q()};var $,S,C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],M=p?new Uint16Array(C):C,x=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],A=p?new Uint16Array(x):x,E=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],T=p?new Uint8Array(E):E,I=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],D=p?new Uint16Array(I):I,P=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],N=p?new Uint8Array(P):P,U=new(p?Uint8Array:Array)(288);for($=0,S=U.length;S>$;++$)U[$]=143>=$?8:255>=$?9:279>=$?7:8;var O,R,L=a(U),B=new(p?Uint8Array:Array)(30);for(O=0,R=B.length;R>O;++O)B[O]=5;var F=a(B);o.prototype.l=function(e,t){var n=this.b,i=this.a;this.r=e;for(var a,o,l,c,d=n.length-258;256!==(a=r(this,e));)if(256>a)i>=d&&(this.a=i,n=this.e(),i=this.a),n[i++]=a;else for(o=a-257,c=A[o],0=d&&(this.a=i,n=this.e(),i=this.a);c--;)n[i]=n[i++-l];for(;8<=this.d;)this.d-=8,this.c--;this.a=i},o.prototype.C=function(e,t){var n=this.b,i=this.a;this.r=e;for(var a,o,l,c,d=n.length;256!==(a=r(this,e));)if(256>a)i>=d&&(n=this.e(),d=n.length),n[i++]=a;else for(o=a-257,c=A[o],0d&&(n=this.e(),d=n.length);c--;)n[i]=n[i++-l];for(;8<=this.d;)this.d-=8,this.c--;this.a=i},o.prototype.e=function(){var e,t,n=new(p?Uint8Array:Array)(this.a-32768),i=this.a-32768,a=this.b;if(p)n.set(a.subarray(32768,n.length));else for(e=0,t=n.length;t>e;++e)n[e]=a[e+32768];if(this.i.push(n),this.n+=n.length,p)a.set(a.subarray(i,i+32768));else for(e=0;32768>e;++e)a[e]=a[i+e];return this.a=32768,a},o.prototype.D=function(e){var t,n,i,a,o=this.input.length/this.c+1|0,s=this.input,r=this.b;return e&&("number"==typeof e.t&&(o=e.t),"number"==typeof e.z&&(o+=e.z)),2>o?(n=(s.length-this.c)/this.r[2],a=258*(n/2)|0,i=at;++t)for(e=r[t],i=0,a=e.length;a>i;++i)l[o++]=e[i];for(t=32768,n=this.a;n>t;++t)l[o++]=s[t];return this.i=[],this.buffer=l},o.prototype.A=function(){var e,t=this.a; return p?this.w?(e=new Uint8Array(t),e.set(this.b.subarray(0,t))):e=this.b.subarray(0,t):(this.b.length>t&&(this.b.length=t),e=this.b),this.buffer=e},c.prototype.F=function(){return this.s||this.g(),this.m.slice()},c.prototype.g=function(){for(var t=this.input.length;this.c>>0,n(l,d,d)!==f&&e(Error("invalid CRC-32 checksum: 0x"+n(l,d,d).toString(16)+" / 0x"+f.toString(16))),a.L=s=(_[v++]|_[v++]<<8|_[v++]<<16|_[v++]<<24)>>>0,(4294967295&l.length)!==s&&e(Error("invalid input size: "+(4294967295&l.length)+" / "+s)),this.m.push(a),this.c=v}this.s=!0;var y,b,w,k=this.m,$=0,S=0;for(y=0,b=k.length;b>y;++y)S+=k[y].data.length;if(p)for(w=new Uint8Array(S),y=0;b>y;++y)w.set(k[y].data,$),$+=k[y].data.length;else{for(w=[],y=0;b>y;++y)w[y]=k[y].data;w=Array.prototype.concat.apply([],w)}return w},t("Zlib.Gunzip",c),t("Zlib.Gunzip.prototype.decompress",c.prototype.g),t("Zlib.Gunzip.prototype.getMembers",c.prototype.F)}.call(this),this.goog={provide:function(){},math:{}},goog.provide("goog.math.Long"),goog.math.Long=function(e,t){this.low_=0|e,this.high_=0|t},goog.math.Long.IntCache_={},goog.math.Long.fromInt=function(e){if(e>=-128&&128>e){var t=goog.math.Long.IntCache_[e];if(t)return t}var n=new goog.math.Long(0|e,0>e?-1:0);return e>=-128&&128>e&&(goog.math.Long.IntCache_[e]=n),n},goog.math.Long.fromNumber=function(e){return isNaN(e)||!isFinite(e)?goog.math.Long.ZERO:e<=-goog.math.Long.TWO_PWR_63_DBL_?goog.math.Long.MIN_VALUE:e+1>=goog.math.Long.TWO_PWR_63_DBL_?goog.math.Long.MAX_VALUE:0>e?goog.math.Long.fromNumber(-e).negate():new goog.math.Long(e%goog.math.Long.TWO_PWR_32_DBL_|0,e/goog.math.Long.TWO_PWR_32_DBL_|0)},goog.math.Long.fromBits=function(e,t){return new goog.math.Long(e,t)},goog.math.Long.fromString=function(e,t){if(0==e.length)throw Error("number format error: empty string");var n=t||10;if(2>n||n>36)throw Error("radix out of range: "+n);if("-"==e.charAt(0))return goog.math.Long.fromString(e.substring(1),n).negate();if(e.indexOf("-")>=0)throw Error('number format error: interior "-" character: '+e);for(var i=goog.math.Long.fromNumber(Math.pow(n,8)),a=goog.math.Long.ZERO,o=0;os){var l=goog.math.Long.fromNumber(Math.pow(n,s));a=a.multiply(l).add(goog.math.Long.fromNumber(r))}else a=a.multiply(i),a=a.add(goog.math.Long.fromNumber(r))}return a},goog.math.Long.TWO_PWR_16_DBL_=65536,goog.math.Long.TWO_PWR_24_DBL_=1<<24,goog.math.Long.TWO_PWR_32_DBL_=goog.math.Long.TWO_PWR_16_DBL_*goog.math.Long.TWO_PWR_16_DBL_,goog.math.Long.TWO_PWR_31_DBL_=goog.math.Long.TWO_PWR_32_DBL_/2,goog.math.Long.TWO_PWR_48_DBL_=goog.math.Long.TWO_PWR_32_DBL_*goog.math.Long.TWO_PWR_16_DBL_,goog.math.Long.TWO_PWR_64_DBL_=goog.math.Long.TWO_PWR_32_DBL_*goog.math.Long.TWO_PWR_32_DBL_,goog.math.Long.TWO_PWR_63_DBL_=goog.math.Long.TWO_PWR_64_DBL_/2,goog.math.Long.ZERO=goog.math.Long.fromInt(0),goog.math.Long.ONE=goog.math.Long.fromInt(1),goog.math.Long.NEG_ONE=goog.math.Long.fromInt(-1),goog.math.Long.MAX_VALUE=goog.math.Long.fromBits(-1,2147483647),goog.math.Long.MIN_VALUE=goog.math.Long.fromBits(0,-2147483648),goog.math.Long.TWO_PWR_24_=goog.math.Long.fromInt(1<<24),goog.math.Long.prototype.toInt=function(){return this.low_},goog.math.Long.prototype.toNumber=function(){return this.high_*goog.math.Long.TWO_PWR_32_DBL_+this.getLowBitsUnsigned()},goog.math.Long.prototype.toString=function(e){var t=e||10;if(2>t||t>36)throw Error("radix out of range: "+t);if(this.isZero())return"0";if(this.isNegative()){if(this.equals(goog.math.Long.MIN_VALUE)){var n=goog.math.Long.fromNumber(t),i=this.div(n),a=i.multiply(n).subtract(this);return i.toString(t)+a.toInt().toString(t)}return"-"+this.negate().toString(t)}for(var o=goog.math.Long.fromNumber(Math.pow(t,6)),a=this,s="";;){var r=a.div(o),l=a.subtract(r.multiply(o)).toInt(),c=l.toString(t);if(a=r,a.isZero())return c+s;for(;c.length<6;)c="0"+c;s=""+c+s}},goog.math.Long.prototype.getHighBits=function(){return this.high_},goog.math.Long.prototype.getLowBits=function(){return this.low_},goog.math.Long.prototype.getLowBitsUnsigned=function(){return this.low_>=0?this.low_:goog.math.Long.TWO_PWR_32_DBL_+this.low_},goog.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(goog.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var e=0!=this.high_?this.high_:this.low_,t=31;t>0&&0==(e&1<0},goog.math.Long.prototype.greaterThanOrEqual=function(e){return this.compare(e)>=0},goog.math.Long.prototype.compare=function(e){if(this.equals(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.subtract(e).isNegative()?-1:1},goog.math.Long.prototype.negate=function(){return this.equals(goog.math.Long.MIN_VALUE)?goog.math.Long.MIN_VALUE:this.not().add(goog.math.Long.ONE)},goog.math.Long.prototype.add=function(e){var t=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,a=65535&this.low_,o=e.high_>>>16,s=65535&e.high_,r=e.low_>>>16,l=65535&e.low_,c=0,d=0,u=0,p=0;return p+=a+l,u+=p>>>16,p&=65535,u+=i+r,d+=u>>>16,u&=65535,d+=n+s,c+=d>>>16,d&=65535,c+=t+o,c&=65535,goog.math.Long.fromBits(u<<16|p,c<<16|d)},goog.math.Long.prototype.subtract=function(e){return this.add(e.negate())},goog.math.Long.prototype.multiply=function(e){if(this.isZero())return goog.math.Long.ZERO;if(e.isZero())return goog.math.Long.ZERO;if(this.equals(goog.math.Long.MIN_VALUE))return e.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO;if(e.equals(goog.math.Long.MIN_VALUE))return this.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO;if(this.isNegative())return e.isNegative()?this.negate().multiply(e.negate()):this.negate().multiply(e).negate();if(e.isNegative())return this.multiply(e.negate()).negate();if(this.lessThan(goog.math.Long.TWO_PWR_24_)&&e.lessThan(goog.math.Long.TWO_PWR_24_))return goog.math.Long.fromNumber(this.toNumber()*e.toNumber());var t=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,a=65535&this.low_,o=e.high_>>>16,s=65535&e.high_,r=e.low_>>>16,l=65535&e.low_,c=0,d=0,u=0,p=0;return p+=a*l,u+=p>>>16,p&=65535,u+=i*l,d+=u>>>16,u&=65535,u+=a*r,d+=u>>>16,u&=65535,d+=n*l,c+=d>>>16,d&=65535,d+=i*r,c+=d>>>16,d&=65535,d+=a*s,c+=d>>>16,d&=65535,c+=t*l+n*r+i*s+a*o,c&=65535,goog.math.Long.fromBits(u<<16|p,c<<16|d)},goog.math.Long.prototype.div=function(e){if(e.isZero())throw Error("division by zero");if(this.isZero())return goog.math.Long.ZERO;if(this.equals(goog.math.Long.MIN_VALUE)){if(e.equals(goog.math.Long.ONE)||e.equals(goog.math.Long.NEG_ONE))return goog.math.Long.MIN_VALUE;if(e.equals(goog.math.Long.MIN_VALUE))return goog.math.Long.ONE;var t=this.shiftRight(1),n=t.div(e).shiftLeft(1);if(n.equals(goog.math.Long.ZERO))return e.isNegative()?goog.math.Long.ONE:goog.math.Long.NEG_ONE;var i=this.subtract(e.multiply(n)),a=n.add(i.div(e));return a}if(e.equals(goog.math.Long.MIN_VALUE))return goog.math.Long.ZERO;if(this.isNegative())return e.isNegative()?this.negate().div(e.negate()):this.negate().div(e).negate();if(e.isNegative())return this.div(e.negate()).negate();for(var o=goog.math.Long.ZERO,i=this;i.greaterThanOrEqual(e);){for(var n=Math.max(1,Math.floor(i.toNumber()/e.toNumber())),s=Math.ceil(Math.log(n)/Math.LN2),r=48>=s?1:Math.pow(2,s-48),l=goog.math.Long.fromNumber(n),c=l.multiply(e);c.isNegative()||c.greaterThan(i);)n-=r,l=goog.math.Long.fromNumber(n),c=l.multiply(e);l.isZero()&&(l=goog.math.Long.ONE),o=o.add(l),i=i.subtract(c)}return o},goog.math.Long.prototype.modulo=function(e){return this.subtract(this.div(e).multiply(e))},goog.math.Long.prototype.not=function(){return goog.math.Long.fromBits(~this.low_,~this.high_)},goog.math.Long.prototype.and=function(e){return goog.math.Long.fromBits(this.low_&e.low_,this.high_&e.high_)},goog.math.Long.prototype.or=function(e){return goog.math.Long.fromBits(this.low_|e.low_,this.high_|e.high_)},goog.math.Long.prototype.xor=function(e){return goog.math.Long.fromBits(this.low_^e.low_,this.high_^e.high_)},goog.math.Long.prototype.shiftLeft=function(e){if(e&=63,0==e)return this;var t=this.low_;if(32>e){var n=this.high_;return goog.math.Long.fromBits(t<>>32-e)}return goog.math.Long.fromBits(0,t<e){var n=this.low_;return goog.math.Long.fromBits(n>>>e|t<<32-e,t>>e)}return goog.math.Long.fromBits(t>>e-32,t>=0?0:-1)},goog.math.Long.prototype.shiftRightUnsigned=function(e){if(e&=63,0==e)return this;var t=this.high_;if(32>e){var n=this.low_;return goog.math.Long.fromBits(n>>>e|t<<32-e,t>>>e)}return 32==e?goog.math.Long.fromBits(t,0):goog.math.Long.fromBits(t>>>e-32,0)},bpe=0,mask=0,radix=mask+1,digitsStr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-";for(bpe=0;1<1<>=1,mask=(1<i;++i)e[t+i]=n[a+i]}function n(e){var t,n=[],i=e.length;for(t=0;i>t;++t)n.push(e[t]);return n}function a(t,n){var i=[];i.push(e(t));var a;for(a=0;n>a;++a)i.push(e(t));return i.push(0),i}function o(e,t){var n,i=[];for(n=0;t>n;++n)i.push(e);return i.push(0),i}function s(e,t,n,i,a){var o;for(o=0;a>o;o++)e[t+o]=n[i+o]}function r(e,t,n,i){var a;for(a=0;i>a;++a)e[t+a]=n}function l(e,t,n,i){var a,o="";for(a=0;i>a;++a)o+=String.fromCharCode(e[t+a]);return n==o?0:1}function c(e,t){var n,i=[];for(n=0;e>n;++n)i.push(t);return i}function d(t,n){var i,a=[];for(i=0;t>i;++i)a.push(e(n));return a}function u(t,n){var i;for(i=t.length-1;i>=0;--i)n=e(c(t[i],n));return n}function p(e){if(!e)throw Error("assert :P")}var m=void 0,h=null,g=0,f=0,_=g,v=g,y=0,b=0;window.WebPDecoder=function(){function w(e){return e==Wn||e==Gn||e==Kn||e==Yn}function k(e){return C(e,1)}function $(e,t){var n=1+((e.la-1)*t>>8),i=n<<8,a=g;for(e.Z>=i?(a=1,e.la-=n,e.Z-=i):(a=0,e.la=n);128>e.la;)e.Z<<=1,e.la<<=1,8==++e.gc&&(e.gc=0,e.bc&&(e.Z+=e.qa[e.Ia++],e.bc--));return a}function S(e,t,n,i){i-=n,i>=2?(e.Z=t[n+0]<<8|t[n+1],e.qa=t,e.Ia=n+2,e.bc=i-2):(e.Z=0,e.qa=h,e.bc=0),e.la=255,e.gc=0}function C(e,t){for(var n=0,i=g,i=t-1;i>=0;i--)n|=$(e,128)<i),e.qa=t,e.Ia=n,e.ya=i,e.T=0,e.Q=0,e.g=0,e.L=0,a=e.fa=0;4>a&&a>>=8,e.T+=e.qa[e.Ia+e.Q]<<24>>>0,++e.Q,e.g-=8}function E(e){8<=e.g&&A(e),e.Q==e.ya&&32==e.g&&(e.L=1)}function T(e,t){var n=0;if(p(t>=0),!e.L&&gi>t){if(e.Q==e.ya&&32<=e.g+t&&(e.L=1,32>e.g&fi[t],e.g+=t,8<=e.g&&8<=e.g&&A(e)}else e.fa=1;return n}function I(e){return e.Pa==e.gb}function D(e,t){return p(e!=h),0==t?0:(e.gb=2*t-1,e.Y=d(e.gb,Vi),e.Y==h?0:(e.Y[0].s=-1,e.Pa=1))}function P(e){e!=h&&(e.Y=h,e.Y=h,e.gb=0,e.Pa=0)}function N(e,t,n,i){for(var a=e.Y,o=0,s=+e.gb;0=s)return 0;if(0>a[o].s){if(I(e))return 0;var r=e,l=r.Y,c=+r.Pa;a[o].s=c-o,r.Pa+=2,l[c+0].s=-1,l[c+1].s=-1}else if(0==a[o].s)return 0;o+=a[o].s+(n>>i&1)}if(0>a[o].s)a[o].s=0;else if(0!=a[o].s)return 0;return a[o].kc=t,1}function U(e,t,n){var i=g,a=0,o=0;for(p(e!=h),p(t!=h),i=0;n>i;++i)0o||o>=n?(P(e),0):N(e,o,0,0);if(a=0,o=c(n,g),o==h)return(a=a&&I(e))||P(e),a;var s=g,s=g,i=c(Mi+1,0),r=g,l=c(Mi+1,0),d=0;for(p(t!=h),p(n>0),p(o!=h),s=0;n>s;++s)t[s]>d&&(d=t[s]);if(d>Mi)i=0;else{for(s=0;n>s;++s)++i[t[s]];for(r=i[0]=0,l[0]=-1,s=1;d>=s;++s)r=r+i[s-1]<<1,l[s]=r;for(s=0;n>s;++s)o[s]=0i;++i)if(0r;++r)a[o+r]=e[t+r]+n[i+r]&255}function R(n,i,a){var o=n.P.l;if(!(a=0>i||0>a||i+a>n.P.v)&&(a=0==i)){e:{var s=n.Ga,r=n.G,l=n.ub;a=n.P.l;var d=n.P.v,u=n.Xb,m=[h],f=h,_=d*a,v=h,y=h,y="WEBP_FILTER_TYPE",b=g,m=g,w=0,k=g;if(p(a>0&&d>0&&o>=a),p(s!=h&&u!=h),Ni>=l)a=0;else if(k=s[r+0]>>0&3,y=s[r+0]>>2&3,b=s[r+0]>>4&3,m=s[r+0]>>6&3,Ui>k||k>Oi||y>=Ua||b>Ri||0!=m)a=0;else{if(k==Ui)w=l>=_,m=s,f=r+Ni;else{if(m=c(_,0),f=0,m==h){a=0;break e}var w=r+Ni,l=l-Ni,r=m,v=e(di),$=0,S=Jt();S==h?w=0:(S.l=a,S.v=d,S.N=v,vt(Ln),v.put=An,v.Mb=xn,v.Pb=En,v.ka=h,v.ka=r,v.fd=0,v.width=a,v.height=d,S.a=ei,x(S.o,s,w,l),S.Wa=Ea,en(a,d,1,S,h)&&tn(S,a)&&(S.Wa=Aa,$=Zt(S,S.V,S.Ha,S.l,S.v,nn)),S!=h&&Qt(S),w=$)}if(w){for(s=Oa[y],s!=h?(v=c(_,0),y=0,v==h&&(w=0,k!=Ui&&(f=m=h)),s(m,f,a,d,1,a,v,y),_=v,k=y):(_=m,k=f),s=0;0=f||0>=a?0:1)}a=w}}a=!a}return a?h:0==i?n.Xb:+i*o}function L(e){var t=e.width,n=e.height,i=e.J;if(0>=t||0>=n||!(i>=Bn&&Jn>i))return ni;if(!e.Fc&&e.Jb==h){var a=h,o=0,s=0,r=0,l=0,a=y,d=t*Ra[i],u=d*n;if(Zn>i||(o=parseInt((t+1)/2,10),r=o*parseInt((n+1)/2,10),i==Xn&&(s=t,l=s*n)),a=u+2*r+l,a!=a)return ni;if(a=c(a,205),a==h)return ti;e.Jb=a,e.jc=h,Zn>i?(t=e.c.RGBA,t.ma=a,t.Sa=h,t.f=d,t.size=u):(t=e.c.Va,t.y=a,t.D=h,t.F=d,t.Wc=u,t.c=a,t.B=h+u,t.nb=o,t.Rc=r,t.S=a,t.C=h+u+r,t.rb=o,t.Uc=r,i==Xn&&(t.p=a,t.q=h+u+2*r),t.Wb=l,t.Fa=s)}return i=1,o=e.J,s=e.width,r=e.height,o>=Bn&&Jn>o?Zn>o?(e=e.c.RGBA,i&=e.f*r<=e.size,i&=e.f>=s*Ra[o],i&=e.ma!=h):(e=e.c.Va,l=e.nb*parseInt((r+1)/2,10),d=e.rb*parseInt((r+1)/2,10),u=e.Fa*r,i&=e.F*r<=e.Wc,i&=l<=e.Rc,i&=d<=e.Uc,i&=u<=e.Wb,i&=e.F>=s,i&=e.nb>=parseInt((s+1)/2,10),i&=e.rb>=parseInt((s+1)/2,10),i&=e.y!=h,i&=e.c!=h,i&=e.S!=h,o==Xn&&(i&=e.Fa>=s,i&=u<=e.Wb,i&=e.p!=h)):i=0,i?ei:ni}function B(e,t,n,i){if(i==h||0>=e||0>=t)return ni;if(n!=h){if(n.Ua){var a=n.wc,o=n.vc,s=-2&n.t,r=-2&n.k;if(0>s||0>r||0>=a||0>=o||s+a>e||r+o>t)return ni;e=a,t=o}if(n.I){if(0>=n.Ba||0>=n.Aa)return ni;e=n.Ba,t=n.Aa}}return i.width=e,i.height=t,L(i)}function F(e){return-256&e?0>e?0:255:e}function q(e,t,n,i){var a,o=c(16,0);a=0;var s;for(s=0;4>s;++s){var r=e[t+0]+e[t+8],l=e[t+0]-e[t+8],d=(e[t+4]*ro>>16)-(e[t+12]*so>>16),u=(e[t+4]*so>>16)+(e[t+12]*ro>>16);o[a+0]=r+u,o[a+1]=l+d,o[a+2]=l-d,o[a+3]=r-u,a+=4,t++}for(s=a=0;4>s;++s)e=o[a+0]+4,r=e+o[a+8],l=e-o[a+8],d=(o[a+4]*ro>>16)-(o[a+12]*so>>16),u=(o[a+4]*so>>16)+(o[a+12]*ro>>16),n[i+0+0*pa]=F(n[i+0+0*pa]+(r+u>>3)),n[i+1+0*pa]=F(n[i+1+0*pa]+(l+d>>3)),n[i+2+0*pa]=F(n[i+2+0*pa]+(l-d>>3)),n[i+3+0*pa]=F(n[i+3+0*pa]+(r-u>>3)),a++,i+=pa}function H(e,t,n,i,a){q(e,t,n,i),a&&q(e,t+16,n,i+4)}function z(e,t,n,i){La(e,t+0,n,i+0,1),La(e,t+32,n,i+4*pa,1)}function V(e,t,n,i){e=e[t+0]+4;var a;for(a=0;4>a;++a)for(t=0;4>t;++t)n[i+t+a*pa]=F(n[i+t+a*pa]+(e>>3))}function W(e,t,n,i){e[t+0]&&V(e,t+0,n,i+0),e[t+16]&&V(e,t+16,n,i+4),e[t+32]&&V(e,t+32,n,i+4*pa),e[t+48]&&V(e,t+48,n,i+4*pa+4)}function G(e,t,n){var i,a=t-pa,o=ao,s=255-e[a-1];for(i=0;n>i;++i){var r,l=o,c=s+e[t-1];for(r=0;n>r;++r)e[t+r]=l[c+e[a+r]];t+=pa}}function K(e,t,n){var a;for(a=0;16>a;++a)for(i=0;16>i;++i)t[n+a*pa+i]=e}function Y(e,t,n){return e+2*t+n+2>>2}function Z(e,t,n){var i,a;for(i=0;8>i;++i)for(a=0;8>a;++a)t[n+a+i*pa]=e}function X(e,t,n){var i=e[t-n],a=e[t+0],o=3*(a-i)+no[1020+e[t-2*n]-e[t+n]],s=io[112+(o+4>>3)];e[t-n]=ao[255+i+io[112+(o+3>>3)]],e[t+0]=ao[255+a-s]}function J(e,t,n,i){var a=e[t+0],o=e[t+n];return eo[255+e[t-2*n]-e[t-n]]>i||eo[255+o-a]>i}function Q(e,t,n,i,a){var o=e[t-3*n],s=e[t-2*n],r=e[t-n],l=e[t+0],c=e[t+n],d=e[t+2*n],u=e[t+3*n];return 2*eo[255+r-l]+to[255+s-c]>i?0:eo[255+e[t-4*n]-o]<=a&&eo[255+o-s]<=a&&eo[255+s-r]<=a&&eo[255+u-d]<=a&&eo[255+d-c]<=a&&eo[255+c-l]<=a}function et(e,t,n,i){var a;for(a=0;16>a;++a)2*eo[255+e[t+a-n]-e[t+a+0]]+to[255+e[t+a-2*n]-e[t+a+n]]<=i&&X(e,t+a,n)}function tt(e,t,n,i){var a;for(a=0;16>a;++a)2*eo[255+e[t+a*n-1]-e[t+a*n+0]]+to[255+e[t+a*n-2]-e[t+a*n+1]]<=i&&X(e,t+a*n,1)}function nt(e,t,n,i){var a;for(a=3;a>0;--a)t+=4*n,et(e,t+0,n,i)}function it(e,t,n,i){var a;for(a=3;a>0;--a)t+=4,tt(e,t+0,n,i)}function at(e,t,n,i,a,o,s,r){for(;0>7,v=18*f+63>>7,f=9*f+63>>7;l[c-3*d]=ao[255+l[c-3*d]+f],l[c-2*d]=ao[255+u+v],l[c-d]=ao[255+p+_],l[c+0]=ao[255+m-_],l[c+d]=ao[255+h-v],l[c+2*d]=ao[255+g-f]}t+=i}}function ot(e,t,n,i,a,o,s,r){for(;0>3)],h=io[112+(h+3>>3)],f=g+1>>1;l[c-2*d]=ao[255+l[c-2*d]+f],l[c-d]=ao[255+u+h],l[c+0]=ao[255+p-g],l[c+d]=ao[255+m-f]}t+=i}}function st(e,t,n,i,a,o){at(e,t+0,n,1,16,i,a,o)}function rt(e,t,n,i,a,o){at(e,t+0,1,n,16,i,a,o)}function lt(e,t,n,i,a,o){var s;for(s=3;s>0;--s)t+=4*n,ot(e,t+0,n,1,16,i,a,o)}function ct(e,t,n,i,a,o){var s;for(s=3;s>0;--s)t+=4,ot(e,t+0,1,n,16,i,a,o)}function dt(e,t,n,i,a,o,s,r){at(e,t,a,1,8,o,s,r),at(n,i,a,1,8,o,s,r)}function ut(e,t,n,i,a,o,s,r){at(e,t,1,a,8,o,s,r),at(n,i,1,a,8,o,s,r)}function pt(e,t,n,i,a,o,s,r){ot(e,t+4*a,a,1,8,o,s,r),ot(n,i+4*a,a,1,8,o,s,r)}function mt(e,t,n,i,a,o,s,r){ot(e,t+4,1,a,8,o,s,r),ot(n,i+4,1,a,8,o,s,r)}function ht(e,t){return t==Zi?0==e.i?0==e.d?ia:na:0==e.d?ta:Zi:t}function gt(e,t,n,a){for(i=0;4>i;++i)e[t+i]=n[a+i]}function ft(e,t){return 0>e?0:e>t?t:e}function _t(e){e.a="VP8_STATUS_OK",e.xc="OK"}function vt(e){e>>>8!=Ln>>>8&&alert("mismatch error")}function yt(e,t,n){return e.a==ei&&(e.a=t,e.xc=n,e.za=0),alert(t+": "+n),0}function bt(t,n){var a=[0],o=f,s=[b],r=e(_a),l=e(va),c=e(mi),s="VP8StatusCode",r=e(pi);if(t==h)return alert("(dec == null)"),0;if(_t(t),n==h)return yt(t,"VP8_STATUS_INVALID_PARAM","null VP8Io passed to VP8GetHeaders()");if(r.data=n.data,r.b=n.b,r.e=n.e,r.b=[r.b],r.e=[r.e],r=[r],s=Pn(r),s!=ei)return yt(t,s,"Incorrect/incomplete header.");if(r=r[0],r.b=r.b[0],r.e=r.e[0],r.ia)return yt(t,ii,"Unexpected lossless format encountered.");if(t.Ga==h&&(p(0==t.ub),t.Ga=r.$,t.G=r.G,t.ub=r.pa),o=r.data,a=r.b+r.offset,s=r.e-r.offset,p(r.e>=r.offset),4>s[0])return yt(t,ri,"Truncated header.");if(c=o[a+0]|o[a+1]<<8|o[a+2]<<16,r=t.Ac,r.fb=!(1&c)+0,r.Jc=c>>1&7,r.Nc=c>>4&1,r.Ra=c>>5,3s)return yt(t,"VP8_STATUS_NOT_ENOUGH_DATA","cannot parse picture header");if(!(s>=3&&157==o[a+0]&&1==o[a+1]&&42==o[a+2]))return yt(t,"VP8_STATUS_BITSTREAM_ERROR","Bad code word");for(l.l=16383&(o[a+4]<<8|o[a+3]),l.gd=o[a+4]>>6,l.v=16383&(o[a+6]<<8|o[a+5]),l.hd=o[a+6]>>6,a+=7,s-=7,t.Ma=l.l+15>>4,t.hb=l.v+15>>4,n.width=l.l,n.height=l.v,n.I=0,n.Ua=0,n.k=0,n.t=0,n.Ka=n.width,n.K=n.height,n.m=n.width,n.h=n.height,c=t.R,i=0;is)return yt(t,"VP8_STATUS_NOT_ENOUGH_DATA","bad partition length");c=t.o,S(c,o,a,a+r.Ra),a+=r.Ra,s-=r.Ra,r.fb&&(l.uc=k(c),l.$c=k(c));var l=c,d=t.Ca,u=t.R;if(p(l!=h),p(d!=h),d.pb=k(l),d.pb){if(d.ob=k(l),k(l)){var m;for(d.tb=k(l),m=0;oa>m;++m)d.Kb[m]=k(l)?M(l,7):0;for(m=0;oa>m;++m)d.Cb[m]=k(l)?M(l,6):0}if(d.ob)for(m=0;aa>m;++m)u.Ta[m]=k(l)?C(l,8):255}else d.ob=0;if(l.Ab)return yt(t,"VP8_STATUS_BITSTREAM_ERROR","cannot parse segment header");if(l=c,d=t.ga,d.Oc=k(l),d.Fb=C(l,6),d.kb=C(l,3),d.oc=k(l),d.oc&&k(l)){for(u=0;sa>u;++u)k(l)&&(d.Lc[u]=M(l,6));for(u=0;ra>u;++u)k(l)&&(d.Gc[u]=M(l,6))}if(t.A=0==d.Fb?0:d.Oc?1:2,0u;++u)m=t.Ca.Cb[u],t.Ca.tb||(m+=d.Fb),t.Zb[u]=m;else t.Zb[0]=d.Fb;if(l.Ab)return yt(t,"VP8_STATUS_BITSTREAM_ERROR","cannot parse filter header");var l=o,_=a,d=_,s=_+s;m=0;var v=g,y=g;if(t.Hb=1<s)s="VP8_STATUS_NOT_ENOUGH_DATA";else{for(y=0;v>y;++y){var _=u,w=m+(l[d+0]|l[d+1]<<8|l[d+2]<<16);w>s&&(_=l),S(t.ic[+y],u,m,w),u=_,m=w,d+=3}S(t.ic[+v],u,m,s),s=s>m?"VP8_STATUS_OK":"VP8_STATUS_SUSPENDED"}if("VP8_STATUS_OK"!=s)return yt(t,"VP8_STATUS_BITSTREAM_ERROR","cannot parse partitions");for(v=t.o,s=C(v,7),l=k(v)?M(v,4):0,d=k(v)?M(v,4):0,u=k(v)?M(v,4):0,m=k(v)?M(v,4):0,v=k(v)?M(v,4):0,y=t.Ca,_=g,_=0;oa>_;++_){if(w=g,y.pb)w=y.Kb[_],y.tb||(w+=s);else{if(_>0){t.yb[_]=t.yb[0];continue}w=s}var x=t.yb[_];x.sc[0]=_o[ft(w+l,127)],x.sc[1]=vo[ft(w+0,127)],x.sb[0]=2*_o[ft(w+d,127)],x.sb[1]=101581*vo[ft(w+u,127)]>>16,8>x.sb[1]&&(x.sb[1]=8),x.qc[0]=_o[ft(w+m,117)],x.qc[1]=vo[ft(w+v,127)]}if(!r.fb)return yt(t,ai,"Not a key frame.");for(t.Zc=259,k(c),s=t.R,l=0;la>l;++l)for(d=0;ca>d;++d)for(u=0;da>u;++u)for(m=0;ua>m;++m)$(c,ko[l][d][u][m])&&(s.z[l][d][u][m]=C(c,8));if(t.pc=k(c),t.pc&&(t.Pc=C(c,8)),t.P.uc){if(a-=8,c=b,8>r.Ra||1!=o[a+8-1])return yt(t,ii,"RIFF: Inconsistent extra information.");c=o[a+0]<<0|o[a+1]<<8|o[a+2]<<16,t.fc=c,t.dd=h,t.cd=o[a+3]}return t.za=1}function wt(e,t,n,i,a,o){var s=t[a][n];if(!$(e,s[0]))return 0;for(;;){if(++a,$(e,s[1])){var r;if($(e,s[2])){if($(e,s[3]))if($(e,s[6])){r=f,n=$(e,s[8]),s=$(e,s[9+n]),s=2*n+s,n=0,r=So[s];var l;for(l=0;l0)+0],16==a||!$(e,s[0]))return a}else s=t[$o[a]][0];if(16==a)return 16}}function kt(e,t){return((16777216*e[0]+65536*e[1]+256*e[2]+1*e[3])*Ao&4278190080)>>t}function $t(e,s){var l=0;if(e==h)return 0;if(s==h)return yt(e,"VP8_STATUS_INVALID_PARAM","NULL VP8Io parameter in VP8Decode().");if(!e.za&&!bt(e,s))return 0;p(e.za);var d;if(s.Mb&&!s.Mb(s))yt(e,si,"Frame setup failed"),d=e.a;else{s.Za&&(e.A=0);var u=mo[e.A];2==e.A?(e.lb=0,e.mb=0):(e.lb=s.t-u>>4,e.mb=s.k-u>>4,0>e.lb&&(e.lb=0),0>e.mb&&(e.mb=0)),e.Ya=s.K+15+u>>4,e.wb=s.Ka+15+u>>4,e.wb>e.Ma&&(e.wb=e.Ma),e.Ya>e.hb&&(e.Ya=e.hb),d=ei}if(l=d==ei){if(l){var _;e:{if(e.Ja=0,e.qb){var v=e.rc;if(!WebPWorkerReset(v)){_=yt(e,ti,"thread initialization failed.");break e}v.Qd=e,v.Rd=e.oa.N,v.Ud=FinishRow,e.jb=0e.Gb){if(e.ib=0,e.Gb=0,e.ib==h){b=yt(e,"VP8_STATUS_OUT_OF_MEMORY","no memory during frame initialization.");break e}e.Gb=I}e.dc=205,e.Xc=o(205,16*k),e.Sc=o(205,8*k),e.Vc=o(205,8*k),e.M=x?a(ka,x):h,e.Sd=x?0:h,e.oa.ha=0,e.oa.M=e.M,p(0==(A&po)),e.Ea=o(205,1*A),e.z=-12851,e.H=16*k,e.r=8*k;var D=mo[e.A],P=D*e.H,N=D/2*e.r;e.ca=c(E,205),e.da=+P,e.aa=e.ca,e.ba=e.da+16*w*e.H+N,e.ra=e.aa,e.sa=e.ba+8*w*e.r+N,e.Xb=T?c(T,f):h,e.La=a($a,M),e.dc=o(Zi,S),b=1}}y=!b}if(y)l=0;else{if(s.width=e.P.l,s.height=e.P.v,s.w=0,s.y=e.ca,s.D=e.da,s.c=e.aa,s.B=e.ba,s.S=e.ra,s.C=e.sa,s.F=e.H,s.Da=e.r,s.p=h,s.q=h,!oo){var U;for(U=-255;255>=U;++U)eo[255+U]=0>U?-U:U,to[255+U]=eo[255+U]>>1;for(U=-1020;1020>=U;++U)no[1020+U]=-128>U?-128:U>127?127:U;for(U=-112;112>=U;++U)io[112+U]=-16>U?-16:U>15?15:U;for(U=-255;510>=U;++U)ao[255+U]=0>U?0:U>255?255:U;oo=1}La=H,Ba=z,Fa=V,qa=W,ja=st,Ha=rt,za=dt,Va=ut,Wa=lt,Ga=ct,Ka=pt,Ya=mt,Za=et,Xa=tt,Ja=nt,Qa=it,l=1}}if(l)e:{for(e.d=0;e.d=L.mb&&L.d<=L.Ya)+0,e.i=0;e.iat;++at){var ot,ft=X[at];for(ot=0;4>ot;++ot){var _t=wo[Z[Z[Z.length-1]+ot]][ft],vt=0;do vt=yo[2*vt+$(G,_t[vt])];while(vt>0);ft=-vt,Z[Z[Z.length-1]+ot]=ft,J[Q]=ft,Q++}X[at]=ft}else{var ft=$(G,156)?$(G,128)?ea:Qi:$(G,163)?Ji:Xi;for(q.Eb[0]=ft,vt=0;4>vt;++vt)Z[vt+Z[Z.length-1]]=ft;for(vt=0;4>vt;++vt)X[vt]=ft}if(q.Tc=$(G,142)?$(G,114)?$(G,183)?ea:Qi:Ji:Xi,G.Ab)F=0;else{if(Y.Nb)K.X=Y.X=0,q.wa||(K.ua=Y.ua=0),q.ja=0,q.Oa=0;else{var $t=m,Ct=m,Mt=m,xt=Mo,At=q.yb[q.Lb],Et=q.z,Tt=q.La[0],It=c(4,0),Dt=c(4,0),Pt=c(4,0),Nt=c(4,0),Ut=0,Ot=0,Rt=m,Lt=m,Bt=m,Et=o(0,384);if(q.wa)Mt=0,xt=q.R.z[3];else{var Ft=c(16,0),qt=Y.ua+Tt.ua;Y.ua=Tt.ua=(0Vt;++Vt){var Wt=jt[0+Vt]+jt[12+Vt],Gt=jt[4+Vt]+jt[8+Vt],Kt=jt[4+Vt]-jt[8+Vt],Yt=jt[0+Vt]-jt[12+Vt];zt[0+Vt]=Wt+Gt,zt[8+Vt]=Wt-Gt,zt[4+Vt]=Yt+Kt,zt[12+Vt]=Yt-Kt}for(Vt=0;4>Vt;++Vt){var Zt=Ht[Ht.length-1],Xt=zt[0+4*Vt]+3,Wt=Xt+zt[3+4*Vt],Gt=zt[1+4*Vt]+zt[2+4*Vt],Kt=zt[1+4*Vt]-zt[2+4*Vt],Yt=Xt-zt[3+4*Vt];Ht[Zt+0]=Wt+Gt>>3,Ht[Zt+16]=Yt+Kt>>3,Ht[Zt+32]=Wt-Gt>>3,Ht[Zt+48]=Yt-Kt>>3,Ht[Ht.length-1]+=64}Et[Et.length-1]=0}for(Pt=n(xo[15&Y.X]),Nt=n(xo[15&Tt.X]),Lt=0;4>Lt;++Lt){for(var Jt=Nt[Lt],Rt=0;4>Rt;++Rt){var qt=Jt+Pt[Rt],Qt=wt(j,xt,qt,At.sc,Mt,Et);Pt[Rt]=Jt=(Qt>0)+0,Dt[Rt]=(0!=Et[Et[Et.length-1]+0])+0,It[Rt]=(Qt>1)+0,Et[Et.length-1]+=16}Nt[Lt]=Jt,Ot|=kt(Dt,24-4*Lt),Ut|=kt(It,24-4*Lt)}for($t=kt(Pt,24),Ct=kt(Nt,24),Pt=n(xo[Y.X>>4]),Nt=n(xo[Tt.X>>4]),Bt=0;4>Bt;Bt+=2){for(Lt=0;2>Lt;++Lt){for(Jt=Nt[Bt+Lt],Rt=0;2>Rt;++Rt)qt=Jt+Pt[Bt+Rt],Qt=wt(j,q.R.z[2],qt,At.qc,0,Et),Pt[Bt+Rt]=Jt=(Qt>0)+0,Dt[2*Lt+Rt]=(0!=Et[Et[Et.length-1]+0])+0,It[2*Lt+Rt]=(Qt>1)+0,Et[Et.length-1]+=16;Nt[Bt+Lt]=Jt}Ot|=kt(Dt,8-2*Bt),Ut|=kt(It,8-2*Bt)}$t|=kt(Pt,20),Ct|=kt(Nt,20),Y.X=$t,Tt.X=Ct,q.z=Et,q.Oa=Ut+0,q.ja=Ut|Ot,Y.Nb=!q.ja+0}F=!j.Ab}if(!F){l=yt(e,"VP8_STATUS_NOT_ENOUGH_DATA","Premature end-of-file encountered."+e.i+" "+e.d);break e}var en=e,tn=en.Ea,nn=ha,an=en.Ea,on=ga,sn=en.Ea,rn=fa;if(0ln;++ln)gt(tn,nn+ln*pa-4,tn,nn+ln*pa+12);for(ln=-1;8>ln;++ln)gt(an,on+ln*pa-4,an,on+ln*pa+4),gt(sn,rn+ln*pa-4,sn,rn+ln*pa+4)}else{for(ln=0;16>ln;++ln)tn[nn+ln*pa-1]=129;for(ln=0;8>ln;++ln)an[on+ln*pa-1]=129,sn[rn+ln*pa-1]=129;0i;++i)tn[nn-pa-1+i]=127;for(i=0;9>i;++i)an[on-pa-1+i]=127;for(i=0;9>i;++i)sn[rn-pa-1+i]=127}if(en.wa){var _n=nn-pa+16;0=en.Ma-1?tn[_n+0]=tn[_n+1]=tn[_n+2]=tn[_n+3]=cn[dn+15]:t(tn,_n+0,cn,dn+16,4));for(var vn=0;4>vn;++vn)tn[vn+_n+4*pa]=tn[vn+_n+4*pa]=tn[vn+_n+8*pa]=tn[vn+_n+12*pa]=tn[vn+_n+0];for(fn=0;16>fn;fn++){var yn=tn,bn=nn+fo[fn];lo[en.Eb[fn]](yn,bn),en.Oa&1<fn;fn++)yn=tn,bn=nn+fo[fn],en.Oa&1<An?0:An>63?63:An,Mn.zc=An,0>2:An>>1,An>9-Cn.ga.kb&&(An=9-Cn.ga.kb)),Mn.yc=1>An?1:An,Mn.ab=(!xn||Cn.wa)+0}for(var En=m,Tn=8*Cn.Ja*Cn.r,In=Cn.ca,Dn=Cn.da+16*Cn.i+16*Cn.Ja*Cn.H,Pn=Cn.aa,Nn=Cn.ba+8*Cn.i+Tn,Un=Cn.ra,On=Cn.sa+8*Cn.i+Tn,En=0;16>En;++En)t(In,Dn+En*Cn.H,Cn.Ea,+ha+En*pa,16);for(En=0;8>En;++En)t(Pn,Nn+En*Cn.r,Cn.Ea,+ga+En*pa,8),t(Un,On+En*Cn.r,Cn.Ea,+fa+En*pa,8)}var Rn=e,Ln=s,Bn=1,Fn=Rn.oa;if(Rn.qb){var qn=Rn.rc,Bn=Bn&WebPWorkerSync(qn);if(p(qn.a==OK),Bn){if(Fn.N=Ln,Fn.ha=Rn.Ja,Fn.d=Rn.d,Fn.W=Rn.W,Fn.W){var jn=Fn.M;Fn.M=Rn.M,Rn.M=jn}WebPWorkerLaunch(qn),++Rn.Ja==Rn.jb&&(Rn.Ja=0)}}else{Fn.d=Rn.d,Fn.W=Rn.W;t:{var Hn=1,zn=Rn.oa,Vn=mo[Rn.A],Wn=Vn*Rn.H,Gn=parseInt(Vn/2)*Rn.r,Kn=16*zn.ha*Rn.H,Yn=8*zn.ha*Rn.r,Zn=Rn.ca,Xn=Rn.da-Wn+Kn,Jn=Rn.aa,Qn=Rn.ba-Gn+Yn,ni=Rn.ra,ai=Rn.sa-Gn+Yn,oi=0==zn.d,ri=(zn.d>=Rn.hb-1)+0,li=16*zn.d,ci=16*(zn.d+1);if(zn.W){var di=Rn,ui=g,pi=di.oa.d;for(p(di.oa.W),ui=di.lb;ui0&&Xa(yi,bi,_i,$i+4),vi.ab&&Qa(yi,bi,_i,$i),gi>0&&Za(yi,bi,_i,$i+4),vi.ab&&Ja(yi,bi,_i,$i);else{var Si=mi.r,Ci=mi.aa,Mi=mi.ba+8*fi.ha*Si+8*hi,xi=mi.ra,Ai=mi.sa+8*fi.ha*Si+8*hi,Ei=mi.Ac.fb?wi>=40?2:wi>=15?1:0:wi>=40?3:wi>=20?2:wi>=15?1:0;hi>0&&(Ha(yi,bi,_i,$i+4,ki,Ei),Va(Ci,Mi,xi,Ai,Si,$i+4,ki,Ei)),vi.ab&&(Ga(yi,bi,_i,$i,ki,Ei),Ya(Ci,Mi,xi,Ai,Si,$i,ki,Ei)),gi>0&&(ja(yi,bi,_i,$i+4,ki,Ei),za(Ci,Mi,xi,Ai,Si,$i+4,ki,Ei)),vi.ab&&(Wa(yi,bi,_i,$i,ki,Ei),Ka(Ci,Mi,xi,Ai,Si,$i,ki,Ei))}}}if(Ln.put){if(oi?(Ln.y=Rn.ca,Ln.D=Rn.da+Kn,Ln.c=Rn.aa,Ln.B=Rn.ba+Yn,Ln.S=Rn.ra,Ln.C=Rn.sa+Yn):(li-=Vn,Ln.y=Zn,Ln.D=Xn,Ln.c=Jn,Ln.B=Qn,Ln.S=ni,Ln.C=ai),ri||(ci-=Vn),ci>Ln.K&&(ci=Ln.K),Rn.Ga!=h&&ci>li&&(0==li?(Ln.p=R(Rn,li,ci-li),Ln.q=0):Ln.q=R(Rn,li,ci-li),Ln.p==h)){Bn=yt(Rn,ii,"Could not decode alpha data.");break t}if(li>1),Ln.C+=Rn.r*(Ti>>1),Ln.p!=h&&(Ln.q+=Ln.width*Ti)}ci>li&&(Ln.D+=Ln.t,Ln.B+=Ln.t>>1,Ln.C+=Ln.t>>1,Ln.p!=h&&(Ln.q+=Ln.t),Ln.w=li-Ln.k,Ln.m=Ln.Ka-Ln.t,Ln.h=ci-li,Hn=Ln.put(Ln))}zn.ha+1==Rn.jb&&!ri&&(t(Rn.ca,Rn.da-Wn,Zn,Xn+16*Rn.H,Wn),t(Rn.aa,Rn.ba-Gn,Jn,Qn+8*Rn.r,Gn),t(Rn.ra,Rn.sa-Gn,ni,ai+8*Rn.r,Gn)),Bn=Hn}}if(!Bn){l=yt(e,"VP8_STATUS_USER_ABORT","Output aborted.");break e}}var Ii;if(!(Ii=e.qb&&!WebPWorkerSync(e.rc))){var Di;(Di=0>t}function Mt(e,t,n,i,a){var o=Jo[n]+Qo[t]>>Eo;t=Xo[t],i[a+0]=es[e+Zo[n]-To],i[a+1]=es[e+o-To],i[a+2]=es[e+t-To]}function xt(e,t,n,i,a){var o=Jo[n]+Qo[t]>>Eo;t=Xo[t],i[a+0]=248&es[e+Zo[n]-To]|es[e+o-To]>>5,i[a+1]=es[e+o-To]<<3&224|es[e+t-To]>>3}function At(e,t,n,i,a){i[a+0]=255,Mt(e,t,n,i,a+1)}function Et(e,t,n,i,a){var o=Xo[t];i[a+0]=ts[e+Zo[n]-To]<<4|ts[e+(Jo[n]+Qo[t]>>Eo)-To],i[a+1]=15|ts[e+o-To]<<4}function Tt(e,t,n,i,a){var o=Zo[n];n=Jo[n]+Qo[t]>>Eo,i[a+0]=es[e+Xo[t]-To],i[a+1]=es[e+n-To],i[a+2]=es[e+o-To]}function It(e,t,n,i,a){Tt(e,t,n,i,a),i[a+3]=255}function Dt(e,t,n,i,a){Mt(e,t,n,i,a),i[a+3]=255}function Pt(e,t,n){e[t]=((((4278255360&e[t])>>>0)+((4278255360&n)>>>0)&4278255360)>>>0|(16711935&e[t])+(16711935&n)&16711935)>>>0 }function Nt(e,t){return((4278124286&(e^t))>>>1)+((e&t)>>>0)>>>0}function Ut(e){return 256>e&&e>0?e:0>=e?0:~e>>24&255}function Ot(e,t){return Ut(e+parseInt((e-t)/2,10))}function Rt(){return Si}function Lt(e,t){return e&=255,t&=255,e>127&&(e-=256),t>127&&(t-=256),e*t>>>5}function Bt(e,t,n,i,a,o,s){var r=g,l=8>>e.n,c=e.U,d=e.u;if(8>l){e=(1<r;++r){t=0;for(var p=g,p=0;c>p;++p)0==(p&e)&&(t=i[a++]>>8&255),o[s++]=d[t&u],t>>=l}}else for(r=t;n>r;++r)for(p=0;c>p;++p)o[s++]=d[i[a++]>>8&255]}function Ft(e,t,n,i,a){for(n=t+n;n>t;){var o=e[t++];i[a++]=o>>16&255,i[a++]=o>>8&255,i[a++]=o>>0&255,i[a++]=o>>24&255}}function qt(e,t,n,i,a){for(n=t+n;n>t;){var o=e[t++];i[a++]=o>>16&240|o>>12&15,i[a++]=o>>0&240|o>>28&15}}function jt(e,t,n,i,a){for(n=t+n;n>t;){var o=e[t++];i[a++]=o>>24&255,i[a++]=o>>16&255,i[a++]=o>>8&255,i[a++]=o>>0&255}}function Ht(e,t,n,i){return T(e,8)!=vi?0:(t[0]=T(e,yi)+1,n[0]=T(e,yi)+1,i[0]=T(e,1),T(e,bi),1)}function zt(e,t){var n=g;return 4>e?e+1:(n=e-2>>1,(2+(1&e)<t.ya){var n=e.Y,i=0;for(p(n!=h);0!=n[i].s;){var a=n,o=t,s=o.T>>o.g&1;o.L?o.fa=1:(++o.g,8<=o.g&&A(o),o.Q==o.ya&&32==o.g&&(o.L=1)),i=i+a[i].s+s}return n[i].kc}for(n=e.Y,i=0,p(n!=h);0!=n[i].s;)a=n,o=t.T>>t.g&1,++t.g,i=i+a[i].s+o;return n[i].kc}function Wt(e,t){if(e!=h)for(var n=g,i=g,n=0;t>n;++n)for(var a=e[n].va,i=0;$i>i;++i)P(a[i])}function Gt(e,t,n){return t=0==e.eb?0:e.ac[e.bd+e.Ec*(n>>e.eb)+(t>>e.eb)],p(tm),p(f<=i.Vb),i.Qc){case Di:for(_=0,i=d+(f-m)*i.U;i>d;){var f=u,y=d,b=f[y]>>8&255,w=(16711935&f[y])>>>0,w=w+(b<<16|b),w=16711935&w;u[d++]=((4278255360&f[y])>>>0|w)>>>0,32==m&&_++}break;case Ti:var k=i,$=m,_=f,y=u,b=d,w=k.U;if(0==$){var S=g;for(Pt(y,b,Si),S=1;w>S;++S)Pt(y,b+S,y[b+S-1]);b+=w,++$}for(var C=(1<>k.n)*M;_>$;){var A=x,E=k,T=h;for(Pt(y,b,y[b-w+0]),T=Do[A[E++]>>8&15],S=1;w>S;++S){var I=v;0==(S&C)&&(T=Do[A[E++]>>8&15]),I=T(y[b+S-1],y,b+S-w),Pt(y,b+S,I)}b+=w,++$,0==($&C)&&(k+=M)}f!=i.Vb&&(i=i.U,t(u,d-i,u,d+(f-m-1)*i,i));break;case Ii:for(_=i.U,y=(1<>i.n)*b;f>m;){for(S=w,$=i,C=e(Po),M=g,M=0;_>M;++M)0==(M&y)&&(x=S[$++],k=C,k.Cc=x>>0&255,k.Bc=x>>8&255,k.Kc=x>>16&255),x=u[d+M],k=x>>>8,A=x>>>16,E=x,A+=Lt(C.Cc,k),A&=255,E+=Lt(C.Bc,k),E+=Lt(C.Kc,A),E&=255,u[d+M]=(4278255360&x|A<<16|E)>>>0;d+=_,++m,0==(m&y)&&(i+=b)}break;case Pi:_==u&&0=a)){Kt(e,a,n,i);var o=e.N,n=e.Xa,s=[e.vb],i=e.O,a=t,r=s,l=o.width;if(p(a>i),p(o.to.K&&(a=o.K),i=a?i=0:(r[0]+=o.t,o.w=i-o.k,o.m=o.Ka-o.t,o.h=a-i,i=1),i){if(s=s[0],i=e.Ib,a=o.width,i.Jg;){var y=h[g++];_[v++]=y>>16&255,_[v++]=y>>8&255,_[v++]=y>>0&255}break;case Fn:Ft(h,g,f,_,v);break;case Wn:Ft(h,g,f,_,v),WebPApplyAlphaMultiply(_,0,f,1,0);break;case qn:for(f=g+f;f>g;)y=h[g++],_[v++]=y>>0&255,_[v++]=y>>8&255,_[v++]=y>>16&255;break;case jn:jt(h,g,f,_,v);break;case Gn:jt(h,g,f,_,v),WebPApplyAlphaMultiply(_,0,f,1,0);break;case Hn:jt(h,g,f,_,v);break;case Kn:jt(h,g,f,_,v),WebPApplyAlphaMultiply(_,1,f,1,0);break;case zn:qt(h,g,f,_,v);break;case Yn:qt(h,g,f,_,v),WebPApplyAlphaMultiply4444(_,f,1,0);break;case Vn:for(f=g+f;f>g;)y=h[g++],_[v++]=y>>16&248|y>>13&7,_[v++]=y>>5&224|y>>3&31;break;default:p(0)}s+=a,u+=d}n=o}e.xa+=n}else e.xa=o.I?EmitRescaledRowsYUVA(e,n,s,a,o.h):EmitRowsYUVA(e,n,s,a,o.m,o.h);p(e.xa<=i.height)}e.O=t,p(e.O<=e.v)}}function Zt(e,t,n,i,a,o){var s=1,r=0,l=0,c=e.o,d=e.cb,u=d.Db,m=n,f=n;n+=i*a,a=xi+Ai;var _=a+d.xb,v=0m;){var w=g;if(b||(0==(r&y)&&(u=Gt(d,r,l)),E(c),w=Vt(u.va[Bo],c)),xi>w||b){if(!b){var k=s=b=g,$=g;E(c),b=Vt(u.va[Fo],c),s=w,E(c),k=Vt(u.va[qo],c),E(c),$=Vt(u.va[jo],c),t[m]=($<<24>>>0)+(b<<16)+(s<<8)+k}if(b=!1,++m,++r,r>=i&&(r=0,++l,o!=h&&0==l%No&&o(e,l),v!=h))for(;m>f;)s=t[f++],v.ea[Yi*s>>>v.bb]=s}else if(a>w){for(k=k=g,s=zt(w-xi,c),w=Vt(u.va[Ho],c),E(c),k=zt(w,c),k>Go?k-=Go:(w=Ko[k-1],w=(w>>4)*i+(8-(15&w)),k=w>=1?w:1),w=g,w=0;s>w;++w)t[m+w]=t[m+w-k];for(m+=s,r+=s;r>=i;)r-=i,++l,o!=h&&0==l%No&&o(e,l);if(n>m&&(u=Gt(d,r,l),v!=h))for(;m>f;)s=t[f++],v.ea[Yi*s>>>v.bb]=s}else if(_>w){for(b=w-a,p(v!=h);m>f;)w=t[f++],v.ea[Yi*w>>>v.bb]=w;w=t,k=m,$=v,p(b<=-1>>>$.bb),w[k]=$.ea[b],b=!0;continue e}(s=!c.fa)||End}return o!=h&&o(e,l),c.fa||!s||c.L&&n>m?(s=0,e.a=c.L?oi:ii):m==n&&(e.Ob=Aa),s}function Xt(e){p(e),e.ac=h,Wt(e.Db,e.hc);var t=e.Yb;t!=h&&(t.ea=h,t.ea=h),p(e)}function Jt(){var t=e(Na);return t==h?h:(t.a=ei,t.Wa=Ta,t.Ob=Ta,t)}function Qt(e){var t=g;if(e!=h){for(Xt(e.cb),e.V=h,e.V=h,t=0;t16?0:_>4?1:_>2?2:3,f[0]=Ct(s.U,y),s.n=y,f=y=en(_,1,0,v,s.u))if(f=_,v=s,y=g,_=1<<(8>>>v.n)>>>0,b=Array(_),b==h)f=0;else{var w=v.u[0],k=v.b;for(b[0]=v.u[0][v.b+0],y=1;f>y;++y)b[y]=((((4278255360&w[k+y])>>>0)+((4278255360&b[y-1])>>>0)&4278255360)>>>0|(16711935&w[k+y])+(16711935&b[y-1])&16711935)>>>0;for(;_>y;++y)b[y]=0;v.u[0]=h,v.b=h,v.u[0]=b,v.b=0,f=1}y=f;break;case Di:break;default:p(0)}s.u=s.u[0],s=y}}if(s&&T(r,1)&&(m=T(r,4),s=m>=1&&ki>=m,!s)){a.a=ii;break}if(s)e:{var s=a,$=t[0],S=n[0],f=m,k=w=g,k=s.o,v=s.cb,y=[h],_=h,b=1;if(i&&T(k,1)){var w=T(k,3)+2,$=Ct($,w),C=Ct(S,w),S=$*C;if(!en($,C,0,s,y)){s.a=ii,Wt(_,b),s=0;break e}for(y=y[0],v.eb=w,w=0;S>w;++w)$=y[w]>>>8&65535,y[w]=$,$>=b&&(b=$+1)}if(k.fa)Wt(_,b),s=0;else if(p(65536>=b),_=d(b,Da),_==h)s.a=ti,Wt(_,b),s=0;else{for(w=0;b>w;++w)for(S=_[w].va,k=0;$i>k;++k){$=zo[k],0==k&&f>0&&($+=1<F;++F)if(R[F]!=Gi){if(0>O[F]||O[F]>=M){(B=B&&I(x))||P(x),A=B;break n}if(!N(x,O[F],R[F],L[F])){(B=B&&I(x))||P(x),A=B;break n}}(B=(B=1)&&I(x))||P(x),A=B}else A=0}}else{if(A=g,R=[],O=T(C,4)+4,O>Vo){$.a=ii,$=0;break t}if(L=Array(M),L==h){$.a=ti,$=0;break t}for(A=0;O>A;++A)R[Wo[A]]=T(C,3);n:{var A=$,q=R,R=M,O=L,B=0,F=A.o,j=g,H=g,z=Ci,V=e(Wi);if(U(V,q,Vo)){if(T(F,1)){if(j=2+2*T(F,3),H=2+T(F,j),H>R){A.a=ii,P(V),A=B;break n}}else H=R;for(j=0;R>j;){var W=g;if(0==H--)break;if(E(F),W=Vt(V,F),Uo>W)O[j++]=W,0!=W&&(z=W);else{var q=W==Oo,W=W-Uo,G=Lo[W],W=T(F,Ro[W])+G;if(j+W>R){A.a=ii,P(V),A=B;break n}for(q=q?z:0;00){if(l.xb=1<0),f.ea=c(v,0),f.ea==h?m=0:(f.bb=32-m,m=1),!m){a.a=ti,s=0;break}}else l.xb=0;if(m=a,f=t[0],v=n[0],y=m.cb,_=y.eb,m.l=f,m.v=v,y.Ec=Ct(f,_),y.Dc=0==_?-1:(1<<_)-1,i){a.Ob=Ea;break}if(u=Array(t*n),m=0,u==h){a.a=ti,s=0;break}s=(s=Zt(a,u,m,t,n,h))&&!r.fa;break}return s?(o!=h?o[0]=u:(p(u==h),p(i)),i||Xt(l)):(Xt(l),a.a==ii&&a.o.L&&(a.a=oi)),s}function tn(e,t){var n=e.l*e.v,i=n+t+t*No;return p(e.l<=t),e.V=Array(i),e.Ha=0,e.V==h?(e.Xa=h,e.a=ti,0):(e.Xa=e.V,e.vb=e.Ha+n+t,1)}function nn(e,t){var n=t-e.O,i=e.V,a=e.Ha+e.l*e.O;if(!(0>=n)){Kt(e,n,i,a);for(var a=e.N.width,n=a*n,i=e.N.ka,a=e.N.fd+a*e.O,o=e.Xa,s=e.vb,r=g,r=0;n>r;++r)i[a+r]=o[s+r]>>>8&255;e.O=e.xa=t}}function an(e,t){var n=[g],i=[g],a=[g];return e==h?0:t==h?(e.a=ni,0):(e.N=t,e.a=ei,x(e.o,t.data,t.b,t.e),Ht(e.o,n,i,a)?(e.Ob=Ta,t.width=n[0],t.height=i[0],e.Wa=Ea,en(n[0],i[0],1,e,h)?1:(Qt(e),p(e.a!=ei),0)):(e.a=ii,Qt(e),p(e.a!=ei),0))}function on(e){var t=h,n=h;return e==h?0:(t=e.N,p(t!=h),n=t.ka,p(n!=h),e.Ib=n.j,e.Hc=n.Hc,p(e.Ib!=h),Rn(n.Qa,t,jn)?!tn(e,t.width)||t.I&&!AllocateAndInitRescaler(e,t)?(Qt(e),p(e.a!=ei),0):(e.Wa=Aa,Zt(e,e.V,e.Ha,e.l,e.v,Yt)?(n.ec=e.xa,Qt(e),1):(Qt(e),p(e.a!=ei),0)):(e.a=ni,Qt(e),p(e.a!=ei),0))}function ft(e,t){return 0>e?0:e>t?t:e}function sn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f,_,v){var y,b=f-1>>1,w=a[o+0]|s[r+0]<<16,k=l[c+0]|d[u+0]<<16;if(e){var $=3*w+k+131074>>2;_(e[t+0],255&$,$>>16,p,m)}for(n&&($=3*k+w+131074>>2,_(n[i+0],255&$,$>>16,h,g)),y=1;b>=y;++y){var S=a[o+y]|s[r+y]<<16,C=l[c+y]|d[u+y]<<16,$=w+S+k+C+524296,M=$+2*(S+k)>>3,x=$+2*(w+C)>>3;e&&($=M+w>>1,w=x+S>>1,_(e[t+2*y-1],255&$,$>>16,p,m+(2*y-1)*v),_(e[t+2*y-0],255&w,w>>16,p,m+(2*y-0)*v)),n&&($=x+k>>1,w=M+C>>1,_(n[i+2*y-1],255&$,$>>16,h,g+(2*y-1)*v),_(n[i+2*y+0],255&w,w>>16,h,g+(2*y+0)*v)),w=S,k=C}1&f||(e&&($=3*w+k+131074>>2,_(e[t+f-1],255&$,$>>16,p,m+(f-1)*v)),n&&($=3*k+w+131074>>2,_(n[i+f-1],255&$,$>>16,h,g+(f-1)*v)))}function rn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f){sn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f,Mt,3)}function ln(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f){sn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f,Tt,3)}function cn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f){sn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f,Dt,4)}function dn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f){sn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f,It,4)}function un(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f){sn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f,At,4)}function pn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f){sn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f,Et,2)}function mn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f){sn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f,xt,2)}function hn(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h){var g;for(g=0;p-1>g;g+=2)m(e[t+0],a[o+0],s[r+0],l,c),m(e[t+1],a[o+0],s[r+0],l,c+h),m(n[i+0],a[o+0],s[r+0],d,u),m(n[i+1],a[o+0],s[r+0],d,u+h),t+=2,i+=2,o++,r++,c+=2*h,u+=2*h;g==p-1&&(m(e[t+0],a[o+0],s[r+0],l,c),m(n[i+0],a[o+0],s[r+0],d,u))}function gn(e,t,n,i,a,o,s,r,l,c,d,u,p){hn(e,t,n,i,a,o,s,r,l,c,d,u,p,Dt,4)}function fn(e,t,n,i,a,o,s,r,l,c,d,u,p){hn(e,t,n,i,a,o,s,r,l,c,d,u,p,It,4)}function _n(e,t,n,i,a,o,s,r,l,c,d,u,p){hn(e,t,n,i,a,o,s,r,l,c,d,u,p,At,4)}function vn(e,t,n,i,a,o,s,r,l,c,d,u,p){hn(e,t,n,i,a,o,s,r,l,c,d,u,p,Et,2)}function yn(e,t,n,i,a,o){for(;0d;++d){var u=l[c+4*d];if(255!=u){var u=32897*u,p=s,h=r+4*d+0;s[r+4*d+0]*u>>>23,p[h]=m,p=s,h=r+4*d+1,s[r+4*d+1]*u>>>23,p[h]=m,p=s,h=r+4*d+2,s[r+4*d+2]*u>>>23,p[h]=m}}t+=o}}function bn(e,n){var i,a=n.j.c.Va,o=a.y,s=a.D+e.w*a.F,r=a.c,l=a.B+(e.w>>1)*a.nb,c=a.S,d=a.C+(e.w>>1)*a.rb,u=e.m,p=e.h,m=parseInt((u+1)/2,10),h=parseInt((p+1)/2,10);for(i=0;p>i;++i)t(o,s+i*a.F,e.y,e.D+i*e.F,u);for(i=0;h>i;++i)t(r,l+i*a.nb,e.c,e.B+i*e.Da,m),t(c,d+i*a.rb,e.S,e.C+i*e.Da,m);return e.h}function wn(e,t){var n,i=t.j,a=i.c.RGBA,o=a.ma,s=a.Sa+e.w*a.f,r=e.y,l=e.D,c=e.c,d=e.B,u=e.S,p=e.C,i=as[i.J],m=e.m,h=e.h-1;for(n=0;h>n;n+=2)i(r,l,r,l+e.F,c,d,u,p,o,s,o,s+a.f,m),l+=2*e.F,d+=e.Da,p+=e.Da,s+=2*a.f;return n==h&&i(r,l,r,l,c,d,u,p,o,s,o,s,m),e.h}function kn(e,n){var i=e.h,a=n.j.c.RGBA,o=a.ma,s=a.Sa+e.w*a.f,r=is[n.j.J],l=e.y,c=e.D,d=e.c,u=e.B,p=e.S,m=e.C,g=n.Qb,f=n.Rb,_=n.lc,v=n.mc,y=e.w,b=e.w+e.h,w=e.m,k=parseInt((w+1)/2,10);for(0==y?r(h,h,l,c,d,u,p,m,d,u,p,m,h,h,o,s,w):(r(n.Sb,n.Tb,l,c,g,f,_,v,d,u,p,m,o,s-a.f,o,s,w),++i);b>y+2;y+=2)g=d,f=u,_=p,v=m,u+=e.Da,m+=e.Da,s+=2*a.f,c+=2*e.F,r(l,c-e.F,l,c,g,f,_,v,d,u,p,m,o,s-a.f,o,s,w);return c+=e.F,e.k+bu;++u)t(c,d,i,a,1*s),a+=e.width,d+=o.Fa;else if(o.p!=h)for(u=0;l>u;++u)r(c,d,255,s),d+=o.Fa;return 0}function Sn(e,t,n){var i=e.w;return n[0]=e.h,e.Bb&&(0==i?--n[0]:(--i,t[0]-=e.width),e.k+e.w+e.h==e.K&&(n[0]=e.K-e.k-i)),i}function Cn(e,t){var n=e.p,i=[e.q];if(n!=h){for(var a=e.m,o=t.j.J,s=o==Hn||o==Kn,r=t.j.c.RGBA,l=[g],c=Sn(e,i,l),i=i[0],d=r.ma,c=r.Sa+c*r.f,u=c+(s?0:3),p=255,m=g,f=g,f=0;fm;++m){var _=n[i+m];d[u+4*m]=_,p&=_}i+=e.width,u+=r.f}255!=p&&w(o)&&WebPApplyAlphaMultiply(d,c,s,a,l,r.f)}return 0}function Mn(e,t){var n=e.p,i=[e.q];if(n!=h){var a=e.m,o=t.j.J,s=t.j.c.RGBA,r=[g],l=Sn(e,i,r),i=i[0],c=s.ma,l=s.Sa+l*s.f,d=l+1,u=15,p=g;for(j=0;jp;++p){var m=n[i+p]>>4;c[d+2*p]=240&c[d+2*p]|m,u&=m}i+=e.width,d+=s.f}15!=u&&w(o)&&WebPApplyAlphaMultiply4444(c,l,a,r,s.f)}return 0}function xn(e){var t=e.ka,n=t.j.J,i=Zn>n,a=n==Fn||n==jn||n==Hn||n==zn||n==Xn||w(n);if(t.memory=h,t.$a=h,t.zb=h,t.ad=h,!Rn(t.Qa,e,a?Zn:Xn))return 0;if(e.I){if(!(i?InitRGBRescaler(e,t):InitYUVRescaler(e,t)))return alert("memory error #1"),0}else{if(i){if(t.$a=wn,e.Bb){var o,s=e.m+1>>1,r=e.m+2*s,l=[];for(o=0;r>o;++o)l.push(205);if(l.push(0),t.memory=l,t.memory==h)return alert("memory error #2"),0;t.Sb=t.memory,t.Tb=0,t.Qb=t.Sb,t.Rb=t.Tb+e.m,t.lc=t.Qb,t.mc=t.Rb+s,t.$a=kn,is[Bn]=rn,is[Fn]=cn,is[qn]=ln,is[jn]=dn,is[Hn]=un,is[zn]=pn,is[Vn]=mn}}else t.$a=bn;a&&(w(n)&&(WebPApplyAlphaMultiply=yn,is[Wn]=cn,is[Gn]=dn,is[Kn]=un,is[Yn]=pn),t.zb=n==zn||n==Yn?Mn:i?Cn:$n)}if(i&&!ns){for(e=0;256>e;++e)Zo[e]=89858*(e-128)+Yo>>Eo,Qo[e]=-22014*(e-128)+Yo,Jo[e]=-45773*(e-128),Xo[e]=113618*(e-128)+Yo>>Eo;for(e=To;Io>e;++e)t=76283*(e-16)+Yo>>Eo,es[e-To]=ft(t,255),ts[e-To]=ft(t+8>>4,15);ns=1}return 1}function An(e){var t=e.ka,n=e.m,i=e.h;return p(!(1&e.w)),0>=n||0>=i?0:(n=t.$a(e,t),t.ec+=n,t.zb&&t.zb(e,t),1)}function En(e){e=e.ka,e.memory="",e.memory=h}function Tn(e,t){return e[t+0]|e[t+1]<<8|e[t+2]<<16}function In(e,t){return(Tn(e,t)|e[t+3]<<24)>>>0}function Dn(t,n,i,a,o,s,r){var c=0,d=[0],u="VP8StatusCode",_=e(pi);if(t==h||i[0]=Fi&&!l(t,n[0],"RIFF",Li)){if(l(t,n[0]+8,"WEBP",Li)){u=ii;break e}var y=In(t,n[0]+Li);if(Li+Bi>y){u=ii;break e}c[0]=y,n[0]+=Fi,i[0]-=Fi}else c[0]=0;u=ei}if(_.na=_.na[0],u!=ei)return u;c=0<_.na,y=[0];e:if(u=Bi+qi,p(t!=h),p(i!=h),p(d!=h),d[0]=0,i[0]=Hi){u=ii;break e}y!=h&&(y[0]=$),a!=h&&(a[0]=w),o!=h&&(o[0]=k),n[0]+=u,i[0]-=u,d[0]=1}u=ei}if(u!=ei)return u;if(!c&&d[0])return ii;if(s!=h&&(s[0]=!!(y[0]&ji)),d&&r==h)return ei;if(Li>i)return ri;if(c&&d[0]||!c&&!d[0]&&!l(t,n[0],"ALPH",Li)){_.$=[_.$],_.G=[_.G],_.pa=[_.pa];e:{var d=_.na,c=_.$,y=_.G,u=_.pa,w=f,k=0,$=b,S=Li+Bi+qi;for(p(t!=h),p(i!=h),w=t,k=n[0],$=i[0],p(c!=h),p(u!=h),c[0]=h,y[0]=h,u[0]=0;;){var C=v,M=v;if(n[0]=k,i[0]=$,Bi>$){u=ri;break e}if(C=In(w,k+Li),M=Bi+C+1&-2,S+=M,d>0&&S>d){u=ii;break e}if(M>$){u=ri;break e}if(l(w,k,"ALPH",Li)){if(!l(w,k,"VP8 ",Li)||!l(w,"VP8L",Li)){u=ei;break e}}else c[0]=w,y[0]=k+Bi,u[0]=C;k+=M,$-=M}u=m}if(_.$=_.$[0],_.G=_.G[0],_.pa=_.pa[0],u!=ei)return u}_.ta=[_.ta],_.ia=[_.ia];e:if(d=_.na,c=_.ta,y=_.ia,k=!l(t,n[0],"VP8 ",Li),u=!l(t,n[0],"VP8L",Li),w=Li+Bi,p(t!=h),p(i!=h),p(c!=h),p(y!=h),i[0]=w&&k>d-w){u=ii;break e}c[0]=k,n[0]+=Bi,i[0]-=Bi,y[0]=u}else y[0]=i>=1&&t[n+0]==vi,c[0]=i[0];u=ei}if(_.ta=_.ta[0],_.ia=_.ia[0],u!=ei)return u;if(_.ta>zi)return ii;if(_.ia){if(i[0]c?t=0:(u=[g],w=[g],k=[g],$=e(hi),x($,t,d,c),Ht($,u,w,k)?(a!=h&&(a[0]=u[0]),o!=h&&(o[0]=w[0]),y!=h&&(y[0]=k[0]),t=1):t=0)}else{if(_i>i)return ri;d=n[0],c=i[0],a=a?a[0]:h,o=o?o[0]:h,!(t==h||_i>c)&&c-3>=3&&157==t[d+3+0]&&1==t[d+3+1]&&42==t[d+3+2]?(c=t[d+0]|t[d+1]<<8|t[d+2]<<16,y=16383&(t[d+7]<<8|t[d+6]),t=16383&(t[d+9]<<8|t[d+8]),!(!(1&c)+0)||(c>>1&7)>3||!(c>>4&1)||c>>5>=_.ta?t=0:(a&&(a[0]=y),o&&(o[0]=t),t=1)):t=0}return t?(s!=h&&(s[0]|=_.$!=h),r!=h&&(r[0]=_,r[0].offset=n[0]-r[0].b,p(n[0]-r[0].bt?l.c.RGBA.ma:l.c.Va.y):h}function On(e,t,n,i){return i==h||e==h?ni:(p(i!=h),i.tc=0,i.width=[i.width],i.height=[i.height],i.$b=[i.$b],Dn(e,t,n,i.width,i.height,i.$b,h))}function Rn(e,t,n){var i=t.width,a=t.height,o=0,s=0,r=i,l=a;if(t.Ua=e!=h&&0n||(o&=-2,s&=-2),0>o||0>s||0>=r||0>=l||o+r>i||s+l>a))return 0;if(t.t=o,t.k=s,t.Ka=o+r,t.K=s+l,t.m=r,t.h=l,t.I=e!=h&&0=e.Ba||0>=e.Aa)return 0;t.Ba=e.Ba,t.Aa=e.Aa}return t.Za=e&&e.Za,t.Bb=e==h||!e.ed,t.I&&(t.Za=t.Ba<3*i/4&&t.Aa<3*a/4,t.Bb=0),1}var Ln=512,Bn=0,Fn=1,qn=2,jn=3,Hn=4,zn=5,Vn=6,Wn=7,Gn=8,Kn=9,Yn=10,Zn=11,Xn=12,Jn=13;this.WEBP_CSP_MODE=this.Cd={nd:0,od:1,kd:2,ld:3,jd:4,pd:5,qd:6,rd:7,sd:8,md:9};var Qn={J:"WEBP_CSP_MODE",width:g,height:g,Fc:g,c:{RGBA:{ma:f,Sa:0,f:g,size:b},Va:{y:f,c:f,S:f,p:f,D:f,B:f,C:f,q:f,F:g,nb:g,rb:g,Fa:g,Wc:b,Rc:b,Uc:b,Wb:b}},Ic:c(4,v),Jb:h,jc:f},ei=0,ti=1,ni=2,ii=3,ai=4,oi=5,si=6,ri=7;this.VP8StatusCode=this.td={xd:0,yd:1,vd:2,ud:3,Ad:4,zd:5,Bd:6,wd:7};var li={width:{value:g},height:{value:g},$b:{value:g},tc:g,Yd:g,rotate:g,be:g,Ic:c(3,v)};this.WebPGetFeatures=this.Md=function(e,t,n){var i="VP8StatusCode";return Ln>>>8!=Ln>>>8||n==h?e=ni:(t=[t],i=On(e,[0],t,n),e=i==ri?ii:i),e};var ci={Za:g,ed:g,Ua:g,t:g,k:g,wc:g,vc:g,I:g,Ba:g,Aa:g,ae:g,Td:g,Xd:g,Ic:c(6,v)};this.WebPDecoderConfig=this.Kd={input:e(li),j:e(Qn),options:e(ci)},this.WebPInitDecoderConfig=this.Nd=function(e){return Ln>>>8!=Ln>>>8||e==h?e=0:(e=e.input,p(e!=h),e.tc=0,e=1),e};var di={width:g,height:g,w:g,m:g,h:g,y:f,c:f,S:f,D:0,B:0,C:0,F:g,Da:g,ka:0,put:0,Mb:0,Pb:0,Bb:g,e:b,data:f,b:0,Za:g,Ua:g,t:g,Ka:g,k:g,K:g,I:g,Ba:g,Aa:g,p:f,q:0},ui={j:e(Qn),Sb:f,Qb:f,lc:f,Tb:0,Rb:0,mc:0,ec:g,Qa:e(ci),memory:0,$a:"(OutputFunc)",zb:"(OutputFunc)",ad:"(OutputRowFunc)"},pi={data:f,b:f,e:b,offset:b,$:h,G:f,pa:b,ta:b,na:b,ia:g},mi={qa:f,Ia:h,Pd:f,Ab:g,la:v,Z:v,gc:g},hi={T:y,qa:f,Ia:f,ya:b,Q:b,g:g,L:g,fa:g},gi=25,fi=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215],_i=10,vi=47,yi=14,bi=3,wi=5,ki=11,$i=5,Si=4278190080,Ci=8,Mi=15,xi=256,Ai=24,Ei=4,Ti=0,Ii=1,Di=2,Pi=3,Ni=1,Ui=0,Oi=1,Ri=1,Li=4,Bi=8,Fi=12,qi=10,ji=16,Hi=1*Math.pow(2,32),zi=-1-Bi-1>>>0,Vi={kc:g,s:g},Wi={Y:"HuffmanTreeNode*",gb:g,Pa:g},Gi=-1,Ki={ea:v,bb:g},Yi=506832829,Zi=0,Xi=Zi,Ji=2,Qi=3,ea=1,ta=4,na=5,ia=6,aa=3,oa=4,sa=4,ra=4,la=4,ca=8,da=3,ua=11,pa=32,ma=17*pa+9*pa,ha=1*pa+8,ga=ha+16*pa+pa,fa=ga+16,_a={fb:f,Jc:f,Nc:f,Ra:v},va={l:0,v:0,gd:f,hd:f,uc:f,$c:f},ya={pb:g,ob:g,tb:g,Kb:c(oa,0),Cb:c(oa,0)},ba={Ta:c(aa,f),z:u([la,ca,da,ua],f)},wa={Oc:g,Fb:g,kb:g,oc:g,Lc:c(sa,g),Gc:c(sa,g)},ka={zc:g,yc:g,ab:g},$a={X:g,ua:g,Nb:g},Sa=c(2,g),Ca={sc:e(Sa),sb:e(Sa),qc:e(Sa)},Ma={ha:g,d:g,W:g,M:ka,N:di},xa={a:"VP8StatusCode",za:g,xc:0,o:e(mi),Ac:e(_a),P:e(va),ga:e(wa),Ca:e(ya),rc:"WebPWorker",qb:g,Ja:g,jb:g,oa:Ma,Ma:g,hb:g,lb:g,mb:g,wb:g,Ya:g,Hb:g,ic:d(8,mi),Zc:v,yb:d(oa,Ca),R:e(ba),pc:g,Pc:f,dc:f,cc:c(4,f),Xc:f,Sc:f,Vc:f,La:e($a),M:e(ka),Ea:f,z:0,ca:f,aa:f,ra:f,da:g,ba:g,sa:g,H:g,r:g,ib:0,Gb:b,i:g,d:g,wa:f,Eb:c(16,f),Vd:0,Tc:f,Lb:f,ja:v,Oa:v,A:g,W:g,Zb:c(oa,f),Ga:h,G:0,ub:b,Xb:f,Od:0,cd:g,dd:f,Wd:0,fc:b},Aa=0,Ea=1,Ta=2,Ia={Qc:"VP8LImageTransformType",n:g,U:g,Vb:g,u:v,b:v},Da={va:d($i,Wi)},Pa={xb:g,Yb:e(Ki),Dc:g,eb:g,Ec:g,ac:v,bd:v,hc:g,Db:"HTreeGroup"},Na={a:"VP8StatusCode",Wa:"VP8LDecodeState",Ob:"VP8LDecodeState",N:"VP8Io",Ib:"WebPDecBuffer",Hc:"WebPDecBuffer",V:v,Ha:v,Xa:v,vb:v,o:e(hi),l:g,v:g,O:g,xa:g,cb:e(Pa),Na:g,nc:d(Ei,Ia),Ub:v,Mc:f,$d:f,Zd:"*WebPRescaler"},Ua=4,Oa=[h,function(e,n,i,a,o,s,r,l){var c=g,d=l;for(p(e!=h),p(r!=h),p(i>0),p(a>0),p(o>0),p(s>=i*o),c=0;a>c;++c)0==c?t(r,l,e,n,o):O(e,n,r,d-s,r,l,o),O(e,n+o,r,d,r,l+o,o*(i-1)),d+=s,n+=s,l+=s},function(e,n,i,a,o,s,r,l){var c=g,d=l;for(p(e!=h),p(r!=h),p(i>0),p(a>0),p(o>0),p(s>=i*o),t(r,l,e,n,o),O(e,n+o,r,d,r,l+o,o*(i-1)),c=1;a>c;++c)n+=s,l+=s,O(e,n,r,d,r,l,o*i),d+=s},function(e,n,i,a,o,s,r,l){var c=l,d=g;for(p(e!=h),p(r!=h),p(i>0),p(a>0),p(o>0),p(s>=i*o),t(r,l,e,n,o),O(e,n+o,r,c,r,l+o,o*(i-1)),d=1;a>d;++d){var u=g,c=c+s;for(n+=s,l+=s,O(e,n,r,c-s,r,l,o),u=o;i*o>u;++u){var m=r[c+u-o]+r[c+u-s]-r[c+u-s-o];r[l+u]=e[n+u]+(0>m?0:m>255?255:m)&255}}}],Ra=[3,4,3,4,4,2,2,4,4,4,2,1,1];this.WebPFreeDecBuffer=this.Yc=function(e){e!=h&&(e.Fc||(e.Jb=""),e.jc=0,e.Jb=e.jc=h)};var La,Ba,Fa,qa,ja,Ha,za,Va,Wa,Ga,Ka,Ya,Za,Xa,Ja,Qa,eo=c(511,f),to=c(511,f),no=c(2041,0),io=c(225,0),ao=c(766,f),oo=0,so=85627,ro=35468,lo=[function(e,t){var n,i=4;for(n=0;4>n;++n)i+=e[t+n-pa]+e[t-1+n*pa];for(i>>=3,n=0;4>n;++n)r(e,t+n*pa,i,4)},function(e,t){G(e,t,4)},function(e,n){var i=n-pa,a=[];for(a.push(Y(e[i-1],e[i+0],e[i+1])),a.push(Y(e[i+0],e[i+1],e[i+2])),a.push(Y(e[i+1],e[i+2],e[i+3])),a.push(Y(e[i+2],e[i+3],e[i+4])),i=0;4>i;++i)t(e,n+i*pa,a,0,4)},function(e,t){var n=e[t-1],i=e[t-1+pa],a=e[t-1+2*pa],o=e[t-1+3*pa];e[t+0+0*pa]=e[t+1+0*pa]=e[t+2+0*pa]=e[t+3+0*pa]=Y(e[t-1-pa],n,i),e[t+0+1*pa]=e[t+1+1*pa]=e[t+2+1*pa]=e[t+3+1*pa]=Y(n,i,a),e[t+0+2*pa]=e[t+1+2*pa]=e[t+2+2*pa]=e[t+3+2*pa]=Y(i,a,o),e[t+0+3*pa]=e[t+1+3*pa]=e[t+2+3*pa]=e[t+3+3*pa]=Y(a,o,o)},function(e,t){var n=e[t-1+0*pa],i=e[t-1+1*pa],a=e[t-1+2*pa],o=e[t-1-pa],s=e[t+0-pa],r=e[t+1-pa],l=e[t+2-pa],c=e[t+3-pa];e[t+0+3*pa]=Y(i,a,e[t-1+3*pa]),e[t+0+2*pa]=e[t+1+3*pa]=Y(n,i,a),e[t+0+1*pa]=e[t+1+2*pa]=e[t+2+3*pa]=Y(o,n,i),e[t+0+0*pa]=e[t+1+1*pa]=e[t+2+2*pa]=e[t+3+3*pa]=Y(s,o,n),e[t+1+0*pa]=e[t+2+1*pa]=e[t+3+2*pa]=Y(r,s,o),e[t+2+0*pa]=e[t+3+1*pa]=Y(l,r,s),e[t+3+0*pa]=Y(c,l,r)},function(e,t){var n=e[t-1+0*pa],i=e[t-1+1*pa],a=e[t-1+2*pa],o=e[t-1-pa],s=e[t+0-pa],r=e[t+1-pa],l=e[t+2-pa],c=e[t+3-pa];e[t+0+0*pa]=e[t+1+2*pa]=o+s+1>>1,e[t+1+0*pa]=e[t+2+2*pa]=s+r+1>>1,e[t+2+0*pa]=e[t+3+2*pa]=r+l+1>>1,e[t+3+0*pa]=l+c+1>>1,e[t+0+3*pa]=Y(a,i,n),e[t+0+2*pa]=Y(i,n,o),e[t+0+1*pa]=e[t+1+3*pa]=Y(n,o,s),e[t+1+1*pa]=e[t+2+3*pa]=Y(o,s,r),e[t+2+1*pa]=e[t+3+3*pa]=Y(s,r,l),e[t+3+1*pa]=Y(r,l,c)},function(e,t){var n=e[t+1-pa],i=e[t+2-pa],a=e[t+3-pa],o=e[t+4-pa],s=e[t+5-pa],r=e[t+6-pa],l=e[t+7-pa];e[t+0+0*pa]=Y(e[t+0-pa],n,i),e[t+1+0*pa]=e[t+0+1*pa]=Y(n,i,a),e[t+2+0*pa]=e[t+1+1*pa]=e[t+0+2*pa]=Y(i,a,o),e[t+3+0*pa]=e[t+2+1*pa]=e[t+1+2*pa]=e[t+0+3*pa]=Y(a,o,s),e[t+3+1*pa]=e[t+2+2*pa]=e[t+1+3*pa]=Y(o,s,r),e[t+3+2*pa]=e[t+2+3*pa]=Y(s,r,l),e[t+3+3*pa]=Y(r,l,l)},function(e,t){var n=e[t+0-pa],i=e[t+1-pa],a=e[t+2-pa],o=e[t+3-pa],s=e[t+4-pa],r=e[t+5-pa],l=e[t+6-pa],c=e[t+7-pa];e[t+0+0*pa]=n+i+1>>1,e[t+1+0*pa]=e[t+0+2*pa]=i+a+1>>1,e[t+2+0*pa]=e[t+1+2*pa]=a+o+1>>1,e[t+3+0*pa]=e[t+2+2*pa]=o+s+1>>1,e[t+0+1*pa]=Y(n,i,a),e[t+1+1*pa]=e[t+0+3*pa]=Y(i,a,o),e[t+2+1*pa]=e[t+1+3*pa]=Y(a,o,s),e[t+3+1*pa]=e[t+2+3*pa]=Y(o,s,r),e[t+3+2*pa]=Y(s,r,l),e[t+3+3*pa]=Y(r,l,c)},function(e,t){var n=e[t-1+0*pa],i=e[t-1+1*pa],a=e[t-1+2*pa],o=e[t-1+3*pa],s=e[t-1-pa],r=e[t+0-pa],l=e[t+1-pa],c=e[t+2-pa];e[t+0+0*pa]=e[t+2+1*pa]=n+s+1>>1,e[t+0+1*pa]=e[t+2+2*pa]=i+n+1>>1,e[t+0+2*pa]=e[t+2+3*pa]=a+i+1>>1,e[t+0+3*pa]=o+a+1>>1,e[t+3+0*pa]=Y(r,l,c),e[t+2+0*pa]=Y(s,r,l),e[t+1+0*pa]=e[t+3+1*pa]=Y(n,s,r),e[t+1+1*pa]=e[t+3+2*pa]=Y(i,n,s),e[t+1+2*pa]=e[t+3+3*pa]=Y(a,i,n),e[t+1+3*pa]=Y(o,a,i)},function(e,t){var n=e[t-1+0*pa],i=e[t-1+1*pa],a=e[t-1+2*pa],o=e[t-1+3*pa];e[t+0+0*pa]=n+i+1>>1,e[t+2+0*pa]=e[t+0+1*pa]=i+a+1>>1,e[t+2+1*pa]=e[t+0+2*pa]=a+o+1>>1,e[t+1+0*pa]=Y(n,i,a),e[t+3+0*pa]=e[t+1+1*pa]=Y(i,a,o),e[t+3+1*pa]=e[t+1+2*pa]=Y(a,o,o),e[t+3+2*pa]=e[t+2+2*pa]=e[t+0+3*pa]=e[t+1+3*pa]=e[t+2+3*pa]=e[t+3+3*pa]=o}],co=[function(e,t){var n,i=16;for(n=0;16>n;++n)i+=e[t-1+n*pa]+e[t+n-pa];K(i>>5,e,t)},function(e,t){G(e,t,16)},function(e,n){var i;for(i=0;16>i;++i)t(e,n+i*pa,e,n-pa,16)},function(e,t){var n;for(n=16;n>0;--n)r(e,t+0,e[t-1],16),t+=pa},function(e,t){var n,i=8;for(n=0;16>n;++n)i+=e[t-1+n*pa];K(i>>4,e,t)},function(e,t){var n,i=8;for(n=0;16>n;++n)i+=e[t+n-pa];K(i>>4,e,t)},function(e,t){K(128,e,t)}],uo=[function(e,t){var n,i=8;for(n=0;8>n;++n)i+=e[t+n-pa]+e[t-1+n*pa];Z(1*(i>>4),e,t)},function(e,t){G(e,t,8)},function(e,n){var i;for(i=0;8>i;++i)t(e,n+i*pa,e,n-pa,8)},function(e,t){var n;for(n=0;8>n;++n)r(e,t+0,e[t-1],8),t+=pa},function(e,t){var n,i=4;for(n=0;8>n;++n)i+=e[t-1+n*pa];Z(1*(i>>3),e,t)},function(e,t){var n,i=4;for(n=0;8>n;++n)i+=e[t+n-pa];Z(1*(i>>3),e,t)},function(e,t){Z(128,e,t)}],po=31,mo=[0,2,8],ho=3,go=1,fo=[0+0*pa,4+0*pa,8+0*pa,12+0*pa,0+4*pa,4+4*pa,8+4*pa,12+4*pa,0+8*pa,4+8*pa,8+8*pa,12+8*pa,0+12*pa,4+12*pa,8+12*pa,12+12*pa],_o=[4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,17,18,19,20,20,21,21,22,22,23,23,24,25,25,26,27,28,29,30,31,32,33,34,35,36,37,37,38,39,40,41,42,43,44,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,98,100,101,102,104,106,108,110,112,114,116,118,122,124,126,128,130,132,134,136,138,140,143,145,148,151,154,157],vo=[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,234,239,245,249,254,259,264,269,274,279,284],yo=[-Zi,1,-1,2,-2,3,4,6,-3,5,-4,-5,-6,7,-7,8,-8,-9],bo=[[[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]],[[253,136,254,255,228,219,128,128,128,128,128],[189,129,242,255,227,213,255,219,128,128,128],[106,126,227,252,214,209,255,255,128,128,128]],[[1,98,248,255,236,226,255,255,128,128,128],[181,133,238,254,221,234,255,154,128,128,128],[78,134,202,247,198,180,255,219,128,128,128]],[[1,185,249,255,243,255,128,128,128,128,128],[184,150,247,255,236,224,128,128,128,128,128],[77,110,216,255,236,230,128,128,128,128,128]],[[1,101,251,255,241,255,128,128,128,128,128],[170,139,241,252,236,209,255,255,128,128,128],[37,116,196,243,228,255,255,255,128,128,128]],[[1,204,254,255,245,255,128,128,128,128,128],[207,160,250,255,238,128,128,128,128,128,128],[102,103,231,255,211,171,128,128,128,128,128]],[[1,152,252,255,240,255,128,128,128,128,128],[177,135,243,255,234,225,128,128,128,128,128],[80,129,211,255,194,224,128,128,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[246,1,255,128,128,128,128,128,128,128,128],[255,128,128,128,128,128,128,128,128,128,128]]],[[[198,35,237,223,193,187,162,160,145,155,62],[131,45,198,221,172,176,220,157,252,221,1],[68,47,146,208,149,167,221,162,255,223,128]],[[1,149,241,255,221,224,255,255,128,128,128],[184,141,234,253,222,220,255,199,128,128,128],[81,99,181,242,176,190,249,202,255,255,128]],[[1,129,232,253,214,197,242,196,255,255,128],[99,121,210,250,201,198,255,202,128,128,128],[23,91,163,242,170,187,247,210,255,255,128]],[[1,200,246,255,234,255,128,128,128,128,128],[109,178,241,255,231,245,255,255,128,128,128],[44,130,201,253,205,192,255,255,128,128,128]],[[1,132,239,251,219,209,255,165,128,128,128],[94,136,225,251,218,190,255,255,128,128,128],[22,100,174,245,186,161,255,199,128,128,128]],[[1,182,249,255,232,235,128,128,128,128,128],[124,143,241,255,227,234,128,128,128,128,128],[35,77,181,251,193,211,255,205,128,128,128]],[[1,157,247,255,236,231,255,255,128,128,128],[121,141,235,255,225,227,255,255,128,128,128],[45,99,188,251,195,217,255,224,128,128,128]],[[1,1,251,255,213,255,128,128,128,128,128],[203,1,248,255,255,128,128,128,128,128,128],[137,1,177,255,224,255,128,128,128,128,128]]],[[[253,9,248,251,207,208,255,192,128,128,128],[175,13,224,243,193,185,249,198,255,255,128],[73,17,171,221,161,179,236,167,255,234,128]],[[1,95,247,253,212,183,255,255,128,128,128],[239,90,244,250,211,209,255,255,128,128,128],[155,77,195,248,188,195,255,255,128,128,128]],[[1,24,239,251,218,219,255,205,128,128,128],[201,51,219,255,196,186,128,128,128,128,128],[69,46,190,239,201,218,255,228,128,128,128]],[[1,191,251,255,255,128,128,128,128,128,128],[223,165,249,255,213,255,128,128,128,128,128],[141,124,248,255,255,128,128,128,128,128,128]],[[1,16,248,255,255,128,128,128,128,128,128],[190,36,230,255,236,255,128,128,128,128,128],[149,1,255,128,128,128,128,128,128,128,128]],[[1,226,255,128,128,128,128,128,128,128,128],[247,192,255,128,128,128,128,128,128,128,128],[240,128,255,128,128,128,128,128,128,128,128]],[[1,134,252,255,255,128,128,128,128,128,128],[213,62,250,255,255,128,128,128,128,128,128],[55,93,255,128,128,128,128,128,128,128,128]],[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]]],[[[202,24,213,235,186,191,220,160,240,175,255],[126,38,182,232,169,184,228,174,255,187,128],[61,46,138,219,151,178,240,170,255,216,128]],[[1,112,230,250,199,191,247,159,255,255,128],[166,109,228,252,211,215,255,174,128,128,128],[39,77,162,232,172,180,245,178,255,255,128]],[[1,52,220,246,198,199,249,220,255,255,128],[124,74,191,243,183,193,250,221,255,255,128],[24,71,130,219,154,170,243,182,255,255,128]],[[1,182,225,249,219,240,255,224,128,128,128],[149,150,226,252,216,205,255,171,128,128,128],[28,108,170,242,183,194,254,223,255,255,128]],[[1,81,230,252,204,203,255,192,128,128,128],[123,102,209,247,188,196,255,233,128,128,128],[20,95,153,243,164,173,255,203,128,128,128]],[[1,222,248,255,216,213,128,128,128,128,128],[168,175,246,252,235,205,255,255,128,128,128],[47,116,215,255,211,212,255,255,128,128,128]],[[1,121,236,253,212,214,255,255,128,128,128],[141,84,213,252,201,202,255,219,128,128,128],[42,80,160,240,162,185,255,205,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[244,1,255,128,128,128,128,128,128,128,128],[238,1,255,128,128,128,128,128,128,128,128]]]],wo=[[[231,120,48,89,115,113,120,152,112],[152,179,64,126,170,118,46,70,95],[175,69,143,80,85,82,72,155,103],[56,58,10,171,218,189,17,13,152],[114,26,17,163,44,195,21,10,173],[121,24,80,195,26,62,44,64,85],[144,71,10,38,171,213,144,34,26],[170,46,55,19,136,160,33,206,71],[63,20,8,114,114,208,12,9,226],[81,40,11,96,182,84,29,16,36]],[[134,183,89,137,98,101,106,165,148],[72,187,100,130,157,111,32,75,80],[66,102,167,99,74,62,40,234,128],[41,53,9,178,241,141,26,8,107],[74,43,26,146,73,166,49,23,157],[65,38,105,160,51,52,31,115,128],[104,79,12,27,217,255,87,17,7],[87,68,71,44,114,51,15,186,23],[47,41,14,110,182,183,21,17,194],[66,45,25,102,197,189,23,18,22]],[[88,88,147,150,42,46,45,196,205],[43,97,183,117,85,38,35,179,61],[39,53,200,87,26,21,43,232,171],[56,34,51,104,114,102,29,93,77],[39,28,85,171,58,165,90,98,64],[34,22,116,206,23,34,43,166,73],[107,54,32,26,51,1,81,43,31],[68,25,106,22,64,171,36,225,114],[34,19,21,102,132,188,16,76,124],[62,18,78,95,85,57,50,48,51]],[[193,101,35,159,215,111,89,46,111],[60,148,31,172,219,228,21,18,111],[112,113,77,85,179,255,38,120,114],[40,42,1,196,245,209,10,25,109],[88,43,29,140,166,213,37,43,154],[61,63,30,155,67,45,68,1,209],[100,80,8,43,154,1,51,26,71],[142,78,78,16,255,128,34,197,171],[41,40,5,102,211,183,4,1,221],[51,50,17,168,209,192,23,25,82]],[[138,31,36,171,27,166,38,44,229],[67,87,58,169,82,115,26,59,179],[63,59,90,180,59,166,93,73,154],[40,40,21,116,143,209,34,39,175],[47,15,16,183,34,223,49,45,183],[46,17,33,183,6,98,15,32,183],[57,46,22,24,128,1,54,17,37],[65,32,73,115,28,128,23,128,205],[40,3,9,115,51,192,18,6,223],[87,37,9,115,59,77,64,21,47]],[[104,55,44,218,9,54,53,130,226],[64,90,70,205,40,41,23,26,57],[54,57,112,184,5,41,38,166,213],[30,34,26,133,152,116,10,32,134],[39,19,53,221,26,114,32,73,255],[31,9,65,234,2,15,1,118,73],[75,32,12,51,192,255,160,43,51],[88,31,35,67,102,85,55,186,85],[56,21,23,111,59,205,45,37,192],[55,38,70,124,73,102,1,34,98]],[[125,98,42,88,104,85,117,175,82],[95,84,53,89,128,100,113,101,45],[75,79,123,47,51,128,81,171,1],[57,17,5,71,102,57,53,41,49],[38,33,13,121,57,73,26,1,85],[41,10,67,138,77,110,90,47,114],[115,21,2,10,102,255,166,23,6],[101,29,16,10,85,128,101,196,26],[57,18,10,102,102,213,34,20,43],[117,20,15,36,163,128,68,1,26]],[[102,61,71,37,34,53,31,243,192],[69,60,71,38,73,119,28,222,37],[68,45,128,34,1,47,11,245,171],[62,17,19,70,146,85,55,62,70],[37,43,37,154,100,163,85,160,1],[63,9,92,136,28,64,32,201,85],[75,15,9,9,64,255,184,119,16],[86,6,28,5,64,255,25,248,1],[56,8,17,132,137,255,55,116,128],[58,15,20,82,135,57,26,121,40]],[[164,50,31,137,154,133,25,35,218],[51,103,44,131,131,123,31,6,158],[86,40,64,135,148,224,45,183,128],[22,26,17,131,240,154,14,1,209],[45,16,21,91,64,222,7,1,197],[56,21,39,155,60,138,23,102,213],[83,12,13,54,192,255,68,47,28],[85,26,85,85,128,128,32,146,171],[18,11,7,63,144,171,4,4,246],[35,27,10,146,174,171,12,26,128]],[[190,80,35,99,180,80,126,54,45],[85,126,47,87,176,51,41,20,32],[101,75,128,139,118,146,116,128,85],[56,41,15,176,236,85,37,9,62],[71,30,17,119,118,255,17,18,138],[101,38,60,138,55,70,43,26,142],[146,36,19,30,171,255,97,27,20],[138,45,61,62,219,1,81,188,64],[32,41,20,117,151,142,20,21,163],[112,19,12,61,195,128,48,4,24]]],ko=[[[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[176,246,255,255,255,255,255,255,255,255,255],[223,241,252,255,255,255,255,255,255,255,255],[249,253,253,255,255,255,255,255,255,255,255]],[[255,244,252,255,255,255,255,255,255,255,255],[234,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255]],[[255,246,254,255,255,255,255,255,255,255,255],[239,253,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[251,255,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[251,254,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,254,253,255,254,255,255,255,255,255,255],[250,255,254,255,254,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[217,255,255,255,255,255,255,255,255,255,255],[225,252,241,253,255,255,254,255,255,255,255],[234,250,241,250,253,255,253,254,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[223,254,254,255,255,255,255,255,255,255,255],[238,253,254,254,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[249,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,255,255,255,255,255,255,255,255,255],[247,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[252,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[186,251,250,255,255,255,255,255,255,255,255],[234,251,244,254,255,255,255,255,255,255,255],[251,251,243,253,254,255,254,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[236,253,254,255,255,255,255,255,255,255,255],[251,253,253,254,254,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[254,254,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[254,254,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[248,255,255,255,255,255,255,255,255,255,255],[250,254,252,254,255,255,255,255,255,255,255],[248,254,249,253,255,255,255,255,255,255,255]],[[255,253,253,255,255,255,255,255,255,255,255],[246,253,253,255,255,255,255,255,255,255,255],[252,254,251,254,254,255,255,255,255,255,255]],[[255,254,252,255,255,255,255,255,255,255,255],[248,254,253,255,255,255,255,255,255,255,255],[253,255,254,254,255,255,255,255,255,255,255]],[[255,251,254,255,255,255,255,255,255,255,255],[245,251,254,255,255,255,255,255,255,255,255],[253,253,254,255,255,255,255,255,255,255,255]],[[255,251,253,255,255,255,255,255,255,255,255],[252,253,254,255,255,255,255,255,255,255,255],[255,254,255,255,255,255,255,255,255,255,255]],[[255,252,255,255,255,255,255,255,255,255,255],[249,255,254,255,255,255,255,255,255,255,255],[255,255,254,255,255,255,255,255,255,255,255]],[[255,255,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]]]; -this.WebPGetDecoderVersion=this.Ld=function(){return 512};var $o=[0,1,2,3,6,4,5,6,6,6,6,6,6,6,6,7,0],So=[[173,148,140,0],[176,155,140,135,0],[180,157,141,134,130,0],[254,254,243,230,196,177,153,140,133,130,129,0]],Co=[0,1,4,8,5,2,3,6,9,12,13,10,7,11,14,15],Mo=u([da,ua],"");c(4,f);var xo=[[0,0,0,0],[1,0,0,0],[0,1,0,0],[1,1,0,0],[0,0,1,0],[1,0,1,0],[0,1,1,0],[1,1,1,0],[0,0,0,1],[1,0,0,1],[0,1,0,1],[1,1,0,1],[0,0,1,1],[1,0,1,1],[0,1,1,1],[1,1,1,1]],Ao=134480385,Eo=16,To=-227,Io=482,Do=[Rt,function(e){return e},function(e,t,n){return t[n+0]},function(e,t,n){return t[n+1]},function(e,t,n){return t[n-1]},function(e,t,n){return Nt(Nt(e,t[n+1]),t[n+0])},function(e,t,n){return Nt(e,t[n-1])},function(e,t,n){return Nt(e,t[n+0])},function(e,t,n){return Nt(t[n-1],t[n+0])},function(e,t,n){return Nt(t[n+0],t[n+1])},function(e,t,n){return Nt(Nt(e,t[n-1]),Nt(t[n+0],t[n+1]))},function(e,t,n){return 0>=Math.abs((e>>24&255)-(t[n-1]>>24&255))-Math.abs((t[n+0]>>24&255)-(t[n-1]>>24&255))+(Math.abs((e>>16&255)-(t[n-1]>>16&255))-Math.abs((t[n+0]>>16&255)-(t[n-1]>>16&255)))+(Math.abs((e>>8&255)-(t[n-1]>>8&255))-Math.abs((t[n+0]>>8&255)-(t[n-1]>>8&255)))+(Math.abs((255&e)-(255&t[n-1]))-Math.abs((255&t[n+0])-(255&t[n-1])))?t[n+0]:e},function(e,t,n){return(Ut((e>>24&255)+(t[n+0]>>24&255)-(t[n-1]>>24&255))<<24|Ut((e>>16&255)+(t[n+0]>>16&255)-(t[n-1]>>16&255))<<16|Ut((e>>8&255)+(t[n+0]>>8&255)-(t[n-1]>>8&255))<<8|Ut((255&e)+(255&t[n+0])-(255&t[n-1])))>>>0},function(e,t,n){var i=t[n-1];return e=Nt(e,t[n+0]),(Ot(e>>24&255,i>>24&255)<<24|Ot(e>>16&255,i>>16&255)<<16|Ot(e>>8&255,i>>8&255)<<8|Ot(e>>0&255,i>>0&255))>>>0},Rt,Rt],Po={Cc:f,Bc:f,Kc:f},No=16,Uo=16,Oo=16,Ro=[2,3,7],Lo=[3,3,11],Bo=0,Fo=1,qo=2,jo=3,Ho=4,zo=[xi+Ai,xi,xi,xi,40],Vo=19,Wo=[17,18,0,1,2,3,4,5,16,6,7,8,9,10,11,12,13,14,15],Go=120,Ko=[24,7,23,25,40,6,39,41,22,26,38,42,56,5,55,57,21,27,54,58,37,43,72,4,71,73,20,28,53,59,70,74,36,44,88,69,75,52,60,3,87,89,19,29,86,90,35,45,68,76,85,91,51,61,104,2,103,105,18,30,102,106,34,46,84,92,67,77,101,107,50,62,120,1,119,121,83,93,17,31,100,108,66,78,118,122,33,47,117,123,49,63,99,109,82,94,0,116,124,65,79,16,32,98,110,48,115,125,81,95,64,114,126,97,111,80,113,127,96,112],Yo=1<=i;i++)n=t.substr(0,i),void 0===a[n]?a[n]=[e]:a[n].push(e)})}function a(e,t){var i=t.shortIndexes,a=t.fullTexts;e=n(e);var o,s,r,l,c,d=e.split(" "),u=!1;for(s=0;so.length)&&(u=o)}for(o={},r=0;r,<\s]+/g,s=/^\s+|\s$/g;e.SearchIndexManager={createIndex:t,indexObject:i,cleanSearchText:n,search:a}}(window),TLSerialization.prototype.createBuffer=function(){this.buffer=new ArrayBuffer(this.maxLength),this.intView=new Int32Array(this.buffer),this.byteView=new Uint8Array(this.buffer)},TLSerialization.prototype.getArray=function(){var e=new ArrayBuffer(this.offset),t=new Int32Array(e);return t.set(this.intView.subarray(0,this.offset/4)),t},TLSerialization.prototype.getBuffer=function(){return this.getArray().buffer},TLSerialization.prototype.getBytes=function(e){if(e){var t=new ArrayBuffer(this.offset),n=new Uint8Array(t);return n.set(this.byteView.subarray(0,this.offset)),n}for(var i=[],a=0;a>>",e.toString(16),e,t),this.checkLength(4),this.intView[this.offset/4]=e,this.offset+=4},TLSerialization.prototype.storeInt=function(e,t){this.writeInt(e,(t||"")+":int")},TLSerialization.prototype.storeBool=function(e,t){e?this.writeInt(2574415285,(t||"")+":bool"):this.writeInt(3162085175,(t||"")+":bool")},TLSerialization.prototype.storeLongP=function(e,t,n){this.writeInt(t,(n||"")+":long[low]"),this.writeInt(e,(n||"")+":long[high]")},TLSerialization.prototype.storeLong=function(e,t){if(angular.isArray(e))return 2==e.length?this.storeLongP(e[0],e[1],t):this.storeIntBytes(e,64,t);"string"!=typeof e&&(e=e?e.toString():"0");var n=bigStringInt(e).divideAndRemainder(bigint(4294967296));this.writeInt(intToUint(n[1].intValue()),(t||"")+":long[low]"),this.writeInt(intToUint(n[0].intValue()),(t||"")+":long[high]")},TLSerialization.prototype.storeDouble=function(e){var t=new ArrayBuffer(8),n=new Int32Array(t),i=new Float64Array(t);i[0]=e,this.writeInt(n[0],(field||"")+":double[low]"),this.writeInt(n[1],(field||"")+":double[high]")},TLSerialization.prototype.storeString=function(e,t){this.debug&&console.log(">>>",e,(t||"")+":string"),void 0===e&&(e="");var n=unescape(encodeURIComponent(e));this.checkLength(n.length+8);var i=n.length;253>=i?this.byteView[this.offset++]=i:(this.byteView[this.offset++]=254,this.byteView[this.offset++]=255&i,this.byteView[this.offset++]=(65280&i)>>8,this.byteView[this.offset++]=(16711680&i)>>16);for(var a=0;i>a;a++)this.byteView[this.offset++]=n.charCodeAt(a);for(;this.offset%4;)this.byteView[this.offset++]=0},TLSerialization.prototype.storeBytes=function(e,t){e instanceof ArrayBuffer?e=new Uint8Array(e):void 0===e&&(e=[]),this.debug&&console.log(">>>",bytesToHex(e),(t||"")+":bytes");var n=e.byteLength||e.length;for(this.checkLength(n+8),253>=n?this.byteView[this.offset++]=n:(this.byteView[this.offset++]=254,this.byteView[this.offset++]=255&n,this.byteView[this.offset++]=(65280&n)>>8,this.byteView[this.offset++]=(16711680&n)>>16),this.byteView.set(e,this.offset),this.offset+=n;this.offset%4;)this.byteView[this.offset++]=0},TLSerialization.prototype.storeIntBytes=function(e,t,n){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var i=e.length;if(t%32||8*i!=t)throw new Error("Invalid bits: "+t+", "+e.length);this.debug&&console.log(">>>",bytesToHex(e),(n||"")+":int"+t),this.checkLength(i),this.byteView.set(e,this.offset),this.offset+=i},TLSerialization.prototype.storeRawBytes=function(e,t){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var n=e.length;this.debug&&console.log(">>>",bytesToHex(e),t||""),this.checkLength(n),this.byteView.set(e,this.offset),this.offset+=n},TLSerialization.prototype.storeMethod=function(e,t){var n,i=this.mtproto?Config.Schema.MTProto:Config.Schema.API,a=!1;for(n=0;nn;n++){if(o=a.params[n],s=o.type,-1!==s.indexOf("?")){if(r=s.split("?"),l=r[0].split("."),!(t[l[0]]&1<a;a++){if(c=l.params[a],t=c.type,-1!==t.indexOf("?")){if(d=t.split("?"),u=d[0].split("."),!(e[u[0]]&1<=4*this.intView.length)throw new Error("Nothing to fetch: "+e);var t=this.intView[this.offset/4];return this.debug&&console.log("<<<",t.toString(16),t,e),this.offset+=4,t},TLDeserialization.prototype.fetchInt=function(e){return this.readInt((e||"")+":int")},TLDeserialization.prototype.fetchDouble=function(e){var t=new ArrayBuffer(8),n=new Int32Array(t),i=new Float64Array(t);return n[0]=this.readInt((e||"")+":double[low]"),n[1]=this.readInt((e||"")+":double[high]"),i[0]},TLDeserialization.prototype.fetchLong=function(e){var t=this.readInt((e||"")+":long[low]"),n=this.readInt((e||"")+":long[high]"),i=bigint(n).shiftLeft(32).add(bigint(t)).toString();return i},TLDeserialization.prototype.fetchBool=function(e){var t=this.readInt((e||"")+":bool");return 2574415285==t?!0:3162085175==t?!1:(this.offset-=4,this.fetchObject("Object",e))},TLDeserialization.prototype.fetchString=function(e){var t=this.byteView[this.offset++];if(254==t)var t=this.byteView[this.offset++]|this.byteView[this.offset++]<<8|this.byteView[this.offset++]<<16;for(var n="",i=0;t>i;i++)n+=String.fromCharCode(this.byteView[this.offset++]);for(;this.offset%4;)this.offset++;try{var a=decodeURIComponent(escape(n))}catch(o){var a=n}return this.debug&&console.log("<<<",a,(e||"")+":string"),a},TLDeserialization.prototype.fetchBytes=function(e){var t=this.byteView[this.offset++];if(254==t)var t=this.byteView[this.offset++]|this.byteView[this.offset++]<<8|this.byteView[this.offset++]<<16;var n=this.byteView.subarray(this.offset,this.offset+t);for(this.offset+=t;this.offset%4;)this.offset++;return this.debug&&console.log("<<<",bytesToHex(n),(e||"")+":bytes"),n},TLDeserialization.prototype.fetchIntBytes=function(e,t,n){if(e%32)throw new Error("Invalid bits: "+e);var i=e/8;if(t){var a=this.byteView.subarray(this.offset,this.offset+i);return this.offset+=i,a}for(var o=[],s=0;i>s;s++)o.push(this.byteView[this.offset++]);return this.debug&&console.log("<<<",bytesToHex(o),(n||"")+":int"+e),o},TLDeserialization.prototype.fetchRawBytes=function(e,t,n){if(e===!1&&(e=this.readInt((n||"")+"_length")),t){var i=new Uint8Array(e);return i.set(this.byteView.subarray(this.offset,this.offset+e)),this.offset+=e,i}for(var i=[],a=0;e>a;a++)i.push(this.byteView[this.offset++]);return this.debug&&console.log("<<<",bytesToHex(i),n||""),i},TLDeserialization.prototype.fetchObject=function(e,t){switch(e){case"#":case"int":return this.fetchInt(t);case"long":return this.fetchLong(t);case"int128":return this.fetchIntBytes(128,!1,t);case"int256":return this.fetchIntBytes(256,!1,t);case"int512":return this.fetchIntBytes(512,!1,t);case"string":return this.fetchString(t);case"bytes":return this.fetchBytes(t);case"double":return this.fetchDouble(t);case"Bool":return this.fetchBool(t)}if(t=t||e||"Object","Vector"==e.substr(0,6)||"vector"==e.substr(0,6)){if("V"==e.charAt(0)){var n=this.readInt(t+"[id]");if(481674261!=n)throw new Error("Invalid vector constructor "+n)}var i=this.readInt(t+"[count]"),a=[];if(i>0)for(var o=e.substr(7,e.length-8),s=0;i>s;s++)a.push(this.fetchObject(o,t+"["+s+"]"));return a}var r=this.mtproto?Config.Schema.MTProto:Config.Schema.API,l=!1,c=!1;if("%"==e.charAt(0)){for(var d=e.substr(1),s=0;s=97&&e.charAt(0)<=122){for(var s=0;ss;s++){if(w=c.params[s],e=w.type,-1!==e.indexOf("?")){if(k=e.split("?"),$=k[0].split("."),!(a[$[0]]&1<<$[1]))continue;e=k[1]}a[w.name]=b.fetchObject(e,t+"["+l+"]["+w.name+"]")}}return _&&(this.mtproto=!0),a},TLDeserialization.prototype.getOffset=function(){return this.offset},TLDeserialization.prototype.fetchEnd=function(){if(this.offset!=this.byteView.length)throw new Error("Fetch end with non-empty buffer");return!0},angular.module("izhukov.utils",[]).provider("Storage",function(){this.setPrefix=function(e){ConfigStorage.prefix(e)},this.$get=["$q",function(e){var t={};return angular.forEach(["get","set","remove"],function(n){t[n]=function(){var t=e.defer(),i=Array.prototype.slice.call(arguments);return i.push(function(e){t.resolve(e)}),ConfigStorage[n].apply(ConfigStorage,i),t.promise}}),t}]}).service("qSync",function(){return{when:function(e){return{then:function(t){return t(e)}}},reject:function(e){return{then:function(t,n){return n?n(e):void 0}}}}}).service("FileManager",["$window","$q","$timeout","qSync",function(e,t,n,i){function a(){return f}function o(e,n){return l(n).then(function(n){return s(n,e).then(function(){return n},function(e){return t.reject(e)})})}function s(e,n){var i=t.defer();if(e.onwriteend=function(){i.resolve()},e.onerror=function(e){i.reject(e)},n.file)n.file(function(t){e.write(t)},function(e){i.reject(e)});else if(n instanceof Blob)e.write(n);else try{var a=blobConstruct([bytesToArrayBuffer(n)]);e.write(a)}catch(o){i.reject(o)}return i.promise}function r(n,a,o){if(!e.chrome||!chrome.fileSystem||!chrome.fileSystem.chooseEntry)return i.reject();var s=t.defer();return chrome.fileSystem.chooseEntry({type:"saveFile",suggestedName:n,accepts:[{mimeTypes:[o],extensions:[a]}]},function(e){s.resolve(e)}),s.promise}function l(e){var n=t.defer();return e.createWriter(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise}function c(e,t){var n=[],i={write:function(e){return f?(n.push(e),void setZeroTimeout(function(){i.onwriteend&&i.onwriteend()})):(i.onerror&&i.onerror(new Error("Blob not supported by browser")),!1)},truncate:function(){n=[]},finalize:function(){var i=blobConstruct(n,e);return t&&t(i),i}};return i}function d(e,t){return void 0!==e.toURL?e.toURL(t):e instanceof Blob?URL.createObjectURL(e):"data:"+t+";base64,"+bytesToBase64(e)}function u(e){if(e instanceof Blob){var n=t.defer();try{var i=new FileReader;return i.onloadend=function(e){n.resolve(new Uint8Array(e.target.result))},i.onerror=function(e){n.reject(e)},i.readAsArrayBuffer(e),n.promise}catch(a){return t.reject(a)}}else if(e.file){var n=t.defer();return e.file(function(e){u(e).then(function(e){n.resolve(e)},function(e){n.reject(e)})},function(e){n.reject(e)}),n.promise}return t.when(e)}function p(e){var n;try{var i=new FileReader;i.onloadend=function(){n.resolve(i.result)},i.readAsDataURL(e)}catch(a){return t.reject(a)}return n=t.defer(),n.promise}function m(e,t){if(g&&e instanceof Blob){var t=e.type||e.mimeType||t||"";if(!t.match(/image\/(jpeg|gif|png|bmp)|video\/quicktime/))return p(e)}return i.when(d(e,t))}function h(e,t,i){if(window.navigator&&void 0!==navigator.msSaveBlob)return window.navigator.msSaveBlob(e,i),!1;if(window.navigator&&navigator.getDeviceStorage){var a="sdcard";switch(t.split("/")[0]){case"video":a="videos";break;case"audio":a="music";break;case"image":a="pictures"}var o=navigator.getDeviceStorage(a),s=o.addNamed(e,i);return s.onsuccess=function(){console.log("Device storage save result",this.result)},void(s.onerror=function(){})}var r=!1;window.safari&&(r=window.open()),m(e,t).then(function(e){if(r)try{return void(r.location.href=e)}catch(t){}var a=document.createElementNS("http://www.w3.org/1999/xhtml","a");a.href=e,a.target="_blank",a.download=i,a.dataset&&(a.dataset.downloadurl=["video/quicktime",i,e].join(":")),$(a).css({position:"absolute",top:1,left:1}).appendTo("body");try{var o=document.createEvent("MouseEvents");o.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),a.dispatchEvent(o)}catch(t){console.error("Download click error",t);try{a[0].click()}catch(t){window.open(e,"_blank")}}n(function(){$(a).remove()},100)})}e.URL=e.URL||e.webkitURL,e.BlobBuilder=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder;var g=-1!=navigator.userAgent.indexOf("Safari")&&-1==navigator.userAgent.indexOf("Chrome"),f=!0;try{blobConstruct([],"")}catch(_){f=!1}return{isAvailable:a,copy:o,write:s,getFileWriter:l,getFakeFileWriter:c,chooseSave:r,getUrl:d,getDataUrl:p,getByteArray:u,getFileCorrectUrl:m,download:h}}]).service("IdbFileStorage",["$q","$window","FileManager",function(e,t,n){function i(){return m}function a(){if(c)return c;try{var t=indexedDB.open(d,p),n=e.defer(),i=function(e){e.createObjectStore(u)};if(!t)throw new Exception}catch(a){return m=!1,e.reject(a)}return t.onsuccess=function(){db=t.result,db.onerror=function(e){m=!1,console.error("Error creating/accessing IndexedDB database",e),n.reject(e)},db.setVersion&&db.version!=p?db.setVersion(p).onsuccess=function(){i(db),n.resolve(db)}:n.resolve(db)},t.onerror=function(e){m=!1,console.error("Error creating/accessing IndexedDB database",e),n.reject(e)},t.onupgradeneeded=function(e){i(e.target.result)},c=n.promise}function o(t,n){return a().then(function(i){if(!h)return s(i,t,n);n instanceof Blob||(n=blobConstruct([n]));try{var a=i.transaction([u],IDBTransaction.READ_WRITE||"readwrite").objectStore(u),o=a.put(n,t)}catch(r){return h?(h=!1,s(i,t,n)):(m=!1,e.reject(r))}var l=e.defer();return o.onsuccess=function(){l.resolve(n)},o.onerror=function(e){l.reject(e)},l.promise})}function s(t,n,i){try{var a=new FileReader;a.readAsDataURL(i)}catch(o){return m=!1,e.reject()}var s=e.defer();return a.onloadend=function(){try{var e=t.transaction([u],IDBTransaction.READ_WRITE||"readwrite").objectStore(u),o=e.put(a.result,n)}catch(r){return m=!1,void s.reject(r)}o.onsuccess=function(){s.resolve(i)},o.onerror=function(e){s.reject(e)}},s.promise}function r(t){return a().then(function(n){var i=e.defer(),a=n.transaction([u],IDBTransaction.READ||"readonly").objectStore(u),o=a.get(t);return o.onsuccess=function(e){var t=e.target.result;void 0===t?i.reject():i.resolve("string"==typeof t&&"data:"===t.substr(0,5)?dataUrlToBlob(t):t)},o.onerror=function(e){i.reject(e)},i.promise})}function l(t,i){var a=n.getFakeFileWriter(i,function(e){o(t,e)});return e.when(a)}t.indexedDB=t.indexedDB||t.webkitIndexedDB||t.mozIndexedDB||t.OIndexedDB||t.msIndexedDB,t.IDBTransaction=t.IDBTransaction||t.webkitIDBTransaction||t.OIDBTransaction||t.msIDBTransaction;var c,d="cachedFiles",u="files",p=1,m=void 0!==t.indexedDB&&void 0!==t.IDBTransaction;m&&-1!=navigator.userAgent.indexOf("Safari")&&-1==navigator.userAgent.indexOf("Chrome")&&(m=!1);var h=m||!1;return a(),{isAvailable:i,saveFile:o,getFile:r,getFileWriter:l}}]).service("TmpfsFileStorage",["$q","$window","FileManager",function(e,t,n){function i(){if(l)return l;if(!t.requestFileSystem)return l=e.reject({type:"FS_BROWSER_UNSUPPORTED",description:"requestFileSystem not present"});var n=e.defer();return t.requestFileSystem(t.TEMPORARY,524288e3,function(e){cachedFs=e,n.resolve()},function(e){c=!1,n.reject(e)}),l=n.promise}function a(){return c}function o(t,n){return n=n||1,i().then(function(){var i=e.defer();return cachedFs.root.getFile(t,{create:!1},function(e){e.file(function(t){t.size>=n?i.resolve(e):i.reject(new Error("FILE_NOT_FOUND"))},function(e){console.log(dT(),"error",e),i.reject(e)})},function(){i.reject(new Error("FILE_NOT_FOUND"))}),i.promise})}function s(e,t){return r(e).then(function(e){return n.write(e,t).then(function(){return e.finalize()})})}function r(t){return i().then(function(){var i=e.defer();return cachedFs.root.getFile(t,{create:!0},function(e){n.getFileWriter(e).then(function(t){t.finalize=function(){return e},i.resolve(t)},function(e){c=!1,i.reject(e)})},function(e){c=!1,i.reject(e)}),i.promise})}t.requestFileSystem=t.requestFileSystem||t.webkitRequestFileSystem;var l,c=void 0!==t.requestFileSystem;return i(),{isAvailable:a,saveFile:s,getFile:o,getFileWriter:r}}]).service("MemoryFileStorage",["$q","FileManager",function(e,t){function n(){return!0}function i(t){return s[t]?e.when(s[t]):e.reject(new Error("FILE_NOT_FOUND"))}function a(t,n){return e.when(s[t]=n)}function o(n,i){var o=t.getFakeFileWriter(i,function(e){a(n,e)});return e.when(o)}var s={};return{isAvailable:n,saveFile:a,getFile:i,getFileWriter:o}}]).service("WebpManager",["qSync","$q",function(e,t){function n(e){var t=(tsNow(),new WebPDecoder),n=t.WebPDecoderConfig,i=n.j||n.output,a=n.input;if(!t.WebPInitDecoderConfig(n))return console.error("[webpjs] Library version mismatch!"),!1;var o=t.VP8StatusCode;status=t.WebPGetFeatures(e,e.length,a),status!=(o.VP8_STATUS_OK||0)&&console.error("[webpjs] status error",status,o);var l=t.WEBP_CSP_MODE;i.colorspace=l.MODE_RGBA,i.J=4;try{status=t.WebPDecode(e,e.length,n)}catch(c){status=c}if(ok=0==status,!ok)return console.error("[webpjs] decoding failed",status,o),!1;var d=i.c.RGBA.ma;if(!d)return!1;var u=i.height,p=i.width;s&&r?r.clearRect(0,0,s.width,s.height):(s=document.createElement("canvas"),r=s.getContext("2d")),s.height=u,s.width=p;for(var m=r.createImageData(s.width,s.height),h=m.data,g=0;u>g;g++)for(var f=0;p>f;f++)h[0+4*f+4*p*g]=d[1+4*f+4*p*g],h[1+4*f+4*p*g]=d[2+4*f+4*p*g],h[2+4*f+4*p*g]=d[3+4*f+4*p*g],h[3+4*f+4*p*g]=d[0+4*f+4*p*g];return r.putImageData(m,0,0),!0}function i(i){if(!n(i))return t.reject({type:"WEBP_PROCESS_FAILED"});if(void 0===s.toBlob)return e.when(dataUrlToBlob(s.toDataURL("image/png")));var a=t.defer();return s.toBlob(function(e){a.resolve(e)},"image/png"),a.promise}var a=!1,o=new Image;o.onload=function(){a=2===this.width&&1===this.height},o.onerror=function(){a=!1},o.src="data:image/webp;base64,UklGRjIAAABXRUJQVlA4ICYAAACyAgCdASoCAAEALmk0mk0iIiIiIgBoSygABc6zbAAA/v56QAAAAA==";var s,r;return{isWebpSupported:function(){return a},getPngBlobFromWebp:i}}]).service("CryptoWorker",["$timeout","$q",function(e,t){function n(e,n,a){var r=t.defer();return s[o]=r,n.task=e,n.taskID=o,(a||i).postMessage(n),o++,r.promise}var i=!1,a=!1,o=0,s={},r=Config.Modes.webcrypto&&window.crypto&&(window.crypto.subtle||window.crypto.webkitSubtle),l=r&&void 0!==r.digest,c=r&&void 0!==r.digest,d=function(e,t){var n=s[e];void 0!==n&&(n.resolve(t),delete s[e])};if(Config.Modes.nacl&&navigator.mimeTypes&&void 0!==navigator.mimeTypes["application/x-pnacl"]){var u=$('
').appendTo($("body"))[0];u.addEventListener("load",function(){a=u.firstChild,console.log(dT(),"NaCl ready")},!0),u.addEventListener("message",function(e){d(e.data.taskID,e.data.result)},!0),u.addEventListener("error",function(e){console.error("NaCl error",e)},!0)}if(window.Worker){var p=new Worker("js/lib/crypto_worker.js");p.onmessage=function(e){i?d(e.data.taskID,e.data.result):i=p},p.onerror=function(e){console.error("CW error",e,e.stack),i=!1}}return{sha1Hash:function(n){if(l){var i=t.defer(),a=Array.isArray(n)?convertToUint8Array(n):n;return r.digest({name:"SHA-1"},a).then(function(e){i.resolve(e)},function(e){console.error("Crypto digest error",e),l=!1,i.resolve(sha1HashSync(n))}),i.promise}return e(function(){return sha1HashSync(n)})},sha256Hash:function(n){if(c){var i=t.defer(),a=Array.isArray(n)?convertToUint8Array(n):n;return r.digest({name:"SHA-256"},a).then(function(e){i.resolve(e)},function(e){console.error("Crypto digest error",e),c=!1,i.resolve(sha256HashSync(n))}),i.promise}return e(function(){return sha256HashSync(n)})},aesEncrypt:function(t,i,o){return a?n("aes-encrypt",{bytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(i),ivBytes:convertToArrayBuffer(o)},a):e(function(){return convertToArrayBuffer(aesEncryptSync(t,i,o))})},aesDecrypt:function(t,i,o){return a?n("aes-decrypt",{encryptedBytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(i),ivBytes:convertToArrayBuffer(o)},a):e(function(){return convertToArrayBuffer(aesDecryptSync(t,i,o))})},factorize:function(t){return t=convertToByteArray(t),a&&t.length<=8?n("factorize",{bytes:t},a):i?n("factorize",{bytes:t}):e(function(){return pqPrimeFactorization(t)})},modPow:function(t,a,o){return i?n("mod-pow",{x:t,y:a,m:o}):e(function(){return bytesModPow(t,a,o)})}}}]).service("ExternalResourcesManager",["$q","$http",function(e,t){function n(e){return void 0!==i[e]?i[e]:i[e]=t.get(e,{responseType:"blob",transformRequest:null}).then(function(e){return window.URL=window.URL||window.webkitURL,window.URL.createObjectURL(e.data)})}var i={};return{downloadImage:n}}]).service("IdleManager",["$rootScope","$window","$timeout",function(e,t,n){function i(){s||(s=!0,$(t).on(l+" blur focus keydown mousedown touchstart",a),setTimeout(function(){a({type:"blur"})},0))}function a(i){if("mousemove"==i.type){var i=i.originalEvent||i;if(i&&0===i.movementX&&0===i.movementY)return;$(t).off("mousemove",a)}var s="blur"==i.type||"timeout"==i.type?!0:!1;r&&document[r]&&(s=!0),n.cancel(o),s||(o=n(function(){a({type:"timeout"})},3e4)),e.idle.isIDLE!=s&&(e.$apply(function(){e.idle.isIDLE=s}),s&&"timeout"==i.type&&$(t).on("mousemove",a))}e.idle={isIDLE:!1};var o,s=!1,r="hidden",l="visibilitychange";return"undefined"!=typeof document.hidden||("undefined"!=typeof document.mozHidden?(r="mozHidden",l="mozvisibilitychange"):"undefined"!=typeof document.msHidden?(r="msHidden",l="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(r="webkitHidden",l="webkitvisibilitychange")),{start:i}}]).service("AppRuntimeManager",["$window",function(e){return{reload:function(){try{location.reload()}catch(t){}e.chrome&&chrome.runtime&&chrome.runtime.reload&&chrome.runtime.reload()},close:function(){try{e.close()}catch(t){}},focus:function(){window.navigator.mozApps&&document.hidden?window.navigator.mozApps.getSelf().onsuccess=function(){this.result.launch()}:(window.chrome&&chrome.app&&chrome.app.window&&chrome.app.window.current().focus(),window.focus())}}}]),angular.module("myApp.i18n",["izhukov.utils"]).factory("_",["$rootScope","$locale",function(e,t){function n(e,t){return e.replace(l,function(i,a,o){var s=t[a];return void 0===s?(console.warn("[i18n] missing param "+a+' for message "'+e+'"'),""):(void 0!==o&&(s=n(s,o.split("|"))),s.toString().trim())})}function i(e){return e=e.replace(/\*\*(.+?)\*\*/g,"$1").replace(/\n| /g,"
")}function a(e,t){var a=!1,l=e;if("_raw"===e.substr(-4)&&(a=!0,e=e.substr(0,e.length-4)),s.hasOwnProperty(e))l=s[e];else{if(!r.hasOwnProperty(e))return console.warn("[i18n] missing key "+e),e;l=r[e],console.warn("[i18n] missing locale key "+o+" / "+e)}return a||(l=encodeEntities(l)),"_md"==e.substr(-3)&&(l=i(l)),arguments.length>1&&("string"==typeof t?(Array.prototype.shift.apply(arguments),l=n(l,arguments)):l=n(l,t)),l}var o=Config.I18n.locale,s=Config.I18n.messages,r=Config.I18n.fallback_messages,l=/\{\s*([a-zA-Z\d\-_]+)(?:\s*:\s*(.*?))?\s*\}/g;return a.locale=function(){return o},a.pluralize=function(n){var i=e.$eval(a(n+"_raw"));return function(e){return(i[t.pluralCat(e)]||"").replace("{}",e)}},a}]).filter("i18n",["_",function(e){return function(t,n){return e(t+"_raw",n)}}]).directive("ngPluralize",["_",function(e){return{restrict:"EA",priority:1,compile:function(t){var n=t.attr("when"),i=e(n+"_raw");t.attr("when",i)}}}]).directive("myI18n",["_",function(e){return{restrict:"EA",compile:function(t){var n=t.children('my-i18n-param:not([name]), [my-i18n-param=""]:not([name])').map(function(e,t){return t.outerHTML}).toArray();t.children('my-i18n-param[name], [my-i18n-param]:not([my-i18n-param=""]), [my-i18n-param][name]').each(function(e,t){n[angular.element(t).attr("my-i18n-param")||angular.element(t).attr("name")]=t.outerHTML}),t.children("my-i18n-param").remove();var i=t.attr("my-i18n")||t.attr("msgid")?t:t.children("my-i18n-format, [my-i18n-format]");i.each(function(t,i){var a=angular.element(i),o=a.attr("my-i18n")||a.attr("msgid")||a.attr("my-i18n-format")||a.html().replace(/\s+/g," ").trim(),s=e(o,n);a.html(s)})}}}]),angular.module("izhukov.mtproto",["izhukov.utils"]).factory("MtpDcConfigurator",function(){function e(e,a){if(void 0===i[e]){var o,s,r=!1;if(Config.Modes.ssl){var l=t[e-1]+(a?"-1":""),c=Config.Modes.test?"apiw_test1":"apiw1";return r="https://"+l+".web.telegram.org/"+c}for(o=0;o=Math.abs((e>>24&255)-(t[n-1]>>24&255))-Math.abs((t[n+0]>>24&255)-(t[n-1]>>24&255))+(Math.abs((e>>16&255)-(t[n-1]>>16&255))-Math.abs((t[n+0]>>16&255)-(t[n-1]>>16&255)))+(Math.abs((e>>8&255)-(t[n-1]>>8&255))-Math.abs((t[n+0]>>8&255)-(t[n-1]>>8&255)))+(Math.abs((255&e)-(255&t[n-1]))-Math.abs((255&t[n+0])-(255&t[n-1])))?t[n+0]:e},function(e,t,n){return(Ut((e>>24&255)+(t[n+0]>>24&255)-(t[n-1]>>24&255))<<24|Ut((e>>16&255)+(t[n+0]>>16&255)-(t[n-1]>>16&255))<<16|Ut((e>>8&255)+(t[n+0]>>8&255)-(t[n-1]>>8&255))<<8|Ut((255&e)+(255&t[n+0])-(255&t[n-1])))>>>0},function(e,t,n){var i=t[n-1];return e=Nt(e,t[n+0]),(Ot(e>>24&255,i>>24&255)<<24|Ot(e>>16&255,i>>16&255)<<16|Ot(e>>8&255,i>>8&255)<<8|Ot(e>>0&255,i>>0&255))>>>0},Rt,Rt],Po={Cc:f,Bc:f,Kc:f},No=16,Uo=16,Oo=16,Ro=[2,3,7],Lo=[3,3,11],Bo=0,Fo=1,qo=2,jo=3,Ho=4,zo=[xi+Ai,xi,xi,xi,40],Vo=19,Wo=[17,18,0,1,2,3,4,5,16,6,7,8,9,10,11,12,13,14,15],Go=120,Ko=[24,7,23,25,40,6,39,41,22,26,38,42,56,5,55,57,21,27,54,58,37,43,72,4,71,73,20,28,53,59,70,74,36,44,88,69,75,52,60,3,87,89,19,29,86,90,35,45,68,76,85,91,51,61,104,2,103,105,18,30,102,106,34,46,84,92,67,77,101,107,50,62,120,1,119,121,83,93,17,31,100,108,66,78,118,122,33,47,117,123,49,63,99,109,82,94,0,116,124,65,79,16,32,98,110,48,115,125,81,95,64,114,126,97,111,80,113,127,96,112],Yo=1<=i;i++)n=t.substr(0,i),void 0===a[n]?a[n]=[e]:a[n].push(e)})}function a(e,t){var i=t.shortIndexes,a=t.fullTexts;e=n(e);var o,s,r,l,c,d=e.split(" "),u=!1;for(s=0;so.length)&&(u=o)}for(o={},r=0;r,<\s]+/g,s=/^\s+|\s$/g;e.SearchIndexManager={createIndex:t,indexObject:i,cleanSearchText:n,search:a}}(window),TLSerialization.prototype.createBuffer=function(){this.buffer=new ArrayBuffer(this.maxLength),this.intView=new Int32Array(this.buffer),this.byteView=new Uint8Array(this.buffer)},TLSerialization.prototype.getArray=function(){var e=new ArrayBuffer(this.offset),t=new Int32Array(e);return t.set(this.intView.subarray(0,this.offset/4)),t},TLSerialization.prototype.getBuffer=function(){return this.getArray().buffer},TLSerialization.prototype.getBytes=function(e){if(e){var t=new ArrayBuffer(this.offset),n=new Uint8Array(t);return n.set(this.byteView.subarray(0,this.offset)),n}for(var i=[],a=0;a>>",e.toString(16),e,t),this.checkLength(4),this.intView[this.offset/4]=e,this.offset+=4},TLSerialization.prototype.storeInt=function(e,t){this.writeInt(e,(t||"")+":int")},TLSerialization.prototype.storeBool=function(e,t){e?this.writeInt(2574415285,(t||"")+":bool"):this.writeInt(3162085175,(t||"")+":bool")},TLSerialization.prototype.storeLongP=function(e,t,n){this.writeInt(t,(n||"")+":long[low]"),this.writeInt(e,(n||"")+":long[high]")},TLSerialization.prototype.storeLong=function(e,t){if(angular.isArray(e))return 2==e.length?this.storeLongP(e[0],e[1],t):this.storeIntBytes(e,64,t);"string"!=typeof e&&(e=e?e.toString():"0");var n=bigStringInt(e).divideAndRemainder(bigint(4294967296));this.writeInt(intToUint(n[1].intValue()),(t||"")+":long[low]"),this.writeInt(intToUint(n[0].intValue()),(t||"")+":long[high]")},TLSerialization.prototype.storeDouble=function(e){var t=new ArrayBuffer(8),n=new Int32Array(t),i=new Float64Array(t);i[0]=e,this.writeInt(n[0],(field||"")+":double[low]"),this.writeInt(n[1],(field||"")+":double[high]")},TLSerialization.prototype.storeString=function(e,t){this.debug&&console.log(">>>",e,(t||"")+":string"),void 0===e&&(e="");var n=unescape(encodeURIComponent(e));this.checkLength(n.length+8);var i=n.length;253>=i?this.byteView[this.offset++]=i:(this.byteView[this.offset++]=254,this.byteView[this.offset++]=255&i,this.byteView[this.offset++]=(65280&i)>>8,this.byteView[this.offset++]=(16711680&i)>>16);for(var a=0;i>a;a++)this.byteView[this.offset++]=n.charCodeAt(a);for(;this.offset%4;)this.byteView[this.offset++]=0},TLSerialization.prototype.storeBytes=function(e,t){e instanceof ArrayBuffer?e=new Uint8Array(e):void 0===e&&(e=[]),this.debug&&console.log(">>>",bytesToHex(e),(t||"")+":bytes");var n=e.byteLength||e.length;for(this.checkLength(n+8),253>=n?this.byteView[this.offset++]=n:(this.byteView[this.offset++]=254,this.byteView[this.offset++]=255&n,this.byteView[this.offset++]=(65280&n)>>8,this.byteView[this.offset++]=(16711680&n)>>16),this.byteView.set(e,this.offset),this.offset+=n;this.offset%4;)this.byteView[this.offset++]=0},TLSerialization.prototype.storeIntBytes=function(e,t,n){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var i=e.length;if(t%32||8*i!=t)throw new Error("Invalid bits: "+t+", "+e.length);this.debug&&console.log(">>>",bytesToHex(e),(n||"")+":int"+t),this.checkLength(i),this.byteView.set(e,this.offset),this.offset+=i},TLSerialization.prototype.storeRawBytes=function(e,t){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var n=e.length;this.debug&&console.log(">>>",bytesToHex(e),t||""),this.checkLength(n),this.byteView.set(e,this.offset),this.offset+=n},TLSerialization.prototype.storeMethod=function(e,t){var n,i=this.mtproto?Config.Schema.MTProto:Config.Schema.API,a=!1;for(n=0;nn;n++){if(o=a.params[n],s=o.type,-1!==s.indexOf("?")){if(r=s.split("?"),l=r[0].split("."),!(t[l[0]]&1<a;a++){if(c=l.params[a],t=c.type,-1!==t.indexOf("?")){if(d=t.split("?"),u=d[0].split("."),!(e[u[0]]&1<=4*this.intView.length)throw new Error("Nothing to fetch: "+e);var t=this.intView[this.offset/4];return this.debug&&console.log("<<<",t.toString(16),t,e),this.offset+=4,t},TLDeserialization.prototype.fetchInt=function(e){return this.readInt((e||"")+":int")},TLDeserialization.prototype.fetchDouble=function(e){var t=new ArrayBuffer(8),n=new Int32Array(t),i=new Float64Array(t);return n[0]=this.readInt((e||"")+":double[low]"),n[1]=this.readInt((e||"")+":double[high]"),i[0]},TLDeserialization.prototype.fetchLong=function(e){var t=this.readInt((e||"")+":long[low]"),n=this.readInt((e||"")+":long[high]"),i=bigint(n).shiftLeft(32).add(bigint(t)).toString();return i},TLDeserialization.prototype.fetchBool=function(e){var t=this.readInt((e||"")+":bool");return 2574415285==t?!0:3162085175==t?!1:(this.offset-=4,this.fetchObject("Object",e))},TLDeserialization.prototype.fetchString=function(e){var t=this.byteView[this.offset++];if(254==t)var t=this.byteView[this.offset++]|this.byteView[this.offset++]<<8|this.byteView[this.offset++]<<16;for(var n="",i=0;t>i;i++)n+=String.fromCharCode(this.byteView[this.offset++]);for(;this.offset%4;)this.offset++;try{var a=decodeURIComponent(escape(n))}catch(o){var a=n}return this.debug&&console.log("<<<",a,(e||"")+":string"),a},TLDeserialization.prototype.fetchBytes=function(e){var t=this.byteView[this.offset++];if(254==t)var t=this.byteView[this.offset++]|this.byteView[this.offset++]<<8|this.byteView[this.offset++]<<16;var n=this.byteView.subarray(this.offset,this.offset+t);for(this.offset+=t;this.offset%4;)this.offset++;return this.debug&&console.log("<<<",bytesToHex(n),(e||"")+":bytes"),n},TLDeserialization.prototype.fetchIntBytes=function(e,t,n){if(e%32)throw new Error("Invalid bits: "+e);var i=e/8;if(t){var a=this.byteView.subarray(this.offset,this.offset+i);return this.offset+=i,a}for(var o=[],s=0;i>s;s++)o.push(this.byteView[this.offset++]);return this.debug&&console.log("<<<",bytesToHex(o),(n||"")+":int"+e),o},TLDeserialization.prototype.fetchRawBytes=function(e,t,n){if(e===!1&&(e=this.readInt((n||"")+"_length")),t){var i=new Uint8Array(e);return i.set(this.byteView.subarray(this.offset,this.offset+e)),this.offset+=e,i}for(var i=[],a=0;e>a;a++)i.push(this.byteView[this.offset++]);return this.debug&&console.log("<<<",bytesToHex(i),n||""),i},TLDeserialization.prototype.fetchObject=function(e,t){switch(e){case"#":case"int":return this.fetchInt(t);case"long":return this.fetchLong(t);case"int128":return this.fetchIntBytes(128,!1,t);case"int256":return this.fetchIntBytes(256,!1,t);case"int512":return this.fetchIntBytes(512,!1,t);case"string":return this.fetchString(t);case"bytes":return this.fetchBytes(t);case"double":return this.fetchDouble(t);case"Bool":return this.fetchBool(t)}if(t=t||e||"Object","Vector"==e.substr(0,6)||"vector"==e.substr(0,6)){if("V"==e.charAt(0)){var n=this.readInt(t+"[id]");if(481674261!=n)throw new Error("Invalid vector constructor "+n)}var i=this.readInt(t+"[count]"),a=[];if(i>0)for(var o=e.substr(7,e.length-8),s=0;i>s;s++)a.push(this.fetchObject(o,t+"["+s+"]"));return a}var r=this.mtproto?Config.Schema.MTProto:Config.Schema.API,l=!1,c=!1;if("%"==e.charAt(0)){for(var d=e.substr(1),s=0;s=97&&e.charAt(0)<=122){for(var s=0;ss;s++){if(w=c.params[s],e=w.type,-1!==e.indexOf("?")){if(k=e.split("?"),$=k[0].split("."),!(a[$[0]]&1<<$[1]))continue;e=k[1]}a[w.name]=b.fetchObject(e,t+"["+l+"]["+w.name+"]")}}return _&&(this.mtproto=!0),a},TLDeserialization.prototype.getOffset=function(){return this.offset},TLDeserialization.prototype.fetchEnd=function(){if(this.offset!=this.byteView.length)throw new Error("Fetch end with non-empty buffer");return!0},angular.module("izhukov.utils",[]).provider("Storage",function(){this.setPrefix=function(e){ConfigStorage.prefix(e)},this.$get=["$q",function(e){var t={};return angular.forEach(["get","set","remove"],function(n){t[n]=function(){var t=e.defer(),i=Array.prototype.slice.call(arguments);return i.push(function(e){t.resolve(e)}),ConfigStorage[n].apply(ConfigStorage,i),t.promise}}),t}]}).service("qSync",function(){return{when:function(e){return{then:function(t){return t(e)}}},reject:function(e){return{then:function(t,n){return n?n(e):void 0}}}}}).service("FileManager",["$window","$q","$timeout","qSync",function(e,t,n,i){function a(){return f}function o(e,n){return l(n).then(function(n){return s(n,e).then(function(){return n},function(e){return t.reject(e)})})}function s(e,n){var i=t.defer();if(e.onwriteend=function(){i.resolve()},e.onerror=function(e){i.reject(e)},n.file)n.file(function(t){e.write(t)},function(e){i.reject(e)});else if(n instanceof Blob)e.write(n);else try{var a=blobConstruct([bytesToArrayBuffer(n)]);e.write(a)}catch(o){i.reject(o)}return i.promise}function r(n,a,o){if(!e.chrome||!chrome.fileSystem||!chrome.fileSystem.chooseEntry)return i.reject();var s=t.defer();return chrome.fileSystem.chooseEntry({type:"saveFile",suggestedName:n,accepts:[{mimeTypes:[o],extensions:[a]}]},function(e){s.resolve(e)}),s.promise}function l(e){var n=t.defer();return e.createWriter(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise}function c(e,t){var n=[],i={write:function(e){return f?(n.push(e),void setZeroTimeout(function(){i.onwriteend&&i.onwriteend()})):(i.onerror&&i.onerror(new Error("Blob not supported by browser")),!1)},truncate:function(){n=[]},finalize:function(){var i=blobConstruct(n,e);return t&&t(i),i}};return i}function d(e,t){return void 0!==e.toURL?e.toURL(t):e instanceof Blob?URL.createObjectURL(e):"data:"+t+";base64,"+bytesToBase64(e)}function u(e){if(e instanceof Blob){var n=t.defer();try{var i=new FileReader;return i.onloadend=function(e){n.resolve(new Uint8Array(e.target.result))},i.onerror=function(e){n.reject(e)},i.readAsArrayBuffer(e),n.promise}catch(a){return t.reject(a)}}else if(e.file){var n=t.defer();return e.file(function(e){u(e).then(function(e){n.resolve(e)},function(e){n.reject(e)})},function(e){n.reject(e)}),n.promise}return t.when(e)}function p(e){var n;try{var i=new FileReader;i.onloadend=function(){n.resolve(i.result)},i.readAsDataURL(e)}catch(a){return t.reject(a)}return n=t.defer(),n.promise}function m(e,t){if(g&&e instanceof Blob){var t=e.type||e.mimeType||t||"";if(!t.match(/image\/(jpeg|gif|png|bmp)|video\/quicktime/))return p(e)}return i.when(d(e,t))}function h(e,t,i){if(window.navigator&&void 0!==navigator.msSaveBlob)return window.navigator.msSaveBlob(e,i),!1;if(window.navigator&&navigator.getDeviceStorage){var a="sdcard";switch(t.split("/")[0]){case"video":a="videos";break;case"audio":a="music";break;case"image":a="pictures"}var o=navigator.getDeviceStorage(a),s=o.addNamed(e,i);return s.onsuccess=function(){console.log("Device storage save result",this.result)},void(s.onerror=function(){})}var r=!1;window.safari&&(r=window.open()),m(e,t).then(function(e){if(r)try{return void(r.location.href=e)}catch(t){}var a=document.createElementNS("http://www.w3.org/1999/xhtml","a");a.href=e,a.target="_blank",a.download=i,a.dataset&&(a.dataset.downloadurl=["video/quicktime",i,e].join(":")),$(a).css({position:"absolute",top:1,left:1}).appendTo("body");try{var o=document.createEvent("MouseEvents");o.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),a.dispatchEvent(o)}catch(t){console.error("Download click error",t);try{a[0].click()}catch(t){window.open(e,"_blank")}}n(function(){$(a).remove()},100)})}e.URL=e.URL||e.webkitURL,e.BlobBuilder=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder;var g=-1!=navigator.userAgent.indexOf("Safari")&&-1==navigator.userAgent.indexOf("Chrome"),f=!0;try{blobConstruct([],"")}catch(_){f=!1}return{isAvailable:a,copy:o,write:s,getFileWriter:l,getFakeFileWriter:c,chooseSave:r,getUrl:d,getDataUrl:p,getByteArray:u,getFileCorrectUrl:m,download:h}}]).service("IdbFileStorage",["$q","$window","FileManager",function(e,t,n){function i(){return m}function a(){if(c)return c;try{var t=indexedDB.open(d,p),n=e.defer(),i=function(e){e.createObjectStore(u)};if(!t)throw new Exception}catch(a){return m=!1,e.reject(a)}return t.onsuccess=function(){db=t.result,db.onerror=function(e){m=!1,console.error("Error creating/accessing IndexedDB database",e),n.reject(e)},n.resolve(db)},t.onerror=function(e){m=!1,console.error("Error creating/accessing IndexedDB database",e),n.reject(e)},t.onupgradeneeded=function(e){console.warn("performing idb upgrade from",e.oldVersion,"to",e.newVersion);var t=e.target.result;1==e.oldVersion&&t.deleteObjectStore(u),i(t)},c=n.promise}function o(t,n){return a().then(function(i){if(!h)return s(i,t,n);n instanceof Blob||(n=blobConstruct([n]));try{var a=i.transaction([u],IDBTransaction.READ_WRITE||"readwrite").objectStore(u),o=a.put(n,t)}catch(r){return h?(h=!1,s(i,t,n)):(m=!1,e.reject(r))}var l=e.defer();return o.onsuccess=function(){l.resolve(n)},o.onerror=function(e){l.reject(e)},l.promise})}function s(t,n,i){try{var a=new FileReader;a.readAsDataURL(i)}catch(o){return m=!1,e.reject()}var s=e.defer();return a.onloadend=function(){try{var e=t.transaction([u],IDBTransaction.READ_WRITE||"readwrite").objectStore(u),o=e.put(a.result,n)}catch(r){return m=!1,void s.reject(r)}o.onsuccess=function(){s.resolve(i)},o.onerror=function(e){s.reject(e)}},s.promise}function r(t){return a().then(function(n){var i=e.defer(),a=n.transaction([u],IDBTransaction.READ||"readonly").objectStore(u),o=a.get(t);return o.onsuccess=function(e){var t=e.target.result;void 0===t?i.reject():i.resolve("string"==typeof t&&"data:"===t.substr(0,5)?dataUrlToBlob(t):t)},o.onerror=function(e){i.reject(e)},i.promise})}function l(t,i){var a=n.getFakeFileWriter(i,function(e){o(t,e)});return e.when(a)}t.indexedDB=t.indexedDB||t.webkitIndexedDB||t.mozIndexedDB||t.OIndexedDB||t.msIndexedDB,t.IDBTransaction=t.IDBTransaction||t.webkitIDBTransaction||t.OIDBTransaction||t.msIDBTransaction;var c,d="cachedFiles",u="files",p=2,m=void 0!==t.indexedDB&&void 0!==t.IDBTransaction;m&&-1!=navigator.userAgent.indexOf("Safari")&&-1==navigator.userAgent.indexOf("Chrome")&&(m=!1);var h=m||!1;return a(),{isAvailable:i,saveFile:o,getFile:r,getFileWriter:l}}]).service("TmpfsFileStorage",["$q","$window","FileManager",function(e,t,n){function i(){if(l)return l;if(!t.requestFileSystem)return l=e.reject({type:"FS_BROWSER_UNSUPPORTED",description:"requestFileSystem not present"});var n=e.defer();return t.requestFileSystem(t.TEMPORARY,524288e3,function(e){cachedFs=e,n.resolve()},function(e){c=!1,n.reject(e)}),l=n.promise}function a(){return c}function o(t,n){return n=n||1,i().then(function(){var i=e.defer();return cachedFs.root.getFile(t,{create:!1},function(e){e.file(function(t){t.size>=n?i.resolve(e):i.reject(new Error("FILE_NOT_FOUND"))},function(e){console.log(dT(),"error",e),i.reject(e)})},function(){i.reject(new Error("FILE_NOT_FOUND"))}),i.promise})}function s(e,t){return r(e).then(function(e){return n.write(e,t).then(function(){return e.finalize()})})}function r(t){return i().then(function(){var i=e.defer();return cachedFs.root.getFile(t,{create:!0},function(e){n.getFileWriter(e).then(function(t){t.finalize=function(){return e},i.resolve(t)},function(e){c=!1,i.reject(e)})},function(e){c=!1,i.reject(e)}),i.promise})}t.requestFileSystem=t.requestFileSystem||t.webkitRequestFileSystem;var l,c=void 0!==t.requestFileSystem;return i(),{isAvailable:a,saveFile:s,getFile:o,getFileWriter:r}}]).service("MemoryFileStorage",["$q","FileManager",function(e,t){function n(){return!0}function i(t){return s[t]?e.when(s[t]):e.reject(new Error("FILE_NOT_FOUND"))}function a(t,n){return e.when(s[t]=n)}function o(n,i){var o=t.getFakeFileWriter(i,function(e){a(n,e)});return e.when(o)}var s={};return{isAvailable:n,saveFile:a,getFile:i,getFileWriter:o}}]).service("WebpManager",["qSync","$q",function(e,t){function n(e){var t=(tsNow(),new WebPDecoder),n=t.WebPDecoderConfig,i=n.j||n.output,a=n.input;if(!t.WebPInitDecoderConfig(n))return console.error("[webpjs] Library version mismatch!"),!1;var o=t.VP8StatusCode;status=t.WebPGetFeatures(e,e.length,a),status!=(o.VP8_STATUS_OK||0)&&console.error("[webpjs] status error",status,o);var l=t.WEBP_CSP_MODE;i.colorspace=l.MODE_RGBA,i.J=4;try{status=t.WebPDecode(e,e.length,n)}catch(c){status=c}if(ok=0==status,!ok)return console.error("[webpjs] decoding failed",status,o),!1;var d=i.c.RGBA.ma;if(!d)return!1;var u=i.height,p=i.width;s&&r?r.clearRect(0,0,s.width,s.height):(s=document.createElement("canvas"),r=s.getContext("2d")),s.height=u,s.width=p;for(var m=r.createImageData(s.width,s.height),h=m.data,g=0;u>g;g++)for(var f=0;p>f;f++)h[0+4*f+4*p*g]=d[1+4*f+4*p*g],h[1+4*f+4*p*g]=d[2+4*f+4*p*g],h[2+4*f+4*p*g]=d[3+4*f+4*p*g],h[3+4*f+4*p*g]=d[0+4*f+4*p*g];return r.putImageData(m,0,0),!0}function i(i){if(!n(i))return t.reject({type:"WEBP_PROCESS_FAILED"});if(void 0===s.toBlob)return e.when(dataUrlToBlob(s.toDataURL("image/png")));var a=t.defer();return s.toBlob(function(e){a.resolve(e)},"image/png"),a.promise}var a=!1,o=new Image;o.onload=function(){a=2===this.width&&1===this.height},o.onerror=function(){a=!1},o.src="data:image/webp;base64,UklGRjIAAABXRUJQVlA4ICYAAACyAgCdASoCAAEALmk0mk0iIiIiIgBoSygABc6zbAAA/v56QAAAAA==";var s,r;return{isWebpSupported:function(){return a},getPngBlobFromWebp:i}}]).service("CryptoWorker",["$timeout","$q",function(e,t){function n(e,n,a){var r=t.defer();return s[o]=r,n.task=e,n.taskID=o,(a||i).postMessage(n),o++,r.promise}var i=!1,a=!1,o=0,s={},r=Config.Modes.webcrypto&&window.crypto&&(window.crypto.subtle||window.crypto.webkitSubtle),l=r&&void 0!==r.digest,c=r&&void 0!==r.digest,d=function(e,t){var n=s[e];void 0!==n&&(n.resolve(t),delete s[e])};if(Config.Modes.nacl&&navigator.mimeTypes&&void 0!==navigator.mimeTypes["application/x-pnacl"]){var u=$('
').appendTo($("body"))[0];u.addEventListener("load",function(){a=u.firstChild,console.log(dT(),"NaCl ready")},!0),u.addEventListener("message",function(e){d(e.data.taskID,e.data.result)},!0),u.addEventListener("error",function(e){console.error("NaCl error",e)},!0)}if(window.Worker){var p=new Worker("js/lib/crypto_worker.js");p.onmessage=function(e){i?d(e.data.taskID,e.data.result):i=p},p.onerror=function(e){console.error("CW error",e,e.stack),i=!1}}return{sha1Hash:function(n){if(l){var i=t.defer(),a=Array.isArray(n)?convertToUint8Array(n):n;return r.digest({name:"SHA-1"},a).then(function(e){i.resolve(e)},function(e){console.error("Crypto digest error",e),l=!1,i.resolve(sha1HashSync(n))}),i.promise}return e(function(){return sha1HashSync(n)})},sha256Hash:function(n){if(c){var i=t.defer(),a=Array.isArray(n)?convertToUint8Array(n):n;return r.digest({name:"SHA-256"},a).then(function(e){i.resolve(e)},function(e){console.error("Crypto digest error",e),c=!1,i.resolve(sha256HashSync(n))}),i.promise}return e(function(){return sha256HashSync(n)})},aesEncrypt:function(t,i,o){return a?n("aes-encrypt",{bytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(i),ivBytes:convertToArrayBuffer(o)},a):e(function(){return convertToArrayBuffer(aesEncryptSync(t,i,o))})},aesDecrypt:function(t,i,o){return a?n("aes-decrypt",{encryptedBytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(i),ivBytes:convertToArrayBuffer(o)},a):e(function(){return convertToArrayBuffer(aesDecryptSync(t,i,o))})},factorize:function(t){return t=convertToByteArray(t),a&&t.length<=8?n("factorize",{bytes:t},a):i?n("factorize",{bytes:t}):e(function(){return pqPrimeFactorization(t)})},modPow:function(t,a,o){return i?n("mod-pow",{x:t,y:a,m:o}):e(function(){return bytesModPow(t,a,o)})}}}]).service("ExternalResourcesManager",["$q","$http",function(e,t){function n(e){return void 0!==i[e]?i[e]:i[e]=t.get(e,{responseType:"blob",transformRequest:null}).then(function(e){return window.URL=window.URL||window.webkitURL,window.URL.createObjectURL(e.data)})}var i={};return{downloadImage:n}}]).service("IdleManager",["$rootScope","$window","$timeout",function(e,t,n){function i(){s||(s=!0,$(t).on(l+" blur focus keydown mousedown touchstart",a),setTimeout(function(){a({type:"blur"})},0))}function a(i){if("mousemove"==i.type){var i=i.originalEvent||i;if(i&&0===i.movementX&&0===i.movementY)return;$(t).off("mousemove",a)}var s="blur"==i.type||"timeout"==i.type?!0:!1;r&&document[r]&&(s=!0),n.cancel(o),s||(o=n(function(){a({type:"timeout"})},3e4)),e.idle.isIDLE!=s&&(e.$apply(function(){e.idle.isIDLE=s}),s&&"timeout"==i.type&&$(t).on("mousemove",a))}e.idle={isIDLE:!1};var o,s=!1,r="hidden",l="visibilitychange";return"undefined"!=typeof document.hidden||("undefined"!=typeof document.mozHidden?(r="mozHidden",l="mozvisibilitychange"):"undefined"!=typeof document.msHidden?(r="msHidden",l="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(r="webkitHidden",l="webkitvisibilitychange")),{start:i}}]).service("AppRuntimeManager",["$window",function(e){return{reload:function(){try{location.reload()}catch(t){}e.chrome&&chrome.runtime&&chrome.runtime.reload&&chrome.runtime.reload()},close:function(){try{e.close()}catch(t){}},focus:function(){window.navigator.mozApps&&document.hidden?window.navigator.mozApps.getSelf().onsuccess=function(){this.result.launch()}:(window.chrome&&chrome.app&&chrome.app.window&&chrome.app.window.current().focus(),window.focus())}}}]),angular.module("myApp.i18n",["izhukov.utils"]).factory("_",["$rootScope","$locale",function(e,t){function n(e,t){return e.replace(l,function(i,a,o){var s=t[a];return void 0===s?(console.warn("[i18n] missing param "+a+' for message "'+e+'"'),""):(void 0!==o&&(s=n(s,o.split("|"))),s.toString().trim())})}function i(e){return e=e.replace(/\*\*(.+?)\*\*/g,"$1").replace(/\n| /g,"
")}function a(e,t){var a=!1,l=e;if("_raw"===e.substr(-4)&&(a=!0,e=e.substr(0,e.length-4)),s.hasOwnProperty(e))l=s[e];else{if(!r.hasOwnProperty(e))return console.warn("[i18n] missing key "+e),e;l=r[e],console.warn("[i18n] missing locale key "+o+" / "+e)}return a||(l=encodeEntities(l)),"_md"==e.substr(-3)&&(l=i(l)),arguments.length>1&&("string"==typeof t?(Array.prototype.shift.apply(arguments),l=n(l,arguments)):l=n(l,t)),l}var o=Config.I18n.locale,s=Config.I18n.messages,r=Config.I18n.fallback_messages,l=/\{\s*([a-zA-Z\d\-_]+)(?:\s*:\s*(.*?))?\s*\}/g;return a.locale=function(){return o},a.pluralize=function(n){var i=e.$eval(a(n+"_raw"));return function(e){return(i[t.pluralCat(e)]||"").replace("{}",e)}},a}]).filter("i18n",["_",function(e){return function(t,n){return e(t+"_raw",n)}}]).directive("ngPluralize",["_",function(e){return{restrict:"EA",priority:1,compile:function(t){var n=t.attr("when"),i=e(n+"_raw");t.attr("when",i)}}}]).directive("myI18n",["_",function(e){return{restrict:"EA",compile:function(t){var n=t.children('my-i18n-param:not([name]), [my-i18n-param=""]:not([name])').map(function(e,t){return t.outerHTML}).toArray();t.children('my-i18n-param[name], [my-i18n-param]:not([my-i18n-param=""]), [my-i18n-param][name]').each(function(e,t){n[angular.element(t).attr("my-i18n-param")||angular.element(t).attr("name")]=t.outerHTML}),t.children("my-i18n-param").remove();var i=t.attr("my-i18n")||t.attr("msgid")?t:t.children("my-i18n-format, [my-i18n-format]");i.each(function(t,i){var a=angular.element(i),o=a.attr("my-i18n")||a.attr("msgid")||a.attr("my-i18n-format")||a.html().replace(/\s+/g," ").trim(),s=e(o,n);a.html(s)})}}}]),angular.module("izhukov.mtproto",["izhukov.utils"]).factory("MtpDcConfigurator",function(){function e(e,a){if(void 0===i[e]){var o,s,r=!1;if(Config.Modes.ssl){var l=t[e-1]+(a?"-1":""),c=Config.Modes.test?"apiw_test1":"apiw1";return r="https://"+l+".web.telegram.org/"+c}for(o=0;os[0]||i[0]==s[0]&&i[1]>=s[1])&&(s=[i[0],i[1]+4]),i=s,longFromInts(s[0],s[1])}function n(t,n){var o=t-Math.floor((n||tsNow())/1e3),s=Math.abs(a-o)>10;return e.set({server_time_offset:o}),i=[0,0],a=o,console.log(dT(),"Apply server time",t,n,o,s),s}var i=[0,0],a=0;return e.get("server_time_offset").then(function(e){e&&(a=e)}),{generateID:t,applyServerTime:n}}]).factory("MtpAuthorizer",["MtpDcConfigurator","MtpRsaKeysManager","MtpSecureRandom","MtpTimeManager","CryptoWorker","$http","$q","$timeout",function(e,t,n,i,a,o,s,r){function l(t,n){var a=n.byteLength,r=new Int32Array(n),l=new TLSerialization;l.storeLongP(0,0,"auth_key_id"),l.storeLong(i.generateID(),"msg_id"),l.storeInt(a,"request_length");var c=l.getBuffer(),d=new Int32Array(c),u=c.byteLength,p=new ArrayBuffer(u+a),m=new Int32Array(p);m.set(d),m.set(r,d.length);var h,g=f?p:m;try{h=o.post(e.chooseServer(t),g,{responseType:"arraybuffer",transformRequest:null})}catch(_){h=s.reject({code:406,type:"NETWORK_BAD_RESPONSE",originalError:_})}return h.then(function(e){if(!e.data||!e.data.byteLength)return s.reject({code:406,type:"NETWORK_BAD_RESPONSE"});try{{var t=new TLDeserialization(e.data,{mtproto:!0});t.fetchLong("auth_key_id"),t.fetchLong("msg_id"),t.fetchInt("msg_len")}}catch(n){return s.reject({code:406,type:"NETWORK_BAD_RESPONSE",originalError:n})}return t},function(e){return e.message||e.type||(e={code:406,type:"NETWORK_BAD_REQUEST",originalError:e}),s.reject(e)})}function c(e){var n=e.deferred,i=new TLSerialization({mtproto:!0});i.storeMethod("req_pq",{nonce:e.nonce}),console.log(dT(),"Send req_pq",bytesToHex(e.nonce)),l(e.dcID,i.getBuffer()).then(function(i){var o=i.fetchObject("ResPQ");if("resPQ"!=o._)throw new Error("resPQ response invalid: "+o._);if(!bytesCmp(e.nonce,o.nonce))throw new Error("resPQ nonce mismatch");if(e.serverNonce=o.server_nonce,e.pq=o.pq,e.fingerprints=o.server_public_key_fingerprints,console.log(dT(),"Got ResPQ",bytesToHex(e.serverNonce),bytesToHex(e.pq),e.fingerprints),e.publicKey=t.select(e.fingerprints),!e.publicKey)throw new Error("No public key found");console.log(dT(),"PQ factorization start",e.pq),a.factorize(e.pq).then(function(t){e.p=t[0],e.q=t[1],console.log(dT(),"PQ factorization done",t[2]),d(e)},function(e){console.log("Worker error",e,e.stack),n.reject(e)})},function(e){console.log(dT(),"req_pq error",e.message),n.reject(e)}),r(function(){t.prepare()})}function d(e){var t=e.deferred;e.newNonce=new Array(32),n.nextBytes(e.newNonce);var i=new TLSerialization({mtproto:!0});i.storeObject({_:"p_q_inner_data",pq:e.pq,p:e.p,q:e.q,nonce:e.nonce,server_nonce:e.serverNonce,new_nonce:e.newNonce},"P_Q_inner_data","DECRYPTED_DATA");var a=sha1BytesSync(i.getBuffer()).concat(i.getBytes()),o=new TLSerialization({mtproto:!0});o.storeMethod("req_DH_params",{nonce:e.nonce,server_nonce:e.serverNonce,p:e.p,q:e.q,public_key_fingerprint:e.publicKey.fingerprint,encrypted_data:rsaEncrypt(e.publicKey,a)}),console.log(dT(),"Send req_DH_params"),l(e.dcID,o.getBuffer()).then(function(n){var i=n.fetchObject("Server_DH_Params","RESPONSE");if("server_DH_params_fail"!=i._&&"server_DH_params_ok"!=i._)return t.reject(new Error("Server_DH_Params response invalid: "+i._)),!1;if(!bytesCmp(e.nonce,i.nonce))return t.reject(new Error("Server_DH_Params nonce mismatch")),!1;if(!bytesCmp(e.serverNonce,i.server_nonce))return t.reject(new Error("Server_DH_Params server_nonce mismatch")),!1;if("server_DH_params_fail"==i._){var a=sha1BytesSync(e.newNonce).slice(-16);return bytesCmp(a,i.new_nonce_hash)?(t.reject(new Error("server_DH_params_fail")),!1):(t.reject(new Error("server_DH_params_fail new_nonce_hash mismatch")),!1)}try{u(e,i.encrypted_answer)}catch(o){return t.reject(o),!1}p(e)},function(e){t.reject(e)})}function u(e,t){e.localTime=tsNow(),e.tmpAesKey=sha1BytesSync(e.newNonce.concat(e.serverNonce)).concat(sha1BytesSync(e.serverNonce.concat(e.newNonce)).slice(0,12)),e.tmpAesIv=sha1BytesSync(e.serverNonce.concat(e.newNonce)).slice(12).concat(sha1BytesSync([].concat(e.newNonce,e.newNonce)),e.newNonce.slice(0,4));var n=aesDecryptSync(t,e.tmpAesKey,e.tmpAesIv),a=n.slice(0,20),o=n.slice(20),s=bytesToArrayBuffer(o),r=new TLDeserialization(s,{mtproto:!0}),l=r.fetchObject("Server_DH_inner_data");if("server_DH_inner_data"!=l._)throw new Error("server_DH_inner_data response invalid: "+constructor);if(!bytesCmp(e.nonce,l.nonce))throw new Error("server_DH_inner_data nonce mismatch");if(!bytesCmp(e.serverNonce,l.server_nonce))throw new Error("server_DH_inner_data serverNonce mismatch");console.log(dT(),"Done decrypting answer"),e.g=l.g,e.dhPrime=l.dh_prime,e.gA=l.g_a,e.serverTime=l.server_time,e.retry=0;var c=r.getOffset();if(!bytesCmp(a,sha1BytesSync(o.slice(0,c))))throw new Error("server_DH_inner_data SHA1-hash mismatch");i.applyServerTime(e.serverTime,e.localTime)}function p(e){var t=e.deferred,i=bytesFromHex(e.g.toString(16));e.b=new Array(256),n.nextBytes(e.b),a.modPow(i,e.b,e.dhPrime).then(function(n){var i=new TLSerialization({mtproto:!0});i.storeObject({_:"client_DH_inner_data",nonce:e.nonce,server_nonce:e.serverNonce,retry_id:[0,e.retry++],g_b:n},"Client_DH_Inner_Data");var o=sha1BytesSync(i.getBuffer()).concat(i.getBytes()),s=aesEncryptSync(o,e.tmpAesKey,e.tmpAesIv),r=new TLSerialization({mtproto:!0});r.storeMethod("set_client_DH_params",{nonce:e.nonce,server_nonce:e.serverNonce,encrypted_data:s}),console.log(dT(),"Send set_client_DH_params"),l(e.dcID,r.getBuffer()).then(function(n){var i=n.fetchObject("Set_client_DH_params_answer");return"dh_gen_ok"!=i._&&"dh_gen_retry"!=i._&&"dh_gen_fail"!=i._?(t.reject(new Error("Set_client_DH_params_answer response invalid: "+i._)),!1):bytesCmp(e.nonce,i.nonce)?bytesCmp(e.serverNonce,i.server_nonce)?void a.modPow(e.gA,e.b,e.dhPrime).then(function(n){var a=sha1BytesSync(n),o=a.slice(0,8),s=a.slice(-8);switch(console.log(dT(),"Got Set_client_DH_params_answer",i._),i._){case"dh_gen_ok":var r=sha1BytesSync(e.newNonce.concat([1],o)).slice(-16);if(!bytesCmp(r,i.new_nonce_hash1))return t.reject(new Error("Set_client_DH_params_answer new_nonce_hash1 mismatch")),!1;var l=bytesXor(e.newNonce.slice(0,8),e.serverNonce.slice(0,8));e.authKeyID=s,e.authKey=n,e.serverSalt=l,t.resolve(e);break;case"dh_gen_retry":var c=sha1BytesSync(e.newNonce.concat([2],o)).slice(-16);return bytesCmp(c,i.new_nonce_hash2)?p(e):(t.reject(new Error("Set_client_DH_params_answer new_nonce_hash2 mismatch")),!1);case"dh_gen_fail":var d=sha1BytesSync(e.newNonce.concat([3],o)).slice(-16);return bytesCmp(d,i.new_nonce_hash3)?(t.reject(new Error("Set_client_DH_params_answer fail")),!1):(t.reject(new Error("Set_client_DH_params_answer new_nonce_hash3 mismatch")),!1)}},function(e){t.reject(e)}):(t.reject(new Error("Set_client_DH_params_answer server_nonce mismatch")),!1):(t.reject(new Error("Set_client_DH_params_answer nonce mismatch")),!1)},function(e){t.reject(e)})},function(e){t.reject(e)})}function m(t){if(void 0!==_[t])return _[t];for(var n=[],i=0;16>i;i++)n.push(nextRandomInt(255));if(!e.chooseServer(t))return s.reject(new Error("No server found for dc "+t));var a={dcID:t,nonce:n,deferred:s.defer()};return r(function(){c(a)}),_[t]=a.deferred.promise,_[t]["catch"](function(){delete _[t]}),_[t]}var h=navigator.userAgent.match(/Chrome\/(\d+(\.\d+)?)/),g=h&&parseFloat(h[1])||!1,f=!("ArrayBufferView"in window)&&(!g||30>g);delete o.defaults.headers.post["Content-Type"],delete o.defaults.headers.common.Accept;var _={};return{auth:m}}]).factory("MtpNetworkerFactory",["MtpDcConfigurator","MtpTimeManager","MtpSecureRandom","Storage","CryptoWorker","AppRuntimeManager","$http","$q","$timeout","$interval","$rootScope",function(e,t,n,i,a,o,s,r,l,c,d){function u(e,t,n,i){i=i||{},this.dcID=e,this.iii=g++,this.authKey=t,this.authKeyUint8=convertToUint8Array(t),this.authKeyBuffer=convertToArrayBuffer(t),this.authKeyID=sha1BytesSync(t).slice(-8),this.serverSalt=n,this.upload=i.fileUpload||i.fileDownload||!1,this.updateSession(),this.currentRequests=0,this.checkConnectionPeriod=0,this.sentMessages={},this.serverMessages=[],this.clientMessages=[],this.pendingMessages={},this.pendingAcks=[],this.pendingResends=[],this.connectionInited=!1,this.pendingTimeouts=[],this.longPollInt=c(this.checkLongPoll.bind(this),1e4),this.checkLongPoll(),f||(f=!0,d.offline=!0,d.offlineConnecting=!0),Config.Navigator.mobile&&this.setupMobileSleep()}function p(){_&&(_=!1,h({_:"new_session_created"}))}function m(){_=!0}var h,g=0,f=!1,_=!1,v=navigator.userAgent.match(/Chrome\/(\d+(\.\d+)?)/),y=v&&parseFloat(v[1])||!1,b=!("ArrayBufferView"in window)&&(!y||30>y);return delete s.defaults.headers.post["Content-Type"],delete s.defaults.headers.common.Accept,d.retryOnline=function(){$(document.body).trigger("online")},u.prototype.updateSession=function(){this.seqNo=0,this.sessionID=new Array(8),n.nextBytes(this.sessionID)},u.prototype.setupMobileSleep=function(){var e=this;d.$watch("idle.isIDLE",function(t){t?e.sleepAfter=tsNow()+3e4:(delete e.sleepAfter,e.checkLongPoll())}),d.$on("push_received",function(){e.sleepAfter&&(e.sleepAfter=tsNow()+3e4,e.checkLongPoll())})},u.prototype.updateSentMessage=function(e){var n=this.sentMessages[e];if(!n)return!1;var i=this;if(n.container){var a=[];angular.forEach(n.inner,function(e){var t=i.updateSentMessage(e);t&&a.push(t.msg_id)}),n.inner=a}return n.msg_id=t.generateID(),n.seq_no=this.generateSeqNo(n.notContentRelated||n.container),this.sentMessages[n.msg_id]=n,delete i.sentMessages[e],n},u.prototype.generateSeqNo=function(e){var t=2*this.seqNo;return e||(t++,this.seqNo++),t},u.prototype.wrapMtpCall=function(e,n,i){var a=new TLSerialization({mtproto:!0});a.storeMethod(e,n);var o=t.generateID(),s=this.generateSeqNo(),r={msg_id:o,seq_no:s,body:a.getBytes()};return Config.Modes.debug&&console.log(dT(),"MT call",e,n,o,s),this.pushMessage(r,i)},u.prototype.wrapMtpMessage=function(e,n){n=n||{};var i=new TLSerialization({mtproto:!0});i.storeObject(e,"Object");var a=t.generateID(),o=this.generateSeqNo(n.notContentRelated),s={msg_id:a,seq_no:o,body:i.getBytes()};return Config.Modes.debug&&console.log(dT(),"MT message",e,a,o),this.pushMessage(s,n)},u.prototype.wrapApiCall=function(e,n,i){var a=new TLSerialization(i);this.connectionInited||(a.storeInt(3667594509,"invokeWithLayer"),a.storeInt(Config.Schema.API.layer,"layer"),a.storeInt(1769565673,"initConnection"),a.storeInt(Config.App.id,"api_id"),a.storeString(navigator.userAgent||"Unknown UserAgent","device_model"),a.storeString(navigator.platform||"Unknown Platform","system_version"),a.storeString(Config.App.version,"app_version"),a.storeString(navigator.language||"en","lang_code")),i.afterMessageID&&(a.storeInt(3416209197,"invokeAfterMsg"),a.storeLong(i.afterMessageID,"msg_id")),i.resultType=a.storeMethod(e,n);var o=t.generateID(),s=this.generateSeqNo(),r={msg_id:o,seq_no:s,body:a.getBytes(!0),isAPI:!0};return Config.Modes.debug?console.log(dT(),"Api call",e,n,o,s,i):console.log(dT(),"Api call",e),this.pushMessage(r,i)},u.prototype.checkLongPoll=function(){var e=this.cleanupSent();if(this.longPollPending&&tsNow()t.sleepAfter)||t.sendLongPoll()})},u.prototype.sendLongPoll=function(){var e=25e3,t=this;this.longPollPending=tsNow()+e,this.wrapMtpCall("http_wait",{max_delay:0,wait_after:0,max_wait:e},{noResponse:!0,longPoll:!0}).then(function(){delete t.longPollPending,setZeroTimeout(t.checkLongPoll.bind(t))},function(){console.log("Long-poll failed")})},u.prototype.pushMessage=function(e,t){var n=r.defer();return this.sentMessages[e.msg_id]=angular.extend(e,t||{},{deferred:n}),this.pendingMessages[e.msg_id]=0,t&&t.noShedule||this.sheduleRequest(),angular.isObject(t)&&(t.messageID=e.msg_id),n.promise},u.prototype.pushResend=function(e,t){var n=t?tsNow()+t:0,i=this.sentMessages[e];if(i.container)for(var a=0;a=l){if(o=m.sentMessages[t]){var n=(o.body.byteLength||o.body.length)+32;if(!o.notContentRelated&&u)return;if(!o.notContentRelated&&r&&r+n>655360)return void(u=!0);if(o.singleInRequest&&(p++,p>1))return;s.push(o),r+=n,o.isAPI?c=!0:o.longPoll&&(d=!0)}delete m.pendingMessages[t]}}),c&&!d){var h=new TLSerialization({mtproto:!0});h.storeMethod("http_wait",{max_delay:0,wait_after:0,max_wait:1e3}),s.push({msg_id:t.generateID(),seq_no:this.generateSeqNo(),body:h.getBytes()})}if(s.length){var g=[];if(s.length>1){var f=new TLSerialization({mtproto:!0,startMaxLength:r+64});f.storeInt(1945237724,"CONTAINER[id]"),f.storeInt(s.length,"CONTAINER[count]");for(var v=[],n=0;n1)&&this.sheduleRequest()}},u.prototype.getEncryptedMessage=function(e){var t=this;return a.sha1Hash(e).then(function(n){var i=new Uint8Array(n).subarray(4,20);return t.getMsgKeyIv(i,!0).then(function(t){return a.aesEncrypt(e,t[0],t[1]).then(function(e){return{bytes:e,msgKey:i}})})})},u.prototype.getDecryptedMessage=function(e,t){return this.getMsgKeyIv(e,!1).then(function(e){return a.aesDecrypt(t,e[0],e[1])})},u.prototype.sendEncryptedRequest=function(t,n){var a=this;n=n||{};var l=new TLSerialization({startMaxLength:t.body.length+64});return l.storeIntBytes(this.serverSalt,64,"salt"),l.storeIntBytes(this.sessionID,64,"session_id"),l.storeLong(t.msg_id,"message_id"),l.storeInt(t.seq_no,"seq_no"),l.storeInt(t.body.length,"message_data_length"),l.storeRawBytes(t.body,"message_data"),this.getEncryptedMessage(l.getBuffer()).then(function(t){var l=new TLSerialization({startMaxLength:t.bytes.byteLength+256});l.storeIntBytes(a.authKeyID,64,"auth_key_id"),l.storeIntBytes(t.msgKey,128,"msg_key"),l.storeRawBytes(t.bytes,"encrypted_data");var c,d=b?l.getBuffer():l.getArray();try{n=angular.extend(n||{},{responseType:"arraybuffer",transformRequest:null}),c=s.post(e.chooseServer(a.dcID,a.upload),d,n)}catch(u){c=r.reject(u)}return c.then(function(e){return e.data&&e.data.byteLength?e:r.reject({code:406,type:"NETWORK_BAD_RESPONSE"})},function(e){return 404==e.status&&-1!=(e.data||"").indexOf("nginx/0.3.33")&&i.remove("dc"+a.dcID+"_server_salt","dc"+a.dcID+"_auth_key").then(function(){o.reload()}),e.message||e.type||(e={code:406,type:"NETWORK_BAD_REQUEST"}),r.reject(e)})})},u.prototype.parseResponse=function(e){var t=this,n=new TLDeserialization(e),i=n.fetchIntBytes(64,!1,"auth_key_id");if(!bytesCmp(i,this.authKeyID))throw new Error("Invalid server auth_key_id: "+bytesToHex(i));var o=n.fetchIntBytes(128,!0,"msg_key"),s=n.fetchRawBytes(e.byteLength-n.getOffset(),!0,"encrypted_data");return this.getDecryptedMessage(o,s).then(function(e){var n=new TLDeserialization(e,{mtproto:!0}),i=(n.fetchIntBytes(64,!1,"salt"),n.fetchIntBytes(64,!1,"session_id")),s=n.fetchLong("message_id"),r=n.fetchInt("seq_no"),l=n.fetchRawBytes(!1,!0,"message_data"),c=convertToUint8Array(e).subarray(0,n.getOffset());return a.sha1Hash(c).then(function(e){if(!bytesCmp(o,bytesFromArrayBuffer(e).slice(-16)))throw console.warn(o,bytesFromArrayBuffer(e)),new Error("server msgKey mismatch");var n=bytesToArrayBuffer(l),a={mtproto:!0,override:{mt_message:function(e,t){e.msg_id=this.fetchLong(t+"[msg_id]"),e.seqno=this.fetchInt(t+"[seqno]"),e.bytes=this.fetchInt(t+"[bytes]");var n=this.getOffset();try{e.body=this.fetchObject("Object",t+"[body]")}catch(i){console.error(dT(),"parse error",i.message,i.stack),e.body={_:"parse_error",error:i}}this.offset!=n+e.bytes&&(console.warn(dT(),"set offset",this.offset,n,e.bytes),this.offset=n+e.bytes)},mt_rpc_result:function(e,n){e.req_msg_id=this.fetchLong(n+"[req_msg_id]");var i=t.sentMessages[e.req_msg_id],a=i&&i.resultType||"Object";e.result=this.fetchObject(a,n+"[result]")}}},c=new TLDeserialization(n,a),d=c.fetchObject("","INPUT");return{response:d,messageID:s,sessionID:i,seqNo:r}})})},u.prototype.applyServerSalt=function(e){var t=longToBytes(e),n={};return n["dc"+this.dcID+"_server_salt"]=bytesToHex(t),i.set(n),this.serverSalt=t,!0},u.prototype.sheduleRequest=function(e){this.offline&&this.checkConnection("forced shedule");var t=tsNow()+e;return e&&this.nextReq&&this.nextReq<=t?!1:(l.cancel(this.nextReqPromise),e>0?this.nextReqPromise=l(this.performSheduledRequest.bind(this),e||0):setZeroTimeout(this.performSheduledRequest.bind(this)),void(this.nextReq=t))},u.prototype.ackMessage=function(e){this.pendingAcks.push(e),this.sheduleRequest(3e4)},u.prototype.reqResendMessage=function(e){console.log(dT(),"Req resend",e),this.pendingResends.push(e),this.sheduleRequest(100)},u.prototype.cleanupSent=function(){var e=this,t=!1;return angular.forEach(this.sentMessages,function(n,i){if(n.notContentRelated&&void 0===e.pendingMessages[i])delete e.sentMessages[i];else if(n.container){for(var a=0;as;s++)this.processMessage(e.messages[s],n,a);break;case"bad_server_salt":console.log(dT(),"Bad server salt",e);var r=this.sentMessages[e.bad_msg_id];if(!r||r.seq_no!=e.bad_msg_seqno)throw console.log(e.bad_msg_id,e.bad_msg_seqno),new Error("Bad server salt for invalid message");this.applyServerSalt(e.new_server_salt),this.pushResend(e.bad_msg_id),this.ackMessage(n);break;case"bad_msg_notification":console.log(dT(),"Bad msg notification",e);var r=this.sentMessages[e.bad_msg_id];if(!r||r.seq_no!=e.bad_msg_seqno)throw console.log(e.bad_msg_id,e.bad_msg_seqno),new Error("Bad msg notification for invalid message");if(16==e.error_code||17==e.error_code){t.applyServerTime(bigStringInt(n).shiftRight(32).toString(10))&&(console.log(dT(),"Update session"),this.updateSession());var l=this.updateSentMessage(e.bad_msg_id);this.pushResend(l.msg_id),this.ackMessage(n)}break;case"message":this.serverMessages.push(e.msg_id),this.processMessage(e.body,e.msg_id,a);break;case"new_session_created":this.ackMessage(n),this.processMessageAck(e.first_msg_id),this.applyServerSalt(e.server_salt);var c=this;i.get("dc").then(function(t){t==c.dcID&&!c.upload&&h&&h(e)});break;case"msgs_ack":for(var s=0;s5?"[.."+e.result.length+"..]":e.result),console.log(dT(),"Rpc response",f)}r.deferred.resolve(e.result)}r.isAPI&&(this.connectionInited=!0)}delete this.sentMessages[p]}break;default:this.ackMessage(n),h&&h(e)}},{getNetworker:function(e,t,n,i){return new u(e,t,n,i)},setUpdatesProcessor:function(e){h=e},stopAll:m,startAll:p}}]),angular.module("izhukov.mtproto.wrapper",["izhukov.utils","izhukov.mtproto"]).factory("MtpApiManager",["Storage","MtpAuthorizer","MtpNetworkerFactory","MtpSingleInstanceService","AppRuntimeManager","ErrorService","qSync","$q","TelegramMeWebService",function(e,t,n,i,a,o,s,r,l){function c(e){f!==e&&(f=e,l.setAuthorized(f))}function d(t,n){e.set({dc:t,user_auth:angular.extend({dcID:t},n)}),c(!0),b=t}function u(){for(var t=[],n=1;5>=n;n++)t.push("dc"+n+"_auth_key");return e.get.apply(e,t).then(function(n){for(var i=[],a=0;a0||!1),e.id||0})}function g(){return b||!1}var f,_={},v={},y={},b=!1;return i.start(),e.get("dc").then(function(e){e&&(b=e)}),{getBaseDcID:g,getUserID:h,invokeApi:m,getNetworker:p,setUserAuth:d,logOut:u}}]).factory("MtpApiFileManager",["MtpApiManager","$q","qSync","FileManager","IdbFileStorage","TmpfsFileStorage","MemoryFileStorage","WebpManager",function(e,t,n,i,a,o,s,r){function l(e,n,i){void 0===w[e]&&(w[e]=[],k[e]=0);var a=w[e],o=t.defer();return a.push({cb:n,deferred:o,activeDelta:i}),setZeroTimeout(function(){c(e)}),o.promise}function c(e){var t=w[e],n="upload"==e?11:5;if(k[e]>=n||!t||!t.length)return!1;var i=t.shift(),a=i.activeDelta||1;k[e]+=a;$++;i.cb().then(function(t){k[e]-=a,c(e),i.deferred.resolve(t)},function(t){k[e]-=a,c(e),i.deferred.reject(t)})}function d(e){switch(e._){case"inputVideoFileLocation":return"video"+e.id+".mp4";case"inputDocumentFileLocation":var t=(e.file_name||"").split(".",2),n=t[1]||"";return e.sticker&&!r.isWebpSupported()&&(n+=".png"),t.length?t[0]+"_"+e.id+"."+n:"doc"+e.id;case"inputAudioFileLocation":return"audio"+e.id;default:e.volume_id||console.trace("Empty location",e);var n="jpg";return e.sticker&&(n=r.isWebpSupported()?"webp":"png"),e.volume_id+"_"+e.local_id+"_"+e.secret+"."+n}}function u(e){if(!e)return!1;var t=d(e);return b[t]||!1}function p(){return o.isAvailable()?o:a.isAvailable()?a:s}function m(e,t){var n=d(e);return v[n]||(v[n]=p().saveFile(n,t).then(function(e){return b[n]=e})),v[n]}function h(a){if(!i.isAvailable())return t.reject({type:"BROWSER_BLOB_NOT_SUPPORTED"});var o=d(a),s=a.sticker?"image/webp":"image/jpeg",c=v[o]||y[o];if(c)return c;var u=p();return y[o]=u.getFile(o).then(function(e){return b[o]=e},function(){var t=l(a.dc_id,function(){var t=a;return t._&&"fileLocation"!=t._||(t=angular.extend({},a,{_:"inputFileLocation"})),e.invokeApi("upload.getFile",{location:t,offset:0,limit:1048576},{dcID:a.dc_id,fileDownload:!0,createNetworker:!0})}),c=function(e){return!a.sticker||r.isWebpSupported()?n.when(e):r.getPngBlobFromWebp(e)};return u.getFileWriter(o,s).then(function(e){return t.then(function(t){return c(t.bytes).then(function(t){return i.write(e,t).then(function(){return b[o]=e.finalize()})})})})})}function g(e,t){var n=p(),i=d(e);return n.getFile(i,t)}function f(a,o,s,c){if(!i.isAvailable())return t.reject({type:"BROWSER_BLOB_NOT_SUPPORTED"});c=c||{};var u=!1;o.sticker&&!r.isWebpSupported()&&(c.toFileEntry||s>524288?delete o.sticker:(u=!0,c.mime="image/png"));var m=d(o),h=c.toFileEntry||null,g=v[m]||y[m],f=p();if(g)return h?g.then(function(e){return i.copy(e,h)}):g;var _,w=t.defer(),k=!1,$=!1,S=c.mime||"image/jpeg",C=function(e){w.reject(e),C=angular.noop,!_||e&&"DOWNLOAD_CANCELED"==e.type||_.truncate(0)};return f.getFile(m,s).then(function(e){h?i.copy(e,h).then(function(){w.resolve()},C):w.resolve(b[m]=e)},function(){var c=h?i.getFileWriter(h):f.getFileWriter(m,S),d=function(e){return u?r.getPngBlobFromWebp(e):n.when(e)};c.then(function(n){_=n;var r,c,u=524288,p=0,g=t.when();if(n.length){if(p=n.length,p>=s)return void(h?w.resolve():w.resolve(b[m]=n.finalize()));n.seek(p),w.notify({done:p,total:s})}for(r=p;s>r;r+=u)c=t.defer(),function(r,c,p,g){return l(a,function(){return k?t.when():e.invokeApi("upload.getFile",{location:o,offset:c,limit:u},{dcID:a,fileDownload:!0,singleInRequest:void 0!==window.safari,createNetworker:!0})},2).then(function(e){g.then(function(){return k?t.when():d(e.bytes).then(function(e){return i.write(n,e).then(function(){p.resolve()},C).then(function(){r?($=!0,h?w.resolve():w.resolve(b[m]=n.finalize())):w.notify({done:c+u,total:s})})})})})}(r+u>=s,r,c,g),g=c.promise})}),w.promise.cancel=function(){k||$||(k=!0,delete y[m],C({type:"DOWNLOAD_CANCELED"}))},h||(y[m]=w.promise),w.promise}function _(n){var i=n.size,a=i>=10485760,o=!1,s=!1,r=0,c=262144,d=2;i>67108864?(c=524288,d=4):102400>i&&(c=32768,d=1);var u=Math.ceil(i/c);if(u>3e3)return t.reject({type:"FILE_TOO_BIG"});var p,m=[nextRandomInt(4294967295),nextRandomInt(4294967295)],h=t.defer(),g=function(e){h.reject(e),o=!0,g=angular.noop},f=0,_={_:a?"inputFileBig":"inputFile",id:m,parts:u,name:n.name,md5_checksum:""};for(p=0;i>p;p+=c)!function(p,f){l("upload",function(){var l=t.defer(),d=new FileReader,v=n.slice(p,p+c);return d.onloadend=function(t){return o?void l.reject():void(t.target.readyState==FileReader.DONE&&e.invokeApi(a?"upload.saveBigFilePart":"upload.saveFilePart",{file_id:m,file_part:f,file_total_parts:u,bytes:t.target.result},{startMaxLength:c+256,fileUpload:!0,singleInRequest:!0}).then(function(){r++,l.resolve(),r>=u?(h.resolve(_),s=!0):(console.log(dT(),"Progress",r*c/i),h.notify({done:r*c,total:i})) },g))},d.readAsArrayBuffer(v),l.promise},d)}(p,f++);return h.promise.cancel=function(){console.log("cancel upload",o,s),o||s||(o=!0,g({type:"UPLOAD_CANCELED"}))},h.promise}var v={},y={},b={},w={},k={},$=0;return{getCachedFile:u,getDownloadedFile:g,downloadFile:f,downloadSmallFile:h,saveSmallFile:m,uploadFile:_}}]).service("MtpSingleInstanceService",["_","$rootScope","$interval","Storage","AppRuntimeManager","IdleManager","ErrorService","MtpNetworkerFactory",function(e,t,n,i,a,o,s,r){function l(){if(!p&&!Config.Navigator.mobile&&!Config.Modes.packed){p=!0,o.start(),h=tsNow(),t.$watch("idle.isIDLE",d),n(d,5e3),d();try{$($window).on("beforeunload",c)}catch(e){}}}function c(){i.remove(m?"xt_instance":"xt_idle_instance")}function d(){var n=tsNow(),a=t.idle&&t.idle.isIDLE,o={id:u,idle:a,time:n};i.get("xt_instance","xt_idle_instance").then(function(t){var l=t[0],c=t[1];!l||l.timen-1e4&&n>g&&(s.alert(e("error_modal_warning_title_raw"),e("error_modal_multiple_open_tabs_raw")),g+=tsNow()+6e4)),i.set({xt_instance:o}),m||r.startAll(),m=!0):(i.set({xt_idle_instance:o}),m&&r.stopAll(),m=!1)})}var u=nextRandomInt(4294967295),p=!1,m=!1,h=tsNow(),g=0;return{start:l}}]),angular.module("myApp",["ngRoute","ngSanitize","ngTouch","ui.bootstrap","mediaPlayer","izhukov.utils","izhukov.mtproto","izhukov.mtproto.wrapper","myApp.filters","myApp.services","myApp.templates","myApp.directives","myApp.controllers"]).config(["$locationProvider","$routeProvider","$compileProvider","StorageProvider",function(e,t,n,i){n.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|blob|filesystem|chrome-extension|app):|data:image\//),n.aHrefSanitizationWhitelist(/^\s*(https?|ftp|file|tg|mailto|blob|filesystem|chrome-extension|app):|data:/),Config.Modes.test&&i.setPrefix("t_"),t.when("/",{templateUrl:templateUrl("welcome"),controller:"AppWelcomeController"}),t.when("/login",{templateUrl:templateUrl("login"),controller:"AppLoginController"}),t.when("/im",{templateUrl:templateUrl("im"),controller:"AppIMController",reloadOnSearch:!1}),t.otherwise({redirectTo:"/"})}]),angular.module("myApp.services",["myApp.i18n","izhukov.utils"]).service("AppUsersManager",["$rootScope","$modal","$modalStack","$filter","$q","qSync","MtpApiFileManager","MtpApiManager","RichTextProcessor","ErrorService","Storage","_",function(e,t,n,i,a,o,s,r,l,c,d,u){function p(){return R?R:R=r.invokeApi("contacts.getContacts",{hash:""}).then(function(e){var t,n;L=[],_(e.users);for(var n=0;n0,contact:(2048&t.flags)>0,mutual:(4096&t.flags)>0,deleted:(8192&t.flags)>0,bot:(16384&t.flags)>0,botNoPrivacy:(32768&t.flags)>0,botNoGroups:(65536&t.flags)>0};var o=t.sortName.split(" "),s=o.shift(),r=o.pop();t.initials=s.charAt(0)+(r?r.charAt(0):s.charAt(1)),t.sortStatus=t.pFlags.bot?-1:y(t.status);var c=F[a];void 0===c?c=F[a]=t:safeReplaceObject(c,t),e.$broadcast("user_update",a),void 0!==j[a]&&safeReplaceObject(j[a],t&&t.photo&&t.photo.photo_small||{empty:!0})}}function y(e){if(e){var t=e.expires||e.was_online;if(t)return t;{tsNow(!0)+z}switch(e._){case"userStatusRecently":return tsNow(!0)+z-259200;case"userStatusLastWeek":return tsNow(!0)+z-604800;case"userStatusLastMonth":return tsNow(!0)+z-2592e3}}return 0}function b(e){return angular.isObject(e)?e:F[e]||{id:e,deleted:!0,num:1}}function w(){return b(B)}function k(e){return F[e]&&F[e].pFlags.bot}function $(e){return angular.isObject(F[e])}function S(e,t){var n=b(e);return 333e3==e?{placeholder:"img/placeholders/DialogListAvatarSystem@2x.png"}:(void 0===j[e]&&(j[e]=n&&n.photo&&n.photo.photo_small||{empty:!0}),{num:n.num,placeholder:"img/placeholders/"+t+"Avatar"+n.num+"@2x.png",location:j[e]})}function C(e){var t=b(e);return"u"+e+(t.access_hash?"_"+t.access_hash:"")}function M(e){var t=b(e);return t.pFlags.self?{_:"inputUserSelf"}:{_:"inputUser",user_id:e,access_hash:t.access_hash||0}}function x(){var t=tsNow(!0)+z;angular.forEach(F,function(n){n.status&&"userStatusOnline"==n.status._&&n.status.expires=1e3?void o.resolve(s):void this["continue"]()},t.onerror=function(e){console.log("phonebook error",e,e.type,e.message),o.reject(e)},o.promise}return{isAvailable:a,openPhonebookImport:o,getPhonebookContacts:s}}]).service("AppChatsManager",["$q","$rootScope","$modal","_","MtpApiFileManager","MtpApiManager","AppUsersManager","AppPhotosManager","RichTextProcessor",function(e,t,n,i,a,o,s,r,l){function c(e){angular.forEach(e,d)}function d(e){if(angular.isObject(e)){e.rTitle=l.wrapRichText(e.title,{noLinks:!0,noLinebreaks:!0})||i("chat_title_deleted");var n=SearchIndexManager.cleanSearchText(e.title||"").split(" "),a=n.shift(),o=n.pop();e.initials=a.charAt(0)+(o?o.charAt(0):a.charAt(1)),e.num=Math.abs(e.id>>1)%(Config.Mobile?4:8)+1,void 0===y[e.id]?y[e.id]=e:(safeReplaceObject(y[e.id],e),t.$broadcast("chat_update",e.id)),void 0!==k[e.id]&&safeReplaceObject(k[e.id],e&&e.photo&&e.photo.photo_small||{empty:!0})}}function u(e){return y[e]||{id:e,deleted:!0}}function p(n){return void 0===b[n]||y[n].version!=b[n].participants.version&&!y[n].left?void 0!==w[n]?w[n]:w[n]=o.invokeApi("messages.getFullChat",{chat_id:n}).then(function(e){return c(e.chats),s.saveApiUsers(e.users),e.full_chat&&e.full_chat.chat_photo.id&&r.savePhoto(e.full_chat.chat_photo),delete w[n],t.$broadcast("chat_full_update",n),b[n]=e.full_chat}):e.when(b[n])}function m(e,t){return p(e).then(function(n){return!t&&n.exported_invite&&"chatInviteExported"==n.exported_invite._?n.exported_invite.link:o.invokeApi("messages.exportChatInvite",{chat_id:e}).then(function(t){return void 0!==b[e]&&(b[e].exported_invite=t),t.link})})}function h(e){return angular.isObject(y[e])}function g(e,t){var n=u(e);return void 0===k[e]&&(k[e]=n&&n.photo&&n.photo.photo_small||{empty:!0}),{placeholder:"img/placeholders/"+t+"Avatar"+(Config.Mobile?n.num:Math.ceil(n.num/2))+"@2x.png",location:k[e]}}function f(e){u(e);return"g"+e}function _(e,t){var n=angular.copy(t),i=u(e);return n.participants&&"chatParticipants"==n.participants._&&o.getUserID().then(function(e){n.isAdmin=e==n.participants.admin_id,angular.forEach(n.participants.participants,function(t){t.user=s.getUser(t.user_id),t.canLeave=e==t.user_id,t.canKick=!t.canLeave&&(n.isAdmin||e==t.inviter_id)})}),n.thumb={placeholder:"img/placeholders/GroupAvatar"+(Config.Mobile?i.num:Math.ceil(i.num/2))+"@2x.png",location:i&&i.photo&&i.photo.photo_small,width:72,height:72,size:0},n.peerString=f(e),n.chat=i,n}function v(e){var i=t.$new();i.chatID=e;n.open({templateUrl:templateUrl("chat_modal"),controller:"ChatModalController",scope:i,windowClass:"chat_modal_window mobile_modal"})}var y={},b={},w={},k={};return t.$on("apiUpdate",function(e,n){switch(n._){case"updateChatParticipants":var i=n.participants,a=b[i.id];void 0!==a&&(a.participants=n.participants,t.$broadcast("chat_full_update",chatID));break;case"updateChatParticipantAdd":var a=b[n.chat_id];if(void 0!==a){for(var i=a.participants.participants||[],o=0,s=i.length;s>o;o++)if(i[o].user_id==n.user_id)return;i.push({_:"chatParticipant",user_id:n.user_id,inviter_id:n.inviter_id,date:tsNow(!0)}),a.participants.version=n.version,t.$broadcast("chat_full_update",n.chat_id)}break;case"updateChatParticipantDelete":var a=b[n.chat_id];if(void 0!==a)for(var i=a.participants.participants||[],o=0,s=i.length;s>o;o++)if(i[o].user_id==n.user_id)return i.splice(o,1),a.participants.version=n.version,void t.$broadcast("chat_full_update",n.chat_id)}}),{saveApiChats:c,saveApiChat:d,getChat:u,getChatFull:p,getChatPhoto:g,getChatString:f,getChatInviteLink:m,hasChat:h,wrapForFull:_,openChat:v}}]).service("AppPeersManager",["AppUsersManager","AppChatsManager","MtpApiManager",function(e,t){return{getInputPeer:function(e){var t="u"==e.charAt(0),n=e.substr(1).split("_");return t?{_:"inputPeerUser",user_id:n[0],access_hash:n[1]}:{_:"inputPeerChat",chat_id:n[0]}},getInputPeerByID:function(t){return t>0?{_:"inputPeerUser",user_id:t,access_hash:e.getUser(t).access_hash||0}:0>t?{_:"inputPeerChat",chat_id:-t}:void 0},getPeerSearchText:function(n){var i;if(n>0)i="%pu "+e.getUserSearchText(n);else if(0>n){var a=t.getChat(-n);i="%pg "+(a.title||"")}return i},getPeerString:function(n){return n>0?e.getUserString(n):t.getChatString(-n)},getOutputPeer:function(e){return e>0?{_:"peerUser",user_id:e}:{_:"peerChat",chat_id:-e}},getPeerID:function(e){if(angular.isObject(e))return e.user_id?e.user_id:-e.chat_id;var t="u"==e.charAt(0),n=e.substr(1).split("_");return t?n[0]:-n[0]||0},getPeer:function(n){return n>0?e.getUser(n):t.getChat(-n)},getPeerPhoto:function(n,i,a){return n>0?e.getUserPhoto(n,i):t.getChatPhoto(-n,a)}}}]).service("AppProfileManager",["$q","AppUsersManager","AppChatsManager","AppPhotosManager","NotificationsManager","MtpApiManager","RichTextProcessor",function(e,t,n,i,a,o,s){function r(e){var t=e&&e.user_id;if(!t)return!1;var n={};return angular.forEach(e.commands,function(e){n[e.command]=e.description}),d[t]={id:t,version:e.version,shareText:e.share_text,description:e.description,rAbout:s.wrapRichText(e.share_text,{noLinebreaks:!0}),commands:n}}function l(e,n){return o.invokeApi("users.getFullUser",{id:t.getUserInput(e)}).then(function(o){return n&&n.phone_number?(o.user.phone=n.phone_number,(n.first_name||n.last_name)&&(o.user.first_name=n.first_name,o.user.last_name=n.last_name),t.saveApiUser(o.user)):t.saveApiUser(o.user,!0),i.savePhoto(o.profile_photo,{user_id:e}),a.savePeerSettings(e,o.notify_settings),o.bot_info=r(o.bot_info),o})}function c(i){var a=[];return i>=0?t.isBot(i)?l(i).then(function(e){var t=e.bot_info;return t&&"botInfoEmpty"!=t._&&a.push(t),a}):e.when(a):n.getChatFull(-i).then(function(e){return angular.forEach(e.bot_info,function(e){a.push(r(e))}),a})}var d={};return{getProfile:l,getPeerBots:c}}]).service("AppMessagesManager",["$q","$rootScope","$location","$filter","$timeout","$sce","ApiUpdatesManager","AppUsersManager","AppChatsManager","AppPeersManager","AppPhotosManager","AppVideoManager","AppDocsManager","AppAudioManager","AppWebPagesManager","MtpApiManager","MtpApiFileManager","RichTextProcessor","NotificationsManager","PeersSelectService","Storage","AppProfileManager","FileManager","TelegramMeWebService","ErrorService","StatusManager","_",function(e,t,n,i,a,o,s,r,l,c,d,u,p,m,h,g,f,_,v,y,b,w,k,$,S,C,M){function x(n,i,a){var o=mt;if(angular.isString(n)&&n.length){if(!a||bt.query!==n){bt.query=n;var s=SearchIndexManager.search(n,yt);bt.dialogs=[],angular.forEach(mt.dialogs,function(e){s[e.peerID]&&bt.dialogs.push(e)}),bt.count=bt.dialogs.length}o=bt}else bt.query=!1;var d=0;if(i>0)for(d=0;do.dialogs[d].top_message);d++);return null!==o.count&&o.dialogs.length==o.count||o.dialogs.length>=d+(a||1)?e.when({count:o.count,dialogs:o.dialogs.slice(d,d+(a||20))}):(a=a||20,g.invokeApi("messages.getDialogs",{offset:d,limit:a,max_id:i||0}).then(function(e){if($.setAuthorized(!0),r.saveApiUsers(e.users),l.saveApiChats(e.chats),q(e.messages),i>0)for(d=0;do.dialogs[d].top_message);d++);return o.count=e.count||e.dialogs.length,!i&&o.dialogs.length&&it(o.dialogs[0].top_message),o.dialogs.splice(d,o.dialogs.length-d),angular.forEach(e.dialogs,function(e){var n=c.getPeerID(e.peer),i=c.getPeerSearchText(n);if(SearchIndexManager.indexObject(n,i,yt),o.dialogs.push({peerID:n,top_message:e.top_message,unread_count:e.unread_count}),void 0===pt[n]){var a={count:null,history:[e.top_message],pending:[]};pt[n]=a;var s=U(e.top_message);P(a,s)&&t.$broadcast("history_reply_markup",{peerID:n})}if(v.savePeerSettings(n,e.notify_settings),e.unread_count>0&&Et&&e.top_message>Et){var s=U(e.top_message),r=16&s.flags?s.from_id:n;s.unread&&!s.out&&v.getPeerMuted(r).then(function(e){e||at(s)})}}),{count:o.count,dialogs:o.dialogs.slice(d,d+a)}}))}function A(e,t,n,i){return g.invokeApi("messages.getHistory",{peer:e,offset:i||0,limit:n||0,max_id:t||0},{noErrorBox:!0}).then(function(t){r.saveApiUsers(t.users),l.saveApiChats(t.chats),q(t.messages);var i=c.getPeerID(e);return 0>i||!r.isBot(i)||t.messages.length==n&&n0)for(s=0;sa.history[s]);s++);return a.history.splice(s,a.history.length-s),angular.forEach(o.messages,function(n){P(a,n)&&t.$broadcast("history_reply_markup",{peerID:c.getPeerID(e)}),a.history.push(n.id)}),i-=o.messages.length,i>0&&a.history.length0)for(l=!0,r=0;rs.history[r]){l=!1;break}}else{var p=nt(o);if(p&&p[0]&&p[0].unread_count>1){var m=p[0].unread_count;(u=m>50)?(n=20,d=16,r=m-d):(n=Math.max(10,a,m+2),d=m)}else Config.Mobile&&(n=20)}if(!l&&(null!==s.count&&s.history.length==s.count||s.history.length>=r+(n||1))){i?(i=Math.min(r,i),r=Math.max(0,r-i),n+=i):n=n||(r?20:a||5);var h=s.history.slice(r,r+n);return!t&&s.pending.length&&(h=s.pending.slice().concat(h)),T(o,{count:s.count,history:h,unreadOffset:d,unreadSkip:u})}return i||n||(n=a||20),l&&(r=0),i||u||t&&-1==s.history.indexOf(t)?(i&&(r=-i,n+=i),A(e,t,n,r).then(function(e){s.count=e.count||e.messages.length;var n=[];return angular.forEach(e.messages,function(e){n.push(e.id)}),!t&&s.pending.length&&(n=s.pending.slice().concat(n)),T(o,{count:s.count,history:n,unreadOffset:d,unreadSkip:u})})):E(e,t,n,s).then(function(){if(r=0,t>0)for(r=0;rs.history[r]);r++);var e=s.history.slice(r,r+n);return!t&&s.pending.length&&(e=s.pending.slice().concat(e)),T(o,{count:s.count,history:e,unreadOffset:d,unreadSkip:u})})}function D(e){return(pt[e]||{}).reply_markup||!1}function P(e,t){if(!t.reply_markup&&!t.out&&!t.action)return!1;var n=t.reply_markup,i=e.reply_markup;if(n)return i&&i.id>=t.id?!1:!n.pFlags.selective||16&t.flags?(e.maxOutID&&t.idi.id||t.id<0)&&t.message)return i.pFlags.hidden=!0,!0}else(!e.maxOutID||t.id>e.maxOutID)&&(e.maxOutID=t.id);return t.action&&"messageActionChatDeleteUser"==t.action._&&(i?t.action.user_id==i.fromID:r.isBot(t.action.user_id))?(e.reply_markup={_:"replyKeyboardHide",id:t.id,flags:0,pFlags:{}},!0):!1}function N(t,n,i,a,o){var s=[],d=!n,u=c.getPeerID(t),p={peer:u,filter:i},m=d&&angular.equals(wt,p);if(d&&!m&&(wt=p,kt=[]),!a&&!n){var h=pt[u];if(void 0!==h&&h.history.length){var f,_,v={},y=o||20;switch(i._){case"inputMessagesFilterPhotos":v.messageMediaPhoto=!0;break;case"inputMessagesFilterVideo":v.messageMediaVideo=!0;break;case"inputMessagesFilterPhotoVideo":v.messageMediaPhoto=!0,v.messageMediaVideo=!0;break;case"inputMessagesFilterDocument":v.messageMediaDocument=!0;break;case"inputMessagesFilterAudio":v.messageMediaAudio=!0}for(f=0;f=y)));f++);}if(s.length=y));f++);}return s.length||1e3==o?(d&&(kt=listMergeSorted(kt,s)),e.when({count:null,history:s})):g.invokeApi("messages.search",{peer:t,q:n||"",filter:i||{_:"inputMessagesFilterEmpty"},min_date:0,max_date:0,limit:o||20,max_id:a||0}).then(function(e){r.saveApiUsers(e.users),l.saveApiChats(e.chats),q(e.messages);var t=e.count||e.messages.length;return s=[],angular.forEach(e.messages,function(e){s.push(e.id)}),d&&(kt=listMergeSorted(kt,s)),{count:t,history:s}},function(t){return 400==t.code&&(t.handled=!0),e.reject(t)})}function U(e){return ct[e]||{deleted:!0}}function O(e){return g.invokeApi("messages.deleteMessages",{id:e}).then(function(t){return s.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteMessages",messages:e,pts:t.pts,pts_count:t.pts_count}}),e})}function R(t,n,i){return s.processUpdateMessage({_:"updateShort",update:{_:"updatePts",pts:n.pts,pts_count:n.pts_count}}),n.offset?g.invokeApi(i,{peer:t,offset:n.offset,max_id:0}).then(function(e){return R(t,e,i)}):e.when()}function L(e){var n=c.getPeerID(e),i=pt[n],a=nt(n);if(!a[0]||!a[0].unread_count){if(!i||!i.history.length)return!1;var o,s,r=!1;for(l=i.history.length;l>=0;l--)if(o=i.history[l],s=ct[o],s&&!s.out&&s.unread){r=!0;break}if(!r)return!1}if(i.readPromise)return i.readPromise;if(i.readPromise=g.invokeApi("messages.readHistory",{peer:e,offset:0,max_id:0}).then(function(t){return R(e,t,"messages.readHistory")}).then(function(){a[0]&&(a[0].unread_count=0,t.$broadcast("dialog_unread",{peerID:n,count:0}),t.$broadcast("messages_read"))})["finally"](function(){delete i.readPromise}),i&&i.history.length){var o,s,l,n,a;for(l=0;l0,one_time:(2&e.reply_markup.flags)>0,selective:(4&e.reply_markup.flags)>0})})}function j(e,n,i){if(angular.isString(n)&&n.length){i=i||{};var a,o=vt--,l=[nextRandomInt(4294967295),nextRandomInt(4294967295)],d=bigint(l[0]).shiftLeft(32).add(bigint(l[1])).toString(),u=pt[e],p=c.getInputPeerByID(e),m=0,h=i.replyToMsgID;void 0===u&&(u=pt[e]={count:null,history:[],pending:[]}),g.getUserID().then(function(i){e!=i&&(m|=2,r.isBot(e)||(m|=1)),h&&(m|=8),a={_:"message",id:o,from_id:i,to_id:c.getOutputPeer(e),flags:m,date:tsNow(!0)+Ct,message:n,random_id:d,reply_to_msg_id:h,pending:!0};var f=function(e){var n=dt[o];e?(a.error=!0,n&&(n.error=!0)):(delete a.error,n&&delete n.error),t.$broadcast("messages_pending")};a.send=function(){f(!1);var t={};ft[e]&&(t.afterMessageID=ft[e].messageID);var i=0;h&&(i|=1),g.invokeApi("messages.sendMessage",{flags:i,peer:p,message:n,random_id:l,reply_to_msg_id:h},t).then(function(e){a.date=e.date,a.id=e.id,a.media=e.media,s.processUpdateMessage({_:"updates",users:[],chats:[],seq:0,updates:[{_:"updateMessageID",random_id:d,id:e.id},{_:"updateNewMessage",message:a,pts:e.pts,pts_count:e.pts_count}]})},function(){f(!0)})["finally"](function(){ft[e]===t&&delete ft[e]}),ft[e]=t},q([a]),u.pending.unshift(o),t.$broadcast("history_append",{peerID:e,messageID:o,my:!0}),a.send()}),ht[d]=[e,o]}}function H(n,i,a){a=a||{};var o,l,d=vt--,u=[nextRandomInt(4294967295),nextRandomInt(4294967295)],p=bigint(u[0]).shiftLeft(32).add(bigint(u[1])).toString(),m=pt[n],h=c.getInputPeerByID(n),_=0,v=a.replyToMsgID;a.isMedia?["image/jpeg","image/png","image/bmp"].indexOf(i.type)>=0?(o="photo",l="photo."+i.type.split("/")[1]):"audio/"==i.type.substr(0,6)||["video/ogg"].indexOf(i.type)>=0?(o="audio",l="audio."+("ogg"==i.type.split("/")[1]?"ogg":"mp3")):"video/"==i.type.substr(0,6)?(o="video",l="video.mp4"):(o="document",l="document."+i.type.split("/")[1]):(o="document",l="document."+i.type.split("/")[1]),void 0===m&&(m=pt[n]={count:null,history:[],pending:[]}),g.getUserID().then(function(a){n!=a&&(_|=2,r.isBot(n)||(_|=1)),v&&(_|=8);var y,b={_:"messageMediaPending",type:o,file_name:i.name||l,size:i.size,progress:{percent:1,total:i.size}},w={_:"message",id:d,from_id:a,to_id:c.getOutputPeer(n),flags:_,date:tsNow(!0)+Ct,message:"",media:b,random_id:p,reply_to_msg_id:v,pending:!0},k=function(e){var n=dt[d];e?(w.error=!0,n&&(n.error=!0)):(delete w.error,n&&delete n.error),t.$broadcast("messages_pending")},$=!1;w.send=function(){var a=e.defer();_t.then(function(){(!$||w.error)&&($=!1,y=f.uploadFile(i)),y.then(function(e){e.name=l,$=!0;var t;switch(o){case"photo":t={_:"inputMediaUploadedPhoto",file:e};break;case"video":t={_:"inputMediaUploadedVideo",file:e,duration:0,w:0,h:0,mime_type:i.type};break;case"audio":t={_:"inputMediaUploadedAudio",file:e,duration:0,mime_type:i.type};break;case"document":default:t={_:"inputMediaUploadedDocument",file:e,mime_type:i.type,attributes:[{_:"documentAttributeFilename",file_name:i.name}]}}var n=0;v&&(n|=1),g.invokeApi("messages.sendMedia",{flags:n,peer:h,media:t,random_id:u,reply_to_msg_id:v}).then(function(e){s.processUpdateMessage(e)},function(e){return"photo"==o&&400==e.code&&"PHOTO_INVALID_DIMENSIONS"==e.type?(e.handled=!0,o="document",void w.send()):void k(!0)})},function(){k(!0)},function(e){b.progress.done=e.done,b.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update",{peerID:n})}),b.progress.cancel=function(){$||(a.resolve(),y.cancel(),G(p))},y["finally"](function(){a.resolve()})}),_t=a.promise},q([w]),m.pending.unshift(d),t.$broadcast("history_append",{peerID:n,messageID:d,my:!0}),w.send()}),ht[p]=[n,d]}function z(e,n,i){i=i||{};var a=vt--,o=[nextRandomInt(4294967295),nextRandomInt(4294967295)],l=bigint(o[0]).shiftLeft(32).add(bigint(o[1])).toString(),u=pt[e],m=c.getInputPeerByID(e),h=i.replyToMsgID;void 0===u&&(u=pt[e]={count:null,history:[],pending:[]}),g.getUserID().then(function(i){var f;switch(n._){case"inputMediaContact":f=angular.extend({},n,{_:"messageMediaContact"});break;case"inputMediaPhoto":f={_:"messageMediaPhoto",photo:d.getPhoto(n.id.id)};break;case"inputMediaDocument":f={_:"messageMediaDocument",document:p.getDoc(n.id.id)}}var _=0;e!=i&&(_|=2,r.isBot(e)||(_|=1));var v={_:"message",id:a,from_id:i,to_id:c.getOutputPeer(e),flags:_,date:tsNow(!0)+Ct,message:"",media:f,random_id:l,pending:!0},y=function(e){var n=dt[a];e?(v.error=!0,n&&(n.error=!0)):(delete v.error,n&&delete n.error),t.$broadcast("messages_pending")};v.send=function(){var e=0;h&&(e|=1),g.invokeApi("messages.sendMedia",{flags:e,peer:m,media:n,random_id:o,reply_to_msg_id:h}).then(function(e){s.processUpdateMessage(e)},function(){y(!0)})},q([v]),u.pending.unshift(a),t.$broadcast("history_append",{peerID:e,messageID:a,my:!0}),v.send()}),ht[l]=[e,a]}function V(e,t){t=t.sort();for(var n,i=[],n=(t.length,0);ni;i++)if(n=e.updates[i],"updateNewMessage"==n._){t.$broadcast("history_focus",{peerString:l.getChatString(n.message.to_id.chat_id)});break}})})})}function Z(e){var t=e.to_id&&c.getPeerID(e.to_id)||0;return 0>t?t:e.out||2&e.flags?t:e.from_id}function X(e,t){var n=-1!=t;if(n&&void 0!==ut[e])return ut[e];var i=angular.copy(ct[e]);return i&&i.to_id?((i.chatID=i.to_id.chat_id)?(i.peerID=-i.chatID,i.peerData=l.getChat(i.chatID)):(i.peerID=i.out?i.to_id.user_id:i.from_id,i.peerData=r.getUser(i.peerID)),i.peerString=c.getPeerString(i.peerID),i.peerPhoto=c.getPeerPhoto(i.peerID,"User","Group"),i.unreadCount=t,"messageService"==i._&&i.action.user_id&&(i.action.user=r.getUser(i.action.user_id)),i.message&&i.message.length&&(i.richMessage=_.wrapRichText(i.message.substr(0,64),{noLinks:!0,noLinebreaks:!0})),i.dateText=Tt(i.date),n&&(ut[e]=i),i):i}function J(e){if(void 0!==dt[e])return dt[e];var t=angular.copy(ct[e])||{id:e};t.media&&void 0!==t.media.progress&&(t.media.progress=ct[e].media.progress);var n=r.getUser(t.from_id),i=n.pFlags.bot&&n.username||!1,a=i||t.to_id&&(t.to_id.chat_id||t.to_id.user_id&&r.isBot(t.to_id.user_id)); if(t.media)switch(t.media.caption&&t.media.caption.length&&(t.media.rCaption=_.wrapRichText(t.media.caption,{noCommands:!a,fromBot:i})),t.media._){case"messageMediaPhoto":t.media.photo=d.wrapForHistory(t.media.photo.id);break;case"messageMediaVideo":t.media.video=u.wrapForHistory(t.media.video.id);break;case"messageMediaDocument":t.media.document=p.wrapForHistory(t.media.document.id);break;case"messageMediaAudio":t.media.audio=m.wrapForHistory(t.media.audio.id);break;case"messageMediaGeo":var s="https://maps.google.com/?q="+t.media.geo.lat+","+t.media.geo["long"];t.media.mapUrl=o.trustAsResourceUrl(s);break;case"messageMediaVenue":var s;s="foursquare"==t.media.provider&&t.media.venue_id?"https://foursquare.com/v/"+encodeURIComponent(t.media.venue_id):"https://maps.google.com/?q="+t.media.geo.lat+","+t.media.geo["long"],t.media.mapUrl=o.trustAsResourceUrl(s);break;case"messageMediaContact":t.media.rFullName=_.wrapRichText(t.media.first_name+" "+(t.media.last_name||""),{noLinks:!0,noLinebreaks:!0});break;case"messageMediaWebPage":if(!t.media.webpage||"webPageEmpty"==t.media.webpage._||Config.Mobile){delete t.media;break}t.media.webpage=h.wrapForHistory(t.media.webpage.id)}else if(t.action)switch(t.action._){case"messageActionChatEditPhoto":t.action.photo=d.wrapForHistory(t.action.photo.id);break;case"messageActionChatCreate":case"messageActionChatEditTitle":t.action.rTitle=_.wrapRichText(t.action.title,{noLinks:!0,noLinebreaks:!0})||M("chat_title_deleted");break;case"messageActionBotIntro":t.action.rDescription=_.wrapRichText(t.action.description,{noCommands:!a,fromBot:i})}var l=t.reply_to_msg_id;if(l&&(ct[l]?t.reply_to_msg=X(l):(t.reply_to_msg={id:l,loading:!0},-1==$t.indexOf(l)&&($t.push(l),St===!1&&(St=setTimeout(et,100))))),t.message&&t.message.length){var c={noCommands:!a,fromBot:i};if(Config.Navigator.mobile||(c.extractUrlEmbed=!0),16&t.flags){var g=r.getSelf();g&&(c.highlightUsername=g.username)}t.richMessage=_.wrapRichText(t.message,c),c.extractedUrlEmbed&&(t.richUrlEmbed=c.extractedUrlEmbed)}return dt[e]=t}function Q(e){if(!e||"replyKeyboardHide"==e._)return!1;if(e.wrapped)return e;var t=e.rows&&e.rows.length||0;return t>0&&4>=t&&!e.pFlags.resize&&(e.splitCount=t),e.wrapped=!0,angular.forEach(e.rows,function(e){angular.forEach(e.buttons,function(e){e.rText=_.wrapRichText(e.text,{noLinks:!0,noLinebreaks:!0})})}),nextRandomInt(1)&&(e.rows=e.rows.slice(0,2)),e}function et(){if(St!==!1&&(clearTimeout(St),St=!1),$t.length){var e=$t.slice();$t=[],g.invokeApi("messages.getMessages",{id:e}).then(function(n){r.saveApiUsers(n.users),l.saveApiChats(n.chats),q(n.messages),t.$broadcast("messages_downloaded",e)})}}function tt(e,t){if(!e||!e.length)return!1;var n,i,a,o,s,r,l,c=0,d=e.length,u=d,p=!1,m=!Config.Mobile;for(t>0?u=Math.min(t,d):0>t&&(c=Math.max(0,u+t)),n=c;u>n;n++){if(o=e[n],i=Math.floor((o.date+lt)/86400),l=s&&s.grouped,r=o.grouped,i===a?o.needDate&&(delete o.needDate,p=!0):(!n||s)&&(o.needDate||(o.needDate=!0,p=!0)),o.fwd_from_id&&o.media&&o.media.document&&o.media.document.sticker&&(o.from_id!=(s||{}).from_id||!(s||{}).fwd_from_id)&&(delete o.fwd_from_id,o._="message"),s&&o.from_id==s.from_id&&!s.fwd_from_id==!o.fwd_from_id&&!s.action&&!o.action&&o.dateEt&&b.set({max_seen_msg:e})}function at(e,n){n=n||{};var i,a,o=Z(e),s=r.getUser(e.from_id),c=r.getUserPhoto(e.from_id,"User"),d={},u=!1,p=v.getNotifySettings();if(e.fwd_from_id&&n.fwd_count)u=It(n.fwd_count);else if(e.message)u=p.nopreview?M("conversation_message_sent"):_.wrapPlainText(e.message);else if(e.media)switch(e.media._){case"messageMediaPhoto":u=M("conversation_media_photo_raw");break;case"messageMediaVideo":u=M("conversation_media_video_raw");break;case"messageMediaDocument":if(e.media.document.sticker){u=M("conversation_media_sticker");var m=e.media.document.stickerEmojiRaw;void 0!==m&&(u=_.wrapPlainText(m)+" ("+u+")")}else u=e.media.document.file_name||M("conversation_media_document_raw");break;case"messageMediaAudio":u=M("conversation_media_audio_raw");break;case"messageMediaGeo":case"messageMediaVenue":u=M("conversation_media_location_raw");break;case"messageMediaContact":u=M("conversation_media_contact_raw");break;default:u=M("conversation_media_attachment_raw")}else if("messageService"==e._)switch(e.action._){case"messageActionChatCreate":u=M("conversation_group_created_raw");break;case"messageActionChatEditTitle":u=M("conversation_group_renamed_raw");break;case"messageActionChatEditPhoto":u=M("conversation_group_photo_updated_raw");break;case"messageActionChatDeletePhoto":u=M("conversation_group_photo_removed_raw");break;case"messageActionChatAddUser":u=M(e.action.user_id==e.from_id?"conversation_returned_to_group":"conversation_invited_user_message_raw");break;case"messageActionChatDeleteUser":u=M(e.action.user_id==e.from_id?"conversation_left_group":"conversation_kicked_user_message_raw");break;case"messageActionChatJoinedByLink":u=M("conversation_joined_by_link")}o>0?(d.title=(s.first_name||"")+(s.first_name&&s.last_name?" ":"")+(s.last_name||""),d.title||(d.title=s.phone||M("conversation_unknown_user_raw")),a=c,i=r.getUserString(o)):(d.title=(s.first_name||s.last_name||M("conversation_unknown_user_raw"))+" @ "+(l.getChat(-o).title||M("conversation_unknown_chat_raw")),a=l.getChatPhoto(-o,"Group"),i=l.getChatString(-o)),d.title=_.wrapPlainText(d.title),d.onclick=function(){t.$broadcast("history_focus",{peerString:i,messageID:16&e.flags?e.id:0})},d.message=u,d.image=a.placeholder,d.key="msg"+e.id,d.tag=i,a.location&&!a.location.empty?f.downloadSmallFile(a.location,a.size).then(function(t){d.image=k.getUrl(t,"image/jpeg"),e.unread&&v.notify(d)}):v.notify(d)}function ot(){a.cancel(Dt),Dt=!1,t.$broadcast("history_multiappend",Pt),Pt={}}function st(){a.cancel(Nt),Nt=!1,t.$broadcast("dialogs_multiupdate",Ut),Ut={}}function rt(){a.cancel(Ot),Ot=!1;var e=t.idle.isIDLE&&C.isOtherDeviceActive()?3e4:1e3;angular.forEach(Rt,function(t){t.isMutedPromise.then(function(n){var i=t.top_message;!n&&i.unread&&setTimeout(function(){i.unread&&at(i,{fwd_count:t.fwd_count})},e)})}),Rt={}}var lt,ct={},dt={},ut={},pt={},mt={count:null,dialogs:[]},ht={},gt={},ft={},_t=e.when(),vt=-1,yt=SearchIndexManager.createIndex(),bt={query:!1},wt={},kt=[],$t=[],St=!1,Ct=0,Mt=tsNow(!0),xt=Mt-Mt%86400,At=new Date;b.get("server_time_offset").then(function(e){e&&(Ct=e)});var Et=!1;Config.Modes.packed&&b.get("max_seen_msg").then(function(e){Et=e||0});var Tt=i("dateOrTime"),It=M.pluralize("conversation_forwarded_X_messages");At.setHours(0),At.setMinutes(0),At.setSeconds(0),lt=xt-Math.floor(+At/1e3),v.start(),window.navigator.mozSetMessageHandler&&window.navigator.mozSetMessageHandler("activity",function(e){var n=e.source;console.log(dT(),"Received activity",n.name,n.data),"share"===n.name&&n.data.blobs.length>0&&y.selectPeers({confirm_type:"EXT_SHARE_PEER"}).then(function(e){angular.forEach(e,function(e){var t=c.getPeerID(e);angular.forEach(n.data.blobs,function(e){H(t,e,{isMedia:!0})})}),1==e.length&&t.$broadcast("history_focus",{peerString:e[0]})})});var Dt=!1,Pt={},Nt=!1,Ut={},Ot=!1,Rt={};return t.$on("apiUpdate",function(e,n){switch(n._){case"updateMessageID":gt[n.id]=n.random_id;break;case"updateNewMessage":var i=n.message,o=Z(i),s=pt[o];if(void 0!==s){var l=s.history;if(-1!=l.indexOf(i.id))return!1;var d=l[0];l.unshift(i.id),i.id>0&&i.id0&&(mt.dialogs.splice(h[1],1),mt.dialogs.unshift(m)),m.top_message=i.id,g&&m.unread_count++):(SearchIndexManager.indexObject(o,c.getPeerSearchText(o),yt),m={peerID:o,unread_count:g?1:0,top_message:i.id},mt.dialogs.unshift(m)),Ut[o]=m,Nt||(Nt=a(st,0)),g&&(t.selectedPeerID!=o||t.idle.isIDLE)){var f=16&i.flags?i.from_id:o,_=Rt[f];void 0===_&&(_=Rt[f]={isMutedPromise:v.getPeerMuted(f),fwd_count:0,from_id:0}),_.from_id!=i.from_id&&(_.from_id=i.from_id,_.fwd_count=0),i.fwd_from_id&&_.fwd_count++,_.top_message=i,Ot||(Ot=a(rt,1e3))}it(i.id);break;case"updateReadHistoryInbox":case"updateReadHistoryOutbox":var y,i,b,w=n.max_id,k="updateReadHistoryOutbox"==n._,o=c.getPeerID(n.peer),h=nt(o),l=(pt[o]||{}).history||[],$=!1,S=l.length,C=!1;for(o>0&&k&&r.forceUserOnline(o),b=0;S>b;b++)if(y=l[b],!(y>w)&&(i=ct[y],i.out==k)){if(!i.unread)break;i&&i.unread&&(i.unread=!1,dt[y]&&(dt[y].unread=!1,C||(C=!0)),ut[y]&&(ut[y].unread=!1),i.out||(h&&($=--h[0].unread_count),v.cancel("msg"+y)))}$!==!1&&t.$broadcast("dialog_unread",{peerID:o,count:$}),C&&t.$broadcast("messages_read");break;case"updateReadMessagesContents":var b,y,i,M,x=n.messages,A=x.length;for(b=0;A>b;b++)y=x[b],(i=ct[y])&&delete i.media_unread,(M=dt[y])&&delete M.media_unread;break;case"updateDeleteMessages":var y,i,b,o,h,l,E={};for(b=0;b0&&(a.count-=e.count,a.count<0&&(a.count=0));for(var r=0;ro&&(i=e,a=o)}),i}function c(e,t,n){var a=o.getUserInput(e);return i.invokeApi("photos.getUserPhotos",{user_id:a,offset:0,limit:n||20,max_id:t||0}).then(function(t){o.saveApiUsers(t.users);for(var n=[],i={user_id:e},a=0;a800&&(i-=208);var s=l(n,i,o);s&&!s.preloaded&&(s.preloaded=!0,s.size?a.downloadFile(s.location.dc_id,{_:"inputFileLocation",volume_id:s.location.volume_id,local_id:s.location.local_id,secret:s.location.secret},s.size):a.downloadSmallFile(s.location))}}function u(e){return f[e]||{_:"photoEmpty"}}function p(e,t){t=t||{};var n=angular.copy(f[e])||{_:"photoEmpty"},i=t.website?100:Math.min(_-80,Config.Mobile?210:260),a=t.website?100:Math.min(v-100,Config.Mobile?210:260),o=l(n,i,a),s={placeholder:"img/placeholders/PhotoThumbConversation.gif",width:i,height:a};if(o&&"photoSizeEmpty"!=o._){var r=calcImageInBox(o.w,o.h,i,a);s.width=r.w,s.height=r.h,s.location=o.location,s.size=o.size}else s.width=100,s.height=100;return n.thumb=s,n}function m(e){var n=p(e),i=$(window).width()-(Config.Mobile?0:32),a=$(t).height()-(Config.Mobile?0:116);!Config.Mobile&&i>800&&(i-=208);var o=l(n,i,a),s={placeholder:"img/placeholders/PhotoThumbModal.gif"};if(s.width=i,s.height=a,o&&"photoSizeEmpty"!=o._){var r=calcImageInBox(o.w,o.h,i,a,!0);s.width=r.w,s.height=r.h,s.modalWidth=Math.max(s.width,Math.min(400,i)),s.location=o.location,s.size=o.size}return n.full=s,n}function h(t,i){if(!t||"0"===t)return!1;var a=n.$new(!0);a.photoID=t;var o="PhotoModalController";i&&i.p>0?(o="UserpicModalController",a.userID=i.p):i&&i.p<0?(o="ChatpicModalController",a.chatID=-i.p):i&&i.m>0&&(a.messageID=i.m,i.w&&(a.webpageID=i.w));e.open({templateUrl:templateUrl("photo_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:o,scope:a,windowClass:"photo_modal_window"})}function g(e){var n=f[e],i="jpg",o="image/jpeg",r="photo"+e+"."+i,c=Math.max(screen.width||0,$(window).width()-36,800),d=Math.max(screen.height||0,$(t).height()-150,800),u=l(n,c,d),p={_:"inputFileLocation",volume_id:u.location.volume_id,local_id:u.location.local_id,secret:u.location.secret};s.chooseSave(r,i,o).then(function(e){e&&a.downloadFile(u.location.dc_id,p,u.size,{mime:o,toFileEntry:e}).then(function(){},function(e){console.log("photo download failed",e)})},function(){var e=a.getCachedFile(p);return e?s.download(e,o,r):void a.downloadFile(u.location.dc_id,p,u.size,{mime:o}).then(function(e){s.download(e,o,r)},function(e){console.log("photo download failed",e)})})}var f={},_=$(window).width(),v=$(window).height();return n.preloadPhoto=d,n.openPhoto=h,{savePhoto:r,preloadPhoto:d,getUserPhotos:c,getPhoto:u,choosePhotoSize:l,wrapForHistory:p,wrapForFull:m,openPhoto:h,downloadPhoto:g}}]).service("AppWebPagesManager",["$modal","$sce","$window","$rootScope","MtpApiManager","AppPhotosManager","RichTextProcessor",function(e,t,n,i,a,o,s){function r(e,t,n){e.photo&&"photo"===e.photo._?o.savePhoto(e.photo,n):delete e.photo,e.rTitle=s.wrapRichText(e.title||e.author,{noLinks:!0,noLinebreaks:!0});var a="";if("GitHub"==e.site_name){var r=e.url.match(/(https?:\/\/github\.com\/[^\/]+\/[^\/]+)/);r&&(a=r[0]+"/issues/{1}")}if(e.rDescription=s.wrapRichText(e.description,{contextSite:e.site_name||"external",contextHashtag:a}),t&&(void 0===p[e.id]&&(p[e.id]={}),p[e.id][t]=!0,u[e.id]=e),void 0===u[e.id]?u[e.id]=e:safeReplaceObject(u[e.id],e),!t&&void 0!==p[e.id]){var l=[];angular.forEach(p[e.id],function(e,t){l.push(t)}),i.$broadcast("webpage_updated",{id:e.id,msgs:l})}}function l(t,n){var a=i.$new(!0);a.webpageID=t,a.messageID=n,e.open({templateUrl:templateUrl("embed_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"EmbedModalController",scope:a,windowClass:"photo_modal_window"})}function c(e){var t=angular.copy(u[e])||{_:"webPageEmpty"};return t.photo&&t.photo.id&&(t.photo=o.wrapForHistory(t.photo.id,{website:"photo"!=t.type&&"video"!=t.type})),t}function d(e){var i=c(e);if(!i.embed_url)return i;var a=$(window).width()-(Config.Mobile?0:10),o=$(n).height()-(Config.Mobile?92:150);!Config.Mobile&&a>800&&(a-=208);var s={width:a,height:o};if(i.embed_width&&i.embed_height){var r=calcImageInBox(i.embed_width,i.embed_height,a,o);s.width=r.w,s.height=r.h}else s.height=s.width=Math.min(a,o);var l=Config.Modes.chrome_packed?"webview":"iframe",d="iframe"!=i.embed_type?i.embed_type||"text/html":"text/html",u="<"+l+' src="'+encodeEntities(i.embed_url)+'" type="'+encodeEntities(d)+'" frameborder="0" border="0" webkitallowfullscreen mozallowfullscreen allowfullscreen width="'+s.width+'" height="'+s.height+'" style="width: '+s.width+"px; height: "+s.height+'px;">";return s.html=t.trustAs("html",u),i.full=s,i}var u={},p={};return i.$on("apiUpdate",function(e,t){switch(t._){case"updateWebPage":r(t.webpage)}}),{saveWebPage:r,openEmbed:l,wrapForFull:d,wrapForHistory:c}}]).service("AppVideoManager",["$sce","$rootScope","$modal","$window","MtpApiFileManager","AppUsersManager","FileManager","qSync",function(e,t,n,i,a,o,s,r){function l(e,t){t&&angular.extend(e,t),g[e.id]=e,e.thumb&&"photoCachedSize"==e.thumb._&&(a.saveSmallFile(e.thumb.location,e.thumb.bytes),e.thumb.size=e.thumb.bytes.length,delete e.thumb.bytes,e.thumb._="photoSize")}function c(e){if(void 0!==f[e])return f[e];var t=angular.copy(g[e]),n=Math.min(_-80,Config.Mobile?210:150),i=Math.min(v-100,Config.Mobile?210:150),a=t.thumb,o={placeholder:"img/placeholders/VideoThumbConversation.gif",width:n,height:i};return a&&"photoSizeEmpty"!=a._&&(a.w/a.h>n/i?o.height=parseInt(a.h*n/a.w):(o.width=parseInt(a.w*i/a.h),o.width>n&&(o.height=parseInt(o.height*n/o.width),o.width=n)),o.location=a.location,o.size=a.size),t.thumb=o,f[e]=t}function d(e){var t=c(e),n=Math.min($(window).width()-(Config.Mobile?0:60),542),a=$(i).height()-(Config.Mobile?92:150),o={placeholder:"img/placeholders/VideoThumbModal.gif",width:n,height:a};if(t.w&&t.h){var s=calcImageInBox(t.w,t.h,n,a);o.width=s.w,o.height=s.h}else o.height=o.width=Math.min(n,a);return t.full=o,t.fullThumb=angular.copy(t.thumb),t.fullThumb.width=o.width,t.fullThumb.height=o.height,t}function u(e,i){var a=t.$new(!0);return a.videoID=e,a.messageID=i,n.open({templateUrl:templateUrl("video_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"VideoModalController",scope:a,windowClass:"video_modal_window"})}function p(e){var t=g[e],n=f[e]||t||{},i={_:"inputVideoFileLocation",id:e,access_hash:t.access_hash};void 0===n.downloaded&&a.getDownloadedFile(i,t.size).then(function(){n.downloaded=!0},function(){n.downloaded=!1})}function m(n,i){var o=g[n],l=f[n]||o||{},c=o.mime_type||"video/ogg",d={_:"inputVideoFileLocation",id:n,access_hash:o.access_hash};if(l.downloaded&&!i){var u=a.getCachedFile(d);if(u)return r.when(u)}l.progress={enabled:!l.downloaded,percent:1,total:o.size};var p=a.downloadFile(o.dc_id,d,o.size,{mime:c,toFileEntry:i});return p.then(function(t){s.getFileCorrectUrl(t,c).then(function(t){l.url=e.trustAsResourceUrl(t)}),delete l.progress,l.downloaded=!0,console.log("video save done")},function(e){console.log("video download failed",e),l.progress.enabled=!1},function(e){console.log("dl progress",e),l.progress.enabled=!0,l.progress.done=e.done,l.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update")}),l.progress.cancel=p.cancel,p}function h(e){{var t=g[e],n=t.mime_type||"video/mp4",i=n.split(".")[1]||"mp4",a="t_video"+e+"."+i;f[e]||t||{}}s.chooseSave(a,i,n).then(function(t){t&&m(e,t)},function(){m(e).then(function(e){s.download(e,n,a)})})}var g={},f={},_=$(window).width(),v=$(window).height();return{saveVideo:l,wrapForHistory:c,wrapForFull:d,openVideo:u,updateVideoDownloaded:p,downloadVideo:m,saveVideoFile:h}}]).service("AppDocsManager",["$sce","$rootScope","$modal","$window","$q","RichTextProcessor","MtpApiFileManager","FileManager","qSync",function(e,t,n,i,a,o,s,r,l){function c(e,t){f[e.id]=e,t&&angular.extend(e,t),e.thumb&&"photoCachedSize"==e.thumb._&&(s.saveSmallFile(e.thumb.location,e.thumb.bytes),e.thumb.size=e.thumb.bytes.length,delete e.thumb.bytes,e.thumb._="photoSize"),angular.forEach(e.attributes,function(t){switch(t._){case"documentAttributeFilename":e.file_name=t.file_name;break;case"documentAttributeAudio":e.duration=t.duration,e.audioTitle=t.title,e.audioPerformer=t.performer;break;case"documentAttributeVideo":e.duration=t.duration;break;case"documentAttributeSticker":e.sticker=1,void 0!==t.alt&&(e.sticker=2,e.stickerEmojiRaw=t.alt,e.stickerEmoji=o.wrapRichText(e.stickerEmojiRaw,{noLinks:!0,noLinebreaks:!0})),t.stickerset&&("inputStickerSetEmpty"==t.stickerset._?delete t.stickerset:"inputStickerSetID"==t.stickerset._&&(e.stickerSetInput=t.stickerset));break;case"documentAttributeImageSize":e.w=t.w,e.h=t.h}}),e.file_name=e.file_name||""}function d(e){return f[e]||{_:"documentEmpty"}}function u(e){if(void 0!==_[e])return _[e];var t,n,i=angular.copy(f[e]),a="image/gif"==i.mime_type,o="image/"==i.mime_type.substr(0,6)&&i.sticker,s=i.thumb;a?(t=Math.min(v-80,260),n=Math.min(y-100,260)):o?(t=Math.min(v-80,Config.Mobile?128:192),n=Math.min(y-100,Config.Mobile?128:192)):t=n=100;var r={width:t,height:n};if(s&&"photoSizeEmpty"!=s._){var l=calcImageInBox(s.w,s.h,t,n);r.width=l.w,r.height=l.h,r.location=s.location,r.size=s.size}else if(o){var l=calcImageInBox(i.w,i.h,t,n);r.width=l.w,r.height=l.h}else r=!1;return i.thumb=r,i.withPreview=!Config.Mobile&&i.mime_type.match(/^(image\/)/)?1:0,a&&i.thumb?i.isSpecial="gif":o?i.isSpecial="sticker":"audio/"==i.mime_type.substr(0,6)&&(i.isSpecial="audio"),_[e]=i}function p(e){var t=f[e],n=_[e]||t||{},i={_:"inputDocumentFileLocation",id:e,access_hash:t.access_hash,file_name:t.file_name};void 0===n.downloaded&&s.getDownloadedFile(i,t.size).then(function(){n.downloaded=!0},function(){n.downloaded=!1})}function m(n,i){var a=f[n],o=_[n]||a||{},c={_:"inputDocumentFileLocation",id:n,access_hash:a.access_hash,file_name:a.file_name};if(o.downloaded&&!i){var d=s.getCachedFile(c);if(d)return l.when(d)}o.progress={enabled:!o.downloaded,percent:1,total:a.size};var u=s.downloadFile(a.dc_id,c,a.size,{mime:a.mime_type||"application/octet-stream",toFileEntry:i});return u.then(function(t){delete o.progress,t&&(r.getFileCorrectUrl(t,a.mime_type).then(function(t){o.url=e.trustAsResourceUrl(t)}),o.downloaded=!0),console.log("file save done")},function(e){console.log("document download failed",e),o.progress.enabled=!1},function(e){console.log("dl progress",e),o.progress.enabled=!0,o.progress.done=e.done,o.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update")}),o.progress.cancel=u.cancel,u}function h(e,i){var a=t.$new(!0);a.docID=e,a.messageID=i;n.open({templateUrl:templateUrl("document_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"DocumentModalController",scope:a,windowClass:"document_modal_window"})}function g(e){var t=f[e],n=(_[e]||t||{},(t.file_name.split(".",2)||[])[1]||"");r.chooseSave(t.file_name,n,t.mime_type).then(function(t){t&&m(e,t)},function(){m(e).then(function(e){r.download(e,t.mime_type,t.file_name)})})}var f={},_={},v=$(window).width(),y=$(window).height();return{saveDoc:c,getDoc:d,wrapForHistory:u,updateDocDownloaded:p,downloadDoc:m,openDoc:h,saveDocFile:g}}]).service("AppAudioManager",["$sce","$rootScope","$modal","$window","MtpApiFileManager","FileManager","qSync",function(e,t,n,i,a,o,s){function r(e){p[e.id]=e}function l(e){if(void 0!==m[e])return m[e];var t=angular.copy(p[e]);return m[e]=t}function c(e){var t=p[e],n=m[e]||t||{},i={_:"inputAudioFileLocation",id:e,access_hash:t.access_hash};void 0===n.downloaded&&a.getDownloadedFile(i,t.size).then(function(){n.downloaded=!0},function(){n.downloaded=!1})}function d(n,i){var r=p[n],l=m[n]||r||{},c=r.mime_type||"audio/ogg",d={_:"inputAudioFileLocation",id:n,access_hash:r.access_hash};if(l.downloaded&&!i){var u=a.getCachedFile(d);if(u)return s.when(u)}l.progress={enabled:!l.downloaded,percent:1,total:r.size};var h=a.downloadFile(r.dc_id,d,r.size,{mime:c,toFileEntry:i});return h.then(function(t){o.getFileCorrectUrl(t,c).then(function(t){l.url=e.trustAsResourceUrl(t)}),delete l.progress,l.downloaded=!0,console.log("audio save done")},function(e){console.log("audio download failed",e),l.progress.enabled=!1},function(e){console.log("dl progress",e),l.progress.enabled=!0,l.progress.done=e.done,l.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update")}),l.progress.cancel=h.cancel,h}function u(e){{var t=p[e],n=t.mime_type||"audio/ogg",i=n.split(".")[1]||"ogg",a="t_audio"+e+"."+i;m[e]||t||{}}o.chooseSave(a,i,n).then(function(t){t&&d(e,t)},function(){d(e).then(function(e){o.download(e,n,a)})})}var p={},m={};return{saveAudio:r,wrapForHistory:l,updateAudioDownloaded:c,downloadAudio:d,saveAudioFile:u}}]).service("AppStickersManager",["$q","$rootScope","$modal","_","FileManager","MtpApiManager","MtpApiFileManager","AppDocsManager","Storage",function(e,t,n,i,a,o,s,r,l){function c(){$||($=!0,setTimeout(u,1e3))}function d(e){if(k!==e.hash){k=e.hash;var t,n,i,a,o,s,l,c;for(b=[],y=[],i=e.sets.length,t=0;i>t;t++){for(s=e.sets[t],c=e.fullSets[s.id],a=c.documents.length,l=[],n=0;a>n;n++)o=c.documents[n],r.saveDoc(o),y.push(o.id),l.push(o.id);b.push({id:s.id,title:s.title,short_name:s.short_name,installed:(1&s.flags)>0,disabled:(2&s.flags)>0,official:(4&s.flags)>0,docIDs:l}),w[s.id]=!0}}return b}function u(e){return l.get("all_stickers").then(function(t){var n=Config.Schema.API.layer;return t.layer!=n&&(t=!1),t&&t.date>tsNow(!0)&&!e?d(t):o.invokeApi("messages.getAllStickers",{hash:t&&t.hash||""}).then(function(e){var i="messages.allStickersNotModified"==e._;return i&&(e=t),e.date=tsNow(!0)+3600,e.layer=n,delete e._,i?(l.set({all_stickers:e}),d(e)):p(e).then(function(){return l.set({all_stickers:e}),d(e)})})})}function p(t){var n=[],i=t.fullSets||{};return t.fullSets={},angular.forEach(t.sets,function(e){var a=i[e.id];if(a&&a.set.hash==e.hash)t.fullSets[e.id]=a;else{var s=o.invokeApi("messages.getStickerSet",{stickerset:{_:"inputStickerSetID",id:e.id,access_hash:e.access_hash}}).then(function(n){t.fullSets[e.id]=n});n.push(s)}}),e.all(n)}function m(e){var t=r.getDoc(e),n=angular.copy(t.thumb.location);return n.sticker=!0,s.downloadSmallFile(n).then(function(e){return{id:t.id,src:a.getUrl(e,"image/webp")}})}function h(){var t=[];return angular.forEach(y,function(e){t.push(m(e))}),e.all(t)}function g(e){return o.invokeApi("messages.getStickerSet",{stickerset:e}).then(function(e){for(var t=0;tn;n++)p(a[n]);return h.seq=t.seq,t.date&&h.date=f.seqAwaiting&&(f.ptsAwaiting?delete f.seqAwaiting:(clearTimeout(f.timeout),f=!1)),!0}function r(){if(!y.length)return!1;y.sort(function(e,t){return e.pts-t.pts});for(var e,t=h.pts,n=!1,i=!1,a=0,o=y.length;o>a;a++)e=y[a],t+=e.pts_count,t>=e.pts&&(n=e.pts,i=a);if(!n)return!1;for(h.pts=n,a=0;i>=a;a++)e=y[a],p(e);return y.splice(i,o-i),!y.length&&f&&(f.seqAwaiting?delete f.ptsAwaiting:(clearTimeout(f.timeout),f=!1)),!0}function l(){_||d()}function c(e){var t={date:e.date,seq:e.seq,seqStart:e.seq_start};switch(e._){case"updatesTooLong":case"new_session_created":l();break;case"updateShort":u(e.update,t);break;case"updateShortMessage":case"updateShortChatMessage":var o=2&e.flags,s=e.from_id||(o?g:e.user_id),r=e.chat_id?-e.chat_id:o?e.user_id:g;u({_:"updateNewMessage",message:{_:"message",flags:e.flags,id:e.id,from_id:s,to_id:a.getOutputPeer(r),date:e.date,message:e.message,fwd_from_id:e.fwd_from_id,fwd_date:e.fwd_date,reply_to_msg_id:e.reply_to_msg_id},pts:e.pts,pts_count:e.pts_count},t);break;case"updatesCombined":case"updates":n.saveApiUsers(e.users),i.saveApiChats(e.chats),angular.forEach(e.updates,function(e){u(e,t)});break;default:console.warn(dT(),"Unknown update message",e)}}function d(){_||(_=!0,v={},y=[]),f&&(clearTimeout(f.timeout),f=!1),o.invokeApi("updates.getDifference",{pts:h.pts,date:h.date,qts:-1}).then(function(t){if("updates.differenceEmpty"==t._)return console.log(dT(),"apply empty diff",t.seq),h.date=t.date,h.seq=t.seq,_=!1,e.$broadcast("stateSynchronized"),!1;n.saveApiUsers(t.users),i.saveApiChats(t.chats),angular.forEach(t.other_updates,function(e){p(e)}),angular.forEach(t.new_messages,function(e){p({_:"updateNewMessage",message:e,pts:h.pts,pts_count:0})});var a=t.intermediate_state||t.state;h.seq=a.seq,h.pts=a.pts,h.date=a.date,console.log(dT(),"apply diff",h.seq,h.pts),"updates.differenceSlice"==t._?d():(e.$broadcast("stateSynchronized"),_=!1)})}function u(e,t){if(_)return!1;if("updateNewMessage"==e._){var a=e.message;if(a.from_id&&!n.hasUser(a.from_id)||a.fwd_from_id&&!n.hasUser(a.fwd_from_id)||a.to_id.user_id&&!n.hasUser(a.to_id.user_id)||a.to_id.chat_id&&!i.hasChat(a.to_id.chat_id))return console.warn(dT(),"Short update not enough data",a),l(),!1}var o,c;if(e.pts){var u=h.pts+(e.pts_count||0);if(uh.pts&&(h.pts=e.pts,o=!0)}else if(t.seq>0){var m=t.seq,g=t.seqStart||m;if(g!=h.seq+1&&g>h.seq)return console.warn(dT(),"Seq hole",h,f&&f.seqAwaiting),void 0===v[g]&&(v[g]={seq:m,date:t.date,updates:[]}),v[g].updates.push(e),f||(f={timeout:setTimeout(function(){d()},5e3)}),(!f.seqAwaiting||f.seqAwaiting-1)return n=Math.floor(t/a),i=t%a,{category:o,row:n,column:i};return console.error("emoji not found in spritesheet",e),null}function i(i,s){if(!i||!i.length)return"";s=s||{};for(var u,p,m,h,g=i,f=[],_=s.contextSite||"Telegram",b="Telegram"!=_,w=!1;u=g.match(v);){if(f.push(encodeEntities(g.substr(0,u.index))),u[3]){var k=!s.noLinks&&E[_];if(k){var $="";s.highlightUsername&&s.highlightUsername.toLowerCase()==u[3].toLowerCase()&&($='class="im_message_mymention"'),f.push(u[1],"',encodeEntities(u[2]+u[3]),"")}else f.push(u[1],encodeEntities(u[2]+u[3]))}else if(u[4])if(s.noLinks)f.push(encodeEntities(u[0]));else if(y.test(u[4]))f.push('',encodeEntities(u[4]),"");else{var p=!1,S=u[5],C=u[6],M="";if(C){if(S||"xn--"!==C.substr(0,4)&&-1===Config.TLD.indexOf(C.toLowerCase())||(S="http://"),S){var x=a(u[4]);x.length!==u[4].length&&(M=u[4].substring(x.length),u[4]=x),p=(u[5]?"":S)+u[4]}var T;if("me"==C&&(T=p.match(/^https?:\/\/telegram\.me\/(.+)/))){var I=T[1].split("/");switch(I[0]){case"joinchat":p="tg://join?invite="+I[1];break;case"addstickers":p="tg://addstickers?set="+I[1];break;default:var D=I[0].split("?"); p="tg://resolve?domain="+D[0]+(D[1]?"&"+D[1]:"")}}}else p=(u[5]?"":"http://")+u[4];p?(f.push('',encodeEntities(u[4]),"",M),s.extractUrlEmbed&&!s.extractedUrlEmbed&&(s.extractedUrlEmbed=o(p))):f.push(encodeEntities(u[0]))}else if(u[7])f.push(s.noLinebreaks?" ":"
");else if(u[8])(r=l[u[8]])&&(h=n(r))?(m=encodeEntities(c[r][1][0]),w=!0,f.push('',":",m,":")):f.push(encodeEntities(u[8]));else if(u[10]){var k=!s.noLinks&&A[_]||s.contextHashtag;k?f.push(encodeEntities(u[9]),"',encodeEntities(u[10]),""):f.push(encodeEntities(u[9]),encodeEntities(u[10]))}else if(u[12])if(s.noLinks||s.noCommands||b)f.push(encodeEntities(u[0]));else{var P=u[13]||s.fromBot;f.push(encodeEntities(u[11]),'',encodeEntities("/"+u[12]+(u[13]?"@"+u[13]:"")),"",encodeEntities(u[14]))}g=g.substr(u.index+u[0].length)}return f.push(encodeEntities(g)),i=t(f.join("")),w&&(i=i.replace(/\ufe0f|️|�|‍/g,"",i),i=i.replace(//g,'')),e.trustAs("html",i)}function a(e){for(var t=e.length,n=e.split("(").length-1,i=e.split(")").length-1;i>n&&")"===e.charAt(t-1);)e=e.substr(0,t-1),i--,t--;return n>i&&(e=e.replace(/\)+$/,"")),e}function o(e){var t;if(t=e.match(b))return["youtube",t[1]];if(t=e.match(w))return["vimeo",t[1]];if(t=e.match(k))return["instagram",t[1]];if(t=e.match($))return["vine",t[1]];if(t=e.match(M)){var n="explore,upload,pages,terms-of-use,mobile,jobs,imprint".split(","),i="sets".split(",");if(-1==n.indexOf(t[1])&&-1==i.indexOf(t[2]))return["soundcloud",t[0]]}else if(t=e.match(x))return["spotify",t[3].replace("/",":")];if(!Config.Modes.chrome_packed){if(t=e.match(S))return["twitter",t[0]];if(t=e.match(C))return void 0!=t[2]?["facebook","https://www.facebook.com/"+t[2]+"/posts/"+t[1]]:["facebook",t[0]]}return!1}function s(e,t){if(u)return e;if(!e||!e.length)return"";t=t||{},e=e.replace(/\ufe0f/g,"",e);for(var n,i,a=e,e=[];n=a.match(v);)e.push(a.substr(0,n.index)),e.push(n[8]?(r=l[n[8]])&&(i=c[r][1][0])?":"+i+":":n[0]:n[0]),a=a.substr(n.index+n[0].length);return e.push(a),e.join("")}var r,l={},c=Config.Emoji,d=18,u=-1!=navigator.userAgent.search(/OS X|iPhone|iPad|iOS|Android/i),p="\\u0023\\u20E3|\\u00a9|\\u00ae|\\u203c|\\u2049|\\u2139|[\\u2194-\\u2199]|\\u21a9|\\u21aa|\\u231a|\\u231b|\\u23e9|[\\u23ea-\\u23ec]|\\u23f0|\\u24c2|\\u25aa|\\u25ab|\\u25b6|\\u2611|\\u2614|\\u26fd|\\u2705|\\u2709|[\\u2795-\\u2797]|\\u27a1|\\u27b0|\\u27bf|\\u2934|\\u2935|[\\u2b05-\\u2b07]|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u3030|\\u303d|\\u3297|\\u3299|[\\uE000-\\uF8FF\\u270A-\\u2764\\u2122\\u25C0\\u25FB-\\u25FE\\u2615\\u263a\\u2648-\\u2653\\u2660-\\u2668\\u267B\\u267F\\u2693\\u261d\\u26A0-\\u26FA\\u2708\\u2702\\u2601\\u260E]|[\\u2600\\u26C4\\u26BE\\u23F3\\u2764]|\\uD83D[\\uDC00-\\uDFFF]|\\uD83C[\\uDDE8-\\uDDFA�]\\uD83C[\\uDDEA-\\uDDFA�]|[0-9]\\u20e3|\\uD83C[\\uDC00-\\uDFFF]";for(r in c)l[c[r][0]]=r;var m="a-z\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u00ff\\u0100-\\u024f\\u0253\\u0254\\u0256\\u0257\\u0259\\u025b\\u0263\\u0268\\u026f\\u0272\\u0289\\u028b\\u02bb\\u0300-\\u036f\\u1e00-\\u1eff\\u0400-\\u04ff\\u0500-\\u0527\\u2de0-\\u2dff\\ua640-\\ua69f\\u0591-\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05f0-\\u05f4\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufb4f\\u0610-\\u061a\\u0620-\\u065f\\u066e-\\u06d3\\u06d5-\\u06dc\\u06de-\\u06e8\\u06ea-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0750-\\u077f\\u08a0\\u08a2-\\u08ac\\u08e4-\\u08fe\\ufb50-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\u200c\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u1100-\\u11ff\\u3130-\\u3185\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3003\\u3005\\u303b\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uff9f\\uffa1-\\uffdc",h="0-9_"+m,g="((?:https?|ftp)://|mailto:)?(?:\\S{1,64}(?::\\S{0,64})?@)?(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}|["+m+"0-9]["+m+"0-9-]{0,64}(?:\\.["+m+"0-9]["+m+"0-9-]{0,64}){0,10}(?:\\.(xn--[0-9a-z]{2,16}|["+m+"]{2,24})))(?::\\d{2,5})?(?:/(?:\\S{0,255}[^\\s.;,(\\[\\]{}<>\"'])?)?",f="[a-zA-Z\\d_]{5,32}",_="\\/([a-zA-Z\\d_]{1,32})(?:@("+f+"))?(\\s|$)",v=new RegExp("(^|\\s)(@)("+f+")|("+g+")|(\\n)|("+p+")|(^|\\s)(#["+h+"]{2,64})|(^|\\s)"+_,"i"),y=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,b=/^(?:https?:\/\/)?(?:www\.)?youtu(?:|\.be|be\.com|\.b)(?:\/v\/|\/watch\\?v=|e\/|(?:\/\??#)?\/watch(?:.+)v=)(.{11})(?:\&[^\s]*)?/,w=/^(?:https?:\/\/)?(?:www\.)?vimeo\.com\/(\d+)/,k=/^https?:\/\/(?:instagr\.am\/p\/|instagram\.com\/p\/)([a-zA-Z0-9\-\_]+)/i,$=/^https?:\/\/vine\.co\/v\/([a-zA-Z0-9\-\_]+)/i,S=/^https?:\/\/twitter\.com\/.+?\/status\/\d+/i,C=/^https?:\/\/(?:www\.|m\.)?facebook\.com\/(?:.+?\/posts\/\d+|(?:story\.php|permalink\.php)\?story_fbid=(\d+)(?:&substory_index=\d+)?&id=(\d+))/i,M=/^https?:\/\/(?:soundcloud\.com|snd\.sc)\/([a-zA-Z0-9%\-\_]+)\/([a-zA-Z0-9%\-\_]+)/i,x=/(https?:\/\/(open\.spotify\.com|play\.spotify\.com|spoti\.fi)\/(.+)|spotify:(.+))/i,A={Telegram:"#/im?q=%23{1}",Twitter:"https://twitter.com/hashtag/{1}",Instagram:"https://instagram.com/explore/tags/{1}/","Google Plus":"https://plus.google.com/explore/{1}"},E={Telegram:"#/im?p=%40{1}",Twitter:"https://twitter.com/{1}",Instagram:"https://instagram.com/{1}/",GitHub:"https://github.com/{1}"};return{wrapRichText:i,wrapPlainText:s}}]).service("StatusManager",["$timeout","$rootScope","MtpApiManager","AppUsersManager","IdleManager",function(e,t,n,i){function a(){d||(d=!0,t.$watch("idle.isIDLE",s),t.$watch("offline",s))}function o(e){var a=tsNow();if(!(e&&!c||!e&&5e4>a-c||t.offline))return c=e?0:a,i.setUserStatus(u,e),n.invokeApi("account.updateStatus",{offline:e},{noErrorBox:!0})}function s(){l&&e.cancel(l),t.idle.isIDLE?l=e(function(){o(!0)},5e3):(o(!1),l=e(s,6e4))}function r(){return p?tsNow()>p?(p=!1,!1):!0:!1}var l,c=0,d=!1,u=0,p=!1;return n.getUserID().then(function(e){u=e}),t.$on("apiUpdate",function(e,t){"updateUserStatus"==t._&&t.user_id==u&&(p=tsNow()+("userStatusOnline"==t.status._?3e5:0))}),{start:a,isOtherDeviceActive:r}}]).service("NotificationsManager",["$rootScope","$window","$interval","$q","_","MtpApiManager","AppPeersManager","IdleManager","Storage","AppRuntimeManager",function(e,t,n,i,a,o,s,r,l,c){function d(){l.get("notify_nodesktop","notify_volume","notify_novibrate","notify_nopreview").then(function(e){z.nodesktop=e[0],z.volume=e[1]===!1?.5:e[1],z.novibrate=e[2],z.nopreview=e[3]})}function u(){return z}function p(e){return void 0!==B[e]?B[e]:B[e]=o.invokeApi("account.getNotifySettings",{peer:{_:"inputNotifyPeer",peer:s.getInputPeerByID(e)}})}function m(e){if(e=e||"favicon.ico",T!==e){var t=document.createElement("link");t.rel="shortcut icon",t.type="image/x-icon",t.href=e,F.parentNode.replaceChild(t,F),F=t,T=e}}function h(e,t){B[e]=i.when(t)}function g(e,t){h(e,t);var n=angular.copy(t);return n._="inputPeerNotifySettings",o.invokeApi("account.updateNotifySettings",{peer:{_:"inputNotifyPeer",peer:s.getInputPeerByID(e)},settings:n})}function f(e){return p(e).then(function(e){return"peerNotifySettings"==e._&&1e3*e.mute_until>tsNow()})}function _(){if(d(),e.$on("settings_changed",d),C(),!I)return!1;"Notification"in window&&"granted"!==Notification.permission&&"denied"!==Notification.permission&&$(t).on("click",v);try{"onbeforeunload"in window&&$(t).on("beforeunload",S)}catch(n){}}function v(){Notification.requestPermission(),$(t).off("click",v)}function y(e){Config.Navigator.ffos?e.image="https://raw.githubusercontent.com/zhukov/webogram/master/app/img/icons/icon60.png":e.image||(e.image="img/icons/icon60.png"),N++;var t=tsNow();if(z.volume>0&&(!e.tag||!U[e.tag]||t>U[e.tag]+6e4)&&(b(z.volume),U[e.tag]=t),!I||"Notification"in window&&"granted"!==Notification.permission)return!1;if(z.nodesktop){if(O&&!z.novibrate)return void navigator.vibrate([200,100,200])}else{var n,i=++P,a=e.key||"k"+i;if("Notification"in window)n=new Notification(e.title,{icon:e.image||"",body:e.message||"",tag:e.tag||""});else if("mozNotification"in navigator)n=navigator.mozNotification.createNotification(e.title,e.message||"",e.image||"");else{if(!x)return;window.external.msSiteModeClearIconOverlay(),window.external.msSiteModeSetIconOverlay("img/icons/icon16.png",e.title),window.external.msSiteModeActivate(),n={index:i}}n.onclick=function(){n.close(),c.focus(),S(),e.onclick&&e.onclick()},n.onclose=function(){delete D[a],S()},n.show&&n.show(),D[a]=n}}function b(e){var t=tsNow();if(!(R&&R>t&&L==e)){R=t+1e3,L=e;var n="img/sound_a.mp3",i=$("#notify_sound").html('');i.find("audio")[0].volume=e}}function w(e){var t=D[e];if(t){N>0&&N--;try{t.close?t.close():x&&t.index==P&&window.external.msSiteModeClearIconOverlay()}catch(n){}delete N[e]}}function k(e){delete U[e]}function S(){x?window.external.msSiteModeClearIconOverlay():angular.forEach(D,function(e){try{e.close&&e.close()}catch(t){}}),D={},N=0}function C(){if(V)return!1;if(navigator.push&&Config.Navigator.ffos&&Config.Modes.packed){var e=navigator.push.register();e.onsuccess=function(){clearTimeout(G),console.log(dT(),"Push registered",e.result),V=e.result,o.invokeApi("account.registerDevice",{token_type:4,token:V,device_model:navigator.userAgent||"Unknown UserAgent",system_version:navigator.platform||"Unknown Platform",app_version:Config.App.version,app_sandbox:!1,lang_code:navigator.language||"en"})},e.onerror=function(e){console.error("Push register error",e,e.toString()),G=setTimeout(C,W),W=Math.min(3e4,1.5*W)}}}function M(){return O}navigator.vibrate=navigator.vibrate||navigator.mozVibrate||navigator.webkitVibrate;var x=!1;try{window.external&&window.external.msIsSiteMode()&&(x=!0)}catch(A){}var E,T,I=x||"Notification"in window||"mozNotification"in navigator,D={},P=0,N=0,U={},O=!!navigator.vibrate,R=!1,L=!1,B={},F=$('link[rel="icon"]:first')[0],q=a.pluralize("page_title_pluralize_notifications"),j=document.title,H=!1,z={};e.$watch("idle.isIDLE",function(e){e||S(),Config.Navigator.mobile||(n.cancel(E),e?(j=document.title,E=n(function(){var e=tsNow();!N||e%2e3>1e3?H&&(H=!1,document.title=j,m()):(H=!0,document.title=q(N),m("favicon_unread.ico"))},1e3)):(H=!1,document.title=j,m()))}),e.$on("apiUpdate",function(e,t){switch(t._){case"updateNotifySettings":if("notifyPeer"==t.peer._){var n=s.getPeerID(t.peer.peer);h(n,t.notify_settings)}}});var V=!1;return window.navigator.mozSetMessageHandler&&(window.navigator.mozSetMessageHandler("push",function(t){console.log(dT(),"received push",t),e.$broadcast("push_received")}),window.navigator.mozSetMessageHandler("push-register",function(e){console.log(dT(),"received push",e),V=!1,C()})),{start:_,notify:y,cancel:w,clear:S,soundReset:k,getPeerSettings:p,getPeerMuted:f,savePeerSettings:h,updatePeerSettings:g,updateNotifySettings:d,getNotifySettings:u,getVibrateSupport:M,testSound:b};var W,G}]).service("PasswordManager",["$timeout","$q","$rootScope","MtpApiManager","CryptoWorker","MtpSecureRandom",function(e,t,n,i,a,o){function s(e){return i.invokeApi("account.getPassword",{},e).then(function(e){return e})}function r(e,n){var a,s,r={new_settings:{_:"account.passwordInputSettings",flags:0,hint:n.hint||""}};if(a="string"==typeof n.cur_password&&n.cur_password.length>0?u(e.current_salt,n.cur_password):t.when([]),"string"==typeof n.new_password&&n.new_password.length>0){var l=new Array(8),c=bufferConcat(e.new_salt,l);o.nextBytes(l),s=u(c,n.new_password),r.new_settings.new_salt=c,r.new_settings.flags|=1}else"string"==typeof n.new_password&&(r.new_settings.flags|=1,r.new_settings.new_salt=[]),s=t.when([]);return"string"==typeof n.email&&(r.new_settings.flags|=2,r.new_settings.email=n.email||""),t.all([a,s]).then(function(e){return r.current_password_hash=e[0],r.new_settings.new_password_hash=e[1],i.invokeApi("account.updatePasswordSettings",r)})}function l(e,t,n){return u(e.current_salt,t).then(function(e){return i.invokeApi("auth.checkPassword",{password_hash:e},n)})}function c(e,t){return i.invokeApi("auth.requestPasswordRecovery",{},t)}function d(e,t){return i.invokeApi("auth.recoverPassword",{code:e},t)}function u(e,t){for(var n=unescape(encodeURIComponent(t)),i=new ArrayBuffer(n.length),o=new Uint8Array(i),s=0,r=n.length;r>s;s++)o[s]=n.charCodeAt(s);return i=bufferConcat(bufferConcat(e,o),e),a.sha256Hash(i)}return{check:l,getState:s,requestRecovery:c,recover:d,updateSettings:r}}]).service("ErrorService",["$rootScope","$modal","$window",function(e,t,n){function i(n,i){if(s>=1)return console.log("Skip error box, too many open",s,n,i),!1;i=i||{};var a=e.$new();angular.extend(a,n),s++;var o=t.open({templateUrl:templateUrl("error_modal"),scope:a,windowClass:i.windowClass||"error_modal_window"});return o.result["finally"](function(){s--}),o}function a(e,t){return i({title:e,description:t})}function o(n,i){i=i||{};var a=e.$new();angular.extend(a,n);var o=t.open({templateUrl:templateUrl("confirm_modal"),scope:a,windowClass:i.windowClass||"confirm_modal_window"});return o.result}var s=0;return n.safeConfirm=function(e,t){"string"==typeof e&&(e={message:e}),o(e).then(function(e){t(e||!0)},function(){t(!1)})},{show:i,alert:a,confirm:o}}]).service("PeersSelectService",["$rootScope","$modal",function(e,t){function n(n){var i=e.$new();return i.multiSelect=!1,i.noMessages=!0,n&&angular.extend(i,n),t.open({templateUrl:templateUrl("peer_select"),controller:"PeerSelectController",scope:i,windowClass:"peer_select_window mobile_modal"}).result}function i(i){if(Config.Mobile)return n(i).then(function(e){return[e]});var a=e.$new();return a.multiSelect=!0,a.noMessages=!0,i&&angular.extend(a,i),t.open({templateUrl:templateUrl("peer_select"),controller:"PeerSelectController",scope:a,windowClass:"peer_select_window mobile_modal"}).result}return{selectPeer:n,selectPeers:i}}]).service("ContactsSelectService",["$rootScope","$modal",function(e,t){function n(n,i){i=i||{};var a=e.$new();return a.multiSelect=n,angular.extend(a,i),!a.action&&n&&(a.action="select"),t.open({templateUrl:templateUrl("contacts_modal"),controller:"ContactsModalController",scope:a,windowClass:"contacts_modal_window mobile_modal"}).result}return{selectContacts:function(e){return n(!0,e)},selectContact:function(e){return n(!1,e)}}}]).service("ChangelogNotifyService",["Storage","$rootScope","$modal",function(e,t,n){function i(){e.get("last_version").then(function(t){t!=Config.App.version&&(t&&a(t),e.set({last_version:Config.App.version}))})}function a(e){var i=t.$new();i.lastVersion=e,n.open({controller:"ChangelogModalController",templateUrl:templateUrl("changelog_modal"),scope:i,windowClass:"changelog_modal_window mobile_modal"})}return{checkUpdate:i,showChangelog:a}}]).service("HttpsMigrateService",["ErrorService","Storage",function(e,t){function n(){t.get("https_dismiss").then(function(n){(!n||tsNow()>n+432e5)&&e.confirm({type:"MIGRATE_TO_HTTPS"}).then(function(){var e;try{e=window.open("https://web.telegram.org","_blank")}catch(t){}e||(location="https://web.telegram.org")},function(){t.set({https_dismiss:tsNow()})})})}function i(){a||"http:"!=location.protocol||Config.Modes.http||-1==Config.App.domains.indexOf(location.hostname)||(a=!0,setTimeout(n,12e4))}var a=!1;return{start:i,check:n}}]).service("LayoutSwitchService",["ErrorService","Storage","AppRuntimeManager","$window",function(e,t,n,i){function a(e){ConfigStorage.noPrefix(),t.set({layout_selected:e?"mobile":"desktop",layout_width:$(window).width()}).then(function(){n.reload()})}function o(n){if(!l){var i=$(window).width(),o=600>i;!i||!n&&(Config.Navigator.mobile?800>=i:o)||o!=Config.Mobile&&(ConfigStorage.noPrefix(),t.get("layout_width").then(function(n){return i==n?!1:(l=!0,void e.confirm({type:o?"SWITCH_MOBILE_VERSION":"SWITCH_DESKTOP_VERSION"}).then(function(){a(o)},function(){ConfigStorage.noPrefix(),t.set({layout_width:i}),l=!1}))}))}}function s(){r||Config.Navigator.mobile||(r=!0,o(),$(i).on("resize",o))}var r=!1,l=!1;return{start:s,switchLayout:a}}]).service("TelegramMeWebService",["Storage",function(e){function t(t){return n?!1:void e.get("tgme_sync").then(function(n){var i=tsNow(!0);if(t&&n&&n.canRedirect==t&&n.ts+86400>i)return!1;e.set({tgme_sync:{canRedirect:t,ts:i}});var a=$("